* [PATCH 5.15 203/317] powerpc: Force inlining of arch_vmap_p{u/m}d_supported()
@ 2024-03-24 23:33 4% ` Sasha Levin
0 siblings, 0 replies; 200+ results
From: Sasha Levin @ 2024-03-24 23:33 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Christophe Leroy, kernel test robot, Michael Ellerman, Sasha Levin
From: Christophe Leroy <christophe.leroy@csgroup.eu>
[ Upstream commit c5aebb53b32460bc52680dd4e2a2f6b84d5ea521 ]
arch_vmap_pud_supported() and arch_vmap_pmd_supported() are
expected to constant-fold to false when RADIX is not enabled.
Force inlining in order to avoid following failure which
leads to unexpected call of non-existing pud_set_huge() and
pmd_set_huge() on powerpc 8xx.
In function 'pud_huge_tests',
inlined from 'debug_vm_pgtable' at mm/debug_vm_pgtable.c:1399:2:
./arch/powerpc/include/asm/vmalloc.h:9:33: warning: inlining failed in call to 'arch_vmap_pud_supported.isra': call is unlikely and code size would grow [-Winline]
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:10:20: note: in expansion of macro 'arch_vmap_pud_supported'
10 | static inline bool arch_vmap_pud_supported(pgprot_t prot)
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:9:33: note: called from here
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
mm/debug_vm_pgtable.c:458:14: note: in expansion of macro 'arch_vmap_pud_supported'
458 | if (!arch_vmap_pud_supported(args->page_prot) ||
| ^~~~~~~~~~~~~~~~~~~~~~~
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202402131836.OU1TDuoi-lkp@intel.com/
Fixes: 8309c9d71702 ("powerpc: inline huge vmap supported functions")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/bbd84ad52bf377e8d3b5865a906f2dc5d99964ba.1707832677.git.christophe.leroy@csgroup.eu
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/powerpc/include/asm/vmalloc.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/include/asm/vmalloc.h b/arch/powerpc/include/asm/vmalloc.h
index 4c69ece52a31e..59ed89890c902 100644
--- a/arch/powerpc/include/asm/vmalloc.h
+++ b/arch/powerpc/include/asm/vmalloc.h
@@ -7,14 +7,14 @@
#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
#define arch_vmap_pud_supported arch_vmap_pud_supported
-static inline bool arch_vmap_pud_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pud_supported(pgprot_t prot)
{
/* HPT does not cope with large pages in the vmalloc area */
return radix_enabled();
}
#define arch_vmap_pmd_supported arch_vmap_pmd_supported
-static inline bool arch_vmap_pmd_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pmd_supported(pgprot_t prot)
{
return radix_enabled();
}
--
2.43.0
^ permalink raw reply related [relevance 4%]
* [PATCH 6.1 291/451] powerpc: Force inlining of arch_vmap_p{u/m}d_supported()
@ 2024-03-24 23:09 4% ` Sasha Levin
0 siblings, 0 replies; 200+ results
From: Sasha Levin @ 2024-03-24 23:09 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Christophe Leroy, kernel test robot, Michael Ellerman, Sasha Levin
From: Christophe Leroy <christophe.leroy@csgroup.eu>
[ Upstream commit c5aebb53b32460bc52680dd4e2a2f6b84d5ea521 ]
arch_vmap_pud_supported() and arch_vmap_pmd_supported() are
expected to constant-fold to false when RADIX is not enabled.
Force inlining in order to avoid following failure which
leads to unexpected call of non-existing pud_set_huge() and
pmd_set_huge() on powerpc 8xx.
In function 'pud_huge_tests',
inlined from 'debug_vm_pgtable' at mm/debug_vm_pgtable.c:1399:2:
./arch/powerpc/include/asm/vmalloc.h:9:33: warning: inlining failed in call to 'arch_vmap_pud_supported.isra': call is unlikely and code size would grow [-Winline]
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:10:20: note: in expansion of macro 'arch_vmap_pud_supported'
10 | static inline bool arch_vmap_pud_supported(pgprot_t prot)
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:9:33: note: called from here
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
mm/debug_vm_pgtable.c:458:14: note: in expansion of macro 'arch_vmap_pud_supported'
458 | if (!arch_vmap_pud_supported(args->page_prot) ||
| ^~~~~~~~~~~~~~~~~~~~~~~
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202402131836.OU1TDuoi-lkp@intel.com/
Fixes: 8309c9d71702 ("powerpc: inline huge vmap supported functions")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/bbd84ad52bf377e8d3b5865a906f2dc5d99964ba.1707832677.git.christophe.leroy@csgroup.eu
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/powerpc/include/asm/vmalloc.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/include/asm/vmalloc.h b/arch/powerpc/include/asm/vmalloc.h
index 4c69ece52a31e..59ed89890c902 100644
--- a/arch/powerpc/include/asm/vmalloc.h
+++ b/arch/powerpc/include/asm/vmalloc.h
@@ -7,14 +7,14 @@
#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
#define arch_vmap_pud_supported arch_vmap_pud_supported
-static inline bool arch_vmap_pud_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pud_supported(pgprot_t prot)
{
/* HPT does not cope with large pages in the vmalloc area */
return radix_enabled();
}
#define arch_vmap_pmd_supported arch_vmap_pmd_supported
-static inline bool arch_vmap_pmd_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pmd_supported(pgprot_t prot)
{
return radix_enabled();
}
--
2.43.0
^ permalink raw reply related [relevance 4%]
* [PATCH 6.6 413/638] powerpc: Force inlining of arch_vmap_p{u/m}d_supported()
@ 2024-03-24 22:57 4% ` Sasha Levin
0 siblings, 0 replies; 200+ results
From: Sasha Levin @ 2024-03-24 22:57 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Christophe Leroy, kernel test robot, Michael Ellerman, Sasha Levin
From: Christophe Leroy <christophe.leroy@csgroup.eu>
[ Upstream commit c5aebb53b32460bc52680dd4e2a2f6b84d5ea521 ]
arch_vmap_pud_supported() and arch_vmap_pmd_supported() are
expected to constant-fold to false when RADIX is not enabled.
Force inlining in order to avoid following failure which
leads to unexpected call of non-existing pud_set_huge() and
pmd_set_huge() on powerpc 8xx.
In function 'pud_huge_tests',
inlined from 'debug_vm_pgtable' at mm/debug_vm_pgtable.c:1399:2:
./arch/powerpc/include/asm/vmalloc.h:9:33: warning: inlining failed in call to 'arch_vmap_pud_supported.isra': call is unlikely and code size would grow [-Winline]
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:10:20: note: in expansion of macro 'arch_vmap_pud_supported'
10 | static inline bool arch_vmap_pud_supported(pgprot_t prot)
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:9:33: note: called from here
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
mm/debug_vm_pgtable.c:458:14: note: in expansion of macro 'arch_vmap_pud_supported'
458 | if (!arch_vmap_pud_supported(args->page_prot) ||
| ^~~~~~~~~~~~~~~~~~~~~~~
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202402131836.OU1TDuoi-lkp@intel.com/
Fixes: 8309c9d71702 ("powerpc: inline huge vmap supported functions")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/bbd84ad52bf377e8d3b5865a906f2dc5d99964ba.1707832677.git.christophe.leroy@csgroup.eu
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/powerpc/include/asm/vmalloc.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/include/asm/vmalloc.h b/arch/powerpc/include/asm/vmalloc.h
index 4c69ece52a31e..59ed89890c902 100644
--- a/arch/powerpc/include/asm/vmalloc.h
+++ b/arch/powerpc/include/asm/vmalloc.h
@@ -7,14 +7,14 @@
#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
#define arch_vmap_pud_supported arch_vmap_pud_supported
-static inline bool arch_vmap_pud_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pud_supported(pgprot_t prot)
{
/* HPT does not cope with large pages in the vmalloc area */
return radix_enabled();
}
#define arch_vmap_pmd_supported arch_vmap_pmd_supported
-static inline bool arch_vmap_pmd_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pmd_supported(pgprot_t prot)
{
return radix_enabled();
}
--
2.43.0
^ permalink raw reply related [relevance 4%]
* [PATCH 6.7 461/713] powerpc: Force inlining of arch_vmap_p{u/m}d_supported()
@ 2024-03-24 22:43 4% ` Sasha Levin
0 siblings, 0 replies; 200+ results
From: Sasha Levin @ 2024-03-24 22:43 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Christophe Leroy, kernel test robot, Michael Ellerman, Sasha Levin
From: Christophe Leroy <christophe.leroy@csgroup.eu>
[ Upstream commit c5aebb53b32460bc52680dd4e2a2f6b84d5ea521 ]
arch_vmap_pud_supported() and arch_vmap_pmd_supported() are
expected to constant-fold to false when RADIX is not enabled.
Force inlining in order to avoid following failure which
leads to unexpected call of non-existing pud_set_huge() and
pmd_set_huge() on powerpc 8xx.
In function 'pud_huge_tests',
inlined from 'debug_vm_pgtable' at mm/debug_vm_pgtable.c:1399:2:
./arch/powerpc/include/asm/vmalloc.h:9:33: warning: inlining failed in call to 'arch_vmap_pud_supported.isra': call is unlikely and code size would grow [-Winline]
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:10:20: note: in expansion of macro 'arch_vmap_pud_supported'
10 | static inline bool arch_vmap_pud_supported(pgprot_t prot)
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:9:33: note: called from here
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
mm/debug_vm_pgtable.c:458:14: note: in expansion of macro 'arch_vmap_pud_supported'
458 | if (!arch_vmap_pud_supported(args->page_prot) ||
| ^~~~~~~~~~~~~~~~~~~~~~~
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202402131836.OU1TDuoi-lkp@intel.com/
Fixes: 8309c9d71702 ("powerpc: inline huge vmap supported functions")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/bbd84ad52bf377e8d3b5865a906f2dc5d99964ba.1707832677.git.christophe.leroy@csgroup.eu
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/powerpc/include/asm/vmalloc.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/include/asm/vmalloc.h b/arch/powerpc/include/asm/vmalloc.h
index 4c69ece52a31e..59ed89890c902 100644
--- a/arch/powerpc/include/asm/vmalloc.h
+++ b/arch/powerpc/include/asm/vmalloc.h
@@ -7,14 +7,14 @@
#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
#define arch_vmap_pud_supported arch_vmap_pud_supported
-static inline bool arch_vmap_pud_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pud_supported(pgprot_t prot)
{
/* HPT does not cope with large pages in the vmalloc area */
return radix_enabled();
}
#define arch_vmap_pmd_supported arch_vmap_pmd_supported
-static inline bool arch_vmap_pmd_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pmd_supported(pgprot_t prot)
{
return radix_enabled();
}
--
2.43.0
^ permalink raw reply related [relevance 4%]
* [PATCH 6.8 429/715] powerpc: Force inlining of arch_vmap_p{u/m}d_supported()
@ 2024-03-24 22:30 4% ` Sasha Levin
0 siblings, 0 replies; 200+ results
From: Sasha Levin @ 2024-03-24 22:30 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Christophe Leroy, kernel test robot, Michael Ellerman, Sasha Levin
From: Christophe Leroy <christophe.leroy@csgroup.eu>
[ Upstream commit c5aebb53b32460bc52680dd4e2a2f6b84d5ea521 ]
arch_vmap_pud_supported() and arch_vmap_pmd_supported() are
expected to constant-fold to false when RADIX is not enabled.
Force inlining in order to avoid following failure which
leads to unexpected call of non-existing pud_set_huge() and
pmd_set_huge() on powerpc 8xx.
In function 'pud_huge_tests',
inlined from 'debug_vm_pgtable' at mm/debug_vm_pgtable.c:1399:2:
./arch/powerpc/include/asm/vmalloc.h:9:33: warning: inlining failed in call to 'arch_vmap_pud_supported.isra': call is unlikely and code size would grow [-Winline]
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:10:20: note: in expansion of macro 'arch_vmap_pud_supported'
10 | static inline bool arch_vmap_pud_supported(pgprot_t prot)
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:9:33: note: called from here
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
mm/debug_vm_pgtable.c:458:14: note: in expansion of macro 'arch_vmap_pud_supported'
458 | if (!arch_vmap_pud_supported(args->page_prot) ||
| ^~~~~~~~~~~~~~~~~~~~~~~
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202402131836.OU1TDuoi-lkp@intel.com/
Fixes: 8309c9d71702 ("powerpc: inline huge vmap supported functions")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/bbd84ad52bf377e8d3b5865a906f2dc5d99964ba.1707832677.git.christophe.leroy@csgroup.eu
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/powerpc/include/asm/vmalloc.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/include/asm/vmalloc.h b/arch/powerpc/include/asm/vmalloc.h
index 4c69ece52a31e..59ed89890c902 100644
--- a/arch/powerpc/include/asm/vmalloc.h
+++ b/arch/powerpc/include/asm/vmalloc.h
@@ -7,14 +7,14 @@
#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
#define arch_vmap_pud_supported arch_vmap_pud_supported
-static inline bool arch_vmap_pud_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pud_supported(pgprot_t prot)
{
/* HPT does not cope with large pages in the vmalloc area */
return radix_enabled();
}
#define arch_vmap_pmd_supported arch_vmap_pmd_supported
-static inline bool arch_vmap_pmd_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pmd_supported(pgprot_t prot)
{
return radix_enabled();
}
--
2.43.0
^ permalink raw reply related [relevance 4%]
* [PATCH 3/9] linux-yocto/6.6: update to v6.6.21
@ 2024-03-19 23:01 2% ` bruce.ashfield
2024-03-19 23:01 2% ` [PATCH 4/9] yocto-bsps: " bruce.ashfield
1 sibling, 0 replies; 200+ results
From: bruce.ashfield @ 2024-03-19 23:01 UTC (permalink / raw)
To: richard.purdie; +Cc: openembedded-core
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Updating linux-yocto/6.6 to the latest korg -stable release that comprises
the following commits:
62e5ae5007ef Linux 6.6.21
d6ac0ee5ff95 drm/nouveau: don't fini scheduler before entity flush
ece1aaec7f7e selftests: mptcp: rm subflow with v4/v4mapped addr
8e7f31bf1101 selftests: mptcp: add mptcp_lib_is_v6
9d71f43afd89 selftests: mptcp: update userspace pm test helpers
f9190d7995a7 selftests: mptcp: add chk_subflows_total helper
ae1fa39da991 selftests: mptcp: add evts_get_info helper
e81742f6e2eb KVM/VMX: Move VERW closer to VMentry for MDS mitigation
ae46691220f7 KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH
7a62647efcb2 x86/bugs: Use ALTERNATIVE() instead of mds_user_clear static key
ca13d8cd8dac x86/entry_32: Add VERW just before userspace transition
7caf330faf16 x86/entry_64: Add VERW just before userspace transition
2664bb298cdf block: define bvec_iter as __packed __aligned(4)
21bbe847686c gpio: fix resource unwinding order in error path
9c7c16109b71 gpiolib: Fix the error path order in gpiochip_add_data_with_key()
92515c4ef1b4 gpio: 74x164: Enable output pins after registers are reset
6b6282d56b14 powerpc/rtas: use correct function name for resetting TCE tables
d4d1e4b1513d powerpc/pseries/iommu: IOMMU table is not initialized for kdump over SR-IOV
5e3022ea42e4 dmaengine: idxd: Ensure safe user copy of completion record
4d6e793eacfb dmaengine: idxd: Remove shadow Event Log head stored in idxd
981917766b59 phy: freescale: phy-fsl-imx8-mipi-dphy: Fix alias name to use dashes
d24fe6d5a1cf dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup
227ef58a9b0c dmaengine: dw-edma: HDMA: Add sync read before starting the DMA transfer in remote setup
55501b7359ef dmaengine: dw-edma: Add HDMA remote interrupt configuration
3fa3dfcabf3a dmaengine: dw-edma: HDMA_V0_REMOTEL_STOP_INT_EN typo fix
8b5657ac34b7 dmaengine: dw-edma: Fix wrong interrupt bit set for HDMA
3adea99aa756 dmaengine: dw-edma: Fix the ch_count hdma callback
57e869be88d0 ASoC: cs35l56: fix reversed if statement in cs35l56_dspwait_asp1tx_put()
e9eac260369d af_unix: Drop oob_skb ref before purging queue in GC.
69e0f04460f4 af_unix: Fix task hung while purging oob_skb in GC.
be8a177250b2 NFS: Fix data corruption caused by congestion.
fa8c776f4c32 mptcp: fix possible deadlock in subflow diag
ce0809ada38d mptcp: fix double-free on socket dismantle
b609ecda2d76 mptcp: fix potential wake-up event loss
ae5530ccd5ef mptcp: fix snd_wnd initialization for passive socket
536a661bfdf4 selftests: mptcp: join: add ss mptcp support check
48428b07de4f mptcp: push at DSS boundaries
fca4e6ab0681 mptcp: avoid printing warning once on client side
a49ecbe8d0f0 mptcp: map v4 address to v6 when destroying subflow
dff60a5531b5 x86/cpu/intel: Detect TME keyid bits before setting MTRR mask registers
c43b984f0b23 x86/e820: Don't reserve SETUP_RNG_SEED in e820
d2a9510c0e39 mm/debug_vm_pgtable: fix BUG_ON with pud advanced test
e9eeb0dddf61 pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation
71da10e633a9 efivarfs: Request at most 512 bytes for variable names
f1fb745ee0a6 iommufd: Fix iopt_access_list_id overwrite bug
8db4f87fa3e1 kbuild: Add -Wa,--fatal-warnings to as-instr invocation
9537603a5436 riscv: add CALLER_ADDRx support
0c8a3d3354cd RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
aebd67a52edd mmc: sdhci-xenon: fix PHY init clock stability
b4eacb32e066 mmc: sdhci-xenon: add timeout for PHY init complete
4344444255a3 mmc: core: Fix eMMC initialization with 1-bit bus connection
176e66269f0d mmc: mmci: stm32: fix DMA API overlapping mappings warning
a69c8bbb9469 dmaengine: fsl-qdma: init irq after reg initialization
91b001fb0b08 dmaengine: fsl-edma: correct calculation of 'nbytes' in multi-fifo scenario
4e0fe154be7b dmaengine: ptdma: use consistent DMA masks
1291d278b557 crypto: arm64/neonbs - fix out-of-bounds access on short input
5b696e9c3882 dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
737d2e9300cd soc: qcom: pmic_glink: Fix boot when QRTR=m
82dacc26e15c drm/amd/display: Add monitor patch for specific eDP
5e476625fa8a drm/buddy: fix range bias
baac292852c0 Revert "drm/amd/pm: resolve reboot exception for si oland"
202e4f4bb858 btrfs: send: don't issue unnecessary zero writes for trailing hole
b1690ced4d2d btrfs: dev-replace: properly validate device names
eb3441093aad btrfs: fix double free of anonymous device after snapshot creation failure
177d574be4b5 wifi: nl80211: reject iftype change with mesh ID change
ad8ff8cff38d mtd: rawnand: marvell: fix layouts
ba60fdf75e89 mm: cachestat: fix folio read-after-free in cache walk
93dd420bc415 gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
f4906938bdd4 landlock: Fix asymmetric private inodes referring
0be289ba41bb Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid
a4904b3afed0 ALSA: hda/realtek: Add special fixup for Lenovo 14IRP8
5cdf76fbbed9 ALSA: hda/realtek: fix mute/micmute LED For HP mt440
46fb5e7ec337 ALSA: hda/realtek: Enable Mute LED on HP 840 G8 (MB 8AB8)
d6ac6ffbdc39 ALSA: hda/realtek: tas2781: enable subwoofer volume control
bb06ffbf3862 ALSA: ump: Fix the discard error code from snd_ump_legacy_open()
22df6ff560c5 ALSA: firewire-lib: fix to check cycle continuity
2caa60507948 tomoyo: fix UAF write bug in tomoyo_write_control()
6f72b4458ead of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing
d43f8e58f10a btrfs: fix race between ordered extent completion and fiemap
a278d5c60f21 riscv: Sparse-Memory/vmemmap out-of-bounds fix
eb2571673cfc riscv: Fix pte_leaf_size() for NAPOT
2b7ce74e19fc Revert "riscv: mm: support Svnapot in huge vmap"
e0d17ee872cf drivers: perf: ctr_get_width function for legacy is not defined
2f8c09478a2c drivers: perf: added capabilities for legacy PMU
f67898867b6b afs: Fix endless loop in directory parsing
73a6bd68a134 fbcon: always restore the old font data in fbcon_do_set_font()
8e8c66afe27b drm/tegra: Remove existing framebuffer only if we support display
274bf3cca13f RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
fb3618f6bd49 ASoC: soc-card: Fix missing locking in snd_soc_card_get_kcontrol()
4b5d89ace3ce ASoC: cs35l56: Fix deadlock in ASP1 mixer register initialization
9f05fe599965 ASoC: cs35l56: Fix misuse of wm_adsp 'part' string for silicon revision
c249f04f2bff ASoC: cs35l56: Fix for initializing ASP1 mixer registers
044edc12fe01 ASoC: cs35l56: Don't add the same register patch multiple times
a2f0a6846da8 ASoC: cs35l56: cs35l56_component_remove() must clean up wm_adsp
93fc01f9b58d ASoC: cs35l56: cs35l56_component_remove() must clear cs35l56->component
cc698db49b93 riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
99adc8b4d2f3 ASoC: qcom: Fix uninitialized pointer dmactl
841361d88fae ASoC: qcom: convert not to use asoc_xxx()
c92c96cda3e3 ASoC: soc.h: convert asoc_xxx() to snd_soc_xxx()
ac549defb351 ALSA: Drop leftover snd-rtctimer stuff from Makefile
4a7f5eff429b ASoC: cs35l56: Must clear HALO_STATE before issuing SYSTEM_RESET
fbca8bae1ba7 power: supply: bq27xxx-i2c: Do not free non existing IRQ
11aabd748785 efi/capsule-loader: fix incorrect allocation size
81be85353b0f tls: fix use-after-free on failed backlog decryption
dec5b6e7b211 tls: separate no-async decryption request handling from async
11121c2ce571 tls: fix peeking with sync+async decryption
c19fdb06d3d7 tls: decrement decrypt_pending if no async completion will be called
9422350aea63 net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
c88bf996e88b igb: extend PTP timestamp adjustments to i211
167d8642daa6 rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
dbc81b032dd0 tools: ynl: fix handling of multiple mcast groups
80cd0487f630 netfilter: bridge: confirm multicast packets before passing them up the stack
98567dc7973f netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
39e39c34abb5 Bluetooth: qca: Fix triggering coredump implementation
c50ce483c28a Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
fb3e827badce Bluetooth: qca: Fix wrong event type for patch config command
dcd646f40a56 Bluetooth: Enforce validation on max value of connection interval
fba268ac36ab Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
4a9139678ede Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR
6699d7ce263c Bluetooth: hci_sync: Fix accept_list when attempting to suspend
2ab9a19d896f Bluetooth: Avoid potential use-after-free in hci_error_reset
0a07fa1f61e4 Bluetooth: hci_sync: Check the correct flag before starting a scan
699b103e48ce stmmac: Clear variable when destroying workqueue
af6dfe9e9551 uapi: in6: replace temporary label with rfc9486
2ae3d9d1d8da net: lan78xx: fix "softirq work is pending" error
0ec3ea616a50 net: usb: dm9601: fix wrong return value in dm9601_mdio_read
2d8003e55d12 veth: try harder when allocating queue memory
288218b1dd26 lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
44112bc5c74e ipv6: fix potential "struct net" leak in inet6_rtm_getaddr()
16edf51f33f5 net: veth: clear GRO when clearing XDP even when down
1a8682737600 cpufreq: intel_pstate: fix pstate limits enforcement for adjust_perf call back
7322b217c6f0 tun: Fix xdp_rxq_info's queue_index when detaching
fbccbb4215ae net: dpaa: fman_memac: accept phy-interface-type = "10gbase-r" in the device tree
cbebc55ceace net: mctp: take ownership of skb in mctp_local_output
a0a1db40b23e net: ip_tunnel: prevent perpetual headroom growth
a2ab02815184 netlink: add nla be16/32 types to minlen array
d3ada42e534a netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter
03f1573c9587 spi: cadence-qspi: fix pointer reference in runtime PM hooks
c53b8d8f70c4 mtd: spinand: gigadevice: Fix the get ecc status issue
8cb8ef0c79e3 ublk: move ublk_cancel_dev() out of ub->mutex
2b5f1692a95b ksmbd: fix wrong allocation size update in smb2_open()
05059601518e ASoC: cs35l34: Fix GPIO name and drop legacy include
d3d782b5a5d3 ubifs: fix possible dereference after free
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
.../linux/linux-yocto-rt_6.6.bb | 6 ++--
.../linux/linux-yocto-tiny_6.6.bb | 6 ++--
meta/recipes-kernel/linux/linux-yocto_6.6.bb | 28 +++++++++----------
3 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb b/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
index fe5d70dea1..7076a40e1f 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
@@ -14,13 +14,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "7c5911ab2e70bf84bb38a598b2a7e094618a9620"
-SRCREV_meta ?= "d2cf51efb880ea1f34f4beaee487edf572e9adc3"
+SRCREV_machine ?= "689f65582b3d9a948903cde4e9c29e5fafd1bced"
+SRCREV_meta ?= "5b185a8716c8c62dc1c7751e6d12f8b67f58274f"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https"
-LINUX_VERSION ?= "6.6.20"
+LINUX_VERSION ?= "6.6.21"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb
index 417cd16828..f6f4762cbc 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb
@@ -8,7 +8,7 @@ require recipes-kernel/linux/linux-yocto.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.6.inc
-LINUX_VERSION ?= "6.6.20"
+LINUX_VERSION ?= "6.6.21"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -17,8 +17,8 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_meta ?= "d2cf51efb880ea1f34f4beaee487edf572e9adc3"
+SRCREV_machine ?= "4d67f3ece8ca6f730f43ea8fdb9acf79c0c7bc46"
+SRCREV_meta ?= "5b185a8716c8c62dc1c7751e6d12f8b67f58274f"
PV = "${LINUX_VERSION}+git"
diff --git a/meta/recipes-kernel/linux/linux-yocto_6.6.bb b/meta/recipes-kernel/linux/linux-yocto_6.6.bb
index 13b8b97619..aaea980df0 100644
--- a/meta/recipes-kernel/linux/linux-yocto_6.6.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_6.6.bb
@@ -18,25 +18,25 @@ KBRANCH:qemux86-64 ?= "v6.6/standard/base"
KBRANCH:qemuloongarch64 ?= "v6.6/standard/base"
KBRANCH:qemumips64 ?= "v6.6/standard/mti-malta64"
-SRCREV_machine:qemuarm ?= "9d30fb4668cd7087e81b40f223cdd0090863602b"
-SRCREV_machine:qemuarm64 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemuloongarch64 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemumips ?= "4b49da8bb522bdaf928855c2c102fa839625c6c1"
-SRCREV_machine:qemuppc ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemuriscv64 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemuriscv32 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemux86 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemux86-64 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemumips64 ?= "8e7605bafdfeb842396292181d524b183a1e13d6"
-SRCREV_machine ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_meta ?= "d2cf51efb880ea1f34f4beaee487edf572e9adc3"
+SRCREV_machine:qemuarm ?= "09a926ab47d8072b7dc303cc8b99774abd792867"
+SRCREV_machine:qemuarm64 ?= "4d67f3ece8ca6f730f43ea8fdb9acf79c0c7bc46"
+SRCREV_machine:qemuloongarch64 ?= "4d67f3ece8ca6f730f43ea8fdb9acf79c0c7bc46"
+SRCREV_machine:qemumips ?= "b7fc266342fa1f6a304c54af0c8bc42b926bf1d8"
+SRCREV_machine:qemuppc ?= "4d67f3ece8ca6f730f43ea8fdb9acf79c0c7bc46"
+SRCREV_machine:qemuriscv64 ?= "4d67f3ece8ca6f730f43ea8fdb9acf79c0c7bc46"
+SRCREV_machine:qemuriscv32 ?= "4d67f3ece8ca6f730f43ea8fdb9acf79c0c7bc46"
+SRCREV_machine:qemux86 ?= "4d67f3ece8ca6f730f43ea8fdb9acf79c0c7bc46"
+SRCREV_machine:qemux86-64 ?= "4d67f3ece8ca6f730f43ea8fdb9acf79c0c7bc46"
+SRCREV_machine:qemumips64 ?= "fe3df2eeb1cca6792c09e6a6530671533ce584e5"
+SRCREV_machine ?= "4d67f3ece8ca6f730f43ea8fdb9acf79c0c7bc46"
+SRCREV_meta ?= "5b185a8716c8c62dc1c7751e6d12f8b67f58274f"
# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
# get the <version>/base branch, which is pure upstream -stable, and the same
# meta SRCREV as the linux-yocto-standard builds. Select your version using the
# normal PREFERRED_VERSION settings.
BBCLASSEXTEND = "devupstream:target"
-SRCREV_machine:class-devupstream ?= "9b4a8eac17f0d840729384618b4b1e876233026c"
+SRCREV_machine:class-devupstream ?= "62e5ae5007ef14cf9b12da6520d50fe90079d8d4"
PN:class-devupstream = "linux-yocto-upstream"
KBRANCH:class-devupstream = "v6.6/base"
@@ -44,7 +44,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "6.6.20"
+LINUX_VERSION ?= "6.6.21"
PV = "${LINUX_VERSION}+git"
--
2.39.2
^ permalink raw reply related [relevance 2%]
* [PATCH 4/9] yocto-bsps: update to v6.6.21
2024-03-19 23:01 2% ` [PATCH 3/9] linux-yocto/6.6: update to v6.6.21 bruce.ashfield
@ 2024-03-19 23:01 2% ` bruce.ashfield
1 sibling, 0 replies; 200+ results
From: bruce.ashfield @ 2024-03-19 23:01 UTC (permalink / raw)
To: richard.purdie; +Cc: openembedded-core
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Updating linux-yocto/6.6 to the latest korg -stable release that comprises
the following commits:
06644f0d7193 drm/tilcdc: Set preferred depth
62e5ae5007ef Linux 6.6.21
d6ac0ee5ff95 drm/nouveau: don't fini scheduler before entity flush
ece1aaec7f7e selftests: mptcp: rm subflow with v4/v4mapped addr
8e7f31bf1101 selftests: mptcp: add mptcp_lib_is_v6
9d71f43afd89 selftests: mptcp: update userspace pm test helpers
f9190d7995a7 selftests: mptcp: add chk_subflows_total helper
ae1fa39da991 selftests: mptcp: add evts_get_info helper
e81742f6e2eb KVM/VMX: Move VERW closer to VMentry for MDS mitigation
ae46691220f7 KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH
7a62647efcb2 x86/bugs: Use ALTERNATIVE() instead of mds_user_clear static key
ca13d8cd8dac x86/entry_32: Add VERW just before userspace transition
7caf330faf16 x86/entry_64: Add VERW just before userspace transition
2664bb298cdf block: define bvec_iter as __packed __aligned(4)
21bbe847686c gpio: fix resource unwinding order in error path
9c7c16109b71 gpiolib: Fix the error path order in gpiochip_add_data_with_key()
92515c4ef1b4 gpio: 74x164: Enable output pins after registers are reset
6b6282d56b14 powerpc/rtas: use correct function name for resetting TCE tables
d4d1e4b1513d powerpc/pseries/iommu: IOMMU table is not initialized for kdump over SR-IOV
5e3022ea42e4 dmaengine: idxd: Ensure safe user copy of completion record
4d6e793eacfb dmaengine: idxd: Remove shadow Event Log head stored in idxd
981917766b59 phy: freescale: phy-fsl-imx8-mipi-dphy: Fix alias name to use dashes
d24fe6d5a1cf dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup
227ef58a9b0c dmaengine: dw-edma: HDMA: Add sync read before starting the DMA transfer in remote setup
55501b7359ef dmaengine: dw-edma: Add HDMA remote interrupt configuration
3fa3dfcabf3a dmaengine: dw-edma: HDMA_V0_REMOTEL_STOP_INT_EN typo fix
8b5657ac34b7 dmaengine: dw-edma: Fix wrong interrupt bit set for HDMA
3adea99aa756 dmaengine: dw-edma: Fix the ch_count hdma callback
57e869be88d0 ASoC: cs35l56: fix reversed if statement in cs35l56_dspwait_asp1tx_put()
e9eac260369d af_unix: Drop oob_skb ref before purging queue in GC.
69e0f04460f4 af_unix: Fix task hung while purging oob_skb in GC.
be8a177250b2 NFS: Fix data corruption caused by congestion.
fa8c776f4c32 mptcp: fix possible deadlock in subflow diag
ce0809ada38d mptcp: fix double-free on socket dismantle
b609ecda2d76 mptcp: fix potential wake-up event loss
ae5530ccd5ef mptcp: fix snd_wnd initialization for passive socket
536a661bfdf4 selftests: mptcp: join: add ss mptcp support check
48428b07de4f mptcp: push at DSS boundaries
fca4e6ab0681 mptcp: avoid printing warning once on client side
a49ecbe8d0f0 mptcp: map v4 address to v6 when destroying subflow
dff60a5531b5 x86/cpu/intel: Detect TME keyid bits before setting MTRR mask registers
c43b984f0b23 x86/e820: Don't reserve SETUP_RNG_SEED in e820
d2a9510c0e39 mm/debug_vm_pgtable: fix BUG_ON with pud advanced test
e9eeb0dddf61 pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation
71da10e633a9 efivarfs: Request at most 512 bytes for variable names
f1fb745ee0a6 iommufd: Fix iopt_access_list_id overwrite bug
8db4f87fa3e1 kbuild: Add -Wa,--fatal-warnings to as-instr invocation
9537603a5436 riscv: add CALLER_ADDRx support
0c8a3d3354cd RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
aebd67a52edd mmc: sdhci-xenon: fix PHY init clock stability
b4eacb32e066 mmc: sdhci-xenon: add timeout for PHY init complete
4344444255a3 mmc: core: Fix eMMC initialization with 1-bit bus connection
176e66269f0d mmc: mmci: stm32: fix DMA API overlapping mappings warning
a69c8bbb9469 dmaengine: fsl-qdma: init irq after reg initialization
91b001fb0b08 dmaengine: fsl-edma: correct calculation of 'nbytes' in multi-fifo scenario
4e0fe154be7b dmaengine: ptdma: use consistent DMA masks
1291d278b557 crypto: arm64/neonbs - fix out-of-bounds access on short input
5b696e9c3882 dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
737d2e9300cd soc: qcom: pmic_glink: Fix boot when QRTR=m
82dacc26e15c drm/amd/display: Add monitor patch for specific eDP
5e476625fa8a drm/buddy: fix range bias
baac292852c0 Revert "drm/amd/pm: resolve reboot exception for si oland"
202e4f4bb858 btrfs: send: don't issue unnecessary zero writes for trailing hole
b1690ced4d2d btrfs: dev-replace: properly validate device names
eb3441093aad btrfs: fix double free of anonymous device after snapshot creation failure
177d574be4b5 wifi: nl80211: reject iftype change with mesh ID change
ad8ff8cff38d mtd: rawnand: marvell: fix layouts
ba60fdf75e89 mm: cachestat: fix folio read-after-free in cache walk
93dd420bc415 gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
f4906938bdd4 landlock: Fix asymmetric private inodes referring
0be289ba41bb Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid
a4904b3afed0 ALSA: hda/realtek: Add special fixup for Lenovo 14IRP8
5cdf76fbbed9 ALSA: hda/realtek: fix mute/micmute LED For HP mt440
46fb5e7ec337 ALSA: hda/realtek: Enable Mute LED on HP 840 G8 (MB 8AB8)
d6ac6ffbdc39 ALSA: hda/realtek: tas2781: enable subwoofer volume control
bb06ffbf3862 ALSA: ump: Fix the discard error code from snd_ump_legacy_open()
22df6ff560c5 ALSA: firewire-lib: fix to check cycle continuity
2caa60507948 tomoyo: fix UAF write bug in tomoyo_write_control()
6f72b4458ead of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing
d43f8e58f10a btrfs: fix race between ordered extent completion and fiemap
a278d5c60f21 riscv: Sparse-Memory/vmemmap out-of-bounds fix
eb2571673cfc riscv: Fix pte_leaf_size() for NAPOT
2b7ce74e19fc Revert "riscv: mm: support Svnapot in huge vmap"
e0d17ee872cf drivers: perf: ctr_get_width function for legacy is not defined
2f8c09478a2c drivers: perf: added capabilities for legacy PMU
f67898867b6b afs: Fix endless loop in directory parsing
73a6bd68a134 fbcon: always restore the old font data in fbcon_do_set_font()
8e8c66afe27b drm/tegra: Remove existing framebuffer only if we support display
274bf3cca13f RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
fb3618f6bd49 ASoC: soc-card: Fix missing locking in snd_soc_card_get_kcontrol()
4b5d89ace3ce ASoC: cs35l56: Fix deadlock in ASP1 mixer register initialization
9f05fe599965 ASoC: cs35l56: Fix misuse of wm_adsp 'part' string for silicon revision
c249f04f2bff ASoC: cs35l56: Fix for initializing ASP1 mixer registers
044edc12fe01 ASoC: cs35l56: Don't add the same register patch multiple times
a2f0a6846da8 ASoC: cs35l56: cs35l56_component_remove() must clean up wm_adsp
93fc01f9b58d ASoC: cs35l56: cs35l56_component_remove() must clear cs35l56->component
cc698db49b93 riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
99adc8b4d2f3 ASoC: qcom: Fix uninitialized pointer dmactl
841361d88fae ASoC: qcom: convert not to use asoc_xxx()
c92c96cda3e3 ASoC: soc.h: convert asoc_xxx() to snd_soc_xxx()
ac549defb351 ALSA: Drop leftover snd-rtctimer stuff from Makefile
4a7f5eff429b ASoC: cs35l56: Must clear HALO_STATE before issuing SYSTEM_RESET
fbca8bae1ba7 power: supply: bq27xxx-i2c: Do not free non existing IRQ
11aabd748785 efi/capsule-loader: fix incorrect allocation size
81be85353b0f tls: fix use-after-free on failed backlog decryption
dec5b6e7b211 tls: separate no-async decryption request handling from async
11121c2ce571 tls: fix peeking with sync+async decryption
c19fdb06d3d7 tls: decrement decrypt_pending if no async completion will be called
9422350aea63 net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
c88bf996e88b igb: extend PTP timestamp adjustments to i211
167d8642daa6 rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
dbc81b032dd0 tools: ynl: fix handling of multiple mcast groups
80cd0487f630 netfilter: bridge: confirm multicast packets before passing them up the stack
98567dc7973f netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
39e39c34abb5 Bluetooth: qca: Fix triggering coredump implementation
c50ce483c28a Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
fb3e827badce Bluetooth: qca: Fix wrong event type for patch config command
dcd646f40a56 Bluetooth: Enforce validation on max value of connection interval
fba268ac36ab Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
4a9139678ede Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR
6699d7ce263c Bluetooth: hci_sync: Fix accept_list when attempting to suspend
2ab9a19d896f Bluetooth: Avoid potential use-after-free in hci_error_reset
0a07fa1f61e4 Bluetooth: hci_sync: Check the correct flag before starting a scan
699b103e48ce stmmac: Clear variable when destroying workqueue
af6dfe9e9551 uapi: in6: replace temporary label with rfc9486
2ae3d9d1d8da net: lan78xx: fix "softirq work is pending" error
0ec3ea616a50 net: usb: dm9601: fix wrong return value in dm9601_mdio_read
2d8003e55d12 veth: try harder when allocating queue memory
288218b1dd26 lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
44112bc5c74e ipv6: fix potential "struct net" leak in inet6_rtm_getaddr()
16edf51f33f5 net: veth: clear GRO when clearing XDP even when down
1a8682737600 cpufreq: intel_pstate: fix pstate limits enforcement for adjust_perf call back
7322b217c6f0 tun: Fix xdp_rxq_info's queue_index when detaching
fbccbb4215ae net: dpaa: fman_memac: accept phy-interface-type = "10gbase-r" in the device tree
cbebc55ceace net: mctp: take ownership of skb in mctp_local_output
a0a1db40b23e net: ip_tunnel: prevent perpetual headroom growth
a2ab02815184 netlink: add nla be16/32 types to minlen array
d3ada42e534a netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter
03f1573c9587 spi: cadence-qspi: fix pointer reference in runtime PM hooks
c53b8d8f70c4 mtd: spinand: gigadevice: Fix the get ecc status issue
8cb8ef0c79e3 ublk: move ublk_cancel_dev() out of ub->mutex
2b5f1692a95b ksmbd: fix wrong allocation size update in smb2_open()
05059601518e ASoC: cs35l34: Fix GPIO name and drop legacy include
d3d782b5a5d3 ubifs: fix possible dereference after free
ff7ae7b32324 crypto: jitter - add RCT/APT support for different OSRs
50cd24ddb6f0 arm64: defconfig: remove CONFIG_IPQ_APSS_5018
58e5c91d6701 x86/alternatives: Disable interrupts and sync when optimizing NOPs in place
c878fd2d4c79 x86/alternatives: Sync core before enabling interrupts
c2d64b9f52b6 qemux86: add configuration symbol to select values
630c33229e6d sched/isolation: really align nohz_full with rcu_nocbs
0e5e0f68e2e6 clear_warn_once: add a clear_warn_once= boot parameter
46934791b902 clear_warn_once: bind a timer to written reset value
cdee9e38ff32 clear_warn_once: expand debugfs to include read support
82b562b81841 tools: Remove some options from CLANG_CROSS_FLAGS
36dc380b776b libbpf: Fix build warning on ref_ctr_off
9e3e1fe20982 perf: perf can not parser the backtrace of app in the 32bit system and 64bit kernel.
e497a4a5da65 perf: x86-32: explicitly include <errno.h>
7b57ddd89565 perf: mips64: Convert __u64 to unsigned long long
1cfc19423dc7 perf: fix bench numa compilation
98bc2815fade perf: add SLANG_INC for slang.h
17209a70b9b3 perf: add sgidefs.h to for mips builds
9cd4258d910a perf: change --root to --prefix for python install
8110a4f26628 perf: add 'libperl not found' warning
bc89d5e08f77 perf: force include of <stdbool.h>
4f6c760cc876 fat: Replace prandom_u32() with get_random_u32()
bc53117b12b2 fat: don't use obsolete random32 call in namei_vfat
30b2236ab378 FAT: Added FAT_NO_83NAME
cef98d22b4ed FAT: Add CONFIG_VFAT_NO_CREATE_WITH_LONGNAMES option
0bbd7daba9e1 FAT: Add CONFIG_VFAT_FS_NO_DUALNAMES option
5883fc340084 aufs6: adapt to v6.6 i_op->ctime changes
c4342d979bf2 aufs6: fix magic.mk include path
35266bc2dc81 aufs6: adapt to v6.6
8edede4e98be aufs6: core
712248233ebe aufs6: standalone
3b71a8a848d8 aufs6: mmap
3e2924871f37 aufs6: base
7f4907a93101 aufs6: kbuild
d2f7b03e4aa7 yaffs2: update VFS ctime operations to 6.6+
bcd6cfcd1aa0 yaffs2: v6.5 fixups
cc615704b5f5 yaffs2: Fix miscalculation of devname buffer length
8ef2e22dcf91 yaffs2: convert user_namespace to mnt_idmap
c9c749f9f7d3 yaffs2: replace bdevname call with sprintf
395b01cdc39d yaffs2: convert read_page -> readfolio
d98b07e43ba6 yaffs: replace IS_ERR with IS_ERR_OR_NULL to check both ERR and NULL
613c6d50fdbe yaffs: fix -Wstringop-overread compile warning in yaffs_fix_null_name
622c4648936f yaffs2: v5.12+ build fixups (not runtime tested)
7562133d4090 yaffs: include blkdev.h
dbd44252cd59 yaffs: fix misplaced variable declaration
c223a10b1ac0 yaffs2: v5.6 build fixups
90f6007cfbf4 yaffs2: fix memory leak when /proc/yaffs is read
37ee169c5ea1 yaffs: add strict check when call yaffs_internal_read_super
b6e007b8abb6 yaffs: repair yaffs_get_mtd_device
fb98f65a466a yaffs: Fix build failure by handling inode i_version with proper atomic API
51e0aac75ea2 yaffs2: fix memory leak in mount/umount
2b74a0cae7b0 yaffs: Avoid setting any ACL releated xattr
ff4130a9c376 Yaffs:check oob size before auto selecting Yaffs1
ba95b409c67c fs: yaffs2: replace CURRENT_TIME by other appropriate apis
8fa35eba9056 yaffs2: adjust to proper location of MS_RDONLY
1eb5deaad8c4 yaffs2: import git revision b4ce1bb (jan, 2020)
4dce67c1e8c8 initramfs: allow an optional wrapper script around initramfs generation
2f603d83fcc4 pnmtologo: use relocatable file name
664a6a0a484b tools: use basename to identify file in gen-mach-types
9de64bc0c185 lib/build_OID_registry: fix reproducibility issues
ae9b80797295 vt/conmakehash: improve reproducibility
a972323151bd iwlwifi: select MAC80211_LEDS conditionally
15d2adcc0198 net/dccp: make it depend on CONFIG_BROKEN (CVE-2020-16119)
5556a6c04b19 arm64/perf: Fix wrong cast that may cause wrong truncation
5552dc768ffc defconfigs: drop obselete options
00fe4152df31 arm64/perf: fix backtrace for AAPCS with FP enabled
3888d0652edf linux-yocto: Handle /bin/awk issues
3d55d299f23a uvesafb: provide option to specify timeout for task completion
23c068c080be uvesafb: print error message when task timeout occurs
edbfc939266e compiler.h: Undef before redefining __attribute_const__
c99ae7e2a19a vmware: include jiffies.h
572d84d928c8 Resolve jiffies wrapping about arp
fdcd47cac843 nfs: Allow default io size to be configured.
927d48801098 check console device file on fs when booting
57cc27f821dd mount_root: clarify error messages for when no rootfs found
1b53d82a8152 mconf: fix output of cflags and libraries
1811da09f42c menuconfig,mconf-cfg: Allow specification of ncurses location
83c2e0c6eb1f modpost: mask trivial warnings
6de673039484 kbuild: exclude meta directory from distclean processing
6decd32815f5 powerpc: serialize image targets
f6b683b38318 arm: serialize build targets
e798b09ebf57 mtd_blkdevs: add mtd_table_mutex lock back to blktrans_{open, release} to avoid race condition
dc8a1e5a88f8 x86_64_defconfig: Fix warnings
68491e5f72b6 powerpc/ptrace: Disable array-bounds warning with gcc8
d71ebfce3004 powerpc: Disable attribute-alias warnings from gcc8
62f50884b8b1 powerpc: kexec fix for powerpc64
da6871c62c37 powerpc: Add unwind information for SPE registers of E500 core
f161c880c11d mips: make current_cpu_data preempt safe
5e94a8247ce7 mips: vdso: fix 'jalr $t9' crash in vdso code
19e36714b1c7 mips: Kconfig: add QEMUMIPS64 option
e2e537db3cbd 4kc cache tlb hazard: tlbp cache coherency
aee9870611e5 malta uhci quirks: make allowance for slow 4k(e)c
881948cd1517 drm/fb-helper: move zeroing code to drm_fb_helper_fill_var
98ec1963fcb7 arm64: defconfig: cleanup config options
f1727c537ba8 vexpress: Pass LOADADDR to Makefile
4474c32dc24a arm: ARM EABI socketcall
75e31a2b70fd ARM: LPAE: Invalidate the TLB for module addresses during translation fault
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
.../recipes-kernel/linux/linux-yocto_6.6.bbappend | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend
index ca7b2b09df..bf88a57770 100644
--- a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend
+++ b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend
@@ -9,16 +9,16 @@ KMACHINE:genericx86-64 ?= "common-pc-64"
KMACHINE:beaglebone-yocto ?= "beaglebone"
SRCREV_machine:genericarm64 ?= "e064a7d658a30b027b999183e21cd37305caff2a"
-SRCREV_machine:genericx86 ?= "332d4668fcc32826907d4f3c4938845206006089"
-SRCREV_machine:genericx86-64 ?= "332d4668fcc32826907d4f3c4938845206006089"
-SRCREV_machine:beaglebone-yocto ?= "332d4668fcc32826907d4f3c4938845206006089"
+SRCREV_machine:genericx86 ?= "06644f0d7193d7ec39d7fe41939a21953e7a0c65"
+SRCREV_machine:genericx86-64 ?= "06644f0d7193d7ec39d7fe41939a21953e7a0c65"
+SRCREV_machine:beaglebone-yocto ?= "06644f0d7193d7ec39d7fe41939a21953e7a0c65"
COMPATIBLE_MACHINE:genericarm64 = "genericarm64"
COMPATIBLE_MACHINE:genericx86 = "genericx86"
COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64"
COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto"
-LINUX_VERSION:genericarm64 = "6.6.18"
-LINUX_VERSION:genericx86 = "6.6.15"
-LINUX_VERSION:genericx86-64 = "6.6.15"
-LINUX_VERSION:beaglebone-yocto = "6.6.15"
+LINUX_VERSION:genericarm64 = "6.6.21-116-g06644f0d7193"
+LINUX_VERSION:genericx86 = "6.6.21-116-g06644f0d7193"
+LINUX_VERSION:genericx86-64 = "6.6.21-116-g06644f0d7193"
+LINUX_VERSION:beaglebone-yocto = "6.6.21-116-g06644f0d7193"
--
2.39.2
^ permalink raw reply related [relevance 2%]
* Re: [PATCH v10 08/12] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
2024-03-13 4:21 5% ` Rohan McLure
(?)
(?)
@ 2024-03-13 10:33 0% ` Christophe Leroy
-1 siblings, 0 replies; 200+ results
From: Christophe Leroy @ 2024-03-13 10:33 UTC (permalink / raw)
To: Rohan McLure, linuxppc-dev; +Cc: linux-riscv, x86, linux-arm-kernel, linux-mm
Hi,
Le 13/03/2024 à 05:21, Rohan McLure a écrit :
> Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
> latter is the name given to checking that a higher-level entry in
> multi-level paging contains a page translation entry (pte) throughout
> all other archs.
There's already an equivalent commit in mm-stable, that will likely go
into v6.9:
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/commit/?h=mm-stable&id=bd18b688220c7225fb50498dabd9f9d0c9988e67
>
> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
> ---
> v9: No longer required in order to implement page table check, just a
> refactor.
> v10: Fix more occurances, and just delete p{u,m,4}_is_leaf() stubs as
> equivalent p{u,m,4}_leaf() stubs already exist.
> ---
> arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
> arch/powerpc/include/asm/pgtable.h | 24 --------------------
> arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
> arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
> arch/powerpc/mm/pgtable.c | 6 ++---
> arch/powerpc/mm/pgtable_64.c | 6 ++---
> arch/powerpc/xmon/xmon.c | 6 ++---
> 7 files changed, 26 insertions(+), 52 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
> index 62c43d3d80ec..382724c5e872 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
> @@ -1443,16 +1443,14 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
> /*
> * Like pmd_huge() and pmd_large(), but works regardless of config options
> */
> -#define pmd_is_leaf pmd_is_leaf
> -#define pmd_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> +#define pmd_leaf pmd_leaf
> +static inline bool pmd_leaf(pmd_t pmd)
> {
> return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
> }
>
> -#define pud_is_leaf pud_is_leaf
> -#define pud_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> +#define pud_leaf pud_leaf
> +static inline bool pud_leaf(pud_t pud)
> {
> return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
> }
> diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
> index 9224f23065ff..0c0ffbe7a3b5 100644
> --- a/arch/powerpc/include/asm/pgtable.h
> +++ b/arch/powerpc/include/asm/pgtable.h
> @@ -180,30 +180,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
> }
> #endif
>
> -#ifndef pmd_is_leaf
> -#define pmd_is_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef pud_is_leaf
> -#define pud_is_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef p4d_is_leaf
> -#define p4d_is_leaf p4d_is_leaf
> -static inline bool p4d_is_leaf(p4d_t p4d)
> -{
> - return false;
> -}
> -#endif
> -
> #define pmd_pgtable pmd_pgtable
> static inline pgtable_t pmd_pgtable(pmd_t pmd)
> {
> diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> index 4a1abb9f7c05..408d98f8a514 100644
> --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
> +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> @@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
> for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
> if (!pmd_present(*p))
> continue;
> - if (pmd_is_leaf(*p)) {
> + if (pmd_leaf(*p)) {
> if (full) {
> pmd_clear(p);
> } else {
> @@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
> for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
> if (!pud_present(*p))
> continue;
> - if (pud_is_leaf(*p)) {
> + if (pud_leaf(*p)) {
> pud_clear(p);
> } else {
> pmd_t *pmd;
> @@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = pud_alloc_one(kvm->mm, gpa);
>
> pmd = NULL;
> - if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
> + if (pud && pud_present(*pud) && !pud_leaf(*pud))
> pmd = pmd_offset(pud, gpa);
> else if (level <= 1)
> new_pmd = kvmppc_pmd_alloc();
>
> - if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
> + if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
> new_ptep = kvmppc_pte_alloc();
>
> /* Check if we might have been invalidated; let the guest retry if so */
> @@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = NULL;
> }
> pud = pud_offset(p4d, gpa);
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> unsigned long hgpa = gpa & PUD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> @@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pmd = NULL;
> }
> pmd = pmd_offset(pud, gpa);
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> unsigned long lgpa = gpa & PMD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> index e16e2fd104c5..46fa46ce6526 100644
> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> @@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
> pudp = pud_alloc(&init_mm, p4dp, idx);
> if (!pudp)
> continue;
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> ptep = (pte_t *)pudp;
> goto update_the_pte;
> }
> pmdp = pmd_alloc(&init_mm, pudp, idx);
> if (!pmdp)
> continue;
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> ptep = pmdp_ptep(pmdp);
> goto update_the_pte;
> }
> @@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
> if (!pmd_present(*pmd))
> continue;
>
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> if (IS_ALIGNED(addr, PMD_SIZE) &&
> IS_ALIGNED(next, PMD_SIZE)) {
> if (!direct)
> @@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
> if (!pud_present(*pud))
> continue;
>
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> if (!IS_ALIGNED(addr, PUD_SIZE) ||
> !IS_ALIGNED(next, PUD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
> if (!p4d_present(*p4d))
> continue;
>
> - if (p4d_is_leaf(*p4d)) {
> + if (p4d_leaf(*p4d)) {
> if (!IS_ALIGNED(addr, P4D_SIZE) ||
> !IS_ALIGNED(next, P4D_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -1540,7 +1540,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>
> int pud_clear_huge(pud_t *pud)
> {
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> pud_clear(pud);
> return 1;
> }
> @@ -1587,7 +1587,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>
> int pmd_clear_huge(pmd_t *pmd)
> {
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> pmd_clear(pmd);
> return 1;
> }
> diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
> index a04ae4449a02..e8e0289d7ab0 100644
> --- a/arch/powerpc/mm/pgtable.c
> +++ b/arch/powerpc/mm/pgtable.c
> @@ -413,7 +413,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (p4d_none(p4d))
> return NULL;
>
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> ret_pte = (pte_t *)p4dp;
> goto out;
> }
> @@ -435,7 +435,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (pud_none(pud))
> return NULL;
>
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> ret_pte = (pte_t *)pudp;
> goto out;
> }
> @@ -474,7 +474,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> goto out;
> }
>
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> ret_pte = (pte_t *)pmdp;
> goto out;
> }
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index 5ac1fd30341b..0604c80dae66 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
> /* 4 level page table */
> struct page *p4d_page(p4d_t p4d)
> {
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!p4d_huge(p4d));
> return pte_page(p4d_pte(p4d));
> @@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
>
> struct page *pud_page(pud_t pud)
> {
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!pud_huge(pud));
> return pte_page(pud_pte(pud));
> @@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
> */
> struct page *pmd_page(pmd_t pmd)
> {
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> /*
> * vmalloc_to_page may be called on any vmap address (not only
> * vmalloc), and it uses pmd_page() etc., when huge vmap is
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index c85fa3f0dd3b..d79d6633f333 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -3340,7 +3340,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (p4d_is_leaf(*p4dp)) {
> + if (p4d_leaf(*p4dp)) {
> format_pte(p4dp, p4d_val(*p4dp));
> return;
> }
> @@ -3354,7 +3354,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> format_pte(pudp, pud_val(*pudp));
> return;
> }
> @@ -3368,7 +3368,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> format_pte(pmdp, pmd_val(*pmdp));
> return;
> }
^ permalink raw reply [relevance 0%]
* Re: [PATCH v10 08/12] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
@ 2024-03-13 10:33 0% ` Christophe Leroy
0 siblings, 0 replies; 200+ results
From: Christophe Leroy @ 2024-03-13 10:33 UTC (permalink / raw)
To: Rohan McLure, linuxppc-dev
Cc: mpe, linux-mm, linux-riscv, linux-arm-kernel, x86
Hi,
Le 13/03/2024 à 05:21, Rohan McLure a écrit :
> Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
> latter is the name given to checking that a higher-level entry in
> multi-level paging contains a page translation entry (pte) throughout
> all other archs.
There's already an equivalent commit in mm-stable, that will likely go
into v6.9:
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/commit/?h=mm-stable&id=bd18b688220c7225fb50498dabd9f9d0c9988e67
>
> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
> ---
> v9: No longer required in order to implement page table check, just a
> refactor.
> v10: Fix more occurances, and just delete p{u,m,4}_is_leaf() stubs as
> equivalent p{u,m,4}_leaf() stubs already exist.
> ---
> arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
> arch/powerpc/include/asm/pgtable.h | 24 --------------------
> arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
> arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
> arch/powerpc/mm/pgtable.c | 6 ++---
> arch/powerpc/mm/pgtable_64.c | 6 ++---
> arch/powerpc/xmon/xmon.c | 6 ++---
> 7 files changed, 26 insertions(+), 52 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
> index 62c43d3d80ec..382724c5e872 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
> @@ -1443,16 +1443,14 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
> /*
> * Like pmd_huge() and pmd_large(), but works regardless of config options
> */
> -#define pmd_is_leaf pmd_is_leaf
> -#define pmd_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> +#define pmd_leaf pmd_leaf
> +static inline bool pmd_leaf(pmd_t pmd)
> {
> return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
> }
>
> -#define pud_is_leaf pud_is_leaf
> -#define pud_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> +#define pud_leaf pud_leaf
> +static inline bool pud_leaf(pud_t pud)
> {
> return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
> }
> diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
> index 9224f23065ff..0c0ffbe7a3b5 100644
> --- a/arch/powerpc/include/asm/pgtable.h
> +++ b/arch/powerpc/include/asm/pgtable.h
> @@ -180,30 +180,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
> }
> #endif
>
> -#ifndef pmd_is_leaf
> -#define pmd_is_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef pud_is_leaf
> -#define pud_is_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef p4d_is_leaf
> -#define p4d_is_leaf p4d_is_leaf
> -static inline bool p4d_is_leaf(p4d_t p4d)
> -{
> - return false;
> -}
> -#endif
> -
> #define pmd_pgtable pmd_pgtable
> static inline pgtable_t pmd_pgtable(pmd_t pmd)
> {
> diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> index 4a1abb9f7c05..408d98f8a514 100644
> --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
> +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> @@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
> for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
> if (!pmd_present(*p))
> continue;
> - if (pmd_is_leaf(*p)) {
> + if (pmd_leaf(*p)) {
> if (full) {
> pmd_clear(p);
> } else {
> @@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
> for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
> if (!pud_present(*p))
> continue;
> - if (pud_is_leaf(*p)) {
> + if (pud_leaf(*p)) {
> pud_clear(p);
> } else {
> pmd_t *pmd;
> @@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = pud_alloc_one(kvm->mm, gpa);
>
> pmd = NULL;
> - if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
> + if (pud && pud_present(*pud) && !pud_leaf(*pud))
> pmd = pmd_offset(pud, gpa);
> else if (level <= 1)
> new_pmd = kvmppc_pmd_alloc();
>
> - if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
> + if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
> new_ptep = kvmppc_pte_alloc();
>
> /* Check if we might have been invalidated; let the guest retry if so */
> @@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = NULL;
> }
> pud = pud_offset(p4d, gpa);
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> unsigned long hgpa = gpa & PUD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> @@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pmd = NULL;
> }
> pmd = pmd_offset(pud, gpa);
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> unsigned long lgpa = gpa & PMD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> index e16e2fd104c5..46fa46ce6526 100644
> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> @@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
> pudp = pud_alloc(&init_mm, p4dp, idx);
> if (!pudp)
> continue;
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> ptep = (pte_t *)pudp;
> goto update_the_pte;
> }
> pmdp = pmd_alloc(&init_mm, pudp, idx);
> if (!pmdp)
> continue;
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> ptep = pmdp_ptep(pmdp);
> goto update_the_pte;
> }
> @@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
> if (!pmd_present(*pmd))
> continue;
>
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> if (IS_ALIGNED(addr, PMD_SIZE) &&
> IS_ALIGNED(next, PMD_SIZE)) {
> if (!direct)
> @@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
> if (!pud_present(*pud))
> continue;
>
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> if (!IS_ALIGNED(addr, PUD_SIZE) ||
> !IS_ALIGNED(next, PUD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
> if (!p4d_present(*p4d))
> continue;
>
> - if (p4d_is_leaf(*p4d)) {
> + if (p4d_leaf(*p4d)) {
> if (!IS_ALIGNED(addr, P4D_SIZE) ||
> !IS_ALIGNED(next, P4D_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -1540,7 +1540,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>
> int pud_clear_huge(pud_t *pud)
> {
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> pud_clear(pud);
> return 1;
> }
> @@ -1587,7 +1587,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>
> int pmd_clear_huge(pmd_t *pmd)
> {
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> pmd_clear(pmd);
> return 1;
> }
> diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
> index a04ae4449a02..e8e0289d7ab0 100644
> --- a/arch/powerpc/mm/pgtable.c
> +++ b/arch/powerpc/mm/pgtable.c
> @@ -413,7 +413,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (p4d_none(p4d))
> return NULL;
>
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> ret_pte = (pte_t *)p4dp;
> goto out;
> }
> @@ -435,7 +435,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (pud_none(pud))
> return NULL;
>
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> ret_pte = (pte_t *)pudp;
> goto out;
> }
> @@ -474,7 +474,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> goto out;
> }
>
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> ret_pte = (pte_t *)pmdp;
> goto out;
> }
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index 5ac1fd30341b..0604c80dae66 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
> /* 4 level page table */
> struct page *p4d_page(p4d_t p4d)
> {
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!p4d_huge(p4d));
> return pte_page(p4d_pte(p4d));
> @@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
>
> struct page *pud_page(pud_t pud)
> {
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!pud_huge(pud));
> return pte_page(pud_pte(pud));
> @@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
> */
> struct page *pmd_page(pmd_t pmd)
> {
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> /*
> * vmalloc_to_page may be called on any vmap address (not only
> * vmalloc), and it uses pmd_page() etc., when huge vmap is
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index c85fa3f0dd3b..d79d6633f333 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -3340,7 +3340,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (p4d_is_leaf(*p4dp)) {
> + if (p4d_leaf(*p4dp)) {
> format_pte(p4dp, p4d_val(*p4dp));
> return;
> }
> @@ -3354,7 +3354,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> format_pte(pudp, pud_val(*pudp));
> return;
> }
> @@ -3368,7 +3368,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> format_pte(pmdp, pmd_val(*pmdp));
> return;
> }
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [relevance 0%]
* Re: [PATCH v10 08/12] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
@ 2024-03-13 10:33 0% ` Christophe Leroy
0 siblings, 0 replies; 200+ results
From: Christophe Leroy @ 2024-03-13 10:33 UTC (permalink / raw)
To: Rohan McLure, linuxppc-dev
Cc: mpe, linux-mm, linux-riscv, linux-arm-kernel, x86
Hi,
Le 13/03/2024 à 05:21, Rohan McLure a écrit :
> Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
> latter is the name given to checking that a higher-level entry in
> multi-level paging contains a page translation entry (pte) throughout
> all other archs.
There's already an equivalent commit in mm-stable, that will likely go
into v6.9:
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/commit/?h=mm-stable&id=bd18b688220c7225fb50498dabd9f9d0c9988e67
>
> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
> ---
> v9: No longer required in order to implement page table check, just a
> refactor.
> v10: Fix more occurances, and just delete p{u,m,4}_is_leaf() stubs as
> equivalent p{u,m,4}_leaf() stubs already exist.
> ---
> arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
> arch/powerpc/include/asm/pgtable.h | 24 --------------------
> arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
> arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
> arch/powerpc/mm/pgtable.c | 6 ++---
> arch/powerpc/mm/pgtable_64.c | 6 ++---
> arch/powerpc/xmon/xmon.c | 6 ++---
> 7 files changed, 26 insertions(+), 52 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
> index 62c43d3d80ec..382724c5e872 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
> @@ -1443,16 +1443,14 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
> /*
> * Like pmd_huge() and pmd_large(), but works regardless of config options
> */
> -#define pmd_is_leaf pmd_is_leaf
> -#define pmd_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> +#define pmd_leaf pmd_leaf
> +static inline bool pmd_leaf(pmd_t pmd)
> {
> return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
> }
>
> -#define pud_is_leaf pud_is_leaf
> -#define pud_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> +#define pud_leaf pud_leaf
> +static inline bool pud_leaf(pud_t pud)
> {
> return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
> }
> diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
> index 9224f23065ff..0c0ffbe7a3b5 100644
> --- a/arch/powerpc/include/asm/pgtable.h
> +++ b/arch/powerpc/include/asm/pgtable.h
> @@ -180,30 +180,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
> }
> #endif
>
> -#ifndef pmd_is_leaf
> -#define pmd_is_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef pud_is_leaf
> -#define pud_is_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef p4d_is_leaf
> -#define p4d_is_leaf p4d_is_leaf
> -static inline bool p4d_is_leaf(p4d_t p4d)
> -{
> - return false;
> -}
> -#endif
> -
> #define pmd_pgtable pmd_pgtable
> static inline pgtable_t pmd_pgtable(pmd_t pmd)
> {
> diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> index 4a1abb9f7c05..408d98f8a514 100644
> --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
> +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> @@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
> for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
> if (!pmd_present(*p))
> continue;
> - if (pmd_is_leaf(*p)) {
> + if (pmd_leaf(*p)) {
> if (full) {
> pmd_clear(p);
> } else {
> @@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
> for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
> if (!pud_present(*p))
> continue;
> - if (pud_is_leaf(*p)) {
> + if (pud_leaf(*p)) {
> pud_clear(p);
> } else {
> pmd_t *pmd;
> @@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = pud_alloc_one(kvm->mm, gpa);
>
> pmd = NULL;
> - if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
> + if (pud && pud_present(*pud) && !pud_leaf(*pud))
> pmd = pmd_offset(pud, gpa);
> else if (level <= 1)
> new_pmd = kvmppc_pmd_alloc();
>
> - if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
> + if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
> new_ptep = kvmppc_pte_alloc();
>
> /* Check if we might have been invalidated; let the guest retry if so */
> @@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = NULL;
> }
> pud = pud_offset(p4d, gpa);
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> unsigned long hgpa = gpa & PUD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> @@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pmd = NULL;
> }
> pmd = pmd_offset(pud, gpa);
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> unsigned long lgpa = gpa & PMD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> index e16e2fd104c5..46fa46ce6526 100644
> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> @@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
> pudp = pud_alloc(&init_mm, p4dp, idx);
> if (!pudp)
> continue;
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> ptep = (pte_t *)pudp;
> goto update_the_pte;
> }
> pmdp = pmd_alloc(&init_mm, pudp, idx);
> if (!pmdp)
> continue;
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> ptep = pmdp_ptep(pmdp);
> goto update_the_pte;
> }
> @@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
> if (!pmd_present(*pmd))
> continue;
>
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> if (IS_ALIGNED(addr, PMD_SIZE) &&
> IS_ALIGNED(next, PMD_SIZE)) {
> if (!direct)
> @@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
> if (!pud_present(*pud))
> continue;
>
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> if (!IS_ALIGNED(addr, PUD_SIZE) ||
> !IS_ALIGNED(next, PUD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
> if (!p4d_present(*p4d))
> continue;
>
> - if (p4d_is_leaf(*p4d)) {
> + if (p4d_leaf(*p4d)) {
> if (!IS_ALIGNED(addr, P4D_SIZE) ||
> !IS_ALIGNED(next, P4D_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -1540,7 +1540,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>
> int pud_clear_huge(pud_t *pud)
> {
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> pud_clear(pud);
> return 1;
> }
> @@ -1587,7 +1587,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>
> int pmd_clear_huge(pmd_t *pmd)
> {
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> pmd_clear(pmd);
> return 1;
> }
> diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
> index a04ae4449a02..e8e0289d7ab0 100644
> --- a/arch/powerpc/mm/pgtable.c
> +++ b/arch/powerpc/mm/pgtable.c
> @@ -413,7 +413,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (p4d_none(p4d))
> return NULL;
>
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> ret_pte = (pte_t *)p4dp;
> goto out;
> }
> @@ -435,7 +435,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (pud_none(pud))
> return NULL;
>
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> ret_pte = (pte_t *)pudp;
> goto out;
> }
> @@ -474,7 +474,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> goto out;
> }
>
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> ret_pte = (pte_t *)pmdp;
> goto out;
> }
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index 5ac1fd30341b..0604c80dae66 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
> /* 4 level page table */
> struct page *p4d_page(p4d_t p4d)
> {
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!p4d_huge(p4d));
> return pte_page(p4d_pte(p4d));
> @@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
>
> struct page *pud_page(pud_t pud)
> {
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!pud_huge(pud));
> return pte_page(pud_pte(pud));
> @@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
> */
> struct page *pmd_page(pmd_t pmd)
> {
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> /*
> * vmalloc_to_page may be called on any vmap address (not only
> * vmalloc), and it uses pmd_page() etc., when huge vmap is
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index c85fa3f0dd3b..d79d6633f333 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -3340,7 +3340,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (p4d_is_leaf(*p4dp)) {
> + if (p4d_leaf(*p4dp)) {
> format_pte(p4dp, p4d_val(*p4dp));
> return;
> }
> @@ -3354,7 +3354,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> format_pte(pudp, pud_val(*pudp));
> return;
> }
> @@ -3368,7 +3368,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> format_pte(pmdp, pmd_val(*pmdp));
> return;
> }
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* Re: [PATCH v10 08/12] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
@ 2024-03-13 10:33 0% ` Christophe Leroy
0 siblings, 0 replies; 200+ results
From: Christophe Leroy @ 2024-03-13 10:33 UTC (permalink / raw)
To: Rohan McLure, linuxppc-dev
Cc: mpe, linux-mm, linux-riscv, linux-arm-kernel, x86
Hi,
Le 13/03/2024 à 05:21, Rohan McLure a écrit :
> Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
> latter is the name given to checking that a higher-level entry in
> multi-level paging contains a page translation entry (pte) throughout
> all other archs.
There's already an equivalent commit in mm-stable, that will likely go
into v6.9:
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/commit/?h=mm-stable&id=bd18b688220c7225fb50498dabd9f9d0c9988e67
>
> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
> ---
> v9: No longer required in order to implement page table check, just a
> refactor.
> v10: Fix more occurances, and just delete p{u,m,4}_is_leaf() stubs as
> equivalent p{u,m,4}_leaf() stubs already exist.
> ---
> arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
> arch/powerpc/include/asm/pgtable.h | 24 --------------------
> arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
> arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
> arch/powerpc/mm/pgtable.c | 6 ++---
> arch/powerpc/mm/pgtable_64.c | 6 ++---
> arch/powerpc/xmon/xmon.c | 6 ++---
> 7 files changed, 26 insertions(+), 52 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
> index 62c43d3d80ec..382724c5e872 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
> @@ -1443,16 +1443,14 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
> /*
> * Like pmd_huge() and pmd_large(), but works regardless of config options
> */
> -#define pmd_is_leaf pmd_is_leaf
> -#define pmd_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> +#define pmd_leaf pmd_leaf
> +static inline bool pmd_leaf(pmd_t pmd)
> {
> return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
> }
>
> -#define pud_is_leaf pud_is_leaf
> -#define pud_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> +#define pud_leaf pud_leaf
> +static inline bool pud_leaf(pud_t pud)
> {
> return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
> }
> diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
> index 9224f23065ff..0c0ffbe7a3b5 100644
> --- a/arch/powerpc/include/asm/pgtable.h
> +++ b/arch/powerpc/include/asm/pgtable.h
> @@ -180,30 +180,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
> }
> #endif
>
> -#ifndef pmd_is_leaf
> -#define pmd_is_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef pud_is_leaf
> -#define pud_is_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef p4d_is_leaf
> -#define p4d_is_leaf p4d_is_leaf
> -static inline bool p4d_is_leaf(p4d_t p4d)
> -{
> - return false;
> -}
> -#endif
> -
> #define pmd_pgtable pmd_pgtable
> static inline pgtable_t pmd_pgtable(pmd_t pmd)
> {
> diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> index 4a1abb9f7c05..408d98f8a514 100644
> --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
> +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> @@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
> for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
> if (!pmd_present(*p))
> continue;
> - if (pmd_is_leaf(*p)) {
> + if (pmd_leaf(*p)) {
> if (full) {
> pmd_clear(p);
> } else {
> @@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
> for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
> if (!pud_present(*p))
> continue;
> - if (pud_is_leaf(*p)) {
> + if (pud_leaf(*p)) {
> pud_clear(p);
> } else {
> pmd_t *pmd;
> @@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = pud_alloc_one(kvm->mm, gpa);
>
> pmd = NULL;
> - if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
> + if (pud && pud_present(*pud) && !pud_leaf(*pud))
> pmd = pmd_offset(pud, gpa);
> else if (level <= 1)
> new_pmd = kvmppc_pmd_alloc();
>
> - if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
> + if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
> new_ptep = kvmppc_pte_alloc();
>
> /* Check if we might have been invalidated; let the guest retry if so */
> @@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = NULL;
> }
> pud = pud_offset(p4d, gpa);
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> unsigned long hgpa = gpa & PUD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> @@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pmd = NULL;
> }
> pmd = pmd_offset(pud, gpa);
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> unsigned long lgpa = gpa & PMD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> index e16e2fd104c5..46fa46ce6526 100644
> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> @@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
> pudp = pud_alloc(&init_mm, p4dp, idx);
> if (!pudp)
> continue;
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> ptep = (pte_t *)pudp;
> goto update_the_pte;
> }
> pmdp = pmd_alloc(&init_mm, pudp, idx);
> if (!pmdp)
> continue;
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> ptep = pmdp_ptep(pmdp);
> goto update_the_pte;
> }
> @@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
> if (!pmd_present(*pmd))
> continue;
>
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> if (IS_ALIGNED(addr, PMD_SIZE) &&
> IS_ALIGNED(next, PMD_SIZE)) {
> if (!direct)
> @@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
> if (!pud_present(*pud))
> continue;
>
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> if (!IS_ALIGNED(addr, PUD_SIZE) ||
> !IS_ALIGNED(next, PUD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
> if (!p4d_present(*p4d))
> continue;
>
> - if (p4d_is_leaf(*p4d)) {
> + if (p4d_leaf(*p4d)) {
> if (!IS_ALIGNED(addr, P4D_SIZE) ||
> !IS_ALIGNED(next, P4D_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -1540,7 +1540,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>
> int pud_clear_huge(pud_t *pud)
> {
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> pud_clear(pud);
> return 1;
> }
> @@ -1587,7 +1587,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>
> int pmd_clear_huge(pmd_t *pmd)
> {
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> pmd_clear(pmd);
> return 1;
> }
> diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
> index a04ae4449a02..e8e0289d7ab0 100644
> --- a/arch/powerpc/mm/pgtable.c
> +++ b/arch/powerpc/mm/pgtable.c
> @@ -413,7 +413,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (p4d_none(p4d))
> return NULL;
>
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> ret_pte = (pte_t *)p4dp;
> goto out;
> }
> @@ -435,7 +435,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (pud_none(pud))
> return NULL;
>
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> ret_pte = (pte_t *)pudp;
> goto out;
> }
> @@ -474,7 +474,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> goto out;
> }
>
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> ret_pte = (pte_t *)pmdp;
> goto out;
> }
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index 5ac1fd30341b..0604c80dae66 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
> /* 4 level page table */
> struct page *p4d_page(p4d_t p4d)
> {
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!p4d_huge(p4d));
> return pte_page(p4d_pte(p4d));
> @@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
>
> struct page *pud_page(pud_t pud)
> {
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!pud_huge(pud));
> return pte_page(pud_pte(pud));
> @@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
> */
> struct page *pmd_page(pmd_t pmd)
> {
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> /*
> * vmalloc_to_page may be called on any vmap address (not only
> * vmalloc), and it uses pmd_page() etc., when huge vmap is
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index c85fa3f0dd3b..d79d6633f333 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -3340,7 +3340,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (p4d_is_leaf(*p4dp)) {
> + if (p4d_leaf(*p4dp)) {
> format_pte(p4dp, p4d_val(*p4dp));
> return;
> }
> @@ -3354,7 +3354,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> format_pte(pudp, pud_val(*pudp));
> return;
> }
> @@ -3368,7 +3368,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> format_pte(pmdp, pmd_val(*pmdp));
> return;
> }
^ permalink raw reply [relevance 0%]
* [PATCH v10 08/12] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
2024-03-13 4:21 5% ` Rohan McLure
@ 2024-03-13 4:21 5% ` Rohan McLure
0 siblings, 0 replies; 200+ results
From: Rohan McLure @ 2024-03-13 4:21 UTC (permalink / raw)
To: linuxppc-dev; +Cc: x86, linux-mm, Rohan McLure, linux-riscv, linux-arm-kernel
Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
latter is the name given to checking that a higher-level entry in
multi-level paging contains a page translation entry (pte) throughout
all other archs.
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
---
v9: No longer required in order to implement page table check, just a
refactor.
v10: Fix more occurances, and just delete p{u,m,4}_is_leaf() stubs as
equivalent p{u,m,4}_leaf() stubs already exist.
---
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
arch/powerpc/include/asm/pgtable.h | 24 --------------------
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
arch/powerpc/mm/pgtable.c | 6 ++---
arch/powerpc/mm/pgtable_64.c | 6 ++---
arch/powerpc/xmon/xmon.c | 6 ++---
7 files changed, 26 insertions(+), 52 deletions(-)
diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
index 62c43d3d80ec..382724c5e872 100644
--- a/arch/powerpc/include/asm/book3s/64/pgtable.h
+++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -1443,16 +1443,14 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
/*
* Like pmd_huge() and pmd_large(), but works regardless of config options
*/
-#define pmd_is_leaf pmd_is_leaf
-#define pmd_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
+#define pmd_leaf pmd_leaf
+static inline bool pmd_leaf(pmd_t pmd)
{
return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
}
-#define pud_is_leaf pud_is_leaf
-#define pud_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
+#define pud_leaf pud_leaf
+static inline bool pud_leaf(pud_t pud)
{
return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
}
diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index 9224f23065ff..0c0ffbe7a3b5 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h
@@ -180,30 +180,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
}
#endif
-#ifndef pmd_is_leaf
-#define pmd_is_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
-{
- return false;
-}
-#endif
-
-#ifndef pud_is_leaf
-#define pud_is_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
-{
- return false;
-}
-#endif
-
-#ifndef p4d_is_leaf
-#define p4d_is_leaf p4d_is_leaf
-static inline bool p4d_is_leaf(p4d_t p4d)
-{
- return false;
-}
-#endif
-
#define pmd_pgtable pmd_pgtable
static inline pgtable_t pmd_pgtable(pmd_t pmd)
{
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 4a1abb9f7c05..408d98f8a514 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index e16e2fd104c5..46fa46ce6526 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (IS_ALIGNED(addr, PMD_SIZE) &&
IS_ALIGNED(next, PMD_SIZE)) {
if (!direct)
@@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1540,7 +1540,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1587,7 +1587,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index a04ae4449a02..e8e0289d7ab0 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -413,7 +413,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -435,7 +435,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -474,7 +474,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 5ac1fd30341b..0604c80dae66 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index c85fa3f0dd3b..d79d6633f333 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3340,7 +3340,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3354,7 +3354,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3368,7 +3368,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
--
2.44.0
^ permalink raw reply related [relevance 5%]
* [PATCH v10 08/12] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
@ 2024-03-13 4:21 5% ` Rohan McLure
0 siblings, 0 replies; 200+ results
From: Rohan McLure @ 2024-03-13 4:21 UTC (permalink / raw)
To: linuxppc-dev
Cc: Rohan McLure, mpe, christophe.leroy, linux-mm, linux-riscv,
linux-arm-kernel, x86
Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
latter is the name given to checking that a higher-level entry in
multi-level paging contains a page translation entry (pte) throughout
all other archs.
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
---
v9: No longer required in order to implement page table check, just a
refactor.
v10: Fix more occurances, and just delete p{u,m,4}_is_leaf() stubs as
equivalent p{u,m,4}_leaf() stubs already exist.
---
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
arch/powerpc/include/asm/pgtable.h | 24 --------------------
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
arch/powerpc/mm/pgtable.c | 6 ++---
arch/powerpc/mm/pgtable_64.c | 6 ++---
arch/powerpc/xmon/xmon.c | 6 ++---
7 files changed, 26 insertions(+), 52 deletions(-)
diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
index 62c43d3d80ec..382724c5e872 100644
--- a/arch/powerpc/include/asm/book3s/64/pgtable.h
+++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -1443,16 +1443,14 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
/*
* Like pmd_huge() and pmd_large(), but works regardless of config options
*/
-#define pmd_is_leaf pmd_is_leaf
-#define pmd_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
+#define pmd_leaf pmd_leaf
+static inline bool pmd_leaf(pmd_t pmd)
{
return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
}
-#define pud_is_leaf pud_is_leaf
-#define pud_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
+#define pud_leaf pud_leaf
+static inline bool pud_leaf(pud_t pud)
{
return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
}
diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index 9224f23065ff..0c0ffbe7a3b5 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h
@@ -180,30 +180,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
}
#endif
-#ifndef pmd_is_leaf
-#define pmd_is_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
-{
- return false;
-}
-#endif
-
-#ifndef pud_is_leaf
-#define pud_is_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
-{
- return false;
-}
-#endif
-
-#ifndef p4d_is_leaf
-#define p4d_is_leaf p4d_is_leaf
-static inline bool p4d_is_leaf(p4d_t p4d)
-{
- return false;
-}
-#endif
-
#define pmd_pgtable pmd_pgtable
static inline pgtable_t pmd_pgtable(pmd_t pmd)
{
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 4a1abb9f7c05..408d98f8a514 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index e16e2fd104c5..46fa46ce6526 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (IS_ALIGNED(addr, PMD_SIZE) &&
IS_ALIGNED(next, PMD_SIZE)) {
if (!direct)
@@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1540,7 +1540,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1587,7 +1587,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index a04ae4449a02..e8e0289d7ab0 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -413,7 +413,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -435,7 +435,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -474,7 +474,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 5ac1fd30341b..0604c80dae66 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index c85fa3f0dd3b..d79d6633f333 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3340,7 +3340,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3354,7 +3354,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3368,7 +3368,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
--
2.44.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [relevance 5%]
* [PATCH v10 08/12] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
@ 2024-03-13 4:21 5% ` Rohan McLure
0 siblings, 0 replies; 200+ results
From: Rohan McLure @ 2024-03-13 4:21 UTC (permalink / raw)
To: linuxppc-dev
Cc: Rohan McLure, mpe, christophe.leroy, linux-mm, linux-riscv,
linux-arm-kernel, x86
Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
latter is the name given to checking that a higher-level entry in
multi-level paging contains a page translation entry (pte) throughout
all other archs.
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
---
v9: No longer required in order to implement page table check, just a
refactor.
v10: Fix more occurances, and just delete p{u,m,4}_is_leaf() stubs as
equivalent p{u,m,4}_leaf() stubs already exist.
---
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
arch/powerpc/include/asm/pgtable.h | 24 --------------------
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
arch/powerpc/mm/pgtable.c | 6 ++---
arch/powerpc/mm/pgtable_64.c | 6 ++---
arch/powerpc/xmon/xmon.c | 6 ++---
7 files changed, 26 insertions(+), 52 deletions(-)
diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
index 62c43d3d80ec..382724c5e872 100644
--- a/arch/powerpc/include/asm/book3s/64/pgtable.h
+++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -1443,16 +1443,14 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
/*
* Like pmd_huge() and pmd_large(), but works regardless of config options
*/
-#define pmd_is_leaf pmd_is_leaf
-#define pmd_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
+#define pmd_leaf pmd_leaf
+static inline bool pmd_leaf(pmd_t pmd)
{
return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
}
-#define pud_is_leaf pud_is_leaf
-#define pud_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
+#define pud_leaf pud_leaf
+static inline bool pud_leaf(pud_t pud)
{
return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
}
diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index 9224f23065ff..0c0ffbe7a3b5 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h
@@ -180,30 +180,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
}
#endif
-#ifndef pmd_is_leaf
-#define pmd_is_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
-{
- return false;
-}
-#endif
-
-#ifndef pud_is_leaf
-#define pud_is_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
-{
- return false;
-}
-#endif
-
-#ifndef p4d_is_leaf
-#define p4d_is_leaf p4d_is_leaf
-static inline bool p4d_is_leaf(p4d_t p4d)
-{
- return false;
-}
-#endif
-
#define pmd_pgtable pmd_pgtable
static inline pgtable_t pmd_pgtable(pmd_t pmd)
{
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 4a1abb9f7c05..408d98f8a514 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index e16e2fd104c5..46fa46ce6526 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (IS_ALIGNED(addr, PMD_SIZE) &&
IS_ALIGNED(next, PMD_SIZE)) {
if (!direct)
@@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1540,7 +1540,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1587,7 +1587,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index a04ae4449a02..e8e0289d7ab0 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -413,7 +413,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -435,7 +435,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -474,7 +474,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 5ac1fd30341b..0604c80dae66 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index c85fa3f0dd3b..d79d6633f333 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3340,7 +3340,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3354,7 +3354,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3368,7 +3368,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
--
2.44.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 5%]
* [merged mm-stable] mm-ppc-replace-pxd_is_leaf-with-pxd_leaf.patch removed from -mm tree
@ 2024-03-06 21:05 4% Andrew Morton
0 siblings, 0 replies; 200+ results
From: Andrew Morton @ 2024-03-06 21:05 UTC (permalink / raw)
To: mm-commits, vincenzo.frascino, tglx, shy828301, ryabinin.a.a,
rppt, npiggin, naveen.n.rao, muchun.song, mpe, mingo, kirill,
jgg, glider, dvyukov, dave.hansen, christophe.leroy, bp,
aneesh.kumar, andreyknvl, peterx, akpm
The quilt patch titled
Subject: mm/powerpc: replace pXd_is_leaf() with pXd_leaf()
has been removed from the -mm tree. Its filename was
mm-ppc-replace-pxd_is_leaf-with-pxd_leaf.patch
This patch was dropped because it was merged into the mm-stable branch
of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Peter Xu <peterx@redhat.com>
Subject: mm/powerpc: replace pXd_is_leaf() with pXd_leaf()
Date: Tue, 5 Mar 2024 12:37:42 +0800
They're the same macros underneath. Drop pXd_is_leaf(), instead always use
pXd_leaf().
At the meantime, instead of renames, drop the pXd_is_leaf() fallback
definitions directly in arch/powerpc/include/asm/pgtable.h. because
similar fallback macros for pXd_leaf() are already defined in
include/linux/pgtable.h.
Link: https://lkml.kernel.org/r/20240305043750.93762-3-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>
Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: Mike Rapoport (IBM) <rppt@kernel.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>
Cc: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Konovalov <andreyknvl@gmail.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Kirill A. Shutemov <kirill@shutemov.name>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
Cc: Yang Shi <shy828301@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++-----
arch/powerpc/include/asm/pgtable.h | 24 -----------------
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 ++++----
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++-----
arch/powerpc/mm/pgtable.c | 6 ++--
arch/powerpc/mm/pgtable_64.c | 6 ++--
arch/powerpc/xmon/xmon.c | 6 ++--
7 files changed, 26 insertions(+), 52 deletions(-)
--- a/arch/powerpc/include/asm/book3s/64/pgtable.h~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -1439,18 +1439,16 @@ static inline bool is_pte_rw_upgrade(uns
/*
* Like pmd_huge() and pmd_large(), but works regardless of config options
*/
-#define pmd_is_leaf pmd_is_leaf
-#define pmd_leaf pmd_is_leaf
+#define pmd_leaf pmd_leaf
#define pmd_large pmd_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
+static inline bool pmd_leaf(pmd_t pmd)
{
return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
}
-#define pud_is_leaf pud_is_leaf
-#define pud_leaf pud_is_leaf
+#define pud_leaf pud_leaf
#define pud_large pud_leaf
-static inline bool pud_is_leaf(pud_t pud)
+static inline bool pud_leaf(pud_t pud)
{
return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
}
--- a/arch/powerpc/include/asm/pgtable.h~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/include/asm/pgtable.h
@@ -182,30 +182,6 @@ static inline void pte_frag_set(mm_conte
}
#endif
-#ifndef pmd_is_leaf
-#define pmd_is_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
-{
- return false;
-}
-#endif
-
-#ifndef pud_is_leaf
-#define pud_is_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
-{
- return false;
-}
-#endif
-
-#ifndef p4d_is_leaf
-#define p4d_is_leaf p4d_is_leaf
-static inline bool p4d_is_leaf(p4d_t p4d)
-{
- return false;
-}
-#endif
-
#define pmd_pgtable pmd_pgtable
static inline pgtable_t pmd_pgtable(pmd_t pmd)
{
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, p
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, p
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, p
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -204,14 +204,14 @@ static void radix__change_memory_range(u
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(p
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (IS_ALIGNED(addr, PMD_SIZE) &&
IS_ALIGNED(next, PMD_SIZE)) {
if (!direct)
@@ -807,7 +807,7 @@ static void __meminit remove_pud_table(p
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, un
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1554,7 +1554,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1601,7 +1601,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
--- a/arch/powerpc/mm/pgtable_64.c~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
--- a/arch/powerpc/mm/pgtable.c~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/mm/pgtable.c
@@ -410,7 +410,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, un
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -432,7 +432,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, un
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -471,7 +471,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, un
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
--- a/arch/powerpc/xmon/xmon.c~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/xmon/xmon.c
@@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
_
Patches currently in -mm which might be from peterx@redhat.com are
^ permalink raw reply [relevance 4%]
* Linux 6.7.9
@ 2024-03-06 15:05 1% Greg Kroah-Hartman
0 siblings, 0 replies; 200+ results
From: Greg Kroah-Hartman @ 2024-03-06 15:05 UTC (permalink / raw)
To: linux-kernel, akpm, torvalds, stable; +Cc: lwn, jslaby, Greg Kroah-Hartman
I'm announcing the release of the 6.7.9 kernel.
All users of the 6.7 kernel series must upgrade.
The updated 6.7.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.7.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/arch/x86/mds.rst | 38 +-
Makefile | 2
arch/arm64/crypto/aes-neonbs-glue.c | 11
arch/powerpc/include/asm/rtas.h | 4
arch/powerpc/kernel/rtas.c | 9
arch/powerpc/platforms/pseries/iommu.c | 156 +++++++----
arch/riscv/Kconfig | 1
arch/riscv/include/asm/csr.h | 2
arch/riscv/include/asm/ftrace.h | 5
arch/riscv/include/asm/hugetlb.h | 2
arch/riscv/include/asm/pgalloc.h | 20 +
arch/riscv/include/asm/pgtable-64.h | 2
arch/riscv/include/asm/pgtable.h | 6
arch/riscv/include/asm/vmalloc.h | 61 ----
arch/riscv/kernel/Makefile | 2
arch/riscv/kernel/cpufeature.c | 17 +
arch/riscv/kernel/return_address.c | 48 +++
arch/riscv/mm/hugetlbpage.c | 2
arch/x86/entry/entry_32.S | 3
arch/x86/entry/entry_64.S | 11
arch/x86/entry/entry_64_compat.S | 1
arch/x86/include/asm/entry-common.h | 1
arch/x86/include/asm/nospec-branch.h | 12
arch/x86/kernel/cpu/bugs.c | 15 -
arch/x86/kernel/cpu/common.c | 4
arch/x86/kernel/cpu/intel.c | 178 ++++++------
arch/x86/kernel/e820.c | 8
arch/x86/kernel/nmi.c | 3
arch/x86/kvm/vmx/run_flags.h | 7
arch/x86/kvm/vmx/vmenter.S | 9
arch/x86/kvm/vmx/vmx.c | 20 +
drivers/bluetooth/btqca.c | 2
drivers/bluetooth/hci_bcm4377.c | 3
drivers/bluetooth/hci_qca.c | 22 +
drivers/cpufreq/intel_pstate.c | 3
drivers/dma/dw-edma/dw-edma-v0-core.c | 17 +
drivers/dma/dw-edma/dw-hdma-v0-core.c | 39 +-
drivers/dma/dw-edma/dw-hdma-v0-regs.h | 2
drivers/dma/fsl-edma-common.c | 2
drivers/dma/fsl-qdma.c | 21 -
drivers/dma/idxd/cdev.c | 2
drivers/dma/idxd/debugfs.c | 2
drivers/dma/idxd/idxd.h | 1
drivers/dma/idxd/init.c | 15 -
drivers/dma/idxd/irq.c | 3
drivers/dma/ptdma/ptdma-dmaengine.c | 2
drivers/firmware/efi/capsule-loader.c | 2
drivers/gpio/gpio-74x164.c | 4
drivers/gpio/gpiolib.c | 10
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 6
drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c | 5
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 29 ++
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 9
drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 9
drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 9
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 9
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 9
drivers/gpu/drm/drm_buddy.c | 10
drivers/gpu/drm/nouveau/nouveau_drm.c | 5
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c | 4
drivers/gpu/drm/tegra/drm.c | 23 +
drivers/gpu/host1x/dev.c | 15 -
drivers/gpu/host1x/dev.h | 6
drivers/iommu/iommufd/io_pagetable.c | 9
drivers/iommu/iommufd/selftest.c | 27 +
drivers/mfd/twl6030-irq.c | 10
drivers/mmc/core/mmc.c | 2
drivers/mmc/host/mmci_stm32_sdmmc.c | 24 +
drivers/mmc/host/sdhci-xenon-phy.c | 48 ++-
drivers/mtd/nand/raw/marvell_nand.c | 13
drivers/mtd/nand/spi/gigadevice.c | 6
drivers/net/ethernet/freescale/fman/fman_memac.c | 18 -
drivers/net/ethernet/intel/ice/ice_dpll.c | 91 +++++-
drivers/net/ethernet/intel/igb/igb_ptp.c | 5
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4
drivers/net/gtp.c | 12
drivers/net/tun.c | 1
drivers/net/usb/dm9601.c | 2
drivers/net/usb/lan78xx.c | 5
drivers/net/veth.c | 40 +-
drivers/of/property.c | 2
drivers/perf/riscv_pmu.c | 18 -
drivers/perf/riscv_pmu_legacy.c | 10
drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c | 2
drivers/phy/qualcomm/phy-qcom-m31.c | 2
drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 10
drivers/pmdomain/arm/scmi_perf_domain.c | 3
drivers/pmdomain/qcom/rpmhpd.c | 7
drivers/power/supply/Kconfig | 1
drivers/power/supply/bq27xxx_battery_i2c.c | 4
drivers/soc/qcom/pmic_glink.c | 21 -
drivers/spi/spi-cadence-quadspi.c | 11
drivers/video/fbdev/core/fbcon.c | 8
fs/afs/dir.c | 4
fs/btrfs/dev-replace.c | 24 +
fs/btrfs/disk-io.c | 22 -
fs/btrfs/disk-io.h | 2
fs/btrfs/extent_io.c | 103 ++++++-
fs/btrfs/ioctl.c | 2
fs/btrfs/send.c | 17 -
fs/btrfs/transaction.c | 2
fs/ceph/mdsmap.c | 7
fs/ceph/mdsmap.h | 6
fs/efivarfs/vars.c | 17 -
fs/nfs/write.c | 4
include/linux/bvec.h | 2
include/linux/netfilter.h | 1
include/net/mctp.h | 1
include/sound/soc-card.h | 2
include/uapi/linux/in6.h | 2
kernel/trace/fprobe.c | 14 -
lib/nlattr.c | 4
mm/debug_vm_pgtable.c | 8
mm/filemap.c | 51 +--
mm/migrate.c | 8
net/bluetooth/hci_core.c | 7
net/bluetooth/hci_event.c | 13
net/bluetooth/hci_sync.c | 7
net/bluetooth/l2cap_core.c | 8
net/bridge/br_netfilter_hooks.c | 96 ++++++
net/bridge/netfilter/nf_conntrack_bridge.c | 30 ++
net/core/rtnetlink.c | 11
net/hsr/hsr_forward.c | 2
net/ipv4/ip_tunnel.c | 28 +-
net/ipv6/addrconf.c | 7
net/mctp/route.c | 10
net/mptcp/diag.c | 3
net/mptcp/options.c | 2
net/mptcp/pm_userspace.c | 10
net/mptcp/protocol.c | 52 +++
net/mptcp/protocol.h | 21 -
net/netfilter/nf_conntrack_core.c | 1
net/netfilter/nft_compat.c | 20 +
net/netlink/af_netlink.c | 2
net/tls/tls_sw.c | 40 ++
net/unix/garbage.c | 21 -
net/wireless/nl80211.c | 2
scripts/Kconfig.include | 2
scripts/Makefile.compiler | 2
security/landlock/fs.c | 4
security/tomoyo/common.c | 3
sound/core/Makefile | 1
sound/core/ump.c | 4
sound/firewire/amdtp-stream.c | 2
sound/pci/hda/patch_realtek.c | 33 ++
sound/soc/codecs/cs35l45.c | 2
sound/soc/codecs/cs35l56-shared.c | 8
sound/soc/codecs/cs35l56.c | 195 ++++++++++++-
sound/soc/codecs/cs35l56.h | 1
sound/soc/fsl/fsl_xcvr.c | 12
sound/soc/qcom/lpass-cdc-dma.c | 2
sound/soc/soc-card.c | 24 +
tools/net/ynl/lib/ynl.c | 1
tools/testing/selftests/net/mptcp/mptcp_connect.sh | 16 -
tools/testing/selftests/net/mptcp/mptcp_join.sh | 196 ++++++++------
tools/testing/selftests/net/mptcp/mptcp_lib.sh | 15 +
tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 8
tools/testing/selftests/net/mptcp/userspace_pm.sh | 86 ++----
158 files changed, 1877 insertions(+), 812 deletions(-)
Alex Deucher (1):
Revert "drm/amd/pm: resolve reboot exception for si oland"
Alexander Ofitserov (1):
gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
Alexander Stein (1):
phy: freescale: phy-fsl-imx8-mipi-dphy: Fix alias name to use dashes
Alexandre Ghiti (3):
riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
Revert "riscv: mm: support Svnapot in huge vmap"
riscv: Fix pte_leaf_size() for NAPOT
Andy Shevchenko (1):
gpiolib: Fix the error path order in gpiochip_add_data_with_key()
Aneesh Kumar K.V (IBM) (1):
mm/debug_vm_pgtable: fix BUG_ON with pud advanced test
Ard Biesheuvel (1):
crypto: arm64/neonbs - fix out-of-bounds access on short input
Arkadiusz Kubalewski (4):
ice: fix dpll input pin phase_adjust value updates
ice: fix dpll and dpll_pin data access on PF reset
ice: fix dpll periodic work data updates on PF reset
ice: fix pin phase adjust updates on PF reset
Arnd Bergmann (1):
efi/capsule-loader: fix incorrect allocation size
Arturas Moskvinas (1):
gpio: 74x164: Enable output pins after registers are reset
Bartosz Golaszewski (1):
gpio: fix resource unwinding order in error path
Bjorn Andersson (1):
pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation
Byungchul Park (1):
mm/vmscan: fix a bug calling wakeup_kswapd() with a wrong zone index
Christophe Kerello (1):
mmc: mmci: stm32: fix DMA API overlapping mappings warning
Colin Ian King (1):
ASoC: qcom: Fix uninitialized pointer dmactl
Conor Dooley (1):
RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
Cristian Marussi (1):
pmdomain: arm: Fix NULL dereference on scmi_perf_domain removal
Curtis Klein (1):
dmaengine: fsl-qdma: init irq after reg initialization
Dan Carpenter (1):
ASoC: cs35l56: fix reversed if statement in cs35l56_dspwait_asp1tx_put()
Danilo Krummrich (1):
drm/nouveau: don't fini scheduler before entity flush
David Howells (1):
afs: Fix endless loop in directory parsing
David Sterba (1):
btrfs: dev-replace: properly validate device names
Davide Caratti (1):
mptcp: fix double-free on socket dismantle
Dimitris Vlachos (1):
riscv: Sparse-Memory/vmemmap out-of-bounds fix
Dmitry Baryshkov (1):
phy: qcom-qmp-usb: fix v3 offsets data
Doug Smythies (1):
cpufreq: intel_pstate: fix pstate limits enforcement for adjust_perf call back
Elad Nachman (3):
mtd: rawnand: marvell: fix layouts
mmc: sdhci-xenon: add timeout for PHY init complete
mmc: sdhci-xenon: fix PHY init clock stability
Eniac Zhang (1):
ALSA: hda/realtek: fix mute/micmute LED For HP mt440
Eric Dumazet (1):
ipv6: fix potential "struct net" leak in inet6_rtm_getaddr()
Fenghua Yu (2):
dmaengine: idxd: Remove shadow Event Log head stored in idxd
dmaengine: idxd: Ensure safe user copy of completion record
Filipe Manana (3):
btrfs: fix race between ordered extent completion and fiemap
btrfs: fix double free of anonymous device after snapshot creation failure
btrfs: send: don't issue unnecessary zero writes for trailing hole
Florian Westphal (3):
netlink: add nla be16/32 types to minlen array
net: ip_tunnel: prevent perpetual headroom growth
netfilter: bridge: confirm multicast packets before passing them up the stack
Gaurav Batra (1):
powerpc/pseries/iommu: IOMMU table is not initialized for kdump over SR-IOV
Geliang Tang (7):
mptcp: map v4 address to v6 when destroying subflow
selftests: mptcp: join: add ss mptcp support check
selftests: mptcp: add evts_get_info helper
selftests: mptcp: add chk_subflows_total helper
selftests: mptcp: update userspace pm test helpers
selftests: mptcp: add mptcp_lib_is_v6
selftests: mptcp: rm subflow with v4/v4mapped addr
Gergo Koteles (1):
ALSA: hda/realtek: tas2781: enable subwoofer volume control
Greg Kroah-Hartman (1):
Linux 6.7.9
Han Xu (1):
mtd: spinand: gigadevice: Fix the get ecc status issue
Hans Peter (1):
ALSA: hda/realtek: Enable Mute LED on HP 840 G8 (MB 8AB8)
Hans de Goede (1):
power: supply: bq27xxx-i2c: Do not free non existing IRQ
Ignat Korchagin (1):
netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
Ivan Semenov (1):
mmc: core: Fix eMMC initialization with 1-bit bus connection
Jakub Kicinski (3):
net: veth: clear GRO when clearing XDP even when down
veth: try harder when allocating queue memory
tools: ynl: fix handling of multiple mcast groups
Jakub Raczynski (1):
stmmac: Clear variable when destroying workqueue
Janaki Ramaiah Thota (1):
Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
Javier Carrasco (1):
net: usb: dm9601: fix wrong return value in dm9601_mdio_read
Jay Ajit Mate (1):
ALSA: hda/realtek: Fix top speaker connection on Dell Inspiron 16 Plus 7630
Jeremy Kerr (1):
net: mctp: take ownership of skb in mctp_local_output
Jiri Bohac (1):
x86/e820: Don't reserve SETUP_RNG_SEED in e820
Jiri Slaby (SUSE) (1):
fbcon: always restore the old font data in fbcon_do_set_font()
Jisheng Zhang (1):
riscv: tlb: fix __p*d_free_tlb()
Johan Hovold (1):
Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid
Johannes Berg (1):
wifi: nl80211: reject iftype change with mesh ID change
Jonas Dreßler (1):
Bluetooth: hci_sync: Check the correct flag before starting a scan
Joy Zou (1):
dmaengine: fsl-edma: correct calculation of 'nbytes' in multi-fifo scenario
Justin Iurman (1):
uapi: in6: replace temporary label with rfc9486
Kai-Heng Feng (1):
Bluetooth: Enforce validation on max value of connection interval
Kory Maincent (6):
dmaengine: dw-edma: Fix the ch_count hdma callback
dmaengine: dw-edma: Fix wrong interrupt bit set for HDMA
dmaengine: dw-edma: HDMA_V0_REMOTEL_STOP_INT_EN typo fix
dmaengine: dw-edma: Add HDMA remote interrupt configuration
dmaengine: dw-edma: HDMA: Add sync read before starting the DMA transfer in remote setup
dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup
Kuniyuki Iwashima (2):
af_unix: Fix task hung while purging oob_skb in GC.
af_unix: Drop oob_skb ref before purging queue in GC.
Lin Ma (1):
rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
Luiz Augusto von Dentz (2):
Bluetooth: hci_sync: Fix accept_list when attempting to suspend
Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
Lukasz Majewski (1):
net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
Ma Jun (1):
drm/amdgpu/pm: Fix the power1_min_cap value
Masami Hiramatsu (Google) (1):
fprobe: Fix to allocate entry_data_size buffer with rethook instances
Matthew Auld (1):
drm/buddy: fix range bias
Matthieu Baerts (NGI0) (1):
mptcp: avoid printing warning once on client side
Mickaël Salaün (1):
landlock: Fix asymmetric private inodes referring
Mikko Perttunen (1):
gpu: host1x: Skip reset assert on Tegra186
Ming Lei (1):
block: define bvec_iter as __packed __aligned(4)
Nathan Chancellor (2):
RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
kbuild: Add -Wa,--fatal-warnings to as-instr invocation
Nathan Lynch (1):
powerpc/rtas: use correct function name for resetting TCE tables
NeilBrown (1):
NFS: Fix data corruption caused by congestion.
Nhat Pham (1):
mm: cachestat: fix folio read-after-free in cache walk
Nicolin Chen (2):
iommufd: Fix iopt_access_list_id overwrite bug
iommufd: Fix protection fault in iommufd_test_syz_conv_iova
Oleksij Rempel (3):
lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
net: lan78xx: fix "softirq work is pending" error
igb: extend PTP timestamp adjustments to i211
Paolo Abeni (4):
mptcp: push at DSS boundaries
mptcp: fix snd_wnd initialization for passive socket
mptcp: fix potential wake-up event loss
mptcp: fix possible deadlock in subflow diag
Paolo Bonzini (2):
x86/cpu: Allow reducing x86_phys_bits during early_identify_cpu()
x86/cpu/intel: Detect TME keyid bits before setting MTRR mask registers
Pawan Gupta (5):
x86/entry_64: Add VERW just before userspace transition
x86/entry_32: Add VERW just before userspace transition
x86/bugs: Use ALTERNATIVE() instead of mds_user_clear static key
KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH
KVM/VMX: Move VERW closer to VMentry for MDS mitigation
Peng Ma (1):
dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
Peter Ujfalusi (1):
mfd: twl6030-irq: Revert to use of_match_device()
Richard Fitzgerald (8):
ASoC: cs35l56: Must clear HALO_STATE before issuing SYSTEM_RESET
ASoC: cs35l56: cs35l56_component_remove() must clear cs35l56->component
ASoC: cs35l56: cs35l56_component_remove() must clean up wm_adsp
ASoC: cs35l56: Don't add the same register patch multiple times
ASoC: cs35l56: Fix for initializing ASP1 mixer registers
ASoC: cs35l56: Fix misuse of wm_adsp 'part' string for silicon revision
ASoC: cs35l56: Fix deadlock in ASP1 mixer register initialization
ASoC: soc-card: Fix missing locking in snd_soc_card_get_kcontrol()
Rob Clark (1):
soc: qcom: pmic_glink: Fix boot when QRTR=m
Ryan Lin (1):
drm/amd/display: Add monitor patch for specific eDP
Ryosuke Yasuoka (1):
netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter
Sabrina Dubroca (4):
tls: decrement decrypt_pending if no async completion will be called
tls: fix peeking with sync+async decryption
tls: separate no-async decryption request handling from async
tls: fix use-after-free on failed backlog decryption
Samuel Holland (1):
riscv: Fix enabling cbo.zero when running in M-mode
Saravana Kannan (1):
of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing
Sid Pranjale (1):
drm/nouveau: keep DMA buffers required for suspend/resume
Srinivasan Shanmugam (1):
drm/amd/display: Prevent potential buffer overflow in map_hw_resources
Tadeusz Struk (1):
dmaengine: ptdma: use consistent DMA masks
Takashi Iwai (2):
ALSA: Drop leftover snd-rtctimer stuff from Makefile
ALSA: ump: Fix the discard error code from snd_ump_legacy_open()
Takashi Sakamoto (1):
ALSA: firewire-lib: fix to check cycle continuity
Tetsuo Handa (1):
tomoyo: fix UAF write bug in tomoyo_write_control()
Thierry Reding (1):
drm/tegra: Remove existing framebuffer only if we support display
Thomas Weißschuh (1):
power: supply: mm8013: select REGMAP_I2C
Théo Lebrun (2):
spi: cadence-qspi: fix pointer reference in runtime PM hooks
spi: cadence-qspi: remove system-wide suspend helper calls from runtime PM hooks
Tim Schumacher (1):
efivarfs: Request at most 512 bytes for variable names
Vadim Shakirov (2):
drivers: perf: added capabilities for legacy PMU
drivers: perf: ctr_get_width function for legacy is not defined
Vladimir Oltean (1):
net: dpaa: fman_memac: accept phy-interface-type = "10gbase-r" in the device tree
Willian Wang (1):
ALSA: hda/realtek: Add special fixup for Lenovo 14IRP8
Xiubo Li (1):
ceph: switch to corrected encoding of max_xattr_size in mdsmap
Yang Yingliang (1):
phy: qcom: phy-qcom-m31: fix wrong pointer pass to PTR_ERR()
Yangyu Chen (1):
riscv: mm: fix NOCACHE_THEAD does not set bit[61] correctly
Ying Hsu (1):
Bluetooth: Avoid potential use-after-free in hci_error_reset
Yochai Hagvi (1):
ice: fix connection state of DPLL and out pin
Yunjian Wang (1):
tun: Fix xdp_rxq_info's queue_index when detaching
Zijun Hu (3):
Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR
Bluetooth: qca: Fix wrong event type for patch config command
Bluetooth: qca: Fix triggering coredump implementation
Zong Li (1):
riscv: add CALLER_ADDRx support
^ permalink raw reply [relevance 1%]
* Linux 6.6.21
@ 2024-03-06 15:05 2% Greg Kroah-Hartman
0 siblings, 0 replies; 200+ results
From: Greg Kroah-Hartman @ 2024-03-06 15:05 UTC (permalink / raw)
To: linux-kernel, akpm, torvalds, stable; +Cc: lwn, jslaby, Greg Kroah-Hartman
I'm announcing the release of the 6.6.21 kernel.
All users of the 6.6 kernel series must upgrade.
The updated 6.6.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.6.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/arch/x86/mds.rst | 38 +-
Makefile | 2
arch/arm64/crypto/aes-neonbs-glue.c | 11
arch/powerpc/include/asm/rtas.h | 4
arch/powerpc/kernel/rtas.c | 9
arch/powerpc/platforms/pseries/iommu.c | 156 +++++++----
arch/riscv/Kconfig | 1
arch/riscv/include/asm/ftrace.h | 5
arch/riscv/include/asm/hugetlb.h | 2
arch/riscv/include/asm/pgtable.h | 6
arch/riscv/include/asm/vmalloc.h | 61 ----
arch/riscv/kernel/Makefile | 2
arch/riscv/kernel/cpufeature.c | 15 +
arch/riscv/kernel/return_address.c | 48 +++
arch/riscv/mm/hugetlbpage.c | 2
arch/x86/entry/entry_32.S | 3
arch/x86/entry/entry_64.S | 11
arch/x86/entry/entry_64_compat.S | 1
arch/x86/include/asm/entry-common.h | 1
arch/x86/include/asm/nospec-branch.h | 12
arch/x86/kernel/cpu/bugs.c | 15 -
arch/x86/kernel/cpu/intel.c | 178 ++++++------
arch/x86/kernel/e820.c | 8
arch/x86/kernel/nmi.c | 3
arch/x86/kvm/vmx/run_flags.h | 7
arch/x86/kvm/vmx/vmenter.S | 9
arch/x86/kvm/vmx/vmx.c | 20 +
drivers/block/ublk_drv.c | 40 +-
drivers/bluetooth/btqca.c | 2
drivers/bluetooth/hci_bcm4377.c | 3
drivers/bluetooth/hci_qca.c | 22 +
drivers/cpufreq/intel_pstate.c | 3
drivers/dma/dw-edma/dw-edma-v0-core.c | 17 +
drivers/dma/dw-edma/dw-hdma-v0-core.c | 39 +-
drivers/dma/dw-edma/dw-hdma-v0-regs.h | 2
drivers/dma/fsl-edma-common.c | 2
drivers/dma/fsl-qdma.c | 21 -
drivers/dma/idxd/cdev.c | 2
drivers/dma/idxd/debugfs.c | 2
drivers/dma/idxd/idxd.h | 1
drivers/dma/idxd/init.c | 15 -
drivers/dma/idxd/irq.c | 3
drivers/dma/ptdma/ptdma-dmaengine.c | 2
drivers/firmware/efi/capsule-loader.c | 2
drivers/gpio/gpio-74x164.c | 4
drivers/gpio/gpiolib.c | 10
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 6
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 29 ++
drivers/gpu/drm/drm_buddy.c | 10
drivers/gpu/drm/nouveau/nouveau_drm.c | 5
drivers/gpu/drm/tegra/drm.c | 23 +
drivers/iommu/iommufd/io_pagetable.c | 9
drivers/mmc/core/mmc.c | 2
drivers/mmc/host/mmci_stm32_sdmmc.c | 24 +
drivers/mmc/host/sdhci-xenon-phy.c | 48 ++-
drivers/mtd/nand/raw/marvell_nand.c | 13
drivers/mtd/nand/spi/gigadevice.c | 6
drivers/net/ethernet/freescale/fman/fman_memac.c | 18 -
drivers/net/ethernet/intel/igb/igb_ptp.c | 5
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4
drivers/net/gtp.c | 12
drivers/net/tun.c | 1
drivers/net/usb/dm9601.c | 2
drivers/net/usb/lan78xx.c | 5
drivers/net/veth.c | 40 +-
drivers/of/property.c | 2
drivers/perf/riscv_pmu.c | 18 -
drivers/perf/riscv_pmu_legacy.c | 10
drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c | 2
drivers/pmdomain/qcom/rpmhpd.c | 7
drivers/power/supply/bq27xxx_battery_i2c.c | 4
drivers/soc/qcom/pmic_glink.c | 21 -
drivers/spi/spi-cadence-quadspi.c | 6
drivers/video/fbdev/core/fbcon.c | 8
fs/afs/dir.c | 4
fs/btrfs/dev-replace.c | 24 +
fs/btrfs/disk-io.c | 22 -
fs/btrfs/disk-io.h | 2
fs/btrfs/extent_io.c | 103 ++++++-
fs/btrfs/ioctl.c | 2
fs/btrfs/send.c | 17 -
fs/btrfs/transaction.c | 2
fs/efivarfs/vars.c | 17 -
fs/nfs/write.c | 4
fs/smb/server/smb2pdu.c | 36 +-
fs/ubifs/tnc.c | 1
include/linux/bvec.h | 2
include/linux/netfilter.h | 1
include/net/mctp.h | 1
include/sound/soc-card.h | 6
include/sound/soc.h | 42 ++-
include/uapi/linux/in6.h | 2
lib/nlattr.c | 4
mm/debug_vm_pgtable.c | 8
mm/filemap.c | 51 +--
net/bluetooth/hci_core.c | 7
net/bluetooth/hci_event.c | 13
net/bluetooth/hci_sync.c | 7
net/bluetooth/l2cap_core.c | 8
net/bridge/br_netfilter_hooks.c | 96 ++++++
net/bridge/netfilter/nf_conntrack_bridge.c | 30 ++
net/core/rtnetlink.c | 11
net/hsr/hsr_forward.c | 2
net/ipv4/ip_tunnel.c | 28 +-
net/ipv6/addrconf.c | 7
net/mctp/route.c | 10
net/mptcp/diag.c | 3
net/mptcp/options.c | 2
net/mptcp/pm_userspace.c | 10
net/mptcp/protocol.c | 52 +++
net/mptcp/protocol.h | 21 -
net/netfilter/nf_conntrack_core.c | 1
net/netfilter/nft_compat.c | 20 +
net/netlink/af_netlink.c | 2
net/tls/tls_sw.c | 40 ++
net/unix/garbage.c | 21 -
net/wireless/nl80211.c | 2
scripts/Kconfig.include | 2
scripts/Makefile.compiler | 2
security/landlock/fs.c | 4
security/tomoyo/common.c | 3
sound/core/Makefile | 1
sound/core/ump.c | 4
sound/firewire/amdtp-stream.c | 2
sound/pci/hda/patch_realtek.c | 32 ++
sound/soc/codecs/cs35l34.c | 4
sound/soc/codecs/cs35l56-shared.c | 8
sound/soc/codecs/cs35l56.c | 195 ++++++++++++-
sound/soc/codecs/cs35l56.h | 1
sound/soc/fsl/fsl_xcvr.c | 12
sound/soc/qcom/apq8016_sbc.c | 8
sound/soc/qcom/apq8096.c | 8
sound/soc/qcom/common.c | 6
sound/soc/qcom/lpass-cdc-dma.c | 18 -
sound/soc/qcom/lpass-platform.c | 50 +--
sound/soc/qcom/qdsp6/q6apm-dai.c | 4
sound/soc/qcom/qdsp6/q6asm-dai.c | 10
sound/soc/qcom/qdsp6/q6routing.c | 4
sound/soc/qcom/sc7180.c | 18 -
sound/soc/qcom/sc7280.c | 26 -
sound/soc/qcom/sc8280xp.c | 8
sound/soc/qcom/sdm845.c | 36 +-
sound/soc/qcom/sdw.c | 6
sound/soc/qcom/sm8250.c | 10
sound/soc/qcom/storm.c | 4
sound/soc/soc-card.c | 24 +
sound/soc/soc-utils.c | 4
tools/net/ynl/lib/ynl.c | 1
tools/testing/selftests/net/mptcp/mptcp_connect.sh | 16 -
tools/testing/selftests/net/mptcp/mptcp_join.sh | 196 ++++++++------
tools/testing/selftests/net/mptcp/mptcp_lib.sh | 15 +
tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 8
tools/testing/selftests/net/mptcp/userspace_pm.sh | 86 ++----
153 files changed, 1855 insertions(+), 887 deletions(-)
Alex Deucher (1):
Revert "drm/amd/pm: resolve reboot exception for si oland"
Alexander Ofitserov (1):
gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
Alexander Stein (1):
phy: freescale: phy-fsl-imx8-mipi-dphy: Fix alias name to use dashes
Alexandre Ghiti (3):
riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
Revert "riscv: mm: support Svnapot in huge vmap"
riscv: Fix pte_leaf_size() for NAPOT
Andy Shevchenko (1):
gpiolib: Fix the error path order in gpiochip_add_data_with_key()
Aneesh Kumar K.V (IBM) (1):
mm/debug_vm_pgtable: fix BUG_ON with pud advanced test
Ard Biesheuvel (1):
crypto: arm64/neonbs - fix out-of-bounds access on short input
Arnd Bergmann (1):
efi/capsule-loader: fix incorrect allocation size
Arturas Moskvinas (1):
gpio: 74x164: Enable output pins after registers are reset
Bartosz Golaszewski (1):
gpio: fix resource unwinding order in error path
Bjorn Andersson (1):
pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation
Christophe Kerello (1):
mmc: mmci: stm32: fix DMA API overlapping mappings warning
Colin Ian King (1):
ASoC: qcom: Fix uninitialized pointer dmactl
Conor Dooley (1):
RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
Curtis Klein (1):
dmaengine: fsl-qdma: init irq after reg initialization
Dan Carpenter (1):
ASoC: cs35l56: fix reversed if statement in cs35l56_dspwait_asp1tx_put()
Danilo Krummrich (1):
drm/nouveau: don't fini scheduler before entity flush
David Howells (1):
afs: Fix endless loop in directory parsing
David Sterba (1):
btrfs: dev-replace: properly validate device names
Davide Caratti (1):
mptcp: fix double-free on socket dismantle
Dimitris Vlachos (1):
riscv: Sparse-Memory/vmemmap out-of-bounds fix
Doug Smythies (1):
cpufreq: intel_pstate: fix pstate limits enforcement for adjust_perf call back
Elad Nachman (3):
mtd: rawnand: marvell: fix layouts
mmc: sdhci-xenon: add timeout for PHY init complete
mmc: sdhci-xenon: fix PHY init clock stability
Eniac Zhang (1):
ALSA: hda/realtek: fix mute/micmute LED For HP mt440
Eric Dumazet (1):
ipv6: fix potential "struct net" leak in inet6_rtm_getaddr()
Fenghua Yu (2):
dmaengine: idxd: Remove shadow Event Log head stored in idxd
dmaengine: idxd: Ensure safe user copy of completion record
Filipe Manana (3):
btrfs: fix race between ordered extent completion and fiemap
btrfs: fix double free of anonymous device after snapshot creation failure
btrfs: send: don't issue unnecessary zero writes for trailing hole
Florian Westphal (3):
netlink: add nla be16/32 types to minlen array
net: ip_tunnel: prevent perpetual headroom growth
netfilter: bridge: confirm multicast packets before passing them up the stack
Gaurav Batra (1):
powerpc/pseries/iommu: IOMMU table is not initialized for kdump over SR-IOV
Geliang Tang (7):
mptcp: map v4 address to v6 when destroying subflow
selftests: mptcp: join: add ss mptcp support check
selftests: mptcp: add evts_get_info helper
selftests: mptcp: add chk_subflows_total helper
selftests: mptcp: update userspace pm test helpers
selftests: mptcp: add mptcp_lib_is_v6
selftests: mptcp: rm subflow with v4/v4mapped addr
Gergo Koteles (1):
ALSA: hda/realtek: tas2781: enable subwoofer volume control
Greg Kroah-Hartman (1):
Linux 6.6.21
Han Xu (1):
mtd: spinand: gigadevice: Fix the get ecc status issue
Hans Peter (1):
ALSA: hda/realtek: Enable Mute LED on HP 840 G8 (MB 8AB8)
Hans de Goede (1):
power: supply: bq27xxx-i2c: Do not free non existing IRQ
Ignat Korchagin (1):
netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
Ivan Semenov (1):
mmc: core: Fix eMMC initialization with 1-bit bus connection
Jakub Kicinski (3):
net: veth: clear GRO when clearing XDP even when down
veth: try harder when allocating queue memory
tools: ynl: fix handling of multiple mcast groups
Jakub Raczynski (1):
stmmac: Clear variable when destroying workqueue
Janaki Ramaiah Thota (1):
Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
Javier Carrasco (1):
net: usb: dm9601: fix wrong return value in dm9601_mdio_read
Jeremy Kerr (1):
net: mctp: take ownership of skb in mctp_local_output
Jiri Bohac (1):
x86/e820: Don't reserve SETUP_RNG_SEED in e820
Jiri Slaby (SUSE) (1):
fbcon: always restore the old font data in fbcon_do_set_font()
Johan Hovold (1):
Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid
Johannes Berg (1):
wifi: nl80211: reject iftype change with mesh ID change
Jonas Dreßler (1):
Bluetooth: hci_sync: Check the correct flag before starting a scan
Joy Zou (1):
dmaengine: fsl-edma: correct calculation of 'nbytes' in multi-fifo scenario
Justin Iurman (1):
uapi: in6: replace temporary label with rfc9486
Kai-Heng Feng (1):
Bluetooth: Enforce validation on max value of connection interval
Konstantin Meskhidze (1):
ubifs: fix possible dereference after free
Kory Maincent (6):
dmaengine: dw-edma: Fix the ch_count hdma callback
dmaengine: dw-edma: Fix wrong interrupt bit set for HDMA
dmaengine: dw-edma: HDMA_V0_REMOTEL_STOP_INT_EN typo fix
dmaengine: dw-edma: Add HDMA remote interrupt configuration
dmaengine: dw-edma: HDMA: Add sync read before starting the DMA transfer in remote setup
dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup
Kuninori Morimoto (2):
ASoC: soc.h: convert asoc_xxx() to snd_soc_xxx()
ASoC: qcom: convert not to use asoc_xxx()
Kuniyuki Iwashima (2):
af_unix: Fix task hung while purging oob_skb in GC.
af_unix: Drop oob_skb ref before purging queue in GC.
Lin Ma (1):
rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
Linus Walleij (1):
ASoC: cs35l34: Fix GPIO name and drop legacy include
Luiz Augusto von Dentz (2):
Bluetooth: hci_sync: Fix accept_list when attempting to suspend
Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
Lukasz Majewski (1):
net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
Matthew Auld (1):
drm/buddy: fix range bias
Matthieu Baerts (NGI0) (1):
mptcp: avoid printing warning once on client side
Mickaël Salaün (1):
landlock: Fix asymmetric private inodes referring
Ming Lei (2):
ublk: move ublk_cancel_dev() out of ub->mutex
block: define bvec_iter as __packed __aligned(4)
Namjae Jeon (1):
ksmbd: fix wrong allocation size update in smb2_open()
Nathan Chancellor (2):
RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
kbuild: Add -Wa,--fatal-warnings to as-instr invocation
Nathan Lynch (1):
powerpc/rtas: use correct function name for resetting TCE tables
NeilBrown (1):
NFS: Fix data corruption caused by congestion.
Nhat Pham (1):
mm: cachestat: fix folio read-after-free in cache walk
Nicolin Chen (1):
iommufd: Fix iopt_access_list_id overwrite bug
Oleksij Rempel (3):
lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
net: lan78xx: fix "softirq work is pending" error
igb: extend PTP timestamp adjustments to i211
Paolo Abeni (4):
mptcp: push at DSS boundaries
mptcp: fix snd_wnd initialization for passive socket
mptcp: fix potential wake-up event loss
mptcp: fix possible deadlock in subflow diag
Paolo Bonzini (1):
x86/cpu/intel: Detect TME keyid bits before setting MTRR mask registers
Pawan Gupta (5):
x86/entry_64: Add VERW just before userspace transition
x86/entry_32: Add VERW just before userspace transition
x86/bugs: Use ALTERNATIVE() instead of mds_user_clear static key
KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH
KVM/VMX: Move VERW closer to VMentry for MDS mitigation
Peng Ma (1):
dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
Richard Fitzgerald (8):
ASoC: cs35l56: Must clear HALO_STATE before issuing SYSTEM_RESET
ASoC: cs35l56: cs35l56_component_remove() must clear cs35l56->component
ASoC: cs35l56: cs35l56_component_remove() must clean up wm_adsp
ASoC: cs35l56: Don't add the same register patch multiple times
ASoC: cs35l56: Fix for initializing ASP1 mixer registers
ASoC: cs35l56: Fix misuse of wm_adsp 'part' string for silicon revision
ASoC: cs35l56: Fix deadlock in ASP1 mixer register initialization
ASoC: soc-card: Fix missing locking in snd_soc_card_get_kcontrol()
Rob Clark (1):
soc: qcom: pmic_glink: Fix boot when QRTR=m
Ryan Lin (1):
drm/amd/display: Add monitor patch for specific eDP
Ryosuke Yasuoka (1):
netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter
Sabrina Dubroca (4):
tls: decrement decrypt_pending if no async completion will be called
tls: fix peeking with sync+async decryption
tls: separate no-async decryption request handling from async
tls: fix use-after-free on failed backlog decryption
Saravana Kannan (1):
of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing
Tadeusz Struk (1):
dmaengine: ptdma: use consistent DMA masks
Takashi Iwai (2):
ALSA: Drop leftover snd-rtctimer stuff from Makefile
ALSA: ump: Fix the discard error code from snd_ump_legacy_open()
Takashi Sakamoto (1):
ALSA: firewire-lib: fix to check cycle continuity
Tetsuo Handa (1):
tomoyo: fix UAF write bug in tomoyo_write_control()
Thierry Reding (1):
drm/tegra: Remove existing framebuffer only if we support display
Théo Lebrun (1):
spi: cadence-qspi: fix pointer reference in runtime PM hooks
Tim Schumacher (1):
efivarfs: Request at most 512 bytes for variable names
Vadim Shakirov (2):
drivers: perf: added capabilities for legacy PMU
drivers: perf: ctr_get_width function for legacy is not defined
Vladimir Oltean (1):
net: dpaa: fman_memac: accept phy-interface-type = "10gbase-r" in the device tree
Willian Wang (1):
ALSA: hda/realtek: Add special fixup for Lenovo 14IRP8
Ying Hsu (1):
Bluetooth: Avoid potential use-after-free in hci_error_reset
Yunjian Wang (1):
tun: Fix xdp_rxq_info's queue_index when detaching
Zijun Hu (3):
Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR
Bluetooth: qca: Fix wrong event type for patch config command
Bluetooth: qca: Fix triggering coredump implementation
Zong Li (1):
riscv: add CALLER_ADDRx support
^ permalink raw reply [relevance 2%]
* Re: [PATCH 6.7 000/161] 6.7.9-rc3 review
2024-03-05 20:31 0% ` Ricardo B. Marliere
@ 2024-03-06 14:55 0% ` Luna Jernberg
0 siblings, 0 replies; 200+ results
From: Luna Jernberg @ 2024-03-06 14:55 UTC (permalink / raw)
To: Ricardo B. Marliere
Cc: Greg Kroah-Hartman, stable, patches, linux-kernel, torvalds,
akpm, linux, shuah, patches, lkft-triage, pavel, jonathanh,
f.fainelli, sudipm.mukherjee, srw, rwarsow, conor, allen.lkml
Tested-by: Luna Jernberg <droidbittin@gmail.com>
Den ons 6 mars 2024 kl 12:47 skrev Ricardo B. Marliere <ricardo@marliere.net>:
>
> On 5 Mar 11:28, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 6.7.9 release.
> > There are 161 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Thu, 07 Mar 2024 11:27:43 +0000.
> > Anything received after that time might be too late.
>
> Hi Greg!
>
> All good in my system, no regressions.
>
> Tested-by: Ricardo B. Marliere <ricardo@marliere.net>
>
> Thank you,
> - Ricardo.
>
>
> >
> > The whole patch series can be found in one patch at:
> > https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.7.9-rc3.gz
> > or in the git tree and branch at:
> > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.7.y
> > and the diffstat can be found below.
> >
> > thanks,
> >
> > greg k-h
> >
> > -------------
> > Pseudo-Shortlog of commits:
> >
> > Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Linux 6.7.9-rc3
> >
> > Danilo Krummrich <dakr@redhat.com>
> > drm/nouveau: don't fini scheduler before entity flush
> >
> > Geliang Tang <tanggeliang@kylinos.cn>
> > selftests: mptcp: rm subflow with v4/v4mapped addr
> >
> > Geliang Tang <geliang.tang@linux.dev>
> > selftests: mptcp: add mptcp_lib_is_v6
> >
> > Geliang Tang <geliang.tang@linux.dev>
> > selftests: mptcp: update userspace pm test helpers
> >
> > Geliang Tang <geliang.tang@linux.dev>
> > selftests: mptcp: add chk_subflows_total helper
> >
> > Geliang Tang <geliang.tang@linux.dev>
> > selftests: mptcp: add evts_get_info helper
> >
> > Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> > KVM/VMX: Move VERW closer to VMentry for MDS mitigation
> >
> > Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> > KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH
> >
> > Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> > x86/bugs: Use ALTERNATIVE() instead of mds_user_clear static key
> >
> > Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> > x86/entry_32: Add VERW just before userspace transition
> >
> > Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> > x86/entry_64: Add VERW just before userspace transition
> >
> > Ming Lei <ming.lei@redhat.com>
> > block: define bvec_iter as __packed __aligned(4)
> >
> > Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> > gpio: fix resource unwinding order in error path
> >
> > Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > gpiolib: Fix the error path order in gpiochip_add_data_with_key()
> >
> > Arturas Moskvinas <arturas.moskvinas@gmail.com>
> > gpio: 74x164: Enable output pins after registers are reset
> >
> > Nathan Lynch <nathanl@linux.ibm.com>
> > powerpc/rtas: use correct function name for resetting TCE tables
> >
> > Gaurav Batra <gbatra@linux.vnet.ibm.com>
> > powerpc/pseries/iommu: IOMMU table is not initialized for kdump over SR-IOV
> >
> > Fenghua Yu <fenghua.yu@intel.com>
> > dmaengine: idxd: Ensure safe user copy of completion record
> >
> > Fenghua Yu <fenghua.yu@intel.com>
> > dmaengine: idxd: Remove shadow Event Log head stored in idxd
> >
> > Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > phy: qcom-qmp-usb: fix v3 offsets data
> >
> > Yang Yingliang <yangyingliang@huawei.com>
> > phy: qcom: phy-qcom-m31: fix wrong pointer pass to PTR_ERR()
> >
> > Alexander Stein <alexander.stein@ew.tq-group.com>
> > phy: freescale: phy-fsl-imx8-mipi-dphy: Fix alias name to use dashes
> >
> > Kory Maincent <kory.maincent@bootlin.com>
> > dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup
> >
> > Kory Maincent <kory.maincent@bootlin.com>
> > dmaengine: dw-edma: HDMA: Add sync read before starting the DMA transfer in remote setup
> >
> > Kory Maincent <kory.maincent@bootlin.com>
> > dmaengine: dw-edma: Add HDMA remote interrupt configuration
> >
> > Kory Maincent <kory.maincent@bootlin.com>
> > dmaengine: dw-edma: HDMA_V0_REMOTEL_STOP_INT_EN typo fix
> >
> > Kory Maincent <kory.maincent@bootlin.com>
> > dmaengine: dw-edma: Fix wrong interrupt bit set for HDMA
> >
> > Kory Maincent <kory.maincent@bootlin.com>
> > dmaengine: dw-edma: Fix the ch_count hdma callback
> >
> > Dan Carpenter <dan.carpenter@linaro.org>
> > ASoC: cs35l56: fix reversed if statement in cs35l56_dspwait_asp1tx_put()
> >
> > Kuniyuki Iwashima <kuniyu@amazon.com>
> > af_unix: Drop oob_skb ref before purging queue in GC.
> >
> > Kuniyuki Iwashima <kuniyu@amazon.com>
> > af_unix: Fix task hung while purging oob_skb in GC.
> >
> > NeilBrown <neilb@suse.de>
> > NFS: Fix data corruption caused by congestion.
> >
> > Peter Ujfalusi <peter.ujfalusi@gmail.com>
> > mfd: twl6030-irq: Revert to use of_match_device()
> >
> > Paolo Abeni <pabeni@redhat.com>
> > mptcp: fix possible deadlock in subflow diag
> >
> > Davide Caratti <dcaratti@redhat.com>
> > mptcp: fix double-free on socket dismantle
> >
> > Paolo Abeni <pabeni@redhat.com>
> > mptcp: fix potential wake-up event loss
> >
> > Paolo Abeni <pabeni@redhat.com>
> > mptcp: fix snd_wnd initialization for passive socket
> >
> > Geliang Tang <tanggeliang@kylinos.cn>
> > selftests: mptcp: join: add ss mptcp support check
> >
> > Paolo Abeni <pabeni@redhat.com>
> > mptcp: push at DSS boundaries
> >
> > Matthieu Baerts (NGI0) <matttbe@kernel.org>
> > mptcp: avoid printing warning once on client side
> >
> > Geliang Tang <tanggeliang@kylinos.cn>
> > mptcp: map v4 address to v6 when destroying subflow
> >
> > Paolo Bonzini <pbonzini@redhat.com>
> > x86/cpu/intel: Detect TME keyid bits before setting MTRR mask registers
> >
> > Paolo Bonzini <pbonzini@redhat.com>
> > x86/cpu: Allow reducing x86_phys_bits during early_identify_cpu()
> >
> > Jiri Bohac <jbohac@suse.cz>
> > x86/e820: Don't reserve SETUP_RNG_SEED in e820
> >
> > Byungchul Park <byungchul@sk.com>
> > mm/vmscan: fix a bug calling wakeup_kswapd() with a wrong zone index
> >
> > Aneesh Kumar K.V (IBM) <aneesh.kumar@kernel.org>
> > mm/debug_vm_pgtable: fix BUG_ON with pud advanced test
> >
> > Masami Hiramatsu (Google) <mhiramat@kernel.org>
> > fprobe: Fix to allocate entry_data_size buffer with rethook instances
> >
> > Bjorn Andersson <quic_bjorande@quicinc.com>
> > pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation
> >
> > Cristian Marussi <cristian.marussi@arm.com>
> > pmdomain: arm: Fix NULL dereference on scmi_perf_domain removal
> >
> > Tim Schumacher <timschumi@gmx.de>
> > efivarfs: Request at most 512 bytes for variable names
> >
> > Nicolin Chen <nicolinc@nvidia.com>
> > iommufd: Fix protection fault in iommufd_test_syz_conv_iova
> >
> > Nicolin Chen <nicolinc@nvidia.com>
> > iommufd: Fix iopt_access_list_id overwrite bug
> >
> > Nathan Chancellor <nathan@kernel.org>
> > kbuild: Add -Wa,--fatal-warnings to as-instr invocation
> >
> > Thomas Weißschuh <linux@weissschuh.net>
> > power: supply: mm8013: select REGMAP_I2C
> >
> > Samuel Holland <samuel.holland@sifive.com>
> > riscv: Fix enabling cbo.zero when running in M-mode
> >
> > Zong Li <zong.li@sifive.com>
> > riscv: add CALLER_ADDRx support
> >
> > Nathan Chancellor <nathan@kernel.org>
> > RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
> >
> > Xiubo Li <xiubli@redhat.com>
> > ceph: switch to corrected encoding of max_xattr_size in mdsmap
> >
> > Elad Nachman <enachman@marvell.com>
> > mmc: sdhci-xenon: fix PHY init clock stability
> >
> > Elad Nachman <enachman@marvell.com>
> > mmc: sdhci-xenon: add timeout for PHY init complete
> >
> > Ivan Semenov <ivan@semenov.dev>
> > mmc: core: Fix eMMC initialization with 1-bit bus connection
> >
> > Christophe Kerello <christophe.kerello@foss.st.com>
> > mmc: mmci: stm32: fix DMA API overlapping mappings warning
> >
> > Curtis Klein <curtis.klein@hpe.com>
> > dmaengine: fsl-qdma: init irq after reg initialization
> >
> > Joy Zou <joy.zou@nxp.com>
> > dmaengine: fsl-edma: correct calculation of 'nbytes' in multi-fifo scenario
> >
> > Tadeusz Struk <tstruk@gigaio.com>
> > dmaengine: ptdma: use consistent DMA masks
> >
> > Ard Biesheuvel <ardb@kernel.org>
> > crypto: arm64/neonbs - fix out-of-bounds access on short input
> >
> > Peng Ma <peng.ma@nxp.com>
> > dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
> >
> > Rob Clark <robdclark@chromium.org>
> > soc: qcom: pmic_glink: Fix boot when QRTR=m
> >
> > Ryan Lin <tsung-hua.lin@amd.com>
> > drm/amd/display: Add monitor patch for specific eDP
> >
> > Ma Jun <Jun.Ma2@amd.com>
> > drm/amdgpu/pm: Fix the power1_min_cap value
> >
> > Matthew Auld <matthew.auld@intel.com>
> > drm/buddy: fix range bias
> >
> > Alex Deucher <alexander.deucher@amd.com>
> > Revert "drm/amd/pm: resolve reboot exception for si oland"
> >
> > Filipe Manana <fdmanana@suse.com>
> > btrfs: send: don't issue unnecessary zero writes for trailing hole
> >
> > David Sterba <dsterba@suse.com>
> > btrfs: dev-replace: properly validate device names
> >
> > Filipe Manana <fdmanana@suse.com>
> > btrfs: fix double free of anonymous device after snapshot creation failure
> >
> > Johannes Berg <johannes.berg@intel.com>
> > wifi: nl80211: reject iftype change with mesh ID change
> >
> > Elad Nachman <enachman@marvell.com>
> > mtd: rawnand: marvell: fix layouts
> >
> > Nhat Pham <nphamcs@gmail.com>
> > mm: cachestat: fix folio read-after-free in cache walk
> >
> > Alexander Ofitserov <oficerovas@altlinux.org>
> > gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
> >
> > Mickaël Salaün <mic@digikod.net>
> > landlock: Fix asymmetric private inodes referring
> >
> > Johan Hovold <johan+linaro@kernel.org>
> > Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid
> >
> > Willian Wang <git@willian.wang>
> > ALSA: hda/realtek: Add special fixup for Lenovo 14IRP8
> >
> > Eniac Zhang <eniac-xw.zhang@hp.com>
> > ALSA: hda/realtek: fix mute/micmute LED For HP mt440
> >
> > Hans Peter <flurry123@gmx.ch>
> > ALSA: hda/realtek: Enable Mute LED on HP 840 G8 (MB 8AB8)
> >
> > Gergo Koteles <soyer@irl.hu>
> > ALSA: hda/realtek: tas2781: enable subwoofer volume control
> >
> > Jay Ajit Mate <jay.mate15@gmail.com>
> > ALSA: hda/realtek: Fix top speaker connection on Dell Inspiron 16 Plus 7630
> >
> > Takashi Iwai <tiwai@suse.de>
> > ALSA: ump: Fix the discard error code from snd_ump_legacy_open()
> >
> > Takashi Sakamoto <o-takashi@sakamocchi.jp>
> > ALSA: firewire-lib: fix to check cycle continuity
> >
> > Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
> > tomoyo: fix UAF write bug in tomoyo_write_control()
> >
> > Saravana Kannan <saravanak@google.com>
> > of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing
> >
> > Sid Pranjale <sidpranjale127@protonmail.com>
> > drm/nouveau: keep DMA buffers required for suspend/resume
> >
> > Filipe Manana <fdmanana@suse.com>
> > btrfs: fix race between ordered extent completion and fiemap
> >
> > Dimitris Vlachos <dvlachos@ics.forth.gr>
> > riscv: Sparse-Memory/vmemmap out-of-bounds fix
> >
> > Alexandre Ghiti <alexghiti@rivosinc.com>
> > riscv: Fix pte_leaf_size() for NAPOT
> >
> > Alexandre Ghiti <alexghiti@rivosinc.com>
> > Revert "riscv: mm: support Svnapot in huge vmap"
> >
> > Vadim Shakirov <vadim.shakirov@syntacore.com>
> > drivers: perf: ctr_get_width function for legacy is not defined
> >
> > Vadim Shakirov <vadim.shakirov@syntacore.com>
> > drivers: perf: added capabilities for legacy PMU
> >
> > Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
> > drm/amd/display: Prevent potential buffer overflow in map_hw_resources
> >
> > David Howells <dhowells@redhat.com>
> > afs: Fix endless loop in directory parsing
> >
> > Jiri Slaby (SUSE) <jirislaby@kernel.org>
> > fbcon: always restore the old font data in fbcon_do_set_font()
> >
> > Thierry Reding <treding@nvidia.com>
> > drm/tegra: Remove existing framebuffer only if we support display
> >
> > Conor Dooley <conor@kernel.org>
> > RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
> >
> > Richard Fitzgerald <rf@opensource.cirrus.com>
> > ASoC: soc-card: Fix missing locking in snd_soc_card_get_kcontrol()
> >
> > Richard Fitzgerald <rf@opensource.cirrus.com>
> > ASoC: cs35l56: Fix deadlock in ASP1 mixer register initialization
> >
> > Richard Fitzgerald <rf@opensource.cirrus.com>
> > ASoC: cs35l56: Fix misuse of wm_adsp 'part' string for silicon revision
> >
> > Richard Fitzgerald <rf@opensource.cirrus.com>
> > ASoC: cs35l56: Fix for initializing ASP1 mixer registers
> >
> > Richard Fitzgerald <rf@opensource.cirrus.com>
> > ASoC: cs35l56: Don't add the same register patch multiple times
> >
> > Richard Fitzgerald <rf@opensource.cirrus.com>
> > ASoC: cs35l56: cs35l56_component_remove() must clean up wm_adsp
> >
> > Richard Fitzgerald <rf@opensource.cirrus.com>
> > ASoC: cs35l56: cs35l56_component_remove() must clear cs35l56->component
> >
> > Alexandre Ghiti <alexghiti@rivosinc.com>
> > riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
> >
> > Yangyu Chen <cyy@cyyself.name>
> > riscv: mm: fix NOCACHE_THEAD does not set bit[61] correctly
> >
> > Mikko Perttunen <mperttunen@nvidia.com>
> > gpu: host1x: Skip reset assert on Tegra186
> >
> > Colin Ian King <colin.i.king@gmail.com>
> > ASoC: qcom: Fix uninitialized pointer dmactl
> >
> > Takashi Iwai <tiwai@suse.de>
> > ALSA: Drop leftover snd-rtctimer stuff from Makefile
> >
> > Richard Fitzgerald <rf@opensource.cirrus.com>
> > ASoC: cs35l56: Must clear HALO_STATE before issuing SYSTEM_RESET
> >
> > Hans de Goede <hdegoede@redhat.com>
> > power: supply: bq27xxx-i2c: Do not free non existing IRQ
> >
> > Arnd Bergmann <arnd@arndb.de>
> > efi/capsule-loader: fix incorrect allocation size
> >
> > Jisheng Zhang <jszhang@kernel.org>
> > riscv: tlb: fix __p*d_free_tlb()
> >
> > Sabrina Dubroca <sd@queasysnail.net>
> > tls: fix use-after-free on failed backlog decryption
> >
> > Sabrina Dubroca <sd@queasysnail.net>
> > tls: separate no-async decryption request handling from async
> >
> > Sabrina Dubroca <sd@queasysnail.net>
> > tls: fix peeking with sync+async decryption
> >
> > Sabrina Dubroca <sd@queasysnail.net>
> > tls: decrement decrypt_pending if no async completion will be called
> >
> > Lukasz Majewski <lukma@denx.de>
> > net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
> >
> > Oleksij Rempel <o.rempel@pengutronix.de>
> > igb: extend PTP timestamp adjustments to i211
> >
> > Lin Ma <linma@zju.edu.cn>
> > rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
> >
> > Jakub Kicinski <kuba@kernel.org>
> > tools: ynl: fix handling of multiple mcast groups
> >
> > Florian Westphal <fw@strlen.de>
> > netfilter: bridge: confirm multicast packets before passing them up the stack
> >
> > Ignat Korchagin <ignat@cloudflare.com>
> > netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
> >
> > Zijun Hu <quic_zijuhu@quicinc.com>
> > Bluetooth: qca: Fix triggering coredump implementation
> >
> > Janaki Ramaiah Thota <quic_janathot@quicinc.com>
> > Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
> >
> > Zijun Hu <quic_zijuhu@quicinc.com>
> > Bluetooth: qca: Fix wrong event type for patch config command
> >
> > Kai-Heng Feng <kai.heng.feng@canonical.com>
> > Bluetooth: Enforce validation on max value of connection interval
> >
> > Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> > Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
> >
> > Zijun Hu <quic_zijuhu@quicinc.com>
> > Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR
> >
> > Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> > Bluetooth: hci_sync: Fix accept_list when attempting to suspend
> >
> > Ying Hsu <yinghsu@chromium.org>
> > Bluetooth: Avoid potential use-after-free in hci_error_reset
> >
> > Jonas Dreßler <verdre@v0yd.nl>
> > Bluetooth: hci_sync: Check the correct flag before starting a scan
> >
> > Jakub Raczynski <j.raczynski@samsung.com>
> > stmmac: Clear variable when destroying workqueue
> >
> > Justin Iurman <justin.iurman@uliege.be>
> > uapi: in6: replace temporary label with rfc9486
> >
> > Oleksij Rempel <o.rempel@pengutronix.de>
> > net: lan78xx: fix "softirq work is pending" error
> >
> > Javier Carrasco <javier.carrasco.cruz@gmail.com>
> > net: usb: dm9601: fix wrong return value in dm9601_mdio_read
> >
> > Jakub Kicinski <kuba@kernel.org>
> > veth: try harder when allocating queue memory
> >
> > Oleksij Rempel <o.rempel@pengutronix.de>
> > lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
> >
> > Eric Dumazet <edumazet@google.com>
> > ipv6: fix potential "struct net" leak in inet6_rtm_getaddr()
> >
> > Jakub Kicinski <kuba@kernel.org>
> > net: veth: clear GRO when clearing XDP even when down
> >
> > Doug Smythies <dsmythies@telus.net>
> > cpufreq: intel_pstate: fix pstate limits enforcement for adjust_perf call back
> >
> > Yunjian Wang <wangyunjian@huawei.com>
> > tun: Fix xdp_rxq_info's queue_index when detaching
> >
> > Vladimir Oltean <vladimir.oltean@nxp.com>
> > net: dpaa: fman_memac: accept phy-interface-type = "10gbase-r" in the device tree
> >
> > Jeremy Kerr <jk@codeconstruct.com.au>
> > net: mctp: take ownership of skb in mctp_local_output
> >
> > Florian Westphal <fw@strlen.de>
> > net: ip_tunnel: prevent perpetual headroom growth
> >
> > Florian Westphal <fw@strlen.de>
> > netlink: add nla be16/32 types to minlen array
> >
> > Ryosuke Yasuoka <ryasuoka@redhat.com>
> > netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter
> >
> > Théo Lebrun <theo.lebrun@bootlin.com>
> > spi: cadence-qspi: remove system-wide suspend helper calls from runtime PM hooks
> >
> > Théo Lebrun <theo.lebrun@bootlin.com>
> > spi: cadence-qspi: fix pointer reference in runtime PM hooks
> >
> > Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
> > ice: fix pin phase adjust updates on PF reset
> >
> > Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
> > ice: fix dpll periodic work data updates on PF reset
> >
> > Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
> > ice: fix dpll and dpll_pin data access on PF reset
> >
> > Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
> > ice: fix dpll input pin phase_adjust value updates
> >
> > Yochai Hagvi <yochai.hagvi@intel.com>
> > ice: fix connection state of DPLL and out pin
> >
> > Han Xu <han.xu@nxp.com>
> > mtd: spinand: gigadevice: Fix the get ecc status issue
> >
> > Josef Bacik <josef@toxicpanda.com>
> > btrfs: fix deadlock with fiemap and extent locking
> >
> >
> > -------------
> >
> > Diffstat:
> >
> > Documentation/arch/x86/mds.rst | 34 +++-
> > Makefile | 4 +-
> > arch/arm64/crypto/aes-neonbs-glue.c | 11 ++
> > arch/powerpc/include/asm/rtas.h | 4 +-
> > arch/powerpc/kernel/rtas.c | 9 +-
> > arch/powerpc/platforms/pseries/iommu.c | 156 +++++++++++------
> > arch/riscv/Kconfig | 1 -
> > arch/riscv/include/asm/csr.h | 2 +
> > arch/riscv/include/asm/ftrace.h | 5 +
> > arch/riscv/include/asm/hugetlb.h | 2 +
> > arch/riscv/include/asm/pgalloc.h | 20 ++-
> > arch/riscv/include/asm/pgtable-64.h | 2 +-
> > arch/riscv/include/asm/pgtable.h | 6 +-
> > arch/riscv/include/asm/vmalloc.h | 61 +------
> > arch/riscv/kernel/Makefile | 2 +
> > arch/riscv/kernel/cpufeature.c | 17 +-
> > arch/riscv/kernel/return_address.c | 48 +++++
> > arch/riscv/mm/hugetlbpage.c | 2 +
> > arch/x86/entry/entry_32.S | 3 +
> > arch/x86/entry/entry_64.S | 11 ++
> > arch/x86/entry/entry_64_compat.S | 1 +
> > arch/x86/include/asm/entry-common.h | 1 -
> > arch/x86/include/asm/nospec-branch.h | 12 --
> > arch/x86/kernel/cpu/bugs.c | 15 +-
> > arch/x86/kernel/cpu/common.c | 4 +-
> > arch/x86/kernel/cpu/intel.c | 178 ++++++++++---------
> > arch/x86/kernel/e820.c | 8 +-
> > arch/x86/kernel/nmi.c | 3 -
> > arch/x86/kvm/vmx/run_flags.h | 7 +-
> > arch/x86/kvm/vmx/vmenter.S | 9 +-
> > arch/x86/kvm/vmx/vmx.c | 20 ++-
> > drivers/bluetooth/btqca.c | 2 +-
> > drivers/bluetooth/hci_bcm4377.c | 3 +-
> > drivers/bluetooth/hci_qca.c | 22 ++-
> > drivers/cpufreq/intel_pstate.c | 3 +
> > drivers/dma/dw-edma/dw-edma-v0-core.c | 17 ++
> > drivers/dma/dw-edma/dw-hdma-v0-core.c | 39 +++--
> > drivers/dma/dw-edma/dw-hdma-v0-regs.h | 2 +-
> > drivers/dma/fsl-edma-common.c | 2 +-
> > drivers/dma/fsl-qdma.c | 25 +--
> > drivers/dma/idxd/cdev.c | 2 +-
> > drivers/dma/idxd/debugfs.c | 2 +-
> > drivers/dma/idxd/idxd.h | 1 -
> > drivers/dma/idxd/init.c | 15 +-
> > drivers/dma/idxd/irq.c | 3 +-
> > drivers/dma/ptdma/ptdma-dmaengine.c | 2 -
> > drivers/firmware/efi/capsule-loader.c | 2 +-
> > drivers/gpio/gpio-74x164.c | 4 +-
> > drivers/gpio/gpiolib.c | 12 +-
> > .../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 6 +-
> > drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c | 5 +
> > drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 29 +++
> > drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 9 +-
> > drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 9 +-
> > .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 9 +-
> > .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 9 +-
> > .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 9 +-
> > drivers/gpu/drm/drm_buddy.c | 10 ++
> > drivers/gpu/drm/nouveau/nouveau_drm.c | 5 +-
> > drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c | 4 +-
> > drivers/gpu/drm/tegra/drm.c | 23 ++-
> > drivers/gpu/host1x/dev.c | 15 +-
> > drivers/gpu/host1x/dev.h | 6 +
> > drivers/iommu/iommufd/io_pagetable.c | 9 +-
> > drivers/iommu/iommufd/selftest.c | 27 ++-
> > drivers/mfd/twl6030-irq.c | 10 +-
> > drivers/mmc/core/mmc.c | 2 +
> > drivers/mmc/host/mmci_stm32_sdmmc.c | 24 +++
> > drivers/mmc/host/sdhci-xenon-phy.c | 48 ++++-
> > drivers/mtd/nand/raw/marvell_nand.c | 13 +-
> > drivers/mtd/nand/spi/gigadevice.c | 6 +-
> > drivers/net/ethernet/freescale/fman/fman_memac.c | 18 +-
> > drivers/net/ethernet/intel/ice/ice_dpll.c | 91 ++++++++--
> > drivers/net/ethernet/intel/igb/igb_ptp.c | 5 +-
> > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +-
> > drivers/net/gtp.c | 12 +-
> > drivers/net/tun.c | 1 +
> > drivers/net/usb/dm9601.c | 2 +-
> > drivers/net/usb/lan78xx.c | 5 +-
> > drivers/net/veth.c | 40 ++---
> > drivers/of/property.c | 2 +-
> > drivers/perf/riscv_pmu.c | 18 +-
> > drivers/perf/riscv_pmu_legacy.c | 10 +-
> > drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c | 2 +-
> > drivers/phy/qualcomm/phy-qcom-m31.c | 2 +-
> > drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 10 +-
> > drivers/pmdomain/arm/scmi_perf_domain.c | 3 +
> > drivers/pmdomain/qcom/rpmhpd.c | 7 +-
> > drivers/power/supply/Kconfig | 1 +
> > drivers/power/supply/bq27xxx_battery_i2c.c | 4 +-
> > drivers/soc/qcom/pmic_glink.c | 21 +--
> > drivers/spi/spi-cadence-quadspi.c | 11 +-
> > drivers/video/fbdev/core/fbcon.c | 8 +-
> > fs/afs/dir.c | 4 +-
> > fs/btrfs/dev-replace.c | 24 ++-
> > fs/btrfs/disk-io.c | 22 +--
> > fs/btrfs/disk-io.h | 2 +-
> > fs/btrfs/extent_io.c | 165 ++++++++++++++---
> > fs/btrfs/ioctl.c | 2 +-
> > fs/btrfs/send.c | 17 +-
> > fs/btrfs/transaction.c | 2 +-
> > fs/ceph/mdsmap.c | 7 +-
> > fs/ceph/mdsmap.h | 6 +-
> > fs/efivarfs/vars.c | 17 +-
> > fs/nfs/write.c | 4 +-
> > include/linux/bvec.h | 2 +-
> > include/linux/netfilter.h | 1 +
> > include/net/mctp.h | 1 +
> > include/sound/soc-card.h | 2 +
> > include/uapi/linux/in6.h | 2 +-
> > kernel/trace/fprobe.c | 14 +-
> > lib/nlattr.c | 4 +
> > mm/debug_vm_pgtable.c | 8 +
> > mm/filemap.c | 51 +++---
> > mm/migrate.c | 8 +
> > net/bluetooth/hci_core.c | 7 +-
> > net/bluetooth/hci_event.c | 13 +-
> > net/bluetooth/hci_sync.c | 7 +-
> > net/bluetooth/l2cap_core.c | 8 +-
> > net/bridge/br_netfilter_hooks.c | 96 ++++++++++
> > net/bridge/netfilter/nf_conntrack_bridge.c | 30 ++++
> > net/core/rtnetlink.c | 11 +-
> > net/hsr/hsr_forward.c | 2 +-
> > net/ipv4/ip_tunnel.c | 28 ++-
> > net/ipv6/addrconf.c | 7 +-
> > net/mctp/route.c | 10 +-
> > net/mptcp/diag.c | 3 +
> > net/mptcp/options.c | 2 +-
> > net/mptcp/pm_userspace.c | 10 ++
> > net/mptcp/protocol.c | 52 +++++-
> > net/mptcp/protocol.h | 21 +--
> > net/netfilter/nf_conntrack_core.c | 1 +
> > net/netfilter/nft_compat.c | 20 +++
> > net/netlink/af_netlink.c | 2 +-
> > net/tls/tls_sw.c | 40 +++--
> > net/unix/garbage.c | 21 +--
> > net/wireless/nl80211.c | 2 +
> > scripts/Kconfig.include | 2 +-
> > scripts/Makefile.compiler | 2 +-
> > security/landlock/fs.c | 4 +-
> > security/tomoyo/common.c | 3 +-
> > sound/core/Makefile | 1 -
> > sound/core/ump.c | 4 +-
> > sound/firewire/amdtp-stream.c | 2 +-
> > sound/pci/hda/patch_realtek.c | 33 +++-
> > sound/soc/codecs/cs35l45.c | 2 +-
> > sound/soc/codecs/cs35l56-shared.c | 8 +-
> > sound/soc/codecs/cs35l56.c | 195 ++++++++++++++++++---
> > sound/soc/codecs/cs35l56.h | 1 +
> > sound/soc/fsl/fsl_xcvr.c | 12 +-
> > sound/soc/qcom/lpass-cdc-dma.c | 2 +-
> > sound/soc/soc-card.c | 24 ++-
> > tools/net/ynl/lib/ynl.c | 1 +
> > tools/testing/selftests/net/mptcp/mptcp_connect.sh | 16 +-
> > tools/testing/selftests/net/mptcp/mptcp_join.sh | 192 ++++++++++++--------
> > tools/testing/selftests/net/mptcp/mptcp_lib.sh | 15 ++
> > tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 8 +-
> > tools/testing/selftests/net/mptcp/userspace_pm.sh | 86 +++++----
> > 158 files changed, 1922 insertions(+), 829 deletions(-)
> >
> >
> >
>
^ permalink raw reply [relevance 0%]
* Re: [PATCH v3 02/10] mm/ppc: Replace pXd_is_leaf() with pXd_leaf()
2024-03-05 4:37 5% ` peterx
@ 2024-03-06 6:20 0% ` Mike Rapoport
-1 siblings, 0 replies; 200+ results
From: Mike Rapoport @ 2024-03-06 6:20 UTC (permalink / raw)
To: peterx
Cc: Muchun Song, Yang Shi, x86, linux-kernel, Aneesh Kumar K.V,
linux-mm, Nicholas Piggin, Jason Gunthorpe, Naveen N. Rao,
Kirill A . Shutemov, Andrew Morton, linuxppc-dev
On Tue, Mar 05, 2024 at 12:37:42PM +0800, peterx@redhat.com wrote:
> From: Peter Xu <peterx@redhat.com>
>
> They're the same macros underneath. Drop pXd_is_leaf(), instead always use
> pXd_leaf().
>
> At the meantime, instead of renames, drop the pXd_is_leaf() fallback
> definitions directly in arch/powerpc/include/asm/pgtable.h. because similar
> fallback macros for pXd_leaf() are already defined in
> include/linux/pgtable.h.
>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Nicholas Piggin <npiggin@gmail.com>
> Cc: "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>
> Cc: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
> Cc: linuxppc-dev@lists.ozlabs.org
> Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
> Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Mike Rapoport (IBM) <rppt@kernel.org>
> ---
> arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
> arch/powerpc/include/asm/pgtable.h | 24 --------------------
> arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
> arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
> arch/powerpc/mm/pgtable.c | 6 ++---
> arch/powerpc/mm/pgtable_64.c | 6 ++---
> arch/powerpc/xmon/xmon.c | 6 ++---
> 7 files changed, 26 insertions(+), 52 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
> index d1318e8582ac..3e99e409774a 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
> @@ -1439,18 +1439,16 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
> /*
> * Like pmd_huge() and pmd_large(), but works regardless of config options
> */
> -#define pmd_is_leaf pmd_is_leaf
> -#define pmd_leaf pmd_is_leaf
> +#define pmd_leaf pmd_leaf
> #define pmd_large pmd_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> +static inline bool pmd_leaf(pmd_t pmd)
> {
> return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
> }
>
> -#define pud_is_leaf pud_is_leaf
> -#define pud_leaf pud_is_leaf
> +#define pud_leaf pud_leaf
> #define pud_large pud_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> +static inline bool pud_leaf(pud_t pud)
> {
> return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
> }
> diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
> index 5928b3c1458d..e6edf1cdbc5b 100644
> --- a/arch/powerpc/include/asm/pgtable.h
> +++ b/arch/powerpc/include/asm/pgtable.h
> @@ -182,30 +182,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
> }
> #endif
>
> -#ifndef pmd_is_leaf
> -#define pmd_is_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef pud_is_leaf
> -#define pud_is_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef p4d_is_leaf
> -#define p4d_is_leaf p4d_is_leaf
> -static inline bool p4d_is_leaf(p4d_t p4d)
> -{
> - return false;
> -}
> -#endif
> -
> #define pmd_pgtable pmd_pgtable
> static inline pgtable_t pmd_pgtable(pmd_t pmd)
> {
> diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> index 4a1abb9f7c05..408d98f8a514 100644
> --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
> +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> @@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
> for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
> if (!pmd_present(*p))
> continue;
> - if (pmd_is_leaf(*p)) {
> + if (pmd_leaf(*p)) {
> if (full) {
> pmd_clear(p);
> } else {
> @@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
> for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
> if (!pud_present(*p))
> continue;
> - if (pud_is_leaf(*p)) {
> + if (pud_leaf(*p)) {
> pud_clear(p);
> } else {
> pmd_t *pmd;
> @@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = pud_alloc_one(kvm->mm, gpa);
>
> pmd = NULL;
> - if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
> + if (pud && pud_present(*pud) && !pud_leaf(*pud))
> pmd = pmd_offset(pud, gpa);
> else if (level <= 1)
> new_pmd = kvmppc_pmd_alloc();
>
> - if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
> + if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
> new_ptep = kvmppc_pte_alloc();
>
> /* Check if we might have been invalidated; let the guest retry if so */
> @@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = NULL;
> }
> pud = pud_offset(p4d, gpa);
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> unsigned long hgpa = gpa & PUD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> @@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pmd = NULL;
> }
> pmd = pmd_offset(pud, gpa);
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> unsigned long lgpa = gpa & PMD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> index c6a4ac766b2b..1f8db10693e3 100644
> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> @@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
> pudp = pud_alloc(&init_mm, p4dp, idx);
> if (!pudp)
> continue;
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> ptep = (pte_t *)pudp;
> goto update_the_pte;
> }
> pmdp = pmd_alloc(&init_mm, pudp, idx);
> if (!pmdp)
> continue;
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> ptep = pmdp_ptep(pmdp);
> goto update_the_pte;
> }
> @@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
> if (!pmd_present(*pmd))
> continue;
>
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> if (IS_ALIGNED(addr, PMD_SIZE) &&
> IS_ALIGNED(next, PMD_SIZE)) {
> if (!direct)
> @@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
> if (!pud_present(*pud))
> continue;
>
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> if (!IS_ALIGNED(addr, PUD_SIZE) ||
> !IS_ALIGNED(next, PUD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
> if (!p4d_present(*p4d))
> continue;
>
> - if (p4d_is_leaf(*p4d)) {
> + if (p4d_leaf(*p4d)) {
> if (!IS_ALIGNED(addr, P4D_SIZE) ||
> !IS_ALIGNED(next, P4D_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -1554,7 +1554,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>
> int pud_clear_huge(pud_t *pud)
> {
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> pud_clear(pud);
> return 1;
> }
> @@ -1601,7 +1601,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>
> int pmd_clear_huge(pmd_t *pmd)
> {
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> pmd_clear(pmd);
> return 1;
> }
> diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
> index 549a440ed7f6..9e7ba9c3851f 100644
> --- a/arch/powerpc/mm/pgtable.c
> +++ b/arch/powerpc/mm/pgtable.c
> @@ -410,7 +410,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (p4d_none(p4d))
> return NULL;
>
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> ret_pte = (pte_t *)p4dp;
> goto out;
> }
> @@ -432,7 +432,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (pud_none(pud))
> return NULL;
>
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> ret_pte = (pte_t *)pudp;
> goto out;
> }
> @@ -471,7 +471,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> goto out;
> }
>
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> ret_pte = (pte_t *)pmdp;
> goto out;
> }
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index 1b366526f4f2..386c6b06eab7 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
> /* 4 level page table */
> struct page *p4d_page(p4d_t p4d)
> {
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!p4d_huge(p4d));
> return pte_page(p4d_pte(p4d));
> @@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
>
> struct page *pud_page(pud_t pud)
> {
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!pud_huge(pud));
> return pte_page(pud_pte(pud));
> @@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
> */
> struct page *pmd_page(pmd_t pmd)
> {
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> /*
> * vmalloc_to_page may be called on any vmap address (not only
> * vmalloc), and it uses pmd_page() etc., when huge vmap is
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index b3b94cd37713..9669c9925225 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (p4d_is_leaf(*p4dp)) {
> + if (p4d_leaf(*p4dp)) {
> format_pte(p4dp, p4d_val(*p4dp));
> return;
> }
> @@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> format_pte(pudp, pud_val(*pudp));
> return;
> }
> @@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> format_pte(pmdp, pmd_val(*pmdp));
> return;
> }
> --
> 2.44.0
>
>
--
Sincerely yours,
Mike.
^ permalink raw reply [relevance 0%]
* Re: [PATCH v3 02/10] mm/ppc: Replace pXd_is_leaf() with pXd_leaf()
@ 2024-03-06 6:20 0% ` Mike Rapoport
0 siblings, 0 replies; 200+ results
From: Mike Rapoport @ 2024-03-06 6:20 UTC (permalink / raw)
To: peterx
Cc: linux-mm, linux-kernel, Christophe Leroy, x86,
Kirill A . Shutemov, Jason Gunthorpe, Yang Shi, Andrew Morton,
linuxppc-dev, Muchun Song, Michael Ellerman, Nicholas Piggin,
Aneesh Kumar K.V, Naveen N. Rao
On Tue, Mar 05, 2024 at 12:37:42PM +0800, peterx@redhat.com wrote:
> From: Peter Xu <peterx@redhat.com>
>
> They're the same macros underneath. Drop pXd_is_leaf(), instead always use
> pXd_leaf().
>
> At the meantime, instead of renames, drop the pXd_is_leaf() fallback
> definitions directly in arch/powerpc/include/asm/pgtable.h. because similar
> fallback macros for pXd_leaf() are already defined in
> include/linux/pgtable.h.
>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Nicholas Piggin <npiggin@gmail.com>
> Cc: "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>
> Cc: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
> Cc: linuxppc-dev@lists.ozlabs.org
> Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
> Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Mike Rapoport (IBM) <rppt@kernel.org>
> ---
> arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
> arch/powerpc/include/asm/pgtable.h | 24 --------------------
> arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
> arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
> arch/powerpc/mm/pgtable.c | 6 ++---
> arch/powerpc/mm/pgtable_64.c | 6 ++---
> arch/powerpc/xmon/xmon.c | 6 ++---
> 7 files changed, 26 insertions(+), 52 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
> index d1318e8582ac..3e99e409774a 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
> @@ -1439,18 +1439,16 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
> /*
> * Like pmd_huge() and pmd_large(), but works regardless of config options
> */
> -#define pmd_is_leaf pmd_is_leaf
> -#define pmd_leaf pmd_is_leaf
> +#define pmd_leaf pmd_leaf
> #define pmd_large pmd_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> +static inline bool pmd_leaf(pmd_t pmd)
> {
> return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
> }
>
> -#define pud_is_leaf pud_is_leaf
> -#define pud_leaf pud_is_leaf
> +#define pud_leaf pud_leaf
> #define pud_large pud_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> +static inline bool pud_leaf(pud_t pud)
> {
> return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
> }
> diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
> index 5928b3c1458d..e6edf1cdbc5b 100644
> --- a/arch/powerpc/include/asm/pgtable.h
> +++ b/arch/powerpc/include/asm/pgtable.h
> @@ -182,30 +182,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
> }
> #endif
>
> -#ifndef pmd_is_leaf
> -#define pmd_is_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef pud_is_leaf
> -#define pud_is_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef p4d_is_leaf
> -#define p4d_is_leaf p4d_is_leaf
> -static inline bool p4d_is_leaf(p4d_t p4d)
> -{
> - return false;
> -}
> -#endif
> -
> #define pmd_pgtable pmd_pgtable
> static inline pgtable_t pmd_pgtable(pmd_t pmd)
> {
> diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> index 4a1abb9f7c05..408d98f8a514 100644
> --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
> +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> @@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
> for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
> if (!pmd_present(*p))
> continue;
> - if (pmd_is_leaf(*p)) {
> + if (pmd_leaf(*p)) {
> if (full) {
> pmd_clear(p);
> } else {
> @@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
> for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
> if (!pud_present(*p))
> continue;
> - if (pud_is_leaf(*p)) {
> + if (pud_leaf(*p)) {
> pud_clear(p);
> } else {
> pmd_t *pmd;
> @@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = pud_alloc_one(kvm->mm, gpa);
>
> pmd = NULL;
> - if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
> + if (pud && pud_present(*pud) && !pud_leaf(*pud))
> pmd = pmd_offset(pud, gpa);
> else if (level <= 1)
> new_pmd = kvmppc_pmd_alloc();
>
> - if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
> + if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
> new_ptep = kvmppc_pte_alloc();
>
> /* Check if we might have been invalidated; let the guest retry if so */
> @@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = NULL;
> }
> pud = pud_offset(p4d, gpa);
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> unsigned long hgpa = gpa & PUD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> @@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pmd = NULL;
> }
> pmd = pmd_offset(pud, gpa);
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> unsigned long lgpa = gpa & PMD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> index c6a4ac766b2b..1f8db10693e3 100644
> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> @@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
> pudp = pud_alloc(&init_mm, p4dp, idx);
> if (!pudp)
> continue;
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> ptep = (pte_t *)pudp;
> goto update_the_pte;
> }
> pmdp = pmd_alloc(&init_mm, pudp, idx);
> if (!pmdp)
> continue;
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> ptep = pmdp_ptep(pmdp);
> goto update_the_pte;
> }
> @@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
> if (!pmd_present(*pmd))
> continue;
>
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> if (IS_ALIGNED(addr, PMD_SIZE) &&
> IS_ALIGNED(next, PMD_SIZE)) {
> if (!direct)
> @@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
> if (!pud_present(*pud))
> continue;
>
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> if (!IS_ALIGNED(addr, PUD_SIZE) ||
> !IS_ALIGNED(next, PUD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
> if (!p4d_present(*p4d))
> continue;
>
> - if (p4d_is_leaf(*p4d)) {
> + if (p4d_leaf(*p4d)) {
> if (!IS_ALIGNED(addr, P4D_SIZE) ||
> !IS_ALIGNED(next, P4D_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -1554,7 +1554,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>
> int pud_clear_huge(pud_t *pud)
> {
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> pud_clear(pud);
> return 1;
> }
> @@ -1601,7 +1601,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>
> int pmd_clear_huge(pmd_t *pmd)
> {
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> pmd_clear(pmd);
> return 1;
> }
> diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
> index 549a440ed7f6..9e7ba9c3851f 100644
> --- a/arch/powerpc/mm/pgtable.c
> +++ b/arch/powerpc/mm/pgtable.c
> @@ -410,7 +410,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (p4d_none(p4d))
> return NULL;
>
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> ret_pte = (pte_t *)p4dp;
> goto out;
> }
> @@ -432,7 +432,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (pud_none(pud))
> return NULL;
>
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> ret_pte = (pte_t *)pudp;
> goto out;
> }
> @@ -471,7 +471,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> goto out;
> }
>
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> ret_pte = (pte_t *)pmdp;
> goto out;
> }
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index 1b366526f4f2..386c6b06eab7 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
> /* 4 level page table */
> struct page *p4d_page(p4d_t p4d)
> {
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!p4d_huge(p4d));
> return pte_page(p4d_pte(p4d));
> @@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
>
> struct page *pud_page(pud_t pud)
> {
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!pud_huge(pud));
> return pte_page(pud_pte(pud));
> @@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
> */
> struct page *pmd_page(pmd_t pmd)
> {
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> /*
> * vmalloc_to_page may be called on any vmap address (not only
> * vmalloc), and it uses pmd_page() etc., when huge vmap is
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index b3b94cd37713..9669c9925225 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (p4d_is_leaf(*p4dp)) {
> + if (p4d_leaf(*p4dp)) {
> format_pte(p4dp, p4d_val(*p4dp));
> return;
> }
> @@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> format_pte(pudp, pud_val(*pudp));
> return;
> }
> @@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> format_pte(pmdp, pmd_val(*pmdp));
> return;
> }
> --
> 2.44.0
>
>
--
Sincerely yours,
Mike.
^ permalink raw reply [relevance 0%]
* Re: [PATCH 6.7 000/161] 6.7.9-rc3 review
2024-03-05 11:28 1% [PATCH 6.7 000/161] 6.7.9-rc3 review Greg Kroah-Hartman
2024-03-05 12:30 0% ` Luna Jernberg
@ 2024-03-05 20:31 0% ` Ricardo B. Marliere
2024-03-06 14:55 0% ` Luna Jernberg
1 sibling, 1 reply; 200+ results
From: Ricardo B. Marliere @ 2024-03-05 20:31 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: stable, patches, linux-kernel, torvalds, akpm, linux, shuah,
patches, lkft-triage, pavel, jonathanh, f.fainelli,
sudipm.mukherjee, srw, rwarsow, conor, allen.lkml
On 5 Mar 11:28, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 6.7.9 release.
> There are 161 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Thu, 07 Mar 2024 11:27:43 +0000.
> Anything received after that time might be too late.
Hi Greg!
All good in my system, no regressions.
Tested-by: Ricardo B. Marliere <ricardo@marliere.net>
Thank you,
- Ricardo.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.7.9-rc3.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.7.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
>
> -------------
> Pseudo-Shortlog of commits:
>
> Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Linux 6.7.9-rc3
>
> Danilo Krummrich <dakr@redhat.com>
> drm/nouveau: don't fini scheduler before entity flush
>
> Geliang Tang <tanggeliang@kylinos.cn>
> selftests: mptcp: rm subflow with v4/v4mapped addr
>
> Geliang Tang <geliang.tang@linux.dev>
> selftests: mptcp: add mptcp_lib_is_v6
>
> Geliang Tang <geliang.tang@linux.dev>
> selftests: mptcp: update userspace pm test helpers
>
> Geliang Tang <geliang.tang@linux.dev>
> selftests: mptcp: add chk_subflows_total helper
>
> Geliang Tang <geliang.tang@linux.dev>
> selftests: mptcp: add evts_get_info helper
>
> Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> KVM/VMX: Move VERW closer to VMentry for MDS mitigation
>
> Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH
>
> Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> x86/bugs: Use ALTERNATIVE() instead of mds_user_clear static key
>
> Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> x86/entry_32: Add VERW just before userspace transition
>
> Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> x86/entry_64: Add VERW just before userspace transition
>
> Ming Lei <ming.lei@redhat.com>
> block: define bvec_iter as __packed __aligned(4)
>
> Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> gpio: fix resource unwinding order in error path
>
> Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> gpiolib: Fix the error path order in gpiochip_add_data_with_key()
>
> Arturas Moskvinas <arturas.moskvinas@gmail.com>
> gpio: 74x164: Enable output pins after registers are reset
>
> Nathan Lynch <nathanl@linux.ibm.com>
> powerpc/rtas: use correct function name for resetting TCE tables
>
> Gaurav Batra <gbatra@linux.vnet.ibm.com>
> powerpc/pseries/iommu: IOMMU table is not initialized for kdump over SR-IOV
>
> Fenghua Yu <fenghua.yu@intel.com>
> dmaengine: idxd: Ensure safe user copy of completion record
>
> Fenghua Yu <fenghua.yu@intel.com>
> dmaengine: idxd: Remove shadow Event Log head stored in idxd
>
> Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> phy: qcom-qmp-usb: fix v3 offsets data
>
> Yang Yingliang <yangyingliang@huawei.com>
> phy: qcom: phy-qcom-m31: fix wrong pointer pass to PTR_ERR()
>
> Alexander Stein <alexander.stein@ew.tq-group.com>
> phy: freescale: phy-fsl-imx8-mipi-dphy: Fix alias name to use dashes
>
> Kory Maincent <kory.maincent@bootlin.com>
> dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup
>
> Kory Maincent <kory.maincent@bootlin.com>
> dmaengine: dw-edma: HDMA: Add sync read before starting the DMA transfer in remote setup
>
> Kory Maincent <kory.maincent@bootlin.com>
> dmaengine: dw-edma: Add HDMA remote interrupt configuration
>
> Kory Maincent <kory.maincent@bootlin.com>
> dmaengine: dw-edma: HDMA_V0_REMOTEL_STOP_INT_EN typo fix
>
> Kory Maincent <kory.maincent@bootlin.com>
> dmaengine: dw-edma: Fix wrong interrupt bit set for HDMA
>
> Kory Maincent <kory.maincent@bootlin.com>
> dmaengine: dw-edma: Fix the ch_count hdma callback
>
> Dan Carpenter <dan.carpenter@linaro.org>
> ASoC: cs35l56: fix reversed if statement in cs35l56_dspwait_asp1tx_put()
>
> Kuniyuki Iwashima <kuniyu@amazon.com>
> af_unix: Drop oob_skb ref before purging queue in GC.
>
> Kuniyuki Iwashima <kuniyu@amazon.com>
> af_unix: Fix task hung while purging oob_skb in GC.
>
> NeilBrown <neilb@suse.de>
> NFS: Fix data corruption caused by congestion.
>
> Peter Ujfalusi <peter.ujfalusi@gmail.com>
> mfd: twl6030-irq: Revert to use of_match_device()
>
> Paolo Abeni <pabeni@redhat.com>
> mptcp: fix possible deadlock in subflow diag
>
> Davide Caratti <dcaratti@redhat.com>
> mptcp: fix double-free on socket dismantle
>
> Paolo Abeni <pabeni@redhat.com>
> mptcp: fix potential wake-up event loss
>
> Paolo Abeni <pabeni@redhat.com>
> mptcp: fix snd_wnd initialization for passive socket
>
> Geliang Tang <tanggeliang@kylinos.cn>
> selftests: mptcp: join: add ss mptcp support check
>
> Paolo Abeni <pabeni@redhat.com>
> mptcp: push at DSS boundaries
>
> Matthieu Baerts (NGI0) <matttbe@kernel.org>
> mptcp: avoid printing warning once on client side
>
> Geliang Tang <tanggeliang@kylinos.cn>
> mptcp: map v4 address to v6 when destroying subflow
>
> Paolo Bonzini <pbonzini@redhat.com>
> x86/cpu/intel: Detect TME keyid bits before setting MTRR mask registers
>
> Paolo Bonzini <pbonzini@redhat.com>
> x86/cpu: Allow reducing x86_phys_bits during early_identify_cpu()
>
> Jiri Bohac <jbohac@suse.cz>
> x86/e820: Don't reserve SETUP_RNG_SEED in e820
>
> Byungchul Park <byungchul@sk.com>
> mm/vmscan: fix a bug calling wakeup_kswapd() with a wrong zone index
>
> Aneesh Kumar K.V (IBM) <aneesh.kumar@kernel.org>
> mm/debug_vm_pgtable: fix BUG_ON with pud advanced test
>
> Masami Hiramatsu (Google) <mhiramat@kernel.org>
> fprobe: Fix to allocate entry_data_size buffer with rethook instances
>
> Bjorn Andersson <quic_bjorande@quicinc.com>
> pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation
>
> Cristian Marussi <cristian.marussi@arm.com>
> pmdomain: arm: Fix NULL dereference on scmi_perf_domain removal
>
> Tim Schumacher <timschumi@gmx.de>
> efivarfs: Request at most 512 bytes for variable names
>
> Nicolin Chen <nicolinc@nvidia.com>
> iommufd: Fix protection fault in iommufd_test_syz_conv_iova
>
> Nicolin Chen <nicolinc@nvidia.com>
> iommufd: Fix iopt_access_list_id overwrite bug
>
> Nathan Chancellor <nathan@kernel.org>
> kbuild: Add -Wa,--fatal-warnings to as-instr invocation
>
> Thomas Weißschuh <linux@weissschuh.net>
> power: supply: mm8013: select REGMAP_I2C
>
> Samuel Holland <samuel.holland@sifive.com>
> riscv: Fix enabling cbo.zero when running in M-mode
>
> Zong Li <zong.li@sifive.com>
> riscv: add CALLER_ADDRx support
>
> Nathan Chancellor <nathan@kernel.org>
> RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
>
> Xiubo Li <xiubli@redhat.com>
> ceph: switch to corrected encoding of max_xattr_size in mdsmap
>
> Elad Nachman <enachman@marvell.com>
> mmc: sdhci-xenon: fix PHY init clock stability
>
> Elad Nachman <enachman@marvell.com>
> mmc: sdhci-xenon: add timeout for PHY init complete
>
> Ivan Semenov <ivan@semenov.dev>
> mmc: core: Fix eMMC initialization with 1-bit bus connection
>
> Christophe Kerello <christophe.kerello@foss.st.com>
> mmc: mmci: stm32: fix DMA API overlapping mappings warning
>
> Curtis Klein <curtis.klein@hpe.com>
> dmaengine: fsl-qdma: init irq after reg initialization
>
> Joy Zou <joy.zou@nxp.com>
> dmaengine: fsl-edma: correct calculation of 'nbytes' in multi-fifo scenario
>
> Tadeusz Struk <tstruk@gigaio.com>
> dmaengine: ptdma: use consistent DMA masks
>
> Ard Biesheuvel <ardb@kernel.org>
> crypto: arm64/neonbs - fix out-of-bounds access on short input
>
> Peng Ma <peng.ma@nxp.com>
> dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
>
> Rob Clark <robdclark@chromium.org>
> soc: qcom: pmic_glink: Fix boot when QRTR=m
>
> Ryan Lin <tsung-hua.lin@amd.com>
> drm/amd/display: Add monitor patch for specific eDP
>
> Ma Jun <Jun.Ma2@amd.com>
> drm/amdgpu/pm: Fix the power1_min_cap value
>
> Matthew Auld <matthew.auld@intel.com>
> drm/buddy: fix range bias
>
> Alex Deucher <alexander.deucher@amd.com>
> Revert "drm/amd/pm: resolve reboot exception for si oland"
>
> Filipe Manana <fdmanana@suse.com>
> btrfs: send: don't issue unnecessary zero writes for trailing hole
>
> David Sterba <dsterba@suse.com>
> btrfs: dev-replace: properly validate device names
>
> Filipe Manana <fdmanana@suse.com>
> btrfs: fix double free of anonymous device after snapshot creation failure
>
> Johannes Berg <johannes.berg@intel.com>
> wifi: nl80211: reject iftype change with mesh ID change
>
> Elad Nachman <enachman@marvell.com>
> mtd: rawnand: marvell: fix layouts
>
> Nhat Pham <nphamcs@gmail.com>
> mm: cachestat: fix folio read-after-free in cache walk
>
> Alexander Ofitserov <oficerovas@altlinux.org>
> gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
>
> Mickaël Salaün <mic@digikod.net>
> landlock: Fix asymmetric private inodes referring
>
> Johan Hovold <johan+linaro@kernel.org>
> Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid
>
> Willian Wang <git@willian.wang>
> ALSA: hda/realtek: Add special fixup for Lenovo 14IRP8
>
> Eniac Zhang <eniac-xw.zhang@hp.com>
> ALSA: hda/realtek: fix mute/micmute LED For HP mt440
>
> Hans Peter <flurry123@gmx.ch>
> ALSA: hda/realtek: Enable Mute LED on HP 840 G8 (MB 8AB8)
>
> Gergo Koteles <soyer@irl.hu>
> ALSA: hda/realtek: tas2781: enable subwoofer volume control
>
> Jay Ajit Mate <jay.mate15@gmail.com>
> ALSA: hda/realtek: Fix top speaker connection on Dell Inspiron 16 Plus 7630
>
> Takashi Iwai <tiwai@suse.de>
> ALSA: ump: Fix the discard error code from snd_ump_legacy_open()
>
> Takashi Sakamoto <o-takashi@sakamocchi.jp>
> ALSA: firewire-lib: fix to check cycle continuity
>
> Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
> tomoyo: fix UAF write bug in tomoyo_write_control()
>
> Saravana Kannan <saravanak@google.com>
> of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing
>
> Sid Pranjale <sidpranjale127@protonmail.com>
> drm/nouveau: keep DMA buffers required for suspend/resume
>
> Filipe Manana <fdmanana@suse.com>
> btrfs: fix race between ordered extent completion and fiemap
>
> Dimitris Vlachos <dvlachos@ics.forth.gr>
> riscv: Sparse-Memory/vmemmap out-of-bounds fix
>
> Alexandre Ghiti <alexghiti@rivosinc.com>
> riscv: Fix pte_leaf_size() for NAPOT
>
> Alexandre Ghiti <alexghiti@rivosinc.com>
> Revert "riscv: mm: support Svnapot in huge vmap"
>
> Vadim Shakirov <vadim.shakirov@syntacore.com>
> drivers: perf: ctr_get_width function for legacy is not defined
>
> Vadim Shakirov <vadim.shakirov@syntacore.com>
> drivers: perf: added capabilities for legacy PMU
>
> Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
> drm/amd/display: Prevent potential buffer overflow in map_hw_resources
>
> David Howells <dhowells@redhat.com>
> afs: Fix endless loop in directory parsing
>
> Jiri Slaby (SUSE) <jirislaby@kernel.org>
> fbcon: always restore the old font data in fbcon_do_set_font()
>
> Thierry Reding <treding@nvidia.com>
> drm/tegra: Remove existing framebuffer only if we support display
>
> Conor Dooley <conor@kernel.org>
> RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: soc-card: Fix missing locking in snd_soc_card_get_kcontrol()
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: Fix deadlock in ASP1 mixer register initialization
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: Fix misuse of wm_adsp 'part' string for silicon revision
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: Fix for initializing ASP1 mixer registers
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: Don't add the same register patch multiple times
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: cs35l56_component_remove() must clean up wm_adsp
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: cs35l56_component_remove() must clear cs35l56->component
>
> Alexandre Ghiti <alexghiti@rivosinc.com>
> riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
>
> Yangyu Chen <cyy@cyyself.name>
> riscv: mm: fix NOCACHE_THEAD does not set bit[61] correctly
>
> Mikko Perttunen <mperttunen@nvidia.com>
> gpu: host1x: Skip reset assert on Tegra186
>
> Colin Ian King <colin.i.king@gmail.com>
> ASoC: qcom: Fix uninitialized pointer dmactl
>
> Takashi Iwai <tiwai@suse.de>
> ALSA: Drop leftover snd-rtctimer stuff from Makefile
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: Must clear HALO_STATE before issuing SYSTEM_RESET
>
> Hans de Goede <hdegoede@redhat.com>
> power: supply: bq27xxx-i2c: Do not free non existing IRQ
>
> Arnd Bergmann <arnd@arndb.de>
> efi/capsule-loader: fix incorrect allocation size
>
> Jisheng Zhang <jszhang@kernel.org>
> riscv: tlb: fix __p*d_free_tlb()
>
> Sabrina Dubroca <sd@queasysnail.net>
> tls: fix use-after-free on failed backlog decryption
>
> Sabrina Dubroca <sd@queasysnail.net>
> tls: separate no-async decryption request handling from async
>
> Sabrina Dubroca <sd@queasysnail.net>
> tls: fix peeking with sync+async decryption
>
> Sabrina Dubroca <sd@queasysnail.net>
> tls: decrement decrypt_pending if no async completion will be called
>
> Lukasz Majewski <lukma@denx.de>
> net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
>
> Oleksij Rempel <o.rempel@pengutronix.de>
> igb: extend PTP timestamp adjustments to i211
>
> Lin Ma <linma@zju.edu.cn>
> rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
>
> Jakub Kicinski <kuba@kernel.org>
> tools: ynl: fix handling of multiple mcast groups
>
> Florian Westphal <fw@strlen.de>
> netfilter: bridge: confirm multicast packets before passing them up the stack
>
> Ignat Korchagin <ignat@cloudflare.com>
> netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
>
> Zijun Hu <quic_zijuhu@quicinc.com>
> Bluetooth: qca: Fix triggering coredump implementation
>
> Janaki Ramaiah Thota <quic_janathot@quicinc.com>
> Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
>
> Zijun Hu <quic_zijuhu@quicinc.com>
> Bluetooth: qca: Fix wrong event type for patch config command
>
> Kai-Heng Feng <kai.heng.feng@canonical.com>
> Bluetooth: Enforce validation on max value of connection interval
>
> Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
>
> Zijun Hu <quic_zijuhu@quicinc.com>
> Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR
>
> Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> Bluetooth: hci_sync: Fix accept_list when attempting to suspend
>
> Ying Hsu <yinghsu@chromium.org>
> Bluetooth: Avoid potential use-after-free in hci_error_reset
>
> Jonas Dreßler <verdre@v0yd.nl>
> Bluetooth: hci_sync: Check the correct flag before starting a scan
>
> Jakub Raczynski <j.raczynski@samsung.com>
> stmmac: Clear variable when destroying workqueue
>
> Justin Iurman <justin.iurman@uliege.be>
> uapi: in6: replace temporary label with rfc9486
>
> Oleksij Rempel <o.rempel@pengutronix.de>
> net: lan78xx: fix "softirq work is pending" error
>
> Javier Carrasco <javier.carrasco.cruz@gmail.com>
> net: usb: dm9601: fix wrong return value in dm9601_mdio_read
>
> Jakub Kicinski <kuba@kernel.org>
> veth: try harder when allocating queue memory
>
> Oleksij Rempel <o.rempel@pengutronix.de>
> lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
>
> Eric Dumazet <edumazet@google.com>
> ipv6: fix potential "struct net" leak in inet6_rtm_getaddr()
>
> Jakub Kicinski <kuba@kernel.org>
> net: veth: clear GRO when clearing XDP even when down
>
> Doug Smythies <dsmythies@telus.net>
> cpufreq: intel_pstate: fix pstate limits enforcement for adjust_perf call back
>
> Yunjian Wang <wangyunjian@huawei.com>
> tun: Fix xdp_rxq_info's queue_index when detaching
>
> Vladimir Oltean <vladimir.oltean@nxp.com>
> net: dpaa: fman_memac: accept phy-interface-type = "10gbase-r" in the device tree
>
> Jeremy Kerr <jk@codeconstruct.com.au>
> net: mctp: take ownership of skb in mctp_local_output
>
> Florian Westphal <fw@strlen.de>
> net: ip_tunnel: prevent perpetual headroom growth
>
> Florian Westphal <fw@strlen.de>
> netlink: add nla be16/32 types to minlen array
>
> Ryosuke Yasuoka <ryasuoka@redhat.com>
> netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter
>
> Théo Lebrun <theo.lebrun@bootlin.com>
> spi: cadence-qspi: remove system-wide suspend helper calls from runtime PM hooks
>
> Théo Lebrun <theo.lebrun@bootlin.com>
> spi: cadence-qspi: fix pointer reference in runtime PM hooks
>
> Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
> ice: fix pin phase adjust updates on PF reset
>
> Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
> ice: fix dpll periodic work data updates on PF reset
>
> Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
> ice: fix dpll and dpll_pin data access on PF reset
>
> Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
> ice: fix dpll input pin phase_adjust value updates
>
> Yochai Hagvi <yochai.hagvi@intel.com>
> ice: fix connection state of DPLL and out pin
>
> Han Xu <han.xu@nxp.com>
> mtd: spinand: gigadevice: Fix the get ecc status issue
>
> Josef Bacik <josef@toxicpanda.com>
> btrfs: fix deadlock with fiemap and extent locking
>
>
> -------------
>
> Diffstat:
>
> Documentation/arch/x86/mds.rst | 34 +++-
> Makefile | 4 +-
> arch/arm64/crypto/aes-neonbs-glue.c | 11 ++
> arch/powerpc/include/asm/rtas.h | 4 +-
> arch/powerpc/kernel/rtas.c | 9 +-
> arch/powerpc/platforms/pseries/iommu.c | 156 +++++++++++------
> arch/riscv/Kconfig | 1 -
> arch/riscv/include/asm/csr.h | 2 +
> arch/riscv/include/asm/ftrace.h | 5 +
> arch/riscv/include/asm/hugetlb.h | 2 +
> arch/riscv/include/asm/pgalloc.h | 20 ++-
> arch/riscv/include/asm/pgtable-64.h | 2 +-
> arch/riscv/include/asm/pgtable.h | 6 +-
> arch/riscv/include/asm/vmalloc.h | 61 +------
> arch/riscv/kernel/Makefile | 2 +
> arch/riscv/kernel/cpufeature.c | 17 +-
> arch/riscv/kernel/return_address.c | 48 +++++
> arch/riscv/mm/hugetlbpage.c | 2 +
> arch/x86/entry/entry_32.S | 3 +
> arch/x86/entry/entry_64.S | 11 ++
> arch/x86/entry/entry_64_compat.S | 1 +
> arch/x86/include/asm/entry-common.h | 1 -
> arch/x86/include/asm/nospec-branch.h | 12 --
> arch/x86/kernel/cpu/bugs.c | 15 +-
> arch/x86/kernel/cpu/common.c | 4 +-
> arch/x86/kernel/cpu/intel.c | 178 ++++++++++---------
> arch/x86/kernel/e820.c | 8 +-
> arch/x86/kernel/nmi.c | 3 -
> arch/x86/kvm/vmx/run_flags.h | 7 +-
> arch/x86/kvm/vmx/vmenter.S | 9 +-
> arch/x86/kvm/vmx/vmx.c | 20 ++-
> drivers/bluetooth/btqca.c | 2 +-
> drivers/bluetooth/hci_bcm4377.c | 3 +-
> drivers/bluetooth/hci_qca.c | 22 ++-
> drivers/cpufreq/intel_pstate.c | 3 +
> drivers/dma/dw-edma/dw-edma-v0-core.c | 17 ++
> drivers/dma/dw-edma/dw-hdma-v0-core.c | 39 +++--
> drivers/dma/dw-edma/dw-hdma-v0-regs.h | 2 +-
> drivers/dma/fsl-edma-common.c | 2 +-
> drivers/dma/fsl-qdma.c | 25 +--
> drivers/dma/idxd/cdev.c | 2 +-
> drivers/dma/idxd/debugfs.c | 2 +-
> drivers/dma/idxd/idxd.h | 1 -
> drivers/dma/idxd/init.c | 15 +-
> drivers/dma/idxd/irq.c | 3 +-
> drivers/dma/ptdma/ptdma-dmaengine.c | 2 -
> drivers/firmware/efi/capsule-loader.c | 2 +-
> drivers/gpio/gpio-74x164.c | 4 +-
> drivers/gpio/gpiolib.c | 12 +-
> .../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 6 +-
> drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c | 5 +
> drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 29 +++
> drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 9 +-
> drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 9 +-
> .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 9 +-
> .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 9 +-
> .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 9 +-
> drivers/gpu/drm/drm_buddy.c | 10 ++
> drivers/gpu/drm/nouveau/nouveau_drm.c | 5 +-
> drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c | 4 +-
> drivers/gpu/drm/tegra/drm.c | 23 ++-
> drivers/gpu/host1x/dev.c | 15 +-
> drivers/gpu/host1x/dev.h | 6 +
> drivers/iommu/iommufd/io_pagetable.c | 9 +-
> drivers/iommu/iommufd/selftest.c | 27 ++-
> drivers/mfd/twl6030-irq.c | 10 +-
> drivers/mmc/core/mmc.c | 2 +
> drivers/mmc/host/mmci_stm32_sdmmc.c | 24 +++
> drivers/mmc/host/sdhci-xenon-phy.c | 48 ++++-
> drivers/mtd/nand/raw/marvell_nand.c | 13 +-
> drivers/mtd/nand/spi/gigadevice.c | 6 +-
> drivers/net/ethernet/freescale/fman/fman_memac.c | 18 +-
> drivers/net/ethernet/intel/ice/ice_dpll.c | 91 ++++++++--
> drivers/net/ethernet/intel/igb/igb_ptp.c | 5 +-
> drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +-
> drivers/net/gtp.c | 12 +-
> drivers/net/tun.c | 1 +
> drivers/net/usb/dm9601.c | 2 +-
> drivers/net/usb/lan78xx.c | 5 +-
> drivers/net/veth.c | 40 ++---
> drivers/of/property.c | 2 +-
> drivers/perf/riscv_pmu.c | 18 +-
> drivers/perf/riscv_pmu_legacy.c | 10 +-
> drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c | 2 +-
> drivers/phy/qualcomm/phy-qcom-m31.c | 2 +-
> drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 10 +-
> drivers/pmdomain/arm/scmi_perf_domain.c | 3 +
> drivers/pmdomain/qcom/rpmhpd.c | 7 +-
> drivers/power/supply/Kconfig | 1 +
> drivers/power/supply/bq27xxx_battery_i2c.c | 4 +-
> drivers/soc/qcom/pmic_glink.c | 21 +--
> drivers/spi/spi-cadence-quadspi.c | 11 +-
> drivers/video/fbdev/core/fbcon.c | 8 +-
> fs/afs/dir.c | 4 +-
> fs/btrfs/dev-replace.c | 24 ++-
> fs/btrfs/disk-io.c | 22 +--
> fs/btrfs/disk-io.h | 2 +-
> fs/btrfs/extent_io.c | 165 ++++++++++++++---
> fs/btrfs/ioctl.c | 2 +-
> fs/btrfs/send.c | 17 +-
> fs/btrfs/transaction.c | 2 +-
> fs/ceph/mdsmap.c | 7 +-
> fs/ceph/mdsmap.h | 6 +-
> fs/efivarfs/vars.c | 17 +-
> fs/nfs/write.c | 4 +-
> include/linux/bvec.h | 2 +-
> include/linux/netfilter.h | 1 +
> include/net/mctp.h | 1 +
> include/sound/soc-card.h | 2 +
> include/uapi/linux/in6.h | 2 +-
> kernel/trace/fprobe.c | 14 +-
> lib/nlattr.c | 4 +
> mm/debug_vm_pgtable.c | 8 +
> mm/filemap.c | 51 +++---
> mm/migrate.c | 8 +
> net/bluetooth/hci_core.c | 7 +-
> net/bluetooth/hci_event.c | 13 +-
> net/bluetooth/hci_sync.c | 7 +-
> net/bluetooth/l2cap_core.c | 8 +-
> net/bridge/br_netfilter_hooks.c | 96 ++++++++++
> net/bridge/netfilter/nf_conntrack_bridge.c | 30 ++++
> net/core/rtnetlink.c | 11 +-
> net/hsr/hsr_forward.c | 2 +-
> net/ipv4/ip_tunnel.c | 28 ++-
> net/ipv6/addrconf.c | 7 +-
> net/mctp/route.c | 10 +-
> net/mptcp/diag.c | 3 +
> net/mptcp/options.c | 2 +-
> net/mptcp/pm_userspace.c | 10 ++
> net/mptcp/protocol.c | 52 +++++-
> net/mptcp/protocol.h | 21 +--
> net/netfilter/nf_conntrack_core.c | 1 +
> net/netfilter/nft_compat.c | 20 +++
> net/netlink/af_netlink.c | 2 +-
> net/tls/tls_sw.c | 40 +++--
> net/unix/garbage.c | 21 +--
> net/wireless/nl80211.c | 2 +
> scripts/Kconfig.include | 2 +-
> scripts/Makefile.compiler | 2 +-
> security/landlock/fs.c | 4 +-
> security/tomoyo/common.c | 3 +-
> sound/core/Makefile | 1 -
> sound/core/ump.c | 4 +-
> sound/firewire/amdtp-stream.c | 2 +-
> sound/pci/hda/patch_realtek.c | 33 +++-
> sound/soc/codecs/cs35l45.c | 2 +-
> sound/soc/codecs/cs35l56-shared.c | 8 +-
> sound/soc/codecs/cs35l56.c | 195 ++++++++++++++++++---
> sound/soc/codecs/cs35l56.h | 1 +
> sound/soc/fsl/fsl_xcvr.c | 12 +-
> sound/soc/qcom/lpass-cdc-dma.c | 2 +-
> sound/soc/soc-card.c | 24 ++-
> tools/net/ynl/lib/ynl.c | 1 +
> tools/testing/selftests/net/mptcp/mptcp_connect.sh | 16 +-
> tools/testing/selftests/net/mptcp/mptcp_join.sh | 192 ++++++++++++--------
> tools/testing/selftests/net/mptcp/mptcp_lib.sh | 15 ++
> tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 8 +-
> tools/testing/selftests/net/mptcp/userspace_pm.sh | 86 +++++----
> 158 files changed, 1922 insertions(+), 829 deletions(-)
>
>
>
^ permalink raw reply [relevance 0%]
* + mm-ppc-replace-pxd_is_leaf-with-pxd_leaf.patch added to mm-unstable branch
@ 2024-03-05 17:50 4% Andrew Morton
0 siblings, 0 replies; 200+ results
From: Andrew Morton @ 2024-03-05 17:50 UTC (permalink / raw)
To: mm-commits, vincenzo.frascino, tglx, shy828301, ryabinin.a.a,
npiggin, naveen.n.rao, muchun.song, mpe, mingo, kirill, jgg,
glider, dvyukov, dave.hansen, christophe.leroy, bp, aneesh.kumar,
andreyknvl, peterx, akpm
The patch titled
Subject: mm/powerpc: replace pXd_is_leaf() with pXd_leaf()
has been added to the -mm mm-unstable branch. Its filename is
mm-ppc-replace-pxd_is_leaf-with-pxd_leaf.patch
This patch will shortly appear at
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-ppc-replace-pxd_is_leaf-with-pxd_leaf.patch
This patch will later appear in the mm-unstable branch at
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next via the mm-everything
branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
and is updated there every 2-3 working days
------------------------------------------------------
From: Peter Xu <peterx@redhat.com>
Subject: mm/powerpc: replace pXd_is_leaf() with pXd_leaf()
Date: Tue, 5 Mar 2024 12:37:42 +0800
They're the same macros underneath. Drop pXd_is_leaf(), instead always use
pXd_leaf().
At the meantime, instead of renames, drop the pXd_is_leaf() fallback
definitions directly in arch/powerpc/include/asm/pgtable.h. because
similar fallback macros for pXd_leaf() are already defined in
include/linux/pgtable.h.
Link: https://lkml.kernel.org/r/20240305043750.93762-3-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>
Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>
Cc: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Konovalov <andreyknvl@gmail.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Kirill A. Shutemov <kirill@shutemov.name>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
Cc: Yang Shi <shy828301@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++-----
arch/powerpc/include/asm/pgtable.h | 24 -----------------
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 ++++----
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++-----
arch/powerpc/mm/pgtable.c | 6 ++--
arch/powerpc/mm/pgtable_64.c | 6 ++--
arch/powerpc/xmon/xmon.c | 6 ++--
7 files changed, 26 insertions(+), 52 deletions(-)
--- a/arch/powerpc/include/asm/book3s/64/pgtable.h~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -1439,18 +1439,16 @@ static inline bool is_pte_rw_upgrade(uns
/*
* Like pmd_huge() and pmd_large(), but works regardless of config options
*/
-#define pmd_is_leaf pmd_is_leaf
-#define pmd_leaf pmd_is_leaf
+#define pmd_leaf pmd_leaf
#define pmd_large pmd_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
+static inline bool pmd_leaf(pmd_t pmd)
{
return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
}
-#define pud_is_leaf pud_is_leaf
-#define pud_leaf pud_is_leaf
+#define pud_leaf pud_leaf
#define pud_large pud_leaf
-static inline bool pud_is_leaf(pud_t pud)
+static inline bool pud_leaf(pud_t pud)
{
return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
}
--- a/arch/powerpc/include/asm/pgtable.h~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/include/asm/pgtable.h
@@ -182,30 +182,6 @@ static inline void pte_frag_set(mm_conte
}
#endif
-#ifndef pmd_is_leaf
-#define pmd_is_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
-{
- return false;
-}
-#endif
-
-#ifndef pud_is_leaf
-#define pud_is_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
-{
- return false;
-}
-#endif
-
-#ifndef p4d_is_leaf
-#define p4d_is_leaf p4d_is_leaf
-static inline bool p4d_is_leaf(p4d_t p4d)
-{
- return false;
-}
-#endif
-
#define pmd_pgtable pmd_pgtable
static inline pgtable_t pmd_pgtable(pmd_t pmd)
{
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, p
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, p
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, p
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -204,14 +204,14 @@ static void radix__change_memory_range(u
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(p
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (IS_ALIGNED(addr, PMD_SIZE) &&
IS_ALIGNED(next, PMD_SIZE)) {
if (!direct)
@@ -807,7 +807,7 @@ static void __meminit remove_pud_table(p
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, un
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1554,7 +1554,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1601,7 +1601,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
--- a/arch/powerpc/mm/pgtable_64.c~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
--- a/arch/powerpc/mm/pgtable.c~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/mm/pgtable.c
@@ -410,7 +410,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, un
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -432,7 +432,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, un
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -471,7 +471,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, un
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
--- a/arch/powerpc/xmon/xmon.c~mm-ppc-replace-pxd_is_leaf-with-pxd_leaf
+++ a/arch/powerpc/xmon/xmon.c
@@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
_
Patches currently in -mm which might be from peterx@redhat.com are
mm-ppc-define-pxd_large-with-pxd_leaf.patch
mm-ppc-replace-pxd_is_leaf-with-pxd_leaf.patch
mm-x86-replace-p4d_large-with-p4d_leaf.patch
mm-x86-replace-pgd_large-with-pgd_leaf.patch
mm-x86-drop-two-unnecessary-pud_leaf-definitions.patch
mm-kasan-use-pxd_leaf-in-shadow_mapped.patch
mm-treewide-replace-pmd_large-with-pmd_leaf.patch
mm-treewide-replace-pud_large-with-pud_leaf.patch
mm-treewide-drop-pxd_large.patch
mm-treewide-align-up-pxd_leaf-retval-across-archs.patch
^ permalink raw reply [relevance 4%]
* Re: [PATCH v3 02/10] mm/ppc: Replace pXd_is_leaf() with pXd_leaf()
2024-03-05 4:37 5% ` peterx
@ 2024-03-05 17:31 0% ` Christophe Leroy
-1 siblings, 0 replies; 200+ results
From: Christophe Leroy @ 2024-03-05 17:31 UTC (permalink / raw)
To: peterx, linux-mm, linux-kernel
Cc: Muchun Song, Yang Shi, x86, Nicholas Piggin, Aneesh Kumar K.V,
Jason Gunthorpe, Naveen N. Rao, Kirill A . Shutemov,
Andrew Morton, linuxppc-dev
Le 05/03/2024 à 05:37, peterx@redhat.com a écrit :
> From: Peter Xu <peterx@redhat.com>
>
> They're the same macros underneath. Drop pXd_is_leaf(), instead always use
> pXd_leaf().
>
> At the meantime, instead of renames, drop the pXd_is_leaf() fallback
> definitions directly in arch/powerpc/include/asm/pgtable.h. because similar
> fallback macros for pXd_leaf() are already defined in
> include/linux/pgtable.h.
>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Nicholas Piggin <npiggin@gmail.com>
> Cc: "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>
> Cc: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
> Cc: linuxppc-dev@lists.ozlabs.org
> Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
> Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
In case you post a new version, in the subject, usually with use powerpc
not ppc
> ---
> arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
> arch/powerpc/include/asm/pgtable.h | 24 --------------------
> arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
> arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
> arch/powerpc/mm/pgtable.c | 6 ++---
> arch/powerpc/mm/pgtable_64.c | 6 ++---
> arch/powerpc/xmon/xmon.c | 6 ++---
> 7 files changed, 26 insertions(+), 52 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
> index d1318e8582ac..3e99e409774a 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
> @@ -1439,18 +1439,16 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
> /*
> * Like pmd_huge() and pmd_large(), but works regardless of config options
> */
> -#define pmd_is_leaf pmd_is_leaf
> -#define pmd_leaf pmd_is_leaf
> +#define pmd_leaf pmd_leaf
> #define pmd_large pmd_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> +static inline bool pmd_leaf(pmd_t pmd)
> {
> return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
> }
>
> -#define pud_is_leaf pud_is_leaf
> -#define pud_leaf pud_is_leaf
> +#define pud_leaf pud_leaf
> #define pud_large pud_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> +static inline bool pud_leaf(pud_t pud)
> {
> return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
> }
> diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
> index 5928b3c1458d..e6edf1cdbc5b 100644
> --- a/arch/powerpc/include/asm/pgtable.h
> +++ b/arch/powerpc/include/asm/pgtable.h
> @@ -182,30 +182,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
> }
> #endif
>
> -#ifndef pmd_is_leaf
> -#define pmd_is_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef pud_is_leaf
> -#define pud_is_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef p4d_is_leaf
> -#define p4d_is_leaf p4d_is_leaf
> -static inline bool p4d_is_leaf(p4d_t p4d)
> -{
> - return false;
> -}
> -#endif
> -
> #define pmd_pgtable pmd_pgtable
> static inline pgtable_t pmd_pgtable(pmd_t pmd)
> {
> diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> index 4a1abb9f7c05..408d98f8a514 100644
> --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
> +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> @@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
> for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
> if (!pmd_present(*p))
> continue;
> - if (pmd_is_leaf(*p)) {
> + if (pmd_leaf(*p)) {
> if (full) {
> pmd_clear(p);
> } else {
> @@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
> for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
> if (!pud_present(*p))
> continue;
> - if (pud_is_leaf(*p)) {
> + if (pud_leaf(*p)) {
> pud_clear(p);
> } else {
> pmd_t *pmd;
> @@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = pud_alloc_one(kvm->mm, gpa);
>
> pmd = NULL;
> - if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
> + if (pud && pud_present(*pud) && !pud_leaf(*pud))
> pmd = pmd_offset(pud, gpa);
> else if (level <= 1)
> new_pmd = kvmppc_pmd_alloc();
>
> - if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
> + if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
> new_ptep = kvmppc_pte_alloc();
>
> /* Check if we might have been invalidated; let the guest retry if so */
> @@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = NULL;
> }
> pud = pud_offset(p4d, gpa);
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> unsigned long hgpa = gpa & PUD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> @@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pmd = NULL;
> }
> pmd = pmd_offset(pud, gpa);
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> unsigned long lgpa = gpa & PMD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> index c6a4ac766b2b..1f8db10693e3 100644
> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> @@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
> pudp = pud_alloc(&init_mm, p4dp, idx);
> if (!pudp)
> continue;
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> ptep = (pte_t *)pudp;
> goto update_the_pte;
> }
> pmdp = pmd_alloc(&init_mm, pudp, idx);
> if (!pmdp)
> continue;
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> ptep = pmdp_ptep(pmdp);
> goto update_the_pte;
> }
> @@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
> if (!pmd_present(*pmd))
> continue;
>
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> if (IS_ALIGNED(addr, PMD_SIZE) &&
> IS_ALIGNED(next, PMD_SIZE)) {
> if (!direct)
> @@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
> if (!pud_present(*pud))
> continue;
>
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> if (!IS_ALIGNED(addr, PUD_SIZE) ||
> !IS_ALIGNED(next, PUD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
> if (!p4d_present(*p4d))
> continue;
>
> - if (p4d_is_leaf(*p4d)) {
> + if (p4d_leaf(*p4d)) {
> if (!IS_ALIGNED(addr, P4D_SIZE) ||
> !IS_ALIGNED(next, P4D_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -1554,7 +1554,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>
> int pud_clear_huge(pud_t *pud)
> {
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> pud_clear(pud);
> return 1;
> }
> @@ -1601,7 +1601,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>
> int pmd_clear_huge(pmd_t *pmd)
> {
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> pmd_clear(pmd);
> return 1;
> }
> diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
> index 549a440ed7f6..9e7ba9c3851f 100644
> --- a/arch/powerpc/mm/pgtable.c
> +++ b/arch/powerpc/mm/pgtable.c
> @@ -410,7 +410,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (p4d_none(p4d))
> return NULL;
>
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> ret_pte = (pte_t *)p4dp;
> goto out;
> }
> @@ -432,7 +432,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (pud_none(pud))
> return NULL;
>
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> ret_pte = (pte_t *)pudp;
> goto out;
> }
> @@ -471,7 +471,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> goto out;
> }
>
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> ret_pte = (pte_t *)pmdp;
> goto out;
> }
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index 1b366526f4f2..386c6b06eab7 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
> /* 4 level page table */
> struct page *p4d_page(p4d_t p4d)
> {
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!p4d_huge(p4d));
> return pte_page(p4d_pte(p4d));
> @@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
>
> struct page *pud_page(pud_t pud)
> {
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!pud_huge(pud));
> return pte_page(pud_pte(pud));
> @@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
> */
> struct page *pmd_page(pmd_t pmd)
> {
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> /*
> * vmalloc_to_page may be called on any vmap address (not only
> * vmalloc), and it uses pmd_page() etc., when huge vmap is
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index b3b94cd37713..9669c9925225 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (p4d_is_leaf(*p4dp)) {
> + if (p4d_leaf(*p4dp)) {
> format_pte(p4dp, p4d_val(*p4dp));
> return;
> }
> @@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> format_pte(pudp, pud_val(*pudp));
> return;
> }
> @@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> format_pte(pmdp, pmd_val(*pmdp));
> return;
> }
^ permalink raw reply [relevance 0%]
* Re: [PATCH v3 02/10] mm/ppc: Replace pXd_is_leaf() with pXd_leaf()
@ 2024-03-05 17:31 0% ` Christophe Leroy
0 siblings, 0 replies; 200+ results
From: Christophe Leroy @ 2024-03-05 17:31 UTC (permalink / raw)
To: peterx, linux-mm, linux-kernel
Cc: x86, Kirill A . Shutemov, Jason Gunthorpe, Yang Shi,
Andrew Morton, linuxppc-dev, Muchun Song, Michael Ellerman,
Nicholas Piggin, Aneesh Kumar K.V, Naveen N. Rao
Le 05/03/2024 à 05:37, peterx@redhat.com a écrit :
> From: Peter Xu <peterx@redhat.com>
>
> They're the same macros underneath. Drop pXd_is_leaf(), instead always use
> pXd_leaf().
>
> At the meantime, instead of renames, drop the pXd_is_leaf() fallback
> definitions directly in arch/powerpc/include/asm/pgtable.h. because similar
> fallback macros for pXd_leaf() are already defined in
> include/linux/pgtable.h.
>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Nicholas Piggin <npiggin@gmail.com>
> Cc: "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>
> Cc: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
> Cc: linuxppc-dev@lists.ozlabs.org
> Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
> Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
In case you post a new version, in the subject, usually with use powerpc
not ppc
> ---
> arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
> arch/powerpc/include/asm/pgtable.h | 24 --------------------
> arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
> arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
> arch/powerpc/mm/pgtable.c | 6 ++---
> arch/powerpc/mm/pgtable_64.c | 6 ++---
> arch/powerpc/xmon/xmon.c | 6 ++---
> 7 files changed, 26 insertions(+), 52 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
> index d1318e8582ac..3e99e409774a 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
> @@ -1439,18 +1439,16 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
> /*
> * Like pmd_huge() and pmd_large(), but works regardless of config options
> */
> -#define pmd_is_leaf pmd_is_leaf
> -#define pmd_leaf pmd_is_leaf
> +#define pmd_leaf pmd_leaf
> #define pmd_large pmd_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> +static inline bool pmd_leaf(pmd_t pmd)
> {
> return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
> }
>
> -#define pud_is_leaf pud_is_leaf
> -#define pud_leaf pud_is_leaf
> +#define pud_leaf pud_leaf
> #define pud_large pud_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> +static inline bool pud_leaf(pud_t pud)
> {
> return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
> }
> diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
> index 5928b3c1458d..e6edf1cdbc5b 100644
> --- a/arch/powerpc/include/asm/pgtable.h
> +++ b/arch/powerpc/include/asm/pgtable.h
> @@ -182,30 +182,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
> }
> #endif
>
> -#ifndef pmd_is_leaf
> -#define pmd_is_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef pud_is_leaf
> -#define pud_is_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> -{
> - return false;
> -}
> -#endif
> -
> -#ifndef p4d_is_leaf
> -#define p4d_is_leaf p4d_is_leaf
> -static inline bool p4d_is_leaf(p4d_t p4d)
> -{
> - return false;
> -}
> -#endif
> -
> #define pmd_pgtable pmd_pgtable
> static inline pgtable_t pmd_pgtable(pmd_t pmd)
> {
> diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> index 4a1abb9f7c05..408d98f8a514 100644
> --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
> +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> @@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
> for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
> if (!pmd_present(*p))
> continue;
> - if (pmd_is_leaf(*p)) {
> + if (pmd_leaf(*p)) {
> if (full) {
> pmd_clear(p);
> } else {
> @@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
> for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
> if (!pud_present(*p))
> continue;
> - if (pud_is_leaf(*p)) {
> + if (pud_leaf(*p)) {
> pud_clear(p);
> } else {
> pmd_t *pmd;
> @@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = pud_alloc_one(kvm->mm, gpa);
>
> pmd = NULL;
> - if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
> + if (pud && pud_present(*pud) && !pud_leaf(*pud))
> pmd = pmd_offset(pud, gpa);
> else if (level <= 1)
> new_pmd = kvmppc_pmd_alloc();
>
> - if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
> + if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
> new_ptep = kvmppc_pte_alloc();
>
> /* Check if we might have been invalidated; let the guest retry if so */
> @@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = NULL;
> }
> pud = pud_offset(p4d, gpa);
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> unsigned long hgpa = gpa & PUD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> @@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pmd = NULL;
> }
> pmd = pmd_offset(pud, gpa);
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> unsigned long lgpa = gpa & PMD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> index c6a4ac766b2b..1f8db10693e3 100644
> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> @@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
> pudp = pud_alloc(&init_mm, p4dp, idx);
> if (!pudp)
> continue;
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> ptep = (pte_t *)pudp;
> goto update_the_pte;
> }
> pmdp = pmd_alloc(&init_mm, pudp, idx);
> if (!pmdp)
> continue;
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> ptep = pmdp_ptep(pmdp);
> goto update_the_pte;
> }
> @@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
> if (!pmd_present(*pmd))
> continue;
>
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> if (IS_ALIGNED(addr, PMD_SIZE) &&
> IS_ALIGNED(next, PMD_SIZE)) {
> if (!direct)
> @@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
> if (!pud_present(*pud))
> continue;
>
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> if (!IS_ALIGNED(addr, PUD_SIZE) ||
> !IS_ALIGNED(next, PUD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
> if (!p4d_present(*p4d))
> continue;
>
> - if (p4d_is_leaf(*p4d)) {
> + if (p4d_leaf(*p4d)) {
> if (!IS_ALIGNED(addr, P4D_SIZE) ||
> !IS_ALIGNED(next, P4D_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -1554,7 +1554,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>
> int pud_clear_huge(pud_t *pud)
> {
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> pud_clear(pud);
> return 1;
> }
> @@ -1601,7 +1601,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>
> int pmd_clear_huge(pmd_t *pmd)
> {
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> pmd_clear(pmd);
> return 1;
> }
> diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
> index 549a440ed7f6..9e7ba9c3851f 100644
> --- a/arch/powerpc/mm/pgtable.c
> +++ b/arch/powerpc/mm/pgtable.c
> @@ -410,7 +410,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (p4d_none(p4d))
> return NULL;
>
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> ret_pte = (pte_t *)p4dp;
> goto out;
> }
> @@ -432,7 +432,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (pud_none(pud))
> return NULL;
>
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> ret_pte = (pte_t *)pudp;
> goto out;
> }
> @@ -471,7 +471,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> goto out;
> }
>
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> ret_pte = (pte_t *)pmdp;
> goto out;
> }
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index 1b366526f4f2..386c6b06eab7 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
> /* 4 level page table */
> struct page *p4d_page(p4d_t p4d)
> {
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!p4d_huge(p4d));
> return pte_page(p4d_pte(p4d));
> @@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
>
> struct page *pud_page(pud_t pud)
> {
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!pud_huge(pud));
> return pte_page(pud_pte(pud));
> @@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
> */
> struct page *pmd_page(pmd_t pmd)
> {
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> /*
> * vmalloc_to_page may be called on any vmap address (not only
> * vmalloc), and it uses pmd_page() etc., when huge vmap is
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index b3b94cd37713..9669c9925225 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (p4d_is_leaf(*p4dp)) {
> + if (p4d_leaf(*p4dp)) {
> format_pte(p4dp, p4d_val(*p4dp));
> return;
> }
> @@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> format_pte(pudp, pud_val(*pudp));
> return;
> }
> @@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> format_pte(pmdp, pmd_val(*pmdp));
> return;
> }
^ permalink raw reply [relevance 0%]
* Re: [PATCH 6.7 000/161] 6.7.9-rc3 review
2024-03-05 11:28 1% [PATCH 6.7 000/161] 6.7.9-rc3 review Greg Kroah-Hartman
@ 2024-03-05 12:30 0% ` Luna Jernberg
2024-03-05 20:31 0% ` Ricardo B. Marliere
1 sibling, 0 replies; 200+ results
From: Luna Jernberg @ 2024-03-05 12:30 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: stable, patches, linux-kernel, torvalds, akpm, linux, shuah,
patches, lkft-triage, pavel, jonathanh, f.fainelli,
sudipm.mukherjee, srw, rwarsow, conor, allen.lkml
Den tis 5 mars 2024 kl 12:31 skrev Greg Kroah-Hartman
<gregkh@linuxfoundation.org>:
>
> This is the start of the stable review cycle for the 6.7.9 release.
> There are 161 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Thu, 07 Mar 2024 11:27:43 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.7.9-rc3.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.7.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
>
> -------------
> Pseudo-Shortlog of commits:
>
> Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Linux 6.7.9-rc3
>
> Danilo Krummrich <dakr@redhat.com>
> drm/nouveau: don't fini scheduler before entity flush
>
> Geliang Tang <tanggeliang@kylinos.cn>
> selftests: mptcp: rm subflow with v4/v4mapped addr
>
> Geliang Tang <geliang.tang@linux.dev>
> selftests: mptcp: add mptcp_lib_is_v6
>
> Geliang Tang <geliang.tang@linux.dev>
> selftests: mptcp: update userspace pm test helpers
>
> Geliang Tang <geliang.tang@linux.dev>
> selftests: mptcp: add chk_subflows_total helper
>
> Geliang Tang <geliang.tang@linux.dev>
> selftests: mptcp: add evts_get_info helper
>
> Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> KVM/VMX: Move VERW closer to VMentry for MDS mitigation
>
> Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH
>
> Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> x86/bugs: Use ALTERNATIVE() instead of mds_user_clear static key
>
> Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> x86/entry_32: Add VERW just before userspace transition
>
> Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
> x86/entry_64: Add VERW just before userspace transition
>
> Ming Lei <ming.lei@redhat.com>
> block: define bvec_iter as __packed __aligned(4)
>
> Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> gpio: fix resource unwinding order in error path
>
> Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> gpiolib: Fix the error path order in gpiochip_add_data_with_key()
>
> Arturas Moskvinas <arturas.moskvinas@gmail.com>
> gpio: 74x164: Enable output pins after registers are reset
>
> Nathan Lynch <nathanl@linux.ibm.com>
> powerpc/rtas: use correct function name for resetting TCE tables
>
> Gaurav Batra <gbatra@linux.vnet.ibm.com>
> powerpc/pseries/iommu: IOMMU table is not initialized for kdump over SR-IOV
>
> Fenghua Yu <fenghua.yu@intel.com>
> dmaengine: idxd: Ensure safe user copy of completion record
>
> Fenghua Yu <fenghua.yu@intel.com>
> dmaengine: idxd: Remove shadow Event Log head stored in idxd
>
> Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> phy: qcom-qmp-usb: fix v3 offsets data
>
> Yang Yingliang <yangyingliang@huawei.com>
> phy: qcom: phy-qcom-m31: fix wrong pointer pass to PTR_ERR()
>
> Alexander Stein <alexander.stein@ew.tq-group.com>
> phy: freescale: phy-fsl-imx8-mipi-dphy: Fix alias name to use dashes
>
> Kory Maincent <kory.maincent@bootlin.com>
> dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup
>
> Kory Maincent <kory.maincent@bootlin.com>
> dmaengine: dw-edma: HDMA: Add sync read before starting the DMA transfer in remote setup
>
> Kory Maincent <kory.maincent@bootlin.com>
> dmaengine: dw-edma: Add HDMA remote interrupt configuration
>
> Kory Maincent <kory.maincent@bootlin.com>
> dmaengine: dw-edma: HDMA_V0_REMOTEL_STOP_INT_EN typo fix
>
> Kory Maincent <kory.maincent@bootlin.com>
> dmaengine: dw-edma: Fix wrong interrupt bit set for HDMA
>
> Kory Maincent <kory.maincent@bootlin.com>
> dmaengine: dw-edma: Fix the ch_count hdma callback
>
> Dan Carpenter <dan.carpenter@linaro.org>
> ASoC: cs35l56: fix reversed if statement in cs35l56_dspwait_asp1tx_put()
>
> Kuniyuki Iwashima <kuniyu@amazon.com>
> af_unix: Drop oob_skb ref before purging queue in GC.
>
> Kuniyuki Iwashima <kuniyu@amazon.com>
> af_unix: Fix task hung while purging oob_skb in GC.
>
> NeilBrown <neilb@suse.de>
> NFS: Fix data corruption caused by congestion.
>
> Peter Ujfalusi <peter.ujfalusi@gmail.com>
> mfd: twl6030-irq: Revert to use of_match_device()
>
> Paolo Abeni <pabeni@redhat.com>
> mptcp: fix possible deadlock in subflow diag
>
> Davide Caratti <dcaratti@redhat.com>
> mptcp: fix double-free on socket dismantle
>
> Paolo Abeni <pabeni@redhat.com>
> mptcp: fix potential wake-up event loss
>
> Paolo Abeni <pabeni@redhat.com>
> mptcp: fix snd_wnd initialization for passive socket
>
> Geliang Tang <tanggeliang@kylinos.cn>
> selftests: mptcp: join: add ss mptcp support check
>
> Paolo Abeni <pabeni@redhat.com>
> mptcp: push at DSS boundaries
>
> Matthieu Baerts (NGI0) <matttbe@kernel.org>
> mptcp: avoid printing warning once on client side
>
> Geliang Tang <tanggeliang@kylinos.cn>
> mptcp: map v4 address to v6 when destroying subflow
>
> Paolo Bonzini <pbonzini@redhat.com>
> x86/cpu/intel: Detect TME keyid bits before setting MTRR mask registers
>
> Paolo Bonzini <pbonzini@redhat.com>
> x86/cpu: Allow reducing x86_phys_bits during early_identify_cpu()
>
> Jiri Bohac <jbohac@suse.cz>
> x86/e820: Don't reserve SETUP_RNG_SEED in e820
>
> Byungchul Park <byungchul@sk.com>
> mm/vmscan: fix a bug calling wakeup_kswapd() with a wrong zone index
>
> Aneesh Kumar K.V (IBM) <aneesh.kumar@kernel.org>
> mm/debug_vm_pgtable: fix BUG_ON with pud advanced test
>
> Masami Hiramatsu (Google) <mhiramat@kernel.org>
> fprobe: Fix to allocate entry_data_size buffer with rethook instances
>
> Bjorn Andersson <quic_bjorande@quicinc.com>
> pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation
>
> Cristian Marussi <cristian.marussi@arm.com>
> pmdomain: arm: Fix NULL dereference on scmi_perf_domain removal
>
> Tim Schumacher <timschumi@gmx.de>
> efivarfs: Request at most 512 bytes for variable names
>
> Nicolin Chen <nicolinc@nvidia.com>
> iommufd: Fix protection fault in iommufd_test_syz_conv_iova
>
> Nicolin Chen <nicolinc@nvidia.com>
> iommufd: Fix iopt_access_list_id overwrite bug
>
> Nathan Chancellor <nathan@kernel.org>
> kbuild: Add -Wa,--fatal-warnings to as-instr invocation
>
> Thomas Weißschuh <linux@weissschuh.net>
> power: supply: mm8013: select REGMAP_I2C
>
> Samuel Holland <samuel.holland@sifive.com>
> riscv: Fix enabling cbo.zero when running in M-mode
>
> Zong Li <zong.li@sifive.com>
> riscv: add CALLER_ADDRx support
>
> Nathan Chancellor <nathan@kernel.org>
> RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
>
> Xiubo Li <xiubli@redhat.com>
> ceph: switch to corrected encoding of max_xattr_size in mdsmap
>
> Elad Nachman <enachman@marvell.com>
> mmc: sdhci-xenon: fix PHY init clock stability
>
> Elad Nachman <enachman@marvell.com>
> mmc: sdhci-xenon: add timeout for PHY init complete
>
> Ivan Semenov <ivan@semenov.dev>
> mmc: core: Fix eMMC initialization with 1-bit bus connection
>
> Christophe Kerello <christophe.kerello@foss.st.com>
> mmc: mmci: stm32: fix DMA API overlapping mappings warning
>
> Curtis Klein <curtis.klein@hpe.com>
> dmaengine: fsl-qdma: init irq after reg initialization
>
> Joy Zou <joy.zou@nxp.com>
> dmaengine: fsl-edma: correct calculation of 'nbytes' in multi-fifo scenario
>
> Tadeusz Struk <tstruk@gigaio.com>
> dmaengine: ptdma: use consistent DMA masks
>
> Ard Biesheuvel <ardb@kernel.org>
> crypto: arm64/neonbs - fix out-of-bounds access on short input
>
> Peng Ma <peng.ma@nxp.com>
> dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
>
> Rob Clark <robdclark@chromium.org>
> soc: qcom: pmic_glink: Fix boot when QRTR=m
>
> Ryan Lin <tsung-hua.lin@amd.com>
> drm/amd/display: Add monitor patch for specific eDP
>
> Ma Jun <Jun.Ma2@amd.com>
> drm/amdgpu/pm: Fix the power1_min_cap value
>
> Matthew Auld <matthew.auld@intel.com>
> drm/buddy: fix range bias
>
> Alex Deucher <alexander.deucher@amd.com>
> Revert "drm/amd/pm: resolve reboot exception for si oland"
>
> Filipe Manana <fdmanana@suse.com>
> btrfs: send: don't issue unnecessary zero writes for trailing hole
>
> David Sterba <dsterba@suse.com>
> btrfs: dev-replace: properly validate device names
>
> Filipe Manana <fdmanana@suse.com>
> btrfs: fix double free of anonymous device after snapshot creation failure
>
> Johannes Berg <johannes.berg@intel.com>
> wifi: nl80211: reject iftype change with mesh ID change
>
> Elad Nachman <enachman@marvell.com>
> mtd: rawnand: marvell: fix layouts
>
> Nhat Pham <nphamcs@gmail.com>
> mm: cachestat: fix folio read-after-free in cache walk
>
> Alexander Ofitserov <oficerovas@altlinux.org>
> gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
>
> Mickaël Salaün <mic@digikod.net>
> landlock: Fix asymmetric private inodes referring
>
> Johan Hovold <johan+linaro@kernel.org>
> Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid
>
> Willian Wang <git@willian.wang>
> ALSA: hda/realtek: Add special fixup for Lenovo 14IRP8
>
> Eniac Zhang <eniac-xw.zhang@hp.com>
> ALSA: hda/realtek: fix mute/micmute LED For HP mt440
>
> Hans Peter <flurry123@gmx.ch>
> ALSA: hda/realtek: Enable Mute LED on HP 840 G8 (MB 8AB8)
>
> Gergo Koteles <soyer@irl.hu>
> ALSA: hda/realtek: tas2781: enable subwoofer volume control
>
> Jay Ajit Mate <jay.mate15@gmail.com>
> ALSA: hda/realtek: Fix top speaker connection on Dell Inspiron 16 Plus 7630
>
> Takashi Iwai <tiwai@suse.de>
> ALSA: ump: Fix the discard error code from snd_ump_legacy_open()
>
> Takashi Sakamoto <o-takashi@sakamocchi.jp>
> ALSA: firewire-lib: fix to check cycle continuity
>
> Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
> tomoyo: fix UAF write bug in tomoyo_write_control()
>
> Saravana Kannan <saravanak@google.com>
> of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing
>
> Sid Pranjale <sidpranjale127@protonmail.com>
> drm/nouveau: keep DMA buffers required for suspend/resume
>
> Filipe Manana <fdmanana@suse.com>
> btrfs: fix race between ordered extent completion and fiemap
>
> Dimitris Vlachos <dvlachos@ics.forth.gr>
> riscv: Sparse-Memory/vmemmap out-of-bounds fix
>
> Alexandre Ghiti <alexghiti@rivosinc.com>
> riscv: Fix pte_leaf_size() for NAPOT
>
> Alexandre Ghiti <alexghiti@rivosinc.com>
> Revert "riscv: mm: support Svnapot in huge vmap"
>
> Vadim Shakirov <vadim.shakirov@syntacore.com>
> drivers: perf: ctr_get_width function for legacy is not defined
>
> Vadim Shakirov <vadim.shakirov@syntacore.com>
> drivers: perf: added capabilities for legacy PMU
>
> Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
> drm/amd/display: Prevent potential buffer overflow in map_hw_resources
>
> David Howells <dhowells@redhat.com>
> afs: Fix endless loop in directory parsing
>
> Jiri Slaby (SUSE) <jirislaby@kernel.org>
> fbcon: always restore the old font data in fbcon_do_set_font()
>
> Thierry Reding <treding@nvidia.com>
> drm/tegra: Remove existing framebuffer only if we support display
>
> Conor Dooley <conor@kernel.org>
> RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: soc-card: Fix missing locking in snd_soc_card_get_kcontrol()
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: Fix deadlock in ASP1 mixer register initialization
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: Fix misuse of wm_adsp 'part' string for silicon revision
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: Fix for initializing ASP1 mixer registers
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: Don't add the same register patch multiple times
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: cs35l56_component_remove() must clean up wm_adsp
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: cs35l56_component_remove() must clear cs35l56->component
>
> Alexandre Ghiti <alexghiti@rivosinc.com>
> riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
>
> Yangyu Chen <cyy@cyyself.name>
> riscv: mm: fix NOCACHE_THEAD does not set bit[61] correctly
>
> Mikko Perttunen <mperttunen@nvidia.com>
> gpu: host1x: Skip reset assert on Tegra186
>
> Colin Ian King <colin.i.king@gmail.com>
> ASoC: qcom: Fix uninitialized pointer dmactl
>
> Takashi Iwai <tiwai@suse.de>
> ALSA: Drop leftover snd-rtctimer stuff from Makefile
>
> Richard Fitzgerald <rf@opensource.cirrus.com>
> ASoC: cs35l56: Must clear HALO_STATE before issuing SYSTEM_RESET
>
> Hans de Goede <hdegoede@redhat.com>
> power: supply: bq27xxx-i2c: Do not free non existing IRQ
>
> Arnd Bergmann <arnd@arndb.de>
> efi/capsule-loader: fix incorrect allocation size
>
> Jisheng Zhang <jszhang@kernel.org>
> riscv: tlb: fix __p*d_free_tlb()
>
> Sabrina Dubroca <sd@queasysnail.net>
> tls: fix use-after-free on failed backlog decryption
>
> Sabrina Dubroca <sd@queasysnail.net>
> tls: separate no-async decryption request handling from async
>
> Sabrina Dubroca <sd@queasysnail.net>
> tls: fix peeking with sync+async decryption
>
> Sabrina Dubroca <sd@queasysnail.net>
> tls: decrement decrypt_pending if no async completion will be called
>
> Lukasz Majewski <lukma@denx.de>
> net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
>
> Oleksij Rempel <o.rempel@pengutronix.de>
> igb: extend PTP timestamp adjustments to i211
>
> Lin Ma <linma@zju.edu.cn>
> rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
>
> Jakub Kicinski <kuba@kernel.org>
> tools: ynl: fix handling of multiple mcast groups
>
> Florian Westphal <fw@strlen.de>
> netfilter: bridge: confirm multicast packets before passing them up the stack
>
> Ignat Korchagin <ignat@cloudflare.com>
> netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
>
> Zijun Hu <quic_zijuhu@quicinc.com>
> Bluetooth: qca: Fix triggering coredump implementation
>
> Janaki Ramaiah Thota <quic_janathot@quicinc.com>
> Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
>
> Zijun Hu <quic_zijuhu@quicinc.com>
> Bluetooth: qca: Fix wrong event type for patch config command
>
> Kai-Heng Feng <kai.heng.feng@canonical.com>
> Bluetooth: Enforce validation on max value of connection interval
>
> Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
>
> Zijun Hu <quic_zijuhu@quicinc.com>
> Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR
>
> Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> Bluetooth: hci_sync: Fix accept_list when attempting to suspend
>
> Ying Hsu <yinghsu@chromium.org>
> Bluetooth: Avoid potential use-after-free in hci_error_reset
>
> Jonas Dreßler <verdre@v0yd.nl>
> Bluetooth: hci_sync: Check the correct flag before starting a scan
>
> Jakub Raczynski <j.raczynski@samsung.com>
> stmmac: Clear variable when destroying workqueue
>
> Justin Iurman <justin.iurman@uliege.be>
> uapi: in6: replace temporary label with rfc9486
>
> Oleksij Rempel <o.rempel@pengutronix.de>
> net: lan78xx: fix "softirq work is pending" error
>
> Javier Carrasco <javier.carrasco.cruz@gmail.com>
> net: usb: dm9601: fix wrong return value in dm9601_mdio_read
>
> Jakub Kicinski <kuba@kernel.org>
> veth: try harder when allocating queue memory
>
> Oleksij Rempel <o.rempel@pengutronix.de>
> lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
>
> Eric Dumazet <edumazet@google.com>
> ipv6: fix potential "struct net" leak in inet6_rtm_getaddr()
>
> Jakub Kicinski <kuba@kernel.org>
> net: veth: clear GRO when clearing XDP even when down
>
> Doug Smythies <dsmythies@telus.net>
> cpufreq: intel_pstate: fix pstate limits enforcement for adjust_perf call back
>
> Yunjian Wang <wangyunjian@huawei.com>
> tun: Fix xdp_rxq_info's queue_index when detaching
>
> Vladimir Oltean <vladimir.oltean@nxp.com>
> net: dpaa: fman_memac: accept phy-interface-type = "10gbase-r" in the device tree
>
> Jeremy Kerr <jk@codeconstruct.com.au>
> net: mctp: take ownership of skb in mctp_local_output
>
> Florian Westphal <fw@strlen.de>
> net: ip_tunnel: prevent perpetual headroom growth
>
> Florian Westphal <fw@strlen.de>
> netlink: add nla be16/32 types to minlen array
>
> Ryosuke Yasuoka <ryasuoka@redhat.com>
> netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter
>
> Théo Lebrun <theo.lebrun@bootlin.com>
> spi: cadence-qspi: remove system-wide suspend helper calls from runtime PM hooks
>
> Théo Lebrun <theo.lebrun@bootlin.com>
> spi: cadence-qspi: fix pointer reference in runtime PM hooks
>
> Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
> ice: fix pin phase adjust updates on PF reset
>
> Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
> ice: fix dpll periodic work data updates on PF reset
>
> Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
> ice: fix dpll and dpll_pin data access on PF reset
>
> Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
> ice: fix dpll input pin phase_adjust value updates
>
> Yochai Hagvi <yochai.hagvi@intel.com>
> ice: fix connection state of DPLL and out pin
>
> Han Xu <han.xu@nxp.com>
> mtd: spinand: gigadevice: Fix the get ecc status issue
>
> Josef Bacik <josef@toxicpanda.com>
> btrfs: fix deadlock with fiemap and extent locking
>
>
> -------------
>
> Diffstat:
>
> Documentation/arch/x86/mds.rst | 34 +++-
> Makefile | 4 +-
> arch/arm64/crypto/aes-neonbs-glue.c | 11 ++
> arch/powerpc/include/asm/rtas.h | 4 +-
> arch/powerpc/kernel/rtas.c | 9 +-
> arch/powerpc/platforms/pseries/iommu.c | 156 +++++++++++------
> arch/riscv/Kconfig | 1 -
> arch/riscv/include/asm/csr.h | 2 +
> arch/riscv/include/asm/ftrace.h | 5 +
> arch/riscv/include/asm/hugetlb.h | 2 +
> arch/riscv/include/asm/pgalloc.h | 20 ++-
> arch/riscv/include/asm/pgtable-64.h | 2 +-
> arch/riscv/include/asm/pgtable.h | 6 +-
> arch/riscv/include/asm/vmalloc.h | 61 +------
> arch/riscv/kernel/Makefile | 2 +
> arch/riscv/kernel/cpufeature.c | 17 +-
> arch/riscv/kernel/return_address.c | 48 +++++
> arch/riscv/mm/hugetlbpage.c | 2 +
> arch/x86/entry/entry_32.S | 3 +
> arch/x86/entry/entry_64.S | 11 ++
> arch/x86/entry/entry_64_compat.S | 1 +
> arch/x86/include/asm/entry-common.h | 1 -
> arch/x86/include/asm/nospec-branch.h | 12 --
> arch/x86/kernel/cpu/bugs.c | 15 +-
> arch/x86/kernel/cpu/common.c | 4 +-
> arch/x86/kernel/cpu/intel.c | 178 ++++++++++---------
> arch/x86/kernel/e820.c | 8 +-
> arch/x86/kernel/nmi.c | 3 -
> arch/x86/kvm/vmx/run_flags.h | 7 +-
> arch/x86/kvm/vmx/vmenter.S | 9 +-
> arch/x86/kvm/vmx/vmx.c | 20 ++-
> drivers/bluetooth/btqca.c | 2 +-
> drivers/bluetooth/hci_bcm4377.c | 3 +-
> drivers/bluetooth/hci_qca.c | 22 ++-
> drivers/cpufreq/intel_pstate.c | 3 +
> drivers/dma/dw-edma/dw-edma-v0-core.c | 17 ++
> drivers/dma/dw-edma/dw-hdma-v0-core.c | 39 +++--
> drivers/dma/dw-edma/dw-hdma-v0-regs.h | 2 +-
> drivers/dma/fsl-edma-common.c | 2 +-
> drivers/dma/fsl-qdma.c | 25 +--
> drivers/dma/idxd/cdev.c | 2 +-
> drivers/dma/idxd/debugfs.c | 2 +-
> drivers/dma/idxd/idxd.h | 1 -
> drivers/dma/idxd/init.c | 15 +-
> drivers/dma/idxd/irq.c | 3 +-
> drivers/dma/ptdma/ptdma-dmaengine.c | 2 -
> drivers/firmware/efi/capsule-loader.c | 2 +-
> drivers/gpio/gpio-74x164.c | 4 +-
> drivers/gpio/gpiolib.c | 12 +-
> .../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 6 +-
> drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c | 5 +
> drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 29 +++
> drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 9 +-
> drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 9 +-
> .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 9 +-
> .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 9 +-
> .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 9 +-
> drivers/gpu/drm/drm_buddy.c | 10 ++
> drivers/gpu/drm/nouveau/nouveau_drm.c | 5 +-
> drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c | 4 +-
> drivers/gpu/drm/tegra/drm.c | 23 ++-
> drivers/gpu/host1x/dev.c | 15 +-
> drivers/gpu/host1x/dev.h | 6 +
> drivers/iommu/iommufd/io_pagetable.c | 9 +-
> drivers/iommu/iommufd/selftest.c | 27 ++-
> drivers/mfd/twl6030-irq.c | 10 +-
> drivers/mmc/core/mmc.c | 2 +
> drivers/mmc/host/mmci_stm32_sdmmc.c | 24 +++
> drivers/mmc/host/sdhci-xenon-phy.c | 48 ++++-
> drivers/mtd/nand/raw/marvell_nand.c | 13 +-
> drivers/mtd/nand/spi/gigadevice.c | 6 +-
> drivers/net/ethernet/freescale/fman/fman_memac.c | 18 +-
> drivers/net/ethernet/intel/ice/ice_dpll.c | 91 ++++++++--
> drivers/net/ethernet/intel/igb/igb_ptp.c | 5 +-
> drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +-
> drivers/net/gtp.c | 12 +-
> drivers/net/tun.c | 1 +
> drivers/net/usb/dm9601.c | 2 +-
> drivers/net/usb/lan78xx.c | 5 +-
> drivers/net/veth.c | 40 ++---
> drivers/of/property.c | 2 +-
> drivers/perf/riscv_pmu.c | 18 +-
> drivers/perf/riscv_pmu_legacy.c | 10 +-
> drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c | 2 +-
> drivers/phy/qualcomm/phy-qcom-m31.c | 2 +-
> drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 10 +-
> drivers/pmdomain/arm/scmi_perf_domain.c | 3 +
> drivers/pmdomain/qcom/rpmhpd.c | 7 +-
> drivers/power/supply/Kconfig | 1 +
> drivers/power/supply/bq27xxx_battery_i2c.c | 4 +-
> drivers/soc/qcom/pmic_glink.c | 21 +--
> drivers/spi/spi-cadence-quadspi.c | 11 +-
> drivers/video/fbdev/core/fbcon.c | 8 +-
> fs/afs/dir.c | 4 +-
> fs/btrfs/dev-replace.c | 24 ++-
> fs/btrfs/disk-io.c | 22 +--
> fs/btrfs/disk-io.h | 2 +-
> fs/btrfs/extent_io.c | 165 ++++++++++++++---
> fs/btrfs/ioctl.c | 2 +-
> fs/btrfs/send.c | 17 +-
> fs/btrfs/transaction.c | 2 +-
> fs/ceph/mdsmap.c | 7 +-
> fs/ceph/mdsmap.h | 6 +-
> fs/efivarfs/vars.c | 17 +-
> fs/nfs/write.c | 4 +-
> include/linux/bvec.h | 2 +-
> include/linux/netfilter.h | 1 +
> include/net/mctp.h | 1 +
> include/sound/soc-card.h | 2 +
> include/uapi/linux/in6.h | 2 +-
> kernel/trace/fprobe.c | 14 +-
> lib/nlattr.c | 4 +
> mm/debug_vm_pgtable.c | 8 +
> mm/filemap.c | 51 +++---
> mm/migrate.c | 8 +
> net/bluetooth/hci_core.c | 7 +-
> net/bluetooth/hci_event.c | 13 +-
> net/bluetooth/hci_sync.c | 7 +-
> net/bluetooth/l2cap_core.c | 8 +-
> net/bridge/br_netfilter_hooks.c | 96 ++++++++++
> net/bridge/netfilter/nf_conntrack_bridge.c | 30 ++++
> net/core/rtnetlink.c | 11 +-
> net/hsr/hsr_forward.c | 2 +-
> net/ipv4/ip_tunnel.c | 28 ++-
> net/ipv6/addrconf.c | 7 +-
> net/mctp/route.c | 10 +-
> net/mptcp/diag.c | 3 +
> net/mptcp/options.c | 2 +-
> net/mptcp/pm_userspace.c | 10 ++
> net/mptcp/protocol.c | 52 +++++-
> net/mptcp/protocol.h | 21 +--
> net/netfilter/nf_conntrack_core.c | 1 +
> net/netfilter/nft_compat.c | 20 +++
> net/netlink/af_netlink.c | 2 +-
> net/tls/tls_sw.c | 40 +++--
> net/unix/garbage.c | 21 +--
> net/wireless/nl80211.c | 2 +
> scripts/Kconfig.include | 2 +-
> scripts/Makefile.compiler | 2 +-
> security/landlock/fs.c | 4 +-
> security/tomoyo/common.c | 3 +-
> sound/core/Makefile | 1 -
> sound/core/ump.c | 4 +-
> sound/firewire/amdtp-stream.c | 2 +-
> sound/pci/hda/patch_realtek.c | 33 +++-
> sound/soc/codecs/cs35l45.c | 2 +-
> sound/soc/codecs/cs35l56-shared.c | 8 +-
> sound/soc/codecs/cs35l56.c | 195 ++++++++++++++++++---
> sound/soc/codecs/cs35l56.h | 1 +
> sound/soc/fsl/fsl_xcvr.c | 12 +-
> sound/soc/qcom/lpass-cdc-dma.c | 2 +-
> sound/soc/soc-card.c | 24 ++-
> tools/net/ynl/lib/ynl.c | 1 +
> tools/testing/selftests/net/mptcp/mptcp_connect.sh | 16 +-
> tools/testing/selftests/net/mptcp/mptcp_join.sh | 192 ++++++++++++--------
> tools/testing/selftests/net/mptcp/mptcp_lib.sh | 15 ++
> tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 8 +-
> tools/testing/selftests/net/mptcp/userspace_pm.sh | 86 +++++----
> 158 files changed, 1922 insertions(+), 829 deletions(-)
>
>
>
Works fine on my Arch Linux desktop with model name : AMD Ryzen 5
5600 6-Core Processor but as said nothing was changed for x86_64
after the Arch Linux manual intervention for new mkinitcpio settings
and version in Arch
Tested by: Luna Jernberg <droidbittin@gmail.com>
^ permalink raw reply [relevance 0%]
* [PATCH 6.7 000/161] 6.7.9-rc3 review
@ 2024-03-05 11:28 1% Greg Kroah-Hartman
2024-03-05 12:30 0% ` Luna Jernberg
2024-03-05 20:31 0% ` Ricardo B. Marliere
0 siblings, 2 replies; 200+ results
From: Greg Kroah-Hartman @ 2024-03-05 11:28 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, linux-kernel, torvalds, akpm, linux,
shuah, patches, lkft-triage, pavel, jonathanh, f.fainelli,
sudipm.mukherjee, srw, rwarsow, conor, allen.lkml
This is the start of the stable review cycle for the 6.7.9 release.
There are 161 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Thu, 07 Mar 2024 11:27:43 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.7.9-rc3.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.7.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Linux 6.7.9-rc3
Danilo Krummrich <dakr@redhat.com>
drm/nouveau: don't fini scheduler before entity flush
Geliang Tang <tanggeliang@kylinos.cn>
selftests: mptcp: rm subflow with v4/v4mapped addr
Geliang Tang <geliang.tang@linux.dev>
selftests: mptcp: add mptcp_lib_is_v6
Geliang Tang <geliang.tang@linux.dev>
selftests: mptcp: update userspace pm test helpers
Geliang Tang <geliang.tang@linux.dev>
selftests: mptcp: add chk_subflows_total helper
Geliang Tang <geliang.tang@linux.dev>
selftests: mptcp: add evts_get_info helper
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
KVM/VMX: Move VERW closer to VMentry for MDS mitigation
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
x86/bugs: Use ALTERNATIVE() instead of mds_user_clear static key
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
x86/entry_32: Add VERW just before userspace transition
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
x86/entry_64: Add VERW just before userspace transition
Ming Lei <ming.lei@redhat.com>
block: define bvec_iter as __packed __aligned(4)
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
gpio: fix resource unwinding order in error path
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
gpiolib: Fix the error path order in gpiochip_add_data_with_key()
Arturas Moskvinas <arturas.moskvinas@gmail.com>
gpio: 74x164: Enable output pins after registers are reset
Nathan Lynch <nathanl@linux.ibm.com>
powerpc/rtas: use correct function name for resetting TCE tables
Gaurav Batra <gbatra@linux.vnet.ibm.com>
powerpc/pseries/iommu: IOMMU table is not initialized for kdump over SR-IOV
Fenghua Yu <fenghua.yu@intel.com>
dmaengine: idxd: Ensure safe user copy of completion record
Fenghua Yu <fenghua.yu@intel.com>
dmaengine: idxd: Remove shadow Event Log head stored in idxd
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
phy: qcom-qmp-usb: fix v3 offsets data
Yang Yingliang <yangyingliang@huawei.com>
phy: qcom: phy-qcom-m31: fix wrong pointer pass to PTR_ERR()
Alexander Stein <alexander.stein@ew.tq-group.com>
phy: freescale: phy-fsl-imx8-mipi-dphy: Fix alias name to use dashes
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: HDMA: Add sync read before starting the DMA transfer in remote setup
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: Add HDMA remote interrupt configuration
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: HDMA_V0_REMOTEL_STOP_INT_EN typo fix
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: Fix wrong interrupt bit set for HDMA
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: Fix the ch_count hdma callback
Dan Carpenter <dan.carpenter@linaro.org>
ASoC: cs35l56: fix reversed if statement in cs35l56_dspwait_asp1tx_put()
Kuniyuki Iwashima <kuniyu@amazon.com>
af_unix: Drop oob_skb ref before purging queue in GC.
Kuniyuki Iwashima <kuniyu@amazon.com>
af_unix: Fix task hung while purging oob_skb in GC.
NeilBrown <neilb@suse.de>
NFS: Fix data corruption caused by congestion.
Peter Ujfalusi <peter.ujfalusi@gmail.com>
mfd: twl6030-irq: Revert to use of_match_device()
Paolo Abeni <pabeni@redhat.com>
mptcp: fix possible deadlock in subflow diag
Davide Caratti <dcaratti@redhat.com>
mptcp: fix double-free on socket dismantle
Paolo Abeni <pabeni@redhat.com>
mptcp: fix potential wake-up event loss
Paolo Abeni <pabeni@redhat.com>
mptcp: fix snd_wnd initialization for passive socket
Geliang Tang <tanggeliang@kylinos.cn>
selftests: mptcp: join: add ss mptcp support check
Paolo Abeni <pabeni@redhat.com>
mptcp: push at DSS boundaries
Matthieu Baerts (NGI0) <matttbe@kernel.org>
mptcp: avoid printing warning once on client side
Geliang Tang <tanggeliang@kylinos.cn>
mptcp: map v4 address to v6 when destroying subflow
Paolo Bonzini <pbonzini@redhat.com>
x86/cpu/intel: Detect TME keyid bits before setting MTRR mask registers
Paolo Bonzini <pbonzini@redhat.com>
x86/cpu: Allow reducing x86_phys_bits during early_identify_cpu()
Jiri Bohac <jbohac@suse.cz>
x86/e820: Don't reserve SETUP_RNG_SEED in e820
Byungchul Park <byungchul@sk.com>
mm/vmscan: fix a bug calling wakeup_kswapd() with a wrong zone index
Aneesh Kumar K.V (IBM) <aneesh.kumar@kernel.org>
mm/debug_vm_pgtable: fix BUG_ON with pud advanced test
Masami Hiramatsu (Google) <mhiramat@kernel.org>
fprobe: Fix to allocate entry_data_size buffer with rethook instances
Bjorn Andersson <quic_bjorande@quicinc.com>
pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation
Cristian Marussi <cristian.marussi@arm.com>
pmdomain: arm: Fix NULL dereference on scmi_perf_domain removal
Tim Schumacher <timschumi@gmx.de>
efivarfs: Request at most 512 bytes for variable names
Nicolin Chen <nicolinc@nvidia.com>
iommufd: Fix protection fault in iommufd_test_syz_conv_iova
Nicolin Chen <nicolinc@nvidia.com>
iommufd: Fix iopt_access_list_id overwrite bug
Nathan Chancellor <nathan@kernel.org>
kbuild: Add -Wa,--fatal-warnings to as-instr invocation
Thomas Weißschuh <linux@weissschuh.net>
power: supply: mm8013: select REGMAP_I2C
Samuel Holland <samuel.holland@sifive.com>
riscv: Fix enabling cbo.zero when running in M-mode
Zong Li <zong.li@sifive.com>
riscv: add CALLER_ADDRx support
Nathan Chancellor <nathan@kernel.org>
RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
Xiubo Li <xiubli@redhat.com>
ceph: switch to corrected encoding of max_xattr_size in mdsmap
Elad Nachman <enachman@marvell.com>
mmc: sdhci-xenon: fix PHY init clock stability
Elad Nachman <enachman@marvell.com>
mmc: sdhci-xenon: add timeout for PHY init complete
Ivan Semenov <ivan@semenov.dev>
mmc: core: Fix eMMC initialization with 1-bit bus connection
Christophe Kerello <christophe.kerello@foss.st.com>
mmc: mmci: stm32: fix DMA API overlapping mappings warning
Curtis Klein <curtis.klein@hpe.com>
dmaengine: fsl-qdma: init irq after reg initialization
Joy Zou <joy.zou@nxp.com>
dmaengine: fsl-edma: correct calculation of 'nbytes' in multi-fifo scenario
Tadeusz Struk <tstruk@gigaio.com>
dmaengine: ptdma: use consistent DMA masks
Ard Biesheuvel <ardb@kernel.org>
crypto: arm64/neonbs - fix out-of-bounds access on short input
Peng Ma <peng.ma@nxp.com>
dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
Rob Clark <robdclark@chromium.org>
soc: qcom: pmic_glink: Fix boot when QRTR=m
Ryan Lin <tsung-hua.lin@amd.com>
drm/amd/display: Add monitor patch for specific eDP
Ma Jun <Jun.Ma2@amd.com>
drm/amdgpu/pm: Fix the power1_min_cap value
Matthew Auld <matthew.auld@intel.com>
drm/buddy: fix range bias
Alex Deucher <alexander.deucher@amd.com>
Revert "drm/amd/pm: resolve reboot exception for si oland"
Filipe Manana <fdmanana@suse.com>
btrfs: send: don't issue unnecessary zero writes for trailing hole
David Sterba <dsterba@suse.com>
btrfs: dev-replace: properly validate device names
Filipe Manana <fdmanana@suse.com>
btrfs: fix double free of anonymous device after snapshot creation failure
Johannes Berg <johannes.berg@intel.com>
wifi: nl80211: reject iftype change with mesh ID change
Elad Nachman <enachman@marvell.com>
mtd: rawnand: marvell: fix layouts
Nhat Pham <nphamcs@gmail.com>
mm: cachestat: fix folio read-after-free in cache walk
Alexander Ofitserov <oficerovas@altlinux.org>
gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
Mickaël Salaün <mic@digikod.net>
landlock: Fix asymmetric private inodes referring
Johan Hovold <johan+linaro@kernel.org>
Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid
Willian Wang <git@willian.wang>
ALSA: hda/realtek: Add special fixup for Lenovo 14IRP8
Eniac Zhang <eniac-xw.zhang@hp.com>
ALSA: hda/realtek: fix mute/micmute LED For HP mt440
Hans Peter <flurry123@gmx.ch>
ALSA: hda/realtek: Enable Mute LED on HP 840 G8 (MB 8AB8)
Gergo Koteles <soyer@irl.hu>
ALSA: hda/realtek: tas2781: enable subwoofer volume control
Jay Ajit Mate <jay.mate15@gmail.com>
ALSA: hda/realtek: Fix top speaker connection on Dell Inspiron 16 Plus 7630
Takashi Iwai <tiwai@suse.de>
ALSA: ump: Fix the discard error code from snd_ump_legacy_open()
Takashi Sakamoto <o-takashi@sakamocchi.jp>
ALSA: firewire-lib: fix to check cycle continuity
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
tomoyo: fix UAF write bug in tomoyo_write_control()
Saravana Kannan <saravanak@google.com>
of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing
Sid Pranjale <sidpranjale127@protonmail.com>
drm/nouveau: keep DMA buffers required for suspend/resume
Filipe Manana <fdmanana@suse.com>
btrfs: fix race between ordered extent completion and fiemap
Dimitris Vlachos <dvlachos@ics.forth.gr>
riscv: Sparse-Memory/vmemmap out-of-bounds fix
Alexandre Ghiti <alexghiti@rivosinc.com>
riscv: Fix pte_leaf_size() for NAPOT
Alexandre Ghiti <alexghiti@rivosinc.com>
Revert "riscv: mm: support Svnapot in huge vmap"
Vadim Shakirov <vadim.shakirov@syntacore.com>
drivers: perf: ctr_get_width function for legacy is not defined
Vadim Shakirov <vadim.shakirov@syntacore.com>
drivers: perf: added capabilities for legacy PMU
Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
drm/amd/display: Prevent potential buffer overflow in map_hw_resources
David Howells <dhowells@redhat.com>
afs: Fix endless loop in directory parsing
Jiri Slaby (SUSE) <jirislaby@kernel.org>
fbcon: always restore the old font data in fbcon_do_set_font()
Thierry Reding <treding@nvidia.com>
drm/tegra: Remove existing framebuffer only if we support display
Conor Dooley <conor@kernel.org>
RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: soc-card: Fix missing locking in snd_soc_card_get_kcontrol()
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Fix deadlock in ASP1 mixer register initialization
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Fix misuse of wm_adsp 'part' string for silicon revision
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Fix for initializing ASP1 mixer registers
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Don't add the same register patch multiple times
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: cs35l56_component_remove() must clean up wm_adsp
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: cs35l56_component_remove() must clear cs35l56->component
Alexandre Ghiti <alexghiti@rivosinc.com>
riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
Yangyu Chen <cyy@cyyself.name>
riscv: mm: fix NOCACHE_THEAD does not set bit[61] correctly
Mikko Perttunen <mperttunen@nvidia.com>
gpu: host1x: Skip reset assert on Tegra186
Colin Ian King <colin.i.king@gmail.com>
ASoC: qcom: Fix uninitialized pointer dmactl
Takashi Iwai <tiwai@suse.de>
ALSA: Drop leftover snd-rtctimer stuff from Makefile
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Must clear HALO_STATE before issuing SYSTEM_RESET
Hans de Goede <hdegoede@redhat.com>
power: supply: bq27xxx-i2c: Do not free non existing IRQ
Arnd Bergmann <arnd@arndb.de>
efi/capsule-loader: fix incorrect allocation size
Jisheng Zhang <jszhang@kernel.org>
riscv: tlb: fix __p*d_free_tlb()
Sabrina Dubroca <sd@queasysnail.net>
tls: fix use-after-free on failed backlog decryption
Sabrina Dubroca <sd@queasysnail.net>
tls: separate no-async decryption request handling from async
Sabrina Dubroca <sd@queasysnail.net>
tls: fix peeking with sync+async decryption
Sabrina Dubroca <sd@queasysnail.net>
tls: decrement decrypt_pending if no async completion will be called
Lukasz Majewski <lukma@denx.de>
net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
Oleksij Rempel <o.rempel@pengutronix.de>
igb: extend PTP timestamp adjustments to i211
Lin Ma <linma@zju.edu.cn>
rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
Jakub Kicinski <kuba@kernel.org>
tools: ynl: fix handling of multiple mcast groups
Florian Westphal <fw@strlen.de>
netfilter: bridge: confirm multicast packets before passing them up the stack
Ignat Korchagin <ignat@cloudflare.com>
netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
Zijun Hu <quic_zijuhu@quicinc.com>
Bluetooth: qca: Fix triggering coredump implementation
Janaki Ramaiah Thota <quic_janathot@quicinc.com>
Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
Zijun Hu <quic_zijuhu@quicinc.com>
Bluetooth: qca: Fix wrong event type for patch config command
Kai-Heng Feng <kai.heng.feng@canonical.com>
Bluetooth: Enforce validation on max value of connection interval
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
Zijun Hu <quic_zijuhu@quicinc.com>
Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: hci_sync: Fix accept_list when attempting to suspend
Ying Hsu <yinghsu@chromium.org>
Bluetooth: Avoid potential use-after-free in hci_error_reset
Jonas Dreßler <verdre@v0yd.nl>
Bluetooth: hci_sync: Check the correct flag before starting a scan
Jakub Raczynski <j.raczynski@samsung.com>
stmmac: Clear variable when destroying workqueue
Justin Iurman <justin.iurman@uliege.be>
uapi: in6: replace temporary label with rfc9486
Oleksij Rempel <o.rempel@pengutronix.de>
net: lan78xx: fix "softirq work is pending" error
Javier Carrasco <javier.carrasco.cruz@gmail.com>
net: usb: dm9601: fix wrong return value in dm9601_mdio_read
Jakub Kicinski <kuba@kernel.org>
veth: try harder when allocating queue memory
Oleksij Rempel <o.rempel@pengutronix.de>
lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
Eric Dumazet <edumazet@google.com>
ipv6: fix potential "struct net" leak in inet6_rtm_getaddr()
Jakub Kicinski <kuba@kernel.org>
net: veth: clear GRO when clearing XDP even when down
Doug Smythies <dsmythies@telus.net>
cpufreq: intel_pstate: fix pstate limits enforcement for adjust_perf call back
Yunjian Wang <wangyunjian@huawei.com>
tun: Fix xdp_rxq_info's queue_index when detaching
Vladimir Oltean <vladimir.oltean@nxp.com>
net: dpaa: fman_memac: accept phy-interface-type = "10gbase-r" in the device tree
Jeremy Kerr <jk@codeconstruct.com.au>
net: mctp: take ownership of skb in mctp_local_output
Florian Westphal <fw@strlen.de>
net: ip_tunnel: prevent perpetual headroom growth
Florian Westphal <fw@strlen.de>
netlink: add nla be16/32 types to minlen array
Ryosuke Yasuoka <ryasuoka@redhat.com>
netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter
Théo Lebrun <theo.lebrun@bootlin.com>
spi: cadence-qspi: remove system-wide suspend helper calls from runtime PM hooks
Théo Lebrun <theo.lebrun@bootlin.com>
spi: cadence-qspi: fix pointer reference in runtime PM hooks
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
ice: fix pin phase adjust updates on PF reset
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
ice: fix dpll periodic work data updates on PF reset
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
ice: fix dpll and dpll_pin data access on PF reset
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
ice: fix dpll input pin phase_adjust value updates
Yochai Hagvi <yochai.hagvi@intel.com>
ice: fix connection state of DPLL and out pin
Han Xu <han.xu@nxp.com>
mtd: spinand: gigadevice: Fix the get ecc status issue
Josef Bacik <josef@toxicpanda.com>
btrfs: fix deadlock with fiemap and extent locking
-------------
Diffstat:
Documentation/arch/x86/mds.rst | 34 +++-
Makefile | 4 +-
arch/arm64/crypto/aes-neonbs-glue.c | 11 ++
arch/powerpc/include/asm/rtas.h | 4 +-
arch/powerpc/kernel/rtas.c | 9 +-
arch/powerpc/platforms/pseries/iommu.c | 156 +++++++++++------
arch/riscv/Kconfig | 1 -
arch/riscv/include/asm/csr.h | 2 +
arch/riscv/include/asm/ftrace.h | 5 +
arch/riscv/include/asm/hugetlb.h | 2 +
arch/riscv/include/asm/pgalloc.h | 20 ++-
arch/riscv/include/asm/pgtable-64.h | 2 +-
arch/riscv/include/asm/pgtable.h | 6 +-
arch/riscv/include/asm/vmalloc.h | 61 +------
arch/riscv/kernel/Makefile | 2 +
arch/riscv/kernel/cpufeature.c | 17 +-
arch/riscv/kernel/return_address.c | 48 +++++
arch/riscv/mm/hugetlbpage.c | 2 +
arch/x86/entry/entry_32.S | 3 +
arch/x86/entry/entry_64.S | 11 ++
arch/x86/entry/entry_64_compat.S | 1 +
arch/x86/include/asm/entry-common.h | 1 -
arch/x86/include/asm/nospec-branch.h | 12 --
arch/x86/kernel/cpu/bugs.c | 15 +-
arch/x86/kernel/cpu/common.c | 4 +-
arch/x86/kernel/cpu/intel.c | 178 ++++++++++---------
arch/x86/kernel/e820.c | 8 +-
arch/x86/kernel/nmi.c | 3 -
arch/x86/kvm/vmx/run_flags.h | 7 +-
arch/x86/kvm/vmx/vmenter.S | 9 +-
arch/x86/kvm/vmx/vmx.c | 20 ++-
drivers/bluetooth/btqca.c | 2 +-
drivers/bluetooth/hci_bcm4377.c | 3 +-
drivers/bluetooth/hci_qca.c | 22 ++-
drivers/cpufreq/intel_pstate.c | 3 +
drivers/dma/dw-edma/dw-edma-v0-core.c | 17 ++
drivers/dma/dw-edma/dw-hdma-v0-core.c | 39 +++--
drivers/dma/dw-edma/dw-hdma-v0-regs.h | 2 +-
drivers/dma/fsl-edma-common.c | 2 +-
drivers/dma/fsl-qdma.c | 25 +--
drivers/dma/idxd/cdev.c | 2 +-
drivers/dma/idxd/debugfs.c | 2 +-
drivers/dma/idxd/idxd.h | 1 -
drivers/dma/idxd/init.c | 15 +-
drivers/dma/idxd/irq.c | 3 +-
drivers/dma/ptdma/ptdma-dmaengine.c | 2 -
drivers/firmware/efi/capsule-loader.c | 2 +-
drivers/gpio/gpio-74x164.c | 4 +-
drivers/gpio/gpiolib.c | 12 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 6 +-
drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c | 5 +
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 29 +++
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 9 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 9 +-
.../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 9 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 9 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 9 +-
drivers/gpu/drm/drm_buddy.c | 10 ++
drivers/gpu/drm/nouveau/nouveau_drm.c | 5 +-
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c | 4 +-
drivers/gpu/drm/tegra/drm.c | 23 ++-
drivers/gpu/host1x/dev.c | 15 +-
drivers/gpu/host1x/dev.h | 6 +
drivers/iommu/iommufd/io_pagetable.c | 9 +-
drivers/iommu/iommufd/selftest.c | 27 ++-
drivers/mfd/twl6030-irq.c | 10 +-
drivers/mmc/core/mmc.c | 2 +
drivers/mmc/host/mmci_stm32_sdmmc.c | 24 +++
drivers/mmc/host/sdhci-xenon-phy.c | 48 ++++-
drivers/mtd/nand/raw/marvell_nand.c | 13 +-
drivers/mtd/nand/spi/gigadevice.c | 6 +-
drivers/net/ethernet/freescale/fman/fman_memac.c | 18 +-
drivers/net/ethernet/intel/ice/ice_dpll.c | 91 ++++++++--
drivers/net/ethernet/intel/igb/igb_ptp.c | 5 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +-
drivers/net/gtp.c | 12 +-
drivers/net/tun.c | 1 +
drivers/net/usb/dm9601.c | 2 +-
drivers/net/usb/lan78xx.c | 5 +-
drivers/net/veth.c | 40 ++---
drivers/of/property.c | 2 +-
drivers/perf/riscv_pmu.c | 18 +-
drivers/perf/riscv_pmu_legacy.c | 10 +-
drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c | 2 +-
drivers/phy/qualcomm/phy-qcom-m31.c | 2 +-
drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 10 +-
drivers/pmdomain/arm/scmi_perf_domain.c | 3 +
drivers/pmdomain/qcom/rpmhpd.c | 7 +-
drivers/power/supply/Kconfig | 1 +
drivers/power/supply/bq27xxx_battery_i2c.c | 4 +-
drivers/soc/qcom/pmic_glink.c | 21 +--
drivers/spi/spi-cadence-quadspi.c | 11 +-
drivers/video/fbdev/core/fbcon.c | 8 +-
fs/afs/dir.c | 4 +-
fs/btrfs/dev-replace.c | 24 ++-
fs/btrfs/disk-io.c | 22 +--
fs/btrfs/disk-io.h | 2 +-
fs/btrfs/extent_io.c | 165 ++++++++++++++---
fs/btrfs/ioctl.c | 2 +-
fs/btrfs/send.c | 17 +-
fs/btrfs/transaction.c | 2 +-
fs/ceph/mdsmap.c | 7 +-
fs/ceph/mdsmap.h | 6 +-
fs/efivarfs/vars.c | 17 +-
fs/nfs/write.c | 4 +-
include/linux/bvec.h | 2 +-
include/linux/netfilter.h | 1 +
include/net/mctp.h | 1 +
include/sound/soc-card.h | 2 +
include/uapi/linux/in6.h | 2 +-
kernel/trace/fprobe.c | 14 +-
lib/nlattr.c | 4 +
mm/debug_vm_pgtable.c | 8 +
mm/filemap.c | 51 +++---
mm/migrate.c | 8 +
net/bluetooth/hci_core.c | 7 +-
net/bluetooth/hci_event.c | 13 +-
net/bluetooth/hci_sync.c | 7 +-
net/bluetooth/l2cap_core.c | 8 +-
net/bridge/br_netfilter_hooks.c | 96 ++++++++++
net/bridge/netfilter/nf_conntrack_bridge.c | 30 ++++
net/core/rtnetlink.c | 11 +-
net/hsr/hsr_forward.c | 2 +-
net/ipv4/ip_tunnel.c | 28 ++-
net/ipv6/addrconf.c | 7 +-
net/mctp/route.c | 10 +-
net/mptcp/diag.c | 3 +
net/mptcp/options.c | 2 +-
net/mptcp/pm_userspace.c | 10 ++
net/mptcp/protocol.c | 52 +++++-
net/mptcp/protocol.h | 21 +--
net/netfilter/nf_conntrack_core.c | 1 +
net/netfilter/nft_compat.c | 20 +++
net/netlink/af_netlink.c | 2 +-
net/tls/tls_sw.c | 40 +++--
net/unix/garbage.c | 21 +--
net/wireless/nl80211.c | 2 +
scripts/Kconfig.include | 2 +-
scripts/Makefile.compiler | 2 +-
security/landlock/fs.c | 4 +-
security/tomoyo/common.c | 3 +-
sound/core/Makefile | 1 -
sound/core/ump.c | 4 +-
sound/firewire/amdtp-stream.c | 2 +-
sound/pci/hda/patch_realtek.c | 33 +++-
sound/soc/codecs/cs35l45.c | 2 +-
sound/soc/codecs/cs35l56-shared.c | 8 +-
sound/soc/codecs/cs35l56.c | 195 ++++++++++++++++++---
sound/soc/codecs/cs35l56.h | 1 +
sound/soc/fsl/fsl_xcvr.c | 12 +-
sound/soc/qcom/lpass-cdc-dma.c | 2 +-
sound/soc/soc-card.c | 24 ++-
tools/net/ynl/lib/ynl.c | 1 +
tools/testing/selftests/net/mptcp/mptcp_connect.sh | 16 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh | 192 ++++++++++++--------
tools/testing/selftests/net/mptcp/mptcp_lib.sh | 15 ++
tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 8 +-
tools/testing/selftests/net/mptcp/userspace_pm.sh | 86 +++++----
158 files changed, 1922 insertions(+), 829 deletions(-)
^ permalink raw reply [relevance 1%]
* [PATCH 6.7 000/163] 6.7.9-rc2 review
@ 2024-03-05 7:58 1% Greg Kroah-Hartman
0 siblings, 0 replies; 200+ results
From: Greg Kroah-Hartman @ 2024-03-05 7:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, linux-kernel, torvalds, akpm, linux,
shuah, patches, lkft-triage, pavel, jonathanh, f.fainelli,
sudipm.mukherjee, srw, rwarsow, conor, allen.lkml
This is the start of the stable review cycle for the 6.7.9 release.
There are 163 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Thu, 07 Mar 2024 07:46:26 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.7.9-rc2.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.7.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Linux 6.7.9-rc2
Danilo Krummrich <dakr@redhat.com>
drm/nouveau: don't fini scheduler before entity flush
Geliang Tang <tanggeliang@kylinos.cn>
selftests: mptcp: rm subflow with v4/v4mapped addr
Geliang Tang <geliang.tang@linux.dev>
selftests: mptcp: add mptcp_lib_is_v6
Geliang Tang <geliang.tang@linux.dev>
selftests: mptcp: update userspace pm test helpers
Geliang Tang <geliang.tang@linux.dev>
selftests: mptcp: add chk_subflows_total helper
Geliang Tang <geliang.tang@linux.dev>
selftests: mptcp: add evts_get_info helper
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
KVM/VMX: Move VERW closer to VMentry for MDS mitigation
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
x86/bugs: Use ALTERNATIVE() instead of mds_user_clear static key
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
x86/entry_32: Add VERW just before userspace transition
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
x86/entry_64: Add VERW just before userspace transition
Ming Lei <ming.lei@redhat.com>
block: define bvec_iter as __packed __aligned(4)
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
gpio: fix resource unwinding order in error path
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
gpiolib: Fix the error path order in gpiochip_add_data_with_key()
Arturas Moskvinas <arturas.moskvinas@gmail.com>
gpio: 74x164: Enable output pins after registers are reset
Nathan Lynch <nathanl@linux.ibm.com>
powerpc/rtas: use correct function name for resetting TCE tables
Gaurav Batra <gbatra@linux.vnet.ibm.com>
powerpc/pseries/iommu: IOMMU table is not initialized for kdump over SR-IOV
Fenghua Yu <fenghua.yu@intel.com>
dmaengine: idxd: Ensure safe user copy of completion record
Fenghua Yu <fenghua.yu@intel.com>
dmaengine: idxd: Remove shadow Event Log head stored in idxd
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
phy: qcom-qmp-usb: fix v3 offsets data
Yang Yingliang <yangyingliang@huawei.com>
phy: qcom: phy-qcom-m31: fix wrong pointer pass to PTR_ERR()
Alexander Stein <alexander.stein@ew.tq-group.com>
phy: freescale: phy-fsl-imx8-mipi-dphy: Fix alias name to use dashes
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: HDMA: Add sync read before starting the DMA transfer in remote setup
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: Add HDMA remote interrupt configuration
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: HDMA_V0_REMOTEL_STOP_INT_EN typo fix
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: Fix wrong interrupt bit set for HDMA
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: Fix the ch_count hdma callback
Dan Carpenter <dan.carpenter@linaro.org>
ASoC: cs35l56: fix reversed if statement in cs35l56_dspwait_asp1tx_put()
Kuniyuki Iwashima <kuniyu@amazon.com>
af_unix: Drop oob_skb ref before purging queue in GC.
Kuniyuki Iwashima <kuniyu@amazon.com>
af_unix: Fix task hung while purging oob_skb in GC.
NeilBrown <neilb@suse.de>
NFS: Fix data corruption caused by congestion.
Peter Ujfalusi <peter.ujfalusi@gmail.com>
mfd: twl6030-irq: Revert to use of_match_device()
Paolo Abeni <pabeni@redhat.com>
mptcp: fix possible deadlock in subflow diag
Davide Caratti <dcaratti@redhat.com>
mptcp: fix double-free on socket dismantle
Paolo Abeni <pabeni@redhat.com>
mptcp: fix potential wake-up event loss
Paolo Abeni <pabeni@redhat.com>
mptcp: fix snd_wnd initialization for passive socket
Geliang Tang <tanggeliang@kylinos.cn>
selftests: mptcp: join: add ss mptcp support check
Paolo Abeni <pabeni@redhat.com>
mptcp: push at DSS boundaries
Matthieu Baerts (NGI0) <matttbe@kernel.org>
mptcp: avoid printing warning once on client side
Geliang Tang <tanggeliang@kylinos.cn>
mptcp: map v4 address to v6 when destroying subflow
Paolo Bonzini <pbonzini@redhat.com>
x86/cpu/intel: Detect TME keyid bits before setting MTRR mask registers
Paolo Bonzini <pbonzini@redhat.com>
x86/cpu: Allow reducing x86_phys_bits during early_identify_cpu()
Jiri Bohac <jbohac@suse.cz>
x86/e820: Don't reserve SETUP_RNG_SEED in e820
Byungchul Park <byungchul@sk.com>
mm/vmscan: fix a bug calling wakeup_kswapd() with a wrong zone index
Aneesh Kumar K.V (IBM) <aneesh.kumar@kernel.org>
mm/debug_vm_pgtable: fix BUG_ON with pud advanced test
Masami Hiramatsu (Google) <mhiramat@kernel.org>
fprobe: Fix to allocate entry_data_size buffer with rethook instances
Bjorn Andersson <quic_bjorande@quicinc.com>
pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation
Cristian Marussi <cristian.marussi@arm.com>
pmdomain: arm: Fix NULL dereference on scmi_perf_domain removal
Tim Schumacher <timschumi@gmx.de>
efivarfs: Request at most 512 bytes for variable names
Nicolin Chen <nicolinc@nvidia.com>
iommufd: Fix protection fault in iommufd_test_syz_conv_iova
Nicolin Chen <nicolinc@nvidia.com>
iommufd: Fix iopt_access_list_id overwrite bug
Nathan Chancellor <nathan@kernel.org>
kbuild: Add -Wa,--fatal-warnings to as-instr invocation
Thomas Weißschuh <linux@weissschuh.net>
power: supply: mm8013: select REGMAP_I2C
Samuel Holland <samuel.holland@sifive.com>
riscv: Save/restore envcfg CSR during CPU suspend
Samuel Holland <samuel.holland@sifive.com>
riscv: Add a custom ISA extension for the [ms]envcfg CSR
Samuel Holland <samuel.holland@sifive.com>
riscv: Fix enabling cbo.zero when running in M-mode
Zong Li <zong.li@sifive.com>
riscv: add CALLER_ADDRx support
Nathan Chancellor <nathan@kernel.org>
RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
Xiubo Li <xiubli@redhat.com>
ceph: switch to corrected encoding of max_xattr_size in mdsmap
Elad Nachman <enachman@marvell.com>
mmc: sdhci-xenon: fix PHY init clock stability
Elad Nachman <enachman@marvell.com>
mmc: sdhci-xenon: add timeout for PHY init complete
Ivan Semenov <ivan@semenov.dev>
mmc: core: Fix eMMC initialization with 1-bit bus connection
Christophe Kerello <christophe.kerello@foss.st.com>
mmc: mmci: stm32: fix DMA API overlapping mappings warning
Curtis Klein <curtis.klein@hpe.com>
dmaengine: fsl-qdma: init irq after reg initialization
Joy Zou <joy.zou@nxp.com>
dmaengine: fsl-edma: correct calculation of 'nbytes' in multi-fifo scenario
Tadeusz Struk <tstruk@gigaio.com>
dmaengine: ptdma: use consistent DMA masks
Ard Biesheuvel <ardb@kernel.org>
crypto: arm64/neonbs - fix out-of-bounds access on short input
Peng Ma <peng.ma@nxp.com>
dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
Rob Clark <robdclark@chromium.org>
soc: qcom: pmic_glink: Fix boot when QRTR=m
Ryan Lin <tsung-hua.lin@amd.com>
drm/amd/display: Add monitor patch for specific eDP
Ma Jun <Jun.Ma2@amd.com>
drm/amdgpu/pm: Fix the power1_min_cap value
Matthew Auld <matthew.auld@intel.com>
drm/buddy: fix range bias
Alex Deucher <alexander.deucher@amd.com>
Revert "drm/amd/pm: resolve reboot exception for si oland"
Filipe Manana <fdmanana@suse.com>
btrfs: send: don't issue unnecessary zero writes for trailing hole
David Sterba <dsterba@suse.com>
btrfs: dev-replace: properly validate device names
Filipe Manana <fdmanana@suse.com>
btrfs: fix double free of anonymous device after snapshot creation failure
Johannes Berg <johannes.berg@intel.com>
wifi: nl80211: reject iftype change with mesh ID change
Elad Nachman <enachman@marvell.com>
mtd: rawnand: marvell: fix layouts
Nhat Pham <nphamcs@gmail.com>
mm: cachestat: fix folio read-after-free in cache walk
Alexander Ofitserov <oficerovas@altlinux.org>
gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
Mickaël Salaün <mic@digikod.net>
landlock: Fix asymmetric private inodes referring
Johan Hovold <johan+linaro@kernel.org>
Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid
Willian Wang <git@willian.wang>
ALSA: hda/realtek: Add special fixup for Lenovo 14IRP8
Eniac Zhang <eniac-xw.zhang@hp.com>
ALSA: hda/realtek: fix mute/micmute LED For HP mt440
Hans Peter <flurry123@gmx.ch>
ALSA: hda/realtek: Enable Mute LED on HP 840 G8 (MB 8AB8)
Gergo Koteles <soyer@irl.hu>
ALSA: hda/realtek: tas2781: enable subwoofer volume control
Jay Ajit Mate <jay.mate15@gmail.com>
ALSA: hda/realtek: Fix top speaker connection on Dell Inspiron 16 Plus 7630
Takashi Iwai <tiwai@suse.de>
ALSA: ump: Fix the discard error code from snd_ump_legacy_open()
Takashi Sakamoto <o-takashi@sakamocchi.jp>
ALSA: firewire-lib: fix to check cycle continuity
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
tomoyo: fix UAF write bug in tomoyo_write_control()
Saravana Kannan <saravanak@google.com>
of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing
Sid Pranjale <sidpranjale127@protonmail.com>
drm/nouveau: keep DMA buffers required for suspend/resume
Filipe Manana <fdmanana@suse.com>
btrfs: fix race between ordered extent completion and fiemap
Dimitris Vlachos <dvlachos@ics.forth.gr>
riscv: Sparse-Memory/vmemmap out-of-bounds fix
Alexandre Ghiti <alexghiti@rivosinc.com>
riscv: Fix pte_leaf_size() for NAPOT
Alexandre Ghiti <alexghiti@rivosinc.com>
Revert "riscv: mm: support Svnapot in huge vmap"
Vadim Shakirov <vadim.shakirov@syntacore.com>
drivers: perf: ctr_get_width function for legacy is not defined
Vadim Shakirov <vadim.shakirov@syntacore.com>
drivers: perf: added capabilities for legacy PMU
Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
drm/amd/display: Prevent potential buffer overflow in map_hw_resources
David Howells <dhowells@redhat.com>
afs: Fix endless loop in directory parsing
Jiri Slaby (SUSE) <jirislaby@kernel.org>
fbcon: always restore the old font data in fbcon_do_set_font()
Thierry Reding <treding@nvidia.com>
drm/tegra: Remove existing framebuffer only if we support display
Conor Dooley <conor@kernel.org>
RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: soc-card: Fix missing locking in snd_soc_card_get_kcontrol()
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Fix deadlock in ASP1 mixer register initialization
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Fix misuse of wm_adsp 'part' string for silicon revision
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Fix for initializing ASP1 mixer registers
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Don't add the same register patch multiple times
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: cs35l56_component_remove() must clean up wm_adsp
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: cs35l56_component_remove() must clear cs35l56->component
Alexandre Ghiti <alexghiti@rivosinc.com>
riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
Yangyu Chen <cyy@cyyself.name>
riscv: mm: fix NOCACHE_THEAD does not set bit[61] correctly
Mikko Perttunen <mperttunen@nvidia.com>
gpu: host1x: Skip reset assert on Tegra186
Colin Ian King <colin.i.king@gmail.com>
ASoC: qcom: Fix uninitialized pointer dmactl
Takashi Iwai <tiwai@suse.de>
ALSA: Drop leftover snd-rtctimer stuff from Makefile
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Must clear HALO_STATE before issuing SYSTEM_RESET
Hans de Goede <hdegoede@redhat.com>
power: supply: bq27xxx-i2c: Do not free non existing IRQ
Arnd Bergmann <arnd@arndb.de>
efi/capsule-loader: fix incorrect allocation size
Jisheng Zhang <jszhang@kernel.org>
riscv: tlb: fix __p*d_free_tlb()
Sabrina Dubroca <sd@queasysnail.net>
tls: fix use-after-free on failed backlog decryption
Sabrina Dubroca <sd@queasysnail.net>
tls: separate no-async decryption request handling from async
Sabrina Dubroca <sd@queasysnail.net>
tls: fix peeking with sync+async decryption
Sabrina Dubroca <sd@queasysnail.net>
tls: decrement decrypt_pending if no async completion will be called
Lukasz Majewski <lukma@denx.de>
net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
Oleksij Rempel <o.rempel@pengutronix.de>
igb: extend PTP timestamp adjustments to i211
Lin Ma <linma@zju.edu.cn>
rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
Jakub Kicinski <kuba@kernel.org>
tools: ynl: fix handling of multiple mcast groups
Florian Westphal <fw@strlen.de>
netfilter: bridge: confirm multicast packets before passing them up the stack
Ignat Korchagin <ignat@cloudflare.com>
netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
Zijun Hu <quic_zijuhu@quicinc.com>
Bluetooth: qca: Fix triggering coredump implementation
Janaki Ramaiah Thota <quic_janathot@quicinc.com>
Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
Zijun Hu <quic_zijuhu@quicinc.com>
Bluetooth: qca: Fix wrong event type for patch config command
Kai-Heng Feng <kai.heng.feng@canonical.com>
Bluetooth: Enforce validation on max value of connection interval
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
Zijun Hu <quic_zijuhu@quicinc.com>
Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: hci_sync: Fix accept_list when attempting to suspend
Ying Hsu <yinghsu@chromium.org>
Bluetooth: Avoid potential use-after-free in hci_error_reset
Jonas Dreßler <verdre@v0yd.nl>
Bluetooth: hci_sync: Check the correct flag before starting a scan
Jakub Raczynski <j.raczynski@samsung.com>
stmmac: Clear variable when destroying workqueue
Justin Iurman <justin.iurman@uliege.be>
uapi: in6: replace temporary label with rfc9486
Oleksij Rempel <o.rempel@pengutronix.de>
net: lan78xx: fix "softirq work is pending" error
Javier Carrasco <javier.carrasco.cruz@gmail.com>
net: usb: dm9601: fix wrong return value in dm9601_mdio_read
Jakub Kicinski <kuba@kernel.org>
veth: try harder when allocating queue memory
Oleksij Rempel <o.rempel@pengutronix.de>
lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
Eric Dumazet <edumazet@google.com>
ipv6: fix potential "struct net" leak in inet6_rtm_getaddr()
Jakub Kicinski <kuba@kernel.org>
net: veth: clear GRO when clearing XDP even when down
Doug Smythies <dsmythies@telus.net>
cpufreq: intel_pstate: fix pstate limits enforcement for adjust_perf call back
Yunjian Wang <wangyunjian@huawei.com>
tun: Fix xdp_rxq_info's queue_index when detaching
Vladimir Oltean <vladimir.oltean@nxp.com>
net: dpaa: fman_memac: accept phy-interface-type = "10gbase-r" in the device tree
Jeremy Kerr <jk@codeconstruct.com.au>
net: mctp: take ownership of skb in mctp_local_output
Florian Westphal <fw@strlen.de>
net: ip_tunnel: prevent perpetual headroom growth
Florian Westphal <fw@strlen.de>
netlink: add nla be16/32 types to minlen array
Ryosuke Yasuoka <ryasuoka@redhat.com>
netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter
Théo Lebrun <theo.lebrun@bootlin.com>
spi: cadence-qspi: remove system-wide suspend helper calls from runtime PM hooks
Théo Lebrun <theo.lebrun@bootlin.com>
spi: cadence-qspi: fix pointer reference in runtime PM hooks
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
ice: fix pin phase adjust updates on PF reset
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
ice: fix dpll periodic work data updates on PF reset
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
ice: fix dpll and dpll_pin data access on PF reset
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
ice: fix dpll input pin phase_adjust value updates
Yochai Hagvi <yochai.hagvi@intel.com>
ice: fix connection state of DPLL and out pin
Han Xu <han.xu@nxp.com>
mtd: spinand: gigadevice: Fix the get ecc status issue
Josef Bacik <josef@toxicpanda.com>
btrfs: fix deadlock with fiemap and extent locking
-------------
Diffstat:
Documentation/arch/x86/mds.rst | 34 +++-
Makefile | 4 +-
arch/arm64/crypto/aes-neonbs-glue.c | 11 ++
arch/powerpc/include/asm/rtas.h | 4 +-
arch/powerpc/kernel/rtas.c | 9 +-
arch/powerpc/platforms/pseries/iommu.c | 156 +++++++++++------
arch/riscv/Kconfig | 1 -
arch/riscv/include/asm/csr.h | 2 +
arch/riscv/include/asm/ftrace.h | 5 +
arch/riscv/include/asm/hugetlb.h | 2 +
arch/riscv/include/asm/hwcap.h | 2 +
arch/riscv/include/asm/pgalloc.h | 20 ++-
arch/riscv/include/asm/pgtable-64.h | 2 +-
arch/riscv/include/asm/pgtable.h | 6 +-
arch/riscv/include/asm/suspend.h | 1 +
arch/riscv/include/asm/vmalloc.h | 61 +------
arch/riscv/kernel/Makefile | 2 +
arch/riscv/kernel/cpufeature.c | 31 +++-
arch/riscv/kernel/return_address.c | 48 +++++
arch/riscv/kernel/suspend.c | 4 +
arch/riscv/mm/hugetlbpage.c | 2 +
arch/x86/entry/entry_32.S | 3 +
arch/x86/entry/entry_64.S | 11 ++
arch/x86/entry/entry_64_compat.S | 1 +
arch/x86/include/asm/entry-common.h | 1 -
arch/x86/include/asm/nospec-branch.h | 12 --
arch/x86/kernel/cpu/bugs.c | 15 +-
arch/x86/kernel/cpu/common.c | 4 +-
arch/x86/kernel/cpu/intel.c | 178 ++++++++++---------
arch/x86/kernel/e820.c | 8 +-
arch/x86/kernel/nmi.c | 3 -
arch/x86/kvm/vmx/run_flags.h | 7 +-
arch/x86/kvm/vmx/vmenter.S | 9 +-
arch/x86/kvm/vmx/vmx.c | 20 ++-
drivers/bluetooth/btqca.c | 2 +-
drivers/bluetooth/hci_bcm4377.c | 3 +-
drivers/bluetooth/hci_qca.c | 22 ++-
drivers/cpufreq/intel_pstate.c | 3 +
drivers/dma/dw-edma/dw-edma-v0-core.c | 17 ++
drivers/dma/dw-edma/dw-hdma-v0-core.c | 39 +++--
drivers/dma/dw-edma/dw-hdma-v0-regs.h | 2 +-
drivers/dma/fsl-edma-common.c | 2 +-
drivers/dma/fsl-qdma.c | 25 +--
drivers/dma/idxd/cdev.c | 2 +-
drivers/dma/idxd/debugfs.c | 2 +-
drivers/dma/idxd/idxd.h | 1 -
drivers/dma/idxd/init.c | 15 +-
drivers/dma/idxd/irq.c | 3 +-
drivers/dma/ptdma/ptdma-dmaengine.c | 2 -
drivers/firmware/efi/capsule-loader.c | 2 +-
drivers/gpio/gpio-74x164.c | 4 +-
drivers/gpio/gpiolib.c | 12 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 6 +-
drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c | 5 +
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 29 +++
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 9 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 9 +-
.../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 9 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 9 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 9 +-
drivers/gpu/drm/drm_buddy.c | 10 ++
drivers/gpu/drm/nouveau/nouveau_drm.c | 5 +-
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c | 4 +-
drivers/gpu/drm/tegra/drm.c | 23 ++-
drivers/gpu/host1x/dev.c | 15 +-
drivers/gpu/host1x/dev.h | 6 +
drivers/iommu/iommufd/io_pagetable.c | 9 +-
drivers/iommu/iommufd/selftest.c | 27 ++-
drivers/mfd/twl6030-irq.c | 10 +-
drivers/mmc/core/mmc.c | 2 +
drivers/mmc/host/mmci_stm32_sdmmc.c | 24 +++
drivers/mmc/host/sdhci-xenon-phy.c | 48 ++++-
drivers/mtd/nand/raw/marvell_nand.c | 13 +-
drivers/mtd/nand/spi/gigadevice.c | 6 +-
drivers/net/ethernet/freescale/fman/fman_memac.c | 18 +-
drivers/net/ethernet/intel/ice/ice_dpll.c | 91 ++++++++--
drivers/net/ethernet/intel/igb/igb_ptp.c | 5 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +-
drivers/net/gtp.c | 12 +-
drivers/net/tun.c | 1 +
drivers/net/usb/dm9601.c | 2 +-
drivers/net/usb/lan78xx.c | 5 +-
drivers/net/veth.c | 40 ++---
drivers/of/property.c | 2 +-
drivers/perf/riscv_pmu.c | 18 +-
drivers/perf/riscv_pmu_legacy.c | 10 +-
drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c | 2 +-
drivers/phy/qualcomm/phy-qcom-m31.c | 2 +-
drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 10 +-
drivers/pmdomain/arm/scmi_perf_domain.c | 3 +
drivers/pmdomain/qcom/rpmhpd.c | 7 +-
drivers/power/supply/Kconfig | 1 +
drivers/power/supply/bq27xxx_battery_i2c.c | 4 +-
drivers/soc/qcom/pmic_glink.c | 21 +--
drivers/spi/spi-cadence-quadspi.c | 11 +-
drivers/video/fbdev/core/fbcon.c | 8 +-
fs/afs/dir.c | 4 +-
fs/btrfs/dev-replace.c | 24 ++-
fs/btrfs/disk-io.c | 22 +--
fs/btrfs/disk-io.h | 2 +-
fs/btrfs/extent_io.c | 165 ++++++++++++++---
fs/btrfs/ioctl.c | 2 +-
fs/btrfs/send.c | 17 +-
fs/btrfs/transaction.c | 2 +-
fs/ceph/mdsmap.c | 7 +-
fs/ceph/mdsmap.h | 6 +-
fs/efivarfs/vars.c | 17 +-
fs/nfs/write.c | 4 +-
include/linux/bvec.h | 2 +-
include/linux/netfilter.h | 1 +
include/net/mctp.h | 1 +
include/sound/soc-card.h | 2 +
include/uapi/linux/in6.h | 2 +-
kernel/trace/fprobe.c | 14 +-
lib/nlattr.c | 4 +
mm/debug_vm_pgtable.c | 8 +
mm/filemap.c | 51 +++---
mm/migrate.c | 8 +
net/bluetooth/hci_core.c | 7 +-
net/bluetooth/hci_event.c | 13 +-
net/bluetooth/hci_sync.c | 7 +-
net/bluetooth/l2cap_core.c | 8 +-
net/bridge/br_netfilter_hooks.c | 96 ++++++++++
net/bridge/netfilter/nf_conntrack_bridge.c | 30 ++++
net/core/rtnetlink.c | 11 +-
net/hsr/hsr_forward.c | 2 +-
net/ipv4/ip_tunnel.c | 28 ++-
net/ipv6/addrconf.c | 7 +-
net/mctp/route.c | 10 +-
net/mptcp/diag.c | 3 +
net/mptcp/options.c | 2 +-
net/mptcp/pm_userspace.c | 10 ++
net/mptcp/protocol.c | 52 +++++-
net/mptcp/protocol.h | 21 +--
net/netfilter/nf_conntrack_core.c | 1 +
net/netfilter/nft_compat.c | 20 +++
net/netlink/af_netlink.c | 2 +-
net/tls/tls_sw.c | 40 +++--
net/unix/garbage.c | 21 +--
net/wireless/nl80211.c | 2 +
scripts/Kconfig.include | 2 +-
scripts/Makefile.compiler | 2 +-
security/landlock/fs.c | 4 +-
security/tomoyo/common.c | 3 +-
sound/core/Makefile | 1 -
sound/core/ump.c | 4 +-
sound/firewire/amdtp-stream.c | 2 +-
sound/pci/hda/patch_realtek.c | 33 +++-
sound/soc/codecs/cs35l45.c | 2 +-
sound/soc/codecs/cs35l56-shared.c | 8 +-
sound/soc/codecs/cs35l56.c | 195 ++++++++++++++++++---
sound/soc/codecs/cs35l56.h | 1 +
sound/soc/fsl/fsl_xcvr.c | 12 +-
sound/soc/qcom/lpass-cdc-dma.c | 2 +-
sound/soc/soc-card.c | 24 ++-
tools/net/ynl/lib/ynl.c | 1 +
tools/testing/selftests/net/mptcp/mptcp_connect.sh | 16 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh | 192 ++++++++++++--------
tools/testing/selftests/net/mptcp/mptcp_lib.sh | 15 ++
tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 8 +-
tools/testing/selftests/net/mptcp/userspace_pm.sh | 86 +++++----
161 files changed, 1941 insertions(+), 831 deletions(-)
^ permalink raw reply [relevance 1%]
* [PATCH v3 02/10] mm/ppc: Replace pXd_is_leaf() with pXd_leaf()
@ 2024-03-05 4:37 5% ` peterx
0 siblings, 0 replies; 200+ results
From: peterx @ 2024-03-05 4:37 UTC (permalink / raw)
To: linux-mm, linux-kernel
Cc: Muchun Song, Yang Shi, x86, Nicholas Piggin, peterx,
Aneesh Kumar K.V, Jason Gunthorpe, Naveen N. Rao,
Kirill A . Shutemov, Andrew Morton, linuxppc-dev
From: Peter Xu <peterx@redhat.com>
They're the same macros underneath. Drop pXd_is_leaf(), instead always use
pXd_leaf().
At the meantime, instead of renames, drop the pXd_is_leaf() fallback
definitions directly in arch/powerpc/include/asm/pgtable.h. because similar
fallback macros for pXd_leaf() are already defined in
include/linux/pgtable.h.
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>
Cc: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
Cc: linuxppc-dev@lists.ozlabs.org
Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
---
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
arch/powerpc/include/asm/pgtable.h | 24 --------------------
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
arch/powerpc/mm/pgtable.c | 6 ++---
arch/powerpc/mm/pgtable_64.c | 6 ++---
arch/powerpc/xmon/xmon.c | 6 ++---
7 files changed, 26 insertions(+), 52 deletions(-)
diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
index d1318e8582ac..3e99e409774a 100644
--- a/arch/powerpc/include/asm/book3s/64/pgtable.h
+++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -1439,18 +1439,16 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
/*
* Like pmd_huge() and pmd_large(), but works regardless of config options
*/
-#define pmd_is_leaf pmd_is_leaf
-#define pmd_leaf pmd_is_leaf
+#define pmd_leaf pmd_leaf
#define pmd_large pmd_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
+static inline bool pmd_leaf(pmd_t pmd)
{
return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
}
-#define pud_is_leaf pud_is_leaf
-#define pud_leaf pud_is_leaf
+#define pud_leaf pud_leaf
#define pud_large pud_leaf
-static inline bool pud_is_leaf(pud_t pud)
+static inline bool pud_leaf(pud_t pud)
{
return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
}
diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index 5928b3c1458d..e6edf1cdbc5b 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h
@@ -182,30 +182,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
}
#endif
-#ifndef pmd_is_leaf
-#define pmd_is_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
-{
- return false;
-}
-#endif
-
-#ifndef pud_is_leaf
-#define pud_is_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
-{
- return false;
-}
-#endif
-
-#ifndef p4d_is_leaf
-#define p4d_is_leaf p4d_is_leaf
-static inline bool p4d_is_leaf(p4d_t p4d)
-{
- return false;
-}
-#endif
-
#define pmd_pgtable pmd_pgtable
static inline pgtable_t pmd_pgtable(pmd_t pmd)
{
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 4a1abb9f7c05..408d98f8a514 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index c6a4ac766b2b..1f8db10693e3 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (IS_ALIGNED(addr, PMD_SIZE) &&
IS_ALIGNED(next, PMD_SIZE)) {
if (!direct)
@@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1554,7 +1554,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1601,7 +1601,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index 549a440ed7f6..9e7ba9c3851f 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -410,7 +410,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -432,7 +432,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -471,7 +471,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 1b366526f4f2..386c6b06eab7 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index b3b94cd37713..9669c9925225 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
--
2.44.0
^ permalink raw reply related [relevance 5%]
* [PATCH v3 02/10] mm/ppc: Replace pXd_is_leaf() with pXd_leaf()
@ 2024-03-05 4:37 5% ` peterx
0 siblings, 0 replies; 200+ results
From: peterx @ 2024-03-05 4:37 UTC (permalink / raw)
To: linux-mm, linux-kernel
Cc: Christophe Leroy, x86, Kirill A . Shutemov, Jason Gunthorpe,
Yang Shi, peterx, Andrew Morton, linuxppc-dev, Muchun Song,
Michael Ellerman, Nicholas Piggin, Aneesh Kumar K.V,
Naveen N. Rao
From: Peter Xu <peterx@redhat.com>
They're the same macros underneath. Drop pXd_is_leaf(), instead always use
pXd_leaf().
At the meantime, instead of renames, drop the pXd_is_leaf() fallback
definitions directly in arch/powerpc/include/asm/pgtable.h. because similar
fallback macros for pXd_leaf() are already defined in
include/linux/pgtable.h.
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>
Cc: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
Cc: linuxppc-dev@lists.ozlabs.org
Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
---
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
arch/powerpc/include/asm/pgtable.h | 24 --------------------
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
arch/powerpc/mm/pgtable.c | 6 ++---
arch/powerpc/mm/pgtable_64.c | 6 ++---
arch/powerpc/xmon/xmon.c | 6 ++---
7 files changed, 26 insertions(+), 52 deletions(-)
diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
index d1318e8582ac..3e99e409774a 100644
--- a/arch/powerpc/include/asm/book3s/64/pgtable.h
+++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -1439,18 +1439,16 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
/*
* Like pmd_huge() and pmd_large(), but works regardless of config options
*/
-#define pmd_is_leaf pmd_is_leaf
-#define pmd_leaf pmd_is_leaf
+#define pmd_leaf pmd_leaf
#define pmd_large pmd_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
+static inline bool pmd_leaf(pmd_t pmd)
{
return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
}
-#define pud_is_leaf pud_is_leaf
-#define pud_leaf pud_is_leaf
+#define pud_leaf pud_leaf
#define pud_large pud_leaf
-static inline bool pud_is_leaf(pud_t pud)
+static inline bool pud_leaf(pud_t pud)
{
return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
}
diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index 5928b3c1458d..e6edf1cdbc5b 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h
@@ -182,30 +182,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
}
#endif
-#ifndef pmd_is_leaf
-#define pmd_is_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
-{
- return false;
-}
-#endif
-
-#ifndef pud_is_leaf
-#define pud_is_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
-{
- return false;
-}
-#endif
-
-#ifndef p4d_is_leaf
-#define p4d_is_leaf p4d_is_leaf
-static inline bool p4d_is_leaf(p4d_t p4d)
-{
- return false;
-}
-#endif
-
#define pmd_pgtable pmd_pgtable
static inline pgtable_t pmd_pgtable(pmd_t pmd)
{
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 4a1abb9f7c05..408d98f8a514 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index c6a4ac766b2b..1f8db10693e3 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (IS_ALIGNED(addr, PMD_SIZE) &&
IS_ALIGNED(next, PMD_SIZE)) {
if (!direct)
@@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1554,7 +1554,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1601,7 +1601,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index 549a440ed7f6..9e7ba9c3851f 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -410,7 +410,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -432,7 +432,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -471,7 +471,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 1b366526f4f2..386c6b06eab7 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index b3b94cd37713..9669c9925225 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
--
2.44.0
^ permalink raw reply related [relevance 5%]
* [PATCH 6.6 063/143] Revert "riscv: mm: support Svnapot in huge vmap"
2024-03-04 21:22 1% [PATCH 6.6 000/143] 6.6.21-rc1 review Greg Kroah-Hartman
@ 2024-03-04 21:23 11% ` Greg Kroah-Hartman
0 siblings, 0 replies; 200+ results
From: Greg Kroah-Hartman @ 2024-03-04 21:23 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Alexandre Ghiti, Palmer Dabbelt,
Sasha Levin
6.6-stable review patch. If anyone has any objections, please let me know.
------------------
From: Alexandre Ghiti <alexghiti@rivosinc.com>
[ Upstream commit 16ab4646c9057e0528b985ad772e3cb88c613db2 ]
This reverts commit ce173474cf19fe7fbe8f0fc74e3c81ec9c3d9807.
We cannot correctly deal with NAPOT mappings in vmalloc/vmap because if
some part of a NAPOT mapping is unmapped, the remaining mapping is not
updated accordingly. For example:
ptr = vmalloc_huge(64 * 1024, GFP_KERNEL);
vunmap_range((unsigned long)(ptr + PAGE_SIZE),
(unsigned long)(ptr + 64 * 1024));
leads to the following kernel page table dump:
0xffff8f8000ef0000-0xffff8f8000ef1000 0x00000001033c0000 4K PTE N .. .. D A G . . W R V
Meaning the first entry which was not unmapped still has the N bit set,
which, if accessed first and cached in the TLB, could allow access to the
unmapped range.
That's because the logic to break the NAPOT mapping does not exist and
likely won't. Indeed, to break a NAPOT mapping, we first have to clear
the whole mapping, flush the TLB and then set the new mapping ("break-
before-make" equivalent). That works fine in userspace since we can handle
any pagefault occurring on the remaining mapping but we can't handle a kernel
pagefault on such mapping.
So fix this by reverting the commit that introduced the vmap/vmalloc
support.
Fixes: ce173474cf19 ("riscv: mm: support Svnapot in huge vmap")
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20240227205016.121901-2-alexghiti@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/riscv/include/asm/vmalloc.h | 61 +-------------------------------
1 file changed, 1 insertion(+), 60 deletions(-)
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 924d01b56c9a1..51f6dfe19745a 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -19,65 +19,6 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#ifdef CONFIG_RISCV_ISA_SVNAPOT
-#include <linux/pgtable.h>
+#endif
-#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
-static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
- u64 pfn, unsigned int max_page_shift)
-{
- unsigned long map_size = PAGE_SIZE;
- unsigned long size, order;
-
- if (!has_svnapot())
- return map_size;
-
- for_each_napot_order_rev(order) {
- if (napot_cont_shift(order) > max_page_shift)
- continue;
-
- size = napot_cont_size(order);
- if (end - addr < size)
- continue;
-
- if (!IS_ALIGNED(addr, size))
- continue;
-
- if (!IS_ALIGNED(PFN_PHYS(pfn), size))
- continue;
-
- map_size = size;
- break;
- }
-
- return map_size;
-}
-
-#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
-static inline int arch_vmap_pte_supported_shift(unsigned long size)
-{
- int shift = PAGE_SHIFT;
- unsigned long order;
-
- if (!has_svnapot())
- return shift;
-
- WARN_ON_ONCE(size >= PMD_SIZE);
-
- for_each_napot_order_rev(order) {
- if (napot_cont_size(order) > size)
- continue;
-
- if (!IS_ALIGNED(size, napot_cont_size(order)))
- continue;
-
- shift = napot_cont_shift(order);
- break;
- }
-
- return shift;
-}
-
-#endif /* CONFIG_RISCV_ISA_SVNAPOT */
-#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.43.0
^ permalink raw reply related [relevance 11%]
* [PATCH 6.6 000/143] 6.6.21-rc1 review
@ 2024-03-04 21:22 1% Greg Kroah-Hartman
2024-03-04 21:23 11% ` [PATCH 6.6 063/143] Revert "riscv: mm: support Svnapot in huge vmap" Greg Kroah-Hartman
0 siblings, 1 reply; 200+ results
From: Greg Kroah-Hartman @ 2024-03-04 21:22 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, linux-kernel, torvalds, akpm, linux,
shuah, patches, lkft-triage, pavel, jonathanh, f.fainelli,
sudipm.mukherjee, srw, rwarsow, conor, allen.lkml
This is the start of the stable review cycle for the 6.6.21 release.
There are 143 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Wed, 06 Mar 2024 21:15:26 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.6.21-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.6.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Linux 6.6.21-rc1
Danilo Krummrich <dakr@redhat.com>
drm/nouveau: don't fini scheduler before entity flush
Geliang Tang <tanggeliang@kylinos.cn>
selftests: mptcp: rm subflow with v4/v4mapped addr
Geliang Tang <geliang.tang@suse.com>
selftests: mptcp: add mptcp_lib_is_v6
Geliang Tang <geliang.tang@suse.com>
selftests: mptcp: update userspace pm test helpers
Geliang Tang <geliang.tang@suse.com>
selftests: mptcp: add chk_subflows_total helper
Geliang Tang <geliang.tang@suse.com>
selftests: mptcp: add evts_get_info helper
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
KVM/VMX: Move VERW closer to VMentry for MDS mitigation
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
x86/bugs: Use ALTERNATIVE() instead of mds_user_clear static key
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
x86/entry_32: Add VERW just before userspace transition
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
x86/entry_64: Add VERW just before userspace transition
Ming Lei <ming.lei@redhat.com>
block: define bvec_iter as __packed __aligned(4)
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
gpio: fix resource unwinding order in error path
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
gpiolib: Fix the error path order in gpiochip_add_data_with_key()
Arturas Moskvinas <arturas.moskvinas@gmail.com>
gpio: 74x164: Enable output pins after registers are reset
Nathan Lynch <nathanl@linux.ibm.com>
powerpc/rtas: use correct function name for resetting TCE tables
Gaurav Batra <gbatra@linux.vnet.ibm.com>
powerpc/pseries/iommu: IOMMU table is not initialized for kdump over SR-IOV
Fenghua Yu <fenghua.yu@intel.com>
dmaengine: idxd: Ensure safe user copy of completion record
Fenghua Yu <fenghua.yu@intel.com>
dmaengine: idxd: Remove shadow Event Log head stored in idxd
Alexander Stein <alexander.stein@ew.tq-group.com>
phy: freescale: phy-fsl-imx8-mipi-dphy: Fix alias name to use dashes
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: HDMA: Add sync read before starting the DMA transfer in remote setup
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: Add HDMA remote interrupt configuration
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: HDMA_V0_REMOTEL_STOP_INT_EN typo fix
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: Fix wrong interrupt bit set for HDMA
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: Fix the ch_count hdma callback
Dan Carpenter <dan.carpenter@linaro.org>
ASoC: cs35l56: fix reversed if statement in cs35l56_dspwait_asp1tx_put()
Kuniyuki Iwashima <kuniyu@amazon.com>
af_unix: Drop oob_skb ref before purging queue in GC.
Kuniyuki Iwashima <kuniyu@amazon.com>
af_unix: Fix task hung while purging oob_skb in GC.
NeilBrown <neilb@suse.de>
NFS: Fix data corruption caused by congestion.
Paolo Abeni <pabeni@redhat.com>
mptcp: fix possible deadlock in subflow diag
Davide Caratti <dcaratti@redhat.com>
mptcp: fix double-free on socket dismantle
Paolo Abeni <pabeni@redhat.com>
mptcp: fix potential wake-up event loss
Paolo Abeni <pabeni@redhat.com>
mptcp: fix snd_wnd initialization for passive socket
Geliang Tang <tanggeliang@kylinos.cn>
selftests: mptcp: join: add ss mptcp support check
Paolo Abeni <pabeni@redhat.com>
mptcp: push at DSS boundaries
Matthieu Baerts (NGI0) <matttbe@kernel.org>
mptcp: avoid printing warning once on client side
Geliang Tang <tanggeliang@kylinos.cn>
mptcp: map v4 address to v6 when destroying subflow
Paolo Bonzini <pbonzini@redhat.com>
x86/cpu/intel: Detect TME keyid bits before setting MTRR mask registers
Jiri Bohac <jbohac@suse.cz>
x86/e820: Don't reserve SETUP_RNG_SEED in e820
Aneesh Kumar K.V (IBM) <aneesh.kumar@kernel.org>
mm/debug_vm_pgtable: fix BUG_ON with pud advanced test
Bjorn Andersson <quic_bjorande@quicinc.com>
pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation
Tim Schumacher <timschumi@gmx.de>
efivarfs: Request at most 512 bytes for variable names
Nicolin Chen <nicolinc@nvidia.com>
iommufd: Fix iopt_access_list_id overwrite bug
Nathan Chancellor <nathan@kernel.org>
kbuild: Add -Wa,--fatal-warnings to as-instr invocation
Zong Li <zong.li@sifive.com>
riscv: add CALLER_ADDRx support
Nathan Chancellor <nathan@kernel.org>
RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
Elad Nachman <enachman@marvell.com>
mmc: sdhci-xenon: fix PHY init clock stability
Elad Nachman <enachman@marvell.com>
mmc: sdhci-xenon: add timeout for PHY init complete
Ivan Semenov <ivan@semenov.dev>
mmc: core: Fix eMMC initialization with 1-bit bus connection
Christophe Kerello <christophe.kerello@foss.st.com>
mmc: mmci: stm32: fix DMA API overlapping mappings warning
Curtis Klein <curtis.klein@hpe.com>
dmaengine: fsl-qdma: init irq after reg initialization
Joy Zou <joy.zou@nxp.com>
dmaengine: fsl-edma: correct calculation of 'nbytes' in multi-fifo scenario
Tadeusz Struk <tstruk@gigaio.com>
dmaengine: ptdma: use consistent DMA masks
Ard Biesheuvel <ardb@kernel.org>
crypto: arm64/neonbs - fix out-of-bounds access on short input
Peng Ma <peng.ma@nxp.com>
dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
Rob Clark <robdclark@chromium.org>
soc: qcom: pmic_glink: Fix boot when QRTR=m
Ryan Lin <tsung-hua.lin@amd.com>
drm/amd/display: Add monitor patch for specific eDP
Matthew Auld <matthew.auld@intel.com>
drm/buddy: fix range bias
Alex Deucher <alexander.deucher@amd.com>
Revert "drm/amd/pm: resolve reboot exception for si oland"
Filipe Manana <fdmanana@suse.com>
btrfs: send: don't issue unnecessary zero writes for trailing hole
David Sterba <dsterba@suse.com>
btrfs: dev-replace: properly validate device names
Filipe Manana <fdmanana@suse.com>
btrfs: fix double free of anonymous device after snapshot creation failure
Johannes Berg <johannes.berg@intel.com>
wifi: nl80211: reject iftype change with mesh ID change
Elad Nachman <enachman@marvell.com>
mtd: rawnand: marvell: fix layouts
Nhat Pham <nphamcs@gmail.com>
mm: cachestat: fix folio read-after-free in cache walk
Alexander Ofitserov <oficerovas@altlinux.org>
gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
Mickaël Salaün <mic@digikod.net>
landlock: Fix asymmetric private inodes referring
Johan Hovold <johan+linaro@kernel.org>
Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid
Willian Wang <git@willian.wang>
ALSA: hda/realtek: Add special fixup for Lenovo 14IRP8
Eniac Zhang <eniac-xw.zhang@hp.com>
ALSA: hda/realtek: fix mute/micmute LED For HP mt440
Hans Peter <flurry123@gmx.ch>
ALSA: hda/realtek: Enable Mute LED on HP 840 G8 (MB 8AB8)
Gergo Koteles <soyer@irl.hu>
ALSA: hda/realtek: tas2781: enable subwoofer volume control
Takashi Iwai <tiwai@suse.de>
ALSA: ump: Fix the discard error code from snd_ump_legacy_open()
Takashi Sakamoto <o-takashi@sakamocchi.jp>
ALSA: firewire-lib: fix to check cycle continuity
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
tomoyo: fix UAF write bug in tomoyo_write_control()
Saravana Kannan <saravanak@google.com>
of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing
Filipe Manana <fdmanana@suse.com>
btrfs: fix race between ordered extent completion and fiemap
Dimitris Vlachos <dvlachos@ics.forth.gr>
riscv: Sparse-Memory/vmemmap out-of-bounds fix
Alexandre Ghiti <alexghiti@rivosinc.com>
riscv: Fix pte_leaf_size() for NAPOT
Alexandre Ghiti <alexghiti@rivosinc.com>
Revert "riscv: mm: support Svnapot in huge vmap"
Vadim Shakirov <vadim.shakirov@syntacore.com>
drivers: perf: ctr_get_width function for legacy is not defined
Vadim Shakirov <vadim.shakirov@syntacore.com>
drivers: perf: added capabilities for legacy PMU
David Howells <dhowells@redhat.com>
afs: Fix endless loop in directory parsing
Jiri Slaby (SUSE) <jirislaby@kernel.org>
fbcon: always restore the old font data in fbcon_do_set_font()
Thierry Reding <treding@nvidia.com>
drm/tegra: Remove existing framebuffer only if we support display
Conor Dooley <conor@kernel.org>
RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: soc-card: Fix missing locking in snd_soc_card_get_kcontrol()
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Fix deadlock in ASP1 mixer register initialization
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Fix misuse of wm_adsp 'part' string for silicon revision
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Fix for initializing ASP1 mixer registers
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Don't add the same register patch multiple times
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: cs35l56_component_remove() must clean up wm_adsp
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: cs35l56_component_remove() must clear cs35l56->component
Alexandre Ghiti <alexghiti@rivosinc.com>
riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
Colin Ian King <colin.i.king@gmail.com>
ASoC: qcom: Fix uninitialized pointer dmactl
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
ASoC: qcom: convert not to use asoc_xxx()
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
ASoC: soc.h: convert asoc_xxx() to snd_soc_xxx()
Takashi Iwai <tiwai@suse.de>
ALSA: Drop leftover snd-rtctimer stuff from Makefile
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Must clear HALO_STATE before issuing SYSTEM_RESET
Hans de Goede <hdegoede@redhat.com>
power: supply: bq27xxx-i2c: Do not free non existing IRQ
Arnd Bergmann <arnd@arndb.de>
efi/capsule-loader: fix incorrect allocation size
Sabrina Dubroca <sd@queasysnail.net>
tls: fix use-after-free on failed backlog decryption
Sabrina Dubroca <sd@queasysnail.net>
tls: separate no-async decryption request handling from async
Sabrina Dubroca <sd@queasysnail.net>
tls: fix peeking with sync+async decryption
Sabrina Dubroca <sd@queasysnail.net>
tls: decrement decrypt_pending if no async completion will be called
Lukasz Majewski <lukma@denx.de>
net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
Oleksij Rempel <o.rempel@pengutronix.de>
igb: extend PTP timestamp adjustments to i211
Lin Ma <linma@zju.edu.cn>
rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
Jakub Kicinski <kuba@kernel.org>
tools: ynl: fix handling of multiple mcast groups
Florian Westphal <fw@strlen.de>
netfilter: bridge: confirm multicast packets before passing them up the stack
Ignat Korchagin <ignat@cloudflare.com>
netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
Zijun Hu <quic_zijuhu@quicinc.com>
Bluetooth: qca: Fix triggering coredump implementation
Janaki Ramaiah Thota <quic_janathot@quicinc.com>
Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
Zijun Hu <quic_zijuhu@quicinc.com>
Bluetooth: qca: Fix wrong event type for patch config command
Kai-Heng Feng <kai.heng.feng@canonical.com>
Bluetooth: Enforce validation on max value of connection interval
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
Zijun Hu <quic_zijuhu@quicinc.com>
Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: hci_sync: Fix accept_list when attempting to suspend
Ying Hsu <yinghsu@chromium.org>
Bluetooth: Avoid potential use-after-free in hci_error_reset
Jonas Dreßler <verdre@v0yd.nl>
Bluetooth: hci_sync: Check the correct flag before starting a scan
Jakub Raczynski <j.raczynski@samsung.com>
stmmac: Clear variable when destroying workqueue
Justin Iurman <justin.iurman@uliege.be>
uapi: in6: replace temporary label with rfc9486
Oleksij Rempel <o.rempel@pengutronix.de>
net: lan78xx: fix "softirq work is pending" error
Javier Carrasco <javier.carrasco.cruz@gmail.com>
net: usb: dm9601: fix wrong return value in dm9601_mdio_read
Jakub Kicinski <kuba@kernel.org>
veth: try harder when allocating queue memory
Oleksij Rempel <o.rempel@pengutronix.de>
lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
Eric Dumazet <edumazet@google.com>
ipv6: fix potential "struct net" leak in inet6_rtm_getaddr()
Jakub Kicinski <kuba@kernel.org>
net: veth: clear GRO when clearing XDP even when down
Doug Smythies <dsmythies@telus.net>
cpufreq: intel_pstate: fix pstate limits enforcement for adjust_perf call back
Yunjian Wang <wangyunjian@huawei.com>
tun: Fix xdp_rxq_info's queue_index when detaching
Vladimir Oltean <vladimir.oltean@nxp.com>
net: dpaa: fman_memac: accept phy-interface-type = "10gbase-r" in the device tree
Jeremy Kerr <jk@codeconstruct.com.au>
net: mctp: take ownership of skb in mctp_local_output
Florian Westphal <fw@strlen.de>
net: ip_tunnel: prevent perpetual headroom growth
Florian Westphal <fw@strlen.de>
netlink: add nla be16/32 types to minlen array
Ryosuke Yasuoka <ryasuoka@redhat.com>
netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter
Théo Lebrun <theo.lebrun@bootlin.com>
spi: cadence-qspi: fix pointer reference in runtime PM hooks
Han Xu <han.xu@nxp.com>
mtd: spinand: gigadevice: Fix the get ecc status issue
Ming Lei <ming.lei@redhat.com>
ublk: move ublk_cancel_dev() out of ub->mutex
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: fix wrong allocation size update in smb2_open()
Linus Walleij <linus.walleij@linaro.org>
ASoC: cs35l34: Fix GPIO name and drop legacy include
Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
ubifs: fix possible dereference after free
Josef Bacik <josef@toxicpanda.com>
btrfs: fix deadlock with fiemap and extent locking
-------------
Diffstat:
Documentation/arch/x86/mds.rst | 34 +++-
Makefile | 4 +-
arch/arm64/crypto/aes-neonbs-glue.c | 11 ++
arch/powerpc/include/asm/rtas.h | 4 +-
arch/powerpc/kernel/rtas.c | 9 +-
arch/powerpc/platforms/pseries/iommu.c | 156 +++++++++++------
arch/riscv/Kconfig | 1 -
arch/riscv/include/asm/ftrace.h | 5 +
arch/riscv/include/asm/hugetlb.h | 2 +
arch/riscv/include/asm/pgtable.h | 6 +-
arch/riscv/include/asm/vmalloc.h | 61 +------
arch/riscv/kernel/Makefile | 2 +
arch/riscv/kernel/cpufeature.c | 15 ++
arch/riscv/kernel/return_address.c | 48 +++++
arch/riscv/mm/hugetlbpage.c | 2 +
arch/x86/entry/entry_32.S | 3 +
arch/x86/entry/entry_64.S | 11 ++
arch/x86/entry/entry_64_compat.S | 1 +
arch/x86/include/asm/entry-common.h | 1 -
arch/x86/include/asm/nospec-branch.h | 12 --
arch/x86/kernel/cpu/bugs.c | 15 +-
arch/x86/kernel/cpu/intel.c | 178 ++++++++++---------
arch/x86/kernel/e820.c | 8 +-
arch/x86/kernel/nmi.c | 3 -
arch/x86/kvm/vmx/run_flags.h | 7 +-
arch/x86/kvm/vmx/vmenter.S | 9 +-
arch/x86/kvm/vmx/vmx.c | 20 ++-
drivers/block/ublk_drv.c | 40 +++--
drivers/bluetooth/btqca.c | 2 +-
drivers/bluetooth/hci_bcm4377.c | 3 +-
drivers/bluetooth/hci_qca.c | 22 ++-
drivers/cpufreq/intel_pstate.c | 3 +
drivers/dma/dw-edma/dw-edma-v0-core.c | 17 ++
drivers/dma/dw-edma/dw-hdma-v0-core.c | 39 +++--
drivers/dma/dw-edma/dw-hdma-v0-regs.h | 2 +-
drivers/dma/fsl-edma-common.c | 2 +-
drivers/dma/fsl-qdma.c | 25 +--
drivers/dma/idxd/cdev.c | 2 +-
drivers/dma/idxd/debugfs.c | 2 +-
drivers/dma/idxd/idxd.h | 1 -
drivers/dma/idxd/init.c | 15 +-
drivers/dma/idxd/irq.c | 3 +-
drivers/dma/ptdma/ptdma-dmaengine.c | 2 -
drivers/firmware/efi/capsule-loader.c | 2 +-
drivers/gpio/gpio-74x164.c | 4 +-
drivers/gpio/gpiolib.c | 12 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 6 +-
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 29 +++
drivers/gpu/drm/drm_buddy.c | 10 ++
drivers/gpu/drm/nouveau/nouveau_drm.c | 5 +-
drivers/gpu/drm/tegra/drm.c | 23 ++-
drivers/iommu/iommufd/io_pagetable.c | 9 +-
drivers/mmc/core/mmc.c | 2 +
drivers/mmc/host/mmci_stm32_sdmmc.c | 24 +++
drivers/mmc/host/sdhci-xenon-phy.c | 48 ++++-
drivers/mtd/nand/raw/marvell_nand.c | 13 +-
drivers/mtd/nand/spi/gigadevice.c | 6 +-
drivers/net/ethernet/freescale/fman/fman_memac.c | 18 +-
drivers/net/ethernet/intel/igb/igb_ptp.c | 5 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +-
drivers/net/gtp.c | 12 +-
drivers/net/tun.c | 1 +
drivers/net/usb/dm9601.c | 2 +-
drivers/net/usb/lan78xx.c | 5 +-
drivers/net/veth.c | 40 ++---
drivers/of/property.c | 2 +-
drivers/perf/riscv_pmu.c | 18 +-
drivers/perf/riscv_pmu_legacy.c | 10 +-
drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c | 2 +-
drivers/pmdomain/qcom/rpmhpd.c | 7 +-
drivers/power/supply/bq27xxx_battery_i2c.c | 4 +-
drivers/soc/qcom/pmic_glink.c | 21 +--
drivers/spi/spi-cadence-quadspi.c | 6 +-
drivers/video/fbdev/core/fbcon.c | 8 +-
fs/afs/dir.c | 4 +-
fs/btrfs/dev-replace.c | 24 ++-
fs/btrfs/disk-io.c | 22 +--
fs/btrfs/disk-io.h | 2 +-
fs/btrfs/extent_io.c | 165 ++++++++++++++---
fs/btrfs/ioctl.c | 2 +-
fs/btrfs/send.c | 17 +-
fs/btrfs/transaction.c | 2 +-
fs/efivarfs/vars.c | 17 +-
fs/nfs/write.c | 4 +-
fs/smb/server/smb2pdu.c | 36 ++--
fs/ubifs/tnc.c | 1 +
include/linux/bvec.h | 2 +-
include/linux/netfilter.h | 1 +
include/net/mctp.h | 1 +
include/sound/soc-card.h | 6 +-
include/sound/soc.h | 42 +++--
include/uapi/linux/in6.h | 2 +-
lib/nlattr.c | 4 +
mm/debug_vm_pgtable.c | 8 +
mm/filemap.c | 51 +++---
net/bluetooth/hci_core.c | 7 +-
net/bluetooth/hci_event.c | 13 +-
net/bluetooth/hci_sync.c | 7 +-
net/bluetooth/l2cap_core.c | 8 +-
net/bridge/br_netfilter_hooks.c | 96 ++++++++++
net/bridge/netfilter/nf_conntrack_bridge.c | 30 ++++
net/core/rtnetlink.c | 11 +-
net/hsr/hsr_forward.c | 2 +-
net/ipv4/ip_tunnel.c | 28 ++-
net/ipv6/addrconf.c | 7 +-
net/mctp/route.c | 10 +-
net/mptcp/diag.c | 3 +
net/mptcp/options.c | 2 +-
net/mptcp/pm_userspace.c | 10 ++
net/mptcp/protocol.c | 52 +++++-
net/mptcp/protocol.h | 21 +--
net/netfilter/nf_conntrack_core.c | 1 +
net/netfilter/nft_compat.c | 20 +++
net/netlink/af_netlink.c | 2 +-
net/tls/tls_sw.c | 40 +++--
net/unix/garbage.c | 21 +--
net/wireless/nl80211.c | 2 +
scripts/Kconfig.include | 2 +-
scripts/Makefile.compiler | 2 +-
security/landlock/fs.c | 4 +-
security/tomoyo/common.c | 3 +-
sound/core/Makefile | 1 -
sound/core/ump.c | 4 +-
sound/firewire/amdtp-stream.c | 2 +-
sound/pci/hda/patch_realtek.c | 32 +++-
sound/soc/codecs/cs35l34.c | 4 +-
sound/soc/codecs/cs35l56-shared.c | 8 +-
sound/soc/codecs/cs35l56.c | 195 ++++++++++++++++++---
sound/soc/codecs/cs35l56.h | 1 +
sound/soc/fsl/fsl_xcvr.c | 12 +-
sound/soc/qcom/apq8016_sbc.c | 8 +-
sound/soc/qcom/apq8096.c | 8 +-
sound/soc/qcom/common.c | 6 +-
sound/soc/qcom/lpass-cdc-dma.c | 18 +-
sound/soc/qcom/lpass-platform.c | 50 +++---
sound/soc/qcom/qdsp6/q6apm-dai.c | 4 +-
sound/soc/qcom/qdsp6/q6asm-dai.c | 10 +-
sound/soc/qcom/qdsp6/q6routing.c | 4 +-
sound/soc/qcom/sc7180.c | 18 +-
sound/soc/qcom/sc7280.c | 26 +--
sound/soc/qcom/sc8280xp.c | 8 +-
sound/soc/qcom/sdm845.c | 36 ++--
sound/soc/qcom/sdw.c | 6 +-
sound/soc/qcom/sm8250.c | 10 +-
sound/soc/qcom/storm.c | 4 +-
sound/soc/soc-card.c | 24 ++-
sound/soc/soc-utils.c | 4 +-
tools/net/ynl/lib/ynl.c | 1 +
tools/testing/selftests/net/mptcp/mptcp_connect.sh | 16 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh | 192 ++++++++++++--------
tools/testing/selftests/net/mptcp/mptcp_lib.sh | 15 ++
tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 8 +-
tools/testing/selftests/net/mptcp/userspace_pm.sh | 86 +++++----
153 files changed, 1900 insertions(+), 904 deletions(-)
^ permalink raw reply [relevance 1%]
* [PATCH 6.7 067/162] Revert "riscv: mm: support Svnapot in huge vmap"
2024-03-04 21:21 1% [PATCH 6.7 000/162] 6.7.9-rc1 review Greg Kroah-Hartman
@ 2024-03-04 21:22 11% ` Greg Kroah-Hartman
0 siblings, 0 replies; 200+ results
From: Greg Kroah-Hartman @ 2024-03-04 21:22 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Alexandre Ghiti, Palmer Dabbelt,
Sasha Levin
6.7-stable review patch. If anyone has any objections, please let me know.
------------------
From: Alexandre Ghiti <alexghiti@rivosinc.com>
[ Upstream commit 16ab4646c9057e0528b985ad772e3cb88c613db2 ]
This reverts commit ce173474cf19fe7fbe8f0fc74e3c81ec9c3d9807.
We cannot correctly deal with NAPOT mappings in vmalloc/vmap because if
some part of a NAPOT mapping is unmapped, the remaining mapping is not
updated accordingly. For example:
ptr = vmalloc_huge(64 * 1024, GFP_KERNEL);
vunmap_range((unsigned long)(ptr + PAGE_SIZE),
(unsigned long)(ptr + 64 * 1024));
leads to the following kernel page table dump:
0xffff8f8000ef0000-0xffff8f8000ef1000 0x00000001033c0000 4K PTE N .. .. D A G . . W R V
Meaning the first entry which was not unmapped still has the N bit set,
which, if accessed first and cached in the TLB, could allow access to the
unmapped range.
That's because the logic to break the NAPOT mapping does not exist and
likely won't. Indeed, to break a NAPOT mapping, we first have to clear
the whole mapping, flush the TLB and then set the new mapping ("break-
before-make" equivalent). That works fine in userspace since we can handle
any pagefault occurring on the remaining mapping but we can't handle a kernel
pagefault on such mapping.
So fix this by reverting the commit that introduced the vmap/vmalloc
support.
Fixes: ce173474cf19 ("riscv: mm: support Svnapot in huge vmap")
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20240227205016.121901-2-alexghiti@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/riscv/include/asm/vmalloc.h | 61 +-------------------------------
1 file changed, 1 insertion(+), 60 deletions(-)
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 924d01b56c9a1..51f6dfe19745a 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -19,65 +19,6 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#ifdef CONFIG_RISCV_ISA_SVNAPOT
-#include <linux/pgtable.h>
+#endif
-#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
-static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
- u64 pfn, unsigned int max_page_shift)
-{
- unsigned long map_size = PAGE_SIZE;
- unsigned long size, order;
-
- if (!has_svnapot())
- return map_size;
-
- for_each_napot_order_rev(order) {
- if (napot_cont_shift(order) > max_page_shift)
- continue;
-
- size = napot_cont_size(order);
- if (end - addr < size)
- continue;
-
- if (!IS_ALIGNED(addr, size))
- continue;
-
- if (!IS_ALIGNED(PFN_PHYS(pfn), size))
- continue;
-
- map_size = size;
- break;
- }
-
- return map_size;
-}
-
-#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
-static inline int arch_vmap_pte_supported_shift(unsigned long size)
-{
- int shift = PAGE_SHIFT;
- unsigned long order;
-
- if (!has_svnapot())
- return shift;
-
- WARN_ON_ONCE(size >= PMD_SIZE);
-
- for_each_napot_order_rev(order) {
- if (napot_cont_size(order) > size)
- continue;
-
- if (!IS_ALIGNED(size, napot_cont_size(order)))
- continue;
-
- shift = napot_cont_shift(order);
- break;
- }
-
- return shift;
-}
-
-#endif /* CONFIG_RISCV_ISA_SVNAPOT */
-#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.43.0
^ permalink raw reply related [relevance 11%]
* [PATCH 6.7 000/162] 6.7.9-rc1 review
@ 2024-03-04 21:21 1% Greg Kroah-Hartman
2024-03-04 21:22 11% ` [PATCH 6.7 067/162] Revert "riscv: mm: support Svnapot in huge vmap" Greg Kroah-Hartman
0 siblings, 1 reply; 200+ results
From: Greg Kroah-Hartman @ 2024-03-04 21:21 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, linux-kernel, torvalds, akpm, linux,
shuah, patches, lkft-triage, pavel, jonathanh, f.fainelli,
sudipm.mukherjee, srw, rwarsow, conor, allen.lkml
This is the start of the stable review cycle for the 6.7.9 release.
There are 162 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Wed, 06 Mar 2024 21:15:26 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.7.9-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.7.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Linux 6.7.9-rc1
Danilo Krummrich <dakr@redhat.com>
drm/nouveau: don't fini scheduler before entity flush
Geliang Tang <tanggeliang@kylinos.cn>
selftests: mptcp: rm subflow with v4/v4mapped addr
Geliang Tang <geliang.tang@linux.dev>
selftests: mptcp: add mptcp_lib_is_v6
Geliang Tang <geliang.tang@linux.dev>
selftests: mptcp: update userspace pm test helpers
Geliang Tang <geliang.tang@linux.dev>
selftests: mptcp: add chk_subflows_total helper
Geliang Tang <geliang.tang@linux.dev>
selftests: mptcp: add evts_get_info helper
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
KVM/VMX: Move VERW closer to VMentry for MDS mitigation
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
x86/bugs: Use ALTERNATIVE() instead of mds_user_clear static key
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
x86/entry_32: Add VERW just before userspace transition
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
x86/entry_64: Add VERW just before userspace transition
Ming Lei <ming.lei@redhat.com>
block: define bvec_iter as __packed __aligned(4)
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
gpio: fix resource unwinding order in error path
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
gpiolib: Fix the error path order in gpiochip_add_data_with_key()
Arturas Moskvinas <arturas.moskvinas@gmail.com>
gpio: 74x164: Enable output pins after registers are reset
Nathan Lynch <nathanl@linux.ibm.com>
powerpc/rtas: use correct function name for resetting TCE tables
Gaurav Batra <gbatra@linux.vnet.ibm.com>
powerpc/pseries/iommu: IOMMU table is not initialized for kdump over SR-IOV
Fenghua Yu <fenghua.yu@intel.com>
dmaengine: idxd: Ensure safe user copy of completion record
Fenghua Yu <fenghua.yu@intel.com>
dmaengine: idxd: Remove shadow Event Log head stored in idxd
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
phy: qcom-qmp-usb: fix v3 offsets data
Yang Yingliang <yangyingliang@huawei.com>
phy: qcom: phy-qcom-m31: fix wrong pointer pass to PTR_ERR()
Alexander Stein <alexander.stein@ew.tq-group.com>
phy: freescale: phy-fsl-imx8-mipi-dphy: Fix alias name to use dashes
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: HDMA: Add sync read before starting the DMA transfer in remote setup
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: Add HDMA remote interrupt configuration
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: HDMA_V0_REMOTEL_STOP_INT_EN typo fix
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: Fix wrong interrupt bit set for HDMA
Kory Maincent <kory.maincent@bootlin.com>
dmaengine: dw-edma: Fix the ch_count hdma callback
Dan Carpenter <dan.carpenter@linaro.org>
ASoC: cs35l56: fix reversed if statement in cs35l56_dspwait_asp1tx_put()
Kuniyuki Iwashima <kuniyu@amazon.com>
af_unix: Drop oob_skb ref before purging queue in GC.
Kuniyuki Iwashima <kuniyu@amazon.com>
af_unix: Fix task hung while purging oob_skb in GC.
NeilBrown <neilb@suse.de>
NFS: Fix data corruption caused by congestion.
Peter Ujfalusi <peter.ujfalusi@gmail.com>
mfd: twl6030-irq: Revert to use of_match_device()
Paolo Abeni <pabeni@redhat.com>
mptcp: fix possible deadlock in subflow diag
Davide Caratti <dcaratti@redhat.com>
mptcp: fix double-free on socket dismantle
Paolo Abeni <pabeni@redhat.com>
mptcp: fix potential wake-up event loss
Paolo Abeni <pabeni@redhat.com>
mptcp: fix snd_wnd initialization for passive socket
Geliang Tang <tanggeliang@kylinos.cn>
selftests: mptcp: join: add ss mptcp support check
Paolo Abeni <pabeni@redhat.com>
mptcp: push at DSS boundaries
Matthieu Baerts (NGI0) <matttbe@kernel.org>
mptcp: avoid printing warning once on client side
Geliang Tang <tanggeliang@kylinos.cn>
mptcp: map v4 address to v6 when destroying subflow
Paolo Bonzini <pbonzini@redhat.com>
x86/cpu/intel: Detect TME keyid bits before setting MTRR mask registers
Paolo Bonzini <pbonzini@redhat.com>
x86/cpu: Allow reducing x86_phys_bits during early_identify_cpu()
Jiri Bohac <jbohac@suse.cz>
x86/e820: Don't reserve SETUP_RNG_SEED in e820
Byungchul Park <byungchul@sk.com>
mm/vmscan: fix a bug calling wakeup_kswapd() with a wrong zone index
Aneesh Kumar K.V (IBM) <aneesh.kumar@kernel.org>
mm/debug_vm_pgtable: fix BUG_ON with pud advanced test
Masami Hiramatsu (Google) <mhiramat@kernel.org>
fprobe: Fix to allocate entry_data_size buffer with rethook instances
Bjorn Andersson <quic_bjorande@quicinc.com>
pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation
Cristian Marussi <cristian.marussi@arm.com>
pmdomain: arm: Fix NULL dereference on scmi_perf_domain removal
Tim Schumacher <timschumi@gmx.de>
efivarfs: Request at most 512 bytes for variable names
Nicolin Chen <nicolinc@nvidia.com>
iommufd: Fix protection fault in iommufd_test_syz_conv_iova
Nicolin Chen <nicolinc@nvidia.com>
iommufd: Fix iopt_access_list_id overwrite bug
Nathan Chancellor <nathan@kernel.org>
kbuild: Add -Wa,--fatal-warnings to as-instr invocation
Thomas Weißschuh <linux@weissschuh.net>
power: supply: mm8013: select REGMAP_I2C
Samuel Holland <samuel.holland@sifive.com>
riscv: Save/restore envcfg CSR during CPU suspend
Samuel Holland <samuel.holland@sifive.com>
riscv: Fix enabling cbo.zero when running in M-mode
Zong Li <zong.li@sifive.com>
riscv: add CALLER_ADDRx support
Nathan Chancellor <nathan@kernel.org>
RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
Xiubo Li <xiubli@redhat.com>
ceph: switch to corrected encoding of max_xattr_size in mdsmap
Elad Nachman <enachman@marvell.com>
mmc: sdhci-xenon: fix PHY init clock stability
Elad Nachman <enachman@marvell.com>
mmc: sdhci-xenon: add timeout for PHY init complete
Ivan Semenov <ivan@semenov.dev>
mmc: core: Fix eMMC initialization with 1-bit bus connection
Christophe Kerello <christophe.kerello@foss.st.com>
mmc: mmci: stm32: fix DMA API overlapping mappings warning
Curtis Klein <curtis.klein@hpe.com>
dmaengine: fsl-qdma: init irq after reg initialization
Joy Zou <joy.zou@nxp.com>
dmaengine: fsl-edma: correct calculation of 'nbytes' in multi-fifo scenario
Tadeusz Struk <tstruk@gigaio.com>
dmaengine: ptdma: use consistent DMA masks
Ard Biesheuvel <ardb@kernel.org>
crypto: arm64/neonbs - fix out-of-bounds access on short input
Peng Ma <peng.ma@nxp.com>
dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
Rob Clark <robdclark@chromium.org>
soc: qcom: pmic_glink: Fix boot when QRTR=m
Ryan Lin <tsung-hua.lin@amd.com>
drm/amd/display: Add monitor patch for specific eDP
Ma Jun <Jun.Ma2@amd.com>
drm/amdgpu/pm: Fix the power1_min_cap value
Matthew Auld <matthew.auld@intel.com>
drm/buddy: fix range bias
Alex Deucher <alexander.deucher@amd.com>
Revert "drm/amd/pm: resolve reboot exception for si oland"
Filipe Manana <fdmanana@suse.com>
btrfs: send: don't issue unnecessary zero writes for trailing hole
David Sterba <dsterba@suse.com>
btrfs: dev-replace: properly validate device names
Filipe Manana <fdmanana@suse.com>
btrfs: fix double free of anonymous device after snapshot creation failure
Johannes Berg <johannes.berg@intel.com>
wifi: nl80211: reject iftype change with mesh ID change
Elad Nachman <enachman@marvell.com>
mtd: rawnand: marvell: fix layouts
Nhat Pham <nphamcs@gmail.com>
mm: cachestat: fix folio read-after-free in cache walk
Alexander Ofitserov <oficerovas@altlinux.org>
gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
Mickaël Salaün <mic@digikod.net>
landlock: Fix asymmetric private inodes referring
Johan Hovold <johan+linaro@kernel.org>
Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid
Willian Wang <git@willian.wang>
ALSA: hda/realtek: Add special fixup for Lenovo 14IRP8
Eniac Zhang <eniac-xw.zhang@hp.com>
ALSA: hda/realtek: fix mute/micmute LED For HP mt440
Hans Peter <flurry123@gmx.ch>
ALSA: hda/realtek: Enable Mute LED on HP 840 G8 (MB 8AB8)
Gergo Koteles <soyer@irl.hu>
ALSA: hda/realtek: tas2781: enable subwoofer volume control
Jay Ajit Mate <jay.mate15@gmail.com>
ALSA: hda/realtek: Fix top speaker connection on Dell Inspiron 16 Plus 7630
Takashi Iwai <tiwai@suse.de>
ALSA: ump: Fix the discard error code from snd_ump_legacy_open()
Takashi Sakamoto <o-takashi@sakamocchi.jp>
ALSA: firewire-lib: fix to check cycle continuity
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
tomoyo: fix UAF write bug in tomoyo_write_control()
Saravana Kannan <saravanak@google.com>
of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing
Sid Pranjale <sidpranjale127@protonmail.com>
drm/nouveau: keep DMA buffers required for suspend/resume
Filipe Manana <fdmanana@suse.com>
btrfs: fix race between ordered extent completion and fiemap
Dimitris Vlachos <dvlachos@ics.forth.gr>
riscv: Sparse-Memory/vmemmap out-of-bounds fix
Alexandre Ghiti <alexghiti@rivosinc.com>
riscv: Fix pte_leaf_size() for NAPOT
Alexandre Ghiti <alexghiti@rivosinc.com>
Revert "riscv: mm: support Svnapot in huge vmap"
Vadim Shakirov <vadim.shakirov@syntacore.com>
drivers: perf: ctr_get_width function for legacy is not defined
Vadim Shakirov <vadim.shakirov@syntacore.com>
drivers: perf: added capabilities for legacy PMU
Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
drm/amd/display: Prevent potential buffer overflow in map_hw_resources
David Howells <dhowells@redhat.com>
afs: Fix endless loop in directory parsing
Jiri Slaby (SUSE) <jirislaby@kernel.org>
fbcon: always restore the old font data in fbcon_do_set_font()
Thierry Reding <treding@nvidia.com>
drm/tegra: Remove existing framebuffer only if we support display
Conor Dooley <conor@kernel.org>
RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: soc-card: Fix missing locking in snd_soc_card_get_kcontrol()
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Fix deadlock in ASP1 mixer register initialization
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Fix misuse of wm_adsp 'part' string for silicon revision
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Fix for initializing ASP1 mixer registers
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Don't add the same register patch multiple times
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: cs35l56_component_remove() must clean up wm_adsp
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: cs35l56_component_remove() must clear cs35l56->component
Alexandre Ghiti <alexghiti@rivosinc.com>
riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
Yangyu Chen <cyy@cyyself.name>
riscv: mm: fix NOCACHE_THEAD does not set bit[61] correctly
Mikko Perttunen <mperttunen@nvidia.com>
gpu: host1x: Skip reset assert on Tegra186
Colin Ian King <colin.i.king@gmail.com>
ASoC: qcom: Fix uninitialized pointer dmactl
Takashi Iwai <tiwai@suse.de>
ALSA: Drop leftover snd-rtctimer stuff from Makefile
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs35l56: Must clear HALO_STATE before issuing SYSTEM_RESET
Hans de Goede <hdegoede@redhat.com>
power: supply: bq27xxx-i2c: Do not free non existing IRQ
Arnd Bergmann <arnd@arndb.de>
efi/capsule-loader: fix incorrect allocation size
Jisheng Zhang <jszhang@kernel.org>
riscv: tlb: fix __p*d_free_tlb()
Sabrina Dubroca <sd@queasysnail.net>
tls: fix use-after-free on failed backlog decryption
Sabrina Dubroca <sd@queasysnail.net>
tls: separate no-async decryption request handling from async
Sabrina Dubroca <sd@queasysnail.net>
tls: fix peeking with sync+async decryption
Sabrina Dubroca <sd@queasysnail.net>
tls: decrement decrypt_pending if no async completion will be called
Lukasz Majewski <lukma@denx.de>
net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
Oleksij Rempel <o.rempel@pengutronix.de>
igb: extend PTP timestamp adjustments to i211
Lin Ma <linma@zju.edu.cn>
rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
Jakub Kicinski <kuba@kernel.org>
tools: ynl: fix handling of multiple mcast groups
Florian Westphal <fw@strlen.de>
netfilter: bridge: confirm multicast packets before passing them up the stack
Ignat Korchagin <ignat@cloudflare.com>
netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
Zijun Hu <quic_zijuhu@quicinc.com>
Bluetooth: qca: Fix triggering coredump implementation
Janaki Ramaiah Thota <quic_janathot@quicinc.com>
Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
Zijun Hu <quic_zijuhu@quicinc.com>
Bluetooth: qca: Fix wrong event type for patch config command
Kai-Heng Feng <kai.heng.feng@canonical.com>
Bluetooth: Enforce validation on max value of connection interval
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
Zijun Hu <quic_zijuhu@quicinc.com>
Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: hci_sync: Fix accept_list when attempting to suspend
Ying Hsu <yinghsu@chromium.org>
Bluetooth: Avoid potential use-after-free in hci_error_reset
Jonas Dreßler <verdre@v0yd.nl>
Bluetooth: hci_sync: Check the correct flag before starting a scan
Jakub Raczynski <j.raczynski@samsung.com>
stmmac: Clear variable when destroying workqueue
Justin Iurman <justin.iurman@uliege.be>
uapi: in6: replace temporary label with rfc9486
Oleksij Rempel <o.rempel@pengutronix.de>
net: lan78xx: fix "softirq work is pending" error
Javier Carrasco <javier.carrasco.cruz@gmail.com>
net: usb: dm9601: fix wrong return value in dm9601_mdio_read
Jakub Kicinski <kuba@kernel.org>
veth: try harder when allocating queue memory
Oleksij Rempel <o.rempel@pengutronix.de>
lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
Eric Dumazet <edumazet@google.com>
ipv6: fix potential "struct net" leak in inet6_rtm_getaddr()
Jakub Kicinski <kuba@kernel.org>
net: veth: clear GRO when clearing XDP even when down
Doug Smythies <dsmythies@telus.net>
cpufreq: intel_pstate: fix pstate limits enforcement for adjust_perf call back
Yunjian Wang <wangyunjian@huawei.com>
tun: Fix xdp_rxq_info's queue_index when detaching
Vladimir Oltean <vladimir.oltean@nxp.com>
net: dpaa: fman_memac: accept phy-interface-type = "10gbase-r" in the device tree
Jeremy Kerr <jk@codeconstruct.com.au>
net: mctp: take ownership of skb in mctp_local_output
Florian Westphal <fw@strlen.de>
net: ip_tunnel: prevent perpetual headroom growth
Florian Westphal <fw@strlen.de>
netlink: add nla be16/32 types to minlen array
Ryosuke Yasuoka <ryasuoka@redhat.com>
netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter
Théo Lebrun <theo.lebrun@bootlin.com>
spi: cadence-qspi: remove system-wide suspend helper calls from runtime PM hooks
Théo Lebrun <theo.lebrun@bootlin.com>
spi: cadence-qspi: fix pointer reference in runtime PM hooks
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
ice: fix pin phase adjust updates on PF reset
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
ice: fix dpll periodic work data updates on PF reset
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
ice: fix dpll and dpll_pin data access on PF reset
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
ice: fix dpll input pin phase_adjust value updates
Yochai Hagvi <yochai.hagvi@intel.com>
ice: fix connection state of DPLL and out pin
Han Xu <han.xu@nxp.com>
mtd: spinand: gigadevice: Fix the get ecc status issue
Josef Bacik <josef@toxicpanda.com>
btrfs: fix deadlock with fiemap and extent locking
-------------
Diffstat:
Documentation/arch/x86/mds.rst | 34 +++-
Makefile | 4 +-
arch/arm64/crypto/aes-neonbs-glue.c | 11 ++
arch/powerpc/include/asm/rtas.h | 4 +-
arch/powerpc/kernel/rtas.c | 9 +-
arch/powerpc/platforms/pseries/iommu.c | 156 +++++++++++------
arch/riscv/Kconfig | 1 -
arch/riscv/include/asm/csr.h | 2 +
arch/riscv/include/asm/ftrace.h | 5 +
arch/riscv/include/asm/hugetlb.h | 2 +
arch/riscv/include/asm/pgalloc.h | 20 ++-
arch/riscv/include/asm/pgtable-64.h | 2 +-
arch/riscv/include/asm/pgtable.h | 6 +-
arch/riscv/include/asm/suspend.h | 1 +
arch/riscv/include/asm/vmalloc.h | 61 +------
arch/riscv/kernel/Makefile | 2 +
arch/riscv/kernel/cpufeature.c | 17 +-
arch/riscv/kernel/return_address.c | 48 +++++
arch/riscv/kernel/suspend.c | 4 +
arch/riscv/mm/hugetlbpage.c | 2 +
arch/x86/entry/entry_32.S | 3 +
arch/x86/entry/entry_64.S | 11 ++
arch/x86/entry/entry_64_compat.S | 1 +
arch/x86/include/asm/entry-common.h | 1 -
arch/x86/include/asm/nospec-branch.h | 12 --
arch/x86/kernel/cpu/bugs.c | 15 +-
arch/x86/kernel/cpu/common.c | 4 +-
arch/x86/kernel/cpu/intel.c | 178 ++++++++++---------
arch/x86/kernel/e820.c | 8 +-
arch/x86/kernel/nmi.c | 3 -
arch/x86/kvm/vmx/run_flags.h | 7 +-
arch/x86/kvm/vmx/vmenter.S | 9 +-
arch/x86/kvm/vmx/vmx.c | 20 ++-
drivers/bluetooth/btqca.c | 2 +-
drivers/bluetooth/hci_bcm4377.c | 3 +-
drivers/bluetooth/hci_qca.c | 22 ++-
drivers/cpufreq/intel_pstate.c | 3 +
drivers/dma/dw-edma/dw-edma-v0-core.c | 17 ++
drivers/dma/dw-edma/dw-hdma-v0-core.c | 39 +++--
drivers/dma/dw-edma/dw-hdma-v0-regs.h | 2 +-
drivers/dma/fsl-edma-common.c | 2 +-
drivers/dma/fsl-qdma.c | 25 +--
drivers/dma/idxd/cdev.c | 2 +-
drivers/dma/idxd/debugfs.c | 2 +-
drivers/dma/idxd/idxd.h | 1 -
drivers/dma/idxd/init.c | 15 +-
drivers/dma/idxd/irq.c | 3 +-
drivers/dma/ptdma/ptdma-dmaengine.c | 2 -
drivers/firmware/efi/capsule-loader.c | 2 +-
drivers/gpio/gpio-74x164.c | 4 +-
drivers/gpio/gpiolib.c | 12 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 6 +-
drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c | 5 +
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 29 +++
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 9 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 9 +-
.../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 9 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 9 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 9 +-
drivers/gpu/drm/drm_buddy.c | 10 ++
drivers/gpu/drm/nouveau/nouveau_drm.c | 5 +-
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c | 4 +-
drivers/gpu/drm/tegra/drm.c | 23 ++-
drivers/gpu/host1x/dev.c | 15 +-
drivers/gpu/host1x/dev.h | 6 +
drivers/iommu/iommufd/io_pagetable.c | 9 +-
drivers/iommu/iommufd/selftest.c | 27 ++-
drivers/mfd/twl6030-irq.c | 10 +-
drivers/mmc/core/mmc.c | 2 +
drivers/mmc/host/mmci_stm32_sdmmc.c | 24 +++
drivers/mmc/host/sdhci-xenon-phy.c | 48 ++++-
drivers/mtd/nand/raw/marvell_nand.c | 13 +-
drivers/mtd/nand/spi/gigadevice.c | 6 +-
drivers/net/ethernet/freescale/fman/fman_memac.c | 18 +-
drivers/net/ethernet/intel/ice/ice_dpll.c | 91 ++++++++--
drivers/net/ethernet/intel/igb/igb_ptp.c | 5 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +-
drivers/net/gtp.c | 12 +-
drivers/net/tun.c | 1 +
drivers/net/usb/dm9601.c | 2 +-
drivers/net/usb/lan78xx.c | 5 +-
drivers/net/veth.c | 40 ++---
drivers/of/property.c | 2 +-
drivers/perf/riscv_pmu.c | 18 +-
drivers/perf/riscv_pmu_legacy.c | 10 +-
drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c | 2 +-
drivers/phy/qualcomm/phy-qcom-m31.c | 2 +-
drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 10 +-
drivers/pmdomain/arm/scmi_perf_domain.c | 3 +
drivers/pmdomain/qcom/rpmhpd.c | 7 +-
drivers/power/supply/Kconfig | 1 +
drivers/power/supply/bq27xxx_battery_i2c.c | 4 +-
drivers/soc/qcom/pmic_glink.c | 21 +--
drivers/spi/spi-cadence-quadspi.c | 11 +-
drivers/video/fbdev/core/fbcon.c | 8 +-
fs/afs/dir.c | 4 +-
fs/btrfs/dev-replace.c | 24 ++-
fs/btrfs/disk-io.c | 22 +--
fs/btrfs/disk-io.h | 2 +-
fs/btrfs/extent_io.c | 165 ++++++++++++++---
fs/btrfs/ioctl.c | 2 +-
fs/btrfs/send.c | 17 +-
fs/btrfs/transaction.c | 2 +-
fs/ceph/mdsmap.c | 7 +-
fs/ceph/mdsmap.h | 6 +-
fs/efivarfs/vars.c | 17 +-
fs/nfs/write.c | 4 +-
include/linux/bvec.h | 2 +-
include/linux/netfilter.h | 1 +
include/net/mctp.h | 1 +
include/sound/soc-card.h | 2 +
include/uapi/linux/in6.h | 2 +-
kernel/trace/fprobe.c | 14 +-
lib/nlattr.c | 4 +
mm/debug_vm_pgtable.c | 8 +
mm/filemap.c | 51 +++---
mm/migrate.c | 8 +
net/bluetooth/hci_core.c | 7 +-
net/bluetooth/hci_event.c | 13 +-
net/bluetooth/hci_sync.c | 7 +-
net/bluetooth/l2cap_core.c | 8 +-
net/bridge/br_netfilter_hooks.c | 96 ++++++++++
net/bridge/netfilter/nf_conntrack_bridge.c | 30 ++++
net/core/rtnetlink.c | 11 +-
net/hsr/hsr_forward.c | 2 +-
net/ipv4/ip_tunnel.c | 28 ++-
net/ipv6/addrconf.c | 7 +-
net/mctp/route.c | 10 +-
net/mptcp/diag.c | 3 +
net/mptcp/options.c | 2 +-
net/mptcp/pm_userspace.c | 10 ++
net/mptcp/protocol.c | 52 +++++-
net/mptcp/protocol.h | 21 +--
net/netfilter/nf_conntrack_core.c | 1 +
net/netfilter/nft_compat.c | 20 +++
net/netlink/af_netlink.c | 2 +-
net/tls/tls_sw.c | 40 +++--
net/unix/garbage.c | 21 +--
net/wireless/nl80211.c | 2 +
scripts/Kconfig.include | 2 +-
scripts/Makefile.compiler | 2 +-
security/landlock/fs.c | 4 +-
security/tomoyo/common.c | 3 +-
sound/core/Makefile | 1 -
sound/core/ump.c | 4 +-
sound/firewire/amdtp-stream.c | 2 +-
sound/pci/hda/patch_realtek.c | 33 +++-
sound/soc/codecs/cs35l45.c | 2 +-
sound/soc/codecs/cs35l56-shared.c | 8 +-
sound/soc/codecs/cs35l56.c | 195 ++++++++++++++++++---
sound/soc/codecs/cs35l56.h | 1 +
sound/soc/fsl/fsl_xcvr.c | 12 +-
sound/soc/qcom/lpass-cdc-dma.c | 2 +-
sound/soc/soc-card.c | 24 ++-
tools/net/ynl/lib/ynl.c | 1 +
tools/testing/selftests/net/mptcp/mptcp_connect.sh | 16 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh | 192 ++++++++++++--------
tools/testing/selftests/net/mptcp/mptcp_lib.sh | 15 ++
tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 8 +-
tools/testing/selftests/net/mptcp/userspace_pm.sh | 86 +++++----
160 files changed, 1927 insertions(+), 829 deletions(-)
^ permalink raw reply [relevance 1%]
* Linux 6.8-rc7
@ 2024-03-03 21:15 2% Linus Torvalds
0 siblings, 0 replies; 200+ results
From: Linus Torvalds @ 2024-03-03 21:15 UTC (permalink / raw)
To: Linux Kernel Mailing List
So we finally have a week where things have calmed down, and in fact
6.8-rc7 is smaller than usual at this point in time. So if that keeps
up (but that's a fairly notable "if") I won't feel like I need to do
an rc8 this release after all.
So no guarantees, but assuming no bad surprises, we'll have the final
6.8 next weekend.
You can see the rc7 fixes in the shortlog below, and I don't think
there's anything particularly notable in there. It's not only fairly
small for an rc7, all the stats look fairly normal: just over half of
the diff is driver fixes, with the rest being a fairly random mix of
arch updates (powerpc and RISC-C dominate - although "dominate" may
not the right word when it's all pretty small) some filesystem fixes
(btrfs stands out), some core networking and mm fixes, and some more
networking selftest updates.
It really is all pretty small. Let's hope it stays that way,
Linus
---
Abel Vesa (1):
phy: qualcomm: eusb2-repeater: Rework init to drop redundant zero-out loop
Alex Deucher (1):
Revert "drm/amd/pm: resolve reboot exception for si oland"
Alexander Ofitserov (1):
gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
Alexander Stein (1):
phy: freescale: phy-fsl-imx8-mipi-dphy: Fix alias name to use dashes
Alexandre Ghiti (3):
riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
Revert "riscv: mm: support Svnapot in huge vmap"
riscv: Fix pte_leaf_size() for NAPOT
Amritha Nambiar (1):
ice: Fix ASSERT_RTNL() warning during certain scenarios
Andre Werner (1):
net: smsc95xx: add support for SYS TEC USB-SPEmodule1
Andy Shevchenko (1):
gpiolib: Fix the error path order in gpiochip_add_data_with_key()
Aneesh Kumar K.V (IBM) (1):
mm/debug_vm_pgtable: fix BUG_ON with pud advanced test
Ard Biesheuvel (3):
crypto: arm64/neonbs - fix out-of-bounds access on short input
efivarfs: Drop redundant cleanup on fill_super() failure
efivarfs: Drop 'duplicates' bool parameter on efivar_init()
Arkadiusz Kubalewski (4):
ice: fix dpll input pin phase_adjust value updates
ice: fix dpll and dpll_pin data access on PF reset
ice: fix dpll periodic work data updates on PF reset
ice: fix pin phase adjust updates on PF reset
Arnd Bergmann (3):
efi/capsule-loader: fix incorrect allocation size
scsi: mpi3mr: Reduce stack usage in mpi3mr_refresh_sas_ports()
drm/xe/mmio: fix build warning for BAR resize on 32-bit
Arturas Moskvinas (1):
gpio: 74x164: Enable output pins after registers are reset
Bart Van Assche (1):
fs/aio: Make io_cancel() generate completions again
Bartosz Golaszewski (1):
gpio: fix resource unwinding order in error path
Benjamin Berg (1):
wifi: iwlwifi: mvm: ensure offloading TID queue exists
Bjorn Andersson (1):
pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation
Byungchul Park (1):
mm/vmscan: fix a bug calling wakeup_kswapd() with a wrong zone index
Christian König (1):
drm/ttm/tests: depend on UML || COMPILE_TEST
Christophe Kerello (1):
mmc: mmci: stm32: fix DMA API overlapping mappings warning
Christophe Leroy (1):
kunit: Fix again checksum tests on big endian CPUs
Colin Ian King (1):
ASoC: qcom: Fix uninitialized pointer dmactl
Conor Dooley (1):
RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
Cristian Marussi (1):
pmdomain: arm: Fix NULL dereference on scmi_perf_domain removal
Curtis Klein (1):
dmaengine: fsl-qdma: init irq after reg initialization
Dave Airlie (1):
nouveau: report byte usage in VRAM usage.
David Howells (1):
afs: Fix endless loop in directory parsing
David Sterba (1):
btrfs: dev-replace: properly validate device names
Davide Caratti (1):
mptcp: fix double-free on socket dismantle
Dimitris Vlachos (1):
riscv: Sparse-Memory/vmemmap out-of-bounds fix
Dmitry Baryshkov (2):
phy: qcom-qmp-usb: fix v3 offsets data
Revert "drm/msm/dp: use drm_bridge_hpd_notify() to report HPD
status changes"
Doug Smythies (1):
cpufreq: intel_pstate: fix pstate limits enforcement for
adjust_perf call back
Elad Nachman (3):
mtd: rawnand: marvell: fix layouts
mmc: sdhci-xenon: fix PHY init clock stability
mmc: sdhci-xenon: add timeout for PHY init complete
Emmanuel Grumbach (1):
wifi: iwlwifi: mvm: fix the TXF mapping for BZ devices
Eniac Zhang (1):
ALSA: hda/realtek: fix mute/micmute LED For HP mt440
Eric Dumazet (3):
ipv6: fix potential "struct net" leak in inet6_rtm_getaddr()
dpll: rely on rcu for netdev_dpll_pin()
dpll: fix build failure due to rcu_dereference_check() on unknown type
Fei Wu (1):
perf: RISCV: Fix panic on pmu overflow handler
Felix Fietkau (1):
wifi: mac80211: only call drv_sta_rc_update for uploaded stations
Fenghua Yu (2):
dmaengine: idxd: Remove shadow Event Log head stored in idxd
dmaengine: idxd: Ensure safe user copy of completion record
Filipe Manana (6):
btrfs: send: don't issue unnecessary zero writes for trailing hole
btrfs: fix data races when accessing the reserved amount of block reserves
btrfs: fix data race at btrfs_use_block_rsv() when accessing block reserve
btrfs: fix race between ordered extent completion and fiemap
btrfs: ensure fiemap doesn't race with writes when
FIEMAP_FLAG_SYNC is given
btrfs: fix double free of anonymous device after snapshot creation failure
Florian Westphal (4):
netlink: add nla be16/32 types to minlen array
net: ip_tunnel: prevent perpetual headroom growth
netfilter: bridge: confirm multicast packets before passing them
up the stack
selftests: netfilter: add bridge conntrack + multicast test case
Francois Dugast (1):
drm/xe/uapi: Remove unused flags
Frank Li (2):
dmaengine: fsl-edma: correct max_segment_size setting
dmaengine: fsl-qdma: add __iomem and struct in union to fix sparse warning
Frédéric Danis (1):
Bluetooth: mgmt: Fix limited discoverable off timeout
Gaurav Batra (1):
powerpc/pseries/iommu: IOMMU table is not initialized for kdump
over SR-IOV
Geliang Tang (3):
mptcp: map v4 address to v6 when destroying subflow
selftests: mptcp: rm subflow with v4/v4mapped addr
selftests: mptcp: join: add ss mptcp support check
Geoff Levand (1):
ps3/gelic: Fix SKB allocation
Gergo Koteles (1):
ALSA: hda/realtek: tas2781: enable subwoofer volume control
Haiyue Wang (1):
Documentations: correct net_cachelines title for struct inet_sock
Han Xu (1):
mtd: spinand: gigadevice: Fix the get ecc status issue
Hans Peter (1):
ALSA: hda/realtek: Enable Mute LED on HP 840 G8 (MB 8AB8)
Hans de Goede (1):
power: supply: bq27xxx-i2c: Do not free non existing IRQ
Herbert Xu (1):
crypto: lskcipher - Copy IV in lskcipher glue code always
Ignat Korchagin (1):
netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
Ivan Semenov (1):
mmc: core: Fix eMMC initialization with 1-bit bus connection
Jakub Kicinski (4):
net: veth: clear GRO when clearing XDP even when down
selftests: net: veth: test syncing GRO and XDP state while device is down
veth: try harder when allocating queue memory
tools: ynl: fix handling of multiple mcast groups
Jakub Raczynski (1):
stmmac: Clear variable when destroying workqueue
Janaki Ramaiah Thota (1):
Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
Jaroslav Kysela (1):
ALSA: pcm: clarify and fix default msbits value for all formats
Jason Gunthorpe (1):
iommufd/selftest: Don't check map/unmap pairing with HUGE_PAGES
Javier Carrasco (1):
net: usb: dm9601: fix wrong return value in dm9601_mdio_read
Jay Ajit Mate (1):
ALSA: hda/realtek: Fix top speaker connection on Dell Inspiron
16 Plus 7630
Jeff Johnson (2):
MAINTAINERS: wifi: update Jeff Johnson e-mail address
MAINTAINERS: wifi: Add N: ath1*k entries to match .yaml files
Jeremy Kerr (1):
net: mctp: take ownership of skb in mctp_local_output
Jiawei Wang (2):
ASoC: amd: yc: add new YC platform variant (0x63) support
ASoC: amd: yc: Fix non-functional mic on Lenovo 21J2
Jiri Bohac (1):
x86/e820: Don't reserve SETUP_RNG_SEED in e820
Jiri Slaby (SUSE) (1):
fbcon: always restore the old font data in fbcon_do_set_font()
Jisheng Zhang (1):
riscv: tlb: fix __p*d_free_tlb()
Johan Hovold (4):
drm/bridge: aux-hpd: fix OF node leaks
drm/bridge: aux-hpd: separate allocation and registration
soc: qcom: pmic_glink_altmode: fix drm bridge use-after-free
Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid
Johannes Berg (1):
wifi: nl80211: reject iftype change with mesh ID change
Johannes Thumshirn (1):
btrfs: zoned: don't skip block group profile checks on conventional zones
Johnny Hsieh (1):
ASoC: amd: yc: Add Lenovo ThinkBook 21J0 into DMI quirk table
Jonas Dreßler (1):
Bluetooth: hci_sync: Check the correct flag before starting a scan
José Roberto de Souza (1):
drm/xe/uapi: Remove DRM_XE_VM_BIND_FLAG_ASYNC comment left over
Joy Zou (1):
dmaengine: fsl-edma: correct calculation of 'nbytes' in
multi-fifo scenario
Justin Iurman (1):
uapi: in6: replace temporary label with rfc9486
Kai-Heng Feng (1):
Bluetooth: Enforce validation on max value of connection interval
Kailang Yang (1):
ALSA: hda/realtek - ALC285 reduce pop noise from Headphone port
Kory Maincent (6):
dmaengine: dw-edma: Fix the ch_count hdma callback
dmaengine: dw-edma: Fix wrong interrupt bit set for HDMA
dmaengine: dw-edma: HDMA_V0_REMOTEL_STOP_INT_EN typo fix
dmaengine: dw-edma: Add HDMA remote interrupt configuration
dmaengine: dw-edma: HDMA: Add sync read before starting the DMA
transfer in remote setup
dmaengine: dw-edma: eDMA: Add sync read before starting the DMA
transfer in remote setup
Kurt Kanzenbach (1):
net: stmmac: Complete meta data only when enabled
Lin Ma (1):
rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
Linus Torvalds (1):
Linux 6.8-rc7
Lorenzo Stoakes (1):
MAINTAINERS: add memory mapping entry with reviewers
Lucas De Marchi (1):
drm/xe: Use pointers in trace events
Luiz Augusto von Dentz (2):
Bluetooth: hci_sync: Fix accept_list when attempting to suspend
Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
Lukas Bulwahn (1):
MAINTAINERS: repair entry for MICROCHIP MCP16502 PMIC DRIVER
Lukasz Majewski (2):
net: hsr: Fix typo in the hsr_forward_do() function comment
net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
Ma Jun (1):
drm/amdgpu/pm: Fix the power1_min_cap value
Maarten Lankhorst (1):
drm/xe: Add uapi for dumpable bos
Marco Elver (2):
stackdepot: use variable size records for non-evictable entries
kasan: revert eviction of stack traces in generic mode
Mark Brown (1):
spi: Drop mismerged fix
Mark O'Donovan (1):
fs/ntfs3: fix build without CONFIG_NTFS3_LZX_XPRESS
Masami Hiramatsu (Google) (1):
fprobe: Fix to allocate entry_data_size buffer with rethook instances
Matthew Auld (3):
drm/buddy: fix range bias
drm/buddy: check range allocation matches alignment
drm/tests/drm_buddy: add alloc_range_bias test
Matthew Brost (3):
drm/xe: Fix execlist splat
drm/xe: Don't support execlists in xe_gt_tlb_invalidation layer
drm/xe: Use vmalloc for array of bind allocation in bind IOCTL
Matthieu Baerts (NGI0) (1):
mptcp: avoid printing warning once on client side
Michael Ellerman (1):
selftests/powerpc: Fix fpu_signal failures
Mickaël Salaün (3):
selinux: fix lsm_get_self_attr()
apparmor: fix lsm_get_self_attr()
landlock: Fix asymmetric private inodes referring
Mika Kuoppala (2):
drm/xe: Expose user fence from xe_sync_entry
drm/xe: Deny unbinds if uapi ufence pending
Mikko Perttunen (1):
gpu: host1x: Skip reset assert on Tegra186
Ming Lei (1):
block: define bvec_iter as __packed __aligned(4)
Miquel Raynal (1):
mtd: Fix possible refcounting issue when going through partition nodes
Naresh Solanki (1):
regulator: max5970: Fix regulator child node name
Nathan Chancellor (2):
kbuild: Add -Wa,--fatal-warnings to as-instr invocation
RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
Nathan Lynch (1):
powerpc/rtas: use correct function name for resetting TCE tables
Nhat Pham (1):
mm: cachestat: fix folio read-after-free in cache walk
Nicolin Chen (3):
iommufd: Fix iopt_access_list_id overwrite bug
iommufd/selftest: Fix mock_dev_num bug
iommufd: Fix protection fault in iommufd_test_syz_conv_iova
Oleksij Rempel (3):
lan78xx: enable auto speed configuration for LAN7850 if no
EEPROM is detected
net: lan78xx: fix "softirq work is pending" error
igb: extend PTP timestamp adjustments to i211
Paolo Abeni (5):
mptcp: push at DSS boundaries
mptcp: fix snd_wnd initialization for passive socket
mptcp: fix potential wake-up event loss
mptcp: fix possible deadlock in subflow diag
selftests: mptcp: explicitly trigger the listener diag code-path
Paolo Bonzini (2):
x86/cpu: Allow reducing x86_phys_bits during early_identify_cpu()
x86/cpu/intel: Detect TME keyid bits before setting MTRR mask registers
Paulo Zanoni (1):
drm/xe: get rid of MAX_BINDS
Peng Ma (1):
dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
Prike Liang (1):
drm/amdgpu: Enable gpu reset for S3 abort cases on Raven series
Priyanka Dandamudi (2):
drm/xe/xe_bo_move: Enhance xe_bo_move trace
drm/xe/xe_trace: Add move_lacks_source detail to xe_bo_move trace
Rafael J. Wysocki (1):
Revert "ACPI: EC: Use a spin lock without disabing interrupts"
Randy Dunlap (1):
net: ethernet: adi: move PHYLIB from vendor to driver symbol
Ranjan Kumar (1):
scsi: mpt3sas: Prevent sending diag_reset when the controller is ready
Richard Fitzgerald (2):
ASoC: cs35l56: Must clear HALO_STATE before issuing SYSTEM_RESET
ASoC: soc-card: Fix missing locking in snd_soc_card_get_kcontrol()
Rob Clark (1):
soc: qcom: pmic_glink: Fix boot when QRTR=m
Ryan Lin (1):
drm/amd/display: Add monitor patch for specific eDP
Ryosuke Yasuoka (1):
netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter
Sabrina Dubroca (4):
tls: decrement decrypt_pending if no async completion will be called
tls: fix peeking with sync+async decryption
tls: separate no-async decryption request handling from async
tls: fix use-after-free on failed backlog decryption
Samuel Holland (4):
MAINTAINERS: Update SiFive driver maintainers
riscv: Fix enabling cbo.zero when running in M-mode
riscv: Add a custom ISA extension for the [ms]envcfg CSR
riscv: Save/restore envcfg CSR during CPU suspend
Saravana Kannan (1):
of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing
Shannon Nelson (3):
ionic: check before releasing pci regions
ionic: check cmd_regs before copying in or out
ionic: restore netdev feature bits after reset
Shiyang Ruan (1):
xfs: drop experimental warning for FSDAX
Sid Pranjale (1):
drm/nouveau: keep DMA buffers required for suspend/resume
Srinivasan Shanmugam (1):
drm/amd/display: Prevent potential buffer overflow in map_hw_resources
Tadeusz Struk (1):
dmaengine: ptdma: use consistent DMA masks
Takashi Iwai (2):
ALSA: ump: Fix the discard error code from snd_ump_legacy_open()
ALSA: Drop leftover snd-rtctimer stuff from Makefile
Takashi Sakamoto (2):
ALSA: firewire-lib: fix to check cycle continuity
firewire: core: use long bus reset on gap count error
Tetsuo Handa (1):
tomoyo: fix UAF write bug in tomoyo_write_control()
Thierry Reding (1):
drm/tegra: Remove existing framebuffer only if we support display
Thomas Weißschuh (1):
power: supply: mm8013: select REGMAP_I2C
Théo Lebrun (4):
spi: cadence-qspi: fix pointer reference in runtime PM hooks
spi: cadence-qspi: remove system-wide suspend helper calls from
runtime PM hooks
spi: cadence-qspi: put runtime in runtime PM hooks names
spi: cadence-qspi: add system-wide suspend and resume callbacks
Tim Schumacher (1):
efivarfs: Request at most 512 bytes for variable names
Vadim Shakirov (2):
drivers: perf: added capabilities for legacy PMU
drivers: perf: ctr_get_width function for legacy is not defined
Vladimir Oltean (1):
net: dpaa: fman_memac: accept phy-interface-type = "10gbase-r"
in the device tree
Willian Wang (1):
ALSA: hda/realtek: Add special fixup for Lenovo 14IRP8
Xiubo Li (1):
ceph: switch to corrected encoding of max_xattr_size in mdsmap
Yang Yingliang (1):
phy: qcom: phy-qcom-m31: fix wrong pointer pass to PTR_ERR()
Yangyu Chen (1):
riscv: mm: fix NOCACHE_THEAD does not set bit[61] correctly
Ying Hsu (1):
Bluetooth: Avoid potential use-after-free in hci_error_reset
Yochai Hagvi (1):
ice: fix connection state of DPLL and out pin
Yuezhang Mo (1):
exfat: fix appending discontinuous clusters to empty file
Yunjian Wang (1):
tun: Fix xdp_rxq_info's queue_index when detaching
Yuxuan Hu (1):
Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security
Zhangfei Gao (1):
iommu/sva: Fix SVA handle sharing in multi device case
Zijun Hu (3):
Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR
Bluetooth: qca: Fix wrong event type for patch config command
Bluetooth: qca: Fix triggering coredump implementation
Zong Li (1):
riscv: add CALLER_ADDRx support
^ permalink raw reply [relevance 2%]
* [GIT PULL] RISC-V Fixes for 6.8-rc7
@ 2024-03-01 15:13 5% ` Palmer Dabbelt
0 siblings, 0 replies; 200+ results
From: Palmer Dabbelt @ 2024-03-01 15:13 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-riscv, linux-kernel
The following changes since commit 3951f6add519a8e954bf78691a412f65b24f4715:
riscv: Fix arch_tlbbatch_flush() by clearing the batch cpumask (2024-02-07 10:19:37 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-6.8-rc7
for you to fetch changes up to a11dd49dcb9376776193e15641f84fcc1e5980c9:
riscv: Sparse-Memory/vmemmap out-of-bounds fix (2024-02-29 12:24:31 -0800)
----------------------------------------------------------------
RISC-V Fixes for 6.8-rc7
* A fix for detecting ".option arch" support on not-yet-released LLVM
builds.
* A fix for a missing TLB flush when modifying non-leaf PTEs.
* A handufl of fixes for T-Head custom extensions.
* A fix for systems with the legacy PMU, that manifests as a crash on
kernels built without SBI PMU support.
* A fix for systems that clear *envcfg on suspend, which manifests as
cbo.zero trapping after resume.
* A pair of fixes for Svnapot systems, including removing Svnapot
support for huge vmalloc/vmap regions.
----------------------------------------------------------------
Alexandre Ghiti (3):
riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
Revert "riscv: mm: support Svnapot in huge vmap"
riscv: Fix pte_leaf_size() for NAPOT
Conor Dooley (1):
RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
Dimitris Vlachos (1):
riscv: Sparse-Memory/vmemmap out-of-bounds fix
Fei Wu (1):
perf: RISCV: Fix panic on pmu overflow handler
Jisheng Zhang (1):
riscv: tlb: fix __p*d_free_tlb()
Nathan Chancellor (2):
kbuild: Add -Wa,--fatal-warnings to as-instr invocation
RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
Palmer Dabbelt (5):
Merge patch series "RISC-V: Fix CONFIG_AS_HAS_OPTION_ARCH with tip of tree LLVM"
Merge commit '8246601a7d391ce8207408149d65732f28af81a1' into fixes
Merge patch series "drivers: perf: fix crash with the legacy riscv driver"
Merge patch series "riscv: cbo.zero fixes"
Merge patch series "NAPOT Fixes"
Samuel Holland (4):
MAINTAINERS: Update SiFive driver maintainers
riscv: Fix enabling cbo.zero when running in M-mode
riscv: Add a custom ISA extension for the [ms]envcfg CSR
riscv: Save/restore envcfg CSR during CPU suspend
Vadim Shakirov (2):
drivers: perf: added capabilities for legacy PMU
drivers: perf: ctr_get_width function for legacy is not defined
Yangyu Chen (1):
riscv: mm: fix NOCACHE_THEAD does not set bit[61] correctly
Zong Li (1):
riscv: add CALLER_ADDRx support
MAINTAINERS | 29 +++---------------
arch/riscv/Kconfig | 1 -
arch/riscv/include/asm/csr.h | 2 ++
arch/riscv/include/asm/ftrace.h | 5 +++
arch/riscv/include/asm/hugetlb.h | 2 ++
arch/riscv/include/asm/hwcap.h | 2 ++
arch/riscv/include/asm/pgalloc.h | 20 ++++++++++--
arch/riscv/include/asm/pgtable-64.h | 2 +-
arch/riscv/include/asm/pgtable.h | 6 +++-
arch/riscv/include/asm/suspend.h | 1 +
arch/riscv/include/asm/vmalloc.h | 61 +------------------------------------
arch/riscv/kernel/Makefile | 2 ++
arch/riscv/kernel/cpufeature.c | 31 +++++++++++++++++--
arch/riscv/kernel/return_address.c | 48 +++++++++++++++++++++++++++++
arch/riscv/kernel/suspend.c | 4 +++
arch/riscv/mm/hugetlbpage.c | 2 ++
drivers/perf/riscv_pmu.c | 18 +++--------
drivers/perf/riscv_pmu_legacy.c | 10 +++++-
drivers/perf/riscv_pmu_sbi.c | 8 ++---
scripts/Kconfig.include | 2 +-
scripts/Makefile.compiler | 2 +-
21 files changed, 145 insertions(+), 113 deletions(-)
create mode 100644 arch/riscv/kernel/return_address.c
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 5%]
* [GIT PULL] RISC-V Fixes for 6.8-rc7
@ 2024-03-01 15:13 5% ` Palmer Dabbelt
0 siblings, 0 replies; 200+ results
From: Palmer Dabbelt @ 2024-03-01 15:13 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-riscv, linux-kernel
The following changes since commit 3951f6add519a8e954bf78691a412f65b24f4715:
riscv: Fix arch_tlbbatch_flush() by clearing the batch cpumask (2024-02-07 10:19:37 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-6.8-rc7
for you to fetch changes up to a11dd49dcb9376776193e15641f84fcc1e5980c9:
riscv: Sparse-Memory/vmemmap out-of-bounds fix (2024-02-29 12:24:31 -0800)
----------------------------------------------------------------
RISC-V Fixes for 6.8-rc7
* A fix for detecting ".option arch" support on not-yet-released LLVM
builds.
* A fix for a missing TLB flush when modifying non-leaf PTEs.
* A handufl of fixes for T-Head custom extensions.
* A fix for systems with the legacy PMU, that manifests as a crash on
kernels built without SBI PMU support.
* A fix for systems that clear *envcfg on suspend, which manifests as
cbo.zero trapping after resume.
* A pair of fixes for Svnapot systems, including removing Svnapot
support for huge vmalloc/vmap regions.
----------------------------------------------------------------
Alexandre Ghiti (3):
riscv: Fix build error if !CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
Revert "riscv: mm: support Svnapot in huge vmap"
riscv: Fix pte_leaf_size() for NAPOT
Conor Dooley (1):
RISC-V: Ignore V from the riscv,isa DT property on older T-Head CPUs
Dimitris Vlachos (1):
riscv: Sparse-Memory/vmemmap out-of-bounds fix
Fei Wu (1):
perf: RISCV: Fix panic on pmu overflow handler
Jisheng Zhang (1):
riscv: tlb: fix __p*d_free_tlb()
Nathan Chancellor (2):
kbuild: Add -Wa,--fatal-warnings to as-instr invocation
RISC-V: Drop invalid test from CONFIG_AS_HAS_OPTION_ARCH
Palmer Dabbelt (5):
Merge patch series "RISC-V: Fix CONFIG_AS_HAS_OPTION_ARCH with tip of tree LLVM"
Merge commit '8246601a7d391ce8207408149d65732f28af81a1' into fixes
Merge patch series "drivers: perf: fix crash with the legacy riscv driver"
Merge patch series "riscv: cbo.zero fixes"
Merge patch series "NAPOT Fixes"
Samuel Holland (4):
MAINTAINERS: Update SiFive driver maintainers
riscv: Fix enabling cbo.zero when running in M-mode
riscv: Add a custom ISA extension for the [ms]envcfg CSR
riscv: Save/restore envcfg CSR during CPU suspend
Vadim Shakirov (2):
drivers: perf: added capabilities for legacy PMU
drivers: perf: ctr_get_width function for legacy is not defined
Yangyu Chen (1):
riscv: mm: fix NOCACHE_THEAD does not set bit[61] correctly
Zong Li (1):
riscv: add CALLER_ADDRx support
MAINTAINERS | 29 +++---------------
arch/riscv/Kconfig | 1 -
arch/riscv/include/asm/csr.h | 2 ++
arch/riscv/include/asm/ftrace.h | 5 +++
arch/riscv/include/asm/hugetlb.h | 2 ++
arch/riscv/include/asm/hwcap.h | 2 ++
arch/riscv/include/asm/pgalloc.h | 20 ++++++++++--
arch/riscv/include/asm/pgtable-64.h | 2 +-
arch/riscv/include/asm/pgtable.h | 6 +++-
arch/riscv/include/asm/suspend.h | 1 +
arch/riscv/include/asm/vmalloc.h | 61 +------------------------------------
arch/riscv/kernel/Makefile | 2 ++
arch/riscv/kernel/cpufeature.c | 31 +++++++++++++++++--
arch/riscv/kernel/return_address.c | 48 +++++++++++++++++++++++++++++
arch/riscv/kernel/suspend.c | 4 +++
arch/riscv/mm/hugetlbpage.c | 2 ++
drivers/perf/riscv_pmu.c | 18 +++--------
drivers/perf/riscv_pmu_legacy.c | 10 +++++-
drivers/perf/riscv_pmu_sbi.c | 8 ++---
scripts/Kconfig.include | 2 +-
scripts/Makefile.compiler | 2 +-
21 files changed, 145 insertions(+), 113 deletions(-)
create mode 100644 arch/riscv/kernel/return_address.c
^ permalink raw reply [relevance 5%]
* Re: [PATCH -fixes 0/2] NAPOT Fixes
2024-02-27 20:50 5% ` Alexandre Ghiti
@ 2024-02-29 22:10 5% ` patchwork-bot+linux-riscv
-1 siblings, 0 replies; 200+ results
From: patchwork-bot+linux-riscv @ 2024-02-29 22:10 UTC (permalink / raw)
To: Alexandre Ghiti
Cc: linux-riscv, paul.walmsley, palmer, aou, ajones, conor.dooley,
panqinglin2020, linux-kernel
Hello:
This series was applied to riscv/linux.git (fixes)
by Palmer Dabbelt <palmer@rivosinc.com>:
On Tue, 27 Feb 2024 21:50:14 +0100 you wrote:
> This contains 2 fixes for NAPOT: patch 1 disables the use of NAPOT
> mapping for vmalloc/vmap and patch 2 implements pte_leaf_size() to
> report NAPOT size.
>
> Alexandre Ghiti (2):
> Revert "riscv: mm: support Svnapot in huge vmap"
> riscv: Fix pte_leaf_size() for NAPOT
>
> [...]
Here is the summary with links:
- [-fixes,1/2] Revert "riscv: mm: support Svnapot in huge vmap"
https://git.kernel.org/riscv/c/16ab4646c905
- [-fixes,2/2] riscv: Fix pte_leaf_size() for NAPOT
https://git.kernel.org/riscv/c/e0fe5ab4192c
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 5%]
* Re: [PATCH -fixes 0/2] NAPOT Fixes
@ 2024-02-29 22:10 5% ` patchwork-bot+linux-riscv
0 siblings, 0 replies; 200+ results
From: patchwork-bot+linux-riscv @ 2024-02-29 22:10 UTC (permalink / raw)
To: Alexandre Ghiti
Cc: linux-riscv, paul.walmsley, palmer, aou, ajones, conor.dooley,
panqinglin2020, linux-kernel
Hello:
This series was applied to riscv/linux.git (fixes)
by Palmer Dabbelt <palmer@rivosinc.com>:
On Tue, 27 Feb 2024 21:50:14 +0100 you wrote:
> This contains 2 fixes for NAPOT: patch 1 disables the use of NAPOT
> mapping for vmalloc/vmap and patch 2 implements pte_leaf_size() to
> report NAPOT size.
>
> Alexandre Ghiti (2):
> Revert "riscv: mm: support Svnapot in huge vmap"
> riscv: Fix pte_leaf_size() for NAPOT
>
> [...]
Here is the summary with links:
- [-fixes,1/2] Revert "riscv: mm: support Svnapot in huge vmap"
https://git.kernel.org/riscv/c/16ab4646c905
- [-fixes,2/2] riscv: Fix pte_leaf_size() for NAPOT
https://git.kernel.org/riscv/c/e0fe5ab4192c
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [relevance 5%]
* [PATCH v2 2/7] mm/ppc: Replace pXd_is_leaf() with pXd_leaf()
@ 2024-02-29 8:42 5% ` peterx
0 siblings, 0 replies; 200+ results
From: peterx @ 2024-02-29 8:42 UTC (permalink / raw)
To: linux-mm, linux-kernel
Cc: x86, Yang Shi, Muchun Song, peterx, Aneesh Kumar K.V,
Nicholas Piggin, Jason Gunthorpe, Naveen N. Rao,
Kirill A . Shutemov, Andrew Morton, linuxppc-dev
From: Peter Xu <peterx@redhat.com>
They're the same macros underneath. Drop pXd_is_leaf(), instead always use
pXd_leaf().
At the meantime, instead of renames, drop the pXd_is_leaf() fallback
definitions directly in arch/powerpc/include/asm/pgtable.h. because similar
fallback macros for pXd_leaf() are already defined in
include/linux/pgtable.h.
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>
Cc: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
Cc: linuxppc-dev@lists.ozlabs.org
Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Peter Xu <peterx@redhat.com>
---
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
arch/powerpc/include/asm/pgtable.h | 24 --------------------
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
arch/powerpc/mm/pgtable.c | 6 ++---
arch/powerpc/mm/pgtable_64.c | 6 ++---
arch/powerpc/xmon/xmon.c | 6 ++---
7 files changed, 26 insertions(+), 52 deletions(-)
diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
index d1318e8582ac..3e99e409774a 100644
--- a/arch/powerpc/include/asm/book3s/64/pgtable.h
+++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -1439,18 +1439,16 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
/*
* Like pmd_huge() and pmd_large(), but works regardless of config options
*/
-#define pmd_is_leaf pmd_is_leaf
-#define pmd_leaf pmd_is_leaf
+#define pmd_leaf pmd_leaf
#define pmd_large pmd_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
+static inline bool pmd_leaf(pmd_t pmd)
{
return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
}
-#define pud_is_leaf pud_is_leaf
-#define pud_leaf pud_is_leaf
+#define pud_leaf pud_leaf
#define pud_large pud_leaf
-static inline bool pud_is_leaf(pud_t pud)
+static inline bool pud_leaf(pud_t pud)
{
return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
}
diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index 5928b3c1458d..e6edf1cdbc5b 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h
@@ -182,30 +182,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
}
#endif
-#ifndef pmd_is_leaf
-#define pmd_is_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
-{
- return false;
-}
-#endif
-
-#ifndef pud_is_leaf
-#define pud_is_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
-{
- return false;
-}
-#endif
-
-#ifndef p4d_is_leaf
-#define p4d_is_leaf p4d_is_leaf
-static inline bool p4d_is_leaf(p4d_t p4d)
-{
- return false;
-}
-#endif
-
#define pmd_pgtable pmd_pgtable
static inline pgtable_t pmd_pgtable(pmd_t pmd)
{
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 4a1abb9f7c05..408d98f8a514 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index c6a4ac766b2b..1f8db10693e3 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (IS_ALIGNED(addr, PMD_SIZE) &&
IS_ALIGNED(next, PMD_SIZE)) {
if (!direct)
@@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1554,7 +1554,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1601,7 +1601,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index 549a440ed7f6..9e7ba9c3851f 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -410,7 +410,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -432,7 +432,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -471,7 +471,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 1b366526f4f2..386c6b06eab7 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index b3b94cd37713..9669c9925225 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
--
2.43.0
^ permalink raw reply related [relevance 5%]
* [PATCH v2 2/7] mm/ppc: Replace pXd_is_leaf() with pXd_leaf()
@ 2024-02-29 8:42 5% ` peterx
0 siblings, 0 replies; 200+ results
From: peterx @ 2024-02-29 8:42 UTC (permalink / raw)
To: linux-mm, linux-kernel
Cc: linuxppc-dev, Yang Shi, Kirill A . Shutemov, Jason Gunthorpe,
peterx, Muchun Song, Andrew Morton, x86, Michael Ellerman,
Nicholas Piggin, Aneesh Kumar K.V, Naveen N. Rao,
Christophe Leroy
From: Peter Xu <peterx@redhat.com>
They're the same macros underneath. Drop pXd_is_leaf(), instead always use
pXd_leaf().
At the meantime, instead of renames, drop the pXd_is_leaf() fallback
definitions directly in arch/powerpc/include/asm/pgtable.h. because similar
fallback macros for pXd_leaf() are already defined in
include/linux/pgtable.h.
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>
Cc: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
Cc: linuxppc-dev@lists.ozlabs.org
Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Peter Xu <peterx@redhat.com>
---
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++----
arch/powerpc/include/asm/pgtable.h | 24 --------------------
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +++++-----
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 ++++++------
arch/powerpc/mm/pgtable.c | 6 ++---
arch/powerpc/mm/pgtable_64.c | 6 ++---
arch/powerpc/xmon/xmon.c | 6 ++---
7 files changed, 26 insertions(+), 52 deletions(-)
diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
index d1318e8582ac..3e99e409774a 100644
--- a/arch/powerpc/include/asm/book3s/64/pgtable.h
+++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -1439,18 +1439,16 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
/*
* Like pmd_huge() and pmd_large(), but works regardless of config options
*/
-#define pmd_is_leaf pmd_is_leaf
-#define pmd_leaf pmd_is_leaf
+#define pmd_leaf pmd_leaf
#define pmd_large pmd_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
+static inline bool pmd_leaf(pmd_t pmd)
{
return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
}
-#define pud_is_leaf pud_is_leaf
-#define pud_leaf pud_is_leaf
+#define pud_leaf pud_leaf
#define pud_large pud_leaf
-static inline bool pud_is_leaf(pud_t pud)
+static inline bool pud_leaf(pud_t pud)
{
return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
}
diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index 5928b3c1458d..e6edf1cdbc5b 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h
@@ -182,30 +182,6 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
}
#endif
-#ifndef pmd_is_leaf
-#define pmd_is_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
-{
- return false;
-}
-#endif
-
-#ifndef pud_is_leaf
-#define pud_is_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
-{
- return false;
-}
-#endif
-
-#ifndef p4d_is_leaf
-#define p4d_is_leaf p4d_is_leaf
-static inline bool p4d_is_leaf(p4d_t p4d)
-{
- return false;
-}
-#endif
-
#define pmd_pgtable pmd_pgtable
static inline pgtable_t pmd_pgtable(pmd_t pmd)
{
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 4a1abb9f7c05..408d98f8a514 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -503,7 +503,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -532,7 +532,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -635,12 +635,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -658,7 +658,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -709,7 +709,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index c6a4ac766b2b..1f8db10693e3 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (IS_ALIGNED(addr, PMD_SIZE) &&
IS_ALIGNED(next, PMD_SIZE)) {
if (!direct)
@@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1554,7 +1554,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1601,7 +1601,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index 549a440ed7f6..9e7ba9c3851f 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -410,7 +410,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -432,7 +432,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -471,7 +471,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 1b366526f4f2..386c6b06eab7 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index b3b94cd37713..9669c9925225 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
--
2.43.0
^ permalink raw reply related [relevance 5%]
* [PATCH -fixes 1/2] Revert "riscv: mm: support Svnapot in huge vmap"
2024-02-27 20:50 5% ` Alexandre Ghiti
@ 2024-02-27 20:50 11% ` Alexandre Ghiti
-1 siblings, 0 replies; 200+ results
From: Alexandre Ghiti @ 2024-02-27 20:50 UTC (permalink / raw)
To: Paul Walmsley, Palmer Dabbelt, Albert Ou, Andrew Jones,
Conor Dooley, Qinglin Pan, linux-riscv, linux-kernel
Cc: Alexandre Ghiti
This reverts commit ce173474cf19fe7fbe8f0fc74e3c81ec9c3d9807.
We cannot correctly deal with NAPOT mappings in vmalloc/vmap because if
some part of a NAPOT mapping is unmapped, the remaining mapping is not
updated accordingly. For example:
ptr = vmalloc_huge(64 * 1024, GFP_KERNEL);
vunmap_range((unsigned long)(ptr + PAGE_SIZE),
(unsigned long)(ptr + 64 * 1024));
leads to the following kernel page table dump:
0xffff8f8000ef0000-0xffff8f8000ef1000 0x00000001033c0000 4K PTE N .. .. D A G . . W R V
Meaning the first entry which was not unmapped still has the N bit set,
which, if accessed first and cached in the TLB, could allow access to the
unmapped range.
That's because the logic to break the NAPOT mapping does not exist and
likely won't. Indeed, to break a NAPOT mapping, we first have to clear
the whole mapping, flush the TLB and then set the new mapping ("break-
before-make" equivalent). That works fine in userspace since we can handle
any pagefault occurring on the remaining mapping but we can't handle a kernel
pagefault on such mapping.
So fix this by reverting the commit that introduced the vmap/vmalloc
support.
Fixes: ce173474cf19 ("riscv: mm: support Svnapot in huge vmap")
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
---
arch/riscv/include/asm/vmalloc.h | 61 +-------------------------------
1 file changed, 1 insertion(+), 60 deletions(-)
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 924d01b56c9a..51f6dfe19745 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -19,65 +19,6 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#ifdef CONFIG_RISCV_ISA_SVNAPOT
-#include <linux/pgtable.h>
+#endif
-#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
-static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
- u64 pfn, unsigned int max_page_shift)
-{
- unsigned long map_size = PAGE_SIZE;
- unsigned long size, order;
-
- if (!has_svnapot())
- return map_size;
-
- for_each_napot_order_rev(order) {
- if (napot_cont_shift(order) > max_page_shift)
- continue;
-
- size = napot_cont_size(order);
- if (end - addr < size)
- continue;
-
- if (!IS_ALIGNED(addr, size))
- continue;
-
- if (!IS_ALIGNED(PFN_PHYS(pfn), size))
- continue;
-
- map_size = size;
- break;
- }
-
- return map_size;
-}
-
-#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
-static inline int arch_vmap_pte_supported_shift(unsigned long size)
-{
- int shift = PAGE_SHIFT;
- unsigned long order;
-
- if (!has_svnapot())
- return shift;
-
- WARN_ON_ONCE(size >= PMD_SIZE);
-
- for_each_napot_order_rev(order) {
- if (napot_cont_size(order) > size)
- continue;
-
- if (!IS_ALIGNED(size, napot_cont_size(order)))
- continue;
-
- shift = napot_cont_shift(order);
- break;
- }
-
- return shift;
-}
-
-#endif /* CONFIG_RISCV_ISA_SVNAPOT */
-#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.39.2
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 11%]
* [PATCH -fixes 1/2] Revert "riscv: mm: support Svnapot in huge vmap"
@ 2024-02-27 20:50 11% ` Alexandre Ghiti
0 siblings, 0 replies; 200+ results
From: Alexandre Ghiti @ 2024-02-27 20:50 UTC (permalink / raw)
To: Paul Walmsley, Palmer Dabbelt, Albert Ou, Andrew Jones,
Conor Dooley, Qinglin Pan, linux-riscv, linux-kernel
Cc: Alexandre Ghiti
This reverts commit ce173474cf19fe7fbe8f0fc74e3c81ec9c3d9807.
We cannot correctly deal with NAPOT mappings in vmalloc/vmap because if
some part of a NAPOT mapping is unmapped, the remaining mapping is not
updated accordingly. For example:
ptr = vmalloc_huge(64 * 1024, GFP_KERNEL);
vunmap_range((unsigned long)(ptr + PAGE_SIZE),
(unsigned long)(ptr + 64 * 1024));
leads to the following kernel page table dump:
0xffff8f8000ef0000-0xffff8f8000ef1000 0x00000001033c0000 4K PTE N .. .. D A G . . W R V
Meaning the first entry which was not unmapped still has the N bit set,
which, if accessed first and cached in the TLB, could allow access to the
unmapped range.
That's because the logic to break the NAPOT mapping does not exist and
likely won't. Indeed, to break a NAPOT mapping, we first have to clear
the whole mapping, flush the TLB and then set the new mapping ("break-
before-make" equivalent). That works fine in userspace since we can handle
any pagefault occurring on the remaining mapping but we can't handle a kernel
pagefault on such mapping.
So fix this by reverting the commit that introduced the vmap/vmalloc
support.
Fixes: ce173474cf19 ("riscv: mm: support Svnapot in huge vmap")
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
---
arch/riscv/include/asm/vmalloc.h | 61 +-------------------------------
1 file changed, 1 insertion(+), 60 deletions(-)
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 924d01b56c9a..51f6dfe19745 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -19,65 +19,6 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#ifdef CONFIG_RISCV_ISA_SVNAPOT
-#include <linux/pgtable.h>
+#endif
-#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
-static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
- u64 pfn, unsigned int max_page_shift)
-{
- unsigned long map_size = PAGE_SIZE;
- unsigned long size, order;
-
- if (!has_svnapot())
- return map_size;
-
- for_each_napot_order_rev(order) {
- if (napot_cont_shift(order) > max_page_shift)
- continue;
-
- size = napot_cont_size(order);
- if (end - addr < size)
- continue;
-
- if (!IS_ALIGNED(addr, size))
- continue;
-
- if (!IS_ALIGNED(PFN_PHYS(pfn), size))
- continue;
-
- map_size = size;
- break;
- }
-
- return map_size;
-}
-
-#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
-static inline int arch_vmap_pte_supported_shift(unsigned long size)
-{
- int shift = PAGE_SHIFT;
- unsigned long order;
-
- if (!has_svnapot())
- return shift;
-
- WARN_ON_ONCE(size >= PMD_SIZE);
-
- for_each_napot_order_rev(order) {
- if (napot_cont_size(order) > size)
- continue;
-
- if (!IS_ALIGNED(size, napot_cont_size(order)))
- continue;
-
- shift = napot_cont_shift(order);
- break;
- }
-
- return shift;
-}
-
-#endif /* CONFIG_RISCV_ISA_SVNAPOT */
-#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.39.2
^ permalink raw reply related [relevance 11%]
* [PATCH -fixes 0/2] NAPOT Fixes
@ 2024-02-27 20:50 5% ` Alexandre Ghiti
0 siblings, 0 replies; 200+ results
From: Alexandre Ghiti @ 2024-02-27 20:50 UTC (permalink / raw)
To: Paul Walmsley, Palmer Dabbelt, Albert Ou, Andrew Jones,
Conor Dooley, Qinglin Pan, linux-riscv, linux-kernel
Cc: Alexandre Ghiti
This contains 2 fixes for NAPOT: patch 1 disables the use of NAPOT
mapping for vmalloc/vmap and patch 2 implements pte_leaf_size() to
report NAPOT size.
Alexandre Ghiti (2):
Revert "riscv: mm: support Svnapot in huge vmap"
riscv: Fix pte_leaf_size() for NAPOT
arch/riscv/include/asm/pgtable.h | 4 +++
arch/riscv/include/asm/vmalloc.h | 61 +-------------------------------
2 files changed, 5 insertions(+), 60 deletions(-)
--
2.39.2
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 5%]
* [PATCH -fixes 0/2] NAPOT Fixes
@ 2024-02-27 20:50 5% ` Alexandre Ghiti
0 siblings, 0 replies; 200+ results
From: Alexandre Ghiti @ 2024-02-27 20:50 UTC (permalink / raw)
To: Paul Walmsley, Palmer Dabbelt, Albert Ou, Andrew Jones,
Conor Dooley, Qinglin Pan, linux-riscv, linux-kernel
Cc: Alexandre Ghiti
This contains 2 fixes for NAPOT: patch 1 disables the use of NAPOT
mapping for vmalloc/vmap and patch 2 implements pte_leaf_size() to
report NAPOT size.
Alexandre Ghiti (2):
Revert "riscv: mm: support Svnapot in huge vmap"
riscv: Fix pte_leaf_size() for NAPOT
arch/riscv/include/asm/pgtable.h | 4 +++
arch/riscv/include/asm/vmalloc.h | 61 +-------------------------------
2 files changed, 5 insertions(+), 60 deletions(-)
--
2.39.2
^ permalink raw reply [relevance 5%]
* [PATCH] powerpc: Force inlining of arch_vmap_p{u/m}d_supported()
@ 2024-02-13 13:58 4% ` Christophe Leroy
0 siblings, 0 replies; 200+ results
From: Christophe Leroy @ 2024-02-13 13:58 UTC (permalink / raw)
To: Michael Ellerman, Nicholas Piggin
Cc: Christophe Leroy, linux-kernel, linuxppc-dev, kernel test robot
arch_vmap_pud_supported() and arch_vmap_pmd_supported() are
expected to constant-fold to false when RADIX is not enabled.
Force inlining in order to avoid following failure which
leads to unexpected call of non-existing pud_set_huge() and
pmd_set_huge() on powerpc 8xx.
In function 'pud_huge_tests',
inlined from 'debug_vm_pgtable' at mm/debug_vm_pgtable.c:1399:2:
./arch/powerpc/include/asm/vmalloc.h:9:33: warning: inlining failed in call to 'arch_vmap_pud_supported.isra': call is unlikely and code size would grow [-Winline]
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:10:20: note: in expansion of macro 'arch_vmap_pud_supported'
10 | static inline bool arch_vmap_pud_supported(pgprot_t prot)
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:9:33: note: called from here
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
mm/debug_vm_pgtable.c:458:14: note: in expansion of macro 'arch_vmap_pud_supported'
458 | if (!arch_vmap_pud_supported(args->page_prot) ||
| ^~~~~~~~~~~~~~~~~~~~~~~
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202402131836.OU1TDuoi-lkp@intel.com/
Fixes: 8309c9d71702 ("powerpc: inline huge vmap supported functions")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
---
arch/powerpc/include/asm/vmalloc.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/include/asm/vmalloc.h b/arch/powerpc/include/asm/vmalloc.h
index 4c69ece52a31..59ed89890c90 100644
--- a/arch/powerpc/include/asm/vmalloc.h
+++ b/arch/powerpc/include/asm/vmalloc.h
@@ -7,14 +7,14 @@
#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
#define arch_vmap_pud_supported arch_vmap_pud_supported
-static inline bool arch_vmap_pud_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pud_supported(pgprot_t prot)
{
/* HPT does not cope with large pages in the vmalloc area */
return radix_enabled();
}
#define arch_vmap_pmd_supported arch_vmap_pmd_supported
-static inline bool arch_vmap_pmd_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pmd_supported(pgprot_t prot)
{
return radix_enabled();
}
--
2.43.0
^ permalink raw reply related [relevance 4%]
* [PATCH] powerpc: Force inlining of arch_vmap_p{u/m}d_supported()
@ 2024-02-13 13:58 4% ` Christophe Leroy
0 siblings, 0 replies; 200+ results
From: Christophe Leroy @ 2024-02-13 13:58 UTC (permalink / raw)
To: Michael Ellerman, Nicholas Piggin
Cc: linuxppc-dev, linux-kernel, kernel test robot
arch_vmap_pud_supported() and arch_vmap_pmd_supported() are
expected to constant-fold to false when RADIX is not enabled.
Force inlining in order to avoid following failure which
leads to unexpected call of non-existing pud_set_huge() and
pmd_set_huge() on powerpc 8xx.
In function 'pud_huge_tests',
inlined from 'debug_vm_pgtable' at mm/debug_vm_pgtable.c:1399:2:
./arch/powerpc/include/asm/vmalloc.h:9:33: warning: inlining failed in call to 'arch_vmap_pud_supported.isra': call is unlikely and code size would grow [-Winline]
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:10:20: note: in expansion of macro 'arch_vmap_pud_supported'
10 | static inline bool arch_vmap_pud_supported(pgprot_t prot)
| ^~~~~~~~~~~~~~~~~~~~~~~
./arch/powerpc/include/asm/vmalloc.h:9:33: note: called from here
9 | #define arch_vmap_pud_supported arch_vmap_pud_supported
mm/debug_vm_pgtable.c:458:14: note: in expansion of macro 'arch_vmap_pud_supported'
458 | if (!arch_vmap_pud_supported(args->page_prot) ||
| ^~~~~~~~~~~~~~~~~~~~~~~
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202402131836.OU1TDuoi-lkp@intel.com/
Fixes: 8309c9d71702 ("powerpc: inline huge vmap supported functions")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
---
arch/powerpc/include/asm/vmalloc.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/include/asm/vmalloc.h b/arch/powerpc/include/asm/vmalloc.h
index 4c69ece52a31..59ed89890c90 100644
--- a/arch/powerpc/include/asm/vmalloc.h
+++ b/arch/powerpc/include/asm/vmalloc.h
@@ -7,14 +7,14 @@
#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
#define arch_vmap_pud_supported arch_vmap_pud_supported
-static inline bool arch_vmap_pud_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pud_supported(pgprot_t prot)
{
/* HPT does not cope with large pages in the vmalloc area */
return radix_enabled();
}
#define arch_vmap_pmd_supported arch_vmap_pmd_supported
-static inline bool arch_vmap_pmd_supported(pgprot_t prot)
+static __always_inline bool arch_vmap_pmd_supported(pgprot_t prot)
{
return radix_enabled();
}
--
2.43.0
^ permalink raw reply related [relevance 4%]
* [PATCH v9 1/7] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
@ 2023-11-30 2:53 5% ` Rohan McLure
0 siblings, 0 replies; 200+ results
From: Rohan McLure @ 2023-11-30 2:53 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Rohan McLure
Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
latter is the name given to checking that a higher-level entry in
multi-level paging contains a page translation entry (pte) throughout
all other archs.
A future patch will implement p{u,m,4}_leaf stubs on all platforms so
that they may be referenced in generic code.
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
---
v9: No longer required in order to implement page table check, just a
refactor.
---
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 ++++++------
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 +++++++-------
arch/powerpc/mm/pgtable.c | 6 +++---
arch/powerpc/mm/pgtable_64.c | 6 +++---
arch/powerpc/xmon/xmon.c | 6 +++---
5 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 175a8eb2681f..fdb178fe754c 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -498,7 +498,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -527,7 +527,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -630,12 +630,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -653,7 +653,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -704,7 +704,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index c6a4ac766b2b..1f8db10693e3 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -204,14 +204,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -767,7 +767,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (IS_ALIGNED(addr, PMD_SIZE) &&
IS_ALIGNED(next, PMD_SIZE)) {
if (!direct)
@@ -807,7 +807,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -845,7 +845,7 @@ remove_pagetable(unsigned long start, unsigned long end, bool direct,
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1554,7 +1554,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1601,7 +1601,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index a04ae4449a02..e8e0289d7ab0 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -413,7 +413,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -435,7 +435,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -474,7 +474,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 5ac1fd30341b..0604c80dae66 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index b3b94cd37713..9669c9925225 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
--
2.43.0
^ permalink raw reply related [relevance 5%]
* Re: [GIT PULL] asm-generic updates for v6.7
2023-11-01 23:50 1% [GIT PULL] asm-generic updates for v6.7 Arnd Bergmann
@ 2023-11-02 10:24 0% ` Frank Scheiner
0 siblings, 0 replies; 200+ results
From: Frank Scheiner @ 2023-11-02 10:24 UTC (permalink / raw)
To: Linus Torvalds, Arnd Bergmann
Cc: Tomáš Glozar, linux-ia64, linux-kernel, Linux-Arch,
Ard Biesheuvel
Dear all,
so the ia64 removal happened despite the efforts - not only from us - to
keep it alive in Linux. That is a - sad - fact now.
There was no real breakage for ia64 in the kernel that I know of since
[db3e33d] was merged five months ago and _if it ain't broke, don't fix it_.
Well, it's really broken now.
We built upon what others had accomplished before in the kernel and
outside of the kernel. We started to take care of existing problems
(glibc, gcc) and others also did their part in getting things fixed for
ia64 (grub). We gathered people around us that have both the required
machines and the interest to help out. And despite what others claim, we
are users of this architecture and continue to be and we are not alone.
We simply tried to take care of the architecture in and outside of
kernel space with the assumption that this was what was needed to keep
an architecture alive. But apparently that was either not good enough,
not wanted or simply not enough to prevent its removal.
At the moment I am out of ideas what other options there are, actually
I'm really puzzled here. Because what we tried to accomplish, isn't that
what you want for Linux: to arouse people's interest in working on the
kernel and ecosytem? Well, you were successful with that for ia64, but
removed it anyhow.
So I ask the simple question:
What needs to be done to get ia64 back into Linux?
All the best,
Frank
[db3e33d]:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=db3e33dd8bd956f165436afdbdbf1c653fb3c8e6
On 02.11.23 00:50, Arnd Bergmann wrote:
> The following changes since commit a0334bf78b95532cec54f56b53e8ae1bfe7e1ca1:
>
> acpi: Provide ia64 dummy implementation of acpi_proc_quirk_mwait_check() (2023-09-11 08:13:17 +0000)
>
> are available in the Git repository at:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git tags/asm-generic-6.7
>
> for you to fetch changes up to 550087a0ba91eb001c139f563a193b1e9ef5a8dd:
>
> hexagon: Remove unusable symbols from the ptrace.h uapi (2023-10-25 15:54:24 +0200)
>
> ----------------------------------------------------------------
> asm-generic updates for v6.7
>
> The ia64 architecture gets its well-earned retirement as planned,
> now that there is one last (mostly) working release that will
> be maintained as an LTS kernel.
>
> The architecture specific system call tables are updated for
> the added map_shadow_stack() syscall and to remove references
> to the long-gone sys_lookup_dcookie() syscall.
>
> ----------------------------------------------------------------
> Note that the ia64 removal has a number of conflicts against
> modified files from other pull requests. It might help to pull
> this a few days later, after most of the other ones are already
> there.
>
> Andy Shevchenko (1):
> asm-generic: Fix spelling of architecture
>
> Ard Biesheuvel (5):
> arch: Remove Itanium (IA-64) architecture
> kernel: Drop IA64 support from sig_fault handlers
> Documentation: Drop IA64 from feature descriptions
> lib/raid6: Drop IA64 support
> Documentation: Drop or replace remaining mentions of IA64
>
> Arnd Bergmann (1):
> Merge tag 'tag-remove-ia64' of git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux into asm-generic
>
> Sohil Mehta (2):
> syscalls: Cleanup references to sys_lookup_dcookie()
> arch: Reserve map_shadow_stack() syscall number for all architectures
>
> Thomas Huth (1):
> hexagon: Remove unusable symbols from the ptrace.h uapi
>
> Documentation/ABI/testing/sysfs-devices-system-cpu | 3 -
> .../ABI/testing/sysfs-firmware-dmi-entries | 2 +-
> Documentation/admin-guide/kdump/kdump.rst | 37 +-
> Documentation/admin-guide/kdump/vmcoreinfo.rst | 30 -
> Documentation/admin-guide/kernel-parameters.txt | 8 +-
> Documentation/admin-guide/mm/memory-hotplug.rst | 2 +-
> Documentation/admin-guide/sysctl/kernel.rst | 23 +-
> Documentation/arch/ia64/aliasing.rst | 246 ---
> Documentation/arch/ia64/efirtc.rst | 144 --
> Documentation/arch/ia64/err_inject.rst | 1067 ---------
> Documentation/arch/ia64/features.rst | 3 -
> Documentation/arch/ia64/fsys.rst | 303 ---
> Documentation/arch/ia64/ia64.rst | 49 -
> Documentation/arch/ia64/index.rst | 19 -
> Documentation/arch/ia64/irq-redir.rst | 80 -
> Documentation/arch/ia64/mca.rst | 198 --
> Documentation/arch/ia64/serial.rst | 165 --
> Documentation/arch/index.rst | 1 -
> Documentation/block/ioprio.rst | 3 -
> Documentation/core-api/cpu_hotplug.rst | 6 -
> Documentation/core-api/debugging-via-ohci1394.rst | 6 +-
> .../features/core/cBPF-JIT/arch-support.txt | 1 -
> .../features/core/eBPF-JIT/arch-support.txt | 1 -
> .../core/generic-idle-thread/arch-support.txt | 1 -
> .../features/core/jump-labels/arch-support.txt | 1 -
> .../core/thread-info-in-task/arch-support.txt | 1 -
> .../features/core/tracehook/arch-support.txt | 1 -
> .../features/debug/KASAN/arch-support.txt | 1 -
> .../debug/debug-vm-pgtable/arch-support.txt | 1 -
> .../debug/gcov-profile-all/arch-support.txt | 1 -
> Documentation/features/debug/kcov/arch-support.txt | 1 -
> Documentation/features/debug/kgdb/arch-support.txt | 1 -
> .../features/debug/kmemleak/arch-support.txt | 1 -
> .../debug/kprobes-on-ftrace/arch-support.txt | 1 -
> .../features/debug/kprobes/arch-support.txt | 1 -
> .../features/debug/kretprobes/arch-support.txt | 1 -
> .../features/debug/optprobes/arch-support.txt | 1 -
> .../features/debug/stackprotector/arch-support.txt | 1 -
> .../features/debug/uprobes/arch-support.txt | 1 -
> .../debug/user-ret-profiler/arch-support.txt | 1 -
> .../features/io/dma-contiguous/arch-support.txt | 1 -
> .../locking/cmpxchg-local/arch-support.txt | 1 -
> .../features/locking/lockdep/arch-support.txt | 1 -
> .../locking/queued-rwlocks/arch-support.txt | 1 -
> .../locking/queued-spinlocks/arch-support.txt | 1 -
> .../features/perf/kprobes-event/arch-support.txt | 1 -
> .../features/perf/perf-regs/arch-support.txt | 1 -
> .../features/perf/perf-stackdump/arch-support.txt | 1 -
> .../sched/membarrier-sync-core/arch-support.txt | 1 -
> .../features/sched/numa-balancing/arch-support.txt | 1 -
> .../seccomp/seccomp-filter/arch-support.txt | 1 -
> .../time/arch-tick-broadcast/arch-support.txt | 1 -
> .../features/time/clockevents/arch-support.txt | 1 -
> .../time/context-tracking/arch-support.txt | 1 -
> .../features/time/irq-time-acct/arch-support.txt | 1 -
> .../features/time/virt-cpuacct/arch-support.txt | 1 -
> .../features/vm/ELF-ASLR/arch-support.txt | 1 -
> .../features/vm/PG_uncached/arch-support.txt | 1 -
> Documentation/features/vm/THP/arch-support.txt | 1 -
> Documentation/features/vm/TLB/arch-support.txt | 1 -
> .../features/vm/huge-vmap/arch-support.txt | 1 -
> .../features/vm/ioremap_prot/arch-support.txt | 1 -
> .../features/vm/pte_special/arch-support.txt | 1 -
> Documentation/kbuild/makefiles.rst | 2 +-
> .../device_drivers/ethernet/neterion/s2io.rst | 4 +-
> Documentation/scheduler/sched-arch.rst | 4 +-
> Documentation/trace/kprobes.rst | 1 -
> Documentation/translations/zh_CN/arch/index.rst | 1 -
> .../translations/zh_CN/core-api/cpu_hotplug.rst | 6 -
> .../translations/zh_CN/scheduler/sched-arch.rst | 5 +-
> MAINTAINERS | 11 -
> Makefile | 4 +-
> arch/Kconfig | 1 -
> arch/alpha/kernel/syscalls/syscall.tbl | 3 +-
> arch/arm/tools/syscall.tbl | 3 +-
> arch/arm64/include/asm/unistd.h | 2 +-
> arch/arm64/include/asm/unistd32.h | 6 +-
> arch/hexagon/include/asm/ptrace.h | 25 +
> arch/hexagon/include/uapi/asm/ptrace.h | 13 -
> arch/ia64/Kbuild | 3 -
> arch/ia64/Kconfig | 394 ----
> arch/ia64/Kconfig.debug | 55 -
> arch/ia64/Makefile | 82 -
> arch/ia64/configs/bigsur_defconfig | 102 -
> arch/ia64/configs/generic_defconfig | 206 --
> arch/ia64/configs/gensparse_defconfig | 184 --
> arch/ia64/configs/tiger_defconfig | 169 --
> arch/ia64/configs/zx1_defconfig | 148 --
> arch/ia64/hp/common/Makefile | 10 -
> arch/ia64/hp/common/aml_nfw.c | 232 --
> arch/ia64/hp/common/sba_iommu.c | 2155 ------------------
> arch/ia64/include/asm/Kbuild | 6 -
> arch/ia64/include/asm/acenv.h | 49 -
> arch/ia64/include/asm/acpi-ext.h | 17 -
> arch/ia64/include/asm/acpi.h | 110 -
> arch/ia64/include/asm/asm-offsets.h | 1 -
> arch/ia64/include/asm/asm-prototypes.h | 30 -
> arch/ia64/include/asm/asmmacro.h | 136 --
> arch/ia64/include/asm/atomic.h | 216 --
> arch/ia64/include/asm/barrier.h | 79 -
> arch/ia64/include/asm/bitops.h | 453 ----
> arch/ia64/include/asm/bug.h | 19 -
> arch/ia64/include/asm/cache.h | 30 -
> arch/ia64/include/asm/cacheflush.h | 39 -
> arch/ia64/include/asm/checksum.h | 63 -
> arch/ia64/include/asm/clocksource.h | 11 -
> arch/ia64/include/asm/cmpxchg.h | 33 -
> arch/ia64/include/asm/cpu.h | 23 -
> arch/ia64/include/asm/cputime.h | 21 -
> arch/ia64/include/asm/current.h | 18 -
> arch/ia64/include/asm/cyclone.h | 16 -
> arch/ia64/include/asm/delay.h | 89 -
> arch/ia64/include/asm/device.h | 14 -
> arch/ia64/include/asm/div64.h | 1 -
> arch/ia64/include/asm/dma-mapping.h | 16 -
> arch/ia64/include/asm/dma.h | 17 -
> arch/ia64/include/asm/dmi.h | 15 -
> arch/ia64/include/asm/early_ioremap.h | 11 -
> arch/ia64/include/asm/efi.h | 13 -
> arch/ia64/include/asm/elf.h | 233 --
> arch/ia64/include/asm/emergency-restart.h | 6 -
> arch/ia64/include/asm/esi.h | 30 -
> arch/ia64/include/asm/exception.h | 23 -
> arch/ia64/include/asm/extable.h | 12 -
> arch/ia64/include/asm/fb.h | 43 -
> arch/ia64/include/asm/fpswa.h | 74 -
> arch/ia64/include/asm/ftrace.h | 28 -
> arch/ia64/include/asm/futex.h | 109 -
> arch/ia64/include/asm/gcc_intrin.h | 13 -
> arch/ia64/include/asm/hardirq.h | 27 -
> arch/ia64/include/asm/hugetlb.h | 34 -
> arch/ia64/include/asm/hw_irq.h | 167 --
> arch/ia64/include/asm/idle.h | 8 -
> arch/ia64/include/asm/intrinsics.h | 13 -
> arch/ia64/include/asm/io.h | 271 ---
> arch/ia64/include/asm/iommu.h | 22 -
> arch/ia64/include/asm/iosapic.h | 106 -
> arch/ia64/include/asm/irq.h | 37 -
> arch/ia64/include/asm/irq_regs.h | 1 -
> arch/ia64/include/asm/irq_remapping.h | 5 -
> arch/ia64/include/asm/irqflags.h | 95 -
> arch/ia64/include/asm/kdebug.h | 45 -
> arch/ia64/include/asm/kexec.h | 46 -
> arch/ia64/include/asm/kprobes.h | 116 -
> arch/ia64/include/asm/kregs.h | 166 --
> arch/ia64/include/asm/libata-portmap.h | 9 -
> arch/ia64/include/asm/linkage.h | 19 -
> arch/ia64/include/asm/local.h | 1 -
> arch/ia64/include/asm/mca.h | 185 --
> arch/ia64/include/asm/mca_asm.h | 245 ---
> arch/ia64/include/asm/meminit.h | 59 -
> arch/ia64/include/asm/mman.h | 18 -
> arch/ia64/include/asm/mmiowb.h | 17 -
> arch/ia64/include/asm/mmu.h | 14 -
> arch/ia64/include/asm/mmu_context.h | 194 --
> arch/ia64/include/asm/mmzone.h | 35 -
> arch/ia64/include/asm/module.h | 35 -
> arch/ia64/include/asm/module.lds.h | 14 -
> arch/ia64/include/asm/msidef.h | 43 -
> arch/ia64/include/asm/native/inst.h | 119 -
> arch/ia64/include/asm/native/irq.h | 20 -
> arch/ia64/include/asm/native/patchlist.h | 24 -
> arch/ia64/include/asm/nodedata.h | 63 -
> arch/ia64/include/asm/numa.h | 83 -
> arch/ia64/include/asm/page.h | 208 --
> arch/ia64/include/asm/pal.h | 1827 ---------------
> arch/ia64/include/asm/param.h | 18 -
> arch/ia64/include/asm/parport.h | 20 -
> arch/ia64/include/asm/patch.h | 28 -
> arch/ia64/include/asm/pci.h | 66 -
> arch/ia64/include/asm/percpu.h | 53 -
> arch/ia64/include/asm/pgalloc.h | 64 -
> arch/ia64/include/asm/pgtable.h | 545 -----
> arch/ia64/include/asm/processor.h | 660 ------
> arch/ia64/include/asm/ptrace.h | 146 --
> arch/ia64/include/asm/sal.h | 919 --------
> arch/ia64/include/asm/sections.h | 33 -
> arch/ia64/include/asm/serial.h | 17 -
> arch/ia64/include/asm/shmparam.h | 13 -
> arch/ia64/include/asm/signal.h | 33 -
> arch/ia64/include/asm/smp.h | 103 -
> arch/ia64/include/asm/sn/intr.h | 15 -
> arch/ia64/include/asm/sn/sn_sal.h | 124 --
> arch/ia64/include/asm/sparsemem.h | 28 -
> arch/ia64/include/asm/spinlock.h | 265 ---
> arch/ia64/include/asm/spinlock_types.h | 22 -
> arch/ia64/include/asm/string.h | 22 -
> arch/ia64/include/asm/switch_to.h | 71 -
> arch/ia64/include/asm/syscall.h | 65 -
> arch/ia64/include/asm/thread_info.h | 131 --
> arch/ia64/include/asm/timex.h | 47 -
> arch/ia64/include/asm/tlb.h | 50 -
> arch/ia64/include/asm/tlbflush.h | 128 --
> arch/ia64/include/asm/topology.h | 56 -
> arch/ia64/include/asm/types.h | 32 -
> arch/ia64/include/asm/uaccess.h | 265 ---
> arch/ia64/include/asm/uncached.h | 9 -
> arch/ia64/include/asm/unistd.h | 38 -
> arch/ia64/include/asm/unwind.h | 234 --
> arch/ia64/include/asm/user.h | 53 -
> arch/ia64/include/asm/ustack.h | 12 -
> arch/ia64/include/asm/uv/uv.h | 30 -
> arch/ia64/include/asm/uv/uv_hub.h | 315 ---
> arch/ia64/include/asm/uv/uv_mmrs.h | 825 -------
> arch/ia64/include/asm/vermagic.h | 15 -
> arch/ia64/include/asm/vga.h | 26 -
> arch/ia64/include/asm/vmalloc.h | 4 -
> arch/ia64/include/asm/xor.h | 30 -
> arch/ia64/include/asm/xtp.h | 46 -
> arch/ia64/include/uapi/asm/Kbuild | 2 -
> arch/ia64/include/uapi/asm/auxvec.h | 14 -
> arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
> arch/ia64/include/uapi/asm/break.h | 23 -
> arch/ia64/include/uapi/asm/byteorder.h | 7 -
> arch/ia64/include/uapi/asm/cmpxchg.h | 138 --
> arch/ia64/include/uapi/asm/fcntl.h | 15 -
> arch/ia64/include/uapi/asm/fpu.h | 67 -
> arch/ia64/include/uapi/asm/gcc_intrin.h | 619 ------
> arch/ia64/include/uapi/asm/ia64regs.h | 101 -
> arch/ia64/include/uapi/asm/intrinsics.h | 82 -
> arch/ia64/include/uapi/asm/mman.h | 17 -
> arch/ia64/include/uapi/asm/param.h | 30 -
> arch/ia64/include/uapi/asm/posix_types.h | 9 -
> arch/ia64/include/uapi/asm/ptrace.h | 248 ---
> arch/ia64/include/uapi/asm/ptrace_offsets.h | 269 ---
> arch/ia64/include/uapi/asm/resource.h | 8 -
> arch/ia64/include/uapi/asm/rse.h | 67 -
> arch/ia64/include/uapi/asm/setup.h | 25 -
> arch/ia64/include/uapi/asm/sigcontext.h | 71 -
> arch/ia64/include/uapi/asm/siginfo.h | 28 -
> arch/ia64/include/uapi/asm/signal.h | 98 -
> arch/ia64/include/uapi/asm/stat.h | 52 -
> arch/ia64/include/uapi/asm/statfs.h | 21 -
> arch/ia64/include/uapi/asm/swab.h | 35 -
> arch/ia64/include/uapi/asm/types.h | 32 -
> arch/ia64/include/uapi/asm/ucontext.h | 13 -
> arch/ia64/include/uapi/asm/unistd.h | 22 -
> arch/ia64/include/uapi/asm/ustack.h | 13 -
> arch/ia64/install.sh | 30 -
> arch/ia64/kernel/.gitignore | 3 -
> arch/ia64/kernel/Makefile | 46 -
> arch/ia64/kernel/Makefile.gate | 29 -
> arch/ia64/kernel/acpi-ext.c | 101 -
> arch/ia64/kernel/acpi.c | 913 --------
> arch/ia64/kernel/asm-offsets.c | 289 ---
> arch/ia64/kernel/audit.c | 63 -
> arch/ia64/kernel/brl_emu.c | 217 --
> arch/ia64/kernel/crash.c | 257 ---
> arch/ia64/kernel/crash_dump.c | 27 -
> arch/ia64/kernel/cyclone.c | 125 --
> arch/ia64/kernel/dma-mapping.c | 9 -
> arch/ia64/kernel/efi.c | 1360 ------------
> arch/ia64/kernel/efi_stub.S | 87 -
> arch/ia64/kernel/elfcore.c | 77 -
> arch/ia64/kernel/entry.S | 1427 ------------
> arch/ia64/kernel/entry.h | 83 -
> arch/ia64/kernel/err_inject.c | 273 ---
> arch/ia64/kernel/esi.c | 193 --
> arch/ia64/kernel/esi_stub.S | 99 -
> arch/ia64/kernel/fsys.S | 837 -------
> arch/ia64/kernel/fsyscall_gtod_data.h | 30 -
> arch/ia64/kernel/ftrace.c | 196 --
> arch/ia64/kernel/gate-data.S | 3 -
> arch/ia64/kernel/gate.S | 380 ----
> arch/ia64/kernel/gate.lds.S | 108 -
> arch/ia64/kernel/head.S | 1167 ----------
> arch/ia64/kernel/iosapic.c | 1137 ----------
> arch/ia64/kernel/irq.c | 181 --
> arch/ia64/kernel/irq.h | 3 -
> arch/ia64/kernel/irq_ia64.c | 645 ------
> arch/ia64/kernel/irq_lsapic.c | 45 -
> arch/ia64/kernel/ivt.S | 1688 --------------
> arch/ia64/kernel/kprobes.c | 911 --------
> arch/ia64/kernel/machine_kexec.c | 163 --
> arch/ia64/kernel/mca.c | 2111 ------------------
> arch/ia64/kernel/mca_asm.S | 1123 ----------
> arch/ia64/kernel/mca_drv.c | 796 -------
> arch/ia64/kernel/mca_drv.h | 123 --
> arch/ia64/kernel/mca_drv_asm.S | 56 -
> arch/ia64/kernel/minstate.h | 251 ---
> arch/ia64/kernel/module.c | 959 --------
> arch/ia64/kernel/msi_ia64.c | 198 --
> arch/ia64/kernel/numa.c | 73 -
> arch/ia64/kernel/pal.S | 306 ---
> arch/ia64/kernel/palinfo.c | 942 --------
> arch/ia64/kernel/patch.c | 237 --
> arch/ia64/kernel/pci-dma.c | 33 -
> arch/ia64/kernel/perfmon_itanium.h | 116 -
> arch/ia64/kernel/process.c | 611 ------
> arch/ia64/kernel/ptrace.c | 2012 -----------------
> arch/ia64/kernel/relocate_kernel.S | 321 ---
> arch/ia64/kernel/sal.c | 400 ----
> arch/ia64/kernel/salinfo.c | 646 ------
> arch/ia64/kernel/setup.c | 1081 ---------
> arch/ia64/kernel/sigframe.h | 26 -
> arch/ia64/kernel/signal.c | 412 ----
> arch/ia64/kernel/smp.c | 335 ---
> arch/ia64/kernel/smpboot.c | 839 -------
> arch/ia64/kernel/stacktrace.c | 40 -
> arch/ia64/kernel/sys_ia64.c | 197 --
> arch/ia64/kernel/syscalls/Makefile | 32 -
> arch/ia64/kernel/syscalls/syscall.tbl | 375 ----
> arch/ia64/kernel/time.c | 463 ----
> arch/ia64/kernel/topology.c | 410 ----
> arch/ia64/kernel/traps.c | 612 ------
> arch/ia64/kernel/unaligned.c | 1560 -------------
> arch/ia64/kernel/uncached.c | 273 ---
> arch/ia64/kernel/unwind.c | 2320 --------------------
> arch/ia64/kernel/unwind_decoder.c | 460 ----
> arch/ia64/kernel/unwind_i.h | 165 --
> arch/ia64/kernel/vmlinux.lds.S | 224 --
> arch/ia64/lib/Makefile | 48 -
> arch/ia64/lib/checksum.c | 102 -
> arch/ia64/lib/clear_page.S | 79 -
> arch/ia64/lib/clear_user.S | 212 --
> arch/ia64/lib/copy_page.S | 101 -
> arch/ia64/lib/copy_page_mck.S | 188 --
> arch/ia64/lib/copy_user.S | 613 ------
> arch/ia64/lib/csum_partial_copy.c | 98 -
> arch/ia64/lib/do_csum.S | 324 ---
> arch/ia64/lib/flush.S | 119 -
> arch/ia64/lib/idiv32.S | 86 -
> arch/ia64/lib/idiv64.S | 83 -
> arch/ia64/lib/io.c | 51 -
> arch/ia64/lib/ip_fast_csum.S | 148 --
> arch/ia64/lib/memcpy.S | 304 ---
> arch/ia64/lib/memcpy_mck.S | 659 ------
> arch/ia64/lib/memset.S | 365 ---
> arch/ia64/lib/strlen.S | 195 --
> arch/ia64/lib/strncpy_from_user.S | 47 -
> arch/ia64/lib/strnlen_user.S | 48 -
> arch/ia64/lib/xor.S | 181 --
> arch/ia64/mm/Makefile | 11 -
> arch/ia64/mm/contig.c | 208 --
> arch/ia64/mm/discontig.c | 635 ------
> arch/ia64/mm/extable.c | 24 -
> arch/ia64/mm/fault.c | 251 ---
> arch/ia64/mm/hugetlbpage.c | 186 --
> arch/ia64/mm/init.c | 532 -----
> arch/ia64/mm/ioremap.c | 94 -
> arch/ia64/mm/numa.c | 80 -
> arch/ia64/mm/tlb.c | 591 -----
> arch/ia64/pci/Makefile | 5 -
> arch/ia64/pci/fixup.c | 80 -
> arch/ia64/pci/pci.c | 576 -----
> arch/ia64/scripts/check-gas | 16 -
> arch/ia64/scripts/check-gas-asm.S | 2 -
> arch/ia64/scripts/check-model.c | 1 -
> arch/ia64/scripts/check-segrel.S | 5 -
> arch/ia64/scripts/check-segrel.lds | 13 -
> arch/ia64/scripts/check-serialize.S | 2 -
> arch/ia64/scripts/check-text-align.S | 7 -
> arch/ia64/scripts/toolchain-flags | 54 -
> arch/ia64/scripts/unwcheck.py | 65 -
> arch/ia64/uv/Makefile | 12 -
> arch/ia64/uv/kernel/Makefile | 12 -
> arch/ia64/uv/kernel/setup.c | 120 -
> arch/m68k/kernel/syscalls/syscall.tbl | 3 +-
> arch/microblaze/kernel/syscalls/syscall.tbl | 3 +-
> arch/mips/kernel/syscalls/syscall_n32.tbl | 3 +-
> arch/mips/kernel/syscalls/syscall_n64.tbl | 3 +-
> arch/mips/kernel/syscalls/syscall_o32.tbl | 3 +-
> arch/parisc/kernel/syscalls/syscall.tbl | 3 +-
> arch/powerpc/kernel/syscalls/syscall.tbl | 3 +-
> arch/s390/kernel/syscalls/syscall.tbl | 3 +-
> arch/sh/kernel/syscalls/syscall.tbl | 3 +-
> arch/sparc/kernel/syscalls/syscall.tbl | 3 +-
> arch/x86/entry/syscalls/syscall_32.tbl | 3 +-
> arch/x86/entry/syscalls/syscall_64.tbl | 2 +-
> arch/xtensa/kernel/syscalls/syscall.tbl | 3 +-
> drivers/acpi/Kconfig | 6 +-
> drivers/acpi/numa/Kconfig | 4 +-
> drivers/acpi/osl.c | 2 +-
> drivers/char/Kconfig | 4 +-
> drivers/char/Makefile | 1 -
> drivers/char/agp/Kconfig | 16 +-
> drivers/char/agp/Makefile | 2 -
> drivers/char/agp/hp-agp.c | 550 -----
> drivers/char/agp/i460-agp.c | 659 ------
> drivers/char/hpet.c | 30 -
> drivers/char/hw_random/Kconfig | 2 +-
> drivers/char/mem.c | 12 -
> drivers/char/mspec.c | 295 ---
> drivers/cpufreq/Kconfig | 11 -
> drivers/cpufreq/Makefile | 1 -
> drivers/cpufreq/ia64-acpi-cpufreq.c | 353 ---
> drivers/firmware/Kconfig | 24 -
> drivers/firmware/Makefile | 1 -
> drivers/firmware/efi/Kconfig | 6 +-
> drivers/firmware/efi/efi.c | 13 +-
> drivers/firmware/pcdp.c | 135 --
> drivers/firmware/pcdp.h | 108 -
> drivers/gpu/drm/drm_ioc32.c | 4 +-
> drivers/input/serio/i8042.h | 2 +-
> drivers/iommu/Kconfig | 4 +-
> drivers/iommu/intel/Kconfig | 2 +-
> drivers/media/cec/platform/Kconfig | 2 +-
> drivers/misc/Kconfig | 2 +-
> drivers/misc/sgi-gru/gru.h | 4 +-
> drivers/misc/sgi-gru/gru_instructions.h | 12 +-
> drivers/misc/sgi-gru/grufile.c | 72 -
> drivers/misc/sgi-gru/gruhandles.c | 6 -
> drivers/misc/sgi-gru/grumain.c | 4 -
> drivers/misc/sgi-xp/xp.h | 2 +-
> drivers/misc/sgi-xp/xp_uv.c | 24 -
> drivers/misc/sgi-xp/xpc_main.c | 31 -
> drivers/misc/sgi-xp/xpc_uv.c | 85 -
> drivers/net/ethernet/broadcom/tg3.c | 2 +-
> drivers/net/ethernet/brocade/bna/bnad.h | 1 -
> .../net/ethernet/qlogic/netxen/netxen_nic_main.c | 2 -
> drivers/pci/vgaarb.c | 2 +-
> drivers/tty/serial/8250/Kconfig | 2 +-
> drivers/tty/vt/keyboard.c | 2 +-
> drivers/video/fbdev/Kconfig | 2 +-
> drivers/watchdog/Kconfig | 2 +-
> fs/Kconfig | 2 +-
> fs/afs/main.c | 2 -
> fs/xfs/xfs_ioctl32.h | 2 +-
> include/asm-generic/Kbuild | 2 +-
> include/linux/acpi.h | 9 +-
> include/linux/compat.h | 1 -
> include/linux/efi.h | 7 -
> include/linux/mm.h | 2 -
> include/linux/moduleparam.h | 2 +-
> include/linux/raid/pq.h | 2 -
> include/linux/sched/signal.h | 17 +-
> include/linux/syscalls.h | 1 -
> include/trace/events/mmflags.h | 2 +-
> include/uapi/asm-generic/siginfo.h | 5 -
> include/uapi/asm-generic/unistd.h | 7 +-
> init/Kconfig | 2 +-
> kernel/cpu.c | 3 -
> kernel/fork.c | 2 +-
> kernel/sched/core.c | 29 +-
> kernel/signal.c | 25 +-
> kernel/sys_ni.c | 2 -
> kernel/sysctl.c | 9 -
> lib/Kconfig.debug | 2 +-
> lib/decompress_unxz.c | 3 -
> lib/raid6/Makefile | 4 +-
> lib/raid6/algos.c | 4 -
> lib/raid6/int.uc | 9 -
> lib/xz/Kconfig | 5 -
> mm/mmap.c | 6 +-
> scripts/headers_install.sh | 1 -
> tools/arch/ia64/include/asm/barrier.h | 59 -
> tools/arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
> tools/arch/ia64/include/uapi/asm/mman.h | 7 -
> tools/include/uapi/asm-generic/unistd.h | 2 +-
> .../perf/arch/mips/entry/syscalls/syscall_n64.tbl | 2 +-
> tools/perf/arch/powerpc/entry/syscalls/syscall.tbl | 2 +-
> tools/perf/arch/s390/entry/syscalls/syscall.tbl | 2 +-
> tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 2 +-
> usr/include/Makefile | 6 -
> 454 files changed, 144 insertions(+), 65220 deletions(-)
> delete mode 100644 Documentation/arch/ia64/aliasing.rst
> delete mode 100644 Documentation/arch/ia64/efirtc.rst
> delete mode 100644 Documentation/arch/ia64/err_inject.rst
> delete mode 100644 Documentation/arch/ia64/features.rst
> delete mode 100644 Documentation/arch/ia64/fsys.rst
> delete mode 100644 Documentation/arch/ia64/ia64.rst
> delete mode 100644 Documentation/arch/ia64/index.rst
> delete mode 100644 Documentation/arch/ia64/irq-redir.rst
> delete mode 100644 Documentation/arch/ia64/mca.rst
> delete mode 100644 Documentation/arch/ia64/serial.rst
> create mode 100644 arch/hexagon/include/asm/ptrace.h
> delete mode 100644 arch/ia64/Kbuild
> delete mode 100644 arch/ia64/Kconfig
> delete mode 100644 arch/ia64/Kconfig.debug
> delete mode 100644 arch/ia64/Makefile
> delete mode 100644 arch/ia64/configs/bigsur_defconfig
> delete mode 100644 arch/ia64/configs/generic_defconfig
> delete mode 100644 arch/ia64/configs/gensparse_defconfig
> delete mode 100644 arch/ia64/configs/tiger_defconfig
> delete mode 100644 arch/ia64/configs/zx1_defconfig
> delete mode 100644 arch/ia64/hp/common/Makefile
> delete mode 100644 arch/ia64/hp/common/aml_nfw.c
> delete mode 100644 arch/ia64/hp/common/sba_iommu.c
> delete mode 100644 arch/ia64/include/asm/Kbuild
> delete mode 100644 arch/ia64/include/asm/acenv.h
> delete mode 100644 arch/ia64/include/asm/acpi-ext.h
> delete mode 100644 arch/ia64/include/asm/acpi.h
> delete mode 100644 arch/ia64/include/asm/asm-offsets.h
> delete mode 100644 arch/ia64/include/asm/asm-prototypes.h
> delete mode 100644 arch/ia64/include/asm/asmmacro.h
> delete mode 100644 arch/ia64/include/asm/atomic.h
> delete mode 100644 arch/ia64/include/asm/barrier.h
> delete mode 100644 arch/ia64/include/asm/bitops.h
> delete mode 100644 arch/ia64/include/asm/bug.h
> delete mode 100644 arch/ia64/include/asm/cache.h
> delete mode 100644 arch/ia64/include/asm/cacheflush.h
> delete mode 100644 arch/ia64/include/asm/checksum.h
> delete mode 100644 arch/ia64/include/asm/clocksource.h
> delete mode 100644 arch/ia64/include/asm/cmpxchg.h
> delete mode 100644 arch/ia64/include/asm/cpu.h
> delete mode 100644 arch/ia64/include/asm/cputime.h
> delete mode 100644 arch/ia64/include/asm/current.h
> delete mode 100644 arch/ia64/include/asm/cyclone.h
> delete mode 100644 arch/ia64/include/asm/delay.h
> delete mode 100644 arch/ia64/include/asm/device.h
> delete mode 100644 arch/ia64/include/asm/div64.h
> delete mode 100644 arch/ia64/include/asm/dma-mapping.h
> delete mode 100644 arch/ia64/include/asm/dma.h
> delete mode 100644 arch/ia64/include/asm/dmi.h
> delete mode 100644 arch/ia64/include/asm/early_ioremap.h
> delete mode 100644 arch/ia64/include/asm/efi.h
> delete mode 100644 arch/ia64/include/asm/elf.h
> delete mode 100644 arch/ia64/include/asm/emergency-restart.h
> delete mode 100644 arch/ia64/include/asm/esi.h
> delete mode 100644 arch/ia64/include/asm/exception.h
> delete mode 100644 arch/ia64/include/asm/extable.h
> delete mode 100644 arch/ia64/include/asm/fb.h
> delete mode 100644 arch/ia64/include/asm/fpswa.h
> delete mode 100644 arch/ia64/include/asm/ftrace.h
> delete mode 100644 arch/ia64/include/asm/futex.h
> delete mode 100644 arch/ia64/include/asm/gcc_intrin.h
> delete mode 100644 arch/ia64/include/asm/hardirq.h
> delete mode 100644 arch/ia64/include/asm/hugetlb.h
> delete mode 100644 arch/ia64/include/asm/hw_irq.h
> delete mode 100644 arch/ia64/include/asm/idle.h
> delete mode 100644 arch/ia64/include/asm/intrinsics.h
> delete mode 100644 arch/ia64/include/asm/io.h
> delete mode 100644 arch/ia64/include/asm/iommu.h
> delete mode 100644 arch/ia64/include/asm/iosapic.h
> delete mode 100644 arch/ia64/include/asm/irq.h
> delete mode 100644 arch/ia64/include/asm/irq_regs.h
> delete mode 100644 arch/ia64/include/asm/irq_remapping.h
> delete mode 100644 arch/ia64/include/asm/irqflags.h
> delete mode 100644 arch/ia64/include/asm/kdebug.h
> delete mode 100644 arch/ia64/include/asm/kexec.h
> delete mode 100644 arch/ia64/include/asm/kprobes.h
> delete mode 100644 arch/ia64/include/asm/kregs.h
> delete mode 100644 arch/ia64/include/asm/libata-portmap.h
> delete mode 100644 arch/ia64/include/asm/linkage.h
> delete mode 100644 arch/ia64/include/asm/local.h
> delete mode 100644 arch/ia64/include/asm/mca.h
> delete mode 100644 arch/ia64/include/asm/mca_asm.h
> delete mode 100644 arch/ia64/include/asm/meminit.h
> delete mode 100644 arch/ia64/include/asm/mman.h
> delete mode 100644 arch/ia64/include/asm/mmiowb.h
> delete mode 100644 arch/ia64/include/asm/mmu.h
> delete mode 100644 arch/ia64/include/asm/mmu_context.h
> delete mode 100644 arch/ia64/include/asm/mmzone.h
> delete mode 100644 arch/ia64/include/asm/module.h
> delete mode 100644 arch/ia64/include/asm/module.lds.h
> delete mode 100644 arch/ia64/include/asm/msidef.h
> delete mode 100644 arch/ia64/include/asm/native/inst.h
> delete mode 100644 arch/ia64/include/asm/native/irq.h
> delete mode 100644 arch/ia64/include/asm/native/patchlist.h
> delete mode 100644 arch/ia64/include/asm/nodedata.h
> delete mode 100644 arch/ia64/include/asm/numa.h
> delete mode 100644 arch/ia64/include/asm/page.h
> delete mode 100644 arch/ia64/include/asm/pal.h
> delete mode 100644 arch/ia64/include/asm/param.h
> delete mode 100644 arch/ia64/include/asm/parport.h
> delete mode 100644 arch/ia64/include/asm/patch.h
> delete mode 100644 arch/ia64/include/asm/pci.h
> delete mode 100644 arch/ia64/include/asm/percpu.h
> delete mode 100644 arch/ia64/include/asm/pgalloc.h
> delete mode 100644 arch/ia64/include/asm/pgtable.h
> delete mode 100644 arch/ia64/include/asm/processor.h
> delete mode 100644 arch/ia64/include/asm/ptrace.h
> delete mode 100644 arch/ia64/include/asm/sal.h
> delete mode 100644 arch/ia64/include/asm/sections.h
> delete mode 100644 arch/ia64/include/asm/serial.h
> delete mode 100644 arch/ia64/include/asm/shmparam.h
> delete mode 100644 arch/ia64/include/asm/signal.h
> delete mode 100644 arch/ia64/include/asm/smp.h
> delete mode 100644 arch/ia64/include/asm/sn/intr.h
> delete mode 100644 arch/ia64/include/asm/sn/sn_sal.h
> delete mode 100644 arch/ia64/include/asm/sparsemem.h
> delete mode 100644 arch/ia64/include/asm/spinlock.h
> delete mode 100644 arch/ia64/include/asm/spinlock_types.h
> delete mode 100644 arch/ia64/include/asm/string.h
> delete mode 100644 arch/ia64/include/asm/switch_to.h
> delete mode 100644 arch/ia64/include/asm/syscall.h
> delete mode 100644 arch/ia64/include/asm/thread_info.h
> delete mode 100644 arch/ia64/include/asm/timex.h
> delete mode 100644 arch/ia64/include/asm/tlb.h
> delete mode 100644 arch/ia64/include/asm/tlbflush.h
> delete mode 100644 arch/ia64/include/asm/topology.h
> delete mode 100644 arch/ia64/include/asm/types.h
> delete mode 100644 arch/ia64/include/asm/uaccess.h
> delete mode 100644 arch/ia64/include/asm/uncached.h
> delete mode 100644 arch/ia64/include/asm/unistd.h
> delete mode 100644 arch/ia64/include/asm/unwind.h
> delete mode 100644 arch/ia64/include/asm/user.h
> delete mode 100644 arch/ia64/include/asm/ustack.h
> delete mode 100644 arch/ia64/include/asm/uv/uv.h
> delete mode 100644 arch/ia64/include/asm/uv/uv_hub.h
> delete mode 100644 arch/ia64/include/asm/uv/uv_mmrs.h
> delete mode 100644 arch/ia64/include/asm/vermagic.h
> delete mode 100644 arch/ia64/include/asm/vga.h
> delete mode 100644 arch/ia64/include/asm/vmalloc.h
> delete mode 100644 arch/ia64/include/asm/xor.h
> delete mode 100644 arch/ia64/include/asm/xtp.h
> delete mode 100644 arch/ia64/include/uapi/asm/Kbuild
> delete mode 100644 arch/ia64/include/uapi/asm/auxvec.h
> delete mode 100644 arch/ia64/include/uapi/asm/bitsperlong.h
> delete mode 100644 arch/ia64/include/uapi/asm/break.h
> delete mode 100644 arch/ia64/include/uapi/asm/byteorder.h
> delete mode 100644 arch/ia64/include/uapi/asm/cmpxchg.h
> delete mode 100644 arch/ia64/include/uapi/asm/fcntl.h
> delete mode 100644 arch/ia64/include/uapi/asm/fpu.h
> delete mode 100644 arch/ia64/include/uapi/asm/gcc_intrin.h
> delete mode 100644 arch/ia64/include/uapi/asm/ia64regs.h
> delete mode 100644 arch/ia64/include/uapi/asm/intrinsics.h
> delete mode 100644 arch/ia64/include/uapi/asm/mman.h
> delete mode 100644 arch/ia64/include/uapi/asm/param.h
> delete mode 100644 arch/ia64/include/uapi/asm/posix_types.h
> delete mode 100644 arch/ia64/include/uapi/asm/ptrace.h
> delete mode 100644 arch/ia64/include/uapi/asm/ptrace_offsets.h
> delete mode 100644 arch/ia64/include/uapi/asm/resource.h
> delete mode 100644 arch/ia64/include/uapi/asm/rse.h
> delete mode 100644 arch/ia64/include/uapi/asm/setup.h
> delete mode 100644 arch/ia64/include/uapi/asm/sigcontext.h
> delete mode 100644 arch/ia64/include/uapi/asm/siginfo.h
> delete mode 100644 arch/ia64/include/uapi/asm/signal.h
> delete mode 100644 arch/ia64/include/uapi/asm/stat.h
> delete mode 100644 arch/ia64/include/uapi/asm/statfs.h
> delete mode 100644 arch/ia64/include/uapi/asm/swab.h
> delete mode 100644 arch/ia64/include/uapi/asm/types.h
> delete mode 100644 arch/ia64/include/uapi/asm/ucontext.h
> delete mode 100644 arch/ia64/include/uapi/asm/unistd.h
> delete mode 100644 arch/ia64/include/uapi/asm/ustack.h
> delete mode 100755 arch/ia64/install.sh
> delete mode 100644 arch/ia64/kernel/.gitignore
> delete mode 100644 arch/ia64/kernel/Makefile
> delete mode 100644 arch/ia64/kernel/Makefile.gate
> delete mode 100644 arch/ia64/kernel/acpi-ext.c
> delete mode 100644 arch/ia64/kernel/acpi.c
> delete mode 100644 arch/ia64/kernel/asm-offsets.c
> delete mode 100644 arch/ia64/kernel/audit.c
> delete mode 100644 arch/ia64/kernel/brl_emu.c
> delete mode 100644 arch/ia64/kernel/crash.c
> delete mode 100644 arch/ia64/kernel/crash_dump.c
> delete mode 100644 arch/ia64/kernel/cyclone.c
> delete mode 100644 arch/ia64/kernel/dma-mapping.c
> delete mode 100644 arch/ia64/kernel/efi.c
> delete mode 100644 arch/ia64/kernel/efi_stub.S
> delete mode 100644 arch/ia64/kernel/elfcore.c
> delete mode 100644 arch/ia64/kernel/entry.S
> delete mode 100644 arch/ia64/kernel/entry.h
> delete mode 100644 arch/ia64/kernel/err_inject.c
> delete mode 100644 arch/ia64/kernel/esi.c
> delete mode 100644 arch/ia64/kernel/esi_stub.S
> delete mode 100644 arch/ia64/kernel/fsys.S
> delete mode 100644 arch/ia64/kernel/fsyscall_gtod_data.h
> delete mode 100644 arch/ia64/kernel/ftrace.c
> delete mode 100644 arch/ia64/kernel/gate-data.S
> delete mode 100644 arch/ia64/kernel/gate.S
> delete mode 100644 arch/ia64/kernel/gate.lds.S
> delete mode 100644 arch/ia64/kernel/head.S
> delete mode 100644 arch/ia64/kernel/iosapic.c
> delete mode 100644 arch/ia64/kernel/irq.c
> delete mode 100644 arch/ia64/kernel/irq.h
> delete mode 100644 arch/ia64/kernel/irq_ia64.c
> delete mode 100644 arch/ia64/kernel/irq_lsapic.c
> delete mode 100644 arch/ia64/kernel/ivt.S
> delete mode 100644 arch/ia64/kernel/kprobes.c
> delete mode 100644 arch/ia64/kernel/machine_kexec.c
> delete mode 100644 arch/ia64/kernel/mca.c
> delete mode 100644 arch/ia64/kernel/mca_asm.S
> delete mode 100644 arch/ia64/kernel/mca_drv.c
> delete mode 100644 arch/ia64/kernel/mca_drv.h
> delete mode 100644 arch/ia64/kernel/mca_drv_asm.S
> delete mode 100644 arch/ia64/kernel/minstate.h
> delete mode 100644 arch/ia64/kernel/module.c
> delete mode 100644 arch/ia64/kernel/msi_ia64.c
> delete mode 100644 arch/ia64/kernel/numa.c
> delete mode 100644 arch/ia64/kernel/pal.S
> delete mode 100644 arch/ia64/kernel/palinfo.c
> delete mode 100644 arch/ia64/kernel/patch.c
> delete mode 100644 arch/ia64/kernel/pci-dma.c
> delete mode 100644 arch/ia64/kernel/perfmon_itanium.h
> delete mode 100644 arch/ia64/kernel/process.c
> delete mode 100644 arch/ia64/kernel/ptrace.c
> delete mode 100644 arch/ia64/kernel/relocate_kernel.S
> delete mode 100644 arch/ia64/kernel/sal.c
> delete mode 100644 arch/ia64/kernel/salinfo.c
> delete mode 100644 arch/ia64/kernel/setup.c
> delete mode 100644 arch/ia64/kernel/sigframe.h
> delete mode 100644 arch/ia64/kernel/signal.c
> delete mode 100644 arch/ia64/kernel/smp.c
> delete mode 100644 arch/ia64/kernel/smpboot.c
> delete mode 100644 arch/ia64/kernel/stacktrace.c
> delete mode 100644 arch/ia64/kernel/sys_ia64.c
> delete mode 100644 arch/ia64/kernel/syscalls/Makefile
> delete mode 100644 arch/ia64/kernel/syscalls/syscall.tbl
> delete mode 100644 arch/ia64/kernel/time.c
> delete mode 100644 arch/ia64/kernel/topology.c
> delete mode 100644 arch/ia64/kernel/traps.c
> delete mode 100644 arch/ia64/kernel/unaligned.c
> delete mode 100644 arch/ia64/kernel/uncached.c
> delete mode 100644 arch/ia64/kernel/unwind.c
> delete mode 100644 arch/ia64/kernel/unwind_decoder.c
> delete mode 100644 arch/ia64/kernel/unwind_i.h
> delete mode 100644 arch/ia64/kernel/vmlinux.lds.S
> delete mode 100644 arch/ia64/lib/Makefile
> delete mode 100644 arch/ia64/lib/checksum.c
> delete mode 100644 arch/ia64/lib/clear_page.S
> delete mode 100644 arch/ia64/lib/clear_user.S
> delete mode 100644 arch/ia64/lib/copy_page.S
> delete mode 100644 arch/ia64/lib/copy_page_mck.S
> delete mode 100644 arch/ia64/lib/copy_user.S
> delete mode 100644 arch/ia64/lib/csum_partial_copy.c
> delete mode 100644 arch/ia64/lib/do_csum.S
> delete mode 100644 arch/ia64/lib/flush.S
> delete mode 100644 arch/ia64/lib/idiv32.S
> delete mode 100644 arch/ia64/lib/idiv64.S
> delete mode 100644 arch/ia64/lib/io.c
> delete mode 100644 arch/ia64/lib/ip_fast_csum.S
> delete mode 100644 arch/ia64/lib/memcpy.S
> delete mode 100644 arch/ia64/lib/memcpy_mck.S
> delete mode 100644 arch/ia64/lib/memset.S
> delete mode 100644 arch/ia64/lib/strlen.S
> delete mode 100644 arch/ia64/lib/strncpy_from_user.S
> delete mode 100644 arch/ia64/lib/strnlen_user.S
> delete mode 100644 arch/ia64/lib/xor.S
> delete mode 100644 arch/ia64/mm/Makefile
> delete mode 100644 arch/ia64/mm/contig.c
> delete mode 100644 arch/ia64/mm/discontig.c
> delete mode 100644 arch/ia64/mm/extable.c
> delete mode 100644 arch/ia64/mm/fault.c
> delete mode 100644 arch/ia64/mm/hugetlbpage.c
> delete mode 100644 arch/ia64/mm/init.c
> delete mode 100644 arch/ia64/mm/ioremap.c
> delete mode 100644 arch/ia64/mm/numa.c
> delete mode 100644 arch/ia64/mm/tlb.c
> delete mode 100644 arch/ia64/pci/Makefile
> delete mode 100644 arch/ia64/pci/fixup.c
> delete mode 100644 arch/ia64/pci/pci.c
> delete mode 100755 arch/ia64/scripts/check-gas
> delete mode 100644 arch/ia64/scripts/check-gas-asm.S
> delete mode 100644 arch/ia64/scripts/check-model.c
> delete mode 100644 arch/ia64/scripts/check-segrel.S
> delete mode 100644 arch/ia64/scripts/check-segrel.lds
> delete mode 100644 arch/ia64/scripts/check-serialize.S
> delete mode 100644 arch/ia64/scripts/check-text-align.S
> delete mode 100755 arch/ia64/scripts/toolchain-flags
> delete mode 100644 arch/ia64/scripts/unwcheck.py
> delete mode 100644 arch/ia64/uv/Makefile
> delete mode 100644 arch/ia64/uv/kernel/Makefile
> delete mode 100644 arch/ia64/uv/kernel/setup.c
> delete mode 100644 drivers/char/agp/hp-agp.c
> delete mode 100644 drivers/char/agp/i460-agp.c
> delete mode 100644 drivers/char/mspec.c
> delete mode 100644 drivers/cpufreq/ia64-acpi-cpufreq.c
> delete mode 100644 drivers/firmware/pcdp.c
> delete mode 100644 drivers/firmware/pcdp.h
> delete mode 100644 tools/arch/ia64/include/asm/barrier.h
> delete mode 100644 tools/arch/ia64/include/uapi/asm/bitsperlong.h
> delete mode 100644 tools/arch/ia64/include/uapi/asm/mman.h
^ permalink raw reply [relevance 0%]
* [GIT PULL] asm-generic updates for v6.7
@ 2023-11-01 23:50 1% Arnd Bergmann
2023-11-02 10:24 0% ` Frank Scheiner
0 siblings, 1 reply; 200+ results
From: Arnd Bergmann @ 2023-11-01 23:50 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Linux-Arch, linux-kernel, linux-ia64, Ard Biesheuvel
The following changes since commit a0334bf78b95532cec54f56b53e8ae1bfe7e1ca1:
acpi: Provide ia64 dummy implementation of acpi_proc_quirk_mwait_check() (2023-09-11 08:13:17 +0000)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git tags/asm-generic-6.7
for you to fetch changes up to 550087a0ba91eb001c139f563a193b1e9ef5a8dd:
hexagon: Remove unusable symbols from the ptrace.h uapi (2023-10-25 15:54:24 +0200)
----------------------------------------------------------------
asm-generic updates for v6.7
The ia64 architecture gets its well-earned retirement as planned,
now that there is one last (mostly) working release that will
be maintained as an LTS kernel.
The architecture specific system call tables are updated for
the added map_shadow_stack() syscall and to remove references
to the long-gone sys_lookup_dcookie() syscall.
----------------------------------------------------------------
Note that the ia64 removal has a number of conflicts against
modified files from other pull requests. It might help to pull
this a few days later, after most of the other ones are already
there.
Andy Shevchenko (1):
asm-generic: Fix spelling of architecture
Ard Biesheuvel (5):
arch: Remove Itanium (IA-64) architecture
kernel: Drop IA64 support from sig_fault handlers
Documentation: Drop IA64 from feature descriptions
lib/raid6: Drop IA64 support
Documentation: Drop or replace remaining mentions of IA64
Arnd Bergmann (1):
Merge tag 'tag-remove-ia64' of git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux into asm-generic
Sohil Mehta (2):
syscalls: Cleanup references to sys_lookup_dcookie()
arch: Reserve map_shadow_stack() syscall number for all architectures
Thomas Huth (1):
hexagon: Remove unusable symbols from the ptrace.h uapi
Documentation/ABI/testing/sysfs-devices-system-cpu | 3 -
.../ABI/testing/sysfs-firmware-dmi-entries | 2 +-
Documentation/admin-guide/kdump/kdump.rst | 37 +-
Documentation/admin-guide/kdump/vmcoreinfo.rst | 30 -
Documentation/admin-guide/kernel-parameters.txt | 8 +-
Documentation/admin-guide/mm/memory-hotplug.rst | 2 +-
Documentation/admin-guide/sysctl/kernel.rst | 23 +-
Documentation/arch/ia64/aliasing.rst | 246 ---
Documentation/arch/ia64/efirtc.rst | 144 --
Documentation/arch/ia64/err_inject.rst | 1067 ---------
Documentation/arch/ia64/features.rst | 3 -
Documentation/arch/ia64/fsys.rst | 303 ---
Documentation/arch/ia64/ia64.rst | 49 -
Documentation/arch/ia64/index.rst | 19 -
Documentation/arch/ia64/irq-redir.rst | 80 -
Documentation/arch/ia64/mca.rst | 198 --
Documentation/arch/ia64/serial.rst | 165 --
Documentation/arch/index.rst | 1 -
Documentation/block/ioprio.rst | 3 -
Documentation/core-api/cpu_hotplug.rst | 6 -
Documentation/core-api/debugging-via-ohci1394.rst | 6 +-
.../features/core/cBPF-JIT/arch-support.txt | 1 -
.../features/core/eBPF-JIT/arch-support.txt | 1 -
.../core/generic-idle-thread/arch-support.txt | 1 -
.../features/core/jump-labels/arch-support.txt | 1 -
.../core/thread-info-in-task/arch-support.txt | 1 -
.../features/core/tracehook/arch-support.txt | 1 -
.../features/debug/KASAN/arch-support.txt | 1 -
.../debug/debug-vm-pgtable/arch-support.txt | 1 -
.../debug/gcov-profile-all/arch-support.txt | 1 -
Documentation/features/debug/kcov/arch-support.txt | 1 -
Documentation/features/debug/kgdb/arch-support.txt | 1 -
.../features/debug/kmemleak/arch-support.txt | 1 -
.../debug/kprobes-on-ftrace/arch-support.txt | 1 -
.../features/debug/kprobes/arch-support.txt | 1 -
.../features/debug/kretprobes/arch-support.txt | 1 -
.../features/debug/optprobes/arch-support.txt | 1 -
.../features/debug/stackprotector/arch-support.txt | 1 -
.../features/debug/uprobes/arch-support.txt | 1 -
.../debug/user-ret-profiler/arch-support.txt | 1 -
.../features/io/dma-contiguous/arch-support.txt | 1 -
.../locking/cmpxchg-local/arch-support.txt | 1 -
.../features/locking/lockdep/arch-support.txt | 1 -
.../locking/queued-rwlocks/arch-support.txt | 1 -
.../locking/queued-spinlocks/arch-support.txt | 1 -
.../features/perf/kprobes-event/arch-support.txt | 1 -
.../features/perf/perf-regs/arch-support.txt | 1 -
.../features/perf/perf-stackdump/arch-support.txt | 1 -
.../sched/membarrier-sync-core/arch-support.txt | 1 -
.../features/sched/numa-balancing/arch-support.txt | 1 -
.../seccomp/seccomp-filter/arch-support.txt | 1 -
.../time/arch-tick-broadcast/arch-support.txt | 1 -
.../features/time/clockevents/arch-support.txt | 1 -
.../time/context-tracking/arch-support.txt | 1 -
.../features/time/irq-time-acct/arch-support.txt | 1 -
.../features/time/virt-cpuacct/arch-support.txt | 1 -
.../features/vm/ELF-ASLR/arch-support.txt | 1 -
.../features/vm/PG_uncached/arch-support.txt | 1 -
Documentation/features/vm/THP/arch-support.txt | 1 -
Documentation/features/vm/TLB/arch-support.txt | 1 -
.../features/vm/huge-vmap/arch-support.txt | 1 -
.../features/vm/ioremap_prot/arch-support.txt | 1 -
.../features/vm/pte_special/arch-support.txt | 1 -
Documentation/kbuild/makefiles.rst | 2 +-
.../device_drivers/ethernet/neterion/s2io.rst | 4 +-
Documentation/scheduler/sched-arch.rst | 4 +-
Documentation/trace/kprobes.rst | 1 -
Documentation/translations/zh_CN/arch/index.rst | 1 -
.../translations/zh_CN/core-api/cpu_hotplug.rst | 6 -
.../translations/zh_CN/scheduler/sched-arch.rst | 5 +-
MAINTAINERS | 11 -
Makefile | 4 +-
arch/Kconfig | 1 -
arch/alpha/kernel/syscalls/syscall.tbl | 3 +-
arch/arm/tools/syscall.tbl | 3 +-
arch/arm64/include/asm/unistd.h | 2 +-
arch/arm64/include/asm/unistd32.h | 6 +-
arch/hexagon/include/asm/ptrace.h | 25 +
arch/hexagon/include/uapi/asm/ptrace.h | 13 -
arch/ia64/Kbuild | 3 -
arch/ia64/Kconfig | 394 ----
arch/ia64/Kconfig.debug | 55 -
arch/ia64/Makefile | 82 -
arch/ia64/configs/bigsur_defconfig | 102 -
arch/ia64/configs/generic_defconfig | 206 --
arch/ia64/configs/gensparse_defconfig | 184 --
arch/ia64/configs/tiger_defconfig | 169 --
arch/ia64/configs/zx1_defconfig | 148 --
arch/ia64/hp/common/Makefile | 10 -
arch/ia64/hp/common/aml_nfw.c | 232 --
arch/ia64/hp/common/sba_iommu.c | 2155 ------------------
arch/ia64/include/asm/Kbuild | 6 -
arch/ia64/include/asm/acenv.h | 49 -
arch/ia64/include/asm/acpi-ext.h | 17 -
arch/ia64/include/asm/acpi.h | 110 -
arch/ia64/include/asm/asm-offsets.h | 1 -
arch/ia64/include/asm/asm-prototypes.h | 30 -
arch/ia64/include/asm/asmmacro.h | 136 --
arch/ia64/include/asm/atomic.h | 216 --
arch/ia64/include/asm/barrier.h | 79 -
arch/ia64/include/asm/bitops.h | 453 ----
arch/ia64/include/asm/bug.h | 19 -
arch/ia64/include/asm/cache.h | 30 -
arch/ia64/include/asm/cacheflush.h | 39 -
arch/ia64/include/asm/checksum.h | 63 -
arch/ia64/include/asm/clocksource.h | 11 -
arch/ia64/include/asm/cmpxchg.h | 33 -
arch/ia64/include/asm/cpu.h | 23 -
arch/ia64/include/asm/cputime.h | 21 -
arch/ia64/include/asm/current.h | 18 -
arch/ia64/include/asm/cyclone.h | 16 -
arch/ia64/include/asm/delay.h | 89 -
arch/ia64/include/asm/device.h | 14 -
arch/ia64/include/asm/div64.h | 1 -
arch/ia64/include/asm/dma-mapping.h | 16 -
arch/ia64/include/asm/dma.h | 17 -
arch/ia64/include/asm/dmi.h | 15 -
arch/ia64/include/asm/early_ioremap.h | 11 -
arch/ia64/include/asm/efi.h | 13 -
arch/ia64/include/asm/elf.h | 233 --
arch/ia64/include/asm/emergency-restart.h | 6 -
arch/ia64/include/asm/esi.h | 30 -
arch/ia64/include/asm/exception.h | 23 -
arch/ia64/include/asm/extable.h | 12 -
arch/ia64/include/asm/fb.h | 43 -
arch/ia64/include/asm/fpswa.h | 74 -
arch/ia64/include/asm/ftrace.h | 28 -
arch/ia64/include/asm/futex.h | 109 -
arch/ia64/include/asm/gcc_intrin.h | 13 -
arch/ia64/include/asm/hardirq.h | 27 -
arch/ia64/include/asm/hugetlb.h | 34 -
arch/ia64/include/asm/hw_irq.h | 167 --
arch/ia64/include/asm/idle.h | 8 -
arch/ia64/include/asm/intrinsics.h | 13 -
arch/ia64/include/asm/io.h | 271 ---
arch/ia64/include/asm/iommu.h | 22 -
arch/ia64/include/asm/iosapic.h | 106 -
arch/ia64/include/asm/irq.h | 37 -
arch/ia64/include/asm/irq_regs.h | 1 -
arch/ia64/include/asm/irq_remapping.h | 5 -
arch/ia64/include/asm/irqflags.h | 95 -
arch/ia64/include/asm/kdebug.h | 45 -
arch/ia64/include/asm/kexec.h | 46 -
arch/ia64/include/asm/kprobes.h | 116 -
arch/ia64/include/asm/kregs.h | 166 --
arch/ia64/include/asm/libata-portmap.h | 9 -
arch/ia64/include/asm/linkage.h | 19 -
arch/ia64/include/asm/local.h | 1 -
arch/ia64/include/asm/mca.h | 185 --
arch/ia64/include/asm/mca_asm.h | 245 ---
arch/ia64/include/asm/meminit.h | 59 -
arch/ia64/include/asm/mman.h | 18 -
arch/ia64/include/asm/mmiowb.h | 17 -
arch/ia64/include/asm/mmu.h | 14 -
arch/ia64/include/asm/mmu_context.h | 194 --
arch/ia64/include/asm/mmzone.h | 35 -
arch/ia64/include/asm/module.h | 35 -
arch/ia64/include/asm/module.lds.h | 14 -
arch/ia64/include/asm/msidef.h | 43 -
arch/ia64/include/asm/native/inst.h | 119 -
arch/ia64/include/asm/native/irq.h | 20 -
arch/ia64/include/asm/native/patchlist.h | 24 -
arch/ia64/include/asm/nodedata.h | 63 -
arch/ia64/include/asm/numa.h | 83 -
arch/ia64/include/asm/page.h | 208 --
arch/ia64/include/asm/pal.h | 1827 ---------------
arch/ia64/include/asm/param.h | 18 -
arch/ia64/include/asm/parport.h | 20 -
arch/ia64/include/asm/patch.h | 28 -
arch/ia64/include/asm/pci.h | 66 -
arch/ia64/include/asm/percpu.h | 53 -
arch/ia64/include/asm/pgalloc.h | 64 -
arch/ia64/include/asm/pgtable.h | 545 -----
arch/ia64/include/asm/processor.h | 660 ------
arch/ia64/include/asm/ptrace.h | 146 --
arch/ia64/include/asm/sal.h | 919 --------
arch/ia64/include/asm/sections.h | 33 -
arch/ia64/include/asm/serial.h | 17 -
arch/ia64/include/asm/shmparam.h | 13 -
arch/ia64/include/asm/signal.h | 33 -
arch/ia64/include/asm/smp.h | 103 -
arch/ia64/include/asm/sn/intr.h | 15 -
arch/ia64/include/asm/sn/sn_sal.h | 124 --
arch/ia64/include/asm/sparsemem.h | 28 -
arch/ia64/include/asm/spinlock.h | 265 ---
arch/ia64/include/asm/spinlock_types.h | 22 -
arch/ia64/include/asm/string.h | 22 -
arch/ia64/include/asm/switch_to.h | 71 -
arch/ia64/include/asm/syscall.h | 65 -
arch/ia64/include/asm/thread_info.h | 131 --
arch/ia64/include/asm/timex.h | 47 -
arch/ia64/include/asm/tlb.h | 50 -
arch/ia64/include/asm/tlbflush.h | 128 --
arch/ia64/include/asm/topology.h | 56 -
arch/ia64/include/asm/types.h | 32 -
arch/ia64/include/asm/uaccess.h | 265 ---
arch/ia64/include/asm/uncached.h | 9 -
arch/ia64/include/asm/unistd.h | 38 -
arch/ia64/include/asm/unwind.h | 234 --
arch/ia64/include/asm/user.h | 53 -
arch/ia64/include/asm/ustack.h | 12 -
arch/ia64/include/asm/uv/uv.h | 30 -
arch/ia64/include/asm/uv/uv_hub.h | 315 ---
arch/ia64/include/asm/uv/uv_mmrs.h | 825 -------
arch/ia64/include/asm/vermagic.h | 15 -
arch/ia64/include/asm/vga.h | 26 -
arch/ia64/include/asm/vmalloc.h | 4 -
arch/ia64/include/asm/xor.h | 30 -
arch/ia64/include/asm/xtp.h | 46 -
arch/ia64/include/uapi/asm/Kbuild | 2 -
arch/ia64/include/uapi/asm/auxvec.h | 14 -
arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
arch/ia64/include/uapi/asm/break.h | 23 -
arch/ia64/include/uapi/asm/byteorder.h | 7 -
arch/ia64/include/uapi/asm/cmpxchg.h | 138 --
arch/ia64/include/uapi/asm/fcntl.h | 15 -
arch/ia64/include/uapi/asm/fpu.h | 67 -
arch/ia64/include/uapi/asm/gcc_intrin.h | 619 ------
arch/ia64/include/uapi/asm/ia64regs.h | 101 -
arch/ia64/include/uapi/asm/intrinsics.h | 82 -
arch/ia64/include/uapi/asm/mman.h | 17 -
arch/ia64/include/uapi/asm/param.h | 30 -
arch/ia64/include/uapi/asm/posix_types.h | 9 -
arch/ia64/include/uapi/asm/ptrace.h | 248 ---
arch/ia64/include/uapi/asm/ptrace_offsets.h | 269 ---
arch/ia64/include/uapi/asm/resource.h | 8 -
arch/ia64/include/uapi/asm/rse.h | 67 -
arch/ia64/include/uapi/asm/setup.h | 25 -
arch/ia64/include/uapi/asm/sigcontext.h | 71 -
arch/ia64/include/uapi/asm/siginfo.h | 28 -
arch/ia64/include/uapi/asm/signal.h | 98 -
arch/ia64/include/uapi/asm/stat.h | 52 -
arch/ia64/include/uapi/asm/statfs.h | 21 -
arch/ia64/include/uapi/asm/swab.h | 35 -
arch/ia64/include/uapi/asm/types.h | 32 -
arch/ia64/include/uapi/asm/ucontext.h | 13 -
arch/ia64/include/uapi/asm/unistd.h | 22 -
arch/ia64/include/uapi/asm/ustack.h | 13 -
arch/ia64/install.sh | 30 -
arch/ia64/kernel/.gitignore | 3 -
arch/ia64/kernel/Makefile | 46 -
arch/ia64/kernel/Makefile.gate | 29 -
arch/ia64/kernel/acpi-ext.c | 101 -
arch/ia64/kernel/acpi.c | 913 --------
arch/ia64/kernel/asm-offsets.c | 289 ---
arch/ia64/kernel/audit.c | 63 -
arch/ia64/kernel/brl_emu.c | 217 --
arch/ia64/kernel/crash.c | 257 ---
arch/ia64/kernel/crash_dump.c | 27 -
arch/ia64/kernel/cyclone.c | 125 --
arch/ia64/kernel/dma-mapping.c | 9 -
arch/ia64/kernel/efi.c | 1360 ------------
arch/ia64/kernel/efi_stub.S | 87 -
arch/ia64/kernel/elfcore.c | 77 -
arch/ia64/kernel/entry.S | 1427 ------------
arch/ia64/kernel/entry.h | 83 -
arch/ia64/kernel/err_inject.c | 273 ---
arch/ia64/kernel/esi.c | 193 --
arch/ia64/kernel/esi_stub.S | 99 -
arch/ia64/kernel/fsys.S | 837 -------
arch/ia64/kernel/fsyscall_gtod_data.h | 30 -
arch/ia64/kernel/ftrace.c | 196 --
arch/ia64/kernel/gate-data.S | 3 -
arch/ia64/kernel/gate.S | 380 ----
arch/ia64/kernel/gate.lds.S | 108 -
arch/ia64/kernel/head.S | 1167 ----------
arch/ia64/kernel/iosapic.c | 1137 ----------
arch/ia64/kernel/irq.c | 181 --
arch/ia64/kernel/irq.h | 3 -
arch/ia64/kernel/irq_ia64.c | 645 ------
arch/ia64/kernel/irq_lsapic.c | 45 -
arch/ia64/kernel/ivt.S | 1688 --------------
arch/ia64/kernel/kprobes.c | 911 --------
arch/ia64/kernel/machine_kexec.c | 163 --
arch/ia64/kernel/mca.c | 2111 ------------------
arch/ia64/kernel/mca_asm.S | 1123 ----------
arch/ia64/kernel/mca_drv.c | 796 -------
arch/ia64/kernel/mca_drv.h | 123 --
arch/ia64/kernel/mca_drv_asm.S | 56 -
arch/ia64/kernel/minstate.h | 251 ---
arch/ia64/kernel/module.c | 959 --------
arch/ia64/kernel/msi_ia64.c | 198 --
arch/ia64/kernel/numa.c | 73 -
arch/ia64/kernel/pal.S | 306 ---
arch/ia64/kernel/palinfo.c | 942 --------
arch/ia64/kernel/patch.c | 237 --
arch/ia64/kernel/pci-dma.c | 33 -
arch/ia64/kernel/perfmon_itanium.h | 116 -
arch/ia64/kernel/process.c | 611 ------
arch/ia64/kernel/ptrace.c | 2012 -----------------
arch/ia64/kernel/relocate_kernel.S | 321 ---
arch/ia64/kernel/sal.c | 400 ----
arch/ia64/kernel/salinfo.c | 646 ------
arch/ia64/kernel/setup.c | 1081 ---------
arch/ia64/kernel/sigframe.h | 26 -
arch/ia64/kernel/signal.c | 412 ----
arch/ia64/kernel/smp.c | 335 ---
arch/ia64/kernel/smpboot.c | 839 -------
arch/ia64/kernel/stacktrace.c | 40 -
arch/ia64/kernel/sys_ia64.c | 197 --
arch/ia64/kernel/syscalls/Makefile | 32 -
arch/ia64/kernel/syscalls/syscall.tbl | 375 ----
arch/ia64/kernel/time.c | 463 ----
arch/ia64/kernel/topology.c | 410 ----
arch/ia64/kernel/traps.c | 612 ------
arch/ia64/kernel/unaligned.c | 1560 -------------
arch/ia64/kernel/uncached.c | 273 ---
arch/ia64/kernel/unwind.c | 2320 --------------------
arch/ia64/kernel/unwind_decoder.c | 460 ----
arch/ia64/kernel/unwind_i.h | 165 --
arch/ia64/kernel/vmlinux.lds.S | 224 --
arch/ia64/lib/Makefile | 48 -
arch/ia64/lib/checksum.c | 102 -
arch/ia64/lib/clear_page.S | 79 -
arch/ia64/lib/clear_user.S | 212 --
arch/ia64/lib/copy_page.S | 101 -
arch/ia64/lib/copy_page_mck.S | 188 --
arch/ia64/lib/copy_user.S | 613 ------
arch/ia64/lib/csum_partial_copy.c | 98 -
arch/ia64/lib/do_csum.S | 324 ---
arch/ia64/lib/flush.S | 119 -
arch/ia64/lib/idiv32.S | 86 -
arch/ia64/lib/idiv64.S | 83 -
arch/ia64/lib/io.c | 51 -
arch/ia64/lib/ip_fast_csum.S | 148 --
arch/ia64/lib/memcpy.S | 304 ---
arch/ia64/lib/memcpy_mck.S | 659 ------
arch/ia64/lib/memset.S | 365 ---
arch/ia64/lib/strlen.S | 195 --
arch/ia64/lib/strncpy_from_user.S | 47 -
arch/ia64/lib/strnlen_user.S | 48 -
arch/ia64/lib/xor.S | 181 --
arch/ia64/mm/Makefile | 11 -
arch/ia64/mm/contig.c | 208 --
arch/ia64/mm/discontig.c | 635 ------
arch/ia64/mm/extable.c | 24 -
arch/ia64/mm/fault.c | 251 ---
arch/ia64/mm/hugetlbpage.c | 186 --
arch/ia64/mm/init.c | 532 -----
arch/ia64/mm/ioremap.c | 94 -
arch/ia64/mm/numa.c | 80 -
arch/ia64/mm/tlb.c | 591 -----
arch/ia64/pci/Makefile | 5 -
arch/ia64/pci/fixup.c | 80 -
arch/ia64/pci/pci.c | 576 -----
arch/ia64/scripts/check-gas | 16 -
arch/ia64/scripts/check-gas-asm.S | 2 -
arch/ia64/scripts/check-model.c | 1 -
arch/ia64/scripts/check-segrel.S | 5 -
arch/ia64/scripts/check-segrel.lds | 13 -
arch/ia64/scripts/check-serialize.S | 2 -
arch/ia64/scripts/check-text-align.S | 7 -
arch/ia64/scripts/toolchain-flags | 54 -
arch/ia64/scripts/unwcheck.py | 65 -
arch/ia64/uv/Makefile | 12 -
arch/ia64/uv/kernel/Makefile | 12 -
arch/ia64/uv/kernel/setup.c | 120 -
arch/m68k/kernel/syscalls/syscall.tbl | 3 +-
arch/microblaze/kernel/syscalls/syscall.tbl | 3 +-
arch/mips/kernel/syscalls/syscall_n32.tbl | 3 +-
arch/mips/kernel/syscalls/syscall_n64.tbl | 3 +-
arch/mips/kernel/syscalls/syscall_o32.tbl | 3 +-
arch/parisc/kernel/syscalls/syscall.tbl | 3 +-
arch/powerpc/kernel/syscalls/syscall.tbl | 3 +-
arch/s390/kernel/syscalls/syscall.tbl | 3 +-
arch/sh/kernel/syscalls/syscall.tbl | 3 +-
arch/sparc/kernel/syscalls/syscall.tbl | 3 +-
arch/x86/entry/syscalls/syscall_32.tbl | 3 +-
arch/x86/entry/syscalls/syscall_64.tbl | 2 +-
arch/xtensa/kernel/syscalls/syscall.tbl | 3 +-
drivers/acpi/Kconfig | 6 +-
drivers/acpi/numa/Kconfig | 4 +-
drivers/acpi/osl.c | 2 +-
drivers/char/Kconfig | 4 +-
drivers/char/Makefile | 1 -
drivers/char/agp/Kconfig | 16 +-
drivers/char/agp/Makefile | 2 -
drivers/char/agp/hp-agp.c | 550 -----
drivers/char/agp/i460-agp.c | 659 ------
drivers/char/hpet.c | 30 -
drivers/char/hw_random/Kconfig | 2 +-
drivers/char/mem.c | 12 -
drivers/char/mspec.c | 295 ---
drivers/cpufreq/Kconfig | 11 -
drivers/cpufreq/Makefile | 1 -
drivers/cpufreq/ia64-acpi-cpufreq.c | 353 ---
drivers/firmware/Kconfig | 24 -
drivers/firmware/Makefile | 1 -
drivers/firmware/efi/Kconfig | 6 +-
drivers/firmware/efi/efi.c | 13 +-
drivers/firmware/pcdp.c | 135 --
drivers/firmware/pcdp.h | 108 -
drivers/gpu/drm/drm_ioc32.c | 4 +-
drivers/input/serio/i8042.h | 2 +-
drivers/iommu/Kconfig | 4 +-
drivers/iommu/intel/Kconfig | 2 +-
drivers/media/cec/platform/Kconfig | 2 +-
drivers/misc/Kconfig | 2 +-
drivers/misc/sgi-gru/gru.h | 4 +-
drivers/misc/sgi-gru/gru_instructions.h | 12 +-
drivers/misc/sgi-gru/grufile.c | 72 -
drivers/misc/sgi-gru/gruhandles.c | 6 -
drivers/misc/sgi-gru/grumain.c | 4 -
drivers/misc/sgi-xp/xp.h | 2 +-
drivers/misc/sgi-xp/xp_uv.c | 24 -
drivers/misc/sgi-xp/xpc_main.c | 31 -
drivers/misc/sgi-xp/xpc_uv.c | 85 -
drivers/net/ethernet/broadcom/tg3.c | 2 +-
drivers/net/ethernet/brocade/bna/bnad.h | 1 -
.../net/ethernet/qlogic/netxen/netxen_nic_main.c | 2 -
drivers/pci/vgaarb.c | 2 +-
drivers/tty/serial/8250/Kconfig | 2 +-
drivers/tty/vt/keyboard.c | 2 +-
drivers/video/fbdev/Kconfig | 2 +-
drivers/watchdog/Kconfig | 2 +-
fs/Kconfig | 2 +-
fs/afs/main.c | 2 -
fs/xfs/xfs_ioctl32.h | 2 +-
include/asm-generic/Kbuild | 2 +-
include/linux/acpi.h | 9 +-
include/linux/compat.h | 1 -
include/linux/efi.h | 7 -
include/linux/mm.h | 2 -
include/linux/moduleparam.h | 2 +-
include/linux/raid/pq.h | 2 -
include/linux/sched/signal.h | 17 +-
include/linux/syscalls.h | 1 -
include/trace/events/mmflags.h | 2 +-
include/uapi/asm-generic/siginfo.h | 5 -
include/uapi/asm-generic/unistd.h | 7 +-
init/Kconfig | 2 +-
kernel/cpu.c | 3 -
kernel/fork.c | 2 +-
kernel/sched/core.c | 29 +-
kernel/signal.c | 25 +-
kernel/sys_ni.c | 2 -
kernel/sysctl.c | 9 -
lib/Kconfig.debug | 2 +-
lib/decompress_unxz.c | 3 -
lib/raid6/Makefile | 4 +-
lib/raid6/algos.c | 4 -
lib/raid6/int.uc | 9 -
lib/xz/Kconfig | 5 -
mm/mmap.c | 6 +-
scripts/headers_install.sh | 1 -
tools/arch/ia64/include/asm/barrier.h | 59 -
tools/arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
tools/arch/ia64/include/uapi/asm/mman.h | 7 -
tools/include/uapi/asm-generic/unistd.h | 2 +-
.../perf/arch/mips/entry/syscalls/syscall_n64.tbl | 2 +-
tools/perf/arch/powerpc/entry/syscalls/syscall.tbl | 2 +-
tools/perf/arch/s390/entry/syscalls/syscall.tbl | 2 +-
tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 2 +-
usr/include/Makefile | 6 -
454 files changed, 144 insertions(+), 65220 deletions(-)
delete mode 100644 Documentation/arch/ia64/aliasing.rst
delete mode 100644 Documentation/arch/ia64/efirtc.rst
delete mode 100644 Documentation/arch/ia64/err_inject.rst
delete mode 100644 Documentation/arch/ia64/features.rst
delete mode 100644 Documentation/arch/ia64/fsys.rst
delete mode 100644 Documentation/arch/ia64/ia64.rst
delete mode 100644 Documentation/arch/ia64/index.rst
delete mode 100644 Documentation/arch/ia64/irq-redir.rst
delete mode 100644 Documentation/arch/ia64/mca.rst
delete mode 100644 Documentation/arch/ia64/serial.rst
create mode 100644 arch/hexagon/include/asm/ptrace.h
delete mode 100644 arch/ia64/Kbuild
delete mode 100644 arch/ia64/Kconfig
delete mode 100644 arch/ia64/Kconfig.debug
delete mode 100644 arch/ia64/Makefile
delete mode 100644 arch/ia64/configs/bigsur_defconfig
delete mode 100644 arch/ia64/configs/generic_defconfig
delete mode 100644 arch/ia64/configs/gensparse_defconfig
delete mode 100644 arch/ia64/configs/tiger_defconfig
delete mode 100644 arch/ia64/configs/zx1_defconfig
delete mode 100644 arch/ia64/hp/common/Makefile
delete mode 100644 arch/ia64/hp/common/aml_nfw.c
delete mode 100644 arch/ia64/hp/common/sba_iommu.c
delete mode 100644 arch/ia64/include/asm/Kbuild
delete mode 100644 arch/ia64/include/asm/acenv.h
delete mode 100644 arch/ia64/include/asm/acpi-ext.h
delete mode 100644 arch/ia64/include/asm/acpi.h
delete mode 100644 arch/ia64/include/asm/asm-offsets.h
delete mode 100644 arch/ia64/include/asm/asm-prototypes.h
delete mode 100644 arch/ia64/include/asm/asmmacro.h
delete mode 100644 arch/ia64/include/asm/atomic.h
delete mode 100644 arch/ia64/include/asm/barrier.h
delete mode 100644 arch/ia64/include/asm/bitops.h
delete mode 100644 arch/ia64/include/asm/bug.h
delete mode 100644 arch/ia64/include/asm/cache.h
delete mode 100644 arch/ia64/include/asm/cacheflush.h
delete mode 100644 arch/ia64/include/asm/checksum.h
delete mode 100644 arch/ia64/include/asm/clocksource.h
delete mode 100644 arch/ia64/include/asm/cmpxchg.h
delete mode 100644 arch/ia64/include/asm/cpu.h
delete mode 100644 arch/ia64/include/asm/cputime.h
delete mode 100644 arch/ia64/include/asm/current.h
delete mode 100644 arch/ia64/include/asm/cyclone.h
delete mode 100644 arch/ia64/include/asm/delay.h
delete mode 100644 arch/ia64/include/asm/device.h
delete mode 100644 arch/ia64/include/asm/div64.h
delete mode 100644 arch/ia64/include/asm/dma-mapping.h
delete mode 100644 arch/ia64/include/asm/dma.h
delete mode 100644 arch/ia64/include/asm/dmi.h
delete mode 100644 arch/ia64/include/asm/early_ioremap.h
delete mode 100644 arch/ia64/include/asm/efi.h
delete mode 100644 arch/ia64/include/asm/elf.h
delete mode 100644 arch/ia64/include/asm/emergency-restart.h
delete mode 100644 arch/ia64/include/asm/esi.h
delete mode 100644 arch/ia64/include/asm/exception.h
delete mode 100644 arch/ia64/include/asm/extable.h
delete mode 100644 arch/ia64/include/asm/fb.h
delete mode 100644 arch/ia64/include/asm/fpswa.h
delete mode 100644 arch/ia64/include/asm/ftrace.h
delete mode 100644 arch/ia64/include/asm/futex.h
delete mode 100644 arch/ia64/include/asm/gcc_intrin.h
delete mode 100644 arch/ia64/include/asm/hardirq.h
delete mode 100644 arch/ia64/include/asm/hugetlb.h
delete mode 100644 arch/ia64/include/asm/hw_irq.h
delete mode 100644 arch/ia64/include/asm/idle.h
delete mode 100644 arch/ia64/include/asm/intrinsics.h
delete mode 100644 arch/ia64/include/asm/io.h
delete mode 100644 arch/ia64/include/asm/iommu.h
delete mode 100644 arch/ia64/include/asm/iosapic.h
delete mode 100644 arch/ia64/include/asm/irq.h
delete mode 100644 arch/ia64/include/asm/irq_regs.h
delete mode 100644 arch/ia64/include/asm/irq_remapping.h
delete mode 100644 arch/ia64/include/asm/irqflags.h
delete mode 100644 arch/ia64/include/asm/kdebug.h
delete mode 100644 arch/ia64/include/asm/kexec.h
delete mode 100644 arch/ia64/include/asm/kprobes.h
delete mode 100644 arch/ia64/include/asm/kregs.h
delete mode 100644 arch/ia64/include/asm/libata-portmap.h
delete mode 100644 arch/ia64/include/asm/linkage.h
delete mode 100644 arch/ia64/include/asm/local.h
delete mode 100644 arch/ia64/include/asm/mca.h
delete mode 100644 arch/ia64/include/asm/mca_asm.h
delete mode 100644 arch/ia64/include/asm/meminit.h
delete mode 100644 arch/ia64/include/asm/mman.h
delete mode 100644 arch/ia64/include/asm/mmiowb.h
delete mode 100644 arch/ia64/include/asm/mmu.h
delete mode 100644 arch/ia64/include/asm/mmu_context.h
delete mode 100644 arch/ia64/include/asm/mmzone.h
delete mode 100644 arch/ia64/include/asm/module.h
delete mode 100644 arch/ia64/include/asm/module.lds.h
delete mode 100644 arch/ia64/include/asm/msidef.h
delete mode 100644 arch/ia64/include/asm/native/inst.h
delete mode 100644 arch/ia64/include/asm/native/irq.h
delete mode 100644 arch/ia64/include/asm/native/patchlist.h
delete mode 100644 arch/ia64/include/asm/nodedata.h
delete mode 100644 arch/ia64/include/asm/numa.h
delete mode 100644 arch/ia64/include/asm/page.h
delete mode 100644 arch/ia64/include/asm/pal.h
delete mode 100644 arch/ia64/include/asm/param.h
delete mode 100644 arch/ia64/include/asm/parport.h
delete mode 100644 arch/ia64/include/asm/patch.h
delete mode 100644 arch/ia64/include/asm/pci.h
delete mode 100644 arch/ia64/include/asm/percpu.h
delete mode 100644 arch/ia64/include/asm/pgalloc.h
delete mode 100644 arch/ia64/include/asm/pgtable.h
delete mode 100644 arch/ia64/include/asm/processor.h
delete mode 100644 arch/ia64/include/asm/ptrace.h
delete mode 100644 arch/ia64/include/asm/sal.h
delete mode 100644 arch/ia64/include/asm/sections.h
delete mode 100644 arch/ia64/include/asm/serial.h
delete mode 100644 arch/ia64/include/asm/shmparam.h
delete mode 100644 arch/ia64/include/asm/signal.h
delete mode 100644 arch/ia64/include/asm/smp.h
delete mode 100644 arch/ia64/include/asm/sn/intr.h
delete mode 100644 arch/ia64/include/asm/sn/sn_sal.h
delete mode 100644 arch/ia64/include/asm/sparsemem.h
delete mode 100644 arch/ia64/include/asm/spinlock.h
delete mode 100644 arch/ia64/include/asm/spinlock_types.h
delete mode 100644 arch/ia64/include/asm/string.h
delete mode 100644 arch/ia64/include/asm/switch_to.h
delete mode 100644 arch/ia64/include/asm/syscall.h
delete mode 100644 arch/ia64/include/asm/thread_info.h
delete mode 100644 arch/ia64/include/asm/timex.h
delete mode 100644 arch/ia64/include/asm/tlb.h
delete mode 100644 arch/ia64/include/asm/tlbflush.h
delete mode 100644 arch/ia64/include/asm/topology.h
delete mode 100644 arch/ia64/include/asm/types.h
delete mode 100644 arch/ia64/include/asm/uaccess.h
delete mode 100644 arch/ia64/include/asm/uncached.h
delete mode 100644 arch/ia64/include/asm/unistd.h
delete mode 100644 arch/ia64/include/asm/unwind.h
delete mode 100644 arch/ia64/include/asm/user.h
delete mode 100644 arch/ia64/include/asm/ustack.h
delete mode 100644 arch/ia64/include/asm/uv/uv.h
delete mode 100644 arch/ia64/include/asm/uv/uv_hub.h
delete mode 100644 arch/ia64/include/asm/uv/uv_mmrs.h
delete mode 100644 arch/ia64/include/asm/vermagic.h
delete mode 100644 arch/ia64/include/asm/vga.h
delete mode 100644 arch/ia64/include/asm/vmalloc.h
delete mode 100644 arch/ia64/include/asm/xor.h
delete mode 100644 arch/ia64/include/asm/xtp.h
delete mode 100644 arch/ia64/include/uapi/asm/Kbuild
delete mode 100644 arch/ia64/include/uapi/asm/auxvec.h
delete mode 100644 arch/ia64/include/uapi/asm/bitsperlong.h
delete mode 100644 arch/ia64/include/uapi/asm/break.h
delete mode 100644 arch/ia64/include/uapi/asm/byteorder.h
delete mode 100644 arch/ia64/include/uapi/asm/cmpxchg.h
delete mode 100644 arch/ia64/include/uapi/asm/fcntl.h
delete mode 100644 arch/ia64/include/uapi/asm/fpu.h
delete mode 100644 arch/ia64/include/uapi/asm/gcc_intrin.h
delete mode 100644 arch/ia64/include/uapi/asm/ia64regs.h
delete mode 100644 arch/ia64/include/uapi/asm/intrinsics.h
delete mode 100644 arch/ia64/include/uapi/asm/mman.h
delete mode 100644 arch/ia64/include/uapi/asm/param.h
delete mode 100644 arch/ia64/include/uapi/asm/posix_types.h
delete mode 100644 arch/ia64/include/uapi/asm/ptrace.h
delete mode 100644 arch/ia64/include/uapi/asm/ptrace_offsets.h
delete mode 100644 arch/ia64/include/uapi/asm/resource.h
delete mode 100644 arch/ia64/include/uapi/asm/rse.h
delete mode 100644 arch/ia64/include/uapi/asm/setup.h
delete mode 100644 arch/ia64/include/uapi/asm/sigcontext.h
delete mode 100644 arch/ia64/include/uapi/asm/siginfo.h
delete mode 100644 arch/ia64/include/uapi/asm/signal.h
delete mode 100644 arch/ia64/include/uapi/asm/stat.h
delete mode 100644 arch/ia64/include/uapi/asm/statfs.h
delete mode 100644 arch/ia64/include/uapi/asm/swab.h
delete mode 100644 arch/ia64/include/uapi/asm/types.h
delete mode 100644 arch/ia64/include/uapi/asm/ucontext.h
delete mode 100644 arch/ia64/include/uapi/asm/unistd.h
delete mode 100644 arch/ia64/include/uapi/asm/ustack.h
delete mode 100755 arch/ia64/install.sh
delete mode 100644 arch/ia64/kernel/.gitignore
delete mode 100644 arch/ia64/kernel/Makefile
delete mode 100644 arch/ia64/kernel/Makefile.gate
delete mode 100644 arch/ia64/kernel/acpi-ext.c
delete mode 100644 arch/ia64/kernel/acpi.c
delete mode 100644 arch/ia64/kernel/asm-offsets.c
delete mode 100644 arch/ia64/kernel/audit.c
delete mode 100644 arch/ia64/kernel/brl_emu.c
delete mode 100644 arch/ia64/kernel/crash.c
delete mode 100644 arch/ia64/kernel/crash_dump.c
delete mode 100644 arch/ia64/kernel/cyclone.c
delete mode 100644 arch/ia64/kernel/dma-mapping.c
delete mode 100644 arch/ia64/kernel/efi.c
delete mode 100644 arch/ia64/kernel/efi_stub.S
delete mode 100644 arch/ia64/kernel/elfcore.c
delete mode 100644 arch/ia64/kernel/entry.S
delete mode 100644 arch/ia64/kernel/entry.h
delete mode 100644 arch/ia64/kernel/err_inject.c
delete mode 100644 arch/ia64/kernel/esi.c
delete mode 100644 arch/ia64/kernel/esi_stub.S
delete mode 100644 arch/ia64/kernel/fsys.S
delete mode 100644 arch/ia64/kernel/fsyscall_gtod_data.h
delete mode 100644 arch/ia64/kernel/ftrace.c
delete mode 100644 arch/ia64/kernel/gate-data.S
delete mode 100644 arch/ia64/kernel/gate.S
delete mode 100644 arch/ia64/kernel/gate.lds.S
delete mode 100644 arch/ia64/kernel/head.S
delete mode 100644 arch/ia64/kernel/iosapic.c
delete mode 100644 arch/ia64/kernel/irq.c
delete mode 100644 arch/ia64/kernel/irq.h
delete mode 100644 arch/ia64/kernel/irq_ia64.c
delete mode 100644 arch/ia64/kernel/irq_lsapic.c
delete mode 100644 arch/ia64/kernel/ivt.S
delete mode 100644 arch/ia64/kernel/kprobes.c
delete mode 100644 arch/ia64/kernel/machine_kexec.c
delete mode 100644 arch/ia64/kernel/mca.c
delete mode 100644 arch/ia64/kernel/mca_asm.S
delete mode 100644 arch/ia64/kernel/mca_drv.c
delete mode 100644 arch/ia64/kernel/mca_drv.h
delete mode 100644 arch/ia64/kernel/mca_drv_asm.S
delete mode 100644 arch/ia64/kernel/minstate.h
delete mode 100644 arch/ia64/kernel/module.c
delete mode 100644 arch/ia64/kernel/msi_ia64.c
delete mode 100644 arch/ia64/kernel/numa.c
delete mode 100644 arch/ia64/kernel/pal.S
delete mode 100644 arch/ia64/kernel/palinfo.c
delete mode 100644 arch/ia64/kernel/patch.c
delete mode 100644 arch/ia64/kernel/pci-dma.c
delete mode 100644 arch/ia64/kernel/perfmon_itanium.h
delete mode 100644 arch/ia64/kernel/process.c
delete mode 100644 arch/ia64/kernel/ptrace.c
delete mode 100644 arch/ia64/kernel/relocate_kernel.S
delete mode 100644 arch/ia64/kernel/sal.c
delete mode 100644 arch/ia64/kernel/salinfo.c
delete mode 100644 arch/ia64/kernel/setup.c
delete mode 100644 arch/ia64/kernel/sigframe.h
delete mode 100644 arch/ia64/kernel/signal.c
delete mode 100644 arch/ia64/kernel/smp.c
delete mode 100644 arch/ia64/kernel/smpboot.c
delete mode 100644 arch/ia64/kernel/stacktrace.c
delete mode 100644 arch/ia64/kernel/sys_ia64.c
delete mode 100644 arch/ia64/kernel/syscalls/Makefile
delete mode 100644 arch/ia64/kernel/syscalls/syscall.tbl
delete mode 100644 arch/ia64/kernel/time.c
delete mode 100644 arch/ia64/kernel/topology.c
delete mode 100644 arch/ia64/kernel/traps.c
delete mode 100644 arch/ia64/kernel/unaligned.c
delete mode 100644 arch/ia64/kernel/uncached.c
delete mode 100644 arch/ia64/kernel/unwind.c
delete mode 100644 arch/ia64/kernel/unwind_decoder.c
delete mode 100644 arch/ia64/kernel/unwind_i.h
delete mode 100644 arch/ia64/kernel/vmlinux.lds.S
delete mode 100644 arch/ia64/lib/Makefile
delete mode 100644 arch/ia64/lib/checksum.c
delete mode 100644 arch/ia64/lib/clear_page.S
delete mode 100644 arch/ia64/lib/clear_user.S
delete mode 100644 arch/ia64/lib/copy_page.S
delete mode 100644 arch/ia64/lib/copy_page_mck.S
delete mode 100644 arch/ia64/lib/copy_user.S
delete mode 100644 arch/ia64/lib/csum_partial_copy.c
delete mode 100644 arch/ia64/lib/do_csum.S
delete mode 100644 arch/ia64/lib/flush.S
delete mode 100644 arch/ia64/lib/idiv32.S
delete mode 100644 arch/ia64/lib/idiv64.S
delete mode 100644 arch/ia64/lib/io.c
delete mode 100644 arch/ia64/lib/ip_fast_csum.S
delete mode 100644 arch/ia64/lib/memcpy.S
delete mode 100644 arch/ia64/lib/memcpy_mck.S
delete mode 100644 arch/ia64/lib/memset.S
delete mode 100644 arch/ia64/lib/strlen.S
delete mode 100644 arch/ia64/lib/strncpy_from_user.S
delete mode 100644 arch/ia64/lib/strnlen_user.S
delete mode 100644 arch/ia64/lib/xor.S
delete mode 100644 arch/ia64/mm/Makefile
delete mode 100644 arch/ia64/mm/contig.c
delete mode 100644 arch/ia64/mm/discontig.c
delete mode 100644 arch/ia64/mm/extable.c
delete mode 100644 arch/ia64/mm/fault.c
delete mode 100644 arch/ia64/mm/hugetlbpage.c
delete mode 100644 arch/ia64/mm/init.c
delete mode 100644 arch/ia64/mm/ioremap.c
delete mode 100644 arch/ia64/mm/numa.c
delete mode 100644 arch/ia64/mm/tlb.c
delete mode 100644 arch/ia64/pci/Makefile
delete mode 100644 arch/ia64/pci/fixup.c
delete mode 100644 arch/ia64/pci/pci.c
delete mode 100755 arch/ia64/scripts/check-gas
delete mode 100644 arch/ia64/scripts/check-gas-asm.S
delete mode 100644 arch/ia64/scripts/check-model.c
delete mode 100644 arch/ia64/scripts/check-segrel.S
delete mode 100644 arch/ia64/scripts/check-segrel.lds
delete mode 100644 arch/ia64/scripts/check-serialize.S
delete mode 100644 arch/ia64/scripts/check-text-align.S
delete mode 100755 arch/ia64/scripts/toolchain-flags
delete mode 100644 arch/ia64/scripts/unwcheck.py
delete mode 100644 arch/ia64/uv/Makefile
delete mode 100644 arch/ia64/uv/kernel/Makefile
delete mode 100644 arch/ia64/uv/kernel/setup.c
delete mode 100644 drivers/char/agp/hp-agp.c
delete mode 100644 drivers/char/agp/i460-agp.c
delete mode 100644 drivers/char/mspec.c
delete mode 100644 drivers/cpufreq/ia64-acpi-cpufreq.c
delete mode 100644 drivers/firmware/pcdp.c
delete mode 100644 drivers/firmware/pcdp.h
delete mode 100644 tools/arch/ia64/include/asm/barrier.h
delete mode 100644 tools/arch/ia64/include/uapi/asm/bitsperlong.h
delete mode 100644 tools/arch/ia64/include/uapi/asm/mman.h
^ permalink raw reply [relevance 1%]
* [GIT PULL] Remove Itanium support
@ 2023-09-11 16:31 1% Ard Biesheuvel
2023-09-11 17:05 0% ` John Paul Adrian Glaubitz
0 siblings, 1 reply; 200+ results
From: Ard Biesheuvel @ 2023-09-11 16:31 UTC (permalink / raw)
To: arnd
Cc: linux-ia64, linux-arch, Ard Biesheuvel,
John Paul Adrian Glaubitz, Rafael J . Wysocki, Jonathan Corbet
From: Ard Biesheuvel <ardb@kernel.org>
Hello Arnd,
Please pull the series below, which provides a fix for the ia64 build (which
is currently broken), and subsequently removes it, based on the timeline
proposed by the Debian/ia64 maintainer (details in the second patch).
https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=remove-ia64
The following changes since commit 0bb80ecc33a8fb5a682236443c1e740d5c917d1d:
Linux 6.6-rc1 (2023-09-10 16:28:41 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git tags/tag-remove-ia64
for you to fetch changes up to 944834901adc94b3a44d1dd153eb739a937e52d2:
Documentation: Drop or replace remaining mentions of IA64 (2023-09-11 08:13:18 +0000)
----------------------------------------------------------------
Remove IA-64 architecture support
Fix the IA-64 build before removing the architecture support completely.
This makes v6.6 LTS the final Linux release with IA-64/Itanium support.
----------------------------------------------------------------
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Ard Biesheuvel (6):
acpi: Provide ia64 dummy implementation of acpi_proc_quirk_mwait_check()
arch: Remove Itanium (IA-64) architecture
kernel: Drop IA64 support from sig_fault handlers
Documentation: Drop IA64 from feature descriptions
lib/raid6: Drop IA64 support
Documentation: Drop or replace remaining mentions of IA64
Documentation/ABI/testing/sysfs-devices-system-cpu | 3 -
.../ABI/testing/sysfs-firmware-dmi-entries | 2 +-
Documentation/admin-guide/kdump/kdump.rst | 37 +-
Documentation/admin-guide/kdump/vmcoreinfo.rst | 30 -
Documentation/admin-guide/kernel-parameters.txt | 8 +-
Documentation/admin-guide/mm/memory-hotplug.rst | 2 +-
Documentation/admin-guide/sysctl/kernel.rst | 23 +-
Documentation/arch/ia64/aliasing.rst | 246 ---
Documentation/arch/ia64/efirtc.rst | 144 --
Documentation/arch/ia64/err_inject.rst | 1067 ---------
Documentation/arch/ia64/features.rst | 3 -
Documentation/arch/ia64/fsys.rst | 303 ---
Documentation/arch/ia64/ia64.rst | 49 -
Documentation/arch/ia64/index.rst | 19 -
Documentation/arch/ia64/irq-redir.rst | 80 -
Documentation/arch/ia64/mca.rst | 198 --
Documentation/arch/ia64/serial.rst | 165 --
Documentation/arch/index.rst | 1 -
Documentation/block/ioprio.rst | 3 -
Documentation/core-api/cpu_hotplug.rst | 6 -
Documentation/core-api/debugging-via-ohci1394.rst | 6 +-
.../features/core/cBPF-JIT/arch-support.txt | 1 -
.../features/core/eBPF-JIT/arch-support.txt | 1 -
.../core/generic-idle-thread/arch-support.txt | 1 -
.../features/core/jump-labels/arch-support.txt | 1 -
.../core/thread-info-in-task/arch-support.txt | 1 -
.../features/core/tracehook/arch-support.txt | 1 -
.../features/debug/KASAN/arch-support.txt | 1 -
.../debug/debug-vm-pgtable/arch-support.txt | 1 -
.../debug/gcov-profile-all/arch-support.txt | 1 -
Documentation/features/debug/kcov/arch-support.txt | 1 -
Documentation/features/debug/kgdb/arch-support.txt | 1 -
.../features/debug/kmemleak/arch-support.txt | 1 -
.../debug/kprobes-on-ftrace/arch-support.txt | 1 -
.../features/debug/kprobes/arch-support.txt | 1 -
.../features/debug/kretprobes/arch-support.txt | 1 -
.../features/debug/optprobes/arch-support.txt | 1 -
.../features/debug/stackprotector/arch-support.txt | 1 -
.../features/debug/uprobes/arch-support.txt | 1 -
.../debug/user-ret-profiler/arch-support.txt | 1 -
.../features/io/dma-contiguous/arch-support.txt | 1 -
.../locking/cmpxchg-local/arch-support.txt | 1 -
.../features/locking/lockdep/arch-support.txt | 1 -
.../locking/queued-rwlocks/arch-support.txt | 1 -
.../locking/queued-spinlocks/arch-support.txt | 1 -
.../features/perf/kprobes-event/arch-support.txt | 1 -
.../features/perf/perf-regs/arch-support.txt | 1 -
.../features/perf/perf-stackdump/arch-support.txt | 1 -
.../sched/membarrier-sync-core/arch-support.txt | 1 -
.../features/sched/numa-balancing/arch-support.txt | 1 -
.../seccomp/seccomp-filter/arch-support.txt | 1 -
.../time/arch-tick-broadcast/arch-support.txt | 1 -
.../features/time/clockevents/arch-support.txt | 1 -
.../time/context-tracking/arch-support.txt | 1 -
.../features/time/irq-time-acct/arch-support.txt | 1 -
.../features/time/virt-cpuacct/arch-support.txt | 1 -
.../features/vm/ELF-ASLR/arch-support.txt | 1 -
.../features/vm/PG_uncached/arch-support.txt | 1 -
Documentation/features/vm/THP/arch-support.txt | 1 -
Documentation/features/vm/TLB/arch-support.txt | 1 -
.../features/vm/huge-vmap/arch-support.txt | 1 -
.../features/vm/ioremap_prot/arch-support.txt | 1 -
.../features/vm/pte_special/arch-support.txt | 1 -
Documentation/kbuild/makefiles.rst | 2 +-
.../device_drivers/ethernet/neterion/s2io.rst | 4 +-
Documentation/scheduler/sched-arch.rst | 4 +-
Documentation/trace/kprobes.rst | 1 -
Documentation/translations/zh_CN/arch/index.rst | 1 -
.../translations/zh_CN/core-api/cpu_hotplug.rst | 6 -
.../translations/zh_CN/scheduler/sched-arch.rst | 5 +-
MAINTAINERS | 11 -
Makefile | 4 +-
arch/Kconfig | 1 -
arch/ia64/Kbuild | 3 -
arch/ia64/Kconfig | 394 ----
arch/ia64/Kconfig.debug | 55 -
arch/ia64/Makefile | 82 -
arch/ia64/configs/bigsur_defconfig | 102 -
arch/ia64/configs/generic_defconfig | 206 --
arch/ia64/configs/gensparse_defconfig | 184 --
arch/ia64/configs/tiger_defconfig | 169 --
arch/ia64/configs/zx1_defconfig | 148 --
arch/ia64/hp/common/Makefile | 10 -
arch/ia64/hp/common/aml_nfw.c | 232 --
arch/ia64/hp/common/sba_iommu.c | 2155 ------------------
arch/ia64/include/asm/Kbuild | 6 -
arch/ia64/include/asm/acenv.h | 49 -
arch/ia64/include/asm/acpi-ext.h | 17 -
arch/ia64/include/asm/acpi.h | 110 -
arch/ia64/include/asm/asm-offsets.h | 1 -
arch/ia64/include/asm/asm-prototypes.h | 30 -
arch/ia64/include/asm/asmmacro.h | 136 --
arch/ia64/include/asm/atomic.h | 216 --
arch/ia64/include/asm/barrier.h | 79 -
arch/ia64/include/asm/bitops.h | 453 ----
arch/ia64/include/asm/bug.h | 19 -
arch/ia64/include/asm/cache.h | 30 -
arch/ia64/include/asm/cacheflush.h | 39 -
arch/ia64/include/asm/checksum.h | 63 -
arch/ia64/include/asm/clocksource.h | 11 -
arch/ia64/include/asm/cmpxchg.h | 33 -
arch/ia64/include/asm/cpu.h | 23 -
arch/ia64/include/asm/cputime.h | 21 -
arch/ia64/include/asm/current.h | 18 -
arch/ia64/include/asm/cyclone.h | 16 -
arch/ia64/include/asm/delay.h | 89 -
arch/ia64/include/asm/device.h | 14 -
arch/ia64/include/asm/div64.h | 1 -
arch/ia64/include/asm/dma-mapping.h | 16 -
arch/ia64/include/asm/dma.h | 17 -
arch/ia64/include/asm/dmi.h | 15 -
arch/ia64/include/asm/early_ioremap.h | 11 -
arch/ia64/include/asm/efi.h | 13 -
arch/ia64/include/asm/elf.h | 233 --
arch/ia64/include/asm/emergency-restart.h | 6 -
arch/ia64/include/asm/esi.h | 30 -
arch/ia64/include/asm/exception.h | 23 -
arch/ia64/include/asm/extable.h | 12 -
arch/ia64/include/asm/fb.h | 43 -
arch/ia64/include/asm/fpswa.h | 74 -
arch/ia64/include/asm/ftrace.h | 28 -
arch/ia64/include/asm/futex.h | 109 -
arch/ia64/include/asm/gcc_intrin.h | 13 -
arch/ia64/include/asm/hardirq.h | 27 -
arch/ia64/include/asm/hugetlb.h | 34 -
arch/ia64/include/asm/hw_irq.h | 167 --
arch/ia64/include/asm/idle.h | 8 -
arch/ia64/include/asm/intrinsics.h | 13 -
arch/ia64/include/asm/io.h | 271 ---
arch/ia64/include/asm/iommu.h | 22 -
arch/ia64/include/asm/iosapic.h | 106 -
arch/ia64/include/asm/irq.h | 37 -
arch/ia64/include/asm/irq_regs.h | 1 -
arch/ia64/include/asm/irq_remapping.h | 5 -
arch/ia64/include/asm/irqflags.h | 95 -
arch/ia64/include/asm/kdebug.h | 45 -
arch/ia64/include/asm/kexec.h | 46 -
arch/ia64/include/asm/kprobes.h | 116 -
arch/ia64/include/asm/kregs.h | 166 --
arch/ia64/include/asm/libata-portmap.h | 9 -
arch/ia64/include/asm/linkage.h | 19 -
arch/ia64/include/asm/local.h | 1 -
arch/ia64/include/asm/mca.h | 185 --
arch/ia64/include/asm/mca_asm.h | 245 ---
arch/ia64/include/asm/meminit.h | 59 -
arch/ia64/include/asm/mman.h | 18 -
arch/ia64/include/asm/mmiowb.h | 17 -
arch/ia64/include/asm/mmu.h | 14 -
arch/ia64/include/asm/mmu_context.h | 194 --
arch/ia64/include/asm/mmzone.h | 35 -
arch/ia64/include/asm/module.h | 35 -
arch/ia64/include/asm/module.lds.h | 14 -
arch/ia64/include/asm/msidef.h | 43 -
arch/ia64/include/asm/native/inst.h | 119 -
arch/ia64/include/asm/native/irq.h | 20 -
arch/ia64/include/asm/native/patchlist.h | 24 -
arch/ia64/include/asm/nodedata.h | 63 -
arch/ia64/include/asm/numa.h | 83 -
arch/ia64/include/asm/page.h | 208 --
arch/ia64/include/asm/pal.h | 1827 ---------------
arch/ia64/include/asm/param.h | 18 -
arch/ia64/include/asm/parport.h | 20 -
arch/ia64/include/asm/patch.h | 28 -
arch/ia64/include/asm/pci.h | 66 -
arch/ia64/include/asm/percpu.h | 53 -
arch/ia64/include/asm/pgalloc.h | 64 -
arch/ia64/include/asm/pgtable.h | 545 -----
arch/ia64/include/asm/processor.h | 660 ------
arch/ia64/include/asm/ptrace.h | 146 --
arch/ia64/include/asm/sal.h | 919 --------
arch/ia64/include/asm/sections.h | 33 -
arch/ia64/include/asm/serial.h | 17 -
arch/ia64/include/asm/shmparam.h | 13 -
arch/ia64/include/asm/signal.h | 33 -
arch/ia64/include/asm/smp.h | 103 -
arch/ia64/include/asm/sn/intr.h | 15 -
arch/ia64/include/asm/sn/sn_sal.h | 124 --
arch/ia64/include/asm/sparsemem.h | 28 -
arch/ia64/include/asm/spinlock.h | 265 ---
arch/ia64/include/asm/spinlock_types.h | 22 -
arch/ia64/include/asm/string.h | 22 -
arch/ia64/include/asm/switch_to.h | 71 -
arch/ia64/include/asm/syscall.h | 65 -
arch/ia64/include/asm/thread_info.h | 131 --
arch/ia64/include/asm/timex.h | 47 -
arch/ia64/include/asm/tlb.h | 50 -
arch/ia64/include/asm/tlbflush.h | 128 --
arch/ia64/include/asm/topology.h | 56 -
arch/ia64/include/asm/types.h | 32 -
arch/ia64/include/asm/uaccess.h | 265 ---
arch/ia64/include/asm/uncached.h | 9 -
arch/ia64/include/asm/unistd.h | 38 -
arch/ia64/include/asm/unwind.h | 234 --
arch/ia64/include/asm/user.h | 53 -
arch/ia64/include/asm/ustack.h | 12 -
arch/ia64/include/asm/uv/uv.h | 30 -
arch/ia64/include/asm/uv/uv_hub.h | 315 ---
arch/ia64/include/asm/uv/uv_mmrs.h | 825 -------
arch/ia64/include/asm/vermagic.h | 15 -
arch/ia64/include/asm/vga.h | 26 -
arch/ia64/include/asm/vmalloc.h | 4 -
arch/ia64/include/asm/xor.h | 30 -
arch/ia64/include/asm/xtp.h | 46 -
arch/ia64/include/uapi/asm/Kbuild | 2 -
arch/ia64/include/uapi/asm/auxvec.h | 14 -
arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
arch/ia64/include/uapi/asm/break.h | 23 -
arch/ia64/include/uapi/asm/byteorder.h | 7 -
arch/ia64/include/uapi/asm/cmpxchg.h | 138 --
arch/ia64/include/uapi/asm/fcntl.h | 15 -
arch/ia64/include/uapi/asm/fpu.h | 67 -
arch/ia64/include/uapi/asm/gcc_intrin.h | 619 ------
arch/ia64/include/uapi/asm/ia64regs.h | 101 -
arch/ia64/include/uapi/asm/intrinsics.h | 82 -
arch/ia64/include/uapi/asm/mman.h | 17 -
arch/ia64/include/uapi/asm/param.h | 30 -
arch/ia64/include/uapi/asm/posix_types.h | 9 -
arch/ia64/include/uapi/asm/ptrace.h | 248 ---
arch/ia64/include/uapi/asm/ptrace_offsets.h | 269 ---
arch/ia64/include/uapi/asm/resource.h | 8 -
arch/ia64/include/uapi/asm/rse.h | 67 -
arch/ia64/include/uapi/asm/setup.h | 25 -
arch/ia64/include/uapi/asm/sigcontext.h | 71 -
arch/ia64/include/uapi/asm/siginfo.h | 28 -
arch/ia64/include/uapi/asm/signal.h | 98 -
arch/ia64/include/uapi/asm/stat.h | 52 -
arch/ia64/include/uapi/asm/statfs.h | 21 -
arch/ia64/include/uapi/asm/swab.h | 35 -
arch/ia64/include/uapi/asm/types.h | 32 -
arch/ia64/include/uapi/asm/ucontext.h | 13 -
arch/ia64/include/uapi/asm/unistd.h | 22 -
arch/ia64/include/uapi/asm/ustack.h | 13 -
arch/ia64/install.sh | 30 -
arch/ia64/kernel/.gitignore | 3 -
arch/ia64/kernel/Makefile | 46 -
arch/ia64/kernel/Makefile.gate | 29 -
arch/ia64/kernel/acpi-ext.c | 101 -
arch/ia64/kernel/acpi.c | 909 --------
arch/ia64/kernel/asm-offsets.c | 289 ---
arch/ia64/kernel/audit.c | 63 -
arch/ia64/kernel/brl_emu.c | 217 --
arch/ia64/kernel/crash.c | 257 ---
arch/ia64/kernel/crash_dump.c | 27 -
arch/ia64/kernel/cyclone.c | 125 --
arch/ia64/kernel/dma-mapping.c | 9 -
arch/ia64/kernel/efi.c | 1360 ------------
arch/ia64/kernel/efi_stub.S | 87 -
arch/ia64/kernel/elfcore.c | 77 -
arch/ia64/kernel/entry.S | 1427 ------------
arch/ia64/kernel/entry.h | 83 -
arch/ia64/kernel/err_inject.c | 273 ---
arch/ia64/kernel/esi.c | 193 --
arch/ia64/kernel/esi_stub.S | 99 -
arch/ia64/kernel/fsys.S | 837 -------
arch/ia64/kernel/fsyscall_gtod_data.h | 30 -
arch/ia64/kernel/ftrace.c | 196 --
arch/ia64/kernel/gate-data.S | 3 -
arch/ia64/kernel/gate.S | 380 ----
arch/ia64/kernel/gate.lds.S | 108 -
arch/ia64/kernel/head.S | 1167 ----------
arch/ia64/kernel/iosapic.c | 1137 ----------
arch/ia64/kernel/irq.c | 181 --
arch/ia64/kernel/irq.h | 3 -
arch/ia64/kernel/irq_ia64.c | 645 ------
arch/ia64/kernel/irq_lsapic.c | 45 -
arch/ia64/kernel/ivt.S | 1688 --------------
arch/ia64/kernel/kprobes.c | 911 --------
arch/ia64/kernel/machine_kexec.c | 163 --
arch/ia64/kernel/mca.c | 2111 ------------------
arch/ia64/kernel/mca_asm.S | 1123 ----------
arch/ia64/kernel/mca_drv.c | 796 -------
arch/ia64/kernel/mca_drv.h | 123 --
arch/ia64/kernel/mca_drv_asm.S | 56 -
arch/ia64/kernel/minstate.h | 251 ---
arch/ia64/kernel/module.c | 959 --------
arch/ia64/kernel/msi_ia64.c | 198 --
arch/ia64/kernel/numa.c | 73 -
arch/ia64/kernel/pal.S | 306 ---
arch/ia64/kernel/palinfo.c | 942 --------
arch/ia64/kernel/patch.c | 237 --
arch/ia64/kernel/pci-dma.c | 33 -
arch/ia64/kernel/perfmon_itanium.h | 116 -
arch/ia64/kernel/process.c | 611 ------
arch/ia64/kernel/ptrace.c | 2012 -----------------
arch/ia64/kernel/relocate_kernel.S | 321 ---
arch/ia64/kernel/sal.c | 400 ----
arch/ia64/kernel/salinfo.c | 646 ------
arch/ia64/kernel/setup.c | 1081 ---------
arch/ia64/kernel/sigframe.h | 26 -
arch/ia64/kernel/signal.c | 412 ----
arch/ia64/kernel/smp.c | 335 ---
arch/ia64/kernel/smpboot.c | 839 -------
arch/ia64/kernel/stacktrace.c | 40 -
arch/ia64/kernel/sys_ia64.c | 197 --
arch/ia64/kernel/syscalls/Makefile | 32 -
arch/ia64/kernel/syscalls/syscall.tbl | 375 ----
arch/ia64/kernel/time.c | 463 ----
arch/ia64/kernel/topology.c | 410 ----
arch/ia64/kernel/traps.c | 612 ------
arch/ia64/kernel/unaligned.c | 1560 -------------
arch/ia64/kernel/uncached.c | 273 ---
arch/ia64/kernel/unwind.c | 2320 --------------------
arch/ia64/kernel/unwind_decoder.c | 460 ----
arch/ia64/kernel/unwind_i.h | 165 --
arch/ia64/kernel/vmlinux.lds.S | 224 --
arch/ia64/lib/Makefile | 48 -
arch/ia64/lib/checksum.c | 102 -
arch/ia64/lib/clear_page.S | 79 -
arch/ia64/lib/clear_user.S | 212 --
arch/ia64/lib/copy_page.S | 101 -
arch/ia64/lib/copy_page_mck.S | 188 --
arch/ia64/lib/copy_user.S | 613 ------
arch/ia64/lib/csum_partial_copy.c | 98 -
arch/ia64/lib/do_csum.S | 324 ---
arch/ia64/lib/flush.S | 119 -
arch/ia64/lib/idiv32.S | 86 -
arch/ia64/lib/idiv64.S | 83 -
arch/ia64/lib/io.c | 51 -
arch/ia64/lib/ip_fast_csum.S | 148 --
arch/ia64/lib/memcpy.S | 304 ---
arch/ia64/lib/memcpy_mck.S | 659 ------
arch/ia64/lib/memset.S | 365 ---
arch/ia64/lib/strlen.S | 195 --
arch/ia64/lib/strncpy_from_user.S | 47 -
arch/ia64/lib/strnlen_user.S | 48 -
arch/ia64/lib/xor.S | 181 --
arch/ia64/mm/Makefile | 11 -
arch/ia64/mm/contig.c | 208 --
arch/ia64/mm/discontig.c | 635 ------
arch/ia64/mm/extable.c | 24 -
arch/ia64/mm/fault.c | 251 ---
arch/ia64/mm/hugetlbpage.c | 186 --
arch/ia64/mm/init.c | 532 -----
arch/ia64/mm/ioremap.c | 94 -
arch/ia64/mm/numa.c | 80 -
arch/ia64/mm/tlb.c | 591 -----
arch/ia64/pci/Makefile | 5 -
arch/ia64/pci/fixup.c | 80 -
arch/ia64/pci/pci.c | 576 -----
arch/ia64/scripts/check-gas | 16 -
arch/ia64/scripts/check-gas-asm.S | 2 -
arch/ia64/scripts/check-model.c | 1 -
arch/ia64/scripts/check-segrel.S | 5 -
arch/ia64/scripts/check-segrel.lds | 13 -
arch/ia64/scripts/check-serialize.S | 2 -
arch/ia64/scripts/check-text-align.S | 7 -
arch/ia64/scripts/toolchain-flags | 54 -
arch/ia64/scripts/unwcheck.py | 65 -
arch/ia64/uv/Makefile | 12 -
arch/ia64/uv/kernel/Makefile | 12 -
arch/ia64/uv/kernel/setup.c | 120 -
drivers/acpi/Kconfig | 6 +-
drivers/acpi/numa/Kconfig | 4 +-
drivers/acpi/osl.c | 2 +-
drivers/char/Kconfig | 4 +-
drivers/char/Makefile | 1 -
drivers/char/agp/Kconfig | 16 +-
drivers/char/agp/Makefile | 2 -
drivers/char/agp/hp-agp.c | 550 -----
drivers/char/agp/i460-agp.c | 659 ------
drivers/char/hpet.c | 30 -
drivers/char/hw_random/Kconfig | 2 +-
drivers/char/mem.c | 12 -
drivers/char/mspec.c | 295 ---
drivers/cpufreq/Kconfig | 11 -
drivers/cpufreq/Makefile | 1 -
drivers/cpufreq/ia64-acpi-cpufreq.c | 353 ---
drivers/firmware/Kconfig | 24 -
drivers/firmware/Makefile | 1 -
drivers/firmware/efi/Kconfig | 6 +-
drivers/firmware/efi/efi.c | 13 +-
drivers/firmware/pcdp.c | 135 --
drivers/firmware/pcdp.h | 108 -
drivers/gpu/drm/drm_ioc32.c | 4 +-
drivers/input/serio/i8042.h | 2 +-
drivers/iommu/Kconfig | 4 +-
drivers/iommu/intel/Kconfig | 2 +-
drivers/media/cec/platform/Kconfig | 2 +-
drivers/misc/Kconfig | 2 +-
drivers/misc/sgi-gru/gru.h | 4 +-
drivers/misc/sgi-gru/gru_instructions.h | 12 +-
drivers/misc/sgi-gru/grufile.c | 72 -
drivers/misc/sgi-gru/gruhandles.c | 6 -
drivers/misc/sgi-gru/grumain.c | 4 -
drivers/misc/sgi-xp/xp.h | 2 +-
drivers/misc/sgi-xp/xp_uv.c | 24 -
drivers/misc/sgi-xp/xpc_main.c | 31 -
drivers/misc/sgi-xp/xpc_uv.c | 85 -
drivers/net/ethernet/broadcom/tg3.c | 2 +-
drivers/net/ethernet/brocade/bna/bnad.h | 1 -
.../net/ethernet/qlogic/netxen/netxen_nic_main.c | 2 -
drivers/pci/vgaarb.c | 2 +-
drivers/tty/serial/8250/Kconfig | 2 +-
drivers/tty/vt/keyboard.c | 2 +-
drivers/video/fbdev/Kconfig | 2 +-
drivers/watchdog/Kconfig | 2 +-
fs/Kconfig | 2 +-
fs/afs/main.c | 2 -
fs/xfs/xfs_ioctl32.h | 2 +-
include/linux/acpi.h | 9 +-
include/linux/efi.h | 7 -
include/linux/mm.h | 2 -
include/linux/moduleparam.h | 2 +-
include/linux/raid/pq.h | 2 -
include/linux/sched/signal.h | 17 +-
include/trace/events/mmflags.h | 2 +-
include/uapi/asm-generic/siginfo.h | 5 -
init/Kconfig | 2 +-
kernel/cpu.c | 3 -
kernel/fork.c | 2 +-
kernel/sched/core.c | 29 +-
kernel/signal.c | 25 +-
kernel/sysctl.c | 9 -
lib/Kconfig.debug | 2 +-
lib/decompress_unxz.c | 3 -
lib/raid6/Makefile | 4 +-
lib/raid6/algos.c | 4 -
lib/raid6/int.uc | 9 -
lib/xz/Kconfig | 5 -
mm/mmap.c | 6 +-
tools/arch/ia64/include/asm/barrier.h | 59 -
tools/arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
tools/arch/ia64/include/uapi/asm/mman.h | 7 -
usr/include/Makefile | 6 -
424 files changed, 74 insertions(+), 65172 deletions(-)
delete mode 100644 Documentation/arch/ia64/aliasing.rst
delete mode 100644 Documentation/arch/ia64/efirtc.rst
delete mode 100644 Documentation/arch/ia64/err_inject.rst
delete mode 100644 Documentation/arch/ia64/features.rst
delete mode 100644 Documentation/arch/ia64/fsys.rst
delete mode 100644 Documentation/arch/ia64/ia64.rst
delete mode 100644 Documentation/arch/ia64/index.rst
delete mode 100644 Documentation/arch/ia64/irq-redir.rst
delete mode 100644 Documentation/arch/ia64/mca.rst
delete mode 100644 Documentation/arch/ia64/serial.rst
delete mode 100644 arch/ia64/Kbuild
delete mode 100644 arch/ia64/Kconfig
delete mode 100644 arch/ia64/Kconfig.debug
delete mode 100644 arch/ia64/Makefile
delete mode 100644 arch/ia64/configs/bigsur_defconfig
delete mode 100644 arch/ia64/configs/generic_defconfig
delete mode 100644 arch/ia64/configs/gensparse_defconfig
delete mode 100644 arch/ia64/configs/tiger_defconfig
delete mode 100644 arch/ia64/configs/zx1_defconfig
delete mode 100644 arch/ia64/hp/common/Makefile
delete mode 100644 arch/ia64/hp/common/aml_nfw.c
delete mode 100644 arch/ia64/hp/common/sba_iommu.c
delete mode 100644 arch/ia64/include/asm/Kbuild
delete mode 100644 arch/ia64/include/asm/acenv.h
delete mode 100644 arch/ia64/include/asm/acpi-ext.h
delete mode 100644 arch/ia64/include/asm/acpi.h
delete mode 100644 arch/ia64/include/asm/asm-offsets.h
delete mode 100644 arch/ia64/include/asm/asm-prototypes.h
delete mode 100644 arch/ia64/include/asm/asmmacro.h
delete mode 100644 arch/ia64/include/asm/atomic.h
delete mode 100644 arch/ia64/include/asm/barrier.h
delete mode 100644 arch/ia64/include/asm/bitops.h
delete mode 100644 arch/ia64/include/asm/bug.h
delete mode 100644 arch/ia64/include/asm/cache.h
delete mode 100644 arch/ia64/include/asm/cacheflush.h
delete mode 100644 arch/ia64/include/asm/checksum.h
delete mode 100644 arch/ia64/include/asm/clocksource.h
delete mode 100644 arch/ia64/include/asm/cmpxchg.h
delete mode 100644 arch/ia64/include/asm/cpu.h
delete mode 100644 arch/ia64/include/asm/cputime.h
delete mode 100644 arch/ia64/include/asm/current.h
delete mode 100644 arch/ia64/include/asm/cyclone.h
delete mode 100644 arch/ia64/include/asm/delay.h
delete mode 100644 arch/ia64/include/asm/device.h
delete mode 100644 arch/ia64/include/asm/div64.h
delete mode 100644 arch/ia64/include/asm/dma-mapping.h
delete mode 100644 arch/ia64/include/asm/dma.h
delete mode 100644 arch/ia64/include/asm/dmi.h
delete mode 100644 arch/ia64/include/asm/early_ioremap.h
delete mode 100644 arch/ia64/include/asm/efi.h
delete mode 100644 arch/ia64/include/asm/elf.h
delete mode 100644 arch/ia64/include/asm/emergency-restart.h
delete mode 100644 arch/ia64/include/asm/esi.h
delete mode 100644 arch/ia64/include/asm/exception.h
delete mode 100644 arch/ia64/include/asm/extable.h
delete mode 100644 arch/ia64/include/asm/fb.h
delete mode 100644 arch/ia64/include/asm/fpswa.h
delete mode 100644 arch/ia64/include/asm/ftrace.h
delete mode 100644 arch/ia64/include/asm/futex.h
delete mode 100644 arch/ia64/include/asm/gcc_intrin.h
delete mode 100644 arch/ia64/include/asm/hardirq.h
delete mode 100644 arch/ia64/include/asm/hugetlb.h
delete mode 100644 arch/ia64/include/asm/hw_irq.h
delete mode 100644 arch/ia64/include/asm/idle.h
delete mode 100644 arch/ia64/include/asm/intrinsics.h
delete mode 100644 arch/ia64/include/asm/io.h
delete mode 100644 arch/ia64/include/asm/iommu.h
delete mode 100644 arch/ia64/include/asm/iosapic.h
delete mode 100644 arch/ia64/include/asm/irq.h
delete mode 100644 arch/ia64/include/asm/irq_regs.h
delete mode 100644 arch/ia64/include/asm/irq_remapping.h
delete mode 100644 arch/ia64/include/asm/irqflags.h
delete mode 100644 arch/ia64/include/asm/kdebug.h
delete mode 100644 arch/ia64/include/asm/kexec.h
delete mode 100644 arch/ia64/include/asm/kprobes.h
delete mode 100644 arch/ia64/include/asm/kregs.h
delete mode 100644 arch/ia64/include/asm/libata-portmap.h
delete mode 100644 arch/ia64/include/asm/linkage.h
delete mode 100644 arch/ia64/include/asm/local.h
delete mode 100644 arch/ia64/include/asm/mca.h
delete mode 100644 arch/ia64/include/asm/mca_asm.h
delete mode 100644 arch/ia64/include/asm/meminit.h
delete mode 100644 arch/ia64/include/asm/mman.h
delete mode 100644 arch/ia64/include/asm/mmiowb.h
delete mode 100644 arch/ia64/include/asm/mmu.h
delete mode 100644 arch/ia64/include/asm/mmu_context.h
delete mode 100644 arch/ia64/include/asm/mmzone.h
delete mode 100644 arch/ia64/include/asm/module.h
delete mode 100644 arch/ia64/include/asm/module.lds.h
delete mode 100644 arch/ia64/include/asm/msidef.h
delete mode 100644 arch/ia64/include/asm/native/inst.h
delete mode 100644 arch/ia64/include/asm/native/irq.h
delete mode 100644 arch/ia64/include/asm/native/patchlist.h
delete mode 100644 arch/ia64/include/asm/nodedata.h
delete mode 100644 arch/ia64/include/asm/numa.h
delete mode 100644 arch/ia64/include/asm/page.h
delete mode 100644 arch/ia64/include/asm/pal.h
delete mode 100644 arch/ia64/include/asm/param.h
delete mode 100644 arch/ia64/include/asm/parport.h
delete mode 100644 arch/ia64/include/asm/patch.h
delete mode 100644 arch/ia64/include/asm/pci.h
delete mode 100644 arch/ia64/include/asm/percpu.h
delete mode 100644 arch/ia64/include/asm/pgalloc.h
delete mode 100644 arch/ia64/include/asm/pgtable.h
delete mode 100644 arch/ia64/include/asm/processor.h
delete mode 100644 arch/ia64/include/asm/ptrace.h
delete mode 100644 arch/ia64/include/asm/sal.h
delete mode 100644 arch/ia64/include/asm/sections.h
delete mode 100644 arch/ia64/include/asm/serial.h
delete mode 100644 arch/ia64/include/asm/shmparam.h
delete mode 100644 arch/ia64/include/asm/signal.h
delete mode 100644 arch/ia64/include/asm/smp.h
delete mode 100644 arch/ia64/include/asm/sn/intr.h
delete mode 100644 arch/ia64/include/asm/sn/sn_sal.h
delete mode 100644 arch/ia64/include/asm/sparsemem.h
delete mode 100644 arch/ia64/include/asm/spinlock.h
delete mode 100644 arch/ia64/include/asm/spinlock_types.h
delete mode 100644 arch/ia64/include/asm/string.h
delete mode 100644 arch/ia64/include/asm/switch_to.h
delete mode 100644 arch/ia64/include/asm/syscall.h
delete mode 100644 arch/ia64/include/asm/thread_info.h
delete mode 100644 arch/ia64/include/asm/timex.h
delete mode 100644 arch/ia64/include/asm/tlb.h
delete mode 100644 arch/ia64/include/asm/tlbflush.h
delete mode 100644 arch/ia64/include/asm/topology.h
delete mode 100644 arch/ia64/include/asm/types.h
delete mode 100644 arch/ia64/include/asm/uaccess.h
delete mode 100644 arch/ia64/include/asm/uncached.h
delete mode 100644 arch/ia64/include/asm/unistd.h
delete mode 100644 arch/ia64/include/asm/unwind.h
delete mode 100644 arch/ia64/include/asm/user.h
delete mode 100644 arch/ia64/include/asm/ustack.h
delete mode 100644 arch/ia64/include/asm/uv/uv.h
delete mode 100644 arch/ia64/include/asm/uv/uv_hub.h
delete mode 100644 arch/ia64/include/asm/uv/uv_mmrs.h
delete mode 100644 arch/ia64/include/asm/vermagic.h
delete mode 100644 arch/ia64/include/asm/vga.h
delete mode 100644 arch/ia64/include/asm/vmalloc.h
delete mode 100644 arch/ia64/include/asm/xor.h
delete mode 100644 arch/ia64/include/asm/xtp.h
delete mode 100644 arch/ia64/include/uapi/asm/Kbuild
delete mode 100644 arch/ia64/include/uapi/asm/auxvec.h
delete mode 100644 arch/ia64/include/uapi/asm/bitsperlong.h
delete mode 100644 arch/ia64/include/uapi/asm/break.h
delete mode 100644 arch/ia64/include/uapi/asm/byteorder.h
delete mode 100644 arch/ia64/include/uapi/asm/cmpxchg.h
delete mode 100644 arch/ia64/include/uapi/asm/fcntl.h
delete mode 100644 arch/ia64/include/uapi/asm/fpu.h
delete mode 100644 arch/ia64/include/uapi/asm/gcc_intrin.h
delete mode 100644 arch/ia64/include/uapi/asm/ia64regs.h
delete mode 100644 arch/ia64/include/uapi/asm/intrinsics.h
delete mode 100644 arch/ia64/include/uapi/asm/mman.h
delete mode 100644 arch/ia64/include/uapi/asm/param.h
delete mode 100644 arch/ia64/include/uapi/asm/posix_types.h
delete mode 100644 arch/ia64/include/uapi/asm/ptrace.h
delete mode 100644 arch/ia64/include/uapi/asm/ptrace_offsets.h
delete mode 100644 arch/ia64/include/uapi/asm/resource.h
delete mode 100644 arch/ia64/include/uapi/asm/rse.h
delete mode 100644 arch/ia64/include/uapi/asm/setup.h
delete mode 100644 arch/ia64/include/uapi/asm/sigcontext.h
delete mode 100644 arch/ia64/include/uapi/asm/siginfo.h
delete mode 100644 arch/ia64/include/uapi/asm/signal.h
delete mode 100644 arch/ia64/include/uapi/asm/stat.h
delete mode 100644 arch/ia64/include/uapi/asm/statfs.h
delete mode 100644 arch/ia64/include/uapi/asm/swab.h
delete mode 100644 arch/ia64/include/uapi/asm/types.h
delete mode 100644 arch/ia64/include/uapi/asm/ucontext.h
delete mode 100644 arch/ia64/include/uapi/asm/unistd.h
delete mode 100644 arch/ia64/include/uapi/asm/ustack.h
delete mode 100755 arch/ia64/install.sh
delete mode 100644 arch/ia64/kernel/.gitignore
delete mode 100644 arch/ia64/kernel/Makefile
delete mode 100644 arch/ia64/kernel/Makefile.gate
delete mode 100644 arch/ia64/kernel/acpi-ext.c
delete mode 100644 arch/ia64/kernel/acpi.c
delete mode 100644 arch/ia64/kernel/asm-offsets.c
delete mode 100644 arch/ia64/kernel/audit.c
delete mode 100644 arch/ia64/kernel/brl_emu.c
delete mode 100644 arch/ia64/kernel/crash.c
delete mode 100644 arch/ia64/kernel/crash_dump.c
delete mode 100644 arch/ia64/kernel/cyclone.c
delete mode 100644 arch/ia64/kernel/dma-mapping.c
delete mode 100644 arch/ia64/kernel/efi.c
delete mode 100644 arch/ia64/kernel/efi_stub.S
delete mode 100644 arch/ia64/kernel/elfcore.c
delete mode 100644 arch/ia64/kernel/entry.S
delete mode 100644 arch/ia64/kernel/entry.h
delete mode 100644 arch/ia64/kernel/err_inject.c
delete mode 100644 arch/ia64/kernel/esi.c
delete mode 100644 arch/ia64/kernel/esi_stub.S
delete mode 100644 arch/ia64/kernel/fsys.S
delete mode 100644 arch/ia64/kernel/fsyscall_gtod_data.h
delete mode 100644 arch/ia64/kernel/ftrace.c
delete mode 100644 arch/ia64/kernel/gate-data.S
delete mode 100644 arch/ia64/kernel/gate.S
delete mode 100644 arch/ia64/kernel/gate.lds.S
delete mode 100644 arch/ia64/kernel/head.S
delete mode 100644 arch/ia64/kernel/iosapic.c
delete mode 100644 arch/ia64/kernel/irq.c
delete mode 100644 arch/ia64/kernel/irq.h
delete mode 100644 arch/ia64/kernel/irq_ia64.c
delete mode 100644 arch/ia64/kernel/irq_lsapic.c
delete mode 100644 arch/ia64/kernel/ivt.S
delete mode 100644 arch/ia64/kernel/kprobes.c
delete mode 100644 arch/ia64/kernel/machine_kexec.c
delete mode 100644 arch/ia64/kernel/mca.c
delete mode 100644 arch/ia64/kernel/mca_asm.S
delete mode 100644 arch/ia64/kernel/mca_drv.c
delete mode 100644 arch/ia64/kernel/mca_drv.h
delete mode 100644 arch/ia64/kernel/mca_drv_asm.S
delete mode 100644 arch/ia64/kernel/minstate.h
delete mode 100644 arch/ia64/kernel/module.c
delete mode 100644 arch/ia64/kernel/msi_ia64.c
delete mode 100644 arch/ia64/kernel/numa.c
delete mode 100644 arch/ia64/kernel/pal.S
delete mode 100644 arch/ia64/kernel/palinfo.c
delete mode 100644 arch/ia64/kernel/patch.c
delete mode 100644 arch/ia64/kernel/pci-dma.c
delete mode 100644 arch/ia64/kernel/perfmon_itanium.h
delete mode 100644 arch/ia64/kernel/process.c
delete mode 100644 arch/ia64/kernel/ptrace.c
delete mode 100644 arch/ia64/kernel/relocate_kernel.S
delete mode 100644 arch/ia64/kernel/sal.c
delete mode 100644 arch/ia64/kernel/salinfo.c
delete mode 100644 arch/ia64/kernel/setup.c
delete mode 100644 arch/ia64/kernel/sigframe.h
delete mode 100644 arch/ia64/kernel/signal.c
delete mode 100644 arch/ia64/kernel/smp.c
delete mode 100644 arch/ia64/kernel/smpboot.c
delete mode 100644 arch/ia64/kernel/stacktrace.c
delete mode 100644 arch/ia64/kernel/sys_ia64.c
delete mode 100644 arch/ia64/kernel/syscalls/Makefile
delete mode 100644 arch/ia64/kernel/syscalls/syscall.tbl
delete mode 100644 arch/ia64/kernel/time.c
delete mode 100644 arch/ia64/kernel/topology.c
delete mode 100644 arch/ia64/kernel/traps.c
delete mode 100644 arch/ia64/kernel/unaligned.c
delete mode 100644 arch/ia64/kernel/uncached.c
delete mode 100644 arch/ia64/kernel/unwind.c
delete mode 100644 arch/ia64/kernel/unwind_decoder.c
delete mode 100644 arch/ia64/kernel/unwind_i.h
delete mode 100644 arch/ia64/kernel/vmlinux.lds.S
delete mode 100644 arch/ia64/lib/Makefile
delete mode 100644 arch/ia64/lib/checksum.c
delete mode 100644 arch/ia64/lib/clear_page.S
delete mode 100644 arch/ia64/lib/clear_user.S
delete mode 100644 arch/ia64/lib/copy_page.S
delete mode 100644 arch/ia64/lib/copy_page_mck.S
delete mode 100644 arch/ia64/lib/copy_user.S
delete mode 100644 arch/ia64/lib/csum_partial_copy.c
delete mode 100644 arch/ia64/lib/do_csum.S
delete mode 100644 arch/ia64/lib/flush.S
delete mode 100644 arch/ia64/lib/idiv32.S
delete mode 100644 arch/ia64/lib/idiv64.S
delete mode 100644 arch/ia64/lib/io.c
delete mode 100644 arch/ia64/lib/ip_fast_csum.S
delete mode 100644 arch/ia64/lib/memcpy.S
delete mode 100644 arch/ia64/lib/memcpy_mck.S
delete mode 100644 arch/ia64/lib/memset.S
delete mode 100644 arch/ia64/lib/strlen.S
delete mode 100644 arch/ia64/lib/strncpy_from_user.S
delete mode 100644 arch/ia64/lib/strnlen_user.S
delete mode 100644 arch/ia64/lib/xor.S
delete mode 100644 arch/ia64/mm/Makefile
delete mode 100644 arch/ia64/mm/contig.c
delete mode 100644 arch/ia64/mm/discontig.c
delete mode 100644 arch/ia64/mm/extable.c
delete mode 100644 arch/ia64/mm/fault.c
delete mode 100644 arch/ia64/mm/hugetlbpage.c
delete mode 100644 arch/ia64/mm/init.c
delete mode 100644 arch/ia64/mm/ioremap.c
delete mode 100644 arch/ia64/mm/numa.c
delete mode 100644 arch/ia64/mm/tlb.c
delete mode 100644 arch/ia64/pci/Makefile
delete mode 100644 arch/ia64/pci/fixup.c
delete mode 100644 arch/ia64/pci/pci.c
delete mode 100755 arch/ia64/scripts/check-gas
delete mode 100644 arch/ia64/scripts/check-gas-asm.S
delete mode 100644 arch/ia64/scripts/check-model.c
delete mode 100644 arch/ia64/scripts/check-segrel.S
delete mode 100644 arch/ia64/scripts/check-segrel.lds
delete mode 100644 arch/ia64/scripts/check-serialize.S
delete mode 100644 arch/ia64/scripts/check-text-align.S
delete mode 100755 arch/ia64/scripts/toolchain-flags
delete mode 100644 arch/ia64/scripts/unwcheck.py
delete mode 100644 arch/ia64/uv/Makefile
delete mode 100644 arch/ia64/uv/kernel/Makefile
delete mode 100644 arch/ia64/uv/kernel/setup.c
delete mode 100644 drivers/char/agp/hp-agp.c
delete mode 100644 drivers/char/agp/i460-agp.c
delete mode 100644 drivers/char/mspec.c
delete mode 100644 drivers/cpufreq/ia64-acpi-cpufreq.c
delete mode 100644 drivers/firmware/pcdp.c
delete mode 100644 drivers/firmware/pcdp.h
delete mode 100644 tools/arch/ia64/include/asm/barrier.h
delete mode 100644 tools/arch/ia64/include/uapi/asm/bitsperlong.h
delete mode 100644 tools/arch/ia64/include/uapi/asm/mman.h
^ permalink raw reply [relevance 1%]
* Re: [GIT PULL] Remove Itanium support
2023-09-11 16:31 1% [GIT PULL] Remove Itanium support Ard Biesheuvel
@ 2023-09-11 17:05 0% ` John Paul Adrian Glaubitz
0 siblings, 0 replies; 200+ results
From: John Paul Adrian Glaubitz @ 2023-09-11 17:05 UTC (permalink / raw)
To: Ard Biesheuvel, arnd
Cc: linux-ia64, linux-arch, Ard Biesheuvel, Rafael J . Wysocki,
Jonathan Corbet
Hi Ard
On Mon, 2023-09-11 at 16:31 +0000, Ard Biesheuvel wrote:
> From: Ard Biesheuvel <ardb@kernel.org>
>
> Hello Arnd,
>
> Please pull the series below, which provides a fix for the ia64 build (which
> is currently broken), and subsequently removes it, based on the timeline
> proposed by the Debian/ia64 maintainer (details in the second patch).
>
> https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=remove-ia64
>
> The following changes since commit 0bb80ecc33a8fb5a682236443c1e740d5c917d1d:
>
> Linux 6.6-rc1 (2023-09-10 16:28:41 -0700)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git tags/tag-remove-ia64
>
> for you to fetch changes up to 944834901adc94b3a44d1dd153eb739a937e52d2:
>
> Documentation: Drop or replace remaining mentions of IA64 (2023-09-11 08:13:18 +0000)
>
> ----------------------------------------------------------------
> Remove IA-64 architecture support
>
> Fix the IA-64 build before removing the architecture support completely.
> This makes v6.6 LTS the final Linux release with IA-64/Itanium support.
Thanks for keeping the suggested timeline. I think this is a fair compromise
for all parties involved.
> ----------------------------------------------------------------
>
> Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
> Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Cc: Jonathan Corbet <corbet@lwn.net>
>
> Ard Biesheuvel (6):
> acpi: Provide ia64 dummy implementation of acpi_proc_quirk_mwait_check()
> arch: Remove Itanium (IA-64) architecture
> kernel: Drop IA64 support from sig_fault handlers
> Documentation: Drop IA64 from feature descriptions
> lib/raid6: Drop IA64 support
> Documentation: Drop or replace remaining mentions of IA64
>
> Documentation/ABI/testing/sysfs-devices-system-cpu | 3 -
> .../ABI/testing/sysfs-firmware-dmi-entries | 2 +-
> Documentation/admin-guide/kdump/kdump.rst | 37 +-
> Documentation/admin-guide/kdump/vmcoreinfo.rst | 30 -
> Documentation/admin-guide/kernel-parameters.txt | 8 +-
> Documentation/admin-guide/mm/memory-hotplug.rst | 2 +-
> Documentation/admin-guide/sysctl/kernel.rst | 23 +-
> Documentation/arch/ia64/aliasing.rst | 246 ---
> Documentation/arch/ia64/efirtc.rst | 144 --
> Documentation/arch/ia64/err_inject.rst | 1067 ---------
> Documentation/arch/ia64/features.rst | 3 -
> Documentation/arch/ia64/fsys.rst | 303 ---
> Documentation/arch/ia64/ia64.rst | 49 -
> Documentation/arch/ia64/index.rst | 19 -
> Documentation/arch/ia64/irq-redir.rst | 80 -
> Documentation/arch/ia64/mca.rst | 198 --
> Documentation/arch/ia64/serial.rst | 165 --
> Documentation/arch/index.rst | 1 -
> Documentation/block/ioprio.rst | 3 -
> Documentation/core-api/cpu_hotplug.rst | 6 -
> Documentation/core-api/debugging-via-ohci1394.rst | 6 +-
> .../features/core/cBPF-JIT/arch-support.txt | 1 -
> .../features/core/eBPF-JIT/arch-support.txt | 1 -
> .../core/generic-idle-thread/arch-support.txt | 1 -
> .../features/core/jump-labels/arch-support.txt | 1 -
> .../core/thread-info-in-task/arch-support.txt | 1 -
> .../features/core/tracehook/arch-support.txt | 1 -
> .../features/debug/KASAN/arch-support.txt | 1 -
> .../debug/debug-vm-pgtable/arch-support.txt | 1 -
> .../debug/gcov-profile-all/arch-support.txt | 1 -
> Documentation/features/debug/kcov/arch-support.txt | 1 -
> Documentation/features/debug/kgdb/arch-support.txt | 1 -
> .../features/debug/kmemleak/arch-support.txt | 1 -
> .../debug/kprobes-on-ftrace/arch-support.txt | 1 -
> .../features/debug/kprobes/arch-support.txt | 1 -
> .../features/debug/kretprobes/arch-support.txt | 1 -
> .../features/debug/optprobes/arch-support.txt | 1 -
> .../features/debug/stackprotector/arch-support.txt | 1 -
> .../features/debug/uprobes/arch-support.txt | 1 -
> .../debug/user-ret-profiler/arch-support.txt | 1 -
> .../features/io/dma-contiguous/arch-support.txt | 1 -
> .../locking/cmpxchg-local/arch-support.txt | 1 -
> .../features/locking/lockdep/arch-support.txt | 1 -
> .../locking/queued-rwlocks/arch-support.txt | 1 -
> .../locking/queued-spinlocks/arch-support.txt | 1 -
> .../features/perf/kprobes-event/arch-support.txt | 1 -
> .../features/perf/perf-regs/arch-support.txt | 1 -
> .../features/perf/perf-stackdump/arch-support.txt | 1 -
> .../sched/membarrier-sync-core/arch-support.txt | 1 -
> .../features/sched/numa-balancing/arch-support.txt | 1 -
> .../seccomp/seccomp-filter/arch-support.txt | 1 -
> .../time/arch-tick-broadcast/arch-support.txt | 1 -
> .../features/time/clockevents/arch-support.txt | 1 -
> .../time/context-tracking/arch-support.txt | 1 -
> .../features/time/irq-time-acct/arch-support.txt | 1 -
> .../features/time/virt-cpuacct/arch-support.txt | 1 -
> .../features/vm/ELF-ASLR/arch-support.txt | 1 -
> .../features/vm/PG_uncached/arch-support.txt | 1 -
> Documentation/features/vm/THP/arch-support.txt | 1 -
> Documentation/features/vm/TLB/arch-support.txt | 1 -
> .../features/vm/huge-vmap/arch-support.txt | 1 -
> .../features/vm/ioremap_prot/arch-support.txt | 1 -
> .../features/vm/pte_special/arch-support.txt | 1 -
> Documentation/kbuild/makefiles.rst | 2 +-
> .../device_drivers/ethernet/neterion/s2io.rst | 4 +-
> Documentation/scheduler/sched-arch.rst | 4 +-
> Documentation/trace/kprobes.rst | 1 -
> Documentation/translations/zh_CN/arch/index.rst | 1 -
> .../translations/zh_CN/core-api/cpu_hotplug.rst | 6 -
> .../translations/zh_CN/scheduler/sched-arch.rst | 5 +-
> MAINTAINERS | 11 -
> Makefile | 4 +-
> arch/Kconfig | 1 -
> arch/ia64/Kbuild | 3 -
> arch/ia64/Kconfig | 394 ----
> arch/ia64/Kconfig.debug | 55 -
> arch/ia64/Makefile | 82 -
> arch/ia64/configs/bigsur_defconfig | 102 -
> arch/ia64/configs/generic_defconfig | 206 --
> arch/ia64/configs/gensparse_defconfig | 184 --
> arch/ia64/configs/tiger_defconfig | 169 --
> arch/ia64/configs/zx1_defconfig | 148 --
> arch/ia64/hp/common/Makefile | 10 -
> arch/ia64/hp/common/aml_nfw.c | 232 --
> arch/ia64/hp/common/sba_iommu.c | 2155 ------------------
> arch/ia64/include/asm/Kbuild | 6 -
> arch/ia64/include/asm/acenv.h | 49 -
> arch/ia64/include/asm/acpi-ext.h | 17 -
> arch/ia64/include/asm/acpi.h | 110 -
> arch/ia64/include/asm/asm-offsets.h | 1 -
> arch/ia64/include/asm/asm-prototypes.h | 30 -
> arch/ia64/include/asm/asmmacro.h | 136 --
> arch/ia64/include/asm/atomic.h | 216 --
> arch/ia64/include/asm/barrier.h | 79 -
> arch/ia64/include/asm/bitops.h | 453 ----
> arch/ia64/include/asm/bug.h | 19 -
> arch/ia64/include/asm/cache.h | 30 -
> arch/ia64/include/asm/cacheflush.h | 39 -
> arch/ia64/include/asm/checksum.h | 63 -
> arch/ia64/include/asm/clocksource.h | 11 -
> arch/ia64/include/asm/cmpxchg.h | 33 -
> arch/ia64/include/asm/cpu.h | 23 -
> arch/ia64/include/asm/cputime.h | 21 -
> arch/ia64/include/asm/current.h | 18 -
> arch/ia64/include/asm/cyclone.h | 16 -
> arch/ia64/include/asm/delay.h | 89 -
> arch/ia64/include/asm/device.h | 14 -
> arch/ia64/include/asm/div64.h | 1 -
> arch/ia64/include/asm/dma-mapping.h | 16 -
> arch/ia64/include/asm/dma.h | 17 -
> arch/ia64/include/asm/dmi.h | 15 -
> arch/ia64/include/asm/early_ioremap.h | 11 -
> arch/ia64/include/asm/efi.h | 13 -
> arch/ia64/include/asm/elf.h | 233 --
> arch/ia64/include/asm/emergency-restart.h | 6 -
> arch/ia64/include/asm/esi.h | 30 -
> arch/ia64/include/asm/exception.h | 23 -
> arch/ia64/include/asm/extable.h | 12 -
> arch/ia64/include/asm/fb.h | 43 -
> arch/ia64/include/asm/fpswa.h | 74 -
> arch/ia64/include/asm/ftrace.h | 28 -
> arch/ia64/include/asm/futex.h | 109 -
> arch/ia64/include/asm/gcc_intrin.h | 13 -
> arch/ia64/include/asm/hardirq.h | 27 -
> arch/ia64/include/asm/hugetlb.h | 34 -
> arch/ia64/include/asm/hw_irq.h | 167 --
> arch/ia64/include/asm/idle.h | 8 -
> arch/ia64/include/asm/intrinsics.h | 13 -
> arch/ia64/include/asm/io.h | 271 ---
> arch/ia64/include/asm/iommu.h | 22 -
> arch/ia64/include/asm/iosapic.h | 106 -
> arch/ia64/include/asm/irq.h | 37 -
> arch/ia64/include/asm/irq_regs.h | 1 -
> arch/ia64/include/asm/irq_remapping.h | 5 -
> arch/ia64/include/asm/irqflags.h | 95 -
> arch/ia64/include/asm/kdebug.h | 45 -
> arch/ia64/include/asm/kexec.h | 46 -
> arch/ia64/include/asm/kprobes.h | 116 -
> arch/ia64/include/asm/kregs.h | 166 --
> arch/ia64/include/asm/libata-portmap.h | 9 -
> arch/ia64/include/asm/linkage.h | 19 -
> arch/ia64/include/asm/local.h | 1 -
> arch/ia64/include/asm/mca.h | 185 --
> arch/ia64/include/asm/mca_asm.h | 245 ---
> arch/ia64/include/asm/meminit.h | 59 -
> arch/ia64/include/asm/mman.h | 18 -
> arch/ia64/include/asm/mmiowb.h | 17 -
> arch/ia64/include/asm/mmu.h | 14 -
> arch/ia64/include/asm/mmu_context.h | 194 --
> arch/ia64/include/asm/mmzone.h | 35 -
> arch/ia64/include/asm/module.h | 35 -
> arch/ia64/include/asm/module.lds.h | 14 -
> arch/ia64/include/asm/msidef.h | 43 -
> arch/ia64/include/asm/native/inst.h | 119 -
> arch/ia64/include/asm/native/irq.h | 20 -
> arch/ia64/include/asm/native/patchlist.h | 24 -
> arch/ia64/include/asm/nodedata.h | 63 -
> arch/ia64/include/asm/numa.h | 83 -
> arch/ia64/include/asm/page.h | 208 --
> arch/ia64/include/asm/pal.h | 1827 ---------------
> arch/ia64/include/asm/param.h | 18 -
> arch/ia64/include/asm/parport.h | 20 -
> arch/ia64/include/asm/patch.h | 28 -
> arch/ia64/include/asm/pci.h | 66 -
> arch/ia64/include/asm/percpu.h | 53 -
> arch/ia64/include/asm/pgalloc.h | 64 -
> arch/ia64/include/asm/pgtable.h | 545 -----
> arch/ia64/include/asm/processor.h | 660 ------
> arch/ia64/include/asm/ptrace.h | 146 --
> arch/ia64/include/asm/sal.h | 919 --------
> arch/ia64/include/asm/sections.h | 33 -
> arch/ia64/include/asm/serial.h | 17 -
> arch/ia64/include/asm/shmparam.h | 13 -
> arch/ia64/include/asm/signal.h | 33 -
> arch/ia64/include/asm/smp.h | 103 -
> arch/ia64/include/asm/sn/intr.h | 15 -
> arch/ia64/include/asm/sn/sn_sal.h | 124 --
> arch/ia64/include/asm/sparsemem.h | 28 -
> arch/ia64/include/asm/spinlock.h | 265 ---
> arch/ia64/include/asm/spinlock_types.h | 22 -
> arch/ia64/include/asm/string.h | 22 -
> arch/ia64/include/asm/switch_to.h | 71 -
> arch/ia64/include/asm/syscall.h | 65 -
> arch/ia64/include/asm/thread_info.h | 131 --
> arch/ia64/include/asm/timex.h | 47 -
> arch/ia64/include/asm/tlb.h | 50 -
> arch/ia64/include/asm/tlbflush.h | 128 --
> arch/ia64/include/asm/topology.h | 56 -
> arch/ia64/include/asm/types.h | 32 -
> arch/ia64/include/asm/uaccess.h | 265 ---
> arch/ia64/include/asm/uncached.h | 9 -
> arch/ia64/include/asm/unistd.h | 38 -
> arch/ia64/include/asm/unwind.h | 234 --
> arch/ia64/include/asm/user.h | 53 -
> arch/ia64/include/asm/ustack.h | 12 -
> arch/ia64/include/asm/uv/uv.h | 30 -
> arch/ia64/include/asm/uv/uv_hub.h | 315 ---
> arch/ia64/include/asm/uv/uv_mmrs.h | 825 -------
> arch/ia64/include/asm/vermagic.h | 15 -
> arch/ia64/include/asm/vga.h | 26 -
> arch/ia64/include/asm/vmalloc.h | 4 -
> arch/ia64/include/asm/xor.h | 30 -
> arch/ia64/include/asm/xtp.h | 46 -
> arch/ia64/include/uapi/asm/Kbuild | 2 -
> arch/ia64/include/uapi/asm/auxvec.h | 14 -
> arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
> arch/ia64/include/uapi/asm/break.h | 23 -
> arch/ia64/include/uapi/asm/byteorder.h | 7 -
> arch/ia64/include/uapi/asm/cmpxchg.h | 138 --
> arch/ia64/include/uapi/asm/fcntl.h | 15 -
> arch/ia64/include/uapi/asm/fpu.h | 67 -
> arch/ia64/include/uapi/asm/gcc_intrin.h | 619 ------
> arch/ia64/include/uapi/asm/ia64regs.h | 101 -
> arch/ia64/include/uapi/asm/intrinsics.h | 82 -
> arch/ia64/include/uapi/asm/mman.h | 17 -
> arch/ia64/include/uapi/asm/param.h | 30 -
> arch/ia64/include/uapi/asm/posix_types.h | 9 -
> arch/ia64/include/uapi/asm/ptrace.h | 248 ---
> arch/ia64/include/uapi/asm/ptrace_offsets.h | 269 ---
> arch/ia64/include/uapi/asm/resource.h | 8 -
> arch/ia64/include/uapi/asm/rse.h | 67 -
> arch/ia64/include/uapi/asm/setup.h | 25 -
> arch/ia64/include/uapi/asm/sigcontext.h | 71 -
> arch/ia64/include/uapi/asm/siginfo.h | 28 -
> arch/ia64/include/uapi/asm/signal.h | 98 -
> arch/ia64/include/uapi/asm/stat.h | 52 -
> arch/ia64/include/uapi/asm/statfs.h | 21 -
> arch/ia64/include/uapi/asm/swab.h | 35 -
> arch/ia64/include/uapi/asm/types.h | 32 -
> arch/ia64/include/uapi/asm/ucontext.h | 13 -
> arch/ia64/include/uapi/asm/unistd.h | 22 -
> arch/ia64/include/uapi/asm/ustack.h | 13 -
> arch/ia64/install.sh | 30 -
> arch/ia64/kernel/.gitignore | 3 -
> arch/ia64/kernel/Makefile | 46 -
> arch/ia64/kernel/Makefile.gate | 29 -
> arch/ia64/kernel/acpi-ext.c | 101 -
> arch/ia64/kernel/acpi.c | 909 --------
> arch/ia64/kernel/asm-offsets.c | 289 ---
> arch/ia64/kernel/audit.c | 63 -
> arch/ia64/kernel/brl_emu.c | 217 --
> arch/ia64/kernel/crash.c | 257 ---
> arch/ia64/kernel/crash_dump.c | 27 -
> arch/ia64/kernel/cyclone.c | 125 --
> arch/ia64/kernel/dma-mapping.c | 9 -
> arch/ia64/kernel/efi.c | 1360 ------------
> arch/ia64/kernel/efi_stub.S | 87 -
> arch/ia64/kernel/elfcore.c | 77 -
> arch/ia64/kernel/entry.S | 1427 ------------
> arch/ia64/kernel/entry.h | 83 -
> arch/ia64/kernel/err_inject.c | 273 ---
> arch/ia64/kernel/esi.c | 193 --
> arch/ia64/kernel/esi_stub.S | 99 -
> arch/ia64/kernel/fsys.S | 837 -------
> arch/ia64/kernel/fsyscall_gtod_data.h | 30 -
> arch/ia64/kernel/ftrace.c | 196 --
> arch/ia64/kernel/gate-data.S | 3 -
> arch/ia64/kernel/gate.S | 380 ----
> arch/ia64/kernel/gate.lds.S | 108 -
> arch/ia64/kernel/head.S | 1167 ----------
> arch/ia64/kernel/iosapic.c | 1137 ----------
> arch/ia64/kernel/irq.c | 181 --
> arch/ia64/kernel/irq.h | 3 -
> arch/ia64/kernel/irq_ia64.c | 645 ------
> arch/ia64/kernel/irq_lsapic.c | 45 -
> arch/ia64/kernel/ivt.S | 1688 --------------
> arch/ia64/kernel/kprobes.c | 911 --------
> arch/ia64/kernel/machine_kexec.c | 163 --
> arch/ia64/kernel/mca.c | 2111 ------------------
> arch/ia64/kernel/mca_asm.S | 1123 ----------
> arch/ia64/kernel/mca_drv.c | 796 -------
> arch/ia64/kernel/mca_drv.h | 123 --
> arch/ia64/kernel/mca_drv_asm.S | 56 -
> arch/ia64/kernel/minstate.h | 251 ---
> arch/ia64/kernel/module.c | 959 --------
> arch/ia64/kernel/msi_ia64.c | 198 --
> arch/ia64/kernel/numa.c | 73 -
> arch/ia64/kernel/pal.S | 306 ---
> arch/ia64/kernel/palinfo.c | 942 --------
> arch/ia64/kernel/patch.c | 237 --
> arch/ia64/kernel/pci-dma.c | 33 -
> arch/ia64/kernel/perfmon_itanium.h | 116 -
> arch/ia64/kernel/process.c | 611 ------
> arch/ia64/kernel/ptrace.c | 2012 -----------------
> arch/ia64/kernel/relocate_kernel.S | 321 ---
> arch/ia64/kernel/sal.c | 400 ----
> arch/ia64/kernel/salinfo.c | 646 ------
> arch/ia64/kernel/setup.c | 1081 ---------
> arch/ia64/kernel/sigframe.h | 26 -
> arch/ia64/kernel/signal.c | 412 ----
> arch/ia64/kernel/smp.c | 335 ---
> arch/ia64/kernel/smpboot.c | 839 -------
> arch/ia64/kernel/stacktrace.c | 40 -
> arch/ia64/kernel/sys_ia64.c | 197 --
> arch/ia64/kernel/syscalls/Makefile | 32 -
> arch/ia64/kernel/syscalls/syscall.tbl | 375 ----
> arch/ia64/kernel/time.c | 463 ----
> arch/ia64/kernel/topology.c | 410 ----
> arch/ia64/kernel/traps.c | 612 ------
> arch/ia64/kernel/unaligned.c | 1560 -------------
> arch/ia64/kernel/uncached.c | 273 ---
> arch/ia64/kernel/unwind.c | 2320 --------------------
> arch/ia64/kernel/unwind_decoder.c | 460 ----
> arch/ia64/kernel/unwind_i.h | 165 --
> arch/ia64/kernel/vmlinux.lds.S | 224 --
> arch/ia64/lib/Makefile | 48 -
> arch/ia64/lib/checksum.c | 102 -
> arch/ia64/lib/clear_page.S | 79 -
> arch/ia64/lib/clear_user.S | 212 --
> arch/ia64/lib/copy_page.S | 101 -
> arch/ia64/lib/copy_page_mck.S | 188 --
> arch/ia64/lib/copy_user.S | 613 ------
> arch/ia64/lib/csum_partial_copy.c | 98 -
> arch/ia64/lib/do_csum.S | 324 ---
> arch/ia64/lib/flush.S | 119 -
> arch/ia64/lib/idiv32.S | 86 -
> arch/ia64/lib/idiv64.S | 83 -
> arch/ia64/lib/io.c | 51 -
> arch/ia64/lib/ip_fast_csum.S | 148 --
> arch/ia64/lib/memcpy.S | 304 ---
> arch/ia64/lib/memcpy_mck.S | 659 ------
> arch/ia64/lib/memset.S | 365 ---
> arch/ia64/lib/strlen.S | 195 --
> arch/ia64/lib/strncpy_from_user.S | 47 -
> arch/ia64/lib/strnlen_user.S | 48 -
> arch/ia64/lib/xor.S | 181 --
> arch/ia64/mm/Makefile | 11 -
> arch/ia64/mm/contig.c | 208 --
> arch/ia64/mm/discontig.c | 635 ------
> arch/ia64/mm/extable.c | 24 -
> arch/ia64/mm/fault.c | 251 ---
> arch/ia64/mm/hugetlbpage.c | 186 --
> arch/ia64/mm/init.c | 532 -----
> arch/ia64/mm/ioremap.c | 94 -
> arch/ia64/mm/numa.c | 80 -
> arch/ia64/mm/tlb.c | 591 -----
> arch/ia64/pci/Makefile | 5 -
> arch/ia64/pci/fixup.c | 80 -
> arch/ia64/pci/pci.c | 576 -----
> arch/ia64/scripts/check-gas | 16 -
> arch/ia64/scripts/check-gas-asm.S | 2 -
> arch/ia64/scripts/check-model.c | 1 -
> arch/ia64/scripts/check-segrel.S | 5 -
> arch/ia64/scripts/check-segrel.lds | 13 -
> arch/ia64/scripts/check-serialize.S | 2 -
> arch/ia64/scripts/check-text-align.S | 7 -
> arch/ia64/scripts/toolchain-flags | 54 -
> arch/ia64/scripts/unwcheck.py | 65 -
> arch/ia64/uv/Makefile | 12 -
> arch/ia64/uv/kernel/Makefile | 12 -
> arch/ia64/uv/kernel/setup.c | 120 -
> drivers/acpi/Kconfig | 6 +-
> drivers/acpi/numa/Kconfig | 4 +-
> drivers/acpi/osl.c | 2 +-
> drivers/char/Kconfig | 4 +-
> drivers/char/Makefile | 1 -
> drivers/char/agp/Kconfig | 16 +-
> drivers/char/agp/Makefile | 2 -
> drivers/char/agp/hp-agp.c | 550 -----
> drivers/char/agp/i460-agp.c | 659 ------
> drivers/char/hpet.c | 30 -
> drivers/char/hw_random/Kconfig | 2 +-
> drivers/char/mem.c | 12 -
> drivers/char/mspec.c | 295 ---
> drivers/cpufreq/Kconfig | 11 -
> drivers/cpufreq/Makefile | 1 -
> drivers/cpufreq/ia64-acpi-cpufreq.c | 353 ---
> drivers/firmware/Kconfig | 24 -
> drivers/firmware/Makefile | 1 -
> drivers/firmware/efi/Kconfig | 6 +-
> drivers/firmware/efi/efi.c | 13 +-
> drivers/firmware/pcdp.c | 135 --
> drivers/firmware/pcdp.h | 108 -
> drivers/gpu/drm/drm_ioc32.c | 4 +-
> drivers/input/serio/i8042.h | 2 +-
> drivers/iommu/Kconfig | 4 +-
> drivers/iommu/intel/Kconfig | 2 +-
> drivers/media/cec/platform/Kconfig | 2 +-
> drivers/misc/Kconfig | 2 +-
> drivers/misc/sgi-gru/gru.h | 4 +-
> drivers/misc/sgi-gru/gru_instructions.h | 12 +-
> drivers/misc/sgi-gru/grufile.c | 72 -
> drivers/misc/sgi-gru/gruhandles.c | 6 -
> drivers/misc/sgi-gru/grumain.c | 4 -
> drivers/misc/sgi-xp/xp.h | 2 +-
> drivers/misc/sgi-xp/xp_uv.c | 24 -
> drivers/misc/sgi-xp/xpc_main.c | 31 -
> drivers/misc/sgi-xp/xpc_uv.c | 85 -
> drivers/net/ethernet/broadcom/tg3.c | 2 +-
> drivers/net/ethernet/brocade/bna/bnad.h | 1 -
> .../net/ethernet/qlogic/netxen/netxen_nic_main.c | 2 -
> drivers/pci/vgaarb.c | 2 +-
> drivers/tty/serial/8250/Kconfig | 2 +-
> drivers/tty/vt/keyboard.c | 2 +-
> drivers/video/fbdev/Kconfig | 2 +-
> drivers/watchdog/Kconfig | 2 +-
> fs/Kconfig | 2 +-
> fs/afs/main.c | 2 -
> fs/xfs/xfs_ioctl32.h | 2 +-
> include/linux/acpi.h | 9 +-
> include/linux/efi.h | 7 -
> include/linux/mm.h | 2 -
> include/linux/moduleparam.h | 2 +-
> include/linux/raid/pq.h | 2 -
> include/linux/sched/signal.h | 17 +-
> include/trace/events/mmflags.h | 2 +-
> include/uapi/asm-generic/siginfo.h | 5 -
> init/Kconfig | 2 +-
> kernel/cpu.c | 3 -
> kernel/fork.c | 2 +-
> kernel/sched/core.c | 29 +-
> kernel/signal.c | 25 +-
> kernel/sysctl.c | 9 -
> lib/Kconfig.debug | 2 +-
> lib/decompress_unxz.c | 3 -
> lib/raid6/Makefile | 4 +-
> lib/raid6/algos.c | 4 -
> lib/raid6/int.uc | 9 -
> lib/xz/Kconfig | 5 -
> mm/mmap.c | 6 +-
> tools/arch/ia64/include/asm/barrier.h | 59 -
> tools/arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
> tools/arch/ia64/include/uapi/asm/mman.h | 7 -
> usr/include/Makefile | 6 -
> 424 files changed, 74 insertions(+), 65172 deletions(-)
> delete mode 100644 Documentation/arch/ia64/aliasing.rst
> delete mode 100644 Documentation/arch/ia64/efirtc.rst
> delete mode 100644 Documentation/arch/ia64/err_inject.rst
> delete mode 100644 Documentation/arch/ia64/features.rst
> delete mode 100644 Documentation/arch/ia64/fsys.rst
> delete mode 100644 Documentation/arch/ia64/ia64.rst
> delete mode 100644 Documentation/arch/ia64/index.rst
> delete mode 100644 Documentation/arch/ia64/irq-redir.rst
> delete mode 100644 Documentation/arch/ia64/mca.rst
> delete mode 100644 Documentation/arch/ia64/serial.rst
> delete mode 100644 arch/ia64/Kbuild
> delete mode 100644 arch/ia64/Kconfig
> delete mode 100644 arch/ia64/Kconfig.debug
> delete mode 100644 arch/ia64/Makefile
> delete mode 100644 arch/ia64/configs/bigsur_defconfig
> delete mode 100644 arch/ia64/configs/generic_defconfig
> delete mode 100644 arch/ia64/configs/gensparse_defconfig
> delete mode 100644 arch/ia64/configs/tiger_defconfig
> delete mode 100644 arch/ia64/configs/zx1_defconfig
> delete mode 100644 arch/ia64/hp/common/Makefile
> delete mode 100644 arch/ia64/hp/common/aml_nfw.c
> delete mode 100644 arch/ia64/hp/common/sba_iommu.c
> delete mode 100644 arch/ia64/include/asm/Kbuild
> delete mode 100644 arch/ia64/include/asm/acenv.h
> delete mode 100644 arch/ia64/include/asm/acpi-ext.h
> delete mode 100644 arch/ia64/include/asm/acpi.h
> delete mode 100644 arch/ia64/include/asm/asm-offsets.h
> delete mode 100644 arch/ia64/include/asm/asm-prototypes.h
> delete mode 100644 arch/ia64/include/asm/asmmacro.h
> delete mode 100644 arch/ia64/include/asm/atomic.h
> delete mode 100644 arch/ia64/include/asm/barrier.h
> delete mode 100644 arch/ia64/include/asm/bitops.h
> delete mode 100644 arch/ia64/include/asm/bug.h
> delete mode 100644 arch/ia64/include/asm/cache.h
> delete mode 100644 arch/ia64/include/asm/cacheflush.h
> delete mode 100644 arch/ia64/include/asm/checksum.h
> delete mode 100644 arch/ia64/include/asm/clocksource.h
> delete mode 100644 arch/ia64/include/asm/cmpxchg.h
> delete mode 100644 arch/ia64/include/asm/cpu.h
> delete mode 100644 arch/ia64/include/asm/cputime.h
> delete mode 100644 arch/ia64/include/asm/current.h
> delete mode 100644 arch/ia64/include/asm/cyclone.h
> delete mode 100644 arch/ia64/include/asm/delay.h
> delete mode 100644 arch/ia64/include/asm/device.h
> delete mode 100644 arch/ia64/include/asm/div64.h
> delete mode 100644 arch/ia64/include/asm/dma-mapping.h
> delete mode 100644 arch/ia64/include/asm/dma.h
> delete mode 100644 arch/ia64/include/asm/dmi.h
> delete mode 100644 arch/ia64/include/asm/early_ioremap.h
> delete mode 100644 arch/ia64/include/asm/efi.h
> delete mode 100644 arch/ia64/include/asm/elf.h
> delete mode 100644 arch/ia64/include/asm/emergency-restart.h
> delete mode 100644 arch/ia64/include/asm/esi.h
> delete mode 100644 arch/ia64/include/asm/exception.h
> delete mode 100644 arch/ia64/include/asm/extable.h
> delete mode 100644 arch/ia64/include/asm/fb.h
> delete mode 100644 arch/ia64/include/asm/fpswa.h
> delete mode 100644 arch/ia64/include/asm/ftrace.h
> delete mode 100644 arch/ia64/include/asm/futex.h
> delete mode 100644 arch/ia64/include/asm/gcc_intrin.h
> delete mode 100644 arch/ia64/include/asm/hardirq.h
> delete mode 100644 arch/ia64/include/asm/hugetlb.h
> delete mode 100644 arch/ia64/include/asm/hw_irq.h
> delete mode 100644 arch/ia64/include/asm/idle.h
> delete mode 100644 arch/ia64/include/asm/intrinsics.h
> delete mode 100644 arch/ia64/include/asm/io.h
> delete mode 100644 arch/ia64/include/asm/iommu.h
> delete mode 100644 arch/ia64/include/asm/iosapic.h
> delete mode 100644 arch/ia64/include/asm/irq.h
> delete mode 100644 arch/ia64/include/asm/irq_regs.h
> delete mode 100644 arch/ia64/include/asm/irq_remapping.h
> delete mode 100644 arch/ia64/include/asm/irqflags.h
> delete mode 100644 arch/ia64/include/asm/kdebug.h
> delete mode 100644 arch/ia64/include/asm/kexec.h
> delete mode 100644 arch/ia64/include/asm/kprobes.h
> delete mode 100644 arch/ia64/include/asm/kregs.h
> delete mode 100644 arch/ia64/include/asm/libata-portmap.h
> delete mode 100644 arch/ia64/include/asm/linkage.h
> delete mode 100644 arch/ia64/include/asm/local.h
> delete mode 100644 arch/ia64/include/asm/mca.h
> delete mode 100644 arch/ia64/include/asm/mca_asm.h
> delete mode 100644 arch/ia64/include/asm/meminit.h
> delete mode 100644 arch/ia64/include/asm/mman.h
> delete mode 100644 arch/ia64/include/asm/mmiowb.h
> delete mode 100644 arch/ia64/include/asm/mmu.h
> delete mode 100644 arch/ia64/include/asm/mmu_context.h
> delete mode 100644 arch/ia64/include/asm/mmzone.h
> delete mode 100644 arch/ia64/include/asm/module.h
> delete mode 100644 arch/ia64/include/asm/module.lds.h
> delete mode 100644 arch/ia64/include/asm/msidef.h
> delete mode 100644 arch/ia64/include/asm/native/inst.h
> delete mode 100644 arch/ia64/include/asm/native/irq.h
> delete mode 100644 arch/ia64/include/asm/native/patchlist.h
> delete mode 100644 arch/ia64/include/asm/nodedata.h
> delete mode 100644 arch/ia64/include/asm/numa.h
> delete mode 100644 arch/ia64/include/asm/page.h
> delete mode 100644 arch/ia64/include/asm/pal.h
> delete mode 100644 arch/ia64/include/asm/param.h
> delete mode 100644 arch/ia64/include/asm/parport.h
> delete mode 100644 arch/ia64/include/asm/patch.h
> delete mode 100644 arch/ia64/include/asm/pci.h
> delete mode 100644 arch/ia64/include/asm/percpu.h
> delete mode 100644 arch/ia64/include/asm/pgalloc.h
> delete mode 100644 arch/ia64/include/asm/pgtable.h
> delete mode 100644 arch/ia64/include/asm/processor.h
> delete mode 100644 arch/ia64/include/asm/ptrace.h
> delete mode 100644 arch/ia64/include/asm/sal.h
> delete mode 100644 arch/ia64/include/asm/sections.h
> delete mode 100644 arch/ia64/include/asm/serial.h
> delete mode 100644 arch/ia64/include/asm/shmparam.h
> delete mode 100644 arch/ia64/include/asm/signal.h
> delete mode 100644 arch/ia64/include/asm/smp.h
> delete mode 100644 arch/ia64/include/asm/sn/intr.h
> delete mode 100644 arch/ia64/include/asm/sn/sn_sal.h
> delete mode 100644 arch/ia64/include/asm/sparsemem.h
> delete mode 100644 arch/ia64/include/asm/spinlock.h
> delete mode 100644 arch/ia64/include/asm/spinlock_types.h
> delete mode 100644 arch/ia64/include/asm/string.h
> delete mode 100644 arch/ia64/include/asm/switch_to.h
> delete mode 100644 arch/ia64/include/asm/syscall.h
> delete mode 100644 arch/ia64/include/asm/thread_info.h
> delete mode 100644 arch/ia64/include/asm/timex.h
> delete mode 100644 arch/ia64/include/asm/tlb.h
> delete mode 100644 arch/ia64/include/asm/tlbflush.h
> delete mode 100644 arch/ia64/include/asm/topology.h
> delete mode 100644 arch/ia64/include/asm/types.h
> delete mode 100644 arch/ia64/include/asm/uaccess.h
> delete mode 100644 arch/ia64/include/asm/uncached.h
> delete mode 100644 arch/ia64/include/asm/unistd.h
> delete mode 100644 arch/ia64/include/asm/unwind.h
> delete mode 100644 arch/ia64/include/asm/user.h
> delete mode 100644 arch/ia64/include/asm/ustack.h
> delete mode 100644 arch/ia64/include/asm/uv/uv.h
> delete mode 100644 arch/ia64/include/asm/uv/uv_hub.h
> delete mode 100644 arch/ia64/include/asm/uv/uv_mmrs.h
> delete mode 100644 arch/ia64/include/asm/vermagic.h
> delete mode 100644 arch/ia64/include/asm/vga.h
> delete mode 100644 arch/ia64/include/asm/vmalloc.h
> delete mode 100644 arch/ia64/include/asm/xor.h
> delete mode 100644 arch/ia64/include/asm/xtp.h
> delete mode 100644 arch/ia64/include/uapi/asm/Kbuild
> delete mode 100644 arch/ia64/include/uapi/asm/auxvec.h
> delete mode 100644 arch/ia64/include/uapi/asm/bitsperlong.h
> delete mode 100644 arch/ia64/include/uapi/asm/break.h
> delete mode 100644 arch/ia64/include/uapi/asm/byteorder.h
> delete mode 100644 arch/ia64/include/uapi/asm/cmpxchg.h
> delete mode 100644 arch/ia64/include/uapi/asm/fcntl.h
> delete mode 100644 arch/ia64/include/uapi/asm/fpu.h
> delete mode 100644 arch/ia64/include/uapi/asm/gcc_intrin.h
> delete mode 100644 arch/ia64/include/uapi/asm/ia64regs.h
> delete mode 100644 arch/ia64/include/uapi/asm/intrinsics.h
> delete mode 100644 arch/ia64/include/uapi/asm/mman.h
> delete mode 100644 arch/ia64/include/uapi/asm/param.h
> delete mode 100644 arch/ia64/include/uapi/asm/posix_types.h
> delete mode 100644 arch/ia64/include/uapi/asm/ptrace.h
> delete mode 100644 arch/ia64/include/uapi/asm/ptrace_offsets.h
> delete mode 100644 arch/ia64/include/uapi/asm/resource.h
> delete mode 100644 arch/ia64/include/uapi/asm/rse.h
> delete mode 100644 arch/ia64/include/uapi/asm/setup.h
> delete mode 100644 arch/ia64/include/uapi/asm/sigcontext.h
> delete mode 100644 arch/ia64/include/uapi/asm/siginfo.h
> delete mode 100644 arch/ia64/include/uapi/asm/signal.h
> delete mode 100644 arch/ia64/include/uapi/asm/stat.h
> delete mode 100644 arch/ia64/include/uapi/asm/statfs.h
> delete mode 100644 arch/ia64/include/uapi/asm/swab.h
> delete mode 100644 arch/ia64/include/uapi/asm/types.h
> delete mode 100644 arch/ia64/include/uapi/asm/ucontext.h
> delete mode 100644 arch/ia64/include/uapi/asm/unistd.h
> delete mode 100644 arch/ia64/include/uapi/asm/ustack.h
> delete mode 100755 arch/ia64/install.sh
> delete mode 100644 arch/ia64/kernel/.gitignore
> delete mode 100644 arch/ia64/kernel/Makefile
> delete mode 100644 arch/ia64/kernel/Makefile.gate
> delete mode 100644 arch/ia64/kernel/acpi-ext.c
> delete mode 100644 arch/ia64/kernel/acpi.c
> delete mode 100644 arch/ia64/kernel/asm-offsets.c
> delete mode 100644 arch/ia64/kernel/audit.c
> delete mode 100644 arch/ia64/kernel/brl_emu.c
> delete mode 100644 arch/ia64/kernel/crash.c
> delete mode 100644 arch/ia64/kernel/crash_dump.c
> delete mode 100644 arch/ia64/kernel/cyclone.c
> delete mode 100644 arch/ia64/kernel/dma-mapping.c
> delete mode 100644 arch/ia64/kernel/efi.c
> delete mode 100644 arch/ia64/kernel/efi_stub.S
> delete mode 100644 arch/ia64/kernel/elfcore.c
> delete mode 100644 arch/ia64/kernel/entry.S
> delete mode 100644 arch/ia64/kernel/entry.h
> delete mode 100644 arch/ia64/kernel/err_inject.c
> delete mode 100644 arch/ia64/kernel/esi.c
> delete mode 100644 arch/ia64/kernel/esi_stub.S
> delete mode 100644 arch/ia64/kernel/fsys.S
> delete mode 100644 arch/ia64/kernel/fsyscall_gtod_data.h
> delete mode 100644 arch/ia64/kernel/ftrace.c
> delete mode 100644 arch/ia64/kernel/gate-data.S
> delete mode 100644 arch/ia64/kernel/gate.S
> delete mode 100644 arch/ia64/kernel/gate.lds.S
> delete mode 100644 arch/ia64/kernel/head.S
> delete mode 100644 arch/ia64/kernel/iosapic.c
> delete mode 100644 arch/ia64/kernel/irq.c
> delete mode 100644 arch/ia64/kernel/irq.h
> delete mode 100644 arch/ia64/kernel/irq_ia64.c
> delete mode 100644 arch/ia64/kernel/irq_lsapic.c
> delete mode 100644 arch/ia64/kernel/ivt.S
> delete mode 100644 arch/ia64/kernel/kprobes.c
> delete mode 100644 arch/ia64/kernel/machine_kexec.c
> delete mode 100644 arch/ia64/kernel/mca.c
> delete mode 100644 arch/ia64/kernel/mca_asm.S
> delete mode 100644 arch/ia64/kernel/mca_drv.c
> delete mode 100644 arch/ia64/kernel/mca_drv.h
> delete mode 100644 arch/ia64/kernel/mca_drv_asm.S
> delete mode 100644 arch/ia64/kernel/minstate.h
> delete mode 100644 arch/ia64/kernel/module.c
> delete mode 100644 arch/ia64/kernel/msi_ia64.c
> delete mode 100644 arch/ia64/kernel/numa.c
> delete mode 100644 arch/ia64/kernel/pal.S
> delete mode 100644 arch/ia64/kernel/palinfo.c
> delete mode 100644 arch/ia64/kernel/patch.c
> delete mode 100644 arch/ia64/kernel/pci-dma.c
> delete mode 100644 arch/ia64/kernel/perfmon_itanium.h
> delete mode 100644 arch/ia64/kernel/process.c
> delete mode 100644 arch/ia64/kernel/ptrace.c
> delete mode 100644 arch/ia64/kernel/relocate_kernel.S
> delete mode 100644 arch/ia64/kernel/sal.c
> delete mode 100644 arch/ia64/kernel/salinfo.c
> delete mode 100644 arch/ia64/kernel/setup.c
> delete mode 100644 arch/ia64/kernel/sigframe.h
> delete mode 100644 arch/ia64/kernel/signal.c
> delete mode 100644 arch/ia64/kernel/smp.c
> delete mode 100644 arch/ia64/kernel/smpboot.c
> delete mode 100644 arch/ia64/kernel/stacktrace.c
> delete mode 100644 arch/ia64/kernel/sys_ia64.c
> delete mode 100644 arch/ia64/kernel/syscalls/Makefile
> delete mode 100644 arch/ia64/kernel/syscalls/syscall.tbl
> delete mode 100644 arch/ia64/kernel/time.c
> delete mode 100644 arch/ia64/kernel/topology.c
> delete mode 100644 arch/ia64/kernel/traps.c
> delete mode 100644 arch/ia64/kernel/unaligned.c
> delete mode 100644 arch/ia64/kernel/uncached.c
> delete mode 100644 arch/ia64/kernel/unwind.c
> delete mode 100644 arch/ia64/kernel/unwind_decoder.c
> delete mode 100644 arch/ia64/kernel/unwind_i.h
> delete mode 100644 arch/ia64/kernel/vmlinux.lds.S
> delete mode 100644 arch/ia64/lib/Makefile
> delete mode 100644 arch/ia64/lib/checksum.c
> delete mode 100644 arch/ia64/lib/clear_page.S
> delete mode 100644 arch/ia64/lib/clear_user.S
> delete mode 100644 arch/ia64/lib/copy_page.S
> delete mode 100644 arch/ia64/lib/copy_page_mck.S
> delete mode 100644 arch/ia64/lib/copy_user.S
> delete mode 100644 arch/ia64/lib/csum_partial_copy.c
> delete mode 100644 arch/ia64/lib/do_csum.S
> delete mode 100644 arch/ia64/lib/flush.S
> delete mode 100644 arch/ia64/lib/idiv32.S
> delete mode 100644 arch/ia64/lib/idiv64.S
> delete mode 100644 arch/ia64/lib/io.c
> delete mode 100644 arch/ia64/lib/ip_fast_csum.S
> delete mode 100644 arch/ia64/lib/memcpy.S
> delete mode 100644 arch/ia64/lib/memcpy_mck.S
> delete mode 100644 arch/ia64/lib/memset.S
> delete mode 100644 arch/ia64/lib/strlen.S
> delete mode 100644 arch/ia64/lib/strncpy_from_user.S
> delete mode 100644 arch/ia64/lib/strnlen_user.S
> delete mode 100644 arch/ia64/lib/xor.S
> delete mode 100644 arch/ia64/mm/Makefile
> delete mode 100644 arch/ia64/mm/contig.c
> delete mode 100644 arch/ia64/mm/discontig.c
> delete mode 100644 arch/ia64/mm/extable.c
> delete mode 100644 arch/ia64/mm/fault.c
> delete mode 100644 arch/ia64/mm/hugetlbpage.c
> delete mode 100644 arch/ia64/mm/init.c
> delete mode 100644 arch/ia64/mm/ioremap.c
> delete mode 100644 arch/ia64/mm/numa.c
> delete mode 100644 arch/ia64/mm/tlb.c
> delete mode 100644 arch/ia64/pci/Makefile
> delete mode 100644 arch/ia64/pci/fixup.c
> delete mode 100644 arch/ia64/pci/pci.c
> delete mode 100755 arch/ia64/scripts/check-gas
> delete mode 100644 arch/ia64/scripts/check-gas-asm.S
> delete mode 100644 arch/ia64/scripts/check-model.c
> delete mode 100644 arch/ia64/scripts/check-segrel.S
> delete mode 100644 arch/ia64/scripts/check-segrel.lds
> delete mode 100644 arch/ia64/scripts/check-serialize.S
> delete mode 100644 arch/ia64/scripts/check-text-align.S
> delete mode 100755 arch/ia64/scripts/toolchain-flags
> delete mode 100644 arch/ia64/scripts/unwcheck.py
> delete mode 100644 arch/ia64/uv/Makefile
> delete mode 100644 arch/ia64/uv/kernel/Makefile
> delete mode 100644 arch/ia64/uv/kernel/setup.c
> delete mode 100644 drivers/char/agp/hp-agp.c
> delete mode 100644 drivers/char/agp/i460-agp.c
> delete mode 100644 drivers/char/mspec.c
> delete mode 100644 drivers/cpufreq/ia64-acpi-cpufreq.c
> delete mode 100644 drivers/firmware/pcdp.c
> delete mode 100644 drivers/firmware/pcdp.h
> delete mode 100644 tools/arch/ia64/include/asm/barrier.h
> delete mode 100644 tools/arch/ia64/include/uapi/asm/bitsperlong.h
> delete mode 100644 tools/arch/ia64/include/uapi/asm/mman.h
I have skimmed through the changes in your branch and couldn't find any
obvious problems with the removal, so looks good to me.
Acked-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Adrian
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer
`. `' Physicist
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
^ permalink raw reply [relevance 0%]
* [GIT PULL] RISC-V Patches for the 6.4 Merge Window, Part 1
@ 2023-04-28 16:09 3% ` Palmer Dabbelt
0 siblings, 0 replies; 200+ results
From: Palmer Dabbelt @ 2023-04-28 16:09 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-riscv, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 12559 bytes --]
The following changes since commit 1ee7fc3f4d0a93831a20d5566f203d5ad6d44de8:
RISC-V: always select RISCV_ALTERNATIVE for non-xip kernels (2023-03-29 11:48:39 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-6.4-mw1
for you to fetch changes up to b09313dd2e726fe5e1fa574cd73f5e326c6030a4:
RISC-V: hwprobe: Explicity check for -1 in vdso init (2023-04-26 08:58:34 -0700)
----------------------------------------------------------------
RISC-V Patches for the 6.4 Merge Window, Part 1
* Support for runtime detection of the Svnapot extension.
* Support for Zicboz when clearing pages.
* We've moved to GENERIC_ENTRY.
* Support for !MMU on rv32 systems.
* The linear region is now mapped via huge pages.
* Support for building relocatable kernels.
* Support for the hwprobe interface.
* Various fixes and cleanups throughout the tree.
----------------------------------------------------------------
I'm definately going to have a second PR for the merge window, there's already
some fixes on the lists and there's some stragglers that I'm hoping can get
cleaned up in time.
I have two minor build issues, but otherwise this is clean. The fixes are on
the lists
<https://lore.kernel.org/all/20230428152156.22840-1-palmer@rivosinc.com/>, but
I don't think they're directly relevant to this (and they're only manifesting
post-merge).
----------------------------------------------------------------
Alexandre Ghiti (16):
riscv: Get rid of riscv_pfn_base variable
riscv: Move the linear mapping creation in its own function
riscv: Use PUD/P4D/PGD pages for the linear mapping
riscv: Split early and final KASAN population functions
riscv: Rework kasan population functions
riscv: Move DTB_EARLY_BASE_VA to the kernel address space
riscv: Fix EFI stub usage of KASAN instrumented strcmp function
riscv: Fix ptdump when KASAN is enabled
riscv: Unconditionnally select KASAN_VMALLOC if KASAN
riscv: Prepare EFI header for relocatable kernels
riscv: Move .rela.dyn outside of init to avoid empty relocations
riscv: Introduce CONFIG_RELOCATABLE
powerpc: Move script to check relocations at compile time in scripts/
riscv: Check relocations at compile time
riscv: Use --emit-relocs in order to move .rela.dyn in init
riscv: Allow to downgrade paging mode from the command line
Andrew Jones (16):
riscv: Clarify RISCV_ALTERNATIVE help text
riscv: Rename Kconfig.erratas to Kconfig.errata
riscv: alternatives: Remove unnecessary define and unused struct
riscv: alternatives: Rename errata_id to patch_id
riscv: lib: Include hwcap.h directly
riscv: cpufeature: Drop errata_list.h and other unused includes
RISC-V: alternatives: Support patching multiple insns in assembly
RISC-V: Factor out body of riscv_init_cbom_blocksize loop
dt-bindings: riscv: Document cboz-block-size
RISC-V: Add Zicboz detection and block size parsing
RISC-V: cpufeatures: Put the upper 16 bits of patch ID to work
RISC-V: Use Zicboz in clear_page when available
RISC-V: KVM: Provide UAPI for Zicboz block size
RISC-V: KVM: Expose Zicboz to the guest
RISC-V: hwprobe: There can only be one first
RISC-V: hwprobe: Explicity check for -1 in vdso init
Björn Töpel (1):
riscv: entry: Save a0 prior syscall_enter_from_user_mode()
Conor Dooley (3):
RISC-V: convert new selectors of RISCV_ALTERNATIVE to dependencies
RISC-V: align ISA extension Kconfig help text with each other
dt-bindings: riscv: add sv57 mmu-type
Evan Green (7):
RISC-V: Move struct riscv_cpuinfo to new header
RISC-V: Add a syscall for HW probing
RISC-V: hwprobe: Add support for RISCV_HWPROBE_BASE_BEHAVIOR_IMA
RISC-V: hwprobe: Support probing of misaligned access performance
selftests: Test the new RISC-V hwprobe interface
RISC-V: Add hwprobe vDSO function and data
RISC-V: hwprobe: Remove __init on probe_vendor_features()
Guo Ren (3):
riscv: ptrace: Remove duplicate operation
riscv: entry: Add noinstr to prevent instrumentation inserted
riscv: entry: Convert to generic entry
Jesse Taube (1):
riscv: configs: Add nommu PHONY defconfig for RV32
Jisheng Zhang (3):
riscv: entry: Remove extra level wrappers of trace_hardirqs_{on,off}
riscv: entry: Consolidate ret_from_kernel_thread into ret_from_fork
riscv: entry: Consolidate general regs saving/restoring
Palmer Dabbelt (10):
Merge patch series "riscv, mm: detect svnapot cpu support at runtime"
Merge patch series "riscv: alternative/cpufeature related cleanups"
Merge patch series "RISC-V: Apply Zicboz to clear_page"
Merge patch series "riscv: Add GENERIC_ENTRY support"
Merge patch series "Add RISC-V 32 NOMMU support"
Merge patch series "RISC-V: Fixes for riscv_has_extension[un]likely()'s alternative dependency"
Merge patch series "RISC-V Hardware Probing User Interface"
Merge patch series "riscv: Use PUD/P4D/PGD pages for the linear mapping"
Merge patch series "RISC-V kasan rework"
Merge patch series "Introduce 64b relocatable kernel"
Qinglin Pan (3):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
Song Shuai (3):
Revert "riscv: Set more data to cacheinfo"
riscv: export cpu/freq invariant to scheduler
riscv: Kconfig: enable SCHED_MC kconfig
Yimin Gu (1):
riscv: Kconfig: Allow RV32 to build with no MMU
Documentation/admin-guide/kernel-parameters.txt | 5 +-
Documentation/devicetree/bindings/riscv/cpus.yaml | 6 +
Documentation/riscv/hwprobe.rst | 86 ++++
Documentation/riscv/index.rst | 1 +
arch/powerpc/tools/relocs_check.sh | 18 +-
arch/riscv/Kconfig | 78 +++-
arch/riscv/{Kconfig.erratas => Kconfig.errata} | 0
arch/riscv/Makefile | 12 +-
arch/riscv/Makefile.postlink | 49 ++
arch/riscv/boot/Makefile | 7 +
arch/riscv/errata/sifive/errata.c | 8 +-
arch/riscv/errata/thead/errata.c | 14 +-
arch/riscv/include/asm/alternative-macros.h | 72 +--
arch/riscv/include/asm/alternative.h | 20 +-
arch/riscv/include/asm/asm-prototypes.h | 2 +
arch/riscv/include/asm/asm.h | 61 +++
arch/riscv/include/asm/cacheflush.h | 3 +-
arch/riscv/include/asm/cpufeature.h | 23 +
arch/riscv/include/asm/csr.h | 1 -
arch/riscv/include/asm/entry-common.h | 11 +
arch/riscv/include/asm/hugetlb.h | 34 +-
arch/riscv/include/asm/hwcap.h | 2 +
arch/riscv/include/asm/hwprobe.h | 13 +
arch/riscv/include/asm/insn-def.h | 4 +
arch/riscv/include/asm/page.h | 30 +-
arch/riscv/include/asm/pgtable-64.h | 34 ++
arch/riscv/include/asm/pgtable.h | 39 +-
arch/riscv/include/asm/ptrace.h | 10 +-
arch/riscv/include/asm/set_memory.h | 3 +
arch/riscv/include/asm/stacktrace.h | 5 +
arch/riscv/include/asm/syscall.h | 25 +
arch/riscv/include/asm/thread_info.h | 13 +-
arch/riscv/include/asm/topology.h | 21 +
arch/riscv/include/asm/vdso/data.h | 17 +
arch/riscv/include/asm/vdso/gettimeofday.h | 8 +
arch/riscv/include/asm/vmalloc.h | 61 ++-
arch/riscv/include/uapi/asm/hwprobe.h | 37 ++
arch/riscv/include/uapi/asm/kvm.h | 2 +
arch/riscv/include/uapi/asm/unistd.h | 9 +
arch/riscv/kernel/Makefile | 4 +-
arch/riscv/kernel/alternative.c | 21 +-
arch/riscv/kernel/cacheinfo.c | 66 +--
arch/riscv/kernel/compat_vdso/Makefile | 2 +-
arch/riscv/kernel/cpu.c | 10 +-
arch/riscv/kernel/cpufeature.c | 67 ++-
arch/riscv/kernel/efi-header.S | 19 +-
arch/riscv/kernel/entry.S | 321 ++-----------
arch/riscv/kernel/head.h | 1 -
arch/riscv/kernel/image-vars.h | 2 -
arch/riscv/kernel/mcount-dyn.S | 57 +--
arch/riscv/kernel/pi/Makefile | 39 ++
arch/riscv/kernel/pi/cmdline_early.c | 62 +++
arch/riscv/kernel/process.c | 5 +-
arch/riscv/kernel/ptrace.c | 44 --
arch/riscv/kernel/setup.c | 2 +-
arch/riscv/kernel/signal.c | 29 +-
arch/riscv/kernel/smpboot.c | 1 +
arch/riscv/kernel/sys_riscv.c | 230 ++++++++-
arch/riscv/kernel/trace_irq.c | 27 --
arch/riscv/kernel/trace_irq.h | 11 -
arch/riscv/kernel/traps.c | 144 +++++-
arch/riscv/kernel/vdso.c | 6 -
arch/riscv/kernel/vdso/Makefile | 4 +
arch/riscv/kernel/vdso/hwprobe.c | 52 +++
arch/riscv/kernel/vdso/sys_hwprobe.S | 15 +
arch/riscv/kernel/vdso/vdso.lds.S | 3 +
arch/riscv/kernel/vmlinux.lds.S | 35 +-
arch/riscv/kvm/vcpu.c | 11 +
arch/riscv/lib/Makefile | 1 +
arch/riscv/lib/clear_page.S | 74 +++
arch/riscv/lib/memcpy.S | 2 +
arch/riscv/lib/memmove.S | 2 +
arch/riscv/lib/strcmp.S | 3 +-
arch/riscv/lib/strlen.S | 4 +-
arch/riscv/lib/strncmp.S | 3 +-
arch/riscv/mm/Makefile | 4 +
arch/riscv/mm/cacheflush.c | 64 +--
arch/riscv/mm/fault.c | 6 +-
arch/riscv/mm/hugetlbpage.c | 301 ++++++++++++
arch/riscv/mm/init.c | 194 ++++++--
arch/riscv/mm/kasan_init.c | 516 ++++++++++++---------
arch/riscv/mm/physaddr.c | 16 +
arch/riscv/mm/ptdump.c | 24 +-
arch/riscv/tools/relocs_check.sh | 26 ++
drivers/of/fdt.c | 11 +-
scripts/relocs_check.sh | 20 +
tools/testing/selftests/Makefile | 1 +
tools/testing/selftests/riscv/Makefile | 58 +++
tools/testing/selftests/riscv/hwprobe/Makefile | 10 +
tools/testing/selftests/riscv/hwprobe/hwprobe.c | 90 ++++
.../testing/selftests/riscv/hwprobe/sys_hwprobe.S | 12 +
91 files changed, 2589 insertions(+), 987 deletions(-)
create mode 100644 Documentation/riscv/hwprobe.rst
rename arch/riscv/{Kconfig.erratas => Kconfig.errata} (100%)
create mode 100644 arch/riscv/Makefile.postlink
create mode 100644 arch/riscv/include/asm/cpufeature.h
create mode 100644 arch/riscv/include/asm/entry-common.h
create mode 100644 arch/riscv/include/asm/hwprobe.h
create mode 100644 arch/riscv/include/asm/topology.h
create mode 100644 arch/riscv/include/asm/vdso/data.h
create mode 100644 arch/riscv/include/uapi/asm/hwprobe.h
create mode 100644 arch/riscv/kernel/pi/Makefile
create mode 100644 arch/riscv/kernel/pi/cmdline_early.c
delete mode 100644 arch/riscv/kernel/trace_irq.c
delete mode 100644 arch/riscv/kernel/trace_irq.h
create mode 100644 arch/riscv/kernel/vdso/hwprobe.c
create mode 100644 arch/riscv/kernel/vdso/sys_hwprobe.S
create mode 100644 arch/riscv/lib/clear_page.S
create mode 100755 arch/riscv/tools/relocs_check.sh
create mode 100755 scripts/relocs_check.sh
create mode 100644 tools/testing/selftests/riscv/Makefile
create mode 100644 tools/testing/selftests/riscv/hwprobe/Makefile
create mode 100644 tools/testing/selftests/riscv/hwprobe/hwprobe.c
create mode 100644 tools/testing/selftests/riscv/hwprobe/sys_hwprobe.S
[-- Attachment #2: Type: text/plain, Size: 161 bytes --]
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 3%]
* [GIT PULL] RISC-V Patches for the 6.4 Merge Window, Part 1
@ 2023-04-28 16:09 3% ` Palmer Dabbelt
0 siblings, 0 replies; 200+ results
From: Palmer Dabbelt @ 2023-04-28 16:09 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-riscv, linux-kernel
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 12558 bytes --]
The following changes since commit 1ee7fc3f4d0a93831a20d5566f203d5ad6d44de8:
RISC-V: always select RISCV_ALTERNATIVE for non-xip kernels (2023-03-29 11:48:39 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-6.4-mw1
for you to fetch changes up to b09313dd2e726fe5e1fa574cd73f5e326c6030a4:
RISC-V: hwprobe: Explicity check for -1 in vdso init (2023-04-26 08:58:34 -0700)
----------------------------------------------------------------
RISC-V Patches for the 6.4 Merge Window, Part 1
* Support for runtime detection of the Svnapot extension.
* Support for Zicboz when clearing pages.
* We've moved to GENERIC_ENTRY.
* Support for !MMU on rv32 systems.
* The linear region is now mapped via huge pages.
* Support for building relocatable kernels.
* Support for the hwprobe interface.
* Various fixes and cleanups throughout the tree.
----------------------------------------------------------------
I'm definately going to have a second PR for the merge window, there's already
some fixes on the lists and there's some stragglers that I'm hoping can get
cleaned up in time.
I have two minor build issues, but otherwise this is clean. The fixes are on
the lists
<https://lore.kernel.org/all/20230428152156.22840-1-palmer@rivosinc.com/>, but
I don't think they're directly relevant to this (and they're only manifesting
post-merge).
----------------------------------------------------------------
Alexandre Ghiti (16):
riscv: Get rid of riscv_pfn_base variable
riscv: Move the linear mapping creation in its own function
riscv: Use PUD/P4D/PGD pages for the linear mapping
riscv: Split early and final KASAN population functions
riscv: Rework kasan population functions
riscv: Move DTB_EARLY_BASE_VA to the kernel address space
riscv: Fix EFI stub usage of KASAN instrumented strcmp function
riscv: Fix ptdump when KASAN is enabled
riscv: Unconditionnally select KASAN_VMALLOC if KASAN
riscv: Prepare EFI header for relocatable kernels
riscv: Move .rela.dyn outside of init to avoid empty relocations
riscv: Introduce CONFIG_RELOCATABLE
powerpc: Move script to check relocations at compile time in scripts/
riscv: Check relocations at compile time
riscv: Use --emit-relocs in order to move .rela.dyn in init
riscv: Allow to downgrade paging mode from the command line
Andrew Jones (16):
riscv: Clarify RISCV_ALTERNATIVE help text
riscv: Rename Kconfig.erratas to Kconfig.errata
riscv: alternatives: Remove unnecessary define and unused struct
riscv: alternatives: Rename errata_id to patch_id
riscv: lib: Include hwcap.h directly
riscv: cpufeature: Drop errata_list.h and other unused includes
RISC-V: alternatives: Support patching multiple insns in assembly
RISC-V: Factor out body of riscv_init_cbom_blocksize loop
dt-bindings: riscv: Document cboz-block-size
RISC-V: Add Zicboz detection and block size parsing
RISC-V: cpufeatures: Put the upper 16 bits of patch ID to work
RISC-V: Use Zicboz in clear_page when available
RISC-V: KVM: Provide UAPI for Zicboz block size
RISC-V: KVM: Expose Zicboz to the guest
RISC-V: hwprobe: There can only be one first
RISC-V: hwprobe: Explicity check for -1 in vdso init
Björn Töpel (1):
riscv: entry: Save a0 prior syscall_enter_from_user_mode()
Conor Dooley (3):
RISC-V: convert new selectors of RISCV_ALTERNATIVE to dependencies
RISC-V: align ISA extension Kconfig help text with each other
dt-bindings: riscv: add sv57 mmu-type
Evan Green (7):
RISC-V: Move struct riscv_cpuinfo to new header
RISC-V: Add a syscall for HW probing
RISC-V: hwprobe: Add support for RISCV_HWPROBE_BASE_BEHAVIOR_IMA
RISC-V: hwprobe: Support probing of misaligned access performance
selftests: Test the new RISC-V hwprobe interface
RISC-V: Add hwprobe vDSO function and data
RISC-V: hwprobe: Remove __init on probe_vendor_features()
Guo Ren (3):
riscv: ptrace: Remove duplicate operation
riscv: entry: Add noinstr to prevent instrumentation inserted
riscv: entry: Convert to generic entry
Jesse Taube (1):
riscv: configs: Add nommu PHONY defconfig for RV32
Jisheng Zhang (3):
riscv: entry: Remove extra level wrappers of trace_hardirqs_{on,off}
riscv: entry: Consolidate ret_from_kernel_thread into ret_from_fork
riscv: entry: Consolidate general regs saving/restoring
Palmer Dabbelt (10):
Merge patch series "riscv, mm: detect svnapot cpu support at runtime"
Merge patch series "riscv: alternative/cpufeature related cleanups"
Merge patch series "RISC-V: Apply Zicboz to clear_page"
Merge patch series "riscv: Add GENERIC_ENTRY support"
Merge patch series "Add RISC-V 32 NOMMU support"
Merge patch series "RISC-V: Fixes for riscv_has_extension[un]likely()'s alternative dependency"
Merge patch series "RISC-V Hardware Probing User Interface"
Merge patch series "riscv: Use PUD/P4D/PGD pages for the linear mapping"
Merge patch series "RISC-V kasan rework"
Merge patch series "Introduce 64b relocatable kernel"
Qinglin Pan (3):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
Song Shuai (3):
Revert "riscv: Set more data to cacheinfo"
riscv: export cpu/freq invariant to scheduler
riscv: Kconfig: enable SCHED_MC kconfig
Yimin Gu (1):
riscv: Kconfig: Allow RV32 to build with no MMU
Documentation/admin-guide/kernel-parameters.txt | 5 +-
Documentation/devicetree/bindings/riscv/cpus.yaml | 6 +
Documentation/riscv/hwprobe.rst | 86 ++++
Documentation/riscv/index.rst | 1 +
arch/powerpc/tools/relocs_check.sh | 18 +-
arch/riscv/Kconfig | 78 +++-
arch/riscv/{Kconfig.erratas => Kconfig.errata} | 0
arch/riscv/Makefile | 12 +-
arch/riscv/Makefile.postlink | 49 ++
arch/riscv/boot/Makefile | 7 +
arch/riscv/errata/sifive/errata.c | 8 +-
arch/riscv/errata/thead/errata.c | 14 +-
arch/riscv/include/asm/alternative-macros.h | 72 +--
arch/riscv/include/asm/alternative.h | 20 +-
arch/riscv/include/asm/asm-prototypes.h | 2 +
arch/riscv/include/asm/asm.h | 61 +++
arch/riscv/include/asm/cacheflush.h | 3 +-
arch/riscv/include/asm/cpufeature.h | 23 +
arch/riscv/include/asm/csr.h | 1 -
arch/riscv/include/asm/entry-common.h | 11 +
arch/riscv/include/asm/hugetlb.h | 34 +-
arch/riscv/include/asm/hwcap.h | 2 +
arch/riscv/include/asm/hwprobe.h | 13 +
arch/riscv/include/asm/insn-def.h | 4 +
arch/riscv/include/asm/page.h | 30 +-
arch/riscv/include/asm/pgtable-64.h | 34 ++
arch/riscv/include/asm/pgtable.h | 39 +-
arch/riscv/include/asm/ptrace.h | 10 +-
arch/riscv/include/asm/set_memory.h | 3 +
arch/riscv/include/asm/stacktrace.h | 5 +
arch/riscv/include/asm/syscall.h | 25 +
arch/riscv/include/asm/thread_info.h | 13 +-
arch/riscv/include/asm/topology.h | 21 +
arch/riscv/include/asm/vdso/data.h | 17 +
arch/riscv/include/asm/vdso/gettimeofday.h | 8 +
arch/riscv/include/asm/vmalloc.h | 61 ++-
arch/riscv/include/uapi/asm/hwprobe.h | 37 ++
arch/riscv/include/uapi/asm/kvm.h | 2 +
arch/riscv/include/uapi/asm/unistd.h | 9 +
arch/riscv/kernel/Makefile | 4 +-
arch/riscv/kernel/alternative.c | 21 +-
arch/riscv/kernel/cacheinfo.c | 66 +--
arch/riscv/kernel/compat_vdso/Makefile | 2 +-
arch/riscv/kernel/cpu.c | 10 +-
arch/riscv/kernel/cpufeature.c | 67 ++-
arch/riscv/kernel/efi-header.S | 19 +-
arch/riscv/kernel/entry.S | 321 ++-----------
arch/riscv/kernel/head.h | 1 -
arch/riscv/kernel/image-vars.h | 2 -
arch/riscv/kernel/mcount-dyn.S | 57 +--
arch/riscv/kernel/pi/Makefile | 39 ++
arch/riscv/kernel/pi/cmdline_early.c | 62 +++
arch/riscv/kernel/process.c | 5 +-
arch/riscv/kernel/ptrace.c | 44 --
arch/riscv/kernel/setup.c | 2 +-
arch/riscv/kernel/signal.c | 29 +-
arch/riscv/kernel/smpboot.c | 1 +
arch/riscv/kernel/sys_riscv.c | 230 ++++++++-
arch/riscv/kernel/trace_irq.c | 27 --
arch/riscv/kernel/trace_irq.h | 11 -
arch/riscv/kernel/traps.c | 144 +++++-
arch/riscv/kernel/vdso.c | 6 -
arch/riscv/kernel/vdso/Makefile | 4 +
arch/riscv/kernel/vdso/hwprobe.c | 52 +++
arch/riscv/kernel/vdso/sys_hwprobe.S | 15 +
arch/riscv/kernel/vdso/vdso.lds.S | 3 +
arch/riscv/kernel/vmlinux.lds.S | 35 +-
arch/riscv/kvm/vcpu.c | 11 +
arch/riscv/lib/Makefile | 1 +
arch/riscv/lib/clear_page.S | 74 +++
arch/riscv/lib/memcpy.S | 2 +
arch/riscv/lib/memmove.S | 2 +
arch/riscv/lib/strcmp.S | 3 +-
arch/riscv/lib/strlen.S | 4 +-
arch/riscv/lib/strncmp.S | 3 +-
arch/riscv/mm/Makefile | 4 +
arch/riscv/mm/cacheflush.c | 64 +--
arch/riscv/mm/fault.c | 6 +-
arch/riscv/mm/hugetlbpage.c | 301 ++++++++++++
arch/riscv/mm/init.c | 194 ++++++--
arch/riscv/mm/kasan_init.c | 516 ++++++++++++---------
arch/riscv/mm/physaddr.c | 16 +
arch/riscv/mm/ptdump.c | 24 +-
arch/riscv/tools/relocs_check.sh | 26 ++
drivers/of/fdt.c | 11 +-
scripts/relocs_check.sh | 20 +
tools/testing/selftests/Makefile | 1 +
tools/testing/selftests/riscv/Makefile | 58 +++
tools/testing/selftests/riscv/hwprobe/Makefile | 10 +
tools/testing/selftests/riscv/hwprobe/hwprobe.c | 90 ++++
.../testing/selftests/riscv/hwprobe/sys_hwprobe.S | 12 +
91 files changed, 2589 insertions(+), 987 deletions(-)
create mode 100644 Documentation/riscv/hwprobe.rst
rename arch/riscv/{Kconfig.erratas => Kconfig.errata} (100%)
create mode 100644 arch/riscv/Makefile.postlink
create mode 100644 arch/riscv/include/asm/cpufeature.h
create mode 100644 arch/riscv/include/asm/entry-common.h
create mode 100644 arch/riscv/include/asm/hwprobe.h
create mode 100644 arch/riscv/include/asm/topology.h
create mode 100644 arch/riscv/include/asm/vdso/data.h
create mode 100644 arch/riscv/include/uapi/asm/hwprobe.h
create mode 100644 arch/riscv/kernel/pi/Makefile
create mode 100644 arch/riscv/kernel/pi/cmdline_early.c
delete mode 100644 arch/riscv/kernel/trace_irq.c
delete mode 100644 arch/riscv/kernel/trace_irq.h
create mode 100644 arch/riscv/kernel/vdso/hwprobe.c
create mode 100644 arch/riscv/kernel/vdso/sys_hwprobe.S
create mode 100644 arch/riscv/lib/clear_page.S
create mode 100755 arch/riscv/tools/relocs_check.sh
create mode 100755 scripts/relocs_check.sh
create mode 100644 tools/testing/selftests/riscv/Makefile
create mode 100644 tools/testing/selftests/riscv/hwprobe/Makefile
create mode 100644 tools/testing/selftests/riscv/hwprobe/hwprobe.c
create mode 100644 tools/testing/selftests/riscv/hwprobe/sys_hwprobe.S
^ permalink raw reply [relevance 3%]
* Re: [PATCH v14 0/3] riscv, mm: detect svnapot cpu support at runtime
2023-03-08 7:48 6% [PATCH v14 0/3] riscv, mm: detect svnapot cpu support at runtime Qinglin Pan
2023-03-08 7:48 12% ` [PATCH v14 3/3] riscv: mm: support Svnapot in huge vmap Qinglin Pan
@ 2023-03-15 1:40 5% ` patchwork-bot+linux-riscv
1 sibling, 0 replies; 200+ results
From: patchwork-bot+linux-riscv @ 2023-03-15 1:40 UTC (permalink / raw)
To: Qinglin Pan
Cc: linux-riscv, paul.walmsley, palmer, jeff, xuyinan, conor, ajones
Hello:
This series was applied to riscv/linux.git (for-next)
by Palmer Dabbelt <palmer@rivosinc.com>:
On Wed, 8 Mar 2023 15:48:50 +0800 you wrote:
> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
>
> This patchset adds a Kconfig item for using Svnapot in
> "Platform type"->"SVNAPOT extension support". Its default value is on,
> and people can set it off if they don't allow kernel to detect Svnapot
> hardware support and leverage it.
>
> [...]
Here is the summary with links:
- [v14,1/3] riscv: mm: modify pte format for Svnapot
(no matching commit)
- [v14,2/3] riscv: mm: support Svnapot in hugetlb page
(no matching commit)
- [v14,3/3] riscv: mm: support Svnapot in huge vmap
https://git.kernel.org/riscv/c/ce173474cf19
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 5%]
* [PATCH v14 3/3] riscv: mm: support Svnapot in huge vmap
2023-03-08 7:48 6% [PATCH v14 0/3] riscv, mm: detect svnapot cpu support at runtime Qinglin Pan
@ 2023-03-08 7:48 12% ` Qinglin Pan
2023-03-15 1:40 5% ` [PATCH v14 0/3] riscv, mm: detect svnapot cpu support at runtime patchwork-bot+linux-riscv
1 sibling, 0 replies; 200+ results
From: Qinglin Pan @ 2023-03-08 7:48 UTC (permalink / raw)
To: paul.walmsley, palmer, linux-riscv
Cc: jeff, xuyinan, conor, ajones, Qinglin Pan, Qinglin Pan, Conor Dooley
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
for Svnapot to support huge vmap about napot size.
It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
can be tested by test_vmalloc with [1] applied, and probe this
module to run fix_size_alloc_test with use_huge true.
[1]https://lore.kernel.org/all/20221212055657.698420-1-panqinglin2020@iscas.ac.cn/
Signed-off-by: Qinglin Pan <panqinglin00@gmail.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 48da5371f1e9..58d3e447f191 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#endif
+#ifdef CONFIG_RISCV_ISA_SVNAPOT
+#include <linux/pgtable.h>
+#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
+static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
+ u64 pfn, unsigned int max_page_shift)
+{
+ unsigned long map_size = PAGE_SIZE;
+ unsigned long size, order;
+
+ if (!has_svnapot())
+ return map_size;
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_shift(order) > max_page_shift)
+ continue;
+
+ size = napot_cont_size(order);
+ if (end - addr < size)
+ continue;
+
+ if (!IS_ALIGNED(addr, size))
+ continue;
+
+ if (!IS_ALIGNED(PFN_PHYS(pfn), size))
+ continue;
+
+ map_size = size;
+ break;
+ }
+
+ return map_size;
+}
+
+#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
+static inline int arch_vmap_pte_supported_shift(unsigned long size)
+{
+ int shift = PAGE_SHIFT;
+ unsigned long order;
+
+ if (!has_svnapot())
+ return shift;
+
+ WARN_ON_ONCE(size >= PMD_SIZE);
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_size(order) > size)
+ continue;
+
+ if (!IS_ALIGNED(size, napot_cont_size(order)))
+ continue;
+
+ shift = napot_cont_shift(order);
+ break;
+ }
+
+ return shift;
+}
+
+#endif /* CONFIG_RISCV_ISA_SVNAPOT */
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.39.2
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 12%]
* [PATCH v14 0/3] riscv, mm: detect svnapot cpu support at runtime
@ 2023-03-08 7:48 6% Qinglin Pan
2023-03-08 7:48 12% ` [PATCH v14 3/3] riscv: mm: support Svnapot in huge vmap Qinglin Pan
2023-03-15 1:40 5% ` [PATCH v14 0/3] riscv, mm: detect svnapot cpu support at runtime patchwork-bot+linux-riscv
0 siblings, 2 replies; 200+ results
From: Qinglin Pan @ 2023-03-08 7:48 UTC (permalink / raw)
To: paul.walmsley, palmer, linux-riscv
Cc: jeff, xuyinan, conor, ajones, Qinglin Pan
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is on,
and people can set it off if they don't allow kernel to detect Svnapot
hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
- modify code according to @Conor and @Heiko
Changes in v6:
- use static key insead of alternative errata
Changes in v7:
- add napot_cont_order for possible more napot order in the future
- remove linear mapping related code from this patchset to another patch
- refactor hugetlb code for svnapot according to thanks @Andrew @Conor
- use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
- support svnapot in huge vmap on newer for-next branch
Changes in v8:
- fix compilation errors in rv32_defconfig
- insert some lines of whitespace according to @Conor's suggestion
Changes in v9:
- use alternative to avoid using static branches inside heavily used
inline functions
- change napot_cont_mask definition
- post test_vmalloc modification about testing vmalloc_huge
Changes in v10:
- fix some nits caught by @Andrew
- collect Reviewed-by/Acked-by
- add memory leak warning in KConfig text
- replace test_vmalloc patch link with the standard one
Changes in v11:
- add more detailed warning about HUGETLBFS and SVNAPOT in KConfig text
- fix missing reverse-xmas tree
Changes in v12:
- rebase on the new ISA extension API [1]
Changes in v13:
- fix warnings reported by patchwork
Changes in v14:
- rebase on for-next
[1]https://lore.kernel.org/all/20230128172856.3814-5-jszhang@kernel.org/
Qinglin Pan (3):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 21 +-
arch/riscv/include/asm/hugetlb.h | 34 +++-
arch/riscv/include/asm/hwcap.h | 3 +-
arch/riscv/include/asm/page.h | 5 -
arch/riscv/include/asm/pgtable-64.h | 34 ++++
arch/riscv/include/asm/pgtable.h | 39 +++-
arch/riscv/include/asm/vmalloc.h | 61 +++++-
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 1 +
arch/riscv/mm/hugetlbpage.c | 301 ++++++++++++++++++++++++++++
10 files changed, 490 insertions(+), 10 deletions(-)
--
2.39.2
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* [PATCH 09/17] netfs: Add a function to extract an iterator into a scatterlist
@ 2023-02-16 21:47 4% ` David Howells
0 siblings, 0 replies; 200+ results
From: David Howells @ 2023-02-16 21:47 UTC (permalink / raw)
To: Steve French
Cc: David Howells, Jens Axboe, Al Viro, Shyam Prasad N,
Rohith Surabattula, Tom Talpey, Stefan Metzmacher,
Christoph Hellwig, Matthew Wilcox, Jeff Layton, linux-cifs,
linux-block, linux-fsdevel, linux-mm, linux-kernel, Steve French,
linux-cachefs
Provide a function for filling in a scatterlist from the list of pages
contained in an iterator.
If the iterator is UBUF- or IOBUF-type, the pages have a pin taken on them
(as FOLL_PIN).
If the iterator is BVEC-, KVEC- or XARRAY-type, no pin is taken on the
pages and it is left to the caller to manage their lifetime. It cannot be
assumed that a ref can be validly taken, particularly in the case of a KVEC
iterator.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <sfrench@samba.org>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: linux-cachefs@redhat.com
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
---
fs/netfs/iterator.c | 268 ++++++++++++++++++++++++++++++++++++++++++
include/linux/netfs.h | 4 +
mm/vmalloc.c | 1 +
3 files changed, 273 insertions(+)
diff --git a/fs/netfs/iterator.c b/fs/netfs/iterator.c
index 6f0d79080abc..80d7ff440cac 100644
--- a/fs/netfs/iterator.c
+++ b/fs/netfs/iterator.c
@@ -7,7 +7,9 @@
#include <linux/export.h>
#include <linux/slab.h>
+#include <linux/mm.h>
#include <linux/uio.h>
+#include <linux/scatterlist.h>
#include <linux/netfs.h>
#include "internal.h"
@@ -101,3 +103,269 @@ ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
return npages;
}
EXPORT_SYMBOL_GPL(netfs_extract_user_iter);
+
+/*
+ * Extract and pin a list of up to sg_max pages from UBUF- or IOVEC-class
+ * iterators, and add them to the scatterlist.
+ */
+static ssize_t netfs_extract_user_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct page **pages;
+ unsigned int npages;
+ ssize_t ret = 0, res;
+ size_t len, off;
+
+ /* We decant the page list into the tail of the scatterlist */
+ pages = (void *)sgtable->sgl + array_size(sg_max, sizeof(struct scatterlist));
+ pages -= sg_max;
+
+ do {
+ res = iov_iter_extract_pages(iter, &pages, maxsize, sg_max,
+ extraction_flags, &off);
+ if (res < 0)
+ goto failed;
+
+ len = res;
+ maxsize -= len;
+ ret += len;
+ npages = DIV_ROUND_UP(off + len, PAGE_SIZE);
+ sg_max -= npages;
+
+ for (; npages < 0; npages--) {
+ struct page *page = *pages;
+ size_t seg = min_t(size_t, PAGE_SIZE - off, len);
+
+ *pages++ = NULL;
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ len -= seg;
+ off = 0;
+ }
+ } while (maxsize > 0 && sg_max > 0);
+
+ return ret;
+
+failed:
+ while (sgtable->nents > sgtable->orig_nents)
+ put_page(sg_page(&sgtable->sgl[--sgtable->nents]));
+ return res;
+}
+
+/*
+ * Extract up to sg_max pages from a BVEC-type iterator and add them to the
+ * scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_bvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ const struct bio_vec *bv = iter->bvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ size_t off, len;
+
+ len = bv[i].bv_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ len = min_t(size_t, maxsize, len - start);
+ off = bv[i].bv_offset + start;
+
+ sg_set_page(sg, bv[i].bv_page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ ret += len;
+ maxsize -= len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max pages from a KVEC-type iterator and add them to the
+ * scatterlist. This can deal with vmalloc'd buffers as well as kmalloc'd or
+ * static buffers. The pages are not pinned.
+ */
+static ssize_t netfs_extract_kvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ const struct kvec *kv = iter->kvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ struct page *page;
+ unsigned long kaddr;
+ size_t off, len, seg;
+
+ len = kv[i].iov_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ kaddr = (unsigned long)kv[i].iov_base + start;
+ off = kaddr & ~PAGE_MASK;
+ len = min_t(size_t, maxsize, len - start);
+ kaddr &= PAGE_MASK;
+
+ maxsize -= len;
+ ret += len;
+ do {
+ seg = min_t(size_t, len, PAGE_SIZE - off);
+ if (is_vmalloc_or_module_addr((void *)kaddr))
+ page = vmalloc_to_page((void *)kaddr);
+ else
+ page = virt_to_page(kaddr);
+
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ len -= seg;
+ kaddr += PAGE_SIZE;
+ off = 0;
+ } while (len > 0 && sg_max > 0);
+
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max folios from an XARRAY-type iterator and add them to
+ * the scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_xarray_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct xarray *xa = iter->xarray;
+ struct folio *folio;
+ loff_t start = iter->xarray_start + iter->iov_offset;
+ pgoff_t index = start / PAGE_SIZE;
+ ssize_t ret = 0;
+ size_t offset, len;
+ XA_STATE(xas, xa, index);
+
+ rcu_read_lock();
+
+ xas_for_each(&xas, folio, ULONG_MAX) {
+ if (xas_retry(&xas, folio))
+ continue;
+ if (WARN_ON(xa_is_value(folio)))
+ break;
+ if (WARN_ON(folio_test_hugetlb(folio)))
+ break;
+
+ offset = offset_in_folio(folio, start);
+ len = min_t(size_t, maxsize, folio_size(folio) - offset);
+
+ sg_set_page(sg, folio_page(folio, 0), len, offset);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ maxsize -= len;
+ ret += len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ }
+
+ rcu_read_unlock();
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/**
+ * netfs_extract_iter_to_sg - Extract pages from an iterator and add ot an sglist
+ * @iter: The iterator to extract from
+ * @maxsize: The amount of iterator to copy
+ * @sgtable: The scatterlist table to fill in
+ * @sg_max: Maximum number of elements in @sgtable that may be filled
+ * @extraction_flags: Flags to qualify the request
+ *
+ * Extract the page fragments from the given amount of the source iterator and
+ * add them to a scatterlist that refers to all of those bits, to a maximum
+ * addition of @sg_max elements.
+ *
+ * The pages referred to by UBUF- and IOVEC-type iterators are extracted and
+ * pinned; BVEC-, KVEC- and XARRAY-type are extracted but aren't pinned; PIPE-
+ * and DISCARD-type are not supported.
+ *
+ * No end mark is placed on the scatterlist; that's left to the caller.
+ *
+ * @extraction_flags can have ITER_ALLOW_P2PDMA set to request peer-to-peer DMA
+ * be allowed on the pages extracted.
+ *
+ * If successul, @sgtable->nents is updated to include the number of elements
+ * added and the number of bytes added is returned. @sgtable->orig_nents is
+ * left unaltered.
+ *
+ * The iov_iter_extract_mode() function should be used to query how cleanup
+ * should be performed.
+ */
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t maxsize,
+ struct sg_table *sgtable, unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ if (maxsize == 0)
+ return 0;
+
+ switch (iov_iter_type(iter)) {
+ case ITER_UBUF:
+ case ITER_IOVEC:
+ return netfs_extract_user_to_sg(iter, maxsize, sgtable, sg_max,
+ extraction_flags);
+ case ITER_BVEC:
+ return netfs_extract_bvec_to_sg(iter, maxsize, sgtable, sg_max,
+ extraction_flags);
+ case ITER_KVEC:
+ return netfs_extract_kvec_to_sg(iter, maxsize, sgtable, sg_max,
+ extraction_flags);
+ case ITER_XARRAY:
+ return netfs_extract_xarray_to_sg(iter, maxsize, sgtable, sg_max,
+ extraction_flags);
+ default:
+ pr_err("%s(%u) unsupported\n", __func__, iov_iter_type(iter));
+ WARN_ON_ONCE(1);
+ return -EIO;
+ }
+}
+EXPORT_SYMBOL_GPL(netfs_extract_iter_to_sg);
diff --git a/include/linux/netfs.h b/include/linux/netfs.h
index b11a84f6c32b..a1f3522daa69 100644
--- a/include/linux/netfs.h
+++ b/include/linux/netfs.h
@@ -300,6 +300,10 @@ void netfs_stats_show(struct seq_file *);
ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
struct iov_iter *new,
iov_iter_extraction_t extraction_flags);
+struct sg_table;
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t len,
+ struct sg_table *sgtable, unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags);
/**
* netfs_inode - Get the netfs inode context from the inode
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ca71de7c9d77..61f5bec0f2b6 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -656,6 +656,7 @@ int is_vmalloc_or_module_addr(const void *x)
#endif
return is_vmalloc_addr(x);
}
+EXPORT_SYMBOL_GPL(is_vmalloc_or_module_addr);
/*
* Walk a vmap address to the struct page it maps. Huge vmap mappings will
^ permalink raw reply related [relevance 4%]
* [PATCH v8 3/7] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
@ 2023-02-15 23:11 5% ` Rohan McLure
0 siblings, 0 replies; 200+ results
From: Rohan McLure @ 2023-02-15 23:11 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Rohan McLure
Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
latter is the name given to checking that a higher-level entry in
multi-level paging contains a page translation entry (pte) throughout
all other archs.
A future patch will implement p{u,m,4}_leaf stubs on all platforms so
that they may be referenced in generic code.
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
---
V4: New patch
V5: Previously replaced stub definition for *_is_leaf with *_leaf. Do
that in a later patch
---
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 ++++++------
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 +++++++-------
arch/powerpc/mm/pgtable.c | 6 +++---
arch/powerpc/mm/pgtable_64.c | 6 +++---
arch/powerpc/xmon/xmon.c | 6 +++---
5 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 9d3743ca16d5..0d24fd984d16 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -497,7 +497,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -526,7 +526,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -629,12 +629,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -652,7 +652,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -703,7 +703,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index 26245aaf12b8..4e46e001c3c3 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -205,14 +205,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -786,7 +786,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (!IS_ALIGNED(addr, PMD_SIZE) ||
!IS_ALIGNED(next, PMD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -816,7 +816,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -849,7 +849,7 @@ static void __meminit remove_pagetable(unsigned long start, unsigned long end)
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1112,7 +1112,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1159,7 +1159,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index d7cce317cef8..00ffbf197a13 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -386,7 +386,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -408,7 +408,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -447,7 +447,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 5ac1fd30341b..0604c80dae66 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 73c620c2a3a1..07346b10f972 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3339,7 +3339,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3353,7 +3353,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3367,7 +3367,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
--
2.37.2
^ permalink raw reply related [relevance 5%]
* Re: [RFC PATCH 0/5] Retire IA64/Itanium support
2023-02-15 10:00 1% ` Ard Biesheuvel
@ 2023-02-15 16:50 0% ` Palmer Dabbelt
-1 siblings, 0 replies; 200+ results
From: Palmer Dabbelt @ 2023-02-15 16:50 UTC (permalink / raw)
To: ardb
Cc: linux-kernel, ardb, corbet, Arnd Bergmann, tony.luck, jrtc27,
glaubitz, willy, Marc Zyngier, linux, Linus Torvalds, linux-ia64
On Wed, 15 Feb 2023 02:00:03 PST (-0800), ardb@kernel.org wrote:
> The IA64 port of Linux has no maintainer, and according to a report from
> its only remaining user [0], it has been broken for a month and nobody
> cares.
>
> Given that keeping a complex but unused architecture alive uses up
> valuable developer bandwidth, let's just get rid of it.
>
> This supersedes my patch proposing to mark it as 'dead', which received
> no replies from anyone that wants to keep it alive. [1]
>
> [0] https://www.spinics.net/lists/linux-ia64/msg21926.html
> [1] https://lore.kernel.org/all/20230128122904.1345120-1-ardb@kernel.org/
>
> Cc: Jonathan Corbet <corbet@lwn.net>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Tony Luck <tony.luck@intel.com>
> Cc: Jessica Clarke <jrtc27@jrtc27.com>
> Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
> Cc: Matthew Wilcox <willy@infradead.org>
> Cc: Marc Zyngier <maz@kernel.org>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Linus Torvalds <torvalds@linux-foundation.org>
> Cc: linux-ia64@vger.kernel.org
>
> Ard Biesheuvel (5):
> arch: Remove Itanium (IA-64) architecture
> kernel: Drop IA64 support from sig_fault handlers
> Documentation: Drop IA64 from feature descriptions
> lib/raid6: Drop IA64 support
> Documentation: Drop or replace remaining mentions of IA64
Not sure if I'm missing it in the diff, but it looks like there's also a
bunch of "#ifdef __ia64__" and "#ifdef __IA64__" type code spread
throughout the kernel. I didn't look at the actual diff, but it's in
files that aren't showing up in the diffstat.
Just "git grep -i __ia64__" lists a bunch. I didn't look at all of
them, but at least spot checking include/acpi/actypes.h looks like it's
a real Itanium workaround. If the arch goes, it's probbaly worth
removing those too?
There's also some mentions of "Itanium" in Documentation outside that
don't look like they got caught here. Not sure if they'd be worth
getting rid of, though as they could still be useful examples. The
blurb in Documentation/memory-barriers.txt looks pretty port-specific,
though.
> Documentation/ABI/testing/sysfs-devices-system-cpu | 3 -
> Documentation/ABI/testing/sysfs-firmware-dmi-entries | 2 +-
> Documentation/admin-guide/kdump/kdump.rst | 37 +-
> Documentation/admin-guide/kdump/vmcoreinfo.rst | 30 -
> Documentation/admin-guide/kernel-parameters.txt | 8 +-
> Documentation/admin-guide/mm/memory-hotplug.rst | 2 +-
> Documentation/admin-guide/sysctl/kernel.rst | 23 +-
> Documentation/arch.rst | 1 -
> Documentation/block/ioprio.rst | 3 -
> Documentation/core-api/cpu_hotplug.rst | 6 -
> Documentation/core-api/debugging-via-ohci1394.rst | 6 +-
> Documentation/features/core/cBPF-JIT/arch-support.txt | 1 -
> Documentation/features/core/eBPF-JIT/arch-support.txt | 1 -
> Documentation/features/core/generic-idle-thread/arch-support.txt | 1 -
> Documentation/features/core/jump-labels/arch-support.txt | 1 -
> Documentation/features/core/thread-info-in-task/arch-support.txt | 1 -
> Documentation/features/core/tracehook/arch-support.txt | 1 -
> Documentation/features/debug/KASAN/arch-support.txt | 1 -
> Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 1 -
> Documentation/features/debug/gcov-profile-all/arch-support.txt | 1 -
> Documentation/features/debug/kcov/arch-support.txt | 1 -
> Documentation/features/debug/kgdb/arch-support.txt | 1 -
> Documentation/features/debug/kmemleak/arch-support.txt | 1 -
> Documentation/features/debug/kprobes-on-ftrace/arch-support.txt | 1 -
> Documentation/features/debug/kprobes/arch-support.txt | 1 -
> Documentation/features/debug/kretprobes/arch-support.txt | 1 -
> Documentation/features/debug/optprobes/arch-support.txt | 1 -
> Documentation/features/debug/stackprotector/arch-support.txt | 1 -
> Documentation/features/debug/uprobes/arch-support.txt | 1 -
> Documentation/features/debug/user-ret-profiler/arch-support.txt | 1 -
> Documentation/features/io/dma-contiguous/arch-support.txt | 1 -
> Documentation/features/locking/cmpxchg-local/arch-support.txt | 1 -
> Documentation/features/locking/lockdep/arch-support.txt | 1 -
> Documentation/features/locking/queued-rwlocks/arch-support.txt | 1 -
> Documentation/features/locking/queued-spinlocks/arch-support.txt | 1 -
> Documentation/features/perf/kprobes-event/arch-support.txt | 1 -
> Documentation/features/perf/perf-regs/arch-support.txt | 1 -
> Documentation/features/perf/perf-stackdump/arch-support.txt | 1 -
> Documentation/features/sched/membarrier-sync-core/arch-support.txt | 1 -
> Documentation/features/sched/numa-balancing/arch-support.txt | 1 -
> Documentation/features/seccomp/seccomp-filter/arch-support.txt | 1 -
> Documentation/features/time/arch-tick-broadcast/arch-support.txt | 1 -
> Documentation/features/time/clockevents/arch-support.txt | 1 -
> Documentation/features/time/context-tracking/arch-support.txt | 1 -
> Documentation/features/time/irq-time-acct/arch-support.txt | 1 -
> Documentation/features/time/virt-cpuacct/arch-support.txt | 1 -
> Documentation/features/vm/ELF-ASLR/arch-support.txt | 1 -
> Documentation/features/vm/PG_uncached/arch-support.txt | 1 -
> Documentation/features/vm/THP/arch-support.txt | 1 -
> Documentation/features/vm/TLB/arch-support.txt | 1 -
> Documentation/features/vm/huge-vmap/arch-support.txt | 1 -
> Documentation/features/vm/ioremap_prot/arch-support.txt | 1 -
> Documentation/features/vm/pte_special/arch-support.txt | 1 -
> Documentation/ia64/aliasing.rst | 246 ---
> Documentation/ia64/efirtc.rst | 144 --
> Documentation/ia64/err_inject.rst | 1067 ---------
> Documentation/ia64/features.rst | 3 -
> Documentation/ia64/fsys.rst | 303 ---
> Documentation/ia64/ia64.rst | 49 -
> Documentation/ia64/index.rst | 19 -
> Documentation/ia64/irq-redir.rst | 80 -
> Documentation/ia64/mca.rst | 198 --
> Documentation/ia64/serial.rst | 165 --
> Documentation/kbuild/makefiles.rst | 2 +-
> Documentation/networking/device_drivers/ethernet/neterion/s2io.rst | 4 +-
> Documentation/scheduler/sched-arch.rst | 4 +-
> Documentation/trace/kprobes.rst | 1 -
> Documentation/translations/zh_CN/arch.rst | 1 -
> Documentation/translations/zh_CN/core-api/cpu_hotplug.rst | 6 -
> Documentation/translations/zh_CN/scheduler/sched-arch.rst | 5 +-
> MAINTAINERS | 11 -
> Makefile | 4 +-
> arch/Kconfig | 1 -
> arch/ia64/Kbuild | 3 -
> arch/ia64/Kconfig | 410 ----
> arch/ia64/Kconfig.debug | 55 -
> arch/ia64/Makefile | 82 -
> arch/ia64/configs/bigsur_defconfig | 102 -
> arch/ia64/configs/generic_defconfig | 206 --
> arch/ia64/configs/gensparse_defconfig | 184 --
> arch/ia64/configs/tiger_defconfig | 169 --
> arch/ia64/configs/zx1_defconfig | 148 --
> arch/ia64/hp/common/Makefile | 10 -
> arch/ia64/hp/common/aml_nfw.c | 232 --
> arch/ia64/hp/common/sba_iommu.c | 2147 ------------------
> arch/ia64/include/asm/Kbuild | 5 -
> arch/ia64/include/asm/acenv.h | 49 -
> arch/ia64/include/asm/acpi-ext.h | 17 -
> arch/ia64/include/asm/acpi.h | 110 -
> arch/ia64/include/asm/agp.h | 27 -
> arch/ia64/include/asm/asm-offsets.h | 1 -
> arch/ia64/include/asm/asm-prototypes.h | 30 -
> arch/ia64/include/asm/asmmacro.h | 136 --
> arch/ia64/include/asm/atomic.h | 223 --
> arch/ia64/include/asm/barrier.h | 79 -
> arch/ia64/include/asm/bitops.h | 453 ----
> arch/ia64/include/asm/bug.h | 19 -
> arch/ia64/include/asm/bugs.h | 20 -
> arch/ia64/include/asm/cache.h | 30 -
> arch/ia64/include/asm/cacheflush.h | 33 -
> arch/ia64/include/asm/checksum.h | 63 -
> arch/ia64/include/asm/clocksource.h | 11 -
> arch/ia64/include/asm/cmpxchg.h | 16 -
> arch/ia64/include/asm/cpu.h | 23 -
> arch/ia64/include/asm/cputime.h | 21 -
> arch/ia64/include/asm/current.h | 18 -
> arch/ia64/include/asm/cyclone.h | 16 -
> arch/ia64/include/asm/delay.h | 89 -
> arch/ia64/include/asm/device.h | 14 -
> arch/ia64/include/asm/div64.h | 1 -
> arch/ia64/include/asm/dma-mapping.h | 16 -
> arch/ia64/include/asm/dma.h | 17 -
> arch/ia64/include/asm/dmi.h | 15 -
> arch/ia64/include/asm/early_ioremap.h | 11 -
> arch/ia64/include/asm/efi.h | 13 -
> arch/ia64/include/asm/elf.h | 233 --
> arch/ia64/include/asm/emergency-restart.h | 6 -
> arch/ia64/include/asm/esi.h | 30 -
> arch/ia64/include/asm/exception.h | 23 -
> arch/ia64/include/asm/export.h | 3 -
> arch/ia64/include/asm/extable.h | 12 -
> arch/ia64/include/asm/fb.h | 24 -
> arch/ia64/include/asm/fpswa.h | 74 -
> arch/ia64/include/asm/ftrace.h | 28 -
> arch/ia64/include/asm/futex.h | 109 -
> arch/ia64/include/asm/gcc_intrin.h | 13 -
> arch/ia64/include/asm/hardirq.h | 27 -
> arch/ia64/include/asm/hugetlb.h | 34 -
> arch/ia64/include/asm/hw_irq.h | 167 --
> arch/ia64/include/asm/idle.h | 8 -
> arch/ia64/include/asm/intrinsics.h | 13 -
> arch/ia64/include/asm/io.h | 274 ---
> arch/ia64/include/asm/iommu.h | 22 -
> arch/ia64/include/asm/iosapic.h | 106 -
> arch/ia64/include/asm/irq.h | 37 -
> arch/ia64/include/asm/irq_regs.h | 1 -
> arch/ia64/include/asm/irq_remapping.h | 5 -
> arch/ia64/include/asm/irqflags.h | 95 -
> arch/ia64/include/asm/kdebug.h | 45 -
> arch/ia64/include/asm/kexec.h | 46 -
> arch/ia64/include/asm/kprobes.h | 116 -
> arch/ia64/include/asm/kregs.h | 166 --
> arch/ia64/include/asm/libata-portmap.h | 9 -
> arch/ia64/include/asm/linkage.h | 19 -
> arch/ia64/include/asm/local.h | 1 -
> arch/ia64/include/asm/mca.h | 185 --
> arch/ia64/include/asm/mca_asm.h | 245 ---
> arch/ia64/include/asm/meminit.h | 59 -
> arch/ia64/include/asm/mman.h | 18 -
> arch/ia64/include/asm/mmiowb.h | 17 -
> arch/ia64/include/asm/mmu.h | 14 -
> arch/ia64/include/asm/mmu_context.h | 194 --
> arch/ia64/include/asm/mmzone.h | 35 -
> arch/ia64/include/asm/module.h | 35 -
> arch/ia64/include/asm/module.lds.h | 14 -
> arch/ia64/include/asm/msidef.h | 43 -
> arch/ia64/include/asm/native/inst.h | 119 -
> arch/ia64/include/asm/native/irq.h | 20 -
> arch/ia64/include/asm/native/patchlist.h | 24 -
> arch/ia64/include/asm/nodedata.h | 63 -
> arch/ia64/include/asm/numa.h | 83 -
> arch/ia64/include/asm/page.h | 214 --
> arch/ia64/include/asm/pal.h | 1827 ---------------
> arch/ia64/include/asm/param.h | 18 -
> arch/ia64/include/asm/parport.h | 20 -
> arch/ia64/include/asm/patch.h | 28 -
> arch/ia64/include/asm/pci.h | 66 -
> arch/ia64/include/asm/percpu.h | 53 -
> arch/ia64/include/asm/pgalloc.h | 64 -
> arch/ia64/include/asm/pgtable.h | 520 -----
> arch/ia64/include/asm/processor.h | 663 ------
> arch/ia64/include/asm/ptrace.h | 146 --
> arch/ia64/include/asm/sal.h | 919 --------
> arch/ia64/include/asm/sections.h | 33 -
> arch/ia64/include/asm/serial.h | 17 -
> arch/ia64/include/asm/shmparam.h | 13 -
> arch/ia64/include/asm/signal.h | 33 -
> arch/ia64/include/asm/smp.h | 103 -
> arch/ia64/include/asm/sn/intr.h | 15 -
> arch/ia64/include/asm/sn/sn_sal.h | 124 --
> arch/ia64/include/asm/sparsemem.h | 28 -
> arch/ia64/include/asm/spinlock.h | 265 ---
> arch/ia64/include/asm/spinlock_types.h | 22 -
> arch/ia64/include/asm/string.h | 22 -
> arch/ia64/include/asm/switch_to.h | 71 -
> arch/ia64/include/asm/syscall.h | 65 -
> arch/ia64/include/asm/thread_info.h | 131 --
> arch/ia64/include/asm/timex.h | 47 -
> arch/ia64/include/asm/tlb.h | 50 -
> arch/ia64/include/asm/tlbflush.h | 128 --
> arch/ia64/include/asm/topology.h | 56 -
> arch/ia64/include/asm/types.h | 32 -
> arch/ia64/include/asm/uaccess.h | 265 ---
> arch/ia64/include/asm/uncached.h | 9 -
> arch/ia64/include/asm/unistd.h | 38 -
> arch/ia64/include/asm/unwind.h | 234 --
> arch/ia64/include/asm/user.h | 53 -
> arch/ia64/include/asm/ustack.h | 12 -
> arch/ia64/include/asm/uv/uv.h | 30 -
> arch/ia64/include/asm/uv/uv_hub.h | 315 ---
> arch/ia64/include/asm/uv/uv_mmrs.h | 825 -------
> arch/ia64/include/asm/vermagic.h | 15 -
> arch/ia64/include/asm/vga.h | 26 -
> arch/ia64/include/asm/vmalloc.h | 4 -
> arch/ia64/include/asm/xor.h | 30 -
> arch/ia64/include/asm/xtp.h | 46 -
> arch/ia64/include/uapi/asm/Kbuild | 2 -
> arch/ia64/include/uapi/asm/auxvec.h | 14 -
> arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
> arch/ia64/include/uapi/asm/break.h | 23 -
> arch/ia64/include/uapi/asm/byteorder.h | 7 -
> arch/ia64/include/uapi/asm/cmpxchg.h | 159 --
> arch/ia64/include/uapi/asm/fcntl.h | 15 -
> arch/ia64/include/uapi/asm/fpu.h | 67 -
> arch/ia64/include/uapi/asm/gcc_intrin.h | 619 ------
> arch/ia64/include/uapi/asm/ia64regs.h | 101 -
> arch/ia64/include/uapi/asm/intel_intrin.h | 162 --
> arch/ia64/include/uapi/asm/intrinsics.h | 86 -
> arch/ia64/include/uapi/asm/mman.h | 17 -
> arch/ia64/include/uapi/asm/param.h | 30 -
> arch/ia64/include/uapi/asm/posix_types.h | 9 -
> arch/ia64/include/uapi/asm/ptrace.h | 248 ---
> arch/ia64/include/uapi/asm/ptrace_offsets.h | 269 ---
> arch/ia64/include/uapi/asm/resource.h | 8 -
> arch/ia64/include/uapi/asm/rse.h | 67 -
> arch/ia64/include/uapi/asm/setup.h | 25 -
> arch/ia64/include/uapi/asm/sigcontext.h | 71 -
> arch/ia64/include/uapi/asm/siginfo.h | 28 -
> arch/ia64/include/uapi/asm/signal.h | 98 -
> arch/ia64/include/uapi/asm/stat.h | 52 -
> arch/ia64/include/uapi/asm/statfs.h | 21 -
> arch/ia64/include/uapi/asm/swab.h | 35 -
> arch/ia64/include/uapi/asm/types.h | 32 -
> arch/ia64/include/uapi/asm/ucontext.h | 13 -
> arch/ia64/include/uapi/asm/unistd.h | 22 -
> arch/ia64/include/uapi/asm/ustack.h | 13 -
> arch/ia64/install.sh | 30 -
> arch/ia64/kernel/.gitignore | 3 -
> arch/ia64/kernel/Makefile | 46 -
> arch/ia64/kernel/Makefile.gate | 29 -
> arch/ia64/kernel/acpi-ext.c | 101 -
> arch/ia64/kernel/acpi.c | 911 --------
> arch/ia64/kernel/asm-offsets.c | 289 ---
> arch/ia64/kernel/audit.c | 63 -
> arch/ia64/kernel/brl_emu.c | 217 --
> arch/ia64/kernel/crash.c | 266 ---
> arch/ia64/kernel/crash_dump.c | 27 -
> arch/ia64/kernel/cyclone.c | 125 --
> arch/ia64/kernel/dma-mapping.c | 9 -
> arch/ia64/kernel/efi.c | 1360 ------------
> arch/ia64/kernel/efi_stub.S | 87 -
> arch/ia64/kernel/elfcore.c | 77 -
> arch/ia64/kernel/entry.S | 1428 ------------
> arch/ia64/kernel/entry.h | 83 -
> arch/ia64/kernel/err_inject.c | 273 ---
> arch/ia64/kernel/esi.c | 193 --
> arch/ia64/kernel/esi_stub.S | 99 -
> arch/ia64/kernel/fsys.S | 837 -------
> arch/ia64/kernel/fsyscall_gtod_data.h | 30 -
> arch/ia64/kernel/ftrace.c | 196 --
> arch/ia64/kernel/gate-data.S | 3 -
> arch/ia64/kernel/gate.S | 380 ----
> arch/ia64/kernel/gate.lds.S | 108 -
> arch/ia64/kernel/head.S | 1168 ----------
> arch/ia64/kernel/iosapic.c | 1137 ----------
> arch/ia64/kernel/irq.c | 181 --
> arch/ia64/kernel/irq.h | 3 -
> arch/ia64/kernel/irq_ia64.c | 645 ------
> arch/ia64/kernel/irq_lsapic.c | 45 -
> arch/ia64/kernel/ivt.S | 1689 --------------
> arch/ia64/kernel/kprobes.c | 911 --------
> arch/ia64/kernel/machine_kexec.c | 163 --
> arch/ia64/kernel/mca.c | 2111 ------------------
> arch/ia64/kernel/mca_asm.S | 1123 ----------
> arch/ia64/kernel/mca_drv.c | 796 -------
> arch/ia64/kernel/mca_drv.h | 123 --
> arch/ia64/kernel/mca_drv_asm.S | 56 -
> arch/ia64/kernel/minstate.h | 251 ---
> arch/ia64/kernel/module.c | 955 --------
> arch/ia64/kernel/msi_ia64.c | 198 --
> arch/ia64/kernel/numa.c | 73 -
> arch/ia64/kernel/pal.S | 306 ---
> arch/ia64/kernel/palinfo.c | 942 --------
> arch/ia64/kernel/patch.c | 237 --
> arch/ia64/kernel/pci-dma.c | 33 -
> arch/ia64/kernel/perfmon_itanium.h | 116 -
> arch/ia64/kernel/process.c | 610 -----
> arch/ia64/kernel/ptrace.c | 2012 -----------------
> arch/ia64/kernel/relocate_kernel.S | 321 ---
> arch/ia64/kernel/sal.c | 400 ----
> arch/ia64/kernel/salinfo.c | 646 ------
> arch/ia64/kernel/setup.c | 1082 ---------
> arch/ia64/kernel/sigframe.h | 26 -
> arch/ia64/kernel/signal.c | 412 ----
> arch/ia64/kernel/smp.c | 335 ---
> arch/ia64/kernel/smpboot.c | 839 -------
> arch/ia64/kernel/stacktrace.c | 40 -
> arch/ia64/kernel/sys_ia64.c | 197 --
> arch/ia64/kernel/syscalls/Makefile | 32 -
> arch/ia64/kernel/syscalls/syscall.tbl | 373 ----
> arch/ia64/kernel/time.c | 462 ----
> arch/ia64/kernel/topology.c | 410 ----
> arch/ia64/kernel/traps.c | 612 ------
> arch/ia64/kernel/unaligned.c | 1560 -------------
> arch/ia64/kernel/uncached.c | 273 ---
> arch/ia64/kernel/unwind.c | 2320 --------------------
> arch/ia64/kernel/unwind_decoder.c | 460 ----
> arch/ia64/kernel/unwind_i.h | 165 --
> arch/ia64/kernel/vmlinux.lds.S | 225 --
> arch/ia64/lib/Makefile | 48 -
> arch/ia64/lib/checksum.c | 102 -
> arch/ia64/lib/clear_page.S | 79 -
> arch/ia64/lib/clear_user.S | 212 --
> arch/ia64/lib/copy_page.S | 101 -
> arch/ia64/lib/copy_page_mck.S | 188 --
> arch/ia64/lib/copy_user.S | 613 ------
> arch/ia64/lib/csum_partial_copy.c | 98 -
> arch/ia64/lib/do_csum.S | 324 ---
> arch/ia64/lib/flush.S | 120 -
> arch/ia64/lib/idiv32.S | 86 -
> arch/ia64/lib/idiv64.S | 83 -
> arch/ia64/lib/io.c | 51 -
> arch/ia64/lib/ip_fast_csum.S | 148 --
> arch/ia64/lib/memcpy.S | 304 ---
> arch/ia64/lib/memcpy_mck.S | 659 ------
> arch/ia64/lib/memset.S | 365 ---
> arch/ia64/lib/strlen.S | 195 --
> arch/ia64/lib/strncpy_from_user.S | 47 -
> arch/ia64/lib/strnlen_user.S | 48 -
> arch/ia64/lib/xor.S | 181 --
> arch/ia64/mm/Makefile | 11 -
> arch/ia64/mm/contig.c | 208 --
> arch/ia64/mm/discontig.c | 635 ------
> arch/ia64/mm/extable.c | 24 -
> arch/ia64/mm/fault.c | 272 ---
> arch/ia64/mm/hugetlbpage.c | 186 --
> arch/ia64/mm/init.c | 518 -----
> arch/ia64/mm/ioremap.c | 123 --
> arch/ia64/mm/numa.c | 80 -
> arch/ia64/mm/tlb.c | 591 -----
> arch/ia64/pci/Makefile | 5 -
> arch/ia64/pci/fixup.c | 80 -
> arch/ia64/pci/pci.c | 576 -----
> arch/ia64/scripts/check-gas | 16 -
> arch/ia64/scripts/check-gas-asm.S | 2 -
> arch/ia64/scripts/check-model.c | 1 -
> arch/ia64/scripts/check-segrel.S | 5 -
> arch/ia64/scripts/check-segrel.lds | 13 -
> arch/ia64/scripts/check-serialize.S | 2 -
> arch/ia64/scripts/check-text-align.S | 7 -
> arch/ia64/scripts/toolchain-flags | 54 -
> arch/ia64/scripts/unwcheck.py | 65 -
> arch/ia64/uv/Makefile | 12 -
> arch/ia64/uv/kernel/Makefile | 12 -
> arch/ia64/uv/kernel/setup.c | 120 -
> drivers/acpi/Kconfig | 6 +-
> drivers/acpi/numa/Kconfig | 4 +-
> drivers/acpi/osl.c | 2 +-
> drivers/char/Kconfig | 4 +-
> drivers/char/Makefile | 1 -
> drivers/char/agp/Kconfig | 16 +-
> drivers/char/agp/Makefile | 2 -
> drivers/char/agp/hp-agp.c | 550 -----
> drivers/char/agp/i460-agp.c | 659 ------
> drivers/char/hpet.c | 30 -
> drivers/char/hw_random/Kconfig | 2 +-
> drivers/char/mem.c | 12 -
> drivers/char/mspec.c | 295 ---
> drivers/cpufreq/Kconfig | 11 -
> drivers/cpufreq/Makefile | 1 -
> drivers/cpufreq/ia64-acpi-cpufreq.c | 353 ---
> drivers/firmware/Kconfig | 24 -
> drivers/firmware/Makefile | 1 -
> drivers/firmware/efi/Kconfig | 6 +-
> drivers/firmware/efi/efi.c | 13 +-
> drivers/firmware/pcdp.c | 135 --
> drivers/firmware/pcdp.h | 108 -
> drivers/gpu/drm/drm_ioc32.c | 4 +-
> drivers/input/serio/i8042.h | 2 +-
> drivers/iommu/Kconfig | 4 +-
> drivers/iommu/intel/Kconfig | 2 +-
> drivers/media/cec/platform/Kconfig | 2 +-
> drivers/misc/Kconfig | 2 +-
> drivers/misc/sgi-gru/gru.h | 4 +-
> drivers/misc/sgi-gru/gru_instructions.h | 12 +-
> drivers/misc/sgi-gru/grufile.c | 72 -
> drivers/misc/sgi-gru/gruhandles.c | 6 -
> drivers/misc/sgi-gru/grumain.c | 4 -
> drivers/misc/sgi-xp/xp.h | 2 +-
> drivers/misc/sgi-xp/xp_uv.c | 24 -
> drivers/misc/sgi-xp/xpc_main.c | 31 -
> drivers/misc/sgi-xp/xpc_uv.c | 85 -
> drivers/net/ethernet/broadcom/tg3.c | 2 +-
> drivers/net/ethernet/brocade/bna/bnad.h | 1 -
> drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c | 2 -
> drivers/pci/vgaarb.c | 2 +-
> drivers/tty/serial/8250/Kconfig | 2 +-
> drivers/tty/vt/keyboard.c | 2 +-
> drivers/video/fbdev/Kconfig | 2 +-
> drivers/watchdog/Kconfig | 2 +-
> fs/Kconfig | 2 +-
> fs/afs/main.c | 2 -
> fs/xfs/xfs_ioctl32.h | 2 +-
> include/linux/acpi.h | 9 +-
> include/linux/efi.h | 7 -
> include/linux/mm.h | 2 -
> include/linux/moduleparam.h | 2 +-
> include/linux/raid/pq.h | 2 -
> include/linux/sched/signal.h | 17 +-
> include/trace/events/mmflags.h | 2 +-
> init/Kconfig | 2 +-
> kernel/cpu.c | 3 -
> kernel/fork.c | 2 +-
> kernel/sched/core.c | 29 +-
> kernel/signal.c | 25 +-
> kernel/sysctl.c | 9 -
> lib/Kconfig.debug | 2 +-
> lib/decompress_unxz.c | 3 -
> lib/raid6/Makefile | 4 +-
> lib/raid6/algos.c | 4 -
> lib/xz/Kconfig | 5 -
> mm/mmap.c | 6 +-
> scripts/headers_install.sh | 1 -
> tools/arch/ia64/include/asm/barrier.h | 59 -
> tools/arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
> tools/arch/ia64/include/uapi/asm/mman.h | 7 -
> usr/include/Makefile | 6 -
> 427 files changed, 74 insertions(+), 65400 deletions(-)
> delete mode 100644 Documentation/ia64/aliasing.rst
> delete mode 100644 Documentation/ia64/efirtc.rst
> delete mode 100644 Documentation/ia64/err_inject.rst
> delete mode 100644 Documentation/ia64/features.rst
> delete mode 100644 Documentation/ia64/fsys.rst
> delete mode 100644 Documentation/ia64/ia64.rst
> delete mode 100644 Documentation/ia64/index.rst
> delete mode 100644 Documentation/ia64/irq-redir.rst
> delete mode 100644 Documentation/ia64/mca.rst
> delete mode 100644 Documentation/ia64/serial.rst
> delete mode 100644 arch/ia64/Kbuild
> delete mode 100644 arch/ia64/Kconfig
> delete mode 100644 arch/ia64/Kconfig.debug
> delete mode 100644 arch/ia64/Makefile
> delete mode 100644 arch/ia64/configs/bigsur_defconfig
> delete mode 100644 arch/ia64/configs/generic_defconfig
> delete mode 100644 arch/ia64/configs/gensparse_defconfig
> delete mode 100644 arch/ia64/configs/tiger_defconfig
> delete mode 100644 arch/ia64/configs/zx1_defconfig
> delete mode 100644 arch/ia64/hp/common/Makefile
> delete mode 100644 arch/ia64/hp/common/aml_nfw.c
> delete mode 100644 arch/ia64/hp/common/sba_iommu.c
> delete mode 100644 arch/ia64/include/asm/Kbuild
> delete mode 100644 arch/ia64/include/asm/acenv.h
> delete mode 100644 arch/ia64/include/asm/acpi-ext.h
> delete mode 100644 arch/ia64/include/asm/acpi.h
> delete mode 100644 arch/ia64/include/asm/agp.h
> delete mode 100644 arch/ia64/include/asm/asm-offsets.h
> delete mode 100644 arch/ia64/include/asm/asm-prototypes.h
> delete mode 100644 arch/ia64/include/asm/asmmacro.h
> delete mode 100644 arch/ia64/include/asm/atomic.h
> delete mode 100644 arch/ia64/include/asm/barrier.h
> delete mode 100644 arch/ia64/include/asm/bitops.h
> delete mode 100644 arch/ia64/include/asm/bug.h
> delete mode 100644 arch/ia64/include/asm/bugs.h
> delete mode 100644 arch/ia64/include/asm/cache.h
> delete mode 100644 arch/ia64/include/asm/cacheflush.h
> delete mode 100644 arch/ia64/include/asm/checksum.h
> delete mode 100644 arch/ia64/include/asm/clocksource.h
> delete mode 100644 arch/ia64/include/asm/cmpxchg.h
> delete mode 100644 arch/ia64/include/asm/cpu.h
> delete mode 100644 arch/ia64/include/asm/cputime.h
> delete mode 100644 arch/ia64/include/asm/current.h
> delete mode 100644 arch/ia64/include/asm/cyclone.h
> delete mode 100644 arch/ia64/include/asm/delay.h
> delete mode 100644 arch/ia64/include/asm/device.h
> delete mode 100644 arch/ia64/include/asm/div64.h
> delete mode 100644 arch/ia64/include/asm/dma-mapping.h
> delete mode 100644 arch/ia64/include/asm/dma.h
> delete mode 100644 arch/ia64/include/asm/dmi.h
> delete mode 100644 arch/ia64/include/asm/early_ioremap.h
> delete mode 100644 arch/ia64/include/asm/efi.h
> delete mode 100644 arch/ia64/include/asm/elf.h
> delete mode 100644 arch/ia64/include/asm/emergency-restart.h
> delete mode 100644 arch/ia64/include/asm/esi.h
> delete mode 100644 arch/ia64/include/asm/exception.h
> delete mode 100644 arch/ia64/include/asm/export.h
> delete mode 100644 arch/ia64/include/asm/extable.h
> delete mode 100644 arch/ia64/include/asm/fb.h
> delete mode 100644 arch/ia64/include/asm/fpswa.h
> delete mode 100644 arch/ia64/include/asm/ftrace.h
> delete mode 100644 arch/ia64/include/asm/futex.h
> delete mode 100644 arch/ia64/include/asm/gcc_intrin.h
> delete mode 100644 arch/ia64/include/asm/hardirq.h
> delete mode 100644 arch/ia64/include/asm/hugetlb.h
> delete mode 100644 arch/ia64/include/asm/hw_irq.h
> delete mode 100644 arch/ia64/include/asm/idle.h
> delete mode 100644 arch/ia64/include/asm/intrinsics.h
> delete mode 100644 arch/ia64/include/asm/io.h
> delete mode 100644 arch/ia64/include/asm/iommu.h
> delete mode 100644 arch/ia64/include/asm/iosapic.h
> delete mode 100644 arch/ia64/include/asm/irq.h
> delete mode 100644 arch/ia64/include/asm/irq_regs.h
> delete mode 100644 arch/ia64/include/asm/irq_remapping.h
> delete mode 100644 arch/ia64/include/asm/irqflags.h
> delete mode 100644 arch/ia64/include/asm/kdebug.h
> delete mode 100644 arch/ia64/include/asm/kexec.h
> delete mode 100644 arch/ia64/include/asm/kprobes.h
> delete mode 100644 arch/ia64/include/asm/kregs.h
> delete mode 100644 arch/ia64/include/asm/libata-portmap.h
> delete mode 100644 arch/ia64/include/asm/linkage.h
> delete mode 100644 arch/ia64/include/asm/local.h
> delete mode 100644 arch/ia64/include/asm/mca.h
> delete mode 100644 arch/ia64/include/asm/mca_asm.h
> delete mode 100644 arch/ia64/include/asm/meminit.h
> delete mode 100644 arch/ia64/include/asm/mman.h
> delete mode 100644 arch/ia64/include/asm/mmiowb.h
> delete mode 100644 arch/ia64/include/asm/mmu.h
> delete mode 100644 arch/ia64/include/asm/mmu_context.h
> delete mode 100644 arch/ia64/include/asm/mmzone.h
> delete mode 100644 arch/ia64/include/asm/module.h
> delete mode 100644 arch/ia64/include/asm/module.lds.h
> delete mode 100644 arch/ia64/include/asm/msidef.h
> delete mode 100644 arch/ia64/include/asm/native/inst.h
> delete mode 100644 arch/ia64/include/asm/native/irq.h
> delete mode 100644 arch/ia64/include/asm/native/patchlist.h
> delete mode 100644 arch/ia64/include/asm/nodedata.h
> delete mode 100644 arch/ia64/include/asm/numa.h
> delete mode 100644 arch/ia64/include/asm/page.h
> delete mode 100644 arch/ia64/include/asm/pal.h
> delete mode 100644 arch/ia64/include/asm/param.h
> delete mode 100644 arch/ia64/include/asm/parport.h
> delete mode 100644 arch/ia64/include/asm/patch.h
> delete mode 100644 arch/ia64/include/asm/pci.h
> delete mode 100644 arch/ia64/include/asm/percpu.h
> delete mode 100644 arch/ia64/include/asm/pgalloc.h
> delete mode 100644 arch/ia64/include/asm/pgtable.h
> delete mode 100644 arch/ia64/include/asm/processor.h
> delete mode 100644 arch/ia64/include/asm/ptrace.h
> delete mode 100644 arch/ia64/include/asm/sal.h
> delete mode 100644 arch/ia64/include/asm/sections.h
> delete mode 100644 arch/ia64/include/asm/serial.h
> delete mode 100644 arch/ia64/include/asm/shmparam.h
> delete mode 100644 arch/ia64/include/asm/signal.h
> delete mode 100644 arch/ia64/include/asm/smp.h
> delete mode 100644 arch/ia64/include/asm/sn/intr.h
> delete mode 100644 arch/ia64/include/asm/sn/sn_sal.h
> delete mode 100644 arch/ia64/include/asm/sparsemem.h
> delete mode 100644 arch/ia64/include/asm/spinlock.h
> delete mode 100644 arch/ia64/include/asm/spinlock_types.h
> delete mode 100644 arch/ia64/include/asm/string.h
> delete mode 100644 arch/ia64/include/asm/switch_to.h
> delete mode 100644 arch/ia64/include/asm/syscall.h
> delete mode 100644 arch/ia64/include/asm/thread_info.h
> delete mode 100644 arch/ia64/include/asm/timex.h
> delete mode 100644 arch/ia64/include/asm/tlb.h
> delete mode 100644 arch/ia64/include/asm/tlbflush.h
> delete mode 100644 arch/ia64/include/asm/topology.h
> delete mode 100644 arch/ia64/include/asm/types.h
> delete mode 100644 arch/ia64/include/asm/uaccess.h
> delete mode 100644 arch/ia64/include/asm/uncached.h
> delete mode 100644 arch/ia64/include/asm/unistd.h
> delete mode 100644 arch/ia64/include/asm/unwind.h
> delete mode 100644 arch/ia64/include/asm/user.h
> delete mode 100644 arch/ia64/include/asm/ustack.h
> delete mode 100644 arch/ia64/include/asm/uv/uv.h
> delete mode 100644 arch/ia64/include/asm/uv/uv_hub.h
> delete mode 100644 arch/ia64/include/asm/uv/uv_mmrs.h
> delete mode 100644 arch/ia64/include/asm/vermagic.h
> delete mode 100644 arch/ia64/include/asm/vga.h
> delete mode 100644 arch/ia64/include/asm/vmalloc.h
> delete mode 100644 arch/ia64/include/asm/xor.h
> delete mode 100644 arch/ia64/include/asm/xtp.h
> delete mode 100644 arch/ia64/include/uapi/asm/Kbuild
> delete mode 100644 arch/ia64/include/uapi/asm/auxvec.h
> delete mode 100644 arch/ia64/include/uapi/asm/bitsperlong.h
> delete mode 100644 arch/ia64/include/uapi/asm/break.h
> delete mode 100644 arch/ia64/include/uapi/asm/byteorder.h
> delete mode 100644 arch/ia64/include/uapi/asm/cmpxchg.h
> delete mode 100644 arch/ia64/include/uapi/asm/fcntl.h
> delete mode 100644 arch/ia64/include/uapi/asm/fpu.h
> delete mode 100644 arch/ia64/include/uapi/asm/gcc_intrin.h
> delete mode 100644 arch/ia64/include/uapi/asm/ia64regs.h
> delete mode 100644 arch/ia64/include/uapi/asm/intel_intrin.h
> delete mode 100644 arch/ia64/include/uapi/asm/intrinsics.h
> delete mode 100644 arch/ia64/include/uapi/asm/mman.h
> delete mode 100644 arch/ia64/include/uapi/asm/param.h
> delete mode 100644 arch/ia64/include/uapi/asm/posix_types.h
> delete mode 100644 arch/ia64/include/uapi/asm/ptrace.h
> delete mode 100644 arch/ia64/include/uapi/asm/ptrace_offsets.h
> delete mode 100644 arch/ia64/include/uapi/asm/resource.h
> delete mode 100644 arch/ia64/include/uapi/asm/rse.h
> delete mode 100644 arch/ia64/include/uapi/asm/setup.h
> delete mode 100644 arch/ia64/include/uapi/asm/sigcontext.h
> delete mode 100644 arch/ia64/include/uapi/asm/siginfo.h
> delete mode 100644 arch/ia64/include/uapi/asm/signal.h
> delete mode 100644 arch/ia64/include/uapi/asm/stat.h
> delete mode 100644 arch/ia64/include/uapi/asm/statfs.h
> delete mode 100644 arch/ia64/include/uapi/asm/swab.h
> delete mode 100644 arch/ia64/include/uapi/asm/types.h
> delete mode 100644 arch/ia64/include/uapi/asm/ucontext.h
> delete mode 100644 arch/ia64/include/uapi/asm/unistd.h
> delete mode 100644 arch/ia64/include/uapi/asm/ustack.h
> delete mode 100755 arch/ia64/install.sh
> delete mode 100644 arch/ia64/kernel/.gitignore
> delete mode 100644 arch/ia64/kernel/Makefile
> delete mode 100644 arch/ia64/kernel/Makefile.gate
> delete mode 100644 arch/ia64/kernel/acpi-ext.c
> delete mode 100644 arch/ia64/kernel/acpi.c
> delete mode 100644 arch/ia64/kernel/asm-offsets.c
> delete mode 100644 arch/ia64/kernel/audit.c
> delete mode 100644 arch/ia64/kernel/brl_emu.c
> delete mode 100644 arch/ia64/kernel/crash.c
> delete mode 100644 arch/ia64/kernel/crash_dump.c
> delete mode 100644 arch/ia64/kernel/cyclone.c
> delete mode 100644 arch/ia64/kernel/dma-mapping.c
> delete mode 100644 arch/ia64/kernel/efi.c
> delete mode 100644 arch/ia64/kernel/efi_stub.S
> delete mode 100644 arch/ia64/kernel/elfcore.c
> delete mode 100644 arch/ia64/kernel/entry.S
> delete mode 100644 arch/ia64/kernel/entry.h
> delete mode 100644 arch/ia64/kernel/err_inject.c
> delete mode 100644 arch/ia64/kernel/esi.c
> delete mode 100644 arch/ia64/kernel/esi_stub.S
> delete mode 100644 arch/ia64/kernel/fsys.S
> delete mode 100644 arch/ia64/kernel/fsyscall_gtod_data.h
> delete mode 100644 arch/ia64/kernel/ftrace.c
> delete mode 100644 arch/ia64/kernel/gate-data.S
> delete mode 100644 arch/ia64/kernel/gate.S
> delete mode 100644 arch/ia64/kernel/gate.lds.S
> delete mode 100644 arch/ia64/kernel/head.S
> delete mode 100644 arch/ia64/kernel/iosapic.c
> delete mode 100644 arch/ia64/kernel/irq.c
> delete mode 100644 arch/ia64/kernel/irq.h
> delete mode 100644 arch/ia64/kernel/irq_ia64.c
> delete mode 100644 arch/ia64/kernel/irq_lsapic.c
> delete mode 100644 arch/ia64/kernel/ivt.S
> delete mode 100644 arch/ia64/kernel/kprobes.c
> delete mode 100644 arch/ia64/kernel/machine_kexec.c
> delete mode 100644 arch/ia64/kernel/mca.c
> delete mode 100644 arch/ia64/kernel/mca_asm.S
> delete mode 100644 arch/ia64/kernel/mca_drv.c
> delete mode 100644 arch/ia64/kernel/mca_drv.h
> delete mode 100644 arch/ia64/kernel/mca_drv_asm.S
> delete mode 100644 arch/ia64/kernel/minstate.h
> delete mode 100644 arch/ia64/kernel/module.c
> delete mode 100644 arch/ia64/kernel/msi_ia64.c
> delete mode 100644 arch/ia64/kernel/numa.c
> delete mode 100644 arch/ia64/kernel/pal.S
> delete mode 100644 arch/ia64/kernel/palinfo.c
> delete mode 100644 arch/ia64/kernel/patch.c
> delete mode 100644 arch/ia64/kernel/pci-dma.c
> delete mode 100644 arch/ia64/kernel/perfmon_itanium.h
> delete mode 100644 arch/ia64/kernel/process.c
> delete mode 100644 arch/ia64/kernel/ptrace.c
> delete mode 100644 arch/ia64/kernel/relocate_kernel.S
> delete mode 100644 arch/ia64/kernel/sal.c
> delete mode 100644 arch/ia64/kernel/salinfo.c
> delete mode 100644 arch/ia64/kernel/setup.c
> delete mode 100644 arch/ia64/kernel/sigframe.h
> delete mode 100644 arch/ia64/kernel/signal.c
> delete mode 100644 arch/ia64/kernel/smp.c
> delete mode 100644 arch/ia64/kernel/smpboot.c
> delete mode 100644 arch/ia64/kernel/stacktrace.c
> delete mode 100644 arch/ia64/kernel/sys_ia64.c
> delete mode 100644 arch/ia64/kernel/syscalls/Makefile
> delete mode 100644 arch/ia64/kernel/syscalls/syscall.tbl
> delete mode 100644 arch/ia64/kernel/time.c
> delete mode 100644 arch/ia64/kernel/topology.c
> delete mode 100644 arch/ia64/kernel/traps.c
> delete mode 100644 arch/ia64/kernel/unaligned.c
> delete mode 100644 arch/ia64/kernel/uncached.c
> delete mode 100644 arch/ia64/kernel/unwind.c
> delete mode 100644 arch/ia64/kernel/unwind_decoder.c
> delete mode 100644 arch/ia64/kernel/unwind_i.h
> delete mode 100644 arch/ia64/kernel/vmlinux.lds.S
> delete mode 100644 arch/ia64/lib/Makefile
> delete mode 100644 arch/ia64/lib/checksum.c
> delete mode 100644 arch/ia64/lib/clear_page.S
> delete mode 100644 arch/ia64/lib/clear_user.S
> delete mode 100644 arch/ia64/lib/copy_page.S
> delete mode 100644 arch/ia64/lib/copy_page_mck.S
> delete mode 100644 arch/ia64/lib/copy_user.S
> delete mode 100644 arch/ia64/lib/csum_partial_copy.c
> delete mode 100644 arch/ia64/lib/do_csum.S
> delete mode 100644 arch/ia64/lib/flush.S
> delete mode 100644 arch/ia64/lib/idiv32.S
> delete mode 100644 arch/ia64/lib/idiv64.S
> delete mode 100644 arch/ia64/lib/io.c
> delete mode 100644 arch/ia64/lib/ip_fast_csum.S
> delete mode 100644 arch/ia64/lib/memcpy.S
> delete mode 100644 arch/ia64/lib/memcpy_mck.S
> delete mode 100644 arch/ia64/lib/memset.S
> delete mode 100644 arch/ia64/lib/strlen.S
> delete mode 100644 arch/ia64/lib/strncpy_from_user.S
> delete mode 100644 arch/ia64/lib/strnlen_user.S
> delete mode 100644 arch/ia64/lib/xor.S
> delete mode 100644 arch/ia64/mm/Makefile
> delete mode 100644 arch/ia64/mm/contig.c
> delete mode 100644 arch/ia64/mm/discontig.c
> delete mode 100644 arch/ia64/mm/extable.c
> delete mode 100644 arch/ia64/mm/fault.c
> delete mode 100644 arch/ia64/mm/hugetlbpage.c
> delete mode 100644 arch/ia64/mm/init.c
> delete mode 100644 arch/ia64/mm/ioremap.c
> delete mode 100644 arch/ia64/mm/numa.c
> delete mode 100644 arch/ia64/mm/tlb.c
> delete mode 100644 arch/ia64/pci/Makefile
> delete mode 100644 arch/ia64/pci/fixup.c
> delete mode 100644 arch/ia64/pci/pci.c
> delete mode 100755 arch/ia64/scripts/check-gas
> delete mode 100644 arch/ia64/scripts/check-gas-asm.S
> delete mode 100644 arch/ia64/scripts/check-model.c
> delete mode 100644 arch/ia64/scripts/check-segrel.S
> delete mode 100644 arch/ia64/scripts/check-segrel.lds
> delete mode 100644 arch/ia64/scripts/check-serialize.S
> delete mode 100644 arch/ia64/scripts/check-text-align.S
> delete mode 100755 arch/ia64/scripts/toolchain-flags
> delete mode 100644 arch/ia64/scripts/unwcheck.py
> delete mode 100644 arch/ia64/uv/Makefile
> delete mode 100644 arch/ia64/uv/kernel/Makefile
> delete mode 100644 arch/ia64/uv/kernel/setup.c
> delete mode 100644 drivers/char/agp/hp-agp.c
> delete mode 100644 drivers/char/agp/i460-agp.c
> delete mode 100644 drivers/char/mspec.c
> delete mode 100644 drivers/cpufreq/ia64-acpi-cpufreq.c
> delete mode 100644 drivers/firmware/pcdp.c
> delete mode 100644 drivers/firmware/pcdp.h
> delete mode 100644 tools/arch/ia64/include/asm/barrier.h
> delete mode 100644 tools/arch/ia64/include/uapi/asm/bitsperlong.h
> delete mode 100644 tools/arch/ia64/include/uapi/asm/mman.h
^ permalink raw reply [relevance 0%]
* Re: [RFC PATCH 0/5] Retire IA64/Itanium support
@ 2023-02-15 16:50 0% ` Palmer Dabbelt
0 siblings, 0 replies; 200+ results
From: Palmer Dabbelt @ 2023-02-15 16:50 UTC (permalink / raw)
To: ardb
Cc: linux-kernel, corbet, Arnd Bergmann, tony.luck, jrtc27, glaubitz,
willy, Marc Zyngier, linux, Linus Torvalds, linux-ia64
On Wed, 15 Feb 2023 02:00:03 PST (-0800), ardb@kernel.org wrote:
> The IA64 port of Linux has no maintainer, and according to a report from
> its only remaining user [0], it has been broken for a month and nobody
> cares.
>
> Given that keeping a complex but unused architecture alive uses up
> valuable developer bandwidth, let's just get rid of it.
>
> This supersedes my patch proposing to mark it as 'dead', which received
> no replies from anyone that wants to keep it alive. [1]
>
> [0] https://www.spinics.net/lists/linux-ia64/msg21926.html
> [1] https://lore.kernel.org/all/20230128122904.1345120-1-ardb@kernel.org/
>
> Cc: Jonathan Corbet <corbet@lwn.net>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Tony Luck <tony.luck@intel.com>
> Cc: Jessica Clarke <jrtc27@jrtc27.com>
> Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
> Cc: Matthew Wilcox <willy@infradead.org>
> Cc: Marc Zyngier <maz@kernel.org>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Linus Torvalds <torvalds@linux-foundation.org>
> Cc: linux-ia64@vger.kernel.org
>
> Ard Biesheuvel (5):
> arch: Remove Itanium (IA-64) architecture
> kernel: Drop IA64 support from sig_fault handlers
> Documentation: Drop IA64 from feature descriptions
> lib/raid6: Drop IA64 support
> Documentation: Drop or replace remaining mentions of IA64
Not sure if I'm missing it in the diff, but it looks like there's also a
bunch of "#ifdef __ia64__" and "#ifdef __IA64__" type code spread
throughout the kernel. I didn't look at the actual diff, but it's in
files that aren't showing up in the diffstat.
Just "git grep -i __ia64__" lists a bunch. I didn't look at all of
them, but at least spot checking include/acpi/actypes.h looks like it's
a real Itanium workaround. If the arch goes, it's probbaly worth
removing those too?
There's also some mentions of "Itanium" in Documentation outside that
don't look like they got caught here. Not sure if they'd be worth
getting rid of, though as they could still be useful examples. The
blurb in Documentation/memory-barriers.txt looks pretty port-specific,
though.
> Documentation/ABI/testing/sysfs-devices-system-cpu | 3 -
> Documentation/ABI/testing/sysfs-firmware-dmi-entries | 2 +-
> Documentation/admin-guide/kdump/kdump.rst | 37 +-
> Documentation/admin-guide/kdump/vmcoreinfo.rst | 30 -
> Documentation/admin-guide/kernel-parameters.txt | 8 +-
> Documentation/admin-guide/mm/memory-hotplug.rst | 2 +-
> Documentation/admin-guide/sysctl/kernel.rst | 23 +-
> Documentation/arch.rst | 1 -
> Documentation/block/ioprio.rst | 3 -
> Documentation/core-api/cpu_hotplug.rst | 6 -
> Documentation/core-api/debugging-via-ohci1394.rst | 6 +-
> Documentation/features/core/cBPF-JIT/arch-support.txt | 1 -
> Documentation/features/core/eBPF-JIT/arch-support.txt | 1 -
> Documentation/features/core/generic-idle-thread/arch-support.txt | 1 -
> Documentation/features/core/jump-labels/arch-support.txt | 1 -
> Documentation/features/core/thread-info-in-task/arch-support.txt | 1 -
> Documentation/features/core/tracehook/arch-support.txt | 1 -
> Documentation/features/debug/KASAN/arch-support.txt | 1 -
> Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 1 -
> Documentation/features/debug/gcov-profile-all/arch-support.txt | 1 -
> Documentation/features/debug/kcov/arch-support.txt | 1 -
> Documentation/features/debug/kgdb/arch-support.txt | 1 -
> Documentation/features/debug/kmemleak/arch-support.txt | 1 -
> Documentation/features/debug/kprobes-on-ftrace/arch-support.txt | 1 -
> Documentation/features/debug/kprobes/arch-support.txt | 1 -
> Documentation/features/debug/kretprobes/arch-support.txt | 1 -
> Documentation/features/debug/optprobes/arch-support.txt | 1 -
> Documentation/features/debug/stackprotector/arch-support.txt | 1 -
> Documentation/features/debug/uprobes/arch-support.txt | 1 -
> Documentation/features/debug/user-ret-profiler/arch-support.txt | 1 -
> Documentation/features/io/dma-contiguous/arch-support.txt | 1 -
> Documentation/features/locking/cmpxchg-local/arch-support.txt | 1 -
> Documentation/features/locking/lockdep/arch-support.txt | 1 -
> Documentation/features/locking/queued-rwlocks/arch-support.txt | 1 -
> Documentation/features/locking/queued-spinlocks/arch-support.txt | 1 -
> Documentation/features/perf/kprobes-event/arch-support.txt | 1 -
> Documentation/features/perf/perf-regs/arch-support.txt | 1 -
> Documentation/features/perf/perf-stackdump/arch-support.txt | 1 -
> Documentation/features/sched/membarrier-sync-core/arch-support.txt | 1 -
> Documentation/features/sched/numa-balancing/arch-support.txt | 1 -
> Documentation/features/seccomp/seccomp-filter/arch-support.txt | 1 -
> Documentation/features/time/arch-tick-broadcast/arch-support.txt | 1 -
> Documentation/features/time/clockevents/arch-support.txt | 1 -
> Documentation/features/time/context-tracking/arch-support.txt | 1 -
> Documentation/features/time/irq-time-acct/arch-support.txt | 1 -
> Documentation/features/time/virt-cpuacct/arch-support.txt | 1 -
> Documentation/features/vm/ELF-ASLR/arch-support.txt | 1 -
> Documentation/features/vm/PG_uncached/arch-support.txt | 1 -
> Documentation/features/vm/THP/arch-support.txt | 1 -
> Documentation/features/vm/TLB/arch-support.txt | 1 -
> Documentation/features/vm/huge-vmap/arch-support.txt | 1 -
> Documentation/features/vm/ioremap_prot/arch-support.txt | 1 -
> Documentation/features/vm/pte_special/arch-support.txt | 1 -
> Documentation/ia64/aliasing.rst | 246 ---
> Documentation/ia64/efirtc.rst | 144 --
> Documentation/ia64/err_inject.rst | 1067 ---------
> Documentation/ia64/features.rst | 3 -
> Documentation/ia64/fsys.rst | 303 ---
> Documentation/ia64/ia64.rst | 49 -
> Documentation/ia64/index.rst | 19 -
> Documentation/ia64/irq-redir.rst | 80 -
> Documentation/ia64/mca.rst | 198 --
> Documentation/ia64/serial.rst | 165 --
> Documentation/kbuild/makefiles.rst | 2 +-
> Documentation/networking/device_drivers/ethernet/neterion/s2io.rst | 4 +-
> Documentation/scheduler/sched-arch.rst | 4 +-
> Documentation/trace/kprobes.rst | 1 -
> Documentation/translations/zh_CN/arch.rst | 1 -
> Documentation/translations/zh_CN/core-api/cpu_hotplug.rst | 6 -
> Documentation/translations/zh_CN/scheduler/sched-arch.rst | 5 +-
> MAINTAINERS | 11 -
> Makefile | 4 +-
> arch/Kconfig | 1 -
> arch/ia64/Kbuild | 3 -
> arch/ia64/Kconfig | 410 ----
> arch/ia64/Kconfig.debug | 55 -
> arch/ia64/Makefile | 82 -
> arch/ia64/configs/bigsur_defconfig | 102 -
> arch/ia64/configs/generic_defconfig | 206 --
> arch/ia64/configs/gensparse_defconfig | 184 --
> arch/ia64/configs/tiger_defconfig | 169 --
> arch/ia64/configs/zx1_defconfig | 148 --
> arch/ia64/hp/common/Makefile | 10 -
> arch/ia64/hp/common/aml_nfw.c | 232 --
> arch/ia64/hp/common/sba_iommu.c | 2147 ------------------
> arch/ia64/include/asm/Kbuild | 5 -
> arch/ia64/include/asm/acenv.h | 49 -
> arch/ia64/include/asm/acpi-ext.h | 17 -
> arch/ia64/include/asm/acpi.h | 110 -
> arch/ia64/include/asm/agp.h | 27 -
> arch/ia64/include/asm/asm-offsets.h | 1 -
> arch/ia64/include/asm/asm-prototypes.h | 30 -
> arch/ia64/include/asm/asmmacro.h | 136 --
> arch/ia64/include/asm/atomic.h | 223 --
> arch/ia64/include/asm/barrier.h | 79 -
> arch/ia64/include/asm/bitops.h | 453 ----
> arch/ia64/include/asm/bug.h | 19 -
> arch/ia64/include/asm/bugs.h | 20 -
> arch/ia64/include/asm/cache.h | 30 -
> arch/ia64/include/asm/cacheflush.h | 33 -
> arch/ia64/include/asm/checksum.h | 63 -
> arch/ia64/include/asm/clocksource.h | 11 -
> arch/ia64/include/asm/cmpxchg.h | 16 -
> arch/ia64/include/asm/cpu.h | 23 -
> arch/ia64/include/asm/cputime.h | 21 -
> arch/ia64/include/asm/current.h | 18 -
> arch/ia64/include/asm/cyclone.h | 16 -
> arch/ia64/include/asm/delay.h | 89 -
> arch/ia64/include/asm/device.h | 14 -
> arch/ia64/include/asm/div64.h | 1 -
> arch/ia64/include/asm/dma-mapping.h | 16 -
> arch/ia64/include/asm/dma.h | 17 -
> arch/ia64/include/asm/dmi.h | 15 -
> arch/ia64/include/asm/early_ioremap.h | 11 -
> arch/ia64/include/asm/efi.h | 13 -
> arch/ia64/include/asm/elf.h | 233 --
> arch/ia64/include/asm/emergency-restart.h | 6 -
> arch/ia64/include/asm/esi.h | 30 -
> arch/ia64/include/asm/exception.h | 23 -
> arch/ia64/include/asm/export.h | 3 -
> arch/ia64/include/asm/extable.h | 12 -
> arch/ia64/include/asm/fb.h | 24 -
> arch/ia64/include/asm/fpswa.h | 74 -
> arch/ia64/include/asm/ftrace.h | 28 -
> arch/ia64/include/asm/futex.h | 109 -
> arch/ia64/include/asm/gcc_intrin.h | 13 -
> arch/ia64/include/asm/hardirq.h | 27 -
> arch/ia64/include/asm/hugetlb.h | 34 -
> arch/ia64/include/asm/hw_irq.h | 167 --
> arch/ia64/include/asm/idle.h | 8 -
> arch/ia64/include/asm/intrinsics.h | 13 -
> arch/ia64/include/asm/io.h | 274 ---
> arch/ia64/include/asm/iommu.h | 22 -
> arch/ia64/include/asm/iosapic.h | 106 -
> arch/ia64/include/asm/irq.h | 37 -
> arch/ia64/include/asm/irq_regs.h | 1 -
> arch/ia64/include/asm/irq_remapping.h | 5 -
> arch/ia64/include/asm/irqflags.h | 95 -
> arch/ia64/include/asm/kdebug.h | 45 -
> arch/ia64/include/asm/kexec.h | 46 -
> arch/ia64/include/asm/kprobes.h | 116 -
> arch/ia64/include/asm/kregs.h | 166 --
> arch/ia64/include/asm/libata-portmap.h | 9 -
> arch/ia64/include/asm/linkage.h | 19 -
> arch/ia64/include/asm/local.h | 1 -
> arch/ia64/include/asm/mca.h | 185 --
> arch/ia64/include/asm/mca_asm.h | 245 ---
> arch/ia64/include/asm/meminit.h | 59 -
> arch/ia64/include/asm/mman.h | 18 -
> arch/ia64/include/asm/mmiowb.h | 17 -
> arch/ia64/include/asm/mmu.h | 14 -
> arch/ia64/include/asm/mmu_context.h | 194 --
> arch/ia64/include/asm/mmzone.h | 35 -
> arch/ia64/include/asm/module.h | 35 -
> arch/ia64/include/asm/module.lds.h | 14 -
> arch/ia64/include/asm/msidef.h | 43 -
> arch/ia64/include/asm/native/inst.h | 119 -
> arch/ia64/include/asm/native/irq.h | 20 -
> arch/ia64/include/asm/native/patchlist.h | 24 -
> arch/ia64/include/asm/nodedata.h | 63 -
> arch/ia64/include/asm/numa.h | 83 -
> arch/ia64/include/asm/page.h | 214 --
> arch/ia64/include/asm/pal.h | 1827 ---------------
> arch/ia64/include/asm/param.h | 18 -
> arch/ia64/include/asm/parport.h | 20 -
> arch/ia64/include/asm/patch.h | 28 -
> arch/ia64/include/asm/pci.h | 66 -
> arch/ia64/include/asm/percpu.h | 53 -
> arch/ia64/include/asm/pgalloc.h | 64 -
> arch/ia64/include/asm/pgtable.h | 520 -----
> arch/ia64/include/asm/processor.h | 663 ------
> arch/ia64/include/asm/ptrace.h | 146 --
> arch/ia64/include/asm/sal.h | 919 --------
> arch/ia64/include/asm/sections.h | 33 -
> arch/ia64/include/asm/serial.h | 17 -
> arch/ia64/include/asm/shmparam.h | 13 -
> arch/ia64/include/asm/signal.h | 33 -
> arch/ia64/include/asm/smp.h | 103 -
> arch/ia64/include/asm/sn/intr.h | 15 -
> arch/ia64/include/asm/sn/sn_sal.h | 124 --
> arch/ia64/include/asm/sparsemem.h | 28 -
> arch/ia64/include/asm/spinlock.h | 265 ---
> arch/ia64/include/asm/spinlock_types.h | 22 -
> arch/ia64/include/asm/string.h | 22 -
> arch/ia64/include/asm/switch_to.h | 71 -
> arch/ia64/include/asm/syscall.h | 65 -
> arch/ia64/include/asm/thread_info.h | 131 --
> arch/ia64/include/asm/timex.h | 47 -
> arch/ia64/include/asm/tlb.h | 50 -
> arch/ia64/include/asm/tlbflush.h | 128 --
> arch/ia64/include/asm/topology.h | 56 -
> arch/ia64/include/asm/types.h | 32 -
> arch/ia64/include/asm/uaccess.h | 265 ---
> arch/ia64/include/asm/uncached.h | 9 -
> arch/ia64/include/asm/unistd.h | 38 -
> arch/ia64/include/asm/unwind.h | 234 --
> arch/ia64/include/asm/user.h | 53 -
> arch/ia64/include/asm/ustack.h | 12 -
> arch/ia64/include/asm/uv/uv.h | 30 -
> arch/ia64/include/asm/uv/uv_hub.h | 315 ---
> arch/ia64/include/asm/uv/uv_mmrs.h | 825 -------
> arch/ia64/include/asm/vermagic.h | 15 -
> arch/ia64/include/asm/vga.h | 26 -
> arch/ia64/include/asm/vmalloc.h | 4 -
> arch/ia64/include/asm/xor.h | 30 -
> arch/ia64/include/asm/xtp.h | 46 -
> arch/ia64/include/uapi/asm/Kbuild | 2 -
> arch/ia64/include/uapi/asm/auxvec.h | 14 -
> arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
> arch/ia64/include/uapi/asm/break.h | 23 -
> arch/ia64/include/uapi/asm/byteorder.h | 7 -
> arch/ia64/include/uapi/asm/cmpxchg.h | 159 --
> arch/ia64/include/uapi/asm/fcntl.h | 15 -
> arch/ia64/include/uapi/asm/fpu.h | 67 -
> arch/ia64/include/uapi/asm/gcc_intrin.h | 619 ------
> arch/ia64/include/uapi/asm/ia64regs.h | 101 -
> arch/ia64/include/uapi/asm/intel_intrin.h | 162 --
> arch/ia64/include/uapi/asm/intrinsics.h | 86 -
> arch/ia64/include/uapi/asm/mman.h | 17 -
> arch/ia64/include/uapi/asm/param.h | 30 -
> arch/ia64/include/uapi/asm/posix_types.h | 9 -
> arch/ia64/include/uapi/asm/ptrace.h | 248 ---
> arch/ia64/include/uapi/asm/ptrace_offsets.h | 269 ---
> arch/ia64/include/uapi/asm/resource.h | 8 -
> arch/ia64/include/uapi/asm/rse.h | 67 -
> arch/ia64/include/uapi/asm/setup.h | 25 -
> arch/ia64/include/uapi/asm/sigcontext.h | 71 -
> arch/ia64/include/uapi/asm/siginfo.h | 28 -
> arch/ia64/include/uapi/asm/signal.h | 98 -
> arch/ia64/include/uapi/asm/stat.h | 52 -
> arch/ia64/include/uapi/asm/statfs.h | 21 -
> arch/ia64/include/uapi/asm/swab.h | 35 -
> arch/ia64/include/uapi/asm/types.h | 32 -
> arch/ia64/include/uapi/asm/ucontext.h | 13 -
> arch/ia64/include/uapi/asm/unistd.h | 22 -
> arch/ia64/include/uapi/asm/ustack.h | 13 -
> arch/ia64/install.sh | 30 -
> arch/ia64/kernel/.gitignore | 3 -
> arch/ia64/kernel/Makefile | 46 -
> arch/ia64/kernel/Makefile.gate | 29 -
> arch/ia64/kernel/acpi-ext.c | 101 -
> arch/ia64/kernel/acpi.c | 911 --------
> arch/ia64/kernel/asm-offsets.c | 289 ---
> arch/ia64/kernel/audit.c | 63 -
> arch/ia64/kernel/brl_emu.c | 217 --
> arch/ia64/kernel/crash.c | 266 ---
> arch/ia64/kernel/crash_dump.c | 27 -
> arch/ia64/kernel/cyclone.c | 125 --
> arch/ia64/kernel/dma-mapping.c | 9 -
> arch/ia64/kernel/efi.c | 1360 ------------
> arch/ia64/kernel/efi_stub.S | 87 -
> arch/ia64/kernel/elfcore.c | 77 -
> arch/ia64/kernel/entry.S | 1428 ------------
> arch/ia64/kernel/entry.h | 83 -
> arch/ia64/kernel/err_inject.c | 273 ---
> arch/ia64/kernel/esi.c | 193 --
> arch/ia64/kernel/esi_stub.S | 99 -
> arch/ia64/kernel/fsys.S | 837 -------
> arch/ia64/kernel/fsyscall_gtod_data.h | 30 -
> arch/ia64/kernel/ftrace.c | 196 --
> arch/ia64/kernel/gate-data.S | 3 -
> arch/ia64/kernel/gate.S | 380 ----
> arch/ia64/kernel/gate.lds.S | 108 -
> arch/ia64/kernel/head.S | 1168 ----------
> arch/ia64/kernel/iosapic.c | 1137 ----------
> arch/ia64/kernel/irq.c | 181 --
> arch/ia64/kernel/irq.h | 3 -
> arch/ia64/kernel/irq_ia64.c | 645 ------
> arch/ia64/kernel/irq_lsapic.c | 45 -
> arch/ia64/kernel/ivt.S | 1689 --------------
> arch/ia64/kernel/kprobes.c | 911 --------
> arch/ia64/kernel/machine_kexec.c | 163 --
> arch/ia64/kernel/mca.c | 2111 ------------------
> arch/ia64/kernel/mca_asm.S | 1123 ----------
> arch/ia64/kernel/mca_drv.c | 796 -------
> arch/ia64/kernel/mca_drv.h | 123 --
> arch/ia64/kernel/mca_drv_asm.S | 56 -
> arch/ia64/kernel/minstate.h | 251 ---
> arch/ia64/kernel/module.c | 955 --------
> arch/ia64/kernel/msi_ia64.c | 198 --
> arch/ia64/kernel/numa.c | 73 -
> arch/ia64/kernel/pal.S | 306 ---
> arch/ia64/kernel/palinfo.c | 942 --------
> arch/ia64/kernel/patch.c | 237 --
> arch/ia64/kernel/pci-dma.c | 33 -
> arch/ia64/kernel/perfmon_itanium.h | 116 -
> arch/ia64/kernel/process.c | 610 -----
> arch/ia64/kernel/ptrace.c | 2012 -----------------
> arch/ia64/kernel/relocate_kernel.S | 321 ---
> arch/ia64/kernel/sal.c | 400 ----
> arch/ia64/kernel/salinfo.c | 646 ------
> arch/ia64/kernel/setup.c | 1082 ---------
> arch/ia64/kernel/sigframe.h | 26 -
> arch/ia64/kernel/signal.c | 412 ----
> arch/ia64/kernel/smp.c | 335 ---
> arch/ia64/kernel/smpboot.c | 839 -------
> arch/ia64/kernel/stacktrace.c | 40 -
> arch/ia64/kernel/sys_ia64.c | 197 --
> arch/ia64/kernel/syscalls/Makefile | 32 -
> arch/ia64/kernel/syscalls/syscall.tbl | 373 ----
> arch/ia64/kernel/time.c | 462 ----
> arch/ia64/kernel/topology.c | 410 ----
> arch/ia64/kernel/traps.c | 612 ------
> arch/ia64/kernel/unaligned.c | 1560 -------------
> arch/ia64/kernel/uncached.c | 273 ---
> arch/ia64/kernel/unwind.c | 2320 --------------------
> arch/ia64/kernel/unwind_decoder.c | 460 ----
> arch/ia64/kernel/unwind_i.h | 165 --
> arch/ia64/kernel/vmlinux.lds.S | 225 --
> arch/ia64/lib/Makefile | 48 -
> arch/ia64/lib/checksum.c | 102 -
> arch/ia64/lib/clear_page.S | 79 -
> arch/ia64/lib/clear_user.S | 212 --
> arch/ia64/lib/copy_page.S | 101 -
> arch/ia64/lib/copy_page_mck.S | 188 --
> arch/ia64/lib/copy_user.S | 613 ------
> arch/ia64/lib/csum_partial_copy.c | 98 -
> arch/ia64/lib/do_csum.S | 324 ---
> arch/ia64/lib/flush.S | 120 -
> arch/ia64/lib/idiv32.S | 86 -
> arch/ia64/lib/idiv64.S | 83 -
> arch/ia64/lib/io.c | 51 -
> arch/ia64/lib/ip_fast_csum.S | 148 --
> arch/ia64/lib/memcpy.S | 304 ---
> arch/ia64/lib/memcpy_mck.S | 659 ------
> arch/ia64/lib/memset.S | 365 ---
> arch/ia64/lib/strlen.S | 195 --
> arch/ia64/lib/strncpy_from_user.S | 47 -
> arch/ia64/lib/strnlen_user.S | 48 -
> arch/ia64/lib/xor.S | 181 --
> arch/ia64/mm/Makefile | 11 -
> arch/ia64/mm/contig.c | 208 --
> arch/ia64/mm/discontig.c | 635 ------
> arch/ia64/mm/extable.c | 24 -
> arch/ia64/mm/fault.c | 272 ---
> arch/ia64/mm/hugetlbpage.c | 186 --
> arch/ia64/mm/init.c | 518 -----
> arch/ia64/mm/ioremap.c | 123 --
> arch/ia64/mm/numa.c | 80 -
> arch/ia64/mm/tlb.c | 591 -----
> arch/ia64/pci/Makefile | 5 -
> arch/ia64/pci/fixup.c | 80 -
> arch/ia64/pci/pci.c | 576 -----
> arch/ia64/scripts/check-gas | 16 -
> arch/ia64/scripts/check-gas-asm.S | 2 -
> arch/ia64/scripts/check-model.c | 1 -
> arch/ia64/scripts/check-segrel.S | 5 -
> arch/ia64/scripts/check-segrel.lds | 13 -
> arch/ia64/scripts/check-serialize.S | 2 -
> arch/ia64/scripts/check-text-align.S | 7 -
> arch/ia64/scripts/toolchain-flags | 54 -
> arch/ia64/scripts/unwcheck.py | 65 -
> arch/ia64/uv/Makefile | 12 -
> arch/ia64/uv/kernel/Makefile | 12 -
> arch/ia64/uv/kernel/setup.c | 120 -
> drivers/acpi/Kconfig | 6 +-
> drivers/acpi/numa/Kconfig | 4 +-
> drivers/acpi/osl.c | 2 +-
> drivers/char/Kconfig | 4 +-
> drivers/char/Makefile | 1 -
> drivers/char/agp/Kconfig | 16 +-
> drivers/char/agp/Makefile | 2 -
> drivers/char/agp/hp-agp.c | 550 -----
> drivers/char/agp/i460-agp.c | 659 ------
> drivers/char/hpet.c | 30 -
> drivers/char/hw_random/Kconfig | 2 +-
> drivers/char/mem.c | 12 -
> drivers/char/mspec.c | 295 ---
> drivers/cpufreq/Kconfig | 11 -
> drivers/cpufreq/Makefile | 1 -
> drivers/cpufreq/ia64-acpi-cpufreq.c | 353 ---
> drivers/firmware/Kconfig | 24 -
> drivers/firmware/Makefile | 1 -
> drivers/firmware/efi/Kconfig | 6 +-
> drivers/firmware/efi/efi.c | 13 +-
> drivers/firmware/pcdp.c | 135 --
> drivers/firmware/pcdp.h | 108 -
> drivers/gpu/drm/drm_ioc32.c | 4 +-
> drivers/input/serio/i8042.h | 2 +-
> drivers/iommu/Kconfig | 4 +-
> drivers/iommu/intel/Kconfig | 2 +-
> drivers/media/cec/platform/Kconfig | 2 +-
> drivers/misc/Kconfig | 2 +-
> drivers/misc/sgi-gru/gru.h | 4 +-
> drivers/misc/sgi-gru/gru_instructions.h | 12 +-
> drivers/misc/sgi-gru/grufile.c | 72 -
> drivers/misc/sgi-gru/gruhandles.c | 6 -
> drivers/misc/sgi-gru/grumain.c | 4 -
> drivers/misc/sgi-xp/xp.h | 2 +-
> drivers/misc/sgi-xp/xp_uv.c | 24 -
> drivers/misc/sgi-xp/xpc_main.c | 31 -
> drivers/misc/sgi-xp/xpc_uv.c | 85 -
> drivers/net/ethernet/broadcom/tg3.c | 2 +-
> drivers/net/ethernet/brocade/bna/bnad.h | 1 -
> drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c | 2 -
> drivers/pci/vgaarb.c | 2 +-
> drivers/tty/serial/8250/Kconfig | 2 +-
> drivers/tty/vt/keyboard.c | 2 +-
> drivers/video/fbdev/Kconfig | 2 +-
> drivers/watchdog/Kconfig | 2 +-
> fs/Kconfig | 2 +-
> fs/afs/main.c | 2 -
> fs/xfs/xfs_ioctl32.h | 2 +-
> include/linux/acpi.h | 9 +-
> include/linux/efi.h | 7 -
> include/linux/mm.h | 2 -
> include/linux/moduleparam.h | 2 +-
> include/linux/raid/pq.h | 2 -
> include/linux/sched/signal.h | 17 +-
> include/trace/events/mmflags.h | 2 +-
> init/Kconfig | 2 +-
> kernel/cpu.c | 3 -
> kernel/fork.c | 2 +-
> kernel/sched/core.c | 29 +-
> kernel/signal.c | 25 +-
> kernel/sysctl.c | 9 -
> lib/Kconfig.debug | 2 +-
> lib/decompress_unxz.c | 3 -
> lib/raid6/Makefile | 4 +-
> lib/raid6/algos.c | 4 -
> lib/xz/Kconfig | 5 -
> mm/mmap.c | 6 +-
> scripts/headers_install.sh | 1 -
> tools/arch/ia64/include/asm/barrier.h | 59 -
> tools/arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
> tools/arch/ia64/include/uapi/asm/mman.h | 7 -
> usr/include/Makefile | 6 -
> 427 files changed, 74 insertions(+), 65400 deletions(-)
> delete mode 100644 Documentation/ia64/aliasing.rst
> delete mode 100644 Documentation/ia64/efirtc.rst
> delete mode 100644 Documentation/ia64/err_inject.rst
> delete mode 100644 Documentation/ia64/features.rst
> delete mode 100644 Documentation/ia64/fsys.rst
> delete mode 100644 Documentation/ia64/ia64.rst
> delete mode 100644 Documentation/ia64/index.rst
> delete mode 100644 Documentation/ia64/irq-redir.rst
> delete mode 100644 Documentation/ia64/mca.rst
> delete mode 100644 Documentation/ia64/serial.rst
> delete mode 100644 arch/ia64/Kbuild
> delete mode 100644 arch/ia64/Kconfig
> delete mode 100644 arch/ia64/Kconfig.debug
> delete mode 100644 arch/ia64/Makefile
> delete mode 100644 arch/ia64/configs/bigsur_defconfig
> delete mode 100644 arch/ia64/configs/generic_defconfig
> delete mode 100644 arch/ia64/configs/gensparse_defconfig
> delete mode 100644 arch/ia64/configs/tiger_defconfig
> delete mode 100644 arch/ia64/configs/zx1_defconfig
> delete mode 100644 arch/ia64/hp/common/Makefile
> delete mode 100644 arch/ia64/hp/common/aml_nfw.c
> delete mode 100644 arch/ia64/hp/common/sba_iommu.c
> delete mode 100644 arch/ia64/include/asm/Kbuild
> delete mode 100644 arch/ia64/include/asm/acenv.h
> delete mode 100644 arch/ia64/include/asm/acpi-ext.h
> delete mode 100644 arch/ia64/include/asm/acpi.h
> delete mode 100644 arch/ia64/include/asm/agp.h
> delete mode 100644 arch/ia64/include/asm/asm-offsets.h
> delete mode 100644 arch/ia64/include/asm/asm-prototypes.h
> delete mode 100644 arch/ia64/include/asm/asmmacro.h
> delete mode 100644 arch/ia64/include/asm/atomic.h
> delete mode 100644 arch/ia64/include/asm/barrier.h
> delete mode 100644 arch/ia64/include/asm/bitops.h
> delete mode 100644 arch/ia64/include/asm/bug.h
> delete mode 100644 arch/ia64/include/asm/bugs.h
> delete mode 100644 arch/ia64/include/asm/cache.h
> delete mode 100644 arch/ia64/include/asm/cacheflush.h
> delete mode 100644 arch/ia64/include/asm/checksum.h
> delete mode 100644 arch/ia64/include/asm/clocksource.h
> delete mode 100644 arch/ia64/include/asm/cmpxchg.h
> delete mode 100644 arch/ia64/include/asm/cpu.h
> delete mode 100644 arch/ia64/include/asm/cputime.h
> delete mode 100644 arch/ia64/include/asm/current.h
> delete mode 100644 arch/ia64/include/asm/cyclone.h
> delete mode 100644 arch/ia64/include/asm/delay.h
> delete mode 100644 arch/ia64/include/asm/device.h
> delete mode 100644 arch/ia64/include/asm/div64.h
> delete mode 100644 arch/ia64/include/asm/dma-mapping.h
> delete mode 100644 arch/ia64/include/asm/dma.h
> delete mode 100644 arch/ia64/include/asm/dmi.h
> delete mode 100644 arch/ia64/include/asm/early_ioremap.h
> delete mode 100644 arch/ia64/include/asm/efi.h
> delete mode 100644 arch/ia64/include/asm/elf.h
> delete mode 100644 arch/ia64/include/asm/emergency-restart.h
> delete mode 100644 arch/ia64/include/asm/esi.h
> delete mode 100644 arch/ia64/include/asm/exception.h
> delete mode 100644 arch/ia64/include/asm/export.h
> delete mode 100644 arch/ia64/include/asm/extable.h
> delete mode 100644 arch/ia64/include/asm/fb.h
> delete mode 100644 arch/ia64/include/asm/fpswa.h
> delete mode 100644 arch/ia64/include/asm/ftrace.h
> delete mode 100644 arch/ia64/include/asm/futex.h
> delete mode 100644 arch/ia64/include/asm/gcc_intrin.h
> delete mode 100644 arch/ia64/include/asm/hardirq.h
> delete mode 100644 arch/ia64/include/asm/hugetlb.h
> delete mode 100644 arch/ia64/include/asm/hw_irq.h
> delete mode 100644 arch/ia64/include/asm/idle.h
> delete mode 100644 arch/ia64/include/asm/intrinsics.h
> delete mode 100644 arch/ia64/include/asm/io.h
> delete mode 100644 arch/ia64/include/asm/iommu.h
> delete mode 100644 arch/ia64/include/asm/iosapic.h
> delete mode 100644 arch/ia64/include/asm/irq.h
> delete mode 100644 arch/ia64/include/asm/irq_regs.h
> delete mode 100644 arch/ia64/include/asm/irq_remapping.h
> delete mode 100644 arch/ia64/include/asm/irqflags.h
> delete mode 100644 arch/ia64/include/asm/kdebug.h
> delete mode 100644 arch/ia64/include/asm/kexec.h
> delete mode 100644 arch/ia64/include/asm/kprobes.h
> delete mode 100644 arch/ia64/include/asm/kregs.h
> delete mode 100644 arch/ia64/include/asm/libata-portmap.h
> delete mode 100644 arch/ia64/include/asm/linkage.h
> delete mode 100644 arch/ia64/include/asm/local.h
> delete mode 100644 arch/ia64/include/asm/mca.h
> delete mode 100644 arch/ia64/include/asm/mca_asm.h
> delete mode 100644 arch/ia64/include/asm/meminit.h
> delete mode 100644 arch/ia64/include/asm/mman.h
> delete mode 100644 arch/ia64/include/asm/mmiowb.h
> delete mode 100644 arch/ia64/include/asm/mmu.h
> delete mode 100644 arch/ia64/include/asm/mmu_context.h
> delete mode 100644 arch/ia64/include/asm/mmzone.h
> delete mode 100644 arch/ia64/include/asm/module.h
> delete mode 100644 arch/ia64/include/asm/module.lds.h
> delete mode 100644 arch/ia64/include/asm/msidef.h
> delete mode 100644 arch/ia64/include/asm/native/inst.h
> delete mode 100644 arch/ia64/include/asm/native/irq.h
> delete mode 100644 arch/ia64/include/asm/native/patchlist.h
> delete mode 100644 arch/ia64/include/asm/nodedata.h
> delete mode 100644 arch/ia64/include/asm/numa.h
> delete mode 100644 arch/ia64/include/asm/page.h
> delete mode 100644 arch/ia64/include/asm/pal.h
> delete mode 100644 arch/ia64/include/asm/param.h
> delete mode 100644 arch/ia64/include/asm/parport.h
> delete mode 100644 arch/ia64/include/asm/patch.h
> delete mode 100644 arch/ia64/include/asm/pci.h
> delete mode 100644 arch/ia64/include/asm/percpu.h
> delete mode 100644 arch/ia64/include/asm/pgalloc.h
> delete mode 100644 arch/ia64/include/asm/pgtable.h
> delete mode 100644 arch/ia64/include/asm/processor.h
> delete mode 100644 arch/ia64/include/asm/ptrace.h
> delete mode 100644 arch/ia64/include/asm/sal.h
> delete mode 100644 arch/ia64/include/asm/sections.h
> delete mode 100644 arch/ia64/include/asm/serial.h
> delete mode 100644 arch/ia64/include/asm/shmparam.h
> delete mode 100644 arch/ia64/include/asm/signal.h
> delete mode 100644 arch/ia64/include/asm/smp.h
> delete mode 100644 arch/ia64/include/asm/sn/intr.h
> delete mode 100644 arch/ia64/include/asm/sn/sn_sal.h
> delete mode 100644 arch/ia64/include/asm/sparsemem.h
> delete mode 100644 arch/ia64/include/asm/spinlock.h
> delete mode 100644 arch/ia64/include/asm/spinlock_types.h
> delete mode 100644 arch/ia64/include/asm/string.h
> delete mode 100644 arch/ia64/include/asm/switch_to.h
> delete mode 100644 arch/ia64/include/asm/syscall.h
> delete mode 100644 arch/ia64/include/asm/thread_info.h
> delete mode 100644 arch/ia64/include/asm/timex.h
> delete mode 100644 arch/ia64/include/asm/tlb.h
> delete mode 100644 arch/ia64/include/asm/tlbflush.h
> delete mode 100644 arch/ia64/include/asm/topology.h
> delete mode 100644 arch/ia64/include/asm/types.h
> delete mode 100644 arch/ia64/include/asm/uaccess.h
> delete mode 100644 arch/ia64/include/asm/uncached.h
> delete mode 100644 arch/ia64/include/asm/unistd.h
> delete mode 100644 arch/ia64/include/asm/unwind.h
> delete mode 100644 arch/ia64/include/asm/user.h
> delete mode 100644 arch/ia64/include/asm/ustack.h
> delete mode 100644 arch/ia64/include/asm/uv/uv.h
> delete mode 100644 arch/ia64/include/asm/uv/uv_hub.h
> delete mode 100644 arch/ia64/include/asm/uv/uv_mmrs.h
> delete mode 100644 arch/ia64/include/asm/vermagic.h
> delete mode 100644 arch/ia64/include/asm/vga.h
> delete mode 100644 arch/ia64/include/asm/vmalloc.h
> delete mode 100644 arch/ia64/include/asm/xor.h
> delete mode 100644 arch/ia64/include/asm/xtp.h
> delete mode 100644 arch/ia64/include/uapi/asm/Kbuild
> delete mode 100644 arch/ia64/include/uapi/asm/auxvec.h
> delete mode 100644 arch/ia64/include/uapi/asm/bitsperlong.h
> delete mode 100644 arch/ia64/include/uapi/asm/break.h
> delete mode 100644 arch/ia64/include/uapi/asm/byteorder.h
> delete mode 100644 arch/ia64/include/uapi/asm/cmpxchg.h
> delete mode 100644 arch/ia64/include/uapi/asm/fcntl.h
> delete mode 100644 arch/ia64/include/uapi/asm/fpu.h
> delete mode 100644 arch/ia64/include/uapi/asm/gcc_intrin.h
> delete mode 100644 arch/ia64/include/uapi/asm/ia64regs.h
> delete mode 100644 arch/ia64/include/uapi/asm/intel_intrin.h
> delete mode 100644 arch/ia64/include/uapi/asm/intrinsics.h
> delete mode 100644 arch/ia64/include/uapi/asm/mman.h
> delete mode 100644 arch/ia64/include/uapi/asm/param.h
> delete mode 100644 arch/ia64/include/uapi/asm/posix_types.h
> delete mode 100644 arch/ia64/include/uapi/asm/ptrace.h
> delete mode 100644 arch/ia64/include/uapi/asm/ptrace_offsets.h
> delete mode 100644 arch/ia64/include/uapi/asm/resource.h
> delete mode 100644 arch/ia64/include/uapi/asm/rse.h
> delete mode 100644 arch/ia64/include/uapi/asm/setup.h
> delete mode 100644 arch/ia64/include/uapi/asm/sigcontext.h
> delete mode 100644 arch/ia64/include/uapi/asm/siginfo.h
> delete mode 100644 arch/ia64/include/uapi/asm/signal.h
> delete mode 100644 arch/ia64/include/uapi/asm/stat.h
> delete mode 100644 arch/ia64/include/uapi/asm/statfs.h
> delete mode 100644 arch/ia64/include/uapi/asm/swab.h
> delete mode 100644 arch/ia64/include/uapi/asm/types.h
> delete mode 100644 arch/ia64/include/uapi/asm/ucontext.h
> delete mode 100644 arch/ia64/include/uapi/asm/unistd.h
> delete mode 100644 arch/ia64/include/uapi/asm/ustack.h
> delete mode 100755 arch/ia64/install.sh
> delete mode 100644 arch/ia64/kernel/.gitignore
> delete mode 100644 arch/ia64/kernel/Makefile
> delete mode 100644 arch/ia64/kernel/Makefile.gate
> delete mode 100644 arch/ia64/kernel/acpi-ext.c
> delete mode 100644 arch/ia64/kernel/acpi.c
> delete mode 100644 arch/ia64/kernel/asm-offsets.c
> delete mode 100644 arch/ia64/kernel/audit.c
> delete mode 100644 arch/ia64/kernel/brl_emu.c
> delete mode 100644 arch/ia64/kernel/crash.c
> delete mode 100644 arch/ia64/kernel/crash_dump.c
> delete mode 100644 arch/ia64/kernel/cyclone.c
> delete mode 100644 arch/ia64/kernel/dma-mapping.c
> delete mode 100644 arch/ia64/kernel/efi.c
> delete mode 100644 arch/ia64/kernel/efi_stub.S
> delete mode 100644 arch/ia64/kernel/elfcore.c
> delete mode 100644 arch/ia64/kernel/entry.S
> delete mode 100644 arch/ia64/kernel/entry.h
> delete mode 100644 arch/ia64/kernel/err_inject.c
> delete mode 100644 arch/ia64/kernel/esi.c
> delete mode 100644 arch/ia64/kernel/esi_stub.S
> delete mode 100644 arch/ia64/kernel/fsys.S
> delete mode 100644 arch/ia64/kernel/fsyscall_gtod_data.h
> delete mode 100644 arch/ia64/kernel/ftrace.c
> delete mode 100644 arch/ia64/kernel/gate-data.S
> delete mode 100644 arch/ia64/kernel/gate.S
> delete mode 100644 arch/ia64/kernel/gate.lds.S
> delete mode 100644 arch/ia64/kernel/head.S
> delete mode 100644 arch/ia64/kernel/iosapic.c
> delete mode 100644 arch/ia64/kernel/irq.c
> delete mode 100644 arch/ia64/kernel/irq.h
> delete mode 100644 arch/ia64/kernel/irq_ia64.c
> delete mode 100644 arch/ia64/kernel/irq_lsapic.c
> delete mode 100644 arch/ia64/kernel/ivt.S
> delete mode 100644 arch/ia64/kernel/kprobes.c
> delete mode 100644 arch/ia64/kernel/machine_kexec.c
> delete mode 100644 arch/ia64/kernel/mca.c
> delete mode 100644 arch/ia64/kernel/mca_asm.S
> delete mode 100644 arch/ia64/kernel/mca_drv.c
> delete mode 100644 arch/ia64/kernel/mca_drv.h
> delete mode 100644 arch/ia64/kernel/mca_drv_asm.S
> delete mode 100644 arch/ia64/kernel/minstate.h
> delete mode 100644 arch/ia64/kernel/module.c
> delete mode 100644 arch/ia64/kernel/msi_ia64.c
> delete mode 100644 arch/ia64/kernel/numa.c
> delete mode 100644 arch/ia64/kernel/pal.S
> delete mode 100644 arch/ia64/kernel/palinfo.c
> delete mode 100644 arch/ia64/kernel/patch.c
> delete mode 100644 arch/ia64/kernel/pci-dma.c
> delete mode 100644 arch/ia64/kernel/perfmon_itanium.h
> delete mode 100644 arch/ia64/kernel/process.c
> delete mode 100644 arch/ia64/kernel/ptrace.c
> delete mode 100644 arch/ia64/kernel/relocate_kernel.S
> delete mode 100644 arch/ia64/kernel/sal.c
> delete mode 100644 arch/ia64/kernel/salinfo.c
> delete mode 100644 arch/ia64/kernel/setup.c
> delete mode 100644 arch/ia64/kernel/sigframe.h
> delete mode 100644 arch/ia64/kernel/signal.c
> delete mode 100644 arch/ia64/kernel/smp.c
> delete mode 100644 arch/ia64/kernel/smpboot.c
> delete mode 100644 arch/ia64/kernel/stacktrace.c
> delete mode 100644 arch/ia64/kernel/sys_ia64.c
> delete mode 100644 arch/ia64/kernel/syscalls/Makefile
> delete mode 100644 arch/ia64/kernel/syscalls/syscall.tbl
> delete mode 100644 arch/ia64/kernel/time.c
> delete mode 100644 arch/ia64/kernel/topology.c
> delete mode 100644 arch/ia64/kernel/traps.c
> delete mode 100644 arch/ia64/kernel/unaligned.c
> delete mode 100644 arch/ia64/kernel/uncached.c
> delete mode 100644 arch/ia64/kernel/unwind.c
> delete mode 100644 arch/ia64/kernel/unwind_decoder.c
> delete mode 100644 arch/ia64/kernel/unwind_i.h
> delete mode 100644 arch/ia64/kernel/vmlinux.lds.S
> delete mode 100644 arch/ia64/lib/Makefile
> delete mode 100644 arch/ia64/lib/checksum.c
> delete mode 100644 arch/ia64/lib/clear_page.S
> delete mode 100644 arch/ia64/lib/clear_user.S
> delete mode 100644 arch/ia64/lib/copy_page.S
> delete mode 100644 arch/ia64/lib/copy_page_mck.S
> delete mode 100644 arch/ia64/lib/copy_user.S
> delete mode 100644 arch/ia64/lib/csum_partial_copy.c
> delete mode 100644 arch/ia64/lib/do_csum.S
> delete mode 100644 arch/ia64/lib/flush.S
> delete mode 100644 arch/ia64/lib/idiv32.S
> delete mode 100644 arch/ia64/lib/idiv64.S
> delete mode 100644 arch/ia64/lib/io.c
> delete mode 100644 arch/ia64/lib/ip_fast_csum.S
> delete mode 100644 arch/ia64/lib/memcpy.S
> delete mode 100644 arch/ia64/lib/memcpy_mck.S
> delete mode 100644 arch/ia64/lib/memset.S
> delete mode 100644 arch/ia64/lib/strlen.S
> delete mode 100644 arch/ia64/lib/strncpy_from_user.S
> delete mode 100644 arch/ia64/lib/strnlen_user.S
> delete mode 100644 arch/ia64/lib/xor.S
> delete mode 100644 arch/ia64/mm/Makefile
> delete mode 100644 arch/ia64/mm/contig.c
> delete mode 100644 arch/ia64/mm/discontig.c
> delete mode 100644 arch/ia64/mm/extable.c
> delete mode 100644 arch/ia64/mm/fault.c
> delete mode 100644 arch/ia64/mm/hugetlbpage.c
> delete mode 100644 arch/ia64/mm/init.c
> delete mode 100644 arch/ia64/mm/ioremap.c
> delete mode 100644 arch/ia64/mm/numa.c
> delete mode 100644 arch/ia64/mm/tlb.c
> delete mode 100644 arch/ia64/pci/Makefile
> delete mode 100644 arch/ia64/pci/fixup.c
> delete mode 100644 arch/ia64/pci/pci.c
> delete mode 100755 arch/ia64/scripts/check-gas
> delete mode 100644 arch/ia64/scripts/check-gas-asm.S
> delete mode 100644 arch/ia64/scripts/check-model.c
> delete mode 100644 arch/ia64/scripts/check-segrel.S
> delete mode 100644 arch/ia64/scripts/check-segrel.lds
> delete mode 100644 arch/ia64/scripts/check-serialize.S
> delete mode 100644 arch/ia64/scripts/check-text-align.S
> delete mode 100755 arch/ia64/scripts/toolchain-flags
> delete mode 100644 arch/ia64/scripts/unwcheck.py
> delete mode 100644 arch/ia64/uv/Makefile
> delete mode 100644 arch/ia64/uv/kernel/Makefile
> delete mode 100644 arch/ia64/uv/kernel/setup.c
> delete mode 100644 drivers/char/agp/hp-agp.c
> delete mode 100644 drivers/char/agp/i460-agp.c
> delete mode 100644 drivers/char/mspec.c
> delete mode 100644 drivers/cpufreq/ia64-acpi-cpufreq.c
> delete mode 100644 drivers/firmware/pcdp.c
> delete mode 100644 drivers/firmware/pcdp.h
> delete mode 100644 tools/arch/ia64/include/asm/barrier.h
> delete mode 100644 tools/arch/ia64/include/uapi/asm/bitsperlong.h
> delete mode 100644 tools/arch/ia64/include/uapi/asm/mman.h
^ permalink raw reply [relevance 0%]
* [RFC PATCH 3/5] Documentation: Drop IA64 from feature descriptions
2023-02-15 10:00 1% ` Ard Biesheuvel
@ 2023-02-15 10:00 7% ` Ard Biesheuvel
-1 siblings, 0 replies; 200+ results
From: Ard Biesheuvel @ 2023-02-15 10:00 UTC (permalink / raw)
To: linux-kernel
Cc: Ard Biesheuvel, Jonathan Corbet, Arnd Bergmann, Tony Luck,
Jessica Clarke, John Paul Adrian Glaubitz, Matthew Wilcox,
Marc Zyngier, Guenter Roeck, Linus Torvalds, linux-ia64
Itanium (IA64) is going away, so drop it from the kernel feature
documentation.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
Documentation/features/core/cBPF-JIT/arch-support.txt | 1 -
Documentation/features/core/eBPF-JIT/arch-support.txt | 1 -
Documentation/features/core/generic-idle-thread/arch-support.txt | 1 -
Documentation/features/core/jump-labels/arch-support.txt | 1 -
Documentation/features/core/thread-info-in-task/arch-support.txt | 1 -
Documentation/features/core/tracehook/arch-support.txt | 1 -
Documentation/features/debug/KASAN/arch-support.txt | 1 -
Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 1 -
Documentation/features/debug/gcov-profile-all/arch-support.txt | 1 -
Documentation/features/debug/kcov/arch-support.txt | 1 -
Documentation/features/debug/kgdb/arch-support.txt | 1 -
Documentation/features/debug/kmemleak/arch-support.txt | 1 -
Documentation/features/debug/kprobes-on-ftrace/arch-support.txt | 1 -
Documentation/features/debug/kprobes/arch-support.txt | 1 -
Documentation/features/debug/kretprobes/arch-support.txt | 1 -
Documentation/features/debug/optprobes/arch-support.txt | 1 -
Documentation/features/debug/stackprotector/arch-support.txt | 1 -
Documentation/features/debug/uprobes/arch-support.txt | 1 -
Documentation/features/debug/user-ret-profiler/arch-support.txt | 1 -
Documentation/features/io/dma-contiguous/arch-support.txt | 1 -
Documentation/features/locking/cmpxchg-local/arch-support.txt | 1 -
Documentation/features/locking/lockdep/arch-support.txt | 1 -
Documentation/features/locking/queued-rwlocks/arch-support.txt | 1 -
Documentation/features/locking/queued-spinlocks/arch-support.txt | 1 -
Documentation/features/perf/kprobes-event/arch-support.txt | 1 -
Documentation/features/perf/perf-regs/arch-support.txt | 1 -
Documentation/features/perf/perf-stackdump/arch-support.txt | 1 -
Documentation/features/sched/membarrier-sync-core/arch-support.txt | 1 -
Documentation/features/sched/numa-balancing/arch-support.txt | 1 -
Documentation/features/seccomp/seccomp-filter/arch-support.txt | 1 -
Documentation/features/time/arch-tick-broadcast/arch-support.txt | 1 -
Documentation/features/time/clockevents/arch-support.txt | 1 -
Documentation/features/time/context-tracking/arch-support.txt | 1 -
Documentation/features/time/irq-time-acct/arch-support.txt | 1 -
Documentation/features/time/virt-cpuacct/arch-support.txt | 1 -
Documentation/features/vm/ELF-ASLR/arch-support.txt | 1 -
Documentation/features/vm/PG_uncached/arch-support.txt | 1 -
Documentation/features/vm/THP/arch-support.txt | 1 -
Documentation/features/vm/TLB/arch-support.txt | 1 -
Documentation/features/vm/huge-vmap/arch-support.txt | 1 -
Documentation/features/vm/ioremap_prot/arch-support.txt | 1 -
Documentation/features/vm/pte_special/arch-support.txt | 1 -
42 files changed, 42 deletions(-)
diff --git a/Documentation/features/core/cBPF-JIT/arch-support.txt b/Documentation/features/core/cBPF-JIT/arch-support.txt
index 0a1f5bb7eeb9a63a..937840080de718cd 100644
--- a/Documentation/features/core/cBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/cBPF-JIT/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | TODO |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/core/eBPF-JIT/arch-support.txt b/Documentation/features/core/eBPF-JIT/arch-support.txt
index 6c0f3d759e6a0b2e..7434b43c2ff8727f 100644
--- a/Documentation/features/core/eBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/eBPF-JIT/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/core/generic-idle-thread/arch-support.txt b/Documentation/features/core/generic-idle-thread/arch-support.txt
index 0b94099cf6aca230..0735cb5367b4b179 100644
--- a/Documentation/features/core/generic-idle-thread/arch-support.txt
+++ b/Documentation/features/core/generic-idle-thread/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
- | ia64: | ok |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/core/jump-labels/arch-support.txt b/Documentation/features/core/jump-labels/arch-support.txt
index 2328eada3a491a4d..f1921393981c6e4c 100644
--- a/Documentation/features/core/jump-labels/arch-support.txt
+++ b/Documentation/features/core/jump-labels/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/core/thread-info-in-task/arch-support.txt b/Documentation/features/core/thread-info-in-task/arch-support.txt
index 9c5d39eebef21520..89a9f69ff9fdbc60 100644
--- a/Documentation/features/core/thread-info-in-task/arch-support.txt
+++ b/Documentation/features/core/thread-info-in-task/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/core/tracehook/arch-support.txt b/Documentation/features/core/tracehook/arch-support.txt
index aed5679da651cad2..a72330e2554245c2 100644
--- a/Documentation/features/core/tracehook/arch-support.txt
+++ b/Documentation/features/core/tracehook/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
- | ia64: | ok |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/KASAN/arch-support.txt b/Documentation/features/debug/KASAN/arch-support.txt
index bf0124fae643a1bb..83633c583104774a 100644
--- a/Documentation/features/debug/KASAN/arch-support.txt
+++ b/Documentation/features/debug/KASAN/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
index 9ec5d13f4939c6b3..bbf029f095cb57eb 100644
--- a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
+++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/gcov-profile-all/arch-support.txt b/Documentation/features/debug/gcov-profile-all/arch-support.txt
index dc4014f7e1f8ad77..63494bddc2638e13 100644
--- a/Documentation/features/debug/gcov-profile-all/arch-support.txt
+++ b/Documentation/features/debug/gcov-profile-all/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | ok |
diff --git a/Documentation/features/debug/kcov/arch-support.txt b/Documentation/features/debug/kcov/arch-support.txt
index ffcc9f2b1d74d393..cdeace38aa9775b3 100644
--- a/Documentation/features/debug/kcov/arch-support.txt
+++ b/Documentation/features/debug/kcov/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/kgdb/arch-support.txt b/Documentation/features/debug/kgdb/arch-support.txt
index 958498f9f2a41f2b..9c7e23d574ef4c05 100644
--- a/Documentation/features/debug/kgdb/arch-support.txt
+++ b/Documentation/features/debug/kgdb/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | ok |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | ok |
diff --git a/Documentation/features/debug/kmemleak/arch-support.txt b/Documentation/features/debug/kmemleak/arch-support.txt
index 0cfa5f0e4db15230..1fa8bd638716979e 100644
--- a/Documentation/features/debug/kmemleak/arch-support.txt
+++ b/Documentation/features/debug/kmemleak/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | ok |
diff --git a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
index bcc29d3aba9ad884..9343ec9347b7148f 100644
--- a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
+++ b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | TODO |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/kprobes/arch-support.txt b/Documentation/features/debug/kprobes/arch-support.txt
index 8a77d62a42c59b81..4bf01cc4e023be0a 100644
--- a/Documentation/features/debug/kprobes/arch-support.txt
+++ b/Documentation/features/debug/kprobes/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | ok |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/kretprobes/arch-support.txt b/Documentation/features/debug/kretprobes/arch-support.txt
index cf4723c5ac55df9c..0493d0b07ea4b496 100644
--- a/Documentation/features/debug/kretprobes/arch-support.txt
+++ b/Documentation/features/debug/kretprobes/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | ok |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/optprobes/arch-support.txt b/Documentation/features/debug/optprobes/arch-support.txt
index 83a4639a5c0a15aa..92f5d0f444faa554 100644
--- a/Documentation/features/debug/optprobes/arch-support.txt
+++ b/Documentation/features/debug/optprobes/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | TODO |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/stackprotector/arch-support.txt b/Documentation/features/debug/stackprotector/arch-support.txt
index 71cd4ba18f7df6b0..8919efaeef989c59 100644
--- a/Documentation/features/debug/stackprotector/arch-support.txt
+++ b/Documentation/features/debug/stackprotector/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/uprobes/arch-support.txt b/Documentation/features/debug/uprobes/arch-support.txt
index d53f2f94fbda5fda..6f8296c0dbbee1db 100644
--- a/Documentation/features/debug/uprobes/arch-support.txt
+++ b/Documentation/features/debug/uprobes/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/user-ret-profiler/arch-support.txt b/Documentation/features/debug/user-ret-profiler/arch-support.txt
index 059110a5fa6eb9cc..3e431767581d1f33 100644
--- a/Documentation/features/debug/user-ret-profiler/arch-support.txt
+++ b/Documentation/features/debug/user-ret-profiler/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | TODO |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/io/dma-contiguous/arch-support.txt b/Documentation/features/io/dma-contiguous/arch-support.txt
index bfe0921a3853ad6c..3c6ce35d704f97f4 100644
--- a/Documentation/features/io/dma-contiguous/arch-support.txt
+++ b/Documentation/features/io/dma-contiguous/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | ok |
diff --git a/Documentation/features/locking/cmpxchg-local/arch-support.txt b/Documentation/features/locking/cmpxchg-local/arch-support.txt
index 68329e96dffad2d0..2c3a4b91f16df341 100644
--- a/Documentation/features/locking/cmpxchg-local/arch-support.txt
+++ b/Documentation/features/locking/cmpxchg-local/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/locking/lockdep/arch-support.txt b/Documentation/features/locking/lockdep/arch-support.txt
index ddb945278589e1d8..4d9c5306f72f1c71 100644
--- a/Documentation/features/locking/lockdep/arch-support.txt
+++ b/Documentation/features/locking/lockdep/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | ok |
diff --git a/Documentation/features/locking/queued-rwlocks/arch-support.txt b/Documentation/features/locking/queued-rwlocks/arch-support.txt
index 5deb845477e4909a..b286a5fff283be7b 100644
--- a/Documentation/features/locking/queued-rwlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-rwlocks/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/locking/queued-spinlocks/arch-support.txt b/Documentation/features/locking/queued-spinlocks/arch-support.txt
index 2d3961bfef5d666e..22f2990392ff8f5c 100644
--- a/Documentation/features/locking/queued-spinlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-spinlocks/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/perf/kprobes-event/arch-support.txt b/Documentation/features/perf/kprobes-event/arch-support.txt
index 641a7d2ff2a3cacb..713a69fcd697bd70 100644
--- a/Documentation/features/perf/kprobes-event/arch-support.txt
+++ b/Documentation/features/perf/kprobes-event/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/perf/perf-regs/arch-support.txt b/Documentation/features/perf/perf-regs/arch-support.txt
index 33866eb242c18b27..09431518b0e858ee 100644
--- a/Documentation/features/perf/perf-regs/arch-support.txt
+++ b/Documentation/features/perf/perf-regs/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/perf/perf-stackdump/arch-support.txt b/Documentation/features/perf/perf-stackdump/arch-support.txt
index c8e4c7c65012c1b3..f9db4dd8ef79a1be 100644
--- a/Documentation/features/perf/perf-stackdump/arch-support.txt
+++ b/Documentation/features/perf/perf-stackdump/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/sched/membarrier-sync-core/arch-support.txt b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
index 1e51614c136eb6e2..c7e41e91559fd144 100644
--- a/Documentation/features/sched/membarrier-sync-core/arch-support.txt
+++ b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
@@ -35,7 +35,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/sched/numa-balancing/arch-support.txt b/Documentation/features/sched/numa-balancing/arch-support.txt
index 532cc67cdf921784..984601c7c479dabf 100644
--- a/Documentation/features/sched/numa-balancing/arch-support.txt
+++ b/Documentation/features/sched/numa-balancing/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | .. |
| hexagon: | .. |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | .. |
| microblaze: | .. |
diff --git a/Documentation/features/seccomp/seccomp-filter/arch-support.txt b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
index dc71bf7b1a7ef333..1c2067944a64c9c6 100644
--- a/Documentation/features/seccomp/seccomp-filter/arch-support.txt
+++ b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/time/arch-tick-broadcast/arch-support.txt b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
index 9bffac80019e990a..ccba965e8d07178b 100644
--- a/Documentation/features/time/arch-tick-broadcast/arch-support.txt
+++ b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/time/clockevents/arch-support.txt b/Documentation/features/time/clockevents/arch-support.txt
index 625160048f68f012..4d4bfac529701f11 100644
--- a/Documentation/features/time/clockevents/arch-support.txt
+++ b/Documentation/features/time/clockevents/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | ok |
diff --git a/Documentation/features/time/context-tracking/arch-support.txt b/Documentation/features/time/context-tracking/arch-support.txt
index 72bc5bad0348cae0..891be9f619030293 100644
--- a/Documentation/features/time/context-tracking/arch-support.txt
+++ b/Documentation/features/time/context-tracking/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/time/irq-time-acct/arch-support.txt b/Documentation/features/time/irq-time-acct/arch-support.txt
index ceb036610d09bdba..3d10075a8a8a4ab1 100644
--- a/Documentation/features/time/irq-time-acct/arch-support.txt
+++ b/Documentation/features/time/irq-time-acct/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | .. |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/time/virt-cpuacct/arch-support.txt b/Documentation/features/time/virt-cpuacct/arch-support.txt
index c063dffd5261dce0..21f11d47ef722c56 100644
--- a/Documentation/features/time/virt-cpuacct/arch-support.txt
+++ b/Documentation/features/time/virt-cpuacct/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | ok |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/vm/ELF-ASLR/arch-support.txt b/Documentation/features/vm/ELF-ASLR/arch-support.txt
index 15164f36f2240816..ad0180c3b75f58ec 100644
--- a/Documentation/features/vm/ELF-ASLR/arch-support.txt
+++ b/Documentation/features/vm/ELF-ASLR/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/vm/PG_uncached/arch-support.txt b/Documentation/features/vm/PG_uncached/arch-support.txt
index 5acd64b97dba5cfb..5a7508b8c967e2fc 100644
--- a/Documentation/features/vm/PG_uncached/arch-support.txt
+++ b/Documentation/features/vm/PG_uncached/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | TODO |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | ok |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/vm/THP/arch-support.txt b/Documentation/features/vm/THP/arch-support.txt
index 9dd7d75d04653ebf..b4a5ce16940dfd3d 100644
--- a/Documentation/features/vm/THP/arch-support.txt
+++ b/Documentation/features/vm/THP/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | .. |
| hexagon: | .. |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | .. |
| microblaze: | .. |
diff --git a/Documentation/features/vm/TLB/arch-support.txt b/Documentation/features/vm/TLB/arch-support.txt
index 7f049c251a79e4c0..e83b49d2d7563f65 100644
--- a/Documentation/features/vm/TLB/arch-support.txt
+++ b/Documentation/features/vm/TLB/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | N/A |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | .. |
| microblaze: | .. |
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index 34647d9bdca46e2c..2d6de7b045385db1 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/vm/ioremap_prot/arch-support.txt b/Documentation/features/vm/ioremap_prot/arch-support.txt
index a24149e59d73e492..1638c2cb17f15cb2 100644
--- a/Documentation/features/vm/ioremap_prot/arch-support.txt
+++ b/Documentation/features/vm/ioremap_prot/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/vm/pte_special/arch-support.txt b/Documentation/features/vm/pte_special/arch-support.txt
index d2b22a06945e7526..3f777f8b67d539c2 100644
--- a/Documentation/features/vm/pte_special/arch-support.txt
+++ b/Documentation/features/vm/pte_special/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
--
2.39.1
^ permalink raw reply related [relevance 7%]
* [RFC PATCH 0/5] Retire IA64/Itanium support
@ 2023-02-15 10:00 1% ` Ard Biesheuvel
0 siblings, 0 replies; 200+ results
From: Ard Biesheuvel @ 2023-02-15 10:00 UTC (permalink / raw)
To: linux-kernel
Cc: Ard Biesheuvel, Jonathan Corbet, Arnd Bergmann, Tony Luck,
Jessica Clarke, John Paul Adrian Glaubitz, Matthew Wilcox,
Marc Zyngier, Guenter Roeck, Linus Torvalds, linux-ia64
The IA64 port of Linux has no maintainer, and according to a report from
its only remaining user [0], it has been broken for a month and nobody
cares.
Given that keeping a complex but unused architecture alive uses up
valuable developer bandwidth, let's just get rid of it.
This supersedes my patch proposing to mark it as 'dead', which received
no replies from anyone that wants to keep it alive. [1]
[0] https://www.spinics.net/lists/linux-ia64/msg21926.html
[1] https://lore.kernel.org/all/20230128122904.1345120-1-ardb@kernel.org/
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Jessica Clarke <jrtc27@jrtc27.com>
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-ia64@vger.kernel.org
Ard Biesheuvel (5):
arch: Remove Itanium (IA-64) architecture
kernel: Drop IA64 support from sig_fault handlers
Documentation: Drop IA64 from feature descriptions
lib/raid6: Drop IA64 support
Documentation: Drop or replace remaining mentions of IA64
Documentation/ABI/testing/sysfs-devices-system-cpu | 3 -
Documentation/ABI/testing/sysfs-firmware-dmi-entries | 2 +-
Documentation/admin-guide/kdump/kdump.rst | 37 +-
Documentation/admin-guide/kdump/vmcoreinfo.rst | 30 -
Documentation/admin-guide/kernel-parameters.txt | 8 +-
Documentation/admin-guide/mm/memory-hotplug.rst | 2 +-
Documentation/admin-guide/sysctl/kernel.rst | 23 +-
Documentation/arch.rst | 1 -
Documentation/block/ioprio.rst | 3 -
Documentation/core-api/cpu_hotplug.rst | 6 -
Documentation/core-api/debugging-via-ohci1394.rst | 6 +-
Documentation/features/core/cBPF-JIT/arch-support.txt | 1 -
Documentation/features/core/eBPF-JIT/arch-support.txt | 1 -
Documentation/features/core/generic-idle-thread/arch-support.txt | 1 -
Documentation/features/core/jump-labels/arch-support.txt | 1 -
Documentation/features/core/thread-info-in-task/arch-support.txt | 1 -
Documentation/features/core/tracehook/arch-support.txt | 1 -
Documentation/features/debug/KASAN/arch-support.txt | 1 -
Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 1 -
Documentation/features/debug/gcov-profile-all/arch-support.txt | 1 -
Documentation/features/debug/kcov/arch-support.txt | 1 -
Documentation/features/debug/kgdb/arch-support.txt | 1 -
Documentation/features/debug/kmemleak/arch-support.txt | 1 -
Documentation/features/debug/kprobes-on-ftrace/arch-support.txt | 1 -
Documentation/features/debug/kprobes/arch-support.txt | 1 -
Documentation/features/debug/kretprobes/arch-support.txt | 1 -
Documentation/features/debug/optprobes/arch-support.txt | 1 -
Documentation/features/debug/stackprotector/arch-support.txt | 1 -
Documentation/features/debug/uprobes/arch-support.txt | 1 -
Documentation/features/debug/user-ret-profiler/arch-support.txt | 1 -
Documentation/features/io/dma-contiguous/arch-support.txt | 1 -
Documentation/features/locking/cmpxchg-local/arch-support.txt | 1 -
Documentation/features/locking/lockdep/arch-support.txt | 1 -
Documentation/features/locking/queued-rwlocks/arch-support.txt | 1 -
Documentation/features/locking/queued-spinlocks/arch-support.txt | 1 -
Documentation/features/perf/kprobes-event/arch-support.txt | 1 -
Documentation/features/perf/perf-regs/arch-support.txt | 1 -
Documentation/features/perf/perf-stackdump/arch-support.txt | 1 -
Documentation/features/sched/membarrier-sync-core/arch-support.txt | 1 -
Documentation/features/sched/numa-balancing/arch-support.txt | 1 -
Documentation/features/seccomp/seccomp-filter/arch-support.txt | 1 -
Documentation/features/time/arch-tick-broadcast/arch-support.txt | 1 -
Documentation/features/time/clockevents/arch-support.txt | 1 -
Documentation/features/time/context-tracking/arch-support.txt | 1 -
Documentation/features/time/irq-time-acct/arch-support.txt | 1 -
Documentation/features/time/virt-cpuacct/arch-support.txt | 1 -
Documentation/features/vm/ELF-ASLR/arch-support.txt | 1 -
Documentation/features/vm/PG_uncached/arch-support.txt | 1 -
Documentation/features/vm/THP/arch-support.txt | 1 -
Documentation/features/vm/TLB/arch-support.txt | 1 -
Documentation/features/vm/huge-vmap/arch-support.txt | 1 -
Documentation/features/vm/ioremap_prot/arch-support.txt | 1 -
Documentation/features/vm/pte_special/arch-support.txt | 1 -
Documentation/ia64/aliasing.rst | 246 ---
Documentation/ia64/efirtc.rst | 144 --
Documentation/ia64/err_inject.rst | 1067 ---------
Documentation/ia64/features.rst | 3 -
Documentation/ia64/fsys.rst | 303 ---
Documentation/ia64/ia64.rst | 49 -
Documentation/ia64/index.rst | 19 -
Documentation/ia64/irq-redir.rst | 80 -
Documentation/ia64/mca.rst | 198 --
Documentation/ia64/serial.rst | 165 --
Documentation/kbuild/makefiles.rst | 2 +-
Documentation/networking/device_drivers/ethernet/neterion/s2io.rst | 4 +-
Documentation/scheduler/sched-arch.rst | 4 +-
Documentation/trace/kprobes.rst | 1 -
Documentation/translations/zh_CN/arch.rst | 1 -
Documentation/translations/zh_CN/core-api/cpu_hotplug.rst | 6 -
Documentation/translations/zh_CN/scheduler/sched-arch.rst | 5 +-
MAINTAINERS | 11 -
Makefile | 4 +-
arch/Kconfig | 1 -
arch/ia64/Kbuild | 3 -
arch/ia64/Kconfig | 410 ----
arch/ia64/Kconfig.debug | 55 -
arch/ia64/Makefile | 82 -
arch/ia64/configs/bigsur_defconfig | 102 -
arch/ia64/configs/generic_defconfig | 206 --
arch/ia64/configs/gensparse_defconfig | 184 --
arch/ia64/configs/tiger_defconfig | 169 --
arch/ia64/configs/zx1_defconfig | 148 --
arch/ia64/hp/common/Makefile | 10 -
arch/ia64/hp/common/aml_nfw.c | 232 --
arch/ia64/hp/common/sba_iommu.c | 2147 ------------------
arch/ia64/include/asm/Kbuild | 5 -
arch/ia64/include/asm/acenv.h | 49 -
arch/ia64/include/asm/acpi-ext.h | 17 -
arch/ia64/include/asm/acpi.h | 110 -
arch/ia64/include/asm/agp.h | 27 -
arch/ia64/include/asm/asm-offsets.h | 1 -
arch/ia64/include/asm/asm-prototypes.h | 30 -
arch/ia64/include/asm/asmmacro.h | 136 --
arch/ia64/include/asm/atomic.h | 223 --
arch/ia64/include/asm/barrier.h | 79 -
arch/ia64/include/asm/bitops.h | 453 ----
arch/ia64/include/asm/bug.h | 19 -
arch/ia64/include/asm/bugs.h | 20 -
arch/ia64/include/asm/cache.h | 30 -
arch/ia64/include/asm/cacheflush.h | 33 -
arch/ia64/include/asm/checksum.h | 63 -
arch/ia64/include/asm/clocksource.h | 11 -
arch/ia64/include/asm/cmpxchg.h | 16 -
arch/ia64/include/asm/cpu.h | 23 -
arch/ia64/include/asm/cputime.h | 21 -
arch/ia64/include/asm/current.h | 18 -
arch/ia64/include/asm/cyclone.h | 16 -
arch/ia64/include/asm/delay.h | 89 -
arch/ia64/include/asm/device.h | 14 -
arch/ia64/include/asm/div64.h | 1 -
arch/ia64/include/asm/dma-mapping.h | 16 -
arch/ia64/include/asm/dma.h | 17 -
arch/ia64/include/asm/dmi.h | 15 -
arch/ia64/include/asm/early_ioremap.h | 11 -
arch/ia64/include/asm/efi.h | 13 -
arch/ia64/include/asm/elf.h | 233 --
arch/ia64/include/asm/emergency-restart.h | 6 -
arch/ia64/include/asm/esi.h | 30 -
arch/ia64/include/asm/exception.h | 23 -
arch/ia64/include/asm/export.h | 3 -
arch/ia64/include/asm/extable.h | 12 -
arch/ia64/include/asm/fb.h | 24 -
arch/ia64/include/asm/fpswa.h | 74 -
arch/ia64/include/asm/ftrace.h | 28 -
arch/ia64/include/asm/futex.h | 109 -
arch/ia64/include/asm/gcc_intrin.h | 13 -
arch/ia64/include/asm/hardirq.h | 27 -
arch/ia64/include/asm/hugetlb.h | 34 -
arch/ia64/include/asm/hw_irq.h | 167 --
arch/ia64/include/asm/idle.h | 8 -
arch/ia64/include/asm/intrinsics.h | 13 -
arch/ia64/include/asm/io.h | 274 ---
arch/ia64/include/asm/iommu.h | 22 -
arch/ia64/include/asm/iosapic.h | 106 -
arch/ia64/include/asm/irq.h | 37 -
arch/ia64/include/asm/irq_regs.h | 1 -
arch/ia64/include/asm/irq_remapping.h | 5 -
arch/ia64/include/asm/irqflags.h | 95 -
arch/ia64/include/asm/kdebug.h | 45 -
arch/ia64/include/asm/kexec.h | 46 -
arch/ia64/include/asm/kprobes.h | 116 -
arch/ia64/include/asm/kregs.h | 166 --
arch/ia64/include/asm/libata-portmap.h | 9 -
arch/ia64/include/asm/linkage.h | 19 -
arch/ia64/include/asm/local.h | 1 -
arch/ia64/include/asm/mca.h | 185 --
arch/ia64/include/asm/mca_asm.h | 245 ---
arch/ia64/include/asm/meminit.h | 59 -
arch/ia64/include/asm/mman.h | 18 -
arch/ia64/include/asm/mmiowb.h | 17 -
arch/ia64/include/asm/mmu.h | 14 -
arch/ia64/include/asm/mmu_context.h | 194 --
arch/ia64/include/asm/mmzone.h | 35 -
arch/ia64/include/asm/module.h | 35 -
arch/ia64/include/asm/module.lds.h | 14 -
arch/ia64/include/asm/msidef.h | 43 -
arch/ia64/include/asm/native/inst.h | 119 -
arch/ia64/include/asm/native/irq.h | 20 -
arch/ia64/include/asm/native/patchlist.h | 24 -
arch/ia64/include/asm/nodedata.h | 63 -
arch/ia64/include/asm/numa.h | 83 -
arch/ia64/include/asm/page.h | 214 --
arch/ia64/include/asm/pal.h | 1827 ---------------
arch/ia64/include/asm/param.h | 18 -
arch/ia64/include/asm/parport.h | 20 -
arch/ia64/include/asm/patch.h | 28 -
arch/ia64/include/asm/pci.h | 66 -
arch/ia64/include/asm/percpu.h | 53 -
arch/ia64/include/asm/pgalloc.h | 64 -
arch/ia64/include/asm/pgtable.h | 520 -----
arch/ia64/include/asm/processor.h | 663 ------
arch/ia64/include/asm/ptrace.h | 146 --
arch/ia64/include/asm/sal.h | 919 --------
arch/ia64/include/asm/sections.h | 33 -
arch/ia64/include/asm/serial.h | 17 -
arch/ia64/include/asm/shmparam.h | 13 -
arch/ia64/include/asm/signal.h | 33 -
arch/ia64/include/asm/smp.h | 103 -
arch/ia64/include/asm/sn/intr.h | 15 -
arch/ia64/include/asm/sn/sn_sal.h | 124 --
arch/ia64/include/asm/sparsemem.h | 28 -
arch/ia64/include/asm/spinlock.h | 265 ---
arch/ia64/include/asm/spinlock_types.h | 22 -
arch/ia64/include/asm/string.h | 22 -
arch/ia64/include/asm/switch_to.h | 71 -
arch/ia64/include/asm/syscall.h | 65 -
arch/ia64/include/asm/thread_info.h | 131 --
arch/ia64/include/asm/timex.h | 47 -
arch/ia64/include/asm/tlb.h | 50 -
arch/ia64/include/asm/tlbflush.h | 128 --
arch/ia64/include/asm/topology.h | 56 -
arch/ia64/include/asm/types.h | 32 -
arch/ia64/include/asm/uaccess.h | 265 ---
arch/ia64/include/asm/uncached.h | 9 -
arch/ia64/include/asm/unistd.h | 38 -
arch/ia64/include/asm/unwind.h | 234 --
arch/ia64/include/asm/user.h | 53 -
arch/ia64/include/asm/ustack.h | 12 -
arch/ia64/include/asm/uv/uv.h | 30 -
arch/ia64/include/asm/uv/uv_hub.h | 315 ---
arch/ia64/include/asm/uv/uv_mmrs.h | 825 -------
arch/ia64/include/asm/vermagic.h | 15 -
arch/ia64/include/asm/vga.h | 26 -
arch/ia64/include/asm/vmalloc.h | 4 -
arch/ia64/include/asm/xor.h | 30 -
arch/ia64/include/asm/xtp.h | 46 -
arch/ia64/include/uapi/asm/Kbuild | 2 -
arch/ia64/include/uapi/asm/auxvec.h | 14 -
arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
arch/ia64/include/uapi/asm/break.h | 23 -
arch/ia64/include/uapi/asm/byteorder.h | 7 -
arch/ia64/include/uapi/asm/cmpxchg.h | 159 --
arch/ia64/include/uapi/asm/fcntl.h | 15 -
arch/ia64/include/uapi/asm/fpu.h | 67 -
arch/ia64/include/uapi/asm/gcc_intrin.h | 619 ------
arch/ia64/include/uapi/asm/ia64regs.h | 101 -
arch/ia64/include/uapi/asm/intel_intrin.h | 162 --
arch/ia64/include/uapi/asm/intrinsics.h | 86 -
arch/ia64/include/uapi/asm/mman.h | 17 -
arch/ia64/include/uapi/asm/param.h | 30 -
arch/ia64/include/uapi/asm/posix_types.h | 9 -
arch/ia64/include/uapi/asm/ptrace.h | 248 ---
arch/ia64/include/uapi/asm/ptrace_offsets.h | 269 ---
arch/ia64/include/uapi/asm/resource.h | 8 -
arch/ia64/include/uapi/asm/rse.h | 67 -
arch/ia64/include/uapi/asm/setup.h | 25 -
arch/ia64/include/uapi/asm/sigcontext.h | 71 -
arch/ia64/include/uapi/asm/siginfo.h | 28 -
arch/ia64/include/uapi/asm/signal.h | 98 -
arch/ia64/include/uapi/asm/stat.h | 52 -
arch/ia64/include/uapi/asm/statfs.h | 21 -
arch/ia64/include/uapi/asm/swab.h | 35 -
arch/ia64/include/uapi/asm/types.h | 32 -
arch/ia64/include/uapi/asm/ucontext.h | 13 -
arch/ia64/include/uapi/asm/unistd.h | 22 -
arch/ia64/include/uapi/asm/ustack.h | 13 -
arch/ia64/install.sh | 30 -
arch/ia64/kernel/.gitignore | 3 -
arch/ia64/kernel/Makefile | 46 -
arch/ia64/kernel/Makefile.gate | 29 -
arch/ia64/kernel/acpi-ext.c | 101 -
arch/ia64/kernel/acpi.c | 911 --------
arch/ia64/kernel/asm-offsets.c | 289 ---
arch/ia64/kernel/audit.c | 63 -
arch/ia64/kernel/brl_emu.c | 217 --
arch/ia64/kernel/crash.c | 266 ---
arch/ia64/kernel/crash_dump.c | 27 -
arch/ia64/kernel/cyclone.c | 125 --
arch/ia64/kernel/dma-mapping.c | 9 -
arch/ia64/kernel/efi.c | 1360 ------------
arch/ia64/kernel/efi_stub.S | 87 -
arch/ia64/kernel/elfcore.c | 77 -
arch/ia64/kernel/entry.S | 1428 ------------
arch/ia64/kernel/entry.h | 83 -
arch/ia64/kernel/err_inject.c | 273 ---
arch/ia64/kernel/esi.c | 193 --
arch/ia64/kernel/esi_stub.S | 99 -
arch/ia64/kernel/fsys.S | 837 -------
arch/ia64/kernel/fsyscall_gtod_data.h | 30 -
arch/ia64/kernel/ftrace.c | 196 --
arch/ia64/kernel/gate-data.S | 3 -
arch/ia64/kernel/gate.S | 380 ----
arch/ia64/kernel/gate.lds.S | 108 -
arch/ia64/kernel/head.S | 1168 ----------
arch/ia64/kernel/iosapic.c | 1137 ----------
arch/ia64/kernel/irq.c | 181 --
arch/ia64/kernel/irq.h | 3 -
arch/ia64/kernel/irq_ia64.c | 645 ------
arch/ia64/kernel/irq_lsapic.c | 45 -
arch/ia64/kernel/ivt.S | 1689 --------------
arch/ia64/kernel/kprobes.c | 911 --------
arch/ia64/kernel/machine_kexec.c | 163 --
arch/ia64/kernel/mca.c | 2111 ------------------
arch/ia64/kernel/mca_asm.S | 1123 ----------
arch/ia64/kernel/mca_drv.c | 796 -------
arch/ia64/kernel/mca_drv.h | 123 --
arch/ia64/kernel/mca_drv_asm.S | 56 -
arch/ia64/kernel/minstate.h | 251 ---
arch/ia64/kernel/module.c | 955 --------
arch/ia64/kernel/msi_ia64.c | 198 --
arch/ia64/kernel/numa.c | 73 -
arch/ia64/kernel/pal.S | 306 ---
arch/ia64/kernel/palinfo.c | 942 --------
arch/ia64/kernel/patch.c | 237 --
arch/ia64/kernel/pci-dma.c | 33 -
arch/ia64/kernel/perfmon_itanium.h | 116 -
arch/ia64/kernel/process.c | 610 -----
arch/ia64/kernel/ptrace.c | 2012 -----------------
arch/ia64/kernel/relocate_kernel.S | 321 ---
arch/ia64/kernel/sal.c | 400 ----
arch/ia64/kernel/salinfo.c | 646 ------
arch/ia64/kernel/setup.c | 1082 ---------
arch/ia64/kernel/sigframe.h | 26 -
arch/ia64/kernel/signal.c | 412 ----
arch/ia64/kernel/smp.c | 335 ---
arch/ia64/kernel/smpboot.c | 839 -------
arch/ia64/kernel/stacktrace.c | 40 -
arch/ia64/kernel/sys_ia64.c | 197 --
arch/ia64/kernel/syscalls/Makefile | 32 -
arch/ia64/kernel/syscalls/syscall.tbl | 373 ----
arch/ia64/kernel/time.c | 462 ----
arch/ia64/kernel/topology.c | 410 ----
arch/ia64/kernel/traps.c | 612 ------
arch/ia64/kernel/unaligned.c | 1560 -------------
arch/ia64/kernel/uncached.c | 273 ---
arch/ia64/kernel/unwind.c | 2320 --------------------
arch/ia64/kernel/unwind_decoder.c | 460 ----
arch/ia64/kernel/unwind_i.h | 165 --
arch/ia64/kernel/vmlinux.lds.S | 225 --
arch/ia64/lib/Makefile | 48 -
arch/ia64/lib/checksum.c | 102 -
arch/ia64/lib/clear_page.S | 79 -
arch/ia64/lib/clear_user.S | 212 --
arch/ia64/lib/copy_page.S | 101 -
arch/ia64/lib/copy_page_mck.S | 188 --
arch/ia64/lib/copy_user.S | 613 ------
arch/ia64/lib/csum_partial_copy.c | 98 -
arch/ia64/lib/do_csum.S | 324 ---
arch/ia64/lib/flush.S | 120 -
arch/ia64/lib/idiv32.S | 86 -
arch/ia64/lib/idiv64.S | 83 -
arch/ia64/lib/io.c | 51 -
arch/ia64/lib/ip_fast_csum.S | 148 --
arch/ia64/lib/memcpy.S | 304 ---
arch/ia64/lib/memcpy_mck.S | 659 ------
arch/ia64/lib/memset.S | 365 ---
arch/ia64/lib/strlen.S | 195 --
arch/ia64/lib/strncpy_from_user.S | 47 -
arch/ia64/lib/strnlen_user.S | 48 -
arch/ia64/lib/xor.S | 181 --
arch/ia64/mm/Makefile | 11 -
arch/ia64/mm/contig.c | 208 --
arch/ia64/mm/discontig.c | 635 ------
arch/ia64/mm/extable.c | 24 -
arch/ia64/mm/fault.c | 272 ---
arch/ia64/mm/hugetlbpage.c | 186 --
arch/ia64/mm/init.c | 518 -----
arch/ia64/mm/ioremap.c | 123 --
arch/ia64/mm/numa.c | 80 -
arch/ia64/mm/tlb.c | 591 -----
arch/ia64/pci/Makefile | 5 -
arch/ia64/pci/fixup.c | 80 -
arch/ia64/pci/pci.c | 576 -----
arch/ia64/scripts/check-gas | 16 -
arch/ia64/scripts/check-gas-asm.S | 2 -
arch/ia64/scripts/check-model.c | 1 -
arch/ia64/scripts/check-segrel.S | 5 -
arch/ia64/scripts/check-segrel.lds | 13 -
arch/ia64/scripts/check-serialize.S | 2 -
arch/ia64/scripts/check-text-align.S | 7 -
arch/ia64/scripts/toolchain-flags | 54 -
arch/ia64/scripts/unwcheck.py | 65 -
arch/ia64/uv/Makefile | 12 -
arch/ia64/uv/kernel/Makefile | 12 -
arch/ia64/uv/kernel/setup.c | 120 -
drivers/acpi/Kconfig | 6 +-
drivers/acpi/numa/Kconfig | 4 +-
drivers/acpi/osl.c | 2 +-
drivers/char/Kconfig | 4 +-
drivers/char/Makefile | 1 -
drivers/char/agp/Kconfig | 16 +-
drivers/char/agp/Makefile | 2 -
drivers/char/agp/hp-agp.c | 550 -----
drivers/char/agp/i460-agp.c | 659 ------
drivers/char/hpet.c | 30 -
drivers/char/hw_random/Kconfig | 2 +-
drivers/char/mem.c | 12 -
drivers/char/mspec.c | 295 ---
drivers/cpufreq/Kconfig | 11 -
drivers/cpufreq/Makefile | 1 -
drivers/cpufreq/ia64-acpi-cpufreq.c | 353 ---
drivers/firmware/Kconfig | 24 -
drivers/firmware/Makefile | 1 -
drivers/firmware/efi/Kconfig | 6 +-
drivers/firmware/efi/efi.c | 13 +-
drivers/firmware/pcdp.c | 135 --
drivers/firmware/pcdp.h | 108 -
drivers/gpu/drm/drm_ioc32.c | 4 +-
drivers/input/serio/i8042.h | 2 +-
drivers/iommu/Kconfig | 4 +-
drivers/iommu/intel/Kconfig | 2 +-
drivers/media/cec/platform/Kconfig | 2 +-
drivers/misc/Kconfig | 2 +-
drivers/misc/sgi-gru/gru.h | 4 +-
drivers/misc/sgi-gru/gru_instructions.h | 12 +-
drivers/misc/sgi-gru/grufile.c | 72 -
drivers/misc/sgi-gru/gruhandles.c | 6 -
drivers/misc/sgi-gru/grumain.c | 4 -
drivers/misc/sgi-xp/xp.h | 2 +-
drivers/misc/sgi-xp/xp_uv.c | 24 -
drivers/misc/sgi-xp/xpc_main.c | 31 -
drivers/misc/sgi-xp/xpc_uv.c | 85 -
drivers/net/ethernet/broadcom/tg3.c | 2 +-
drivers/net/ethernet/brocade/bna/bnad.h | 1 -
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c | 2 -
drivers/pci/vgaarb.c | 2 +-
drivers/tty/serial/8250/Kconfig | 2 +-
drivers/tty/vt/keyboard.c | 2 +-
drivers/video/fbdev/Kconfig | 2 +-
drivers/watchdog/Kconfig | 2 +-
fs/Kconfig | 2 +-
fs/afs/main.c | 2 -
fs/xfs/xfs_ioctl32.h | 2 +-
include/linux/acpi.h | 9 +-
include/linux/efi.h | 7 -
include/linux/mm.h | 2 -
include/linux/moduleparam.h | 2 +-
include/linux/raid/pq.h | 2 -
include/linux/sched/signal.h | 17 +-
include/trace/events/mmflags.h | 2 +-
init/Kconfig | 2 +-
kernel/cpu.c | 3 -
kernel/fork.c | 2 +-
kernel/sched/core.c | 29 +-
kernel/signal.c | 25 +-
kernel/sysctl.c | 9 -
lib/Kconfig.debug | 2 +-
lib/decompress_unxz.c | 3 -
lib/raid6/Makefile | 4 +-
lib/raid6/algos.c | 4 -
lib/xz/Kconfig | 5 -
mm/mmap.c | 6 +-
scripts/headers_install.sh | 1 -
tools/arch/ia64/include/asm/barrier.h | 59 -
tools/arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
tools/arch/ia64/include/uapi/asm/mman.h | 7 -
usr/include/Makefile | 6 -
427 files changed, 74 insertions(+), 65400 deletions(-)
delete mode 100644 Documentation/ia64/aliasing.rst
delete mode 100644 Documentation/ia64/efirtc.rst
delete mode 100644 Documentation/ia64/err_inject.rst
delete mode 100644 Documentation/ia64/features.rst
delete mode 100644 Documentation/ia64/fsys.rst
delete mode 100644 Documentation/ia64/ia64.rst
delete mode 100644 Documentation/ia64/index.rst
delete mode 100644 Documentation/ia64/irq-redir.rst
delete mode 100644 Documentation/ia64/mca.rst
delete mode 100644 Documentation/ia64/serial.rst
delete mode 100644 arch/ia64/Kbuild
delete mode 100644 arch/ia64/Kconfig
delete mode 100644 arch/ia64/Kconfig.debug
delete mode 100644 arch/ia64/Makefile
delete mode 100644 arch/ia64/configs/bigsur_defconfig
delete mode 100644 arch/ia64/configs/generic_defconfig
delete mode 100644 arch/ia64/configs/gensparse_defconfig
delete mode 100644 arch/ia64/configs/tiger_defconfig
delete mode 100644 arch/ia64/configs/zx1_defconfig
delete mode 100644 arch/ia64/hp/common/Makefile
delete mode 100644 arch/ia64/hp/common/aml_nfw.c
delete mode 100644 arch/ia64/hp/common/sba_iommu.c
delete mode 100644 arch/ia64/include/asm/Kbuild
delete mode 100644 arch/ia64/include/asm/acenv.h
delete mode 100644 arch/ia64/include/asm/acpi-ext.h
delete mode 100644 arch/ia64/include/asm/acpi.h
delete mode 100644 arch/ia64/include/asm/agp.h
delete mode 100644 arch/ia64/include/asm/asm-offsets.h
delete mode 100644 arch/ia64/include/asm/asm-prototypes.h
delete mode 100644 arch/ia64/include/asm/asmmacro.h
delete mode 100644 arch/ia64/include/asm/atomic.h
delete mode 100644 arch/ia64/include/asm/barrier.h
delete mode 100644 arch/ia64/include/asm/bitops.h
delete mode 100644 arch/ia64/include/asm/bug.h
delete mode 100644 arch/ia64/include/asm/bugs.h
delete mode 100644 arch/ia64/include/asm/cache.h
delete mode 100644 arch/ia64/include/asm/cacheflush.h
delete mode 100644 arch/ia64/include/asm/checksum.h
delete mode 100644 arch/ia64/include/asm/clocksource.h
delete mode 100644 arch/ia64/include/asm/cmpxchg.h
delete mode 100644 arch/ia64/include/asm/cpu.h
delete mode 100644 arch/ia64/include/asm/cputime.h
delete mode 100644 arch/ia64/include/asm/current.h
delete mode 100644 arch/ia64/include/asm/cyclone.h
delete mode 100644 arch/ia64/include/asm/delay.h
delete mode 100644 arch/ia64/include/asm/device.h
delete mode 100644 arch/ia64/include/asm/div64.h
delete mode 100644 arch/ia64/include/asm/dma-mapping.h
delete mode 100644 arch/ia64/include/asm/dma.h
delete mode 100644 arch/ia64/include/asm/dmi.h
delete mode 100644 arch/ia64/include/asm/early_ioremap.h
delete mode 100644 arch/ia64/include/asm/efi.h
delete mode 100644 arch/ia64/include/asm/elf.h
delete mode 100644 arch/ia64/include/asm/emergency-restart.h
delete mode 100644 arch/ia64/include/asm/esi.h
delete mode 100644 arch/ia64/include/asm/exception.h
delete mode 100644 arch/ia64/include/asm/export.h
delete mode 100644 arch/ia64/include/asm/extable.h
delete mode 100644 arch/ia64/include/asm/fb.h
delete mode 100644 arch/ia64/include/asm/fpswa.h
delete mode 100644 arch/ia64/include/asm/ftrace.h
delete mode 100644 arch/ia64/include/asm/futex.h
delete mode 100644 arch/ia64/include/asm/gcc_intrin.h
delete mode 100644 arch/ia64/include/asm/hardirq.h
delete mode 100644 arch/ia64/include/asm/hugetlb.h
delete mode 100644 arch/ia64/include/asm/hw_irq.h
delete mode 100644 arch/ia64/include/asm/idle.h
delete mode 100644 arch/ia64/include/asm/intrinsics.h
delete mode 100644 arch/ia64/include/asm/io.h
delete mode 100644 arch/ia64/include/asm/iommu.h
delete mode 100644 arch/ia64/include/asm/iosapic.h
delete mode 100644 arch/ia64/include/asm/irq.h
delete mode 100644 arch/ia64/include/asm/irq_regs.h
delete mode 100644 arch/ia64/include/asm/irq_remapping.h
delete mode 100644 arch/ia64/include/asm/irqflags.h
delete mode 100644 arch/ia64/include/asm/kdebug.h
delete mode 100644 arch/ia64/include/asm/kexec.h
delete mode 100644 arch/ia64/include/asm/kprobes.h
delete mode 100644 arch/ia64/include/asm/kregs.h
delete mode 100644 arch/ia64/include/asm/libata-portmap.h
delete mode 100644 arch/ia64/include/asm/linkage.h
delete mode 100644 arch/ia64/include/asm/local.h
delete mode 100644 arch/ia64/include/asm/mca.h
delete mode 100644 arch/ia64/include/asm/mca_asm.h
delete mode 100644 arch/ia64/include/asm/meminit.h
delete mode 100644 arch/ia64/include/asm/mman.h
delete mode 100644 arch/ia64/include/asm/mmiowb.h
delete mode 100644 arch/ia64/include/asm/mmu.h
delete mode 100644 arch/ia64/include/asm/mmu_context.h
delete mode 100644 arch/ia64/include/asm/mmzone.h
delete mode 100644 arch/ia64/include/asm/module.h
delete mode 100644 arch/ia64/include/asm/module.lds.h
delete mode 100644 arch/ia64/include/asm/msidef.h
delete mode 100644 arch/ia64/include/asm/native/inst.h
delete mode 100644 arch/ia64/include/asm/native/irq.h
delete mode 100644 arch/ia64/include/asm/native/patchlist.h
delete mode 100644 arch/ia64/include/asm/nodedata.h
delete mode 100644 arch/ia64/include/asm/numa.h
delete mode 100644 arch/ia64/include/asm/page.h
delete mode 100644 arch/ia64/include/asm/pal.h
delete mode 100644 arch/ia64/include/asm/param.h
delete mode 100644 arch/ia64/include/asm/parport.h
delete mode 100644 arch/ia64/include/asm/patch.h
delete mode 100644 arch/ia64/include/asm/pci.h
delete mode 100644 arch/ia64/include/asm/percpu.h
delete mode 100644 arch/ia64/include/asm/pgalloc.h
delete mode 100644 arch/ia64/include/asm/pgtable.h
delete mode 100644 arch/ia64/include/asm/processor.h
delete mode 100644 arch/ia64/include/asm/ptrace.h
delete mode 100644 arch/ia64/include/asm/sal.h
delete mode 100644 arch/ia64/include/asm/sections.h
delete mode 100644 arch/ia64/include/asm/serial.h
delete mode 100644 arch/ia64/include/asm/shmparam.h
delete mode 100644 arch/ia64/include/asm/signal.h
delete mode 100644 arch/ia64/include/asm/smp.h
delete mode 100644 arch/ia64/include/asm/sn/intr.h
delete mode 100644 arch/ia64/include/asm/sn/sn_sal.h
delete mode 100644 arch/ia64/include/asm/sparsemem.h
delete mode 100644 arch/ia64/include/asm/spinlock.h
delete mode 100644 arch/ia64/include/asm/spinlock_types.h
delete mode 100644 arch/ia64/include/asm/string.h
delete mode 100644 arch/ia64/include/asm/switch_to.h
delete mode 100644 arch/ia64/include/asm/syscall.h
delete mode 100644 arch/ia64/include/asm/thread_info.h
delete mode 100644 arch/ia64/include/asm/timex.h
delete mode 100644 arch/ia64/include/asm/tlb.h
delete mode 100644 arch/ia64/include/asm/tlbflush.h
delete mode 100644 arch/ia64/include/asm/topology.h
delete mode 100644 arch/ia64/include/asm/types.h
delete mode 100644 arch/ia64/include/asm/uaccess.h
delete mode 100644 arch/ia64/include/asm/uncached.h
delete mode 100644 arch/ia64/include/asm/unistd.h
delete mode 100644 arch/ia64/include/asm/unwind.h
delete mode 100644 arch/ia64/include/asm/user.h
delete mode 100644 arch/ia64/include/asm/ustack.h
delete mode 100644 arch/ia64/include/asm/uv/uv.h
delete mode 100644 arch/ia64/include/asm/uv/uv_hub.h
delete mode 100644 arch/ia64/include/asm/uv/uv_mmrs.h
delete mode 100644 arch/ia64/include/asm/vermagic.h
delete mode 100644 arch/ia64/include/asm/vga.h
delete mode 100644 arch/ia64/include/asm/vmalloc.h
delete mode 100644 arch/ia64/include/asm/xor.h
delete mode 100644 arch/ia64/include/asm/xtp.h
delete mode 100644 arch/ia64/include/uapi/asm/Kbuild
delete mode 100644 arch/ia64/include/uapi/asm/auxvec.h
delete mode 100644 arch/ia64/include/uapi/asm/bitsperlong.h
delete mode 100644 arch/ia64/include/uapi/asm/break.h
delete mode 100644 arch/ia64/include/uapi/asm/byteorder.h
delete mode 100644 arch/ia64/include/uapi/asm/cmpxchg.h
delete mode 100644 arch/ia64/include/uapi/asm/fcntl.h
delete mode 100644 arch/ia64/include/uapi/asm/fpu.h
delete mode 100644 arch/ia64/include/uapi/asm/gcc_intrin.h
delete mode 100644 arch/ia64/include/uapi/asm/ia64regs.h
delete mode 100644 arch/ia64/include/uapi/asm/intel_intrin.h
delete mode 100644 arch/ia64/include/uapi/asm/intrinsics.h
delete mode 100644 arch/ia64/include/uapi/asm/mman.h
delete mode 100644 arch/ia64/include/uapi/asm/param.h
delete mode 100644 arch/ia64/include/uapi/asm/posix_types.h
delete mode 100644 arch/ia64/include/uapi/asm/ptrace.h
delete mode 100644 arch/ia64/include/uapi/asm/ptrace_offsets.h
delete mode 100644 arch/ia64/include/uapi/asm/resource.h
delete mode 100644 arch/ia64/include/uapi/asm/rse.h
delete mode 100644 arch/ia64/include/uapi/asm/setup.h
delete mode 100644 arch/ia64/include/uapi/asm/sigcontext.h
delete mode 100644 arch/ia64/include/uapi/asm/siginfo.h
delete mode 100644 arch/ia64/include/uapi/asm/signal.h
delete mode 100644 arch/ia64/include/uapi/asm/stat.h
delete mode 100644 arch/ia64/include/uapi/asm/statfs.h
delete mode 100644 arch/ia64/include/uapi/asm/swab.h
delete mode 100644 arch/ia64/include/uapi/asm/types.h
delete mode 100644 arch/ia64/include/uapi/asm/ucontext.h
delete mode 100644 arch/ia64/include/uapi/asm/unistd.h
delete mode 100644 arch/ia64/include/uapi/asm/ustack.h
delete mode 100755 arch/ia64/install.sh
delete mode 100644 arch/ia64/kernel/.gitignore
delete mode 100644 arch/ia64/kernel/Makefile
delete mode 100644 arch/ia64/kernel/Makefile.gate
delete mode 100644 arch/ia64/kernel/acpi-ext.c
delete mode 100644 arch/ia64/kernel/acpi.c
delete mode 100644 arch/ia64/kernel/asm-offsets.c
delete mode 100644 arch/ia64/kernel/audit.c
delete mode 100644 arch/ia64/kernel/brl_emu.c
delete mode 100644 arch/ia64/kernel/crash.c
delete mode 100644 arch/ia64/kernel/crash_dump.c
delete mode 100644 arch/ia64/kernel/cyclone.c
delete mode 100644 arch/ia64/kernel/dma-mapping.c
delete mode 100644 arch/ia64/kernel/efi.c
delete mode 100644 arch/ia64/kernel/efi_stub.S
delete mode 100644 arch/ia64/kernel/elfcore.c
delete mode 100644 arch/ia64/kernel/entry.S
delete mode 100644 arch/ia64/kernel/entry.h
delete mode 100644 arch/ia64/kernel/err_inject.c
delete mode 100644 arch/ia64/kernel/esi.c
delete mode 100644 arch/ia64/kernel/esi_stub.S
delete mode 100644 arch/ia64/kernel/fsys.S
delete mode 100644 arch/ia64/kernel/fsyscall_gtod_data.h
delete mode 100644 arch/ia64/kernel/ftrace.c
delete mode 100644 arch/ia64/kernel/gate-data.S
delete mode 100644 arch/ia64/kernel/gate.S
delete mode 100644 arch/ia64/kernel/gate.lds.S
delete mode 100644 arch/ia64/kernel/head.S
delete mode 100644 arch/ia64/kernel/iosapic.c
delete mode 100644 arch/ia64/kernel/irq.c
delete mode 100644 arch/ia64/kernel/irq.h
delete mode 100644 arch/ia64/kernel/irq_ia64.c
delete mode 100644 arch/ia64/kernel/irq_lsapic.c
delete mode 100644 arch/ia64/kernel/ivt.S
delete mode 100644 arch/ia64/kernel/kprobes.c
delete mode 100644 arch/ia64/kernel/machine_kexec.c
delete mode 100644 arch/ia64/kernel/mca.c
delete mode 100644 arch/ia64/kernel/mca_asm.S
delete mode 100644 arch/ia64/kernel/mca_drv.c
delete mode 100644 arch/ia64/kernel/mca_drv.h
delete mode 100644 arch/ia64/kernel/mca_drv_asm.S
delete mode 100644 arch/ia64/kernel/minstate.h
delete mode 100644 arch/ia64/kernel/module.c
delete mode 100644 arch/ia64/kernel/msi_ia64.c
delete mode 100644 arch/ia64/kernel/numa.c
delete mode 100644 arch/ia64/kernel/pal.S
delete mode 100644 arch/ia64/kernel/palinfo.c
delete mode 100644 arch/ia64/kernel/patch.c
delete mode 100644 arch/ia64/kernel/pci-dma.c
delete mode 100644 arch/ia64/kernel/perfmon_itanium.h
delete mode 100644 arch/ia64/kernel/process.c
delete mode 100644 arch/ia64/kernel/ptrace.c
delete mode 100644 arch/ia64/kernel/relocate_kernel.S
delete mode 100644 arch/ia64/kernel/sal.c
delete mode 100644 arch/ia64/kernel/salinfo.c
delete mode 100644 arch/ia64/kernel/setup.c
delete mode 100644 arch/ia64/kernel/sigframe.h
delete mode 100644 arch/ia64/kernel/signal.c
delete mode 100644 arch/ia64/kernel/smp.c
delete mode 100644 arch/ia64/kernel/smpboot.c
delete mode 100644 arch/ia64/kernel/stacktrace.c
delete mode 100644 arch/ia64/kernel/sys_ia64.c
delete mode 100644 arch/ia64/kernel/syscalls/Makefile
delete mode 100644 arch/ia64/kernel/syscalls/syscall.tbl
delete mode 100644 arch/ia64/kernel/time.c
delete mode 100644 arch/ia64/kernel/topology.c
delete mode 100644 arch/ia64/kernel/traps.c
delete mode 100644 arch/ia64/kernel/unaligned.c
delete mode 100644 arch/ia64/kernel/uncached.c
delete mode 100644 arch/ia64/kernel/unwind.c
delete mode 100644 arch/ia64/kernel/unwind_decoder.c
delete mode 100644 arch/ia64/kernel/unwind_i.h
delete mode 100644 arch/ia64/kernel/vmlinux.lds.S
delete mode 100644 arch/ia64/lib/Makefile
delete mode 100644 arch/ia64/lib/checksum.c
delete mode 100644 arch/ia64/lib/clear_page.S
delete mode 100644 arch/ia64/lib/clear_user.S
delete mode 100644 arch/ia64/lib/copy_page.S
delete mode 100644 arch/ia64/lib/copy_page_mck.S
delete mode 100644 arch/ia64/lib/copy_user.S
delete mode 100644 arch/ia64/lib/csum_partial_copy.c
delete mode 100644 arch/ia64/lib/do_csum.S
delete mode 100644 arch/ia64/lib/flush.S
delete mode 100644 arch/ia64/lib/idiv32.S
delete mode 100644 arch/ia64/lib/idiv64.S
delete mode 100644 arch/ia64/lib/io.c
delete mode 100644 arch/ia64/lib/ip_fast_csum.S
delete mode 100644 arch/ia64/lib/memcpy.S
delete mode 100644 arch/ia64/lib/memcpy_mck.S
delete mode 100644 arch/ia64/lib/memset.S
delete mode 100644 arch/ia64/lib/strlen.S
delete mode 100644 arch/ia64/lib/strncpy_from_user.S
delete mode 100644 arch/ia64/lib/strnlen_user.S
delete mode 100644 arch/ia64/lib/xor.S
delete mode 100644 arch/ia64/mm/Makefile
delete mode 100644 arch/ia64/mm/contig.c
delete mode 100644 arch/ia64/mm/discontig.c
delete mode 100644 arch/ia64/mm/extable.c
delete mode 100644 arch/ia64/mm/fault.c
delete mode 100644 arch/ia64/mm/hugetlbpage.c
delete mode 100644 arch/ia64/mm/init.c
delete mode 100644 arch/ia64/mm/ioremap.c
delete mode 100644 arch/ia64/mm/numa.c
delete mode 100644 arch/ia64/mm/tlb.c
delete mode 100644 arch/ia64/pci/Makefile
delete mode 100644 arch/ia64/pci/fixup.c
delete mode 100644 arch/ia64/pci/pci.c
delete mode 100755 arch/ia64/scripts/check-gas
delete mode 100644 arch/ia64/scripts/check-gas-asm.S
delete mode 100644 arch/ia64/scripts/check-model.c
delete mode 100644 arch/ia64/scripts/check-segrel.S
delete mode 100644 arch/ia64/scripts/check-segrel.lds
delete mode 100644 arch/ia64/scripts/check-serialize.S
delete mode 100644 arch/ia64/scripts/check-text-align.S
delete mode 100755 arch/ia64/scripts/toolchain-flags
delete mode 100644 arch/ia64/scripts/unwcheck.py
delete mode 100644 arch/ia64/uv/Makefile
delete mode 100644 arch/ia64/uv/kernel/Makefile
delete mode 100644 arch/ia64/uv/kernel/setup.c
delete mode 100644 drivers/char/agp/hp-agp.c
delete mode 100644 drivers/char/agp/i460-agp.c
delete mode 100644 drivers/char/mspec.c
delete mode 100644 drivers/cpufreq/ia64-acpi-cpufreq.c
delete mode 100644 drivers/firmware/pcdp.c
delete mode 100644 drivers/firmware/pcdp.h
delete mode 100644 tools/arch/ia64/include/asm/barrier.h
delete mode 100644 tools/arch/ia64/include/uapi/asm/bitsperlong.h
delete mode 100644 tools/arch/ia64/include/uapi/asm/mman.h
--
2.39.1
^ permalink raw reply [relevance 1%]
* [RFC PATCH 3/5] Documentation: Drop IA64 from feature descriptions
@ 2023-02-15 10:00 7% ` Ard Biesheuvel
0 siblings, 0 replies; 200+ results
From: Ard Biesheuvel @ 2023-02-15 10:00 UTC (permalink / raw)
To: linux-kernel
Cc: Ard Biesheuvel, Jonathan Corbet, Arnd Bergmann, Tony Luck,
Jessica Clarke, John Paul Adrian Glaubitz, Matthew Wilcox,
Marc Zyngier, Guenter Roeck, Linus Torvalds, linux-ia64
Itanium (IA64) is going away, so drop it from the kernel feature
documentation.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
Documentation/features/core/cBPF-JIT/arch-support.txt | 1 -
Documentation/features/core/eBPF-JIT/arch-support.txt | 1 -
Documentation/features/core/generic-idle-thread/arch-support.txt | 1 -
Documentation/features/core/jump-labels/arch-support.txt | 1 -
Documentation/features/core/thread-info-in-task/arch-support.txt | 1 -
Documentation/features/core/tracehook/arch-support.txt | 1 -
Documentation/features/debug/KASAN/arch-support.txt | 1 -
Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 1 -
Documentation/features/debug/gcov-profile-all/arch-support.txt | 1 -
Documentation/features/debug/kcov/arch-support.txt | 1 -
Documentation/features/debug/kgdb/arch-support.txt | 1 -
Documentation/features/debug/kmemleak/arch-support.txt | 1 -
Documentation/features/debug/kprobes-on-ftrace/arch-support.txt | 1 -
Documentation/features/debug/kprobes/arch-support.txt | 1 -
Documentation/features/debug/kretprobes/arch-support.txt | 1 -
Documentation/features/debug/optprobes/arch-support.txt | 1 -
Documentation/features/debug/stackprotector/arch-support.txt | 1 -
Documentation/features/debug/uprobes/arch-support.txt | 1 -
Documentation/features/debug/user-ret-profiler/arch-support.txt | 1 -
Documentation/features/io/dma-contiguous/arch-support.txt | 1 -
Documentation/features/locking/cmpxchg-local/arch-support.txt | 1 -
Documentation/features/locking/lockdep/arch-support.txt | 1 -
Documentation/features/locking/queued-rwlocks/arch-support.txt | 1 -
Documentation/features/locking/queued-spinlocks/arch-support.txt | 1 -
Documentation/features/perf/kprobes-event/arch-support.txt | 1 -
Documentation/features/perf/perf-regs/arch-support.txt | 1 -
Documentation/features/perf/perf-stackdump/arch-support.txt | 1 -
Documentation/features/sched/membarrier-sync-core/arch-support.txt | 1 -
Documentation/features/sched/numa-balancing/arch-support.txt | 1 -
Documentation/features/seccomp/seccomp-filter/arch-support.txt | 1 -
Documentation/features/time/arch-tick-broadcast/arch-support.txt | 1 -
Documentation/features/time/clockevents/arch-support.txt | 1 -
Documentation/features/time/context-tracking/arch-support.txt | 1 -
Documentation/features/time/irq-time-acct/arch-support.txt | 1 -
Documentation/features/time/virt-cpuacct/arch-support.txt | 1 -
Documentation/features/vm/ELF-ASLR/arch-support.txt | 1 -
Documentation/features/vm/PG_uncached/arch-support.txt | 1 -
Documentation/features/vm/THP/arch-support.txt | 1 -
Documentation/features/vm/TLB/arch-support.txt | 1 -
Documentation/features/vm/huge-vmap/arch-support.txt | 1 -
Documentation/features/vm/ioremap_prot/arch-support.txt | 1 -
Documentation/features/vm/pte_special/arch-support.txt | 1 -
42 files changed, 42 deletions(-)
diff --git a/Documentation/features/core/cBPF-JIT/arch-support.txt b/Documentation/features/core/cBPF-JIT/arch-support.txt
index 0a1f5bb7eeb9a63a..937840080de718cd 100644
--- a/Documentation/features/core/cBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/cBPF-JIT/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | TODO |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/core/eBPF-JIT/arch-support.txt b/Documentation/features/core/eBPF-JIT/arch-support.txt
index 6c0f3d759e6a0b2e..7434b43c2ff8727f 100644
--- a/Documentation/features/core/eBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/eBPF-JIT/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/core/generic-idle-thread/arch-support.txt b/Documentation/features/core/generic-idle-thread/arch-support.txt
index 0b94099cf6aca230..0735cb5367b4b179 100644
--- a/Documentation/features/core/generic-idle-thread/arch-support.txt
+++ b/Documentation/features/core/generic-idle-thread/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
- | ia64: | ok |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/core/jump-labels/arch-support.txt b/Documentation/features/core/jump-labels/arch-support.txt
index 2328eada3a491a4d..f1921393981c6e4c 100644
--- a/Documentation/features/core/jump-labels/arch-support.txt
+++ b/Documentation/features/core/jump-labels/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/core/thread-info-in-task/arch-support.txt b/Documentation/features/core/thread-info-in-task/arch-support.txt
index 9c5d39eebef21520..89a9f69ff9fdbc60 100644
--- a/Documentation/features/core/thread-info-in-task/arch-support.txt
+++ b/Documentation/features/core/thread-info-in-task/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/core/tracehook/arch-support.txt b/Documentation/features/core/tracehook/arch-support.txt
index aed5679da651cad2..a72330e2554245c2 100644
--- a/Documentation/features/core/tracehook/arch-support.txt
+++ b/Documentation/features/core/tracehook/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
- | ia64: | ok |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/KASAN/arch-support.txt b/Documentation/features/debug/KASAN/arch-support.txt
index bf0124fae643a1bb..83633c583104774a 100644
--- a/Documentation/features/debug/KASAN/arch-support.txt
+++ b/Documentation/features/debug/KASAN/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
index 9ec5d13f4939c6b3..bbf029f095cb57eb 100644
--- a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
+++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/gcov-profile-all/arch-support.txt b/Documentation/features/debug/gcov-profile-all/arch-support.txt
index dc4014f7e1f8ad77..63494bddc2638e13 100644
--- a/Documentation/features/debug/gcov-profile-all/arch-support.txt
+++ b/Documentation/features/debug/gcov-profile-all/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | ok |
diff --git a/Documentation/features/debug/kcov/arch-support.txt b/Documentation/features/debug/kcov/arch-support.txt
index ffcc9f2b1d74d393..cdeace38aa9775b3 100644
--- a/Documentation/features/debug/kcov/arch-support.txt
+++ b/Documentation/features/debug/kcov/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/kgdb/arch-support.txt b/Documentation/features/debug/kgdb/arch-support.txt
index 958498f9f2a41f2b..9c7e23d574ef4c05 100644
--- a/Documentation/features/debug/kgdb/arch-support.txt
+++ b/Documentation/features/debug/kgdb/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | ok |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | ok |
diff --git a/Documentation/features/debug/kmemleak/arch-support.txt b/Documentation/features/debug/kmemleak/arch-support.txt
index 0cfa5f0e4db15230..1fa8bd638716979e 100644
--- a/Documentation/features/debug/kmemleak/arch-support.txt
+++ b/Documentation/features/debug/kmemleak/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | ok |
diff --git a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
index bcc29d3aba9ad884..9343ec9347b7148f 100644
--- a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
+++ b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | TODO |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/kprobes/arch-support.txt b/Documentation/features/debug/kprobes/arch-support.txt
index 8a77d62a42c59b81..4bf01cc4e023be0a 100644
--- a/Documentation/features/debug/kprobes/arch-support.txt
+++ b/Documentation/features/debug/kprobes/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | ok |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/kretprobes/arch-support.txt b/Documentation/features/debug/kretprobes/arch-support.txt
index cf4723c5ac55df9c..0493d0b07ea4b496 100644
--- a/Documentation/features/debug/kretprobes/arch-support.txt
+++ b/Documentation/features/debug/kretprobes/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | ok |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/optprobes/arch-support.txt b/Documentation/features/debug/optprobes/arch-support.txt
index 83a4639a5c0a15aa..92f5d0f444faa554 100644
--- a/Documentation/features/debug/optprobes/arch-support.txt
+++ b/Documentation/features/debug/optprobes/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | TODO |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/stackprotector/arch-support.txt b/Documentation/features/debug/stackprotector/arch-support.txt
index 71cd4ba18f7df6b0..8919efaeef989c59 100644
--- a/Documentation/features/debug/stackprotector/arch-support.txt
+++ b/Documentation/features/debug/stackprotector/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/uprobes/arch-support.txt b/Documentation/features/debug/uprobes/arch-support.txt
index d53f2f94fbda5fda..6f8296c0dbbee1db 100644
--- a/Documentation/features/debug/uprobes/arch-support.txt
+++ b/Documentation/features/debug/uprobes/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/debug/user-ret-profiler/arch-support.txt b/Documentation/features/debug/user-ret-profiler/arch-support.txt
index 059110a5fa6eb9cc..3e431767581d1f33 100644
--- a/Documentation/features/debug/user-ret-profiler/arch-support.txt
+++ b/Documentation/features/debug/user-ret-profiler/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | TODO |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/io/dma-contiguous/arch-support.txt b/Documentation/features/io/dma-contiguous/arch-support.txt
index bfe0921a3853ad6c..3c6ce35d704f97f4 100644
--- a/Documentation/features/io/dma-contiguous/arch-support.txt
+++ b/Documentation/features/io/dma-contiguous/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | ok |
diff --git a/Documentation/features/locking/cmpxchg-local/arch-support.txt b/Documentation/features/locking/cmpxchg-local/arch-support.txt
index 68329e96dffad2d0..2c3a4b91f16df341 100644
--- a/Documentation/features/locking/cmpxchg-local/arch-support.txt
+++ b/Documentation/features/locking/cmpxchg-local/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/locking/lockdep/arch-support.txt b/Documentation/features/locking/lockdep/arch-support.txt
index ddb945278589e1d8..4d9c5306f72f1c71 100644
--- a/Documentation/features/locking/lockdep/arch-support.txt
+++ b/Documentation/features/locking/lockdep/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | ok |
diff --git a/Documentation/features/locking/queued-rwlocks/arch-support.txt b/Documentation/features/locking/queued-rwlocks/arch-support.txt
index 5deb845477e4909a..b286a5fff283be7b 100644
--- a/Documentation/features/locking/queued-rwlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-rwlocks/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/locking/queued-spinlocks/arch-support.txt b/Documentation/features/locking/queued-spinlocks/arch-support.txt
index 2d3961bfef5d666e..22f2990392ff8f5c 100644
--- a/Documentation/features/locking/queued-spinlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-spinlocks/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/perf/kprobes-event/arch-support.txt b/Documentation/features/perf/kprobes-event/arch-support.txt
index 641a7d2ff2a3cacb..713a69fcd697bd70 100644
--- a/Documentation/features/perf/kprobes-event/arch-support.txt
+++ b/Documentation/features/perf/kprobes-event/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/perf/perf-regs/arch-support.txt b/Documentation/features/perf/perf-regs/arch-support.txt
index 33866eb242c18b27..09431518b0e858ee 100644
--- a/Documentation/features/perf/perf-regs/arch-support.txt
+++ b/Documentation/features/perf/perf-regs/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/perf/perf-stackdump/arch-support.txt b/Documentation/features/perf/perf-stackdump/arch-support.txt
index c8e4c7c65012c1b3..f9db4dd8ef79a1be 100644
--- a/Documentation/features/perf/perf-stackdump/arch-support.txt
+++ b/Documentation/features/perf/perf-stackdump/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/sched/membarrier-sync-core/arch-support.txt b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
index 1e51614c136eb6e2..c7e41e91559fd144 100644
--- a/Documentation/features/sched/membarrier-sync-core/arch-support.txt
+++ b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
@@ -35,7 +35,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/sched/numa-balancing/arch-support.txt b/Documentation/features/sched/numa-balancing/arch-support.txt
index 532cc67cdf921784..984601c7c479dabf 100644
--- a/Documentation/features/sched/numa-balancing/arch-support.txt
+++ b/Documentation/features/sched/numa-balancing/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | .. |
| hexagon: | .. |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | .. |
| microblaze: | .. |
diff --git a/Documentation/features/seccomp/seccomp-filter/arch-support.txt b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
index dc71bf7b1a7ef333..1c2067944a64c9c6 100644
--- a/Documentation/features/seccomp/seccomp-filter/arch-support.txt
+++ b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/time/arch-tick-broadcast/arch-support.txt b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
index 9bffac80019e990a..ccba965e8d07178b 100644
--- a/Documentation/features/time/arch-tick-broadcast/arch-support.txt
+++ b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/time/clockevents/arch-support.txt b/Documentation/features/time/clockevents/arch-support.txt
index 625160048f68f012..4d4bfac529701f11 100644
--- a/Documentation/features/time/clockevents/arch-support.txt
+++ b/Documentation/features/time/clockevents/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | ok |
diff --git a/Documentation/features/time/context-tracking/arch-support.txt b/Documentation/features/time/context-tracking/arch-support.txt
index 72bc5bad0348cae0..891be9f619030293 100644
--- a/Documentation/features/time/context-tracking/arch-support.txt
+++ b/Documentation/features/time/context-tracking/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/time/irq-time-acct/arch-support.txt b/Documentation/features/time/irq-time-acct/arch-support.txt
index ceb036610d09bdba..3d10075a8a8a4ab1 100644
--- a/Documentation/features/time/irq-time-acct/arch-support.txt
+++ b/Documentation/features/time/irq-time-acct/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | .. |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/time/virt-cpuacct/arch-support.txt b/Documentation/features/time/virt-cpuacct/arch-support.txt
index c063dffd5261dce0..21f11d47ef722c56 100644
--- a/Documentation/features/time/virt-cpuacct/arch-support.txt
+++ b/Documentation/features/time/virt-cpuacct/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | ok |
| hexagon: | TODO |
- | ia64: | ok |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/vm/ELF-ASLR/arch-support.txt b/Documentation/features/vm/ELF-ASLR/arch-support.txt
index 15164f36f2240816..ad0180c3b75f58ec 100644
--- a/Documentation/features/vm/ELF-ASLR/arch-support.txt
+++ b/Documentation/features/vm/ELF-ASLR/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/vm/PG_uncached/arch-support.txt b/Documentation/features/vm/PG_uncached/arch-support.txt
index 5acd64b97dba5cfb..5a7508b8c967e2fc 100644
--- a/Documentation/features/vm/PG_uncached/arch-support.txt
+++ b/Documentation/features/vm/PG_uncached/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | TODO |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | ok |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/vm/THP/arch-support.txt b/Documentation/features/vm/THP/arch-support.txt
index 9dd7d75d04653ebf..b4a5ce16940dfd3d 100644
--- a/Documentation/features/vm/THP/arch-support.txt
+++ b/Documentation/features/vm/THP/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | .. |
| hexagon: | .. |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | .. |
| microblaze: | .. |
diff --git a/Documentation/features/vm/TLB/arch-support.txt b/Documentation/features/vm/TLB/arch-support.txt
index 7f049c251a79e4c0..e83b49d2d7563f65 100644
--- a/Documentation/features/vm/TLB/arch-support.txt
+++ b/Documentation/features/vm/TLB/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | N/A |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | .. |
| microblaze: | .. |
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index 34647d9bdca46e2c..2d6de7b045385db1 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/vm/ioremap_prot/arch-support.txt b/Documentation/features/vm/ioremap_prot/arch-support.txt
index a24149e59d73e492..1638c2cb17f15cb2 100644
--- a/Documentation/features/vm/ioremap_prot/arch-support.txt
+++ b/Documentation/features/vm/ioremap_prot/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
diff --git a/Documentation/features/vm/pte_special/arch-support.txt b/Documentation/features/vm/pte_special/arch-support.txt
index d2b22a06945e7526..3f777f8b67d539c2 100644
--- a/Documentation/features/vm/pte_special/arch-support.txt
+++ b/Documentation/features/vm/pte_special/arch-support.txt
@@ -12,7 +12,6 @@
| arm64: | ok |
| csky: | TODO |
| hexagon: | TODO |
- | ia64: | TODO |
| loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
--
2.39.1
^ permalink raw reply related [relevance 7%]
* [RFC PATCH 0/5] Retire IA64/Itanium support
@ 2023-02-15 10:00 1% ` Ard Biesheuvel
0 siblings, 0 replies; 200+ results
From: Ard Biesheuvel @ 2023-02-15 10:00 UTC (permalink / raw)
To: linux-kernel
Cc: Ard Biesheuvel, Jonathan Corbet, Arnd Bergmann, Tony Luck,
Jessica Clarke, John Paul Adrian Glaubitz, Matthew Wilcox,
Marc Zyngier, Guenter Roeck, Linus Torvalds, linux-ia64
The IA64 port of Linux has no maintainer, and according to a report from
its only remaining user [0], it has been broken for a month and nobody
cares.
Given that keeping a complex but unused architecture alive uses up
valuable developer bandwidth, let's just get rid of it.
This supersedes my patch proposing to mark it as 'dead', which received
no replies from anyone that wants to keep it alive. [1]
[0] https://www.spinics.net/lists/linux-ia64/msg21926.html
[1] https://lore.kernel.org/all/20230128122904.1345120-1-ardb@kernel.org/
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Jessica Clarke <jrtc27@jrtc27.com>
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-ia64@vger.kernel.org
Ard Biesheuvel (5):
arch: Remove Itanium (IA-64) architecture
kernel: Drop IA64 support from sig_fault handlers
Documentation: Drop IA64 from feature descriptions
lib/raid6: Drop IA64 support
Documentation: Drop or replace remaining mentions of IA64
Documentation/ABI/testing/sysfs-devices-system-cpu | 3 -
Documentation/ABI/testing/sysfs-firmware-dmi-entries | 2 +-
Documentation/admin-guide/kdump/kdump.rst | 37 +-
Documentation/admin-guide/kdump/vmcoreinfo.rst | 30 -
Documentation/admin-guide/kernel-parameters.txt | 8 +-
Documentation/admin-guide/mm/memory-hotplug.rst | 2 +-
Documentation/admin-guide/sysctl/kernel.rst | 23 +-
Documentation/arch.rst | 1 -
Documentation/block/ioprio.rst | 3 -
Documentation/core-api/cpu_hotplug.rst | 6 -
Documentation/core-api/debugging-via-ohci1394.rst | 6 +-
Documentation/features/core/cBPF-JIT/arch-support.txt | 1 -
Documentation/features/core/eBPF-JIT/arch-support.txt | 1 -
Documentation/features/core/generic-idle-thread/arch-support.txt | 1 -
Documentation/features/core/jump-labels/arch-support.txt | 1 -
Documentation/features/core/thread-info-in-task/arch-support.txt | 1 -
Documentation/features/core/tracehook/arch-support.txt | 1 -
Documentation/features/debug/KASAN/arch-support.txt | 1 -
Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 1 -
Documentation/features/debug/gcov-profile-all/arch-support.txt | 1 -
Documentation/features/debug/kcov/arch-support.txt | 1 -
Documentation/features/debug/kgdb/arch-support.txt | 1 -
Documentation/features/debug/kmemleak/arch-support.txt | 1 -
Documentation/features/debug/kprobes-on-ftrace/arch-support.txt | 1 -
Documentation/features/debug/kprobes/arch-support.txt | 1 -
Documentation/features/debug/kretprobes/arch-support.txt | 1 -
Documentation/features/debug/optprobes/arch-support.txt | 1 -
Documentation/features/debug/stackprotector/arch-support.txt | 1 -
Documentation/features/debug/uprobes/arch-support.txt | 1 -
Documentation/features/debug/user-ret-profiler/arch-support.txt | 1 -
Documentation/features/io/dma-contiguous/arch-support.txt | 1 -
Documentation/features/locking/cmpxchg-local/arch-support.txt | 1 -
Documentation/features/locking/lockdep/arch-support.txt | 1 -
Documentation/features/locking/queued-rwlocks/arch-support.txt | 1 -
Documentation/features/locking/queued-spinlocks/arch-support.txt | 1 -
Documentation/features/perf/kprobes-event/arch-support.txt | 1 -
Documentation/features/perf/perf-regs/arch-support.txt | 1 -
Documentation/features/perf/perf-stackdump/arch-support.txt | 1 -
Documentation/features/sched/membarrier-sync-core/arch-support.txt | 1 -
Documentation/features/sched/numa-balancing/arch-support.txt | 1 -
Documentation/features/seccomp/seccomp-filter/arch-support.txt | 1 -
Documentation/features/time/arch-tick-broadcast/arch-support.txt | 1 -
Documentation/features/time/clockevents/arch-support.txt | 1 -
Documentation/features/time/context-tracking/arch-support.txt | 1 -
Documentation/features/time/irq-time-acct/arch-support.txt | 1 -
Documentation/features/time/virt-cpuacct/arch-support.txt | 1 -
Documentation/features/vm/ELF-ASLR/arch-support.txt | 1 -
Documentation/features/vm/PG_uncached/arch-support.txt | 1 -
Documentation/features/vm/THP/arch-support.txt | 1 -
Documentation/features/vm/TLB/arch-support.txt | 1 -
Documentation/features/vm/huge-vmap/arch-support.txt | 1 -
Documentation/features/vm/ioremap_prot/arch-support.txt | 1 -
Documentation/features/vm/pte_special/arch-support.txt | 1 -
Documentation/ia64/aliasing.rst | 246 ---
Documentation/ia64/efirtc.rst | 144 --
Documentation/ia64/err_inject.rst | 1067 ---------
Documentation/ia64/features.rst | 3 -
Documentation/ia64/fsys.rst | 303 ---
Documentation/ia64/ia64.rst | 49 -
Documentation/ia64/index.rst | 19 -
Documentation/ia64/irq-redir.rst | 80 -
Documentation/ia64/mca.rst | 198 --
Documentation/ia64/serial.rst | 165 --
Documentation/kbuild/makefiles.rst | 2 +-
Documentation/networking/device_drivers/ethernet/neterion/s2io.rst | 4 +-
Documentation/scheduler/sched-arch.rst | 4 +-
Documentation/trace/kprobes.rst | 1 -
Documentation/translations/zh_CN/arch.rst | 1 -
Documentation/translations/zh_CN/core-api/cpu_hotplug.rst | 6 -
Documentation/translations/zh_CN/scheduler/sched-arch.rst | 5 +-
MAINTAINERS | 11 -
Makefile | 4 +-
arch/Kconfig | 1 -
arch/ia64/Kbuild | 3 -
arch/ia64/Kconfig | 410 ----
arch/ia64/Kconfig.debug | 55 -
arch/ia64/Makefile | 82 -
arch/ia64/configs/bigsur_defconfig | 102 -
arch/ia64/configs/generic_defconfig | 206 --
arch/ia64/configs/gensparse_defconfig | 184 --
arch/ia64/configs/tiger_defconfig | 169 --
arch/ia64/configs/zx1_defconfig | 148 --
arch/ia64/hp/common/Makefile | 10 -
arch/ia64/hp/common/aml_nfw.c | 232 --
arch/ia64/hp/common/sba_iommu.c | 2147 ------------------
arch/ia64/include/asm/Kbuild | 5 -
arch/ia64/include/asm/acenv.h | 49 -
arch/ia64/include/asm/acpi-ext.h | 17 -
arch/ia64/include/asm/acpi.h | 110 -
arch/ia64/include/asm/agp.h | 27 -
arch/ia64/include/asm/asm-offsets.h | 1 -
arch/ia64/include/asm/asm-prototypes.h | 30 -
arch/ia64/include/asm/asmmacro.h | 136 --
arch/ia64/include/asm/atomic.h | 223 --
arch/ia64/include/asm/barrier.h | 79 -
arch/ia64/include/asm/bitops.h | 453 ----
arch/ia64/include/asm/bug.h | 19 -
arch/ia64/include/asm/bugs.h | 20 -
arch/ia64/include/asm/cache.h | 30 -
arch/ia64/include/asm/cacheflush.h | 33 -
arch/ia64/include/asm/checksum.h | 63 -
arch/ia64/include/asm/clocksource.h | 11 -
arch/ia64/include/asm/cmpxchg.h | 16 -
arch/ia64/include/asm/cpu.h | 23 -
arch/ia64/include/asm/cputime.h | 21 -
arch/ia64/include/asm/current.h | 18 -
arch/ia64/include/asm/cyclone.h | 16 -
arch/ia64/include/asm/delay.h | 89 -
arch/ia64/include/asm/device.h | 14 -
arch/ia64/include/asm/div64.h | 1 -
arch/ia64/include/asm/dma-mapping.h | 16 -
arch/ia64/include/asm/dma.h | 17 -
arch/ia64/include/asm/dmi.h | 15 -
arch/ia64/include/asm/early_ioremap.h | 11 -
arch/ia64/include/asm/efi.h | 13 -
arch/ia64/include/asm/elf.h | 233 --
arch/ia64/include/asm/emergency-restart.h | 6 -
arch/ia64/include/asm/esi.h | 30 -
arch/ia64/include/asm/exception.h | 23 -
arch/ia64/include/asm/export.h | 3 -
arch/ia64/include/asm/extable.h | 12 -
arch/ia64/include/asm/fb.h | 24 -
arch/ia64/include/asm/fpswa.h | 74 -
arch/ia64/include/asm/ftrace.h | 28 -
arch/ia64/include/asm/futex.h | 109 -
arch/ia64/include/asm/gcc_intrin.h | 13 -
arch/ia64/include/asm/hardirq.h | 27 -
arch/ia64/include/asm/hugetlb.h | 34 -
arch/ia64/include/asm/hw_irq.h | 167 --
arch/ia64/include/asm/idle.h | 8 -
arch/ia64/include/asm/intrinsics.h | 13 -
arch/ia64/include/asm/io.h | 274 ---
arch/ia64/include/asm/iommu.h | 22 -
arch/ia64/include/asm/iosapic.h | 106 -
arch/ia64/include/asm/irq.h | 37 -
arch/ia64/include/asm/irq_regs.h | 1 -
arch/ia64/include/asm/irq_remapping.h | 5 -
arch/ia64/include/asm/irqflags.h | 95 -
arch/ia64/include/asm/kdebug.h | 45 -
arch/ia64/include/asm/kexec.h | 46 -
arch/ia64/include/asm/kprobes.h | 116 -
arch/ia64/include/asm/kregs.h | 166 --
arch/ia64/include/asm/libata-portmap.h | 9 -
arch/ia64/include/asm/linkage.h | 19 -
arch/ia64/include/asm/local.h | 1 -
arch/ia64/include/asm/mca.h | 185 --
arch/ia64/include/asm/mca_asm.h | 245 ---
arch/ia64/include/asm/meminit.h | 59 -
arch/ia64/include/asm/mman.h | 18 -
arch/ia64/include/asm/mmiowb.h | 17 -
arch/ia64/include/asm/mmu.h | 14 -
arch/ia64/include/asm/mmu_context.h | 194 --
arch/ia64/include/asm/mmzone.h | 35 -
arch/ia64/include/asm/module.h | 35 -
arch/ia64/include/asm/module.lds.h | 14 -
arch/ia64/include/asm/msidef.h | 43 -
arch/ia64/include/asm/native/inst.h | 119 -
arch/ia64/include/asm/native/irq.h | 20 -
arch/ia64/include/asm/native/patchlist.h | 24 -
arch/ia64/include/asm/nodedata.h | 63 -
arch/ia64/include/asm/numa.h | 83 -
arch/ia64/include/asm/page.h | 214 --
arch/ia64/include/asm/pal.h | 1827 ---------------
arch/ia64/include/asm/param.h | 18 -
arch/ia64/include/asm/parport.h | 20 -
arch/ia64/include/asm/patch.h | 28 -
arch/ia64/include/asm/pci.h | 66 -
arch/ia64/include/asm/percpu.h | 53 -
arch/ia64/include/asm/pgalloc.h | 64 -
arch/ia64/include/asm/pgtable.h | 520 -----
arch/ia64/include/asm/processor.h | 663 ------
arch/ia64/include/asm/ptrace.h | 146 --
arch/ia64/include/asm/sal.h | 919 --------
arch/ia64/include/asm/sections.h | 33 -
arch/ia64/include/asm/serial.h | 17 -
arch/ia64/include/asm/shmparam.h | 13 -
arch/ia64/include/asm/signal.h | 33 -
arch/ia64/include/asm/smp.h | 103 -
arch/ia64/include/asm/sn/intr.h | 15 -
arch/ia64/include/asm/sn/sn_sal.h | 124 --
arch/ia64/include/asm/sparsemem.h | 28 -
arch/ia64/include/asm/spinlock.h | 265 ---
arch/ia64/include/asm/spinlock_types.h | 22 -
arch/ia64/include/asm/string.h | 22 -
arch/ia64/include/asm/switch_to.h | 71 -
arch/ia64/include/asm/syscall.h | 65 -
arch/ia64/include/asm/thread_info.h | 131 --
arch/ia64/include/asm/timex.h | 47 -
arch/ia64/include/asm/tlb.h | 50 -
arch/ia64/include/asm/tlbflush.h | 128 --
arch/ia64/include/asm/topology.h | 56 -
arch/ia64/include/asm/types.h | 32 -
arch/ia64/include/asm/uaccess.h | 265 ---
arch/ia64/include/asm/uncached.h | 9 -
arch/ia64/include/asm/unistd.h | 38 -
arch/ia64/include/asm/unwind.h | 234 --
arch/ia64/include/asm/user.h | 53 -
arch/ia64/include/asm/ustack.h | 12 -
arch/ia64/include/asm/uv/uv.h | 30 -
arch/ia64/include/asm/uv/uv_hub.h | 315 ---
arch/ia64/include/asm/uv/uv_mmrs.h | 825 -------
arch/ia64/include/asm/vermagic.h | 15 -
arch/ia64/include/asm/vga.h | 26 -
arch/ia64/include/asm/vmalloc.h | 4 -
arch/ia64/include/asm/xor.h | 30 -
arch/ia64/include/asm/xtp.h | 46 -
arch/ia64/include/uapi/asm/Kbuild | 2 -
arch/ia64/include/uapi/asm/auxvec.h | 14 -
arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
arch/ia64/include/uapi/asm/break.h | 23 -
arch/ia64/include/uapi/asm/byteorder.h | 7 -
arch/ia64/include/uapi/asm/cmpxchg.h | 159 --
arch/ia64/include/uapi/asm/fcntl.h | 15 -
arch/ia64/include/uapi/asm/fpu.h | 67 -
arch/ia64/include/uapi/asm/gcc_intrin.h | 619 ------
arch/ia64/include/uapi/asm/ia64regs.h | 101 -
arch/ia64/include/uapi/asm/intel_intrin.h | 162 --
arch/ia64/include/uapi/asm/intrinsics.h | 86 -
arch/ia64/include/uapi/asm/mman.h | 17 -
arch/ia64/include/uapi/asm/param.h | 30 -
arch/ia64/include/uapi/asm/posix_types.h | 9 -
arch/ia64/include/uapi/asm/ptrace.h | 248 ---
arch/ia64/include/uapi/asm/ptrace_offsets.h | 269 ---
arch/ia64/include/uapi/asm/resource.h | 8 -
arch/ia64/include/uapi/asm/rse.h | 67 -
arch/ia64/include/uapi/asm/setup.h | 25 -
arch/ia64/include/uapi/asm/sigcontext.h | 71 -
arch/ia64/include/uapi/asm/siginfo.h | 28 -
arch/ia64/include/uapi/asm/signal.h | 98 -
arch/ia64/include/uapi/asm/stat.h | 52 -
arch/ia64/include/uapi/asm/statfs.h | 21 -
arch/ia64/include/uapi/asm/swab.h | 35 -
arch/ia64/include/uapi/asm/types.h | 32 -
arch/ia64/include/uapi/asm/ucontext.h | 13 -
arch/ia64/include/uapi/asm/unistd.h | 22 -
arch/ia64/include/uapi/asm/ustack.h | 13 -
arch/ia64/install.sh | 30 -
arch/ia64/kernel/.gitignore | 3 -
arch/ia64/kernel/Makefile | 46 -
arch/ia64/kernel/Makefile.gate | 29 -
arch/ia64/kernel/acpi-ext.c | 101 -
arch/ia64/kernel/acpi.c | 911 --------
arch/ia64/kernel/asm-offsets.c | 289 ---
arch/ia64/kernel/audit.c | 63 -
arch/ia64/kernel/brl_emu.c | 217 --
arch/ia64/kernel/crash.c | 266 ---
arch/ia64/kernel/crash_dump.c | 27 -
arch/ia64/kernel/cyclone.c | 125 --
arch/ia64/kernel/dma-mapping.c | 9 -
arch/ia64/kernel/efi.c | 1360 ------------
arch/ia64/kernel/efi_stub.S | 87 -
arch/ia64/kernel/elfcore.c | 77 -
arch/ia64/kernel/entry.S | 1428 ------------
arch/ia64/kernel/entry.h | 83 -
arch/ia64/kernel/err_inject.c | 273 ---
arch/ia64/kernel/esi.c | 193 --
arch/ia64/kernel/esi_stub.S | 99 -
arch/ia64/kernel/fsys.S | 837 -------
arch/ia64/kernel/fsyscall_gtod_data.h | 30 -
arch/ia64/kernel/ftrace.c | 196 --
arch/ia64/kernel/gate-data.S | 3 -
arch/ia64/kernel/gate.S | 380 ----
arch/ia64/kernel/gate.lds.S | 108 -
arch/ia64/kernel/head.S | 1168 ----------
arch/ia64/kernel/iosapic.c | 1137 ----------
arch/ia64/kernel/irq.c | 181 --
arch/ia64/kernel/irq.h | 3 -
arch/ia64/kernel/irq_ia64.c | 645 ------
arch/ia64/kernel/irq_lsapic.c | 45 -
arch/ia64/kernel/ivt.S | 1689 --------------
arch/ia64/kernel/kprobes.c | 911 --------
arch/ia64/kernel/machine_kexec.c | 163 --
arch/ia64/kernel/mca.c | 2111 ------------------
arch/ia64/kernel/mca_asm.S | 1123 ----------
arch/ia64/kernel/mca_drv.c | 796 -------
arch/ia64/kernel/mca_drv.h | 123 --
arch/ia64/kernel/mca_drv_asm.S | 56 -
arch/ia64/kernel/minstate.h | 251 ---
arch/ia64/kernel/module.c | 955 --------
arch/ia64/kernel/msi_ia64.c | 198 --
arch/ia64/kernel/numa.c | 73 -
arch/ia64/kernel/pal.S | 306 ---
arch/ia64/kernel/palinfo.c | 942 --------
arch/ia64/kernel/patch.c | 237 --
arch/ia64/kernel/pci-dma.c | 33 -
arch/ia64/kernel/perfmon_itanium.h | 116 -
arch/ia64/kernel/process.c | 610 -----
arch/ia64/kernel/ptrace.c | 2012 -----------------
arch/ia64/kernel/relocate_kernel.S | 321 ---
arch/ia64/kernel/sal.c | 400 ----
arch/ia64/kernel/salinfo.c | 646 ------
arch/ia64/kernel/setup.c | 1082 ---------
arch/ia64/kernel/sigframe.h | 26 -
arch/ia64/kernel/signal.c | 412 ----
arch/ia64/kernel/smp.c | 335 ---
arch/ia64/kernel/smpboot.c | 839 -------
arch/ia64/kernel/stacktrace.c | 40 -
arch/ia64/kernel/sys_ia64.c | 197 --
arch/ia64/kernel/syscalls/Makefile | 32 -
arch/ia64/kernel/syscalls/syscall.tbl | 373 ----
arch/ia64/kernel/time.c | 462 ----
arch/ia64/kernel/topology.c | 410 ----
arch/ia64/kernel/traps.c | 612 ------
arch/ia64/kernel/unaligned.c | 1560 -------------
arch/ia64/kernel/uncached.c | 273 ---
arch/ia64/kernel/unwind.c | 2320 --------------------
arch/ia64/kernel/unwind_decoder.c | 460 ----
arch/ia64/kernel/unwind_i.h | 165 --
arch/ia64/kernel/vmlinux.lds.S | 225 --
arch/ia64/lib/Makefile | 48 -
arch/ia64/lib/checksum.c | 102 -
arch/ia64/lib/clear_page.S | 79 -
arch/ia64/lib/clear_user.S | 212 --
arch/ia64/lib/copy_page.S | 101 -
arch/ia64/lib/copy_page_mck.S | 188 --
arch/ia64/lib/copy_user.S | 613 ------
arch/ia64/lib/csum_partial_copy.c | 98 -
arch/ia64/lib/do_csum.S | 324 ---
arch/ia64/lib/flush.S | 120 -
arch/ia64/lib/idiv32.S | 86 -
arch/ia64/lib/idiv64.S | 83 -
arch/ia64/lib/io.c | 51 -
arch/ia64/lib/ip_fast_csum.S | 148 --
arch/ia64/lib/memcpy.S | 304 ---
arch/ia64/lib/memcpy_mck.S | 659 ------
arch/ia64/lib/memset.S | 365 ---
arch/ia64/lib/strlen.S | 195 --
arch/ia64/lib/strncpy_from_user.S | 47 -
arch/ia64/lib/strnlen_user.S | 48 -
arch/ia64/lib/xor.S | 181 --
arch/ia64/mm/Makefile | 11 -
arch/ia64/mm/contig.c | 208 --
arch/ia64/mm/discontig.c | 635 ------
arch/ia64/mm/extable.c | 24 -
arch/ia64/mm/fault.c | 272 ---
arch/ia64/mm/hugetlbpage.c | 186 --
arch/ia64/mm/init.c | 518 -----
arch/ia64/mm/ioremap.c | 123 --
arch/ia64/mm/numa.c | 80 -
arch/ia64/mm/tlb.c | 591 -----
arch/ia64/pci/Makefile | 5 -
arch/ia64/pci/fixup.c | 80 -
arch/ia64/pci/pci.c | 576 -----
arch/ia64/scripts/check-gas | 16 -
arch/ia64/scripts/check-gas-asm.S | 2 -
arch/ia64/scripts/check-model.c | 1 -
arch/ia64/scripts/check-segrel.S | 5 -
arch/ia64/scripts/check-segrel.lds | 13 -
arch/ia64/scripts/check-serialize.S | 2 -
arch/ia64/scripts/check-text-align.S | 7 -
arch/ia64/scripts/toolchain-flags | 54 -
arch/ia64/scripts/unwcheck.py | 65 -
arch/ia64/uv/Makefile | 12 -
arch/ia64/uv/kernel/Makefile | 12 -
arch/ia64/uv/kernel/setup.c | 120 -
drivers/acpi/Kconfig | 6 +-
drivers/acpi/numa/Kconfig | 4 +-
drivers/acpi/osl.c | 2 +-
drivers/char/Kconfig | 4 +-
drivers/char/Makefile | 1 -
drivers/char/agp/Kconfig | 16 +-
drivers/char/agp/Makefile | 2 -
drivers/char/agp/hp-agp.c | 550 -----
drivers/char/agp/i460-agp.c | 659 ------
drivers/char/hpet.c | 30 -
drivers/char/hw_random/Kconfig | 2 +-
drivers/char/mem.c | 12 -
drivers/char/mspec.c | 295 ---
drivers/cpufreq/Kconfig | 11 -
drivers/cpufreq/Makefile | 1 -
drivers/cpufreq/ia64-acpi-cpufreq.c | 353 ---
drivers/firmware/Kconfig | 24 -
drivers/firmware/Makefile | 1 -
drivers/firmware/efi/Kconfig | 6 +-
drivers/firmware/efi/efi.c | 13 +-
drivers/firmware/pcdp.c | 135 --
drivers/firmware/pcdp.h | 108 -
drivers/gpu/drm/drm_ioc32.c | 4 +-
drivers/input/serio/i8042.h | 2 +-
drivers/iommu/Kconfig | 4 +-
drivers/iommu/intel/Kconfig | 2 +-
drivers/media/cec/platform/Kconfig | 2 +-
drivers/misc/Kconfig | 2 +-
drivers/misc/sgi-gru/gru.h | 4 +-
drivers/misc/sgi-gru/gru_instructions.h | 12 +-
drivers/misc/sgi-gru/grufile.c | 72 -
drivers/misc/sgi-gru/gruhandles.c | 6 -
drivers/misc/sgi-gru/grumain.c | 4 -
drivers/misc/sgi-xp/xp.h | 2 +-
drivers/misc/sgi-xp/xp_uv.c | 24 -
drivers/misc/sgi-xp/xpc_main.c | 31 -
drivers/misc/sgi-xp/xpc_uv.c | 85 -
drivers/net/ethernet/broadcom/tg3.c | 2 +-
drivers/net/ethernet/brocade/bna/bnad.h | 1 -
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c | 2 -
drivers/pci/vgaarb.c | 2 +-
drivers/tty/serial/8250/Kconfig | 2 +-
drivers/tty/vt/keyboard.c | 2 +-
drivers/video/fbdev/Kconfig | 2 +-
drivers/watchdog/Kconfig | 2 +-
fs/Kconfig | 2 +-
fs/afs/main.c | 2 -
fs/xfs/xfs_ioctl32.h | 2 +-
include/linux/acpi.h | 9 +-
include/linux/efi.h | 7 -
include/linux/mm.h | 2 -
include/linux/moduleparam.h | 2 +-
include/linux/raid/pq.h | 2 -
include/linux/sched/signal.h | 17 +-
include/trace/events/mmflags.h | 2 +-
init/Kconfig | 2 +-
kernel/cpu.c | 3 -
kernel/fork.c | 2 +-
kernel/sched/core.c | 29 +-
kernel/signal.c | 25 +-
kernel/sysctl.c | 9 -
lib/Kconfig.debug | 2 +-
lib/decompress_unxz.c | 3 -
lib/raid6/Makefile | 4 +-
lib/raid6/algos.c | 4 -
lib/xz/Kconfig | 5 -
mm/mmap.c | 6 +-
scripts/headers_install.sh | 1 -
tools/arch/ia64/include/asm/barrier.h | 59 -
tools/arch/ia64/include/uapi/asm/bitsperlong.h | 9 -
tools/arch/ia64/include/uapi/asm/mman.h | 7 -
usr/include/Makefile | 6 -
427 files changed, 74 insertions(+), 65400 deletions(-)
delete mode 100644 Documentation/ia64/aliasing.rst
delete mode 100644 Documentation/ia64/efirtc.rst
delete mode 100644 Documentation/ia64/err_inject.rst
delete mode 100644 Documentation/ia64/features.rst
delete mode 100644 Documentation/ia64/fsys.rst
delete mode 100644 Documentation/ia64/ia64.rst
delete mode 100644 Documentation/ia64/index.rst
delete mode 100644 Documentation/ia64/irq-redir.rst
delete mode 100644 Documentation/ia64/mca.rst
delete mode 100644 Documentation/ia64/serial.rst
delete mode 100644 arch/ia64/Kbuild
delete mode 100644 arch/ia64/Kconfig
delete mode 100644 arch/ia64/Kconfig.debug
delete mode 100644 arch/ia64/Makefile
delete mode 100644 arch/ia64/configs/bigsur_defconfig
delete mode 100644 arch/ia64/configs/generic_defconfig
delete mode 100644 arch/ia64/configs/gensparse_defconfig
delete mode 100644 arch/ia64/configs/tiger_defconfig
delete mode 100644 arch/ia64/configs/zx1_defconfig
delete mode 100644 arch/ia64/hp/common/Makefile
delete mode 100644 arch/ia64/hp/common/aml_nfw.c
delete mode 100644 arch/ia64/hp/common/sba_iommu.c
delete mode 100644 arch/ia64/include/asm/Kbuild
delete mode 100644 arch/ia64/include/asm/acenv.h
delete mode 100644 arch/ia64/include/asm/acpi-ext.h
delete mode 100644 arch/ia64/include/asm/acpi.h
delete mode 100644 arch/ia64/include/asm/agp.h
delete mode 100644 arch/ia64/include/asm/asm-offsets.h
delete mode 100644 arch/ia64/include/asm/asm-prototypes.h
delete mode 100644 arch/ia64/include/asm/asmmacro.h
delete mode 100644 arch/ia64/include/asm/atomic.h
delete mode 100644 arch/ia64/include/asm/barrier.h
delete mode 100644 arch/ia64/include/asm/bitops.h
delete mode 100644 arch/ia64/include/asm/bug.h
delete mode 100644 arch/ia64/include/asm/bugs.h
delete mode 100644 arch/ia64/include/asm/cache.h
delete mode 100644 arch/ia64/include/asm/cacheflush.h
delete mode 100644 arch/ia64/include/asm/checksum.h
delete mode 100644 arch/ia64/include/asm/clocksource.h
delete mode 100644 arch/ia64/include/asm/cmpxchg.h
delete mode 100644 arch/ia64/include/asm/cpu.h
delete mode 100644 arch/ia64/include/asm/cputime.h
delete mode 100644 arch/ia64/include/asm/current.h
delete mode 100644 arch/ia64/include/asm/cyclone.h
delete mode 100644 arch/ia64/include/asm/delay.h
delete mode 100644 arch/ia64/include/asm/device.h
delete mode 100644 arch/ia64/include/asm/div64.h
delete mode 100644 arch/ia64/include/asm/dma-mapping.h
delete mode 100644 arch/ia64/include/asm/dma.h
delete mode 100644 arch/ia64/include/asm/dmi.h
delete mode 100644 arch/ia64/include/asm/early_ioremap.h
delete mode 100644 arch/ia64/include/asm/efi.h
delete mode 100644 arch/ia64/include/asm/elf.h
delete mode 100644 arch/ia64/include/asm/emergency-restart.h
delete mode 100644 arch/ia64/include/asm/esi.h
delete mode 100644 arch/ia64/include/asm/exception.h
delete mode 100644 arch/ia64/include/asm/export.h
delete mode 100644 arch/ia64/include/asm/extable.h
delete mode 100644 arch/ia64/include/asm/fb.h
delete mode 100644 arch/ia64/include/asm/fpswa.h
delete mode 100644 arch/ia64/include/asm/ftrace.h
delete mode 100644 arch/ia64/include/asm/futex.h
delete mode 100644 arch/ia64/include/asm/gcc_intrin.h
delete mode 100644 arch/ia64/include/asm/hardirq.h
delete mode 100644 arch/ia64/include/asm/hugetlb.h
delete mode 100644 arch/ia64/include/asm/hw_irq.h
delete mode 100644 arch/ia64/include/asm/idle.h
delete mode 100644 arch/ia64/include/asm/intrinsics.h
delete mode 100644 arch/ia64/include/asm/io.h
delete mode 100644 arch/ia64/include/asm/iommu.h
delete mode 100644 arch/ia64/include/asm/iosapic.h
delete mode 100644 arch/ia64/include/asm/irq.h
delete mode 100644 arch/ia64/include/asm/irq_regs.h
delete mode 100644 arch/ia64/include/asm/irq_remapping.h
delete mode 100644 arch/ia64/include/asm/irqflags.h
delete mode 100644 arch/ia64/include/asm/kdebug.h
delete mode 100644 arch/ia64/include/asm/kexec.h
delete mode 100644 arch/ia64/include/asm/kprobes.h
delete mode 100644 arch/ia64/include/asm/kregs.h
delete mode 100644 arch/ia64/include/asm/libata-portmap.h
delete mode 100644 arch/ia64/include/asm/linkage.h
delete mode 100644 arch/ia64/include/asm/local.h
delete mode 100644 arch/ia64/include/asm/mca.h
delete mode 100644 arch/ia64/include/asm/mca_asm.h
delete mode 100644 arch/ia64/include/asm/meminit.h
delete mode 100644 arch/ia64/include/asm/mman.h
delete mode 100644 arch/ia64/include/asm/mmiowb.h
delete mode 100644 arch/ia64/include/asm/mmu.h
delete mode 100644 arch/ia64/include/asm/mmu_context.h
delete mode 100644 arch/ia64/include/asm/mmzone.h
delete mode 100644 arch/ia64/include/asm/module.h
delete mode 100644 arch/ia64/include/asm/module.lds.h
delete mode 100644 arch/ia64/include/asm/msidef.h
delete mode 100644 arch/ia64/include/asm/native/inst.h
delete mode 100644 arch/ia64/include/asm/native/irq.h
delete mode 100644 arch/ia64/include/asm/native/patchlist.h
delete mode 100644 arch/ia64/include/asm/nodedata.h
delete mode 100644 arch/ia64/include/asm/numa.h
delete mode 100644 arch/ia64/include/asm/page.h
delete mode 100644 arch/ia64/include/asm/pal.h
delete mode 100644 arch/ia64/include/asm/param.h
delete mode 100644 arch/ia64/include/asm/parport.h
delete mode 100644 arch/ia64/include/asm/patch.h
delete mode 100644 arch/ia64/include/asm/pci.h
delete mode 100644 arch/ia64/include/asm/percpu.h
delete mode 100644 arch/ia64/include/asm/pgalloc.h
delete mode 100644 arch/ia64/include/asm/pgtable.h
delete mode 100644 arch/ia64/include/asm/processor.h
delete mode 100644 arch/ia64/include/asm/ptrace.h
delete mode 100644 arch/ia64/include/asm/sal.h
delete mode 100644 arch/ia64/include/asm/sections.h
delete mode 100644 arch/ia64/include/asm/serial.h
delete mode 100644 arch/ia64/include/asm/shmparam.h
delete mode 100644 arch/ia64/include/asm/signal.h
delete mode 100644 arch/ia64/include/asm/smp.h
delete mode 100644 arch/ia64/include/asm/sn/intr.h
delete mode 100644 arch/ia64/include/asm/sn/sn_sal.h
delete mode 100644 arch/ia64/include/asm/sparsemem.h
delete mode 100644 arch/ia64/include/asm/spinlock.h
delete mode 100644 arch/ia64/include/asm/spinlock_types.h
delete mode 100644 arch/ia64/include/asm/string.h
delete mode 100644 arch/ia64/include/asm/switch_to.h
delete mode 100644 arch/ia64/include/asm/syscall.h
delete mode 100644 arch/ia64/include/asm/thread_info.h
delete mode 100644 arch/ia64/include/asm/timex.h
delete mode 100644 arch/ia64/include/asm/tlb.h
delete mode 100644 arch/ia64/include/asm/tlbflush.h
delete mode 100644 arch/ia64/include/asm/topology.h
delete mode 100644 arch/ia64/include/asm/types.h
delete mode 100644 arch/ia64/include/asm/uaccess.h
delete mode 100644 arch/ia64/include/asm/uncached.h
delete mode 100644 arch/ia64/include/asm/unistd.h
delete mode 100644 arch/ia64/include/asm/unwind.h
delete mode 100644 arch/ia64/include/asm/user.h
delete mode 100644 arch/ia64/include/asm/ustack.h
delete mode 100644 arch/ia64/include/asm/uv/uv.h
delete mode 100644 arch/ia64/include/asm/uv/uv_hub.h
delete mode 100644 arch/ia64/include/asm/uv/uv_mmrs.h
delete mode 100644 arch/ia64/include/asm/vermagic.h
delete mode 100644 arch/ia64/include/asm/vga.h
delete mode 100644 arch/ia64/include/asm/vmalloc.h
delete mode 100644 arch/ia64/include/asm/xor.h
delete mode 100644 arch/ia64/include/asm/xtp.h
delete mode 100644 arch/ia64/include/uapi/asm/Kbuild
delete mode 100644 arch/ia64/include/uapi/asm/auxvec.h
delete mode 100644 arch/ia64/include/uapi/asm/bitsperlong.h
delete mode 100644 arch/ia64/include/uapi/asm/break.h
delete mode 100644 arch/ia64/include/uapi/asm/byteorder.h
delete mode 100644 arch/ia64/include/uapi/asm/cmpxchg.h
delete mode 100644 arch/ia64/include/uapi/asm/fcntl.h
delete mode 100644 arch/ia64/include/uapi/asm/fpu.h
delete mode 100644 arch/ia64/include/uapi/asm/gcc_intrin.h
delete mode 100644 arch/ia64/include/uapi/asm/ia64regs.h
delete mode 100644 arch/ia64/include/uapi/asm/intel_intrin.h
delete mode 100644 arch/ia64/include/uapi/asm/intrinsics.h
delete mode 100644 arch/ia64/include/uapi/asm/mman.h
delete mode 100644 arch/ia64/include/uapi/asm/param.h
delete mode 100644 arch/ia64/include/uapi/asm/posix_types.h
delete mode 100644 arch/ia64/include/uapi/asm/ptrace.h
delete mode 100644 arch/ia64/include/uapi/asm/ptrace_offsets.h
delete mode 100644 arch/ia64/include/uapi/asm/resource.h
delete mode 100644 arch/ia64/include/uapi/asm/rse.h
delete mode 100644 arch/ia64/include/uapi/asm/setup.h
delete mode 100644 arch/ia64/include/uapi/asm/sigcontext.h
delete mode 100644 arch/ia64/include/uapi/asm/siginfo.h
delete mode 100644 arch/ia64/include/uapi/asm/signal.h
delete mode 100644 arch/ia64/include/uapi/asm/stat.h
delete mode 100644 arch/ia64/include/uapi/asm/statfs.h
delete mode 100644 arch/ia64/include/uapi/asm/swab.h
delete mode 100644 arch/ia64/include/uapi/asm/types.h
delete mode 100644 arch/ia64/include/uapi/asm/ucontext.h
delete mode 100644 arch/ia64/include/uapi/asm/unistd.h
delete mode 100644 arch/ia64/include/uapi/asm/ustack.h
delete mode 100755 arch/ia64/install.sh
delete mode 100644 arch/ia64/kernel/.gitignore
delete mode 100644 arch/ia64/kernel/Makefile
delete mode 100644 arch/ia64/kernel/Makefile.gate
delete mode 100644 arch/ia64/kernel/acpi-ext.c
delete mode 100644 arch/ia64/kernel/acpi.c
delete mode 100644 arch/ia64/kernel/asm-offsets.c
delete mode 100644 arch/ia64/kernel/audit.c
delete mode 100644 arch/ia64/kernel/brl_emu.c
delete mode 100644 arch/ia64/kernel/crash.c
delete mode 100644 arch/ia64/kernel/crash_dump.c
delete mode 100644 arch/ia64/kernel/cyclone.c
delete mode 100644 arch/ia64/kernel/dma-mapping.c
delete mode 100644 arch/ia64/kernel/efi.c
delete mode 100644 arch/ia64/kernel/efi_stub.S
delete mode 100644 arch/ia64/kernel/elfcore.c
delete mode 100644 arch/ia64/kernel/entry.S
delete mode 100644 arch/ia64/kernel/entry.h
delete mode 100644 arch/ia64/kernel/err_inject.c
delete mode 100644 arch/ia64/kernel/esi.c
delete mode 100644 arch/ia64/kernel/esi_stub.S
delete mode 100644 arch/ia64/kernel/fsys.S
delete mode 100644 arch/ia64/kernel/fsyscall_gtod_data.h
delete mode 100644 arch/ia64/kernel/ftrace.c
delete mode 100644 arch/ia64/kernel/gate-data.S
delete mode 100644 arch/ia64/kernel/gate.S
delete mode 100644 arch/ia64/kernel/gate.lds.S
delete mode 100644 arch/ia64/kernel/head.S
delete mode 100644 arch/ia64/kernel/iosapic.c
delete mode 100644 arch/ia64/kernel/irq.c
delete mode 100644 arch/ia64/kernel/irq.h
delete mode 100644 arch/ia64/kernel/irq_ia64.c
delete mode 100644 arch/ia64/kernel/irq_lsapic.c
delete mode 100644 arch/ia64/kernel/ivt.S
delete mode 100644 arch/ia64/kernel/kprobes.c
delete mode 100644 arch/ia64/kernel/machine_kexec.c
delete mode 100644 arch/ia64/kernel/mca.c
delete mode 100644 arch/ia64/kernel/mca_asm.S
delete mode 100644 arch/ia64/kernel/mca_drv.c
delete mode 100644 arch/ia64/kernel/mca_drv.h
delete mode 100644 arch/ia64/kernel/mca_drv_asm.S
delete mode 100644 arch/ia64/kernel/minstate.h
delete mode 100644 arch/ia64/kernel/module.c
delete mode 100644 arch/ia64/kernel/msi_ia64.c
delete mode 100644 arch/ia64/kernel/numa.c
delete mode 100644 arch/ia64/kernel/pal.S
delete mode 100644 arch/ia64/kernel/palinfo.c
delete mode 100644 arch/ia64/kernel/patch.c
delete mode 100644 arch/ia64/kernel/pci-dma.c
delete mode 100644 arch/ia64/kernel/perfmon_itanium.h
delete mode 100644 arch/ia64/kernel/process.c
delete mode 100644 arch/ia64/kernel/ptrace.c
delete mode 100644 arch/ia64/kernel/relocate_kernel.S
delete mode 100644 arch/ia64/kernel/sal.c
delete mode 100644 arch/ia64/kernel/salinfo.c
delete mode 100644 arch/ia64/kernel/setup.c
delete mode 100644 arch/ia64/kernel/sigframe.h
delete mode 100644 arch/ia64/kernel/signal.c
delete mode 100644 arch/ia64/kernel/smp.c
delete mode 100644 arch/ia64/kernel/smpboot.c
delete mode 100644 arch/ia64/kernel/stacktrace.c
delete mode 100644 arch/ia64/kernel/sys_ia64.c
delete mode 100644 arch/ia64/kernel/syscalls/Makefile
delete mode 100644 arch/ia64/kernel/syscalls/syscall.tbl
delete mode 100644 arch/ia64/kernel/time.c
delete mode 100644 arch/ia64/kernel/topology.c
delete mode 100644 arch/ia64/kernel/traps.c
delete mode 100644 arch/ia64/kernel/unaligned.c
delete mode 100644 arch/ia64/kernel/uncached.c
delete mode 100644 arch/ia64/kernel/unwind.c
delete mode 100644 arch/ia64/kernel/unwind_decoder.c
delete mode 100644 arch/ia64/kernel/unwind_i.h
delete mode 100644 arch/ia64/kernel/vmlinux.lds.S
delete mode 100644 arch/ia64/lib/Makefile
delete mode 100644 arch/ia64/lib/checksum.c
delete mode 100644 arch/ia64/lib/clear_page.S
delete mode 100644 arch/ia64/lib/clear_user.S
delete mode 100644 arch/ia64/lib/copy_page.S
delete mode 100644 arch/ia64/lib/copy_page_mck.S
delete mode 100644 arch/ia64/lib/copy_user.S
delete mode 100644 arch/ia64/lib/csum_partial_copy.c
delete mode 100644 arch/ia64/lib/do_csum.S
delete mode 100644 arch/ia64/lib/flush.S
delete mode 100644 arch/ia64/lib/idiv32.S
delete mode 100644 arch/ia64/lib/idiv64.S
delete mode 100644 arch/ia64/lib/io.c
delete mode 100644 arch/ia64/lib/ip_fast_csum.S
delete mode 100644 arch/ia64/lib/memcpy.S
delete mode 100644 arch/ia64/lib/memcpy_mck.S
delete mode 100644 arch/ia64/lib/memset.S
delete mode 100644 arch/ia64/lib/strlen.S
delete mode 100644 arch/ia64/lib/strncpy_from_user.S
delete mode 100644 arch/ia64/lib/strnlen_user.S
delete mode 100644 arch/ia64/lib/xor.S
delete mode 100644 arch/ia64/mm/Makefile
delete mode 100644 arch/ia64/mm/contig.c
delete mode 100644 arch/ia64/mm/discontig.c
delete mode 100644 arch/ia64/mm/extable.c
delete mode 100644 arch/ia64/mm/fault.c
delete mode 100644 arch/ia64/mm/hugetlbpage.c
delete mode 100644 arch/ia64/mm/init.c
delete mode 100644 arch/ia64/mm/ioremap.c
delete mode 100644 arch/ia64/mm/numa.c
delete mode 100644 arch/ia64/mm/tlb.c
delete mode 100644 arch/ia64/pci/Makefile
delete mode 100644 arch/ia64/pci/fixup.c
delete mode 100644 arch/ia64/pci/pci.c
delete mode 100755 arch/ia64/scripts/check-gas
delete mode 100644 arch/ia64/scripts/check-gas-asm.S
delete mode 100644 arch/ia64/scripts/check-model.c
delete mode 100644 arch/ia64/scripts/check-segrel.S
delete mode 100644 arch/ia64/scripts/check-segrel.lds
delete mode 100644 arch/ia64/scripts/check-serialize.S
delete mode 100644 arch/ia64/scripts/check-text-align.S
delete mode 100755 arch/ia64/scripts/toolchain-flags
delete mode 100644 arch/ia64/scripts/unwcheck.py
delete mode 100644 arch/ia64/uv/Makefile
delete mode 100644 arch/ia64/uv/kernel/Makefile
delete mode 100644 arch/ia64/uv/kernel/setup.c
delete mode 100644 drivers/char/agp/hp-agp.c
delete mode 100644 drivers/char/agp/i460-agp.c
delete mode 100644 drivers/char/mspec.c
delete mode 100644 drivers/cpufreq/ia64-acpi-cpufreq.c
delete mode 100644 drivers/firmware/pcdp.c
delete mode 100644 drivers/firmware/pcdp.h
delete mode 100644 tools/arch/ia64/include/asm/barrier.h
delete mode 100644 tools/arch/ia64/include/uapi/asm/bitsperlong.h
delete mode 100644 tools/arch/ia64/include/uapi/asm/mman.h
--
2.39.1
^ permalink raw reply [relevance 1%]
* Re: [PATCH v7 3/7] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
2023-02-15 2:01 5% ` [PATCH v7 3/7] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf Rohan McLure
@ 2023-02-15 7:16 0% ` Christophe Leroy
0 siblings, 0 replies; 200+ results
From: Christophe Leroy @ 2023-02-15 7:16 UTC (permalink / raw)
To: Rohan McLure, linuxppc-dev
Le 15/02/2023 à 03:01, Rohan McLure a écrit :
> Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
> latter is the name given to checking that a higher-level entry in
> multi-level paging contains a page translation entry (pte) throughout
> all other archs.
>
> A future patch will implement p{u,m,4}_leaf stubs on all platforms so
> that they may be referenced in generic code.
>
> Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> ---
> V4: New patch
> V5: Previously replaced stub definition for *_is_leaf with *_leaf. Do
> that in a later patch
> ---
> arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 ++++++------
> arch/powerpc/mm/book3s64/radix_pgtable.c | 14 +++++++-------
> arch/powerpc/mm/pgtable.c | 6 +++---
> arch/powerpc/mm/pgtable_64.c | 6 +++---
> arch/powerpc/xmon/xmon.c | 6 +++---
> 5 files changed, 22 insertions(+), 22 deletions(-)
>
> diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> index 9d3743ca16d5..0d24fd984d16 100644
> --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
> +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> @@ -497,7 +497,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
> for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
> if (!pmd_present(*p))
> continue;
> - if (pmd_is_leaf(*p)) {
> + if (pmd_leaf(*p)) {
> if (full) {
> pmd_clear(p);
> } else {
> @@ -526,7 +526,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
> for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
> if (!pud_present(*p))
> continue;
> - if (pud_is_leaf(*p)) {
> + if (pud_leaf(*p)) {
> pud_clear(p);
> } else {
> pmd_t *pmd;
> @@ -629,12 +629,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = pud_alloc_one(kvm->mm, gpa);
>
> pmd = NULL;
> - if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
> + if (pud && pud_present(*pud) && !pud_leaf(*pud))
> pmd = pmd_offset(pud, gpa);
> else if (level <= 1)
> new_pmd = kvmppc_pmd_alloc();
>
> - if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
> + if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
> new_ptep = kvmppc_pte_alloc();
>
> /* Check if we might have been invalidated; let the guest retry if so */
> @@ -652,7 +652,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = NULL;
> }
> pud = pud_offset(p4d, gpa);
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> unsigned long hgpa = gpa & PUD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> @@ -703,7 +703,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pmd = NULL;
> }
> pmd = pmd_offset(pud, gpa);
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> unsigned long lgpa = gpa & PMD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> index 26245aaf12b8..4e46e001c3c3 100644
> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> @@ -205,14 +205,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
> pudp = pud_alloc(&init_mm, p4dp, idx);
> if (!pudp)
> continue;
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> ptep = (pte_t *)pudp;
> goto update_the_pte;
> }
> pmdp = pmd_alloc(&init_mm, pudp, idx);
> if (!pmdp)
> continue;
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> ptep = pmdp_ptep(pmdp);
> goto update_the_pte;
> }
> @@ -786,7 +786,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
> if (!pmd_present(*pmd))
> continue;
>
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> if (!IS_ALIGNED(addr, PMD_SIZE) ||
> !IS_ALIGNED(next, PMD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -816,7 +816,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
> if (!pud_present(*pud))
> continue;
>
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> if (!IS_ALIGNED(addr, PUD_SIZE) ||
> !IS_ALIGNED(next, PUD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -849,7 +849,7 @@ static void __meminit remove_pagetable(unsigned long start, unsigned long end)
> if (!p4d_present(*p4d))
> continue;
>
> - if (p4d_is_leaf(*p4d)) {
> + if (p4d_leaf(*p4d)) {
> if (!IS_ALIGNED(addr, P4D_SIZE) ||
> !IS_ALIGNED(next, P4D_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -1112,7 +1112,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>
> int pud_clear_huge(pud_t *pud)
> {
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> pud_clear(pud);
> return 1;
> }
> @@ -1159,7 +1159,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>
> int pmd_clear_huge(pmd_t *pmd)
> {
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> pmd_clear(pmd);
> return 1;
> }
> diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
> index d7cce317cef8..00ffbf197a13 100644
> --- a/arch/powerpc/mm/pgtable.c
> +++ b/arch/powerpc/mm/pgtable.c
> @@ -386,7 +386,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (p4d_none(p4d))
> return NULL;
>
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> ret_pte = (pte_t *)p4dp;
> goto out;
> }
> @@ -408,7 +408,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (pud_none(pud))
> return NULL;
>
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> ret_pte = (pte_t *)pudp;
> goto out;
> }
> @@ -447,7 +447,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> goto out;
> }
>
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> ret_pte = (pte_t *)pmdp;
> goto out;
> }
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index 5ac1fd30341b..0604c80dae66 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
> /* 4 level page table */
> struct page *p4d_page(p4d_t p4d)
> {
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!p4d_huge(p4d));
> return pte_page(p4d_pte(p4d));
> @@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
>
> struct page *pud_page(pud_t pud)
> {
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!pud_huge(pud));
> return pte_page(pud_pte(pud));
> @@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
> */
> struct page *pmd_page(pmd_t pmd)
> {
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> /*
> * vmalloc_to_page may be called on any vmap address (not only
> * vmalloc), and it uses pmd_page() etc., when huge vmap is
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index 73c620c2a3a1..07346b10f972 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -3339,7 +3339,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (p4d_is_leaf(*p4dp)) {
> + if (p4d_leaf(*p4dp)) {
> format_pte(p4dp, p4d_val(*p4dp));
> return;
> }
> @@ -3353,7 +3353,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> format_pte(pudp, pud_val(*pudp));
> return;
> }
> @@ -3367,7 +3367,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> format_pte(pmdp, pmd_val(*pmdp));
> return;
> }
^ permalink raw reply [relevance 0%]
* Re: [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime
2023-02-15 0:02 0% ` Palmer Dabbelt
@ 2023-02-15 2:47 0% ` Qinglin Pan
0 siblings, 0 replies; 200+ results
From: Qinglin Pan @ 2023-02-15 2:47 UTC (permalink / raw)
To: Palmer Dabbelt; +Cc: linux-riscv, jeff, xuyinan, Conor Dooley, ajones
Hi Palmer,
On 2/15/23 8:02 AM, Palmer Dabbelt wrote:
> On Thu, 15 Dec 2022 22:21:06 PST (-0800), panqinglin2020@iscas.ac.cn wrote:
>> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>>
>> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
>> page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
>>
>> This patchset adds a Kconfig item for using Svnapot in
>> "Platform type"->"SVNAPOT extension support". Its default value is on,
>> and people can set it off if they don't allow kernel to detect Svnapot
>> hardware support and leverage it.
>>
>> Tested on:
>> - qemu rv64 with "Svnapot support" off and svnapot=true.
>> - qemu rv64 with "Svnapot support" on and svnapot=true.
>> - qemu rv64 with "Svnapot support" off and svnapot=false.
>> - qemu rv64 with "Svnapot support" on and svnapot=false.
>>
>>
>> Changes in v2:
>> - detect Svnapot hardware support at boot time.
>> Changes in v3:
>> - do linear mapping again if has_svnapot
>> Changes in v4:
>> - fix some errors/warns reported by checkpatch.pl, thanks @Conor
>> Changes in v5:
>> - modify code according to @Conor and @Heiko
>> Changes in v6:
>> - use static key insead of alternative errata
>> Changes in v7:
>> - add napot_cont_order for possible more napot order in the future
>> - remove linear mapping related code from this patchset to another
>> patch
>> - refactor hugetlb code for svnapot according to thanks @Andrew @Conor
>> - use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
>> - support svnapot in huge vmap on newer for-next branch
>> Changes in v8:
>> - fix compilation errors in rv32_defconfig
>> - insert some lines of whitespace according to @Conor's suggestion
>> Changes in v9:
>> - use alternative to avoid using static branches inside heavily used
>> inline functions
>> - change napot_cont_mask definition
>> - post test_vmalloc modification about testing vmalloc_huge
>> Changes in v10:
>> - fix some nits caught by @Andrew
>> - collect Reviewed-by/Acked-by
>> - add memory leak warning in KConfig text
>> - replace test_vmalloc patch link with the standard one
>> Changes in v11:
>> - add more detailed warning about HUGETLBFS and SVNAPOT in KConfig text
>> - fix missing reverse-xmas tree
>>
>>
>> Qinglin Pan (3):
>> riscv: mm: modify pte format for Svnapot
>> riscv: mm: support Svnapot in hugetlb page
>> riscv: mm: support Svnapot in huge vmap
>>
>> arch/riscv/Kconfig | 21 +-
>> arch/riscv/include/asm/errata_list.h | 15 +-
>> arch/riscv/include/asm/hugetlb.h | 34 ++-
>> arch/riscv/include/asm/hwcap.h | 2 +-
>> arch/riscv/include/asm/page.h | 5 -
>> arch/riscv/include/asm/pgtable-64.h | 34 +++
>> arch/riscv/include/asm/pgtable.h | 43 +++-
>> arch/riscv/include/asm/vmalloc.h | 61 +++++-
>> arch/riscv/kernel/cpu.c | 1 +
>> arch/riscv/kernel/cpufeature.c | 15 ++
>> arch/riscv/mm/hugetlbpage.c | 301 +++++++++++++++++++++++++++
>> 11 files changed, 519 insertions(+), 13 deletions(-)
>
> This is triggering some build failures. I sent along a fix before
> realizing they're actually coming from this patch set:
> https://lore.kernel.org/all/20230214201358.10647-1-palmer@rivosinc.com/
> . If it's OK I'll just squash that in here, so I can avoid a broken build.
There is a newer v13(in [1]) based on new ISA extension API. But it
still have conchuod/build_rv64_gcc_allmodconfig check failed in it[2].
I have no idea whether it is caused by my patchset since the output
seems not related to my code.. Please let me know if there is anything I
need to modify.
[1]:
https://lore.kernel.org/linux-riscv/20230209131647.17245-1-panqinglin00@gmail.com/
[2]:
https://patchwork.kernel.org/project/linux-riscv/patch/20230209131647.17245-4-panqinglin00@gmail.com/
[3]: https://gist.github.com/conor-pwbot/0a1850594abdf3aebe4b3026a52a682d
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* [PATCH v7 3/7] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
@ 2023-02-15 2:01 5% ` Rohan McLure
2023-02-15 7:16 0% ` Christophe Leroy
0 siblings, 1 reply; 200+ results
From: Rohan McLure @ 2023-02-15 2:01 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Rohan McLure
Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
latter is the name given to checking that a higher-level entry in
multi-level paging contains a page translation entry (pte) throughout
all other archs.
A future patch will implement p{u,m,4}_leaf stubs on all platforms so
that they may be referenced in generic code.
Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
---
V4: New patch
V5: Previously replaced stub definition for *_is_leaf with *_leaf. Do
that in a later patch
---
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 ++++++------
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 +++++++-------
arch/powerpc/mm/pgtable.c | 6 +++---
arch/powerpc/mm/pgtable_64.c | 6 +++---
arch/powerpc/xmon/xmon.c | 6 +++---
5 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 9d3743ca16d5..0d24fd984d16 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -497,7 +497,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -526,7 +526,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -629,12 +629,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -652,7 +652,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -703,7 +703,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index 26245aaf12b8..4e46e001c3c3 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -205,14 +205,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -786,7 +786,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (!IS_ALIGNED(addr, PMD_SIZE) ||
!IS_ALIGNED(next, PMD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -816,7 +816,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -849,7 +849,7 @@ static void __meminit remove_pagetable(unsigned long start, unsigned long end)
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1112,7 +1112,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1159,7 +1159,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index d7cce317cef8..00ffbf197a13 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -386,7 +386,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -408,7 +408,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -447,7 +447,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 5ac1fd30341b..0604c80dae66 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 73c620c2a3a1..07346b10f972 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3339,7 +3339,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3353,7 +3353,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3367,7 +3367,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
--
2.37.2
^ permalink raw reply related [relevance 5%]
* Re: [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime
2022-12-16 6:21 6% [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
` (3 preceding siblings ...)
2023-02-01 11:58 0% ` Qinglin Pan
@ 2023-02-15 0:02 0% ` Palmer Dabbelt
2023-02-15 2:47 0% ` Qinglin Pan
4 siblings, 1 reply; 200+ results
From: Palmer Dabbelt @ 2023-02-15 0:02 UTC (permalink / raw)
To: panqinglin2020
Cc: linux-riscv, jeff, xuyinan, Conor Dooley, ajones, panqinglin2020
On Thu, 15 Dec 2022 22:21:06 PST (-0800), panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
>
> This patchset adds a Kconfig item for using Svnapot in
> "Platform type"->"SVNAPOT extension support". Its default value is on,
> and people can set it off if they don't allow kernel to detect Svnapot
> hardware support and leverage it.
>
> Tested on:
> - qemu rv64 with "Svnapot support" off and svnapot=true.
> - qemu rv64 with "Svnapot support" on and svnapot=true.
> - qemu rv64 with "Svnapot support" off and svnapot=false.
> - qemu rv64 with "Svnapot support" on and svnapot=false.
>
>
> Changes in v2:
> - detect Svnapot hardware support at boot time.
> Changes in v3:
> - do linear mapping again if has_svnapot
> Changes in v4:
> - fix some errors/warns reported by checkpatch.pl, thanks @Conor
> Changes in v5:
> - modify code according to @Conor and @Heiko
> Changes in v6:
> - use static key insead of alternative errata
> Changes in v7:
> - add napot_cont_order for possible more napot order in the future
> - remove linear mapping related code from this patchset to another patch
> - refactor hugetlb code for svnapot according to thanks @Andrew @Conor
> - use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
> - support svnapot in huge vmap on newer for-next branch
> Changes in v8:
> - fix compilation errors in rv32_defconfig
> - insert some lines of whitespace according to @Conor's suggestion
> Changes in v9:
> - use alternative to avoid using static branches inside heavily used
> inline functions
> - change napot_cont_mask definition
> - post test_vmalloc modification about testing vmalloc_huge
> Changes in v10:
> - fix some nits caught by @Andrew
> - collect Reviewed-by/Acked-by
> - add memory leak warning in KConfig text
> - replace test_vmalloc patch link with the standard one
> Changes in v11:
> - add more detailed warning about HUGETLBFS and SVNAPOT in KConfig text
> - fix missing reverse-xmas tree
>
>
> Qinglin Pan (3):
> riscv: mm: modify pte format for Svnapot
> riscv: mm: support Svnapot in hugetlb page
> riscv: mm: support Svnapot in huge vmap
>
> arch/riscv/Kconfig | 21 +-
> arch/riscv/include/asm/errata_list.h | 15 +-
> arch/riscv/include/asm/hugetlb.h | 34 ++-
> arch/riscv/include/asm/hwcap.h | 2 +-
> arch/riscv/include/asm/page.h | 5 -
> arch/riscv/include/asm/pgtable-64.h | 34 +++
> arch/riscv/include/asm/pgtable.h | 43 +++-
> arch/riscv/include/asm/vmalloc.h | 61 +++++-
> arch/riscv/kernel/cpu.c | 1 +
> arch/riscv/kernel/cpufeature.c | 15 ++
> arch/riscv/mm/hugetlbpage.c | 301 +++++++++++++++++++++++++++
> 11 files changed, 519 insertions(+), 13 deletions(-)
This is triggering some build failures. I sent along a fix before
realizing they're actually coming from this patch set:
https://lore.kernel.org/all/20230214201358.10647-1-palmer@rivosinc.com/
. If it's OK I'll just squash that in here, so I can avoid a broken
build.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* [PATCH v6 3/7] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
@ 2023-02-14 1:59 5% ` Rohan McLure
0 siblings, 0 replies; 200+ results
From: Rohan McLure @ 2023-02-14 1:59 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Rohan McLure
Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
latter is the name given to checking that a higher-level entry in
multi-level paging contains a page translation entry (pte) throughout
all other archs.
A future patch will implement p{u,m,4}_leaf stubs on all platforms so
that they may be referenced in generic code.
Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
---
V4: New patch
V5: Previously replaced stub definition for *_is_leaf with *_leaf. Do
that in a later patch
---
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 ++++++------
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 +++++++-------
arch/powerpc/mm/pgtable.c | 6 +++---
arch/powerpc/mm/pgtable_64.c | 6 +++---
arch/powerpc/xmon/xmon.c | 6 +++---
5 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 9d3743ca16d5..0d24fd984d16 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -497,7 +497,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -526,7 +526,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -629,12 +629,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -652,7 +652,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -703,7 +703,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index 26245aaf12b8..4e46e001c3c3 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -205,14 +205,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -786,7 +786,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (!IS_ALIGNED(addr, PMD_SIZE) ||
!IS_ALIGNED(next, PMD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -816,7 +816,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -849,7 +849,7 @@ static void __meminit remove_pagetable(unsigned long start, unsigned long end)
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1112,7 +1112,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1159,7 +1159,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index e9a464e0d081..3de0a8184f87 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -387,7 +387,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -409,7 +409,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -448,7 +448,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 5ac1fd30341b..0604c80dae66 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 73c620c2a3a1..07346b10f972 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3339,7 +3339,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3353,7 +3353,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3367,7 +3367,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
--
2.37.2
^ permalink raw reply related [relevance 5%]
* [PATCH 02/11] netfs: Add a function to extract an iterator into a scatterlist
@ 2023-02-10 23:31 4% ` David Howells
0 siblings, 0 replies; 200+ results
From: David Howells @ 2023-02-10 23:31 UTC (permalink / raw)
To: Steve French
Cc: David Howells, Al Viro, Shyam Prasad N, Rohith Surabattula,
Tom Talpey, Stefan Metzmacher, Christoph Hellwig, Matthew Wilcox,
Jeff Layton, linux-cifs, linux-fsdevel, linux-kernel,
Steve French, linux-cachefs
Provide a function for filling in a scatterlist from the list of pages
contained in an iterator.
If the iterator is UBUF- or IOBUF-type, the pages have a pin taken on them
(as FOLL_PIN).
If the iterator is BVEC-, KVEC- or XARRAY-type, no pin is taken on the
pages and it is left to the caller to manage their lifetime. It cannot be
assumed that a ref can be validly taken, particularly in the case of a KVEC
iterator.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <sfrench@samba.org>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: linux-cachefs@redhat.com
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
---
fs/netfs/iterator.c | 269 ++++++++++++++++++++++++++++++++++++++++++
include/linux/netfs.h | 4 +
mm/vmalloc.c | 1 +
3 files changed, 274 insertions(+)
diff --git a/fs/netfs/iterator.c b/fs/netfs/iterator.c
index 6f0d79080abc..49e674846b78 100644
--- a/fs/netfs/iterator.c
+++ b/fs/netfs/iterator.c
@@ -7,7 +7,9 @@
#include <linux/export.h>
#include <linux/slab.h>
+#include <linux/mm.h>
#include <linux/uio.h>
+#include <linux/scatterlist.h>
#include <linux/netfs.h>
#include "internal.h"
@@ -101,3 +103,270 @@ ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
return npages;
}
EXPORT_SYMBOL_GPL(netfs_extract_user_iter);
+
+/*
+ * Extract and pin a list of up to sg_max pages from UBUF- or IOVEC-class
+ * iterators, and add them to the scatterlist.
+ */
+static ssize_t netfs_extract_user_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct page **pages;
+ unsigned int npages;
+ ssize_t ret = 0, res;
+ size_t len, off;
+
+ /* We decant the page list into the tail of the scatterlist */
+ pages = (void *)sgtable->sgl + array_size(sg_max, sizeof(struct scatterlist));
+ pages -= sg_max;
+
+ do {
+ res = iov_iter_extract_pages(iter, &pages, maxsize, sg_max,
+ extraction_flags, &off);
+ if (res < 0)
+ goto failed;
+
+ len = res;
+ maxsize -= len;
+ ret += len;
+ npages = DIV_ROUND_UP(off + len, PAGE_SIZE);
+ sg_max -= npages;
+
+ for (; npages < 0; npages--) {
+ struct page *page = *pages;
+ size_t seg = min_t(size_t, PAGE_SIZE - off, len);
+
+ *pages++ = NULL;
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ len -= seg;
+ off = 0;
+ }
+ } while (maxsize > 0 && sg_max > 0);
+
+ return ret;
+
+failed:
+ while (sgtable->nents > sgtable->orig_nents)
+ put_page(sg_page(&sgtable->sgl[--sgtable->nents]));
+ return res;
+}
+
+/*
+ * Extract up to sg_max pages from a BVEC-type iterator and add them to the
+ * scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_bvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ const struct bio_vec *bv = iter->bvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ size_t off, len;
+
+ len = bv[i].bv_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ len = min_t(size_t, maxsize, len - start);
+ off = bv[i].bv_offset + start;
+
+ sg_set_page(sg, bv[i].bv_page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ ret += len;
+ maxsize -= len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max pages from a KVEC-type iterator and add them to the
+ * scatterlist. This can deal with vmalloc'd buffers as well as kmalloc'd or
+ * static buffers. The pages are not pinned.
+ */
+static ssize_t netfs_extract_kvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ const struct kvec *kv = iter->kvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ struct page *page;
+ unsigned long kaddr;
+ size_t off, len, seg;
+
+ len = kv[i].iov_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ kaddr = (unsigned long)kv[i].iov_base + start;
+ off = kaddr & ~PAGE_MASK;
+ len = min_t(size_t, maxsize, len - start);
+ kaddr &= PAGE_MASK;
+
+ maxsize -= len;
+ ret += len;
+ do {
+ seg = min_t(size_t, len, PAGE_SIZE - off);
+ if (is_vmalloc_or_module_addr((void *)kaddr))
+ page = vmalloc_to_page((void *)kaddr);
+ else
+ page = virt_to_page(kaddr);
+
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ len -= seg;
+ kaddr += PAGE_SIZE;
+ off = 0;
+ } while (len > 0 && sg_max > 0);
+
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max folios from an XARRAY-type iterator and add them to
+ * the scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_xarray_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct xarray *xa = iter->xarray;
+ struct folio *folio;
+ loff_t start = iter->xarray_start + iter->iov_offset;
+ pgoff_t index = start / PAGE_SIZE;
+ ssize_t ret = 0;
+ size_t offset, len;
+ XA_STATE(xas, xa, index);
+
+ rcu_read_lock();
+
+ xas_for_each(&xas, folio, ULONG_MAX) {
+ if (xas_retry(&xas, folio))
+ continue;
+ if (WARN_ON(xa_is_value(folio)))
+ break;
+ if (WARN_ON(folio_test_hugetlb(folio)))
+ break;
+
+ offset = offset_in_folio(folio, start);
+ len = min_t(size_t, maxsize, folio_size(folio) - offset);
+
+ sg_set_page(sg, folio_page(folio, 0), len, offset);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ maxsize -= len;
+ ret += len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ }
+
+ rcu_read_unlock();
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/**
+ * netfs_extract_iter_to_sg - Extract pages from an iterator and add ot an sglist
+ * @iter: The iterator to extract from
+ * @maxsize: The amount of iterator to copy
+ * @sgtable: The scatterlist table to fill in
+ * @sg_max: Maximum number of elements in @sgtable that may be filled
+ * @extraction_flags: Flags to qualify the request
+ *
+ * Extract the page fragments from the given amount of the source iterator and
+ * add them to a scatterlist that refers to all of those bits, to a maximum
+ * addition of @sg_max elements.
+ *
+ * The pages referred to by UBUF- and IOVEC-type iterators are extracted and
+ * pinned; BVEC-, KVEC- and XARRAY-type are extracted but aren't pinned; PIPE-
+ * and DISCARD-type are not supported.
+ *
+ * No end mark is placed on the scatterlist; that's left to the caller.
+ *
+ * @extraction_flags can have ITER_ALLOW_P2PDMA set to request peer-to-peer DMA
+ * be allowed on the pages extracted.
+ *
+ * If successul, @sgtable->nents is updated to include the number of elements
+ * added and the number of bytes added is returned. @sgtable->orig_nents is
+ * left unaltered.
+ *
+ * The iov_iter_extract_mode() function should be used to query how cleanup
+ * should be performed.
+ */
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t maxsize,
+ struct sg_table *sgtable, unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ if (maxsize == 0)
+ return 0;
+
+ switch (iov_iter_type(iter)) {
+ case ITER_UBUF:
+ case ITER_IOVEC:
+ return netfs_extract_user_to_sg(iter, maxsize, sgtable, sg_max,
+ extraction_flags);
+ case ITER_BVEC:
+ return netfs_extract_bvec_to_sg(iter, maxsize, sgtable, sg_max,
+ extraction_flags);
+ case ITER_KVEC:
+ return netfs_extract_kvec_to_sg(iter, maxsize, sgtable, sg_max,
+ extraction_flags);
+ case ITER_XARRAY:
+ return netfs_extract_xarray_to_sg(iter, maxsize, sgtable, sg_max,
+ extraction_flags);
+ default:
+ pr_err("netfs_extract_iter_to_sg(%u) unsupported\n",
+ iov_iter_type(iter));
+ WARN_ON_ONCE(1);
+ return -EIO;
+ }
+}
+EXPORT_SYMBOL_GPL(netfs_extract_iter_to_sg);
diff --git a/include/linux/netfs.h b/include/linux/netfs.h
index b11a84f6c32b..a1f3522daa69 100644
--- a/include/linux/netfs.h
+++ b/include/linux/netfs.h
@@ -300,6 +300,10 @@ void netfs_stats_show(struct seq_file *);
ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
struct iov_iter *new,
iov_iter_extraction_t extraction_flags);
+struct sg_table;
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t len,
+ struct sg_table *sgtable, unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags);
/**
* netfs_inode - Get the netfs inode context from the inode
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ca71de7c9d77..61f5bec0f2b6 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -656,6 +656,7 @@ int is_vmalloc_or_module_addr(const void *x)
#endif
return is_vmalloc_addr(x);
}
+EXPORT_SYMBOL_GPL(is_vmalloc_or_module_addr);
/*
* Walk a vmap address to the struct page it maps. Huge vmap mappings will
^ permalink raw reply related [relevance 4%]
* [PATCH v13 3/3] riscv: mm: support Svnapot in huge vmap
2023-02-09 13:16 6% [PATCH v13 0/3] riscv, mm: detect svnapot cpu support at runtime Qinglin Pan
@ 2023-02-09 13:16 12% ` Qinglin Pan
0 siblings, 0 replies; 200+ results
From: Qinglin Pan @ 2023-02-09 13:16 UTC (permalink / raw)
To: paul.walmsley, palmer, linux-riscv
Cc: jeff, xuyinan, conor, ajones, Qinglin Pan, Qinglin Pan, Conor Dooley
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
for Svnapot to support huge vmap about napot size.
It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
can be tested by test_vmalloc with [1] applied, and probe this
module to run fix_size_alloc_test with use_huge true.
[1]https://lore.kernel.org/all/20221212055657.698420-1-panqinglin2020@iscas.ac.cn/
Signed-off-by: Qinglin Pan <panqinglin00@gmail.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 48da5371f1e9..58d3e447f191 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#endif
+#ifdef CONFIG_RISCV_ISA_SVNAPOT
+#include <linux/pgtable.h>
+#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
+static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
+ u64 pfn, unsigned int max_page_shift)
+{
+ unsigned long map_size = PAGE_SIZE;
+ unsigned long size, order;
+
+ if (!has_svnapot())
+ return map_size;
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_shift(order) > max_page_shift)
+ continue;
+
+ size = napot_cont_size(order);
+ if (end - addr < size)
+ continue;
+
+ if (!IS_ALIGNED(addr, size))
+ continue;
+
+ if (!IS_ALIGNED(PFN_PHYS(pfn), size))
+ continue;
+
+ map_size = size;
+ break;
+ }
+
+ return map_size;
+}
+
+#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
+static inline int arch_vmap_pte_supported_shift(unsigned long size)
+{
+ int shift = PAGE_SHIFT;
+ unsigned long order;
+
+ if (!has_svnapot())
+ return shift;
+
+ WARN_ON_ONCE(size >= PMD_SIZE);
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_size(order) > size)
+ continue;
+
+ if (!IS_ALIGNED(size, napot_cont_size(order)))
+ continue;
+
+ shift = napot_cont_shift(order);
+ break;
+ }
+
+ return shift;
+}
+
+#endif /* CONFIG_RISCV_ISA_SVNAPOT */
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.39.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 12%]
* [PATCH v13 0/3] riscv, mm: detect svnapot cpu support at runtime
@ 2023-02-09 13:16 6% Qinglin Pan
2023-02-09 13:16 12% ` [PATCH v13 3/3] riscv: mm: support Svnapot in huge vmap Qinglin Pan
0 siblings, 1 reply; 200+ results
From: Qinglin Pan @ 2023-02-09 13:16 UTC (permalink / raw)
To: paul.walmsley, palmer, linux-riscv
Cc: jeff, xuyinan, conor, ajones, Qinglin Pan
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is on,
and people can set it off if they don't allow kernel to detect Svnapot
hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
- modify code according to @Conor and @Heiko
Changes in v6:
- use static key insead of alternative errata
Changes in v7:
- add napot_cont_order for possible more napot order in the future
- remove linear mapping related code from this patchset to another patch
- refactor hugetlb code for svnapot according to thanks @Andrew @Conor
- use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
- support svnapot in huge vmap on newer for-next branch
Changes in v8:
- fix compilation errors in rv32_defconfig
- insert some lines of whitespace according to @Conor's suggestion
Changes in v9:
- use alternative to avoid using static branches inside heavily used
inline functions
- change napot_cont_mask definition
- post test_vmalloc modification about testing vmalloc_huge
Changes in v10:
- fix some nits caught by @Andrew
- collect Reviewed-by/Acked-by
- add memory leak warning in KConfig text
- replace test_vmalloc patch link with the standard one
Changes in v11:
- add more detailed warning about HUGETLBFS and SVNAPOT in KConfig text
- fix missing reverse-xmas tree
Changes in v12:
- rebase on the new ISA extension API [1]
Changes in v13:
- fix warnings reported by patchwork
[1]https://lore.kernel.org/all/20230128172856.3814-5-jszhang@kernel.org/
Qinglin Pan (3):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 21 +-
arch/riscv/include/asm/hugetlb.h | 34 +++-
arch/riscv/include/asm/hwcap.h | 9 +-
arch/riscv/include/asm/page.h | 5 -
arch/riscv/include/asm/pgtable-64.h | 34 ++++
arch/riscv/include/asm/pgtable.h | 39 +++-
arch/riscv/include/asm/vmalloc.h | 61 +++++-
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 1 +
arch/riscv/mm/hugetlbpage.c | 301 ++++++++++++++++++++++++++++
10 files changed, 493 insertions(+), 13 deletions(-)
--
2.39.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* Re: [PATCH v12 0/3] riscv, mm: detect svnapot cpu support at runtime
2023-02-09 7:30 0% ` Conor Dooley
@ 2023-02-09 8:03 0% ` Qinglin Pan
0 siblings, 0 replies; 200+ results
From: Qinglin Pan @ 2023-02-09 8:03 UTC (permalink / raw)
To: Conor Dooley; +Cc: linux-riscv
Hey!
On 2023/2/9 15:30, Conor Dooley wrote:
> Hey!
>
> On Thu, Feb 09, 2023 at 12:00:32PM +0800, Qinglin Pan wrote:
>> Hi all,
>>
>> Sorry for bothering :(
>>
>> This patchset has a bit of a formatting problem.
>> Please use another one:
>> https://lore.kernel.org/linux-riscv/20230209035343.15282-1-panqinglin00@gmail.com/T/#t
>
> If you're resending, please either mark as RESEND or increment the
> version number so that tools don't get confused.
> In this case though, tools found some issues with both version
> unfortunately:
> https://patchwork.kernel.org/project/linux-riscv/patch/20230209035343.15282-2-panqinglin00@gmail.com/
> https://patchwork.kernel.org/project/linux-riscv/patch/20230209035343.15282-3-panqinglin00@gmail.com/
> (if you click on the descriptions you should get more information on
> what is wrong)
>
> You can fix those up and send a v13 and it'll all be clear then ;)
Your information is very helpful, thanks so much!
I will send a v13 later. But I am very curious about why
conchuod/alphanumeric_selects is failed and what content is in
this test? Could you please give me some hints about it? ;)
Regards,
Qinglin.
>
> Cheers,
> Conor.
>
>>
>> Thanks,
>> Qinglin
>>
>> On 2023/2/9 11:13, Qinglin Pan wrote:
>>>
>>> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
>>> page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
>>>
>>> This patchset adds a Kconfig item for using Svnapot in
>>> "Platform type"->"SVNAPOT extension support". Its default value is on,
>>> and people can set it off if they don't allow kernel to detect Svnapot
>>> hardware support and leverage it.
>>>
>>> Tested on:
>>> - qemu rv64 with "Svnapot support" off and svnapot=true.
>>> - qemu rv64 with "Svnapot support" on and svnapot=true.
>>> - qemu rv64 with "Svnapot support" off and svnapot=false.
>>> - qemu rv64 with "Svnapot support" on and svnapot=false.
>>>
>>>
>>> Changes in v2:
>>> - detect Svnapot hardware support at boot time.
>>> Changes in v3:
>>> - do linear mapping again if has_svnapot
>>> Changes in v4:
>>> - fix some errors/warns reported by checkpatch.pl, thanks @Conor
>>> Changes in v5:
>>> - modify code according to @Conor and @Heiko
>>> Changes in v6:
>>> - use static key insead of alternative errata
>>> Changes in v7:
>>> - add napot_cont_order for possible more napot order in the future
>>> - remove linear mapping related code from this patchset to another patch
>>> - refactor hugetlb code for svnapot according to thanks @Andrew @Conor
>>> - use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
>>> - support svnapot in huge vmap on newer for-next branch
>>> Changes in v8:
>>> - fix compilation errors in rv32_defconfig
>>> - insert some lines of whitespace according to @Conor's suggestion
>>> Changes in v9:
>>> - use alternative to avoid using static branches inside heavily used
>>> inline functions
>>> - change napot_cont_mask definition
>>> - post test_vmalloc modification about testing vmalloc_huge
>>> Changes in v10:
>>> - fix some nits caught by @Andrew
>>> - collect Reviewed-by/Acked-by
>>> - add memory leak warning in KConfig text
>>> - replace test_vmalloc patch link with the standard one
>>> Changes in v11:
>>> - add more detailed warning about HUGETLBFS and SVNAPOT in KConfig text
>>> - fix missing reverse-xmas tree
>>> Changes in v12:
>>> - rebase on the new ISA extension API [1]
>>>
>>> [1]https://lore.kernel.org/all/20230128172856.3814-5-jszhang@kernel.org/
>>>
>>> Qinglin Pan (3):
>>> riscv: mm: modify pte format for Svnapot
>>> riscv: mm: support Svnapot in hugetlb page
>>> riscv: mm: support Svnapot in huge vmap
>>>
>>> arch/riscv/Kconfig | 21 +-
>>> arch/riscv/include/asm/hugetlb.h | 34 +++-
>>> arch/riscv/include/asm/hwcap.h | 9 +-
>>> arch/riscv/include/asm/page.h | 5 -
>>> arch/riscv/include/asm/pgtable-64.h | 34 ++++
>>> arch/riscv/include/asm/pgtable.h | 39 +++-
>>> arch/riscv/include/asm/vmalloc.h | 61 +++++-
>>> arch/riscv/kernel/cpu.c | 1 +
>>> arch/riscv/kernel/cpufeature.c | 1 +
>>> arch/riscv/mm/hugetlbpage.c | 301 ++++++++++++++++++++++++++++
>>> 10 files changed, 493 insertions(+), 13 deletions(-)
>>>
>>
>>
>> _______________________________________________
>> linux-riscv mailing list
>> linux-riscv@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-riscv
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* Re: [PATCH v12 0/3] riscv, mm: detect svnapot cpu support at runtime
2023-02-09 4:00 0% ` Qinglin Pan
@ 2023-02-09 7:30 0% ` Conor Dooley
2023-02-09 8:03 0% ` Qinglin Pan
0 siblings, 1 reply; 200+ results
From: Conor Dooley @ 2023-02-09 7:30 UTC (permalink / raw)
To: Qinglin Pan; +Cc: linux-riscv
[-- Attachment #1.1: Type: text/plain, Size: 4310 bytes --]
Hey!
On Thu, Feb 09, 2023 at 12:00:32PM +0800, Qinglin Pan wrote:
> Hi all,
>
> Sorry for bothering :(
>
> This patchset has a bit of a formatting problem.
> Please use another one:
> https://lore.kernel.org/linux-riscv/20230209035343.15282-1-panqinglin00@gmail.com/T/#t
If you're resending, please either mark as RESEND or increment the
version number so that tools don't get confused.
In this case though, tools found some issues with both version
unfortunately:
https://patchwork.kernel.org/project/linux-riscv/patch/20230209035343.15282-2-panqinglin00@gmail.com/
https://patchwork.kernel.org/project/linux-riscv/patch/20230209035343.15282-3-panqinglin00@gmail.com/
(if you click on the descriptions you should get more information on
what is wrong)
You can fix those up and send a v13 and it'll all be clear then ;)
Cheers,
Conor.
>
> Thanks,
> Qinglin
>
> On 2023/2/9 11:13, Qinglin Pan wrote:
> >
> > Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> > page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
> >
> > This patchset adds a Kconfig item for using Svnapot in
> > "Platform type"->"SVNAPOT extension support". Its default value is on,
> > and people can set it off if they don't allow kernel to detect Svnapot
> > hardware support and leverage it.
> >
> > Tested on:
> > - qemu rv64 with "Svnapot support" off and svnapot=true.
> > - qemu rv64 with "Svnapot support" on and svnapot=true.
> > - qemu rv64 with "Svnapot support" off and svnapot=false.
> > - qemu rv64 with "Svnapot support" on and svnapot=false.
> >
> >
> > Changes in v2:
> > - detect Svnapot hardware support at boot time.
> > Changes in v3:
> > - do linear mapping again if has_svnapot
> > Changes in v4:
> > - fix some errors/warns reported by checkpatch.pl, thanks @Conor
> > Changes in v5:
> > - modify code according to @Conor and @Heiko
> > Changes in v6:
> > - use static key insead of alternative errata
> > Changes in v7:
> > - add napot_cont_order for possible more napot order in the future
> > - remove linear mapping related code from this patchset to another patch
> > - refactor hugetlb code for svnapot according to thanks @Andrew @Conor
> > - use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
> > - support svnapot in huge vmap on newer for-next branch
> > Changes in v8:
> > - fix compilation errors in rv32_defconfig
> > - insert some lines of whitespace according to @Conor's suggestion
> > Changes in v9:
> > - use alternative to avoid using static branches inside heavily used
> > inline functions
> > - change napot_cont_mask definition
> > - post test_vmalloc modification about testing vmalloc_huge
> > Changes in v10:
> > - fix some nits caught by @Andrew
> > - collect Reviewed-by/Acked-by
> > - add memory leak warning in KConfig text
> > - replace test_vmalloc patch link with the standard one
> > Changes in v11:
> > - add more detailed warning about HUGETLBFS and SVNAPOT in KConfig text
> > - fix missing reverse-xmas tree
> > Changes in v12:
> > - rebase on the new ISA extension API [1]
> >
> > [1]https://lore.kernel.org/all/20230128172856.3814-5-jszhang@kernel.org/
> >
> > Qinglin Pan (3):
> > riscv: mm: modify pte format for Svnapot
> > riscv: mm: support Svnapot in hugetlb page
> > riscv: mm: support Svnapot in huge vmap
> >
> > arch/riscv/Kconfig | 21 +-
> > arch/riscv/include/asm/hugetlb.h | 34 +++-
> > arch/riscv/include/asm/hwcap.h | 9 +-
> > arch/riscv/include/asm/page.h | 5 -
> > arch/riscv/include/asm/pgtable-64.h | 34 ++++
> > arch/riscv/include/asm/pgtable.h | 39 +++-
> > arch/riscv/include/asm/vmalloc.h | 61 +++++-
> > arch/riscv/kernel/cpu.c | 1 +
> > arch/riscv/kernel/cpufeature.c | 1 +
> > arch/riscv/mm/hugetlbpage.c | 301 ++++++++++++++++++++++++++++
> > 10 files changed, 493 insertions(+), 13 deletions(-)
> >
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 161 bytes --]
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* Re: [PATCH v12 0/3] riscv, mm: detect svnapot cpu support at runtime
2023-02-09 3:13 6% [PATCH v12 0/3] riscv, mm: detect svnapot cpu support at runtime Qinglin Pan
@ 2023-02-09 4:00 0% ` Qinglin Pan
2023-02-09 7:30 0% ` Conor Dooley
0 siblings, 1 reply; 200+ results
From: Qinglin Pan @ 2023-02-09 4:00 UTC (permalink / raw)
To: linux-riscv
Hi all,
Sorry for bothering :(
This patchset has a bit of a formatting problem.
Please use another one:
https://lore.kernel.org/linux-riscv/20230209035343.15282-1-panqinglin00@gmail.com/T/#t
Thanks,
Qinglin
On 2023/2/9 11:13, Qinglin Pan wrote:
>
> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
>
> This patchset adds a Kconfig item for using Svnapot in
> "Platform type"->"SVNAPOT extension support". Its default value is on,
> and people can set it off if they don't allow kernel to detect Svnapot
> hardware support and leverage it.
>
> Tested on:
> - qemu rv64 with "Svnapot support" off and svnapot=true.
> - qemu rv64 with "Svnapot support" on and svnapot=true.
> - qemu rv64 with "Svnapot support" off and svnapot=false.
> - qemu rv64 with "Svnapot support" on and svnapot=false.
>
>
> Changes in v2:
> - detect Svnapot hardware support at boot time.
> Changes in v3:
> - do linear mapping again if has_svnapot
> Changes in v4:
> - fix some errors/warns reported by checkpatch.pl, thanks @Conor
> Changes in v5:
> - modify code according to @Conor and @Heiko
> Changes in v6:
> - use static key insead of alternative errata
> Changes in v7:
> - add napot_cont_order for possible more napot order in the future
> - remove linear mapping related code from this patchset to another patch
> - refactor hugetlb code for svnapot according to thanks @Andrew @Conor
> - use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
> - support svnapot in huge vmap on newer for-next branch
> Changes in v8:
> - fix compilation errors in rv32_defconfig
> - insert some lines of whitespace according to @Conor's suggestion
> Changes in v9:
> - use alternative to avoid using static branches inside heavily used
> inline functions
> - change napot_cont_mask definition
> - post test_vmalloc modification about testing vmalloc_huge
> Changes in v10:
> - fix some nits caught by @Andrew
> - collect Reviewed-by/Acked-by
> - add memory leak warning in KConfig text
> - replace test_vmalloc patch link with the standard one
> Changes in v11:
> - add more detailed warning about HUGETLBFS and SVNAPOT in KConfig text
> - fix missing reverse-xmas tree
> Changes in v12:
> - rebase on the new ISA extension API [1]
>
> [1]https://lore.kernel.org/all/20230128172856.3814-5-jszhang@kernel.org/
>
> Qinglin Pan (3):
> riscv: mm: modify pte format for Svnapot
> riscv: mm: support Svnapot in hugetlb page
> riscv: mm: support Svnapot in huge vmap
>
> arch/riscv/Kconfig | 21 +-
> arch/riscv/include/asm/hugetlb.h | 34 +++-
> arch/riscv/include/asm/hwcap.h | 9 +-
> arch/riscv/include/asm/page.h | 5 -
> arch/riscv/include/asm/pgtable-64.h | 34 ++++
> arch/riscv/include/asm/pgtable.h | 39 +++-
> arch/riscv/include/asm/vmalloc.h | 61 +++++-
> arch/riscv/kernel/cpu.c | 1 +
> arch/riscv/kernel/cpufeature.c | 1 +
> arch/riscv/mm/hugetlbpage.c | 301 ++++++++++++++++++++++++++++
> 10 files changed, 493 insertions(+), 13 deletions(-)
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* [PATCH v12 3/3] riscv: mm: support Svnapot in huge vmap
2023-02-09 3:53 6% [PATCH v12 0/3] riscv, mm: detect svnapot cpu support at runtime Qinglin Pan
@ 2023-02-09 3:53 12% ` Qinglin Pan
0 siblings, 0 replies; 200+ results
From: Qinglin Pan @ 2023-02-09 3:53 UTC (permalink / raw)
To: palmer, linux-riscv
Cc: jeff, xuyinan, conor, ajones, Qinglin Pan, Qinglin Pan, Conor Dooley
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
for Svnapot to support huge vmap about napot size.
It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
can be tested by test_vmalloc with [1] applied, and probe this
module to run fix_size_alloc_test with use_huge true.
[1]https://lore.kernel.org/all/20221212055657.698420-1-panqinglin2020@iscas.ac.cn/
Signed-off-by: Qinglin Pan <panqinglin00@gmail.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 48da5371f1e9..58d3e447f191 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#endif
+#ifdef CONFIG_RISCV_ISA_SVNAPOT
+#include <linux/pgtable.h>
+#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
+static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
+ u64 pfn, unsigned int max_page_shift)
+{
+ unsigned long map_size = PAGE_SIZE;
+ unsigned long size, order;
+
+ if (!has_svnapot())
+ return map_size;
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_shift(order) > max_page_shift)
+ continue;
+
+ size = napot_cont_size(order);
+ if (end - addr < size)
+ continue;
+
+ if (!IS_ALIGNED(addr, size))
+ continue;
+
+ if (!IS_ALIGNED(PFN_PHYS(pfn), size))
+ continue;
+
+ map_size = size;
+ break;
+ }
+
+ return map_size;
+}
+
+#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
+static inline int arch_vmap_pte_supported_shift(unsigned long size)
+{
+ int shift = PAGE_SHIFT;
+ unsigned long order;
+
+ if (!has_svnapot())
+ return shift;
+
+ WARN_ON_ONCE(size >= PMD_SIZE);
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_size(order) > size)
+ continue;
+
+ if (!IS_ALIGNED(size, napot_cont_size(order)))
+ continue;
+
+ shift = napot_cont_shift(order);
+ break;
+ }
+
+ return shift;
+}
+
+#endif /* CONFIG_RISCV_ISA_SVNAPOT */
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.39.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 12%]
* [PATCH v12 0/3] riscv, mm: detect svnapot cpu support at runtime
@ 2023-02-09 3:53 6% Qinglin Pan
2023-02-09 3:53 12% ` [PATCH v12 3/3] riscv: mm: support Svnapot in huge vmap Qinglin Pan
0 siblings, 1 reply; 200+ results
From: Qinglin Pan @ 2023-02-09 3:53 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones, Qinglin Pan
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is on,
and people can set it off if they don't allow kernel to detect Svnapot
hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
- modify code according to @Conor and @Heiko
Changes in v6:
- use static key insead of alternative errata
Changes in v7:
- add napot_cont_order for possible more napot order in the future
- remove linear mapping related code from this patchset to another patch
- refactor hugetlb code for svnapot according to thanks @Andrew @Conor
- use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
- support svnapot in huge vmap on newer for-next branch
Changes in v8:
- fix compilation errors in rv32_defconfig
- insert some lines of whitespace according to @Conor's suggestion
Changes in v9:
- use alternative to avoid using static branches inside heavily used
inline functions
- change napot_cont_mask definition
- post test_vmalloc modification about testing vmalloc_huge
Changes in v10:
- fix some nits caught by @Andrew
- collect Reviewed-by/Acked-by
- add memory leak warning in KConfig text
- replace test_vmalloc patch link with the standard one
Changes in v11:
- add more detailed warning about HUGETLBFS and SVNAPOT in KConfig text
- fix missing reverse-xmas tree
Changes in v12:
- rebase on the new ISA extension API [1]
[1]https://lore.kernel.org/all/20230128172856.3814-5-jszhang@kernel.org/
Qinglin Pan (3):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 21 +-
arch/riscv/include/asm/hugetlb.h | 34 +++-
arch/riscv/include/asm/hwcap.h | 9 +-
arch/riscv/include/asm/page.h | 5 -
arch/riscv/include/asm/pgtable-64.h | 34 ++++
arch/riscv/include/asm/pgtable.h | 39 +++-
arch/riscv/include/asm/vmalloc.h | 61 +++++-
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 1 +
arch/riscv/mm/hugetlbpage.c | 301 ++++++++++++++++++++++++++++
10 files changed, 493 insertions(+), 13 deletions(-)
--
2.39.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* [PATCH v12 3/3] riscv: mm: support Svnapot in huge vmap
@ 2023-02-09 3:13 12% Qinglin Pan
0 siblings, 0 replies; 200+ results
From: Qinglin Pan @ 2023-02-09 3:13 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones
As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
for Svnapot to support huge vmap about napot size.
It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
can be tested by test_vmalloc with [1] applied, and probe this
module to run fix_size_alloc_test with use_huge true.
[1]https://lore.kernel.org/all/20221212055657.698420-1-panqinglin2020@iscas.ac.cn/
Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
diff --git a/arch/riscv/include/asm/vmalloc.h
b/arch/riscv/include/asm/vmalloc.h
index 48da5371f1e9..58d3e447f191 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#endif
+#ifdef CONFIG_RISCV_ISA_SVNAPOT
+#include <linux/pgtable.h>
+#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
+static inline unsigned long arch_vmap_pte_range_map_size(unsigned long
addr, unsigned long end,
+ u64 pfn, unsigned int max_page_shift)
+{
+ unsigned long map_size = PAGE_SIZE;
+ unsigned long size, order;
+
+ if (!has_svnapot())
+ return map_size;
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_shift(order) > max_page_shift)
+ continue;
+
+ size = napot_cont_size(order);
+ if (end - addr < size)
+ continue;
+
+ if (!IS_ALIGNED(addr, size))
+ continue;
+
+ if (!IS_ALIGNED(PFN_PHYS(pfn), size))
+ continue;
+
+ map_size = size;
+ break;
+ }
+
+ return map_size;
+}
+
+#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
+static inline int arch_vmap_pte_supported_shift(unsigned long size)
+{
+ int shift = PAGE_SHIFT;
+ unsigned long order;
+
+ if (!has_svnapot())
+ return shift;
+
+ WARN_ON_ONCE(size >= PMD_SIZE);
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_size(order) > size)
+ continue;
+
+ if (!IS_ALIGNED(size, napot_cont_size(order)))
+ continue;
+
+ shift = napot_cont_shift(order);
+ break;
+ }
+
+ return shift;
+}
+
+#endif /* CONFIG_RISCV_ISA_SVNAPOT */
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.39.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 12%]
* [PATCH v12 0/3] riscv, mm: detect svnapot cpu support at runtime
@ 2023-02-09 3:13 6% Qinglin Pan
2023-02-09 4:00 0% ` Qinglin Pan
0 siblings, 1 reply; 200+ results
From: Qinglin Pan @ 2023-02-09 3:13 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is on,
and people can set it off if they don't allow kernel to detect Svnapot
hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
- modify code according to @Conor and @Heiko
Changes in v6:
- use static key insead of alternative errata
Changes in v7:
- add napot_cont_order for possible more napot order in the future
- remove linear mapping related code from this patchset to another patch
- refactor hugetlb code for svnapot according to thanks @Andrew @Conor
- use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
- support svnapot in huge vmap on newer for-next branch
Changes in v8:
- fix compilation errors in rv32_defconfig
- insert some lines of whitespace according to @Conor's suggestion
Changes in v9:
- use alternative to avoid using static branches inside heavily used
inline functions
- change napot_cont_mask definition
- post test_vmalloc modification about testing vmalloc_huge
Changes in v10:
- fix some nits caught by @Andrew
- collect Reviewed-by/Acked-by
- add memory leak warning in KConfig text
- replace test_vmalloc patch link with the standard one
Changes in v11:
- add more detailed warning about HUGETLBFS and SVNAPOT in KConfig text
- fix missing reverse-xmas tree
Changes in v12:
- rebase on the new ISA extension API [1]
[1]https://lore.kernel.org/all/20230128172856.3814-5-jszhang@kernel.org/
Qinglin Pan (3):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 21 +-
arch/riscv/include/asm/hugetlb.h | 34 +++-
arch/riscv/include/asm/hwcap.h | 9 +-
arch/riscv/include/asm/page.h | 5 -
arch/riscv/include/asm/pgtable-64.h | 34 ++++
arch/riscv/include/asm/pgtable.h | 39 +++-
arch/riscv/include/asm/vmalloc.h | 61 +++++-
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 1 +
arch/riscv/mm/hugetlbpage.c | 301 ++++++++++++++++++++++++++++
10 files changed, 493 insertions(+), 13 deletions(-)
--
2.39.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* [PATCH 02/11] netfs: Add a function to extract an iterator into a scatterlist
@ 2023-02-03 20:59 4% ` David Howells
0 siblings, 0 replies; 200+ results
From: David Howells @ 2023-02-03 20:59 UTC (permalink / raw)
To: Steve French
Cc: David Howells, Al Viro, Shyam Prasad N, Rohith Surabattula,
Tom Talpey, Stefan Metzmacher, Christoph Hellwig, Matthew Wilcox,
Jeff Layton, linux-cifs, linux-fsdevel, linux-kernel,
Steve French, linux-cachefs
Provide a function for filling in a scatterlist from the list of pages
contained in an iterator.
If the iterator is UBUF- or IOBUF-type, the pages have a pin taken on them
(as FOLL_PIN).
If the iterator is BVEC-, KVEC- or XARRAY-type, no pin is taken on the
pages and it is left to the caller to manage their lifetime. It cannot be
assumed that a ref can be validly taken, particularly in the case of a KVEC
iterator.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <sfrench@samba.org>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: linux-cachefs@redhat.com
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
---
fs/netfs/iterator.c | 269 ++++++++++++++++++++++++++++++++++++++++++
include/linux/netfs.h | 4 +
mm/vmalloc.c | 1 +
3 files changed, 274 insertions(+)
diff --git a/fs/netfs/iterator.c b/fs/netfs/iterator.c
index 6f0d79080abc..49e674846b78 100644
--- a/fs/netfs/iterator.c
+++ b/fs/netfs/iterator.c
@@ -7,7 +7,9 @@
#include <linux/export.h>
#include <linux/slab.h>
+#include <linux/mm.h>
#include <linux/uio.h>
+#include <linux/scatterlist.h>
#include <linux/netfs.h>
#include "internal.h"
@@ -101,3 +103,270 @@ ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
return npages;
}
EXPORT_SYMBOL_GPL(netfs_extract_user_iter);
+
+/*
+ * Extract and pin a list of up to sg_max pages from UBUF- or IOVEC-class
+ * iterators, and add them to the scatterlist.
+ */
+static ssize_t netfs_extract_user_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct page **pages;
+ unsigned int npages;
+ ssize_t ret = 0, res;
+ size_t len, off;
+
+ /* We decant the page list into the tail of the scatterlist */
+ pages = (void *)sgtable->sgl + array_size(sg_max, sizeof(struct scatterlist));
+ pages -= sg_max;
+
+ do {
+ res = iov_iter_extract_pages(iter, &pages, maxsize, sg_max,
+ extraction_flags, &off);
+ if (res < 0)
+ goto failed;
+
+ len = res;
+ maxsize -= len;
+ ret += len;
+ npages = DIV_ROUND_UP(off + len, PAGE_SIZE);
+ sg_max -= npages;
+
+ for (; npages < 0; npages--) {
+ struct page *page = *pages;
+ size_t seg = min_t(size_t, PAGE_SIZE - off, len);
+
+ *pages++ = NULL;
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ len -= seg;
+ off = 0;
+ }
+ } while (maxsize > 0 && sg_max > 0);
+
+ return ret;
+
+failed:
+ while (sgtable->nents > sgtable->orig_nents)
+ put_page(sg_page(&sgtable->sgl[--sgtable->nents]));
+ return res;
+}
+
+/*
+ * Extract up to sg_max pages from a BVEC-type iterator and add them to the
+ * scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_bvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ const struct bio_vec *bv = iter->bvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ size_t off, len;
+
+ len = bv[i].bv_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ len = min_t(size_t, maxsize, len - start);
+ off = bv[i].bv_offset + start;
+
+ sg_set_page(sg, bv[i].bv_page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ ret += len;
+ maxsize -= len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max pages from a KVEC-type iterator and add them to the
+ * scatterlist. This can deal with vmalloc'd buffers as well as kmalloc'd or
+ * static buffers. The pages are not pinned.
+ */
+static ssize_t netfs_extract_kvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ const struct kvec *kv = iter->kvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ struct page *page;
+ unsigned long kaddr;
+ size_t off, len, seg;
+
+ len = kv[i].iov_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ kaddr = (unsigned long)kv[i].iov_base + start;
+ off = kaddr & ~PAGE_MASK;
+ len = min_t(size_t, maxsize, len - start);
+ kaddr &= PAGE_MASK;
+
+ maxsize -= len;
+ ret += len;
+ do {
+ seg = min_t(size_t, len, PAGE_SIZE - off);
+ if (is_vmalloc_or_module_addr((void *)kaddr))
+ page = vmalloc_to_page((void *)kaddr);
+ else
+ page = virt_to_page(kaddr);
+
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ len -= seg;
+ kaddr += PAGE_SIZE;
+ off = 0;
+ } while (len > 0 && sg_max > 0);
+
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max folios from an XARRAY-type iterator and add them to
+ * the scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_xarray_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct xarray *xa = iter->xarray;
+ struct folio *folio;
+ loff_t start = iter->xarray_start + iter->iov_offset;
+ pgoff_t index = start / PAGE_SIZE;
+ ssize_t ret = 0;
+ size_t offset, len;
+ XA_STATE(xas, xa, index);
+
+ rcu_read_lock();
+
+ xas_for_each(&xas, folio, ULONG_MAX) {
+ if (xas_retry(&xas, folio))
+ continue;
+ if (WARN_ON(xa_is_value(folio)))
+ break;
+ if (WARN_ON(folio_test_hugetlb(folio)))
+ break;
+
+ offset = offset_in_folio(folio, start);
+ len = min_t(size_t, maxsize, folio_size(folio) - offset);
+
+ sg_set_page(sg, folio_page(folio, 0), len, offset);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ maxsize -= len;
+ ret += len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ }
+
+ rcu_read_unlock();
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/**
+ * netfs_extract_iter_to_sg - Extract pages from an iterator and add ot an sglist
+ * @iter: The iterator to extract from
+ * @maxsize: The amount of iterator to copy
+ * @sgtable: The scatterlist table to fill in
+ * @sg_max: Maximum number of elements in @sgtable that may be filled
+ * @extraction_flags: Flags to qualify the request
+ *
+ * Extract the page fragments from the given amount of the source iterator and
+ * add them to a scatterlist that refers to all of those bits, to a maximum
+ * addition of @sg_max elements.
+ *
+ * The pages referred to by UBUF- and IOVEC-type iterators are extracted and
+ * pinned; BVEC-, KVEC- and XARRAY-type are extracted but aren't pinned; PIPE-
+ * and DISCARD-type are not supported.
+ *
+ * No end mark is placed on the scatterlist; that's left to the caller.
+ *
+ * @extraction_flags can have ITER_ALLOW_P2PDMA set to request peer-to-peer DMA
+ * be allowed on the pages extracted.
+ *
+ * If successul, @sgtable->nents is updated to include the number of elements
+ * added and the number of bytes added is returned. @sgtable->orig_nents is
+ * left unaltered.
+ *
+ * The iov_iter_extract_mode() function should be used to query how cleanup
+ * should be performed.
+ */
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t maxsize,
+ struct sg_table *sgtable, unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags)
+{
+ if (maxsize == 0)
+ return 0;
+
+ switch (iov_iter_type(iter)) {
+ case ITER_UBUF:
+ case ITER_IOVEC:
+ return netfs_extract_user_to_sg(iter, maxsize, sgtable, sg_max,
+ extraction_flags);
+ case ITER_BVEC:
+ return netfs_extract_bvec_to_sg(iter, maxsize, sgtable, sg_max,
+ extraction_flags);
+ case ITER_KVEC:
+ return netfs_extract_kvec_to_sg(iter, maxsize, sgtable, sg_max,
+ extraction_flags);
+ case ITER_XARRAY:
+ return netfs_extract_xarray_to_sg(iter, maxsize, sgtable, sg_max,
+ extraction_flags);
+ default:
+ pr_err("netfs_extract_iter_to_sg(%u) unsupported\n",
+ iov_iter_type(iter));
+ WARN_ON_ONCE(1);
+ return -EIO;
+ }
+}
+EXPORT_SYMBOL_GPL(netfs_extract_iter_to_sg);
diff --git a/include/linux/netfs.h b/include/linux/netfs.h
index b11a84f6c32b..a1f3522daa69 100644
--- a/include/linux/netfs.h
+++ b/include/linux/netfs.h
@@ -300,6 +300,10 @@ void netfs_stats_show(struct seq_file *);
ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
struct iov_iter *new,
iov_iter_extraction_t extraction_flags);
+struct sg_table;
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t len,
+ struct sg_table *sgtable, unsigned int sg_max,
+ iov_iter_extraction_t extraction_flags);
/**
* netfs_inode - Get the netfs inode context from the inode
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ca71de7c9d77..61f5bec0f2b6 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -656,6 +656,7 @@ int is_vmalloc_or_module_addr(const void *x)
#endif
return is_vmalloc_addr(x);
}
+EXPORT_SYMBOL_GPL(is_vmalloc_or_module_addr);
/*
* Walk a vmap address to the struct page it maps. Huge vmap mappings will
^ permalink raw reply related [relevance 4%]
* Re: [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime
2022-12-16 6:21 6% [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
` (2 preceding siblings ...)
2023-01-14 4:54 0% ` Qinglin Pan
@ 2023-02-01 11:58 0% ` Qinglin Pan
2023-02-15 0:02 0% ` Palmer Dabbelt
4 siblings, 0 replies; 200+ results
From: Qinglin Pan @ 2023-02-01 11:58 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones
Hi Palmer,
Just a friendly ping :)
Is there anything else I need to do for this patchset?
Thanks,
Qinglin
On 2022/12/16 14:21, panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
>
> This patchset adds a Kconfig item for using Svnapot in
> "Platform type"->"SVNAPOT extension support". Its default value is on,
> and people can set it off if they don't allow kernel to detect Svnapot
> hardware support and leverage it.
>
> Tested on:
> - qemu rv64 with "Svnapot support" off and svnapot=true.
> - qemu rv64 with "Svnapot support" on and svnapot=true.
> - qemu rv64 with "Svnapot support" off and svnapot=false.
> - qemu rv64 with "Svnapot support" on and svnapot=false.
>
>
> Changes in v2:
> - detect Svnapot hardware support at boot time.
> Changes in v3:
> - do linear mapping again if has_svnapot
> Changes in v4:
> - fix some errors/warns reported by checkpatch.pl, thanks @Conor
> Changes in v5:
> - modify code according to @Conor and @Heiko
> Changes in v6:
> - use static key insead of alternative errata
> Changes in v7:
> - add napot_cont_order for possible more napot order in the future
> - remove linear mapping related code from this patchset to another patch
> - refactor hugetlb code for svnapot according to thanks @Andrew @Conor
> - use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
> - support svnapot in huge vmap on newer for-next branch
> Changes in v8:
> - fix compilation errors in rv32_defconfig
> - insert some lines of whitespace according to @Conor's suggestion
> Changes in v9:
> - use alternative to avoid using static branches inside heavily used
> inline functions
> - change napot_cont_mask definition
> - post test_vmalloc modification about testing vmalloc_huge
> Changes in v10:
> - fix some nits caught by @Andrew
> - collect Reviewed-by/Acked-by
> - add memory leak warning in KConfig text
> - replace test_vmalloc patch link with the standard one
> Changes in v11:
> - add more detailed warning about HUGETLBFS and SVNAPOT in KConfig text
> - fix missing reverse-xmas tree
>
>
> Qinglin Pan (3):
> riscv: mm: modify pte format for Svnapot
> riscv: mm: support Svnapot in hugetlb page
> riscv: mm: support Svnapot in huge vmap
>
> arch/riscv/Kconfig | 21 +-
> arch/riscv/include/asm/errata_list.h | 15 +-
> arch/riscv/include/asm/hugetlb.h | 34 ++-
> arch/riscv/include/asm/hwcap.h | 2 +-
> arch/riscv/include/asm/page.h | 5 -
> arch/riscv/include/asm/pgtable-64.h | 34 +++
> arch/riscv/include/asm/pgtable.h | 43 +++-
> arch/riscv/include/asm/vmalloc.h | 61 +++++-
> arch/riscv/kernel/cpu.c | 1 +
> arch/riscv/kernel/cpufeature.c | 15 ++
> arch/riscv/mm/hugetlbpage.c | 301 +++++++++++++++++++++++++++
> 11 files changed, 519 insertions(+), 13 deletions(-)
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* [PATCH 02/12] netfs: Add a function to extract an iterator into a scatterlist
@ 2023-01-31 18:28 4% ` David Howells
0 siblings, 0 replies; 200+ results
From: David Howells @ 2023-01-31 18:28 UTC (permalink / raw)
To: Steve French
Cc: David Howells, Al Viro, Shyam Prasad N, Rohith Surabattula,
Tom Talpey, Stefan Metzmacher, Christoph Hellwig, Matthew Wilcox,
Jeff Layton, linux-cifs, linux-fsdevel, linux-kernel,
Steve French, linux-cachefs
Provide a function for filling in a scatterlist from the list of pages
contained in an iterator.
If the iterator is UBUF- or IOBUF-type, the pages have a pin taken on them
(as FOLL_PIN).
If the iterator is BVEC-, KVEC- or XARRAY-type, no pin is taken on the
pages and it is left to the caller to manage their lifetime. It cannot be
assumed that a ref can be validly taken, particularly in the case of a KVEC
iterator.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <sfrench@samba.org>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: linux-cachefs@redhat.com
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
---
fs/netfs/iterator.c | 269 ++++++++++++++++++++++++++++++++++++++++++
include/linux/netfs.h | 4 +
mm/vmalloc.c | 1 +
3 files changed, 274 insertions(+)
diff --git a/fs/netfs/iterator.c b/fs/netfs/iterator.c
index 7b7cdc2863fc..9d198d0a5503 100644
--- a/fs/netfs/iterator.c
+++ b/fs/netfs/iterator.c
@@ -7,7 +7,9 @@
#include <linux/export.h>
#include <linux/slab.h>
+#include <linux/mm.h>
#include <linux/uio.h>
+#include <linux/scatterlist.h>
#include <linux/netfs.h>
#include "internal.h"
@@ -100,3 +102,270 @@ ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
return npages;
}
EXPORT_SYMBOL_GPL(netfs_extract_user_iter);
+
+/*
+ * Extract and pin a list of up to sg_max pages from UBUF- or IOVEC-class
+ * iterators, and add them to the scatterlist.
+ */
+static ssize_t netfs_extract_user_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int extract_flags)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct page **pages;
+ unsigned int npages;
+ ssize_t ret = 0, res;
+ size_t len, off;
+
+ /* We decant the page list into the tail of the scatterlist */
+ pages = (void *)sgtable->sgl + array_size(sg_max, sizeof(struct scatterlist));
+ pages -= sg_max;
+
+ do {
+ res = iov_iter_extract_pages(iter, &pages, maxsize, sg_max,
+ extract_flags, &off);
+ if (res < 0)
+ goto failed;
+
+ len = res;
+ maxsize -= len;
+ ret += len;
+ npages = DIV_ROUND_UP(off + len, PAGE_SIZE);
+ sg_max -= npages;
+
+ for (; npages < 0; npages--) {
+ struct page *page = *pages;
+ size_t seg = min_t(size_t, PAGE_SIZE - off, len);
+
+ *pages++ = NULL;
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ len -= seg;
+ off = 0;
+ }
+ } while (maxsize > 0 && sg_max > 0);
+
+ return ret;
+
+failed:
+ while (sgtable->nents > sgtable->orig_nents)
+ put_page(sg_page(&sgtable->sgl[--sgtable->nents]));
+ return res;
+}
+
+/*
+ * Extract up to sg_max pages from a BVEC-type iterator and add them to the
+ * scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_bvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int extract_flags)
+{
+ const struct bio_vec *bv = iter->bvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ size_t off, len;
+
+ len = bv[i].bv_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ len = min_t(size_t, maxsize, len - start);
+ off = bv[i].bv_offset + start;
+
+ sg_set_page(sg, bv[i].bv_page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ ret += len;
+ maxsize -= len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max pages from a KVEC-type iterator and add them to the
+ * scatterlist. This can deal with vmalloc'd buffers as well as kmalloc'd or
+ * static buffers. The pages are not pinned.
+ */
+static ssize_t netfs_extract_kvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int extract_flags)
+{
+ const struct kvec *kv = iter->kvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ struct page *page;
+ unsigned long kaddr;
+ size_t off, len, seg;
+
+ len = kv[i].iov_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ kaddr = (unsigned long)kv[i].iov_base + start;
+ off = kaddr & ~PAGE_MASK;
+ len = min_t(size_t, maxsize, len - start);
+ kaddr &= PAGE_MASK;
+
+ maxsize -= len;
+ ret += len;
+ do {
+ seg = min_t(size_t, len, PAGE_SIZE - off);
+ if (is_vmalloc_or_module_addr((void *)kaddr))
+ page = vmalloc_to_page((void *)kaddr);
+ else
+ page = virt_to_page(kaddr);
+
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ len -= seg;
+ kaddr += PAGE_SIZE;
+ off = 0;
+ } while (len > 0 && sg_max > 0);
+
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max folios from an XARRAY-type iterator and add them to
+ * the scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_xarray_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int extract_flags)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct xarray *xa = iter->xarray;
+ struct folio *folio;
+ loff_t start = iter->xarray_start + iter->iov_offset;
+ pgoff_t index = start / PAGE_SIZE;
+ ssize_t ret = 0;
+ size_t offset, len;
+ XA_STATE(xas, xa, index);
+
+ rcu_read_lock();
+
+ xas_for_each(&xas, folio, ULONG_MAX) {
+ if (xas_retry(&xas, folio))
+ continue;
+ if (WARN_ON(xa_is_value(folio)))
+ break;
+ if (WARN_ON(folio_test_hugetlb(folio)))
+ break;
+
+ offset = offset_in_folio(folio, start);
+ len = min_t(size_t, maxsize, folio_size(folio) - offset);
+
+ sg_set_page(sg, folio_page(folio, 0), len, offset);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ maxsize -= len;
+ ret += len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ }
+
+ rcu_read_unlock();
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/**
+ * netfs_extract_iter_to_sg - Extract pages from an iterator and add ot an sglist
+ * @iter: The iterator to extract from
+ * @maxsize: The amount of iterator to copy
+ * @sgtable: The scatterlist table to fill in
+ * @sg_max: Maximum number of elements in @sgtable that may be filled
+ * @extract_flags: Flags to qualify the request
+ *
+ * Extract the page fragments from the given amount of the source iterator and
+ * add them to a scatterlist that refers to all of those bits, to a maximum
+ * addition of @sg_max elements.
+ *
+ * The pages referred to by UBUF- and IOVEC-type iterators are extracted and
+ * pinned; BVEC-, KVEC- and XARRAY-type are extracted but aren't pinned; PIPE-
+ * and DISCARD-type are not supported.
+ *
+ * No end mark is placed on the scatterlist; that's left to the caller.
+ *
+ * @extract_flags can have ITER_ALLOW_P2PDMA set to request peer-to-peer DMA be
+ * allowed on the pages extracted.
+ *
+ * If successul, @sgtable->nents is updated to include the number of elements
+ * added and the number of bytes added is returned. @sgtable->orig_nents is
+ * left unaltered.
+ *
+ * The iov_iter_extract_mode() function should be used to query how cleanup
+ * should be performed.
+ */
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t maxsize,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int extract_flags)
+{
+ if (maxsize == 0)
+ return 0;
+
+ switch (iov_iter_type(iter)) {
+ case ITER_UBUF:
+ case ITER_IOVEC:
+ return netfs_extract_user_to_sg(iter, maxsize, sgtable, sg_max,
+ extract_flags);
+ case ITER_BVEC:
+ return netfs_extract_bvec_to_sg(iter, maxsize, sgtable, sg_max,
+ extract_flags);
+ case ITER_KVEC:
+ return netfs_extract_kvec_to_sg(iter, maxsize, sgtable, sg_max,
+ extract_flags);
+ case ITER_XARRAY:
+ return netfs_extract_xarray_to_sg(iter, maxsize, sgtable, sg_max,
+ extract_flags);
+ default:
+ pr_err("netfs_extract_iter_to_sg(%u) unsupported\n",
+ iov_iter_type(iter));
+ WARN_ON_ONCE(1);
+ return -EIO;
+ }
+}
+EXPORT_SYMBOL_GPL(netfs_extract_iter_to_sg);
diff --git a/include/linux/netfs.h b/include/linux/netfs.h
index e8c560131170..955225be6b75 100644
--- a/include/linux/netfs.h
+++ b/include/linux/netfs.h
@@ -298,6 +298,10 @@ void netfs_put_subrequest(struct netfs_io_subrequest *subreq,
void netfs_stats_show(struct seq_file *);
ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
struct iov_iter *new, unsigned int extract_flags);
+struct sg_table;
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t len,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int extract_flags);
/**
* netfs_inode - Get the netfs inode context from the inode
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ca71de7c9d77..61f5bec0f2b6 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -656,6 +656,7 @@ int is_vmalloc_or_module_addr(const void *x)
#endif
return is_vmalloc_addr(x);
}
+EXPORT_SYMBOL_GPL(is_vmalloc_or_module_addr);
/*
* Walk a vmap address to the struct page it maps. Huge vmap mappings will
^ permalink raw reply related [relevance 4%]
* [RFC 02/13] netfs: Add a function to extract an iterator into a scatterlist
@ 2023-01-25 21:45 4% ` David Howells
0 siblings, 0 replies; 200+ results
From: David Howells @ 2023-01-25 21:45 UTC (permalink / raw)
To: Steve French
Cc: David Howells, Al Viro, Shyam Prasad N, Rohith Surabattula,
Tom Talpey, Stefan Metzmacher, Christoph Hellwig, Matthew Wilcox,
Jeff Layton, linux-cifs, linux-fsdevel, linux-kernel,
Steve French, linux-cachefs
Provide a function for filling in a scatterlist from the list of pages
contained in an iterator.
If the iterator is UBUF- or IOBUF-type, the pages have a pin taken on them
(as FOLL_PIN).
If the iterator is BVEC-, KVEC- or XARRAY-type, no pin is taken on the
pages and it is left to the caller to manage their lifetime. It cannot be
assumed that a ref can be validly taken, particularly in the case of a KVEC
iterator.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <sfrench@samba.org>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: linux-cachefs@redhat.com
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
---
fs/netfs/iterator.c | 269 ++++++++++++++++++++++++++++++++++++++++++
include/linux/netfs.h | 4 +
mm/vmalloc.c | 1 +
3 files changed, 274 insertions(+)
diff --git a/fs/netfs/iterator.c b/fs/netfs/iterator.c
index 7b7cdc2863fc..9d198d0a5503 100644
--- a/fs/netfs/iterator.c
+++ b/fs/netfs/iterator.c
@@ -7,7 +7,9 @@
#include <linux/export.h>
#include <linux/slab.h>
+#include <linux/mm.h>
#include <linux/uio.h>
+#include <linux/scatterlist.h>
#include <linux/netfs.h>
#include "internal.h"
@@ -100,3 +102,270 @@ ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
return npages;
}
EXPORT_SYMBOL_GPL(netfs_extract_user_iter);
+
+/*
+ * Extract and pin a list of up to sg_max pages from UBUF- or IOVEC-class
+ * iterators, and add them to the scatterlist.
+ */
+static ssize_t netfs_extract_user_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int extract_flags)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct page **pages;
+ unsigned int npages;
+ ssize_t ret = 0, res;
+ size_t len, off;
+
+ /* We decant the page list into the tail of the scatterlist */
+ pages = (void *)sgtable->sgl + array_size(sg_max, sizeof(struct scatterlist));
+ pages -= sg_max;
+
+ do {
+ res = iov_iter_extract_pages(iter, &pages, maxsize, sg_max,
+ extract_flags, &off);
+ if (res < 0)
+ goto failed;
+
+ len = res;
+ maxsize -= len;
+ ret += len;
+ npages = DIV_ROUND_UP(off + len, PAGE_SIZE);
+ sg_max -= npages;
+
+ for (; npages < 0; npages--) {
+ struct page *page = *pages;
+ size_t seg = min_t(size_t, PAGE_SIZE - off, len);
+
+ *pages++ = NULL;
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ len -= seg;
+ off = 0;
+ }
+ } while (maxsize > 0 && sg_max > 0);
+
+ return ret;
+
+failed:
+ while (sgtable->nents > sgtable->orig_nents)
+ put_page(sg_page(&sgtable->sgl[--sgtable->nents]));
+ return res;
+}
+
+/*
+ * Extract up to sg_max pages from a BVEC-type iterator and add them to the
+ * scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_bvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int extract_flags)
+{
+ const struct bio_vec *bv = iter->bvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ size_t off, len;
+
+ len = bv[i].bv_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ len = min_t(size_t, maxsize, len - start);
+ off = bv[i].bv_offset + start;
+
+ sg_set_page(sg, bv[i].bv_page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ ret += len;
+ maxsize -= len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max pages from a KVEC-type iterator and add them to the
+ * scatterlist. This can deal with vmalloc'd buffers as well as kmalloc'd or
+ * static buffers. The pages are not pinned.
+ */
+static ssize_t netfs_extract_kvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int extract_flags)
+{
+ const struct kvec *kv = iter->kvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ struct page *page;
+ unsigned long kaddr;
+ size_t off, len, seg;
+
+ len = kv[i].iov_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ kaddr = (unsigned long)kv[i].iov_base + start;
+ off = kaddr & ~PAGE_MASK;
+ len = min_t(size_t, maxsize, len - start);
+ kaddr &= PAGE_MASK;
+
+ maxsize -= len;
+ ret += len;
+ do {
+ seg = min_t(size_t, len, PAGE_SIZE - off);
+ if (is_vmalloc_or_module_addr((void *)kaddr))
+ page = vmalloc_to_page((void *)kaddr);
+ else
+ page = virt_to_page(kaddr);
+
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ len -= seg;
+ kaddr += PAGE_SIZE;
+ off = 0;
+ } while (len > 0 && sg_max > 0);
+
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max folios from an XARRAY-type iterator and add them to
+ * the scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_xarray_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int extract_flags)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct xarray *xa = iter->xarray;
+ struct folio *folio;
+ loff_t start = iter->xarray_start + iter->iov_offset;
+ pgoff_t index = start / PAGE_SIZE;
+ ssize_t ret = 0;
+ size_t offset, len;
+ XA_STATE(xas, xa, index);
+
+ rcu_read_lock();
+
+ xas_for_each(&xas, folio, ULONG_MAX) {
+ if (xas_retry(&xas, folio))
+ continue;
+ if (WARN_ON(xa_is_value(folio)))
+ break;
+ if (WARN_ON(folio_test_hugetlb(folio)))
+ break;
+
+ offset = offset_in_folio(folio, start);
+ len = min_t(size_t, maxsize, folio_size(folio) - offset);
+
+ sg_set_page(sg, folio_page(folio, 0), len, offset);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ maxsize -= len;
+ ret += len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ }
+
+ rcu_read_unlock();
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/**
+ * netfs_extract_iter_to_sg - Extract pages from an iterator and add ot an sglist
+ * @iter: The iterator to extract from
+ * @maxsize: The amount of iterator to copy
+ * @sgtable: The scatterlist table to fill in
+ * @sg_max: Maximum number of elements in @sgtable that may be filled
+ * @extract_flags: Flags to qualify the request
+ *
+ * Extract the page fragments from the given amount of the source iterator and
+ * add them to a scatterlist that refers to all of those bits, to a maximum
+ * addition of @sg_max elements.
+ *
+ * The pages referred to by UBUF- and IOVEC-type iterators are extracted and
+ * pinned; BVEC-, KVEC- and XARRAY-type are extracted but aren't pinned; PIPE-
+ * and DISCARD-type are not supported.
+ *
+ * No end mark is placed on the scatterlist; that's left to the caller.
+ *
+ * @extract_flags can have ITER_ALLOW_P2PDMA set to request peer-to-peer DMA be
+ * allowed on the pages extracted.
+ *
+ * If successul, @sgtable->nents is updated to include the number of elements
+ * added and the number of bytes added is returned. @sgtable->orig_nents is
+ * left unaltered.
+ *
+ * The iov_iter_extract_mode() function should be used to query how cleanup
+ * should be performed.
+ */
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t maxsize,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int extract_flags)
+{
+ if (maxsize == 0)
+ return 0;
+
+ switch (iov_iter_type(iter)) {
+ case ITER_UBUF:
+ case ITER_IOVEC:
+ return netfs_extract_user_to_sg(iter, maxsize, sgtable, sg_max,
+ extract_flags);
+ case ITER_BVEC:
+ return netfs_extract_bvec_to_sg(iter, maxsize, sgtable, sg_max,
+ extract_flags);
+ case ITER_KVEC:
+ return netfs_extract_kvec_to_sg(iter, maxsize, sgtable, sg_max,
+ extract_flags);
+ case ITER_XARRAY:
+ return netfs_extract_xarray_to_sg(iter, maxsize, sgtable, sg_max,
+ extract_flags);
+ default:
+ pr_err("netfs_extract_iter_to_sg(%u) unsupported\n",
+ iov_iter_type(iter));
+ WARN_ON_ONCE(1);
+ return -EIO;
+ }
+}
+EXPORT_SYMBOL_GPL(netfs_extract_iter_to_sg);
diff --git a/include/linux/netfs.h b/include/linux/netfs.h
index e8c560131170..955225be6b75 100644
--- a/include/linux/netfs.h
+++ b/include/linux/netfs.h
@@ -298,6 +298,10 @@ void netfs_put_subrequest(struct netfs_io_subrequest *subreq,
void netfs_stats_show(struct seq_file *);
ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
struct iov_iter *new, unsigned int extract_flags);
+struct sg_table;
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t len,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int extract_flags);
/**
* netfs_inode - Get the netfs inode context from the inode
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ca71de7c9d77..61f5bec0f2b6 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -656,6 +656,7 @@ int is_vmalloc_or_module_addr(const void *x)
#endif
return is_vmalloc_addr(x);
}
+EXPORT_SYMBOL_GPL(is_vmalloc_or_module_addr);
/*
* Walk a vmap address to the struct page it maps. Huge vmap mappings will
^ permalink raw reply related [relevance 4%]
* [PULL] drm-misc-next
@ 2023-01-24 20:02 1% ` Thomas Zimmermann
0 siblings, 0 replies; 200+ results
From: Thomas Zimmermann @ 2023-01-24 20:02 UTC (permalink / raw)
To: Dave Airlie, Daniel Vetter
Cc: Tvrtko Ursulin, dim-tools, dri-devel, Thomas Zimmermann,
Rodrigo Vivi, intel-gfx
Hi Dave and Daniel,
here's the PR for drm-misc-next for this week. This week's big change
is the addition of the first accelerator driver; the ivpu for Intel's
VPU.
The PR comes a bit earlier than usual. The EDID patches are needed
in the Intel tree, which will get them via backmerge before its own
PR. I might also send another PR on Thursday if there's anything
in drm-misc-next then.
Best regards
Thomas
drm-misc-next-2023-01-24:
drm-misc-next for v6.3:
UAPI Changes:
Cross-subsystem Changes:
Core Changes:
* EDID: Improved mode parsing and refactoring
* fbdev: Cleanups
* format-helper: Add conversion from XRGB8888 to XBGR8888 and ABGR8888
Driver Changes:
* accel/ivpu: Add driver for Intel VPU accelerator
* bridge: Support i.MX93 LDB plus DT bindings
* exynos: Fixes
* panel: vtdr6130: Fixes; Support AUO A030JTN01 plus DT bindings
* simpledrm: Support system-memory framebuffers plus DT bindings
* ssd130x: Fix sparse warning
The following changes since commit bd43a9844bc6f78e00fdc91db47f6969d10c5ac5:
drm: bridge: ldb: Warn if LDB clock does not match requested link frequency (2023-01-19 08:50:50 +0100)
are available in the Git repository at:
git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-next-2023-01-24
for you to fetch changes up to 51affef35bb39f186aef7eeeb4a7f9ceccd3e65e:
drm/ssd130x: Silence a `dubious: x & !y` warning (2023-01-24 11:02:33 +0100)
----------------------------------------------------------------
drm-misc-next for v6.3:
UAPI Changes:
Cross-subsystem Changes:
Core Changes:
* EDID: Improved mode parsing and refactoring
* fbdev: Cleanups
* format-helper: Add conversion from XRGB8888 to XBGR8888 and ABGR8888
Driver Changes:
* accel/ivpu: Add driver for Intel VPU accelerator
* bridge: Support i.MX93 LDB plus DT bindings
* exynos: Fixes
* panel: vtdr6130: Fixes; Support AUO A030JTN01 plus DT bindings
* simpledrm: Support system-memory framebuffers plus DT bindings
* ssd130x: Fix sparse warning
----------------------------------------------------------------
Arnd Bergmann (1):
vc4: fix build failure in vc4_dsi_dev_probe()
Christophe Branchereau (1):
drm/panel: Add driver for the AUO A030JTN01 TFT LCD
Jacek Lawrynowicz (7):
accel/ivpu: Introduce a new DRM driver for Intel VPU
accel/ivpu: Add Intel VPU MMU support
accel/ivpu: Add GEM buffer object management
accel/ivpu: Add IPC driver and JSM messages
accel/ivpu: Implement firmware parsing and booting
accel/ivpu: Add command buffer submission logic
accel/ivpu: Add PM support
Jagan Teki (2):
drm: exynos: dsi: Fix MIPI_DSI*_NO_* mode flags
drm: exynos: dsi: Properly name HSA/HBP/HFP/HSE bits
Jani Nikula (18):
drm/edid: fix AVI infoframe aspect ratio handling
drm/edid: fix parsing of 3D modes from HDMI VSDB
drm/edid: parse VICs from CTA VDB early
drm/edid: Use the pre-parsed VICs
drm/edid: use VIC in AVI infoframe if sink lists it in CTA VDB
drm/edid: rename struct drm_display_info *display to *info
drm/edid: refactor CTA Y420CMDB parsing
drm/edid: split CTA Y420VDB info and mode parsing
drm/edid: fix and clarify HDMI VSDB audio latency parsing
drm/edid: add helper for HDMI VSDB audio latency field length
drm/edid: store quirks in display info
drm/edid: stop passing quirks around
drm/edid: merge ELD handling to update_display_info()
drm/edid: move EDID BPC quirk application to update_display_info()
drm/edid: split HDMI VSDB info and mode parsing
drm/edid: refactor _drm_edid_connector_update() and rename
drm/edid: add separate drm_edid_connector_add_modes()
drm/edid: remove redundant _drm_connector_update_edid_property()
Javier Martinez Canillas (2):
fbdev: Remove unused struct fb_deferred_io .first_io field
drm/ssd130x: Silence a `dubious: x & !y` warning
John Stultz (1):
MAINTAINERS: Add Sumit Semwal and Yongqin Liu as reviwers for kirin DRM driver
Liu Ying (2):
dt-bindings: display: bridge: ldb: Add i.MX93 LDB
drm/bridge: fsl-ldb: Add i.MX93 LDB support
Neil Armstrong (1):
drm/panel: vtdr6130: fix unused ret in visionox_vtdr6130_bl_update_status
Paul Cercueil (1):
dt-bindings: display/panel: Add AUO A030JTN01
Randy Dunlap (2):
drm/atomic-helper: fix kernel-doc problems
drm/connector: fix a kernel-doc bad line warning
Thierry Reding (7):
dt-bindings: display: simple-framebuffer: Support system memory framebuffers
dt-bindings: display: simple-framebuffer: Document 32-bit BGR format
dt-bindings: reserved-memory: Support framebuffer reserved memory
drm/simpledrm: Use struct iosys_map consistently
drm/simpledrm: Add support for system memory framebuffers
drm/format-helper: Support the AB24/XB24 formats
drm/simpledrm: Support the XB24/AB24 format
Thomas Zimmermann (1):
Merge drm/drm-next into drm-misc-next
.clang-format | 5 +
.gitignore | 2 +
.mailmap | 7 +
CREDITS | 4 +
Documentation/ABI/stable/sysfs-driver-dma-idxd | 12 +
Documentation/ABI/stable/sysfs-driver-speakup | 9 +
Documentation/ABI/testing/configfs-usb-gadget-uvc | 4 +-
Documentation/ABI/testing/debugfs-dell-wmi-ddv | 21 +
.../ABI/testing/debugfs-driver-habanalabs | 7 +
Documentation/ABI/testing/debugfs-pktcdvd | 18 -
Documentation/ABI/testing/sysfs-block-zram | 14 +
Documentation/ABI/testing/sysfs-bus-coreboot | 45 +
Documentation/ABI/testing/sysfs-bus-iio-adc-ad4130 | 46 +
.../ABI/testing/sysfs-bus-iio-adc-max11410 | 13 +
Documentation/ABI/testing/sysfs-bus-nvdimm | 14 +
Documentation/ABI/testing/sysfs-bus-pci | 10 +
.../sysfs-bus-platform-devices-ampere-smpro | 312 +
.../ABI/testing/sysfs-bus-spi-devices-spi-nor | 6 +
Documentation/ABI/testing/sysfs-bus-usb | 11 +
Documentation/ABI/testing/sysfs-class-bdi | 68 +
Documentation/ABI/testing/sysfs-class-pktcdvd | 97 -
Documentation/ABI/testing/sysfs-devices-mapping | 30 +-
Documentation/ABI/testing/sysfs-driver-intel_sdsi | 47 +-
Documentation/ABI/testing/sysfs-fs-f2fs | 47 +-
.../ABI/testing/sysfs-kernel-cpu_byteorder | 12 +
Documentation/ABI/testing/sysfs-kernel-mm-damon | 32 +
Documentation/ABI/testing/sysfs-kernel-oops_count | 6 +
Documentation/ABI/testing/sysfs-kernel-warn_count | 6 +
.../ABI/testing/sysfs-platform-dell-wmi-ddv | 7 +
Documentation/ABI/testing/sysfs-platform-intel-ifs | 30 +-
Documentation/Makefile | 11 +
Documentation/PCI/msi-howto.rst | 10 +
Documentation/PCI/pci-error-recovery.rst | 7 +
.../RCU/Design/Requirements/Requirements.rst | 2 +-
Documentation/RCU/arrayRCU.rst | 165 -
Documentation/RCU/checklist.rst | 244 +-
Documentation/RCU/index.rst | 1 -
Documentation/RCU/listRCU.rst | 174 +-
Documentation/RCU/lockdep.rst | 4 +
Documentation/accel/index.rst | 17 +
Documentation/accel/introduction.rst | 110 +
Documentation/admin-guide/blockdev/zram.rst | 100 +-
Documentation/admin-guide/bootconfig.rst | 2 +-
Documentation/admin-guide/cgroup-v1/memory.rst | 3 +-
Documentation/admin-guide/cgroup-v2.rst | 21 +-
Documentation/admin-guide/cifs/usage.rst | 2 +-
.../admin-guide/device-mapper/dm-init.rst | 8 +
Documentation/admin-guide/devices.txt | 5 +
Documentation/admin-guide/hw_random.rst | 6 +-
Documentation/admin-guide/kdump/vmcoreinfo.rst | 29 +
Documentation/admin-guide/kernel-parameters.txt | 106 +-
Documentation/admin-guide/media/cec-drivers.rst | 10 -
Documentation/admin-guide/media/cec.rst | 369 +
Documentation/admin-guide/media/index.rst | 3 +-
Documentation/admin-guide/media/pulse8-cec.rst | 13 -
Documentation/admin-guide/media/v4l-drivers.rst | 1 +
Documentation/admin-guide/media/vimc.rst | 8 +-
Documentation/admin-guide/media/visl.rst | 175 +
Documentation/admin-guide/media/vivid.rst | 2 +-
Documentation/admin-guide/mm/damon/usage.rst | 59 +-
Documentation/admin-guide/mm/zswap.rst | 8 +-
Documentation/admin-guide/perf/hisi-pcie-pmu.rst | 112 +-
Documentation/admin-guide/perf/index.rst | 2 +
Documentation/admin-guide/perf/meson-ddr-pmu.rst | 70 +
Documentation/admin-guide/perf/nvidia-pmu.rst | 299 +
Documentation/admin-guide/pm/amd-pstate.rst | 220 +-
Documentation/admin-guide/sysctl/fs.rst | 240 +-
Documentation/admin-guide/sysctl/kernel.rst | 53 +-
Documentation/arm/marvell.rst | 12 +-
Documentation/arm64/acpi_object_usage.rst | 2 +-
Documentation/arm64/booting.rst | 7 +-
Documentation/arm64/elf_hwcaps.rst | 9 +
Documentation/arm64/sve.rst | 1 +
Documentation/block/inline-encryption.rst | 12 +-
Documentation/bpf/bpf_design_QA.rst | 45 +
Documentation/bpf/bpf_devel_QA.rst | 27 +
Documentation/bpf/bpf_iterators.rst | 485 +
Documentation/bpf/btf.rst | 7 +-
Documentation/bpf/index.rst | 2 +
Documentation/bpf/instruction-set.rst | 4 +-
Documentation/bpf/kfuncs.rst | 255 +-
Documentation/bpf/libbpf/index.rst | 3 +
Documentation/bpf/libbpf/program_types.rst | 203 +
Documentation/bpf/map_array.rst | 262 +
Documentation/bpf/map_bloom_filter.rst | 174 +
Documentation/bpf/map_cgrp_storage.rst | 109 +
Documentation/bpf/map_cpumap.rst | 177 +
Documentation/bpf/map_devmap.rst | 238 +
Documentation/bpf/map_hash.rst | 33 +-
Documentation/bpf/map_lpm_trie.rst | 197 +
Documentation/bpf/map_of_maps.rst | 130 +
Documentation/bpf/map_queue_stack.rst | 146 +
Documentation/bpf/map_sk_storage.rst | 159 +
Documentation/bpf/map_xskmap.rst | 192 +
Documentation/bpf/maps.rst | 101 +-
Documentation/bpf/programs.rst | 3 +
Documentation/bpf/redirect.rst | 81 +
Documentation/conf.py | 211 +-
Documentation/core-api/kernel-api.rst | 6 +-
Documentation/core-api/local_ops.rst | 2 +-
Documentation/cpu-freq/index.rst | 9 +-
Documentation/crypto/devel-algos.rst | 2 +-
Documentation/crypto/userspace-if.rst | 15 +-
Documentation/dev-tools/ktap.rst | 4 +-
Documentation/dev-tools/kunit/architecture.rst | 115 +-
Documentation/dev-tools/kunit/index.rst | 20 +-
Documentation/dev-tools/kunit/start.rst | 18 +-
Documentation/dev-tools/kunit/tips.rst | 190 -
Documentation/dev-tools/kunit/usage.rst | 92 +-
Documentation/devicetree/bindings/arm/amlogic.yaml | 1 +
Documentation/devicetree/bindings/arm/apple.yaml | 14 +-
.../devicetree/bindings/arm/aspeed/aspeed.yaml | 3 +-
.../devicetree/bindings/arm/bcm/bcm2835.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,bcm11351.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,bcm21664.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,bcm23550.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,bcm4708.yaml | 4 +-
.../devicetree/bindings/arm/bcm/brcm,bcmbca.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,cygnus.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,hr2.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,ns2.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,nsp.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,stingray.yaml | 2 +-
.../bindings/arm/bcm/brcm,vulcan-soc.yaml | 2 +-
.../devicetree/bindings/arm/cci-control-port.yaml | 2 +-
Documentation/devicetree/bindings/arm/cpus.yaml | 4 +-
.../bindings/arm/firmware/linaro,optee-tz.yaml | 2 +-
Documentation/devicetree/bindings/arm/fsl.yaml | 15 +
.../bindings/arm/hisilicon/hisilicon.yaml | 2 +-
.../bindings/arm/keystone/ti,k3-sci-common.yaml | 2 +-
.../devicetree/bindings/arm/keystone/ti,sci.yaml | 2 +-
.../bindings/arm/marvell/armada-7k-8k.yaml | 2 +-
.../devicetree/bindings/arm/mediatek.yaml | 2 +
.../bindings/arm/mediatek/mediatek,mmsys.yaml | 14 +-
.../bindings/arm/mediatek/mediatek,mt7622-wed.yaml | 52 +
.../devicetree/bindings/arm/mrvl/mrvl.yaml | 2 +-
.../devicetree/bindings/arm/msm/qcom,llcc.yaml | 1 +
.../devicetree/bindings/arm/mstar/mstar.yaml | 2 +-
.../devicetree/bindings/arm/npcm/npcm.yaml | 2 +-
.../devicetree/bindings/arm/nxp/lpc32xx.yaml | 2 +-
.../devicetree/bindings/arm/qcom-soc.yaml | 66 +
Documentation/devicetree/bindings/arm/qcom.yaml | 232 +-
.../devicetree/bindings/arm/rockchip.yaml | 42 +
.../bindings/arm/socionext/milbeaut.yaml | 2 +-
.../bindings/arm/socionext/uniphier.yaml | 8 +-
Documentation/devicetree/bindings/arm/sp810.yaml | 2 +-
.../devicetree/bindings/arm/sprd/sprd.yaml | 2 +-
.../devicetree/bindings/arm/stm32/st,mlahb.yaml | 2 +-
.../bindings/arm/stm32/st,stm32-syscon.yaml | 2 +-
.../devicetree/bindings/arm/stm32/stm32.yaml | 8 +-
.../arm/sunxi/allwinner,sun6i-a31-cpuconfig.yaml | 2 +-
.../arm/sunxi/allwinner,sun9i-a80-prcm.yaml | 2 +-
Documentation/devicetree/bindings/arm/swir.txt | 12 -
.../arm/tegra/nvidia,tegra-ccplex-cluster.yaml | 3 +-
.../bindings/arm/tegra/nvidia,tegra194-cbb.yaml | 2 +-
.../bindings/arm/tegra/nvidia,tegra20-pmc.yaml | 54 +-
.../bindings/arm/tegra/nvidia,tegra234-cbb.yaml | 2 +-
Documentation/devicetree/bindings/arm/ti/k3.yaml | 3 +-
.../devicetree/bindings/arm/ti/ti,davinci.yaml | 2 +-
.../devicetree/bindings/arm/vexpress-config.yaml | 2 +-
.../devicetree/bindings/arm/vexpress-sysreg.yaml | 2 +-
.../bindings/ata/allwinner,sun4i-a10-ahci.yaml | 2 +-
.../bindings/ata/allwinner,sun8i-r40-ahci.yaml | 2 +-
.../devicetree/bindings/ata/ata-generic.yaml | 58 +
.../bus/fsl,imx8qxp-pixel-link-msi-bus.yaml | 232 +
Documentation/devicetree/bindings/bus/ti-sysc.yaml | 2 +-
.../bindings/chrome/google,cros-ec-typec.yaml | 1 +
.../chrome/google,cros-kbd-led-backlight.yaml | 1 +
.../devicetree/bindings/clock/adi,axi-clkgen.yaml | 2 +-
.../devicetree/bindings/clock/calxeda.yaml | 2 +-
.../bindings/clock/cirrus,cs2000-cp.yaml | 2 +-
.../devicetree/bindings/clock/fixed-clock.yaml | 2 +-
.../bindings/clock/fixed-factor-clock.yaml | 2 +-
.../bindings/clock/fixed-mmio-clock.yaml | 2 +-
.../bindings/clock/fsl,imx8m-anatop.yaml | 51 +
.../devicetree/bindings/clock/fsl,plldig.yaml | 2 +-
.../devicetree/bindings/clock/fsl,sai-clock.yaml | 2 +-
.../devicetree/bindings/clock/fsl,scu-clk.yaml | 2 +-
.../devicetree/bindings/clock/idt,versaclock5.yaml | 2 +-
.../devicetree/bindings/clock/imx1-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx21-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx23-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx25-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx27-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx28-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx31-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx35-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx5-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx6q-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx6sl-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx6sll-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx6sx-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx6ul-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx7d-clock.yaml | 2 +-
.../bindings/clock/imx7ulp-pcc-clock.yaml | 2 +-
.../bindings/clock/imx7ulp-scg-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx8m-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx8qxp-lpcg.yaml | 2 +-
.../bindings/clock/imx8ulp-cgc-clock.yaml | 2 +-
.../bindings/clock/imx8ulp-pcc-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx93-clock.yaml | 2 +-
.../devicetree/bindings/clock/imxrt1050-clock.yaml | 2 +-
.../devicetree/bindings/clock/ingenic,cgu.yaml | 4 +-
.../devicetree/bindings/clock/intel,agilex.yaml | 2 +-
.../devicetree/bindings/clock/intel,cgu-lgm.yaml | 2 +-
.../devicetree/bindings/clock/intel,easic-n5x.yaml | 2 +-
.../devicetree/bindings/clock/intel,stratix10.yaml | 2 +-
.../bindings/clock/mediatek,mt8186-fhctl.yaml | 53 +
.../bindings/clock/microchip,mpfs-clkcfg.yaml | 2 +-
.../devicetree/bindings/clock/milbeaut-clock.yaml | 2 +-
.../bindings/clock/nuvoton,npcm845-clk.yaml | 2 +-
.../bindings/clock/nvidia,tegra124-dfll.txt | 2 +-
.../devicetree/bindings/clock/pwm-clock.txt | 26 -
.../devicetree/bindings/clock/pwm-clock.yaml | 45 +
.../devicetree/bindings/clock/qcom,a53pll.yaml | 2 +-
.../devicetree/bindings/clock/qcom,a7pll.yaml | 2 +-
.../bindings/clock/qcom,aoncc-sm8250.yaml | 11 +-
.../bindings/clock/qcom,audiocc-sm8250.yaml | 7 +-
.../bindings/clock/qcom,camcc-sm8250.yaml | 6 +-
.../bindings/clock/qcom,dispcc-sc8280xp.yaml | 97 +
.../bindings/clock/qcom,dispcc-sm6125.yaml | 9 +-
.../bindings/clock/qcom,dispcc-sm6350.yaml | 8 +-
.../bindings/clock/qcom,dispcc-sm8x50.yaml | 14 +-
.../bindings/clock/qcom,gcc-apq8064.yaml | 18 +-
.../bindings/clock/qcom,gcc-apq8084.yaml | 10 +-
.../bindings/clock/qcom,gcc-ipq8064.yaml | 27 +-
.../bindings/clock/qcom,gcc-ipq8074.yaml | 40 +-
.../bindings/clock/qcom,gcc-msm8660.yaml | 12 +-
.../bindings/clock/qcom,gcc-msm8909.yaml | 9 +-
.../bindings/clock/qcom,gcc-msm8916.yaml | 16 +-
.../bindings/clock/qcom,gcc-msm8974.yaml | 61 +
.../bindings/clock/qcom,gcc-msm8976.yaml | 9 +-
.../bindings/clock/qcom,gcc-msm8994.yaml | 9 +-
.../bindings/clock/qcom,gcc-msm8996.yaml | 7 +-
.../bindings/clock/qcom,gcc-msm8998.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-other.yaml | 38 +-
.../bindings/clock/qcom,gcc-qcm2290.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-qcs404.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sc7180.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sc7280.yaml | 9 +-
.../bindings/clock/qcom,gcc-sc8180x.yaml | 9 +-
.../bindings/clock/qcom,gcc-sc8280xp.yaml | 7 +-
.../devicetree/bindings/clock/qcom,gcc-sdm660.yaml | 61 +
.../devicetree/bindings/clock/qcom,gcc-sdm845.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sdx55.yaml | 7 +-
.../devicetree/bindings/clock/qcom,gcc-sdx65.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm6115.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm6125.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm6350.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm8150.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm8250.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm8350.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm8450.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc.yaml | 6 +-
.../bindings/clock/qcom,gpucc-sdm660.yaml | 4 +-
.../bindings/clock/qcom,gpucc-sm8350.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gpucc.yaml | 22 +-
.../devicetree/bindings/clock/qcom,lcc.txt | 22 -
.../devicetree/bindings/clock/qcom,lcc.yaml | 86 +
.../devicetree/bindings/clock/qcom,lpasscc.txt | 26 -
.../devicetree/bindings/clock/qcom,mmcc.yaml | 42 +-
.../bindings/clock/qcom,msm8998-gpucc.yaml | 8 +-
.../devicetree/bindings/clock/qcom,q6sstopcc.yaml | 2 +-
.../bindings/clock/qcom,qcm2290-dispcc.yaml | 8 +-
.../devicetree/bindings/clock/qcom,rpmhcc.yaml | 3 +-
.../bindings/clock/qcom,sc7180-camcc.yaml | 9 +-
.../bindings/clock/qcom,sc7180-dispcc.yaml | 8 +-
.../bindings/clock/qcom,sc7180-lpasscorecc.yaml | 9 +-
.../devicetree/bindings/clock/qcom,sc7180-mss.yaml | 7 +-
.../bindings/clock/qcom,sc7280-camcc.yaml | 6 +-
.../bindings/clock/qcom,sc7280-dispcc.yaml | 8 +-
.../bindings/clock/qcom,sc7280-lpasscc.yaml | 9 +-
.../bindings/clock/qcom,sc7280-lpasscorecc.yaml | 12 +-
.../bindings/clock/qcom,sdm845-camcc.yaml | 8 +-
.../bindings/clock/qcom,sdm845-dispcc.yaml | 8 +-
.../bindings/clock/qcom,sdm845-lpasscc.yaml | 47 +
.../bindings/clock/qcom,sm6115-dispcc.yaml | 7 +-
.../bindings/clock/qcom,sm6375-dispcc.yaml | 54 +
.../devicetree/bindings/clock/qcom,sm6375-gcc.yaml | 9 +-
.../bindings/clock/qcom,sm8450-camcc.yaml | 8 +-
.../bindings/clock/qcom,sm8450-dispcc.yaml | 7 +-
.../devicetree/bindings/clock/qcom,sm8550-gcc.yaml | 62 +
.../devicetree/bindings/clock/qcom,videocc.yaml | 20 +-
.../devicetree/bindings/clock/renesas,9series.yaml | 2 +-
.../bindings/clock/renesas,versaclock7.yaml | 2 +-
.../bindings/clock/rockchip,rk3568-cru.yaml | 2 +-
.../bindings/clock/rockchip,rk3588-cru.yaml | 71 +
.../bindings/clock/samsung,exynosautov9-clock.yaml | 2 +-
.../devicetree/bindings/clock/st,stm32mp1-rcc.yaml | 2 +-
.../devicetree/bindings/clock/ti,cdce925.txt | 53 -
.../devicetree/bindings/clock/ti,cdce925.yaml | 103 +
.../devicetree/bindings/clock/ti,lmk04832.yaml | 2 +-
.../devicetree/bindings/clock/ti,sci-clk.yaml | 2 +-
.../devicetree/bindings/clock/ti/ti,clksel.yaml | 2 +-
.../devicetree/bindings/cpu/idle-states.yaml | 2 +-
.../bindings/cpufreq/apple,cluster-cpufreq.yaml | 117 +
.../bindings/cpufreq/cpufreq-mediatek-hw.yaml | 2 +-
.../bindings/cpufreq/cpufreq-qcom-hw.yaml | 31 +
.../bindings/cpufreq/qcom-cpufreq-nvmem.yaml | 4 +-
.../bindings/crypto/rockchip,rk3288-crypto.yaml | 127 +
.../devicetree/bindings/crypto/rockchip-crypto.txt | 28 -
.../devicetree/bindings/crypto/st,stm32-crc.yaml | 2 +-
.../devicetree/bindings/crypto/st,stm32-cryp.yaml | 21 +-
.../devicetree/bindings/crypto/st,stm32-hash.yaml | 2 +-
.../bindings/display/amlogic,meson-dw-hdmi.yaml | 2 +-
.../devicetree/bindings/display/arm,hdlcd.yaml | 2 +-
.../devicetree/bindings/display/arm,malidp.yaml | 2 +-
.../bindings/display/bridge/anx6345.yaml | 2 +-
.../bindings/display/bridge/chrontel,ch7033.yaml | 2 +-
.../bindings/display/bridge/fsl,ldb.yaml | 16 +-
.../display/bridge/ingenic,jz4780-hdmi.yaml | 2 +-
.../bindings/display/bridge/intel,keembay-dsi.yaml | 2 +-
.../bindings/display/bridge/ite,it6505.yaml | 2 +-
.../bindings/display/bridge/ite,it66121.yaml | 2 +-
.../devicetree/bindings/display/bridge/ps8640.yaml | 2 +-
.../bindings/display/bridge/toshiba,tc358767.yaml | 2 +-
.../bindings/display/bridge/toshiba,tc358775.yaml | 2 +-
.../devicetree/bindings/display/fsl,lcdif.yaml | 42 +-
.../devicetree/bindings/display/imx/fsl,imx-fb.txt | 57 -
.../bindings/display/imx/fsl,imx-lcdc.yaml | 102 +
.../devicetree/bindings/display/ingenic,ipu.yaml | 2 +-
.../devicetree/bindings/display/ingenic,lcd.yaml | 2 +-
.../bindings/display/intel,keembay-display.yaml | 2 +-
.../bindings/display/intel,keembay-msscam.yaml | 2 +-
.../bindings/display/mediatek/mediatek,cec.yaml | 2 +-
.../bindings/display/mediatek/mediatek,dpi.yaml | 1 +
.../bindings/display/mediatek/mediatek,dsi.yaml | 2 +-
.../display/mediatek/mediatek,hdmi-ddc.yaml | 2 +-
.../bindings/display/mediatek/mediatek,hdmi.yaml | 2 +-
.../bindings/display/msm/dpu-common.yaml | 52 +
.../bindings/display/msm/dpu-msm8998.yaml | 223 -
.../bindings/display/msm/dpu-qcm2290.yaml | 222 -
.../bindings/display/msm/dpu-sc7180.yaml | 235 -
.../bindings/display/msm/dpu-sc7280.yaml | 239 -
.../bindings/display/msm/dpu-sdm845.yaml | 217 -
.../bindings/display/msm/dsi-controller-main.yaml | 5 +-
.../bindings/display/msm/dsi-phy-14nm.yaml | 1 +
.../devicetree/bindings/display/msm/gmu.yaml | 2 +-
.../devicetree/bindings/display/msm/gpu.yaml | 2 +-
.../devicetree/bindings/display/msm/mdp5.txt | 30 +-
.../bindings/display/msm/mdss-common.yaml | 83 +
.../devicetree/bindings/display/msm/qcom,mdss.yaml | 196 +
.../bindings/display/msm/qcom,msm8998-dpu.yaml | 95 +
.../bindings/display/msm/qcom,msm8998-mdss.yaml | 268 +
.../bindings/display/msm/qcom,qcm2290-dpu.yaml | 84 +
.../bindings/display/msm/qcom,qcm2290-mdss.yaml | 198 +
.../bindings/display/msm/qcom,sc7180-dpu.yaml | 95 +
.../bindings/display/msm/qcom,sc7180-mdss.yaml | 304 +
.../bindings/display/msm/qcom,sc7280-dpu.yaml | 98 +
.../bindings/display/msm/qcom,sc7280-mdss.yaml | 422 +
.../bindings/display/msm/qcom,sdm845-dpu.yaml | 90 +
.../bindings/display/msm/qcom,sdm845-mdss.yaml | 270 +
.../bindings/display/msm/qcom,sm6115-dpu.yaml | 94 +
.../bindings/display/msm/qcom,sm6115-mdss.yaml | 182 +
.../bindings/display/msm/qcom,sm8250-dpu.yaml | 92 +
.../bindings/display/msm/qcom,sm8250-mdss.yaml | 330 +
.../bindings/display/panel/auo,a030jtn01.yaml | 60 +
.../bindings/display/panel/display-timings.yaml | 2 +-
.../bindings/display/panel/ilitek,ili9163.yaml | 5 +-
.../bindings/display/panel/ilitek,ili9341.yaml | 1 +
.../bindings/display/panel/nec,nl8048hl11.yaml | 3 +-
.../display/panel/olimex,lcd-olinuxino.yaml | 2 +-
.../bindings/display/panel/panel-lvds.yaml | 2 +-
.../bindings/display/panel/panel-timing.yaml | 2 +-
.../bindings/display/panel/samsung,lms380kf01.yaml | 5 +-
.../bindings/display/panel/samsung,lms397kf04.yaml | 3 +-
.../bindings/display/panel/samsung,s6d27a1.yaml | 4 +-
.../bindings/display/panel/tpo,tpg110.yaml | 1 +
.../bindings/display/panel/visionox,rm69299.yaml | 2 +-
.../bindings/display/simple-framebuffer.yaml | 7 +
.../display/tegra/nvidia,tegra124-dpaux.yaml | 1 -
.../display/tegra/nvidia,tegra186-display.yaml | 2 -
.../devicetree/bindings/dma/apple,admac.yaml | 3 +
.../devicetree/bindings/dma/dma-common.yaml | 2 +-
.../devicetree/bindings/dma/dma-controller.yaml | 2 +-
.../devicetree/bindings/dma/dma-router.yaml | 2 +-
.../devicetree/bindings/dma/ingenic,dma.yaml | 3 +-
.../bindings/dma/nvidia,tegra186-gpc-dma.yaml | 7 +-
.../devicetree/bindings/dma/qcom,gpi.yaml | 26 +-
.../devicetree/bindings/dma/snps,dw-axi-dmac.yaml | 1 -
.../devicetree/bindings/dma/st,stm32-dma.yaml | 2 +-
.../devicetree/bindings/dma/st,stm32-dmamux.yaml | 2 +-
.../devicetree/bindings/dma/st,stm32-mdma.yaml | 2 +-
.../devicetree/bindings/dma/ti/k3-bcdma.yaml | 2 +-
.../devicetree/bindings/dma/ti/k3-pktdma.yaml | 2 +-
.../devicetree/bindings/dma/ti/k3-udma.yaml | 2 +-
.../bindings/dma/xilinx/xlnx,zynqmp-dpdma.yaml | 2 +-
.../devicetree/bindings/edac/dmc-520.yaml | 2 +-
Documentation/devicetree/bindings/eeprom/at24.yaml | 5 +-
Documentation/devicetree/bindings/eeprom/at25.yaml | 1 +
.../bindings/eeprom/microchip,93lc46b.yaml | 3 +-
.../devicetree/bindings/example-schema.yaml | 2 +-
.../bindings/extcon/extcon-usbc-cros-ec.yaml | 1 +
.../devicetree/bindings/firmware/arm,scmi.yaml | 2 +-
.../devicetree/bindings/firmware/arm,scpi.yaml | 2 +-
.../devicetree/bindings/firmware/qcom,scm.yaml | 3 +
.../bindings/firmware/qemu,fw-cfg-mmio.yaml | 2 +-
.../bindings/fpga/lattice,sysconfig.yaml | 81 +
.../devicetree/bindings/gpio/gpio-davinci.yaml | 2 +-
.../devicetree/bindings/gpio/gpio-latch.yaml | 94 +
.../devicetree/bindings/gpio/gpio-pca9570.yaml | 1 +
.../devicetree/bindings/gpio/gpio-tpic2810.yaml | 2 +-
.../bindings/gpio/hisilicon,ascend910-gpio.yaml | 56 +
.../devicetree/bindings/gpio/ti,omap-gpio.yaml | 2 +-
.../devicetree/bindings/gpu/brcm,bcm-v3d.yaml | 2 +-
.../bindings/gpu/host1x/nvidia,tegra210-nvdec.yaml | 2 +-
.../bindings/gpu/host1x/nvidia,tegra210-nvenc.yaml | 2 +-
.../bindings/gpu/host1x/nvidia,tegra210-nvjpg.yaml | 2 +-
.../bindings/gpu/host1x/nvidia,tegra234-nvdec.yaml | 156 +
.../devicetree/bindings/gpu/vivante,gc.yaml | 2 +-
.../bindings/hwinfo/loongson,ls2k-chipid.yaml | 38 +
.../bindings/hwlock/st,stm32-hwspinlock.yaml | 2 +-
.../devicetree/bindings/hwmon/adt7475.yaml | 4 +-
.../devicetree/bindings/hwmon/moortec,mr75203.yaml | 2 +-
.../devicetree/bindings/hwmon/ntc-thermistor.yaml | 1 -
.../bindings/i2c/google,cros-ec-i2c-tunnel.yaml | 1 +
.../bindings/i2c/hisilicon,ascend910-i2c.yaml | 73 +
.../devicetree/bindings/i2c/i2c-gpio.yaml | 2 +-
.../devicetree/bindings/i2c/i2c-mt65xx.yaml | 1 +
Documentation/devicetree/bindings/i2c/i2c-pxa.yaml | 2 +-
.../devicetree/bindings/i2c/ingenic,i2c.yaml | 2 +-
.../bindings/i2c/marvell,mv64xxx-i2c.yaml | 1 +
.../bindings/i2c/qcom,i2c-geni-qcom.yaml | 64 +-
.../devicetree/bindings/i2c/renesas,riic.yaml | 2 +-
.../devicetree/bindings/i2c/st,nomadik-i2c.yaml | 2 +-
.../devicetree/bindings/i2c/ti,omap4-i2c.yaml | 2 +-
Documentation/devicetree/bindings/i3c/i3c.yaml | 2 +-
.../devicetree/bindings/iio/accel/adi,adxl355.yaml | 8 +-
.../bindings/iio/accel/kionix,kx022a.yaml | 65 +
Documentation/devicetree/bindings/iio/adc/adc.yaml | 2 +-
.../devicetree/bindings/iio/adc/adi,ad4130.yaml | 262 +
.../devicetree/bindings/iio/adc/adi,ad7923.yaml | 26 +-
.../devicetree/bindings/iio/adc/adi,max11410.yaml | 177 +
.../bindings/iio/adc/allwinner,sun8i-a33-ths.yaml | 2 +-
.../bindings/iio/adc/aspeed,ast2600-adc.yaml | 7 -
.../devicetree/bindings/iio/adc/ingenic,adc.yaml | 2 +-
.../bindings/iio/adc/motorola,cpcap-adc.yaml | 2 +-
.../bindings/iio/adc/nxp,imx8qxp-adc.yaml | 2 +-
.../bindings/iio/adc/nxp,lpc1850-adc.yaml | 2 +-
.../bindings/iio/adc/qcom,spmi-iadc.yaml | 7 +-
.../bindings/iio/adc/qcom,spmi-vadc.yaml | 106 +-
.../bindings/iio/adc/renesas,rzg2l-adc.yaml | 2 +-
.../bindings/iio/adc/rockchip-saradc.yaml | 1 +
.../bindings/iio/adc/sigma-delta-modulator.yaml | 2 +-
.../bindings/iio/adc/sprd,sc2720-adc.yaml | 2 +-
.../devicetree/bindings/iio/adc/st,stm32-adc.yaml | 70 +-
.../bindings/iio/adc/ti,palmas-gpadc.yaml | 2 +-
.../bindings/iio/adc/x-powers,axp209-adc.yaml | 2 +-
.../devicetree/bindings/iio/addac/adi,ad74115.yaml | 373 +
.../bindings/iio/addac/adi,ad74413r.yaml | 16 +-
.../devicetree/bindings/iio/dac/adi,ad5758.yaml | 3 +-
.../devicetree/bindings/iio/dac/adi,ad5766.yaml | 2 +-
.../bindings/iio/dac/nxp,lpc1850-dac.yaml | 2 +-
.../devicetree/bindings/iio/dac/st,stm32-dac.yaml | 2 +-
.../bindings/iio/frequency/adi,adf4350.yaml | 7 +-
.../bindings/iio/frequency/adi,adf4377.yaml | 92 +
.../bindings/iio/frequency/adi,admv1013.yaml | 5 +-
.../bindings/iio/frequency/adi,admv1014.yaml | 5 +-
.../bindings/iio/frequency/adi,admv4420.yaml | 8 +-
.../bindings/iio/frequency/adi,adrf6780.yaml | 5 +-
.../bindings/iio/gyroscope/adi,adxrs290.yaml | 5 +-
.../bindings/iio/gyroscope/nxp,fxas21002c.yaml | 5 +-
.../devicetree/bindings/iio/imu/adi,adis16475.yaml | 3 +-
.../bindings/iio/imu/invensense,icm42600.yaml | 1 +
.../devicetree/bindings/iio/imu/st,lsm6dsx.yaml | 8 +
.../bindings/iio/multiplexer/io-channel-mux.yaml | 2 +-
.../bindings/iio/pressure/meas,ms5611.yaml | 6 +-
.../bindings/iio/pressure/murata,zpa2326.yaml | 5 +-
.../bindings/iio/proximity/ams,as3935.yaml | 5 +-
.../bindings/iio/resolver/adi,ad2s90.yaml | 7 +-
.../bindings/iio/temperature/adi,ltc2983.yaml | 336 +-
.../input/allwinner,sun4i-a10-lradc-keys.yaml | 4 +-
.../devicetree/bindings/input/azoteq,iqs7222.yaml | 25 +-
.../devicetree/bindings/input/fsl,scu-key.yaml | 2 +-
.../devicetree/bindings/input/gpio-beeper.txt | 13 -
.../devicetree/bindings/input/gpio-beeper.yaml | 33 +
.../devicetree/bindings/input/gpio-keys.yaml | 2 +-
Documentation/devicetree/bindings/input/input.yaml | 2 +-
.../devicetree/bindings/input/matrix-keymap.yaml | 2 +-
.../bindings/input/microchip,cap11xx.yaml | 2 +-
.../bindings/input/pine64,pinephone-keyboard.yaml | 2 +-
.../bindings/input/qcom,pm8921-pwrkey.yaml | 75 +
.../bindings/input/qcom,pm8xxx-pwrkey.txt | 46 -
.../devicetree/bindings/input/ti,drv260x.txt | 50 -
.../devicetree/bindings/input/ti,drv260x.yaml | 109 +
.../input/touchscreen/chipone,icn8318.yaml | 2 +-
.../input/touchscreen/cypress,cy8ctma140.yaml | 2 +-
.../input/touchscreen/cypress,cy8ctma340.yaml | 2 +-
.../input/touchscreen/cypress,tt21000.yaml | 106 +
.../bindings/input/touchscreen/edt-ft5x06.yaml | 2 +-
.../bindings/input/touchscreen/egalax-ts.txt | 4 +-
.../bindings/input/touchscreen/goodix.yaml | 2 +-
.../bindings/input/touchscreen/himax,hx83112b.yaml | 63 +
.../bindings/input/touchscreen/hycon,hy46xx.yaml | 2 +-
.../input/touchscreen/hynitron,cstxxx.yaml | 65 +
.../input/touchscreen/imagis,ist3038c.yaml | 2 +-
.../bindings/input/touchscreen/melfas,mms114.yaml | 2 +-
.../bindings/input/touchscreen/mstar,msg2638.yaml | 10 +-
.../input/touchscreen/pixcir,pixcir_ts.yaml | 2 +-
.../bindings/input/touchscreen/silead,gsl1680.yaml | 2 +-
.../bindings/input/touchscreen/ti,tsc2005.yaml | 2 +-
.../bindings/input/touchscreen/touchscreen.yaml | 2 +-
.../bindings/input/touchscreen/zinitix,bt400.yaml | 2 +-
.../bindings/interconnect/qcom,msm8998-bwmon.yaml | 7 +-
.../bindings/interconnect/qcom,osm-l3.yaml | 24 +-
.../bindings/interrupt-controller/apple,aic.yaml | 1 -
.../bindings/interrupt-controller/apple,aic2.yaml | 29 +
.../bindings/interrupt-controller/fsl,intmux.yaml | 3 +-
.../interrupt-controller/ingenic,intc.yaml | 2 +-
.../interrupt-controller/intel,ce4100-ioapic.txt | 26 -
.../interrupt-controller/intel,ce4100-ioapic.yaml | 60 +
.../interrupt-controller/intel,ce4100-lapic.yaml | 71 +
.../loongarch,cpu-interrupt-controller.yaml | 34 +
.../interrupt-controller/mediatek,cirq.txt | 33 -
.../interrupt-controller/mediatek,mtk-cirq.yaml | 68 +
.../bindings/interrupt-controller/mrvl,intc.yaml | 2 +-
.../interrupt-controller/nuvoton,wpcm450-aic.yaml | 2 +-
.../bindings/interrupt-controller/qcom,pdc.yaml | 4 +
.../interrupt-controller/realtek,rtl-intc.yaml | 2 +-
.../interrupt-controller/renesas,irqc.yaml | 2 +-
.../devicetree/bindings/iommu/apple,dart.yaml | 4 +-
.../devicetree/bindings/iommu/arm,smmu.yaml | 178 +-
.../devicetree/bindings/iommu/mediatek,iommu.yaml | 2 +
.../bindings/iommu/renesas,ipmmu-vmsa.yaml | 6 +-
.../devicetree/bindings/ipmi/ipmi-ipmb.yaml | 2 +-
.../devicetree/bindings/ipmi/ipmi-smic.yaml | 2 +-
.../devicetree/bindings/ipmi/ssif-bmc.yaml | 38 +
.../bindings/leds/backlight/gpio-backlight.yaml | 2 +-
.../bindings/leds/backlight/led-backlight.yaml | 2 +-
.../bindings/leds/backlight/pwm-backlight.yaml | 2 +-
.../bindings/leds/backlight/qcom-wled.yaml | 2 +-
Documentation/devicetree/bindings/leds/common.yaml | 1 +
.../devicetree/bindings/leds/irled/gpio-ir-tx.txt | 14 -
.../devicetree/bindings/leds/irled/gpio-ir-tx.yaml | 36 +
.../devicetree/bindings/leds/irled/ir-spi-led.yaml | 61 +
.../devicetree/bindings/leds/irled/pwm-ir-tx.txt | 13 -
.../devicetree/bindings/leds/irled/pwm-ir-tx.yaml | 34 +
.../devicetree/bindings/leds/irled/spi-ir-led.txt | 29 -
.../devicetree/bindings/leds/issi,is31fl319x.yaml | 3 +-
.../devicetree/bindings/leds/leds-aw2013.yaml | 1 +
.../devicetree/bindings/leds/leds-gpio.yaml | 2 +-
.../devicetree/bindings/leds/leds-lgm.yaml | 10 +-
.../devicetree/bindings/leds/leds-lp50xx.yaml | 8 +
.../devicetree/bindings/leds/leds-lp55xx.yaml | 47 +-
.../devicetree/bindings/leds/leds-max77650.yaml | 9 +-
.../devicetree/bindings/leds/leds-mt6360.yaml | 43 +-
.../devicetree/bindings/leds/leds-pm8058.txt | 67 -
.../devicetree/bindings/leds/leds-pwm.yaml | 2 +-
.../devicetree/bindings/leds/leds-qcom-lpg.yaml | 12 +-
.../devicetree/bindings/leds/leds-rt4505.yaml | 1 +
.../devicetree/bindings/leds/leds-sgm3140.yaml | 5 +-
.../devicetree/bindings/leds/qcom,pm8058-led.yaml | 57 +
.../devicetree/bindings/leds/register-bit-led.yaml | 2 +-
.../devicetree/bindings/leds/regulator-led.yaml | 2 +-
.../bindings/leds/rohm,bd71828-leds.yaml | 18 +-
.../devicetree/bindings/leds/ti,tca6507.yaml | 2 +-
.../bindings/mailbox/mediatek,gce-mailbox.yaml | 1 +
.../bindings/mailbox/qcom,apcs-kpss-global.yaml | 3 +-
.../devicetree/bindings/mailbox/qcom-ipcc.yaml | 4 +-
.../devicetree/bindings/mailbox/sprd-mailbox.yaml | 2 +-
.../devicetree/bindings/mailbox/st,stm32-ipcc.yaml | 2 +-
.../bindings/media/allwinner,sun4i-a10-ir.yaml | 1 +
.../bindings/media/allwinner,sun50i-h6-vpu-g2.yaml | 5 +
.../bindings/media/allwinner,sun6i-a31-csi.yaml | 4 +
.../bindings/media/allwinner,sun6i-a31-isp.yaml | 101 +
.../devicetree/bindings/media/atmel,isc.yaml | 4 +-
.../bindings/media/i2c/dongwoon,dw9768.yaml | 2 +-
.../devicetree/bindings/media/i2c/imx290.txt | 57 -
.../devicetree/bindings/media/i2c/mipi-ccs.yaml | 3 +-
.../devicetree/bindings/media/i2c/ov5645.txt | 54 -
.../devicetree/bindings/media/i2c/ov8856.yaml | 2 +-
.../bindings/media/i2c/ovti,ov02a10.yaml | 2 +-
.../devicetree/bindings/media/i2c/ovti,ov4689.yaml | 134 +
.../devicetree/bindings/media/i2c/ovti,ov5640.yaml | 2 +-
.../devicetree/bindings/media/i2c/ovti,ov5645.yaml | 104 +
.../devicetree/bindings/media/i2c/ovti,ov5648.yaml | 2 +-
.../devicetree/bindings/media/i2c/ovti,ov772x.yaml | 3 +-
.../devicetree/bindings/media/i2c/ovti,ov8865.yaml | 2 +-
.../devicetree/bindings/media/i2c/ovti,ov9282.yaml | 14 +-
.../devicetree/bindings/media/i2c/sony,imx290.yaml | 129 +
.../devicetree/bindings/media/i2c/sony,imx412.yaml | 4 +-
.../bindings/media/i2c/st,st-mipid02.txt | 82 -
.../bindings/media/i2c/st,st-mipid02.yaml | 176 +
.../bindings/media/i2c/st,st-vgxy61.yaml | 113 +
.../bindings/media/i2c/toshiba,tc358746.yaml | 178 +
.../bindings/media/marvell,mmp2-ccic.yaml | 5 +-
.../bindings/media/mediatek,mt8195-jpegdec.yaml | 168 +
.../bindings/media/mediatek,mt8195-jpegenc.yaml | 147 +
.../bindings/media/mediatek,vcodec-encoder.yaml | 12 +-
.../bindings/media/mediatek-jpeg-decoder.yaml | 1 +
.../bindings/media/mediatek-jpeg-encoder.yaml | 1 +
.../devicetree/bindings/media/microchip,xisc.yaml | 3 +-
.../devicetree/bindings/media/renesas,ceu.yaml | 2 +-
.../bindings/media/renesas,rzg2l-cru.yaml | 157 +
.../bindings/media/renesas,rzg2l-csi2.yaml | 149 +
.../devicetree/bindings/media/s5p-mfc.txt | 10 +-
.../devicetree/bindings/media/samsung-s5c73m3.txt | 2 +-
.../devicetree/bindings/media/st,stm32-cec.yaml | 2 +-
.../devicetree/bindings/media/st,stm32-dcmi.yaml | 6 +-
.../devicetree/bindings/media/st,stm32-dma2d.yaml | 2 +-
.../bindings/media/video-interface-devices.yaml | 2 +-
.../bindings/media/video-interfaces.yaml | 7 +-
.../{arm,pl353-smc.yaml => arm,pl35x-smc.yaml} | 80 +-
.../memory-controllers/calxeda-ddr-ctrlr.yaml | 2 +-
.../ddr/jedec,lpddr-channel.yaml | 146 +
.../memory-controllers/ddr/jedec,lpddr-props.yaml | 74 +
.../memory-controllers/ddr/jedec,lpddr2.yaml | 48 +-
.../memory-controllers/ddr/jedec,lpddr3.yaml | 44 +-
.../memory-controllers/ddr/jedec,lpddr4.yaml | 35 +
.../memory-controllers/ddr/jedec,lpddr5.yaml | 46 +
.../ingenic,nemc-peripherals.yaml | 2 +-
.../bindings/memory-controllers/ingenic,nemc.yaml | 2 +-
.../memory-controllers/mc-peripheral-props.yaml | 38 +
.../memory-controllers/renesas,rpc-if.yaml | 5 +
.../st,stm32-fmc2-ebi-props.yaml | 144 +
.../memory-controllers/st,stm32-fmc2-ebi.yaml | 140 +-
.../bindings/memory-controllers/ti,gpmc-child.yaml | 9 +-
.../bindings/memory-controllers/ti,gpmc.yaml | 2 +-
.../devicetree/bindings/mfd/actions,atc260x.yaml | 2 +-
.../devicetree/bindings/mfd/ampere,smpro.yaml | 42 +
.../devicetree/bindings/mfd/brcm,twd.yaml | 8 +
Documentation/devicetree/bindings/mfd/da9062.txt | 13 +-
.../devicetree/bindings/mfd/ene-kb3930.yaml | 2 +-
.../devicetree/bindings/mfd/ene-kb930.yaml | 8 +-
.../devicetree/bindings/mfd/fsl,imx8qxp-csr.yaml | 2 +-
.../devicetree/bindings/mfd/google,cros-ec.yaml | 103 +-
.../devicetree/bindings/mfd/max77650.yaml | 2 -
.../devicetree/bindings/mfd/mediatek,mt6360.yaml | 9 -
.../devicetree/bindings/mfd/mscc,ocelot.yaml | 4 +-
Documentation/devicetree/bindings/mfd/mt6397.txt | 1 +
.../devicetree/bindings/mfd/qcom,pm8008.yaml | 2 +-
.../devicetree/bindings/mfd/qcom,spmi-pmic.yaml | 35 +-
.../devicetree/bindings/mfd/qcom,tcsr.yaml | 2 +
.../devicetree/bindings/mfd/qcom-pm8xxx.yaml | 37 +-
.../devicetree/bindings/mfd/rockchip,rk817.yaml | 2 +
.../devicetree/bindings/mfd/rohm,bd71815-pmic.yaml | 4 +-
.../devicetree/bindings/mfd/rohm,bd71828-pmic.yaml | 4 +-
.../devicetree/bindings/mfd/rohm,bd71837-pmic.yaml | 4 +-
.../devicetree/bindings/mfd/rohm,bd71847-pmic.yaml | 4 +-
.../devicetree/bindings/mfd/rohm,bd9576-pmic.yaml | 4 +-
.../devicetree/bindings/mfd/st,stm32-lptimer.yaml | 2 +-
.../devicetree/bindings/mfd/st,stm32-timers.yaml | 2 +-
.../devicetree/bindings/mfd/st,stmfx.yaml | 2 +-
.../devicetree/bindings/mfd/st,stpmic1.yaml | 2 +-
Documentation/devicetree/bindings/mfd/syscon.yaml | 1 +
.../devicetree/bindings/mfd/ti,am3359-tscadc.yaml | 3 +
.../bindings/mfd/ti,j721e-system-controller.yaml | 2 +
.../devicetree/bindings/mips/brcm/brcm,bmips.txt | 8 -
.../devicetree/bindings/mips/brcm/soc.yaml | 96 +
Documentation/devicetree/bindings/mips/cpus.yaml | 115 +
.../devicetree/bindings/mips/ingenic/devices.yaml | 2 +-
.../bindings/mips/ingenic/ingenic,cpu.yaml | 69 -
.../bindings/mips/lantiq/lantiq,dma-xway.yaml | 2 +-
.../devicetree/bindings/mips/loongson/devices.yaml | 2 +-
.../devicetree/bindings/misc/idt,89hpesx.yaml | 72 +
.../devicetree/bindings/misc/idt_89hpesx.txt | 44 -
.../devicetree/bindings/misc/olpc,xo1.75-ec.yaml | 2 +-
.../devicetree/bindings/misc/qcom,fastrpc.yaml | 2 +-
.../devicetree/bindings/mmc/arasan,sdhci.yaml | 2 +-
.../devicetree/bindings/mmc/arm,pl18x.yaml | 4 +-
.../bindings/mmc/brcm,sdhci-brcmstb.yaml | 2 +-
.../devicetree/bindings/mmc/fsl-imx-esdhc.yaml | 7 +-
.../bindings/mmc/fujitsu,sdhci-fujitsu.yaml | 57 +
.../devicetree/bindings/mmc/ingenic,mmc.yaml | 2 +-
.../bindings/mmc/microchip,dw-sparx5-sdhci.yaml | 2 +-
.../devicetree/bindings/mmc/mmc-controller.yaml | 3 +-
.../devicetree/bindings/mmc/mmc-pwrseq-emmc.yaml | 2 +-
.../devicetree/bindings/mmc/mmc-pwrseq-sd8787.yaml | 2 +-
.../devicetree/bindings/mmc/mmc-pwrseq-simple.yaml | 2 +-
Documentation/devicetree/bindings/mmc/mtk-sd.yaml | 173 +-
.../devicetree/bindings/mmc/renesas,sdhi.yaml | 1 +
.../devicetree/bindings/mmc/rockchip-dw-mshc.yaml | 3 +
.../devicetree/bindings/mmc/sdhci-am654.yaml | 69 +-
.../devicetree/bindings/mmc/sdhci-common.yaml | 32 +
.../devicetree/bindings/mmc/sdhci-fujitsu.txt | 32 -
.../devicetree/bindings/mmc/sdhci-msm.yaml | 23 +-
.../devicetree/bindings/mmc/sdhci-pxa.yaml | 2 +-
.../bindings/mmc/snps,dwcmshc-sdhci.yaml | 13 +-
.../devicetree/bindings/mmc/sunplus,mmc.yaml | 61 +
.../devicetree/bindings/mmc/synopsys-dw-mshc.yaml | 34 +-
.../bindings/mtd/allwinner,sun4i-a10-nand.yaml | 34 +-
.../bindings/mtd/arasan,nand-controller.yaml | 5 +-
.../bindings/mtd/arm,pl353-nand-r2p1.yaml | 32 +-
.../devicetree/bindings/mtd/atmel-nand.txt | 6 +-
.../devicetree/bindings/mtd/brcm,brcmnand.yaml | 96 +-
.../devicetree/bindings/mtd/denali,nand.yaml | 2 +-
.../devicetree/bindings/mtd/gpmi-nand.yaml | 2 +-
.../devicetree/bindings/mtd/ingenic,nand.yaml | 148 +-
.../devicetree/bindings/mtd/intel,lgm-ebunand.yaml | 50 +-
.../devicetree/bindings/mtd/jedec,spi-nor.yaml | 20 +-
.../devicetree/bindings/mtd/lpc32xx-mlc.txt | 2 +-
.../devicetree/bindings/mtd/lpc32xx-slc.txt | 2 +-
.../bindings/mtd/microchip,mchp48l640.yaml | 18 +-
.../devicetree/bindings/mtd/mtd-physmap.yaml | 7 +-
Documentation/devicetree/bindings/mtd/mtd.yaml | 24 +-
Documentation/devicetree/bindings/mtd/mtk-nand.txt | 2 +-
.../devicetree/bindings/mtd/mxc-nand.yaml | 2 +-
.../devicetree/bindings/mtd/nand-chip.yaml | 6 +-
.../devicetree/bindings/mtd/nand-controller.yaml | 4 +-
.../devicetree/bindings/mtd/partition.txt | 33 -
.../mtd/partitions/arm,arm-firmware-suite.yaml | 2 +
.../mtd/partitions/brcm,bcm4908-partitions.yaml | 2 +
.../partitions/brcm,bcm947xx-cfe-partitions.yaml | 2 +
.../bindings/mtd/partitions/fixed-partitions.yaml | 30 +-
.../mtd/partitions/linksys,ns-partitions.yaml | 2 +
.../bindings/mtd/partitions/nvmem-cells.yaml | 4 +-
.../bindings/mtd/partitions/partition.yaml | 5 +
.../bindings/mtd/partitions/partitions.yaml | 41 +
.../bindings/mtd/partitions/qcom,smem-part.yaml | 40 +-
.../bindings/mtd/partitions/redboot-fis.yaml | 6 +
.../partitions/tplink,safeloader-partitions.yaml | 57 +
.../devicetree/bindings/mtd/partitions/u-boot.yaml | 7 +
.../devicetree/bindings/mtd/qcom,nandc.yaml | 131 +-
.../bindings/mtd/rockchip,nand-controller.yaml | 4 +-
.../bindings/mtd/st,stm32-fmc2-nand.yaml | 49 +-
.../devicetree/bindings/mtd/ti,am654-hbmc.yaml | 36 +-
.../devicetree/bindings/mtd/ti,gpmc-onenand.yaml | 3 +
.../devicetree/bindings/mux/gpio-mux.yaml | 2 +-
.../devicetree/bindings/mux/mux-consumer.yaml | 2 +-
.../devicetree/bindings/mux/mux-controller.yaml | 2 +-
Documentation/devicetree/bindings/mux/reg-mux.yaml | 2 +-
.../devicetree/bindings/net/adi,adin1110.yaml | 4 +
.../devicetree/bindings/net/asix,ax88178.yaml | 6 +-
.../devicetree/bindings/net/bluetooth.txt | 5 -
.../net/bluetooth/bluetooth-controller.yaml | 29 +
.../net/bluetooth/brcm,bcm4377-bluetooth.yaml | 81 +
.../net/{ => bluetooth}/qualcomm-bluetooth.yaml | 6 +-
.../devicetree/bindings/net/brcm,bcmgenet.yaml | 2 +-
.../bindings/net/broadcom-bluetooth.yaml | 3 +
.../bindings/net/can/allwinner,sun4i-a10-can.yaml | 2 +-
.../devicetree/bindings/net/can/bosch,c_can.yaml | 2 +-
.../devicetree/bindings/net/can/bosch,m_can.yaml | 2 +-
.../bindings/net/can/can-controller.yaml | 2 +-
.../bindings/net/can/can-transceiver.yaml | 2 +-
.../devicetree/bindings/net/can/ctu,ctucanfd.yaml | 2 +-
.../devicetree/bindings/net/can/fsl,flexcan.yaml | 1 +
.../bindings/net/can/microchip,mcp251xfd.yaml | 4 +-
.../bindings/net/can/renesas,rcar-canfd.yaml | 135 +-
.../devicetree/bindings/net/cdns,macb.yaml | 1 -
.../devicetree/bindings/net/dsa/arrow,xrs700x.yaml | 2 +-
.../devicetree/bindings/net/dsa/dsa-port.yaml | 5 +-
Documentation/devicetree/bindings/net/dsa/dsa.yaml | 2 +-
.../bindings/net/dsa/hirschmann,hellcreek.yaml | 4 +-
.../bindings/net/dsa/microchip,lan937x.yaml | 2 +-
.../devicetree/bindings/net/dsa/mscc,ocelot.yaml | 2 +-
.../devicetree/bindings/net/dsa/nxp,sja1105.yaml | 2 +-
.../bindings/net/dsa/renesas,rzn1-a5psw.yaml | 2 +-
.../devicetree/bindings/net/engleder,tsnep.yaml | 2 +-
.../bindings/net/ethernet-controller.yaml | 13 +-
.../devicetree/bindings/net/ethernet-phy.yaml | 2 +-
Documentation/devicetree/bindings/net/fsl,fec.yaml | 4 +-
.../devicetree/bindings/net/fsl,fman-dtsec.yaml | 53 +-
.../bindings/net/fsl,qoriq-mc-dpmac.yaml | 4 +-
Documentation/devicetree/bindings/net/fsl-fman.txt | 5 +-
.../devicetree/bindings/net/ingenic,mac.yaml | 2 +-
.../bindings/net/marvell,dfx-server.yaml | 62 +
.../devicetree/bindings/net/marvell,pp2.yaml | 305 +
.../devicetree/bindings/net/marvell,prestera.txt | 81 -
.../devicetree/bindings/net/marvell,prestera.yaml | 91 +
.../devicetree/bindings/net/marvell-pp2.txt | 141 -
.../bindings/net/mctp-i2c-controller.yaml | 2 +-
Documentation/devicetree/bindings/net/mdio.yaml | 2 +-
.../devicetree/bindings/net/micrel,ks8851.yaml | 1 +
.../devicetree/bindings/net/microchip,lan95xx.yaml | 6 +-
.../devicetree/bindings/net/nfc/nxp,nci.yaml | 4 +-
.../devicetree/bindings/net/nxp,dwmac-imx.yaml | 5 +-
.../devicetree/bindings/net/pcs/fsl,lynx-pcs.yaml | 40 +
.../devicetree/bindings/net/qca,ar71xx.yaml | 1 -
.../devicetree/bindings/net/qcom,ipa.yaml | 86 +-
.../devicetree/bindings/net/qcom,ipq4019-mdio.yaml | 46 +-
.../devicetree/bindings/net/realtek-bluetooth.yaml | 1 +
.../net/renesas,r8a779f0-ether-switch.yaml | 262 +
Documentation/devicetree/bindings/net/sff,sfp.yaml | 3 +-
.../devicetree/bindings/net/snps,dwmac.yaml | 345 +-
.../bindings/net/socionext,synquacer-netsec.yaml | 73 +
.../devicetree/bindings/net/socionext-netsec.txt | 56 -
.../bindings/net/wireless/esp,esp8089.yaml | 2 +-
.../bindings/net/wireless/ieee80211.yaml | 2 +-
.../bindings/net/wireless/mediatek,mt76.yaml | 2 +-
.../bindings/net/wireless/microchip,wilc1000.yaml | 2 +-
.../bindings/net/wireless/qca,ath9k.yaml | 2 +-
.../bindings/net/wireless/qcom,ath11k.yaml | 2 +-
.../bindings/net/wireless/silabs,wfx.yaml | 2 +-
.../devicetree/bindings/net/xilinx_axienet.txt | 2 +
.../devicetree/bindings/nvmem/fsl,scu-ocotp.yaml | 2 +-
.../bindings/nvmem/ingenic,jz4780-efuse.yaml | 2 +-
.../bindings/nvmem/layouts/kontron,sl28-vpd.yaml | 64 +
.../bindings/nvmem/layouts/nvmem-layout.yaml | 34 +
.../bindings/nvmem/layouts/onie,tlv-layout.yaml | 147 +
Documentation/devicetree/bindings/nvmem/nvmem.yaml | 8 +
.../devicetree/bindings/nvmem/qcom,qfprom.yaml | 2 +-
.../devicetree/bindings/nvmem/qcom,spmi-sdam.yaml | 2 +-
.../devicetree/bindings/nvmem/snvs-lpgpr.yaml | 20 +-
.../bindings/nvmem/socionext,uniphier-efuse.yaml | 2 +-
.../devicetree/bindings/nvmem/st,stm32-romem.yaml | 3 +-
.../devicetree/bindings/nvmem/u-boot,env.yaml | 21 +
.../opp/allwinner,sun50i-h6-operating-points.yaml | 4 +-
Documentation/devicetree/bindings/opp/opp-v1.yaml | 2 +-
.../devicetree/bindings/opp/opp-v2-base.yaml | 8 +-
.../devicetree/bindings/opp/opp-v2-kryo-cpu.yaml | 2 +-
.../devicetree/bindings/opp/opp-v2-qcom-level.yaml | 2 +-
Documentation/devicetree/bindings/opp/opp-v2.yaml | 4 +-
.../devicetree/bindings/pci/baikal,bt1-pcie.yaml | 168 +
.../devicetree/bindings/pci/fsl,imx6q-pcie.yaml | 146 +-
.../bindings/pci/mediatek,mt7621-pcie.yaml | 2 +-
.../bindings/pci/mediatek-pcie-gen3.yaml | 77 +-
.../bindings/pci/nvidia,tegra194-pcie.yaml | 34 +-
Documentation/devicetree/bindings/pci/pci-ep.yaml | 2 +-
.../devicetree/bindings/pci/qcom,pcie-ep.yaml | 2 +-
.../devicetree/bindings/pci/qcom,pcie.yaml | 22 +
.../bindings/pci/renesas,pci-rcar-gen2.yaml | 2 +-
.../devicetree/bindings/pci/rockchip-dw-pcie.yaml | 4 +-
.../bindings/pci/snps,dw-pcie-common.yaml | 266 +
.../devicetree/bindings/pci/snps,dw-pcie-ep.yaml | 212 +-
.../devicetree/bindings/pci/snps,dw-pcie.yaml | 262 +-
.../devicetree/bindings/pci/ti,j721e-pci-ep.yaml | 7 +
.../devicetree/bindings/pci/ti,j721e-pci-host.yaml | 22 +
.../bindings/pci/toshiba,visconti-pcie.yaml | 7 +-
.../devicetree/bindings/pci/xilinx-nwl-pcie.txt | 73 -
.../devicetree/bindings/pci/xilinx-pcie.txt | 88 -
.../bindings/pci/xlnx,axi-pcie-host.yaml | 88 +
.../devicetree/bindings/pci/xlnx,nwl-pcie.yaml | 149 +
.../bindings/perf/amlogic,g12-ddr-pmu.yaml | 54 +
.../devicetree/bindings/perf/arm,dsu-pmu.yaml | 3 -
.../phy/allwinner,sun6i-a31-mipi-dphy.yaml | 11 +
.../bindings/phy/allwinner,sun8i-h3-usb-phy.yaml | 26 +
.../devicetree/bindings/phy/brcm,ns2-pcie-phy.yaml | 2 +-
.../devicetree/bindings/phy/calxeda-combophy.yaml | 2 +-
.../devicetree/bindings/phy/fsl,imx8-pcie-phy.yaml | 16 +-
.../bindings/phy/fsl,imx8mq-usb-phy.yaml | 5 +-
.../devicetree/bindings/phy/fsl,lynx-28g.yaml | 2 +-
.../devicetree/bindings/phy/ingenic,phy-usb.yaml | 2 +-
.../bindings/phy/intel,keembay-phy-usb.yaml | 2 +-
.../bindings/phy/intel,phy-thunderbay-emmc.yaml | 17 +-
.../bindings/phy/marvell,mmp3-usb-phy.yaml | 2 +-
.../devicetree/bindings/phy/mediatek,dsi-phy.yaml | 2 +-
.../devicetree/bindings/phy/mediatek,hdmi-phy.yaml | 2 +-
.../devicetree/bindings/phy/mediatek,ufs-phy.yaml | 2 +-
.../bindings/phy/phy-cadence-sierra.yaml | 2 +-
.../bindings/phy/phy-cadence-torrent.yaml | 2 +-
.../devicetree/bindings/phy/phy-stm32-usbphyc.yaml | 2 +-
.../devicetree/bindings/phy/phy-tegra194-p2u.yaml | 2 +-
...cie-phy.yaml => qcom,ipq8074-qmp-pcie-phy.yaml} | 7 +-
...-ufs-phy.yaml => qcom,msm8996-qmp-ufs-phy.yaml} | 17 +-
...usb-phy.yaml => qcom,msm8996-qmp-usb3-phy.yaml} | 20 +-
...p-phy.yaml => qcom,sc7180-qmp-usb3-dp-phy.yaml} | 25 +-
.../bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 165 +
.../bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml | 83 +
.../phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml | 102 +
.../phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | 99 +
.../devicetree/bindings/phy/qcom,usb-hs-phy.yaml | 2 +-
.../phy/renesas,r8a779f0-ether-serdes.yaml | 54 +
.../bindings/phy/ti,phy-am654-serdes.yaml | 2 +-
.../devicetree/bindings/phy/ti,phy-gmii-sel.yaml | 50 +-
.../devicetree/bindings/phy/ti,phy-j721e-wiz.yaml | 2 +
.../bindings/phy/transmit-amplitude.yaml | 2 +-
.../devicetree/bindings/pinctrl/fsl,imxrt1050.yaml | 2 +-
.../bindings/pinctrl/fsl,scu-pinctrl.yaml | 2 +-
.../bindings/pinctrl/ingenic,pinctrl.yaml | 2 +-
.../devicetree/bindings/pinctrl/intel,lgm-io.yaml | 2 +-
.../bindings/pinctrl/loongson,ls2k-pinctrl.yaml | 123 +
.../bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml | 5 +-
.../bindings/pinctrl/mediatek,mt6779-pinctrl.yaml | 95 +-
.../bindings/pinctrl/mediatek,mt6797-pinctrl.yaml | 176 -
.../bindings/pinctrl/mediatek,mt7986-pinctrl.yaml | 108 +-
.../bindings/pinctrl/mediatek,pinctrl-mt6795.yaml | 7 +-
.../pinctrl/nvidia,tegra-pinmux-common.yaml | 178 +
.../bindings/pinctrl/nvidia,tegra114-pinmux.txt | 131 -
.../bindings/pinctrl/nvidia,tegra114-pinmux.yaml | 155 +
.../bindings/pinctrl/nvidia,tegra124-pinmux.txt | 153 -
.../bindings/pinctrl/nvidia,tegra124-pinmux.yaml | 176 +
.../bindings/pinctrl/nvidia,tegra194-pinmux.txt | 107 -
.../bindings/pinctrl/nvidia,tegra194-pinmux.yaml | 284 +
.../bindings/pinctrl/nvidia,tegra20-pinmux.txt | 143 -
.../bindings/pinctrl/nvidia,tegra20-pinmux.yaml | 112 +
.../bindings/pinctrl/nvidia,tegra210-pinmux.txt | 166 -
.../bindings/pinctrl/nvidia,tegra210-pinmux.yaml | 142 +
.../bindings/pinctrl/nvidia,tegra30-pinmux.txt | 144 -
.../bindings/pinctrl/nvidia,tegra30-pinmux.yaml | 176 +
.../devicetree/bindings/pinctrl/pincfg-node.yaml | 2 +-
.../devicetree/bindings/pinctrl/pinctrl-sx150x.txt | 72 -
.../devicetree/bindings/pinctrl/pinmux-node.yaml | 2 +-
.../bindings/pinctrl/qcom,ipq6018-pinctrl.yaml | 113 +-
.../bindings/pinctrl/qcom,ipq8074-pinctrl.txt | 181 -
.../bindings/pinctrl/qcom,ipq8074-pinctrl.yaml | 135 +
...mdm9607-pinctrl.yaml => qcom,mdm9607-tlmm.yaml} | 41 +-
.../bindings/pinctrl/qcom,mdm9615-pinctrl.txt | 161 -
.../bindings/pinctrl/qcom,mdm9615-pinctrl.yaml | 119 +
.../bindings/pinctrl/qcom,msm8226-pinctrl.yaml | 103 +-
.../bindings/pinctrl/qcom,msm8660-pinctrl.txt | 96 -
.../bindings/pinctrl/qcom,msm8660-pinctrl.yaml | 125 +
.../bindings/pinctrl/qcom,msm8909-tlmm.yaml | 75 +-
.../bindings/pinctrl/qcom,msm8916-pinctrl.txt | 195 -
.../bindings/pinctrl/qcom,msm8916-pinctrl.yaml | 166 +
.../bindings/pinctrl/qcom,msm8953-pinctrl.yaml | 97 +-
.../bindings/pinctrl/qcom,msm8960-pinctrl.txt | 190 -
.../bindings/pinctrl/qcom,msm8960-pinctrl.yaml | 164 +
.../bindings/pinctrl/qcom,msm8974-pinctrl.txt | 121 -
.../bindings/pinctrl/qcom,msm8974-pinctrl.yaml | 179 +
.../bindings/pinctrl/qcom,msm8976-pinctrl.txt | 183 -
.../bindings/pinctrl/qcom,msm8976-pinctrl.yaml | 136 +
.../bindings/pinctrl/qcom,msm8994-pinctrl.txt | 186 -
.../bindings/pinctrl/qcom,msm8994-pinctrl.yaml | 162 +
.../bindings/pinctrl/qcom,msm8996-pinctrl.txt | 208 -
.../bindings/pinctrl/qcom,msm8996-pinctrl.yaml | 182 +
.../bindings/pinctrl/qcom,msm8998-pinctrl.txt | 202 -
.../bindings/pinctrl/qcom,msm8998-pinctrl.yaml | 171 +
.../devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml | 45 +-
...qcm2290-pinctrl.yaml => qcom,qcm2290-tlmm.yaml} | 64 +-
.../bindings/pinctrl/qcom,qcs404-pinctrl.txt | 199 -
.../bindings/pinctrl/qcom,qcs404-pinctrl.yaml | 176 +
.../bindings/pinctrl/qcom,sc7180-pinctrl.txt | 187 -
.../bindings/pinctrl/qcom,sc7180-pinctrl.yaml | 158 +
.../pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml | 48 +-
.../bindings/pinctrl/qcom,sc7280-pinctrl.yaml | 47 +-
...sc8180x-pinctrl.yaml => qcom,sc8180x-tlmm.yaml} | 29 +-
.../pinctrl/qcom,sc8280xp-lpass-lpi-pinctrl.yaml | 44 +-
...8280xp-pinctrl.yaml => qcom,sc8280xp-tlmm.yaml} | 28 +-
.../bindings/pinctrl/qcom,sdm630-pinctrl.yaml | 188 +
.../bindings/pinctrl/qcom,sdm660-pinctrl.txt | 191 -
.../bindings/pinctrl/qcom,sdm670-tlmm.yaml | 127 +
.../bindings/pinctrl/qcom,sdm845-pinctrl.txt | 176 -
.../bindings/pinctrl/qcom,sdm845-pinctrl.yaml | 158 +
.../bindings/pinctrl/qcom,sdx55-pinctrl.yaml | 95 +-
...com,sdx65-pinctrl.yaml => qcom,sdx65-tlmm.yaml} | 62 +-
...m,sm6115-pinctrl.yaml => qcom,sm6115-tlmm.yaml} | 67 +-
...m,sm6125-pinctrl.yaml => qcom,sm6125-tlmm.yaml} | 32 +-
...m,sm6350-pinctrl.yaml => qcom,sm6350-tlmm.yaml} | 25 +-
.../bindings/pinctrl/qcom,sm6375-tlmm.yaml | 23 +-
.../bindings/pinctrl/qcom,sm8150-pinctrl.txt | 190 -
.../bindings/pinctrl/qcom,sm8150-pinctrl.yaml | 173 +
.../pinctrl/qcom,sm8250-lpass-lpi-pinctrl.yaml | 58 +-
.../bindings/pinctrl/qcom,sm8250-pinctrl.yaml | 206 +-
...m,sm8350-pinctrl.yaml => qcom,sm8350-tlmm.yaml} | 25 +-
.../pinctrl/qcom,sm8450-lpass-lpi-pinctrl.yaml | 51 +-
...m,sm8450-pinctrl.yaml => qcom,sm8450-tlmm.yaml} | 24 +-
.../bindings/pinctrl/qcom,tlmm-common.yaml | 20 +-
.../bindings/pinctrl/rockchip,pinctrl.yaml | 2 +-
.../bindings/pinctrl/semtech,sx1501q.yaml | 208 +
.../bindings/pinctrl/st,stm32-pinctrl.yaml | 7 +-
.../devicetree/bindings/power/avs/qcom,cpr.yaml | 2 +-
.../bindings/power/domain-idle-state.yaml | 2 +-
.../devicetree/bindings/power/fsl,scu-pd.yaml | 2 +-
.../devicetree/bindings/power/qcom,rpmpd.yaml | 4 +
.../devicetree/bindings/power/renesas,apmu.yaml | 6 +-
.../bindings/power/reset/gpio-restart.yaml | 13 +-
.../bindings/power/reset/restart-handler.yaml | 30 +
.../bindings/power/reset/xlnx,zynqmp-power.yaml | 2 +-
.../devicetree/bindings/power/supply/bq2415x.yaml | 2 +-
.../devicetree/bindings/power/supply/bq24190.yaml | 2 +-
.../devicetree/bindings/power/supply/bq24257.yaml | 2 +-
.../devicetree/bindings/power/supply/bq24735.yaml | 2 +-
.../devicetree/bindings/power/supply/bq25890.yaml | 18 +-
.../devicetree/bindings/power/supply/bq27xxx.yaml | 2 -
.../bindings/power/supply/dlg,da9150-charger.yaml | 2 +-
.../power/supply/dlg,da9150-fuel-gauge.yaml | 2 +-
.../bindings/power/supply/ingenic,battery.yaml | 6 +-
.../devicetree/bindings/power/supply/isp1704.yaml | 2 +-
.../bindings/power/supply/lltc,lt3651-charger.yaml | 2 +-
.../bindings/power/supply/lltc,ltc294x.yaml | 2 +-
.../bindings/power/supply/maxim,ds2760.yaml | 2 +-
.../bindings/power/supply/maxim,max14656.yaml | 2 +-
.../bindings/power/supply/maxim,max17042.yaml | 2 +
.../bindings/power/supply/mt6360_charger.yaml | 2 +-
.../bindings/power/supply/power-supply.yaml | 6 +
.../bindings/power/supply/richtek,rt9455.yaml | 2 +-
.../bindings/power/supply/rohm,bd99954.yaml | 3 +-
.../bindings/power/supply/sc2731-charger.yaml | 3 +-
.../bindings/power/supply/sc27xx-fg.yaml | 2 +-
.../bindings/power/supply/ti,lp8727.yaml | 2 +-
.../devicetree/bindings/power/wakeup-source.txt | 13 +-
.../bindings/pwm/allwinner,sun4i-a10-pwm.yaml | 4 +-
.../bindings/pwm/google,cros-ec-pwm.yaml | 1 +
.../devicetree/bindings/pwm/microchip,corepwm.yaml | 6 +-
.../devicetree/bindings/pwm/nvidia,tegra20-pwm.txt | 77 -
.../bindings/pwm/nvidia,tegra20-pwm.yaml | 96 +
.../devicetree/bindings/pwm/renesas,pwm-rcar.yaml | 1 +
.../devicetree/bindings/pwm/renesas,tpu-pwm.yaml | 1 +
.../regulator/google,cros-ec-regulator.yaml | 1 +
.../bindings/regulator/max77650-regulator.yaml | 1 +
.../devicetree/bindings/regulator/max8660.yaml | 8 +-
.../bindings/regulator/maxim,max77802.yaml | 2 +-
.../regulator/mediatek,mt6357-regulator.yaml | 294 +
.../bindings/regulator/mt6360-regulator.yaml | 12 +-
.../bindings/regulator/pwm-regulator.yaml | 2 +-
.../bindings/regulator/qcom,rpmh-regulator.yaml | 36 +-
.../bindings/regulator/qcom,smd-rpm-regulator.yaml | 3 +
.../bindings/regulator/regulator-output.yaml | 39 +
.../devicetree/bindings/regulator/regulator.yaml | 2 +-
.../bindings/regulator/richtek,rt6190.yaml | 79 +
.../bindings/regulator/rohm,bd71815-regulator.yaml | 2 +-
.../bindings/regulator/rohm,bd71828-regulator.yaml | 2 +-
.../bindings/regulator/rohm,bd71837-regulator.yaml | 2 +-
.../bindings/regulator/rohm,bd71847-regulator.yaml | 2 +-
.../bindings/regulator/rohm,bd9576-regulator.yaml | 4 +-
.../bindings/regulator/st,stm32-booster.yaml | 2 +-
.../bindings/regulator/st,stm32-vrefbuf.yaml | 2 +-
.../devicetree/bindings/regulator/ti,tps65219.yaml | 14 +-
.../remoteproc/amlogic,meson-mx-ao-arc.yaml | 2 +-
.../bindings/remoteproc/fsl,imx-rproc.yaml | 18 +-
.../bindings/remoteproc/ingenic,vpu.yaml | 2 +-
.../devicetree/bindings/remoteproc/mtk,scp.yaml | 2 +-
.../devicetree/bindings/remoteproc/qcom,adsp.yaml | 2 +-
.../bindings/remoteproc/qcom,pil-info.yaml | 2 +-
.../bindings/remoteproc/renesas,rcar-rproc.yaml | 2 +-
.../bindings/remoteproc/st,stm32-rproc.yaml | 2 +-
.../bindings/remoteproc/xlnx,zynqmp-r5fss.yaml | 135 +
.../bindings/reserved-memory/framebuffer.yaml | 52 +
.../bindings/reserved-memory/shared-dma-pool.yaml | 2 +-
.../devicetree/bindings/reset/ti,sci-reset.yaml | 2 +-
.../bindings/reset/ti,tps380x-reset.yaml | 2 +-
Documentation/devicetree/bindings/riscv/cpus.yaml | 15 +-
.../devicetree/bindings/riscv/starfive.yaml | 4 +-
.../devicetree/bindings/rng/ingenic,rng.yaml | 2 +-
.../devicetree/bindings/rng/ingenic,trng.yaml | 2 +-
.../devicetree/bindings/rng/intel,ixp46x-rng.yaml | 2 +-
.../devicetree/bindings/rng/nuvoton,npcm-rng.yaml | 4 +-
.../bindings/rng/silex-insight,ba431-rng.yaml | 2 +-
.../devicetree/bindings/rng/st,stm32-rng.yaml | 2 +-
.../bindings/rng/xiphera,xip8001b-trng.yaml | 2 +-
.../bindings/rtc/amlogic,meson6-rtc.yaml | 62 +
.../devicetree/bindings/rtc/epson,rx8900.yaml | 2 +-
.../devicetree/bindings/rtc/fsl,scu-rtc.yaml | 2 +-
.../devicetree/bindings/rtc/haoyu,hym8563.txt | 30 -
.../devicetree/bindings/rtc/haoyu,hym8563.yaml | 56 +
.../devicetree/bindings/rtc/ingenic,rtc.yaml | 2 +-
.../devicetree/bindings/rtc/qcom-pm8xxx-rtc.yaml | 16 +-
.../devicetree/bindings/rtc/renesas,rzn1-rtc.yaml | 2 +-
.../devicetree/bindings/rtc/rtc-m41t80.txt | 39 -
.../devicetree/bindings/rtc/rtc-meson.txt | 35 -
Documentation/devicetree/bindings/rtc/rtc.yaml | 2 +-
.../devicetree/bindings/rtc/sa1100-rtc.yaml | 2 +-
.../devicetree/bindings/rtc/st,m41t80.yaml | 73 +
.../devicetree/bindings/rtc/st,stm32-rtc.yaml | 2 +-
Documentation/devicetree/bindings/serial/8250.yaml | 2 +-
.../devicetree/bindings/serial/8250_omap.yaml | 2 +-
.../bindings/serial/brcm,bcm7271-uart.yaml | 2 +-
.../devicetree/bindings/serial/fsl-lpuart.yaml | 3 +
.../devicetree/bindings/serial/ingenic,uart.yaml | 6 +-
.../devicetree/bindings/serial/renesas,scif.yaml | 1 +
.../devicetree/bindings/serial/rs485.yaml | 2 +-
.../devicetree/bindings/serial/serial.yaml | 2 +-
.../devicetree/bindings/serial/st,stm32-uart.yaml | 2 +-
.../bindings/serial/xlnx,opb-uartlite.yaml | 3 +-
.../devicetree/bindings/serio/ps2-gpio.yaml | 2 +-
Documentation/devicetree/bindings/slimbus/bus.txt | 60 -
.../devicetree/bindings/slimbus/qcom,slim-ngd.yaml | 120 +
.../devicetree/bindings/slimbus/qcom,slim.yaml | 86 +
.../bindings/slimbus/slim-ngd-qcom-ctrl.txt | 84 -
.../devicetree/bindings/slimbus/slim-qcom-ctrl.txt | 39 -
.../devicetree/bindings/slimbus/slimbus.yaml | 95 +
.../soc/mediatek/mediatek,mt7986-wo-ccif.yaml | 51 +
.../devicetree/bindings/soc/mediatek/mtk-svs.yaml | 2 +-
.../devicetree/bindings/soc/mediatek/pwrap.txt | 3 +
.../bindings/soc/qcom/qcom,aoss-qmp.yaml | 4 +-
.../bindings/soc/qcom/qcom,apr-services.yaml | 54 +
.../devicetree/bindings/soc/qcom/qcom,apr.yaml | 173 +-
.../devicetree/bindings/soc/qcom/qcom,geni-se.yaml | 44 +-
.../bindings/soc/qcom/qcom,rpmh-rsc.yaml | 5 +
.../devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 28 +-
.../devicetree/bindings/soc/qcom/qcom,smem.yaml | 2 +-
.../devicetree/bindings/soc/qcom/qcom,smp2p.yaml | 2 +-
.../devicetree/bindings/soc/qcom/qcom,spm.yaml | 5 +-
.../devicetree/bindings/soc/qcom/qcom,wcnss.yaml | 8 +-
.../devicetree/bindings/soc/qcom/qcom-stats.yaml | 2 +-
.../soc/renesas/renesas,r9a09g011-sys.yaml | 43 +
.../bindings/{arm => soc/renesas}/renesas.yaml | 5 +-
.../bindings/soc/samsung/exynos-usi.yaml | 2 +-
.../devicetree/bindings/soc/ti/sci-pm-domain.yaml | 2 +-
.../devicetree/bindings/sound/adi,adau1372.yaml | 7 +-
.../devicetree/bindings/sound/adi,adau1977.yaml | 1 +
.../devicetree/bindings/sound/adi,adau7118.yaml | 5 +-
.../devicetree/bindings/sound/ak4375.yaml | 5 +-
.../devicetree/bindings/sound/ak4613.yaml | 5 +-
.../devicetree/bindings/sound/ak4642.yaml | 5 +-
.../bindings/sound/allwinner,sun4i-a10-codec.yaml | 3 +-
.../bindings/sound/allwinner,sun4i-a10-i2s.yaml | 3 +-
.../bindings/sound/allwinner,sun4i-a10-spdif.yaml | 3 +-
.../bindings/sound/allwinner,sun50i-h6-dmic.yaml | 12 +-
.../bindings/sound/allwinner,sun8i-a33-codec.yaml | 5 +-
.../devicetree/bindings/sound/amlogic,aiu.yaml | 2 +-
.../bindings/sound/amlogic,g12a-toacodec.yaml | 2 +-
.../devicetree/bindings/sound/amlogic,t9015.yaml | 2 +-
.../devicetree/bindings/sound/apple,mca.yaml | 5 +-
.../bindings/sound/audio-graph-port.yaml | 2 +-
.../devicetree/bindings/sound/awinic,aw8738.yaml | 2 +-
.../devicetree/bindings/sound/cirrus,cs35l41.yaml | 3 +-
.../devicetree/bindings/sound/cirrus,cs35l45.yaml | 5 +-
.../devicetree/bindings/sound/cirrus,cs42l51.yaml | 7 +-
.../bindings/sound/cirrus,lochnagar.yaml | 5 +-
.../devicetree/bindings/sound/cirrus,madera.yaml | 3 +
.../sound/{name-prefix.yaml => dai-common.yaml} | 6 +-
.../bindings/sound/davinci-mcasp-audio.yaml | 3 +-
.../devicetree/bindings/sound/dmic-codec.yaml | 55 +
Documentation/devicetree/bindings/sound/dmic.txt | 22 -
.../devicetree/bindings/sound/everest,es8316.yaml | 5 +-
.../devicetree/bindings/sound/fsl,micfil.yaml | 1 +
.../devicetree/bindings/sound/fsl,rpmsg.yaml | 36 +-
.../devicetree/bindings/sound/fsl,sai.yaml | 101 +-
.../bindings/sound/google,cros-ec-codec.yaml | 6 +-
.../devicetree/bindings/sound/ingenic,aic.yaml | 17 +-
.../devicetree/bindings/sound/ingenic,codec.yaml | 7 +-
.../bindings/sound/intel,keembay-i2s.yaml | 8 +-
.../devicetree/bindings/sound/linux,bt-sco.yaml | 5 +-
.../devicetree/bindings/sound/linux,spdif-dit.yaml | 2 +-
.../bindings/sound/marvell,mmp-sspa.yaml | 7 +-
.../devicetree/bindings/sound/max98357a.txt | 28 -
.../devicetree/bindings/sound/max98504.txt | 44 -
.../devicetree/bindings/sound/maxim,max98357a.yaml | 52 +
.../devicetree/bindings/sound/maxim,max98504.yaml | 86 +
.../devicetree/bindings/sound/mchp,i2s-mcc.yaml | 18 +-
.../devicetree/bindings/sound/mchp,spdiftx.yaml | 5 +-
.../devicetree/bindings/sound/microchip,pdmc.yaml | 5 +-
.../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 14 +-
.../sound/mt8192-mt6359-rt1015-rt5682.yaml | 3 +-
.../devicetree/bindings/sound/mvebu-audio.txt | 14 +-
.../devicetree/bindings/sound/nau8315.txt | 6 +
.../bindings/sound/nvidia,tegra186-asrc.yaml | 2 +-
.../bindings/sound/nvidia,tegra186-dspk.yaml | 2 +-
.../bindings/sound/nvidia,tegra20-spdif.yaml | 5 +-
.../bindings/sound/nvidia,tegra210-adx.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-amx.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-dmic.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-i2s.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-mixer.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-mvc.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-ope.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-sfc.yaml | 2 +-
.../devicetree/bindings/sound/nxp,tfa989x.yaml | 2 +-
.../devicetree/bindings/sound/qcom,lpass-cpu.yaml | 5 +-
.../bindings/sound/qcom,lpass-rx-macro.yaml | 10 +-
.../bindings/sound/qcom,lpass-tx-macro.yaml | 10 +-
.../bindings/sound/qcom,lpass-va-macro.yaml | 10 +-
.../bindings/sound/qcom,lpass-wsa-macro.yaml | 10 +-
.../bindings/sound/qcom,q6adm-routing.yaml | 27 +-
.../devicetree/bindings/sound/qcom,q6adm.yaml | 51 +
.../devicetree/bindings/sound/qcom,q6afe.yaml | 68 +
.../devicetree/bindings/sound/qcom,q6apm-dai.yaml | 21 +-
.../bindings/sound/qcom,q6apm-lpass-dais.yaml | 35 +
.../devicetree/bindings/sound/qcom,q6apm.yaml | 68 +
.../devicetree/bindings/sound/qcom,q6asm-dais.yaml | 48 +-
.../devicetree/bindings/sound/qcom,q6asm.yaml | 68 +
.../devicetree/bindings/sound/qcom,q6core.yaml | 39 +
.../bindings/sound/qcom,q6dsp-lpass-clocks.yaml | 42 +-
.../bindings/sound/qcom,q6dsp-lpass-ports.yaml | 59 +-
.../devicetree/bindings/sound/qcom,q6prm.yaml | 50 +
.../devicetree/bindings/sound/qcom,wcd9335.txt | 2 +-
.../devicetree/bindings/sound/qcom,wcd934x.yaml | 2 +-
.../bindings/sound/qcom,wcd938x-sdw.yaml | 2 +-
.../devicetree/bindings/sound/qcom,wcd938x.yaml | 7 +-
.../devicetree/bindings/sound/qcom,wsa881x.yaml | 2 +-
.../devicetree/bindings/sound/qcom,wsa883x.yaml | 17 +-
.../devicetree/bindings/sound/realtek,rt1015p.yaml | 2 +-
.../devicetree/bindings/sound/realtek,rt5682s.yaml | 33 +-
.../devicetree/bindings/sound/renesas,fsi.yaml | 5 +-
.../devicetree/bindings/sound/renesas,rsnd.yaml | 5 +-
.../devicetree/bindings/sound/renesas,rz-ssi.yaml | 5 +-
.../devicetree/bindings/sound/richtek,rt9120.yaml | 5 +-
.../bindings/sound/rockchip,i2s-tdm.yaml | 7 +-
.../devicetree/bindings/sound/rockchip,pdm.yaml | 5 +-
.../bindings/sound/rockchip,rk3328-codec.yaml | 5 +-
.../devicetree/bindings/sound/rockchip-i2s.yaml | 5 +-
.../devicetree/bindings/sound/rockchip-spdif.yaml | 23 +-
.../devicetree/bindings/sound/rohm,bd28623.yaml | 5 +-
Documentation/devicetree/bindings/sound/rt5659.txt | 2 +-
Documentation/devicetree/bindings/sound/rt5682.txt | 22 +-
.../devicetree/bindings/sound/samsung-i2s.yaml | 5 +-
.../devicetree/bindings/sound/sgtl5000.yaml | 5 +-
.../bindings/sound/simple-audio-amplifier.yaml | 2 +-
.../bindings/sound/simple-audio-mux.yaml | 2 +-
.../bindings/sound/snps,designware-i2s.yaml | 30 +-
.../bindings/sound/socionext,uniphier-aio.yaml | 5 +-
.../bindings/sound/socionext,uniphier-evea.yaml | 5 +-
.../devicetree/bindings/sound/st,stm32-i2s.yaml | 5 +-
.../bindings/sound/st,stm32-spdifrx.yaml | 5 +-
.../devicetree/bindings/sound/tas2562.yaml | 5 +-
.../devicetree/bindings/sound/tas2770.yaml | 5 +-
.../devicetree/bindings/sound/tas27xx.yaml | 5 +-
.../devicetree/bindings/sound/ti,src4xxx.yaml | 4 +-
.../bindings/sound/ti,tlv320adc3xxx.yaml | 5 +-
.../devicetree/bindings/sound/tlv320adcx140.yaml | 64 +-
.../devicetree/bindings/sound/wlf,arizona.yaml | 3 +
.../devicetree/bindings/sound/wlf,wm8731.yaml | 1 +
.../devicetree/bindings/sound/wlf,wm8940.yaml | 5 +-
.../devicetree/bindings/sound/wlf,wm8961.yaml | 43 +
.../devicetree/bindings/sound/wlf,wm8962.yaml | 5 +-
.../devicetree/bindings/sound/wlf,wm8978.yaml | 5 +-
.../devicetree/bindings/sound/zl38060.yaml | 5 +-
.../devicetree/bindings/soundwire/qcom,sdw.txt | 214 -
.../bindings/soundwire/qcom,soundwire.yaml | 270 +
.../bindings/soundwire/soundwire-controller.yaml | 2 +-
.../bindings/spi/amlogic,meson-gx-spicc.yaml | 75 +-
.../bindings/spi/aspeed,ast2600-fmc.yaml | 2 +-
.../devicetree/bindings/spi/fsl-imx-cspi.yaml | 4 +-
.../devicetree/bindings/spi/ingenic,spi.yaml | 2 +-
.../devicetree/bindings/spi/marvell,mmp2-ssp.yaml | 2 +-
.../devicetree/bindings/spi/nuvoton,npcm-fiu.txt | 2 +-
.../bindings/spi/nuvoton,wpcm450-fiu.yaml | 66 +
.../bindings/spi/nvidia,tegra210-quad.yaml | 2 +-
.../devicetree/bindings/spi/omap-spi.yaml | 2 +-
.../devicetree/bindings/spi/socionext,f-ospi.yaml | 57 +
.../bindings/spi/socionext,synquacer-spi.yaml | 73 +
.../devicetree/bindings/spi/spi-controller.yaml | 2 +-
.../devicetree/bindings/spi/spi-fsl-lpspi.yaml | 8 +
.../devicetree/bindings/spi/spi-gpio.yaml | 2 +-
.../bindings/spi/spi-peripheral-props.yaml | 5 +
.../devicetree/bindings/spi/spi-synquacer.txt | 27 -
.../devicetree/bindings/spi/spi-zynqmp-qspi.yaml | 4 +-
.../devicetree/bindings/spi/st,stm32-qspi.yaml | 2 +-
.../devicetree/bindings/spi/st,stm32-spi.yaml | 2 +-
.../bindings/spmi/qcom,spmi-pmic-arb.yaml | 10 +
.../devicetree/bindings/sram/qcom,imem.yaml | 1 +
.../bindings/thermal/fsl,scu-thermal.yaml | 2 +-
.../bindings/thermal/generic-adc-thermal.yaml | 84 +
.../devicetree/bindings/thermal/imx-thermal.yaml | 2 +-
.../bindings/thermal/imx8mm-thermal.yaml | 9 +-
.../bindings/thermal/mediatek-thermal.txt | 2 +
.../devicetree/bindings/thermal/qcom-lmh.yaml | 2 +-
.../bindings/thermal/qcom-spmi-adc-tm5.yaml | 6 +-
.../devicetree/bindings/thermal/qcom-tsens.yaml | 82 +-
.../devicetree/bindings/thermal/rzg2l-thermal.yaml | 2 +-
.../devicetree/bindings/thermal/sprd-thermal.yaml | 2 +-
.../bindings/thermal/st,stm32-thermal.yaml | 2 +-
.../bindings/thermal/thermal-cooling-devices.yaml | 6 +-
.../bindings/thermal/thermal-generic-adc.txt | 95 -
.../devicetree/bindings/thermal/thermal-idle.yaml | 156 +-
.../bindings/thermal/thermal-sensor.yaml | 2 +-
.../devicetree/bindings/thermal/thermal-zones.yaml | 2 +-
.../bindings/thermal/ti,am654-thermal.yaml | 2 +-
.../bindings/thermal/ti,j72xx-thermal.yaml | 37 +-
.../bindings/timer/brcm,bcmbca-timer.yaml | 40 +
.../devicetree/bindings/timer/fsl,imxgpt.yaml | 2 +
.../devicetree/bindings/timer/ingenic,sysost.yaml | 2 +-
.../devicetree/bindings/timer/ingenic,tcu.yaml | 2 +-
.../devicetree/bindings/timer/mrvl,mmp-timer.yaml | 2 +-
.../bindings/timer/nuvoton,npcm7xx-timer.yaml | 8 +-
.../devicetree/bindings/timer/renesas,cmt.yaml | 2 +
.../devicetree/bindings/timer/renesas,tmu.yaml | 1 +
.../bindings/timer/rockchip,rk-timer.yaml | 1 +
.../devicetree/bindings/timer/st,stm32-timer.yaml | 2 +-
.../devicetree/bindings/trivial-devices.yaml | 2 +-
.../devicetree/bindings/ufs/cdns,ufshc.yaml | 2 +
.../devicetree/bindings/usb/analogix,anx7411.yaml | 2 +-
.../devicetree/bindings/usb/cdns,usb3.yaml | 2 +-
Documentation/devicetree/bindings/usb/dwc2.yaml | 5 +-
.../devicetree/bindings/usb/faraday,fotg210.yaml | 2 +-
.../devicetree/bindings/usb/generic-ehci.yaml | 1 +
.../devicetree/bindings/usb/generic-ohci.yaml | 1 +
.../devicetree/bindings/usb/genesys,gl850g.yaml | 48 +
.../devicetree/bindings/usb/ingenic,musb.yaml | 2 +-
.../bindings/usb/marvell,pxau2o-ehci.yaml | 2 +-
.../devicetree/bindings/usb/maxim,max33359.yaml | 2 +-
.../bindings/usb/mediatek,mt6360-tcpc.yaml | 2 +-
.../devicetree/bindings/usb/mediatek,mtk-xhci.yaml | 1 +
.../devicetree/bindings/usb/mediatek,mtu3.yaml | 1 +
.../devicetree/bindings/usb/nvidia,tegra-xudc.yaml | 2 +-
.../bindings/usb/nvidia,tegra124-xusb.txt | 132 -
.../bindings/usb/nvidia,tegra124-xusb.yaml | 200 +
.../bindings/usb/nvidia,tegra186-xusb.yaml | 171 +
.../bindings/usb/nvidia,tegra194-xusb.yaml | 175 +
.../bindings/usb/nvidia,tegra210-xusb.yaml | 195 +
.../devicetree/bindings/usb/nxp,isp1760.yaml | 2 +-
.../devicetree/bindings/usb/qcom,dwc3.yaml | 3 +
.../devicetree/bindings/usb/realtek,rts5411.yaml | 2 +-
.../devicetree/bindings/usb/richtek,rt1719.yaml | 2 +-
.../devicetree/bindings/usb/st,stusb160x.yaml | 2 +-
.../devicetree/bindings/usb/ti,j721e-usb.yaml | 2 +-
.../devicetree/bindings/usb/ti,tps6598x.yaml | 2 +-
.../devicetree/bindings/usb/ti,usb8041.yaml | 2 +-
.../devicetree/bindings/usb/usb-device.yaml | 2 +-
Documentation/devicetree/bindings/usb/usb-drd.yaml | 1 +
.../devicetree/bindings/usb/usb-nop-xceiv.yaml | 5 +
Documentation/devicetree/bindings/usb/usb251xb.txt | 89 -
.../devicetree/bindings/usb/usb251xb.yaml | 271 +
.../devicetree/bindings/usb/willsemi,wusb3801.yaml | 2 +-
.../devicetree/bindings/vendor-prefixes.yaml | 76 +-
.../devicetree/bindings/virtio/virtio-device.yaml | 2 +-
.../devicetree/bindings/watchdog/fsl,scu-wdt.yaml | 2 +-
.../devicetree/bindings/watchdog/gpio-wdt.txt | 28 -
.../bindings/watchdog/linux,wdt-gpio.yaml | 55 +
.../bindings/watchdog/mediatek,mtk-wdt.yaml | 80 +
.../devicetree/bindings/watchdog/mtk-wdt.txt | 42 -
.../bindings/watchdog/st,stm32-iwdg.yaml | 2 +-
.../devicetree/bindings/watchdog/watchdog.yaml | 2 +-
Documentation/doc-guide/sphinx.rst | 16 +-
Documentation/driver-api/driver-model/devres.rst | 13 +
Documentation/driver-api/eisa.rst | 2 +-
Documentation/driver-api/gpio/legacy.rst | 5 -
Documentation/driver-api/phy/phy.rst | 25 +-
Documentation/driver-api/pin-control.rst | 10 +-
Documentation/driver-api/serial/driver.rst | 3 +
Documentation/driver-api/serial/serial-rs485.rst | 56 +-
Documentation/driver-api/spi.rst | 4 +-
Documentation/fault-injection/fault-injection.rst | 10 +-
.../features/core/cBPF-JIT/arch-support.txt | 2 +-
.../features/core/eBPF-JIT/arch-support.txt | 2 +-
.../core/generic-idle-thread/arch-support.txt | 2 +-
.../features/core/jump-labels/arch-support.txt | 4 +-
.../core/thread-info-in-task/arch-support.txt | 2 +-
.../features/core/tracehook/arch-support.txt | 2 +-
.../features/debug/KASAN/arch-support.txt | 4 +-
.../debug/debug-vm-pgtable/arch-support.txt | 2 +-
.../debug/gcov-profile-all/arch-support.txt | 2 +-
Documentation/features/debug/kcov/arch-support.txt | 2 +-
Documentation/features/debug/kgdb/arch-support.txt | 2 +-
.../features/debug/kmemleak/arch-support.txt | 2 +-
.../debug/kprobes-on-ftrace/arch-support.txt | 2 +-
.../features/debug/kprobes/arch-support.txt | 2 +-
.../features/debug/kretprobes/arch-support.txt | 2 +-
.../features/debug/optprobes/arch-support.txt | 2 +-
.../features/debug/stackprotector/arch-support.txt | 2 +-
.../features/debug/uprobes/arch-support.txt | 2 +-
.../debug/user-ret-profiler/arch-support.txt | 2 +-
.../features/io/dma-contiguous/arch-support.txt | 2 +-
.../locking/cmpxchg-local/arch-support.txt | 2 +-
.../features/locking/lockdep/arch-support.txt | 2 +-
.../locking/queued-rwlocks/arch-support.txt | 2 +-
.../locking/queued-spinlocks/arch-support.txt | 4 +-
.../features/perf/kprobes-event/arch-support.txt | 2 +-
.../features/perf/perf-regs/arch-support.txt | 2 +-
.../features/perf/perf-stackdump/arch-support.txt | 2 +-
.../sched/membarrier-sync-core/arch-support.txt | 2 +-
.../features/sched/numa-balancing/arch-support.txt | 2 +-
Documentation/features/scripts/features-refresh.sh | 2 +-
.../seccomp/seccomp-filter/arch-support.txt | 2 +-
.../time/arch-tick-broadcast/arch-support.txt | 2 +-
.../features/time/clockevents/arch-support.txt | 2 +-
.../time/context-tracking/arch-support.txt | 2 +-
.../features/time/irq-time-acct/arch-support.txt | 2 +-
.../features/time/virt-cpuacct/arch-support.txt | 2 +-
.../features/vm/ELF-ASLR/arch-support.txt | 2 +-
.../features/vm/PG_uncached/arch-support.txt | 2 +-
Documentation/features/vm/THP/arch-support.txt | 2 +-
Documentation/features/vm/TLB/arch-support.txt | 2 +-
.../features/vm/huge-vmap/arch-support.txt | 4 +-
.../features/vm/ioremap_prot/arch-support.txt | 2 +-
.../features/vm/pte_special/arch-support.txt | 2 +-
Documentation/filesystems/configfs.rst | 48 -
Documentation/filesystems/debugfs.rst | 8 +-
Documentation/filesystems/erofs.rst | 38 +-
Documentation/filesystems/f2fs.rst | 13 +-
Documentation/filesystems/fscrypt.rst | 7 +
Documentation/filesystems/locking.rst | 10 +-
Documentation/filesystems/mount_api.rst | 12 +-
Documentation/filesystems/ntfs3.rst | 19 +
Documentation/filesystems/porting.rst | 4 +-
Documentation/filesystems/proc.rst | 28 +-
Documentation/filesystems/sysfs.rst | 41 +-
Documentation/filesystems/vfs.rst | 5 +-
Documentation/gpu/amdgpu/amdgpu-glossary.rst | 23 +
Documentation/gpu/amdgpu/driver-core.rst | 4 +-
Documentation/gpu/amdgpu/index.rst | 2 +-
Documentation/hwmon/aquacomputer_d5next.rst | 4 +-
Documentation/hwmon/index.rst | 2 +
Documentation/hwmon/oxp-sensors.rst | 44 +
Documentation/hwmon/smpro-hwmon.rst | 102 +
Documentation/ia64/aliasing.rst | 2 +-
Documentation/kernel-hacking/locking.rst | 17 +-
Documentation/loongarch/booting.rst | 42 +
Documentation/loongarch/index.rst | 1 +
Documentation/loongarch/introduction.rst | 8 +-
.../maintainer/maintainer-entry-profile.rst | 1 +
Documentation/memory-barriers.txt | 2 +-
Documentation/mm/arch_pgtable_helpers.rst | 2 +-
Documentation/mm/slub.rst | 2 +
Documentation/mm/transhuge.rst | 34 +-
Documentation/networking/bonding.rst | 4 +-
Documentation/networking/can.rst | 33 +
.../ethernet/freescale/dpaa2/mac-phy-support.rst | 9 +-
.../device_drivers/ethernet/marvell/octeon_ep.rst | 1 +
.../device_drivers/ethernet/mellanox/mlx5.rst | 124 +-
.../device_drivers/ethernet/netronome/nfp.rst | 165 +-
Documentation/networking/devlink/devlink-info.rst | 5 +
Documentation/networking/devlink/devlink-port.rst | 168 +-
.../networking/devlink/devlink-region.rst | 13 +
Documentation/networking/devlink/devlink-trap.rst | 13 +
Documentation/networking/devlink/etas_es58x.rst | 36 +
Documentation/networking/devlink/ice.rst | 128 +-
Documentation/networking/devlink/index.rst | 1 +
Documentation/networking/ethtool-netlink.rst | 32 +-
Documentation/networking/generic_netlink.rst | 2 +-
Documentation/networking/index.rst | 1 +
Documentation/networking/ip-sysctl.rst | 111 +
Documentation/networking/ipvs-sysctl.rst | 24 +-
Documentation/networking/nf_conntrack-sysctl.rst | 33 +
Documentation/networking/tc-queue-filters.rst | 37 +
Documentation/networking/timestamping.rst | 32 +-
Documentation/networking/xfrm_device.rst | 62 +-
Documentation/nvme/feature-and-quirk-policy.rst | 77 +
Documentation/powerpc/cpu_families.rst | 13 +
Documentation/process/changes.rst | 4 +-
Documentation/process/kernel-docs.rst | 477 +-
Documentation/riscv/patch-acceptance.rst | 22 +-
Documentation/riscv/vm-layout.rst | 36 +
Documentation/scsi/scsi_eh.rst | 7 +-
Documentation/security/keys/trusted-encrypted.rst | 3 +-
Documentation/sphinx-static/custom.css | 29 +
Documentation/sphinx/requirements.txt | 1 -
Documentation/subsystem-apis.rst | 1 +
Documentation/timers/hrtimers.rst | 2 +-
Documentation/tools/index.rst | 1 +
Documentation/tools/rv/Makefile | 52 +
Documentation/tools/rv/common_appendix.rst | 16 +
Documentation/tools/rv/common_ikm.rst | 21 +
Documentation/tools/rv/index.rst | 24 +
Documentation/tools/rv/rv-list.rst | 43 +
Documentation/tools/rv/rv-mon-wip.rst | 44 +
Documentation/tools/rv/rv-mon-wwnr.rst | 43 +
Documentation/tools/rv/rv-mon.rst | 55 +
Documentation/tools/rv/rv.rst | 63 +
Documentation/trace/ftrace.rst | 2 +-
Documentation/trace/histogram.rst | 10 +-
Documentation/trace/kprobes.rst | 3 +-
Documentation/trace/kprobetrace.rst | 8 +-
Documentation/trace/osnoise-tracer.rst | 32 +-
Documentation/translations/index.rst | 1 +
.../translations/it_IT/kernel-hacking/locking.rst | 14 +-
Documentation/translations/ja_JP/howto.rst | 66 +-
.../translations/ko_KR/memory-barriers.txt | 149 +-
Documentation/translations/sp_SP/disclaimer-sp.rst | 6 +
Documentation/translations/sp_SP/howto.rst | 617 +
Documentation/translations/sp_SP/index.rst | 81 +
.../translations/sp_SP/memory-barriers.txt | 3134 ++
.../translations/sp_SP/process/coding-style.rst | 1315 +
Documentation/translations/sp_SP/process/index.rst | 15 +
.../translations/sp_SP/process/kernel-docs.rst | 187 +
.../sp_SP/process/submitting-patches.rst | 894 +
.../sp_SP/wrappers/memory-barriers.rst | 19 +
.../translations/zh_CN/core-api/errseq.rst | 145 +
.../translations/zh_CN/core-api/index.rst | 6 +-
.../translations/zh_CN/core-api/local_ops.rst | 2 +-
.../translations/zh_CN/core-api/this_cpu_ops.rst | 285 +
.../translations/zh_CN/doc-guide/index.rst | 2 +-
Documentation/translations/zh_CN/index.rst | 11 +-
.../translations/zh_CN/loongarch/booting.rst | 48 +
.../translations/zh_CN/loongarch/index.rst | 1 +
.../translations/zh_CN/loongarch/introduction.rst | 12 +-
.../translations/zh_CN/rust/arch-support.rst | 23 +
.../translations/zh_CN/rust/coding-guidelines.rst | 192 +
.../zh_CN/rust/general-information.rst | 75 +
Documentation/translations/zh_CN/rust/index.rst | 28 +
.../translations/zh_CN/rust/quick-start.rst | 211 +
Documentation/translations/zh_CN/staging/index.rst | 26 +
Documentation/translations/zh_CN/staging/xz.rst | 100 +
.../zh_CN/userspace-api/accelerators/ocxl.rst | 168 +
.../zh_CN/userspace-api/ebpf/index.rst | 22 +
.../zh_CN/userspace-api/ebpf/syscall.rst | 29 +
.../translations/zh_CN/userspace-api/futex2.rst | 80 +
.../translations/zh_CN/userspace-api/index.rst | 50 +
.../zh_CN/userspace-api/no_new_privs.rst | 57 +
.../zh_CN/userspace-api/seccomp_filter.rst | 293 +
.../zh_CN/userspace-api/sysfs-platform_profile.rst | 40 +
Documentation/usb/CREDITS | 6 +-
Documentation/usb/functionfs.rst | 2 +-
Documentation/usb/gadget_multi.rst | 2 +-
Documentation/userspace-api/index.rst | 1 +
Documentation/userspace-api/ioctl/ioctl-number.rst | 1 +
Documentation/userspace-api/iommufd.rst | 223 +
Documentation/userspace-api/landlock.rst | 67 +-
Documentation/userspace-api/media/Makefile | 3 +-
.../userspace-api/media/cec/cec-pin-error-inj.rst | 2 +
.../userspace-api/media/drivers/aspeed-video.rst | 65 +
.../userspace-api/media/drivers/index.rst | 2 +
.../userspace-api/media/drivers/st-vgxy61.rst | 25 +
.../media/dvb/fe_property_parameters.rst | 25 +-
.../userspace-api/media/frontend.h.rst.exceptions | 28 +
Documentation/userspace-api/media/v4l/buffer.rst | 11 +-
.../userspace-api/media/v4l/ext-ctrls-camera.rst | 8 +
.../userspace-api/media/v4l/pixfmt-reserved.rst | 17 +
.../userspace-api/media/v4l/pixfmt-yuv-planar.rst | 8 +
.../userspace-api/media/v4l/subdev-formats.rst | 37 +
Documentation/virt/coco/tdx-guest.rst | 52 +
Documentation/virt/index.rst | 1 +
Documentation/virt/kvm/api.rst | 331 +-
Documentation/virt/kvm/arm/pvtime.rst | 14 +-
Documentation/virt/kvm/devices/arm-vgic-its.rst | 5 +-
Documentation/virt/kvm/devices/vcpu.rst | 2 +
Documentation/virt/kvm/{x86 => }/halt-polling.rst | 13 +
Documentation/virt/kvm/index.rst | 1 +
Documentation/virt/kvm/locking.rst | 19 +-
Documentation/virt/kvm/x86/index.rst | 1 -
Documentation/x86/boot.rst | 1 +
Documentation/x86/tdx.rst | 43 +
LICENSES/dual/copyleft-next-0.3.1 | 236 +
MAINTAINERS | 458 +-
Makefile | 52 +-
arch/Kconfig | 36 +-
arch/alpha/include/asm/elf.h | 6 -
arch/alpha/include/asm/pgtable.h | 2 -
arch/alpha/include/asm/ptrace.h | 1 -
arch/alpha/include/asm/thread_info.h | 6 +-
arch/alpha/kernel/entry.S | 14 +-
arch/alpha/kernel/process.c | 8 +-
arch/arc/include/asm/pgtable-bits-arcv2.h | 2 -
arch/arc/kernel/ptrace.c | 2 +-
arch/arm/Kconfig | 26 +-
arch/arm/Makefile | 81 +-
arch/arm/boot/compressed/Makefile | 4 +-
arch/arm/boot/dts/Makefile | 13 +-
arch/arm/boot/dts/am335x-baltos-leds.dtsi | 6 +-
arch/arm/boot/dts/am335x-boneblack-hdmi.dtsi | 7 +-
arch/arm/boot/dts/am335x-evm.dts | 4 +-
arch/arm/boot/dts/am335x-evmsk.dts | 2 +-
arch/arm/boot/dts/am335x-guardian.dts | 3 +-
arch/arm/boot/dts/am335x-igep0033.dtsi | 4 +-
arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi | 10 +-
arch/arm/boot/dts/am335x-moxa-uc-8100-common.dtsi | 10 +-
arch/arm/boot/dts/am335x-myirtech-myd.dts | 7 +-
arch/arm/boot/dts/am335x-pcm-953.dtsi | 28 +-
arch/arm/boot/dts/am335x-pepper.dts | 4 +-
arch/arm/boot/dts/am335x-pocketbeagle.dts | 8 +-
arch/arm/boot/dts/am3517-evm.dts | 18 +-
arch/arm/boot/dts/am3517.dtsi | 38 +-
arch/arm/boot/dts/am437x-idk-evm.dts | 2 +-
arch/arm/boot/dts/am437x-sk-evm.dts | 2 +-
arch/arm/boot/dts/am43x-epos-evm.dts | 2 +-
arch/arm/boot/dts/am57xx-idk-common.dtsi | 2 +-
arch/arm/boot/dts/armada-370-dlink-dns327l.dts | 6 +-
arch/arm/boot/dts/armada-370-netgear-rn102.dts | 10 +-
arch/arm/boot/dts/armada-370-netgear-rn104.dts | 10 +-
arch/arm/boot/dts/armada-370-rd.dts | 16 +-
arch/arm/boot/dts/armada-370-seagate-nas-4bay.dts | 4 +-
arch/arm/boot/dts/armada-370-seagate-nas-xbay.dtsi | 8 +-
.../dts/armada-370-seagate-personal-cloud.dtsi | 2 +-
arch/arm/boot/dts/armada-370-synology-ds213j.dts | 6 +-
arch/arm/boot/dts/armada-370.dtsi | 2 +-
arch/arm/boot/dts/armada-375.dtsi | 14 +-
arch/arm/boot/dts/armada-380.dtsi | 4 +-
arch/arm/boot/dts/armada-385-linksys-caiman.dts | 4 +-
arch/arm/boot/dts/armada-385-linksys-cobra.dts | 4 +-
arch/arm/boot/dts/armada-385-linksys-rango.dts | 8 +-
arch/arm/boot/dts/armada-385-linksys-shelby.dts | 4 +-
arch/arm/boot/dts/armada-385-linksys.dtsi | 4 +-
arch/arm/boot/dts/armada-385-synology-ds116.dts | 2 +-
arch/arm/boot/dts/armada-385-turris-omnia.dts | 18 +-
arch/arm/boot/dts/armada-385.dtsi | 6 +-
arch/arm/boot/dts/armada-38x.dtsi | 4 +-
arch/arm/boot/dts/armada-39x.dtsi | 10 +-
arch/arm/boot/dts/armada-xp-98dx3236.dtsi | 1 +
arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 2 +-
arch/arm/boot/dts/armada-xp-mv78230.dtsi | 8 +-
arch/arm/boot/dts/armada-xp-mv78260.dtsi | 16 +-
arch/arm/boot/dts/armada-xp-netgear-rn2120.dts | 10 +-
arch/arm/boot/dts/armada-xp.dtsi | 1 +
arch/arm/boot/dts/aspeed-bmc-ampere-mtjade.dts | 12 +
arch/arm/boot/dts/aspeed-bmc-ampere-mtmitchell.dts | 4 +
arch/arm/boot/dts/aspeed-bmc-delta-ahe50dc.dts | 418 +
.../arm/boot/dts/aspeed-bmc-facebook-bletchley.dts | 213 +-
.../boot/dts/aspeed-bmc-facebook-cloudripper.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-facebook-elbert.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-facebook-fuji.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-facebook-wedge400.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-ibm-bonnell.dts | 921 +
arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts | 57 +-
arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts | 244 +-
arch/arm/boot/dts/aspeed-bmc-opp-mihawk.dts | 1381 -
arch/arm/boot/dts/aspeed-g6.dtsi | 4 +
.../boot/dts/ast2600-facebook-netbmc-common.dtsi | 2 +-
arch/arm/boot/dts/at91-sam9x60ek.dts | 4 -
arch/arm/boot/dts/at91-sama7g5ek.dts | 5 +-
arch/arm/boot/dts/at91rm9200.dtsi | 2 +-
arch/arm/boot/dts/at91sam9g20ek_common.dtsi | 9 +
arch/arm/boot/dts/axp22x.dtsi | 6 +
arch/arm/boot/dts/axp809.dtsi | 7 +
arch/arm/boot/dts/axp81x.dtsi | 14 -
arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 31 +-
arch/arm/boot/dts/bcm2711-rpi-400.dts | 16 +-
arch/arm/boot/dts/bcm2711-rpi-cm4-io.dts | 27 +-
arch/arm/boot/dts/bcm2711-rpi-cm4.dtsi | 4 +-
arch/arm/boot/dts/bcm2711.dtsi | 95 +-
arch/arm/boot/dts/bcm2835-common.dtsi | 18 +-
arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 28 +-
arch/arm/boot/dts/bcm2835-rpi-a.dts | 12 +-
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 28 +-
arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 12 +-
arch/arm/boot/dts/bcm2835-rpi-b.dts | 12 +-
arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi | 6 +
arch/arm/boot/dts/bcm2835-rpi-common.dtsi | 17 +
arch/arm/boot/dts/bcm2835-rpi-zero-w.dts | 12 +-
arch/arm/boot/dts/bcm2835-rpi-zero.dts | 12 +-
arch/arm/boot/dts/bcm2835-rpi.dtsi | 10 -
arch/arm/boot/dts/bcm2835.dtsi | 1 -
arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 27 +-
arch/arm/boot/dts/bcm2836-rpi.dtsi | 1 +
arch/arm/boot/dts/bcm2836.dtsi | 4 +-
arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts | 27 +-
arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 27 +-
arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 11 +-
arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi | 8 -
arch/arm/boot/dts/bcm2837-rpi-zero-2-w.dts | 11 +-
arch/arm/boot/dts/bcm2837.dtsi | 2 +-
arch/arm/boot/dts/bcm283x-rpi-led-deprecated.dtsi | 18 +
arch/arm/boot/dts/bcm283x.dtsi | 70 +-
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts | 15 +-
arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts | 8 +-
.../dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi | 16 +-
arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 16 +-
arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 6 +-
arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 2 +-
arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 10 +-
arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts | 10 +-
arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 22 +-
arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts | 10 +-
arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 14 +-
arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts | 16 +-
arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 6 +-
arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 20 +-
arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts | 43 +-
arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 6 +-
arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 18 +-
arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 16 +-
arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 22 +-
arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts | 43 +-
arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts | 12 +-
arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 14 +-
arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts | 211 +
arch/arm/boot/dts/bcm47094-linksys-panamera.dts | 28 +-
arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 4 +-
arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts | 6 +-
arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 4 +-
arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 2 +-
arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 20 +-
arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 10 +-
arch/arm/boot/dts/bcm47094-netgear-r8500.dts | 14 +-
arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts | 4 +-
arch/arm/boot/dts/bcm47189-luxul-xap-810.dts | 10 +-
arch/arm/boot/dts/bcm47189-tenda-ac9.dts | 14 +-
arch/arm/boot/dts/bcm47622.dtsi | 1 +
arch/arm/boot/dts/bcm53016-dlink-dwl-8610ap.dts | 131 +
arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 6 +-
arch/arm/boot/dts/bcm63148.dtsi | 1 +
arch/arm/boot/dts/bcm63178.dtsi | 1 +
arch/arm/boot/dts/bcm6756.dtsi | 1 +
arch/arm/boot/dts/bcm6846.dtsi | 1 +
arch/arm/boot/dts/bcm6855.dtsi | 1 +
arch/arm/boot/dts/bcm6878.dtsi | 1 +
arch/arm/boot/dts/bcm947189acdbmr.dts | 6 +-
arch/arm/boot/dts/dove.dtsi | 2 +-
arch/arm/boot/dts/dra7-evm-common.dtsi | 2 +-
arch/arm/boot/dts/dra7-evm.dts | 2 +-
arch/arm/boot/dts/dra72-evm-common.dtsi | 4 +-
arch/arm/boot/dts/e60k02.dtsi | 11 +-
arch/arm/boot/dts/exynos3250.dtsi | 2 +-
arch/arm/boot/dts/imx6dl-colibri-aster.dts | 1 -
arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts | 1 -
arch/arm/boot/dts/imx6dl-colibri-iris.dts | 1 -
arch/arm/boot/dts/imx6q-prti6q.dts | 4 +-
arch/arm/boot/dts/imx6qdl-colibri.dtsi | 22 +-
arch/arm/boot/dts/imx6qdl-pico.dtsi | 1 -
arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | 4 +-
arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 5 +
arch/arm/boot/dts/imx6qdl-sabresd.dtsi | 8 +-
arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 1 -
arch/arm/boot/dts/imx6sl-kobo-aura2.dts | 555 +
arch/arm/boot/dts/imx6sl-tolino-shine2hd.dts | 30 +-
arch/arm/boot/dts/imx6sl-tolino-shine3.dts | 7 +
arch/arm/boot/dts/imx6sll-kobo-clarahd.dts | 7 +
arch/arm/boot/dts/imx6sx.dtsi | 2 +-
arch/arm/boot/dts/imx6ul-phytec-phycore-som.dtsi | 4 +
arch/arm/boot/dts/imx6ull-colibri-aster.dts | 40 +
arch/arm/boot/dts/imx6ull-colibri-eval-v3.dts | 24 +
arch/arm/boot/dts/imx6ull-colibri-iris-v2.dts | 48 +-
arch/arm/boot/dts/imx6ull-colibri-iris.dts | 22 +-
arch/arm/boot/dts/imx6ull-colibri-iris.dtsi | 4 +-
arch/arm/boot/dts/imx6ull-colibri-wifi-aster.dts | 40 +
arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dts | 24 +
arch/arm/boot/dts/imx6ull-colibri-wifi-iris-v2.dts | 32 +-
arch/arm/boot/dts/imx6ull-colibri-wifi-iris.dts | 20 +
arch/arm/boot/dts/imx6ull-colibri.dtsi | 37 +-
arch/arm/boot/dts/imx7-colibri.dtsi | 5 +-
arch/arm/boot/dts/imx7d-remarkable2.dts | 62 +
arch/arm/boot/dts/imx7s.dtsi | 4 +-
arch/arm/boot/dts/kirkwood-b3.dts | 2 +-
arch/arm/boot/dts/kirkwood-db-88f6281.dts | 2 +-
arch/arm/boot/dts/kirkwood-db-88f6282.dts | 2 +-
arch/arm/boot/dts/kirkwood-dir665.dts | 14 +-
arch/arm/boot/dts/kirkwood-ds112.dts | 2 +-
arch/arm/boot/dts/kirkwood-ds411.dts | 2 +-
arch/arm/boot/dts/kirkwood-iconnect.dts | 2 +-
arch/arm/boot/dts/kirkwood-km_common.dtsi | 2 +-
arch/arm/boot/dts/kirkwood-l-50.dts | 24 +-
arch/arm/boot/dts/kirkwood-laplug.dts | 2 +-
arch/arm/boot/dts/kirkwood-linkstation.dtsi | 2 +-
arch/arm/boot/dts/kirkwood-mplcec4.dts | 16 +-
arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts | 2 +-
arch/arm/boot/dts/kirkwood-nas2big.dts | 2 +-
arch/arm/boot/dts/kirkwood-net2big.dts | 10 +-
arch/arm/boot/dts/kirkwood-net5big.dts | 10 +-
.../boot/dts/kirkwood-netgear_readynas_nv+_v2.dts | 12 +-
arch/arm/boot/dts/kirkwood-nsa310.dts | 2 +-
arch/arm/boot/dts/kirkwood-nsa310s.dts | 259 +
arch/arm/boot/dts/kirkwood-nsa320.dts | 2 +-
arch/arm/boot/dts/kirkwood-nsa325.dts | 2 +-
arch/arm/boot/dts/kirkwood-nsa3x0-common.dtsi | 2 +-
arch/arm/boot/dts/kirkwood-rd88f6192.dts | 60 +-
arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts | 2 +-
arch/arm/boot/dts/kirkwood-rd88f6281.dtsi | 4 +-
arch/arm/boot/dts/kirkwood-rs212.dts | 2 +-
arch/arm/boot/dts/kirkwood-synology.dtsi | 2 +-
arch/arm/boot/dts/kirkwood-t5325.dts | 2 +-
arch/arm/boot/dts/kirkwood-ts219.dtsi | 4 +-
arch/arm/boot/dts/kirkwood.dtsi | 34 +-
arch/arm/boot/dts/lan966x-pcb8290.dts | 16 +
arch/arm/boot/dts/lan966x.dtsi | 5 +
arch/arm/boot/dts/logicpd-torpedo-baseboard.dtsi | 2 +-
arch/arm/boot/dts/logicpd-torpedo-som.dtsi | 2 +-
arch/arm/boot/dts/lpc32xx.dtsi | 2 +-
arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts | 10 +-
arch/arm/boot/dts/motorola-mapphone-common.dtsi | 4 +-
arch/arm/boot/dts/nuvoton-npcm730-gbs.dts | 2 +-
arch/arm/boot/dts/nuvoton-npcm730-gsj.dts | 2 +-
arch/arm/boot/dts/nuvoton-npcm730-kudo.dts | 6 +-
arch/arm/boot/dts/nuvoton-npcm750-evb.dts | 4 +-
.../boot/dts/nuvoton-npcm750-runbmc-olympus.dts | 6 +-
.../dts/nuvoton-wpcm450-supermicro-x9sci-ln4f.dts | 36 +-
arch/arm/boot/dts/nuvoton-wpcm450.dtsi | 34 +-
arch/arm/boot/dts/omap-gpmc-smsc911x.dtsi | 6 +-
arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi | 6 +-
arch/arm/boot/dts/omap3-beagle.dts | 6 +-
arch/arm/boot/dts/omap3-cm-t3517.dts | 12 +-
arch/arm/boot/dts/omap3-devkit8000-common.dtsi | 8 +-
arch/arm/boot/dts/omap3-echo.dts | 2 +-
arch/arm/boot/dts/omap3-gta04.dtsi | 8 +-
arch/arm/boot/dts/omap3-ldp.dts | 2 +-
arch/arm/boot/dts/omap3-n900.dts | 42 +-
arch/arm/boot/dts/omap3-overo-alto35-common.dtsi | 8 +-
.../boot/dts/omap3-overo-chestnut43-common.dtsi | 4 +-
arch/arm/boot/dts/omap3-overo-gallop43-common.dtsi | 4 +-
arch/arm/boot/dts/omap3-overo-palo35-common.dtsi | 4 +-
arch/arm/boot/dts/omap3-overo-palo43-common.dtsi | 4 +-
arch/arm/boot/dts/omap3-overo-summit-common.dtsi | 2 +-
arch/arm/boot/dts/omap3-overo-tobi-common.dtsi | 2 +-
arch/arm/boot/dts/omap3-zoom3.dts | 44 +-
arch/arm/boot/dts/omap3.dtsi | 40 +-
arch/arm/boot/dts/omap34xx.dtsi | 4 +
arch/arm/boot/dts/omap36xx.dtsi | 4 +
arch/arm/boot/dts/omap4-cpu-thermal.dtsi | 24 +-
arch/arm/boot/dts/omap4-panda-common.dtsi | 4 +-
arch/arm/boot/dts/omap4-panda-es.dts | 4 +-
arch/arm/boot/dts/omap5-cm-t54.dts | 64 +-
arch/arm/boot/dts/pxa168.dtsi | 2 +
arch/arm/boot/dts/qcom-apq8026-asus-sparrow.dts | 2 +-
arch/arm/boot/dts/qcom-apq8026-huawei-sturgeon.dts | 376 +
arch/arm/boot/dts/qcom-apq8026-lg-lenok.dts | 9 +-
.../boot/dts/qcom-apq8026-samsung-matisse-wifi.dts | 453 +
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | 1754 +-
arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts | 524 +-
arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts | 390 +-
arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 561 +-
.../dts/qcom-apq8064-sony-xperia-lagan-yuga.dts | 650 +-
arch/arm/boot/dts/qcom-apq8064.dtsi | 149 +-
arch/arm/boot/dts/qcom-apq8074-dragonboard.dts | 60 +-
arch/arm/boot/dts/qcom-apq8084.dtsi | 10 +-
arch/arm/boot/dts/qcom-ipq4018-ap120c-ac-bit.dts | 6 +-
arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dts | 6 +-
arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dtsi | 2 +-
arch/arm/boot/dts/qcom-ipq4018-jalapeno.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019.dtsi | 2 +-
arch/arm/boot/dts/qcom-ipq8064-rb3011.dts | 5 +-
arch/arm/boot/dts/qcom-ipq8064.dtsi | 7 +-
.../boot/dts/qcom-mdm9615-wp8548-mangoh-green.dts | 59 +-
arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi | 61 +-
arch/arm/boot/dts/qcom-mdm9615.dtsi | 123 +-
arch/arm/boot/dts/qcom-msm8226-samsung-s3ve3g.dts | 1 +
arch/arm/boot/dts/qcom-msm8226.dtsi | 78 +-
arch/arm/boot/dts/qcom-msm8660.dtsi | 42 +-
arch/arm/boot/dts/qcom-msm8960-cdp.dts | 23 +-
arch/arm/boot/dts/qcom-msm8960.dtsi | 92 +-
.../dts/qcom-msm8974-lge-nexus5-hammerhead.dts | 83 +-
.../dts/qcom-msm8974-sony-xperia-rhine-amami.dts | 1 +
.../dts/qcom-msm8974-sony-xperia-rhine-honami.dts | 1 +
.../boot/dts/qcom-msm8974-sony-xperia-rhine.dtsi | 70 +-
arch/arm/boot/dts/qcom-msm8974.dtsi | 174 +-
.../arm/boot/dts/qcom-msm8974pro-fairphone-fp2.dts | 75 +-
.../arm/boot/dts/qcom-msm8974pro-oneplus-bacon.dts | 417 +
arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts | 83 +-
.../qcom-msm8974pro-sony-xperia-shinano-castor.dts | 86 +-
arch/arm/boot/dts/qcom-pm8226.dtsi | 12 +-
arch/arm/boot/dts/qcom-pm8941.dtsi | 33 +-
arch/arm/boot/dts/qcom-pma8084.dtsi | 19 +-
arch/arm/boot/dts/qcom-pmx65.dtsi | 2 +-
arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts | 45 +-
arch/arm/boot/dts/qcom-sdx55.dtsi | 1 +
arch/arm/boot/dts/qcom-sdx65.dtsi | 4 +-
arch/arm/boot/dts/r8a7742.dtsi | 2 +-
arch/arm/boot/dts/r8a7790.dtsi | 2 +-
arch/arm/boot/dts/r8a7791.dtsi | 2 +-
arch/arm/boot/dts/r8a7793.dtsi | 2 +-
arch/arm/boot/dts/r9a06g032.dtsi | 10 +-
arch/arm/boot/dts/rk3036-evb.dts | 3 +-
arch/arm/boot/dts/rk3066a-mk808.dts | 2 +-
arch/arm/boot/dts/rk3188-radxarock.dts | 2 +-
arch/arm/boot/dts/rk3188.dtsi | 3 +-
arch/arm/boot/dts/rk3288-evb-act8846.dts | 2 +-
arch/arm/boot/dts/rk3288-evb.dtsi | 6 +-
arch/arm/boot/dts/rk3288-firefly.dtsi | 3 +-
arch/arm/boot/dts/rk3288-miqi.dts | 3 +-
arch/arm/boot/dts/rk3288-rock2-square.dts | 3 +-
arch/arm/boot/dts/rk3288-vmarc-som.dtsi | 1 -
arch/arm/boot/dts/rk3xxx.dtsi | 7 +
arch/arm/boot/dts/sama7g5-pinfunc.h | 2 +-
arch/arm/boot/dts/sama7g5.dtsi | 67 +-
arch/arm/boot/dts/socfpga.dtsi | 4 +-
arch/arm/boot/dts/socfpga_arria10.dtsi | 4 +-
arch/arm/boot/dts/socfpga_arria10_mercury_aa1.dtsi | 1 +
arch/arm/boot/dts/socfpga_arria10_socdk_nand.dts | 4 +-
arch/arm/boot/dts/socfpga_arria10_socdk_sdmmc.dts | 1 +
arch/arm/boot/dts/socfpga_arria5.dtsi | 3 +-
arch/arm/boot/dts/socfpga_arria5_socdk.dts | 8 +-
arch/arm/boot/dts/socfpga_cyclone5.dtsi | 3 +-
.../arm/boot/dts/socfpga_cyclone5_de0_nano_soc.dts | 2 +-
arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi | 1 +
arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 8 +-
arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts | 2 +-
arch/arm/boot/dts/socfpga_vt.dts | 2 +-
arch/arm/boot/dts/spear300.dtsi | 2 +-
arch/arm/boot/dts/spear310.dtsi | 2 +-
arch/arm/boot/dts/spear320.dtsi | 2 +-
arch/arm/boot/dts/spear600.dtsi | 32 +-
arch/arm/boot/dts/ste-dbx5x0.dtsi | 6 +-
arch/arm/boot/dts/ste-ux500-samsung-codina-tmo.dts | 2 +-
arch/arm/boot/dts/ste-ux500-samsung-codina.dts | 2 +-
arch/arm/boot/dts/ste-ux500-samsung-gavini.dts | 2 +-
arch/arm/boot/dts/ste-ux500-samsung-janice.dts | 16 +-
arch/arm/boot/dts/ste-ux500-samsung-kyle.dts | 29 +
arch/arm/boot/dts/stih410-b2260.dts | 8 +-
arch/arm/boot/dts/stih418-b2199.dts | 4 +-
arch/arm/boot/dts/stih418-b2264.dts | 2 +-
arch/arm/boot/dts/stihxxx-b2120.dtsi | 4 +-
arch/arm/boot/dts/stm32h743.dtsi | 2 -
arch/arm/boot/dts/stm32mp13-pinctrl.dtsi | 21 +
arch/arm/boot/dts/stm32mp131.dtsi | 126 +-
arch/arm/boot/dts/stm32mp133.dtsi | 31 +
arch/arm/boot/dts/stm32mp135f-dk.dts | 144 +-
arch/arm/boot/dts/stm32mp151.dtsi | 3 -
arch/arm/boot/dts/stm32mp151a-dhcor-testbench.dts | 17 +
arch/arm/boot/dts/stm32mp157a-dhcor-avenger96.dts | 1 -
arch/arm/boot/dts/stm32mp157c-emstamp-argon.dtsi | 2 +-
arch/arm/boot/dts/stm32mp157c-ev1.dts | 15 +-
arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts | 2 +-
arch/arm/boot/dts/stm32mp157c-odyssey.dts | 2 +-
arch/arm/boot/dts/stm32mp15xx-dhcom-pdk2.dtsi | 4 +-
arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi | 2 +-
arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi | 7 +-
.../boot/dts/stm32mp15xx-dhcor-drc-compact.dtsi | 2 +-
arch/arm/boot/dts/stm32mp15xx-dhcor-testbench.dtsi | 171 +
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 6 +-
arch/arm/boot/dts/suniv-f1c100s.dtsi | 70 +
arch/arm/boot/dts/sunplus-sp7021.dtsi | 3 -
arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi | 14 +-
arch/arm/boot/dts/sunxi-h3-h5.dtsi | 4 +
arch/arm/boot/dts/tegra114-asus-tf701t.dts | 24 +-
arch/arm/boot/dts/tegra124-nyan-big.dts | 3 +-
arch/arm/boot/dts/tegra124-nyan-blaze.dts | 3 +-
arch/arm/boot/dts/tegra124-venice2.dts | 3 +-
arch/arm/boot/dts/tegra20-acer-a500-picasso.dts | 6 +-
arch/arm/boot/dts/tegra20-asus-tf101.dts | 8 +-
arch/arm/boot/dts/tegra20-seaboard.dts | 6 +-
arch/arm/boot/dts/tegra20-tamonten.dtsi | 6 +-
arch/arm/boot/dts/tegra20-ventana.dts | 6 +-
.../boot/dts/tegra30-asus-transformer-common.dtsi | 10 +-
arch/arm/boot/dts/tegra30-pegatron-chagall.dts | 11 +-
arch/arm/boot/dts/uniphier-pro5-epcore.dts | 76 +
arch/arm/boot/dts/uniphier-pro5-proex.dts | 59 +
arch/arm/boot/dts/vexpress-v2m.dtsi | 16 +-
arch/arm/boot/dts/vf610-zii-dev-rev-c.dts | 2 +-
arch/arm/common/Makefile | 2 -
arch/arm/common/mcpm_head.S | 2 +
arch/arm/common/vlock.S | 2 +
arch/arm/configs/clps711x_defconfig | 3 +-
arch/arm/configs/collie_defconfig | 3 +-
arch/arm/configs/imx_v6_v7_defconfig | 5 +
arch/arm/configs/multi_v4t_defconfig | 3 +-
arch/arm/configs/multi_v7_defconfig | 8 +-
arch/arm/configs/omap1_defconfig | 3 +-
arch/arm/configs/pxa_defconfig | 3 +-
arch/arm/configs/qcom_defconfig | 5 +
arch/arm/configs/sama5_defconfig | 2 +-
arch/arm/configs/sama7_defconfig | 11 +-
arch/arm/configs/spear6xx_defconfig | 7 +-
arch/arm/configs/tct_hammer_defconfig | 3 +-
arch/arm/configs/xcep_defconfig | 3 +-
arch/arm/crypto/Kconfig | 2 +-
arch/arm/crypto/aes-cipher-glue.c | 2 +-
arch/arm/crypto/nh-neon-core.S | 2 +-
arch/arm/crypto/nhpoly1305-neon-glue.c | 11 +-
arch/arm/include/asm/assembler.h | 6 +
arch/arm/include/asm/cputype.h | 4 +
arch/arm/include/asm/efi.h | 3 -
arch/arm/include/asm/gpio.h | 1 -
arch/arm/include/asm/module.h | 5 +
arch/arm/include/asm/perf_event.h | 2 +-
arch/arm/include/asm/pgtable-nommu.h | 8 -
arch/arm/include/asm/pgtable.h | 20 +-
arch/arm/include/asm/ptdump.h | 1 +
arch/arm/include/asm/ptrace.h | 4 +
arch/arm/include/asm/stackprotector.h | 9 +-
arch/arm/include/asm/stacktrace.h | 2 +-
arch/arm/include/asm/vfp.h | 6 +
arch/arm/include/asm/xor.h | 4 +-
arch/arm/include/uapi/asm/hwcap.h | 8 +
arch/arm/kernel/Makefile | 2 -
arch/arm/kernel/efi.c | 31 +-
arch/arm/kernel/hyp-stub.S | 2 +
arch/arm/kernel/machine_kexec.c | 4 +-
arch/arm/kernel/module-plts.c | 14 +
arch/arm/kernel/perf_callchain.c | 9 +-
arch/arm/kernel/process.c | 2 +-
arch/arm/kernel/ptrace.c | 8 +-
arch/arm/kernel/return_address.c | 8 +-
arch/arm/kernel/setup.c | 22 +
arch/arm/kernel/smp.c | 5 +-
arch/arm/kernel/stacktrace.c | 119 +-
arch/arm/kernel/swp_emulate.c | 1 +
arch/arm/kernel/traps.c | 25 +-
arch/arm/kernel/unwind.c | 13 +-
arch/arm/lib/Makefile | 6 +-
arch/arm/lib/delay-loop.S | 4 +
arch/arm/lib/error-inject.c | 10 +
arch/arm/lib/findbit.S | 230 +-
arch/arm/mach-at91/Makefile | 3 -
arch/arm/mach-at91/pm_suspend.S | 4 +
arch/arm/mach-at91/sama5.c | 2 +-
arch/arm/mach-imx/Makefile | 3 -
arch/arm/mach-imx/headsmp.S | 2 +
arch/arm/mach-imx/mm-imx3.c | 1 -
arch/arm/mach-imx/resume-imx6.S | 2 +
arch/arm/mach-imx/suspend-imx6.S | 2 +
arch/arm/mach-ixp4xx/ixp4xx-of.c | 42 -
arch/arm/mach-keystone/Makefile | 4 +-
arch/arm/mach-keystone/keystone.c | 2 -
arch/arm/mach-keystone/keystone.h | 5 -
arch/arm/mach-keystone/platsmp.c | 41 -
arch/arm/mach-keystone/smc.S | 26 -
arch/arm/mach-mmp/time.c | 11 +-
arch/arm/mach-mvebu/Makefile | 3 -
arch/arm/mach-mvebu/coherency_ll.S | 1 +
arch/arm/mach-mvebu/pm-board.c | 28 +-
arch/arm/mach-mvebu/pmsu.c | 1 +
arch/arm/mach-mxs/mach-mxs.c | 5 +-
arch/arm/mach-npcm/Makefile | 2 -
arch/arm/mach-npcm/headsmp.S | 2 +
arch/arm/mach-omap1/sram-init.c | 8 +-
arch/arm/mach-omap2/board-n8x0.c | 5 -
arch/arm/mach-omap2/common-board-devices.h | 2 -
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 99 -
arch/arm/mach-omap2/pdata-quirks.c | 2 -
arch/arm/mach-omap2/sram.c | 8 +-
arch/arm/mach-pxa/pxa27x.c | 8 +
arch/arm/mach-pxa/pxa3xx.c | 8 +
arch/arm/mach-s3c/mach-crag6410.c | 1 +
arch/arm/mach-shmobile/Kconfig | 2 -
arch/arm/mach-spear/time.c | 8 +-
arch/arm/mach-tegra/Makefile | 2 -
arch/arm/mach-tegra/reset-handler.S | 2 +
arch/arm/mach-tegra/sleep-tegra20.S | 2 +
arch/arm/mach-tegra/sleep-tegra30.S | 2 +
arch/arm/mach-tegra/sleep.S | 2 +
arch/arm/mach-ux500/cpu-db8500.c | 1 -
arch/arm/mach-ux500/db8500-regs.h | 195 -
arch/arm/mach-ux500/platsmp.c | 2 -
arch/arm/mach-ux500/pm.c | 4 +-
arch/arm/mm/Makefile | 15 -
arch/arm/mm/abort-ev6.S | 1 +
arch/arm/mm/abort-ev7.S | 1 +
arch/arm/mm/cache-v6.S | 2 +
arch/arm/mm/cache-v7.S | 2 +
arch/arm/mm/cache-v7m.S | 2 +
arch/arm/mm/copypage-feroceon.c | 1 +
arch/arm/mm/dma-mapping.c | 17 -
arch/arm/mm/fault.c | 23 +-
arch/arm/mm/fault.h | 9 +-
arch/arm/mm/nommu.c | 19 +
arch/arm/mm/proc-v6.S | 2 +
arch/arm/mm/proc-v7-2level.S | 2 +
arch/arm/mm/proc-v7.S | 2 +
arch/arm/mm/tlb-v6.S | 2 +
arch/arm/mm/tlb-v7.S | 2 +
arch/arm/nwfpe/Makefile | 6 +
arch/arm/vdso/Makefile | 1 +
arch/arm/vfp/vfpmodule.c | 32 +
arch/arm/xen/enlighten.c | 2 +-
arch/arm64/Kconfig | 45 +-
arch/arm64/Kconfig.platforms | 2 -
arch/arm64/Makefile | 17 +-
arch/arm64/boot/dts/allwinner/axp803.dtsi | 10 -
.../boot/dts/allwinner/sun50i-a64-pinebook.dts | 14 +
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 1 +
.../dts/allwinner/sun50i-h616-orangepi-zero2.dts | 41 +
.../boot/dts/allwinner/sun50i-h616-x96-mate.dts | 25 +
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 160 +
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi | 1 +
.../boot/dts/altera/socfpga_stratix10_socdk.dts | 7 +-
.../dts/altera/socfpga_stratix10_socdk_nand.dts | 6 +-
arch/arm64/boot/dts/amlogic/Makefile | 1 +
arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 1 +
arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 1 +
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 6 +
arch/arm64/boot/dts/amlogic/meson-g12a.dtsi | 5 +
.../dts/amlogic/meson-g12b-odroid-go-ultra.dts | 722 +
.../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 42 +
arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 5 +
arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 1 +
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 14 +
.../dts/amlogic/meson-gxl-s905x-khadas-vim.dts | 1 -
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 14 +
.../boot/dts/amlogic/meson-gxm-khadas-vim2.dts | 1 -
.../boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts | 1 -
arch/arm64/boot/dts/amlogic/meson-sm1.dtsi | 5 +
arch/arm64/boot/dts/apple/Makefile | 6 +
arch/arm64/boot/dts/apple/multi-die-cpp.h | 22 +
arch/arm64/boot/dts/apple/t6000-j314s.dts | 18 +
arch/arm64/boot/dts/apple/t6000-j316s.dts | 18 +
arch/arm64/boot/dts/apple/t6000.dtsi | 18 +
arch/arm64/boot/dts/apple/t6001-j314c.dts | 18 +
arch/arm64/boot/dts/apple/t6001-j316c.dts | 18 +
arch/arm64/boot/dts/apple/t6001-j375c.dts | 18 +
arch/arm64/boot/dts/apple/t6001.dtsi | 63 +
arch/arm64/boot/dts/apple/t6002-j375d.dts | 50 +
arch/arm64/boot/dts/apple/t6002.dtsi | 301 +
arch/arm64/boot/dts/apple/t600x-common.dtsi | 374 +
arch/arm64/boot/dts/apple/t600x-die0.dtsi | 361 +
arch/arm64/boot/dts/apple/t600x-dieX.dtsi | 121 +
arch/arm64/boot/dts/apple/t600x-gpio-pins.dtsi | 45 +
arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi | 114 +
arch/arm64/boot/dts/apple/t600x-j375.dtsi | 117 +
arch/arm64/boot/dts/apple/t600x-nvme.dtsi | 42 +
arch/arm64/boot/dts/apple/t600x-pmgr.dtsi | 2012 +
arch/arm64/boot/dts/apple/t8103-j274.dts | 4 +
arch/arm64/boot/dts/apple/t8103-j293.dts | 4 +
arch/arm64/boot/dts/apple/t8103-j313.dts | 4 +
arch/arm64/boot/dts/apple/t8103-j456.dts | 6 +-
arch/arm64/boot/dts/apple/t8103-j457.dts | 6 +-
arch/arm64/boot/dts/apple/t8103-jxxx.dtsi | 12 +
arch/arm64/boot/dts/apple/t8103-pmgr.dtsi | 2 +-
arch/arm64/boot/dts/apple/t8103.dtsi | 322 +-
arch/arm64/boot/dts/arm/corstone1000.dtsi | 1 +
arch/arm64/boot/dts/arm/foundation-v8.dtsi | 6 +
arch/arm64/boot/dts/arm/fvp-base-revc.dts | 73 +
arch/arm64/boot/dts/arm/juno-r1.dts | 2 +
arch/arm64/boot/dts/arm/juno-r2.dts | 2 +
arch/arm64/boot/dts/arm/juno.dts | 2 +
arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts | 1 +
.../boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts | 1 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 6 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi | 1 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi | 1 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi | 1 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi | 1 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi | 1 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi | 20 +
.../arm64/boot/dts/broadcom/northstar2/ns2-svk.dts | 2 +-
.../arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts | 2 +-
arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi | 1 +
.../arm64/boot/dts/broadcom/stingray/stingray.dtsi | 4 +
arch/arm64/boot/dts/freescale/Makefile | 2 +
...028a-qds-13bb.dts => fsl-ls1028a-qds-13bb.dtso} | 0
...028a-qds-65bb.dts => fsl-ls1028a-qds-65bb.dtso} | 0
...028a-qds-7777.dts => fsl-ls1028a-qds-7777.dtso} | 0
...028a-qds-85bb.dts => fsl-ls1028a-qds-85bb.dtso} | 0
...028a-qds-899b.dts => fsl-ls1028a-qds-899b.dtso} | 0
...028a-qds-9999.dts => fsl-ls1028a-qds-9999.dtso} | 0
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 1 +
arch/arm64/boot/dts/freescale/fsl-ls1043-post.dtsi | 24 +
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 1 +
arch/arm64/boot/dts/freescale/fsl-ls1046-post.dtsi | 25 +
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 1 +
arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi | 4 +
arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi | 4 +
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 8 +
arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi | 39 +
arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi | 164 +
arch/arm64/boot/dts/freescale/imx8-ss-lsio.dtsi | 17 +-
arch/arm64/boot/dts/freescale/imx8dxl-evk.dts | 107 +
arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi | 20 +
arch/arm64/boot/dts/freescale/imx8dxl-ss-conn.dtsi | 10 +
arch/arm64/boot/dts/freescale/imx8dxl-ss-lsio.dtsi | 46 +
arch/arm64/boot/dts/freescale/imx8dxl.dtsi | 7 +
.../boot/dts/freescale/imx8mm-beacon-som.dtsi | 6 +-
.../dts/freescale/imx8mm-data-modul-edm-sbc.dts | 24 +-
arch/arm64/boot/dts/freescale/imx8mm-evk.dts | 6 +-
arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi | 6 +
.../dts/freescale/imx8mm-innocomm-wb15-evk.dts | 146 +
.../boot/dts/freescale/imx8mm-innocomm-wb15.dtsi | 480 +
.../boot/dts/freescale/imx8mm-kontron-osm-s.dtsi | 4 +-
.../boot/dts/freescale/imx8mm-kontron-sl.dtsi | 4 +-
arch/arm64/boot/dts/freescale/imx8mm-phg.dts | 266 +
.../boot/dts/freescale/imx8mm-phycore-som.dtsi | 6 +-
arch/arm64/boot/dts/freescale/imx8mm-var-som.dtsi | 6 +-
.../boot/dts/freescale/imx8mm-venice-gw700x.dtsi | 30 +-
...219.dts => imx8mm-venice-gw72xx-0x-imx219.dtso} | 0
....dts => imx8mm-venice-gw72xx-0x-rs232-rts.dtso} | 0
...s422.dts => imx8mm-venice-gw72xx-0x-rs422.dtso} | 0
...s485.dts => imx8mm-venice-gw72xx-0x-rs485.dtso} | 0
...219.dts => imx8mm-venice-gw73xx-0x-imx219.dtso} | 0
....dts => imx8mm-venice-gw73xx-0x-rs232-rts.dtso} | 0
...s422.dts => imx8mm-venice-gw73xx-0x-rs422.dtso} | 0
...s485.dts => imx8mm-venice-gw73xx-0x-rs485.dtso} | 0
.../boot/dts/freescale/imx8mm-venice-gw7901.dts | 54 +-
.../boot/dts/freescale/imx8mm-venice-gw7902.dts | 66 +-
.../boot/dts/freescale/imx8mm-venice-gw7903.dts | 42 +-
.../boot/dts/freescale/imx8mm-venice-gw7904.dts | 54 +-
arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 16 +-
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 6 +-
.../boot/dts/freescale/imx8mn-beacon-som.dtsi | 6 +-
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts | 6 +-
arch/arm64/boot/dts/freescale/imx8mn-evk.dts | 3 +-
arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi | 47 +-
.../boot/dts/freescale/imx8mn-venice-gw7902.dts | 62 +-
arch/arm64/boot/dts/freescale/imx8mn.dtsi | 7 +-
.../arm64/boot/dts/freescale/imx8mp-dhcom-som.dtsi | 31 +-
arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 117 +-
.../dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts | 159 +-
.../boot/dts/freescale/imx8mp-venice-gw74xx.dts | 48 +-
.../boot/dts/freescale/imx8mp-verdin-dahlia.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 49 +-
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 34 +-
arch/arm64/boot/dts/freescale/imx8mq-evk.dts | 9 +-
.../boot/dts/freescale/imx8mq-librem5-devkit.dts | 22 +-
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi | 6 +-
arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi | 2 +
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 16 +-
arch/arm64/boot/dts/freescale/imx8qm-ss-lsio.dtsi | 38 +
arch/arm64/boot/dts/freescale/imx8qm.dtsi | 2 +
.../dts/freescale/imx8qxp-colibri-eval-v3.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8qxp-ss-lsio.dtsi | 25 +
arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx93.dtsi | 111 +
arch/arm64/boot/dts/freescale/mba8mx.dtsi | 1 +
arch/arm64/boot/dts/freescale/s32g2.dtsi | 2 +
arch/arm64/boot/dts/freescale/s32v234.dtsi | 2 +
arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 2 +
arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 2 +
arch/arm64/boot/dts/hisilicon/hip05.dtsi | 4 +
arch/arm64/boot/dts/hisilicon/hip06.dtsi | 4 +
arch/arm64/boot/dts/hisilicon/hip07.dtsi | 16 +
arch/arm64/boot/dts/intel/socfpga_agilex.dtsi | 1 +
arch/arm64/boot/dts/intel/socfpga_agilex_socdk.dts | 1 +
arch/arm64/boot/dts/intel/socfpga_n5x_socdk.dts | 1 +
arch/arm64/boot/dts/marvell/ac5-98dx25xx.dtsi | 1 +
.../boot/dts/marvell/armada-3720-turris-mox.dts | 4 +
arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 5 +
arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi | 1 +
arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi | 2 +
arch/arm64/boot/dts/marvell/armada-ap807-quad.dtsi | 2 +
arch/arm64/boot/dts/marvell/armada-ap80x.dtsi | 5 +
arch/arm64/boot/dts/marvell/armada-cp11x.dtsi | 17 +-
arch/arm64/boot/dts/mediatek/Makefile | 1 +
arch/arm64/boot/dts/mediatek/mt2712-evb.dts | 12 +-
arch/arm64/boot/dts/mediatek/mt2712e.dtsi | 28 +-
arch/arm64/boot/dts/mediatek/mt6779.dtsi | 10 +-
.../boot/dts/mediatek/mt6795-sony-xperia-m5.dts | 88 +
arch/arm64/boot/dts/mediatek/mt6795.dtsi | 109 +-
arch/arm64/boot/dts/mediatek/mt6797.dtsi | 2 +-
.../boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 1 -
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 1 -
arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts | 135 +-
arch/arm64/boot/dts/mediatek/mt7986a.dtsi | 139 +-
arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts | 57 +-
arch/arm64/boot/dts/mediatek/mt7986b.dtsi | 3 +
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 6 -
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 2 +-
arch/arm64/boot/dts/mediatek/mt8186.dtsi | 3 +
arch/arm64/boot/dts/mediatek/mt8192.dtsi | 3 +
arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi | 86 +
arch/arm64/boot/dts/mediatek/mt8195-demo.dts | 4 +-
arch/arm64/boot/dts/mediatek/mt8195.dtsi | 233 +-
arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi | 6 +-
arch/arm64/boot/dts/nvidia/tegra132-norrin.dts | 2 +-
arch/arm64/boot/dts/nvidia/tegra132.dtsi | 1 -
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 12 +-
arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi | 2 +-
.../arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi | 4 +-
arch/arm64/boot/dts/nvidia/tegra194-p3668.dtsi | 2 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 70 +-
arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi | 5 +-
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 4 +-
arch/arm64/boot/dts/nvidia/tegra210.dtsi | 61 +-
.../arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi | 8 +-
.../dts/nvidia/tegra234-p3737-0000+p3701-0000.dts | 21 +-
.../arm64/boot/dts/nvidia/tegra234-p3737-0000.dtsi | 14 +
arch/arm64/boot/dts/nvidia/tegra234.dtsi | 666 +-
arch/arm64/boot/dts/qcom/Makefile | 27 +-
arch/arm64/boot/dts/qcom/apq8016-sbc.dts | 16 +-
arch/arm64/boot/dts/qcom/apq8096-db820c.dts | 114 +-
arch/arm64/boot/dts/qcom/apq8096-ifc6640.dts | 70 +-
arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts | 11 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 25 +-
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 10 +-
arch/arm64/boot/dts/qcom/ipq8074-hk10-c1.dts | 3 +-
arch/arm64/boot/dts/qcom/ipq8074-hk10-c2.dts | 3 +-
arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi | 21 +-
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 134 +-
.../boot/dts/qcom/msm8916-alcatel-idol347.dts | 80 +-
arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dts | 24 +-
arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts | 24 +-
.../boot/dts/qcom/msm8916-longcheer-l8150.dts | 22 +-
.../boot/dts/qcom/msm8916-longcheer-l8910.dts | 8 +-
arch/arm64/boot/dts/qcom/msm8916-pins.dtsi | 276 +-
arch/arm64/boot/dts/qcom/msm8916-pm8916.dtsi | 2 +-
.../dts/qcom/msm8916-samsung-a2015-common.dtsi | 112 +-
.../boot/dts/qcom/msm8916-samsung-a3u-eur.dts | 14 +-
.../boot/dts/qcom/msm8916-samsung-a5u-eur.dts | 10 +-
.../dts/qcom/msm8916-samsung-e2015-common.dtsi | 28 +-
.../boot/dts/qcom/msm8916-samsung-grandmax.dts | 2 +-
arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts | 2 +-
.../boot/dts/qcom/msm8916-samsung-serranove.dts | 45 +-
.../boot/dts/qcom/msm8916-wingtech-wt88047.dts | 47 +-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 17 +-
arch/arm64/boot/dts/qcom/msm8953.dtsi | 314 +-
.../dts/qcom/msm8956-sony-xperia-loire-kugo.dts | 35 +
.../dts/qcom/msm8956-sony-xperia-loire-suzu.dts | 17 +
.../boot/dts/qcom/msm8956-sony-xperia-loire.dtsi | 282 +
arch/arm64/boot/dts/qcom/msm8956.dtsi | 18 +
arch/arm64/boot/dts/qcom/msm8976.dtsi | 1198 +
.../boot/dts/qcom/msm8992-lg-bullhead-rev-10.dts | 3 +-
.../boot/dts/qcom/msm8992-lg-bullhead-rev-101.dts | 3 +-
arch/arm64/boot/dts/qcom/msm8992-lg-bullhead.dtsi | 45 +-
arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts | 4 +-
arch/arm64/boot/dts/qcom/msm8992.dtsi | 3 +-
.../dts/qcom/msm8994-huawei-angler-rev-101.dts | 3 +-
.../boot/dts/qcom/msm8994-msft-lumia-octagon.dtsi | 12 +-
.../dts/qcom/msm8994-sony-xperia-kitakami.dtsi | 10 +-
arch/arm64/boot/dts/qcom/msm8994.dtsi | 135 +-
.../boot/dts/qcom/msm8996-oneplus-common.dtsi | 787 +
arch/arm64/boot/dts/qcom/msm8996-oneplus3.dts | 44 +
arch/arm64/boot/dts/qcom/msm8996-oneplus3t.dts | 45 +
.../boot/dts/qcom/msm8996-sony-xperia-tone.dtsi | 29 +-
.../arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi | 17 +-
arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts | 11 +-
arch/arm64/boot/dts/qcom/msm8996.dtsi | 389 +-
...i-natrium.dts => msm8996pro-xiaomi-natrium.dts} | 9 +-
...i-scorpio.dts => msm8996pro-xiaomi-scorpio.dts} | 13 +-
arch/arm64/boot/dts/qcom/msm8996pro.dtsi | 291 +
arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi | 9 +-
arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dts | 28 +-
.../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 4 +-
arch/arm64/boot/dts/qcom/msm8998-mtp.dts | 16 +-
.../boot/dts/qcom/msm8998-oneplus-cheeseburger.dts | 12 +-
.../boot/dts/qcom/msm8998-oneplus-common.dtsi | 22 +-
.../boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi | 67 +-
arch/arm64/boot/dts/qcom/msm8998-xiaomi-sagit.dts | 711 +
arch/arm64/boot/dts/qcom/msm8998.dtsi | 95 +-
arch/arm64/boot/dts/qcom/pm6125.dtsi | 154 +
arch/arm64/boot/dts/qcom/pm6150.dtsi | 6 +-
arch/arm64/boot/dts/qcom/pm6150l.dtsi | 44 +-
arch/arm64/boot/dts/qcom/pm6350.dtsi | 41 +-
arch/arm64/boot/dts/qcom/pm660.dtsi | 4 +-
arch/arm64/boot/dts/qcom/pm660l.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pm7325.dtsi | 6 +-
arch/arm64/boot/dts/qcom/pm8005.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pm8150b.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pm8450a.dtsi | 77 +
arch/arm64/boot/dts/qcom/pm8916.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pm8950.dtsi | 165 +
arch/arm64/boot/dts/qcom/pm8994.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pm8998.dtsi | 12 +-
arch/arm64/boot/dts/qcom/pmi8950.dtsi | 97 +
arch/arm64/boot/dts/qcom/pmi8994.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pmi8998.dtsi | 10 +-
arch/arm64/boot/dts/qcom/pmk8350.dtsi | 22 +-
arch/arm64/boot/dts/qcom/pmp8074.dtsi | 125 +
arch/arm64/boot/dts/qcom/pms405.dtsi | 4 +-
arch/arm64/boot/dts/qcom/qcs404-evb-1000.dts | 4 +-
arch/arm64/boot/dts/qcom/qcs404-evb-4000.dts | 24 +-
arch/arm64/boot/dts/qcom/qcs404-evb.dtsi | 58 +-
arch/arm64/boot/dts/qcom/qcs404.dtsi | 70 +-
.../boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts | 62 +
arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 22 +-
arch/arm64/boot/dts/qcom/sa8155p-adp.dts | 82 +-
arch/arm64/boot/dts/qcom/sa8295p-adp.dts | 199 +-
arch/arm64/boot/dts/qcom/sa8540p-ride.dts | 270 +
arch/arm64/boot/dts/qcom/sa8540p.dtsi | 98 +
arch/arm64/boot/dts/qcom/sc7180-idp.dts | 236 +-
.../arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi | 36 +-
.../boot/dts/qcom/sc7180-trogdor-homestar.dtsi | 51 +-
.../boot/dts/qcom/sc7180-trogdor-kingoftown-r0.dts | 16 +-
.../boot/dts/qcom/sc7180-trogdor-kingoftown.dtsi | 9 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor.dtsi | 16 +-
.../boot/dts/qcom/sc7180-trogdor-mrbland-rev0.dtsi | 25 +-
.../boot/dts/qcom/sc7180-trogdor-mrbland.dtsi | 78 +-
.../dts/qcom/sc7180-trogdor-parade-ps8640.dtsi | 34 +-
.../boot/dts/qcom/sc7180-trogdor-pazquel.dtsi | 8 +-
.../dts/qcom/sc7180-trogdor-pazquel360-lte.dts | 22 +
.../dts/qcom/sc7180-trogdor-pazquel360-wifi.dts | 17 +
.../boot/dts/qcom/sc7180-trogdor-pazquel360.dtsi | 50 +
.../arm64/boot/dts/qcom/sc7180-trogdor-pompom.dtsi | 14 +-
.../dts/qcom/sc7180-trogdor-quackingstick.dtsi | 60 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts | 8 +-
.../boot/dts/qcom/sc7180-trogdor-ti-sn65dsi86.dtsi | 16 +-
.../dts/qcom/sc7180-trogdor-wormdingler-rev0.dtsi | 25 +-
...sc7180-trogdor-wormdingler-rev1-boe-rt5682s.dts | 1 +
...sc7180-trogdor-wormdingler-rev1-inx-rt5682s.dts | 1 +
.../boot/dts/qcom/sc7180-trogdor-wormdingler.dtsi | 78 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 668 +-
arch/arm64/boot/dts/qcom/sc7180.dtsi | 606 +-
arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi | 15 -
arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts | 8 +-
.../qcom/sc7280-herobrine-audio-rt5682-3mic.dtsi | 187 +
.../dts/qcom/sc7280-herobrine-audio-rt5682.dtsi | 122 +
.../dts/qcom/sc7280-herobrine-audio-wcd9385.dtsi | 20 -
arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts | 1 +
.../boot/dts/qcom/sc7280-herobrine-evoker-lte.dts | 16 +
.../boot/dts/qcom/sc7280-herobrine-evoker.dts | 16 +
...-evoker-r0.dts => sc7280-herobrine-evoker.dtsi} | 24 +-
.../dts/qcom/sc7280-herobrine-herobrine-r1.dts | 6 +-
.../boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi | 19 +
.../dts/qcom/sc7280-herobrine-villager-r1-lte.dts | 4 +-
.../boot/dts/qcom/sc7280-herobrine-villager-r1.dts | 31 +-
.../dts/qcom/sc7280-herobrine-villager-r1.dtsi | 37 +
.../boot/dts/qcom/sc7280-herobrine-villager.dtsi | 11 -
.../boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi | 11 +
.../boot/dts/qcom/sc7280-herobrine-zombie-lte.dts | 16 +
.../boot/dts/qcom/sc7280-herobrine-zombie.dts | 16 +
.../boot/dts/qcom/sc7280-herobrine-zombie.dtsi | 312 +
arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 73 +-
arch/arm64/boot/dts/qcom/sc7280-idp-ec-h1.dtsi | 10 +-
arch/arm64/boot/dts/qcom/sc7280-idp.dts | 6 -
arch/arm64/boot/dts/qcom/sc7280-idp.dtsi | 55 +-
arch/arm64/boot/dts/qcom/sc7280-qcard.dtsi | 22 +-
arch/arm64/boot/dts/qcom/sc7280.dtsi | 432 +-
arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 219 +-
.../dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 439 +-
arch/arm64/boot/dts/qcom/sc8280xp-pmics.dtsi | 84 +
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 786 +-
.../arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts | 14 +-
.../boot/dts/qcom/sdm630-sony-xperia-nile.dtsi | 24 +-
arch/arm64/boot/dts/qcom/sdm630.dtsi | 140 +-
arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts | 16 +-
.../dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts | 2 +-
.../arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts | 10 +-
arch/arm64/boot/dts/qcom/sdm660.dtsi | 3 +-
arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts | 531 +
arch/arm64/boot/dts/qcom/sdm670.dtsi | 1160 +
arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 49 +-
.../qcom/sdm845-db845c-navigation-mezzanine.dts | 104 +
arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 169 +-
arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi | 2 +-
.../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 39 +-
.../boot/dts/qcom/sdm845-samsung-starqltechn.dts | 460 +
arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts | 9 +
.../boot/dts/qcom/sdm845-sony-xperia-tama.dtsi | 2 +-
...ium.dts => sdm845-xiaomi-beryllium-common.dtsi} | 46 +-
.../boot/dts/qcom/sdm845-xiaomi-beryllium-ebbg.dts | 15 +
.../dts/qcom/sdm845-xiaomi-beryllium-tianma.dts | 15 +
arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dts | 36 +-
arch/arm64/boot/dts/qcom/sdm845.dtsi | 177 +-
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 10 +-
arch/arm64/boot/dts/qcom/sdm850-samsung-w737.dts | 24 +-
.../arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts | 241 +
arch/arm64/boot/dts/qcom/sm4250.dtsi | 38 +
arch/arm64/boot/dts/qcom/sm6115.dtsi | 1425 +
.../dts/qcom/sm6125-sony-xperia-seine-pdx201.dts | 164 +-
arch/arm64/boot/dts/qcom/sm6125.dtsi | 8 +-
.../dts/qcom/sm6350-sony-xperia-lena-pdx213.dts | 335 +
arch/arm64/boot/dts/qcom/sm6350.dtsi | 56 +-
.../dts/qcom/sm6375-sony-xperia-murray-pdx225.dts | 406 +
arch/arm64/boot/dts/qcom/sm6375.dtsi | 1396 +
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 37 +-
.../boot/dts/qcom/sm8150-microsoft-surface-duo.dts | 2 +-
.../boot/dts/qcom/sm8150-sony-xperia-kumano.dtsi | 10 +-
arch/arm64/boot/dts/qcom/sm8150.dtsi | 407 +-
arch/arm64/boot/dts/qcom/sm8250-mtp.dts | 40 +-
.../boot/dts/qcom/sm8250-sony-xperia-edo.dtsi | 41 +-
arch/arm64/boot/dts/qcom/sm8250.dtsi | 1205 +-
arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 20 +-
.../dts/qcom/sm8350-sony-xperia-sagami-pdx215.dts | 206 +
.../boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi | 604 +-
arch/arm64/boot/dts/qcom/sm8350.dtsi | 98 +-
arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 205 +
arch/arm64/boot/dts/qcom/sm8450-qrd.dts | 19 +
.../dts/qcom/sm8450-sony-xperia-nagara-pdx223.dts | 831 +-
.../dts/qcom/sm8450-sony-xperia-nagara-pdx224.dts | 234 +
.../boot/dts/qcom/sm8450-sony-xperia-nagara.dtsi | 631 +
arch/arm64/boot/dts/qcom/sm8450.dtsi | 600 +-
.../dts/renesas/aistarvision-mipi-adapter-2.1.dtsi | 1 -
arch/arm64/boot/dts/renesas/condor-common.dtsi | 1 +
...04xd12.dts => draak-ebisu-panel-aa104xd12.dtso} | 0
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 24 +-
.../boot/dts/renesas/r8a779f0-spider-cpu.dtsi | 30 +-
.../boot/dts/renesas/r8a779f0-spider-ethernet.dtsi | 90 +
arch/arm64/boot/dts/renesas/r8a779f0.dtsi | 126 +-
.../boot/dts/renesas/r8a779g0-white-hawk-cpu.dtsi | 89 +-
arch/arm64/boot/dts/renesas/r8a779g0.dtsi | 735 +-
arch/arm64/boot/dts/renesas/r9a07g043.dtsi | 362 +-
arch/arm64/boot/dts/renesas/r9a07g043u.dtsi | 73 +
arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts | 2 +-
arch/arm64/boot/dts/renesas/r9a07g044.dtsi | 17 +-
arch/arm64/boot/dts/renesas/r9a07g044c2-smarc.dts | 30 +
arch/arm64/boot/dts/renesas/r9a07g054.dtsi | 17 +-
arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dts | 4 +
arch/arm64/boot/dts/renesas/r9a09g011.dtsi | 31 +-
arch/arm64/boot/dts/renesas/rzg2l-smarc-som.dtsi | 5 -
arch/arm64/boot/dts/renesas/rzg2lc-smarc-som.dtsi | 5 -
arch/arm64/boot/dts/renesas/rzg2lc-smarc.dtsi | 28 -
.../boot/dts/renesas/rzg2ul-smarc-pinfunction.dtsi | 7 +
arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi | 7 -
...aa104xd12.dts => salvator-panel-aa104xd12.dtso} | 0
arch/arm64/boot/dts/rockchip/Makefile | 10 +
arch/arm64/boot/dts/rockchip/px30-evb.dts | 10 +-
.../boot/dts/rockchip/px30-ringneck-haikou.dts | 232 +
arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi | 382 +
arch/arm64/boot/dts/rockchip/rk3308-evb.dts | 12 +-
arch/arm64/boot/dts/rockchip/rk3308-roc-cc.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3308.dtsi | 1 +
arch/arm64/boot/dts/rockchip/rk3318-a95x-z2.dts | 2 +-
.../boot/dts/rockchip/rk3326-anbernic-rg351m.dts | 33 +
arch/arm64/boot/dts/rockchip/rk3326-odroid-go.dtsi | 600 +
.../boot/dts/rockchip/rk3326-odroid-go2-v11.dts | 156 +
arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts | 620 +-
arch/arm64/boot/dts/rockchip/rk3326-odroid-go3.dts | 185 +
arch/arm64/boot/dts/rockchip/rk3328.dtsi | 12 +
.../boot/dts/rockchip/rk3368-orion-r68-meta.dts | 3 +-
arch/arm64/boot/dts/rockchip/rk3368-r88.dts | 3 +-
.../boot/dts/rockchip/rk3399-gru-scarlet.dtsi | 4 -
.../boot/dts/rockchip/rk3399-khadas-edge.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4b.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi | 1 +
arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts | 4 +-
.../boot/dts/rockchip/rk3399-pinephone-pro.dts | 76 +
.../arm64/boot/dts/rockchip/rk3399-puma-haikou.dts | 2 +-
.../arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dts | 3 +-
arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dtsi | 2 +-
.../boot/dts/rockchip/rk3399-rock-4c-plus.dts | 6 +
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi | 1 -
arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi | 2 +
.../dts/rockchip/rk3399-sapphire-excavator.dts | 4 +-
arch/arm64/boot/dts/rockchip/rk3399.dtsi | 20 +
.../boot/dts/rockchip/rk3399pro-vmarc-som.dtsi | 3 +-
.../boot/dts/rockchip/rk3566-anbernic-rg353p.dts | 109 +-
.../boot/dts/rockchip/rk3566-anbernic-rg353v.dts | 114 +
.../boot/dts/rockchip/rk3566-anbernic-rg353vs.dts | 87 +
.../boot/dts/rockchip/rk3566-anbernic-rg353x.dtsi | 60 +
.../boot/dts/rockchip/rk3566-anbernic-rg503.dts | 79 +
.../boot/dts/rockchip/rk3566-anbernic-rgxx3.dtsi | 47 +-
arch/arm64/boot/dts/rockchip/rk3566-box-demo.dts | 503 +
arch/arm64/boot/dts/rockchip/rk3566-pinenote.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts | 7 +-
arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3566-roc-pc.dts | 42 +-
.../boot/dts/rockchip/rk3566-soquartz-blade.dts | 194 +
.../boot/dts/rockchip/rk3566-soquartz-cm4.dts | 11 +
.../boot/dts/rockchip/rk3566-soquartz-model-a.dts | 232 +
arch/arm64/boot/dts/rockchip/rk3566-soquartz.dtsi | 75 +
arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 1 -
arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts | 744 +
arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts | 147 +-
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 50 +-
arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi | 34 +-
arch/arm64/boot/dts/tesla/fsd-pinctrl.h | 6 +-
arch/arm64/boot/dts/ti/Makefile | 1 +
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 122 +
arch/arm64/boot/dts/ti/k3-am62-mcu.dtsi | 49 +
arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi | 4 +-
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 90 +-
arch/arm64/boot/dts/ti/k3-am625.dtsi | 51 +
arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 44 +-
arch/arm64/boot/dts/ti/k3-am64-mcu.dtsi | 6 +
arch/arm64/boot/dts/ti/k3-am642-evm.dts | 119 +-
arch/arm64/boot/dts/ti/k3-am642-sk.dts | 142 +-
arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi | 101 +-
arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 207 +-
arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi | 85 +-
arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi | 2 +
.../dts/ti/k3-am6528-iot2050-basic-common.dtsi | 1 +
arch/arm64/boot/dts/ti/k3-am654-base-board.dts | 113 +-
.../dts/ti/k3-am6548-iot2050-advanced-common.dtsi | 4 -
.../boot/dts/ti/k3-j7200-common-proc-board.dts | 48 +-
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 29 +
arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi | 8 +-
arch/arm64/boot/dts/ti/k3-j7200-som-p0.dtsi | 42 +-
arch/arm64/boot/dts/ti/k3-j721e-beagleboneai64.dts | 1055 +
.../boot/dts/ti/k3-j721e-common-proc-board.dts | 143 +-
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 125 +-
arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi | 11 +-
arch/arm64/boot/dts/ti/k3-j721e-sk.dts | 205 +-
arch/arm64/boot/dts/ti/k3-j721e-som-p0.dtsi | 33 +-
.../boot/dts/ti/k3-j721s2-common-proc-board.dts | 132 +-
arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi | 79 +-
arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi | 9 +-
arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi | 98 +-
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 33 +
arch/arm64/configs/defconfig | 43 +-
arch/arm64/crypto/Kconfig | 49 +-
arch/arm64/crypto/Makefile | 9 +
arch/arm64/crypto/aes-ce-glue.c | 2 +-
arch/arm64/crypto/aes-cipher-glue.c | 2 +-
arch/arm64/crypto/aes-modes.S | 34 +-
arch/arm64/crypto/aes-neonbs-core.S | 16 +-
arch/arm64/crypto/crct10dif-ce-core.S | 5 +-
arch/arm64/crypto/ghash-ce-core.S | 8 +-
arch/arm64/crypto/ghash-ce-glue.c | 2 +-
arch/arm64/crypto/nh-neon-core.S | 5 +-
arch/arm64/crypto/nhpoly1305-neon-glue.c | 11 +-
arch/arm64/crypto/sm3-ce-glue.c | 2 +-
arch/arm64/crypto/sm3-neon-core.S | 601 +
arch/arm64/crypto/sm3-neon-glue.c | 103 +
arch/arm64/crypto/sm4-ce-asm.h | 209 +
arch/arm64/crypto/sm4-ce-ccm-core.S | 328 +
arch/arm64/crypto/sm4-ce-ccm-glue.c | 303 +
arch/arm64/crypto/sm4-ce-cipher-glue.c | 2 +-
arch/arm64/crypto/sm4-ce-core.S | 1205 +-
arch/arm64/crypto/sm4-ce-gcm-core.S | 741 +
arch/arm64/crypto/sm4-ce-gcm-glue.c | 286 +
arch/arm64/crypto/sm4-ce-glue.c | 575 +-
arch/arm64/crypto/sm4-ce.h | 16 +
arch/arm64/crypto/sm4-neon-core.S | 630 +-
arch/arm64/crypto/sm4-neon-glue.c | 172 +-
arch/arm64/include/asm/alternative-macros.h | 4 +-
arch/arm64/include/asm/archrandom.h | 48 +-
arch/arm64/include/asm/assembler.h | 33 +-
arch/arm64/include/asm/cpufeature.h | 3 +-
arch/arm64/include/asm/cputype.h | 2 +
arch/arm64/include/asm/efi.h | 19 +-
arch/arm64/include/asm/exception.h | 7 +-
arch/arm64/include/asm/fpsimd.h | 17 +-
arch/arm64/include/asm/ftrace.h | 72 +-
arch/arm64/include/asm/hwcap.h | 3 +
arch/arm64/include/asm/insn.h | 156 +-
arch/arm64/include/asm/jump_label.h | 8 +-
arch/arm64/include/asm/kernel-pgtable.h | 11 +-
arch/arm64/include/asm/kvm_arm.h | 8 +-
arch/arm64/include/asm/kvm_asm.h | 7 +-
arch/arm64/include/asm/kvm_host.h | 88 +-
arch/arm64/include/asm/kvm_hyp.h | 3 +
arch/arm64/include/asm/kvm_mmu.h | 2 +-
arch/arm64/include/asm/kvm_pgtable.h | 175 +-
arch/arm64/include/asm/kvm_pkvm.h | 38 +
arch/arm64/include/asm/lse.h | 1 -
arch/arm64/include/asm/mmu_context.h | 10 +
arch/arm64/include/asm/module.lds.h | 8 +
arch/arm64/include/asm/mte.h | 65 +-
arch/arm64/include/asm/pgtable-hwdef.h | 1 +
arch/arm64/include/asm/pgtable.h | 11 +-
arch/arm64/include/asm/processor.h | 24 +-
arch/arm64/include/asm/ptdump.h | 1 +
arch/arm64/include/asm/scs.h | 49 +
arch/arm64/include/asm/spectre.h | 2 +
arch/arm64/include/asm/stackprotector.h | 9 +-
arch/arm64/include/asm/stacktrace.h | 2 +
arch/arm64/include/asm/sysreg.h | 150 +-
arch/arm64/include/asm/traps.h | 19 +-
arch/arm64/include/asm/uprobes.h | 2 +-
arch/arm64/include/uapi/asm/hwcap.h | 3 +
arch/arm64/include/uapi/asm/kvm.h | 1 +
arch/arm64/include/uapi/asm/sigcontext.h | 4 +
arch/arm64/kernel/Makefile | 11 +-
arch/arm64/kernel/acpi.c | 106 +
arch/arm64/kernel/alternative.c | 6 +-
arch/arm64/kernel/armv8_deprecated.c | 567 +-
arch/arm64/kernel/asm-offsets.c | 13 +
arch/arm64/kernel/cpufeature.c | 257 +-
arch/arm64/kernel/cpuinfo.c | 3 +
arch/arm64/kernel/efi-entry.S | 69 -
arch/arm64/kernel/efi-rt-wrapper.S | 30 +-
arch/arm64/kernel/efi.c | 45 +-
arch/arm64/kernel/elfcore.c | 2 +-
arch/arm64/kernel/entry-common.c | 24 +-
arch/arm64/kernel/entry-ftrace.S | 156 +-
arch/arm64/kernel/entry.S | 3 +
arch/arm64/kernel/fpsimd.c | 169 +-
arch/arm64/kernel/ftrace.c | 87 +-
arch/arm64/kernel/head.S | 3 +
arch/arm64/kernel/hibernate.c | 2 +-
arch/arm64/kernel/image-vars.h | 23 -
arch/arm64/kernel/irq.c | 11 +-
arch/arm64/kernel/module.c | 11 +-
arch/arm64/kernel/mte.c | 21 +-
arch/arm64/kernel/paravirt.c | 4 -
arch/arm64/kernel/patch-scs.c | 257 +
arch/arm64/kernel/perf_event.c | 21 +-
arch/arm64/kernel/pi/Makefile | 1 +
arch/arm64/kernel/probes/decode-insn.c | 2 +-
arch/arm64/kernel/probes/kprobes.c | 86 +-
arch/arm64/kernel/process.c | 4 +-
arch/arm64/kernel/proton-pack.c | 26 +-
arch/arm64/kernel/ptrace.c | 21 +-
arch/arm64/kernel/sdei.c | 2 +-
arch/arm64/kernel/setup.c | 4 +
arch/arm64/kernel/signal.c | 7 +-
arch/arm64/kernel/stacktrace.c | 10 +-
arch/arm64/kernel/suspend.c | 2 +
arch/arm64/kernel/syscall.c | 19 +-
arch/arm64/kernel/traps.c | 93 +-
arch/arm64/kernel/vdso.c | 22 -
arch/arm64/kernel/vdso/Makefile | 2 +-
arch/arm64/kernel/vdso32/Makefile | 2 +-
arch/arm64/kernel/vmlinux.lds.S | 13 +
arch/arm64/kvm/Kconfig | 2 +
arch/arm64/kvm/arm.c | 95 +-
arch/arm64/kvm/fpsimd.c | 26 +-
arch/arm64/kvm/guest.c | 18 +-
arch/arm64/kvm/hyp/hyp-constants.c | 3 +
arch/arm64/kvm/hyp/include/nvhe/mem_protect.h | 25 +-
arch/arm64/kvm/hyp/include/nvhe/memory.h | 27 +
arch/arm64/kvm/hyp/include/nvhe/mm.h | 18 +-
arch/arm64/kvm/hyp/include/nvhe/pkvm.h | 68 +
arch/arm64/kvm/hyp/include/nvhe/spinlock.h | 10 +-
arch/arm64/kvm/hyp/nvhe/Makefile | 1 +
arch/arm64/kvm/hyp/nvhe/cache.S | 11 +
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 110 +-
arch/arm64/kvm/hyp/nvhe/hyp-smp.c | 2 +
arch/arm64/kvm/hyp/nvhe/mem_protect.c | 521 +-
arch/arm64/kvm/hyp/nvhe/mm.c | 167 +-
arch/arm64/kvm/hyp/nvhe/page_alloc.c | 29 +-
arch/arm64/kvm/hyp/nvhe/pkvm.c | 436 +
arch/arm64/kvm/hyp/nvhe/setup.c | 98 +-
arch/arm64/kvm/hyp/pgtable.c | 652 +-
arch/arm64/kvm/hyp/vhe/Makefile | 2 +-
arch/arm64/kvm/irq.h | 16 -
arch/arm64/kvm/mmu.c | 195 +-
arch/arm64/kvm/pkvm.c | 138 +-
arch/arm64/kvm/pmu-emul.c | 482 +-
arch/arm64/kvm/reset.c | 29 -
arch/arm64/kvm/sys_regs.c | 157 +-
arch/arm64/kvm/vgic/vgic-its.c | 20 +
arch/arm64/lib/insn.c | 165 -
arch/arm64/lib/mte.S | 2 +-
arch/arm64/mm/copypage.c | 7 +-
arch/arm64/mm/dma-mapping.c | 17 +-
arch/arm64/mm/fault.c | 12 +-
arch/arm64/mm/init.c | 25 +-
arch/arm64/mm/mmu.c | 104 +-
arch/arm64/mm/mteswap.c | 16 +-
arch/arm64/mm/pageattr.c | 3 +-
arch/arm64/mm/proc.S | 4 -
arch/arm64/net/bpf_jit_comp.c | 9 +-
arch/arm64/tools/cpucaps | 1 +
arch/arm64/tools/gen-sysreg.awk | 2 +-
arch/arm64/tools/sysreg | 766 +-
arch/csky/Kconfig | 4 +-
arch/csky/include/asm/pgtable.h | 3 -
arch/csky/include/asm/processor.h | 2 +
arch/csky/include/asm/stackprotector.h | 10 +-
arch/csky/kernel/entry.S | 11 +-
arch/csky/kernel/process.c | 4 +-
arch/csky/kernel/signal.c | 2 -
arch/csky/kernel/stacktrace.c | 6 +-
arch/hexagon/include/asm/page.h | 7 -
arch/hexagon/kernel/ptrace.c | 7 +-
arch/ia64/Kconfig | 1 +
arch/ia64/Makefile | 2 +-
arch/ia64/hp/common/aml_nfw.c | 4 +-
arch/ia64/include/asm/io.h | 4 -
arch/ia64/include/asm/kprobes.h | 2 -
arch/ia64/include/asm/pgtable.h | 16 -
arch/ia64/kernel/ptrace.c | 20 +-
arch/ia64/kernel/sys_ia64.c | 6 +-
arch/ia64/mm/hugetlbpage.c | 15 -
arch/loongarch/Kconfig | 23 +
arch/loongarch/Makefile | 10 +-
arch/loongarch/configs/loongson3_defconfig | 56 +-
arch/loongarch/include/asm/acpi.h | 152 +-
arch/loongarch/include/asm/alternative-asm.h | 82 +
arch/loongarch/include/asm/alternative.h | 111 +
arch/loongarch/include/asm/asm-extable.h | 65 +
arch/loongarch/include/asm/bootinfo.h | 1 +
arch/loongarch/include/asm/bugs.h | 15 +
arch/loongarch/include/asm/efi.h | 15 +-
arch/loongarch/include/asm/extable.h | 47 +
arch/loongarch/include/asm/ftrace.h | 68 +
arch/loongarch/include/asm/futex.h | 27 +-
arch/loongarch/include/asm/gpr-num.h | 22 +
arch/loongarch/include/asm/inst.h | 46 +
arch/loongarch/include/asm/irq.h | 4 +-
arch/loongarch/include/asm/loongson.h | 3 +
arch/loongarch/include/asm/module.h | 27 +-
arch/loongarch/include/asm/module.lds.h | 1 +
arch/loongarch/include/asm/pgalloc.h | 13 +-
arch/loongarch/include/asm/pgtable.h | 34 +-
arch/loongarch/include/asm/setup.h | 1 +
arch/loongarch/include/asm/smp.h | 38 +-
arch/loongarch/include/asm/sparsemem.h | 8 +
arch/loongarch/include/asm/stackprotector.h | 38 +
arch/loongarch/include/asm/string.h | 5 +
arch/loongarch/include/asm/thread_info.h | 2 +-
arch/loongarch/include/asm/time.h | 1 +
arch/loongarch/include/asm/uaccess.h | 24 +-
arch/loongarch/include/asm/unwind.h | 3 +-
arch/loongarch/kernel/Makefile | 16 +-
arch/loongarch/kernel/acpi.c | 42 +-
arch/loongarch/kernel/alternative.c | 246 +
arch/loongarch/kernel/asm-offsets.c | 15 +
arch/loongarch/kernel/efi.c | 39 +-
arch/loongarch/kernel/env.c | 2 +
arch/loongarch/kernel/fpu.S | 5 +-
arch/loongarch/kernel/ftrace.c | 73 +
arch/loongarch/kernel/ftrace_dyn.c | 273 +
arch/loongarch/kernel/head.S | 3 +-
arch/loongarch/kernel/image-vars.h | 8 -
arch/loongarch/kernel/inst.c | 127 +
arch/loongarch/kernel/irq.c | 2 +-
arch/loongarch/kernel/mcount.S | 96 +
arch/loongarch/kernel/mcount_dyn.S | 149 +
arch/loongarch/kernel/module-sections.c | 64 +-
arch/loongarch/kernel/module.c | 75 +-
arch/loongarch/kernel/numa.c | 21 +-
arch/loongarch/kernel/process.c | 17 +-
arch/loongarch/kernel/reset.c | 5 +
arch/loongarch/kernel/setup.c | 150 +-
arch/loongarch/kernel/smp.c | 90 +-
arch/loongarch/kernel/switch.S | 5 +
arch/loongarch/kernel/time.c | 11 +-
arch/loongarch/kernel/traps.c | 27 +
arch/loongarch/kernel/unaligned.c | 499 +
arch/loongarch/kernel/unwind_guess.c | 4 +-
arch/loongarch/kernel/unwind_prologue.c | 51 +-
arch/loongarch/kernel/vdso.c | 2 +-
arch/loongarch/kernel/vmlinux.lds.S | 13 +-
arch/loongarch/lib/Makefile | 3 +-
arch/loongarch/lib/clear_user.S | 85 +-
arch/loongarch/lib/copy_user.S | 108 +-
arch/loongarch/lib/memcpy.S | 95 +
arch/loongarch/lib/memmove.S | 121 +
arch/loongarch/lib/memset.S | 91 +
arch/loongarch/lib/unaligned.S | 84 +
arch/loongarch/mm/extable.c | 59 +-
arch/loongarch/mm/init.c | 45 +-
arch/loongarch/mm/pgtable.c | 23 +-
arch/loongarch/mm/tlbex.S | 30 +-
arch/loongarch/net/bpf_jit.c | 86 +-
arch/loongarch/net/bpf_jit.h | 2 +
arch/loongarch/pci/acpi.c | 7 +-
arch/loongarch/power/Makefile | 4 +
arch/loongarch/power/hibernate.c | 62 +
arch/loongarch/power/hibernate_asm.S | 66 +
arch/loongarch/power/platform.c | 57 +
arch/loongarch/power/suspend.c | 73 +
arch/loongarch/power/suspend_asm.S | 89 +
arch/m68k/configs/amiga_defconfig | 42 +-
arch/m68k/configs/apollo_defconfig | 42 +-
arch/m68k/configs/atari_defconfig | 42 +-
arch/m68k/configs/bvme6000_defconfig | 42 +-
arch/m68k/configs/hp300_defconfig | 42 +-
arch/m68k/configs/mac_defconfig | 42 +-
arch/m68k/configs/multi_defconfig | 42 +-
arch/m68k/configs/mvme147_defconfig | 42 +-
arch/m68k/configs/mvme16x_defconfig | 42 +-
arch/m68k/configs/q40_defconfig | 42 +-
arch/m68k/configs/sun3_defconfig | 42 +-
arch/m68k/configs/sun3x_defconfig | 42 +-
arch/m68k/emu/nfcon.c | 9 +-
arch/m68k/include/asm/mac_via.h | 8 -
arch/m68k/include/asm/pgtable_mm.h | 2 -
arch/m68k/include/asm/pgtable_no.h | 1 -
arch/m68k/include/asm/string.h | 20 -
arch/m68k/kernel/process.c | 4 +-
arch/m68k/kernel/setup_no.c | 3 +-
arch/m68k/mac/misc.c | 2 +-
arch/microblaze/Kconfig | 8 -
arch/microblaze/Makefile | 4 +-
arch/microblaze/configs/mmu_defconfig | 1 -
arch/microblaze/include/asm/pci-bridge.h | 92 -
arch/microblaze/include/asm/pci.h | 29 -
arch/microblaze/include/asm/pgtable.h | 3 -
arch/microblaze/kernel/process.c | 2 +-
arch/microblaze/pci/Makefile | 3 +-
arch/microblaze/pci/indirect_pci.c | 158 -
arch/microblaze/pci/iomap.c | 36 +
arch/microblaze/pci/pci-common.c | 1067 -
arch/microblaze/pci/xilinx_pci.c | 170 -
arch/mips/Kconfig | 2 +-
arch/mips/Makefile | 2 +-
arch/mips/bcm63xx/clk.c | 2 +
arch/mips/boot/dts/brcm/bcm63268.dtsi | 7 +
arch/mips/boot/dts/brcm/bcm7435.dtsi | 1 +
arch/mips/boot/dts/ingenic/ci20.dts | 2 +-
arch/mips/boot/dts/mscc/jaguar2_pcb110.dts | 4 +-
arch/mips/boot/dts/qca/ar9331.dtsi | 1 -
arch/mips/boot/dts/ralink/mt7621-gnubee-gb-pc2.dts | 2 +-
arch/mips/boot/dts/ralink/mt7621.dtsi | 11 +-
arch/mips/cavium-octeon/executive/cvmx-bootmem.c | 3 +-
.../cavium-octeon/executive/cvmx-helper-board.c | 2 +-
arch/mips/cavium-octeon/executive/cvmx-helper.c | 2 +-
arch/mips/configs/mtx1_defconfig | 1 -
arch/mips/include/asm/asm-prototypes.h | 3 +
arch/mips/include/asm/mach-ralink/mt7621.h | 4 +-
arch/mips/include/asm/octeon/cvmx.h | 4 +-
arch/mips/include/asm/pgalloc.h | 10 +-
arch/mips/include/asm/pgtable-64.h | 8 +-
arch/mips/include/asm/pgtable.h | 3 +-
arch/mips/include/asm/stackprotector.h | 9 +-
arch/mips/kernel/process.c | 2 +-
arch/mips/kernel/ptrace.c | 9 +-
arch/mips/kernel/vdso.c | 2 +-
arch/mips/kernel/vpe-cmp.c | 4 +-
arch/mips/kernel/vpe-mt.c | 4 +-
arch/mips/kvm/mmu.c | 3 +-
arch/mips/mm/pgtable-32.c | 9 +-
arch/mips/mm/pgtable-64.c | 18 +-
arch/mips/mm/pgtable.c | 2 +-
arch/mips/pci/pci-rt3883.c | 4 +-
arch/mips/ralink/mt7621.c | 97 +-
arch/mips/ralink/of.c | 4 +-
arch/mips/vdso/Makefile | 2 +-
arch/nios2/boot/Makefile | 2 +-
arch/nios2/include/asm/pgalloc.h | 5 -
arch/nios2/include/asm/pgtable.h | 2 -
arch/nios2/include/asm/processor.h | 3 -
arch/nios2/kernel/ptrace.c | 6 +-
arch/openrisc/configs/or1ksim_defconfig | 3 +-
arch/openrisc/configs/simple_smp_defconfig | 3 +-
arch/openrisc/include/asm/pgtable.h | 2 -
arch/openrisc/kernel/ptrace.c | 8 +-
arch/parisc/include/asm/pdc.h | 2 +-
arch/parisc/include/asm/pgtable.h | 19 +-
arch/parisc/include/uapi/asm/mman.h | 29 +-
arch/parisc/kernel/firmware.c | 32 +-
arch/parisc/kernel/kgdb.c | 20 -
arch/parisc/kernel/pdc_cons.c | 16 +-
arch/parisc/kernel/pdt.c | 5 +-
arch/parisc/kernel/processor.c | 9 +-
arch/parisc/kernel/ptrace.c | 15 +-
arch/parisc/kernel/real2.S | 17 +-
arch/parisc/kernel/setup.c | 26 +-
arch/parisc/kernel/sys_parisc.c | 28 +
arch/parisc/kernel/syscalls/syscall.tbl | 2 +-
arch/parisc/kernel/vdso.c | 2 +-
arch/parisc/kernel/vdso32/Makefile | 4 +-
arch/parisc/kernel/vdso64/Makefile | 4 +-
arch/powerpc/Kconfig | 51 +-
.../dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi | 3 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi | 10 +-
.../dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-2.dtsi | 45 +
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-3.dtsi | 45 +
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi | 3 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi | 3 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi | 3 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi | 3 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/t1024qds.dts | 2 +-
arch/powerpc/boot/dts/fsl/t1024rdb.dts | 2 +-
arch/powerpc/boot/dts/fsl/t104xqds.dtsi | 2 +-
arch/powerpc/boot/dts/fsl/t104xrdb.dtsi | 2 +-
arch/powerpc/boot/dts/fsl/t2081si-post.dtsi | 4 +-
arch/powerpc/boot/dts/fsl/t208xqds.dtsi | 2 +-
arch/powerpc/boot/dts/fsl/t208xrdb.dtsi | 2 +-
arch/powerpc/boot/dts/microwatt.dts | 22 +
arch/powerpc/boot/dts/turris1x.dts | 14 +
arch/powerpc/boot/dts/warp.dts | 4 +-
arch/powerpc/boot/wrapper | 17 +-
arch/powerpc/configs/microwatt_defconfig | 1 -
arch/powerpc/configs/ppc6xx_defconfig | 2 -
arch/powerpc/crypto/crc-vpmsum_test.c | 4 +-
arch/powerpc/include/asm/asm.h | 7 +
arch/powerpc/include/asm/book3s/32/tlbflush.h | 9 +
arch/powerpc/include/asm/book3s/64/pgtable.h | 80 +-
arch/powerpc/include/asm/book3s/64/tlbflush-hash.h | 50 -
arch/powerpc/include/asm/book3s/64/tlbflush.h | 41 +-
arch/powerpc/include/asm/bug.h | 3 +-
arch/powerpc/include/asm/cmpxchg.h | 231 +-
arch/powerpc/include/asm/code-patching.h | 2 -
arch/powerpc/include/asm/cputime.h | 17 +-
arch/powerpc/include/asm/debug.h | 2 +
arch/powerpc/include/asm/ftrace.h | 43 +-
arch/powerpc/include/asm/hvcall.h | 3 +-
arch/powerpc/include/asm/interrupt.h | 1 +
arch/powerpc/include/asm/irqflags.h | 58 -
arch/powerpc/include/asm/kvm_book3s_asm.h | 2 +-
arch/powerpc/include/asm/kvm_ppc.h | 12 +
arch/powerpc/include/asm/linkage.h | 3 +
arch/powerpc/include/asm/mmu_context.h | 6 +-
arch/powerpc/include/asm/nohash/32/pgtable.h | 12 +-
arch/powerpc/include/asm/nohash/pgtable.h | 2 +-
arch/powerpc/include/asm/nohash/tlbflush.h | 7 +
arch/powerpc/include/asm/pgtable.h | 7 -
arch/powerpc/include/asm/ppc_asm.h | 19 +
arch/powerpc/include/asm/processor.h | 15 +-
arch/powerpc/include/asm/prom.h | 1 +
arch/powerpc/include/asm/ps3.h | 4 -
arch/powerpc/include/asm/pte-walk.h | 25 -
arch/powerpc/include/asm/ptrace.h | 36 +-
arch/powerpc/include/asm/qspinlock.h | 192 +-
arch/powerpc/include/asm/qspinlock_paravirt.h | 7 -
arch/powerpc/include/asm/qspinlock_types.h | 72 +
arch/powerpc/include/asm/rtas.h | 15 -
arch/powerpc/include/asm/spinlock.h | 2 +-
arch/powerpc/include/asm/spinlock_types.h | 2 +-
arch/powerpc/include/asm/stackprotector.h | 10 +-
arch/powerpc/kernel/asm-offsets.c | 34 +-
arch/powerpc/kernel/cpu_setup_6xx.S | 26 +-
arch/powerpc/kernel/cpu_setup_e500.S | 8 +-
arch/powerpc/kernel/entry_32.S | 23 +-
arch/powerpc/kernel/entry_64.S | 2 +
arch/powerpc/kernel/exceptions-64e.S | 48 +-
arch/powerpc/kernel/exceptions-64s.S | 120 +-
arch/powerpc/kernel/head_32.h | 4 +-
arch/powerpc/kernel/head_40x.S | 7 +-
arch/powerpc/kernel/head_44x.S | 6 +-
arch/powerpc/kernel/head_64.S | 13 +-
arch/powerpc/kernel/head_85xx.S | 13 +-
arch/powerpc/kernel/head_8xx.S | 7 +-
arch/powerpc/kernel/head_book3s_32.S | 33 +-
arch/powerpc/kernel/head_booke.h | 4 +-
arch/powerpc/kernel/hw_breakpoint.c | 2 +-
arch/powerpc/kernel/interrupt_64.S | 54 +-
arch/powerpc/kernel/irq.c | 4 +-
arch/powerpc/kernel/kgdb.c | 2 +-
arch/powerpc/kernel/kprobes.c | 23 +-
arch/powerpc/kernel/misc_32.S | 2 +-
arch/powerpc/kernel/misc_64.S | 8 +-
arch/powerpc/kernel/module_64.c | 10 +
arch/powerpc/kernel/optprobes.c | 2 +-
arch/powerpc/kernel/optprobes_head.S | 4 +-
arch/powerpc/kernel/ppc_save_regs.S | 57 +-
arch/powerpc/kernel/process.c | 99 +-
arch/powerpc/kernel/prom.c | 4 +
arch/powerpc/kernel/ptrace/ptrace-tm.c | 10 +-
arch/powerpc/kernel/ptrace/ptrace-view.c | 15 +-
arch/powerpc/kernel/rtas.c | 192 +-
arch/powerpc/kernel/rtasd.c | 7 +-
arch/powerpc/kernel/setup-common.c | 1 +
arch/powerpc/kernel/smp.c | 2 +-
arch/powerpc/kernel/stacktrace.c | 10 +-
arch/powerpc/kernel/swsusp_32.S | 5 +-
arch/powerpc/kernel/time.c | 23 +-
arch/powerpc/kernel/tm.S | 8 +-
arch/powerpc/kernel/trace/ftrace_mprofile.S | 2 +-
arch/powerpc/kernel/vdso.c | 22 -
arch/powerpc/kernel/vdso/Makefile | 2 +
arch/powerpc/kernel/vector.S | 4 +-
arch/powerpc/kexec/file_load_64.c | 61 +-
arch/powerpc/kexec/ranges.c | 8 +-
arch/powerpc/kvm/book3s_64_mmu_hv.c | 9 +-
arch/powerpc/kvm/book3s_64_mmu_radix.c | 2 +-
arch/powerpc/kvm/book3s_64_vio.c | 6 +-
arch/powerpc/kvm/book3s_hv_interrupts.S | 4 +-
arch/powerpc/kvm/book3s_hv_rm_mmu.c | 2 +-
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 27 +-
arch/powerpc/kvm/book3s_hv_uvmem.c | 5 +-
arch/powerpc/kvm/book3s_xive.c | 12 +-
arch/powerpc/kvm/book3s_xive.h | 3 +-
arch/powerpc/kvm/book3s_xive_native.c | 3 +-
arch/powerpc/kvm/booke.c | 3 +
arch/powerpc/kvm/bookehv_interrupts.S | 9 -
arch/powerpc/kvm/fpu.S | 17 +-
arch/powerpc/kvm/irq.h | 22 -
arch/powerpc/kvm/powerpc.c | 18 +-
arch/powerpc/lib/Makefile | 4 +-
arch/powerpc/lib/code-patching.c | 238 +-
arch/powerpc/lib/feature-fixups.c | 173 +-
arch/powerpc/lib/qspinlock.c | 997 +
arch/powerpc/lib/sstep.c | 21 +-
arch/powerpc/lib/test_emulate_step_exec_instr.S | 2 +-
arch/powerpc/mm/book3s64/hash_4k.c | 5 +
arch/powerpc/mm/book3s64/hash_64k.c | 10 +
arch/powerpc/mm/book3s64/hash_utils.c | 130 +-
arch/powerpc/mm/book3s64/internal.h | 11 +
arch/powerpc/mm/book3s64/pgtable.c | 4 +-
arch/powerpc/mm/hugetlbpage.c | 37 -
arch/powerpc/mm/mem.c | 1 -
arch/powerpc/mm/nohash/kaslr_booke.c | 1 -
arch/powerpc/mm/nohash/tlb.c | 8 +
arch/powerpc/net/bpf_jit_comp32.c | 52 +-
arch/powerpc/perf/callchain.c | 9 +-
arch/powerpc/perf/core-book3s.c | 8 +-
arch/powerpc/perf/hv-gpci-requests.h | 4 +
arch/powerpc/perf/hv-gpci.c | 35 +-
arch/powerpc/perf/hv-gpci.h | 1 +
arch/powerpc/perf/req-gen/perf.h | 20 +
arch/powerpc/platforms/44x/warp.c | 105 +-
arch/powerpc/platforms/4xx/hsta_msi.c | 1 +
arch/powerpc/platforms/52xx/lite5200_sleep.S | 15 +-
arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c | 15 +-
arch/powerpc/platforms/83xx/mpc832x_rdb.c | 2 +-
arch/powerpc/platforms/85xx/sgy_cts1000.c | 132 +-
arch/powerpc/platforms/Kconfig.cputype | 9 +-
arch/powerpc/platforms/book3s/vas-api.c | 2 +-
arch/powerpc/platforms/cell/axon_msi.c | 1 +
arch/powerpc/platforms/pasemi/gpio_mdio.c | 4 +-
arch/powerpc/platforms/pasemi/msi.c | 1 +
arch/powerpc/platforms/powermac/setup.c | 18 +-
arch/powerpc/platforms/ps3/system-bus.c | 2 +-
arch/powerpc/platforms/pseries/eeh_pseries.c | 15 +-
arch/powerpc/platforms/pseries/hotplug-cpu.c | 1 +
arch/powerpc/platforms/pseries/hvCall.S | 38 +-
arch/powerpc/platforms/pseries/iommu.c | 2 +-
arch/powerpc/platforms/pseries/mobility.c | 7 +-
arch/powerpc/platforms/pseries/msi.c | 7 +-
arch/powerpc/platforms/pseries/plpks.c | 50 +-
arch/powerpc/platforms/pseries/plpks.h | 2 +-
arch/powerpc/sysdev/fsl_msi.c | 1 +
arch/powerpc/sysdev/fsl_pci.c | 13 +
arch/powerpc/sysdev/mpic_msgr.c | 4 +-
arch/powerpc/sysdev/mpic_u3msi.c | 1 +
arch/powerpc/sysdev/xive/native.c | 6 +-
arch/powerpc/sysdev/xive/spapr.c | 1 +
arch/powerpc/xmon/xmon.c | 17 +-
arch/riscv/Kconfig | 25 +-
arch/riscv/Kconfig.erratas | 13 +
arch/riscv/Kconfig.socs | 10 +-
arch/riscv/Makefile | 2 +-
arch/riscv/boot/Makefile | 3 +
arch/riscv/boot/dts/Makefile | 1 +
.../boot/dts/microchip/mpfs-icicle-kit-fabric.dtsi | 33 +-
arch/riscv/boot/dts/microchip/mpfs-icicle-kit.dts | 36 +-
.../boot/dts/microchip/mpfs-m100pfs-fabric.dtsi | 4 +-
.../boot/dts/microchip/mpfs-polarberry-fabric.dtsi | 4 +-
.../boot/dts/microchip/mpfs-sev-kit-fabric.dtsi | 29 -
arch/riscv/boot/dts/microchip/mpfs.dtsi | 32 +
arch/riscv/boot/dts/renesas/Makefile | 2 +
arch/riscv/boot/dts/renesas/r9a07g043f.dtsi | 59 +
arch/riscv/boot/dts/renesas/r9a07g043f01-smarc.dts | 27 +
arch/riscv/boot/dts/renesas/rzfive-smarc-som.dtsi | 47 +
arch/riscv/boot/dts/renesas/rzfive-smarc.dtsi | 64 +
arch/riscv/boot/dts/starfive/Makefile | 2 +-
.../boot/dts/starfive/jh7100-beaglev-starlight.dts | 153 +-
arch/riscv/boot/dts/starfive/jh7100-common.dtsi | 161 +
.../dts/starfive/jh7100-starfive-visionfive-v1.dts | 20 +
arch/riscv/configs/defconfig | 6 +
arch/riscv/configs/nommu_k210_defconfig | 3 +-
arch/riscv/configs/nommu_k210_sdcard_defconfig | 3 +-
arch/riscv/configs/nommu_virt_defconfig | 3 +-
arch/riscv/errata/thead/errata.c | 19 +
arch/riscv/include/asm/alternative-macros.h | 99 +-
arch/riscv/include/asm/asm.h | 1 +
arch/riscv/include/asm/cacheflush.h | 7 +
arch/riscv/include/asm/efi.h | 19 +-
arch/riscv/include/asm/errata_list.h | 16 +-
arch/riscv/include/asm/hugetlb.h | 6 +
arch/riscv/include/asm/hwcap.h | 3 +-
arch/riscv/include/asm/io.h | 5 +
arch/riscv/include/asm/kexec.h | 5 +
arch/riscv/include/asm/kprobes.h | 2 -
arch/riscv/include/asm/kvm_host.h | 16 +-
arch/riscv/include/asm/kvm_vcpu_sbi.h | 6 +
arch/riscv/include/asm/mmu.h | 2 +
arch/riscv/include/asm/page.h | 18 +-
arch/riscv/include/asm/pgalloc.h | 11 +-
arch/riscv/include/asm/pgtable-64.h | 6 +-
arch/riscv/include/asm/pgtable.h | 8 +-
arch/riscv/include/asm/sbi.h | 5 +
arch/riscv/include/asm/smp.h | 3 +
arch/riscv/include/asm/stackprotector.h | 10 +-
arch/riscv/include/asm/tlbflush.h | 18 +
arch/riscv/include/asm/vdso.h | 2 +-
arch/riscv/include/asm/vmalloc.h | 18 +
arch/riscv/include/uapi/asm/kvm.h | 3 +
arch/riscv/include/uapi/asm/ucontext.h | 12 +-
arch/riscv/kernel/Makefile | 1 +
arch/riscv/kernel/cpu.c | 30 +-
arch/riscv/kernel/cpufeature.c | 43 +-
arch/riscv/kernel/crash_core.c | 21 +
arch/riscv/kernel/elf_kexec.c | 14 +
arch/riscv/kernel/entry.S | 34 +-
arch/riscv/kernel/image-vars.h | 6 -
arch/riscv/kernel/machine_kexec.c | 46 +-
arch/riscv/kernel/mcount.S | 44 +-
arch/riscv/kernel/probes/Makefile | 2 +-
arch/riscv/kernel/probes/kprobes.c | 13 -
arch/riscv/kernel/probes/rethook.c | 27 +
arch/riscv/kernel/probes/rethook.h | 8 +
.../{kprobes_trampoline.S => rethook_trampoline.S} | 6 +-
arch/riscv/kernel/sbi.c | 3 +
arch/riscv/kernel/setup.c | 9 +-
arch/riscv/kernel/signal.c | 34 +-
arch/riscv/kernel/smp.c | 97 +-
arch/riscv/kernel/stacktrace.c | 11 +-
arch/riscv/kernel/traps.c | 30 +-
arch/riscv/kernel/vdso.c | 22 -
arch/riscv/kernel/vdso/Makefile | 1 +
arch/riscv/kvm/main.c | 6 +
arch/riscv/kvm/mmu.c | 6 +-
arch/riscv/kvm/vcpu.c | 85 +-
arch/riscv/kvm/vcpu_sbi_base.c | 13 +-
arch/riscv/kvm/vcpu_sbi_hsm.c | 1 -
arch/riscv/kvm/vcpu_sbi_replace.c | 1 -
arch/riscv/kvm/vcpu_sbi_v01.c | 1 -
arch/riscv/mm/Makefile | 2 +
arch/riscv/mm/cacheflush.c | 7 +
arch/riscv/mm/context.c | 10 +
arch/riscv/mm/init.c | 25 +-
arch/riscv/mm/pgtable.c | 83 +
arch/riscv/mm/physaddr.c | 2 +-
arch/riscv/mm/pmem.c | 21 +
arch/riscv/mm/tlbflush.c | 28 +-
arch/riscv/net/bpf_jit_comp64.c | 29 +-
arch/s390/Kconfig | 8 +
arch/s390/appldata/appldata_base.c | 113 +-
arch/s390/boot/ipl_parm.c | 9 +
arch/s390/configs/debug_defconfig | 2 -
arch/s390/configs/defconfig | 2 -
arch/s390/configs/zfcpdump_defconfig | 1 -
arch/s390/hypfs/hypfs_diag.c | 8 -
arch/s390/include/asm/bugs.h | 21 -
arch/s390/include/asm/checksum.h | 7 +
arch/s390/include/asm/ftrace.h | 29 +-
arch/s390/include/asm/ipl.h | 11 +
arch/s390/include/asm/kvm_host.h | 14 +-
arch/s390/include/asm/mem_encrypt.h | 4 +-
arch/s390/include/asm/pai.h | 6 +
arch/s390/include/asm/pci.h | 5 +-
arch/s390/include/asm/pgtable.h | 3 +-
arch/s390/include/asm/sclp.h | 2 +
arch/s390/include/asm/serial.h | 7 -
arch/s390/include/asm/shmparam.h | 12 -
arch/s390/include/asm/stacktrace.h | 1 +
arch/s390/include/asm/tlb.h | 11 +-
arch/s390/include/asm/uv.h | 10 +
arch/s390/include/asm/vga.h | 7 -
arch/s390/include/asm/vx-insn-asm.h | 681 +
arch/s390/include/asm/vx-insn.h | 671 +-
arch/s390/include/uapi/asm/ipl.h | 29 +
arch/s390/kernel/asm-offsets.c | 1 +
arch/s390/kernel/crash_dump.c | 4 +-
arch/s390/kernel/debug.c | 7 +-
arch/s390/kernel/entry.S | 60 +-
arch/s390/kernel/fpu.c | 3 +-
arch/s390/kernel/ipl.c | 403 +-
arch/s390/kernel/kprobes.c | 3 +-
arch/s390/kernel/kprobes.h | 9 +
arch/s390/kernel/nmi.c | 181 +-
arch/s390/kernel/perf_pai_crypto.c | 50 +-
arch/s390/kernel/perf_pai_ext.c | 14 +-
arch/s390/kernel/process.c | 2 +-
arch/s390/kernel/setup.c | 4 +-
arch/s390/kernel/uv.c | 7 +
arch/s390/kernel/vdso.c | 22 +-
arch/s390/kvm/intercept.c | 9 +-
arch/s390/kvm/interrupt.c | 5 -
arch/s390/kvm/irq.h | 19 -
arch/s390/kvm/kvm-s390.c | 116 +-
arch/s390/kvm/kvm-s390.h | 8 +-
arch/s390/kvm/pci.c | 6 +-
arch/s390/kvm/priv.c | 3 +-
arch/s390/kvm/pv.c | 357 +-
arch/s390/kvm/vsie.c | 8 +-
arch/s390/mm/gmap.c | 152 +-
arch/s390/mm/init.c | 51 +-
arch/s390/mm/maccess.c | 2 +-
arch/s390/mm/page-states.c | 11 -
arch/s390/pci/pci.c | 13 +-
arch/s390/pci/pci_dma.c | 77 +-
arch/s390/pci/pci_irq.c | 2 +-
arch/sh/Kconfig | 2 +-
arch/sh/configs/landisk_defconfig | 1 -
arch/sh/configs/rsk7201_defconfig | 3 +-
arch/sh/configs/rsk7203_defconfig | 3 +-
arch/sh/configs/se7206_defconfig | 3 +-
arch/sh/configs/shmin_defconfig | 3 +-
arch/sh/configs/shx3_defconfig | 3 +-
arch/sh/drivers/push-switch.c | 2 +-
arch/sh/include/asm/pgtable-3level.h | 10 +-
arch/sh/include/asm/pgtable.h | 2 -
arch/sh/include/asm/stackprotector.h | 10 +-
arch/sh/kernel/ptrace_32.c | 8 +-
arch/sparc/include/asm/pgtable_32.h | 6 -
arch/sparc/include/asm/pgtable_64.h | 1 +
arch/sparc/kernel/ptrace_32.c | 9 +-
arch/sparc/kernel/ptrace_64.c | 23 +-
arch/sparc/mm/init_32.c | 3 +-
arch/sparc/mm/init_64.c | 1 -
arch/sparc/net/bpf_jit_comp_32.c | 10 +-
arch/sparc/vdso/vma.c | 2 +-
arch/um/drivers/Kconfig | 1 -
arch/um/drivers/random.c | 1 -
arch/um/drivers/virt-pci.c | 9 +-
arch/um/include/asm/pci.h | 2 +-
arch/um/include/asm/pgtable-3level.h | 8 -
arch/um/include/asm/pgtable.h | 2 -
arch/um/kernel/kmsg_dump.c | 24 +-
arch/um/kernel/process.c | 5 +-
arch/um/kernel/um_arch.c | 5 +
arch/x86/Kconfig | 138 +-
arch/x86/Makefile | 8 +-
arch/x86/boot/Makefile | 2 +-
arch/x86/boot/compressed/Makefile | 10 +-
arch/x86/boot/compressed/efi_mixed.S | 345 +
arch/x86/boot/compressed/efi_thunk_64.S | 195 -
arch/x86/boot/compressed/head_32.S | 4 -
arch/x86/boot/compressed/head_64.S | 311 +-
arch/x86/boot/compressed/kaslr.c | 2 +-
arch/x86/boot/compressed/mem_encrypt.S | 152 +-
arch/x86/boot/cpuflags.c | 15 +-
arch/x86/boot/header.S | 5 +-
arch/x86/boot/string.c | 2 +-
arch/x86/boot/tools/build.c | 2 +
arch/x86/coco/tdx/tdx.c | 40 +
arch/x86/crypto/Makefile | 3 +
arch/x86/crypto/aegis128-aesni-asm.S | 9 +-
arch/x86/crypto/aria-aesni-avx-asm_64.S | 13 +-
arch/x86/crypto/camellia-aesni-avx-asm_64.S | 2 -
arch/x86/crypto/camellia-aesni-avx2-asm_64.S | 4 -
arch/x86/crypto/cast5-avx-x86_64-asm_64.S | 2 -
arch/x86/crypto/crct10dif-pcl-asm_64.S | 1 -
arch/x86/crypto/nh-avx2-x86_64.S | 5 +-
arch/x86/crypto/nh-sse2-x86_64.S | 5 +-
arch/x86/crypto/nhpoly1305-avx2-glue.c | 11 +-
arch/x86/crypto/nhpoly1305-sse2-glue.c | 11 +-
arch/x86/crypto/poly1305-x86_64-cryptogams.pl | 1 -
arch/x86/crypto/serpent-avx-x86_64-asm_64.S | 2 -
arch/x86/crypto/serpent-avx2-asm_64.S | 2 -
arch/x86/crypto/sha1_ni_asm.S | 4 +-
arch/x86/crypto/sha1_ssse3_asm.S | 3 +-
arch/x86/crypto/sha256-avx-asm.S | 4 +-
arch/x86/crypto/sha256-avx2-asm.S | 4 +-
arch/x86/crypto/sha256-ssse3-asm.S | 4 +-
arch/x86/crypto/sha256_ni_asm.S | 4 +-
arch/x86/crypto/sha512-avx-asm.S | 3 +-
arch/x86/crypto/sha512-avx2-asm.S | 3 +-
arch/x86/crypto/sha512-ssse3-asm.S | 3 +-
arch/x86/crypto/sm3-avx-asm_64.S | 4 +-
arch/x86/crypto/sm4-aesni-avx-asm_64.S | 14 +-
arch/x86/crypto/sm4-aesni-avx2-asm_64.S | 13 +-
arch/x86/crypto/twofish-avx-x86_64-asm_64.S | 2 -
arch/x86/crypto/twofish_glue.c | 2 +-
arch/x86/entry/entry_32.S | 4 +-
arch/x86/entry/entry_64.S | 50 +-
arch/x86/entry/entry_64_compat.S | 11 +-
arch/x86/entry/thunk_64.S | 4 +-
arch/x86/entry/vdso/Makefile | 14 +-
arch/x86/entry/vdso/vdso.lds.S | 2 +
arch/x86/entry/vdso/vma.c | 32 +-
arch/x86/events/amd/brs.c | 2 +-
arch/x86/events/amd/core.c | 2 +-
arch/x86/events/amd/ibs.c | 4 +-
arch/x86/events/amd/lbr.c | 6 +-
arch/x86/events/core.c | 48 +-
arch/x86/events/intel/core.c | 23 +-
arch/x86/events/intel/ds.c | 4 +-
arch/x86/events/intel/lbr.c | 36 +-
arch/x86/events/intel/p4.c | 2 +-
arch/x86/events/intel/uncore.h | 24 +-
arch/x86/events/intel/uncore_snb.c | 3 +
arch/x86/events/intel/uncore_snbep.c | 495 +-
arch/x86/events/perf_event.h | 31 +-
arch/x86/hyperv/hv_init.c | 58 +-
arch/x86/ia32/Makefile | 2 -
arch/x86/include/asm/alternative.h | 68 +-
arch/x86/include/asm/apic.h | 3 +-
arch/x86/include/asm/cacheinfo.h | 13 +
arch/x86/include/asm/cmpxchg_32.h | 28 -
arch/x86/include/asm/cmpxchg_64.h | 5 -
arch/x86/include/asm/cpu.h | 2 +
arch/x86/include/asm/cpu_entry_area.h | 4 -
arch/x86/include/asm/cpufeatures.h | 6 +
arch/x86/include/asm/cpuid.h | 141 +-
arch/x86/include/asm/current.h | 32 +-
arch/x86/include/asm/debugreg.h | 2 +-
arch/x86/include/asm/disabled-features.h | 17 +-
arch/x86/include/asm/efi.h | 109 +-
arch/x86/include/asm/elf.h | 5 -
arch/x86/include/asm/entry-common.h | 4 +-
arch/x86/include/asm/fpu/signal.h | 7 -
arch/x86/include/asm/ftrace.h | 49 +-
arch/x86/include/asm/hardirq.h | 3 +-
arch/x86/include/asm/hyperv-tlfs.h | 48 +-
arch/x86/include/asm/hyperv_timer.h | 9 +
arch/x86/include/asm/irq_remapping.h | 4 -
arch/x86/include/asm/irq_stack.h | 12 +-
arch/x86/include/asm/irqdomain.h | 4 +-
arch/x86/include/asm/kasan.h | 3 +
arch/x86/include/asm/kvm-x86-ops.h | 4 +-
arch/x86/include/asm/kvm_host.h | 145 +-
arch/x86/include/asm/linkage.h | 63 +-
arch/x86/include/asm/memtype.h | 5 +-
arch/x86/include/asm/microcode.h | 4 +-
arch/x86/include/asm/microcode_intel.h | 5 +-
arch/x86/include/asm/mshyperv.h | 2 -
arch/x86/include/asm/msi.h | 6 +
arch/x86/include/asm/msr-index.h | 22 +-
arch/x86/include/asm/mtrr.h | 16 +-
arch/x86/include/asm/nospec-branch.h | 178 +-
arch/x86/include/asm/page_types.h | 12 +-
arch/x86/include/asm/paravirt.h | 17 +-
arch/x86/include/asm/paravirt_types.h | 89 +-
arch/x86/include/asm/pci.h | 5 +-
arch/x86/include/asm/perf_event.h | 6 +-
arch/x86/include/asm/pgtable-3level.h | 171 +-
arch/x86/include/asm/pgtable-3level_types.h | 7 +
arch/x86/include/asm/pgtable.h | 27 +-
arch/x86/include/asm/pgtable_32.h | 9 -
arch/x86/include/asm/pgtable_64.h | 1 -
arch/x86/include/asm/pgtable_64_types.h | 1 +
arch/x86/include/asm/pgtable_areas.h | 8 +-
arch/x86/include/asm/pgtable_types.h | 4 +-
arch/x86/include/asm/preempt.h | 27 +-
arch/x86/include/asm/processor-flags.h | 2 +-
arch/x86/include/asm/processor.h | 144 +-
arch/x86/include/asm/qspinlock_paravirt.h | 47 +-
arch/x86/include/asm/realmode.h | 1 +
arch/x86/include/asm/resctrl.h | 8 +-
arch/x86/include/asm/segment.h | 2 +-
arch/x86/include/asm/set_memory.h | 3 +
arch/x86/include/asm/sgx.h | 33 +-
arch/x86/include/asm/sighandling.h | 9 +
arch/x86/include/asm/signal.h | 5 -
arch/x86/include/asm/smp.h | 12 +-
arch/x86/include/asm/stackprotector.h | 14 +-
arch/x86/include/asm/svm.h | 100 +-
arch/x86/include/asm/switch_to.h | 7 +-
arch/x86/include/asm/tdx.h | 2 +
arch/x86/include/asm/text-patching.h | 1 +
arch/x86/include/asm/x86_init.h | 4 +
arch/x86/include/uapi/asm/kvm.h | 13 +-
arch/x86/kernel/Makefile | 6 +-
arch/x86/kernel/acpi/cstate.c | 24 +-
arch/x86/kernel/alternative.c | 541 +-
arch/x86/kernel/amd_gart_64.c | 2 +-
arch/x86/kernel/apic/apic.c | 13 +-
arch/x86/kernel/apic/msi.c | 211 +-
arch/x86/kernel/apic/vector.c | 4 -
arch/x86/kernel/asm-offsets.c | 5 +
arch/x86/kernel/asm-offsets_64.c | 2 +-
arch/x86/kernel/callthunks.c | 388 +
arch/x86/kernel/cpu/Makefile | 3 -
arch/x86/kernel/cpu/amd.c | 2 +-
arch/x86/kernel/cpu/bugs.c | 160 +-
arch/x86/kernel/cpu/cacheinfo.c | 179 +
arch/x86/kernel/cpu/common.c | 101 +-
arch/x86/kernel/cpu/cpuid-deps.c | 1 +
arch/x86/kernel/cpu/hygon.c | 2 +-
arch/x86/kernel/cpu/intel.c | 207 +-
arch/x86/kernel/cpu/intel_epb.c | 7 +-
arch/x86/kernel/cpu/mce/amd.c | 33 +-
arch/x86/kernel/cpu/mce/severity.c | 8 +-
arch/x86/kernel/cpu/microcode/amd.c | 5 +-
arch/x86/kernel/cpu/microcode/core.c | 205 +-
arch/x86/kernel/cpu/microcode/intel.c | 167 +-
arch/x86/kernel/cpu/mshyperv.c | 6 +
arch/x86/kernel/cpu/mtrr/amd.c | 8 +-
arch/x86/kernel/cpu/mtrr/centaur.c | 8 +-
arch/x86/kernel/cpu/mtrr/cyrix.c | 42 +-
arch/x86/kernel/cpu/mtrr/generic.c | 107 +-
arch/x86/kernel/cpu/mtrr/mtrr.c | 173 +-
arch/x86/kernel/cpu/mtrr/mtrr.h | 15 +-
arch/x86/kernel/cpu/resctrl/core.c | 4 +-
arch/x86/kernel/cpu/resctrl/ctrlmondata.c | 3 +-
arch/x86/kernel/cpu/resctrl/internal.h | 10 -
arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 8 +-
arch/x86/kernel/cpu/scattered.c | 1 +
arch/x86/kernel/cpu/sgx/encl.c | 39 +-
arch/x86/kernel/cpu/sgx/ioctl.c | 6 +-
arch/x86/kernel/cpu/sgx/main.c | 8 +-
arch/x86/kernel/cpu/tsx.c | 38 +-
arch/x86/kernel/cpuid.c | 2 +-
arch/x86/kernel/crash_dump_64.c | 2 +-
arch/x86/kernel/devicetree.c | 18 +-
arch/x86/kernel/dumpstack_32.c | 4 +-
arch/x86/kernel/dumpstack_64.c | 2 +-
arch/x86/kernel/espfix_64.c | 12 +-
arch/x86/kernel/fpu/core.c | 19 +-
arch/x86/kernel/fpu/init.c | 7 +-
arch/x86/kernel/fpu/regset.c | 2 +-
arch/x86/kernel/fpu/signal.c | 2 +-
arch/x86/kernel/fpu/xstate.c | 64 +-
arch/x86/kernel/fpu/xstate.h | 4 +-
arch/x86/kernel/ftrace.c | 28 +-
arch/x86/kernel/ftrace_64.S | 37 +-
arch/x86/kernel/head64.c | 2 +-
arch/x86/kernel/head_32.S | 22 -
arch/x86/kernel/head_64.S | 1 +
arch/x86/kernel/hw_breakpoint.c | 2 +-
arch/x86/kernel/i8259.c | 2 +-
arch/x86/kernel/irq_32.c | 13 +-
arch/x86/kernel/irq_64.c | 6 +-
arch/x86/kernel/kprobes/core.c | 21 +-
arch/x86/kernel/kprobes/opt.c | 28 +-
arch/x86/kernel/kvm.c | 20 +-
arch/x86/kernel/module.c | 60 +-
arch/x86/kernel/msr.c | 2 +-
arch/x86/kernel/paravirt.c | 21 +-
arch/x86/kernel/process.c | 4 +-
arch/x86/kernel/process_32.c | 6 +-
arch/x86/kernel/process_64.c | 10 +-
arch/x86/kernel/ptrace.c | 174 +-
arch/x86/kernel/relocate_kernel_64.S | 5 +-
arch/x86/kernel/resource.c | 12 +-
arch/x86/kernel/setup.c | 17 +-
arch/x86/kernel/setup_percpu.c | 9 +-
arch/x86/kernel/signal.c | 654 +-
.../x86/{ia32/ia32_signal.c => kernel/signal_32.c} | 117 +-
arch/x86/kernel/signal_64.c | 383 +
arch/x86/kernel/smpboot.c | 20 +-
arch/x86/kernel/static_call.c | 3 +-
arch/x86/kernel/topology.c | 2 +-
arch/x86/kernel/traps.c | 8 +-
arch/x86/kernel/tsc.c | 2 +-
arch/x86/kernel/unwind_orc.c | 21 +-
arch/x86/kernel/uprobes.c | 4 +-
arch/x86/kernel/vmlinux.lds.S | 37 +-
arch/x86/kernel/x86_init.c | 3 +
arch/x86/kvm/Kconfig | 11 +
arch/x86/kvm/Makefile | 6 +-
arch/x86/kvm/cpuid.c | 39 +-
arch/x86/kvm/emulate.c | 355 +-
arch/x86/kvm/hyperv.c | 366 +-
arch/x86/kvm/hyperv.h | 64 +-
arch/x86/kvm/irq.c | 7 +-
arch/x86/kvm/irq_comm.c | 5 +-
arch/x86/kvm/kvm_cache_regs.h | 5 -
arch/x86/kvm/kvm_emulate.h | 48 +-
arch/x86/kvm/lapic.c | 16 +-
arch/x86/kvm/lapic.h | 6 +-
arch/x86/kvm/mmu/mmu.c | 189 +-
arch/x86/kvm/mmu/mmu_internal.h | 33 +-
arch/x86/kvm/mmu/paging_tmpl.h | 6 +-
arch/x86/kvm/mmu/spte.c | 12 +
arch/x86/kvm/mmu/spte.h | 21 +-
arch/x86/kvm/mmu/tdp_mmu.c | 127 +-
arch/x86/kvm/mmu/tdp_mmu.h | 2 +
arch/x86/kvm/pmu.c | 93 +-
arch/x86/kvm/pmu.h | 9 +-
arch/x86/kvm/reverse_cpuid.h | 28 +-
arch/x86/kvm/smm.c | 649 +
arch/x86/kvm/smm.h | 168 +
arch/x86/kvm/svm/hyperv.c | 18 +
arch/x86/kvm/svm/hyperv.h | 50 +-
arch/x86/kvm/svm/nested.c | 64 +-
arch/x86/kvm/svm/pmu.c | 4 +-
arch/x86/kvm/svm/sev.c | 6 +-
arch/x86/kvm/svm/svm.c | 79 +-
arch/x86/kvm/svm/svm.h | 5 +-
arch/x86/kvm/svm/svm_onhyperv.c | 8 +-
arch/x86/kvm/svm/svm_onhyperv.h | 25 +-
arch/x86/kvm/svm/vmenter.S | 1 +
arch/x86/kvm/trace.h | 36 +-
arch/x86/kvm/vmx/capabilities.h | 24 -
arch/x86/kvm/vmx/{evmcs.c => hyperv.c} | 45 +-
arch/x86/kvm/vmx/{evmcs.h => hyperv.h} | 12 +-
arch/x86/kvm/vmx/nested.c | 132 +-
arch/x86/kvm/vmx/nested.h | 7 +-
arch/x86/kvm/vmx/pmu_intel.c | 11 +-
arch/x86/kvm/vmx/sgx.c | 4 +-
arch/x86/kvm/vmx/vmcs12.h | 5 +-
arch/x86/kvm/vmx/vmenter.S | 2 +
arch/x86/kvm/vmx/vmx.c | 111 +-
arch/x86/kvm/vmx/vmx_ops.h | 20 +-
arch/x86/kvm/x86.c | 563 +-
arch/x86/kvm/x86.h | 1 +
arch/x86/kvm/xen.c | 663 +-
arch/x86/kvm/xen.h | 13 +-
arch/x86/lib/Makefile | 1 +
arch/x86/lib/error-inject.c | 1 +
arch/x86/lib/memcpy_32.c | 187 -
arch/x86/lib/memmove_32.S | 200 +
arch/x86/lib/putuser.S | 62 +-
arch/x86/lib/retpoline.S | 107 +-
arch/x86/mm/cpu_entry_area.c | 58 +-
arch/x86/mm/init.c | 2 +-
arch/x86/mm/init_64.c | 133 +-
arch/x86/mm/ioremap.c | 8 +-
arch/x86/mm/kasan_init_64.c | 53 +-
arch/x86/mm/kmmio.c | 50 +-
arch/x86/mm/mem_encrypt_boot.S | 4 +-
arch/x86/mm/mem_encrypt_identity.c | 18 +-
arch/x86/mm/pat/cpa-test.c | 4 +-
arch/x86/mm/pat/memtype.c | 157 +-
arch/x86/mm/pat/set_memory.c | 123 +-
arch/x86/mm/pgtable.c | 22 +-
arch/x86/mm/pti.c | 2 +-
arch/x86/net/bpf_jit_comp.c | 169 +-
arch/x86/pci/acpi.c | 39 +-
arch/x86/platform/efi/Makefile | 5 +-
arch/x86/platform/efi/efi.c | 54 +-
.../firmware => arch/x86/platform}/efi/fake_mem.c | 79 +-
arch/x86/platform/efi/memmap.c | 239 +
.../x86/platform}/efi/runtime-map.c | 7 +-
arch/x86/platform/olpc/olpc-xo15-sci.c | 3 +-
arch/x86/power/cpu.c | 26 +-
arch/x86/power/hibernate.c | 2 +-
arch/x86/realmode/init.c | 8 +-
arch/x86/um/asm/elf.h | 4 -
arch/x86/xen/enlighten_pv.c | 6 +-
arch/x86/xen/smp.c | 24 +-
arch/x86/xen/smp_pv.c | 12 +-
arch/x86/xen/spinlock.c | 6 +-
arch/x86/xen/xen-asm.S | 8 +-
arch/xtensa/configs/audio_kc705_defconfig | 1 -
arch/xtensa/configs/cadence_csp_defconfig | 4 -
arch/xtensa/configs/generic_kc705_defconfig | 1 -
arch/xtensa/configs/nommu_kc705_defconfig | 1 -
arch/xtensa/configs/smp_lx200_defconfig | 1 -
arch/xtensa/configs/xip_kc705_defconfig | 1 -
arch/xtensa/include/asm/pgtable.h | 2 -
arch/xtensa/include/asm/stackprotector.h | 9 +-
arch/xtensa/kernel/xtensa_ksyms.c | 2 +
arch/xtensa/lib/Makefile | 2 +-
arch/xtensa/lib/umulsidi3.S | 230 +
block/bdev.c | 4 +-
block/bfq-cgroup.c | 28 +-
block/bfq-iosched.c | 117 +-
block/bfq-iosched.h | 36 +-
block/bfq-wf2q.c | 157 +-
block/bio.c | 146 +-
block/blk-cgroup.c | 96 +-
block/blk-cgroup.h | 10 +
block/blk-core.c | 84 +-
block/blk-crypto-internal.h | 22 +-
block/blk-crypto-profile.c | 1 +
block/blk-crypto-sysfs.c | 11 +-
block/blk-crypto.c | 43 +-
block/blk-ia-ranges.c | 3 +-
block/blk-iocost.c | 61 +-
block/blk-iolatency.c | 39 +-
block/blk-map.c | 14 +-
block/blk-merge.c | 44 +-
block/blk-mq-sched.c | 8 +-
block/blk-mq-sysfs.c | 11 +-
block/blk-mq.c | 236 +-
block/blk-mq.h | 14 +-
block/blk-settings.c | 6 +-
block/blk-sysfs.c | 137 +-
block/blk-throttle.c | 102 +-
block/blk-wbt.c | 26 +-
block/blk-wbt.h | 17 +-
block/blk.h | 27 +-
block/bsg-lib.c | 2 +
block/bsg.c | 13 +-
block/elevator.c | 254 +-
block/elevator.h | 20 +-
block/fops.c | 7 -
block/genhd.c | 39 +-
block/holder.c | 103 +-
block/ioctl.c | 12 +-
block/kyber-iosched.c | 2 +-
block/mq-deadline.c | 83 +-
block/sed-opal.c | 39 +
crypto/Kconfig | 9 +-
crypto/Makefile | 1 -
crypto/aes_generic.c | 2 +-
crypto/aes_ti.c | 2 +-
crypto/af_alg.c | 135 +-
crypto/algapi.c | 160 +-
crypto/algboss.c | 22 +-
crypto/anubis.c | 2 +-
crypto/api.c | 11 +-
crypto/blowfish_common.c | 3 +-
crypto/blowfish_generic.c | 3 +-
crypto/camellia_generic.c | 2 +-
crypto/cast5_generic.c | 2 +-
crypto/cast6_generic.c | 2 +-
crypto/ccm.c | 2 +-
crypto/cryptd.c | 36 +-
crypto/des_generic.c | 2 +-
crypto/dh.c | 4 +-
crypto/fcrypt.c | 2 +-
crypto/internal.h | 20 +-
crypto/kdf_sp800108.c | 10 +-
crypto/khazad.c | 2 +-
crypto/rsa-pkcs1pad.c | 7 +-
crypto/seed.c | 2 +-
crypto/serpent_generic.c | 2 +-
crypto/shash.c | 27 +-
crypto/skcipher.c | 2 +-
crypto/sm4_generic.c | 2 +-
crypto/tcrypt.c | 317 +-
crypto/tea.c | 2 +-
crypto/testmgr.c | 109 +-
crypto/testmgr.h | 977 +
crypto/twofish_common.c | 2 +-
crypto/twofish_generic.c | 2 +-
drivers/Kconfig | 2 +
drivers/Makefile | 1 +
drivers/accel/Kconfig | 26 +
drivers/accel/Makefile | 3 +
drivers/accel/drm_accel.c | 323 +
drivers/accel/ivpu/Kconfig | 15 +
drivers/accel/ivpu/Makefile | 16 +
drivers/accel/ivpu/TODO | 11 +
drivers/accel/ivpu/ivpu_drv.c | 654 +
drivers/accel/ivpu/ivpu_drv.h | 190 +
drivers/accel/ivpu/ivpu_fw.c | 423 +
drivers/accel/ivpu/ivpu_fw.h | 38 +
drivers/accel/ivpu/ivpu_gem.c | 753 +
drivers/accel/ivpu/ivpu_gem.h | 127 +
drivers/accel/ivpu/ivpu_hw.h | 170 +
drivers/accel/ivpu/ivpu_hw_mtl.c | 1084 +
drivers/accel/ivpu/ivpu_hw_mtl_reg.h | 280 +
drivers/accel/ivpu/ivpu_hw_reg_io.h | 115 +
drivers/accel/ivpu/ivpu_ipc.c | 510 +
drivers/accel/ivpu/ivpu_ipc.h | 93 +
drivers/accel/ivpu/ivpu_job.c | 614 +
drivers/accel/ivpu/ivpu_job.h | 67 +
drivers/accel/ivpu/ivpu_jsm_msg.c | 169 +
drivers/accel/ivpu/ivpu_jsm_msg.h | 23 +
drivers/accel/ivpu/ivpu_mmu.c | 883 +
drivers/accel/ivpu/ivpu_mmu.h | 50 +
drivers/accel/ivpu/ivpu_mmu_context.c | 398 +
drivers/accel/ivpu/ivpu_mmu_context.h | 50 +
drivers/accel/ivpu/ivpu_pm.c | 329 +
drivers/accel/ivpu/ivpu_pm.h | 38 +
drivers/accel/ivpu/vpu_boot_api.h | 349 +
drivers/accel/ivpu/vpu_jsm_api.h | 999 +
drivers/accessibility/speakup/Makefile | 4 +-
drivers/accessibility/speakup/kobjects.c | 3 +
drivers/accessibility/speakup/main.c | 72 +-
drivers/accessibility/speakup/makemapdata.c | 7 +-
drivers/accessibility/speakup/speakup.h | 1 +
drivers/accessibility/speakup/speakup_acntpc.c | 38 +-
drivers/accessibility/speakup/speakup_acntsa.c | 37 +-
drivers/accessibility/speakup/speakup_apollo.c | 46 +-
drivers/accessibility/speakup/speakup_audptr.c | 42 +-
drivers/accessibility/speakup/speakup_bns.c | 36 +-
drivers/accessibility/speakup/speakup_decext.c | 44 +-
drivers/accessibility/speakup/speakup_decpc.c | 48 +-
drivers/accessibility/speakup/speakup_dectlk.c | 45 +-
drivers/accessibility/speakup/speakup_dtlk.c | 50 +-
drivers/accessibility/speakup/speakup_dummy.c | 53 +-
drivers/accessibility/speakup/speakup_keypc.c | 29 +-
drivers/accessibility/speakup/speakup_ltlk.c | 53 +-
drivers/accessibility/speakup/speakup_soft.c | 59 +-
drivers/accessibility/speakup/speakup_spkout.c | 43 +-
drivers/accessibility/speakup/speakup_txprt.c | 45 +-
drivers/accessibility/speakup/spk_types.h | 2 +-
drivers/accessibility/speakup/varhandlers.c | 1 +
drivers/acpi/Kconfig | 12 +-
drivers/acpi/Makefile | 1 +
drivers/acpi/ac.c | 8 +-
drivers/acpi/acpi_ffh.c | 55 +
drivers/acpi/acpi_pad.c | 7 +-
drivers/acpi/acpi_pcc.c | 47 +-
drivers/acpi/acpi_video.c | 25 +-
drivers/acpi/acpica/Makefile | 1 +
drivers/acpi/acpica/acglobal.h | 1 +
drivers/acpi/acpica/actables.h | 5 -
drivers/acpi/acpica/acutils.h | 13 +
drivers/acpi/acpica/dsmethod.c | 10 +-
drivers/acpi/acpica/dswexec.c | 6 +-
drivers/acpi/acpica/evevent.c | 11 +
drivers/acpi/acpica/evregion.c | 9 +
drivers/acpi/acpica/evxfregn.c | 92 +-
drivers/acpi/acpica/exconfig.c | 4 +-
drivers/acpi/acpica/exfield.c | 8 +-
drivers/acpi/acpica/exserial.c | 6 +
drivers/acpi/acpica/hwsleep.c | 14 +
drivers/acpi/acpica/tbdata.c | 2 +-
drivers/acpi/acpica/tbfadt.c | 2 +-
drivers/acpi/acpica/tbprint.c | 77 +-
drivers/acpi/acpica/tbutils.c | 2 +-
drivers/acpi/acpica/tbxfroot.c | 32 +-
drivers/acpi/acpica/utcksum.c | 170 +
drivers/acpi/acpica/utcopy.c | 7 -
drivers/acpi/acpica/utglobal.c | 4 +
drivers/acpi/acpica/utstring.c | 10 +-
drivers/acpi/apei/apei-base.c | 2 +-
drivers/acpi/apei/einj.c | 56 +-
drivers/acpi/apei/ghes.c | 130 +-
drivers/acpi/arm64/Kconfig | 3 +
drivers/acpi/arm64/Makefile | 1 +
drivers/acpi/arm64/apmt.c | 178 +
drivers/acpi/arm64/iort.c | 16 +-
drivers/acpi/battery.c | 16 +-
drivers/acpi/bus.c | 5 +
drivers/acpi/button.c | 5 +-
drivers/acpi/cppc_acpi.c | 4 +-
drivers/acpi/ec.c | 47 +-
drivers/acpi/fan_attr.c | 16 +-
drivers/acpi/fan_core.c | 1 +
drivers/acpi/hed.c | 3 +-
drivers/acpi/internal.h | 1 +
drivers/acpi/irq.c | 5 +-
drivers/acpi/nfit/core.c | 3 +-
drivers/acpi/nfit/intel.c | 30 +-
drivers/acpi/numa/hmat.c | 34 +-
drivers/acpi/pci_irq.c | 6 +-
drivers/acpi/pci_root.c | 1 +
drivers/acpi/pfr_telemetry.c | 6 +-
drivers/acpi/pfr_update.c | 8 +-
drivers/acpi/power.c | 2 +-
drivers/acpi/processor_idle.c | 9 +-
drivers/acpi/processor_perflib.c | 100 +-
drivers/acpi/processor_throttling.c | 4 +-
drivers/acpi/resource.c | 32 +-
drivers/acpi/sbs.c | 9 +-
drivers/acpi/sbshc.c | 7 +-
drivers/acpi/scan.c | 2 +-
drivers/acpi/sysfs.c | 5 +-
drivers/acpi/tables.c | 17 +-
drivers/acpi/thermal.c | 9 +-
drivers/acpi/tiny-power-button.c | 10 +-
drivers/acpi/video_detect.c | 133 +-
drivers/acpi/x86/s2idle.c | 87 +-
drivers/acpi/x86/utils.c | 24 +-
drivers/amba/bus.c | 6 -
drivers/ata/Kconfig | 13 +-
drivers/ata/Makefile | 1 -
drivers/ata/ahci.c | 33 +-
drivers/ata/ahci.h | 245 +-
drivers/ata/libahci.c | 20 +-
drivers/ata/libahci_platform.c | 2 +-
drivers/ata/libata-acpi.c | 4 +-
drivers/ata/libata-core.c | 7 +-
drivers/ata/libata-eh.c | 40 +-
drivers/ata/libata-sata.c | 50 +-
drivers/ata/libata-scsi.c | 18 +-
drivers/ata/libata-sff.c | 56 -
drivers/ata/libata.h | 1 +
drivers/ata/pata_bk3710.c | 380 -
drivers/ata/pata_ep93xx.c | 3 +-
drivers/ata/pata_ftide010.c | 2 +-
drivers/ata/pata_mpc52xx.c | 2 +-
drivers/ata/sata_dwc_460ex.c | 12 +-
drivers/ata/sata_gemini.c | 2 +-
drivers/ata/sata_nv.c | 2 +-
drivers/ata/sata_promise.c | 2 +-
drivers/ata/sata_sx4.c | 2 +-
drivers/atm/idt77252.c | 6 +-
drivers/base/Makefile | 2 +-
drivers/base/base.h | 1 -
drivers/base/bus.c | 2 +-
drivers/base/cacheinfo.c | 19 +-
drivers/base/class.c | 7 +-
drivers/base/core.c | 66 +-
drivers/base/dd.c | 8 +-
drivers/base/devres.c | 3 +
drivers/base/firmware_loader/firmware.h | 2 -
drivers/base/firmware_loader/main.c | 2 +-
drivers/base/firmware_loader/sysfs.c | 6 +-
drivers/base/firmware_loader/sysfs.h | 6 +-
drivers/base/memory.c | 38 +
drivers/base/platform-msi.c | 6 +-
drivers/base/platform.c | 4 +-
drivers/base/power/domain.c | 176 +-
drivers/base/power/domain_governor.c | 3 +
drivers/base/power/runtime.c | 145 +-
drivers/base/property.c | 36 +-
drivers/base/regmap/Kconfig | 6 +-
drivers/base/regmap/Makefile | 1 +
drivers/base/regmap/regmap-fsi.c | 231 +
drivers/base/regmap/regmap-irq.c | 59 +-
drivers/base/regmap/regmap.c | 13 +
drivers/base/test/Kconfig | 1 +
drivers/bcma/driver_gpio.c | 8 +-
drivers/bcma/main.c | 4 +-
drivers/bcma/sprom.c | 2 +-
drivers/block/Kconfig | 43 -
drivers/block/Makefile | 1 -
drivers/block/aoe/aoechr.c | 2 +-
drivers/block/drbd/Kconfig | 2 +-
drivers/block/drbd/Makefile | 2 +-
drivers/block/drbd/drbd_actlog.c | 8 +-
drivers/block/drbd/drbd_bitmap.c | 62 +-
drivers/block/drbd/drbd_debugfs.c | 2 +-
drivers/block/drbd/drbd_debugfs.h | 2 +-
drivers/block/drbd/drbd_int.h | 78 +-
drivers/block/drbd/drbd_interval.c | 2 +-
drivers/block/drbd/drbd_interval.h | 2 +-
drivers/block/drbd/drbd_main.c | 25 +-
drivers/block/drbd/drbd_nl.c | 27 +-
drivers/block/drbd/drbd_nla.c | 2 +-
drivers/block/drbd/drbd_nla.h | 2 +-
drivers/block/drbd/drbd_polymorph_printk.h | 141 +
drivers/block/drbd/drbd_proc.c | 2 +-
drivers/block/drbd/drbd_protocol.h | 2 +-
drivers/block/drbd/drbd_receiver.c | 108 +-
drivers/block/drbd/drbd_req.c | 8 +-
drivers/block/drbd/drbd_req.h | 2 +-
drivers/block/drbd/drbd_state.c | 2 +-
drivers/block/drbd/drbd_state.h | 2 +-
drivers/block/drbd/drbd_state_change.h | 2 +-
drivers/block/drbd/drbd_strings.c | 2 +-
drivers/block/drbd/drbd_strings.h | 2 +-
drivers/block/drbd/drbd_vli.h | 2 +-
drivers/block/drbd/drbd_worker.c | 18 +-
drivers/block/floppy.c | 4 +-
drivers/block/loop.c | 42 +-
drivers/block/nbd.c | 11 +-
drivers/block/null_blk/main.c | 22 +-
drivers/block/null_blk/null_blk.h | 8 +
drivers/block/null_blk/zoned.c | 95 +-
drivers/block/pktcdvd.c | 2944 --
drivers/block/ublk_drv.c | 82 +-
drivers/block/virtio_blk.c | 8 +-
drivers/block/xen-blkfront.c | 1 -
drivers/block/zram/Kconfig | 9 +
drivers/block/zram/zcomp.c | 6 +-
drivers/block/zram/zcomp.h | 2 +-
drivers/block/zram/zram_drv.c | 619 +-
drivers/block/zram/zram_drv.h | 24 +-
drivers/bluetooth/Kconfig | 23 +
drivers/bluetooth/Makefile | 1 +
drivers/bluetooth/btintel.c | 21 +-
drivers/bluetooth/btrtl.c | 7 +
drivers/bluetooth/btrtl.h | 21 +
drivers/bluetooth/btusb.c | 234 +-
drivers/bluetooth/hci_bcm.c | 13 +-
drivers/bluetooth/hci_bcm4377.c | 2514 ++
drivers/bluetooth/hci_bcsp.c | 4 +-
drivers/bluetooth/hci_h5.c | 2 +-
drivers/bluetooth/hci_ll.c | 2 +-
drivers/bluetooth/hci_qca.c | 15 +-
drivers/bluetooth/virtio_bt.c | 35 +-
drivers/bus/fsl-mc/Kconfig | 2 +-
drivers/bus/fsl-mc/dprc-driver.c | 1 -
drivers/bus/fsl-mc/fsl-mc-bus.c | 1 -
drivers/bus/fsl-mc/fsl-mc-msi.c | 25 +-
drivers/bus/intel-ixp4xx-eb.c | 9 +-
drivers/bus/mhi/host/boot.c | 4 +-
drivers/bus/mhi/host/internal.h | 2 +-
drivers/bus/mhi/host/pci_generic.c | 25 +-
drivers/bus/mhi/host/pm.c | 3 +-
drivers/bus/sunxi-rsb.c | 38 +-
drivers/bus/ti-sysc.c | 6 +
drivers/char/Kconfig | 36 -
drivers/char/agp/amd-k7-agp.c | 24 +-
drivers/char/agp/amd64-agp.c | 6 +-
drivers/char/agp/ati-agp.c | 22 +-
drivers/char/agp/efficeon-agp.c | 16 +-
drivers/char/agp/intel-agp.c | 11 +-
drivers/char/agp/nvidia-agp.c | 24 +-
drivers/char/agp/sis-agp.c | 7 +-
drivers/char/agp/via-agp.c | 6 +-
drivers/char/hw_random/amd-rng.c | 18 +-
drivers/char/hw_random/cavium-rng-vf.c | 1 -
drivers/char/hw_random/cn10k-rng.c | 1 -
drivers/char/hw_random/core.c | 17 +-
drivers/char/hw_random/geode-rng.c | 36 +-
drivers/char/hw_random/mpfs-rng.c | 1 -
drivers/char/hw_random/mtk-rng.c | 5 +-
drivers/char/hw_random/npcm-rng.c | 15 +-
drivers/char/hw_random/powernv-rng.c | 1 +
drivers/char/hw_random/s390-trng.c | 2 +-
drivers/char/hw_random/stm32-rng.c | 8 +-
drivers/char/hw_random/timeriomem-rng.c | 2 -
drivers/char/hw_random/virtio-rng.c | 1 -
drivers/char/ipmi/Kconfig | 10 +
drivers/char/ipmi/Makefile | 1 +
drivers/char/ipmi/ipmi_kcs_sm.c | 16 +-
drivers/char/ipmi/ipmi_msghandler.c | 14 +-
drivers/char/ipmi/ipmi_si_intf.c | 27 +-
drivers/char/ipmi/ipmi_ssif.c | 2 +-
drivers/char/ipmi/ipmi_watchdog.c | 4 +-
drivers/char/ipmi/kcs_bmc_aspeed.c | 24 +-
drivers/char/ipmi/ssif_bmc.c | 873 +
drivers/char/mem.c | 2 +-
drivers/char/misc.c | 45 +-
drivers/char/random.c | 266 +-
drivers/char/sonypi.c | 3 +-
drivers/char/tpm/eventlog/acpi.c | 12 +-
drivers/char/tpm/st33zp24/i2c.c | 142 +-
drivers/char/tpm/st33zp24/spi.c | 145 +-
drivers/char/tpm/st33zp24/st33zp24.c | 39 +-
drivers/char/tpm/st33zp24/st33zp24.h | 7 +-
drivers/char/tpm/tpm-chip.c | 7 +-
drivers/char/tpm/tpm-dev-common.c | 4 +-
drivers/char/tpm/tpm-interface.c | 5 +-
drivers/char/tpm/tpm_crb.c | 35 +-
drivers/char/tpm/tpm_ftpm_tee.c | 8 +-
drivers/char/tpm/tpm_tis.c | 9 +-
drivers/char/tpm/tpm_tis_core.c | 20 +-
drivers/char/tpm/tpm_tis_core.h | 1 +
drivers/char/tpm/tpm_tis_i2c.c | 3 +-
drivers/char/virtio_console.c | 26 +-
drivers/char/xillybus/xillybus_class.c | 7 +-
drivers/char/xillybus/xillyusb.c | 22 +-
drivers/clk/at91/at91rm9200.c | 2 +-
drivers/clk/clk-bulk.c | 6 +-
drivers/clk/clk-cdce925.c | 21 +-
drivers/clk/clk-fractional-divider.c | 65 +-
drivers/clk/clk-lmk04832.c | 41 +-
drivers/clk/clk-nomadik.c | 2 +-
drivers/clk/clk-stm32mp1.c | 2 +-
drivers/clk/clk-versaclock5.c | 1 -
drivers/clk/clk.c | 32 +
drivers/clk/imx/clk-imx6sll.c | 8 +-
drivers/clk/imx/clk-imx6sx.c | 12 +-
drivers/clk/imx/clk-imx6ul.c | 8 +-
drivers/clk/imx/clk-imx7d.c | 4 +-
drivers/clk/imx/clk-imx7ulp.c | 10 +-
drivers/clk/imx/clk-imx8mm.c | 12 +-
drivers/clk/imx/clk-imx8mn.c | 128 +-
drivers/clk/imx/clk-imx8mp.c | 28 +-
drivers/clk/imx/clk-imx8mq.c | 14 +-
drivers/clk/imx/clk-imx93.c | 46 +-
drivers/clk/imx/clk-imxrt1050.c | 5 +-
drivers/clk/imx/clk-pll14xx.c | 2 +
drivers/clk/imx/clk.c | 5 +-
drivers/clk/imx/clk.h | 3 +-
drivers/clk/ingenic/Kconfig | 10 +
drivers/clk/ingenic/Makefile | 1 +
drivers/clk/ingenic/cgu.c | 42 +-
drivers/clk/ingenic/cgu.h | 17 +-
drivers/clk/ingenic/jz4755-cgu.c | 346 +
drivers/clk/ingenic/x1000-cgu.c | 119 +-
drivers/clk/keystone/syscon-clk.c | 9 +-
drivers/clk/mediatek/Kconfig | 8 +
drivers/clk/mediatek/Makefile | 1 +
drivers/clk/mediatek/clk-fhctl.c | 244 +
drivers/clk/mediatek/clk-fhctl.h | 26 +
drivers/clk/mediatek/clk-mt6795-topckgen.c | 76 +-
drivers/clk/mediatek/clk-mt7986-infracfg.c | 2 +-
drivers/clk/mediatek/clk-mt8173.c | 76 +-
drivers/clk/mediatek/clk-mt8183.c | 216 +-
drivers/clk/mediatek/clk-mt8186-apmixedsys.c | 66 +-
drivers/clk/mediatek/clk-mt8186-mfg.c | 5 +-
drivers/clk/mediatek/clk-mt8186-topckgen.c | 89 +-
drivers/clk/mediatek/clk-mt8192.c | 76 +-
drivers/clk/mediatek/clk-mt8195-topckgen.c | 78 +-
drivers/clk/mediatek/clk-mtk.c | 2 +-
drivers/clk/mediatek/clk-mtk.h | 7 +-
drivers/clk/mediatek/clk-pll.c | 84 +-
drivers/clk/mediatek/clk-pll.h | 55 +
drivers/clk/mediatek/clk-pllfh.c | 275 +
drivers/clk/mediatek/clk-pllfh.h | 82 +
drivers/clk/meson/clk-pll.c | 21 +-
drivers/clk/microchip/Kconfig | 3 +-
drivers/clk/microchip/clk-mpfs-ccc.c | 6 +
drivers/clk/mstar/Kconfig | 7 +
drivers/clk/mstar/Makefile | 1 +
drivers/clk/mstar/clk-msc313-cpupll.c | 220 +
drivers/clk/qcom/Kconfig | 26 +
drivers/clk/qcom/Makefile | 3 +
drivers/clk/qcom/clk-alpha-pll.c | 16 +
drivers/clk/qcom/clk-alpha-pll.h | 5 +
drivers/clk/qcom/clk-krait.c | 2 +
drivers/clk/qcom/clk-rpm.c | 204 +-
drivers/clk/qcom/clk-rpmh.c | 427 +-
drivers/clk/qcom/dispcc-sc8280xp.c | 3218 ++
drivers/clk/qcom/dispcc-sm6350.c | 4 +-
drivers/clk/qcom/dispcc-sm6375.c | 610 +
drivers/clk/qcom/dispcc-sm8250.c | 38 +-
drivers/clk/qcom/gcc-ipq4019.c | 11 +-
drivers/clk/qcom/gcc-ipq806x.c | 4 +-
drivers/clk/qcom/gcc-ipq8074.c | 1795 +-
drivers/clk/qcom/gcc-msm8939.c | 35 +
drivers/clk/qcom/gcc-msm8974.c | 682 +-
drivers/clk/qcom/gcc-sc8280xp.c | 6 +
drivers/clk/qcom/gcc-sm6125.c | 1 -
drivers/clk/qcom/gcc-sm8250.c | 4 +-
drivers/clk/qcom/gcc-sm8550.c | 3387 ++
drivers/clk/qcom/gdsc.c | 64 +-
drivers/clk/qcom/gdsc.h | 2 -
drivers/clk/qcom/hfpll.c | 4 +-
drivers/clk/qcom/kpss-xcc.c | 13 +-
drivers/clk/qcom/krait-cc.c | 236 +-
drivers/clk/qcom/lpassaudiocc-sc7280.c | 55 +-
drivers/clk/qcom/lpasscorecc-sc7180.c | 34 +-
drivers/clk/qcom/mmcc-msm8974.c | 736 +-
drivers/clk/qcom/reset.c | 4 +-
drivers/clk/qcom/reset.h | 1 +
drivers/clk/renesas/r8a779a0-cpg-mssr.c | 2 +-
drivers/clk/renesas/r8a779f0-cpg-mssr.c | 28 +-
drivers/clk/renesas/r8a779g0-cpg-mssr.c | 33 +-
drivers/clk/renesas/r9a06g032-clocks.c | 3 +-
drivers/clk/renesas/r9a07g043-cpg.c | 5 -
drivers/clk/renesas/r9a07g044-cpg.c | 10 +-
drivers/clk/renesas/rzg2l-cpg.c | 49 +-
drivers/clk/renesas/rzg2l-cpg.h | 4 +
drivers/clk/rockchip/Kconfig | 8 +
drivers/clk/rockchip/Makefile | 1 +
drivers/clk/rockchip/clk-cpu.c | 69 +-
drivers/clk/rockchip/clk-pll.c | 219 +-
drivers/clk/rockchip/clk-rk3588.c | 2533 ++
drivers/clk/rockchip/clk.c | 15 +-
drivers/clk/rockchip/clk.h | 95 +-
drivers/clk/rockchip/rst-rk3588.c | 857 +
drivers/clk/rockchip/softrst.c | 34 +-
drivers/clk/samsung/clk-exynos-clkout.c | 6 +-
drivers/clk/samsung/clk-exynos5-subcmu.c | 4 +-
drivers/clk/samsung/clk-exynos7885.c | 4 +-
drivers/clk/samsung/clk-pll.c | 1 +
drivers/clk/socfpga/clk-gate-a10.c | 68 -
drivers/clk/socfpga/clk-gate.c | 66 +-
drivers/clk/socfpga/clk.h | 1 -
drivers/clk/spear/spear6xx_clock.c | 8 +-
drivers/clk/st/clkgen-fsyn.c | 5 +-
drivers/clk/sunxi-ng/ccu-sun8i-v3s.h | 6 +-
drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c | 11 +-
drivers/clk/sunxi-ng/ccu-suniv-f1c100s.h | 2 +-
drivers/clk/tegra/clk-bpmp.c | 37 +-
drivers/clk/ti/apll.c | 4 +-
drivers/clk/ti/clk-dra7-atl.c | 16 +-
drivers/clk/ti/clk.c | 36 +-
drivers/clk/ti/clkctrl.c | 4 +-
drivers/clk/ti/clock.h | 10 +-
drivers/clk/ti/composite.c | 2 +-
drivers/clk/ti/divider.c | 2 +-
drivers/clk/ti/dpll.c | 4 +-
drivers/clk/ti/fixed-factor.c | 2 +-
drivers/clk/ti/gate.c | 6 +-
drivers/clk/ti/interface.c | 7 +-
drivers/clk/ti/mux.c | 6 +-
drivers/clk/visconti/pll.c | 1 +
drivers/clk/x86/Kconfig | 5 +-
drivers/clk/x86/clk-cgu-pll.c | 23 +-
drivers/clk/x86/clk-cgu.c | 106 +-
drivers/clk/x86/clk-cgu.h | 46 +-
drivers/clk/x86/clk-lgm.c | 18 +-
drivers/clk/xilinx/Kconfig | 4 +-
drivers/clocksource/arm_arch_timer.c | 22 +-
drivers/clocksource/hyperv_timer.c | 61 +-
drivers/clocksource/ingenic-ost.c | 10 +-
drivers/clocksource/sh_cmt.c | 88 +-
drivers/clocksource/timer-npcm7xx.c | 10 +
drivers/clocksource/timer-riscv.c | 2 +-
drivers/clocksource/timer-sp804.c | 6 +-
drivers/clocksource/timer-ti-dm-systimer.c | 4 +-
drivers/clocksource/timer-ti-dm.c | 21 +-
drivers/counter/stm32-lptimer-cnt.c | 2 +-
drivers/cpufreq/Kconfig.arm | 13 +-
drivers/cpufreq/Kconfig.x86 | 2 +-
drivers/cpufreq/Makefile | 1 +
drivers/cpufreq/acpi-cpufreq.c | 43 +-
drivers/cpufreq/amd-pstate-ut.c | 2 +-
drivers/cpufreq/amd-pstate.c | 49 +-
drivers/cpufreq/amd_freq_sensitivity.c | 2 +
drivers/cpufreq/apple-soc-cpufreq.c | 352 +
drivers/cpufreq/cpufreq-dt-platdev.c | 3 +
drivers/cpufreq/cpufreq.c | 2 +-
drivers/cpufreq/cpufreq_stats.c | 16 +-
drivers/cpufreq/intel_pstate.c | 10 +-
drivers/cpufreq/longhaul.c | 4 +-
drivers/cpufreq/mediatek-cpufreq-hw.c | 14 +-
drivers/cpufreq/qcom-cpufreq-hw.c | 206 +-
drivers/cpufreq/spear-cpufreq.c | 2 +-
drivers/cpufreq/tegra186-cpufreq.c | 11 +-
drivers/cpufreq/ti-cpufreq.c | 36 +
drivers/cpuidle/cpuidle-powernv.c | 5 +-
drivers/cpuidle/cpuidle-psci-domain.c | 3 +-
drivers/cpuidle/cpuidle-pseries.c | 8 +-
drivers/cpuidle/dt_idle_states.c | 11 +-
drivers/crypto/Kconfig | 19 +-
drivers/crypto/Makefile | 2 +-
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-trng.c | 1 -
.../crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c | 2 +-
drivers/crypto/amlogic/amlogic-gxl-core.c | 1 -
drivers/crypto/amlogic/amlogic-gxl.h | 2 +-
drivers/crypto/atmel-ecc.c | 6 +-
drivers/crypto/atmel-sha204a.c | 7 +-
drivers/crypto/caam/blob_gen.c | 9 +
drivers/crypto/caam/caamalg.c | 72 +-
drivers/crypto/caam/caamalg_qi.c | 52 +-
drivers/crypto/caam/caamalg_qi2.c | 173 +-
drivers/crypto/caam/caamhash.c | 87 +-
drivers/crypto/caam/caampkc.c | 50 +-
drivers/crypto/caam/caamrng.c | 1 -
drivers/crypto/caam/regs.h | 3 +
drivers/crypto/cavium/cpt/cptvf_algs.c | 10 +-
drivers/crypto/cavium/nitrox/nitrox_aead.c | 12 +-
drivers/crypto/cavium/nitrox/nitrox_mbx.c | 1 +
drivers/crypto/ccp/ccp-crypto-aes-cmac.c | 21 +-
drivers/crypto/ccp/ccp-crypto-aes-galois.c | 12 +-
drivers/crypto/ccp/ccp-crypto-aes-xts.c | 20 +-
drivers/crypto/ccp/ccp-crypto-aes.c | 29 +-
drivers/crypto/ccp/ccp-crypto-des3.c | 17 +-
drivers/crypto/ccp/ccp-crypto-main.c | 15 +-
drivers/crypto/ccp/ccp-crypto-rsa.c | 18 +-
drivers/crypto/ccp/ccp-crypto-sha.c | 26 +-
drivers/crypto/ccp/sp-pci.c | 11 +-
drivers/crypto/ccree/cc_aead.c | 62 +-
drivers/crypto/ccree/cc_buffer_mgr.c | 18 +-
drivers/crypto/ccree/cc_debugfs.c | 2 +-
drivers/crypto/ccree/cc_driver.c | 10 +-
drivers/crypto/ccree/cc_hash.c | 86 +-
drivers/crypto/chelsio/Kconfig | 2 +-
drivers/crypto/chelsio/chcr_algo.c | 49 +-
drivers/crypto/chelsio/chcr_crypto.h | 6 +-
drivers/crypto/hisilicon/Kconfig | 2 +-
drivers/crypto/hisilicon/Makefile | 2 +-
drivers/crypto/hisilicon/debugfs.c | 1147 +
drivers/crypto/hisilicon/hpre/hpre_crypto.c | 47 +-
drivers/crypto/hisilicon/hpre/hpre_main.c | 17 +-
drivers/crypto/hisilicon/qm.c | 1427 +-
drivers/crypto/hisilicon/qm_common.h | 87 +
drivers/crypto/hisilicon/sec2/sec_crypto.c | 5 +-
drivers/crypto/hisilicon/sec2/sec_main.c | 10 +-
drivers/crypto/hisilicon/zip/zip_main.c | 7 +-
drivers/crypto/img-hash.c | 8 +-
drivers/crypto/inside-secure/safexcel.c | 69 +-
drivers/crypto/inside-secure/safexcel.h | 10 +-
drivers/crypto/inside-secure/safexcel_hash.c | 99 +-
drivers/crypto/ixp4xx_crypto.c | 10 +-
drivers/crypto/keembay/keembay-ocs-hcu-core.c | 26 +-
drivers/crypto/marvell/octeontx/otx_cpt_hw_types.h | 2 +-
drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c | 3 +-
drivers/crypto/marvell/octeontx/otx_cptvf_algs.c | 69 +-
.../crypto/marvell/octeontx2/otx2_cpt_devlink.c | 4 -
drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.c | 79 +-
drivers/crypto/n2_core.c | 6 +
drivers/crypto/nx/nx-842.h | 2 +-
drivers/crypto/omap-sham.c | 2 +-
drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c | 4 +-
drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.h | 2 +-
drivers/crypto/qat/qat_4xxx/adf_drv.c | 146 +-
drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c | 4 +
drivers/crypto/qat/qat_c3xxx/adf_drv.c | 2 +-
.../crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c | 4 +
drivers/crypto/qat/qat_c3xxxvf/adf_drv.c | 2 -
drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c | 4 +
drivers/crypto/qat/qat_c62x/adf_drv.c | 2 +-
drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c | 4 +
drivers/crypto/qat/qat_c62xvf/adf_drv.c | 2 -
drivers/crypto/qat/qat_common/Makefile | 8 +-
drivers/crypto/qat/qat_common/adf_accel_devices.h | 14 +
drivers/crypto/qat/qat_common/adf_cfg_strings.h | 1 +
drivers/crypto/qat/qat_common/adf_common_drv.h | 9 +-
drivers/crypto/qat/qat_common/adf_ctl_drv.c | 6 +
drivers/crypto/qat/qat_common/adf_gen2_config.c | 206 +
drivers/crypto/qat/qat_common/adf_gen2_config.h | 10 +
drivers/crypto/qat/qat_common/adf_gen2_dc.c | 70 +
drivers/crypto/qat/qat_common/adf_gen2_dc.h | 10 +
drivers/crypto/qat/qat_common/adf_gen4_dc.c | 83 +
drivers/crypto/qat/qat_common/adf_gen4_dc.h | 10 +
drivers/crypto/qat/qat_common/adf_init.c | 11 +
drivers/crypto/qat/qat_common/adf_sriov.c | 4 +
drivers/crypto/qat/qat_common/icp_qat_fw.h | 24 +
drivers/crypto/qat/qat_common/icp_qat_fw_comp.h | 404 +
drivers/crypto/qat/qat_common/icp_qat_hw.h | 66 +
drivers/crypto/qat/qat_common/icp_qat_hw_20_comp.h | 164 +
.../qat/qat_common/icp_qat_hw_20_comp_defs.h | 300 +
drivers/crypto/qat/qat_common/qat_algs.c | 208 +-
drivers/crypto/qat/qat_common/qat_algs_send.h | 16 +-
drivers/crypto/qat/qat_common/qat_asym_algs.c | 6 +-
drivers/crypto/qat/qat_common/qat_bl.c | 383 +
drivers/crypto/qat/qat_common/qat_bl.h | 67 +
drivers/crypto/qat/qat_common/qat_comp_algs.c | 344 +
drivers/crypto/qat/qat_common/qat_comp_req.h | 123 +
drivers/crypto/qat/qat_common/qat_compression.c | 297 +
drivers/crypto/qat/qat_common/qat_compression.h | 37 +
drivers/crypto/qat/qat_common/qat_crypto.c | 120 +-
drivers/crypto/qat/qat_common/qat_crypto.h | 55 +-
.../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 4 +
drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 2 +-
.../qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c | 4 +
drivers/crypto/qat/qat_dh895xccvf/adf_drv.c | 2 -
drivers/crypto/qce/aead.c | 22 +-
drivers/crypto/qce/common.c | 5 +-
drivers/crypto/qce/sha.c | 18 +-
drivers/crypto/rockchip/rk3288_crypto.c | 505 +-
drivers/crypto/rockchip/rk3288_crypto.h | 107 +-
drivers/crypto/rockchip/rk3288_crypto_ahash.c | 267 +-
drivers/crypto/rockchip/rk3288_crypto_skcipher.c | 543 +-
drivers/crypto/stm32/Kconfig | 4 +-
drivers/crypto/stm32/stm32-cryp.c | 417 +-
drivers/crypto/talitos.c | 6 +-
drivers/crypto/talitos.h | 4 +-
drivers/crypto/ux500/Kconfig | 10 -
drivers/crypto/ux500/Makefile | 1 -
drivers/crypto/ux500/cryp/Makefile | 10 -
drivers/crypto/ux500/cryp/cryp.c | 394 -
drivers/crypto/ux500/cryp/cryp.h | 315 -
drivers/crypto/ux500/cryp/cryp_core.c | 1600 -
drivers/crypto/ux500/cryp/cryp_irq.c | 45 -
drivers/crypto/ux500/cryp/cryp_irq.h | 31 -
drivers/crypto/ux500/cryp/cryp_irqp.h | 125 -
drivers/crypto/ux500/cryp/cryp_p.h | 122 -
.../crypto/virtio/virtio_crypto_akcipher_algs.c | 5 +-
drivers/crypto/vmx/Makefile | 14 +-
drivers/crypto/vmx/ppc-xlate.pl | 10 +-
drivers/cxl/Kconfig | 18 +
drivers/cxl/Makefile | 2 +-
drivers/cxl/acpi.c | 275 +-
drivers/cxl/core/core.h | 8 -
drivers/cxl/core/hdm.c | 45 +-
drivers/cxl/core/mbox.c | 102 +-
drivers/cxl/core/memdev.c | 1 +
drivers/cxl/core/pci.c | 5 +-
drivers/cxl/core/pmem.c | 109 +-
drivers/cxl/core/port.c | 216 +-
drivers/cxl/core/region.c | 112 +-
drivers/cxl/core/regs.c | 242 +-
drivers/cxl/cxl.h | 140 +-
drivers/cxl/cxlmem.h | 64 +-
drivers/cxl/cxlpci.h | 9 -
drivers/cxl/mem.c | 74 +-
drivers/cxl/pci.c | 228 +-
drivers/cxl/pmem.c | 407 +-
drivers/cxl/security.c | 202 +
drivers/dax/hmem/device.c | 24 +-
drivers/devfreq/devfreq-event.c | 2 +-
drivers/devfreq/devfreq.c | 8 +-
drivers/devfreq/event/exynos-nocp.c | 3 +-
drivers/devfreq/governor_userspace.c | 12 +-
drivers/dio/dio.c | 8 +
drivers/dma-buf/dma-buf-sysfs-stats.c | 2 +-
drivers/dma-buf/dma-buf.c | 23 +-
drivers/dma-buf/dma-heap.c | 30 +-
drivers/dma-buf/dma-resv.c | 9 +-
drivers/dma-buf/st-dma-fence-chain.c | 6 +-
drivers/dma/Kconfig | 11 +-
drivers/dma/Makefile | 1 -
drivers/dma/apple-admac.c | 102 +-
drivers/dma/at_hdmac.c | 1854 +-
drivers/dma/at_hdmac_regs.h | 478 -
drivers/dma/dma-jz4780.c | 8 +
drivers/dma/idma64.c | 8 +-
drivers/dma/idxd/cdev.c | 3 +-
drivers/dma/idxd/device.c | 1 -
drivers/dma/idxd/init.c | 25 +-
drivers/dma/idxd/sysfs.c | 68 +
drivers/dma/ioat/dma.c | 2 +-
drivers/dma/iop-adma.c | 1554 -
drivers/dma/iop-adma.h | 914 -
drivers/dma/qcom/gpi.c | 7 +-
drivers/dma/qcom/hidma.c | 8 +-
drivers/dma/sh/shdma-arm.h | 48 -
drivers/dma/tegra186-gpc-dma.c | 37 +-
drivers/dma/ti/Kconfig | 7 +-
drivers/dma/ti/Makefile | 15 +-
drivers/dma/ti/k3-psil.c | 2 +
drivers/dma/ti/k3-udma-glue.c | 5 +-
drivers/dma/ti/k3-udma.c | 40 +-
drivers/dma/xilinx/xilinx_dma.c | 4 +-
drivers/edac/Kconfig | 5 +-
drivers/edac/amd64_edac.c | 3 +
drivers/edac/armada_xp_edac.c | 3 +
drivers/edac/edac_mc_sysfs.c | 24 +
drivers/edac/edac_module.h | 1 +
drivers/edac/ghes_edac.c | 90 +-
drivers/edac/i10nm_base.c | 6 +-
drivers/edac/i5400_edac.c | 3 +-
drivers/edac/igen6_edac.c | 5 +-
drivers/edac/layerscape_edac.c | 3 +
drivers/edac/pnd2_edac.c | 3 +
drivers/edac/sb_edac.c | 3 +
drivers/edac/skx_base.c | 3 +
drivers/edac/thunderx_edac.c | 3 +
drivers/edac/xgene_edac.c | 3 +
drivers/extcon/extcon-fsa9480.c | 5 +-
drivers/extcon/extcon-max77843.c | 3 +-
drivers/extcon/extcon-rt8973a.c | 5 +-
drivers/extcon/extcon-usbc-tusb320.c | 22 +-
drivers/firmware/arm_ffa/driver.c | 101 +-
drivers/firmware/broadcom/bcm47xx_nvram.c | 18 +
drivers/firmware/cirrus/Kconfig | 2 +-
drivers/firmware/cirrus/Makefile | 2 +-
drivers/firmware/cirrus/cs_dsp.c | 79 +-
drivers/firmware/dmi-id.c | 2 +-
drivers/firmware/efi/Kconfig | 45 -
drivers/firmware/efi/Makefile | 7 +-
drivers/firmware/efi/arm-runtime.c | 4 +-
drivers/firmware/efi/cper.c | 12 +
drivers/firmware/efi/cper_cxl.c | 179 +
drivers/firmware/efi/cper_cxl.h | 66 +
drivers/firmware/efi/earlycon.c | 8 +-
drivers/firmware/efi/efi-init.c | 21 +-
drivers/firmware/efi/efi-pstore.c | 25 +-
drivers/firmware/efi/efi.c | 35 +-
drivers/firmware/efi/fake_mem.h | 10 -
drivers/firmware/efi/fdtparams.c | 4 +
drivers/firmware/efi/libstub/Makefile | 35 +-
drivers/firmware/efi/libstub/Makefile.zboot | 22 +-
drivers/firmware/efi/libstub/alignedmem.c | 7 +-
drivers/firmware/efi/libstub/arm32-stub.c | 37 -
drivers/firmware/efi/libstub/arm64-entry.S | 67 +
drivers/firmware/efi/libstub/arm64-stub.c | 75 +-
drivers/firmware/efi/libstub/arm64.c | 76 +
drivers/firmware/efi/libstub/efi-stub-entry.c | 65 +
drivers/firmware/efi/libstub/efi-stub-helper.c | 150 +-
drivers/firmware/efi/libstub/efi-stub.c | 140 +-
drivers/firmware/efi/libstub/efistub.h | 143 +-
drivers/firmware/efi/libstub/file.c | 122 +-
drivers/firmware/efi/libstub/intrinsics.c | 18 +
drivers/firmware/efi/libstub/loongarch-stub.c | 89 +-
drivers/firmware/efi/libstub/loongarch.c | 80 +
drivers/firmware/efi/libstub/mem.c | 5 +-
drivers/firmware/efi/libstub/printk.c | 154 +
drivers/firmware/efi/libstub/random.c | 96 +-
drivers/firmware/efi/libstub/randomalloc.c | 7 +-
drivers/firmware/efi/libstub/riscv-stub.c | 96 +-
drivers/firmware/efi/libstub/riscv.c | 98 +
drivers/firmware/efi/libstub/screen_info.c | 56 +
drivers/firmware/efi/libstub/string.c | 95 +-
drivers/firmware/efi/libstub/x86-stub.c | 2 +-
drivers/firmware/efi/libstub/zboot-header.S | 5 +-
drivers/firmware/efi/libstub/zboot.c | 307 +-
drivers/firmware/efi/memmap.c | 243 +-
drivers/firmware/efi/runtime-wrappers.c | 1 +
drivers/firmware/efi/x86_fake_mem.c | 75 -
drivers/firmware/google/Kconfig | 15 +
drivers/firmware/google/Makefile | 3 +
drivers/firmware/google/cbmem.c | 129 +
drivers/firmware/google/coreboot_table.c | 11 +-
drivers/firmware/google/coreboot_table.h | 18 +
drivers/firmware/imx/scu-pd.c | 1 +
drivers/firmware/raspberrypi.c | 5 +-
drivers/firmware/tegra/Kconfig | 1 +
drivers/firmware/tegra/bpmp-debugfs.c | 62 +-
drivers/firmware/tegra/bpmp-tegra186.c | 36 +-
drivers/firmware/tegra/bpmp-tegra210.c | 15 +-
drivers/firmware/tegra/bpmp.c | 33 +-
drivers/firmware/tegra/ivc.c | 150 +-
drivers/firmware/ti_sci.c | 24 +-
drivers/firmware/turris-mox-rwtm.c | 1 -
drivers/firmware/xilinx/zynqmp.c | 104 +
drivers/fpga/Kconfig | 15 +-
drivers/fpga/Makefile | 2 +
drivers/fpga/lattice-sysconfig-spi.c | 152 +
drivers/fpga/lattice-sysconfig.c | 397 +
drivers/fpga/lattice-sysconfig.h | 39 +
drivers/fpga/zynq-fpga.c | 8 +-
drivers/fsi/fsi-sbefifo.c | 6 +-
drivers/gnss/core.c | 6 +-
drivers/gpio/Kconfig | 29 +-
drivers/gpio/Makefile | 4 +-
drivers/gpio/TODO | 7 +
drivers/gpio/gpio-104-idio-16.c | 88 +-
drivers/gpio/gpio-aggregator.c | 7 +-
drivers/gpio/gpio-amd8111.c | 4 +
drivers/gpio/gpio-arizona.c | 5 +-
drivers/gpio/gpio-aspeed.c | 5 +-
drivers/gpio/gpio-da9052.c | 9 +-
drivers/gpio/gpio-davinci.c | 14 +-
drivers/gpio/gpio-exar.c | 1 +
drivers/gpio/gpio-ftgpio010.c | 2 +-
drivers/gpio/gpio-gw-pld.c | 5 +-
drivers/gpio/gpio-hisi.c | 7 +
drivers/gpio/gpio-idio-16.c | 146 +
drivers/gpio/gpio-idio-16.h | 71 +
drivers/gpio/gpio-latch.c | 219 +
drivers/gpio/gpio-max7300.c | 5 +-
drivers/gpio/gpio-max732x.c | 6 +-
drivers/gpio/gpio-merrifield.c | 3 +-
drivers/gpio/gpio-mockup.c | 1 +
drivers/gpio/gpio-mvebu.c | 9 +-
drivers/gpio/gpio-mxc.c | 92 +-
drivers/gpio/gpio-pca953x.c | 9 +-
drivers/gpio/gpio-pca9570.c | 49 +-
drivers/gpio/gpio-pcf857x.c | 6 +-
drivers/gpio/gpio-pci-idio-16.c | 119 +-
drivers/gpio/gpio-pl061.c | 15 +-
drivers/gpio/gpio-rockchip.c | 1 +
drivers/gpio/gpio-sim.c | 4 +
drivers/gpio/gpio-sl28cpld.c | 3 +-
drivers/gpio/gpio-sta2x11.c | 411 -
drivers/gpio/gpio-tegra186.c | 3 +-
drivers/gpio/gpio-tpic2810.c | 5 +-
drivers/gpio/gpio-ts4900.c | 5 +-
drivers/gpio/gpio-wm8350.c | 7 +-
drivers/gpio/gpiolib-acpi.c | 134 +-
drivers/gpio/gpiolib-acpi.h | 64 +-
drivers/gpio/gpiolib-cdev.c | 210 +-
drivers/gpio/gpiolib-of.c | 452 +-
drivers/gpio/gpiolib-of.h | 20 +-
drivers/gpio/gpiolib-swnode.c | 123 +
drivers/gpio/gpiolib-swnode.h | 14 +
drivers/gpio/gpiolib-sysfs.h | 2 +
drivers/gpio/gpiolib.c | 337 +-
drivers/gpio/gpiolib.h | 14 +-
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/amd/amdgpu/Makefile | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 14 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 19 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 267 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 18 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 11 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 23 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 136 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 15 +
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 67 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 54 +
drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 7 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 16 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c | 62 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.h | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c | 88 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ids.h | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 13 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_job.h | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 32 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 59 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 39 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 346 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 189 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 12 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 14 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c | 514 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.h | 103 +
drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c | 9 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c | 27 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.h | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 54 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 7 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 259 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c | 44 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 21 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 18 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 94 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 58 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 122 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 2 -
drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 16 +-
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/df_v4_3.c | 61 +
drivers/gpu/drm/amd/amdgpu/df_v4_3.h | 31 +
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 155 +-
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 170 +-
drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c | 33 +-
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 71 +-
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 97 +-
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 439 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0_3.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 39 +-
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c | 17 +-
drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 16 +-
drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 18 +-
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 18 +-
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 43 +-
drivers/gpu/drm/amd/amdgpu/imu_v11_0.c | 7 +-
drivers/gpu/drm/amd/amdgpu/mes_v10_1.c | 108 +-
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 111 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v1_7.c | 2 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c | 4 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_1.c | 4 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.c | 4 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c | 2 +-
drivers/gpu/drm/amd/amdgpu/mmsch_v4_0.h | 1 -
drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c | 6 +
drivers/gpu/drm/amd/amdgpu/mxgpu_ai.h | 1 +
drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c | 6 +
drivers/gpu/drm/amd/amdgpu/mxgpu_nv.h | 1 +
drivers/gpu/drm/amd/amdgpu/nv.c | 28 +-
drivers/gpu/drm/amd/amdgpu/psp_v10_0.c | 80 +-
drivers/gpu/drm/amd/amdgpu/psp_v11_0.c | 131 +-
drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 78 +-
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 30 +-
drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.c | 14 +-
drivers/gpu/drm/amd/amdgpu/psp_v3_1.c | 16 +-
drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 18 +-
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 18 +-
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 71 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 30 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 63 +-
drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c | 25 +-
drivers/gpu/drm/amd/amdgpu/soc15.c | 24 +-
drivers/gpu/drm/amd/amdgpu/soc15d.h | 2 +
drivers/gpu/drm/amd/amdgpu/soc21.c | 47 +-
drivers/gpu/drm/amd/amdgpu/ta_secureDisplay_if.h | 24 +-
drivers/gpu/drm/amd/amdgpu/umc_v8_10.c | 24 +-
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 5 +-
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 5 +-
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 34 +-
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 5 +-
drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 38 +-
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 9 +-
drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 1 +
drivers/gpu/drm/amd/amdkfd/kfd_device.c | 13 +-
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 2 +-
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 3 +-
drivers/gpu/drm/amd/amdkfd/kfd_process.c | 32 +-
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 9 +
drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 127 +-
drivers/gpu/drm/amd/display/Kconfig | 7 +
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 795 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 24 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c | 161 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.h | 26 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 133 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.h | 14 +
.../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 10 +-
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 28 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 4 +
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c | 3 +
.../amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c | 3 +-
.../dc/clk_mgr/dcn30/dcn30_smu11_driver_if.h | 1 +
.../drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c | 4 +-
.../drm/amd/display/dc/clk_mgr/dcn314/dcn314_smu.c | 12 +-
.../amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c | 42 +-
.../dc/clk_mgr/dcn32/dcn32_smu13_driver_if.h | 1 +
drivers/gpu/drm/amd/display/dc/core/dc.c | 167 +-
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 11 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 1 -
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 137 +-
drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 54 +-
drivers/gpu/drm/amd/display/dc/core/dc_stat.c | 1 +
drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 27 +-
drivers/gpu/drm/amd/display/dc/dc.h | 8 +-
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 1 +
drivers/gpu/drm/amd/display/dc/dc_dp_types.h | 4 +-
drivers/gpu/drm/amd/display/dc/dc_link.h | 29 +-
drivers/gpu/drm/amd/display/dc/dc_stream.h | 16 +-
.../amd/display/dc/dce110/dce110_hw_sequencer.c | 22 +-
.../drm/amd/display/dc/dce120/dce120_resource.c | 3 +-
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c | 34 +-
.../gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.c | 8 +-
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c | 28 +-
.../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 44 +-
.../display/dc/dcn10/dcn10_hw_sequencer_debug.c | 4 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.c | 1 -
.../gpu/drm/amd/display/dc/dcn20/dcn20_hubbub.c | 8 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hubp.c | 32 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 127 +-
.../gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 3 +
.../gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c | 8 +-
.../drm/amd/display/dc/dcn301/dcn301_resource.c | 5 +-
.../drm/amd/display/dc/dcn302/dcn302_resource.c | 2 +
.../drm/amd/display/dc/dcn303/dcn303_resource.c | 2 +
.../display/dc/dcn31/dcn31_hpo_dp_link_encoder.c | 5 +-
.../gpu/drm/amd/display/dc/dcn314/dcn314_dccg.c | 7 +
.../display/dc/dcn314/dcn314_dio_stream_encoder.c | 6 +-
.../gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.c | 6 +-
.../gpu/drm/amd/display/dc/dcn314/dcn314_optc.c | 1 -
.../drm/amd/display/dc/dcn314/dcn314_resource.c | 1 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c | 10 +-
.../gpu/drm/amd/display/dc/dcn32/dcn32_hubbub.c | 8 +-
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c | 68 +-
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.h | 2 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.c | 1 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_resource.c | 94 +-
.../gpu/drm/amd/display/dc/dcn32/dcn32_resource.h | 15 +-
.../amd/display/dc/dcn32/dcn32_resource_helpers.c | 33 +-
.../drm/amd/display/dc/dcn321/dcn321_resource.c | 9 +-
.../gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 18 +-
.../amd/display/dc/dml/dcn30/display_mode_vba_30.c | 2 +-
.../gpu/drm/amd/display/dc/dml/dcn31/dcn31_fpu.c | 3 +
.../amd/display/dc/dml/dcn31/display_mode_vba_31.c | 2 +-
.../gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c | 4 +-
.../display/dc/dml/dcn314/display_mode_vba_314.c | 2 +-
.../gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 109 +-
.../amd/display/dc/dml/dcn32/display_mode_vba_32.c | 79 +-
.../dc/dml/dcn32/display_mode_vba_util_32.c | 69 +
.../dc/dml/dcn32/display_mode_vba_util_32.h | 18 +
.../gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.c | 10 +-
.../gpu/drm/amd/display/dc/dml/display_mode_lib.h | 1 +
.../gpu/drm/amd/display/dc/dml/display_mode_vba.h | 4 +-
.../amd/display/dc/gpio/dcn32/hw_factory_dcn32.c | 4 +-
drivers/gpu/drm/amd/display/dc/inc/core_types.h | 23 +-
drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h | 2 +-
drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h | 9 +-
drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h | 1 +
drivers/gpu/drm/amd/display/dc/inc/resource.h | 9 +
.../amd/display/dc/irq/dcn201/irq_service_dcn201.c | 5 -
.../gpu/drm/amd/display/dc/link/link_dp_dpia_bw.c | 28 +
.../gpu/drm/amd/display/dc/link/link_dp_dpia_bw.h | 69 +
.../gpu/drm/amd/display/dc/link/link_hwss_hpo_dp.c | 37 -
drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 3 +
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 86 +-
.../gpu/drm/amd/display/dmub/src/dmub_srv_stat.c | 21 +
drivers/gpu/drm/amd/display/include/dpcd_defs.h | 5 +-
.../drm/amd/display/include/link_service_types.h | 7 +-
.../drm/amd/display/modules/power/power_helpers.c | 40 +
.../drm/amd/display/modules/power/power_helpers.h | 3 +
.../amd/include/asic_reg/dcn/dcn_3_0_0_offset.h | 1 +
.../amd/include/asic_reg/dcn/dcn_3_0_0_sh_mask.h | 1 +
.../drm/amd/include/asic_reg/df/df_4_3_offset.h | 30 +
.../drm/amd/include/asic_reg/df/df_4_3_sh_mask.h | 157 +
.../drm/amd/include/asic_reg/vcn/vcn_2_5_offset.h | 3 +-
.../drm/amd/include/asic_reg/vcn/vcn_2_5_sh_mask.h | 27 +
drivers/gpu/drm/amd/include/atombios.h | 2 +-
drivers/gpu/drm/amd/include/kgd_pp_interface.h | 2 +
drivers/gpu/drm/amd/include/mes_v11_api_def.h | 6 +-
drivers/gpu/drm/amd/include/yellow_carp_offset.h | 1 +
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 11 +-
drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c | 13 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c | 16 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c | 76 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/smu8_hwmgr.c | 16 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c | 31 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/vega12_hwmgr.c | 22 +
.../gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c | 20 +-
drivers/gpu/drm/amd/pm/powerplay/inc/hwmgr.h | 2 +
.../gpu/drm/amd/pm/powerplay/smumgr/smu10_smumgr.c | 10 +-
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 23 +-
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 1 +
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_0.h | 2 +-
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h | 117 +-
.../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_0_ppsmc.h | 8 +-
drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h | 5 +-
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h | 11 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 79 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 126 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 158 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c | 17 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 44 +-
drivers/gpu/drm/bridge/fsl-ldb.c | 57 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 6 +-
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 18 +-
drivers/gpu/drm/drm_atomic_state_helper.c | 6 +-
drivers/gpu/drm/drm_connector.c | 3 +-
drivers/gpu/drm/drm_drv.c | 101 +-
drivers/gpu/drm/drm_edid.c | 528 +-
drivers/gpu/drm/drm_file.c | 2 +-
drivers/gpu/drm/drm_format_helper.c | 66 +
drivers/gpu/drm/drm_gem_shmem_helper.c | 18 +-
drivers/gpu/drm/drm_probe_helper.c | 4 +-
drivers/gpu/drm/drm_sysfs.c | 26 +-
drivers/gpu/drm/etnaviv/etnaviv_gem.c | 8 +-
drivers/gpu/drm/exynos/exynos_drm_dsi.c | 41 +-
drivers/gpu/drm/exynos/exynos_drm_g2d.c | 2 +-
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 5 +-
drivers/gpu/drm/i2c/tda998x_drv.c | 2 +
drivers/gpu/drm/i915/Kconfig | 15 +-
drivers/gpu/drm/i915/Makefile | 7 +-
drivers/gpu/drm/i915/display/dvo_ch7xxx.c | 22 +-
drivers/gpu/drm/i915/display/dvo_sil164.c | 13 +-
drivers/gpu/drm/i915/display/g4x_dp.c | 4 +-
drivers/gpu/drm/i915/display/g4x_hdmi.c | 25 +-
drivers/gpu/drm/i915/display/icl_dsi.c | 2 +-
drivers/gpu/drm/i915/display/intel_atomic.c | 85 +-
drivers/gpu/drm/i915/display/intel_audio.c | 11 +
drivers/gpu/drm/i915/display/intel_audio.h | 2 +
drivers/gpu/drm/i915/display/intel_backlight.c | 539 +-
.../gpu/drm/i915/display/intel_backlight_regs.h | 27 +-
drivers/gpu/drm/i915/display/intel_bios.c | 58 +-
drivers/gpu/drm/i915/display/intel_bios.h | 11 +-
drivers/gpu/drm/i915/display/intel_cdclk.c | 216 +-
drivers/gpu/drm/i915/display/intel_color.c | 1276 +-
drivers/gpu/drm/i915/display/intel_color.h | 10 +-
drivers/gpu/drm/i915/display/intel_connector.c | 2 +-
drivers/gpu/drm/i915/display/intel_crt.c | 53 +-
drivers/gpu/drm/i915/display/intel_ddi.c | 26 +-
drivers/gpu/drm/i915/display/intel_de.h | 39 +-
drivers/gpu/drm/i915/display/intel_display.c | 70 +-
drivers/gpu/drm/i915/display/intel_display.h | 8 +
drivers/gpu/drm/i915/display/intel_display_power.c | 2 +-
drivers/gpu/drm/i915/display/intel_display_types.h | 26 +-
drivers/gpu/drm/i915/display/intel_dmc.c | 47 +-
drivers/gpu/drm/i915/display/intel_dmc.h | 1 -
drivers/gpu/drm/i915/display/intel_dp.c | 274 +-
drivers/gpu/drm/i915/display/intel_dp.h | 19 +
drivers/gpu/drm/i915/display/intel_dp_aux.c | 41 +-
drivers/gpu/drm/i915/display/intel_dp_mst.c | 235 +-
drivers/gpu/drm/i915/display/intel_dsb.c | 98 +-
drivers/gpu/drm/i915/display/intel_dsb.h | 13 +-
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 98 +-
drivers/gpu/drm/i915/display/intel_dvo.c | 410 +-
drivers/gpu/drm/i915/display/intel_dvo_dev.h | 7 +-
drivers/gpu/drm/i915/display/intel_dvo_regs.h | 54 +
drivers/gpu/drm/i915/display/intel_fb.c | 2 +-
drivers/gpu/drm/i915/display/intel_fbc.c | 10 +-
drivers/gpu/drm/i915/display/intel_gmbus.c | 46 +-
drivers/gpu/drm/i915/display/intel_hdmi.c | 21 +-
drivers/gpu/drm/i915/display/intel_hti.c | 3 +
drivers/gpu/drm/i915/display/intel_lvds.c | 4 +-
drivers/gpu/drm/i915/display/intel_panel.c | 9 +
drivers/gpu/drm/i915/display/intel_panel.h | 1 +
drivers/gpu/drm/i915/display/intel_pps.c | 360 +-
drivers/gpu/drm/i915/display/intel_pps.h | 2 +-
drivers/gpu/drm/i915/display/intel_psr.c | 44 +-
drivers/gpu/drm/i915/display/intel_sdvo.c | 2 +-
drivers/gpu/drm/i915/display/intel_snps_phy.c | 15 +-
drivers/gpu/drm/i915/display/intel_tc.c | 55 +-
drivers/gpu/drm/i915/display/intel_vdsc.c | 11 +-
drivers/gpu/drm/i915/display/intel_vrr.c | 55 +-
drivers/gpu/drm/i915/display/skl_scaler.c | 40 +-
drivers/gpu/drm/i915/display/skl_watermark.c | 42 +-
drivers/gpu/drm/i915/display/vlv_dsi.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 61 +-
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_object.c | 3 +
drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 10 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c | 18 +-
.../gpu/drm/i915/gt/intel_execlists_submission.c | 2 +-
drivers/gpu/drm/i915/gt/intel_gt.c | 28 +-
drivers/gpu/drm/i915/gt/intel_gt_mcr.c | 20 +-
drivers/gpu/drm/i915/gt/intel_gt_mcr.h | 12 +-
drivers/gpu/drm/i915/gt/intel_gt_requests.c | 2 +-
drivers/gpu/drm/i915/gt/intel_migrate.c | 53 +-
drivers/gpu/drm/i915/gt/intel_workarounds.c | 5 +-
drivers/gpu/drm/i915/gt/selftest_engine_pm.c | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_huc.c | 57 +-
drivers/gpu/drm/i915/gt/uc/intel_uc.c | 1 +
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 42 +-
drivers/gpu/drm/i915/gvt/kvmgt.c | 30 +-
drivers/gpu/drm/i915/i915_driver.c | 3 +-
drivers/gpu/drm/i915/i915_drv.h | 8 +-
drivers/gpu/drm/i915/i915_gem_evict.c | 37 +-
drivers/gpu/drm/i915/i915_gem_evict.h | 4 +-
drivers/gpu/drm/i915/i915_irq.c | 31 +-
drivers/gpu/drm/i915/i915_params.c | 2 +-
drivers/gpu/drm/i915/i915_pci.c | 51 +-
drivers/gpu/drm/i915/i915_perf.c | 6 +-
drivers/gpu/drm/i915/i915_reg.h | 101 +-
drivers/gpu/drm/i915/i915_sw_fence.c | 2 +-
drivers/gpu/drm/i915/i915_user_extensions.c | 2 +-
drivers/gpu/drm/i915/i915_utils.h | 4 -
drivers/gpu/drm/i915/i915_vma.c | 2 +-
drivers/gpu/drm/i915/intel_memory_region.c | 4 +-
drivers/gpu/drm/i915/intel_uncore.c | 4 +-
drivers/gpu/drm/i915/intel_uncore.h | 44 +-
drivers/gpu/drm/i915/intel_wakeref.h | 21 +-
drivers/gpu/drm/i915/selftests/i915_gem_evict.c | 4 +-
drivers/gpu/drm/i915/{ => soc}/intel_dram.c | 0
drivers/gpu/drm/i915/{ => soc}/intel_dram.h | 0
drivers/gpu/drm/i915/{ => soc}/intel_pch.c | 0
drivers/gpu/drm/i915/{ => soc}/intel_pch.h | 0
drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 57 +-
drivers/gpu/drm/mediatek/mtk_dpi.c | 29 +-
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 8 +
drivers/gpu/drm/mediatek/mtk_drm_plane.c | 74 +-
drivers/gpu/drm/mediatek/mtk_drm_plane.h | 8 +
drivers/gpu/drm/mediatek/mtk_hdmi.c | 7 +-
drivers/gpu/drm/msm/adreno/a3xx_gpu.c | 2 +-
drivers/gpu/drm/msm/adreno/a4xx_gpu.c | 5 +-
drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 29 +-
drivers/gpu/drm/msm/adreno/a5xx_preempt.c | 4 +-
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 12 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 117 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 3 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 29 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.h | 9 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 24 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 104 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c | 11 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 19 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 2 +
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 19 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 27 +-
drivers/gpu/drm/msm/dp/dp_display.c | 12 +-
drivers/gpu/drm/msm/dp/dp_link.c | 21 +-
drivers/gpu/drm/msm/dsi/dsi.c | 7 +-
drivers/gpu/drm/msm/dsi/dsi_host.c | 121 +-
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 2 +
drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 1 +
drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c | 17 +
drivers/gpu/drm/msm/hdmi/hdmi.c | 352 +-
drivers/gpu/drm/msm/hdmi/hdmi.h | 3 -
drivers/gpu/drm/msm/msm_drv.c | 29 +-
drivers/gpu/drm/msm/msm_drv.h | 8 +-
drivers/gpu/drm/msm/msm_gem_shrinker.c | 2 +-
drivers/gpu/drm/msm/msm_gem_submit.c | 3 +-
drivers/gpu/drm/msm/msm_gpu.c | 31 +-
drivers/gpu/drm/msm/msm_gpu.h | 22 +-
drivers/gpu/drm/msm/msm_iommu.c | 20 +-
drivers/gpu/drm/msm/msm_mdss.c | 85 +-
drivers/gpu/drm/msm/msm_mmu.h | 3 +-
drivers/gpu/drm/msm/msm_ringbuffer.h | 28 +
drivers/gpu/drm/panel/Kconfig | 8 +
drivers/gpu/drm/panel/Makefile | 1 +
drivers/gpu/drm/panel/panel-auo-a030jtn01.c | 308 +
drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 4 +-
drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c | 3 +-
drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c | 2 -
drivers/gpu/drm/panel/panel-visionox-vtdr6130.c | 7 +-
drivers/gpu/drm/radeon/atombios.h | 10 +-
drivers/gpu/drm/radeon/radeon_bios.c | 1 +
drivers/gpu/drm/radeon/radeon_device.c | 1 +
drivers/gpu/drm/rcar-du/Kconfig | 2 +-
drivers/gpu/drm/solomon/ssd130x.c | 11 +-
drivers/gpu/drm/sti/sti_dvo.c | 5 +-
drivers/gpu/drm/sti/sti_hda.c | 5 +-
drivers/gpu/drm/sti/sti_hdmi.c | 5 +-
drivers/gpu/drm/tegra/Makefile | 3 +-
drivers/gpu/drm/tegra/dc.c | 4 +-
drivers/gpu/drm/tegra/drm.c | 1 +
drivers/gpu/drm/tegra/hdmi.c | 9 +-
drivers/gpu/drm/tegra/nvdec.c | 171 +-
drivers/gpu/drm/tegra/output.c | 10 +-
drivers/gpu/drm/tegra/riscv.c | 106 +
drivers/gpu/drm/tegra/riscv.h | 30 +
drivers/gpu/drm/tegra/submit.c | 13 +-
drivers/gpu/drm/tegra/uapi.c | 2 +-
drivers/gpu/drm/tests/drm_format_helper_test.c | 14 +-
drivers/gpu/drm/tiny/simpledrm.c | 110 +-
drivers/gpu/drm/vc4/vc4_dsi.c | 2 +
drivers/gpu/drm/vmwgfx/vmwgfx_msg.c | 6 +-
drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 4 +
drivers/gpu/host1x/context.c | 4 +
drivers/gpu/host1x/debug.c | 28 +-
drivers/gpu/host1x/dev.c | 12 +
drivers/gpu/host1x/fence.c | 2 +-
drivers/greybus/svc.c | 3 +-
drivers/hid/Kconfig | 5 +-
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 4 +
drivers/hid/hid-alps.c | 6 -
drivers/hid/hid-apple.c | 141 +-
drivers/hid/hid-core.c | 3 +
drivers/hid/hid-debug.c | 3 +
drivers/hid/hid-elan.c | 6 -
drivers/hid/hid-ft260.c | 325 +-
drivers/hid/hid-hyperv.c | 31 +-
drivers/hid/hid-ids.h | 8 +
drivers/hid/hid-input.c | 11 +
drivers/hid/hid-ite.c | 5 +
drivers/hid/hid-lg4ff.c | 6 +
drivers/hid/hid-logitech-hidpp.c | 41 +-
drivers/hid/hid-mcp2221.c | 325 +-
drivers/hid/hid-multitouch.c | 4 +
drivers/hid/hid-plantronics.c | 9 +
drivers/hid/hid-playstation.c | 1136 +-
drivers/hid/hid-quirks.c | 3 +
drivers/hid/hid-rmi.c | 2 +
drivers/hid/hid-sensor-custom.c | 4 +-
drivers/hid/hid-sony.c | 2 +
drivers/hid/hid-u2fzero.c | 1 -
drivers/hid/hid-uclogic-core.c | 1 +
drivers/hid/hid-uclogic-params-test.c | 4 +-
drivers/hid/hid-uclogic-params.c | 73 +
drivers/hid/hid-uclogic-rdesc-test.c | 4 +-
drivers/hid/hid-uclogic-rdesc.c | 36 +-
drivers/hid/hid-uclogic-rdesc.h | 7 +
drivers/hid/hid-wiimote-core.c | 9 +-
drivers/hid/hid-wiimote-modules.c | 225 +
drivers/hid/hid-wiimote.h | 1 +
drivers/hid/i2c-hid/Kconfig | 4 +-
drivers/hid/i2c-hid/i2c-hid-acpi.c | 5 -
drivers/hid/i2c-hid/i2c-hid-core.c | 27 +-
drivers/hid/i2c-hid/i2c-hid-of-elan.c | 5 +-
drivers/hid/i2c-hid/i2c-hid-of-goodix.c | 5 +-
drivers/hid/i2c-hid/i2c-hid-of.c | 5 +-
drivers/hid/intel-ish-hid/ishtp/client.c | 3 -
drivers/hid/usbhid/hiddev.c | 2 +-
drivers/hid/wacom_sys.c | 8 +
drivers/hid/wacom_wac.c | 4 +
drivers/hid/wacom_wac.h | 1 +
drivers/hsi/clients/ssi_protocol.c | 6 +-
drivers/hsi/controllers/omap_ssi_core.c | 14 +-
drivers/hv/channel_mgmt.c | 6 +-
drivers/hv/hv_balloon.c | 94 +-
drivers/hv/hv_util.c | 4 +-
drivers/hv/ring_buffer.c | 13 +
drivers/hv/vmbus_drv.c | 111 +-
drivers/hwmon/Kconfig | 20 +
drivers/hwmon/Makefile | 2 +
drivers/hwmon/acpi_power_meter.c | 5 +-
drivers/hwmon/adm1177.c | 27 +-
drivers/hwmon/aht10.c | 5 +-
drivers/hwmon/aquacomputer_d5next.c | 233 +-
drivers/hwmon/asus-ec-sensors.c | 2 +
drivers/hwmon/asus_atk0110.c | 6 +-
drivers/hwmon/atxp1.c | 1 +
drivers/hwmon/coretemp.c | 251 +-
drivers/hwmon/dell-smm-hwmon.c | 3 +-
drivers/hwmon/ds1621.c | 2 +-
drivers/hwmon/emc2305.c | 48 +-
drivers/hwmon/fschmd.c | 4 +-
drivers/hwmon/gpio-fan.c | 1 +
drivers/hwmon/gsc-hwmon.c | 6 +-
drivers/hwmon/hwmon.c | 1 +
drivers/hwmon/i5500_temp.c | 2 +-
drivers/hwmon/ibmpex.c | 1 +
drivers/hwmon/ina3221.c | 4 +-
drivers/hwmon/it87.c | 90 +-
drivers/hwmon/jc42.c | 273 +-
drivers/hwmon/lm73.c | 6 +-
drivers/hwmon/lm90.c | 21 +-
drivers/hwmon/ltc2947-core.c | 2 +-
drivers/hwmon/ltc2992.c | 4 +-
drivers/hwmon/max127.c | 5 +-
drivers/hwmon/mr75203.c | 1 +
drivers/hwmon/nct6775-platform.c | 7 +
drivers/hwmon/occ/Kconfig | 2 -
drivers/hwmon/oxp-sensors.c | 284 +
drivers/hwmon/pcf8591.c | 1 +
drivers/hwmon/pmbus/ltc2978.c | 17 +-
drivers/hwmon/pmbus/pmbus_core.c | 52 +-
drivers/hwmon/pmbus/q54sj108a2.c | 1 +
drivers/hwmon/sbrmi.c | 5 +-
drivers/hwmon/sbtsi_temp.c | 5 +-
drivers/hwmon/sht3x.c | 12 +-
drivers/hwmon/sht4x.c | 5 +-
drivers/hwmon/smpro-hwmon.c | 466 +
drivers/hwmon/vt8231.c | 1 -
drivers/hwmon/w83l786ng.c | 1 -
drivers/hwtracing/coresight/coresight-cti-core.c | 2 +-
drivers/hwtracing/coresight/coresight-etm4x-core.c | 155 +-
drivers/hwtracing/coresight/coresight-trbe.c | 1 +
drivers/i2c/busses/Kconfig | 2 +-
drivers/i2c/busses/i2c-amd-mp2-pci.c | 30 +-
drivers/i2c/busses/i2c-amd-mp2.h | 1 +
drivers/i2c/busses/i2c-cadence.c | 11 +-
drivers/i2c/busses/i2c-designware-common.c | 5 -
drivers/i2c/busses/i2c-designware-core.h | 235 +-
drivers/i2c/busses/i2c-designware-master.c | 44 +-
drivers/i2c/busses/i2c-designware-slave.c | 77 +-
drivers/i2c/busses/i2c-gpio.c | 4 +-
drivers/i2c/busses/i2c-hisi.c | 22 +-
drivers/i2c/busses/i2c-imx.c | 9 +-
drivers/i2c/busses/i2c-ismt.c | 3 +
drivers/i2c/busses/i2c-mt65xx.c | 14 +
drivers/i2c/busses/i2c-npcm7xx.c | 98 +-
drivers/i2c/busses/i2c-pasemi-core.c | 32 +-
drivers/i2c/busses/i2c-pasemi-core.h | 5 +
drivers/i2c/busses/i2c-pasemi-platform.c | 6 +
drivers/i2c/busses/i2c-pxa-pci.c | 10 +-
drivers/i2c/busses/i2c-qcom-geni.c | 59 +-
drivers/i2c/busses/i2c-tegra.c | 1 +
drivers/i2c/busses/i2c-xiic.c | 9 +-
drivers/i2c/i2c-core-base.c | 14 +-
drivers/i2c/i2c-slave-eeprom.c | 5 +-
drivers/i2c/i2c-smbus.c | 11 +-
drivers/i2c/muxes/i2c-mux-pca9541.c | 5 +-
drivers/i2c/muxes/i2c-mux-pca954x.c | 6 +-
drivers/i2c/muxes/i2c-mux-reg.c | 5 +-
drivers/i3c/device.c | 20 +
drivers/i3c/internals.h | 1 +
drivers/i3c/master.c | 19 +
drivers/iio/TODO | 3 -
drivers/iio/accel/Kconfig | 21 +
drivers/iio/accel/Makefile | 3 +
drivers/iio/accel/adis16201.c | 2 +-
drivers/iio/accel/adis16209.c | 2 +-
drivers/iio/accel/adxl355.h | 20 +-
drivers/iio/accel/adxl355_core.c | 93 +-
drivers/iio/accel/adxl355_i2c.c | 22 +-
drivers/iio/accel/adxl355_spi.c | 19 +-
drivers/iio/accel/adxl367.c | 57 +-
drivers/iio/accel/adxl367_i2c.c | 5 +-
drivers/iio/accel/adxl372.c | 29 +-
drivers/iio/accel/adxl372_i2c.c | 6 +-
drivers/iio/accel/bma180.c | 6 +-
drivers/iio/accel/bma400_core.c | 14 +-
drivers/iio/accel/bma400_i2c.c | 6 +-
drivers/iio/accel/bmc150-accel-core.c | 31 +-
drivers/iio/accel/bmc150-accel-i2c.c | 6 +-
drivers/iio/accel/da280.c | 6 +-
drivers/iio/accel/da311.c | 5 +-
drivers/iio/accel/dmard06.c | 5 +-
drivers/iio/accel/dmard09.c | 5 +-
drivers/iio/accel/dmard10.c | 5 +-
drivers/iio/accel/fxls8962af-core.c | 40 +-
drivers/iio/accel/fxls8962af-i2c.c | 2 +-
drivers/iio/accel/fxls8962af-spi.c | 2 +-
drivers/iio/accel/kionix-kx022a-i2c.c | 51 +
drivers/iio/accel/kionix-kx022a-spi.c | 58 +
drivers/iio/accel/kionix-kx022a.c | 1142 +
drivers/iio/accel/kionix-kx022a.h | 82 +
drivers/iio/accel/kxcjk-1013.c | 31 +-
drivers/iio/accel/kxsd9-i2c.c | 5 +-
drivers/iio/accel/mc3230.c | 5 +-
drivers/iio/accel/mma7455_i2c.c | 6 +-
drivers/iio/accel/mma7660.c | 5 +-
drivers/iio/accel/mma8452.c | 6 +-
drivers/iio/accel/mma9551.c | 6 +-
drivers/iio/accel/mma9553.c | 6 +-
drivers/iio/accel/msa311.c | 21 +-
drivers/iio/accel/mxc4005.c | 5 +-
drivers/iio/accel/mxc6255.c | 5 +-
drivers/iio/accel/sca3300.c | 12 +-
drivers/iio/accel/stk8312.c | 5 +-
drivers/iio/accel/stk8ba50.c | 5 +-
drivers/iio/adc/Kconfig | 40 +
drivers/iio/adc/Makefile | 3 +
drivers/iio/adc/ad4130.c | 2100 +
drivers/iio/adc/ad7091r5.c | 6 +-
drivers/iio/adc/ad7124.c | 10 +
drivers/iio/adc/ad7192.c | 27 +-
drivers/iio/adc/ad7291.c | 6 +-
drivers/iio/adc/ad7476.c | 11 +-
drivers/iio/adc/ad7606.c | 22 +-
drivers/iio/adc/ad7606.h | 2 -
drivers/iio/adc/ad7606_par.c | 3 +-
drivers/iio/adc/ad799x.c | 26 +-
drivers/iio/adc/ad9467.c | 11 +
drivers/iio/adc/ad_sigma_delta.c | 8 +-
drivers/iio/adc/aspeed_adc.c | 11 +-
drivers/iio/adc/at91-sama5d2_adc.c | 33 +-
drivers/iio/adc/axp288_adc.c | 9 +-
drivers/iio/adc/cc10001_adc.c | 89 +-
drivers/iio/adc/imx7d_adc.c | 14 +-
drivers/iio/adc/ina2xx-adc.c | 6 +-
drivers/iio/adc/lpc32xx_adc.c | 11 +-
drivers/iio/adc/ltc2471.c | 6 +-
drivers/iio/adc/ltc2485.c | 6 +-
drivers/iio/adc/ltc2497-core.c | 7 +-
drivers/iio/adc/ltc2497.c | 6 +-
drivers/iio/adc/ltc2497.h | 2 +
drivers/iio/adc/max11410.c | 1050 +
drivers/iio/adc/max1241.c | 28 +-
drivers/iio/adc/max1363.c | 18 +-
drivers/iio/adc/max9611.c | 5 +-
drivers/iio/adc/mcp3422.c | 6 +-
drivers/iio/adc/mcp3911.c | 104 +-
drivers/iio/adc/meson_saradc.c | 11 +-
drivers/iio/adc/mt6370-adc.c | 305 +
drivers/iio/adc/rockchip_saradc.c | 15 +-
drivers/iio/adc/sc27xx_adc.c | 14 +-
drivers/iio/adc/stm32-adc-core.c | 30 +-
drivers/iio/adc/stm32-adc-core.h | 31 +
drivers/iio/adc/stm32-adc.c | 307 +-
drivers/iio/adc/ti-adc081c.c | 6 +-
drivers/iio/adc/ti-adc128s052.c | 14 +-
drivers/iio/adc/ti-ads1015.c | 6 +-
drivers/iio/adc/ti-ads131e08.c | 11 +
drivers/iio/adc/twl4030-madc.c | 1 +
drivers/iio/adc/vf610_adc.c | 104 +-
drivers/iio/addac/Kconfig | 14 +
drivers/iio/addac/Makefile | 1 +
drivers/iio/addac/ad74115.c | 1943 +
drivers/iio/addac/ad74413r.c | 32 +-
drivers/iio/amplifiers/hmc425a.c | 17 +-
drivers/iio/buffer/industrialio-buffer-dmaengine.c | 4 +-
drivers/iio/buffer/industrialio-triggered-buffer.c | 4 +-
drivers/iio/buffer/kfifo_buf.c | 2 +-
drivers/iio/cdc/ad7150.c | 24 +-
drivers/iio/cdc/ad7746.c | 6 +-
drivers/iio/chemical/ams-iaq-core.c | 5 +-
drivers/iio/chemical/atlas-ezo-sensor.c | 6 +-
drivers/iio/chemical/atlas-sensor.c | 6 +-
drivers/iio/chemical/bme680_i2c.c | 6 +-
drivers/iio/chemical/ccs811.c | 6 +-
drivers/iio/chemical/scd4x.c | 4 +-
drivers/iio/chemical/sgp30.c | 6 +-
drivers/iio/chemical/sgp40.c | 6 +-
drivers/iio/chemical/vz89x.c | 6 +-
.../common/cros_ec_sensors/cros_ec_sensors_core.c | 6 +-
.../iio/common/hid-sensors/hid-sensor-trigger.c | 8 +-
drivers/iio/common/scmi_sensors/scmi_iio.c | 9 +-
drivers/iio/common/st_sensors/st_sensors_core.c | 39 +-
drivers/iio/dac/ad5064.c | 6 +-
drivers/iio/dac/ad5380.c | 6 +-
drivers/iio/dac/ad5446.c | 6 +-
drivers/iio/dac/ad5593r.c | 6 +-
drivers/iio/dac/ad5696-i2c.c | 6 +-
drivers/iio/dac/ds4424.c | 6 +-
drivers/iio/dac/ltc2688.c | 23 +-
drivers/iio/dac/m62332.c | 5 +-
drivers/iio/dac/max517.c | 6 +-
drivers/iio/dac/max5821.c | 6 +-
drivers/iio/dac/mcp4725.c | 6 +-
drivers/iio/dac/ti-dac5571.c | 6 +-
drivers/iio/filter/admv8818.c | 4 +-
drivers/iio/frequency/Kconfig | 10 +
drivers/iio/frequency/Makefile | 1 +
drivers/iio/frequency/ad9523.c | 22 +-
drivers/iio/frequency/adf4377.c | 994 +
drivers/iio/gyro/adis16136.c | 2 +-
drivers/iio/gyro/adis16260.c | 2 +-
drivers/iio/gyro/bmg160_core.c | 24 +-
drivers/iio/gyro/bmg160_i2c.c | 6 +-
drivers/iio/gyro/fxas21002c_core.c | 21 +-
drivers/iio/gyro/fxas21002c_i2c.c | 3 +-
drivers/iio/gyro/fxas21002c_spi.c | 3 +-
drivers/iio/gyro/itg3200_core.c | 15 +-
drivers/iio/gyro/mpu3050-i2c.c | 6 +-
drivers/iio/gyro/st_gyro_i2c.c | 5 +-
drivers/iio/health/afe4403.c | 5 +-
drivers/iio/health/afe4404.c | 17 +-
drivers/iio/health/max30100.c | 20 +-
drivers/iio/health/max30102.c | 25 +-
drivers/iio/humidity/am2315.c | 5 +-
drivers/iio/humidity/hdc100x.c | 5 +-
drivers/iio/humidity/hdc2010.c | 5 +-
drivers/iio/humidity/hts221.h | 2 -
drivers/iio/humidity/hts221_core.c | 27 +-
drivers/iio/humidity/hts221_i2c.c | 5 +-
drivers/iio/humidity/htu21.c | 6 +-
drivers/iio/humidity/si7005.c | 5 +-
drivers/iio/humidity/si7020.c | 5 +-
drivers/iio/imu/adis.c | 28 +-
drivers/iio/imu/adis16400.c | 2 +-
drivers/iio/imu/bmi160/bmi160_i2c.c | 6 +-
drivers/iio/imu/fxos8700_i2c.c | 6 +-
drivers/iio/imu/inv_icm42600/inv_icm42600.h | 2 +
drivers/iio/imu/inv_icm42600/inv_icm42600_core.c | 26 +-
drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c | 6 +-
drivers/iio/imu/inv_icm42600/inv_icm42600_spi.c | 6 +-
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 17 +-
drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 10 +-
drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | 3 +-
drivers/iio/imu/kmx61.c | 6 +-
drivers/iio/imu/st_lsm6dsx/Kconfig | 3 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 24 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c | 16 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 465 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 26 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c | 4 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 20 +
drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c | 65 +-
drivers/iio/industrialio-buffer.c | 40 +-
drivers/iio/industrialio-core.c | 58 +-
drivers/iio/industrialio-event.c | 8 +-
drivers/iio/industrialio-sw-trigger.c | 6 +-
drivers/iio/industrialio-trigger.c | 12 +-
drivers/iio/light/Kconfig | 2 +
drivers/iio/light/adjd_s311.c | 5 +-
drivers/iio/light/adux1020.c | 5 +-
drivers/iio/light/al3010.c | 5 +-
drivers/iio/light/al3320a.c | 5 +-
drivers/iio/light/apds9300.c | 5 +-
drivers/iio/light/apds9960.c | 37 +-
drivers/iio/light/bh1750.c | 6 +-
drivers/iio/light/bh1780.c | 5 +-
drivers/iio/light/cm3232.c | 6 +-
drivers/iio/light/cm3323.c | 5 +-
drivers/iio/light/cm36651.c | 6 +-
drivers/iio/light/gp2ap002.c | 5 +-
drivers/iio/light/gp2ap020a00f.c | 6 +-
drivers/iio/light/isl29018.c | 6 +-
drivers/iio/light/isl29028.c | 6 +-
drivers/iio/light/isl29125.c | 5 +-
drivers/iio/light/jsa1212.c | 5 +-
drivers/iio/light/ltr501.c | 33 +-
drivers/iio/light/lv0104cs.c | 5 +-
drivers/iio/light/max44000.c | 5 +-
drivers/iio/light/noa1305.c | 31 +-
drivers/iio/light/opt3001.c | 5 +-
drivers/iio/light/pa12203001.c | 5 +-
drivers/iio/light/rpr0521.c | 5 +-
drivers/iio/light/si1133.c | 6 +-
drivers/iio/light/si1145.c | 6 +-
drivers/iio/light/st_uvis25_i2c.c | 5 +-
drivers/iio/light/stk3310.c | 5 +-
drivers/iio/light/tcs3414.c | 5 +-
drivers/iio/light/tcs3472.c | 5 +-
drivers/iio/light/tsl2563.c | 5 +-
drivers/iio/light/tsl2583.c | 5 +-
drivers/iio/light/tsl2772.c | 6 +-
drivers/iio/light/tsl4531.c | 5 +-
drivers/iio/light/us5182d.c | 5 +-
drivers/iio/light/vcnl4000.c | 191 +-
drivers/iio/light/vcnl4035.c | 5 +-
drivers/iio/light/veml6030.c | 5 +-
drivers/iio/light/veml6070.c | 5 +-
drivers/iio/light/vl6180.c | 5 +-
drivers/iio/light/zopt2201.c | 5 +-
drivers/iio/magnetometer/ak8974.c | 5 +-
drivers/iio/magnetometer/ak8975.c | 6 +-
drivers/iio/magnetometer/bmc150_magn_i2c.c | 6 +-
drivers/iio/magnetometer/hmc5843_i2c.c | 6 +-
drivers/iio/magnetometer/mag3110.c | 6 +-
drivers/iio/magnetometer/mmc35240.c | 5 +-
drivers/iio/magnetometer/st_magn_i2c.c | 5 +-
drivers/iio/magnetometer/yamaha-yas530.c | 6 +-
drivers/iio/multiplexer/iio-mux.c | 8 +-
drivers/iio/potentiometer/ad5272.c | 6 +-
drivers/iio/potentiometer/ds1803.c | 5 +-
drivers/iio/potentiometer/max5432.c | 5 +-
drivers/iio/potentiometer/tpl0102.c | 6 +-
drivers/iio/potentiostat/lmp91000.c | 5 +-
drivers/iio/pressure/abp060mg.c | 6 +-
drivers/iio/pressure/bmp280-i2c.c | 6 +-
drivers/iio/pressure/dlhl60d.c | 6 +-
drivers/iio/pressure/dps310.c | 6 +-
drivers/iio/pressure/hp03.c | 6 +-
drivers/iio/pressure/hp206c.c | 6 +-
drivers/iio/pressure/icp10100.c | 5 +-
drivers/iio/pressure/mpl115.c | 62 +-
drivers/iio/pressure/mpl115.h | 5 +
drivers/iio/pressure/mpl115_i2c.c | 7 +-
drivers/iio/pressure/mpl115_spi.c | 1 +
drivers/iio/pressure/mpl3115.c | 6 +-
drivers/iio/pressure/ms5611_i2c.c | 6 +-
drivers/iio/pressure/ms5637.c | 6 +-
drivers/iio/pressure/st_pressure_i2c.c | 5 +-
drivers/iio/pressure/t5403.c | 6 +-
drivers/iio/pressure/zpa2326_i2c.c | 6 +-
drivers/iio/proximity/isl29501.c | 5 +-
drivers/iio/proximity/mb1232.c | 6 +-
drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 5 +-
drivers/iio/proximity/rfd77402.c | 5 +-
drivers/iio/proximity/srf08.c | 6 +-
drivers/iio/proximity/sx9360.c | 1 +
drivers/iio/proximity/sx9500.c | 5 +-
drivers/iio/proximity/sx_common.c | 23 +-
drivers/iio/proximity/sx_common.h | 2 -
drivers/iio/temperature/Kconfig | 10 +
drivers/iio/temperature/Makefile | 1 +
drivers/iio/temperature/ltc2983.c | 193 +-
drivers/iio/temperature/max30208.c | 252 +
drivers/iio/temperature/mlx90614.c | 6 +-
drivers/iio/temperature/mlx90632.c | 480 +-
drivers/iio/temperature/tmp006.c | 5 +-
drivers/iio/temperature/tmp007.c | 6 +-
drivers/iio/temperature/tsys01.c | 5 +-
drivers/iio/temperature/tsys02d.c | 6 +-
drivers/iio/trigger/iio-trig-sysfs.c | 14 +-
drivers/infiniband/Kconfig | 3 +
drivers/infiniband/core/cache.c | 2 +-
drivers/infiniband/core/cm.c | 13 +-
drivers/infiniband/core/cm_trace.h | 2 +-
drivers/infiniband/core/cma.c | 4 +-
drivers/infiniband/core/cma_trace.h | 2 +-
drivers/infiniband/core/device.c | 16 +-
drivers/infiniband/core/mad.c | 5 -
drivers/infiniband/core/nldev.c | 50 +-
drivers/infiniband/core/restrack.c | 2 -
drivers/infiniband/core/sysfs.c | 17 +-
drivers/infiniband/core/umem.c | 8 +-
drivers/infiniband/core/user_mad.c | 2 +-
drivers/infiniband/core/uverbs_main.c | 2 +-
drivers/infiniband/core/uverbs_std_types_qp.c | 2 +-
drivers/infiniband/hw/Makefile | 1 +
drivers/infiniband/hw/cxgb4/id_table.c | 4 +-
drivers/infiniband/hw/erdma/erdma.h | 4 +-
drivers/infiniband/hw/erdma/erdma_cq.c | 2 +
drivers/infiniband/hw/erdma/erdma_hw.h | 37 +-
drivers/infiniband/hw/erdma/erdma_main.c | 15 +-
drivers/infiniband/hw/erdma/erdma_qp.c | 73 +-
drivers/infiniband/hw/erdma/erdma_verbs.c | 25 +-
drivers/infiniband/hw/erdma/erdma_verbs.h | 19 +-
drivers/infiniband/hw/hfi1/affinity.c | 2 +
drivers/infiniband/hw/hfi1/device.c | 4 +-
drivers/infiniband/hw/hfi1/driver.c | 2 +-
drivers/infiniband/hw/hfi1/firmware.c | 6 +
drivers/infiniband/hw/hfi1/init.c | 21 +-
drivers/infiniband/hw/hfi1/mad.c | 22 +-
drivers/infiniband/hw/hfi1/netdev_rx.c | 2 +-
drivers/infiniband/hw/hns/hns_roce_ah.c | 5 +-
drivers/infiniband/hw/hns/hns_roce_device.h | 3 +
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 217 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 13 +-
drivers/infiniband/hw/hns/hns_roce_main.c | 18 +-
drivers/infiniband/hw/hns/hns_roce_mr.c | 4 +-
drivers/infiniband/hw/hns/hns_roce_qp.c | 107 +-
drivers/infiniband/hw/irdma/uk.c | 170 +-
drivers/infiniband/hw/irdma/user.h | 20 +-
drivers/infiniband/hw/irdma/utils.c | 2 +
drivers/infiniband/hw/irdma/verbs.c | 145 +-
drivers/infiniband/hw/irdma/verbs.h | 53 +
drivers/infiniband/hw/mana/Kconfig | 10 +
drivers/infiniband/hw/mana/Makefile | 4 +
drivers/infiniband/hw/mana/cq.c | 79 +
drivers/infiniband/hw/mana/device.c | 117 +
drivers/infiniband/hw/mana/main.c | 521 +
drivers/infiniband/hw/mana/mana_ib.h | 162 +
drivers/infiniband/hw/mana/mr.c | 197 +
drivers/infiniband/hw/mana/qp.c | 506 +
drivers/infiniband/hw/mana/wq.c | 115 +
drivers/infiniband/hw/mlx4/main.c | 12 +-
drivers/infiniband/hw/mlx5/cq.c | 27 +-
drivers/infiniband/hw/mlx5/fs.c | 1 -
drivers/infiniband/hw/mlx5/mlx5_ib.h | 4 +
drivers/infiniband/hw/mlx5/mr.c | 6 +-
drivers/infiniband/hw/mlx5/odp.c | 3 +-
drivers/infiniband/hw/mlx5/umr.c | 14 +-
drivers/infiniband/hw/qedr/main.c | 2 +-
drivers/infiniband/hw/qib/qib_iba6120.c | 9 +-
drivers/infiniband/hw/qib/qib_init.c | 21 +-
drivers/infiniband/hw/qib/qib_tx.c | 5 +-
drivers/infiniband/hw/qib/qib_user_pages.c | 2 +-
drivers/infiniband/hw/qib/qib_user_sdma.c | 2 +-
drivers/infiniband/hw/usnic/usnic_uiom.c | 9 +-
drivers/infiniband/sw/rxe/rxe.c | 4 +-
drivers/infiniband/sw/rxe/rxe.h | 19 +
drivers/infiniband/sw/rxe/rxe_av.c | 43 +-
drivers/infiniband/sw/rxe/rxe_comp.c | 47 +-
drivers/infiniband/sw/rxe/rxe_cq.c | 8 +-
drivers/infiniband/sw/rxe/rxe_hdr.h | 48 +-
drivers/infiniband/sw/rxe/rxe_icrc.c | 4 +-
drivers/infiniband/sw/rxe/rxe_loc.h | 9 +-
drivers/infiniband/sw/rxe/rxe_mmap.c | 6 +-
drivers/infiniband/sw/rxe/rxe_mr.c | 122 +-
drivers/infiniband/sw/rxe/rxe_mw.c | 23 +-
drivers/infiniband/sw/rxe/rxe_net.c | 42 +-
drivers/infiniband/sw/rxe/rxe_opcode.c | 35 +
drivers/infiniband/sw/rxe/rxe_opcode.h | 17 +-
drivers/infiniband/sw/rxe/rxe_param.h | 7 +
drivers/infiniband/sw/rxe/rxe_qp.c | 98 +-
drivers/infiniband/sw/rxe/rxe_req.c | 50 +-
drivers/infiniband/sw/rxe/rxe_resp.c | 337 +-
drivers/infiniband/sw/rxe/rxe_srq.c | 20 +-
drivers/infiniband/sw/rxe/rxe_task.c | 52 +-
drivers/infiniband/sw/rxe/rxe_task.h | 19 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 106 +-
drivers/infiniband/sw/rxe/rxe_verbs.h | 7 +-
drivers/infiniband/sw/siw/siw_cq.c | 24 +-
drivers/infiniband/sw/siw/siw_mem.c | 9 +-
drivers/infiniband/sw/siw/siw_qp_tx.c | 2 +-
drivers/infiniband/sw/siw/siw_verbs.c | 40 +-
drivers/infiniband/ulp/ipoib/ipoib_netlink.c | 7 +
drivers/infiniband/ulp/iser/iser_verbs.c | 67 +-
drivers/infiniband/ulp/isert/ib_isert.c | 5 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 10 +-
drivers/infiniband/ulp/rtrs/rtrs-pri.h | 3 -
drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 13 +-
drivers/infiniband/ulp/rtrs/rtrs-srv.c | 72 +-
drivers/infiniband/ulp/rtrs/rtrs.c | 22 +-
drivers/infiniband/ulp/srp/ib_srp.c | 96 +-
drivers/input/input.c | 5 +-
drivers/input/joystick/Kconfig | 1 +
drivers/input/joystick/as5011.c | 5 +-
drivers/input/joystick/psxpad-spi.c | 9 +-
drivers/input/keyboard/Kconfig | 10 +-
drivers/input/keyboard/adp5588-keys.c | 5 +-
drivers/input/keyboard/adp5589-keys.c | 14 +-
drivers/input/keyboard/cap11xx.c | 6 +-
drivers/input/keyboard/cros_ec_keyb.c | 6 +-
drivers/input/keyboard/cypress-sf.c | 10 +-
drivers/input/keyboard/dlink-dir685-touchkeys.c | 9 +-
drivers/input/keyboard/ep93xx_keypad.c | 10 +-
drivers/input/keyboard/gpio_keys.c | 8 +-
drivers/input/keyboard/ipaq-micro-keys.c | 10 +-
drivers/input/keyboard/lm8323.c | 11 +-
drivers/input/keyboard/lm8333.c | 5 +-
drivers/input/keyboard/locomokbd.c | 2 +-
drivers/input/keyboard/lpc32xx-keys.c | 8 +-
drivers/input/keyboard/matrix_keypad.c | 11 +-
drivers/input/keyboard/max7359_keypad.c | 11 +-
drivers/input/keyboard/mcs_touchkey.c | 14 +-
drivers/input/keyboard/mpr121_touchkey.c | 13 +-
drivers/input/keyboard/mtk-pmic-keys.c | 10 +-
drivers/input/keyboard/nomadik-ske-keypad.c | 8 +-
drivers/input/keyboard/omap-keypad.c | 2 +-
drivers/input/keyboard/pmic8xxx-keypad.c | 8 +-
drivers/input/keyboard/pxa27x_keypad.c | 8 +-
drivers/input/keyboard/qt1050.c | 8 +-
drivers/input/keyboard/qt1070.c | 11 +-
drivers/input/keyboard/qt2160.c | 5 +-
drivers/input/keyboard/sh_keysc.c | 8 +-
drivers/input/keyboard/spear-keyboard.c | 9 +-
drivers/input/keyboard/st-keyscan.c | 7 +-
drivers/input/keyboard/stmpe-keypad.c | 1 +
drivers/input/keyboard/tc3589x-keypad.c | 8 +-
drivers/input/keyboard/tca6416-keypad.c | 14 +-
drivers/input/keyboard/tca8418_keypad.c | 5 +-
drivers/input/keyboard/tegra-kbc.c | 7 +-
drivers/input/keyboard/tm2-touchkey.c | 15 +-
drivers/input/misc/Kconfig | 25 +-
drivers/input/misc/Makefile | 2 +-
drivers/input/misc/ad714x-i2c.c | 5 +-
drivers/input/misc/adxl34x-i2c.c | 5 +-
drivers/input/misc/apanel.c | 5 +-
drivers/input/misc/atlas_btns.c | 4 +-
drivers/input/misc/atmel_captouch.c | 9 +-
drivers/input/misc/bma150.c | 5 +-
drivers/input/misc/cma3000_d0x_i2c.c | 5 +-
drivers/input/misc/da7280.c | 5 +-
drivers/input/misc/dm355evm_keys.c | 238 -
drivers/input/misc/drv260x.c | 5 +-
drivers/input/misc/drv2665.c | 5 +-
drivers/input/misc/drv2667.c | 5 +-
drivers/input/misc/ibm-panel.c | 5 +-
drivers/input/misc/iqs7222.c | 504 +-
drivers/input/misc/kxtj9.c | 5 +-
drivers/input/misc/max8997_haptic.c | 7 +-
drivers/input/misc/mma8450.c | 5 +-
drivers/input/misc/pcf8574_keypad.c | 4 +-
drivers/input/misc/tps65219-pwrbutton.c | 148 +
drivers/input/mouse/alps.c | 2 +-
drivers/input/mouse/cyapa.c | 5 +-
drivers/input/mouse/elan_i2c_core.c | 20 +-
drivers/input/mouse/synaptics_i2c.c | 5 +-
drivers/input/rmi4/rmi_i2c.c | 5 +-
drivers/input/rmi4/rmi_smbus.c | 5 +-
drivers/input/touchscreen/Kconfig | 42 +-
drivers/input/touchscreen/Makefile | 3 +
drivers/input/touchscreen/ad7879-i2c.c | 5 +-
drivers/input/touchscreen/ar1021_i2c.c | 5 +-
drivers/input/touchscreen/atmel_mxt_ts.c | 4 +-
drivers/input/touchscreen/auo-pixcir-ts.c | 5 +-
drivers/input/touchscreen/bu21013_ts.c | 5 +-
drivers/input/touchscreen/bu21029_ts.c | 5 +-
drivers/input/touchscreen/chipone_icn8318.c | 5 +-
drivers/input/touchscreen/cy8ctma140.c | 5 +-
drivers/input/touchscreen/cy8ctmg110_ts.c | 5 +-
drivers/input/touchscreen/cyttsp4_i2c.c | 5 +-
drivers/input/touchscreen/cyttsp5.c | 900 +
drivers/input/touchscreen/cyttsp_i2c.c | 5 +-
drivers/input/touchscreen/edt-ft5x06.c | 6 +-
drivers/input/touchscreen/eeti_ts.c | 5 +-
drivers/input/touchscreen/egalax_ts.c | 54 +-
drivers/input/touchscreen/ektf2127.c | 5 +-
drivers/input/touchscreen/elants_i2c.c | 28 +-
drivers/input/touchscreen/goodix.c | 5 +-
drivers/input/touchscreen/hideep.c | 5 +-
drivers/input/touchscreen/himax_hx83112b.c | 364 +
drivers/input/touchscreen/hycon-hy46xx.c | 5 +-
drivers/input/touchscreen/hynitron_cstxxx.c | 498 +
drivers/input/touchscreen/ili210x.c | 6 +-
drivers/input/touchscreen/ilitek_ts_i2c.c | 5 +-
drivers/input/touchscreen/iqs5xx.c | 5 +-
drivers/input/touchscreen/max11801_ts.c | 5 +-
drivers/input/touchscreen/mcs5000_ts.c | 5 +-
drivers/input/touchscreen/melfas_mip4.c | 4 +-
drivers/input/touchscreen/migor_ts.c | 5 +-
drivers/input/touchscreen/mms114.c | 5 +-
drivers/input/touchscreen/msg2638.c | 197 +-
drivers/input/touchscreen/pixcir_i2c_ts.c | 6 +-
drivers/input/touchscreen/raydium_i2c_ts.c | 16 +-
drivers/input/touchscreen/rohm_bu21023.c | 5 +-
drivers/input/touchscreen/s6sy761.c | 5 +-
drivers/input/touchscreen/silead.c | 6 +-
drivers/input/touchscreen/sis_i2c.c | 5 +-
drivers/input/touchscreen/st1232.c | 6 +-
drivers/input/touchscreen/stmfts.c | 5 +-
drivers/input/touchscreen/sx8654.c | 6 +-
drivers/input/touchscreen/tps6507x-ts.c | 2 -
drivers/input/touchscreen/tsc2004.c | 5 +-
drivers/input/touchscreen/tsc2007_core.c | 6 +-
drivers/input/touchscreen/wacom_i2c.c | 5 +-
drivers/input/touchscreen/wdt87xx_i2c.c | 5 +-
drivers/input/touchscreen/zet6223.c | 5 +-
drivers/input/touchscreen/zforce_ts.c | 5 +-
drivers/interconnect/qcom/icc-rpm.c | 5 +-
drivers/interconnect/qcom/osm-l3.c | 126 +-
drivers/interconnect/qcom/sc7180.c | 4 +-
drivers/interconnect/qcom/sc8180x.c | 2 +-
drivers/iommu/Kconfig | 9 +-
drivers/iommu/Makefile | 4 +-
drivers/iommu/amd/amd_iommu_types.h | 1 -
drivers/iommu/amd/init.c | 88 +-
drivers/iommu/amd/iommu.c | 61 +-
drivers/iommu/amd/iommu_v2.c | 5 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 104 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 32 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 23 +-
drivers/iommu/arm/arm-smmu/arm-smmu-impl.c | 3 +
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c | 91 -
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 157 +-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.h | 21 +-
drivers/iommu/arm/arm-smmu/arm-smmu.c | 3 -
drivers/iommu/arm/arm-smmu/qcom_iommu.c | 21 +-
drivers/iommu/dma-iommu.c | 3 -
drivers/iommu/exynos-iommu.c | 26 +-
drivers/iommu/fsl_pamu.c | 8 +-
drivers/iommu/fsl_pamu_domain.c | 4 +-
drivers/iommu/hyperv-iommu.c | 11 +-
drivers/iommu/intel/dmar.c | 8 +
drivers/iommu/intel/iommu.c | 298 +-
drivers/iommu/intel/iommu.h | 38 +-
drivers/iommu/intel/irq_remapping.c | 65 +-
drivers/iommu/intel/pasid.c | 6 +-
drivers/iommu/intel/svm.c | 164 +-
drivers/iommu/io-pgfault.c | 77 +-
drivers/iommu/io-pgtable-arm-v7s.c | 41 +-
drivers/iommu/io-pgtable-arm.c | 42 +-
drivers/iommu/iommu-sva-lib.c | 71 -
drivers/iommu/iommu-sva.c | 240 +
drivers/iommu/{iommu-sva-lib.h => iommu-sva.h} | 14 +-
drivers/iommu/iommu.c | 444 +-
drivers/iommu/iommufd/Kconfig | 44 +
drivers/iommu/iommufd/Makefile | 13 +
drivers/iommu/iommufd/device.c | 772 +
drivers/iommu/iommufd/double_span.h | 53 +
drivers/iommu/iommufd/hw_pagetable.c | 57 +
drivers/iommu/iommufd/io_pagetable.c | 1216 +
drivers/iommu/iommufd/io_pagetable.h | 241 +
drivers/iommu/iommufd/ioas.c | 398 +
drivers/iommu/iommufd/iommufd_private.h | 307 +
drivers/iommu/iommufd/iommufd_test.h | 93 +
drivers/iommu/iommufd/main.c | 460 +
drivers/iommu/iommufd/pages.c | 1977 +
drivers/iommu/iommufd/selftest.c | 853 +
drivers/iommu/iommufd/vfio_compat.c | 472 +
drivers/iommu/ipmmu-vmsa.c | 20 +-
drivers/iommu/msm_iommu.c | 18 +-
drivers/iommu/mtk_iommu.c | 153 +-
drivers/iommu/mtk_iommu_v1.c | 30 +-
drivers/iommu/of_iommu.c | 1 -
drivers/iommu/omap-iommu.c | 6 +-
drivers/iommu/rockchip-iommu.c | 10 +-
drivers/iommu/s390-iommu.c | 377 +-
drivers/iommu/sprd-iommu.c | 29 +-
drivers/iommu/sun50i-iommu.c | 89 +-
drivers/iommu/tegra-gart.c | 2 +-
drivers/iommu/virtio-iommu.c | 7 +-
drivers/irqchip/Kconfig | 30 +-
drivers/irqchip/irq-apple-aic.c | 6 +-
drivers/irqchip/irq-gic-pm.c | 2 +-
drivers/irqchip/irq-gic-v2m.c | 11 +-
drivers/irqchip/irq-gic-v3.c | 3 +-
drivers/irqchip/irq-gic.c | 7 +-
drivers/irqchip/irq-loongarch-cpu.c | 48 +-
drivers/irqchip/irq-loongson-eiointc.c | 63 +-
drivers/irqchip/irq-loongson-htvec.c | 176 +-
drivers/irqchip/irq-loongson-liointc.c | 37 +-
drivers/irqchip/irq-loongson-pch-lpc.c | 25 +
drivers/irqchip/irq-loongson-pch-pic.c | 76 +-
drivers/irqchip/irq-ls-extirq.c | 2 +-
drivers/irqchip/irq-mips-gic.c | 2 +-
drivers/irqchip/irq-mtk-cirq.c | 95 +-
drivers/irqchip/irq-mvebu-icu.c | 4 +-
drivers/irqchip/irq-sifive-plic.c | 6 +-
drivers/irqchip/irq-sl28cpld.c | 3 +-
drivers/irqchip/irq-st.c | 7 +-
drivers/irqchip/irq-ti-sci-inta.c | 2 +-
drivers/irqchip/irq-wpcm450-aic.c | 1 +
drivers/isdn/hardware/mISDN/hfcmulti.c | 19 +-
drivers/isdn/hardware/mISDN/hfcpci.c | 13 +-
drivers/isdn/hardware/mISDN/hfcsusb.c | 12 +-
drivers/isdn/mISDN/core.c | 4 +-
drivers/isdn/mISDN/l1oip_core.c | 6 +-
drivers/isdn/mISDN/timerdev.c | 4 +-
drivers/leds/blink/leds-lgm-sso.c | 5 +-
drivers/leds/leds-blinkm.c | 8 +-
drivers/leds/leds-gpio.c | 5 +-
drivers/leds/leds-is31fl319x.c | 3 +-
drivers/leds/leds-lm3533.c | 12 +-
drivers/leds/leds-lp5521.c | 2 +-
drivers/leds/leds-lp5523.c | 27 +-
drivers/leds/leds-lp55xx-common.c | 7 +-
drivers/leds/leds-max8997.c | 7 +-
drivers/leds/leds-pca955x.c | 6 -
drivers/leds/rgb/leds-qcom-lpg.c | 32 +-
drivers/leds/trigger/ledtrig-activity.c | 2 +-
drivers/leds/trigger/ledtrig-heartbeat.c | 2 +-
drivers/leds/trigger/ledtrig-pattern.c | 4 +-
drivers/leds/trigger/ledtrig-transient.c | 2 +-
drivers/macintosh/adb.c | 4 +-
drivers/macintosh/ams/ams-i2c.c | 8 +-
drivers/macintosh/ams/ams.h | 5 +
drivers/macintosh/macio-adb.c | 11 +-
drivers/macintosh/macio_asic.c | 2 +-
drivers/macintosh/therm_adt746x.c | 6 +-
drivers/macintosh/therm_windtunnel.c | 5 +-
drivers/macintosh/via-pmu-backlight.c | 7 +-
drivers/macintosh/via-pmu.c | 4 +
drivers/macintosh/windfarm_ad7417_sensor.c | 5 +-
drivers/macintosh/windfarm_fcu_controls.c | 5 +-
drivers/macintosh/windfarm_lm75_sensor.c | 8 +-
drivers/macintosh/windfarm_lm87_sensor.c | 5 +-
drivers/macintosh/windfarm_max6690_sensor.c | 5 +-
drivers/macintosh/windfarm_pid.h | 5 +
drivers/macintosh/windfarm_pm121.c | 4 +-
drivers/macintosh/windfarm_pm81.c | 4 +-
drivers/macintosh/windfarm_pm91.c | 2 +-
drivers/macintosh/windfarm_smu_controls.c | 10 +-
drivers/macintosh/windfarm_smu_sat.c | 5 +-
drivers/mailbox/Kconfig | 3 +-
drivers/mailbox/arm_mhuv2.c | 4 +-
drivers/mailbox/mailbox-mpfs.c | 31 +-
drivers/mailbox/mtk-cmdq-mailbox.c | 130 +-
drivers/mailbox/pcc.c | 1 +
drivers/mailbox/qcom-apcs-ipc-mailbox.c | 1 +
drivers/mailbox/rockchip-mailbox.c | 4 +-
drivers/mailbox/zynqmp-ipi-mailbox.c | 4 +-
drivers/mcb/mcb-core.c | 4 +-
drivers/mcb/mcb-parse.c | 2 +-
drivers/md/bcache/movinggc.c | 2 +-
drivers/md/bcache/request.c | 4 +-
drivers/md/bcache/writeback.c | 4 +-
drivers/md/dm-cache-metadata.c | 54 +-
drivers/md/dm-cache-target.c | 11 +-
drivers/md/dm-clone-target.c | 1 +
drivers/md/dm-init.c | 22 +-
drivers/md/dm-integrity.c | 2 +
drivers/md/dm-ioctl.c | 6 +-
drivers/md/dm-table.c | 2 +-
drivers/md/dm-thin-metadata.c | 60 +-
drivers/md/dm-thin.c | 20 +-
drivers/md/dm.c | 138 +-
drivers/md/md-bitmap.c | 47 +-
drivers/md/md.c | 323 +-
drivers/md/md.h | 1 -
drivers/md/raid0.c | 1 -
drivers/md/raid1.c | 13 +-
drivers/md/raid10.c | 20 +-
drivers/md/raid5-cache.c | 10 +-
drivers/md/raid5-ppl.c | 5 +-
drivers/media/Kconfig | 2 +-
drivers/media/cec/platform/stm32/stm32-cec.c | 9 +-
drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 8 +-
drivers/media/common/videobuf2/frame_vector.c | 78 +-
drivers/media/common/videobuf2/videobuf2-core.c | 128 +-
.../media/common/videobuf2/videobuf2-dma-contig.c | 3 +-
drivers/media/common/videobuf2/videobuf2-dma-sg.c | 4 +-
drivers/media/common/videobuf2/videobuf2-memops.c | 6 +-
drivers/media/common/videobuf2/videobuf2-vmalloc.c | 4 +-
drivers/media/dvb-core/dmxdev.c | 8 +
drivers/media/dvb-core/dvb_ca_en50221.c | 2 +-
drivers/media/dvb-core/dvb_demux.c | 4 +-
drivers/media/dvb-core/dvb_frontend.c | 33 +-
drivers/media/dvb-core/dvb_ringbuffer.c | 4 +-
drivers/media/dvb-core/dvbdev.c | 44 +-
drivers/media/dvb-frontends/a8293.c | 160 +-
drivers/media/dvb-frontends/a8293.h | 3 +
drivers/media/dvb-frontends/af9013.c | 5 +-
drivers/media/dvb-frontends/af9033.c | 5 +-
drivers/media/dvb-frontends/au8522_decoder.c | 5 +-
drivers/media/dvb-frontends/bcm3510.c | 1 +
drivers/media/dvb-frontends/cxd2099.c | 5 +-
drivers/media/dvb-frontends/cxd2820r_core.c | 7 +-
drivers/media/dvb-frontends/cxd2820r_priv.h | 2 -
.../media/dvb-frontends/drx39xyj/drx_dap_fasi.h | 2 -
drivers/media/dvb-frontends/drx39xyj/drxj.c | 1 +
drivers/media/dvb-frontends/helene.c | 5 +-
drivers/media/dvb-frontends/lgdt3306a.c | 5 +-
drivers/media/dvb-frontends/lgdt330x.c | 5 +-
drivers/media/dvb-frontends/mn88472.c | 5 +-
drivers/media/dvb-frontends/mn88473.c | 5 +-
drivers/media/dvb-frontends/mxl5xx.c | 2 -
drivers/media/dvb-frontends/mxl692.c | 5 +-
drivers/media/dvb-frontends/rtl2830.c | 5 +-
drivers/media/dvb-frontends/rtl2832.c | 5 +-
drivers/media/dvb-frontends/si2165.c | 5 +-
drivers/media/dvb-frontends/si2168.c | 5 +-
drivers/media/dvb-frontends/sp2.c | 5 +-
drivers/media/dvb-frontends/stv0288.c | 5 +-
drivers/media/dvb-frontends/stv090x.c | 5 +-
drivers/media/dvb-frontends/stv6110x.c | 5 +-
drivers/media/dvb-frontends/tda10071.c | 5 +-
drivers/media/dvb-frontends/ts2020.c | 5 +-
drivers/media/i2c/Kconfig | 62 +-
drivers/media/i2c/Makefile | 5 +-
drivers/media/i2c/ad5820.c | 33 +-
drivers/media/i2c/ad9389b.c | 4 +-
drivers/media/i2c/adp1653.c | 5 +-
drivers/media/i2c/adv7170.c | 5 +-
drivers/media/i2c/adv7175.c | 5 +-
drivers/media/i2c/adv7183.c | 5 +-
drivers/media/i2c/adv7393.c | 5 +-
drivers/media/i2c/adv748x/adv748x-afe.c | 4 +
drivers/media/i2c/adv748x/adv748x.h | 3 -
drivers/media/i2c/adv7511-v4l2.c | 4 +-
drivers/media/i2c/adv7842.c | 5 +-
drivers/media/i2c/ak881x.c | 5 +-
drivers/media/i2c/aptina-pll.c | 1 -
drivers/media/i2c/ar0521.c | 352 +-
drivers/media/i2c/bt819.c | 5 +-
drivers/media/i2c/bt856.c | 5 +-
drivers/media/i2c/bt866.c | 5 +-
drivers/media/i2c/cs3308.c | 5 +-
drivers/media/i2c/cs5345.c | 5 +-
drivers/media/i2c/cx25840/cx25840-core.c | 5 +-
drivers/media/i2c/dw9768.c | 33 +-
drivers/media/i2c/hi846.c | 14 +-
drivers/media/i2c/imx208.c | 4 +
drivers/media/i2c/imx274.c | 5 +-
drivers/media/i2c/imx290.c | 786 +-
drivers/media/i2c/imx319.c | 4 +
drivers/media/i2c/imx355.c | 4 +
drivers/media/i2c/imx412.c | 9 +-
drivers/media/i2c/isl7998x.c | 2 +-
drivers/media/i2c/ks0127.c | 4 +-
drivers/media/i2c/lm3560.c | 5 +-
drivers/media/i2c/lm3646.c | 5 +-
drivers/media/i2c/m52790.c | 5 +-
drivers/media/i2c/m5mols/m5mols_core.c | 5 +-
drivers/media/i2c/ml86v7667.c | 5 +-
drivers/media/i2c/mt9m032.c | 5 +-
drivers/media/i2c/mt9p031.c | 9 +-
drivers/media/i2c/mt9t001.c | 5 +-
drivers/media/i2c/mt9t112.c | 5 +-
drivers/media/i2c/mt9v011.c | 5 +-
drivers/media/i2c/noon010pc30.c | 5 +-
drivers/media/i2c/ov08d10.c | 5 +
drivers/media/i2c/ov08x40.c | 3325 ++
drivers/media/i2c/ov13858.c | 5 +-
drivers/media/i2c/ov2640.c | 2 -
drivers/media/i2c/ov2680.c | 2 +
drivers/media/i2c/ov2740.c | 134 +-
drivers/media/i2c/ov4689.c | 1018 +
drivers/media/i2c/ov5640.c | 25 +-
drivers/media/i2c/ov5645.c | 148 +-
drivers/media/i2c/ov5648.c | 1 +
drivers/media/i2c/ov5693.c | 10 +
drivers/media/i2c/ov6650.c | 5 +-
drivers/media/i2c/ov7640.c | 5 +-
drivers/media/i2c/ov7670.c | 1 -
drivers/media/i2c/ov8856.c | 33 +-
drivers/media/i2c/ov9282.c | 611 +-
drivers/media/i2c/ov9640.c | 5 +-
drivers/media/i2c/ov9650.c | 49 +-
drivers/media/i2c/rj54n1cb0c.c | 5 +-
drivers/media/i2c/s5c73m3/s5c73m3-core.c | 107 +-
drivers/media/i2c/s5c73m3/s5c73m3-ctrls.c | 1 -
drivers/media/i2c/s5c73m3/s5c73m3.h | 10 +-
drivers/media/i2c/s5k4ecgx.c | 1032 -
drivers/media/i2c/s5k5baf.c | 64 +-
drivers/media/i2c/s5k6a3.c | 30 +-
drivers/media/i2c/s5k6aa.c | 5 +-
drivers/media/i2c/saa6588.c | 5 +-
drivers/media/i2c/saa6752hs.c | 5 +-
drivers/media/i2c/saa7110.c | 5 +-
drivers/media/i2c/saa717x.c | 5 +-
drivers/media/i2c/saa7185.c | 5 +-
drivers/media/i2c/sony-btf-mpx.c | 5 +-
drivers/media/i2c/sr030pc30.c | 5 +-
drivers/media/i2c/st-vgxy61.c | 1963 +
drivers/media/i2c/tc358743.c | 9 +-
drivers/media/i2c/tc358746.c | 1694 +
drivers/media/i2c/tda7432.c | 5 +-
drivers/media/i2c/tda9840.c | 5 +-
drivers/media/i2c/tea6415c.c | 5 +-
drivers/media/i2c/tea6420.c | 5 +-
drivers/media/i2c/ths7303.c | 5 +-
drivers/media/i2c/tlv320aic23b.c | 5 +-
drivers/media/i2c/tw2804.c | 5 +-
drivers/media/i2c/tw9903.c | 5 +-
drivers/media/i2c/tw9906.c | 5 +-
drivers/media/i2c/tw9910.c | 5 +-
drivers/media/i2c/uda1342.c | 5 +-
drivers/media/i2c/upd64031a.c | 5 +-
drivers/media/i2c/upd64083.c | 5 +-
drivers/media/i2c/vp27smpx.c | 5 +-
drivers/media/i2c/vpx3220.c | 5 +-
drivers/media/i2c/vs6624.c | 5 +-
drivers/media/i2c/wm8739.c | 5 +-
drivers/media/i2c/wm8775.c | 5 +-
drivers/media/pci/bt8xx/bttv.h | 1 -
drivers/media/pci/cx25821/cx25821-video.h | 3 -
drivers/media/pci/ddbridge/ddbridge-core.c | 4 +-
drivers/media/pci/intel/ipu3/Kconfig | 1 +
drivers/media/pci/ivtv/ivtv-driver.c | 2 +-
drivers/media/pci/ivtv/ivtv-udma.c | 2 +-
drivers/media/pci/ivtv/ivtv-yuv.c | 5 +-
drivers/media/pci/mantis/Kconfig | 2 +-
drivers/media/pci/pt3/pt3.c | 16 +-
drivers/media/pci/saa7134/saa7134.h | 4 -
drivers/media/pci/saa7164/saa7164-core.c | 10 +-
drivers/media/pci/saa7164/saa7164.h | 2 -
drivers/media/pci/solo6x10/solo6x10-core.c | 1 +
drivers/media/pci/zoran/zoran_device.h | 2 -
drivers/media/platform/Kconfig | 1 +
drivers/media/platform/Makefile | 1 +
drivers/media/platform/amphion/vdec.c | 218 +-
drivers/media/platform/amphion/venc.c | 41 +-
drivers/media/platform/amphion/vpu.h | 5 +-
drivers/media/platform/amphion/vpu_cmds.c | 39 +-
drivers/media/platform/amphion/vpu_dbg.c | 8 +-
drivers/media/platform/amphion/vpu_drv.c | 6 +-
drivers/media/platform/amphion/vpu_helpers.c | 45 +-
drivers/media/platform/amphion/vpu_helpers.h | 2 +
drivers/media/platform/amphion/vpu_malone.c | 4 +-
drivers/media/platform/amphion/vpu_msgs.c | 2 +
drivers/media/platform/amphion/vpu_v4l2.c | 199 +-
drivers/media/platform/amphion/vpu_v4l2.h | 3 +-
drivers/media/platform/amphion/vpu_windsor.c | 9 +-
drivers/media/platform/aspeed/Kconfig | 1 +
drivers/media/platform/aspeed/aspeed-video.c | 346 +-
drivers/media/platform/atmel/Kconfig | 51 -
drivers/media/platform/atmel/Makefile | 7 -
drivers/media/platform/chips-media/coda-bit.c | 14 +-
drivers/media/platform/chips-media/coda-jpeg.c | 10 +-
drivers/media/platform/mediatek/jpeg/Makefile | 14 +-
.../media/platform/mediatek/jpeg/mtk_jpeg_core.c | 490 +-
.../media/platform/mediatek/jpeg/mtk_jpeg_core.h | 169 +-
.../media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c | 325 +-
.../media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.h | 6 +-
.../platform/mediatek/jpeg/mtk_jpeg_dec_reg.h | 1 +
.../media/platform/mediatek/jpeg/mtk_jpeg_enc_hw.c | 255 +
drivers/media/platform/mediatek/mdp/mtk_mdp_comp.c | 5 +-
drivers/media/platform/mediatek/mdp3/Kconfig | 1 -
drivers/media/platform/mediatek/mdp3/mtk-img-ipi.h | 76 +-
.../media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c | 51 +-
.../media/platform/mediatek/mdp3/mtk-mdp3-comp.c | 24 +-
.../media/platform/mediatek/mdp3/mtk-mdp3-core.c | 15 +-
.../mediatek/vcodec/mtk_vcodec_dec_stateless.c | 13 +-
.../platform/mediatek/vcodec/mtk_vcodec_enc.c | 5 +-
.../mediatek/vcodec/vdec/vdec_h264_req_multi_if.c | 60 +-
.../mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c | 15 +-
.../platform/mediatek/vcodec/vdec_msg_queue.c | 2 +-
drivers/media/platform/microchip/Kconfig | 61 +
drivers/media/platform/microchip/Makefile | 9 +
.../{atmel => microchip}/microchip-csi2dc.c | 0
.../media/platform/microchip/microchip-isc-base.c | 2040 +
.../media/platform/microchip/microchip-isc-clk.c | 311 +
.../media/platform/microchip/microchip-isc-regs.h | 413 +
.../platform/microchip/microchip-isc-scaler.c | 267 +
drivers/media/platform/microchip/microchip-isc.h | 400 +
.../platform/microchip/microchip-sama5d2-isc.c | 683 +
.../platform/microchip/microchip-sama7g5-isc.c | 646 +
drivers/media/platform/nxp/Kconfig | 13 +
drivers/media/platform/nxp/Makefile | 1 +
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.c | 4 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c | 612 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h | 10 +-
.../imx => media/platform/nxp}/imx7-media-csi.c | 138 +-
drivers/media/platform/qcom/camss/camss-vfe-170.c | 20 +-
drivers/media/platform/qcom/camss/camss-vfe-480.c | 20 +-
drivers/media/platform/qcom/camss/camss-video.c | 3 +-
drivers/media/platform/qcom/camss/camss.c | 61 +-
drivers/media/platform/qcom/camss/camss.h | 1 +
drivers/media/platform/qcom/venus/firmware.c | 20 +-
drivers/media/platform/qcom/venus/pm_helpers.c | 4 +-
drivers/media/platform/renesas/Kconfig | 1 +
drivers/media/platform/renesas/Makefile | 1 +
.../media/platform/renesas/rcar-vin/rcar-core.c | 22 +-
drivers/media/platform/renesas/rcar-vin/rcar-dma.c | 104 +-
.../media/platform/renesas/rcar-vin/rcar-v4l2.c | 93 +-
drivers/media/platform/renesas/rcar-vin/rcar-vin.h | 9 +-
drivers/media/platform/renesas/rzg2l-cru/Kconfig | 33 +
drivers/media/platform/renesas/rzg2l-cru/Makefile | 6 +
.../media/platform/renesas/rzg2l-cru/rzg2l-core.c | 338 +
.../media/platform/renesas/rzg2l-cru/rzg2l-cru.h | 154 +
.../media/platform/renesas/rzg2l-cru/rzg2l-csi2.c | 875 +
.../media/platform/renesas/rzg2l-cru/rzg2l-ip.c | 255 +
.../media/platform/renesas/rzg2l-cru/rzg2l-video.c | 1058 +
.../media/platform/rockchip/rkisp1/rkisp1-params.c | 4 +-
.../media/platform/samsung/exynos4-is/fimc-core.c | 2 +-
.../media/platform/samsung/exynos4-is/media-dev.c | 14 +-
drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c | 73 +-
.../media/platform/samsung/s5p-mfc/s5p_mfc_ctrl.c | 4 +-
.../media/platform/samsung/s5p-mfc/s5p_mfc_enc.c | 12 +-
.../platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c | 14 +-
.../platform/st/sti/c8sectpfe/c8sectpfe-core.c | 9 +-
drivers/media/platform/st/stm32/stm32-dcmi.c | 31 +-
drivers/media/platform/sunxi/sun6i-csi/Makefile | 2 +-
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c | 779 +-
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h | 145 +-
.../platform/sunxi/sun6i-csi/sun6i_csi_bridge.c | 868 +
.../platform/sunxi/sun6i-csi/sun6i_csi_bridge.h | 69 +
.../platform/sunxi/sun6i-csi/sun6i_csi_capture.c | 1102 +
.../platform/sunxi/sun6i-csi/sun6i_csi_capture.h | 89 +
.../media/platform/sunxi/sun6i-csi/sun6i_csi_reg.h | 362 +-
.../media/platform/sunxi/sun6i-csi/sun6i_video.c | 733 -
.../media/platform/sunxi/sun6i-csi/sun6i_video.h | 35 -
.../sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2.c | 28 +-
.../sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.c | 28 +-
drivers/media/platform/ti/omap3isp/isp.c | 3 +-
drivers/media/platform/xilinx/xilinx-csi2rxss.c | 8 +-
drivers/media/radio/radio-tea5764.c | 5 +-
drivers/media/radio/radio-terratec.c | 3 -
drivers/media/radio/saa7706h.c | 5 +-
drivers/media/radio/si470x/radio-si470x-usb.c | 4 +-
drivers/media/radio/tef6862.c | 5 +-
drivers/media/rc/gpio-ir-recv.c | 10 +-
drivers/media/rc/gpio-ir-tx.c | 9 +-
drivers/media/rc/imon.c | 6 +-
drivers/media/rc/ir-rx51.c | 9 +-
drivers/media/rc/ir-spi.c | 7 +
drivers/media/rc/rc-main.c | 2 +-
drivers/media/test-drivers/Kconfig | 1 +
drivers/media/test-drivers/Makefile | 1 +
drivers/media/test-drivers/vidtv/vidtv_bridge.c | 22 +-
drivers/media/test-drivers/vidtv/vidtv_demod.c | 13 +-
drivers/media/test-drivers/vidtv/vidtv_tuner.c | 5 +-
drivers/media/test-drivers/vimc/vimc-core.c | 2 +-
drivers/media/test-drivers/visl/Kconfig | 29 +
drivers/media/test-drivers/visl/Makefile | 8 +
drivers/media/test-drivers/visl/visl-core.c | 541 +
drivers/media/test-drivers/visl/visl-debugfs.c | 112 +
drivers/media/test-drivers/visl/visl-debugfs.h | 40 +
drivers/media/test-drivers/visl/visl-dec.c | 499 +
drivers/media/test-drivers/visl/visl-dec.h | 67 +
drivers/media/test-drivers/visl/visl-trace-fwht.h | 66 +
drivers/media/test-drivers/visl/visl-trace-h264.h | 349 +
drivers/media/test-drivers/visl/visl-trace-hevc.h | 405 +
drivers/media/test-drivers/visl/visl-trace-mpeg2.h | 99 +
.../media/test-drivers/visl/visl-trace-points.c | 10 +
drivers/media/test-drivers/visl/visl-trace-vp8.h | 156 +
drivers/media/test-drivers/visl/visl-trace-vp9.h | 292 +
drivers/media/test-drivers/visl/visl-video.c | 767 +
drivers/media/test-drivers/visl/visl-video.h | 27 +
drivers/media/test-drivers/visl/visl.h | 176 +
drivers/media/test-drivers/vivid/vivid-ctrls.c | 28 +
.../media/test-drivers/vivid/vivid-kthread-cap.c | 2 +-
.../media/test-drivers/vivid/vivid-kthread-out.c | 2 +-
drivers/media/test-drivers/vivid/vivid-radio-rx.c | 4 +-
drivers/media/test-drivers/vivid/vivid-sdr-cap.c | 2 +-
drivers/media/test-drivers/vivid/vivid-touch-cap.c | 2 +-
drivers/media/test-drivers/vivid/vivid-vbi-gen.c | 1 -
drivers/media/test-drivers/vivid/vivid-vid-cap.c | 1 +
drivers/media/tuners/e4000.c | 5 +-
drivers/media/tuners/fc2580.c | 5 +-
drivers/media/tuners/m88rs6000t.c | 5 +-
drivers/media/tuners/mt2060.c | 5 +-
drivers/media/tuners/mxl301rf.c | 5 +-
drivers/media/tuners/mxl5005s.c | 2 +-
drivers/media/tuners/qm1d1b0004.c | 4 +-
drivers/media/tuners/qm1d1c0042.c | 5 +-
drivers/media/tuners/tda18212.c | 5 +-
drivers/media/tuners/tda18250.c | 5 +-
drivers/media/tuners/tua9001.c | 5 +-
drivers/media/usb/au0828/au0828-vbi.c | 2 +
drivers/media/usb/au0828/au0828-video.c | 1 +
drivers/media/usb/dvb-usb/az6027.c | 4 +
drivers/media/usb/dvb-usb/dib0700.h | 1 -
drivers/media/usb/dvb-usb/dib0700_devices.c | 7 -
drivers/media/usb/dvb-usb/dvb-usb-init.c | 6 +-
drivers/media/usb/dvb-usb/m920x.c | 16 +-
drivers/media/usb/em28xx/em28xx-dvb.c | 6 +
drivers/media/usb/go7007/s2250-board.c | 5 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 16 +-
drivers/media/usb/pwc/pwc-uncompress.c | 2 +-
drivers/media/usb/s2255/s2255drv.c | 4 +-
drivers/media/usb/uvc/uvc_driver.c | 9 +-
drivers/media/v4l2-core/tuner-core.c | 6 +-
drivers/media/v4l2-core/v4l2-ctrls-api.c | 1 +
drivers/media/v4l2-core/v4l2-ctrls-core.c | 2 +-
drivers/media/v4l2-core/v4l2-ctrls-defs.c | 2 +
drivers/media/v4l2-core/v4l2-dv-timings.c | 20 +-
drivers/media/v4l2-core/v4l2-fwnode.c | 23 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 121 +-
drivers/media/v4l2-core/v4l2-subdev.c | 17 +-
drivers/media/v4l2-core/videobuf-dma-contig.c | 22 +-
drivers/media/v4l2-core/videobuf-dma-sg.c | 14 +-
drivers/memory/Makefile | 2 -
drivers/memory/omap-gpmc.c | 122 +-
drivers/memory/renesas-rpc-if.c | 22 +-
drivers/memory/tegra/mc.c | 25 +
drivers/memory/tegra/tegra186-emc.c | 15 +-
drivers/memory/tegra/tegra20-emc.c | 15 +-
drivers/memory/tegra/tegra210-emc-core.c | 15 +-
drivers/memory/tegra/tegra234.c | 165 +
drivers/memory/tegra/tegra30-emc.c | 15 +-
drivers/memory/ti-emif-sram-pm.S | 1 +
drivers/memstick/core/ms_block.c | 9 +-
drivers/memstick/core/mspro_block.c | 177 +-
drivers/message/fusion/mptctl.c | 2 -
drivers/message/fusion/mptsas.c | 8 +-
drivers/mfd/88pm800.c | 10 +-
drivers/mfd/88pm805.c | 7 +-
drivers/mfd/88pm80x.c | 5 +-
drivers/mfd/88pm860x-core.c | 6 +-
drivers/mfd/Kconfig | 69 +-
drivers/mfd/Makefile | 6 +-
drivers/mfd/aat2870-core.c | 13 +-
drivers/mfd/act8945a.c | 5 +-
drivers/mfd/adp5520.c | 12 +-
drivers/mfd/arizona-core.c | 19 +-
drivers/mfd/arizona-i2c.c | 8 +-
drivers/mfd/arizona-spi.c | 2 +-
drivers/mfd/as3711.c | 5 +-
drivers/mfd/as3722.c | 5 +-
drivers/mfd/atc260x-core.c | 6 +-
drivers/mfd/atc260x-i2c.c | 5 +-
drivers/mfd/axp20x-i2c.c | 5 +-
drivers/mfd/axp20x.c | 23 +-
drivers/mfd/bcm590xx.c | 5 +-
drivers/mfd/bd9571mwv.c | 5 +-
drivers/mfd/da903x.c | 6 +-
drivers/mfd/da9052-i2c.c | 6 +-
drivers/mfd/da9055-i2c.c | 5 +-
drivers/mfd/da9062-core.c | 6 +-
drivers/mfd/da9063-i2c.c | 6 +-
drivers/mfd/da9150-core.c | 5 +-
drivers/mfd/davinci_voicecodec.c | 136 -
drivers/mfd/dm355evm_msp.c | 454 -
drivers/mfd/fsl-imx25-tsadc.c | 4 +-
drivers/mfd/gateworks-gsc.c | 3 +-
drivers/mfd/htc-i2cpld.c | 627 -
drivers/mfd/khadas-mcu.c | 5 +-
drivers/mfd/lm3533-core.c | 5 +-
drivers/mfd/lp3943.c | 4 +-
drivers/mfd/lp873x.c | 5 +-
drivers/mfd/lp87565.c | 5 +-
drivers/mfd/lp8788.c | 4 +-
drivers/mfd/madera-core.c | 3 +-
drivers/mfd/madera-i2c.c | 6 +-
drivers/mfd/max14577.c | 19 +-
drivers/mfd/max77620.c | 15 +-
drivers/mfd/max77650.c | 1 -
drivers/mfd/max77686.c | 6 +-
drivers/mfd/max77693.c | 12 +-
drivers/mfd/max77843.c | 7 +-
drivers/mfd/max8907.c | 5 +-
drivers/mfd/max8925-i2c.c | 12 +-
drivers/mfd/max8997.c | 6 +-
drivers/mfd/max8998.c | 6 +-
drivers/mfd/mc13xxx-i2c.c | 7 +-
drivers/mfd/mc13xxx-spi.c | 3 +-
drivers/mfd/mcp-sa11x0.c | 6 +-
drivers/mfd/menelaus.c | 5 +-
drivers/mfd/menf21bmc.c | 4 +-
drivers/mfd/motorola-cpcap.c | 8 +-
drivers/mfd/mt6360-core.c | 14 +-
drivers/mfd/mt6397-irq.c | 6 +-
drivers/mfd/palmas.c | 13 +-
drivers/mfd/pcf50633-core.c | 27 +-
drivers/mfd/pcf50633-irq.c | 13 +-
drivers/mfd/qcom-pm8008.c | 4 +-
drivers/mfd/qcom-pm8xxx.c | 1 -
drivers/mfd/qcom_rpm.c | 16 +-
drivers/mfd/rc5t583-irq.c | 7 +-
drivers/mfd/rc5t583.c | 5 +-
drivers/mfd/retu-mfd.c | 4 +-
drivers/mfd/rk808.c | 31 +-
drivers/mfd/rn5t618.c | 3 +-
drivers/mfd/rohm-bd71828.c | 29 +-
drivers/mfd/rohm-bd718x7.c | 27 +-
drivers/mfd/rohm-bd9576.c | 22 +-
drivers/mfd/rsmu_i2c.c | 6 +-
drivers/mfd/rt5033.c | 8 +-
drivers/mfd/rt5120.c | 3 +-
drivers/mfd/sec-core.c | 12 +-
drivers/mfd/si476x-i2c.c | 6 +-
drivers/mfd/sky81452.c | 5 +-
drivers/mfd/sm501.c | 10 +-
drivers/mfd/smpro-core.c | 138 +
drivers/mfd/sprd-sc27xx-spi.c | 10 +-
drivers/mfd/stm32-lptimer.c | 4 +-
drivers/mfd/stmfx.c | 11 +-
drivers/mfd/stmpe-i2c.c | 9 +-
drivers/mfd/stmpe-spi.c | 4 +-
drivers/mfd/stmpe.c | 8 +-
drivers/mfd/stpmic1.c | 16 +-
drivers/mfd/stw481x.c | 5 +-
drivers/mfd/sun4i-gpadc.c | 3 +-
drivers/mfd/t7l66xb.c | 9 +-
drivers/mfd/tc3589x.c | 13 +-
drivers/mfd/tc6387xb.c | 9 +-
drivers/mfd/tc6393xb.c | 9 +-
drivers/mfd/ti-lmu.c | 5 +-
drivers/mfd/timberdale.c | 1 -
drivers/mfd/tps6105x.c | 5 +-
drivers/mfd/tps65010.c | 6 +-
drivers/mfd/tps6507x.c | 5 +-
drivers/mfd/tps65086.c | 5 +-
drivers/mfd/tps65090.c | 8 +-
drivers/mfd/tps65218.c | 5 +-
drivers/mfd/tps65219.c | 299 +
drivers/mfd/tps6586x.c | 11 +-
drivers/mfd/tps65910.c | 6 +-
drivers/mfd/tps65912-i2c.c | 5 +-
drivers/mfd/twl-core.c | 5 +-
drivers/mfd/twl6040.c | 34 +-
drivers/mfd/ucb1x00-core.c | 7 +-
drivers/mfd/vexpress-sysreg.c | 16 +-
drivers/mfd/wcd934x.c | 11 +-
drivers/mfd/wl1273-core.c | 5 +-
drivers/mfd/wm831x-i2c.c | 6 +-
drivers/mfd/wm8350-i2c.c | 5 +-
drivers/mfd/wm8400-core.c | 5 +-
drivers/mfd/wm8994-core.c | 12 +-
drivers/misc/Kconfig | 22 +
drivers/misc/Makefile | 2 +
drivers/misc/apds9802als.c | 5 +-
drivers/misc/apds990x.c | 5 +-
drivers/misc/bh1770glc.c | 5 +-
drivers/misc/cxl/file.c | 2 +-
drivers/misc/cxl/guest.c | 24 +-
drivers/misc/cxl/pci.c | 21 +-
drivers/misc/cxl/vphb.c | 7 -
drivers/misc/ds1682.c | 5 +-
drivers/misc/eeprom/eeprom.c | 5 +-
drivers/misc/eeprom/idt_89hpesx.c | 4 +-
drivers/misc/eeprom/max6875.c | 5 +-
drivers/misc/fastrpc.c | 260 +-
drivers/misc/genwqe/card_base.c | 4 +-
.../misc/habanalabs/common/command_submission.c | 62 +-
drivers/misc/habanalabs/common/context.c | 54 +-
drivers/misc/habanalabs/common/debugfs.c | 5 +
drivers/misc/habanalabs/common/device.c | 452 +-
drivers/misc/habanalabs/common/firmware_if.c | 54 +-
drivers/misc/habanalabs/common/habanalabs.h | 127 +-
drivers/misc/habanalabs/common/habanalabs_drv.c | 42 +-
drivers/misc/habanalabs/common/habanalabs_ioctl.c | 70 +-
drivers/misc/habanalabs/common/memory.c | 19 +-
drivers/misc/habanalabs/common/mmu/mmu.c | 24 +-
drivers/misc/habanalabs/common/sysfs.c | 4 +-
drivers/misc/habanalabs/gaudi/gaudi.c | 124 +-
drivers/misc/habanalabs/gaudi2/gaudi2.c | 643 +-
drivers/misc/habanalabs/gaudi2/gaudi2P.h | 2 -
drivers/misc/habanalabs/gaudi2/gaudi2_security.c | 1 +
drivers/misc/habanalabs/goya/goya.c | 4 +-
.../include/gaudi2/gaudi2_async_events.h | 1 +
.../include/gaudi2/gaudi2_async_ids_map_extended.h | 4 +-
.../habanalabs/include/hw_ip/pci/pci_general.h | 7 +
drivers/misc/hmc6352.c | 5 +-
drivers/misc/ics932s401.c | 8 +-
drivers/misc/isl29003.c | 5 +-
drivers/misc/isl29020.c | 5 +-
drivers/misc/lis3lv02d/lis3lv02d_i2c.c | 5 +-
drivers/misc/lkdtm/cfi.c | 6 +-
drivers/misc/mei/bus-fixup.c | 14 +-
drivers/misc/mei/bus.c | 22 +-
drivers/misc/mei/client.c | 20 +-
drivers/misc/mei/client.h | 2 +-
drivers/misc/mei/main.c | 2 +-
drivers/misc/mei/mei_dev.h | 2 +
drivers/misc/ocxl/config.c | 20 +-
drivers/misc/ocxl/file.c | 9 +-
drivers/misc/sgi-gru/grufault.c | 13 +-
drivers/misc/sgi-gru/grumain.c | 22 +-
drivers/misc/sgi-gru/grutables.h | 2 +-
drivers/misc/smpro-errmon.c | 529 +
drivers/misc/smpro-misc.c | 145 +
drivers/misc/sram-exec.c | 7 +-
drivers/misc/tifm_7xx1.c | 2 +-
drivers/misc/tsl2550.c | 5 +-
drivers/misc/uacce/uacce.c | 2 +-
drivers/misc/vmw_vmci/vmci_queue_pair.c | 6 +-
drivers/mmc/core/block.c | 13 -
drivers/mmc/core/bus.c | 4 -
drivers/mmc/core/core.c | 20 +-
drivers/mmc/core/core.h | 15 +
drivers/mmc/core/host.c | 6 +-
drivers/mmc/core/mmc_test.c | 8 +-
drivers/mmc/core/pwrseq.c | 2 +-
drivers/mmc/core/sd.c | 11 +-
drivers/mmc/host/Kconfig | 13 +-
drivers/mmc/host/Makefile | 1 +
drivers/mmc/host/alcor.c | 5 +-
drivers/mmc/host/atmel-mci.c | 9 +-
drivers/mmc/host/au1xmmc.c | 8 +-
drivers/mmc/host/bcm2835.c | 12 +-
drivers/mmc/host/dw_mmc-pltfm.c | 41 +-
drivers/mmc/host/dw_mmc.c | 7 +-
drivers/mmc/host/litex_mmc.c | 1 +
drivers/mmc/host/meson-gx-mmc.c | 4 +-
drivers/mmc/host/mmc_hsq.c | 40 +-
drivers/mmc/host/mmc_hsq.h | 5 +
drivers/mmc/host/mmci.c | 4 +-
drivers/mmc/host/moxart-mmc.c | 4 +-
drivers/mmc/host/mtk-sd.c | 44 +-
drivers/mmc/host/mxcmmc.c | 4 +-
drivers/mmc/host/omap_hsmmc.c | 4 +-
drivers/mmc/host/pxamci.c | 7 +-
drivers/mmc/host/renesas_sdhi.h | 16 +-
drivers/mmc/host/renesas_sdhi_core.c | 32 +-
drivers/mmc/host/renesas_sdhi_internal_dmac.c | 86 +-
drivers/mmc/host/renesas_sdhi_sys_dmac.c | 11 +-
drivers/mmc/host/rtsx_pci_sdmmc.c | 9 +-
drivers/mmc/host/rtsx_usb_sdmmc.c | 11 +-
drivers/mmc/host/sdhci-acpi.c | 4 +-
drivers/mmc/host/sdhci-bcm-kona.c | 2 +-
drivers/mmc/host/sdhci-brcmstb.c | 2 +-
drivers/mmc/host/sdhci-esdhc-imx.c | 89 +-
drivers/mmc/host/sdhci-msm.c | 13 +-
drivers/mmc/host/sdhci-of-arasan.c | 69 +
drivers/mmc/host/sdhci-of-esdhc.c | 11 +-
drivers/mmc/host/sdhci-omap.c | 2 +-
drivers/mmc/host/sdhci-pci-core.c | 14 +-
drivers/mmc/host/sdhci-pci-gli.c | 11 +-
drivers/mmc/host/sdhci-pci-o2micro.c | 3 +-
drivers/mmc/host/sdhci-sprd.c | 20 +-
drivers/mmc/host/sdhci-tegra.c | 77 +-
drivers/mmc/host/sdhci.c | 144 +-
drivers/mmc/host/sdhci.h | 6 +-
drivers/mmc/host/sdhci_am654.c | 2 +-
drivers/mmc/host/sdhci_f_sdh30.c | 31 +-
drivers/mmc/host/sdhci_f_sdh30.h | 3 +
drivers/mmc/host/sunplus-mmc.c | 1000 +
drivers/mmc/host/tifm_sd.c | 28 +-
drivers/mmc/host/tmio_mmc.h | 15 +-
drivers/mmc/host/tmio_mmc_core.c | 18 +-
drivers/mmc/host/toshsd.c | 6 +-
drivers/mmc/host/via-sdmmc.c | 4 +-
drivers/mmc/host/vub300.c | 13 +-
drivers/mmc/host/wbsd.c | 22 +-
drivers/mmc/host/wmt-sdmmc.c | 6 +-
drivers/mtd/devices/Kconfig | 8 -
drivers/mtd/devices/Makefile | 1 -
drivers/mtd/devices/lart.c | 682 -
drivers/mtd/inftlcore.c | 2 +-
drivers/mtd/lpddr/lpddr2_nvm.c | 2 +
drivers/mtd/maps/pxa2xx-flash.c | 2 +
drivers/mtd/mtdcore.c | 55 +-
drivers/mtd/mtdoops.c | 109 +-
drivers/mtd/nand/core.c | 3 +-
drivers/mtd/nand/raw/Kconfig | 6 +-
drivers/mtd/nand/raw/cadence-nand-controller.c | 70 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 12 +-
drivers/mtd/nand/raw/lpc32xx_mlc.c | 46 +-
drivers/mtd/nand/raw/lpc32xx_slc.c | 43 +-
drivers/mtd/nand/raw/marvell_nand.c | 4 +-
drivers/mtd/nand/raw/mpc5121_nfc.c | 2 +-
drivers/mtd/nand/raw/nandsim.c | 4 +-
drivers/mtd/nand/spi/winbond.c | 79 +-
drivers/mtd/parsers/Kconfig | 19 +-
drivers/mtd/parsers/Makefile | 1 +
drivers/mtd/parsers/tplink_safeloader.c | 150 +
drivers/mtd/spi-nor/core.c | 85 +-
drivers/mtd/spi-nor/core.h | 5 +
drivers/mtd/spi-nor/debugfs.c | 2 +-
drivers/mtd/spi-nor/gigadevice.c | 24 +-
drivers/mtd/spi-nor/issi.c | 5 +-
drivers/mtd/spi-nor/micron-st.c | 12 +-
drivers/mtd/spi-nor/sfdp.c | 37 +-
drivers/mtd/spi-nor/sfdp.h | 2 -
drivers/mtd/spi-nor/spansion.c | 61 +-
drivers/mtd/spi-nor/sysfs.c | 20 +-
drivers/mtd/spi-nor/winbond.c | 3 +
drivers/mtd/tests/mtd_nandecctest.c | 10 +-
drivers/mtd/tests/stresstest.c | 8 +-
drivers/mtd/ubi/debug.c | 2 +-
drivers/mtd/ubi/debug.h | 6 +-
drivers/net/arcnet/com20020_cs.c | 11 +-
drivers/net/bonding/bond_3ad.c | 9 +
drivers/net/bonding/bond_main.c | 85 +-
drivers/net/bonding/bond_options.c | 18 -
drivers/net/can/Kconfig | 8 -
drivers/net/can/Makefile | 1 -
drivers/net/can/c_can/Kconfig | 3 +-
drivers/net/can/c_can/c_can_platform.c | 3 +-
drivers/net/can/can327.c | 21 +-
drivers/net/can/cc770/cc770_isa.c | 10 +-
drivers/net/can/ctucanfd/Kconfig | 2 +-
drivers/net/can/flexcan/flexcan-core.c | 49 +-
drivers/net/can/flexcan/flexcan.h | 2 +
drivers/net/can/m_can/m_can.c | 158 +-
drivers/net/can/m_can/m_can.h | 18 +-
drivers/net/can/m_can/m_can_pci.c | 9 +-
drivers/net/can/m_can/m_can_platform.c | 6 +-
drivers/net/can/m_can/tcan4x5x-core.c | 18 +-
drivers/net/can/m_can/tcan4x5x-regmap.c | 47 +-
drivers/net/can/pch_can.c | 1249 -
drivers/net/can/rcar/rcar_canfd.c | 109 +-
drivers/net/can/sja1000/sja1000_isa.c | 10 +-
drivers/net/can/slcan/slcan-core.c | 10 +-
drivers/net/can/usb/Kconfig | 10 +-
drivers/net/can/usb/esd_usb.c | 6 +
drivers/net/can/usb/etas_es58x/Makefile | 2 +-
drivers/net/can/usb/etas_es58x/es581_4.c | 4 +-
drivers/net/can/usb/etas_es58x/es58x_core.c | 99 +-
drivers/net/can/usb/etas_es58x/es58x_core.h | 58 +-
drivers/net/can/usb/etas_es58x/es58x_devlink.c | 235 +
drivers/net/can/usb/etas_es58x/es58x_fd.c | 4 +-
drivers/net/can/usb/gs_usb.c | 99 +-
drivers/net/can/usb/kvaser_usb/Makefile | 5 -
drivers/net/can/usb/kvaser_usb/kvaser_usb.h | 30 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c | 113 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 191 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c | 464 +-
drivers/net/can/usb/mcba_usb.c | 10 +-
drivers/net/can/usb/ucan.c | 12 +-
drivers/net/can/vxcan.c | 2 +-
drivers/net/dsa/Kconfig | 2 +
drivers/net/dsa/b53/Kconfig | 1 +
drivers/net/dsa/hirschmann/hellcreek.c | 5 -
drivers/net/dsa/lan9303-core.c | 6 +-
drivers/net/dsa/lan9303_i2c.c | 5 +-
drivers/net/dsa/microchip/Kconfig | 1 +
drivers/net/dsa/microchip/ksz8.h | 1 +
drivers/net/dsa/microchip/ksz8795.c | 75 +-
drivers/net/dsa/microchip/ksz8795_reg.h | 3 +
drivers/net/dsa/microchip/ksz8863_smi.c | 9 +-
drivers/net/dsa/microchip/ksz9477.c | 24 +-
drivers/net/dsa/microchip/ksz9477.h | 1 -
drivers/net/dsa/microchip/ksz9477_i2c.c | 17 +-
drivers/net/dsa/microchip/ksz9477_reg.h | 2 -
drivers/net/dsa/microchip/ksz_common.c | 153 +-
drivers/net/dsa/microchip/ksz_common.h | 17 +-
drivers/net/dsa/microchip/ksz_spi.c | 10 +-
drivers/net/dsa/microchip/lan937x_main.c | 6 +-
drivers/net/dsa/mt7530.c | 3 -
drivers/net/dsa/mv88e6xxx/Makefile | 4 +
drivers/net/dsa/mv88e6xxx/chip.c | 20 +-
drivers/net/dsa/mv88e6xxx/devlink.c | 5 -
drivers/net/dsa/mv88e6xxx/global1_atu.c | 85 +-
drivers/net/dsa/mv88e6xxx/global1_vtu.c | 7 +-
drivers/net/dsa/mv88e6xxx/port.c | 9 +
drivers/net/dsa/mv88e6xxx/port.h | 2 +
drivers/net/dsa/mv88e6xxx/trace.c | 6 +
drivers/net/dsa/mv88e6xxx/trace.h | 96 +
drivers/net/dsa/ocelot/felix.c | 17 +-
drivers/net/dsa/ocelot/felix.h | 4 -
drivers/net/dsa/ocelot/felix_vsc9959.c | 35 -
drivers/net/dsa/ocelot/seville_vsc9953.c | 32 -
drivers/net/dsa/sja1105/sja1105_devlink.c | 14 +-
drivers/net/dsa/sja1105/sja1105_main.c | 2 +-
drivers/net/dsa/sja1105/sja1105_mdio.c | 6 +
drivers/net/dsa/xrs700x/xrs700x_i2c.c | 5 +-
drivers/net/dummy.c | 7 -
drivers/net/ethernet/Kconfig | 10 -
drivers/net/ethernet/Makefile | 1 -
drivers/net/ethernet/adi/adin1110.c | 58 +-
drivers/net/ethernet/aeroflex/greth.c | 1 +
drivers/net/ethernet/alacritech/slic.h | 12 +-
drivers/net/ethernet/altera/altera_tse_main.c | 2 +-
drivers/net/ethernet/amazon/ena/ena_ethtool.c | 4 +-
drivers/net/ethernet/amazon/ena/ena_netdev.c | 12 +-
drivers/net/ethernet/amd/atarilance.c | 2 +-
drivers/net/ethernet/amd/lance.c | 2 +-
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 23 +-
drivers/net/ethernet/amd/xgbe/xgbe-ptp.c | 20 +-
drivers/net/ethernet/apple/bmac.c | 2 +-
drivers/net/ethernet/apple/mace.c | 2 +-
.../net/ethernet/aquantia/atlantic/aq_ethtool.c | 5 +-
drivers/net/ethernet/aquantia/atlantic/aq_main.c | 4 +-
drivers/net/ethernet/aquantia/atlantic/aq_main.h | 2 +
drivers/net/ethernet/aquantia/atlantic/aq_ring.c | 8 +-
drivers/net/ethernet/asix/ax88796c_main.c | 4 +-
drivers/net/ethernet/atheros/ag71xx.c | 1 -
drivers/net/ethernet/broadcom/Kconfig | 3 +-
drivers/net/ethernet/broadcom/b44.c | 8 +-
drivers/net/ethernet/broadcom/bcm4908_enet.c | 57 +-
drivers/net/ethernet/broadcom/bcmsysport.c | 23 +-
drivers/net/ethernet/broadcom/bcmsysport.h | 11 +
drivers/net/ethernet/broadcom/bnx2.c | 7 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 9 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 12 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 112 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 +
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 4 -
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 134 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 281 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 39 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h | 7 +-
drivers/net/ethernet/broadcom/cnic.c | 8 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 49 +-
drivers/net/ethernet/broadcom/genet/bcmmii.c | 19 +-
drivers/net/ethernet/broadcom/tg3.c | 22 +-
drivers/net/ethernet/brocade/bna/bfa_cs.h | 60 +-
drivers/net/ethernet/brocade/bna/bfa_ioc.c | 10 +-
drivers/net/ethernet/brocade/bna/bfa_ioc.h | 8 +-
drivers/net/ethernet/brocade/bna/bfa_msgq.c | 2 -
drivers/net/ethernet/brocade/bna/bfa_msgq.h | 8 +-
drivers/net/ethernet/brocade/bna/bna_enet.c | 6 +-
drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 6 +-
drivers/net/ethernet/brocade/bna/bna_types.h | 27 +-
drivers/net/ethernet/cadence/macb_main.c | 17 +-
drivers/net/ethernet/cavium/liquidio/lio_main.c | 15 +-
.../net/ethernet/cavium/liquidio/octeon_console.c | 7 +-
drivers/net/ethernet/cavium/thunder/nicvf_main.c | 4 +-
drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 4 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c | 13 +-
.../chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c | 4 +
.../chelsio/inline_crypto/ch_ktls/chcr_ktls.c | 26 +-
.../chelsio/inline_crypto/chtls/chtls_io.c | 4 +-
drivers/net/ethernet/cisco/enic/enic.h | 23 +-
drivers/net/ethernet/cisco/enic/enic_main.c | 11 +-
drivers/net/ethernet/cortina/gemini.c | 24 +-
drivers/net/ethernet/davicom/dm9051.c | 4 +-
drivers/net/ethernet/dlink/dl2k.c | 2 -
drivers/net/ethernet/dlink/sundance.c | 2 -
drivers/net/ethernet/dnet.c | 4 +-
drivers/net/ethernet/emulex/benet/be_ethtool.c | 12 +-
drivers/net/ethernet/emulex/benet/be_main.c | 16 +-
drivers/net/ethernet/engleder/tsnep.h | 8 +
drivers/net/ethernet/engleder/tsnep_ethtool.c | 165 +-
drivers/net/ethernet/engleder/tsnep_hw.h | 7 +
drivers/net/ethernet/engleder/tsnep_main.c | 288 +-
drivers/net/ethernet/faraday/ftmac100.c | 65 +-
drivers/net/ethernet/fealnx.c | 1953 -
drivers/net/ethernet/freescale/Kconfig | 1 +
drivers/net/ethernet/freescale/dpaa/Kconfig | 4 +-
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 89 +-
drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c | 90 +-
drivers/net/ethernet/freescale/dpaa2/Makefile | 2 +-
.../ethernet/freescale/dpaa2/dpaa2-eth-debugfs.c | 57 +-
.../ethernet/freescale/dpaa2/dpaa2-eth-devlink.c | 22 +-
.../net/ethernet/freescale/dpaa2/dpaa2-eth-trace.h | 142 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 609 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h | 112 +-
.../net/ethernet/freescale/dpaa2/dpaa2-ethtool.c | 128 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c | 22 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.h | 10 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp.c | 1 -
.../freescale/dpaa2/dpaa2-switch-ethtool.c | 45 +-
.../ethernet/freescale/dpaa2/dpaa2-switch-flower.c | 4 +
.../net/ethernet/freescale/dpaa2/dpaa2-switch.c | 60 +-
.../net/ethernet/freescale/dpaa2/dpaa2-switch.h | 9 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-xsk.c | 454 +
drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h | 19 +-
drivers/net/ethernet/freescale/dpaa2/dpni.c | 6 +-
drivers/net/ethernet/freescale/dpaa2/dpni.h | 9 +
drivers/net/ethernet/freescale/enetc/enetc.c | 43 +-
drivers/net/ethernet/freescale/enetc/enetc.h | 1 +
drivers/net/ethernet/freescale/enetc/enetc_pf.c | 1 -
drivers/net/ethernet/freescale/enetc/enetc_qos.c | 21 +-
drivers/net/ethernet/freescale/fec.h | 20 +-
drivers/net/ethernet/freescale/fec_main.c | 428 +-
drivers/net/ethernet/freescale/fec_ptp.c | 177 +-
drivers/net/ethernet/freescale/fman/Kconfig | 3 +-
drivers/net/ethernet/freescale/fman/fman_dtsec.c | 457 +-
drivers/net/ethernet/freescale/fman/fman_mac.h | 10 -
drivers/net/ethernet/freescale/fman/fman_memac.c | 744 +-
drivers/net/ethernet/freescale/fman/fman_tgec.c | 130 +-
drivers/net/ethernet/freescale/fman/mac.c | 168 +-
drivers/net/ethernet/freescale/fman/mac.h | 23 +-
.../net/ethernet/fungible/funeth/funeth_devlink.c | 7 -
drivers/net/ethernet/fungible/funeth/funeth_main.c | 13 +-
drivers/net/ethernet/fungible/funeth/funeth_txrx.h | 4 +-
drivers/net/ethernet/google/gve/gve.h | 27 +-
drivers/net/ethernet/google/gve/gve_adminq.c | 21 +-
drivers/net/ethernet/google/gve/gve_adminq.h | 51 +
drivers/net/ethernet/google/gve/gve_desc_dqo.h | 5 +
drivers/net/ethernet/google/gve/gve_ethtool.c | 18 +-
drivers/net/ethernet/google/gve/gve_main.c | 64 +-
drivers/net/ethernet/google/gve/gve_rx.c | 544 +-
drivers/net/ethernet/google/gve/gve_rx_dqo.c | 2 +-
drivers/net/ethernet/google/gve/gve_tx_dqo.c | 20 +-
drivers/net/ethernet/google/gve/gve_utils.c | 30 +-
drivers/net/ethernet/google/gve/gve_utils.h | 2 +-
drivers/net/ethernet/hisilicon/hisi_femac.c | 2 +-
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | 2 +-
drivers/net/ethernet/hisilicon/hns/hnae.c | 3 -
drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | 11 +-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 4 +-
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 6 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c | 5 -
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c | 22 +-
.../hisilicon/hns3/hns3vf/hclgevf_devlink.c | 5 -
drivers/net/ethernet/huawei/hinic/hinic_dev.h | 4 +
drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h | 170 +-
drivers/net/ethernet/huawei/hinic/hinic_main.c | 13 +-
drivers/net/ethernet/huawei/hinic/hinic_port.c | 50 +-
drivers/net/ethernet/huawei/hinic/hinic_port.h | 12 +
drivers/net/ethernet/huawei/hinic/hinic_rx.c | 4 +-
drivers/net/ethernet/huawei/hinic/hinic_sriov.c | 18 +
drivers/net/ethernet/huawei/hinic/hinic_tx.c | 4 +-
drivers/net/ethernet/ibm/ibmveth.c | 18 +-
drivers/net/ethernet/ibm/ibmveth.h | 1 -
drivers/net/ethernet/ibm/ibmvnic.c | 239 +-
drivers/net/ethernet/ibm/ibmvnic.h | 5 +
drivers/net/ethernet/intel/e100.c | 5 +-
drivers/net/ethernet/intel/e1000/e1000_main.c | 9 +-
drivers/net/ethernet/intel/e1000e/Makefile | 3 +
drivers/net/ethernet/intel/e1000e/e1000.h | 4 +-
drivers/net/ethernet/intel/e1000e/e1000e_trace.h | 42 +
drivers/net/ethernet/intel/e1000e/ethtool.c | 2 +
drivers/net/ethernet/intel/e1000e/hw.h | 9 +
drivers/net/ethernet/intel/e1000e/ich8lan.c | 27 +
drivers/net/ethernet/intel/e1000e/netdev.c | 55 +-
drivers/net/ethernet/intel/e1000e/ptp.c | 17 +-
drivers/net/ethernet/intel/fm10k/fm10k_main.c | 10 +-
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 8 +-
drivers/net/ethernet/intel/i40e/i40e.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 8 +-
drivers/net/ethernet/intel/i40e/i40e_common.c | 26 +
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 24 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 121 +-
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 3 +
drivers/net/ethernet/intel/i40e/i40e_ptp.c | 17 +-
drivers/net/ethernet/intel/i40e/i40e_trace.h | 49 +
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 27 +-
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 2 +
drivers/net/ethernet/intel/iavf/iavf.h | 1 -
drivers/net/ethernet/intel/iavf/iavf_ethtool.c | 8 +-
drivers/net/ethernet/intel/iavf/iavf_main.c | 54 +-
drivers/net/ethernet/intel/ice/ice.h | 24 +
drivers/net/ethernet/intel/ice/ice_adminq_cmd.h | 4 +-
drivers/net/ethernet/intel/ice/ice_base.c | 2 +-
drivers/net/ethernet/intel/ice/ice_common.c | 48 +-
drivers/net/ethernet/intel/ice/ice_common.h | 1 +
drivers/net/ethernet/intel/ice/ice_dcb.c | 2 +-
drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 10 +
drivers/net/ethernet/intel/ice/ice_devlink.c | 634 +-
drivers/net/ethernet/intel/ice/ice_devlink.h | 3 +
drivers/net/ethernet/intel/ice/ice_ethtool.c | 181 +-
drivers/net/ethernet/intel/ice/ice_hw_autogen.h | 3 +
drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h | 12 -
drivers/net/ethernet/intel/ice/ice_lib.c | 272 +-
drivers/net/ethernet/intel/ice/ice_main.c | 147 +-
drivers/net/ethernet/intel/ice/ice_ptp.c | 588 +-
drivers/net/ethernet/intel/ice/ice_ptp.h | 39 +-
drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 348 +-
drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 8 +-
drivers/net/ethernet/intel/ice/ice_repr.c | 40 +-
drivers/net/ethernet/intel/ice/ice_sched.c | 104 +-
drivers/net/ethernet/intel/ice/ice_sched.h | 31 +-
drivers/net/ethernet/intel/ice/ice_tc_lib.c | 351 +-
drivers/net/ethernet/intel/ice/ice_tc_lib.h | 40 +-
drivers/net/ethernet/intel/ice/ice_txrx.c | 40 +-
drivers/net/ethernet/intel/ice/ice_txrx.h | 18 +-
drivers/net/ethernet/intel/ice/ice_txrx_lib.c | 2 +-
drivers/net/ethernet/intel/ice/ice_type.h | 9 +
drivers/net/ethernet/intel/ice/ice_vf_lib.c | 24 +
.../net/ethernet/intel/ice/ice_vf_lib_private.h | 1 +
drivers/net/ethernet/intel/ice/ice_vf_mbx.c | 92 +-
drivers/net/ethernet/intel/ice/ice_virtchnl.c | 195 +
drivers/net/ethernet/intel/ice/ice_virtchnl.h | 4 +
.../ethernet/intel/ice/ice_virtchnl_allowlist.c | 6 +
drivers/net/ethernet/intel/ice/ice_xsk.c | 25 +-
drivers/net/ethernet/intel/igb/igb_ethtool.c | 14 +-
drivers/net/ethernet/intel/igb/igb_main.c | 20 +-
drivers/net/ethernet/intel/igb/igb_ptp.c | 18 +-
drivers/net/ethernet/intel/igc/igc.h | 3 +
drivers/net/ethernet/intel/igc/igc_defines.h | 11 +
drivers/net/ethernet/intel/igc/igc_ethtool.c | 12 +-
drivers/net/ethernet/intel/igc/igc_main.c | 225 +-
drivers/net/ethernet/intel/igc/igc_regs.h | 1 +
drivers/net/ethernet/intel/igc/igc_tsn.c | 43 +-
drivers/net/ethernet/intel/igc/igc_tsn.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 10 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 61 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c | 5 +
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 8 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 26 +-
drivers/net/ethernet/intel/ixgbevf/ethtool.c | 12 +-
drivers/net/ethernet/intel/ixgbevf/ipsec.c | 5 +
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 35 +-
drivers/net/ethernet/marvell/mv643xx_eth.c | 49 +-
drivers/net/ethernet/marvell/mvneta.c | 15 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 24 +-
.../net/ethernet/marvell/octeon_ep/octep_main.c | 20 +-
.../net/ethernet/marvell/octeon_ep/octep_main.h | 2 +
drivers/net/ethernet/marvell/octeontx2/Kconfig | 1 -
drivers/net/ethernet/marvell/octeontx2/af/cgx.c | 78 +-
drivers/net/ethernet/marvell/octeontx2/af/cgx.h | 9 +-
.../ethernet/marvell/octeontx2/af/lmac_common.h | 15 +-
drivers/net/ethernet/marvell/octeontx2/af/mbox.h | 18 +
drivers/net/ethernet/marvell/octeontx2/af/mcs.c | 8 +-
drivers/net/ethernet/marvell/octeontx2/af/npc.h | 3 +
drivers/net/ethernet/marvell/octeontx2/af/rpm.c | 262 +-
drivers/net/ethernet/marvell/octeontx2/af/rpm.h | 36 +-
drivers/net/ethernet/marvell/octeontx2/af/rvu.h | 13 +-
.../net/ethernet/marvell/octeontx2/af/rvu_cgx.c | 49 +-
.../ethernet/marvell/octeontx2/af/rvu_debugfs.c | 19 +-
.../ethernet/marvell/octeontx2/af/rvu_devlink.c | 7 -
.../net/ethernet/marvell/octeontx2/af/rvu_nix.c | 12 +-
.../net/ethernet/marvell/octeontx2/af/rvu_npc.c | 22 +
.../net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c | 151 +-
.../ethernet/marvell/octeontx2/af/rvu_npc_hash.c | 21 +-
.../net/ethernet/marvell/octeontx2/af/rvu_sdp.c | 7 +-
.../ethernet/marvell/octeontx2/nic/otx2_common.h | 5 +-
.../ethernet/marvell/octeontx2/nic/otx2_devlink.c | 15 -
.../ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 34 +
.../ethernet/marvell/octeontx2/nic/otx2_flows.c | 52 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 2 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_tc.c | 32 +-
.../ethernet/marvell/prestera/prestera_devlink.c | 22 -
.../ethernet/marvell/prestera/prestera_devlink.h | 5 -
.../net/ethernet/marvell/prestera/prestera_main.c | 22 +-
.../net/ethernet/marvell/prestera/prestera_pci.c | 119 +-
.../ethernet/marvell/prestera/prestera_router.c | 2 +-
.../ethernet/marvell/prestera/prestera_router_hw.c | 4 +-
drivers/net/ethernet/marvell/sky2.c | 10 +-
drivers/net/ethernet/mediatek/Makefile | 2 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 521 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 59 +-
drivers/net/ethernet/mediatek/mtk_ppe.c | 41 +-
drivers/net/ethernet/mediatek/mtk_ppe.h | 5 +
drivers/net/ethernet/mediatek/mtk_ppe_offload.c | 12 +-
drivers/net/ethernet/mediatek/mtk_sgmii.c | 174 +-
drivers/net/ethernet/mediatek/mtk_wed.c | 863 +-
drivers/net/ethernet/mediatek/mtk_wed.h | 21 +
drivers/net/ethernet/mediatek/mtk_wed_debugfs.c | 87 +
drivers/net/ethernet/mediatek/mtk_wed_mcu.c | 390 +
drivers/net/ethernet/mediatek/mtk_wed_regs.h | 140 +-
drivers/net/ethernet/mediatek/mtk_wed_wo.c | 512 +
drivers/net/ethernet/mediatek/mtk_wed_wo.h | 282 +
drivers/net/ethernet/mellanox/mlx4/en_clock.c | 29 +-
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 9 +-
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 18 +-
drivers/net/ethernet/mellanox/mlx4/main.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 18 +-
drivers/net/ethernet/mellanox/mlx4/qp.c | 3 +-
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 1 +
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 52 +-
drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 19 +-
drivers/net/ethernet/mellanox/mlx5/core/devlink.h | 2 +
.../mellanox/mlx5/core/diag/cmd_tracepoint.h | 45 +
.../mellanox/mlx5/core/diag/fs_tracepoint.c | 16 +
.../ethernet/mellanox/mlx5/core/diag/fw_tracer.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en.h | 11 +-
.../net/ethernet/mellanox/mlx5/core/en/devlink.c | 17 -
.../net/ethernet/mellanox/mlx5/core/en/devlink.h | 2 -
drivers/net/ethernet/mellanox/mlx5/core/en/fs.h | 3 +-
.../net/ethernet/mellanox/mlx5/core/en/params.c | 16 +-
.../net/ethernet/mellanox/mlx5/core/en/params.h | 14 +
.../net/ethernet/mellanox/mlx5/core/en/rep/tc.c | 1 -
.../ethernet/mellanox/mlx5/core/en/tc/act/accept.c | 1 +
.../ethernet/mellanox/mlx5/core/en/tc/act/act.c | 2 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/act.h | 12 +
.../ethernet/mellanox/mlx5/core/en/tc/act/drop.c | 1 +
.../ethernet/mellanox/mlx5/core/en/tc/act/goto.c | 1 +
.../ethernet/mellanox/mlx5/core/en/tc/act/mirred.c | 7 +
.../mellanox/mlx5/core/en/tc/act/mirred_nic.c | 1 +
.../ethernet/mellanox/mlx5/core/en/tc/act/police.c | 86 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/trap.c | 10 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/meter.c | 40 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/meter.h | 5 +-
.../ethernet/mellanox/mlx5/core/en/tc/post_meter.c | 402 +-
.../ethernet/mellanox/mlx5/core/en/tc/post_meter.h | 39 +-
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c | 89 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_priv.h | 4 -
.../ethernet/mellanox/mlx5/core/en/tc_tun_encap.c | 16 +-
.../ethernet/mellanox/mlx5/core/en/tc_tun_encap.h | 3 +-
.../ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c | 4 +-
.../ethernet/mellanox/mlx5/core/en_accel/ipsec.c | 371 +-
.../ethernet/mellanox/mlx5/core/en_accel/ipsec.h | 137 +-
.../mellanox/mlx5/core/en_accel/ipsec_fs.c | 1069 +-
.../mellanox/mlx5/core/en_accel/ipsec_offload.c | 303 +-
.../mellanox/mlx5/core/en_accel/ipsec_rxtx.c | 22 +-
.../mellanox/mlx5/core/en_accel/ipsec_stats.c | 52 +
.../ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c | 65 +-
.../ethernet/mellanox/mlx5/core/en_accel/macsec.c | 153 +-
.../ethernet/mellanox/mlx5/core/en_accel/macsec.h | 6 +-
.../mellanox/mlx5/core/en_accel/macsec_fs.c | 17 +-
drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 2 -
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 19 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 32 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 148 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 171 +-
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 18 +
drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 19 +
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 454 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h | 9 +-
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 5 +
.../net/ethernet/mellanox/mlx5/core/esw/bridge.c | 8 +-
.../net/ethernet/mellanox/mlx5/core/esw/debugfs.c | 22 +-
.../ethernet/mellanox/mlx5/core/esw/devlink_port.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 46 +
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 24 +-
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 279 +-
.../mellanox/mlx5/core/eswitch_offloads_termtbl.c | 34 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 20 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 1 +
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 9 +-
.../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 7 +-
.../ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 12 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 14 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c | 79 +-
.../net/ethernet/mellanox/mlx5/core/lag/mpesw.c | 100 +-
.../net/ethernet/mellanox/mlx5/core/lag/mpesw.h | 1 -
drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/lib/aso.h | 4 +-
.../net/ethernet/mellanox/mlx5/core/lib/clock.c | 22 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 31 +-
.../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 5 +-
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c | 3 +-
.../net/ethernet/mellanox/mlx5/core/sf/dev/dev.c | 88 +
.../mellanox/mlx5/core/steering/dr_action.c | 300 +-
.../mellanox/mlx5/core/steering/dr_buddy.c | 2 -
.../ethernet/mellanox/mlx5/core/steering/dr_cmd.c | 84 +
.../ethernet/mellanox/mlx5/core/steering/dr_dbg.c | 29 +-
.../mellanox/mlx5/core/steering/dr_definer.c | 151 +
.../mellanox/mlx5/core/steering/dr_domain.c | 96 +-
.../mellanox/mlx5/core/steering/dr_icm_pool.c | 174 +-
.../ethernet/mellanox/mlx5/core/steering/dr_rule.c | 119 +-
.../ethernet/mellanox/mlx5/core/steering/dr_send.c | 141 +-
.../ethernet/mellanox/mlx5/core/steering/dr_ste.c | 22 +-
.../ethernet/mellanox/mlx5/core/steering/dr_ste.h | 1 +
.../mellanox/mlx5/core/steering/dr_ste_v1.c | 69 +
.../mellanox/mlx5/core/steering/dr_ste_v1.h | 1 +
.../mellanox/mlx5/core/steering/dr_ste_v2.c | 1 +
.../mellanox/mlx5/core/steering/dr_table.c | 7 +-
.../mellanox/mlx5/core/steering/dr_types.h | 59 +-
.../ethernet/mellanox/mlx5/core/steering/fs_dr.c | 53 +-
.../mlx5/core/steering/mlx5_ifc_dr_ste_v1.h | 35 +
.../ethernet/mellanox/mlx5/core/steering/mlx5dr.h | 22 +-
drivers/net/ethernet/mellanox/mlx5/core/uar.c | 1 -
drivers/net/ethernet/mellanox/mlx5/core/vport.c | 30 +-
drivers/net/ethernet/mellanox/mlx5/core/wq.h | 17 +
drivers/net/ethernet/mellanox/mlxsw/core.c | 25 +-
drivers/net/ethernet/mellanox/mlxsw/core.h | 7 +-
drivers/net/ethernet/mellanox/mlxsw/i2c.c | 6 +-
drivers/net/ethernet/mellanox/mlxsw/minimal.c | 17 +-
drivers/net/ethernet/mellanox/mlxsw/reg.h | 36 +
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 42 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 5 +-
.../net/ethernet/mellanox/mlxsw/spectrum_ethtool.c | 21 +
.../net/ethernet/mellanox/mlxsw/spectrum_ipip.c | 160 +-
.../net/ethernet/mellanox/mlxsw/spectrum_ipip.h | 1 +
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c | 18 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.c | 102 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.h | 4 +
.../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 64 +-
.../net/ethernet/mellanox/mlxsw/spectrum_trap.c | 25 +
drivers/net/ethernet/mellanox/mlxsw/trap.h | 2 +
drivers/net/ethernet/microchip/Kconfig | 1 +
drivers/net/ethernet/microchip/Makefile | 1 +
drivers/net/ethernet/microchip/encx24j600-regmap.c | 4 +-
drivers/net/ethernet/microchip/lan743x_ethtool.c | 159 +-
drivers/net/ethernet/microchip/lan743x_ethtool.h | 71 +-
drivers/net/ethernet/microchip/lan743x_main.c | 6 +-
drivers/net/ethernet/microchip/lan743x_main.h | 3 +
drivers/net/ethernet/microchip/lan743x_ptp.c | 54 +-
drivers/net/ethernet/microchip/lan966x/Kconfig | 2 +
drivers/net/ethernet/microchip/lan966x/Makefile | 7 +-
.../net/ethernet/microchip/lan966x/lan966x_fdma.c | 433 +-
.../net/ethernet/microchip/lan966x/lan966x_goto.c | 54 +
.../net/ethernet/microchip/lan966x/lan966x_ifh.h | 1 +
.../net/ethernet/microchip/lan966x/lan966x_main.c | 42 +-
.../net/ethernet/microchip/lan966x/lan966x_main.h | 95 +-
.../ethernet/microchip/lan966x/lan966x_phylink.c | 2 -
.../net/ethernet/microchip/lan966x/lan966x_ptp.c | 234 +-
.../net/ethernet/microchip/lan966x/lan966x_regs.h | 196 +
.../net/ethernet/microchip/lan966x/lan966x_tc.c | 2 +
.../ethernet/microchip/lan966x/lan966x_tc_flower.c | 254 +
.../microchip/lan966x/lan966x_tc_matchall.c | 6 +
.../microchip/lan966x/lan966x_vcap_ag_api.c | 1608 +
.../microchip/lan966x/lan966x_vcap_ag_api.h | 11 +
.../ethernet/microchip/lan966x/lan966x_vcap_impl.c | 549 +
.../net/ethernet/microchip/lan966x/lan966x_xdp.c | 140 +
drivers/net/ethernet/microchip/sparx5/Kconfig | 12 +
drivers/net/ethernet/microchip/sparx5/Makefile | 11 +-
drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c | 310 +
.../net/ethernet/microchip/sparx5/sparx5_fdma.c | 2 +-
.../net/ethernet/microchip/sparx5/sparx5_main.c | 15 +
.../net/ethernet/microchip/sparx5/sparx5_main.h | 20 +
.../ethernet/microchip/sparx5/sparx5_main_regs.h | 583 +-
.../net/ethernet/microchip/sparx5/sparx5_netdev.c | 14 +-
.../net/ethernet/microchip/sparx5/sparx5_packet.c | 41 +-
.../net/ethernet/microchip/sparx5/sparx5_phylink.c | 1 -
.../net/ethernet/microchip/sparx5/sparx5_port.c | 99 +
.../net/ethernet/microchip/sparx5/sparx5_port.h | 42 +
drivers/net/ethernet/microchip/sparx5/sparx5_qos.c | 4 +
drivers/net/ethernet/microchip/sparx5/sparx5_tc.c | 58 +-
drivers/net/ethernet/microchip/sparx5/sparx5_tc.h | 19 +
.../ethernet/microchip/sparx5/sparx5_tc_flower.c | 1016 +
.../ethernet/microchip/sparx5/sparx5_tc_matchall.c | 97 +
.../ethernet/microchip/sparx5/sparx5_vcap_ag_api.c | 1351 +
.../ethernet/microchip/sparx5/sparx5_vcap_ag_api.h | 18 +
.../microchip/sparx5/sparx5_vcap_debugfs.c | 200 +
.../microchip/sparx5/sparx5_vcap_debugfs.h | 33 +
.../ethernet/microchip/sparx5/sparx5_vcap_impl.c | 723 +
.../ethernet/microchip/sparx5/sparx5_vcap_impl.h | 81 +
drivers/net/ethernet/microchip/vcap/Kconfig | 53 +
drivers/net/ethernet/microchip/vcap/Makefile | 10 +
drivers/net/ethernet/microchip/vcap/vcap_ag_api.h | 735 +
drivers/net/ethernet/microchip/vcap/vcap_api.c | 2883 ++
drivers/net/ethernet/microchip/vcap/vcap_api.h | 280 +
.../net/ethernet/microchip/vcap/vcap_api_client.h | 265 +
.../net/ethernet/microchip/vcap/vcap_api_debugfs.c | 433 +
.../net/ethernet/microchip/vcap/vcap_api_debugfs.h | 41 +
.../microchip/vcap/vcap_api_debugfs_kunit.c | 555 +
.../net/ethernet/microchip/vcap/vcap_api_kunit.c | 2245 +
.../net/ethernet/microchip/vcap/vcap_api_private.h | 113 +
.../net/ethernet/microchip/vcap/vcap_model_kunit.c | 5570 +++
.../net/ethernet/microchip/vcap/vcap_model_kunit.h | 10 +
drivers/net/ethernet/microsoft/Kconfig | 1 +
drivers/net/ethernet/microsoft/mana/gdma_main.c | 69 +-
drivers/net/ethernet/microsoft/mana/hw_channel.c | 6 +-
drivers/net/ethernet/microsoft/mana/mana_bpf.c | 2 +-
drivers/net/ethernet/microsoft/mana/mana_en.c | 201 +-
drivers/net/ethernet/microsoft/mana/mana_ethtool.c | 10 +-
drivers/net/ethernet/microsoft/mana/shm_channel.c | 2 +-
drivers/net/ethernet/mscc/ocelot.c | 6 +-
drivers/net/ethernet/mscc/ocelot_net.c | 12 +-
drivers/net/ethernet/mscc/ocelot_stats.c | 244 +-
drivers/net/ethernet/mscc/ocelot_vsc7514.c | 14 -
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 4 +-
drivers/net/ethernet/neterion/s2io.c | 2 +-
drivers/net/ethernet/netronome/Kconfig | 11 +
drivers/net/ethernet/netronome/nfp/Makefile | 2 +
drivers/net/ethernet/netronome/nfp/ccm_mbox.c | 2 +-
drivers/net/ethernet/netronome/nfp/crypto/crypto.h | 23 +
drivers/net/ethernet/netronome/nfp/crypto/ipsec.c | 592 +
.../net/ethernet/netronome/nfp/flower/lag_conf.c | 52 +-
drivers/net/ethernet/netronome/nfp/flower/main.c | 9 +
drivers/net/ethernet/netronome/nfp/flower/main.h | 21 +-
.../ethernet/netronome/nfp/flower/tunnel_conf.c | 53 +-
drivers/net/ethernet/netronome/nfp/nfd3/dp.c | 58 +-
drivers/net/ethernet/netronome/nfp/nfd3/ipsec.c | 18 +
drivers/net/ethernet/netronome/nfp/nfd3/nfd3.h | 8 +
drivers/net/ethernet/netronome/nfp/nfdk/dp.c | 6 +-
drivers/net/ethernet/netronome/nfp/nfp_app.h | 2 -
drivers/net/ethernet/netronome/nfp/nfp_devlink.c | 29 +-
drivers/net/ethernet/netronome/nfp/nfp_main.h | 2 +-
drivers/net/ethernet/netronome/nfp/nfp_net.h | 16 +
.../net/ethernet/netronome/nfp/nfp_net_common.c | 89 +-
drivers/net/ethernet/netronome/nfp/nfp_net_ctrl.h | 37 +-
.../net/ethernet/netronome/nfp/nfp_net_ethtool.c | 84 +-
drivers/net/ethernet/netronome/nfp/nfp_net_main.c | 12 +-
drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 5 +-
drivers/net/ethernet/netronome/nfp/nfp_port.h | 2 -
.../net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c | 17 +
.../net/ethernet/netronome/nfp/nfpcore/nfp_nsp.h | 56 +
.../ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.c | 26 +
drivers/net/ethernet/ni/nixge.c | 29 +-
drivers/net/ethernet/nvidia/forcedeth.c | 8 +-
.../net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 6 +-
drivers/net/ethernet/pensando/ionic/ionic_dev.c | 14 +
drivers/net/ethernet/pensando/ionic/ionic_dev.h | 3 +
.../net/ethernet/pensando/ionic/ionic_devlink.c | 6 +-
drivers/net/ethernet/pensando/ionic/ionic_if.h | 45 +-
drivers/net/ethernet/pensando/ionic/ionic_lif.c | 113 +-
drivers/net/ethernet/pensando/ionic/ionic_main.c | 2 +-
drivers/net/ethernet/pensando/ionic/ionic_txrx.c | 31 +-
drivers/net/ethernet/qlogic/qed/qed_debug.c | 3 +-
drivers/net/ethernet/qlogic/qed/qed_devlink.c | 4 -
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 2 +-
drivers/net/ethernet/qlogic/qed/qed_mcp.c | 24 +-
drivers/net/ethernet/qlogic/qede/qede_ptp.c | 13 +-
drivers/net/ethernet/qlogic/qla3xxx.c | 1 +
.../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 4 +-
.../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | 2 +-
.../ethernet/qlogic/qlcnic/qlcnic_sriov_common.c | 2 +
drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c | 4 +-
drivers/net/ethernet/rdc/r6040.c | 5 +-
drivers/net/ethernet/realtek/8139too.c | 8 +-
drivers/net/ethernet/realtek/r8169_main.c | 9 +-
drivers/net/ethernet/renesas/Kconfig | 12 +
drivers/net/ethernet/renesas/Makefile | 4 +
drivers/net/ethernet/renesas/ravb_main.c | 5 +-
drivers/net/ethernet/renesas/ravb_ptp.c | 17 +-
drivers/net/ethernet/renesas/rcar_gen4_ptp.c | 181 +
drivers/net/ethernet/renesas/rcar_gen4_ptp.h | 72 +
drivers/net/ethernet/renesas/rswitch.c | 1841 +
drivers/net/ethernet/renesas/rswitch.h | 973 +
drivers/net/ethernet/rocker/rocker_ofdpa.c | 15 +-
drivers/net/ethernet/sfc/Makefile | 2 +-
drivers/net/ethernet/sfc/ef100_ethtool.c | 2 -
drivers/net/ethernet/sfc/ef100_netdev.c | 1 +
drivers/net/ethernet/sfc/ef100_rx.c | 23 +-
drivers/net/ethernet/sfc/ef100_tx.c | 3 +-
drivers/net/ethernet/sfc/efx_channels.c | 9 +-
drivers/net/ethernet/sfc/efx_common.c | 2 +-
drivers/net/ethernet/sfc/ethtool_common.c | 37 -
drivers/net/ethernet/sfc/ethtool_common.h | 2 -
drivers/net/ethernet/sfc/mae.c | 306 +-
drivers/net/ethernet/sfc/mae.h | 7 +
drivers/net/ethernet/sfc/mae_counter_format.h | 73 +
drivers/net/ethernet/sfc/mcdi.h | 17 +
drivers/net/ethernet/sfc/net_driver.h | 19 +-
drivers/net/ethernet/sfc/ptp.c | 7 +-
drivers/net/ethernet/sfc/rx_common.c | 3 +
drivers/net/ethernet/sfc/siena/efx_common.c | 2 +-
drivers/net/ethernet/sfc/siena/ptp.c | 7 +-
drivers/net/ethernet/sfc/tc.c | 302 +-
drivers/net/ethernet/sfc/tc.h | 48 +-
drivers/net/ethernet/sfc/tc_counters.c | 503 +
drivers/net/ethernet/sfc/tc_counters.h | 59 +
drivers/net/ethernet/sfc/tx.c | 4 +-
drivers/net/ethernet/smsc/Kconfig | 14 -
drivers/net/ethernet/smsc/Makefile | 1 -
drivers/net/ethernet/smsc/smc911x.c | 2198 -
drivers/net/ethernet/smsc/smc911x.h | 901 -
drivers/net/ethernet/socionext/sni_ave.c | 14 +-
drivers/net/ethernet/stmicro/stmmac/Kconfig | 9 +
drivers/net/ethernet/stmicro/stmmac/Makefile | 1 +
drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.c | 388 +
drivers/net/ethernet/stmicro/stmmac/dwmac4.h | 4 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 23 +-
.../net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c | 3 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 24 +-
.../net/ethernet/stmicro/stmmac/stmmac_platform.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 23 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h | 2 +-
.../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 3 +
drivers/net/ethernet/sun/cassini.c | 48 +-
drivers/net/ethernet/sun/sunvnet.c | 2 +-
drivers/net/ethernet/sun/sunvnet_common.c | 4 +-
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 268 +-
drivers/net/ethernet/ti/am65-cpsw-nuss.h | 6 +
drivers/net/ethernet/ti/am65-cpts.c | 81 +-
drivers/net/ethernet/ti/am65-cpts.h | 10 +
drivers/net/ethernet/ti/cpsw_ale.c | 10 +
drivers/net/ethernet/ti/cpsw_ale.h | 1 +
drivers/net/ethernet/ti/cpts.c | 20 +-
drivers/net/ethernet/ti/netcp_core.c | 10 +-
drivers/net/ethernet/via/via-rhine.c | 8 +-
drivers/net/ethernet/wangxun/Kconfig | 7 +
drivers/net/ethernet/wangxun/Makefile | 1 +
drivers/net/ethernet/wangxun/libwx/Makefile | 7 +
drivers/net/ethernet/wangxun/libwx/wx_hw.c | 936 +
drivers/net/ethernet/wangxun/libwx/wx_hw.h | 28 +
drivers/net/ethernet/wangxun/libwx/wx_type.h | 352 +
drivers/net/ethernet/wangxun/ngbe/Makefile | 2 +-
drivers/net/ethernet/wangxun/ngbe/ngbe.h | 55 +
drivers/net/ethernet/wangxun/ngbe/ngbe_hw.c | 87 +
drivers/net/ethernet/wangxun/ngbe/ngbe_hw.h | 12 +
drivers/net/ethernet/wangxun/ngbe/ngbe_main.c | 368 +
drivers/net/ethernet/wangxun/ngbe/ngbe_type.h | 99 +-
drivers/net/ethernet/wangxun/txgbe/Makefile | 3 +-
drivers/net/ethernet/wangxun/txgbe/txgbe.h | 23 +-
drivers/net/ethernet/wangxun/txgbe/txgbe_hw.c | 312 +
drivers/net/ethernet/wangxun/txgbe/txgbe_hw.h | 11 +
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c | 465 +-
drivers/net/ethernet/wangxun/txgbe/txgbe_type.h | 47 +-
drivers/net/ethernet/xilinx/xilinx_axienet.h | 2 -
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 45 +-
drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c | 79 +-
drivers/net/ethernet/xilinx/xilinx_emaclite.c | 2 +-
drivers/net/ethernet/xscale/ptp_ixp46x.c | 19 +-
drivers/net/fddi/defxx.c | 22 +-
drivers/net/fjes/fjes_main.c | 4 +-
drivers/net/geneve.c | 2 +-
drivers/net/hamradio/baycom_epp.c | 2 +-
drivers/net/hamradio/scc.c | 6 +-
drivers/net/hyperv/netvsc_drv.c | 32 +-
drivers/net/ieee802154/atusb.c | 33 +-
drivers/net/ieee802154/ca8210.c | 2 +-
drivers/net/ieee802154/cc2520.c | 2 +-
drivers/net/ieee802154/mac802154_hwsim.c | 179 +-
drivers/net/ieee802154/mcr20a.c | 9 +-
drivers/net/ifb.c | 12 +-
drivers/net/ipa/Makefile | 2 +-
drivers/net/ipa/data/ipa_data-v3.1.c | 19 +-
drivers/net/ipa/data/ipa_data-v3.5.1.c | 27 +-
drivers/net/ipa/data/ipa_data-v4.11.c | 17 +-
drivers/net/ipa/data/ipa_data-v4.2.c | 17 +-
drivers/net/ipa/data/ipa_data-v4.5.c | 17 +-
drivers/net/ipa/data/ipa_data-v4.7.c | 405 +
drivers/net/ipa/data/ipa_data-v4.9.c | 17 +-
drivers/net/ipa/gsi_trans.c | 7 +-
drivers/net/ipa/ipa.h | 32 +-
drivers/net/ipa/ipa_cmd.c | 74 +-
drivers/net/ipa/ipa_cmd.h | 16 +-
drivers/net/ipa/ipa_data.h | 3 +
drivers/net/ipa/ipa_endpoint.c | 277 +-
drivers/net/ipa/ipa_endpoint.h | 2 +-
drivers/net/ipa/ipa_interrupt.c | 34 +-
drivers/net/ipa/ipa_main.c | 112 +-
drivers/net/ipa/ipa_mem.c | 19 +-
drivers/net/ipa/ipa_qmi.c | 9 +-
drivers/net/ipa/ipa_qmi_msg.c | 20 +-
drivers/net/ipa/ipa_qmi_msg.h | 20 +-
drivers/net/ipa/ipa_reg.c | 2 +
drivers/net/ipa/ipa_reg.h | 1 +
drivers/net/ipa/ipa_sysfs.c | 6 +-
drivers/net/ipa/ipa_table.c | 350 +-
drivers/net/ipa/ipa_table.h | 30 +-
drivers/net/ipa/ipa_version.h | 4 +
drivers/net/ipa/reg/ipa_reg-v3.1.c | 13 +-
drivers/net/ipa/reg/ipa_reg-v3.5.1.c | 13 +-
drivers/net/ipa/reg/ipa_reg-v4.11.c | 13 +-
drivers/net/ipa/reg/ipa_reg-v4.2.c | 13 +-
drivers/net/ipa/reg/ipa_reg-v4.5.c | 13 +-
drivers/net/ipa/reg/ipa_reg-v4.7.c | 507 +
drivers/net/ipa/reg/ipa_reg-v4.9.c | 13 +-
drivers/net/ipvlan/ipvlan.h | 1 +
drivers/net/ipvlan/ipvlan_main.c | 6 +-
drivers/net/ipvlan/ipvtap.c | 4 +-
drivers/net/loopback.c | 6 +-
drivers/net/macsec.c | 48 +-
drivers/net/macvlan.c | 4 +-
drivers/net/macvtap.c | 4 +-
drivers/net/mctp/mctp-serial.c | 6 +-
drivers/net/mdio/fwnode_mdio.c | 6 +-
drivers/net/mdio/of_mdio.c | 3 +-
drivers/net/mhi_net.c | 8 +-
drivers/net/netconsole.c | 21 +-
drivers/net/netdevsim/dev.c | 7 +-
drivers/net/netdevsim/ipsec.c | 5 +
drivers/net/netdevsim/netdev.c | 14 +-
drivers/net/ntb_netdev.c | 13 +-
drivers/net/pcs/pcs-altera-tse.c | 21 +-
drivers/net/pcs/pcs-xpcs.c | 10 +-
drivers/net/phy/Kconfig | 5 +-
drivers/net/phy/aquantia_main.c | 40 +
drivers/net/phy/at803x.c | 6 +-
drivers/net/phy/dp83822.c | 2 +
drivers/net/phy/dp83867.c | 7 +
drivers/net/phy/mdio_device.c | 2 +
drivers/net/phy/micrel.c | 77 +
drivers/net/phy/motorcomm.c | 1677 +-
drivers/net/phy/mscc/mscc_macsec.c | 57 +-
drivers/net/phy/mscc/mscc_macsec.h | 2 -
drivers/net/phy/mxl-gpy.c | 191 +-
drivers/net/phy/phy-core.c | 11 +-
drivers/net/phy/phy.c | 1 +
drivers/net/phy/phy_device.c | 14 +
drivers/net/phy/phylink.c | 65 +-
drivers/net/phy/sfp.c | 162 +-
drivers/net/plip/plip.c | 4 +-
drivers/net/ppp/ppp_generic.c | 4 +-
drivers/net/tap.c | 10 +-
drivers/net/team/team.c | 6 +-
drivers/net/team/team_mode_loadbalance.c | 4 +-
drivers/net/team/team_mode_random.c | 2 +-
drivers/net/thunderbolt.c | 27 +-
drivers/net/tun.c | 79 +-
drivers/net/usb/asix_devices.c | 23 +-
drivers/net/usb/cdc_ether.c | 6 +
drivers/net/usb/cdc_ncm.c | 4 +-
drivers/net/usb/qmi_wwan.c | 6 +-
drivers/net/usb/sierra_net.c | 2 +-
drivers/net/veth.c | 14 +-
drivers/net/virtio_net.c | 38 +-
drivers/net/vmxnet3/vmxnet3_drv.c | 27 +-
drivers/net/vrf.c | 4 +-
drivers/net/vxlan/vxlan_core.c | 4 +-
drivers/net/vxlan/vxlan_vnifilter.c | 4 +-
drivers/net/wan/farsync.c | 2 +
drivers/net/wireguard/selftest/allowedips.c | 20 +-
drivers/net/wireguard/timers.c | 12 +-
drivers/net/wireless/admtek/adm8211.c | 1 +
drivers/net/wireless/ath/ar5523/ar5523.c | 7 +
drivers/net/wireless/ath/ath10k/Kconfig | 1 +
drivers/net/wireless/ath/ath10k/core.c | 16 +
drivers/net/wireless/ath/ath10k/debug.c | 5 +-
drivers/net/wireless/ath/ath10k/htc.c | 9 +
drivers/net/wireless/ath/ath10k/htt.h | 6 +-
drivers/net/wireless/ath/ath10k/htt_rx.c | 25 +-
drivers/net/wireless/ath/ath10k/hw.h | 2 +
drivers/net/wireless/ath/ath10k/pci.c | 20 +-
drivers/net/wireless/ath/ath10k/qmi.c | 37 +-
drivers/net/wireless/ath/ath10k/qmi_wlfw_v01.c | 126 +-
drivers/net/wireless/ath/ath10k/qmi_wlfw_v01.h | 102 +-
drivers/net/wireless/ath/ath10k/wmi-tlv.c | 7 +
drivers/net/wireless/ath/ath11k/core.c | 15 +-
drivers/net/wireless/ath/ath11k/core.h | 3 +
drivers/net/wireless/ath/ath11k/hw.h | 1 +
drivers/net/wireless/ath/ath11k/mac.c | 232 +-
drivers/net/wireless/ath/ath11k/mac.h | 2 +-
drivers/net/wireless/ath/ath11k/pcic.c | 13 +-
drivers/net/wireless/ath/ath11k/qmi.c | 87 +-
drivers/net/wireless/ath/ath11k/wmi.c | 2 +-
drivers/net/wireless/ath/ath5k/mac80211-ops.c | 1 +
drivers/net/wireless/ath/ath9k/Makefile | 5 -
drivers/net/wireless/ath/ath9k/ar9003_mci.c | 3 +-
drivers/net/wireless/ath/ath9k/ath9k.h | 1 +
drivers/net/wireless/ath/ath9k/hif_usb.c | 46 +-
drivers/net/wireless/ath/ath9k/htc_drv_main.c | 1 +
drivers/net/wireless/ath/ath9k/mci.c | 8 +-
drivers/net/wireless/ath/ath9k/tx99.c | 2 +-
drivers/net/wireless/ath/ath9k/xmit.c | 2 -
drivers/net/wireless/ath/carl9170/Makefile | 5 -
drivers/net/wireless/ath/carl9170/fwcmd.h | 4 +-
drivers/net/wireless/ath/carl9170/main.c | 1 +
drivers/net/wireless/ath/carl9170/wlan.h | 2 +-
drivers/net/wireless/ath/wcn36xx/main.c | 1 +
drivers/net/wireless/ath/wil6210/debugfs.c | 36 +-
drivers/net/wireless/atmel/at76c50x-usb.c | 1 +
drivers/net/wireless/atmel/atmel.c | 162 +-
drivers/net/wireless/broadcom/b43/main.c | 11 +-
drivers/net/wireless/broadcom/b43legacy/main.c | 1 +
.../wireless/broadcom/brcm80211/brcmfmac/Makefile | 11 +
.../broadcom/brcm80211/brcmfmac/bca/Makefile | 12 +
.../broadcom/brcm80211/brcmfmac/bca/core.c | 27 +
.../broadcom/brcm80211/brcmfmac/bca/module.c | 27 +
.../broadcom/brcm80211/brcmfmac/bca/vops.h | 11 +
.../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 52 +-
.../wireless/broadcom/brcm80211/brcmfmac/btcoex.c | 2 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/bus.h | 36 +-
.../broadcom/brcm80211/brcmfmac/cfg80211.c | 587 +-
.../wireless/broadcom/brcm80211/brcmfmac/common.c | 15 +-
.../wireless/broadcom/brcm80211/brcmfmac/core.c | 15 +-
.../wireless/broadcom/brcm80211/brcmfmac/core.h | 9 +
.../broadcom/brcm80211/brcmfmac/cyw/Makefile | 12 +
.../broadcom/brcm80211/brcmfmac/cyw/core.c | 27 +
.../broadcom/brcm80211/brcmfmac/cyw/module.c | 27 +
.../broadcom/brcm80211/brcmfmac/cyw/vops.h | 11 +
.../wireless/broadcom/brcm80211/brcmfmac/feature.c | 3 +-
.../wireless/broadcom/brcm80211/brcmfmac/feature.h | 4 +-
.../broadcom/brcm80211/brcmfmac/firmware.c | 5 +
.../broadcom/brcm80211/brcmfmac/fwil_types.h | 4 +-
.../wireless/broadcom/brcm80211/brcmfmac/fwvid.c | 199 +
.../wireless/broadcom/brcm80211/brcmfmac/fwvid.h | 47 +
.../net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 10 +-
.../wireless/broadcom/brcm80211/brcmfmac/pcie.c | 211 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/pno.c | 6 +-
.../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 17 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 27 +-
.../broadcom/brcm80211/brcmfmac/wcc/Makefile | 12 +
.../broadcom/brcm80211/brcmfmac/wcc/core.c | 27 +
.../broadcom/brcm80211/brcmfmac/wcc/module.c | 27 +
.../broadcom/brcm80211/brcmfmac/wcc/vops.h | 11 +
.../net/wireless/broadcom/brcm80211/brcmsmac/led.c | 3 -
.../broadcom/brcm80211/brcmsmac/mac80211_if.c | 1 +
drivers/net/wireless/cisco/airo.c | 204 +-
drivers/net/wireless/intel/ipw2x00/ipw2100.c | 11 -
drivers/net/wireless/intel/ipw2x00/ipw2200.c | 16 +-
drivers/net/wireless/intel/iwlegacy/3945-mac.c | 7 +-
drivers/net/wireless/intel/iwlegacy/4965-mac.c | 1 +
drivers/net/wireless/intel/iwlwifi/cfg/22000.c | 36 +-
drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c | 1 +
.../net/wireless/intel/iwlwifi/fw/api/datapath.h | 95 +-
drivers/net/wireless/intel/iwlwifi/fw/api/mac.h | 6 +-
.../net/wireless/intel/iwlwifi/fw/api/phy-ctxt.h | 33 +-
drivers/net/wireless/intel/iwlwifi/fw/api/rs.h | 10 +-
drivers/net/wireless/intel/iwlwifi/fw/dump.c | 7 +-
drivers/net/wireless/intel/iwlwifi/fw/rs.c | 2 +
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 9 +-
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 3 +
.../net/wireless/intel/iwlwifi/iwl-eeprom-parse.h | 3 +-
drivers/net/wireless/intel/iwlwifi/iwl-modparams.h | 1 +
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 237 +-
drivers/net/wireless/intel/iwlwifi/iwl-prph.h | 5 +
drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 5 +
drivers/net/wireless/intel/iwlwifi/mei/iwl-mei.h | 36 +-
drivers/net/wireless/intel/iwlwifi/mei/main.c | 304 +-
drivers/net/wireless/intel/iwlwifi/mei/net.c | 10 +-
drivers/net/wireless/intel/iwlwifi/mei/sap.h | 65 +-
.../net/wireless/intel/iwlwifi/mei/trace-data.h | 2 +-
drivers/net/wireless/intel/iwlwifi/mei/trace.h | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/Makefile | 1 +
drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 9 +-
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 4 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 12 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 38 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 62 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 212 +-
drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c | 226 +
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 21 +-
drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 25 +-
drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c | 54 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 125 +-
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 46 +-
drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 31 +-
.../net/wireless/intel/iwlwifi/mvm/time-event.c | 7 +-
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 27 +-
drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 33 +-
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 85 +-
drivers/net/wireless/intersil/hostap/hostap_ap.c | 2 +-
.../net/wireless/intersil/hostap/hostap_ioctl.c | 244 +-
drivers/net/wireless/intersil/orinoco/wext.c | 131 +-
drivers/net/wireless/intersil/p54/eeprom.h | 4 +-
drivers/net/wireless/intersil/p54/main.c | 1 +
drivers/net/wireless/mac80211_hwsim.c | 1 +
drivers/net/wireless/marvell/libertas_tf/main.c | 1 +
drivers/net/wireless/marvell/mwifiex/debugfs.c | 2 +-
drivers/net/wireless/marvell/mwifiex/main.c | 2 +-
drivers/net/wireless/marvell/mwifiex/main.h | 1 +
drivers/net/wireless/marvell/mwl8k.c | 1 +
drivers/net/wireless/mediatek/mt76/Kconfig | 1 +
drivers/net/wireless/mediatek/mt76/Makefile | 1 +
drivers/net/wireless/mediatek/mt76/debugfs.c | 19 -
drivers/net/wireless/mediatek/mt76/dma.c | 246 +-
drivers/net/wireless/mediatek/mt76/dma.h | 8 +
drivers/net/wireless/mediatek/mt76/mac80211.c | 27 +-
drivers/net/wireless/mediatek/mt76/mt76.h | 50 +-
.../net/wireless/mediatek/mt76/mt7603/debugfs.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt7603/dma.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt7603/mt7603.h | 2 +-
.../net/wireless/mediatek/mt76/mt7615/debugfs.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 34 +-
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 7 +-
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | 6 +-
drivers/net/wireless/mediatek/mt76/mt7615/regs.h | 2 +
drivers/net/wireless/mediatek/mt76/mt76_connac.h | 16 +
.../net/wireless/mediatek/mt76/mt76_connac_mac.c | 17 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.c | 214 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.h | 99 +-
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c | 28 +-
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.h | 2 +-
drivers/net/wireless/mediatek/mt76/mt76x0/init.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c | 13 +-
drivers/net/wireless/mediatek/mt76/mt76x02.h | 16 +-
.../net/wireless/mediatek/mt76/mt76x02_debugfs.c | 19 +-
.../net/wireless/mediatek/mt76/mt76x02_eeprom.h | 2 -
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt76x02_phy.c | 22 +-
drivers/net/wireless/mediatek/mt76/mt76x02_phy.h | 6 +-
drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c | 14 +-
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c | 16 +-
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.h | 2 +-
drivers/net/wireless/mediatek/mt76/mt76x2/init.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt76x2/phy.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt7915/Kconfig | 1 +
drivers/net/wireless/mediatek/mt76/mt7915/Makefile | 3 +-
.../net/wireless/mediatek/mt76/mt7915/coredump.c | 410 +
.../net/wireless/mediatek/mt76/mt7915/coredump.h | 136 +
.../net/wireless/mediatek/mt76/mt7915/debugfs.c | 307 +-
drivers/net/wireless/mediatek/mt76/mt7915/dma.c | 207 +-
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c | 66 +-
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.h | 5 -
drivers/net/wireless/mediatek/mt76/mt7915/init.c | 135 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 635 +-
drivers/net/wireless/mediatek/mt76/mt7915/main.c | 142 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 495 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 60 +-
drivers/net/wireless/mediatek/mt76/mt7915/mmio.c | 414 +-
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h | 65 +-
drivers/net/wireless/mediatek/mt76/mt7915/pci.c | 106 +-
drivers/net/wireless/mediatek/mt76/mt7915/regs.h | 88 +-
drivers/net/wireless/mediatek/mt76/mt7915/soc.c | 21 +-
.../net/wireless/mediatek/mt76/mt7915/testmode.c | 71 +-
.../net/wireless/mediatek/mt76/mt7921/debugfs.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt7921/init.c | 91 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 56 +-
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 233 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 161 +-
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 74 +-
drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 59 +-
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c | 31 +-
drivers/net/wireless/mediatek/mt76/mt7921/usb.c | 22 +-
drivers/net/wireless/mediatek/mt76/mt7996/Kconfig | 12 +
drivers/net/wireless/mediatek/mt76/mt7996/Makefile | 6 +
.../net/wireless/mediatek/mt76/mt7996/debugfs.c | 851 +
drivers/net/wireless/mediatek/mt76/mt7996/dma.c | 360 +
drivers/net/wireless/mediatek/mt76/mt7996/eeprom.c | 229 +
drivers/net/wireless/mediatek/mt76/mt7996/eeprom.h | 75 +
drivers/net/wireless/mediatek/mt76/mt7996/init.c | 823 +
drivers/net/wireless/mediatek/mt76/mt7996/mac.c | 2498 +
drivers/net/wireless/mediatek/mt76/mt7996/mac.h | 398 +
drivers/net/wireless/mediatek/mt76/mt7996/main.c | 1334 +
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c | 3607 ++
drivers/net/wireless/mediatek/mt76/mt7996/mcu.h | 669 +
drivers/net/wireless/mediatek/mt76/mt7996/mmio.c | 386 +
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h | 523 +
drivers/net/wireless/mediatek/mt76/mt7996/pci.c | 222 +
drivers/net/wireless/mediatek/mt76/mt7996/regs.h | 542 +
drivers/net/wireless/mediatek/mt76/sdio.c | 2 +-
drivers/net/wireless/mediatek/mt76/tx.c | 30 +
drivers/net/wireless/mediatek/mt76/usb.c | 13 +-
drivers/net/wireless/mediatek/mt76/util.h | 6 -
drivers/net/wireless/mediatek/mt7601u/main.c | 1 +
drivers/net/wireless/microchip/wilc1000/cfg80211.c | 39 +-
drivers/net/wireless/microchip/wilc1000/hif.c | 27 +-
drivers/net/wireless/microchip/wilc1000/sdio.c | 1 +
drivers/net/wireless/purelifi/plfxlc/mac.c | 1 +
drivers/net/wireless/purelifi/plfxlc/usb.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt2400pci.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt2500pci.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt2500usb.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt2800pci.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt2800soc.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt2800usb.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt61pci.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt73usb.c | 1 +
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c | 1 +
drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c | 1 +
drivers/net/wireless/realtek/rtl8xxxu/Kconfig | 7 +-
drivers/net/wireless/realtek/rtl8xxxu/Makefile | 2 +-
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 97 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188f.c | 1766 +
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c | 73 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c | 161 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c | 114 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c | 93 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 683 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 30 +-
.../realtek/rtlwifi/btcoexist/halbtc8723b1ant.c | 5 +-
drivers/net/wireless/realtek/rtlwifi/core.c | 1 +
.../net/wireless/realtek/rtlwifi/rtl8192ee/trx.c | 8 -
.../net/wireless/realtek/rtlwifi/rtl8192se/phy.c | 3 -
drivers/net/wireless/realtek/rtw88/Kconfig | 47 +
drivers/net/wireless/realtek/rtw88/Makefile | 15 +
drivers/net/wireless/realtek/rtw88/coex.c | 3 +-
drivers/net/wireless/realtek/rtw88/debug.c | 15 +
drivers/net/wireless/realtek/rtw88/fw.c | 31 +-
drivers/net/wireless/realtek/rtw88/fw.h | 11 +
drivers/net/wireless/realtek/rtw88/hci.h | 9 +-
drivers/net/wireless/realtek/rtw88/mac.c | 21 +-
drivers/net/wireless/realtek/rtw88/mac80211.c | 2 +-
drivers/net/wireless/realtek/rtw88/main.c | 12 +-
drivers/net/wireless/realtek/rtw88/main.h | 12 +-
drivers/net/wireless/realtek/rtw88/phy.c | 6 +-
drivers/net/wireless/realtek/rtw88/ps.c | 2 +-
drivers/net/wireless/realtek/rtw88/reg.h | 1 +
drivers/net/wireless/realtek/rtw88/rtw8723d.c | 28 +
drivers/net/wireless/realtek/rtw88/rtw8723d.h | 13 +-
drivers/net/wireless/realtek/rtw88/rtw8723du.c | 36 +
drivers/net/wireless/realtek/rtw88/rtw8821c.c | 18 +
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 21 +
drivers/net/wireless/realtek/rtw88/rtw8821cu.c | 50 +
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 19 +
drivers/net/wireless/realtek/rtw88/rtw8822bu.c | 90 +
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 24 +
drivers/net/wireless/realtek/rtw88/rtw8822cu.c | 44 +
drivers/net/wireless/realtek/rtw88/tx.h | 31 +
drivers/net/wireless/realtek/rtw88/usb.c | 911 +
drivers/net/wireless/realtek/rtw88/usb.h | 107 +
drivers/net/wireless/realtek/rtw88/util.c | 103 +
drivers/net/wireless/realtek/rtw88/util.h | 12 +-
drivers/net/wireless/realtek/rtw89/Kconfig | 14 +
drivers/net/wireless/realtek/rtw89/Makefile | 11 +
drivers/net/wireless/realtek/rtw89/chan.c | 40 +-
drivers/net/wireless/realtek/rtw89/coex.c | 9 +-
drivers/net/wireless/realtek/rtw89/core.c | 102 +-
drivers/net/wireless/realtek/rtw89/core.h | 238 +-
drivers/net/wireless/realtek/rtw89/debug.c | 1052 +-
drivers/net/wireless/realtek/rtw89/debug.h | 2 +
drivers/net/wireless/realtek/rtw89/fw.c | 790 +-
drivers/net/wireless/realtek/rtw89/fw.h | 731 +-
drivers/net/wireless/realtek/rtw89/mac.c | 770 +-
drivers/net/wireless/realtek/rtw89/mac.h | 120 +
drivers/net/wireless/realtek/rtw89/mac80211.c | 70 +-
drivers/net/wireless/realtek/rtw89/pci.c | 41 +-
drivers/net/wireless/realtek/rtw89/pci.h | 12 +
drivers/net/wireless/realtek/rtw89/phy.c | 358 +-
drivers/net/wireless/realtek/rtw89/phy.h | 87 +-
drivers/net/wireless/realtek/rtw89/ps.c | 2 +-
drivers/net/wireless/realtek/rtw89/ps.h | 1 +
drivers/net/wireless/realtek/rtw89/reg.h | 466 +-
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 179 +-
drivers/net/wireless/realtek/rtw89/rtw8852a.h | 1 -
drivers/net/wireless/realtek/rtw89/rtw8852b.c | 2445 +-
drivers/net/wireless/realtek/rtw89/rtw8852b.h | 137 +
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c | 4174 ++
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.h | 25 +
.../wireless/realtek/rtw89/rtw8852b_rfk_table.c | 794 +
.../wireless/realtek/rtw89/rtw8852b_rfk_table.h | 62 +
.../net/wireless/realtek/rtw89/rtw8852b_table.c | 22877 ++++++++++
.../net/wireless/realtek/rtw89/rtw8852b_table.h | 30 +
drivers/net/wireless/realtek/rtw89/rtw8852be.c | 64 +
drivers/net/wireless/realtek/rtw89/rtw8852c.c | 232 +-
drivers/net/wireless/realtek/rtw89/rtw8852c.h | 1 -
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c | 25 +-
.../net/wireless/realtek/rtw89/rtw8852c_table.c | 988 +-
drivers/net/wireless/realtek/rtw89/txrx.h | 4 +-
drivers/net/wireless/realtek/rtw89/util.h | 11 +
drivers/net/wireless/realtek/rtw89/wow.c | 859 +
drivers/net/wireless/realtek/rtw89/wow.h | 21 +
drivers/net/wireless/rsi/rsi_91x_core.c | 4 +-
drivers/net/wireless/rsi/rsi_91x_hal.c | 6 +-
drivers/net/wireless/rsi/rsi_91x_mac80211.c | 1 +
drivers/net/wireless/silabs/wfx/main.c | 1 +
drivers/net/wireless/st/cw1200/main.c | 1 +
drivers/net/wireless/ti/Kconfig | 8 -
drivers/net/wireless/ti/wilink_platform_data.c | 35 -
drivers/net/wireless/ti/wl1251/main.c | 1 +
drivers/net/wireless/ti/wl1251/sdio.c | 8 +-
drivers/net/wireless/ti/wl1251/spi.c | 76 +-
drivers/net/wireless/ti/wl1251/wl1251.h | 1 -
drivers/net/wireless/ti/wlcore/main.c | 1 +
drivers/net/wireless/ti/wlcore/spi.c | 1 -
drivers/net/wireless/zydas/zd1201.c | 174 +-
drivers/net/wireless/zydas/zd1211rw/zd_mac.c | 1 +
drivers/net/wwan/Kconfig | 1 +
drivers/net/wwan/iosm/iosm_ipc_chnl_cfg.c | 2 +-
drivers/net/wwan/iosm/iosm_ipc_mux.c | 1 +
drivers/net/wwan/iosm/iosm_ipc_mux_codec.c | 26 +-
drivers/net/wwan/iosm/iosm_ipc_pcie.c | 2 +-
drivers/net/wwan/iosm/iosm_ipc_protocol.h | 2 +-
drivers/net/wwan/mhi_wwan_mbim.c | 8 +-
drivers/net/wwan/t7xx/Makefile | 3 +
drivers/net/wwan/t7xx/t7xx_hif_cldma.c | 2 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif.h | 14 +-
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c | 218 +-
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.h | 1 +
drivers/net/wwan/t7xx/t7xx_modem_ops.c | 2 +
drivers/net/wwan/t7xx/t7xx_netdev.c | 91 +-
drivers/net/wwan/t7xx/t7xx_netdev.h | 5 +
drivers/net/wwan/t7xx/t7xx_pci.h | 3 +
drivers/net/wwan/t7xx/t7xx_port.h | 9 +-
drivers/net/wwan/t7xx/t7xx_port_proxy.c | 12 +
drivers/net/wwan/t7xx/t7xx_port_proxy.h | 4 +
drivers/net/wwan/t7xx/t7xx_port_trace.c | 116 +
drivers/net/wwan/t7xx/t7xx_port_wwan.c | 16 +-
drivers/net/wwan/wwan_core.c | 6 +-
drivers/net/xen-netback/common.h | 2 +-
drivers/net/xen-netback/interface.c | 6 +-
drivers/net/xen-netback/netback.c | 225 +-
drivers/net/xen-netback/rx.c | 8 +-
drivers/net/xen-netfront.c | 14 +-
drivers/nfc/microread/i2c.c | 5 +-
drivers/nfc/nfcmrvl/i2c.c | 9 +-
drivers/nfc/nxp-nci/core.c | 8 +-
drivers/nfc/nxp-nci/i2c.c | 5 +-
drivers/nfc/pn533/i2c.c | 5 +-
drivers/nfc/pn533/pn533.c | 6 +-
drivers/nfc/pn533/uart.c | 2 +-
drivers/nfc/pn544/i2c.c | 5 +-
drivers/nfc/s3fwrn5/core.c | 1 +
drivers/nfc/s3fwrn5/i2c.c | 24 +-
drivers/nfc/st-nci/i2c.c | 5 +-
drivers/nfc/st-nci/se.c | 49 +-
drivers/nfc/st21nfca/i2c.c | 5 +-
drivers/nfc/virtual_ncidev.c | 147 +-
drivers/nvdimm/Kconfig | 12 +
drivers/nvdimm/dimm_devs.c | 9 +-
drivers/nvdimm/region.c | 11 +
drivers/nvdimm/region_devs.c | 50 +-
drivers/nvdimm/security.c | 43 +-
drivers/nvme/host/apple.c | 30 +-
drivers/nvme/host/auth.c | 258 +-
drivers/nvme/host/core.c | 400 +-
drivers/nvme/host/fc.c | 59 +-
drivers/nvme/host/ioctl.c | 138 +-
drivers/nvme/host/multipath.c | 29 +
drivers/nvme/host/nvme.h | 71 +-
drivers/nvme/host/pci.c | 654 +-
drivers/nvme/host/rdma.c | 42 +-
drivers/nvme/host/tcp.c | 50 +-
drivers/nvme/target/admin-cmd.c | 48 +-
drivers/nvme/target/configfs.c | 138 +-
drivers/nvme/target/core.c | 44 +-
drivers/nvme/target/io-cmd-file.c | 20 +-
drivers/nvme/target/loop.c | 16 +-
drivers/nvme/target/nvmet.h | 6 +-
drivers/nvme/target/passthru.c | 11 +-
drivers/nvme/target/tcp.c | 2 +-
drivers/nvmem/Kconfig | 2 +-
drivers/nvmem/brcm_nvram.c | 3 +
drivers/nvmem/lan9662-otpc.c | 2 +-
drivers/nvmem/rmem.c | 4 +-
drivers/nvmem/stm32-romem.c | 27 +-
drivers/nvmem/u-boot-env.c | 14 +
drivers/of/device.c | 6 +-
drivers/of/fdt.c | 40 +-
drivers/of/irq.c | 1 +
drivers/of/kexec.c | 10 +-
drivers/of/overlay.c | 4 +-
drivers/of/platform.c | 5 +-
drivers/of/property.c | 4 +-
drivers/of/unittest-data/Makefile | 66 +-
.../of/unittest-data/{overlay.dts => overlay.dtso} | 0
.../{overlay_0.dts => overlay_0.dtso} | 0
.../{overlay_1.dts => overlay_1.dtso} | 0
.../{overlay_10.dts => overlay_10.dtso} | 0
.../{overlay_11.dts => overlay_11.dtso} | 0
.../{overlay_12.dts => overlay_12.dtso} | 0
.../{overlay_13.dts => overlay_13.dtso} | 0
.../{overlay_15.dts => overlay_15.dtso} | 0
.../{overlay_16.dts => overlay_16.dtso} | 0
.../{overlay_17.dts => overlay_17.dtso} | 0
.../{overlay_18.dts => overlay_18.dtso} | 0
.../{overlay_19.dts => overlay_19.dtso} | 0
.../{overlay_2.dts => overlay_2.dtso} | 0
.../{overlay_20.dts => overlay_20.dtso} | 0
.../{overlay_3.dts => overlay_3.dtso} | 0
.../{overlay_4.dts => overlay_4.dtso} | 0
.../{overlay_5.dts => overlay_5.dtso} | 0
.../{overlay_6.dts => overlay_6.dtso} | 0
.../{overlay_7.dts => overlay_7.dtso} | 0
.../{overlay_8.dts => overlay_8.dtso} | 0
.../{overlay_9.dts => overlay_9.dtso} | 0
..._dup_node.dts => overlay_bad_add_dup_node.dtso} | 0
..._dup_prop.dts => overlay_bad_add_dup_prop.dtso} | 0
...ay_bad_phandle.dts => overlay_bad_phandle.dtso} | 0
...rlay_bad_symbol.dts => overlay_bad_symbol.dtso} | 0
.../{overlay_base.dts => overlay_base.dtso} | 0
.../{overlay_gpio_01.dts => overlay_gpio_01.dtso} | 0
...{overlay_gpio_02a.dts => overlay_gpio_02a.dtso} | 0
...{overlay_gpio_02b.dts => overlay_gpio_02b.dtso} | 0
.../{overlay_gpio_03.dts => overlay_gpio_03.dtso} | 0
...{overlay_gpio_04a.dts => overlay_gpio_04a.dtso} | 0
...{overlay_gpio_04b.dts => overlay_gpio_04b.dtso} | 0
.../{testcases.dts => testcases.dtso} | 0
drivers/of/unittest.c | 58 +-
drivers/opp/of.c | 228 +-
drivers/parisc/led.c | 3 +
drivers/pci/Kconfig | 7 +-
drivers/pci/access.c | 8 +-
drivers/pci/ats.c | 3 +
drivers/pci/bus.c | 4 +
drivers/pci/controller/Kconfig | 30 +-
drivers/pci/controller/cadence/pci-j721e.c | 1 -
drivers/pci/controller/dwc/Kconfig | 57 +-
drivers/pci/controller/dwc/Makefile | 1 +
drivers/pci/controller/dwc/pci-imx6.c | 13 +-
drivers/pci/controller/dwc/pci-layerscape.c | 1 -
drivers/pci/controller/dwc/pcie-armada8k.c | 1 -
drivers/pci/controller/dwc/pcie-bt1.c | 643 +
drivers/pci/controller/dwc/pcie-designware-ep.c | 48 +-
drivers/pci/controller/dwc/pcie-designware-host.c | 47 +-
drivers/pci/controller/dwc/pcie-designware.c | 266 +-
drivers/pci/controller/dwc/pcie-designware.h | 63 +-
drivers/pci/controller/dwc/pcie-histb.c | 39 +-
drivers/pci/controller/dwc/pcie-qcom-ep.c | 5 +
drivers/pci/controller/dwc/pcie-qcom.c | 83 +-
drivers/pci/controller/dwc/pcie-tegra194.c | 1 -
drivers/pci/controller/mobiveil/Kconfig | 6 +-
drivers/pci/controller/pci-aardvark.c | 22 +-
drivers/pci/controller/pci-ftpci100.c | 2 +-
drivers/pci/controller/pci-hyperv.c | 111 +-
drivers/pci/controller/pci-mvebu.c | 52 +-
drivers/pci/controller/pci-tegra.c | 9 +-
drivers/pci/controller/pci-v3-semi.c | 3 +-
drivers/pci/controller/pci-xgene-msi.c | 2 +-
drivers/pci/controller/pci-xgene.c | 1 -
drivers/pci/controller/pcie-altera-msi.c | 2 +-
drivers/pci/controller/pcie-brcmstb.c | 85 +-
drivers/pci/controller/pcie-iproc-platform.c | 1 -
drivers/pci/controller/pcie-iproc.c | 1 -
drivers/pci/controller/pcie-microchip-host.c | 2 +-
drivers/pci/controller/pcie-mt7621.c | 3 +-
drivers/pci/controller/pcie-rockchip-host.c | 1 -
drivers/pci/controller/pcie-xilinx-cpm.c | 1 -
drivers/pci/controller/pcie-xilinx-nwl.c | 8 +-
drivers/pci/controller/vmd.c | 27 +-
drivers/pci/doe.c | 20 +-
drivers/pci/endpoint/functions/Kconfig | 18 +-
drivers/pci/endpoint/functions/pci-epf-test.c | 2 +-
drivers/pci/endpoint/functions/pci-epf-vntb.c | 150 +-
drivers/pci/endpoint/pci-epc-core.c | 7 +-
drivers/pci/hotplug/Kconfig | 3 +
drivers/pci/hotplug/TODO | 3 -
drivers/pci/hotplug/acpiphp_glue.c | 8 +
drivers/pci/hotplug/pciehp_hpc.c | 4 +-
drivers/pci/hotplug/shpchp.h | 1 -
drivers/pci/hotplug/shpchp_hpc.c | 18 -
drivers/pci/irq.c | 2 +
drivers/pci/msi/Makefile | 3 +-
drivers/pci/msi/api.c | 458 +
drivers/pci/msi/irqdomain.c | 369 +-
drivers/pci/msi/msi.c | 1100 +-
drivers/pci/msi/msi.h | 114 +-
drivers/pci/p2pdma.c | 126 +-
drivers/pci/pci-acpi.c | 2 +-
drivers/pci/pci-driver.c | 8 +-
drivers/pci/pci-sysfs.c | 20 +-
drivers/pci/pci.c | 105 +-
drivers/pci/pci.h | 1 +
drivers/pci/pcie/Kconfig | 8 +-
drivers/pci/pcie/Makefile | 2 +-
drivers/pci/pcie/aer.c | 8 +-
drivers/pci/pcie/{portdrv_core.c => portdrv.c} | 269 +-
drivers/pci/pcie/portdrv.h | 19 -
drivers/pci/pcie/portdrv_pci.c | 252 -
drivers/pci/probe.c | 18 +-
drivers/pci/remove.c | 6 +
drivers/pcmcia/bcm63xx_pcmcia.c | 2 +-
drivers/pcmcia/cs.c | 4 +-
drivers/pcmcia/electra_cf.c | 2 +-
drivers/pcmcia/omap_cf.c | 2 +-
drivers/pcmcia/pd6729.c | 4 +-
drivers/pcmcia/yenta_socket.c | 4 +-
drivers/perf/Kconfig | 6 +-
drivers/perf/Makefile | 2 +
drivers/perf/amlogic/Kconfig | 10 +
drivers/perf/amlogic/Makefile | 5 +
drivers/perf/amlogic/meson_ddr_pmu_core.c | 561 +
drivers/perf/amlogic/meson_g12_ddr_pmu.c | 394 +
drivers/perf/arm_cspmu/Kconfig | 13 +
drivers/perf/arm_cspmu/Makefile | 6 +
drivers/perf/arm_cspmu/arm_cspmu.c | 1303 +
drivers/perf/arm_cspmu/arm_cspmu.h | 151 +
drivers/perf/arm_cspmu/nvidia_cspmu.c | 400 +
drivers/perf/arm_cspmu/nvidia_cspmu.h | 17 +
drivers/perf/arm_dmc620_pmu.c | 8 +-
drivers/perf/arm_dsu_pmu.c | 6 +-
drivers/perf/arm_pmu.c | 36 +-
drivers/perf/arm_pmu_acpi.c | 114 +-
drivers/perf/arm_smmuv3_pmu.c | 8 +-
drivers/perf/hisilicon/hisi_pcie_pmu.c | 22 +-
drivers/perf/marvell_cn10k_tad_pmu.c | 6 +-
drivers/perf/riscv_pmu_sbi.c | 34 +-
drivers/phy/allwinner/phy-sun4i-usb.c | 71 +
drivers/phy/allwinner/phy-sun6i-mipi-dphy.c | 236 +-
drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c | 95 +-
drivers/phy/broadcom/phy-brcm-usb-init.c | 90 +-
drivers/phy/broadcom/phy-brcm-usb-init.h | 11 +-
drivers/phy/broadcom/phy-brcm-usb.c | 32 +-
drivers/phy/freescale/phy-fsl-imx8m-pcie.c | 142 +-
drivers/phy/marvell/phy-mmp3-hsic.c | 4 +-
drivers/phy/marvell/phy-mvebu-a3700-comphy.c | 3 +
drivers/phy/phy-core-mipi-dphy.c | 31 +-
drivers/phy/qualcomm/Kconfig | 1 +
drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 1709 +-
drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c | 103 +-
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 1443 +-
drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v5.h | 2 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v5_20.h | 2 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v5_20.h | 14 +
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 482 +-
drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 737 +-
drivers/phy/qualcomm/phy-qcom-qmp.h | 1 +
drivers/phy/renesas/Kconfig | 8 +
drivers/phy/renesas/Makefile | 1 +
drivers/phy/renesas/r8a779f0-ether-serdes.c | 417 +
drivers/phy/tegra/phy-tegra194-p2u.c | 14 +
drivers/phy/tegra/xusb-tegra124.c | 1 -
drivers/phy/tegra/xusb-tegra186.c | 1 -
drivers/phy/tegra/xusb-tegra210.c | 1 -
drivers/phy/tegra/xusb.c | 10 +-
drivers/phy/tegra/xusb.h | 2 -
drivers/phy/ti/phy-gmii-sel.c | 42 +-
drivers/phy/ti/phy-j721e-wiz.c | 38 +
drivers/pinctrl/Kconfig | 11 +
drivers/pinctrl/Makefile | 1 +
drivers/pinctrl/actions/pinctrl-owl.c | 49 +-
drivers/pinctrl/aspeed/pinctrl-aspeed.c | 1 +
drivers/pinctrl/bcm/pinctrl-bcm281xx.c | 13 +-
drivers/pinctrl/bcm/pinctrl-cygnus-mux.c | 9 +-
drivers/pinctrl/bcm/pinctrl-iproc-gpio.c | 12 +-
drivers/pinctrl/bcm/pinctrl-ns2-mux.c | 8 +-
drivers/pinctrl/bcm/pinctrl-nsp-mux.c | 8 +-
drivers/pinctrl/cirrus/pinctrl-lochnagar.c | 6 +-
drivers/pinctrl/cirrus/pinctrl-madera-core.c | 5 +-
drivers/pinctrl/core.c | 25 +-
drivers/pinctrl/core.h | 22 +-
drivers/pinctrl/devicetree.h | 6 +
drivers/pinctrl/freescale/pinctrl-imx.c | 8 +-
drivers/pinctrl/freescale/pinctrl-imx1-core.c | 4 +-
drivers/pinctrl/freescale/pinctrl-imxrt1050.c | 546 +-
drivers/pinctrl/freescale/pinctrl-mxs.c | 7 +-
drivers/pinctrl/freescale/pinctrl-scu.c | 30 +
drivers/pinctrl/intel/Kconfig | 11 +
drivers/pinctrl/intel/Makefile | 1 +
drivers/pinctrl/intel/pinctrl-alderlake.c | 40 +-
drivers/pinctrl/intel/pinctrl-cannonlake.c | 8 +-
drivers/pinctrl/intel/pinctrl-cherryview.c | 6 +-
drivers/pinctrl/intel/pinctrl-icelake.c | 8 +-
drivers/pinctrl/intel/pinctrl-intel.c | 88 +-
drivers/pinctrl/intel/pinctrl-lynxpoint.c | 6 +-
drivers/pinctrl/intel/pinctrl-merrifield.c | 19 +-
drivers/pinctrl/intel/pinctrl-moorefield.c | 916 +
drivers/pinctrl/intel/pinctrl-sunrisepoint.c | 32 +-
drivers/pinctrl/intel/pinctrl-tigerlake.c | 28 +-
drivers/pinctrl/mediatek/mtk-eint.c | 9 +-
drivers/pinctrl/mediatek/pinctrl-moore.c | 52 +-
drivers/pinctrl/mediatek/pinctrl-mt7986.c | 112 +-
drivers/pinctrl/mediatek/pinctrl-mt8365.c | 18 +
drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 21 +-
drivers/pinctrl/mediatek/pinctrl-mtk-common.h | 8 +-
drivers/pinctrl/mediatek/pinctrl-paris.c | 5 +
drivers/pinctrl/mvebu/pinctrl-mvebu.c | 14 +-
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c | 11 +-
drivers/pinctrl/nuvoton/pinctrl-wpcm450.c | 48 +-
drivers/pinctrl/pinconf-generic.c | 4 +-
drivers/pinctrl/pinconf.h | 10 +
drivers/pinctrl/pinctrl-amd.c | 10 +-
drivers/pinctrl/pinctrl-apple-gpio.c | 7 +-
drivers/pinctrl/pinctrl-at91-pio4.c | 36 +-
drivers/pinctrl/pinctrl-at91.c | 16 +-
drivers/pinctrl/pinctrl-axp209.c | 8 +-
drivers/pinctrl/pinctrl-bm1880.c | 6 +-
drivers/pinctrl/pinctrl-cy8c95x0.c | 134 +-
drivers/pinctrl/pinctrl-falcon.c | 9 +-
drivers/pinctrl/pinctrl-gemini.c | 12 +-
drivers/pinctrl/pinctrl-ingenic.c | 10 +-
drivers/pinctrl/pinctrl-k210.c | 16 +-
drivers/pinctrl/pinctrl-lantiq.c | 5 +-
drivers/pinctrl/pinctrl-lantiq.h | 7 +-
drivers/pinctrl/pinctrl-loongson2.c | 311 +
drivers/pinctrl/pinctrl-lpc18xx.c | 6 +-
drivers/pinctrl/pinctrl-microchip-sgpio.c | 4 +-
drivers/pinctrl/pinctrl-ocelot.c | 30 +-
drivers/pinctrl/pinctrl-single.c | 8 +-
drivers/pinctrl/pinctrl-st.c | 25 +-
drivers/pinctrl/pinctrl-stmfx.c | 2 +
drivers/pinctrl/pinctrl-thunderbay.c | 8 +-
drivers/pinctrl/pinctrl-utils.h | 5 +
drivers/pinctrl/pinctrl-zynqmp.c | 5 +-
drivers/pinctrl/pinmux.c | 17 +-
drivers/pinctrl/pinmux.h | 11 +
drivers/pinctrl/qcom/Kconfig | 10 +
drivers/pinctrl/qcom/Makefile | 1 +
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 5 +
drivers/pinctrl/qcom/pinctrl-lpass-lpi.h | 9 +-
drivers/pinctrl/qcom/pinctrl-msm.c | 29 +-
drivers/pinctrl/qcom/pinctrl-msm.h | 5 +
drivers/pinctrl/qcom/pinctrl-sdm670.c | 1345 +
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 8 +-
drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 8 +-
drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c | 19 +-
drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 19 +-
drivers/pinctrl/renesas/gpio.c | 10 +-
drivers/pinctrl/renesas/pinctrl-rzg2l.c | 10 +-
drivers/pinctrl/renesas/pinctrl-rzn1.c | 8 +-
drivers/pinctrl/renesas/pinctrl-rzv2m.c | 7 +-
drivers/pinctrl/renesas/pinctrl.c | 8 +-
drivers/pinctrl/samsung/pinctrl-samsung.c | 11 +-
drivers/pinctrl/spear/pinctrl-spear.c | 6 +-
drivers/pinctrl/sprd/pinctrl-sprd.c | 7 +-
drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c | 7 +-
drivers/pinctrl/stm32/pinctrl-stm32.c | 21 +-
drivers/pinctrl/sunxi/pinctrl-sun20i-d1.c | 4 +
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 18 +-
drivers/pinctrl/tegra/pinctrl-tegra-xusb.c | 7 +-
drivers/pinctrl/tegra/pinctrl-tegra.c | 39 +-
drivers/pinctrl/tegra/pinctrl-tegra.h | 2 +
drivers/pinctrl/tegra/pinctrl-tegra194.c | 286 +-
drivers/pinctrl/ti/pinctrl-ti-iodelay.c | 8 +-
drivers/pinctrl/uniphier/pinctrl-uniphier-core.c | 8 +-
drivers/platform/Kconfig | 2 -
drivers/platform/chrome/Kconfig | 10 +
drivers/platform/chrome/Makefile | 1 +
drivers/platform/chrome/chromeos_privacy_screen.c | 3 +-
drivers/platform/chrome/cros_ec_debugfs.c | 1 +
drivers/platform/chrome/cros_ec_i2c.c | 5 +-
drivers/platform/chrome/cros_ec_lightbar.c | 4 +-
drivers/platform/chrome/cros_ec_lpc.c | 15 +-
drivers/platform/chrome/cros_ec_lpc_mec.c | 6 -
drivers/platform/chrome/cros_ec_lpc_mec.h | 7 -
drivers/platform/chrome/cros_ec_spi.c | 1 +
drivers/platform/chrome/cros_ec_typec.c | 5 +-
drivers/platform/chrome/cros_hps_i2c.c | 160 +
drivers/platform/chrome/cros_usbpd_notify.c | 6 +-
drivers/platform/chrome/wilco_ec/core.c | 5 -
drivers/platform/chrome/wilco_ec/event.c | 4 +-
drivers/platform/mellanox/mlxbf-pmc.c | 2 +-
drivers/platform/mellanox/mlxbf-tmfifo-regs.h | 10 +
drivers/platform/mellanox/mlxbf-tmfifo.c | 86 +-
drivers/platform/mips/Kconfig | 1 +
drivers/platform/surface/surfacepro3_button.c | 3 +-
drivers/platform/x86/Kconfig | 43 +-
drivers/platform/x86/Makefile | 4 +-
drivers/platform/x86/amd/pmc.c | 6 +
drivers/platform/x86/amd/pmf/cnqf.c | 92 +-
drivers/platform/x86/asus-laptop.c | 3 +-
drivers/platform/x86/asus-wireless.c | 3 +-
drivers/platform/x86/asus-wmi.c | 4 +-
drivers/platform/x86/classmate-laptop.c | 20 +-
drivers/platform/x86/dell/Kconfig | 13 +
drivers/platform/x86/dell/Makefile | 1 +
drivers/platform/x86/dell/alienware-wmi.c | 41 +-
drivers/platform/x86/dell/dell-rbtn.c | 6 +-
drivers/platform/x86/dell/dell-wmi-ddv.c | 375 +
drivers/platform/x86/eeepc-laptop.c | 3 +-
drivers/platform/x86/fujitsu-laptop.c | 4 +-
drivers/platform/x86/fujitsu-tablet.c | 3 +-
drivers/platform/x86/hp/Kconfig | 63 +
drivers/platform/x86/hp/Makefile | 10 +
drivers/platform/x86/{ => hp}/hp-wmi.c | 0
drivers/platform/x86/{ => hp}/hp_accel.c | 2 +-
drivers/platform/x86/{ => hp}/tc1100-wmi.c | 0
drivers/platform/x86/huawei-wmi.c | 51 +-
drivers/platform/x86/ideapad-laptop.c | 388 +-
drivers/platform/x86/intel/Kconfig | 8 +-
drivers/platform/x86/intel/hid.c | 36 +-
drivers/platform/x86/intel/ifs/Kconfig | 4 -
drivers/platform/x86/intel/ifs/core.c | 23 +-
drivers/platform/x86/intel/ifs/ifs.h | 30 +-
drivers/platform/x86/intel/ifs/load.c | 218 +-
drivers/platform/x86/intel/ifs/runtest.c | 10 +-
drivers/platform/x86/intel/ifs/sysfs.c | 41 +-
.../platform/x86/intel/int3472/clk_and_regulator.c | 3 +-
drivers/platform/x86/intel/pmc/Makefile | 3 +-
drivers/platform/x86/intel/pmc/adl.c | 325 +
drivers/platform/x86/intel/pmc/cnp.c | 210 +
drivers/platform/x86/intel/pmc/core.c | 994 +-
drivers/platform/x86/intel/pmc/core.h | 91 +-
drivers/platform/x86/intel/pmc/icl.c | 56 +
drivers/platform/x86/intel/pmc/mtl.c | 52 +
drivers/platform/x86/intel/pmc/spt.c | 140 +
drivers/platform/x86/intel/pmc/tgl.c | 269 +
drivers/platform/x86/intel/rst.c | 4 +-
drivers/platform/x86/intel/sdsi.c | 136 +-
.../x86/intel/speed_select_if/isst_if_common.c | 2 +-
.../x86/intel/uncore-frequency/uncore-frequency.c | 1 +
drivers/platform/x86/intel_scu_ipc.c | 2 +-
drivers/platform/x86/lg-laptop.c | 8 +-
drivers/platform/x86/mxm-wmi.c | 8 +-
drivers/platform/x86/panasonic-laptop.c | 8 +-
drivers/platform/x86/sony-laptop.c | 19 +-
drivers/platform/x86/system76_acpi.c | 8 +-
drivers/platform/x86/thinkpad_acpi.c | 63 +-
drivers/platform/x86/topstar-laptop.c | 3 +-
drivers/platform/x86/toshiba_acpi.c | 8 +-
drivers/platform/x86/toshiba_bluetooth.c | 6 +-
drivers/platform/x86/toshiba_haps.c | 4 +-
drivers/platform/x86/uv_sysfs.c | 16 +-
drivers/platform/x86/wireless-hotkey.c | 63 +-
drivers/platform/x86/wmi.c | 1 +
drivers/platform/x86/x86-android-tablets.c | 285 +-
drivers/platform/x86/xo15-ebook.c | 3 +-
drivers/pnp/core.c | 4 +-
drivers/pnp/driver.c | 3 +-
drivers/power/supply/88pm860x_charger.c | 38 +-
drivers/power/supply/ab8500_btemp.c | 9 +-
drivers/power/supply/ab8500_charger.c | 11 +-
drivers/power/supply/adp5061.c | 5 +-
drivers/power/supply/bd99954-charger.c | 84 +-
drivers/power/supply/bq2415x_charger.c | 6 +-
drivers/power/supply/bq24190_charger.c | 6 +-
drivers/power/supply/bq24257_charger.c | 6 +-
drivers/power/supply/bq24735-charger.c | 5 +-
drivers/power/supply/bq2515x_charger.c | 6 +-
drivers/power/supply/bq256xx_charger.c | 6 +-
drivers/power/supply/bq25890_charger.c | 277 +-
drivers/power/supply/bq25980_charger.c | 6 +-
drivers/power/supply/bq27xxx_battery_i2c.c | 6 +-
drivers/power/supply/cw2015_battery.c | 3 +
drivers/power/supply/ds2782_battery.c | 6 +-
drivers/power/supply/ip5xxx_power.c | 2 +-
drivers/power/supply/lp8727_charger.c | 4 +-
drivers/power/supply/lp8788-charger.c | 2 +-
drivers/power/supply/ltc2941-battery-gauge.c | 5 +-
drivers/power/supply/ltc4162-l-charger.c | 5 +-
drivers/power/supply/max14656_charger_detector.c | 5 +-
drivers/power/supply/max17040_battery.c | 6 +-
drivers/power/supply/max17042_battery.c | 6 +-
drivers/power/supply/mt6360_charger.c | 15 +-
drivers/power/supply/power_supply.h | 2 +-
drivers/power/supply/power_supply_core.c | 8 +-
drivers/power/supply/power_supply_sysfs.c | 8 +-
drivers/power/supply/rk817_charger.c | 18 +-
drivers/power/supply/rt5033_battery.c | 5 +-
drivers/power/supply/rt9455_charger.c | 5 +-
drivers/power/supply/sbs-charger.c | 5 +-
drivers/power/supply/sbs-manager.c | 6 +-
drivers/power/supply/smb347-charger.c | 6 +-
drivers/power/supply/ucs1002_power.c | 5 +-
drivers/power/supply/z2_battery.c | 11 +-
drivers/powercap/Kconfig | 13 +
drivers/powercap/Makefile | 1 +
drivers/powercap/arm_scmi_powercap.c | 509 +
drivers/powercap/idle_inject.c | 3 +
drivers/powercap/powercap_sys.c | 3 +-
drivers/ps3/ps3-lpm.c | 2 +-
drivers/ptp/ptp_clock.c | 5 +-
drivers/ptp/ptp_dte.c | 5 +-
drivers/ptp/ptp_idt82p33.c | 709 +-
drivers/ptp/ptp_idt82p33.h | 21 +-
drivers/ptp/ptp_kvm_common.c | 4 +-
drivers/ptp/ptp_ocp.c | 567 +-
drivers/ptp/ptp_pch.c | 19 +-
drivers/ptp/ptp_vmw.c | 7 +-
drivers/pwm/Kconfig | 6 +-
drivers/pwm/core.c | 68 +-
drivers/pwm/pwm-atmel.c | 6 +-
drivers/pwm/pwm-bcm-iproc.c | 8 +-
drivers/pwm/pwm-crc.c | 10 +-
drivers/pwm/pwm-cros-ec.c | 8 +-
drivers/pwm/pwm-dwc.c | 6 +-
drivers/pwm/pwm-fsl-ftm.c | 18 +-
drivers/pwm/pwm-hibvt.c | 6 +-
drivers/pwm/pwm-img.c | 15 +-
drivers/pwm/pwm-imx-tpm.c | 8 +-
drivers/pwm/pwm-imx27.c | 8 +-
drivers/pwm/pwm-intel-lgm.c | 6 +-
drivers/pwm/pwm-iqs620a.c | 10 +-
drivers/pwm/pwm-jz4740.c | 20 +-
drivers/pwm/pwm-keembay.c | 6 +-
drivers/pwm/pwm-lpc18xx-sct.c | 2 +-
drivers/pwm/pwm-lpss-pci.c | 2 +-
drivers/pwm/pwm-lpss-platform.c | 2 +-
drivers/pwm/pwm-lpss.c | 14 +-
drivers/pwm/pwm-lpss.h | 26 +-
drivers/pwm/pwm-mediatek.c | 9 +-
drivers/pwm/pwm-meson.c | 8 +-
drivers/pwm/pwm-mtk-disp.c | 17 +-
drivers/pwm/pwm-pca9685.c | 13 +-
drivers/pwm/pwm-pxa.c | 58 +-
drivers/pwm/pwm-raspberrypi-poe.c | 8 +-
drivers/pwm/pwm-rockchip.c | 12 +-
drivers/pwm/pwm-sifive.c | 11 +-
drivers/pwm/pwm-sl28cpld.c | 8 +-
drivers/pwm/pwm-sprd.c | 8 +-
drivers/pwm/pwm-stm32-lp.c | 13 +-
drivers/pwm/pwm-stm32.c | 34 +-
drivers/pwm/pwm-sun4i.c | 14 +-
drivers/pwm/pwm-sunplus.c | 6 +-
drivers/pwm/pwm-tegra.c | 15 +-
drivers/pwm/pwm-visconti.c | 6 +-
drivers/pwm/pwm-xilinx.c | 8 +-
drivers/rapidio/devices/rio_mport_cdev.c | 15 +-
drivers/rapidio/devices/tsi721.c | 3 +-
drivers/rapidio/rio-scan.c | 8 +-
drivers/rapidio/rio.c | 9 +-
drivers/ras/debugfs.c | 2 +-
drivers/regulator/Kconfig | 30 +-
drivers/regulator/Makefile | 2 +
drivers/regulator/act8865-regulator.c | 6 +-
drivers/regulator/ad5398.c | 6 +-
drivers/regulator/arizona-micsupp.c | 20 +-
drivers/regulator/bd71815-regulator.c | 10 +-
drivers/regulator/bd71828-regulator.c | 21 +-
drivers/regulator/bd718x7-regulator.c | 53 +-
drivers/regulator/bd9576-regulator.c | 54 +-
drivers/regulator/core.c | 75 +-
drivers/regulator/da9121-regulator.c | 5 +-
drivers/regulator/devres.c | 68 +-
drivers/regulator/fan53555.c | 6 +-
drivers/regulator/fan53880.c | 16 +-
drivers/regulator/internal.h | 2 +
drivers/regulator/isl6271a-regulator.c | 6 +-
drivers/regulator/lp3972.c | 5 +-
drivers/regulator/lp872x.c | 5 +-
drivers/regulator/lp8755.c | 5 +-
drivers/regulator/ltc3589.c | 6 +-
drivers/regulator/max1586.c | 5 +-
drivers/regulator/max8649.c | 5 +-
drivers/regulator/max8660.c | 6 +-
drivers/regulator/max8952.c | 5 +-
drivers/regulator/max8973-regulator.c | 6 +-
drivers/regulator/mp886x.c | 2 +-
drivers/regulator/mt6357-regulator.c | 453 +
drivers/regulator/of_regulator.c | 94 +-
drivers/regulator/pca9450-regulator.c | 5 +-
drivers/regulator/pfuze100-regulator.c | 6 +-
drivers/regulator/pv88080-regulator.c | 6 +-
drivers/regulator/qcom-labibb-regulator.c | 1 +
drivers/regulator/qcom-rpmh-regulator.c | 83 +-
drivers/regulator/qcom_smd-regulator.c | 33 +
drivers/regulator/rk808-regulator.c | 26 +-
drivers/regulator/rpi-panel-attiny-regulator.c | 5 +-
drivers/regulator/rt5759-regulator.c | 1 +
drivers/regulator/rt6190-regulator.c | 495 +
drivers/regulator/slg51000-regulator.c | 2 +
drivers/regulator/stm32-vrefbuf.c | 2 +-
drivers/regulator/sy8106a-regulator.c | 4 +-
drivers/regulator/sy8824x.c | 2 +-
drivers/regulator/sy8827n.c | 4 +-
drivers/regulator/tps51632-regulator.c | 5 +-
drivers/regulator/tps62360-regulator.c | 6 +-
drivers/regulator/tps6286x-regulator.c | 5 +-
drivers/regulator/tps65023-regulator.c | 6 +-
drivers/regulator/twl6030-regulator.c | 17 +-
drivers/regulator/userspace-consumer.c | 60 +-
drivers/remoteproc/Kconfig | 13 +
drivers/remoteproc/Makefile | 1 +
drivers/remoteproc/imx_dsp_rproc.c | 12 +-
drivers/remoteproc/imx_rproc.c | 298 +-
drivers/remoteproc/qcom_q6v5_pas.c | 4 +
drivers/remoteproc/qcom_q6v5_wcss.c | 6 +-
drivers/remoteproc/qcom_sysmon.c | 13 +-
drivers/remoteproc/remoteproc_core.c | 19 +-
drivers/remoteproc/xlnx_r5_remoteproc.c | 1067 +
drivers/rtc/Kconfig | 18 +-
drivers/rtc/Makefile | 2 -
drivers/rtc/class.c | 4 +-
drivers/rtc/interface.c | 2 +-
drivers/rtc/rtc-abx80x.c | 37 +-
drivers/rtc/rtc-at91rm9200.c | 2 +-
drivers/rtc/rtc-bq32k.c | 1 +
drivers/rtc/rtc-cmos.c | 378 +-
drivers/rtc/rtc-cros-ec.c | 35 +-
drivers/rtc/rtc-davinci.c | 512 -
drivers/rtc/rtc-dm355evm.c | 151 -
drivers/rtc/rtc-ds1302.c | 6 -
drivers/rtc/rtc-ds1307.c | 4 +-
drivers/rtc/rtc-ds1347.c | 2 +-
drivers/rtc/rtc-ds1742.c | 3 +-
drivers/rtc/rtc-efi.c | 2 +
drivers/rtc/rtc-fsl-ftm-alarm.c | 7 +-
drivers/rtc/rtc-isl12022.c | 94 +
drivers/rtc/rtc-isl1208.c | 6 +-
drivers/rtc/rtc-m41t80.c | 13 +-
drivers/rtc/rtc-msc313.c | 12 +-
drivers/rtc/rtc-mxc_v2.c | 4 +-
drivers/rtc/rtc-nct3018y.c | 5 +-
drivers/rtc/rtc-pcf2127.c | 22 +-
drivers/rtc/rtc-pcf85063.c | 10 +-
drivers/rtc/rtc-pcf8523.c | 20 +-
drivers/rtc/rtc-pcf8563.c | 2 +
drivers/rtc/rtc-pic32.c | 8 +-
drivers/rtc/rtc-pm8xxx.c | 1 -
drivers/rtc/rtc-rk808.c | 47 +-
drivers/rtc/rtc-rs5c313.c | 6 +-
drivers/rtc/rtc-rs5c372.c | 13 +-
drivers/rtc/rtc-rv3028.c | 13 +-
drivers/rtc/rtc-rv3029c2.c | 1 +
drivers/rtc/rtc-rv8803.c | 30 +-
drivers/rtc/rtc-rx6110.c | 2 +-
drivers/rtc/rtc-rx8025.c | 7 +-
drivers/rtc/rtc-rzn1.c | 4 +-
drivers/rtc/rtc-s35390a.c | 6 +-
drivers/rtc/rtc-s3c.c | 11 +-
drivers/rtc/rtc-snvs.c | 16 +-
drivers/rtc/rtc-st-lpc.c | 1 +
drivers/rtc/sysfs.c | 1 +
drivers/s390/block/dasd_devmap.c | 2 +-
drivers/s390/block/dasd_eckd.c | 43 +-
drivers/s390/block/dasd_ioctl.c | 2 +-
drivers/s390/char/con3215.c | 275 +-
drivers/s390/char/hmcdrv_dev.c | 2 +-
drivers/s390/char/raw3270.c | 12 +-
drivers/s390/char/sclp.c | 25 +-
drivers/s390/char/sclp.h | 2 +-
drivers/s390/char/sclp_early.c | 4 +-
drivers/s390/char/sclp_early_core.c | 26 +-
drivers/s390/char/zcore.c | 6 +-
drivers/s390/cio/chsc_sch.c | 3 +-
drivers/s390/cio/cio.c | 14 +-
drivers/s390/cio/device.c | 2 +-
drivers/s390/cio/device_fsm.c | 13 +-
drivers/s390/cio/device_id.c | 2 +-
drivers/s390/cio/device_pgid.c | 11 +-
drivers/s390/cio/device_status.c | 3 +-
drivers/s390/cio/eadm_sch.c | 9 +-
drivers/s390/cio/fcx.c | 23 +-
drivers/s390/cio/itcw.c | 3 +-
drivers/s390/cio/vfio_ccw_chp.c | 5 +-
drivers/s390/cio/vfio_ccw_cp.c | 4 +-
drivers/s390/cio/vfio_ccw_drv.c | 174 +-
drivers/s390/cio/vfio_ccw_fsm.c | 29 +-
drivers/s390/cio/vfio_ccw_ops.c | 110 +-
drivers/s390/cio/vfio_ccw_private.h | 37 +-
drivers/s390/crypto/ap_bus.c | 5 +-
drivers/s390/crypto/vfio_ap_drv.c | 2 +-
drivers/s390/crypto/vfio_ap_ops.c | 29 +-
drivers/s390/crypto/zcrypt_api.c | 6 -
drivers/s390/net/ctcm_main.c | 11 +-
drivers/s390/net/ism_drv.c | 3 +-
drivers/s390/net/lcs.c | 8 +-
drivers/s390/net/netiucv.c | 9 +-
drivers/s390/net/qeth_l2_main.c | 2 +-
drivers/s390/scsi/zfcp_fc.c | 2 +-
drivers/sbus/char/envctrl.c | 4 +-
drivers/scsi/BusLogic.c | 6 +-
drivers/scsi/NCR5380.c | 2 +-
drivers/scsi/bfa/bfa_fc.h | 2 +-
drivers/scsi/bfa/bfad_bsg.c | 29 +
drivers/scsi/bfa/bfad_im.h | 26 -
drivers/scsi/csiostor/csio_wr.c | 3 +-
drivers/scsi/cxlflash/main.c | 2 +-
drivers/scsi/device_handler/scsi_dh_alua.c | 65 +-
drivers/scsi/elx/efct/efct_driver.c | 1 +
drivers/scsi/elx/libefc/efclib.h | 6 +-
drivers/scsi/esas2r/esas2r_main.c | 19 +-
drivers/scsi/fcoe/fcoe.c | 1 +
drivers/scsi/fcoe/fcoe_ctlr.c | 4 +-
drivers/scsi/fcoe/fcoe_sysfs.c | 19 +-
drivers/scsi/hisi_sas/hisi_sas.h | 1 +
drivers/scsi/hisi_sas/hisi_sas_main.c | 109 +-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 53 +-
drivers/scsi/hosts.c | 3 +-
drivers/scsi/hpsa.c | 9 +-
drivers/scsi/ipr.c | 10 +-
drivers/scsi/iscsi_tcp.c | 1 +
drivers/scsi/libfc/fc_disc.c | 5 +-
drivers/scsi/libiscsi.c | 26 +-
drivers/scsi/libsas/sas_ata.c | 49 +-
drivers/scsi/libsas/sas_expander.c | 44 +-
drivers/scsi/libsas/sas_init.c | 3 -
drivers/scsi/libsas/sas_internal.h | 23 +
drivers/scsi/lpfc/lpfc_attr.c | 120 +-
drivers/scsi/lpfc/lpfc_crtn.h | 3 +
drivers/scsi/lpfc/lpfc_els.c | 169 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 36 +-
drivers/scsi/lpfc/lpfc_hw4.h | 5 +-
drivers/scsi/lpfc/lpfc_init.c | 16 +-
drivers/scsi/lpfc/lpfc_sli.c | 31 +-
drivers/scsi/lpfc/lpfc_sli4.h | 1 +
drivers/scsi/lpfc/lpfc_version.h | 2 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 7 +-
drivers/scsi/megaraid/megaraid_sas_fusion.c | 8 +-
drivers/scsi/mpt3sas/mpt3sas_transport.c | 2 +
drivers/scsi/mvsas/mv_defs.h | 1 +
drivers/scsi/mvsas/mv_init.c | 11 +-
drivers/scsi/mvsas/mv_sas.c | 59 +-
drivers/scsi/mvsas/mv_sas.h | 8 +-
drivers/scsi/mvumi.c | 4 +-
drivers/scsi/pcmcia/nsp_cs.c | 4 +-
drivers/scsi/pm8001/pm8001_hwi.c | 186 +-
drivers/scsi/pm8001/pm8001_init.c | 14 +-
drivers/scsi/pm8001/pm8001_sas.c | 54 +-
drivers/scsi/pm8001/pm8001_sas.h | 18 +-
drivers/scsi/pm8001/pm80xx_hwi.c | 200 +-
drivers/scsi/qedf/qedf_main.c | 3 -
drivers/scsi/qedi/qedi_main.c | 2 +-
drivers/scsi/qla2xxx/qla_def.h | 22 +-
drivers/scsi/qla2xxx/qla_edif.c | 4 +-
drivers/scsi/qla2xxx/qla_init.c | 24 +-
drivers/scsi/qla2xxx/qla_inline.h | 4 +-
drivers/scsi/qla2xxx/qla_os.c | 5 +-
drivers/scsi/qla2xxx/qla_target.c | 3 +
drivers/scsi/qla4xxx/ql4_os.c | 8 +-
drivers/scsi/scsi.c | 12 +-
drivers/scsi/scsi_debug.c | 17 +-
drivers/scsi/scsi_error.c | 44 +-
drivers/scsi/scsi_ioctl.c | 4 +-
drivers/scsi/scsi_lib.c | 45 +-
drivers/scsi/scsi_priv.h | 6 +-
drivers/scsi/scsi_proc.c | 137 +-
drivers/scsi/scsi_scan.c | 6 +-
drivers/scsi/scsi_sysfs.c | 22 +-
drivers/scsi/scsi_transport_fc.c | 7 +-
drivers/scsi/scsi_transport_iscsi.c | 4 +-
drivers/scsi/scsi_transport_srp.c | 8 +-
drivers/scsi/sd.c | 51 +-
drivers/scsi/sd_trace.h | 84 +
drivers/scsi/sd_zbc.c | 9 +-
drivers/scsi/sg.c | 4 +-
drivers/scsi/smartpqi/smartpqi.h | 5 +-
drivers/scsi/smartpqi/smartpqi_init.c | 164 +-
drivers/scsi/snic/snic_disc.c | 3 +
drivers/scsi/storvsc_drv.c | 73 +-
drivers/scsi/virtio_scsi.c | 4 +-
drivers/slimbus/qcom-ctrl.c | 5 +-
drivers/slimbus/qcom-ngd-ctrl.c | 97 +-
drivers/slimbus/stream.c | 17 +-
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
drivers/soc/apple/rtkit.c | 7 +-
drivers/soc/apple/sart.c | 7 +-
drivers/soc/bcm/brcmstb/pm/Makefile | 1 -
drivers/soc/bcm/brcmstb/pm/s2-arm.S | 1 +
drivers/soc/fsl/dpio/dpio-driver.c | 1 -
drivers/soc/fsl/qe/gpio.c | 81 +-
drivers/soc/imx/gpcv2.c | 3 +
drivers/soc/imx/imx8m-blk-ctrl.c | 11 +-
drivers/soc/loongson/Kconfig | 18 +
drivers/soc/loongson/Makefile | 6 +
drivers/soc/loongson/loongson2_guts.c | 192 +
drivers/soc/mediatek/mt8186-mmsys.h | 8 +-
drivers/soc/mediatek/mtk-mmsys.c | 176 +-
drivers/soc/mediatek/mtk-mmsys.h | 6 -
drivers/soc/mediatek/mtk-pm-domains.c | 2 +-
drivers/soc/mediatek/mtk-pmic-wrap.c | 114 +-
drivers/soc/pxa/ssp.c | 4 +-
drivers/soc/qcom/Kconfig | 2 +
drivers/soc/qcom/apr.c | 15 +-
drivers/soc/qcom/cmd-db.c | 2 +
drivers/soc/qcom/llcc-qcom.c | 168 +-
drivers/soc/qcom/pdr_internal.h | 20 +-
drivers/soc/qcom/qcom-geni-se.c | 79 +-
drivers/soc/qcom/qcom_stats.c | 2 +
drivers/soc/qcom/rpmh-internal.h | 20 +-
drivers/soc/qcom/rpmh-rsc.c | 321 +-
drivers/soc/qcom/rpmh.c | 14 +-
drivers/soc/qcom/rpmhpd.c | 95 +-
drivers/soc/qcom/rpmpd.c | 18 +
drivers/soc/qcom/smd-rpm.c | 3 +-
drivers/soc/qcom/smp2p.c | 2 +-
drivers/soc/qcom/socinfo.c | 280 +-
drivers/soc/qcom/spm.c | 46 +
drivers/soc/qcom/trace-rpmh.h | 11 +-
drivers/soc/renesas/Kconfig | 2 +
drivers/soc/renesas/renesas-soc.c | 22 +
drivers/soc/sifive/sifive_ccache.c | 33 +-
drivers/soc/tegra/Kconfig | 4 +
drivers/soc/tegra/cbb/tegra-cbb.c | 13 +-
drivers/soc/tegra/cbb/tegra194-cbb.c | 18 +-
drivers/soc/tegra/cbb/tegra234-cbb.c | 170 +-
drivers/soc/tegra/fuse/fuse-tegra.c | 134 +-
drivers/soc/tegra/fuse/fuse-tegra30.c | 278 +-
drivers/soc/tegra/fuse/fuse.h | 4 +
drivers/soc/tegra/fuse/tegra-apbmisc.c | 1 +
drivers/soc/tegra/pmc.c | 878 +-
drivers/soc/ti/Kconfig | 4 +-
drivers/soc/ti/k3-ringacc.c | 28 +-
drivers/soc/ti/k3-socinfo.c | 1 +
drivers/soc/ti/knav_qmss_queue.c | 3 +-
drivers/soc/ti/smartreflex.c | 1 +
drivers/soc/ti/ti_sci_inta_msi.c | 12 +-
drivers/soc/ux500/ux500-soc-id.c | 10 +-
drivers/soundwire/Makefile | 2 +-
drivers/soundwire/cadence_master.c | 50 +-
drivers/soundwire/cadence_master.h | 9 +-
drivers/soundwire/dmi-quirks.c | 8 +
drivers/soundwire/intel.c | 769 +-
drivers/soundwire/intel.h | 96 +-
drivers/soundwire/intel_auxdevice.c | 678 +
drivers/soundwire/intel_auxdevice.h | 18 +
drivers/soundwire/intel_init.c | 39 +-
drivers/soundwire/qcom.c | 25 +-
drivers/spi/Kconfig | 31 +-
drivers/spi/Makefile | 3 +
drivers/spi/atmel-quadspi.c | 34 +
drivers/spi/spi-aspeed-smc.c | 6 +-
drivers/spi/spi-bcm-qspi.c | 5 +-
drivers/spi/spi-bcm-qspi.h | 2 +-
drivers/spi/spi-bcm63xx.c | 3 +-
drivers/spi/spi-brcmstb-qspi.c | 4 +-
drivers/spi/spi-cadence-quadspi.c | 15 +-
drivers/spi/spi-cadence-xspi.c | 4 -
drivers/spi/spi-dw-dma.c | 3 +
drivers/spi/spi-fsl-cpm.c | 2 +-
drivers/spi/spi-fsl-dspi.c | 36 +-
drivers/spi/spi-fsl-lpspi.c | 5 +
drivers/spi/spi-fsl-spi.c | 19 +-
drivers/spi/spi-gpio.c | 16 +-
drivers/spi/spi-hisi-sfc-v3xx.c | 2 +-
drivers/spi/spi-img-spfi.c | 3 +-
drivers/spi/spi-imx.c | 21 +-
drivers/spi/spi-intel.c | 78 +-
drivers/spi/spi-iproc-qspi.c | 4 +-
drivers/spi/spi-meson-spicc.c | 39 +-
drivers/spi/spi-microchip-core.c | 9 -
drivers/spi/spi-mt65xx.c | 20 +-
drivers/spi/spi-mtk-nor.c | 69 +-
drivers/spi/spi-mtk-snfi.c | 29 +-
drivers/spi/spi-mxic.c | 3 +-
drivers/spi/spi-npcm-fiu.c | 4 +-
drivers/spi/spi-nxp-fspi.c | 2 +-
drivers/spi/spi-pci1xxxx.c | 475 +
drivers/spi/spi-pxa2xx.c | 195 +-
drivers/spi/spi-sc18is602.c | 6 +-
drivers/spi/spi-sn-f-ospi.c | 703 +
drivers/spi/spi-tegra210-quad.c | 3 +-
drivers/spi/spi-wpcm-fiu.c | 508 +
drivers/spi/spi-xcomm.c | 5 +-
drivers/spi/spi-zynqmp-gqspi.c | 191 +-
drivers/spi/spi.c | 70 +-
drivers/spi/spidev.c | 21 +-
drivers/spmi/spmi-pmic-arb.c | 242 +-
drivers/staging/emxx_udc/emxx_udc.c | 5 +-
drivers/staging/fieldbus/dev_core.c | 17 +-
drivers/staging/gdm724x/gdm_tty.c | 13 +-
drivers/staging/greybus/tools/loopback_test.c | 15 +-
drivers/staging/iio/accel/adis16203.c | 2 +-
drivers/staging/iio/accel/adis16240.c | 2 +-
drivers/staging/iio/addac/adt7316-i2c.c | 6 +-
drivers/staging/iio/frequency/ad9834.c | 6 +-
drivers/staging/iio/impedance-analyzer/ad5933.c | 6 +-
drivers/staging/iio/meter/ade7854-i2c.c | 10 +-
drivers/staging/ks7010/TODO | 3 +
drivers/staging/ks7010/ks_wlan_net.c | 248 +-
drivers/staging/media/Kconfig | 1 +
drivers/staging/media/Makefile | 1 +
drivers/staging/media/atomisp/i2c/atomisp-gc0310.c | 14 +-
drivers/staging/media/atomisp/i2c/atomisp-lm3554.c | 2 +-
drivers/staging/media/atomisp/i2c/gc0310.h | 1 +
drivers/staging/media/atomisp/i2c/ov2680.h | 46 +-
drivers/staging/media/atomisp/include/hmm/hmm.h | 3 +-
drivers/staging/media/atomisp/include/hmm/hmm_bo.h | 4 +-
drivers/staging/media/atomisp/pci/atomisp_cmd.c | 442 +-
drivers/staging/media/atomisp/pci/atomisp_cmd.h | 17 +-
drivers/staging/media/atomisp/pci/atomisp_common.h | 6 +-
drivers/staging/media/atomisp/pci/atomisp_compat.h | 14 +-
.../media/atomisp/pci/atomisp_compat_css20.c | 96 +-
drivers/staging/media/atomisp/pci/atomisp_fops.c | 535 +-
drivers/staging/media/atomisp/pci/atomisp_fops.h | 13 -
.../staging/media/atomisp/pci/atomisp_internal.h | 1 -
drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 615 +-
drivers/staging/media/atomisp/pci/atomisp_ioctl.h | 10 +-
drivers/staging/media/atomisp/pci/atomisp_subdev.c | 2 +
drivers/staging/media/atomisp/pci/atomisp_subdev.h | 22 +-
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 104 +-
.../camera/pipe/interface/ia_css_pipe_binarydesc.h | 13 +-
.../camera/pipe/interface/ia_css_pipe_stagedesc.h | 5 -
.../atomisp/pci/camera/pipe/src/pipe_binarydesc.c | 55 +-
.../atomisp/pci/camera/pipe/src/pipe_stagedesc.c | 21 -
.../pci/css_2401_system/host/pixelgen_private.h | 2 +-
drivers/staging/media/atomisp/pci/hive_types.h | 2 +-
drivers/staging/media/atomisp/pci/hmm/hmm.c | 20 +-
drivers/staging/media/atomisp/pci/hmm/hmm_bo.c | 64 +-
.../media/atomisp/pci/ia_css_frame_public.h | 108 +-
drivers/staging/media/atomisp/pci/ia_css_pipe.h | 3 +-
.../staging/media/atomisp/pci/ia_css_pipe_public.h | 69 -
.../ipu2_io_ls/bayer_io_ls/ia_css_bayer_io.host.c | 10 +-
.../yuv444_io_ls/ia_css_yuv444_io.host.c | 10 +-
.../pci/isp/kernels/ref/ref_1.0/ia_css_ref.host.c | 2 +-
.../pci/isp/kernels/tnr/tnr_1.0/ia_css_tnr.host.c | 4 +-
.../media/atomisp/pci/runtime/binary/src/binary.c | 42 +-
.../atomisp/pci/runtime/debug/src/ia_css_debug.c | 33 +-
.../media/atomisp/pci/runtime/frame/src/frame.c | 203 +-
.../runtime/pipeline/interface/ia_css_pipeline.h | 2 -
.../atomisp/pci/runtime/pipeline/src/pipeline.c | 8 -
drivers/staging/media/atomisp/pci/sh_css.c | 646 +-
.../staging/media/atomisp/pci/sh_css_internal.h | 13 -
drivers/staging/media/atomisp/pci/sh_css_legacy.h | 1 -
.../media/atomisp/pci/sh_css_param_shading.c | 19 +-
drivers/staging/media/atomisp/pci/sh_css_params.c | 17 +-
drivers/staging/media/atomisp/pci/sh_css_sp.c | 54 +-
drivers/staging/media/deprecated/atmel/Kconfig | 47 +
drivers/staging/media/deprecated/atmel/Makefile | 8 +
drivers/staging/media/deprecated/atmel/TODO | 34 +
.../media/deprecated}/atmel/atmel-isc-base.c | 20 +-
.../media/deprecated}/atmel/atmel-isc-clk.c | 8 +-
.../media/deprecated}/atmel/atmel-isc-regs.h | 0
.../media/deprecated}/atmel/atmel-isc.h | 16 +-
.../media/deprecated}/atmel/atmel-sama5d2-isc.c | 18 +-
.../media/deprecated}/atmel/atmel-sama7g5-isc.c | 18 +-
drivers/staging/media/deprecated/stkwebcam/Kconfig | 2 +-
drivers/staging/media/imx/Kconfig | 17 +-
drivers/staging/media/imx/Makefile | 3 +-
drivers/staging/media/imx/TODO | 41 -
drivers/staging/media/imx/imx-media-csi.c | 135 +-
drivers/staging/media/imx/imx-media-fim.c | 57 +-
drivers/staging/media/imx/imx-media-utils.c | 33 -
drivers/staging/media/imx/imx-media.h | 1 -
drivers/staging/media/ipu3/ipu3-v4l2.c | 57 +-
drivers/staging/media/meson/vdec/codec_vp9.c | 10 +-
drivers/staging/media/omap4iss/iss_video.c | 2 -
drivers/staging/media/omap4iss/iss_video.h | 18 +-
drivers/staging/media/rkvdec/rkvdec-vp9.c | 3 +
drivers/staging/media/sunxi/Kconfig | 1 +
drivers/staging/media/sunxi/Makefile | 1 +
drivers/staging/media/sunxi/cedrus/cedrus.c | 112 +-
drivers/staging/media/sunxi/cedrus/cedrus.h | 38 +-
drivers/staging/media/sunxi/cedrus/cedrus_dec.c | 4 +-
drivers/staging/media/sunxi/cedrus/cedrus_h264.c | 120 +-
drivers/staging/media/sunxi/cedrus/cedrus_h265.c | 125 +-
drivers/staging/media/sunxi/cedrus/cedrus_hw.c | 18 +-
drivers/staging/media/sunxi/cedrus/cedrus_hw.h | 2 +-
drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c | 2 +-
drivers/staging/media/sunxi/cedrus/cedrus_regs.h | 18 +
drivers/staging/media/sunxi/cedrus/cedrus_video.c | 184 +-
drivers/staging/media/sunxi/cedrus/cedrus_video.h | 2 +
drivers/staging/media/sunxi/cedrus/cedrus_vp8.c | 2 +-
drivers/staging/media/sunxi/sun6i-isp/Kconfig | 15 +
drivers/staging/media/sunxi/sun6i-isp/Makefile | 4 +
drivers/staging/media/sunxi/sun6i-isp/TODO.txt | 6 +
drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c | 555 +
drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.h | 90 +
.../media/sunxi/sun6i-isp/sun6i_isp_capture.c | 742 +
.../media/sunxi/sun6i-isp/sun6i_isp_capture.h | 78 +
.../media/sunxi/sun6i-isp/sun6i_isp_params.c | 568 +
.../media/sunxi/sun6i-isp/sun6i_isp_params.h | 52 +
.../staging/media/sunxi/sun6i-isp/sun6i_isp_proc.c | 577 +
.../staging/media/sunxi/sun6i-isp/sun6i_isp_proc.h | 66 +
.../staging/media/sunxi/sun6i-isp/sun6i_isp_reg.h | 275 +
.../media/sunxi/sun6i-isp/uapi/sun6i-isp-config.h | 43 +
drivers/staging/media/tegra-video/csi.c | 4 +-
drivers/staging/media/tegra-video/csi.h | 2 +-
drivers/staging/media/tegra-video/vi.c | 2 +-
drivers/staging/most/dim2/dim2.c | 4 +-
drivers/staging/most/dim2/hal.c | 4 +-
drivers/staging/most/dim2/hal.h | 6 +-
drivers/staging/most/i2c/i2c.c | 4 +-
drivers/staging/octeon/ethernet-tx.c | 2 -
drivers/staging/octeon/octeon-stubs.h | 2 +-
drivers/staging/olpc_dcon/olpc_dcon.c | 4 +-
.../{pi433-overlay.dts => pi433-overlay.dtso} | 0
.../pi433/Documentation/devicetree/pi433.txt | 6 +-
drivers/staging/r8188eu/core/rtw_ap.c | 7 +-
drivers/staging/r8188eu/core/rtw_br_ext.c | 126 +-
drivers/staging/r8188eu/core/rtw_cmd.c | 34 +-
drivers/staging/r8188eu/core/rtw_ioctl_set.c | 6 +-
drivers/staging/r8188eu/core/rtw_led.c | 79 +-
drivers/staging/r8188eu/core/rtw_mlme.c | 51 +-
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 747 +-
drivers/staging/r8188eu/core/rtw_p2p.c | 19 +-
drivers/staging/r8188eu/core/rtw_pwrctrl.c | 2 +-
drivers/staging/r8188eu/core/rtw_recv.c | 27 +-
drivers/staging/r8188eu/core/rtw_security.c | 4 +-
drivers/staging/r8188eu/core/rtw_sta_mgt.c | 16 +-
drivers/staging/r8188eu/core/rtw_wlan_util.c | 36 +-
drivers/staging/r8188eu/core/rtw_xmit.c | 54 +-
drivers/staging/r8188eu/hal/HalPhyRf_8188e.c | 12 +-
drivers/staging/r8188eu/hal/hal_intf.c | 19 +-
drivers/staging/r8188eu/hal/odm_RTL8188E.c | 6 +-
drivers/staging/r8188eu/hal/rtl8188e_hal_init.c | 8 +-
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c | 16 +-
drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c | 28 +-
drivers/staging/r8188eu/hal/rtl8188eu_xmit.c | 3 +-
drivers/staging/r8188eu/include/Hal8188EPhyReg.h | 4 +-
drivers/staging/r8188eu/include/drv_types.h | 1 -
drivers/staging/r8188eu/include/odm.h | 10 +-
drivers/staging/r8188eu/include/odm_RTL8188E.h | 7 +
drivers/staging/r8188eu/include/odm_types.h | 16 -
drivers/staging/r8188eu/include/osdep_intf.h | 6 +-
drivers/staging/r8188eu/include/osdep_service.h | 6 +-
drivers/staging/r8188eu/include/rtl8188e_hal.h | 7 +-
drivers/staging/r8188eu/include/rtl8188e_spec.h | 18 +-
drivers/staging/r8188eu/include/rtw_ap.h | 2 +-
drivers/staging/r8188eu/include/rtw_cmd.h | 71 +-
drivers/staging/r8188eu/include/rtw_io.h | 16 +-
drivers/staging/r8188eu/include/rtw_ioctl_set.h | 6 +-
drivers/staging/r8188eu/include/rtw_led.h | 3 -
drivers/staging/r8188eu/include/rtw_mlme.h | 29 +-
drivers/staging/r8188eu/include/rtw_mlme_ext.h | 58 +-
drivers/staging/r8188eu/include/rtw_recv.h | 4 +-
drivers/staging/r8188eu/include/rtw_xmit.h | 4 +-
drivers/staging/r8188eu/include/sta_info.h | 18 +-
drivers/staging/r8188eu/include/wifi.h | 77 +-
drivers/staging/r8188eu/include/wlan_bssdef.h | 51 -
drivers/staging/r8188eu/os_dep/ioctl_linux.c | 28 +-
drivers/staging/r8188eu/os_dep/os_intfs.c | 41 +-
drivers/staging/rtl8192e/TODO | 18 +-
drivers/staging/rtl8192e/rtl8192e/r8190P_def.h | 15 -
drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 55 +-
drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 50 +-
drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 43 +-
drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 191 +-
drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 36 +-
drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 123 +-
drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 10 +-
drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c | 2 +-
drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 95 +-
drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 94 +-
drivers/staging/rtl8192e/rtl819x_BAProc.c | 38 +-
drivers/staging/rtl8192e/rtl819x_HT.h | 2 +-
drivers/staging/rtl8192e/rtl819x_HTProc.c | 405 +-
drivers/staging/rtl8192e/rtl819x_Qos.h | 7 -
drivers/staging/rtl8192e/rtl819x_TSProc.c | 2 +-
drivers/staging/rtl8192e/rtllib.h | 51 +-
drivers/staging/rtl8192e/rtllib_crypt_tkip.c | 52 +-
drivers/staging/rtl8192e/rtllib_crypt_wep.c | 8 -
drivers/staging/rtl8192e/rtllib_module.c | 8 +-
drivers/staging/rtl8192e/rtllib_rx.c | 38 +-
drivers/staging/rtl8192e/rtllib_softmac.c | 173 +-
drivers/staging/rtl8192e/rtllib_softmac_wx.c | 19 +-
drivers/staging/rtl8192e/rtllib_tx.c | 120 +-
drivers/staging/rtl8192e/rtllib_wx.c | 6 +-
drivers/staging/rtl8192u/TODO | 16 +
drivers/staging/rtl8192u/ieee80211/ieee80211.h | 64 -
.../rtl8192u/ieee80211/ieee80211_crypt_tkip.c | 6 -
.../staging/rtl8192u/ieee80211/ieee80211_module.c | 3 -
drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c | 6 +-
drivers/staging/rtl8712/os_intfs.c | 27 +-
drivers/staging/rtl8712/recv_osdep.h | 8 +-
drivers/staging/rtl8712/rtl8712_recv.c | 7 +-
drivers/staging/rtl8712/rtl8712_xmit.c | 3 +-
drivers/staging/rtl8712/rtl871x_recv.c | 16 +-
drivers/staging/rtl8723bs/core/rtw_efuse.c | 2 +-
drivers/staging/rtl8723bs/core/rtw_ieee80211.c | 12 +-
drivers/staging/rtl8723bs/core/rtw_ioctl_set.c | 17 +-
drivers/staging/rtl8723bs/core/rtw_mlme.c | 30 +-
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 2 +-
drivers/staging/rtl8723bs/core/rtw_recv.c | 6 +-
drivers/staging/rtl8723bs/core/rtw_sta_mgt.c | 2 +-
drivers/staging/rtl8723bs/core/rtw_wlan_util.c | 12 +-
drivers/staging/rtl8723bs/hal/HalPhyRf_8723B.c | 21 +-
drivers/staging/rtl8723bs/hal/odm.h | 12 +-
drivers/staging/rtl8723bs/hal/odm_DIG.c | 5 +-
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 2 +-
drivers/staging/rts5208/sd.c | 3 +-
drivers/staging/sm750fb/Kconfig | 2 +-
.../vc04_services/bcm2835-camera/bcm2835-camera.c | 30 +-
.../staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 18 +-
.../staging/vc04_services/vchiq-mmal/mmal-vchiq.h | 6 +-
drivers/staging/vme_user/vme.h | 2 -
drivers/staging/vme_user/vme_fake.c | 9 +-
drivers/staging/vme_user/vme_tsi148.c | 7 +-
drivers/staging/vme_user/vme_tsi148.h | 7 -
drivers/staging/vt6655/device_main.c | 1 +
drivers/staging/vt6655/rxtx.c | 36 +-
drivers/staging/vt6656/main_usb.c | 1 +
drivers/staging/wlan-ng/TODO | 16 +
drivers/staging/wlan-ng/hfa384x_usb.c | 4 +-
drivers/staging/wlan-ng/p80211mgmt.h | 301 -
drivers/staging/wlan-ng/p80211netdev.c | 22 -
drivers/staging/wlan-ng/p80211types.h | 6 -
drivers/staging/wlan-ng/prism2usb.c | 6 +-
drivers/target/iscsi/iscsi_target_nego.c | 12 +-
drivers/target/iscsi/iscsi_target_util.c | 4 +-
drivers/target/target_core_configfs.c | 49 +-
drivers/target/target_core_device.c | 1 +
drivers/target/target_core_fabric_configfs.c | 3 +-
drivers/target/target_core_file.c | 5 +-
drivers/target/target_core_iblock.c | 4 +-
drivers/target/target_core_sbc.c | 30 +-
drivers/target/target_core_spc.c | 934 +-
drivers/target/target_core_xcopy.c | 103 +-
drivers/target/target_core_xcopy.h | 2 +-
drivers/tee/optee/core.c | 4 +-
drivers/tee/optee/device.c | 2 +-
drivers/thermal/gov_fair_share.c | 6 +-
drivers/thermal/gov_power_allocator.c | 1 -
drivers/thermal/imx8mm_thermal.c | 180 +-
drivers/thermal/imx_sc_thermal.c | 6 -
drivers/thermal/intel/intel_hfi.c | 34 +-
drivers/thermal/intel/intel_menlow.c | 8 +-
drivers/thermal/intel/intel_tcc_cooling.c | 11 +
drivers/thermal/intel/therm_throt.c | 26 +-
drivers/thermal/intel/thermal_interrupt.h | 6 +
drivers/thermal/intel/x86_pkg_temp_thermal.c | 9 +-
drivers/thermal/k3_j72xx_bandgap.c | 67 +-
drivers/thermal/qcom/lmh.c | 2 +-
drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 8 +-
drivers/thermal/qcom/qcom-spmi-temp-alarm.c | 3 +-
drivers/thermal/qcom/tsens-8960.c | 3 +
drivers/thermal/qcom/tsens-v0_1.c | 3 +
drivers/thermal/qcom/tsens-v1.c | 3 +
drivers/thermal/qcom/tsens-v2.c | 20 +
drivers/thermal/qcom/tsens.c | 68 +-
drivers/thermal/qcom/tsens.h | 8 +-
drivers/thermal/st/stm_thermal.c | 4 +-
drivers/thermal/tegra/tegra-bpmp-thermal.c | 15 +-
drivers/thermal/thermal_core.c | 110 +-
drivers/thermal/thermal_core.h | 3 +-
drivers/thermal/thermal_helpers.c | 67 +-
drivers/thermal/thermal_hwmon.c | 10 +-
drivers/thermal/thermal_of.c | 8 +-
drivers/thermal/thermal_sysfs.c | 116 +-
drivers/thermal/ti-soc-thermal/ti-bandgap.c | 2 +-
drivers/thunderbolt/acpi.c | 12 +-
drivers/thunderbolt/switch.c | 5 +-
drivers/thunderbolt/tb_regs.h | 2 +
drivers/thunderbolt/usb4.c | 33 +-
drivers/thunderbolt/usb4_port.c | 3 +
drivers/thunderbolt/xdomain.c | 4 +-
drivers/tty/Kconfig | 19 +
drivers/tty/ehv_bytechan.c | 4 +-
drivers/tty/hvc/hvc_console.c | 4 +-
drivers/tty/hvc/hvc_rtas.c | 2 +-
drivers/tty/n_gsm.c | 404 +-
drivers/tty/n_tty.c | 6 +-
drivers/tty/serial/21285.c | 32 +-
drivers/tty/serial/8250/8250_bcm7271.c | 14 +-
drivers/tty/serial/8250/8250_core.c | 7 +-
drivers/tty/serial/8250/8250_dma.c | 19 +-
drivers/tty/serial/8250/8250_ingenic.c | 32 +-
drivers/tty/serial/8250/8250_omap.c | 85 +-
drivers/tty/serial/8250/8250_port.c | 3 +-
drivers/tty/serial/Kconfig | 2 +
drivers/tty/serial/altera_jtaguart.c | 112 +-
drivers/tty/serial/altera_uart.c | 34 +-
drivers/tty/serial/amba-pl010.c | 32 +-
drivers/tty/serial/amba-pl011.c | 17 +-
drivers/tty/serial/apbuart.c | 34 +-
drivers/tty/serial/ar933x_uart.c | 3 +-
drivers/tty/serial/arc_uart.c | 3 +-
drivers/tty/serial/atmel_serial.c | 80 +-
drivers/tty/serial/bcm63xx_uart.c | 47 +-
drivers/tty/serial/clps711x.c | 3 +-
drivers/tty/serial/cpm_uart/cpm_uart_core.c | 3 +-
drivers/tty/serial/digicolor-usart.c | 3 +-
drivers/tty/serial/dz.c | 3 +-
drivers/tty/serial/earlycon.c | 4 +-
drivers/tty/serial/fsl_linflexuart.c | 3 +-
drivers/tty/serial/fsl_lpuart.c | 386 +-
drivers/tty/serial/imx.c | 71 +-
drivers/tty/serial/ip22zilog.c | 6 +-
drivers/tty/serial/kgdboc.c | 46 +-
drivers/tty/serial/lantiq.c | 36 +-
drivers/tty/serial/liteuart.c | 3 +-
drivers/tty/serial/lpc32xx_hs.c | 33 +-
drivers/tty/serial/max3100.c | 4 +-
drivers/tty/serial/max310x.c | 5 +-
drivers/tty/serial/mcf.c | 34 +-
drivers/tty/serial/men_z135_uart.c | 5 +-
drivers/tty/serial/meson_uart.c | 3 +-
drivers/tty/serial/milbeaut_usio.c | 3 +-
drivers/tty/serial/mpc52xx_uart.c | 39 +-
drivers/tty/serial/mps2-uart.c | 26 +-
drivers/tty/serial/msm_serial.c | 13 +-
drivers/tty/serial/mux.c | 45 +-
drivers/tty/serial/mvebu-uart.c | 41 +-
drivers/tty/serial/mxs-auart.c | 32 +-
drivers/tty/serial/omap-serial.c | 32 +-
drivers/tty/serial/owl-uart.c | 32 +-
drivers/tty/serial/pch_uart.c | 16 +-
drivers/tty/serial/pic32_uart.c | 7 +-
drivers/tty/serial/pmac_zilog.c | 6 +-
drivers/tty/serial/pxa.c | 33 +-
drivers/tty/serial/qcom_geni_serial.c | 35 +
drivers/tty/serial/rda-uart.c | 3 +-
drivers/tty/serial/rp2.c | 31 +-
drivers/tty/serial/sa1100.c | 34 +-
drivers/tty/serial/samsung_tty.c | 12 +-
drivers/tty/serial/sb1250-duart.c | 3 +-
drivers/tty/serial/sc16is7xx.c | 5 +-
drivers/tty/serial/sccnxp.c | 3 +-
drivers/tty/serial/serial-tegra.c | 9 +-
drivers/tty/serial/serial_core.c | 14 +-
drivers/tty/serial/serial_txx9.c | 32 +-
drivers/tty/serial/sh-sci.c | 25 +-
drivers/tty/serial/sifive.c | 31 +-
drivers/tty/serial/sprd_serial.c | 40 +-
drivers/tty/serial/st-asc.c | 48 +-
drivers/tty/serial/stm32-usart.c | 54 +-
drivers/tty/serial/sunhv.c | 6 +-
drivers/tty/serial/sunplus-uart.c | 4 +-
drivers/tty/serial/sunsab.c | 14 +-
drivers/tty/serial/sunsu.c | 3 +-
drivers/tty/serial/sunzilog.c | 6 +-
drivers/tty/serial/timbuart.c | 3 +-
drivers/tty/serial/uartlite.c | 3 +-
drivers/tty/serial/ucc_uart.c | 3 +-
drivers/tty/serial/vt8500_serial.c | 32 +-
drivers/tty/serial/xilinx_uartps.c | 6 +-
drivers/tty/serial/zs.c | 3 +-
drivers/tty/synclink_gt.c | 19 +-
drivers/tty/sysrq.c | 2 +-
drivers/tty/tty.h | 2 +-
drivers/tty/tty_buffer.c | 32 +-
drivers/tty/tty_io.c | 65 +-
drivers/tty/tty_ldisc.c | 38 +-
drivers/ufs/core/ufs-sysfs.c | 21 +-
drivers/ufs/core/ufshcd-priv.h | 6 +-
drivers/ufs/core/ufshcd.c | 370 +-
drivers/ufs/core/ufshpb.c | 16 +-
drivers/ufs/host/ufs-mediatek.c | 15 +-
drivers/uio/uio_dmem_genirq.c | 22 +-
drivers/uio/uio_fsl_elbc_gpcm.c | 6 +-
drivers/usb/Kconfig | 4 +
drivers/usb/Makefile | 2 +
drivers/usb/cdns3/cdnsp-gadget.c | 12 +-
drivers/usb/cdns3/cdnsp-pci.c | 8 +-
drivers/usb/cdns3/cdnsp-ring.c | 57 +-
drivers/usb/chipidea/ci.h | 4 +
drivers/usb/chipidea/ci_hdrc_imx.c | 51 +-
drivers/usb/chipidea/ci_hdrc_imx.h | 4 +-
drivers/usb/chipidea/core.c | 143 +-
drivers/usb/chipidea/host.c | 16 +
drivers/usb/chipidea/otg.c | 2 +-
drivers/usb/chipidea/otg.h | 1 +
drivers/usb/chipidea/udc.c | 32 +
drivers/usb/chipidea/usbmisc_imx.c | 160 +-
drivers/usb/class/usblp.c | 2 +-
drivers/usb/common/ulpi.c | 2 +-
drivers/usb/core/config.c | 82 +-
drivers/usb/core/file.c | 2 +-
drivers/usb/core/hcd-pci.c | 13 +
drivers/usb/core/hcd.c | 6 +-
drivers/usb/core/hub.c | 60 +
drivers/usb/core/hub.h | 4 +
drivers/usb/core/message.c | 1 +
drivers/usb/core/port.c | 30 +-
drivers/usb/core/sysfs.c | 7 +-
drivers/usb/core/usb.h | 1 -
drivers/usb/dwc2/gadget.c | 6 +-
drivers/usb/dwc2/params.c | 4 +
drivers/usb/dwc2/platform.c | 5 +-
drivers/usb/dwc3/Kconfig | 4 +-
drivers/usb/dwc3/core.c | 23 +-
drivers/usb/dwc3/dwc3-exynos.c | 11 +-
drivers/usb/dwc3/dwc3-pci.c | 2 +-
drivers/usb/dwc3/dwc3-qcom.c | 13 +-
drivers/usb/dwc3/gadget.c | 29 +-
drivers/usb/early/xhci-dbc.c | 2 +-
drivers/usb/fotg210/Kconfig | 38 +
drivers/usb/fotg210/Makefile | 10 +
drivers/usb/fotg210/fotg210-core.c | 166 +
drivers/usb/{host => fotg210}/fotg210-hcd.c | 51 +-
.../usb/{host/fotg210.h => fotg210/fotg210-hcd.h} | 0
drivers/usb/{gadget/udc => fotg210}/fotg210-udc.c | 164 +-
.../udc/fotg210.h => fotg210/fotg210-udc.h} | 3 +
drivers/usb/fotg210/fotg210.h | 42 +
drivers/usb/gadget/configfs.c | 3 +-
drivers/usb/gadget/function/f_ecm.c | 22 +-
drivers/usb/gadget/function/f_hid.c | 60 +-
drivers/usb/gadget/function/f_mass_storage.c | 3 +-
drivers/usb/gadget/function/f_printer.c | 9 +-
drivers/usb/gadget/function/f_uvc.c | 20 +-
drivers/usb/gadget/function/storage_common.c | 9 +-
drivers/usb/gadget/function/u_ether.c | 4 -
drivers/usb/gadget/function/u_serial.c | 3 +-
drivers/usb/gadget/function/uvc_configfs.c | 12 +-
drivers/usb/gadget/function/uvc_v4l2.c | 72 +-
drivers/usb/gadget/legacy/serial.c | 3 +-
drivers/usb/gadget/legacy/webcam.c | 4 +-
drivers/usb/gadget/udc/Kconfig | 15 +-
drivers/usb/gadget/udc/Makefile | 1 -
drivers/usb/gadget/udc/aspeed-vhub/core.c | 2 +-
drivers/usb/gadget/udc/aspeed-vhub/epn.c | 16 +-
drivers/usb/gadget/udc/at91_udc.c | 5 +-
drivers/usb/gadget/udc/core.c | 16 +-
drivers/usb/gadget/udc/m66592-udc.c | 2 +-
drivers/usb/host/Kconfig | 13 +-
drivers/usb/host/Makefile | 1 -
drivers/usb/host/ehci-grlib.c | 2 +-
drivers/usb/host/ehci-pci.c | 7 +-
drivers/usb/host/ehci-ppc-of.c | 2 +-
drivers/usb/host/ehci.h | 2 +-
drivers/usb/host/fhci-hcd.c | 4 +-
drivers/usb/host/ohci-ppc-of.c | 2 +-
drivers/usb/host/uhci-grlib.c | 2 +-
drivers/usb/host/xhci-hub.c | 22 +-
drivers/usb/host/xhci-mtk.c | 73 +-
drivers/usb/host/xhci-pci.c | 63 +-
drivers/usb/host/xhci-ring.c | 42 +-
drivers/usb/host/xhci.h | 2 +-
drivers/usb/misc/Kconfig | 2 +-
drivers/usb/misc/chaoskey.c | 1 -
drivers/usb/misc/ftdi-elan.c | 4 -
drivers/usb/misc/iowarrior.c | 2 +-
drivers/usb/misc/legousbtower.c | 2 +-
drivers/usb/misc/onboard_usb_hub.c | 2 +
drivers/usb/misc/onboard_usb_hub.h | 5 +
drivers/usb/misc/sisusbvga/Kconfig | 34 -
drivers/usb/misc/sisusbvga/Makefile | 3 -
drivers/usb/misc/sisusbvga/sisusb.h | 21 -
drivers/usb/misc/sisusbvga/sisusb_con.c | 1496 -
drivers/usb/misc/sisusbvga/sisusb_init.c | 955 -
drivers/usb/misc/sisusbvga/sisusb_init.h | 180 -
.../usb/misc/sisusbvga/{sisusb.c => sisusbvga.c} | 289 +-
drivers/usb/misc/usb251xb.c | 5 +-
drivers/usb/misc/usb3503.c | 5 +-
drivers/usb/misc/usb4604.c | 5 +-
drivers/usb/musb/Kconfig | 18 -
drivers/usb/musb/Makefile | 3 -
drivers/usb/musb/am35x.c | 610 -
drivers/usb/musb/cppi_dma.c | 1547 -
drivers/usb/musb/davinci.c | 606 -
drivers/usb/musb/davinci.h | 103 -
drivers/usb/musb/jz4740.c | 62 +-
drivers/usb/musb/musb_core.c | 107 +-
drivers/usb/musb/musb_core.h | 24 +
drivers/usb/musb/musb_debugfs.c | 6 +-
drivers/usb/musb/musb_dma.h | 13 +-
drivers/usb/musb/musb_gadget.c | 61 +-
drivers/usb/musb/musb_host.c | 18 +-
drivers/usb/musb/musb_virthub.c | 33 +-
drivers/usb/musb/omap2430.c | 54 +
drivers/usb/phy/Kconfig | 14 +-
drivers/usb/phy/Makefile | 1 -
drivers/usb/phy/phy-generic.c | 18 +-
drivers/usb/phy/phy-gpio-vbus-usb.c | 12 +
drivers/usb/phy/phy-isp1301-omap.c | 4 +-
drivers/usb/phy/phy-isp1301.c | 5 +-
drivers/usb/phy/phy-jz4770.c | 353 -
drivers/usb/roles/class.c | 7 +-
drivers/usb/serial/cp210x.c | 21 +-
drivers/usb/serial/f81232.c | 12 +-
drivers/usb/serial/f81534.c | 12 +-
drivers/usb/serial/garmin_gps.c | 2 +-
drivers/usb/serial/mos7840.c | 4 +-
drivers/usb/serial/option.c | 3 +
drivers/usb/serial/xr_serial.c | 2 -
drivers/usb/storage/alauda.c | 2 +
drivers/usb/typec/anx7411.c | 5 +-
drivers/usb/typec/bus.c | 2 +-
drivers/usb/typec/class.c | 19 +
drivers/usb/typec/hd3ss3220.c | 5 +-
drivers/usb/typec/mux.c | 8 +-
drivers/usb/typec/retimer.c | 18 +-
drivers/usb/typec/retimer.h | 4 +
drivers/usb/typec/tcpm/fusb302.c | 5 +-
drivers/usb/typec/tcpm/tcpci.c | 10 +-
drivers/usb/typec/tcpm/tcpci_maxim.c | 4 +-
drivers/usb/typec/tcpm/tcpci_rt1711h.c | 5 +-
drivers/usb/typec/tipd/core.c | 20 +-
drivers/usb/typec/ucsi/ucsi.c | 17 +-
drivers/usb/typec/ucsi/ucsi.h | 1 +
drivers/usb/typec/ucsi/ucsi_ccg.c | 5 +-
drivers/usb/typec/ucsi/ucsi_stm32g0.c | 4 +-
drivers/usb/typec/wusb3801.c | 2 +-
drivers/usb/usb-skeleton.c | 1 -
drivers/usb/usbip/stub_dev.c | 4 +-
drivers/usb/usbip/usbip_common.c | 3 +-
drivers/usb/usbip/vudc_rx.c | 4 +-
drivers/usb/usbip/vudc_sysfs.c | 2 +-
drivers/vdpa/vdpa_user/vduse_dev.c | 2 +-
drivers/vfio/Kconfig | 31 +-
drivers/vfio/Makefile | 11 +-
drivers/vfio/container.c | 145 +-
drivers/vfio/fsl-mc/vfio_fsl_mc.c | 4 +-
drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 1 -
drivers/vfio/group.c | 877 +
drivers/vfio/iommufd.c | 158 +
drivers/vfio/iova_bitmap.c | 33 +-
drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c | 162 +-
drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.h | 2 +
drivers/vfio/pci/mlx5/cmd.c | 413 +-
drivers/vfio/pci/mlx5/cmd.h | 96 +-
drivers/vfio/pci/mlx5/main.c | 787 +-
drivers/vfio/pci/vfio_pci.c | 3 +
drivers/vfio/pci/vfio_pci_core.c | 15 +-
drivers/vfio/platform/vfio_amba.c | 4 +-
drivers/vfio/platform/vfio_platform.c | 4 +-
drivers/vfio/platform/vfio_platform_common.c | 3 +-
drivers/vfio/vfio.h | 133 +-
drivers/vfio/vfio_iommu_spapr_tce.c | 65 +-
drivers/vfio/vfio_main.c | 1126 +-
drivers/vfio/vfio_spapr_eeh.c | 107 -
drivers/vfio/virqfd.c | 17 +-
drivers/vhost/net.c | 6 +-
drivers/vhost/scsi.c | 10 +-
drivers/vhost/vhost.c | 6 +-
drivers/vhost/vringh.c | 4 +-
drivers/vhost/vsock.c | 4 +-
drivers/video/backlight/adp8860_bl.c | 6 +-
drivers/video/backlight/adp8870_bl.c | 6 +-
drivers/video/backlight/apple_bl.c | 3 +-
drivers/video/backlight/arcxcnn_bl.c | 4 +-
drivers/video/backlight/bd6107.c | 5 +-
drivers/video/backlight/lm3630a_bl.c | 5 +-
drivers/video/backlight/lm3639_bl.c | 5 +-
drivers/video/backlight/lp855x_bl.c | 5 +-
drivers/video/backlight/lv5207lp.c | 5 +-
drivers/video/backlight/tosa_bl.c | 5 +-
drivers/video/fbdev/Kconfig | 2 +-
drivers/video/fbdev/controlfb.c | 2 +-
drivers/video/fbdev/core/fb_defio.c | 4 -
drivers/video/fbdev/core/fbcon.c | 5 +-
drivers/video/fbdev/da8xx-fb.c | 7 +-
drivers/video/fbdev/ep93xx-fb.c | 4 +-
drivers/video/fbdev/geode/Kconfig | 1 +
drivers/video/fbdev/hyperv_fb.c | 16 +-
drivers/video/fbdev/matrox/matroxfb_maven.c | 5 +-
.../omap2/omapfb/displays/connector-analog-tv.c | 60 +-
.../fbdev/omap2/omapfb/displays/connector-hdmi.c | 49 +-
.../fbdev/omap2/omapfb/displays/encoder-opa362.c | 4 +-
.../fbdev/omap2/omapfb/displays/encoder-tfp410.c | 67 +-
.../video/fbdev/omap2/omapfb/displays/panel-dpi.c | 83 +-
.../fbdev/omap2/omapfb/displays/panel-dsi-cm.c | 116 +-
.../omapfb/displays/panel-lgphilips-lb035q02.c | 21 +-
.../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 72 +-
.../omapfb/displays/panel-sharp-ls037v7dw01.c | 3 +-
.../omap2/omapfb/displays/panel-sony-acx565akm.c | 105 +-
.../omap2/omapfb/displays/panel-tpo-td028ttec1.c | 1 -
.../omap2/omapfb/displays/panel-tpo-td043mtea1.c | 59 +-
drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.c | 2 -
drivers/video/fbdev/pm2fb.c | 9 +-
drivers/video/fbdev/pxafb.c | 1 -
drivers/video/fbdev/sh_mobile_lcdcfb.c | 8 +-
drivers/video/fbdev/smscufx.c | 46 +-
drivers/video/fbdev/ssd1307fb.c | 12 +-
drivers/video/fbdev/uvesafb.c | 39 +-
drivers/video/fbdev/vermilion/vermilion.c | 4 +-
drivers/video/fbdev/via/via-core.c | 9 +-
drivers/video/fbdev/xen-fbfront.c | 12 +-
drivers/virt/Kconfig | 2 +
drivers/virt/Makefile | 1 +
drivers/virt/coco/sev-guest/sev-guest.c | 89 +-
drivers/virt/coco/tdx-guest/Kconfig | 10 +
drivers/virt/coco/tdx-guest/Makefile | 2 +
drivers/virt/coco/tdx-guest/tdx-guest.c | 102 +
drivers/virt/fsl_hypervisor.c | 2 +-
drivers/watchdog/Kconfig | 7 +
drivers/watchdog/Makefile | 1 +
drivers/watchdog/advantech_ec_wdt.c | 205 +
drivers/watchdog/aspeed_wdt.c | 104 +-
drivers/watchdog/at91rm9200_wdt.c | 11 +-
drivers/watchdog/db8500_wdt.c | 9 +-
drivers/watchdog/iTCO_wdt.c | 21 +-
drivers/watchdog/kempld_wdt.c | 11 +-
drivers/watchdog/mtk_wdt.c | 12 +
drivers/watchdog/ni903x_wdt.c | 4 +-
drivers/watchdog/omap_wdt.c | 11 +-
drivers/watchdog/rn5t618_wdt.c | 12 +
drivers/watchdog/twl4030_wdt.c | 9 +-
drivers/xen/grant-dma-ops.c | 105 +-
drivers/xen/privcmd.c | 2 +-
drivers/xen/pvcalls-back.c | 8 +-
drivers/xen/xen-acpi-pad.c | 3 +-
fs/9p/acl.c | 295 +-
fs/9p/acl.h | 8 +-
fs/9p/fid.c | 1 -
fs/9p/v9fs.c | 1 -
fs/9p/vfs_addr.c | 5 +-
fs/9p/vfs_dentry.c | 1 -
fs/9p/vfs_dir.c | 3 +-
fs/9p/vfs_file.c | 1 -
fs/9p/vfs_inode.c | 1 -
fs/9p/vfs_inode_dotl.c | 5 +-
fs/9p/vfs_super.c | 1 -
fs/9p/xattr.c | 11 +-
fs/9p/xattr.h | 2 -
fs/afs/cmservice.c | 2 +-
fs/afs/dir.c | 3 +-
fs/afs/file.c | 7 +-
fs/afs/fs_probe.c | 9 +-
fs/afs/internal.h | 12 +-
fs/afs/rxrpc.c | 10 +-
fs/afs/server.c | 2 +-
fs/afs/volume.c | 6 +-
fs/afs/write.c | 87 +-
fs/aio.c | 4 +-
fs/attr.c | 74 +-
fs/bad_inode.c | 4 +-
fs/binfmt_elf.c | 299 +-
fs/binfmt_elf_fdpic.c | 7 +-
fs/binfmt_misc.c | 8 +-
fs/btrfs/Makefile | 6 +-
fs/btrfs/{struct-funcs.c => accessors.c} | 12 +-
fs/btrfs/accessors.h | 1073 +
fs/btrfs/acl.c | 5 +-
fs/btrfs/acl.h | 27 +
fs/btrfs/backref.c | 1001 +-
fs/btrfs/backref.h | 195 +-
fs/btrfs/bio.c | 381 +
fs/btrfs/bio.h | 127 +
fs/btrfs/block-group.c | 152 +-
fs/btrfs/block-group.h | 30 +-
fs/btrfs/block-rsv.c | 43 +-
fs/btrfs/block-rsv.h | 6 +-
fs/btrfs/btrfs_inode.h | 161 +-
fs/btrfs/check-integrity.c | 4 +-
fs/btrfs/compression.c | 18 +-
fs/btrfs/compression.h | 11 +-
fs/btrfs/ctree.c | 347 +-
fs/btrfs/ctree.h | 3927 +-
fs/btrfs/defrag.c | 1376 +
fs/btrfs/defrag.h | 22 +
fs/btrfs/delalloc-space.c | 61 +-
fs/btrfs/delalloc-space.h | 3 +
fs/btrfs/delayed-inode.c | 17 +-
fs/btrfs/delayed-inode.h | 2 +-
fs/btrfs/delayed-ref.c | 21 +-
fs/btrfs/dev-replace.c | 28 +-
fs/btrfs/dev-replace.h | 8 +
fs/btrfs/dir-item.c | 60 +-
fs/btrfs/dir-item.h | 42 +
fs/btrfs/discard.c | 112 +-
fs/btrfs/disk-io.c | 247 +-
fs/btrfs/disk-io.h | 35 +-
fs/btrfs/export.c | 25 +-
fs/btrfs/export.h | 3 +-
fs/btrfs/extent-io-tree.c | 192 +-
fs/btrfs/extent-io-tree.h | 100 +-
fs/btrfs/extent-tree.c | 55 +-
fs/btrfs/extent-tree.h | 78 +
fs/btrfs/extent_io.c | 482 +-
fs/btrfs/extent_io.h | 67 +-
fs/btrfs/extent_map.c | 75 +-
fs/btrfs/file-item.c | 258 +-
fs/btrfs/file-item.h | 69 +
fs/btrfs/file.c | 621 +-
fs/btrfs/file.h | 33 +
fs/btrfs/free-space-cache.c | 52 +-
fs/btrfs/free-space-cache.h | 13 +
fs/btrfs/free-space-tree.c | 15 +-
fs/btrfs/fs.c | 94 +
fs/btrfs/fs.h | 976 +
fs/btrfs/inode-item.c | 79 +-
fs/btrfs/inode-item.h | 20 +-
fs/btrfs/inode.c | 912 +-
fs/btrfs/ioctl.c | 972 +-
fs/btrfs/ioctl.h | 17 +
fs/btrfs/locking.c | 1 +
fs/btrfs/locking.h | 76 +
fs/btrfs/lzo.c | 4 +-
fs/btrfs/messages.c | 353 +
fs/btrfs/messages.h | 245 +
fs/btrfs/misc.h | 24 +-
fs/btrfs/ordered-data.c | 31 +-
fs/btrfs/ordered-data.h | 3 +-
fs/btrfs/orphan.c | 1 +
fs/btrfs/orphan.h | 11 +
fs/btrfs/print-tree.c | 21 +-
fs/btrfs/props.c | 8 +-
fs/btrfs/props.h | 2 +-
fs/btrfs/qgroup.c | 87 +-
fs/btrfs/qgroup.h | 11 +-
fs/btrfs/raid56.c | 2066 +-
fs/btrfs/raid56.h | 33 +-
fs/btrfs/rcu-string.h | 6 +-
fs/btrfs/ref-verify.c | 3 +
fs/btrfs/reflink.c | 30 +-
fs/btrfs/relocation.c | 94 +-
fs/btrfs/relocation.h | 23 +
fs/btrfs/root-tree.c | 24 +-
fs/btrfs/root-tree.h | 34 +
fs/btrfs/scrub.c | 75 +-
fs/btrfs/scrub.h | 16 +
fs/btrfs/send.c | 523 +-
fs/btrfs/send.h | 6 +-
fs/btrfs/space-info.c | 86 +-
fs/btrfs/space-info.h | 78 +
fs/btrfs/subpage.c | 1 +
fs/btrfs/super.c | 554 +-
fs/btrfs/super.h | 29 +
fs/btrfs/sysfs.c | 23 +-
fs/btrfs/tests/btrfs-tests.c | 3 +-
fs/btrfs/tests/extent-buffer-tests.c | 1 +
fs/btrfs/tests/extent-io-tests.c | 4 +-
fs/btrfs/tests/free-space-tree-tests.c | 3 +-
fs/btrfs/tests/inode-tests.c | 58 +-
fs/btrfs/tests/qgroup-tests.c | 52 +-
fs/btrfs/transaction.c | 92 +-
fs/btrfs/transaction.h | 22 +-
fs/btrfs/tree-checker.c | 10 +-
fs/btrfs/tree-checker.h | 35 +-
fs/btrfs/tree-defrag.c | 132 -
fs/btrfs/tree-log.c | 511 +-
fs/btrfs/tree-log.h | 5 +-
fs/btrfs/tree-mod-log.c | 36 +-
fs/btrfs/tree-mod-log.h | 4 +-
fs/btrfs/ulist.c | 38 +-
fs/btrfs/ulist.h | 2 +-
fs/btrfs/uuid-tree.c | 5 +-
fs/btrfs/uuid-tree.h | 12 +
fs/btrfs/verity.c | 6 +
fs/btrfs/verity.h | 28 +
fs/btrfs/volumes.c | 454 +-
fs/btrfs/volumes.h | 116 +-
fs/btrfs/xattr.c | 4 +
fs/btrfs/zlib.c | 6 +-
fs/btrfs/zoned.c | 27 +-
fs/btrfs/zoned.h | 1 +
fs/btrfs/zstd.c | 4 +-
fs/cachefiles/io.c | 77 +-
fs/ceph/acl.c | 3 +-
fs/ceph/addr.c | 6 +-
fs/ceph/caps.c | 25 +-
fs/ceph/dir.c | 2 +-
fs/ceph/file.c | 30 +-
fs/ceph/inode.c | 12 +-
fs/ceph/ioctl.c | 2 +-
fs/ceph/locks.c | 4 +-
fs/ceph/mdsmap.c | 2 +-
fs/ceph/super.h | 7 +-
fs/char_dev.c | 15 +-
fs/cifs/Makefile | 2 +-
fs/cifs/cifs_debug.c | 8 +
fs/cifs/cifs_dfs_ref.c | 255 +-
fs/cifs/cifs_ioctl.h | 2 +-
fs/cifs/cifs_spnego.c | 2 +-
fs/cifs/cifsacl.c | 141 +-
fs/cifs/cifsfs.c | 22 +-
fs/cifs/cifsfs.h | 8 +-
fs/cifs/cifsglob.h | 94 +-
fs/cifs/cifspdu.h | 50 +-
fs/cifs/cifsproto.h | 40 +-
fs/cifs/cifssmb.c | 206 +-
fs/cifs/connect.c | 906 +-
fs/cifs/dfs.c | 544 +
fs/cifs/dfs.h | 46 +
fs/cifs/dfs_cache.c | 276 +-
fs/cifs/dfs_cache.h | 2 +-
fs/cifs/dir.c | 21 +-
fs/cifs/dns_resolve.c | 49 +-
fs/cifs/dns_resolve.h | 4 +-
fs/cifs/file.c | 42 +-
fs/cifs/fs_context.c | 24 +-
fs/cifs/fs_context.h | 3 +-
fs/cifs/fscache.c | 4 +-
fs/cifs/inode.c | 19 +-
fs/cifs/misc.c | 85 +-
fs/cifs/sess.c | 4 +-
fs/cifs/smb2file.c | 4 +-
fs/cifs/smb2inode.c | 112 +-
fs/cifs/smb2ops.c | 211 +-
fs/cifs/smb2proto.h | 5 +-
fs/cifs/transport.c | 6 +-
fs/cifs/xattr.c | 68 +-
fs/configfs/dir.c | 2 +
fs/coredump.c | 19 +-
fs/crypto/fscrypt_private.h | 13 +-
fs/crypto/inline_crypt.c | 14 +-
fs/crypto/keyring.c | 14 +-
fs/crypto/keysetup.c | 17 +-
fs/crypto/policy.c | 12 +
fs/dax.c | 221 +-
fs/debugfs/file.c | 28 +-
fs/dlm/ast.c | 322 +-
fs/dlm/ast.h | 17 +-
fs/dlm/config.c | 4 +-
fs/dlm/debug_fs.c | 2 +-
fs/dlm/dlm_internal.h | 25 +-
fs/dlm/lock.c | 190 +-
fs/dlm/lockspace.c | 14 +-
fs/dlm/lowcomms.c | 1540 +-
fs/dlm/lowcomms.h | 6 +-
fs/dlm/main.c | 7 +-
fs/dlm/member.c | 5 +-
fs/dlm/memory.c | 30 +-
fs/dlm/memory.h | 4 +-
fs/dlm/midcomms.c | 141 +-
fs/dlm/midcomms.h | 7 +-
fs/dlm/rcom.c | 4 +-
fs/dlm/requestqueue.c | 3 +-
fs/dlm/user.c | 74 +-
fs/dlm/user.h | 2 +-
fs/ecryptfs/inode.c | 32 +
fs/efivarfs/inode.c | 4 +
fs/efivarfs/super.c | 3 +
fs/erofs/data.c | 10 +-
fs/erofs/fscache.c | 412 +-
fs/erofs/inode.c | 8 +-
fs/erofs/internal.h | 13 +-
fs/erofs/namei.c | 2 +-
fs/erofs/super.c | 2 +-
fs/erofs/xattr.c | 8 +-
fs/erofs/zdata.c | 80 +-
fs/erofs/zmap.c | 15 +-
fs/eventfd.c | 37 +-
fs/eventpoll.c | 18 +-
fs/exec.c | 50 +-
fs/exfat/dir.c | 184 +-
fs/exfat/exfat_fs.h | 56 +-
fs/exfat/file.c | 12 +-
fs/exfat/inode.c | 26 +-
fs/exfat/namei.c | 63 +-
fs/exportfs/expfs.c | 8 +-
fs/ext2/acl.c | 3 +-
fs/ext2/acl.h | 2 +-
fs/ext2/balloc.c | 12 +-
fs/ext2/dir.c | 41 +-
fs/ext2/file.c | 2 +-
fs/ext2/ialloc.c | 2 +-
fs/ext2/inode.c | 8 +-
fs/ext2/namei.c | 4 +-
fs/ext2/super.c | 2 +-
fs/ext4/acl.c | 3 +-
fs/ext4/acl.h | 2 +-
fs/ext4/ext4.h | 13 +-
fs/ext4/ext4_jbd2.c | 14 +-
fs/ext4/ext4_jbd2.h | 10 +-
fs/ext4/extents.c | 34 +-
fs/ext4/extents_status.c | 11 +-
fs/ext4/fast_commit.c | 205 +-
fs/ext4/fast_commit.h | 3 +-
fs/ext4/file.c | 2 +-
fs/ext4/ialloc.c | 8 +-
fs/ext4/indirect.c | 9 +-
fs/ext4/inline.c | 3 +-
fs/ext4/inode.c | 254 +-
fs/ext4/ioctl.c | 24 +-
fs/ext4/mballoc.c | 10 +-
fs/ext4/mmp.c | 8 +-
fs/ext4/move_extent.c | 52 +-
fs/ext4/namei.c | 51 +-
fs/ext4/orphan.c | 2 +-
fs/ext4/page-io.c | 44 +-
fs/ext4/readpage.c | 13 +-
fs/ext4/resize.c | 36 +-
fs/ext4/super.c | 67 +-
fs/ext4/verity.c | 2 +-
fs/ext4/xattr.c | 22 +-
fs/f2fs/acl.c | 4 +-
fs/f2fs/acl.h | 2 +-
fs/f2fs/checkpoint.c | 9 +-
fs/f2fs/compress.c | 112 +-
fs/f2fs/data.c | 107 +-
fs/f2fs/debug.c | 131 +-
fs/f2fs/dir.c | 36 +-
fs/f2fs/extent_cache.c | 693 +-
fs/f2fs/f2fs.h | 278 +-
fs/f2fs/file.c | 50 +-
fs/f2fs/gc.c | 81 +-
fs/f2fs/inode.c | 20 +-
fs/f2fs/namei.c | 395 +-
fs/f2fs/node.c | 19 +-
fs/f2fs/node.h | 3 +-
fs/f2fs/recovery.c | 4 +-
fs/f2fs/segment.c | 209 +-
fs/f2fs/segment.h | 6 -
fs/f2fs/shrinker.c | 25 +-
fs/f2fs/super.c | 126 +-
fs/f2fs/sysfs.c | 164 +-
fs/fat/inode.c | 9 +-
fs/fat/nfs.c | 4 +-
fs/file.c | 11 +-
fs/fs-writeback.c | 47 +-
fs/fs_parser.c | 3 +-
fs/fscache/cookie.c | 8 +
fs/fscache/io.c | 2 +-
fs/fscache/volume.c | 7 +-
fs/fuse/acl.c | 5 +-
fs/fuse/cuse.c | 5 +-
fs/fuse/dev.c | 62 +-
fs/fuse/dir.c | 47 +-
fs/fuse/file.c | 82 +-
fs/fuse/fuse_i.h | 6 +-
fs/fuse/ioctl.c | 4 +-
fs/fuse/readdir.c | 4 +-
fs/gfs2/acl.c | 3 +-
fs/gfs2/acl.h | 2 +-
fs/gfs2/aops.c | 2 -
fs/gfs2/bmap.c | 3 -
fs/gfs2/file.c | 3 +-
fs/gfs2/glock.c | 269 +-
fs/gfs2/glock.h | 65 +-
fs/gfs2/glops.c | 44 +-
fs/gfs2/incore.h | 1 -
fs/gfs2/inode.c | 70 +-
fs/gfs2/meta_io.c | 6 +
fs/gfs2/super.c | 84 +-
fs/gfs2/xattr.c | 26 +-
fs/hfs/inode.c | 4 +-
fs/hfs/trans.c | 2 +-
fs/hfsplus/hfsplus_fs.h | 2 +
fs/hfsplus/inode.c | 6 +-
fs/hfsplus/options.c | 4 +
fs/hpfs/file.c | 9 +-
fs/hugetlbfs/inode.c | 28 +-
fs/inode.c | 75 +-
fs/internal.h | 35 +-
fs/iomap/buffered-io.c | 254 +-
fs/iomap/direct-io.c | 3 +-
fs/iomap/iter.c | 19 +-
fs/jbd2/commit.c | 5 +-
fs/jffs2/acl.c | 3 +-
fs/jffs2/acl.h | 2 +-
fs/jffs2/dir.c | 2 +-
fs/jffs2/file.c | 2 +-
fs/jffs2/fs.c | 2 +-
fs/jfs/acl.c | 3 +-
fs/jfs/file.c | 4 +-
fs/jfs/inode.c | 7 +-
fs/jfs/jfs_acl.h | 2 +-
fs/jfs/jfs_dmap.c | 27 +-
fs/jfs/jfs_extent.h | 2 -
fs/jfs/jfs_imap.c | 2 +-
fs/jfs/jfs_mount.c | 4 +
fs/jfs/jfs_umount.c | 4 +-
fs/jfs/jfs_xattr.h | 2 +-
fs/jfs/jfs_xtree.h | 4 -
fs/jfs/namei.c | 4 +-
fs/jfs/super.c | 6 +-
fs/kernfs/dir.c | 106 +-
fs/kernfs/file.c | 18 +-
fs/kernfs/inode.c | 12 +-
fs/kernfs/kernfs-internal.h | 2 +-
fs/kernfs/mount.c | 10 +-
fs/kernfs/symlink.c | 2 +-
fs/ksmbd/ksmbd_netlink.h | 1 +
fs/ksmbd/mgmt/user_session.c | 8 +-
fs/ksmbd/server.c | 20 +-
fs/ksmbd/smb2ops.c | 10 +-
fs/ksmbd/smb2pdu.c | 28 +-
fs/ksmbd/smb2pdu.h | 2 +-
fs/ksmbd/smb_common.c | 2 +-
fs/ksmbd/smb_common.h | 12 +-
fs/ksmbd/smbacl.c | 6 +-
fs/ksmbd/vfs.c | 29 +-
fs/ksmbd/vfs.h | 4 +-
fs/libfs.c | 22 +-
fs/lockd/svc4proc.c | 1 +
fs/lockd/svclock.c | 17 +-
fs/lockd/svcproc.c | 1 +
fs/lockd/svcsubs.c | 21 +-
fs/locks.c | 50 +-
fs/mbcache.c | 14 +-
fs/namei.c | 49 +-
fs/namespace.c | 179 +-
fs/netfs/io.c | 6 +-
fs/nfs/Kconfig | 8 +-
fs/nfs/delegation.c | 2 +-
fs/nfs/dir.c | 32 +-
fs/nfs/flexfilelayout/flexfilelayout.c | 4 +-
fs/nfs/fs_context.c | 6 +
fs/nfs/fscache.c | 4 +-
fs/nfs/inode.c | 3 +-
fs/nfs/internal.h | 6 +-
fs/nfs/namespace.c | 4 +-
fs/nfs/nfs3_fs.h | 2 +-
fs/nfs/nfs3acl.c | 9 +-
fs/nfs/nfs3proc.c | 4 +-
fs/nfs/nfs42xdr.c | 9 +-
fs/nfs/nfs4_fs.h | 1 +
fs/nfs/nfs4file.c | 12 +-
fs/nfs/nfs4idmap.c | 2 +-
fs/nfs/nfs4proc.c | 57 +-
fs/nfs/nfs4state.c | 7 +-
fs/nfs/nfs4trace.h | 10 +-
fs/nfs/nfs4xdr.c | 22 +-
fs/nfs/nfstrace.h | 6 +-
fs/nfs/pagelist.c | 2 +-
fs/nfs/sysfs.c | 6 +-
fs/nfs/unlink.c | 1 +
fs/nfs/write.c | 4 +-
fs/nfsd/Kconfig | 19 +-
fs/nfsd/Makefile | 5 +-
fs/nfsd/blocklayout.c | 1 +
fs/nfsd/blocklayoutxdr.c | 1 +
fs/nfsd/export.h | 1 -
fs/nfsd/filecache.c | 499 +-
fs/nfsd/filecache.h | 4 +-
fs/nfsd/flexfilelayout.c | 1 +
fs/nfsd/nfs2acl.c | 18 +-
fs/nfsd/nfs3acl.c | 38 +-
fs/nfsd/nfs3proc.c | 10 +-
fs/nfsd/nfs4acl.c | 4 +-
fs/nfsd/nfs4callback.c | 78 +-
fs/nfsd/nfs4idmap.c | 1 +
fs/nfsd/nfs4proc.c | 69 +-
fs/nfsd/nfs4state.c | 347 +-
fs/nfsd/nfs4xdr.c | 771 +-
fs/nfsd/nfsctl.c | 6 +-
fs/nfsd/nfsd.h | 3 +-
fs/nfsd/nfsfh.h | 10 +-
fs/nfsd/nfsproc.c | 66 +-
fs/nfsd/nfssvc.c | 8 +-
fs/nfsd/state.h | 11 +-
fs/nfsd/trace.h | 191 +-
fs/nfsd/vfs.c | 102 +-
fs/nfsd/vfs.h | 4 +-
fs/nfsd/xdr4.h | 5 +
fs/nfsd/xdr4cb.h | 6 +
fs/nilfs2/dat.c | 7 +
fs/nilfs2/segment.c | 2 +-
fs/nilfs2/sufile.c | 8 +
fs/nilfs2/the_nilfs.c | 73 +-
fs/ntfs3/attrib.c | 392 +-
fs/ntfs3/attrlist.c | 5 +
fs/ntfs3/bitfunc.c | 4 +-
fs/ntfs3/bitmap.c | 168 +-
fs/ntfs3/dir.c | 4 +-
fs/ntfs3/file.c | 207 +-
fs/ntfs3/frecord.c | 40 +-
fs/ntfs3/fslog.c | 62 +-
fs/ntfs3/fsntfs.c | 190 +-
fs/ntfs3/index.c | 127 +-
fs/ntfs3/inode.c | 203 +-
fs/ntfs3/namei.c | 242 +-
fs/ntfs3/ntfs.h | 6 +-
fs/ntfs3/ntfs_fs.h | 45 +-
fs/ntfs3/record.c | 13 +
fs/ntfs3/run.c | 28 +-
fs/ntfs3/super.c | 143 +-
fs/ntfs3/upcase.c | 12 +
fs/ntfs3/xattr.c | 167 +-
fs/ocfs2/acl.c | 3 +-
fs/ocfs2/acl.h | 2 +-
fs/ocfs2/cluster/heartbeat.c | 38 +-
fs/ocfs2/cluster/heartbeat.h | 2 +-
fs/ocfs2/cluster/netdebug.c | 2 +-
fs/ocfs2/cluster/nodemanager.c | 2 +-
fs/ocfs2/cluster/tcp.c | 9 +-
fs/ocfs2/dlm/dlmcommon.h | 2 +-
fs/ocfs2/dlm/dlmdomain.c | 19 +-
fs/ocfs2/dlm/dlmmaster.c | 30 +-
fs/ocfs2/dlm/dlmrecovery.c | 2 +-
fs/ocfs2/file.c | 8 +-
fs/ocfs2/journal.c | 2 +-
fs/ocfs2/journal.h | 1 +
fs/ocfs2/namei.c | 2 +-
fs/ocfs2/ocfs2.h | 3 +-
fs/ocfs2/stack_o2cb.c | 6 +-
fs/ocfs2/stackglue.c | 8 +-
fs/ocfs2/super.c | 5 +-
fs/omfs/file.c | 7 +-
fs/open.c | 10 +-
fs/orangefs/acl.c | 47 +-
fs/orangefs/file.c | 1 -
fs/orangefs/inode.c | 64 +-
fs/orangefs/namei.c | 2 +-
fs/orangefs/orangefs-debugfs.c | 29 +-
fs/orangefs/orangefs-kernel.h | 7 +-
fs/orangefs/orangefs-mod.c | 8 +-
fs/orangefs/orangefs-sysfs.c | 71 +-
fs/overlayfs/Kconfig | 2 +-
fs/overlayfs/copy_up.c | 38 +
fs/overlayfs/dir.c | 68 +-
fs/overlayfs/export.c | 8 +-
fs/overlayfs/file.c | 31 +-
fs/overlayfs/inode.c | 187 +-
fs/overlayfs/namei.c | 12 +-
fs/overlayfs/overlayfs.h | 53 +-
fs/overlayfs/readdir.c | 58 +-
fs/overlayfs/super.c | 114 +-
fs/overlayfs/util.c | 15 +-
fs/pnode.c | 2 +-
fs/posix_acl.c | 727 +-
fs/proc/cmdline.c | 6 +-
fs/proc/consoles.c | 21 +-
fs/proc/fd.c | 45 +
fs/proc/kcore.c | 33 +-
fs/proc/meminfo.c | 2 +-
fs/proc/page.c | 3 +-
fs/proc/task_mmu.c | 16 +-
fs/proc/vmcore.c | 7 +-
fs/pstore/Kconfig | 1 +
fs/pstore/platform.c | 25 +-
fs/pstore/pmsg.c | 9 +-
fs/pstore/ram.c | 46 +-
fs/pstore/ram_core.c | 20 +-
fs/pstore/ram_internal.h | 98 +
fs/pstore/zone.c | 2 +-
fs/quota/dquot.c | 2 +
fs/read_write.c | 31 +-
fs/reiserfs/acl.h | 6 +-
fs/reiserfs/file.c | 2 +-
fs/reiserfs/inode.c | 2 +-
fs/reiserfs/namei.c | 8 +-
fs/reiserfs/xattr_acl.c | 11 +-
fs/reiserfs/xattr_security.c | 2 +-
fs/remap_range.c | 9 +-
fs/seq_file.c | 2 +-
fs/splice.c | 10 +-
fs/squashfs/Kconfig | 51 +-
fs/squashfs/block.c | 2 +-
fs/squashfs/decompressor.c | 2 +-
fs/squashfs/decompressor_multi.c | 20 +-
fs/squashfs/decompressor_multi_percpu.c | 23 +-
fs/squashfs/decompressor_single.c | 15 +-
fs/squashfs/squashfs.h | 23 +-
fs/squashfs/squashfs_fs_sb.h | 4 +-
fs/squashfs/super.c | 102 +-
fs/stat.c | 7 +-
fs/super.c | 60 +-
fs/sysv/itree.c | 2 +-
fs/ubifs/debug.c | 8 +-
fs/ubifs/lpt_commit.c | 14 +-
fs/ubifs/tnc_commit.c | 2 +-
fs/udf/inode.c | 83 +-
fs/udf/namei.c | 8 +-
fs/udf/super.c | 4 +-
fs/udf/truncate.c | 48 +-
fs/udf/udf_sb.h | 6 +-
fs/verity/fsverity_private.h | 5 +
fs/verity/hash_algs.c | 6 +
fs/verity/measure.c | 19 +-
fs/verity/verify.c | 12 +-
fs/xattr.c | 440 +-
fs/xfs/libxfs/xfs_alloc.c | 2 +-
fs/xfs/libxfs/xfs_bmap.c | 8 +-
fs/xfs/libxfs/xfs_btree.h | 1 -
fs/xfs/libxfs/xfs_errortag.h | 18 +-
fs/xfs/libxfs/xfs_ialloc.c | 2 +-
fs/xfs/libxfs/xfs_refcount.c | 146 +-
fs/xfs/libxfs/xfs_sb.c | 4 +-
fs/xfs/scrub/agheader.c | 47 +-
fs/xfs/scrub/agheader_repair.c | 81 +-
fs/xfs/scrub/attr.c | 11 +-
fs/xfs/scrub/bitmap.c | 11 +-
fs/xfs/scrub/bmap.c | 147 +-
fs/xfs/scrub/btree.c | 14 +-
fs/xfs/scrub/common.c | 48 +-
fs/xfs/scrub/common.h | 2 +-
fs/xfs/scrub/dabtree.c | 4 +-
fs/xfs/scrub/dir.c | 10 +-
fs/xfs/scrub/fscounters.c | 109 +-
fs/xfs/scrub/inode.c | 2 +-
fs/xfs/scrub/quota.c | 8 +-
fs/xfs/scrub/refcount.c | 12 +-
fs/xfs/scrub/repair.c | 51 +-
fs/xfs/scrub/scrub.c | 6 +-
fs/xfs/scrub/scrub.h | 18 +-
fs/xfs/scrub/symlink.c | 2 +-
fs/xfs/xfs_acl.c | 3 +-
fs/xfs/xfs_acl.h | 2 +-
fs/xfs/xfs_aops.c | 32 +-
fs/xfs/xfs_bmap_util.c | 10 +-
fs/xfs/xfs_bmap_util.h | 2 +-
fs/xfs/xfs_buf.c | 1 +
fs/xfs/xfs_buf_item.c | 2 +
fs/xfs/xfs_error.c | 48 +-
fs/xfs/xfs_error.h | 13 +
fs/xfs/xfs_file.c | 2 +-
fs/xfs/xfs_fsmap.c | 4 +-
fs/xfs/xfs_icache.c | 6 +
fs/xfs/xfs_inode.c | 2 +-
fs/xfs/xfs_ioctl.c | 4 -
fs/xfs/xfs_iomap.c | 191 +-
fs/xfs/xfs_iomap.h | 6 +-
fs/xfs/xfs_iops.c | 20 +-
fs/xfs/xfs_log.c | 46 +-
fs/xfs/xfs_mount.c | 15 +
fs/xfs/xfs_pnfs.c | 6 +-
fs/xfs/xfs_qm.c | 16 +-
fs/xfs/xfs_reflink.c | 8 +-
fs/xfs/xfs_rtalloc.c | 60 +-
fs/xfs/xfs_super.c | 2 +-
fs/xfs/xfs_trace.c | 2 +
fs/xfs/xfs_trace.h | 86 +
fs/xfs/xfs_trans_ail.c | 4 +-
fs/xfs/xfs_xattr.c | 2 +-
fs/zonefs/super.c | 23 +-
fs/zonefs/zonefs.h | 6 +-
include/acpi/acconfig.h | 2 +
include/acpi/acpi_bus.h | 2 +-
include/acpi/acpixf.h | 132 +-
include/acpi/actbl1.h | 151 +-
include/acpi/actbl2.h | 162 +-
include/acpi/actypes.h | 10 +-
include/acpi/acuuid.h | 3 +-
include/acpi/battery.h | 4 +-
include/acpi/ghes.h | 34 +-
include/acpi/processor.h | 10 +
include/acpi/video.h | 2 +
include/asm-generic/gpio.h | 55 +-
include/asm-generic/hyperv-tlfs.h | 5 +
include/asm-generic/io.h | 80 +-
include/asm-generic/mshyperv.h | 11 +-
include/asm-generic/msi.h | 4 +-
include/asm-generic/tlb.h | 42 +-
include/asm-generic/vmlinux.lds.h | 252 +-
include/clocksource/hyperv_timer.h | 11 +-
include/clocksource/timer-ti-dm.h | 2 -
include/crypto/acompress.h | 1 +
include/crypto/akcipher.h | 7 +-
include/crypto/algapi.h | 43 +-
include/crypto/aria.h | 2 +-
include/crypto/gcm.h | 22 +
include/crypto/internal/acompress.h | 2 +
include/crypto/internal/aead.h | 22 +
include/crypto/internal/akcipher.h | 26 +-
include/crypto/internal/hash.h | 30 +-
include/crypto/internal/kpp.h | 30 +-
include/crypto/internal/scompress.h | 3 +-
include/crypto/internal/skcipher.h | 30 +
include/crypto/kpp.h | 9 +-
include/crypto/scatterwalk.h | 1 -
include/drm/display/drm_dp.h | 15 +-
include/drm/drm_accel.h | 97 +
include/drm/drm_connector.h | 18 +-
include/drm/drm_device.h | 3 +
include/drm/drm_drv.h | 8 +
include/drm/drm_edid.h | 2 +
include/drm/drm_file.h | 21 +-
include/dt-bindings/arm/qcom,ids.h | 170 +
include/dt-bindings/clock/imx8mn-clock.h | 24 +-
include/dt-bindings/clock/imx8mp-clock.h | 12 +-
include/dt-bindings/clock/imx93-clock.h | 4 -
include/dt-bindings/clock/ingenic,jz4755-cgu.h | 49 +
include/dt-bindings/clock/ingenic,x1000-cgu.h | 4 +
include/dt-bindings/clock/qcom,dispcc-sc8280xp.h | 100 +
include/dt-bindings/clock/qcom,dispcc-sm8250.h | 1 +
include/dt-bindings/clock/qcom,gcc-ipq8074.h | 14 +
include/dt-bindings/clock/qcom,sm6375-dispcc.h | 42 +
include/dt-bindings/clock/qcom,sm8550-gcc.h | 231 +
include/dt-bindings/clock/rk3399-cru.h | 6 +-
include/dt-bindings/clock/rockchip,rk3588-cru.h | 766 +
include/dt-bindings/clock/suniv-ccu-f1c100s.h | 2 +
include/dt-bindings/clock/tegra234-clock.h | 639 +-
include/dt-bindings/firmware/imx/rsrc.h | 302 +-
include/dt-bindings/iio/qcom,spmi-adc7-pm8350.h | 90 +-
include/dt-bindings/mailbox/mediatek,mt8188-gce.h | 967 +
include/dt-bindings/media/video-interfaces.h | 16 +
.../dt-bindings/memory/mediatek,mt8365-larb-port.h | 90 +
include/dt-bindings/memory/tegra234-mc.h | 440 +-
include/dt-bindings/phy/phy-qcom-qmp.h | 20 +
include/dt-bindings/pinctrl/mt6795-pinfunc.h | 4 +-
include/dt-bindings/power/qcom-rpmpd.h | 42 +
include/dt-bindings/power/tegra234-powergate.h | 15 +
include/dt-bindings/power/xlnx-zynqmp-power.h | 6 +
include/dt-bindings/reset/mt8188-resets.h | 36 +
include/dt-bindings/reset/rockchip,rk3588-cru.h | 754 +
include/dt-bindings/reset/tegra234-reset.h | 111 +-
include/kunit/assert.h | 74 +-
include/kunit/test-bug.h | 53 +-
include/kunit/test.h | 118 +-
include/kunit/visibility.h | 33 +
include/kvm/arm_pmu.h | 15 +-
include/kvm/arm_vgic.h | 1 +
include/linux/acpi.h | 13 +
include/linux/acpi_apmt.h | 19 +
include/linux/arm_ffa.h | 85 +-
include/linux/ata.h | 31 -
include/linux/avf/virtchnl.h | 14 +-
include/linux/backing-dev.h | 10 +
include/linux/bcm47xx_nvram.h | 6 +
include/linux/bcma/bcma_driver_chipcommon.h | 2 +-
include/linux/bio.h | 5 +-
include/linux/blk-crypto-profile.h | 12 -
include/linux/blk-crypto.h | 14 +-
include/linux/blk-mq.h | 9 +-
include/linux/blk_types.h | 7 -
include/linux/blkdev.h | 32 +-
include/linux/bpf.h | 357 +-
include/linux/bpf_local_storage.h | 17 +-
include/linux/bpf_lsm.h | 6 +
include/linux/bpf_types.h | 1 +
include/linux/bpf_verifier.h | 66 +-
include/linux/btf.h | 150 +-
include/linux/btf_ids.h | 4 +-
include/linux/build_bug.h | 9 +
include/linux/can/platform/sja1000.h | 2 +-
include/linux/cgroup-defs.h | 4 +
include/linux/cgroup.h | 99 +-
include/linux/cgroup_refcnt.h | 96 +
include/linux/clk-provider.h | 2 +
include/linux/compat.h | 2 -
include/linux/compiler-gcc.h | 21 +-
include/linux/compiler.h | 1 +
include/linux/compiler_types.h | 3 +-
include/linux/configfs.h | 3 -
include/linux/console.h | 129 +-
include/linux/container_of.h | 24 +-
include/linux/coredump.h | 2 +-
include/linux/cpufreq.h | 28 +-
include/linux/cpuhotplug.h | 2 +
include/linux/crypto.h | 5 -
include/linux/cxl_err.h | 22 +
include/linux/damon.h | 7 +-
include/linux/dax.h | 2 +
include/linux/debugfs.h | 19 +-
include/linux/devfreq.h | 7 +-
include/linux/device.h | 24 +-
include/linux/device/class.h | 8 +-
include/linux/dsa/8021q.h | 31 +-
include/linux/efi.h | 55 +-
include/linux/elfcore.h | 13 +-
include/linux/ethtool.h | 25 +-
include/linux/eventfd.h | 9 +-
include/linux/evm.h | 49 +
include/linux/fault-inject.h | 7 +-
include/linux/fb.h | 1 -
include/linux/filter.h | 23 +-
include/linux/firmware/xlnx-zynqmp.h | 79 +
include/linux/fixp-arith.h | 1 +
include/linux/fortify-string.h | 148 +-
include/linux/fs.h | 103 +-
include/linux/fs_context.h | 16 +-
include/linux/fs_parser.h | 1 +
include/linux/fscache.h | 2 +-
include/linux/ftrace.h | 47 +-
include/linux/gfp.h | 18 +-
include/linux/gpio.h | 2 +-
include/linux/gpio/aspeed.h | 4 +
include/linux/gpio/consumer.h | 21 -
include/linux/gpio/driver.h | 4 +-
include/linux/gpio/gpio-reg.h | 4 +
include/linux/gpio/machine.h | 1 -
include/linux/gpio/property.h | 11 +
include/linux/highmem.h | 26 +
include/linux/hisi_acc_qm.h | 14 +-
include/linux/host1x.h | 2 +
include/linux/hpet.h | 2 +-
include/linux/htcpld.h | 23 -
include/linux/hugetlb.h | 143 +-
include/linux/hugetlb_cgroup.h | 86 +-
include/linux/hw_random.h | 2 +-
include/linux/hwmon-sysfs.h | 1 +
include/linux/hyperv.h | 4 +-
include/linux/i3c/device.h | 5 +-
include/linux/ieee80211.h | 84 +-
include/linux/ieee802154.h | 24 +
include/linux/if_bridge.h | 1 +
include/linux/if_vlan.h | 9 +-
include/linux/iio/buffer_impl.h | 2 +-
include/linux/iio/common/st_sensors.h | 4 -
include/linux/iio/gyro/itg3200.h | 2 +
include/linux/iio/iio-opaque.h | 2 +
include/linux/iio/iio.h | 5 +-
include/linux/iio/imu/adis.h | 11 +-
include/linux/iio/kfifo_buf.h | 3 +-
include/linux/iio/sysfs.h | 11 +
include/linux/iio/triggered_buffer.h | 6 +-
include/linux/ima.h | 24 +
include/linux/init.h | 3 +
include/linux/intel-svm.h | 13 -
include/linux/interval_tree.h | 58 +
include/linux/io-mapping.h | 4 +-
include/linux/io-pgtable.h | 6 -
include/linux/io_uring.h | 13 +-
include/linux/io_uring_types.h | 5 +
include/linux/iomap.h | 47 +-
include/linux/iommu.h | 170 +-
include/linux/iommufd.h | 98 +
include/linux/ioport.h | 4 +-
include/linux/irqdomain.h | 143 +-
include/linux/irqdomain_defs.h | 31 +
include/linux/irqreturn.h | 8 +-
include/linux/jbd2.h | 2 +-
include/linux/jump_label.h | 21 +-
include/linux/kallsyms.h | 9 +
include/linux/kasan.h | 5 +-
include/linux/kcov.h | 2 +-
include/linux/kernel-page-flags.h | 1 +
include/linux/kexec.h | 7 +-
include/linux/khugepaged.h | 6 +
include/linux/kobject.h | 18 +-
include/linux/kobject_ns.h | 4 +-
include/linux/kvm_dirty_ring.h | 20 +-
include/linux/kvm_host.h | 110 +-
include/linux/kvm_types.h | 1 +
include/linux/libata.h | 7 +-
include/linux/libnvdimm.h | 7 +
include/linux/linkage.h | 4 +-
include/linux/lru_cache.h | 3 -
include/linux/lsm_hook_defs.h | 9 +-
include/linux/lsm_hooks.h | 263 +-
include/linux/mISDNif.h | 2 +-
include/linux/math64.h | 26 +-
include/linux/mbcache.h | 9 +-
include/linux/mdio.h | 13 +
include/linux/memcontrol.h | 31 +-
include/linux/memory-tiers.h | 1 -
include/linux/memory.h | 18 +-
include/linux/mempool.h | 5 +
include/linux/memregion.h | 38 +
include/linux/mfd/dm355evm_msp.h | 79 -
include/linux/mfd/max8997.h | 3 -
include/linux/mfd/palmas.h | 1 -
include/linux/mfd/pcf50633/core.h | 6 +-
include/linux/mfd/rn5t618.h | 9 +
include/linux/mfd/stmfx.h | 2 -
include/linux/mfd/tmio.h | 1 -
include/linux/mfd/tps65219.h | 345 +
include/linux/mfd/twl6040.h | 32 +-
include/linux/minmax.h | 26 +-
include/linux/mlx5/device.h | 13 +-
include/linux/mlx5/driver.h | 3 +-
include/linux/mlx5/fs.h | 12 +
include/linux/mlx5/mlx5_ifc.h | 141 +-
include/linux/mlx5/vport.h | 2 +
include/linux/mm.h | 309 +-
include/linux/mm_types.h | 162 +-
include/linux/mm_types_task.h | 13 -
include/linux/mmc/mmc.h | 2 +-
include/linux/mmzone.h | 26 +-
include/linux/mnt_idmapping.h | 88 +-
include/linux/module.h | 10 +-
include/linux/moduleloader.h | 3 +
include/linux/mount.h | 9 +-
include/linux/msi.h | 357 +-
include/linux/msi_api.h | 73 +
include/linux/mtd/nand.h | 1 -
include/linux/mtd/spi-nor.h | 3 +
include/linux/mv643xx_eth.h | 2 +
include/linux/net.h | 1 +
include/linux/netdevice.h | 103 +-
include/linux/netfilter/ipset/ip_set.h | 10 +
include/linux/netfs.h | 8 +
include/linux/netlink.h | 29 +-
include/linux/nfs4.h | 13 +
include/linux/nfs_fs.h | 1 +
include/linux/nodemask.h | 2 +-
include/linux/nsproxy.h | 1 +
include/linux/nvme.h | 6 +-
include/linux/of.h | 4 +-
include/linux/of_address.h | 11 +
include/linux/of_device.h | 4 +-
include/linux/of_gpio.h | 2 +-
include/linux/of_net.h | 6 +
include/linux/overflow.h | 47 +
include/linux/page-flags.h | 26 +-
include/linux/pagemap.h | 9 +-
include/linux/pagewalk.h | 5 +
include/linux/panic.h | 1 +
include/linux/pci.h | 50 +-
include/linux/pe.h | 9 +-
include/linux/percpu.h | 9 +-
include/linux/percpu_counter.h | 7 +-
include/linux/perf/arm_pmu.h | 3 +-
include/linux/perf_event.h | 125 +-
include/linux/pgtable.h | 119 +-
include/linux/phy.h | 7 +
include/linux/phy/phy-mipi-dphy.h | 3 +
include/linux/phylink.h | 32 +
include/linux/pinctrl/consumer.h | 31 +-
include/linux/pinctrl/devinfo.h | 6 +-
include/linux/pinctrl/machine.h | 8 +-
include/linux/pinctrl/pinconf-generic.h | 29 +-
include/linux/pinctrl/pinctrl.h | 20 +-
include/linux/pinctrl/pinmux.h | 5 +-
include/linux/pktcdvd.h | 197 -
include/linux/platform_data/gpmc-omap.h | 8 +
include/linux/platform_data/gsc_hwmon.h | 5 +-
include/linux/platform_data/simplefb.h | 1 +
include/linux/platform_data/st33zp24.h | 16 -
include/linux/platform_data/x86/pwm-lpss.h | 33 +
include/linux/pm_domain.h | 7 +
include/linux/posix_acl.h | 41 +-
include/linux/posix_acl_xattr.h | 47 +-
include/linux/prandom.h | 21 +-
include/linux/proc_fs.h | 2 +
include/linux/property.h | 94 +-
include/linux/psi_types.h | 4 +
include/linux/pstore_ram.h | 99 -
include/linux/ptp_clock_kernel.h | 60 +-
include/linux/ptrace.h | 9 -
include/linux/pwm.h | 9 +-
include/linux/pxa2xx_ssp.h | 1 +
include/linux/raid/pq.h | 8 -
include/linux/random.h | 104 +-
include/linux/rcupdate.h | 26 +
include/linux/rcutiny.h | 8 +-
include/linux/rcutree.h | 4 +-
include/linux/regmap.h | 49 +
include/linux/regset.h | 15 +-
include/linux/regulator/consumer.h | 10 +
include/linux/regulator/driver.h | 3 +-
include/linux/regulator/mt6357-regulator.h | 51 +
include/linux/regulator/userspace-consumer.h | 1 +
include/linux/resctrl.h | 6 +-
include/linux/rhashtable.h | 61 +-
include/linux/ring_buffer.h | 3 +-
include/linux/rtnetlink.h | 9 +-
include/linux/sbitmap.h | 16 +-
include/linux/sched.h | 8 +-
include/linux/sched/sysctl.h | 6 -
include/linux/sched/task.h | 2 +-
include/linux/sched/user.h | 2 +-
include/linux/scs.h | 18 +
include/linux/sctp.h | 5 +
include/linux/seccomp.h | 1 +
include/linux/security.h | 46 +-
include/linux/sed-opal.h | 3 +-
include/linux/serdev.h | 13 +-
include/linux/serial_core.h | 90 +-
include/linux/set_memory.h | 10 +
include/linux/sfp.h | 189 +-
include/linux/shrinker.h | 3 +
include/linux/skbuff.h | 26 +-
include/linux/skmsg.h | 1 +
include/linux/slab.h | 75 +-
include/linux/slab_def.h | 2 +
include/linux/slub_def.h | 8 +-
include/linux/smc911x.h | 14 -
include/linux/soc/mediatek/mtk-mmsys.h | 7 +
include/linux/soc/mediatek/mtk_wed.h | 121 +-
include/linux/soc/qcom/llcc-qcom.h | 12 +
include/linux/soc/qcom/smd-rpm.h | 2 +
include/linux/socket.h | 5 +-
include/linux/soundwire/sdw_intel.h | 46 +-
include/linux/spi/spi.h | 54 +-
include/linux/srcu.h | 72 +-
include/linux/srcutree.h | 5 +-
include/linux/stackprotector.h | 19 +
include/linux/static_call.h | 2 +
include/linux/stmmac.h | 1 +
include/linux/string.h | 2 +-
include/linux/sunrpc/svc.h | 8 -
include/linux/swap.h | 27 +-
include/linux/swapops.h | 81 +-
include/linux/syscalls.h | 2 +
include/linux/tcp.h | 1 +
include/linux/thermal.h | 1 +
include/linux/time_namespace.h | 6 +
include/linux/timer.h | 35 +-
include/linux/timerqueue.h | 2 +-
include/linux/trace_events.h | 4 +-
include/linux/trace_seq.h | 3 +-
include/linux/tty_buffer.h | 5 +-
include/linux/tty_flip.h | 4 +-
include/linux/udp.h | 8 +-
include/linux/uio.h | 9 +
include/linux/usb.h | 32 +-
include/linux/usb/hcd.h | 3 +
include/linux/usb/typec.h | 4 +
include/linux/vfio.h | 70 +-
include/linux/virtio_net.h | 9 +
include/linux/vm_event_item.h | 3 +
include/linux/wait.h | 2 +-
include/linux/wl12xx.h | 44 -
include/linux/wwan.h | 2 +
include/linux/xattr.h | 50 +-
include/linux/zsmalloc.h | 2 +
include/linux/zstd_lib.h | 479 +-
include/media/davinci/vpbe.h | 2 +-
include/media/dvb_ringbuffer.h | 2 +-
include/media/dvbdev.h | 38 +-
include/media/frame_vector.h | 2 +-
include/media/i2c/ov9650.h | 24 -
include/media/i2c/s5c73m3.h | 15 -
include/media/i2c/s5k4ecgx.h | 33 -
include/media/i2c/ths7303.h | 4 +-
include/media/media-entity.h | 4 +-
include/media/v4l2-mediabus.h | 17 +-
include/media/v4l2-subdev.h | 11 +-
include/media/videobuf2-core.h | 14 +
include/media/videobuf2-memops.h | 3 +-
include/memory/renesas-rpc-if.h | 1 +
include/misc/cxl.h | 2 +-
include/net/9p/9p.h | 2 +
include/net/act_api.h | 11 +-
include/net/af_rxrpc.h | 2 +-
include/net/bluetooth/hci.h | 33 +-
include/net/bluetooth/hci_core.h | 8 +-
include/net/bond_alb.h | 4 +-
include/net/bonding.h | 4 -
include/net/cfg80211-wext.h | 20 +-
include/net/cfg80211.h | 15 +-
include/net/cfg802154.h | 38 +-
include/net/dcbnl.h | 4 +
include/net/devlink.h | 118 +-
include/net/dropreason.h | 14 +
include/net/dsa.h | 76 +-
include/net/dst.h | 5 +-
include/net/dst_metadata.h | 1 +
include/net/flow_offload.h | 8 +
include/net/fq_impl.h | 16 +-
include/net/genetlink.h | 79 +-
include/net/geneve.h | 2 +-
include/net/ieee802154_netdev.h | 8 +
include/net/inet_frag.h | 6 +-
include/net/inet_hashtables.h | 3 +-
include/net/ip_vs.h | 171 +-
include/net/ipv6.h | 33 +
include/net/ipv6_frag.h | 3 +-
include/net/mac80211.h | 78 +-
include/net/mac802154.h | 31 -
.../ethernet/microsoft => include/net}/mana/gdma.h | 163 +-
.../microsoft => include/net}/mana/hw_channel.h | 0
.../ethernet/microsoft => include/net}/mana/mana.h | 25 +-
include/net/mana/mana_auxiliary.h | 10 +
.../microsoft => include/net}/mana/shm_channel.h | 0
include/net/mptcp.h | 12 +-
include/net/mrp.h | 1 +
include/net/neighbour.h | 2 +-
include/net/net_namespace.h | 30 +-
include/net/netfilter/nf_conntrack_core.h | 3 +-
include/net/netfilter/nf_conntrack_helper.h | 5 +
include/net/netfilter/nf_nat.h | 4 +
include/net/netfilter/nf_tables.h | 15 +-
include/net/netfilter/nf_tables_core.h | 36 +-
include/net/netfilter/nf_tables_ipv4.h | 4 +
include/net/netfilter/nf_tables_ipv6.h | 6 +-
include/net/netfilter/nft_fib.h | 2 +-
include/net/netfilter/nft_meta.h | 10 +-
include/net/netfilter/nft_reject.h | 3 +-
include/net/netlink.h | 32 +
include/net/netns/ipv4.h | 8 +
include/net/netns/sctp.h | 4 +
include/net/netns/xdp.h | 2 +-
include/net/nl802154.h | 43 +
include/net/ping.h | 3 -
include/net/rtnetlink.h | 5 +-
include/net/sctp/checksum.h | 2 +-
include/net/sctp/sctp.h | 11 +-
include/net/sctp/stream_sched.h | 4 +-
include/net/sctp/structs.h | 9 +-
include/net/sctp/ulpqueue.h | 3 +-
include/net/sock.h | 18 +-
include/net/sock_reuseport.h | 2 +
include/net/switchdev.h | 1 +
include/net/tc_act/tc_ct.h | 1 +
include/net/tc_act/tc_skbedit.h | 29 +
include/net/tc_wrapper.h | 251 +
include/net/tcp.h | 42 +-
include/net/transp_v6.h | 2 -
include/net/tso.h | 8 +-
include/net/udp.h | 9 +
include/net/udp_tunnel.h | 4 +-
include/net/xfrm.h | 149 +-
include/rdma/ib_pack.h | 5 +
include/rdma/ib_verbs.h | 24 +-
include/rdma/opa_vnic.h | 2 +-
include/scsi/libiscsi.h | 2 +-
include/scsi/libsas.h | 24 +-
include/scsi/sas_ata.h | 13 +-
include/scsi/scsi.h | 1 +
include/scsi/scsi_cmnd.h | 3 +-
include/scsi/scsi_device.h | 2 +-
include/scsi/scsi_host.h | 32 +-
include/scsi/scsi_proto.h | 14 +-
include/scsi/scsi_transport_fc.h | 2 +-
include/scsi/scsi_transport_srp.h | 2 +-
include/scsi/sg.h | 2 +-
include/soc/amlogic/meson_ddr_pmu.h | 66 +
include/soc/fsl/qe/qe.h | 5 +-
include/soc/mscc/ocelot.h | 216 -
include/soc/qcom/qcom-spmi-pmic.h | 17 +-
include/soc/tegra/bpmp-abi.h | 1802 +-
include/soc/tegra/bpmp.h | 17 +-
include/soc/tegra/fuse.h | 15 +
include/soc/tegra/ivc.h | 12 +-
include/soc/tegra/mc.h | 11 +
include/soc/tegra/pmc.h | 6 +-
...chip_offset_byte.h => acp63_chip_offset_byte.h} | 216 +-
include/sound/hda_codec.h | 1 +
include/sound/hdaudio.h | 27 +
include/sound/hdaudio_ext.h | 71 +-
include/sound/hdmi-codec.h | 4 +
include/sound/pcm.h | 36 +-
include/sound/sdw.h | 49 +
include/sound/simple_card_utils.h | 2 -
include/sound/soc-dapm.h | 188 +-
include/sound/soc-dpcm.h | 2 -
include/sound/sof.h | 10 +-
include/sound/sof/dai-amd.h | 1 +
include/sound/sof/dai.h | 4 +-
include/sound/sof/ipc4/header.h | 4 +
include/sound/tlv320aic3x.h | 65 -
include/target/target_core_base.h | 19 +-
include/trace/bpf_probe.h | 6 +
include/trace/events/btrfs.h | 27 +-
include/trace/events/cachefiles.h | 27 +-
include/trace/events/clk.h | 43 +
include/trace/events/cxl.h | 112 +
include/trace/events/dlm.h | 303 +
include/trace/events/ext4.h | 64 +-
include/trace/events/f2fs.h | 176 +-
include/trace/events/fscache.h | 2 +
include/trace/events/huge_memory.h | 46 +-
include/trace/events/ib_mad.h | 13 +-
include/trace/events/iocost.h | 4 +-
include/trace/events/jbd2.h | 44 +-
include/trace/events/kmem.h | 8 +-
include/trace/events/mmflags.h | 9 +-
include/trace/events/pwm.h | 20 +-
include/trace/events/rpcgss.h | 2 +-
include/trace/events/rpcrdma.h | 4 +-
include/trace/events/rwmmio.h | 43 +-
include/trace/events/rxrpc.h | 821 +-
include/trace/events/skb.h | 2 +-
include/trace/events/sunrpc.h | 6 +-
include/trace/events/vmalloc.h | 123 +
include/trace/{events => misc}/fs.h | 0
include/trace/{events => misc}/nfs.h | 12 +
include/trace/{events => misc}/rdma.h | 0
.../trace/{events/sunrpc_base.h => misc/sunrpc.h} | 0
include/trace/perf.h | 6 +
include/trace/stages/stage1_struct_define.h | 6 +
include/trace/stages/stage2_data_offsets.h | 6 +
include/trace/stages/stage3_trace_output.h | 6 +
include/trace/stages/stage4_event_fields.h | 12 +
include/trace/stages/stage5_get_offsets.h | 6 +
include/trace/stages/stage6_event_callback.h | 20 +
include/trace/stages/stage7_class_define.h | 2 +
include/uapi/asm-generic/types.h | 6 +-
include/uapi/drm/amdgpu_drm.h | 6 +
include/uapi/drm/ivpu_accel.h | 306 +
include/uapi/drm/msm_drm.h | 1 +
include/uapi/linux/acrn.h | 5 +-
include/uapi/linux/aspeed-video.h | 14 +
include/uapi/linux/bpf.h | 524 +-
include/uapi/linux/btrfs.h | 36 +-
include/uapi/linux/btrfs_tree.h | 235 +
include/uapi/linux/dcbnl.h | 8 +
include/uapi/linux/devlink.h | 18 +
include/uapi/linux/dvb/audio.h | 15 -
include/uapi/linux/dvb/ca.h | 15 -
include/uapi/linux/dvb/dmx.h | 15 -
include/uapi/linux/dvb/frontend.h | 77 +-
include/uapi/linux/dvb/net.h | 15 -
include/uapi/linux/dvb/osd.h | 15 -
include/uapi/linux/dvb/version.h | 15 -
include/uapi/linux/dvb/video.h | 15 -
include/uapi/linux/elf.h | 14 +-
include/uapi/linux/ethtool.h | 18 +-
include/uapi/linux/ethtool_netlink.h | 15 +
include/uapi/linux/eventpoll.h | 6 +
include/uapi/linux/f2fs.h | 1 +
include/uapi/linux/fscrypt.h | 4 +-
include/uapi/linux/fuse.h | 16 +-
include/uapi/linux/hsi/cs-protocol.h | 14 -
include/uapi/linux/hsi/hsi_char.h | 14 -
include/uapi/linux/idxd.h | 2 +-
include/uapi/linux/if_alg.h | 1 +
include/uapi/linux/if_bridge.h | 21 +
include/uapi/linux/if_link.h | 3 +
include/uapi/linux/if_packet.h | 1 +
include/uapi/linux/if_tun.h | 2 +
include/uapi/linux/input-event-codes.h | 3 +
include/uapi/linux/io_uring.h | 26 +
include/uapi/linux/iommufd.h | 347 +
include/uapi/linux/ipmi_ssif_bmc.h | 18 +
include/uapi/linux/kvm.h | 34 +-
include/uapi/linux/landlock.h | 21 +-
include/uapi/linux/media-bus-format.h | 3 +-
include/uapi/linux/mptcp.h | 9 +
include/uapi/linux/neighbour.h | 8 +-
include/uapi/linux/net_tstamp.h | 3 +-
include/uapi/linux/netfilter/ipset/ip_set.h | 2 +
include/uapi/linux/netfilter/nf_conntrack_sctp.h | 1 +
include/uapi/linux/netfilter/nf_tables.h | 29 +
include/uapi/linux/netfilter/nfnetlink_cttimeout.h | 1 +
include/uapi/linux/nl80211.h | 3 +
include/uapi/linux/openvswitch.h | 14 +
include/uapi/linux/pci_regs.h | 2 +
include/uapi/linux/pktcdvd.h | 112 -
include/uapi/linux/pr.h | 17 +
include/uapi/linux/sed-opal.h | 8 +-
include/uapi/linux/serial.h | 55 +-
include/uapi/linux/snmp.h | 1 +
include/uapi/linux/swab.h | 2 +-
include/uapi/linux/tc_act/tc_ct.h | 3 +
include/uapi/linux/tcp.h | 6 +
include/uapi/linux/tdx-guest.h | 42 +
include/uapi/linux/usb/g_uvc.h | 3 +
include/uapi/linux/usb/video.h | 4 +-
include/uapi/linux/v4l2-common.h | 39 -
include/uapi/linux/v4l2-controls.h | 46 +-
include/uapi/linux/v4l2-dv-timings.h | 9 -
include/uapi/linux/v4l2-mediabus.h | 4 -
include/uapi/linux/v4l2-subdev.h | 13 -
include/uapi/linux/vfio.h | 136 +-
include/uapi/linux/videodev2.h | 5 +
include/uapi/linux/virtio_bt.h | 8 +
include/uapi/linux/virtio_net.h | 4 +
include/uapi/linux/xfrm.h | 6 +
include/uapi/misc/fastrpc.h | 7 +
include/uapi/misc/habanalabs.h | 93 +-
include/uapi/rdma/hns-abi.h | 15 +
include/uapi/rdma/ib_user_ioctl_verbs.h | 3 +
include/uapi/rdma/ib_user_verbs.h | 21 +
include/uapi/rdma/mana-abi.h | 66 +
include/uapi/rdma/rdma_user_rxe.h | 8 +
include/uapi/sound/asequencer.h | 8 +-
include/uapi/sound/snd_ar_tokens.h | 27 +
include/uapi/sound/sof/tokens.h | 14 +
include/ufs/ufshcd.h | 11 +-
include/video/omap-panel-data.h | 71 -
include/xen/arm/xen-ops.h | 4 +-
include/xen/xen-ops.h | 16 -
include/xen/xen.h | 4 +-
init/Kconfig | 30 +-
init/initramfs.c | 2 +-
init/main.c | 11 +-
init/version.c | 1 -
io_uring/cancel.c | 9 +-
io_uring/filetable.c | 2 -
io_uring/io_uring.c | 418 +-
io_uring/io_uring.h | 71 +-
io_uring/kbuf.c | 14 +-
io_uring/msg_ring.c | 168 +-
io_uring/msg_ring.h | 1 +
io_uring/net.c | 94 +-
io_uring/notif.c | 57 +-
io_uring/notif.h | 15 +-
io_uring/opdef.c | 8 +
io_uring/opdef.h | 2 +
io_uring/poll.c | 156 +-
io_uring/rsrc.c | 71 +-
io_uring/rsrc.h | 1 +
io_uring/rw.c | 21 +-
io_uring/timeout.c | 24 +-
io_uring/uring_cmd.c | 2 +-
io_uring/xattr.c | 8 +-
ipc/mqueue.c | 6 +-
ipc/sem.c | 3 +-
ipc/shm.c | 34 +-
kernel/Makefile | 4 +-
kernel/acct.c | 6 +-
kernel/auditsc.c | 75 +-
kernel/bpf/Makefile | 2 +-
kernel/bpf/arraymap.c | 29 +-
kernel/bpf/bpf_cgrp_storage.c | 246 +
kernel/bpf/bpf_inode_storage.c | 42 +-
kernel/bpf/bpf_local_storage.c | 208 +-
kernel/bpf/bpf_lsm.c | 22 +-
kernel/bpf/bpf_struct_ops.c | 3 +-
kernel/bpf/bpf_task_storage.c | 161 +-
kernel/bpf/btf.c | 1308 +-
kernel/bpf/cgroup_iter.c | 16 +-
kernel/bpf/core.c | 39 +-
kernel/bpf/cpumap.c | 33 +-
kernel/bpf/devmap.c | 4 +-
kernel/bpf/dispatcher.c | 5 +
kernel/bpf/hashtab.c | 37 +-
kernel/bpf/helpers.c | 439 +-
kernel/bpf/local_storage.c | 2 +-
kernel/bpf/map_in_map.c | 61 +-
kernel/bpf/memalloc.c | 46 +-
kernel/bpf/ringbuf.c | 6 +-
kernel/bpf/syscall.c | 475 +-
kernel/bpf/trampoline.c | 83 +-
kernel/bpf/verifier.c | 2753 +-
kernel/capability.c | 4 +-
kernel/cgroup/cgroup-internal.h | 1 -
kernel/cgroup/cgroup.c | 9 +-
kernel/cgroup/cpuset.c | 55 +-
kernel/configs/tiny.config | 5 +-
kernel/cpu.c | 61 +-
kernel/crash_core.c | 3 +
kernel/cred.c | 15 +-
kernel/debug/kdb/kdb_io.c | 18 +-
kernel/dma/mapping.c | 12 +
kernel/dma/swiotlb.c | 63 +-
kernel/events/core.c | 2220 +-
kernel/exit.c | 62 +
kernel/fork.c | 86 +-
kernel/futex/core.c | 26 +-
kernel/futex/syscalls.c | 11 +-
kernel/gcov/clang.c | 2 +
kernel/gcov/gcc_4_7.c | 5 +
kernel/irq/Kconfig | 7 +-
kernel/irq/chip.c | 8 +-
kernel/irq/internals.h | 2 +
kernel/irq/irqdesc.c | 15 +-
kernel/irq/manage.c | 4 +-
kernel/irq/msi.c | 915 +-
kernel/jump_label.c | 58 +-
kernel/kallsyms.c | 116 +-
kernel/kallsyms_internal.h | 1 +
kernel/kallsyms_selftest.c | 485 +
kernel/kallsyms_selftest.h | 13 +
kernel/kcsan/Makefile | 1 +
kernel/kcsan/core.c | 50 +
kernel/kcsan/report.c | 3 +-
kernel/kcsan/selftest.c | 12 +-
kernel/kexec_core.c | 10 +-
kernel/kexec_file.c | 2 +-
kernel/kprobes.c | 24 +-
kernel/ksysfs.c | 18 +
kernel/livepatch/core.c | 31 +-
kernel/livepatch/patch.c | 2 +-
kernel/livepatch/transition.c | 54 +-
kernel/locking/Makefile | 1 -
kernel/locking/rtmutex.c | 55 +-
kernel/locking/rtmutex_api.c | 6 +-
kernel/locking/test-ww_mutex.c | 4 +-
kernel/module/Kconfig | 3 +-
kernel/module/decompress.c | 100 +-
kernel/module/kallsyms.c | 2 -
kernel/module/main.c | 13 +-
kernel/module/sysfs.c | 2 +-
kernel/notifier.c | 6 +-
kernel/nsproxy.c | 23 +-
kernel/padata.c | 27 +-
kernel/panic.c | 53 +-
kernel/params.c | 25 +-
kernel/power/process.c | 25 +-
kernel/power/snapshot.c | 12 +-
kernel/printk/printk.c | 498 +-
kernel/printk/printk_ringbuffer.c | 2 +-
kernel/rcu/Kconfig | 22 +-
kernel/rcu/Kconfig.debug | 3 -
kernel/rcu/rcu.h | 16 +-
kernel/rcu/rcuscale.c | 69 +-
kernel/rcu/rcutorture.c | 72 +-
kernel/rcu/srcutiny.c | 10 +
kernel/rcu/srcutree.c | 100 +-
kernel/rcu/sync.c | 2 +-
kernel/rcu/tasks.h | 4 +-
kernel/rcu/tiny.c | 2 +-
kernel/rcu/tree.c | 162 +-
kernel/rcu/tree.h | 12 +-
kernel/rcu/tree_exp.h | 2 +-
kernel/rcu/tree_nocb.h | 259 +-
kernel/rcu/tree_plugin.h | 5 +-
kernel/rcu/update.c | 18 +-
kernel/relay.c | 8 +-
kernel/resource.c | 30 +-
kernel/sched/core.c | 275 +-
kernel/sched/cpufreq_schedutil.c | 30 +-
kernel/sched/deadline.c | 7 +-
kernel/sched/fair.c | 323 +-
kernel/sched/psi.c | 100 +-
kernel/sched/sched.h | 92 +-
kernel/sched/stats.h | 22 +-
kernel/sched/wait.c | 18 +-
kernel/scs.c | 14 +-
kernel/signal.c | 3 +-
kernel/static_call_inline.c | 23 +-
kernel/sysctl.c | 50 +-
kernel/time/clockevents.c | 2 +-
kernel/time/clocksource.c | 2 +-
kernel/time/namespace.c | 18 +
kernel/time/timer.c | 427 +-
kernel/trace/Kconfig | 15 +-
kernel/trace/blktrace.c | 7 +-
kernel/trace/bpf_trace.c | 113 +-
kernel/trace/ftrace.c | 47 +-
kernel/trace/ring_buffer.c | 44 +-
kernel/trace/ring_buffer_benchmark.c | 2 +-
kernel/trace/rv/monitors/wip/wip.h | 2 +-
kernel/trace/rv/monitors/wwnr/wwnr.h | 2 +-
kernel/trace/trace.c | 117 +-
kernel/trace/trace.h | 32 +-
kernel/trace/trace_dynevent.c | 2 +
kernel/trace/trace_event_perf.c | 16 +-
kernel/trace/trace_events.c | 79 +-
kernel/trace/trace_events_hist.c | 197 +-
kernel/trace/trace_events_synth.c | 4 +-
kernel/trace/trace_events_trigger.c | 19 +-
kernel/trace/trace_events_user.c | 7 +-
kernel/trace/trace_kprobe.c | 2 -
kernel/trace/trace_osnoise.c | 250 +-
kernel/trace/trace_output.c | 71 +-
kernel/trace/trace_probe.c | 67 +-
kernel/trace/trace_probe.h | 19 +-
kernel/trace/trace_probe_tmpl.h | 47 +-
kernel/trace/trace_selftest.c | 9 +-
kernel/trace/trace_uprobe.c | 3 +-
kernel/user.c | 1 +
kernel/workqueue.c | 2 +-
lib/Kconfig | 12 +-
lib/Kconfig.debug | 97 +-
lib/Kconfig.kasan | 4 +-
lib/Kconfig.kcsan | 6 +-
lib/Makefile | 7 +-
lib/crypto/Kconfig | 9 +
lib/crypto/Makefile | 5 +
lib/crypto/aesgcm.c | 727 +
{crypto => lib/crypto}/gf128mul.c | 58 +-
lib/debugobjects.c | 14 +-
lib/fault-inject.c | 37 +-
lib/find_bit_benchmark.c | 4 +-
lib/fonts/fonts.c | 4 +-
lib/fortify_kunit.c | 255 +
lib/interval_tree.c | 132 +
lib/iov_iter.c | 82 +-
lib/is_signed_type_kunit.c | 4 -
lib/kobject.c | 31 +-
lib/kunit/assert.c | 62 +-
lib/kunit/debugfs.c | 2 +-
lib/kunit/executor.c | 6 +-
lib/kunit/kunit-example-test.c | 7 +
lib/kunit/string-stream.c | 9 +-
lib/kunit/test.c | 15 +-
lib/llist.c | 4 +-
lib/lru_cache.c | 59 +-
lib/maple_tree.c | 19 +-
lib/math/div64.c | 15 +-
lib/memcpy_kunit.c | 227 +
lib/net_utils.c | 3 +-
lib/nlattr.c | 2 +-
lib/notifier-error-inject.c | 2 +-
lib/oid_registry.c | 1 -
lib/overflow_kunit.c | 381 +
lib/packing.c | 16 +-
lib/percpu-refcount.c | 3 +-
lib/percpu_counter.c | 29 +-
lib/radix-tree.c | 2 +-
lib/raid6/algos.c | 2 -
lib/raid6/s390vx.uc | 3 +-
lib/reed_solomon/test_rslib.c | 6 +-
lib/rhashtable.c | 16 +-
lib/sbitmap.c | 148 +-
lib/scatterlist.c | 25 +-
lib/{test_siphash.c => siphash_kunit.c} | 165 +-
lib/slub_kunit.c | 58 +-
lib/string.c | 82 -
lib/strscpy_kunit.c | 142 +
lib/test-string_helpers.c | 2 +-
lib/test_bpf.c | 1 -
lib/test_firmware.c | 5 +-
lib/test_fprobe.c | 5 +-
lib/test_hexdump.c | 10 +-
lib/test_kmod.c | 12 +-
lib/test_kprobes.c | 5 +-
lib/test_linear_ranges.c | 13 +-
lib/test_list_sort.c | 2 +-
lib/test_maple_tree.c | 23 +
lib/test_printf.c | 40 +-
lib/test_rhashtable.c | 12 +-
lib/test_strscpy.c | 150 -
lib/test_sysctl.c | 12 +-
lib/test_vmalloc.c | 8 +-
lib/trace_readwrite.c | 16 +-
lib/ubsan.c | 3 +-
lib/vdso/Makefile | 2 +-
lib/vsprintf.c | 16 +-
lib/zstd/Makefile | 1 +
lib/zstd/common/bitstream.h | 9 +
lib/zstd/common/compiler.h | 67 +-
lib/zstd/common/entropy_common.c | 11 +-
lib/zstd/common/error_private.h | 81 +-
lib/zstd/common/fse.h | 3 +-
lib/zstd/common/fse_decompress.c | 2 +-
lib/zstd/common/huf.h | 46 +-
lib/zstd/common/mem.h | 2 +
lib/zstd/common/portability_macros.h | 93 +
lib/zstd/common/zstd_common.c | 10 -
lib/zstd/common/zstd_internal.h | 175 +-
lib/zstd/compress/clevels.h | 132 +
lib/zstd/compress/fse_compress.c | 83 +-
lib/zstd/compress/huf_compress.c | 644 +-
lib/zstd/compress/zstd_compress.c | 2000 +-
lib/zstd/compress/zstd_compress_internal.h | 375 +-
lib/zstd/compress/zstd_compress_literals.c | 9 +-
lib/zstd/compress/zstd_compress_literals.h | 4 +-
lib/zstd/compress/zstd_compress_sequences.c | 31 +-
lib/zstd/compress/zstd_compress_superblock.c | 295 +-
lib/zstd/compress/zstd_cwksp.h | 225 +-
lib/zstd/compress/zstd_double_fast.c | 413 +-
lib/zstd/compress/zstd_fast.c | 441 +-
lib/zstd/compress/zstd_lazy.c | 1352 +-
lib/zstd/compress/zstd_lazy.h | 38 +
lib/zstd/compress/zstd_ldm.c | 76 +-
lib/zstd/compress/zstd_ldm.h | 1 +
lib/zstd/compress/zstd_ldm_geartab.h | 5 +-
lib/zstd/compress/zstd_opt.c | 402 +-
lib/zstd/decompress/huf_decompress.c | 912 +-
lib/zstd/decompress/zstd_decompress.c | 80 +-
lib/zstd/decompress/zstd_decompress_block.c | 1022 +-
lib/zstd/decompress/zstd_decompress_block.h | 10 +-
lib/zstd/decompress/zstd_decompress_internal.h | 38 +-
lib/zstd/decompress_sources.h | 6 +
lib/zstd/zstd_common_module.c | 32 +
lib/zstd/zstd_compress_module.c | 6 +-
mm/Kconfig | 65 +-
mm/Kconfig.debug | 2 +-
mm/backing-dev.c | 133 +-
mm/compaction.c | 40 +-
mm/damon/Makefile | 6 +-
mm/damon/core.c | 266 +-
mm/damon/lru_sort.c | 71 +-
mm/damon/modules-common.c | 42 +
mm/damon/modules-common.h | 3 +
mm/damon/reclaim.c | 73 +-
mm/damon/sysfs-common.c | 107 +
mm/damon/sysfs-common.h | 56 +
mm/damon/sysfs-schemes.c | 1338 +
mm/damon/sysfs.c | 1229 +-
mm/debug.c | 5 +-
mm/debug_vm_pgtable.c | 40 +-
mm/fadvise.c | 2 +-
mm/failslab.c | 12 +-
mm/filemap.c | 89 +-
mm/folio-compat.c | 25 +-
mm/gup.c | 337 +-
mm/gup_test.c | 145 +
mm/gup_test.h | 12 +
mm/hmm.c | 3 +-
mm/huge_memory.c | 179 +-
mm/hugetlb.c | 1120 +-
mm/hugetlb_cgroup.c | 63 +-
mm/hugetlb_vmemmap.c | 45 +-
mm/internal.h | 12 +-
mm/kasan/generic.c | 19 +-
mm/kasan/kasan.h | 20 +-
mm/kasan/kasan_test.c | 177 +-
mm/kasan/kasan_test_module.c | 60 -
mm/kasan/report.c | 68 +-
mm/kasan/shadow.c | 2 +-
mm/kfence/core.c | 16 +-
mm/kfence/kfence_test.c | 4 +-
mm/kfence/report.c | 16 +-
mm/khugepaged.c | 156 +-
mm/kmemleak.c | 50 +-
mm/kmsan/hooks.c | 1 +
mm/kmsan/instrumentation.c | 8 +-
mm/kmsan/kmsan_test.c | 4 +
mm/ksm.c | 89 +-
mm/madvise.c | 69 +-
mm/mapping_dirty_helpers.c | 2 +-
mm/memcontrol.c | 130 +-
mm/memory-failure.c | 172 +-
mm/memory-tiers.c | 4 +-
mm/memory.c | 287 +-
mm/mempolicy.c | 1 +
mm/mempool.c | 18 +-
mm/migrate.c | 301 +-
mm/migrate_device.c | 8 +-
mm/mincore.c | 14 +-
mm/mm_init.c | 8 +-
mm/mmap.c | 31 +-
mm/mmu_gather.c | 62 +-
mm/mprotect.c | 57 +-
mm/mremap.c | 3 +-
mm/page-writeback.c | 130 +-
mm/page_alloc.c | 174 +-
mm/page_ext.c | 4 +-
mm/page_io.c | 4 +-
mm/page_reporting.c | 50 +-
mm/page_table_check.c | 3 +-
mm/pagewalk.c | 27 +-
mm/percpu.c | 44 +-
mm/process_vm_access.c | 2 +-
mm/rmap.c | 332 +-
mm/shmem.c | 69 +-
mm/slab.c | 113 +-
mm/slab.h | 86 +-
mm/slab_common.c | 53 +-
mm/slub.c | 565 +-
mm/sparse-vmemmap.c | 73 +
mm/sparse.c | 2 -
mm/swap.c | 41 +-
mm/swap.h | 8 +-
mm/swap_state.c | 39 +-
mm/swapfile.c | 15 +-
mm/truncate.c | 32 +-
mm/usercopy.c | 3 +-
mm/userfaultfd.c | 8 +-
mm/util.c | 79 -
mm/vmalloc.c | 20 +-
mm/vmscan.c | 212 +-
mm/vmstat.c | 3 +
mm/workingset.c | 7 +-
mm/z3fold.c | 36 +-
mm/zbud.c | 32 +-
mm/zpool.c | 17 +-
mm/zsmalloc.c | 365 +-
mm/zswap.c | 39 +-
net/802/garp.c | 4 +-
net/802/mrp.c | 24 +-
net/8021q/vlan_dev.c | 4 +-
net/9p/client.c | 35 +-
net/9p/trans_fd.c | 38 +-
net/9p/trans_rdma.c | 5 +-
net/9p/trans_virtio.c | 10 +-
net/9p/trans_xen.c | 15 +-
net/atm/atm_sysfs.c | 4 +-
net/ax25/af_ax25.c | 4 +-
net/batman-adv/bat_iv_ogm.c | 4 +-
net/batman-adv/bat_v_elp.c | 2 +-
net/batman-adv/bat_v_ogm.c | 4 +-
net/batman-adv/netlink.c | 6 +-
net/batman-adv/network-coding.c | 2 +-
net/bluetooth/6lowpan.c | 3 +-
net/bluetooth/Kconfig | 11 +
net/bluetooth/a2mp.c | 2 +-
net/bluetooth/af_bluetooth.c | 4 +-
net/bluetooth/hci_codec.c | 19 +-
net/bluetooth/hci_conn.c | 17 +-
net/bluetooth/hci_core.c | 12 +-
net/bluetooth/hci_debugfs.c | 2 +-
net/bluetooth/hci_event.c | 24 +-
net/bluetooth/hci_request.c | 2 +-
net/bluetooth/hci_sync.c | 40 +-
net/bluetooth/iso.c | 68 +-
net/bluetooth/l2cap_core.c | 5 +-
net/bluetooth/lib.c | 4 +-
net/bluetooth/mgmt.c | 7 +-
net/bluetooth/rfcomm/core.c | 2 +-
net/bluetooth/smp.c | 2 +-
net/bpf/bpf_dummy_struct_ops.c | 17 +-
net/bpf/test_run.c | 19 +-
net/bridge/br.c | 5 +-
net/bridge/br_fdb.c | 46 +-
net/bridge/br_if.c | 2 +-
net/bridge/br_input.c | 21 +-
net/bridge/br_mdb.c | 824 +-
net/bridge/br_multicast.c | 38 +-
net/bridge/br_multicast_eht.c | 4 +-
net/bridge/br_netlink.c | 21 +-
net/bridge/br_private.h | 30 +-
net/bridge/br_switchdev.c | 6 +-
net/bridge/br_vlan.c | 4 +-
net/bridge/netfilter/nf_conntrack_bridge.c | 32 +-
net/can/af_can.c | 9 +-
net/can/j1939/socket.c | 2 +-
net/can/j1939/transport.c | 4 +-
net/can/raw.c | 1 +
net/ceph/messenger.c | 1 +
net/ceph/messenger_v1.c | 4 +-
net/ceph/messenger_v2.c | 14 +-
net/ceph/mon_client.c | 2 +-
net/ceph/osd_client.c | 2 +-
net/compat.c | 3 +-
net/core/bpf_sk_storage.c | 42 +-
net/core/dev.c | 185 +-
net/core/dev.h | 7 +
net/core/dev_addr_lists_test.c | 4 +-
net/core/dev_ioctl.c | 2 +-
net/core/devlink.c | 794 +-
net/core/drop_monitor.c | 12 +-
net/core/dst.c | 10 +-
net/core/failover.c | 6 +-
net/core/filter.c | 141 +-
net/core/flow_dissector.c | 6 +-
net/core/flow_offload.c | 7 +
net/core/gen_estimator.c | 2 +-
net/core/gen_stats.c | 16 +-
net/core/gro.c | 74 +-
net/core/link_watch.c | 20 +-
net/core/lwtunnel.c | 4 +-
net/core/neighbour.c | 62 +-
net/core/net-sysfs.c | 24 +-
net/core/net_namespace.c | 5 +
net/core/of_net.c | 5 +-
net/core/pktgen.c | 37 +-
net/core/rtnetlink.c | 90 +-
net/core/skbuff.c | 168 +-
net/core/skmsg.c | 9 +-
net/core/sock.c | 33 +-
net/core/sock_diag.c | 15 +-
net/core/sock_map.c | 2 +
net/core/sock_reuseport.c | 94 +-
net/core/stream.c | 8 +-
net/core/tso.c | 8 -
net/core/utils.c | 4 +-
net/dcb/dcbnl.c | 153 +-
net/dccp/dccp.h | 1 +
net/dccp/ipv4.c | 23 +-
net/dccp/ipv6.c | 39 +-
net/dccp/proto.c | 11 +-
net/dns_resolver/dns_key.c | 2 +-
net/dsa/Kconfig | 6 +
net/dsa/Makefile | 4 +-
net/dsa/devlink.c | 391 +
net/dsa/devlink.h | 16 +
net/dsa/dsa.c | 1745 +-
net/dsa/dsa.h | 40 +
net/dsa/dsa2.c | 1829 -
net/dsa/dsa_priv.h | 588 -
net/dsa/master.c | 25 +-
net/dsa/master.h | 19 +
net/dsa/netlink.c | 3 +-
net/dsa/netlink.h | 8 +
net/dsa/port.c | 24 +-
net/dsa/port.h | 114 +
net/dsa/slave.c | 75 +-
net/dsa/slave.h | 69 +
net/dsa/switch.c | 53 +-
net/dsa/switch.h | 120 +
net/dsa/tag.c | 243 +
net/dsa/tag.h | 310 +
net/dsa/tag_8021q.c | 30 +-
net/dsa/tag_8021q.h | 27 +
net/dsa/tag_ar9331.c | 8 +-
net/dsa/tag_brcm.c | 18 +-
net/dsa/tag_dsa.c | 13 +-
net/dsa/tag_gswip.c | 8 +-
net/dsa/tag_hellcreek.c | 11 +-
net/dsa/tag_ksz.c | 27 +-
net/dsa/tag_lan9303.c | 8 +-
net/dsa/tag_mtk.c | 10 +-
net/dsa/tag_none.c | 30 +
net/dsa/tag_ocelot.c | 14 +-
net/dsa/tag_ocelot_8021q.c | 10 +-
net/dsa/tag_qca.c | 8 +-
net/dsa/tag_rtl4_a.c | 8 +-
net/dsa/tag_rtl8_4.c | 9 +-
net/dsa/tag_rzn1_a5psw.c | 8 +-
net/dsa/tag_sja1105.c | 18 +-
net/dsa/tag_trailer.c | 8 +-
net/dsa/tag_xrs700x.c | 8 +-
net/ethernet/eth.c | 2 +-
net/ethtool/Makefile | 2 +-
net/ethtool/channels.c | 19 +-
net/ethtool/common.c | 81 +
net/ethtool/common.h | 1 +
net/ethtool/ioctl.c | 44 +-
net/ethtool/linkstate.c | 24 +-
net/ethtool/netlink.c | 7 +
net/ethtool/netlink.h | 2 +
net/ethtool/rss.c | 153 +
net/hsr/hsr_debugfs.c | 40 +-
net/hsr/hsr_device.c | 31 +-
net/hsr/hsr_forward.c | 19 +-
net/hsr/hsr_framereg.c | 265 +-
net/hsr/hsr_framereg.h | 17 +-
net/hsr/hsr_main.h | 15 +-
net/hsr/hsr_netlink.c | 4 +-
net/ieee802154/core.c | 3 +
net/ieee802154/nl802154.c | 109 +-
net/ieee802154/nl802154.h | 2 +
net/ipv4/Makefile | 2 +-
net/ipv4/af_inet.c | 19 +-
net/ipv4/bpf_tcp_ca.c | 17 +-
net/ipv4/devinet.c | 19 +-
net/ipv4/esp4_offload.c | 3 +
net/ipv4/fib_frontend.c | 3 +
net/ipv4/fib_semantics.c | 9 +-
net/ipv4/fib_trie.c | 6 +-
net/ipv4/icmp.c | 2 +-
net/ipv4/igmp.c | 6 +-
net/ipv4/inet_connection_sock.c | 9 +-
net/ipv4/inet_fragment.c | 14 +-
net/ipv4/inet_hashtables.c | 86 +-
net/ipv4/ip_fragment.c | 19 +-
net/ipv4/ip_gre.c | 60 +-
net/ipv4/ip_input.c | 5 +
net/ipv4/ip_sockglue.c | 3 +-
net/ipv4/ip_tunnel.c | 32 +-
net/ipv4/ip_vti.c | 20 +-
net/ipv4/ipip.c | 2 +-
net/ipv4/ipmr.c | 14 +-
net/ipv4/metrics.c | 3 -
net/ipv4/netfilter/ipt_CLUSTERIP.c | 4 +-
net/ipv4/netfilter/nft_dup_ipv4.c | 3 +-
net/ipv4/netfilter/nft_fib_ipv4.c | 5 +-
net/ipv4/ping.c | 9 +-
net/ipv4/proc.c | 1 +
net/ipv4/route.c | 4 +-
net/ipv4/syncookies.c | 7 +-
net/ipv4/sysctl_net_ipv4.c | 83 +
net/ipv4/tcp.c | 17 +-
net/ipv4/tcp_bbr.c | 2 +-
net/ipv4/tcp_bpf.c | 19 +-
net/ipv4/tcp_dctcp.c | 23 +-
net/ipv4/tcp_input.c | 70 +-
net/ipv4/tcp_ipv4.c | 126 +-
net/ipv4/tcp_minisocks.c | 61 +-
net/ipv4/tcp_output.c | 41 +-
net/ipv4/tcp_plb.c | 109 +
net/ipv4/udp.c | 217 +-
net/ipv4/udp_diag.c | 6 +-
net/ipv4/udp_offload.c | 8 +-
net/ipv4/udp_tunnel_core.c | 1 +
net/ipv4/udp_tunnel_nic.c | 2 +
net/ipv6/addrconf.c | 12 +-
net/ipv6/af_inet6.c | 13 +-
net/ipv6/datagram.c | 18 +-
net/ipv6/esp6_offload.c | 6 +-
net/ipv6/ip6_fib.c | 7 +-
net/ipv6/ip6_gre.c | 31 +-
net/ipv6/ip6_offload.c | 27 +-
net/ipv6/ip6_output.c | 5 +
net/ipv6/ip6_tunnel.c | 26 +-
net/ipv6/ip6_vti.c | 16 +-
net/ipv6/ip6mr.c | 12 +-
net/ipv6/ipv6_sockglue.c | 6 +-
net/ipv6/mcast.c | 10 +-
net/ipv6/netfilter/nf_conntrack_reasm.c | 2 +-
net/ipv6/netfilter/nft_dup_ipv6.c | 3 +-
net/ipv6/output_core.c | 8 +-
net/ipv6/ping.c | 6 -
net/ipv6/raw.c | 2 -
net/ipv6/reassembly.c | 13 +-
net/ipv6/route.c | 2 +-
net/ipv6/seg6_local.c | 4 +-
net/ipv6/sit.c | 22 +-
net/ipv6/tcp_ipv6.c | 49 +-
net/ipv6/udp.c | 41 +-
net/ipv6/udp_offload.c | 8 +-
net/ipv6/xfrm6_policy.c | 6 +-
net/key/af_key.c | 40 +-
net/l2tp/l2tp_core.c | 17 +-
net/l2tp/l2tp_ip6.c | 2 -
net/mac80211/agg-rx.c | 25 +-
net/mac80211/agg-tx.c | 2 +-
net/mac80211/airtime.c | 3 +
net/mac80211/cfg.c | 45 +-
net/mac80211/debugfs.c | 4 +-
net/mac80211/debugfs_netdev.c | 3 +-
net/mac80211/debugfs_sta.c | 148 +-
net/mac80211/debugfs_sta.h | 12 +
net/mac80211/driver-ops.c | 27 +-
net/mac80211/driver-ops.h | 16 +
net/mac80211/ieee80211_i.h | 22 +-
net/mac80211/iface.c | 74 +-
net/mac80211/link.c | 17 +
net/mac80211/main.c | 23 +-
net/mac80211/mesh_pathtbl.c | 2 +-
net/mac80211/mlme.c | 133 +-
net/mac80211/rc80211_minstrel_ht.c | 3 -
net/mac80211/rc80211_minstrel_ht.h | 1 -
net/mac80211/rx.c | 41 +-
net/mac80211/sta_info.c | 118 +-
net/mac80211/sta_info.h | 7 +
net/mac80211/tdls.c | 1 -
net/mac80211/tx.c | 327 +-
net/mac80211/util.c | 246 +-
net/mac80211/wme.c | 63 +-
net/mac80211/wme.h | 4 +-
net/mac802154/cfg.c | 6 +-
net/mac802154/driver-ops.h | 253 +-
net/mac802154/ieee802154_i.h | 56 +-
net/mac802154/iface.c | 60 +-
net/mac802154/main.c | 4 +-
net/mac802154/rx.c | 53 +-
net/mac802154/trace.h | 25 +
net/mac802154/tx.c | 132 +-
net/mac802154/util.c | 71 +-
net/mctp/device.c | 14 +-
net/mpls/af_mpls.c | 4 +-
net/mptcp/Makefile | 2 +-
net/mptcp/fastopen.c | 73 +
net/mptcp/options.c | 25 +-
net/mptcp/pm_netlink.c | 126 +-
net/mptcp/pm_userspace.c | 8 +-
net/mptcp/protocol.c | 100 +-
net/mptcp/protocol.h | 30 +-
net/mptcp/sockopt.c | 45 +-
net/mptcp/subflow.c | 174 +-
net/mptcp/token.c | 4 +-
net/ncsi/ncsi-cmd.c | 3 +-
net/netfilter/Kconfig | 9 +-
net/netfilter/Makefile | 5 +-
net/netfilter/ipset/ip_set_hash_gen.h | 73 +-
net/netfilter/ipset/ip_set_hash_ip.c | 27 +-
net/netfilter/ipset/ip_set_hash_ipport.c | 24 +-
net/netfilter/ipset/ip_set_hash_netnet.c | 26 +-
net/netfilter/ipset/ip_set_list_set.c | 2 +-
net/netfilter/ipvs/ip_vs_core.c | 40 +-
net/netfilter/ipvs/ip_vs_ctl.c | 457 +-
net/netfilter/ipvs/ip_vs_est.c | 883 +-
net/netfilter/ipvs/ip_vs_lblc.c | 2 +-
net/netfilter/ipvs/ip_vs_lblcr.c | 2 +-
net/netfilter/ipvs/ip_vs_sync.c | 2 +-
net/netfilter/ipvs/ip_vs_twos.c | 4 +-
net/netfilter/nf_conntrack_bpf.c | 17 +-
net/netfilter/nf_conntrack_core.c | 42 +-
net/netfilter/nf_conntrack_helper.c | 100 +
net/netfilter/nf_conntrack_netlink.c | 21 +-
net/netfilter/nf_conntrack_proto.c | 124 +-
net/netfilter/nf_conntrack_proto_icmpv6.c | 53 +
net/netfilter/nf_conntrack_proto_sctp.c | 104 +-
net/netfilter/nf_conntrack_standalone.c | 10 +-
net/netfilter/nf_flow_table_ip.c | 8 +
net/netfilter/nf_flow_table_offload.c | 16 +-
net/netfilter/nf_nat_helper.c | 2 +-
net/netfilter/nf_nat_ovs.c | 135 +
net/netfilter/nf_tables_api.c | 96 +-
net/netfilter/nf_tables_core.c | 2 +
net/netfilter/nft_bitwise.c | 6 +-
net/netfilter/nft_byteorder.c | 3 +-
net/netfilter/nft_cmp.c | 9 +-
net/netfilter/nft_compat.c | 9 +-
net/netfilter/nft_connlimit.c | 3 +-
net/netfilter/nft_counter.c | 5 +-
net/netfilter/nft_ct.c | 12 +-
net/netfilter/nft_dup_netdev.c | 3 +-
net/netfilter/nft_dynset.c | 7 +-
net/netfilter/nft_exthdr.c | 10 +-
net/netfilter/nft_fib.c | 2 +-
net/netfilter/nft_flow_offload.c | 3 +-
net/netfilter/nft_fwd_netdev.c | 6 +-
net/netfilter/nft_hash.c | 4 +-
net/netfilter/nft_immediate.c | 3 +-
net/netfilter/nft_inner.c | 385 +
net/netfilter/nft_last.c | 3 +-
net/netfilter/nft_limit.c | 5 +-
net/netfilter/nft_log.c | 3 +-
net/netfilter/nft_lookup.c | 3 +-
net/netfilter/nft_masq.c | 3 +-
net/netfilter/nft_meta.c | 67 +-
net/netfilter/nft_nat.c | 3 +-
net/netfilter/nft_numgen.c | 6 +-
net/netfilter/nft_objref.c | 28 +-
net/netfilter/nft_osf.c | 3 +-
net/netfilter/nft_payload.c | 141 +-
net/netfilter/nft_queue.c | 6 +-
net/netfilter/nft_quota.c | 5 +-
net/netfilter/nft_range.c | 3 +-
net/netfilter/nft_redir.c | 3 +-
net/netfilter/nft_reject.c | 3 +-
net/netfilter/nft_rt.c | 2 +-
net/netfilter/nft_set_pipapo.c | 5 +-
net/netfilter/nft_socket.c | 2 +-
net/netfilter/nft_synproxy.c | 3 +-
net/netfilter/nft_tproxy.c | 2 +-
net/netfilter/nft_tunnel.c | 2 +-
net/netfilter/nft_xfrm.c | 2 +-
net/netfilter/xt_IDLETIMER.c | 4 +-
net/netfilter/xt_LED.c | 2 +-
net/netfilter/xt_connmark.c | 18 +-
net/netfilter/xt_sctp.c | 1 -
net/netlink/af_netlink.c | 44 +-
net/netlink/genetlink.c | 495 +-
net/nfc/nci/core.c | 10 +-
net/nfc/nci/data.c | 4 +-
net/nfc/nci/hci.c | 4 +-
net/nfc/nci/ntf.c | 6 +
net/nfc/rawsock.c | 3 +
net/openvswitch/Kconfig | 1 +
net/openvswitch/conntrack.c | 259 +-
net/openvswitch/datapath.c | 70 +-
net/openvswitch/flow_netlink.c | 2 +-
net/openvswitch/flow_table.c | 9 +-
net/openvswitch/vport-geneve.c | 2 +-
net/openvswitch/vport-gre.c | 2 +-
net/openvswitch/vport-netdev.c | 2 +-
net/openvswitch/vport-vxlan.c | 2 +-
net/openvswitch/vport.c | 50 +
net/openvswitch/vport.h | 16 +
net/packet/af_packet.c | 21 +-
net/rds/message.c | 2 -
net/rds/send.c | 3 +-
net/rds/tcp.c | 3 +
net/rfkill/core.c | 2 +-
net/rxrpc/Kconfig | 7 +
net/rxrpc/Makefile | 5 +
net/rxrpc/af_rxrpc.c | 32 +-
net/rxrpc/ar-internal.h | 416 +-
net/rxrpc/call_accept.c | 193 +-
net/rxrpc/call_event.c | 569 +-
net/rxrpc/call_object.c | 362 +-
net/rxrpc/conn_client.c | 178 +-
net/rxrpc/conn_event.c | 128 +-
net/rxrpc/conn_object.c | 313 +-
net/rxrpc/conn_service.c | 29 +-
net/rxrpc/input.c | 1223 +-
net/rxrpc/insecure.c | 16 +-
net/rxrpc/io_thread.c | 500 +
net/rxrpc/key.c | 16 +-
net/rxrpc/local_event.c | 46 +-
net/rxrpc/local_object.c | 177 +-
net/rxrpc/misc.c | 23 +-
net/rxrpc/net_ns.c | 4 +-
net/rxrpc/output.c | 525 +-
net/rxrpc/peer_event.c | 429 +-
net/rxrpc/peer_object.c | 74 +-
net/rxrpc/proc.c | 169 +-
net/rxrpc/protocol.h | 9 +-
net/rxrpc/recvmsg.c | 308 +-
net/rxrpc/rxkad.c | 314 +-
net/rxrpc/rxperf.c | 619 +
net/rxrpc/security.c | 34 +-
net/rxrpc/sendmsg.c | 235 +-
net/rxrpc/server_key.c | 25 +
net/rxrpc/skbuff.c | 44 +-
net/rxrpc/sysctl.c | 11 +-
net/rxrpc/txbuf.c | 142 +
net/sched/Kconfig | 3 +-
net/sched/act_api.c | 3 +-
net/sched/act_bpf.c | 6 +-
net/sched/act_connmark.c | 10 +-
net/sched/act_csum.c | 6 +-
net/sched/act_ct.c | 265 +-
net/sched/act_ctinfo.c | 12 +-
net/sched/act_gact.c | 8 +-
net/sched/act_gate.c | 6 +-
net/sched/act_ife.c | 6 +-
net/sched/act_ipt.c | 6 +-
net/sched/act_mirred.c | 6 +-
net/sched/act_mpls.c | 6 +-
net/sched/act_nat.c | 7 +-
net/sched/act_pedit.c | 6 +-
net/sched/act_police.c | 6 +-
net/sched/act_sample.c | 8 +-
net/sched/act_simple.c | 6 +-
net/sched/act_skbedit.c | 20 +-
net/sched/act_skbmod.c | 6 +-
net/sched/act_tunnel_key.c | 6 +-
net/sched/act_vlan.c | 6 +-
net/sched/cls_api.c | 10 +-
net/sched/cls_basic.c | 6 +-
net/sched/cls_bpf.c | 6 +-
net/sched/cls_cgroup.c | 6 +-
net/sched/cls_flow.c | 8 +-
net/sched/cls_flower.c | 6 +-
net/sched/cls_fw.c | 6 +-
net/sched/cls_matchall.c | 6 +-
net/sched/cls_route.c | 6 +-
net/sched/cls_rsvp.c | 2 +
net/sched/cls_rsvp.h | 6 +-
net/sched/cls_rsvp6.c | 2 +
net/sched/cls_tcindex.c | 7 +-
net/sched/cls_u32.c | 6 +-
net/sched/ematch.c | 2 +
net/sched/sch_api.c | 5 +
net/sched/sch_choke.c | 2 +-
net/sched/sch_netem.c | 4 +-
net/sctp/associola.c | 4 +-
net/sctp/diag.c | 3 +-
net/sctp/endpointola.c | 13 +-
net/sctp/input.c | 108 +-
net/sctp/ipv6.c | 22 +-
net/sctp/protocol.c | 19 +-
net/sctp/sm_statefuns.c | 2 +-
net/sctp/socket.c | 40 +-
net/sctp/stream.c | 25 +-
net/sctp/stream_interleave.c | 12 +-
net/sctp/stream_sched.c | 37 +-
net/sctp/stream_sched_prio.c | 32 +-
net/sctp/stream_sched_rr.c | 5 +-
net/sctp/sysctl.c | 84 +-
net/sctp/transport.c | 2 +-
net/sctp/ulpqueue.c | 10 +-
net/smc/smc_clc.c | 6 +-
net/smc/smc_tx.c | 2 +-
net/socket.c | 20 +-
net/sunrpc/auth_gss/svcauth_gss.c | 64 +-
net/sunrpc/cache.c | 2 +-
net/sunrpc/clnt.c | 2 +-
net/sunrpc/socklib.c | 6 +-
net/sunrpc/svc.c | 6 +-
net/sunrpc/svcsock.c | 4 +-
net/sunrpc/sysfs.c | 8 +-
net/sunrpc/xdr.c | 22 +-
net/sunrpc/xprt.c | 2 +-
net/sunrpc/xprtrdma/verbs.c | 2 +-
net/sunrpc/xprtsock.c | 11 +-
net/tipc/crypto.c | 3 +
net/tipc/discover.c | 7 +-
net/tipc/link.c | 4 +-
net/tipc/monitor.c | 2 +-
net/tipc/node.c | 12 +-
net/tipc/socket.c | 2 +-
net/tipc/topsrv.c | 22 +-
net/tls/tls_device.c | 4 +-
net/tls/tls_sw.c | 6 +-
net/unix/af_unix.c | 12 +-
net/unix/diag.c | 20 +-
net/vmw_vsock/af_vsock.c | 3 +-
net/vmw_vsock/vmci_transport.c | 6 +-
net/wireless/core.h | 5 +-
net/wireless/mlme.c | 4 +
net/wireless/nl80211.c | 26 +-
net/wireless/nl80211.h | 3 +-
net/wireless/reg.c | 4 +-
net/wireless/scan.c | 57 +-
net/wireless/sme.c | 26 +-
net/wireless/sysfs.c | 2 +-
net/wireless/util.c | 4 +-
net/wireless/wext-compat.c | 180 +-
net/wireless/wext-compat.h | 8 +-
net/wireless/wext-sme.c | 5 +-
net/xdp/xskmap.c | 4 +-
net/xfrm/Makefile | 8 +
net/xfrm/espintcp.c | 3 +-
net/xfrm/xfrm_device.c | 124 +-
net/xfrm/xfrm_input.c | 1 +
net/xfrm/xfrm_interface_bpf.c | 115 +
.../{xfrm_interface.c => xfrm_interface_core.c} | 14 +
net/xfrm/xfrm_output.c | 15 +-
net/xfrm/xfrm_policy.c | 122 +-
net/xfrm/xfrm_replay.c | 2 +-
net/xfrm/xfrm_state.c | 214 +-
net/xfrm/xfrm_user.c | 104 +-
rust/Makefile | 22 +-
rust/alloc/raw_vec.rs | 33 +-
rust/alloc/vec/mod.rs | 89 +
rust/build_error.rs | 31 +
rust/exports.c | 5 +
rust/kernel/build_assert.rs | 82 +
rust/kernel/error.rs | 90 +-
rust/kernel/lib.rs | 9 +
rust/kernel/prelude.rs | 20 +-
rust/kernel/print.rs | 214 +-
rust/kernel/static_assert.rs | 34 +
rust/kernel/std_vendor.rs | 163 +
rust/kernel/str.rs | 523 +-
rust/kernel/types.rs | 37 +
rust/macros/concat_idents.rs | 23 +
rust/macros/helpers.rs | 24 +-
rust/macros/lib.rs | 108 +-
rust/macros/module.rs | 10 +-
rust/macros/vtable.rs | 95 +
samples/acrn/vm-sample.c | 3 -
samples/bpf/README.rst | 6 +-
samples/bpf/hbm_edt_kern.c | 2 +-
samples/bpf/sockex3_kern.c | 95 +-
samples/bpf/sockex3_user.c | 23 +-
samples/bpf/test_cgrp2_tc.sh | 2 +-
samples/bpf/tracex2_kern.c | 4 +-
samples/bpf/tracex2_user.c | 3 +-
samples/bpf/xdp1_user.c | 2 +-
samples/bpf/xdp2_kern.c | 4 +
samples/bpf/xdp_router_ipv4_user.c | 2 +-
samples/ftrace/ftrace-direct-modify.c | 3 +
samples/ftrace/ftrace-direct-multi-modify.c | 3 +
samples/ftrace/ftrace-direct-multi.c | 2 +
samples/ftrace/ftrace-direct-too.c | 2 +
samples/ftrace/ftrace-direct.c | 2 +
samples/landlock/sandboxer.c | 29 +-
samples/pktgen/functions.sh | 2 +-
samples/rust/Kconfig | 10 +
samples/rust/Makefile | 1 +
samples/rust/rust_minimal.rs | 8 +-
samples/rust/rust_print.rs | 54 +
samples/trace_events/trace-events-sample.c | 2 +-
samples/trace_events/trace-events-sample.h | 34 +-
samples/vfio-mdev/mbochs.c | 8 +-
samples/vfio-mdev/mdpy-fb.c | 8 +-
samples/vfio-mdev/mdpy.c | 8 +-
samples/vfio-mdev/mtty.c | 8 +-
scripts/Kbuild.include | 48 +-
scripts/Makefile.asm-generic | 6 +-
scripts/Makefile.build | 16 +-
scripts/Makefile.clean | 5 +-
scripts/Makefile.compiler | 4 +-
scripts/Makefile.debug | 6 +-
scripts/Makefile.dtbinst | 2 +-
scripts/Makefile.extrawarn | 1 +
scripts/Makefile.lib | 41 +-
scripts/Makefile.modfinal | 8 +-
scripts/Makefile.modinst | 4 +-
scripts/Makefile.modpost | 53 +-
scripts/Makefile.package | 15 +-
scripts/basic/fixdep.c | 1 -
scripts/bpf_doc.py | 49 +-
scripts/checkpatch.pl | 20 +-
scripts/clang-tools/gen_compile_commands.py | 8 +-
scripts/coccicheck | 2 +-
scripts/dtc/checks.c | 15 +-
scripts/dtc/dtc-lexer.l | 2 +-
scripts/dtc/dtc-parser.y | 13 +
scripts/dtc/libfdt/fdt.c | 20 +-
scripts/dtc/libfdt/fdt.h | 4 +-
scripts/dtc/libfdt/fdt_addresses.c | 2 +-
scripts/dtc/libfdt/fdt_overlay.c | 29 +-
scripts/dtc/libfdt/fdt_ro.c | 2 +-
scripts/dtc/libfdt/libfdt.h | 25 +
scripts/dtc/livetree.c | 39 +-
scripts/dtc/util.c | 15 +-
scripts/dtc/util.h | 4 +-
scripts/dtc/version_gen.h | 2 +-
scripts/faddr2line | 7 +-
scripts/gen_autoksyms.sh | 2 +-
scripts/generate_rust_analyzer.py | 8 +-
scripts/head-object-list.txt | 2 -
scripts/jobserver-exec | 4 +-
scripts/kallsyms.c | 81 +-
scripts/kconfig/.gitignore | 4 +-
scripts/kconfig/Makefile | 45 +-
scripts/kconfig/gconf-cfg.sh | 7 +-
scripts/kconfig/lkc.h | 2 +-
scripts/kconfig/mconf-cfg.sh | 25 +-
scripts/kconfig/mconf.c | 11 +-
scripts/kconfig/menu.c | 4 +-
scripts/kconfig/nconf-cfg.sh | 23 +-
scripts/kconfig/qconf-cfg.sh | 10 +-
scripts/kconfig/util.c | 2 +-
scripts/kernel-doc | 72 +-
scripts/link-vmlinux.sh | 4 +
scripts/min-tool-version.sh | 2 +-
scripts/mod/file2alias.c | 30 +-
scripts/mod/modpost.c | 36 +-
scripts/mod/sumversion.c | 4 +-
scripts/module.lds.S | 6 +
scripts/modules-check.sh | 2 +-
scripts/package/buildtar | 2 +-
scripts/package/mkdebian | 2 +-
scripts/package/mkspec | 8 +
scripts/recordmcount.c | 39 +
scripts/remove-stale-files | 2 +
scripts/sorttable.c | 2 +-
scripts/spelling.txt | 33 +-
scripts/sphinx-pre-install | 8 -
security/Kconfig.hardening | 3 +
security/apparmor/Kconfig | 8 +-
security/apparmor/Makefile | 6 +-
security/apparmor/apparmorfs.c | 115 +-
security/apparmor/audit.c | 45 +-
security/apparmor/capability.c | 16 +-
security/apparmor/domain.c | 158 +-
security/apparmor/file.c | 129 +-
security/apparmor/include/apparmor.h | 23 +-
security/apparmor/include/audit.h | 8 +-
security/apparmor/include/cred.h | 13 -
security/apparmor/include/domain.h | 6 -
security/apparmor/include/file.h | 108 +-
security/apparmor/include/label.h | 13 +-
security/apparmor/include/lib.h | 10 +-
security/apparmor/include/match.h | 28 +-
security/apparmor/include/net.h | 1 +
security/apparmor/include/perms.h | 91 +-
security/apparmor/include/policy.h | 141 +-
security/apparmor/include/policy_compat.h | 33 +
security/apparmor/include/policy_unpack.h | 52 +
security/apparmor/ipc.c | 16 +-
security/apparmor/label.c | 75 +-
security/apparmor/lib.c | 125 +-
security/apparmor/lsm.c | 85 +-
security/apparmor/match.c | 62 +-
security/apparmor/mount.c | 93 +-
security/apparmor/net.c | 28 +-
security/apparmor/policy.c | 204 +-
security/apparmor/policy_compat.c | 319 +
security/apparmor/policy_ns.c | 6 +-
security/apparmor/policy_unpack.c | 789 +-
security/apparmor/policy_unpack_test.c | 77 +-
security/apparmor/procattr.c | 11 +-
security/apparmor/resource.c | 29 +-
security/apparmor/task.c | 14 +-
security/commoncap.c | 73 +-
security/device_cgroup.c | 33 +-
security/integrity/digsig.c | 6 +-
security/integrity/evm/evm_crypto.c | 5 +-
security/integrity/evm/evm_main.c | 153 +-
security/integrity/ima/Kconfig | 2 +-
security/integrity/ima/ima.h | 5 +-
security/integrity/ima/ima_appraise.c | 15 +-
security/integrity/ima/ima_main.c | 13 +-
security/integrity/ima/ima_policy.c | 109 +-
security/integrity/ima/ima_template.c | 9 +-
security/integrity/ima/ima_template_lib.c | 11 +-
security/integrity/platform_certs/load_uefi.c | 1 +
security/keys/encrypted-keys/encrypted.c | 6 +-
security/keys/keyctl.c | 4 +-
security/keys/trusted-keys/trusted_tee.c | 3 +-
security/landlock/fs.c | 206 +-
security/landlock/fs.h | 24 +
security/landlock/limits.h | 2 +-
security/landlock/setup.c | 1 +
security/landlock/syscalls.c | 2 +-
security/loadpin/loadpin.c | 30 +-
security/lsm_audit.c | 1 +
security/security.c | 109 +-
security/selinux/hooks.c | 35 +-
security/selinux/selinuxfs.c | 4 +-
security/selinux/ss/services.c | 54 +-
security/selinux/ss/services.h | 15 +-
security/selinux/ss/sidtab.c | 23 +-
security/selinux/ss/sidtab.h | 3 +-
security/smack/smack_lsm.c | 90 +-
security/tomoyo/tomoyo.c | 13 +
sound/aoa/codecs/onyx.c | 5 +-
sound/aoa/codecs/tas.c | 5 +-
sound/core/memalloc.c | 45 +-
sound/core/pcm_native.c | 24 +-
sound/core/pcm_trace.h | 6 +-
sound/core/rawmidi.c | 2 -
sound/core/seq/seq_memory.c | 11 +-
sound/drivers/mts64.c | 3 +
sound/firewire/dice/Makefile | 2 +-
sound/firewire/dice/dice-focusrite.c | 23 +
sound/firewire/dice/dice-stream.c | 12 +-
sound/firewire/dice/dice.c | 10 +
sound/firewire/dice/dice.h | 1 +
sound/hda/ext/hdac_ext_controller.c | 116 +-
sound/hda/ext/hdac_ext_stream.c | 216 +-
sound/hda/hdac_controller.c | 4 +-
sound/hda/hdac_stream.c | 212 +-
sound/i2c/other/ak4117.c | 2 +-
sound/pci/asihpi/asihpi.c | 2 -
sound/pci/asihpi/hpioctl.c | 2 +-
sound/pci/azt3328.c | 9 -
sound/pci/cs5535audio/cs5535audio_pcm.c | 4 +-
sound/pci/hda/Kconfig | 2 +-
sound/pci/hda/cs35l41_hda.c | 1 +
sound/pci/hda/cs35l41_hda_i2c.c | 4 +-
sound/pci/hda/hda_codec.c | 3 +-
sound/pci/hda/hda_cs_dsp_ctl.c | 1 +
sound/pci/hda/patch_cs8409.c | 2 +-
sound/pci/hda/patch_hdmi.c | 147 +-
sound/pci/hda/patch_realtek.c | 79 +
sound/ppc/keywest.c | 5 +-
sound/soc/amd/Kconfig | 4 +-
sound/soc/amd/acp-da7219-max98357a.c | 3 +-
sound/soc/amd/acp/acp-i2s.c | 16 +-
sound/soc/amd/acp/acp-mach-common.c | 62 +-
sound/soc/amd/acp/acp-platform.c | 8 +-
sound/soc/amd/ps/{acp62.h => acp63.h} | 25 +-
sound/soc/amd/ps/pci-ps.c | 141 +-
sound/soc/amd/ps/ps-mach.c | 30 +-
sound/soc/amd/ps/ps-pdm-dma.c | 188 +-
sound/soc/amd/yc/acp6x-mach.c | 7 +
sound/soc/atmel/mchp-spdiftx.c | 165 +-
sound/soc/codecs/Kconfig | 10 +-
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/adau1372.c | 32 +-
sound/soc/codecs/adau1373.c | 1 -
sound/soc/codecs/adau17x1.c | 1 -
sound/soc/codecs/ak4458.c | 13 +-
sound/soc/codecs/cs35l36.c | 4 +-
sound/soc/codecs/cs42l51.c | 2 +-
sound/soc/codecs/cs42l83-i2c.c | 2 +-
sound/soc/codecs/cs42xx8-i2c.c | 28 +-
sound/soc/codecs/cs42xx8.c | 22 +-
sound/soc/codecs/cs42xx8.h | 3 +-
sound/soc/codecs/da7219-aad.c | 46 +-
sound/soc/codecs/da7219-aad.h | 1 +
sound/soc/codecs/da7219.c | 9 +
sound/soc/codecs/es8326.c | 5 +-
sound/soc/codecs/hda.c | 12 +-
sound/soc/codecs/hdac_hda.c | 6 +-
sound/soc/codecs/hdac_hda.h | 4 +-
sound/soc/codecs/hdac_hdmi.c | 8 +-
sound/soc/codecs/hdmi-codec.c | 30 +-
sound/soc/codecs/jz4725b.c | 81 +-
sound/soc/codecs/lochnagar-sc.c | 2 +-
sound/soc/codecs/lpass-tx-macro.c | 149 +-
sound/soc/codecs/lpass-wsa-macro.c | 6 +-
sound/soc/codecs/max98373-i2c.c | 4 +
sound/soc/codecs/max98373-sdw.c | 31 +-
sound/soc/codecs/max98396.c | 6 +-
sound/soc/codecs/max9867.c | 33 +-
sound/soc/codecs/nau8315.c | 2 +
sound/soc/codecs/nau8825.c | 135 +-
sound/soc/codecs/nau8825.h | 23 +
sound/soc/codecs/pcm512x.c | 8 +-
sound/soc/codecs/rt1308-sdw.c | 72 +-
sound/soc/codecs/rt1308-sdw.h | 2 +
sound/soc/codecs/rt1316-sdw.c | 71 +-
sound/soc/codecs/rt1316-sdw.h | 2 +
sound/soc/codecs/rt1318-sdw.c | 884 +
sound/soc/codecs/rt1318-sdw.h | 101 +
sound/soc/codecs/rt298.c | 7 +
sound/soc/codecs/rt5640.c | 8 +
sound/soc/codecs/rt5670.c | 2 -
sound/soc/codecs/rt5682-sdw.c | 28 +-
sound/soc/codecs/rt5682.c | 2 +
sound/soc/codecs/rt5682.h | 2 +-
sound/soc/codecs/rt5682s.c | 22 +
sound/soc/codecs/rt5682s.h | 2 +
sound/soc/codecs/rt700.c | 32 +-
sound/soc/codecs/rt711-sdca-sdw.c | 2 +-
sound/soc/codecs/rt711-sdca.c | 27 +-
sound/soc/codecs/rt711.c | 27 +-
sound/soc/codecs/rt715-sdca.c | 25 +-
sound/soc/codecs/rt715.c | 73 +-
sound/soc/codecs/sdw-mockup.c | 28 +-
sound/soc/codecs/sgtl5000.c | 1 +
sound/soc/codecs/simple-mux.c | 9 +
sound/soc/codecs/src4xxx-i2c.c | 5 +-
sound/soc/codecs/tas2780.c | 5 +-
sound/soc/codecs/tlv320adc3xxx.c | 3 +
sound/soc/codecs/tlv320aic3x.c | 120 +-
sound/soc/codecs/tlv320aic3x.h | 43 +
sound/soc/codecs/twl4030.c | 6 +-
sound/soc/codecs/wcd-clsh-v2.c | 6 -
sound/soc/codecs/wcd938x.c | 4 +-
sound/soc/codecs/wm8961.c | 7 +
sound/soc/codecs/wm8962.c | 8 +
sound/soc/codecs/wm8978.c | 2 +-
sound/soc/codecs/wm8994.c | 5 +
sound/soc/codecs/wm_adsp.c | 39 +-
sound/soc/codecs/wm_adsp.h | 1 +
sound/soc/codecs/wsa883x.c | 28 +-
sound/soc/fsl/fsl_micfil.c | 466 +
sound/soc/fsl/fsl_micfil.h | 6 +-
sound/soc/fsl/fsl_rpmsg.c | 6 +-
sound/soc/fsl/fsl_sai.c | 23 +-
sound/soc/fsl/fsl_sai.h | 1 +
sound/soc/fsl/fsl_xcvr.c | 40 +
sound/soc/fsl/fsl_xcvr.h | 21 +
sound/soc/fsl/imx-audio-rpmsg.c | 3 +-
sound/soc/fsl/imx-audmux.c | 3 +-
sound/soc/fsl/imx-pcm-rpmsg.c | 10 +-
sound/soc/fsl/imx-rpmsg.c | 6 +-
sound/soc/generic/audio-graph-card.c | 4 +-
.../generic/audio-graph-card2-custom-sample.dtsi | 10 +-
sound/soc/generic/audio-graph-card2.c | 6 +-
sound/soc/generic/simple-card-utils.c | 35 +-
sound/soc/intel/Kconfig | 3 +-
sound/soc/intel/avs/Makefile | 4 +
sound/soc/intel/avs/apl.c | 28 +-
sound/soc/intel/avs/avs.h | 92 +-
sound/soc/intel/avs/board_selection.c | 55 +
sound/soc/intel/avs/boards/Kconfig | 18 +
sound/soc/intel/avs/boards/Makefile | 4 +
sound/soc/intel/avs/boards/da7219.c | 41 +-
sound/soc/intel/avs/boards/hdaudio.c | 1 +
sound/soc/intel/avs/boards/max98373.c | 2 +-
sound/soc/intel/avs/boards/max98927.c | 236 +
sound/soc/intel/avs/boards/nau8825.c | 35 +-
sound/soc/intel/avs/boards/probe.c | 64 +
sound/soc/intel/avs/boards/rt274.c | 30 +-
sound/soc/intel/avs/boards/rt286.c | 37 +-
sound/soc/intel/avs/boards/rt298.c | 61 +-
sound/soc/intel/avs/boards/rt5682.c | 31 +-
sound/soc/intel/avs/boards/ssm4567.c | 2 +-
sound/soc/intel/avs/core.c | 118 +-
sound/soc/intel/avs/debugfs.c | 436 +
sound/soc/intel/avs/ipc.c | 10 +-
sound/soc/intel/avs/loader.c | 28 +-
sound/soc/intel/avs/messages.c | 117 +-
sound/soc/intel/avs/messages.h | 55 +
sound/soc/intel/avs/pcm.c | 422 +-
sound/soc/intel/avs/probes.c | 313 +
sound/soc/intel/avs/registers.h | 3 +-
sound/soc/intel/avs/skl.c | 21 +-
sound/soc/intel/avs/topology.c | 10 +
sound/soc/intel/avs/utils.c | 22 -
sound/soc/intel/boards/Kconfig | 1 +
sound/soc/intel/boards/Makefile | 3 +-
sound/soc/intel/boards/bdw-rt5650.c | 2 +-
sound/soc/intel/boards/bdw-rt5677.c | 2 +-
sound/soc/intel/boards/bdw_rt286.c | 55 +-
sound/soc/intel/boards/bxt_da7219_max98357a.c | 3 +-
sound/soc/intel/boards/bxt_rt298.c | 2 +-
sound/soc/intel/boards/bytcht_cx2072x.c | 2 +-
sound/soc/intel/boards/bytcht_es8316.c | 2 +-
sound/soc/intel/boards/bytcr_rt5640.c | 27 +-
sound/soc/intel/boards/bytcr_rt5651.c | 2 +-
sound/soc/intel/boards/bytcr_wm5102.c | 2 +-
sound/soc/intel/boards/cht_bsw_max98090_ti.c | 2 +-
sound/soc/intel/boards/cht_bsw_nau8824.c | 2 +-
sound/soc/intel/boards/cht_bsw_rt5645.c | 2 +-
sound/soc/intel/boards/cht_bsw_rt5672.c | 2 +-
sound/soc/intel/boards/kbl_da7219_max98357a.c | 3 +-
sound/soc/intel/boards/kbl_da7219_max98927.c | 3 +-
sound/soc/intel/boards/skl_nau88l25_max98357a.c | 2 +-
sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 2 +-
sound/soc/intel/boards/sof_cirrus_common.c | 2 +-
sound/soc/intel/boards/sof_da7219_max98373.c | 4 +-
sound/soc/intel/boards/sof_es8336.c | 2 +-
sound/soc/intel/boards/sof_nau8825.c | 16 +
sound/soc/intel/boards/sof_realtek_common.c | 3 +-
sound/soc/intel/boards/sof_rt5682.c | 13 +-
sound/soc/intel/boards/sof_sdw.c | 54 +-
sound/soc/intel/boards/sof_sdw_amp_coeff_tables.h | 300 +
sound/soc/intel/boards/sof_sdw_common.h | 12 +-
sound/soc/intel/boards/sof_sdw_rt1308.c | 158 -
sound/soc/intel/boards/sof_sdw_rt1316.c | 120 -
sound/soc/intel/boards/sof_sdw_rt_amp.c | 359 +
sound/soc/intel/common/soc-acpi-intel-adl-match.c | 16 +-
sound/soc/intel/common/soc-acpi-intel-jsl-match.c | 5 +
sound/soc/intel/common/soc-acpi-intel-mtl-match.c | 59 +
sound/soc/intel/common/soc-acpi-intel-rpl-match.c | 157 +
sound/soc/intel/skylake/skl-messages.c | 6 +-
sound/soc/intel/skylake/skl-pcm.c | 35 +-
sound/soc/intel/skylake/skl-sst-cldma.c | 27 +-
sound/soc/intel/skylake/skl-topology.c | 73 +-
sound/soc/intel/skylake/skl-topology.h | 1 -
sound/soc/intel/skylake/skl.c | 16 +-
sound/soc/jz4740/Kconfig | 1 +
sound/soc/jz4740/jz4740-i2s.c | 485 +-
sound/soc/jz4740/jz4740-i2s.h | 10 -
sound/soc/kirkwood/kirkwood-i2s.c | 135 +-
sound/soc/kirkwood/kirkwood.h | 2 +
sound/soc/mediatek/common/mtk-btcvsd.c | 6 +-
sound/soc/mediatek/mt2701/mt2701-cs42448.c | 1 +
sound/soc/mediatek/mt2701/mt2701-wm8960.c | 1 +
sound/soc/mediatek/mt6797/mt6797-mt6351.c | 1 +
sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 20 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 7 +-
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 4 +-
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 15 +-
.../mt8186/mt8186-mt6366-da7219-max98357.c | 7 +-
.../mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c | 105 +-
.../mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 1 +
sound/soc/mediatek/mt8195/mt8195-mt6359.c | 31 +
sound/soc/meson/axg-pdm.c | 2 +-
sound/soc/pxa/mmp-pcm.c | 2 +-
sound/soc/qcom/Kconfig | 16 +-
sound/soc/qcom/common.c | 2 -
sound/soc/qcom/common.h | 23 -
sound/soc/qcom/lpass-sc7180.c | 23 +
sound/soc/qcom/lpass-sc7280.c | 19 +
sound/soc/qcom/qdsp6/audioreach.c | 310 +-
sound/soc/qcom/qdsp6/audioreach.h | 47 +-
sound/soc/qcom/qdsp6/q6apm.c | 84 +-
sound/soc/qcom/qdsp6/q6apm.h | 6 +-
sound/soc/qcom/qdsp6/q6prm.c | 2 +-
sound/soc/qcom/qdsp6/topology.c | 243 +-
sound/soc/rockchip/rk3399_gru_sound.c | 3 +-
sound/soc/rockchip/rockchip_i2s_tdm.c | 19 +-
sound/soc/rockchip/rockchip_pdm.c | 1 +
sound/soc/rockchip/rockchip_spdif.c | 1 +
sound/soc/sh/Kconfig | 2 +-
sound/soc/sh/rcar/adg.c | 4 +-
sound/soc/sh/rcar/core.c | 7 +-
sound/soc/soc-core.c | 8 +-
sound/soc/soc-dai.c | 11 +-
sound/soc/soc-dapm.c | 189 +-
sound/soc/soc-ops.c | 11 +-
sound/soc/soc-pcm.c | 39 +-
sound/soc/sof/Kconfig | 20 +-
sound/soc/sof/Makefile | 6 +
sound/soc/sof/amd/Kconfig | 1 +
sound/soc/sof/amd/acp-common.c | 109 +
sound/soc/sof/amd/acp-ipc.c | 43 +-
sound/soc/sof/amd/acp-loader.c | 6 +-
sound/soc/sof/amd/acp.c | 12 +-
sound/soc/sof/amd/acp.h | 18 +
sound/soc/sof/amd/rembrandt.c | 16 +
sound/soc/sof/amd/renoir.c | 16 +
sound/soc/sof/core.c | 9 -
sound/soc/sof/intel/Kconfig | 2 +-
sound/soc/sof/intel/Makefile | 2 +-
sound/soc/sof/intel/apl.c | 4 +
sound/soc/sof/intel/bdw.c | 6 +-
sound/soc/sof/intel/byt.c | 12 +-
sound/soc/sof/intel/cnl.c | 35 +-
sound/soc/sof/intel/hda-bus.c | 23 +-
sound/soc/sof/intel/hda-codec.c | 252 +-
sound/soc/sof/intel/hda-common-ops.c | 6 +-
sound/soc/sof/intel/hda-ctrl.c | 102 +-
sound/soc/sof/intel/hda-dai.c | 95 +-
sound/soc/sof/intel/hda-dsp.c | 155 +-
sound/soc/sof/intel/hda-ipc.c | 27 +-
sound/soc/sof/intel/hda-loader-skl.c | 37 +-
sound/soc/sof/intel/hda-loader.c | 98 +-
sound/soc/sof/intel/hda-mlink.c | 89 +
sound/soc/sof/intel/hda-pcm.c | 3 +-
sound/soc/sof/intel/hda-stream.c | 93 +-
sound/soc/sof/intel/hda.c | 141 +-
sound/soc/sof/intel/hda.h | 114 +-
sound/soc/sof/intel/icl.c | 6 +
sound/soc/sof/intel/mtl.c | 161 +-
sound/soc/sof/intel/mtl.h | 2 +
sound/soc/sof/intel/pci-apl.c | 6 +
sound/soc/sof/intel/pci-cnl.c | 9 +
sound/soc/sof/intel/pci-icl.c | 6 +
sound/soc/sof/intel/pci-mtl.c | 3 +
sound/soc/sof/intel/pci-tgl.c | 24 +
sound/soc/sof/intel/pci-tng.c | 6 +-
sound/soc/sof/intel/shim.h | 3 +
sound/soc/sof/intel/tgl.c | 17 +-
sound/soc/sof/ipc.c | 14 +
sound/soc/sof/ipc3-loader.c | 26 +-
sound/soc/sof/ipc3-pcm.c | 2 +
sound/soc/sof/ipc3-topology.c | 36 +-
sound/soc/sof/ipc3.c | 4 +-
sound/soc/sof/ipc4-loader.c | 244 +-
sound/soc/sof/ipc4-pcm.c | 4 +-
sound/soc/sof/ipc4-priv.h | 67 +-
sound/soc/sof/ipc4-topology.c | 214 +-
sound/soc/sof/ipc4.c | 45 +-
sound/soc/sof/loader.c | 25 +-
sound/soc/sof/mediatek/mt8186/mt8186.c | 7 +
sound/soc/sof/mediatek/mtk-adsp-common.c | 2 +-
sound/soc/sof/ops.h | 51 +-
sound/soc/sof/sof-audio.c | 5 +
sound/soc/sof/sof-audio.h | 43 +
sound/soc/sof/sof-client-probes-ipc3.c | 236 +
sound/soc/sof/sof-client-probes-ipc4.c | 281 +
sound/soc/sof/sof-client-probes.c | 278 +-
sound/soc/sof/sof-client-probes.h | 34 +
sound/soc/sof/sof-client.c | 34 +
sound/soc/sof/sof-client.h | 6 +
sound/soc/sof/sof-pci-dev.c | 26 +
sound/soc/sof/sof-priv.h | 36 +-
sound/soc/sof/topology.c | 187 +-
sound/soc/stm/stm32_i2s.c | 2 +-
sound/soc/sunxi/sun50i-dmic.c | 5 +-
sound/soc/tegra/tegra210_mbdrc.c | 4 +-
sound/soc/tegra/tegra210_mbdrc.h | 2 +-
sound/soc/ti/davinci-mcasp.c | 7 +-
sound/soc/uniphier/aio-core.c | 11 +-
sound/sound_core.c | 2 +-
sound/synth/emux/emux.c | 2 +-
sound/usb/card.h | 1 +
sound/usb/endpoint.c | 23 +-
sound/usb/endpoint.h | 3 +-
sound/usb/implicit.c | 6 +-
sound/usb/implicit.h | 2 +-
sound/usb/line6/driver.c | 3 +-
sound/usb/line6/midi.c | 6 +-
sound/usb/line6/midibuf.c | 25 +-
sound/usb/line6/midibuf.h | 5 +-
sound/usb/line6/pod.c | 3 +-
sound/usb/pcm.c | 49 +-
sound/usb/pcm.h | 2 +
sound/usb/quirks-table.h | 2 +
sound/usb/quirks.c | 4 +
sound/usb/usbaudio.h | 8 +
tools/accounting/procacct.c | 7 +-
tools/arch/parisc/include/uapi/asm/mman.h | 12 +-
tools/arch/x86/include/asm/atomic.h | 11 +
tools/arch/x86/include/asm/cpufeatures.h | 6 +
tools/arch/x86/include/asm/disabled-features.h | 17 +-
tools/arch/x86/include/asm/msr-index.h | 24 +-
tools/arch/x86/include/uapi/asm/kvm.h | 8 -
tools/arch/x86/intel_sdsi/intel_sdsi.c | 464 +-
tools/bpf/bpftool/Documentation/bpftool-map.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 15 +-
tools/bpf/bpftool/Documentation/common_options.rst | 17 +-
tools/bpf/bpftool/Documentation/substitutions.rst | 2 +-
tools/bpf/bpftool/Makefile | 74 +-
tools/bpf/bpftool/bash-completion/bpftool | 3 +-
tools/bpf/bpftool/btf.c | 44 +-
tools/bpf/bpftool/btf_dumper.c | 2 +-
tools/bpf/bpftool/common.c | 23 +-
tools/bpf/bpftool/gen.c | 29 +-
tools/bpf/bpftool/iter.c | 12 +-
tools/bpf/bpftool/jit_disasm.c | 261 +-
tools/bpf/bpftool/link.c | 10 +-
tools/bpf/bpftool/main.c | 116 +-
tools/bpf/bpftool/main.h | 49 +-
tools/bpf/bpftool/map.c | 33 +-
tools/bpf/bpftool/net.c | 2 +
tools/bpf/bpftool/perf.c | 2 +
tools/bpf/bpftool/pids.c | 16 +-
tools/bpf/bpftool/prog.c | 124 +-
tools/bpf/bpftool/struct_ops.c | 22 +-
tools/bpf/bpftool/xlated_dumper.c | 2 +
tools/include/asm-generic/atomic-gcc.h | 23 +
tools/include/asm-generic/bitops/atomic.h | 15 +-
tools/include/linux/bitfield.h | 176 +
tools/include/linux/bitmap.h | 34 -
tools/include/linux/interval_tree_generic.h | 187 +
tools/include/uapi/drm/i915_drm.h | 62 +-
tools/include/uapi/linux/bpf.h | 524 +-
tools/include/uapi/linux/fscrypt.h | 4 +-
tools/include/uapi/linux/if_link.h | 1 +
tools/include/uapi/linux/kvm.h | 31 +-
tools/lib/api/Makefile | 66 +
tools/lib/api/fs/tracing_path.c | 16 +
tools/lib/api/fs/tracing_path.h | 1 +
tools/lib/bpf/Makefile | 18 +
tools/lib/bpf/bpf.c | 48 +-
tools/lib/bpf/bpf.h | 23 +
tools/lib/bpf/btf.c | 272 +-
tools/lib/bpf/btf_dump.c | 46 +-
tools/lib/bpf/hashmap.c | 18 +-
tools/lib/bpf/hashmap.h | 91 +-
tools/lib/bpf/libbpf.c | 268 +-
tools/lib/bpf/libbpf.map | 6 +-
tools/lib/bpf/libbpf_probes.c | 3 +-
tools/lib/bpf/ringbuf.c | 30 +-
tools/lib/bpf/strset.c | 18 +-
tools/lib/bpf/usdt.c | 63 +-
tools/lib/perf/Makefile | 37 +-
tools/lib/perf/include/perf/cpumap.h | 3 +-
tools/lib/subcmd/Makefile | 52 +
tools/lib/symbol/Build | 1 +
tools/lib/symbol/Makefile | 122 +
tools/lib/traceevent/.gitignore | 4 -
tools/lib/traceevent/Build | 8 -
tools/lib/traceevent/Documentation/Makefile | 207 -
tools/lib/traceevent/Documentation/asciidoc.conf | 120 -
.../Documentation/libtraceevent-commands.txt | 153 -
.../Documentation/libtraceevent-cpus.txt | 77 -
.../Documentation/libtraceevent-endian_read.txt | 78 -
.../Documentation/libtraceevent-event_find.txt | 103 -
.../Documentation/libtraceevent-event_get.txt | 99 -
.../Documentation/libtraceevent-event_list.txt | 122 -
.../Documentation/libtraceevent-event_print.txt | 130 -
.../Documentation/libtraceevent-field_find.txt | 118 -
.../Documentation/libtraceevent-field_get_val.txt | 122 -
.../Documentation/libtraceevent-field_print.txt | 126 -
.../Documentation/libtraceevent-field_read.txt | 81 -
.../Documentation/libtraceevent-fields.txt | 105 -
.../Documentation/libtraceevent-file_endian.txt | 91 -
.../Documentation/libtraceevent-filter.txt | 209 -
.../Documentation/libtraceevent-func_apis.txt | 183 -
.../Documentation/libtraceevent-func_find.txt | 88 -
.../Documentation/libtraceevent-handle.txt | 101 -
.../Documentation/libtraceevent-header_page.txt | 102 -
.../Documentation/libtraceevent-host_endian.txt | 104 -
.../Documentation/libtraceevent-long_size.txt | 78 -
.../Documentation/libtraceevent-page_size.txt | 82 -
.../Documentation/libtraceevent-parse_event.txt | 90 -
.../Documentation/libtraceevent-parse_head.txt | 82 -
.../Documentation/libtraceevent-plugins.txt | 122 -
.../Documentation/libtraceevent-record_parse.txt | 137 -
.../libtraceevent-reg_event_handler.txt | 156 -
.../Documentation/libtraceevent-reg_print_func.txt | 155 -
.../Documentation/libtraceevent-set_flag.txt | 104 -
.../Documentation/libtraceevent-strerror.txt | 85 -
.../Documentation/libtraceevent-tseq.txt | 158 -
.../lib/traceevent/Documentation/libtraceevent.txt | 192 -
.../lib/traceevent/Documentation/manpage-1.72.xsl | 14 -
.../lib/traceevent/Documentation/manpage-base.xsl | 35 -
.../Documentation/manpage-bold-literal.xsl | 17 -
.../traceevent/Documentation/manpage-normal.xsl | 13 -
.../Documentation/manpage-suppress-sp.xsl | 21 -
tools/lib/traceevent/Makefile | 300 -
tools/lib/traceevent/event-parse-api.c | 333 -
tools/lib/traceevent/event-parse-local.h | 123 -
tools/lib/traceevent/event-parse.c | 7624 ----
tools/lib/traceevent/event-parse.h | 750 -
tools/lib/traceevent/event-plugin.c | 711 -
tools/lib/traceevent/event-utils.h | 67 -
tools/lib/traceevent/kbuffer-parse.c | 809 -
tools/lib/traceevent/kbuffer.h | 68 -
tools/lib/traceevent/libtraceevent.pc.template | 10 -
tools/lib/traceevent/parse-filter.c | 2281 -
tools/lib/traceevent/parse-utils.c | 71 -
tools/lib/traceevent/plugins/Build | 12 -
tools/lib/traceevent/plugins/Makefile | 225 -
tools/lib/traceevent/plugins/plugin_cfg80211.c | 43 -
tools/lib/traceevent/plugins/plugin_function.c | 282 -
tools/lib/traceevent/plugins/plugin_futex.c | 123 -
tools/lib/traceevent/plugins/plugin_hrtimer.c | 74 -
tools/lib/traceevent/plugins/plugin_jbd2.c | 61 -
tools/lib/traceevent/plugins/plugin_kmem.c | 80 -
tools/lib/traceevent/plugins/plugin_kvm.c | 527 -
tools/lib/traceevent/plugins/plugin_mac80211.c | 88 -
tools/lib/traceevent/plugins/plugin_sched_switch.c | 146 -
tools/lib/traceevent/plugins/plugin_scsi.c | 434 -
tools/lib/traceevent/plugins/plugin_tlb.c | 66 -
tools/lib/traceevent/plugins/plugin_xen.c | 138 -
tools/lib/traceevent/tep_strerror.c | 53 -
tools/lib/traceevent/trace-seq.c | 249 -
tools/lib/traceevent/trace-seq.h | 55 -
tools/memory-model/Documentation/explanation.txt | 7 +-
tools/objtool/arch/powerpc/Build | 2 +
tools/objtool/arch/powerpc/decode.c | 110 +
tools/objtool/arch/powerpc/include/arch/cfi_regs.h | 11 +
tools/objtool/arch/powerpc/include/arch/elf.h | 10 +
tools/objtool/arch/powerpc/include/arch/special.h | 21 +
tools/objtool/arch/powerpc/special.c | 19 +
tools/objtool/arch/x86/decode.c | 29 +
tools/objtool/arch/x86/include/arch/elf.h | 2 +
tools/objtool/arch/x86/include/arch/endianness.h | 9 -
tools/objtool/builtin-check.c | 23 +-
tools/objtool/check.c | 448 +-
tools/objtool/elf.c | 304 +-
tools/objtool/include/objtool/arch.h | 4 +
tools/objtool/include/objtool/builtin.h | 4 +
tools/objtool/include/objtool/check.h | 12 +-
tools/objtool/include/objtool/elf.h | 17 +-
tools/objtool/include/objtool/endianness.h | 32 +-
tools/objtool/include/objtool/objtool.h | 1 +
tools/objtool/objtool.c | 1 +
tools/objtool/orc_dump.c | 11 +-
tools/objtool/orc_gen.c | 4 +-
tools/objtool/special.c | 3 +-
tools/perf/.gitignore | 7 +-
tools/perf/Build | 20 +-
tools/perf/Documentation/perf-annotate.txt | 2 +-
tools/perf/Documentation/perf-diff.txt | 2 +-
tools/perf/Documentation/perf-intel-pt.txt | 12 +-
tools/perf/Documentation/perf-list.txt | 10 +-
tools/perf/Documentation/perf-lock.txt | 33 +-
tools/perf/Documentation/perf-probe.txt | 2 +-
tools/perf/Documentation/perf-record.txt | 11 +-
tools/perf/Documentation/perf-report.txt | 2 +-
tools/perf/Documentation/perf-stat.txt | 4 +-
tools/perf/Documentation/perf-top.txt | 7 +-
tools/perf/MANIFEST | 4 +-
tools/perf/Makefile | 2 +-
tools/perf/Makefile.config | 69 +-
tools/perf/Makefile.perf | 173 +-
tools/perf/arch/arm/util/unwind-libdw.c | 2 +-
tools/perf/arch/arm64/entry/syscalls/mksyscalltbl | 25 +-
tools/perf/arch/arm64/util/Build | 2 +-
tools/perf/arch/arm64/util/machine.c | 1 +
tools/perf/arch/arm64/util/pmu.c | 1 +
tools/perf/arch/arm64/util/unwind-libdw.c | 2 +-
tools/perf/arch/powerpc/entry/syscalls/syscall.tbl | 7 +-
tools/perf/arch/powerpc/util/Build | 2 +-
tools/perf/arch/powerpc/util/event.c | 1 +
tools/perf/arch/powerpc/util/unwind-libdw.c | 2 +-
tools/perf/arch/riscv/util/Build | 1 +
tools/perf/arch/riscv/util/header.c | 104 +
tools/perf/arch/s390/util/Build | 2 +-
tools/perf/arch/s390/util/unwind-libdw.c | 1 +
tools/perf/arch/x86/include/arch-tests.h | 1 +
tools/perf/arch/x86/tests/Build | 2 +-
tools/perf/arch/x86/tests/arch-tests.c | 15 +-
...intel-pt-pkt-decoder-test.c => intel-pt-test.c} | 154 +
tools/perf/arch/x86/tests/sample-parsing.c | 1 +
tools/perf/arch/x86/util/Build | 2 +-
tools/perf/arch/x86/util/event.c | 2 +
tools/perf/arch/x86/util/intel-pt.c | 4 +
tools/perf/arch/x86/util/iostat.c | 4 +-
tools/perf/arch/x86/util/tsc.c | 1 +
tools/perf/arch/x86/util/unwind-libdw.c | 2 +-
tools/perf/bench/bench.h | 12 -
tools/perf/bench/find-bit-bench.c | 2 +-
tools/perf/bench/inject-buildid.c | 2 +-
tools/perf/bench/numa.c | 9 +-
tools/perf/builtin-annotate.c | 4 +-
tools/perf/builtin-c2c.c | 6 +-
tools/perf/builtin-daemon.c | 4 +-
tools/perf/builtin-data.c | 5 +-
tools/perf/builtin-diff.c | 2 +-
tools/perf/builtin-ftrace.c | 4 +-
tools/perf/builtin-inject.c | 8 +
tools/perf/builtin-kmem.c | 1 +
tools/perf/builtin-kvm.c | 12 +-
tools/perf/builtin-kwork.c | 13 +-
tools/perf/builtin-list.c | 565 +-
tools/perf/builtin-lock.c | 544 +-
tools/perf/builtin-mem.c | 1 +
tools/perf/builtin-probe.c | 22 +-
tools/perf/builtin-record.c | 24 +-
tools/perf/builtin-report.c | 11 +-
tools/perf/builtin-sched.c | 2 +-
tools/perf/builtin-script.c | 25 +-
tools/perf/builtin-stat.c | 254 +-
tools/perf/builtin-timechart.c | 1 +
tools/perf/builtin-top.c | 6 +-
tools/perf/builtin-trace.c | 153 +-
tools/perf/builtin-version.c | 1 +
tools/perf/dlfilters/dlfilter-test-api-v0.c | 2 +-
tools/perf/examples/bpf/5sec.c | 8 +-
tools/perf/examples/bpf/augmented_raw_syscalls.c | 175 +-
tools/perf/examples/bpf/augmented_syscalls.c | 169 -
tools/perf/examples/bpf/empty.c | 13 +-
tools/perf/examples/bpf/etcsnoop.c | 76 -
tools/perf/examples/bpf/hello.c | 24 +-
tools/perf/include/bpf/bpf.h | 70 -
tools/perf/include/bpf/linux/socket.h | 24 -
tools/perf/include/bpf/pid_filter.h | 21 -
tools/perf/include/bpf/stdio.h | 16 -
tools/perf/include/bpf/unistd.h | 10 -
tools/perf/perf.c | 24 +-
tools/perf/pmu-events/Build | 2 +-
.../{neoverse-n2 => neoverse-n2-v2}/branch.json | 0
.../arm/{neoverse-n2 => neoverse-n2-v2}/bus.json | 0
.../arm/{neoverse-n2 => neoverse-n2-v2}/cache.json | 0
.../{neoverse-n2 => neoverse-n2-v2}/exception.json | 0
.../instruction.json | 0
.../{neoverse-n2 => neoverse-n2-v2}/memory.json | 0
.../{neoverse-n2 => neoverse-n2-v2}/pipeline.json | 0
.../arm/{neoverse-n2 => neoverse-n2-v2}/spe.json | 0
.../arm/{neoverse-n2 => neoverse-n2-v2}/trace.json | 0
tools/perf/pmu-events/arch/arm64/mapfile.csv | 3 +-
tools/perf/pmu-events/arch/riscv/mapfile.csv | 17 +
.../pmu-events/arch/riscv/riscv-sbi-firmware.json | 134 +
.../pmu-events/arch/riscv/sifive/u74/firmware.json | 68 +
.../arch/riscv/sifive/u74/instructions.json | 92 +
.../pmu-events/arch/riscv/sifive/u74/memory.json | 32 +
.../arch/riscv/sifive/u74/microarch.json | 57 +
.../pmu-events/arch/x86/alderlake/adl-metrics.json | 183 +-
.../perf/pmu-events/arch/x86/alderlake/cache.json | 1391 +-
.../arch/x86/alderlake/floating-point.json | 91 +-
.../pmu-events/arch/x86/alderlake/frontend.json | 224 +-
.../perf/pmu-events/arch/x86/alderlake/memory.json | 214 +-
.../perf/pmu-events/arch/x86/alderlake/other.json | 132 +-
.../pmu-events/arch/x86/alderlake/pipeline.json | 1932 +-
.../arch/x86/alderlake/uncore-memory.json | 185 +-
.../arch/x86/alderlake/uncore-other.json | 73 +-
.../arch/x86/alderlake/virtual-memory.json | 223 +-
.../arch/x86/alderlaken/adln-metrics.json | 583 +
.../perf/pmu-events/arch/x86/alderlaken/cache.json | 330 +
.../arch/x86/alderlaken/floating-point.json | 18 +
.../pmu-events/arch/x86/alderlaken/frontend.json | 26 +
.../pmu-events/arch/x86/alderlaken/memory.json | 81 +
.../perf/pmu-events/arch/x86/alderlaken/other.json | 38 +
.../pmu-events/arch/x86/alderlaken/pipeline.json | 533 +
.../arch/x86/alderlaken/uncore-memory.json | 175 +
.../arch/x86/alderlaken/uncore-other.json | 33 +
.../arch/x86/alderlaken/virtual-memory.json | 47 +
tools/perf/pmu-events/arch/x86/amdzen4/branch.json | 82 +
tools/perf/pmu-events/arch/x86/amdzen4/cache.json | 772 +
tools/perf/pmu-events/arch/x86/amdzen4/core.json | 122 +
.../pmu-events/arch/x86/amdzen4/data-fabric.json | 1090 +
.../arch/x86/amdzen4/floating-point.json | 818 +
tools/perf/pmu-events/arch/x86/amdzen4/memory.json | 174 +
tools/perf/pmu-events/arch/x86/amdzen4/other.json | 138 +
.../perf/pmu-events/arch/x86/amdzen4/pipeline.json | 98 +
.../pmu-events/arch/x86/amdzen4/recommended.json | 334 +
tools/perf/pmu-events/arch/x86/bonnell/cache.json | 93 -
.../arch/x86/bonnell/floating-point.json | 47 +-
.../perf/pmu-events/arch/x86/bonnell/frontend.json | 11 -
tools/perf/pmu-events/arch/x86/bonnell/memory.json | 19 -
tools/perf/pmu-events/arch/x86/bonnell/other.json | 74 +-
.../perf/pmu-events/arch/x86/bonnell/pipeline.json | 65 +-
.../arch/x86/bonnell/virtual-memory.json | 15 -
.../pmu-events/arch/x86/broadwell/bdw-metrics.json | 137 +-
.../perf/pmu-events/arch/x86/broadwell/cache.json | 957 -
.../arch/x86/broadwell/floating-point.json | 40 -
.../pmu-events/arch/x86/broadwell/frontend.json | 56 -
.../perf/pmu-events/arch/x86/broadwell/memory.json | 890 -
.../perf/pmu-events/arch/x86/broadwell/other.json | 8 -
.../pmu-events/arch/x86/broadwell/pipeline.json | 272 -
.../arch/x86/broadwell/uncore-cache.json | 19 -
.../arch/x86/broadwell/uncore-other.json | 25 +-
.../arch/x86/broadwell/virtual-memory.json | 76 -
.../arch/x86/broadwellde/bdwde-metrics.json | 143 +-
.../pmu-events/arch/x86/broadwellde/cache.json | 153 -
.../arch/x86/broadwellde/floating-point.json | 40 -
.../pmu-events/arch/x86/broadwellde/frontend.json | 56 -
.../pmu-events/arch/x86/broadwellde/memory.json | 86 -
.../pmu-events/arch/x86/broadwellde/other.json | 8 -
.../pmu-events/arch/x86/broadwellde/pipeline.json | 272 -
.../arch/x86/broadwellde/uncore-cache.json | 414 +-
.../arch/x86/broadwellde/uncore-memory.json | 477 +-
.../arch/x86/broadwellde/uncore-other.json | 163 +-
.../arch/x86/broadwellde/uncore-power.json | 57 -
.../arch/x86/broadwellde/virtual-memory.json | 76 -
.../arch/x86/broadwellx/bdx-metrics.json | 1703 +-
.../perf/pmu-events/arch/x86/broadwellx/cache.json | 191 -
.../arch/x86/broadwellx/floating-point.json | 40 -
.../pmu-events/arch/x86/broadwellx/frontend.json | 56 -
.../pmu-events/arch/x86/broadwellx/memory.json | 143 -
.../perf/pmu-events/arch/x86/broadwellx/other.json | 8 -
.../pmu-events/arch/x86/broadwellx/pipeline.json | 272 -
.../arch/x86/broadwellx/uncore-cache.json | 3740 +-
.../arch/x86/broadwellx/uncore-interconnect.json | 1225 +-
.../arch/x86/broadwellx/uncore-memory.json | 2052 +-
.../arch/x86/broadwellx/uncore-other.json | 2410 +-
.../arch/x86/broadwellx/uncore-power.json | 198 +-
.../arch/x86/broadwellx/virtual-memory.json | 76 -
.../pmu-events/arch/x86/cascadelakex/cache.json | 3644 --
.../arch/x86/cascadelakex/clx-metrics.json | 2217 +-
.../arch/x86/cascadelakex/floating-point.json | 24 -
.../pmu-events/arch/x86/cascadelakex/frontend.json | 109 -
.../pmu-events/arch/x86/cascadelakex/memory.json | 2194 -
.../pmu-events/arch/x86/cascadelakex/other.json | 490 -
.../pmu-events/arch/x86/cascadelakex/pipeline.json | 194 -
.../arch/x86/cascadelakex/uncore-memory.json | 3185 +-
.../arch/x86/cascadelakex/uncore-other.json | 29770 ++++++------
.../arch/x86/cascadelakex/uncore-power.json | 45 +-
.../arch/x86/cascadelakex/virtual-memory.json | 56 -
.../pmu-events/arch/x86/elkhartlake/cache.json | 252 -
.../arch/x86/elkhartlake/floating-point.json | 11 -
.../pmu-events/arch/x86/elkhartlake/frontend.json | 36 -
.../pmu-events/arch/x86/elkhartlake/memory.json | 84 -
.../pmu-events/arch/x86/elkhartlake/other.json | 143 -
.../pmu-events/arch/x86/elkhartlake/pipeline.json | 213 -
.../arch/x86/elkhartlake/virtual-memory.json | 117 -
tools/perf/pmu-events/arch/x86/goldmont/cache.json | 288 -
.../arch/x86/goldmont/floating-point.json | 6 -
.../pmu-events/arch/x86/goldmont/frontend.json | 16 -
.../perf/pmu-events/arch/x86/goldmont/memory.json | 6 -
tools/perf/pmu-events/arch/x86/goldmont/other.json | 10 -
.../pmu-events/arch/x86/goldmont/pipeline.json | 77 -
.../arch/x86/goldmont/virtual-memory.json | 14 -
.../pmu-events/arch/x86/goldmontplus/cache.json | 470 -
.../arch/x86/goldmontplus/floating-point.json | 11 -
.../pmu-events/arch/x86/goldmontplus/frontend.json | 32 -
.../pmu-events/arch/x86/goldmontplus/memory.json | 10 -
.../pmu-events/arch/x86/goldmontplus/other.json | 20 -
.../pmu-events/arch/x86/goldmontplus/pipeline.json | 143 -
.../arch/x86/goldmontplus/virtual-memory.json | 69 -
tools/perf/pmu-events/arch/x86/haswell/cache.json | 211 -
.../arch/x86/haswell/floating-point.json | 20 -
.../perf/pmu-events/arch/x86/haswell/frontend.json | 58 -
.../pmu-events/arch/x86/haswell/hsw-metrics.json | 117 +-
tools/perf/pmu-events/arch/x86/haswell/memory.json | 149 -
tools/perf/pmu-events/arch/x86/haswell/other.json | 8 -
.../perf/pmu-events/arch/x86/haswell/pipeline.json | 258 -
.../pmu-events/arch/x86/haswell/uncore-cache.json | 50 -
.../pmu-events/arch/x86/haswell/uncore-other.json | 21 +-
.../arch/x86/haswell/virtual-memory.json | 98 -
tools/perf/pmu-events/arch/x86/haswellx/cache.json | 217 -
.../arch/x86/haswellx/floating-point.json | 20 -
.../pmu-events/arch/x86/haswellx/frontend.json | 58 -
.../pmu-events/arch/x86/haswellx/hsx-metrics.json | 1467 +-
.../perf/pmu-events/arch/x86/haswellx/memory.json | 170 -
tools/perf/pmu-events/arch/x86/haswellx/other.json | 8 -
.../pmu-events/arch/x86/haswellx/pipeline.json | 258 -
.../pmu-events/arch/x86/haswellx/uncore-cache.json | 2448 +-
.../arch/x86/haswellx/uncore-interconnect.json | 722 +-
.../arch/x86/haswellx/uncore-memory.json | 2037 +-
.../pmu-events/arch/x86/haswellx/uncore-other.json | 1834 +-
.../pmu-events/arch/x86/haswellx/uncore-power.json | 150 +-
.../arch/x86/haswellx/virtual-memory.json | 98 -
tools/perf/pmu-events/arch/x86/icelake/cache.json | 412 -
.../arch/x86/icelake/floating-point.json | 28 -
.../perf/pmu-events/arch/x86/icelake/frontend.json | 144 -
.../pmu-events/arch/x86/icelake/icl-metrics.json | 151 +-
tools/perf/pmu-events/arch/x86/icelake/memory.json | 171 -
tools/perf/pmu-events/arch/x86/icelake/other.json | 132 -
.../perf/pmu-events/arch/x86/icelake/pipeline.json | 349 +-
.../pmu-events/arch/x86/icelake/uncore-other.json | 10 +-
.../arch/x86/icelake/virtual-memory.json | 80 -
tools/perf/pmu-events/arch/x86/icelakex/cache.json | 316 +-
.../arch/x86/icelakex/floating-point.json | 28 -
.../pmu-events/arch/x86/icelakex/frontend.json | 140 -
.../pmu-events/arch/x86/icelakex/icx-metrics.json | 2192 +-
.../perf/pmu-events/arch/x86/icelakex/memory.json | 139 +-
tools/perf/pmu-events/arch/x86/icelakex/other.json | 117 -
.../pmu-events/arch/x86/icelakex/pipeline.json | 344 +-
.../arch/x86/icelakex/uncore-memory.json | 1878 +-
.../pmu-events/arch/x86/icelakex/uncore-other.json | 45144 +++++++++----------
.../pmu-events/arch/x86/icelakex/uncore-power.json | 115 +-
.../arch/x86/icelakex/virtual-memory.json | 88 -
.../perf/pmu-events/arch/x86/ivybridge/cache.json | 235 -
.../arch/x86/ivybridge/floating-point.json | 34 -
.../pmu-events/arch/x86/ivybridge/frontend.json | 60 -
.../pmu-events/arch/x86/ivybridge/ivb-metrics.json | 119 +-
.../perf/pmu-events/arch/x86/ivybridge/memory.json | 54 -
.../perf/pmu-events/arch/x86/ivybridge/other.json | 8 -
.../pmu-events/arch/x86/ivybridge/pipeline.json | 250 -
.../arch/x86/ivybridge/uncore-cache.json | 50 -
.../arch/x86/ivybridge/uncore-other.json | 28 +-
.../arch/x86/ivybridge/virtual-memory.json | 36 -
tools/perf/pmu-events/arch/x86/ivytown/cache.json | 274 -
.../arch/x86/ivytown/floating-point.json | 34 -
.../perf/pmu-events/arch/x86/ivytown/frontend.json | 60 -
.../pmu-events/arch/x86/ivytown/ivt-metrics.json | 133 +-
tools/perf/pmu-events/arch/x86/ivytown/memory.json | 121 -
tools/perf/pmu-events/arch/x86/ivytown/other.json | 8 -
.../perf/pmu-events/arch/x86/ivytown/pipeline.json | 250 -
.../pmu-events/arch/x86/ivytown/uncore-cache.json | 388 +-
.../arch/x86/ivytown/uncore-interconnect.json | 505 +-
.../pmu-events/arch/x86/ivytown/uncore-memory.json | 209 +-
.../pmu-events/arch/x86/ivytown/uncore-other.json | 254 +-
.../pmu-events/arch/x86/ivytown/uncore-power.json | 95 -
.../arch/x86/ivytown/virtual-memory.json | 40 -
tools/perf/pmu-events/arch/x86/jaketown/cache.json | 289 -
.../arch/x86/jaketown/floating-point.json | 30 -
.../pmu-events/arch/x86/jaketown/frontend.json | 64 -
.../pmu-events/arch/x86/jaketown/jkt-metrics.json | 91 +-
.../perf/pmu-events/arch/x86/jaketown/memory.json | 103 -
tools/perf/pmu-events/arch/x86/jaketown/other.json | 12 -
.../pmu-events/arch/x86/jaketown/pipeline.json | 255 -
.../pmu-events/arch/x86/jaketown/uncore-cache.json | 266 +-
.../arch/x86/jaketown/uncore-interconnect.json | 132 -
.../arch/x86/jaketown/uncore-memory.json | 58 -
.../pmu-events/arch/x86/jaketown/uncore-other.json | 155 +-
.../pmu-events/arch/x86/jaketown/uncore-power.json | 51 -
.../arch/x86/jaketown/virtual-memory.json | 32 -
.../pmu-events/arch/x86/knightslanding/cache.json | 411 -
.../arch/x86/knightslanding/floating-point.json | 3 -
.../arch/x86/knightslanding/frontend.json | 7 -
.../pmu-events/arch/x86/knightslanding/memory.json | 201 -
.../arch/x86/knightslanding/pipeline.json | 44 -
.../arch/x86/knightslanding/uncore-other.json | 1016 +-
.../arch/x86/knightslanding/virtual-memory.json | 7 -
tools/perf/pmu-events/arch/x86/mapfile.csv | 20 +-
.../perf/pmu-events/arch/x86/meteorlake/cache.json | 170 +-
.../pmu-events/arch/x86/meteorlake/frontend.json | 6 -
.../pmu-events/arch/x86/meteorlake/memory.json | 77 +-
.../perf/pmu-events/arch/x86/meteorlake/other.json | 24 +-
.../pmu-events/arch/x86/meteorlake/pipeline.json | 222 +-
.../arch/x86/meteorlake/virtual-memory.json | 28 +-
.../perf/pmu-events/arch/x86/nehalemep/cache.json | 524 -
.../arch/x86/nehalemep/floating-point.json | 28 -
.../pmu-events/arch/x86/nehalemep/frontend.json | 3 -
.../perf/pmu-events/arch/x86/nehalemep/memory.json | 134 -
.../perf/pmu-events/arch/x86/nehalemep/other.json | 18 -
.../pmu-events/arch/x86/nehalemep/pipeline.json | 127 +-
.../arch/x86/nehalemep/virtual-memory.json | 13 -
.../perf/pmu-events/arch/x86/nehalemex/cache.json | 519 -
.../arch/x86/nehalemex/floating-point.json | 28 -
.../pmu-events/arch/x86/nehalemex/frontend.json | 3 -
.../perf/pmu-events/arch/x86/nehalemex/memory.json | 134 -
.../perf/pmu-events/arch/x86/nehalemex/other.json | 18 -
.../pmu-events/arch/x86/nehalemex/pipeline.json | 127 +-
.../arch/x86/nehalemex/virtual-memory.json | 13 -
.../pmu-events/arch/x86/sandybridge/cache.json | 441 -
.../arch/x86/sandybridge/floating-point.json | 30 -
.../pmu-events/arch/x86/sandybridge/frontend.json | 64 -
.../pmu-events/arch/x86/sandybridge/memory.json | 108 -
.../pmu-events/arch/x86/sandybridge/other.json | 12 -
.../pmu-events/arch/x86/sandybridge/pipeline.json | 257 -
.../arch/x86/sandybridge/snb-metrics.json | 83 +-
.../arch/x86/sandybridge/uncore-cache.json | 50 -
.../arch/x86/sandybridge/uncore-other.json | 28 +-
.../arch/x86/sandybridge/virtual-memory.json | 32 -
.../pmu-events/arch/x86/sapphirerapids/cache.json | 350 +-
.../arch/x86/sapphirerapids/floating-point.json | 63 -
.../arch/x86/sapphirerapids/frontend.json | 144 -
.../pmu-events/arch/x86/sapphirerapids/memory.json | 125 +-
.../pmu-events/arch/x86/sapphirerapids/other.json | 91 +-
.../arch/x86/sapphirerapids/pipeline.json | 424 +-
.../arch/x86/sapphirerapids/spr-metrics.json | 2309 +-
.../arch/x86/sapphirerapids/uncore-memory.json | 526 +-
.../arch/x86/sapphirerapids/uncore-other.json | 6606 ++-
.../arch/x86/sapphirerapids/uncore-power.json | 84 +-
.../arch/x86/sapphirerapids/virtual-memory.json | 80 -
.../perf/pmu-events/arch/x86/silvermont/cache.json | 133 -
.../arch/x86/silvermont/floating-point.json | 1 -
.../pmu-events/arch/x86/silvermont/frontend.json | 8 -
.../pmu-events/arch/x86/silvermont/memory.json | 1 -
.../perf/pmu-events/arch/x86/silvermont/other.json | 2 -
.../pmu-events/arch/x86/silvermont/pipeline.json | 35 -
.../arch/x86/silvermont/virtual-memory.json | 7 -
tools/perf/pmu-events/arch/x86/skylake/cache.json | 660 -
.../arch/x86/skylake/floating-point.json | 14 -
.../perf/pmu-events/arch/x86/skylake/frontend.json | 109 -
tools/perf/pmu-events/arch/x86/skylake/memory.json | 358 -
tools/perf/pmu-events/arch/x86/skylake/other.json | 4 -
.../perf/pmu-events/arch/x86/skylake/pipeline.json | 192 -
.../pmu-events/arch/x86/skylake/skl-metrics.json | 155 +-
.../pmu-events/arch/x86/skylake/uncore-cache.json | 18 -
.../pmu-events/arch/x86/skylake/uncore-other.json | 31 +-
.../arch/x86/skylake/virtual-memory.json | 56 -
tools/perf/pmu-events/arch/x86/skylakex/cache.json | 368 -
.../arch/x86/skylakex/floating-point.json | 18 -
.../pmu-events/arch/x86/skylakex/frontend.json | 109 -
.../perf/pmu-events/arch/x86/skylakex/memory.json | 310 -
tools/perf/pmu-events/arch/x86/skylakex/other.json | 30 -
.../pmu-events/arch/x86/skylakex/pipeline.json | 194 -
.../pmu-events/arch/x86/skylakex/skx-metrics.json | 2134 +-
.../arch/x86/skylakex/uncore-memory.json | 2303 +-
.../pmu-events/arch/x86/skylakex/uncore-other.json | 29356 ++++++------
.../pmu-events/arch/x86/skylakex/uncore-power.json | 45 +-
.../arch/x86/skylakex/virtual-memory.json | 56 -
.../perf/pmu-events/arch/x86/snowridgex/cache.json | 252 -
.../arch/x86/snowridgex/floating-point.json | 11 -
.../pmu-events/arch/x86/snowridgex/frontend.json | 36 -
.../pmu-events/arch/x86/snowridgex/memory.json | 84 -
.../perf/pmu-events/arch/x86/snowridgex/other.json | 143 -
.../pmu-events/arch/x86/snowridgex/pipeline.json | 213 -
.../arch/x86/snowridgex/uncore-memory.json | 624 +-
.../arch/x86/snowridgex/uncore-other.json | 26334 +++++------
.../arch/x86/snowridgex/uncore-power.json | 114 +-
.../arch/x86/snowridgex/virtual-memory.json | 117 -
.../perf/pmu-events/arch/x86/tigerlake/cache.json | 210 +-
.../arch/x86/tigerlake/floating-point.json | 27 -
.../pmu-events/arch/x86/tigerlake/frontend.json | 125 -
.../perf/pmu-events/arch/x86/tigerlake/memory.json | 77 -
.../perf/pmu-events/arch/x86/tigerlake/other.json | 13 -
.../pmu-events/arch/x86/tigerlake/pipeline.json | 287 +-
.../pmu-events/arch/x86/tigerlake/tgl-metrics.json | 141 +-
.../arch/x86/tigerlake/uncore-other.json | 96 +-
.../arch/x86/tigerlake/virtual-memory.json | 60 -
.../pmu-events/arch/x86/westmereep-dp/cache.json | 445 -
.../arch/x86/westmereep-dp/floating-point.json | 28 -
.../arch/x86/westmereep-dp/frontend.json | 3 -
.../pmu-events/arch/x86/westmereep-dp/memory.json | 137 -
.../pmu-events/arch/x86/westmereep-dp/other.json | 22 -
.../arch/x86/westmereep-dp/pipeline.json | 129 +-
.../arch/x86/westmereep-dp/virtual-memory.json | 21 -
.../pmu-events/arch/x86/westmereep-sp/cache.json | 517 -
.../arch/x86/westmereep-sp/floating-point.json | 28 -
.../arch/x86/westmereep-sp/frontend.json | 3 -
.../pmu-events/arch/x86/westmereep-sp/memory.json | 134 -
.../pmu-events/arch/x86/westmereep-sp/other.json | 22 -
.../arch/x86/westmereep-sp/pipeline.json | 129 +-
.../arch/x86/westmereep-sp/virtual-memory.json | 18 -
.../perf/pmu-events/arch/x86/westmereex/cache.json | 516 -
.../arch/x86/westmereex/floating-point.json | 28 -
.../pmu-events/arch/x86/westmereex/frontend.json | 3 -
.../pmu-events/arch/x86/westmereex/memory.json | 135 -
.../perf/pmu-events/arch/x86/westmereex/other.json | 22 -
.../pmu-events/arch/x86/westmereex/pipeline.json | 129 +-
.../arch/x86/westmereex/virtual-memory.json | 21 -
tools/perf/pmu-events/jevents.py | 12 +-
tools/perf/pmu-events/metric.py | 502 +
tools/perf/pmu-events/metric_test.py | 157 +
tools/perf/scripts/python/Perf-Trace-Util/Build | 2 +-
tools/perf/scripts/python/bin/task-analyzer-record | 2 +
tools/perf/scripts/python/bin/task-analyzer-report | 3 +
tools/perf/scripts/python/intel-pt-events.py | 65 +-
tools/perf/scripts/python/task-analyzer.py | 934 +
tools/perf/tests/Build | 15 +-
tools/perf/tests/attr.py | 71 +-
tools/perf/tests/attr/README | 2 -
tools/perf/tests/attr/test-record-group | 22 -
.../attr/test-record-user-regs-no-sve-aarch64 | 9 +
.../attr/test-record-user-regs-old-sve-aarch64 | 10 +
.../tests/attr/test-record-user-regs-sve-aarch64 | 14 +
tools/perf/tests/attr/test-stat-group | 17 -
tools/perf/tests/bitmap.c | 2 +-
tools/perf/tests/builtin-test.c | 38 +-
tools/perf/tests/code-reading.c | 4 +-
tools/perf/tests/cpumap.c | 2 +-
tools/perf/tests/dlfilter-test.c | 3 +-
tools/perf/tests/event_groups.c | 139 +
tools/perf/tests/expr.c | 29 +-
tools/perf/tests/make | 2 +-
tools/perf/tests/mem2node.c | 2 +-
tools/perf/tests/mmap-basic.c | 2 +
tools/perf/tests/openat-syscall-tp-fields.c | 1 +
tools/perf/tests/openat-syscall.c | 1 +
tools/perf/tests/parse-events.c | 36 +-
tools/perf/tests/parse-metric.c | 2 +-
tools/perf/tests/parse-no-sample-id-all.c | 1 +
tools/perf/tests/perf-record.c | 2 +
tools/perf/tests/perf-time-to-tsc.c | 1 +
tools/perf/tests/pmu-events.c | 26 +-
tools/perf/tests/sample-parsing.c | 4 +-
tools/perf/tests/shell/lib/probe_vfs_getname.sh | 4 +-
tools/perf/tests/shell/lock_contention.sh | 119 +-
tools/perf/tests/shell/pipe_test.sh | 55 +-
.../tests/shell/record+probe_libc_inet_pton.sh | 2 +-
.../tests/shell/record+script_probe_vfs_getname.sh | 2 +-
tools/perf/tests/shell/record.sh | 129 +-
tools/perf/tests/shell/record_offcpu.sh | 2 +-
tools/perf/tests/shell/stat.sh | 10 +-
tools/perf/tests/shell/stat_all_pmu.sh | 13 +-
tools/perf/tests/shell/test_arm_callgraph_fp.sh | 34 +-
tools/perf/tests/shell/test_arm_coresight.sh | 8 +-
tools/perf/tests/shell/test_arm_spe.sh | 6 +-
tools/perf/tests/shell/test_arm_spe_fork.sh | 46 +-
tools/perf/tests/shell/test_brstack.sh | 68 +-
tools/perf/tests/shell/test_data_symbol.sh | 33 +-
tools/perf/tests/shell/test_java_symbol.sh | 2 +-
tools/perf/tests/shell/test_task_analyzer.sh | 151 +
tools/perf/tests/shell/trace+probe_vfs_getname.sh | 4 +-
tools/perf/tests/sw-clock.c | 1 +
tools/perf/tests/switch-tracking.c | 1 +
tools/perf/tests/tests.h | 28 +
tools/perf/tests/thread-map.c | 1 +
tools/perf/tests/workloads/Build | 13 +
tools/perf/tests/workloads/brstack.c | 40 +
tools/perf/tests/workloads/datasym.c | 24 +
tools/perf/tests/workloads/leafloop.c | 34 +
tools/perf/tests/workloads/noploop.c | 32 +
tools/perf/tests/workloads/sqrtloop.c | 45 +
tools/perf/tests/workloads/thloop.c | 53 +
tools/perf/tests/wp.c | 12 +-
tools/perf/trace/beauty/Build | 1 +
tools/perf/trace/beauty/beauty.h | 3 +
tools/perf/trace/beauty/fadvise.sh | 2 +-
tools/perf/trace/beauty/fsmount.sh | 2 +-
tools/perf/trace/beauty/fspick.sh | 2 +-
tools/perf/trace/beauty/kcmp_type.sh | 2 +-
tools/perf/trace/beauty/kvm_ioctl.sh | 4 +-
tools/perf/trace/beauty/madvise_behavior.sh | 2 +-
tools/perf/trace/beauty/mmap_flags.sh | 22 +-
tools/perf/trace/beauty/mmap_prot.sh | 12 +-
tools/perf/trace/beauty/mount_flags.sh | 4 +-
tools/perf/trace/beauty/move_mount_flags.sh | 2 +-
tools/perf/trace/beauty/mremap_flags.sh | 4 +-
tools/perf/trace/beauty/perf_event_open.c | 44 +
tools/perf/trace/beauty/perf_ioctl.sh | 2 +-
.../perf/trace/beauty/pkey_alloc_access_rights.sh | 2 +-
tools/perf/trace/beauty/prctl_option.sh | 4 +-
tools/perf/trace/beauty/rename_flags.sh | 4 +-
tools/perf/trace/beauty/sockaddr.sh | 4 +-
tools/perf/trace/beauty/socket.sh | 4 +-
tools/perf/trace/beauty/sync_file_range.sh | 2 +-
tools/perf/trace/beauty/timespec.c | 21 +
.../trace/beauty/tracepoints/x86_irq_vectors.sh | 4 +-
tools/perf/trace/beauty/tracepoints/x86_msr.sh | 12 +-
tools/perf/trace/beauty/usbdevfs_ioctl.sh | 4 +-
tools/perf/trace/beauty/vhost_virtio_ioctl.sh | 4 +-
tools/perf/trace/beauty/x86_arch_prctl.sh | 4 +-
tools/perf/ui/util.c | 5 +
tools/perf/util/Build | 30 +-
tools/perf/util/affinity.c | 4 +-
tools/perf/util/amd-sample-raw.c | 1 +
.../perf/util/arm64-frame-pointer-unwind-support.h | 6 +-
tools/perf/util/auxtrace.c | 1 +
tools/perf/util/auxtrace.h | 2 +-
tools/perf/util/bpf-loader.c | 15 +-
tools/perf/util/bpf-prologue.h | 6 +-
tools/perf/util/bpf_counter.c | 2 +-
tools/perf/util/bpf_kwork.c | 3 +
tools/perf/util/bpf_lock_contention.c | 171 +-
tools/perf/util/bpf_map.h | 3 +-
tools/perf/util/bpf_off_cpu.c | 2 +-
tools/perf/util/bpf_skel/lock_contention.bpf.c | 139 +-
tools/perf/util/bpf_skel/lock_data.h | 30 +
tools/perf/util/branch.h | 9 +-
tools/perf/util/config.c | 4 +-
tools/perf/util/counts.c | 1 -
tools/perf/util/counts.h | 1 -
tools/perf/util/cpumap.c | 17 +-
tools/perf/util/cpumap.h | 10 +-
tools/perf/util/cs-etm-base.c | 174 +
tools/perf/util/cs-etm.c | 208 +-
tools/perf/util/cs-etm.h | 46 +-
tools/perf/util/data-convert-bt.c | 8 +-
tools/perf/util/data-convert-json.c | 27 +
tools/perf/util/debug.c | 4 +
tools/perf/util/dlfilter.c | 2 +-
tools/perf/util/dwarf-aux.c | 77 +-
tools/perf/util/dwarf-aux.h | 3 +
tools/perf/util/event.h | 124 +-
tools/perf/util/evlist.c | 10 +-
tools/perf/util/evlist.h | 6 +-
tools/perf/util/evsel.c | 56 +-
tools/perf/util/evsel.h | 16 +-
tools/perf/util/evsel_fprintf.c | 7 +-
tools/perf/util/expr.c | 37 +-
tools/perf/util/expr.h | 7 +-
tools/perf/util/hashmap.c | 18 +-
tools/perf/util/hashmap.h | 91 +-
tools/perf/util/header.c | 27 +-
tools/perf/util/header.h | 2 +
tools/perf/util/hist.c | 10 +-
tools/perf/util/hist.h | 1 +
.../util/intel-pt-decoder/intel-pt-insn-decoder.c | 1 +
tools/perf/util/intel-pt.c | 7 +-
tools/perf/util/iostat.c | 3 +-
tools/perf/util/iostat.h | 4 +-
tools/perf/util/kwork.h | 12 +-
tools/perf/util/llvm-utils.c | 8 +-
tools/perf/util/lock-contention.h | 15 +-
tools/perf/util/machine.c | 40 +
tools/perf/util/machine.h | 8 +
tools/perf/util/metricgroup.c | 253 +-
tools/perf/util/metricgroup.h | 4 +-
tools/perf/util/mmap.c | 6 +-
tools/perf/util/mmap.h | 5 -
tools/perf/util/parse-branch-options.c | 3 +
tools/perf/util/parse-events.c | 16 +
tools/perf/util/parse-events.h | 1 -
tools/perf/util/perf_regs.c | 2 +-
tools/perf/util/pfm.c | 154 +-
tools/perf/util/pfm.h | 7 +-
tools/perf/util/pmu.c | 296 +-
tools/perf/util/pmu.h | 128 +-
tools/perf/util/pmus.c | 5 +
tools/perf/util/pmus.h | 9 +
tools/perf/util/print-events.c | 639 +-
tools/perf/util/print-events.h | 42 +-
tools/perf/util/probe-finder.c | 37 +-
tools/perf/util/python.c | 26 +-
tools/perf/util/record.c | 7 -
tools/perf/util/record.h | 1 -
tools/perf/util/s390-cpumsf.c | 1 +
tools/perf/util/s390-sample-raw.c | 1 +
tools/perf/util/sample.h | 117 +
tools/perf/util/scripting-engines/Build | 8 +-
.../perf/util/scripting-engines/trace-event-perl.c | 5 +-
.../util/scripting-engines/trace-event-python.c | 14 +-
tools/perf/util/session.c | 7 +-
tools/perf/util/session.h | 2 +
tools/perf/util/setup.py | 26 +-
tools/perf/util/sort.c | 192 +-
tools/perf/util/sort.h | 1 +
tools/perf/util/srcline.c | 20 +-
tools/perf/util/stat-display.c | 1514 +-
tools/perf/util/stat-shadow.c | 3 +-
tools/perf/util/stat.c | 415 +-
tools/perf/util/stat.h | 41 +-
tools/perf/util/svghelper.c | 2 +-
tools/perf/util/symbol-elf.c | 30 +-
tools/perf/util/symbol-minimal.c | 5 +
tools/perf/util/symbol.h | 3 +
tools/perf/util/synthetic-events.c | 9 +-
tools/perf/util/thread.h | 3 +
tools/perf/util/thread_map.c | 1 +
tools/perf/util/thread_map.h | 2 -
tools/perf/util/trace-event-info.c | 14 +-
tools/perf/util/trace-event-parse.c | 2 +
tools/perf/util/trace-event-read.c | 4 +-
tools/perf/util/trace-event-scripting.c | 3 +-
tools/perf/util/trace-event.c | 1 -
tools/perf/util/trace-event.h | 13 +-
tools/perf/util/util.h | 25 +-
tools/power/acpi/tools/acpidump/Makefile | 1 +
tools/power/acpi/tools/acpidump/apdump.c | 4 +-
tools/power/cpupower/Makefile | 15 +-
tools/power/cpupower/lib/powercap.c | 290 +
tools/power/cpupower/lib/powercap.h | 54 +
tools/power/cpupower/man/cpupower-powercap-info.1 | 25 +
tools/power/cpupower/po/ka.po | 983 +
tools/power/cpupower/utils/builtin.h | 2 +
tools/power/cpupower/utils/cpufreq-info.c | 4 +-
tools/power/cpupower/utils/cpuidle-info.c | 4 +-
tools/power/cpupower/utils/cpupower-info.c | 4 +-
tools/power/cpupower/utils/cpupower.c | 1 +
.../cpupower/utils/idle_monitor/cpupower-monitor.c | 7 +-
.../cpupower/utils/idle_monitor/idle_monitors.def | 1 +
.../cpupower/utils/idle_monitor/rapl_monitor.c | 148 +
tools/power/cpupower/utils/powercap-info.c | 117 +
tools/power/pm-graph/sleepgraph.py | 2 +-
tools/testing/cxl/Kbuild | 2 +
tools/testing/cxl/config_check.c | 2 +
tools/testing/cxl/test/cxl.c | 303 +-
tools/testing/cxl/test/mem.c | 453 +-
tools/testing/cxl/test/mock.c | 19 +
tools/testing/cxl/test/mock.h | 3 +
tools/testing/ktest/ktest.pl | 32 +-
tools/testing/ktest/sample.conf | 8 +
tools/testing/kunit/kunit.py | 36 +-
tools/testing/kunit/kunit_parser.py | 188 +-
tools/testing/kunit/kunit_tool_test.py | 164 +-
.../kunit/test_data/test_parse_ktap_output.log | 8 +
.../kunit/test_data/test_parse_subtest_header.log | 7 +
tools/testing/memblock/Makefile | 2 +-
tools/testing/memblock/TODO | 14 +-
tools/testing/memblock/main.c | 2 +
tools/testing/memblock/tests/alloc_exact_nid_api.c | 1113 +
tools/testing/memblock/tests/alloc_exact_nid_api.h | 25 +
tools/testing/memblock/tests/alloc_nid_api.c | 546 +-
tools/testing/memblock/tests/alloc_nid_api.h | 1 +
tools/testing/memblock/tests/basic_api.c | 184 +
tools/testing/memblock/tests/common.c | 7 +-
tools/testing/memblock/tests/common.h | 8 +-
tools/testing/nvdimm/Kbuild | 1 -
tools/testing/nvdimm/dimm_devs.c | 30 -
tools/testing/radix-tree/maple.c | 5 +-
tools/testing/selftests/Makefile | 3 +
tools/testing/selftests/alsa/.gitignore | 1 +
tools/testing/selftests/alsa/Makefile | 15 +-
tools/testing/selftests/alsa/alsa-local.h | 24 +
tools/testing/selftests/alsa/conf.c | 448 +
.../alsa/conf.d/Lenovo_ThinkPad_P1_Gen2.conf | 79 +
tools/testing/selftests/alsa/mixer-test.c | 53 +-
tools/testing/selftests/alsa/pcm-test.c | 489 +
tools/testing/selftests/amd-pstate/Makefile | 11 +-
.../testing/selftests/amd-pstate/amd-pstate-ut.sh | 56 -
tools/testing/selftests/amd-pstate/basic.sh | 38 +
tools/testing/selftests/amd-pstate/gitsource.sh | 354 +
tools/testing/selftests/amd-pstate/run.sh | 387 +
tools/testing/selftests/amd-pstate/tbench.sh | 339 +
tools/testing/selftests/arm64/abi/hwcap.c | 32 +
.../testing/selftests/arm64/abi/syscall-abi-asm.S | 4 +-
tools/testing/selftests/arm64/fp/fp-stress.c | 120 +-
.../selftests/arm64/mte/check_buffer_fill.c | 12 +-
.../selftests/arm64/mte/check_mmap_options.c | 9 +-
.../testing/selftests/arm64/signal/testcases/TODO | 1 -
.../selftests/arm64/signal/testcases/testcases.c | 21 +-
tools/testing/selftests/bpf/DENYLIST | 3 +-
tools/testing/selftests/bpf/DENYLIST.aarch64 | 84 +
tools/testing/selftests/bpf/DENYLIST.s390x | 47 +-
tools/testing/selftests/bpf/Makefile | 37 +-
tools/testing/selftests/bpf/README.rst | 53 +-
tools/testing/selftests/bpf/bpf_experimental.h | 68 +
tools/testing/selftests/bpf/bpf_legacy.h | 19 +-
.../selftests/bpf/bpf_testmod/bpf_testmod.c | 24 +
tools/testing/selftests/bpf/bpf_util.h | 19 +
tools/testing/selftests/bpf/cgroup_helpers.c | 22 +-
tools/testing/selftests/bpf/cgroup_helpers.h | 1 +
tools/testing/selftests/bpf/config | 8 +-
tools/testing/selftests/bpf/config.aarch64 | 181 +
tools/testing/selftests/bpf/config.s390x | 3 -
tools/testing/selftests/bpf/config.x86_64 | 1 -
.../selftests/bpf/map_tests/sk_storage_map.c | 36 +-
tools/testing/selftests/bpf/network_helpers.c | 47 +-
tools/testing/selftests/bpf/prog_tests/align.c | 38 +-
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 41 +-
tools/testing/selftests/bpf/prog_tests/bpf_nf.c | 6 +-
tools/testing/selftests/bpf/prog_tests/btf.c | 278 +-
.../selftests/bpf/prog_tests/btf_dedup_split.c | 45 +-
tools/testing/selftests/bpf/prog_tests/btf_dump.c | 4 +-
.../selftests/bpf/prog_tests/btf_skc_cls_ingress.c | 25 +-
.../testing/selftests/bpf/prog_tests/cgroup_iter.c | 76 +
.../testing/selftests/bpf/prog_tests/cgrp_kfunc.c | 175 +
.../selftests/bpf/prog_tests/cgrp_local_storage.c | 265 +
tools/testing/selftests/bpf/prog_tests/dynptr.c | 80 +-
tools/testing/selftests/bpf/prog_tests/empty_skb.c | 146 +
.../selftests/bpf/prog_tests/fexit_bpf2bpf.c | 48 +
tools/testing/selftests/bpf/prog_tests/hashmap.c | 190 +-
.../selftests/bpf/prog_tests/kfunc_dynptr_param.c | 7 +-
.../selftests/bpf/prog_tests/kprobe_multi_test.c | 40 +-
.../bpf/prog_tests/kprobe_multi_testmod_test.c | 89 +
.../bpf/prog_tests/libbpf_get_fd_by_id_opts.c | 87 +
.../testing/selftests/bpf/prog_tests/libbpf_str.c | 8 +
.../testing/selftests/bpf/prog_tests/linked_list.c | 740 +
.../testing/selftests/bpf/prog_tests/lsm_cgroup.c | 17 +-
tools/testing/selftests/bpf/prog_tests/map_kptr.c | 83 +-
.../selftests/bpf/prog_tests/module_attach.c | 7 +
.../selftests/bpf/prog_tests/rcu_read_lock.c | 158 +
tools/testing/selftests/bpf/prog_tests/ringbuf.c | 66 +-
tools/testing/selftests/bpf/prog_tests/skeleton.c | 11 +-
tools/testing/selftests/bpf/prog_tests/spin_lock.c | 142 +
tools/testing/selftests/bpf/prog_tests/spinlock.c | 45 -
.../testing/selftests/bpf/prog_tests/task_kfunc.c | 164 +
.../selftests/bpf/prog_tests/task_local_storage.c | 164 +-
.../testing/selftests/bpf/prog_tests/tc_redirect.c | 314 +-
.../selftests/bpf/prog_tests/tcp_hdr_options.c | 6 +-
.../testing/selftests/bpf/prog_tests/test_tunnel.c | 2 +-
.../selftests/bpf/prog_tests/tracing_struct.c | 3 +-
tools/testing/selftests/bpf/prog_tests/type_cast.c | 114 +
.../selftests/bpf/prog_tests/user_ringbuf.c | 6 +-
.../selftests/bpf/prog_tests/xdp_adjust_tail.c | 7 +-
.../selftests/bpf/prog_tests/xdp_synproxy.c | 6 +-
tools/testing/selftests/bpf/prog_tests/xfrm_info.c | 362 +
.../selftests/bpf/progs/bpf_iter_bpf_array_map.c | 21 +-
tools/testing/selftests/bpf/progs/bpf_iter_ksym.c | 6 +-
tools/testing/selftests/bpf/progs/bpf_misc.h | 5 +
.../testing/selftests/bpf/progs/bpf_tracing_net.h | 3 +
.../bpf/progs/btf_dump_test_case_padding.c | 9 +
.../selftests/bpf/progs/btf_type_tag_percpu.c | 1 +
.../selftests/bpf/progs/cgrp_kfunc_common.h | 72 +
.../selftests/bpf/progs/cgrp_kfunc_failure.c | 260 +
.../selftests/bpf/progs/cgrp_kfunc_success.c | 170 +
.../selftests/bpf/progs/cgrp_ls_attach_cgroup.c | 101 +
.../testing/selftests/bpf/progs/cgrp_ls_negative.c | 26 +
.../selftests/bpf/progs/cgrp_ls_recursion.c | 70 +
.../selftests/bpf/progs/cgrp_ls_sleepable.c | 80 +
tools/testing/selftests/bpf/progs/cgrp_ls_tp_btf.c | 88 +
tools/testing/selftests/bpf/progs/dynptr_fail.c | 31 +
tools/testing/selftests/bpf/progs/dynptr_success.c | 1 +
tools/testing/selftests/bpf/progs/empty_skb.c | 37 +
.../testing/selftests/bpf/progs/freplace_progmap.c | 24 +
tools/testing/selftests/bpf/progs/kprobe_multi.c | 50 +
tools/testing/selftests/bpf/progs/linked_list.c | 385 +
tools/testing/selftests/bpf/progs/linked_list.h | 56 +
.../testing/selftests/bpf/progs/linked_list_fail.c | 581 +
tools/testing/selftests/bpf/progs/lsm_cgroup.c | 8 +
tools/testing/selftests/bpf/progs/map_kptr_fail.c | 27 +
tools/testing/selftests/bpf/progs/rcu_read_lock.c | 330 +
.../selftests/bpf/progs/task_kfunc_common.h | 72 +
.../selftests/bpf/progs/task_kfunc_failure.c | 284 +
.../selftests/bpf/progs/task_kfunc_success.c | 227 +
.../bpf/progs/task_local_storage_exit_creds.c | 3 +
.../selftests/bpf/progs/task_ls_recursion.c | 43 +-
.../selftests/bpf/progs/task_storage_nodeadlock.c | 47 +
.../selftests/bpf/progs/test_kfunc_dynptr_param.c | 12 -
.../bpf/progs/test_libbpf_get_fd_by_id_opts.c | 36 +
.../bpf/progs/test_misc_tcp_hdr_options.c | 4 +
.../selftests/bpf/progs/test_module_attach.c | 6 +
.../selftests/bpf/progs/test_ringbuf_map_key.c | 70 +
tools/testing/selftests/bpf/progs/test_skeleton.c | 17 +
tools/testing/selftests/bpf/progs/test_spin_lock.c | 4 +-
.../selftests/bpf/progs/test_spin_lock_fail.c | 204 +
tools/testing/selftests/bpf/progs/type_cast.c | 83 +
.../selftests/bpf/progs/user_ringbuf_fail.c | 51 +-
tools/testing/selftests/bpf/progs/xfrm_info.c | 40 +
.../selftests/bpf/task_local_storage_helpers.h | 4 +
.../testing/selftests/bpf/test_bpftool_metadata.sh | 7 +-
.../selftests/bpf/test_bpftool_synctypes.py | 14 +-
tools/testing/selftests/bpf/test_cpp.cpp | 13 +-
tools/testing/selftests/bpf/test_flow_dissector.sh | 6 +-
tools/testing/selftests/bpf/test_loader.c | 233 +
tools/testing/selftests/bpf/test_lwt_ip_encap.sh | 17 +-
tools/testing/selftests/bpf/test_lwt_seg6local.sh | 9 +-
tools/testing/selftests/bpf/test_offload.py | 8 +-
tools/testing/selftests/bpf/test_progs.c | 38 +-
tools/testing/selftests/bpf/test_progs.h | 33 +
tools/testing/selftests/bpf/test_sockmap.c | 18 +
tools/testing/selftests/bpf/test_tc_edt.sh | 3 +-
tools/testing/selftests/bpf/test_tc_tunnel.sh | 5 +-
tools/testing/selftests/bpf/test_tunnel.sh | 5 +-
tools/testing/selftests/bpf/test_verifier.c | 13 +-
tools/testing/selftests/bpf/test_xdp_meta.sh | 9 +-
tools/testing/selftests/bpf/test_xdp_vlan.sh | 8 +-
tools/testing/selftests/bpf/trace_helpers.c | 20 +-
tools/testing/selftests/bpf/trace_helpers.h | 2 +
tools/testing/selftests/bpf/verifier/calls.c | 86 +-
.../selftests/bpf/verifier/direct_packet_access.c | 54 +
.../selftests/bpf/verifier/jeq_infer_not_null.c | 174 +
tools/testing/selftests/bpf/verifier/jit.c | 24 +
tools/testing/selftests/bpf/verifier/map_ptr.c | 8 +-
.../testing/selftests/bpf/verifier/ref_tracking.c | 4 +-
tools/testing/selftests/bpf/verifier/ringbuf.c | 2 +-
tools/testing/selftests/bpf/verifier/spill_fill.c | 2 +-
tools/testing/selftests/bpf/verifier/spin_lock.c | 114 +
.../testing/selftests/bpf/verifier/value_or_null.c | 49 +
tools/testing/selftests/bpf/veristat.c | 918 +-
tools/testing/selftests/bpf/vmtest.sh | 6 +
tools/testing/selftests/bpf/xdp_synproxy.c | 5 +-
tools/testing/selftests/bpf/xsk.c | 26 +-
tools/testing/selftests/bpf/xskxceiver.c | 3 +-
tools/testing/selftests/cgroup/cgroup_util.c | 5 +-
tools/testing/selftests/cgroup/test_cpuset_prs.sh | 19 +-
tools/testing/selftests/cgroup/test_kmem.c | 6 +-
tools/testing/selftests/cgroup/test_memcontrol.c | 91 +-
tools/testing/selftests/damon/Makefile | 4 +-
.../selftests/damon/debugfs_rm_non_contexts.sh | 19 +
.../selftests/damon/huge_count_read_write.c | 9 +
tools/testing/selftests/damon/lru_sort.sh | 41 +
tools/testing/selftests/damon/reclaim.sh | 42 +
tools/testing/selftests/damon/sysfs.sh | 7 +
.../damon/sysfs_update_removed_scheme_dir.sh | 58 +
.../testing/selftests/drivers/net/bonding/Makefile | 5 +-
.../selftests/drivers/net/bonding/lag_lib.sh | 106 +
.../drivers/net/bonding/mode-1-recovery-updelay.sh | 45 +
.../drivers/net/bonding/mode-2-recovery-updelay.sh | 45 +
.../selftests/drivers/net/bonding/option_prio.sh | 245 +
.../testing/selftests/drivers/net/bonding/settings | 2 +-
.../drivers/net/mlxsw/devlink_trap_control.sh | 22 +
.../drivers/net/mlxsw/devlink_trap_l2_drops.sh | 105 +
.../{spectrum-2 => }/devlink_trap_tunnel_ipip6.sh | 2 +-
.../selftests/drivers/net/mlxsw/rtnetlink.sh | 31 +
.../selftests/drivers/net/netdevsim/devlink.sh | 4 +-
.../drivers/net/netdevsim/devlink_trap.sh | 13 +
tools/testing/selftests/efivarfs/efivarfs.sh | 5 +
.../ftrace/test.d/ftrace/func_event_triggers.tc | 15 +-
tools/testing/selftests/ftrace/test.d/functions | 8 +-
.../ftrace/test.d/kprobe/uprobe_syntax_errors.tc | 5 +
.../ftrace/test.d/preemptirq/irqsoff_tracer.tc | 8 +-
.../selftests/ftrace/test.d/tracer/wakeup.tc | 7 +-
.../selftests/ftrace/test.d/tracer/wakeup_rt.tc | 7 +-
.../inter-event/trigger-field-variable-support.tc | 2 +-
.../trigger-inter-event-combined-hist.tc | 2 +-
.../inter-event/trigger-onchange-action-hist.tc | 2 +-
.../inter-event/trigger-onmatch-action-hist.tc | 2 +-
.../trigger-onmatch-onmax-action-hist.tc | 2 +-
.../inter-event/trigger-onmax-action-hist.tc | 2 +-
.../inter-event/trigger-snapshot-action-hist.tc | 2 +-
.../inter-event/trigger-synthetic-eprobe.tc | 2 +-
.../trigger-synthetic-event-dynstring.tc | 2 +-
.../inter-event/trigger-trace-action-hist.tc | 2 +-
tools/testing/selftests/gpio/gpio-sim.sh | 2 +-
tools/testing/selftests/iommu/.gitignore | 3 +
tools/testing/selftests/iommu/Makefile | 12 +
tools/testing/selftests/iommu/config | 2 +
tools/testing/selftests/iommu/iommufd.c | 1654 +
tools/testing/selftests/iommu/iommufd_fail_nth.c | 580 +
tools/testing/selftests/iommu/iommufd_utils.h | 278 +
tools/testing/selftests/kmod/kmod.sh | 13 +-
tools/testing/selftests/kselftest_deps.sh | 2 +-
tools/testing/selftests/kvm/.gitignore | 86 +-
tools/testing/selftests/kvm/Makefile | 81 +-
.../selftests/kvm/aarch64/aarch32_id_regs.c | 6 +-
tools/testing/selftests/kvm/aarch64/arch_timer.c | 31 +-
.../selftests/kvm/aarch64/debug-exceptions.c | 360 +-
tools/testing/selftests/kvm/aarch64/hypercalls.c | 3 -
.../selftests/kvm/aarch64/page_fault_test.c | 1117 +
tools/testing/selftests/kvm/aarch64/psci_test.c | 1 -
tools/testing/selftests/kvm/aarch64/vgic_init.c | 2 -
tools/testing/selftests/kvm/aarch64/vgic_irq.c | 10 +-
.../selftests/kvm/access_tracking_perf_test.c | 52 +-
tools/testing/selftests/kvm/demand_paging_test.c | 250 +-
tools/testing/selftests/kvm/dirty_log_perf_test.c | 130 +-
tools/testing/selftests/kvm/dirty_log_test.c | 90 +-
.../selftests/kvm/include/aarch64/processor.h | 35 +-
.../testing/selftests/kvm/include/kvm_util_base.h | 75 +-
tools/testing/selftests/kvm/include/memstress.h | 75 +
.../testing/selftests/kvm/include/perf_test_util.h | 63 -
tools/testing/selftests/kvm/include/test_util.h | 25 +
tools/testing/selftests/kvm/include/ucall_common.h | 18 +-
.../selftests/kvm/include/userfaultfd_util.h | 45 +
tools/testing/selftests/kvm/include/x86_64/evmcs.h | 48 +-
.../testing/selftests/kvm/include/x86_64/hyperv.h | 103 +
.../selftests/kvm/include/x86_64/processor.h | 455 +-
tools/testing/selftests/kvm/include/x86_64/svm.h | 26 +-
.../selftests/kvm/include/x86_64/svm_util.h | 14 +
tools/testing/selftests/kvm/include/x86_64/vmx.h | 25 +-
tools/testing/selftests/kvm/kvm_page_table_test.c | 6 +-
.../testing/selftests/kvm/lib/aarch64/processor.c | 83 +-
tools/testing/selftests/kvm/lib/aarch64/ucall.c | 102 +-
tools/testing/selftests/kvm/lib/elf.c | 5 +-
tools/testing/selftests/kvm/lib/kvm_util.c | 202 +-
.../kvm/lib/{perf_test_util.c => memstress.c} | 136 +-
tools/testing/selftests/kvm/lib/riscv/processor.c | 29 +-
tools/testing/selftests/kvm/lib/riscv/ucall.c | 42 +-
tools/testing/selftests/kvm/lib/s390x/processor.c | 8 +-
tools/testing/selftests/kvm/lib/s390x/ucall.c | 39 +-
tools/testing/selftests/kvm/lib/test_util.c | 36 +
tools/testing/selftests/kvm/lib/ucall_common.c | 115 +
tools/testing/selftests/kvm/lib/userfaultfd_util.c | 186 +
tools/testing/selftests/kvm/lib/x86_64/hyperv.c | 46 +
.../lib/x86_64/{perf_test_util.c => memstress.c} | 37 +-
tools/testing/selftests/kvm/lib/x86_64/processor.c | 327 +-
tools/testing/selftests/kvm/lib/x86_64/ucall.c | 39 +-
tools/testing/selftests/kvm/lib/x86_64/vmx.c | 56 +-
.../testing/selftests/kvm/max_guest_memory_test.c | 21 +-
.../kvm/memslot_modification_stress_test.c | 44 +-
tools/testing/selftests/kvm/memslot_perf_test.c | 342 +-
tools/testing/selftests/kvm/rseq_test.c | 4 -
tools/testing/selftests/kvm/s390x/memop.c | 2 -
tools/testing/selftests/kvm/s390x/resets.c | 2 -
tools/testing/selftests/kvm/s390x/sync_regs_test.c | 3 -
.../testing/selftests/kvm/set_memory_region_test.c | 5 +-
tools/testing/selftests/kvm/steal_time.c | 1 -
.../selftests/kvm/system_counter_offset_test.c | 1 -
tools/testing/selftests/kvm/x86_64/amx_test.c | 112 +-
tools/testing/selftests/kvm/x86_64/cpuid_test.c | 11 +-
.../selftests/kvm/x86_64/cr4_cpuid_sync_test.c | 3 -
.../selftests/kvm/x86_64/emulator_error_test.c | 193 -
.../kvm/x86_64/exit_on_emulation_failure_test.c | 45 +
.../testing/selftests/kvm/x86_64/flds_emulation.h | 55 +
tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c | 3 -
.../kvm/x86_64/{evmcs_test.c => hyperv_evmcs.c} | 100 +-
.../testing/selftests/kvm/x86_64/hyperv_features.c | 25 +-
tools/testing/selftests/kvm/x86_64/hyperv_ipi.c | 315 +
.../testing/selftests/kvm/x86_64/hyperv_svm_test.c | 103 +-
.../selftests/kvm/x86_64/hyperv_tlb_flush.c | 690 +
.../selftests/kvm/x86_64/nx_huge_pages_test.c | 5 +-
.../selftests/kvm/x86_64/platform_info_test.c | 3 -
.../selftests/kvm/x86_64/pmu_event_filter_test.c | 77 +-
.../testing/selftests/kvm/x86_64/set_sregs_test.c | 3 -
.../kvm/x86_64/smaller_maxphyaddr_emulation_test.c | 111 +
tools/testing/selftests/kvm/x86_64/smm_test.c | 2 +
.../kvm/x86_64/svm_nested_shutdown_test.c | 67 +
.../kvm/x86_64/svm_nested_soft_inject_test.c | 16 +-
.../testing/selftests/kvm/x86_64/sync_regs_test.c | 3 -
.../selftests/kvm/x86_64/triple_fault_event_test.c | 73 +-
.../selftests/kvm/x86_64/userspace_io_test.c | 3 -
.../selftests/kvm/x86_64/userspace_msr_exit_test.c | 88 +-
.../selftests/kvm/x86_64/vmx_dirty_log_test.c | 1 +
tools/testing/selftests/kvm/x86_64/vmx_msrs_test.c | 47 +
.../selftests/kvm/x86_64/vmx_pmu_caps_test.c | 19 +-
.../selftests/kvm/x86_64/vmx_tsc_adjust_test.c | 5 -
.../selftests/kvm/x86_64/xapic_state_test.c | 4 +-
.../testing/selftests/kvm/x86_64/xen_shinfo_test.c | 147 +-
tools/testing/selftests/landlock/base_test.c | 38 +-
tools/testing/selftests/landlock/common.h | 85 +-
tools/testing/selftests/landlock/fs_test.c | 468 +-
tools/testing/selftests/lib.mk | 5 +
tools/testing/selftests/nci/nci_dev.c | 11 +
tools/testing/selftests/net/.gitignore | 3 +
tools/testing/selftests/net/Makefile | 4 +
tools/testing/selftests/net/af_unix/Makefile | 2 +-
tools/testing/selftests/net/af_unix/diag_uid.c | 178 +
tools/testing/selftests/net/bpf/Makefile | 45 +-
tools/testing/selftests/net/config | 2 +-
tools/testing/selftests/net/csum.c | 986 +
tools/testing/selftests/net/fcnal-test.sh | 11 +-
tools/testing/selftests/net/fib_nexthops.sh | 11 +
tools/testing/selftests/net/fib_tests.sh | 37 +
tools/testing/selftests/net/forwarding/Makefile | 1 +
.../selftests/net/forwarding/bridge_igmp.sh | 3 -
.../selftests/net/forwarding/bridge_locked_port.sh | 155 +-
.../testing/selftests/net/forwarding/bridge_mdb.sh | 1127 +-
.../selftests/net/forwarding/bridge_mdb_host.sh | 103 +
.../selftests/net/forwarding/bridge_vlan_mcast.sh | 3 +
.../selftests/net/forwarding/devlink_lib.sh | 19 +-
tools/testing/selftests/net/forwarding/lib.sh | 8 +
tools/testing/selftests/net/hsr/Makefile | 7 +
tools/testing/selftests/net/hsr/config | 4 +
tools/testing/selftests/net/hsr/hsr_ping.sh | 256 +
tools/testing/selftests/net/mptcp/diag.sh | 1 +
tools/testing/selftests/net/mptcp/mptcp_connect.c | 171 +-
tools/testing/selftests/net/mptcp/mptcp_connect.sh | 27 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh | 124 +-
tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 76 +-
tools/testing/selftests/net/mptcp/simult_flows.sh | 13 +-
tools/testing/selftests/net/mptcp/userspace_pm.sh | 298 +-
tools/testing/selftests/net/pmtu.sh | 10 +-
tools/testing/selftests/net/rtnetlink.sh | 2 +-
tools/testing/selftests/net/sctp_hello.c | 137 +
tools/testing/selftests/net/sctp_vrf.sh | 178 +
tools/testing/selftests/net/so_incoming_cpu.c | 242 +
tools/testing/selftests/net/toeplitz.sh | 2 +-
tools/testing/selftests/net/udpgro.sh | 8 +-
tools/testing/selftests/net/udpgro_bench.sh | 8 +-
tools/testing/selftests/net/udpgro_frglist.sh | 8 +-
tools/testing/selftests/net/udpgro_fwd.sh | 3 +-
tools/testing/selftests/net/veth.sh | 11 +-
.../selftests/netfilter/conntrack_icmp_related.sh | 36 +-
tools/testing/selftests/nolibc/Makefile | 3 +
tools/testing/selftests/nolibc/nolibc-test.c | 7 +
tools/testing/selftests/powerpc/dscr/dscr.h | 17 +-
.../selftests/powerpc/dscr/dscr_sysfs_test.c | 5 +-
tools/testing/selftests/powerpc/include/pkeys.h | 2 +-
tools/testing/selftests/powerpc/ptrace/core-pkey.c | 6 +-
.../selftests/powerpc/ptrace/perf-hwbreak.c | 78 +-
.../selftests/powerpc/ptrace/ptrace-hwbreak.c | 6 +-
tools/testing/selftests/powerpc/ptrace/ptrace.h | 5 +-
tools/testing/selftests/powerpc/scripts/hmi.sh | 2 +-
.../selftests/powerpc/security/flush_utils.c | 3 +-
tools/testing/selftests/proc/proc-uptime-002.c | 3 +-
.../testing/selftests/rcutorture/bin/config2csv.sh | 3 +-
.../selftests/rcutorture/bin/config_override.sh | 3 +-
.../selftests/rcutorture/bin/configcheck.sh | 3 +-
.../testing/selftests/rcutorture/bin/configinit.sh | 3 +-
.../testing/selftests/rcutorture/bin/kvm-again.sh | 49 +-
.../selftests/rcutorture/bin/kvm-assign-cpus.sh | 3 +-
.../testing/selftests/rcutorture/bin/kvm-build.sh | 3 +-
.../selftests/rcutorture/bin/kvm-end-run-stats.sh | 3 +-
.../selftests/rcutorture/bin/kvm-recheck.sh | 2 +-
.../testing/selftests/rcutorture/bin/kvm-remote.sh | 13 +-
.../rcutorture/bin/kvm-test-1-run-batch.sh | 3 +-
.../rcutorture/bin/kvm-test-1-run-qemu.sh | 5 +-
.../selftests/rcutorture/bin/kvm-test-1-run.sh | 3 +-
.../selftests/rcutorture/bin/kvm-transform.sh | 68 +-
tools/testing/selftests/rcutorture/bin/kvm.sh | 3 +-
.../selftests/rcutorture/bin/parse-build.sh | 3 +-
tools/testing/selftests/rcutorture/bin/torture.sh | 145 +-
tools/testing/selftests/rtc/rtctest.c | 33 +-
tools/testing/selftests/seccomp/seccomp_bpf.c | 6 +-
.../testing/selftests/splice/short_splice_read.sh | 4 +-
tools/testing/selftests/sysctl/sysctl.sh | 12 +-
tools/testing/selftests/tc-testing/tdc.py | 125 +-
tools/testing/selftests/tdx/Makefile | 7 +
tools/testing/selftests/tdx/config | 1 +
tools/testing/selftests/tdx/tdx_guest_test.c | 163 +
tools/testing/selftests/timens/.gitignore | 1 +
tools/testing/selftests/timens/Makefile | 2 +-
tools/testing/selftests/timens/vfork_exec.c | 139 +
tools/testing/selftests/tpm2/Makefile | 2 +-
tools/testing/selftests/tpm2/test_async.sh | 10 +
tools/testing/selftests/tpm2/test_smoke.sh | 1 -
tools/testing/selftests/vDSO/vdso_test_getcpu.c | 4 +
.../selftests/vDSO/vdso_test_gettimeofday.c | 3 +
tools/testing/selftests/vm/.gitignore | 3 +
tools/testing/selftests/vm/Makefile | 27 +-
tools/testing/selftests/vm/check_config.sh | 31 +
tools/testing/selftests/vm/cow.c | 1536 +
tools/testing/selftests/vm/hugepage-mmap.c | 10 +-
tools/testing/selftests/vm/hugepage-mremap.c | 21 +-
tools/testing/selftests/vm/hugetlb-madvise.c | 19 +-
tools/testing/selftests/vm/ksm_functional_tests.c | 279 +
tools/testing/selftests/vm/ksm_tests.c | 76 +-
tools/testing/selftests/vm/madv_populate.c | 15 +-
tools/testing/selftests/vm/pkey-x86.h | 12 +
tools/testing/selftests/vm/protection_keys.c | 131 +-
tools/testing/selftests/vm/run_vmtests.sh | 220 +-
tools/testing/selftests/vm/userfaultfd.c | 62 +-
tools/testing/selftests/vm/vm_util.c | 25 +
tools/testing/selftests/vm/vm_util.h | 3 +
tools/testing/selftests/watchdog/watchdog-test.c | 106 +-
.../testing/selftests/wireguard/qemu/kernel.config | 2 -
tools/tracing/rtla/src/osnoise.c | 9 +-
tools/tracing/rtla/src/rtla.c | 12 +-
tools/tracing/rtla/src/timerlat.c | 9 +-
.../ffs-aio-example/simple/device_app/aio_simple.c | 44 +-
tools/verification/dot2/dot2c.py | 2 +-
tools/verification/rv/Makefile | 141 +
tools/verification/rv/README.txt | 38 +
tools/verification/rv/include/in_kernel.h | 3 +
tools/verification/rv/include/rv.h | 12 +
tools/verification/rv/include/trace.h | 16 +
tools/verification/rv/include/utils.h | 8 +
tools/verification/rv/src/in_kernel.c | 698 +
tools/verification/rv/src/rv.c | 188 +
tools/verification/rv/src/trace.c | 133 +
tools/verification/rv/src/utils.c | 47 +
tools/vm/.gitignore | 1 +
tools/vm/slabinfo-gnuplot.sh | 4 +-
tools/vm/slabinfo.c | 6 +-
virt/kvm/Kconfig | 6 +
virt/kvm/dirty_ring.c | 46 +-
virt/kvm/irqchip.c | 3 +-
virt/kvm/kvm_main.c | 159 +-
virt/kvm/kvm_mm.h | 8 +-
virt/kvm/pfncache.c | 121 +-
12547 files changed, 655791 insertions(+), 347261 deletions(-)
create mode 100644 Documentation/ABI/testing/debugfs-dell-wmi-ddv
delete mode 100644 Documentation/ABI/testing/debugfs-pktcdvd
create mode 100644 Documentation/ABI/testing/sysfs-bus-coreboot
create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-adc-ad4130
create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-adc-max11410
create mode 100644 Documentation/ABI/testing/sysfs-bus-platform-devices-ampere-smpro
delete mode 100644 Documentation/ABI/testing/sysfs-class-pktcdvd
create mode 100644 Documentation/ABI/testing/sysfs-kernel-cpu_byteorder
create mode 100644 Documentation/ABI/testing/sysfs-kernel-oops_count
create mode 100644 Documentation/ABI/testing/sysfs-kernel-warn_count
create mode 100644 Documentation/ABI/testing/sysfs-platform-dell-wmi-ddv
delete mode 100644 Documentation/RCU/arrayRCU.rst
create mode 100644 Documentation/accel/index.rst
create mode 100644 Documentation/accel/introduction.rst
delete mode 100644 Documentation/admin-guide/media/cec-drivers.rst
create mode 100644 Documentation/admin-guide/media/cec.rst
delete mode 100644 Documentation/admin-guide/media/pulse8-cec.rst
create mode 100644 Documentation/admin-guide/media/visl.rst
create mode 100644 Documentation/admin-guide/perf/meson-ddr-pmu.rst
create mode 100644 Documentation/admin-guide/perf/nvidia-pmu.rst
create mode 100644 Documentation/bpf/bpf_iterators.rst
create mode 100644 Documentation/bpf/libbpf/program_types.rst
create mode 100644 Documentation/bpf/map_array.rst
create mode 100644 Documentation/bpf/map_bloom_filter.rst
create mode 100644 Documentation/bpf/map_cgrp_storage.rst
create mode 100644 Documentation/bpf/map_cpumap.rst
create mode 100644 Documentation/bpf/map_devmap.rst
create mode 100644 Documentation/bpf/map_lpm_trie.rst
create mode 100644 Documentation/bpf/map_of_maps.rst
create mode 100644 Documentation/bpf/map_queue_stack.rst
create mode 100644 Documentation/bpf/map_sk_storage.rst
create mode 100644 Documentation/bpf/map_xskmap.rst
create mode 100644 Documentation/bpf/redirect.rst
delete mode 100644 Documentation/dev-tools/kunit/tips.rst
create mode 100644 Documentation/devicetree/bindings/arm/qcom-soc.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/swir.txt
create mode 100644 Documentation/devicetree/bindings/ata/ata-generic.yaml
create mode 100644 Documentation/devicetree/bindings/bus/fsl,imx8qxp-pixel-link-msi-bus.yaml
create mode 100644 Documentation/devicetree/bindings/clock/fsl,imx8m-anatop.yaml
create mode 100644 Documentation/devicetree/bindings/clock/mediatek,mt8186-fhctl.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/pwm-clock.txt
create mode 100644 Documentation/devicetree/bindings/clock/pwm-clock.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,dispcc-sc8280xp.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-msm8974.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-sdm660.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/qcom,lcc.txt
create mode 100644 Documentation/devicetree/bindings/clock/qcom,lcc.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/qcom,lpasscc.txt
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sdm845-lpasscc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm6375-dispcc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm8550-gcc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3588-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/ti,cdce925.txt
create mode 100644 Documentation/devicetree/bindings/clock/ti,cdce925.yaml
create mode 100644 Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
delete mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
delete mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx-fb.txt
create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx-lcdc.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/dpu-common.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/dpu-msm8998.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/dpu-qcm2290.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/dpu-sc7280.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/dpu-sdm845.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/mdss-common.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,msm8998-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,msm8998-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,qcm2290-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,qcm2290-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sc7180-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sc7280-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sc7280-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sdm845-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sdm845-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sm6115-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sm6115-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sm8250-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sm8250-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/panel/auo,a030jtn01.yaml
create mode 100644 Documentation/devicetree/bindings/fpga/lattice,sysconfig.yaml
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-latch.yaml
create mode 100644 Documentation/devicetree/bindings/gpio/hisilicon,ascend910-gpio.yaml
create mode 100644 Documentation/devicetree/bindings/gpu/host1x/nvidia,tegra234-nvdec.yaml
create mode 100644 Documentation/devicetree/bindings/hwinfo/loongson,ls2k-chipid.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/hisilicon,ascend910-i2c.yaml
create mode 100644 Documentation/devicetree/bindings/iio/accel/kionix,kx022a.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad4130.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,max11410.yaml
create mode 100644 Documentation/devicetree/bindings/iio/addac/adi,ad74115.yaml
create mode 100644 Documentation/devicetree/bindings/iio/frequency/adi,adf4377.yaml
delete mode 100644 Documentation/devicetree/bindings/input/gpio-beeper.txt
create mode 100644 Documentation/devicetree/bindings/input/gpio-beeper.yaml
create mode 100644 Documentation/devicetree/bindings/input/qcom,pm8921-pwrkey.yaml
delete mode 100644 Documentation/devicetree/bindings/input/qcom,pm8xxx-pwrkey.txt
delete mode 100644 Documentation/devicetree/bindings/input/ti,drv260x.txt
create mode 100644 Documentation/devicetree/bindings/input/ti,drv260x.yaml
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/cypress,tt21000.yaml
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/hynitron,cstxxx.yaml
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/intel,ce4100-ioapic.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/intel,ce4100-ioapic.yaml
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/intel,ce4100-lapic.yaml
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/loongarch,cpu-interrupt-controller.yaml
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/mediatek,cirq.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/mediatek,mtk-cirq.yaml
create mode 100644 Documentation/devicetree/bindings/ipmi/ssif-bmc.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/irled/gpio-ir-tx.txt
create mode 100644 Documentation/devicetree/bindings/leds/irled/gpio-ir-tx.yaml
create mode 100644 Documentation/devicetree/bindings/leds/irled/ir-spi-led.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/irled/pwm-ir-tx.txt
create mode 100644 Documentation/devicetree/bindings/leds/irled/pwm-ir-tx.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/irled/spi-ir-led.txt
delete mode 100644 Documentation/devicetree/bindings/leds/leds-pm8058.txt
create mode 100644 Documentation/devicetree/bindings/leds/qcom,pm8058-led.yaml
create mode 100644 Documentation/devicetree/bindings/media/allwinner,sun6i-a31-isp.yaml
delete mode 100644 Documentation/devicetree/bindings/media/i2c/imx290.txt
delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5645.txt
create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov4689.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov5645.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx290.yaml
delete mode 100644 Documentation/devicetree/bindings/media/i2c/st,st-mipid02.txt
create mode 100644 Documentation/devicetree/bindings/media/i2c/st,st-mipid02.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/st,st-vgxy61.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml
create mode 100644 Documentation/devicetree/bindings/media/mediatek,mt8195-jpegdec.yaml
create mode 100644 Documentation/devicetree/bindings/media/mediatek,mt8195-jpegenc.yaml
create mode 100644 Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml
create mode 100644 Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml
rename Documentation/devicetree/bindings/memory-controllers/{arm,pl353-smc.yaml => arm,pl35x-smc.yaml} (65%)
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr-channel.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr-props.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr4.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr5.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/mc-peripheral-props.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/st,stm32-fmc2-ebi-props.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/ampere,smpro.yaml
delete mode 100644 Documentation/devicetree/bindings/mips/brcm/brcm,bmips.txt
create mode 100644 Documentation/devicetree/bindings/mips/brcm/soc.yaml
create mode 100644 Documentation/devicetree/bindings/mips/cpus.yaml
delete mode 100644 Documentation/devicetree/bindings/mips/ingenic/ingenic,cpu.yaml
create mode 100644 Documentation/devicetree/bindings/misc/idt,89hpesx.yaml
delete mode 100644 Documentation/devicetree/bindings/misc/idt_89hpesx.txt
create mode 100644 Documentation/devicetree/bindings/mmc/fujitsu,sdhci-fujitsu.yaml
create mode 100644 Documentation/devicetree/bindings/mmc/sdhci-common.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
create mode 100644 Documentation/devicetree/bindings/mmc/sunplus,mmc.yaml
delete mode 100644 Documentation/devicetree/bindings/mtd/partition.txt
create mode 100644 Documentation/devicetree/bindings/mtd/partitions/partitions.yaml
create mode 100644 Documentation/devicetree/bindings/mtd/partitions/tplink,safeloader-partitions.yaml
delete mode 100644 Documentation/devicetree/bindings/net/bluetooth.txt
create mode 100644 Documentation/devicetree/bindings/net/bluetooth/bluetooth-controller.yaml
create mode 100644 Documentation/devicetree/bindings/net/bluetooth/brcm,bcm4377-bluetooth.yaml
rename Documentation/devicetree/bindings/net/{ => bluetooth}/qualcomm-bluetooth.yaml (96%)
create mode 100644 Documentation/devicetree/bindings/net/marvell,dfx-server.yaml
create mode 100644 Documentation/devicetree/bindings/net/marvell,pp2.yaml
delete mode 100644 Documentation/devicetree/bindings/net/marvell,prestera.txt
create mode 100644 Documentation/devicetree/bindings/net/marvell,prestera.yaml
delete mode 100644 Documentation/devicetree/bindings/net/marvell-pp2.txt
create mode 100644 Documentation/devicetree/bindings/net/pcs/fsl,lynx-pcs.yaml
create mode 100644 Documentation/devicetree/bindings/net/renesas,r8a779f0-ether-switch.yaml
create mode 100644 Documentation/devicetree/bindings/net/socionext,synquacer-netsec.yaml
delete mode 100644 Documentation/devicetree/bindings/net/socionext-netsec.txt
create mode 100644 Documentation/devicetree/bindings/nvmem/layouts/kontron,sl28-vpd.yaml
create mode 100644 Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml
create mode 100644 Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml
create mode 100644 Documentation/devicetree/bindings/pci/baikal,bt1-pcie.yaml
create mode 100644 Documentation/devicetree/bindings/pci/snps,dw-pcie-common.yaml
delete mode 100644 Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt
delete mode 100644 Documentation/devicetree/bindings/pci/xilinx-pcie.txt
create mode 100644 Documentation/devicetree/bindings/pci/xlnx,axi-pcie-host.yaml
create mode 100644 Documentation/devicetree/bindings/pci/xlnx,nwl-pcie.yaml
create mode 100644 Documentation/devicetree/bindings/perf/amlogic,g12-ddr-pmu.yaml
rename Documentation/devicetree/bindings/phy/{qcom,qmp-pcie-phy.yaml => qcom,ipq8074-qmp-pcie-phy.yaml} (96%)
rename Documentation/devicetree/bindings/phy/{qcom,qmp-ufs-phy.yaml => qcom,msm8996-qmp-ufs-phy.yaml} (93%)
rename Documentation/devicetree/bindings/phy/{qcom,qmp-usb-phy.yaml => qcom,msm8996-qmp-usb3-phy.yaml} (95%)
rename Documentation/devicetree/bindings/phy/{qcom,qmp-usb3-dp-phy.yaml => qcom,sc7180-qmp-usb3-dp-phy.yaml} (91%)
create mode 100644 Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
create mode 100644 Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml
create mode 100644 Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml
create mode 100644 Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
create mode 100644 Documentation/devicetree/bindings/phy/renesas,r8a779f0-ether-serdes.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/loongson,ls2k-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/mediatek,mt6797-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra-pinmux-common.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra194-pinmux.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra194-pinmux.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra210-pinmux.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra210-pinmux.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl-sx150x.txt
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,ipq8074-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,ipq8074-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{qcom,mdm9607-pinctrl.yaml => qcom,mdm9607-tlmm.yaml} (84%)
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,mdm9615-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,mdm9615-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8660-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8660-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8916-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8916-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8960-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8960-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8976-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8976-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8994-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8994-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8996-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8996-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8998-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8998-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{qcom,qcm2290-pinctrl.yaml => qcom,qcm2290-tlmm.yaml} (76%)
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,qcs404-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,qcs404-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sc7180-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sc7180-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{qcom,sc8180x-pinctrl.yaml => qcom,sc8180x-tlmm.yaml} (88%)
rename Documentation/devicetree/bindings/pinctrl/{qcom,sc8280xp-pinctrl.yaml => qcom,sc8280xp-tlmm.yaml} (89%)
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm630-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm660-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm670-tlmm.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm845-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm845-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{qcom,sdx65-pinctrl.yaml => qcom,sdx65-tlmm.yaml} (85%)
rename Documentation/devicetree/bindings/pinctrl/{qcom,sm6115-pinctrl.yaml => qcom,sm6115-tlmm.yaml} (75%)
rename Documentation/devicetree/bindings/pinctrl/{qcom,sm6125-pinctrl.yaml => qcom,sm6125-tlmm.yaml} (87%)
rename Documentation/devicetree/bindings/pinctrl/{qcom,sm6350-pinctrl.yaml => qcom,sm6350-tlmm.yaml} (90%)
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sm8150-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sm8150-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{qcom,sm8350-pinctrl.yaml => qcom,sm8350-tlmm.yaml} (89%)
rename Documentation/devicetree/bindings/pinctrl/{qcom,sm8450-pinctrl.yaml => qcom,sm8450-tlmm.yaml} (89%)
create mode 100644 Documentation/devicetree/bindings/pinctrl/semtech,sx1501q.yaml
create mode 100644 Documentation/devicetree/bindings/power/reset/restart-handler.yaml
delete mode 100644 Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt
create mode 100644 Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/mediatek,mt6357-regulator.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/regulator-output.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/richtek,rt6190.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5fss.yaml
create mode 100644 Documentation/devicetree/bindings/reserved-memory/framebuffer.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/amlogic,meson6-rtc.yaml
delete mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
create mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
delete mode 100644 Documentation/devicetree/bindings/rtc/rtc-m41t80.txt
delete mode 100644 Documentation/devicetree/bindings/rtc/rtc-meson.txt
create mode 100644 Documentation/devicetree/bindings/rtc/st,m41t80.yaml
delete mode 100644 Documentation/devicetree/bindings/slimbus/bus.txt
create mode 100644 Documentation/devicetree/bindings/slimbus/qcom,slim-ngd.yaml
create mode 100644 Documentation/devicetree/bindings/slimbus/qcom,slim.yaml
delete mode 100644 Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt
delete mode 100644 Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt
create mode 100644 Documentation/devicetree/bindings/slimbus/slimbus.yaml
create mode 100644 Documentation/devicetree/bindings/soc/mediatek/mediatek,mt7986-wo-ccif.yaml
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,apr-services.yaml
create mode 100644 Documentation/devicetree/bindings/soc/renesas/renesas,r9a09g011-sys.yaml
rename Documentation/devicetree/bindings/{arm => soc/renesas}/renesas.yaml (98%)
rename Documentation/devicetree/bindings/sound/{name-prefix.yaml => dai-common.yaml} (81%)
create mode 100644 Documentation/devicetree/bindings/sound/dmic-codec.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/dmic.txt
delete mode 100644 Documentation/devicetree/bindings/sound/max98357a.txt
delete mode 100644 Documentation/devicetree/bindings/sound/max98504.txt
create mode 100644 Documentation/devicetree/bindings/sound/maxim,max98357a.yaml
create mode 100644 Documentation/devicetree/bindings/sound/maxim,max98504.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6adm.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6afe.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6apm-lpass-dais.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6apm.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6asm.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6core.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6prm.yaml
create mode 100644 Documentation/devicetree/bindings/sound/wlf,wm8961.yaml
delete mode 100644 Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
create mode 100644 Documentation/devicetree/bindings/soundwire/qcom,soundwire.yaml
create mode 100644 Documentation/devicetree/bindings/spi/nuvoton,wpcm450-fiu.yaml
create mode 100644 Documentation/devicetree/bindings/spi/socionext,f-ospi.yaml
create mode 100644 Documentation/devicetree/bindings/spi/socionext,synquacer-spi.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/spi-synquacer.txt
create mode 100644 Documentation/devicetree/bindings/thermal/generic-adc-thermal.yaml
delete mode 100644 Documentation/devicetree/bindings/thermal/thermal-generic-adc.txt
create mode 100644 Documentation/devicetree/bindings/timer/brcm,bcmbca-timer.yaml
create mode 100644 Documentation/devicetree/bindings/usb/genesys,gl850g.yaml
delete mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt
create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.yaml
create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra186-xusb.yaml
create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra194-xusb.yaml
create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra210-xusb.yaml
delete mode 100644 Documentation/devicetree/bindings/usb/usb251xb.txt
create mode 100644 Documentation/devicetree/bindings/usb/usb251xb.yaml
delete mode 100644 Documentation/devicetree/bindings/watchdog/gpio-wdt.txt
create mode 100644 Documentation/devicetree/bindings/watchdog/linux,wdt-gpio.yaml
create mode 100644 Documentation/devicetree/bindings/watchdog/mediatek,mtk-wdt.yaml
delete mode 100644 Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
create mode 100644 Documentation/hwmon/oxp-sensors.rst
create mode 100644 Documentation/hwmon/smpro-hwmon.rst
create mode 100644 Documentation/loongarch/booting.rst
create mode 100644 Documentation/networking/devlink/etas_es58x.rst
create mode 100644 Documentation/networking/tc-queue-filters.rst
create mode 100644 Documentation/nvme/feature-and-quirk-policy.rst
create mode 100644 Documentation/sphinx-static/custom.css
create mode 100644 Documentation/tools/rv/Makefile
create mode 100644 Documentation/tools/rv/common_appendix.rst
create mode 100644 Documentation/tools/rv/common_ikm.rst
create mode 100644 Documentation/tools/rv/index.rst
create mode 100644 Documentation/tools/rv/rv-list.rst
create mode 100644 Documentation/tools/rv/rv-mon-wip.rst
create mode 100644 Documentation/tools/rv/rv-mon-wwnr.rst
create mode 100644 Documentation/tools/rv/rv-mon.rst
create mode 100644 Documentation/tools/rv/rv.rst
create mode 100644 Documentation/translations/sp_SP/disclaimer-sp.rst
create mode 100644 Documentation/translations/sp_SP/howto.rst
create mode 100644 Documentation/translations/sp_SP/index.rst
create mode 100644 Documentation/translations/sp_SP/memory-barriers.txt
create mode 100644 Documentation/translations/sp_SP/process/coding-style.rst
create mode 100644 Documentation/translations/sp_SP/process/index.rst
create mode 100644 Documentation/translations/sp_SP/process/kernel-docs.rst
create mode 100644 Documentation/translations/sp_SP/process/submitting-patches.rst
create mode 100644 Documentation/translations/sp_SP/wrappers/memory-barriers.rst
create mode 100644 Documentation/translations/zh_CN/core-api/errseq.rst
create mode 100644 Documentation/translations/zh_CN/core-api/this_cpu_ops.rst
create mode 100644 Documentation/translations/zh_CN/loongarch/booting.rst
create mode 100644 Documentation/translations/zh_CN/rust/arch-support.rst
create mode 100644 Documentation/translations/zh_CN/rust/coding-guidelines.rst
create mode 100644 Documentation/translations/zh_CN/rust/general-information.rst
create mode 100644 Documentation/translations/zh_CN/rust/index.rst
create mode 100644 Documentation/translations/zh_CN/rust/quick-start.rst
create mode 100644 Documentation/translations/zh_CN/staging/index.rst
create mode 100644 Documentation/translations/zh_CN/staging/xz.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/accelerators/ocxl.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/ebpf/index.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/ebpf/syscall.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/futex2.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/index.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/no_new_privs.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/seccomp_filter.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/sysfs-platform_profile.rst
create mode 100644 Documentation/userspace-api/iommufd.rst
create mode 100644 Documentation/userspace-api/media/drivers/aspeed-video.rst
create mode 100644 Documentation/userspace-api/media/drivers/st-vgxy61.rst
create mode 100644 Documentation/virt/coco/tdx-guest.rst
rename Documentation/virt/kvm/{x86 => }/halt-polling.rst (92%)
create mode 100644 LICENSES/dual/copyleft-next-0.3.1
create mode 100644 arch/arm/boot/dts/aspeed-bmc-delta-ahe50dc.dts
create mode 100644 arch/arm/boot/dts/aspeed-bmc-ibm-bonnell.dts
delete mode 100644 arch/arm/boot/dts/aspeed-bmc-opp-mihawk.dts
create mode 100644 arch/arm/boot/dts/bcm283x-rpi-led-deprecated.dtsi
create mode 100644 arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
create mode 100644 arch/arm/boot/dts/bcm53016-dlink-dwl-8610ap.dts
create mode 100644 arch/arm/boot/dts/imx6sl-kobo-aura2.dts
create mode 100644 arch/arm/boot/dts/kirkwood-nsa310s.dts
create mode 100644 arch/arm/boot/dts/qcom-apq8026-huawei-sturgeon.dts
create mode 100644 arch/arm/boot/dts/qcom-apq8026-samsung-matisse-wifi.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8974pro-oneplus-bacon.dts
create mode 100644 arch/arm/boot/dts/stm32mp151a-dhcor-testbench.dts
create mode 100644 arch/arm/boot/dts/stm32mp15xx-dhcor-testbench.dtsi
create mode 100644 arch/arm/boot/dts/uniphier-pro5-epcore.dts
create mode 100644 arch/arm/boot/dts/uniphier-pro5-proex.dts
create mode 100644 arch/arm/lib/error-inject.c
delete mode 100644 arch/arm/mach-keystone/platsmp.c
delete mode 100644 arch/arm/mach-keystone/smc.S
delete mode 100644 arch/arm/mach-ux500/db8500-regs.h
create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts
create mode 100644 arch/arm64/boot/dts/apple/multi-die-cpp.h
create mode 100644 arch/arm64/boot/dts/apple/t6000-j314s.dts
create mode 100644 arch/arm64/boot/dts/apple/t6000-j316s.dts
create mode 100644 arch/arm64/boot/dts/apple/t6000.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t6001-j314c.dts
create mode 100644 arch/arm64/boot/dts/apple/t6001-j316c.dts
create mode 100644 arch/arm64/boot/dts/apple/t6001-j375c.dts
create mode 100644 arch/arm64/boot/dts/apple/t6001.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t6002-j375d.dts
create mode 100644 arch/arm64/boot/dts/apple/t6002.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-common.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-die0.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-dieX.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-gpio-pins.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-j375.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-nvme.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-pmgr.dtsi
rename arch/arm64/boot/dts/freescale/{fsl-ls1028a-qds-13bb.dts => fsl-ls1028a-qds-13bb.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{fsl-ls1028a-qds-65bb.dts => fsl-ls1028a-qds-65bb.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{fsl-ls1028a-qds-7777.dts => fsl-ls1028a-qds-7777.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{fsl-ls1028a-qds-85bb.dts => fsl-ls1028a-qds-85bb.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{fsl-ls1028a-qds-899b.dts => fsl-ls1028a-qds-899b.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{fsl-ls1028a-qds-9999.dts => fsl-ls1028a-qds-9999.dtso} (100%)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-innocomm-wb15-evk.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-innocomm-wb15.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-phg.dts
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw72xx-0x-imx219.dts => imx8mm-venice-gw72xx-0x-imx219.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw72xx-0x-rs232-rts.dts => imx8mm-venice-gw72xx-0x-rs232-rts.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw72xx-0x-rs422.dts => imx8mm-venice-gw72xx-0x-rs422.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw72xx-0x-rs485.dts => imx8mm-venice-gw72xx-0x-rs485.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw73xx-0x-imx219.dts => imx8mm-venice-gw73xx-0x-imx219.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw73xx-0x-rs232-rts.dts => imx8mm-venice-gw73xx-0x-rs232-rts.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw73xx-0x-rs422.dts => imx8mm-venice-gw73xx-0x-rs422.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw73xx-0x-rs485.dts => imx8mm-venice-gw73xx-0x-rs485.dtso} (100%)
create mode 100644 arch/arm64/boot/dts/mediatek/mt6795-sony-xperia-m5.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8956-sony-xperia-loire-kugo.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8956-sony-xperia-loire-suzu.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8956-sony-xperia-loire.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8956.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8976.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-oneplus-common.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-oneplus3.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-oneplus3t.dts
rename arch/arm64/boot/dts/qcom/{msm8996-xiaomi-natrium.dts => msm8996pro-xiaomi-natrium.dts} (97%)
rename arch/arm64/boot/dts/qcom/{msm8996-xiaomi-scorpio.dts => msm8996pro-xiaomi-scorpio.dts} (97%)
create mode 100644 arch/arm64/boot/dts/qcom/msm8996pro.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8998-xiaomi-sagit.dts
create mode 100644 arch/arm64/boot/dts/qcom/pm6125.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/pm8450a.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/pm8950.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/pmi8950.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/pmp8074.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
create mode 100644 arch/arm64/boot/dts/qcom/sa8540p-ride.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel360-lte.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel360-wifi.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel360.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-audio-rt5682-3mic.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-audio-rt5682.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker-lte.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker.dts
rename arch/arm64/boot/dts/qcom/{sc7280-herobrine-evoker-r0.dts => sc7280-herobrine-evoker.dtsi} (94%)
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r1.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-zombie-lte.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-zombie.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-zombie.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts
create mode 100644 arch/arm64/boot/dts/qcom/sdm670.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dts
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-samsung-starqltechn.dts
rename arch/arm64/boot/dts/qcom/{sdm845-xiaomi-beryllium.dts => sdm845-xiaomi-beryllium-common.dtsi} (94%)
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-ebbg.dts
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-tianma.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm4250.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sm6115.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sm6375-sony-xperia-murray-pdx225.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm6375.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sm8450-sony-xperia-nagara-pdx224.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm8450-sony-xperia-nagara.dtsi
rename arch/arm64/boot/dts/renesas/{draak-ebisu-panel-aa104xd12.dts => draak-ebisu-panel-aa104xd12.dtso} (100%)
create mode 100644 arch/arm64/boot/dts/renesas/r9a07g043u.dtsi
rename arch/arm64/boot/dts/renesas/{salvator-panel-aa104xd12.dts => salvator-panel-aa104xd12.dtso} (100%)
create mode 100644 arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts
create mode 100644 arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351m.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3326-odroid-go.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3326-odroid-go3.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-anbernic-rg353v.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-anbernic-rg353vs.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-anbernic-rg353x.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-box-demo.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-soquartz-blade.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-soquartz-model-a.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
create mode 100644 arch/arm64/boot/dts/ti/k3-j721e-beagleboneai64.dts
create mode 100644 arch/arm64/crypto/sm3-neon-core.S
create mode 100644 arch/arm64/crypto/sm3-neon-glue.c
create mode 100644 arch/arm64/crypto/sm4-ce-asm.h
create mode 100644 arch/arm64/crypto/sm4-ce-ccm-core.S
create mode 100644 arch/arm64/crypto/sm4-ce-ccm-glue.c
create mode 100644 arch/arm64/crypto/sm4-ce-gcm-core.S
create mode 100644 arch/arm64/crypto/sm4-ce-gcm-glue.c
create mode 100644 arch/arm64/crypto/sm4-ce.h
delete mode 100644 arch/arm64/kernel/efi-entry.S
create mode 100644 arch/arm64/kernel/patch-scs.c
create mode 100644 arch/arm64/kvm/hyp/include/nvhe/pkvm.h
delete mode 100644 arch/arm64/kvm/irq.h
create mode 100644 arch/loongarch/include/asm/alternative-asm.h
create mode 100644 arch/loongarch/include/asm/alternative.h
create mode 100644 arch/loongarch/include/asm/asm-extable.h
create mode 100644 arch/loongarch/include/asm/bugs.h
create mode 100644 arch/loongarch/include/asm/extable.h
create mode 100644 arch/loongarch/include/asm/ftrace.h
create mode 100644 arch/loongarch/include/asm/gpr-num.h
create mode 100644 arch/loongarch/include/asm/stackprotector.h
create mode 100644 arch/loongarch/kernel/alternative.c
create mode 100644 arch/loongarch/kernel/ftrace.c
create mode 100644 arch/loongarch/kernel/ftrace_dyn.c
create mode 100644 arch/loongarch/kernel/mcount.S
create mode 100644 arch/loongarch/kernel/mcount_dyn.S
create mode 100644 arch/loongarch/kernel/unaligned.c
create mode 100644 arch/loongarch/lib/memcpy.S
create mode 100644 arch/loongarch/lib/memmove.S
create mode 100644 arch/loongarch/lib/memset.S
create mode 100644 arch/loongarch/lib/unaligned.S
create mode 100644 arch/loongarch/power/Makefile
create mode 100644 arch/loongarch/power/hibernate.c
create mode 100644 arch/loongarch/power/hibernate_asm.S
create mode 100644 arch/loongarch/power/platform.c
create mode 100644 arch/loongarch/power/suspend.c
create mode 100644 arch/loongarch/power/suspend_asm.S
delete mode 100644 arch/microblaze/pci/indirect_pci.c
delete mode 100644 arch/microblaze/pci/pci-common.c
delete mode 100644 arch/microblaze/pci/xilinx_pci.c
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-2.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-3.dtsi
create mode 100644 arch/powerpc/include/asm/asm.h
delete mode 100644 arch/powerpc/include/asm/qspinlock_paravirt.h
create mode 100644 arch/powerpc/include/asm/qspinlock_types.h
delete mode 100644 arch/powerpc/kvm/irq.h
create mode 100644 arch/powerpc/lib/qspinlock.c
create mode 100644 arch/riscv/boot/dts/renesas/Makefile
create mode 100644 arch/riscv/boot/dts/renesas/r9a07g043f.dtsi
create mode 100644 arch/riscv/boot/dts/renesas/r9a07g043f01-smarc.dts
create mode 100644 arch/riscv/boot/dts/renesas/rzfive-smarc-som.dtsi
create mode 100644 arch/riscv/boot/dts/renesas/rzfive-smarc.dtsi
create mode 100644 arch/riscv/boot/dts/starfive/jh7100-common.dtsi
create mode 100644 arch/riscv/boot/dts/starfive/jh7100-starfive-visionfive-v1.dts
create mode 100644 arch/riscv/kernel/crash_core.c
create mode 100644 arch/riscv/kernel/probes/rethook.c
create mode 100644 arch/riscv/kernel/probes/rethook.h
rename arch/riscv/kernel/probes/{kprobes_trampoline.S => rethook_trampoline.S} (94%)
create mode 100644 arch/riscv/mm/pgtable.c
create mode 100644 arch/riscv/mm/pmem.c
delete mode 100644 arch/s390/include/asm/bugs.h
delete mode 100644 arch/s390/include/asm/serial.h
delete mode 100644 arch/s390/include/asm/shmparam.h
delete mode 100644 arch/s390/include/asm/vga.h
create mode 100644 arch/s390/include/asm/vx-insn-asm.h
create mode 100644 arch/s390/kernel/kprobes.h
delete mode 100644 arch/s390/kvm/irq.h
create mode 100644 arch/x86/boot/compressed/efi_mixed.S
delete mode 100644 arch/x86/boot/compressed/efi_thunk_64.S
create mode 100644 arch/x86/include/asm/hyperv_timer.h
create mode 100644 arch/x86/kernel/callthunks.c
rename arch/x86/{ia32/ia32_signal.c => kernel/signal_32.c} (82%)
create mode 100644 arch/x86/kernel/signal_64.c
create mode 100644 arch/x86/kvm/smm.c
create mode 100644 arch/x86/kvm/smm.h
create mode 100644 arch/x86/kvm/svm/hyperv.c
rename arch/x86/kvm/vmx/{evmcs.c => hyperv.c} (95%)
rename arch/x86/kvm/vmx/{evmcs.h => hyperv.h} (95%)
create mode 100644 arch/x86/lib/memmove_32.S
rename {drivers/firmware => arch/x86/platform}/efi/fake_mem.c (58%)
create mode 100644 arch/x86/platform/efi/memmap.c
rename {drivers/firmware => arch/x86/platform}/efi/runtime-map.c (96%)
create mode 100644 arch/xtensa/lib/umulsidi3.S
create mode 100644 drivers/accel/Kconfig
create mode 100644 drivers/accel/Makefile
create mode 100644 drivers/accel/drm_accel.c
create mode 100644 drivers/accel/ivpu/Kconfig
create mode 100644 drivers/accel/ivpu/Makefile
create mode 100644 drivers/accel/ivpu/TODO
create mode 100644 drivers/accel/ivpu/ivpu_drv.c
create mode 100644 drivers/accel/ivpu/ivpu_drv.h
create mode 100644 drivers/accel/ivpu/ivpu_fw.c
create mode 100644 drivers/accel/ivpu/ivpu_fw.h
create mode 100644 drivers/accel/ivpu/ivpu_gem.c
create mode 100644 drivers/accel/ivpu/ivpu_gem.h
create mode 100644 drivers/accel/ivpu/ivpu_hw.h
create mode 100644 drivers/accel/ivpu/ivpu_hw_mtl.c
create mode 100644 drivers/accel/ivpu/ivpu_hw_mtl_reg.h
create mode 100644 drivers/accel/ivpu/ivpu_hw_reg_io.h
create mode 100644 drivers/accel/ivpu/ivpu_ipc.c
create mode 100644 drivers/accel/ivpu/ivpu_ipc.h
create mode 100644 drivers/accel/ivpu/ivpu_job.c
create mode 100644 drivers/accel/ivpu/ivpu_job.h
create mode 100644 drivers/accel/ivpu/ivpu_jsm_msg.c
create mode 100644 drivers/accel/ivpu/ivpu_jsm_msg.h
create mode 100644 drivers/accel/ivpu/ivpu_mmu.c
create mode 100644 drivers/accel/ivpu/ivpu_mmu.h
create mode 100644 drivers/accel/ivpu/ivpu_mmu_context.c
create mode 100644 drivers/accel/ivpu/ivpu_mmu_context.h
create mode 100644 drivers/accel/ivpu/ivpu_pm.c
create mode 100644 drivers/accel/ivpu/ivpu_pm.h
create mode 100644 drivers/accel/ivpu/vpu_boot_api.h
create mode 100644 drivers/accel/ivpu/vpu_jsm_api.h
create mode 100644 drivers/acpi/acpi_ffh.c
create mode 100644 drivers/acpi/acpica/utcksum.c
create mode 100644 drivers/acpi/arm64/apmt.c
delete mode 100644 drivers/ata/pata_bk3710.c
create mode 100644 drivers/base/regmap/regmap-fsi.c
create mode 100644 drivers/block/drbd/drbd_polymorph_printk.h
delete mode 100644 drivers/block/pktcdvd.c
create mode 100644 drivers/bluetooth/hci_bcm4377.c
create mode 100644 drivers/char/ipmi/ssif_bmc.c
create mode 100644 drivers/clk/ingenic/jz4755-cgu.c
create mode 100644 drivers/clk/mediatek/clk-fhctl.c
create mode 100644 drivers/clk/mediatek/clk-fhctl.h
create mode 100644 drivers/clk/mediatek/clk-pllfh.c
create mode 100644 drivers/clk/mediatek/clk-pllfh.h
create mode 100644 drivers/clk/mstar/clk-msc313-cpupll.c
create mode 100644 drivers/clk/qcom/dispcc-sc8280xp.c
create mode 100644 drivers/clk/qcom/dispcc-sm6375.c
create mode 100644 drivers/clk/qcom/gcc-sm8550.c
create mode 100644 drivers/clk/rockchip/clk-rk3588.c
create mode 100644 drivers/clk/rockchip/rst-rk3588.c
create mode 100644 drivers/cpufreq/apple-soc-cpufreq.c
create mode 100644 drivers/crypto/hisilicon/debugfs.c
create mode 100644 drivers/crypto/hisilicon/qm_common.h
create mode 100644 drivers/crypto/qat/qat_common/adf_gen2_config.c
create mode 100644 drivers/crypto/qat/qat_common/adf_gen2_config.h
create mode 100644 drivers/crypto/qat/qat_common/adf_gen2_dc.c
create mode 100644 drivers/crypto/qat/qat_common/adf_gen2_dc.h
create mode 100644 drivers/crypto/qat/qat_common/adf_gen4_dc.c
create mode 100644 drivers/crypto/qat/qat_common/adf_gen4_dc.h
create mode 100644 drivers/crypto/qat/qat_common/icp_qat_fw_comp.h
create mode 100644 drivers/crypto/qat/qat_common/icp_qat_hw_20_comp.h
create mode 100644 drivers/crypto/qat/qat_common/icp_qat_hw_20_comp_defs.h
create mode 100644 drivers/crypto/qat/qat_common/qat_bl.c
create mode 100644 drivers/crypto/qat/qat_common/qat_bl.h
create mode 100644 drivers/crypto/qat/qat_common/qat_comp_algs.c
create mode 100644 drivers/crypto/qat/qat_common/qat_comp_req.h
create mode 100644 drivers/crypto/qat/qat_common/qat_compression.c
create mode 100644 drivers/crypto/qat/qat_common/qat_compression.h
delete mode 100644 drivers/crypto/ux500/cryp/Makefile
delete mode 100644 drivers/crypto/ux500/cryp/cryp.c
delete mode 100644 drivers/crypto/ux500/cryp/cryp.h
delete mode 100644 drivers/crypto/ux500/cryp/cryp_core.c
delete mode 100644 drivers/crypto/ux500/cryp/cryp_irq.c
delete mode 100644 drivers/crypto/ux500/cryp/cryp_irq.h
delete mode 100644 drivers/crypto/ux500/cryp/cryp_irqp.h
delete mode 100644 drivers/crypto/ux500/cryp/cryp_p.h
create mode 100644 drivers/cxl/security.c
delete mode 100644 drivers/dma/at_hdmac_regs.h
delete mode 100644 drivers/dma/iop-adma.c
delete mode 100644 drivers/dma/iop-adma.h
delete mode 100644 drivers/dma/sh/shdma-arm.h
create mode 100644 drivers/firmware/efi/cper_cxl.c
create mode 100644 drivers/firmware/efi/cper_cxl.h
delete mode 100644 drivers/firmware/efi/fake_mem.h
create mode 100644 drivers/firmware/efi/libstub/arm64-entry.S
create mode 100644 drivers/firmware/efi/libstub/arm64.c
create mode 100644 drivers/firmware/efi/libstub/efi-stub-entry.c
create mode 100644 drivers/firmware/efi/libstub/loongarch.c
create mode 100644 drivers/firmware/efi/libstub/printk.c
create mode 100644 drivers/firmware/efi/libstub/riscv.c
create mode 100644 drivers/firmware/efi/libstub/screen_info.c
delete mode 100644 drivers/firmware/efi/x86_fake_mem.c
create mode 100644 drivers/firmware/google/cbmem.c
create mode 100644 drivers/fpga/lattice-sysconfig-spi.c
create mode 100644 drivers/fpga/lattice-sysconfig.c
create mode 100644 drivers/fpga/lattice-sysconfig.h
create mode 100644 drivers/gpio/gpio-idio-16.c
create mode 100644 drivers/gpio/gpio-idio-16.h
create mode 100644 drivers/gpio/gpio-latch.c
delete mode 100644 drivers/gpio/gpio-sta2x11.c
create mode 100644 drivers/gpio/gpiolib-swnode.c
create mode 100644 drivers/gpio/gpiolib-swnode.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/df_v4_3.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/df_v4_3.h
create mode 100644 drivers/gpu/drm/amd/display/dc/link/link_dp_dpia_bw.c
create mode 100644 drivers/gpu/drm/amd/display/dc/link/link_dp_dpia_bw.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/df/df_4_3_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/df/df_4_3_sh_mask.h
create mode 100644 drivers/gpu/drm/i915/display/intel_dvo_regs.h
rename drivers/gpu/drm/i915/{ => soc}/intel_dram.c (100%)
rename drivers/gpu/drm/i915/{ => soc}/intel_dram.h (100%)
rename drivers/gpu/drm/i915/{ => soc}/intel_pch.c (100%)
rename drivers/gpu/drm/i915/{ => soc}/intel_pch.h (100%)
create mode 100644 drivers/gpu/drm/panel/panel-auo-a030jtn01.c
create mode 100644 drivers/gpu/drm/tegra/riscv.c
create mode 100644 drivers/gpu/drm/tegra/riscv.h
create mode 100644 drivers/hwmon/oxp-sensors.c
create mode 100644 drivers/hwmon/smpro-hwmon.c
create mode 100644 drivers/iio/accel/kionix-kx022a-i2c.c
create mode 100644 drivers/iio/accel/kionix-kx022a-spi.c
create mode 100644 drivers/iio/accel/kionix-kx022a.c
create mode 100644 drivers/iio/accel/kionix-kx022a.h
create mode 100644 drivers/iio/adc/ad4130.c
create mode 100644 drivers/iio/adc/max11410.c
create mode 100644 drivers/iio/adc/mt6370-adc.c
create mode 100644 drivers/iio/addac/ad74115.c
create mode 100644 drivers/iio/frequency/adf4377.c
create mode 100644 drivers/iio/temperature/max30208.c
create mode 100644 drivers/infiniband/hw/mana/Kconfig
create mode 100644 drivers/infiniband/hw/mana/Makefile
create mode 100644 drivers/infiniband/hw/mana/cq.c
create mode 100644 drivers/infiniband/hw/mana/device.c
create mode 100644 drivers/infiniband/hw/mana/main.c
create mode 100644 drivers/infiniband/hw/mana/mana_ib.h
create mode 100644 drivers/infiniband/hw/mana/mr.c
create mode 100644 drivers/infiniband/hw/mana/qp.c
create mode 100644 drivers/infiniband/hw/mana/wq.c
delete mode 100644 drivers/input/misc/dm355evm_keys.c
create mode 100644 drivers/input/misc/tps65219-pwrbutton.c
create mode 100644 drivers/input/touchscreen/cyttsp5.c
create mode 100644 drivers/input/touchscreen/himax_hx83112b.c
create mode 100644 drivers/input/touchscreen/hynitron_cstxxx.c
delete mode 100644 drivers/iommu/iommu-sva-lib.c
create mode 100644 drivers/iommu/iommu-sva.c
rename drivers/iommu/{iommu-sva-lib.h => iommu-sva.h} (83%)
create mode 100644 drivers/iommu/iommufd/Kconfig
create mode 100644 drivers/iommu/iommufd/Makefile
create mode 100644 drivers/iommu/iommufd/device.c
create mode 100644 drivers/iommu/iommufd/double_span.h
create mode 100644 drivers/iommu/iommufd/hw_pagetable.c
create mode 100644 drivers/iommu/iommufd/io_pagetable.c
create mode 100644 drivers/iommu/iommufd/io_pagetable.h
create mode 100644 drivers/iommu/iommufd/ioas.c
create mode 100644 drivers/iommu/iommufd/iommufd_private.h
create mode 100644 drivers/iommu/iommufd/iommufd_test.h
create mode 100644 drivers/iommu/iommufd/main.c
create mode 100644 drivers/iommu/iommufd/pages.c
create mode 100644 drivers/iommu/iommufd/selftest.c
create mode 100644 drivers/iommu/iommufd/vfio_compat.c
create mode 100644 drivers/media/i2c/ov08x40.c
create mode 100644 drivers/media/i2c/ov4689.c
delete mode 100644 drivers/media/i2c/s5k4ecgx.c
create mode 100644 drivers/media/i2c/st-vgxy61.c
create mode 100644 drivers/media/i2c/tc358746.c
create mode 100644 drivers/media/platform/microchip/Kconfig
create mode 100644 drivers/media/platform/microchip/Makefile
rename drivers/media/platform/{atmel => microchip}/microchip-csi2dc.c (100%)
create mode 100644 drivers/media/platform/microchip/microchip-isc-base.c
create mode 100644 drivers/media/platform/microchip/microchip-isc-clk.c
create mode 100644 drivers/media/platform/microchip/microchip-isc-regs.h
create mode 100644 drivers/media/platform/microchip/microchip-isc-scaler.c
create mode 100644 drivers/media/platform/microchip/microchip-isc.h
create mode 100644 drivers/media/platform/microchip/microchip-sama5d2-isc.c
create mode 100644 drivers/media/platform/microchip/microchip-sama7g5-isc.c
rename drivers/{staging/media/imx => media/platform/nxp}/imx7-media-csi.c (91%)
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/Kconfig
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/Makefile
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c
create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h
create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c
create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.h
delete mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun6i_video.c
delete mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun6i_video.h
create mode 100644 drivers/media/test-drivers/visl/Kconfig
create mode 100644 drivers/media/test-drivers/visl/Makefile
create mode 100644 drivers/media/test-drivers/visl/visl-core.c
create mode 100644 drivers/media/test-drivers/visl/visl-debugfs.c
create mode 100644 drivers/media/test-drivers/visl/visl-debugfs.h
create mode 100644 drivers/media/test-drivers/visl/visl-dec.c
create mode 100644 drivers/media/test-drivers/visl/visl-dec.h
create mode 100644 drivers/media/test-drivers/visl/visl-trace-fwht.h
create mode 100644 drivers/media/test-drivers/visl/visl-trace-h264.h
create mode 100644 drivers/media/test-drivers/visl/visl-trace-hevc.h
create mode 100644 drivers/media/test-drivers/visl/visl-trace-mpeg2.h
create mode 100644 drivers/media/test-drivers/visl/visl-trace-points.c
create mode 100644 drivers/media/test-drivers/visl/visl-trace-vp8.h
create mode 100644 drivers/media/test-drivers/visl/visl-trace-vp9.h
create mode 100644 drivers/media/test-drivers/visl/visl-video.c
create mode 100644 drivers/media/test-drivers/visl/visl-video.h
create mode 100644 drivers/media/test-drivers/visl/visl.h
delete mode 100644 drivers/mfd/davinci_voicecodec.c
delete mode 100644 drivers/mfd/dm355evm_msp.c
delete mode 100644 drivers/mfd/htc-i2cpld.c
create mode 100644 drivers/mfd/smpro-core.c
create mode 100644 drivers/mfd/tps65219.c
create mode 100644 drivers/misc/smpro-errmon.c
create mode 100644 drivers/misc/smpro-misc.c
create mode 100644 drivers/mmc/host/sunplus-mmc.c
delete mode 100644 drivers/mtd/devices/lart.c
create mode 100644 drivers/mtd/parsers/tplink_safeloader.c
delete mode 100644 drivers/net/can/pch_can.c
create mode 100644 drivers/net/can/usb/etas_es58x/es58x_devlink.c
create mode 100644 drivers/net/dsa/mv88e6xxx/trace.c
create mode 100644 drivers/net/dsa/mv88e6xxx/trace.h
delete mode 100644 drivers/net/ethernet/fealnx.c
create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpaa2-xsk.c
create mode 100644 drivers/net/ethernet/intel/e1000e/e1000e_trace.h
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed_mcu.c
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed_wo.c
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed_wo.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/diag/cmd_tracepoint.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_definer.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_goto.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_tc_flower.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_vcap_ag_api.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_vcap_ag_api.h
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_tc_matchall.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_vcap_ag_api.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_vcap_ag_api.h
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_vcap_debugfs.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_vcap_debugfs.h
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.h
create mode 100644 drivers/net/ethernet/microchip/vcap/Kconfig
create mode 100644 drivers/net/ethernet/microchip/vcap/Makefile
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_ag_api.h
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api.c
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api.h
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api_client.h
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.h
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api_private.h
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_model_kunit.c
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_model_kunit.h
create mode 100644 drivers/net/ethernet/netronome/nfp/crypto/ipsec.c
create mode 100644 drivers/net/ethernet/netronome/nfp/nfd3/ipsec.c
create mode 100644 drivers/net/ethernet/renesas/rcar_gen4_ptp.c
create mode 100644 drivers/net/ethernet/renesas/rcar_gen4_ptp.h
create mode 100644 drivers/net/ethernet/renesas/rswitch.c
create mode 100644 drivers/net/ethernet/renesas/rswitch.h
create mode 100644 drivers/net/ethernet/sfc/mae_counter_format.h
create mode 100644 drivers/net/ethernet/sfc/tc_counters.c
create mode 100644 drivers/net/ethernet/sfc/tc_counters.h
delete mode 100644 drivers/net/ethernet/smsc/smc911x.c
delete mode 100644 drivers/net/ethernet/smsc/smc911x.h
create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.c
create mode 100644 drivers/net/ethernet/wangxun/libwx/Makefile
create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_hw.c
create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_hw.h
create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_type.h
create mode 100644 drivers/net/ethernet/wangxun/ngbe/ngbe_hw.c
create mode 100644 drivers/net/ethernet/wangxun/ngbe/ngbe_hw.h
create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe_hw.c
create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe_hw.h
create mode 100644 drivers/net/ipa/data/ipa_data-v4.7.c
create mode 100644 drivers/net/ipa/reg/ipa_reg-v4.7.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/Makefile
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/module.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/vops.h
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/Makefile
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/module.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/vops.h
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.h
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/Makefile
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/module.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/vops.h
create mode 100644 drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/coredump.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/coredump.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/Kconfig
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/Makefile
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/dma.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/eeprom.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/eeprom.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/init.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/mac.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/mac.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/main.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/mcu.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/mmio.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/pci.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/regs.h
create mode 100644 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188f.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723du.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8821cu.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822bu.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822cu.c
create mode 100644 drivers/net/wireless/realtek/rtw88/usb.c
create mode 100644 drivers/net/wireless/realtek/rtw88/usb.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b_rfk_table.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b_rfk_table.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b_table.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b_table.h
create mode 100644 drivers/net/wireless/realtek/rtw89/wow.c
create mode 100644 drivers/net/wireless/realtek/rtw89/wow.h
delete mode 100644 drivers/net/wireless/ti/wilink_platform_data.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_port_trace.c
rename drivers/of/unittest-data/{overlay.dts => overlay.dtso} (100%)
rename drivers/of/unittest-data/{overlay_0.dts => overlay_0.dtso} (100%)
rename drivers/of/unittest-data/{overlay_1.dts => overlay_1.dtso} (100%)
rename drivers/of/unittest-data/{overlay_10.dts => overlay_10.dtso} (100%)
rename drivers/of/unittest-data/{overlay_11.dts => overlay_11.dtso} (100%)
rename drivers/of/unittest-data/{overlay_12.dts => overlay_12.dtso} (100%)
rename drivers/of/unittest-data/{overlay_13.dts => overlay_13.dtso} (100%)
rename drivers/of/unittest-data/{overlay_15.dts => overlay_15.dtso} (100%)
rename drivers/of/unittest-data/{overlay_16.dts => overlay_16.dtso} (100%)
rename drivers/of/unittest-data/{overlay_17.dts => overlay_17.dtso} (100%)
rename drivers/of/unittest-data/{overlay_18.dts => overlay_18.dtso} (100%)
rename drivers/of/unittest-data/{overlay_19.dts => overlay_19.dtso} (100%)
rename drivers/of/unittest-data/{overlay_2.dts => overlay_2.dtso} (100%)
rename drivers/of/unittest-data/{overlay_20.dts => overlay_20.dtso} (100%)
rename drivers/of/unittest-data/{overlay_3.dts => overlay_3.dtso} (100%)
rename drivers/of/unittest-data/{overlay_4.dts => overlay_4.dtso} (100%)
rename drivers/of/unittest-data/{overlay_5.dts => overlay_5.dtso} (100%)
rename drivers/of/unittest-data/{overlay_6.dts => overlay_6.dtso} (100%)
rename drivers/of/unittest-data/{overlay_7.dts => overlay_7.dtso} (100%)
rename drivers/of/unittest-data/{overlay_8.dts => overlay_8.dtso} (100%)
rename drivers/of/unittest-data/{overlay_9.dts => overlay_9.dtso} (100%)
rename drivers/of/unittest-data/{overlay_bad_add_dup_node.dts => overlay_bad_add_dup_node.dtso} (100%)
rename drivers/of/unittest-data/{overlay_bad_add_dup_prop.dts => overlay_bad_add_dup_prop.dtso} (100%)
rename drivers/of/unittest-data/{overlay_bad_phandle.dts => overlay_bad_phandle.dtso} (100%)
rename drivers/of/unittest-data/{overlay_bad_symbol.dts => overlay_bad_symbol.dtso} (100%)
rename drivers/of/unittest-data/{overlay_base.dts => overlay_base.dtso} (100%)
rename drivers/of/unittest-data/{overlay_gpio_01.dts => overlay_gpio_01.dtso} (100%)
rename drivers/of/unittest-data/{overlay_gpio_02a.dts => overlay_gpio_02a.dtso} (100%)
rename drivers/of/unittest-data/{overlay_gpio_02b.dts => overlay_gpio_02b.dtso} (100%)
rename drivers/of/unittest-data/{overlay_gpio_03.dts => overlay_gpio_03.dtso} (100%)
rename drivers/of/unittest-data/{overlay_gpio_04a.dts => overlay_gpio_04a.dtso} (100%)
rename drivers/of/unittest-data/{overlay_gpio_04b.dts => overlay_gpio_04b.dtso} (100%)
rename drivers/of/unittest-data/{testcases.dts => testcases.dtso} (100%)
create mode 100644 drivers/pci/controller/dwc/pcie-bt1.c
create mode 100644 drivers/pci/msi/api.c
rename drivers/pci/pcie/{portdrv_core.c => portdrv.c} (68%)
delete mode 100644 drivers/pci/pcie/portdrv_pci.c
create mode 100644 drivers/perf/amlogic/Kconfig
create mode 100644 drivers/perf/amlogic/Makefile
create mode 100644 drivers/perf/amlogic/meson_ddr_pmu_core.c
create mode 100644 drivers/perf/amlogic/meson_g12_ddr_pmu.c
create mode 100644 drivers/perf/arm_cspmu/Kconfig
create mode 100644 drivers/perf/arm_cspmu/Makefile
create mode 100644 drivers/perf/arm_cspmu/arm_cspmu.c
create mode 100644 drivers/perf/arm_cspmu/arm_cspmu.h
create mode 100644 drivers/perf/arm_cspmu/nvidia_cspmu.c
create mode 100644 drivers/perf/arm_cspmu/nvidia_cspmu.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v5_20.h
create mode 100644 drivers/phy/renesas/r8a779f0-ether-serdes.c
create mode 100644 drivers/pinctrl/intel/pinctrl-moorefield.c
create mode 100644 drivers/pinctrl/pinctrl-loongson2.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-sdm670.c
create mode 100644 drivers/platform/chrome/cros_hps_i2c.c
create mode 100644 drivers/platform/x86/dell/dell-wmi-ddv.c
create mode 100644 drivers/platform/x86/hp/Kconfig
create mode 100644 drivers/platform/x86/hp/Makefile
rename drivers/platform/x86/{ => hp}/hp-wmi.c (100%)
rename drivers/platform/x86/{ => hp}/hp_accel.c (99%)
rename drivers/platform/x86/{ => hp}/tc1100-wmi.c (100%)
create mode 100644 drivers/platform/x86/intel/pmc/adl.c
create mode 100644 drivers/platform/x86/intel/pmc/cnp.c
create mode 100644 drivers/platform/x86/intel/pmc/icl.c
create mode 100644 drivers/platform/x86/intel/pmc/mtl.c
create mode 100644 drivers/platform/x86/intel/pmc/spt.c
create mode 100644 drivers/platform/x86/intel/pmc/tgl.c
create mode 100644 drivers/powercap/arm_scmi_powercap.c
create mode 100644 drivers/regulator/mt6357-regulator.c
create mode 100644 drivers/regulator/rt6190-regulator.c
create mode 100644 drivers/remoteproc/xlnx_r5_remoteproc.c
delete mode 100644 drivers/rtc/rtc-davinci.c
delete mode 100644 drivers/rtc/rtc-dm355evm.c
create mode 100644 drivers/scsi/sd_trace.h
create mode 100644 drivers/soc/loongson/Kconfig
create mode 100644 drivers/soc/loongson/Makefile
create mode 100644 drivers/soc/loongson/loongson2_guts.c
create mode 100644 drivers/soundwire/intel_auxdevice.c
create mode 100644 drivers/soundwire/intel_auxdevice.h
create mode 100644 drivers/spi/spi-pci1xxxx.c
create mode 100644 drivers/spi/spi-sn-f-ospi.c
create mode 100644 drivers/spi/spi-wpcm-fiu.c
create mode 100644 drivers/staging/media/deprecated/atmel/Kconfig
create mode 100644 drivers/staging/media/deprecated/atmel/Makefile
create mode 100644 drivers/staging/media/deprecated/atmel/TODO
rename drivers/{media/platform => staging/media/deprecated}/atmel/atmel-isc-base.c (99%)
rename drivers/{media/platform => staging/media/deprecated}/atmel/atmel-isc-clk.c (97%)
rename drivers/{media/platform => staging/media/deprecated}/atmel/atmel-isc-regs.h (100%)
rename drivers/{media/platform => staging/media/deprecated}/atmel/atmel-isc.h (96%)
rename drivers/{media/platform => staging/media/deprecated}/atmel/atmel-sama5d2-isc.c (97%)
rename drivers/{media/platform => staging/media/deprecated}/atmel/atmel-sama7g5-isc.c (97%)
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/Kconfig
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/Makefile
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/TODO.txt
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.h
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_capture.c
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_capture.h
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_params.c
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_params.h
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_proc.c
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_proc.h
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_reg.h
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/uapi/sun6i-isp-config.h
rename drivers/staging/pi433/Documentation/devicetree/{pi433-overlay.dts => pi433-overlay.dtso} (100%)
delete mode 100644 drivers/staging/r8188eu/include/odm_types.h
create mode 100644 drivers/staging/rtl8192u/TODO
create mode 100644 drivers/staging/wlan-ng/TODO
create mode 100644 drivers/usb/fotg210/Kconfig
create mode 100644 drivers/usb/fotg210/Makefile
create mode 100644 drivers/usb/fotg210/fotg210-core.c
rename drivers/usb/{host => fotg210}/fotg210-hcd.c (99%)
rename drivers/usb/{host/fotg210.h => fotg210/fotg210-hcd.h} (100%)
rename drivers/usb/{gadget/udc => fotg210}/fotg210-udc.c (89%)
rename drivers/usb/{gadget/udc/fotg210.h => fotg210/fotg210-udc.h} (99%)
create mode 100644 drivers/usb/fotg210/fotg210.h
delete mode 100644 drivers/usb/misc/sisusbvga/sisusb_con.c
delete mode 100644 drivers/usb/misc/sisusbvga/sisusb_init.c
delete mode 100644 drivers/usb/misc/sisusbvga/sisusb_init.h
rename drivers/usb/misc/sisusbvga/{sisusb.c => sisusbvga.c} (91%)
delete mode 100644 drivers/usb/musb/am35x.c
delete mode 100644 drivers/usb/musb/cppi_dma.c
delete mode 100644 drivers/usb/musb/davinci.c
delete mode 100644 drivers/usb/musb/davinci.h
delete mode 100644 drivers/usb/phy/phy-jz4770.c
create mode 100644 drivers/vfio/group.c
create mode 100644 drivers/vfio/iommufd.c
delete mode 100644 drivers/vfio/vfio_spapr_eeh.c
create mode 100644 drivers/virt/coco/tdx-guest/Kconfig
create mode 100644 drivers/virt/coco/tdx-guest/Makefile
create mode 100644 drivers/virt/coco/tdx-guest/tdx-guest.c
create mode 100644 drivers/watchdog/advantech_ec_wdt.c
rename fs/btrfs/{struct-funcs.c => accessors.c} (95%)
create mode 100644 fs/btrfs/accessors.h
create mode 100644 fs/btrfs/acl.h
create mode 100644 fs/btrfs/bio.c
create mode 100644 fs/btrfs/bio.h
create mode 100644 fs/btrfs/defrag.c
create mode 100644 fs/btrfs/defrag.h
create mode 100644 fs/btrfs/dir-item.h
create mode 100644 fs/btrfs/extent-tree.h
create mode 100644 fs/btrfs/file-item.h
create mode 100644 fs/btrfs/file.h
create mode 100644 fs/btrfs/fs.c
create mode 100644 fs/btrfs/fs.h
create mode 100644 fs/btrfs/ioctl.h
create mode 100644 fs/btrfs/messages.c
create mode 100644 fs/btrfs/messages.h
create mode 100644 fs/btrfs/orphan.h
create mode 100644 fs/btrfs/relocation.h
create mode 100644 fs/btrfs/root-tree.h
create mode 100644 fs/btrfs/scrub.h
create mode 100644 fs/btrfs/super.h
delete mode 100644 fs/btrfs/tree-defrag.c
create mode 100644 fs/btrfs/uuid-tree.h
create mode 100644 fs/btrfs/verity.h
create mode 100644 fs/cifs/dfs.c
create mode 100644 fs/cifs/dfs.h
create mode 100644 fs/pstore/ram_internal.h
create mode 100644 include/drm/drm_accel.h
create mode 100644 include/dt-bindings/arm/qcom,ids.h
create mode 100644 include/dt-bindings/clock/ingenic,jz4755-cgu.h
create mode 100644 include/dt-bindings/clock/qcom,dispcc-sc8280xp.h
create mode 100644 include/dt-bindings/clock/qcom,sm6375-dispcc.h
create mode 100644 include/dt-bindings/clock/qcom,sm8550-gcc.h
create mode 100644 include/dt-bindings/clock/rockchip,rk3588-cru.h
create mode 100644 include/dt-bindings/mailbox/mediatek,mt8188-gce.h
create mode 100644 include/dt-bindings/media/video-interfaces.h
create mode 100644 include/dt-bindings/memory/mediatek,mt8365-larb-port.h
create mode 100644 include/dt-bindings/phy/phy-qcom-qmp.h
create mode 100644 include/dt-bindings/reset/mt8188-resets.h
create mode 100644 include/dt-bindings/reset/rockchip,rk3588-cru.h
create mode 100644 include/kunit/visibility.h
create mode 100644 include/linux/acpi_apmt.h
create mode 100644 include/linux/cgroup_refcnt.h
create mode 100644 include/linux/cxl_err.h
create mode 100644 include/linux/gpio/property.h
delete mode 100644 include/linux/htcpld.h
create mode 100644 include/linux/iommufd.h
create mode 100644 include/linux/irqdomain_defs.h
delete mode 100644 include/linux/mfd/dm355evm_msp.h
create mode 100644 include/linux/mfd/tps65219.h
create mode 100644 include/linux/msi_api.h
delete mode 100644 include/linux/pktcdvd.h
delete mode 100644 include/linux/platform_data/st33zp24.h
create mode 100644 include/linux/platform_data/x86/pwm-lpss.h
create mode 100644 include/linux/regulator/mt6357-regulator.h
delete mode 100644 include/linux/smc911x.h
delete mode 100644 include/linux/wl12xx.h
delete mode 100644 include/media/i2c/ov9650.h
delete mode 100644 include/media/i2c/s5k4ecgx.h
rename {drivers/net/ethernet/microsoft => include/net}/mana/gdma.h (80%)
rename {drivers/net/ethernet/microsoft => include/net}/mana/hw_channel.h (100%)
rename {drivers/net/ethernet/microsoft => include/net}/mana/mana.h (94%)
create mode 100644 include/net/mana/mana_auxiliary.h
rename {drivers/net/ethernet/microsoft => include/net}/mana/shm_channel.h (100%)
create mode 100644 include/net/tc_wrapper.h
create mode 100644 include/soc/amlogic/meson_ddr_pmu.h
rename include/sound/{acp62_chip_offset_byte.h => acp63_chip_offset_byte.h} (65%)
create mode 100644 include/sound/sdw.h
delete mode 100644 include/sound/tlv320aic3x.h
create mode 100644 include/trace/events/cxl.h
create mode 100644 include/trace/events/vmalloc.h
rename include/trace/{events => misc}/fs.h (100%)
rename include/trace/{events => misc}/nfs.h (96%)
rename include/trace/{events => misc}/rdma.h (100%)
rename include/trace/{events/sunrpc_base.h => misc/sunrpc.h} (100%)
create mode 100644 include/uapi/drm/ivpu_accel.h
create mode 100644 include/uapi/linux/aspeed-video.h
create mode 100644 include/uapi/linux/iommufd.h
create mode 100644 include/uapi/linux/ipmi_ssif_bmc.h
delete mode 100644 include/uapi/linux/pktcdvd.h
create mode 100644 include/uapi/linux/tdx-guest.h
create mode 100644 include/uapi/rdma/mana-abi.h
delete mode 100644 include/video/omap-panel-data.h
create mode 100644 kernel/bpf/bpf_cgrp_storage.c
create mode 100644 kernel/kallsyms_selftest.c
create mode 100644 kernel/kallsyms_selftest.h
create mode 100644 lib/crypto/aesgcm.c
rename {crypto => lib/crypto}/gf128mul.c (87%)
rename lib/{test_siphash.c => siphash_kunit.c} (60%)
create mode 100644 lib/strscpy_kunit.c
delete mode 100644 lib/test_strscpy.c
create mode 100644 lib/zstd/common/portability_macros.h
create mode 100644 lib/zstd/compress/clevels.h
create mode 100644 lib/zstd/zstd_common_module.c
create mode 100644 mm/damon/modules-common.c
create mode 100644 mm/damon/sysfs-common.c
create mode 100644 mm/damon/sysfs-common.h
create mode 100644 mm/damon/sysfs-schemes.c
create mode 100644 net/dsa/devlink.c
create mode 100644 net/dsa/devlink.h
create mode 100644 net/dsa/dsa.h
delete mode 100644 net/dsa/dsa2.c
delete mode 100644 net/dsa/dsa_priv.h
create mode 100644 net/dsa/master.h
create mode 100644 net/dsa/netlink.h
create mode 100644 net/dsa/port.h
create mode 100644 net/dsa/slave.h
create mode 100644 net/dsa/switch.h
create mode 100644 net/dsa/tag.c
create mode 100644 net/dsa/tag.h
create mode 100644 net/dsa/tag_8021q.h
create mode 100644 net/dsa/tag_none.c
create mode 100644 net/ethtool/rss.c
create mode 100644 net/ipv4/tcp_plb.c
create mode 100644 net/mptcp/fastopen.c
create mode 100644 net/netfilter/nf_nat_ovs.c
create mode 100644 net/netfilter/nft_inner.c
create mode 100644 net/rxrpc/io_thread.c
create mode 100644 net/rxrpc/rxperf.c
create mode 100644 net/rxrpc/txbuf.c
create mode 100644 net/xfrm/xfrm_interface_bpf.c
rename net/xfrm/{xfrm_interface.c => xfrm_interface_core.c} (98%)
create mode 100644 rust/build_error.rs
create mode 100644 rust/kernel/build_assert.rs
create mode 100644 rust/kernel/static_assert.rs
create mode 100644 rust/kernel/std_vendor.rs
create mode 100644 rust/kernel/types.rs
create mode 100644 rust/macros/concat_idents.rs
create mode 100644 rust/macros/vtable.rs
create mode 100644 samples/rust/rust_print.rs
create mode 100644 security/apparmor/include/policy_compat.h
create mode 100644 security/apparmor/policy_compat.c
create mode 100644 sound/firewire/dice/dice-focusrite.c
rename sound/soc/amd/ps/{acp62.h => acp63.h} (79%)
create mode 100644 sound/soc/codecs/rt1318-sdw.c
create mode 100644 sound/soc/codecs/rt1318-sdw.h
create mode 100644 sound/soc/intel/avs/boards/max98927.c
create mode 100644 sound/soc/intel/avs/boards/probe.c
create mode 100644 sound/soc/intel/avs/debugfs.c
create mode 100644 sound/soc/intel/avs/probes.c
create mode 100644 sound/soc/intel/boards/sof_sdw_amp_coeff_tables.h
delete mode 100644 sound/soc/intel/boards/sof_sdw_rt1308.c
delete mode 100644 sound/soc/intel/boards/sof_sdw_rt1316.c
create mode 100644 sound/soc/intel/boards/sof_sdw_rt_amp.c
delete mode 100644 sound/soc/jz4740/jz4740-i2s.h
create mode 100644 sound/soc/sof/intel/hda-mlink.c
create mode 100644 sound/soc/sof/sof-client-probes-ipc3.c
create mode 100644 sound/soc/sof/sof-client-probes-ipc4.c
create mode 100644 tools/include/linux/bitfield.h
create mode 100644 tools/include/linux/interval_tree_generic.h
create mode 100644 tools/lib/symbol/Build
create mode 100644 tools/lib/symbol/Makefile
delete mode 100644 tools/lib/traceevent/.gitignore
delete mode 100644 tools/lib/traceevent/Build
delete mode 100644 tools/lib/traceevent/Documentation/Makefile
delete mode 100644 tools/lib/traceevent/Documentation/asciidoc.conf
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-commands.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-cpus.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-endian_read.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-event_find.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-event_get.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-event_list.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-event_print.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-field_find.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-field_get_val.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-field_print.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-field_read.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-fields.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-file_endian.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-filter.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-func_apis.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-func_find.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-handle.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-header_page.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-host_endian.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-long_size.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-page_size.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-parse_event.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-parse_head.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-plugins.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-record_parse.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-reg_event_handler.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-reg_print_func.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-set_flag.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-strerror.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-tseq.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent.txt
delete mode 100644 tools/lib/traceevent/Documentation/manpage-1.72.xsl
delete mode 100644 tools/lib/traceevent/Documentation/manpage-base.xsl
delete mode 100644 tools/lib/traceevent/Documentation/manpage-bold-literal.xsl
delete mode 100644 tools/lib/traceevent/Documentation/manpage-normal.xsl
delete mode 100644 tools/lib/traceevent/Documentation/manpage-suppress-sp.xsl
delete mode 100644 tools/lib/traceevent/Makefile
delete mode 100644 tools/lib/traceevent/event-parse-api.c
delete mode 100644 tools/lib/traceevent/event-parse-local.h
delete mode 100644 tools/lib/traceevent/event-parse.c
delete mode 100644 tools/lib/traceevent/event-parse.h
delete mode 100644 tools/lib/traceevent/event-plugin.c
delete mode 100644 tools/lib/traceevent/event-utils.h
delete mode 100644 tools/lib/traceevent/kbuffer-parse.c
delete mode 100644 tools/lib/traceevent/kbuffer.h
delete mode 100644 tools/lib/traceevent/libtraceevent.pc.template
delete mode 100644 tools/lib/traceevent/parse-filter.c
delete mode 100644 tools/lib/traceevent/parse-utils.c
delete mode 100644 tools/lib/traceevent/plugins/Build
delete mode 100644 tools/lib/traceevent/plugins/Makefile
delete mode 100644 tools/lib/traceevent/plugins/plugin_cfg80211.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_function.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_futex.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_hrtimer.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_jbd2.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_kmem.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_kvm.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_mac80211.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_sched_switch.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_scsi.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_tlb.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_xen.c
delete mode 100644 tools/lib/traceevent/tep_strerror.c
delete mode 100644 tools/lib/traceevent/trace-seq.c
delete mode 100644 tools/lib/traceevent/trace-seq.h
create mode 100644 tools/objtool/arch/powerpc/Build
create mode 100644 tools/objtool/arch/powerpc/decode.c
create mode 100644 tools/objtool/arch/powerpc/include/arch/cfi_regs.h
create mode 100644 tools/objtool/arch/powerpc/include/arch/elf.h
create mode 100644 tools/objtool/arch/powerpc/include/arch/special.h
create mode 100644 tools/objtool/arch/powerpc/special.c
delete mode 100644 tools/objtool/arch/x86/include/arch/endianness.h
create mode 100644 tools/perf/arch/riscv/util/header.c
rename tools/perf/arch/x86/tests/{intel-pt-pkt-decoder-test.c => intel-pt-test.c} (80%)
delete mode 100644 tools/perf/examples/bpf/augmented_syscalls.c
delete mode 100644 tools/perf/examples/bpf/etcsnoop.c
delete mode 100644 tools/perf/include/bpf/bpf.h
delete mode 100644 tools/perf/include/bpf/linux/socket.h
delete mode 100644 tools/perf/include/bpf/pid_filter.h
delete mode 100644 tools/perf/include/bpf/stdio.h
delete mode 100644 tools/perf/include/bpf/unistd.h
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/branch.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/bus.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/cache.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/exception.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/instruction.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/memory.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/pipeline.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/spe.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/trace.json (100%)
create mode 100644 tools/perf/pmu-events/arch/riscv/mapfile.csv
create mode 100644 tools/perf/pmu-events/arch/riscv/riscv-sbi-firmware.json
create mode 100644 tools/perf/pmu-events/arch/riscv/sifive/u74/firmware.json
create mode 100644 tools/perf/pmu-events/arch/riscv/sifive/u74/instructions.json
create mode 100644 tools/perf/pmu-events/arch/riscv/sifive/u74/memory.json
create mode 100644 tools/perf/pmu-events/arch/riscv/sifive/u74/microarch.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/adln-metrics.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/floating-point.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/frontend.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/other.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/uncore-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/virtual-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/branch.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/core.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/data-fabric.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/floating-point.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/other.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/recommended.json
create mode 100644 tools/perf/pmu-events/metric.py
create mode 100644 tools/perf/pmu-events/metric_test.py
create mode 100755 tools/perf/scripts/python/bin/task-analyzer-record
create mode 100755 tools/perf/scripts/python/bin/task-analyzer-report
create mode 100755 tools/perf/scripts/python/task-analyzer.py
delete mode 100644 tools/perf/tests/attr/test-record-group
create mode 100644 tools/perf/tests/attr/test-record-user-regs-no-sve-aarch64
create mode 100644 tools/perf/tests/attr/test-record-user-regs-old-sve-aarch64
create mode 100644 tools/perf/tests/attr/test-record-user-regs-sve-aarch64
delete mode 100644 tools/perf/tests/attr/test-stat-group
create mode 100644 tools/perf/tests/event_groups.c
create mode 100755 tools/perf/tests/shell/test_task_analyzer.sh
create mode 100644 tools/perf/tests/workloads/Build
create mode 100644 tools/perf/tests/workloads/brstack.c
create mode 100644 tools/perf/tests/workloads/datasym.c
create mode 100644 tools/perf/tests/workloads/leafloop.c
create mode 100644 tools/perf/tests/workloads/noploop.c
create mode 100644 tools/perf/tests/workloads/sqrtloop.c
create mode 100644 tools/perf/tests/workloads/thloop.c
create mode 100644 tools/perf/trace/beauty/timespec.c
create mode 100644 tools/perf/util/bpf_skel/lock_data.h
create mode 100644 tools/perf/util/cs-etm-base.c
create mode 100644 tools/perf/util/pmus.c
create mode 100644 tools/perf/util/pmus.h
create mode 100644 tools/perf/util/sample.h
create mode 100644 tools/power/cpupower/lib/powercap.c
create mode 100644 tools/power/cpupower/lib/powercap.h
create mode 100644 tools/power/cpupower/man/cpupower-powercap-info.1
create mode 100644 tools/power/cpupower/po/ka.po
create mode 100644 tools/power/cpupower/utils/idle_monitor/rapl_monitor.c
create mode 100644 tools/power/cpupower/utils/powercap-info.c
create mode 100644 tools/testing/kunit/test_data/test_parse_ktap_output.log
create mode 100644 tools/testing/kunit/test_data/test_parse_subtest_header.log
create mode 100644 tools/testing/memblock/tests/alloc_exact_nid_api.c
create mode 100644 tools/testing/memblock/tests/alloc_exact_nid_api.h
delete mode 100644 tools/testing/nvdimm/dimm_devs.c
create mode 100644 tools/testing/selftests/alsa/alsa-local.h
create mode 100644 tools/testing/selftests/alsa/conf.c
create mode 100644 tools/testing/selftests/alsa/conf.d/Lenovo_ThinkPad_P1_Gen2.conf
create mode 100644 tools/testing/selftests/alsa/pcm-test.c
delete mode 100755 tools/testing/selftests/amd-pstate/amd-pstate-ut.sh
create mode 100755 tools/testing/selftests/amd-pstate/basic.sh
create mode 100755 tools/testing/selftests/amd-pstate/gitsource.sh
create mode 100755 tools/testing/selftests/amd-pstate/run.sh
create mode 100755 tools/testing/selftests/amd-pstate/tbench.sh
create mode 100644 tools/testing/selftests/bpf/DENYLIST.aarch64
create mode 100644 tools/testing/selftests/bpf/bpf_experimental.h
create mode 100644 tools/testing/selftests/bpf/config.aarch64
create mode 100644 tools/testing/selftests/bpf/prog_tests/cgrp_kfunc.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/cgrp_local_storage.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/empty_skb.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/kprobe_multi_testmod_test.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/libbpf_get_fd_by_id_opts.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/linked_list.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/rcu_read_lock.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/spin_lock.c
delete mode 100644 tools/testing/selftests/bpf/prog_tests/spinlock.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/task_kfunc.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/type_cast.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/xfrm_info.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_kfunc_common.h
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_kfunc_failure.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_kfunc_success.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_ls_attach_cgroup.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_ls_negative.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_ls_recursion.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_ls_sleepable.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_ls_tp_btf.c
create mode 100644 tools/testing/selftests/bpf/progs/empty_skb.c
create mode 100644 tools/testing/selftests/bpf/progs/freplace_progmap.c
create mode 100644 tools/testing/selftests/bpf/progs/linked_list.c
create mode 100644 tools/testing/selftests/bpf/progs/linked_list.h
create mode 100644 tools/testing/selftests/bpf/progs/linked_list_fail.c
create mode 100644 tools/testing/selftests/bpf/progs/rcu_read_lock.c
create mode 100644 tools/testing/selftests/bpf/progs/task_kfunc_common.h
create mode 100644 tools/testing/selftests/bpf/progs/task_kfunc_failure.c
create mode 100644 tools/testing/selftests/bpf/progs/task_kfunc_success.c
create mode 100644 tools/testing/selftests/bpf/progs/task_storage_nodeadlock.c
create mode 100644 tools/testing/selftests/bpf/progs/test_libbpf_get_fd_by_id_opts.c
create mode 100644 tools/testing/selftests/bpf/progs/test_ringbuf_map_key.c
create mode 100644 tools/testing/selftests/bpf/progs/test_spin_lock_fail.c
create mode 100644 tools/testing/selftests/bpf/progs/type_cast.c
create mode 100644 tools/testing/selftests/bpf/progs/xfrm_info.c
create mode 100644 tools/testing/selftests/bpf/test_loader.c
create mode 100644 tools/testing/selftests/bpf/verifier/jeq_infer_not_null.c
create mode 100644 tools/testing/selftests/damon/debugfs_rm_non_contexts.sh
create mode 100644 tools/testing/selftests/damon/lru_sort.sh
create mode 100644 tools/testing/selftests/damon/reclaim.sh
create mode 100644 tools/testing/selftests/damon/sysfs_update_removed_scheme_dir.sh
create mode 100755 tools/testing/selftests/drivers/net/bonding/mode-1-recovery-updelay.sh
create mode 100755 tools/testing/selftests/drivers/net/bonding/mode-2-recovery-updelay.sh
create mode 100755 tools/testing/selftests/drivers/net/bonding/option_prio.sh
rename tools/testing/selftests/drivers/net/mlxsw/{spectrum-2 => }/devlink_trap_tunnel_ipip6.sh (99%)
create mode 100644 tools/testing/selftests/iommu/.gitignore
create mode 100644 tools/testing/selftests/iommu/Makefile
create mode 100644 tools/testing/selftests/iommu/config
create mode 100644 tools/testing/selftests/iommu/iommufd.c
create mode 100644 tools/testing/selftests/iommu/iommufd_fail_nth.c
create mode 100644 tools/testing/selftests/iommu/iommufd_utils.h
create mode 100644 tools/testing/selftests/kvm/aarch64/page_fault_test.c
create mode 100644 tools/testing/selftests/kvm/include/memstress.h
delete mode 100644 tools/testing/selftests/kvm/include/perf_test_util.h
create mode 100644 tools/testing/selftests/kvm/include/userfaultfd_util.h
rename tools/testing/selftests/kvm/lib/{perf_test_util.c => memstress.c} (62%)
create mode 100644 tools/testing/selftests/kvm/lib/ucall_common.c
create mode 100644 tools/testing/selftests/kvm/lib/userfaultfd_util.c
create mode 100644 tools/testing/selftests/kvm/lib/x86_64/hyperv.c
rename tools/testing/selftests/kvm/lib/x86_64/{perf_test_util.c => memstress.c} (68%)
delete mode 100644 tools/testing/selftests/kvm/x86_64/emulator_error_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/exit_on_emulation_failure_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/flds_emulation.h
rename tools/testing/selftests/kvm/x86_64/{evmcs_test.c => hyperv_evmcs.c} (66%)
create mode 100644 tools/testing/selftests/kvm/x86_64/hyperv_ipi.c
create mode 100644 tools/testing/selftests/kvm/x86_64/hyperv_tlb_flush.c
create mode 100644 tools/testing/selftests/kvm/x86_64/smaller_maxphyaddr_emulation_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/svm_nested_shutdown_test.c
create mode 100644 tools/testing/selftests/net/af_unix/diag_uid.c
create mode 100644 tools/testing/selftests/net/csum.c
create mode 100755 tools/testing/selftests/net/forwarding/bridge_mdb_host.sh
create mode 100644 tools/testing/selftests/net/hsr/Makefile
create mode 100644 tools/testing/selftests/net/hsr/config
create mode 100755 tools/testing/selftests/net/hsr/hsr_ping.sh
create mode 100644 tools/testing/selftests/net/sctp_hello.c
create mode 100755 tools/testing/selftests/net/sctp_vrf.sh
create mode 100644 tools/testing/selftests/net/so_incoming_cpu.c
create mode 100644 tools/testing/selftests/tdx/Makefile
create mode 100644 tools/testing/selftests/tdx/config
create mode 100644 tools/testing/selftests/tdx/tdx_guest_test.c
create mode 100644 tools/testing/selftests/timens/vfork_exec.c
create mode 100755 tools/testing/selftests/tpm2/test_async.sh
create mode 100644 tools/testing/selftests/vm/check_config.sh
create mode 100644 tools/testing/selftests/vm/cow.c
create mode 100644 tools/testing/selftests/vm/ksm_functional_tests.c
create mode 100644 tools/verification/rv/Makefile
create mode 100644 tools/verification/rv/README.txt
create mode 100644 tools/verification/rv/include/in_kernel.h
create mode 100644 tools/verification/rv/include/rv.h
create mode 100644 tools/verification/rv/include/trace.h
create mode 100644 tools/verification/rv/include/utils.h
create mode 100644 tools/verification/rv/src/in_kernel.c
create mode 100644 tools/verification/rv/src/rv.c
create mode 100644 tools/verification/rv/src/trace.c
create mode 100644 tools/verification/rv/src/utils.c
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer
^ permalink raw reply [relevance 1%]
* [Intel-gfx] [PULL] drm-misc-next
@ 2023-01-24 20:02 1% ` Thomas Zimmermann
0 siblings, 0 replies; 200+ results
From: Thomas Zimmermann @ 2023-01-24 20:02 UTC (permalink / raw)
To: Dave Airlie, Daniel Vetter
Cc: dim-tools, dri-devel, Maxime Ripard, Thomas Zimmermann,
Rodrigo Vivi, intel-gfx
Hi Dave and Daniel,
here's the PR for drm-misc-next for this week. This week's big change
is the addition of the first accelerator driver; the ivpu for Intel's
VPU.
The PR comes a bit earlier than usual. The EDID patches are needed
in the Intel tree, which will get them via backmerge before its own
PR. I might also send another PR on Thursday if there's anything
in drm-misc-next then.
Best regards
Thomas
drm-misc-next-2023-01-24:
drm-misc-next for v6.3:
UAPI Changes:
Cross-subsystem Changes:
Core Changes:
* EDID: Improved mode parsing and refactoring
* fbdev: Cleanups
* format-helper: Add conversion from XRGB8888 to XBGR8888 and ABGR8888
Driver Changes:
* accel/ivpu: Add driver for Intel VPU accelerator
* bridge: Support i.MX93 LDB plus DT bindings
* exynos: Fixes
* panel: vtdr6130: Fixes; Support AUO A030JTN01 plus DT bindings
* simpledrm: Support system-memory framebuffers plus DT bindings
* ssd130x: Fix sparse warning
The following changes since commit bd43a9844bc6f78e00fdc91db47f6969d10c5ac5:
drm: bridge: ldb: Warn if LDB clock does not match requested link frequency (2023-01-19 08:50:50 +0100)
are available in the Git repository at:
git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-next-2023-01-24
for you to fetch changes up to 51affef35bb39f186aef7eeeb4a7f9ceccd3e65e:
drm/ssd130x: Silence a `dubious: x & !y` warning (2023-01-24 11:02:33 +0100)
----------------------------------------------------------------
drm-misc-next for v6.3:
UAPI Changes:
Cross-subsystem Changes:
Core Changes:
* EDID: Improved mode parsing and refactoring
* fbdev: Cleanups
* format-helper: Add conversion from XRGB8888 to XBGR8888 and ABGR8888
Driver Changes:
* accel/ivpu: Add driver for Intel VPU accelerator
* bridge: Support i.MX93 LDB plus DT bindings
* exynos: Fixes
* panel: vtdr6130: Fixes; Support AUO A030JTN01 plus DT bindings
* simpledrm: Support system-memory framebuffers plus DT bindings
* ssd130x: Fix sparse warning
----------------------------------------------------------------
Arnd Bergmann (1):
vc4: fix build failure in vc4_dsi_dev_probe()
Christophe Branchereau (1):
drm/panel: Add driver for the AUO A030JTN01 TFT LCD
Jacek Lawrynowicz (7):
accel/ivpu: Introduce a new DRM driver for Intel VPU
accel/ivpu: Add Intel VPU MMU support
accel/ivpu: Add GEM buffer object management
accel/ivpu: Add IPC driver and JSM messages
accel/ivpu: Implement firmware parsing and booting
accel/ivpu: Add command buffer submission logic
accel/ivpu: Add PM support
Jagan Teki (2):
drm: exynos: dsi: Fix MIPI_DSI*_NO_* mode flags
drm: exynos: dsi: Properly name HSA/HBP/HFP/HSE bits
Jani Nikula (18):
drm/edid: fix AVI infoframe aspect ratio handling
drm/edid: fix parsing of 3D modes from HDMI VSDB
drm/edid: parse VICs from CTA VDB early
drm/edid: Use the pre-parsed VICs
drm/edid: use VIC in AVI infoframe if sink lists it in CTA VDB
drm/edid: rename struct drm_display_info *display to *info
drm/edid: refactor CTA Y420CMDB parsing
drm/edid: split CTA Y420VDB info and mode parsing
drm/edid: fix and clarify HDMI VSDB audio latency parsing
drm/edid: add helper for HDMI VSDB audio latency field length
drm/edid: store quirks in display info
drm/edid: stop passing quirks around
drm/edid: merge ELD handling to update_display_info()
drm/edid: move EDID BPC quirk application to update_display_info()
drm/edid: split HDMI VSDB info and mode parsing
drm/edid: refactor _drm_edid_connector_update() and rename
drm/edid: add separate drm_edid_connector_add_modes()
drm/edid: remove redundant _drm_connector_update_edid_property()
Javier Martinez Canillas (2):
fbdev: Remove unused struct fb_deferred_io .first_io field
drm/ssd130x: Silence a `dubious: x & !y` warning
John Stultz (1):
MAINTAINERS: Add Sumit Semwal and Yongqin Liu as reviwers for kirin DRM driver
Liu Ying (2):
dt-bindings: display: bridge: ldb: Add i.MX93 LDB
drm/bridge: fsl-ldb: Add i.MX93 LDB support
Neil Armstrong (1):
drm/panel: vtdr6130: fix unused ret in visionox_vtdr6130_bl_update_status
Paul Cercueil (1):
dt-bindings: display/panel: Add AUO A030JTN01
Randy Dunlap (2):
drm/atomic-helper: fix kernel-doc problems
drm/connector: fix a kernel-doc bad line warning
Thierry Reding (7):
dt-bindings: display: simple-framebuffer: Support system memory framebuffers
dt-bindings: display: simple-framebuffer: Document 32-bit BGR format
dt-bindings: reserved-memory: Support framebuffer reserved memory
drm/simpledrm: Use struct iosys_map consistently
drm/simpledrm: Add support for system memory framebuffers
drm/format-helper: Support the AB24/XB24 formats
drm/simpledrm: Support the XB24/AB24 format
Thomas Zimmermann (1):
Merge drm/drm-next into drm-misc-next
.clang-format | 5 +
.gitignore | 2 +
.mailmap | 7 +
CREDITS | 4 +
Documentation/ABI/stable/sysfs-driver-dma-idxd | 12 +
Documentation/ABI/stable/sysfs-driver-speakup | 9 +
Documentation/ABI/testing/configfs-usb-gadget-uvc | 4 +-
Documentation/ABI/testing/debugfs-dell-wmi-ddv | 21 +
.../ABI/testing/debugfs-driver-habanalabs | 7 +
Documentation/ABI/testing/debugfs-pktcdvd | 18 -
Documentation/ABI/testing/sysfs-block-zram | 14 +
Documentation/ABI/testing/sysfs-bus-coreboot | 45 +
Documentation/ABI/testing/sysfs-bus-iio-adc-ad4130 | 46 +
.../ABI/testing/sysfs-bus-iio-adc-max11410 | 13 +
Documentation/ABI/testing/sysfs-bus-nvdimm | 14 +
Documentation/ABI/testing/sysfs-bus-pci | 10 +
.../sysfs-bus-platform-devices-ampere-smpro | 312 +
.../ABI/testing/sysfs-bus-spi-devices-spi-nor | 6 +
Documentation/ABI/testing/sysfs-bus-usb | 11 +
Documentation/ABI/testing/sysfs-class-bdi | 68 +
Documentation/ABI/testing/sysfs-class-pktcdvd | 97 -
Documentation/ABI/testing/sysfs-devices-mapping | 30 +-
Documentation/ABI/testing/sysfs-driver-intel_sdsi | 47 +-
Documentation/ABI/testing/sysfs-fs-f2fs | 47 +-
.../ABI/testing/sysfs-kernel-cpu_byteorder | 12 +
Documentation/ABI/testing/sysfs-kernel-mm-damon | 32 +
Documentation/ABI/testing/sysfs-kernel-oops_count | 6 +
Documentation/ABI/testing/sysfs-kernel-warn_count | 6 +
.../ABI/testing/sysfs-platform-dell-wmi-ddv | 7 +
Documentation/ABI/testing/sysfs-platform-intel-ifs | 30 +-
Documentation/Makefile | 11 +
Documentation/PCI/msi-howto.rst | 10 +
Documentation/PCI/pci-error-recovery.rst | 7 +
.../RCU/Design/Requirements/Requirements.rst | 2 +-
Documentation/RCU/arrayRCU.rst | 165 -
Documentation/RCU/checklist.rst | 244 +-
Documentation/RCU/index.rst | 1 -
Documentation/RCU/listRCU.rst | 174 +-
Documentation/RCU/lockdep.rst | 4 +
Documentation/accel/index.rst | 17 +
Documentation/accel/introduction.rst | 110 +
Documentation/admin-guide/blockdev/zram.rst | 100 +-
Documentation/admin-guide/bootconfig.rst | 2 +-
Documentation/admin-guide/cgroup-v1/memory.rst | 3 +-
Documentation/admin-guide/cgroup-v2.rst | 21 +-
Documentation/admin-guide/cifs/usage.rst | 2 +-
.../admin-guide/device-mapper/dm-init.rst | 8 +
Documentation/admin-guide/devices.txt | 5 +
Documentation/admin-guide/hw_random.rst | 6 +-
Documentation/admin-guide/kdump/vmcoreinfo.rst | 29 +
Documentation/admin-guide/kernel-parameters.txt | 106 +-
Documentation/admin-guide/media/cec-drivers.rst | 10 -
Documentation/admin-guide/media/cec.rst | 369 +
Documentation/admin-guide/media/index.rst | 3 +-
Documentation/admin-guide/media/pulse8-cec.rst | 13 -
Documentation/admin-guide/media/v4l-drivers.rst | 1 +
Documentation/admin-guide/media/vimc.rst | 8 +-
Documentation/admin-guide/media/visl.rst | 175 +
Documentation/admin-guide/media/vivid.rst | 2 +-
Documentation/admin-guide/mm/damon/usage.rst | 59 +-
Documentation/admin-guide/mm/zswap.rst | 8 +-
Documentation/admin-guide/perf/hisi-pcie-pmu.rst | 112 +-
Documentation/admin-guide/perf/index.rst | 2 +
Documentation/admin-guide/perf/meson-ddr-pmu.rst | 70 +
Documentation/admin-guide/perf/nvidia-pmu.rst | 299 +
Documentation/admin-guide/pm/amd-pstate.rst | 220 +-
Documentation/admin-guide/sysctl/fs.rst | 240 +-
Documentation/admin-guide/sysctl/kernel.rst | 53 +-
Documentation/arm/marvell.rst | 12 +-
Documentation/arm64/acpi_object_usage.rst | 2 +-
Documentation/arm64/booting.rst | 7 +-
Documentation/arm64/elf_hwcaps.rst | 9 +
Documentation/arm64/sve.rst | 1 +
Documentation/block/inline-encryption.rst | 12 +-
Documentation/bpf/bpf_design_QA.rst | 45 +
Documentation/bpf/bpf_devel_QA.rst | 27 +
Documentation/bpf/bpf_iterators.rst | 485 +
Documentation/bpf/btf.rst | 7 +-
Documentation/bpf/index.rst | 2 +
Documentation/bpf/instruction-set.rst | 4 +-
Documentation/bpf/kfuncs.rst | 255 +-
Documentation/bpf/libbpf/index.rst | 3 +
Documentation/bpf/libbpf/program_types.rst | 203 +
Documentation/bpf/map_array.rst | 262 +
Documentation/bpf/map_bloom_filter.rst | 174 +
Documentation/bpf/map_cgrp_storage.rst | 109 +
Documentation/bpf/map_cpumap.rst | 177 +
Documentation/bpf/map_devmap.rst | 238 +
Documentation/bpf/map_hash.rst | 33 +-
Documentation/bpf/map_lpm_trie.rst | 197 +
Documentation/bpf/map_of_maps.rst | 130 +
Documentation/bpf/map_queue_stack.rst | 146 +
Documentation/bpf/map_sk_storage.rst | 159 +
Documentation/bpf/map_xskmap.rst | 192 +
Documentation/bpf/maps.rst | 101 +-
Documentation/bpf/programs.rst | 3 +
Documentation/bpf/redirect.rst | 81 +
Documentation/conf.py | 211 +-
Documentation/core-api/kernel-api.rst | 6 +-
Documentation/core-api/local_ops.rst | 2 +-
Documentation/cpu-freq/index.rst | 9 +-
Documentation/crypto/devel-algos.rst | 2 +-
Documentation/crypto/userspace-if.rst | 15 +-
Documentation/dev-tools/ktap.rst | 4 +-
Documentation/dev-tools/kunit/architecture.rst | 115 +-
Documentation/dev-tools/kunit/index.rst | 20 +-
Documentation/dev-tools/kunit/start.rst | 18 +-
Documentation/dev-tools/kunit/tips.rst | 190 -
Documentation/dev-tools/kunit/usage.rst | 92 +-
Documentation/devicetree/bindings/arm/amlogic.yaml | 1 +
Documentation/devicetree/bindings/arm/apple.yaml | 14 +-
.../devicetree/bindings/arm/aspeed/aspeed.yaml | 3 +-
.../devicetree/bindings/arm/bcm/bcm2835.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,bcm11351.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,bcm21664.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,bcm23550.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,bcm4708.yaml | 4 +-
.../devicetree/bindings/arm/bcm/brcm,bcmbca.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,cygnus.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,hr2.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,ns2.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,nsp.yaml | 2 +-
.../devicetree/bindings/arm/bcm/brcm,stingray.yaml | 2 +-
.../bindings/arm/bcm/brcm,vulcan-soc.yaml | 2 +-
.../devicetree/bindings/arm/cci-control-port.yaml | 2 +-
Documentation/devicetree/bindings/arm/cpus.yaml | 4 +-
.../bindings/arm/firmware/linaro,optee-tz.yaml | 2 +-
Documentation/devicetree/bindings/arm/fsl.yaml | 15 +
.../bindings/arm/hisilicon/hisilicon.yaml | 2 +-
.../bindings/arm/keystone/ti,k3-sci-common.yaml | 2 +-
.../devicetree/bindings/arm/keystone/ti,sci.yaml | 2 +-
.../bindings/arm/marvell/armada-7k-8k.yaml | 2 +-
.../devicetree/bindings/arm/mediatek.yaml | 2 +
.../bindings/arm/mediatek/mediatek,mmsys.yaml | 14 +-
.../bindings/arm/mediatek/mediatek,mt7622-wed.yaml | 52 +
.../devicetree/bindings/arm/mrvl/mrvl.yaml | 2 +-
.../devicetree/bindings/arm/msm/qcom,llcc.yaml | 1 +
.../devicetree/bindings/arm/mstar/mstar.yaml | 2 +-
.../devicetree/bindings/arm/npcm/npcm.yaml | 2 +-
.../devicetree/bindings/arm/nxp/lpc32xx.yaml | 2 +-
.../devicetree/bindings/arm/qcom-soc.yaml | 66 +
Documentation/devicetree/bindings/arm/qcom.yaml | 232 +-
.../devicetree/bindings/arm/rockchip.yaml | 42 +
.../bindings/arm/socionext/milbeaut.yaml | 2 +-
.../bindings/arm/socionext/uniphier.yaml | 8 +-
Documentation/devicetree/bindings/arm/sp810.yaml | 2 +-
.../devicetree/bindings/arm/sprd/sprd.yaml | 2 +-
.../devicetree/bindings/arm/stm32/st,mlahb.yaml | 2 +-
.../bindings/arm/stm32/st,stm32-syscon.yaml | 2 +-
.../devicetree/bindings/arm/stm32/stm32.yaml | 8 +-
.../arm/sunxi/allwinner,sun6i-a31-cpuconfig.yaml | 2 +-
.../arm/sunxi/allwinner,sun9i-a80-prcm.yaml | 2 +-
Documentation/devicetree/bindings/arm/swir.txt | 12 -
.../arm/tegra/nvidia,tegra-ccplex-cluster.yaml | 3 +-
.../bindings/arm/tegra/nvidia,tegra194-cbb.yaml | 2 +-
.../bindings/arm/tegra/nvidia,tegra20-pmc.yaml | 54 +-
.../bindings/arm/tegra/nvidia,tegra234-cbb.yaml | 2 +-
Documentation/devicetree/bindings/arm/ti/k3.yaml | 3 +-
.../devicetree/bindings/arm/ti/ti,davinci.yaml | 2 +-
.../devicetree/bindings/arm/vexpress-config.yaml | 2 +-
.../devicetree/bindings/arm/vexpress-sysreg.yaml | 2 +-
.../bindings/ata/allwinner,sun4i-a10-ahci.yaml | 2 +-
.../bindings/ata/allwinner,sun8i-r40-ahci.yaml | 2 +-
.../devicetree/bindings/ata/ata-generic.yaml | 58 +
.../bus/fsl,imx8qxp-pixel-link-msi-bus.yaml | 232 +
Documentation/devicetree/bindings/bus/ti-sysc.yaml | 2 +-
.../bindings/chrome/google,cros-ec-typec.yaml | 1 +
.../chrome/google,cros-kbd-led-backlight.yaml | 1 +
.../devicetree/bindings/clock/adi,axi-clkgen.yaml | 2 +-
.../devicetree/bindings/clock/calxeda.yaml | 2 +-
.../bindings/clock/cirrus,cs2000-cp.yaml | 2 +-
.../devicetree/bindings/clock/fixed-clock.yaml | 2 +-
.../bindings/clock/fixed-factor-clock.yaml | 2 +-
.../bindings/clock/fixed-mmio-clock.yaml | 2 +-
.../bindings/clock/fsl,imx8m-anatop.yaml | 51 +
.../devicetree/bindings/clock/fsl,plldig.yaml | 2 +-
.../devicetree/bindings/clock/fsl,sai-clock.yaml | 2 +-
.../devicetree/bindings/clock/fsl,scu-clk.yaml | 2 +-
.../devicetree/bindings/clock/idt,versaclock5.yaml | 2 +-
.../devicetree/bindings/clock/imx1-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx21-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx23-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx25-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx27-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx28-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx31-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx35-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx5-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx6q-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx6sl-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx6sll-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx6sx-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx6ul-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx7d-clock.yaml | 2 +-
.../bindings/clock/imx7ulp-pcc-clock.yaml | 2 +-
.../bindings/clock/imx7ulp-scg-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx8m-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx8qxp-lpcg.yaml | 2 +-
.../bindings/clock/imx8ulp-cgc-clock.yaml | 2 +-
.../bindings/clock/imx8ulp-pcc-clock.yaml | 2 +-
.../devicetree/bindings/clock/imx93-clock.yaml | 2 +-
.../devicetree/bindings/clock/imxrt1050-clock.yaml | 2 +-
.../devicetree/bindings/clock/ingenic,cgu.yaml | 4 +-
.../devicetree/bindings/clock/intel,agilex.yaml | 2 +-
.../devicetree/bindings/clock/intel,cgu-lgm.yaml | 2 +-
.../devicetree/bindings/clock/intel,easic-n5x.yaml | 2 +-
.../devicetree/bindings/clock/intel,stratix10.yaml | 2 +-
.../bindings/clock/mediatek,mt8186-fhctl.yaml | 53 +
.../bindings/clock/microchip,mpfs-clkcfg.yaml | 2 +-
.../devicetree/bindings/clock/milbeaut-clock.yaml | 2 +-
.../bindings/clock/nuvoton,npcm845-clk.yaml | 2 +-
.../bindings/clock/nvidia,tegra124-dfll.txt | 2 +-
.../devicetree/bindings/clock/pwm-clock.txt | 26 -
.../devicetree/bindings/clock/pwm-clock.yaml | 45 +
.../devicetree/bindings/clock/qcom,a53pll.yaml | 2 +-
.../devicetree/bindings/clock/qcom,a7pll.yaml | 2 +-
.../bindings/clock/qcom,aoncc-sm8250.yaml | 11 +-
.../bindings/clock/qcom,audiocc-sm8250.yaml | 7 +-
.../bindings/clock/qcom,camcc-sm8250.yaml | 6 +-
.../bindings/clock/qcom,dispcc-sc8280xp.yaml | 97 +
.../bindings/clock/qcom,dispcc-sm6125.yaml | 9 +-
.../bindings/clock/qcom,dispcc-sm6350.yaml | 8 +-
.../bindings/clock/qcom,dispcc-sm8x50.yaml | 14 +-
.../bindings/clock/qcom,gcc-apq8064.yaml | 18 +-
.../bindings/clock/qcom,gcc-apq8084.yaml | 10 +-
.../bindings/clock/qcom,gcc-ipq8064.yaml | 27 +-
.../bindings/clock/qcom,gcc-ipq8074.yaml | 40 +-
.../bindings/clock/qcom,gcc-msm8660.yaml | 12 +-
.../bindings/clock/qcom,gcc-msm8909.yaml | 9 +-
.../bindings/clock/qcom,gcc-msm8916.yaml | 16 +-
.../bindings/clock/qcom,gcc-msm8974.yaml | 61 +
.../bindings/clock/qcom,gcc-msm8976.yaml | 9 +-
.../bindings/clock/qcom,gcc-msm8994.yaml | 9 +-
.../bindings/clock/qcom,gcc-msm8996.yaml | 7 +-
.../bindings/clock/qcom,gcc-msm8998.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-other.yaml | 38 +-
.../bindings/clock/qcom,gcc-qcm2290.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-qcs404.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sc7180.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sc7280.yaml | 9 +-
.../bindings/clock/qcom,gcc-sc8180x.yaml | 9 +-
.../bindings/clock/qcom,gcc-sc8280xp.yaml | 7 +-
.../devicetree/bindings/clock/qcom,gcc-sdm660.yaml | 61 +
.../devicetree/bindings/clock/qcom,gcc-sdm845.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sdx55.yaml | 7 +-
.../devicetree/bindings/clock/qcom,gcc-sdx65.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm6115.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm6125.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm6350.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm8150.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm8250.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm8350.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc-sm8450.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gcc.yaml | 6 +-
.../bindings/clock/qcom,gpucc-sdm660.yaml | 4 +-
.../bindings/clock/qcom,gpucc-sm8350.yaml | 9 +-
.../devicetree/bindings/clock/qcom,gpucc.yaml | 22 +-
.../devicetree/bindings/clock/qcom,lcc.txt | 22 -
.../devicetree/bindings/clock/qcom,lcc.yaml | 86 +
.../devicetree/bindings/clock/qcom,lpasscc.txt | 26 -
.../devicetree/bindings/clock/qcom,mmcc.yaml | 42 +-
.../bindings/clock/qcom,msm8998-gpucc.yaml | 8 +-
.../devicetree/bindings/clock/qcom,q6sstopcc.yaml | 2 +-
.../bindings/clock/qcom,qcm2290-dispcc.yaml | 8 +-
.../devicetree/bindings/clock/qcom,rpmhcc.yaml | 3 +-
.../bindings/clock/qcom,sc7180-camcc.yaml | 9 +-
.../bindings/clock/qcom,sc7180-dispcc.yaml | 8 +-
.../bindings/clock/qcom,sc7180-lpasscorecc.yaml | 9 +-
.../devicetree/bindings/clock/qcom,sc7180-mss.yaml | 7 +-
.../bindings/clock/qcom,sc7280-camcc.yaml | 6 +-
.../bindings/clock/qcom,sc7280-dispcc.yaml | 8 +-
.../bindings/clock/qcom,sc7280-lpasscc.yaml | 9 +-
.../bindings/clock/qcom,sc7280-lpasscorecc.yaml | 12 +-
.../bindings/clock/qcom,sdm845-camcc.yaml | 8 +-
.../bindings/clock/qcom,sdm845-dispcc.yaml | 8 +-
.../bindings/clock/qcom,sdm845-lpasscc.yaml | 47 +
.../bindings/clock/qcom,sm6115-dispcc.yaml | 7 +-
.../bindings/clock/qcom,sm6375-dispcc.yaml | 54 +
.../devicetree/bindings/clock/qcom,sm6375-gcc.yaml | 9 +-
.../bindings/clock/qcom,sm8450-camcc.yaml | 8 +-
.../bindings/clock/qcom,sm8450-dispcc.yaml | 7 +-
.../devicetree/bindings/clock/qcom,sm8550-gcc.yaml | 62 +
.../devicetree/bindings/clock/qcom,videocc.yaml | 20 +-
.../devicetree/bindings/clock/renesas,9series.yaml | 2 +-
.../bindings/clock/renesas,versaclock7.yaml | 2 +-
.../bindings/clock/rockchip,rk3568-cru.yaml | 2 +-
.../bindings/clock/rockchip,rk3588-cru.yaml | 71 +
.../bindings/clock/samsung,exynosautov9-clock.yaml | 2 +-
.../devicetree/bindings/clock/st,stm32mp1-rcc.yaml | 2 +-
.../devicetree/bindings/clock/ti,cdce925.txt | 53 -
.../devicetree/bindings/clock/ti,cdce925.yaml | 103 +
.../devicetree/bindings/clock/ti,lmk04832.yaml | 2 +-
.../devicetree/bindings/clock/ti,sci-clk.yaml | 2 +-
.../devicetree/bindings/clock/ti/ti,clksel.yaml | 2 +-
.../devicetree/bindings/cpu/idle-states.yaml | 2 +-
.../bindings/cpufreq/apple,cluster-cpufreq.yaml | 117 +
.../bindings/cpufreq/cpufreq-mediatek-hw.yaml | 2 +-
.../bindings/cpufreq/cpufreq-qcom-hw.yaml | 31 +
.../bindings/cpufreq/qcom-cpufreq-nvmem.yaml | 4 +-
.../bindings/crypto/rockchip,rk3288-crypto.yaml | 127 +
.../devicetree/bindings/crypto/rockchip-crypto.txt | 28 -
.../devicetree/bindings/crypto/st,stm32-crc.yaml | 2 +-
.../devicetree/bindings/crypto/st,stm32-cryp.yaml | 21 +-
.../devicetree/bindings/crypto/st,stm32-hash.yaml | 2 +-
.../bindings/display/amlogic,meson-dw-hdmi.yaml | 2 +-
.../devicetree/bindings/display/arm,hdlcd.yaml | 2 +-
.../devicetree/bindings/display/arm,malidp.yaml | 2 +-
.../bindings/display/bridge/anx6345.yaml | 2 +-
.../bindings/display/bridge/chrontel,ch7033.yaml | 2 +-
.../bindings/display/bridge/fsl,ldb.yaml | 16 +-
.../display/bridge/ingenic,jz4780-hdmi.yaml | 2 +-
.../bindings/display/bridge/intel,keembay-dsi.yaml | 2 +-
.../bindings/display/bridge/ite,it6505.yaml | 2 +-
.../bindings/display/bridge/ite,it66121.yaml | 2 +-
.../devicetree/bindings/display/bridge/ps8640.yaml | 2 +-
.../bindings/display/bridge/toshiba,tc358767.yaml | 2 +-
.../bindings/display/bridge/toshiba,tc358775.yaml | 2 +-
.../devicetree/bindings/display/fsl,lcdif.yaml | 42 +-
.../devicetree/bindings/display/imx/fsl,imx-fb.txt | 57 -
.../bindings/display/imx/fsl,imx-lcdc.yaml | 102 +
.../devicetree/bindings/display/ingenic,ipu.yaml | 2 +-
.../devicetree/bindings/display/ingenic,lcd.yaml | 2 +-
.../bindings/display/intel,keembay-display.yaml | 2 +-
.../bindings/display/intel,keembay-msscam.yaml | 2 +-
.../bindings/display/mediatek/mediatek,cec.yaml | 2 +-
.../bindings/display/mediatek/mediatek,dpi.yaml | 1 +
.../bindings/display/mediatek/mediatek,dsi.yaml | 2 +-
.../display/mediatek/mediatek,hdmi-ddc.yaml | 2 +-
.../bindings/display/mediatek/mediatek,hdmi.yaml | 2 +-
.../bindings/display/msm/dpu-common.yaml | 52 +
.../bindings/display/msm/dpu-msm8998.yaml | 223 -
.../bindings/display/msm/dpu-qcm2290.yaml | 222 -
.../bindings/display/msm/dpu-sc7180.yaml | 235 -
.../bindings/display/msm/dpu-sc7280.yaml | 239 -
.../bindings/display/msm/dpu-sdm845.yaml | 217 -
.../bindings/display/msm/dsi-controller-main.yaml | 5 +-
.../bindings/display/msm/dsi-phy-14nm.yaml | 1 +
.../devicetree/bindings/display/msm/gmu.yaml | 2 +-
.../devicetree/bindings/display/msm/gpu.yaml | 2 +-
.../devicetree/bindings/display/msm/mdp5.txt | 30 +-
.../bindings/display/msm/mdss-common.yaml | 83 +
.../devicetree/bindings/display/msm/qcom,mdss.yaml | 196 +
.../bindings/display/msm/qcom,msm8998-dpu.yaml | 95 +
.../bindings/display/msm/qcom,msm8998-mdss.yaml | 268 +
.../bindings/display/msm/qcom,qcm2290-dpu.yaml | 84 +
.../bindings/display/msm/qcom,qcm2290-mdss.yaml | 198 +
.../bindings/display/msm/qcom,sc7180-dpu.yaml | 95 +
.../bindings/display/msm/qcom,sc7180-mdss.yaml | 304 +
.../bindings/display/msm/qcom,sc7280-dpu.yaml | 98 +
.../bindings/display/msm/qcom,sc7280-mdss.yaml | 422 +
.../bindings/display/msm/qcom,sdm845-dpu.yaml | 90 +
.../bindings/display/msm/qcom,sdm845-mdss.yaml | 270 +
.../bindings/display/msm/qcom,sm6115-dpu.yaml | 94 +
.../bindings/display/msm/qcom,sm6115-mdss.yaml | 182 +
.../bindings/display/msm/qcom,sm8250-dpu.yaml | 92 +
.../bindings/display/msm/qcom,sm8250-mdss.yaml | 330 +
.../bindings/display/panel/auo,a030jtn01.yaml | 60 +
.../bindings/display/panel/display-timings.yaml | 2 +-
.../bindings/display/panel/ilitek,ili9163.yaml | 5 +-
.../bindings/display/panel/ilitek,ili9341.yaml | 1 +
.../bindings/display/panel/nec,nl8048hl11.yaml | 3 +-
.../display/panel/olimex,lcd-olinuxino.yaml | 2 +-
.../bindings/display/panel/panel-lvds.yaml | 2 +-
.../bindings/display/panel/panel-timing.yaml | 2 +-
.../bindings/display/panel/samsung,lms380kf01.yaml | 5 +-
.../bindings/display/panel/samsung,lms397kf04.yaml | 3 +-
.../bindings/display/panel/samsung,s6d27a1.yaml | 4 +-
.../bindings/display/panel/tpo,tpg110.yaml | 1 +
.../bindings/display/panel/visionox,rm69299.yaml | 2 +-
.../bindings/display/simple-framebuffer.yaml | 7 +
.../display/tegra/nvidia,tegra124-dpaux.yaml | 1 -
.../display/tegra/nvidia,tegra186-display.yaml | 2 -
.../devicetree/bindings/dma/apple,admac.yaml | 3 +
.../devicetree/bindings/dma/dma-common.yaml | 2 +-
.../devicetree/bindings/dma/dma-controller.yaml | 2 +-
.../devicetree/bindings/dma/dma-router.yaml | 2 +-
.../devicetree/bindings/dma/ingenic,dma.yaml | 3 +-
.../bindings/dma/nvidia,tegra186-gpc-dma.yaml | 7 +-
.../devicetree/bindings/dma/qcom,gpi.yaml | 26 +-
.../devicetree/bindings/dma/snps,dw-axi-dmac.yaml | 1 -
.../devicetree/bindings/dma/st,stm32-dma.yaml | 2 +-
.../devicetree/bindings/dma/st,stm32-dmamux.yaml | 2 +-
.../devicetree/bindings/dma/st,stm32-mdma.yaml | 2 +-
.../devicetree/bindings/dma/ti/k3-bcdma.yaml | 2 +-
.../devicetree/bindings/dma/ti/k3-pktdma.yaml | 2 +-
.../devicetree/bindings/dma/ti/k3-udma.yaml | 2 +-
.../bindings/dma/xilinx/xlnx,zynqmp-dpdma.yaml | 2 +-
.../devicetree/bindings/edac/dmc-520.yaml | 2 +-
Documentation/devicetree/bindings/eeprom/at24.yaml | 5 +-
Documentation/devicetree/bindings/eeprom/at25.yaml | 1 +
.../bindings/eeprom/microchip,93lc46b.yaml | 3 +-
.../devicetree/bindings/example-schema.yaml | 2 +-
.../bindings/extcon/extcon-usbc-cros-ec.yaml | 1 +
.../devicetree/bindings/firmware/arm,scmi.yaml | 2 +-
.../devicetree/bindings/firmware/arm,scpi.yaml | 2 +-
.../devicetree/bindings/firmware/qcom,scm.yaml | 3 +
.../bindings/firmware/qemu,fw-cfg-mmio.yaml | 2 +-
.../bindings/fpga/lattice,sysconfig.yaml | 81 +
.../devicetree/bindings/gpio/gpio-davinci.yaml | 2 +-
.../devicetree/bindings/gpio/gpio-latch.yaml | 94 +
.../devicetree/bindings/gpio/gpio-pca9570.yaml | 1 +
.../devicetree/bindings/gpio/gpio-tpic2810.yaml | 2 +-
.../bindings/gpio/hisilicon,ascend910-gpio.yaml | 56 +
.../devicetree/bindings/gpio/ti,omap-gpio.yaml | 2 +-
.../devicetree/bindings/gpu/brcm,bcm-v3d.yaml | 2 +-
.../bindings/gpu/host1x/nvidia,tegra210-nvdec.yaml | 2 +-
.../bindings/gpu/host1x/nvidia,tegra210-nvenc.yaml | 2 +-
.../bindings/gpu/host1x/nvidia,tegra210-nvjpg.yaml | 2 +-
.../bindings/gpu/host1x/nvidia,tegra234-nvdec.yaml | 156 +
.../devicetree/bindings/gpu/vivante,gc.yaml | 2 +-
.../bindings/hwinfo/loongson,ls2k-chipid.yaml | 38 +
.../bindings/hwlock/st,stm32-hwspinlock.yaml | 2 +-
.../devicetree/bindings/hwmon/adt7475.yaml | 4 +-
.../devicetree/bindings/hwmon/moortec,mr75203.yaml | 2 +-
.../devicetree/bindings/hwmon/ntc-thermistor.yaml | 1 -
.../bindings/i2c/google,cros-ec-i2c-tunnel.yaml | 1 +
.../bindings/i2c/hisilicon,ascend910-i2c.yaml | 73 +
.../devicetree/bindings/i2c/i2c-gpio.yaml | 2 +-
.../devicetree/bindings/i2c/i2c-mt65xx.yaml | 1 +
Documentation/devicetree/bindings/i2c/i2c-pxa.yaml | 2 +-
.../devicetree/bindings/i2c/ingenic,i2c.yaml | 2 +-
.../bindings/i2c/marvell,mv64xxx-i2c.yaml | 1 +
.../bindings/i2c/qcom,i2c-geni-qcom.yaml | 64 +-
.../devicetree/bindings/i2c/renesas,riic.yaml | 2 +-
.../devicetree/bindings/i2c/st,nomadik-i2c.yaml | 2 +-
.../devicetree/bindings/i2c/ti,omap4-i2c.yaml | 2 +-
Documentation/devicetree/bindings/i3c/i3c.yaml | 2 +-
.../devicetree/bindings/iio/accel/adi,adxl355.yaml | 8 +-
.../bindings/iio/accel/kionix,kx022a.yaml | 65 +
Documentation/devicetree/bindings/iio/adc/adc.yaml | 2 +-
.../devicetree/bindings/iio/adc/adi,ad4130.yaml | 262 +
.../devicetree/bindings/iio/adc/adi,ad7923.yaml | 26 +-
.../devicetree/bindings/iio/adc/adi,max11410.yaml | 177 +
.../bindings/iio/adc/allwinner,sun8i-a33-ths.yaml | 2 +-
.../bindings/iio/adc/aspeed,ast2600-adc.yaml | 7 -
.../devicetree/bindings/iio/adc/ingenic,adc.yaml | 2 +-
.../bindings/iio/adc/motorola,cpcap-adc.yaml | 2 +-
.../bindings/iio/adc/nxp,imx8qxp-adc.yaml | 2 +-
.../bindings/iio/adc/nxp,lpc1850-adc.yaml | 2 +-
.../bindings/iio/adc/qcom,spmi-iadc.yaml | 7 +-
.../bindings/iio/adc/qcom,spmi-vadc.yaml | 106 +-
.../bindings/iio/adc/renesas,rzg2l-adc.yaml | 2 +-
.../bindings/iio/adc/rockchip-saradc.yaml | 1 +
.../bindings/iio/adc/sigma-delta-modulator.yaml | 2 +-
.../bindings/iio/adc/sprd,sc2720-adc.yaml | 2 +-
.../devicetree/bindings/iio/adc/st,stm32-adc.yaml | 70 +-
.../bindings/iio/adc/ti,palmas-gpadc.yaml | 2 +-
.../bindings/iio/adc/x-powers,axp209-adc.yaml | 2 +-
.../devicetree/bindings/iio/addac/adi,ad74115.yaml | 373 +
.../bindings/iio/addac/adi,ad74413r.yaml | 16 +-
.../devicetree/bindings/iio/dac/adi,ad5758.yaml | 3 +-
.../devicetree/bindings/iio/dac/adi,ad5766.yaml | 2 +-
.../bindings/iio/dac/nxp,lpc1850-dac.yaml | 2 +-
.../devicetree/bindings/iio/dac/st,stm32-dac.yaml | 2 +-
.../bindings/iio/frequency/adi,adf4350.yaml | 7 +-
.../bindings/iio/frequency/adi,adf4377.yaml | 92 +
.../bindings/iio/frequency/adi,admv1013.yaml | 5 +-
.../bindings/iio/frequency/adi,admv1014.yaml | 5 +-
.../bindings/iio/frequency/adi,admv4420.yaml | 8 +-
.../bindings/iio/frequency/adi,adrf6780.yaml | 5 +-
.../bindings/iio/gyroscope/adi,adxrs290.yaml | 5 +-
.../bindings/iio/gyroscope/nxp,fxas21002c.yaml | 5 +-
.../devicetree/bindings/iio/imu/adi,adis16475.yaml | 3 +-
.../bindings/iio/imu/invensense,icm42600.yaml | 1 +
.../devicetree/bindings/iio/imu/st,lsm6dsx.yaml | 8 +
.../bindings/iio/multiplexer/io-channel-mux.yaml | 2 +-
.../bindings/iio/pressure/meas,ms5611.yaml | 6 +-
.../bindings/iio/pressure/murata,zpa2326.yaml | 5 +-
.../bindings/iio/proximity/ams,as3935.yaml | 5 +-
.../bindings/iio/resolver/adi,ad2s90.yaml | 7 +-
.../bindings/iio/temperature/adi,ltc2983.yaml | 336 +-
.../input/allwinner,sun4i-a10-lradc-keys.yaml | 4 +-
.../devicetree/bindings/input/azoteq,iqs7222.yaml | 25 +-
.../devicetree/bindings/input/fsl,scu-key.yaml | 2 +-
.../devicetree/bindings/input/gpio-beeper.txt | 13 -
.../devicetree/bindings/input/gpio-beeper.yaml | 33 +
.../devicetree/bindings/input/gpio-keys.yaml | 2 +-
Documentation/devicetree/bindings/input/input.yaml | 2 +-
.../devicetree/bindings/input/matrix-keymap.yaml | 2 +-
.../bindings/input/microchip,cap11xx.yaml | 2 +-
.../bindings/input/pine64,pinephone-keyboard.yaml | 2 +-
.../bindings/input/qcom,pm8921-pwrkey.yaml | 75 +
.../bindings/input/qcom,pm8xxx-pwrkey.txt | 46 -
.../devicetree/bindings/input/ti,drv260x.txt | 50 -
.../devicetree/bindings/input/ti,drv260x.yaml | 109 +
.../input/touchscreen/chipone,icn8318.yaml | 2 +-
.../input/touchscreen/cypress,cy8ctma140.yaml | 2 +-
.../input/touchscreen/cypress,cy8ctma340.yaml | 2 +-
.../input/touchscreen/cypress,tt21000.yaml | 106 +
.../bindings/input/touchscreen/edt-ft5x06.yaml | 2 +-
.../bindings/input/touchscreen/egalax-ts.txt | 4 +-
.../bindings/input/touchscreen/goodix.yaml | 2 +-
.../bindings/input/touchscreen/himax,hx83112b.yaml | 63 +
.../bindings/input/touchscreen/hycon,hy46xx.yaml | 2 +-
.../input/touchscreen/hynitron,cstxxx.yaml | 65 +
.../input/touchscreen/imagis,ist3038c.yaml | 2 +-
.../bindings/input/touchscreen/melfas,mms114.yaml | 2 +-
.../bindings/input/touchscreen/mstar,msg2638.yaml | 10 +-
.../input/touchscreen/pixcir,pixcir_ts.yaml | 2 +-
.../bindings/input/touchscreen/silead,gsl1680.yaml | 2 +-
.../bindings/input/touchscreen/ti,tsc2005.yaml | 2 +-
.../bindings/input/touchscreen/touchscreen.yaml | 2 +-
.../bindings/input/touchscreen/zinitix,bt400.yaml | 2 +-
.../bindings/interconnect/qcom,msm8998-bwmon.yaml | 7 +-
.../bindings/interconnect/qcom,osm-l3.yaml | 24 +-
.../bindings/interrupt-controller/apple,aic.yaml | 1 -
.../bindings/interrupt-controller/apple,aic2.yaml | 29 +
.../bindings/interrupt-controller/fsl,intmux.yaml | 3 +-
.../interrupt-controller/ingenic,intc.yaml | 2 +-
.../interrupt-controller/intel,ce4100-ioapic.txt | 26 -
.../interrupt-controller/intel,ce4100-ioapic.yaml | 60 +
.../interrupt-controller/intel,ce4100-lapic.yaml | 71 +
.../loongarch,cpu-interrupt-controller.yaml | 34 +
.../interrupt-controller/mediatek,cirq.txt | 33 -
.../interrupt-controller/mediatek,mtk-cirq.yaml | 68 +
.../bindings/interrupt-controller/mrvl,intc.yaml | 2 +-
.../interrupt-controller/nuvoton,wpcm450-aic.yaml | 2 +-
.../bindings/interrupt-controller/qcom,pdc.yaml | 4 +
.../interrupt-controller/realtek,rtl-intc.yaml | 2 +-
.../interrupt-controller/renesas,irqc.yaml | 2 +-
.../devicetree/bindings/iommu/apple,dart.yaml | 4 +-
.../devicetree/bindings/iommu/arm,smmu.yaml | 178 +-
.../devicetree/bindings/iommu/mediatek,iommu.yaml | 2 +
.../bindings/iommu/renesas,ipmmu-vmsa.yaml | 6 +-
.../devicetree/bindings/ipmi/ipmi-ipmb.yaml | 2 +-
.../devicetree/bindings/ipmi/ipmi-smic.yaml | 2 +-
.../devicetree/bindings/ipmi/ssif-bmc.yaml | 38 +
.../bindings/leds/backlight/gpio-backlight.yaml | 2 +-
.../bindings/leds/backlight/led-backlight.yaml | 2 +-
.../bindings/leds/backlight/pwm-backlight.yaml | 2 +-
.../bindings/leds/backlight/qcom-wled.yaml | 2 +-
Documentation/devicetree/bindings/leds/common.yaml | 1 +
.../devicetree/bindings/leds/irled/gpio-ir-tx.txt | 14 -
.../devicetree/bindings/leds/irled/gpio-ir-tx.yaml | 36 +
.../devicetree/bindings/leds/irled/ir-spi-led.yaml | 61 +
.../devicetree/bindings/leds/irled/pwm-ir-tx.txt | 13 -
.../devicetree/bindings/leds/irled/pwm-ir-tx.yaml | 34 +
.../devicetree/bindings/leds/irled/spi-ir-led.txt | 29 -
.../devicetree/bindings/leds/issi,is31fl319x.yaml | 3 +-
.../devicetree/bindings/leds/leds-aw2013.yaml | 1 +
.../devicetree/bindings/leds/leds-gpio.yaml | 2 +-
.../devicetree/bindings/leds/leds-lgm.yaml | 10 +-
.../devicetree/bindings/leds/leds-lp50xx.yaml | 8 +
.../devicetree/bindings/leds/leds-lp55xx.yaml | 47 +-
.../devicetree/bindings/leds/leds-max77650.yaml | 9 +-
.../devicetree/bindings/leds/leds-mt6360.yaml | 43 +-
.../devicetree/bindings/leds/leds-pm8058.txt | 67 -
.../devicetree/bindings/leds/leds-pwm.yaml | 2 +-
.../devicetree/bindings/leds/leds-qcom-lpg.yaml | 12 +-
.../devicetree/bindings/leds/leds-rt4505.yaml | 1 +
.../devicetree/bindings/leds/leds-sgm3140.yaml | 5 +-
.../devicetree/bindings/leds/qcom,pm8058-led.yaml | 57 +
.../devicetree/bindings/leds/register-bit-led.yaml | 2 +-
.../devicetree/bindings/leds/regulator-led.yaml | 2 +-
.../bindings/leds/rohm,bd71828-leds.yaml | 18 +-
.../devicetree/bindings/leds/ti,tca6507.yaml | 2 +-
.../bindings/mailbox/mediatek,gce-mailbox.yaml | 1 +
.../bindings/mailbox/qcom,apcs-kpss-global.yaml | 3 +-
.../devicetree/bindings/mailbox/qcom-ipcc.yaml | 4 +-
.../devicetree/bindings/mailbox/sprd-mailbox.yaml | 2 +-
.../devicetree/bindings/mailbox/st,stm32-ipcc.yaml | 2 +-
.../bindings/media/allwinner,sun4i-a10-ir.yaml | 1 +
.../bindings/media/allwinner,sun50i-h6-vpu-g2.yaml | 5 +
.../bindings/media/allwinner,sun6i-a31-csi.yaml | 4 +
.../bindings/media/allwinner,sun6i-a31-isp.yaml | 101 +
.../devicetree/bindings/media/atmel,isc.yaml | 4 +-
.../bindings/media/i2c/dongwoon,dw9768.yaml | 2 +-
.../devicetree/bindings/media/i2c/imx290.txt | 57 -
.../devicetree/bindings/media/i2c/mipi-ccs.yaml | 3 +-
.../devicetree/bindings/media/i2c/ov5645.txt | 54 -
.../devicetree/bindings/media/i2c/ov8856.yaml | 2 +-
.../bindings/media/i2c/ovti,ov02a10.yaml | 2 +-
.../devicetree/bindings/media/i2c/ovti,ov4689.yaml | 134 +
.../devicetree/bindings/media/i2c/ovti,ov5640.yaml | 2 +-
.../devicetree/bindings/media/i2c/ovti,ov5645.yaml | 104 +
.../devicetree/bindings/media/i2c/ovti,ov5648.yaml | 2 +-
.../devicetree/bindings/media/i2c/ovti,ov772x.yaml | 3 +-
.../devicetree/bindings/media/i2c/ovti,ov8865.yaml | 2 +-
.../devicetree/bindings/media/i2c/ovti,ov9282.yaml | 14 +-
.../devicetree/bindings/media/i2c/sony,imx290.yaml | 129 +
.../devicetree/bindings/media/i2c/sony,imx412.yaml | 4 +-
.../bindings/media/i2c/st,st-mipid02.txt | 82 -
.../bindings/media/i2c/st,st-mipid02.yaml | 176 +
.../bindings/media/i2c/st,st-vgxy61.yaml | 113 +
.../bindings/media/i2c/toshiba,tc358746.yaml | 178 +
.../bindings/media/marvell,mmp2-ccic.yaml | 5 +-
.../bindings/media/mediatek,mt8195-jpegdec.yaml | 168 +
.../bindings/media/mediatek,mt8195-jpegenc.yaml | 147 +
.../bindings/media/mediatek,vcodec-encoder.yaml | 12 +-
.../bindings/media/mediatek-jpeg-decoder.yaml | 1 +
.../bindings/media/mediatek-jpeg-encoder.yaml | 1 +
.../devicetree/bindings/media/microchip,xisc.yaml | 3 +-
.../devicetree/bindings/media/renesas,ceu.yaml | 2 +-
.../bindings/media/renesas,rzg2l-cru.yaml | 157 +
.../bindings/media/renesas,rzg2l-csi2.yaml | 149 +
.../devicetree/bindings/media/s5p-mfc.txt | 10 +-
.../devicetree/bindings/media/samsung-s5c73m3.txt | 2 +-
.../devicetree/bindings/media/st,stm32-cec.yaml | 2 +-
.../devicetree/bindings/media/st,stm32-dcmi.yaml | 6 +-
.../devicetree/bindings/media/st,stm32-dma2d.yaml | 2 +-
.../bindings/media/video-interface-devices.yaml | 2 +-
.../bindings/media/video-interfaces.yaml | 7 +-
.../{arm,pl353-smc.yaml => arm,pl35x-smc.yaml} | 80 +-
.../memory-controllers/calxeda-ddr-ctrlr.yaml | 2 +-
.../ddr/jedec,lpddr-channel.yaml | 146 +
.../memory-controllers/ddr/jedec,lpddr-props.yaml | 74 +
.../memory-controllers/ddr/jedec,lpddr2.yaml | 48 +-
.../memory-controllers/ddr/jedec,lpddr3.yaml | 44 +-
.../memory-controllers/ddr/jedec,lpddr4.yaml | 35 +
.../memory-controllers/ddr/jedec,lpddr5.yaml | 46 +
.../ingenic,nemc-peripherals.yaml | 2 +-
.../bindings/memory-controllers/ingenic,nemc.yaml | 2 +-
.../memory-controllers/mc-peripheral-props.yaml | 38 +
.../memory-controllers/renesas,rpc-if.yaml | 5 +
.../st,stm32-fmc2-ebi-props.yaml | 144 +
.../memory-controllers/st,stm32-fmc2-ebi.yaml | 140 +-
.../bindings/memory-controllers/ti,gpmc-child.yaml | 9 +-
.../bindings/memory-controllers/ti,gpmc.yaml | 2 +-
.../devicetree/bindings/mfd/actions,atc260x.yaml | 2 +-
.../devicetree/bindings/mfd/ampere,smpro.yaml | 42 +
.../devicetree/bindings/mfd/brcm,twd.yaml | 8 +
Documentation/devicetree/bindings/mfd/da9062.txt | 13 +-
.../devicetree/bindings/mfd/ene-kb3930.yaml | 2 +-
.../devicetree/bindings/mfd/ene-kb930.yaml | 8 +-
.../devicetree/bindings/mfd/fsl,imx8qxp-csr.yaml | 2 +-
.../devicetree/bindings/mfd/google,cros-ec.yaml | 103 +-
.../devicetree/bindings/mfd/max77650.yaml | 2 -
.../devicetree/bindings/mfd/mediatek,mt6360.yaml | 9 -
.../devicetree/bindings/mfd/mscc,ocelot.yaml | 4 +-
Documentation/devicetree/bindings/mfd/mt6397.txt | 1 +
.../devicetree/bindings/mfd/qcom,pm8008.yaml | 2 +-
.../devicetree/bindings/mfd/qcom,spmi-pmic.yaml | 35 +-
.../devicetree/bindings/mfd/qcom,tcsr.yaml | 2 +
.../devicetree/bindings/mfd/qcom-pm8xxx.yaml | 37 +-
.../devicetree/bindings/mfd/rockchip,rk817.yaml | 2 +
.../devicetree/bindings/mfd/rohm,bd71815-pmic.yaml | 4 +-
.../devicetree/bindings/mfd/rohm,bd71828-pmic.yaml | 4 +-
.../devicetree/bindings/mfd/rohm,bd71837-pmic.yaml | 4 +-
.../devicetree/bindings/mfd/rohm,bd71847-pmic.yaml | 4 +-
.../devicetree/bindings/mfd/rohm,bd9576-pmic.yaml | 4 +-
.../devicetree/bindings/mfd/st,stm32-lptimer.yaml | 2 +-
.../devicetree/bindings/mfd/st,stm32-timers.yaml | 2 +-
.../devicetree/bindings/mfd/st,stmfx.yaml | 2 +-
.../devicetree/bindings/mfd/st,stpmic1.yaml | 2 +-
Documentation/devicetree/bindings/mfd/syscon.yaml | 1 +
.../devicetree/bindings/mfd/ti,am3359-tscadc.yaml | 3 +
.../bindings/mfd/ti,j721e-system-controller.yaml | 2 +
.../devicetree/bindings/mips/brcm/brcm,bmips.txt | 8 -
.../devicetree/bindings/mips/brcm/soc.yaml | 96 +
Documentation/devicetree/bindings/mips/cpus.yaml | 115 +
.../devicetree/bindings/mips/ingenic/devices.yaml | 2 +-
.../bindings/mips/ingenic/ingenic,cpu.yaml | 69 -
.../bindings/mips/lantiq/lantiq,dma-xway.yaml | 2 +-
.../devicetree/bindings/mips/loongson/devices.yaml | 2 +-
.../devicetree/bindings/misc/idt,89hpesx.yaml | 72 +
.../devicetree/bindings/misc/idt_89hpesx.txt | 44 -
.../devicetree/bindings/misc/olpc,xo1.75-ec.yaml | 2 +-
.../devicetree/bindings/misc/qcom,fastrpc.yaml | 2 +-
.../devicetree/bindings/mmc/arasan,sdhci.yaml | 2 +-
.../devicetree/bindings/mmc/arm,pl18x.yaml | 4 +-
.../bindings/mmc/brcm,sdhci-brcmstb.yaml | 2 +-
.../devicetree/bindings/mmc/fsl-imx-esdhc.yaml | 7 +-
.../bindings/mmc/fujitsu,sdhci-fujitsu.yaml | 57 +
.../devicetree/bindings/mmc/ingenic,mmc.yaml | 2 +-
.../bindings/mmc/microchip,dw-sparx5-sdhci.yaml | 2 +-
.../devicetree/bindings/mmc/mmc-controller.yaml | 3 +-
.../devicetree/bindings/mmc/mmc-pwrseq-emmc.yaml | 2 +-
.../devicetree/bindings/mmc/mmc-pwrseq-sd8787.yaml | 2 +-
.../devicetree/bindings/mmc/mmc-pwrseq-simple.yaml | 2 +-
Documentation/devicetree/bindings/mmc/mtk-sd.yaml | 173 +-
.../devicetree/bindings/mmc/renesas,sdhi.yaml | 1 +
.../devicetree/bindings/mmc/rockchip-dw-mshc.yaml | 3 +
.../devicetree/bindings/mmc/sdhci-am654.yaml | 69 +-
.../devicetree/bindings/mmc/sdhci-common.yaml | 32 +
.../devicetree/bindings/mmc/sdhci-fujitsu.txt | 32 -
.../devicetree/bindings/mmc/sdhci-msm.yaml | 23 +-
.../devicetree/bindings/mmc/sdhci-pxa.yaml | 2 +-
.../bindings/mmc/snps,dwcmshc-sdhci.yaml | 13 +-
.../devicetree/bindings/mmc/sunplus,mmc.yaml | 61 +
.../devicetree/bindings/mmc/synopsys-dw-mshc.yaml | 34 +-
.../bindings/mtd/allwinner,sun4i-a10-nand.yaml | 34 +-
.../bindings/mtd/arasan,nand-controller.yaml | 5 +-
.../bindings/mtd/arm,pl353-nand-r2p1.yaml | 32 +-
.../devicetree/bindings/mtd/atmel-nand.txt | 6 +-
.../devicetree/bindings/mtd/brcm,brcmnand.yaml | 96 +-
.../devicetree/bindings/mtd/denali,nand.yaml | 2 +-
.../devicetree/bindings/mtd/gpmi-nand.yaml | 2 +-
.../devicetree/bindings/mtd/ingenic,nand.yaml | 148 +-
.../devicetree/bindings/mtd/intel,lgm-ebunand.yaml | 50 +-
.../devicetree/bindings/mtd/jedec,spi-nor.yaml | 20 +-
.../devicetree/bindings/mtd/lpc32xx-mlc.txt | 2 +-
.../devicetree/bindings/mtd/lpc32xx-slc.txt | 2 +-
.../bindings/mtd/microchip,mchp48l640.yaml | 18 +-
.../devicetree/bindings/mtd/mtd-physmap.yaml | 7 +-
Documentation/devicetree/bindings/mtd/mtd.yaml | 24 +-
Documentation/devicetree/bindings/mtd/mtk-nand.txt | 2 +-
.../devicetree/bindings/mtd/mxc-nand.yaml | 2 +-
.../devicetree/bindings/mtd/nand-chip.yaml | 6 +-
.../devicetree/bindings/mtd/nand-controller.yaml | 4 +-
.../devicetree/bindings/mtd/partition.txt | 33 -
.../mtd/partitions/arm,arm-firmware-suite.yaml | 2 +
.../mtd/partitions/brcm,bcm4908-partitions.yaml | 2 +
.../partitions/brcm,bcm947xx-cfe-partitions.yaml | 2 +
.../bindings/mtd/partitions/fixed-partitions.yaml | 30 +-
.../mtd/partitions/linksys,ns-partitions.yaml | 2 +
.../bindings/mtd/partitions/nvmem-cells.yaml | 4 +-
.../bindings/mtd/partitions/partition.yaml | 5 +
.../bindings/mtd/partitions/partitions.yaml | 41 +
.../bindings/mtd/partitions/qcom,smem-part.yaml | 40 +-
.../bindings/mtd/partitions/redboot-fis.yaml | 6 +
.../partitions/tplink,safeloader-partitions.yaml | 57 +
.../devicetree/bindings/mtd/partitions/u-boot.yaml | 7 +
.../devicetree/bindings/mtd/qcom,nandc.yaml | 131 +-
.../bindings/mtd/rockchip,nand-controller.yaml | 4 +-
.../bindings/mtd/st,stm32-fmc2-nand.yaml | 49 +-
.../devicetree/bindings/mtd/ti,am654-hbmc.yaml | 36 +-
.../devicetree/bindings/mtd/ti,gpmc-onenand.yaml | 3 +
.../devicetree/bindings/mux/gpio-mux.yaml | 2 +-
.../devicetree/bindings/mux/mux-consumer.yaml | 2 +-
.../devicetree/bindings/mux/mux-controller.yaml | 2 +-
Documentation/devicetree/bindings/mux/reg-mux.yaml | 2 +-
.../devicetree/bindings/net/adi,adin1110.yaml | 4 +
.../devicetree/bindings/net/asix,ax88178.yaml | 6 +-
.../devicetree/bindings/net/bluetooth.txt | 5 -
.../net/bluetooth/bluetooth-controller.yaml | 29 +
.../net/bluetooth/brcm,bcm4377-bluetooth.yaml | 81 +
.../net/{ => bluetooth}/qualcomm-bluetooth.yaml | 6 +-
.../devicetree/bindings/net/brcm,bcmgenet.yaml | 2 +-
.../bindings/net/broadcom-bluetooth.yaml | 3 +
.../bindings/net/can/allwinner,sun4i-a10-can.yaml | 2 +-
.../devicetree/bindings/net/can/bosch,c_can.yaml | 2 +-
.../devicetree/bindings/net/can/bosch,m_can.yaml | 2 +-
.../bindings/net/can/can-controller.yaml | 2 +-
.../bindings/net/can/can-transceiver.yaml | 2 +-
.../devicetree/bindings/net/can/ctu,ctucanfd.yaml | 2 +-
.../devicetree/bindings/net/can/fsl,flexcan.yaml | 1 +
.../bindings/net/can/microchip,mcp251xfd.yaml | 4 +-
.../bindings/net/can/renesas,rcar-canfd.yaml | 135 +-
.../devicetree/bindings/net/cdns,macb.yaml | 1 -
.../devicetree/bindings/net/dsa/arrow,xrs700x.yaml | 2 +-
.../devicetree/bindings/net/dsa/dsa-port.yaml | 5 +-
Documentation/devicetree/bindings/net/dsa/dsa.yaml | 2 +-
.../bindings/net/dsa/hirschmann,hellcreek.yaml | 4 +-
.../bindings/net/dsa/microchip,lan937x.yaml | 2 +-
.../devicetree/bindings/net/dsa/mscc,ocelot.yaml | 2 +-
.../devicetree/bindings/net/dsa/nxp,sja1105.yaml | 2 +-
.../bindings/net/dsa/renesas,rzn1-a5psw.yaml | 2 +-
.../devicetree/bindings/net/engleder,tsnep.yaml | 2 +-
.../bindings/net/ethernet-controller.yaml | 13 +-
.../devicetree/bindings/net/ethernet-phy.yaml | 2 +-
Documentation/devicetree/bindings/net/fsl,fec.yaml | 4 +-
.../devicetree/bindings/net/fsl,fman-dtsec.yaml | 53 +-
.../bindings/net/fsl,qoriq-mc-dpmac.yaml | 4 +-
Documentation/devicetree/bindings/net/fsl-fman.txt | 5 +-
.../devicetree/bindings/net/ingenic,mac.yaml | 2 +-
.../bindings/net/marvell,dfx-server.yaml | 62 +
.../devicetree/bindings/net/marvell,pp2.yaml | 305 +
.../devicetree/bindings/net/marvell,prestera.txt | 81 -
.../devicetree/bindings/net/marvell,prestera.yaml | 91 +
.../devicetree/bindings/net/marvell-pp2.txt | 141 -
.../bindings/net/mctp-i2c-controller.yaml | 2 +-
Documentation/devicetree/bindings/net/mdio.yaml | 2 +-
.../devicetree/bindings/net/micrel,ks8851.yaml | 1 +
.../devicetree/bindings/net/microchip,lan95xx.yaml | 6 +-
.../devicetree/bindings/net/nfc/nxp,nci.yaml | 4 +-
.../devicetree/bindings/net/nxp,dwmac-imx.yaml | 5 +-
.../devicetree/bindings/net/pcs/fsl,lynx-pcs.yaml | 40 +
.../devicetree/bindings/net/qca,ar71xx.yaml | 1 -
.../devicetree/bindings/net/qcom,ipa.yaml | 86 +-
.../devicetree/bindings/net/qcom,ipq4019-mdio.yaml | 46 +-
.../devicetree/bindings/net/realtek-bluetooth.yaml | 1 +
.../net/renesas,r8a779f0-ether-switch.yaml | 262 +
Documentation/devicetree/bindings/net/sff,sfp.yaml | 3 +-
.../devicetree/bindings/net/snps,dwmac.yaml | 345 +-
.../bindings/net/socionext,synquacer-netsec.yaml | 73 +
.../devicetree/bindings/net/socionext-netsec.txt | 56 -
.../bindings/net/wireless/esp,esp8089.yaml | 2 +-
.../bindings/net/wireless/ieee80211.yaml | 2 +-
.../bindings/net/wireless/mediatek,mt76.yaml | 2 +-
.../bindings/net/wireless/microchip,wilc1000.yaml | 2 +-
.../bindings/net/wireless/qca,ath9k.yaml | 2 +-
.../bindings/net/wireless/qcom,ath11k.yaml | 2 +-
.../bindings/net/wireless/silabs,wfx.yaml | 2 +-
.../devicetree/bindings/net/xilinx_axienet.txt | 2 +
.../devicetree/bindings/nvmem/fsl,scu-ocotp.yaml | 2 +-
.../bindings/nvmem/ingenic,jz4780-efuse.yaml | 2 +-
.../bindings/nvmem/layouts/kontron,sl28-vpd.yaml | 64 +
.../bindings/nvmem/layouts/nvmem-layout.yaml | 34 +
.../bindings/nvmem/layouts/onie,tlv-layout.yaml | 147 +
Documentation/devicetree/bindings/nvmem/nvmem.yaml | 8 +
.../devicetree/bindings/nvmem/qcom,qfprom.yaml | 2 +-
.../devicetree/bindings/nvmem/qcom,spmi-sdam.yaml | 2 +-
.../devicetree/bindings/nvmem/snvs-lpgpr.yaml | 20 +-
.../bindings/nvmem/socionext,uniphier-efuse.yaml | 2 +-
.../devicetree/bindings/nvmem/st,stm32-romem.yaml | 3 +-
.../devicetree/bindings/nvmem/u-boot,env.yaml | 21 +
.../opp/allwinner,sun50i-h6-operating-points.yaml | 4 +-
Documentation/devicetree/bindings/opp/opp-v1.yaml | 2 +-
.../devicetree/bindings/opp/opp-v2-base.yaml | 8 +-
.../devicetree/bindings/opp/opp-v2-kryo-cpu.yaml | 2 +-
.../devicetree/bindings/opp/opp-v2-qcom-level.yaml | 2 +-
Documentation/devicetree/bindings/opp/opp-v2.yaml | 4 +-
.../devicetree/bindings/pci/baikal,bt1-pcie.yaml | 168 +
.../devicetree/bindings/pci/fsl,imx6q-pcie.yaml | 146 +-
.../bindings/pci/mediatek,mt7621-pcie.yaml | 2 +-
.../bindings/pci/mediatek-pcie-gen3.yaml | 77 +-
.../bindings/pci/nvidia,tegra194-pcie.yaml | 34 +-
Documentation/devicetree/bindings/pci/pci-ep.yaml | 2 +-
.../devicetree/bindings/pci/qcom,pcie-ep.yaml | 2 +-
.../devicetree/bindings/pci/qcom,pcie.yaml | 22 +
.../bindings/pci/renesas,pci-rcar-gen2.yaml | 2 +-
.../devicetree/bindings/pci/rockchip-dw-pcie.yaml | 4 +-
.../bindings/pci/snps,dw-pcie-common.yaml | 266 +
.../devicetree/bindings/pci/snps,dw-pcie-ep.yaml | 212 +-
.../devicetree/bindings/pci/snps,dw-pcie.yaml | 262 +-
.../devicetree/bindings/pci/ti,j721e-pci-ep.yaml | 7 +
.../devicetree/bindings/pci/ti,j721e-pci-host.yaml | 22 +
.../bindings/pci/toshiba,visconti-pcie.yaml | 7 +-
.../devicetree/bindings/pci/xilinx-nwl-pcie.txt | 73 -
.../devicetree/bindings/pci/xilinx-pcie.txt | 88 -
.../bindings/pci/xlnx,axi-pcie-host.yaml | 88 +
.../devicetree/bindings/pci/xlnx,nwl-pcie.yaml | 149 +
.../bindings/perf/amlogic,g12-ddr-pmu.yaml | 54 +
.../devicetree/bindings/perf/arm,dsu-pmu.yaml | 3 -
.../phy/allwinner,sun6i-a31-mipi-dphy.yaml | 11 +
.../bindings/phy/allwinner,sun8i-h3-usb-phy.yaml | 26 +
.../devicetree/bindings/phy/brcm,ns2-pcie-phy.yaml | 2 +-
.../devicetree/bindings/phy/calxeda-combophy.yaml | 2 +-
.../devicetree/bindings/phy/fsl,imx8-pcie-phy.yaml | 16 +-
.../bindings/phy/fsl,imx8mq-usb-phy.yaml | 5 +-
.../devicetree/bindings/phy/fsl,lynx-28g.yaml | 2 +-
.../devicetree/bindings/phy/ingenic,phy-usb.yaml | 2 +-
.../bindings/phy/intel,keembay-phy-usb.yaml | 2 +-
.../bindings/phy/intel,phy-thunderbay-emmc.yaml | 17 +-
.../bindings/phy/marvell,mmp3-usb-phy.yaml | 2 +-
.../devicetree/bindings/phy/mediatek,dsi-phy.yaml | 2 +-
.../devicetree/bindings/phy/mediatek,hdmi-phy.yaml | 2 +-
.../devicetree/bindings/phy/mediatek,ufs-phy.yaml | 2 +-
.../bindings/phy/phy-cadence-sierra.yaml | 2 +-
.../bindings/phy/phy-cadence-torrent.yaml | 2 +-
.../devicetree/bindings/phy/phy-stm32-usbphyc.yaml | 2 +-
.../devicetree/bindings/phy/phy-tegra194-p2u.yaml | 2 +-
...cie-phy.yaml => qcom,ipq8074-qmp-pcie-phy.yaml} | 7 +-
...-ufs-phy.yaml => qcom,msm8996-qmp-ufs-phy.yaml} | 17 +-
...usb-phy.yaml => qcom,msm8996-qmp-usb3-phy.yaml} | 20 +-
...p-phy.yaml => qcom,sc7180-qmp-usb3-dp-phy.yaml} | 25 +-
.../bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 165 +
.../bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml | 83 +
.../phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml | 102 +
.../phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | 99 +
.../devicetree/bindings/phy/qcom,usb-hs-phy.yaml | 2 +-
.../phy/renesas,r8a779f0-ether-serdes.yaml | 54 +
.../bindings/phy/ti,phy-am654-serdes.yaml | 2 +-
.../devicetree/bindings/phy/ti,phy-gmii-sel.yaml | 50 +-
.../devicetree/bindings/phy/ti,phy-j721e-wiz.yaml | 2 +
.../bindings/phy/transmit-amplitude.yaml | 2 +-
.../devicetree/bindings/pinctrl/fsl,imxrt1050.yaml | 2 +-
.../bindings/pinctrl/fsl,scu-pinctrl.yaml | 2 +-
.../bindings/pinctrl/ingenic,pinctrl.yaml | 2 +-
.../devicetree/bindings/pinctrl/intel,lgm-io.yaml | 2 +-
.../bindings/pinctrl/loongson,ls2k-pinctrl.yaml | 123 +
.../bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml | 5 +-
.../bindings/pinctrl/mediatek,mt6779-pinctrl.yaml | 95 +-
.../bindings/pinctrl/mediatek,mt6797-pinctrl.yaml | 176 -
.../bindings/pinctrl/mediatek,mt7986-pinctrl.yaml | 108 +-
.../bindings/pinctrl/mediatek,pinctrl-mt6795.yaml | 7 +-
.../pinctrl/nvidia,tegra-pinmux-common.yaml | 178 +
.../bindings/pinctrl/nvidia,tegra114-pinmux.txt | 131 -
.../bindings/pinctrl/nvidia,tegra114-pinmux.yaml | 155 +
.../bindings/pinctrl/nvidia,tegra124-pinmux.txt | 153 -
.../bindings/pinctrl/nvidia,tegra124-pinmux.yaml | 176 +
.../bindings/pinctrl/nvidia,tegra194-pinmux.txt | 107 -
.../bindings/pinctrl/nvidia,tegra194-pinmux.yaml | 284 +
.../bindings/pinctrl/nvidia,tegra20-pinmux.txt | 143 -
.../bindings/pinctrl/nvidia,tegra20-pinmux.yaml | 112 +
.../bindings/pinctrl/nvidia,tegra210-pinmux.txt | 166 -
.../bindings/pinctrl/nvidia,tegra210-pinmux.yaml | 142 +
.../bindings/pinctrl/nvidia,tegra30-pinmux.txt | 144 -
.../bindings/pinctrl/nvidia,tegra30-pinmux.yaml | 176 +
.../devicetree/bindings/pinctrl/pincfg-node.yaml | 2 +-
.../devicetree/bindings/pinctrl/pinctrl-sx150x.txt | 72 -
.../devicetree/bindings/pinctrl/pinmux-node.yaml | 2 +-
.../bindings/pinctrl/qcom,ipq6018-pinctrl.yaml | 113 +-
.../bindings/pinctrl/qcom,ipq8074-pinctrl.txt | 181 -
.../bindings/pinctrl/qcom,ipq8074-pinctrl.yaml | 135 +
...mdm9607-pinctrl.yaml => qcom,mdm9607-tlmm.yaml} | 41 +-
.../bindings/pinctrl/qcom,mdm9615-pinctrl.txt | 161 -
.../bindings/pinctrl/qcom,mdm9615-pinctrl.yaml | 119 +
.../bindings/pinctrl/qcom,msm8226-pinctrl.yaml | 103 +-
.../bindings/pinctrl/qcom,msm8660-pinctrl.txt | 96 -
.../bindings/pinctrl/qcom,msm8660-pinctrl.yaml | 125 +
.../bindings/pinctrl/qcom,msm8909-tlmm.yaml | 75 +-
.../bindings/pinctrl/qcom,msm8916-pinctrl.txt | 195 -
.../bindings/pinctrl/qcom,msm8916-pinctrl.yaml | 166 +
.../bindings/pinctrl/qcom,msm8953-pinctrl.yaml | 97 +-
.../bindings/pinctrl/qcom,msm8960-pinctrl.txt | 190 -
.../bindings/pinctrl/qcom,msm8960-pinctrl.yaml | 164 +
.../bindings/pinctrl/qcom,msm8974-pinctrl.txt | 121 -
.../bindings/pinctrl/qcom,msm8974-pinctrl.yaml | 179 +
.../bindings/pinctrl/qcom,msm8976-pinctrl.txt | 183 -
.../bindings/pinctrl/qcom,msm8976-pinctrl.yaml | 136 +
.../bindings/pinctrl/qcom,msm8994-pinctrl.txt | 186 -
.../bindings/pinctrl/qcom,msm8994-pinctrl.yaml | 162 +
.../bindings/pinctrl/qcom,msm8996-pinctrl.txt | 208 -
.../bindings/pinctrl/qcom,msm8996-pinctrl.yaml | 182 +
.../bindings/pinctrl/qcom,msm8998-pinctrl.txt | 202 -
.../bindings/pinctrl/qcom,msm8998-pinctrl.yaml | 171 +
.../devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml | 45 +-
...qcm2290-pinctrl.yaml => qcom,qcm2290-tlmm.yaml} | 64 +-
.../bindings/pinctrl/qcom,qcs404-pinctrl.txt | 199 -
.../bindings/pinctrl/qcom,qcs404-pinctrl.yaml | 176 +
.../bindings/pinctrl/qcom,sc7180-pinctrl.txt | 187 -
.../bindings/pinctrl/qcom,sc7180-pinctrl.yaml | 158 +
.../pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml | 48 +-
.../bindings/pinctrl/qcom,sc7280-pinctrl.yaml | 47 +-
...sc8180x-pinctrl.yaml => qcom,sc8180x-tlmm.yaml} | 29 +-
.../pinctrl/qcom,sc8280xp-lpass-lpi-pinctrl.yaml | 44 +-
...8280xp-pinctrl.yaml => qcom,sc8280xp-tlmm.yaml} | 28 +-
.../bindings/pinctrl/qcom,sdm630-pinctrl.yaml | 188 +
.../bindings/pinctrl/qcom,sdm660-pinctrl.txt | 191 -
.../bindings/pinctrl/qcom,sdm670-tlmm.yaml | 127 +
.../bindings/pinctrl/qcom,sdm845-pinctrl.txt | 176 -
.../bindings/pinctrl/qcom,sdm845-pinctrl.yaml | 158 +
.../bindings/pinctrl/qcom,sdx55-pinctrl.yaml | 95 +-
...com,sdx65-pinctrl.yaml => qcom,sdx65-tlmm.yaml} | 62 +-
...m,sm6115-pinctrl.yaml => qcom,sm6115-tlmm.yaml} | 67 +-
...m,sm6125-pinctrl.yaml => qcom,sm6125-tlmm.yaml} | 32 +-
...m,sm6350-pinctrl.yaml => qcom,sm6350-tlmm.yaml} | 25 +-
.../bindings/pinctrl/qcom,sm6375-tlmm.yaml | 23 +-
.../bindings/pinctrl/qcom,sm8150-pinctrl.txt | 190 -
.../bindings/pinctrl/qcom,sm8150-pinctrl.yaml | 173 +
.../pinctrl/qcom,sm8250-lpass-lpi-pinctrl.yaml | 58 +-
.../bindings/pinctrl/qcom,sm8250-pinctrl.yaml | 206 +-
...m,sm8350-pinctrl.yaml => qcom,sm8350-tlmm.yaml} | 25 +-
.../pinctrl/qcom,sm8450-lpass-lpi-pinctrl.yaml | 51 +-
...m,sm8450-pinctrl.yaml => qcom,sm8450-tlmm.yaml} | 24 +-
.../bindings/pinctrl/qcom,tlmm-common.yaml | 20 +-
.../bindings/pinctrl/rockchip,pinctrl.yaml | 2 +-
.../bindings/pinctrl/semtech,sx1501q.yaml | 208 +
.../bindings/pinctrl/st,stm32-pinctrl.yaml | 7 +-
.../devicetree/bindings/power/avs/qcom,cpr.yaml | 2 +-
.../bindings/power/domain-idle-state.yaml | 2 +-
.../devicetree/bindings/power/fsl,scu-pd.yaml | 2 +-
.../devicetree/bindings/power/qcom,rpmpd.yaml | 4 +
.../devicetree/bindings/power/renesas,apmu.yaml | 6 +-
.../bindings/power/reset/gpio-restart.yaml | 13 +-
.../bindings/power/reset/restart-handler.yaml | 30 +
.../bindings/power/reset/xlnx,zynqmp-power.yaml | 2 +-
.../devicetree/bindings/power/supply/bq2415x.yaml | 2 +-
.../devicetree/bindings/power/supply/bq24190.yaml | 2 +-
.../devicetree/bindings/power/supply/bq24257.yaml | 2 +-
.../devicetree/bindings/power/supply/bq24735.yaml | 2 +-
.../devicetree/bindings/power/supply/bq25890.yaml | 18 +-
.../devicetree/bindings/power/supply/bq27xxx.yaml | 2 -
.../bindings/power/supply/dlg,da9150-charger.yaml | 2 +-
.../power/supply/dlg,da9150-fuel-gauge.yaml | 2 +-
.../bindings/power/supply/ingenic,battery.yaml | 6 +-
.../devicetree/bindings/power/supply/isp1704.yaml | 2 +-
.../bindings/power/supply/lltc,lt3651-charger.yaml | 2 +-
.../bindings/power/supply/lltc,ltc294x.yaml | 2 +-
.../bindings/power/supply/maxim,ds2760.yaml | 2 +-
.../bindings/power/supply/maxim,max14656.yaml | 2 +-
.../bindings/power/supply/maxim,max17042.yaml | 2 +
.../bindings/power/supply/mt6360_charger.yaml | 2 +-
.../bindings/power/supply/power-supply.yaml | 6 +
.../bindings/power/supply/richtek,rt9455.yaml | 2 +-
.../bindings/power/supply/rohm,bd99954.yaml | 3 +-
.../bindings/power/supply/sc2731-charger.yaml | 3 +-
.../bindings/power/supply/sc27xx-fg.yaml | 2 +-
.../bindings/power/supply/ti,lp8727.yaml | 2 +-
.../devicetree/bindings/power/wakeup-source.txt | 13 +-
.../bindings/pwm/allwinner,sun4i-a10-pwm.yaml | 4 +-
.../bindings/pwm/google,cros-ec-pwm.yaml | 1 +
.../devicetree/bindings/pwm/microchip,corepwm.yaml | 6 +-
.../devicetree/bindings/pwm/nvidia,tegra20-pwm.txt | 77 -
.../bindings/pwm/nvidia,tegra20-pwm.yaml | 96 +
.../devicetree/bindings/pwm/renesas,pwm-rcar.yaml | 1 +
.../devicetree/bindings/pwm/renesas,tpu-pwm.yaml | 1 +
.../regulator/google,cros-ec-regulator.yaml | 1 +
.../bindings/regulator/max77650-regulator.yaml | 1 +
.../devicetree/bindings/regulator/max8660.yaml | 8 +-
.../bindings/regulator/maxim,max77802.yaml | 2 +-
.../regulator/mediatek,mt6357-regulator.yaml | 294 +
.../bindings/regulator/mt6360-regulator.yaml | 12 +-
.../bindings/regulator/pwm-regulator.yaml | 2 +-
.../bindings/regulator/qcom,rpmh-regulator.yaml | 36 +-
.../bindings/regulator/qcom,smd-rpm-regulator.yaml | 3 +
.../bindings/regulator/regulator-output.yaml | 39 +
.../devicetree/bindings/regulator/regulator.yaml | 2 +-
.../bindings/regulator/richtek,rt6190.yaml | 79 +
.../bindings/regulator/rohm,bd71815-regulator.yaml | 2 +-
.../bindings/regulator/rohm,bd71828-regulator.yaml | 2 +-
.../bindings/regulator/rohm,bd71837-regulator.yaml | 2 +-
.../bindings/regulator/rohm,bd71847-regulator.yaml | 2 +-
.../bindings/regulator/rohm,bd9576-regulator.yaml | 4 +-
.../bindings/regulator/st,stm32-booster.yaml | 2 +-
.../bindings/regulator/st,stm32-vrefbuf.yaml | 2 +-
.../devicetree/bindings/regulator/ti,tps65219.yaml | 14 +-
.../remoteproc/amlogic,meson-mx-ao-arc.yaml | 2 +-
.../bindings/remoteproc/fsl,imx-rproc.yaml | 18 +-
.../bindings/remoteproc/ingenic,vpu.yaml | 2 +-
.../devicetree/bindings/remoteproc/mtk,scp.yaml | 2 +-
.../devicetree/bindings/remoteproc/qcom,adsp.yaml | 2 +-
.../bindings/remoteproc/qcom,pil-info.yaml | 2 +-
.../bindings/remoteproc/renesas,rcar-rproc.yaml | 2 +-
.../bindings/remoteproc/st,stm32-rproc.yaml | 2 +-
.../bindings/remoteproc/xlnx,zynqmp-r5fss.yaml | 135 +
.../bindings/reserved-memory/framebuffer.yaml | 52 +
.../bindings/reserved-memory/shared-dma-pool.yaml | 2 +-
.../devicetree/bindings/reset/ti,sci-reset.yaml | 2 +-
.../bindings/reset/ti,tps380x-reset.yaml | 2 +-
Documentation/devicetree/bindings/riscv/cpus.yaml | 15 +-
.../devicetree/bindings/riscv/starfive.yaml | 4 +-
.../devicetree/bindings/rng/ingenic,rng.yaml | 2 +-
.../devicetree/bindings/rng/ingenic,trng.yaml | 2 +-
.../devicetree/bindings/rng/intel,ixp46x-rng.yaml | 2 +-
.../devicetree/bindings/rng/nuvoton,npcm-rng.yaml | 4 +-
.../bindings/rng/silex-insight,ba431-rng.yaml | 2 +-
.../devicetree/bindings/rng/st,stm32-rng.yaml | 2 +-
.../bindings/rng/xiphera,xip8001b-trng.yaml | 2 +-
.../bindings/rtc/amlogic,meson6-rtc.yaml | 62 +
.../devicetree/bindings/rtc/epson,rx8900.yaml | 2 +-
.../devicetree/bindings/rtc/fsl,scu-rtc.yaml | 2 +-
.../devicetree/bindings/rtc/haoyu,hym8563.txt | 30 -
.../devicetree/bindings/rtc/haoyu,hym8563.yaml | 56 +
.../devicetree/bindings/rtc/ingenic,rtc.yaml | 2 +-
.../devicetree/bindings/rtc/qcom-pm8xxx-rtc.yaml | 16 +-
.../devicetree/bindings/rtc/renesas,rzn1-rtc.yaml | 2 +-
.../devicetree/bindings/rtc/rtc-m41t80.txt | 39 -
.../devicetree/bindings/rtc/rtc-meson.txt | 35 -
Documentation/devicetree/bindings/rtc/rtc.yaml | 2 +-
.../devicetree/bindings/rtc/sa1100-rtc.yaml | 2 +-
.../devicetree/bindings/rtc/st,m41t80.yaml | 73 +
.../devicetree/bindings/rtc/st,stm32-rtc.yaml | 2 +-
Documentation/devicetree/bindings/serial/8250.yaml | 2 +-
.../devicetree/bindings/serial/8250_omap.yaml | 2 +-
.../bindings/serial/brcm,bcm7271-uart.yaml | 2 +-
.../devicetree/bindings/serial/fsl-lpuart.yaml | 3 +
.../devicetree/bindings/serial/ingenic,uart.yaml | 6 +-
.../devicetree/bindings/serial/renesas,scif.yaml | 1 +
.../devicetree/bindings/serial/rs485.yaml | 2 +-
.../devicetree/bindings/serial/serial.yaml | 2 +-
.../devicetree/bindings/serial/st,stm32-uart.yaml | 2 +-
.../bindings/serial/xlnx,opb-uartlite.yaml | 3 +-
.../devicetree/bindings/serio/ps2-gpio.yaml | 2 +-
Documentation/devicetree/bindings/slimbus/bus.txt | 60 -
.../devicetree/bindings/slimbus/qcom,slim-ngd.yaml | 120 +
.../devicetree/bindings/slimbus/qcom,slim.yaml | 86 +
.../bindings/slimbus/slim-ngd-qcom-ctrl.txt | 84 -
.../devicetree/bindings/slimbus/slim-qcom-ctrl.txt | 39 -
.../devicetree/bindings/slimbus/slimbus.yaml | 95 +
.../soc/mediatek/mediatek,mt7986-wo-ccif.yaml | 51 +
.../devicetree/bindings/soc/mediatek/mtk-svs.yaml | 2 +-
.../devicetree/bindings/soc/mediatek/pwrap.txt | 3 +
.../bindings/soc/qcom/qcom,aoss-qmp.yaml | 4 +-
.../bindings/soc/qcom/qcom,apr-services.yaml | 54 +
.../devicetree/bindings/soc/qcom/qcom,apr.yaml | 173 +-
.../devicetree/bindings/soc/qcom/qcom,geni-se.yaml | 44 +-
.../bindings/soc/qcom/qcom,rpmh-rsc.yaml | 5 +
.../devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 28 +-
.../devicetree/bindings/soc/qcom/qcom,smem.yaml | 2 +-
.../devicetree/bindings/soc/qcom/qcom,smp2p.yaml | 2 +-
.../devicetree/bindings/soc/qcom/qcom,spm.yaml | 5 +-
.../devicetree/bindings/soc/qcom/qcom,wcnss.yaml | 8 +-
.../devicetree/bindings/soc/qcom/qcom-stats.yaml | 2 +-
.../soc/renesas/renesas,r9a09g011-sys.yaml | 43 +
.../bindings/{arm => soc/renesas}/renesas.yaml | 5 +-
.../bindings/soc/samsung/exynos-usi.yaml | 2 +-
.../devicetree/bindings/soc/ti/sci-pm-domain.yaml | 2 +-
.../devicetree/bindings/sound/adi,adau1372.yaml | 7 +-
.../devicetree/bindings/sound/adi,adau1977.yaml | 1 +
.../devicetree/bindings/sound/adi,adau7118.yaml | 5 +-
.../devicetree/bindings/sound/ak4375.yaml | 5 +-
.../devicetree/bindings/sound/ak4613.yaml | 5 +-
.../devicetree/bindings/sound/ak4642.yaml | 5 +-
.../bindings/sound/allwinner,sun4i-a10-codec.yaml | 3 +-
.../bindings/sound/allwinner,sun4i-a10-i2s.yaml | 3 +-
.../bindings/sound/allwinner,sun4i-a10-spdif.yaml | 3 +-
.../bindings/sound/allwinner,sun50i-h6-dmic.yaml | 12 +-
.../bindings/sound/allwinner,sun8i-a33-codec.yaml | 5 +-
.../devicetree/bindings/sound/amlogic,aiu.yaml | 2 +-
.../bindings/sound/amlogic,g12a-toacodec.yaml | 2 +-
.../devicetree/bindings/sound/amlogic,t9015.yaml | 2 +-
.../devicetree/bindings/sound/apple,mca.yaml | 5 +-
.../bindings/sound/audio-graph-port.yaml | 2 +-
.../devicetree/bindings/sound/awinic,aw8738.yaml | 2 +-
.../devicetree/bindings/sound/cirrus,cs35l41.yaml | 3 +-
.../devicetree/bindings/sound/cirrus,cs35l45.yaml | 5 +-
.../devicetree/bindings/sound/cirrus,cs42l51.yaml | 7 +-
.../bindings/sound/cirrus,lochnagar.yaml | 5 +-
.../devicetree/bindings/sound/cirrus,madera.yaml | 3 +
.../sound/{name-prefix.yaml => dai-common.yaml} | 6 +-
.../bindings/sound/davinci-mcasp-audio.yaml | 3 +-
.../devicetree/bindings/sound/dmic-codec.yaml | 55 +
Documentation/devicetree/bindings/sound/dmic.txt | 22 -
.../devicetree/bindings/sound/everest,es8316.yaml | 5 +-
.../devicetree/bindings/sound/fsl,micfil.yaml | 1 +
.../devicetree/bindings/sound/fsl,rpmsg.yaml | 36 +-
.../devicetree/bindings/sound/fsl,sai.yaml | 101 +-
.../bindings/sound/google,cros-ec-codec.yaml | 6 +-
.../devicetree/bindings/sound/ingenic,aic.yaml | 17 +-
.../devicetree/bindings/sound/ingenic,codec.yaml | 7 +-
.../bindings/sound/intel,keembay-i2s.yaml | 8 +-
.../devicetree/bindings/sound/linux,bt-sco.yaml | 5 +-
.../devicetree/bindings/sound/linux,spdif-dit.yaml | 2 +-
.../bindings/sound/marvell,mmp-sspa.yaml | 7 +-
.../devicetree/bindings/sound/max98357a.txt | 28 -
.../devicetree/bindings/sound/max98504.txt | 44 -
.../devicetree/bindings/sound/maxim,max98357a.yaml | 52 +
.../devicetree/bindings/sound/maxim,max98504.yaml | 86 +
.../devicetree/bindings/sound/mchp,i2s-mcc.yaml | 18 +-
.../devicetree/bindings/sound/mchp,spdiftx.yaml | 5 +-
.../devicetree/bindings/sound/microchip,pdmc.yaml | 5 +-
.../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 14 +-
.../sound/mt8192-mt6359-rt1015-rt5682.yaml | 3 +-
.../devicetree/bindings/sound/mvebu-audio.txt | 14 +-
.../devicetree/bindings/sound/nau8315.txt | 6 +
.../bindings/sound/nvidia,tegra186-asrc.yaml | 2 +-
.../bindings/sound/nvidia,tegra186-dspk.yaml | 2 +-
.../bindings/sound/nvidia,tegra20-spdif.yaml | 5 +-
.../bindings/sound/nvidia,tegra210-adx.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-amx.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-dmic.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-i2s.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-mixer.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-mvc.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-ope.yaml | 2 +-
.../bindings/sound/nvidia,tegra210-sfc.yaml | 2 +-
.../devicetree/bindings/sound/nxp,tfa989x.yaml | 2 +-
.../devicetree/bindings/sound/qcom,lpass-cpu.yaml | 5 +-
.../bindings/sound/qcom,lpass-rx-macro.yaml | 10 +-
.../bindings/sound/qcom,lpass-tx-macro.yaml | 10 +-
.../bindings/sound/qcom,lpass-va-macro.yaml | 10 +-
.../bindings/sound/qcom,lpass-wsa-macro.yaml | 10 +-
.../bindings/sound/qcom,q6adm-routing.yaml | 27 +-
.../devicetree/bindings/sound/qcom,q6adm.yaml | 51 +
.../devicetree/bindings/sound/qcom,q6afe.yaml | 68 +
.../devicetree/bindings/sound/qcom,q6apm-dai.yaml | 21 +-
.../bindings/sound/qcom,q6apm-lpass-dais.yaml | 35 +
.../devicetree/bindings/sound/qcom,q6apm.yaml | 68 +
.../devicetree/bindings/sound/qcom,q6asm-dais.yaml | 48 +-
.../devicetree/bindings/sound/qcom,q6asm.yaml | 68 +
.../devicetree/bindings/sound/qcom,q6core.yaml | 39 +
.../bindings/sound/qcom,q6dsp-lpass-clocks.yaml | 42 +-
.../bindings/sound/qcom,q6dsp-lpass-ports.yaml | 59 +-
.../devicetree/bindings/sound/qcom,q6prm.yaml | 50 +
.../devicetree/bindings/sound/qcom,wcd9335.txt | 2 +-
.../devicetree/bindings/sound/qcom,wcd934x.yaml | 2 +-
.../bindings/sound/qcom,wcd938x-sdw.yaml | 2 +-
.../devicetree/bindings/sound/qcom,wcd938x.yaml | 7 +-
.../devicetree/bindings/sound/qcom,wsa881x.yaml | 2 +-
.../devicetree/bindings/sound/qcom,wsa883x.yaml | 17 +-
.../devicetree/bindings/sound/realtek,rt1015p.yaml | 2 +-
.../devicetree/bindings/sound/realtek,rt5682s.yaml | 33 +-
.../devicetree/bindings/sound/renesas,fsi.yaml | 5 +-
.../devicetree/bindings/sound/renesas,rsnd.yaml | 5 +-
.../devicetree/bindings/sound/renesas,rz-ssi.yaml | 5 +-
.../devicetree/bindings/sound/richtek,rt9120.yaml | 5 +-
.../bindings/sound/rockchip,i2s-tdm.yaml | 7 +-
.../devicetree/bindings/sound/rockchip,pdm.yaml | 5 +-
.../bindings/sound/rockchip,rk3328-codec.yaml | 5 +-
.../devicetree/bindings/sound/rockchip-i2s.yaml | 5 +-
.../devicetree/bindings/sound/rockchip-spdif.yaml | 23 +-
.../devicetree/bindings/sound/rohm,bd28623.yaml | 5 +-
Documentation/devicetree/bindings/sound/rt5659.txt | 2 +-
Documentation/devicetree/bindings/sound/rt5682.txt | 22 +-
.../devicetree/bindings/sound/samsung-i2s.yaml | 5 +-
.../devicetree/bindings/sound/sgtl5000.yaml | 5 +-
.../bindings/sound/simple-audio-amplifier.yaml | 2 +-
.../bindings/sound/simple-audio-mux.yaml | 2 +-
.../bindings/sound/snps,designware-i2s.yaml | 30 +-
.../bindings/sound/socionext,uniphier-aio.yaml | 5 +-
.../bindings/sound/socionext,uniphier-evea.yaml | 5 +-
.../devicetree/bindings/sound/st,stm32-i2s.yaml | 5 +-
.../bindings/sound/st,stm32-spdifrx.yaml | 5 +-
.../devicetree/bindings/sound/tas2562.yaml | 5 +-
.../devicetree/bindings/sound/tas2770.yaml | 5 +-
.../devicetree/bindings/sound/tas27xx.yaml | 5 +-
.../devicetree/bindings/sound/ti,src4xxx.yaml | 4 +-
.../bindings/sound/ti,tlv320adc3xxx.yaml | 5 +-
.../devicetree/bindings/sound/tlv320adcx140.yaml | 64 +-
.../devicetree/bindings/sound/wlf,arizona.yaml | 3 +
.../devicetree/bindings/sound/wlf,wm8731.yaml | 1 +
.../devicetree/bindings/sound/wlf,wm8940.yaml | 5 +-
.../devicetree/bindings/sound/wlf,wm8961.yaml | 43 +
.../devicetree/bindings/sound/wlf,wm8962.yaml | 5 +-
.../devicetree/bindings/sound/wlf,wm8978.yaml | 5 +-
.../devicetree/bindings/sound/zl38060.yaml | 5 +-
.../devicetree/bindings/soundwire/qcom,sdw.txt | 214 -
.../bindings/soundwire/qcom,soundwire.yaml | 270 +
.../bindings/soundwire/soundwire-controller.yaml | 2 +-
.../bindings/spi/amlogic,meson-gx-spicc.yaml | 75 +-
.../bindings/spi/aspeed,ast2600-fmc.yaml | 2 +-
.../devicetree/bindings/spi/fsl-imx-cspi.yaml | 4 +-
.../devicetree/bindings/spi/ingenic,spi.yaml | 2 +-
.../devicetree/bindings/spi/marvell,mmp2-ssp.yaml | 2 +-
.../devicetree/bindings/spi/nuvoton,npcm-fiu.txt | 2 +-
.../bindings/spi/nuvoton,wpcm450-fiu.yaml | 66 +
.../bindings/spi/nvidia,tegra210-quad.yaml | 2 +-
.../devicetree/bindings/spi/omap-spi.yaml | 2 +-
.../devicetree/bindings/spi/socionext,f-ospi.yaml | 57 +
.../bindings/spi/socionext,synquacer-spi.yaml | 73 +
.../devicetree/bindings/spi/spi-controller.yaml | 2 +-
.../devicetree/bindings/spi/spi-fsl-lpspi.yaml | 8 +
.../devicetree/bindings/spi/spi-gpio.yaml | 2 +-
.../bindings/spi/spi-peripheral-props.yaml | 5 +
.../devicetree/bindings/spi/spi-synquacer.txt | 27 -
.../devicetree/bindings/spi/spi-zynqmp-qspi.yaml | 4 +-
.../devicetree/bindings/spi/st,stm32-qspi.yaml | 2 +-
.../devicetree/bindings/spi/st,stm32-spi.yaml | 2 +-
.../bindings/spmi/qcom,spmi-pmic-arb.yaml | 10 +
.../devicetree/bindings/sram/qcom,imem.yaml | 1 +
.../bindings/thermal/fsl,scu-thermal.yaml | 2 +-
.../bindings/thermal/generic-adc-thermal.yaml | 84 +
.../devicetree/bindings/thermal/imx-thermal.yaml | 2 +-
.../bindings/thermal/imx8mm-thermal.yaml | 9 +-
.../bindings/thermal/mediatek-thermal.txt | 2 +
.../devicetree/bindings/thermal/qcom-lmh.yaml | 2 +-
.../bindings/thermal/qcom-spmi-adc-tm5.yaml | 6 +-
.../devicetree/bindings/thermal/qcom-tsens.yaml | 82 +-
.../devicetree/bindings/thermal/rzg2l-thermal.yaml | 2 +-
.../devicetree/bindings/thermal/sprd-thermal.yaml | 2 +-
.../bindings/thermal/st,stm32-thermal.yaml | 2 +-
.../bindings/thermal/thermal-cooling-devices.yaml | 6 +-
.../bindings/thermal/thermal-generic-adc.txt | 95 -
.../devicetree/bindings/thermal/thermal-idle.yaml | 156 +-
.../bindings/thermal/thermal-sensor.yaml | 2 +-
.../devicetree/bindings/thermal/thermal-zones.yaml | 2 +-
.../bindings/thermal/ti,am654-thermal.yaml | 2 +-
.../bindings/thermal/ti,j72xx-thermal.yaml | 37 +-
.../bindings/timer/brcm,bcmbca-timer.yaml | 40 +
.../devicetree/bindings/timer/fsl,imxgpt.yaml | 2 +
.../devicetree/bindings/timer/ingenic,sysost.yaml | 2 +-
.../devicetree/bindings/timer/ingenic,tcu.yaml | 2 +-
.../devicetree/bindings/timer/mrvl,mmp-timer.yaml | 2 +-
.../bindings/timer/nuvoton,npcm7xx-timer.yaml | 8 +-
.../devicetree/bindings/timer/renesas,cmt.yaml | 2 +
.../devicetree/bindings/timer/renesas,tmu.yaml | 1 +
.../bindings/timer/rockchip,rk-timer.yaml | 1 +
.../devicetree/bindings/timer/st,stm32-timer.yaml | 2 +-
.../devicetree/bindings/trivial-devices.yaml | 2 +-
.../devicetree/bindings/ufs/cdns,ufshc.yaml | 2 +
.../devicetree/bindings/usb/analogix,anx7411.yaml | 2 +-
.../devicetree/bindings/usb/cdns,usb3.yaml | 2 +-
Documentation/devicetree/bindings/usb/dwc2.yaml | 5 +-
.../devicetree/bindings/usb/faraday,fotg210.yaml | 2 +-
.../devicetree/bindings/usb/generic-ehci.yaml | 1 +
.../devicetree/bindings/usb/generic-ohci.yaml | 1 +
.../devicetree/bindings/usb/genesys,gl850g.yaml | 48 +
.../devicetree/bindings/usb/ingenic,musb.yaml | 2 +-
.../bindings/usb/marvell,pxau2o-ehci.yaml | 2 +-
.../devicetree/bindings/usb/maxim,max33359.yaml | 2 +-
.../bindings/usb/mediatek,mt6360-tcpc.yaml | 2 +-
.../devicetree/bindings/usb/mediatek,mtk-xhci.yaml | 1 +
.../devicetree/bindings/usb/mediatek,mtu3.yaml | 1 +
.../devicetree/bindings/usb/nvidia,tegra-xudc.yaml | 2 +-
.../bindings/usb/nvidia,tegra124-xusb.txt | 132 -
.../bindings/usb/nvidia,tegra124-xusb.yaml | 200 +
.../bindings/usb/nvidia,tegra186-xusb.yaml | 171 +
.../bindings/usb/nvidia,tegra194-xusb.yaml | 175 +
.../bindings/usb/nvidia,tegra210-xusb.yaml | 195 +
.../devicetree/bindings/usb/nxp,isp1760.yaml | 2 +-
.../devicetree/bindings/usb/qcom,dwc3.yaml | 3 +
.../devicetree/bindings/usb/realtek,rts5411.yaml | 2 +-
.../devicetree/bindings/usb/richtek,rt1719.yaml | 2 +-
.../devicetree/bindings/usb/st,stusb160x.yaml | 2 +-
.../devicetree/bindings/usb/ti,j721e-usb.yaml | 2 +-
.../devicetree/bindings/usb/ti,tps6598x.yaml | 2 +-
.../devicetree/bindings/usb/ti,usb8041.yaml | 2 +-
.../devicetree/bindings/usb/usb-device.yaml | 2 +-
Documentation/devicetree/bindings/usb/usb-drd.yaml | 1 +
.../devicetree/bindings/usb/usb-nop-xceiv.yaml | 5 +
Documentation/devicetree/bindings/usb/usb251xb.txt | 89 -
.../devicetree/bindings/usb/usb251xb.yaml | 271 +
.../devicetree/bindings/usb/willsemi,wusb3801.yaml | 2 +-
.../devicetree/bindings/vendor-prefixes.yaml | 76 +-
.../devicetree/bindings/virtio/virtio-device.yaml | 2 +-
.../devicetree/bindings/watchdog/fsl,scu-wdt.yaml | 2 +-
.../devicetree/bindings/watchdog/gpio-wdt.txt | 28 -
.../bindings/watchdog/linux,wdt-gpio.yaml | 55 +
.../bindings/watchdog/mediatek,mtk-wdt.yaml | 80 +
.../devicetree/bindings/watchdog/mtk-wdt.txt | 42 -
.../bindings/watchdog/st,stm32-iwdg.yaml | 2 +-
.../devicetree/bindings/watchdog/watchdog.yaml | 2 +-
Documentation/doc-guide/sphinx.rst | 16 +-
Documentation/driver-api/driver-model/devres.rst | 13 +
Documentation/driver-api/eisa.rst | 2 +-
Documentation/driver-api/gpio/legacy.rst | 5 -
Documentation/driver-api/phy/phy.rst | 25 +-
Documentation/driver-api/pin-control.rst | 10 +-
Documentation/driver-api/serial/driver.rst | 3 +
Documentation/driver-api/serial/serial-rs485.rst | 56 +-
Documentation/driver-api/spi.rst | 4 +-
Documentation/fault-injection/fault-injection.rst | 10 +-
.../features/core/cBPF-JIT/arch-support.txt | 2 +-
.../features/core/eBPF-JIT/arch-support.txt | 2 +-
.../core/generic-idle-thread/arch-support.txt | 2 +-
.../features/core/jump-labels/arch-support.txt | 4 +-
.../core/thread-info-in-task/arch-support.txt | 2 +-
.../features/core/tracehook/arch-support.txt | 2 +-
.../features/debug/KASAN/arch-support.txt | 4 +-
.../debug/debug-vm-pgtable/arch-support.txt | 2 +-
.../debug/gcov-profile-all/arch-support.txt | 2 +-
Documentation/features/debug/kcov/arch-support.txt | 2 +-
Documentation/features/debug/kgdb/arch-support.txt | 2 +-
.../features/debug/kmemleak/arch-support.txt | 2 +-
.../debug/kprobes-on-ftrace/arch-support.txt | 2 +-
.../features/debug/kprobes/arch-support.txt | 2 +-
.../features/debug/kretprobes/arch-support.txt | 2 +-
.../features/debug/optprobes/arch-support.txt | 2 +-
.../features/debug/stackprotector/arch-support.txt | 2 +-
.../features/debug/uprobes/arch-support.txt | 2 +-
.../debug/user-ret-profiler/arch-support.txt | 2 +-
.../features/io/dma-contiguous/arch-support.txt | 2 +-
.../locking/cmpxchg-local/arch-support.txt | 2 +-
.../features/locking/lockdep/arch-support.txt | 2 +-
.../locking/queued-rwlocks/arch-support.txt | 2 +-
.../locking/queued-spinlocks/arch-support.txt | 4 +-
.../features/perf/kprobes-event/arch-support.txt | 2 +-
.../features/perf/perf-regs/arch-support.txt | 2 +-
.../features/perf/perf-stackdump/arch-support.txt | 2 +-
.../sched/membarrier-sync-core/arch-support.txt | 2 +-
.../features/sched/numa-balancing/arch-support.txt | 2 +-
Documentation/features/scripts/features-refresh.sh | 2 +-
.../seccomp/seccomp-filter/arch-support.txt | 2 +-
.../time/arch-tick-broadcast/arch-support.txt | 2 +-
.../features/time/clockevents/arch-support.txt | 2 +-
.../time/context-tracking/arch-support.txt | 2 +-
.../features/time/irq-time-acct/arch-support.txt | 2 +-
.../features/time/virt-cpuacct/arch-support.txt | 2 +-
.../features/vm/ELF-ASLR/arch-support.txt | 2 +-
.../features/vm/PG_uncached/arch-support.txt | 2 +-
Documentation/features/vm/THP/arch-support.txt | 2 +-
Documentation/features/vm/TLB/arch-support.txt | 2 +-
.../features/vm/huge-vmap/arch-support.txt | 4 +-
.../features/vm/ioremap_prot/arch-support.txt | 2 +-
.../features/vm/pte_special/arch-support.txt | 2 +-
Documentation/filesystems/configfs.rst | 48 -
Documentation/filesystems/debugfs.rst | 8 +-
Documentation/filesystems/erofs.rst | 38 +-
Documentation/filesystems/f2fs.rst | 13 +-
Documentation/filesystems/fscrypt.rst | 7 +
Documentation/filesystems/locking.rst | 10 +-
Documentation/filesystems/mount_api.rst | 12 +-
Documentation/filesystems/ntfs3.rst | 19 +
Documentation/filesystems/porting.rst | 4 +-
Documentation/filesystems/proc.rst | 28 +-
Documentation/filesystems/sysfs.rst | 41 +-
Documentation/filesystems/vfs.rst | 5 +-
Documentation/gpu/amdgpu/amdgpu-glossary.rst | 23 +
Documentation/gpu/amdgpu/driver-core.rst | 4 +-
Documentation/gpu/amdgpu/index.rst | 2 +-
Documentation/hwmon/aquacomputer_d5next.rst | 4 +-
Documentation/hwmon/index.rst | 2 +
Documentation/hwmon/oxp-sensors.rst | 44 +
Documentation/hwmon/smpro-hwmon.rst | 102 +
Documentation/ia64/aliasing.rst | 2 +-
Documentation/kernel-hacking/locking.rst | 17 +-
Documentation/loongarch/booting.rst | 42 +
Documentation/loongarch/index.rst | 1 +
Documentation/loongarch/introduction.rst | 8 +-
.../maintainer/maintainer-entry-profile.rst | 1 +
Documentation/memory-barriers.txt | 2 +-
Documentation/mm/arch_pgtable_helpers.rst | 2 +-
Documentation/mm/slub.rst | 2 +
Documentation/mm/transhuge.rst | 34 +-
Documentation/networking/bonding.rst | 4 +-
Documentation/networking/can.rst | 33 +
.../ethernet/freescale/dpaa2/mac-phy-support.rst | 9 +-
.../device_drivers/ethernet/marvell/octeon_ep.rst | 1 +
.../device_drivers/ethernet/mellanox/mlx5.rst | 124 +-
.../device_drivers/ethernet/netronome/nfp.rst | 165 +-
Documentation/networking/devlink/devlink-info.rst | 5 +
Documentation/networking/devlink/devlink-port.rst | 168 +-
.../networking/devlink/devlink-region.rst | 13 +
Documentation/networking/devlink/devlink-trap.rst | 13 +
Documentation/networking/devlink/etas_es58x.rst | 36 +
Documentation/networking/devlink/ice.rst | 128 +-
Documentation/networking/devlink/index.rst | 1 +
Documentation/networking/ethtool-netlink.rst | 32 +-
Documentation/networking/generic_netlink.rst | 2 +-
Documentation/networking/index.rst | 1 +
Documentation/networking/ip-sysctl.rst | 111 +
Documentation/networking/ipvs-sysctl.rst | 24 +-
Documentation/networking/nf_conntrack-sysctl.rst | 33 +
Documentation/networking/tc-queue-filters.rst | 37 +
Documentation/networking/timestamping.rst | 32 +-
Documentation/networking/xfrm_device.rst | 62 +-
Documentation/nvme/feature-and-quirk-policy.rst | 77 +
Documentation/powerpc/cpu_families.rst | 13 +
Documentation/process/changes.rst | 4 +-
Documentation/process/kernel-docs.rst | 477 +-
Documentation/riscv/patch-acceptance.rst | 22 +-
Documentation/riscv/vm-layout.rst | 36 +
Documentation/scsi/scsi_eh.rst | 7 +-
Documentation/security/keys/trusted-encrypted.rst | 3 +-
Documentation/sphinx-static/custom.css | 29 +
Documentation/sphinx/requirements.txt | 1 -
Documentation/subsystem-apis.rst | 1 +
Documentation/timers/hrtimers.rst | 2 +-
Documentation/tools/index.rst | 1 +
Documentation/tools/rv/Makefile | 52 +
Documentation/tools/rv/common_appendix.rst | 16 +
Documentation/tools/rv/common_ikm.rst | 21 +
Documentation/tools/rv/index.rst | 24 +
Documentation/tools/rv/rv-list.rst | 43 +
Documentation/tools/rv/rv-mon-wip.rst | 44 +
Documentation/tools/rv/rv-mon-wwnr.rst | 43 +
Documentation/tools/rv/rv-mon.rst | 55 +
Documentation/tools/rv/rv.rst | 63 +
Documentation/trace/ftrace.rst | 2 +-
Documentation/trace/histogram.rst | 10 +-
Documentation/trace/kprobes.rst | 3 +-
Documentation/trace/kprobetrace.rst | 8 +-
Documentation/trace/osnoise-tracer.rst | 32 +-
Documentation/translations/index.rst | 1 +
.../translations/it_IT/kernel-hacking/locking.rst | 14 +-
Documentation/translations/ja_JP/howto.rst | 66 +-
.../translations/ko_KR/memory-barriers.txt | 149 +-
Documentation/translations/sp_SP/disclaimer-sp.rst | 6 +
Documentation/translations/sp_SP/howto.rst | 617 +
Documentation/translations/sp_SP/index.rst | 81 +
.../translations/sp_SP/memory-barriers.txt | 3134 ++
.../translations/sp_SP/process/coding-style.rst | 1315 +
Documentation/translations/sp_SP/process/index.rst | 15 +
.../translations/sp_SP/process/kernel-docs.rst | 187 +
.../sp_SP/process/submitting-patches.rst | 894 +
.../sp_SP/wrappers/memory-barriers.rst | 19 +
.../translations/zh_CN/core-api/errseq.rst | 145 +
.../translations/zh_CN/core-api/index.rst | 6 +-
.../translations/zh_CN/core-api/local_ops.rst | 2 +-
.../translations/zh_CN/core-api/this_cpu_ops.rst | 285 +
.../translations/zh_CN/doc-guide/index.rst | 2 +-
Documentation/translations/zh_CN/index.rst | 11 +-
.../translations/zh_CN/loongarch/booting.rst | 48 +
.../translations/zh_CN/loongarch/index.rst | 1 +
.../translations/zh_CN/loongarch/introduction.rst | 12 +-
.../translations/zh_CN/rust/arch-support.rst | 23 +
.../translations/zh_CN/rust/coding-guidelines.rst | 192 +
.../zh_CN/rust/general-information.rst | 75 +
Documentation/translations/zh_CN/rust/index.rst | 28 +
.../translations/zh_CN/rust/quick-start.rst | 211 +
Documentation/translations/zh_CN/staging/index.rst | 26 +
Documentation/translations/zh_CN/staging/xz.rst | 100 +
.../zh_CN/userspace-api/accelerators/ocxl.rst | 168 +
.../zh_CN/userspace-api/ebpf/index.rst | 22 +
.../zh_CN/userspace-api/ebpf/syscall.rst | 29 +
.../translations/zh_CN/userspace-api/futex2.rst | 80 +
.../translations/zh_CN/userspace-api/index.rst | 50 +
.../zh_CN/userspace-api/no_new_privs.rst | 57 +
.../zh_CN/userspace-api/seccomp_filter.rst | 293 +
.../zh_CN/userspace-api/sysfs-platform_profile.rst | 40 +
Documentation/usb/CREDITS | 6 +-
Documentation/usb/functionfs.rst | 2 +-
Documentation/usb/gadget_multi.rst | 2 +-
Documentation/userspace-api/index.rst | 1 +
Documentation/userspace-api/ioctl/ioctl-number.rst | 1 +
Documentation/userspace-api/iommufd.rst | 223 +
Documentation/userspace-api/landlock.rst | 67 +-
Documentation/userspace-api/media/Makefile | 3 +-
.../userspace-api/media/cec/cec-pin-error-inj.rst | 2 +
.../userspace-api/media/drivers/aspeed-video.rst | 65 +
.../userspace-api/media/drivers/index.rst | 2 +
.../userspace-api/media/drivers/st-vgxy61.rst | 25 +
.../media/dvb/fe_property_parameters.rst | 25 +-
.../userspace-api/media/frontend.h.rst.exceptions | 28 +
Documentation/userspace-api/media/v4l/buffer.rst | 11 +-
.../userspace-api/media/v4l/ext-ctrls-camera.rst | 8 +
.../userspace-api/media/v4l/pixfmt-reserved.rst | 17 +
.../userspace-api/media/v4l/pixfmt-yuv-planar.rst | 8 +
.../userspace-api/media/v4l/subdev-formats.rst | 37 +
Documentation/virt/coco/tdx-guest.rst | 52 +
Documentation/virt/index.rst | 1 +
Documentation/virt/kvm/api.rst | 331 +-
Documentation/virt/kvm/arm/pvtime.rst | 14 +-
Documentation/virt/kvm/devices/arm-vgic-its.rst | 5 +-
Documentation/virt/kvm/devices/vcpu.rst | 2 +
Documentation/virt/kvm/{x86 => }/halt-polling.rst | 13 +
Documentation/virt/kvm/index.rst | 1 +
Documentation/virt/kvm/locking.rst | 19 +-
Documentation/virt/kvm/x86/index.rst | 1 -
Documentation/x86/boot.rst | 1 +
Documentation/x86/tdx.rst | 43 +
LICENSES/dual/copyleft-next-0.3.1 | 236 +
MAINTAINERS | 458 +-
Makefile | 52 +-
arch/Kconfig | 36 +-
arch/alpha/include/asm/elf.h | 6 -
arch/alpha/include/asm/pgtable.h | 2 -
arch/alpha/include/asm/ptrace.h | 1 -
arch/alpha/include/asm/thread_info.h | 6 +-
arch/alpha/kernel/entry.S | 14 +-
arch/alpha/kernel/process.c | 8 +-
arch/arc/include/asm/pgtable-bits-arcv2.h | 2 -
arch/arc/kernel/ptrace.c | 2 +-
arch/arm/Kconfig | 26 +-
arch/arm/Makefile | 81 +-
arch/arm/boot/compressed/Makefile | 4 +-
arch/arm/boot/dts/Makefile | 13 +-
arch/arm/boot/dts/am335x-baltos-leds.dtsi | 6 +-
arch/arm/boot/dts/am335x-boneblack-hdmi.dtsi | 7 +-
arch/arm/boot/dts/am335x-evm.dts | 4 +-
arch/arm/boot/dts/am335x-evmsk.dts | 2 +-
arch/arm/boot/dts/am335x-guardian.dts | 3 +-
arch/arm/boot/dts/am335x-igep0033.dtsi | 4 +-
arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi | 10 +-
arch/arm/boot/dts/am335x-moxa-uc-8100-common.dtsi | 10 +-
arch/arm/boot/dts/am335x-myirtech-myd.dts | 7 +-
arch/arm/boot/dts/am335x-pcm-953.dtsi | 28 +-
arch/arm/boot/dts/am335x-pepper.dts | 4 +-
arch/arm/boot/dts/am335x-pocketbeagle.dts | 8 +-
arch/arm/boot/dts/am3517-evm.dts | 18 +-
arch/arm/boot/dts/am3517.dtsi | 38 +-
arch/arm/boot/dts/am437x-idk-evm.dts | 2 +-
arch/arm/boot/dts/am437x-sk-evm.dts | 2 +-
arch/arm/boot/dts/am43x-epos-evm.dts | 2 +-
arch/arm/boot/dts/am57xx-idk-common.dtsi | 2 +-
arch/arm/boot/dts/armada-370-dlink-dns327l.dts | 6 +-
arch/arm/boot/dts/armada-370-netgear-rn102.dts | 10 +-
arch/arm/boot/dts/armada-370-netgear-rn104.dts | 10 +-
arch/arm/boot/dts/armada-370-rd.dts | 16 +-
arch/arm/boot/dts/armada-370-seagate-nas-4bay.dts | 4 +-
arch/arm/boot/dts/armada-370-seagate-nas-xbay.dtsi | 8 +-
.../dts/armada-370-seagate-personal-cloud.dtsi | 2 +-
arch/arm/boot/dts/armada-370-synology-ds213j.dts | 6 +-
arch/arm/boot/dts/armada-370.dtsi | 2 +-
arch/arm/boot/dts/armada-375.dtsi | 14 +-
arch/arm/boot/dts/armada-380.dtsi | 4 +-
arch/arm/boot/dts/armada-385-linksys-caiman.dts | 4 +-
arch/arm/boot/dts/armada-385-linksys-cobra.dts | 4 +-
arch/arm/boot/dts/armada-385-linksys-rango.dts | 8 +-
arch/arm/boot/dts/armada-385-linksys-shelby.dts | 4 +-
arch/arm/boot/dts/armada-385-linksys.dtsi | 4 +-
arch/arm/boot/dts/armada-385-synology-ds116.dts | 2 +-
arch/arm/boot/dts/armada-385-turris-omnia.dts | 18 +-
arch/arm/boot/dts/armada-385.dtsi | 6 +-
arch/arm/boot/dts/armada-38x.dtsi | 4 +-
arch/arm/boot/dts/armada-39x.dtsi | 10 +-
arch/arm/boot/dts/armada-xp-98dx3236.dtsi | 1 +
arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 2 +-
arch/arm/boot/dts/armada-xp-mv78230.dtsi | 8 +-
arch/arm/boot/dts/armada-xp-mv78260.dtsi | 16 +-
arch/arm/boot/dts/armada-xp-netgear-rn2120.dts | 10 +-
arch/arm/boot/dts/armada-xp.dtsi | 1 +
arch/arm/boot/dts/aspeed-bmc-ampere-mtjade.dts | 12 +
arch/arm/boot/dts/aspeed-bmc-ampere-mtmitchell.dts | 4 +
arch/arm/boot/dts/aspeed-bmc-delta-ahe50dc.dts | 418 +
.../arm/boot/dts/aspeed-bmc-facebook-bletchley.dts | 213 +-
.../boot/dts/aspeed-bmc-facebook-cloudripper.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-facebook-elbert.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-facebook-fuji.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-facebook-wedge400.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-ibm-bonnell.dts | 921 +
arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts | 57 +-
arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts | 244 +-
arch/arm/boot/dts/aspeed-bmc-opp-mihawk.dts | 1381 -
arch/arm/boot/dts/aspeed-g6.dtsi | 4 +
.../boot/dts/ast2600-facebook-netbmc-common.dtsi | 2 +-
arch/arm/boot/dts/at91-sam9x60ek.dts | 4 -
arch/arm/boot/dts/at91-sama7g5ek.dts | 5 +-
arch/arm/boot/dts/at91rm9200.dtsi | 2 +-
arch/arm/boot/dts/at91sam9g20ek_common.dtsi | 9 +
arch/arm/boot/dts/axp22x.dtsi | 6 +
arch/arm/boot/dts/axp809.dtsi | 7 +
arch/arm/boot/dts/axp81x.dtsi | 14 -
arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 31 +-
arch/arm/boot/dts/bcm2711-rpi-400.dts | 16 +-
arch/arm/boot/dts/bcm2711-rpi-cm4-io.dts | 27 +-
arch/arm/boot/dts/bcm2711-rpi-cm4.dtsi | 4 +-
arch/arm/boot/dts/bcm2711.dtsi | 95 +-
arch/arm/boot/dts/bcm2835-common.dtsi | 18 +-
arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 28 +-
arch/arm/boot/dts/bcm2835-rpi-a.dts | 12 +-
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 28 +-
arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 12 +-
arch/arm/boot/dts/bcm2835-rpi-b.dts | 12 +-
arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi | 6 +
arch/arm/boot/dts/bcm2835-rpi-common.dtsi | 17 +
arch/arm/boot/dts/bcm2835-rpi-zero-w.dts | 12 +-
arch/arm/boot/dts/bcm2835-rpi-zero.dts | 12 +-
arch/arm/boot/dts/bcm2835-rpi.dtsi | 10 -
arch/arm/boot/dts/bcm2835.dtsi | 1 -
arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 27 +-
arch/arm/boot/dts/bcm2836-rpi.dtsi | 1 +
arch/arm/boot/dts/bcm2836.dtsi | 4 +-
arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts | 27 +-
arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 27 +-
arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 11 +-
arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi | 8 -
arch/arm/boot/dts/bcm2837-rpi-zero-2-w.dts | 11 +-
arch/arm/boot/dts/bcm2837.dtsi | 2 +-
arch/arm/boot/dts/bcm283x-rpi-led-deprecated.dtsi | 18 +
arch/arm/boot/dts/bcm283x.dtsi | 70 +-
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts | 15 +-
arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts | 8 +-
.../dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi | 16 +-
arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 16 +-
arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 6 +-
arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 2 +-
arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 10 +-
arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts | 10 +-
arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 22 +-
arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts | 10 +-
arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 14 +-
arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts | 16 +-
arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 6 +-
arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 20 +-
arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts | 43 +-
arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 6 +-
arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 18 +-
arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 16 +-
arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 22 +-
arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts | 43 +-
arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts | 12 +-
arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 14 +-
arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts | 211 +
arch/arm/boot/dts/bcm47094-linksys-panamera.dts | 28 +-
arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 4 +-
arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts | 6 +-
arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 4 +-
arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 2 +-
arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 20 +-
arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 10 +-
arch/arm/boot/dts/bcm47094-netgear-r8500.dts | 14 +-
arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts | 4 +-
arch/arm/boot/dts/bcm47189-luxul-xap-810.dts | 10 +-
arch/arm/boot/dts/bcm47189-tenda-ac9.dts | 14 +-
arch/arm/boot/dts/bcm47622.dtsi | 1 +
arch/arm/boot/dts/bcm53016-dlink-dwl-8610ap.dts | 131 +
arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 6 +-
arch/arm/boot/dts/bcm63148.dtsi | 1 +
arch/arm/boot/dts/bcm63178.dtsi | 1 +
arch/arm/boot/dts/bcm6756.dtsi | 1 +
arch/arm/boot/dts/bcm6846.dtsi | 1 +
arch/arm/boot/dts/bcm6855.dtsi | 1 +
arch/arm/boot/dts/bcm6878.dtsi | 1 +
arch/arm/boot/dts/bcm947189acdbmr.dts | 6 +-
arch/arm/boot/dts/dove.dtsi | 2 +-
arch/arm/boot/dts/dra7-evm-common.dtsi | 2 +-
arch/arm/boot/dts/dra7-evm.dts | 2 +-
arch/arm/boot/dts/dra72-evm-common.dtsi | 4 +-
arch/arm/boot/dts/e60k02.dtsi | 11 +-
arch/arm/boot/dts/exynos3250.dtsi | 2 +-
arch/arm/boot/dts/imx6dl-colibri-aster.dts | 1 -
arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts | 1 -
arch/arm/boot/dts/imx6dl-colibri-iris.dts | 1 -
arch/arm/boot/dts/imx6q-prti6q.dts | 4 +-
arch/arm/boot/dts/imx6qdl-colibri.dtsi | 22 +-
arch/arm/boot/dts/imx6qdl-pico.dtsi | 1 -
arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | 4 +-
arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 5 +
arch/arm/boot/dts/imx6qdl-sabresd.dtsi | 8 +-
arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 1 -
arch/arm/boot/dts/imx6sl-kobo-aura2.dts | 555 +
arch/arm/boot/dts/imx6sl-tolino-shine2hd.dts | 30 +-
arch/arm/boot/dts/imx6sl-tolino-shine3.dts | 7 +
arch/arm/boot/dts/imx6sll-kobo-clarahd.dts | 7 +
arch/arm/boot/dts/imx6sx.dtsi | 2 +-
arch/arm/boot/dts/imx6ul-phytec-phycore-som.dtsi | 4 +
arch/arm/boot/dts/imx6ull-colibri-aster.dts | 40 +
arch/arm/boot/dts/imx6ull-colibri-eval-v3.dts | 24 +
arch/arm/boot/dts/imx6ull-colibri-iris-v2.dts | 48 +-
arch/arm/boot/dts/imx6ull-colibri-iris.dts | 22 +-
arch/arm/boot/dts/imx6ull-colibri-iris.dtsi | 4 +-
arch/arm/boot/dts/imx6ull-colibri-wifi-aster.dts | 40 +
arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dts | 24 +
arch/arm/boot/dts/imx6ull-colibri-wifi-iris-v2.dts | 32 +-
arch/arm/boot/dts/imx6ull-colibri-wifi-iris.dts | 20 +
arch/arm/boot/dts/imx6ull-colibri.dtsi | 37 +-
arch/arm/boot/dts/imx7-colibri.dtsi | 5 +-
arch/arm/boot/dts/imx7d-remarkable2.dts | 62 +
arch/arm/boot/dts/imx7s.dtsi | 4 +-
arch/arm/boot/dts/kirkwood-b3.dts | 2 +-
arch/arm/boot/dts/kirkwood-db-88f6281.dts | 2 +-
arch/arm/boot/dts/kirkwood-db-88f6282.dts | 2 +-
arch/arm/boot/dts/kirkwood-dir665.dts | 14 +-
arch/arm/boot/dts/kirkwood-ds112.dts | 2 +-
arch/arm/boot/dts/kirkwood-ds411.dts | 2 +-
arch/arm/boot/dts/kirkwood-iconnect.dts | 2 +-
arch/arm/boot/dts/kirkwood-km_common.dtsi | 2 +-
arch/arm/boot/dts/kirkwood-l-50.dts | 24 +-
arch/arm/boot/dts/kirkwood-laplug.dts | 2 +-
arch/arm/boot/dts/kirkwood-linkstation.dtsi | 2 +-
arch/arm/boot/dts/kirkwood-mplcec4.dts | 16 +-
arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts | 2 +-
arch/arm/boot/dts/kirkwood-nas2big.dts | 2 +-
arch/arm/boot/dts/kirkwood-net2big.dts | 10 +-
arch/arm/boot/dts/kirkwood-net5big.dts | 10 +-
.../boot/dts/kirkwood-netgear_readynas_nv+_v2.dts | 12 +-
arch/arm/boot/dts/kirkwood-nsa310.dts | 2 +-
arch/arm/boot/dts/kirkwood-nsa310s.dts | 259 +
arch/arm/boot/dts/kirkwood-nsa320.dts | 2 +-
arch/arm/boot/dts/kirkwood-nsa325.dts | 2 +-
arch/arm/boot/dts/kirkwood-nsa3x0-common.dtsi | 2 +-
arch/arm/boot/dts/kirkwood-rd88f6192.dts | 60 +-
arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts | 2 +-
arch/arm/boot/dts/kirkwood-rd88f6281.dtsi | 4 +-
arch/arm/boot/dts/kirkwood-rs212.dts | 2 +-
arch/arm/boot/dts/kirkwood-synology.dtsi | 2 +-
arch/arm/boot/dts/kirkwood-t5325.dts | 2 +-
arch/arm/boot/dts/kirkwood-ts219.dtsi | 4 +-
arch/arm/boot/dts/kirkwood.dtsi | 34 +-
arch/arm/boot/dts/lan966x-pcb8290.dts | 16 +
arch/arm/boot/dts/lan966x.dtsi | 5 +
arch/arm/boot/dts/logicpd-torpedo-baseboard.dtsi | 2 +-
arch/arm/boot/dts/logicpd-torpedo-som.dtsi | 2 +-
arch/arm/boot/dts/lpc32xx.dtsi | 2 +-
arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts | 10 +-
arch/arm/boot/dts/motorola-mapphone-common.dtsi | 4 +-
arch/arm/boot/dts/nuvoton-npcm730-gbs.dts | 2 +-
arch/arm/boot/dts/nuvoton-npcm730-gsj.dts | 2 +-
arch/arm/boot/dts/nuvoton-npcm730-kudo.dts | 6 +-
arch/arm/boot/dts/nuvoton-npcm750-evb.dts | 4 +-
.../boot/dts/nuvoton-npcm750-runbmc-olympus.dts | 6 +-
.../dts/nuvoton-wpcm450-supermicro-x9sci-ln4f.dts | 36 +-
arch/arm/boot/dts/nuvoton-wpcm450.dtsi | 34 +-
arch/arm/boot/dts/omap-gpmc-smsc911x.dtsi | 6 +-
arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi | 6 +-
arch/arm/boot/dts/omap3-beagle.dts | 6 +-
arch/arm/boot/dts/omap3-cm-t3517.dts | 12 +-
arch/arm/boot/dts/omap3-devkit8000-common.dtsi | 8 +-
arch/arm/boot/dts/omap3-echo.dts | 2 +-
arch/arm/boot/dts/omap3-gta04.dtsi | 8 +-
arch/arm/boot/dts/omap3-ldp.dts | 2 +-
arch/arm/boot/dts/omap3-n900.dts | 42 +-
arch/arm/boot/dts/omap3-overo-alto35-common.dtsi | 8 +-
.../boot/dts/omap3-overo-chestnut43-common.dtsi | 4 +-
arch/arm/boot/dts/omap3-overo-gallop43-common.dtsi | 4 +-
arch/arm/boot/dts/omap3-overo-palo35-common.dtsi | 4 +-
arch/arm/boot/dts/omap3-overo-palo43-common.dtsi | 4 +-
arch/arm/boot/dts/omap3-overo-summit-common.dtsi | 2 +-
arch/arm/boot/dts/omap3-overo-tobi-common.dtsi | 2 +-
arch/arm/boot/dts/omap3-zoom3.dts | 44 +-
arch/arm/boot/dts/omap3.dtsi | 40 +-
arch/arm/boot/dts/omap34xx.dtsi | 4 +
arch/arm/boot/dts/omap36xx.dtsi | 4 +
arch/arm/boot/dts/omap4-cpu-thermal.dtsi | 24 +-
arch/arm/boot/dts/omap4-panda-common.dtsi | 4 +-
arch/arm/boot/dts/omap4-panda-es.dts | 4 +-
arch/arm/boot/dts/omap5-cm-t54.dts | 64 +-
arch/arm/boot/dts/pxa168.dtsi | 2 +
arch/arm/boot/dts/qcom-apq8026-asus-sparrow.dts | 2 +-
arch/arm/boot/dts/qcom-apq8026-huawei-sturgeon.dts | 376 +
arch/arm/boot/dts/qcom-apq8026-lg-lenok.dts | 9 +-
.../boot/dts/qcom-apq8026-samsung-matisse-wifi.dts | 453 +
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | 1754 +-
arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts | 524 +-
arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts | 390 +-
arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 561 +-
.../dts/qcom-apq8064-sony-xperia-lagan-yuga.dts | 650 +-
arch/arm/boot/dts/qcom-apq8064.dtsi | 149 +-
arch/arm/boot/dts/qcom-apq8074-dragonboard.dts | 60 +-
arch/arm/boot/dts/qcom-apq8084.dtsi | 10 +-
arch/arm/boot/dts/qcom-ipq4018-ap120c-ac-bit.dts | 6 +-
arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dts | 6 +-
arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dtsi | 2 +-
arch/arm/boot/dts/qcom-ipq4018-jalapeno.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019.dtsi | 2 +-
arch/arm/boot/dts/qcom-ipq8064-rb3011.dts | 5 +-
arch/arm/boot/dts/qcom-ipq8064.dtsi | 7 +-
.../boot/dts/qcom-mdm9615-wp8548-mangoh-green.dts | 59 +-
arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi | 61 +-
arch/arm/boot/dts/qcom-mdm9615.dtsi | 123 +-
arch/arm/boot/dts/qcom-msm8226-samsung-s3ve3g.dts | 1 +
arch/arm/boot/dts/qcom-msm8226.dtsi | 78 +-
arch/arm/boot/dts/qcom-msm8660.dtsi | 42 +-
arch/arm/boot/dts/qcom-msm8960-cdp.dts | 23 +-
arch/arm/boot/dts/qcom-msm8960.dtsi | 92 +-
.../dts/qcom-msm8974-lge-nexus5-hammerhead.dts | 83 +-
.../dts/qcom-msm8974-sony-xperia-rhine-amami.dts | 1 +
.../dts/qcom-msm8974-sony-xperia-rhine-honami.dts | 1 +
.../boot/dts/qcom-msm8974-sony-xperia-rhine.dtsi | 70 +-
arch/arm/boot/dts/qcom-msm8974.dtsi | 174 +-
.../arm/boot/dts/qcom-msm8974pro-fairphone-fp2.dts | 75 +-
.../arm/boot/dts/qcom-msm8974pro-oneplus-bacon.dts | 417 +
arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts | 83 +-
.../qcom-msm8974pro-sony-xperia-shinano-castor.dts | 86 +-
arch/arm/boot/dts/qcom-pm8226.dtsi | 12 +-
arch/arm/boot/dts/qcom-pm8941.dtsi | 33 +-
arch/arm/boot/dts/qcom-pma8084.dtsi | 19 +-
arch/arm/boot/dts/qcom-pmx65.dtsi | 2 +-
arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts | 45 +-
arch/arm/boot/dts/qcom-sdx55.dtsi | 1 +
arch/arm/boot/dts/qcom-sdx65.dtsi | 4 +-
arch/arm/boot/dts/r8a7742.dtsi | 2 +-
arch/arm/boot/dts/r8a7790.dtsi | 2 +-
arch/arm/boot/dts/r8a7791.dtsi | 2 +-
arch/arm/boot/dts/r8a7793.dtsi | 2 +-
arch/arm/boot/dts/r9a06g032.dtsi | 10 +-
arch/arm/boot/dts/rk3036-evb.dts | 3 +-
arch/arm/boot/dts/rk3066a-mk808.dts | 2 +-
arch/arm/boot/dts/rk3188-radxarock.dts | 2 +-
arch/arm/boot/dts/rk3188.dtsi | 3 +-
arch/arm/boot/dts/rk3288-evb-act8846.dts | 2 +-
arch/arm/boot/dts/rk3288-evb.dtsi | 6 +-
arch/arm/boot/dts/rk3288-firefly.dtsi | 3 +-
arch/arm/boot/dts/rk3288-miqi.dts | 3 +-
arch/arm/boot/dts/rk3288-rock2-square.dts | 3 +-
arch/arm/boot/dts/rk3288-vmarc-som.dtsi | 1 -
arch/arm/boot/dts/rk3xxx.dtsi | 7 +
arch/arm/boot/dts/sama7g5-pinfunc.h | 2 +-
arch/arm/boot/dts/sama7g5.dtsi | 67 +-
arch/arm/boot/dts/socfpga.dtsi | 4 +-
arch/arm/boot/dts/socfpga_arria10.dtsi | 4 +-
arch/arm/boot/dts/socfpga_arria10_mercury_aa1.dtsi | 1 +
arch/arm/boot/dts/socfpga_arria10_socdk_nand.dts | 4 +-
arch/arm/boot/dts/socfpga_arria10_socdk_sdmmc.dts | 1 +
arch/arm/boot/dts/socfpga_arria5.dtsi | 3 +-
arch/arm/boot/dts/socfpga_arria5_socdk.dts | 8 +-
arch/arm/boot/dts/socfpga_cyclone5.dtsi | 3 +-
.../arm/boot/dts/socfpga_cyclone5_de0_nano_soc.dts | 2 +-
arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi | 1 +
arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 8 +-
arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts | 2 +-
arch/arm/boot/dts/socfpga_vt.dts | 2 +-
arch/arm/boot/dts/spear300.dtsi | 2 +-
arch/arm/boot/dts/spear310.dtsi | 2 +-
arch/arm/boot/dts/spear320.dtsi | 2 +-
arch/arm/boot/dts/spear600.dtsi | 32 +-
arch/arm/boot/dts/ste-dbx5x0.dtsi | 6 +-
arch/arm/boot/dts/ste-ux500-samsung-codina-tmo.dts | 2 +-
arch/arm/boot/dts/ste-ux500-samsung-codina.dts | 2 +-
arch/arm/boot/dts/ste-ux500-samsung-gavini.dts | 2 +-
arch/arm/boot/dts/ste-ux500-samsung-janice.dts | 16 +-
arch/arm/boot/dts/ste-ux500-samsung-kyle.dts | 29 +
arch/arm/boot/dts/stih410-b2260.dts | 8 +-
arch/arm/boot/dts/stih418-b2199.dts | 4 +-
arch/arm/boot/dts/stih418-b2264.dts | 2 +-
arch/arm/boot/dts/stihxxx-b2120.dtsi | 4 +-
arch/arm/boot/dts/stm32h743.dtsi | 2 -
arch/arm/boot/dts/stm32mp13-pinctrl.dtsi | 21 +
arch/arm/boot/dts/stm32mp131.dtsi | 126 +-
arch/arm/boot/dts/stm32mp133.dtsi | 31 +
arch/arm/boot/dts/stm32mp135f-dk.dts | 144 +-
arch/arm/boot/dts/stm32mp151.dtsi | 3 -
arch/arm/boot/dts/stm32mp151a-dhcor-testbench.dts | 17 +
arch/arm/boot/dts/stm32mp157a-dhcor-avenger96.dts | 1 -
arch/arm/boot/dts/stm32mp157c-emstamp-argon.dtsi | 2 +-
arch/arm/boot/dts/stm32mp157c-ev1.dts | 15 +-
arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts | 2 +-
arch/arm/boot/dts/stm32mp157c-odyssey.dts | 2 +-
arch/arm/boot/dts/stm32mp15xx-dhcom-pdk2.dtsi | 4 +-
arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi | 2 +-
arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi | 7 +-
.../boot/dts/stm32mp15xx-dhcor-drc-compact.dtsi | 2 +-
arch/arm/boot/dts/stm32mp15xx-dhcor-testbench.dtsi | 171 +
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 6 +-
arch/arm/boot/dts/suniv-f1c100s.dtsi | 70 +
arch/arm/boot/dts/sunplus-sp7021.dtsi | 3 -
arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi | 14 +-
arch/arm/boot/dts/sunxi-h3-h5.dtsi | 4 +
arch/arm/boot/dts/tegra114-asus-tf701t.dts | 24 +-
arch/arm/boot/dts/tegra124-nyan-big.dts | 3 +-
arch/arm/boot/dts/tegra124-nyan-blaze.dts | 3 +-
arch/arm/boot/dts/tegra124-venice2.dts | 3 +-
arch/arm/boot/dts/tegra20-acer-a500-picasso.dts | 6 +-
arch/arm/boot/dts/tegra20-asus-tf101.dts | 8 +-
arch/arm/boot/dts/tegra20-seaboard.dts | 6 +-
arch/arm/boot/dts/tegra20-tamonten.dtsi | 6 +-
arch/arm/boot/dts/tegra20-ventana.dts | 6 +-
.../boot/dts/tegra30-asus-transformer-common.dtsi | 10 +-
arch/arm/boot/dts/tegra30-pegatron-chagall.dts | 11 +-
arch/arm/boot/dts/uniphier-pro5-epcore.dts | 76 +
arch/arm/boot/dts/uniphier-pro5-proex.dts | 59 +
arch/arm/boot/dts/vexpress-v2m.dtsi | 16 +-
arch/arm/boot/dts/vf610-zii-dev-rev-c.dts | 2 +-
arch/arm/common/Makefile | 2 -
arch/arm/common/mcpm_head.S | 2 +
arch/arm/common/vlock.S | 2 +
arch/arm/configs/clps711x_defconfig | 3 +-
arch/arm/configs/collie_defconfig | 3 +-
arch/arm/configs/imx_v6_v7_defconfig | 5 +
arch/arm/configs/multi_v4t_defconfig | 3 +-
arch/arm/configs/multi_v7_defconfig | 8 +-
arch/arm/configs/omap1_defconfig | 3 +-
arch/arm/configs/pxa_defconfig | 3 +-
arch/arm/configs/qcom_defconfig | 5 +
arch/arm/configs/sama5_defconfig | 2 +-
arch/arm/configs/sama7_defconfig | 11 +-
arch/arm/configs/spear6xx_defconfig | 7 +-
arch/arm/configs/tct_hammer_defconfig | 3 +-
arch/arm/configs/xcep_defconfig | 3 +-
arch/arm/crypto/Kconfig | 2 +-
arch/arm/crypto/aes-cipher-glue.c | 2 +-
arch/arm/crypto/nh-neon-core.S | 2 +-
arch/arm/crypto/nhpoly1305-neon-glue.c | 11 +-
arch/arm/include/asm/assembler.h | 6 +
arch/arm/include/asm/cputype.h | 4 +
arch/arm/include/asm/efi.h | 3 -
arch/arm/include/asm/gpio.h | 1 -
arch/arm/include/asm/module.h | 5 +
arch/arm/include/asm/perf_event.h | 2 +-
arch/arm/include/asm/pgtable-nommu.h | 8 -
arch/arm/include/asm/pgtable.h | 20 +-
arch/arm/include/asm/ptdump.h | 1 +
arch/arm/include/asm/ptrace.h | 4 +
arch/arm/include/asm/stackprotector.h | 9 +-
arch/arm/include/asm/stacktrace.h | 2 +-
arch/arm/include/asm/vfp.h | 6 +
arch/arm/include/asm/xor.h | 4 +-
arch/arm/include/uapi/asm/hwcap.h | 8 +
arch/arm/kernel/Makefile | 2 -
arch/arm/kernel/efi.c | 31 +-
arch/arm/kernel/hyp-stub.S | 2 +
arch/arm/kernel/machine_kexec.c | 4 +-
arch/arm/kernel/module-plts.c | 14 +
arch/arm/kernel/perf_callchain.c | 9 +-
arch/arm/kernel/process.c | 2 +-
arch/arm/kernel/ptrace.c | 8 +-
arch/arm/kernel/return_address.c | 8 +-
arch/arm/kernel/setup.c | 22 +
arch/arm/kernel/smp.c | 5 +-
arch/arm/kernel/stacktrace.c | 119 +-
arch/arm/kernel/swp_emulate.c | 1 +
arch/arm/kernel/traps.c | 25 +-
arch/arm/kernel/unwind.c | 13 +-
arch/arm/lib/Makefile | 6 +-
arch/arm/lib/delay-loop.S | 4 +
arch/arm/lib/error-inject.c | 10 +
arch/arm/lib/findbit.S | 230 +-
arch/arm/mach-at91/Makefile | 3 -
arch/arm/mach-at91/pm_suspend.S | 4 +
arch/arm/mach-at91/sama5.c | 2 +-
arch/arm/mach-imx/Makefile | 3 -
arch/arm/mach-imx/headsmp.S | 2 +
arch/arm/mach-imx/mm-imx3.c | 1 -
arch/arm/mach-imx/resume-imx6.S | 2 +
arch/arm/mach-imx/suspend-imx6.S | 2 +
arch/arm/mach-ixp4xx/ixp4xx-of.c | 42 -
arch/arm/mach-keystone/Makefile | 4 +-
arch/arm/mach-keystone/keystone.c | 2 -
arch/arm/mach-keystone/keystone.h | 5 -
arch/arm/mach-keystone/platsmp.c | 41 -
arch/arm/mach-keystone/smc.S | 26 -
arch/arm/mach-mmp/time.c | 11 +-
arch/arm/mach-mvebu/Makefile | 3 -
arch/arm/mach-mvebu/coherency_ll.S | 1 +
arch/arm/mach-mvebu/pm-board.c | 28 +-
arch/arm/mach-mvebu/pmsu.c | 1 +
arch/arm/mach-mxs/mach-mxs.c | 5 +-
arch/arm/mach-npcm/Makefile | 2 -
arch/arm/mach-npcm/headsmp.S | 2 +
arch/arm/mach-omap1/sram-init.c | 8 +-
arch/arm/mach-omap2/board-n8x0.c | 5 -
arch/arm/mach-omap2/common-board-devices.h | 2 -
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 99 -
arch/arm/mach-omap2/pdata-quirks.c | 2 -
arch/arm/mach-omap2/sram.c | 8 +-
arch/arm/mach-pxa/pxa27x.c | 8 +
arch/arm/mach-pxa/pxa3xx.c | 8 +
arch/arm/mach-s3c/mach-crag6410.c | 1 +
arch/arm/mach-shmobile/Kconfig | 2 -
arch/arm/mach-spear/time.c | 8 +-
arch/arm/mach-tegra/Makefile | 2 -
arch/arm/mach-tegra/reset-handler.S | 2 +
arch/arm/mach-tegra/sleep-tegra20.S | 2 +
arch/arm/mach-tegra/sleep-tegra30.S | 2 +
arch/arm/mach-tegra/sleep.S | 2 +
arch/arm/mach-ux500/cpu-db8500.c | 1 -
arch/arm/mach-ux500/db8500-regs.h | 195 -
arch/arm/mach-ux500/platsmp.c | 2 -
arch/arm/mach-ux500/pm.c | 4 +-
arch/arm/mm/Makefile | 15 -
arch/arm/mm/abort-ev6.S | 1 +
arch/arm/mm/abort-ev7.S | 1 +
arch/arm/mm/cache-v6.S | 2 +
arch/arm/mm/cache-v7.S | 2 +
arch/arm/mm/cache-v7m.S | 2 +
arch/arm/mm/copypage-feroceon.c | 1 +
arch/arm/mm/dma-mapping.c | 17 -
arch/arm/mm/fault.c | 23 +-
arch/arm/mm/fault.h | 9 +-
arch/arm/mm/nommu.c | 19 +
arch/arm/mm/proc-v6.S | 2 +
arch/arm/mm/proc-v7-2level.S | 2 +
arch/arm/mm/proc-v7.S | 2 +
arch/arm/mm/tlb-v6.S | 2 +
arch/arm/mm/tlb-v7.S | 2 +
arch/arm/nwfpe/Makefile | 6 +
arch/arm/vdso/Makefile | 1 +
arch/arm/vfp/vfpmodule.c | 32 +
arch/arm/xen/enlighten.c | 2 +-
arch/arm64/Kconfig | 45 +-
arch/arm64/Kconfig.platforms | 2 -
arch/arm64/Makefile | 17 +-
arch/arm64/boot/dts/allwinner/axp803.dtsi | 10 -
.../boot/dts/allwinner/sun50i-a64-pinebook.dts | 14 +
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 1 +
.../dts/allwinner/sun50i-h616-orangepi-zero2.dts | 41 +
.../boot/dts/allwinner/sun50i-h616-x96-mate.dts | 25 +
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 160 +
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi | 1 +
.../boot/dts/altera/socfpga_stratix10_socdk.dts | 7 +-
.../dts/altera/socfpga_stratix10_socdk_nand.dts | 6 +-
arch/arm64/boot/dts/amlogic/Makefile | 1 +
arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 1 +
arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 1 +
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 6 +
arch/arm64/boot/dts/amlogic/meson-g12a.dtsi | 5 +
.../dts/amlogic/meson-g12b-odroid-go-ultra.dts | 722 +
.../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 42 +
arch/arm64/boot/dts/amlogic/meson-g12b.dtsi | 5 +
arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 1 +
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 14 +
.../dts/amlogic/meson-gxl-s905x-khadas-vim.dts | 1 -
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 14 +
.../boot/dts/amlogic/meson-gxm-khadas-vim2.dts | 1 -
.../boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts | 1 -
arch/arm64/boot/dts/amlogic/meson-sm1.dtsi | 5 +
arch/arm64/boot/dts/apple/Makefile | 6 +
arch/arm64/boot/dts/apple/multi-die-cpp.h | 22 +
arch/arm64/boot/dts/apple/t6000-j314s.dts | 18 +
arch/arm64/boot/dts/apple/t6000-j316s.dts | 18 +
arch/arm64/boot/dts/apple/t6000.dtsi | 18 +
arch/arm64/boot/dts/apple/t6001-j314c.dts | 18 +
arch/arm64/boot/dts/apple/t6001-j316c.dts | 18 +
arch/arm64/boot/dts/apple/t6001-j375c.dts | 18 +
arch/arm64/boot/dts/apple/t6001.dtsi | 63 +
arch/arm64/boot/dts/apple/t6002-j375d.dts | 50 +
arch/arm64/boot/dts/apple/t6002.dtsi | 301 +
arch/arm64/boot/dts/apple/t600x-common.dtsi | 374 +
arch/arm64/boot/dts/apple/t600x-die0.dtsi | 361 +
arch/arm64/boot/dts/apple/t600x-dieX.dtsi | 121 +
arch/arm64/boot/dts/apple/t600x-gpio-pins.dtsi | 45 +
arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi | 114 +
arch/arm64/boot/dts/apple/t600x-j375.dtsi | 117 +
arch/arm64/boot/dts/apple/t600x-nvme.dtsi | 42 +
arch/arm64/boot/dts/apple/t600x-pmgr.dtsi | 2012 +
arch/arm64/boot/dts/apple/t8103-j274.dts | 4 +
arch/arm64/boot/dts/apple/t8103-j293.dts | 4 +
arch/arm64/boot/dts/apple/t8103-j313.dts | 4 +
arch/arm64/boot/dts/apple/t8103-j456.dts | 6 +-
arch/arm64/boot/dts/apple/t8103-j457.dts | 6 +-
arch/arm64/boot/dts/apple/t8103-jxxx.dtsi | 12 +
arch/arm64/boot/dts/apple/t8103-pmgr.dtsi | 2 +-
arch/arm64/boot/dts/apple/t8103.dtsi | 322 +-
arch/arm64/boot/dts/arm/corstone1000.dtsi | 1 +
arch/arm64/boot/dts/arm/foundation-v8.dtsi | 6 +
arch/arm64/boot/dts/arm/fvp-base-revc.dts | 73 +
arch/arm64/boot/dts/arm/juno-r1.dts | 2 +
arch/arm64/boot/dts/arm/juno-r2.dts | 2 +
arch/arm64/boot/dts/arm/juno.dts | 2 +
arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts | 1 +
.../boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts | 1 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 6 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi | 1 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi | 1 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi | 1 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi | 1 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi | 1 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi | 20 +
.../arm64/boot/dts/broadcom/northstar2/ns2-svk.dts | 2 +-
.../arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts | 2 +-
arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi | 1 +
.../arm64/boot/dts/broadcom/stingray/stingray.dtsi | 4 +
arch/arm64/boot/dts/freescale/Makefile | 2 +
...028a-qds-13bb.dts => fsl-ls1028a-qds-13bb.dtso} | 0
...028a-qds-65bb.dts => fsl-ls1028a-qds-65bb.dtso} | 0
...028a-qds-7777.dts => fsl-ls1028a-qds-7777.dtso} | 0
...028a-qds-85bb.dts => fsl-ls1028a-qds-85bb.dtso} | 0
...028a-qds-899b.dts => fsl-ls1028a-qds-899b.dtso} | 0
...028a-qds-9999.dts => fsl-ls1028a-qds-9999.dtso} | 0
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 1 +
arch/arm64/boot/dts/freescale/fsl-ls1043-post.dtsi | 24 +
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 1 +
arch/arm64/boot/dts/freescale/fsl-ls1046-post.dtsi | 25 +
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 1 +
arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi | 4 +
arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi | 4 +
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 8 +
arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi | 39 +
arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi | 164 +
arch/arm64/boot/dts/freescale/imx8-ss-lsio.dtsi | 17 +-
arch/arm64/boot/dts/freescale/imx8dxl-evk.dts | 107 +
arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi | 20 +
arch/arm64/boot/dts/freescale/imx8dxl-ss-conn.dtsi | 10 +
arch/arm64/boot/dts/freescale/imx8dxl-ss-lsio.dtsi | 46 +
arch/arm64/boot/dts/freescale/imx8dxl.dtsi | 7 +
.../boot/dts/freescale/imx8mm-beacon-som.dtsi | 6 +-
.../dts/freescale/imx8mm-data-modul-edm-sbc.dts | 24 +-
arch/arm64/boot/dts/freescale/imx8mm-evk.dts | 6 +-
arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi | 6 +
.../dts/freescale/imx8mm-innocomm-wb15-evk.dts | 146 +
.../boot/dts/freescale/imx8mm-innocomm-wb15.dtsi | 480 +
.../boot/dts/freescale/imx8mm-kontron-osm-s.dtsi | 4 +-
.../boot/dts/freescale/imx8mm-kontron-sl.dtsi | 4 +-
arch/arm64/boot/dts/freescale/imx8mm-phg.dts | 266 +
.../boot/dts/freescale/imx8mm-phycore-som.dtsi | 6 +-
arch/arm64/boot/dts/freescale/imx8mm-var-som.dtsi | 6 +-
.../boot/dts/freescale/imx8mm-venice-gw700x.dtsi | 30 +-
...219.dts => imx8mm-venice-gw72xx-0x-imx219.dtso} | 0
....dts => imx8mm-venice-gw72xx-0x-rs232-rts.dtso} | 0
...s422.dts => imx8mm-venice-gw72xx-0x-rs422.dtso} | 0
...s485.dts => imx8mm-venice-gw72xx-0x-rs485.dtso} | 0
...219.dts => imx8mm-venice-gw73xx-0x-imx219.dtso} | 0
....dts => imx8mm-venice-gw73xx-0x-rs232-rts.dtso} | 0
...s422.dts => imx8mm-venice-gw73xx-0x-rs422.dtso} | 0
...s485.dts => imx8mm-venice-gw73xx-0x-rs485.dtso} | 0
.../boot/dts/freescale/imx8mm-venice-gw7901.dts | 54 +-
.../boot/dts/freescale/imx8mm-venice-gw7902.dts | 66 +-
.../boot/dts/freescale/imx8mm-venice-gw7903.dts | 42 +-
.../boot/dts/freescale/imx8mm-venice-gw7904.dts | 54 +-
arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 16 +-
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 6 +-
.../boot/dts/freescale/imx8mn-beacon-som.dtsi | 6 +-
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts | 6 +-
arch/arm64/boot/dts/freescale/imx8mn-evk.dts | 3 +-
arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi | 47 +-
.../boot/dts/freescale/imx8mn-venice-gw7902.dts | 62 +-
arch/arm64/boot/dts/freescale/imx8mn.dtsi | 7 +-
.../arm64/boot/dts/freescale/imx8mp-dhcom-som.dtsi | 31 +-
arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 117 +-
.../dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts | 159 +-
.../boot/dts/freescale/imx8mp-venice-gw74xx.dts | 48 +-
.../boot/dts/freescale/imx8mp-verdin-dahlia.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 49 +-
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 34 +-
arch/arm64/boot/dts/freescale/imx8mq-evk.dts | 9 +-
.../boot/dts/freescale/imx8mq-librem5-devkit.dts | 22 +-
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi | 6 +-
arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi | 2 +
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 16 +-
arch/arm64/boot/dts/freescale/imx8qm-ss-lsio.dtsi | 38 +
arch/arm64/boot/dts/freescale/imx8qm.dtsi | 2 +
.../dts/freescale/imx8qxp-colibri-eval-v3.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8qxp-ss-lsio.dtsi | 25 +
arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 1 +
arch/arm64/boot/dts/freescale/imx93.dtsi | 111 +
arch/arm64/boot/dts/freescale/mba8mx.dtsi | 1 +
arch/arm64/boot/dts/freescale/s32g2.dtsi | 2 +
arch/arm64/boot/dts/freescale/s32v234.dtsi | 2 +
arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 2 +
arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 2 +
arch/arm64/boot/dts/hisilicon/hip05.dtsi | 4 +
arch/arm64/boot/dts/hisilicon/hip06.dtsi | 4 +
arch/arm64/boot/dts/hisilicon/hip07.dtsi | 16 +
arch/arm64/boot/dts/intel/socfpga_agilex.dtsi | 1 +
arch/arm64/boot/dts/intel/socfpga_agilex_socdk.dts | 1 +
arch/arm64/boot/dts/intel/socfpga_n5x_socdk.dts | 1 +
arch/arm64/boot/dts/marvell/ac5-98dx25xx.dtsi | 1 +
.../boot/dts/marvell/armada-3720-turris-mox.dts | 4 +
arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 5 +
arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi | 1 +
arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi | 2 +
arch/arm64/boot/dts/marvell/armada-ap807-quad.dtsi | 2 +
arch/arm64/boot/dts/marvell/armada-ap80x.dtsi | 5 +
arch/arm64/boot/dts/marvell/armada-cp11x.dtsi | 17 +-
arch/arm64/boot/dts/mediatek/Makefile | 1 +
arch/arm64/boot/dts/mediatek/mt2712-evb.dts | 12 +-
arch/arm64/boot/dts/mediatek/mt2712e.dtsi | 28 +-
arch/arm64/boot/dts/mediatek/mt6779.dtsi | 10 +-
.../boot/dts/mediatek/mt6795-sony-xperia-m5.dts | 88 +
arch/arm64/boot/dts/mediatek/mt6795.dtsi | 109 +-
arch/arm64/boot/dts/mediatek/mt6797.dtsi | 2 +-
.../boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 1 -
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 1 -
arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts | 135 +-
arch/arm64/boot/dts/mediatek/mt7986a.dtsi | 139 +-
arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts | 57 +-
arch/arm64/boot/dts/mediatek/mt7986b.dtsi | 3 +
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 6 -
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 2 +-
arch/arm64/boot/dts/mediatek/mt8186.dtsi | 3 +
arch/arm64/boot/dts/mediatek/mt8192.dtsi | 3 +
arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi | 86 +
arch/arm64/boot/dts/mediatek/mt8195-demo.dts | 4 +-
arch/arm64/boot/dts/mediatek/mt8195.dtsi | 233 +-
arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi | 6 +-
arch/arm64/boot/dts/nvidia/tegra132-norrin.dts | 2 +-
arch/arm64/boot/dts/nvidia/tegra132.dtsi | 1 -
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 12 +-
arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi | 2 +-
.../arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi | 4 +-
arch/arm64/boot/dts/nvidia/tegra194-p3668.dtsi | 2 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 70 +-
arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi | 5 +-
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 4 +-
arch/arm64/boot/dts/nvidia/tegra210.dtsi | 61 +-
.../arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi | 8 +-
.../dts/nvidia/tegra234-p3737-0000+p3701-0000.dts | 21 +-
.../arm64/boot/dts/nvidia/tegra234-p3737-0000.dtsi | 14 +
arch/arm64/boot/dts/nvidia/tegra234.dtsi | 666 +-
arch/arm64/boot/dts/qcom/Makefile | 27 +-
arch/arm64/boot/dts/qcom/apq8016-sbc.dts | 16 +-
arch/arm64/boot/dts/qcom/apq8096-db820c.dts | 114 +-
arch/arm64/boot/dts/qcom/apq8096-ifc6640.dts | 70 +-
arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts | 11 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 25 +-
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 10 +-
arch/arm64/boot/dts/qcom/ipq8074-hk10-c1.dts | 3 +-
arch/arm64/boot/dts/qcom/ipq8074-hk10-c2.dts | 3 +-
arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi | 21 +-
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 134 +-
.../boot/dts/qcom/msm8916-alcatel-idol347.dts | 80 +-
arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dts | 24 +-
arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts | 24 +-
.../boot/dts/qcom/msm8916-longcheer-l8150.dts | 22 +-
.../boot/dts/qcom/msm8916-longcheer-l8910.dts | 8 +-
arch/arm64/boot/dts/qcom/msm8916-pins.dtsi | 276 +-
arch/arm64/boot/dts/qcom/msm8916-pm8916.dtsi | 2 +-
.../dts/qcom/msm8916-samsung-a2015-common.dtsi | 112 +-
.../boot/dts/qcom/msm8916-samsung-a3u-eur.dts | 14 +-
.../boot/dts/qcom/msm8916-samsung-a5u-eur.dts | 10 +-
.../dts/qcom/msm8916-samsung-e2015-common.dtsi | 28 +-
.../boot/dts/qcom/msm8916-samsung-grandmax.dts | 2 +-
arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts | 2 +-
.../boot/dts/qcom/msm8916-samsung-serranove.dts | 45 +-
.../boot/dts/qcom/msm8916-wingtech-wt88047.dts | 47 +-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 17 +-
arch/arm64/boot/dts/qcom/msm8953.dtsi | 314 +-
.../dts/qcom/msm8956-sony-xperia-loire-kugo.dts | 35 +
.../dts/qcom/msm8956-sony-xperia-loire-suzu.dts | 17 +
.../boot/dts/qcom/msm8956-sony-xperia-loire.dtsi | 282 +
arch/arm64/boot/dts/qcom/msm8956.dtsi | 18 +
arch/arm64/boot/dts/qcom/msm8976.dtsi | 1198 +
.../boot/dts/qcom/msm8992-lg-bullhead-rev-10.dts | 3 +-
.../boot/dts/qcom/msm8992-lg-bullhead-rev-101.dts | 3 +-
arch/arm64/boot/dts/qcom/msm8992-lg-bullhead.dtsi | 45 +-
arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts | 4 +-
arch/arm64/boot/dts/qcom/msm8992.dtsi | 3 +-
.../dts/qcom/msm8994-huawei-angler-rev-101.dts | 3 +-
.../boot/dts/qcom/msm8994-msft-lumia-octagon.dtsi | 12 +-
.../dts/qcom/msm8994-sony-xperia-kitakami.dtsi | 10 +-
arch/arm64/boot/dts/qcom/msm8994.dtsi | 135 +-
.../boot/dts/qcom/msm8996-oneplus-common.dtsi | 787 +
arch/arm64/boot/dts/qcom/msm8996-oneplus3.dts | 44 +
arch/arm64/boot/dts/qcom/msm8996-oneplus3t.dts | 45 +
.../boot/dts/qcom/msm8996-sony-xperia-tone.dtsi | 29 +-
.../arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi | 17 +-
arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts | 11 +-
arch/arm64/boot/dts/qcom/msm8996.dtsi | 389 +-
...i-natrium.dts => msm8996pro-xiaomi-natrium.dts} | 9 +-
...i-scorpio.dts => msm8996pro-xiaomi-scorpio.dts} | 13 +-
arch/arm64/boot/dts/qcom/msm8996pro.dtsi | 291 +
arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi | 9 +-
arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dts | 28 +-
.../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 4 +-
arch/arm64/boot/dts/qcom/msm8998-mtp.dts | 16 +-
.../boot/dts/qcom/msm8998-oneplus-cheeseburger.dts | 12 +-
.../boot/dts/qcom/msm8998-oneplus-common.dtsi | 22 +-
.../boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi | 67 +-
arch/arm64/boot/dts/qcom/msm8998-xiaomi-sagit.dts | 711 +
arch/arm64/boot/dts/qcom/msm8998.dtsi | 95 +-
arch/arm64/boot/dts/qcom/pm6125.dtsi | 154 +
arch/arm64/boot/dts/qcom/pm6150.dtsi | 6 +-
arch/arm64/boot/dts/qcom/pm6150l.dtsi | 44 +-
arch/arm64/boot/dts/qcom/pm6350.dtsi | 41 +-
arch/arm64/boot/dts/qcom/pm660.dtsi | 4 +-
arch/arm64/boot/dts/qcom/pm660l.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pm7325.dtsi | 6 +-
arch/arm64/boot/dts/qcom/pm8005.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pm8150b.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pm8450a.dtsi | 77 +
arch/arm64/boot/dts/qcom/pm8916.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pm8950.dtsi | 165 +
arch/arm64/boot/dts/qcom/pm8994.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pm8998.dtsi | 12 +-
arch/arm64/boot/dts/qcom/pmi8950.dtsi | 97 +
arch/arm64/boot/dts/qcom/pmi8994.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pmi8998.dtsi | 10 +-
arch/arm64/boot/dts/qcom/pmk8350.dtsi | 22 +-
arch/arm64/boot/dts/qcom/pmp8074.dtsi | 125 +
arch/arm64/boot/dts/qcom/pms405.dtsi | 4 +-
arch/arm64/boot/dts/qcom/qcs404-evb-1000.dts | 4 +-
arch/arm64/boot/dts/qcom/qcs404-evb-4000.dts | 24 +-
arch/arm64/boot/dts/qcom/qcs404-evb.dtsi | 58 +-
arch/arm64/boot/dts/qcom/qcs404.dtsi | 70 +-
.../boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts | 62 +
arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 22 +-
arch/arm64/boot/dts/qcom/sa8155p-adp.dts | 82 +-
arch/arm64/boot/dts/qcom/sa8295p-adp.dts | 199 +-
arch/arm64/boot/dts/qcom/sa8540p-ride.dts | 270 +
arch/arm64/boot/dts/qcom/sa8540p.dtsi | 98 +
arch/arm64/boot/dts/qcom/sc7180-idp.dts | 236 +-
.../arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi | 36 +-
.../boot/dts/qcom/sc7180-trogdor-homestar.dtsi | 51 +-
.../boot/dts/qcom/sc7180-trogdor-kingoftown-r0.dts | 16 +-
.../boot/dts/qcom/sc7180-trogdor-kingoftown.dtsi | 9 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor.dtsi | 16 +-
.../boot/dts/qcom/sc7180-trogdor-mrbland-rev0.dtsi | 25 +-
.../boot/dts/qcom/sc7180-trogdor-mrbland.dtsi | 78 +-
.../dts/qcom/sc7180-trogdor-parade-ps8640.dtsi | 34 +-
.../boot/dts/qcom/sc7180-trogdor-pazquel.dtsi | 8 +-
.../dts/qcom/sc7180-trogdor-pazquel360-lte.dts | 22 +
.../dts/qcom/sc7180-trogdor-pazquel360-wifi.dts | 17 +
.../boot/dts/qcom/sc7180-trogdor-pazquel360.dtsi | 50 +
.../arm64/boot/dts/qcom/sc7180-trogdor-pompom.dtsi | 14 +-
.../dts/qcom/sc7180-trogdor-quackingstick.dtsi | 60 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts | 8 +-
.../boot/dts/qcom/sc7180-trogdor-ti-sn65dsi86.dtsi | 16 +-
.../dts/qcom/sc7180-trogdor-wormdingler-rev0.dtsi | 25 +-
...sc7180-trogdor-wormdingler-rev1-boe-rt5682s.dts | 1 +
...sc7180-trogdor-wormdingler-rev1-inx-rt5682s.dts | 1 +
.../boot/dts/qcom/sc7180-trogdor-wormdingler.dtsi | 78 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 668 +-
arch/arm64/boot/dts/qcom/sc7180.dtsi | 606 +-
arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi | 15 -
arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts | 8 +-
.../qcom/sc7280-herobrine-audio-rt5682-3mic.dtsi | 187 +
.../dts/qcom/sc7280-herobrine-audio-rt5682.dtsi | 122 +
.../dts/qcom/sc7280-herobrine-audio-wcd9385.dtsi | 20 -
arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts | 1 +
.../boot/dts/qcom/sc7280-herobrine-evoker-lte.dts | 16 +
.../boot/dts/qcom/sc7280-herobrine-evoker.dts | 16 +
...-evoker-r0.dts => sc7280-herobrine-evoker.dtsi} | 24 +-
.../dts/qcom/sc7280-herobrine-herobrine-r1.dts | 6 +-
.../boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi | 19 +
.../dts/qcom/sc7280-herobrine-villager-r1-lte.dts | 4 +-
.../boot/dts/qcom/sc7280-herobrine-villager-r1.dts | 31 +-
.../dts/qcom/sc7280-herobrine-villager-r1.dtsi | 37 +
.../boot/dts/qcom/sc7280-herobrine-villager.dtsi | 11 -
.../boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi | 11 +
.../boot/dts/qcom/sc7280-herobrine-zombie-lte.dts | 16 +
.../boot/dts/qcom/sc7280-herobrine-zombie.dts | 16 +
.../boot/dts/qcom/sc7280-herobrine-zombie.dtsi | 312 +
arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 73 +-
arch/arm64/boot/dts/qcom/sc7280-idp-ec-h1.dtsi | 10 +-
arch/arm64/boot/dts/qcom/sc7280-idp.dts | 6 -
arch/arm64/boot/dts/qcom/sc7280-idp.dtsi | 55 +-
arch/arm64/boot/dts/qcom/sc7280-qcard.dtsi | 22 +-
arch/arm64/boot/dts/qcom/sc7280.dtsi | 432 +-
arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 219 +-
.../dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 439 +-
arch/arm64/boot/dts/qcom/sc8280xp-pmics.dtsi | 84 +
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 786 +-
.../arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts | 14 +-
.../boot/dts/qcom/sdm630-sony-xperia-nile.dtsi | 24 +-
arch/arm64/boot/dts/qcom/sdm630.dtsi | 140 +-
arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts | 16 +-
.../dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts | 2 +-
.../arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts | 10 +-
arch/arm64/boot/dts/qcom/sdm660.dtsi | 3 +-
arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts | 531 +
arch/arm64/boot/dts/qcom/sdm670.dtsi | 1160 +
arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 49 +-
.../qcom/sdm845-db845c-navigation-mezzanine.dts | 104 +
arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 169 +-
arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi | 2 +-
.../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 39 +-
.../boot/dts/qcom/sdm845-samsung-starqltechn.dts | 460 +
arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts | 9 +
.../boot/dts/qcom/sdm845-sony-xperia-tama.dtsi | 2 +-
...ium.dts => sdm845-xiaomi-beryllium-common.dtsi} | 46 +-
.../boot/dts/qcom/sdm845-xiaomi-beryllium-ebbg.dts | 15 +
.../dts/qcom/sdm845-xiaomi-beryllium-tianma.dts | 15 +
arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dts | 36 +-
arch/arm64/boot/dts/qcom/sdm845.dtsi | 177 +-
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 10 +-
arch/arm64/boot/dts/qcom/sdm850-samsung-w737.dts | 24 +-
.../arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts | 241 +
arch/arm64/boot/dts/qcom/sm4250.dtsi | 38 +
arch/arm64/boot/dts/qcom/sm6115.dtsi | 1425 +
.../dts/qcom/sm6125-sony-xperia-seine-pdx201.dts | 164 +-
arch/arm64/boot/dts/qcom/sm6125.dtsi | 8 +-
.../dts/qcom/sm6350-sony-xperia-lena-pdx213.dts | 335 +
arch/arm64/boot/dts/qcom/sm6350.dtsi | 56 +-
.../dts/qcom/sm6375-sony-xperia-murray-pdx225.dts | 406 +
arch/arm64/boot/dts/qcom/sm6375.dtsi | 1396 +
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 37 +-
.../boot/dts/qcom/sm8150-microsoft-surface-duo.dts | 2 +-
.../boot/dts/qcom/sm8150-sony-xperia-kumano.dtsi | 10 +-
arch/arm64/boot/dts/qcom/sm8150.dtsi | 407 +-
arch/arm64/boot/dts/qcom/sm8250-mtp.dts | 40 +-
.../boot/dts/qcom/sm8250-sony-xperia-edo.dtsi | 41 +-
arch/arm64/boot/dts/qcom/sm8250.dtsi | 1205 +-
arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 20 +-
.../dts/qcom/sm8350-sony-xperia-sagami-pdx215.dts | 206 +
.../boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi | 604 +-
arch/arm64/boot/dts/qcom/sm8350.dtsi | 98 +-
arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 205 +
arch/arm64/boot/dts/qcom/sm8450-qrd.dts | 19 +
.../dts/qcom/sm8450-sony-xperia-nagara-pdx223.dts | 831 +-
.../dts/qcom/sm8450-sony-xperia-nagara-pdx224.dts | 234 +
.../boot/dts/qcom/sm8450-sony-xperia-nagara.dtsi | 631 +
arch/arm64/boot/dts/qcom/sm8450.dtsi | 600 +-
.../dts/renesas/aistarvision-mipi-adapter-2.1.dtsi | 1 -
arch/arm64/boot/dts/renesas/condor-common.dtsi | 1 +
...04xd12.dts => draak-ebisu-panel-aa104xd12.dtso} | 0
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 24 +-
.../boot/dts/renesas/r8a779f0-spider-cpu.dtsi | 30 +-
.../boot/dts/renesas/r8a779f0-spider-ethernet.dtsi | 90 +
arch/arm64/boot/dts/renesas/r8a779f0.dtsi | 126 +-
.../boot/dts/renesas/r8a779g0-white-hawk-cpu.dtsi | 89 +-
arch/arm64/boot/dts/renesas/r8a779g0.dtsi | 735 +-
arch/arm64/boot/dts/renesas/r9a07g043.dtsi | 362 +-
arch/arm64/boot/dts/renesas/r9a07g043u.dtsi | 73 +
arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts | 2 +-
arch/arm64/boot/dts/renesas/r9a07g044.dtsi | 17 +-
arch/arm64/boot/dts/renesas/r9a07g044c2-smarc.dts | 30 +
arch/arm64/boot/dts/renesas/r9a07g054.dtsi | 17 +-
arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dts | 4 +
arch/arm64/boot/dts/renesas/r9a09g011.dtsi | 31 +-
arch/arm64/boot/dts/renesas/rzg2l-smarc-som.dtsi | 5 -
arch/arm64/boot/dts/renesas/rzg2lc-smarc-som.dtsi | 5 -
arch/arm64/boot/dts/renesas/rzg2lc-smarc.dtsi | 28 -
.../boot/dts/renesas/rzg2ul-smarc-pinfunction.dtsi | 7 +
arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi | 7 -
...aa104xd12.dts => salvator-panel-aa104xd12.dtso} | 0
arch/arm64/boot/dts/rockchip/Makefile | 10 +
arch/arm64/boot/dts/rockchip/px30-evb.dts | 10 +-
.../boot/dts/rockchip/px30-ringneck-haikou.dts | 232 +
arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi | 382 +
arch/arm64/boot/dts/rockchip/rk3308-evb.dts | 12 +-
arch/arm64/boot/dts/rockchip/rk3308-roc-cc.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3308.dtsi | 1 +
arch/arm64/boot/dts/rockchip/rk3318-a95x-z2.dts | 2 +-
.../boot/dts/rockchip/rk3326-anbernic-rg351m.dts | 33 +
arch/arm64/boot/dts/rockchip/rk3326-odroid-go.dtsi | 600 +
.../boot/dts/rockchip/rk3326-odroid-go2-v11.dts | 156 +
arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts | 620 +-
arch/arm64/boot/dts/rockchip/rk3326-odroid-go3.dts | 185 +
arch/arm64/boot/dts/rockchip/rk3328.dtsi | 12 +
.../boot/dts/rockchip/rk3368-orion-r68-meta.dts | 3 +-
arch/arm64/boot/dts/rockchip/rk3368-r88.dts | 3 +-
.../boot/dts/rockchip/rk3399-gru-scarlet.dtsi | 4 -
.../boot/dts/rockchip/rk3399-khadas-edge.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4b.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi | 1 +
arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts | 4 +-
.../boot/dts/rockchip/rk3399-pinephone-pro.dts | 76 +
.../arm64/boot/dts/rockchip/rk3399-puma-haikou.dts | 2 +-
.../arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dts | 3 +-
arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dtsi | 2 +-
.../boot/dts/rockchip/rk3399-rock-4c-plus.dts | 6 +
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi | 1 -
arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi | 2 +
.../dts/rockchip/rk3399-sapphire-excavator.dts | 4 +-
arch/arm64/boot/dts/rockchip/rk3399.dtsi | 20 +
.../boot/dts/rockchip/rk3399pro-vmarc-som.dtsi | 3 +-
.../boot/dts/rockchip/rk3566-anbernic-rg353p.dts | 109 +-
.../boot/dts/rockchip/rk3566-anbernic-rg353v.dts | 114 +
.../boot/dts/rockchip/rk3566-anbernic-rg353vs.dts | 87 +
.../boot/dts/rockchip/rk3566-anbernic-rg353x.dtsi | 60 +
.../boot/dts/rockchip/rk3566-anbernic-rg503.dts | 79 +
.../boot/dts/rockchip/rk3566-anbernic-rgxx3.dtsi | 47 +-
arch/arm64/boot/dts/rockchip/rk3566-box-demo.dts | 503 +
arch/arm64/boot/dts/rockchip/rk3566-pinenote.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts | 7 +-
arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3566-roc-pc.dts | 42 +-
.../boot/dts/rockchip/rk3566-soquartz-blade.dts | 194 +
.../boot/dts/rockchip/rk3566-soquartz-cm4.dts | 11 +
.../boot/dts/rockchip/rk3566-soquartz-model-a.dts | 232 +
arch/arm64/boot/dts/rockchip/rk3566-soquartz.dtsi | 75 +
arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 1 -
arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts | 744 +
arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts | 147 +-
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 50 +-
arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi | 34 +-
arch/arm64/boot/dts/tesla/fsd-pinctrl.h | 6 +-
arch/arm64/boot/dts/ti/Makefile | 1 +
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 122 +
arch/arm64/boot/dts/ti/k3-am62-mcu.dtsi | 49 +
arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi | 4 +-
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 90 +-
arch/arm64/boot/dts/ti/k3-am625.dtsi | 51 +
arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 44 +-
arch/arm64/boot/dts/ti/k3-am64-mcu.dtsi | 6 +
arch/arm64/boot/dts/ti/k3-am642-evm.dts | 119 +-
arch/arm64/boot/dts/ti/k3-am642-sk.dts | 142 +-
arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi | 101 +-
arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 207 +-
arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi | 85 +-
arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi | 2 +
.../dts/ti/k3-am6528-iot2050-basic-common.dtsi | 1 +
arch/arm64/boot/dts/ti/k3-am654-base-board.dts | 113 +-
.../dts/ti/k3-am6548-iot2050-advanced-common.dtsi | 4 -
.../boot/dts/ti/k3-j7200-common-proc-board.dts | 48 +-
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 29 +
arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi | 8 +-
arch/arm64/boot/dts/ti/k3-j7200-som-p0.dtsi | 42 +-
arch/arm64/boot/dts/ti/k3-j721e-beagleboneai64.dts | 1055 +
.../boot/dts/ti/k3-j721e-common-proc-board.dts | 143 +-
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 125 +-
arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi | 11 +-
arch/arm64/boot/dts/ti/k3-j721e-sk.dts | 205 +-
arch/arm64/boot/dts/ti/k3-j721e-som-p0.dtsi | 33 +-
.../boot/dts/ti/k3-j721s2-common-proc-board.dts | 132 +-
arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi | 79 +-
arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi | 9 +-
arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi | 98 +-
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 33 +
arch/arm64/configs/defconfig | 43 +-
arch/arm64/crypto/Kconfig | 49 +-
arch/arm64/crypto/Makefile | 9 +
arch/arm64/crypto/aes-ce-glue.c | 2 +-
arch/arm64/crypto/aes-cipher-glue.c | 2 +-
arch/arm64/crypto/aes-modes.S | 34 +-
arch/arm64/crypto/aes-neonbs-core.S | 16 +-
arch/arm64/crypto/crct10dif-ce-core.S | 5 +-
arch/arm64/crypto/ghash-ce-core.S | 8 +-
arch/arm64/crypto/ghash-ce-glue.c | 2 +-
arch/arm64/crypto/nh-neon-core.S | 5 +-
arch/arm64/crypto/nhpoly1305-neon-glue.c | 11 +-
arch/arm64/crypto/sm3-ce-glue.c | 2 +-
arch/arm64/crypto/sm3-neon-core.S | 601 +
arch/arm64/crypto/sm3-neon-glue.c | 103 +
arch/arm64/crypto/sm4-ce-asm.h | 209 +
arch/arm64/crypto/sm4-ce-ccm-core.S | 328 +
arch/arm64/crypto/sm4-ce-ccm-glue.c | 303 +
arch/arm64/crypto/sm4-ce-cipher-glue.c | 2 +-
arch/arm64/crypto/sm4-ce-core.S | 1205 +-
arch/arm64/crypto/sm4-ce-gcm-core.S | 741 +
arch/arm64/crypto/sm4-ce-gcm-glue.c | 286 +
arch/arm64/crypto/sm4-ce-glue.c | 575 +-
arch/arm64/crypto/sm4-ce.h | 16 +
arch/arm64/crypto/sm4-neon-core.S | 630 +-
arch/arm64/crypto/sm4-neon-glue.c | 172 +-
arch/arm64/include/asm/alternative-macros.h | 4 +-
arch/arm64/include/asm/archrandom.h | 48 +-
arch/arm64/include/asm/assembler.h | 33 +-
arch/arm64/include/asm/cpufeature.h | 3 +-
arch/arm64/include/asm/cputype.h | 2 +
arch/arm64/include/asm/efi.h | 19 +-
arch/arm64/include/asm/exception.h | 7 +-
arch/arm64/include/asm/fpsimd.h | 17 +-
arch/arm64/include/asm/ftrace.h | 72 +-
arch/arm64/include/asm/hwcap.h | 3 +
arch/arm64/include/asm/insn.h | 156 +-
arch/arm64/include/asm/jump_label.h | 8 +-
arch/arm64/include/asm/kernel-pgtable.h | 11 +-
arch/arm64/include/asm/kvm_arm.h | 8 +-
arch/arm64/include/asm/kvm_asm.h | 7 +-
arch/arm64/include/asm/kvm_host.h | 88 +-
arch/arm64/include/asm/kvm_hyp.h | 3 +
arch/arm64/include/asm/kvm_mmu.h | 2 +-
arch/arm64/include/asm/kvm_pgtable.h | 175 +-
arch/arm64/include/asm/kvm_pkvm.h | 38 +
arch/arm64/include/asm/lse.h | 1 -
arch/arm64/include/asm/mmu_context.h | 10 +
arch/arm64/include/asm/module.lds.h | 8 +
arch/arm64/include/asm/mte.h | 65 +-
arch/arm64/include/asm/pgtable-hwdef.h | 1 +
arch/arm64/include/asm/pgtable.h | 11 +-
arch/arm64/include/asm/processor.h | 24 +-
arch/arm64/include/asm/ptdump.h | 1 +
arch/arm64/include/asm/scs.h | 49 +
arch/arm64/include/asm/spectre.h | 2 +
arch/arm64/include/asm/stackprotector.h | 9 +-
arch/arm64/include/asm/stacktrace.h | 2 +
arch/arm64/include/asm/sysreg.h | 150 +-
arch/arm64/include/asm/traps.h | 19 +-
arch/arm64/include/asm/uprobes.h | 2 +-
arch/arm64/include/uapi/asm/hwcap.h | 3 +
arch/arm64/include/uapi/asm/kvm.h | 1 +
arch/arm64/include/uapi/asm/sigcontext.h | 4 +
arch/arm64/kernel/Makefile | 11 +-
arch/arm64/kernel/acpi.c | 106 +
arch/arm64/kernel/alternative.c | 6 +-
arch/arm64/kernel/armv8_deprecated.c | 567 +-
arch/arm64/kernel/asm-offsets.c | 13 +
arch/arm64/kernel/cpufeature.c | 257 +-
arch/arm64/kernel/cpuinfo.c | 3 +
arch/arm64/kernel/efi-entry.S | 69 -
arch/arm64/kernel/efi-rt-wrapper.S | 30 +-
arch/arm64/kernel/efi.c | 45 +-
arch/arm64/kernel/elfcore.c | 2 +-
arch/arm64/kernel/entry-common.c | 24 +-
arch/arm64/kernel/entry-ftrace.S | 156 +-
arch/arm64/kernel/entry.S | 3 +
arch/arm64/kernel/fpsimd.c | 169 +-
arch/arm64/kernel/ftrace.c | 87 +-
arch/arm64/kernel/head.S | 3 +
arch/arm64/kernel/hibernate.c | 2 +-
arch/arm64/kernel/image-vars.h | 23 -
arch/arm64/kernel/irq.c | 11 +-
arch/arm64/kernel/module.c | 11 +-
arch/arm64/kernel/mte.c | 21 +-
arch/arm64/kernel/paravirt.c | 4 -
arch/arm64/kernel/patch-scs.c | 257 +
arch/arm64/kernel/perf_event.c | 21 +-
arch/arm64/kernel/pi/Makefile | 1 +
arch/arm64/kernel/probes/decode-insn.c | 2 +-
arch/arm64/kernel/probes/kprobes.c | 86 +-
arch/arm64/kernel/process.c | 4 +-
arch/arm64/kernel/proton-pack.c | 26 +-
arch/arm64/kernel/ptrace.c | 21 +-
arch/arm64/kernel/sdei.c | 2 +-
arch/arm64/kernel/setup.c | 4 +
arch/arm64/kernel/signal.c | 7 +-
arch/arm64/kernel/stacktrace.c | 10 +-
arch/arm64/kernel/suspend.c | 2 +
arch/arm64/kernel/syscall.c | 19 +-
arch/arm64/kernel/traps.c | 93 +-
arch/arm64/kernel/vdso.c | 22 -
arch/arm64/kernel/vdso/Makefile | 2 +-
arch/arm64/kernel/vdso32/Makefile | 2 +-
arch/arm64/kernel/vmlinux.lds.S | 13 +
arch/arm64/kvm/Kconfig | 2 +
arch/arm64/kvm/arm.c | 95 +-
arch/arm64/kvm/fpsimd.c | 26 +-
arch/arm64/kvm/guest.c | 18 +-
arch/arm64/kvm/hyp/hyp-constants.c | 3 +
arch/arm64/kvm/hyp/include/nvhe/mem_protect.h | 25 +-
arch/arm64/kvm/hyp/include/nvhe/memory.h | 27 +
arch/arm64/kvm/hyp/include/nvhe/mm.h | 18 +-
arch/arm64/kvm/hyp/include/nvhe/pkvm.h | 68 +
arch/arm64/kvm/hyp/include/nvhe/spinlock.h | 10 +-
arch/arm64/kvm/hyp/nvhe/Makefile | 1 +
arch/arm64/kvm/hyp/nvhe/cache.S | 11 +
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 110 +-
arch/arm64/kvm/hyp/nvhe/hyp-smp.c | 2 +
arch/arm64/kvm/hyp/nvhe/mem_protect.c | 521 +-
arch/arm64/kvm/hyp/nvhe/mm.c | 167 +-
arch/arm64/kvm/hyp/nvhe/page_alloc.c | 29 +-
arch/arm64/kvm/hyp/nvhe/pkvm.c | 436 +
arch/arm64/kvm/hyp/nvhe/setup.c | 98 +-
arch/arm64/kvm/hyp/pgtable.c | 652 +-
arch/arm64/kvm/hyp/vhe/Makefile | 2 +-
arch/arm64/kvm/irq.h | 16 -
arch/arm64/kvm/mmu.c | 195 +-
arch/arm64/kvm/pkvm.c | 138 +-
arch/arm64/kvm/pmu-emul.c | 482 +-
arch/arm64/kvm/reset.c | 29 -
arch/arm64/kvm/sys_regs.c | 157 +-
arch/arm64/kvm/vgic/vgic-its.c | 20 +
arch/arm64/lib/insn.c | 165 -
arch/arm64/lib/mte.S | 2 +-
arch/arm64/mm/copypage.c | 7 +-
arch/arm64/mm/dma-mapping.c | 17 +-
arch/arm64/mm/fault.c | 12 +-
arch/arm64/mm/init.c | 25 +-
arch/arm64/mm/mmu.c | 104 +-
arch/arm64/mm/mteswap.c | 16 +-
arch/arm64/mm/pageattr.c | 3 +-
arch/arm64/mm/proc.S | 4 -
arch/arm64/net/bpf_jit_comp.c | 9 +-
arch/arm64/tools/cpucaps | 1 +
arch/arm64/tools/gen-sysreg.awk | 2 +-
arch/arm64/tools/sysreg | 766 +-
arch/csky/Kconfig | 4 +-
arch/csky/include/asm/pgtable.h | 3 -
arch/csky/include/asm/processor.h | 2 +
arch/csky/include/asm/stackprotector.h | 10 +-
arch/csky/kernel/entry.S | 11 +-
arch/csky/kernel/process.c | 4 +-
arch/csky/kernel/signal.c | 2 -
arch/csky/kernel/stacktrace.c | 6 +-
arch/hexagon/include/asm/page.h | 7 -
arch/hexagon/kernel/ptrace.c | 7 +-
arch/ia64/Kconfig | 1 +
arch/ia64/Makefile | 2 +-
arch/ia64/hp/common/aml_nfw.c | 4 +-
arch/ia64/include/asm/io.h | 4 -
arch/ia64/include/asm/kprobes.h | 2 -
arch/ia64/include/asm/pgtable.h | 16 -
arch/ia64/kernel/ptrace.c | 20 +-
arch/ia64/kernel/sys_ia64.c | 6 +-
arch/ia64/mm/hugetlbpage.c | 15 -
arch/loongarch/Kconfig | 23 +
arch/loongarch/Makefile | 10 +-
arch/loongarch/configs/loongson3_defconfig | 56 +-
arch/loongarch/include/asm/acpi.h | 152 +-
arch/loongarch/include/asm/alternative-asm.h | 82 +
arch/loongarch/include/asm/alternative.h | 111 +
arch/loongarch/include/asm/asm-extable.h | 65 +
arch/loongarch/include/asm/bootinfo.h | 1 +
arch/loongarch/include/asm/bugs.h | 15 +
arch/loongarch/include/asm/efi.h | 15 +-
arch/loongarch/include/asm/extable.h | 47 +
arch/loongarch/include/asm/ftrace.h | 68 +
arch/loongarch/include/asm/futex.h | 27 +-
arch/loongarch/include/asm/gpr-num.h | 22 +
arch/loongarch/include/asm/inst.h | 46 +
arch/loongarch/include/asm/irq.h | 4 +-
arch/loongarch/include/asm/loongson.h | 3 +
arch/loongarch/include/asm/module.h | 27 +-
arch/loongarch/include/asm/module.lds.h | 1 +
arch/loongarch/include/asm/pgalloc.h | 13 +-
arch/loongarch/include/asm/pgtable.h | 34 +-
arch/loongarch/include/asm/setup.h | 1 +
arch/loongarch/include/asm/smp.h | 38 +-
arch/loongarch/include/asm/sparsemem.h | 8 +
arch/loongarch/include/asm/stackprotector.h | 38 +
arch/loongarch/include/asm/string.h | 5 +
arch/loongarch/include/asm/thread_info.h | 2 +-
arch/loongarch/include/asm/time.h | 1 +
arch/loongarch/include/asm/uaccess.h | 24 +-
arch/loongarch/include/asm/unwind.h | 3 +-
arch/loongarch/kernel/Makefile | 16 +-
arch/loongarch/kernel/acpi.c | 42 +-
arch/loongarch/kernel/alternative.c | 246 +
arch/loongarch/kernel/asm-offsets.c | 15 +
arch/loongarch/kernel/efi.c | 39 +-
arch/loongarch/kernel/env.c | 2 +
arch/loongarch/kernel/fpu.S | 5 +-
arch/loongarch/kernel/ftrace.c | 73 +
arch/loongarch/kernel/ftrace_dyn.c | 273 +
arch/loongarch/kernel/head.S | 3 +-
arch/loongarch/kernel/image-vars.h | 8 -
arch/loongarch/kernel/inst.c | 127 +
arch/loongarch/kernel/irq.c | 2 +-
arch/loongarch/kernel/mcount.S | 96 +
arch/loongarch/kernel/mcount_dyn.S | 149 +
arch/loongarch/kernel/module-sections.c | 64 +-
arch/loongarch/kernel/module.c | 75 +-
arch/loongarch/kernel/numa.c | 21 +-
arch/loongarch/kernel/process.c | 17 +-
arch/loongarch/kernel/reset.c | 5 +
arch/loongarch/kernel/setup.c | 150 +-
arch/loongarch/kernel/smp.c | 90 +-
arch/loongarch/kernel/switch.S | 5 +
arch/loongarch/kernel/time.c | 11 +-
arch/loongarch/kernel/traps.c | 27 +
arch/loongarch/kernel/unaligned.c | 499 +
arch/loongarch/kernel/unwind_guess.c | 4 +-
arch/loongarch/kernel/unwind_prologue.c | 51 +-
arch/loongarch/kernel/vdso.c | 2 +-
arch/loongarch/kernel/vmlinux.lds.S | 13 +-
arch/loongarch/lib/Makefile | 3 +-
arch/loongarch/lib/clear_user.S | 85 +-
arch/loongarch/lib/copy_user.S | 108 +-
arch/loongarch/lib/memcpy.S | 95 +
arch/loongarch/lib/memmove.S | 121 +
arch/loongarch/lib/memset.S | 91 +
arch/loongarch/lib/unaligned.S | 84 +
arch/loongarch/mm/extable.c | 59 +-
arch/loongarch/mm/init.c | 45 +-
arch/loongarch/mm/pgtable.c | 23 +-
arch/loongarch/mm/tlbex.S | 30 +-
arch/loongarch/net/bpf_jit.c | 86 +-
arch/loongarch/net/bpf_jit.h | 2 +
arch/loongarch/pci/acpi.c | 7 +-
arch/loongarch/power/Makefile | 4 +
arch/loongarch/power/hibernate.c | 62 +
arch/loongarch/power/hibernate_asm.S | 66 +
arch/loongarch/power/platform.c | 57 +
arch/loongarch/power/suspend.c | 73 +
arch/loongarch/power/suspend_asm.S | 89 +
arch/m68k/configs/amiga_defconfig | 42 +-
arch/m68k/configs/apollo_defconfig | 42 +-
arch/m68k/configs/atari_defconfig | 42 +-
arch/m68k/configs/bvme6000_defconfig | 42 +-
arch/m68k/configs/hp300_defconfig | 42 +-
arch/m68k/configs/mac_defconfig | 42 +-
arch/m68k/configs/multi_defconfig | 42 +-
arch/m68k/configs/mvme147_defconfig | 42 +-
arch/m68k/configs/mvme16x_defconfig | 42 +-
arch/m68k/configs/q40_defconfig | 42 +-
arch/m68k/configs/sun3_defconfig | 42 +-
arch/m68k/configs/sun3x_defconfig | 42 +-
arch/m68k/emu/nfcon.c | 9 +-
arch/m68k/include/asm/mac_via.h | 8 -
arch/m68k/include/asm/pgtable_mm.h | 2 -
arch/m68k/include/asm/pgtable_no.h | 1 -
arch/m68k/include/asm/string.h | 20 -
arch/m68k/kernel/process.c | 4 +-
arch/m68k/kernel/setup_no.c | 3 +-
arch/m68k/mac/misc.c | 2 +-
arch/microblaze/Kconfig | 8 -
arch/microblaze/Makefile | 4 +-
arch/microblaze/configs/mmu_defconfig | 1 -
arch/microblaze/include/asm/pci-bridge.h | 92 -
arch/microblaze/include/asm/pci.h | 29 -
arch/microblaze/include/asm/pgtable.h | 3 -
arch/microblaze/kernel/process.c | 2 +-
arch/microblaze/pci/Makefile | 3 +-
arch/microblaze/pci/indirect_pci.c | 158 -
arch/microblaze/pci/iomap.c | 36 +
arch/microblaze/pci/pci-common.c | 1067 -
arch/microblaze/pci/xilinx_pci.c | 170 -
arch/mips/Kconfig | 2 +-
arch/mips/Makefile | 2 +-
arch/mips/bcm63xx/clk.c | 2 +
arch/mips/boot/dts/brcm/bcm63268.dtsi | 7 +
arch/mips/boot/dts/brcm/bcm7435.dtsi | 1 +
arch/mips/boot/dts/ingenic/ci20.dts | 2 +-
arch/mips/boot/dts/mscc/jaguar2_pcb110.dts | 4 +-
arch/mips/boot/dts/qca/ar9331.dtsi | 1 -
arch/mips/boot/dts/ralink/mt7621-gnubee-gb-pc2.dts | 2 +-
arch/mips/boot/dts/ralink/mt7621.dtsi | 11 +-
arch/mips/cavium-octeon/executive/cvmx-bootmem.c | 3 +-
.../cavium-octeon/executive/cvmx-helper-board.c | 2 +-
arch/mips/cavium-octeon/executive/cvmx-helper.c | 2 +-
arch/mips/configs/mtx1_defconfig | 1 -
arch/mips/include/asm/asm-prototypes.h | 3 +
arch/mips/include/asm/mach-ralink/mt7621.h | 4 +-
arch/mips/include/asm/octeon/cvmx.h | 4 +-
arch/mips/include/asm/pgalloc.h | 10 +-
arch/mips/include/asm/pgtable-64.h | 8 +-
arch/mips/include/asm/pgtable.h | 3 +-
arch/mips/include/asm/stackprotector.h | 9 +-
arch/mips/kernel/process.c | 2 +-
arch/mips/kernel/ptrace.c | 9 +-
arch/mips/kernel/vdso.c | 2 +-
arch/mips/kernel/vpe-cmp.c | 4 +-
arch/mips/kernel/vpe-mt.c | 4 +-
arch/mips/kvm/mmu.c | 3 +-
arch/mips/mm/pgtable-32.c | 9 +-
arch/mips/mm/pgtable-64.c | 18 +-
arch/mips/mm/pgtable.c | 2 +-
arch/mips/pci/pci-rt3883.c | 4 +-
arch/mips/ralink/mt7621.c | 97 +-
arch/mips/ralink/of.c | 4 +-
arch/mips/vdso/Makefile | 2 +-
arch/nios2/boot/Makefile | 2 +-
arch/nios2/include/asm/pgalloc.h | 5 -
arch/nios2/include/asm/pgtable.h | 2 -
arch/nios2/include/asm/processor.h | 3 -
arch/nios2/kernel/ptrace.c | 6 +-
arch/openrisc/configs/or1ksim_defconfig | 3 +-
arch/openrisc/configs/simple_smp_defconfig | 3 +-
arch/openrisc/include/asm/pgtable.h | 2 -
arch/openrisc/kernel/ptrace.c | 8 +-
arch/parisc/include/asm/pdc.h | 2 +-
arch/parisc/include/asm/pgtable.h | 19 +-
arch/parisc/include/uapi/asm/mman.h | 29 +-
arch/parisc/kernel/firmware.c | 32 +-
arch/parisc/kernel/kgdb.c | 20 -
arch/parisc/kernel/pdc_cons.c | 16 +-
arch/parisc/kernel/pdt.c | 5 +-
arch/parisc/kernel/processor.c | 9 +-
arch/parisc/kernel/ptrace.c | 15 +-
arch/parisc/kernel/real2.S | 17 +-
arch/parisc/kernel/setup.c | 26 +-
arch/parisc/kernel/sys_parisc.c | 28 +
arch/parisc/kernel/syscalls/syscall.tbl | 2 +-
arch/parisc/kernel/vdso.c | 2 +-
arch/parisc/kernel/vdso32/Makefile | 4 +-
arch/parisc/kernel/vdso64/Makefile | 4 +-
arch/powerpc/Kconfig | 51 +-
.../dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi | 3 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi | 10 +-
.../dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-2.dtsi | 45 +
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-3.dtsi | 45 +
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi | 3 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi | 3 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi | 3 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi | 3 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi | 10 +-
arch/powerpc/boot/dts/fsl/t1024qds.dts | 2 +-
arch/powerpc/boot/dts/fsl/t1024rdb.dts | 2 +-
arch/powerpc/boot/dts/fsl/t104xqds.dtsi | 2 +-
arch/powerpc/boot/dts/fsl/t104xrdb.dtsi | 2 +-
arch/powerpc/boot/dts/fsl/t2081si-post.dtsi | 4 +-
arch/powerpc/boot/dts/fsl/t208xqds.dtsi | 2 +-
arch/powerpc/boot/dts/fsl/t208xrdb.dtsi | 2 +-
arch/powerpc/boot/dts/microwatt.dts | 22 +
arch/powerpc/boot/dts/turris1x.dts | 14 +
arch/powerpc/boot/dts/warp.dts | 4 +-
arch/powerpc/boot/wrapper | 17 +-
arch/powerpc/configs/microwatt_defconfig | 1 -
arch/powerpc/configs/ppc6xx_defconfig | 2 -
arch/powerpc/crypto/crc-vpmsum_test.c | 4 +-
arch/powerpc/include/asm/asm.h | 7 +
arch/powerpc/include/asm/book3s/32/tlbflush.h | 9 +
arch/powerpc/include/asm/book3s/64/pgtable.h | 80 +-
arch/powerpc/include/asm/book3s/64/tlbflush-hash.h | 50 -
arch/powerpc/include/asm/book3s/64/tlbflush.h | 41 +-
arch/powerpc/include/asm/bug.h | 3 +-
arch/powerpc/include/asm/cmpxchg.h | 231 +-
arch/powerpc/include/asm/code-patching.h | 2 -
arch/powerpc/include/asm/cputime.h | 17 +-
arch/powerpc/include/asm/debug.h | 2 +
arch/powerpc/include/asm/ftrace.h | 43 +-
arch/powerpc/include/asm/hvcall.h | 3 +-
arch/powerpc/include/asm/interrupt.h | 1 +
arch/powerpc/include/asm/irqflags.h | 58 -
arch/powerpc/include/asm/kvm_book3s_asm.h | 2 +-
arch/powerpc/include/asm/kvm_ppc.h | 12 +
arch/powerpc/include/asm/linkage.h | 3 +
arch/powerpc/include/asm/mmu_context.h | 6 +-
arch/powerpc/include/asm/nohash/32/pgtable.h | 12 +-
arch/powerpc/include/asm/nohash/pgtable.h | 2 +-
arch/powerpc/include/asm/nohash/tlbflush.h | 7 +
arch/powerpc/include/asm/pgtable.h | 7 -
arch/powerpc/include/asm/ppc_asm.h | 19 +
arch/powerpc/include/asm/processor.h | 15 +-
arch/powerpc/include/asm/prom.h | 1 +
arch/powerpc/include/asm/ps3.h | 4 -
arch/powerpc/include/asm/pte-walk.h | 25 -
arch/powerpc/include/asm/ptrace.h | 36 +-
arch/powerpc/include/asm/qspinlock.h | 192 +-
arch/powerpc/include/asm/qspinlock_paravirt.h | 7 -
arch/powerpc/include/asm/qspinlock_types.h | 72 +
arch/powerpc/include/asm/rtas.h | 15 -
arch/powerpc/include/asm/spinlock.h | 2 +-
arch/powerpc/include/asm/spinlock_types.h | 2 +-
arch/powerpc/include/asm/stackprotector.h | 10 +-
arch/powerpc/kernel/asm-offsets.c | 34 +-
arch/powerpc/kernel/cpu_setup_6xx.S | 26 +-
arch/powerpc/kernel/cpu_setup_e500.S | 8 +-
arch/powerpc/kernel/entry_32.S | 23 +-
arch/powerpc/kernel/entry_64.S | 2 +
arch/powerpc/kernel/exceptions-64e.S | 48 +-
arch/powerpc/kernel/exceptions-64s.S | 120 +-
arch/powerpc/kernel/head_32.h | 4 +-
arch/powerpc/kernel/head_40x.S | 7 +-
arch/powerpc/kernel/head_44x.S | 6 +-
arch/powerpc/kernel/head_64.S | 13 +-
arch/powerpc/kernel/head_85xx.S | 13 +-
arch/powerpc/kernel/head_8xx.S | 7 +-
arch/powerpc/kernel/head_book3s_32.S | 33 +-
arch/powerpc/kernel/head_booke.h | 4 +-
arch/powerpc/kernel/hw_breakpoint.c | 2 +-
arch/powerpc/kernel/interrupt_64.S | 54 +-
arch/powerpc/kernel/irq.c | 4 +-
arch/powerpc/kernel/kgdb.c | 2 +-
arch/powerpc/kernel/kprobes.c | 23 +-
arch/powerpc/kernel/misc_32.S | 2 +-
arch/powerpc/kernel/misc_64.S | 8 +-
arch/powerpc/kernel/module_64.c | 10 +
arch/powerpc/kernel/optprobes.c | 2 +-
arch/powerpc/kernel/optprobes_head.S | 4 +-
arch/powerpc/kernel/ppc_save_regs.S | 57 +-
arch/powerpc/kernel/process.c | 99 +-
arch/powerpc/kernel/prom.c | 4 +
arch/powerpc/kernel/ptrace/ptrace-tm.c | 10 +-
arch/powerpc/kernel/ptrace/ptrace-view.c | 15 +-
arch/powerpc/kernel/rtas.c | 192 +-
arch/powerpc/kernel/rtasd.c | 7 +-
arch/powerpc/kernel/setup-common.c | 1 +
arch/powerpc/kernel/smp.c | 2 +-
arch/powerpc/kernel/stacktrace.c | 10 +-
arch/powerpc/kernel/swsusp_32.S | 5 +-
arch/powerpc/kernel/time.c | 23 +-
arch/powerpc/kernel/tm.S | 8 +-
arch/powerpc/kernel/trace/ftrace_mprofile.S | 2 +-
arch/powerpc/kernel/vdso.c | 22 -
arch/powerpc/kernel/vdso/Makefile | 2 +
arch/powerpc/kernel/vector.S | 4 +-
arch/powerpc/kexec/file_load_64.c | 61 +-
arch/powerpc/kexec/ranges.c | 8 +-
arch/powerpc/kvm/book3s_64_mmu_hv.c | 9 +-
arch/powerpc/kvm/book3s_64_mmu_radix.c | 2 +-
arch/powerpc/kvm/book3s_64_vio.c | 6 +-
arch/powerpc/kvm/book3s_hv_interrupts.S | 4 +-
arch/powerpc/kvm/book3s_hv_rm_mmu.c | 2 +-
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 27 +-
arch/powerpc/kvm/book3s_hv_uvmem.c | 5 +-
arch/powerpc/kvm/book3s_xive.c | 12 +-
arch/powerpc/kvm/book3s_xive.h | 3 +-
arch/powerpc/kvm/book3s_xive_native.c | 3 +-
arch/powerpc/kvm/booke.c | 3 +
arch/powerpc/kvm/bookehv_interrupts.S | 9 -
arch/powerpc/kvm/fpu.S | 17 +-
arch/powerpc/kvm/irq.h | 22 -
arch/powerpc/kvm/powerpc.c | 18 +-
arch/powerpc/lib/Makefile | 4 +-
arch/powerpc/lib/code-patching.c | 238 +-
arch/powerpc/lib/feature-fixups.c | 173 +-
arch/powerpc/lib/qspinlock.c | 997 +
arch/powerpc/lib/sstep.c | 21 +-
arch/powerpc/lib/test_emulate_step_exec_instr.S | 2 +-
arch/powerpc/mm/book3s64/hash_4k.c | 5 +
arch/powerpc/mm/book3s64/hash_64k.c | 10 +
arch/powerpc/mm/book3s64/hash_utils.c | 130 +-
arch/powerpc/mm/book3s64/internal.h | 11 +
arch/powerpc/mm/book3s64/pgtable.c | 4 +-
arch/powerpc/mm/hugetlbpage.c | 37 -
arch/powerpc/mm/mem.c | 1 -
arch/powerpc/mm/nohash/kaslr_booke.c | 1 -
arch/powerpc/mm/nohash/tlb.c | 8 +
arch/powerpc/net/bpf_jit_comp32.c | 52 +-
arch/powerpc/perf/callchain.c | 9 +-
arch/powerpc/perf/core-book3s.c | 8 +-
arch/powerpc/perf/hv-gpci-requests.h | 4 +
arch/powerpc/perf/hv-gpci.c | 35 +-
arch/powerpc/perf/hv-gpci.h | 1 +
arch/powerpc/perf/req-gen/perf.h | 20 +
arch/powerpc/platforms/44x/warp.c | 105 +-
arch/powerpc/platforms/4xx/hsta_msi.c | 1 +
arch/powerpc/platforms/52xx/lite5200_sleep.S | 15 +-
arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c | 15 +-
arch/powerpc/platforms/83xx/mpc832x_rdb.c | 2 +-
arch/powerpc/platforms/85xx/sgy_cts1000.c | 132 +-
arch/powerpc/platforms/Kconfig.cputype | 9 +-
arch/powerpc/platforms/book3s/vas-api.c | 2 +-
arch/powerpc/platforms/cell/axon_msi.c | 1 +
arch/powerpc/platforms/pasemi/gpio_mdio.c | 4 +-
arch/powerpc/platforms/pasemi/msi.c | 1 +
arch/powerpc/platforms/powermac/setup.c | 18 +-
arch/powerpc/platforms/ps3/system-bus.c | 2 +-
arch/powerpc/platforms/pseries/eeh_pseries.c | 15 +-
arch/powerpc/platforms/pseries/hotplug-cpu.c | 1 +
arch/powerpc/platforms/pseries/hvCall.S | 38 +-
arch/powerpc/platforms/pseries/iommu.c | 2 +-
arch/powerpc/platforms/pseries/mobility.c | 7 +-
arch/powerpc/platforms/pseries/msi.c | 7 +-
arch/powerpc/platforms/pseries/plpks.c | 50 +-
arch/powerpc/platforms/pseries/plpks.h | 2 +-
arch/powerpc/sysdev/fsl_msi.c | 1 +
arch/powerpc/sysdev/fsl_pci.c | 13 +
arch/powerpc/sysdev/mpic_msgr.c | 4 +-
arch/powerpc/sysdev/mpic_u3msi.c | 1 +
arch/powerpc/sysdev/xive/native.c | 6 +-
arch/powerpc/sysdev/xive/spapr.c | 1 +
arch/powerpc/xmon/xmon.c | 17 +-
arch/riscv/Kconfig | 25 +-
arch/riscv/Kconfig.erratas | 13 +
arch/riscv/Kconfig.socs | 10 +-
arch/riscv/Makefile | 2 +-
arch/riscv/boot/Makefile | 3 +
arch/riscv/boot/dts/Makefile | 1 +
.../boot/dts/microchip/mpfs-icicle-kit-fabric.dtsi | 33 +-
arch/riscv/boot/dts/microchip/mpfs-icicle-kit.dts | 36 +-
.../boot/dts/microchip/mpfs-m100pfs-fabric.dtsi | 4 +-
.../boot/dts/microchip/mpfs-polarberry-fabric.dtsi | 4 +-
.../boot/dts/microchip/mpfs-sev-kit-fabric.dtsi | 29 -
arch/riscv/boot/dts/microchip/mpfs.dtsi | 32 +
arch/riscv/boot/dts/renesas/Makefile | 2 +
arch/riscv/boot/dts/renesas/r9a07g043f.dtsi | 59 +
arch/riscv/boot/dts/renesas/r9a07g043f01-smarc.dts | 27 +
arch/riscv/boot/dts/renesas/rzfive-smarc-som.dtsi | 47 +
arch/riscv/boot/dts/renesas/rzfive-smarc.dtsi | 64 +
arch/riscv/boot/dts/starfive/Makefile | 2 +-
.../boot/dts/starfive/jh7100-beaglev-starlight.dts | 153 +-
arch/riscv/boot/dts/starfive/jh7100-common.dtsi | 161 +
.../dts/starfive/jh7100-starfive-visionfive-v1.dts | 20 +
arch/riscv/configs/defconfig | 6 +
arch/riscv/configs/nommu_k210_defconfig | 3 +-
arch/riscv/configs/nommu_k210_sdcard_defconfig | 3 +-
arch/riscv/configs/nommu_virt_defconfig | 3 +-
arch/riscv/errata/thead/errata.c | 19 +
arch/riscv/include/asm/alternative-macros.h | 99 +-
arch/riscv/include/asm/asm.h | 1 +
arch/riscv/include/asm/cacheflush.h | 7 +
arch/riscv/include/asm/efi.h | 19 +-
arch/riscv/include/asm/errata_list.h | 16 +-
arch/riscv/include/asm/hugetlb.h | 6 +
arch/riscv/include/asm/hwcap.h | 3 +-
arch/riscv/include/asm/io.h | 5 +
arch/riscv/include/asm/kexec.h | 5 +
arch/riscv/include/asm/kprobes.h | 2 -
arch/riscv/include/asm/kvm_host.h | 16 +-
arch/riscv/include/asm/kvm_vcpu_sbi.h | 6 +
arch/riscv/include/asm/mmu.h | 2 +
arch/riscv/include/asm/page.h | 18 +-
arch/riscv/include/asm/pgalloc.h | 11 +-
arch/riscv/include/asm/pgtable-64.h | 6 +-
arch/riscv/include/asm/pgtable.h | 8 +-
arch/riscv/include/asm/sbi.h | 5 +
arch/riscv/include/asm/smp.h | 3 +
arch/riscv/include/asm/stackprotector.h | 10 +-
arch/riscv/include/asm/tlbflush.h | 18 +
arch/riscv/include/asm/vdso.h | 2 +-
arch/riscv/include/asm/vmalloc.h | 18 +
arch/riscv/include/uapi/asm/kvm.h | 3 +
arch/riscv/include/uapi/asm/ucontext.h | 12 +-
arch/riscv/kernel/Makefile | 1 +
arch/riscv/kernel/cpu.c | 30 +-
arch/riscv/kernel/cpufeature.c | 43 +-
arch/riscv/kernel/crash_core.c | 21 +
arch/riscv/kernel/elf_kexec.c | 14 +
arch/riscv/kernel/entry.S | 34 +-
arch/riscv/kernel/image-vars.h | 6 -
arch/riscv/kernel/machine_kexec.c | 46 +-
arch/riscv/kernel/mcount.S | 44 +-
arch/riscv/kernel/probes/Makefile | 2 +-
arch/riscv/kernel/probes/kprobes.c | 13 -
arch/riscv/kernel/probes/rethook.c | 27 +
arch/riscv/kernel/probes/rethook.h | 8 +
.../{kprobes_trampoline.S => rethook_trampoline.S} | 6 +-
arch/riscv/kernel/sbi.c | 3 +
arch/riscv/kernel/setup.c | 9 +-
arch/riscv/kernel/signal.c | 34 +-
arch/riscv/kernel/smp.c | 97 +-
arch/riscv/kernel/stacktrace.c | 11 +-
arch/riscv/kernel/traps.c | 30 +-
arch/riscv/kernel/vdso.c | 22 -
arch/riscv/kernel/vdso/Makefile | 1 +
arch/riscv/kvm/main.c | 6 +
arch/riscv/kvm/mmu.c | 6 +-
arch/riscv/kvm/vcpu.c | 85 +-
arch/riscv/kvm/vcpu_sbi_base.c | 13 +-
arch/riscv/kvm/vcpu_sbi_hsm.c | 1 -
arch/riscv/kvm/vcpu_sbi_replace.c | 1 -
arch/riscv/kvm/vcpu_sbi_v01.c | 1 -
arch/riscv/mm/Makefile | 2 +
arch/riscv/mm/cacheflush.c | 7 +
arch/riscv/mm/context.c | 10 +
arch/riscv/mm/init.c | 25 +-
arch/riscv/mm/pgtable.c | 83 +
arch/riscv/mm/physaddr.c | 2 +-
arch/riscv/mm/pmem.c | 21 +
arch/riscv/mm/tlbflush.c | 28 +-
arch/riscv/net/bpf_jit_comp64.c | 29 +-
arch/s390/Kconfig | 8 +
arch/s390/appldata/appldata_base.c | 113 +-
arch/s390/boot/ipl_parm.c | 9 +
arch/s390/configs/debug_defconfig | 2 -
arch/s390/configs/defconfig | 2 -
arch/s390/configs/zfcpdump_defconfig | 1 -
arch/s390/hypfs/hypfs_diag.c | 8 -
arch/s390/include/asm/bugs.h | 21 -
arch/s390/include/asm/checksum.h | 7 +
arch/s390/include/asm/ftrace.h | 29 +-
arch/s390/include/asm/ipl.h | 11 +
arch/s390/include/asm/kvm_host.h | 14 +-
arch/s390/include/asm/mem_encrypt.h | 4 +-
arch/s390/include/asm/pai.h | 6 +
arch/s390/include/asm/pci.h | 5 +-
arch/s390/include/asm/pgtable.h | 3 +-
arch/s390/include/asm/sclp.h | 2 +
arch/s390/include/asm/serial.h | 7 -
arch/s390/include/asm/shmparam.h | 12 -
arch/s390/include/asm/stacktrace.h | 1 +
arch/s390/include/asm/tlb.h | 11 +-
arch/s390/include/asm/uv.h | 10 +
arch/s390/include/asm/vga.h | 7 -
arch/s390/include/asm/vx-insn-asm.h | 681 +
arch/s390/include/asm/vx-insn.h | 671 +-
arch/s390/include/uapi/asm/ipl.h | 29 +
arch/s390/kernel/asm-offsets.c | 1 +
arch/s390/kernel/crash_dump.c | 4 +-
arch/s390/kernel/debug.c | 7 +-
arch/s390/kernel/entry.S | 60 +-
arch/s390/kernel/fpu.c | 3 +-
arch/s390/kernel/ipl.c | 403 +-
arch/s390/kernel/kprobes.c | 3 +-
arch/s390/kernel/kprobes.h | 9 +
arch/s390/kernel/nmi.c | 181 +-
arch/s390/kernel/perf_pai_crypto.c | 50 +-
arch/s390/kernel/perf_pai_ext.c | 14 +-
arch/s390/kernel/process.c | 2 +-
arch/s390/kernel/setup.c | 4 +-
arch/s390/kernel/uv.c | 7 +
arch/s390/kernel/vdso.c | 22 +-
arch/s390/kvm/intercept.c | 9 +-
arch/s390/kvm/interrupt.c | 5 -
arch/s390/kvm/irq.h | 19 -
arch/s390/kvm/kvm-s390.c | 116 +-
arch/s390/kvm/kvm-s390.h | 8 +-
arch/s390/kvm/pci.c | 6 +-
arch/s390/kvm/priv.c | 3 +-
arch/s390/kvm/pv.c | 357 +-
arch/s390/kvm/vsie.c | 8 +-
arch/s390/mm/gmap.c | 152 +-
arch/s390/mm/init.c | 51 +-
arch/s390/mm/maccess.c | 2 +-
arch/s390/mm/page-states.c | 11 -
arch/s390/pci/pci.c | 13 +-
arch/s390/pci/pci_dma.c | 77 +-
arch/s390/pci/pci_irq.c | 2 +-
arch/sh/Kconfig | 2 +-
arch/sh/configs/landisk_defconfig | 1 -
arch/sh/configs/rsk7201_defconfig | 3 +-
arch/sh/configs/rsk7203_defconfig | 3 +-
arch/sh/configs/se7206_defconfig | 3 +-
arch/sh/configs/shmin_defconfig | 3 +-
arch/sh/configs/shx3_defconfig | 3 +-
arch/sh/drivers/push-switch.c | 2 +-
arch/sh/include/asm/pgtable-3level.h | 10 +-
arch/sh/include/asm/pgtable.h | 2 -
arch/sh/include/asm/stackprotector.h | 10 +-
arch/sh/kernel/ptrace_32.c | 8 +-
arch/sparc/include/asm/pgtable_32.h | 6 -
arch/sparc/include/asm/pgtable_64.h | 1 +
arch/sparc/kernel/ptrace_32.c | 9 +-
arch/sparc/kernel/ptrace_64.c | 23 +-
arch/sparc/mm/init_32.c | 3 +-
arch/sparc/mm/init_64.c | 1 -
arch/sparc/net/bpf_jit_comp_32.c | 10 +-
arch/sparc/vdso/vma.c | 2 +-
arch/um/drivers/Kconfig | 1 -
arch/um/drivers/random.c | 1 -
arch/um/drivers/virt-pci.c | 9 +-
arch/um/include/asm/pci.h | 2 +-
arch/um/include/asm/pgtable-3level.h | 8 -
arch/um/include/asm/pgtable.h | 2 -
arch/um/kernel/kmsg_dump.c | 24 +-
arch/um/kernel/process.c | 5 +-
arch/um/kernel/um_arch.c | 5 +
arch/x86/Kconfig | 138 +-
arch/x86/Makefile | 8 +-
arch/x86/boot/Makefile | 2 +-
arch/x86/boot/compressed/Makefile | 10 +-
arch/x86/boot/compressed/efi_mixed.S | 345 +
arch/x86/boot/compressed/efi_thunk_64.S | 195 -
arch/x86/boot/compressed/head_32.S | 4 -
arch/x86/boot/compressed/head_64.S | 311 +-
arch/x86/boot/compressed/kaslr.c | 2 +-
arch/x86/boot/compressed/mem_encrypt.S | 152 +-
arch/x86/boot/cpuflags.c | 15 +-
arch/x86/boot/header.S | 5 +-
arch/x86/boot/string.c | 2 +-
arch/x86/boot/tools/build.c | 2 +
arch/x86/coco/tdx/tdx.c | 40 +
arch/x86/crypto/Makefile | 3 +
arch/x86/crypto/aegis128-aesni-asm.S | 9 +-
arch/x86/crypto/aria-aesni-avx-asm_64.S | 13 +-
arch/x86/crypto/camellia-aesni-avx-asm_64.S | 2 -
arch/x86/crypto/camellia-aesni-avx2-asm_64.S | 4 -
arch/x86/crypto/cast5-avx-x86_64-asm_64.S | 2 -
arch/x86/crypto/crct10dif-pcl-asm_64.S | 1 -
arch/x86/crypto/nh-avx2-x86_64.S | 5 +-
arch/x86/crypto/nh-sse2-x86_64.S | 5 +-
arch/x86/crypto/nhpoly1305-avx2-glue.c | 11 +-
arch/x86/crypto/nhpoly1305-sse2-glue.c | 11 +-
arch/x86/crypto/poly1305-x86_64-cryptogams.pl | 1 -
arch/x86/crypto/serpent-avx-x86_64-asm_64.S | 2 -
arch/x86/crypto/serpent-avx2-asm_64.S | 2 -
arch/x86/crypto/sha1_ni_asm.S | 4 +-
arch/x86/crypto/sha1_ssse3_asm.S | 3 +-
arch/x86/crypto/sha256-avx-asm.S | 4 +-
arch/x86/crypto/sha256-avx2-asm.S | 4 +-
arch/x86/crypto/sha256-ssse3-asm.S | 4 +-
arch/x86/crypto/sha256_ni_asm.S | 4 +-
arch/x86/crypto/sha512-avx-asm.S | 3 +-
arch/x86/crypto/sha512-avx2-asm.S | 3 +-
arch/x86/crypto/sha512-ssse3-asm.S | 3 +-
arch/x86/crypto/sm3-avx-asm_64.S | 4 +-
arch/x86/crypto/sm4-aesni-avx-asm_64.S | 14 +-
arch/x86/crypto/sm4-aesni-avx2-asm_64.S | 13 +-
arch/x86/crypto/twofish-avx-x86_64-asm_64.S | 2 -
arch/x86/crypto/twofish_glue.c | 2 +-
arch/x86/entry/entry_32.S | 4 +-
arch/x86/entry/entry_64.S | 50 +-
arch/x86/entry/entry_64_compat.S | 11 +-
arch/x86/entry/thunk_64.S | 4 +-
arch/x86/entry/vdso/Makefile | 14 +-
arch/x86/entry/vdso/vdso.lds.S | 2 +
arch/x86/entry/vdso/vma.c | 32 +-
arch/x86/events/amd/brs.c | 2 +-
arch/x86/events/amd/core.c | 2 +-
arch/x86/events/amd/ibs.c | 4 +-
arch/x86/events/amd/lbr.c | 6 +-
arch/x86/events/core.c | 48 +-
arch/x86/events/intel/core.c | 23 +-
arch/x86/events/intel/ds.c | 4 +-
arch/x86/events/intel/lbr.c | 36 +-
arch/x86/events/intel/p4.c | 2 +-
arch/x86/events/intel/uncore.h | 24 +-
arch/x86/events/intel/uncore_snb.c | 3 +
arch/x86/events/intel/uncore_snbep.c | 495 +-
arch/x86/events/perf_event.h | 31 +-
arch/x86/hyperv/hv_init.c | 58 +-
arch/x86/ia32/Makefile | 2 -
arch/x86/include/asm/alternative.h | 68 +-
arch/x86/include/asm/apic.h | 3 +-
arch/x86/include/asm/cacheinfo.h | 13 +
arch/x86/include/asm/cmpxchg_32.h | 28 -
arch/x86/include/asm/cmpxchg_64.h | 5 -
arch/x86/include/asm/cpu.h | 2 +
arch/x86/include/asm/cpu_entry_area.h | 4 -
arch/x86/include/asm/cpufeatures.h | 6 +
arch/x86/include/asm/cpuid.h | 141 +-
arch/x86/include/asm/current.h | 32 +-
arch/x86/include/asm/debugreg.h | 2 +-
arch/x86/include/asm/disabled-features.h | 17 +-
arch/x86/include/asm/efi.h | 109 +-
arch/x86/include/asm/elf.h | 5 -
arch/x86/include/asm/entry-common.h | 4 +-
arch/x86/include/asm/fpu/signal.h | 7 -
arch/x86/include/asm/ftrace.h | 49 +-
arch/x86/include/asm/hardirq.h | 3 +-
arch/x86/include/asm/hyperv-tlfs.h | 48 +-
arch/x86/include/asm/hyperv_timer.h | 9 +
arch/x86/include/asm/irq_remapping.h | 4 -
arch/x86/include/asm/irq_stack.h | 12 +-
arch/x86/include/asm/irqdomain.h | 4 +-
arch/x86/include/asm/kasan.h | 3 +
arch/x86/include/asm/kvm-x86-ops.h | 4 +-
arch/x86/include/asm/kvm_host.h | 145 +-
arch/x86/include/asm/linkage.h | 63 +-
arch/x86/include/asm/memtype.h | 5 +-
arch/x86/include/asm/microcode.h | 4 +-
arch/x86/include/asm/microcode_intel.h | 5 +-
arch/x86/include/asm/mshyperv.h | 2 -
arch/x86/include/asm/msi.h | 6 +
arch/x86/include/asm/msr-index.h | 22 +-
arch/x86/include/asm/mtrr.h | 16 +-
arch/x86/include/asm/nospec-branch.h | 178 +-
arch/x86/include/asm/page_types.h | 12 +-
arch/x86/include/asm/paravirt.h | 17 +-
arch/x86/include/asm/paravirt_types.h | 89 +-
arch/x86/include/asm/pci.h | 5 +-
arch/x86/include/asm/perf_event.h | 6 +-
arch/x86/include/asm/pgtable-3level.h | 171 +-
arch/x86/include/asm/pgtable-3level_types.h | 7 +
arch/x86/include/asm/pgtable.h | 27 +-
arch/x86/include/asm/pgtable_32.h | 9 -
arch/x86/include/asm/pgtable_64.h | 1 -
arch/x86/include/asm/pgtable_64_types.h | 1 +
arch/x86/include/asm/pgtable_areas.h | 8 +-
arch/x86/include/asm/pgtable_types.h | 4 +-
arch/x86/include/asm/preempt.h | 27 +-
arch/x86/include/asm/processor-flags.h | 2 +-
arch/x86/include/asm/processor.h | 144 +-
arch/x86/include/asm/qspinlock_paravirt.h | 47 +-
arch/x86/include/asm/realmode.h | 1 +
arch/x86/include/asm/resctrl.h | 8 +-
arch/x86/include/asm/segment.h | 2 +-
arch/x86/include/asm/set_memory.h | 3 +
arch/x86/include/asm/sgx.h | 33 +-
arch/x86/include/asm/sighandling.h | 9 +
arch/x86/include/asm/signal.h | 5 -
arch/x86/include/asm/smp.h | 12 +-
arch/x86/include/asm/stackprotector.h | 14 +-
arch/x86/include/asm/svm.h | 100 +-
arch/x86/include/asm/switch_to.h | 7 +-
arch/x86/include/asm/tdx.h | 2 +
arch/x86/include/asm/text-patching.h | 1 +
arch/x86/include/asm/x86_init.h | 4 +
arch/x86/include/uapi/asm/kvm.h | 13 +-
arch/x86/kernel/Makefile | 6 +-
arch/x86/kernel/acpi/cstate.c | 24 +-
arch/x86/kernel/alternative.c | 541 +-
arch/x86/kernel/amd_gart_64.c | 2 +-
arch/x86/kernel/apic/apic.c | 13 +-
arch/x86/kernel/apic/msi.c | 211 +-
arch/x86/kernel/apic/vector.c | 4 -
arch/x86/kernel/asm-offsets.c | 5 +
arch/x86/kernel/asm-offsets_64.c | 2 +-
arch/x86/kernel/callthunks.c | 388 +
arch/x86/kernel/cpu/Makefile | 3 -
arch/x86/kernel/cpu/amd.c | 2 +-
arch/x86/kernel/cpu/bugs.c | 160 +-
arch/x86/kernel/cpu/cacheinfo.c | 179 +
arch/x86/kernel/cpu/common.c | 101 +-
arch/x86/kernel/cpu/cpuid-deps.c | 1 +
arch/x86/kernel/cpu/hygon.c | 2 +-
arch/x86/kernel/cpu/intel.c | 207 +-
arch/x86/kernel/cpu/intel_epb.c | 7 +-
arch/x86/kernel/cpu/mce/amd.c | 33 +-
arch/x86/kernel/cpu/mce/severity.c | 8 +-
arch/x86/kernel/cpu/microcode/amd.c | 5 +-
arch/x86/kernel/cpu/microcode/core.c | 205 +-
arch/x86/kernel/cpu/microcode/intel.c | 167 +-
arch/x86/kernel/cpu/mshyperv.c | 6 +
arch/x86/kernel/cpu/mtrr/amd.c | 8 +-
arch/x86/kernel/cpu/mtrr/centaur.c | 8 +-
arch/x86/kernel/cpu/mtrr/cyrix.c | 42 +-
arch/x86/kernel/cpu/mtrr/generic.c | 107 +-
arch/x86/kernel/cpu/mtrr/mtrr.c | 173 +-
arch/x86/kernel/cpu/mtrr/mtrr.h | 15 +-
arch/x86/kernel/cpu/resctrl/core.c | 4 +-
arch/x86/kernel/cpu/resctrl/ctrlmondata.c | 3 +-
arch/x86/kernel/cpu/resctrl/internal.h | 10 -
arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 8 +-
arch/x86/kernel/cpu/scattered.c | 1 +
arch/x86/kernel/cpu/sgx/encl.c | 39 +-
arch/x86/kernel/cpu/sgx/ioctl.c | 6 +-
arch/x86/kernel/cpu/sgx/main.c | 8 +-
arch/x86/kernel/cpu/tsx.c | 38 +-
arch/x86/kernel/cpuid.c | 2 +-
arch/x86/kernel/crash_dump_64.c | 2 +-
arch/x86/kernel/devicetree.c | 18 +-
arch/x86/kernel/dumpstack_32.c | 4 +-
arch/x86/kernel/dumpstack_64.c | 2 +-
arch/x86/kernel/espfix_64.c | 12 +-
arch/x86/kernel/fpu/core.c | 19 +-
arch/x86/kernel/fpu/init.c | 7 +-
arch/x86/kernel/fpu/regset.c | 2 +-
arch/x86/kernel/fpu/signal.c | 2 +-
arch/x86/kernel/fpu/xstate.c | 64 +-
arch/x86/kernel/fpu/xstate.h | 4 +-
arch/x86/kernel/ftrace.c | 28 +-
arch/x86/kernel/ftrace_64.S | 37 +-
arch/x86/kernel/head64.c | 2 +-
arch/x86/kernel/head_32.S | 22 -
arch/x86/kernel/head_64.S | 1 +
arch/x86/kernel/hw_breakpoint.c | 2 +-
arch/x86/kernel/i8259.c | 2 +-
arch/x86/kernel/irq_32.c | 13 +-
arch/x86/kernel/irq_64.c | 6 +-
arch/x86/kernel/kprobes/core.c | 21 +-
arch/x86/kernel/kprobes/opt.c | 28 +-
arch/x86/kernel/kvm.c | 20 +-
arch/x86/kernel/module.c | 60 +-
arch/x86/kernel/msr.c | 2 +-
arch/x86/kernel/paravirt.c | 21 +-
arch/x86/kernel/process.c | 4 +-
arch/x86/kernel/process_32.c | 6 +-
arch/x86/kernel/process_64.c | 10 +-
arch/x86/kernel/ptrace.c | 174 +-
arch/x86/kernel/relocate_kernel_64.S | 5 +-
arch/x86/kernel/resource.c | 12 +-
arch/x86/kernel/setup.c | 17 +-
arch/x86/kernel/setup_percpu.c | 9 +-
arch/x86/kernel/signal.c | 654 +-
.../x86/{ia32/ia32_signal.c => kernel/signal_32.c} | 117 +-
arch/x86/kernel/signal_64.c | 383 +
arch/x86/kernel/smpboot.c | 20 +-
arch/x86/kernel/static_call.c | 3 +-
arch/x86/kernel/topology.c | 2 +-
arch/x86/kernel/traps.c | 8 +-
arch/x86/kernel/tsc.c | 2 +-
arch/x86/kernel/unwind_orc.c | 21 +-
arch/x86/kernel/uprobes.c | 4 +-
arch/x86/kernel/vmlinux.lds.S | 37 +-
arch/x86/kernel/x86_init.c | 3 +
arch/x86/kvm/Kconfig | 11 +
arch/x86/kvm/Makefile | 6 +-
arch/x86/kvm/cpuid.c | 39 +-
arch/x86/kvm/emulate.c | 355 +-
arch/x86/kvm/hyperv.c | 366 +-
arch/x86/kvm/hyperv.h | 64 +-
arch/x86/kvm/irq.c | 7 +-
arch/x86/kvm/irq_comm.c | 5 +-
arch/x86/kvm/kvm_cache_regs.h | 5 -
arch/x86/kvm/kvm_emulate.h | 48 +-
arch/x86/kvm/lapic.c | 16 +-
arch/x86/kvm/lapic.h | 6 +-
arch/x86/kvm/mmu/mmu.c | 189 +-
arch/x86/kvm/mmu/mmu_internal.h | 33 +-
arch/x86/kvm/mmu/paging_tmpl.h | 6 +-
arch/x86/kvm/mmu/spte.c | 12 +
arch/x86/kvm/mmu/spte.h | 21 +-
arch/x86/kvm/mmu/tdp_mmu.c | 127 +-
arch/x86/kvm/mmu/tdp_mmu.h | 2 +
arch/x86/kvm/pmu.c | 93 +-
arch/x86/kvm/pmu.h | 9 +-
arch/x86/kvm/reverse_cpuid.h | 28 +-
arch/x86/kvm/smm.c | 649 +
arch/x86/kvm/smm.h | 168 +
arch/x86/kvm/svm/hyperv.c | 18 +
arch/x86/kvm/svm/hyperv.h | 50 +-
arch/x86/kvm/svm/nested.c | 64 +-
arch/x86/kvm/svm/pmu.c | 4 +-
arch/x86/kvm/svm/sev.c | 6 +-
arch/x86/kvm/svm/svm.c | 79 +-
arch/x86/kvm/svm/svm.h | 5 +-
arch/x86/kvm/svm/svm_onhyperv.c | 8 +-
arch/x86/kvm/svm/svm_onhyperv.h | 25 +-
arch/x86/kvm/svm/vmenter.S | 1 +
arch/x86/kvm/trace.h | 36 +-
arch/x86/kvm/vmx/capabilities.h | 24 -
arch/x86/kvm/vmx/{evmcs.c => hyperv.c} | 45 +-
arch/x86/kvm/vmx/{evmcs.h => hyperv.h} | 12 +-
arch/x86/kvm/vmx/nested.c | 132 +-
arch/x86/kvm/vmx/nested.h | 7 +-
arch/x86/kvm/vmx/pmu_intel.c | 11 +-
arch/x86/kvm/vmx/sgx.c | 4 +-
arch/x86/kvm/vmx/vmcs12.h | 5 +-
arch/x86/kvm/vmx/vmenter.S | 2 +
arch/x86/kvm/vmx/vmx.c | 111 +-
arch/x86/kvm/vmx/vmx_ops.h | 20 +-
arch/x86/kvm/x86.c | 563 +-
arch/x86/kvm/x86.h | 1 +
arch/x86/kvm/xen.c | 663 +-
arch/x86/kvm/xen.h | 13 +-
arch/x86/lib/Makefile | 1 +
arch/x86/lib/error-inject.c | 1 +
arch/x86/lib/memcpy_32.c | 187 -
arch/x86/lib/memmove_32.S | 200 +
arch/x86/lib/putuser.S | 62 +-
arch/x86/lib/retpoline.S | 107 +-
arch/x86/mm/cpu_entry_area.c | 58 +-
arch/x86/mm/init.c | 2 +-
arch/x86/mm/init_64.c | 133 +-
arch/x86/mm/ioremap.c | 8 +-
arch/x86/mm/kasan_init_64.c | 53 +-
arch/x86/mm/kmmio.c | 50 +-
arch/x86/mm/mem_encrypt_boot.S | 4 +-
arch/x86/mm/mem_encrypt_identity.c | 18 +-
arch/x86/mm/pat/cpa-test.c | 4 +-
arch/x86/mm/pat/memtype.c | 157 +-
arch/x86/mm/pat/set_memory.c | 123 +-
arch/x86/mm/pgtable.c | 22 +-
arch/x86/mm/pti.c | 2 +-
arch/x86/net/bpf_jit_comp.c | 169 +-
arch/x86/pci/acpi.c | 39 +-
arch/x86/platform/efi/Makefile | 5 +-
arch/x86/platform/efi/efi.c | 54 +-
.../firmware => arch/x86/platform}/efi/fake_mem.c | 79 +-
arch/x86/platform/efi/memmap.c | 239 +
.../x86/platform}/efi/runtime-map.c | 7 +-
arch/x86/platform/olpc/olpc-xo15-sci.c | 3 +-
arch/x86/power/cpu.c | 26 +-
arch/x86/power/hibernate.c | 2 +-
arch/x86/realmode/init.c | 8 +-
arch/x86/um/asm/elf.h | 4 -
arch/x86/xen/enlighten_pv.c | 6 +-
arch/x86/xen/smp.c | 24 +-
arch/x86/xen/smp_pv.c | 12 +-
arch/x86/xen/spinlock.c | 6 +-
arch/x86/xen/xen-asm.S | 8 +-
arch/xtensa/configs/audio_kc705_defconfig | 1 -
arch/xtensa/configs/cadence_csp_defconfig | 4 -
arch/xtensa/configs/generic_kc705_defconfig | 1 -
arch/xtensa/configs/nommu_kc705_defconfig | 1 -
arch/xtensa/configs/smp_lx200_defconfig | 1 -
arch/xtensa/configs/xip_kc705_defconfig | 1 -
arch/xtensa/include/asm/pgtable.h | 2 -
arch/xtensa/include/asm/stackprotector.h | 9 +-
arch/xtensa/kernel/xtensa_ksyms.c | 2 +
arch/xtensa/lib/Makefile | 2 +-
arch/xtensa/lib/umulsidi3.S | 230 +
block/bdev.c | 4 +-
block/bfq-cgroup.c | 28 +-
block/bfq-iosched.c | 117 +-
block/bfq-iosched.h | 36 +-
block/bfq-wf2q.c | 157 +-
block/bio.c | 146 +-
block/blk-cgroup.c | 96 +-
block/blk-cgroup.h | 10 +
block/blk-core.c | 84 +-
block/blk-crypto-internal.h | 22 +-
block/blk-crypto-profile.c | 1 +
block/blk-crypto-sysfs.c | 11 +-
block/blk-crypto.c | 43 +-
block/blk-ia-ranges.c | 3 +-
block/blk-iocost.c | 61 +-
block/blk-iolatency.c | 39 +-
block/blk-map.c | 14 +-
block/blk-merge.c | 44 +-
block/blk-mq-sched.c | 8 +-
block/blk-mq-sysfs.c | 11 +-
block/blk-mq.c | 236 +-
block/blk-mq.h | 14 +-
block/blk-settings.c | 6 +-
block/blk-sysfs.c | 137 +-
block/blk-throttle.c | 102 +-
block/blk-wbt.c | 26 +-
block/blk-wbt.h | 17 +-
block/blk.h | 27 +-
block/bsg-lib.c | 2 +
block/bsg.c | 13 +-
block/elevator.c | 254 +-
block/elevator.h | 20 +-
block/fops.c | 7 -
block/genhd.c | 39 +-
block/holder.c | 103 +-
block/ioctl.c | 12 +-
block/kyber-iosched.c | 2 +-
block/mq-deadline.c | 83 +-
block/sed-opal.c | 39 +
crypto/Kconfig | 9 +-
crypto/Makefile | 1 -
crypto/aes_generic.c | 2 +-
crypto/aes_ti.c | 2 +-
crypto/af_alg.c | 135 +-
crypto/algapi.c | 160 +-
crypto/algboss.c | 22 +-
crypto/anubis.c | 2 +-
crypto/api.c | 11 +-
crypto/blowfish_common.c | 3 +-
crypto/blowfish_generic.c | 3 +-
crypto/camellia_generic.c | 2 +-
crypto/cast5_generic.c | 2 +-
crypto/cast6_generic.c | 2 +-
crypto/ccm.c | 2 +-
crypto/cryptd.c | 36 +-
crypto/des_generic.c | 2 +-
crypto/dh.c | 4 +-
crypto/fcrypt.c | 2 +-
crypto/internal.h | 20 +-
crypto/kdf_sp800108.c | 10 +-
crypto/khazad.c | 2 +-
crypto/rsa-pkcs1pad.c | 7 +-
crypto/seed.c | 2 +-
crypto/serpent_generic.c | 2 +-
crypto/shash.c | 27 +-
crypto/skcipher.c | 2 +-
crypto/sm4_generic.c | 2 +-
crypto/tcrypt.c | 317 +-
crypto/tea.c | 2 +-
crypto/testmgr.c | 109 +-
crypto/testmgr.h | 977 +
crypto/twofish_common.c | 2 +-
crypto/twofish_generic.c | 2 +-
drivers/Kconfig | 2 +
drivers/Makefile | 1 +
drivers/accel/Kconfig | 26 +
drivers/accel/Makefile | 3 +
drivers/accel/drm_accel.c | 323 +
drivers/accel/ivpu/Kconfig | 15 +
drivers/accel/ivpu/Makefile | 16 +
drivers/accel/ivpu/TODO | 11 +
drivers/accel/ivpu/ivpu_drv.c | 654 +
drivers/accel/ivpu/ivpu_drv.h | 190 +
drivers/accel/ivpu/ivpu_fw.c | 423 +
drivers/accel/ivpu/ivpu_fw.h | 38 +
drivers/accel/ivpu/ivpu_gem.c | 753 +
drivers/accel/ivpu/ivpu_gem.h | 127 +
drivers/accel/ivpu/ivpu_hw.h | 170 +
drivers/accel/ivpu/ivpu_hw_mtl.c | 1084 +
drivers/accel/ivpu/ivpu_hw_mtl_reg.h | 280 +
drivers/accel/ivpu/ivpu_hw_reg_io.h | 115 +
drivers/accel/ivpu/ivpu_ipc.c | 510 +
drivers/accel/ivpu/ivpu_ipc.h | 93 +
drivers/accel/ivpu/ivpu_job.c | 614 +
drivers/accel/ivpu/ivpu_job.h | 67 +
drivers/accel/ivpu/ivpu_jsm_msg.c | 169 +
drivers/accel/ivpu/ivpu_jsm_msg.h | 23 +
drivers/accel/ivpu/ivpu_mmu.c | 883 +
drivers/accel/ivpu/ivpu_mmu.h | 50 +
drivers/accel/ivpu/ivpu_mmu_context.c | 398 +
drivers/accel/ivpu/ivpu_mmu_context.h | 50 +
drivers/accel/ivpu/ivpu_pm.c | 329 +
drivers/accel/ivpu/ivpu_pm.h | 38 +
drivers/accel/ivpu/vpu_boot_api.h | 349 +
drivers/accel/ivpu/vpu_jsm_api.h | 999 +
drivers/accessibility/speakup/Makefile | 4 +-
drivers/accessibility/speakup/kobjects.c | 3 +
drivers/accessibility/speakup/main.c | 72 +-
drivers/accessibility/speakup/makemapdata.c | 7 +-
drivers/accessibility/speakup/speakup.h | 1 +
drivers/accessibility/speakup/speakup_acntpc.c | 38 +-
drivers/accessibility/speakup/speakup_acntsa.c | 37 +-
drivers/accessibility/speakup/speakup_apollo.c | 46 +-
drivers/accessibility/speakup/speakup_audptr.c | 42 +-
drivers/accessibility/speakup/speakup_bns.c | 36 +-
drivers/accessibility/speakup/speakup_decext.c | 44 +-
drivers/accessibility/speakup/speakup_decpc.c | 48 +-
drivers/accessibility/speakup/speakup_dectlk.c | 45 +-
drivers/accessibility/speakup/speakup_dtlk.c | 50 +-
drivers/accessibility/speakup/speakup_dummy.c | 53 +-
drivers/accessibility/speakup/speakup_keypc.c | 29 +-
drivers/accessibility/speakup/speakup_ltlk.c | 53 +-
drivers/accessibility/speakup/speakup_soft.c | 59 +-
drivers/accessibility/speakup/speakup_spkout.c | 43 +-
drivers/accessibility/speakup/speakup_txprt.c | 45 +-
drivers/accessibility/speakup/spk_types.h | 2 +-
drivers/accessibility/speakup/varhandlers.c | 1 +
drivers/acpi/Kconfig | 12 +-
drivers/acpi/Makefile | 1 +
drivers/acpi/ac.c | 8 +-
drivers/acpi/acpi_ffh.c | 55 +
drivers/acpi/acpi_pad.c | 7 +-
drivers/acpi/acpi_pcc.c | 47 +-
drivers/acpi/acpi_video.c | 25 +-
drivers/acpi/acpica/Makefile | 1 +
drivers/acpi/acpica/acglobal.h | 1 +
drivers/acpi/acpica/actables.h | 5 -
drivers/acpi/acpica/acutils.h | 13 +
drivers/acpi/acpica/dsmethod.c | 10 +-
drivers/acpi/acpica/dswexec.c | 6 +-
drivers/acpi/acpica/evevent.c | 11 +
drivers/acpi/acpica/evregion.c | 9 +
drivers/acpi/acpica/evxfregn.c | 92 +-
drivers/acpi/acpica/exconfig.c | 4 +-
drivers/acpi/acpica/exfield.c | 8 +-
drivers/acpi/acpica/exserial.c | 6 +
drivers/acpi/acpica/hwsleep.c | 14 +
drivers/acpi/acpica/tbdata.c | 2 +-
drivers/acpi/acpica/tbfadt.c | 2 +-
drivers/acpi/acpica/tbprint.c | 77 +-
drivers/acpi/acpica/tbutils.c | 2 +-
drivers/acpi/acpica/tbxfroot.c | 32 +-
drivers/acpi/acpica/utcksum.c | 170 +
drivers/acpi/acpica/utcopy.c | 7 -
drivers/acpi/acpica/utglobal.c | 4 +
drivers/acpi/acpica/utstring.c | 10 +-
drivers/acpi/apei/apei-base.c | 2 +-
drivers/acpi/apei/einj.c | 56 +-
drivers/acpi/apei/ghes.c | 130 +-
drivers/acpi/arm64/Kconfig | 3 +
drivers/acpi/arm64/Makefile | 1 +
drivers/acpi/arm64/apmt.c | 178 +
drivers/acpi/arm64/iort.c | 16 +-
drivers/acpi/battery.c | 16 +-
drivers/acpi/bus.c | 5 +
drivers/acpi/button.c | 5 +-
drivers/acpi/cppc_acpi.c | 4 +-
drivers/acpi/ec.c | 47 +-
drivers/acpi/fan_attr.c | 16 +-
drivers/acpi/fan_core.c | 1 +
drivers/acpi/hed.c | 3 +-
drivers/acpi/internal.h | 1 +
drivers/acpi/irq.c | 5 +-
drivers/acpi/nfit/core.c | 3 +-
drivers/acpi/nfit/intel.c | 30 +-
drivers/acpi/numa/hmat.c | 34 +-
drivers/acpi/pci_irq.c | 6 +-
drivers/acpi/pci_root.c | 1 +
drivers/acpi/pfr_telemetry.c | 6 +-
drivers/acpi/pfr_update.c | 8 +-
drivers/acpi/power.c | 2 +-
drivers/acpi/processor_idle.c | 9 +-
drivers/acpi/processor_perflib.c | 100 +-
drivers/acpi/processor_throttling.c | 4 +-
drivers/acpi/resource.c | 32 +-
drivers/acpi/sbs.c | 9 +-
drivers/acpi/sbshc.c | 7 +-
drivers/acpi/scan.c | 2 +-
drivers/acpi/sysfs.c | 5 +-
drivers/acpi/tables.c | 17 +-
drivers/acpi/thermal.c | 9 +-
drivers/acpi/tiny-power-button.c | 10 +-
drivers/acpi/video_detect.c | 133 +-
drivers/acpi/x86/s2idle.c | 87 +-
drivers/acpi/x86/utils.c | 24 +-
drivers/amba/bus.c | 6 -
drivers/ata/Kconfig | 13 +-
drivers/ata/Makefile | 1 -
drivers/ata/ahci.c | 33 +-
drivers/ata/ahci.h | 245 +-
drivers/ata/libahci.c | 20 +-
drivers/ata/libahci_platform.c | 2 +-
drivers/ata/libata-acpi.c | 4 +-
drivers/ata/libata-core.c | 7 +-
drivers/ata/libata-eh.c | 40 +-
drivers/ata/libata-sata.c | 50 +-
drivers/ata/libata-scsi.c | 18 +-
drivers/ata/libata-sff.c | 56 -
drivers/ata/libata.h | 1 +
drivers/ata/pata_bk3710.c | 380 -
drivers/ata/pata_ep93xx.c | 3 +-
drivers/ata/pata_ftide010.c | 2 +-
drivers/ata/pata_mpc52xx.c | 2 +-
drivers/ata/sata_dwc_460ex.c | 12 +-
drivers/ata/sata_gemini.c | 2 +-
drivers/ata/sata_nv.c | 2 +-
drivers/ata/sata_promise.c | 2 +-
drivers/ata/sata_sx4.c | 2 +-
drivers/atm/idt77252.c | 6 +-
drivers/base/Makefile | 2 +-
drivers/base/base.h | 1 -
drivers/base/bus.c | 2 +-
drivers/base/cacheinfo.c | 19 +-
drivers/base/class.c | 7 +-
drivers/base/core.c | 66 +-
drivers/base/dd.c | 8 +-
drivers/base/devres.c | 3 +
drivers/base/firmware_loader/firmware.h | 2 -
drivers/base/firmware_loader/main.c | 2 +-
drivers/base/firmware_loader/sysfs.c | 6 +-
drivers/base/firmware_loader/sysfs.h | 6 +-
drivers/base/memory.c | 38 +
drivers/base/platform-msi.c | 6 +-
drivers/base/platform.c | 4 +-
drivers/base/power/domain.c | 176 +-
drivers/base/power/domain_governor.c | 3 +
drivers/base/power/runtime.c | 145 +-
drivers/base/property.c | 36 +-
drivers/base/regmap/Kconfig | 6 +-
drivers/base/regmap/Makefile | 1 +
drivers/base/regmap/regmap-fsi.c | 231 +
drivers/base/regmap/regmap-irq.c | 59 +-
drivers/base/regmap/regmap.c | 13 +
drivers/base/test/Kconfig | 1 +
drivers/bcma/driver_gpio.c | 8 +-
drivers/bcma/main.c | 4 +-
drivers/bcma/sprom.c | 2 +-
drivers/block/Kconfig | 43 -
drivers/block/Makefile | 1 -
drivers/block/aoe/aoechr.c | 2 +-
drivers/block/drbd/Kconfig | 2 +-
drivers/block/drbd/Makefile | 2 +-
drivers/block/drbd/drbd_actlog.c | 8 +-
drivers/block/drbd/drbd_bitmap.c | 62 +-
drivers/block/drbd/drbd_debugfs.c | 2 +-
drivers/block/drbd/drbd_debugfs.h | 2 +-
drivers/block/drbd/drbd_int.h | 78 +-
drivers/block/drbd/drbd_interval.c | 2 +-
drivers/block/drbd/drbd_interval.h | 2 +-
drivers/block/drbd/drbd_main.c | 25 +-
drivers/block/drbd/drbd_nl.c | 27 +-
drivers/block/drbd/drbd_nla.c | 2 +-
drivers/block/drbd/drbd_nla.h | 2 +-
drivers/block/drbd/drbd_polymorph_printk.h | 141 +
drivers/block/drbd/drbd_proc.c | 2 +-
drivers/block/drbd/drbd_protocol.h | 2 +-
drivers/block/drbd/drbd_receiver.c | 108 +-
drivers/block/drbd/drbd_req.c | 8 +-
drivers/block/drbd/drbd_req.h | 2 +-
drivers/block/drbd/drbd_state.c | 2 +-
drivers/block/drbd/drbd_state.h | 2 +-
drivers/block/drbd/drbd_state_change.h | 2 +-
drivers/block/drbd/drbd_strings.c | 2 +-
drivers/block/drbd/drbd_strings.h | 2 +-
drivers/block/drbd/drbd_vli.h | 2 +-
drivers/block/drbd/drbd_worker.c | 18 +-
drivers/block/floppy.c | 4 +-
drivers/block/loop.c | 42 +-
drivers/block/nbd.c | 11 +-
drivers/block/null_blk/main.c | 22 +-
drivers/block/null_blk/null_blk.h | 8 +
drivers/block/null_blk/zoned.c | 95 +-
drivers/block/pktcdvd.c | 2944 --
drivers/block/ublk_drv.c | 82 +-
drivers/block/virtio_blk.c | 8 +-
drivers/block/xen-blkfront.c | 1 -
drivers/block/zram/Kconfig | 9 +
drivers/block/zram/zcomp.c | 6 +-
drivers/block/zram/zcomp.h | 2 +-
drivers/block/zram/zram_drv.c | 619 +-
drivers/block/zram/zram_drv.h | 24 +-
drivers/bluetooth/Kconfig | 23 +
drivers/bluetooth/Makefile | 1 +
drivers/bluetooth/btintel.c | 21 +-
drivers/bluetooth/btrtl.c | 7 +
drivers/bluetooth/btrtl.h | 21 +
drivers/bluetooth/btusb.c | 234 +-
drivers/bluetooth/hci_bcm.c | 13 +-
drivers/bluetooth/hci_bcm4377.c | 2514 ++
drivers/bluetooth/hci_bcsp.c | 4 +-
drivers/bluetooth/hci_h5.c | 2 +-
drivers/bluetooth/hci_ll.c | 2 +-
drivers/bluetooth/hci_qca.c | 15 +-
drivers/bluetooth/virtio_bt.c | 35 +-
drivers/bus/fsl-mc/Kconfig | 2 +-
drivers/bus/fsl-mc/dprc-driver.c | 1 -
drivers/bus/fsl-mc/fsl-mc-bus.c | 1 -
drivers/bus/fsl-mc/fsl-mc-msi.c | 25 +-
drivers/bus/intel-ixp4xx-eb.c | 9 +-
drivers/bus/mhi/host/boot.c | 4 +-
drivers/bus/mhi/host/internal.h | 2 +-
drivers/bus/mhi/host/pci_generic.c | 25 +-
drivers/bus/mhi/host/pm.c | 3 +-
drivers/bus/sunxi-rsb.c | 38 +-
drivers/bus/ti-sysc.c | 6 +
drivers/char/Kconfig | 36 -
drivers/char/agp/amd-k7-agp.c | 24 +-
drivers/char/agp/amd64-agp.c | 6 +-
drivers/char/agp/ati-agp.c | 22 +-
drivers/char/agp/efficeon-agp.c | 16 +-
drivers/char/agp/intel-agp.c | 11 +-
drivers/char/agp/nvidia-agp.c | 24 +-
drivers/char/agp/sis-agp.c | 7 +-
drivers/char/agp/via-agp.c | 6 +-
drivers/char/hw_random/amd-rng.c | 18 +-
drivers/char/hw_random/cavium-rng-vf.c | 1 -
drivers/char/hw_random/cn10k-rng.c | 1 -
drivers/char/hw_random/core.c | 17 +-
drivers/char/hw_random/geode-rng.c | 36 +-
drivers/char/hw_random/mpfs-rng.c | 1 -
drivers/char/hw_random/mtk-rng.c | 5 +-
drivers/char/hw_random/npcm-rng.c | 15 +-
drivers/char/hw_random/powernv-rng.c | 1 +
drivers/char/hw_random/s390-trng.c | 2 +-
drivers/char/hw_random/stm32-rng.c | 8 +-
drivers/char/hw_random/timeriomem-rng.c | 2 -
drivers/char/hw_random/virtio-rng.c | 1 -
drivers/char/ipmi/Kconfig | 10 +
drivers/char/ipmi/Makefile | 1 +
drivers/char/ipmi/ipmi_kcs_sm.c | 16 +-
drivers/char/ipmi/ipmi_msghandler.c | 14 +-
drivers/char/ipmi/ipmi_si_intf.c | 27 +-
drivers/char/ipmi/ipmi_ssif.c | 2 +-
drivers/char/ipmi/ipmi_watchdog.c | 4 +-
drivers/char/ipmi/kcs_bmc_aspeed.c | 24 +-
drivers/char/ipmi/ssif_bmc.c | 873 +
drivers/char/mem.c | 2 +-
drivers/char/misc.c | 45 +-
drivers/char/random.c | 266 +-
drivers/char/sonypi.c | 3 +-
drivers/char/tpm/eventlog/acpi.c | 12 +-
drivers/char/tpm/st33zp24/i2c.c | 142 +-
drivers/char/tpm/st33zp24/spi.c | 145 +-
drivers/char/tpm/st33zp24/st33zp24.c | 39 +-
drivers/char/tpm/st33zp24/st33zp24.h | 7 +-
drivers/char/tpm/tpm-chip.c | 7 +-
drivers/char/tpm/tpm-dev-common.c | 4 +-
drivers/char/tpm/tpm-interface.c | 5 +-
drivers/char/tpm/tpm_crb.c | 35 +-
drivers/char/tpm/tpm_ftpm_tee.c | 8 +-
drivers/char/tpm/tpm_tis.c | 9 +-
drivers/char/tpm/tpm_tis_core.c | 20 +-
drivers/char/tpm/tpm_tis_core.h | 1 +
drivers/char/tpm/tpm_tis_i2c.c | 3 +-
drivers/char/virtio_console.c | 26 +-
drivers/char/xillybus/xillybus_class.c | 7 +-
drivers/char/xillybus/xillyusb.c | 22 +-
drivers/clk/at91/at91rm9200.c | 2 +-
drivers/clk/clk-bulk.c | 6 +-
drivers/clk/clk-cdce925.c | 21 +-
drivers/clk/clk-fractional-divider.c | 65 +-
drivers/clk/clk-lmk04832.c | 41 +-
drivers/clk/clk-nomadik.c | 2 +-
drivers/clk/clk-stm32mp1.c | 2 +-
drivers/clk/clk-versaclock5.c | 1 -
drivers/clk/clk.c | 32 +
drivers/clk/imx/clk-imx6sll.c | 8 +-
drivers/clk/imx/clk-imx6sx.c | 12 +-
drivers/clk/imx/clk-imx6ul.c | 8 +-
drivers/clk/imx/clk-imx7d.c | 4 +-
drivers/clk/imx/clk-imx7ulp.c | 10 +-
drivers/clk/imx/clk-imx8mm.c | 12 +-
drivers/clk/imx/clk-imx8mn.c | 128 +-
drivers/clk/imx/clk-imx8mp.c | 28 +-
drivers/clk/imx/clk-imx8mq.c | 14 +-
drivers/clk/imx/clk-imx93.c | 46 +-
drivers/clk/imx/clk-imxrt1050.c | 5 +-
drivers/clk/imx/clk-pll14xx.c | 2 +
drivers/clk/imx/clk.c | 5 +-
drivers/clk/imx/clk.h | 3 +-
drivers/clk/ingenic/Kconfig | 10 +
drivers/clk/ingenic/Makefile | 1 +
drivers/clk/ingenic/cgu.c | 42 +-
drivers/clk/ingenic/cgu.h | 17 +-
drivers/clk/ingenic/jz4755-cgu.c | 346 +
drivers/clk/ingenic/x1000-cgu.c | 119 +-
drivers/clk/keystone/syscon-clk.c | 9 +-
drivers/clk/mediatek/Kconfig | 8 +
drivers/clk/mediatek/Makefile | 1 +
drivers/clk/mediatek/clk-fhctl.c | 244 +
drivers/clk/mediatek/clk-fhctl.h | 26 +
drivers/clk/mediatek/clk-mt6795-topckgen.c | 76 +-
drivers/clk/mediatek/clk-mt7986-infracfg.c | 2 +-
drivers/clk/mediatek/clk-mt8173.c | 76 +-
drivers/clk/mediatek/clk-mt8183.c | 216 +-
drivers/clk/mediatek/clk-mt8186-apmixedsys.c | 66 +-
drivers/clk/mediatek/clk-mt8186-mfg.c | 5 +-
drivers/clk/mediatek/clk-mt8186-topckgen.c | 89 +-
drivers/clk/mediatek/clk-mt8192.c | 76 +-
drivers/clk/mediatek/clk-mt8195-topckgen.c | 78 +-
drivers/clk/mediatek/clk-mtk.c | 2 +-
drivers/clk/mediatek/clk-mtk.h | 7 +-
drivers/clk/mediatek/clk-pll.c | 84 +-
drivers/clk/mediatek/clk-pll.h | 55 +
drivers/clk/mediatek/clk-pllfh.c | 275 +
drivers/clk/mediatek/clk-pllfh.h | 82 +
drivers/clk/meson/clk-pll.c | 21 +-
drivers/clk/microchip/Kconfig | 3 +-
drivers/clk/microchip/clk-mpfs-ccc.c | 6 +
drivers/clk/mstar/Kconfig | 7 +
drivers/clk/mstar/Makefile | 1 +
drivers/clk/mstar/clk-msc313-cpupll.c | 220 +
drivers/clk/qcom/Kconfig | 26 +
drivers/clk/qcom/Makefile | 3 +
drivers/clk/qcom/clk-alpha-pll.c | 16 +
drivers/clk/qcom/clk-alpha-pll.h | 5 +
drivers/clk/qcom/clk-krait.c | 2 +
drivers/clk/qcom/clk-rpm.c | 204 +-
drivers/clk/qcom/clk-rpmh.c | 427 +-
drivers/clk/qcom/dispcc-sc8280xp.c | 3218 ++
drivers/clk/qcom/dispcc-sm6350.c | 4 +-
drivers/clk/qcom/dispcc-sm6375.c | 610 +
drivers/clk/qcom/dispcc-sm8250.c | 38 +-
drivers/clk/qcom/gcc-ipq4019.c | 11 +-
drivers/clk/qcom/gcc-ipq806x.c | 4 +-
drivers/clk/qcom/gcc-ipq8074.c | 1795 +-
drivers/clk/qcom/gcc-msm8939.c | 35 +
drivers/clk/qcom/gcc-msm8974.c | 682 +-
drivers/clk/qcom/gcc-sc8280xp.c | 6 +
drivers/clk/qcom/gcc-sm6125.c | 1 -
drivers/clk/qcom/gcc-sm8250.c | 4 +-
drivers/clk/qcom/gcc-sm8550.c | 3387 ++
drivers/clk/qcom/gdsc.c | 64 +-
drivers/clk/qcom/gdsc.h | 2 -
drivers/clk/qcom/hfpll.c | 4 +-
drivers/clk/qcom/kpss-xcc.c | 13 +-
drivers/clk/qcom/krait-cc.c | 236 +-
drivers/clk/qcom/lpassaudiocc-sc7280.c | 55 +-
drivers/clk/qcom/lpasscorecc-sc7180.c | 34 +-
drivers/clk/qcom/mmcc-msm8974.c | 736 +-
drivers/clk/qcom/reset.c | 4 +-
drivers/clk/qcom/reset.h | 1 +
drivers/clk/renesas/r8a779a0-cpg-mssr.c | 2 +-
drivers/clk/renesas/r8a779f0-cpg-mssr.c | 28 +-
drivers/clk/renesas/r8a779g0-cpg-mssr.c | 33 +-
drivers/clk/renesas/r9a06g032-clocks.c | 3 +-
drivers/clk/renesas/r9a07g043-cpg.c | 5 -
drivers/clk/renesas/r9a07g044-cpg.c | 10 +-
drivers/clk/renesas/rzg2l-cpg.c | 49 +-
drivers/clk/renesas/rzg2l-cpg.h | 4 +
drivers/clk/rockchip/Kconfig | 8 +
drivers/clk/rockchip/Makefile | 1 +
drivers/clk/rockchip/clk-cpu.c | 69 +-
drivers/clk/rockchip/clk-pll.c | 219 +-
drivers/clk/rockchip/clk-rk3588.c | 2533 ++
drivers/clk/rockchip/clk.c | 15 +-
drivers/clk/rockchip/clk.h | 95 +-
drivers/clk/rockchip/rst-rk3588.c | 857 +
drivers/clk/rockchip/softrst.c | 34 +-
drivers/clk/samsung/clk-exynos-clkout.c | 6 +-
drivers/clk/samsung/clk-exynos5-subcmu.c | 4 +-
drivers/clk/samsung/clk-exynos7885.c | 4 +-
drivers/clk/samsung/clk-pll.c | 1 +
drivers/clk/socfpga/clk-gate-a10.c | 68 -
drivers/clk/socfpga/clk-gate.c | 66 +-
drivers/clk/socfpga/clk.h | 1 -
drivers/clk/spear/spear6xx_clock.c | 8 +-
drivers/clk/st/clkgen-fsyn.c | 5 +-
drivers/clk/sunxi-ng/ccu-sun8i-v3s.h | 6 +-
drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c | 11 +-
drivers/clk/sunxi-ng/ccu-suniv-f1c100s.h | 2 +-
drivers/clk/tegra/clk-bpmp.c | 37 +-
drivers/clk/ti/apll.c | 4 +-
drivers/clk/ti/clk-dra7-atl.c | 16 +-
drivers/clk/ti/clk.c | 36 +-
drivers/clk/ti/clkctrl.c | 4 +-
drivers/clk/ti/clock.h | 10 +-
drivers/clk/ti/composite.c | 2 +-
drivers/clk/ti/divider.c | 2 +-
drivers/clk/ti/dpll.c | 4 +-
drivers/clk/ti/fixed-factor.c | 2 +-
drivers/clk/ti/gate.c | 6 +-
drivers/clk/ti/interface.c | 7 +-
drivers/clk/ti/mux.c | 6 +-
drivers/clk/visconti/pll.c | 1 +
drivers/clk/x86/Kconfig | 5 +-
drivers/clk/x86/clk-cgu-pll.c | 23 +-
drivers/clk/x86/clk-cgu.c | 106 +-
drivers/clk/x86/clk-cgu.h | 46 +-
drivers/clk/x86/clk-lgm.c | 18 +-
drivers/clk/xilinx/Kconfig | 4 +-
drivers/clocksource/arm_arch_timer.c | 22 +-
drivers/clocksource/hyperv_timer.c | 61 +-
drivers/clocksource/ingenic-ost.c | 10 +-
drivers/clocksource/sh_cmt.c | 88 +-
drivers/clocksource/timer-npcm7xx.c | 10 +
drivers/clocksource/timer-riscv.c | 2 +-
drivers/clocksource/timer-sp804.c | 6 +-
drivers/clocksource/timer-ti-dm-systimer.c | 4 +-
drivers/clocksource/timer-ti-dm.c | 21 +-
drivers/counter/stm32-lptimer-cnt.c | 2 +-
drivers/cpufreq/Kconfig.arm | 13 +-
drivers/cpufreq/Kconfig.x86 | 2 +-
drivers/cpufreq/Makefile | 1 +
drivers/cpufreq/acpi-cpufreq.c | 43 +-
drivers/cpufreq/amd-pstate-ut.c | 2 +-
drivers/cpufreq/amd-pstate.c | 49 +-
drivers/cpufreq/amd_freq_sensitivity.c | 2 +
drivers/cpufreq/apple-soc-cpufreq.c | 352 +
drivers/cpufreq/cpufreq-dt-platdev.c | 3 +
drivers/cpufreq/cpufreq.c | 2 +-
drivers/cpufreq/cpufreq_stats.c | 16 +-
drivers/cpufreq/intel_pstate.c | 10 +-
drivers/cpufreq/longhaul.c | 4 +-
drivers/cpufreq/mediatek-cpufreq-hw.c | 14 +-
drivers/cpufreq/qcom-cpufreq-hw.c | 206 +-
drivers/cpufreq/spear-cpufreq.c | 2 +-
drivers/cpufreq/tegra186-cpufreq.c | 11 +-
drivers/cpufreq/ti-cpufreq.c | 36 +
drivers/cpuidle/cpuidle-powernv.c | 5 +-
drivers/cpuidle/cpuidle-psci-domain.c | 3 +-
drivers/cpuidle/cpuidle-pseries.c | 8 +-
drivers/cpuidle/dt_idle_states.c | 11 +-
drivers/crypto/Kconfig | 19 +-
drivers/crypto/Makefile | 2 +-
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-trng.c | 1 -
.../crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c | 2 +-
drivers/crypto/amlogic/amlogic-gxl-core.c | 1 -
drivers/crypto/amlogic/amlogic-gxl.h | 2 +-
drivers/crypto/atmel-ecc.c | 6 +-
drivers/crypto/atmel-sha204a.c | 7 +-
drivers/crypto/caam/blob_gen.c | 9 +
drivers/crypto/caam/caamalg.c | 72 +-
drivers/crypto/caam/caamalg_qi.c | 52 +-
drivers/crypto/caam/caamalg_qi2.c | 173 +-
drivers/crypto/caam/caamhash.c | 87 +-
drivers/crypto/caam/caampkc.c | 50 +-
drivers/crypto/caam/caamrng.c | 1 -
drivers/crypto/caam/regs.h | 3 +
drivers/crypto/cavium/cpt/cptvf_algs.c | 10 +-
drivers/crypto/cavium/nitrox/nitrox_aead.c | 12 +-
drivers/crypto/cavium/nitrox/nitrox_mbx.c | 1 +
drivers/crypto/ccp/ccp-crypto-aes-cmac.c | 21 +-
drivers/crypto/ccp/ccp-crypto-aes-galois.c | 12 +-
drivers/crypto/ccp/ccp-crypto-aes-xts.c | 20 +-
drivers/crypto/ccp/ccp-crypto-aes.c | 29 +-
drivers/crypto/ccp/ccp-crypto-des3.c | 17 +-
drivers/crypto/ccp/ccp-crypto-main.c | 15 +-
drivers/crypto/ccp/ccp-crypto-rsa.c | 18 +-
drivers/crypto/ccp/ccp-crypto-sha.c | 26 +-
drivers/crypto/ccp/sp-pci.c | 11 +-
drivers/crypto/ccree/cc_aead.c | 62 +-
drivers/crypto/ccree/cc_buffer_mgr.c | 18 +-
drivers/crypto/ccree/cc_debugfs.c | 2 +-
drivers/crypto/ccree/cc_driver.c | 10 +-
drivers/crypto/ccree/cc_hash.c | 86 +-
drivers/crypto/chelsio/Kconfig | 2 +-
drivers/crypto/chelsio/chcr_algo.c | 49 +-
drivers/crypto/chelsio/chcr_crypto.h | 6 +-
drivers/crypto/hisilicon/Kconfig | 2 +-
drivers/crypto/hisilicon/Makefile | 2 +-
drivers/crypto/hisilicon/debugfs.c | 1147 +
drivers/crypto/hisilicon/hpre/hpre_crypto.c | 47 +-
drivers/crypto/hisilicon/hpre/hpre_main.c | 17 +-
drivers/crypto/hisilicon/qm.c | 1427 +-
drivers/crypto/hisilicon/qm_common.h | 87 +
drivers/crypto/hisilicon/sec2/sec_crypto.c | 5 +-
drivers/crypto/hisilicon/sec2/sec_main.c | 10 +-
drivers/crypto/hisilicon/zip/zip_main.c | 7 +-
drivers/crypto/img-hash.c | 8 +-
drivers/crypto/inside-secure/safexcel.c | 69 +-
drivers/crypto/inside-secure/safexcel.h | 10 +-
drivers/crypto/inside-secure/safexcel_hash.c | 99 +-
drivers/crypto/ixp4xx_crypto.c | 10 +-
drivers/crypto/keembay/keembay-ocs-hcu-core.c | 26 +-
drivers/crypto/marvell/octeontx/otx_cpt_hw_types.h | 2 +-
drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c | 3 +-
drivers/crypto/marvell/octeontx/otx_cptvf_algs.c | 69 +-
.../crypto/marvell/octeontx2/otx2_cpt_devlink.c | 4 -
drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.c | 79 +-
drivers/crypto/n2_core.c | 6 +
drivers/crypto/nx/nx-842.h | 2 +-
drivers/crypto/omap-sham.c | 2 +-
drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c | 4 +-
drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.h | 2 +-
drivers/crypto/qat/qat_4xxx/adf_drv.c | 146 +-
drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c | 4 +
drivers/crypto/qat/qat_c3xxx/adf_drv.c | 2 +-
.../crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c | 4 +
drivers/crypto/qat/qat_c3xxxvf/adf_drv.c | 2 -
drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c | 4 +
drivers/crypto/qat/qat_c62x/adf_drv.c | 2 +-
drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c | 4 +
drivers/crypto/qat/qat_c62xvf/adf_drv.c | 2 -
drivers/crypto/qat/qat_common/Makefile | 8 +-
drivers/crypto/qat/qat_common/adf_accel_devices.h | 14 +
drivers/crypto/qat/qat_common/adf_cfg_strings.h | 1 +
drivers/crypto/qat/qat_common/adf_common_drv.h | 9 +-
drivers/crypto/qat/qat_common/adf_ctl_drv.c | 6 +
drivers/crypto/qat/qat_common/adf_gen2_config.c | 206 +
drivers/crypto/qat/qat_common/adf_gen2_config.h | 10 +
drivers/crypto/qat/qat_common/adf_gen2_dc.c | 70 +
drivers/crypto/qat/qat_common/adf_gen2_dc.h | 10 +
drivers/crypto/qat/qat_common/adf_gen4_dc.c | 83 +
drivers/crypto/qat/qat_common/adf_gen4_dc.h | 10 +
drivers/crypto/qat/qat_common/adf_init.c | 11 +
drivers/crypto/qat/qat_common/adf_sriov.c | 4 +
drivers/crypto/qat/qat_common/icp_qat_fw.h | 24 +
drivers/crypto/qat/qat_common/icp_qat_fw_comp.h | 404 +
drivers/crypto/qat/qat_common/icp_qat_hw.h | 66 +
drivers/crypto/qat/qat_common/icp_qat_hw_20_comp.h | 164 +
.../qat/qat_common/icp_qat_hw_20_comp_defs.h | 300 +
drivers/crypto/qat/qat_common/qat_algs.c | 208 +-
drivers/crypto/qat/qat_common/qat_algs_send.h | 16 +-
drivers/crypto/qat/qat_common/qat_asym_algs.c | 6 +-
drivers/crypto/qat/qat_common/qat_bl.c | 383 +
drivers/crypto/qat/qat_common/qat_bl.h | 67 +
drivers/crypto/qat/qat_common/qat_comp_algs.c | 344 +
drivers/crypto/qat/qat_common/qat_comp_req.h | 123 +
drivers/crypto/qat/qat_common/qat_compression.c | 297 +
drivers/crypto/qat/qat_common/qat_compression.h | 37 +
drivers/crypto/qat/qat_common/qat_crypto.c | 120 +-
drivers/crypto/qat/qat_common/qat_crypto.h | 55 +-
.../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 4 +
drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 2 +-
.../qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c | 4 +
drivers/crypto/qat/qat_dh895xccvf/adf_drv.c | 2 -
drivers/crypto/qce/aead.c | 22 +-
drivers/crypto/qce/common.c | 5 +-
drivers/crypto/qce/sha.c | 18 +-
drivers/crypto/rockchip/rk3288_crypto.c | 505 +-
drivers/crypto/rockchip/rk3288_crypto.h | 107 +-
drivers/crypto/rockchip/rk3288_crypto_ahash.c | 267 +-
drivers/crypto/rockchip/rk3288_crypto_skcipher.c | 543 +-
drivers/crypto/stm32/Kconfig | 4 +-
drivers/crypto/stm32/stm32-cryp.c | 417 +-
drivers/crypto/talitos.c | 6 +-
drivers/crypto/talitos.h | 4 +-
drivers/crypto/ux500/Kconfig | 10 -
drivers/crypto/ux500/Makefile | 1 -
drivers/crypto/ux500/cryp/Makefile | 10 -
drivers/crypto/ux500/cryp/cryp.c | 394 -
drivers/crypto/ux500/cryp/cryp.h | 315 -
drivers/crypto/ux500/cryp/cryp_core.c | 1600 -
drivers/crypto/ux500/cryp/cryp_irq.c | 45 -
drivers/crypto/ux500/cryp/cryp_irq.h | 31 -
drivers/crypto/ux500/cryp/cryp_irqp.h | 125 -
drivers/crypto/ux500/cryp/cryp_p.h | 122 -
.../crypto/virtio/virtio_crypto_akcipher_algs.c | 5 +-
drivers/crypto/vmx/Makefile | 14 +-
drivers/crypto/vmx/ppc-xlate.pl | 10 +-
drivers/cxl/Kconfig | 18 +
drivers/cxl/Makefile | 2 +-
drivers/cxl/acpi.c | 275 +-
drivers/cxl/core/core.h | 8 -
drivers/cxl/core/hdm.c | 45 +-
drivers/cxl/core/mbox.c | 102 +-
drivers/cxl/core/memdev.c | 1 +
drivers/cxl/core/pci.c | 5 +-
drivers/cxl/core/pmem.c | 109 +-
drivers/cxl/core/port.c | 216 +-
drivers/cxl/core/region.c | 112 +-
drivers/cxl/core/regs.c | 242 +-
drivers/cxl/cxl.h | 140 +-
drivers/cxl/cxlmem.h | 64 +-
drivers/cxl/cxlpci.h | 9 -
drivers/cxl/mem.c | 74 +-
drivers/cxl/pci.c | 228 +-
drivers/cxl/pmem.c | 407 +-
drivers/cxl/security.c | 202 +
drivers/dax/hmem/device.c | 24 +-
drivers/devfreq/devfreq-event.c | 2 +-
drivers/devfreq/devfreq.c | 8 +-
drivers/devfreq/event/exynos-nocp.c | 3 +-
drivers/devfreq/governor_userspace.c | 12 +-
drivers/dio/dio.c | 8 +
drivers/dma-buf/dma-buf-sysfs-stats.c | 2 +-
drivers/dma-buf/dma-buf.c | 23 +-
drivers/dma-buf/dma-heap.c | 30 +-
drivers/dma-buf/dma-resv.c | 9 +-
drivers/dma-buf/st-dma-fence-chain.c | 6 +-
drivers/dma/Kconfig | 11 +-
drivers/dma/Makefile | 1 -
drivers/dma/apple-admac.c | 102 +-
drivers/dma/at_hdmac.c | 1854 +-
drivers/dma/at_hdmac_regs.h | 478 -
drivers/dma/dma-jz4780.c | 8 +
drivers/dma/idma64.c | 8 +-
drivers/dma/idxd/cdev.c | 3 +-
drivers/dma/idxd/device.c | 1 -
drivers/dma/idxd/init.c | 25 +-
drivers/dma/idxd/sysfs.c | 68 +
drivers/dma/ioat/dma.c | 2 +-
drivers/dma/iop-adma.c | 1554 -
drivers/dma/iop-adma.h | 914 -
drivers/dma/qcom/gpi.c | 7 +-
drivers/dma/qcom/hidma.c | 8 +-
drivers/dma/sh/shdma-arm.h | 48 -
drivers/dma/tegra186-gpc-dma.c | 37 +-
drivers/dma/ti/Kconfig | 7 +-
drivers/dma/ti/Makefile | 15 +-
drivers/dma/ti/k3-psil.c | 2 +
drivers/dma/ti/k3-udma-glue.c | 5 +-
drivers/dma/ti/k3-udma.c | 40 +-
drivers/dma/xilinx/xilinx_dma.c | 4 +-
drivers/edac/Kconfig | 5 +-
drivers/edac/amd64_edac.c | 3 +
drivers/edac/armada_xp_edac.c | 3 +
drivers/edac/edac_mc_sysfs.c | 24 +
drivers/edac/edac_module.h | 1 +
drivers/edac/ghes_edac.c | 90 +-
drivers/edac/i10nm_base.c | 6 +-
drivers/edac/i5400_edac.c | 3 +-
drivers/edac/igen6_edac.c | 5 +-
drivers/edac/layerscape_edac.c | 3 +
drivers/edac/pnd2_edac.c | 3 +
drivers/edac/sb_edac.c | 3 +
drivers/edac/skx_base.c | 3 +
drivers/edac/thunderx_edac.c | 3 +
drivers/edac/xgene_edac.c | 3 +
drivers/extcon/extcon-fsa9480.c | 5 +-
drivers/extcon/extcon-max77843.c | 3 +-
drivers/extcon/extcon-rt8973a.c | 5 +-
drivers/extcon/extcon-usbc-tusb320.c | 22 +-
drivers/firmware/arm_ffa/driver.c | 101 +-
drivers/firmware/broadcom/bcm47xx_nvram.c | 18 +
drivers/firmware/cirrus/Kconfig | 2 +-
drivers/firmware/cirrus/Makefile | 2 +-
drivers/firmware/cirrus/cs_dsp.c | 79 +-
drivers/firmware/dmi-id.c | 2 +-
drivers/firmware/efi/Kconfig | 45 -
drivers/firmware/efi/Makefile | 7 +-
drivers/firmware/efi/arm-runtime.c | 4 +-
drivers/firmware/efi/cper.c | 12 +
drivers/firmware/efi/cper_cxl.c | 179 +
drivers/firmware/efi/cper_cxl.h | 66 +
drivers/firmware/efi/earlycon.c | 8 +-
drivers/firmware/efi/efi-init.c | 21 +-
drivers/firmware/efi/efi-pstore.c | 25 +-
drivers/firmware/efi/efi.c | 35 +-
drivers/firmware/efi/fake_mem.h | 10 -
drivers/firmware/efi/fdtparams.c | 4 +
drivers/firmware/efi/libstub/Makefile | 35 +-
drivers/firmware/efi/libstub/Makefile.zboot | 22 +-
drivers/firmware/efi/libstub/alignedmem.c | 7 +-
drivers/firmware/efi/libstub/arm32-stub.c | 37 -
drivers/firmware/efi/libstub/arm64-entry.S | 67 +
drivers/firmware/efi/libstub/arm64-stub.c | 75 +-
drivers/firmware/efi/libstub/arm64.c | 76 +
drivers/firmware/efi/libstub/efi-stub-entry.c | 65 +
drivers/firmware/efi/libstub/efi-stub-helper.c | 150 +-
drivers/firmware/efi/libstub/efi-stub.c | 140 +-
drivers/firmware/efi/libstub/efistub.h | 143 +-
drivers/firmware/efi/libstub/file.c | 122 +-
drivers/firmware/efi/libstub/intrinsics.c | 18 +
drivers/firmware/efi/libstub/loongarch-stub.c | 89 +-
drivers/firmware/efi/libstub/loongarch.c | 80 +
drivers/firmware/efi/libstub/mem.c | 5 +-
drivers/firmware/efi/libstub/printk.c | 154 +
drivers/firmware/efi/libstub/random.c | 96 +-
drivers/firmware/efi/libstub/randomalloc.c | 7 +-
drivers/firmware/efi/libstub/riscv-stub.c | 96 +-
drivers/firmware/efi/libstub/riscv.c | 98 +
drivers/firmware/efi/libstub/screen_info.c | 56 +
drivers/firmware/efi/libstub/string.c | 95 +-
drivers/firmware/efi/libstub/x86-stub.c | 2 +-
drivers/firmware/efi/libstub/zboot-header.S | 5 +-
drivers/firmware/efi/libstub/zboot.c | 307 +-
drivers/firmware/efi/memmap.c | 243 +-
drivers/firmware/efi/runtime-wrappers.c | 1 +
drivers/firmware/efi/x86_fake_mem.c | 75 -
drivers/firmware/google/Kconfig | 15 +
drivers/firmware/google/Makefile | 3 +
drivers/firmware/google/cbmem.c | 129 +
drivers/firmware/google/coreboot_table.c | 11 +-
drivers/firmware/google/coreboot_table.h | 18 +
drivers/firmware/imx/scu-pd.c | 1 +
drivers/firmware/raspberrypi.c | 5 +-
drivers/firmware/tegra/Kconfig | 1 +
drivers/firmware/tegra/bpmp-debugfs.c | 62 +-
drivers/firmware/tegra/bpmp-tegra186.c | 36 +-
drivers/firmware/tegra/bpmp-tegra210.c | 15 +-
drivers/firmware/tegra/bpmp.c | 33 +-
drivers/firmware/tegra/ivc.c | 150 +-
drivers/firmware/ti_sci.c | 24 +-
drivers/firmware/turris-mox-rwtm.c | 1 -
drivers/firmware/xilinx/zynqmp.c | 104 +
drivers/fpga/Kconfig | 15 +-
drivers/fpga/Makefile | 2 +
drivers/fpga/lattice-sysconfig-spi.c | 152 +
drivers/fpga/lattice-sysconfig.c | 397 +
drivers/fpga/lattice-sysconfig.h | 39 +
drivers/fpga/zynq-fpga.c | 8 +-
drivers/fsi/fsi-sbefifo.c | 6 +-
drivers/gnss/core.c | 6 +-
drivers/gpio/Kconfig | 29 +-
drivers/gpio/Makefile | 4 +-
drivers/gpio/TODO | 7 +
drivers/gpio/gpio-104-idio-16.c | 88 +-
drivers/gpio/gpio-aggregator.c | 7 +-
drivers/gpio/gpio-amd8111.c | 4 +
drivers/gpio/gpio-arizona.c | 5 +-
drivers/gpio/gpio-aspeed.c | 5 +-
drivers/gpio/gpio-da9052.c | 9 +-
drivers/gpio/gpio-davinci.c | 14 +-
drivers/gpio/gpio-exar.c | 1 +
drivers/gpio/gpio-ftgpio010.c | 2 +-
drivers/gpio/gpio-gw-pld.c | 5 +-
drivers/gpio/gpio-hisi.c | 7 +
drivers/gpio/gpio-idio-16.c | 146 +
drivers/gpio/gpio-idio-16.h | 71 +
drivers/gpio/gpio-latch.c | 219 +
drivers/gpio/gpio-max7300.c | 5 +-
drivers/gpio/gpio-max732x.c | 6 +-
drivers/gpio/gpio-merrifield.c | 3 +-
drivers/gpio/gpio-mockup.c | 1 +
drivers/gpio/gpio-mvebu.c | 9 +-
drivers/gpio/gpio-mxc.c | 92 +-
drivers/gpio/gpio-pca953x.c | 9 +-
drivers/gpio/gpio-pca9570.c | 49 +-
drivers/gpio/gpio-pcf857x.c | 6 +-
drivers/gpio/gpio-pci-idio-16.c | 119 +-
drivers/gpio/gpio-pl061.c | 15 +-
drivers/gpio/gpio-rockchip.c | 1 +
drivers/gpio/gpio-sim.c | 4 +
drivers/gpio/gpio-sl28cpld.c | 3 +-
drivers/gpio/gpio-sta2x11.c | 411 -
drivers/gpio/gpio-tegra186.c | 3 +-
drivers/gpio/gpio-tpic2810.c | 5 +-
drivers/gpio/gpio-ts4900.c | 5 +-
drivers/gpio/gpio-wm8350.c | 7 +-
drivers/gpio/gpiolib-acpi.c | 134 +-
drivers/gpio/gpiolib-acpi.h | 64 +-
drivers/gpio/gpiolib-cdev.c | 210 +-
drivers/gpio/gpiolib-of.c | 452 +-
drivers/gpio/gpiolib-of.h | 20 +-
drivers/gpio/gpiolib-swnode.c | 123 +
drivers/gpio/gpiolib-swnode.h | 14 +
drivers/gpio/gpiolib-sysfs.h | 2 +
drivers/gpio/gpiolib.c | 337 +-
drivers/gpio/gpiolib.h | 14 +-
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/amd/amdgpu/Makefile | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 14 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 19 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 267 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 18 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 11 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 23 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 136 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 15 +
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 67 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 54 +
drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 7 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 16 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c | 62 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.h | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c | 88 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ids.h | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 13 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_job.h | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 32 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 59 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 39 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 346 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 189 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 12 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 14 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c | 514 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.h | 103 +
drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c | 9 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c | 27 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.h | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 54 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 7 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 259 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c | 44 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 21 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 18 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 94 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 58 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 122 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 2 -
drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 16 +-
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/df_v4_3.c | 61 +
drivers/gpu/drm/amd/amdgpu/df_v4_3.h | 31 +
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 155 +-
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 170 +-
drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c | 33 +-
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 71 +-
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 97 +-
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 439 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0_3.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 39 +-
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c | 17 +-
drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 16 +-
drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 18 +-
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 18 +-
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 43 +-
drivers/gpu/drm/amd/amdgpu/imu_v11_0.c | 7 +-
drivers/gpu/drm/amd/amdgpu/mes_v10_1.c | 108 +-
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 111 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v1_7.c | 2 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c | 4 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_1.c | 4 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.c | 4 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c | 2 +-
drivers/gpu/drm/amd/amdgpu/mmsch_v4_0.h | 1 -
drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c | 6 +
drivers/gpu/drm/amd/amdgpu/mxgpu_ai.h | 1 +
drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c | 6 +
drivers/gpu/drm/amd/amdgpu/mxgpu_nv.h | 1 +
drivers/gpu/drm/amd/amdgpu/nv.c | 28 +-
drivers/gpu/drm/amd/amdgpu/psp_v10_0.c | 80 +-
drivers/gpu/drm/amd/amdgpu/psp_v11_0.c | 131 +-
drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 78 +-
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 30 +-
drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.c | 14 +-
drivers/gpu/drm/amd/amdgpu/psp_v3_1.c | 16 +-
drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 18 +-
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 18 +-
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 71 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 30 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 63 +-
drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c | 25 +-
drivers/gpu/drm/amd/amdgpu/soc15.c | 24 +-
drivers/gpu/drm/amd/amdgpu/soc15d.h | 2 +
drivers/gpu/drm/amd/amdgpu/soc21.c | 47 +-
drivers/gpu/drm/amd/amdgpu/ta_secureDisplay_if.h | 24 +-
drivers/gpu/drm/amd/amdgpu/umc_v8_10.c | 24 +-
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 5 +-
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 5 +-
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 34 +-
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 5 +-
drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 38 +-
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 9 +-
drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 1 +
drivers/gpu/drm/amd/amdkfd/kfd_device.c | 13 +-
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 2 +-
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 3 +-
drivers/gpu/drm/amd/amdkfd/kfd_process.c | 32 +-
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 9 +
drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 127 +-
drivers/gpu/drm/amd/display/Kconfig | 7 +
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 795 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 24 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c | 161 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.h | 26 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 133 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.h | 14 +
.../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 10 +-
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 28 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 4 +
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c | 3 +
.../amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c | 3 +-
.../dc/clk_mgr/dcn30/dcn30_smu11_driver_if.h | 1 +
.../drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c | 4 +-
.../drm/amd/display/dc/clk_mgr/dcn314/dcn314_smu.c | 12 +-
.../amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c | 42 +-
.../dc/clk_mgr/dcn32/dcn32_smu13_driver_if.h | 1 +
drivers/gpu/drm/amd/display/dc/core/dc.c | 167 +-
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 11 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 1 -
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 137 +-
drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 54 +-
drivers/gpu/drm/amd/display/dc/core/dc_stat.c | 1 +
drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 27 +-
drivers/gpu/drm/amd/display/dc/dc.h | 8 +-
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 1 +
drivers/gpu/drm/amd/display/dc/dc_dp_types.h | 4 +-
drivers/gpu/drm/amd/display/dc/dc_link.h | 29 +-
drivers/gpu/drm/amd/display/dc/dc_stream.h | 16 +-
.../amd/display/dc/dce110/dce110_hw_sequencer.c | 22 +-
.../drm/amd/display/dc/dce120/dce120_resource.c | 3 +-
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c | 34 +-
.../gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.c | 8 +-
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c | 28 +-
.../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 44 +-
.../display/dc/dcn10/dcn10_hw_sequencer_debug.c | 4 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.c | 1 -
.../gpu/drm/amd/display/dc/dcn20/dcn20_hubbub.c | 8 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hubp.c | 32 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 127 +-
.../gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 3 +
.../gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c | 8 +-
.../drm/amd/display/dc/dcn301/dcn301_resource.c | 5 +-
.../drm/amd/display/dc/dcn302/dcn302_resource.c | 2 +
.../drm/amd/display/dc/dcn303/dcn303_resource.c | 2 +
.../display/dc/dcn31/dcn31_hpo_dp_link_encoder.c | 5 +-
.../gpu/drm/amd/display/dc/dcn314/dcn314_dccg.c | 7 +
.../display/dc/dcn314/dcn314_dio_stream_encoder.c | 6 +-
.../gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.c | 6 +-
.../gpu/drm/amd/display/dc/dcn314/dcn314_optc.c | 1 -
.../drm/amd/display/dc/dcn314/dcn314_resource.c | 1 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c | 10 +-
.../gpu/drm/amd/display/dc/dcn32/dcn32_hubbub.c | 8 +-
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c | 68 +-
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.h | 2 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.c | 1 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_resource.c | 94 +-
.../gpu/drm/amd/display/dc/dcn32/dcn32_resource.h | 15 +-
.../amd/display/dc/dcn32/dcn32_resource_helpers.c | 33 +-
.../drm/amd/display/dc/dcn321/dcn321_resource.c | 9 +-
.../gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 18 +-
.../amd/display/dc/dml/dcn30/display_mode_vba_30.c | 2 +-
.../gpu/drm/amd/display/dc/dml/dcn31/dcn31_fpu.c | 3 +
.../amd/display/dc/dml/dcn31/display_mode_vba_31.c | 2 +-
.../gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c | 4 +-
.../display/dc/dml/dcn314/display_mode_vba_314.c | 2 +-
.../gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 109 +-
.../amd/display/dc/dml/dcn32/display_mode_vba_32.c | 79 +-
.../dc/dml/dcn32/display_mode_vba_util_32.c | 69 +
.../dc/dml/dcn32/display_mode_vba_util_32.h | 18 +
.../gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.c | 10 +-
.../gpu/drm/amd/display/dc/dml/display_mode_lib.h | 1 +
.../gpu/drm/amd/display/dc/dml/display_mode_vba.h | 4 +-
.../amd/display/dc/gpio/dcn32/hw_factory_dcn32.c | 4 +-
drivers/gpu/drm/amd/display/dc/inc/core_types.h | 23 +-
drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h | 2 +-
drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h | 9 +-
drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h | 1 +
drivers/gpu/drm/amd/display/dc/inc/resource.h | 9 +
.../amd/display/dc/irq/dcn201/irq_service_dcn201.c | 5 -
.../gpu/drm/amd/display/dc/link/link_dp_dpia_bw.c | 28 +
.../gpu/drm/amd/display/dc/link/link_dp_dpia_bw.h | 69 +
.../gpu/drm/amd/display/dc/link/link_hwss_hpo_dp.c | 37 -
drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 3 +
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 86 +-
.../gpu/drm/amd/display/dmub/src/dmub_srv_stat.c | 21 +
drivers/gpu/drm/amd/display/include/dpcd_defs.h | 5 +-
.../drm/amd/display/include/link_service_types.h | 7 +-
.../drm/amd/display/modules/power/power_helpers.c | 40 +
.../drm/amd/display/modules/power/power_helpers.h | 3 +
.../amd/include/asic_reg/dcn/dcn_3_0_0_offset.h | 1 +
.../amd/include/asic_reg/dcn/dcn_3_0_0_sh_mask.h | 1 +
.../drm/amd/include/asic_reg/df/df_4_3_offset.h | 30 +
.../drm/amd/include/asic_reg/df/df_4_3_sh_mask.h | 157 +
.../drm/amd/include/asic_reg/vcn/vcn_2_5_offset.h | 3 +-
.../drm/amd/include/asic_reg/vcn/vcn_2_5_sh_mask.h | 27 +
drivers/gpu/drm/amd/include/atombios.h | 2 +-
drivers/gpu/drm/amd/include/kgd_pp_interface.h | 2 +
drivers/gpu/drm/amd/include/mes_v11_api_def.h | 6 +-
drivers/gpu/drm/amd/include/yellow_carp_offset.h | 1 +
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 11 +-
drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c | 13 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c | 16 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c | 76 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/smu8_hwmgr.c | 16 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c | 31 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/vega12_hwmgr.c | 22 +
.../gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c | 20 +-
drivers/gpu/drm/amd/pm/powerplay/inc/hwmgr.h | 2 +
.../gpu/drm/amd/pm/powerplay/smumgr/smu10_smumgr.c | 10 +-
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 23 +-
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 1 +
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_0.h | 2 +-
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h | 117 +-
.../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_0_ppsmc.h | 8 +-
drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h | 5 +-
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h | 11 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 79 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 126 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 158 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c | 17 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 44 +-
drivers/gpu/drm/bridge/fsl-ldb.c | 57 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 6 +-
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 18 +-
drivers/gpu/drm/drm_atomic_state_helper.c | 6 +-
drivers/gpu/drm/drm_connector.c | 3 +-
drivers/gpu/drm/drm_drv.c | 101 +-
drivers/gpu/drm/drm_edid.c | 528 +-
drivers/gpu/drm/drm_file.c | 2 +-
drivers/gpu/drm/drm_format_helper.c | 66 +
drivers/gpu/drm/drm_gem_shmem_helper.c | 18 +-
drivers/gpu/drm/drm_probe_helper.c | 4 +-
drivers/gpu/drm/drm_sysfs.c | 26 +-
drivers/gpu/drm/etnaviv/etnaviv_gem.c | 8 +-
drivers/gpu/drm/exynos/exynos_drm_dsi.c | 41 +-
drivers/gpu/drm/exynos/exynos_drm_g2d.c | 2 +-
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 5 +-
drivers/gpu/drm/i2c/tda998x_drv.c | 2 +
drivers/gpu/drm/i915/Kconfig | 15 +-
drivers/gpu/drm/i915/Makefile | 7 +-
drivers/gpu/drm/i915/display/dvo_ch7xxx.c | 22 +-
drivers/gpu/drm/i915/display/dvo_sil164.c | 13 +-
drivers/gpu/drm/i915/display/g4x_dp.c | 4 +-
drivers/gpu/drm/i915/display/g4x_hdmi.c | 25 +-
drivers/gpu/drm/i915/display/icl_dsi.c | 2 +-
drivers/gpu/drm/i915/display/intel_atomic.c | 85 +-
drivers/gpu/drm/i915/display/intel_audio.c | 11 +
drivers/gpu/drm/i915/display/intel_audio.h | 2 +
drivers/gpu/drm/i915/display/intel_backlight.c | 539 +-
.../gpu/drm/i915/display/intel_backlight_regs.h | 27 +-
drivers/gpu/drm/i915/display/intel_bios.c | 58 +-
drivers/gpu/drm/i915/display/intel_bios.h | 11 +-
drivers/gpu/drm/i915/display/intel_cdclk.c | 216 +-
drivers/gpu/drm/i915/display/intel_color.c | 1276 +-
drivers/gpu/drm/i915/display/intel_color.h | 10 +-
drivers/gpu/drm/i915/display/intel_connector.c | 2 +-
drivers/gpu/drm/i915/display/intel_crt.c | 53 +-
drivers/gpu/drm/i915/display/intel_ddi.c | 26 +-
drivers/gpu/drm/i915/display/intel_de.h | 39 +-
drivers/gpu/drm/i915/display/intel_display.c | 70 +-
drivers/gpu/drm/i915/display/intel_display.h | 8 +
drivers/gpu/drm/i915/display/intel_display_power.c | 2 +-
drivers/gpu/drm/i915/display/intel_display_types.h | 26 +-
drivers/gpu/drm/i915/display/intel_dmc.c | 47 +-
drivers/gpu/drm/i915/display/intel_dmc.h | 1 -
drivers/gpu/drm/i915/display/intel_dp.c | 274 +-
drivers/gpu/drm/i915/display/intel_dp.h | 19 +
drivers/gpu/drm/i915/display/intel_dp_aux.c | 41 +-
drivers/gpu/drm/i915/display/intel_dp_mst.c | 235 +-
drivers/gpu/drm/i915/display/intel_dsb.c | 98 +-
drivers/gpu/drm/i915/display/intel_dsb.h | 13 +-
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 98 +-
drivers/gpu/drm/i915/display/intel_dvo.c | 410 +-
drivers/gpu/drm/i915/display/intel_dvo_dev.h | 7 +-
drivers/gpu/drm/i915/display/intel_dvo_regs.h | 54 +
drivers/gpu/drm/i915/display/intel_fb.c | 2 +-
drivers/gpu/drm/i915/display/intel_fbc.c | 10 +-
drivers/gpu/drm/i915/display/intel_gmbus.c | 46 +-
drivers/gpu/drm/i915/display/intel_hdmi.c | 21 +-
drivers/gpu/drm/i915/display/intel_hti.c | 3 +
drivers/gpu/drm/i915/display/intel_lvds.c | 4 +-
drivers/gpu/drm/i915/display/intel_panel.c | 9 +
drivers/gpu/drm/i915/display/intel_panel.h | 1 +
drivers/gpu/drm/i915/display/intel_pps.c | 360 +-
drivers/gpu/drm/i915/display/intel_pps.h | 2 +-
drivers/gpu/drm/i915/display/intel_psr.c | 44 +-
drivers/gpu/drm/i915/display/intel_sdvo.c | 2 +-
drivers/gpu/drm/i915/display/intel_snps_phy.c | 15 +-
drivers/gpu/drm/i915/display/intel_tc.c | 55 +-
drivers/gpu/drm/i915/display/intel_vdsc.c | 11 +-
drivers/gpu/drm/i915/display/intel_vrr.c | 55 +-
drivers/gpu/drm/i915/display/skl_scaler.c | 40 +-
drivers/gpu/drm/i915/display/skl_watermark.c | 42 +-
drivers/gpu/drm/i915/display/vlv_dsi.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 61 +-
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_object.c | 3 +
drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 10 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c | 18 +-
.../gpu/drm/i915/gt/intel_execlists_submission.c | 2 +-
drivers/gpu/drm/i915/gt/intel_gt.c | 28 +-
drivers/gpu/drm/i915/gt/intel_gt_mcr.c | 20 +-
drivers/gpu/drm/i915/gt/intel_gt_mcr.h | 12 +-
drivers/gpu/drm/i915/gt/intel_gt_requests.c | 2 +-
drivers/gpu/drm/i915/gt/intel_migrate.c | 53 +-
drivers/gpu/drm/i915/gt/intel_workarounds.c | 5 +-
drivers/gpu/drm/i915/gt/selftest_engine_pm.c | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_huc.c | 57 +-
drivers/gpu/drm/i915/gt/uc/intel_uc.c | 1 +
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 42 +-
drivers/gpu/drm/i915/gvt/kvmgt.c | 30 +-
drivers/gpu/drm/i915/i915_driver.c | 3 +-
drivers/gpu/drm/i915/i915_drv.h | 8 +-
drivers/gpu/drm/i915/i915_gem_evict.c | 37 +-
drivers/gpu/drm/i915/i915_gem_evict.h | 4 +-
drivers/gpu/drm/i915/i915_irq.c | 31 +-
drivers/gpu/drm/i915/i915_params.c | 2 +-
drivers/gpu/drm/i915/i915_pci.c | 51 +-
drivers/gpu/drm/i915/i915_perf.c | 6 +-
drivers/gpu/drm/i915/i915_reg.h | 101 +-
drivers/gpu/drm/i915/i915_sw_fence.c | 2 +-
drivers/gpu/drm/i915/i915_user_extensions.c | 2 +-
drivers/gpu/drm/i915/i915_utils.h | 4 -
drivers/gpu/drm/i915/i915_vma.c | 2 +-
drivers/gpu/drm/i915/intel_memory_region.c | 4 +-
drivers/gpu/drm/i915/intel_uncore.c | 4 +-
drivers/gpu/drm/i915/intel_uncore.h | 44 +-
drivers/gpu/drm/i915/intel_wakeref.h | 21 +-
drivers/gpu/drm/i915/selftests/i915_gem_evict.c | 4 +-
drivers/gpu/drm/i915/{ => soc}/intel_dram.c | 0
drivers/gpu/drm/i915/{ => soc}/intel_dram.h | 0
drivers/gpu/drm/i915/{ => soc}/intel_pch.c | 0
drivers/gpu/drm/i915/{ => soc}/intel_pch.h | 0
drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 57 +-
drivers/gpu/drm/mediatek/mtk_dpi.c | 29 +-
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 8 +
drivers/gpu/drm/mediatek/mtk_drm_plane.c | 74 +-
drivers/gpu/drm/mediatek/mtk_drm_plane.h | 8 +
drivers/gpu/drm/mediatek/mtk_hdmi.c | 7 +-
drivers/gpu/drm/msm/adreno/a3xx_gpu.c | 2 +-
drivers/gpu/drm/msm/adreno/a4xx_gpu.c | 5 +-
drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 29 +-
drivers/gpu/drm/msm/adreno/a5xx_preempt.c | 4 +-
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 12 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 117 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 3 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 29 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.h | 9 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 24 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 104 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c | 11 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 19 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 2 +
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 19 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 27 +-
drivers/gpu/drm/msm/dp/dp_display.c | 12 +-
drivers/gpu/drm/msm/dp/dp_link.c | 21 +-
drivers/gpu/drm/msm/dsi/dsi.c | 7 +-
drivers/gpu/drm/msm/dsi/dsi_host.c | 121 +-
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 2 +
drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 1 +
drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c | 17 +
drivers/gpu/drm/msm/hdmi/hdmi.c | 352 +-
drivers/gpu/drm/msm/hdmi/hdmi.h | 3 -
drivers/gpu/drm/msm/msm_drv.c | 29 +-
drivers/gpu/drm/msm/msm_drv.h | 8 +-
drivers/gpu/drm/msm/msm_gem_shrinker.c | 2 +-
drivers/gpu/drm/msm/msm_gem_submit.c | 3 +-
drivers/gpu/drm/msm/msm_gpu.c | 31 +-
drivers/gpu/drm/msm/msm_gpu.h | 22 +-
drivers/gpu/drm/msm/msm_iommu.c | 20 +-
drivers/gpu/drm/msm/msm_mdss.c | 85 +-
drivers/gpu/drm/msm/msm_mmu.h | 3 +-
drivers/gpu/drm/msm/msm_ringbuffer.h | 28 +
drivers/gpu/drm/panel/Kconfig | 8 +
drivers/gpu/drm/panel/Makefile | 1 +
drivers/gpu/drm/panel/panel-auo-a030jtn01.c | 308 +
drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 4 +-
drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c | 3 +-
drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c | 2 -
drivers/gpu/drm/panel/panel-visionox-vtdr6130.c | 7 +-
drivers/gpu/drm/radeon/atombios.h | 10 +-
drivers/gpu/drm/radeon/radeon_bios.c | 1 +
drivers/gpu/drm/radeon/radeon_device.c | 1 +
drivers/gpu/drm/rcar-du/Kconfig | 2 +-
drivers/gpu/drm/solomon/ssd130x.c | 11 +-
drivers/gpu/drm/sti/sti_dvo.c | 5 +-
drivers/gpu/drm/sti/sti_hda.c | 5 +-
drivers/gpu/drm/sti/sti_hdmi.c | 5 +-
drivers/gpu/drm/tegra/Makefile | 3 +-
drivers/gpu/drm/tegra/dc.c | 4 +-
drivers/gpu/drm/tegra/drm.c | 1 +
drivers/gpu/drm/tegra/hdmi.c | 9 +-
drivers/gpu/drm/tegra/nvdec.c | 171 +-
drivers/gpu/drm/tegra/output.c | 10 +-
drivers/gpu/drm/tegra/riscv.c | 106 +
drivers/gpu/drm/tegra/riscv.h | 30 +
drivers/gpu/drm/tegra/submit.c | 13 +-
drivers/gpu/drm/tegra/uapi.c | 2 +-
drivers/gpu/drm/tests/drm_format_helper_test.c | 14 +-
drivers/gpu/drm/tiny/simpledrm.c | 110 +-
drivers/gpu/drm/vc4/vc4_dsi.c | 2 +
drivers/gpu/drm/vmwgfx/vmwgfx_msg.c | 6 +-
drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 4 +
drivers/gpu/host1x/context.c | 4 +
drivers/gpu/host1x/debug.c | 28 +-
drivers/gpu/host1x/dev.c | 12 +
drivers/gpu/host1x/fence.c | 2 +-
drivers/greybus/svc.c | 3 +-
drivers/hid/Kconfig | 5 +-
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 4 +
drivers/hid/hid-alps.c | 6 -
drivers/hid/hid-apple.c | 141 +-
drivers/hid/hid-core.c | 3 +
drivers/hid/hid-debug.c | 3 +
drivers/hid/hid-elan.c | 6 -
drivers/hid/hid-ft260.c | 325 +-
drivers/hid/hid-hyperv.c | 31 +-
drivers/hid/hid-ids.h | 8 +
drivers/hid/hid-input.c | 11 +
drivers/hid/hid-ite.c | 5 +
drivers/hid/hid-lg4ff.c | 6 +
drivers/hid/hid-logitech-hidpp.c | 41 +-
drivers/hid/hid-mcp2221.c | 325 +-
drivers/hid/hid-multitouch.c | 4 +
drivers/hid/hid-plantronics.c | 9 +
drivers/hid/hid-playstation.c | 1136 +-
drivers/hid/hid-quirks.c | 3 +
drivers/hid/hid-rmi.c | 2 +
drivers/hid/hid-sensor-custom.c | 4 +-
drivers/hid/hid-sony.c | 2 +
drivers/hid/hid-u2fzero.c | 1 -
drivers/hid/hid-uclogic-core.c | 1 +
drivers/hid/hid-uclogic-params-test.c | 4 +-
drivers/hid/hid-uclogic-params.c | 73 +
drivers/hid/hid-uclogic-rdesc-test.c | 4 +-
drivers/hid/hid-uclogic-rdesc.c | 36 +-
drivers/hid/hid-uclogic-rdesc.h | 7 +
drivers/hid/hid-wiimote-core.c | 9 +-
drivers/hid/hid-wiimote-modules.c | 225 +
drivers/hid/hid-wiimote.h | 1 +
drivers/hid/i2c-hid/Kconfig | 4 +-
drivers/hid/i2c-hid/i2c-hid-acpi.c | 5 -
drivers/hid/i2c-hid/i2c-hid-core.c | 27 +-
drivers/hid/i2c-hid/i2c-hid-of-elan.c | 5 +-
drivers/hid/i2c-hid/i2c-hid-of-goodix.c | 5 +-
drivers/hid/i2c-hid/i2c-hid-of.c | 5 +-
drivers/hid/intel-ish-hid/ishtp/client.c | 3 -
drivers/hid/usbhid/hiddev.c | 2 +-
drivers/hid/wacom_sys.c | 8 +
drivers/hid/wacom_wac.c | 4 +
drivers/hid/wacom_wac.h | 1 +
drivers/hsi/clients/ssi_protocol.c | 6 +-
drivers/hsi/controllers/omap_ssi_core.c | 14 +-
drivers/hv/channel_mgmt.c | 6 +-
drivers/hv/hv_balloon.c | 94 +-
drivers/hv/hv_util.c | 4 +-
drivers/hv/ring_buffer.c | 13 +
drivers/hv/vmbus_drv.c | 111 +-
drivers/hwmon/Kconfig | 20 +
drivers/hwmon/Makefile | 2 +
drivers/hwmon/acpi_power_meter.c | 5 +-
drivers/hwmon/adm1177.c | 27 +-
drivers/hwmon/aht10.c | 5 +-
drivers/hwmon/aquacomputer_d5next.c | 233 +-
drivers/hwmon/asus-ec-sensors.c | 2 +
drivers/hwmon/asus_atk0110.c | 6 +-
drivers/hwmon/atxp1.c | 1 +
drivers/hwmon/coretemp.c | 251 +-
drivers/hwmon/dell-smm-hwmon.c | 3 +-
drivers/hwmon/ds1621.c | 2 +-
drivers/hwmon/emc2305.c | 48 +-
drivers/hwmon/fschmd.c | 4 +-
drivers/hwmon/gpio-fan.c | 1 +
drivers/hwmon/gsc-hwmon.c | 6 +-
drivers/hwmon/hwmon.c | 1 +
drivers/hwmon/i5500_temp.c | 2 +-
drivers/hwmon/ibmpex.c | 1 +
drivers/hwmon/ina3221.c | 4 +-
drivers/hwmon/it87.c | 90 +-
drivers/hwmon/jc42.c | 273 +-
drivers/hwmon/lm73.c | 6 +-
drivers/hwmon/lm90.c | 21 +-
drivers/hwmon/ltc2947-core.c | 2 +-
drivers/hwmon/ltc2992.c | 4 +-
drivers/hwmon/max127.c | 5 +-
drivers/hwmon/mr75203.c | 1 +
drivers/hwmon/nct6775-platform.c | 7 +
drivers/hwmon/occ/Kconfig | 2 -
drivers/hwmon/oxp-sensors.c | 284 +
drivers/hwmon/pcf8591.c | 1 +
drivers/hwmon/pmbus/ltc2978.c | 17 +-
drivers/hwmon/pmbus/pmbus_core.c | 52 +-
drivers/hwmon/pmbus/q54sj108a2.c | 1 +
drivers/hwmon/sbrmi.c | 5 +-
drivers/hwmon/sbtsi_temp.c | 5 +-
drivers/hwmon/sht3x.c | 12 +-
drivers/hwmon/sht4x.c | 5 +-
drivers/hwmon/smpro-hwmon.c | 466 +
drivers/hwmon/vt8231.c | 1 -
drivers/hwmon/w83l786ng.c | 1 -
drivers/hwtracing/coresight/coresight-cti-core.c | 2 +-
drivers/hwtracing/coresight/coresight-etm4x-core.c | 155 +-
drivers/hwtracing/coresight/coresight-trbe.c | 1 +
drivers/i2c/busses/Kconfig | 2 +-
drivers/i2c/busses/i2c-amd-mp2-pci.c | 30 +-
drivers/i2c/busses/i2c-amd-mp2.h | 1 +
drivers/i2c/busses/i2c-cadence.c | 11 +-
drivers/i2c/busses/i2c-designware-common.c | 5 -
drivers/i2c/busses/i2c-designware-core.h | 235 +-
drivers/i2c/busses/i2c-designware-master.c | 44 +-
drivers/i2c/busses/i2c-designware-slave.c | 77 +-
drivers/i2c/busses/i2c-gpio.c | 4 +-
drivers/i2c/busses/i2c-hisi.c | 22 +-
drivers/i2c/busses/i2c-imx.c | 9 +-
drivers/i2c/busses/i2c-ismt.c | 3 +
drivers/i2c/busses/i2c-mt65xx.c | 14 +
drivers/i2c/busses/i2c-npcm7xx.c | 98 +-
drivers/i2c/busses/i2c-pasemi-core.c | 32 +-
drivers/i2c/busses/i2c-pasemi-core.h | 5 +
drivers/i2c/busses/i2c-pasemi-platform.c | 6 +
drivers/i2c/busses/i2c-pxa-pci.c | 10 +-
drivers/i2c/busses/i2c-qcom-geni.c | 59 +-
drivers/i2c/busses/i2c-tegra.c | 1 +
drivers/i2c/busses/i2c-xiic.c | 9 +-
drivers/i2c/i2c-core-base.c | 14 +-
drivers/i2c/i2c-slave-eeprom.c | 5 +-
drivers/i2c/i2c-smbus.c | 11 +-
drivers/i2c/muxes/i2c-mux-pca9541.c | 5 +-
drivers/i2c/muxes/i2c-mux-pca954x.c | 6 +-
drivers/i2c/muxes/i2c-mux-reg.c | 5 +-
drivers/i3c/device.c | 20 +
drivers/i3c/internals.h | 1 +
drivers/i3c/master.c | 19 +
drivers/iio/TODO | 3 -
drivers/iio/accel/Kconfig | 21 +
drivers/iio/accel/Makefile | 3 +
drivers/iio/accel/adis16201.c | 2 +-
drivers/iio/accel/adis16209.c | 2 +-
drivers/iio/accel/adxl355.h | 20 +-
drivers/iio/accel/adxl355_core.c | 93 +-
drivers/iio/accel/adxl355_i2c.c | 22 +-
drivers/iio/accel/adxl355_spi.c | 19 +-
drivers/iio/accel/adxl367.c | 57 +-
drivers/iio/accel/adxl367_i2c.c | 5 +-
drivers/iio/accel/adxl372.c | 29 +-
drivers/iio/accel/adxl372_i2c.c | 6 +-
drivers/iio/accel/bma180.c | 6 +-
drivers/iio/accel/bma400_core.c | 14 +-
drivers/iio/accel/bma400_i2c.c | 6 +-
drivers/iio/accel/bmc150-accel-core.c | 31 +-
drivers/iio/accel/bmc150-accel-i2c.c | 6 +-
drivers/iio/accel/da280.c | 6 +-
drivers/iio/accel/da311.c | 5 +-
drivers/iio/accel/dmard06.c | 5 +-
drivers/iio/accel/dmard09.c | 5 +-
drivers/iio/accel/dmard10.c | 5 +-
drivers/iio/accel/fxls8962af-core.c | 40 +-
drivers/iio/accel/fxls8962af-i2c.c | 2 +-
drivers/iio/accel/fxls8962af-spi.c | 2 +-
drivers/iio/accel/kionix-kx022a-i2c.c | 51 +
drivers/iio/accel/kionix-kx022a-spi.c | 58 +
drivers/iio/accel/kionix-kx022a.c | 1142 +
drivers/iio/accel/kionix-kx022a.h | 82 +
drivers/iio/accel/kxcjk-1013.c | 31 +-
drivers/iio/accel/kxsd9-i2c.c | 5 +-
drivers/iio/accel/mc3230.c | 5 +-
drivers/iio/accel/mma7455_i2c.c | 6 +-
drivers/iio/accel/mma7660.c | 5 +-
drivers/iio/accel/mma8452.c | 6 +-
drivers/iio/accel/mma9551.c | 6 +-
drivers/iio/accel/mma9553.c | 6 +-
drivers/iio/accel/msa311.c | 21 +-
drivers/iio/accel/mxc4005.c | 5 +-
drivers/iio/accel/mxc6255.c | 5 +-
drivers/iio/accel/sca3300.c | 12 +-
drivers/iio/accel/stk8312.c | 5 +-
drivers/iio/accel/stk8ba50.c | 5 +-
drivers/iio/adc/Kconfig | 40 +
drivers/iio/adc/Makefile | 3 +
drivers/iio/adc/ad4130.c | 2100 +
drivers/iio/adc/ad7091r5.c | 6 +-
drivers/iio/adc/ad7124.c | 10 +
drivers/iio/adc/ad7192.c | 27 +-
drivers/iio/adc/ad7291.c | 6 +-
drivers/iio/adc/ad7476.c | 11 +-
drivers/iio/adc/ad7606.c | 22 +-
drivers/iio/adc/ad7606.h | 2 -
drivers/iio/adc/ad7606_par.c | 3 +-
drivers/iio/adc/ad799x.c | 26 +-
drivers/iio/adc/ad9467.c | 11 +
drivers/iio/adc/ad_sigma_delta.c | 8 +-
drivers/iio/adc/aspeed_adc.c | 11 +-
drivers/iio/adc/at91-sama5d2_adc.c | 33 +-
drivers/iio/adc/axp288_adc.c | 9 +-
drivers/iio/adc/cc10001_adc.c | 89 +-
drivers/iio/adc/imx7d_adc.c | 14 +-
drivers/iio/adc/ina2xx-adc.c | 6 +-
drivers/iio/adc/lpc32xx_adc.c | 11 +-
drivers/iio/adc/ltc2471.c | 6 +-
drivers/iio/adc/ltc2485.c | 6 +-
drivers/iio/adc/ltc2497-core.c | 7 +-
drivers/iio/adc/ltc2497.c | 6 +-
drivers/iio/adc/ltc2497.h | 2 +
drivers/iio/adc/max11410.c | 1050 +
drivers/iio/adc/max1241.c | 28 +-
drivers/iio/adc/max1363.c | 18 +-
drivers/iio/adc/max9611.c | 5 +-
drivers/iio/adc/mcp3422.c | 6 +-
drivers/iio/adc/mcp3911.c | 104 +-
drivers/iio/adc/meson_saradc.c | 11 +-
drivers/iio/adc/mt6370-adc.c | 305 +
drivers/iio/adc/rockchip_saradc.c | 15 +-
drivers/iio/adc/sc27xx_adc.c | 14 +-
drivers/iio/adc/stm32-adc-core.c | 30 +-
drivers/iio/adc/stm32-adc-core.h | 31 +
drivers/iio/adc/stm32-adc.c | 307 +-
drivers/iio/adc/ti-adc081c.c | 6 +-
drivers/iio/adc/ti-adc128s052.c | 14 +-
drivers/iio/adc/ti-ads1015.c | 6 +-
drivers/iio/adc/ti-ads131e08.c | 11 +
drivers/iio/adc/twl4030-madc.c | 1 +
drivers/iio/adc/vf610_adc.c | 104 +-
drivers/iio/addac/Kconfig | 14 +
drivers/iio/addac/Makefile | 1 +
drivers/iio/addac/ad74115.c | 1943 +
drivers/iio/addac/ad74413r.c | 32 +-
drivers/iio/amplifiers/hmc425a.c | 17 +-
drivers/iio/buffer/industrialio-buffer-dmaengine.c | 4 +-
drivers/iio/buffer/industrialio-triggered-buffer.c | 4 +-
drivers/iio/buffer/kfifo_buf.c | 2 +-
drivers/iio/cdc/ad7150.c | 24 +-
drivers/iio/cdc/ad7746.c | 6 +-
drivers/iio/chemical/ams-iaq-core.c | 5 +-
drivers/iio/chemical/atlas-ezo-sensor.c | 6 +-
drivers/iio/chemical/atlas-sensor.c | 6 +-
drivers/iio/chemical/bme680_i2c.c | 6 +-
drivers/iio/chemical/ccs811.c | 6 +-
drivers/iio/chemical/scd4x.c | 4 +-
drivers/iio/chemical/sgp30.c | 6 +-
drivers/iio/chemical/sgp40.c | 6 +-
drivers/iio/chemical/vz89x.c | 6 +-
.../common/cros_ec_sensors/cros_ec_sensors_core.c | 6 +-
.../iio/common/hid-sensors/hid-sensor-trigger.c | 8 +-
drivers/iio/common/scmi_sensors/scmi_iio.c | 9 +-
drivers/iio/common/st_sensors/st_sensors_core.c | 39 +-
drivers/iio/dac/ad5064.c | 6 +-
drivers/iio/dac/ad5380.c | 6 +-
drivers/iio/dac/ad5446.c | 6 +-
drivers/iio/dac/ad5593r.c | 6 +-
drivers/iio/dac/ad5696-i2c.c | 6 +-
drivers/iio/dac/ds4424.c | 6 +-
drivers/iio/dac/ltc2688.c | 23 +-
drivers/iio/dac/m62332.c | 5 +-
drivers/iio/dac/max517.c | 6 +-
drivers/iio/dac/max5821.c | 6 +-
drivers/iio/dac/mcp4725.c | 6 +-
drivers/iio/dac/ti-dac5571.c | 6 +-
drivers/iio/filter/admv8818.c | 4 +-
drivers/iio/frequency/Kconfig | 10 +
drivers/iio/frequency/Makefile | 1 +
drivers/iio/frequency/ad9523.c | 22 +-
drivers/iio/frequency/adf4377.c | 994 +
drivers/iio/gyro/adis16136.c | 2 +-
drivers/iio/gyro/adis16260.c | 2 +-
drivers/iio/gyro/bmg160_core.c | 24 +-
drivers/iio/gyro/bmg160_i2c.c | 6 +-
drivers/iio/gyro/fxas21002c_core.c | 21 +-
drivers/iio/gyro/fxas21002c_i2c.c | 3 +-
drivers/iio/gyro/fxas21002c_spi.c | 3 +-
drivers/iio/gyro/itg3200_core.c | 15 +-
drivers/iio/gyro/mpu3050-i2c.c | 6 +-
drivers/iio/gyro/st_gyro_i2c.c | 5 +-
drivers/iio/health/afe4403.c | 5 +-
drivers/iio/health/afe4404.c | 17 +-
drivers/iio/health/max30100.c | 20 +-
drivers/iio/health/max30102.c | 25 +-
drivers/iio/humidity/am2315.c | 5 +-
drivers/iio/humidity/hdc100x.c | 5 +-
drivers/iio/humidity/hdc2010.c | 5 +-
drivers/iio/humidity/hts221.h | 2 -
drivers/iio/humidity/hts221_core.c | 27 +-
drivers/iio/humidity/hts221_i2c.c | 5 +-
drivers/iio/humidity/htu21.c | 6 +-
drivers/iio/humidity/si7005.c | 5 +-
drivers/iio/humidity/si7020.c | 5 +-
drivers/iio/imu/adis.c | 28 +-
drivers/iio/imu/adis16400.c | 2 +-
drivers/iio/imu/bmi160/bmi160_i2c.c | 6 +-
drivers/iio/imu/fxos8700_i2c.c | 6 +-
drivers/iio/imu/inv_icm42600/inv_icm42600.h | 2 +
drivers/iio/imu/inv_icm42600/inv_icm42600_core.c | 26 +-
drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c | 6 +-
drivers/iio/imu/inv_icm42600/inv_icm42600_spi.c | 6 +-
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 17 +-
drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 10 +-
drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | 3 +-
drivers/iio/imu/kmx61.c | 6 +-
drivers/iio/imu/st_lsm6dsx/Kconfig | 3 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 24 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c | 16 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 465 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 26 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c | 4 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 20 +
drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c | 65 +-
drivers/iio/industrialio-buffer.c | 40 +-
drivers/iio/industrialio-core.c | 58 +-
drivers/iio/industrialio-event.c | 8 +-
drivers/iio/industrialio-sw-trigger.c | 6 +-
drivers/iio/industrialio-trigger.c | 12 +-
drivers/iio/light/Kconfig | 2 +
drivers/iio/light/adjd_s311.c | 5 +-
drivers/iio/light/adux1020.c | 5 +-
drivers/iio/light/al3010.c | 5 +-
drivers/iio/light/al3320a.c | 5 +-
drivers/iio/light/apds9300.c | 5 +-
drivers/iio/light/apds9960.c | 37 +-
drivers/iio/light/bh1750.c | 6 +-
drivers/iio/light/bh1780.c | 5 +-
drivers/iio/light/cm3232.c | 6 +-
drivers/iio/light/cm3323.c | 5 +-
drivers/iio/light/cm36651.c | 6 +-
drivers/iio/light/gp2ap002.c | 5 +-
drivers/iio/light/gp2ap020a00f.c | 6 +-
drivers/iio/light/isl29018.c | 6 +-
drivers/iio/light/isl29028.c | 6 +-
drivers/iio/light/isl29125.c | 5 +-
drivers/iio/light/jsa1212.c | 5 +-
drivers/iio/light/ltr501.c | 33 +-
drivers/iio/light/lv0104cs.c | 5 +-
drivers/iio/light/max44000.c | 5 +-
drivers/iio/light/noa1305.c | 31 +-
drivers/iio/light/opt3001.c | 5 +-
drivers/iio/light/pa12203001.c | 5 +-
drivers/iio/light/rpr0521.c | 5 +-
drivers/iio/light/si1133.c | 6 +-
drivers/iio/light/si1145.c | 6 +-
drivers/iio/light/st_uvis25_i2c.c | 5 +-
drivers/iio/light/stk3310.c | 5 +-
drivers/iio/light/tcs3414.c | 5 +-
drivers/iio/light/tcs3472.c | 5 +-
drivers/iio/light/tsl2563.c | 5 +-
drivers/iio/light/tsl2583.c | 5 +-
drivers/iio/light/tsl2772.c | 6 +-
drivers/iio/light/tsl4531.c | 5 +-
drivers/iio/light/us5182d.c | 5 +-
drivers/iio/light/vcnl4000.c | 191 +-
drivers/iio/light/vcnl4035.c | 5 +-
drivers/iio/light/veml6030.c | 5 +-
drivers/iio/light/veml6070.c | 5 +-
drivers/iio/light/vl6180.c | 5 +-
drivers/iio/light/zopt2201.c | 5 +-
drivers/iio/magnetometer/ak8974.c | 5 +-
drivers/iio/magnetometer/ak8975.c | 6 +-
drivers/iio/magnetometer/bmc150_magn_i2c.c | 6 +-
drivers/iio/magnetometer/hmc5843_i2c.c | 6 +-
drivers/iio/magnetometer/mag3110.c | 6 +-
drivers/iio/magnetometer/mmc35240.c | 5 +-
drivers/iio/magnetometer/st_magn_i2c.c | 5 +-
drivers/iio/magnetometer/yamaha-yas530.c | 6 +-
drivers/iio/multiplexer/iio-mux.c | 8 +-
drivers/iio/potentiometer/ad5272.c | 6 +-
drivers/iio/potentiometer/ds1803.c | 5 +-
drivers/iio/potentiometer/max5432.c | 5 +-
drivers/iio/potentiometer/tpl0102.c | 6 +-
drivers/iio/potentiostat/lmp91000.c | 5 +-
drivers/iio/pressure/abp060mg.c | 6 +-
drivers/iio/pressure/bmp280-i2c.c | 6 +-
drivers/iio/pressure/dlhl60d.c | 6 +-
drivers/iio/pressure/dps310.c | 6 +-
drivers/iio/pressure/hp03.c | 6 +-
drivers/iio/pressure/hp206c.c | 6 +-
drivers/iio/pressure/icp10100.c | 5 +-
drivers/iio/pressure/mpl115.c | 62 +-
drivers/iio/pressure/mpl115.h | 5 +
drivers/iio/pressure/mpl115_i2c.c | 7 +-
drivers/iio/pressure/mpl115_spi.c | 1 +
drivers/iio/pressure/mpl3115.c | 6 +-
drivers/iio/pressure/ms5611_i2c.c | 6 +-
drivers/iio/pressure/ms5637.c | 6 +-
drivers/iio/pressure/st_pressure_i2c.c | 5 +-
drivers/iio/pressure/t5403.c | 6 +-
drivers/iio/pressure/zpa2326_i2c.c | 6 +-
drivers/iio/proximity/isl29501.c | 5 +-
drivers/iio/proximity/mb1232.c | 6 +-
drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 5 +-
drivers/iio/proximity/rfd77402.c | 5 +-
drivers/iio/proximity/srf08.c | 6 +-
drivers/iio/proximity/sx9360.c | 1 +
drivers/iio/proximity/sx9500.c | 5 +-
drivers/iio/proximity/sx_common.c | 23 +-
drivers/iio/proximity/sx_common.h | 2 -
drivers/iio/temperature/Kconfig | 10 +
drivers/iio/temperature/Makefile | 1 +
drivers/iio/temperature/ltc2983.c | 193 +-
drivers/iio/temperature/max30208.c | 252 +
drivers/iio/temperature/mlx90614.c | 6 +-
drivers/iio/temperature/mlx90632.c | 480 +-
drivers/iio/temperature/tmp006.c | 5 +-
drivers/iio/temperature/tmp007.c | 6 +-
drivers/iio/temperature/tsys01.c | 5 +-
drivers/iio/temperature/tsys02d.c | 6 +-
drivers/iio/trigger/iio-trig-sysfs.c | 14 +-
drivers/infiniband/Kconfig | 3 +
drivers/infiniband/core/cache.c | 2 +-
drivers/infiniband/core/cm.c | 13 +-
drivers/infiniband/core/cm_trace.h | 2 +-
drivers/infiniband/core/cma.c | 4 +-
drivers/infiniband/core/cma_trace.h | 2 +-
drivers/infiniband/core/device.c | 16 +-
drivers/infiniband/core/mad.c | 5 -
drivers/infiniband/core/nldev.c | 50 +-
drivers/infiniband/core/restrack.c | 2 -
drivers/infiniband/core/sysfs.c | 17 +-
drivers/infiniband/core/umem.c | 8 +-
drivers/infiniband/core/user_mad.c | 2 +-
drivers/infiniband/core/uverbs_main.c | 2 +-
drivers/infiniband/core/uverbs_std_types_qp.c | 2 +-
drivers/infiniband/hw/Makefile | 1 +
drivers/infiniband/hw/cxgb4/id_table.c | 4 +-
drivers/infiniband/hw/erdma/erdma.h | 4 +-
drivers/infiniband/hw/erdma/erdma_cq.c | 2 +
drivers/infiniband/hw/erdma/erdma_hw.h | 37 +-
drivers/infiniband/hw/erdma/erdma_main.c | 15 +-
drivers/infiniband/hw/erdma/erdma_qp.c | 73 +-
drivers/infiniband/hw/erdma/erdma_verbs.c | 25 +-
drivers/infiniband/hw/erdma/erdma_verbs.h | 19 +-
drivers/infiniband/hw/hfi1/affinity.c | 2 +
drivers/infiniband/hw/hfi1/device.c | 4 +-
drivers/infiniband/hw/hfi1/driver.c | 2 +-
drivers/infiniband/hw/hfi1/firmware.c | 6 +
drivers/infiniband/hw/hfi1/init.c | 21 +-
drivers/infiniband/hw/hfi1/mad.c | 22 +-
drivers/infiniband/hw/hfi1/netdev_rx.c | 2 +-
drivers/infiniband/hw/hns/hns_roce_ah.c | 5 +-
drivers/infiniband/hw/hns/hns_roce_device.h | 3 +
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 217 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 13 +-
drivers/infiniband/hw/hns/hns_roce_main.c | 18 +-
drivers/infiniband/hw/hns/hns_roce_mr.c | 4 +-
drivers/infiniband/hw/hns/hns_roce_qp.c | 107 +-
drivers/infiniband/hw/irdma/uk.c | 170 +-
drivers/infiniband/hw/irdma/user.h | 20 +-
drivers/infiniband/hw/irdma/utils.c | 2 +
drivers/infiniband/hw/irdma/verbs.c | 145 +-
drivers/infiniband/hw/irdma/verbs.h | 53 +
drivers/infiniband/hw/mana/Kconfig | 10 +
drivers/infiniband/hw/mana/Makefile | 4 +
drivers/infiniband/hw/mana/cq.c | 79 +
drivers/infiniband/hw/mana/device.c | 117 +
drivers/infiniband/hw/mana/main.c | 521 +
drivers/infiniband/hw/mana/mana_ib.h | 162 +
drivers/infiniband/hw/mana/mr.c | 197 +
drivers/infiniband/hw/mana/qp.c | 506 +
drivers/infiniband/hw/mana/wq.c | 115 +
drivers/infiniband/hw/mlx4/main.c | 12 +-
drivers/infiniband/hw/mlx5/cq.c | 27 +-
drivers/infiniband/hw/mlx5/fs.c | 1 -
drivers/infiniband/hw/mlx5/mlx5_ib.h | 4 +
drivers/infiniband/hw/mlx5/mr.c | 6 +-
drivers/infiniband/hw/mlx5/odp.c | 3 +-
drivers/infiniband/hw/mlx5/umr.c | 14 +-
drivers/infiniband/hw/qedr/main.c | 2 +-
drivers/infiniband/hw/qib/qib_iba6120.c | 9 +-
drivers/infiniband/hw/qib/qib_init.c | 21 +-
drivers/infiniband/hw/qib/qib_tx.c | 5 +-
drivers/infiniband/hw/qib/qib_user_pages.c | 2 +-
drivers/infiniband/hw/qib/qib_user_sdma.c | 2 +-
drivers/infiniband/hw/usnic/usnic_uiom.c | 9 +-
drivers/infiniband/sw/rxe/rxe.c | 4 +-
drivers/infiniband/sw/rxe/rxe.h | 19 +
drivers/infiniband/sw/rxe/rxe_av.c | 43 +-
drivers/infiniband/sw/rxe/rxe_comp.c | 47 +-
drivers/infiniband/sw/rxe/rxe_cq.c | 8 +-
drivers/infiniband/sw/rxe/rxe_hdr.h | 48 +-
drivers/infiniband/sw/rxe/rxe_icrc.c | 4 +-
drivers/infiniband/sw/rxe/rxe_loc.h | 9 +-
drivers/infiniband/sw/rxe/rxe_mmap.c | 6 +-
drivers/infiniband/sw/rxe/rxe_mr.c | 122 +-
drivers/infiniband/sw/rxe/rxe_mw.c | 23 +-
drivers/infiniband/sw/rxe/rxe_net.c | 42 +-
drivers/infiniband/sw/rxe/rxe_opcode.c | 35 +
drivers/infiniband/sw/rxe/rxe_opcode.h | 17 +-
drivers/infiniband/sw/rxe/rxe_param.h | 7 +
drivers/infiniband/sw/rxe/rxe_qp.c | 98 +-
drivers/infiniband/sw/rxe/rxe_req.c | 50 +-
drivers/infiniband/sw/rxe/rxe_resp.c | 337 +-
drivers/infiniband/sw/rxe/rxe_srq.c | 20 +-
drivers/infiniband/sw/rxe/rxe_task.c | 52 +-
drivers/infiniband/sw/rxe/rxe_task.h | 19 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 106 +-
drivers/infiniband/sw/rxe/rxe_verbs.h | 7 +-
drivers/infiniband/sw/siw/siw_cq.c | 24 +-
drivers/infiniband/sw/siw/siw_mem.c | 9 +-
drivers/infiniband/sw/siw/siw_qp_tx.c | 2 +-
drivers/infiniband/sw/siw/siw_verbs.c | 40 +-
drivers/infiniband/ulp/ipoib/ipoib_netlink.c | 7 +
drivers/infiniband/ulp/iser/iser_verbs.c | 67 +-
drivers/infiniband/ulp/isert/ib_isert.c | 5 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 10 +-
drivers/infiniband/ulp/rtrs/rtrs-pri.h | 3 -
drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 13 +-
drivers/infiniband/ulp/rtrs/rtrs-srv.c | 72 +-
drivers/infiniband/ulp/rtrs/rtrs.c | 22 +-
drivers/infiniband/ulp/srp/ib_srp.c | 96 +-
drivers/input/input.c | 5 +-
drivers/input/joystick/Kconfig | 1 +
drivers/input/joystick/as5011.c | 5 +-
drivers/input/joystick/psxpad-spi.c | 9 +-
drivers/input/keyboard/Kconfig | 10 +-
drivers/input/keyboard/adp5588-keys.c | 5 +-
drivers/input/keyboard/adp5589-keys.c | 14 +-
drivers/input/keyboard/cap11xx.c | 6 +-
drivers/input/keyboard/cros_ec_keyb.c | 6 +-
drivers/input/keyboard/cypress-sf.c | 10 +-
drivers/input/keyboard/dlink-dir685-touchkeys.c | 9 +-
drivers/input/keyboard/ep93xx_keypad.c | 10 +-
drivers/input/keyboard/gpio_keys.c | 8 +-
drivers/input/keyboard/ipaq-micro-keys.c | 10 +-
drivers/input/keyboard/lm8323.c | 11 +-
drivers/input/keyboard/lm8333.c | 5 +-
drivers/input/keyboard/locomokbd.c | 2 +-
drivers/input/keyboard/lpc32xx-keys.c | 8 +-
drivers/input/keyboard/matrix_keypad.c | 11 +-
drivers/input/keyboard/max7359_keypad.c | 11 +-
drivers/input/keyboard/mcs_touchkey.c | 14 +-
drivers/input/keyboard/mpr121_touchkey.c | 13 +-
drivers/input/keyboard/mtk-pmic-keys.c | 10 +-
drivers/input/keyboard/nomadik-ske-keypad.c | 8 +-
drivers/input/keyboard/omap-keypad.c | 2 +-
drivers/input/keyboard/pmic8xxx-keypad.c | 8 +-
drivers/input/keyboard/pxa27x_keypad.c | 8 +-
drivers/input/keyboard/qt1050.c | 8 +-
drivers/input/keyboard/qt1070.c | 11 +-
drivers/input/keyboard/qt2160.c | 5 +-
drivers/input/keyboard/sh_keysc.c | 8 +-
drivers/input/keyboard/spear-keyboard.c | 9 +-
drivers/input/keyboard/st-keyscan.c | 7 +-
drivers/input/keyboard/stmpe-keypad.c | 1 +
drivers/input/keyboard/tc3589x-keypad.c | 8 +-
drivers/input/keyboard/tca6416-keypad.c | 14 +-
drivers/input/keyboard/tca8418_keypad.c | 5 +-
drivers/input/keyboard/tegra-kbc.c | 7 +-
drivers/input/keyboard/tm2-touchkey.c | 15 +-
drivers/input/misc/Kconfig | 25 +-
drivers/input/misc/Makefile | 2 +-
drivers/input/misc/ad714x-i2c.c | 5 +-
drivers/input/misc/adxl34x-i2c.c | 5 +-
drivers/input/misc/apanel.c | 5 +-
drivers/input/misc/atlas_btns.c | 4 +-
drivers/input/misc/atmel_captouch.c | 9 +-
drivers/input/misc/bma150.c | 5 +-
drivers/input/misc/cma3000_d0x_i2c.c | 5 +-
drivers/input/misc/da7280.c | 5 +-
drivers/input/misc/dm355evm_keys.c | 238 -
drivers/input/misc/drv260x.c | 5 +-
drivers/input/misc/drv2665.c | 5 +-
drivers/input/misc/drv2667.c | 5 +-
drivers/input/misc/ibm-panel.c | 5 +-
drivers/input/misc/iqs7222.c | 504 +-
drivers/input/misc/kxtj9.c | 5 +-
drivers/input/misc/max8997_haptic.c | 7 +-
drivers/input/misc/mma8450.c | 5 +-
drivers/input/misc/pcf8574_keypad.c | 4 +-
drivers/input/misc/tps65219-pwrbutton.c | 148 +
drivers/input/mouse/alps.c | 2 +-
drivers/input/mouse/cyapa.c | 5 +-
drivers/input/mouse/elan_i2c_core.c | 20 +-
drivers/input/mouse/synaptics_i2c.c | 5 +-
drivers/input/rmi4/rmi_i2c.c | 5 +-
drivers/input/rmi4/rmi_smbus.c | 5 +-
drivers/input/touchscreen/Kconfig | 42 +-
drivers/input/touchscreen/Makefile | 3 +
drivers/input/touchscreen/ad7879-i2c.c | 5 +-
drivers/input/touchscreen/ar1021_i2c.c | 5 +-
drivers/input/touchscreen/atmel_mxt_ts.c | 4 +-
drivers/input/touchscreen/auo-pixcir-ts.c | 5 +-
drivers/input/touchscreen/bu21013_ts.c | 5 +-
drivers/input/touchscreen/bu21029_ts.c | 5 +-
drivers/input/touchscreen/chipone_icn8318.c | 5 +-
drivers/input/touchscreen/cy8ctma140.c | 5 +-
drivers/input/touchscreen/cy8ctmg110_ts.c | 5 +-
drivers/input/touchscreen/cyttsp4_i2c.c | 5 +-
drivers/input/touchscreen/cyttsp5.c | 900 +
drivers/input/touchscreen/cyttsp_i2c.c | 5 +-
drivers/input/touchscreen/edt-ft5x06.c | 6 +-
drivers/input/touchscreen/eeti_ts.c | 5 +-
drivers/input/touchscreen/egalax_ts.c | 54 +-
drivers/input/touchscreen/ektf2127.c | 5 +-
drivers/input/touchscreen/elants_i2c.c | 28 +-
drivers/input/touchscreen/goodix.c | 5 +-
drivers/input/touchscreen/hideep.c | 5 +-
drivers/input/touchscreen/himax_hx83112b.c | 364 +
drivers/input/touchscreen/hycon-hy46xx.c | 5 +-
drivers/input/touchscreen/hynitron_cstxxx.c | 498 +
drivers/input/touchscreen/ili210x.c | 6 +-
drivers/input/touchscreen/ilitek_ts_i2c.c | 5 +-
drivers/input/touchscreen/iqs5xx.c | 5 +-
drivers/input/touchscreen/max11801_ts.c | 5 +-
drivers/input/touchscreen/mcs5000_ts.c | 5 +-
drivers/input/touchscreen/melfas_mip4.c | 4 +-
drivers/input/touchscreen/migor_ts.c | 5 +-
drivers/input/touchscreen/mms114.c | 5 +-
drivers/input/touchscreen/msg2638.c | 197 +-
drivers/input/touchscreen/pixcir_i2c_ts.c | 6 +-
drivers/input/touchscreen/raydium_i2c_ts.c | 16 +-
drivers/input/touchscreen/rohm_bu21023.c | 5 +-
drivers/input/touchscreen/s6sy761.c | 5 +-
drivers/input/touchscreen/silead.c | 6 +-
drivers/input/touchscreen/sis_i2c.c | 5 +-
drivers/input/touchscreen/st1232.c | 6 +-
drivers/input/touchscreen/stmfts.c | 5 +-
drivers/input/touchscreen/sx8654.c | 6 +-
drivers/input/touchscreen/tps6507x-ts.c | 2 -
drivers/input/touchscreen/tsc2004.c | 5 +-
drivers/input/touchscreen/tsc2007_core.c | 6 +-
drivers/input/touchscreen/wacom_i2c.c | 5 +-
drivers/input/touchscreen/wdt87xx_i2c.c | 5 +-
drivers/input/touchscreen/zet6223.c | 5 +-
drivers/input/touchscreen/zforce_ts.c | 5 +-
drivers/interconnect/qcom/icc-rpm.c | 5 +-
drivers/interconnect/qcom/osm-l3.c | 126 +-
drivers/interconnect/qcom/sc7180.c | 4 +-
drivers/interconnect/qcom/sc8180x.c | 2 +-
drivers/iommu/Kconfig | 9 +-
drivers/iommu/Makefile | 4 +-
drivers/iommu/amd/amd_iommu_types.h | 1 -
drivers/iommu/amd/init.c | 88 +-
drivers/iommu/amd/iommu.c | 61 +-
drivers/iommu/amd/iommu_v2.c | 5 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 104 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 32 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 23 +-
drivers/iommu/arm/arm-smmu/arm-smmu-impl.c | 3 +
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c | 91 -
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 157 +-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.h | 21 +-
drivers/iommu/arm/arm-smmu/arm-smmu.c | 3 -
drivers/iommu/arm/arm-smmu/qcom_iommu.c | 21 +-
drivers/iommu/dma-iommu.c | 3 -
drivers/iommu/exynos-iommu.c | 26 +-
drivers/iommu/fsl_pamu.c | 8 +-
drivers/iommu/fsl_pamu_domain.c | 4 +-
drivers/iommu/hyperv-iommu.c | 11 +-
drivers/iommu/intel/dmar.c | 8 +
drivers/iommu/intel/iommu.c | 298 +-
drivers/iommu/intel/iommu.h | 38 +-
drivers/iommu/intel/irq_remapping.c | 65 +-
drivers/iommu/intel/pasid.c | 6 +-
drivers/iommu/intel/svm.c | 164 +-
drivers/iommu/io-pgfault.c | 77 +-
drivers/iommu/io-pgtable-arm-v7s.c | 41 +-
drivers/iommu/io-pgtable-arm.c | 42 +-
drivers/iommu/iommu-sva-lib.c | 71 -
drivers/iommu/iommu-sva.c | 240 +
drivers/iommu/{iommu-sva-lib.h => iommu-sva.h} | 14 +-
drivers/iommu/iommu.c | 444 +-
drivers/iommu/iommufd/Kconfig | 44 +
drivers/iommu/iommufd/Makefile | 13 +
drivers/iommu/iommufd/device.c | 772 +
drivers/iommu/iommufd/double_span.h | 53 +
drivers/iommu/iommufd/hw_pagetable.c | 57 +
drivers/iommu/iommufd/io_pagetable.c | 1216 +
drivers/iommu/iommufd/io_pagetable.h | 241 +
drivers/iommu/iommufd/ioas.c | 398 +
drivers/iommu/iommufd/iommufd_private.h | 307 +
drivers/iommu/iommufd/iommufd_test.h | 93 +
drivers/iommu/iommufd/main.c | 460 +
drivers/iommu/iommufd/pages.c | 1977 +
drivers/iommu/iommufd/selftest.c | 853 +
drivers/iommu/iommufd/vfio_compat.c | 472 +
drivers/iommu/ipmmu-vmsa.c | 20 +-
drivers/iommu/msm_iommu.c | 18 +-
drivers/iommu/mtk_iommu.c | 153 +-
drivers/iommu/mtk_iommu_v1.c | 30 +-
drivers/iommu/of_iommu.c | 1 -
drivers/iommu/omap-iommu.c | 6 +-
drivers/iommu/rockchip-iommu.c | 10 +-
drivers/iommu/s390-iommu.c | 377 +-
drivers/iommu/sprd-iommu.c | 29 +-
drivers/iommu/sun50i-iommu.c | 89 +-
drivers/iommu/tegra-gart.c | 2 +-
drivers/iommu/virtio-iommu.c | 7 +-
drivers/irqchip/Kconfig | 30 +-
drivers/irqchip/irq-apple-aic.c | 6 +-
drivers/irqchip/irq-gic-pm.c | 2 +-
drivers/irqchip/irq-gic-v2m.c | 11 +-
drivers/irqchip/irq-gic-v3.c | 3 +-
drivers/irqchip/irq-gic.c | 7 +-
drivers/irqchip/irq-loongarch-cpu.c | 48 +-
drivers/irqchip/irq-loongson-eiointc.c | 63 +-
drivers/irqchip/irq-loongson-htvec.c | 176 +-
drivers/irqchip/irq-loongson-liointc.c | 37 +-
drivers/irqchip/irq-loongson-pch-lpc.c | 25 +
drivers/irqchip/irq-loongson-pch-pic.c | 76 +-
drivers/irqchip/irq-ls-extirq.c | 2 +-
drivers/irqchip/irq-mips-gic.c | 2 +-
drivers/irqchip/irq-mtk-cirq.c | 95 +-
drivers/irqchip/irq-mvebu-icu.c | 4 +-
drivers/irqchip/irq-sifive-plic.c | 6 +-
drivers/irqchip/irq-sl28cpld.c | 3 +-
drivers/irqchip/irq-st.c | 7 +-
drivers/irqchip/irq-ti-sci-inta.c | 2 +-
drivers/irqchip/irq-wpcm450-aic.c | 1 +
drivers/isdn/hardware/mISDN/hfcmulti.c | 19 +-
drivers/isdn/hardware/mISDN/hfcpci.c | 13 +-
drivers/isdn/hardware/mISDN/hfcsusb.c | 12 +-
drivers/isdn/mISDN/core.c | 4 +-
drivers/isdn/mISDN/l1oip_core.c | 6 +-
drivers/isdn/mISDN/timerdev.c | 4 +-
drivers/leds/blink/leds-lgm-sso.c | 5 +-
drivers/leds/leds-blinkm.c | 8 +-
drivers/leds/leds-gpio.c | 5 +-
drivers/leds/leds-is31fl319x.c | 3 +-
drivers/leds/leds-lm3533.c | 12 +-
drivers/leds/leds-lp5521.c | 2 +-
drivers/leds/leds-lp5523.c | 27 +-
drivers/leds/leds-lp55xx-common.c | 7 +-
drivers/leds/leds-max8997.c | 7 +-
drivers/leds/leds-pca955x.c | 6 -
drivers/leds/rgb/leds-qcom-lpg.c | 32 +-
drivers/leds/trigger/ledtrig-activity.c | 2 +-
drivers/leds/trigger/ledtrig-heartbeat.c | 2 +-
drivers/leds/trigger/ledtrig-pattern.c | 4 +-
drivers/leds/trigger/ledtrig-transient.c | 2 +-
drivers/macintosh/adb.c | 4 +-
drivers/macintosh/ams/ams-i2c.c | 8 +-
drivers/macintosh/ams/ams.h | 5 +
drivers/macintosh/macio-adb.c | 11 +-
drivers/macintosh/macio_asic.c | 2 +-
drivers/macintosh/therm_adt746x.c | 6 +-
drivers/macintosh/therm_windtunnel.c | 5 +-
drivers/macintosh/via-pmu-backlight.c | 7 +-
drivers/macintosh/via-pmu.c | 4 +
drivers/macintosh/windfarm_ad7417_sensor.c | 5 +-
drivers/macintosh/windfarm_fcu_controls.c | 5 +-
drivers/macintosh/windfarm_lm75_sensor.c | 8 +-
drivers/macintosh/windfarm_lm87_sensor.c | 5 +-
drivers/macintosh/windfarm_max6690_sensor.c | 5 +-
drivers/macintosh/windfarm_pid.h | 5 +
drivers/macintosh/windfarm_pm121.c | 4 +-
drivers/macintosh/windfarm_pm81.c | 4 +-
drivers/macintosh/windfarm_pm91.c | 2 +-
drivers/macintosh/windfarm_smu_controls.c | 10 +-
drivers/macintosh/windfarm_smu_sat.c | 5 +-
drivers/mailbox/Kconfig | 3 +-
drivers/mailbox/arm_mhuv2.c | 4 +-
drivers/mailbox/mailbox-mpfs.c | 31 +-
drivers/mailbox/mtk-cmdq-mailbox.c | 130 +-
drivers/mailbox/pcc.c | 1 +
drivers/mailbox/qcom-apcs-ipc-mailbox.c | 1 +
drivers/mailbox/rockchip-mailbox.c | 4 +-
drivers/mailbox/zynqmp-ipi-mailbox.c | 4 +-
drivers/mcb/mcb-core.c | 4 +-
drivers/mcb/mcb-parse.c | 2 +-
drivers/md/bcache/movinggc.c | 2 +-
drivers/md/bcache/request.c | 4 +-
drivers/md/bcache/writeback.c | 4 +-
drivers/md/dm-cache-metadata.c | 54 +-
drivers/md/dm-cache-target.c | 11 +-
drivers/md/dm-clone-target.c | 1 +
drivers/md/dm-init.c | 22 +-
drivers/md/dm-integrity.c | 2 +
drivers/md/dm-ioctl.c | 6 +-
drivers/md/dm-table.c | 2 +-
drivers/md/dm-thin-metadata.c | 60 +-
drivers/md/dm-thin.c | 20 +-
drivers/md/dm.c | 138 +-
drivers/md/md-bitmap.c | 47 +-
drivers/md/md.c | 323 +-
drivers/md/md.h | 1 -
drivers/md/raid0.c | 1 -
drivers/md/raid1.c | 13 +-
drivers/md/raid10.c | 20 +-
drivers/md/raid5-cache.c | 10 +-
drivers/md/raid5-ppl.c | 5 +-
drivers/media/Kconfig | 2 +-
drivers/media/cec/platform/stm32/stm32-cec.c | 9 +-
drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 8 +-
drivers/media/common/videobuf2/frame_vector.c | 78 +-
drivers/media/common/videobuf2/videobuf2-core.c | 128 +-
.../media/common/videobuf2/videobuf2-dma-contig.c | 3 +-
drivers/media/common/videobuf2/videobuf2-dma-sg.c | 4 +-
drivers/media/common/videobuf2/videobuf2-memops.c | 6 +-
drivers/media/common/videobuf2/videobuf2-vmalloc.c | 4 +-
drivers/media/dvb-core/dmxdev.c | 8 +
drivers/media/dvb-core/dvb_ca_en50221.c | 2 +-
drivers/media/dvb-core/dvb_demux.c | 4 +-
drivers/media/dvb-core/dvb_frontend.c | 33 +-
drivers/media/dvb-core/dvb_ringbuffer.c | 4 +-
drivers/media/dvb-core/dvbdev.c | 44 +-
drivers/media/dvb-frontends/a8293.c | 160 +-
drivers/media/dvb-frontends/a8293.h | 3 +
drivers/media/dvb-frontends/af9013.c | 5 +-
drivers/media/dvb-frontends/af9033.c | 5 +-
drivers/media/dvb-frontends/au8522_decoder.c | 5 +-
drivers/media/dvb-frontends/bcm3510.c | 1 +
drivers/media/dvb-frontends/cxd2099.c | 5 +-
drivers/media/dvb-frontends/cxd2820r_core.c | 7 +-
drivers/media/dvb-frontends/cxd2820r_priv.h | 2 -
.../media/dvb-frontends/drx39xyj/drx_dap_fasi.h | 2 -
drivers/media/dvb-frontends/drx39xyj/drxj.c | 1 +
drivers/media/dvb-frontends/helene.c | 5 +-
drivers/media/dvb-frontends/lgdt3306a.c | 5 +-
drivers/media/dvb-frontends/lgdt330x.c | 5 +-
drivers/media/dvb-frontends/mn88472.c | 5 +-
drivers/media/dvb-frontends/mn88473.c | 5 +-
drivers/media/dvb-frontends/mxl5xx.c | 2 -
drivers/media/dvb-frontends/mxl692.c | 5 +-
drivers/media/dvb-frontends/rtl2830.c | 5 +-
drivers/media/dvb-frontends/rtl2832.c | 5 +-
drivers/media/dvb-frontends/si2165.c | 5 +-
drivers/media/dvb-frontends/si2168.c | 5 +-
drivers/media/dvb-frontends/sp2.c | 5 +-
drivers/media/dvb-frontends/stv0288.c | 5 +-
drivers/media/dvb-frontends/stv090x.c | 5 +-
drivers/media/dvb-frontends/stv6110x.c | 5 +-
drivers/media/dvb-frontends/tda10071.c | 5 +-
drivers/media/dvb-frontends/ts2020.c | 5 +-
drivers/media/i2c/Kconfig | 62 +-
drivers/media/i2c/Makefile | 5 +-
drivers/media/i2c/ad5820.c | 33 +-
drivers/media/i2c/ad9389b.c | 4 +-
drivers/media/i2c/adp1653.c | 5 +-
drivers/media/i2c/adv7170.c | 5 +-
drivers/media/i2c/adv7175.c | 5 +-
drivers/media/i2c/adv7183.c | 5 +-
drivers/media/i2c/adv7393.c | 5 +-
drivers/media/i2c/adv748x/adv748x-afe.c | 4 +
drivers/media/i2c/adv748x/adv748x.h | 3 -
drivers/media/i2c/adv7511-v4l2.c | 4 +-
drivers/media/i2c/adv7842.c | 5 +-
drivers/media/i2c/ak881x.c | 5 +-
drivers/media/i2c/aptina-pll.c | 1 -
drivers/media/i2c/ar0521.c | 352 +-
drivers/media/i2c/bt819.c | 5 +-
drivers/media/i2c/bt856.c | 5 +-
drivers/media/i2c/bt866.c | 5 +-
drivers/media/i2c/cs3308.c | 5 +-
drivers/media/i2c/cs5345.c | 5 +-
drivers/media/i2c/cx25840/cx25840-core.c | 5 +-
drivers/media/i2c/dw9768.c | 33 +-
drivers/media/i2c/hi846.c | 14 +-
drivers/media/i2c/imx208.c | 4 +
drivers/media/i2c/imx274.c | 5 +-
drivers/media/i2c/imx290.c | 786 +-
drivers/media/i2c/imx319.c | 4 +
drivers/media/i2c/imx355.c | 4 +
drivers/media/i2c/imx412.c | 9 +-
drivers/media/i2c/isl7998x.c | 2 +-
drivers/media/i2c/ks0127.c | 4 +-
drivers/media/i2c/lm3560.c | 5 +-
drivers/media/i2c/lm3646.c | 5 +-
drivers/media/i2c/m52790.c | 5 +-
drivers/media/i2c/m5mols/m5mols_core.c | 5 +-
drivers/media/i2c/ml86v7667.c | 5 +-
drivers/media/i2c/mt9m032.c | 5 +-
drivers/media/i2c/mt9p031.c | 9 +-
drivers/media/i2c/mt9t001.c | 5 +-
drivers/media/i2c/mt9t112.c | 5 +-
drivers/media/i2c/mt9v011.c | 5 +-
drivers/media/i2c/noon010pc30.c | 5 +-
drivers/media/i2c/ov08d10.c | 5 +
drivers/media/i2c/ov08x40.c | 3325 ++
drivers/media/i2c/ov13858.c | 5 +-
drivers/media/i2c/ov2640.c | 2 -
drivers/media/i2c/ov2680.c | 2 +
drivers/media/i2c/ov2740.c | 134 +-
drivers/media/i2c/ov4689.c | 1018 +
drivers/media/i2c/ov5640.c | 25 +-
drivers/media/i2c/ov5645.c | 148 +-
drivers/media/i2c/ov5648.c | 1 +
drivers/media/i2c/ov5693.c | 10 +
drivers/media/i2c/ov6650.c | 5 +-
drivers/media/i2c/ov7640.c | 5 +-
drivers/media/i2c/ov7670.c | 1 -
drivers/media/i2c/ov8856.c | 33 +-
drivers/media/i2c/ov9282.c | 611 +-
drivers/media/i2c/ov9640.c | 5 +-
drivers/media/i2c/ov9650.c | 49 +-
drivers/media/i2c/rj54n1cb0c.c | 5 +-
drivers/media/i2c/s5c73m3/s5c73m3-core.c | 107 +-
drivers/media/i2c/s5c73m3/s5c73m3-ctrls.c | 1 -
drivers/media/i2c/s5c73m3/s5c73m3.h | 10 +-
drivers/media/i2c/s5k4ecgx.c | 1032 -
drivers/media/i2c/s5k5baf.c | 64 +-
drivers/media/i2c/s5k6a3.c | 30 +-
drivers/media/i2c/s5k6aa.c | 5 +-
drivers/media/i2c/saa6588.c | 5 +-
drivers/media/i2c/saa6752hs.c | 5 +-
drivers/media/i2c/saa7110.c | 5 +-
drivers/media/i2c/saa717x.c | 5 +-
drivers/media/i2c/saa7185.c | 5 +-
drivers/media/i2c/sony-btf-mpx.c | 5 +-
drivers/media/i2c/sr030pc30.c | 5 +-
drivers/media/i2c/st-vgxy61.c | 1963 +
drivers/media/i2c/tc358743.c | 9 +-
drivers/media/i2c/tc358746.c | 1694 +
drivers/media/i2c/tda7432.c | 5 +-
drivers/media/i2c/tda9840.c | 5 +-
drivers/media/i2c/tea6415c.c | 5 +-
drivers/media/i2c/tea6420.c | 5 +-
drivers/media/i2c/ths7303.c | 5 +-
drivers/media/i2c/tlv320aic23b.c | 5 +-
drivers/media/i2c/tw2804.c | 5 +-
drivers/media/i2c/tw9903.c | 5 +-
drivers/media/i2c/tw9906.c | 5 +-
drivers/media/i2c/tw9910.c | 5 +-
drivers/media/i2c/uda1342.c | 5 +-
drivers/media/i2c/upd64031a.c | 5 +-
drivers/media/i2c/upd64083.c | 5 +-
drivers/media/i2c/vp27smpx.c | 5 +-
drivers/media/i2c/vpx3220.c | 5 +-
drivers/media/i2c/vs6624.c | 5 +-
drivers/media/i2c/wm8739.c | 5 +-
drivers/media/i2c/wm8775.c | 5 +-
drivers/media/pci/bt8xx/bttv.h | 1 -
drivers/media/pci/cx25821/cx25821-video.h | 3 -
drivers/media/pci/ddbridge/ddbridge-core.c | 4 +-
drivers/media/pci/intel/ipu3/Kconfig | 1 +
drivers/media/pci/ivtv/ivtv-driver.c | 2 +-
drivers/media/pci/ivtv/ivtv-udma.c | 2 +-
drivers/media/pci/ivtv/ivtv-yuv.c | 5 +-
drivers/media/pci/mantis/Kconfig | 2 +-
drivers/media/pci/pt3/pt3.c | 16 +-
drivers/media/pci/saa7134/saa7134.h | 4 -
drivers/media/pci/saa7164/saa7164-core.c | 10 +-
drivers/media/pci/saa7164/saa7164.h | 2 -
drivers/media/pci/solo6x10/solo6x10-core.c | 1 +
drivers/media/pci/zoran/zoran_device.h | 2 -
drivers/media/platform/Kconfig | 1 +
drivers/media/platform/Makefile | 1 +
drivers/media/platform/amphion/vdec.c | 218 +-
drivers/media/platform/amphion/venc.c | 41 +-
drivers/media/platform/amphion/vpu.h | 5 +-
drivers/media/platform/amphion/vpu_cmds.c | 39 +-
drivers/media/platform/amphion/vpu_dbg.c | 8 +-
drivers/media/platform/amphion/vpu_drv.c | 6 +-
drivers/media/platform/amphion/vpu_helpers.c | 45 +-
drivers/media/platform/amphion/vpu_helpers.h | 2 +
drivers/media/platform/amphion/vpu_malone.c | 4 +-
drivers/media/platform/amphion/vpu_msgs.c | 2 +
drivers/media/platform/amphion/vpu_v4l2.c | 199 +-
drivers/media/platform/amphion/vpu_v4l2.h | 3 +-
drivers/media/platform/amphion/vpu_windsor.c | 9 +-
drivers/media/platform/aspeed/Kconfig | 1 +
drivers/media/platform/aspeed/aspeed-video.c | 346 +-
drivers/media/platform/atmel/Kconfig | 51 -
drivers/media/platform/atmel/Makefile | 7 -
drivers/media/platform/chips-media/coda-bit.c | 14 +-
drivers/media/platform/chips-media/coda-jpeg.c | 10 +-
drivers/media/platform/mediatek/jpeg/Makefile | 14 +-
.../media/platform/mediatek/jpeg/mtk_jpeg_core.c | 490 +-
.../media/platform/mediatek/jpeg/mtk_jpeg_core.h | 169 +-
.../media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c | 325 +-
.../media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.h | 6 +-
.../platform/mediatek/jpeg/mtk_jpeg_dec_reg.h | 1 +
.../media/platform/mediatek/jpeg/mtk_jpeg_enc_hw.c | 255 +
drivers/media/platform/mediatek/mdp/mtk_mdp_comp.c | 5 +-
drivers/media/platform/mediatek/mdp3/Kconfig | 1 -
drivers/media/platform/mediatek/mdp3/mtk-img-ipi.h | 76 +-
.../media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c | 51 +-
.../media/platform/mediatek/mdp3/mtk-mdp3-comp.c | 24 +-
.../media/platform/mediatek/mdp3/mtk-mdp3-core.c | 15 +-
.../mediatek/vcodec/mtk_vcodec_dec_stateless.c | 13 +-
.../platform/mediatek/vcodec/mtk_vcodec_enc.c | 5 +-
.../mediatek/vcodec/vdec/vdec_h264_req_multi_if.c | 60 +-
.../mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c | 15 +-
.../platform/mediatek/vcodec/vdec_msg_queue.c | 2 +-
drivers/media/platform/microchip/Kconfig | 61 +
drivers/media/platform/microchip/Makefile | 9 +
.../{atmel => microchip}/microchip-csi2dc.c | 0
.../media/platform/microchip/microchip-isc-base.c | 2040 +
.../media/platform/microchip/microchip-isc-clk.c | 311 +
.../media/platform/microchip/microchip-isc-regs.h | 413 +
.../platform/microchip/microchip-isc-scaler.c | 267 +
drivers/media/platform/microchip/microchip-isc.h | 400 +
.../platform/microchip/microchip-sama5d2-isc.c | 683 +
.../platform/microchip/microchip-sama7g5-isc.c | 646 +
drivers/media/platform/nxp/Kconfig | 13 +
drivers/media/platform/nxp/Makefile | 1 +
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.c | 4 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c | 612 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h | 10 +-
.../imx => media/platform/nxp}/imx7-media-csi.c | 138 +-
drivers/media/platform/qcom/camss/camss-vfe-170.c | 20 +-
drivers/media/platform/qcom/camss/camss-vfe-480.c | 20 +-
drivers/media/platform/qcom/camss/camss-video.c | 3 +-
drivers/media/platform/qcom/camss/camss.c | 61 +-
drivers/media/platform/qcom/camss/camss.h | 1 +
drivers/media/platform/qcom/venus/firmware.c | 20 +-
drivers/media/platform/qcom/venus/pm_helpers.c | 4 +-
drivers/media/platform/renesas/Kconfig | 1 +
drivers/media/platform/renesas/Makefile | 1 +
.../media/platform/renesas/rcar-vin/rcar-core.c | 22 +-
drivers/media/platform/renesas/rcar-vin/rcar-dma.c | 104 +-
.../media/platform/renesas/rcar-vin/rcar-v4l2.c | 93 +-
drivers/media/platform/renesas/rcar-vin/rcar-vin.h | 9 +-
drivers/media/platform/renesas/rzg2l-cru/Kconfig | 33 +
drivers/media/platform/renesas/rzg2l-cru/Makefile | 6 +
.../media/platform/renesas/rzg2l-cru/rzg2l-core.c | 338 +
.../media/platform/renesas/rzg2l-cru/rzg2l-cru.h | 154 +
.../media/platform/renesas/rzg2l-cru/rzg2l-csi2.c | 875 +
.../media/platform/renesas/rzg2l-cru/rzg2l-ip.c | 255 +
.../media/platform/renesas/rzg2l-cru/rzg2l-video.c | 1058 +
.../media/platform/rockchip/rkisp1/rkisp1-params.c | 4 +-
.../media/platform/samsung/exynos4-is/fimc-core.c | 2 +-
.../media/platform/samsung/exynos4-is/media-dev.c | 14 +-
drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c | 73 +-
.../media/platform/samsung/s5p-mfc/s5p_mfc_ctrl.c | 4 +-
.../media/platform/samsung/s5p-mfc/s5p_mfc_enc.c | 12 +-
.../platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c | 14 +-
.../platform/st/sti/c8sectpfe/c8sectpfe-core.c | 9 +-
drivers/media/platform/st/stm32/stm32-dcmi.c | 31 +-
drivers/media/platform/sunxi/sun6i-csi/Makefile | 2 +-
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c | 779 +-
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h | 145 +-
.../platform/sunxi/sun6i-csi/sun6i_csi_bridge.c | 868 +
.../platform/sunxi/sun6i-csi/sun6i_csi_bridge.h | 69 +
.../platform/sunxi/sun6i-csi/sun6i_csi_capture.c | 1102 +
.../platform/sunxi/sun6i-csi/sun6i_csi_capture.h | 89 +
.../media/platform/sunxi/sun6i-csi/sun6i_csi_reg.h | 362 +-
.../media/platform/sunxi/sun6i-csi/sun6i_video.c | 733 -
.../media/platform/sunxi/sun6i-csi/sun6i_video.h | 35 -
.../sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2.c | 28 +-
.../sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.c | 28 +-
drivers/media/platform/ti/omap3isp/isp.c | 3 +-
drivers/media/platform/xilinx/xilinx-csi2rxss.c | 8 +-
drivers/media/radio/radio-tea5764.c | 5 +-
drivers/media/radio/radio-terratec.c | 3 -
drivers/media/radio/saa7706h.c | 5 +-
drivers/media/radio/si470x/radio-si470x-usb.c | 4 +-
drivers/media/radio/tef6862.c | 5 +-
drivers/media/rc/gpio-ir-recv.c | 10 +-
drivers/media/rc/gpio-ir-tx.c | 9 +-
drivers/media/rc/imon.c | 6 +-
drivers/media/rc/ir-rx51.c | 9 +-
drivers/media/rc/ir-spi.c | 7 +
drivers/media/rc/rc-main.c | 2 +-
drivers/media/test-drivers/Kconfig | 1 +
drivers/media/test-drivers/Makefile | 1 +
drivers/media/test-drivers/vidtv/vidtv_bridge.c | 22 +-
drivers/media/test-drivers/vidtv/vidtv_demod.c | 13 +-
drivers/media/test-drivers/vidtv/vidtv_tuner.c | 5 +-
drivers/media/test-drivers/vimc/vimc-core.c | 2 +-
drivers/media/test-drivers/visl/Kconfig | 29 +
drivers/media/test-drivers/visl/Makefile | 8 +
drivers/media/test-drivers/visl/visl-core.c | 541 +
drivers/media/test-drivers/visl/visl-debugfs.c | 112 +
drivers/media/test-drivers/visl/visl-debugfs.h | 40 +
drivers/media/test-drivers/visl/visl-dec.c | 499 +
drivers/media/test-drivers/visl/visl-dec.h | 67 +
drivers/media/test-drivers/visl/visl-trace-fwht.h | 66 +
drivers/media/test-drivers/visl/visl-trace-h264.h | 349 +
drivers/media/test-drivers/visl/visl-trace-hevc.h | 405 +
drivers/media/test-drivers/visl/visl-trace-mpeg2.h | 99 +
.../media/test-drivers/visl/visl-trace-points.c | 10 +
drivers/media/test-drivers/visl/visl-trace-vp8.h | 156 +
drivers/media/test-drivers/visl/visl-trace-vp9.h | 292 +
drivers/media/test-drivers/visl/visl-video.c | 767 +
drivers/media/test-drivers/visl/visl-video.h | 27 +
drivers/media/test-drivers/visl/visl.h | 176 +
drivers/media/test-drivers/vivid/vivid-ctrls.c | 28 +
.../media/test-drivers/vivid/vivid-kthread-cap.c | 2 +-
.../media/test-drivers/vivid/vivid-kthread-out.c | 2 +-
drivers/media/test-drivers/vivid/vivid-radio-rx.c | 4 +-
drivers/media/test-drivers/vivid/vivid-sdr-cap.c | 2 +-
drivers/media/test-drivers/vivid/vivid-touch-cap.c | 2 +-
drivers/media/test-drivers/vivid/vivid-vbi-gen.c | 1 -
drivers/media/test-drivers/vivid/vivid-vid-cap.c | 1 +
drivers/media/tuners/e4000.c | 5 +-
drivers/media/tuners/fc2580.c | 5 +-
drivers/media/tuners/m88rs6000t.c | 5 +-
drivers/media/tuners/mt2060.c | 5 +-
drivers/media/tuners/mxl301rf.c | 5 +-
drivers/media/tuners/mxl5005s.c | 2 +-
drivers/media/tuners/qm1d1b0004.c | 4 +-
drivers/media/tuners/qm1d1c0042.c | 5 +-
drivers/media/tuners/tda18212.c | 5 +-
drivers/media/tuners/tda18250.c | 5 +-
drivers/media/tuners/tua9001.c | 5 +-
drivers/media/usb/au0828/au0828-vbi.c | 2 +
drivers/media/usb/au0828/au0828-video.c | 1 +
drivers/media/usb/dvb-usb/az6027.c | 4 +
drivers/media/usb/dvb-usb/dib0700.h | 1 -
drivers/media/usb/dvb-usb/dib0700_devices.c | 7 -
drivers/media/usb/dvb-usb/dvb-usb-init.c | 6 +-
drivers/media/usb/dvb-usb/m920x.c | 16 +-
drivers/media/usb/em28xx/em28xx-dvb.c | 6 +
drivers/media/usb/go7007/s2250-board.c | 5 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 16 +-
drivers/media/usb/pwc/pwc-uncompress.c | 2 +-
drivers/media/usb/s2255/s2255drv.c | 4 +-
drivers/media/usb/uvc/uvc_driver.c | 9 +-
drivers/media/v4l2-core/tuner-core.c | 6 +-
drivers/media/v4l2-core/v4l2-ctrls-api.c | 1 +
drivers/media/v4l2-core/v4l2-ctrls-core.c | 2 +-
drivers/media/v4l2-core/v4l2-ctrls-defs.c | 2 +
drivers/media/v4l2-core/v4l2-dv-timings.c | 20 +-
drivers/media/v4l2-core/v4l2-fwnode.c | 23 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 121 +-
drivers/media/v4l2-core/v4l2-subdev.c | 17 +-
drivers/media/v4l2-core/videobuf-dma-contig.c | 22 +-
drivers/media/v4l2-core/videobuf-dma-sg.c | 14 +-
drivers/memory/Makefile | 2 -
drivers/memory/omap-gpmc.c | 122 +-
drivers/memory/renesas-rpc-if.c | 22 +-
drivers/memory/tegra/mc.c | 25 +
drivers/memory/tegra/tegra186-emc.c | 15 +-
drivers/memory/tegra/tegra20-emc.c | 15 +-
drivers/memory/tegra/tegra210-emc-core.c | 15 +-
drivers/memory/tegra/tegra234.c | 165 +
drivers/memory/tegra/tegra30-emc.c | 15 +-
drivers/memory/ti-emif-sram-pm.S | 1 +
drivers/memstick/core/ms_block.c | 9 +-
drivers/memstick/core/mspro_block.c | 177 +-
drivers/message/fusion/mptctl.c | 2 -
drivers/message/fusion/mptsas.c | 8 +-
drivers/mfd/88pm800.c | 10 +-
drivers/mfd/88pm805.c | 7 +-
drivers/mfd/88pm80x.c | 5 +-
drivers/mfd/88pm860x-core.c | 6 +-
drivers/mfd/Kconfig | 69 +-
drivers/mfd/Makefile | 6 +-
drivers/mfd/aat2870-core.c | 13 +-
drivers/mfd/act8945a.c | 5 +-
drivers/mfd/adp5520.c | 12 +-
drivers/mfd/arizona-core.c | 19 +-
drivers/mfd/arizona-i2c.c | 8 +-
drivers/mfd/arizona-spi.c | 2 +-
drivers/mfd/as3711.c | 5 +-
drivers/mfd/as3722.c | 5 +-
drivers/mfd/atc260x-core.c | 6 +-
drivers/mfd/atc260x-i2c.c | 5 +-
drivers/mfd/axp20x-i2c.c | 5 +-
drivers/mfd/axp20x.c | 23 +-
drivers/mfd/bcm590xx.c | 5 +-
drivers/mfd/bd9571mwv.c | 5 +-
drivers/mfd/da903x.c | 6 +-
drivers/mfd/da9052-i2c.c | 6 +-
drivers/mfd/da9055-i2c.c | 5 +-
drivers/mfd/da9062-core.c | 6 +-
drivers/mfd/da9063-i2c.c | 6 +-
drivers/mfd/da9150-core.c | 5 +-
drivers/mfd/davinci_voicecodec.c | 136 -
drivers/mfd/dm355evm_msp.c | 454 -
drivers/mfd/fsl-imx25-tsadc.c | 4 +-
drivers/mfd/gateworks-gsc.c | 3 +-
drivers/mfd/htc-i2cpld.c | 627 -
drivers/mfd/khadas-mcu.c | 5 +-
drivers/mfd/lm3533-core.c | 5 +-
drivers/mfd/lp3943.c | 4 +-
drivers/mfd/lp873x.c | 5 +-
drivers/mfd/lp87565.c | 5 +-
drivers/mfd/lp8788.c | 4 +-
drivers/mfd/madera-core.c | 3 +-
drivers/mfd/madera-i2c.c | 6 +-
drivers/mfd/max14577.c | 19 +-
drivers/mfd/max77620.c | 15 +-
drivers/mfd/max77650.c | 1 -
drivers/mfd/max77686.c | 6 +-
drivers/mfd/max77693.c | 12 +-
drivers/mfd/max77843.c | 7 +-
drivers/mfd/max8907.c | 5 +-
drivers/mfd/max8925-i2c.c | 12 +-
drivers/mfd/max8997.c | 6 +-
drivers/mfd/max8998.c | 6 +-
drivers/mfd/mc13xxx-i2c.c | 7 +-
drivers/mfd/mc13xxx-spi.c | 3 +-
drivers/mfd/mcp-sa11x0.c | 6 +-
drivers/mfd/menelaus.c | 5 +-
drivers/mfd/menf21bmc.c | 4 +-
drivers/mfd/motorola-cpcap.c | 8 +-
drivers/mfd/mt6360-core.c | 14 +-
drivers/mfd/mt6397-irq.c | 6 +-
drivers/mfd/palmas.c | 13 +-
drivers/mfd/pcf50633-core.c | 27 +-
drivers/mfd/pcf50633-irq.c | 13 +-
drivers/mfd/qcom-pm8008.c | 4 +-
drivers/mfd/qcom-pm8xxx.c | 1 -
drivers/mfd/qcom_rpm.c | 16 +-
drivers/mfd/rc5t583-irq.c | 7 +-
drivers/mfd/rc5t583.c | 5 +-
drivers/mfd/retu-mfd.c | 4 +-
drivers/mfd/rk808.c | 31 +-
drivers/mfd/rn5t618.c | 3 +-
drivers/mfd/rohm-bd71828.c | 29 +-
drivers/mfd/rohm-bd718x7.c | 27 +-
drivers/mfd/rohm-bd9576.c | 22 +-
drivers/mfd/rsmu_i2c.c | 6 +-
drivers/mfd/rt5033.c | 8 +-
drivers/mfd/rt5120.c | 3 +-
drivers/mfd/sec-core.c | 12 +-
drivers/mfd/si476x-i2c.c | 6 +-
drivers/mfd/sky81452.c | 5 +-
drivers/mfd/sm501.c | 10 +-
drivers/mfd/smpro-core.c | 138 +
drivers/mfd/sprd-sc27xx-spi.c | 10 +-
drivers/mfd/stm32-lptimer.c | 4 +-
drivers/mfd/stmfx.c | 11 +-
drivers/mfd/stmpe-i2c.c | 9 +-
drivers/mfd/stmpe-spi.c | 4 +-
drivers/mfd/stmpe.c | 8 +-
drivers/mfd/stpmic1.c | 16 +-
drivers/mfd/stw481x.c | 5 +-
drivers/mfd/sun4i-gpadc.c | 3 +-
drivers/mfd/t7l66xb.c | 9 +-
drivers/mfd/tc3589x.c | 13 +-
drivers/mfd/tc6387xb.c | 9 +-
drivers/mfd/tc6393xb.c | 9 +-
drivers/mfd/ti-lmu.c | 5 +-
drivers/mfd/timberdale.c | 1 -
drivers/mfd/tps6105x.c | 5 +-
drivers/mfd/tps65010.c | 6 +-
drivers/mfd/tps6507x.c | 5 +-
drivers/mfd/tps65086.c | 5 +-
drivers/mfd/tps65090.c | 8 +-
drivers/mfd/tps65218.c | 5 +-
drivers/mfd/tps65219.c | 299 +
drivers/mfd/tps6586x.c | 11 +-
drivers/mfd/tps65910.c | 6 +-
drivers/mfd/tps65912-i2c.c | 5 +-
drivers/mfd/twl-core.c | 5 +-
drivers/mfd/twl6040.c | 34 +-
drivers/mfd/ucb1x00-core.c | 7 +-
drivers/mfd/vexpress-sysreg.c | 16 +-
drivers/mfd/wcd934x.c | 11 +-
drivers/mfd/wl1273-core.c | 5 +-
drivers/mfd/wm831x-i2c.c | 6 +-
drivers/mfd/wm8350-i2c.c | 5 +-
drivers/mfd/wm8400-core.c | 5 +-
drivers/mfd/wm8994-core.c | 12 +-
drivers/misc/Kconfig | 22 +
drivers/misc/Makefile | 2 +
drivers/misc/apds9802als.c | 5 +-
drivers/misc/apds990x.c | 5 +-
drivers/misc/bh1770glc.c | 5 +-
drivers/misc/cxl/file.c | 2 +-
drivers/misc/cxl/guest.c | 24 +-
drivers/misc/cxl/pci.c | 21 +-
drivers/misc/cxl/vphb.c | 7 -
drivers/misc/ds1682.c | 5 +-
drivers/misc/eeprom/eeprom.c | 5 +-
drivers/misc/eeprom/idt_89hpesx.c | 4 +-
drivers/misc/eeprom/max6875.c | 5 +-
drivers/misc/fastrpc.c | 260 +-
drivers/misc/genwqe/card_base.c | 4 +-
.../misc/habanalabs/common/command_submission.c | 62 +-
drivers/misc/habanalabs/common/context.c | 54 +-
drivers/misc/habanalabs/common/debugfs.c | 5 +
drivers/misc/habanalabs/common/device.c | 452 +-
drivers/misc/habanalabs/common/firmware_if.c | 54 +-
drivers/misc/habanalabs/common/habanalabs.h | 127 +-
drivers/misc/habanalabs/common/habanalabs_drv.c | 42 +-
drivers/misc/habanalabs/common/habanalabs_ioctl.c | 70 +-
drivers/misc/habanalabs/common/memory.c | 19 +-
drivers/misc/habanalabs/common/mmu/mmu.c | 24 +-
drivers/misc/habanalabs/common/sysfs.c | 4 +-
drivers/misc/habanalabs/gaudi/gaudi.c | 124 +-
drivers/misc/habanalabs/gaudi2/gaudi2.c | 643 +-
drivers/misc/habanalabs/gaudi2/gaudi2P.h | 2 -
drivers/misc/habanalabs/gaudi2/gaudi2_security.c | 1 +
drivers/misc/habanalabs/goya/goya.c | 4 +-
.../include/gaudi2/gaudi2_async_events.h | 1 +
.../include/gaudi2/gaudi2_async_ids_map_extended.h | 4 +-
.../habanalabs/include/hw_ip/pci/pci_general.h | 7 +
drivers/misc/hmc6352.c | 5 +-
drivers/misc/ics932s401.c | 8 +-
drivers/misc/isl29003.c | 5 +-
drivers/misc/isl29020.c | 5 +-
drivers/misc/lis3lv02d/lis3lv02d_i2c.c | 5 +-
drivers/misc/lkdtm/cfi.c | 6 +-
drivers/misc/mei/bus-fixup.c | 14 +-
drivers/misc/mei/bus.c | 22 +-
drivers/misc/mei/client.c | 20 +-
drivers/misc/mei/client.h | 2 +-
drivers/misc/mei/main.c | 2 +-
drivers/misc/mei/mei_dev.h | 2 +
drivers/misc/ocxl/config.c | 20 +-
drivers/misc/ocxl/file.c | 9 +-
drivers/misc/sgi-gru/grufault.c | 13 +-
drivers/misc/sgi-gru/grumain.c | 22 +-
drivers/misc/sgi-gru/grutables.h | 2 +-
drivers/misc/smpro-errmon.c | 529 +
drivers/misc/smpro-misc.c | 145 +
drivers/misc/sram-exec.c | 7 +-
drivers/misc/tifm_7xx1.c | 2 +-
drivers/misc/tsl2550.c | 5 +-
drivers/misc/uacce/uacce.c | 2 +-
drivers/misc/vmw_vmci/vmci_queue_pair.c | 6 +-
drivers/mmc/core/block.c | 13 -
drivers/mmc/core/bus.c | 4 -
drivers/mmc/core/core.c | 20 +-
drivers/mmc/core/core.h | 15 +
drivers/mmc/core/host.c | 6 +-
drivers/mmc/core/mmc_test.c | 8 +-
drivers/mmc/core/pwrseq.c | 2 +-
drivers/mmc/core/sd.c | 11 +-
drivers/mmc/host/Kconfig | 13 +-
drivers/mmc/host/Makefile | 1 +
drivers/mmc/host/alcor.c | 5 +-
drivers/mmc/host/atmel-mci.c | 9 +-
drivers/mmc/host/au1xmmc.c | 8 +-
drivers/mmc/host/bcm2835.c | 12 +-
drivers/mmc/host/dw_mmc-pltfm.c | 41 +-
drivers/mmc/host/dw_mmc.c | 7 +-
drivers/mmc/host/litex_mmc.c | 1 +
drivers/mmc/host/meson-gx-mmc.c | 4 +-
drivers/mmc/host/mmc_hsq.c | 40 +-
drivers/mmc/host/mmc_hsq.h | 5 +
drivers/mmc/host/mmci.c | 4 +-
drivers/mmc/host/moxart-mmc.c | 4 +-
drivers/mmc/host/mtk-sd.c | 44 +-
drivers/mmc/host/mxcmmc.c | 4 +-
drivers/mmc/host/omap_hsmmc.c | 4 +-
drivers/mmc/host/pxamci.c | 7 +-
drivers/mmc/host/renesas_sdhi.h | 16 +-
drivers/mmc/host/renesas_sdhi_core.c | 32 +-
drivers/mmc/host/renesas_sdhi_internal_dmac.c | 86 +-
drivers/mmc/host/renesas_sdhi_sys_dmac.c | 11 +-
drivers/mmc/host/rtsx_pci_sdmmc.c | 9 +-
drivers/mmc/host/rtsx_usb_sdmmc.c | 11 +-
drivers/mmc/host/sdhci-acpi.c | 4 +-
drivers/mmc/host/sdhci-bcm-kona.c | 2 +-
drivers/mmc/host/sdhci-brcmstb.c | 2 +-
drivers/mmc/host/sdhci-esdhc-imx.c | 89 +-
drivers/mmc/host/sdhci-msm.c | 13 +-
drivers/mmc/host/sdhci-of-arasan.c | 69 +
drivers/mmc/host/sdhci-of-esdhc.c | 11 +-
drivers/mmc/host/sdhci-omap.c | 2 +-
drivers/mmc/host/sdhci-pci-core.c | 14 +-
drivers/mmc/host/sdhci-pci-gli.c | 11 +-
drivers/mmc/host/sdhci-pci-o2micro.c | 3 +-
drivers/mmc/host/sdhci-sprd.c | 20 +-
drivers/mmc/host/sdhci-tegra.c | 77 +-
drivers/mmc/host/sdhci.c | 144 +-
drivers/mmc/host/sdhci.h | 6 +-
drivers/mmc/host/sdhci_am654.c | 2 +-
drivers/mmc/host/sdhci_f_sdh30.c | 31 +-
drivers/mmc/host/sdhci_f_sdh30.h | 3 +
drivers/mmc/host/sunplus-mmc.c | 1000 +
drivers/mmc/host/tifm_sd.c | 28 +-
drivers/mmc/host/tmio_mmc.h | 15 +-
drivers/mmc/host/tmio_mmc_core.c | 18 +-
drivers/mmc/host/toshsd.c | 6 +-
drivers/mmc/host/via-sdmmc.c | 4 +-
drivers/mmc/host/vub300.c | 13 +-
drivers/mmc/host/wbsd.c | 22 +-
drivers/mmc/host/wmt-sdmmc.c | 6 +-
drivers/mtd/devices/Kconfig | 8 -
drivers/mtd/devices/Makefile | 1 -
drivers/mtd/devices/lart.c | 682 -
drivers/mtd/inftlcore.c | 2 +-
drivers/mtd/lpddr/lpddr2_nvm.c | 2 +
drivers/mtd/maps/pxa2xx-flash.c | 2 +
drivers/mtd/mtdcore.c | 55 +-
drivers/mtd/mtdoops.c | 109 +-
drivers/mtd/nand/core.c | 3 +-
drivers/mtd/nand/raw/Kconfig | 6 +-
drivers/mtd/nand/raw/cadence-nand-controller.c | 70 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 12 +-
drivers/mtd/nand/raw/lpc32xx_mlc.c | 46 +-
drivers/mtd/nand/raw/lpc32xx_slc.c | 43 +-
drivers/mtd/nand/raw/marvell_nand.c | 4 +-
drivers/mtd/nand/raw/mpc5121_nfc.c | 2 +-
drivers/mtd/nand/raw/nandsim.c | 4 +-
drivers/mtd/nand/spi/winbond.c | 79 +-
drivers/mtd/parsers/Kconfig | 19 +-
drivers/mtd/parsers/Makefile | 1 +
drivers/mtd/parsers/tplink_safeloader.c | 150 +
drivers/mtd/spi-nor/core.c | 85 +-
drivers/mtd/spi-nor/core.h | 5 +
drivers/mtd/spi-nor/debugfs.c | 2 +-
drivers/mtd/spi-nor/gigadevice.c | 24 +-
drivers/mtd/spi-nor/issi.c | 5 +-
drivers/mtd/spi-nor/micron-st.c | 12 +-
drivers/mtd/spi-nor/sfdp.c | 37 +-
drivers/mtd/spi-nor/sfdp.h | 2 -
drivers/mtd/spi-nor/spansion.c | 61 +-
drivers/mtd/spi-nor/sysfs.c | 20 +-
drivers/mtd/spi-nor/winbond.c | 3 +
drivers/mtd/tests/mtd_nandecctest.c | 10 +-
drivers/mtd/tests/stresstest.c | 8 +-
drivers/mtd/ubi/debug.c | 2 +-
drivers/mtd/ubi/debug.h | 6 +-
drivers/net/arcnet/com20020_cs.c | 11 +-
drivers/net/bonding/bond_3ad.c | 9 +
drivers/net/bonding/bond_main.c | 85 +-
drivers/net/bonding/bond_options.c | 18 -
drivers/net/can/Kconfig | 8 -
drivers/net/can/Makefile | 1 -
drivers/net/can/c_can/Kconfig | 3 +-
drivers/net/can/c_can/c_can_platform.c | 3 +-
drivers/net/can/can327.c | 21 +-
drivers/net/can/cc770/cc770_isa.c | 10 +-
drivers/net/can/ctucanfd/Kconfig | 2 +-
drivers/net/can/flexcan/flexcan-core.c | 49 +-
drivers/net/can/flexcan/flexcan.h | 2 +
drivers/net/can/m_can/m_can.c | 158 +-
drivers/net/can/m_can/m_can.h | 18 +-
drivers/net/can/m_can/m_can_pci.c | 9 +-
drivers/net/can/m_can/m_can_platform.c | 6 +-
drivers/net/can/m_can/tcan4x5x-core.c | 18 +-
drivers/net/can/m_can/tcan4x5x-regmap.c | 47 +-
drivers/net/can/pch_can.c | 1249 -
drivers/net/can/rcar/rcar_canfd.c | 109 +-
drivers/net/can/sja1000/sja1000_isa.c | 10 +-
drivers/net/can/slcan/slcan-core.c | 10 +-
drivers/net/can/usb/Kconfig | 10 +-
drivers/net/can/usb/esd_usb.c | 6 +
drivers/net/can/usb/etas_es58x/Makefile | 2 +-
drivers/net/can/usb/etas_es58x/es581_4.c | 4 +-
drivers/net/can/usb/etas_es58x/es58x_core.c | 99 +-
drivers/net/can/usb/etas_es58x/es58x_core.h | 58 +-
drivers/net/can/usb/etas_es58x/es58x_devlink.c | 235 +
drivers/net/can/usb/etas_es58x/es58x_fd.c | 4 +-
drivers/net/can/usb/gs_usb.c | 99 +-
drivers/net/can/usb/kvaser_usb/Makefile | 5 -
drivers/net/can/usb/kvaser_usb/kvaser_usb.h | 30 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c | 113 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 191 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c | 464 +-
drivers/net/can/usb/mcba_usb.c | 10 +-
drivers/net/can/usb/ucan.c | 12 +-
drivers/net/can/vxcan.c | 2 +-
drivers/net/dsa/Kconfig | 2 +
drivers/net/dsa/b53/Kconfig | 1 +
drivers/net/dsa/hirschmann/hellcreek.c | 5 -
drivers/net/dsa/lan9303-core.c | 6 +-
drivers/net/dsa/lan9303_i2c.c | 5 +-
drivers/net/dsa/microchip/Kconfig | 1 +
drivers/net/dsa/microchip/ksz8.h | 1 +
drivers/net/dsa/microchip/ksz8795.c | 75 +-
drivers/net/dsa/microchip/ksz8795_reg.h | 3 +
drivers/net/dsa/microchip/ksz8863_smi.c | 9 +-
drivers/net/dsa/microchip/ksz9477.c | 24 +-
drivers/net/dsa/microchip/ksz9477.h | 1 -
drivers/net/dsa/microchip/ksz9477_i2c.c | 17 +-
drivers/net/dsa/microchip/ksz9477_reg.h | 2 -
drivers/net/dsa/microchip/ksz_common.c | 153 +-
drivers/net/dsa/microchip/ksz_common.h | 17 +-
drivers/net/dsa/microchip/ksz_spi.c | 10 +-
drivers/net/dsa/microchip/lan937x_main.c | 6 +-
drivers/net/dsa/mt7530.c | 3 -
drivers/net/dsa/mv88e6xxx/Makefile | 4 +
drivers/net/dsa/mv88e6xxx/chip.c | 20 +-
drivers/net/dsa/mv88e6xxx/devlink.c | 5 -
drivers/net/dsa/mv88e6xxx/global1_atu.c | 85 +-
drivers/net/dsa/mv88e6xxx/global1_vtu.c | 7 +-
drivers/net/dsa/mv88e6xxx/port.c | 9 +
drivers/net/dsa/mv88e6xxx/port.h | 2 +
drivers/net/dsa/mv88e6xxx/trace.c | 6 +
drivers/net/dsa/mv88e6xxx/trace.h | 96 +
drivers/net/dsa/ocelot/felix.c | 17 +-
drivers/net/dsa/ocelot/felix.h | 4 -
drivers/net/dsa/ocelot/felix_vsc9959.c | 35 -
drivers/net/dsa/ocelot/seville_vsc9953.c | 32 -
drivers/net/dsa/sja1105/sja1105_devlink.c | 14 +-
drivers/net/dsa/sja1105/sja1105_main.c | 2 +-
drivers/net/dsa/sja1105/sja1105_mdio.c | 6 +
drivers/net/dsa/xrs700x/xrs700x_i2c.c | 5 +-
drivers/net/dummy.c | 7 -
drivers/net/ethernet/Kconfig | 10 -
drivers/net/ethernet/Makefile | 1 -
drivers/net/ethernet/adi/adin1110.c | 58 +-
drivers/net/ethernet/aeroflex/greth.c | 1 +
drivers/net/ethernet/alacritech/slic.h | 12 +-
drivers/net/ethernet/altera/altera_tse_main.c | 2 +-
drivers/net/ethernet/amazon/ena/ena_ethtool.c | 4 +-
drivers/net/ethernet/amazon/ena/ena_netdev.c | 12 +-
drivers/net/ethernet/amd/atarilance.c | 2 +-
drivers/net/ethernet/amd/lance.c | 2 +-
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 23 +-
drivers/net/ethernet/amd/xgbe/xgbe-ptp.c | 20 +-
drivers/net/ethernet/apple/bmac.c | 2 +-
drivers/net/ethernet/apple/mace.c | 2 +-
.../net/ethernet/aquantia/atlantic/aq_ethtool.c | 5 +-
drivers/net/ethernet/aquantia/atlantic/aq_main.c | 4 +-
drivers/net/ethernet/aquantia/atlantic/aq_main.h | 2 +
drivers/net/ethernet/aquantia/atlantic/aq_ring.c | 8 +-
drivers/net/ethernet/asix/ax88796c_main.c | 4 +-
drivers/net/ethernet/atheros/ag71xx.c | 1 -
drivers/net/ethernet/broadcom/Kconfig | 3 +-
drivers/net/ethernet/broadcom/b44.c | 8 +-
drivers/net/ethernet/broadcom/bcm4908_enet.c | 57 +-
drivers/net/ethernet/broadcom/bcmsysport.c | 23 +-
drivers/net/ethernet/broadcom/bcmsysport.h | 11 +
drivers/net/ethernet/broadcom/bnx2.c | 7 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 9 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 12 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 112 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 +
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 4 -
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 134 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 281 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 39 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h | 7 +-
drivers/net/ethernet/broadcom/cnic.c | 8 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 49 +-
drivers/net/ethernet/broadcom/genet/bcmmii.c | 19 +-
drivers/net/ethernet/broadcom/tg3.c | 22 +-
drivers/net/ethernet/brocade/bna/bfa_cs.h | 60 +-
drivers/net/ethernet/brocade/bna/bfa_ioc.c | 10 +-
drivers/net/ethernet/brocade/bna/bfa_ioc.h | 8 +-
drivers/net/ethernet/brocade/bna/bfa_msgq.c | 2 -
drivers/net/ethernet/brocade/bna/bfa_msgq.h | 8 +-
drivers/net/ethernet/brocade/bna/bna_enet.c | 6 +-
drivers/net/ethernet/brocade/bna/bna_tx_rx.c | 6 +-
drivers/net/ethernet/brocade/bna/bna_types.h | 27 +-
drivers/net/ethernet/cadence/macb_main.c | 17 +-
drivers/net/ethernet/cavium/liquidio/lio_main.c | 15 +-
.../net/ethernet/cavium/liquidio/octeon_console.c | 7 +-
drivers/net/ethernet/cavium/thunder/nicvf_main.c | 4 +-
drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 4 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c | 13 +-
.../chelsio/inline_crypto/ch_ipsec/chcr_ipsec.c | 4 +
.../chelsio/inline_crypto/ch_ktls/chcr_ktls.c | 26 +-
.../chelsio/inline_crypto/chtls/chtls_io.c | 4 +-
drivers/net/ethernet/cisco/enic/enic.h | 23 +-
drivers/net/ethernet/cisco/enic/enic_main.c | 11 +-
drivers/net/ethernet/cortina/gemini.c | 24 +-
drivers/net/ethernet/davicom/dm9051.c | 4 +-
drivers/net/ethernet/dlink/dl2k.c | 2 -
drivers/net/ethernet/dlink/sundance.c | 2 -
drivers/net/ethernet/dnet.c | 4 +-
drivers/net/ethernet/emulex/benet/be_ethtool.c | 12 +-
drivers/net/ethernet/emulex/benet/be_main.c | 16 +-
drivers/net/ethernet/engleder/tsnep.h | 8 +
drivers/net/ethernet/engleder/tsnep_ethtool.c | 165 +-
drivers/net/ethernet/engleder/tsnep_hw.h | 7 +
drivers/net/ethernet/engleder/tsnep_main.c | 288 +-
drivers/net/ethernet/faraday/ftmac100.c | 65 +-
drivers/net/ethernet/fealnx.c | 1953 -
drivers/net/ethernet/freescale/Kconfig | 1 +
drivers/net/ethernet/freescale/dpaa/Kconfig | 4 +-
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 89 +-
drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c | 90 +-
drivers/net/ethernet/freescale/dpaa2/Makefile | 2 +-
.../ethernet/freescale/dpaa2/dpaa2-eth-debugfs.c | 57 +-
.../ethernet/freescale/dpaa2/dpaa2-eth-devlink.c | 22 +-
.../net/ethernet/freescale/dpaa2/dpaa2-eth-trace.h | 142 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 609 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h | 112 +-
.../net/ethernet/freescale/dpaa2/dpaa2-ethtool.c | 128 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c | 22 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.h | 10 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp.c | 1 -
.../freescale/dpaa2/dpaa2-switch-ethtool.c | 45 +-
.../ethernet/freescale/dpaa2/dpaa2-switch-flower.c | 4 +
.../net/ethernet/freescale/dpaa2/dpaa2-switch.c | 60 +-
.../net/ethernet/freescale/dpaa2/dpaa2-switch.h | 9 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-xsk.c | 454 +
drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h | 19 +-
drivers/net/ethernet/freescale/dpaa2/dpni.c | 6 +-
drivers/net/ethernet/freescale/dpaa2/dpni.h | 9 +
drivers/net/ethernet/freescale/enetc/enetc.c | 43 +-
drivers/net/ethernet/freescale/enetc/enetc.h | 1 +
drivers/net/ethernet/freescale/enetc/enetc_pf.c | 1 -
drivers/net/ethernet/freescale/enetc/enetc_qos.c | 21 +-
drivers/net/ethernet/freescale/fec.h | 20 +-
drivers/net/ethernet/freescale/fec_main.c | 428 +-
drivers/net/ethernet/freescale/fec_ptp.c | 177 +-
drivers/net/ethernet/freescale/fman/Kconfig | 3 +-
drivers/net/ethernet/freescale/fman/fman_dtsec.c | 457 +-
drivers/net/ethernet/freescale/fman/fman_mac.h | 10 -
drivers/net/ethernet/freescale/fman/fman_memac.c | 744 +-
drivers/net/ethernet/freescale/fman/fman_tgec.c | 130 +-
drivers/net/ethernet/freescale/fman/mac.c | 168 +-
drivers/net/ethernet/freescale/fman/mac.h | 23 +-
.../net/ethernet/fungible/funeth/funeth_devlink.c | 7 -
drivers/net/ethernet/fungible/funeth/funeth_main.c | 13 +-
drivers/net/ethernet/fungible/funeth/funeth_txrx.h | 4 +-
drivers/net/ethernet/google/gve/gve.h | 27 +-
drivers/net/ethernet/google/gve/gve_adminq.c | 21 +-
drivers/net/ethernet/google/gve/gve_adminq.h | 51 +
drivers/net/ethernet/google/gve/gve_desc_dqo.h | 5 +
drivers/net/ethernet/google/gve/gve_ethtool.c | 18 +-
drivers/net/ethernet/google/gve/gve_main.c | 64 +-
drivers/net/ethernet/google/gve/gve_rx.c | 544 +-
drivers/net/ethernet/google/gve/gve_rx_dqo.c | 2 +-
drivers/net/ethernet/google/gve/gve_tx_dqo.c | 20 +-
drivers/net/ethernet/google/gve/gve_utils.c | 30 +-
drivers/net/ethernet/google/gve/gve_utils.h | 2 +-
drivers/net/ethernet/hisilicon/hisi_femac.c | 2 +-
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | 2 +-
drivers/net/ethernet/hisilicon/hns/hnae.c | 3 -
drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | 11 +-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 4 +-
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 6 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c | 5 -
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c | 22 +-
.../hisilicon/hns3/hns3vf/hclgevf_devlink.c | 5 -
drivers/net/ethernet/huawei/hinic/hinic_dev.h | 4 +
drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h | 170 +-
drivers/net/ethernet/huawei/hinic/hinic_main.c | 13 +-
drivers/net/ethernet/huawei/hinic/hinic_port.c | 50 +-
drivers/net/ethernet/huawei/hinic/hinic_port.h | 12 +
drivers/net/ethernet/huawei/hinic/hinic_rx.c | 4 +-
drivers/net/ethernet/huawei/hinic/hinic_sriov.c | 18 +
drivers/net/ethernet/huawei/hinic/hinic_tx.c | 4 +-
drivers/net/ethernet/ibm/ibmveth.c | 18 +-
drivers/net/ethernet/ibm/ibmveth.h | 1 -
drivers/net/ethernet/ibm/ibmvnic.c | 239 +-
drivers/net/ethernet/ibm/ibmvnic.h | 5 +
drivers/net/ethernet/intel/e100.c | 5 +-
drivers/net/ethernet/intel/e1000/e1000_main.c | 9 +-
drivers/net/ethernet/intel/e1000e/Makefile | 3 +
drivers/net/ethernet/intel/e1000e/e1000.h | 4 +-
drivers/net/ethernet/intel/e1000e/e1000e_trace.h | 42 +
drivers/net/ethernet/intel/e1000e/ethtool.c | 2 +
drivers/net/ethernet/intel/e1000e/hw.h | 9 +
drivers/net/ethernet/intel/e1000e/ich8lan.c | 27 +
drivers/net/ethernet/intel/e1000e/netdev.c | 55 +-
drivers/net/ethernet/intel/e1000e/ptp.c | 17 +-
drivers/net/ethernet/intel/fm10k/fm10k_main.c | 10 +-
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 8 +-
drivers/net/ethernet/intel/i40e/i40e.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 8 +-
drivers/net/ethernet/intel/i40e/i40e_common.c | 26 +
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 24 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 121 +-
drivers/net/ethernet/intel/i40e/i40e_prototype.h | 3 +
drivers/net/ethernet/intel/i40e/i40e_ptp.c | 17 +-
drivers/net/ethernet/intel/i40e/i40e_trace.h | 49 +
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 27 +-
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 2 +
drivers/net/ethernet/intel/iavf/iavf.h | 1 -
drivers/net/ethernet/intel/iavf/iavf_ethtool.c | 8 +-
drivers/net/ethernet/intel/iavf/iavf_main.c | 54 +-
drivers/net/ethernet/intel/ice/ice.h | 24 +
drivers/net/ethernet/intel/ice/ice_adminq_cmd.h | 4 +-
drivers/net/ethernet/intel/ice/ice_base.c | 2 +-
drivers/net/ethernet/intel/ice/ice_common.c | 48 +-
drivers/net/ethernet/intel/ice/ice_common.h | 1 +
drivers/net/ethernet/intel/ice/ice_dcb.c | 2 +-
drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 10 +
drivers/net/ethernet/intel/ice/ice_devlink.c | 634 +-
drivers/net/ethernet/intel/ice/ice_devlink.h | 3 +
drivers/net/ethernet/intel/ice/ice_ethtool.c | 181 +-
drivers/net/ethernet/intel/ice/ice_hw_autogen.h | 3 +
drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h | 12 -
drivers/net/ethernet/intel/ice/ice_lib.c | 272 +-
drivers/net/ethernet/intel/ice/ice_main.c | 147 +-
drivers/net/ethernet/intel/ice/ice_ptp.c | 588 +-
drivers/net/ethernet/intel/ice/ice_ptp.h | 39 +-
drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 348 +-
drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 8 +-
drivers/net/ethernet/intel/ice/ice_repr.c | 40 +-
drivers/net/ethernet/intel/ice/ice_sched.c | 104 +-
drivers/net/ethernet/intel/ice/ice_sched.h | 31 +-
drivers/net/ethernet/intel/ice/ice_tc_lib.c | 351 +-
drivers/net/ethernet/intel/ice/ice_tc_lib.h | 40 +-
drivers/net/ethernet/intel/ice/ice_txrx.c | 40 +-
drivers/net/ethernet/intel/ice/ice_txrx.h | 18 +-
drivers/net/ethernet/intel/ice/ice_txrx_lib.c | 2 +-
drivers/net/ethernet/intel/ice/ice_type.h | 9 +
drivers/net/ethernet/intel/ice/ice_vf_lib.c | 24 +
.../net/ethernet/intel/ice/ice_vf_lib_private.h | 1 +
drivers/net/ethernet/intel/ice/ice_vf_mbx.c | 92 +-
drivers/net/ethernet/intel/ice/ice_virtchnl.c | 195 +
drivers/net/ethernet/intel/ice/ice_virtchnl.h | 4 +
.../ethernet/intel/ice/ice_virtchnl_allowlist.c | 6 +
drivers/net/ethernet/intel/ice/ice_xsk.c | 25 +-
drivers/net/ethernet/intel/igb/igb_ethtool.c | 14 +-
drivers/net/ethernet/intel/igb/igb_main.c | 20 +-
drivers/net/ethernet/intel/igb/igb_ptp.c | 18 +-
drivers/net/ethernet/intel/igc/igc.h | 3 +
drivers/net/ethernet/intel/igc/igc_defines.h | 11 +
drivers/net/ethernet/intel/igc/igc_ethtool.c | 12 +-
drivers/net/ethernet/intel/igc/igc_main.c | 225 +-
drivers/net/ethernet/intel/igc/igc_regs.h | 1 +
drivers/net/ethernet/intel/igc/igc_tsn.c | 43 +-
drivers/net/ethernet/intel/igc/igc_tsn.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 10 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 61 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c | 5 +
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 8 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 26 +-
drivers/net/ethernet/intel/ixgbevf/ethtool.c | 12 +-
drivers/net/ethernet/intel/ixgbevf/ipsec.c | 5 +
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 35 +-
drivers/net/ethernet/marvell/mv643xx_eth.c | 49 +-
drivers/net/ethernet/marvell/mvneta.c | 15 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 24 +-
.../net/ethernet/marvell/octeon_ep/octep_main.c | 20 +-
.../net/ethernet/marvell/octeon_ep/octep_main.h | 2 +
drivers/net/ethernet/marvell/octeontx2/Kconfig | 1 -
drivers/net/ethernet/marvell/octeontx2/af/cgx.c | 78 +-
drivers/net/ethernet/marvell/octeontx2/af/cgx.h | 9 +-
.../ethernet/marvell/octeontx2/af/lmac_common.h | 15 +-
drivers/net/ethernet/marvell/octeontx2/af/mbox.h | 18 +
drivers/net/ethernet/marvell/octeontx2/af/mcs.c | 8 +-
drivers/net/ethernet/marvell/octeontx2/af/npc.h | 3 +
drivers/net/ethernet/marvell/octeontx2/af/rpm.c | 262 +-
drivers/net/ethernet/marvell/octeontx2/af/rpm.h | 36 +-
drivers/net/ethernet/marvell/octeontx2/af/rvu.h | 13 +-
.../net/ethernet/marvell/octeontx2/af/rvu_cgx.c | 49 +-
.../ethernet/marvell/octeontx2/af/rvu_debugfs.c | 19 +-
.../ethernet/marvell/octeontx2/af/rvu_devlink.c | 7 -
.../net/ethernet/marvell/octeontx2/af/rvu_nix.c | 12 +-
.../net/ethernet/marvell/octeontx2/af/rvu_npc.c | 22 +
.../net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c | 151 +-
.../ethernet/marvell/octeontx2/af/rvu_npc_hash.c | 21 +-
.../net/ethernet/marvell/octeontx2/af/rvu_sdp.c | 7 +-
.../ethernet/marvell/octeontx2/nic/otx2_common.h | 5 +-
.../ethernet/marvell/octeontx2/nic/otx2_devlink.c | 15 -
.../ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 34 +
.../ethernet/marvell/octeontx2/nic/otx2_flows.c | 52 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 2 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_tc.c | 32 +-
.../ethernet/marvell/prestera/prestera_devlink.c | 22 -
.../ethernet/marvell/prestera/prestera_devlink.h | 5 -
.../net/ethernet/marvell/prestera/prestera_main.c | 22 +-
.../net/ethernet/marvell/prestera/prestera_pci.c | 119 +-
.../ethernet/marvell/prestera/prestera_router.c | 2 +-
.../ethernet/marvell/prestera/prestera_router_hw.c | 4 +-
drivers/net/ethernet/marvell/sky2.c | 10 +-
drivers/net/ethernet/mediatek/Makefile | 2 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 521 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 59 +-
drivers/net/ethernet/mediatek/mtk_ppe.c | 41 +-
drivers/net/ethernet/mediatek/mtk_ppe.h | 5 +
drivers/net/ethernet/mediatek/mtk_ppe_offload.c | 12 +-
drivers/net/ethernet/mediatek/mtk_sgmii.c | 174 +-
drivers/net/ethernet/mediatek/mtk_wed.c | 863 +-
drivers/net/ethernet/mediatek/mtk_wed.h | 21 +
drivers/net/ethernet/mediatek/mtk_wed_debugfs.c | 87 +
drivers/net/ethernet/mediatek/mtk_wed_mcu.c | 390 +
drivers/net/ethernet/mediatek/mtk_wed_regs.h | 140 +-
drivers/net/ethernet/mediatek/mtk_wed_wo.c | 512 +
drivers/net/ethernet/mediatek/mtk_wed_wo.h | 282 +
drivers/net/ethernet/mellanox/mlx4/en_clock.c | 29 +-
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 9 +-
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 18 +-
drivers/net/ethernet/mellanox/mlx4/main.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 18 +-
drivers/net/ethernet/mellanox/mlx4/qp.c | 3 +-
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 1 +
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 52 +-
drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 19 +-
drivers/net/ethernet/mellanox/mlx5/core/devlink.h | 2 +
.../mellanox/mlx5/core/diag/cmd_tracepoint.h | 45 +
.../mellanox/mlx5/core/diag/fs_tracepoint.c | 16 +
.../ethernet/mellanox/mlx5/core/diag/fw_tracer.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en.h | 11 +-
.../net/ethernet/mellanox/mlx5/core/en/devlink.c | 17 -
.../net/ethernet/mellanox/mlx5/core/en/devlink.h | 2 -
drivers/net/ethernet/mellanox/mlx5/core/en/fs.h | 3 +-
.../net/ethernet/mellanox/mlx5/core/en/params.c | 16 +-
.../net/ethernet/mellanox/mlx5/core/en/params.h | 14 +
.../net/ethernet/mellanox/mlx5/core/en/rep/tc.c | 1 -
.../ethernet/mellanox/mlx5/core/en/tc/act/accept.c | 1 +
.../ethernet/mellanox/mlx5/core/en/tc/act/act.c | 2 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/act.h | 12 +
.../ethernet/mellanox/mlx5/core/en/tc/act/drop.c | 1 +
.../ethernet/mellanox/mlx5/core/en/tc/act/goto.c | 1 +
.../ethernet/mellanox/mlx5/core/en/tc/act/mirred.c | 7 +
.../mellanox/mlx5/core/en/tc/act/mirred_nic.c | 1 +
.../ethernet/mellanox/mlx5/core/en/tc/act/police.c | 86 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/trap.c | 10 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/meter.c | 40 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/meter.h | 5 +-
.../ethernet/mellanox/mlx5/core/en/tc/post_meter.c | 402 +-
.../ethernet/mellanox/mlx5/core/en/tc/post_meter.h | 39 +-
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c | 89 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_priv.h | 4 -
.../ethernet/mellanox/mlx5/core/en/tc_tun_encap.c | 16 +-
.../ethernet/mellanox/mlx5/core/en/tc_tun_encap.h | 3 +-
.../ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c | 4 +-
.../ethernet/mellanox/mlx5/core/en_accel/ipsec.c | 371 +-
.../ethernet/mellanox/mlx5/core/en_accel/ipsec.h | 137 +-
.../mellanox/mlx5/core/en_accel/ipsec_fs.c | 1069 +-
.../mellanox/mlx5/core/en_accel/ipsec_offload.c | 303 +-
.../mellanox/mlx5/core/en_accel/ipsec_rxtx.c | 22 +-
.../mellanox/mlx5/core/en_accel/ipsec_stats.c | 52 +
.../ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c | 65 +-
.../ethernet/mellanox/mlx5/core/en_accel/macsec.c | 153 +-
.../ethernet/mellanox/mlx5/core/en_accel/macsec.h | 6 +-
.../mellanox/mlx5/core/en_accel/macsec_fs.c | 17 +-
drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 2 -
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 19 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 32 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 148 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 171 +-
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 18 +
drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 19 +
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 454 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h | 9 +-
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 5 +
.../net/ethernet/mellanox/mlx5/core/esw/bridge.c | 8 +-
.../net/ethernet/mellanox/mlx5/core/esw/debugfs.c | 22 +-
.../ethernet/mellanox/mlx5/core/esw/devlink_port.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 46 +
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 24 +-
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 279 +-
.../mellanox/mlx5/core/eswitch_offloads_termtbl.c | 34 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 20 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 1 +
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 9 +-
.../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 7 +-
.../ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 12 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 14 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c | 79 +-
.../net/ethernet/mellanox/mlx5/core/lag/mpesw.c | 100 +-
.../net/ethernet/mellanox/mlx5/core/lag/mpesw.h | 1 -
drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/lib/aso.h | 4 +-
.../net/ethernet/mellanox/mlx5/core/lib/clock.c | 22 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 31 +-
.../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 5 +-
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c | 3 +-
.../net/ethernet/mellanox/mlx5/core/sf/dev/dev.c | 88 +
.../mellanox/mlx5/core/steering/dr_action.c | 300 +-
.../mellanox/mlx5/core/steering/dr_buddy.c | 2 -
.../ethernet/mellanox/mlx5/core/steering/dr_cmd.c | 84 +
.../ethernet/mellanox/mlx5/core/steering/dr_dbg.c | 29 +-
.../mellanox/mlx5/core/steering/dr_definer.c | 151 +
.../mellanox/mlx5/core/steering/dr_domain.c | 96 +-
.../mellanox/mlx5/core/steering/dr_icm_pool.c | 174 +-
.../ethernet/mellanox/mlx5/core/steering/dr_rule.c | 119 +-
.../ethernet/mellanox/mlx5/core/steering/dr_send.c | 141 +-
.../ethernet/mellanox/mlx5/core/steering/dr_ste.c | 22 +-
.../ethernet/mellanox/mlx5/core/steering/dr_ste.h | 1 +
.../mellanox/mlx5/core/steering/dr_ste_v1.c | 69 +
.../mellanox/mlx5/core/steering/dr_ste_v1.h | 1 +
.../mellanox/mlx5/core/steering/dr_ste_v2.c | 1 +
.../mellanox/mlx5/core/steering/dr_table.c | 7 +-
.../mellanox/mlx5/core/steering/dr_types.h | 59 +-
.../ethernet/mellanox/mlx5/core/steering/fs_dr.c | 53 +-
.../mlx5/core/steering/mlx5_ifc_dr_ste_v1.h | 35 +
.../ethernet/mellanox/mlx5/core/steering/mlx5dr.h | 22 +-
drivers/net/ethernet/mellanox/mlx5/core/uar.c | 1 -
drivers/net/ethernet/mellanox/mlx5/core/vport.c | 30 +-
drivers/net/ethernet/mellanox/mlx5/core/wq.h | 17 +
drivers/net/ethernet/mellanox/mlxsw/core.c | 25 +-
drivers/net/ethernet/mellanox/mlxsw/core.h | 7 +-
drivers/net/ethernet/mellanox/mlxsw/i2c.c | 6 +-
drivers/net/ethernet/mellanox/mlxsw/minimal.c | 17 +-
drivers/net/ethernet/mellanox/mlxsw/reg.h | 36 +
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 42 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 5 +-
.../net/ethernet/mellanox/mlxsw/spectrum_ethtool.c | 21 +
.../net/ethernet/mellanox/mlxsw/spectrum_ipip.c | 160 +-
.../net/ethernet/mellanox/mlxsw/spectrum_ipip.h | 1 +
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c | 18 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.c | 102 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.h | 4 +
.../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 64 +-
.../net/ethernet/mellanox/mlxsw/spectrum_trap.c | 25 +
drivers/net/ethernet/mellanox/mlxsw/trap.h | 2 +
drivers/net/ethernet/microchip/Kconfig | 1 +
drivers/net/ethernet/microchip/Makefile | 1 +
drivers/net/ethernet/microchip/encx24j600-regmap.c | 4 +-
drivers/net/ethernet/microchip/lan743x_ethtool.c | 159 +-
drivers/net/ethernet/microchip/lan743x_ethtool.h | 71 +-
drivers/net/ethernet/microchip/lan743x_main.c | 6 +-
drivers/net/ethernet/microchip/lan743x_main.h | 3 +
drivers/net/ethernet/microchip/lan743x_ptp.c | 54 +-
drivers/net/ethernet/microchip/lan966x/Kconfig | 2 +
drivers/net/ethernet/microchip/lan966x/Makefile | 7 +-
.../net/ethernet/microchip/lan966x/lan966x_fdma.c | 433 +-
.../net/ethernet/microchip/lan966x/lan966x_goto.c | 54 +
.../net/ethernet/microchip/lan966x/lan966x_ifh.h | 1 +
.../net/ethernet/microchip/lan966x/lan966x_main.c | 42 +-
.../net/ethernet/microchip/lan966x/lan966x_main.h | 95 +-
.../ethernet/microchip/lan966x/lan966x_phylink.c | 2 -
.../net/ethernet/microchip/lan966x/lan966x_ptp.c | 234 +-
.../net/ethernet/microchip/lan966x/lan966x_regs.h | 196 +
.../net/ethernet/microchip/lan966x/lan966x_tc.c | 2 +
.../ethernet/microchip/lan966x/lan966x_tc_flower.c | 254 +
.../microchip/lan966x/lan966x_tc_matchall.c | 6 +
.../microchip/lan966x/lan966x_vcap_ag_api.c | 1608 +
.../microchip/lan966x/lan966x_vcap_ag_api.h | 11 +
.../ethernet/microchip/lan966x/lan966x_vcap_impl.c | 549 +
.../net/ethernet/microchip/lan966x/lan966x_xdp.c | 140 +
drivers/net/ethernet/microchip/sparx5/Kconfig | 12 +
drivers/net/ethernet/microchip/sparx5/Makefile | 11 +-
drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c | 310 +
.../net/ethernet/microchip/sparx5/sparx5_fdma.c | 2 +-
.../net/ethernet/microchip/sparx5/sparx5_main.c | 15 +
.../net/ethernet/microchip/sparx5/sparx5_main.h | 20 +
.../ethernet/microchip/sparx5/sparx5_main_regs.h | 583 +-
.../net/ethernet/microchip/sparx5/sparx5_netdev.c | 14 +-
.../net/ethernet/microchip/sparx5/sparx5_packet.c | 41 +-
.../net/ethernet/microchip/sparx5/sparx5_phylink.c | 1 -
.../net/ethernet/microchip/sparx5/sparx5_port.c | 99 +
.../net/ethernet/microchip/sparx5/sparx5_port.h | 42 +
drivers/net/ethernet/microchip/sparx5/sparx5_qos.c | 4 +
drivers/net/ethernet/microchip/sparx5/sparx5_tc.c | 58 +-
drivers/net/ethernet/microchip/sparx5/sparx5_tc.h | 19 +
.../ethernet/microchip/sparx5/sparx5_tc_flower.c | 1016 +
.../ethernet/microchip/sparx5/sparx5_tc_matchall.c | 97 +
.../ethernet/microchip/sparx5/sparx5_vcap_ag_api.c | 1351 +
.../ethernet/microchip/sparx5/sparx5_vcap_ag_api.h | 18 +
.../microchip/sparx5/sparx5_vcap_debugfs.c | 200 +
.../microchip/sparx5/sparx5_vcap_debugfs.h | 33 +
.../ethernet/microchip/sparx5/sparx5_vcap_impl.c | 723 +
.../ethernet/microchip/sparx5/sparx5_vcap_impl.h | 81 +
drivers/net/ethernet/microchip/vcap/Kconfig | 53 +
drivers/net/ethernet/microchip/vcap/Makefile | 10 +
drivers/net/ethernet/microchip/vcap/vcap_ag_api.h | 735 +
drivers/net/ethernet/microchip/vcap/vcap_api.c | 2883 ++
drivers/net/ethernet/microchip/vcap/vcap_api.h | 280 +
.../net/ethernet/microchip/vcap/vcap_api_client.h | 265 +
.../net/ethernet/microchip/vcap/vcap_api_debugfs.c | 433 +
.../net/ethernet/microchip/vcap/vcap_api_debugfs.h | 41 +
.../microchip/vcap/vcap_api_debugfs_kunit.c | 555 +
.../net/ethernet/microchip/vcap/vcap_api_kunit.c | 2245 +
.../net/ethernet/microchip/vcap/vcap_api_private.h | 113 +
.../net/ethernet/microchip/vcap/vcap_model_kunit.c | 5570 +++
.../net/ethernet/microchip/vcap/vcap_model_kunit.h | 10 +
drivers/net/ethernet/microsoft/Kconfig | 1 +
drivers/net/ethernet/microsoft/mana/gdma_main.c | 69 +-
drivers/net/ethernet/microsoft/mana/hw_channel.c | 6 +-
drivers/net/ethernet/microsoft/mana/mana_bpf.c | 2 +-
drivers/net/ethernet/microsoft/mana/mana_en.c | 201 +-
drivers/net/ethernet/microsoft/mana/mana_ethtool.c | 10 +-
drivers/net/ethernet/microsoft/mana/shm_channel.c | 2 +-
drivers/net/ethernet/mscc/ocelot.c | 6 +-
drivers/net/ethernet/mscc/ocelot_net.c | 12 +-
drivers/net/ethernet/mscc/ocelot_stats.c | 244 +-
drivers/net/ethernet/mscc/ocelot_vsc7514.c | 14 -
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 4 +-
drivers/net/ethernet/neterion/s2io.c | 2 +-
drivers/net/ethernet/netronome/Kconfig | 11 +
drivers/net/ethernet/netronome/nfp/Makefile | 2 +
drivers/net/ethernet/netronome/nfp/ccm_mbox.c | 2 +-
drivers/net/ethernet/netronome/nfp/crypto/crypto.h | 23 +
drivers/net/ethernet/netronome/nfp/crypto/ipsec.c | 592 +
.../net/ethernet/netronome/nfp/flower/lag_conf.c | 52 +-
drivers/net/ethernet/netronome/nfp/flower/main.c | 9 +
drivers/net/ethernet/netronome/nfp/flower/main.h | 21 +-
.../ethernet/netronome/nfp/flower/tunnel_conf.c | 53 +-
drivers/net/ethernet/netronome/nfp/nfd3/dp.c | 58 +-
drivers/net/ethernet/netronome/nfp/nfd3/ipsec.c | 18 +
drivers/net/ethernet/netronome/nfp/nfd3/nfd3.h | 8 +
drivers/net/ethernet/netronome/nfp/nfdk/dp.c | 6 +-
drivers/net/ethernet/netronome/nfp/nfp_app.h | 2 -
drivers/net/ethernet/netronome/nfp/nfp_devlink.c | 29 +-
drivers/net/ethernet/netronome/nfp/nfp_main.h | 2 +-
drivers/net/ethernet/netronome/nfp/nfp_net.h | 16 +
.../net/ethernet/netronome/nfp/nfp_net_common.c | 89 +-
drivers/net/ethernet/netronome/nfp/nfp_net_ctrl.h | 37 +-
.../net/ethernet/netronome/nfp/nfp_net_ethtool.c | 84 +-
drivers/net/ethernet/netronome/nfp/nfp_net_main.c | 12 +-
drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 5 +-
drivers/net/ethernet/netronome/nfp/nfp_port.h | 2 -
.../net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c | 17 +
.../net/ethernet/netronome/nfp/nfpcore/nfp_nsp.h | 56 +
.../ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.c | 26 +
drivers/net/ethernet/ni/nixge.c | 29 +-
drivers/net/ethernet/nvidia/forcedeth.c | 8 +-
.../net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 6 +-
drivers/net/ethernet/pensando/ionic/ionic_dev.c | 14 +
drivers/net/ethernet/pensando/ionic/ionic_dev.h | 3 +
.../net/ethernet/pensando/ionic/ionic_devlink.c | 6 +-
drivers/net/ethernet/pensando/ionic/ionic_if.h | 45 +-
drivers/net/ethernet/pensando/ionic/ionic_lif.c | 113 +-
drivers/net/ethernet/pensando/ionic/ionic_main.c | 2 +-
drivers/net/ethernet/pensando/ionic/ionic_txrx.c | 31 +-
drivers/net/ethernet/qlogic/qed/qed_debug.c | 3 +-
drivers/net/ethernet/qlogic/qed/qed_devlink.c | 4 -
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 2 +-
drivers/net/ethernet/qlogic/qed/qed_mcp.c | 24 +-
drivers/net/ethernet/qlogic/qede/qede_ptp.c | 13 +-
drivers/net/ethernet/qlogic/qla3xxx.c | 1 +
.../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 4 +-
.../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | 2 +-
.../ethernet/qlogic/qlcnic/qlcnic_sriov_common.c | 2 +
drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c | 4 +-
drivers/net/ethernet/rdc/r6040.c | 5 +-
drivers/net/ethernet/realtek/8139too.c | 8 +-
drivers/net/ethernet/realtek/r8169_main.c | 9 +-
drivers/net/ethernet/renesas/Kconfig | 12 +
drivers/net/ethernet/renesas/Makefile | 4 +
drivers/net/ethernet/renesas/ravb_main.c | 5 +-
drivers/net/ethernet/renesas/ravb_ptp.c | 17 +-
drivers/net/ethernet/renesas/rcar_gen4_ptp.c | 181 +
drivers/net/ethernet/renesas/rcar_gen4_ptp.h | 72 +
drivers/net/ethernet/renesas/rswitch.c | 1841 +
drivers/net/ethernet/renesas/rswitch.h | 973 +
drivers/net/ethernet/rocker/rocker_ofdpa.c | 15 +-
drivers/net/ethernet/sfc/Makefile | 2 +-
drivers/net/ethernet/sfc/ef100_ethtool.c | 2 -
drivers/net/ethernet/sfc/ef100_netdev.c | 1 +
drivers/net/ethernet/sfc/ef100_rx.c | 23 +-
drivers/net/ethernet/sfc/ef100_tx.c | 3 +-
drivers/net/ethernet/sfc/efx_channels.c | 9 +-
drivers/net/ethernet/sfc/efx_common.c | 2 +-
drivers/net/ethernet/sfc/ethtool_common.c | 37 -
drivers/net/ethernet/sfc/ethtool_common.h | 2 -
drivers/net/ethernet/sfc/mae.c | 306 +-
drivers/net/ethernet/sfc/mae.h | 7 +
drivers/net/ethernet/sfc/mae_counter_format.h | 73 +
drivers/net/ethernet/sfc/mcdi.h | 17 +
drivers/net/ethernet/sfc/net_driver.h | 19 +-
drivers/net/ethernet/sfc/ptp.c | 7 +-
drivers/net/ethernet/sfc/rx_common.c | 3 +
drivers/net/ethernet/sfc/siena/efx_common.c | 2 +-
drivers/net/ethernet/sfc/siena/ptp.c | 7 +-
drivers/net/ethernet/sfc/tc.c | 302 +-
drivers/net/ethernet/sfc/tc.h | 48 +-
drivers/net/ethernet/sfc/tc_counters.c | 503 +
drivers/net/ethernet/sfc/tc_counters.h | 59 +
drivers/net/ethernet/sfc/tx.c | 4 +-
drivers/net/ethernet/smsc/Kconfig | 14 -
drivers/net/ethernet/smsc/Makefile | 1 -
drivers/net/ethernet/smsc/smc911x.c | 2198 -
drivers/net/ethernet/smsc/smc911x.h | 901 -
drivers/net/ethernet/socionext/sni_ave.c | 14 +-
drivers/net/ethernet/stmicro/stmmac/Kconfig | 9 +
drivers/net/ethernet/stmicro/stmmac/Makefile | 1 +
drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.c | 388 +
drivers/net/ethernet/stmicro/stmmac/dwmac4.h | 4 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 23 +-
.../net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c | 3 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 24 +-
.../net/ethernet/stmicro/stmmac/stmmac_platform.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 23 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h | 2 +-
.../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 3 +
drivers/net/ethernet/sun/cassini.c | 48 +-
drivers/net/ethernet/sun/sunvnet.c | 2 +-
drivers/net/ethernet/sun/sunvnet_common.c | 4 +-
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 268 +-
drivers/net/ethernet/ti/am65-cpsw-nuss.h | 6 +
drivers/net/ethernet/ti/am65-cpts.c | 81 +-
drivers/net/ethernet/ti/am65-cpts.h | 10 +
drivers/net/ethernet/ti/cpsw_ale.c | 10 +
drivers/net/ethernet/ti/cpsw_ale.h | 1 +
drivers/net/ethernet/ti/cpts.c | 20 +-
drivers/net/ethernet/ti/netcp_core.c | 10 +-
drivers/net/ethernet/via/via-rhine.c | 8 +-
drivers/net/ethernet/wangxun/Kconfig | 7 +
drivers/net/ethernet/wangxun/Makefile | 1 +
drivers/net/ethernet/wangxun/libwx/Makefile | 7 +
drivers/net/ethernet/wangxun/libwx/wx_hw.c | 936 +
drivers/net/ethernet/wangxun/libwx/wx_hw.h | 28 +
drivers/net/ethernet/wangxun/libwx/wx_type.h | 352 +
drivers/net/ethernet/wangxun/ngbe/Makefile | 2 +-
drivers/net/ethernet/wangxun/ngbe/ngbe.h | 55 +
drivers/net/ethernet/wangxun/ngbe/ngbe_hw.c | 87 +
drivers/net/ethernet/wangxun/ngbe/ngbe_hw.h | 12 +
drivers/net/ethernet/wangxun/ngbe/ngbe_main.c | 368 +
drivers/net/ethernet/wangxun/ngbe/ngbe_type.h | 99 +-
drivers/net/ethernet/wangxun/txgbe/Makefile | 3 +-
drivers/net/ethernet/wangxun/txgbe/txgbe.h | 23 +-
drivers/net/ethernet/wangxun/txgbe/txgbe_hw.c | 312 +
drivers/net/ethernet/wangxun/txgbe/txgbe_hw.h | 11 +
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c | 465 +-
drivers/net/ethernet/wangxun/txgbe/txgbe_type.h | 47 +-
drivers/net/ethernet/xilinx/xilinx_axienet.h | 2 -
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 45 +-
drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c | 79 +-
drivers/net/ethernet/xilinx/xilinx_emaclite.c | 2 +-
drivers/net/ethernet/xscale/ptp_ixp46x.c | 19 +-
drivers/net/fddi/defxx.c | 22 +-
drivers/net/fjes/fjes_main.c | 4 +-
drivers/net/geneve.c | 2 +-
drivers/net/hamradio/baycom_epp.c | 2 +-
drivers/net/hamradio/scc.c | 6 +-
drivers/net/hyperv/netvsc_drv.c | 32 +-
drivers/net/ieee802154/atusb.c | 33 +-
drivers/net/ieee802154/ca8210.c | 2 +-
drivers/net/ieee802154/cc2520.c | 2 +-
drivers/net/ieee802154/mac802154_hwsim.c | 179 +-
drivers/net/ieee802154/mcr20a.c | 9 +-
drivers/net/ifb.c | 12 +-
drivers/net/ipa/Makefile | 2 +-
drivers/net/ipa/data/ipa_data-v3.1.c | 19 +-
drivers/net/ipa/data/ipa_data-v3.5.1.c | 27 +-
drivers/net/ipa/data/ipa_data-v4.11.c | 17 +-
drivers/net/ipa/data/ipa_data-v4.2.c | 17 +-
drivers/net/ipa/data/ipa_data-v4.5.c | 17 +-
drivers/net/ipa/data/ipa_data-v4.7.c | 405 +
drivers/net/ipa/data/ipa_data-v4.9.c | 17 +-
drivers/net/ipa/gsi_trans.c | 7 +-
drivers/net/ipa/ipa.h | 32 +-
drivers/net/ipa/ipa_cmd.c | 74 +-
drivers/net/ipa/ipa_cmd.h | 16 +-
drivers/net/ipa/ipa_data.h | 3 +
drivers/net/ipa/ipa_endpoint.c | 277 +-
drivers/net/ipa/ipa_endpoint.h | 2 +-
drivers/net/ipa/ipa_interrupt.c | 34 +-
drivers/net/ipa/ipa_main.c | 112 +-
drivers/net/ipa/ipa_mem.c | 19 +-
drivers/net/ipa/ipa_qmi.c | 9 +-
drivers/net/ipa/ipa_qmi_msg.c | 20 +-
drivers/net/ipa/ipa_qmi_msg.h | 20 +-
drivers/net/ipa/ipa_reg.c | 2 +
drivers/net/ipa/ipa_reg.h | 1 +
drivers/net/ipa/ipa_sysfs.c | 6 +-
drivers/net/ipa/ipa_table.c | 350 +-
drivers/net/ipa/ipa_table.h | 30 +-
drivers/net/ipa/ipa_version.h | 4 +
drivers/net/ipa/reg/ipa_reg-v3.1.c | 13 +-
drivers/net/ipa/reg/ipa_reg-v3.5.1.c | 13 +-
drivers/net/ipa/reg/ipa_reg-v4.11.c | 13 +-
drivers/net/ipa/reg/ipa_reg-v4.2.c | 13 +-
drivers/net/ipa/reg/ipa_reg-v4.5.c | 13 +-
drivers/net/ipa/reg/ipa_reg-v4.7.c | 507 +
drivers/net/ipa/reg/ipa_reg-v4.9.c | 13 +-
drivers/net/ipvlan/ipvlan.h | 1 +
drivers/net/ipvlan/ipvlan_main.c | 6 +-
drivers/net/ipvlan/ipvtap.c | 4 +-
drivers/net/loopback.c | 6 +-
drivers/net/macsec.c | 48 +-
drivers/net/macvlan.c | 4 +-
drivers/net/macvtap.c | 4 +-
drivers/net/mctp/mctp-serial.c | 6 +-
drivers/net/mdio/fwnode_mdio.c | 6 +-
drivers/net/mdio/of_mdio.c | 3 +-
drivers/net/mhi_net.c | 8 +-
drivers/net/netconsole.c | 21 +-
drivers/net/netdevsim/dev.c | 7 +-
drivers/net/netdevsim/ipsec.c | 5 +
drivers/net/netdevsim/netdev.c | 14 +-
drivers/net/ntb_netdev.c | 13 +-
drivers/net/pcs/pcs-altera-tse.c | 21 +-
drivers/net/pcs/pcs-xpcs.c | 10 +-
drivers/net/phy/Kconfig | 5 +-
drivers/net/phy/aquantia_main.c | 40 +
drivers/net/phy/at803x.c | 6 +-
drivers/net/phy/dp83822.c | 2 +
drivers/net/phy/dp83867.c | 7 +
drivers/net/phy/mdio_device.c | 2 +
drivers/net/phy/micrel.c | 77 +
drivers/net/phy/motorcomm.c | 1677 +-
drivers/net/phy/mscc/mscc_macsec.c | 57 +-
drivers/net/phy/mscc/mscc_macsec.h | 2 -
drivers/net/phy/mxl-gpy.c | 191 +-
drivers/net/phy/phy-core.c | 11 +-
drivers/net/phy/phy.c | 1 +
drivers/net/phy/phy_device.c | 14 +
drivers/net/phy/phylink.c | 65 +-
drivers/net/phy/sfp.c | 162 +-
drivers/net/plip/plip.c | 4 +-
drivers/net/ppp/ppp_generic.c | 4 +-
drivers/net/tap.c | 10 +-
drivers/net/team/team.c | 6 +-
drivers/net/team/team_mode_loadbalance.c | 4 +-
drivers/net/team/team_mode_random.c | 2 +-
drivers/net/thunderbolt.c | 27 +-
drivers/net/tun.c | 79 +-
drivers/net/usb/asix_devices.c | 23 +-
drivers/net/usb/cdc_ether.c | 6 +
drivers/net/usb/cdc_ncm.c | 4 +-
drivers/net/usb/qmi_wwan.c | 6 +-
drivers/net/usb/sierra_net.c | 2 +-
drivers/net/veth.c | 14 +-
drivers/net/virtio_net.c | 38 +-
drivers/net/vmxnet3/vmxnet3_drv.c | 27 +-
drivers/net/vrf.c | 4 +-
drivers/net/vxlan/vxlan_core.c | 4 +-
drivers/net/vxlan/vxlan_vnifilter.c | 4 +-
drivers/net/wan/farsync.c | 2 +
drivers/net/wireguard/selftest/allowedips.c | 20 +-
drivers/net/wireguard/timers.c | 12 +-
drivers/net/wireless/admtek/adm8211.c | 1 +
drivers/net/wireless/ath/ar5523/ar5523.c | 7 +
drivers/net/wireless/ath/ath10k/Kconfig | 1 +
drivers/net/wireless/ath/ath10k/core.c | 16 +
drivers/net/wireless/ath/ath10k/debug.c | 5 +-
drivers/net/wireless/ath/ath10k/htc.c | 9 +
drivers/net/wireless/ath/ath10k/htt.h | 6 +-
drivers/net/wireless/ath/ath10k/htt_rx.c | 25 +-
drivers/net/wireless/ath/ath10k/hw.h | 2 +
drivers/net/wireless/ath/ath10k/pci.c | 20 +-
drivers/net/wireless/ath/ath10k/qmi.c | 37 +-
drivers/net/wireless/ath/ath10k/qmi_wlfw_v01.c | 126 +-
drivers/net/wireless/ath/ath10k/qmi_wlfw_v01.h | 102 +-
drivers/net/wireless/ath/ath10k/wmi-tlv.c | 7 +
drivers/net/wireless/ath/ath11k/core.c | 15 +-
drivers/net/wireless/ath/ath11k/core.h | 3 +
drivers/net/wireless/ath/ath11k/hw.h | 1 +
drivers/net/wireless/ath/ath11k/mac.c | 232 +-
drivers/net/wireless/ath/ath11k/mac.h | 2 +-
drivers/net/wireless/ath/ath11k/pcic.c | 13 +-
drivers/net/wireless/ath/ath11k/qmi.c | 87 +-
drivers/net/wireless/ath/ath11k/wmi.c | 2 +-
drivers/net/wireless/ath/ath5k/mac80211-ops.c | 1 +
drivers/net/wireless/ath/ath9k/Makefile | 5 -
drivers/net/wireless/ath/ath9k/ar9003_mci.c | 3 +-
drivers/net/wireless/ath/ath9k/ath9k.h | 1 +
drivers/net/wireless/ath/ath9k/hif_usb.c | 46 +-
drivers/net/wireless/ath/ath9k/htc_drv_main.c | 1 +
drivers/net/wireless/ath/ath9k/mci.c | 8 +-
drivers/net/wireless/ath/ath9k/tx99.c | 2 +-
drivers/net/wireless/ath/ath9k/xmit.c | 2 -
drivers/net/wireless/ath/carl9170/Makefile | 5 -
drivers/net/wireless/ath/carl9170/fwcmd.h | 4 +-
drivers/net/wireless/ath/carl9170/main.c | 1 +
drivers/net/wireless/ath/carl9170/wlan.h | 2 +-
drivers/net/wireless/ath/wcn36xx/main.c | 1 +
drivers/net/wireless/ath/wil6210/debugfs.c | 36 +-
drivers/net/wireless/atmel/at76c50x-usb.c | 1 +
drivers/net/wireless/atmel/atmel.c | 162 +-
drivers/net/wireless/broadcom/b43/main.c | 11 +-
drivers/net/wireless/broadcom/b43legacy/main.c | 1 +
.../wireless/broadcom/brcm80211/brcmfmac/Makefile | 11 +
.../broadcom/brcm80211/brcmfmac/bca/Makefile | 12 +
.../broadcom/brcm80211/brcmfmac/bca/core.c | 27 +
.../broadcom/brcm80211/brcmfmac/bca/module.c | 27 +
.../broadcom/brcm80211/brcmfmac/bca/vops.h | 11 +
.../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 52 +-
.../wireless/broadcom/brcm80211/brcmfmac/btcoex.c | 2 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/bus.h | 36 +-
.../broadcom/brcm80211/brcmfmac/cfg80211.c | 587 +-
.../wireless/broadcom/brcm80211/brcmfmac/common.c | 15 +-
.../wireless/broadcom/brcm80211/brcmfmac/core.c | 15 +-
.../wireless/broadcom/brcm80211/brcmfmac/core.h | 9 +
.../broadcom/brcm80211/brcmfmac/cyw/Makefile | 12 +
.../broadcom/brcm80211/brcmfmac/cyw/core.c | 27 +
.../broadcom/brcm80211/brcmfmac/cyw/module.c | 27 +
.../broadcom/brcm80211/brcmfmac/cyw/vops.h | 11 +
.../wireless/broadcom/brcm80211/brcmfmac/feature.c | 3 +-
.../wireless/broadcom/brcm80211/brcmfmac/feature.h | 4 +-
.../broadcom/brcm80211/brcmfmac/firmware.c | 5 +
.../broadcom/brcm80211/brcmfmac/fwil_types.h | 4 +-
.../wireless/broadcom/brcm80211/brcmfmac/fwvid.c | 199 +
.../wireless/broadcom/brcm80211/brcmfmac/fwvid.h | 47 +
.../net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 10 +-
.../wireless/broadcom/brcm80211/brcmfmac/pcie.c | 211 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/pno.c | 6 +-
.../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 17 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 27 +-
.../broadcom/brcm80211/brcmfmac/wcc/Makefile | 12 +
.../broadcom/brcm80211/brcmfmac/wcc/core.c | 27 +
.../broadcom/brcm80211/brcmfmac/wcc/module.c | 27 +
.../broadcom/brcm80211/brcmfmac/wcc/vops.h | 11 +
.../net/wireless/broadcom/brcm80211/brcmsmac/led.c | 3 -
.../broadcom/brcm80211/brcmsmac/mac80211_if.c | 1 +
drivers/net/wireless/cisco/airo.c | 204 +-
drivers/net/wireless/intel/ipw2x00/ipw2100.c | 11 -
drivers/net/wireless/intel/ipw2x00/ipw2200.c | 16 +-
drivers/net/wireless/intel/iwlegacy/3945-mac.c | 7 +-
drivers/net/wireless/intel/iwlegacy/4965-mac.c | 1 +
drivers/net/wireless/intel/iwlwifi/cfg/22000.c | 36 +-
drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c | 1 +
.../net/wireless/intel/iwlwifi/fw/api/datapath.h | 95 +-
drivers/net/wireless/intel/iwlwifi/fw/api/mac.h | 6 +-
.../net/wireless/intel/iwlwifi/fw/api/phy-ctxt.h | 33 +-
drivers/net/wireless/intel/iwlwifi/fw/api/rs.h | 10 +-
drivers/net/wireless/intel/iwlwifi/fw/dump.c | 7 +-
drivers/net/wireless/intel/iwlwifi/fw/rs.c | 2 +
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 9 +-
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 3 +
.../net/wireless/intel/iwlwifi/iwl-eeprom-parse.h | 3 +-
drivers/net/wireless/intel/iwlwifi/iwl-modparams.h | 1 +
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 237 +-
drivers/net/wireless/intel/iwlwifi/iwl-prph.h | 5 +
drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 5 +
drivers/net/wireless/intel/iwlwifi/mei/iwl-mei.h | 36 +-
drivers/net/wireless/intel/iwlwifi/mei/main.c | 304 +-
drivers/net/wireless/intel/iwlwifi/mei/net.c | 10 +-
drivers/net/wireless/intel/iwlwifi/mei/sap.h | 65 +-
.../net/wireless/intel/iwlwifi/mei/trace-data.h | 2 +-
drivers/net/wireless/intel/iwlwifi/mei/trace.h | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/Makefile | 1 +
drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 9 +-
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 4 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 12 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 38 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 62 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 212 +-
drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c | 226 +
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 21 +-
drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 25 +-
drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c | 54 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 125 +-
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 46 +-
drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 31 +-
.../net/wireless/intel/iwlwifi/mvm/time-event.c | 7 +-
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 27 +-
drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 33 +-
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 85 +-
drivers/net/wireless/intersil/hostap/hostap_ap.c | 2 +-
.../net/wireless/intersil/hostap/hostap_ioctl.c | 244 +-
drivers/net/wireless/intersil/orinoco/wext.c | 131 +-
drivers/net/wireless/intersil/p54/eeprom.h | 4 +-
drivers/net/wireless/intersil/p54/main.c | 1 +
drivers/net/wireless/mac80211_hwsim.c | 1 +
drivers/net/wireless/marvell/libertas_tf/main.c | 1 +
drivers/net/wireless/marvell/mwifiex/debugfs.c | 2 +-
drivers/net/wireless/marvell/mwifiex/main.c | 2 +-
drivers/net/wireless/marvell/mwifiex/main.h | 1 +
drivers/net/wireless/marvell/mwl8k.c | 1 +
drivers/net/wireless/mediatek/mt76/Kconfig | 1 +
drivers/net/wireless/mediatek/mt76/Makefile | 1 +
drivers/net/wireless/mediatek/mt76/debugfs.c | 19 -
drivers/net/wireless/mediatek/mt76/dma.c | 246 +-
drivers/net/wireless/mediatek/mt76/dma.h | 8 +
drivers/net/wireless/mediatek/mt76/mac80211.c | 27 +-
drivers/net/wireless/mediatek/mt76/mt76.h | 50 +-
.../net/wireless/mediatek/mt76/mt7603/debugfs.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt7603/dma.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt7603/mt7603.h | 2 +-
.../net/wireless/mediatek/mt76/mt7615/debugfs.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 34 +-
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 7 +-
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | 6 +-
drivers/net/wireless/mediatek/mt76/mt7615/regs.h | 2 +
drivers/net/wireless/mediatek/mt76/mt76_connac.h | 16 +
.../net/wireless/mediatek/mt76/mt76_connac_mac.c | 17 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.c | 214 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.h | 99 +-
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c | 28 +-
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.h | 2 +-
drivers/net/wireless/mediatek/mt76/mt76x0/init.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c | 13 +-
drivers/net/wireless/mediatek/mt76/mt76x02.h | 16 +-
.../net/wireless/mediatek/mt76/mt76x02_debugfs.c | 19 +-
.../net/wireless/mediatek/mt76/mt76x02_eeprom.h | 2 -
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt76x02_phy.c | 22 +-
drivers/net/wireless/mediatek/mt76/mt76x02_phy.h | 6 +-
drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c | 14 +-
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c | 16 +-
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.h | 2 +-
drivers/net/wireless/mediatek/mt76/mt76x2/init.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt76x2/phy.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt7915/Kconfig | 1 +
drivers/net/wireless/mediatek/mt76/mt7915/Makefile | 3 +-
.../net/wireless/mediatek/mt76/mt7915/coredump.c | 410 +
.../net/wireless/mediatek/mt76/mt7915/coredump.h | 136 +
.../net/wireless/mediatek/mt76/mt7915/debugfs.c | 307 +-
drivers/net/wireless/mediatek/mt76/mt7915/dma.c | 207 +-
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c | 66 +-
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.h | 5 -
drivers/net/wireless/mediatek/mt76/mt7915/init.c | 135 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 635 +-
drivers/net/wireless/mediatek/mt76/mt7915/main.c | 142 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 495 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 60 +-
drivers/net/wireless/mediatek/mt76/mt7915/mmio.c | 414 +-
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h | 65 +-
drivers/net/wireless/mediatek/mt76/mt7915/pci.c | 106 +-
drivers/net/wireless/mediatek/mt76/mt7915/regs.h | 88 +-
drivers/net/wireless/mediatek/mt76/mt7915/soc.c | 21 +-
.../net/wireless/mediatek/mt76/mt7915/testmode.c | 71 +-
.../net/wireless/mediatek/mt76/mt7921/debugfs.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt7921/init.c | 91 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 56 +-
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 233 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 161 +-
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 74 +-
drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 59 +-
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c | 31 +-
drivers/net/wireless/mediatek/mt76/mt7921/usb.c | 22 +-
drivers/net/wireless/mediatek/mt76/mt7996/Kconfig | 12 +
drivers/net/wireless/mediatek/mt76/mt7996/Makefile | 6 +
.../net/wireless/mediatek/mt76/mt7996/debugfs.c | 851 +
drivers/net/wireless/mediatek/mt76/mt7996/dma.c | 360 +
drivers/net/wireless/mediatek/mt76/mt7996/eeprom.c | 229 +
drivers/net/wireless/mediatek/mt76/mt7996/eeprom.h | 75 +
drivers/net/wireless/mediatek/mt76/mt7996/init.c | 823 +
drivers/net/wireless/mediatek/mt76/mt7996/mac.c | 2498 +
drivers/net/wireless/mediatek/mt76/mt7996/mac.h | 398 +
drivers/net/wireless/mediatek/mt76/mt7996/main.c | 1334 +
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c | 3607 ++
drivers/net/wireless/mediatek/mt76/mt7996/mcu.h | 669 +
drivers/net/wireless/mediatek/mt76/mt7996/mmio.c | 386 +
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h | 523 +
drivers/net/wireless/mediatek/mt76/mt7996/pci.c | 222 +
drivers/net/wireless/mediatek/mt76/mt7996/regs.h | 542 +
drivers/net/wireless/mediatek/mt76/sdio.c | 2 +-
drivers/net/wireless/mediatek/mt76/tx.c | 30 +
drivers/net/wireless/mediatek/mt76/usb.c | 13 +-
drivers/net/wireless/mediatek/mt76/util.h | 6 -
drivers/net/wireless/mediatek/mt7601u/main.c | 1 +
drivers/net/wireless/microchip/wilc1000/cfg80211.c | 39 +-
drivers/net/wireless/microchip/wilc1000/hif.c | 27 +-
drivers/net/wireless/microchip/wilc1000/sdio.c | 1 +
drivers/net/wireless/purelifi/plfxlc/mac.c | 1 +
drivers/net/wireless/purelifi/plfxlc/usb.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt2400pci.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt2500pci.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt2500usb.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt2800pci.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt2800soc.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt2800usb.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt61pci.c | 1 +
drivers/net/wireless/ralink/rt2x00/rt73usb.c | 1 +
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c | 1 +
drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c | 1 +
drivers/net/wireless/realtek/rtl8xxxu/Kconfig | 7 +-
drivers/net/wireless/realtek/rtl8xxxu/Makefile | 2 +-
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 97 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188f.c | 1766 +
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c | 73 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c | 161 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c | 114 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c | 93 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 683 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 30 +-
.../realtek/rtlwifi/btcoexist/halbtc8723b1ant.c | 5 +-
drivers/net/wireless/realtek/rtlwifi/core.c | 1 +
.../net/wireless/realtek/rtlwifi/rtl8192ee/trx.c | 8 -
.../net/wireless/realtek/rtlwifi/rtl8192se/phy.c | 3 -
drivers/net/wireless/realtek/rtw88/Kconfig | 47 +
drivers/net/wireless/realtek/rtw88/Makefile | 15 +
drivers/net/wireless/realtek/rtw88/coex.c | 3 +-
drivers/net/wireless/realtek/rtw88/debug.c | 15 +
drivers/net/wireless/realtek/rtw88/fw.c | 31 +-
drivers/net/wireless/realtek/rtw88/fw.h | 11 +
drivers/net/wireless/realtek/rtw88/hci.h | 9 +-
drivers/net/wireless/realtek/rtw88/mac.c | 21 +-
drivers/net/wireless/realtek/rtw88/mac80211.c | 2 +-
drivers/net/wireless/realtek/rtw88/main.c | 12 +-
drivers/net/wireless/realtek/rtw88/main.h | 12 +-
drivers/net/wireless/realtek/rtw88/phy.c | 6 +-
drivers/net/wireless/realtek/rtw88/ps.c | 2 +-
drivers/net/wireless/realtek/rtw88/reg.h | 1 +
drivers/net/wireless/realtek/rtw88/rtw8723d.c | 28 +
drivers/net/wireless/realtek/rtw88/rtw8723d.h | 13 +-
drivers/net/wireless/realtek/rtw88/rtw8723du.c | 36 +
drivers/net/wireless/realtek/rtw88/rtw8821c.c | 18 +
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 21 +
drivers/net/wireless/realtek/rtw88/rtw8821cu.c | 50 +
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 19 +
drivers/net/wireless/realtek/rtw88/rtw8822bu.c | 90 +
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 24 +
drivers/net/wireless/realtek/rtw88/rtw8822cu.c | 44 +
drivers/net/wireless/realtek/rtw88/tx.h | 31 +
drivers/net/wireless/realtek/rtw88/usb.c | 911 +
drivers/net/wireless/realtek/rtw88/usb.h | 107 +
drivers/net/wireless/realtek/rtw88/util.c | 103 +
drivers/net/wireless/realtek/rtw88/util.h | 12 +-
drivers/net/wireless/realtek/rtw89/Kconfig | 14 +
drivers/net/wireless/realtek/rtw89/Makefile | 11 +
drivers/net/wireless/realtek/rtw89/chan.c | 40 +-
drivers/net/wireless/realtek/rtw89/coex.c | 9 +-
drivers/net/wireless/realtek/rtw89/core.c | 102 +-
drivers/net/wireless/realtek/rtw89/core.h | 238 +-
drivers/net/wireless/realtek/rtw89/debug.c | 1052 +-
drivers/net/wireless/realtek/rtw89/debug.h | 2 +
drivers/net/wireless/realtek/rtw89/fw.c | 790 +-
drivers/net/wireless/realtek/rtw89/fw.h | 731 +-
drivers/net/wireless/realtek/rtw89/mac.c | 770 +-
drivers/net/wireless/realtek/rtw89/mac.h | 120 +
drivers/net/wireless/realtek/rtw89/mac80211.c | 70 +-
drivers/net/wireless/realtek/rtw89/pci.c | 41 +-
drivers/net/wireless/realtek/rtw89/pci.h | 12 +
drivers/net/wireless/realtek/rtw89/phy.c | 358 +-
drivers/net/wireless/realtek/rtw89/phy.h | 87 +-
drivers/net/wireless/realtek/rtw89/ps.c | 2 +-
drivers/net/wireless/realtek/rtw89/ps.h | 1 +
drivers/net/wireless/realtek/rtw89/reg.h | 466 +-
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 179 +-
drivers/net/wireless/realtek/rtw89/rtw8852a.h | 1 -
drivers/net/wireless/realtek/rtw89/rtw8852b.c | 2445 +-
drivers/net/wireless/realtek/rtw89/rtw8852b.h | 137 +
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c | 4174 ++
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.h | 25 +
.../wireless/realtek/rtw89/rtw8852b_rfk_table.c | 794 +
.../wireless/realtek/rtw89/rtw8852b_rfk_table.h | 62 +
.../net/wireless/realtek/rtw89/rtw8852b_table.c | 22877 ++++++++++
.../net/wireless/realtek/rtw89/rtw8852b_table.h | 30 +
drivers/net/wireless/realtek/rtw89/rtw8852be.c | 64 +
drivers/net/wireless/realtek/rtw89/rtw8852c.c | 232 +-
drivers/net/wireless/realtek/rtw89/rtw8852c.h | 1 -
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c | 25 +-
.../net/wireless/realtek/rtw89/rtw8852c_table.c | 988 +-
drivers/net/wireless/realtek/rtw89/txrx.h | 4 +-
drivers/net/wireless/realtek/rtw89/util.h | 11 +
drivers/net/wireless/realtek/rtw89/wow.c | 859 +
drivers/net/wireless/realtek/rtw89/wow.h | 21 +
drivers/net/wireless/rsi/rsi_91x_core.c | 4 +-
drivers/net/wireless/rsi/rsi_91x_hal.c | 6 +-
drivers/net/wireless/rsi/rsi_91x_mac80211.c | 1 +
drivers/net/wireless/silabs/wfx/main.c | 1 +
drivers/net/wireless/st/cw1200/main.c | 1 +
drivers/net/wireless/ti/Kconfig | 8 -
drivers/net/wireless/ti/wilink_platform_data.c | 35 -
drivers/net/wireless/ti/wl1251/main.c | 1 +
drivers/net/wireless/ti/wl1251/sdio.c | 8 +-
drivers/net/wireless/ti/wl1251/spi.c | 76 +-
drivers/net/wireless/ti/wl1251/wl1251.h | 1 -
drivers/net/wireless/ti/wlcore/main.c | 1 +
drivers/net/wireless/ti/wlcore/spi.c | 1 -
drivers/net/wireless/zydas/zd1201.c | 174 +-
drivers/net/wireless/zydas/zd1211rw/zd_mac.c | 1 +
drivers/net/wwan/Kconfig | 1 +
drivers/net/wwan/iosm/iosm_ipc_chnl_cfg.c | 2 +-
drivers/net/wwan/iosm/iosm_ipc_mux.c | 1 +
drivers/net/wwan/iosm/iosm_ipc_mux_codec.c | 26 +-
drivers/net/wwan/iosm/iosm_ipc_pcie.c | 2 +-
drivers/net/wwan/iosm/iosm_ipc_protocol.h | 2 +-
drivers/net/wwan/mhi_wwan_mbim.c | 8 +-
drivers/net/wwan/t7xx/Makefile | 3 +
drivers/net/wwan/t7xx/t7xx_hif_cldma.c | 2 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif.h | 14 +-
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c | 218 +-
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.h | 1 +
drivers/net/wwan/t7xx/t7xx_modem_ops.c | 2 +
drivers/net/wwan/t7xx/t7xx_netdev.c | 91 +-
drivers/net/wwan/t7xx/t7xx_netdev.h | 5 +
drivers/net/wwan/t7xx/t7xx_pci.h | 3 +
drivers/net/wwan/t7xx/t7xx_port.h | 9 +-
drivers/net/wwan/t7xx/t7xx_port_proxy.c | 12 +
drivers/net/wwan/t7xx/t7xx_port_proxy.h | 4 +
drivers/net/wwan/t7xx/t7xx_port_trace.c | 116 +
drivers/net/wwan/t7xx/t7xx_port_wwan.c | 16 +-
drivers/net/wwan/wwan_core.c | 6 +-
drivers/net/xen-netback/common.h | 2 +-
drivers/net/xen-netback/interface.c | 6 +-
drivers/net/xen-netback/netback.c | 225 +-
drivers/net/xen-netback/rx.c | 8 +-
drivers/net/xen-netfront.c | 14 +-
drivers/nfc/microread/i2c.c | 5 +-
drivers/nfc/nfcmrvl/i2c.c | 9 +-
drivers/nfc/nxp-nci/core.c | 8 +-
drivers/nfc/nxp-nci/i2c.c | 5 +-
drivers/nfc/pn533/i2c.c | 5 +-
drivers/nfc/pn533/pn533.c | 6 +-
drivers/nfc/pn533/uart.c | 2 +-
drivers/nfc/pn544/i2c.c | 5 +-
drivers/nfc/s3fwrn5/core.c | 1 +
drivers/nfc/s3fwrn5/i2c.c | 24 +-
drivers/nfc/st-nci/i2c.c | 5 +-
drivers/nfc/st-nci/se.c | 49 +-
drivers/nfc/st21nfca/i2c.c | 5 +-
drivers/nfc/virtual_ncidev.c | 147 +-
drivers/nvdimm/Kconfig | 12 +
drivers/nvdimm/dimm_devs.c | 9 +-
drivers/nvdimm/region.c | 11 +
drivers/nvdimm/region_devs.c | 50 +-
drivers/nvdimm/security.c | 43 +-
drivers/nvme/host/apple.c | 30 +-
drivers/nvme/host/auth.c | 258 +-
drivers/nvme/host/core.c | 400 +-
drivers/nvme/host/fc.c | 59 +-
drivers/nvme/host/ioctl.c | 138 +-
drivers/nvme/host/multipath.c | 29 +
drivers/nvme/host/nvme.h | 71 +-
drivers/nvme/host/pci.c | 654 +-
drivers/nvme/host/rdma.c | 42 +-
drivers/nvme/host/tcp.c | 50 +-
drivers/nvme/target/admin-cmd.c | 48 +-
drivers/nvme/target/configfs.c | 138 +-
drivers/nvme/target/core.c | 44 +-
drivers/nvme/target/io-cmd-file.c | 20 +-
drivers/nvme/target/loop.c | 16 +-
drivers/nvme/target/nvmet.h | 6 +-
drivers/nvme/target/passthru.c | 11 +-
drivers/nvme/target/tcp.c | 2 +-
drivers/nvmem/Kconfig | 2 +-
drivers/nvmem/brcm_nvram.c | 3 +
drivers/nvmem/lan9662-otpc.c | 2 +-
drivers/nvmem/rmem.c | 4 +-
drivers/nvmem/stm32-romem.c | 27 +-
drivers/nvmem/u-boot-env.c | 14 +
drivers/of/device.c | 6 +-
drivers/of/fdt.c | 40 +-
drivers/of/irq.c | 1 +
drivers/of/kexec.c | 10 +-
drivers/of/overlay.c | 4 +-
drivers/of/platform.c | 5 +-
drivers/of/property.c | 4 +-
drivers/of/unittest-data/Makefile | 66 +-
.../of/unittest-data/{overlay.dts => overlay.dtso} | 0
.../{overlay_0.dts => overlay_0.dtso} | 0
.../{overlay_1.dts => overlay_1.dtso} | 0
.../{overlay_10.dts => overlay_10.dtso} | 0
.../{overlay_11.dts => overlay_11.dtso} | 0
.../{overlay_12.dts => overlay_12.dtso} | 0
.../{overlay_13.dts => overlay_13.dtso} | 0
.../{overlay_15.dts => overlay_15.dtso} | 0
.../{overlay_16.dts => overlay_16.dtso} | 0
.../{overlay_17.dts => overlay_17.dtso} | 0
.../{overlay_18.dts => overlay_18.dtso} | 0
.../{overlay_19.dts => overlay_19.dtso} | 0
.../{overlay_2.dts => overlay_2.dtso} | 0
.../{overlay_20.dts => overlay_20.dtso} | 0
.../{overlay_3.dts => overlay_3.dtso} | 0
.../{overlay_4.dts => overlay_4.dtso} | 0
.../{overlay_5.dts => overlay_5.dtso} | 0
.../{overlay_6.dts => overlay_6.dtso} | 0
.../{overlay_7.dts => overlay_7.dtso} | 0
.../{overlay_8.dts => overlay_8.dtso} | 0
.../{overlay_9.dts => overlay_9.dtso} | 0
..._dup_node.dts => overlay_bad_add_dup_node.dtso} | 0
..._dup_prop.dts => overlay_bad_add_dup_prop.dtso} | 0
...ay_bad_phandle.dts => overlay_bad_phandle.dtso} | 0
...rlay_bad_symbol.dts => overlay_bad_symbol.dtso} | 0
.../{overlay_base.dts => overlay_base.dtso} | 0
.../{overlay_gpio_01.dts => overlay_gpio_01.dtso} | 0
...{overlay_gpio_02a.dts => overlay_gpio_02a.dtso} | 0
...{overlay_gpio_02b.dts => overlay_gpio_02b.dtso} | 0
.../{overlay_gpio_03.dts => overlay_gpio_03.dtso} | 0
...{overlay_gpio_04a.dts => overlay_gpio_04a.dtso} | 0
...{overlay_gpio_04b.dts => overlay_gpio_04b.dtso} | 0
.../{testcases.dts => testcases.dtso} | 0
drivers/of/unittest.c | 58 +-
drivers/opp/of.c | 228 +-
drivers/parisc/led.c | 3 +
drivers/pci/Kconfig | 7 +-
drivers/pci/access.c | 8 +-
drivers/pci/ats.c | 3 +
drivers/pci/bus.c | 4 +
drivers/pci/controller/Kconfig | 30 +-
drivers/pci/controller/cadence/pci-j721e.c | 1 -
drivers/pci/controller/dwc/Kconfig | 57 +-
drivers/pci/controller/dwc/Makefile | 1 +
drivers/pci/controller/dwc/pci-imx6.c | 13 +-
drivers/pci/controller/dwc/pci-layerscape.c | 1 -
drivers/pci/controller/dwc/pcie-armada8k.c | 1 -
drivers/pci/controller/dwc/pcie-bt1.c | 643 +
drivers/pci/controller/dwc/pcie-designware-ep.c | 48 +-
drivers/pci/controller/dwc/pcie-designware-host.c | 47 +-
drivers/pci/controller/dwc/pcie-designware.c | 266 +-
drivers/pci/controller/dwc/pcie-designware.h | 63 +-
drivers/pci/controller/dwc/pcie-histb.c | 39 +-
drivers/pci/controller/dwc/pcie-qcom-ep.c | 5 +
drivers/pci/controller/dwc/pcie-qcom.c | 83 +-
drivers/pci/controller/dwc/pcie-tegra194.c | 1 -
drivers/pci/controller/mobiveil/Kconfig | 6 +-
drivers/pci/controller/pci-aardvark.c | 22 +-
drivers/pci/controller/pci-ftpci100.c | 2 +-
drivers/pci/controller/pci-hyperv.c | 111 +-
drivers/pci/controller/pci-mvebu.c | 52 +-
drivers/pci/controller/pci-tegra.c | 9 +-
drivers/pci/controller/pci-v3-semi.c | 3 +-
drivers/pci/controller/pci-xgene-msi.c | 2 +-
drivers/pci/controller/pci-xgene.c | 1 -
drivers/pci/controller/pcie-altera-msi.c | 2 +-
drivers/pci/controller/pcie-brcmstb.c | 85 +-
drivers/pci/controller/pcie-iproc-platform.c | 1 -
drivers/pci/controller/pcie-iproc.c | 1 -
drivers/pci/controller/pcie-microchip-host.c | 2 +-
drivers/pci/controller/pcie-mt7621.c | 3 +-
drivers/pci/controller/pcie-rockchip-host.c | 1 -
drivers/pci/controller/pcie-xilinx-cpm.c | 1 -
drivers/pci/controller/pcie-xilinx-nwl.c | 8 +-
drivers/pci/controller/vmd.c | 27 +-
drivers/pci/doe.c | 20 +-
drivers/pci/endpoint/functions/Kconfig | 18 +-
drivers/pci/endpoint/functions/pci-epf-test.c | 2 +-
drivers/pci/endpoint/functions/pci-epf-vntb.c | 150 +-
drivers/pci/endpoint/pci-epc-core.c | 7 +-
drivers/pci/hotplug/Kconfig | 3 +
drivers/pci/hotplug/TODO | 3 -
drivers/pci/hotplug/acpiphp_glue.c | 8 +
drivers/pci/hotplug/pciehp_hpc.c | 4 +-
drivers/pci/hotplug/shpchp.h | 1 -
drivers/pci/hotplug/shpchp_hpc.c | 18 -
drivers/pci/irq.c | 2 +
drivers/pci/msi/Makefile | 3 +-
drivers/pci/msi/api.c | 458 +
drivers/pci/msi/irqdomain.c | 369 +-
drivers/pci/msi/msi.c | 1100 +-
drivers/pci/msi/msi.h | 114 +-
drivers/pci/p2pdma.c | 126 +-
drivers/pci/pci-acpi.c | 2 +-
drivers/pci/pci-driver.c | 8 +-
drivers/pci/pci-sysfs.c | 20 +-
drivers/pci/pci.c | 105 +-
drivers/pci/pci.h | 1 +
drivers/pci/pcie/Kconfig | 8 +-
drivers/pci/pcie/Makefile | 2 +-
drivers/pci/pcie/aer.c | 8 +-
drivers/pci/pcie/{portdrv_core.c => portdrv.c} | 269 +-
drivers/pci/pcie/portdrv.h | 19 -
drivers/pci/pcie/portdrv_pci.c | 252 -
drivers/pci/probe.c | 18 +-
drivers/pci/remove.c | 6 +
drivers/pcmcia/bcm63xx_pcmcia.c | 2 +-
drivers/pcmcia/cs.c | 4 +-
drivers/pcmcia/electra_cf.c | 2 +-
drivers/pcmcia/omap_cf.c | 2 +-
drivers/pcmcia/pd6729.c | 4 +-
drivers/pcmcia/yenta_socket.c | 4 +-
drivers/perf/Kconfig | 6 +-
drivers/perf/Makefile | 2 +
drivers/perf/amlogic/Kconfig | 10 +
drivers/perf/amlogic/Makefile | 5 +
drivers/perf/amlogic/meson_ddr_pmu_core.c | 561 +
drivers/perf/amlogic/meson_g12_ddr_pmu.c | 394 +
drivers/perf/arm_cspmu/Kconfig | 13 +
drivers/perf/arm_cspmu/Makefile | 6 +
drivers/perf/arm_cspmu/arm_cspmu.c | 1303 +
drivers/perf/arm_cspmu/arm_cspmu.h | 151 +
drivers/perf/arm_cspmu/nvidia_cspmu.c | 400 +
drivers/perf/arm_cspmu/nvidia_cspmu.h | 17 +
drivers/perf/arm_dmc620_pmu.c | 8 +-
drivers/perf/arm_dsu_pmu.c | 6 +-
drivers/perf/arm_pmu.c | 36 +-
drivers/perf/arm_pmu_acpi.c | 114 +-
drivers/perf/arm_smmuv3_pmu.c | 8 +-
drivers/perf/hisilicon/hisi_pcie_pmu.c | 22 +-
drivers/perf/marvell_cn10k_tad_pmu.c | 6 +-
drivers/perf/riscv_pmu_sbi.c | 34 +-
drivers/phy/allwinner/phy-sun4i-usb.c | 71 +
drivers/phy/allwinner/phy-sun6i-mipi-dphy.c | 236 +-
drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c | 95 +-
drivers/phy/broadcom/phy-brcm-usb-init.c | 90 +-
drivers/phy/broadcom/phy-brcm-usb-init.h | 11 +-
drivers/phy/broadcom/phy-brcm-usb.c | 32 +-
drivers/phy/freescale/phy-fsl-imx8m-pcie.c | 142 +-
drivers/phy/marvell/phy-mmp3-hsic.c | 4 +-
drivers/phy/marvell/phy-mvebu-a3700-comphy.c | 3 +
drivers/phy/phy-core-mipi-dphy.c | 31 +-
drivers/phy/qualcomm/Kconfig | 1 +
drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 1709 +-
drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c | 103 +-
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 1443 +-
drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v5.h | 2 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v5_20.h | 2 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v5_20.h | 14 +
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 482 +-
drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 737 +-
drivers/phy/qualcomm/phy-qcom-qmp.h | 1 +
drivers/phy/renesas/Kconfig | 8 +
drivers/phy/renesas/Makefile | 1 +
drivers/phy/renesas/r8a779f0-ether-serdes.c | 417 +
drivers/phy/tegra/phy-tegra194-p2u.c | 14 +
drivers/phy/tegra/xusb-tegra124.c | 1 -
drivers/phy/tegra/xusb-tegra186.c | 1 -
drivers/phy/tegra/xusb-tegra210.c | 1 -
drivers/phy/tegra/xusb.c | 10 +-
drivers/phy/tegra/xusb.h | 2 -
drivers/phy/ti/phy-gmii-sel.c | 42 +-
drivers/phy/ti/phy-j721e-wiz.c | 38 +
drivers/pinctrl/Kconfig | 11 +
drivers/pinctrl/Makefile | 1 +
drivers/pinctrl/actions/pinctrl-owl.c | 49 +-
drivers/pinctrl/aspeed/pinctrl-aspeed.c | 1 +
drivers/pinctrl/bcm/pinctrl-bcm281xx.c | 13 +-
drivers/pinctrl/bcm/pinctrl-cygnus-mux.c | 9 +-
drivers/pinctrl/bcm/pinctrl-iproc-gpio.c | 12 +-
drivers/pinctrl/bcm/pinctrl-ns2-mux.c | 8 +-
drivers/pinctrl/bcm/pinctrl-nsp-mux.c | 8 +-
drivers/pinctrl/cirrus/pinctrl-lochnagar.c | 6 +-
drivers/pinctrl/cirrus/pinctrl-madera-core.c | 5 +-
drivers/pinctrl/core.c | 25 +-
drivers/pinctrl/core.h | 22 +-
drivers/pinctrl/devicetree.h | 6 +
drivers/pinctrl/freescale/pinctrl-imx.c | 8 +-
drivers/pinctrl/freescale/pinctrl-imx1-core.c | 4 +-
drivers/pinctrl/freescale/pinctrl-imxrt1050.c | 546 +-
drivers/pinctrl/freescale/pinctrl-mxs.c | 7 +-
drivers/pinctrl/freescale/pinctrl-scu.c | 30 +
drivers/pinctrl/intel/Kconfig | 11 +
drivers/pinctrl/intel/Makefile | 1 +
drivers/pinctrl/intel/pinctrl-alderlake.c | 40 +-
drivers/pinctrl/intel/pinctrl-cannonlake.c | 8 +-
drivers/pinctrl/intel/pinctrl-cherryview.c | 6 +-
drivers/pinctrl/intel/pinctrl-icelake.c | 8 +-
drivers/pinctrl/intel/pinctrl-intel.c | 88 +-
drivers/pinctrl/intel/pinctrl-lynxpoint.c | 6 +-
drivers/pinctrl/intel/pinctrl-merrifield.c | 19 +-
drivers/pinctrl/intel/pinctrl-moorefield.c | 916 +
drivers/pinctrl/intel/pinctrl-sunrisepoint.c | 32 +-
drivers/pinctrl/intel/pinctrl-tigerlake.c | 28 +-
drivers/pinctrl/mediatek/mtk-eint.c | 9 +-
drivers/pinctrl/mediatek/pinctrl-moore.c | 52 +-
drivers/pinctrl/mediatek/pinctrl-mt7986.c | 112 +-
drivers/pinctrl/mediatek/pinctrl-mt8365.c | 18 +
drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 21 +-
drivers/pinctrl/mediatek/pinctrl-mtk-common.h | 8 +-
drivers/pinctrl/mediatek/pinctrl-paris.c | 5 +
drivers/pinctrl/mvebu/pinctrl-mvebu.c | 14 +-
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c | 11 +-
drivers/pinctrl/nuvoton/pinctrl-wpcm450.c | 48 +-
drivers/pinctrl/pinconf-generic.c | 4 +-
drivers/pinctrl/pinconf.h | 10 +
drivers/pinctrl/pinctrl-amd.c | 10 +-
drivers/pinctrl/pinctrl-apple-gpio.c | 7 +-
drivers/pinctrl/pinctrl-at91-pio4.c | 36 +-
drivers/pinctrl/pinctrl-at91.c | 16 +-
drivers/pinctrl/pinctrl-axp209.c | 8 +-
drivers/pinctrl/pinctrl-bm1880.c | 6 +-
drivers/pinctrl/pinctrl-cy8c95x0.c | 134 +-
drivers/pinctrl/pinctrl-falcon.c | 9 +-
drivers/pinctrl/pinctrl-gemini.c | 12 +-
drivers/pinctrl/pinctrl-ingenic.c | 10 +-
drivers/pinctrl/pinctrl-k210.c | 16 +-
drivers/pinctrl/pinctrl-lantiq.c | 5 +-
drivers/pinctrl/pinctrl-lantiq.h | 7 +-
drivers/pinctrl/pinctrl-loongson2.c | 311 +
drivers/pinctrl/pinctrl-lpc18xx.c | 6 +-
drivers/pinctrl/pinctrl-microchip-sgpio.c | 4 +-
drivers/pinctrl/pinctrl-ocelot.c | 30 +-
drivers/pinctrl/pinctrl-single.c | 8 +-
drivers/pinctrl/pinctrl-st.c | 25 +-
drivers/pinctrl/pinctrl-stmfx.c | 2 +
drivers/pinctrl/pinctrl-thunderbay.c | 8 +-
drivers/pinctrl/pinctrl-utils.h | 5 +
drivers/pinctrl/pinctrl-zynqmp.c | 5 +-
drivers/pinctrl/pinmux.c | 17 +-
drivers/pinctrl/pinmux.h | 11 +
drivers/pinctrl/qcom/Kconfig | 10 +
drivers/pinctrl/qcom/Makefile | 1 +
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 5 +
drivers/pinctrl/qcom/pinctrl-lpass-lpi.h | 9 +-
drivers/pinctrl/qcom/pinctrl-msm.c | 29 +-
drivers/pinctrl/qcom/pinctrl-msm.h | 5 +
drivers/pinctrl/qcom/pinctrl-sdm670.c | 1345 +
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 8 +-
drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 8 +-
drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c | 19 +-
drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 19 +-
drivers/pinctrl/renesas/gpio.c | 10 +-
drivers/pinctrl/renesas/pinctrl-rzg2l.c | 10 +-
drivers/pinctrl/renesas/pinctrl-rzn1.c | 8 +-
drivers/pinctrl/renesas/pinctrl-rzv2m.c | 7 +-
drivers/pinctrl/renesas/pinctrl.c | 8 +-
drivers/pinctrl/samsung/pinctrl-samsung.c | 11 +-
drivers/pinctrl/spear/pinctrl-spear.c | 6 +-
drivers/pinctrl/sprd/pinctrl-sprd.c | 7 +-
drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c | 7 +-
drivers/pinctrl/stm32/pinctrl-stm32.c | 21 +-
drivers/pinctrl/sunxi/pinctrl-sun20i-d1.c | 4 +
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 18 +-
drivers/pinctrl/tegra/pinctrl-tegra-xusb.c | 7 +-
drivers/pinctrl/tegra/pinctrl-tegra.c | 39 +-
drivers/pinctrl/tegra/pinctrl-tegra.h | 2 +
drivers/pinctrl/tegra/pinctrl-tegra194.c | 286 +-
drivers/pinctrl/ti/pinctrl-ti-iodelay.c | 8 +-
drivers/pinctrl/uniphier/pinctrl-uniphier-core.c | 8 +-
drivers/platform/Kconfig | 2 -
drivers/platform/chrome/Kconfig | 10 +
drivers/platform/chrome/Makefile | 1 +
drivers/platform/chrome/chromeos_privacy_screen.c | 3 +-
drivers/platform/chrome/cros_ec_debugfs.c | 1 +
drivers/platform/chrome/cros_ec_i2c.c | 5 +-
drivers/platform/chrome/cros_ec_lightbar.c | 4 +-
drivers/platform/chrome/cros_ec_lpc.c | 15 +-
drivers/platform/chrome/cros_ec_lpc_mec.c | 6 -
drivers/platform/chrome/cros_ec_lpc_mec.h | 7 -
drivers/platform/chrome/cros_ec_spi.c | 1 +
drivers/platform/chrome/cros_ec_typec.c | 5 +-
drivers/platform/chrome/cros_hps_i2c.c | 160 +
drivers/platform/chrome/cros_usbpd_notify.c | 6 +-
drivers/platform/chrome/wilco_ec/core.c | 5 -
drivers/platform/chrome/wilco_ec/event.c | 4 +-
drivers/platform/mellanox/mlxbf-pmc.c | 2 +-
drivers/platform/mellanox/mlxbf-tmfifo-regs.h | 10 +
drivers/platform/mellanox/mlxbf-tmfifo.c | 86 +-
drivers/platform/mips/Kconfig | 1 +
drivers/platform/surface/surfacepro3_button.c | 3 +-
drivers/platform/x86/Kconfig | 43 +-
drivers/platform/x86/Makefile | 4 +-
drivers/platform/x86/amd/pmc.c | 6 +
drivers/platform/x86/amd/pmf/cnqf.c | 92 +-
drivers/platform/x86/asus-laptop.c | 3 +-
drivers/platform/x86/asus-wireless.c | 3 +-
drivers/platform/x86/asus-wmi.c | 4 +-
drivers/platform/x86/classmate-laptop.c | 20 +-
drivers/platform/x86/dell/Kconfig | 13 +
drivers/platform/x86/dell/Makefile | 1 +
drivers/platform/x86/dell/alienware-wmi.c | 41 +-
drivers/platform/x86/dell/dell-rbtn.c | 6 +-
drivers/platform/x86/dell/dell-wmi-ddv.c | 375 +
drivers/platform/x86/eeepc-laptop.c | 3 +-
drivers/platform/x86/fujitsu-laptop.c | 4 +-
drivers/platform/x86/fujitsu-tablet.c | 3 +-
drivers/platform/x86/hp/Kconfig | 63 +
drivers/platform/x86/hp/Makefile | 10 +
drivers/platform/x86/{ => hp}/hp-wmi.c | 0
drivers/platform/x86/{ => hp}/hp_accel.c | 2 +-
drivers/platform/x86/{ => hp}/tc1100-wmi.c | 0
drivers/platform/x86/huawei-wmi.c | 51 +-
drivers/platform/x86/ideapad-laptop.c | 388 +-
drivers/platform/x86/intel/Kconfig | 8 +-
drivers/platform/x86/intel/hid.c | 36 +-
drivers/platform/x86/intel/ifs/Kconfig | 4 -
drivers/platform/x86/intel/ifs/core.c | 23 +-
drivers/platform/x86/intel/ifs/ifs.h | 30 +-
drivers/platform/x86/intel/ifs/load.c | 218 +-
drivers/platform/x86/intel/ifs/runtest.c | 10 +-
drivers/platform/x86/intel/ifs/sysfs.c | 41 +-
.../platform/x86/intel/int3472/clk_and_regulator.c | 3 +-
drivers/platform/x86/intel/pmc/Makefile | 3 +-
drivers/platform/x86/intel/pmc/adl.c | 325 +
drivers/platform/x86/intel/pmc/cnp.c | 210 +
drivers/platform/x86/intel/pmc/core.c | 994 +-
drivers/platform/x86/intel/pmc/core.h | 91 +-
drivers/platform/x86/intel/pmc/icl.c | 56 +
drivers/platform/x86/intel/pmc/mtl.c | 52 +
drivers/platform/x86/intel/pmc/spt.c | 140 +
drivers/platform/x86/intel/pmc/tgl.c | 269 +
drivers/platform/x86/intel/rst.c | 4 +-
drivers/platform/x86/intel/sdsi.c | 136 +-
.../x86/intel/speed_select_if/isst_if_common.c | 2 +-
.../x86/intel/uncore-frequency/uncore-frequency.c | 1 +
drivers/platform/x86/intel_scu_ipc.c | 2 +-
drivers/platform/x86/lg-laptop.c | 8 +-
drivers/platform/x86/mxm-wmi.c | 8 +-
drivers/platform/x86/panasonic-laptop.c | 8 +-
drivers/platform/x86/sony-laptop.c | 19 +-
drivers/platform/x86/system76_acpi.c | 8 +-
drivers/platform/x86/thinkpad_acpi.c | 63 +-
drivers/platform/x86/topstar-laptop.c | 3 +-
drivers/platform/x86/toshiba_acpi.c | 8 +-
drivers/platform/x86/toshiba_bluetooth.c | 6 +-
drivers/platform/x86/toshiba_haps.c | 4 +-
drivers/platform/x86/uv_sysfs.c | 16 +-
drivers/platform/x86/wireless-hotkey.c | 63 +-
drivers/platform/x86/wmi.c | 1 +
drivers/platform/x86/x86-android-tablets.c | 285 +-
drivers/platform/x86/xo15-ebook.c | 3 +-
drivers/pnp/core.c | 4 +-
drivers/pnp/driver.c | 3 +-
drivers/power/supply/88pm860x_charger.c | 38 +-
drivers/power/supply/ab8500_btemp.c | 9 +-
drivers/power/supply/ab8500_charger.c | 11 +-
drivers/power/supply/adp5061.c | 5 +-
drivers/power/supply/bd99954-charger.c | 84 +-
drivers/power/supply/bq2415x_charger.c | 6 +-
drivers/power/supply/bq24190_charger.c | 6 +-
drivers/power/supply/bq24257_charger.c | 6 +-
drivers/power/supply/bq24735-charger.c | 5 +-
drivers/power/supply/bq2515x_charger.c | 6 +-
drivers/power/supply/bq256xx_charger.c | 6 +-
drivers/power/supply/bq25890_charger.c | 277 +-
drivers/power/supply/bq25980_charger.c | 6 +-
drivers/power/supply/bq27xxx_battery_i2c.c | 6 +-
drivers/power/supply/cw2015_battery.c | 3 +
drivers/power/supply/ds2782_battery.c | 6 +-
drivers/power/supply/ip5xxx_power.c | 2 +-
drivers/power/supply/lp8727_charger.c | 4 +-
drivers/power/supply/lp8788-charger.c | 2 +-
drivers/power/supply/ltc2941-battery-gauge.c | 5 +-
drivers/power/supply/ltc4162-l-charger.c | 5 +-
drivers/power/supply/max14656_charger_detector.c | 5 +-
drivers/power/supply/max17040_battery.c | 6 +-
drivers/power/supply/max17042_battery.c | 6 +-
drivers/power/supply/mt6360_charger.c | 15 +-
drivers/power/supply/power_supply.h | 2 +-
drivers/power/supply/power_supply_core.c | 8 +-
drivers/power/supply/power_supply_sysfs.c | 8 +-
drivers/power/supply/rk817_charger.c | 18 +-
drivers/power/supply/rt5033_battery.c | 5 +-
drivers/power/supply/rt9455_charger.c | 5 +-
drivers/power/supply/sbs-charger.c | 5 +-
drivers/power/supply/sbs-manager.c | 6 +-
drivers/power/supply/smb347-charger.c | 6 +-
drivers/power/supply/ucs1002_power.c | 5 +-
drivers/power/supply/z2_battery.c | 11 +-
drivers/powercap/Kconfig | 13 +
drivers/powercap/Makefile | 1 +
drivers/powercap/arm_scmi_powercap.c | 509 +
drivers/powercap/idle_inject.c | 3 +
drivers/powercap/powercap_sys.c | 3 +-
drivers/ps3/ps3-lpm.c | 2 +-
drivers/ptp/ptp_clock.c | 5 +-
drivers/ptp/ptp_dte.c | 5 +-
drivers/ptp/ptp_idt82p33.c | 709 +-
drivers/ptp/ptp_idt82p33.h | 21 +-
drivers/ptp/ptp_kvm_common.c | 4 +-
drivers/ptp/ptp_ocp.c | 567 +-
drivers/ptp/ptp_pch.c | 19 +-
drivers/ptp/ptp_vmw.c | 7 +-
drivers/pwm/Kconfig | 6 +-
drivers/pwm/core.c | 68 +-
drivers/pwm/pwm-atmel.c | 6 +-
drivers/pwm/pwm-bcm-iproc.c | 8 +-
drivers/pwm/pwm-crc.c | 10 +-
drivers/pwm/pwm-cros-ec.c | 8 +-
drivers/pwm/pwm-dwc.c | 6 +-
drivers/pwm/pwm-fsl-ftm.c | 18 +-
drivers/pwm/pwm-hibvt.c | 6 +-
drivers/pwm/pwm-img.c | 15 +-
drivers/pwm/pwm-imx-tpm.c | 8 +-
drivers/pwm/pwm-imx27.c | 8 +-
drivers/pwm/pwm-intel-lgm.c | 6 +-
drivers/pwm/pwm-iqs620a.c | 10 +-
drivers/pwm/pwm-jz4740.c | 20 +-
drivers/pwm/pwm-keembay.c | 6 +-
drivers/pwm/pwm-lpc18xx-sct.c | 2 +-
drivers/pwm/pwm-lpss-pci.c | 2 +-
drivers/pwm/pwm-lpss-platform.c | 2 +-
drivers/pwm/pwm-lpss.c | 14 +-
drivers/pwm/pwm-lpss.h | 26 +-
drivers/pwm/pwm-mediatek.c | 9 +-
drivers/pwm/pwm-meson.c | 8 +-
drivers/pwm/pwm-mtk-disp.c | 17 +-
drivers/pwm/pwm-pca9685.c | 13 +-
drivers/pwm/pwm-pxa.c | 58 +-
drivers/pwm/pwm-raspberrypi-poe.c | 8 +-
drivers/pwm/pwm-rockchip.c | 12 +-
drivers/pwm/pwm-sifive.c | 11 +-
drivers/pwm/pwm-sl28cpld.c | 8 +-
drivers/pwm/pwm-sprd.c | 8 +-
drivers/pwm/pwm-stm32-lp.c | 13 +-
drivers/pwm/pwm-stm32.c | 34 +-
drivers/pwm/pwm-sun4i.c | 14 +-
drivers/pwm/pwm-sunplus.c | 6 +-
drivers/pwm/pwm-tegra.c | 15 +-
drivers/pwm/pwm-visconti.c | 6 +-
drivers/pwm/pwm-xilinx.c | 8 +-
drivers/rapidio/devices/rio_mport_cdev.c | 15 +-
drivers/rapidio/devices/tsi721.c | 3 +-
drivers/rapidio/rio-scan.c | 8 +-
drivers/rapidio/rio.c | 9 +-
drivers/ras/debugfs.c | 2 +-
drivers/regulator/Kconfig | 30 +-
drivers/regulator/Makefile | 2 +
drivers/regulator/act8865-regulator.c | 6 +-
drivers/regulator/ad5398.c | 6 +-
drivers/regulator/arizona-micsupp.c | 20 +-
drivers/regulator/bd71815-regulator.c | 10 +-
drivers/regulator/bd71828-regulator.c | 21 +-
drivers/regulator/bd718x7-regulator.c | 53 +-
drivers/regulator/bd9576-regulator.c | 54 +-
drivers/regulator/core.c | 75 +-
drivers/regulator/da9121-regulator.c | 5 +-
drivers/regulator/devres.c | 68 +-
drivers/regulator/fan53555.c | 6 +-
drivers/regulator/fan53880.c | 16 +-
drivers/regulator/internal.h | 2 +
drivers/regulator/isl6271a-regulator.c | 6 +-
drivers/regulator/lp3972.c | 5 +-
drivers/regulator/lp872x.c | 5 +-
drivers/regulator/lp8755.c | 5 +-
drivers/regulator/ltc3589.c | 6 +-
drivers/regulator/max1586.c | 5 +-
drivers/regulator/max8649.c | 5 +-
drivers/regulator/max8660.c | 6 +-
drivers/regulator/max8952.c | 5 +-
drivers/regulator/max8973-regulator.c | 6 +-
drivers/regulator/mp886x.c | 2 +-
drivers/regulator/mt6357-regulator.c | 453 +
drivers/regulator/of_regulator.c | 94 +-
drivers/regulator/pca9450-regulator.c | 5 +-
drivers/regulator/pfuze100-regulator.c | 6 +-
drivers/regulator/pv88080-regulator.c | 6 +-
drivers/regulator/qcom-labibb-regulator.c | 1 +
drivers/regulator/qcom-rpmh-regulator.c | 83 +-
drivers/regulator/qcom_smd-regulator.c | 33 +
drivers/regulator/rk808-regulator.c | 26 +-
drivers/regulator/rpi-panel-attiny-regulator.c | 5 +-
drivers/regulator/rt5759-regulator.c | 1 +
drivers/regulator/rt6190-regulator.c | 495 +
drivers/regulator/slg51000-regulator.c | 2 +
drivers/regulator/stm32-vrefbuf.c | 2 +-
drivers/regulator/sy8106a-regulator.c | 4 +-
drivers/regulator/sy8824x.c | 2 +-
drivers/regulator/sy8827n.c | 4 +-
drivers/regulator/tps51632-regulator.c | 5 +-
drivers/regulator/tps62360-regulator.c | 6 +-
drivers/regulator/tps6286x-regulator.c | 5 +-
drivers/regulator/tps65023-regulator.c | 6 +-
drivers/regulator/twl6030-regulator.c | 17 +-
drivers/regulator/userspace-consumer.c | 60 +-
drivers/remoteproc/Kconfig | 13 +
drivers/remoteproc/Makefile | 1 +
drivers/remoteproc/imx_dsp_rproc.c | 12 +-
drivers/remoteproc/imx_rproc.c | 298 +-
drivers/remoteproc/qcom_q6v5_pas.c | 4 +
drivers/remoteproc/qcom_q6v5_wcss.c | 6 +-
drivers/remoteproc/qcom_sysmon.c | 13 +-
drivers/remoteproc/remoteproc_core.c | 19 +-
drivers/remoteproc/xlnx_r5_remoteproc.c | 1067 +
drivers/rtc/Kconfig | 18 +-
drivers/rtc/Makefile | 2 -
drivers/rtc/class.c | 4 +-
drivers/rtc/interface.c | 2 +-
drivers/rtc/rtc-abx80x.c | 37 +-
drivers/rtc/rtc-at91rm9200.c | 2 +-
drivers/rtc/rtc-bq32k.c | 1 +
drivers/rtc/rtc-cmos.c | 378 +-
drivers/rtc/rtc-cros-ec.c | 35 +-
drivers/rtc/rtc-davinci.c | 512 -
drivers/rtc/rtc-dm355evm.c | 151 -
drivers/rtc/rtc-ds1302.c | 6 -
drivers/rtc/rtc-ds1307.c | 4 +-
drivers/rtc/rtc-ds1347.c | 2 +-
drivers/rtc/rtc-ds1742.c | 3 +-
drivers/rtc/rtc-efi.c | 2 +
drivers/rtc/rtc-fsl-ftm-alarm.c | 7 +-
drivers/rtc/rtc-isl12022.c | 94 +
drivers/rtc/rtc-isl1208.c | 6 +-
drivers/rtc/rtc-m41t80.c | 13 +-
drivers/rtc/rtc-msc313.c | 12 +-
drivers/rtc/rtc-mxc_v2.c | 4 +-
drivers/rtc/rtc-nct3018y.c | 5 +-
drivers/rtc/rtc-pcf2127.c | 22 +-
drivers/rtc/rtc-pcf85063.c | 10 +-
drivers/rtc/rtc-pcf8523.c | 20 +-
drivers/rtc/rtc-pcf8563.c | 2 +
drivers/rtc/rtc-pic32.c | 8 +-
drivers/rtc/rtc-pm8xxx.c | 1 -
drivers/rtc/rtc-rk808.c | 47 +-
drivers/rtc/rtc-rs5c313.c | 6 +-
drivers/rtc/rtc-rs5c372.c | 13 +-
drivers/rtc/rtc-rv3028.c | 13 +-
drivers/rtc/rtc-rv3029c2.c | 1 +
drivers/rtc/rtc-rv8803.c | 30 +-
drivers/rtc/rtc-rx6110.c | 2 +-
drivers/rtc/rtc-rx8025.c | 7 +-
drivers/rtc/rtc-rzn1.c | 4 +-
drivers/rtc/rtc-s35390a.c | 6 +-
drivers/rtc/rtc-s3c.c | 11 +-
drivers/rtc/rtc-snvs.c | 16 +-
drivers/rtc/rtc-st-lpc.c | 1 +
drivers/rtc/sysfs.c | 1 +
drivers/s390/block/dasd_devmap.c | 2 +-
drivers/s390/block/dasd_eckd.c | 43 +-
drivers/s390/block/dasd_ioctl.c | 2 +-
drivers/s390/char/con3215.c | 275 +-
drivers/s390/char/hmcdrv_dev.c | 2 +-
drivers/s390/char/raw3270.c | 12 +-
drivers/s390/char/sclp.c | 25 +-
drivers/s390/char/sclp.h | 2 +-
drivers/s390/char/sclp_early.c | 4 +-
drivers/s390/char/sclp_early_core.c | 26 +-
drivers/s390/char/zcore.c | 6 +-
drivers/s390/cio/chsc_sch.c | 3 +-
drivers/s390/cio/cio.c | 14 +-
drivers/s390/cio/device.c | 2 +-
drivers/s390/cio/device_fsm.c | 13 +-
drivers/s390/cio/device_id.c | 2 +-
drivers/s390/cio/device_pgid.c | 11 +-
drivers/s390/cio/device_status.c | 3 +-
drivers/s390/cio/eadm_sch.c | 9 +-
drivers/s390/cio/fcx.c | 23 +-
drivers/s390/cio/itcw.c | 3 +-
drivers/s390/cio/vfio_ccw_chp.c | 5 +-
drivers/s390/cio/vfio_ccw_cp.c | 4 +-
drivers/s390/cio/vfio_ccw_drv.c | 174 +-
drivers/s390/cio/vfio_ccw_fsm.c | 29 +-
drivers/s390/cio/vfio_ccw_ops.c | 110 +-
drivers/s390/cio/vfio_ccw_private.h | 37 +-
drivers/s390/crypto/ap_bus.c | 5 +-
drivers/s390/crypto/vfio_ap_drv.c | 2 +-
drivers/s390/crypto/vfio_ap_ops.c | 29 +-
drivers/s390/crypto/zcrypt_api.c | 6 -
drivers/s390/net/ctcm_main.c | 11 +-
drivers/s390/net/ism_drv.c | 3 +-
drivers/s390/net/lcs.c | 8 +-
drivers/s390/net/netiucv.c | 9 +-
drivers/s390/net/qeth_l2_main.c | 2 +-
drivers/s390/scsi/zfcp_fc.c | 2 +-
drivers/sbus/char/envctrl.c | 4 +-
drivers/scsi/BusLogic.c | 6 +-
drivers/scsi/NCR5380.c | 2 +-
drivers/scsi/bfa/bfa_fc.h | 2 +-
drivers/scsi/bfa/bfad_bsg.c | 29 +
drivers/scsi/bfa/bfad_im.h | 26 -
drivers/scsi/csiostor/csio_wr.c | 3 +-
drivers/scsi/cxlflash/main.c | 2 +-
drivers/scsi/device_handler/scsi_dh_alua.c | 65 +-
drivers/scsi/elx/efct/efct_driver.c | 1 +
drivers/scsi/elx/libefc/efclib.h | 6 +-
drivers/scsi/esas2r/esas2r_main.c | 19 +-
drivers/scsi/fcoe/fcoe.c | 1 +
drivers/scsi/fcoe/fcoe_ctlr.c | 4 +-
drivers/scsi/fcoe/fcoe_sysfs.c | 19 +-
drivers/scsi/hisi_sas/hisi_sas.h | 1 +
drivers/scsi/hisi_sas/hisi_sas_main.c | 109 +-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 53 +-
drivers/scsi/hosts.c | 3 +-
drivers/scsi/hpsa.c | 9 +-
drivers/scsi/ipr.c | 10 +-
drivers/scsi/iscsi_tcp.c | 1 +
drivers/scsi/libfc/fc_disc.c | 5 +-
drivers/scsi/libiscsi.c | 26 +-
drivers/scsi/libsas/sas_ata.c | 49 +-
drivers/scsi/libsas/sas_expander.c | 44 +-
drivers/scsi/libsas/sas_init.c | 3 -
drivers/scsi/libsas/sas_internal.h | 23 +
drivers/scsi/lpfc/lpfc_attr.c | 120 +-
drivers/scsi/lpfc/lpfc_crtn.h | 3 +
drivers/scsi/lpfc/lpfc_els.c | 169 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 36 +-
drivers/scsi/lpfc/lpfc_hw4.h | 5 +-
drivers/scsi/lpfc/lpfc_init.c | 16 +-
drivers/scsi/lpfc/lpfc_sli.c | 31 +-
drivers/scsi/lpfc/lpfc_sli4.h | 1 +
drivers/scsi/lpfc/lpfc_version.h | 2 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 7 +-
drivers/scsi/megaraid/megaraid_sas_fusion.c | 8 +-
drivers/scsi/mpt3sas/mpt3sas_transport.c | 2 +
drivers/scsi/mvsas/mv_defs.h | 1 +
drivers/scsi/mvsas/mv_init.c | 11 +-
drivers/scsi/mvsas/mv_sas.c | 59 +-
drivers/scsi/mvsas/mv_sas.h | 8 +-
drivers/scsi/mvumi.c | 4 +-
drivers/scsi/pcmcia/nsp_cs.c | 4 +-
drivers/scsi/pm8001/pm8001_hwi.c | 186 +-
drivers/scsi/pm8001/pm8001_init.c | 14 +-
drivers/scsi/pm8001/pm8001_sas.c | 54 +-
drivers/scsi/pm8001/pm8001_sas.h | 18 +-
drivers/scsi/pm8001/pm80xx_hwi.c | 200 +-
drivers/scsi/qedf/qedf_main.c | 3 -
drivers/scsi/qedi/qedi_main.c | 2 +-
drivers/scsi/qla2xxx/qla_def.h | 22 +-
drivers/scsi/qla2xxx/qla_edif.c | 4 +-
drivers/scsi/qla2xxx/qla_init.c | 24 +-
drivers/scsi/qla2xxx/qla_inline.h | 4 +-
drivers/scsi/qla2xxx/qla_os.c | 5 +-
drivers/scsi/qla2xxx/qla_target.c | 3 +
drivers/scsi/qla4xxx/ql4_os.c | 8 +-
drivers/scsi/scsi.c | 12 +-
drivers/scsi/scsi_debug.c | 17 +-
drivers/scsi/scsi_error.c | 44 +-
drivers/scsi/scsi_ioctl.c | 4 +-
drivers/scsi/scsi_lib.c | 45 +-
drivers/scsi/scsi_priv.h | 6 +-
drivers/scsi/scsi_proc.c | 137 +-
drivers/scsi/scsi_scan.c | 6 +-
drivers/scsi/scsi_sysfs.c | 22 +-
drivers/scsi/scsi_transport_fc.c | 7 +-
drivers/scsi/scsi_transport_iscsi.c | 4 +-
drivers/scsi/scsi_transport_srp.c | 8 +-
drivers/scsi/sd.c | 51 +-
drivers/scsi/sd_trace.h | 84 +
drivers/scsi/sd_zbc.c | 9 +-
drivers/scsi/sg.c | 4 +-
drivers/scsi/smartpqi/smartpqi.h | 5 +-
drivers/scsi/smartpqi/smartpqi_init.c | 164 +-
drivers/scsi/snic/snic_disc.c | 3 +
drivers/scsi/storvsc_drv.c | 73 +-
drivers/scsi/virtio_scsi.c | 4 +-
drivers/slimbus/qcom-ctrl.c | 5 +-
drivers/slimbus/qcom-ngd-ctrl.c | 97 +-
drivers/slimbus/stream.c | 17 +-
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
drivers/soc/apple/rtkit.c | 7 +-
drivers/soc/apple/sart.c | 7 +-
drivers/soc/bcm/brcmstb/pm/Makefile | 1 -
drivers/soc/bcm/brcmstb/pm/s2-arm.S | 1 +
drivers/soc/fsl/dpio/dpio-driver.c | 1 -
drivers/soc/fsl/qe/gpio.c | 81 +-
drivers/soc/imx/gpcv2.c | 3 +
drivers/soc/imx/imx8m-blk-ctrl.c | 11 +-
drivers/soc/loongson/Kconfig | 18 +
drivers/soc/loongson/Makefile | 6 +
drivers/soc/loongson/loongson2_guts.c | 192 +
drivers/soc/mediatek/mt8186-mmsys.h | 8 +-
drivers/soc/mediatek/mtk-mmsys.c | 176 +-
drivers/soc/mediatek/mtk-mmsys.h | 6 -
drivers/soc/mediatek/mtk-pm-domains.c | 2 +-
drivers/soc/mediatek/mtk-pmic-wrap.c | 114 +-
drivers/soc/pxa/ssp.c | 4 +-
drivers/soc/qcom/Kconfig | 2 +
drivers/soc/qcom/apr.c | 15 +-
drivers/soc/qcom/cmd-db.c | 2 +
drivers/soc/qcom/llcc-qcom.c | 168 +-
drivers/soc/qcom/pdr_internal.h | 20 +-
drivers/soc/qcom/qcom-geni-se.c | 79 +-
drivers/soc/qcom/qcom_stats.c | 2 +
drivers/soc/qcom/rpmh-internal.h | 20 +-
drivers/soc/qcom/rpmh-rsc.c | 321 +-
drivers/soc/qcom/rpmh.c | 14 +-
drivers/soc/qcom/rpmhpd.c | 95 +-
drivers/soc/qcom/rpmpd.c | 18 +
drivers/soc/qcom/smd-rpm.c | 3 +-
drivers/soc/qcom/smp2p.c | 2 +-
drivers/soc/qcom/socinfo.c | 280 +-
drivers/soc/qcom/spm.c | 46 +
drivers/soc/qcom/trace-rpmh.h | 11 +-
drivers/soc/renesas/Kconfig | 2 +
drivers/soc/renesas/renesas-soc.c | 22 +
drivers/soc/sifive/sifive_ccache.c | 33 +-
drivers/soc/tegra/Kconfig | 4 +
drivers/soc/tegra/cbb/tegra-cbb.c | 13 +-
drivers/soc/tegra/cbb/tegra194-cbb.c | 18 +-
drivers/soc/tegra/cbb/tegra234-cbb.c | 170 +-
drivers/soc/tegra/fuse/fuse-tegra.c | 134 +-
drivers/soc/tegra/fuse/fuse-tegra30.c | 278 +-
drivers/soc/tegra/fuse/fuse.h | 4 +
drivers/soc/tegra/fuse/tegra-apbmisc.c | 1 +
drivers/soc/tegra/pmc.c | 878 +-
drivers/soc/ti/Kconfig | 4 +-
drivers/soc/ti/k3-ringacc.c | 28 +-
drivers/soc/ti/k3-socinfo.c | 1 +
drivers/soc/ti/knav_qmss_queue.c | 3 +-
drivers/soc/ti/smartreflex.c | 1 +
drivers/soc/ti/ti_sci_inta_msi.c | 12 +-
drivers/soc/ux500/ux500-soc-id.c | 10 +-
drivers/soundwire/Makefile | 2 +-
drivers/soundwire/cadence_master.c | 50 +-
drivers/soundwire/cadence_master.h | 9 +-
drivers/soundwire/dmi-quirks.c | 8 +
drivers/soundwire/intel.c | 769 +-
drivers/soundwire/intel.h | 96 +-
drivers/soundwire/intel_auxdevice.c | 678 +
drivers/soundwire/intel_auxdevice.h | 18 +
drivers/soundwire/intel_init.c | 39 +-
drivers/soundwire/qcom.c | 25 +-
drivers/spi/Kconfig | 31 +-
drivers/spi/Makefile | 3 +
drivers/spi/atmel-quadspi.c | 34 +
drivers/spi/spi-aspeed-smc.c | 6 +-
drivers/spi/spi-bcm-qspi.c | 5 +-
drivers/spi/spi-bcm-qspi.h | 2 +-
drivers/spi/spi-bcm63xx.c | 3 +-
drivers/spi/spi-brcmstb-qspi.c | 4 +-
drivers/spi/spi-cadence-quadspi.c | 15 +-
drivers/spi/spi-cadence-xspi.c | 4 -
drivers/spi/spi-dw-dma.c | 3 +
drivers/spi/spi-fsl-cpm.c | 2 +-
drivers/spi/spi-fsl-dspi.c | 36 +-
drivers/spi/spi-fsl-lpspi.c | 5 +
drivers/spi/spi-fsl-spi.c | 19 +-
drivers/spi/spi-gpio.c | 16 +-
drivers/spi/spi-hisi-sfc-v3xx.c | 2 +-
drivers/spi/spi-img-spfi.c | 3 +-
drivers/spi/spi-imx.c | 21 +-
drivers/spi/spi-intel.c | 78 +-
drivers/spi/spi-iproc-qspi.c | 4 +-
drivers/spi/spi-meson-spicc.c | 39 +-
drivers/spi/spi-microchip-core.c | 9 -
drivers/spi/spi-mt65xx.c | 20 +-
drivers/spi/spi-mtk-nor.c | 69 +-
drivers/spi/spi-mtk-snfi.c | 29 +-
drivers/spi/spi-mxic.c | 3 +-
drivers/spi/spi-npcm-fiu.c | 4 +-
drivers/spi/spi-nxp-fspi.c | 2 +-
drivers/spi/spi-pci1xxxx.c | 475 +
drivers/spi/spi-pxa2xx.c | 195 +-
drivers/spi/spi-sc18is602.c | 6 +-
drivers/spi/spi-sn-f-ospi.c | 703 +
drivers/spi/spi-tegra210-quad.c | 3 +-
drivers/spi/spi-wpcm-fiu.c | 508 +
drivers/spi/spi-xcomm.c | 5 +-
drivers/spi/spi-zynqmp-gqspi.c | 191 +-
drivers/spi/spi.c | 70 +-
drivers/spi/spidev.c | 21 +-
drivers/spmi/spmi-pmic-arb.c | 242 +-
drivers/staging/emxx_udc/emxx_udc.c | 5 +-
drivers/staging/fieldbus/dev_core.c | 17 +-
drivers/staging/gdm724x/gdm_tty.c | 13 +-
drivers/staging/greybus/tools/loopback_test.c | 15 +-
drivers/staging/iio/accel/adis16203.c | 2 +-
drivers/staging/iio/accel/adis16240.c | 2 +-
drivers/staging/iio/addac/adt7316-i2c.c | 6 +-
drivers/staging/iio/frequency/ad9834.c | 6 +-
drivers/staging/iio/impedance-analyzer/ad5933.c | 6 +-
drivers/staging/iio/meter/ade7854-i2c.c | 10 +-
drivers/staging/ks7010/TODO | 3 +
drivers/staging/ks7010/ks_wlan_net.c | 248 +-
drivers/staging/media/Kconfig | 1 +
drivers/staging/media/Makefile | 1 +
drivers/staging/media/atomisp/i2c/atomisp-gc0310.c | 14 +-
drivers/staging/media/atomisp/i2c/atomisp-lm3554.c | 2 +-
drivers/staging/media/atomisp/i2c/gc0310.h | 1 +
drivers/staging/media/atomisp/i2c/ov2680.h | 46 +-
drivers/staging/media/atomisp/include/hmm/hmm.h | 3 +-
drivers/staging/media/atomisp/include/hmm/hmm_bo.h | 4 +-
drivers/staging/media/atomisp/pci/atomisp_cmd.c | 442 +-
drivers/staging/media/atomisp/pci/atomisp_cmd.h | 17 +-
drivers/staging/media/atomisp/pci/atomisp_common.h | 6 +-
drivers/staging/media/atomisp/pci/atomisp_compat.h | 14 +-
.../media/atomisp/pci/atomisp_compat_css20.c | 96 +-
drivers/staging/media/atomisp/pci/atomisp_fops.c | 535 +-
drivers/staging/media/atomisp/pci/atomisp_fops.h | 13 -
.../staging/media/atomisp/pci/atomisp_internal.h | 1 -
drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 615 +-
drivers/staging/media/atomisp/pci/atomisp_ioctl.h | 10 +-
drivers/staging/media/atomisp/pci/atomisp_subdev.c | 2 +
drivers/staging/media/atomisp/pci/atomisp_subdev.h | 22 +-
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 104 +-
.../camera/pipe/interface/ia_css_pipe_binarydesc.h | 13 +-
.../camera/pipe/interface/ia_css_pipe_stagedesc.h | 5 -
.../atomisp/pci/camera/pipe/src/pipe_binarydesc.c | 55 +-
.../atomisp/pci/camera/pipe/src/pipe_stagedesc.c | 21 -
.../pci/css_2401_system/host/pixelgen_private.h | 2 +-
drivers/staging/media/atomisp/pci/hive_types.h | 2 +-
drivers/staging/media/atomisp/pci/hmm/hmm.c | 20 +-
drivers/staging/media/atomisp/pci/hmm/hmm_bo.c | 64 +-
.../media/atomisp/pci/ia_css_frame_public.h | 108 +-
drivers/staging/media/atomisp/pci/ia_css_pipe.h | 3 +-
.../staging/media/atomisp/pci/ia_css_pipe_public.h | 69 -
.../ipu2_io_ls/bayer_io_ls/ia_css_bayer_io.host.c | 10 +-
.../yuv444_io_ls/ia_css_yuv444_io.host.c | 10 +-
.../pci/isp/kernels/ref/ref_1.0/ia_css_ref.host.c | 2 +-
.../pci/isp/kernels/tnr/tnr_1.0/ia_css_tnr.host.c | 4 +-
.../media/atomisp/pci/runtime/binary/src/binary.c | 42 +-
.../atomisp/pci/runtime/debug/src/ia_css_debug.c | 33 +-
.../media/atomisp/pci/runtime/frame/src/frame.c | 203 +-
.../runtime/pipeline/interface/ia_css_pipeline.h | 2 -
.../atomisp/pci/runtime/pipeline/src/pipeline.c | 8 -
drivers/staging/media/atomisp/pci/sh_css.c | 646 +-
.../staging/media/atomisp/pci/sh_css_internal.h | 13 -
drivers/staging/media/atomisp/pci/sh_css_legacy.h | 1 -
.../media/atomisp/pci/sh_css_param_shading.c | 19 +-
drivers/staging/media/atomisp/pci/sh_css_params.c | 17 +-
drivers/staging/media/atomisp/pci/sh_css_sp.c | 54 +-
drivers/staging/media/deprecated/atmel/Kconfig | 47 +
drivers/staging/media/deprecated/atmel/Makefile | 8 +
drivers/staging/media/deprecated/atmel/TODO | 34 +
.../media/deprecated}/atmel/atmel-isc-base.c | 20 +-
.../media/deprecated}/atmel/atmel-isc-clk.c | 8 +-
.../media/deprecated}/atmel/atmel-isc-regs.h | 0
.../media/deprecated}/atmel/atmel-isc.h | 16 +-
.../media/deprecated}/atmel/atmel-sama5d2-isc.c | 18 +-
.../media/deprecated}/atmel/atmel-sama7g5-isc.c | 18 +-
drivers/staging/media/deprecated/stkwebcam/Kconfig | 2 +-
drivers/staging/media/imx/Kconfig | 17 +-
drivers/staging/media/imx/Makefile | 3 +-
drivers/staging/media/imx/TODO | 41 -
drivers/staging/media/imx/imx-media-csi.c | 135 +-
drivers/staging/media/imx/imx-media-fim.c | 57 +-
drivers/staging/media/imx/imx-media-utils.c | 33 -
drivers/staging/media/imx/imx-media.h | 1 -
drivers/staging/media/ipu3/ipu3-v4l2.c | 57 +-
drivers/staging/media/meson/vdec/codec_vp9.c | 10 +-
drivers/staging/media/omap4iss/iss_video.c | 2 -
drivers/staging/media/omap4iss/iss_video.h | 18 +-
drivers/staging/media/rkvdec/rkvdec-vp9.c | 3 +
drivers/staging/media/sunxi/Kconfig | 1 +
drivers/staging/media/sunxi/Makefile | 1 +
drivers/staging/media/sunxi/cedrus/cedrus.c | 112 +-
drivers/staging/media/sunxi/cedrus/cedrus.h | 38 +-
drivers/staging/media/sunxi/cedrus/cedrus_dec.c | 4 +-
drivers/staging/media/sunxi/cedrus/cedrus_h264.c | 120 +-
drivers/staging/media/sunxi/cedrus/cedrus_h265.c | 125 +-
drivers/staging/media/sunxi/cedrus/cedrus_hw.c | 18 +-
drivers/staging/media/sunxi/cedrus/cedrus_hw.h | 2 +-
drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c | 2 +-
drivers/staging/media/sunxi/cedrus/cedrus_regs.h | 18 +
drivers/staging/media/sunxi/cedrus/cedrus_video.c | 184 +-
drivers/staging/media/sunxi/cedrus/cedrus_video.h | 2 +
drivers/staging/media/sunxi/cedrus/cedrus_vp8.c | 2 +-
drivers/staging/media/sunxi/sun6i-isp/Kconfig | 15 +
drivers/staging/media/sunxi/sun6i-isp/Makefile | 4 +
drivers/staging/media/sunxi/sun6i-isp/TODO.txt | 6 +
drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c | 555 +
drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.h | 90 +
.../media/sunxi/sun6i-isp/sun6i_isp_capture.c | 742 +
.../media/sunxi/sun6i-isp/sun6i_isp_capture.h | 78 +
.../media/sunxi/sun6i-isp/sun6i_isp_params.c | 568 +
.../media/sunxi/sun6i-isp/sun6i_isp_params.h | 52 +
.../staging/media/sunxi/sun6i-isp/sun6i_isp_proc.c | 577 +
.../staging/media/sunxi/sun6i-isp/sun6i_isp_proc.h | 66 +
.../staging/media/sunxi/sun6i-isp/sun6i_isp_reg.h | 275 +
.../media/sunxi/sun6i-isp/uapi/sun6i-isp-config.h | 43 +
drivers/staging/media/tegra-video/csi.c | 4 +-
drivers/staging/media/tegra-video/csi.h | 2 +-
drivers/staging/media/tegra-video/vi.c | 2 +-
drivers/staging/most/dim2/dim2.c | 4 +-
drivers/staging/most/dim2/hal.c | 4 +-
drivers/staging/most/dim2/hal.h | 6 +-
drivers/staging/most/i2c/i2c.c | 4 +-
drivers/staging/octeon/ethernet-tx.c | 2 -
drivers/staging/octeon/octeon-stubs.h | 2 +-
drivers/staging/olpc_dcon/olpc_dcon.c | 4 +-
.../{pi433-overlay.dts => pi433-overlay.dtso} | 0
.../pi433/Documentation/devicetree/pi433.txt | 6 +-
drivers/staging/r8188eu/core/rtw_ap.c | 7 +-
drivers/staging/r8188eu/core/rtw_br_ext.c | 126 +-
drivers/staging/r8188eu/core/rtw_cmd.c | 34 +-
drivers/staging/r8188eu/core/rtw_ioctl_set.c | 6 +-
drivers/staging/r8188eu/core/rtw_led.c | 79 +-
drivers/staging/r8188eu/core/rtw_mlme.c | 51 +-
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 747 +-
drivers/staging/r8188eu/core/rtw_p2p.c | 19 +-
drivers/staging/r8188eu/core/rtw_pwrctrl.c | 2 +-
drivers/staging/r8188eu/core/rtw_recv.c | 27 +-
drivers/staging/r8188eu/core/rtw_security.c | 4 +-
drivers/staging/r8188eu/core/rtw_sta_mgt.c | 16 +-
drivers/staging/r8188eu/core/rtw_wlan_util.c | 36 +-
drivers/staging/r8188eu/core/rtw_xmit.c | 54 +-
drivers/staging/r8188eu/hal/HalPhyRf_8188e.c | 12 +-
drivers/staging/r8188eu/hal/hal_intf.c | 19 +-
drivers/staging/r8188eu/hal/odm_RTL8188E.c | 6 +-
drivers/staging/r8188eu/hal/rtl8188e_hal_init.c | 8 +-
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c | 16 +-
drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c | 28 +-
drivers/staging/r8188eu/hal/rtl8188eu_xmit.c | 3 +-
drivers/staging/r8188eu/include/Hal8188EPhyReg.h | 4 +-
drivers/staging/r8188eu/include/drv_types.h | 1 -
drivers/staging/r8188eu/include/odm.h | 10 +-
drivers/staging/r8188eu/include/odm_RTL8188E.h | 7 +
drivers/staging/r8188eu/include/odm_types.h | 16 -
drivers/staging/r8188eu/include/osdep_intf.h | 6 +-
drivers/staging/r8188eu/include/osdep_service.h | 6 +-
drivers/staging/r8188eu/include/rtl8188e_hal.h | 7 +-
drivers/staging/r8188eu/include/rtl8188e_spec.h | 18 +-
drivers/staging/r8188eu/include/rtw_ap.h | 2 +-
drivers/staging/r8188eu/include/rtw_cmd.h | 71 +-
drivers/staging/r8188eu/include/rtw_io.h | 16 +-
drivers/staging/r8188eu/include/rtw_ioctl_set.h | 6 +-
drivers/staging/r8188eu/include/rtw_led.h | 3 -
drivers/staging/r8188eu/include/rtw_mlme.h | 29 +-
drivers/staging/r8188eu/include/rtw_mlme_ext.h | 58 +-
drivers/staging/r8188eu/include/rtw_recv.h | 4 +-
drivers/staging/r8188eu/include/rtw_xmit.h | 4 +-
drivers/staging/r8188eu/include/sta_info.h | 18 +-
drivers/staging/r8188eu/include/wifi.h | 77 +-
drivers/staging/r8188eu/include/wlan_bssdef.h | 51 -
drivers/staging/r8188eu/os_dep/ioctl_linux.c | 28 +-
drivers/staging/r8188eu/os_dep/os_intfs.c | 41 +-
drivers/staging/rtl8192e/TODO | 18 +-
drivers/staging/rtl8192e/rtl8192e/r8190P_def.h | 15 -
drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 55 +-
drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 50 +-
drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 43 +-
drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 191 +-
drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 36 +-
drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 123 +-
drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 10 +-
drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c | 2 +-
drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 95 +-
drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 94 +-
drivers/staging/rtl8192e/rtl819x_BAProc.c | 38 +-
drivers/staging/rtl8192e/rtl819x_HT.h | 2 +-
drivers/staging/rtl8192e/rtl819x_HTProc.c | 405 +-
drivers/staging/rtl8192e/rtl819x_Qos.h | 7 -
drivers/staging/rtl8192e/rtl819x_TSProc.c | 2 +-
drivers/staging/rtl8192e/rtllib.h | 51 +-
drivers/staging/rtl8192e/rtllib_crypt_tkip.c | 52 +-
drivers/staging/rtl8192e/rtllib_crypt_wep.c | 8 -
drivers/staging/rtl8192e/rtllib_module.c | 8 +-
drivers/staging/rtl8192e/rtllib_rx.c | 38 +-
drivers/staging/rtl8192e/rtllib_softmac.c | 173 +-
drivers/staging/rtl8192e/rtllib_softmac_wx.c | 19 +-
drivers/staging/rtl8192e/rtllib_tx.c | 120 +-
drivers/staging/rtl8192e/rtllib_wx.c | 6 +-
drivers/staging/rtl8192u/TODO | 16 +
drivers/staging/rtl8192u/ieee80211/ieee80211.h | 64 -
.../rtl8192u/ieee80211/ieee80211_crypt_tkip.c | 6 -
.../staging/rtl8192u/ieee80211/ieee80211_module.c | 3 -
drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c | 6 +-
drivers/staging/rtl8712/os_intfs.c | 27 +-
drivers/staging/rtl8712/recv_osdep.h | 8 +-
drivers/staging/rtl8712/rtl8712_recv.c | 7 +-
drivers/staging/rtl8712/rtl8712_xmit.c | 3 +-
drivers/staging/rtl8712/rtl871x_recv.c | 16 +-
drivers/staging/rtl8723bs/core/rtw_efuse.c | 2 +-
drivers/staging/rtl8723bs/core/rtw_ieee80211.c | 12 +-
drivers/staging/rtl8723bs/core/rtw_ioctl_set.c | 17 +-
drivers/staging/rtl8723bs/core/rtw_mlme.c | 30 +-
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 2 +-
drivers/staging/rtl8723bs/core/rtw_recv.c | 6 +-
drivers/staging/rtl8723bs/core/rtw_sta_mgt.c | 2 +-
drivers/staging/rtl8723bs/core/rtw_wlan_util.c | 12 +-
drivers/staging/rtl8723bs/hal/HalPhyRf_8723B.c | 21 +-
drivers/staging/rtl8723bs/hal/odm.h | 12 +-
drivers/staging/rtl8723bs/hal/odm_DIG.c | 5 +-
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 2 +-
drivers/staging/rts5208/sd.c | 3 +-
drivers/staging/sm750fb/Kconfig | 2 +-
.../vc04_services/bcm2835-camera/bcm2835-camera.c | 30 +-
.../staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 18 +-
.../staging/vc04_services/vchiq-mmal/mmal-vchiq.h | 6 +-
drivers/staging/vme_user/vme.h | 2 -
drivers/staging/vme_user/vme_fake.c | 9 +-
drivers/staging/vme_user/vme_tsi148.c | 7 +-
drivers/staging/vme_user/vme_tsi148.h | 7 -
drivers/staging/vt6655/device_main.c | 1 +
drivers/staging/vt6655/rxtx.c | 36 +-
drivers/staging/vt6656/main_usb.c | 1 +
drivers/staging/wlan-ng/TODO | 16 +
drivers/staging/wlan-ng/hfa384x_usb.c | 4 +-
drivers/staging/wlan-ng/p80211mgmt.h | 301 -
drivers/staging/wlan-ng/p80211netdev.c | 22 -
drivers/staging/wlan-ng/p80211types.h | 6 -
drivers/staging/wlan-ng/prism2usb.c | 6 +-
drivers/target/iscsi/iscsi_target_nego.c | 12 +-
drivers/target/iscsi/iscsi_target_util.c | 4 +-
drivers/target/target_core_configfs.c | 49 +-
drivers/target/target_core_device.c | 1 +
drivers/target/target_core_fabric_configfs.c | 3 +-
drivers/target/target_core_file.c | 5 +-
drivers/target/target_core_iblock.c | 4 +-
drivers/target/target_core_sbc.c | 30 +-
drivers/target/target_core_spc.c | 934 +-
drivers/target/target_core_xcopy.c | 103 +-
drivers/target/target_core_xcopy.h | 2 +-
drivers/tee/optee/core.c | 4 +-
drivers/tee/optee/device.c | 2 +-
drivers/thermal/gov_fair_share.c | 6 +-
drivers/thermal/gov_power_allocator.c | 1 -
drivers/thermal/imx8mm_thermal.c | 180 +-
drivers/thermal/imx_sc_thermal.c | 6 -
drivers/thermal/intel/intel_hfi.c | 34 +-
drivers/thermal/intel/intel_menlow.c | 8 +-
drivers/thermal/intel/intel_tcc_cooling.c | 11 +
drivers/thermal/intel/therm_throt.c | 26 +-
drivers/thermal/intel/thermal_interrupt.h | 6 +
drivers/thermal/intel/x86_pkg_temp_thermal.c | 9 +-
drivers/thermal/k3_j72xx_bandgap.c | 67 +-
drivers/thermal/qcom/lmh.c | 2 +-
drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 8 +-
drivers/thermal/qcom/qcom-spmi-temp-alarm.c | 3 +-
drivers/thermal/qcom/tsens-8960.c | 3 +
drivers/thermal/qcom/tsens-v0_1.c | 3 +
drivers/thermal/qcom/tsens-v1.c | 3 +
drivers/thermal/qcom/tsens-v2.c | 20 +
drivers/thermal/qcom/tsens.c | 68 +-
drivers/thermal/qcom/tsens.h | 8 +-
drivers/thermal/st/stm_thermal.c | 4 +-
drivers/thermal/tegra/tegra-bpmp-thermal.c | 15 +-
drivers/thermal/thermal_core.c | 110 +-
drivers/thermal/thermal_core.h | 3 +-
drivers/thermal/thermal_helpers.c | 67 +-
drivers/thermal/thermal_hwmon.c | 10 +-
drivers/thermal/thermal_of.c | 8 +-
drivers/thermal/thermal_sysfs.c | 116 +-
drivers/thermal/ti-soc-thermal/ti-bandgap.c | 2 +-
drivers/thunderbolt/acpi.c | 12 +-
drivers/thunderbolt/switch.c | 5 +-
drivers/thunderbolt/tb_regs.h | 2 +
drivers/thunderbolt/usb4.c | 33 +-
drivers/thunderbolt/usb4_port.c | 3 +
drivers/thunderbolt/xdomain.c | 4 +-
drivers/tty/Kconfig | 19 +
drivers/tty/ehv_bytechan.c | 4 +-
drivers/tty/hvc/hvc_console.c | 4 +-
drivers/tty/hvc/hvc_rtas.c | 2 +-
drivers/tty/n_gsm.c | 404 +-
drivers/tty/n_tty.c | 6 +-
drivers/tty/serial/21285.c | 32 +-
drivers/tty/serial/8250/8250_bcm7271.c | 14 +-
drivers/tty/serial/8250/8250_core.c | 7 +-
drivers/tty/serial/8250/8250_dma.c | 19 +-
drivers/tty/serial/8250/8250_ingenic.c | 32 +-
drivers/tty/serial/8250/8250_omap.c | 85 +-
drivers/tty/serial/8250/8250_port.c | 3 +-
drivers/tty/serial/Kconfig | 2 +
drivers/tty/serial/altera_jtaguart.c | 112 +-
drivers/tty/serial/altera_uart.c | 34 +-
drivers/tty/serial/amba-pl010.c | 32 +-
drivers/tty/serial/amba-pl011.c | 17 +-
drivers/tty/serial/apbuart.c | 34 +-
drivers/tty/serial/ar933x_uart.c | 3 +-
drivers/tty/serial/arc_uart.c | 3 +-
drivers/tty/serial/atmel_serial.c | 80 +-
drivers/tty/serial/bcm63xx_uart.c | 47 +-
drivers/tty/serial/clps711x.c | 3 +-
drivers/tty/serial/cpm_uart/cpm_uart_core.c | 3 +-
drivers/tty/serial/digicolor-usart.c | 3 +-
drivers/tty/serial/dz.c | 3 +-
drivers/tty/serial/earlycon.c | 4 +-
drivers/tty/serial/fsl_linflexuart.c | 3 +-
drivers/tty/serial/fsl_lpuart.c | 386 +-
drivers/tty/serial/imx.c | 71 +-
drivers/tty/serial/ip22zilog.c | 6 +-
drivers/tty/serial/kgdboc.c | 46 +-
drivers/tty/serial/lantiq.c | 36 +-
drivers/tty/serial/liteuart.c | 3 +-
drivers/tty/serial/lpc32xx_hs.c | 33 +-
drivers/tty/serial/max3100.c | 4 +-
drivers/tty/serial/max310x.c | 5 +-
drivers/tty/serial/mcf.c | 34 +-
drivers/tty/serial/men_z135_uart.c | 5 +-
drivers/tty/serial/meson_uart.c | 3 +-
drivers/tty/serial/milbeaut_usio.c | 3 +-
drivers/tty/serial/mpc52xx_uart.c | 39 +-
drivers/tty/serial/mps2-uart.c | 26 +-
drivers/tty/serial/msm_serial.c | 13 +-
drivers/tty/serial/mux.c | 45 +-
drivers/tty/serial/mvebu-uart.c | 41 +-
drivers/tty/serial/mxs-auart.c | 32 +-
drivers/tty/serial/omap-serial.c | 32 +-
drivers/tty/serial/owl-uart.c | 32 +-
drivers/tty/serial/pch_uart.c | 16 +-
drivers/tty/serial/pic32_uart.c | 7 +-
drivers/tty/serial/pmac_zilog.c | 6 +-
drivers/tty/serial/pxa.c | 33 +-
drivers/tty/serial/qcom_geni_serial.c | 35 +
drivers/tty/serial/rda-uart.c | 3 +-
drivers/tty/serial/rp2.c | 31 +-
drivers/tty/serial/sa1100.c | 34 +-
drivers/tty/serial/samsung_tty.c | 12 +-
drivers/tty/serial/sb1250-duart.c | 3 +-
drivers/tty/serial/sc16is7xx.c | 5 +-
drivers/tty/serial/sccnxp.c | 3 +-
drivers/tty/serial/serial-tegra.c | 9 +-
drivers/tty/serial/serial_core.c | 14 +-
drivers/tty/serial/serial_txx9.c | 32 +-
drivers/tty/serial/sh-sci.c | 25 +-
drivers/tty/serial/sifive.c | 31 +-
drivers/tty/serial/sprd_serial.c | 40 +-
drivers/tty/serial/st-asc.c | 48 +-
drivers/tty/serial/stm32-usart.c | 54 +-
drivers/tty/serial/sunhv.c | 6 +-
drivers/tty/serial/sunplus-uart.c | 4 +-
drivers/tty/serial/sunsab.c | 14 +-
drivers/tty/serial/sunsu.c | 3 +-
drivers/tty/serial/sunzilog.c | 6 +-
drivers/tty/serial/timbuart.c | 3 +-
drivers/tty/serial/uartlite.c | 3 +-
drivers/tty/serial/ucc_uart.c | 3 +-
drivers/tty/serial/vt8500_serial.c | 32 +-
drivers/tty/serial/xilinx_uartps.c | 6 +-
drivers/tty/serial/zs.c | 3 +-
drivers/tty/synclink_gt.c | 19 +-
drivers/tty/sysrq.c | 2 +-
drivers/tty/tty.h | 2 +-
drivers/tty/tty_buffer.c | 32 +-
drivers/tty/tty_io.c | 65 +-
drivers/tty/tty_ldisc.c | 38 +-
drivers/ufs/core/ufs-sysfs.c | 21 +-
drivers/ufs/core/ufshcd-priv.h | 6 +-
drivers/ufs/core/ufshcd.c | 370 +-
drivers/ufs/core/ufshpb.c | 16 +-
drivers/ufs/host/ufs-mediatek.c | 15 +-
drivers/uio/uio_dmem_genirq.c | 22 +-
drivers/uio/uio_fsl_elbc_gpcm.c | 6 +-
drivers/usb/Kconfig | 4 +
drivers/usb/Makefile | 2 +
drivers/usb/cdns3/cdnsp-gadget.c | 12 +-
drivers/usb/cdns3/cdnsp-pci.c | 8 +-
drivers/usb/cdns3/cdnsp-ring.c | 57 +-
drivers/usb/chipidea/ci.h | 4 +
drivers/usb/chipidea/ci_hdrc_imx.c | 51 +-
drivers/usb/chipidea/ci_hdrc_imx.h | 4 +-
drivers/usb/chipidea/core.c | 143 +-
drivers/usb/chipidea/host.c | 16 +
drivers/usb/chipidea/otg.c | 2 +-
drivers/usb/chipidea/otg.h | 1 +
drivers/usb/chipidea/udc.c | 32 +
drivers/usb/chipidea/usbmisc_imx.c | 160 +-
drivers/usb/class/usblp.c | 2 +-
drivers/usb/common/ulpi.c | 2 +-
drivers/usb/core/config.c | 82 +-
drivers/usb/core/file.c | 2 +-
drivers/usb/core/hcd-pci.c | 13 +
drivers/usb/core/hcd.c | 6 +-
drivers/usb/core/hub.c | 60 +
drivers/usb/core/hub.h | 4 +
drivers/usb/core/message.c | 1 +
drivers/usb/core/port.c | 30 +-
drivers/usb/core/sysfs.c | 7 +-
drivers/usb/core/usb.h | 1 -
drivers/usb/dwc2/gadget.c | 6 +-
drivers/usb/dwc2/params.c | 4 +
drivers/usb/dwc2/platform.c | 5 +-
drivers/usb/dwc3/Kconfig | 4 +-
drivers/usb/dwc3/core.c | 23 +-
drivers/usb/dwc3/dwc3-exynos.c | 11 +-
drivers/usb/dwc3/dwc3-pci.c | 2 +-
drivers/usb/dwc3/dwc3-qcom.c | 13 +-
drivers/usb/dwc3/gadget.c | 29 +-
drivers/usb/early/xhci-dbc.c | 2 +-
drivers/usb/fotg210/Kconfig | 38 +
drivers/usb/fotg210/Makefile | 10 +
drivers/usb/fotg210/fotg210-core.c | 166 +
drivers/usb/{host => fotg210}/fotg210-hcd.c | 51 +-
.../usb/{host/fotg210.h => fotg210/fotg210-hcd.h} | 0
drivers/usb/{gadget/udc => fotg210}/fotg210-udc.c | 164 +-
.../udc/fotg210.h => fotg210/fotg210-udc.h} | 3 +
drivers/usb/fotg210/fotg210.h | 42 +
drivers/usb/gadget/configfs.c | 3 +-
drivers/usb/gadget/function/f_ecm.c | 22 +-
drivers/usb/gadget/function/f_hid.c | 60 +-
drivers/usb/gadget/function/f_mass_storage.c | 3 +-
drivers/usb/gadget/function/f_printer.c | 9 +-
drivers/usb/gadget/function/f_uvc.c | 20 +-
drivers/usb/gadget/function/storage_common.c | 9 +-
drivers/usb/gadget/function/u_ether.c | 4 -
drivers/usb/gadget/function/u_serial.c | 3 +-
drivers/usb/gadget/function/uvc_configfs.c | 12 +-
drivers/usb/gadget/function/uvc_v4l2.c | 72 +-
drivers/usb/gadget/legacy/serial.c | 3 +-
drivers/usb/gadget/legacy/webcam.c | 4 +-
drivers/usb/gadget/udc/Kconfig | 15 +-
drivers/usb/gadget/udc/Makefile | 1 -
drivers/usb/gadget/udc/aspeed-vhub/core.c | 2 +-
drivers/usb/gadget/udc/aspeed-vhub/epn.c | 16 +-
drivers/usb/gadget/udc/at91_udc.c | 5 +-
drivers/usb/gadget/udc/core.c | 16 +-
drivers/usb/gadget/udc/m66592-udc.c | 2 +-
drivers/usb/host/Kconfig | 13 +-
drivers/usb/host/Makefile | 1 -
drivers/usb/host/ehci-grlib.c | 2 +-
drivers/usb/host/ehci-pci.c | 7 +-
drivers/usb/host/ehci-ppc-of.c | 2 +-
drivers/usb/host/ehci.h | 2 +-
drivers/usb/host/fhci-hcd.c | 4 +-
drivers/usb/host/ohci-ppc-of.c | 2 +-
drivers/usb/host/uhci-grlib.c | 2 +-
drivers/usb/host/xhci-hub.c | 22 +-
drivers/usb/host/xhci-mtk.c | 73 +-
drivers/usb/host/xhci-pci.c | 63 +-
drivers/usb/host/xhci-ring.c | 42 +-
drivers/usb/host/xhci.h | 2 +-
drivers/usb/misc/Kconfig | 2 +-
drivers/usb/misc/chaoskey.c | 1 -
drivers/usb/misc/ftdi-elan.c | 4 -
drivers/usb/misc/iowarrior.c | 2 +-
drivers/usb/misc/legousbtower.c | 2 +-
drivers/usb/misc/onboard_usb_hub.c | 2 +
drivers/usb/misc/onboard_usb_hub.h | 5 +
drivers/usb/misc/sisusbvga/Kconfig | 34 -
drivers/usb/misc/sisusbvga/Makefile | 3 -
drivers/usb/misc/sisusbvga/sisusb.h | 21 -
drivers/usb/misc/sisusbvga/sisusb_con.c | 1496 -
drivers/usb/misc/sisusbvga/sisusb_init.c | 955 -
drivers/usb/misc/sisusbvga/sisusb_init.h | 180 -
.../usb/misc/sisusbvga/{sisusb.c => sisusbvga.c} | 289 +-
drivers/usb/misc/usb251xb.c | 5 +-
drivers/usb/misc/usb3503.c | 5 +-
drivers/usb/misc/usb4604.c | 5 +-
drivers/usb/musb/Kconfig | 18 -
drivers/usb/musb/Makefile | 3 -
drivers/usb/musb/am35x.c | 610 -
drivers/usb/musb/cppi_dma.c | 1547 -
drivers/usb/musb/davinci.c | 606 -
drivers/usb/musb/davinci.h | 103 -
drivers/usb/musb/jz4740.c | 62 +-
drivers/usb/musb/musb_core.c | 107 +-
drivers/usb/musb/musb_core.h | 24 +
drivers/usb/musb/musb_debugfs.c | 6 +-
drivers/usb/musb/musb_dma.h | 13 +-
drivers/usb/musb/musb_gadget.c | 61 +-
drivers/usb/musb/musb_host.c | 18 +-
drivers/usb/musb/musb_virthub.c | 33 +-
drivers/usb/musb/omap2430.c | 54 +
drivers/usb/phy/Kconfig | 14 +-
drivers/usb/phy/Makefile | 1 -
drivers/usb/phy/phy-generic.c | 18 +-
drivers/usb/phy/phy-gpio-vbus-usb.c | 12 +
drivers/usb/phy/phy-isp1301-omap.c | 4 +-
drivers/usb/phy/phy-isp1301.c | 5 +-
drivers/usb/phy/phy-jz4770.c | 353 -
drivers/usb/roles/class.c | 7 +-
drivers/usb/serial/cp210x.c | 21 +-
drivers/usb/serial/f81232.c | 12 +-
drivers/usb/serial/f81534.c | 12 +-
drivers/usb/serial/garmin_gps.c | 2 +-
drivers/usb/serial/mos7840.c | 4 +-
drivers/usb/serial/option.c | 3 +
drivers/usb/serial/xr_serial.c | 2 -
drivers/usb/storage/alauda.c | 2 +
drivers/usb/typec/anx7411.c | 5 +-
drivers/usb/typec/bus.c | 2 +-
drivers/usb/typec/class.c | 19 +
drivers/usb/typec/hd3ss3220.c | 5 +-
drivers/usb/typec/mux.c | 8 +-
drivers/usb/typec/retimer.c | 18 +-
drivers/usb/typec/retimer.h | 4 +
drivers/usb/typec/tcpm/fusb302.c | 5 +-
drivers/usb/typec/tcpm/tcpci.c | 10 +-
drivers/usb/typec/tcpm/tcpci_maxim.c | 4 +-
drivers/usb/typec/tcpm/tcpci_rt1711h.c | 5 +-
drivers/usb/typec/tipd/core.c | 20 +-
drivers/usb/typec/ucsi/ucsi.c | 17 +-
drivers/usb/typec/ucsi/ucsi.h | 1 +
drivers/usb/typec/ucsi/ucsi_ccg.c | 5 +-
drivers/usb/typec/ucsi/ucsi_stm32g0.c | 4 +-
drivers/usb/typec/wusb3801.c | 2 +-
drivers/usb/usb-skeleton.c | 1 -
drivers/usb/usbip/stub_dev.c | 4 +-
drivers/usb/usbip/usbip_common.c | 3 +-
drivers/usb/usbip/vudc_rx.c | 4 +-
drivers/usb/usbip/vudc_sysfs.c | 2 +-
drivers/vdpa/vdpa_user/vduse_dev.c | 2 +-
drivers/vfio/Kconfig | 31 +-
drivers/vfio/Makefile | 11 +-
drivers/vfio/container.c | 145 +-
drivers/vfio/fsl-mc/vfio_fsl_mc.c | 4 +-
drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 1 -
drivers/vfio/group.c | 877 +
drivers/vfio/iommufd.c | 158 +
drivers/vfio/iova_bitmap.c | 33 +-
drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c | 162 +-
drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.h | 2 +
drivers/vfio/pci/mlx5/cmd.c | 413 +-
drivers/vfio/pci/mlx5/cmd.h | 96 +-
drivers/vfio/pci/mlx5/main.c | 787 +-
drivers/vfio/pci/vfio_pci.c | 3 +
drivers/vfio/pci/vfio_pci_core.c | 15 +-
drivers/vfio/platform/vfio_amba.c | 4 +-
drivers/vfio/platform/vfio_platform.c | 4 +-
drivers/vfio/platform/vfio_platform_common.c | 3 +-
drivers/vfio/vfio.h | 133 +-
drivers/vfio/vfio_iommu_spapr_tce.c | 65 +-
drivers/vfio/vfio_main.c | 1126 +-
drivers/vfio/vfio_spapr_eeh.c | 107 -
drivers/vfio/virqfd.c | 17 +-
drivers/vhost/net.c | 6 +-
drivers/vhost/scsi.c | 10 +-
drivers/vhost/vhost.c | 6 +-
drivers/vhost/vringh.c | 4 +-
drivers/vhost/vsock.c | 4 +-
drivers/video/backlight/adp8860_bl.c | 6 +-
drivers/video/backlight/adp8870_bl.c | 6 +-
drivers/video/backlight/apple_bl.c | 3 +-
drivers/video/backlight/arcxcnn_bl.c | 4 +-
drivers/video/backlight/bd6107.c | 5 +-
drivers/video/backlight/lm3630a_bl.c | 5 +-
drivers/video/backlight/lm3639_bl.c | 5 +-
drivers/video/backlight/lp855x_bl.c | 5 +-
drivers/video/backlight/lv5207lp.c | 5 +-
drivers/video/backlight/tosa_bl.c | 5 +-
drivers/video/fbdev/Kconfig | 2 +-
drivers/video/fbdev/controlfb.c | 2 +-
drivers/video/fbdev/core/fb_defio.c | 4 -
drivers/video/fbdev/core/fbcon.c | 5 +-
drivers/video/fbdev/da8xx-fb.c | 7 +-
drivers/video/fbdev/ep93xx-fb.c | 4 +-
drivers/video/fbdev/geode/Kconfig | 1 +
drivers/video/fbdev/hyperv_fb.c | 16 +-
drivers/video/fbdev/matrox/matroxfb_maven.c | 5 +-
.../omap2/omapfb/displays/connector-analog-tv.c | 60 +-
.../fbdev/omap2/omapfb/displays/connector-hdmi.c | 49 +-
.../fbdev/omap2/omapfb/displays/encoder-opa362.c | 4 +-
.../fbdev/omap2/omapfb/displays/encoder-tfp410.c | 67 +-
.../video/fbdev/omap2/omapfb/displays/panel-dpi.c | 83 +-
.../fbdev/omap2/omapfb/displays/panel-dsi-cm.c | 116 +-
.../omapfb/displays/panel-lgphilips-lb035q02.c | 21 +-
.../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 72 +-
.../omapfb/displays/panel-sharp-ls037v7dw01.c | 3 +-
.../omap2/omapfb/displays/panel-sony-acx565akm.c | 105 +-
.../omap2/omapfb/displays/panel-tpo-td028ttec1.c | 1 -
.../omap2/omapfb/displays/panel-tpo-td043mtea1.c | 59 +-
drivers/video/fbdev/omap2/omapfb/dss/hdmi5_core.c | 2 -
drivers/video/fbdev/pm2fb.c | 9 +-
drivers/video/fbdev/pxafb.c | 1 -
drivers/video/fbdev/sh_mobile_lcdcfb.c | 8 +-
drivers/video/fbdev/smscufx.c | 46 +-
drivers/video/fbdev/ssd1307fb.c | 12 +-
drivers/video/fbdev/uvesafb.c | 39 +-
drivers/video/fbdev/vermilion/vermilion.c | 4 +-
drivers/video/fbdev/via/via-core.c | 9 +-
drivers/video/fbdev/xen-fbfront.c | 12 +-
drivers/virt/Kconfig | 2 +
drivers/virt/Makefile | 1 +
drivers/virt/coco/sev-guest/sev-guest.c | 89 +-
drivers/virt/coco/tdx-guest/Kconfig | 10 +
drivers/virt/coco/tdx-guest/Makefile | 2 +
drivers/virt/coco/tdx-guest/tdx-guest.c | 102 +
drivers/virt/fsl_hypervisor.c | 2 +-
drivers/watchdog/Kconfig | 7 +
drivers/watchdog/Makefile | 1 +
drivers/watchdog/advantech_ec_wdt.c | 205 +
drivers/watchdog/aspeed_wdt.c | 104 +-
drivers/watchdog/at91rm9200_wdt.c | 11 +-
drivers/watchdog/db8500_wdt.c | 9 +-
drivers/watchdog/iTCO_wdt.c | 21 +-
drivers/watchdog/kempld_wdt.c | 11 +-
drivers/watchdog/mtk_wdt.c | 12 +
drivers/watchdog/ni903x_wdt.c | 4 +-
drivers/watchdog/omap_wdt.c | 11 +-
drivers/watchdog/rn5t618_wdt.c | 12 +
drivers/watchdog/twl4030_wdt.c | 9 +-
drivers/xen/grant-dma-ops.c | 105 +-
drivers/xen/privcmd.c | 2 +-
drivers/xen/pvcalls-back.c | 8 +-
drivers/xen/xen-acpi-pad.c | 3 +-
fs/9p/acl.c | 295 +-
fs/9p/acl.h | 8 +-
fs/9p/fid.c | 1 -
fs/9p/v9fs.c | 1 -
fs/9p/vfs_addr.c | 5 +-
fs/9p/vfs_dentry.c | 1 -
fs/9p/vfs_dir.c | 3 +-
fs/9p/vfs_file.c | 1 -
fs/9p/vfs_inode.c | 1 -
fs/9p/vfs_inode_dotl.c | 5 +-
fs/9p/vfs_super.c | 1 -
fs/9p/xattr.c | 11 +-
fs/9p/xattr.h | 2 -
fs/afs/cmservice.c | 2 +-
fs/afs/dir.c | 3 +-
fs/afs/file.c | 7 +-
fs/afs/fs_probe.c | 9 +-
fs/afs/internal.h | 12 +-
fs/afs/rxrpc.c | 10 +-
fs/afs/server.c | 2 +-
fs/afs/volume.c | 6 +-
fs/afs/write.c | 87 +-
fs/aio.c | 4 +-
fs/attr.c | 74 +-
fs/bad_inode.c | 4 +-
fs/binfmt_elf.c | 299 +-
fs/binfmt_elf_fdpic.c | 7 +-
fs/binfmt_misc.c | 8 +-
fs/btrfs/Makefile | 6 +-
fs/btrfs/{struct-funcs.c => accessors.c} | 12 +-
fs/btrfs/accessors.h | 1073 +
fs/btrfs/acl.c | 5 +-
fs/btrfs/acl.h | 27 +
fs/btrfs/backref.c | 1001 +-
fs/btrfs/backref.h | 195 +-
fs/btrfs/bio.c | 381 +
fs/btrfs/bio.h | 127 +
fs/btrfs/block-group.c | 152 +-
fs/btrfs/block-group.h | 30 +-
fs/btrfs/block-rsv.c | 43 +-
fs/btrfs/block-rsv.h | 6 +-
fs/btrfs/btrfs_inode.h | 161 +-
fs/btrfs/check-integrity.c | 4 +-
fs/btrfs/compression.c | 18 +-
fs/btrfs/compression.h | 11 +-
fs/btrfs/ctree.c | 347 +-
fs/btrfs/ctree.h | 3927 +-
fs/btrfs/defrag.c | 1376 +
fs/btrfs/defrag.h | 22 +
fs/btrfs/delalloc-space.c | 61 +-
fs/btrfs/delalloc-space.h | 3 +
fs/btrfs/delayed-inode.c | 17 +-
fs/btrfs/delayed-inode.h | 2 +-
fs/btrfs/delayed-ref.c | 21 +-
fs/btrfs/dev-replace.c | 28 +-
fs/btrfs/dev-replace.h | 8 +
fs/btrfs/dir-item.c | 60 +-
fs/btrfs/dir-item.h | 42 +
fs/btrfs/discard.c | 112 +-
fs/btrfs/disk-io.c | 247 +-
fs/btrfs/disk-io.h | 35 +-
fs/btrfs/export.c | 25 +-
fs/btrfs/export.h | 3 +-
fs/btrfs/extent-io-tree.c | 192 +-
fs/btrfs/extent-io-tree.h | 100 +-
fs/btrfs/extent-tree.c | 55 +-
fs/btrfs/extent-tree.h | 78 +
fs/btrfs/extent_io.c | 482 +-
fs/btrfs/extent_io.h | 67 +-
fs/btrfs/extent_map.c | 75 +-
fs/btrfs/file-item.c | 258 +-
fs/btrfs/file-item.h | 69 +
fs/btrfs/file.c | 621 +-
fs/btrfs/file.h | 33 +
fs/btrfs/free-space-cache.c | 52 +-
fs/btrfs/free-space-cache.h | 13 +
fs/btrfs/free-space-tree.c | 15 +-
fs/btrfs/fs.c | 94 +
fs/btrfs/fs.h | 976 +
fs/btrfs/inode-item.c | 79 +-
fs/btrfs/inode-item.h | 20 +-
fs/btrfs/inode.c | 912 +-
fs/btrfs/ioctl.c | 972 +-
fs/btrfs/ioctl.h | 17 +
fs/btrfs/locking.c | 1 +
fs/btrfs/locking.h | 76 +
fs/btrfs/lzo.c | 4 +-
fs/btrfs/messages.c | 353 +
fs/btrfs/messages.h | 245 +
fs/btrfs/misc.h | 24 +-
fs/btrfs/ordered-data.c | 31 +-
fs/btrfs/ordered-data.h | 3 +-
fs/btrfs/orphan.c | 1 +
fs/btrfs/orphan.h | 11 +
fs/btrfs/print-tree.c | 21 +-
fs/btrfs/props.c | 8 +-
fs/btrfs/props.h | 2 +-
fs/btrfs/qgroup.c | 87 +-
fs/btrfs/qgroup.h | 11 +-
fs/btrfs/raid56.c | 2066 +-
fs/btrfs/raid56.h | 33 +-
fs/btrfs/rcu-string.h | 6 +-
fs/btrfs/ref-verify.c | 3 +
fs/btrfs/reflink.c | 30 +-
fs/btrfs/relocation.c | 94 +-
fs/btrfs/relocation.h | 23 +
fs/btrfs/root-tree.c | 24 +-
fs/btrfs/root-tree.h | 34 +
fs/btrfs/scrub.c | 75 +-
fs/btrfs/scrub.h | 16 +
fs/btrfs/send.c | 523 +-
fs/btrfs/send.h | 6 +-
fs/btrfs/space-info.c | 86 +-
fs/btrfs/space-info.h | 78 +
fs/btrfs/subpage.c | 1 +
fs/btrfs/super.c | 554 +-
fs/btrfs/super.h | 29 +
fs/btrfs/sysfs.c | 23 +-
fs/btrfs/tests/btrfs-tests.c | 3 +-
fs/btrfs/tests/extent-buffer-tests.c | 1 +
fs/btrfs/tests/extent-io-tests.c | 4 +-
fs/btrfs/tests/free-space-tree-tests.c | 3 +-
fs/btrfs/tests/inode-tests.c | 58 +-
fs/btrfs/tests/qgroup-tests.c | 52 +-
fs/btrfs/transaction.c | 92 +-
fs/btrfs/transaction.h | 22 +-
fs/btrfs/tree-checker.c | 10 +-
fs/btrfs/tree-checker.h | 35 +-
fs/btrfs/tree-defrag.c | 132 -
fs/btrfs/tree-log.c | 511 +-
fs/btrfs/tree-log.h | 5 +-
fs/btrfs/tree-mod-log.c | 36 +-
fs/btrfs/tree-mod-log.h | 4 +-
fs/btrfs/ulist.c | 38 +-
fs/btrfs/ulist.h | 2 +-
fs/btrfs/uuid-tree.c | 5 +-
fs/btrfs/uuid-tree.h | 12 +
fs/btrfs/verity.c | 6 +
fs/btrfs/verity.h | 28 +
fs/btrfs/volumes.c | 454 +-
fs/btrfs/volumes.h | 116 +-
fs/btrfs/xattr.c | 4 +
fs/btrfs/zlib.c | 6 +-
fs/btrfs/zoned.c | 27 +-
fs/btrfs/zoned.h | 1 +
fs/btrfs/zstd.c | 4 +-
fs/cachefiles/io.c | 77 +-
fs/ceph/acl.c | 3 +-
fs/ceph/addr.c | 6 +-
fs/ceph/caps.c | 25 +-
fs/ceph/dir.c | 2 +-
fs/ceph/file.c | 30 +-
fs/ceph/inode.c | 12 +-
fs/ceph/ioctl.c | 2 +-
fs/ceph/locks.c | 4 +-
fs/ceph/mdsmap.c | 2 +-
fs/ceph/super.h | 7 +-
fs/char_dev.c | 15 +-
fs/cifs/Makefile | 2 +-
fs/cifs/cifs_debug.c | 8 +
fs/cifs/cifs_dfs_ref.c | 255 +-
fs/cifs/cifs_ioctl.h | 2 +-
fs/cifs/cifs_spnego.c | 2 +-
fs/cifs/cifsacl.c | 141 +-
fs/cifs/cifsfs.c | 22 +-
fs/cifs/cifsfs.h | 8 +-
fs/cifs/cifsglob.h | 94 +-
fs/cifs/cifspdu.h | 50 +-
fs/cifs/cifsproto.h | 40 +-
fs/cifs/cifssmb.c | 206 +-
fs/cifs/connect.c | 906 +-
fs/cifs/dfs.c | 544 +
fs/cifs/dfs.h | 46 +
fs/cifs/dfs_cache.c | 276 +-
fs/cifs/dfs_cache.h | 2 +-
fs/cifs/dir.c | 21 +-
fs/cifs/dns_resolve.c | 49 +-
fs/cifs/dns_resolve.h | 4 +-
fs/cifs/file.c | 42 +-
fs/cifs/fs_context.c | 24 +-
fs/cifs/fs_context.h | 3 +-
fs/cifs/fscache.c | 4 +-
fs/cifs/inode.c | 19 +-
fs/cifs/misc.c | 85 +-
fs/cifs/sess.c | 4 +-
fs/cifs/smb2file.c | 4 +-
fs/cifs/smb2inode.c | 112 +-
fs/cifs/smb2ops.c | 211 +-
fs/cifs/smb2proto.h | 5 +-
fs/cifs/transport.c | 6 +-
fs/cifs/xattr.c | 68 +-
fs/configfs/dir.c | 2 +
fs/coredump.c | 19 +-
fs/crypto/fscrypt_private.h | 13 +-
fs/crypto/inline_crypt.c | 14 +-
fs/crypto/keyring.c | 14 +-
fs/crypto/keysetup.c | 17 +-
fs/crypto/policy.c | 12 +
fs/dax.c | 221 +-
fs/debugfs/file.c | 28 +-
fs/dlm/ast.c | 322 +-
fs/dlm/ast.h | 17 +-
fs/dlm/config.c | 4 +-
fs/dlm/debug_fs.c | 2 +-
fs/dlm/dlm_internal.h | 25 +-
fs/dlm/lock.c | 190 +-
fs/dlm/lockspace.c | 14 +-
fs/dlm/lowcomms.c | 1540 +-
fs/dlm/lowcomms.h | 6 +-
fs/dlm/main.c | 7 +-
fs/dlm/member.c | 5 +-
fs/dlm/memory.c | 30 +-
fs/dlm/memory.h | 4 +-
fs/dlm/midcomms.c | 141 +-
fs/dlm/midcomms.h | 7 +-
fs/dlm/rcom.c | 4 +-
fs/dlm/requestqueue.c | 3 +-
fs/dlm/user.c | 74 +-
fs/dlm/user.h | 2 +-
fs/ecryptfs/inode.c | 32 +
fs/efivarfs/inode.c | 4 +
fs/efivarfs/super.c | 3 +
fs/erofs/data.c | 10 +-
fs/erofs/fscache.c | 412 +-
fs/erofs/inode.c | 8 +-
fs/erofs/internal.h | 13 +-
fs/erofs/namei.c | 2 +-
fs/erofs/super.c | 2 +-
fs/erofs/xattr.c | 8 +-
fs/erofs/zdata.c | 80 +-
fs/erofs/zmap.c | 15 +-
fs/eventfd.c | 37 +-
fs/eventpoll.c | 18 +-
fs/exec.c | 50 +-
fs/exfat/dir.c | 184 +-
fs/exfat/exfat_fs.h | 56 +-
fs/exfat/file.c | 12 +-
fs/exfat/inode.c | 26 +-
fs/exfat/namei.c | 63 +-
fs/exportfs/expfs.c | 8 +-
fs/ext2/acl.c | 3 +-
fs/ext2/acl.h | 2 +-
fs/ext2/balloc.c | 12 +-
fs/ext2/dir.c | 41 +-
fs/ext2/file.c | 2 +-
fs/ext2/ialloc.c | 2 +-
fs/ext2/inode.c | 8 +-
fs/ext2/namei.c | 4 +-
fs/ext2/super.c | 2 +-
fs/ext4/acl.c | 3 +-
fs/ext4/acl.h | 2 +-
fs/ext4/ext4.h | 13 +-
fs/ext4/ext4_jbd2.c | 14 +-
fs/ext4/ext4_jbd2.h | 10 +-
fs/ext4/extents.c | 34 +-
fs/ext4/extents_status.c | 11 +-
fs/ext4/fast_commit.c | 205 +-
fs/ext4/fast_commit.h | 3 +-
fs/ext4/file.c | 2 +-
fs/ext4/ialloc.c | 8 +-
fs/ext4/indirect.c | 9 +-
fs/ext4/inline.c | 3 +-
fs/ext4/inode.c | 254 +-
fs/ext4/ioctl.c | 24 +-
fs/ext4/mballoc.c | 10 +-
fs/ext4/mmp.c | 8 +-
fs/ext4/move_extent.c | 52 +-
fs/ext4/namei.c | 51 +-
fs/ext4/orphan.c | 2 +-
fs/ext4/page-io.c | 44 +-
fs/ext4/readpage.c | 13 +-
fs/ext4/resize.c | 36 +-
fs/ext4/super.c | 67 +-
fs/ext4/verity.c | 2 +-
fs/ext4/xattr.c | 22 +-
fs/f2fs/acl.c | 4 +-
fs/f2fs/acl.h | 2 +-
fs/f2fs/checkpoint.c | 9 +-
fs/f2fs/compress.c | 112 +-
fs/f2fs/data.c | 107 +-
fs/f2fs/debug.c | 131 +-
fs/f2fs/dir.c | 36 +-
fs/f2fs/extent_cache.c | 693 +-
fs/f2fs/f2fs.h | 278 +-
fs/f2fs/file.c | 50 +-
fs/f2fs/gc.c | 81 +-
fs/f2fs/inode.c | 20 +-
fs/f2fs/namei.c | 395 +-
fs/f2fs/node.c | 19 +-
fs/f2fs/node.h | 3 +-
fs/f2fs/recovery.c | 4 +-
fs/f2fs/segment.c | 209 +-
fs/f2fs/segment.h | 6 -
fs/f2fs/shrinker.c | 25 +-
fs/f2fs/super.c | 126 +-
fs/f2fs/sysfs.c | 164 +-
fs/fat/inode.c | 9 +-
fs/fat/nfs.c | 4 +-
fs/file.c | 11 +-
fs/fs-writeback.c | 47 +-
fs/fs_parser.c | 3 +-
fs/fscache/cookie.c | 8 +
fs/fscache/io.c | 2 +-
fs/fscache/volume.c | 7 +-
fs/fuse/acl.c | 5 +-
fs/fuse/cuse.c | 5 +-
fs/fuse/dev.c | 62 +-
fs/fuse/dir.c | 47 +-
fs/fuse/file.c | 82 +-
fs/fuse/fuse_i.h | 6 +-
fs/fuse/ioctl.c | 4 +-
fs/fuse/readdir.c | 4 +-
fs/gfs2/acl.c | 3 +-
fs/gfs2/acl.h | 2 +-
fs/gfs2/aops.c | 2 -
fs/gfs2/bmap.c | 3 -
fs/gfs2/file.c | 3 +-
fs/gfs2/glock.c | 269 +-
fs/gfs2/glock.h | 65 +-
fs/gfs2/glops.c | 44 +-
fs/gfs2/incore.h | 1 -
fs/gfs2/inode.c | 70 +-
fs/gfs2/meta_io.c | 6 +
fs/gfs2/super.c | 84 +-
fs/gfs2/xattr.c | 26 +-
fs/hfs/inode.c | 4 +-
fs/hfs/trans.c | 2 +-
fs/hfsplus/hfsplus_fs.h | 2 +
fs/hfsplus/inode.c | 6 +-
fs/hfsplus/options.c | 4 +
fs/hpfs/file.c | 9 +-
fs/hugetlbfs/inode.c | 28 +-
fs/inode.c | 75 +-
fs/internal.h | 35 +-
fs/iomap/buffered-io.c | 254 +-
fs/iomap/direct-io.c | 3 +-
fs/iomap/iter.c | 19 +-
fs/jbd2/commit.c | 5 +-
fs/jffs2/acl.c | 3 +-
fs/jffs2/acl.h | 2 +-
fs/jffs2/dir.c | 2 +-
fs/jffs2/file.c | 2 +-
fs/jffs2/fs.c | 2 +-
fs/jfs/acl.c | 3 +-
fs/jfs/file.c | 4 +-
fs/jfs/inode.c | 7 +-
fs/jfs/jfs_acl.h | 2 +-
fs/jfs/jfs_dmap.c | 27 +-
fs/jfs/jfs_extent.h | 2 -
fs/jfs/jfs_imap.c | 2 +-
fs/jfs/jfs_mount.c | 4 +
fs/jfs/jfs_umount.c | 4 +-
fs/jfs/jfs_xattr.h | 2 +-
fs/jfs/jfs_xtree.h | 4 -
fs/jfs/namei.c | 4 +-
fs/jfs/super.c | 6 +-
fs/kernfs/dir.c | 106 +-
fs/kernfs/file.c | 18 +-
fs/kernfs/inode.c | 12 +-
fs/kernfs/kernfs-internal.h | 2 +-
fs/kernfs/mount.c | 10 +-
fs/kernfs/symlink.c | 2 +-
fs/ksmbd/ksmbd_netlink.h | 1 +
fs/ksmbd/mgmt/user_session.c | 8 +-
fs/ksmbd/server.c | 20 +-
fs/ksmbd/smb2ops.c | 10 +-
fs/ksmbd/smb2pdu.c | 28 +-
fs/ksmbd/smb2pdu.h | 2 +-
fs/ksmbd/smb_common.c | 2 +-
fs/ksmbd/smb_common.h | 12 +-
fs/ksmbd/smbacl.c | 6 +-
fs/ksmbd/vfs.c | 29 +-
fs/ksmbd/vfs.h | 4 +-
fs/libfs.c | 22 +-
fs/lockd/svc4proc.c | 1 +
fs/lockd/svclock.c | 17 +-
fs/lockd/svcproc.c | 1 +
fs/lockd/svcsubs.c | 21 +-
fs/locks.c | 50 +-
fs/mbcache.c | 14 +-
fs/namei.c | 49 +-
fs/namespace.c | 179 +-
fs/netfs/io.c | 6 +-
fs/nfs/Kconfig | 8 +-
fs/nfs/delegation.c | 2 +-
fs/nfs/dir.c | 32 +-
fs/nfs/flexfilelayout/flexfilelayout.c | 4 +-
fs/nfs/fs_context.c | 6 +
fs/nfs/fscache.c | 4 +-
fs/nfs/inode.c | 3 +-
fs/nfs/internal.h | 6 +-
fs/nfs/namespace.c | 4 +-
fs/nfs/nfs3_fs.h | 2 +-
fs/nfs/nfs3acl.c | 9 +-
fs/nfs/nfs3proc.c | 4 +-
fs/nfs/nfs42xdr.c | 9 +-
fs/nfs/nfs4_fs.h | 1 +
fs/nfs/nfs4file.c | 12 +-
fs/nfs/nfs4idmap.c | 2 +-
fs/nfs/nfs4proc.c | 57 +-
fs/nfs/nfs4state.c | 7 +-
fs/nfs/nfs4trace.h | 10 +-
fs/nfs/nfs4xdr.c | 22 +-
fs/nfs/nfstrace.h | 6 +-
fs/nfs/pagelist.c | 2 +-
fs/nfs/sysfs.c | 6 +-
fs/nfs/unlink.c | 1 +
fs/nfs/write.c | 4 +-
fs/nfsd/Kconfig | 19 +-
fs/nfsd/Makefile | 5 +-
fs/nfsd/blocklayout.c | 1 +
fs/nfsd/blocklayoutxdr.c | 1 +
fs/nfsd/export.h | 1 -
fs/nfsd/filecache.c | 499 +-
fs/nfsd/filecache.h | 4 +-
fs/nfsd/flexfilelayout.c | 1 +
fs/nfsd/nfs2acl.c | 18 +-
fs/nfsd/nfs3acl.c | 38 +-
fs/nfsd/nfs3proc.c | 10 +-
fs/nfsd/nfs4acl.c | 4 +-
fs/nfsd/nfs4callback.c | 78 +-
fs/nfsd/nfs4idmap.c | 1 +
fs/nfsd/nfs4proc.c | 69 +-
fs/nfsd/nfs4state.c | 347 +-
fs/nfsd/nfs4xdr.c | 771 +-
fs/nfsd/nfsctl.c | 6 +-
fs/nfsd/nfsd.h | 3 +-
fs/nfsd/nfsfh.h | 10 +-
fs/nfsd/nfsproc.c | 66 +-
fs/nfsd/nfssvc.c | 8 +-
fs/nfsd/state.h | 11 +-
fs/nfsd/trace.h | 191 +-
fs/nfsd/vfs.c | 102 +-
fs/nfsd/vfs.h | 4 +-
fs/nfsd/xdr4.h | 5 +
fs/nfsd/xdr4cb.h | 6 +
fs/nilfs2/dat.c | 7 +
fs/nilfs2/segment.c | 2 +-
fs/nilfs2/sufile.c | 8 +
fs/nilfs2/the_nilfs.c | 73 +-
fs/ntfs3/attrib.c | 392 +-
fs/ntfs3/attrlist.c | 5 +
fs/ntfs3/bitfunc.c | 4 +-
fs/ntfs3/bitmap.c | 168 +-
fs/ntfs3/dir.c | 4 +-
fs/ntfs3/file.c | 207 +-
fs/ntfs3/frecord.c | 40 +-
fs/ntfs3/fslog.c | 62 +-
fs/ntfs3/fsntfs.c | 190 +-
fs/ntfs3/index.c | 127 +-
fs/ntfs3/inode.c | 203 +-
fs/ntfs3/namei.c | 242 +-
fs/ntfs3/ntfs.h | 6 +-
fs/ntfs3/ntfs_fs.h | 45 +-
fs/ntfs3/record.c | 13 +
fs/ntfs3/run.c | 28 +-
fs/ntfs3/super.c | 143 +-
fs/ntfs3/upcase.c | 12 +
fs/ntfs3/xattr.c | 167 +-
fs/ocfs2/acl.c | 3 +-
fs/ocfs2/acl.h | 2 +-
fs/ocfs2/cluster/heartbeat.c | 38 +-
fs/ocfs2/cluster/heartbeat.h | 2 +-
fs/ocfs2/cluster/netdebug.c | 2 +-
fs/ocfs2/cluster/nodemanager.c | 2 +-
fs/ocfs2/cluster/tcp.c | 9 +-
fs/ocfs2/dlm/dlmcommon.h | 2 +-
fs/ocfs2/dlm/dlmdomain.c | 19 +-
fs/ocfs2/dlm/dlmmaster.c | 30 +-
fs/ocfs2/dlm/dlmrecovery.c | 2 +-
fs/ocfs2/file.c | 8 +-
fs/ocfs2/journal.c | 2 +-
fs/ocfs2/journal.h | 1 +
fs/ocfs2/namei.c | 2 +-
fs/ocfs2/ocfs2.h | 3 +-
fs/ocfs2/stack_o2cb.c | 6 +-
fs/ocfs2/stackglue.c | 8 +-
fs/ocfs2/super.c | 5 +-
fs/omfs/file.c | 7 +-
fs/open.c | 10 +-
fs/orangefs/acl.c | 47 +-
fs/orangefs/file.c | 1 -
fs/orangefs/inode.c | 64 +-
fs/orangefs/namei.c | 2 +-
fs/orangefs/orangefs-debugfs.c | 29 +-
fs/orangefs/orangefs-kernel.h | 7 +-
fs/orangefs/orangefs-mod.c | 8 +-
fs/orangefs/orangefs-sysfs.c | 71 +-
fs/overlayfs/Kconfig | 2 +-
fs/overlayfs/copy_up.c | 38 +
fs/overlayfs/dir.c | 68 +-
fs/overlayfs/export.c | 8 +-
fs/overlayfs/file.c | 31 +-
fs/overlayfs/inode.c | 187 +-
fs/overlayfs/namei.c | 12 +-
fs/overlayfs/overlayfs.h | 53 +-
fs/overlayfs/readdir.c | 58 +-
fs/overlayfs/super.c | 114 +-
fs/overlayfs/util.c | 15 +-
fs/pnode.c | 2 +-
fs/posix_acl.c | 727 +-
fs/proc/cmdline.c | 6 +-
fs/proc/consoles.c | 21 +-
fs/proc/fd.c | 45 +
fs/proc/kcore.c | 33 +-
fs/proc/meminfo.c | 2 +-
fs/proc/page.c | 3 +-
fs/proc/task_mmu.c | 16 +-
fs/proc/vmcore.c | 7 +-
fs/pstore/Kconfig | 1 +
fs/pstore/platform.c | 25 +-
fs/pstore/pmsg.c | 9 +-
fs/pstore/ram.c | 46 +-
fs/pstore/ram_core.c | 20 +-
fs/pstore/ram_internal.h | 98 +
fs/pstore/zone.c | 2 +-
fs/quota/dquot.c | 2 +
fs/read_write.c | 31 +-
fs/reiserfs/acl.h | 6 +-
fs/reiserfs/file.c | 2 +-
fs/reiserfs/inode.c | 2 +-
fs/reiserfs/namei.c | 8 +-
fs/reiserfs/xattr_acl.c | 11 +-
fs/reiserfs/xattr_security.c | 2 +-
fs/remap_range.c | 9 +-
fs/seq_file.c | 2 +-
fs/splice.c | 10 +-
fs/squashfs/Kconfig | 51 +-
fs/squashfs/block.c | 2 +-
fs/squashfs/decompressor.c | 2 +-
fs/squashfs/decompressor_multi.c | 20 +-
fs/squashfs/decompressor_multi_percpu.c | 23 +-
fs/squashfs/decompressor_single.c | 15 +-
fs/squashfs/squashfs.h | 23 +-
fs/squashfs/squashfs_fs_sb.h | 4 +-
fs/squashfs/super.c | 102 +-
fs/stat.c | 7 +-
fs/super.c | 60 +-
fs/sysv/itree.c | 2 +-
fs/ubifs/debug.c | 8 +-
fs/ubifs/lpt_commit.c | 14 +-
fs/ubifs/tnc_commit.c | 2 +-
fs/udf/inode.c | 83 +-
fs/udf/namei.c | 8 +-
fs/udf/super.c | 4 +-
fs/udf/truncate.c | 48 +-
fs/udf/udf_sb.h | 6 +-
fs/verity/fsverity_private.h | 5 +
fs/verity/hash_algs.c | 6 +
fs/verity/measure.c | 19 +-
fs/verity/verify.c | 12 +-
fs/xattr.c | 440 +-
fs/xfs/libxfs/xfs_alloc.c | 2 +-
fs/xfs/libxfs/xfs_bmap.c | 8 +-
fs/xfs/libxfs/xfs_btree.h | 1 -
fs/xfs/libxfs/xfs_errortag.h | 18 +-
fs/xfs/libxfs/xfs_ialloc.c | 2 +-
fs/xfs/libxfs/xfs_refcount.c | 146 +-
fs/xfs/libxfs/xfs_sb.c | 4 +-
fs/xfs/scrub/agheader.c | 47 +-
fs/xfs/scrub/agheader_repair.c | 81 +-
fs/xfs/scrub/attr.c | 11 +-
fs/xfs/scrub/bitmap.c | 11 +-
fs/xfs/scrub/bmap.c | 147 +-
fs/xfs/scrub/btree.c | 14 +-
fs/xfs/scrub/common.c | 48 +-
fs/xfs/scrub/common.h | 2 +-
fs/xfs/scrub/dabtree.c | 4 +-
fs/xfs/scrub/dir.c | 10 +-
fs/xfs/scrub/fscounters.c | 109 +-
fs/xfs/scrub/inode.c | 2 +-
fs/xfs/scrub/quota.c | 8 +-
fs/xfs/scrub/refcount.c | 12 +-
fs/xfs/scrub/repair.c | 51 +-
fs/xfs/scrub/scrub.c | 6 +-
fs/xfs/scrub/scrub.h | 18 +-
fs/xfs/scrub/symlink.c | 2 +-
fs/xfs/xfs_acl.c | 3 +-
fs/xfs/xfs_acl.h | 2 +-
fs/xfs/xfs_aops.c | 32 +-
fs/xfs/xfs_bmap_util.c | 10 +-
fs/xfs/xfs_bmap_util.h | 2 +-
fs/xfs/xfs_buf.c | 1 +
fs/xfs/xfs_buf_item.c | 2 +
fs/xfs/xfs_error.c | 48 +-
fs/xfs/xfs_error.h | 13 +
fs/xfs/xfs_file.c | 2 +-
fs/xfs/xfs_fsmap.c | 4 +-
fs/xfs/xfs_icache.c | 6 +
fs/xfs/xfs_inode.c | 2 +-
fs/xfs/xfs_ioctl.c | 4 -
fs/xfs/xfs_iomap.c | 191 +-
fs/xfs/xfs_iomap.h | 6 +-
fs/xfs/xfs_iops.c | 20 +-
fs/xfs/xfs_log.c | 46 +-
fs/xfs/xfs_mount.c | 15 +
fs/xfs/xfs_pnfs.c | 6 +-
fs/xfs/xfs_qm.c | 16 +-
fs/xfs/xfs_reflink.c | 8 +-
fs/xfs/xfs_rtalloc.c | 60 +-
fs/xfs/xfs_super.c | 2 +-
fs/xfs/xfs_trace.c | 2 +
fs/xfs/xfs_trace.h | 86 +
fs/xfs/xfs_trans_ail.c | 4 +-
fs/xfs/xfs_xattr.c | 2 +-
fs/zonefs/super.c | 23 +-
fs/zonefs/zonefs.h | 6 +-
include/acpi/acconfig.h | 2 +
include/acpi/acpi_bus.h | 2 +-
include/acpi/acpixf.h | 132 +-
include/acpi/actbl1.h | 151 +-
include/acpi/actbl2.h | 162 +-
include/acpi/actypes.h | 10 +-
include/acpi/acuuid.h | 3 +-
include/acpi/battery.h | 4 +-
include/acpi/ghes.h | 34 +-
include/acpi/processor.h | 10 +
include/acpi/video.h | 2 +
include/asm-generic/gpio.h | 55 +-
include/asm-generic/hyperv-tlfs.h | 5 +
include/asm-generic/io.h | 80 +-
include/asm-generic/mshyperv.h | 11 +-
include/asm-generic/msi.h | 4 +-
include/asm-generic/tlb.h | 42 +-
include/asm-generic/vmlinux.lds.h | 252 +-
include/clocksource/hyperv_timer.h | 11 +-
include/clocksource/timer-ti-dm.h | 2 -
include/crypto/acompress.h | 1 +
include/crypto/akcipher.h | 7 +-
include/crypto/algapi.h | 43 +-
include/crypto/aria.h | 2 +-
include/crypto/gcm.h | 22 +
include/crypto/internal/acompress.h | 2 +
include/crypto/internal/aead.h | 22 +
include/crypto/internal/akcipher.h | 26 +-
include/crypto/internal/hash.h | 30 +-
include/crypto/internal/kpp.h | 30 +-
include/crypto/internal/scompress.h | 3 +-
include/crypto/internal/skcipher.h | 30 +
include/crypto/kpp.h | 9 +-
include/crypto/scatterwalk.h | 1 -
include/drm/display/drm_dp.h | 15 +-
include/drm/drm_accel.h | 97 +
include/drm/drm_connector.h | 18 +-
include/drm/drm_device.h | 3 +
include/drm/drm_drv.h | 8 +
include/drm/drm_edid.h | 2 +
include/drm/drm_file.h | 21 +-
include/dt-bindings/arm/qcom,ids.h | 170 +
include/dt-bindings/clock/imx8mn-clock.h | 24 +-
include/dt-bindings/clock/imx8mp-clock.h | 12 +-
include/dt-bindings/clock/imx93-clock.h | 4 -
include/dt-bindings/clock/ingenic,jz4755-cgu.h | 49 +
include/dt-bindings/clock/ingenic,x1000-cgu.h | 4 +
include/dt-bindings/clock/qcom,dispcc-sc8280xp.h | 100 +
include/dt-bindings/clock/qcom,dispcc-sm8250.h | 1 +
include/dt-bindings/clock/qcom,gcc-ipq8074.h | 14 +
include/dt-bindings/clock/qcom,sm6375-dispcc.h | 42 +
include/dt-bindings/clock/qcom,sm8550-gcc.h | 231 +
include/dt-bindings/clock/rk3399-cru.h | 6 +-
include/dt-bindings/clock/rockchip,rk3588-cru.h | 766 +
include/dt-bindings/clock/suniv-ccu-f1c100s.h | 2 +
include/dt-bindings/clock/tegra234-clock.h | 639 +-
include/dt-bindings/firmware/imx/rsrc.h | 302 +-
include/dt-bindings/iio/qcom,spmi-adc7-pm8350.h | 90 +-
include/dt-bindings/mailbox/mediatek,mt8188-gce.h | 967 +
include/dt-bindings/media/video-interfaces.h | 16 +
.../dt-bindings/memory/mediatek,mt8365-larb-port.h | 90 +
include/dt-bindings/memory/tegra234-mc.h | 440 +-
include/dt-bindings/phy/phy-qcom-qmp.h | 20 +
include/dt-bindings/pinctrl/mt6795-pinfunc.h | 4 +-
include/dt-bindings/power/qcom-rpmpd.h | 42 +
include/dt-bindings/power/tegra234-powergate.h | 15 +
include/dt-bindings/power/xlnx-zynqmp-power.h | 6 +
include/dt-bindings/reset/mt8188-resets.h | 36 +
include/dt-bindings/reset/rockchip,rk3588-cru.h | 754 +
include/dt-bindings/reset/tegra234-reset.h | 111 +-
include/kunit/assert.h | 74 +-
include/kunit/test-bug.h | 53 +-
include/kunit/test.h | 118 +-
include/kunit/visibility.h | 33 +
include/kvm/arm_pmu.h | 15 +-
include/kvm/arm_vgic.h | 1 +
include/linux/acpi.h | 13 +
include/linux/acpi_apmt.h | 19 +
include/linux/arm_ffa.h | 85 +-
include/linux/ata.h | 31 -
include/linux/avf/virtchnl.h | 14 +-
include/linux/backing-dev.h | 10 +
include/linux/bcm47xx_nvram.h | 6 +
include/linux/bcma/bcma_driver_chipcommon.h | 2 +-
include/linux/bio.h | 5 +-
include/linux/blk-crypto-profile.h | 12 -
include/linux/blk-crypto.h | 14 +-
include/linux/blk-mq.h | 9 +-
include/linux/blk_types.h | 7 -
include/linux/blkdev.h | 32 +-
include/linux/bpf.h | 357 +-
include/linux/bpf_local_storage.h | 17 +-
include/linux/bpf_lsm.h | 6 +
include/linux/bpf_types.h | 1 +
include/linux/bpf_verifier.h | 66 +-
include/linux/btf.h | 150 +-
include/linux/btf_ids.h | 4 +-
include/linux/build_bug.h | 9 +
include/linux/can/platform/sja1000.h | 2 +-
include/linux/cgroup-defs.h | 4 +
include/linux/cgroup.h | 99 +-
include/linux/cgroup_refcnt.h | 96 +
include/linux/clk-provider.h | 2 +
include/linux/compat.h | 2 -
include/linux/compiler-gcc.h | 21 +-
include/linux/compiler.h | 1 +
include/linux/compiler_types.h | 3 +-
include/linux/configfs.h | 3 -
include/linux/console.h | 129 +-
include/linux/container_of.h | 24 +-
include/linux/coredump.h | 2 +-
include/linux/cpufreq.h | 28 +-
include/linux/cpuhotplug.h | 2 +
include/linux/crypto.h | 5 -
include/linux/cxl_err.h | 22 +
include/linux/damon.h | 7 +-
include/linux/dax.h | 2 +
include/linux/debugfs.h | 19 +-
include/linux/devfreq.h | 7 +-
include/linux/device.h | 24 +-
include/linux/device/class.h | 8 +-
include/linux/dsa/8021q.h | 31 +-
include/linux/efi.h | 55 +-
include/linux/elfcore.h | 13 +-
include/linux/ethtool.h | 25 +-
include/linux/eventfd.h | 9 +-
include/linux/evm.h | 49 +
include/linux/fault-inject.h | 7 +-
include/linux/fb.h | 1 -
include/linux/filter.h | 23 +-
include/linux/firmware/xlnx-zynqmp.h | 79 +
include/linux/fixp-arith.h | 1 +
include/linux/fortify-string.h | 148 +-
include/linux/fs.h | 103 +-
include/linux/fs_context.h | 16 +-
include/linux/fs_parser.h | 1 +
include/linux/fscache.h | 2 +-
include/linux/ftrace.h | 47 +-
include/linux/gfp.h | 18 +-
include/linux/gpio.h | 2 +-
include/linux/gpio/aspeed.h | 4 +
include/linux/gpio/consumer.h | 21 -
include/linux/gpio/driver.h | 4 +-
include/linux/gpio/gpio-reg.h | 4 +
include/linux/gpio/machine.h | 1 -
include/linux/gpio/property.h | 11 +
include/linux/highmem.h | 26 +
include/linux/hisi_acc_qm.h | 14 +-
include/linux/host1x.h | 2 +
include/linux/hpet.h | 2 +-
include/linux/htcpld.h | 23 -
include/linux/hugetlb.h | 143 +-
include/linux/hugetlb_cgroup.h | 86 +-
include/linux/hw_random.h | 2 +-
include/linux/hwmon-sysfs.h | 1 +
include/linux/hyperv.h | 4 +-
include/linux/i3c/device.h | 5 +-
include/linux/ieee80211.h | 84 +-
include/linux/ieee802154.h | 24 +
include/linux/if_bridge.h | 1 +
include/linux/if_vlan.h | 9 +-
include/linux/iio/buffer_impl.h | 2 +-
include/linux/iio/common/st_sensors.h | 4 -
include/linux/iio/gyro/itg3200.h | 2 +
include/linux/iio/iio-opaque.h | 2 +
include/linux/iio/iio.h | 5 +-
include/linux/iio/imu/adis.h | 11 +-
include/linux/iio/kfifo_buf.h | 3 +-
include/linux/iio/sysfs.h | 11 +
include/linux/iio/triggered_buffer.h | 6 +-
include/linux/ima.h | 24 +
include/linux/init.h | 3 +
include/linux/intel-svm.h | 13 -
include/linux/interval_tree.h | 58 +
include/linux/io-mapping.h | 4 +-
include/linux/io-pgtable.h | 6 -
include/linux/io_uring.h | 13 +-
include/linux/io_uring_types.h | 5 +
include/linux/iomap.h | 47 +-
include/linux/iommu.h | 170 +-
include/linux/iommufd.h | 98 +
include/linux/ioport.h | 4 +-
include/linux/irqdomain.h | 143 +-
include/linux/irqdomain_defs.h | 31 +
include/linux/irqreturn.h | 8 +-
include/linux/jbd2.h | 2 +-
include/linux/jump_label.h | 21 +-
include/linux/kallsyms.h | 9 +
include/linux/kasan.h | 5 +-
include/linux/kcov.h | 2 +-
include/linux/kernel-page-flags.h | 1 +
include/linux/kexec.h | 7 +-
include/linux/khugepaged.h | 6 +
include/linux/kobject.h | 18 +-
include/linux/kobject_ns.h | 4 +-
include/linux/kvm_dirty_ring.h | 20 +-
include/linux/kvm_host.h | 110 +-
include/linux/kvm_types.h | 1 +
include/linux/libata.h | 7 +-
include/linux/libnvdimm.h | 7 +
include/linux/linkage.h | 4 +-
include/linux/lru_cache.h | 3 -
include/linux/lsm_hook_defs.h | 9 +-
include/linux/lsm_hooks.h | 263 +-
include/linux/mISDNif.h | 2 +-
include/linux/math64.h | 26 +-
include/linux/mbcache.h | 9 +-
include/linux/mdio.h | 13 +
include/linux/memcontrol.h | 31 +-
include/linux/memory-tiers.h | 1 -
include/linux/memory.h | 18 +-
include/linux/mempool.h | 5 +
include/linux/memregion.h | 38 +
include/linux/mfd/dm355evm_msp.h | 79 -
include/linux/mfd/max8997.h | 3 -
include/linux/mfd/palmas.h | 1 -
include/linux/mfd/pcf50633/core.h | 6 +-
include/linux/mfd/rn5t618.h | 9 +
include/linux/mfd/stmfx.h | 2 -
include/linux/mfd/tmio.h | 1 -
include/linux/mfd/tps65219.h | 345 +
include/linux/mfd/twl6040.h | 32 +-
include/linux/minmax.h | 26 +-
include/linux/mlx5/device.h | 13 +-
include/linux/mlx5/driver.h | 3 +-
include/linux/mlx5/fs.h | 12 +
include/linux/mlx5/mlx5_ifc.h | 141 +-
include/linux/mlx5/vport.h | 2 +
include/linux/mm.h | 309 +-
include/linux/mm_types.h | 162 +-
include/linux/mm_types_task.h | 13 -
include/linux/mmc/mmc.h | 2 +-
include/linux/mmzone.h | 26 +-
include/linux/mnt_idmapping.h | 88 +-
include/linux/module.h | 10 +-
include/linux/moduleloader.h | 3 +
include/linux/mount.h | 9 +-
include/linux/msi.h | 357 +-
include/linux/msi_api.h | 73 +
include/linux/mtd/nand.h | 1 -
include/linux/mtd/spi-nor.h | 3 +
include/linux/mv643xx_eth.h | 2 +
include/linux/net.h | 1 +
include/linux/netdevice.h | 103 +-
include/linux/netfilter/ipset/ip_set.h | 10 +
include/linux/netfs.h | 8 +
include/linux/netlink.h | 29 +-
include/linux/nfs4.h | 13 +
include/linux/nfs_fs.h | 1 +
include/linux/nodemask.h | 2 +-
include/linux/nsproxy.h | 1 +
include/linux/nvme.h | 6 +-
include/linux/of.h | 4 +-
include/linux/of_address.h | 11 +
include/linux/of_device.h | 4 +-
include/linux/of_gpio.h | 2 +-
include/linux/of_net.h | 6 +
include/linux/overflow.h | 47 +
include/linux/page-flags.h | 26 +-
include/linux/pagemap.h | 9 +-
include/linux/pagewalk.h | 5 +
include/linux/panic.h | 1 +
include/linux/pci.h | 50 +-
include/linux/pe.h | 9 +-
include/linux/percpu.h | 9 +-
include/linux/percpu_counter.h | 7 +-
include/linux/perf/arm_pmu.h | 3 +-
include/linux/perf_event.h | 125 +-
include/linux/pgtable.h | 119 +-
include/linux/phy.h | 7 +
include/linux/phy/phy-mipi-dphy.h | 3 +
include/linux/phylink.h | 32 +
include/linux/pinctrl/consumer.h | 31 +-
include/linux/pinctrl/devinfo.h | 6 +-
include/linux/pinctrl/machine.h | 8 +-
include/linux/pinctrl/pinconf-generic.h | 29 +-
include/linux/pinctrl/pinctrl.h | 20 +-
include/linux/pinctrl/pinmux.h | 5 +-
include/linux/pktcdvd.h | 197 -
include/linux/platform_data/gpmc-omap.h | 8 +
include/linux/platform_data/gsc_hwmon.h | 5 +-
include/linux/platform_data/simplefb.h | 1 +
include/linux/platform_data/st33zp24.h | 16 -
include/linux/platform_data/x86/pwm-lpss.h | 33 +
include/linux/pm_domain.h | 7 +
include/linux/posix_acl.h | 41 +-
include/linux/posix_acl_xattr.h | 47 +-
include/linux/prandom.h | 21 +-
include/linux/proc_fs.h | 2 +
include/linux/property.h | 94 +-
include/linux/psi_types.h | 4 +
include/linux/pstore_ram.h | 99 -
include/linux/ptp_clock_kernel.h | 60 +-
include/linux/ptrace.h | 9 -
include/linux/pwm.h | 9 +-
include/linux/pxa2xx_ssp.h | 1 +
include/linux/raid/pq.h | 8 -
include/linux/random.h | 104 +-
include/linux/rcupdate.h | 26 +
include/linux/rcutiny.h | 8 +-
include/linux/rcutree.h | 4 +-
include/linux/regmap.h | 49 +
include/linux/regset.h | 15 +-
include/linux/regulator/consumer.h | 10 +
include/linux/regulator/driver.h | 3 +-
include/linux/regulator/mt6357-regulator.h | 51 +
include/linux/regulator/userspace-consumer.h | 1 +
include/linux/resctrl.h | 6 +-
include/linux/rhashtable.h | 61 +-
include/linux/ring_buffer.h | 3 +-
include/linux/rtnetlink.h | 9 +-
include/linux/sbitmap.h | 16 +-
include/linux/sched.h | 8 +-
include/linux/sched/sysctl.h | 6 -
include/linux/sched/task.h | 2 +-
include/linux/sched/user.h | 2 +-
include/linux/scs.h | 18 +
include/linux/sctp.h | 5 +
include/linux/seccomp.h | 1 +
include/linux/security.h | 46 +-
include/linux/sed-opal.h | 3 +-
include/linux/serdev.h | 13 +-
include/linux/serial_core.h | 90 +-
include/linux/set_memory.h | 10 +
include/linux/sfp.h | 189 +-
include/linux/shrinker.h | 3 +
include/linux/skbuff.h | 26 +-
include/linux/skmsg.h | 1 +
include/linux/slab.h | 75 +-
include/linux/slab_def.h | 2 +
include/linux/slub_def.h | 8 +-
include/linux/smc911x.h | 14 -
include/linux/soc/mediatek/mtk-mmsys.h | 7 +
include/linux/soc/mediatek/mtk_wed.h | 121 +-
include/linux/soc/qcom/llcc-qcom.h | 12 +
include/linux/soc/qcom/smd-rpm.h | 2 +
include/linux/socket.h | 5 +-
include/linux/soundwire/sdw_intel.h | 46 +-
include/linux/spi/spi.h | 54 +-
include/linux/srcu.h | 72 +-
include/linux/srcutree.h | 5 +-
include/linux/stackprotector.h | 19 +
include/linux/static_call.h | 2 +
include/linux/stmmac.h | 1 +
include/linux/string.h | 2 +-
include/linux/sunrpc/svc.h | 8 -
include/linux/swap.h | 27 +-
include/linux/swapops.h | 81 +-
include/linux/syscalls.h | 2 +
include/linux/tcp.h | 1 +
include/linux/thermal.h | 1 +
include/linux/time_namespace.h | 6 +
include/linux/timer.h | 35 +-
include/linux/timerqueue.h | 2 +-
include/linux/trace_events.h | 4 +-
include/linux/trace_seq.h | 3 +-
include/linux/tty_buffer.h | 5 +-
include/linux/tty_flip.h | 4 +-
include/linux/udp.h | 8 +-
include/linux/uio.h | 9 +
include/linux/usb.h | 32 +-
include/linux/usb/hcd.h | 3 +
include/linux/usb/typec.h | 4 +
include/linux/vfio.h | 70 +-
include/linux/virtio_net.h | 9 +
include/linux/vm_event_item.h | 3 +
include/linux/wait.h | 2 +-
include/linux/wl12xx.h | 44 -
include/linux/wwan.h | 2 +
include/linux/xattr.h | 50 +-
include/linux/zsmalloc.h | 2 +
include/linux/zstd_lib.h | 479 +-
include/media/davinci/vpbe.h | 2 +-
include/media/dvb_ringbuffer.h | 2 +-
include/media/dvbdev.h | 38 +-
include/media/frame_vector.h | 2 +-
include/media/i2c/ov9650.h | 24 -
include/media/i2c/s5c73m3.h | 15 -
include/media/i2c/s5k4ecgx.h | 33 -
include/media/i2c/ths7303.h | 4 +-
include/media/media-entity.h | 4 +-
include/media/v4l2-mediabus.h | 17 +-
include/media/v4l2-subdev.h | 11 +-
include/media/videobuf2-core.h | 14 +
include/media/videobuf2-memops.h | 3 +-
include/memory/renesas-rpc-if.h | 1 +
include/misc/cxl.h | 2 +-
include/net/9p/9p.h | 2 +
include/net/act_api.h | 11 +-
include/net/af_rxrpc.h | 2 +-
include/net/bluetooth/hci.h | 33 +-
include/net/bluetooth/hci_core.h | 8 +-
include/net/bond_alb.h | 4 +-
include/net/bonding.h | 4 -
include/net/cfg80211-wext.h | 20 +-
include/net/cfg80211.h | 15 +-
include/net/cfg802154.h | 38 +-
include/net/dcbnl.h | 4 +
include/net/devlink.h | 118 +-
include/net/dropreason.h | 14 +
include/net/dsa.h | 76 +-
include/net/dst.h | 5 +-
include/net/dst_metadata.h | 1 +
include/net/flow_offload.h | 8 +
include/net/fq_impl.h | 16 +-
include/net/genetlink.h | 79 +-
include/net/geneve.h | 2 +-
include/net/ieee802154_netdev.h | 8 +
include/net/inet_frag.h | 6 +-
include/net/inet_hashtables.h | 3 +-
include/net/ip_vs.h | 171 +-
include/net/ipv6.h | 33 +
include/net/ipv6_frag.h | 3 +-
include/net/mac80211.h | 78 +-
include/net/mac802154.h | 31 -
.../ethernet/microsoft => include/net}/mana/gdma.h | 163 +-
.../microsoft => include/net}/mana/hw_channel.h | 0
.../ethernet/microsoft => include/net}/mana/mana.h | 25 +-
include/net/mana/mana_auxiliary.h | 10 +
.../microsoft => include/net}/mana/shm_channel.h | 0
include/net/mptcp.h | 12 +-
include/net/mrp.h | 1 +
include/net/neighbour.h | 2 +-
include/net/net_namespace.h | 30 +-
include/net/netfilter/nf_conntrack_core.h | 3 +-
include/net/netfilter/nf_conntrack_helper.h | 5 +
include/net/netfilter/nf_nat.h | 4 +
include/net/netfilter/nf_tables.h | 15 +-
include/net/netfilter/nf_tables_core.h | 36 +-
include/net/netfilter/nf_tables_ipv4.h | 4 +
include/net/netfilter/nf_tables_ipv6.h | 6 +-
include/net/netfilter/nft_fib.h | 2 +-
include/net/netfilter/nft_meta.h | 10 +-
include/net/netfilter/nft_reject.h | 3 +-
include/net/netlink.h | 32 +
include/net/netns/ipv4.h | 8 +
include/net/netns/sctp.h | 4 +
include/net/netns/xdp.h | 2 +-
include/net/nl802154.h | 43 +
include/net/ping.h | 3 -
include/net/rtnetlink.h | 5 +-
include/net/sctp/checksum.h | 2 +-
include/net/sctp/sctp.h | 11 +-
include/net/sctp/stream_sched.h | 4 +-
include/net/sctp/structs.h | 9 +-
include/net/sctp/ulpqueue.h | 3 +-
include/net/sock.h | 18 +-
include/net/sock_reuseport.h | 2 +
include/net/switchdev.h | 1 +
include/net/tc_act/tc_ct.h | 1 +
include/net/tc_act/tc_skbedit.h | 29 +
include/net/tc_wrapper.h | 251 +
include/net/tcp.h | 42 +-
include/net/transp_v6.h | 2 -
include/net/tso.h | 8 +-
include/net/udp.h | 9 +
include/net/udp_tunnel.h | 4 +-
include/net/xfrm.h | 149 +-
include/rdma/ib_pack.h | 5 +
include/rdma/ib_verbs.h | 24 +-
include/rdma/opa_vnic.h | 2 +-
include/scsi/libiscsi.h | 2 +-
include/scsi/libsas.h | 24 +-
include/scsi/sas_ata.h | 13 +-
include/scsi/scsi.h | 1 +
include/scsi/scsi_cmnd.h | 3 +-
include/scsi/scsi_device.h | 2 +-
include/scsi/scsi_host.h | 32 +-
include/scsi/scsi_proto.h | 14 +-
include/scsi/scsi_transport_fc.h | 2 +-
include/scsi/scsi_transport_srp.h | 2 +-
include/scsi/sg.h | 2 +-
include/soc/amlogic/meson_ddr_pmu.h | 66 +
include/soc/fsl/qe/qe.h | 5 +-
include/soc/mscc/ocelot.h | 216 -
include/soc/qcom/qcom-spmi-pmic.h | 17 +-
include/soc/tegra/bpmp-abi.h | 1802 +-
include/soc/tegra/bpmp.h | 17 +-
include/soc/tegra/fuse.h | 15 +
include/soc/tegra/ivc.h | 12 +-
include/soc/tegra/mc.h | 11 +
include/soc/tegra/pmc.h | 6 +-
...chip_offset_byte.h => acp63_chip_offset_byte.h} | 216 +-
include/sound/hda_codec.h | 1 +
include/sound/hdaudio.h | 27 +
include/sound/hdaudio_ext.h | 71 +-
include/sound/hdmi-codec.h | 4 +
include/sound/pcm.h | 36 +-
include/sound/sdw.h | 49 +
include/sound/simple_card_utils.h | 2 -
include/sound/soc-dapm.h | 188 +-
include/sound/soc-dpcm.h | 2 -
include/sound/sof.h | 10 +-
include/sound/sof/dai-amd.h | 1 +
include/sound/sof/dai.h | 4 +-
include/sound/sof/ipc4/header.h | 4 +
include/sound/tlv320aic3x.h | 65 -
include/target/target_core_base.h | 19 +-
include/trace/bpf_probe.h | 6 +
include/trace/events/btrfs.h | 27 +-
include/trace/events/cachefiles.h | 27 +-
include/trace/events/clk.h | 43 +
include/trace/events/cxl.h | 112 +
include/trace/events/dlm.h | 303 +
include/trace/events/ext4.h | 64 +-
include/trace/events/f2fs.h | 176 +-
include/trace/events/fscache.h | 2 +
include/trace/events/huge_memory.h | 46 +-
include/trace/events/ib_mad.h | 13 +-
include/trace/events/iocost.h | 4 +-
include/trace/events/jbd2.h | 44 +-
include/trace/events/kmem.h | 8 +-
include/trace/events/mmflags.h | 9 +-
include/trace/events/pwm.h | 20 +-
include/trace/events/rpcgss.h | 2 +-
include/trace/events/rpcrdma.h | 4 +-
include/trace/events/rwmmio.h | 43 +-
include/trace/events/rxrpc.h | 821 +-
include/trace/events/skb.h | 2 +-
include/trace/events/sunrpc.h | 6 +-
include/trace/events/vmalloc.h | 123 +
include/trace/{events => misc}/fs.h | 0
include/trace/{events => misc}/nfs.h | 12 +
include/trace/{events => misc}/rdma.h | 0
.../trace/{events/sunrpc_base.h => misc/sunrpc.h} | 0
include/trace/perf.h | 6 +
include/trace/stages/stage1_struct_define.h | 6 +
include/trace/stages/stage2_data_offsets.h | 6 +
include/trace/stages/stage3_trace_output.h | 6 +
include/trace/stages/stage4_event_fields.h | 12 +
include/trace/stages/stage5_get_offsets.h | 6 +
include/trace/stages/stage6_event_callback.h | 20 +
include/trace/stages/stage7_class_define.h | 2 +
include/uapi/asm-generic/types.h | 6 +-
include/uapi/drm/amdgpu_drm.h | 6 +
include/uapi/drm/ivpu_accel.h | 306 +
include/uapi/drm/msm_drm.h | 1 +
include/uapi/linux/acrn.h | 5 +-
include/uapi/linux/aspeed-video.h | 14 +
include/uapi/linux/bpf.h | 524 +-
include/uapi/linux/btrfs.h | 36 +-
include/uapi/linux/btrfs_tree.h | 235 +
include/uapi/linux/dcbnl.h | 8 +
include/uapi/linux/devlink.h | 18 +
include/uapi/linux/dvb/audio.h | 15 -
include/uapi/linux/dvb/ca.h | 15 -
include/uapi/linux/dvb/dmx.h | 15 -
include/uapi/linux/dvb/frontend.h | 77 +-
include/uapi/linux/dvb/net.h | 15 -
include/uapi/linux/dvb/osd.h | 15 -
include/uapi/linux/dvb/version.h | 15 -
include/uapi/linux/dvb/video.h | 15 -
include/uapi/linux/elf.h | 14 +-
include/uapi/linux/ethtool.h | 18 +-
include/uapi/linux/ethtool_netlink.h | 15 +
include/uapi/linux/eventpoll.h | 6 +
include/uapi/linux/f2fs.h | 1 +
include/uapi/linux/fscrypt.h | 4 +-
include/uapi/linux/fuse.h | 16 +-
include/uapi/linux/hsi/cs-protocol.h | 14 -
include/uapi/linux/hsi/hsi_char.h | 14 -
include/uapi/linux/idxd.h | 2 +-
include/uapi/linux/if_alg.h | 1 +
include/uapi/linux/if_bridge.h | 21 +
include/uapi/linux/if_link.h | 3 +
include/uapi/linux/if_packet.h | 1 +
include/uapi/linux/if_tun.h | 2 +
include/uapi/linux/input-event-codes.h | 3 +
include/uapi/linux/io_uring.h | 26 +
include/uapi/linux/iommufd.h | 347 +
include/uapi/linux/ipmi_ssif_bmc.h | 18 +
include/uapi/linux/kvm.h | 34 +-
include/uapi/linux/landlock.h | 21 +-
include/uapi/linux/media-bus-format.h | 3 +-
include/uapi/linux/mptcp.h | 9 +
include/uapi/linux/neighbour.h | 8 +-
include/uapi/linux/net_tstamp.h | 3 +-
include/uapi/linux/netfilter/ipset/ip_set.h | 2 +
include/uapi/linux/netfilter/nf_conntrack_sctp.h | 1 +
include/uapi/linux/netfilter/nf_tables.h | 29 +
include/uapi/linux/netfilter/nfnetlink_cttimeout.h | 1 +
include/uapi/linux/nl80211.h | 3 +
include/uapi/linux/openvswitch.h | 14 +
include/uapi/linux/pci_regs.h | 2 +
include/uapi/linux/pktcdvd.h | 112 -
include/uapi/linux/pr.h | 17 +
include/uapi/linux/sed-opal.h | 8 +-
include/uapi/linux/serial.h | 55 +-
include/uapi/linux/snmp.h | 1 +
include/uapi/linux/swab.h | 2 +-
include/uapi/linux/tc_act/tc_ct.h | 3 +
include/uapi/linux/tcp.h | 6 +
include/uapi/linux/tdx-guest.h | 42 +
include/uapi/linux/usb/g_uvc.h | 3 +
include/uapi/linux/usb/video.h | 4 +-
include/uapi/linux/v4l2-common.h | 39 -
include/uapi/linux/v4l2-controls.h | 46 +-
include/uapi/linux/v4l2-dv-timings.h | 9 -
include/uapi/linux/v4l2-mediabus.h | 4 -
include/uapi/linux/v4l2-subdev.h | 13 -
include/uapi/linux/vfio.h | 136 +-
include/uapi/linux/videodev2.h | 5 +
include/uapi/linux/virtio_bt.h | 8 +
include/uapi/linux/virtio_net.h | 4 +
include/uapi/linux/xfrm.h | 6 +
include/uapi/misc/fastrpc.h | 7 +
include/uapi/misc/habanalabs.h | 93 +-
include/uapi/rdma/hns-abi.h | 15 +
include/uapi/rdma/ib_user_ioctl_verbs.h | 3 +
include/uapi/rdma/ib_user_verbs.h | 21 +
include/uapi/rdma/mana-abi.h | 66 +
include/uapi/rdma/rdma_user_rxe.h | 8 +
include/uapi/sound/asequencer.h | 8 +-
include/uapi/sound/snd_ar_tokens.h | 27 +
include/uapi/sound/sof/tokens.h | 14 +
include/ufs/ufshcd.h | 11 +-
include/video/omap-panel-data.h | 71 -
include/xen/arm/xen-ops.h | 4 +-
include/xen/xen-ops.h | 16 -
include/xen/xen.h | 4 +-
init/Kconfig | 30 +-
init/initramfs.c | 2 +-
init/main.c | 11 +-
init/version.c | 1 -
io_uring/cancel.c | 9 +-
io_uring/filetable.c | 2 -
io_uring/io_uring.c | 418 +-
io_uring/io_uring.h | 71 +-
io_uring/kbuf.c | 14 +-
io_uring/msg_ring.c | 168 +-
io_uring/msg_ring.h | 1 +
io_uring/net.c | 94 +-
io_uring/notif.c | 57 +-
io_uring/notif.h | 15 +-
io_uring/opdef.c | 8 +
io_uring/opdef.h | 2 +
io_uring/poll.c | 156 +-
io_uring/rsrc.c | 71 +-
io_uring/rsrc.h | 1 +
io_uring/rw.c | 21 +-
io_uring/timeout.c | 24 +-
io_uring/uring_cmd.c | 2 +-
io_uring/xattr.c | 8 +-
ipc/mqueue.c | 6 +-
ipc/sem.c | 3 +-
ipc/shm.c | 34 +-
kernel/Makefile | 4 +-
kernel/acct.c | 6 +-
kernel/auditsc.c | 75 +-
kernel/bpf/Makefile | 2 +-
kernel/bpf/arraymap.c | 29 +-
kernel/bpf/bpf_cgrp_storage.c | 246 +
kernel/bpf/bpf_inode_storage.c | 42 +-
kernel/bpf/bpf_local_storage.c | 208 +-
kernel/bpf/bpf_lsm.c | 22 +-
kernel/bpf/bpf_struct_ops.c | 3 +-
kernel/bpf/bpf_task_storage.c | 161 +-
kernel/bpf/btf.c | 1308 +-
kernel/bpf/cgroup_iter.c | 16 +-
kernel/bpf/core.c | 39 +-
kernel/bpf/cpumap.c | 33 +-
kernel/bpf/devmap.c | 4 +-
kernel/bpf/dispatcher.c | 5 +
kernel/bpf/hashtab.c | 37 +-
kernel/bpf/helpers.c | 439 +-
kernel/bpf/local_storage.c | 2 +-
kernel/bpf/map_in_map.c | 61 +-
kernel/bpf/memalloc.c | 46 +-
kernel/bpf/ringbuf.c | 6 +-
kernel/bpf/syscall.c | 475 +-
kernel/bpf/trampoline.c | 83 +-
kernel/bpf/verifier.c | 2753 +-
kernel/capability.c | 4 +-
kernel/cgroup/cgroup-internal.h | 1 -
kernel/cgroup/cgroup.c | 9 +-
kernel/cgroup/cpuset.c | 55 +-
kernel/configs/tiny.config | 5 +-
kernel/cpu.c | 61 +-
kernel/crash_core.c | 3 +
kernel/cred.c | 15 +-
kernel/debug/kdb/kdb_io.c | 18 +-
kernel/dma/mapping.c | 12 +
kernel/dma/swiotlb.c | 63 +-
kernel/events/core.c | 2220 +-
kernel/exit.c | 62 +
kernel/fork.c | 86 +-
kernel/futex/core.c | 26 +-
kernel/futex/syscalls.c | 11 +-
kernel/gcov/clang.c | 2 +
kernel/gcov/gcc_4_7.c | 5 +
kernel/irq/Kconfig | 7 +-
kernel/irq/chip.c | 8 +-
kernel/irq/internals.h | 2 +
kernel/irq/irqdesc.c | 15 +-
kernel/irq/manage.c | 4 +-
kernel/irq/msi.c | 915 +-
kernel/jump_label.c | 58 +-
kernel/kallsyms.c | 116 +-
kernel/kallsyms_internal.h | 1 +
kernel/kallsyms_selftest.c | 485 +
kernel/kallsyms_selftest.h | 13 +
kernel/kcsan/Makefile | 1 +
kernel/kcsan/core.c | 50 +
kernel/kcsan/report.c | 3 +-
kernel/kcsan/selftest.c | 12 +-
kernel/kexec_core.c | 10 +-
kernel/kexec_file.c | 2 +-
kernel/kprobes.c | 24 +-
kernel/ksysfs.c | 18 +
kernel/livepatch/core.c | 31 +-
kernel/livepatch/patch.c | 2 +-
kernel/livepatch/transition.c | 54 +-
kernel/locking/Makefile | 1 -
kernel/locking/rtmutex.c | 55 +-
kernel/locking/rtmutex_api.c | 6 +-
kernel/locking/test-ww_mutex.c | 4 +-
kernel/module/Kconfig | 3 +-
kernel/module/decompress.c | 100 +-
kernel/module/kallsyms.c | 2 -
kernel/module/main.c | 13 +-
kernel/module/sysfs.c | 2 +-
kernel/notifier.c | 6 +-
kernel/nsproxy.c | 23 +-
kernel/padata.c | 27 +-
kernel/panic.c | 53 +-
kernel/params.c | 25 +-
kernel/power/process.c | 25 +-
kernel/power/snapshot.c | 12 +-
kernel/printk/printk.c | 498 +-
kernel/printk/printk_ringbuffer.c | 2 +-
kernel/rcu/Kconfig | 22 +-
kernel/rcu/Kconfig.debug | 3 -
kernel/rcu/rcu.h | 16 +-
kernel/rcu/rcuscale.c | 69 +-
kernel/rcu/rcutorture.c | 72 +-
kernel/rcu/srcutiny.c | 10 +
kernel/rcu/srcutree.c | 100 +-
kernel/rcu/sync.c | 2 +-
kernel/rcu/tasks.h | 4 +-
kernel/rcu/tiny.c | 2 +-
kernel/rcu/tree.c | 162 +-
kernel/rcu/tree.h | 12 +-
kernel/rcu/tree_exp.h | 2 +-
kernel/rcu/tree_nocb.h | 259 +-
kernel/rcu/tree_plugin.h | 5 +-
kernel/rcu/update.c | 18 +-
kernel/relay.c | 8 +-
kernel/resource.c | 30 +-
kernel/sched/core.c | 275 +-
kernel/sched/cpufreq_schedutil.c | 30 +-
kernel/sched/deadline.c | 7 +-
kernel/sched/fair.c | 323 +-
kernel/sched/psi.c | 100 +-
kernel/sched/sched.h | 92 +-
kernel/sched/stats.h | 22 +-
kernel/sched/wait.c | 18 +-
kernel/scs.c | 14 +-
kernel/signal.c | 3 +-
kernel/static_call_inline.c | 23 +-
kernel/sysctl.c | 50 +-
kernel/time/clockevents.c | 2 +-
kernel/time/clocksource.c | 2 +-
kernel/time/namespace.c | 18 +
kernel/time/timer.c | 427 +-
kernel/trace/Kconfig | 15 +-
kernel/trace/blktrace.c | 7 +-
kernel/trace/bpf_trace.c | 113 +-
kernel/trace/ftrace.c | 47 +-
kernel/trace/ring_buffer.c | 44 +-
kernel/trace/ring_buffer_benchmark.c | 2 +-
kernel/trace/rv/monitors/wip/wip.h | 2 +-
kernel/trace/rv/monitors/wwnr/wwnr.h | 2 +-
kernel/trace/trace.c | 117 +-
kernel/trace/trace.h | 32 +-
kernel/trace/trace_dynevent.c | 2 +
kernel/trace/trace_event_perf.c | 16 +-
kernel/trace/trace_events.c | 79 +-
kernel/trace/trace_events_hist.c | 197 +-
kernel/trace/trace_events_synth.c | 4 +-
kernel/trace/trace_events_trigger.c | 19 +-
kernel/trace/trace_events_user.c | 7 +-
kernel/trace/trace_kprobe.c | 2 -
kernel/trace/trace_osnoise.c | 250 +-
kernel/trace/trace_output.c | 71 +-
kernel/trace/trace_probe.c | 67 +-
kernel/trace/trace_probe.h | 19 +-
kernel/trace/trace_probe_tmpl.h | 47 +-
kernel/trace/trace_selftest.c | 9 +-
kernel/trace/trace_uprobe.c | 3 +-
kernel/user.c | 1 +
kernel/workqueue.c | 2 +-
lib/Kconfig | 12 +-
lib/Kconfig.debug | 97 +-
lib/Kconfig.kasan | 4 +-
lib/Kconfig.kcsan | 6 +-
lib/Makefile | 7 +-
lib/crypto/Kconfig | 9 +
lib/crypto/Makefile | 5 +
lib/crypto/aesgcm.c | 727 +
{crypto => lib/crypto}/gf128mul.c | 58 +-
lib/debugobjects.c | 14 +-
lib/fault-inject.c | 37 +-
lib/find_bit_benchmark.c | 4 +-
lib/fonts/fonts.c | 4 +-
lib/fortify_kunit.c | 255 +
lib/interval_tree.c | 132 +
lib/iov_iter.c | 82 +-
lib/is_signed_type_kunit.c | 4 -
lib/kobject.c | 31 +-
lib/kunit/assert.c | 62 +-
lib/kunit/debugfs.c | 2 +-
lib/kunit/executor.c | 6 +-
lib/kunit/kunit-example-test.c | 7 +
lib/kunit/string-stream.c | 9 +-
lib/kunit/test.c | 15 +-
lib/llist.c | 4 +-
lib/lru_cache.c | 59 +-
lib/maple_tree.c | 19 +-
lib/math/div64.c | 15 +-
lib/memcpy_kunit.c | 227 +
lib/net_utils.c | 3 +-
lib/nlattr.c | 2 +-
lib/notifier-error-inject.c | 2 +-
lib/oid_registry.c | 1 -
lib/overflow_kunit.c | 381 +
lib/packing.c | 16 +-
lib/percpu-refcount.c | 3 +-
lib/percpu_counter.c | 29 +-
lib/radix-tree.c | 2 +-
lib/raid6/algos.c | 2 -
lib/raid6/s390vx.uc | 3 +-
lib/reed_solomon/test_rslib.c | 6 +-
lib/rhashtable.c | 16 +-
lib/sbitmap.c | 148 +-
lib/scatterlist.c | 25 +-
lib/{test_siphash.c => siphash_kunit.c} | 165 +-
lib/slub_kunit.c | 58 +-
lib/string.c | 82 -
lib/strscpy_kunit.c | 142 +
lib/test-string_helpers.c | 2 +-
lib/test_bpf.c | 1 -
lib/test_firmware.c | 5 +-
lib/test_fprobe.c | 5 +-
lib/test_hexdump.c | 10 +-
lib/test_kmod.c | 12 +-
lib/test_kprobes.c | 5 +-
lib/test_linear_ranges.c | 13 +-
lib/test_list_sort.c | 2 +-
lib/test_maple_tree.c | 23 +
lib/test_printf.c | 40 +-
lib/test_rhashtable.c | 12 +-
lib/test_strscpy.c | 150 -
lib/test_sysctl.c | 12 +-
lib/test_vmalloc.c | 8 +-
lib/trace_readwrite.c | 16 +-
lib/ubsan.c | 3 +-
lib/vdso/Makefile | 2 +-
lib/vsprintf.c | 16 +-
lib/zstd/Makefile | 1 +
lib/zstd/common/bitstream.h | 9 +
lib/zstd/common/compiler.h | 67 +-
lib/zstd/common/entropy_common.c | 11 +-
lib/zstd/common/error_private.h | 81 +-
lib/zstd/common/fse.h | 3 +-
lib/zstd/common/fse_decompress.c | 2 +-
lib/zstd/common/huf.h | 46 +-
lib/zstd/common/mem.h | 2 +
lib/zstd/common/portability_macros.h | 93 +
lib/zstd/common/zstd_common.c | 10 -
lib/zstd/common/zstd_internal.h | 175 +-
lib/zstd/compress/clevels.h | 132 +
lib/zstd/compress/fse_compress.c | 83 +-
lib/zstd/compress/huf_compress.c | 644 +-
lib/zstd/compress/zstd_compress.c | 2000 +-
lib/zstd/compress/zstd_compress_internal.h | 375 +-
lib/zstd/compress/zstd_compress_literals.c | 9 +-
lib/zstd/compress/zstd_compress_literals.h | 4 +-
lib/zstd/compress/zstd_compress_sequences.c | 31 +-
lib/zstd/compress/zstd_compress_superblock.c | 295 +-
lib/zstd/compress/zstd_cwksp.h | 225 +-
lib/zstd/compress/zstd_double_fast.c | 413 +-
lib/zstd/compress/zstd_fast.c | 441 +-
lib/zstd/compress/zstd_lazy.c | 1352 +-
lib/zstd/compress/zstd_lazy.h | 38 +
lib/zstd/compress/zstd_ldm.c | 76 +-
lib/zstd/compress/zstd_ldm.h | 1 +
lib/zstd/compress/zstd_ldm_geartab.h | 5 +-
lib/zstd/compress/zstd_opt.c | 402 +-
lib/zstd/decompress/huf_decompress.c | 912 +-
lib/zstd/decompress/zstd_decompress.c | 80 +-
lib/zstd/decompress/zstd_decompress_block.c | 1022 +-
lib/zstd/decompress/zstd_decompress_block.h | 10 +-
lib/zstd/decompress/zstd_decompress_internal.h | 38 +-
lib/zstd/decompress_sources.h | 6 +
lib/zstd/zstd_common_module.c | 32 +
lib/zstd/zstd_compress_module.c | 6 +-
mm/Kconfig | 65 +-
mm/Kconfig.debug | 2 +-
mm/backing-dev.c | 133 +-
mm/compaction.c | 40 +-
mm/damon/Makefile | 6 +-
mm/damon/core.c | 266 +-
mm/damon/lru_sort.c | 71 +-
mm/damon/modules-common.c | 42 +
mm/damon/modules-common.h | 3 +
mm/damon/reclaim.c | 73 +-
mm/damon/sysfs-common.c | 107 +
mm/damon/sysfs-common.h | 56 +
mm/damon/sysfs-schemes.c | 1338 +
mm/damon/sysfs.c | 1229 +-
mm/debug.c | 5 +-
mm/debug_vm_pgtable.c | 40 +-
mm/fadvise.c | 2 +-
mm/failslab.c | 12 +-
mm/filemap.c | 89 +-
mm/folio-compat.c | 25 +-
mm/gup.c | 337 +-
mm/gup_test.c | 145 +
mm/gup_test.h | 12 +
mm/hmm.c | 3 +-
mm/huge_memory.c | 179 +-
mm/hugetlb.c | 1120 +-
mm/hugetlb_cgroup.c | 63 +-
mm/hugetlb_vmemmap.c | 45 +-
mm/internal.h | 12 +-
mm/kasan/generic.c | 19 +-
mm/kasan/kasan.h | 20 +-
mm/kasan/kasan_test.c | 177 +-
mm/kasan/kasan_test_module.c | 60 -
mm/kasan/report.c | 68 +-
mm/kasan/shadow.c | 2 +-
mm/kfence/core.c | 16 +-
mm/kfence/kfence_test.c | 4 +-
mm/kfence/report.c | 16 +-
mm/khugepaged.c | 156 +-
mm/kmemleak.c | 50 +-
mm/kmsan/hooks.c | 1 +
mm/kmsan/instrumentation.c | 8 +-
mm/kmsan/kmsan_test.c | 4 +
mm/ksm.c | 89 +-
mm/madvise.c | 69 +-
mm/mapping_dirty_helpers.c | 2 +-
mm/memcontrol.c | 130 +-
mm/memory-failure.c | 172 +-
mm/memory-tiers.c | 4 +-
mm/memory.c | 287 +-
mm/mempolicy.c | 1 +
mm/mempool.c | 18 +-
mm/migrate.c | 301 +-
mm/migrate_device.c | 8 +-
mm/mincore.c | 14 +-
mm/mm_init.c | 8 +-
mm/mmap.c | 31 +-
mm/mmu_gather.c | 62 +-
mm/mprotect.c | 57 +-
mm/mremap.c | 3 +-
mm/page-writeback.c | 130 +-
mm/page_alloc.c | 174 +-
mm/page_ext.c | 4 +-
mm/page_io.c | 4 +-
mm/page_reporting.c | 50 +-
mm/page_table_check.c | 3 +-
mm/pagewalk.c | 27 +-
mm/percpu.c | 44 +-
mm/process_vm_access.c | 2 +-
mm/rmap.c | 332 +-
mm/shmem.c | 69 +-
mm/slab.c | 113 +-
mm/slab.h | 86 +-
mm/slab_common.c | 53 +-
mm/slub.c | 565 +-
mm/sparse-vmemmap.c | 73 +
mm/sparse.c | 2 -
mm/swap.c | 41 +-
mm/swap.h | 8 +-
mm/swap_state.c | 39 +-
mm/swapfile.c | 15 +-
mm/truncate.c | 32 +-
mm/usercopy.c | 3 +-
mm/userfaultfd.c | 8 +-
mm/util.c | 79 -
mm/vmalloc.c | 20 +-
mm/vmscan.c | 212 +-
mm/vmstat.c | 3 +
mm/workingset.c | 7 +-
mm/z3fold.c | 36 +-
mm/zbud.c | 32 +-
mm/zpool.c | 17 +-
mm/zsmalloc.c | 365 +-
mm/zswap.c | 39 +-
net/802/garp.c | 4 +-
net/802/mrp.c | 24 +-
net/8021q/vlan_dev.c | 4 +-
net/9p/client.c | 35 +-
net/9p/trans_fd.c | 38 +-
net/9p/trans_rdma.c | 5 +-
net/9p/trans_virtio.c | 10 +-
net/9p/trans_xen.c | 15 +-
net/atm/atm_sysfs.c | 4 +-
net/ax25/af_ax25.c | 4 +-
net/batman-adv/bat_iv_ogm.c | 4 +-
net/batman-adv/bat_v_elp.c | 2 +-
net/batman-adv/bat_v_ogm.c | 4 +-
net/batman-adv/netlink.c | 6 +-
net/batman-adv/network-coding.c | 2 +-
net/bluetooth/6lowpan.c | 3 +-
net/bluetooth/Kconfig | 11 +
net/bluetooth/a2mp.c | 2 +-
net/bluetooth/af_bluetooth.c | 4 +-
net/bluetooth/hci_codec.c | 19 +-
net/bluetooth/hci_conn.c | 17 +-
net/bluetooth/hci_core.c | 12 +-
net/bluetooth/hci_debugfs.c | 2 +-
net/bluetooth/hci_event.c | 24 +-
net/bluetooth/hci_request.c | 2 +-
net/bluetooth/hci_sync.c | 40 +-
net/bluetooth/iso.c | 68 +-
net/bluetooth/l2cap_core.c | 5 +-
net/bluetooth/lib.c | 4 +-
net/bluetooth/mgmt.c | 7 +-
net/bluetooth/rfcomm/core.c | 2 +-
net/bluetooth/smp.c | 2 +-
net/bpf/bpf_dummy_struct_ops.c | 17 +-
net/bpf/test_run.c | 19 +-
net/bridge/br.c | 5 +-
net/bridge/br_fdb.c | 46 +-
net/bridge/br_if.c | 2 +-
net/bridge/br_input.c | 21 +-
net/bridge/br_mdb.c | 824 +-
net/bridge/br_multicast.c | 38 +-
net/bridge/br_multicast_eht.c | 4 +-
net/bridge/br_netlink.c | 21 +-
net/bridge/br_private.h | 30 +-
net/bridge/br_switchdev.c | 6 +-
net/bridge/br_vlan.c | 4 +-
net/bridge/netfilter/nf_conntrack_bridge.c | 32 +-
net/can/af_can.c | 9 +-
net/can/j1939/socket.c | 2 +-
net/can/j1939/transport.c | 4 +-
net/can/raw.c | 1 +
net/ceph/messenger.c | 1 +
net/ceph/messenger_v1.c | 4 +-
net/ceph/messenger_v2.c | 14 +-
net/ceph/mon_client.c | 2 +-
net/ceph/osd_client.c | 2 +-
net/compat.c | 3 +-
net/core/bpf_sk_storage.c | 42 +-
net/core/dev.c | 185 +-
net/core/dev.h | 7 +
net/core/dev_addr_lists_test.c | 4 +-
net/core/dev_ioctl.c | 2 +-
net/core/devlink.c | 794 +-
net/core/drop_monitor.c | 12 +-
net/core/dst.c | 10 +-
net/core/failover.c | 6 +-
net/core/filter.c | 141 +-
net/core/flow_dissector.c | 6 +-
net/core/flow_offload.c | 7 +
net/core/gen_estimator.c | 2 +-
net/core/gen_stats.c | 16 +-
net/core/gro.c | 74 +-
net/core/link_watch.c | 20 +-
net/core/lwtunnel.c | 4 +-
net/core/neighbour.c | 62 +-
net/core/net-sysfs.c | 24 +-
net/core/net_namespace.c | 5 +
net/core/of_net.c | 5 +-
net/core/pktgen.c | 37 +-
net/core/rtnetlink.c | 90 +-
net/core/skbuff.c | 168 +-
net/core/skmsg.c | 9 +-
net/core/sock.c | 33 +-
net/core/sock_diag.c | 15 +-
net/core/sock_map.c | 2 +
net/core/sock_reuseport.c | 94 +-
net/core/stream.c | 8 +-
net/core/tso.c | 8 -
net/core/utils.c | 4 +-
net/dcb/dcbnl.c | 153 +-
net/dccp/dccp.h | 1 +
net/dccp/ipv4.c | 23 +-
net/dccp/ipv6.c | 39 +-
net/dccp/proto.c | 11 +-
net/dns_resolver/dns_key.c | 2 +-
net/dsa/Kconfig | 6 +
net/dsa/Makefile | 4 +-
net/dsa/devlink.c | 391 +
net/dsa/devlink.h | 16 +
net/dsa/dsa.c | 1745 +-
net/dsa/dsa.h | 40 +
net/dsa/dsa2.c | 1829 -
net/dsa/dsa_priv.h | 588 -
net/dsa/master.c | 25 +-
net/dsa/master.h | 19 +
net/dsa/netlink.c | 3 +-
net/dsa/netlink.h | 8 +
net/dsa/port.c | 24 +-
net/dsa/port.h | 114 +
net/dsa/slave.c | 75 +-
net/dsa/slave.h | 69 +
net/dsa/switch.c | 53 +-
net/dsa/switch.h | 120 +
net/dsa/tag.c | 243 +
net/dsa/tag.h | 310 +
net/dsa/tag_8021q.c | 30 +-
net/dsa/tag_8021q.h | 27 +
net/dsa/tag_ar9331.c | 8 +-
net/dsa/tag_brcm.c | 18 +-
net/dsa/tag_dsa.c | 13 +-
net/dsa/tag_gswip.c | 8 +-
net/dsa/tag_hellcreek.c | 11 +-
net/dsa/tag_ksz.c | 27 +-
net/dsa/tag_lan9303.c | 8 +-
net/dsa/tag_mtk.c | 10 +-
net/dsa/tag_none.c | 30 +
net/dsa/tag_ocelot.c | 14 +-
net/dsa/tag_ocelot_8021q.c | 10 +-
net/dsa/tag_qca.c | 8 +-
net/dsa/tag_rtl4_a.c | 8 +-
net/dsa/tag_rtl8_4.c | 9 +-
net/dsa/tag_rzn1_a5psw.c | 8 +-
net/dsa/tag_sja1105.c | 18 +-
net/dsa/tag_trailer.c | 8 +-
net/dsa/tag_xrs700x.c | 8 +-
net/ethernet/eth.c | 2 +-
net/ethtool/Makefile | 2 +-
net/ethtool/channels.c | 19 +-
net/ethtool/common.c | 81 +
net/ethtool/common.h | 1 +
net/ethtool/ioctl.c | 44 +-
net/ethtool/linkstate.c | 24 +-
net/ethtool/netlink.c | 7 +
net/ethtool/netlink.h | 2 +
net/ethtool/rss.c | 153 +
net/hsr/hsr_debugfs.c | 40 +-
net/hsr/hsr_device.c | 31 +-
net/hsr/hsr_forward.c | 19 +-
net/hsr/hsr_framereg.c | 265 +-
net/hsr/hsr_framereg.h | 17 +-
net/hsr/hsr_main.h | 15 +-
net/hsr/hsr_netlink.c | 4 +-
net/ieee802154/core.c | 3 +
net/ieee802154/nl802154.c | 109 +-
net/ieee802154/nl802154.h | 2 +
net/ipv4/Makefile | 2 +-
net/ipv4/af_inet.c | 19 +-
net/ipv4/bpf_tcp_ca.c | 17 +-
net/ipv4/devinet.c | 19 +-
net/ipv4/esp4_offload.c | 3 +
net/ipv4/fib_frontend.c | 3 +
net/ipv4/fib_semantics.c | 9 +-
net/ipv4/fib_trie.c | 6 +-
net/ipv4/icmp.c | 2 +-
net/ipv4/igmp.c | 6 +-
net/ipv4/inet_connection_sock.c | 9 +-
net/ipv4/inet_fragment.c | 14 +-
net/ipv4/inet_hashtables.c | 86 +-
net/ipv4/ip_fragment.c | 19 +-
net/ipv4/ip_gre.c | 60 +-
net/ipv4/ip_input.c | 5 +
net/ipv4/ip_sockglue.c | 3 +-
net/ipv4/ip_tunnel.c | 32 +-
net/ipv4/ip_vti.c | 20 +-
net/ipv4/ipip.c | 2 +-
net/ipv4/ipmr.c | 14 +-
net/ipv4/metrics.c | 3 -
net/ipv4/netfilter/ipt_CLUSTERIP.c | 4 +-
net/ipv4/netfilter/nft_dup_ipv4.c | 3 +-
net/ipv4/netfilter/nft_fib_ipv4.c | 5 +-
net/ipv4/ping.c | 9 +-
net/ipv4/proc.c | 1 +
net/ipv4/route.c | 4 +-
net/ipv4/syncookies.c | 7 +-
net/ipv4/sysctl_net_ipv4.c | 83 +
net/ipv4/tcp.c | 17 +-
net/ipv4/tcp_bbr.c | 2 +-
net/ipv4/tcp_bpf.c | 19 +-
net/ipv4/tcp_dctcp.c | 23 +-
net/ipv4/tcp_input.c | 70 +-
net/ipv4/tcp_ipv4.c | 126 +-
net/ipv4/tcp_minisocks.c | 61 +-
net/ipv4/tcp_output.c | 41 +-
net/ipv4/tcp_plb.c | 109 +
net/ipv4/udp.c | 217 +-
net/ipv4/udp_diag.c | 6 +-
net/ipv4/udp_offload.c | 8 +-
net/ipv4/udp_tunnel_core.c | 1 +
net/ipv4/udp_tunnel_nic.c | 2 +
net/ipv6/addrconf.c | 12 +-
net/ipv6/af_inet6.c | 13 +-
net/ipv6/datagram.c | 18 +-
net/ipv6/esp6_offload.c | 6 +-
net/ipv6/ip6_fib.c | 7 +-
net/ipv6/ip6_gre.c | 31 +-
net/ipv6/ip6_offload.c | 27 +-
net/ipv6/ip6_output.c | 5 +
net/ipv6/ip6_tunnel.c | 26 +-
net/ipv6/ip6_vti.c | 16 +-
net/ipv6/ip6mr.c | 12 +-
net/ipv6/ipv6_sockglue.c | 6 +-
net/ipv6/mcast.c | 10 +-
net/ipv6/netfilter/nf_conntrack_reasm.c | 2 +-
net/ipv6/netfilter/nft_dup_ipv6.c | 3 +-
net/ipv6/output_core.c | 8 +-
net/ipv6/ping.c | 6 -
net/ipv6/raw.c | 2 -
net/ipv6/reassembly.c | 13 +-
net/ipv6/route.c | 2 +-
net/ipv6/seg6_local.c | 4 +-
net/ipv6/sit.c | 22 +-
net/ipv6/tcp_ipv6.c | 49 +-
net/ipv6/udp.c | 41 +-
net/ipv6/udp_offload.c | 8 +-
net/ipv6/xfrm6_policy.c | 6 +-
net/key/af_key.c | 40 +-
net/l2tp/l2tp_core.c | 17 +-
net/l2tp/l2tp_ip6.c | 2 -
net/mac80211/agg-rx.c | 25 +-
net/mac80211/agg-tx.c | 2 +-
net/mac80211/airtime.c | 3 +
net/mac80211/cfg.c | 45 +-
net/mac80211/debugfs.c | 4 +-
net/mac80211/debugfs_netdev.c | 3 +-
net/mac80211/debugfs_sta.c | 148 +-
net/mac80211/debugfs_sta.h | 12 +
net/mac80211/driver-ops.c | 27 +-
net/mac80211/driver-ops.h | 16 +
net/mac80211/ieee80211_i.h | 22 +-
net/mac80211/iface.c | 74 +-
net/mac80211/link.c | 17 +
net/mac80211/main.c | 23 +-
net/mac80211/mesh_pathtbl.c | 2 +-
net/mac80211/mlme.c | 133 +-
net/mac80211/rc80211_minstrel_ht.c | 3 -
net/mac80211/rc80211_minstrel_ht.h | 1 -
net/mac80211/rx.c | 41 +-
net/mac80211/sta_info.c | 118 +-
net/mac80211/sta_info.h | 7 +
net/mac80211/tdls.c | 1 -
net/mac80211/tx.c | 327 +-
net/mac80211/util.c | 246 +-
net/mac80211/wme.c | 63 +-
net/mac80211/wme.h | 4 +-
net/mac802154/cfg.c | 6 +-
net/mac802154/driver-ops.h | 253 +-
net/mac802154/ieee802154_i.h | 56 +-
net/mac802154/iface.c | 60 +-
net/mac802154/main.c | 4 +-
net/mac802154/rx.c | 53 +-
net/mac802154/trace.h | 25 +
net/mac802154/tx.c | 132 +-
net/mac802154/util.c | 71 +-
net/mctp/device.c | 14 +-
net/mpls/af_mpls.c | 4 +-
net/mptcp/Makefile | 2 +-
net/mptcp/fastopen.c | 73 +
net/mptcp/options.c | 25 +-
net/mptcp/pm_netlink.c | 126 +-
net/mptcp/pm_userspace.c | 8 +-
net/mptcp/protocol.c | 100 +-
net/mptcp/protocol.h | 30 +-
net/mptcp/sockopt.c | 45 +-
net/mptcp/subflow.c | 174 +-
net/mptcp/token.c | 4 +-
net/ncsi/ncsi-cmd.c | 3 +-
net/netfilter/Kconfig | 9 +-
net/netfilter/Makefile | 5 +-
net/netfilter/ipset/ip_set_hash_gen.h | 73 +-
net/netfilter/ipset/ip_set_hash_ip.c | 27 +-
net/netfilter/ipset/ip_set_hash_ipport.c | 24 +-
net/netfilter/ipset/ip_set_hash_netnet.c | 26 +-
net/netfilter/ipset/ip_set_list_set.c | 2 +-
net/netfilter/ipvs/ip_vs_core.c | 40 +-
net/netfilter/ipvs/ip_vs_ctl.c | 457 +-
net/netfilter/ipvs/ip_vs_est.c | 883 +-
net/netfilter/ipvs/ip_vs_lblc.c | 2 +-
net/netfilter/ipvs/ip_vs_lblcr.c | 2 +-
net/netfilter/ipvs/ip_vs_sync.c | 2 +-
net/netfilter/ipvs/ip_vs_twos.c | 4 +-
net/netfilter/nf_conntrack_bpf.c | 17 +-
net/netfilter/nf_conntrack_core.c | 42 +-
net/netfilter/nf_conntrack_helper.c | 100 +
net/netfilter/nf_conntrack_netlink.c | 21 +-
net/netfilter/nf_conntrack_proto.c | 124 +-
net/netfilter/nf_conntrack_proto_icmpv6.c | 53 +
net/netfilter/nf_conntrack_proto_sctp.c | 104 +-
net/netfilter/nf_conntrack_standalone.c | 10 +-
net/netfilter/nf_flow_table_ip.c | 8 +
net/netfilter/nf_flow_table_offload.c | 16 +-
net/netfilter/nf_nat_helper.c | 2 +-
net/netfilter/nf_nat_ovs.c | 135 +
net/netfilter/nf_tables_api.c | 96 +-
net/netfilter/nf_tables_core.c | 2 +
net/netfilter/nft_bitwise.c | 6 +-
net/netfilter/nft_byteorder.c | 3 +-
net/netfilter/nft_cmp.c | 9 +-
net/netfilter/nft_compat.c | 9 +-
net/netfilter/nft_connlimit.c | 3 +-
net/netfilter/nft_counter.c | 5 +-
net/netfilter/nft_ct.c | 12 +-
net/netfilter/nft_dup_netdev.c | 3 +-
net/netfilter/nft_dynset.c | 7 +-
net/netfilter/nft_exthdr.c | 10 +-
net/netfilter/nft_fib.c | 2 +-
net/netfilter/nft_flow_offload.c | 3 +-
net/netfilter/nft_fwd_netdev.c | 6 +-
net/netfilter/nft_hash.c | 4 +-
net/netfilter/nft_immediate.c | 3 +-
net/netfilter/nft_inner.c | 385 +
net/netfilter/nft_last.c | 3 +-
net/netfilter/nft_limit.c | 5 +-
net/netfilter/nft_log.c | 3 +-
net/netfilter/nft_lookup.c | 3 +-
net/netfilter/nft_masq.c | 3 +-
net/netfilter/nft_meta.c | 67 +-
net/netfilter/nft_nat.c | 3 +-
net/netfilter/nft_numgen.c | 6 +-
net/netfilter/nft_objref.c | 28 +-
net/netfilter/nft_osf.c | 3 +-
net/netfilter/nft_payload.c | 141 +-
net/netfilter/nft_queue.c | 6 +-
net/netfilter/nft_quota.c | 5 +-
net/netfilter/nft_range.c | 3 +-
net/netfilter/nft_redir.c | 3 +-
net/netfilter/nft_reject.c | 3 +-
net/netfilter/nft_rt.c | 2 +-
net/netfilter/nft_set_pipapo.c | 5 +-
net/netfilter/nft_socket.c | 2 +-
net/netfilter/nft_synproxy.c | 3 +-
net/netfilter/nft_tproxy.c | 2 +-
net/netfilter/nft_tunnel.c | 2 +-
net/netfilter/nft_xfrm.c | 2 +-
net/netfilter/xt_IDLETIMER.c | 4 +-
net/netfilter/xt_LED.c | 2 +-
net/netfilter/xt_connmark.c | 18 +-
net/netfilter/xt_sctp.c | 1 -
net/netlink/af_netlink.c | 44 +-
net/netlink/genetlink.c | 495 +-
net/nfc/nci/core.c | 10 +-
net/nfc/nci/data.c | 4 +-
net/nfc/nci/hci.c | 4 +-
net/nfc/nci/ntf.c | 6 +
net/nfc/rawsock.c | 3 +
net/openvswitch/Kconfig | 1 +
net/openvswitch/conntrack.c | 259 +-
net/openvswitch/datapath.c | 70 +-
net/openvswitch/flow_netlink.c | 2 +-
net/openvswitch/flow_table.c | 9 +-
net/openvswitch/vport-geneve.c | 2 +-
net/openvswitch/vport-gre.c | 2 +-
net/openvswitch/vport-netdev.c | 2 +-
net/openvswitch/vport-vxlan.c | 2 +-
net/openvswitch/vport.c | 50 +
net/openvswitch/vport.h | 16 +
net/packet/af_packet.c | 21 +-
net/rds/message.c | 2 -
net/rds/send.c | 3 +-
net/rds/tcp.c | 3 +
net/rfkill/core.c | 2 +-
net/rxrpc/Kconfig | 7 +
net/rxrpc/Makefile | 5 +
net/rxrpc/af_rxrpc.c | 32 +-
net/rxrpc/ar-internal.h | 416 +-
net/rxrpc/call_accept.c | 193 +-
net/rxrpc/call_event.c | 569 +-
net/rxrpc/call_object.c | 362 +-
net/rxrpc/conn_client.c | 178 +-
net/rxrpc/conn_event.c | 128 +-
net/rxrpc/conn_object.c | 313 +-
net/rxrpc/conn_service.c | 29 +-
net/rxrpc/input.c | 1223 +-
net/rxrpc/insecure.c | 16 +-
net/rxrpc/io_thread.c | 500 +
net/rxrpc/key.c | 16 +-
net/rxrpc/local_event.c | 46 +-
net/rxrpc/local_object.c | 177 +-
net/rxrpc/misc.c | 23 +-
net/rxrpc/net_ns.c | 4 +-
net/rxrpc/output.c | 525 +-
net/rxrpc/peer_event.c | 429 +-
net/rxrpc/peer_object.c | 74 +-
net/rxrpc/proc.c | 169 +-
net/rxrpc/protocol.h | 9 +-
net/rxrpc/recvmsg.c | 308 +-
net/rxrpc/rxkad.c | 314 +-
net/rxrpc/rxperf.c | 619 +
net/rxrpc/security.c | 34 +-
net/rxrpc/sendmsg.c | 235 +-
net/rxrpc/server_key.c | 25 +
net/rxrpc/skbuff.c | 44 +-
net/rxrpc/sysctl.c | 11 +-
net/rxrpc/txbuf.c | 142 +
net/sched/Kconfig | 3 +-
net/sched/act_api.c | 3 +-
net/sched/act_bpf.c | 6 +-
net/sched/act_connmark.c | 10 +-
net/sched/act_csum.c | 6 +-
net/sched/act_ct.c | 265 +-
net/sched/act_ctinfo.c | 12 +-
net/sched/act_gact.c | 8 +-
net/sched/act_gate.c | 6 +-
net/sched/act_ife.c | 6 +-
net/sched/act_ipt.c | 6 +-
net/sched/act_mirred.c | 6 +-
net/sched/act_mpls.c | 6 +-
net/sched/act_nat.c | 7 +-
net/sched/act_pedit.c | 6 +-
net/sched/act_police.c | 6 +-
net/sched/act_sample.c | 8 +-
net/sched/act_simple.c | 6 +-
net/sched/act_skbedit.c | 20 +-
net/sched/act_skbmod.c | 6 +-
net/sched/act_tunnel_key.c | 6 +-
net/sched/act_vlan.c | 6 +-
net/sched/cls_api.c | 10 +-
net/sched/cls_basic.c | 6 +-
net/sched/cls_bpf.c | 6 +-
net/sched/cls_cgroup.c | 6 +-
net/sched/cls_flow.c | 8 +-
net/sched/cls_flower.c | 6 +-
net/sched/cls_fw.c | 6 +-
net/sched/cls_matchall.c | 6 +-
net/sched/cls_route.c | 6 +-
net/sched/cls_rsvp.c | 2 +
net/sched/cls_rsvp.h | 6 +-
net/sched/cls_rsvp6.c | 2 +
net/sched/cls_tcindex.c | 7 +-
net/sched/cls_u32.c | 6 +-
net/sched/ematch.c | 2 +
net/sched/sch_api.c | 5 +
net/sched/sch_choke.c | 2 +-
net/sched/sch_netem.c | 4 +-
net/sctp/associola.c | 4 +-
net/sctp/diag.c | 3 +-
net/sctp/endpointola.c | 13 +-
net/sctp/input.c | 108 +-
net/sctp/ipv6.c | 22 +-
net/sctp/protocol.c | 19 +-
net/sctp/sm_statefuns.c | 2 +-
net/sctp/socket.c | 40 +-
net/sctp/stream.c | 25 +-
net/sctp/stream_interleave.c | 12 +-
net/sctp/stream_sched.c | 37 +-
net/sctp/stream_sched_prio.c | 32 +-
net/sctp/stream_sched_rr.c | 5 +-
net/sctp/sysctl.c | 84 +-
net/sctp/transport.c | 2 +-
net/sctp/ulpqueue.c | 10 +-
net/smc/smc_clc.c | 6 +-
net/smc/smc_tx.c | 2 +-
net/socket.c | 20 +-
net/sunrpc/auth_gss/svcauth_gss.c | 64 +-
net/sunrpc/cache.c | 2 +-
net/sunrpc/clnt.c | 2 +-
net/sunrpc/socklib.c | 6 +-
net/sunrpc/svc.c | 6 +-
net/sunrpc/svcsock.c | 4 +-
net/sunrpc/sysfs.c | 8 +-
net/sunrpc/xdr.c | 22 +-
net/sunrpc/xprt.c | 2 +-
net/sunrpc/xprtrdma/verbs.c | 2 +-
net/sunrpc/xprtsock.c | 11 +-
net/tipc/crypto.c | 3 +
net/tipc/discover.c | 7 +-
net/tipc/link.c | 4 +-
net/tipc/monitor.c | 2 +-
net/tipc/node.c | 12 +-
net/tipc/socket.c | 2 +-
net/tipc/topsrv.c | 22 +-
net/tls/tls_device.c | 4 +-
net/tls/tls_sw.c | 6 +-
net/unix/af_unix.c | 12 +-
net/unix/diag.c | 20 +-
net/vmw_vsock/af_vsock.c | 3 +-
net/vmw_vsock/vmci_transport.c | 6 +-
net/wireless/core.h | 5 +-
net/wireless/mlme.c | 4 +
net/wireless/nl80211.c | 26 +-
net/wireless/nl80211.h | 3 +-
net/wireless/reg.c | 4 +-
net/wireless/scan.c | 57 +-
net/wireless/sme.c | 26 +-
net/wireless/sysfs.c | 2 +-
net/wireless/util.c | 4 +-
net/wireless/wext-compat.c | 180 +-
net/wireless/wext-compat.h | 8 +-
net/wireless/wext-sme.c | 5 +-
net/xdp/xskmap.c | 4 +-
net/xfrm/Makefile | 8 +
net/xfrm/espintcp.c | 3 +-
net/xfrm/xfrm_device.c | 124 +-
net/xfrm/xfrm_input.c | 1 +
net/xfrm/xfrm_interface_bpf.c | 115 +
.../{xfrm_interface.c => xfrm_interface_core.c} | 14 +
net/xfrm/xfrm_output.c | 15 +-
net/xfrm/xfrm_policy.c | 122 +-
net/xfrm/xfrm_replay.c | 2 +-
net/xfrm/xfrm_state.c | 214 +-
net/xfrm/xfrm_user.c | 104 +-
rust/Makefile | 22 +-
rust/alloc/raw_vec.rs | 33 +-
rust/alloc/vec/mod.rs | 89 +
rust/build_error.rs | 31 +
rust/exports.c | 5 +
rust/kernel/build_assert.rs | 82 +
rust/kernel/error.rs | 90 +-
rust/kernel/lib.rs | 9 +
rust/kernel/prelude.rs | 20 +-
rust/kernel/print.rs | 214 +-
rust/kernel/static_assert.rs | 34 +
rust/kernel/std_vendor.rs | 163 +
rust/kernel/str.rs | 523 +-
rust/kernel/types.rs | 37 +
rust/macros/concat_idents.rs | 23 +
rust/macros/helpers.rs | 24 +-
rust/macros/lib.rs | 108 +-
rust/macros/module.rs | 10 +-
rust/macros/vtable.rs | 95 +
samples/acrn/vm-sample.c | 3 -
samples/bpf/README.rst | 6 +-
samples/bpf/hbm_edt_kern.c | 2 +-
samples/bpf/sockex3_kern.c | 95 +-
samples/bpf/sockex3_user.c | 23 +-
samples/bpf/test_cgrp2_tc.sh | 2 +-
samples/bpf/tracex2_kern.c | 4 +-
samples/bpf/tracex2_user.c | 3 +-
samples/bpf/xdp1_user.c | 2 +-
samples/bpf/xdp2_kern.c | 4 +
samples/bpf/xdp_router_ipv4_user.c | 2 +-
samples/ftrace/ftrace-direct-modify.c | 3 +
samples/ftrace/ftrace-direct-multi-modify.c | 3 +
samples/ftrace/ftrace-direct-multi.c | 2 +
samples/ftrace/ftrace-direct-too.c | 2 +
samples/ftrace/ftrace-direct.c | 2 +
samples/landlock/sandboxer.c | 29 +-
samples/pktgen/functions.sh | 2 +-
samples/rust/Kconfig | 10 +
samples/rust/Makefile | 1 +
samples/rust/rust_minimal.rs | 8 +-
samples/rust/rust_print.rs | 54 +
samples/trace_events/trace-events-sample.c | 2 +-
samples/trace_events/trace-events-sample.h | 34 +-
samples/vfio-mdev/mbochs.c | 8 +-
samples/vfio-mdev/mdpy-fb.c | 8 +-
samples/vfio-mdev/mdpy.c | 8 +-
samples/vfio-mdev/mtty.c | 8 +-
scripts/Kbuild.include | 48 +-
scripts/Makefile.asm-generic | 6 +-
scripts/Makefile.build | 16 +-
scripts/Makefile.clean | 5 +-
scripts/Makefile.compiler | 4 +-
scripts/Makefile.debug | 6 +-
scripts/Makefile.dtbinst | 2 +-
scripts/Makefile.extrawarn | 1 +
scripts/Makefile.lib | 41 +-
scripts/Makefile.modfinal | 8 +-
scripts/Makefile.modinst | 4 +-
scripts/Makefile.modpost | 53 +-
scripts/Makefile.package | 15 +-
scripts/basic/fixdep.c | 1 -
scripts/bpf_doc.py | 49 +-
scripts/checkpatch.pl | 20 +-
scripts/clang-tools/gen_compile_commands.py | 8 +-
scripts/coccicheck | 2 +-
scripts/dtc/checks.c | 15 +-
scripts/dtc/dtc-lexer.l | 2 +-
scripts/dtc/dtc-parser.y | 13 +
scripts/dtc/libfdt/fdt.c | 20 +-
scripts/dtc/libfdt/fdt.h | 4 +-
scripts/dtc/libfdt/fdt_addresses.c | 2 +-
scripts/dtc/libfdt/fdt_overlay.c | 29 +-
scripts/dtc/libfdt/fdt_ro.c | 2 +-
scripts/dtc/libfdt/libfdt.h | 25 +
scripts/dtc/livetree.c | 39 +-
scripts/dtc/util.c | 15 +-
scripts/dtc/util.h | 4 +-
scripts/dtc/version_gen.h | 2 +-
scripts/faddr2line | 7 +-
scripts/gen_autoksyms.sh | 2 +-
scripts/generate_rust_analyzer.py | 8 +-
scripts/head-object-list.txt | 2 -
scripts/jobserver-exec | 4 +-
scripts/kallsyms.c | 81 +-
scripts/kconfig/.gitignore | 4 +-
scripts/kconfig/Makefile | 45 +-
scripts/kconfig/gconf-cfg.sh | 7 +-
scripts/kconfig/lkc.h | 2 +-
scripts/kconfig/mconf-cfg.sh | 25 +-
scripts/kconfig/mconf.c | 11 +-
scripts/kconfig/menu.c | 4 +-
scripts/kconfig/nconf-cfg.sh | 23 +-
scripts/kconfig/qconf-cfg.sh | 10 +-
scripts/kconfig/util.c | 2 +-
scripts/kernel-doc | 72 +-
scripts/link-vmlinux.sh | 4 +
scripts/min-tool-version.sh | 2 +-
scripts/mod/file2alias.c | 30 +-
scripts/mod/modpost.c | 36 +-
scripts/mod/sumversion.c | 4 +-
scripts/module.lds.S | 6 +
scripts/modules-check.sh | 2 +-
scripts/package/buildtar | 2 +-
scripts/package/mkdebian | 2 +-
scripts/package/mkspec | 8 +
scripts/recordmcount.c | 39 +
scripts/remove-stale-files | 2 +
scripts/sorttable.c | 2 +-
scripts/spelling.txt | 33 +-
scripts/sphinx-pre-install | 8 -
security/Kconfig.hardening | 3 +
security/apparmor/Kconfig | 8 +-
security/apparmor/Makefile | 6 +-
security/apparmor/apparmorfs.c | 115 +-
security/apparmor/audit.c | 45 +-
security/apparmor/capability.c | 16 +-
security/apparmor/domain.c | 158 +-
security/apparmor/file.c | 129 +-
security/apparmor/include/apparmor.h | 23 +-
security/apparmor/include/audit.h | 8 +-
security/apparmor/include/cred.h | 13 -
security/apparmor/include/domain.h | 6 -
security/apparmor/include/file.h | 108 +-
security/apparmor/include/label.h | 13 +-
security/apparmor/include/lib.h | 10 +-
security/apparmor/include/match.h | 28 +-
security/apparmor/include/net.h | 1 +
security/apparmor/include/perms.h | 91 +-
security/apparmor/include/policy.h | 141 +-
security/apparmor/include/policy_compat.h | 33 +
security/apparmor/include/policy_unpack.h | 52 +
security/apparmor/ipc.c | 16 +-
security/apparmor/label.c | 75 +-
security/apparmor/lib.c | 125 +-
security/apparmor/lsm.c | 85 +-
security/apparmor/match.c | 62 +-
security/apparmor/mount.c | 93 +-
security/apparmor/net.c | 28 +-
security/apparmor/policy.c | 204 +-
security/apparmor/policy_compat.c | 319 +
security/apparmor/policy_ns.c | 6 +-
security/apparmor/policy_unpack.c | 789 +-
security/apparmor/policy_unpack_test.c | 77 +-
security/apparmor/procattr.c | 11 +-
security/apparmor/resource.c | 29 +-
security/apparmor/task.c | 14 +-
security/commoncap.c | 73 +-
security/device_cgroup.c | 33 +-
security/integrity/digsig.c | 6 +-
security/integrity/evm/evm_crypto.c | 5 +-
security/integrity/evm/evm_main.c | 153 +-
security/integrity/ima/Kconfig | 2 +-
security/integrity/ima/ima.h | 5 +-
security/integrity/ima/ima_appraise.c | 15 +-
security/integrity/ima/ima_main.c | 13 +-
security/integrity/ima/ima_policy.c | 109 +-
security/integrity/ima/ima_template.c | 9 +-
security/integrity/ima/ima_template_lib.c | 11 +-
security/integrity/platform_certs/load_uefi.c | 1 +
security/keys/encrypted-keys/encrypted.c | 6 +-
security/keys/keyctl.c | 4 +-
security/keys/trusted-keys/trusted_tee.c | 3 +-
security/landlock/fs.c | 206 +-
security/landlock/fs.h | 24 +
security/landlock/limits.h | 2 +-
security/landlock/setup.c | 1 +
security/landlock/syscalls.c | 2 +-
security/loadpin/loadpin.c | 30 +-
security/lsm_audit.c | 1 +
security/security.c | 109 +-
security/selinux/hooks.c | 35 +-
security/selinux/selinuxfs.c | 4 +-
security/selinux/ss/services.c | 54 +-
security/selinux/ss/services.h | 15 +-
security/selinux/ss/sidtab.c | 23 +-
security/selinux/ss/sidtab.h | 3 +-
security/smack/smack_lsm.c | 90 +-
security/tomoyo/tomoyo.c | 13 +
sound/aoa/codecs/onyx.c | 5 +-
sound/aoa/codecs/tas.c | 5 +-
sound/core/memalloc.c | 45 +-
sound/core/pcm_native.c | 24 +-
sound/core/pcm_trace.h | 6 +-
sound/core/rawmidi.c | 2 -
sound/core/seq/seq_memory.c | 11 +-
sound/drivers/mts64.c | 3 +
sound/firewire/dice/Makefile | 2 +-
sound/firewire/dice/dice-focusrite.c | 23 +
sound/firewire/dice/dice-stream.c | 12 +-
sound/firewire/dice/dice.c | 10 +
sound/firewire/dice/dice.h | 1 +
sound/hda/ext/hdac_ext_controller.c | 116 +-
sound/hda/ext/hdac_ext_stream.c | 216 +-
sound/hda/hdac_controller.c | 4 +-
sound/hda/hdac_stream.c | 212 +-
sound/i2c/other/ak4117.c | 2 +-
sound/pci/asihpi/asihpi.c | 2 -
sound/pci/asihpi/hpioctl.c | 2 +-
sound/pci/azt3328.c | 9 -
sound/pci/cs5535audio/cs5535audio_pcm.c | 4 +-
sound/pci/hda/Kconfig | 2 +-
sound/pci/hda/cs35l41_hda.c | 1 +
sound/pci/hda/cs35l41_hda_i2c.c | 4 +-
sound/pci/hda/hda_codec.c | 3 +-
sound/pci/hda/hda_cs_dsp_ctl.c | 1 +
sound/pci/hda/patch_cs8409.c | 2 +-
sound/pci/hda/patch_hdmi.c | 147 +-
sound/pci/hda/patch_realtek.c | 79 +
sound/ppc/keywest.c | 5 +-
sound/soc/amd/Kconfig | 4 +-
sound/soc/amd/acp-da7219-max98357a.c | 3 +-
sound/soc/amd/acp/acp-i2s.c | 16 +-
sound/soc/amd/acp/acp-mach-common.c | 62 +-
sound/soc/amd/acp/acp-platform.c | 8 +-
sound/soc/amd/ps/{acp62.h => acp63.h} | 25 +-
sound/soc/amd/ps/pci-ps.c | 141 +-
sound/soc/amd/ps/ps-mach.c | 30 +-
sound/soc/amd/ps/ps-pdm-dma.c | 188 +-
sound/soc/amd/yc/acp6x-mach.c | 7 +
sound/soc/atmel/mchp-spdiftx.c | 165 +-
sound/soc/codecs/Kconfig | 10 +-
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/adau1372.c | 32 +-
sound/soc/codecs/adau1373.c | 1 -
sound/soc/codecs/adau17x1.c | 1 -
sound/soc/codecs/ak4458.c | 13 +-
sound/soc/codecs/cs35l36.c | 4 +-
sound/soc/codecs/cs42l51.c | 2 +-
sound/soc/codecs/cs42l83-i2c.c | 2 +-
sound/soc/codecs/cs42xx8-i2c.c | 28 +-
sound/soc/codecs/cs42xx8.c | 22 +-
sound/soc/codecs/cs42xx8.h | 3 +-
sound/soc/codecs/da7219-aad.c | 46 +-
sound/soc/codecs/da7219-aad.h | 1 +
sound/soc/codecs/da7219.c | 9 +
sound/soc/codecs/es8326.c | 5 +-
sound/soc/codecs/hda.c | 12 +-
sound/soc/codecs/hdac_hda.c | 6 +-
sound/soc/codecs/hdac_hda.h | 4 +-
sound/soc/codecs/hdac_hdmi.c | 8 +-
sound/soc/codecs/hdmi-codec.c | 30 +-
sound/soc/codecs/jz4725b.c | 81 +-
sound/soc/codecs/lochnagar-sc.c | 2 +-
sound/soc/codecs/lpass-tx-macro.c | 149 +-
sound/soc/codecs/lpass-wsa-macro.c | 6 +-
sound/soc/codecs/max98373-i2c.c | 4 +
sound/soc/codecs/max98373-sdw.c | 31 +-
sound/soc/codecs/max98396.c | 6 +-
sound/soc/codecs/max9867.c | 33 +-
sound/soc/codecs/nau8315.c | 2 +
sound/soc/codecs/nau8825.c | 135 +-
sound/soc/codecs/nau8825.h | 23 +
sound/soc/codecs/pcm512x.c | 8 +-
sound/soc/codecs/rt1308-sdw.c | 72 +-
sound/soc/codecs/rt1308-sdw.h | 2 +
sound/soc/codecs/rt1316-sdw.c | 71 +-
sound/soc/codecs/rt1316-sdw.h | 2 +
sound/soc/codecs/rt1318-sdw.c | 884 +
sound/soc/codecs/rt1318-sdw.h | 101 +
sound/soc/codecs/rt298.c | 7 +
sound/soc/codecs/rt5640.c | 8 +
sound/soc/codecs/rt5670.c | 2 -
sound/soc/codecs/rt5682-sdw.c | 28 +-
sound/soc/codecs/rt5682.c | 2 +
sound/soc/codecs/rt5682.h | 2 +-
sound/soc/codecs/rt5682s.c | 22 +
sound/soc/codecs/rt5682s.h | 2 +
sound/soc/codecs/rt700.c | 32 +-
sound/soc/codecs/rt711-sdca-sdw.c | 2 +-
sound/soc/codecs/rt711-sdca.c | 27 +-
sound/soc/codecs/rt711.c | 27 +-
sound/soc/codecs/rt715-sdca.c | 25 +-
sound/soc/codecs/rt715.c | 73 +-
sound/soc/codecs/sdw-mockup.c | 28 +-
sound/soc/codecs/sgtl5000.c | 1 +
sound/soc/codecs/simple-mux.c | 9 +
sound/soc/codecs/src4xxx-i2c.c | 5 +-
sound/soc/codecs/tas2780.c | 5 +-
sound/soc/codecs/tlv320adc3xxx.c | 3 +
sound/soc/codecs/tlv320aic3x.c | 120 +-
sound/soc/codecs/tlv320aic3x.h | 43 +
sound/soc/codecs/twl4030.c | 6 +-
sound/soc/codecs/wcd-clsh-v2.c | 6 -
sound/soc/codecs/wcd938x.c | 4 +-
sound/soc/codecs/wm8961.c | 7 +
sound/soc/codecs/wm8962.c | 8 +
sound/soc/codecs/wm8978.c | 2 +-
sound/soc/codecs/wm8994.c | 5 +
sound/soc/codecs/wm_adsp.c | 39 +-
sound/soc/codecs/wm_adsp.h | 1 +
sound/soc/codecs/wsa883x.c | 28 +-
sound/soc/fsl/fsl_micfil.c | 466 +
sound/soc/fsl/fsl_micfil.h | 6 +-
sound/soc/fsl/fsl_rpmsg.c | 6 +-
sound/soc/fsl/fsl_sai.c | 23 +-
sound/soc/fsl/fsl_sai.h | 1 +
sound/soc/fsl/fsl_xcvr.c | 40 +
sound/soc/fsl/fsl_xcvr.h | 21 +
sound/soc/fsl/imx-audio-rpmsg.c | 3 +-
sound/soc/fsl/imx-audmux.c | 3 +-
sound/soc/fsl/imx-pcm-rpmsg.c | 10 +-
sound/soc/fsl/imx-rpmsg.c | 6 +-
sound/soc/generic/audio-graph-card.c | 4 +-
.../generic/audio-graph-card2-custom-sample.dtsi | 10 +-
sound/soc/generic/audio-graph-card2.c | 6 +-
sound/soc/generic/simple-card-utils.c | 35 +-
sound/soc/intel/Kconfig | 3 +-
sound/soc/intel/avs/Makefile | 4 +
sound/soc/intel/avs/apl.c | 28 +-
sound/soc/intel/avs/avs.h | 92 +-
sound/soc/intel/avs/board_selection.c | 55 +
sound/soc/intel/avs/boards/Kconfig | 18 +
sound/soc/intel/avs/boards/Makefile | 4 +
sound/soc/intel/avs/boards/da7219.c | 41 +-
sound/soc/intel/avs/boards/hdaudio.c | 1 +
sound/soc/intel/avs/boards/max98373.c | 2 +-
sound/soc/intel/avs/boards/max98927.c | 236 +
sound/soc/intel/avs/boards/nau8825.c | 35 +-
sound/soc/intel/avs/boards/probe.c | 64 +
sound/soc/intel/avs/boards/rt274.c | 30 +-
sound/soc/intel/avs/boards/rt286.c | 37 +-
sound/soc/intel/avs/boards/rt298.c | 61 +-
sound/soc/intel/avs/boards/rt5682.c | 31 +-
sound/soc/intel/avs/boards/ssm4567.c | 2 +-
sound/soc/intel/avs/core.c | 118 +-
sound/soc/intel/avs/debugfs.c | 436 +
sound/soc/intel/avs/ipc.c | 10 +-
sound/soc/intel/avs/loader.c | 28 +-
sound/soc/intel/avs/messages.c | 117 +-
sound/soc/intel/avs/messages.h | 55 +
sound/soc/intel/avs/pcm.c | 422 +-
sound/soc/intel/avs/probes.c | 313 +
sound/soc/intel/avs/registers.h | 3 +-
sound/soc/intel/avs/skl.c | 21 +-
sound/soc/intel/avs/topology.c | 10 +
sound/soc/intel/avs/utils.c | 22 -
sound/soc/intel/boards/Kconfig | 1 +
sound/soc/intel/boards/Makefile | 3 +-
sound/soc/intel/boards/bdw-rt5650.c | 2 +-
sound/soc/intel/boards/bdw-rt5677.c | 2 +-
sound/soc/intel/boards/bdw_rt286.c | 55 +-
sound/soc/intel/boards/bxt_da7219_max98357a.c | 3 +-
sound/soc/intel/boards/bxt_rt298.c | 2 +-
sound/soc/intel/boards/bytcht_cx2072x.c | 2 +-
sound/soc/intel/boards/bytcht_es8316.c | 2 +-
sound/soc/intel/boards/bytcr_rt5640.c | 27 +-
sound/soc/intel/boards/bytcr_rt5651.c | 2 +-
sound/soc/intel/boards/bytcr_wm5102.c | 2 +-
sound/soc/intel/boards/cht_bsw_max98090_ti.c | 2 +-
sound/soc/intel/boards/cht_bsw_nau8824.c | 2 +-
sound/soc/intel/boards/cht_bsw_rt5645.c | 2 +-
sound/soc/intel/boards/cht_bsw_rt5672.c | 2 +-
sound/soc/intel/boards/kbl_da7219_max98357a.c | 3 +-
sound/soc/intel/boards/kbl_da7219_max98927.c | 3 +-
sound/soc/intel/boards/skl_nau88l25_max98357a.c | 2 +-
sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 2 +-
sound/soc/intel/boards/sof_cirrus_common.c | 2 +-
sound/soc/intel/boards/sof_da7219_max98373.c | 4 +-
sound/soc/intel/boards/sof_es8336.c | 2 +-
sound/soc/intel/boards/sof_nau8825.c | 16 +
sound/soc/intel/boards/sof_realtek_common.c | 3 +-
sound/soc/intel/boards/sof_rt5682.c | 13 +-
sound/soc/intel/boards/sof_sdw.c | 54 +-
sound/soc/intel/boards/sof_sdw_amp_coeff_tables.h | 300 +
sound/soc/intel/boards/sof_sdw_common.h | 12 +-
sound/soc/intel/boards/sof_sdw_rt1308.c | 158 -
sound/soc/intel/boards/sof_sdw_rt1316.c | 120 -
sound/soc/intel/boards/sof_sdw_rt_amp.c | 359 +
sound/soc/intel/common/soc-acpi-intel-adl-match.c | 16 +-
sound/soc/intel/common/soc-acpi-intel-jsl-match.c | 5 +
sound/soc/intel/common/soc-acpi-intel-mtl-match.c | 59 +
sound/soc/intel/common/soc-acpi-intel-rpl-match.c | 157 +
sound/soc/intel/skylake/skl-messages.c | 6 +-
sound/soc/intel/skylake/skl-pcm.c | 35 +-
sound/soc/intel/skylake/skl-sst-cldma.c | 27 +-
sound/soc/intel/skylake/skl-topology.c | 73 +-
sound/soc/intel/skylake/skl-topology.h | 1 -
sound/soc/intel/skylake/skl.c | 16 +-
sound/soc/jz4740/Kconfig | 1 +
sound/soc/jz4740/jz4740-i2s.c | 485 +-
sound/soc/jz4740/jz4740-i2s.h | 10 -
sound/soc/kirkwood/kirkwood-i2s.c | 135 +-
sound/soc/kirkwood/kirkwood.h | 2 +
sound/soc/mediatek/common/mtk-btcvsd.c | 6 +-
sound/soc/mediatek/mt2701/mt2701-cs42448.c | 1 +
sound/soc/mediatek/mt2701/mt2701-wm8960.c | 1 +
sound/soc/mediatek/mt6797/mt6797-mt6351.c | 1 +
sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 20 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 7 +-
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 4 +-
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 15 +-
.../mt8186/mt8186-mt6366-da7219-max98357.c | 7 +-
.../mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c | 105 +-
.../mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 1 +
sound/soc/mediatek/mt8195/mt8195-mt6359.c | 31 +
sound/soc/meson/axg-pdm.c | 2 +-
sound/soc/pxa/mmp-pcm.c | 2 +-
sound/soc/qcom/Kconfig | 16 +-
sound/soc/qcom/common.c | 2 -
sound/soc/qcom/common.h | 23 -
sound/soc/qcom/lpass-sc7180.c | 23 +
sound/soc/qcom/lpass-sc7280.c | 19 +
sound/soc/qcom/qdsp6/audioreach.c | 310 +-
sound/soc/qcom/qdsp6/audioreach.h | 47 +-
sound/soc/qcom/qdsp6/q6apm.c | 84 +-
sound/soc/qcom/qdsp6/q6apm.h | 6 +-
sound/soc/qcom/qdsp6/q6prm.c | 2 +-
sound/soc/qcom/qdsp6/topology.c | 243 +-
sound/soc/rockchip/rk3399_gru_sound.c | 3 +-
sound/soc/rockchip/rockchip_i2s_tdm.c | 19 +-
sound/soc/rockchip/rockchip_pdm.c | 1 +
sound/soc/rockchip/rockchip_spdif.c | 1 +
sound/soc/sh/Kconfig | 2 +-
sound/soc/sh/rcar/adg.c | 4 +-
sound/soc/sh/rcar/core.c | 7 +-
sound/soc/soc-core.c | 8 +-
sound/soc/soc-dai.c | 11 +-
sound/soc/soc-dapm.c | 189 +-
sound/soc/soc-ops.c | 11 +-
sound/soc/soc-pcm.c | 39 +-
sound/soc/sof/Kconfig | 20 +-
sound/soc/sof/Makefile | 6 +
sound/soc/sof/amd/Kconfig | 1 +
sound/soc/sof/amd/acp-common.c | 109 +
sound/soc/sof/amd/acp-ipc.c | 43 +-
sound/soc/sof/amd/acp-loader.c | 6 +-
sound/soc/sof/amd/acp.c | 12 +-
sound/soc/sof/amd/acp.h | 18 +
sound/soc/sof/amd/rembrandt.c | 16 +
sound/soc/sof/amd/renoir.c | 16 +
sound/soc/sof/core.c | 9 -
sound/soc/sof/intel/Kconfig | 2 +-
sound/soc/sof/intel/Makefile | 2 +-
sound/soc/sof/intel/apl.c | 4 +
sound/soc/sof/intel/bdw.c | 6 +-
sound/soc/sof/intel/byt.c | 12 +-
sound/soc/sof/intel/cnl.c | 35 +-
sound/soc/sof/intel/hda-bus.c | 23 +-
sound/soc/sof/intel/hda-codec.c | 252 +-
sound/soc/sof/intel/hda-common-ops.c | 6 +-
sound/soc/sof/intel/hda-ctrl.c | 102 +-
sound/soc/sof/intel/hda-dai.c | 95 +-
sound/soc/sof/intel/hda-dsp.c | 155 +-
sound/soc/sof/intel/hda-ipc.c | 27 +-
sound/soc/sof/intel/hda-loader-skl.c | 37 +-
sound/soc/sof/intel/hda-loader.c | 98 +-
sound/soc/sof/intel/hda-mlink.c | 89 +
sound/soc/sof/intel/hda-pcm.c | 3 +-
sound/soc/sof/intel/hda-stream.c | 93 +-
sound/soc/sof/intel/hda.c | 141 +-
sound/soc/sof/intel/hda.h | 114 +-
sound/soc/sof/intel/icl.c | 6 +
sound/soc/sof/intel/mtl.c | 161 +-
sound/soc/sof/intel/mtl.h | 2 +
sound/soc/sof/intel/pci-apl.c | 6 +
sound/soc/sof/intel/pci-cnl.c | 9 +
sound/soc/sof/intel/pci-icl.c | 6 +
sound/soc/sof/intel/pci-mtl.c | 3 +
sound/soc/sof/intel/pci-tgl.c | 24 +
sound/soc/sof/intel/pci-tng.c | 6 +-
sound/soc/sof/intel/shim.h | 3 +
sound/soc/sof/intel/tgl.c | 17 +-
sound/soc/sof/ipc.c | 14 +
sound/soc/sof/ipc3-loader.c | 26 +-
sound/soc/sof/ipc3-pcm.c | 2 +
sound/soc/sof/ipc3-topology.c | 36 +-
sound/soc/sof/ipc3.c | 4 +-
sound/soc/sof/ipc4-loader.c | 244 +-
sound/soc/sof/ipc4-pcm.c | 4 +-
sound/soc/sof/ipc4-priv.h | 67 +-
sound/soc/sof/ipc4-topology.c | 214 +-
sound/soc/sof/ipc4.c | 45 +-
sound/soc/sof/loader.c | 25 +-
sound/soc/sof/mediatek/mt8186/mt8186.c | 7 +
sound/soc/sof/mediatek/mtk-adsp-common.c | 2 +-
sound/soc/sof/ops.h | 51 +-
sound/soc/sof/sof-audio.c | 5 +
sound/soc/sof/sof-audio.h | 43 +
sound/soc/sof/sof-client-probes-ipc3.c | 236 +
sound/soc/sof/sof-client-probes-ipc4.c | 281 +
sound/soc/sof/sof-client-probes.c | 278 +-
sound/soc/sof/sof-client-probes.h | 34 +
sound/soc/sof/sof-client.c | 34 +
sound/soc/sof/sof-client.h | 6 +
sound/soc/sof/sof-pci-dev.c | 26 +
sound/soc/sof/sof-priv.h | 36 +-
sound/soc/sof/topology.c | 187 +-
sound/soc/stm/stm32_i2s.c | 2 +-
sound/soc/sunxi/sun50i-dmic.c | 5 +-
sound/soc/tegra/tegra210_mbdrc.c | 4 +-
sound/soc/tegra/tegra210_mbdrc.h | 2 +-
sound/soc/ti/davinci-mcasp.c | 7 +-
sound/soc/uniphier/aio-core.c | 11 +-
sound/sound_core.c | 2 +-
sound/synth/emux/emux.c | 2 +-
sound/usb/card.h | 1 +
sound/usb/endpoint.c | 23 +-
sound/usb/endpoint.h | 3 +-
sound/usb/implicit.c | 6 +-
sound/usb/implicit.h | 2 +-
sound/usb/line6/driver.c | 3 +-
sound/usb/line6/midi.c | 6 +-
sound/usb/line6/midibuf.c | 25 +-
sound/usb/line6/midibuf.h | 5 +-
sound/usb/line6/pod.c | 3 +-
sound/usb/pcm.c | 49 +-
sound/usb/pcm.h | 2 +
sound/usb/quirks-table.h | 2 +
sound/usb/quirks.c | 4 +
sound/usb/usbaudio.h | 8 +
tools/accounting/procacct.c | 7 +-
tools/arch/parisc/include/uapi/asm/mman.h | 12 +-
tools/arch/x86/include/asm/atomic.h | 11 +
tools/arch/x86/include/asm/cpufeatures.h | 6 +
tools/arch/x86/include/asm/disabled-features.h | 17 +-
tools/arch/x86/include/asm/msr-index.h | 24 +-
tools/arch/x86/include/uapi/asm/kvm.h | 8 -
tools/arch/x86/intel_sdsi/intel_sdsi.c | 464 +-
tools/bpf/bpftool/Documentation/bpftool-map.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 15 +-
tools/bpf/bpftool/Documentation/common_options.rst | 17 +-
tools/bpf/bpftool/Documentation/substitutions.rst | 2 +-
tools/bpf/bpftool/Makefile | 74 +-
tools/bpf/bpftool/bash-completion/bpftool | 3 +-
tools/bpf/bpftool/btf.c | 44 +-
tools/bpf/bpftool/btf_dumper.c | 2 +-
tools/bpf/bpftool/common.c | 23 +-
tools/bpf/bpftool/gen.c | 29 +-
tools/bpf/bpftool/iter.c | 12 +-
tools/bpf/bpftool/jit_disasm.c | 261 +-
tools/bpf/bpftool/link.c | 10 +-
tools/bpf/bpftool/main.c | 116 +-
tools/bpf/bpftool/main.h | 49 +-
tools/bpf/bpftool/map.c | 33 +-
tools/bpf/bpftool/net.c | 2 +
tools/bpf/bpftool/perf.c | 2 +
tools/bpf/bpftool/pids.c | 16 +-
tools/bpf/bpftool/prog.c | 124 +-
tools/bpf/bpftool/struct_ops.c | 22 +-
tools/bpf/bpftool/xlated_dumper.c | 2 +
tools/include/asm-generic/atomic-gcc.h | 23 +
tools/include/asm-generic/bitops/atomic.h | 15 +-
tools/include/linux/bitfield.h | 176 +
tools/include/linux/bitmap.h | 34 -
tools/include/linux/interval_tree_generic.h | 187 +
tools/include/uapi/drm/i915_drm.h | 62 +-
tools/include/uapi/linux/bpf.h | 524 +-
tools/include/uapi/linux/fscrypt.h | 4 +-
tools/include/uapi/linux/if_link.h | 1 +
tools/include/uapi/linux/kvm.h | 31 +-
tools/lib/api/Makefile | 66 +
tools/lib/api/fs/tracing_path.c | 16 +
tools/lib/api/fs/tracing_path.h | 1 +
tools/lib/bpf/Makefile | 18 +
tools/lib/bpf/bpf.c | 48 +-
tools/lib/bpf/bpf.h | 23 +
tools/lib/bpf/btf.c | 272 +-
tools/lib/bpf/btf_dump.c | 46 +-
tools/lib/bpf/hashmap.c | 18 +-
tools/lib/bpf/hashmap.h | 91 +-
tools/lib/bpf/libbpf.c | 268 +-
tools/lib/bpf/libbpf.map | 6 +-
tools/lib/bpf/libbpf_probes.c | 3 +-
tools/lib/bpf/ringbuf.c | 30 +-
tools/lib/bpf/strset.c | 18 +-
tools/lib/bpf/usdt.c | 63 +-
tools/lib/perf/Makefile | 37 +-
tools/lib/perf/include/perf/cpumap.h | 3 +-
tools/lib/subcmd/Makefile | 52 +
tools/lib/symbol/Build | 1 +
tools/lib/symbol/Makefile | 122 +
tools/lib/traceevent/.gitignore | 4 -
tools/lib/traceevent/Build | 8 -
tools/lib/traceevent/Documentation/Makefile | 207 -
tools/lib/traceevent/Documentation/asciidoc.conf | 120 -
.../Documentation/libtraceevent-commands.txt | 153 -
.../Documentation/libtraceevent-cpus.txt | 77 -
.../Documentation/libtraceevent-endian_read.txt | 78 -
.../Documentation/libtraceevent-event_find.txt | 103 -
.../Documentation/libtraceevent-event_get.txt | 99 -
.../Documentation/libtraceevent-event_list.txt | 122 -
.../Documentation/libtraceevent-event_print.txt | 130 -
.../Documentation/libtraceevent-field_find.txt | 118 -
.../Documentation/libtraceevent-field_get_val.txt | 122 -
.../Documentation/libtraceevent-field_print.txt | 126 -
.../Documentation/libtraceevent-field_read.txt | 81 -
.../Documentation/libtraceevent-fields.txt | 105 -
.../Documentation/libtraceevent-file_endian.txt | 91 -
.../Documentation/libtraceevent-filter.txt | 209 -
.../Documentation/libtraceevent-func_apis.txt | 183 -
.../Documentation/libtraceevent-func_find.txt | 88 -
.../Documentation/libtraceevent-handle.txt | 101 -
.../Documentation/libtraceevent-header_page.txt | 102 -
.../Documentation/libtraceevent-host_endian.txt | 104 -
.../Documentation/libtraceevent-long_size.txt | 78 -
.../Documentation/libtraceevent-page_size.txt | 82 -
.../Documentation/libtraceevent-parse_event.txt | 90 -
.../Documentation/libtraceevent-parse_head.txt | 82 -
.../Documentation/libtraceevent-plugins.txt | 122 -
.../Documentation/libtraceevent-record_parse.txt | 137 -
.../libtraceevent-reg_event_handler.txt | 156 -
.../Documentation/libtraceevent-reg_print_func.txt | 155 -
.../Documentation/libtraceevent-set_flag.txt | 104 -
.../Documentation/libtraceevent-strerror.txt | 85 -
.../Documentation/libtraceevent-tseq.txt | 158 -
.../lib/traceevent/Documentation/libtraceevent.txt | 192 -
.../lib/traceevent/Documentation/manpage-1.72.xsl | 14 -
.../lib/traceevent/Documentation/manpage-base.xsl | 35 -
.../Documentation/manpage-bold-literal.xsl | 17 -
.../traceevent/Documentation/manpage-normal.xsl | 13 -
.../Documentation/manpage-suppress-sp.xsl | 21 -
tools/lib/traceevent/Makefile | 300 -
tools/lib/traceevent/event-parse-api.c | 333 -
tools/lib/traceevent/event-parse-local.h | 123 -
tools/lib/traceevent/event-parse.c | 7624 ----
tools/lib/traceevent/event-parse.h | 750 -
tools/lib/traceevent/event-plugin.c | 711 -
tools/lib/traceevent/event-utils.h | 67 -
tools/lib/traceevent/kbuffer-parse.c | 809 -
tools/lib/traceevent/kbuffer.h | 68 -
tools/lib/traceevent/libtraceevent.pc.template | 10 -
tools/lib/traceevent/parse-filter.c | 2281 -
tools/lib/traceevent/parse-utils.c | 71 -
tools/lib/traceevent/plugins/Build | 12 -
tools/lib/traceevent/plugins/Makefile | 225 -
tools/lib/traceevent/plugins/plugin_cfg80211.c | 43 -
tools/lib/traceevent/plugins/plugin_function.c | 282 -
tools/lib/traceevent/plugins/plugin_futex.c | 123 -
tools/lib/traceevent/plugins/plugin_hrtimer.c | 74 -
tools/lib/traceevent/plugins/plugin_jbd2.c | 61 -
tools/lib/traceevent/plugins/plugin_kmem.c | 80 -
tools/lib/traceevent/plugins/plugin_kvm.c | 527 -
tools/lib/traceevent/plugins/plugin_mac80211.c | 88 -
tools/lib/traceevent/plugins/plugin_sched_switch.c | 146 -
tools/lib/traceevent/plugins/plugin_scsi.c | 434 -
tools/lib/traceevent/plugins/plugin_tlb.c | 66 -
tools/lib/traceevent/plugins/plugin_xen.c | 138 -
tools/lib/traceevent/tep_strerror.c | 53 -
tools/lib/traceevent/trace-seq.c | 249 -
tools/lib/traceevent/trace-seq.h | 55 -
tools/memory-model/Documentation/explanation.txt | 7 +-
tools/objtool/arch/powerpc/Build | 2 +
tools/objtool/arch/powerpc/decode.c | 110 +
tools/objtool/arch/powerpc/include/arch/cfi_regs.h | 11 +
tools/objtool/arch/powerpc/include/arch/elf.h | 10 +
tools/objtool/arch/powerpc/include/arch/special.h | 21 +
tools/objtool/arch/powerpc/special.c | 19 +
tools/objtool/arch/x86/decode.c | 29 +
tools/objtool/arch/x86/include/arch/elf.h | 2 +
tools/objtool/arch/x86/include/arch/endianness.h | 9 -
tools/objtool/builtin-check.c | 23 +-
tools/objtool/check.c | 448 +-
tools/objtool/elf.c | 304 +-
tools/objtool/include/objtool/arch.h | 4 +
tools/objtool/include/objtool/builtin.h | 4 +
tools/objtool/include/objtool/check.h | 12 +-
tools/objtool/include/objtool/elf.h | 17 +-
tools/objtool/include/objtool/endianness.h | 32 +-
tools/objtool/include/objtool/objtool.h | 1 +
tools/objtool/objtool.c | 1 +
tools/objtool/orc_dump.c | 11 +-
tools/objtool/orc_gen.c | 4 +-
tools/objtool/special.c | 3 +-
tools/perf/.gitignore | 7 +-
tools/perf/Build | 20 +-
tools/perf/Documentation/perf-annotate.txt | 2 +-
tools/perf/Documentation/perf-diff.txt | 2 +-
tools/perf/Documentation/perf-intel-pt.txt | 12 +-
tools/perf/Documentation/perf-list.txt | 10 +-
tools/perf/Documentation/perf-lock.txt | 33 +-
tools/perf/Documentation/perf-probe.txt | 2 +-
tools/perf/Documentation/perf-record.txt | 11 +-
tools/perf/Documentation/perf-report.txt | 2 +-
tools/perf/Documentation/perf-stat.txt | 4 +-
tools/perf/Documentation/perf-top.txt | 7 +-
tools/perf/MANIFEST | 4 +-
tools/perf/Makefile | 2 +-
tools/perf/Makefile.config | 69 +-
tools/perf/Makefile.perf | 173 +-
tools/perf/arch/arm/util/unwind-libdw.c | 2 +-
tools/perf/arch/arm64/entry/syscalls/mksyscalltbl | 25 +-
tools/perf/arch/arm64/util/Build | 2 +-
tools/perf/arch/arm64/util/machine.c | 1 +
tools/perf/arch/arm64/util/pmu.c | 1 +
tools/perf/arch/arm64/util/unwind-libdw.c | 2 +-
tools/perf/arch/powerpc/entry/syscalls/syscall.tbl | 7 +-
tools/perf/arch/powerpc/util/Build | 2 +-
tools/perf/arch/powerpc/util/event.c | 1 +
tools/perf/arch/powerpc/util/unwind-libdw.c | 2 +-
tools/perf/arch/riscv/util/Build | 1 +
tools/perf/arch/riscv/util/header.c | 104 +
tools/perf/arch/s390/util/Build | 2 +-
tools/perf/arch/s390/util/unwind-libdw.c | 1 +
tools/perf/arch/x86/include/arch-tests.h | 1 +
tools/perf/arch/x86/tests/Build | 2 +-
tools/perf/arch/x86/tests/arch-tests.c | 15 +-
...intel-pt-pkt-decoder-test.c => intel-pt-test.c} | 154 +
tools/perf/arch/x86/tests/sample-parsing.c | 1 +
tools/perf/arch/x86/util/Build | 2 +-
tools/perf/arch/x86/util/event.c | 2 +
tools/perf/arch/x86/util/intel-pt.c | 4 +
tools/perf/arch/x86/util/iostat.c | 4 +-
tools/perf/arch/x86/util/tsc.c | 1 +
tools/perf/arch/x86/util/unwind-libdw.c | 2 +-
tools/perf/bench/bench.h | 12 -
tools/perf/bench/find-bit-bench.c | 2 +-
tools/perf/bench/inject-buildid.c | 2 +-
tools/perf/bench/numa.c | 9 +-
tools/perf/builtin-annotate.c | 4 +-
tools/perf/builtin-c2c.c | 6 +-
tools/perf/builtin-daemon.c | 4 +-
tools/perf/builtin-data.c | 5 +-
tools/perf/builtin-diff.c | 2 +-
tools/perf/builtin-ftrace.c | 4 +-
tools/perf/builtin-inject.c | 8 +
tools/perf/builtin-kmem.c | 1 +
tools/perf/builtin-kvm.c | 12 +-
tools/perf/builtin-kwork.c | 13 +-
tools/perf/builtin-list.c | 565 +-
tools/perf/builtin-lock.c | 544 +-
tools/perf/builtin-mem.c | 1 +
tools/perf/builtin-probe.c | 22 +-
tools/perf/builtin-record.c | 24 +-
tools/perf/builtin-report.c | 11 +-
tools/perf/builtin-sched.c | 2 +-
tools/perf/builtin-script.c | 25 +-
tools/perf/builtin-stat.c | 254 +-
tools/perf/builtin-timechart.c | 1 +
tools/perf/builtin-top.c | 6 +-
tools/perf/builtin-trace.c | 153 +-
tools/perf/builtin-version.c | 1 +
tools/perf/dlfilters/dlfilter-test-api-v0.c | 2 +-
tools/perf/examples/bpf/5sec.c | 8 +-
tools/perf/examples/bpf/augmented_raw_syscalls.c | 175 +-
tools/perf/examples/bpf/augmented_syscalls.c | 169 -
tools/perf/examples/bpf/empty.c | 13 +-
tools/perf/examples/bpf/etcsnoop.c | 76 -
tools/perf/examples/bpf/hello.c | 24 +-
tools/perf/include/bpf/bpf.h | 70 -
tools/perf/include/bpf/linux/socket.h | 24 -
tools/perf/include/bpf/pid_filter.h | 21 -
tools/perf/include/bpf/stdio.h | 16 -
tools/perf/include/bpf/unistd.h | 10 -
tools/perf/perf.c | 24 +-
tools/perf/pmu-events/Build | 2 +-
.../{neoverse-n2 => neoverse-n2-v2}/branch.json | 0
.../arm/{neoverse-n2 => neoverse-n2-v2}/bus.json | 0
.../arm/{neoverse-n2 => neoverse-n2-v2}/cache.json | 0
.../{neoverse-n2 => neoverse-n2-v2}/exception.json | 0
.../instruction.json | 0
.../{neoverse-n2 => neoverse-n2-v2}/memory.json | 0
.../{neoverse-n2 => neoverse-n2-v2}/pipeline.json | 0
.../arm/{neoverse-n2 => neoverse-n2-v2}/spe.json | 0
.../arm/{neoverse-n2 => neoverse-n2-v2}/trace.json | 0
tools/perf/pmu-events/arch/arm64/mapfile.csv | 3 +-
tools/perf/pmu-events/arch/riscv/mapfile.csv | 17 +
.../pmu-events/arch/riscv/riscv-sbi-firmware.json | 134 +
.../pmu-events/arch/riscv/sifive/u74/firmware.json | 68 +
.../arch/riscv/sifive/u74/instructions.json | 92 +
.../pmu-events/arch/riscv/sifive/u74/memory.json | 32 +
.../arch/riscv/sifive/u74/microarch.json | 57 +
.../pmu-events/arch/x86/alderlake/adl-metrics.json | 183 +-
.../perf/pmu-events/arch/x86/alderlake/cache.json | 1391 +-
.../arch/x86/alderlake/floating-point.json | 91 +-
.../pmu-events/arch/x86/alderlake/frontend.json | 224 +-
.../perf/pmu-events/arch/x86/alderlake/memory.json | 214 +-
.../perf/pmu-events/arch/x86/alderlake/other.json | 132 +-
.../pmu-events/arch/x86/alderlake/pipeline.json | 1932 +-
.../arch/x86/alderlake/uncore-memory.json | 185 +-
.../arch/x86/alderlake/uncore-other.json | 73 +-
.../arch/x86/alderlake/virtual-memory.json | 223 +-
.../arch/x86/alderlaken/adln-metrics.json | 583 +
.../perf/pmu-events/arch/x86/alderlaken/cache.json | 330 +
.../arch/x86/alderlaken/floating-point.json | 18 +
.../pmu-events/arch/x86/alderlaken/frontend.json | 26 +
.../pmu-events/arch/x86/alderlaken/memory.json | 81 +
.../perf/pmu-events/arch/x86/alderlaken/other.json | 38 +
.../pmu-events/arch/x86/alderlaken/pipeline.json | 533 +
.../arch/x86/alderlaken/uncore-memory.json | 175 +
.../arch/x86/alderlaken/uncore-other.json | 33 +
.../arch/x86/alderlaken/virtual-memory.json | 47 +
tools/perf/pmu-events/arch/x86/amdzen4/branch.json | 82 +
tools/perf/pmu-events/arch/x86/amdzen4/cache.json | 772 +
tools/perf/pmu-events/arch/x86/amdzen4/core.json | 122 +
.../pmu-events/arch/x86/amdzen4/data-fabric.json | 1090 +
.../arch/x86/amdzen4/floating-point.json | 818 +
tools/perf/pmu-events/arch/x86/amdzen4/memory.json | 174 +
tools/perf/pmu-events/arch/x86/amdzen4/other.json | 138 +
.../perf/pmu-events/arch/x86/amdzen4/pipeline.json | 98 +
.../pmu-events/arch/x86/amdzen4/recommended.json | 334 +
tools/perf/pmu-events/arch/x86/bonnell/cache.json | 93 -
.../arch/x86/bonnell/floating-point.json | 47 +-
.../perf/pmu-events/arch/x86/bonnell/frontend.json | 11 -
tools/perf/pmu-events/arch/x86/bonnell/memory.json | 19 -
tools/perf/pmu-events/arch/x86/bonnell/other.json | 74 +-
.../perf/pmu-events/arch/x86/bonnell/pipeline.json | 65 +-
.../arch/x86/bonnell/virtual-memory.json | 15 -
.../pmu-events/arch/x86/broadwell/bdw-metrics.json | 137 +-
.../perf/pmu-events/arch/x86/broadwell/cache.json | 957 -
.../arch/x86/broadwell/floating-point.json | 40 -
.../pmu-events/arch/x86/broadwell/frontend.json | 56 -
.../perf/pmu-events/arch/x86/broadwell/memory.json | 890 -
.../perf/pmu-events/arch/x86/broadwell/other.json | 8 -
.../pmu-events/arch/x86/broadwell/pipeline.json | 272 -
.../arch/x86/broadwell/uncore-cache.json | 19 -
.../arch/x86/broadwell/uncore-other.json | 25 +-
.../arch/x86/broadwell/virtual-memory.json | 76 -
.../arch/x86/broadwellde/bdwde-metrics.json | 143 +-
.../pmu-events/arch/x86/broadwellde/cache.json | 153 -
.../arch/x86/broadwellde/floating-point.json | 40 -
.../pmu-events/arch/x86/broadwellde/frontend.json | 56 -
.../pmu-events/arch/x86/broadwellde/memory.json | 86 -
.../pmu-events/arch/x86/broadwellde/other.json | 8 -
.../pmu-events/arch/x86/broadwellde/pipeline.json | 272 -
.../arch/x86/broadwellde/uncore-cache.json | 414 +-
.../arch/x86/broadwellde/uncore-memory.json | 477 +-
.../arch/x86/broadwellde/uncore-other.json | 163 +-
.../arch/x86/broadwellde/uncore-power.json | 57 -
.../arch/x86/broadwellde/virtual-memory.json | 76 -
.../arch/x86/broadwellx/bdx-metrics.json | 1703 +-
.../perf/pmu-events/arch/x86/broadwellx/cache.json | 191 -
.../arch/x86/broadwellx/floating-point.json | 40 -
.../pmu-events/arch/x86/broadwellx/frontend.json | 56 -
.../pmu-events/arch/x86/broadwellx/memory.json | 143 -
.../perf/pmu-events/arch/x86/broadwellx/other.json | 8 -
.../pmu-events/arch/x86/broadwellx/pipeline.json | 272 -
.../arch/x86/broadwellx/uncore-cache.json | 3740 +-
.../arch/x86/broadwellx/uncore-interconnect.json | 1225 +-
.../arch/x86/broadwellx/uncore-memory.json | 2052 +-
.../arch/x86/broadwellx/uncore-other.json | 2410 +-
.../arch/x86/broadwellx/uncore-power.json | 198 +-
.../arch/x86/broadwellx/virtual-memory.json | 76 -
.../pmu-events/arch/x86/cascadelakex/cache.json | 3644 --
.../arch/x86/cascadelakex/clx-metrics.json | 2217 +-
.../arch/x86/cascadelakex/floating-point.json | 24 -
.../pmu-events/arch/x86/cascadelakex/frontend.json | 109 -
.../pmu-events/arch/x86/cascadelakex/memory.json | 2194 -
.../pmu-events/arch/x86/cascadelakex/other.json | 490 -
.../pmu-events/arch/x86/cascadelakex/pipeline.json | 194 -
.../arch/x86/cascadelakex/uncore-memory.json | 3185 +-
.../arch/x86/cascadelakex/uncore-other.json | 29770 ++++++------
.../arch/x86/cascadelakex/uncore-power.json | 45 +-
.../arch/x86/cascadelakex/virtual-memory.json | 56 -
.../pmu-events/arch/x86/elkhartlake/cache.json | 252 -
.../arch/x86/elkhartlake/floating-point.json | 11 -
.../pmu-events/arch/x86/elkhartlake/frontend.json | 36 -
.../pmu-events/arch/x86/elkhartlake/memory.json | 84 -
.../pmu-events/arch/x86/elkhartlake/other.json | 143 -
.../pmu-events/arch/x86/elkhartlake/pipeline.json | 213 -
.../arch/x86/elkhartlake/virtual-memory.json | 117 -
tools/perf/pmu-events/arch/x86/goldmont/cache.json | 288 -
.../arch/x86/goldmont/floating-point.json | 6 -
.../pmu-events/arch/x86/goldmont/frontend.json | 16 -
.../perf/pmu-events/arch/x86/goldmont/memory.json | 6 -
tools/perf/pmu-events/arch/x86/goldmont/other.json | 10 -
.../pmu-events/arch/x86/goldmont/pipeline.json | 77 -
.../arch/x86/goldmont/virtual-memory.json | 14 -
.../pmu-events/arch/x86/goldmontplus/cache.json | 470 -
.../arch/x86/goldmontplus/floating-point.json | 11 -
.../pmu-events/arch/x86/goldmontplus/frontend.json | 32 -
.../pmu-events/arch/x86/goldmontplus/memory.json | 10 -
.../pmu-events/arch/x86/goldmontplus/other.json | 20 -
.../pmu-events/arch/x86/goldmontplus/pipeline.json | 143 -
.../arch/x86/goldmontplus/virtual-memory.json | 69 -
tools/perf/pmu-events/arch/x86/haswell/cache.json | 211 -
.../arch/x86/haswell/floating-point.json | 20 -
.../perf/pmu-events/arch/x86/haswell/frontend.json | 58 -
.../pmu-events/arch/x86/haswell/hsw-metrics.json | 117 +-
tools/perf/pmu-events/arch/x86/haswell/memory.json | 149 -
tools/perf/pmu-events/arch/x86/haswell/other.json | 8 -
.../perf/pmu-events/arch/x86/haswell/pipeline.json | 258 -
.../pmu-events/arch/x86/haswell/uncore-cache.json | 50 -
.../pmu-events/arch/x86/haswell/uncore-other.json | 21 +-
.../arch/x86/haswell/virtual-memory.json | 98 -
tools/perf/pmu-events/arch/x86/haswellx/cache.json | 217 -
.../arch/x86/haswellx/floating-point.json | 20 -
.../pmu-events/arch/x86/haswellx/frontend.json | 58 -
.../pmu-events/arch/x86/haswellx/hsx-metrics.json | 1467 +-
.../perf/pmu-events/arch/x86/haswellx/memory.json | 170 -
tools/perf/pmu-events/arch/x86/haswellx/other.json | 8 -
.../pmu-events/arch/x86/haswellx/pipeline.json | 258 -
.../pmu-events/arch/x86/haswellx/uncore-cache.json | 2448 +-
.../arch/x86/haswellx/uncore-interconnect.json | 722 +-
.../arch/x86/haswellx/uncore-memory.json | 2037 +-
.../pmu-events/arch/x86/haswellx/uncore-other.json | 1834 +-
.../pmu-events/arch/x86/haswellx/uncore-power.json | 150 +-
.../arch/x86/haswellx/virtual-memory.json | 98 -
tools/perf/pmu-events/arch/x86/icelake/cache.json | 412 -
.../arch/x86/icelake/floating-point.json | 28 -
.../perf/pmu-events/arch/x86/icelake/frontend.json | 144 -
.../pmu-events/arch/x86/icelake/icl-metrics.json | 151 +-
tools/perf/pmu-events/arch/x86/icelake/memory.json | 171 -
tools/perf/pmu-events/arch/x86/icelake/other.json | 132 -
.../perf/pmu-events/arch/x86/icelake/pipeline.json | 349 +-
.../pmu-events/arch/x86/icelake/uncore-other.json | 10 +-
.../arch/x86/icelake/virtual-memory.json | 80 -
tools/perf/pmu-events/arch/x86/icelakex/cache.json | 316 +-
.../arch/x86/icelakex/floating-point.json | 28 -
.../pmu-events/arch/x86/icelakex/frontend.json | 140 -
.../pmu-events/arch/x86/icelakex/icx-metrics.json | 2192 +-
.../perf/pmu-events/arch/x86/icelakex/memory.json | 139 +-
tools/perf/pmu-events/arch/x86/icelakex/other.json | 117 -
.../pmu-events/arch/x86/icelakex/pipeline.json | 344 +-
.../arch/x86/icelakex/uncore-memory.json | 1878 +-
.../pmu-events/arch/x86/icelakex/uncore-other.json | 45144 +++++++++----------
.../pmu-events/arch/x86/icelakex/uncore-power.json | 115 +-
.../arch/x86/icelakex/virtual-memory.json | 88 -
.../perf/pmu-events/arch/x86/ivybridge/cache.json | 235 -
.../arch/x86/ivybridge/floating-point.json | 34 -
.../pmu-events/arch/x86/ivybridge/frontend.json | 60 -
.../pmu-events/arch/x86/ivybridge/ivb-metrics.json | 119 +-
.../perf/pmu-events/arch/x86/ivybridge/memory.json | 54 -
.../perf/pmu-events/arch/x86/ivybridge/other.json | 8 -
.../pmu-events/arch/x86/ivybridge/pipeline.json | 250 -
.../arch/x86/ivybridge/uncore-cache.json | 50 -
.../arch/x86/ivybridge/uncore-other.json | 28 +-
.../arch/x86/ivybridge/virtual-memory.json | 36 -
tools/perf/pmu-events/arch/x86/ivytown/cache.json | 274 -
.../arch/x86/ivytown/floating-point.json | 34 -
.../perf/pmu-events/arch/x86/ivytown/frontend.json | 60 -
.../pmu-events/arch/x86/ivytown/ivt-metrics.json | 133 +-
tools/perf/pmu-events/arch/x86/ivytown/memory.json | 121 -
tools/perf/pmu-events/arch/x86/ivytown/other.json | 8 -
.../perf/pmu-events/arch/x86/ivytown/pipeline.json | 250 -
.../pmu-events/arch/x86/ivytown/uncore-cache.json | 388 +-
.../arch/x86/ivytown/uncore-interconnect.json | 505 +-
.../pmu-events/arch/x86/ivytown/uncore-memory.json | 209 +-
.../pmu-events/arch/x86/ivytown/uncore-other.json | 254 +-
.../pmu-events/arch/x86/ivytown/uncore-power.json | 95 -
.../arch/x86/ivytown/virtual-memory.json | 40 -
tools/perf/pmu-events/arch/x86/jaketown/cache.json | 289 -
.../arch/x86/jaketown/floating-point.json | 30 -
.../pmu-events/arch/x86/jaketown/frontend.json | 64 -
.../pmu-events/arch/x86/jaketown/jkt-metrics.json | 91 +-
.../perf/pmu-events/arch/x86/jaketown/memory.json | 103 -
tools/perf/pmu-events/arch/x86/jaketown/other.json | 12 -
.../pmu-events/arch/x86/jaketown/pipeline.json | 255 -
.../pmu-events/arch/x86/jaketown/uncore-cache.json | 266 +-
.../arch/x86/jaketown/uncore-interconnect.json | 132 -
.../arch/x86/jaketown/uncore-memory.json | 58 -
.../pmu-events/arch/x86/jaketown/uncore-other.json | 155 +-
.../pmu-events/arch/x86/jaketown/uncore-power.json | 51 -
.../arch/x86/jaketown/virtual-memory.json | 32 -
.../pmu-events/arch/x86/knightslanding/cache.json | 411 -
.../arch/x86/knightslanding/floating-point.json | 3 -
.../arch/x86/knightslanding/frontend.json | 7 -
.../pmu-events/arch/x86/knightslanding/memory.json | 201 -
.../arch/x86/knightslanding/pipeline.json | 44 -
.../arch/x86/knightslanding/uncore-other.json | 1016 +-
.../arch/x86/knightslanding/virtual-memory.json | 7 -
tools/perf/pmu-events/arch/x86/mapfile.csv | 20 +-
.../perf/pmu-events/arch/x86/meteorlake/cache.json | 170 +-
.../pmu-events/arch/x86/meteorlake/frontend.json | 6 -
.../pmu-events/arch/x86/meteorlake/memory.json | 77 +-
.../perf/pmu-events/arch/x86/meteorlake/other.json | 24 +-
.../pmu-events/arch/x86/meteorlake/pipeline.json | 222 +-
.../arch/x86/meteorlake/virtual-memory.json | 28 +-
.../perf/pmu-events/arch/x86/nehalemep/cache.json | 524 -
.../arch/x86/nehalemep/floating-point.json | 28 -
.../pmu-events/arch/x86/nehalemep/frontend.json | 3 -
.../perf/pmu-events/arch/x86/nehalemep/memory.json | 134 -
.../perf/pmu-events/arch/x86/nehalemep/other.json | 18 -
.../pmu-events/arch/x86/nehalemep/pipeline.json | 127 +-
.../arch/x86/nehalemep/virtual-memory.json | 13 -
.../perf/pmu-events/arch/x86/nehalemex/cache.json | 519 -
.../arch/x86/nehalemex/floating-point.json | 28 -
.../pmu-events/arch/x86/nehalemex/frontend.json | 3 -
.../perf/pmu-events/arch/x86/nehalemex/memory.json | 134 -
.../perf/pmu-events/arch/x86/nehalemex/other.json | 18 -
.../pmu-events/arch/x86/nehalemex/pipeline.json | 127 +-
.../arch/x86/nehalemex/virtual-memory.json | 13 -
.../pmu-events/arch/x86/sandybridge/cache.json | 441 -
.../arch/x86/sandybridge/floating-point.json | 30 -
.../pmu-events/arch/x86/sandybridge/frontend.json | 64 -
.../pmu-events/arch/x86/sandybridge/memory.json | 108 -
.../pmu-events/arch/x86/sandybridge/other.json | 12 -
.../pmu-events/arch/x86/sandybridge/pipeline.json | 257 -
.../arch/x86/sandybridge/snb-metrics.json | 83 +-
.../arch/x86/sandybridge/uncore-cache.json | 50 -
.../arch/x86/sandybridge/uncore-other.json | 28 +-
.../arch/x86/sandybridge/virtual-memory.json | 32 -
.../pmu-events/arch/x86/sapphirerapids/cache.json | 350 +-
.../arch/x86/sapphirerapids/floating-point.json | 63 -
.../arch/x86/sapphirerapids/frontend.json | 144 -
.../pmu-events/arch/x86/sapphirerapids/memory.json | 125 +-
.../pmu-events/arch/x86/sapphirerapids/other.json | 91 +-
.../arch/x86/sapphirerapids/pipeline.json | 424 +-
.../arch/x86/sapphirerapids/spr-metrics.json | 2309 +-
.../arch/x86/sapphirerapids/uncore-memory.json | 526 +-
.../arch/x86/sapphirerapids/uncore-other.json | 6606 ++-
.../arch/x86/sapphirerapids/uncore-power.json | 84 +-
.../arch/x86/sapphirerapids/virtual-memory.json | 80 -
.../perf/pmu-events/arch/x86/silvermont/cache.json | 133 -
.../arch/x86/silvermont/floating-point.json | 1 -
.../pmu-events/arch/x86/silvermont/frontend.json | 8 -
.../pmu-events/arch/x86/silvermont/memory.json | 1 -
.../perf/pmu-events/arch/x86/silvermont/other.json | 2 -
.../pmu-events/arch/x86/silvermont/pipeline.json | 35 -
.../arch/x86/silvermont/virtual-memory.json | 7 -
tools/perf/pmu-events/arch/x86/skylake/cache.json | 660 -
.../arch/x86/skylake/floating-point.json | 14 -
.../perf/pmu-events/arch/x86/skylake/frontend.json | 109 -
tools/perf/pmu-events/arch/x86/skylake/memory.json | 358 -
tools/perf/pmu-events/arch/x86/skylake/other.json | 4 -
.../perf/pmu-events/arch/x86/skylake/pipeline.json | 192 -
.../pmu-events/arch/x86/skylake/skl-metrics.json | 155 +-
.../pmu-events/arch/x86/skylake/uncore-cache.json | 18 -
.../pmu-events/arch/x86/skylake/uncore-other.json | 31 +-
.../arch/x86/skylake/virtual-memory.json | 56 -
tools/perf/pmu-events/arch/x86/skylakex/cache.json | 368 -
.../arch/x86/skylakex/floating-point.json | 18 -
.../pmu-events/arch/x86/skylakex/frontend.json | 109 -
.../perf/pmu-events/arch/x86/skylakex/memory.json | 310 -
tools/perf/pmu-events/arch/x86/skylakex/other.json | 30 -
.../pmu-events/arch/x86/skylakex/pipeline.json | 194 -
.../pmu-events/arch/x86/skylakex/skx-metrics.json | 2134 +-
.../arch/x86/skylakex/uncore-memory.json | 2303 +-
.../pmu-events/arch/x86/skylakex/uncore-other.json | 29356 ++++++------
.../pmu-events/arch/x86/skylakex/uncore-power.json | 45 +-
.../arch/x86/skylakex/virtual-memory.json | 56 -
.../perf/pmu-events/arch/x86/snowridgex/cache.json | 252 -
.../arch/x86/snowridgex/floating-point.json | 11 -
.../pmu-events/arch/x86/snowridgex/frontend.json | 36 -
.../pmu-events/arch/x86/snowridgex/memory.json | 84 -
.../perf/pmu-events/arch/x86/snowridgex/other.json | 143 -
.../pmu-events/arch/x86/snowridgex/pipeline.json | 213 -
.../arch/x86/snowridgex/uncore-memory.json | 624 +-
.../arch/x86/snowridgex/uncore-other.json | 26334 +++++------
.../arch/x86/snowridgex/uncore-power.json | 114 +-
.../arch/x86/snowridgex/virtual-memory.json | 117 -
.../perf/pmu-events/arch/x86/tigerlake/cache.json | 210 +-
.../arch/x86/tigerlake/floating-point.json | 27 -
.../pmu-events/arch/x86/tigerlake/frontend.json | 125 -
.../perf/pmu-events/arch/x86/tigerlake/memory.json | 77 -
.../perf/pmu-events/arch/x86/tigerlake/other.json | 13 -
.../pmu-events/arch/x86/tigerlake/pipeline.json | 287 +-
.../pmu-events/arch/x86/tigerlake/tgl-metrics.json | 141 +-
.../arch/x86/tigerlake/uncore-other.json | 96 +-
.../arch/x86/tigerlake/virtual-memory.json | 60 -
.../pmu-events/arch/x86/westmereep-dp/cache.json | 445 -
.../arch/x86/westmereep-dp/floating-point.json | 28 -
.../arch/x86/westmereep-dp/frontend.json | 3 -
.../pmu-events/arch/x86/westmereep-dp/memory.json | 137 -
.../pmu-events/arch/x86/westmereep-dp/other.json | 22 -
.../arch/x86/westmereep-dp/pipeline.json | 129 +-
.../arch/x86/westmereep-dp/virtual-memory.json | 21 -
.../pmu-events/arch/x86/westmereep-sp/cache.json | 517 -
.../arch/x86/westmereep-sp/floating-point.json | 28 -
.../arch/x86/westmereep-sp/frontend.json | 3 -
.../pmu-events/arch/x86/westmereep-sp/memory.json | 134 -
.../pmu-events/arch/x86/westmereep-sp/other.json | 22 -
.../arch/x86/westmereep-sp/pipeline.json | 129 +-
.../arch/x86/westmereep-sp/virtual-memory.json | 18 -
.../perf/pmu-events/arch/x86/westmereex/cache.json | 516 -
.../arch/x86/westmereex/floating-point.json | 28 -
.../pmu-events/arch/x86/westmereex/frontend.json | 3 -
.../pmu-events/arch/x86/westmereex/memory.json | 135 -
.../perf/pmu-events/arch/x86/westmereex/other.json | 22 -
.../pmu-events/arch/x86/westmereex/pipeline.json | 129 +-
.../arch/x86/westmereex/virtual-memory.json | 21 -
tools/perf/pmu-events/jevents.py | 12 +-
tools/perf/pmu-events/metric.py | 502 +
tools/perf/pmu-events/metric_test.py | 157 +
tools/perf/scripts/python/Perf-Trace-Util/Build | 2 +-
tools/perf/scripts/python/bin/task-analyzer-record | 2 +
tools/perf/scripts/python/bin/task-analyzer-report | 3 +
tools/perf/scripts/python/intel-pt-events.py | 65 +-
tools/perf/scripts/python/task-analyzer.py | 934 +
tools/perf/tests/Build | 15 +-
tools/perf/tests/attr.py | 71 +-
tools/perf/tests/attr/README | 2 -
tools/perf/tests/attr/test-record-group | 22 -
.../attr/test-record-user-regs-no-sve-aarch64 | 9 +
.../attr/test-record-user-regs-old-sve-aarch64 | 10 +
.../tests/attr/test-record-user-regs-sve-aarch64 | 14 +
tools/perf/tests/attr/test-stat-group | 17 -
tools/perf/tests/bitmap.c | 2 +-
tools/perf/tests/builtin-test.c | 38 +-
tools/perf/tests/code-reading.c | 4 +-
tools/perf/tests/cpumap.c | 2 +-
tools/perf/tests/dlfilter-test.c | 3 +-
tools/perf/tests/event_groups.c | 139 +
tools/perf/tests/expr.c | 29 +-
tools/perf/tests/make | 2 +-
tools/perf/tests/mem2node.c | 2 +-
tools/perf/tests/mmap-basic.c | 2 +
tools/perf/tests/openat-syscall-tp-fields.c | 1 +
tools/perf/tests/openat-syscall.c | 1 +
tools/perf/tests/parse-events.c | 36 +-
tools/perf/tests/parse-metric.c | 2 +-
tools/perf/tests/parse-no-sample-id-all.c | 1 +
tools/perf/tests/perf-record.c | 2 +
tools/perf/tests/perf-time-to-tsc.c | 1 +
tools/perf/tests/pmu-events.c | 26 +-
tools/perf/tests/sample-parsing.c | 4 +-
tools/perf/tests/shell/lib/probe_vfs_getname.sh | 4 +-
tools/perf/tests/shell/lock_contention.sh | 119 +-
tools/perf/tests/shell/pipe_test.sh | 55 +-
.../tests/shell/record+probe_libc_inet_pton.sh | 2 +-
.../tests/shell/record+script_probe_vfs_getname.sh | 2 +-
tools/perf/tests/shell/record.sh | 129 +-
tools/perf/tests/shell/record_offcpu.sh | 2 +-
tools/perf/tests/shell/stat.sh | 10 +-
tools/perf/tests/shell/stat_all_pmu.sh | 13 +-
tools/perf/tests/shell/test_arm_callgraph_fp.sh | 34 +-
tools/perf/tests/shell/test_arm_coresight.sh | 8 +-
tools/perf/tests/shell/test_arm_spe.sh | 6 +-
tools/perf/tests/shell/test_arm_spe_fork.sh | 46 +-
tools/perf/tests/shell/test_brstack.sh | 68 +-
tools/perf/tests/shell/test_data_symbol.sh | 33 +-
tools/perf/tests/shell/test_java_symbol.sh | 2 +-
tools/perf/tests/shell/test_task_analyzer.sh | 151 +
tools/perf/tests/shell/trace+probe_vfs_getname.sh | 4 +-
tools/perf/tests/sw-clock.c | 1 +
tools/perf/tests/switch-tracking.c | 1 +
tools/perf/tests/tests.h | 28 +
tools/perf/tests/thread-map.c | 1 +
tools/perf/tests/workloads/Build | 13 +
tools/perf/tests/workloads/brstack.c | 40 +
tools/perf/tests/workloads/datasym.c | 24 +
tools/perf/tests/workloads/leafloop.c | 34 +
tools/perf/tests/workloads/noploop.c | 32 +
tools/perf/tests/workloads/sqrtloop.c | 45 +
tools/perf/tests/workloads/thloop.c | 53 +
tools/perf/tests/wp.c | 12 +-
tools/perf/trace/beauty/Build | 1 +
tools/perf/trace/beauty/beauty.h | 3 +
tools/perf/trace/beauty/fadvise.sh | 2 +-
tools/perf/trace/beauty/fsmount.sh | 2 +-
tools/perf/trace/beauty/fspick.sh | 2 +-
tools/perf/trace/beauty/kcmp_type.sh | 2 +-
tools/perf/trace/beauty/kvm_ioctl.sh | 4 +-
tools/perf/trace/beauty/madvise_behavior.sh | 2 +-
tools/perf/trace/beauty/mmap_flags.sh | 22 +-
tools/perf/trace/beauty/mmap_prot.sh | 12 +-
tools/perf/trace/beauty/mount_flags.sh | 4 +-
tools/perf/trace/beauty/move_mount_flags.sh | 2 +-
tools/perf/trace/beauty/mremap_flags.sh | 4 +-
tools/perf/trace/beauty/perf_event_open.c | 44 +
tools/perf/trace/beauty/perf_ioctl.sh | 2 +-
.../perf/trace/beauty/pkey_alloc_access_rights.sh | 2 +-
tools/perf/trace/beauty/prctl_option.sh | 4 +-
tools/perf/trace/beauty/rename_flags.sh | 4 +-
tools/perf/trace/beauty/sockaddr.sh | 4 +-
tools/perf/trace/beauty/socket.sh | 4 +-
tools/perf/trace/beauty/sync_file_range.sh | 2 +-
tools/perf/trace/beauty/timespec.c | 21 +
.../trace/beauty/tracepoints/x86_irq_vectors.sh | 4 +-
tools/perf/trace/beauty/tracepoints/x86_msr.sh | 12 +-
tools/perf/trace/beauty/usbdevfs_ioctl.sh | 4 +-
tools/perf/trace/beauty/vhost_virtio_ioctl.sh | 4 +-
tools/perf/trace/beauty/x86_arch_prctl.sh | 4 +-
tools/perf/ui/util.c | 5 +
tools/perf/util/Build | 30 +-
tools/perf/util/affinity.c | 4 +-
tools/perf/util/amd-sample-raw.c | 1 +
.../perf/util/arm64-frame-pointer-unwind-support.h | 6 +-
tools/perf/util/auxtrace.c | 1 +
tools/perf/util/auxtrace.h | 2 +-
tools/perf/util/bpf-loader.c | 15 +-
tools/perf/util/bpf-prologue.h | 6 +-
tools/perf/util/bpf_counter.c | 2 +-
tools/perf/util/bpf_kwork.c | 3 +
tools/perf/util/bpf_lock_contention.c | 171 +-
tools/perf/util/bpf_map.h | 3 +-
tools/perf/util/bpf_off_cpu.c | 2 +-
tools/perf/util/bpf_skel/lock_contention.bpf.c | 139 +-
tools/perf/util/bpf_skel/lock_data.h | 30 +
tools/perf/util/branch.h | 9 +-
tools/perf/util/config.c | 4 +-
tools/perf/util/counts.c | 1 -
tools/perf/util/counts.h | 1 -
tools/perf/util/cpumap.c | 17 +-
tools/perf/util/cpumap.h | 10 +-
tools/perf/util/cs-etm-base.c | 174 +
tools/perf/util/cs-etm.c | 208 +-
tools/perf/util/cs-etm.h | 46 +-
tools/perf/util/data-convert-bt.c | 8 +-
tools/perf/util/data-convert-json.c | 27 +
tools/perf/util/debug.c | 4 +
tools/perf/util/dlfilter.c | 2 +-
tools/perf/util/dwarf-aux.c | 77 +-
tools/perf/util/dwarf-aux.h | 3 +
tools/perf/util/event.h | 124 +-
tools/perf/util/evlist.c | 10 +-
tools/perf/util/evlist.h | 6 +-
tools/perf/util/evsel.c | 56 +-
tools/perf/util/evsel.h | 16 +-
tools/perf/util/evsel_fprintf.c | 7 +-
tools/perf/util/expr.c | 37 +-
tools/perf/util/expr.h | 7 +-
tools/perf/util/hashmap.c | 18 +-
tools/perf/util/hashmap.h | 91 +-
tools/perf/util/header.c | 27 +-
tools/perf/util/header.h | 2 +
tools/perf/util/hist.c | 10 +-
tools/perf/util/hist.h | 1 +
.../util/intel-pt-decoder/intel-pt-insn-decoder.c | 1 +
tools/perf/util/intel-pt.c | 7 +-
tools/perf/util/iostat.c | 3 +-
tools/perf/util/iostat.h | 4 +-
tools/perf/util/kwork.h | 12 +-
tools/perf/util/llvm-utils.c | 8 +-
tools/perf/util/lock-contention.h | 15 +-
tools/perf/util/machine.c | 40 +
tools/perf/util/machine.h | 8 +
tools/perf/util/metricgroup.c | 253 +-
tools/perf/util/metricgroup.h | 4 +-
tools/perf/util/mmap.c | 6 +-
tools/perf/util/mmap.h | 5 -
tools/perf/util/parse-branch-options.c | 3 +
tools/perf/util/parse-events.c | 16 +
tools/perf/util/parse-events.h | 1 -
tools/perf/util/perf_regs.c | 2 +-
tools/perf/util/pfm.c | 154 +-
tools/perf/util/pfm.h | 7 +-
tools/perf/util/pmu.c | 296 +-
tools/perf/util/pmu.h | 128 +-
tools/perf/util/pmus.c | 5 +
tools/perf/util/pmus.h | 9 +
tools/perf/util/print-events.c | 639 +-
tools/perf/util/print-events.h | 42 +-
tools/perf/util/probe-finder.c | 37 +-
tools/perf/util/python.c | 26 +-
tools/perf/util/record.c | 7 -
tools/perf/util/record.h | 1 -
tools/perf/util/s390-cpumsf.c | 1 +
tools/perf/util/s390-sample-raw.c | 1 +
tools/perf/util/sample.h | 117 +
tools/perf/util/scripting-engines/Build | 8 +-
.../perf/util/scripting-engines/trace-event-perl.c | 5 +-
.../util/scripting-engines/trace-event-python.c | 14 +-
tools/perf/util/session.c | 7 +-
tools/perf/util/session.h | 2 +
tools/perf/util/setup.py | 26 +-
tools/perf/util/sort.c | 192 +-
tools/perf/util/sort.h | 1 +
tools/perf/util/srcline.c | 20 +-
tools/perf/util/stat-display.c | 1514 +-
tools/perf/util/stat-shadow.c | 3 +-
tools/perf/util/stat.c | 415 +-
tools/perf/util/stat.h | 41 +-
tools/perf/util/svghelper.c | 2 +-
tools/perf/util/symbol-elf.c | 30 +-
tools/perf/util/symbol-minimal.c | 5 +
tools/perf/util/symbol.h | 3 +
tools/perf/util/synthetic-events.c | 9 +-
tools/perf/util/thread.h | 3 +
tools/perf/util/thread_map.c | 1 +
tools/perf/util/thread_map.h | 2 -
tools/perf/util/trace-event-info.c | 14 +-
tools/perf/util/trace-event-parse.c | 2 +
tools/perf/util/trace-event-read.c | 4 +-
tools/perf/util/trace-event-scripting.c | 3 +-
tools/perf/util/trace-event.c | 1 -
tools/perf/util/trace-event.h | 13 +-
tools/perf/util/util.h | 25 +-
tools/power/acpi/tools/acpidump/Makefile | 1 +
tools/power/acpi/tools/acpidump/apdump.c | 4 +-
tools/power/cpupower/Makefile | 15 +-
tools/power/cpupower/lib/powercap.c | 290 +
tools/power/cpupower/lib/powercap.h | 54 +
tools/power/cpupower/man/cpupower-powercap-info.1 | 25 +
tools/power/cpupower/po/ka.po | 983 +
tools/power/cpupower/utils/builtin.h | 2 +
tools/power/cpupower/utils/cpufreq-info.c | 4 +-
tools/power/cpupower/utils/cpuidle-info.c | 4 +-
tools/power/cpupower/utils/cpupower-info.c | 4 +-
tools/power/cpupower/utils/cpupower.c | 1 +
.../cpupower/utils/idle_monitor/cpupower-monitor.c | 7 +-
.../cpupower/utils/idle_monitor/idle_monitors.def | 1 +
.../cpupower/utils/idle_monitor/rapl_monitor.c | 148 +
tools/power/cpupower/utils/powercap-info.c | 117 +
tools/power/pm-graph/sleepgraph.py | 2 +-
tools/testing/cxl/Kbuild | 2 +
tools/testing/cxl/config_check.c | 2 +
tools/testing/cxl/test/cxl.c | 303 +-
tools/testing/cxl/test/mem.c | 453 +-
tools/testing/cxl/test/mock.c | 19 +
tools/testing/cxl/test/mock.h | 3 +
tools/testing/ktest/ktest.pl | 32 +-
tools/testing/ktest/sample.conf | 8 +
tools/testing/kunit/kunit.py | 36 +-
tools/testing/kunit/kunit_parser.py | 188 +-
tools/testing/kunit/kunit_tool_test.py | 164 +-
.../kunit/test_data/test_parse_ktap_output.log | 8 +
.../kunit/test_data/test_parse_subtest_header.log | 7 +
tools/testing/memblock/Makefile | 2 +-
tools/testing/memblock/TODO | 14 +-
tools/testing/memblock/main.c | 2 +
tools/testing/memblock/tests/alloc_exact_nid_api.c | 1113 +
tools/testing/memblock/tests/alloc_exact_nid_api.h | 25 +
tools/testing/memblock/tests/alloc_nid_api.c | 546 +-
tools/testing/memblock/tests/alloc_nid_api.h | 1 +
tools/testing/memblock/tests/basic_api.c | 184 +
tools/testing/memblock/tests/common.c | 7 +-
tools/testing/memblock/tests/common.h | 8 +-
tools/testing/nvdimm/Kbuild | 1 -
tools/testing/nvdimm/dimm_devs.c | 30 -
tools/testing/radix-tree/maple.c | 5 +-
tools/testing/selftests/Makefile | 3 +
tools/testing/selftests/alsa/.gitignore | 1 +
tools/testing/selftests/alsa/Makefile | 15 +-
tools/testing/selftests/alsa/alsa-local.h | 24 +
tools/testing/selftests/alsa/conf.c | 448 +
.../alsa/conf.d/Lenovo_ThinkPad_P1_Gen2.conf | 79 +
tools/testing/selftests/alsa/mixer-test.c | 53 +-
tools/testing/selftests/alsa/pcm-test.c | 489 +
tools/testing/selftests/amd-pstate/Makefile | 11 +-
.../testing/selftests/amd-pstate/amd-pstate-ut.sh | 56 -
tools/testing/selftests/amd-pstate/basic.sh | 38 +
tools/testing/selftests/amd-pstate/gitsource.sh | 354 +
tools/testing/selftests/amd-pstate/run.sh | 387 +
tools/testing/selftests/amd-pstate/tbench.sh | 339 +
tools/testing/selftests/arm64/abi/hwcap.c | 32 +
.../testing/selftests/arm64/abi/syscall-abi-asm.S | 4 +-
tools/testing/selftests/arm64/fp/fp-stress.c | 120 +-
.../selftests/arm64/mte/check_buffer_fill.c | 12 +-
.../selftests/arm64/mte/check_mmap_options.c | 9 +-
.../testing/selftests/arm64/signal/testcases/TODO | 1 -
.../selftests/arm64/signal/testcases/testcases.c | 21 +-
tools/testing/selftests/bpf/DENYLIST | 3 +-
tools/testing/selftests/bpf/DENYLIST.aarch64 | 84 +
tools/testing/selftests/bpf/DENYLIST.s390x | 47 +-
tools/testing/selftests/bpf/Makefile | 37 +-
tools/testing/selftests/bpf/README.rst | 53 +-
tools/testing/selftests/bpf/bpf_experimental.h | 68 +
tools/testing/selftests/bpf/bpf_legacy.h | 19 +-
.../selftests/bpf/bpf_testmod/bpf_testmod.c | 24 +
tools/testing/selftests/bpf/bpf_util.h | 19 +
tools/testing/selftests/bpf/cgroup_helpers.c | 22 +-
tools/testing/selftests/bpf/cgroup_helpers.h | 1 +
tools/testing/selftests/bpf/config | 8 +-
tools/testing/selftests/bpf/config.aarch64 | 181 +
tools/testing/selftests/bpf/config.s390x | 3 -
tools/testing/selftests/bpf/config.x86_64 | 1 -
.../selftests/bpf/map_tests/sk_storage_map.c | 36 +-
tools/testing/selftests/bpf/network_helpers.c | 47 +-
tools/testing/selftests/bpf/prog_tests/align.c | 38 +-
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 41 +-
tools/testing/selftests/bpf/prog_tests/bpf_nf.c | 6 +-
tools/testing/selftests/bpf/prog_tests/btf.c | 278 +-
.../selftests/bpf/prog_tests/btf_dedup_split.c | 45 +-
tools/testing/selftests/bpf/prog_tests/btf_dump.c | 4 +-
.../selftests/bpf/prog_tests/btf_skc_cls_ingress.c | 25 +-
.../testing/selftests/bpf/prog_tests/cgroup_iter.c | 76 +
.../testing/selftests/bpf/prog_tests/cgrp_kfunc.c | 175 +
.../selftests/bpf/prog_tests/cgrp_local_storage.c | 265 +
tools/testing/selftests/bpf/prog_tests/dynptr.c | 80 +-
tools/testing/selftests/bpf/prog_tests/empty_skb.c | 146 +
.../selftests/bpf/prog_tests/fexit_bpf2bpf.c | 48 +
tools/testing/selftests/bpf/prog_tests/hashmap.c | 190 +-
.../selftests/bpf/prog_tests/kfunc_dynptr_param.c | 7 +-
.../selftests/bpf/prog_tests/kprobe_multi_test.c | 40 +-
.../bpf/prog_tests/kprobe_multi_testmod_test.c | 89 +
.../bpf/prog_tests/libbpf_get_fd_by_id_opts.c | 87 +
.../testing/selftests/bpf/prog_tests/libbpf_str.c | 8 +
.../testing/selftests/bpf/prog_tests/linked_list.c | 740 +
.../testing/selftests/bpf/prog_tests/lsm_cgroup.c | 17 +-
tools/testing/selftests/bpf/prog_tests/map_kptr.c | 83 +-
.../selftests/bpf/prog_tests/module_attach.c | 7 +
.../selftests/bpf/prog_tests/rcu_read_lock.c | 158 +
tools/testing/selftests/bpf/prog_tests/ringbuf.c | 66 +-
tools/testing/selftests/bpf/prog_tests/skeleton.c | 11 +-
tools/testing/selftests/bpf/prog_tests/spin_lock.c | 142 +
tools/testing/selftests/bpf/prog_tests/spinlock.c | 45 -
.../testing/selftests/bpf/prog_tests/task_kfunc.c | 164 +
.../selftests/bpf/prog_tests/task_local_storage.c | 164 +-
.../testing/selftests/bpf/prog_tests/tc_redirect.c | 314 +-
.../selftests/bpf/prog_tests/tcp_hdr_options.c | 6 +-
.../testing/selftests/bpf/prog_tests/test_tunnel.c | 2 +-
.../selftests/bpf/prog_tests/tracing_struct.c | 3 +-
tools/testing/selftests/bpf/prog_tests/type_cast.c | 114 +
.../selftests/bpf/prog_tests/user_ringbuf.c | 6 +-
.../selftests/bpf/prog_tests/xdp_adjust_tail.c | 7 +-
.../selftests/bpf/prog_tests/xdp_synproxy.c | 6 +-
tools/testing/selftests/bpf/prog_tests/xfrm_info.c | 362 +
.../selftests/bpf/progs/bpf_iter_bpf_array_map.c | 21 +-
tools/testing/selftests/bpf/progs/bpf_iter_ksym.c | 6 +-
tools/testing/selftests/bpf/progs/bpf_misc.h | 5 +
.../testing/selftests/bpf/progs/bpf_tracing_net.h | 3 +
.../bpf/progs/btf_dump_test_case_padding.c | 9 +
.../selftests/bpf/progs/btf_type_tag_percpu.c | 1 +
.../selftests/bpf/progs/cgrp_kfunc_common.h | 72 +
.../selftests/bpf/progs/cgrp_kfunc_failure.c | 260 +
.../selftests/bpf/progs/cgrp_kfunc_success.c | 170 +
.../selftests/bpf/progs/cgrp_ls_attach_cgroup.c | 101 +
.../testing/selftests/bpf/progs/cgrp_ls_negative.c | 26 +
.../selftests/bpf/progs/cgrp_ls_recursion.c | 70 +
.../selftests/bpf/progs/cgrp_ls_sleepable.c | 80 +
tools/testing/selftests/bpf/progs/cgrp_ls_tp_btf.c | 88 +
tools/testing/selftests/bpf/progs/dynptr_fail.c | 31 +
tools/testing/selftests/bpf/progs/dynptr_success.c | 1 +
tools/testing/selftests/bpf/progs/empty_skb.c | 37 +
.../testing/selftests/bpf/progs/freplace_progmap.c | 24 +
tools/testing/selftests/bpf/progs/kprobe_multi.c | 50 +
tools/testing/selftests/bpf/progs/linked_list.c | 385 +
tools/testing/selftests/bpf/progs/linked_list.h | 56 +
.../testing/selftests/bpf/progs/linked_list_fail.c | 581 +
tools/testing/selftests/bpf/progs/lsm_cgroup.c | 8 +
tools/testing/selftests/bpf/progs/map_kptr_fail.c | 27 +
tools/testing/selftests/bpf/progs/rcu_read_lock.c | 330 +
.../selftests/bpf/progs/task_kfunc_common.h | 72 +
.../selftests/bpf/progs/task_kfunc_failure.c | 284 +
.../selftests/bpf/progs/task_kfunc_success.c | 227 +
.../bpf/progs/task_local_storage_exit_creds.c | 3 +
.../selftests/bpf/progs/task_ls_recursion.c | 43 +-
.../selftests/bpf/progs/task_storage_nodeadlock.c | 47 +
.../selftests/bpf/progs/test_kfunc_dynptr_param.c | 12 -
.../bpf/progs/test_libbpf_get_fd_by_id_opts.c | 36 +
.../bpf/progs/test_misc_tcp_hdr_options.c | 4 +
.../selftests/bpf/progs/test_module_attach.c | 6 +
.../selftests/bpf/progs/test_ringbuf_map_key.c | 70 +
tools/testing/selftests/bpf/progs/test_skeleton.c | 17 +
tools/testing/selftests/bpf/progs/test_spin_lock.c | 4 +-
.../selftests/bpf/progs/test_spin_lock_fail.c | 204 +
tools/testing/selftests/bpf/progs/type_cast.c | 83 +
.../selftests/bpf/progs/user_ringbuf_fail.c | 51 +-
tools/testing/selftests/bpf/progs/xfrm_info.c | 40 +
.../selftests/bpf/task_local_storage_helpers.h | 4 +
.../testing/selftests/bpf/test_bpftool_metadata.sh | 7 +-
.../selftests/bpf/test_bpftool_synctypes.py | 14 +-
tools/testing/selftests/bpf/test_cpp.cpp | 13 +-
tools/testing/selftests/bpf/test_flow_dissector.sh | 6 +-
tools/testing/selftests/bpf/test_loader.c | 233 +
tools/testing/selftests/bpf/test_lwt_ip_encap.sh | 17 +-
tools/testing/selftests/bpf/test_lwt_seg6local.sh | 9 +-
tools/testing/selftests/bpf/test_offload.py | 8 +-
tools/testing/selftests/bpf/test_progs.c | 38 +-
tools/testing/selftests/bpf/test_progs.h | 33 +
tools/testing/selftests/bpf/test_sockmap.c | 18 +
tools/testing/selftests/bpf/test_tc_edt.sh | 3 +-
tools/testing/selftests/bpf/test_tc_tunnel.sh | 5 +-
tools/testing/selftests/bpf/test_tunnel.sh | 5 +-
tools/testing/selftests/bpf/test_verifier.c | 13 +-
tools/testing/selftests/bpf/test_xdp_meta.sh | 9 +-
tools/testing/selftests/bpf/test_xdp_vlan.sh | 8 +-
tools/testing/selftests/bpf/trace_helpers.c | 20 +-
tools/testing/selftests/bpf/trace_helpers.h | 2 +
tools/testing/selftests/bpf/verifier/calls.c | 86 +-
.../selftests/bpf/verifier/direct_packet_access.c | 54 +
.../selftests/bpf/verifier/jeq_infer_not_null.c | 174 +
tools/testing/selftests/bpf/verifier/jit.c | 24 +
tools/testing/selftests/bpf/verifier/map_ptr.c | 8 +-
.../testing/selftests/bpf/verifier/ref_tracking.c | 4 +-
tools/testing/selftests/bpf/verifier/ringbuf.c | 2 +-
tools/testing/selftests/bpf/verifier/spill_fill.c | 2 +-
tools/testing/selftests/bpf/verifier/spin_lock.c | 114 +
.../testing/selftests/bpf/verifier/value_or_null.c | 49 +
tools/testing/selftests/bpf/veristat.c | 918 +-
tools/testing/selftests/bpf/vmtest.sh | 6 +
tools/testing/selftests/bpf/xdp_synproxy.c | 5 +-
tools/testing/selftests/bpf/xsk.c | 26 +-
tools/testing/selftests/bpf/xskxceiver.c | 3 +-
tools/testing/selftests/cgroup/cgroup_util.c | 5 +-
tools/testing/selftests/cgroup/test_cpuset_prs.sh | 19 +-
tools/testing/selftests/cgroup/test_kmem.c | 6 +-
tools/testing/selftests/cgroup/test_memcontrol.c | 91 +-
tools/testing/selftests/damon/Makefile | 4 +-
.../selftests/damon/debugfs_rm_non_contexts.sh | 19 +
.../selftests/damon/huge_count_read_write.c | 9 +
tools/testing/selftests/damon/lru_sort.sh | 41 +
tools/testing/selftests/damon/reclaim.sh | 42 +
tools/testing/selftests/damon/sysfs.sh | 7 +
.../damon/sysfs_update_removed_scheme_dir.sh | 58 +
.../testing/selftests/drivers/net/bonding/Makefile | 5 +-
.../selftests/drivers/net/bonding/lag_lib.sh | 106 +
.../drivers/net/bonding/mode-1-recovery-updelay.sh | 45 +
.../drivers/net/bonding/mode-2-recovery-updelay.sh | 45 +
.../selftests/drivers/net/bonding/option_prio.sh | 245 +
.../testing/selftests/drivers/net/bonding/settings | 2 +-
.../drivers/net/mlxsw/devlink_trap_control.sh | 22 +
.../drivers/net/mlxsw/devlink_trap_l2_drops.sh | 105 +
.../{spectrum-2 => }/devlink_trap_tunnel_ipip6.sh | 2 +-
.../selftests/drivers/net/mlxsw/rtnetlink.sh | 31 +
.../selftests/drivers/net/netdevsim/devlink.sh | 4 +-
.../drivers/net/netdevsim/devlink_trap.sh | 13 +
tools/testing/selftests/efivarfs/efivarfs.sh | 5 +
.../ftrace/test.d/ftrace/func_event_triggers.tc | 15 +-
tools/testing/selftests/ftrace/test.d/functions | 8 +-
.../ftrace/test.d/kprobe/uprobe_syntax_errors.tc | 5 +
.../ftrace/test.d/preemptirq/irqsoff_tracer.tc | 8 +-
.../selftests/ftrace/test.d/tracer/wakeup.tc | 7 +-
.../selftests/ftrace/test.d/tracer/wakeup_rt.tc | 7 +-
.../inter-event/trigger-field-variable-support.tc | 2 +-
.../trigger-inter-event-combined-hist.tc | 2 +-
.../inter-event/trigger-onchange-action-hist.tc | 2 +-
.../inter-event/trigger-onmatch-action-hist.tc | 2 +-
.../trigger-onmatch-onmax-action-hist.tc | 2 +-
.../inter-event/trigger-onmax-action-hist.tc | 2 +-
.../inter-event/trigger-snapshot-action-hist.tc | 2 +-
.../inter-event/trigger-synthetic-eprobe.tc | 2 +-
.../trigger-synthetic-event-dynstring.tc | 2 +-
.../inter-event/trigger-trace-action-hist.tc | 2 +-
tools/testing/selftests/gpio/gpio-sim.sh | 2 +-
tools/testing/selftests/iommu/.gitignore | 3 +
tools/testing/selftests/iommu/Makefile | 12 +
tools/testing/selftests/iommu/config | 2 +
tools/testing/selftests/iommu/iommufd.c | 1654 +
tools/testing/selftests/iommu/iommufd_fail_nth.c | 580 +
tools/testing/selftests/iommu/iommufd_utils.h | 278 +
tools/testing/selftests/kmod/kmod.sh | 13 +-
tools/testing/selftests/kselftest_deps.sh | 2 +-
tools/testing/selftests/kvm/.gitignore | 86 +-
tools/testing/selftests/kvm/Makefile | 81 +-
.../selftests/kvm/aarch64/aarch32_id_regs.c | 6 +-
tools/testing/selftests/kvm/aarch64/arch_timer.c | 31 +-
.../selftests/kvm/aarch64/debug-exceptions.c | 360 +-
tools/testing/selftests/kvm/aarch64/hypercalls.c | 3 -
.../selftests/kvm/aarch64/page_fault_test.c | 1117 +
tools/testing/selftests/kvm/aarch64/psci_test.c | 1 -
tools/testing/selftests/kvm/aarch64/vgic_init.c | 2 -
tools/testing/selftests/kvm/aarch64/vgic_irq.c | 10 +-
.../selftests/kvm/access_tracking_perf_test.c | 52 +-
tools/testing/selftests/kvm/demand_paging_test.c | 250 +-
tools/testing/selftests/kvm/dirty_log_perf_test.c | 130 +-
tools/testing/selftests/kvm/dirty_log_test.c | 90 +-
.../selftests/kvm/include/aarch64/processor.h | 35 +-
.../testing/selftests/kvm/include/kvm_util_base.h | 75 +-
tools/testing/selftests/kvm/include/memstress.h | 75 +
.../testing/selftests/kvm/include/perf_test_util.h | 63 -
tools/testing/selftests/kvm/include/test_util.h | 25 +
tools/testing/selftests/kvm/include/ucall_common.h | 18 +-
.../selftests/kvm/include/userfaultfd_util.h | 45 +
tools/testing/selftests/kvm/include/x86_64/evmcs.h | 48 +-
.../testing/selftests/kvm/include/x86_64/hyperv.h | 103 +
.../selftests/kvm/include/x86_64/processor.h | 455 +-
tools/testing/selftests/kvm/include/x86_64/svm.h | 26 +-
.../selftests/kvm/include/x86_64/svm_util.h | 14 +
tools/testing/selftests/kvm/include/x86_64/vmx.h | 25 +-
tools/testing/selftests/kvm/kvm_page_table_test.c | 6 +-
.../testing/selftests/kvm/lib/aarch64/processor.c | 83 +-
tools/testing/selftests/kvm/lib/aarch64/ucall.c | 102 +-
tools/testing/selftests/kvm/lib/elf.c | 5 +-
tools/testing/selftests/kvm/lib/kvm_util.c | 202 +-
.../kvm/lib/{perf_test_util.c => memstress.c} | 136 +-
tools/testing/selftests/kvm/lib/riscv/processor.c | 29 +-
tools/testing/selftests/kvm/lib/riscv/ucall.c | 42 +-
tools/testing/selftests/kvm/lib/s390x/processor.c | 8 +-
tools/testing/selftests/kvm/lib/s390x/ucall.c | 39 +-
tools/testing/selftests/kvm/lib/test_util.c | 36 +
tools/testing/selftests/kvm/lib/ucall_common.c | 115 +
tools/testing/selftests/kvm/lib/userfaultfd_util.c | 186 +
tools/testing/selftests/kvm/lib/x86_64/hyperv.c | 46 +
.../lib/x86_64/{perf_test_util.c => memstress.c} | 37 +-
tools/testing/selftests/kvm/lib/x86_64/processor.c | 327 +-
tools/testing/selftests/kvm/lib/x86_64/ucall.c | 39 +-
tools/testing/selftests/kvm/lib/x86_64/vmx.c | 56 +-
.../testing/selftests/kvm/max_guest_memory_test.c | 21 +-
.../kvm/memslot_modification_stress_test.c | 44 +-
tools/testing/selftests/kvm/memslot_perf_test.c | 342 +-
tools/testing/selftests/kvm/rseq_test.c | 4 -
tools/testing/selftests/kvm/s390x/memop.c | 2 -
tools/testing/selftests/kvm/s390x/resets.c | 2 -
tools/testing/selftests/kvm/s390x/sync_regs_test.c | 3 -
.../testing/selftests/kvm/set_memory_region_test.c | 5 +-
tools/testing/selftests/kvm/steal_time.c | 1 -
.../selftests/kvm/system_counter_offset_test.c | 1 -
tools/testing/selftests/kvm/x86_64/amx_test.c | 112 +-
tools/testing/selftests/kvm/x86_64/cpuid_test.c | 11 +-
.../selftests/kvm/x86_64/cr4_cpuid_sync_test.c | 3 -
.../selftests/kvm/x86_64/emulator_error_test.c | 193 -
.../kvm/x86_64/exit_on_emulation_failure_test.c | 45 +
.../testing/selftests/kvm/x86_64/flds_emulation.h | 55 +
tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c | 3 -
.../kvm/x86_64/{evmcs_test.c => hyperv_evmcs.c} | 100 +-
.../testing/selftests/kvm/x86_64/hyperv_features.c | 25 +-
tools/testing/selftests/kvm/x86_64/hyperv_ipi.c | 315 +
.../testing/selftests/kvm/x86_64/hyperv_svm_test.c | 103 +-
.../selftests/kvm/x86_64/hyperv_tlb_flush.c | 690 +
.../selftests/kvm/x86_64/nx_huge_pages_test.c | 5 +-
.../selftests/kvm/x86_64/platform_info_test.c | 3 -
.../selftests/kvm/x86_64/pmu_event_filter_test.c | 77 +-
.../testing/selftests/kvm/x86_64/set_sregs_test.c | 3 -
.../kvm/x86_64/smaller_maxphyaddr_emulation_test.c | 111 +
tools/testing/selftests/kvm/x86_64/smm_test.c | 2 +
.../kvm/x86_64/svm_nested_shutdown_test.c | 67 +
.../kvm/x86_64/svm_nested_soft_inject_test.c | 16 +-
.../testing/selftests/kvm/x86_64/sync_regs_test.c | 3 -
.../selftests/kvm/x86_64/triple_fault_event_test.c | 73 +-
.../selftests/kvm/x86_64/userspace_io_test.c | 3 -
.../selftests/kvm/x86_64/userspace_msr_exit_test.c | 88 +-
.../selftests/kvm/x86_64/vmx_dirty_log_test.c | 1 +
tools/testing/selftests/kvm/x86_64/vmx_msrs_test.c | 47 +
.../selftests/kvm/x86_64/vmx_pmu_caps_test.c | 19 +-
.../selftests/kvm/x86_64/vmx_tsc_adjust_test.c | 5 -
.../selftests/kvm/x86_64/xapic_state_test.c | 4 +-
.../testing/selftests/kvm/x86_64/xen_shinfo_test.c | 147 +-
tools/testing/selftests/landlock/base_test.c | 38 +-
tools/testing/selftests/landlock/common.h | 85 +-
tools/testing/selftests/landlock/fs_test.c | 468 +-
tools/testing/selftests/lib.mk | 5 +
tools/testing/selftests/nci/nci_dev.c | 11 +
tools/testing/selftests/net/.gitignore | 3 +
tools/testing/selftests/net/Makefile | 4 +
tools/testing/selftests/net/af_unix/Makefile | 2 +-
tools/testing/selftests/net/af_unix/diag_uid.c | 178 +
tools/testing/selftests/net/bpf/Makefile | 45 +-
tools/testing/selftests/net/config | 2 +-
tools/testing/selftests/net/csum.c | 986 +
tools/testing/selftests/net/fcnal-test.sh | 11 +-
tools/testing/selftests/net/fib_nexthops.sh | 11 +
tools/testing/selftests/net/fib_tests.sh | 37 +
tools/testing/selftests/net/forwarding/Makefile | 1 +
.../selftests/net/forwarding/bridge_igmp.sh | 3 -
.../selftests/net/forwarding/bridge_locked_port.sh | 155 +-
.../testing/selftests/net/forwarding/bridge_mdb.sh | 1127 +-
.../selftests/net/forwarding/bridge_mdb_host.sh | 103 +
.../selftests/net/forwarding/bridge_vlan_mcast.sh | 3 +
.../selftests/net/forwarding/devlink_lib.sh | 19 +-
tools/testing/selftests/net/forwarding/lib.sh | 8 +
tools/testing/selftests/net/hsr/Makefile | 7 +
tools/testing/selftests/net/hsr/config | 4 +
tools/testing/selftests/net/hsr/hsr_ping.sh | 256 +
tools/testing/selftests/net/mptcp/diag.sh | 1 +
tools/testing/selftests/net/mptcp/mptcp_connect.c | 171 +-
tools/testing/selftests/net/mptcp/mptcp_connect.sh | 27 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh | 124 +-
tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 76 +-
tools/testing/selftests/net/mptcp/simult_flows.sh | 13 +-
tools/testing/selftests/net/mptcp/userspace_pm.sh | 298 +-
tools/testing/selftests/net/pmtu.sh | 10 +-
tools/testing/selftests/net/rtnetlink.sh | 2 +-
tools/testing/selftests/net/sctp_hello.c | 137 +
tools/testing/selftests/net/sctp_vrf.sh | 178 +
tools/testing/selftests/net/so_incoming_cpu.c | 242 +
tools/testing/selftests/net/toeplitz.sh | 2 +-
tools/testing/selftests/net/udpgro.sh | 8 +-
tools/testing/selftests/net/udpgro_bench.sh | 8 +-
tools/testing/selftests/net/udpgro_frglist.sh | 8 +-
tools/testing/selftests/net/udpgro_fwd.sh | 3 +-
tools/testing/selftests/net/veth.sh | 11 +-
.../selftests/netfilter/conntrack_icmp_related.sh | 36 +-
tools/testing/selftests/nolibc/Makefile | 3 +
tools/testing/selftests/nolibc/nolibc-test.c | 7 +
tools/testing/selftests/powerpc/dscr/dscr.h | 17 +-
.../selftests/powerpc/dscr/dscr_sysfs_test.c | 5 +-
tools/testing/selftests/powerpc/include/pkeys.h | 2 +-
tools/testing/selftests/powerpc/ptrace/core-pkey.c | 6 +-
.../selftests/powerpc/ptrace/perf-hwbreak.c | 78 +-
.../selftests/powerpc/ptrace/ptrace-hwbreak.c | 6 +-
tools/testing/selftests/powerpc/ptrace/ptrace.h | 5 +-
tools/testing/selftests/powerpc/scripts/hmi.sh | 2 +-
.../selftests/powerpc/security/flush_utils.c | 3 +-
tools/testing/selftests/proc/proc-uptime-002.c | 3 +-
.../testing/selftests/rcutorture/bin/config2csv.sh | 3 +-
.../selftests/rcutorture/bin/config_override.sh | 3 +-
.../selftests/rcutorture/bin/configcheck.sh | 3 +-
.../testing/selftests/rcutorture/bin/configinit.sh | 3 +-
.../testing/selftests/rcutorture/bin/kvm-again.sh | 49 +-
.../selftests/rcutorture/bin/kvm-assign-cpus.sh | 3 +-
.../testing/selftests/rcutorture/bin/kvm-build.sh | 3 +-
.../selftests/rcutorture/bin/kvm-end-run-stats.sh | 3 +-
.../selftests/rcutorture/bin/kvm-recheck.sh | 2 +-
.../testing/selftests/rcutorture/bin/kvm-remote.sh | 13 +-
.../rcutorture/bin/kvm-test-1-run-batch.sh | 3 +-
.../rcutorture/bin/kvm-test-1-run-qemu.sh | 5 +-
.../selftests/rcutorture/bin/kvm-test-1-run.sh | 3 +-
.../selftests/rcutorture/bin/kvm-transform.sh | 68 +-
tools/testing/selftests/rcutorture/bin/kvm.sh | 3 +-
.../selftests/rcutorture/bin/parse-build.sh | 3 +-
tools/testing/selftests/rcutorture/bin/torture.sh | 145 +-
tools/testing/selftests/rtc/rtctest.c | 33 +-
tools/testing/selftests/seccomp/seccomp_bpf.c | 6 +-
.../testing/selftests/splice/short_splice_read.sh | 4 +-
tools/testing/selftests/sysctl/sysctl.sh | 12 +-
tools/testing/selftests/tc-testing/tdc.py | 125 +-
tools/testing/selftests/tdx/Makefile | 7 +
tools/testing/selftests/tdx/config | 1 +
tools/testing/selftests/tdx/tdx_guest_test.c | 163 +
tools/testing/selftests/timens/.gitignore | 1 +
tools/testing/selftests/timens/Makefile | 2 +-
tools/testing/selftests/timens/vfork_exec.c | 139 +
tools/testing/selftests/tpm2/Makefile | 2 +-
tools/testing/selftests/tpm2/test_async.sh | 10 +
tools/testing/selftests/tpm2/test_smoke.sh | 1 -
tools/testing/selftests/vDSO/vdso_test_getcpu.c | 4 +
.../selftests/vDSO/vdso_test_gettimeofday.c | 3 +
tools/testing/selftests/vm/.gitignore | 3 +
tools/testing/selftests/vm/Makefile | 27 +-
tools/testing/selftests/vm/check_config.sh | 31 +
tools/testing/selftests/vm/cow.c | 1536 +
tools/testing/selftests/vm/hugepage-mmap.c | 10 +-
tools/testing/selftests/vm/hugepage-mremap.c | 21 +-
tools/testing/selftests/vm/hugetlb-madvise.c | 19 +-
tools/testing/selftests/vm/ksm_functional_tests.c | 279 +
tools/testing/selftests/vm/ksm_tests.c | 76 +-
tools/testing/selftests/vm/madv_populate.c | 15 +-
tools/testing/selftests/vm/pkey-x86.h | 12 +
tools/testing/selftests/vm/protection_keys.c | 131 +-
tools/testing/selftests/vm/run_vmtests.sh | 220 +-
tools/testing/selftests/vm/userfaultfd.c | 62 +-
tools/testing/selftests/vm/vm_util.c | 25 +
tools/testing/selftests/vm/vm_util.h | 3 +
tools/testing/selftests/watchdog/watchdog-test.c | 106 +-
.../testing/selftests/wireguard/qemu/kernel.config | 2 -
tools/tracing/rtla/src/osnoise.c | 9 +-
tools/tracing/rtla/src/rtla.c | 12 +-
tools/tracing/rtla/src/timerlat.c | 9 +-
.../ffs-aio-example/simple/device_app/aio_simple.c | 44 +-
tools/verification/dot2/dot2c.py | 2 +-
tools/verification/rv/Makefile | 141 +
tools/verification/rv/README.txt | 38 +
tools/verification/rv/include/in_kernel.h | 3 +
tools/verification/rv/include/rv.h | 12 +
tools/verification/rv/include/trace.h | 16 +
tools/verification/rv/include/utils.h | 8 +
tools/verification/rv/src/in_kernel.c | 698 +
tools/verification/rv/src/rv.c | 188 +
tools/verification/rv/src/trace.c | 133 +
tools/verification/rv/src/utils.c | 47 +
tools/vm/.gitignore | 1 +
tools/vm/slabinfo-gnuplot.sh | 4 +-
tools/vm/slabinfo.c | 6 +-
virt/kvm/Kconfig | 6 +
virt/kvm/dirty_ring.c | 46 +-
virt/kvm/irqchip.c | 3 +-
virt/kvm/kvm_main.c | 159 +-
virt/kvm/kvm_mm.h | 8 +-
virt/kvm/pfncache.c | 121 +-
12547 files changed, 655791 insertions(+), 347261 deletions(-)
create mode 100644 Documentation/ABI/testing/debugfs-dell-wmi-ddv
delete mode 100644 Documentation/ABI/testing/debugfs-pktcdvd
create mode 100644 Documentation/ABI/testing/sysfs-bus-coreboot
create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-adc-ad4130
create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-adc-max11410
create mode 100644 Documentation/ABI/testing/sysfs-bus-platform-devices-ampere-smpro
delete mode 100644 Documentation/ABI/testing/sysfs-class-pktcdvd
create mode 100644 Documentation/ABI/testing/sysfs-kernel-cpu_byteorder
create mode 100644 Documentation/ABI/testing/sysfs-kernel-oops_count
create mode 100644 Documentation/ABI/testing/sysfs-kernel-warn_count
create mode 100644 Documentation/ABI/testing/sysfs-platform-dell-wmi-ddv
delete mode 100644 Documentation/RCU/arrayRCU.rst
create mode 100644 Documentation/accel/index.rst
create mode 100644 Documentation/accel/introduction.rst
delete mode 100644 Documentation/admin-guide/media/cec-drivers.rst
create mode 100644 Documentation/admin-guide/media/cec.rst
delete mode 100644 Documentation/admin-guide/media/pulse8-cec.rst
create mode 100644 Documentation/admin-guide/media/visl.rst
create mode 100644 Documentation/admin-guide/perf/meson-ddr-pmu.rst
create mode 100644 Documentation/admin-guide/perf/nvidia-pmu.rst
create mode 100644 Documentation/bpf/bpf_iterators.rst
create mode 100644 Documentation/bpf/libbpf/program_types.rst
create mode 100644 Documentation/bpf/map_array.rst
create mode 100644 Documentation/bpf/map_bloom_filter.rst
create mode 100644 Documentation/bpf/map_cgrp_storage.rst
create mode 100644 Documentation/bpf/map_cpumap.rst
create mode 100644 Documentation/bpf/map_devmap.rst
create mode 100644 Documentation/bpf/map_lpm_trie.rst
create mode 100644 Documentation/bpf/map_of_maps.rst
create mode 100644 Documentation/bpf/map_queue_stack.rst
create mode 100644 Documentation/bpf/map_sk_storage.rst
create mode 100644 Documentation/bpf/map_xskmap.rst
create mode 100644 Documentation/bpf/redirect.rst
delete mode 100644 Documentation/dev-tools/kunit/tips.rst
create mode 100644 Documentation/devicetree/bindings/arm/qcom-soc.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/swir.txt
create mode 100644 Documentation/devicetree/bindings/ata/ata-generic.yaml
create mode 100644 Documentation/devicetree/bindings/bus/fsl,imx8qxp-pixel-link-msi-bus.yaml
create mode 100644 Documentation/devicetree/bindings/clock/fsl,imx8m-anatop.yaml
create mode 100644 Documentation/devicetree/bindings/clock/mediatek,mt8186-fhctl.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/pwm-clock.txt
create mode 100644 Documentation/devicetree/bindings/clock/pwm-clock.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,dispcc-sc8280xp.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-msm8974.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-sdm660.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/qcom,lcc.txt
create mode 100644 Documentation/devicetree/bindings/clock/qcom,lcc.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/qcom,lpasscc.txt
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sdm845-lpasscc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm6375-dispcc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm8550-gcc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3588-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/ti,cdce925.txt
create mode 100644 Documentation/devicetree/bindings/clock/ti,cdce925.yaml
create mode 100644 Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
delete mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
delete mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx-fb.txt
create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx-lcdc.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/dpu-common.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/dpu-msm8998.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/dpu-qcm2290.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/dpu-sc7280.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/dpu-sdm845.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/mdss-common.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,msm8998-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,msm8998-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,qcm2290-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,qcm2290-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sc7180-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sc7280-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sc7280-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sdm845-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sdm845-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sm6115-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sm6115-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sm8250-dpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sm8250-mdss.yaml
create mode 100644 Documentation/devicetree/bindings/display/panel/auo,a030jtn01.yaml
create mode 100644 Documentation/devicetree/bindings/fpga/lattice,sysconfig.yaml
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-latch.yaml
create mode 100644 Documentation/devicetree/bindings/gpio/hisilicon,ascend910-gpio.yaml
create mode 100644 Documentation/devicetree/bindings/gpu/host1x/nvidia,tegra234-nvdec.yaml
create mode 100644 Documentation/devicetree/bindings/hwinfo/loongson,ls2k-chipid.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/hisilicon,ascend910-i2c.yaml
create mode 100644 Documentation/devicetree/bindings/iio/accel/kionix,kx022a.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad4130.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,max11410.yaml
create mode 100644 Documentation/devicetree/bindings/iio/addac/adi,ad74115.yaml
create mode 100644 Documentation/devicetree/bindings/iio/frequency/adi,adf4377.yaml
delete mode 100644 Documentation/devicetree/bindings/input/gpio-beeper.txt
create mode 100644 Documentation/devicetree/bindings/input/gpio-beeper.yaml
create mode 100644 Documentation/devicetree/bindings/input/qcom,pm8921-pwrkey.yaml
delete mode 100644 Documentation/devicetree/bindings/input/qcom,pm8xxx-pwrkey.txt
delete mode 100644 Documentation/devicetree/bindings/input/ti,drv260x.txt
create mode 100644 Documentation/devicetree/bindings/input/ti,drv260x.yaml
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/cypress,tt21000.yaml
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/hynitron,cstxxx.yaml
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/intel,ce4100-ioapic.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/intel,ce4100-ioapic.yaml
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/intel,ce4100-lapic.yaml
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/loongarch,cpu-interrupt-controller.yaml
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/mediatek,cirq.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/mediatek,mtk-cirq.yaml
create mode 100644 Documentation/devicetree/bindings/ipmi/ssif-bmc.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/irled/gpio-ir-tx.txt
create mode 100644 Documentation/devicetree/bindings/leds/irled/gpio-ir-tx.yaml
create mode 100644 Documentation/devicetree/bindings/leds/irled/ir-spi-led.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/irled/pwm-ir-tx.txt
create mode 100644 Documentation/devicetree/bindings/leds/irled/pwm-ir-tx.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/irled/spi-ir-led.txt
delete mode 100644 Documentation/devicetree/bindings/leds/leds-pm8058.txt
create mode 100644 Documentation/devicetree/bindings/leds/qcom,pm8058-led.yaml
create mode 100644 Documentation/devicetree/bindings/media/allwinner,sun6i-a31-isp.yaml
delete mode 100644 Documentation/devicetree/bindings/media/i2c/imx290.txt
delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5645.txt
create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov4689.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov5645.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/sony,imx290.yaml
delete mode 100644 Documentation/devicetree/bindings/media/i2c/st,st-mipid02.txt
create mode 100644 Documentation/devicetree/bindings/media/i2c/st,st-mipid02.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/st,st-vgxy61.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/toshiba,tc358746.yaml
create mode 100644 Documentation/devicetree/bindings/media/mediatek,mt8195-jpegdec.yaml
create mode 100644 Documentation/devicetree/bindings/media/mediatek,mt8195-jpegenc.yaml
create mode 100644 Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml
create mode 100644 Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml
rename Documentation/devicetree/bindings/memory-controllers/{arm,pl353-smc.yaml => arm,pl35x-smc.yaml} (65%)
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr-channel.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr-props.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr4.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr5.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/mc-peripheral-props.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/st,stm32-fmc2-ebi-props.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/ampere,smpro.yaml
delete mode 100644 Documentation/devicetree/bindings/mips/brcm/brcm,bmips.txt
create mode 100644 Documentation/devicetree/bindings/mips/brcm/soc.yaml
create mode 100644 Documentation/devicetree/bindings/mips/cpus.yaml
delete mode 100644 Documentation/devicetree/bindings/mips/ingenic/ingenic,cpu.yaml
create mode 100644 Documentation/devicetree/bindings/misc/idt,89hpesx.yaml
delete mode 100644 Documentation/devicetree/bindings/misc/idt_89hpesx.txt
create mode 100644 Documentation/devicetree/bindings/mmc/fujitsu,sdhci-fujitsu.yaml
create mode 100644 Documentation/devicetree/bindings/mmc/sdhci-common.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
create mode 100644 Documentation/devicetree/bindings/mmc/sunplus,mmc.yaml
delete mode 100644 Documentation/devicetree/bindings/mtd/partition.txt
create mode 100644 Documentation/devicetree/bindings/mtd/partitions/partitions.yaml
create mode 100644 Documentation/devicetree/bindings/mtd/partitions/tplink,safeloader-partitions.yaml
delete mode 100644 Documentation/devicetree/bindings/net/bluetooth.txt
create mode 100644 Documentation/devicetree/bindings/net/bluetooth/bluetooth-controller.yaml
create mode 100644 Documentation/devicetree/bindings/net/bluetooth/brcm,bcm4377-bluetooth.yaml
rename Documentation/devicetree/bindings/net/{ => bluetooth}/qualcomm-bluetooth.yaml (96%)
create mode 100644 Documentation/devicetree/bindings/net/marvell,dfx-server.yaml
create mode 100644 Documentation/devicetree/bindings/net/marvell,pp2.yaml
delete mode 100644 Documentation/devicetree/bindings/net/marvell,prestera.txt
create mode 100644 Documentation/devicetree/bindings/net/marvell,prestera.yaml
delete mode 100644 Documentation/devicetree/bindings/net/marvell-pp2.txt
create mode 100644 Documentation/devicetree/bindings/net/pcs/fsl,lynx-pcs.yaml
create mode 100644 Documentation/devicetree/bindings/net/renesas,r8a779f0-ether-switch.yaml
create mode 100644 Documentation/devicetree/bindings/net/socionext,synquacer-netsec.yaml
delete mode 100644 Documentation/devicetree/bindings/net/socionext-netsec.txt
create mode 100644 Documentation/devicetree/bindings/nvmem/layouts/kontron,sl28-vpd.yaml
create mode 100644 Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml
create mode 100644 Documentation/devicetree/bindings/nvmem/layouts/onie,tlv-layout.yaml
create mode 100644 Documentation/devicetree/bindings/pci/baikal,bt1-pcie.yaml
create mode 100644 Documentation/devicetree/bindings/pci/snps,dw-pcie-common.yaml
delete mode 100644 Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt
delete mode 100644 Documentation/devicetree/bindings/pci/xilinx-pcie.txt
create mode 100644 Documentation/devicetree/bindings/pci/xlnx,axi-pcie-host.yaml
create mode 100644 Documentation/devicetree/bindings/pci/xlnx,nwl-pcie.yaml
create mode 100644 Documentation/devicetree/bindings/perf/amlogic,g12-ddr-pmu.yaml
rename Documentation/devicetree/bindings/phy/{qcom,qmp-pcie-phy.yaml => qcom,ipq8074-qmp-pcie-phy.yaml} (96%)
rename Documentation/devicetree/bindings/phy/{qcom,qmp-ufs-phy.yaml => qcom,msm8996-qmp-ufs-phy.yaml} (93%)
rename Documentation/devicetree/bindings/phy/{qcom,qmp-usb-phy.yaml => qcom,msm8996-qmp-usb3-phy.yaml} (95%)
rename Documentation/devicetree/bindings/phy/{qcom,qmp-usb3-dp-phy.yaml => qcom,sc7180-qmp-usb3-dp-phy.yaml} (91%)
create mode 100644 Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
create mode 100644 Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml
create mode 100644 Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml
create mode 100644 Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml
create mode 100644 Documentation/devicetree/bindings/phy/renesas,r8a779f0-ether-serdes.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/loongson,ls2k-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/mediatek,mt6797-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra-pinmux-common.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra194-pinmux.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra194-pinmux.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra210-pinmux.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra210-pinmux.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl-sx150x.txt
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,ipq8074-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,ipq8074-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{qcom,mdm9607-pinctrl.yaml => qcom,mdm9607-tlmm.yaml} (84%)
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,mdm9615-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,mdm9615-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8660-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8660-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8916-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8916-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8960-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8960-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8976-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8976-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8994-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8994-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8996-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8996-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8998-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8998-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{qcom,qcm2290-pinctrl.yaml => qcom,qcm2290-tlmm.yaml} (76%)
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,qcs404-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,qcs404-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sc7180-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sc7180-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{qcom,sc8180x-pinctrl.yaml => qcom,sc8180x-tlmm.yaml} (88%)
rename Documentation/devicetree/bindings/pinctrl/{qcom,sc8280xp-pinctrl.yaml => qcom,sc8280xp-tlmm.yaml} (89%)
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm630-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm660-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm670-tlmm.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm845-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm845-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{qcom,sdx65-pinctrl.yaml => qcom,sdx65-tlmm.yaml} (85%)
rename Documentation/devicetree/bindings/pinctrl/{qcom,sm6115-pinctrl.yaml => qcom,sm6115-tlmm.yaml} (75%)
rename Documentation/devicetree/bindings/pinctrl/{qcom,sm6125-pinctrl.yaml => qcom,sm6125-tlmm.yaml} (87%)
rename Documentation/devicetree/bindings/pinctrl/{qcom,sm6350-pinctrl.yaml => qcom,sm6350-tlmm.yaml} (90%)
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sm8150-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sm8150-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{qcom,sm8350-pinctrl.yaml => qcom,sm8350-tlmm.yaml} (89%)
rename Documentation/devicetree/bindings/pinctrl/{qcom,sm8450-pinctrl.yaml => qcom,sm8450-tlmm.yaml} (89%)
create mode 100644 Documentation/devicetree/bindings/pinctrl/semtech,sx1501q.yaml
create mode 100644 Documentation/devicetree/bindings/power/reset/restart-handler.yaml
delete mode 100644 Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt
create mode 100644 Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/mediatek,mt6357-regulator.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/regulator-output.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/richtek,rt6190.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/xlnx,zynqmp-r5fss.yaml
create mode 100644 Documentation/devicetree/bindings/reserved-memory/framebuffer.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/amlogic,meson6-rtc.yaml
delete mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.txt
create mode 100644 Documentation/devicetree/bindings/rtc/haoyu,hym8563.yaml
delete mode 100644 Documentation/devicetree/bindings/rtc/rtc-m41t80.txt
delete mode 100644 Documentation/devicetree/bindings/rtc/rtc-meson.txt
create mode 100644 Documentation/devicetree/bindings/rtc/st,m41t80.yaml
delete mode 100644 Documentation/devicetree/bindings/slimbus/bus.txt
create mode 100644 Documentation/devicetree/bindings/slimbus/qcom,slim-ngd.yaml
create mode 100644 Documentation/devicetree/bindings/slimbus/qcom,slim.yaml
delete mode 100644 Documentation/devicetree/bindings/slimbus/slim-ngd-qcom-ctrl.txt
delete mode 100644 Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt
create mode 100644 Documentation/devicetree/bindings/slimbus/slimbus.yaml
create mode 100644 Documentation/devicetree/bindings/soc/mediatek/mediatek,mt7986-wo-ccif.yaml
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,apr-services.yaml
create mode 100644 Documentation/devicetree/bindings/soc/renesas/renesas,r9a09g011-sys.yaml
rename Documentation/devicetree/bindings/{arm => soc/renesas}/renesas.yaml (98%)
rename Documentation/devicetree/bindings/sound/{name-prefix.yaml => dai-common.yaml} (81%)
create mode 100644 Documentation/devicetree/bindings/sound/dmic-codec.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/dmic.txt
delete mode 100644 Documentation/devicetree/bindings/sound/max98357a.txt
delete mode 100644 Documentation/devicetree/bindings/sound/max98504.txt
create mode 100644 Documentation/devicetree/bindings/sound/maxim,max98357a.yaml
create mode 100644 Documentation/devicetree/bindings/sound/maxim,max98504.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6adm.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6afe.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6apm-lpass-dais.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6apm.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6asm.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6core.yaml
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6prm.yaml
create mode 100644 Documentation/devicetree/bindings/sound/wlf,wm8961.yaml
delete mode 100644 Documentation/devicetree/bindings/soundwire/qcom,sdw.txt
create mode 100644 Documentation/devicetree/bindings/soundwire/qcom,soundwire.yaml
create mode 100644 Documentation/devicetree/bindings/spi/nuvoton,wpcm450-fiu.yaml
create mode 100644 Documentation/devicetree/bindings/spi/socionext,f-ospi.yaml
create mode 100644 Documentation/devicetree/bindings/spi/socionext,synquacer-spi.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/spi-synquacer.txt
create mode 100644 Documentation/devicetree/bindings/thermal/generic-adc-thermal.yaml
delete mode 100644 Documentation/devicetree/bindings/thermal/thermal-generic-adc.txt
create mode 100644 Documentation/devicetree/bindings/timer/brcm,bcmbca-timer.yaml
create mode 100644 Documentation/devicetree/bindings/usb/genesys,gl850g.yaml
delete mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt
create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.yaml
create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra186-xusb.yaml
create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra194-xusb.yaml
create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra210-xusb.yaml
delete mode 100644 Documentation/devicetree/bindings/usb/usb251xb.txt
create mode 100644 Documentation/devicetree/bindings/usb/usb251xb.yaml
delete mode 100644 Documentation/devicetree/bindings/watchdog/gpio-wdt.txt
create mode 100644 Documentation/devicetree/bindings/watchdog/linux,wdt-gpio.yaml
create mode 100644 Documentation/devicetree/bindings/watchdog/mediatek,mtk-wdt.yaml
delete mode 100644 Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
create mode 100644 Documentation/hwmon/oxp-sensors.rst
create mode 100644 Documentation/hwmon/smpro-hwmon.rst
create mode 100644 Documentation/loongarch/booting.rst
create mode 100644 Documentation/networking/devlink/etas_es58x.rst
create mode 100644 Documentation/networking/tc-queue-filters.rst
create mode 100644 Documentation/nvme/feature-and-quirk-policy.rst
create mode 100644 Documentation/sphinx-static/custom.css
create mode 100644 Documentation/tools/rv/Makefile
create mode 100644 Documentation/tools/rv/common_appendix.rst
create mode 100644 Documentation/tools/rv/common_ikm.rst
create mode 100644 Documentation/tools/rv/index.rst
create mode 100644 Documentation/tools/rv/rv-list.rst
create mode 100644 Documentation/tools/rv/rv-mon-wip.rst
create mode 100644 Documentation/tools/rv/rv-mon-wwnr.rst
create mode 100644 Documentation/tools/rv/rv-mon.rst
create mode 100644 Documentation/tools/rv/rv.rst
create mode 100644 Documentation/translations/sp_SP/disclaimer-sp.rst
create mode 100644 Documentation/translations/sp_SP/howto.rst
create mode 100644 Documentation/translations/sp_SP/index.rst
create mode 100644 Documentation/translations/sp_SP/memory-barriers.txt
create mode 100644 Documentation/translations/sp_SP/process/coding-style.rst
create mode 100644 Documentation/translations/sp_SP/process/index.rst
create mode 100644 Documentation/translations/sp_SP/process/kernel-docs.rst
create mode 100644 Documentation/translations/sp_SP/process/submitting-patches.rst
create mode 100644 Documentation/translations/sp_SP/wrappers/memory-barriers.rst
create mode 100644 Documentation/translations/zh_CN/core-api/errseq.rst
create mode 100644 Documentation/translations/zh_CN/core-api/this_cpu_ops.rst
create mode 100644 Documentation/translations/zh_CN/loongarch/booting.rst
create mode 100644 Documentation/translations/zh_CN/rust/arch-support.rst
create mode 100644 Documentation/translations/zh_CN/rust/coding-guidelines.rst
create mode 100644 Documentation/translations/zh_CN/rust/general-information.rst
create mode 100644 Documentation/translations/zh_CN/rust/index.rst
create mode 100644 Documentation/translations/zh_CN/rust/quick-start.rst
create mode 100644 Documentation/translations/zh_CN/staging/index.rst
create mode 100644 Documentation/translations/zh_CN/staging/xz.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/accelerators/ocxl.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/ebpf/index.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/ebpf/syscall.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/futex2.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/index.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/no_new_privs.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/seccomp_filter.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/sysfs-platform_profile.rst
create mode 100644 Documentation/userspace-api/iommufd.rst
create mode 100644 Documentation/userspace-api/media/drivers/aspeed-video.rst
create mode 100644 Documentation/userspace-api/media/drivers/st-vgxy61.rst
create mode 100644 Documentation/virt/coco/tdx-guest.rst
rename Documentation/virt/kvm/{x86 => }/halt-polling.rst (92%)
create mode 100644 LICENSES/dual/copyleft-next-0.3.1
create mode 100644 arch/arm/boot/dts/aspeed-bmc-delta-ahe50dc.dts
create mode 100644 arch/arm/boot/dts/aspeed-bmc-ibm-bonnell.dts
delete mode 100644 arch/arm/boot/dts/aspeed-bmc-opp-mihawk.dts
create mode 100644 arch/arm/boot/dts/bcm283x-rpi-led-deprecated.dtsi
create mode 100644 arch/arm/boot/dts/bcm47094-dlink-dir-890l.dts
create mode 100644 arch/arm/boot/dts/bcm53016-dlink-dwl-8610ap.dts
create mode 100644 arch/arm/boot/dts/imx6sl-kobo-aura2.dts
create mode 100644 arch/arm/boot/dts/kirkwood-nsa310s.dts
create mode 100644 arch/arm/boot/dts/qcom-apq8026-huawei-sturgeon.dts
create mode 100644 arch/arm/boot/dts/qcom-apq8026-samsung-matisse-wifi.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8974pro-oneplus-bacon.dts
create mode 100644 arch/arm/boot/dts/stm32mp151a-dhcor-testbench.dts
create mode 100644 arch/arm/boot/dts/stm32mp15xx-dhcor-testbench.dtsi
create mode 100644 arch/arm/boot/dts/uniphier-pro5-epcore.dts
create mode 100644 arch/arm/boot/dts/uniphier-pro5-proex.dts
create mode 100644 arch/arm/lib/error-inject.c
delete mode 100644 arch/arm/mach-keystone/platsmp.c
delete mode 100644 arch/arm/mach-keystone/smc.S
delete mode 100644 arch/arm/mach-ux500/db8500-regs.h
create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts
create mode 100644 arch/arm64/boot/dts/apple/multi-die-cpp.h
create mode 100644 arch/arm64/boot/dts/apple/t6000-j314s.dts
create mode 100644 arch/arm64/boot/dts/apple/t6000-j316s.dts
create mode 100644 arch/arm64/boot/dts/apple/t6000.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t6001-j314c.dts
create mode 100644 arch/arm64/boot/dts/apple/t6001-j316c.dts
create mode 100644 arch/arm64/boot/dts/apple/t6001-j375c.dts
create mode 100644 arch/arm64/boot/dts/apple/t6001.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t6002-j375d.dts
create mode 100644 arch/arm64/boot/dts/apple/t6002.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-common.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-die0.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-dieX.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-gpio-pins.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-j375.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-nvme.dtsi
create mode 100644 arch/arm64/boot/dts/apple/t600x-pmgr.dtsi
rename arch/arm64/boot/dts/freescale/{fsl-ls1028a-qds-13bb.dts => fsl-ls1028a-qds-13bb.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{fsl-ls1028a-qds-65bb.dts => fsl-ls1028a-qds-65bb.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{fsl-ls1028a-qds-7777.dts => fsl-ls1028a-qds-7777.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{fsl-ls1028a-qds-85bb.dts => fsl-ls1028a-qds-85bb.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{fsl-ls1028a-qds-899b.dts => fsl-ls1028a-qds-899b.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{fsl-ls1028a-qds-9999.dts => fsl-ls1028a-qds-9999.dtso} (100%)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-innocomm-wb15-evk.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-innocomm-wb15.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-phg.dts
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw72xx-0x-imx219.dts => imx8mm-venice-gw72xx-0x-imx219.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw72xx-0x-rs232-rts.dts => imx8mm-venice-gw72xx-0x-rs232-rts.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw72xx-0x-rs422.dts => imx8mm-venice-gw72xx-0x-rs422.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw72xx-0x-rs485.dts => imx8mm-venice-gw72xx-0x-rs485.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw73xx-0x-imx219.dts => imx8mm-venice-gw73xx-0x-imx219.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw73xx-0x-rs232-rts.dts => imx8mm-venice-gw73xx-0x-rs232-rts.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw73xx-0x-rs422.dts => imx8mm-venice-gw73xx-0x-rs422.dtso} (100%)
rename arch/arm64/boot/dts/freescale/{imx8mm-venice-gw73xx-0x-rs485.dts => imx8mm-venice-gw73xx-0x-rs485.dtso} (100%)
create mode 100644 arch/arm64/boot/dts/mediatek/mt6795-sony-xperia-m5.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8956-sony-xperia-loire-kugo.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8956-sony-xperia-loire-suzu.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8956-sony-xperia-loire.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8956.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8976.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-oneplus-common.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-oneplus3.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-oneplus3t.dts
rename arch/arm64/boot/dts/qcom/{msm8996-xiaomi-natrium.dts => msm8996pro-xiaomi-natrium.dts} (97%)
rename arch/arm64/boot/dts/qcom/{msm8996-xiaomi-scorpio.dts => msm8996pro-xiaomi-scorpio.dts} (97%)
create mode 100644 arch/arm64/boot/dts/qcom/msm8996pro.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8998-xiaomi-sagit.dts
create mode 100644 arch/arm64/boot/dts/qcom/pm6125.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/pm8450a.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/pm8950.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/pmi8950.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/pmp8074.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dts
create mode 100644 arch/arm64/boot/dts/qcom/sa8540p-ride.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel360-lte.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel360-wifi.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel360.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-audio-rt5682-3mic.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-audio-rt5682.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker-lte.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker.dts
rename arch/arm64/boot/dts/qcom/{sc7280-herobrine-evoker-r0.dts => sc7280-herobrine-evoker.dtsi} (94%)
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r1.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-zombie-lte.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-zombie.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-zombie.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts
create mode 100644 arch/arm64/boot/dts/qcom/sdm670.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dts
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-samsung-starqltechn.dts
rename arch/arm64/boot/dts/qcom/{sdm845-xiaomi-beryllium.dts => sdm845-xiaomi-beryllium-common.dtsi} (94%)
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-ebbg.dts
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-tianma.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm4250.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sm6115.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sm6375-sony-xperia-murray-pdx225.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm6375.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sm8450-sony-xperia-nagara-pdx224.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm8450-sony-xperia-nagara.dtsi
rename arch/arm64/boot/dts/renesas/{draak-ebisu-panel-aa104xd12.dts => draak-ebisu-panel-aa104xd12.dtso} (100%)
create mode 100644 arch/arm64/boot/dts/renesas/r9a07g043u.dtsi
rename arch/arm64/boot/dts/renesas/{salvator-panel-aa104xd12.dts => salvator-panel-aa104xd12.dtso} (100%)
create mode 100644 arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts
create mode 100644 arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351m.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3326-odroid-go.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3326-odroid-go3.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-anbernic-rg353v.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-anbernic-rg353vs.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-anbernic-rg353x.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-box-demo.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-soquartz-blade.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-soquartz-model-a.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
create mode 100644 arch/arm64/boot/dts/ti/k3-j721e-beagleboneai64.dts
create mode 100644 arch/arm64/crypto/sm3-neon-core.S
create mode 100644 arch/arm64/crypto/sm3-neon-glue.c
create mode 100644 arch/arm64/crypto/sm4-ce-asm.h
create mode 100644 arch/arm64/crypto/sm4-ce-ccm-core.S
create mode 100644 arch/arm64/crypto/sm4-ce-ccm-glue.c
create mode 100644 arch/arm64/crypto/sm4-ce-gcm-core.S
create mode 100644 arch/arm64/crypto/sm4-ce-gcm-glue.c
create mode 100644 arch/arm64/crypto/sm4-ce.h
delete mode 100644 arch/arm64/kernel/efi-entry.S
create mode 100644 arch/arm64/kernel/patch-scs.c
create mode 100644 arch/arm64/kvm/hyp/include/nvhe/pkvm.h
delete mode 100644 arch/arm64/kvm/irq.h
create mode 100644 arch/loongarch/include/asm/alternative-asm.h
create mode 100644 arch/loongarch/include/asm/alternative.h
create mode 100644 arch/loongarch/include/asm/asm-extable.h
create mode 100644 arch/loongarch/include/asm/bugs.h
create mode 100644 arch/loongarch/include/asm/extable.h
create mode 100644 arch/loongarch/include/asm/ftrace.h
create mode 100644 arch/loongarch/include/asm/gpr-num.h
create mode 100644 arch/loongarch/include/asm/stackprotector.h
create mode 100644 arch/loongarch/kernel/alternative.c
create mode 100644 arch/loongarch/kernel/ftrace.c
create mode 100644 arch/loongarch/kernel/ftrace_dyn.c
create mode 100644 arch/loongarch/kernel/mcount.S
create mode 100644 arch/loongarch/kernel/mcount_dyn.S
create mode 100644 arch/loongarch/kernel/unaligned.c
create mode 100644 arch/loongarch/lib/memcpy.S
create mode 100644 arch/loongarch/lib/memmove.S
create mode 100644 arch/loongarch/lib/memset.S
create mode 100644 arch/loongarch/lib/unaligned.S
create mode 100644 arch/loongarch/power/Makefile
create mode 100644 arch/loongarch/power/hibernate.c
create mode 100644 arch/loongarch/power/hibernate_asm.S
create mode 100644 arch/loongarch/power/platform.c
create mode 100644 arch/loongarch/power/suspend.c
create mode 100644 arch/loongarch/power/suspend_asm.S
delete mode 100644 arch/microblaze/pci/indirect_pci.c
delete mode 100644 arch/microblaze/pci/pci-common.c
delete mode 100644 arch/microblaze/pci/xilinx_pci.c
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-2.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-3.dtsi
create mode 100644 arch/powerpc/include/asm/asm.h
delete mode 100644 arch/powerpc/include/asm/qspinlock_paravirt.h
create mode 100644 arch/powerpc/include/asm/qspinlock_types.h
delete mode 100644 arch/powerpc/kvm/irq.h
create mode 100644 arch/powerpc/lib/qspinlock.c
create mode 100644 arch/riscv/boot/dts/renesas/Makefile
create mode 100644 arch/riscv/boot/dts/renesas/r9a07g043f.dtsi
create mode 100644 arch/riscv/boot/dts/renesas/r9a07g043f01-smarc.dts
create mode 100644 arch/riscv/boot/dts/renesas/rzfive-smarc-som.dtsi
create mode 100644 arch/riscv/boot/dts/renesas/rzfive-smarc.dtsi
create mode 100644 arch/riscv/boot/dts/starfive/jh7100-common.dtsi
create mode 100644 arch/riscv/boot/dts/starfive/jh7100-starfive-visionfive-v1.dts
create mode 100644 arch/riscv/kernel/crash_core.c
create mode 100644 arch/riscv/kernel/probes/rethook.c
create mode 100644 arch/riscv/kernel/probes/rethook.h
rename arch/riscv/kernel/probes/{kprobes_trampoline.S => rethook_trampoline.S} (94%)
create mode 100644 arch/riscv/mm/pgtable.c
create mode 100644 arch/riscv/mm/pmem.c
delete mode 100644 arch/s390/include/asm/bugs.h
delete mode 100644 arch/s390/include/asm/serial.h
delete mode 100644 arch/s390/include/asm/shmparam.h
delete mode 100644 arch/s390/include/asm/vga.h
create mode 100644 arch/s390/include/asm/vx-insn-asm.h
create mode 100644 arch/s390/kernel/kprobes.h
delete mode 100644 arch/s390/kvm/irq.h
create mode 100644 arch/x86/boot/compressed/efi_mixed.S
delete mode 100644 arch/x86/boot/compressed/efi_thunk_64.S
create mode 100644 arch/x86/include/asm/hyperv_timer.h
create mode 100644 arch/x86/kernel/callthunks.c
rename arch/x86/{ia32/ia32_signal.c => kernel/signal_32.c} (82%)
create mode 100644 arch/x86/kernel/signal_64.c
create mode 100644 arch/x86/kvm/smm.c
create mode 100644 arch/x86/kvm/smm.h
create mode 100644 arch/x86/kvm/svm/hyperv.c
rename arch/x86/kvm/vmx/{evmcs.c => hyperv.c} (95%)
rename arch/x86/kvm/vmx/{evmcs.h => hyperv.h} (95%)
create mode 100644 arch/x86/lib/memmove_32.S
rename {drivers/firmware => arch/x86/platform}/efi/fake_mem.c (58%)
create mode 100644 arch/x86/platform/efi/memmap.c
rename {drivers/firmware => arch/x86/platform}/efi/runtime-map.c (96%)
create mode 100644 arch/xtensa/lib/umulsidi3.S
create mode 100644 drivers/accel/Kconfig
create mode 100644 drivers/accel/Makefile
create mode 100644 drivers/accel/drm_accel.c
create mode 100644 drivers/accel/ivpu/Kconfig
create mode 100644 drivers/accel/ivpu/Makefile
create mode 100644 drivers/accel/ivpu/TODO
create mode 100644 drivers/accel/ivpu/ivpu_drv.c
create mode 100644 drivers/accel/ivpu/ivpu_drv.h
create mode 100644 drivers/accel/ivpu/ivpu_fw.c
create mode 100644 drivers/accel/ivpu/ivpu_fw.h
create mode 100644 drivers/accel/ivpu/ivpu_gem.c
create mode 100644 drivers/accel/ivpu/ivpu_gem.h
create mode 100644 drivers/accel/ivpu/ivpu_hw.h
create mode 100644 drivers/accel/ivpu/ivpu_hw_mtl.c
create mode 100644 drivers/accel/ivpu/ivpu_hw_mtl_reg.h
create mode 100644 drivers/accel/ivpu/ivpu_hw_reg_io.h
create mode 100644 drivers/accel/ivpu/ivpu_ipc.c
create mode 100644 drivers/accel/ivpu/ivpu_ipc.h
create mode 100644 drivers/accel/ivpu/ivpu_job.c
create mode 100644 drivers/accel/ivpu/ivpu_job.h
create mode 100644 drivers/accel/ivpu/ivpu_jsm_msg.c
create mode 100644 drivers/accel/ivpu/ivpu_jsm_msg.h
create mode 100644 drivers/accel/ivpu/ivpu_mmu.c
create mode 100644 drivers/accel/ivpu/ivpu_mmu.h
create mode 100644 drivers/accel/ivpu/ivpu_mmu_context.c
create mode 100644 drivers/accel/ivpu/ivpu_mmu_context.h
create mode 100644 drivers/accel/ivpu/ivpu_pm.c
create mode 100644 drivers/accel/ivpu/ivpu_pm.h
create mode 100644 drivers/accel/ivpu/vpu_boot_api.h
create mode 100644 drivers/accel/ivpu/vpu_jsm_api.h
create mode 100644 drivers/acpi/acpi_ffh.c
create mode 100644 drivers/acpi/acpica/utcksum.c
create mode 100644 drivers/acpi/arm64/apmt.c
delete mode 100644 drivers/ata/pata_bk3710.c
create mode 100644 drivers/base/regmap/regmap-fsi.c
create mode 100644 drivers/block/drbd/drbd_polymorph_printk.h
delete mode 100644 drivers/block/pktcdvd.c
create mode 100644 drivers/bluetooth/hci_bcm4377.c
create mode 100644 drivers/char/ipmi/ssif_bmc.c
create mode 100644 drivers/clk/ingenic/jz4755-cgu.c
create mode 100644 drivers/clk/mediatek/clk-fhctl.c
create mode 100644 drivers/clk/mediatek/clk-fhctl.h
create mode 100644 drivers/clk/mediatek/clk-pllfh.c
create mode 100644 drivers/clk/mediatek/clk-pllfh.h
create mode 100644 drivers/clk/mstar/clk-msc313-cpupll.c
create mode 100644 drivers/clk/qcom/dispcc-sc8280xp.c
create mode 100644 drivers/clk/qcom/dispcc-sm6375.c
create mode 100644 drivers/clk/qcom/gcc-sm8550.c
create mode 100644 drivers/clk/rockchip/clk-rk3588.c
create mode 100644 drivers/clk/rockchip/rst-rk3588.c
create mode 100644 drivers/cpufreq/apple-soc-cpufreq.c
create mode 100644 drivers/crypto/hisilicon/debugfs.c
create mode 100644 drivers/crypto/hisilicon/qm_common.h
create mode 100644 drivers/crypto/qat/qat_common/adf_gen2_config.c
create mode 100644 drivers/crypto/qat/qat_common/adf_gen2_config.h
create mode 100644 drivers/crypto/qat/qat_common/adf_gen2_dc.c
create mode 100644 drivers/crypto/qat/qat_common/adf_gen2_dc.h
create mode 100644 drivers/crypto/qat/qat_common/adf_gen4_dc.c
create mode 100644 drivers/crypto/qat/qat_common/adf_gen4_dc.h
create mode 100644 drivers/crypto/qat/qat_common/icp_qat_fw_comp.h
create mode 100644 drivers/crypto/qat/qat_common/icp_qat_hw_20_comp.h
create mode 100644 drivers/crypto/qat/qat_common/icp_qat_hw_20_comp_defs.h
create mode 100644 drivers/crypto/qat/qat_common/qat_bl.c
create mode 100644 drivers/crypto/qat/qat_common/qat_bl.h
create mode 100644 drivers/crypto/qat/qat_common/qat_comp_algs.c
create mode 100644 drivers/crypto/qat/qat_common/qat_comp_req.h
create mode 100644 drivers/crypto/qat/qat_common/qat_compression.c
create mode 100644 drivers/crypto/qat/qat_common/qat_compression.h
delete mode 100644 drivers/crypto/ux500/cryp/Makefile
delete mode 100644 drivers/crypto/ux500/cryp/cryp.c
delete mode 100644 drivers/crypto/ux500/cryp/cryp.h
delete mode 100644 drivers/crypto/ux500/cryp/cryp_core.c
delete mode 100644 drivers/crypto/ux500/cryp/cryp_irq.c
delete mode 100644 drivers/crypto/ux500/cryp/cryp_irq.h
delete mode 100644 drivers/crypto/ux500/cryp/cryp_irqp.h
delete mode 100644 drivers/crypto/ux500/cryp/cryp_p.h
create mode 100644 drivers/cxl/security.c
delete mode 100644 drivers/dma/at_hdmac_regs.h
delete mode 100644 drivers/dma/iop-adma.c
delete mode 100644 drivers/dma/iop-adma.h
delete mode 100644 drivers/dma/sh/shdma-arm.h
create mode 100644 drivers/firmware/efi/cper_cxl.c
create mode 100644 drivers/firmware/efi/cper_cxl.h
delete mode 100644 drivers/firmware/efi/fake_mem.h
create mode 100644 drivers/firmware/efi/libstub/arm64-entry.S
create mode 100644 drivers/firmware/efi/libstub/arm64.c
create mode 100644 drivers/firmware/efi/libstub/efi-stub-entry.c
create mode 100644 drivers/firmware/efi/libstub/loongarch.c
create mode 100644 drivers/firmware/efi/libstub/printk.c
create mode 100644 drivers/firmware/efi/libstub/riscv.c
create mode 100644 drivers/firmware/efi/libstub/screen_info.c
delete mode 100644 drivers/firmware/efi/x86_fake_mem.c
create mode 100644 drivers/firmware/google/cbmem.c
create mode 100644 drivers/fpga/lattice-sysconfig-spi.c
create mode 100644 drivers/fpga/lattice-sysconfig.c
create mode 100644 drivers/fpga/lattice-sysconfig.h
create mode 100644 drivers/gpio/gpio-idio-16.c
create mode 100644 drivers/gpio/gpio-idio-16.h
create mode 100644 drivers/gpio/gpio-latch.c
delete mode 100644 drivers/gpio/gpio-sta2x11.c
create mode 100644 drivers/gpio/gpiolib-swnode.c
create mode 100644 drivers/gpio/gpiolib-swnode.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/df_v4_3.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/df_v4_3.h
create mode 100644 drivers/gpu/drm/amd/display/dc/link/link_dp_dpia_bw.c
create mode 100644 drivers/gpu/drm/amd/display/dc/link/link_dp_dpia_bw.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/df/df_4_3_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/df/df_4_3_sh_mask.h
create mode 100644 drivers/gpu/drm/i915/display/intel_dvo_regs.h
rename drivers/gpu/drm/i915/{ => soc}/intel_dram.c (100%)
rename drivers/gpu/drm/i915/{ => soc}/intel_dram.h (100%)
rename drivers/gpu/drm/i915/{ => soc}/intel_pch.c (100%)
rename drivers/gpu/drm/i915/{ => soc}/intel_pch.h (100%)
create mode 100644 drivers/gpu/drm/panel/panel-auo-a030jtn01.c
create mode 100644 drivers/gpu/drm/tegra/riscv.c
create mode 100644 drivers/gpu/drm/tegra/riscv.h
create mode 100644 drivers/hwmon/oxp-sensors.c
create mode 100644 drivers/hwmon/smpro-hwmon.c
create mode 100644 drivers/iio/accel/kionix-kx022a-i2c.c
create mode 100644 drivers/iio/accel/kionix-kx022a-spi.c
create mode 100644 drivers/iio/accel/kionix-kx022a.c
create mode 100644 drivers/iio/accel/kionix-kx022a.h
create mode 100644 drivers/iio/adc/ad4130.c
create mode 100644 drivers/iio/adc/max11410.c
create mode 100644 drivers/iio/adc/mt6370-adc.c
create mode 100644 drivers/iio/addac/ad74115.c
create mode 100644 drivers/iio/frequency/adf4377.c
create mode 100644 drivers/iio/temperature/max30208.c
create mode 100644 drivers/infiniband/hw/mana/Kconfig
create mode 100644 drivers/infiniband/hw/mana/Makefile
create mode 100644 drivers/infiniband/hw/mana/cq.c
create mode 100644 drivers/infiniband/hw/mana/device.c
create mode 100644 drivers/infiniband/hw/mana/main.c
create mode 100644 drivers/infiniband/hw/mana/mana_ib.h
create mode 100644 drivers/infiniband/hw/mana/mr.c
create mode 100644 drivers/infiniband/hw/mana/qp.c
create mode 100644 drivers/infiniband/hw/mana/wq.c
delete mode 100644 drivers/input/misc/dm355evm_keys.c
create mode 100644 drivers/input/misc/tps65219-pwrbutton.c
create mode 100644 drivers/input/touchscreen/cyttsp5.c
create mode 100644 drivers/input/touchscreen/himax_hx83112b.c
create mode 100644 drivers/input/touchscreen/hynitron_cstxxx.c
delete mode 100644 drivers/iommu/iommu-sva-lib.c
create mode 100644 drivers/iommu/iommu-sva.c
rename drivers/iommu/{iommu-sva-lib.h => iommu-sva.h} (83%)
create mode 100644 drivers/iommu/iommufd/Kconfig
create mode 100644 drivers/iommu/iommufd/Makefile
create mode 100644 drivers/iommu/iommufd/device.c
create mode 100644 drivers/iommu/iommufd/double_span.h
create mode 100644 drivers/iommu/iommufd/hw_pagetable.c
create mode 100644 drivers/iommu/iommufd/io_pagetable.c
create mode 100644 drivers/iommu/iommufd/io_pagetable.h
create mode 100644 drivers/iommu/iommufd/ioas.c
create mode 100644 drivers/iommu/iommufd/iommufd_private.h
create mode 100644 drivers/iommu/iommufd/iommufd_test.h
create mode 100644 drivers/iommu/iommufd/main.c
create mode 100644 drivers/iommu/iommufd/pages.c
create mode 100644 drivers/iommu/iommufd/selftest.c
create mode 100644 drivers/iommu/iommufd/vfio_compat.c
create mode 100644 drivers/media/i2c/ov08x40.c
create mode 100644 drivers/media/i2c/ov4689.c
delete mode 100644 drivers/media/i2c/s5k4ecgx.c
create mode 100644 drivers/media/i2c/st-vgxy61.c
create mode 100644 drivers/media/i2c/tc358746.c
create mode 100644 drivers/media/platform/microchip/Kconfig
create mode 100644 drivers/media/platform/microchip/Makefile
rename drivers/media/platform/{atmel => microchip}/microchip-csi2dc.c (100%)
create mode 100644 drivers/media/platform/microchip/microchip-isc-base.c
create mode 100644 drivers/media/platform/microchip/microchip-isc-clk.c
create mode 100644 drivers/media/platform/microchip/microchip-isc-regs.h
create mode 100644 drivers/media/platform/microchip/microchip-isc-scaler.c
create mode 100644 drivers/media/platform/microchip/microchip-isc.h
create mode 100644 drivers/media/platform/microchip/microchip-sama5d2-isc.c
create mode 100644 drivers/media/platform/microchip/microchip-sama7g5-isc.c
rename drivers/{staging/media/imx => media/platform/nxp}/imx7-media-csi.c (91%)
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/Kconfig
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/Makefile
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c
create mode 100644 drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c
create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c
create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h
create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c
create mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.h
delete mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun6i_video.c
delete mode 100644 drivers/media/platform/sunxi/sun6i-csi/sun6i_video.h
create mode 100644 drivers/media/test-drivers/visl/Kconfig
create mode 100644 drivers/media/test-drivers/visl/Makefile
create mode 100644 drivers/media/test-drivers/visl/visl-core.c
create mode 100644 drivers/media/test-drivers/visl/visl-debugfs.c
create mode 100644 drivers/media/test-drivers/visl/visl-debugfs.h
create mode 100644 drivers/media/test-drivers/visl/visl-dec.c
create mode 100644 drivers/media/test-drivers/visl/visl-dec.h
create mode 100644 drivers/media/test-drivers/visl/visl-trace-fwht.h
create mode 100644 drivers/media/test-drivers/visl/visl-trace-h264.h
create mode 100644 drivers/media/test-drivers/visl/visl-trace-hevc.h
create mode 100644 drivers/media/test-drivers/visl/visl-trace-mpeg2.h
create mode 100644 drivers/media/test-drivers/visl/visl-trace-points.c
create mode 100644 drivers/media/test-drivers/visl/visl-trace-vp8.h
create mode 100644 drivers/media/test-drivers/visl/visl-trace-vp9.h
create mode 100644 drivers/media/test-drivers/visl/visl-video.c
create mode 100644 drivers/media/test-drivers/visl/visl-video.h
create mode 100644 drivers/media/test-drivers/visl/visl.h
delete mode 100644 drivers/mfd/davinci_voicecodec.c
delete mode 100644 drivers/mfd/dm355evm_msp.c
delete mode 100644 drivers/mfd/htc-i2cpld.c
create mode 100644 drivers/mfd/smpro-core.c
create mode 100644 drivers/mfd/tps65219.c
create mode 100644 drivers/misc/smpro-errmon.c
create mode 100644 drivers/misc/smpro-misc.c
create mode 100644 drivers/mmc/host/sunplus-mmc.c
delete mode 100644 drivers/mtd/devices/lart.c
create mode 100644 drivers/mtd/parsers/tplink_safeloader.c
delete mode 100644 drivers/net/can/pch_can.c
create mode 100644 drivers/net/can/usb/etas_es58x/es58x_devlink.c
create mode 100644 drivers/net/dsa/mv88e6xxx/trace.c
create mode 100644 drivers/net/dsa/mv88e6xxx/trace.h
delete mode 100644 drivers/net/ethernet/fealnx.c
create mode 100644 drivers/net/ethernet/freescale/dpaa2/dpaa2-xsk.c
create mode 100644 drivers/net/ethernet/intel/e1000e/e1000e_trace.h
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed_mcu.c
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed_wo.c
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed_wo.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/diag/cmd_tracepoint.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_definer.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_goto.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_tc_flower.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_vcap_ag_api.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_vcap_ag_api.h
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_tc_matchall.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_vcap_ag_api.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_vcap_ag_api.h
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_vcap_debugfs.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_vcap_debugfs.h
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.c
create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_vcap_impl.h
create mode 100644 drivers/net/ethernet/microchip/vcap/Kconfig
create mode 100644 drivers/net/ethernet/microchip/vcap/Makefile
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_ag_api.h
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api.c
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api.h
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api_client.h
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.h
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api_debugfs_kunit.c
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_api_private.h
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_model_kunit.c
create mode 100644 drivers/net/ethernet/microchip/vcap/vcap_model_kunit.h
create mode 100644 drivers/net/ethernet/netronome/nfp/crypto/ipsec.c
create mode 100644 drivers/net/ethernet/netronome/nfp/nfd3/ipsec.c
create mode 100644 drivers/net/ethernet/renesas/rcar_gen4_ptp.c
create mode 100644 drivers/net/ethernet/renesas/rcar_gen4_ptp.h
create mode 100644 drivers/net/ethernet/renesas/rswitch.c
create mode 100644 drivers/net/ethernet/renesas/rswitch.h
create mode 100644 drivers/net/ethernet/sfc/mae_counter_format.h
create mode 100644 drivers/net/ethernet/sfc/tc_counters.c
create mode 100644 drivers/net/ethernet/sfc/tc_counters.h
delete mode 100644 drivers/net/ethernet/smsc/smc911x.c
delete mode 100644 drivers/net/ethernet/smsc/smc911x.h
create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.c
create mode 100644 drivers/net/ethernet/wangxun/libwx/Makefile
create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_hw.c
create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_hw.h
create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_type.h
create mode 100644 drivers/net/ethernet/wangxun/ngbe/ngbe_hw.c
create mode 100644 drivers/net/ethernet/wangxun/ngbe/ngbe_hw.h
create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe_hw.c
create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe_hw.h
create mode 100644 drivers/net/ipa/data/ipa_data-v4.7.c
create mode 100644 drivers/net/ipa/reg/ipa_reg-v4.7.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/Makefile
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/module.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/vops.h
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/Makefile
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/module.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/vops.h
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.h
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/Makefile
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/module.c
create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/vops.h
create mode 100644 drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/coredump.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/coredump.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/Kconfig
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/Makefile
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/dma.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/eeprom.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/eeprom.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/init.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/mac.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/mac.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/main.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/mcu.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/mmio.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/pci.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7996/regs.h
create mode 100644 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188f.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723du.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8821cu.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822bu.c
create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822cu.c
create mode 100644 drivers/net/wireless/realtek/rtw88/usb.c
create mode 100644 drivers/net/wireless/realtek/rtw88/usb.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b_rfk_table.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b_rfk_table.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b_table.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852b_table.h
create mode 100644 drivers/net/wireless/realtek/rtw89/wow.c
create mode 100644 drivers/net/wireless/realtek/rtw89/wow.h
delete mode 100644 drivers/net/wireless/ti/wilink_platform_data.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_port_trace.c
rename drivers/of/unittest-data/{overlay.dts => overlay.dtso} (100%)
rename drivers/of/unittest-data/{overlay_0.dts => overlay_0.dtso} (100%)
rename drivers/of/unittest-data/{overlay_1.dts => overlay_1.dtso} (100%)
rename drivers/of/unittest-data/{overlay_10.dts => overlay_10.dtso} (100%)
rename drivers/of/unittest-data/{overlay_11.dts => overlay_11.dtso} (100%)
rename drivers/of/unittest-data/{overlay_12.dts => overlay_12.dtso} (100%)
rename drivers/of/unittest-data/{overlay_13.dts => overlay_13.dtso} (100%)
rename drivers/of/unittest-data/{overlay_15.dts => overlay_15.dtso} (100%)
rename drivers/of/unittest-data/{overlay_16.dts => overlay_16.dtso} (100%)
rename drivers/of/unittest-data/{overlay_17.dts => overlay_17.dtso} (100%)
rename drivers/of/unittest-data/{overlay_18.dts => overlay_18.dtso} (100%)
rename drivers/of/unittest-data/{overlay_19.dts => overlay_19.dtso} (100%)
rename drivers/of/unittest-data/{overlay_2.dts => overlay_2.dtso} (100%)
rename drivers/of/unittest-data/{overlay_20.dts => overlay_20.dtso} (100%)
rename drivers/of/unittest-data/{overlay_3.dts => overlay_3.dtso} (100%)
rename drivers/of/unittest-data/{overlay_4.dts => overlay_4.dtso} (100%)
rename drivers/of/unittest-data/{overlay_5.dts => overlay_5.dtso} (100%)
rename drivers/of/unittest-data/{overlay_6.dts => overlay_6.dtso} (100%)
rename drivers/of/unittest-data/{overlay_7.dts => overlay_7.dtso} (100%)
rename drivers/of/unittest-data/{overlay_8.dts => overlay_8.dtso} (100%)
rename drivers/of/unittest-data/{overlay_9.dts => overlay_9.dtso} (100%)
rename drivers/of/unittest-data/{overlay_bad_add_dup_node.dts => overlay_bad_add_dup_node.dtso} (100%)
rename drivers/of/unittest-data/{overlay_bad_add_dup_prop.dts => overlay_bad_add_dup_prop.dtso} (100%)
rename drivers/of/unittest-data/{overlay_bad_phandle.dts => overlay_bad_phandle.dtso} (100%)
rename drivers/of/unittest-data/{overlay_bad_symbol.dts => overlay_bad_symbol.dtso} (100%)
rename drivers/of/unittest-data/{overlay_base.dts => overlay_base.dtso} (100%)
rename drivers/of/unittest-data/{overlay_gpio_01.dts => overlay_gpio_01.dtso} (100%)
rename drivers/of/unittest-data/{overlay_gpio_02a.dts => overlay_gpio_02a.dtso} (100%)
rename drivers/of/unittest-data/{overlay_gpio_02b.dts => overlay_gpio_02b.dtso} (100%)
rename drivers/of/unittest-data/{overlay_gpio_03.dts => overlay_gpio_03.dtso} (100%)
rename drivers/of/unittest-data/{overlay_gpio_04a.dts => overlay_gpio_04a.dtso} (100%)
rename drivers/of/unittest-data/{overlay_gpio_04b.dts => overlay_gpio_04b.dtso} (100%)
rename drivers/of/unittest-data/{testcases.dts => testcases.dtso} (100%)
create mode 100644 drivers/pci/controller/dwc/pcie-bt1.c
create mode 100644 drivers/pci/msi/api.c
rename drivers/pci/pcie/{portdrv_core.c => portdrv.c} (68%)
delete mode 100644 drivers/pci/pcie/portdrv_pci.c
create mode 100644 drivers/perf/amlogic/Kconfig
create mode 100644 drivers/perf/amlogic/Makefile
create mode 100644 drivers/perf/amlogic/meson_ddr_pmu_core.c
create mode 100644 drivers/perf/amlogic/meson_g12_ddr_pmu.c
create mode 100644 drivers/perf/arm_cspmu/Kconfig
create mode 100644 drivers/perf/arm_cspmu/Makefile
create mode 100644 drivers/perf/arm_cspmu/arm_cspmu.c
create mode 100644 drivers/perf/arm_cspmu/arm_cspmu.h
create mode 100644 drivers/perf/arm_cspmu/nvidia_cspmu.c
create mode 100644 drivers/perf/arm_cspmu/nvidia_cspmu.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v5_20.h
create mode 100644 drivers/phy/renesas/r8a779f0-ether-serdes.c
create mode 100644 drivers/pinctrl/intel/pinctrl-moorefield.c
create mode 100644 drivers/pinctrl/pinctrl-loongson2.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-sdm670.c
create mode 100644 drivers/platform/chrome/cros_hps_i2c.c
create mode 100644 drivers/platform/x86/dell/dell-wmi-ddv.c
create mode 100644 drivers/platform/x86/hp/Kconfig
create mode 100644 drivers/platform/x86/hp/Makefile
rename drivers/platform/x86/{ => hp}/hp-wmi.c (100%)
rename drivers/platform/x86/{ => hp}/hp_accel.c (99%)
rename drivers/platform/x86/{ => hp}/tc1100-wmi.c (100%)
create mode 100644 drivers/platform/x86/intel/pmc/adl.c
create mode 100644 drivers/platform/x86/intel/pmc/cnp.c
create mode 100644 drivers/platform/x86/intel/pmc/icl.c
create mode 100644 drivers/platform/x86/intel/pmc/mtl.c
create mode 100644 drivers/platform/x86/intel/pmc/spt.c
create mode 100644 drivers/platform/x86/intel/pmc/tgl.c
create mode 100644 drivers/powercap/arm_scmi_powercap.c
create mode 100644 drivers/regulator/mt6357-regulator.c
create mode 100644 drivers/regulator/rt6190-regulator.c
create mode 100644 drivers/remoteproc/xlnx_r5_remoteproc.c
delete mode 100644 drivers/rtc/rtc-davinci.c
delete mode 100644 drivers/rtc/rtc-dm355evm.c
create mode 100644 drivers/scsi/sd_trace.h
create mode 100644 drivers/soc/loongson/Kconfig
create mode 100644 drivers/soc/loongson/Makefile
create mode 100644 drivers/soc/loongson/loongson2_guts.c
create mode 100644 drivers/soundwire/intel_auxdevice.c
create mode 100644 drivers/soundwire/intel_auxdevice.h
create mode 100644 drivers/spi/spi-pci1xxxx.c
create mode 100644 drivers/spi/spi-sn-f-ospi.c
create mode 100644 drivers/spi/spi-wpcm-fiu.c
create mode 100644 drivers/staging/media/deprecated/atmel/Kconfig
create mode 100644 drivers/staging/media/deprecated/atmel/Makefile
create mode 100644 drivers/staging/media/deprecated/atmel/TODO
rename drivers/{media/platform => staging/media/deprecated}/atmel/atmel-isc-base.c (99%)
rename drivers/{media/platform => staging/media/deprecated}/atmel/atmel-isc-clk.c (97%)
rename drivers/{media/platform => staging/media/deprecated}/atmel/atmel-isc-regs.h (100%)
rename drivers/{media/platform => staging/media/deprecated}/atmel/atmel-isc.h (96%)
rename drivers/{media/platform => staging/media/deprecated}/atmel/atmel-sama5d2-isc.c (97%)
rename drivers/{media/platform => staging/media/deprecated}/atmel/atmel-sama7g5-isc.c (97%)
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/Kconfig
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/Makefile
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/TODO.txt
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.h
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_capture.c
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_capture.h
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_params.c
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_params.h
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_proc.c
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_proc.h
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_reg.h
create mode 100644 drivers/staging/media/sunxi/sun6i-isp/uapi/sun6i-isp-config.h
rename drivers/staging/pi433/Documentation/devicetree/{pi433-overlay.dts => pi433-overlay.dtso} (100%)
delete mode 100644 drivers/staging/r8188eu/include/odm_types.h
create mode 100644 drivers/staging/rtl8192u/TODO
create mode 100644 drivers/staging/wlan-ng/TODO
create mode 100644 drivers/usb/fotg210/Kconfig
create mode 100644 drivers/usb/fotg210/Makefile
create mode 100644 drivers/usb/fotg210/fotg210-core.c
rename drivers/usb/{host => fotg210}/fotg210-hcd.c (99%)
rename drivers/usb/{host/fotg210.h => fotg210/fotg210-hcd.h} (100%)
rename drivers/usb/{gadget/udc => fotg210}/fotg210-udc.c (89%)
rename drivers/usb/{gadget/udc/fotg210.h => fotg210/fotg210-udc.h} (99%)
create mode 100644 drivers/usb/fotg210/fotg210.h
delete mode 100644 drivers/usb/misc/sisusbvga/sisusb_con.c
delete mode 100644 drivers/usb/misc/sisusbvga/sisusb_init.c
delete mode 100644 drivers/usb/misc/sisusbvga/sisusb_init.h
rename drivers/usb/misc/sisusbvga/{sisusb.c => sisusbvga.c} (91%)
delete mode 100644 drivers/usb/musb/am35x.c
delete mode 100644 drivers/usb/musb/cppi_dma.c
delete mode 100644 drivers/usb/musb/davinci.c
delete mode 100644 drivers/usb/musb/davinci.h
delete mode 100644 drivers/usb/phy/phy-jz4770.c
create mode 100644 drivers/vfio/group.c
create mode 100644 drivers/vfio/iommufd.c
delete mode 100644 drivers/vfio/vfio_spapr_eeh.c
create mode 100644 drivers/virt/coco/tdx-guest/Kconfig
create mode 100644 drivers/virt/coco/tdx-guest/Makefile
create mode 100644 drivers/virt/coco/tdx-guest/tdx-guest.c
create mode 100644 drivers/watchdog/advantech_ec_wdt.c
rename fs/btrfs/{struct-funcs.c => accessors.c} (95%)
create mode 100644 fs/btrfs/accessors.h
create mode 100644 fs/btrfs/acl.h
create mode 100644 fs/btrfs/bio.c
create mode 100644 fs/btrfs/bio.h
create mode 100644 fs/btrfs/defrag.c
create mode 100644 fs/btrfs/defrag.h
create mode 100644 fs/btrfs/dir-item.h
create mode 100644 fs/btrfs/extent-tree.h
create mode 100644 fs/btrfs/file-item.h
create mode 100644 fs/btrfs/file.h
create mode 100644 fs/btrfs/fs.c
create mode 100644 fs/btrfs/fs.h
create mode 100644 fs/btrfs/ioctl.h
create mode 100644 fs/btrfs/messages.c
create mode 100644 fs/btrfs/messages.h
create mode 100644 fs/btrfs/orphan.h
create mode 100644 fs/btrfs/relocation.h
create mode 100644 fs/btrfs/root-tree.h
create mode 100644 fs/btrfs/scrub.h
create mode 100644 fs/btrfs/super.h
delete mode 100644 fs/btrfs/tree-defrag.c
create mode 100644 fs/btrfs/uuid-tree.h
create mode 100644 fs/btrfs/verity.h
create mode 100644 fs/cifs/dfs.c
create mode 100644 fs/cifs/dfs.h
create mode 100644 fs/pstore/ram_internal.h
create mode 100644 include/drm/drm_accel.h
create mode 100644 include/dt-bindings/arm/qcom,ids.h
create mode 100644 include/dt-bindings/clock/ingenic,jz4755-cgu.h
create mode 100644 include/dt-bindings/clock/qcom,dispcc-sc8280xp.h
create mode 100644 include/dt-bindings/clock/qcom,sm6375-dispcc.h
create mode 100644 include/dt-bindings/clock/qcom,sm8550-gcc.h
create mode 100644 include/dt-bindings/clock/rockchip,rk3588-cru.h
create mode 100644 include/dt-bindings/mailbox/mediatek,mt8188-gce.h
create mode 100644 include/dt-bindings/media/video-interfaces.h
create mode 100644 include/dt-bindings/memory/mediatek,mt8365-larb-port.h
create mode 100644 include/dt-bindings/phy/phy-qcom-qmp.h
create mode 100644 include/dt-bindings/reset/mt8188-resets.h
create mode 100644 include/dt-bindings/reset/rockchip,rk3588-cru.h
create mode 100644 include/kunit/visibility.h
create mode 100644 include/linux/acpi_apmt.h
create mode 100644 include/linux/cgroup_refcnt.h
create mode 100644 include/linux/cxl_err.h
create mode 100644 include/linux/gpio/property.h
delete mode 100644 include/linux/htcpld.h
create mode 100644 include/linux/iommufd.h
create mode 100644 include/linux/irqdomain_defs.h
delete mode 100644 include/linux/mfd/dm355evm_msp.h
create mode 100644 include/linux/mfd/tps65219.h
create mode 100644 include/linux/msi_api.h
delete mode 100644 include/linux/pktcdvd.h
delete mode 100644 include/linux/platform_data/st33zp24.h
create mode 100644 include/linux/platform_data/x86/pwm-lpss.h
create mode 100644 include/linux/regulator/mt6357-regulator.h
delete mode 100644 include/linux/smc911x.h
delete mode 100644 include/linux/wl12xx.h
delete mode 100644 include/media/i2c/ov9650.h
delete mode 100644 include/media/i2c/s5k4ecgx.h
rename {drivers/net/ethernet/microsoft => include/net}/mana/gdma.h (80%)
rename {drivers/net/ethernet/microsoft => include/net}/mana/hw_channel.h (100%)
rename {drivers/net/ethernet/microsoft => include/net}/mana/mana.h (94%)
create mode 100644 include/net/mana/mana_auxiliary.h
rename {drivers/net/ethernet/microsoft => include/net}/mana/shm_channel.h (100%)
create mode 100644 include/net/tc_wrapper.h
create mode 100644 include/soc/amlogic/meson_ddr_pmu.h
rename include/sound/{acp62_chip_offset_byte.h => acp63_chip_offset_byte.h} (65%)
create mode 100644 include/sound/sdw.h
delete mode 100644 include/sound/tlv320aic3x.h
create mode 100644 include/trace/events/cxl.h
create mode 100644 include/trace/events/vmalloc.h
rename include/trace/{events => misc}/fs.h (100%)
rename include/trace/{events => misc}/nfs.h (96%)
rename include/trace/{events => misc}/rdma.h (100%)
rename include/trace/{events/sunrpc_base.h => misc/sunrpc.h} (100%)
create mode 100644 include/uapi/drm/ivpu_accel.h
create mode 100644 include/uapi/linux/aspeed-video.h
create mode 100644 include/uapi/linux/iommufd.h
create mode 100644 include/uapi/linux/ipmi_ssif_bmc.h
delete mode 100644 include/uapi/linux/pktcdvd.h
create mode 100644 include/uapi/linux/tdx-guest.h
create mode 100644 include/uapi/rdma/mana-abi.h
delete mode 100644 include/video/omap-panel-data.h
create mode 100644 kernel/bpf/bpf_cgrp_storage.c
create mode 100644 kernel/kallsyms_selftest.c
create mode 100644 kernel/kallsyms_selftest.h
create mode 100644 lib/crypto/aesgcm.c
rename {crypto => lib/crypto}/gf128mul.c (87%)
rename lib/{test_siphash.c => siphash_kunit.c} (60%)
create mode 100644 lib/strscpy_kunit.c
delete mode 100644 lib/test_strscpy.c
create mode 100644 lib/zstd/common/portability_macros.h
create mode 100644 lib/zstd/compress/clevels.h
create mode 100644 lib/zstd/zstd_common_module.c
create mode 100644 mm/damon/modules-common.c
create mode 100644 mm/damon/sysfs-common.c
create mode 100644 mm/damon/sysfs-common.h
create mode 100644 mm/damon/sysfs-schemes.c
create mode 100644 net/dsa/devlink.c
create mode 100644 net/dsa/devlink.h
create mode 100644 net/dsa/dsa.h
delete mode 100644 net/dsa/dsa2.c
delete mode 100644 net/dsa/dsa_priv.h
create mode 100644 net/dsa/master.h
create mode 100644 net/dsa/netlink.h
create mode 100644 net/dsa/port.h
create mode 100644 net/dsa/slave.h
create mode 100644 net/dsa/switch.h
create mode 100644 net/dsa/tag.c
create mode 100644 net/dsa/tag.h
create mode 100644 net/dsa/tag_8021q.h
create mode 100644 net/dsa/tag_none.c
create mode 100644 net/ethtool/rss.c
create mode 100644 net/ipv4/tcp_plb.c
create mode 100644 net/mptcp/fastopen.c
create mode 100644 net/netfilter/nf_nat_ovs.c
create mode 100644 net/netfilter/nft_inner.c
create mode 100644 net/rxrpc/io_thread.c
create mode 100644 net/rxrpc/rxperf.c
create mode 100644 net/rxrpc/txbuf.c
create mode 100644 net/xfrm/xfrm_interface_bpf.c
rename net/xfrm/{xfrm_interface.c => xfrm_interface_core.c} (98%)
create mode 100644 rust/build_error.rs
create mode 100644 rust/kernel/build_assert.rs
create mode 100644 rust/kernel/static_assert.rs
create mode 100644 rust/kernel/std_vendor.rs
create mode 100644 rust/kernel/types.rs
create mode 100644 rust/macros/concat_idents.rs
create mode 100644 rust/macros/vtable.rs
create mode 100644 samples/rust/rust_print.rs
create mode 100644 security/apparmor/include/policy_compat.h
create mode 100644 security/apparmor/policy_compat.c
create mode 100644 sound/firewire/dice/dice-focusrite.c
rename sound/soc/amd/ps/{acp62.h => acp63.h} (79%)
create mode 100644 sound/soc/codecs/rt1318-sdw.c
create mode 100644 sound/soc/codecs/rt1318-sdw.h
create mode 100644 sound/soc/intel/avs/boards/max98927.c
create mode 100644 sound/soc/intel/avs/boards/probe.c
create mode 100644 sound/soc/intel/avs/debugfs.c
create mode 100644 sound/soc/intel/avs/probes.c
create mode 100644 sound/soc/intel/boards/sof_sdw_amp_coeff_tables.h
delete mode 100644 sound/soc/intel/boards/sof_sdw_rt1308.c
delete mode 100644 sound/soc/intel/boards/sof_sdw_rt1316.c
create mode 100644 sound/soc/intel/boards/sof_sdw_rt_amp.c
delete mode 100644 sound/soc/jz4740/jz4740-i2s.h
create mode 100644 sound/soc/sof/intel/hda-mlink.c
create mode 100644 sound/soc/sof/sof-client-probes-ipc3.c
create mode 100644 sound/soc/sof/sof-client-probes-ipc4.c
create mode 100644 tools/include/linux/bitfield.h
create mode 100644 tools/include/linux/interval_tree_generic.h
create mode 100644 tools/lib/symbol/Build
create mode 100644 tools/lib/symbol/Makefile
delete mode 100644 tools/lib/traceevent/.gitignore
delete mode 100644 tools/lib/traceevent/Build
delete mode 100644 tools/lib/traceevent/Documentation/Makefile
delete mode 100644 tools/lib/traceevent/Documentation/asciidoc.conf
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-commands.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-cpus.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-endian_read.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-event_find.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-event_get.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-event_list.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-event_print.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-field_find.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-field_get_val.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-field_print.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-field_read.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-fields.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-file_endian.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-filter.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-func_apis.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-func_find.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-handle.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-header_page.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-host_endian.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-long_size.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-page_size.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-parse_event.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-parse_head.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-plugins.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-record_parse.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-reg_event_handler.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-reg_print_func.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-set_flag.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-strerror.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent-tseq.txt
delete mode 100644 tools/lib/traceevent/Documentation/libtraceevent.txt
delete mode 100644 tools/lib/traceevent/Documentation/manpage-1.72.xsl
delete mode 100644 tools/lib/traceevent/Documentation/manpage-base.xsl
delete mode 100644 tools/lib/traceevent/Documentation/manpage-bold-literal.xsl
delete mode 100644 tools/lib/traceevent/Documentation/manpage-normal.xsl
delete mode 100644 tools/lib/traceevent/Documentation/manpage-suppress-sp.xsl
delete mode 100644 tools/lib/traceevent/Makefile
delete mode 100644 tools/lib/traceevent/event-parse-api.c
delete mode 100644 tools/lib/traceevent/event-parse-local.h
delete mode 100644 tools/lib/traceevent/event-parse.c
delete mode 100644 tools/lib/traceevent/event-parse.h
delete mode 100644 tools/lib/traceevent/event-plugin.c
delete mode 100644 tools/lib/traceevent/event-utils.h
delete mode 100644 tools/lib/traceevent/kbuffer-parse.c
delete mode 100644 tools/lib/traceevent/kbuffer.h
delete mode 100644 tools/lib/traceevent/libtraceevent.pc.template
delete mode 100644 tools/lib/traceevent/parse-filter.c
delete mode 100644 tools/lib/traceevent/parse-utils.c
delete mode 100644 tools/lib/traceevent/plugins/Build
delete mode 100644 tools/lib/traceevent/plugins/Makefile
delete mode 100644 tools/lib/traceevent/plugins/plugin_cfg80211.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_function.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_futex.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_hrtimer.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_jbd2.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_kmem.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_kvm.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_mac80211.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_sched_switch.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_scsi.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_tlb.c
delete mode 100644 tools/lib/traceevent/plugins/plugin_xen.c
delete mode 100644 tools/lib/traceevent/tep_strerror.c
delete mode 100644 tools/lib/traceevent/trace-seq.c
delete mode 100644 tools/lib/traceevent/trace-seq.h
create mode 100644 tools/objtool/arch/powerpc/Build
create mode 100644 tools/objtool/arch/powerpc/decode.c
create mode 100644 tools/objtool/arch/powerpc/include/arch/cfi_regs.h
create mode 100644 tools/objtool/arch/powerpc/include/arch/elf.h
create mode 100644 tools/objtool/arch/powerpc/include/arch/special.h
create mode 100644 tools/objtool/arch/powerpc/special.c
delete mode 100644 tools/objtool/arch/x86/include/arch/endianness.h
create mode 100644 tools/perf/arch/riscv/util/header.c
rename tools/perf/arch/x86/tests/{intel-pt-pkt-decoder-test.c => intel-pt-test.c} (80%)
delete mode 100644 tools/perf/examples/bpf/augmented_syscalls.c
delete mode 100644 tools/perf/examples/bpf/etcsnoop.c
delete mode 100644 tools/perf/include/bpf/bpf.h
delete mode 100644 tools/perf/include/bpf/linux/socket.h
delete mode 100644 tools/perf/include/bpf/pid_filter.h
delete mode 100644 tools/perf/include/bpf/stdio.h
delete mode 100644 tools/perf/include/bpf/unistd.h
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/branch.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/bus.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/cache.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/exception.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/instruction.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/memory.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/pipeline.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/spe.json (100%)
rename tools/perf/pmu-events/arch/arm64/arm/{neoverse-n2 => neoverse-n2-v2}/trace.json (100%)
create mode 100644 tools/perf/pmu-events/arch/riscv/mapfile.csv
create mode 100644 tools/perf/pmu-events/arch/riscv/riscv-sbi-firmware.json
create mode 100644 tools/perf/pmu-events/arch/riscv/sifive/u74/firmware.json
create mode 100644 tools/perf/pmu-events/arch/riscv/sifive/u74/instructions.json
create mode 100644 tools/perf/pmu-events/arch/riscv/sifive/u74/memory.json
create mode 100644 tools/perf/pmu-events/arch/riscv/sifive/u74/microarch.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/adln-metrics.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/floating-point.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/frontend.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/other.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/uncore-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlaken/virtual-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/branch.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/core.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/data-fabric.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/floating-point.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/other.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/x86/amdzen4/recommended.json
create mode 100644 tools/perf/pmu-events/metric.py
create mode 100644 tools/perf/pmu-events/metric_test.py
create mode 100755 tools/perf/scripts/python/bin/task-analyzer-record
create mode 100755 tools/perf/scripts/python/bin/task-analyzer-report
create mode 100755 tools/perf/scripts/python/task-analyzer.py
delete mode 100644 tools/perf/tests/attr/test-record-group
create mode 100644 tools/perf/tests/attr/test-record-user-regs-no-sve-aarch64
create mode 100644 tools/perf/tests/attr/test-record-user-regs-old-sve-aarch64
create mode 100644 tools/perf/tests/attr/test-record-user-regs-sve-aarch64
delete mode 100644 tools/perf/tests/attr/test-stat-group
create mode 100644 tools/perf/tests/event_groups.c
create mode 100755 tools/perf/tests/shell/test_task_analyzer.sh
create mode 100644 tools/perf/tests/workloads/Build
create mode 100644 tools/perf/tests/workloads/brstack.c
create mode 100644 tools/perf/tests/workloads/datasym.c
create mode 100644 tools/perf/tests/workloads/leafloop.c
create mode 100644 tools/perf/tests/workloads/noploop.c
create mode 100644 tools/perf/tests/workloads/sqrtloop.c
create mode 100644 tools/perf/tests/workloads/thloop.c
create mode 100644 tools/perf/trace/beauty/timespec.c
create mode 100644 tools/perf/util/bpf_skel/lock_data.h
create mode 100644 tools/perf/util/cs-etm-base.c
create mode 100644 tools/perf/util/pmus.c
create mode 100644 tools/perf/util/pmus.h
create mode 100644 tools/perf/util/sample.h
create mode 100644 tools/power/cpupower/lib/powercap.c
create mode 100644 tools/power/cpupower/lib/powercap.h
create mode 100644 tools/power/cpupower/man/cpupower-powercap-info.1
create mode 100644 tools/power/cpupower/po/ka.po
create mode 100644 tools/power/cpupower/utils/idle_monitor/rapl_monitor.c
create mode 100644 tools/power/cpupower/utils/powercap-info.c
create mode 100644 tools/testing/kunit/test_data/test_parse_ktap_output.log
create mode 100644 tools/testing/kunit/test_data/test_parse_subtest_header.log
create mode 100644 tools/testing/memblock/tests/alloc_exact_nid_api.c
create mode 100644 tools/testing/memblock/tests/alloc_exact_nid_api.h
delete mode 100644 tools/testing/nvdimm/dimm_devs.c
create mode 100644 tools/testing/selftests/alsa/alsa-local.h
create mode 100644 tools/testing/selftests/alsa/conf.c
create mode 100644 tools/testing/selftests/alsa/conf.d/Lenovo_ThinkPad_P1_Gen2.conf
create mode 100644 tools/testing/selftests/alsa/pcm-test.c
delete mode 100755 tools/testing/selftests/amd-pstate/amd-pstate-ut.sh
create mode 100755 tools/testing/selftests/amd-pstate/basic.sh
create mode 100755 tools/testing/selftests/amd-pstate/gitsource.sh
create mode 100755 tools/testing/selftests/amd-pstate/run.sh
create mode 100755 tools/testing/selftests/amd-pstate/tbench.sh
create mode 100644 tools/testing/selftests/bpf/DENYLIST.aarch64
create mode 100644 tools/testing/selftests/bpf/bpf_experimental.h
create mode 100644 tools/testing/selftests/bpf/config.aarch64
create mode 100644 tools/testing/selftests/bpf/prog_tests/cgrp_kfunc.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/cgrp_local_storage.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/empty_skb.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/kprobe_multi_testmod_test.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/libbpf_get_fd_by_id_opts.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/linked_list.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/rcu_read_lock.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/spin_lock.c
delete mode 100644 tools/testing/selftests/bpf/prog_tests/spinlock.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/task_kfunc.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/type_cast.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/xfrm_info.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_kfunc_common.h
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_kfunc_failure.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_kfunc_success.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_ls_attach_cgroup.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_ls_negative.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_ls_recursion.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_ls_sleepable.c
create mode 100644 tools/testing/selftests/bpf/progs/cgrp_ls_tp_btf.c
create mode 100644 tools/testing/selftests/bpf/progs/empty_skb.c
create mode 100644 tools/testing/selftests/bpf/progs/freplace_progmap.c
create mode 100644 tools/testing/selftests/bpf/progs/linked_list.c
create mode 100644 tools/testing/selftests/bpf/progs/linked_list.h
create mode 100644 tools/testing/selftests/bpf/progs/linked_list_fail.c
create mode 100644 tools/testing/selftests/bpf/progs/rcu_read_lock.c
create mode 100644 tools/testing/selftests/bpf/progs/task_kfunc_common.h
create mode 100644 tools/testing/selftests/bpf/progs/task_kfunc_failure.c
create mode 100644 tools/testing/selftests/bpf/progs/task_kfunc_success.c
create mode 100644 tools/testing/selftests/bpf/progs/task_storage_nodeadlock.c
create mode 100644 tools/testing/selftests/bpf/progs/test_libbpf_get_fd_by_id_opts.c
create mode 100644 tools/testing/selftests/bpf/progs/test_ringbuf_map_key.c
create mode 100644 tools/testing/selftests/bpf/progs/test_spin_lock_fail.c
create mode 100644 tools/testing/selftests/bpf/progs/type_cast.c
create mode 100644 tools/testing/selftests/bpf/progs/xfrm_info.c
create mode 100644 tools/testing/selftests/bpf/test_loader.c
create mode 100644 tools/testing/selftests/bpf/verifier/jeq_infer_not_null.c
create mode 100644 tools/testing/selftests/damon/debugfs_rm_non_contexts.sh
create mode 100644 tools/testing/selftests/damon/lru_sort.sh
create mode 100644 tools/testing/selftests/damon/reclaim.sh
create mode 100644 tools/testing/selftests/damon/sysfs_update_removed_scheme_dir.sh
create mode 100755 tools/testing/selftests/drivers/net/bonding/mode-1-recovery-updelay.sh
create mode 100755 tools/testing/selftests/drivers/net/bonding/mode-2-recovery-updelay.sh
create mode 100755 tools/testing/selftests/drivers/net/bonding/option_prio.sh
rename tools/testing/selftests/drivers/net/mlxsw/{spectrum-2 => }/devlink_trap_tunnel_ipip6.sh (99%)
create mode 100644 tools/testing/selftests/iommu/.gitignore
create mode 100644 tools/testing/selftests/iommu/Makefile
create mode 100644 tools/testing/selftests/iommu/config
create mode 100644 tools/testing/selftests/iommu/iommufd.c
create mode 100644 tools/testing/selftests/iommu/iommufd_fail_nth.c
create mode 100644 tools/testing/selftests/iommu/iommufd_utils.h
create mode 100644 tools/testing/selftests/kvm/aarch64/page_fault_test.c
create mode 100644 tools/testing/selftests/kvm/include/memstress.h
delete mode 100644 tools/testing/selftests/kvm/include/perf_test_util.h
create mode 100644 tools/testing/selftests/kvm/include/userfaultfd_util.h
rename tools/testing/selftests/kvm/lib/{perf_test_util.c => memstress.c} (62%)
create mode 100644 tools/testing/selftests/kvm/lib/ucall_common.c
create mode 100644 tools/testing/selftests/kvm/lib/userfaultfd_util.c
create mode 100644 tools/testing/selftests/kvm/lib/x86_64/hyperv.c
rename tools/testing/selftests/kvm/lib/x86_64/{perf_test_util.c => memstress.c} (68%)
delete mode 100644 tools/testing/selftests/kvm/x86_64/emulator_error_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/exit_on_emulation_failure_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/flds_emulation.h
rename tools/testing/selftests/kvm/x86_64/{evmcs_test.c => hyperv_evmcs.c} (66%)
create mode 100644 tools/testing/selftests/kvm/x86_64/hyperv_ipi.c
create mode 100644 tools/testing/selftests/kvm/x86_64/hyperv_tlb_flush.c
create mode 100644 tools/testing/selftests/kvm/x86_64/smaller_maxphyaddr_emulation_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/svm_nested_shutdown_test.c
create mode 100644 tools/testing/selftests/net/af_unix/diag_uid.c
create mode 100644 tools/testing/selftests/net/csum.c
create mode 100755 tools/testing/selftests/net/forwarding/bridge_mdb_host.sh
create mode 100644 tools/testing/selftests/net/hsr/Makefile
create mode 100644 tools/testing/selftests/net/hsr/config
create mode 100755 tools/testing/selftests/net/hsr/hsr_ping.sh
create mode 100644 tools/testing/selftests/net/sctp_hello.c
create mode 100755 tools/testing/selftests/net/sctp_vrf.sh
create mode 100644 tools/testing/selftests/net/so_incoming_cpu.c
create mode 100644 tools/testing/selftests/tdx/Makefile
create mode 100644 tools/testing/selftests/tdx/config
create mode 100644 tools/testing/selftests/tdx/tdx_guest_test.c
create mode 100644 tools/testing/selftests/timens/vfork_exec.c
create mode 100755 tools/testing/selftests/tpm2/test_async.sh
create mode 100644 tools/testing/selftests/vm/check_config.sh
create mode 100644 tools/testing/selftests/vm/cow.c
create mode 100644 tools/testing/selftests/vm/ksm_functional_tests.c
create mode 100644 tools/verification/rv/Makefile
create mode 100644 tools/verification/rv/README.txt
create mode 100644 tools/verification/rv/include/in_kernel.h
create mode 100644 tools/verification/rv/include/rv.h
create mode 100644 tools/verification/rv/include/trace.h
create mode 100644 tools/verification/rv/include/utils.h
create mode 100644 tools/verification/rv/src/in_kernel.c
create mode 100644 tools/verification/rv/src/rv.c
create mode 100644 tools/verification/rv/src/trace.c
create mode 100644 tools/verification/rv/src/utils.c
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer
^ permalink raw reply [relevance 1%]
* [PATCH v6 14/34] netfs: Add a function to extract an iterator into a scatterlist
@ 2023-01-16 23:09 4% ` David Howells
0 siblings, 0 replies; 200+ results
From: David Howells @ 2023-01-16 23:09 UTC (permalink / raw)
To: Al Viro
Cc: Jeff Layton, Steve French, Shyam Prasad N, Rohith Surabattula,
linux-cachefs, linux-cifs, linux-fsdevel, dhowells,
Christoph Hellwig, Matthew Wilcox, Jens Axboe, Jan Kara,
Jeff Layton, Logan Gunthorpe, linux-fsdevel, linux-block,
linux-kernel
Provide a function for filling in a scatterlist from the list of pages
contained in an iterator. The function is passed FOLL_SOURCE_BUF or
FOLL_DEST_BUF to indicate how the extracted pages are to be used.
If the iterator is UBUF- or IOBUF-type, the pages have a ref (FOLL_SOURCE_BUF)
or a pin (FOLL_DEST_BUF) taken on them.
If the iterator is BVEC-, KVEC- or XARRAY-type, no ref is taken on the
pages and it is left to the caller to manage their lifetime. It cannot be
assumed that a ref can be validly taken, particularly in the case of a KVEC
iterator.
Changes:
========
ver #6)
- Pass in a gup_flags argument to allow FOLL_SOURCE_BUF and FOLL_DEST_BUF
and other FOLL_* flags to be passed in.
- Don't pass back the cleanup mode - iov_iter_extract_mode() can be used
to determine that.
ver #3)
- Switch to using EXPORT_SYMBOL_GPL to prevent indirect 3rd-party access
to get/pin_user_pages_fast()[1].
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <sfrench@samba.org>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: linux-cachefs@redhat.com
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
Link: https://lore.kernel.org/r/Y3zFzdWnWlEJ8X8/@infradead.org/ [1]
Link: https://lore.kernel.org/r/166697255985.61150.16489950598033809487.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166732027275.3186319.5186488812166611598.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166869691313.3723671.10714823767342163891.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166920905749.1461876.12079195122363691498.stgit@warthog.procyon.org.uk/ # v2
Link: https://lore.kernel.org/r/166997423514.9475.11145024341505464337.stgit@warthog.procyon.org.uk/ # v3
Link: https://lore.kernel.org/r/167305165398.1521586.12353215176136705725.stgit@warthog.procyon.org.uk/ # v4
Link: https://lore.kernel.org/r/167344730041.2425628.14391053364759792950.stgit@warthog.procyon.org.uk/ # v5
---
fs/netfs/iterator.c | 269 +++++++++++++++++++++++++++++++++++++++++++++++++
include/linux/netfs.h | 4 +
mm/vmalloc.c | 1
3 files changed, 274 insertions(+)
diff --git a/fs/netfs/iterator.c b/fs/netfs/iterator.c
index f7f26de1a247..1d20ad2123b5 100644
--- a/fs/netfs/iterator.c
+++ b/fs/netfs/iterator.c
@@ -7,7 +7,9 @@
#include <linux/export.h>
#include <linux/slab.h>
+#include <linux/mm.h>
#include <linux/uio.h>
+#include <linux/scatterlist.h>
#include <linux/netfs.h>
#include "internal.h"
@@ -100,3 +102,270 @@ ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
return npages;
}
EXPORT_SYMBOL_GPL(netfs_extract_user_iter);
+
+/*
+ * Extract as list of up to sg_max pages from UBUF- or IOVEC-class iterators,
+ * pin or get refs on them appropriate and add them to the scatterlist.
+ */
+static ssize_t netfs_extract_user_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int gup_flags)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct page **pages;
+ unsigned int npages;
+ ssize_t ret = 0, res;
+ size_t len, off;
+
+ /* We decant the page list into the tail of the scatterlist */
+ pages = (void *)sgtable->sgl + array_size(sg_max, sizeof(struct scatterlist));
+ pages -= sg_max;
+
+ do {
+ res = iov_iter_extract_pages(iter, &pages, maxsize, sg_max,
+ gup_flags, &off);
+ if (res < 0)
+ goto failed;
+
+ len = res;
+ maxsize -= len;
+ ret += len;
+ npages = DIV_ROUND_UP(off + len, PAGE_SIZE);
+ sg_max -= npages;
+
+ for (; npages < 0; npages--) {
+ struct page *page = *pages;
+ size_t seg = min_t(size_t, PAGE_SIZE - off, len);
+
+ *pages++ = NULL;
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ len -= seg;
+ off = 0;
+ }
+ } while (maxsize > 0 && sg_max > 0);
+
+ return ret;
+
+failed:
+ while (sgtable->nents > sgtable->orig_nents)
+ put_page(sg_page(&sgtable->sgl[--sgtable->nents]));
+ return res;
+}
+
+/*
+ * Extract up to sg_max pages from a BVEC-type iterator and add them to the
+ * scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_bvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int gup_flags)
+{
+ const struct bio_vec *bv = iter->bvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ size_t off, len;
+
+ len = bv[i].bv_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ len = min_t(size_t, maxsize, len - start);
+ off = bv[i].bv_offset + start;
+
+ sg_set_page(sg, bv[i].bv_page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ ret += len;
+ maxsize -= len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max pages from a KVEC-type iterator and add them to the
+ * scatterlist. This can deal with vmalloc'd buffers as well as kmalloc'd or
+ * static buffers. The pages are not pinned.
+ */
+static ssize_t netfs_extract_kvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int gup_flags)
+{
+ const struct kvec *kv = iter->kvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ struct page *page;
+ unsigned long kaddr;
+ size_t off, len, seg;
+
+ len = kv[i].iov_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ kaddr = (unsigned long)kv[i].iov_base + start;
+ off = kaddr & ~PAGE_MASK;
+ len = min_t(size_t, maxsize, len - start);
+ kaddr &= PAGE_MASK;
+
+ maxsize -= len;
+ ret += len;
+ do {
+ seg = min_t(size_t, len, PAGE_SIZE - off);
+ if (is_vmalloc_or_module_addr((void *)kaddr))
+ page = vmalloc_to_page((void *)kaddr);
+ else
+ page = virt_to_page(kaddr);
+
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ len -= seg;
+ kaddr += PAGE_SIZE;
+ off = 0;
+ } while (len > 0 && sg_max > 0);
+
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max folios from an XARRAY-type iterator and add them to
+ * the scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_xarray_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int gup_flags)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct xarray *xa = iter->xarray;
+ struct folio *folio;
+ loff_t start = iter->xarray_start + iter->iov_offset;
+ pgoff_t index = start / PAGE_SIZE;
+ ssize_t ret = 0;
+ size_t offset, len;
+ XA_STATE(xas, xa, index);
+
+ rcu_read_lock();
+
+ xas_for_each(&xas, folio, ULONG_MAX) {
+ if (xas_retry(&xas, folio))
+ continue;
+ if (WARN_ON(xa_is_value(folio)))
+ break;
+ if (WARN_ON(folio_test_hugetlb(folio)))
+ break;
+
+ offset = offset_in_folio(folio, start);
+ len = min_t(size_t, maxsize, folio_size(folio) - offset);
+
+ sg_set_page(sg, folio_page(folio, 0), len, offset);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ maxsize -= len;
+ ret += len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ }
+
+ rcu_read_unlock();
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/**
+ * netfs_extract_iter_to_sg - Extract pages from an iterator and add ot an sglist
+ * @iter: The iterator to extract from
+ * @maxsize: The amount of iterator to copy
+ * @sgtable: The scatterlist table to fill in
+ * @sg_max: Maximum number of elements in @sgtable that may be filled
+ * @gup_flags: Direction indicator and additional flags
+ *
+ * Extract the page fragments from the given amount of the source iterator and
+ * add them to a scatterlist that refers to all of those bits, to a maximum
+ * addition of @sg_max elements.
+ *
+ * The pages referred to by UBUF- and IOVEC-type iterators are extracted and
+ * pinned; BVEC-, KVEC- and XARRAY-type are extracted but aren't pinned; PIPE-
+ * and DISCARD-type are not supported.
+ *
+ * No end mark is placed on the scatterlist; that's left to the caller.
+ *
+ * @gup_flags should indicate FOLL_SOURCE_BUF or FOLL_DEST_BUF plus any
+ * additional flags needed.
+ *
+ * If successul, @sgtable->nents is updated to include the number of elements
+ * added and the number of bytes added is returned. @sgtable->orig_nents is
+ * left unaltered.
+ *
+ * The iov_iter_extract_mode() function should be used to query how cleanup
+ * should be performed.
+ */
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t maxsize,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int gup_flags)
+{
+ if (maxsize == 0)
+ return 0;
+
+ switch (iov_iter_type(iter)) {
+ case ITER_UBUF:
+ case ITER_IOVEC:
+ return netfs_extract_user_to_sg(iter, maxsize, sgtable, sg_max,
+ gup_flags);
+ case ITER_BVEC:
+ return netfs_extract_bvec_to_sg(iter, maxsize, sgtable, sg_max,
+ gup_flags);
+ case ITER_KVEC:
+ return netfs_extract_kvec_to_sg(iter, maxsize, sgtable, sg_max,
+ gup_flags);
+ case ITER_XARRAY:
+ return netfs_extract_xarray_to_sg(iter, maxsize, sgtable, sg_max,
+ gup_flags);
+ default:
+ pr_err("netfs_extract_iter_to_sg(%u) unsupported\n",
+ iov_iter_type(iter));
+ WARN_ON_ONCE(1);
+ return -EIO;
+ }
+}
+EXPORT_SYMBOL_GPL(netfs_extract_iter_to_sg);
diff --git a/include/linux/netfs.h b/include/linux/netfs.h
index a45757dd382d..2493df855f05 100644
--- a/include/linux/netfs.h
+++ b/include/linux/netfs.h
@@ -298,6 +298,10 @@ void netfs_put_subrequest(struct netfs_io_subrequest *subreq,
void netfs_stats_show(struct seq_file *);
ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
struct iov_iter *new, unsigned int gup_flags);
+struct sg_table;
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t len,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int gup_flags);
/**
* netfs_inode - Get the netfs inode context from the inode
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ca71de7c9d77..61f5bec0f2b6 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -656,6 +656,7 @@ int is_vmalloc_or_module_addr(const void *x)
#endif
return is_vmalloc_addr(x);
}
+EXPORT_SYMBOL_GPL(is_vmalloc_or_module_addr);
/*
* Walk a vmap address to the struct page it maps. Huge vmap mappings will
^ permalink raw reply related [relevance 4%]
* Re: [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime
2022-12-16 6:21 6% [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
2022-12-16 6:21 12% ` [PATCH v11 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
2022-12-19 21:48 0% ` [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime Conor Dooley
@ 2023-01-14 4:54 0% ` Qinglin Pan
2023-02-01 11:58 0% ` Qinglin Pan
2023-02-15 0:02 0% ` Palmer Dabbelt
4 siblings, 0 replies; 200+ results
From: Qinglin Pan @ 2023-01-14 4:54 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones
Hi Palmer,
a friendly ping?
Thanks,
Qinglin
On 2022/12/16 14:21, panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
>
> This patchset adds a Kconfig item for using Svnapot in
> "Platform type"->"SVNAPOT extension support". Its default value is on,
> and people can set it off if they don't allow kernel to detect Svnapot
> hardware support and leverage it.
>
> Tested on:
> - qemu rv64 with "Svnapot support" off and svnapot=true.
> - qemu rv64 with "Svnapot support" on and svnapot=true.
> - qemu rv64 with "Svnapot support" off and svnapot=false.
> - qemu rv64 with "Svnapot support" on and svnapot=false.
>
>
> Changes in v2:
> - detect Svnapot hardware support at boot time.
> Changes in v3:
> - do linear mapping again if has_svnapot
> Changes in v4:
> - fix some errors/warns reported by checkpatch.pl, thanks @Conor
> Changes in v5:
> - modify code according to @Conor and @Heiko
> Changes in v6:
> - use static key insead of alternative errata
> Changes in v7:
> - add napot_cont_order for possible more napot order in the future
> - remove linear mapping related code from this patchset to another patch
> - refactor hugetlb code for svnapot according to thanks @Andrew @Conor
> - use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
> - support svnapot in huge vmap on newer for-next branch
> Changes in v8:
> - fix compilation errors in rv32_defconfig
> - insert some lines of whitespace according to @Conor's suggestion
> Changes in v9:
> - use alternative to avoid using static branches inside heavily used
> inline functions
> - change napot_cont_mask definition
> - post test_vmalloc modification about testing vmalloc_huge
> Changes in v10:
> - fix some nits caught by @Andrew
> - collect Reviewed-by/Acked-by
> - add memory leak warning in KConfig text
> - replace test_vmalloc patch link with the standard one
> Changes in v11:
> - add more detailed warning about HUGETLBFS and SVNAPOT in KConfig text
> - fix missing reverse-xmas tree
>
>
> Qinglin Pan (3):
> riscv: mm: modify pte format for Svnapot
> riscv: mm: support Svnapot in hugetlb page
> riscv: mm: support Svnapot in huge vmap
>
> arch/riscv/Kconfig | 21 +-
> arch/riscv/include/asm/errata_list.h | 15 +-
> arch/riscv/include/asm/hugetlb.h | 34 ++-
> arch/riscv/include/asm/hwcap.h | 2 +-
> arch/riscv/include/asm/page.h | 5 -
> arch/riscv/include/asm/pgtable-64.h | 34 +++
> arch/riscv/include/asm/pgtable.h | 43 +++-
> arch/riscv/include/asm/vmalloc.h | 61 +++++-
> arch/riscv/kernel/cpu.c | 1 +
> arch/riscv/kernel/cpufeature.c | 15 ++
> arch/riscv/mm/hugetlbpage.c | 301 +++++++++++++++++++++++++++
> 11 files changed, 519 insertions(+), 13 deletions(-)
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* [PATCH v5 6/9] netfs: Add a function to extract an iterator into a scatterlist
@ 2023-01-11 14:28 4% ` David Howells
0 siblings, 0 replies; 200+ results
From: David Howells @ 2023-01-11 14:28 UTC (permalink / raw)
To: Al Viro
Cc: Jeff Layton, Steve French, Shyam Prasad N, Rohith Surabattula,
linux-cachefs, linux-cifs, linux-fsdevel, dhowells,
Christoph Hellwig, Matthew Wilcox, Jens Axboe, Jan Kara,
Jeff Layton, Logan Gunthorpe, linux-fsdevel, linux-block,
linux-kernel
Provide a function for filling in a scatterlist from the list of pages
contained in an iterator.
If the iterator is UBUF- or IOBUF-type, the pages have a ref (ITER_SOURCE,
ie. WRITE) or a pin (ITER_DEST, ie. READ) taken on them.
If the iterator is BVEC-, KVEC- or XARRAY-type, no ref is taken on the
pages and it is left to the caller to manage their lifetime. It cannot be
assumed that a ref can be validly taken, particularly in the case of a KVEC
iterator.
Changes:
========
ver #3)
- Switch to using EXPORT_SYMBOL_GPL to prevent indirect 3rd-party access
to get/pin_user_pages_fast()[1].
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <sfrench@samba.org>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: linux-cachefs@redhat.com
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
Link: https://lore.kernel.org/r/Y3zFzdWnWlEJ8X8/@infradead.org/ [1]
Link: https://lore.kernel.org/r/166697255985.61150.16489950598033809487.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166732027275.3186319.5186488812166611598.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166869691313.3723671.10714823767342163891.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166920905749.1461876.12079195122363691498.stgit@warthog.procyon.org.uk/ # v2
Link: https://lore.kernel.org/r/166997423514.9475.11145024341505464337.stgit@warthog.procyon.org.uk/ # v3
Link: https://lore.kernel.org/r/167305165398.1521586.12353215176136705725.stgit@warthog.procyon.org.uk/ # v4
---
fs/netfs/iterator.c | 268 +++++++++++++++++++++++++++++++++++++++++++++++++
include/linux/netfs.h | 4 +
mm/vmalloc.c | 1
3 files changed, 273 insertions(+)
diff --git a/fs/netfs/iterator.c b/fs/netfs/iterator.c
index 7d802d21b9c5..82c46e3caf1d 100644
--- a/fs/netfs/iterator.c
+++ b/fs/netfs/iterator.c
@@ -7,7 +7,9 @@
#include <linux/export.h>
#include <linux/slab.h>
+#include <linux/mm.h>
#include <linux/uio.h>
+#include <linux/scatterlist.h>
#include <linux/netfs.h>
#include "internal.h"
@@ -97,3 +99,269 @@ ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
return npages;
}
EXPORT_SYMBOL_GPL(netfs_extract_user_iter);
+
+/*
+ * Extract as list of up to sg_max pages from UBUF- or IOVEC-class iterators,
+ * pin or get refs on them appropriate and add them to the scatterlist.
+ */
+static ssize_t netfs_extract_user_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct page **pages;
+ unsigned int npages;
+ ssize_t ret = 0, res;
+ size_t len, off;
+
+ *cleanup_mode = 0;
+
+ /* We decant the page list into the tail of the scatterlist */
+ pages = (void *)sgtable->sgl + array_size(sg_max, sizeof(struct scatterlist));
+ pages -= sg_max;
+
+ do {
+ res = iov_iter_extract_pages(iter, &pages, maxsize, sg_max, 0,
+ &off, cleanup_mode);
+ if (res < 0)
+ goto failed;
+
+ len = res;
+ maxsize -= len;
+ ret += len;
+ npages = DIV_ROUND_UP(off + len, PAGE_SIZE);
+ sg_max -= npages;
+
+ for (; npages < 0; npages--) {
+ struct page *page = *pages;
+ size_t seg = min_t(size_t, PAGE_SIZE - off, len);
+
+ *pages++ = NULL;
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ len -= seg;
+ off = 0;
+ }
+ } while (maxsize > 0 && sg_max > 0);
+
+ return ret;
+
+failed:
+ while (sgtable->nents > sgtable->orig_nents)
+ put_page(sg_page(&sgtable->sgl[--sgtable->nents]));
+ return res;
+}
+
+/*
+ * Extract up to sg_max pages from a BVEC-type iterator and add them to the
+ * scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_bvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ const struct bio_vec *bv = iter->bvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ size_t off, len;
+
+ len = bv[i].bv_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ len = min_t(size_t, maxsize, len - start);
+ off = bv[i].bv_offset + start;
+
+ sg_set_page(sg, bv[i].bv_page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ ret += len;
+ maxsize -= len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ *cleanup_mode = 0;
+ return ret;
+}
+
+/*
+ * Extract up to sg_max pages from a KVEC-type iterator and add them to the
+ * scatterlist. This can deal with vmalloc'd buffers as well as kmalloc'd or
+ * static buffers. The pages are not pinned.
+ */
+static ssize_t netfs_extract_kvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ const struct kvec *kv = iter->kvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ struct page *page;
+ unsigned long kaddr;
+ size_t off, len, seg;
+
+ len = kv[i].iov_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ kaddr = (unsigned long)kv[i].iov_base + start;
+ off = kaddr & ~PAGE_MASK;
+ len = min_t(size_t, maxsize, len - start);
+ kaddr &= PAGE_MASK;
+
+ maxsize -= len;
+ ret += len;
+ do {
+ seg = min_t(size_t, len, PAGE_SIZE - off);
+ if (is_vmalloc_or_module_addr((void *)kaddr))
+ page = vmalloc_to_page((void *)kaddr);
+ else
+ page = virt_to_page(kaddr);
+
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ len -= seg;
+ kaddr += PAGE_SIZE;
+ off = 0;
+ } while (len > 0 && sg_max > 0);
+
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ *cleanup_mode = 0;
+ return ret;
+}
+
+/*
+ * Extract up to sg_max folios from an XARRAY-type iterator and add them to
+ * the scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_xarray_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct xarray *xa = iter->xarray;
+ struct folio *folio;
+ loff_t start = iter->xarray_start + iter->iov_offset;
+ pgoff_t index = start / PAGE_SIZE;
+ ssize_t ret = 0;
+ size_t offset, len;
+ XA_STATE(xas, xa, index);
+
+ rcu_read_lock();
+
+ xas_for_each(&xas, folio, ULONG_MAX) {
+ if (xas_retry(&xas, folio))
+ continue;
+ if (WARN_ON(xa_is_value(folio)))
+ break;
+ if (WARN_ON(folio_test_hugetlb(folio)))
+ break;
+
+ offset = offset_in_folio(folio, start);
+ len = min_t(size_t, maxsize, folio_size(folio) - offset);
+
+ sg_set_page(sg, folio_page(folio, 0), len, offset);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ maxsize -= len;
+ ret += len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ }
+
+ rcu_read_unlock();
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ *cleanup_mode = 0;
+ return ret;
+}
+
+/**
+ * netfs_extract_iter_to_sg - Extract pages from an iterator and add ot an sglist
+ * @iter: The iterator to extract from
+ * @maxsize: The amount of iterator to copy
+ * @sgtable: The scatterlist table to fill in
+ * @sg_max: Maximum number of elements in @sgtable that may be filled
+ * @cleanup_mode: Where to return the cleanup mode
+ *
+ * Extract the page fragments from the given amount of the source iterator and
+ * add them to a scatterlist that refers to all of those bits, to a maximum
+ * addition of @sg_max elements.
+ *
+ * The pages referred to by UBUF- and IOVEC-type iterators are extracted and
+ * pinned; BVEC-, KVEC- and XARRAY-type are extracted but aren't pinned; PIPE-
+ * and DISCARD-type are not supported.
+ *
+ * No end mark is placed on the scatterlist; that's left to the caller.
+ *
+ * If successul, @sgtable->nents is updated to include the number of elements
+ * added and the number of bytes added is returned. @sgtable->orig_nents is
+ * left unaltered.
+ */
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t maxsize,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ if (maxsize == 0)
+ return 0;
+
+ switch (iov_iter_type(iter)) {
+ case ITER_UBUF:
+ case ITER_IOVEC:
+ return netfs_extract_user_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ case ITER_BVEC:
+ return netfs_extract_bvec_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ case ITER_KVEC:
+ return netfs_extract_kvec_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ case ITER_XARRAY:
+ return netfs_extract_xarray_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ default:
+ pr_err("netfs_extract_iter_to_sg(%u) unsupported\n",
+ iov_iter_type(iter));
+ WARN_ON_ONCE(1);
+ return -EIO;
+ }
+}
+EXPORT_SYMBOL_GPL(netfs_extract_iter_to_sg);
diff --git a/include/linux/netfs.h b/include/linux/netfs.h
index 26fe3e6bafa1..059e49233e29 100644
--- a/include/linux/netfs.h
+++ b/include/linux/netfs.h
@@ -299,6 +299,10 @@ void netfs_stats_show(struct seq_file *);
ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
struct iov_iter *new,
unsigned int *cleanup_mode);
+struct sg_table;
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t len,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int *cleanup_mode);
/**
* netfs_inode - Get the netfs inode context from the inode
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ca71de7c9d77..61f5bec0f2b6 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -656,6 +656,7 @@ int is_vmalloc_or_module_addr(const void *x)
#endif
return is_vmalloc_addr(x);
}
+EXPORT_SYMBOL_GPL(is_vmalloc_or_module_addr);
/*
* Walk a vmap address to the struct page it maps. Huge vmap mappings will
^ permalink raw reply related [relevance 4%]
* [PATCH v4 6/7] netfs: Add a function to extract an iterator into a scatterlist
@ 2023-01-07 0:34 4% ` David Howells
0 siblings, 0 replies; 200+ results
From: David Howells @ 2023-01-07 0:34 UTC (permalink / raw)
To: Al Viro
Cc: Jeff Layton, Steve French, Shyam Prasad N, Rohith Surabattula,
linux-cachefs, linux-cifs, linux-fsdevel, dhowells,
Christoph Hellwig, Matthew Wilcox, Jens Axboe, Jeff Layton,
Logan Gunthorpe, linux-fsdevel, linux-block, linux-kernel
Provide a function for filling in a scatterlist from the list of pages
contained in an iterator.
If the iterator is UBUF- or IOBUF-type, the pages have a ref (ITER_SOURCE,
ie. WRITE) or a pin (ITER_DEST, ie. READ) taken on them.
If the iterator is BVEC-, KVEC- or XARRAY-type, no ref is taken on the
pages and it is left to the caller to manage their lifetime. It cannot be
assumed that a ref can be validly taken, particularly in the case of a KVEC
iterator.
Changes:
========
ver #3)
- Switch to using EXPORT_SYMBOL_GPL to prevent indirect 3rd-party access
to get/pin_user_pages_fast()[1].
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <sfrench@samba.org>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: linux-cachefs@redhat.com
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
Link: https://lore.kernel.org/r/Y3zFzdWnWlEJ8X8/@infradead.org/ [1]
Link: https://lore.kernel.org/r/166697255985.61150.16489950598033809487.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166732027275.3186319.5186488812166611598.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166869691313.3723671.10714823767342163891.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166920905749.1461876.12079195122363691498.stgit@warthog.procyon.org.uk/ # v2
Link: https://lore.kernel.org/r/166997423514.9475.11145024341505464337.stgit@warthog.procyon.org.uk/ # v3
---
fs/netfs/iterator.c | 268 +++++++++++++++++++++++++++++++++++++++++++++++++
include/linux/netfs.h | 4 +
mm/vmalloc.c | 1
3 files changed, 273 insertions(+)
diff --git a/fs/netfs/iterator.c b/fs/netfs/iterator.c
index 7d802d21b9c5..82c46e3caf1d 100644
--- a/fs/netfs/iterator.c
+++ b/fs/netfs/iterator.c
@@ -7,7 +7,9 @@
#include <linux/export.h>
#include <linux/slab.h>
+#include <linux/mm.h>
#include <linux/uio.h>
+#include <linux/scatterlist.h>
#include <linux/netfs.h>
#include "internal.h"
@@ -97,3 +99,269 @@ ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
return npages;
}
EXPORT_SYMBOL_GPL(netfs_extract_user_iter);
+
+/*
+ * Extract as list of up to sg_max pages from UBUF- or IOVEC-class iterators,
+ * pin or get refs on them appropriate and add them to the scatterlist.
+ */
+static ssize_t netfs_extract_user_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct page **pages;
+ unsigned int npages;
+ ssize_t ret = 0, res;
+ size_t len, off;
+
+ *cleanup_mode = 0;
+
+ /* We decant the page list into the tail of the scatterlist */
+ pages = (void *)sgtable->sgl + array_size(sg_max, sizeof(struct scatterlist));
+ pages -= sg_max;
+
+ do {
+ res = iov_iter_extract_pages(iter, &pages, maxsize, sg_max, 0,
+ &off, cleanup_mode);
+ if (res < 0)
+ goto failed;
+
+ len = res;
+ maxsize -= len;
+ ret += len;
+ npages = DIV_ROUND_UP(off + len, PAGE_SIZE);
+ sg_max -= npages;
+
+ for (; npages < 0; npages--) {
+ struct page *page = *pages;
+ size_t seg = min_t(size_t, PAGE_SIZE - off, len);
+
+ *pages++ = NULL;
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ len -= seg;
+ off = 0;
+ }
+ } while (maxsize > 0 && sg_max > 0);
+
+ return ret;
+
+failed:
+ while (sgtable->nents > sgtable->orig_nents)
+ put_page(sg_page(&sgtable->sgl[--sgtable->nents]));
+ return res;
+}
+
+/*
+ * Extract up to sg_max pages from a BVEC-type iterator and add them to the
+ * scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_bvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ const struct bio_vec *bv = iter->bvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ size_t off, len;
+
+ len = bv[i].bv_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ len = min_t(size_t, maxsize, len - start);
+ off = bv[i].bv_offset + start;
+
+ sg_set_page(sg, bv[i].bv_page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ ret += len;
+ maxsize -= len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ *cleanup_mode = 0;
+ return ret;
+}
+
+/*
+ * Extract up to sg_max pages from a KVEC-type iterator and add them to the
+ * scatterlist. This can deal with vmalloc'd buffers as well as kmalloc'd or
+ * static buffers. The pages are not pinned.
+ */
+static ssize_t netfs_extract_kvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ const struct kvec *kv = iter->kvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ struct page *page;
+ unsigned long kaddr;
+ size_t off, len, seg;
+
+ len = kv[i].iov_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ kaddr = (unsigned long)kv[i].iov_base + start;
+ off = kaddr & ~PAGE_MASK;
+ len = min_t(size_t, maxsize, len - start);
+ kaddr &= PAGE_MASK;
+
+ maxsize -= len;
+ ret += len;
+ do {
+ seg = min_t(size_t, len, PAGE_SIZE - off);
+ if (is_vmalloc_or_module_addr((void *)kaddr))
+ page = vmalloc_to_page((void *)kaddr);
+ else
+ page = virt_to_page(kaddr);
+
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ len -= seg;
+ kaddr += PAGE_SIZE;
+ off = 0;
+ } while (len > 0 && sg_max > 0);
+
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ *cleanup_mode = 0;
+ return ret;
+}
+
+/*
+ * Extract up to sg_max folios from an XARRAY-type iterator and add them to
+ * the scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_xarray_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct xarray *xa = iter->xarray;
+ struct folio *folio;
+ loff_t start = iter->xarray_start + iter->iov_offset;
+ pgoff_t index = start / PAGE_SIZE;
+ ssize_t ret = 0;
+ size_t offset, len;
+ XA_STATE(xas, xa, index);
+
+ rcu_read_lock();
+
+ xas_for_each(&xas, folio, ULONG_MAX) {
+ if (xas_retry(&xas, folio))
+ continue;
+ if (WARN_ON(xa_is_value(folio)))
+ break;
+ if (WARN_ON(folio_test_hugetlb(folio)))
+ break;
+
+ offset = offset_in_folio(folio, start);
+ len = min_t(size_t, maxsize, folio_size(folio) - offset);
+
+ sg_set_page(sg, folio_page(folio, 0), len, offset);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ maxsize -= len;
+ ret += len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ }
+
+ rcu_read_unlock();
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ *cleanup_mode = 0;
+ return ret;
+}
+
+/**
+ * netfs_extract_iter_to_sg - Extract pages from an iterator and add ot an sglist
+ * @iter: The iterator to extract from
+ * @maxsize: The amount of iterator to copy
+ * @sgtable: The scatterlist table to fill in
+ * @sg_max: Maximum number of elements in @sgtable that may be filled
+ * @cleanup_mode: Where to return the cleanup mode
+ *
+ * Extract the page fragments from the given amount of the source iterator and
+ * add them to a scatterlist that refers to all of those bits, to a maximum
+ * addition of @sg_max elements.
+ *
+ * The pages referred to by UBUF- and IOVEC-type iterators are extracted and
+ * pinned; BVEC-, KVEC- and XARRAY-type are extracted but aren't pinned; PIPE-
+ * and DISCARD-type are not supported.
+ *
+ * No end mark is placed on the scatterlist; that's left to the caller.
+ *
+ * If successul, @sgtable->nents is updated to include the number of elements
+ * added and the number of bytes added is returned. @sgtable->orig_nents is
+ * left unaltered.
+ */
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t maxsize,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ if (maxsize == 0)
+ return 0;
+
+ switch (iov_iter_type(iter)) {
+ case ITER_UBUF:
+ case ITER_IOVEC:
+ return netfs_extract_user_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ case ITER_BVEC:
+ return netfs_extract_bvec_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ case ITER_KVEC:
+ return netfs_extract_kvec_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ case ITER_XARRAY:
+ return netfs_extract_xarray_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ default:
+ pr_err("netfs_extract_iter_to_sg(%u) unsupported\n",
+ iov_iter_type(iter));
+ WARN_ON_ONCE(1);
+ return -EIO;
+ }
+}
+EXPORT_SYMBOL_GPL(netfs_extract_iter_to_sg);
diff --git a/include/linux/netfs.h b/include/linux/netfs.h
index 26fe3e6bafa1..059e49233e29 100644
--- a/include/linux/netfs.h
+++ b/include/linux/netfs.h
@@ -299,6 +299,10 @@ void netfs_stats_show(struct seq_file *);
ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
struct iov_iter *new,
unsigned int *cleanup_mode);
+struct sg_table;
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t len,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int *cleanup_mode);
/**
* netfs_inode - Get the netfs inode context from the inode
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ca71de7c9d77..61f5bec0f2b6 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -656,6 +656,7 @@ int is_vmalloc_or_module_addr(const void *x)
#endif
return is_vmalloc_addr(x);
}
+EXPORT_SYMBOL_GPL(is_vmalloc_or_module_addr);
/*
* Walk a vmap address to the struct page it maps. Huge vmap mappings will
^ permalink raw reply related [relevance 4%]
* Re: [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime
2022-12-16 6:21 6% [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
2022-12-16 6:21 12% ` [PATCH v11 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
@ 2022-12-19 21:48 0% ` Conor Dooley
2023-01-14 4:54 0% ` Qinglin Pan
` (2 subsequent siblings)
4 siblings, 0 replies; 200+ results
From: Conor Dooley @ 2022-12-19 21:48 UTC (permalink / raw)
To: panqinglin2020; +Cc: palmer, linux-riscv, jeff, xuyinan, ajones
[-- Attachment #1.1: Type: text/plain, Size: 3682 bytes --]
On Fri, Dec 16, 2022 at 02:21:06PM +0800, panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
>
> This patchset adds a Kconfig item for using Svnapot in
> "Platform type"->"SVNAPOT extension support". Its default value is on,
> and people can set it off if they don't allow kernel to detect Svnapot
> hardware support and leverage it.
>
> Tested on:
> - qemu rv64 with "Svnapot support" off and svnapot=true.
> - qemu rv64 with "Svnapot support" on and svnapot=true.
> - qemu rv64 with "Svnapot support" off and svnapot=false.
> - qemu rv64 with "Svnapot support" on and svnapot=false.
>
>
> Changes in v2:
> - detect Svnapot hardware support at boot time.
> Changes in v3:
> - do linear mapping again if has_svnapot
> Changes in v4:
> - fix some errors/warns reported by checkpatch.pl, thanks @Conor
> Changes in v5:
> - modify code according to @Conor and @Heiko
> Changes in v6:
> - use static key insead of alternative errata
> Changes in v7:
> - add napot_cont_order for possible more napot order in the future
> - remove linear mapping related code from this patchset to another patch
> - refactor hugetlb code for svnapot according to thanks @Andrew @Conor
> - use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
> - support svnapot in huge vmap on newer for-next branch
> Changes in v8:
> - fix compilation errors in rv32_defconfig
> - insert some lines of whitespace according to @Conor's suggestion
> Changes in v9:
> - use alternative to avoid using static branches inside heavily used
> inline functions
> - change napot_cont_mask definition
> - post test_vmalloc modification about testing vmalloc_huge
> Changes in v10:
> - fix some nits caught by @Andrew
> - collect Reviewed-by/Acked-by
> - add memory leak warning in KConfig text
I got slightly confused between version as I was travelling - I saw 2
v10s so hopefully I have not missed anything. While "leak" is probably
not the right word to use here, I think the warning is a reasonable
compromise.
Acked-by: Conor Dooley <conor.dooley@microchip.com>
I have one minor wording nit in patch 1/3, but don't bother resubmitting
unless someone else asks for meaningful changes.
Thanks,
Conor.
> - replace test_vmalloc patch link with the standard one
> Changes in v11:
> - add more detailed warning about HUGETLBFS and SVNAPOT in KConfig text
> - fix missing reverse-xmas tree
>
>
> Qinglin Pan (3):
> riscv: mm: modify pte format for Svnapot
> riscv: mm: support Svnapot in hugetlb page
> riscv: mm: support Svnapot in huge vmap
>
> arch/riscv/Kconfig | 21 +-
> arch/riscv/include/asm/errata_list.h | 15 +-
> arch/riscv/include/asm/hugetlb.h | 34 ++-
> arch/riscv/include/asm/hwcap.h | 2 +-
> arch/riscv/include/asm/page.h | 5 -
> arch/riscv/include/asm/pgtable-64.h | 34 +++
> arch/riscv/include/asm/pgtable.h | 43 +++-
> arch/riscv/include/asm/vmalloc.h | 61 +++++-
> arch/riscv/kernel/cpu.c | 1 +
> arch/riscv/kernel/cpufeature.c | 15 ++
> arch/riscv/mm/hugetlbpage.c | 301 +++++++++++++++++++++++++++
> 11 files changed, 519 insertions(+), 13 deletions(-)
>
> --
> 2.37.4
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
>
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 161 bytes --]
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* [PATCH v11 3/3] riscv: mm: support Svnapot in huge vmap
2022-12-16 6:21 6% [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
@ 2022-12-16 6:21 12% ` panqinglin2020
2022-12-19 21:48 0% ` [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime Conor Dooley
` (3 subsequent siblings)
4 siblings, 0 replies; 200+ results
From: panqinglin2020 @ 2022-12-16 6:21 UTC (permalink / raw)
To: palmer, linux-riscv
Cc: jeff, xuyinan, conor, ajones, Qinglin Pan, Conor Dooley
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
for Svnapot to support huge vmap about napot size.
It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
can be tested by test_vmalloc with [1] applied, and probe this
module to run fix_size_alloc_test with use_huge true.
[1]https://lore.kernel.org/all/20221212055657.698420-1-panqinglin2020@iscas.ac.cn/
Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 48da5371f1e9..58d3e447f191 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#endif
+#ifdef CONFIG_RISCV_ISA_SVNAPOT
+#include <linux/pgtable.h>
+#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
+static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
+ u64 pfn, unsigned int max_page_shift)
+{
+ unsigned long map_size = PAGE_SIZE;
+ unsigned long size, order;
+
+ if (!has_svnapot())
+ return map_size;
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_shift(order) > max_page_shift)
+ continue;
+
+ size = napot_cont_size(order);
+ if (end - addr < size)
+ continue;
+
+ if (!IS_ALIGNED(addr, size))
+ continue;
+
+ if (!IS_ALIGNED(PFN_PHYS(pfn), size))
+ continue;
+
+ map_size = size;
+ break;
+ }
+
+ return map_size;
+}
+
+#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
+static inline int arch_vmap_pte_supported_shift(unsigned long size)
+{
+ int shift = PAGE_SHIFT;
+ unsigned long order;
+
+ if (!has_svnapot())
+ return shift;
+
+ WARN_ON_ONCE(size >= PMD_SIZE);
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_size(order) > size)
+ continue;
+
+ if (!IS_ALIGNED(size, napot_cont_size(order)))
+ continue;
+
+ shift = napot_cont_shift(order);
+ break;
+ }
+
+ return shift;
+}
+
+#endif /* CONFIG_RISCV_ISA_SVNAPOT */
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.37.4
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 12%]
* [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime
@ 2022-12-16 6:21 6% panqinglin2020
2022-12-16 6:21 12% ` [PATCH v11 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
` (4 more replies)
0 siblings, 5 replies; 200+ results
From: panqinglin2020 @ 2022-12-16 6:21 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is on,
and people can set it off if they don't allow kernel to detect Svnapot
hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
- modify code according to @Conor and @Heiko
Changes in v6:
- use static key insead of alternative errata
Changes in v7:
- add napot_cont_order for possible more napot order in the future
- remove linear mapping related code from this patchset to another patch
- refactor hugetlb code for svnapot according to thanks @Andrew @Conor
- use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
- support svnapot in huge vmap on newer for-next branch
Changes in v8:
- fix compilation errors in rv32_defconfig
- insert some lines of whitespace according to @Conor's suggestion
Changes in v9:
- use alternative to avoid using static branches inside heavily used
inline functions
- change napot_cont_mask definition
- post test_vmalloc modification about testing vmalloc_huge
Changes in v10:
- fix some nits caught by @Andrew
- collect Reviewed-by/Acked-by
- add memory leak warning in KConfig text
- replace test_vmalloc patch link with the standard one
Changes in v11:
- add more detailed warning about HUGETLBFS and SVNAPOT in KConfig text
- fix missing reverse-xmas tree
Qinglin Pan (3):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 21 +-
arch/riscv/include/asm/errata_list.h | 15 +-
arch/riscv/include/asm/hugetlb.h | 34 ++-
arch/riscv/include/asm/hwcap.h | 2 +-
arch/riscv/include/asm/page.h | 5 -
arch/riscv/include/asm/pgtable-64.h | 34 +++
arch/riscv/include/asm/pgtable.h | 43 +++-
arch/riscv/include/asm/vmalloc.h | 61 +++++-
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 15 ++
arch/riscv/mm/hugetlbpage.c | 301 +++++++++++++++++++++++++++
11 files changed, 519 insertions(+), 13 deletions(-)
--
2.37.4
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* [GIT PULL] RISC-V Patches for the 6.2 Merge Window, Part 1
@ 2022-12-14 18:40 4% ` Palmer Dabbelt
0 siblings, 0 replies; 200+ results
From: Palmer Dabbelt @ 2022-12-14 18:40 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-riscv, linux-kernel
The following changes since commit 9abf2313adc1ca1b6180c508c25f22f9395cc780:
Linux 6.1-rc1 (2022-10-16 15:36:24 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-6.2-mw1
for you to fetch changes up to 6e66e96e31b81fb08075d18a3e2c201f1e2171da:
Merge patch series "Documentation: RISC-V: patch-acceptance changes" (2022-12-13 09:38:30 -0800)
----------------------------------------------------------------
RISC-V Patches for the 6.2 Merge Window, Part 1
* Support for the T-Head PMU via the perf subsystem.
* ftrace support for rv32.
* Support for non-volatile memory devices.
* Various fixes and cleanups.
----------------------------------------------------------------
I didn't have a part 2 planned, but I just stumbled into a build issue with
the Arm LPAE IOMMU being enabled on rv32, which is worked around via
https://lore.kernel.org/r/20221214180409.7354-1-palmer@rivosinc.com/ .
Anything would be a fix, though, as I'm essentially pretending we're in RCs
aside from what's here.
I've sent the diffstat against v6.1-rc1, as targeting a recent master produces
something huge (though still a reasonable shortlog). I'm not entirely sure
what's going on there: I have some old merge bases (due to old patch sets) so
hopefully that's the problem, but it's also my first time seriously using b4 so
sorry if I've screwed something up. The only intentionally suspect thing I've
done is include 5c20a3a9df19 ("RISC-V: Fix compilation without
RISCV_ISA_ZICBOM") as it fixes a build issue in the following patch set and
didn't land via the usual flow, but I think that's the cleanest way to do it as
the patch was already directly on top of rc1.
I'm seeing one merge conflict, here's my resolution if it helps any:
@@@ -161,7 -161,7 +163,8 @@@ CONFIG_VIRTIO_MMIO=
CONFIG_RPMSG_CHAR=y
CONFIG_RPMSG_CTRL=y
CONFIG_RPMSG_VIRTIO=y
+CONFIG_LIBNVDIMM=y
+ CONFIG_ARCH_R9A07G043=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
----------------------------------------------------------------
Alexandre Ghiti (1):
riscv: Fix P4D_SHIFT definition for 3-level page table mode
Andrew Bresticker (1):
RISC-V: Fix unannoted hardirqs-on in return to userspace slow-path
Andrew Jones (9):
RISC-V: Fix compilation without RISCV_ISA_ZICBOM
riscv: Don't duplicate __ALTERNATIVE_CFG in __ALTERNATIVE_CFG_2
riscv: alternatives: Don't name unused macro parameters
riscv: alternatives: Drop the underscores from the assembly macro names
riscv: Don't duplicate _ALTERNATIVE_CFG* macros
RISC-V: Improve use of isa2hwcap[]
RISC-V: Introduce riscv_isa_extension_check
RISC-V: Ensure Zicbom has a valid block size
riscv: Apply a static assert to riscv_isa_ext_id
Anup Patel (3):
RISC-V: Fix MEMREMAP_WB for systems with Svpbmt
RISC-V: Implement arch specific PMEM APIs
RISC-V: Enable PMEM drivers
Binglei Wang (1):
riscv: add riscv rethook implementation
Cleo John (1):
riscv: fix styling in ucontext header
Conor Dooley (4):
RISC-V: enable sparsemem by default for defconfig
irqchip/sifive-plic: remove user selectability of SIFIVE_PLIC
irqchip/riscv-intc: remove user selectability of RISCV_INTC
RISC-V: stop selecting SIFIVE_PLIC at the SoC level
Guo Ren (3):
riscv: stacktrace: Fixup ftrace_graph_ret_addr retp argument
riscv: stacktrace: Make walk_stackframe cross pt_regs frame
riscv: Fixup compile error with !MMU
Hal Feng (1):
RISC-V: defconfig: Enable CONFIG_SERIAL_8250_DW
Heiko Stuebner (2):
RISC-V: Cache SBI vendor values
drivers/perf: riscv_pmu_sbi: add support for PMU variant on T-Head C9xx cores
Heinrich Schuchardt (1):
riscv/vdso: typo therefor
Jamie Iles (4):
RISC-V: use REG_S/REG_L for mcount
RISC-V: reduce mcount save space on RV32
RISC-V: preserve a1 in mcount
RISC-V: enable dynamic ftrace for RV32I
Jinyu Tang (1):
riscv: support update_mmu_tlb()
Jisheng Zhang (3):
riscv: remove special treatment for the link order of head.o
riscv: fix race when vmap stack overflow
riscv: boot: add zstd support
Lad Prabhakar (1):
riscv: Kconfig: Enable cpufreq kconfig menu
Li Huafei (2):
RISC-V: kexec: Fix memory leak of fdt buffer
RISC-V: kexec: Fix memory leak of elf header buffer
Liu Shixin (2):
riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
Palmer Dabbelt (17):
riscv_pmu_sbi: add support for PMU variant on T-Head C9xx cores
Merge patch series "RISC-V: Dynamic ftrace support for RV32I"
Merge patch series "Support VMCOREINFO export for RISCV64"
Merge patch "RISC-V: Fix unannoted hardirqs-on in return to userspace slow-path"
Merge patch series "Add PMEM support for RISC-V"
Merge patch series "RISC-V interrupt controller select cleanup"
Merge patch series "riscv: Fix crash during early errata patching"
Merge patch series "RISC-V: Ensure Zicbom has a valid block size"
Merge patch series "riscv: alternative-macros.h cleanups"
RISC-V: Align the shadow stack
RISC-V: Add some comments about the shadow and overflow stacks
Merge patch series "RISC-V: Align the shadow stack"
Documentation: RISC-V: Fix a typo in patch-acceptance
Documentation: RISC-V: Allow patches for non-standard behavior
Documentation: RISC-V: Mention the UEFI Standards
Documentation: RISC-V: patch-acceptance: s/implementor/implementer
Merge patch series "Documentation: RISC-V: patch-acceptance changes"
Qinglin Pan (1):
riscv: mm: call best_map_size many times during linear-mapping
Samuel Holland (2):
riscv: Fix crash during early errata patching
riscv: Move cast inside kernel_mapping_[pv]a_to_[vp]a
Sergey Matyukevich (1):
riscv: mm: notify remote harts about mmu cache updates
Tong Tiangen (2):
riscv/mm: hugepage's PG_dcache_clean flag is only set in head page
riscv/mm: add arch hook arch_clear_hugepage_flags
Xianting Tian (2):
RISC-V: Add arch_crash_save_vmcoreinfo support
Documentation: kdump: describe VMCOREINFO export for RISCV64
Documentation/admin-guide/kdump/vmcoreinfo.rst | 29 +++++++
.../features/vm/huge-vmap/arch-support.txt | 2 +-
Documentation/riscv/patch-acceptance.rst | 22 +++--
arch/riscv/Kconfig | 19 +++--
arch/riscv/Kconfig.erratas | 13 +++
arch/riscv/Kconfig.socs | 5 --
arch/riscv/boot/Makefile | 3 +
arch/riscv/configs/defconfig | 3 +
arch/riscv/errata/thead/errata.c | 19 +++++
arch/riscv/include/asm/alternative-macros.h | 99 +++++++---------------
arch/riscv/include/asm/asm.h | 1 +
arch/riscv/include/asm/cacheflush.h | 15 ++--
arch/riscv/include/asm/errata_list.h | 16 +++-
arch/riscv/include/asm/hugetlb.h | 6 ++
arch/riscv/include/asm/hwcap.h | 3 +-
arch/riscv/include/asm/io.h | 5 ++
arch/riscv/include/asm/kexec.h | 5 ++
arch/riscv/include/asm/kprobes.h | 2 -
arch/riscv/include/asm/mmu.h | 2 +
arch/riscv/include/asm/page.h | 18 ++--
arch/riscv/include/asm/pgtable-64.h | 6 +-
arch/riscv/include/asm/pgtable.h | 5 +-
arch/riscv/include/asm/sbi.h | 5 ++
arch/riscv/include/asm/tlbflush.h | 18 ++++
arch/riscv/include/asm/vdso.h | 2 +-
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/include/uapi/asm/ucontext.h | 12 ++-
arch/riscv/kernel/Makefile | 1 +
arch/riscv/kernel/cpu.c | 30 ++++++-
arch/riscv/kernel/cpufeature.c | 43 +++++++---
arch/riscv/kernel/crash_core.c | 21 +++++
arch/riscv/kernel/elf_kexec.c | 14 +++
arch/riscv/kernel/entry.S | 34 +++++---
arch/riscv/kernel/mcount.S | 44 +++++-----
arch/riscv/kernel/probes/Makefile | 2 +-
arch/riscv/kernel/probes/kprobes.c | 13 ---
arch/riscv/kernel/probes/rethook.c | 27 ++++++
arch/riscv/kernel/probes/rethook.h | 8 ++
.../{kprobes_trampoline.S => rethook_trampoline.S} | 6 +-
arch/riscv/kernel/signal.c | 34 +++++---
arch/riscv/kernel/stacktrace.c | 11 ++-
arch/riscv/kernel/traps.c | 30 ++++++-
arch/riscv/mm/Makefile | 2 +
arch/riscv/mm/cacheflush.c | 45 ++++++++++
arch/riscv/mm/context.c | 10 +++
arch/riscv/mm/dma-noncoherent.c | 41 ---------
arch/riscv/mm/init.c | 25 +++---
arch/riscv/mm/pgtable.c | 83 ++++++++++++++++++
arch/riscv/mm/physaddr.c | 2 +-
arch/riscv/mm/pmem.c | 21 +++++
arch/riscv/mm/tlbflush.c | 28 +++---
drivers/irqchip/Kconfig | 21 +----
drivers/perf/riscv_pmu_sbi.c | 34 +++++---
scripts/head-object-list.txt | 1 -
54 files changed, 684 insertions(+), 300 deletions(-)
create mode 100644 arch/riscv/kernel/crash_core.c
create mode 100644 arch/riscv/kernel/probes/rethook.c
create mode 100644 arch/riscv/kernel/probes/rethook.h
rename arch/riscv/kernel/probes/{kprobes_trampoline.S => rethook_trampoline.S} (94%)
create mode 100644 arch/riscv/mm/pgtable.c
create mode 100644 arch/riscv/mm/pmem.c
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 4%]
* [GIT PULL] RISC-V Patches for the 6.2 Merge Window, Part 1
@ 2022-12-14 18:40 4% ` Palmer Dabbelt
0 siblings, 0 replies; 200+ results
From: Palmer Dabbelt @ 2022-12-14 18:40 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-riscv, linux-kernel
The following changes since commit 9abf2313adc1ca1b6180c508c25f22f9395cc780:
Linux 6.1-rc1 (2022-10-16 15:36:24 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-6.2-mw1
for you to fetch changes up to 6e66e96e31b81fb08075d18a3e2c201f1e2171da:
Merge patch series "Documentation: RISC-V: patch-acceptance changes" (2022-12-13 09:38:30 -0800)
----------------------------------------------------------------
RISC-V Patches for the 6.2 Merge Window, Part 1
* Support for the T-Head PMU via the perf subsystem.
* ftrace support for rv32.
* Support for non-volatile memory devices.
* Various fixes and cleanups.
----------------------------------------------------------------
I didn't have a part 2 planned, but I just stumbled into a build issue with
the Arm LPAE IOMMU being enabled on rv32, which is worked around via
https://lore.kernel.org/r/20221214180409.7354-1-palmer@rivosinc.com/ .
Anything would be a fix, though, as I'm essentially pretending we're in RCs
aside from what's here.
I've sent the diffstat against v6.1-rc1, as targeting a recent master produces
something huge (though still a reasonable shortlog). I'm not entirely sure
what's going on there: I have some old merge bases (due to old patch sets) so
hopefully that's the problem, but it's also my first time seriously using b4 so
sorry if I've screwed something up. The only intentionally suspect thing I've
done is include 5c20a3a9df19 ("RISC-V: Fix compilation without
RISCV_ISA_ZICBOM") as it fixes a build issue in the following patch set and
didn't land via the usual flow, but I think that's the cleanest way to do it as
the patch was already directly on top of rc1.
I'm seeing one merge conflict, here's my resolution if it helps any:
@@@ -161,7 -161,7 +163,8 @@@ CONFIG_VIRTIO_MMIO=
CONFIG_RPMSG_CHAR=y
CONFIG_RPMSG_CTRL=y
CONFIG_RPMSG_VIRTIO=y
+CONFIG_LIBNVDIMM=y
+ CONFIG_ARCH_R9A07G043=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
----------------------------------------------------------------
Alexandre Ghiti (1):
riscv: Fix P4D_SHIFT definition for 3-level page table mode
Andrew Bresticker (1):
RISC-V: Fix unannoted hardirqs-on in return to userspace slow-path
Andrew Jones (9):
RISC-V: Fix compilation without RISCV_ISA_ZICBOM
riscv: Don't duplicate __ALTERNATIVE_CFG in __ALTERNATIVE_CFG_2
riscv: alternatives: Don't name unused macro parameters
riscv: alternatives: Drop the underscores from the assembly macro names
riscv: Don't duplicate _ALTERNATIVE_CFG* macros
RISC-V: Improve use of isa2hwcap[]
RISC-V: Introduce riscv_isa_extension_check
RISC-V: Ensure Zicbom has a valid block size
riscv: Apply a static assert to riscv_isa_ext_id
Anup Patel (3):
RISC-V: Fix MEMREMAP_WB for systems with Svpbmt
RISC-V: Implement arch specific PMEM APIs
RISC-V: Enable PMEM drivers
Binglei Wang (1):
riscv: add riscv rethook implementation
Cleo John (1):
riscv: fix styling in ucontext header
Conor Dooley (4):
RISC-V: enable sparsemem by default for defconfig
irqchip/sifive-plic: remove user selectability of SIFIVE_PLIC
irqchip/riscv-intc: remove user selectability of RISCV_INTC
RISC-V: stop selecting SIFIVE_PLIC at the SoC level
Guo Ren (3):
riscv: stacktrace: Fixup ftrace_graph_ret_addr retp argument
riscv: stacktrace: Make walk_stackframe cross pt_regs frame
riscv: Fixup compile error with !MMU
Hal Feng (1):
RISC-V: defconfig: Enable CONFIG_SERIAL_8250_DW
Heiko Stuebner (2):
RISC-V: Cache SBI vendor values
drivers/perf: riscv_pmu_sbi: add support for PMU variant on T-Head C9xx cores
Heinrich Schuchardt (1):
riscv/vdso: typo therefor
Jamie Iles (4):
RISC-V: use REG_S/REG_L for mcount
RISC-V: reduce mcount save space on RV32
RISC-V: preserve a1 in mcount
RISC-V: enable dynamic ftrace for RV32I
Jinyu Tang (1):
riscv: support update_mmu_tlb()
Jisheng Zhang (3):
riscv: remove special treatment for the link order of head.o
riscv: fix race when vmap stack overflow
riscv: boot: add zstd support
Lad Prabhakar (1):
riscv: Kconfig: Enable cpufreq kconfig menu
Li Huafei (2):
RISC-V: kexec: Fix memory leak of fdt buffer
RISC-V: kexec: Fix memory leak of elf header buffer
Liu Shixin (2):
riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
Palmer Dabbelt (17):
riscv_pmu_sbi: add support for PMU variant on T-Head C9xx cores
Merge patch series "RISC-V: Dynamic ftrace support for RV32I"
Merge patch series "Support VMCOREINFO export for RISCV64"
Merge patch "RISC-V: Fix unannoted hardirqs-on in return to userspace slow-path"
Merge patch series "Add PMEM support for RISC-V"
Merge patch series "RISC-V interrupt controller select cleanup"
Merge patch series "riscv: Fix crash during early errata patching"
Merge patch series "RISC-V: Ensure Zicbom has a valid block size"
Merge patch series "riscv: alternative-macros.h cleanups"
RISC-V: Align the shadow stack
RISC-V: Add some comments about the shadow and overflow stacks
Merge patch series "RISC-V: Align the shadow stack"
Documentation: RISC-V: Fix a typo in patch-acceptance
Documentation: RISC-V: Allow patches for non-standard behavior
Documentation: RISC-V: Mention the UEFI Standards
Documentation: RISC-V: patch-acceptance: s/implementor/implementer
Merge patch series "Documentation: RISC-V: patch-acceptance changes"
Qinglin Pan (1):
riscv: mm: call best_map_size many times during linear-mapping
Samuel Holland (2):
riscv: Fix crash during early errata patching
riscv: Move cast inside kernel_mapping_[pv]a_to_[vp]a
Sergey Matyukevich (1):
riscv: mm: notify remote harts about mmu cache updates
Tong Tiangen (2):
riscv/mm: hugepage's PG_dcache_clean flag is only set in head page
riscv/mm: add arch hook arch_clear_hugepage_flags
Xianting Tian (2):
RISC-V: Add arch_crash_save_vmcoreinfo support
Documentation: kdump: describe VMCOREINFO export for RISCV64
Documentation/admin-guide/kdump/vmcoreinfo.rst | 29 +++++++
.../features/vm/huge-vmap/arch-support.txt | 2 +-
Documentation/riscv/patch-acceptance.rst | 22 +++--
arch/riscv/Kconfig | 19 +++--
arch/riscv/Kconfig.erratas | 13 +++
arch/riscv/Kconfig.socs | 5 --
arch/riscv/boot/Makefile | 3 +
arch/riscv/configs/defconfig | 3 +
arch/riscv/errata/thead/errata.c | 19 +++++
arch/riscv/include/asm/alternative-macros.h | 99 +++++++---------------
arch/riscv/include/asm/asm.h | 1 +
arch/riscv/include/asm/cacheflush.h | 15 ++--
arch/riscv/include/asm/errata_list.h | 16 +++-
arch/riscv/include/asm/hugetlb.h | 6 ++
arch/riscv/include/asm/hwcap.h | 3 +-
arch/riscv/include/asm/io.h | 5 ++
arch/riscv/include/asm/kexec.h | 5 ++
arch/riscv/include/asm/kprobes.h | 2 -
arch/riscv/include/asm/mmu.h | 2 +
arch/riscv/include/asm/page.h | 18 ++--
arch/riscv/include/asm/pgtable-64.h | 6 +-
arch/riscv/include/asm/pgtable.h | 5 +-
arch/riscv/include/asm/sbi.h | 5 ++
arch/riscv/include/asm/tlbflush.h | 18 ++++
arch/riscv/include/asm/vdso.h | 2 +-
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/include/uapi/asm/ucontext.h | 12 ++-
arch/riscv/kernel/Makefile | 1 +
arch/riscv/kernel/cpu.c | 30 ++++++-
arch/riscv/kernel/cpufeature.c | 43 +++++++---
arch/riscv/kernel/crash_core.c | 21 +++++
arch/riscv/kernel/elf_kexec.c | 14 +++
arch/riscv/kernel/entry.S | 34 +++++---
arch/riscv/kernel/mcount.S | 44 +++++-----
arch/riscv/kernel/probes/Makefile | 2 +-
arch/riscv/kernel/probes/kprobes.c | 13 ---
arch/riscv/kernel/probes/rethook.c | 27 ++++++
arch/riscv/kernel/probes/rethook.h | 8 ++
.../{kprobes_trampoline.S => rethook_trampoline.S} | 6 +-
arch/riscv/kernel/signal.c | 34 +++++---
arch/riscv/kernel/stacktrace.c | 11 ++-
arch/riscv/kernel/traps.c | 30 ++++++-
arch/riscv/mm/Makefile | 2 +
arch/riscv/mm/cacheflush.c | 45 ++++++++++
arch/riscv/mm/context.c | 10 +++
arch/riscv/mm/dma-noncoherent.c | 41 ---------
arch/riscv/mm/init.c | 25 +++---
arch/riscv/mm/pgtable.c | 83 ++++++++++++++++++
arch/riscv/mm/physaddr.c | 2 +-
arch/riscv/mm/pmem.c | 21 +++++
arch/riscv/mm/tlbflush.c | 28 +++---
drivers/irqchip/Kconfig | 21 +----
drivers/perf/riscv_pmu_sbi.c | 34 +++++---
scripts/head-object-list.txt | 1 -
54 files changed, 684 insertions(+), 300 deletions(-)
create mode 100644 arch/riscv/kernel/crash_core.c
create mode 100644 arch/riscv/kernel/probes/rethook.c
create mode 100644 arch/riscv/kernel/probes/rethook.h
rename arch/riscv/kernel/probes/{kprobes_trampoline.S => rethook_trampoline.S} (94%)
create mode 100644 arch/riscv/mm/pgtable.c
create mode 100644 arch/riscv/mm/pmem.c
^ permalink raw reply [relevance 4%]
* [GIT PULL] Documentation for 6.2
@ 2022-12-12 9:25 2% Jonathan Corbet
0 siblings, 0 replies; 200+ results
From: Jonathan Corbet @ 2022-12-12 9:25 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-doc
The following changes since commit 2f3f53d62307262f0086804ea7cea99b0e085450:
docs/process/howto: Replace C89 with C11 (2022-10-24 11:27:51 -0600)
are available in the Git repository at:
git://git.lwn.net/linux.git tags/docs-6.2
for you to fetch changes up to cc8c418b4fc09ed58ddd27b8e90ec797e9ca1e67:
Documentation/features: Use loongarch instead of loong (2022-12-05 02:50:12 -0700)
----------------------------------------------------------------
This was a not-too-busy cycle for documentation; highlights include:
- The beginnings of a set of translations into Spanish, headed up by Carlos
Bilbao.
- More Chinese translations.
- A change to the Sphinx "alabaster" theme by default for HTML generation.
Unlike the previous default (Read the Docs), alabaster is shipped with
Sphinx by default, reducing the number of other dependencies that need to
be installed. It also (IMO) produces a cleaner and more readable result.
- The ability to render the documentation into the texinfo format
(something Sphinx could always do, we just never wired it up until now).
Plus the usual collection of typo fixes, build-warning fixes, and minor
updates.
MEA CULPA: there is a messy set of merges into docs-next that really
should not be there. I tried a different Git workflow this time around
and clearly didn't get it quite right. Those merges were not meant to be
in the history at all, but I misbased the alabaster work and, worse,
didn't notice until now. I've opted to show my messiness to the world
rather than engage in last-second rebasing, but I can easily clean that
up if you would prefer. Won't happen again either way.
----------------------------------------------------------------
Akira Yokosawa (2):
docs/ja_JP/howto: Update for v6.1
docs/zh_CN: Fix '.. only::' directive's expression
Albert Zhou (1):
Documentation: eisa: Fix typo
Alexander Potapenko (1):
docs: kmsan: fix formatting of "Example report"
Binbin Zhou (3):
docs/zh_CN: core-api: Add this_cpu_ops Chinese translation
docs/zh_CN: core-api: Add timekeeping Chinese translation
docs/zh_CN: core-api: Add errseq Chinese translation
Björn Töpel (1):
Documentation: riscv: Document the sv57 VM layout
Carlos Bilbao (10):
Documentation: Start translations to Spanish
Documentation: Add HOWTO Spanish translation into rst based build system
docs/sp_SP: Add process submitting-patches translation
docs: Update maintainer of kernel-docs.rst
docs: Retire old resources from kernel-docs.rst
docs: Add book to process/kernel-docs.rst
docs: Create translations/sp_SP/process/, move submitting-patches.rst
docs/sp_SP: Add kernel-docs.rst Spanish translation
docs/sp_SP: Add process coding-style translation
docs/sp_SP: Add memory-barriers.txt Spanish translation
Chen Linxuan (1):
Documentation: update the description of TracerPid in procfs.rst
Daniel Vetter (1):
docs/sphinx: More depth in the rtd sidebar toc
David Heidelberg (1):
Docs/admin-guide/mm/zswap: remove a paragraph about zswap being a new feature
Jonathan Corbet (15):
Merge branch 'docs-mw' into docs-next
Merge branch 'docs-mw' into docs-next
Merge branch 'docs-mw' into docs-next
Merge branch 'docs-mw' into docs-next
Merge branch 'docs-mw' into docs-next
docs: Switch the default HTML theme to alabaster
docs: tweak some Alabaster style parameters
docs: update sphinx.rst to reflect the default theme change
docs: sphinx-pre-install: don't require the RTD theme
docs: improve the HTML formatting of kerneldoc comments
docs: decruft Documentation/conf.py
Merge branch 'alabaster-rb' into docs-mw
Revert "docs/zh_CN: core-api: Add timekeeping Chinese translation"
docs: Don't wire font sizes for HTML output
Merge branch 'docs-fixes' into docs-mw
Jonathan Neuschäfer (2):
docs: admin-guide: hw_random: Make document title more generic and concise
docs: ia64: Fix a typo ("identify mappings")
Kushagra Verma (1):
Documentation: Fixed a typo in bootconfig.rst
Liam Beguin (3):
math64: favor kernel-doc from header files
math64: add kernel-doc for DIV64_U64_ROUND_UP
math64: fix kernel-doc return value warnings
Maxim Cournoyer (1):
doc: add texinfodocs and infodocs targets
Pali Rohár (1):
Documentation: arm: marvell: Add Orion codenames and archive homepage
Randy Dunlap (3):
sysfs: update Documentation
debugfs: small Documentation cleaning
Documentation: USB: correct possessive "its" usage
Rui Li (9):
docs/zh_CN: Add userspace-api/index Chinese translation
docs/zh_CN: Add userspace-api/ebpf Chinese translation
docs/zh_CN: Add staging/index Chinese translation
docs/zh_CN: Add staging/xz Chinese translation
docs/zh_CN: Add userspace-api/no_new_privs Chinese translation
docs/zh_CN: Add userspace-api/sysfs-platform_profile Chinese translation
docs/zh_CN: Add userspace-api/seccomp_filter Chinese translation
docs/zh_CN: Add userspace-api/futex2 Chinese translation
docs/zh_CN: Add userspace-api/accelerators/ocxl Chinese translation
Stephen Kitt (5):
docs: sysctl/fs: remove references to inode-max
docs: sysctl/fs: remove references to dquot-max/-nr
docs: sysctl/fs: merge the aio sections
docs: sysctl/fs: remove references to super-max/-nr
docs: sysctl/fs: re-order, prettify
Tiezhu Yang (4):
docs/LoongArch: Update links of LoongArch ISA Vol1 and ELF psABI
docs/zh_CN/LoongArch: Update links of LoongArch ISA Vol1 and ELF psABI
Documentation/features-refresh.sh: Only sed the beginning "arch" of ARCH_DIR
Documentation/features: Use loongarch instead of loong
Wei Li (1):
Documentation/features: Update feature lists for 6.1
Yang Yingliang (3):
Documentation: devres: add missing IIO helpers
Documentation: devres: add missing LED helpers
Documentation: devres: add missing PWM helper
Yanteng Si (5):
docs/zh_CN: Add rust index Chinese translation
docs/zh_CN: Add rust quick-start Chinese translation
docs/zh_CN: Add rust general-information Chinese translation
docs/zh_CN: Add rust coding-guidelines Chinese translation
docs/zh_CN: Add rust arch-support Chinese translation
Documentation/Makefile | 11 +
Documentation/admin-guide/bootconfig.rst | 2 +-
Documentation/admin-guide/hw_random.rst | 6 +-
Documentation/admin-guide/mm/zswap.rst | 8 +-
Documentation/admin-guide/sysctl/fs.rst | 240 +-
Documentation/admin-guide/sysctl/kernel.rst | 2 +
Documentation/arm/marvell.rst | 12 +-
Documentation/conf.py | 211 +-
Documentation/core-api/kernel-api.rst | 3 -
Documentation/dev-tools/kmsan.rst | 1 +
Documentation/doc-guide/sphinx.rst | 16 +-
Documentation/driver-api/driver-model/devres.rst | 8 +
Documentation/driver-api/eisa.rst | 2 +-
.../features/core/cBPF-JIT/arch-support.txt | 2 +-
.../features/core/eBPF-JIT/arch-support.txt | 2 +-
.../core/generic-idle-thread/arch-support.txt | 2 +-
.../features/core/jump-labels/arch-support.txt | 4 +-
.../core/thread-info-in-task/arch-support.txt | 2 +-
.../features/core/tracehook/arch-support.txt | 2 +-
.../features/debug/KASAN/arch-support.txt | 4 +-
.../debug/debug-vm-pgtable/arch-support.txt | 2 +-
.../debug/gcov-profile-all/arch-support.txt | 2 +-
Documentation/features/debug/kcov/arch-support.txt | 2 +-
Documentation/features/debug/kgdb/arch-support.txt | 2 +-
.../features/debug/kmemleak/arch-support.txt | 2 +-
.../debug/kprobes-on-ftrace/arch-support.txt | 2 +-
.../features/debug/kprobes/arch-support.txt | 2 +-
.../features/debug/kretprobes/arch-support.txt | 2 +-
.../features/debug/optprobes/arch-support.txt | 2 +-
.../features/debug/stackprotector/arch-support.txt | 2 +-
.../features/debug/uprobes/arch-support.txt | 2 +-
.../debug/user-ret-profiler/arch-support.txt | 2 +-
.../features/io/dma-contiguous/arch-support.txt | 2 +-
.../locking/cmpxchg-local/arch-support.txt | 2 +-
.../features/locking/lockdep/arch-support.txt | 2 +-
.../locking/queued-rwlocks/arch-support.txt | 2 +-
.../locking/queued-spinlocks/arch-support.txt | 4 +-
.../features/perf/kprobes-event/arch-support.txt | 2 +-
.../features/perf/perf-regs/arch-support.txt | 2 +-
.../features/perf/perf-stackdump/arch-support.txt | 2 +-
.../sched/membarrier-sync-core/arch-support.txt | 2 +-
.../features/sched/numa-balancing/arch-support.txt | 2 +-
Documentation/features/scripts/features-refresh.sh | 2 +-
.../seccomp/seccomp-filter/arch-support.txt | 2 +-
.../time/arch-tick-broadcast/arch-support.txt | 2 +-
.../features/time/clockevents/arch-support.txt | 2 +-
.../time/context-tracking/arch-support.txt | 2 +-
.../features/time/irq-time-acct/arch-support.txt | 2 +-
.../features/time/virt-cpuacct/arch-support.txt | 2 +-
.../features/vm/ELF-ASLR/arch-support.txt | 2 +-
.../features/vm/PG_uncached/arch-support.txt | 2 +-
Documentation/features/vm/THP/arch-support.txt | 2 +-
Documentation/features/vm/TLB/arch-support.txt | 2 +-
.../features/vm/huge-vmap/arch-support.txt | 2 +-
.../features/vm/ioremap_prot/arch-support.txt | 2 +-
.../features/vm/pte_special/arch-support.txt | 2 +-
Documentation/filesystems/debugfs.rst | 8 +-
Documentation/filesystems/proc.rst | 3 +-
Documentation/filesystems/sysfs.rst | 41 +-
Documentation/ia64/aliasing.rst | 2 +-
Documentation/loongarch/introduction.rst | 8 +-
Documentation/process/kernel-docs.rst | 477 +--
Documentation/riscv/vm-layout.rst | 36 +
Documentation/sphinx-static/custom.css | 29 +
Documentation/sphinx/requirements.txt | 1 -
Documentation/translations/index.rst | 1 +
Documentation/translations/ja_JP/howto.rst | 66 +-
Documentation/translations/sp_SP/disclaimer-sp.rst | 6 +
Documentation/translations/sp_SP/howto.rst | 617 ++++
Documentation/translations/sp_SP/index.rst | 81 +
.../translations/sp_SP/memory-barriers.txt | 3134 ++++++++++++++++++++
.../translations/sp_SP/process/coding-style.rst | 1315 ++++++++
Documentation/translations/sp_SP/process/index.rst | 15 +
.../translations/sp_SP/process/kernel-docs.rst | 187 ++
.../sp_SP/process/submitting-patches.rst | 894 ++++++
.../sp_SP/wrappers/memory-barriers.rst | 19 +
.../translations/zh_CN/core-api/errseq.rst | 145 +
.../translations/zh_CN/core-api/index.rst | 6 +-
.../translations/zh_CN/core-api/this_cpu_ops.rst | 285 ++
.../translations/zh_CN/doc-guide/index.rst | 2 +-
Documentation/translations/zh_CN/index.rst | 11 +-
.../translations/zh_CN/loongarch/introduction.rst | 8 +-
.../translations/zh_CN/rust/arch-support.rst | 23 +
.../translations/zh_CN/rust/coding-guidelines.rst | 192 ++
.../zh_CN/rust/general-information.rst | 75 +
Documentation/translations/zh_CN/rust/index.rst | 28 +
.../translations/zh_CN/rust/quick-start.rst | 211 ++
Documentation/translations/zh_CN/staging/index.rst | 26 +
Documentation/translations/zh_CN/staging/xz.rst | 100 +
.../zh_CN/userspace-api/accelerators/ocxl.rst | 168 ++
.../zh_CN/userspace-api/ebpf/index.rst | 22 +
.../zh_CN/userspace-api/ebpf/syscall.rst | 29 +
.../translations/zh_CN/userspace-api/futex2.rst | 80 +
.../translations/zh_CN/userspace-api/index.rst | 50 +
.../zh_CN/userspace-api/no_new_privs.rst | 57 +
.../zh_CN/userspace-api/seccomp_filter.rst | 293 ++
.../zh_CN/userspace-api/sysfs-platform_profile.rst | 40 +
Documentation/usb/CREDITS | 6 +-
Documentation/usb/functionfs.rst | 2 +-
Documentation/usb/gadget_multi.rst | 2 +-
Documentation/userspace-api/media/Makefile | 3 +-
MAINTAINERS | 10 +
Makefile | 2 +-
include/linux/math64.h | 26 +-
lib/math/div64.c | 15 +-
scripts/kernel-doc | 54 +-
scripts/sphinx-pre-install | 8 -
107 files changed, 8540 insertions(+), 993 deletions(-)
create mode 100644 Documentation/sphinx-static/custom.css
create mode 100644 Documentation/translations/sp_SP/disclaimer-sp.rst
create mode 100644 Documentation/translations/sp_SP/howto.rst
create mode 100644 Documentation/translations/sp_SP/index.rst
create mode 100644 Documentation/translations/sp_SP/memory-barriers.txt
create mode 100644 Documentation/translations/sp_SP/process/coding-style.rst
create mode 100644 Documentation/translations/sp_SP/process/index.rst
create mode 100644 Documentation/translations/sp_SP/process/kernel-docs.rst
create mode 100644 Documentation/translations/sp_SP/process/submitting-patches.rst
create mode 100644 Documentation/translations/sp_SP/wrappers/memory-barriers.rst
create mode 100644 Documentation/translations/zh_CN/core-api/errseq.rst
create mode 100644 Documentation/translations/zh_CN/core-api/this_cpu_ops.rst
create mode 100644 Documentation/translations/zh_CN/rust/arch-support.rst
create mode 100644 Documentation/translations/zh_CN/rust/coding-guidelines.rst
create mode 100644 Documentation/translations/zh_CN/rust/general-information.rst
create mode 100644 Documentation/translations/zh_CN/rust/index.rst
create mode 100644 Documentation/translations/zh_CN/rust/quick-start.rst
create mode 100644 Documentation/translations/zh_CN/staging/index.rst
create mode 100644 Documentation/translations/zh_CN/staging/xz.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/accelerators/ocxl.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/ebpf/index.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/ebpf/syscall.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/futex2.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/index.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/no_new_privs.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/seccomp_filter.rst
create mode 100644 Documentation/translations/zh_CN/userspace-api/sysfs-platform_profile.rst
^ permalink raw reply [relevance 2%]
* Re: [PATCH RESEND v10 0/3] riscv, mm: detect svnapot cpu support at runtime
2022-12-12 8:07 0% ` [PATCH RESEND v10 0/3] riscv, mm: detect svnapot cpu support at runtime Andrew Jones
@ 2022-12-12 8:15 0% ` Qinglin Pan
0 siblings, 0 replies; 200+ results
From: Qinglin Pan @ 2022-12-12 8:15 UTC (permalink / raw)
To: Andrew Jones; +Cc: palmer, linux-riscv, jeff, xuyinan, conor
On 2022/12/12 16:07, Andrew Jones wrote:
> Hi Qinglin,
>
> This is actually v11, not a v10 resend. And please don't send new versions
> minutes after sending previous versions. v10 is still under review and
> discussion.
>
> Thanks,
> drew
Hi Andrew,
Thanks for the notification. I will send v11 after a few days.
Thanks,
Qinglin.
>
> On Mon, Dec 12, 2022 at 03:52:20PM +0800, panqinglin2020@iscas.ac.cn wrote:
>> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>>
>> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
>> page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
>>
>> This patchset adds a Kconfig item for using Svnapot in
>> "Platform type"->"SVNAPOT extension support". Its default value is on,
>> and people can set it off if they don't allow kernel to detect Svnapot
>> hardware support and leverage it.
>>
>> Tested on:
>> - qemu rv64 with "Svnapot support" off and svnapot=true.
>> - qemu rv64 with "Svnapot support" on and svnapot=true.
>> - qemu rv64 with "Svnapot support" off and svnapot=false.
>> - qemu rv64 with "Svnapot support" on and svnapot=false.
>>
>>
>> Changes in v2:
>> - detect Svnapot hardware support at boot time.
>> Changes in v3:
>> - do linear mapping again if has_svnapot
>> Changes in v4:
>> - fix some errors/warns reported by checkpatch.pl, thanks @Conor
>> Changes in v5:
>> - modify code according to @Conor and @Heiko
>> Changes in v6:
>> - use static key insead of alternative errata
>> Changes in v7:
>> - add napot_cont_order for possible more napot order in the future
>> - remove linear mapping related code from this patchset to another patch
>> - refactor hugetlb code for svnapot according to thanks @Andrew @Conor
>> - use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
>> - support svnapot in huge vmap on newer for-next branch
>> Changes in v8:
>> - fix compilation errors in rv32_defconfig
>> - insert some lines of whitespace according to @Conor's suggestion
>> Changes in v9:
>> - use alternative to avoid using static branches inside heavily used
>> inline functions
>> - change napot_cont_mask definition
>> - post test_vmalloc modification about testing vmalloc_huge
>> Changes in v10:
>> - fix some nits caught by @Andrew
>> - collect Reviewed-by/Acked-by
>> - add memory leak warning in KConfig text
>> - replace test_vmalloc patch link with the standard one
>>
>>
>> Qinglin Pan (3):
>> riscv: mm: modify pte format for Svnapot
>> riscv: mm: support Svnapot in hugetlb page
>> riscv: mm: support Svnapot in huge vmap
>>
>> arch/riscv/Kconfig | 21 +-
>> arch/riscv/include/asm/errata_list.h | 15 +-
>> arch/riscv/include/asm/hugetlb.h | 34 ++-
>> arch/riscv/include/asm/hwcap.h | 2 +-
>> arch/riscv/include/asm/page.h | 5 -
>> arch/riscv/include/asm/pgtable-64.h | 34 +++
>> arch/riscv/include/asm/pgtable.h | 43 +++-
>> arch/riscv/include/asm/vmalloc.h | 61 +++++-
>> arch/riscv/kernel/cpu.c | 1 +
>> arch/riscv/kernel/cpufeature.c | 15 ++
>> arch/riscv/mm/hugetlbpage.c | 301 +++++++++++++++++++++++++++
>> 11 files changed, 519 insertions(+), 13 deletions(-)
>>
>> --
>> 2.37.4
>>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* Re: [PATCH RESEND v10 0/3] riscv, mm: detect svnapot cpu support at runtime
2022-12-12 7:52 6% [PATCH RESEND v10 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
2022-12-12 7:52 12% ` [PATCH v10 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
@ 2022-12-12 8:07 0% ` Andrew Jones
2022-12-12 8:15 0% ` Qinglin Pan
1 sibling, 1 reply; 200+ results
From: Andrew Jones @ 2022-12-12 8:07 UTC (permalink / raw)
To: panqinglin2020; +Cc: palmer, linux-riscv, jeff, xuyinan, conor
Hi Qinglin,
This is actually v11, not a v10 resend. And please don't send new versions
minutes after sending previous versions. v10 is still under review and
discussion.
Thanks,
drew
On Mon, Dec 12, 2022 at 03:52:20PM +0800, panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
>
> This patchset adds a Kconfig item for using Svnapot in
> "Platform type"->"SVNAPOT extension support". Its default value is on,
> and people can set it off if they don't allow kernel to detect Svnapot
> hardware support and leverage it.
>
> Tested on:
> - qemu rv64 with "Svnapot support" off and svnapot=true.
> - qemu rv64 with "Svnapot support" on and svnapot=true.
> - qemu rv64 with "Svnapot support" off and svnapot=false.
> - qemu rv64 with "Svnapot support" on and svnapot=false.
>
>
> Changes in v2:
> - detect Svnapot hardware support at boot time.
> Changes in v3:
> - do linear mapping again if has_svnapot
> Changes in v4:
> - fix some errors/warns reported by checkpatch.pl, thanks @Conor
> Changes in v5:
> - modify code according to @Conor and @Heiko
> Changes in v6:
> - use static key insead of alternative errata
> Changes in v7:
> - add napot_cont_order for possible more napot order in the future
> - remove linear mapping related code from this patchset to another patch
> - refactor hugetlb code for svnapot according to thanks @Andrew @Conor
> - use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
> - support svnapot in huge vmap on newer for-next branch
> Changes in v8:
> - fix compilation errors in rv32_defconfig
> - insert some lines of whitespace according to @Conor's suggestion
> Changes in v9:
> - use alternative to avoid using static branches inside heavily used
> inline functions
> - change napot_cont_mask definition
> - post test_vmalloc modification about testing vmalloc_huge
> Changes in v10:
> - fix some nits caught by @Andrew
> - collect Reviewed-by/Acked-by
> - add memory leak warning in KConfig text
> - replace test_vmalloc patch link with the standard one
>
>
> Qinglin Pan (3):
> riscv: mm: modify pte format for Svnapot
> riscv: mm: support Svnapot in hugetlb page
> riscv: mm: support Svnapot in huge vmap
>
> arch/riscv/Kconfig | 21 +-
> arch/riscv/include/asm/errata_list.h | 15 +-
> arch/riscv/include/asm/hugetlb.h | 34 ++-
> arch/riscv/include/asm/hwcap.h | 2 +-
> arch/riscv/include/asm/page.h | 5 -
> arch/riscv/include/asm/pgtable-64.h | 34 +++
> arch/riscv/include/asm/pgtable.h | 43 +++-
> arch/riscv/include/asm/vmalloc.h | 61 +++++-
> arch/riscv/kernel/cpu.c | 1 +
> arch/riscv/kernel/cpufeature.c | 15 ++
> arch/riscv/mm/hugetlbpage.c | 301 +++++++++++++++++++++++++++
> 11 files changed, 519 insertions(+), 13 deletions(-)
>
> --
> 2.37.4
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* [PATCH v10 3/3] riscv: mm: support Svnapot in huge vmap
2022-12-12 7:52 6% [PATCH RESEND v10 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
@ 2022-12-12 7:52 12% ` panqinglin2020
2022-12-12 8:07 0% ` [PATCH RESEND v10 0/3] riscv, mm: detect svnapot cpu support at runtime Andrew Jones
1 sibling, 0 replies; 200+ results
From: panqinglin2020 @ 2022-12-12 7:52 UTC (permalink / raw)
To: palmer, linux-riscv
Cc: jeff, xuyinan, conor, ajones, Qinglin Pan, Conor Dooley
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
for Svnapot to support huge vmap about napot size.
It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
can be tested by test_vmalloc with [1] applied, and probe this
module to run fix_size_alloc_test with use_huge true.
[1]https://lore.kernel.org/all/20221212055657.698420-1-panqinglin2020@iscas.ac.cn/
Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 48da5371f1e9..58d3e447f191 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#endif
+#ifdef CONFIG_RISCV_ISA_SVNAPOT
+#include <linux/pgtable.h>
+#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
+static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
+ u64 pfn, unsigned int max_page_shift)
+{
+ unsigned long map_size = PAGE_SIZE;
+ unsigned long size, order;
+
+ if (!has_svnapot())
+ return map_size;
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_shift(order) > max_page_shift)
+ continue;
+
+ size = napot_cont_size(order);
+ if (end - addr < size)
+ continue;
+
+ if (!IS_ALIGNED(addr, size))
+ continue;
+
+ if (!IS_ALIGNED(PFN_PHYS(pfn), size))
+ continue;
+
+ map_size = size;
+ break;
+ }
+
+ return map_size;
+}
+
+#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
+static inline int arch_vmap_pte_supported_shift(unsigned long size)
+{
+ int shift = PAGE_SHIFT;
+ unsigned long order;
+
+ if (!has_svnapot())
+ return shift;
+
+ WARN_ON_ONCE(size >= PMD_SIZE);
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_size(order) > size)
+ continue;
+
+ if (!IS_ALIGNED(size, napot_cont_size(order)))
+ continue;
+
+ shift = napot_cont_shift(order);
+ break;
+ }
+
+ return shift;
+}
+
+#endif /* CONFIG_RISCV_ISA_SVNAPOT */
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.37.4
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 12%]
* [PATCH RESEND v10 0/3] riscv, mm: detect svnapot cpu support at runtime
@ 2022-12-12 7:52 6% panqinglin2020
2022-12-12 7:52 12% ` [PATCH v10 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
2022-12-12 8:07 0% ` [PATCH RESEND v10 0/3] riscv, mm: detect svnapot cpu support at runtime Andrew Jones
0 siblings, 2 replies; 200+ results
From: panqinglin2020 @ 2022-12-12 7:52 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is on,
and people can set it off if they don't allow kernel to detect Svnapot
hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
- modify code according to @Conor and @Heiko
Changes in v6:
- use static key insead of alternative errata
Changes in v7:
- add napot_cont_order for possible more napot order in the future
- remove linear mapping related code from this patchset to another patch
- refactor hugetlb code for svnapot according to thanks @Andrew @Conor
- use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
- support svnapot in huge vmap on newer for-next branch
Changes in v8:
- fix compilation errors in rv32_defconfig
- insert some lines of whitespace according to @Conor's suggestion
Changes in v9:
- use alternative to avoid using static branches inside heavily used
inline functions
- change napot_cont_mask definition
- post test_vmalloc modification about testing vmalloc_huge
Changes in v10:
- fix some nits caught by @Andrew
- collect Reviewed-by/Acked-by
- add memory leak warning in KConfig text
- replace test_vmalloc patch link with the standard one
Qinglin Pan (3):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 21 +-
arch/riscv/include/asm/errata_list.h | 15 +-
arch/riscv/include/asm/hugetlb.h | 34 ++-
arch/riscv/include/asm/hwcap.h | 2 +-
arch/riscv/include/asm/page.h | 5 -
arch/riscv/include/asm/pgtable-64.h | 34 +++
arch/riscv/include/asm/pgtable.h | 43 +++-
arch/riscv/include/asm/vmalloc.h | 61 +++++-
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 15 ++
arch/riscv/mm/hugetlbpage.c | 301 +++++++++++++++++++++++++++
11 files changed, 519 insertions(+), 13 deletions(-)
--
2.37.4
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* Re: [PATCH v10 3/3] riscv: mm: support Svnapot in huge vmap
2022-12-12 7:20 6% ` Andrew Jones
@ 2022-12-12 7:35 6% ` Qinglin Pan
0 siblings, 0 replies; 200+ results
From: Qinglin Pan @ 2022-12-12 7:35 UTC (permalink / raw)
To: Andrew Jones; +Cc: palmer, linux-riscv, jeff, xuyinan, conor, Conor Dooley
On 2022/12/12 15:20, Andrew Jones wrote:
> On Mon, Dec 12, 2022 at 02:55:26PM +0800, panqinglin2020@iscas.ac.cn wrote:
>> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>>
>> As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
>> implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
>> for Svnapot to support huge vmap about napot size.
>>
>> It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
>> can be tested by test_vmalloc with [1] applied, and probe this
>> module to run fix_size_alloc_test with use_huge true.
>>
>> [1]https://lore.kernel.org/all/20221212055657.698420-1-panqinglin2020@iscas.ac.cn/
>>
>> Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>> Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
>> Acked-by: Conor Dooley <conor.dooley@microchip.com>
>>
>> diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
>> index 48da5371f1e9..6f7447d563ab 100644
>> --- a/arch/riscv/include/asm/vmalloc.h
>> +++ b/arch/riscv/include/asm/vmalloc.h
>> @@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
>> return true;
>> }
>>
>> -#endif
>> +#ifdef CONFIG_RISCV_ISA_SVNAPOT
>> +#include <linux/pgtable.h>
>>
>> +#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
>> +static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
>> + u64 pfn, unsigned int max_page_shift)
>> +{
>> + unsigned long size, order;
>> + unsigned long map_size = PAGE_SIZE;
>
> Missed this conversion to reverse-xmas tree.
Got it. Will fix it in later resent v10 patchset. :)
>
>> +
>> + if (!has_svnapot())
>> + return map_size;
>> +
>> + for_each_napot_order_rev(order) {
>> + if (napot_cont_shift(order) > max_page_shift)
>> + continue;
>> +
>> + size = napot_cont_size(order);
>> + if (end - addr < size)
>> + continue;
>> +
>> + if (!IS_ALIGNED(addr, size))
>> + continue;
>> +
>> + if (!IS_ALIGNED(PFN_PHYS(pfn), size))
>> + continue;
>> +
>> + map_size = size;
>> + break;
>> + }
>> +
>> + return map_size;
>> +}
>> +
>> +#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
>> +static inline int arch_vmap_pte_supported_shift(unsigned long size)
>> +{
>> + int shift = PAGE_SHIFT;
>> + unsigned long order;
>> +
>> + if (!has_svnapot())
>> + return shift;
>> +
>> + WARN_ON_ONCE(size >= PMD_SIZE);
>> +
>> + for_each_napot_order_rev(order) {
>> + if (napot_cont_size(order) > size)
>> + continue;
>> +
>> + if (!IS_ALIGNED(size, napot_cont_size(order)))
>> + continue;
>> +
>> + shift = napot_cont_shift(order);
>> + break;
>> + }
>> +
>> + return shift;
>> +}
>> +
>> +#endif /* CONFIG_RISCV_ISA_SVNAPOT */
>> +#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
>> #endif /* _ASM_RISCV_VMALLOC_H */
>> --
>> 2.37.4
>>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* Re: [PATCH v10 3/3] riscv: mm: support Svnapot in huge vmap
2022-12-12 6:55 12% ` [PATCH v10 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
@ 2022-12-12 7:20 6% ` Andrew Jones
2022-12-12 7:35 6% ` Qinglin Pan
0 siblings, 1 reply; 200+ results
From: Andrew Jones @ 2022-12-12 7:20 UTC (permalink / raw)
To: panqinglin2020; +Cc: palmer, linux-riscv, jeff, xuyinan, conor, Conor Dooley
On Mon, Dec 12, 2022 at 02:55:26PM +0800, panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
> implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
> for Svnapot to support huge vmap about napot size.
>
> It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
> can be tested by test_vmalloc with [1] applied, and probe this
> module to run fix_size_alloc_test with use_huge true.
>
> [1]https://lore.kernel.org/all/20221212055657.698420-1-panqinglin2020@iscas.ac.cn/
>
> Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
> Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
> Acked-by: Conor Dooley <conor.dooley@microchip.com>
>
> diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
> index 48da5371f1e9..6f7447d563ab 100644
> --- a/arch/riscv/include/asm/vmalloc.h
> +++ b/arch/riscv/include/asm/vmalloc.h
> @@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
> return true;
> }
>
> -#endif
> +#ifdef CONFIG_RISCV_ISA_SVNAPOT
> +#include <linux/pgtable.h>
>
> +#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
> +static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
> + u64 pfn, unsigned int max_page_shift)
> +{
> + unsigned long size, order;
> + unsigned long map_size = PAGE_SIZE;
Missed this conversion to reverse-xmas tree.
> +
> + if (!has_svnapot())
> + return map_size;
> +
> + for_each_napot_order_rev(order) {
> + if (napot_cont_shift(order) > max_page_shift)
> + continue;
> +
> + size = napot_cont_size(order);
> + if (end - addr < size)
> + continue;
> +
> + if (!IS_ALIGNED(addr, size))
> + continue;
> +
> + if (!IS_ALIGNED(PFN_PHYS(pfn), size))
> + continue;
> +
> + map_size = size;
> + break;
> + }
> +
> + return map_size;
> +}
> +
> +#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
> +static inline int arch_vmap_pte_supported_shift(unsigned long size)
> +{
> + int shift = PAGE_SHIFT;
> + unsigned long order;
> +
> + if (!has_svnapot())
> + return shift;
> +
> + WARN_ON_ONCE(size >= PMD_SIZE);
> +
> + for_each_napot_order_rev(order) {
> + if (napot_cont_size(order) > size)
> + continue;
> +
> + if (!IS_ALIGNED(size, napot_cont_size(order)))
> + continue;
> +
> + shift = napot_cont_shift(order);
> + break;
> + }
> +
> + return shift;
> +}
> +
> +#endif /* CONFIG_RISCV_ISA_SVNAPOT */
> +#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
> #endif /* _ASM_RISCV_VMALLOC_H */
> --
> 2.37.4
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* [PATCH v10 0/3] riscv, mm: detect svnapot cpu support at runtime
@ 2022-12-12 6:55 6% panqinglin2020
2022-12-12 6:55 12% ` [PATCH v10 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
0 siblings, 1 reply; 200+ results
From: panqinglin2020 @ 2022-12-12 6:55 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is on,
and people can set it off if they don't allow kernel to detect Svnapot
hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
- modify code according to @Conor and @Heiko
Changes in v6:
- use static key insead of alternative errata
Changes in v7:
- add napot_cont_order for possible more napot order in the future
- remove linear mapping related code from this patchset to another patch
- refactor hugetlb code for svnapot according to thanks @Andrew @Conor
- use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
- support svnapot in huge vmap on newer for-next branch
Changes in v8:
- fix compilation errors in rv32_defconfig
- insert some lines of whitespace according to @Conor's suggestion
Changes in v9:
- use alternative to avoid using static branches inside heavily used
inline functions
- change napot_cont_mask definition
- post test_vmalloc modification about testing vmalloc_huge
Changes in v10:
- fix some nits caught by @Andrew
- collect Reviewed-by/Acked-by
- add memory leak warning in KConfig text
- replace test_vmalloc patch link with the standard one
Qinglin Pan (3):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 20 +-
arch/riscv/include/asm/errata_list.h | 15 +-
arch/riscv/include/asm/hugetlb.h | 34 ++-
arch/riscv/include/asm/hwcap.h | 2 +-
arch/riscv/include/asm/page.h | 5 -
arch/riscv/include/asm/pgtable-64.h | 34 +++
arch/riscv/include/asm/pgtable.h | 43 +++-
arch/riscv/include/asm/vmalloc.h | 61 +++++-
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 15 ++
arch/riscv/mm/hugetlbpage.c | 301 +++++++++++++++++++++++++++
11 files changed, 518 insertions(+), 13 deletions(-)
--
2.37.4
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* [PATCH v10 3/3] riscv: mm: support Svnapot in huge vmap
2022-12-12 6:55 6% [PATCH v10 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
@ 2022-12-12 6:55 12% ` panqinglin2020
2022-12-12 7:20 6% ` Andrew Jones
0 siblings, 1 reply; 200+ results
From: panqinglin2020 @ 2022-12-12 6:55 UTC (permalink / raw)
To: palmer, linux-riscv
Cc: jeff, xuyinan, conor, ajones, Qinglin Pan, Conor Dooley
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
for Svnapot to support huge vmap about napot size.
It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
can be tested by test_vmalloc with [1] applied, and probe this
module to run fix_size_alloc_test with use_huge true.
[1]https://lore.kernel.org/all/20221212055657.698420-1-panqinglin2020@iscas.ac.cn/
Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 48da5371f1e9..6f7447d563ab 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#endif
+#ifdef CONFIG_RISCV_ISA_SVNAPOT
+#include <linux/pgtable.h>
+#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
+static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
+ u64 pfn, unsigned int max_page_shift)
+{
+ unsigned long size, order;
+ unsigned long map_size = PAGE_SIZE;
+
+ if (!has_svnapot())
+ return map_size;
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_shift(order) > max_page_shift)
+ continue;
+
+ size = napot_cont_size(order);
+ if (end - addr < size)
+ continue;
+
+ if (!IS_ALIGNED(addr, size))
+ continue;
+
+ if (!IS_ALIGNED(PFN_PHYS(pfn), size))
+ continue;
+
+ map_size = size;
+ break;
+ }
+
+ return map_size;
+}
+
+#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
+static inline int arch_vmap_pte_supported_shift(unsigned long size)
+{
+ int shift = PAGE_SHIFT;
+ unsigned long order;
+
+ if (!has_svnapot())
+ return shift;
+
+ WARN_ON_ONCE(size >= PMD_SIZE);
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_size(order) > size)
+ continue;
+
+ if (!IS_ALIGNED(size, napot_cont_size(order)))
+ continue;
+
+ shift = napot_cont_shift(order);
+ break;
+ }
+
+ return shift;
+}
+
+#endif /* CONFIG_RISCV_ISA_SVNAPOT */
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.37.4
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 12%]
* Re: [PATCH v9 3/3] riscv: mm: support Svnapot in huge vmap
2022-12-08 15:22 6% ` Andrew Jones
@ 2022-12-08 17:39 6% ` Qinglin Pan
0 siblings, 0 replies; 200+ results
From: Qinglin Pan @ 2022-12-08 17:39 UTC (permalink / raw)
To: Andrew Jones; +Cc: palmer, linux-riscv, jeff, xuyinan, conor, alex, jszhang
Hey!
On 2022/12/8 23:22, Andrew Jones wrote:
> On Sun, Dec 04, 2022 at 10:11:37PM +0800, panqinglin2020@iscas.ac.cn wrote:
>> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>>
>> As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
>> implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
>> for Svnapot to support huge vmap about napot size.
>>
>> It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
>> can be tested by changing test_vmalloc module like [1], and probe this
>> module to run fix_size_alloc_test with use_huge true.
>>
>> [1]https://github.com/RV-VM/linux-vm-support/commit/33f4ee399c36d355c412ebe5334ca46fd727f8f5
>
> Do you plan to post this test_vmalloc.c patch?
I am sure to do it if it makes sense :)
I will send a patch of it later.
Thanks,
Qinglin.
>
> Thanks,
> drew
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* Re: [PATCH v9 3/3] riscv: mm: support Svnapot in huge vmap
2022-12-04 14:11 12% ` [PATCH v9 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
2022-12-07 18:59 6% ` Conor Dooley
@ 2022-12-08 15:22 6% ` Andrew Jones
2022-12-08 17:39 6% ` Qinglin Pan
1 sibling, 1 reply; 200+ results
From: Andrew Jones @ 2022-12-08 15:22 UTC (permalink / raw)
To: panqinglin2020; +Cc: palmer, linux-riscv, jeff, xuyinan, conor, alex, jszhang
On Sun, Dec 04, 2022 at 10:11:37PM +0800, panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
> implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
> for Svnapot to support huge vmap about napot size.
>
> It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
> can be tested by changing test_vmalloc module like [1], and probe this
> module to run fix_size_alloc_test with use_huge true.
>
> [1]https://github.com/RV-VM/linux-vm-support/commit/33f4ee399c36d355c412ebe5334ca46fd727f8f5
Do you plan to post this test_vmalloc.c patch?
Thanks,
drew
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* Re: [PATCH v9 3/3] riscv: mm: support Svnapot in huge vmap
2022-12-07 18:59 6% ` Conor Dooley
@ 2022-12-08 4:57 6% ` Qinglin Pan
0 siblings, 0 replies; 200+ results
From: Qinglin Pan @ 2022-12-08 4:57 UTC (permalink / raw)
To: Conor Dooley; +Cc: palmer, linux-riscv, jeff, xuyinan, ajones, alex, jszhang
Hey!
On 2022/12/8 02:59, Conor Dooley wrote:
> On Sun, Dec 04, 2022 at 10:11:37PM +0800, panqinglin2020@iscas.ac.cn wrote:
>> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>>
>> As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
>> implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
>> for Svnapot to support huge vmap about napot size.
>>
>> It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
>> can be tested by changing test_vmalloc module like [1], and probe this
>> module to run fix_size_alloc_test with use_huge true.
>>
>> [1]https://github.com/RV-VM/linux-vm-support/commit/33f4ee399c36d355c412ebe5334ca46fd727f8f5
>
> Please make this one a standard Link: tag.
Got it.
>
>>
>> Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>> Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
>>
>> diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
>> index 48da5371f1e9..6f7447d563ab 100644
>> --- a/arch/riscv/include/asm/vmalloc.h
>> +++ b/arch/riscv/include/asm/vmalloc.h
>> @@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
>> return true;
>> }
>>
>> -#endif
>> +#ifdef CONFIG_RISCV_ISA_SVNAPOT
>> +#include <linux/pgtable.h>
>>
>> +#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
>> +static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
>> + u64 pfn, unsigned int max_page_shift)
>> +{
>> + unsigned long size, order;
>> + unsigned long map_size = PAGE_SIZE;
>> +
>> + if (!has_svnapot())
>> + return map_size;
>
> These ones are obvious about what you're gonna do if !has_svnapot()
> though, nice :)
> With a proper Link: tag
> Acked-by: Conor Dooley <conor.dooley@microchip.com>
Thanks,
Qinglin.
>
>> +
>> + for_each_napot_order_rev(order) {
>> + if (napot_cont_shift(order) > max_page_shift)
>> + continue;
>> +
>> + size = napot_cont_size(order);
>> + if (end - addr < size)
>> + continue;
>> +
>> + if (!IS_ALIGNED(addr, size))
>> + continue;
>> +
>> + if (!IS_ALIGNED(PFN_PHYS(pfn), size))
>> + continue;
>> +
>> + map_size = size;
>> + break;
>> + }
>> +
>> + return map_size;
>> +}
>> +
>> +#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
>> +static inline int arch_vmap_pte_supported_shift(unsigned long size)
>> +{
>> + int shift = PAGE_SHIFT;
>> + unsigned long order;
>> +
>> + if (!has_svnapot())
>> + return shift;
>> +
>> + WARN_ON_ONCE(size >= PMD_SIZE);
>> +
>> + for_each_napot_order_rev(order) {
>> + if (napot_cont_size(order) > size)
>> + continue;
>> +
>> + if (!IS_ALIGNED(size, napot_cont_size(order)))
>> + continue;
>> +
>> + shift = napot_cont_shift(order);
>> + break;
>> + }
>> +
>> + return shift;
>> +}
>> +
>> +#endif /* CONFIG_RISCV_ISA_SVNAPOT */
>> +#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
>> #endif /* _ASM_RISCV_VMALLOC_H */
>> --
>> 2.37.4
>>
>>
>> _______________________________________________
>> linux-riscv mailing list
>> linux-riscv@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-riscv
>>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* Re: [PATCH v9 3/3] riscv: mm: support Svnapot in huge vmap
2022-12-04 14:11 12% ` [PATCH v9 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
@ 2022-12-07 18:59 6% ` Conor Dooley
2022-12-08 4:57 6% ` Qinglin Pan
2022-12-08 15:22 6% ` Andrew Jones
1 sibling, 1 reply; 200+ results
From: Conor Dooley @ 2022-12-07 18:59 UTC (permalink / raw)
To: panqinglin2020; +Cc: palmer, linux-riscv, jeff, xuyinan, ajones, alex, jszhang
[-- Attachment #1.1: Type: text/plain, Size: 3051 bytes --]
On Sun, Dec 04, 2022 at 10:11:37PM +0800, panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
> implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
> for Svnapot to support huge vmap about napot size.
>
> It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
> can be tested by changing test_vmalloc module like [1], and probe this
> module to run fix_size_alloc_test with use_huge true.
>
> [1]https://github.com/RV-VM/linux-vm-support/commit/33f4ee399c36d355c412ebe5334ca46fd727f8f5
Please make this one a standard Link: tag.
>
> Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
> Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
>
> diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
> index 48da5371f1e9..6f7447d563ab 100644
> --- a/arch/riscv/include/asm/vmalloc.h
> +++ b/arch/riscv/include/asm/vmalloc.h
> @@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
> return true;
> }
>
> -#endif
> +#ifdef CONFIG_RISCV_ISA_SVNAPOT
> +#include <linux/pgtable.h>
>
> +#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
> +static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
> + u64 pfn, unsigned int max_page_shift)
> +{
> + unsigned long size, order;
> + unsigned long map_size = PAGE_SIZE;
> +
> + if (!has_svnapot())
> + return map_size;
These ones are obvious about what you're gonna do if !has_svnapot()
though, nice :)
With a proper Link: tag
Acked-by: Conor Dooley <conor.dooley@microchip.com>
> +
> + for_each_napot_order_rev(order) {
> + if (napot_cont_shift(order) > max_page_shift)
> + continue;
> +
> + size = napot_cont_size(order);
> + if (end - addr < size)
> + continue;
> +
> + if (!IS_ALIGNED(addr, size))
> + continue;
> +
> + if (!IS_ALIGNED(PFN_PHYS(pfn), size))
> + continue;
> +
> + map_size = size;
> + break;
> + }
> +
> + return map_size;
> +}
> +
> +#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
> +static inline int arch_vmap_pte_supported_shift(unsigned long size)
> +{
> + int shift = PAGE_SHIFT;
> + unsigned long order;
> +
> + if (!has_svnapot())
> + return shift;
> +
> + WARN_ON_ONCE(size >= PMD_SIZE);
> +
> + for_each_napot_order_rev(order) {
> + if (napot_cont_size(order) > size)
> + continue;
> +
> + if (!IS_ALIGNED(size, napot_cont_size(order)))
> + continue;
> +
> + shift = napot_cont_shift(order);
> + break;
> + }
> +
> + return shift;
> +}
> +
> +#endif /* CONFIG_RISCV_ISA_SVNAPOT */
> +#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
> #endif /* _ASM_RISCV_VMALLOC_H */
> --
> 2.37.4
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
>
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 161 bytes --]
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* [PATCH v9 3/3] riscv: mm: support Svnapot in huge vmap
2022-12-04 14:11 6% [PATCH v9 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
@ 2022-12-04 14:11 12% ` panqinglin2020
2022-12-07 18:59 6% ` Conor Dooley
2022-12-08 15:22 6% ` Andrew Jones
0 siblings, 2 replies; 200+ results
From: panqinglin2020 @ 2022-12-04 14:11 UTC (permalink / raw)
To: palmer, linux-riscv
Cc: jeff, xuyinan, conor, ajones, alex, jszhang, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
for Svnapot to support huge vmap about napot size.
It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
can be tested by changing test_vmalloc module like [1], and probe this
module to run fix_size_alloc_test with use_huge true.
[1]https://github.com/RV-VM/linux-vm-support/commit/33f4ee399c36d355c412ebe5334ca46fd727f8f5
Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 48da5371f1e9..6f7447d563ab 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#endif
+#ifdef CONFIG_RISCV_ISA_SVNAPOT
+#include <linux/pgtable.h>
+#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
+static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
+ u64 pfn, unsigned int max_page_shift)
+{
+ unsigned long size, order;
+ unsigned long map_size = PAGE_SIZE;
+
+ if (!has_svnapot())
+ return map_size;
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_shift(order) > max_page_shift)
+ continue;
+
+ size = napot_cont_size(order);
+ if (end - addr < size)
+ continue;
+
+ if (!IS_ALIGNED(addr, size))
+ continue;
+
+ if (!IS_ALIGNED(PFN_PHYS(pfn), size))
+ continue;
+
+ map_size = size;
+ break;
+ }
+
+ return map_size;
+}
+
+#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
+static inline int arch_vmap_pte_supported_shift(unsigned long size)
+{
+ int shift = PAGE_SHIFT;
+ unsigned long order;
+
+ if (!has_svnapot())
+ return shift;
+
+ WARN_ON_ONCE(size >= PMD_SIZE);
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_size(order) > size)
+ continue;
+
+ if (!IS_ALIGNED(size, napot_cont_size(order)))
+ continue;
+
+ shift = napot_cont_shift(order);
+ break;
+ }
+
+ return shift;
+}
+
+#endif /* CONFIG_RISCV_ISA_SVNAPOT */
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.37.4
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 12%]
* [PATCH v9 0/3] riscv, mm: detect svnapot cpu support at runtime
@ 2022-12-04 14:11 6% panqinglin2020
2022-12-04 14:11 12% ` [PATCH v9 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
0 siblings, 1 reply; 200+ results
From: panqinglin2020 @ 2022-12-04 14:11 UTC (permalink / raw)
To: palmer, linux-riscv
Cc: jeff, xuyinan, conor, ajones, alex, jszhang, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is on,
and people can set it off if they don't allow kernel to detect Svnapot
hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
- modify code according to @Conor and @Heiko
Changes in v6:
- use static key insead of alternative errata
Changes in v7:
- add napot_cont_order for possible more napot order in the future
- remove linear mapping related code from this patchset to another patch
- refactor hugetlb code for svnapot according to thanks @Andrew @Conor
- use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
- support svnapot in huge vmap on newer for-next branch
Changes in v8:
- fix compilation errors in rv32_defconfig
- insert some lines of whitespace according to @Conor's suggestion
Changes in v9:
- use alternative to avoid using static branches inside heavily used
inline functions
- change napot_cont_mask definition
- post test_vmalloc modification about testing vmalloc_huge
Qinglin Pan (3):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 16 +-
arch/riscv/include/asm/errata_list.h | 15 +-
arch/riscv/include/asm/hugetlb.h | 34 ++-
arch/riscv/include/asm/hwcap.h | 2 +-
arch/riscv/include/asm/page.h | 5 -
arch/riscv/include/asm/pgtable-64.h | 34 +++
arch/riscv/include/asm/pgtable.h | 43 +++-
arch/riscv/include/asm/vmalloc.h | 61 +++++-
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 15 ++
arch/riscv/mm/hugetlbpage.c | 297 +++++++++++++++++++++++++++
11 files changed, 510 insertions(+), 13 deletions(-)
--
2.37.4
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* [PATCH 2/2] Documentation/features: Use loongarch instead of loong
2022-12-04 12:18 4% [PATCH 0/2] docs: Correct the arch name of LoongArch Tiezhu Yang
@ 2022-12-04 12:18 8% ` Tiezhu Yang
0 siblings, 0 replies; 200+ results
From: Tiezhu Yang @ 2022-12-04 12:18 UTC (permalink / raw)
To: Jonathan Corbet; +Cc: loongarch, linux-doc, linux-kernel
The official arch name is LoongArch [1], we should use small letter
loongarch instead of loong in Documentation/features, just use the
features-refresh.sh to refresh all the related files.
[1] https://www.kernel.org/doc/html/latest/loongarch/index.html
Fixes: 5860800e8696 ("Documentation/features: Update the arch support status files")
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
Documentation/features/core/cBPF-JIT/arch-support.txt | 2 +-
Documentation/features/core/eBPF-JIT/arch-support.txt | 2 +-
Documentation/features/core/generic-idle-thread/arch-support.txt | 2 +-
Documentation/features/core/jump-labels/arch-support.txt | 2 +-
Documentation/features/core/thread-info-in-task/arch-support.txt | 2 +-
Documentation/features/core/tracehook/arch-support.txt | 2 +-
Documentation/features/debug/KASAN/arch-support.txt | 2 +-
Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 2 +-
Documentation/features/debug/gcov-profile-all/arch-support.txt | 2 +-
Documentation/features/debug/kcov/arch-support.txt | 2 +-
Documentation/features/debug/kgdb/arch-support.txt | 2 +-
Documentation/features/debug/kmemleak/arch-support.txt | 2 +-
Documentation/features/debug/kprobes-on-ftrace/arch-support.txt | 2 +-
Documentation/features/debug/kprobes/arch-support.txt | 2 +-
Documentation/features/debug/kretprobes/arch-support.txt | 2 +-
Documentation/features/debug/optprobes/arch-support.txt | 2 +-
Documentation/features/debug/stackprotector/arch-support.txt | 2 +-
Documentation/features/debug/uprobes/arch-support.txt | 2 +-
Documentation/features/debug/user-ret-profiler/arch-support.txt | 2 +-
Documentation/features/io/dma-contiguous/arch-support.txt | 2 +-
Documentation/features/locking/cmpxchg-local/arch-support.txt | 2 +-
Documentation/features/locking/lockdep/arch-support.txt | 2 +-
Documentation/features/locking/queued-rwlocks/arch-support.txt | 2 +-
Documentation/features/locking/queued-spinlocks/arch-support.txt | 2 +-
Documentation/features/perf/kprobes-event/arch-support.txt | 2 +-
Documentation/features/perf/perf-regs/arch-support.txt | 2 +-
Documentation/features/perf/perf-stackdump/arch-support.txt | 2 +-
Documentation/features/sched/membarrier-sync-core/arch-support.txt | 2 +-
Documentation/features/sched/numa-balancing/arch-support.txt | 2 +-
Documentation/features/seccomp/seccomp-filter/arch-support.txt | 2 +-
Documentation/features/time/arch-tick-broadcast/arch-support.txt | 2 +-
Documentation/features/time/clockevents/arch-support.txt | 2 +-
Documentation/features/time/context-tracking/arch-support.txt | 2 +-
Documentation/features/time/irq-time-acct/arch-support.txt | 2 +-
Documentation/features/time/virt-cpuacct/arch-support.txt | 2 +-
Documentation/features/vm/ELF-ASLR/arch-support.txt | 2 +-
Documentation/features/vm/PG_uncached/arch-support.txt | 2 +-
Documentation/features/vm/THP/arch-support.txt | 2 +-
Documentation/features/vm/TLB/arch-support.txt | 2 +-
Documentation/features/vm/huge-vmap/arch-support.txt | 2 +-
Documentation/features/vm/ioremap_prot/arch-support.txt | 2 +-
Documentation/features/vm/pte_special/arch-support.txt | 2 +-
42 files changed, 42 insertions(+), 42 deletions(-)
diff --git a/Documentation/features/core/cBPF-JIT/arch-support.txt b/Documentation/features/core/cBPF-JIT/arch-support.txt
index a053667..0a1f5bb 100644
--- a/Documentation/features/core/cBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/cBPF-JIT/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/eBPF-JIT/arch-support.txt b/Documentation/features/core/eBPF-JIT/arch-support.txt
index 7d968c4..6c0f3d7 100644
--- a/Documentation/features/core/eBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/eBPF-JIT/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/generic-idle-thread/arch-support.txt b/Documentation/features/core/generic-idle-thread/arch-support.txt
index c9bfff2..0b94099 100644
--- a/Documentation/features/core/generic-idle-thread/arch-support.txt
+++ b/Documentation/features/core/generic-idle-thread/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | ok |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/jump-labels/arch-support.txt b/Documentation/features/core/jump-labels/arch-support.txt
index 20cbefb..2328ead 100644
--- a/Documentation/features/core/jump-labels/arch-support.txt
+++ b/Documentation/features/core/jump-labels/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/thread-info-in-task/arch-support.txt b/Documentation/features/core/thread-info-in-task/arch-support.txt
index 9b3e2ce..9c5d39e 100644
--- a/Documentation/features/core/thread-info-in-task/arch-support.txt
+++ b/Documentation/features/core/thread-info-in-task/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/core/tracehook/arch-support.txt b/Documentation/features/core/tracehook/arch-support.txt
index 9c7ffec..aed5679 100644
--- a/Documentation/features/core/tracehook/arch-support.txt
+++ b/Documentation/features/core/tracehook/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | ok |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/KASAN/arch-support.txt b/Documentation/features/debug/KASAN/arch-support.txt
index 04afee1..bf0124f 100644
--- a/Documentation/features/debug/KASAN/arch-support.txt
+++ b/Documentation/features/debug/KASAN/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
index c45711e..9ec5d13 100644
--- a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
+++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/gcov-profile-all/arch-support.txt b/Documentation/features/debug/gcov-profile-all/arch-support.txt
index 0b3ba24..dc4014f 100644
--- a/Documentation/features/debug/gcov-profile-all/arch-support.txt
+++ b/Documentation/features/debug/gcov-profile-all/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/debug/kcov/arch-support.txt b/Documentation/features/debug/kcov/arch-support.txt
index 0a91f5c..ffcc9f2 100644
--- a/Documentation/features/debug/kcov/arch-support.txt
+++ b/Documentation/features/debug/kcov/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/kgdb/arch-support.txt b/Documentation/features/debug/kgdb/arch-support.txt
index 04120d2..958498f 100644
--- a/Documentation/features/debug/kgdb/arch-support.txt
+++ b/Documentation/features/debug/kgdb/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | ok |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/debug/kmemleak/arch-support.txt b/Documentation/features/debug/kmemleak/arch-support.txt
index e487c35..0cfa5f0 100644
--- a/Documentation/features/debug/kmemleak/arch-support.txt
+++ b/Documentation/features/debug/kmemleak/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
index b3697f4..bcc29d3 100644
--- a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
+++ b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/kprobes/arch-support.txt b/Documentation/features/debug/kprobes/arch-support.txt
index 452385a..8a77d62 100644
--- a/Documentation/features/debug/kprobes/arch-support.txt
+++ b/Documentation/features/debug/kprobes/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/kretprobes/arch-support.txt b/Documentation/features/debug/kretprobes/arch-support.txt
index daecf04..cf4723c 100644
--- a/Documentation/features/debug/kretprobes/arch-support.txt
+++ b/Documentation/features/debug/kretprobes/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/optprobes/arch-support.txt b/Documentation/features/debug/optprobes/arch-support.txt
index adb1bd0..83a4639 100644
--- a/Documentation/features/debug/optprobes/arch-support.txt
+++ b/Documentation/features/debug/optprobes/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/stackprotector/arch-support.txt b/Documentation/features/debug/stackprotector/arch-support.txt
index ddcd716..71cd4ba 100644
--- a/Documentation/features/debug/stackprotector/arch-support.txt
+++ b/Documentation/features/debug/stackprotector/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/uprobes/arch-support.txt b/Documentation/features/debug/uprobes/arch-support.txt
index 2512120..d53f2f9 100644
--- a/Documentation/features/debug/uprobes/arch-support.txt
+++ b/Documentation/features/debug/uprobes/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/user-ret-profiler/arch-support.txt b/Documentation/features/debug/user-ret-profiler/arch-support.txt
index f2fcff8..059110a 100644
--- a/Documentation/features/debug/user-ret-profiler/arch-support.txt
+++ b/Documentation/features/debug/user-ret-profiler/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/io/dma-contiguous/arch-support.txt b/Documentation/features/io/dma-contiguous/arch-support.txt
index 95e485c..bfe0921 100644
--- a/Documentation/features/io/dma-contiguous/arch-support.txt
+++ b/Documentation/features/io/dma-contiguous/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/locking/cmpxchg-local/arch-support.txt b/Documentation/features/locking/cmpxchg-local/arch-support.txt
index 8b1a8d9..68329e9 100644
--- a/Documentation/features/locking/cmpxchg-local/arch-support.txt
+++ b/Documentation/features/locking/cmpxchg-local/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/locking/lockdep/arch-support.txt b/Documentation/features/locking/lockdep/arch-support.txt
index ab69e8f..ddb9452 100644
--- a/Documentation/features/locking/lockdep/arch-support.txt
+++ b/Documentation/features/locking/lockdep/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/locking/queued-rwlocks/arch-support.txt b/Documentation/features/locking/queued-rwlocks/arch-support.txt
index 0bfb72a..5deb845 100644
--- a/Documentation/features/locking/queued-rwlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-rwlocks/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/locking/queued-spinlocks/arch-support.txt b/Documentation/features/locking/queued-spinlocks/arch-support.txt
index 59ee62b..2d3961b 100644
--- a/Documentation/features/locking/queued-spinlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-spinlocks/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/kprobes-event/arch-support.txt b/Documentation/features/perf/kprobes-event/arch-support.txt
index 0d0647b..641a7d2 100644
--- a/Documentation/features/perf/kprobes-event/arch-support.txt
+++ b/Documentation/features/perf/kprobes-event/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/perf-regs/arch-support.txt b/Documentation/features/perf/perf-regs/arch-support.txt
index 3732e1c..33866eb 100644
--- a/Documentation/features/perf/perf-regs/arch-support.txt
+++ b/Documentation/features/perf/perf-regs/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/perf-stackdump/arch-support.txt b/Documentation/features/perf/perf-stackdump/arch-support.txt
index 4cc3b15..c8e4c7c 100644
--- a/Documentation/features/perf/perf-stackdump/arch-support.txt
+++ b/Documentation/features/perf/perf-stackdump/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/sched/membarrier-sync-core/arch-support.txt b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
index 336d728b..1e51614c 100644
--- a/Documentation/features/sched/membarrier-sync-core/arch-support.txt
+++ b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
@@ -36,7 +36,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/sched/numa-balancing/arch-support.txt b/Documentation/features/sched/numa-balancing/arch-support.txt
index 76d0121..532cc67 100644
--- a/Documentation/features/sched/numa-balancing/arch-support.txt
+++ b/Documentation/features/sched/numa-balancing/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | .. |
| hexagon: | .. |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
diff --git a/Documentation/features/seccomp/seccomp-filter/arch-support.txt b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
index a86b8b1..dc71bf7 100644
--- a/Documentation/features/seccomp/seccomp-filter/arch-support.txt
+++ b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/arch-tick-broadcast/arch-support.txt b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
index 364169f..9bffac8 100644
--- a/Documentation/features/time/arch-tick-broadcast/arch-support.txt
+++ b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/clockevents/arch-support.txt b/Documentation/features/time/clockevents/arch-support.txt
index 6ea2747..6251600 100644
--- a/Documentation/features/time/clockevents/arch-support.txt
+++ b/Documentation/features/time/clockevents/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/time/context-tracking/arch-support.txt b/Documentation/features/time/context-tracking/arch-support.txt
index e59071a..72bc5ba 100644
--- a/Documentation/features/time/context-tracking/arch-support.txt
+++ b/Documentation/features/time/context-tracking/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/irq-time-acct/arch-support.txt b/Documentation/features/time/irq-time-acct/arch-support.txt
index fd17d8d..ceb0366 100644
--- a/Documentation/features/time/irq-time-acct/arch-support.txt
+++ b/Documentation/features/time/irq-time-acct/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | .. |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/virt-cpuacct/arch-support.txt b/Documentation/features/time/virt-cpuacct/arch-support.txt
index 1a859ac..c063dff 100644
--- a/Documentation/features/time/virt-cpuacct/arch-support.txt
+++ b/Documentation/features/time/virt-cpuacct/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/ELF-ASLR/arch-support.txt b/Documentation/features/vm/ELF-ASLR/arch-support.txt
index b122995..15164f3 100644
--- a/Documentation/features/vm/ELF-ASLR/arch-support.txt
+++ b/Documentation/features/vm/ELF-ASLR/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/PG_uncached/arch-support.txt b/Documentation/features/vm/PG_uncached/arch-support.txt
index 02f325f..5acd64b 100644
--- a/Documentation/features/vm/PG_uncached/arch-support.txt
+++ b/Documentation/features/vm/PG_uncached/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | ok |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/vm/THP/arch-support.txt b/Documentation/features/vm/THP/arch-support.txt
index 9bfff97..9dd7d75 100644
--- a/Documentation/features/vm/THP/arch-support.txt
+++ b/Documentation/features/vm/THP/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | .. |
| hexagon: | .. |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | .. |
| microblaze: | .. |
| mips: | ok |
diff --git a/Documentation/features/vm/TLB/arch-support.txt b/Documentation/features/vm/TLB/arch-support.txt
index 039e4e9..7f049c2 100644
--- a/Documentation/features/vm/TLB/arch-support.txt
+++ b/Documentation/features/vm/TLB/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index 13b4940..82b0be4 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | TODO |
+ | loongarch: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/vm/ioremap_prot/arch-support.txt b/Documentation/features/vm/ioremap_prot/arch-support.txt
index 6bd78eb..a24149e 100644
--- a/Documentation/features/vm/ioremap_prot/arch-support.txt
+++ b/Documentation/features/vm/ioremap_prot/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/pte_special/arch-support.txt b/Documentation/features/vm/pte_special/arch-support.txt
index fc3687b..d2b22a0 100644
--- a/Documentation/features/vm/pte_special/arch-support.txt
+++ b/Documentation/features/vm/pte_special/arch-support.txt
@@ -13,7 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
- | loong: | ok |
+ | loongarch: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
--
2.1.0
^ permalink raw reply related [relevance 8%]
* [PATCH 0/2] docs: Correct the arch name of LoongArch
@ 2022-12-04 12:18 4% Tiezhu Yang
2022-12-04 12:18 8% ` [PATCH 2/2] Documentation/features: Use loongarch instead of loong Tiezhu Yang
0 siblings, 1 reply; 200+ results
From: Tiezhu Yang @ 2022-12-04 12:18 UTC (permalink / raw)
To: Jonathan Corbet; +Cc: loongarch, linux-doc, linux-kernel
Based on git.lwn.net/linux.git docs-next
Tiezhu Yang (2):
Documentation/features-refresh.sh: Only sed the beginning "arch" of
ARCH_DIR
Documentation/features: Use loongarch instead of loong
Documentation/features/core/cBPF-JIT/arch-support.txt | 2 +-
Documentation/features/core/eBPF-JIT/arch-support.txt | 2 +-
Documentation/features/core/generic-idle-thread/arch-support.txt | 2 +-
Documentation/features/core/jump-labels/arch-support.txt | 2 +-
Documentation/features/core/thread-info-in-task/arch-support.txt | 2 +-
Documentation/features/core/tracehook/arch-support.txt | 2 +-
Documentation/features/debug/KASAN/arch-support.txt | 2 +-
Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 2 +-
Documentation/features/debug/gcov-profile-all/arch-support.txt | 2 +-
Documentation/features/debug/kcov/arch-support.txt | 2 +-
Documentation/features/debug/kgdb/arch-support.txt | 2 +-
Documentation/features/debug/kmemleak/arch-support.txt | 2 +-
Documentation/features/debug/kprobes-on-ftrace/arch-support.txt | 2 +-
Documentation/features/debug/kprobes/arch-support.txt | 2 +-
Documentation/features/debug/kretprobes/arch-support.txt | 2 +-
Documentation/features/debug/optprobes/arch-support.txt | 2 +-
Documentation/features/debug/stackprotector/arch-support.txt | 2 +-
Documentation/features/debug/uprobes/arch-support.txt | 2 +-
Documentation/features/debug/user-ret-profiler/arch-support.txt | 2 +-
Documentation/features/io/dma-contiguous/arch-support.txt | 2 +-
Documentation/features/locking/cmpxchg-local/arch-support.txt | 2 +-
Documentation/features/locking/lockdep/arch-support.txt | 2 +-
Documentation/features/locking/queued-rwlocks/arch-support.txt | 2 +-
Documentation/features/locking/queued-spinlocks/arch-support.txt | 2 +-
Documentation/features/perf/kprobes-event/arch-support.txt | 2 +-
Documentation/features/perf/perf-regs/arch-support.txt | 2 +-
Documentation/features/perf/perf-stackdump/arch-support.txt | 2 +-
Documentation/features/sched/membarrier-sync-core/arch-support.txt | 2 +-
Documentation/features/sched/numa-balancing/arch-support.txt | 2 +-
Documentation/features/scripts/features-refresh.sh | 2 +-
Documentation/features/seccomp/seccomp-filter/arch-support.txt | 2 +-
Documentation/features/time/arch-tick-broadcast/arch-support.txt | 2 +-
Documentation/features/time/clockevents/arch-support.txt | 2 +-
Documentation/features/time/context-tracking/arch-support.txt | 2 +-
Documentation/features/time/irq-time-acct/arch-support.txt | 2 +-
Documentation/features/time/virt-cpuacct/arch-support.txt | 2 +-
Documentation/features/vm/ELF-ASLR/arch-support.txt | 2 +-
Documentation/features/vm/PG_uncached/arch-support.txt | 2 +-
Documentation/features/vm/THP/arch-support.txt | 2 +-
Documentation/features/vm/TLB/arch-support.txt | 2 +-
Documentation/features/vm/huge-vmap/arch-support.txt | 2 +-
Documentation/features/vm/ioremap_prot/arch-support.txt | 2 +-
Documentation/features/vm/pte_special/arch-support.txt | 2 +-
43 files changed, 43 insertions(+), 43 deletions(-)
--
2.1.0
^ permalink raw reply [relevance 4%]
* [PATCH v3 4/4] netfs: Add a function to extract an iterator into a scatterlist
@ 2022-12-02 9:43 4% ` David Howells
0 siblings, 0 replies; 200+ results
From: David Howells @ 2022-12-02 9:43 UTC (permalink / raw)
To: Al Viro
Cc: Jeff Layton, Steve French, Shyam Prasad N, Rohith Surabattula,
linux-cachefs, linux-cifs, linux-fsdevel, dhowells,
Christoph Hellwig, Matthew Wilcox, Jeff Layton, Logan Gunthorpe,
linux-fsdevel, linux-kernel
Provide a function for filling in a scatterlist from the list of pages
contained in an iterator.
If the iterator is UBUF- or IOBUF-type, the pages have a ref (WRITE) or a
pin (READ) taken on them.
If the iterator is BVEC-, KVEC- or XARRAY-type, no ref is taken on the
pages and it is left to the caller to manage their lifetime. It cannot be
assumed that a ref can be validly taken, particularly in the case of a KVEC
iterator.
Changes:
========
ver #3)
- Switch to using EXPORT_SYMBOL_GPL to prevent indirect 3rd-party access
to get/pin_user_pages_fast()[1].
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <sfrench@samba.org>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: linux-cachefs@redhat.com
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
Link: https://lore.kernel.org/r/Y3zFzdWnWlEJ8X8/@infradead.org/ [1]
Link: https://lore.kernel.org/r/166697255985.61150.16489950598033809487.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166732027275.3186319.5186488812166611598.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166869691313.3723671.10714823767342163891.stgit@warthog.procyon.org.uk/ # rfc
---
fs/netfs/iterator.c | 268 +++++++++++++++++++++++++++++++++++++++++++++++++
include/linux/netfs.h | 4 +
mm/vmalloc.c | 1
3 files changed, 273 insertions(+)
diff --git a/fs/netfs/iterator.c b/fs/netfs/iterator.c
index 82a691b233ef..327694c3ad3b 100644
--- a/fs/netfs/iterator.c
+++ b/fs/netfs/iterator.c
@@ -7,7 +7,9 @@
#include <linux/export.h>
#include <linux/slab.h>
+#include <linux/mm.h>
#include <linux/uio.h>
+#include <linux/scatterlist.h>
#include <linux/netfs.h>
#include "internal.h"
@@ -97,3 +99,269 @@ ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
return npages;
}
EXPORT_SYMBOL_GPL(netfs_extract_user_iter);
+
+/*
+ * Extract as list of up to sg_max pages from UBUF- or IOVEC-class iterators,
+ * pin or get refs on them appropriate and add them to the scatterlist.
+ */
+static ssize_t netfs_extract_user_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct page **pages;
+ unsigned int npages;
+ ssize_t ret = 0, res;
+ size_t len, off;
+
+ *cleanup_mode = 0;
+
+ /* We decant the page list into the tail of the scatterlist */
+ pages = (void *)sgtable->sgl + array_size(sg_max, sizeof(struct scatterlist));
+ pages -= sg_max;
+
+ do {
+ res = iov_iter_extract_pages(iter, &pages, maxsize, sg_max, &off,
+ cleanup_mode);
+ if (res < 0)
+ goto failed;
+
+ len = res;
+ maxsize -= len;
+ ret += len;
+ npages = DIV_ROUND_UP(off + len, PAGE_SIZE);
+ sg_max -= npages;
+
+ for (; npages < 0; npages--) {
+ struct page *page = *pages;
+ size_t seg = min_t(size_t, PAGE_SIZE - off, len);
+
+ *pages++ = NULL;
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ len -= seg;
+ off = 0;
+ }
+ } while (maxsize > 0 && sg_max > 0);
+
+ return ret;
+
+failed:
+ while (sgtable->nents > sgtable->orig_nents)
+ put_page(sg_page(&sgtable->sgl[--sgtable->nents]));
+ return res;
+}
+
+/*
+ * Extract up to sg_max pages from a BVEC-type iterator and add them to the
+ * scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_bvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ const struct bio_vec *bv = iter->bvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ size_t off, len;
+
+ len = bv[i].bv_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ len = min_t(size_t, maxsize, len - start);
+ off = bv[i].bv_offset + start;
+
+ sg_set_page(sg, bv[i].bv_page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ ret += len;
+ maxsize -= len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ *cleanup_mode = 0;
+ return ret;
+}
+
+/*
+ * Extract up to sg_max pages from a KVEC-type iterator and add them to the
+ * scatterlist. This can deal with vmalloc'd buffers as well as kmalloc'd or
+ * static buffers. The pages are not pinned.
+ */
+static ssize_t netfs_extract_kvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ const struct kvec *kv = iter->kvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ struct page *page;
+ unsigned long kaddr;
+ size_t off, len, seg;
+
+ len = kv[i].iov_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ kaddr = (unsigned long)kv[i].iov_base + start;
+ off = kaddr & ~PAGE_MASK;
+ len = min_t(size_t, maxsize, len - start);
+ kaddr &= PAGE_MASK;
+
+ maxsize -= len;
+ ret += len;
+ do {
+ seg = min_t(size_t, len, PAGE_SIZE - off);
+ if (is_vmalloc_or_module_addr((void *)kaddr))
+ page = vmalloc_to_page((void *)kaddr);
+ else
+ page = virt_to_page(kaddr);
+
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ len -= seg;
+ kaddr += PAGE_SIZE;
+ off = 0;
+ } while (len > 0 && sg_max > 0);
+
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ *cleanup_mode = 0;
+ return ret;
+}
+
+/*
+ * Extract up to sg_max folios from an XARRAY-type iterator and add them to
+ * the scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_xarray_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct xarray *xa = iter->xarray;
+ struct folio *folio;
+ loff_t start = iter->xarray_start + iter->iov_offset;
+ pgoff_t index = start / PAGE_SIZE;
+ ssize_t ret = 0;
+ size_t offset, len;
+ XA_STATE(xas, xa, index);
+
+ rcu_read_lock();
+
+ xas_for_each(&xas, folio, ULONG_MAX) {
+ if (xas_retry(&xas, folio))
+ continue;
+ if (WARN_ON(xa_is_value(folio)))
+ break;
+ if (WARN_ON(folio_test_hugetlb(folio)))
+ break;
+
+ offset = offset_in_folio(folio, start);
+ len = min_t(size_t, maxsize, folio_size(folio) - offset);
+
+ sg_set_page(sg, folio_page(folio, 0), len, offset);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ maxsize -= len;
+ ret += len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ }
+
+ rcu_read_unlock();
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ *cleanup_mode = 0;
+ return ret;
+}
+
+/**
+ * netfs_extract_iter_to_sg - Extract pages from an iterator and add ot an sglist
+ * @iter: The iterator to extract from
+ * @maxsize: The amount of iterator to copy
+ * @sgtable: The scatterlist table to fill in
+ * @sg_max: Maximum number of elements in @sgtable that may be filled
+ * @cleanup_mode: Where to return the cleanup mode
+ *
+ * Extract the page fragments from the given amount of the source iterator and
+ * add them to a scatterlist that refers to all of those bits, to a maximum
+ * addition of @sg_max elements.
+ *
+ * The pages referred to by UBUF- and IOVEC-type iterators are extracted and
+ * pinned; BVEC-, KVEC- and XARRAY-type are extracted but aren't pinned; PIPE-
+ * and DISCARD-type are not supported.
+ *
+ * No end mark is placed on the scatterlist; that's left to the caller.
+ *
+ * If successul, @sgtable->nents is updated to include the number of elements
+ * added and the number of bytes added is returned. @sgtable->orig_nents is
+ * left unaltered.
+ */
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t maxsize,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ if (maxsize == 0)
+ return 0;
+
+ switch (iov_iter_type(iter)) {
+ case ITER_UBUF:
+ case ITER_IOVEC:
+ return netfs_extract_user_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ case ITER_BVEC:
+ return netfs_extract_bvec_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ case ITER_KVEC:
+ return netfs_extract_kvec_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ case ITER_XARRAY:
+ return netfs_extract_xarray_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ default:
+ pr_err("netfs_extract_iter_to_sg(%u) unsupported\n",
+ iov_iter_type(iter));
+ WARN_ON_ONCE(1);
+ return -EIO;
+ }
+}
+EXPORT_SYMBOL_GPL(netfs_extract_iter_to_sg);
diff --git a/include/linux/netfs.h b/include/linux/netfs.h
index eed84474e4cf..e1b225a17388 100644
--- a/include/linux/netfs.h
+++ b/include/linux/netfs.h
@@ -291,6 +291,10 @@ void netfs_stats_show(struct seq_file *);
ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
struct iov_iter *new,
unsigned int *cleanup_mode);
+struct sg_table;
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t len,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int *cleanup_mode);
/**
* netfs_inode - Get the netfs inode context from the inode
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ccaa461998f3..b13ac142685b 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -653,6 +653,7 @@ int is_vmalloc_or_module_addr(const void *x)
#endif
return is_vmalloc_addr(x);
}
+EXPORT_SYMBOL_GPL(is_vmalloc_or_module_addr);
/*
* Walk a vmap address to the struct page it maps. Huge vmap mappings will
^ permalink raw reply related [relevance 4%]
* Re: [PATCH v8 3/3] riscv: mm: support Svnapot in huge vmap
2022-11-28 2:27 12% ` [PATCH v8 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
@ 2022-11-29 13:18 6% ` Andrew Jones
0 siblings, 0 replies; 200+ results
From: Andrew Jones @ 2022-11-29 13:18 UTC (permalink / raw)
To: panqinglin2020; +Cc: palmer, linux-riscv, jeff, xuyinan, conor, alex
On Mon, Nov 28, 2022 at 10:27:19AM +0800, panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
> implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
> for Svnapot to support huge vmap about napot size.
>
> It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
> can be tested by changing test_vmalloc module to use vmalloc_huge in it,
> and probe this module to run tests.
It'd be nice to get your changes to test_vmalloc posted where the switch
between vmalloc and vmalloc_huge is controlled by a module parameter.
>
> Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
> index 48da5371f1e9..99b89ab445e2 100644
> --- a/arch/riscv/include/asm/vmalloc.h
> +++ b/arch/riscv/include/asm/vmalloc.h
> @@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
> return true;
> }
>
> -#endif
> +#ifdef CONFIG_RISCV_ISA_SVNAPOT
> +#include <linux/pgtable.h>
>
> +#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
> +static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
> + u64 pfn, unsigned int max_page_shift)
> +{
> + unsigned long size, order;
> + unsigned long map_size = PAGE_SIZE;
> +
> + if (!has_svnapot())
> + return map_size;
> +
> + for_each_napot_order_rev(order) {
> + if (napot_cont_shift(order) > max_page_shift)
> + continue;
> +
> + size = napot_cont_size(order);
> + if (end - addr < size)
> + continue;
> +
> + if (!IS_ALIGNED(addr, size))
> + continue;
> +
> + if (!IS_ALIGNED(PFN_PHYS(pfn), size))
> + continue;
> +
> + map_size = size;
> + break;
> + }
> +
> + return map_size;
> +}
> +
> +#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
> +static inline int arch_vmap_pte_supported_shift(unsigned long size)
> +{
> + int shift = PAGE_SHIFT;
> + unsigned long order;
> +
> + if (!has_svnapot())
> + return shift;
> +
> + WARN_ON_ONCE(size >= PMD_SIZE);
> +
> + for_each_napot_order_rev(order) {
> + if (napot_cont_size(order) > size)
> + continue;
> +
> + if (size & napot_cont_mask(order))
> + continue;
> +
> + shift = napot_cont_shift(order);
> + break;
> + }
> +
> + return shift;
> +}
> +
> +#endif /* CONFIG_RISCV_ISA_SVNAPOT */
> +#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
> #endif /* _ASM_RISCV_VMALLOC_H */
> --
> 2.37.4
>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Thanks,
drew
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* [PATCH v8 3/3] riscv: mm: support Svnapot in huge vmap
2022-11-28 2:27 6% panqinglin2020
@ 2022-11-28 2:27 12% ` panqinglin2020
2022-11-29 13:18 6% ` Andrew Jones
0 siblings, 1 reply; 200+ results
From: panqinglin2020 @ 2022-11-28 2:27 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones, alex, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
for Svnapot to support huge vmap about napot size.
It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
can be tested by changing test_vmalloc module to use vmalloc_huge in it,
and probe this module to run tests.
Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 48da5371f1e9..99b89ab445e2 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#endif
+#ifdef CONFIG_RISCV_ISA_SVNAPOT
+#include <linux/pgtable.h>
+#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
+static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
+ u64 pfn, unsigned int max_page_shift)
+{
+ unsigned long size, order;
+ unsigned long map_size = PAGE_SIZE;
+
+ if (!has_svnapot())
+ return map_size;
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_shift(order) > max_page_shift)
+ continue;
+
+ size = napot_cont_size(order);
+ if (end - addr < size)
+ continue;
+
+ if (!IS_ALIGNED(addr, size))
+ continue;
+
+ if (!IS_ALIGNED(PFN_PHYS(pfn), size))
+ continue;
+
+ map_size = size;
+ break;
+ }
+
+ return map_size;
+}
+
+#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
+static inline int arch_vmap_pte_supported_shift(unsigned long size)
+{
+ int shift = PAGE_SHIFT;
+ unsigned long order;
+
+ if (!has_svnapot())
+ return shift;
+
+ WARN_ON_ONCE(size >= PMD_SIZE);
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_size(order) > size)
+ continue;
+
+ if (size & napot_cont_mask(order))
+ continue;
+
+ shift = napot_cont_shift(order);
+ break;
+ }
+
+ return shift;
+}
+
+#endif /* CONFIG_RISCV_ISA_SVNAPOT */
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.37.4
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 12%]
* [PATCH v8 0/3] riscv, mm: detect svnapot cpu support at runtime
@ 2022-11-28 2:27 6% panqinglin2020
2022-11-28 2:27 12% ` [PATCH v8 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
0 siblings, 1 reply; 200+ results
From: panqinglin2020 @ 2022-11-28 2:27 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones, alex, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is on,
and people can set it off if they don't allow kernel to detect Svnapot
hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
- modify code according to @Conor and @Heiko
Changes in v6:
- use static key insead of alternative errata
Changes in v7:
- add napot_cont_order for possible more napot order in the future
- remove linear mapping related code from this patchset to another patch
- refactor hugetlb code for svnapot according to thanks @Andrew @Conor
- use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
- support svnapot in huge vmap on newer for-next branch
Changes in v8:
- fix compilation errors in rv32_defconfig
- insert some lines of whitespace according to @Conor's suggestion
Qinglin Pan (3):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 16 +-
arch/riscv/include/asm/hugetlb.h | 34 +++-
arch/riscv/include/asm/hwcap.h | 4 +
arch/riscv/include/asm/page.h | 5 -
arch/riscv/include/asm/pgtable-64.h | 34 ++++
arch/riscv/include/asm/pgtable.h | 39 +++-
arch/riscv/include/asm/vmalloc.h | 61 +++++-
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 1 +
arch/riscv/mm/hugetlbpage.c | 294 ++++++++++++++++++++++++++++
10 files changed, 480 insertions(+), 9 deletions(-)
--
2.37.4
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* [PATCH v8 0/3] riscv, mm: detect svnapot cpu support at runtime
@ 2022-11-28 2:26 6% panqinglin2020
0 siblings, 0 replies; 200+ results
From: panqinglin2020 @ 2022-11-28 2:26 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones, alex, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is on,
and people can set it off if they don't allow kernel to detect Svnapot
hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
- modify code according to @Conor and @Heiko
Changes in v6:
- use static key insead of alternative errata
Changes in v7:
- add napot_cont_order for possible more napot order in the future
- remove linear mapping related code from this patchset to another patch
- refactor hugetlb code for svnapot according to thanks @Andrew @Conor
- use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
- support svnapot in huge vmap on newer for-next branch
Changes in v8:
- fix compilation errors in rv32_defconfig
- insert some lines of whitespace according to @Conor's suggestion
Qinglin Pan (3):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 16 +-
arch/riscv/include/asm/hugetlb.h | 34 +++-
arch/riscv/include/asm/hwcap.h | 4 +
arch/riscv/include/asm/page.h | 5 -
arch/riscv/include/asm/pgtable-64.h | 34 ++++
arch/riscv/include/asm/pgtable.h | 39 +++-
arch/riscv/include/asm/vmalloc.h | 61 +++++-
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 1 +
arch/riscv/mm/hugetlbpage.c | 294 ++++++++++++++++++++++++++++
10 files changed, 480 insertions(+), 9 deletions(-)
--
2.37.4
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* [PATCH v2 4/4] netfs: Add a function to extract an iterator into a scatterlist
@ 2022-11-23 13:10 4% ` David Howells
0 siblings, 0 replies; 200+ results
From: David Howells @ 2022-11-23 13:10 UTC (permalink / raw)
To: Al Viro
Cc: Jeff Layton, Steve French, Shyam Prasad N, Rohith Surabattula,
linux-cachefs, linux-cifs, linux-fsdevel, dhowells,
Christoph Hellwig, Matthew Wilcox, Jeff Layton, linux-fsdevel,
linux-kernel
Provide a function for filling in a scatterlist from the list of pages
contained in an iterator.
If the iterator is UBUF- or IOBUF-type, the pages have a ref (WRITE) or a
pin (READ) taken on them.
If the iterator is BVEC-, KVEC- or XARRAY-type, no ref is taken on the
pages and it is left to the caller to manage their lifetime. It cannot be
assumed that a ref can be validly taken, particularly in the case of a KVEC
iterator.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <sfrench@samba.org>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: linux-cachefs@redhat.com
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
Link: https://lore.kernel.org/r/166697255985.61150.16489950598033809487.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166732027275.3186319.5186488812166611598.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/166869691313.3723671.10714823767342163891.stgit@warthog.procyon.org.uk/ # rfc
---
fs/netfs/iterator.c | 268 +++++++++++++++++++++++++++++++++++++++++++++++++
include/linux/netfs.h | 4 +
mm/vmalloc.c | 1
3 files changed, 273 insertions(+)
diff --git a/fs/netfs/iterator.c b/fs/netfs/iterator.c
index 0de16c5bd232..82aa19ecdc03 100644
--- a/fs/netfs/iterator.c
+++ b/fs/netfs/iterator.c
@@ -7,7 +7,9 @@
#include <linux/export.h>
#include <linux/slab.h>
+#include <linux/mm.h>
#include <linux/uio.h>
+#include <linux/scatterlist.h>
#include <linux/netfs.h>
#include "internal.h"
@@ -97,3 +99,269 @@ ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
return npages;
}
EXPORT_SYMBOL(netfs_extract_user_iter);
+
+/*
+ * Extract as list of up to sg_max pages from UBUF- or IOVEC-class iterators,
+ * pin or get refs on them appropriate and add them to the scatterlist.
+ */
+static ssize_t netfs_extract_user_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct page **pages;
+ unsigned int npages;
+ ssize_t ret = 0, res;
+ size_t len, off;
+
+ *cleanup_mode = 0;
+
+ /* We decant the page list into the tail of the scatterlist */
+ pages = (void *)sgtable->sgl + array_size(sg_max, sizeof(struct scatterlist));
+ pages -= sg_max;
+
+ do {
+ res = iov_iter_extract_pages(iter, &pages, maxsize, sg_max, &off,
+ cleanup_mode);
+ if (res < 0)
+ goto failed;
+
+ len = res;
+ maxsize -= len;
+ ret += len;
+ npages = DIV_ROUND_UP(off + len, PAGE_SIZE);
+ sg_max -= npages;
+
+ for (; npages < 0; npages--) {
+ struct page *page = *pages;
+ size_t seg = min_t(size_t, PAGE_SIZE - off, len);
+
+ *pages++ = NULL;
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ len -= seg;
+ off = 0;
+ }
+ } while (maxsize > 0 && sg_max > 0);
+
+ return ret;
+
+failed:
+ while (sgtable->nents > sgtable->orig_nents)
+ put_page(sg_page(&sgtable->sgl[--sgtable->nents]));
+ return res;
+}
+
+/*
+ * Extract up to sg_max pages from a BVEC-type iterator and add them to the
+ * scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_bvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ const struct bio_vec *bv = iter->bvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ size_t off, len;
+
+ len = bv[i].bv_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ len = min_t(size_t, maxsize, len - start);
+ off = bv[i].bv_offset + start;
+
+ sg_set_page(sg, bv[i].bv_page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ ret += len;
+ maxsize -= len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ *cleanup_mode = 0;
+ return ret;
+}
+
+/*
+ * Extract up to sg_max pages from a KVEC-type iterator and add them to the
+ * scatterlist. This can deal with vmalloc'd buffers as well as kmalloc'd or
+ * static buffers. The pages are not pinned.
+ */
+static ssize_t netfs_extract_kvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ const struct kvec *kv = iter->kvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ struct page *page;
+ unsigned long kaddr;
+ size_t off, len, seg;
+
+ len = kv[i].iov_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ kaddr = (unsigned long)kv[i].iov_base + start;
+ off = kaddr & ~PAGE_MASK;
+ len = min_t(size_t, maxsize, len - start);
+ kaddr &= PAGE_MASK;
+
+ maxsize -= len;
+ ret += len;
+ do {
+ seg = min_t(size_t, len, PAGE_SIZE - off);
+ if (is_vmalloc_or_module_addr((void *)kaddr))
+ page = vmalloc_to_page((void *)kaddr);
+ else
+ page = virt_to_page(kaddr);
+
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ len -= seg;
+ kaddr += PAGE_SIZE;
+ off = 0;
+ } while (len > 0 && sg_max > 0);
+
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ *cleanup_mode = 0;
+ return ret;
+}
+
+/*
+ * Extract up to sg_max folios from an XARRAY-type iterator and add them to
+ * the scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_xarray_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct xarray *xa = iter->xarray;
+ struct folio *folio;
+ loff_t start = iter->xarray_start + iter->iov_offset;
+ pgoff_t index = start / PAGE_SIZE;
+ ssize_t ret = 0;
+ size_t offset, len;
+ XA_STATE(xas, xa, index);
+
+ rcu_read_lock();
+
+ xas_for_each(&xas, folio, ULONG_MAX) {
+ if (xas_retry(&xas, folio))
+ continue;
+ if (WARN_ON(xa_is_value(folio)))
+ break;
+ if (WARN_ON(folio_test_hugetlb(folio)))
+ break;
+
+ offset = offset_in_folio(folio, start);
+ len = min_t(size_t, maxsize, folio_size(folio) - offset);
+
+ sg_set_page(sg, folio_page(folio, 0), len, offset);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ maxsize -= len;
+ ret += len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ }
+
+ rcu_read_unlock();
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ *cleanup_mode = 0;
+ return ret;
+}
+
+/**
+ * netfs_extract_iter_to_sg - Extract pages from an iterator and add ot an sglist
+ * @iter: The iterator to extract from
+ * @maxsize: The amount of iterator to copy
+ * @sgtable: The scatterlist table to fill in
+ * @sg_max: Maximum number of elements in @sgtable that may be filled
+ * @cleanup_mode: Where to return the cleanup mode
+ *
+ * Extract the page fragments from the given amount of the source iterator and
+ * add them to a scatterlist that refers to all of those bits, to a maximum
+ * addition of @sg_max elements.
+ *
+ * The pages referred to by UBUF- and IOVEC-type iterators are extracted and
+ * pinned; BVEC-, KVEC- and XARRAY-type are extracted but aren't pinned; PIPE-
+ * and DISCARD-type are not supported.
+ *
+ * No end mark is placed on the scatterlist; that's left to the caller.
+ *
+ * If successul, @sgtable->nents is updated to include the number of elements
+ * added and the number of bytes added is returned. @sgtable->orig_nents is
+ * left unaltered.
+ */
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t maxsize,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int *cleanup_mode)
+{
+ if (maxsize == 0)
+ return 0;
+
+ switch (iov_iter_type(iter)) {
+ case ITER_UBUF:
+ case ITER_IOVEC:
+ return netfs_extract_user_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ case ITER_BVEC:
+ return netfs_extract_bvec_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ case ITER_KVEC:
+ return netfs_extract_kvec_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ case ITER_XARRAY:
+ return netfs_extract_xarray_to_sg(iter, maxsize, sgtable, sg_max,
+ cleanup_mode);
+ default:
+ pr_err("netfs_extract_iter_to_sg(%u) unsupported\n",
+ iov_iter_type(iter));
+ WARN_ON_ONCE(1);
+ return -EIO;
+ }
+}
+EXPORT_SYMBOL(netfs_extract_iter_to_sg);
diff --git a/include/linux/netfs.h b/include/linux/netfs.h
index eed84474e4cf..e1b225a17388 100644
--- a/include/linux/netfs.h
+++ b/include/linux/netfs.h
@@ -291,6 +291,10 @@ void netfs_stats_show(struct seq_file *);
ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
struct iov_iter *new,
unsigned int *cleanup_mode);
+struct sg_table;
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t len,
+ struct sg_table *sgtable, unsigned int sg_max,
+ unsigned int *cleanup_mode);
/**
* netfs_inode - Get the netfs inode context from the inode
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ccaa461998f3..b13ac142685b 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -653,6 +653,7 @@ int is_vmalloc_or_module_addr(const void *x)
#endif
return is_vmalloc_addr(x);
}
+EXPORT_SYMBOL_GPL(is_vmalloc_or_module_addr);
/*
* Walk a vmap address to the struct page it maps. Huge vmap mappings will
^ permalink raw reply related [relevance 4%]
* [PATCH v7 0/3] riscv, mm: detect svnapot cpu support at runtime
@ 2022-11-19 11:22 6% panqinglin2020
2022-11-19 11:22 12% ` [PATCH v7 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
0 siblings, 1 reply; 200+ results
From: panqinglin2020 @ 2022-11-19 11:22 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in hugetlb fs and huge vmap.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is on,
and people can set it off if they don't allow kernel to detect Svnapot
hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
- modify code according to @Conor and @Heiko
Changes in v6:
- use static key insead of alternative errata
Changes in v7:
- add napot_cont_order for possible more napot order in the future
- remove linear mapping related code from this patchset to another patch
- refactor hugetlb code for svnapot according to thanks @Andrew @Conor
- use tools/testing/selftests/vm/map_hugetlb as hugetlb testing program
- support svnapot in huge vmap on newer for-next branch
Qinglin Pan (3):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 16 +-
arch/riscv/include/asm/hugetlb.h | 34 +++-
arch/riscv/include/asm/hwcap.h | 4 +
arch/riscv/include/asm/page.h | 5 -
arch/riscv/include/asm/pgtable-64.h | 34 ++++
arch/riscv/include/asm/pgtable.h | 32 +++-
arch/riscv/include/asm/vmalloc.h | 61 +++++-
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 1 +
arch/riscv/mm/hugetlbpage.c | 278 +++++++++++++++++++++++++++-
10 files changed, 456 insertions(+), 10 deletions(-)
--
2.37.4
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* [PATCH v7 3/3] riscv: mm: support Svnapot in huge vmap
2022-11-19 11:22 6% [PATCH v7 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
@ 2022-11-19 11:22 12% ` panqinglin2020
0 siblings, 0 replies; 200+ results
From: panqinglin2020 @ 2022-11-19 11:22 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
As HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC is supported, we can
implement arch_vmap_pte_range_map_size and arch_vmap_pte_supported_shift
for Svnapot to support huge vmap about napot size.
It can be tested by huge vmap used in pci driver. Huge vmalloc with svnapot
can be tested by changing test_vmalloc module to use vmalloc_huge in it,
and probe this module to run tests.
Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 48da5371f1e9..99b89ab445e2 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -17,6 +17,65 @@ static inline bool arch_vmap_pmd_supported(pgprot_t prot)
return true;
}
-#endif
+#ifdef CONFIG_RISCV_ISA_SVNAPOT
+#include <linux/pgtable.h>
+#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
+static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
+ u64 pfn, unsigned int max_page_shift)
+{
+ unsigned long size, order;
+ unsigned long map_size = PAGE_SIZE;
+
+ if (!has_svnapot())
+ return map_size;
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_shift(order) > max_page_shift)
+ continue;
+
+ size = napot_cont_size(order);
+ if (end - addr < size)
+ continue;
+
+ if (!IS_ALIGNED(addr, size))
+ continue;
+
+ if (!IS_ALIGNED(PFN_PHYS(pfn), size))
+ continue;
+
+ map_size = size;
+ break;
+ }
+
+ return map_size;
+}
+
+#define arch_vmap_pte_supported_shift arch_vmap_pte_supported_shift
+static inline int arch_vmap_pte_supported_shift(unsigned long size)
+{
+ int shift = PAGE_SHIFT;
+ unsigned long order;
+
+ if (!has_svnapot())
+ return shift;
+
+ WARN_ON_ONCE(size >= PMD_SIZE);
+
+ for_each_napot_order_rev(order) {
+ if (napot_cont_size(order) > size)
+ continue;
+
+ if (size & napot_cont_mask(order))
+ continue;
+
+ shift = napot_cont_shift(order);
+ break;
+ }
+
+ return shift;
+}
+
+#endif /* CONFIG_RISCV_ISA_SVNAPOT */
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.37.4
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 12%]
* [PATCH v5 1/5] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
@ 2022-11-18 0:21 5% Rohan McLure
0 siblings, 0 replies; 200+ results
From: Rohan McLure @ 2022-11-18 0:21 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Rohan McLure
Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
latter is the name given to checking that a higher-level entry in
multi-level paging contains a page translation entry (pte) throughout
all other archs.
A future patch will implement p{u,m,4}_leaf stubs on all platforms so
that they may be referenced in generic code.
Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
---
V4: New patch
V5: Previously replaced stub definition for *_is_leaf with *_leaf. Do
that in a later patch
---
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 ++++++------
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 +++++++-------
arch/powerpc/mm/pgtable.c | 6 +++---
arch/powerpc/mm/pgtable_64.c | 6 +++---
arch/powerpc/xmon/xmon.c | 6 +++---
5 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 5d5e12f3bf86..d29f8d1d97a6 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -497,7 +497,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -526,7 +526,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -629,12 +629,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -652,7 +652,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -703,7 +703,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index cac727b01799..8ac27e031ff4 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -205,14 +205,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -762,7 +762,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (!IS_ALIGNED(addr, PMD_SIZE) ||
!IS_ALIGNED(next, PMD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -792,7 +792,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -825,7 +825,7 @@ static void __meminit remove_pagetable(unsigned long start, unsigned long end)
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1088,7 +1088,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1135,7 +1135,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index cb2dcdb18f8e..35b9677b9553 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -387,7 +387,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -409,7 +409,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -448,7 +448,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 5ac1fd30341b..0604c80dae66 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index f51c882bf902..705c230dd4f5 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
--
2.37.2
^ permalink raw reply related [relevance 5%]
* [RFC PATCH 4/4] netfs: Add a function to extract an iterator into a scatterlist
@ 2022-11-17 14:55 5% ` David Howells
0 siblings, 0 replies; 200+ results
From: David Howells @ 2022-11-17 14:55 UTC (permalink / raw)
To: Al Viro
Cc: Jeff Layton, Steve French, Shyam Prasad N, Rohith Surabattula,
linux-cachefs, linux-cifs, linux-fsdevel, dhowells,
Christoph Hellwig, Matthew Wilcox, Jeff Layton, linux-fsdevel,
linux-kernel
Provide a function for filling in a scatterlist from the list of pages
contained in an iterator.
If the iterator is UBUF- or IOBUF-type, the pages have a ref taken on them.
If the iterator is BVEC-, KVEC- or XARRAY-type, no ref is taken on the
pages and it is left to the caller to manage their lifetime. It cannot be
assumed that a ref can be validly taken, particularly in the case of a KVEC
iterator.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <sfrench@samba.org>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: linux-cachefs@redhat.com
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
---
fs/netfs/iterator.c | 252 +++++++++++++++++++++++++++++++++++++++++++++++++
include/linux/netfs.h | 3 +
mm/vmalloc.c | 1
3 files changed, 256 insertions(+)
diff --git a/fs/netfs/iterator.c b/fs/netfs/iterator.c
index c11d05a66a4a..62485416cc3d 100644
--- a/fs/netfs/iterator.c
+++ b/fs/netfs/iterator.c
@@ -7,7 +7,9 @@
#include <linux/export.h>
#include <linux/slab.h>
+#include <linux/mm.h>
#include <linux/uio.h>
+#include <linux/scatterlist.h>
#include <linux/netfs.h>
#include "internal.h"
@@ -92,3 +94,253 @@ ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
return npages;
}
EXPORT_SYMBOL(netfs_extract_user_iter);
+
+/*
+ * Extract and pin up to sg_max pages from UBUF- or IOVEC-class iterators and
+ * add them to the scatterlist.
+ */
+static ssize_t netfs_extract_user_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct page **pages;
+ unsigned int npages;
+ ssize_t ret = 0, res;
+ size_t len, off;
+
+ /* We decant the page list into the tail of the scatterlist */
+ pages = (void *)sgtable->sgl + array_size(sg_max, sizeof(struct scatterlist));
+ pages -= sg_max;
+
+ do {
+ res = iov_iter_get_pages2(iter, pages, maxsize, sg_max, &off);
+ if (res < 0)
+ goto failed;
+
+ len = res;
+ maxsize -= len;
+ ret += len;
+ npages = DIV_ROUND_UP(off + len, PAGE_SIZE);
+ sg_max -= npages;
+
+ for (; npages < 0; npages--) {
+ struct page *page = *pages;
+ size_t seg = min_t(size_t, PAGE_SIZE - off, len);
+
+ *pages++ = NULL;
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ len -= seg;
+ off = 0;
+ }
+ } while (maxsize > 0 && sg_max > 0);
+
+ return ret;
+
+failed:
+ while (sgtable->nents > sgtable->orig_nents)
+ put_page(sg_page(&sgtable->sgl[--sgtable->nents]));
+ return res;
+}
+
+/*
+ * Extract up to sg_max pages from a BVEC-type iterator and add them to the
+ * scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_bvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max)
+{
+ const struct bio_vec *bv = iter->bvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ size_t off, len;
+
+ len = bv[i].bv_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ len = min_t(size_t, maxsize, len - start);
+ off = bv[i].bv_offset + start;
+
+ sg_set_page(sg, bv[i].bv_page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ ret += len;
+ maxsize -= len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max pages from a KVEC-type iterator and add them to the
+ * scatterlist. This can deal with vmalloc'd buffers as well as kmalloc'd or
+ * static buffers. The pages are not pinned.
+ */
+static ssize_t netfs_extract_kvec_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max)
+{
+ const struct kvec *kv = iter->kvec;
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ unsigned long start = iter->iov_offset;
+ unsigned int i;
+ ssize_t ret = 0;
+
+ for (i = 0; i < iter->nr_segs; i++) {
+ struct page *page;
+ unsigned long kaddr;
+ size_t off, len, seg;
+
+ len = kv[i].iov_len;
+ if (start >= len) {
+ start -= len;
+ continue;
+ }
+
+ kaddr = (unsigned long)kv[i].iov_base + start;
+ off = kaddr & ~PAGE_MASK;
+ len = min_t(size_t, maxsize, len - start);
+ kaddr &= PAGE_MASK;
+
+ maxsize -= len;
+ ret += len;
+ do {
+ seg = min_t(size_t, len, PAGE_SIZE - off);
+ if (is_vmalloc_or_module_addr((void *)kaddr))
+ page = vmalloc_to_page((void *)kaddr);
+ else
+ page = virt_to_page(kaddr);
+
+ sg_set_page(sg, page, len, off);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ len -= seg;
+ kaddr += PAGE_SIZE;
+ off = 0;
+ } while (len > 0 && sg_max > 0);
+
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ start = 0;
+ }
+
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/*
+ * Extract up to sg_max folios from an XARRAY-type iterator and add them to
+ * the scatterlist. The pages are not pinned.
+ */
+static ssize_t netfs_extract_xarray_to_sg(struct iov_iter *iter,
+ ssize_t maxsize,
+ struct sg_table *sgtable,
+ unsigned int sg_max)
+{
+ struct scatterlist *sg = sgtable->sgl + sgtable->nents;
+ struct xarray *xa = iter->xarray;
+ struct folio *folio;
+ loff_t start = iter->xarray_start + iter->iov_offset;
+ pgoff_t index = start / PAGE_SIZE;
+ ssize_t ret = 0;
+ size_t offset, len;
+ XA_STATE(xas, xa, index);
+
+ rcu_read_lock();
+
+ xas_for_each(&xas, folio, ULONG_MAX) {
+ if (xas_retry(&xas, folio))
+ continue;
+ if (WARN_ON(xa_is_value(folio)))
+ break;
+ if (WARN_ON(folio_test_hugetlb(folio)))
+ break;
+
+ offset = offset_in_folio(folio, start);
+ len = min_t(size_t, maxsize, folio_size(folio) - offset);
+
+ sg_set_page(sg, folio_page(folio, 0), len, offset);
+ sgtable->nents++;
+ sg++;
+ sg_max--;
+
+ maxsize -= len;
+ ret += len;
+ if (maxsize <= 0 || sg_max == 0)
+ break;
+ }
+
+ rcu_read_unlock();
+ if (ret > 0)
+ iov_iter_advance(iter, ret);
+ return ret;
+}
+
+/**
+ * netfs_extract_iter_to_sg - Extract pages from an iterator and add ot an sglist
+ * @iter: The iterator to extract from
+ * @maxsize: The amount of iterator to copy
+ * @sgtable: The scatterlist table to fill in
+ * @sg_max: Maximum number of elements in @sgtable that may be filled
+ *
+ * Extract the page fragments from the given amount of the source iterator and
+ * add them to a scatterlist that refers to all of those bits, to a maximum
+ * addition of @sg_max elements.
+ *
+ * The pages referred to by UBUF- and IOVEC-type iterators are extracted and
+ * pinned; BVEC-, KVEC- and XARRAY-type are extracted but aren't pinned; PIPE-
+ * and DISCARD-type are not supported.
+ *
+ * No end mark is placed on the scatterlist; that's left to the caller.
+ *
+ * If successul, @sgtable->nents is updated to include the number of elements
+ * added and the number of bytes added is returned. @sgtable->orig_nents is
+ * left unaltered.
+ */
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t maxsize,
+ struct sg_table *sgtable, unsigned int sg_max)
+{
+ if (maxsize == 0)
+ return 0;
+
+ switch (iov_iter_type(iter)) {
+ case ITER_UBUF:
+ case ITER_IOVEC:
+ return netfs_extract_user_to_sg(iter, maxsize, sgtable, sg_max);
+ case ITER_BVEC:
+ return netfs_extract_bvec_to_sg(iter, maxsize, sgtable, sg_max);
+ case ITER_KVEC:
+ return netfs_extract_kvec_to_sg(iter, maxsize, sgtable, sg_max);
+ case ITER_XARRAY:
+ return netfs_extract_xarray_to_sg(iter, maxsize, sgtable, sg_max);
+ default:
+ pr_err("netfs_extract_iter_to_sg(%u) unsupported\n",
+ iov_iter_type(iter));
+ WARN_ON_ONCE(1);
+ return -EIO;
+ }
+}
+EXPORT_SYMBOL(netfs_extract_iter_to_sg);
diff --git a/include/linux/netfs.h b/include/linux/netfs.h
index 5f6ad0246946..21771dd594a1 100644
--- a/include/linux/netfs.h
+++ b/include/linux/netfs.h
@@ -290,6 +290,9 @@ void netfs_put_subrequest(struct netfs_io_subrequest *subreq,
void netfs_stats_show(struct seq_file *);
ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
struct iov_iter *new);
+struct sg_table;
+ssize_t netfs_extract_iter_to_sg(struct iov_iter *iter, size_t len,
+ struct sg_table *sgtable, unsigned int sg_max);
/**
* netfs_inode - Get the netfs inode context from the inode
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ccaa461998f3..b13ac142685b 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -653,6 +653,7 @@ int is_vmalloc_or_module_addr(const void *x)
#endif
return is_vmalloc_addr(x);
}
+EXPORT_SYMBOL_GPL(is_vmalloc_or_module_addr);
/*
* Walk a vmap address to the struct page it maps. Huge vmap mappings will
^ permalink raw reply related [relevance 5%]
* Re: [PATCH 1/4] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
2022-11-06 22:49 4% [PATCH 1/4] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf Rohan McLure
2022-11-07 1:07 0% ` Rohan McLure
@ 2022-11-07 11:07 0% ` Christophe Leroy
1 sibling, 0 replies; 200+ results
From: Christophe Leroy @ 2022-11-07 11:07 UTC (permalink / raw)
To: Rohan McLure, linuxppc-dev
Le 06/11/2022 à 23:49, Rohan McLure a écrit :
> Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
> latter is the name given to checking that a higher-level entry in
> multi-level paging contains a page translation entry (pte). This commit
> allows for p{u,m,4}d_leaf to be used on all powerpc platforms.
>
> Prior to this commit, the two names have both been present in the
> kernel, having as far as I can tell the same exact purpose. While the
> 'is' in the title may better indicate that the macro/function is a
> boolean returning check, the former naming scheme is standard through
> all other architectures.
Would be easier to understand and review if you split in two patches:
1/ Replace all uses of p{u,m,4}d_is_leaf by p{u,m,4}_leaf
2/ Properly implement p{u,m,4}_leaf and remove p{u,m,4}d_is_leaf
>
> 32-bit systems import pgtable-nop4d.h which defines a default pud_leaf.
> Define pud_leaf preprocessor macro on both Book3E/S 32-bit to avoid
> including the default definition in asm/pgtable.h.
I think you should do it the other way round: Move it away from
asm/pgtable.h.
pud_leaf(), you only have to add a stub in asm/nohash/64/pgtable.h
pmd_leaf(), you have to add a stub in asm/nohash/pgtable.h and
asm/book3s/32/pgtable.h
I think doing like that would be cleaner.
Christophe
>
> Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
> ---
> V4: new patch.
> ---
> arch/powerpc/include/asm/book3s/32/pgtable.h | 2 +-
> arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++------
> arch/powerpc/include/asm/nohash/32/pgtable.h | 1 +
> arch/powerpc/include/asm/pgtable.h | 18 +++++++++---------
> arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 ++++++------
> arch/powerpc/mm/book3s64/radix_pgtable.c | 14 +++++++-------
> arch/powerpc/mm/pgtable.c | 6 +++---
> arch/powerpc/mm/pgtable_64.c | 6 +++---
> arch/powerpc/xmon/xmon.c | 6 +++---
> 9 files changed, 37 insertions(+), 38 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/32/pgtable.h b/arch/powerpc/include/asm/book3s/32/pgtable.h
> index 75823f39e042..f1b91ad8f3a5 100644
> --- a/arch/powerpc/include/asm/book3s/32/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/32/pgtable.h
> @@ -234,6 +234,7 @@ void unmap_kernel_page(unsigned long va);
> #define pte_clear(mm, addr, ptep) \
> do { pte_update(mm, addr, ptep, ~_PAGE_HASHPTE, 0, 0); } while (0)
>
> +#define pud_leaf pud_leaf
> #define pmd_none(pmd) (!pmd_val(pmd))
> #define pmd_bad(pmd) (pmd_val(pmd) & _PMD_BAD)
> #define pmd_present(pmd) (pmd_val(pmd) & _PMD_PRESENT_MASK)
> @@ -242,7 +243,6 @@ static inline void pmd_clear(pmd_t *pmdp)
> *pmdp = __pmd(0);
> }
>
> -
> /*
> * When flushing the tlb entry for a page, we also need to flush the hash
> * table entry. flush_hash_pages is assembler (for speed) in hashtable.S.
> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
> index c436d8422654..3f51de24e4fc 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
> @@ -1426,16 +1426,14 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
> /*
> * Like pmd_huge() and pmd_large(), but works regardless of config options
> */
> -#define pmd_is_leaf pmd_is_leaf
> -#define pmd_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> +#define pmd_leaf pmd_leaf
> +static inline bool pmd_leaf(pmd_t pmd)
> {
> return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
> }
>
> -#define pud_is_leaf pud_is_leaf
> -#define pud_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> +#define pud_leaf pud_leaf
> +static inline bool pud_leaf(pud_t pud)
> {
> return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
> }
> diff --git a/arch/powerpc/include/asm/nohash/32/pgtable.h b/arch/powerpc/include/asm/nohash/32/pgtable.h
> index 0d40b33184eb..04a3b0b128eb 100644
> --- a/arch/powerpc/include/asm/nohash/32/pgtable.h
> +++ b/arch/powerpc/include/asm/nohash/32/pgtable.h
> @@ -201,6 +201,7 @@ static inline pte_t pte_mkexec(pte_t pte)
> }
> #endif
>
> +#define pud_leaf pud_leaf
> #define pmd_none(pmd) (!pmd_val(pmd))
> #define pmd_bad(pmd) (pmd_val(pmd) & _PMD_BAD)
> #define pmd_present(pmd) (pmd_val(pmd) & _PMD_PRESENT_MASK)
> diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
> index 283f40d05a4d..8e7625a89922 100644
> --- a/arch/powerpc/include/asm/pgtable.h
> +++ b/arch/powerpc/include/asm/pgtable.h
> @@ -134,25 +134,25 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
> }
> #endif
>
> -#ifndef pmd_is_leaf
> -#define pmd_is_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> +#ifndef pmd_leaf
> +#define pmd_leaf pmd_leaf
> +static inline bool pmd_leaf(pmd_t pmd)
> {
> return false;
> }
> #endif
>
> -#ifndef pud_is_leaf
> -#define pud_is_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> +#ifndef pud_leaf
> +#define pud_leaf pud_leaf
> +static inline bool pud_leaf(pud_t pud)
> {
> return false;
> }
> #endif
>
> -#ifndef p4d_is_leaf
> -#define p4d_is_leaf p4d_is_leaf
> -static inline bool p4d_is_leaf(p4d_t p4d)
> +#ifndef p4d_leaf
> +#define p4d_leaf p4d_leaf
> +static inline bool p4d_leaf(p4d_t p4d)
> {
> return false;
> }
> diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> index 5d5e12f3bf86..d29f8d1d97a6 100644
> --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
> +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> @@ -497,7 +497,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
> for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
> if (!pmd_present(*p))
> continue;
> - if (pmd_is_leaf(*p)) {
> + if (pmd_leaf(*p)) {
> if (full) {
> pmd_clear(p);
> } else {
> @@ -526,7 +526,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
> for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
> if (!pud_present(*p))
> continue;
> - if (pud_is_leaf(*p)) {
> + if (pud_leaf(*p)) {
> pud_clear(p);
> } else {
> pmd_t *pmd;
> @@ -629,12 +629,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = pud_alloc_one(kvm->mm, gpa);
>
> pmd = NULL;
> - if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
> + if (pud && pud_present(*pud) && !pud_leaf(*pud))
> pmd = pmd_offset(pud, gpa);
> else if (level <= 1)
> new_pmd = kvmppc_pmd_alloc();
>
> - if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
> + if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
> new_ptep = kvmppc_pte_alloc();
>
> /* Check if we might have been invalidated; let the guest retry if so */
> @@ -652,7 +652,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = NULL;
> }
> pud = pud_offset(p4d, gpa);
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> unsigned long hgpa = gpa & PUD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> @@ -703,7 +703,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pmd = NULL;
> }
> pmd = pmd_offset(pud, gpa);
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> unsigned long lgpa = gpa & PMD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> index cac727b01799..8ac27e031ff4 100644
> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> @@ -205,14 +205,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
> pudp = pud_alloc(&init_mm, p4dp, idx);
> if (!pudp)
> continue;
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> ptep = (pte_t *)pudp;
> goto update_the_pte;
> }
> pmdp = pmd_alloc(&init_mm, pudp, idx);
> if (!pmdp)
> continue;
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> ptep = pmdp_ptep(pmdp);
> goto update_the_pte;
> }
> @@ -762,7 +762,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
> if (!pmd_present(*pmd))
> continue;
>
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> if (!IS_ALIGNED(addr, PMD_SIZE) ||
> !IS_ALIGNED(next, PMD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -792,7 +792,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
> if (!pud_present(*pud))
> continue;
>
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> if (!IS_ALIGNED(addr, PUD_SIZE) ||
> !IS_ALIGNED(next, PUD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -825,7 +825,7 @@ static void __meminit remove_pagetable(unsigned long start, unsigned long end)
> if (!p4d_present(*p4d))
> continue;
>
> - if (p4d_is_leaf(*p4d)) {
> + if (p4d_leaf(*p4d)) {
> if (!IS_ALIGNED(addr, P4D_SIZE) ||
> !IS_ALIGNED(next, P4D_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -1088,7 +1088,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>
> int pud_clear_huge(pud_t *pud)
> {
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> pud_clear(pud);
> return 1;
> }
> @@ -1135,7 +1135,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>
> int pmd_clear_huge(pmd_t *pmd)
> {
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> pmd_clear(pmd);
> return 1;
> }
> diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
> index cb2dcdb18f8e..35b9677b9553 100644
> --- a/arch/powerpc/mm/pgtable.c
> +++ b/arch/powerpc/mm/pgtable.c
> @@ -387,7 +387,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (p4d_none(p4d))
> return NULL;
>
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> ret_pte = (pte_t *)p4dp;
> goto out;
> }
> @@ -409,7 +409,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (pud_none(pud))
> return NULL;
>
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> ret_pte = (pte_t *)pudp;
> goto out;
> }
> @@ -448,7 +448,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> goto out;
> }
>
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> ret_pte = (pte_t *)pmdp;
> goto out;
> }
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index 5ac1fd30341b..0604c80dae66 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
> /* 4 level page table */
> struct page *p4d_page(p4d_t p4d)
> {
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!p4d_huge(p4d));
> return pte_page(p4d_pte(p4d));
> @@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
>
> struct page *pud_page(pud_t pud)
> {
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!pud_huge(pud));
> return pte_page(pud_pte(pud));
> @@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
> */
> struct page *pmd_page(pmd_t pmd)
> {
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> /*
> * vmalloc_to_page may be called on any vmap address (not only
> * vmalloc), and it uses pmd_page() etc., when huge vmap is
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index f51c882bf902..705c230dd4f5 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (p4d_is_leaf(*p4dp)) {
> + if (p4d_leaf(*p4dp)) {
> format_pte(p4dp, p4d_val(*p4dp));
> return;
> }
> @@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> format_pte(pudp, pud_val(*pudp));
> return;
> }
> @@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> format_pte(pmdp, pmd_val(*pmdp));
> return;
> }
^ permalink raw reply [relevance 0%]
* Re: [PATCH 1/4] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
2022-11-06 22:49 4% [PATCH 1/4] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf Rohan McLure
@ 2022-11-07 1:07 0% ` Rohan McLure
2022-11-07 11:07 0% ` Christophe Leroy
1 sibling, 0 replies; 200+ results
From: Rohan McLure @ 2022-11-07 1:07 UTC (permalink / raw)
To: linuxppc-dev
> On 7 Nov 2022, at 9:49 am, Rohan McLure <rmclure@linux.ibm.com> wrote:
>
> Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
> latter is the name given to checking that a higher-level entry in
> multi-level paging contains a page translation entry (pte). This commit
> allows for p{u,m,4}d_leaf to be used on all powerpc platforms.
>
> Prior to this commit, the two names have both been present in the
> kernel, having as far as I can tell the same exact purpose. While the
> 'is' in the title may better indicate that the macro/function is a
> boolean returning check, the former naming scheme is standard through
> all other architectures.
>
> 32-bit systems import pgtable-nop4d.h which defines a default pud_leaf.
> Define pud_leaf preprocessor macro on both Book3E/S 32-bit to avoid
> including the default definition in asm/pgtable.h.
>
> Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
> ---
> V4: new patch.
> ---
> arch/powerpc/include/asm/book3s/32/pgtable.h | 2 +-
> arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++------
> arch/powerpc/include/asm/nohash/32/pgtable.h | 1 +
> arch/powerpc/include/asm/pgtable.h | 18 +++++++++---------
> arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 ++++++------
> arch/powerpc/mm/book3s64/radix_pgtable.c | 14 +++++++-------
> arch/powerpc/mm/pgtable.c | 6 +++---
> arch/powerpc/mm/pgtable_64.c | 6 +++---
> arch/powerpc/xmon/xmon.c | 6 +++---
> 9 files changed, 37 insertions(+), 38 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/32/pgtable.h b/arch/powerpc/include/asm/book3s/32/pgtable.h
> index 75823f39e042..f1b91ad8f3a5 100644
> --- a/arch/powerpc/include/asm/book3s/32/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/32/pgtable.h
> @@ -234,6 +234,7 @@ void unmap_kernel_page(unsigned long va);
> #define pte_clear(mm, addr, ptep) \
> do { pte_update(mm, addr, ptep, ~_PAGE_HASHPTE, 0, 0); } while (0)
>
> +#define pud_leaf pud_leaf
> #define pmd_none(pmd) (!pmd_val(pmd))
> #define pmd_bad(pmd) (pmd_val(pmd) & _PMD_BAD)
> #define pmd_present(pmd) (pmd_val(pmd) & _PMD_PRESENT_MASK)
> @@ -242,7 +243,6 @@ static inline void pmd_clear(pmd_t *pmdp)
> *pmdp = __pmd(0);
> }
>
> -
> /*
> * When flushing the tlb entry for a page, we also need to flush the hash
> * table entry. flush_hash_pages is assembler (for speed) in hashtable.S.
> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
> index c436d8422654..3f51de24e4fc 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
> @@ -1426,16 +1426,14 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
> /*
> * Like pmd_huge() and pmd_large(), but works regardless of config options
> */
> -#define pmd_is_leaf pmd_is_leaf
> -#define pmd_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> +#define pmd_leaf pmd_leaf
> +static inline bool pmd_leaf(pmd_t pmd)
> {
> return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
> }
>
> -#define pud_is_leaf pud_is_leaf
> -#define pud_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> +#define pud_leaf pud_leaf
> +static inline bool pud_leaf(pud_t pud)
> {
> return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
> }
> diff --git a/arch/powerpc/include/asm/nohash/32/pgtable.h b/arch/powerpc/include/asm/nohash/32/pgtable.h
> index 0d40b33184eb..04a3b0b128eb 100644
> --- a/arch/powerpc/include/asm/nohash/32/pgtable.h
> +++ b/arch/powerpc/include/asm/nohash/32/pgtable.h
> @@ -201,6 +201,7 @@ static inline pte_t pte_mkexec(pte_t pte)
> }
> #endif
>
> +#define pud_leaf pud_leaf
> #define pmd_none(pmd) (!pmd_val(pmd))
> #define pmd_bad(pmd) (pmd_val(pmd) & _PMD_BAD)
> #define pmd_present(pmd) (pmd_val(pmd) & _PMD_PRESENT_MASK)
> diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
> index 283f40d05a4d..8e7625a89922 100644
> --- a/arch/powerpc/include/asm/pgtable.h
> +++ b/arch/powerpc/include/asm/pgtable.h
> @@ -134,25 +134,25 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
> }
> #endif
>
> -#ifndef pmd_is_leaf
> -#define pmd_is_leaf pmd_is_leaf
> -static inline bool pmd_is_leaf(pmd_t pmd)
> +#ifndef pmd_leaf
> +#define pmd_leaf pmd_leaf
> +static inline bool pmd_leaf(pmd_t pmd)
> {
> return false;
> }
> #endif
>
> -#ifndef pud_is_leaf
> -#define pud_is_leaf pud_is_leaf
> -static inline bool pud_is_leaf(pud_t pud)
> +#ifndef pud_leaf
> +#define pud_leaf pud_leaf
> +static inline bool pud_leaf(pud_t pud)
> {
> return false;
> }
> #endif
>
> -#ifndef p4d_is_leaf
> -#define p4d_is_leaf p4d_is_leaf
> -static inline bool p4d_is_leaf(p4d_t p4d)
> +#ifndef p4d_leaf
> +#define p4d_leaf p4d_leaf
> +static inline bool p4d_leaf(p4d_t p4d)
> {
> return false;
> }
> diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> index 5d5e12f3bf86..d29f8d1d97a6 100644
> --- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
> +++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
> @@ -497,7 +497,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
> for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
> if (!pmd_present(*p))
> continue;
> - if (pmd_is_leaf(*p)) {
> + if (pmd_leaf(*p)) {
> if (full) {
> pmd_clear(p);
> } else {
> @@ -526,7 +526,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
> for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
> if (!pud_present(*p))
> continue;
> - if (pud_is_leaf(*p)) {
> + if (pud_leaf(*p)) {
> pud_clear(p);
> } else {
> pmd_t *pmd;
> @@ -629,12 +629,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = pud_alloc_one(kvm->mm, gpa);
>
> pmd = NULL;
> - if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
> + if (pud && pud_present(*pud) && !pud_leaf(*pud))
> pmd = pmd_offset(pud, gpa);
> else if (level <= 1)
> new_pmd = kvmppc_pmd_alloc();
>
> - if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
> + if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
> new_ptep = kvmppc_pte_alloc();
>
> /* Check if we might have been invalidated; let the guest retry if so */
> @@ -652,7 +652,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pud = NULL;
> }
> pud = pud_offset(p4d, gpa);
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> unsigned long hgpa = gpa & PUD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> @@ -703,7 +703,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
> new_pmd = NULL;
> }
> pmd = pmd_offset(pud, gpa);
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> unsigned long lgpa = gpa & PMD_MASK;
>
> /* Check if we raced and someone else has set the same thing */
> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> index cac727b01799..8ac27e031ff4 100644
> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> @@ -205,14 +205,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
> pudp = pud_alloc(&init_mm, p4dp, idx);
> if (!pudp)
> continue;
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> ptep = (pte_t *)pudp;
> goto update_the_pte;
> }
> pmdp = pmd_alloc(&init_mm, pudp, idx);
> if (!pmdp)
> continue;
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> ptep = pmdp_ptep(pmdp);
> goto update_the_pte;
> }
> @@ -762,7 +762,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
> if (!pmd_present(*pmd))
> continue;
>
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> if (!IS_ALIGNED(addr, PMD_SIZE) ||
> !IS_ALIGNED(next, PMD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -792,7 +792,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
> if (!pud_present(*pud))
> continue;
>
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> if (!IS_ALIGNED(addr, PUD_SIZE) ||
> !IS_ALIGNED(next, PUD_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -825,7 +825,7 @@ static void __meminit remove_pagetable(unsigned long start, unsigned long end)
> if (!p4d_present(*p4d))
> continue;
>
> - if (p4d_is_leaf(*p4d)) {
> + if (p4d_leaf(*p4d)) {
> if (!IS_ALIGNED(addr, P4D_SIZE) ||
> !IS_ALIGNED(next, P4D_SIZE)) {
> WARN_ONCE(1, "%s: unaligned range\n", __func__);
> @@ -1088,7 +1088,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>
> int pud_clear_huge(pud_t *pud)
> {
> - if (pud_is_leaf(*pud)) {
> + if (pud_leaf(*pud)) {
> pud_clear(pud);
> return 1;
> }
> @@ -1135,7 +1135,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>
> int pmd_clear_huge(pmd_t *pmd)
> {
> - if (pmd_is_leaf(*pmd)) {
> + if (pmd_leaf(*pmd)) {
> pmd_clear(pmd);
> return 1;
> }
> diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
> index cb2dcdb18f8e..35b9677b9553 100644
> --- a/arch/powerpc/mm/pgtable.c
> +++ b/arch/powerpc/mm/pgtable.c
> @@ -387,7 +387,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (p4d_none(p4d))
> return NULL;
>
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> ret_pte = (pte_t *)p4dp;
> goto out;
> }
> @@ -409,7 +409,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> if (pud_none(pud))
> return NULL;
>
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> ret_pte = (pte_t *)pudp;
> goto out;
> }
> @@ -448,7 +448,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
> goto out;
> }
>
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> ret_pte = (pte_t *)pmdp;
> goto out;
> }
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index 5ac1fd30341b..0604c80dae66 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
> /* 4 level page table */
> struct page *p4d_page(p4d_t p4d)
> {
> - if (p4d_is_leaf(p4d)) {
> + if (p4d_leaf(p4d)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!p4d_huge(p4d));
> return pte_page(p4d_pte(p4d));
> @@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
>
> struct page *pud_page(pud_t pud)
> {
> - if (pud_is_leaf(pud)) {
> + if (pud_leaf(pud)) {
> if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
> VM_WARN_ON(!pud_huge(pud));
> return pte_page(pud_pte(pud));
> @@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
> */
> struct page *pmd_page(pmd_t pmd)
> {
> - if (pmd_is_leaf(pmd)) {
> + if (pmd_leaf(pmd)) {
> /*
> * vmalloc_to_page may be called on any vmap address (not only
> * vmalloc), and it uses pmd_page() etc., when huge vmap is
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index f51c882bf902..705c230dd4f5 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (p4d_is_leaf(*p4dp)) {
> + if (p4d_leaf(*p4dp)) {
> format_pte(p4dp, p4d_val(*p4dp));
> return;
> }
> @@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pud_is_leaf(*pudp)) {
> + if (pud_leaf(*pudp)) {
> format_pte(pudp, pud_val(*pudp));
> return;
> }
> @@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - if (pmd_is_leaf(*pmdp)) {
> + if (pmd_leaf(*pmdp)) {
> format_pte(pmdp, pmd_val(*pmdp));
> return;
> }
> --
> 2.34.1
>
This should in fact be a v4. v3 available here:
Link: https://lore.kernel.org/all/cf3cf708786602bef0aade511356420ee387e0f9.camel@russell.cc/t/
^ permalink raw reply [relevance 0%]
* [PATCH 1/4] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf
@ 2022-11-06 22:49 4% Rohan McLure
2022-11-07 1:07 0% ` Rohan McLure
2022-11-07 11:07 0% ` Christophe Leroy
0 siblings, 2 replies; 200+ results
From: Rohan McLure @ 2022-11-06 22:49 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Rohan McLure
Replace occurrences of p{u,m,4}d_is_leaf with p{u,m,4}_leaf, as the
latter is the name given to checking that a higher-level entry in
multi-level paging contains a page translation entry (pte). This commit
allows for p{u,m,4}d_leaf to be used on all powerpc platforms.
Prior to this commit, the two names have both been present in the
kernel, having as far as I can tell the same exact purpose. While the
'is' in the title may better indicate that the macro/function is a
boolean returning check, the former naming scheme is standard through
all other architectures.
32-bit systems import pgtable-nop4d.h which defines a default pud_leaf.
Define pud_leaf preprocessor macro on both Book3E/S 32-bit to avoid
including the default definition in asm/pgtable.h.
Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
---
V4: new patch.
---
arch/powerpc/include/asm/book3s/32/pgtable.h | 2 +-
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 ++++------
arch/powerpc/include/asm/nohash/32/pgtable.h | 1 +
arch/powerpc/include/asm/pgtable.h | 18 +++++++++---------
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 ++++++------
arch/powerpc/mm/book3s64/radix_pgtable.c | 14 +++++++-------
arch/powerpc/mm/pgtable.c | 6 +++---
arch/powerpc/mm/pgtable_64.c | 6 +++---
arch/powerpc/xmon/xmon.c | 6 +++---
9 files changed, 37 insertions(+), 38 deletions(-)
diff --git a/arch/powerpc/include/asm/book3s/32/pgtable.h b/arch/powerpc/include/asm/book3s/32/pgtable.h
index 75823f39e042..f1b91ad8f3a5 100644
--- a/arch/powerpc/include/asm/book3s/32/pgtable.h
+++ b/arch/powerpc/include/asm/book3s/32/pgtable.h
@@ -234,6 +234,7 @@ void unmap_kernel_page(unsigned long va);
#define pte_clear(mm, addr, ptep) \
do { pte_update(mm, addr, ptep, ~_PAGE_HASHPTE, 0, 0); } while (0)
+#define pud_leaf pud_leaf
#define pmd_none(pmd) (!pmd_val(pmd))
#define pmd_bad(pmd) (pmd_val(pmd) & _PMD_BAD)
#define pmd_present(pmd) (pmd_val(pmd) & _PMD_PRESENT_MASK)
@@ -242,7 +243,6 @@ static inline void pmd_clear(pmd_t *pmdp)
*pmdp = __pmd(0);
}
-
/*
* When flushing the tlb entry for a page, we also need to flush the hash
* table entry. flush_hash_pages is assembler (for speed) in hashtable.S.
diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
index c436d8422654..3f51de24e4fc 100644
--- a/arch/powerpc/include/asm/book3s/64/pgtable.h
+++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -1426,16 +1426,14 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
/*
* Like pmd_huge() and pmd_large(), but works regardless of config options
*/
-#define pmd_is_leaf pmd_is_leaf
-#define pmd_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
+#define pmd_leaf pmd_leaf
+static inline bool pmd_leaf(pmd_t pmd)
{
return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
}
-#define pud_is_leaf pud_is_leaf
-#define pud_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
+#define pud_leaf pud_leaf
+static inline bool pud_leaf(pud_t pud)
{
return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
}
diff --git a/arch/powerpc/include/asm/nohash/32/pgtable.h b/arch/powerpc/include/asm/nohash/32/pgtable.h
index 0d40b33184eb..04a3b0b128eb 100644
--- a/arch/powerpc/include/asm/nohash/32/pgtable.h
+++ b/arch/powerpc/include/asm/nohash/32/pgtable.h
@@ -201,6 +201,7 @@ static inline pte_t pte_mkexec(pte_t pte)
}
#endif
+#define pud_leaf pud_leaf
#define pmd_none(pmd) (!pmd_val(pmd))
#define pmd_bad(pmd) (pmd_val(pmd) & _PMD_BAD)
#define pmd_present(pmd) (pmd_val(pmd) & _PMD_PRESENT_MASK)
diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index 283f40d05a4d..8e7625a89922 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h
@@ -134,25 +134,25 @@ static inline void pte_frag_set(mm_context_t *ctx, void *p)
}
#endif
-#ifndef pmd_is_leaf
-#define pmd_is_leaf pmd_is_leaf
-static inline bool pmd_is_leaf(pmd_t pmd)
+#ifndef pmd_leaf
+#define pmd_leaf pmd_leaf
+static inline bool pmd_leaf(pmd_t pmd)
{
return false;
}
#endif
-#ifndef pud_is_leaf
-#define pud_is_leaf pud_is_leaf
-static inline bool pud_is_leaf(pud_t pud)
+#ifndef pud_leaf
+#define pud_leaf pud_leaf
+static inline bool pud_leaf(pud_t pud)
{
return false;
}
#endif
-#ifndef p4d_is_leaf
-#define p4d_is_leaf p4d_is_leaf
-static inline bool p4d_is_leaf(p4d_t p4d)
+#ifndef p4d_leaf
+#define p4d_leaf p4d_leaf
+static inline bool p4d_leaf(p4d_t p4d)
{
return false;
}
diff --git a/arch/powerpc/kvm/book3s_64_mmu_radix.c b/arch/powerpc/kvm/book3s_64_mmu_radix.c
index 5d5e12f3bf86..d29f8d1d97a6 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_radix.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_radix.c
@@ -497,7 +497,7 @@ static void kvmppc_unmap_free_pmd(struct kvm *kvm, pmd_t *pmd, bool full,
for (im = 0; im < PTRS_PER_PMD; ++im, ++p) {
if (!pmd_present(*p))
continue;
- if (pmd_is_leaf(*p)) {
+ if (pmd_leaf(*p)) {
if (full) {
pmd_clear(p);
} else {
@@ -526,7 +526,7 @@ static void kvmppc_unmap_free_pud(struct kvm *kvm, pud_t *pud,
for (iu = 0; iu < PTRS_PER_PUD; ++iu, ++p) {
if (!pud_present(*p))
continue;
- if (pud_is_leaf(*p)) {
+ if (pud_leaf(*p)) {
pud_clear(p);
} else {
pmd_t *pmd;
@@ -629,12 +629,12 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = pud_alloc_one(kvm->mm, gpa);
pmd = NULL;
- if (pud && pud_present(*pud) && !pud_is_leaf(*pud))
+ if (pud && pud_present(*pud) && !pud_leaf(*pud))
pmd = pmd_offset(pud, gpa);
else if (level <= 1)
new_pmd = kvmppc_pmd_alloc();
- if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_is_leaf(*pmd)))
+ if (level == 0 && !(pmd && pmd_present(*pmd) && !pmd_leaf(*pmd)))
new_ptep = kvmppc_pte_alloc();
/* Check if we might have been invalidated; let the guest retry if so */
@@ -652,7 +652,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pud = NULL;
}
pud = pud_offset(p4d, gpa);
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
unsigned long hgpa = gpa & PUD_MASK;
/* Check if we raced and someone else has set the same thing */
@@ -703,7 +703,7 @@ int kvmppc_create_pte(struct kvm *kvm, pgd_t *pgtable, pte_t pte,
new_pmd = NULL;
}
pmd = pmd_offset(pud, gpa);
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
unsigned long lgpa = gpa & PMD_MASK;
/* Check if we raced and someone else has set the same thing */
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index cac727b01799..8ac27e031ff4 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -205,14 +205,14 @@ static void radix__change_memory_range(unsigned long start, unsigned long end,
pudp = pud_alloc(&init_mm, p4dp, idx);
if (!pudp)
continue;
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
ptep = (pte_t *)pudp;
goto update_the_pte;
}
pmdp = pmd_alloc(&init_mm, pudp, idx);
if (!pmdp)
continue;
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
ptep = pmdp_ptep(pmdp);
goto update_the_pte;
}
@@ -762,7 +762,7 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
if (!pmd_present(*pmd))
continue;
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
if (!IS_ALIGNED(addr, PMD_SIZE) ||
!IS_ALIGNED(next, PMD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -792,7 +792,7 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
if (!pud_present(*pud))
continue;
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
if (!IS_ALIGNED(addr, PUD_SIZE) ||
!IS_ALIGNED(next, PUD_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -825,7 +825,7 @@ static void __meminit remove_pagetable(unsigned long start, unsigned long end)
if (!p4d_present(*p4d))
continue;
- if (p4d_is_leaf(*p4d)) {
+ if (p4d_leaf(*p4d)) {
if (!IS_ALIGNED(addr, P4D_SIZE) ||
!IS_ALIGNED(next, P4D_SIZE)) {
WARN_ONCE(1, "%s: unaligned range\n", __func__);
@@ -1088,7 +1088,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_is_leaf(*pud)) {
+ if (pud_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1135,7 +1135,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_is_leaf(*pmd)) {
+ if (pmd_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index cb2dcdb18f8e..35b9677b9553 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -387,7 +387,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (p4d_none(p4d))
return NULL;
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
ret_pte = (pte_t *)p4dp;
goto out;
}
@@ -409,7 +409,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
if (pud_none(pud))
return NULL;
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
ret_pte = (pte_t *)pudp;
goto out;
}
@@ -448,7 +448,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
goto out;
}
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
ret_pte = (pte_t *)pmdp;
goto out;
}
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 5ac1fd30341b..0604c80dae66 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -100,7 +100,7 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
/* 4 level page table */
struct page *p4d_page(p4d_t p4d)
{
- if (p4d_is_leaf(p4d)) {
+ if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
@@ -111,7 +111,7 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
- if (pud_is_leaf(pud)) {
+ if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
@@ -125,7 +125,7 @@ struct page *pud_page(pud_t pud)
*/
struct page *pmd_page(pmd_t pmd)
{
- if (pmd_is_leaf(pmd)) {
+ if (pmd_leaf(pmd)) {
/*
* vmalloc_to_page may be called on any vmap address (not only
* vmalloc), and it uses pmd_page() etc., when huge vmap is
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index f51c882bf902..705c230dd4f5 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3342,7 +3342,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (p4d_is_leaf(*p4dp)) {
+ if (p4d_leaf(*p4dp)) {
format_pte(p4dp, p4d_val(*p4dp));
return;
}
@@ -3356,7 +3356,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pud_is_leaf(*pudp)) {
+ if (pud_leaf(*pudp)) {
format_pte(pudp, pud_val(*pudp));
return;
}
@@ -3370,7 +3370,7 @@ static void show_pte(unsigned long addr)
return;
}
- if (pmd_is_leaf(*pmdp)) {
+ if (pmd_leaf(*pmdp)) {
format_pte(pmdp, pmd_val(*pmdp));
return;
}
--
2.34.1
^ permalink raw reply related [relevance 4%]
* [PATCH v3 1/2] riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
2022-10-12 12:00 5% ` Liu Shixin
@ 2022-10-12 12:00 13% ` Liu Shixin
-1 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-10-12 12:00 UTC (permalink / raw)
To: Conor Dooley, Kefeng Wang, Björn Töpel,
Jonathan Corbet, Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-kernel, linux-riscv, Liu Shixin
This sets the HAVE_ARCH_HUGE_VMAP option, and defines the required
page table functions. With this feature, ioremap area will be mapped with
huge page granularity according to its actual size. This feature can be
disabled by kernel parameter "nohugeiomap".
Signed-off-by: Liu Shixin <liushixin2@huawei.com>
Reviewed-by: Björn Töpel <bjorn@kernel.org>
Tested-by: Björn Töpel <bjorn@kernel.org>
---
.../features/vm/huge-vmap/arch-support.txt | 2 +-
arch/riscv/Kconfig | 1 +
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
5 files changed, 104 insertions(+), 1 deletion(-)
create mode 100644 arch/riscv/mm/pgtable.c
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index 13b4940e0c3a..7274a4b15bcc 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -21,7 +21,7 @@
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
- | riscv: | TODO |
+ | riscv: | ok |
| s390: | TODO |
| sh: | TODO |
| sparc: | TODO |
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 70c1c5010378..a4d597203bd9 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -70,6 +70,7 @@ config RISCV
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
select HAVE_ARCH_AUDITSYSCALL
+ select HAVE_ARCH_HUGE_VMAP if MMU && 64BIT && !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
select HAVE_ARCH_KASAN if MMU && 64BIT
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index ff9abc00d139..48da5371f1e9 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -1,4 +1,22 @@
#ifndef _ASM_RISCV_VMALLOC_H
#define _ASM_RISCV_VMALLOC_H
+#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
+
+#define IOREMAP_MAX_ORDER (PUD_SHIFT)
+
+#define arch_vmap_pud_supported arch_vmap_pud_supported
+static inline bool arch_vmap_pud_supported(pgprot_t prot)
+{
+ return true;
+}
+
+#define arch_vmap_pmd_supported arch_vmap_pmd_supported
+static inline bool arch_vmap_pmd_supported(pgprot_t prot)
+{
+ return true;
+}
+
+#endif
+
#endif /* _ASM_RISCV_VMALLOC_H */
diff --git a/arch/riscv/mm/Makefile b/arch/riscv/mm/Makefile
index d76aabf4b94d..ce7f121ad2dc 100644
--- a/arch/riscv/mm/Makefile
+++ b/arch/riscv/mm/Makefile
@@ -13,6 +13,7 @@ obj-y += extable.o
obj-$(CONFIG_MMU) += fault.o pageattr.o
obj-y += cacheflush.o
obj-y += context.o
+obj-y += pgtable.o
ifeq ($(CONFIG_MMU),y)
obj-$(CONFIG_SMP) += tlbflush.o
diff --git a/arch/riscv/mm/pgtable.c b/arch/riscv/mm/pgtable.c
new file mode 100644
index 000000000000..6645ead1a7c1
--- /dev/null
+++ b/arch/riscv/mm/pgtable.c
@@ -0,0 +1,83 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <asm/pgalloc.h>
+#include <linux/gfp.h>
+#include <linux/kernel.h>
+#include <linux/pgtable.h>
+
+#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
+int p4d_set_huge(p4d_t *p4d, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+void p4d_clear_huge(p4d_t *p4d)
+{
+}
+
+int pud_set_huge(pud_t *pud, phys_addr_t phys, pgprot_t prot)
+{
+ pud_t new_pud = pfn_pud(__phys_to_pfn(phys), prot);
+
+ set_pud(pud, new_pud);
+ return 1;
+}
+
+int pud_clear_huge(pud_t *pud)
+{
+ if (!pud_leaf(READ_ONCE(*pud)))
+ return 0;
+ pud_clear(pud);
+ return 1;
+}
+
+int pud_free_pmd_page(pud_t *pud, unsigned long addr)
+{
+ pmd_t *pmd = pud_pgtable(*pud);
+ int i;
+
+ pud_clear(pud);
+
+ flush_tlb_kernel_range(addr, addr + PUD_SIZE);
+
+ for (i = 0; i < PTRS_PER_PMD; i++) {
+ if (!pmd_none(pmd[i])) {
+ pte_t *pte = (pte_t *)pmd_page_vaddr(pmd[i]);
+
+ pte_free_kernel(NULL, pte);
+ }
+ }
+
+ pmd_free(NULL, pmd);
+
+ return 1;
+}
+
+int pmd_set_huge(pmd_t *pmd, phys_addr_t phys, pgprot_t prot)
+{
+ pmd_t new_pmd = pfn_pmd(__phys_to_pfn(phys), prot);
+
+ set_pmd(pmd, new_pmd);
+ return 1;
+}
+
+int pmd_clear_huge(pmd_t *pmd)
+{
+ if (!pmd_leaf(READ_ONCE(*pmd)))
+ return 0;
+ pmd_clear(pmd);
+ return 1;
+}
+
+int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
+{
+ pte_t *pte = (pte_t *)pmd_page_vaddr(*pmd);
+
+ pmd_clear(pmd);
+
+ flush_tlb_kernel_range(addr, addr + PMD_SIZE);
+ pte_free_kernel(NULL, pte);
+ return 1;
+}
+
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
--
2.25.1
^ permalink raw reply related [relevance 13%]
* [PATCH v3 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC
@ 2022-10-12 12:00 5% ` Liu Shixin
0 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-10-12 12:00 UTC (permalink / raw)
To: Conor Dooley, Kefeng Wang, Björn Töpel,
Jonathan Corbet, Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-kernel, linux-riscv, Liu Shixin
riscv64 can support sv48 now, so we can add more hugepage-related features
which rely on 3th or 4th level of page table. These two patches will
enable HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC.
v2->v3: Fix the commit log.
v1->v2: Fix the build error reported by kernel-test.
Liu Shixin (2):
riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
.../features/vm/huge-vmap/arch-support.txt | 2 +-
arch/riscv/Kconfig | 2 +
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
5 files changed, 105 insertions(+), 1 deletion(-)
create mode 100644 arch/riscv/mm/pgtable.c
--
2.25.1
^ permalink raw reply [relevance 5%]
* [PATCH v3 1/2] riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
@ 2022-10-12 12:00 13% ` Liu Shixin
0 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-10-12 12:00 UTC (permalink / raw)
To: Conor Dooley, Kefeng Wang, Björn Töpel,
Jonathan Corbet, Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-kernel, linux-riscv, Liu Shixin
This sets the HAVE_ARCH_HUGE_VMAP option, and defines the required
page table functions. With this feature, ioremap area will be mapped with
huge page granularity according to its actual size. This feature can be
disabled by kernel parameter "nohugeiomap".
Signed-off-by: Liu Shixin <liushixin2@huawei.com>
Reviewed-by: Björn Töpel <bjorn@kernel.org>
Tested-by: Björn Töpel <bjorn@kernel.org>
---
.../features/vm/huge-vmap/arch-support.txt | 2 +-
arch/riscv/Kconfig | 1 +
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
5 files changed, 104 insertions(+), 1 deletion(-)
create mode 100644 arch/riscv/mm/pgtable.c
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index 13b4940e0c3a..7274a4b15bcc 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -21,7 +21,7 @@
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
- | riscv: | TODO |
+ | riscv: | ok |
| s390: | TODO |
| sh: | TODO |
| sparc: | TODO |
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 70c1c5010378..a4d597203bd9 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -70,6 +70,7 @@ config RISCV
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
select HAVE_ARCH_AUDITSYSCALL
+ select HAVE_ARCH_HUGE_VMAP if MMU && 64BIT && !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
select HAVE_ARCH_KASAN if MMU && 64BIT
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index ff9abc00d139..48da5371f1e9 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -1,4 +1,22 @@
#ifndef _ASM_RISCV_VMALLOC_H
#define _ASM_RISCV_VMALLOC_H
+#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
+
+#define IOREMAP_MAX_ORDER (PUD_SHIFT)
+
+#define arch_vmap_pud_supported arch_vmap_pud_supported
+static inline bool arch_vmap_pud_supported(pgprot_t prot)
+{
+ return true;
+}
+
+#define arch_vmap_pmd_supported arch_vmap_pmd_supported
+static inline bool arch_vmap_pmd_supported(pgprot_t prot)
+{
+ return true;
+}
+
+#endif
+
#endif /* _ASM_RISCV_VMALLOC_H */
diff --git a/arch/riscv/mm/Makefile b/arch/riscv/mm/Makefile
index d76aabf4b94d..ce7f121ad2dc 100644
--- a/arch/riscv/mm/Makefile
+++ b/arch/riscv/mm/Makefile
@@ -13,6 +13,7 @@ obj-y += extable.o
obj-$(CONFIG_MMU) += fault.o pageattr.o
obj-y += cacheflush.o
obj-y += context.o
+obj-y += pgtable.o
ifeq ($(CONFIG_MMU),y)
obj-$(CONFIG_SMP) += tlbflush.o
diff --git a/arch/riscv/mm/pgtable.c b/arch/riscv/mm/pgtable.c
new file mode 100644
index 000000000000..6645ead1a7c1
--- /dev/null
+++ b/arch/riscv/mm/pgtable.c
@@ -0,0 +1,83 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <asm/pgalloc.h>
+#include <linux/gfp.h>
+#include <linux/kernel.h>
+#include <linux/pgtable.h>
+
+#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
+int p4d_set_huge(p4d_t *p4d, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+void p4d_clear_huge(p4d_t *p4d)
+{
+}
+
+int pud_set_huge(pud_t *pud, phys_addr_t phys, pgprot_t prot)
+{
+ pud_t new_pud = pfn_pud(__phys_to_pfn(phys), prot);
+
+ set_pud(pud, new_pud);
+ return 1;
+}
+
+int pud_clear_huge(pud_t *pud)
+{
+ if (!pud_leaf(READ_ONCE(*pud)))
+ return 0;
+ pud_clear(pud);
+ return 1;
+}
+
+int pud_free_pmd_page(pud_t *pud, unsigned long addr)
+{
+ pmd_t *pmd = pud_pgtable(*pud);
+ int i;
+
+ pud_clear(pud);
+
+ flush_tlb_kernel_range(addr, addr + PUD_SIZE);
+
+ for (i = 0; i < PTRS_PER_PMD; i++) {
+ if (!pmd_none(pmd[i])) {
+ pte_t *pte = (pte_t *)pmd_page_vaddr(pmd[i]);
+
+ pte_free_kernel(NULL, pte);
+ }
+ }
+
+ pmd_free(NULL, pmd);
+
+ return 1;
+}
+
+int pmd_set_huge(pmd_t *pmd, phys_addr_t phys, pgprot_t prot)
+{
+ pmd_t new_pmd = pfn_pmd(__phys_to_pfn(phys), prot);
+
+ set_pmd(pmd, new_pmd);
+ return 1;
+}
+
+int pmd_clear_huge(pmd_t *pmd)
+{
+ if (!pmd_leaf(READ_ONCE(*pmd)))
+ return 0;
+ pmd_clear(pmd);
+ return 1;
+}
+
+int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
+{
+ pte_t *pte = (pte_t *)pmd_page_vaddr(*pmd);
+
+ pmd_clear(pmd);
+
+ flush_tlb_kernel_range(addr, addr + PMD_SIZE);
+ pte_free_kernel(NULL, pte);
+ return 1;
+}
+
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
--
2.25.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 13%]
* [PATCH v3 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC
@ 2022-10-12 12:00 5% ` Liu Shixin
0 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-10-12 12:00 UTC (permalink / raw)
To: Conor Dooley, Kefeng Wang, Björn Töpel,
Jonathan Corbet, Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-kernel, linux-riscv, Liu Shixin
riscv64 can support sv48 now, so we can add more hugepage-related features
which rely on 3th or 4th level of page table. These two patches will
enable HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC.
v2->v3: Fix the commit log.
v1->v2: Fix the build error reported by kernel-test.
Liu Shixin (2):
riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
.../features/vm/huge-vmap/arch-support.txt | 2 +-
arch/riscv/Kconfig | 2 +
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
5 files changed, 105 insertions(+), 1 deletion(-)
create mode 100644 arch/riscv/mm/pgtable.c
--
2.25.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 5%]
* Re: [PATCH v2 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC
2022-10-11 12:39 0% ` Björn Töpel
@ 2022-10-12 2:47 0% ` Liu Shixin
-1 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-10-12 2:47 UTC (permalink / raw)
To: Björn Töpel, Conor Dooley, Kefeng Wang,
Jonathan Corbet, Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-kernel, linux-riscv
On 2022/10/11 20:39, Björn Töpel wrote:
> Liu Shixin <liushixin2@huawei.com> writes:
>
>> Since riscv64 has already support SATP_MODE_57 by default, it is time to
>> support more hugepage-related features. These two patches will enable
>> HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC.
>>
> Just a note; The HP support does not require sv57. Pmd/Mega- and
> pud/gigapages work for sv39 and sv48 as well.
Yes, I didn't explain it clearly. I will rewrite it.
>> v1->v2: Fix the build error reported by kernel-test.
>>
>> Liu Shixin (2):
>> riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
>> riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
>>
>> .../features/vm/huge-vmap/arch-support.txt | 2 +-
>> arch/riscv/Kconfig | 2 +
>> arch/riscv/include/asm/vmalloc.h | 18 ++++
>> arch/riscv/mm/Makefile | 1 +
>> arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
>> 5 files changed, 105 insertions(+), 1 deletion(-)
>> create mode 100644 arch/riscv/mm/pgtable.c
>>
> I've taken this series for a spin, and tested huge pud pages via
> ioremap(), and huge pmd pages via vmalloc_huge() on qemu for sv39, sv48,
> and sv57.
>
> Patch 2 have a spelling error in the commit message: "enbale" vs
> "enable".
>
> Fix up the spelling error in patch 2, and after that feel free to add
> for the whole series:
>
> Reviewed-by: Björn Töpel <bjorn@kernel.org>
> Tested-by: Björn Töpel <bjorn@kernel.org>
>
Thanks for your review and test. I will fix the above errors immediately.
> Nice work!
> Björn
>
> .
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* Re: [PATCH v2 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC
@ 2022-10-12 2:47 0% ` Liu Shixin
0 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-10-12 2:47 UTC (permalink / raw)
To: Björn Töpel, Conor Dooley, Kefeng Wang,
Jonathan Corbet, Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-kernel, linux-riscv
On 2022/10/11 20:39, Björn Töpel wrote:
> Liu Shixin <liushixin2@huawei.com> writes:
>
>> Since riscv64 has already support SATP_MODE_57 by default, it is time to
>> support more hugepage-related features. These two patches will enable
>> HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC.
>>
> Just a note; The HP support does not require sv57. Pmd/Mega- and
> pud/gigapages work for sv39 and sv48 as well.
Yes, I didn't explain it clearly. I will rewrite it.
>> v1->v2: Fix the build error reported by kernel-test.
>>
>> Liu Shixin (2):
>> riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
>> riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
>>
>> .../features/vm/huge-vmap/arch-support.txt | 2 +-
>> arch/riscv/Kconfig | 2 +
>> arch/riscv/include/asm/vmalloc.h | 18 ++++
>> arch/riscv/mm/Makefile | 1 +
>> arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
>> 5 files changed, 105 insertions(+), 1 deletion(-)
>> create mode 100644 arch/riscv/mm/pgtable.c
>>
> I've taken this series for a spin, and tested huge pud pages via
> ioremap(), and huge pmd pages via vmalloc_huge() on qemu for sv39, sv48,
> and sv57.
>
> Patch 2 have a spelling error in the commit message: "enbale" vs
> "enable".
>
> Fix up the spelling error in patch 2, and after that feel free to add
> for the whole series:
>
> Reviewed-by: Björn Töpel <bjorn@kernel.org>
> Tested-by: Björn Töpel <bjorn@kernel.org>
>
Thanks for your review and test. I will fix the above errors immediately.
> Nice work!
> Björn
>
> .
>
^ permalink raw reply [relevance 0%]
* Re: [PATCH v2 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC
2022-10-08 14:05 5% ` Liu Shixin
@ 2022-10-11 12:39 0% ` Björn Töpel
-1 siblings, 0 replies; 200+ results
From: Björn Töpel @ 2022-10-11 12:39 UTC (permalink / raw)
To: Liu Shixin, Conor Dooley, Kefeng Wang, Jonathan Corbet,
Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-kernel, linux-riscv, Liu Shixin
Liu Shixin <liushixin2@huawei.com> writes:
> Since riscv64 has already support SATP_MODE_57 by default, it is time to
> support more hugepage-related features. These two patches will enable
> HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC.
>
Just a note; The HP support does not require sv57. Pmd/Mega- and
pud/gigapages work for sv39 and sv48 as well.
> v1->v2: Fix the build error reported by kernel-test.
>
> Liu Shixin (2):
> riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
> riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
>
> .../features/vm/huge-vmap/arch-support.txt | 2 +-
> arch/riscv/Kconfig | 2 +
> arch/riscv/include/asm/vmalloc.h | 18 ++++
> arch/riscv/mm/Makefile | 1 +
> arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
> 5 files changed, 105 insertions(+), 1 deletion(-)
> create mode 100644 arch/riscv/mm/pgtable.c
>
I've taken this series for a spin, and tested huge pud pages via
ioremap(), and huge pmd pages via vmalloc_huge() on qemu for sv39, sv48,
and sv57.
Patch 2 have a spelling error in the commit message: "enbale" vs
"enable".
Fix up the spelling error in patch 2, and after that feel free to add
for the whole series:
Reviewed-by: Björn Töpel <bjorn@kernel.org>
Tested-by: Björn Töpel <bjorn@kernel.org>
Nice work!
Björn
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* Re: [PATCH v2 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC
@ 2022-10-11 12:39 0% ` Björn Töpel
0 siblings, 0 replies; 200+ results
From: Björn Töpel @ 2022-10-11 12:39 UTC (permalink / raw)
To: Liu Shixin, Conor Dooley, Kefeng Wang, Jonathan Corbet,
Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-kernel, linux-riscv, Liu Shixin
Liu Shixin <liushixin2@huawei.com> writes:
> Since riscv64 has already support SATP_MODE_57 by default, it is time to
> support more hugepage-related features. These two patches will enable
> HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC.
>
Just a note; The HP support does not require sv57. Pmd/Mega- and
pud/gigapages work for sv39 and sv48 as well.
> v1->v2: Fix the build error reported by kernel-test.
>
> Liu Shixin (2):
> riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
> riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
>
> .../features/vm/huge-vmap/arch-support.txt | 2 +-
> arch/riscv/Kconfig | 2 +
> arch/riscv/include/asm/vmalloc.h | 18 ++++
> arch/riscv/mm/Makefile | 1 +
> arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
> 5 files changed, 105 insertions(+), 1 deletion(-)
> create mode 100644 arch/riscv/mm/pgtable.c
>
I've taken this series for a spin, and tested huge pud pages via
ioremap(), and huge pmd pages via vmalloc_huge() on qemu for sv39, sv48,
and sv57.
Patch 2 have a spelling error in the commit message: "enbale" vs
"enable".
Fix up the spelling error in patch 2, and after that feel free to add
for the whole series:
Reviewed-by: Björn Töpel <bjorn@kernel.org>
Tested-by: Björn Töpel <bjorn@kernel.org>
Nice work!
Björn
^ permalink raw reply [relevance 0%]
* [PATCH v2 1/2] riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
2022-10-08 14:05 5% ` Liu Shixin
@ 2022-10-08 14:05 13% ` Liu Shixin
-1 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-10-08 14:05 UTC (permalink / raw)
To: Conor Dooley, Kefeng Wang, Jonathan Corbet, Paul Walmsley,
Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-kernel, linux-riscv, Liu Shixin
This sets the HAVE_ARCH_HUGE_VMAP option, and defines the required
page table functions. With this feature, ioremap area will be mapped with
huge page granularity according to its actual size. This feature can be
disabled by kernel parameter "nohugeiomap".
Signed-off-by: Liu Shixin <liushixin2@huawei.com>
---
.../features/vm/huge-vmap/arch-support.txt | 2 +-
arch/riscv/Kconfig | 1 +
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
5 files changed, 104 insertions(+), 1 deletion(-)
create mode 100644 arch/riscv/mm/pgtable.c
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index 13b4940e0c3a..7274a4b15bcc 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -21,7 +21,7 @@
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
- | riscv: | TODO |
+ | riscv: | ok |
| s390: | TODO |
| sh: | TODO |
| sparc: | TODO |
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 70c1c5010378..a4d597203bd9 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -70,6 +70,7 @@ config RISCV
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
select HAVE_ARCH_AUDITSYSCALL
+ select HAVE_ARCH_HUGE_VMAP if MMU && 64BIT && !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
select HAVE_ARCH_KASAN if MMU && 64BIT
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index ff9abc00d139..48da5371f1e9 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -1,4 +1,22 @@
#ifndef _ASM_RISCV_VMALLOC_H
#define _ASM_RISCV_VMALLOC_H
+#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
+
+#define IOREMAP_MAX_ORDER (PUD_SHIFT)
+
+#define arch_vmap_pud_supported arch_vmap_pud_supported
+static inline bool arch_vmap_pud_supported(pgprot_t prot)
+{
+ return true;
+}
+
+#define arch_vmap_pmd_supported arch_vmap_pmd_supported
+static inline bool arch_vmap_pmd_supported(pgprot_t prot)
+{
+ return true;
+}
+
+#endif
+
#endif /* _ASM_RISCV_VMALLOC_H */
diff --git a/arch/riscv/mm/Makefile b/arch/riscv/mm/Makefile
index d76aabf4b94d..ce7f121ad2dc 100644
--- a/arch/riscv/mm/Makefile
+++ b/arch/riscv/mm/Makefile
@@ -13,6 +13,7 @@ obj-y += extable.o
obj-$(CONFIG_MMU) += fault.o pageattr.o
obj-y += cacheflush.o
obj-y += context.o
+obj-y += pgtable.o
ifeq ($(CONFIG_MMU),y)
obj-$(CONFIG_SMP) += tlbflush.o
diff --git a/arch/riscv/mm/pgtable.c b/arch/riscv/mm/pgtable.c
new file mode 100644
index 000000000000..6645ead1a7c1
--- /dev/null
+++ b/arch/riscv/mm/pgtable.c
@@ -0,0 +1,83 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <asm/pgalloc.h>
+#include <linux/gfp.h>
+#include <linux/kernel.h>
+#include <linux/pgtable.h>
+
+#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
+int p4d_set_huge(p4d_t *p4d, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+void p4d_clear_huge(p4d_t *p4d)
+{
+}
+
+int pud_set_huge(pud_t *pud, phys_addr_t phys, pgprot_t prot)
+{
+ pud_t new_pud = pfn_pud(__phys_to_pfn(phys), prot);
+
+ set_pud(pud, new_pud);
+ return 1;
+}
+
+int pud_clear_huge(pud_t *pud)
+{
+ if (!pud_leaf(READ_ONCE(*pud)))
+ return 0;
+ pud_clear(pud);
+ return 1;
+}
+
+int pud_free_pmd_page(pud_t *pud, unsigned long addr)
+{
+ pmd_t *pmd = pud_pgtable(*pud);
+ int i;
+
+ pud_clear(pud);
+
+ flush_tlb_kernel_range(addr, addr + PUD_SIZE);
+
+ for (i = 0; i < PTRS_PER_PMD; i++) {
+ if (!pmd_none(pmd[i])) {
+ pte_t *pte = (pte_t *)pmd_page_vaddr(pmd[i]);
+
+ pte_free_kernel(NULL, pte);
+ }
+ }
+
+ pmd_free(NULL, pmd);
+
+ return 1;
+}
+
+int pmd_set_huge(pmd_t *pmd, phys_addr_t phys, pgprot_t prot)
+{
+ pmd_t new_pmd = pfn_pmd(__phys_to_pfn(phys), prot);
+
+ set_pmd(pmd, new_pmd);
+ return 1;
+}
+
+int pmd_clear_huge(pmd_t *pmd)
+{
+ if (!pmd_leaf(READ_ONCE(*pmd)))
+ return 0;
+ pmd_clear(pmd);
+ return 1;
+}
+
+int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
+{
+ pte_t *pte = (pte_t *)pmd_page_vaddr(*pmd);
+
+ pmd_clear(pmd);
+
+ flush_tlb_kernel_range(addr, addr + PMD_SIZE);
+ pte_free_kernel(NULL, pte);
+ return 1;
+}
+
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
--
2.25.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 13%]
* [PATCH v2 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC
@ 2022-10-08 14:05 5% ` Liu Shixin
0 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-10-08 14:05 UTC (permalink / raw)
To: Conor Dooley, Kefeng Wang, Jonathan Corbet, Paul Walmsley,
Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-kernel, linux-riscv, Liu Shixin
Since riscv64 has already support SATP_MODE_57 by default, it is time to
support more hugepage-related features. These two patches will enable
HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC.
v1->v2: Fix the build error reported by kernel-test.
Liu Shixin (2):
riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
.../features/vm/huge-vmap/arch-support.txt | 2 +-
arch/riscv/Kconfig | 2 +
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
5 files changed, 105 insertions(+), 1 deletion(-)
create mode 100644 arch/riscv/mm/pgtable.c
--
2.25.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 5%]
* [PATCH v2 1/2] riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
@ 2022-10-08 14:05 13% ` Liu Shixin
0 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-10-08 14:05 UTC (permalink / raw)
To: Conor Dooley, Kefeng Wang, Jonathan Corbet, Paul Walmsley,
Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-kernel, linux-riscv, Liu Shixin
This sets the HAVE_ARCH_HUGE_VMAP option, and defines the required
page table functions. With this feature, ioremap area will be mapped with
huge page granularity according to its actual size. This feature can be
disabled by kernel parameter "nohugeiomap".
Signed-off-by: Liu Shixin <liushixin2@huawei.com>
---
.../features/vm/huge-vmap/arch-support.txt | 2 +-
arch/riscv/Kconfig | 1 +
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
5 files changed, 104 insertions(+), 1 deletion(-)
create mode 100644 arch/riscv/mm/pgtable.c
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index 13b4940e0c3a..7274a4b15bcc 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -21,7 +21,7 @@
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
- | riscv: | TODO |
+ | riscv: | ok |
| s390: | TODO |
| sh: | TODO |
| sparc: | TODO |
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 70c1c5010378..a4d597203bd9 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -70,6 +70,7 @@ config RISCV
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
select HAVE_ARCH_AUDITSYSCALL
+ select HAVE_ARCH_HUGE_VMAP if MMU && 64BIT && !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
select HAVE_ARCH_KASAN if MMU && 64BIT
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index ff9abc00d139..48da5371f1e9 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -1,4 +1,22 @@
#ifndef _ASM_RISCV_VMALLOC_H
#define _ASM_RISCV_VMALLOC_H
+#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
+
+#define IOREMAP_MAX_ORDER (PUD_SHIFT)
+
+#define arch_vmap_pud_supported arch_vmap_pud_supported
+static inline bool arch_vmap_pud_supported(pgprot_t prot)
+{
+ return true;
+}
+
+#define arch_vmap_pmd_supported arch_vmap_pmd_supported
+static inline bool arch_vmap_pmd_supported(pgprot_t prot)
+{
+ return true;
+}
+
+#endif
+
#endif /* _ASM_RISCV_VMALLOC_H */
diff --git a/arch/riscv/mm/Makefile b/arch/riscv/mm/Makefile
index d76aabf4b94d..ce7f121ad2dc 100644
--- a/arch/riscv/mm/Makefile
+++ b/arch/riscv/mm/Makefile
@@ -13,6 +13,7 @@ obj-y += extable.o
obj-$(CONFIG_MMU) += fault.o pageattr.o
obj-y += cacheflush.o
obj-y += context.o
+obj-y += pgtable.o
ifeq ($(CONFIG_MMU),y)
obj-$(CONFIG_SMP) += tlbflush.o
diff --git a/arch/riscv/mm/pgtable.c b/arch/riscv/mm/pgtable.c
new file mode 100644
index 000000000000..6645ead1a7c1
--- /dev/null
+++ b/arch/riscv/mm/pgtable.c
@@ -0,0 +1,83 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <asm/pgalloc.h>
+#include <linux/gfp.h>
+#include <linux/kernel.h>
+#include <linux/pgtable.h>
+
+#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
+int p4d_set_huge(p4d_t *p4d, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+void p4d_clear_huge(p4d_t *p4d)
+{
+}
+
+int pud_set_huge(pud_t *pud, phys_addr_t phys, pgprot_t prot)
+{
+ pud_t new_pud = pfn_pud(__phys_to_pfn(phys), prot);
+
+ set_pud(pud, new_pud);
+ return 1;
+}
+
+int pud_clear_huge(pud_t *pud)
+{
+ if (!pud_leaf(READ_ONCE(*pud)))
+ return 0;
+ pud_clear(pud);
+ return 1;
+}
+
+int pud_free_pmd_page(pud_t *pud, unsigned long addr)
+{
+ pmd_t *pmd = pud_pgtable(*pud);
+ int i;
+
+ pud_clear(pud);
+
+ flush_tlb_kernel_range(addr, addr + PUD_SIZE);
+
+ for (i = 0; i < PTRS_PER_PMD; i++) {
+ if (!pmd_none(pmd[i])) {
+ pte_t *pte = (pte_t *)pmd_page_vaddr(pmd[i]);
+
+ pte_free_kernel(NULL, pte);
+ }
+ }
+
+ pmd_free(NULL, pmd);
+
+ return 1;
+}
+
+int pmd_set_huge(pmd_t *pmd, phys_addr_t phys, pgprot_t prot)
+{
+ pmd_t new_pmd = pfn_pmd(__phys_to_pfn(phys), prot);
+
+ set_pmd(pmd, new_pmd);
+ return 1;
+}
+
+int pmd_clear_huge(pmd_t *pmd)
+{
+ if (!pmd_leaf(READ_ONCE(*pmd)))
+ return 0;
+ pmd_clear(pmd);
+ return 1;
+}
+
+int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
+{
+ pte_t *pte = (pte_t *)pmd_page_vaddr(*pmd);
+
+ pmd_clear(pmd);
+
+ flush_tlb_kernel_range(addr, addr + PMD_SIZE);
+ pte_free_kernel(NULL, pte);
+ return 1;
+}
+
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
--
2.25.1
^ permalink raw reply related [relevance 13%]
* [PATCH v2 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC
@ 2022-10-08 14:05 5% ` Liu Shixin
0 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-10-08 14:05 UTC (permalink / raw)
To: Conor Dooley, Kefeng Wang, Jonathan Corbet, Paul Walmsley,
Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-kernel, linux-riscv, Liu Shixin
Since riscv64 has already support SATP_MODE_57 by default, it is time to
support more hugepage-related features. These two patches will enable
HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC.
v1->v2: Fix the build error reported by kernel-test.
Liu Shixin (2):
riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
.../features/vm/huge-vmap/arch-support.txt | 2 +-
arch/riscv/Kconfig | 2 +
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
5 files changed, 105 insertions(+), 1 deletion(-)
create mode 100644 arch/riscv/mm/pgtable.c
--
2.25.1
^ permalink raw reply [relevance 5%]
* Re: [PATCH v6 0/4] riscv, mm: detect svnapot cpu support at runtime
2022-10-05 13:29 0% ` [PATCH v6 0/4] riscv, mm: detect svnapot cpu support at runtime Andrew Jones
@ 2022-10-06 19:37 0% ` Conor Dooley
0 siblings, 0 replies; 200+ results
From: Conor Dooley @ 2022-10-06 19:37 UTC (permalink / raw)
To: Andrew Jones; +Cc: panqinglin2020, palmer, linux-riscv, jeff, xuyinan
On Wed, Oct 05, 2022 at 03:29:30PM +0200, Andrew Jones wrote:
> Hi Qinglin,
>
> Please give more time between postings. v5 is barely 48 hours old and I
> haven't even looked at half its patches yet.
Aye, please wait until at least after the merge window to send another
version with Drew's comments addressed. Hard to tell if this v6 has
resolved his comments on v5 or not. I assume it hasn't given the
changelog in the cover only has a single comment?
>
> Thanks,
> drew
>
>
> On Wed, Oct 05, 2022 at 07:29:22PM +0800, panqinglin2020@iscas.ac.cn wrote:
> > From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
> >
> > Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> > page. This patch set is for using Svnapot in Linux Kernel's boot process
> > and hugetlb fs.
> >
> > This patchset adds a Kconfig item for using Svnapot in
> > "Platform type"->"SVNAPOT extension support". Its default value is off,
> > and people can set it on if they allow kernel to detect Svnapot hardware
> > support and leverage it.
> >
> > Tested on:
> > - qemu rv64 with "Svnapot support" off and svnapot=true.
> > - qemu rv64 with "Svnapot support" on and svnapot=true.
> > - qemu rv64 with "Svnapot support" off and svnapot=false.
> > - qemu rv64 with "Svnapot support" on and svnapot=false.
> >
> >
> > Changes in v2:
> > - detect Svnapot hardware support at boot time.
> > Changes in v3:
> > - do linear mapping again if has_svnapot
> > Changes in v4:
> > - fix some errors/warns reported by checkpatch.pl, thanks @Conor
> > Changes in v5:
> > - modify code according to @Conor and @Heiko
> > Changes in v6:
> > - use static key insead of alternative errata
> >
> >
> > Qinglin Pan (4):
> > riscv: mm: modify pte format for Svnapot
> > riscv: mm: support Svnapot in physical page linear-mapping
> > riscv: mm: support Svnapot in hugetlb page
> > riscv: mm: support Svnapot in huge vmap
> >
> > arch/riscv/Kconfig | 17 +-
> > arch/riscv/include/asm/hugetlb.h | 37 +++-
> > arch/riscv/include/asm/hwcap.h | 4 +
> > arch/riscv/include/asm/page.h | 2 +-
> > arch/riscv/include/asm/pgtable-64.h | 13 ++
> > arch/riscv/include/asm/pgtable.h | 69 +++++++-
> > arch/riscv/include/asm/vmalloc.h | 28 ++++
> > arch/riscv/kernel/cpu.c | 1 +
> > arch/riscv/kernel/cpufeature.c | 1 +
> > arch/riscv/mm/hugetlbpage.c | 250 +++++++++++++++++++++++++++-
> > arch/riscv/mm/init.c | 30 +++-
> > 11 files changed, 440 insertions(+), 12 deletions(-)
> >
> > --
> > 2.35.1
> >
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* Re: [PATCH v6 0/4] riscv, mm: detect svnapot cpu support at runtime
2022-10-05 11:29 4% [PATCH v6 " panqinglin2020
2022-10-05 11:29 10% ` [PATCH v6 4/4] riscv: mm: support Svnapot in huge vmap panqinglin2020
@ 2022-10-05 13:29 0% ` Andrew Jones
2022-10-06 19:37 0% ` Conor Dooley
1 sibling, 1 reply; 200+ results
From: Andrew Jones @ 2022-10-05 13:29 UTC (permalink / raw)
To: panqinglin2020; +Cc: palmer, linux-riscv, jeff, xuyinan, conor
Hi Qinglin,
Please give more time between postings. v5 is barely 48 hours old and I
haven't even looked at half its patches yet.
Thanks,
drew
On Wed, Oct 05, 2022 at 07:29:22PM +0800, panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> page. This patch set is for using Svnapot in Linux Kernel's boot process
> and hugetlb fs.
>
> This patchset adds a Kconfig item for using Svnapot in
> "Platform type"->"SVNAPOT extension support". Its default value is off,
> and people can set it on if they allow kernel to detect Svnapot hardware
> support and leverage it.
>
> Tested on:
> - qemu rv64 with "Svnapot support" off and svnapot=true.
> - qemu rv64 with "Svnapot support" on and svnapot=true.
> - qemu rv64 with "Svnapot support" off and svnapot=false.
> - qemu rv64 with "Svnapot support" on and svnapot=false.
>
>
> Changes in v2:
> - detect Svnapot hardware support at boot time.
> Changes in v3:
> - do linear mapping again if has_svnapot
> Changes in v4:
> - fix some errors/warns reported by checkpatch.pl, thanks @Conor
> Changes in v5:
> - modify code according to @Conor and @Heiko
> Changes in v6:
> - use static key insead of alternative errata
>
>
> Qinglin Pan (4):
> riscv: mm: modify pte format for Svnapot
> riscv: mm: support Svnapot in physical page linear-mapping
> riscv: mm: support Svnapot in hugetlb page
> riscv: mm: support Svnapot in huge vmap
>
> arch/riscv/Kconfig | 17 +-
> arch/riscv/include/asm/hugetlb.h | 37 +++-
> arch/riscv/include/asm/hwcap.h | 4 +
> arch/riscv/include/asm/page.h | 2 +-
> arch/riscv/include/asm/pgtable-64.h | 13 ++
> arch/riscv/include/asm/pgtable.h | 69 +++++++-
> arch/riscv/include/asm/vmalloc.h | 28 ++++
> arch/riscv/kernel/cpu.c | 1 +
> arch/riscv/kernel/cpufeature.c | 1 +
> arch/riscv/mm/hugetlbpage.c | 250 +++++++++++++++++++++++++++-
> arch/riscv/mm/init.c | 30 +++-
> 11 files changed, 440 insertions(+), 12 deletions(-)
>
> --
> 2.35.1
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* [PATCH v6 4/4] riscv: mm: support Svnapot in huge vmap
2022-10-05 11:29 4% [PATCH v6 " panqinglin2020
@ 2022-10-05 11:29 10% ` panqinglin2020
2022-10-05 13:29 0% ` [PATCH v6 0/4] riscv, mm: detect svnapot cpu support at runtime Andrew Jones
1 sibling, 0 replies; 200+ results
From: panqinglin2020 @ 2022-10-05 11:29 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
The HAVE_ARCH_HUGE_VMAP option can be used to help implement arch
special huge vmap size. This commit selects this option by default and
re-writes the arch_vmap_pte_range_map_size for Svnapot 64KB size.
It can be tested when booting kernel in qemu with pci device, which
will make the kernel to call pci driver using ioremap, and the
re-written function will be called.
Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index bc19786f25f5..4b6ca943168f 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -70,6 +70,7 @@ config RISCV
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
select HAVE_ARCH_AUDITSYSCALL
+ select HAVE_ARCH_HUGE_VMAP
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
select HAVE_ARCH_KASAN if MMU && 64BIT
diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
index a8cab063fd05..aa7eda57054c 100644
--- a/arch/riscv/include/asm/pgtable.h
+++ b/arch/riscv/include/asm/pgtable.h
@@ -749,6 +749,43 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma,
}
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
+static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+static inline int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+static inline void p4d_clear_huge(p4d_t *p4d) { }
+
+static inline int pud_clear_huge(pud_t *pud)
+{
+ return 0;
+}
+
+static inline int pmd_clear_huge(pmd_t *pmd)
+{
+ return 0;
+}
+
+static inline int p4d_free_pud_page(p4d_t *p4d, unsigned long addr)
+{
+ return 0;
+}
+
+static inline int pud_free_pmd_page(pud_t *pud, unsigned long addr)
+{
+ return 0;
+}
+
+static inline int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
+{
+ return 0;
+}
+
/*
* Encode and decode a swap entry
*
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index ff9abc00d139..ecd1f784299b 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -1,4 +1,32 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _ASM_RISCV_VMALLOC_H
#define _ASM_RISCV_VMALLOC_H
+#include <linux/pgtable.h>
+
+#ifdef CONFIG_RISCV_ISA_SVNAPOT
+#define arch_vmap_pte_range_map_size vmap_pte_range_map_size
+static inline unsigned long
+vmap_pte_range_map_size(unsigned long addr, unsigned long end, u64 pfn,
+ unsigned int max_page_shift)
+{
+ if (!has_svnapot())
+ return PAGE_SIZE;
+
+ if (addr & NAPOT_CONT64KB_MASK)
+ return PAGE_SIZE;
+
+ if (pfn & (NAPOT_64KB_PTE_NUM - 1UL))
+ return PAGE_SIZE;
+
+ if ((end - addr) < NAPOT_CONT64KB_SIZE)
+ return PAGE_SIZE;
+
+ if (max_page_shift < NAPOT_CONT64KB_SHIFT)
+ return PAGE_SIZE;
+
+ return NAPOT_CONT64KB_SIZE;
+}
+#endif /*CONFIG_RISCV_ISA_SVNAPOT*/
+
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.35.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 10%]
* [PATCH v6 0/4] riscv, mm: detect svnapot cpu support at runtime
@ 2022-10-05 11:29 4% panqinglin2020
2022-10-05 11:29 10% ` [PATCH v6 4/4] riscv: mm: support Svnapot in huge vmap panqinglin2020
2022-10-05 13:29 0% ` [PATCH v6 0/4] riscv, mm: detect svnapot cpu support at runtime Andrew Jones
0 siblings, 2 replies; 200+ results
From: panqinglin2020 @ 2022-10-05 11:29 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, conor, ajones, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in Linux Kernel's boot process
and hugetlb fs.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is off,
and people can set it on if they allow kernel to detect Svnapot hardware
support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
- modify code according to @Conor and @Heiko
Changes in v6:
- use static key insead of alternative errata
Qinglin Pan (4):
riscv: mm: modify pte format for Svnapot
riscv: mm: support Svnapot in physical page linear-mapping
riscv: mm: support Svnapot in hugetlb page
riscv: mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 17 +-
arch/riscv/include/asm/hugetlb.h | 37 +++-
arch/riscv/include/asm/hwcap.h | 4 +
arch/riscv/include/asm/page.h | 2 +-
arch/riscv/include/asm/pgtable-64.h | 13 ++
arch/riscv/include/asm/pgtable.h | 69 +++++++-
arch/riscv/include/asm/vmalloc.h | 28 ++++
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 1 +
arch/riscv/mm/hugetlbpage.c | 250 +++++++++++++++++++++++++++-
arch/riscv/mm/init.c | 30 +++-
11 files changed, 440 insertions(+), 12 deletions(-)
--
2.35.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 4%]
* Re: [PATCH v5 4/4] mm: support Svnapot in huge vmap
2022-10-04 18:46 6% ` Conor Dooley
@ 2022-10-05 4:44 6% ` Qinglin Pan
0 siblings, 0 replies; 200+ results
From: Qinglin Pan @ 2022-10-05 4:44 UTC (permalink / raw)
To: Conor Dooley; +Cc: palmer, linux-riscv, jeff, xuyinan
Hi Conor,
On 10/5/22 2:46 AM, Conor Dooley wrote:
> On Mon, Oct 03, 2022 at 09:47:21PM +0800, panqinglin2020@iscas.ac.cn wrote:
>> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>>
>> The HAVE_ARCH_HUGE_VMAP option can be used to help implement arch
>> special huge vmap size. This commit selects this option by default and
>> re-writes the arch_vmap_pte_range_map_size for Svnapot 64KB size.
>>
>> It can be tested when booting kernel in qemu with pci device, which
>> will make the kernel to call pci driver using ioremap, and the
>> re-written function will be called.
>>
>> Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>>
>> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
>> index 3d5ec1391046..571f77b16ee8 100644
>> --- a/arch/riscv/Kconfig
>> +++ b/arch/riscv/Kconfig
>> @@ -70,6 +70,7 @@ config RISCV
>> select GENERIC_TIME_VSYSCALL if MMU && 64BIT
>> select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
>> select HAVE_ARCH_AUDITSYSCALL
>> + select HAVE_ARCH_HUGE_VMAP
>
> Maybe you should take a look at the following patchset and see how your
> code interacts with it:
> https://lore.kernel.org/linux-riscv/20220915065027.3501044-1-liushixin2@huawei.com/
>
> Possible you may have some feedback for Liu Shixin or get some ideas :)
>
> Thanks,
> Conor.
>
Will have a look at it and to interact with it:)
Thanks for your information again : )
Qinglin.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* Re: [PATCH v5 4/4] mm: support Svnapot in huge vmap
2022-10-03 13:47 10% ` [PATCH v5 4/4] mm: support Svnapot in huge vmap panqinglin2020
@ 2022-10-04 18:46 6% ` Conor Dooley
2022-10-05 4:44 6% ` Qinglin Pan
0 siblings, 1 reply; 200+ results
From: Conor Dooley @ 2022-10-04 18:46 UTC (permalink / raw)
To: panqinglin2020; +Cc: palmer, linux-riscv, jeff, xuyinan
On Mon, Oct 03, 2022 at 09:47:21PM +0800, panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> The HAVE_ARCH_HUGE_VMAP option can be used to help implement arch
> special huge vmap size. This commit selects this option by default and
> re-writes the arch_vmap_pte_range_map_size for Svnapot 64KB size.
>
> It can be tested when booting kernel in qemu with pci device, which
> will make the kernel to call pci driver using ioremap, and the
> re-written function will be called.
>
> Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> index 3d5ec1391046..571f77b16ee8 100644
> --- a/arch/riscv/Kconfig
> +++ b/arch/riscv/Kconfig
> @@ -70,6 +70,7 @@ config RISCV
> select GENERIC_TIME_VSYSCALL if MMU && 64BIT
> select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
> select HAVE_ARCH_AUDITSYSCALL
> + select HAVE_ARCH_HUGE_VMAP
Maybe you should take a look at the following patchset and see how your
code interacts with it:
https://lore.kernel.org/linux-riscv/20220915065027.3501044-1-liushixin2@huawei.com/
Possible you may have some feedback for Liu Shixin or get some ideas :)
Thanks,
Conor.
> select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
> select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
> select HAVE_ARCH_KASAN if MMU && 64BIT
> diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
> index c3fc3c661699..1740d859331a 100644
> --- a/arch/riscv/include/asm/pgtable.h
> +++ b/arch/riscv/include/asm/pgtable.h
> @@ -748,6 +748,43 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma,
> }
> #endif /* CONFIG_TRANSPARENT_HUGEPAGE */
>
> +static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
> +{
> + return 0;
> +}
> +
> +static inline int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
> +{
> + return 0;
> +}
> +
> +static inline void p4d_clear_huge(p4d_t *p4d) { }
> +
> +static inline int pud_clear_huge(pud_t *pud)
> +{
> + return 0;
> +}
> +
> +static inline int pmd_clear_huge(pmd_t *pmd)
> +{
> + return 0;
> +}
> +
> +static inline int p4d_free_pud_page(p4d_t *p4d, unsigned long addr)
> +{
> + return 0;
> +}
> +
> +static inline int pud_free_pmd_page(pud_t *pud, unsigned long addr)
> +{
> + return 0;
> +}
> +
> +static inline int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
> +{
> + return 0;
> +}
> +
> /*
> * Encode and decode a swap entry
> *
> diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
> index ff9abc00d139..ecd1f784299b 100644
> --- a/arch/riscv/include/asm/vmalloc.h
> +++ b/arch/riscv/include/asm/vmalloc.h
> @@ -1,4 +1,32 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> #ifndef _ASM_RISCV_VMALLOC_H
> #define _ASM_RISCV_VMALLOC_H
>
> +#include <linux/pgtable.h>
> +
> +#ifdef CONFIG_RISCV_ISA_SVNAPOT
> +#define arch_vmap_pte_range_map_size vmap_pte_range_map_size
> +static inline unsigned long
> +vmap_pte_range_map_size(unsigned long addr, unsigned long end, u64 pfn,
> + unsigned int max_page_shift)
> +{
> + if (!has_svnapot())
> + return PAGE_SIZE;
> +
> + if (addr & NAPOT_CONT64KB_MASK)
> + return PAGE_SIZE;
> +
> + if (pfn & (NAPOT_64KB_PTE_NUM - 1UL))
> + return PAGE_SIZE;
> +
> + if ((end - addr) < NAPOT_CONT64KB_SIZE)
> + return PAGE_SIZE;
> +
> + if (max_page_shift < NAPOT_CONT64KB_SHIFT)
> + return PAGE_SIZE;
> +
> + return NAPOT_CONT64KB_SIZE;
> +}
> +#endif /*CONFIG_RISCV_ISA_SVNAPOT*/
> +
> #endif /* _ASM_RISCV_VMALLOC_H */
> --
> 2.35.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* Re: [PATCH v5 0/4] riscv, mm: detect svnapot cpu support at runtime
2022-10-03 13:47 4% [PATCH v5 0/4] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
2022-10-03 13:47 10% ` [PATCH v5 4/4] mm: support Svnapot in huge vmap panqinglin2020
@ 2022-10-03 13:53 0% ` Qinglin Pan
1 sibling, 0 replies; 200+ results
From: Qinglin Pan @ 2022-10-03 13:53 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan
Sorry for missing below information.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Changes in v5:
- modify code according to @Conor and @Heiko's suggestions.
Thanks @Conor @Heiko
On 10/3/22 9:47 PM, panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> page. This patch set is for using Svnapot in Linux Kernel's boot process
> and hugetlb fs.
>
> This patchset adds a Kconfig item for using Svnapot in
> "Platform type"->"SVNAPOT extension support". Its default value is off,
> and people can set it on if they allow kernel to detect Svnapot hardware
> support and leverage it.
>
> Tested on:
> - qemu rv64 with "Svnapot support" off and svnapot=true.
> - qemu rv64 with "Svnapot support" on and svnapot=true.
> - qemu rv64 with "Svnapot support" off and svnapot=false.
> - qemu rv64 with "Svnapot support" on and svnapot=false.
>
>
> Qinglin Pan (4):
> mm: modify pte format for Svnapot
> mm: support Svnapot in physical page linear-mapping
> mm: support Svnapot in hugetlb page
> mm: support Svnapot in huge vmap
>
> arch/riscv/Kconfig | 17 +-
> arch/riscv/include/asm/errata_list.h | 23 ++-
> arch/riscv/include/asm/hugetlb.h | 30 +++-
> arch/riscv/include/asm/hwcap.h | 3 +-
> arch/riscv/include/asm/page.h | 2 +-
> arch/riscv/include/asm/pgtable-64.h | 13 ++
> arch/riscv/include/asm/pgtable.h | 68 +++++++-
> arch/riscv/include/asm/vmalloc.h | 28 +++
> arch/riscv/kernel/cpu.c | 1 +
> arch/riscv/kernel/cpufeature.c | 18 ++
> arch/riscv/mm/hugetlbpage.c | 250 ++++++++++++++++++++++++++-
> arch/riscv/mm/init.c | 28 ++-
> 12 files changed, 467 insertions(+), 14 deletions(-)
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* [PATCH v5 4/4] mm: support Svnapot in huge vmap
2022-10-03 13:47 4% [PATCH v5 0/4] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
@ 2022-10-03 13:47 10% ` panqinglin2020
2022-10-04 18:46 6% ` Conor Dooley
2022-10-03 13:53 0% ` [PATCH v5 0/4] riscv, mm: detect svnapot cpu support at runtime Qinglin Pan
1 sibling, 1 reply; 200+ results
From: panqinglin2020 @ 2022-10-03 13:47 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
The HAVE_ARCH_HUGE_VMAP option can be used to help implement arch
special huge vmap size. This commit selects this option by default and
re-writes the arch_vmap_pte_range_map_size for Svnapot 64KB size.
It can be tested when booting kernel in qemu with pci device, which
will make the kernel to call pci driver using ioremap, and the
re-written function will be called.
Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 3d5ec1391046..571f77b16ee8 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -70,6 +70,7 @@ config RISCV
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
select HAVE_ARCH_AUDITSYSCALL
+ select HAVE_ARCH_HUGE_VMAP
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
select HAVE_ARCH_KASAN if MMU && 64BIT
diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
index c3fc3c661699..1740d859331a 100644
--- a/arch/riscv/include/asm/pgtable.h
+++ b/arch/riscv/include/asm/pgtable.h
@@ -748,6 +748,43 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma,
}
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
+static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+static inline int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+static inline void p4d_clear_huge(p4d_t *p4d) { }
+
+static inline int pud_clear_huge(pud_t *pud)
+{
+ return 0;
+}
+
+static inline int pmd_clear_huge(pmd_t *pmd)
+{
+ return 0;
+}
+
+static inline int p4d_free_pud_page(p4d_t *p4d, unsigned long addr)
+{
+ return 0;
+}
+
+static inline int pud_free_pmd_page(pud_t *pud, unsigned long addr)
+{
+ return 0;
+}
+
+static inline int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
+{
+ return 0;
+}
+
/*
* Encode and decode a swap entry
*
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index ff9abc00d139..ecd1f784299b 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -1,4 +1,32 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _ASM_RISCV_VMALLOC_H
#define _ASM_RISCV_VMALLOC_H
+#include <linux/pgtable.h>
+
+#ifdef CONFIG_RISCV_ISA_SVNAPOT
+#define arch_vmap_pte_range_map_size vmap_pte_range_map_size
+static inline unsigned long
+vmap_pte_range_map_size(unsigned long addr, unsigned long end, u64 pfn,
+ unsigned int max_page_shift)
+{
+ if (!has_svnapot())
+ return PAGE_SIZE;
+
+ if (addr & NAPOT_CONT64KB_MASK)
+ return PAGE_SIZE;
+
+ if (pfn & (NAPOT_64KB_PTE_NUM - 1UL))
+ return PAGE_SIZE;
+
+ if ((end - addr) < NAPOT_CONT64KB_SIZE)
+ return PAGE_SIZE;
+
+ if (max_page_shift < NAPOT_CONT64KB_SHIFT)
+ return PAGE_SIZE;
+
+ return NAPOT_CONT64KB_SIZE;
+}
+#endif /*CONFIG_RISCV_ISA_SVNAPOT*/
+
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.35.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 10%]
* [PATCH v5 0/4] riscv, mm: detect svnapot cpu support at runtime
@ 2022-10-03 13:47 4% panqinglin2020
2022-10-03 13:47 10% ` [PATCH v5 4/4] mm: support Svnapot in huge vmap panqinglin2020
2022-10-03 13:53 0% ` [PATCH v5 0/4] riscv, mm: detect svnapot cpu support at runtime Qinglin Pan
0 siblings, 2 replies; 200+ results
From: panqinglin2020 @ 2022-10-03 13:47 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in Linux Kernel's boot process
and hugetlb fs.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"SVNAPOT extension support". Its default value is off,
and people can set it on if they allow kernel to detect Svnapot hardware
support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Qinglin Pan (4):
mm: modify pte format for Svnapot
mm: support Svnapot in physical page linear-mapping
mm: support Svnapot in hugetlb page
mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 17 +-
arch/riscv/include/asm/errata_list.h | 23 ++-
arch/riscv/include/asm/hugetlb.h | 30 +++-
arch/riscv/include/asm/hwcap.h | 3 +-
arch/riscv/include/asm/page.h | 2 +-
arch/riscv/include/asm/pgtable-64.h | 13 ++
arch/riscv/include/asm/pgtable.h | 68 +++++++-
arch/riscv/include/asm/vmalloc.h | 28 +++
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 18 ++
arch/riscv/mm/hugetlbpage.c | 250 ++++++++++++++++++++++++++-
arch/riscv/mm/init.c | 28 ++-
12 files changed, 467 insertions(+), 14 deletions(-)
--
2.35.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 4%]
* Re: [PATCH 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC
2022-09-15 6:50 5% ` Liu Shixin
@ 2022-10-01 19:00 0% ` Conor Dooley
-1 siblings, 0 replies; 200+ results
From: Conor Dooley @ 2022-10-01 19:00 UTC (permalink / raw)
To: Liu Shixin
Cc: Jonathan Corbet, Paul Walmsley, Palmer Dabbelt, Albert Ou,
linux-doc, linux-riscv, Kefeng Wang
On Thu, Sep 15, 2022 at 02:50:25PM +0800, Liu Shixin wrote:
> Since riscv64 has already support SATP_MODE_57 by default, it is time to
> support more hugepage-related features. These two patches will enable
> HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC.
>
> Liu Shixin (2):
> riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
> riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
Hey Liu Shixin,
As I'm sure you saw earlier today LKP randconfig testing of linux-next*
found a problem with your patchset, but looks like it should be
trivially fixable.
Thanks,
Conor.
* I accidentally added it to my dt-for-next branch, from which it is now
dropped.
>
> .../features/vm/huge-vmap/arch-support.txt | 2 +-
> arch/riscv/Kconfig | 2 +
> arch/riscv/include/asm/vmalloc.h | 18 ++++
> arch/riscv/mm/Makefile | 1 +
> arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
> 5 files changed, 105 insertions(+), 1 deletion(-)
> create mode 100644 arch/riscv/mm/pgtable.c
>
> --
> 2.25.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* Re: [PATCH 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC
@ 2022-10-01 19:00 0% ` Conor Dooley
0 siblings, 0 replies; 200+ results
From: Conor Dooley @ 2022-10-01 19:00 UTC (permalink / raw)
To: Liu Shixin
Cc: Jonathan Corbet, Paul Walmsley, Palmer Dabbelt, Albert Ou,
linux-doc, linux-riscv, Kefeng Wang
On Thu, Sep 15, 2022 at 02:50:25PM +0800, Liu Shixin wrote:
> Since riscv64 has already support SATP_MODE_57 by default, it is time to
> support more hugepage-related features. These two patches will enable
> HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC.
>
> Liu Shixin (2):
> riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
> riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
Hey Liu Shixin,
As I'm sure you saw earlier today LKP randconfig testing of linux-next*
found a problem with your patchset, but looks like it should be
trivially fixable.
Thanks,
Conor.
* I accidentally added it to my dt-for-next branch, from which it is now
dropped.
>
> .../features/vm/huge-vmap/arch-support.txt | 2 +-
> arch/riscv/Kconfig | 2 +
> arch/riscv/include/asm/vmalloc.h | 18 ++++
> arch/riscv/mm/Makefile | 1 +
> arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
> 5 files changed, 105 insertions(+), 1 deletion(-)
> create mode 100644 arch/riscv/mm/pgtable.c
>
> --
> 2.25.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* [PATCH 1/2] riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
2022-09-15 6:50 5% ` Liu Shixin
@ 2022-09-15 6:50 13% ` Liu Shixin
-1 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-09-15 6:50 UTC (permalink / raw)
To: Jonathan Corbet, Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-riscv, Liu Shixin, Kefeng Wang
This sets the HAVE_ARCH_HUGE_VMAP option, and defines the required
page table functions. With this feature, ioremap area will be mapped with
huge page granularity according to its actual size. This feature can be
disabled by kernel parameter "nohugeiomap".
Signed-off-by: Liu Shixin <liushixin2@huawei.com>
---
.../features/vm/huge-vmap/arch-support.txt | 2 +-
arch/riscv/Kconfig | 1 +
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
5 files changed, 104 insertions(+), 1 deletion(-)
create mode 100644 arch/riscv/mm/pgtable.c
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index 13b4940e0c3a..7274a4b15bcc 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -21,7 +21,7 @@
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
- | riscv: | TODO |
+ | riscv: | ok |
| s390: | TODO |
| sh: | TODO |
| sparc: | TODO |
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index d557cc50295d..336b925570c0 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -70,6 +70,7 @@ config RISCV
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
select HAVE_ARCH_AUDITSYSCALL
+ select HAVE_ARCH_HUGE_VMAP if MMU && 64BIT && !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
select HAVE_ARCH_KASAN if MMU && 64BIT
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index ff9abc00d139..48da5371f1e9 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -1,4 +1,22 @@
#ifndef _ASM_RISCV_VMALLOC_H
#define _ASM_RISCV_VMALLOC_H
+#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
+
+#define IOREMAP_MAX_ORDER (PUD_SHIFT)
+
+#define arch_vmap_pud_supported arch_vmap_pud_supported
+static inline bool arch_vmap_pud_supported(pgprot_t prot)
+{
+ return true;
+}
+
+#define arch_vmap_pmd_supported arch_vmap_pmd_supported
+static inline bool arch_vmap_pmd_supported(pgprot_t prot)
+{
+ return true;
+}
+
+#endif
+
#endif /* _ASM_RISCV_VMALLOC_H */
diff --git a/arch/riscv/mm/Makefile b/arch/riscv/mm/Makefile
index d76aabf4b94d..ce7f121ad2dc 100644
--- a/arch/riscv/mm/Makefile
+++ b/arch/riscv/mm/Makefile
@@ -13,6 +13,7 @@ obj-y += extable.o
obj-$(CONFIG_MMU) += fault.o pageattr.o
obj-y += cacheflush.o
obj-y += context.o
+obj-y += pgtable.o
ifeq ($(CONFIG_MMU),y)
obj-$(CONFIG_SMP) += tlbflush.o
diff --git a/arch/riscv/mm/pgtable.c b/arch/riscv/mm/pgtable.c
new file mode 100644
index 000000000000..6645ead1a7c1
--- /dev/null
+++ b/arch/riscv/mm/pgtable.c
@@ -0,0 +1,83 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <asm/pgalloc.h>
+#include <linux/gfp.h>
+#include <linux/kernel.h>
+#include <linux/pgtable.h>
+
+#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
+int p4d_set_huge(p4d_t *p4d, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+void p4d_clear_huge(p4d_t *p4d)
+{
+}
+
+int pud_set_huge(pud_t *pud, phys_addr_t phys, pgprot_t prot)
+{
+ pud_t new_pud = pfn_pud(__phys_to_pfn(phys), prot);
+
+ set_pud(pud, new_pud);
+ return 1;
+}
+
+int pud_clear_huge(pud_t *pud)
+{
+ if (!pud_leaf(READ_ONCE(*pud)))
+ return 0;
+ pud_clear(pud);
+ return 1;
+}
+
+int pud_free_pmd_page(pud_t *pud, unsigned long addr)
+{
+ pmd_t *pmd = pud_pgtable(*pud);
+ int i;
+
+ pud_clear(pud);
+
+ flush_tlb_kernel_range(addr, addr + PUD_SIZE);
+
+ for (i = 0; i < PTRS_PER_PMD; i++) {
+ if (!pmd_none(pmd[i])) {
+ pte_t *pte = (pte_t *)pmd_page_vaddr(pmd[i]);
+
+ pte_free_kernel(NULL, pte);
+ }
+ }
+
+ pmd_free(NULL, pmd);
+
+ return 1;
+}
+
+int pmd_set_huge(pmd_t *pmd, phys_addr_t phys, pgprot_t prot)
+{
+ pmd_t new_pmd = pfn_pmd(__phys_to_pfn(phys), prot);
+
+ set_pmd(pmd, new_pmd);
+ return 1;
+}
+
+int pmd_clear_huge(pmd_t *pmd)
+{
+ if (!pmd_leaf(READ_ONCE(*pmd)))
+ return 0;
+ pmd_clear(pmd);
+ return 1;
+}
+
+int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
+{
+ pte_t *pte = (pte_t *)pmd_page_vaddr(*pmd);
+
+ pmd_clear(pmd);
+
+ flush_tlb_kernel_range(addr, addr + PMD_SIZE);
+ pte_free_kernel(NULL, pte);
+ return 1;
+}
+
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
--
2.25.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 13%]
* [PATCH 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC
@ 2022-09-15 6:50 5% ` Liu Shixin
0 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-09-15 6:50 UTC (permalink / raw)
To: Jonathan Corbet, Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-riscv, Liu Shixin, Kefeng Wang
Since riscv64 has already support SATP_MODE_57 by default, it is time to
support more hugepage-related features. These two patches will enable
HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC.
Liu Shixin (2):
riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
.../features/vm/huge-vmap/arch-support.txt | 2 +-
arch/riscv/Kconfig | 2 +
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
5 files changed, 105 insertions(+), 1 deletion(-)
create mode 100644 arch/riscv/mm/pgtable.c
--
2.25.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 5%]
* [PATCH 1/2] riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
@ 2022-09-15 6:50 13% ` Liu Shixin
0 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-09-15 6:50 UTC (permalink / raw)
To: Jonathan Corbet, Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-riscv, Liu Shixin, Kefeng Wang
This sets the HAVE_ARCH_HUGE_VMAP option, and defines the required
page table functions. With this feature, ioremap area will be mapped with
huge page granularity according to its actual size. This feature can be
disabled by kernel parameter "nohugeiomap".
Signed-off-by: Liu Shixin <liushixin2@huawei.com>
---
.../features/vm/huge-vmap/arch-support.txt | 2 +-
arch/riscv/Kconfig | 1 +
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
5 files changed, 104 insertions(+), 1 deletion(-)
create mode 100644 arch/riscv/mm/pgtable.c
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index 13b4940e0c3a..7274a4b15bcc 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -21,7 +21,7 @@
| openrisc: | TODO |
| parisc: | TODO |
| powerpc: | ok |
- | riscv: | TODO |
+ | riscv: | ok |
| s390: | TODO |
| sh: | TODO |
| sparc: | TODO |
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index d557cc50295d..336b925570c0 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -70,6 +70,7 @@ config RISCV
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
select HAVE_ARCH_AUDITSYSCALL
+ select HAVE_ARCH_HUGE_VMAP if MMU && 64BIT && !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
select HAVE_ARCH_KASAN if MMU && 64BIT
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index ff9abc00d139..48da5371f1e9 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -1,4 +1,22 @@
#ifndef _ASM_RISCV_VMALLOC_H
#define _ASM_RISCV_VMALLOC_H
+#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
+
+#define IOREMAP_MAX_ORDER (PUD_SHIFT)
+
+#define arch_vmap_pud_supported arch_vmap_pud_supported
+static inline bool arch_vmap_pud_supported(pgprot_t prot)
+{
+ return true;
+}
+
+#define arch_vmap_pmd_supported arch_vmap_pmd_supported
+static inline bool arch_vmap_pmd_supported(pgprot_t prot)
+{
+ return true;
+}
+
+#endif
+
#endif /* _ASM_RISCV_VMALLOC_H */
diff --git a/arch/riscv/mm/Makefile b/arch/riscv/mm/Makefile
index d76aabf4b94d..ce7f121ad2dc 100644
--- a/arch/riscv/mm/Makefile
+++ b/arch/riscv/mm/Makefile
@@ -13,6 +13,7 @@ obj-y += extable.o
obj-$(CONFIG_MMU) += fault.o pageattr.o
obj-y += cacheflush.o
obj-y += context.o
+obj-y += pgtable.o
ifeq ($(CONFIG_MMU),y)
obj-$(CONFIG_SMP) += tlbflush.o
diff --git a/arch/riscv/mm/pgtable.c b/arch/riscv/mm/pgtable.c
new file mode 100644
index 000000000000..6645ead1a7c1
--- /dev/null
+++ b/arch/riscv/mm/pgtable.c
@@ -0,0 +1,83 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <asm/pgalloc.h>
+#include <linux/gfp.h>
+#include <linux/kernel.h>
+#include <linux/pgtable.h>
+
+#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
+int p4d_set_huge(p4d_t *p4d, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+void p4d_clear_huge(p4d_t *p4d)
+{
+}
+
+int pud_set_huge(pud_t *pud, phys_addr_t phys, pgprot_t prot)
+{
+ pud_t new_pud = pfn_pud(__phys_to_pfn(phys), prot);
+
+ set_pud(pud, new_pud);
+ return 1;
+}
+
+int pud_clear_huge(pud_t *pud)
+{
+ if (!pud_leaf(READ_ONCE(*pud)))
+ return 0;
+ pud_clear(pud);
+ return 1;
+}
+
+int pud_free_pmd_page(pud_t *pud, unsigned long addr)
+{
+ pmd_t *pmd = pud_pgtable(*pud);
+ int i;
+
+ pud_clear(pud);
+
+ flush_tlb_kernel_range(addr, addr + PUD_SIZE);
+
+ for (i = 0; i < PTRS_PER_PMD; i++) {
+ if (!pmd_none(pmd[i])) {
+ pte_t *pte = (pte_t *)pmd_page_vaddr(pmd[i]);
+
+ pte_free_kernel(NULL, pte);
+ }
+ }
+
+ pmd_free(NULL, pmd);
+
+ return 1;
+}
+
+int pmd_set_huge(pmd_t *pmd, phys_addr_t phys, pgprot_t prot)
+{
+ pmd_t new_pmd = pfn_pmd(__phys_to_pfn(phys), prot);
+
+ set_pmd(pmd, new_pmd);
+ return 1;
+}
+
+int pmd_clear_huge(pmd_t *pmd)
+{
+ if (!pmd_leaf(READ_ONCE(*pmd)))
+ return 0;
+ pmd_clear(pmd);
+ return 1;
+}
+
+int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
+{
+ pte_t *pte = (pte_t *)pmd_page_vaddr(*pmd);
+
+ pmd_clear(pmd);
+
+ flush_tlb_kernel_range(addr, addr + PMD_SIZE);
+ pte_free_kernel(NULL, pte);
+ return 1;
+}
+
+#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
--
2.25.1
^ permalink raw reply related [relevance 13%]
* [PATCH 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC
@ 2022-09-15 6:50 5% ` Liu Shixin
0 siblings, 0 replies; 200+ results
From: Liu Shixin @ 2022-09-15 6:50 UTC (permalink / raw)
To: Jonathan Corbet, Paul Walmsley, Palmer Dabbelt, Albert Ou
Cc: linux-doc, linux-riscv, Liu Shixin, Kefeng Wang
Since riscv64 has already support SATP_MODE_57 by default, it is time to
support more hugepage-related features. These two patches will enable
HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC.
Liu Shixin (2):
riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT
riscv: Enable HAVE_ARCH_HUGE_VMALLOC for 64BIT
.../features/vm/huge-vmap/arch-support.txt | 2 +-
arch/riscv/Kconfig | 2 +
arch/riscv/include/asm/vmalloc.h | 18 ++++
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/pgtable.c | 83 +++++++++++++++++++
5 files changed, 105 insertions(+), 1 deletion(-)
create mode 100644 arch/riscv/mm/pgtable.c
--
2.25.1
^ permalink raw reply [relevance 5%]
* [dm-devel] [PATCH 1/2] mm: export is_vmalloc_or_module_addr
@ 2022-09-05 15:21 7% Mikulas Patocka
0 siblings, 0 replies; 200+ results
From: Mikulas Patocka @ 2022-09-05 15:21 UTC (permalink / raw)
To: Mike Snitzer; +Cc: dm-devel
Export is_vmalloc_or_module_addr - we will need it in device mapper to
determine if the error string is statically or dynamically allocated.
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
---
mm/vmalloc.c | 1 +
1 file changed, 1 insertion(+)
Index: linux-dm/mm/vmalloc.c
===================================================================
--- linux-dm.orig/mm/vmalloc.c 2022-09-05 13:29:57.000000000 +0200
+++ linux-dm/mm/vmalloc.c 2022-09-05 14:30:51.000000000 +0200
@@ -637,6 +637,7 @@ int is_vmalloc_or_module_addr(const void
#endif
return is_vmalloc_addr(x);
}
+EXPORT_SYMBOL(is_vmalloc_or_module_addr);
/*
* Walk a vmap address to the struct page it maps. Huge vmap mappings will
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply [relevance 7%]
* [PULL] drm-misc-fixes
@ 2022-08-25 7:31 1% ` Thomas Zimmermann
0 siblings, 0 replies; 200+ results
From: Thomas Zimmermann @ 2022-08-25 7:31 UTC (permalink / raw)
To: Dave Airlie, Daniel Vetter
Cc: Tvrtko Ursulin, dim-tools, dri-devel, Thomas Zimmermann,
Rodrigo Vivi, intel-gfx
Hi Dave and Daniel,
here's the weekly PR for drm-misc-fixes.
Best regards
Thomas
drm-misc-fixes-2022-08-25:
Short summary of fixes pull:
* gem: Fixes handle release leak
* nouveau: Fix fencing when moving BO
* vc4: HDMI fixes
* Backmerging for v6.0-rc1
The following changes since commit 82a1356a933d8443139f8886f11b63c974a09a67:
drm/sun4i: dsi: Prevent underflow when computing packet sizes (2022-08-15 09:09:49 +0200)
are available in the Git repository at:
git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-fixes-2022-08-25
for you to fetch changes up to 6b04ce966a738ecdd9294c9593e48513c0dc90aa:
nouveau: explicitly wait on the fence in nouveau_bo_move_m2mf (2022-08-23 18:00:12 +0200)
----------------------------------------------------------------
Short summary of fixes pull:
* gem: Fixes handle release leak
* nouveau: Fix fencing when moving BO
* vc4: HDMI fixes
* Backmerging for v6.0-rc1
----------------------------------------------------------------
Jeffy Chen (1):
drm/gem: Fix GEM handle release errors
Karol Herbst (1):
nouveau: explicitly wait on the fence in nouveau_bo_move_m2mf
Maxime Ripard (2):
drm/vc4: hdmi: Depends on CONFIG_PM
drm/vc4: hdmi: Rework power up
Thomas Zimmermann (1):
Merge drm/drm-fixes into drm-misc-fixes
.clang-format | 1 +
.mailmap | 17 +-
CREDITS | 8 +
Documentation/ABI/stable/sysfs-block | 9 +
Documentation/ABI/stable/sysfs-driver-mlxreg-io | 81 +-
Documentation/ABI/stable/sysfs-module | 2 +-
.../ABI/testing/configfs-usb-gadget-mass-storage | 10 +-
.../ABI/testing/debugfs-driver-habanalabs | 38 +-
Documentation/ABI/testing/procfs-smaps_rollup | 1 +
Documentation/ABI/testing/sysfs-ata | 11 +-
Documentation/ABI/testing/sysfs-bus-cxl | 305 +-
.../testing/sysfs-bus-event_source-devices-caps | 18 +
Documentation/ABI/testing/sysfs-bus-iio | 8 +
Documentation/ABI/testing/sysfs-bus-iio-sx9324 | 1 +
.../ABI/testing/sysfs-bus-iio-temperature-max31856 | 31 -
.../ABI/testing/sysfs-bus-iio-temperature-max31865 | 20 -
.../ABI/testing/sysfs-bus-iio-thermocouple | 18 +
.../ABI/testing/sysfs-bus-iio-timer-stm32 | 8 -
Documentation/ABI/testing/sysfs-bus-iio-vf610 | 2 +-
.../ABI/testing/sysfs-bus-platform-onboard-usb-hub | 8 +
.../testing/sysfs-bus-surface_aggregator-tabletsw | 57 +
Documentation/ABI/testing/sysfs-bus-usb | 11 +
Documentation/ABI/testing/sysfs-class-hwmon | 9 +
Documentation/ABI/testing/sysfs-class-pwm | 2 +-
Documentation/ABI/testing/sysfs-class-rtrs-client | 2 +-
Documentation/ABI/testing/sysfs-class-rtrs-server | 2 +-
Documentation/ABI/testing/sysfs-class-typec | 8 +
.../ABI/testing/sysfs-class-usb_power_delivery | 240 +
Documentation/ABI/testing/sysfs-class-vduse | 33 +
.../ABI/testing/sysfs-devices-platform-ACPI-TAD | 2 +-
.../ABI/testing/sysfs-devices-platform-soc-ipa | 62 +-
Documentation/ABI/testing/sysfs-devices-power | 2 +-
Documentation/ABI/testing/sysfs-devices-soc | 14 +-
Documentation/ABI/testing/sysfs-devices-system-cpu | 11 +-
.../ABI/testing/sysfs-driver-bd9571mwv-regulator | 2 +-
.../testing/sysfs-driver-intel-m10-bmc-sec-update | 61 +
Documentation/ABI/testing/sysfs-driver-qat | 49 +
Documentation/ABI/testing/sysfs-driver-xen-blkback | 2 +-
.../ABI/testing/sysfs-driver-xen-blkfront | 2 +-
.../ABI/testing/sysfs-firmware-qemu_fw_cfg | 5 +-
Documentation/ABI/testing/sysfs-fs-f2fs | 30 +
Documentation/ABI/testing/sysfs-kernel-mm-ksm | 2 +-
Documentation/ABI/testing/sysfs-kernel-slab | 4 +-
Documentation/Kconfig | 23 +-
Documentation/PCI/endpoint/index.rst | 2 +
Documentation/PCI/endpoint/pci-vntb-function.rst | 129 +
Documentation/PCI/endpoint/pci-vntb-howto.rst | 167 +
Documentation/PCI/pci-iov-howto.rst | 7 +-
Documentation/PCI/sysfs-pci.rst | 2 +-
.../RCU/Design/Requirements/Requirements.rst | 10 +-
Documentation/RCU/stallwarn.rst | 6 +-
Documentation/admin-guide/cgroup-v1/memcg_test.rst | 2 +-
Documentation/admin-guide/cgroup-v2.rst | 39 +-
.../admin-guide/device-mapper/writecache.rst | 18 +-
Documentation/admin-guide/devices.rst | 7 +-
Documentation/admin-guide/efi-stub.rst | 4 +-
Documentation/admin-guide/hw-vuln/index.rst | 1 +
.../hw-vuln/processor_mmio_stale_data.rst | 246 +
Documentation/admin-guide/hw-vuln/spectre.rst | 8 +
Documentation/admin-guide/kernel-parameters.txt | 265 +-
Documentation/admin-guide/media/vimc.dot | 4 +
Documentation/admin-guide/media/vimc.rst | 19 +
Documentation/admin-guide/media/vivid.rst | 14 +
Documentation/admin-guide/mm/concepts.rst | 2 +-
Documentation/admin-guide/mm/damon/index.rst | 3 +-
Documentation/admin-guide/mm/damon/lru_sort.rst | 294 +
Documentation/admin-guide/mm/damon/reclaim.rst | 8 +-
Documentation/admin-guide/mm/damon/usage.rst | 10 +-
Documentation/admin-guide/mm/hugetlbpage.rst | 4 +-
Documentation/admin-guide/mm/index.rst | 1 +
Documentation/admin-guide/mm/memory-hotplug.rst | 4 +-
Documentation/admin-guide/mm/shrinker_debugfs.rst | 135 +
Documentation/admin-guide/perf/hns3-pmu.rst | 136 +
Documentation/admin-guide/perf/index.rst | 1 +
Documentation/admin-guide/pm/cpuidle.rst | 15 +-
Documentation/admin-guide/sysctl/kernel.rst | 16 +-
Documentation/admin-guide/sysctl/net.rst | 12 +
Documentation/admin-guide/sysctl/vm.rst | 10 +-
Documentation/admin-guide/tainted-kernels.rst | 1 +
Documentation/arm/google/chromebook-boot-flow.rst | 69 +
Documentation/arm/index.rst | 2 +
Documentation/arm/samsung-s3c24xx/cpufreq.rst | 3 +-
Documentation/arm/tcm.rst | 2 +-
Documentation/arm64/elf_hwcaps.rst | 27 +-
Documentation/arm64/memory.rst | 10 +-
Documentation/arm64/silicon-errata.rst | 6 +
Documentation/arm64/sme.rst | 2 +-
Documentation/block/null_blk.rst | 22 +
Documentation/bpf/bpf_design_QA.rst | 25 +
Documentation/bpf/btf.rst | 49 +-
Documentation/bpf/index.rst | 1 +
Documentation/bpf/instruction-set.rst | 4 +-
Documentation/bpf/kfuncs.rst | 170 +
.../bpf/libbpf/libbpf_naming_convention.rst | 13 +-
Documentation/bpf/map_hash.rst | 185 +
Documentation/core-api/bus-virt-phys-mapping.rst | 220 -
Documentation/core-api/dma-api-howto.rst | 14 -
Documentation/core-api/dma-api.rst | 14 +
Documentation/core-api/idr.rst | 3 +
Documentation/core-api/index.rst | 3 +-
Documentation/core-api/kernel-api.rst | 2 +-
Documentation/core-api/mm-api.rst | 8 +-
Documentation/core-api/protection-keys.rst | 44 +-
Documentation/core-api/symbol-namespaces.rst | 4 +-
Documentation/dev-tools/coccinelle.rst | 2 +-
Documentation/dev-tools/kmemleak.rst | 1 -
Documentation/dev-tools/kselftest.rst | 36 +-
Documentation/dev-tools/kunit/run_wrapper.rst | 81 +-
Documentation/dev-tools/kunit/running_tips.rst | 5 +-
Documentation/dev-tools/kunit/usage.rst | 2 +-
Documentation/devicetree/bindings/Makefile | 4 +-
Documentation/devicetree/bindings/arm/altera.yaml | 10 +-
.../bindings/arm/arm,coresight-catu.yaml | 101 +
.../bindings/arm/arm,coresight-cpu-debug.yaml | 81 +
.../{coresight-cti.yaml => arm,coresight-cti.yaml} | 5 +-
.../bindings/arm/arm,coresight-dynamic-funnel.yaml | 126 +
.../arm/arm,coresight-dynamic-replicator.yaml | 126 +
.../bindings/arm/arm,coresight-etb10.yaml | 92 +
.../devicetree/bindings/arm/arm,coresight-etm.yaml | 156 +
.../bindings/arm/arm,coresight-static-funnel.yaml | 90 +
.../arm/arm,coresight-static-replicator.yaml | 91 +
.../devicetree/bindings/arm/arm,coresight-stm.yaml | 101 +
.../devicetree/bindings/arm/arm,coresight-tmc.yaml | 131 +
.../bindings/arm/arm,coresight-tpiu.yaml | 91 +
...{ete.yaml => arm,embedded-trace-extension.yaml} | 3 +-
.../{trbe.yaml => arm,trace-buffer-extension.yaml} | 2 +-
.../devicetree/bindings/arm/aspeed/aspeed.yaml | 87 +
.../devicetree/bindings/arm/atmel-at91.yaml | 6 +-
.../devicetree/bindings/arm/atmel-sysregs.txt | 15 -
.../devicetree/bindings/arm/bcm/brcm,bcm4708.yaml | 7 +
.../devicetree/bindings/arm/bcm/brcm,bcmbca.yaml | 93 +
.../bindings/arm/coresight-cpu-debug.txt | 49 -
.../devicetree/bindings/arm/coresight.txt | 402 -
Documentation/devicetree/bindings/arm/cpus.yaml | 2 +
.../devicetree/bindings/arm/freescale/fsl,scu.txt | 271 -
Documentation/devicetree/bindings/arm/fsl.yaml | 61 +-
.../arm/marvell/ap80x-system-controller.txt | 2 +-
.../arm/marvell/cp110-system-controller.txt | 2 +-
.../bindings/arm/marvell/marvell,ac5.yaml | 32 +
.../devicetree/bindings/arm/mediatek.yaml | 30 +
.../arm/mediatek/mediatek,mt8186-sys-clock.yaml | 3 +
.../arm/mediatek/mediatek,mt8192-clock.yaml | 8 -
.../arm/mediatek/mediatek,mt8192-sys-clock.yaml | 3 +
.../arm/mediatek/mediatek,mt8195-sys-clock.yaml | 3 +
.../bindings/arm/mediatek/mediatek,pericfg.yaml | 1 +
.../devicetree/bindings/arm/msm/qcom,saw2.txt | 2 +-
.../devicetree/bindings/arm/npcm/npcm.yaml | 7 +
.../devicetree/bindings/arm/npcm/nuvoton,gcr.yaml | 2 +
Documentation/devicetree/bindings/arm/qcom.yaml | 443 +-
.../devicetree/bindings/arm/rockchip.yaml | 5 +
.../bindings/arm/samsung/samsung-soc.yaml | 40 +
.../devicetree/bindings/arm/stm32/stm32.yaml | 8 +-
.../devicetree/bindings/arm/sunplus,sp7021.yaml | 29 +
Documentation/devicetree/bindings/arm/sunxi.yaml | 10 +
.../arm/sunxi/allwinner,sun4i-a10-mbus.yaml | 24 +-
.../arm/tegra/nvidia,tegra-ccplex-cluster.yaml | 1 -
.../arm/tegra/nvidia,tegra194-axi2apb.yaml | 40 +
.../bindings/arm/tegra/nvidia,tegra194-cbb.yaml | 97 +
.../bindings/arm/tegra/nvidia,tegra20-pmc.yaml | 2 +-
.../bindings/arm/tegra/nvidia,tegra234-cbb.yaml | 74 +
.../devicetree/bindings/arm/vexpress-sysreg.yaml | 10 +-
.../devicetree/bindings/ata/ahci-ceva.txt | 63 -
.../devicetree/bindings/ata/ceva,ahci-1v84.yaml | 189 +
.../bindings/bus/qcom,ssc-block-bus.yaml | 25 +-
Documentation/devicetree/bindings/chosen.txt | 137 -
.../bindings/chrome/google,cros-ec-typec.yaml | 15 +-
.../chrome/google,cros-kbd-led-backlight.yaml | 35 +
.../clock/allwinner,sun8i-a83t-de2-clk.yaml | 3 +
.../devicetree/bindings/clock/efm32-clock.txt | 11 -
.../bindings/clock/fixed-factor-clock.yaml | 1 -
.../devicetree/bindings/clock/fsl,scu-clk.yaml | 43 +
.../devicetree/bindings/clock/idt,versaclock5.yaml | 2 +-
.../bindings/clock/nuvoton,npcm845-clk.yaml | 49 +
.../bindings/clock/qcom,dispcc-sm8x50.yaml | 6 +-
.../bindings/clock/qcom,gcc-apq8064.yaml | 40 +-
.../bindings/clock/qcom,gcc-ipq8074.yaml | 5 +
.../bindings/clock/qcom,gcc-msm8996.yaml | 16 +
.../devicetree/bindings/clock/qcom,gcc-other.yaml | 5 +-
.../devicetree/bindings/clock/qcom,gcc-sdm845.yaml | 3 +
.../bindings/clock/qcom,gpucc-sm8350.yaml | 72 +
.../devicetree/bindings/clock/qcom,rpmcc.yaml | 85 +-
.../bindings/clock/qcom,sm8450-camcc.yaml | 80 +
.../bindings/clock/renesas,rzg2l-cpg.yaml | 7 +-
.../bindings/clock/samsung,exynos7885-clock.yaml | 27 +
.../devicetree/bindings/clock/sprd,ums512-clk.yaml | 71 +
.../devicetree/bindings/clock/st,stm32mp1-rcc.yaml | 1 +
.../devicetree/bindings/clock/st/st,flexgen.txt | 2 +-
.../bindings/clock/sunplus,sp7021-clkc.yaml | 52 +
.../devicetree/bindings/clock/ti/davinci/pll.txt | 2 +-
.../devicetree/bindings/clock/ti/dra7-atl.txt | 2 +-
.../bindings/connector/usb-connector.yaml | 152 +-
.../bindings/cpufreq/brcm,stb-avs-cpu-freq.txt | 2 +-
.../bindings/cpufreq/cpufreq-qcom-hw.yaml | 1 +
.../bindings/cpufreq/qcom-cpufreq-nvmem.yaml | 11 +-
.../devicetree/bindings/devfreq/exynos-bus.txt | 488 -
.../allwinner,sun4i-a10-display-engine.yaml | 1 +
.../devicetree/bindings/display/arm,malidp.yaml | 7 +-
.../devicetree/bindings/display/arm,pl11x.yaml | 15 +-
.../devicetree/bindings/display/atmel,lcdc.txt | 1 -
.../bindings/display/bridge/analogix,anx7625.yaml | 19 +-
.../bindings/display/bridge/fsl,imx8qxp-ldb.yaml | 173 +
.../display/bridge/fsl,imx8qxp-pixel-combiner.yaml | 144 +
.../display/bridge/fsl,imx8qxp-pixel-link.yaml | 144 +
.../display/bridge/fsl,imx8qxp-pxl2dpi.yaml | 108 +
.../bindings/display/bridge/fsl,ldb.yaml | 16 +-
.../display/bridge/ingenic,jz4780-hdmi.yaml | 1 -
.../devicetree/bindings/display/bridge/sii902x.txt | 78 -
.../bindings/display/bridge/sil,sii9022.yaml | 131 +
.../bindings/display/bridge/ti,dlpc3433.yaml | 117 +
.../devicetree/bindings/display/fsl,lcdif.yaml | 1 +
.../devicetree/bindings/display/ilitek,ili9341.txt | 27 -
.../bindings/display/mediatek/mediatek,dpi.yaml | 11 +-
.../bindings/display/mediatek/mediatek,dsi.txt | 62 -
.../bindings/display/mediatek/mediatek,dsi.yaml | 116 +
.../display/mediatek/mediatek,mdp-rdma.yaml | 88 +
.../bindings/display/msm/dp-controller.yaml | 8 +-
.../bindings/display/msm/dpu-sc7180.yaml | 2 +-
.../bindings/display/msm/dpu-sc7280.yaml | 2 +-
.../bindings/display/msm/dpu-sdm845.yaml | 2 +-
.../bindings/display/msm/dsi-controller-main.yaml | 2 +-
.../bindings/display/msm/dsi-phy-10nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-14nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-20nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-28nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-common.yaml | 2 +-
.../devicetree/bindings/display/msm/hdmi.txt | 99 -
.../devicetree/bindings/display/msm/hdmi.yaml | 232 +
.../bindings/display/panel/arm,rtsm-display.yaml | 27 +
.../bindings/display/panel/ebbg,ft8719.yaml | 74 +
.../display/panel/feiyang,fy07024di26a30d.yaml | 1 -
.../bindings/display/panel/ilitek,ili9341.yaml | 49 +-
.../bindings/display/panel/lg,lg4573.yaml | 2 +-
.../bindings/display/panel/lgphilips,lb035q02.yaml | 3 +
.../bindings/display/panel/novatek,nt36672a.yaml | 2 +
.../bindings/display/panel/panel-simple.yaml | 8 +
.../bindings/display/panel/raydium,rm67191.yaml | 1 +
.../bindings/display/panel/samsung,ld9040.yaml | 3 +
.../bindings/display/panel/sharp,lq101r1sx01.yaml | 7 +-
.../bindings/display/panel/sitronix,st7789v.yaml | 3 +
.../devicetree/bindings/display/panel/tpo,td.yaml | 3 +
.../display/samsung/samsung,exynos-hdmi-ddc.yaml | 1 -
.../display/samsung/samsung,exynos-hdmi.yaml | 1 -
.../display/samsung/samsung,exynos-mixer.yaml | 1 -
.../display/samsung/samsung,exynos5433-decon.yaml | 1 -
.../display/samsung/samsung,exynos5433-mic.yaml | 1 -
.../display/samsung/samsung,exynos7-decon.yaml | 1 -
.../bindings/display/samsung/samsung,fimd.yaml | 1 -
.../bindings/display/simple-framebuffer.yaml | 1 -
.../bindings/display/sitronix,st7735r.yaml | 1 +
.../bindings/display/solomon,ssd1307fb.yaml | 7 +-
.../display/tegra/nvidia,tegra114-mipi.txt | 41 -
.../display/tegra/nvidia,tegra114-mipi.yaml | 74 +
.../display/tegra/nvidia,tegra124-dpaux.yaml | 152 +
.../display/tegra/nvidia,tegra124-sor.yaml | 197 +
.../display/tegra/nvidia,tegra124-vic.yaml | 72 +
.../bindings/display/tegra/nvidia,tegra186-dc.yaml | 85 +
.../display/tegra/nvidia,tegra186-display.yaml | 310 +
.../display/tegra/nvidia,tegra186-dsi-padctl.yaml | 45 +
.../bindings/display/tegra/nvidia,tegra20-dc.yaml | 183 +
.../bindings/display/tegra/nvidia,tegra20-dsi.yaml | 159 +
.../bindings/display/tegra/nvidia,tegra20-epp.yaml | 70 +
.../display/tegra/nvidia,tegra20-gr2d.yaml | 74 +
.../display/tegra/nvidia,tegra20-gr3d.yaml | 215 +
.../display/tegra/nvidia,tegra20-hdmi.yaml | 126 +
.../display/tegra/nvidia,tegra20-host1x.txt | 675 -
.../display/tegra/nvidia,tegra20-host1x.yaml | 431 +
.../bindings/display/tegra/nvidia,tegra20-isp.yaml | 67 +
.../bindings/display/tegra/nvidia,tegra20-mpe.yaml | 73 +
.../bindings/display/tegra/nvidia,tegra20-tvo.yaml | 58 +
.../bindings/display/tegra/nvidia,tegra20-vi.yaml | 163 +
.../display/tegra/nvidia,tegra210-csi.yaml | 52 +
.../bindings/dma/allwinner,sun50i-a64-dma.yaml | 2 +-
.../devicetree/bindings/dma/apple,admac.yaml | 80 +
.../devicetree/bindings/dma/fsl,edma.yaml | 155 +
Documentation/devicetree/bindings/dma/fsl-edma.txt | 111 -
.../devicetree/bindings/dma/mediatek,uart-dma.yaml | 1 +
.../bindings/dma/nvidia,tegra186-gpc-dma.yaml | 4 +-
.../devicetree/bindings/dma/qcom,bam-dma.yaml | 100 +
.../devicetree/bindings/dma/qcom_bam_dma.txt | 52 -
.../devicetree/bindings/dma/snps,dw-axi-dmac.yaml | 7 +-
.../devicetree/bindings/dma/ste-dma40.txt | 138 -
.../devicetree/bindings/dma/stericsson,dma40.yaml | 159 +
.../bindings/dsp/mediatek,mt8186-dsp.yaml | 91 +
.../bindings/dsp/mediatek,mt8195-dsp.yaml | 10 +-
Documentation/devicetree/bindings/eeprom/at25.yaml | 5 +-
.../microchip,93lc46b.yaml} | 11 +-
.../devicetree/bindings/firmware/arm,scmi.yaml | 10 +
.../devicetree/bindings/firmware/fsl,scu.yaml | 210 +
.../devicetree/bindings/firmware/qcom,scm.txt | 4 +
.../devicetree/bindings/fpga/fpga-region.txt | 2 +-
.../bindings/fpga/microchip,mpf-spi-fpga-mgr.yaml | 44 +
.../devicetree/bindings/gpio/fsl-imx-gpio.yaml | 2 +
.../devicetree/bindings/gpio/gpio-mvebu.txt | 93 -
.../devicetree/bindings/gpio/gpio-mvebu.yaml | 146 +
.../devicetree/bindings/gpio/gpio-pca9570.yaml | 1 +
.../devicetree/bindings/gpio/gpio-pisosr.txt | 2 +-
.../devicetree/bindings/gpio/gpio-tpic2810.txt | 16 -
.../devicetree/bindings/gpio/gpio-tpic2810.yaml | 51 +
.../devicetree/bindings/gpio/gpio-zynq.yaml | 59 +-
.../bindings/gpio/renesas,rcar-gpio.yaml | 4 +-
.../bindings/gpio/rockchip,gpio-bank.yaml | 2 +
.../devicetree/bindings/gpio/sifive,gpio.yaml | 4 +
.../bindings/gpio/x-powers,axp209-gpio.yaml | 6 +
.../devicetree/bindings/gpu/arm,mali-bifrost.yaml | 25 +-
.../devicetree/bindings/gpu/brcm,bcm-v3d.yaml | 1 +
.../bindings/{arm => hwinfo}/renesas,prr.yaml | 4 +-
.../samsung,exynos-chipid.yaml} | 2 +-
.../bindings/hwinfo/samsung,s5pv210-chipid.yaml | 30 +
.../k3-socinfo.yaml => hwinfo/ti,k3-socinfo.yaml} | 2 +-
.../devicetree/bindings/hwmon/adi,adm1177.yaml | 1 -
.../devicetree/bindings/hwmon/adt7475.yaml | 2 +-
.../bindings/{i2c => hwmon}/ibm,p8-occ-hwmon.txt | 0
.../devicetree/bindings/hwmon/national,lm90.yaml | 131 +
.../devicetree/bindings/hwmon/ti,tmp401.yaml | 5 +-
.../devicetree/bindings/hwmon/vexpress.txt | 2 +-
.../devicetree/bindings/i2c/arm,i2c-versatile.yaml | 29 +
.../devicetree/bindings/i2c/i2c-efm32.txt | 33 -
.../devicetree/bindings/i2c/i2c-mt65xx.yaml | 1 +
.../devicetree/bindings/i2c/i2c-nomadik.txt | 23 -
.../devicetree/bindings/i2c/i2c-ocores.txt | 78 -
.../devicetree/bindings/i2c/i2c-qcom-cci.txt | 95 -
.../devicetree/bindings/i2c/i2c-rk3x.yaml | 2 +
.../devicetree/bindings/i2c/i2c-versatile.txt | 10 -
.../bindings/i2c/marvell,mv64xxx-i2c.yaml | 10 +-
.../bindings/i2c/nuvoton,npcm7xx-i2c.yaml | 25 +-
.../bindings/i2c/opencores,i2c-ocores.yaml | 113 +
.../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 242 +
.../devicetree/bindings/i2c/renesas,rzv2m.yaml | 80 +
.../devicetree/bindings/i2c/st,nomadik-i2c.yaml | 115 +
.../devicetree/bindings/i2c/st,stm32-i2c.yaml | 2 +
.../bindings/iio/accel/adi,adis16240.yaml | 2 +-
.../devicetree/bindings/iio/accel/adi,adxl345.yaml | 2 +-
.../bindings/iio/accel/bosch,bmi088.yaml | 2 +
.../devicetree/bindings/iio/accel/fsl,mma7455.yaml | 1 -
.../bindings/iio/accel/murata,sca3300.yaml | 1 +
.../devicetree/bindings/iio/adc/adi,ad7091r5.yaml | 2 +-
.../devicetree/bindings/iio/adc/adi,ad7606.yaml | 3 +-
.../devicetree/bindings/iio/adc/adi,ad9467.yaml | 1 -
.../devicetree/bindings/iio/adc/adi,axi-adc.yaml | 1 -
.../devicetree/bindings/iio/adc/fsl,vf610-adc.yaml | 9 +-
.../bindings/iio/adc/mediatek,mt2701-auxadc.yaml | 1 +
.../bindings/iio/adc/nuvoton,npcm750-adc.yaml | 7 +-
.../bindings/iio/adc/nxp,lpc1850-adc.yaml | 2 +-
.../bindings/iio/adc/qcom,spmi-rradc.yaml | 51 +
.../bindings/iio/adc/renesas,rzg2l-adc.yaml | 28 +-
.../devicetree/bindings/iio/adc/ti,adc108s102.yaml | 2 +-
.../devicetree/bindings/iio/adc/ti,ads124s08.yaml | 2 +-
.../bindings/iio/amplifiers/adi,hmc425a.yaml | 1 -
.../devicetree/bindings/iio/dac/adi,ad5766.yaml | 2 +
.../devicetree/bindings/iio/dac/adi,ad5770r.yaml | 2 +-
.../bindings/iio/dac/microchip,mcp4922.yaml | 1 +
.../devicetree/bindings/iio/dac/ti,dac5571.yaml | 1 +
.../devicetree/bindings/iio/imu/adi,adis16480.yaml | 2 +-
.../devicetree/bindings/iio/imu/nxp,fxos8700.yaml | 2 +-
.../bindings/iio/proximity/semtech,sx9324.yaml | 39 +
.../bindings/iio/proximity/semtech,sx9360.yaml | 9 +
.../bindings/iio/proximity/st,vl53l0x.yaml | 5 +
.../devicetree/bindings/input/adc-joystick.yaml | 2 +-
.../devicetree/bindings/input/adc-keys.txt | 67 -
.../devicetree/bindings/input/adc-keys.yaml | 103 +
.../input/allwinner,sun4i-a10-lradc-keys.yaml | 5 +-
.../devicetree/bindings/input/ariel-pwrbutton.yaml | 1 +
.../devicetree/bindings/input/azoteq,iqs7222.yaml | 41 +-
.../devicetree/bindings/input/da9062-onkey.txt | 2 +-
.../devicetree/bindings/input/elan,ekth6915.yaml | 65 +
.../bindings/input/fsl,mpr121-touchkey.yaml | 4 +-
.../devicetree/bindings/input/fsl,scu-key.yaml | 40 +
.../devicetree/bindings/input/gpio-keys.yaml | 167 +-
Documentation/devicetree/bindings/input/input.yaml | 24 +-
.../devicetree/bindings/input/iqs269a.yaml | 17 +-
.../devicetree/bindings/input/iqs626a.yaml | 13 +-
.../devicetree/bindings/input/iqs62x-keys.yaml | 9 +-
.../devicetree/bindings/input/max77650-onkey.yaml | 8 +-
.../bindings/input/microchip,cap11xx.yaml | 2 +-
.../bindings/input/touchscreen/edt-ft5x06.yaml | 8 +
.../bindings/input/touchscreen/ektf2127.txt | 2 +-
.../bindings/interconnect/fsl,imx8m-noc.yaml | 6 +-
.../bindings/interconnect/mediatek,cci.yaml | 141 +
.../bindings/interconnect/qcom,msm8998-bwmon.yaml | 86 +
.../devicetree/bindings/interconnect/qcom,rpm.yaml | 6 +-
.../bindings/interconnect/qcom,rpmh-common.yaml | 43 +
.../bindings/interconnect/qcom,rpmh.yaml | 22 +-
.../bindings/interconnect/qcom,sm6350-rpmh.yaml | 82 +
.../bindings/interconnect/samsung,exynos-bus.yaml | 290 +
.../interrupt-controller/rda,8810pl-intc.txt | 61 -
.../interrupt-controller/rda,8810pl-intc.yaml | 43 +
.../interrupt-controller/renesas,rzg2l-irqc.yaml | 134 +
.../interrupt-controller/sifive,plic-1.0.0.yaml | 65 +-
.../socionext,uniphier-aidet.yaml | 1 +
.../interrupt-controller/sunplus,sp7021-intc.yaml | 62 +
.../devicetree/bindings/iommu/arm,smmu.yaml | 1 +
.../devicetree/bindings/iommu/mediatek,iommu.yaml | 17 +
.../devicetree/bindings/iommu/xen,grant-dma.yaml | 39 +
.../devicetree/bindings/leds/backlight/common.yaml | 2 +-
.../bindings/leds/backlight/gpio-backlight.yaml | 2 +-
.../bindings/leds/backlight/led-backlight.yaml | 2 +-
.../bindings/leds/backlight/lm3630a-backlight.yaml | 2 +-
.../bindings/leds/backlight/pwm-backlight.yaml | 2 +-
.../leds/backlight/richtek,rt4831-backlight.yaml | 5 +
.../bindings/leds/cznic,turris-omnia-leds.yaml | 2 +
.../devicetree/bindings/leds/issi,is31fl319x.yaml | 193 +
.../devicetree/bindings/leds/leds-aat1290.txt | 77 -
.../devicetree/bindings/leds/leds-bcm63138.yaml | 95 +
.../bindings/leds/leds-class-multicolor.yaml | 34 +-
.../devicetree/bindings/leds/leds-is31fl319x.txt | 61 -
.../devicetree/bindings/leds/leds-lp50xx.yaml | 116 +-
.../devicetree/bindings/leds/leds-lp55xx.yaml | 222 +-
.../bindings/leds/leds-pwm-multicolor.yaml | 51 +-
.../devicetree/bindings/leds/leds-qcom-lpg.yaml | 3 +
.../devicetree/bindings/leds/skyworks,aat1290.yaml | 95 +
.../devicetree/bindings/mailbox/arm,mhu.yaml | 1 +
.../devicetree/bindings/mailbox/fsl,mu.yaml | 6 +-
.../bindings/mailbox/qcom,apcs-kpss-global.yaml | 46 +-
.../devicetree/bindings/mailbox/qcom-ipcc.yaml | 1 +
.../bindings/media/allwinner,sun6i-a31-csi.yaml | 58 +-
.../media/allwinner,sun6i-a31-mipi-csi2.yaml | 137 +
.../media/allwinner,sun8i-a83t-mipi-csi2.yaml | 125 +
.../bindings/media/exynos-jpeg-codec.txt | 16 -
.../devicetree/bindings/media/gpio-ir-receiver.txt | 20 -
.../bindings/media/gpio-ir-receiver.yaml | 40 +
.../bindings/media/i2c/aptina,mt9p031.yaml | 1 +
.../devicetree/bindings/media/i2c/onnn,ar0521.yaml | 112 +
.../devicetree/bindings/media/i2c/ovti,ov5693.yaml | 124 +
.../media/mediatek,vcodec-subdev-decoder.yaml | 52 +-
.../bindings/media/mediatek-jpeg-encoder.yaml | 6 +
.../bindings/media/nxp,imx-mipi-csi2.yaml | 11 +-
.../bindings/media/qcom,sdm660-camss.yaml | 7 +
Documentation/devicetree/bindings/media/rc.yaml | 2 +-
.../bindings/media/rockchip,rk3568-vepu.yaml | 69 +
.../devicetree/bindings/media/rockchip-isp1.yaml | 23 +-
.../bindings/media/samsung,s5pv210-jpeg.yaml | 123 +
.../memory-controllers/canaan,k210-sram.yaml | 52 +
.../memory-controllers/mediatek,smi-common.yaml | 1 +
.../memory-controllers/mediatek,smi-larb.yaml | 1 +
.../memory-controllers/nvidia,tegra186-mc.yaml | 3 -
Documentation/devicetree/bindings/mfd/da9063.txt | 114 -
.../devicetree/bindings/mfd/dlg,da9063.yaml | 132 +
.../devicetree/bindings/mfd/fsl,imx8qxp-csr.yaml | 192 +
.../devicetree/bindings/mfd/gateworks-gsc.yaml | 1 -
.../devicetree/bindings/mfd/google,cros-ec.yaml | 3 +
.../devicetree/bindings/mfd/maxim,max77714.yaml | 2 +-
.../devicetree/bindings/mfd/mps,mp2629.yaml | 4 +-
Documentation/devicetree/bindings/mfd/mt6397.txt | 8 +-
.../devicetree/bindings/mfd/qcom,spmi-pmic.txt | 94 -
.../devicetree/bindings/mfd/qcom,spmi-pmic.yaml | 190 +
.../devicetree/bindings/mfd/qcom,tcsr.txt | 24 -
.../devicetree/bindings/mfd/qcom,tcsr.yaml | 50 +
.../devicetree/bindings/mfd/qcom-pm8xxx.yaml | 2 +-
.../devicetree/bindings/mfd/rohm,bd71815-pmic.yaml | 2 +-
.../devicetree/bindings/mfd/st,stm32-lptimer.yaml | 28 +-
.../devicetree/bindings/mfd/st,stm32-timers.yaml | 37 +-
Documentation/devicetree/bindings/mfd/syscon.yaml | 2 +-
.../bindings/mfd/ti,j721e-system-controller.yaml | 12 +
.../devicetree/bindings/mips/lantiq/rcu.txt | 2 +-
.../bindings/misc/qemu,vcpu-stall-detector.yaml | 51 +
.../bindings/mmc/brcm,sdhci-brcmstb.yaml | 34 +-
.../devicetree/bindings/mmc/exynos-dw-mshc.txt | 94 -
.../bindings/mmc/marvell,xenon-sdhci.yaml | 4 +-
.../devicetree/bindings/mmc/mmc-spi-slot.txt | 29 -
.../devicetree/bindings/mmc/mmc-spi-slot.yaml | 77 +
Documentation/devicetree/bindings/mmc/mtk-sd.yaml | 62 +-
.../devicetree/bindings/mmc/renesas,sdhi.yaml | 7 +-
.../devicetree/bindings/mmc/rockchip-dw-mshc.yaml | 1 +
.../bindings/mmc/samsung,exynos-dw-mshc.yaml | 160 +
.../bindings/mmc/samsung,s3c6410-sdhci.yaml | 81 +
.../devicetree/bindings/mmc/samsung-sdhci.txt | 32 -
.../devicetree/bindings/mmc/sdhci-msm.yaml | 84 +-
.../bindings/mtd/microchip,mchp48l640.yaml | 7 +-
.../devicetree/bindings/mtd/mxc-nand.yaml | 2 -
.../mtd/partitions/arm,arm-firmware-suite.txt | 17 -
.../mtd/partitions/arm,arm-firmware-suite.yaml | 28 +
.../bindings/mtd/partitions/partition.yaml | 20 +-
.../bindings/mtd/partitions/qcom,smem-part.yaml | 27 +
.../devicetree/bindings/mtd/qcom,nandc.yaml | 27 +
.../bindings/net/allwinner,sun8i-a83t-emac.yaml | 1 +
.../devicetree/bindings/net/altera_tse.txt | 2 +-
.../bindings/net/broadcom-bluetooth.yaml | 25 +
.../bindings/net/can/microchip,mpfs-can.yaml | 45 +
.../devicetree/bindings/net/can/nxp,sja1000.yaml | 132 +
.../devicetree/bindings/net/can/sja1000.txt | 58 -
.../devicetree/bindings/net/cdns,macb.yaml | 14 +-
Documentation/devicetree/bindings/net/cpsw.txt | 2 +-
.../bindings/net/dsa/hirschmann,hellcreek.yaml | 2 +-
.../bindings/net/dsa/mediatek,mt7530.yaml | 407 +
.../bindings/net/dsa/microchip,lan937x.yaml | 192 +
.../devicetree/bindings/net/dsa/mt7530.txt | 327 -
.../bindings/net/dsa/renesas,rzn1-a5psw.yaml | 157 +
.../devicetree/bindings/net/emac_rockchip.txt | 52 -
.../bindings/net/ethernet-controller.yaml | 158 +-
Documentation/devicetree/bindings/net/fsl,fec.yaml | 14 +-
.../bindings/net/mediatek,star-emac.yaml | 17 +
Documentation/devicetree/bindings/net/micrel.txt | 1 +
.../devicetree/bindings/net/nfc/marvell,nci.yaml | 4 +-
.../devicetree/bindings/net/nfc/nxp,nci.yaml | 1 -
.../devicetree/bindings/net/nfc/st,st-nci.yaml | 5 +-
.../devicetree/bindings/net/nfc/st,st95hf.yaml | 7 +-
.../devicetree/bindings/net/nfc/ti,trf7970a.yaml | 7 +-
.../bindings/net/pcs/renesas,rzn1-miic.yaml | 171 +
.../devicetree/bindings/net/qcom-emac.txt | 2 +-
.../devicetree/bindings/net/rockchip,emac.yaml | 115 +
Documentation/devicetree/bindings/net/sff,sfp.txt | 85 -
Documentation/devicetree/bindings/net/sff,sfp.yaml | 142 +
.../devicetree/bindings/net/snps,dwmac.yaml | 5 +
.../devicetree/bindings/net/ti,dp83822.yaml | 2 +-
.../devicetree/bindings/net/ti,dp83867.yaml | 20 +-
.../devicetree/bindings/net/ti,dp83869.yaml | 2 +-
.../bindings/net/wireless/brcm,bcm4329-fmac.yaml | 10 +
.../bindings/net/wireless/mediatek,mt76.yaml | 13 +
.../bindings/net/wireless/qca,ath9k.yaml | 2 +-
.../bindings/net/wireless/qcom,ath11k.yaml | 2 +-
.../devicetree/bindings/net/xlnx,emaclite.yaml | 63 +
.../devicetree/bindings/nvme/apple,nvme-ans.yaml | 1 -
.../devicetree/bindings/nvmem/fsl,scu-ocotp.yaml | 56 +
.../devicetree/bindings/nvmem/mediatek,efuse.yaml | 89 +
.../bindings/nvmem/microchip,sama7g5-otpc.yaml | 50 +
.../devicetree/bindings/nvmem/mtk-efuse.txt | 43 -
.../devicetree/bindings/opp/opp-v2-base.yaml | 10 +
.../devicetree/bindings/opp/opp-v2-kryo-cpu.yaml | 15 +
.../devicetree/bindings/pci/fsl,imx6q-pcie.yaml | 1 +
.../devicetree/bindings/pci/host-generic-pci.yaml | 3 +
.../devicetree/bindings/pci/mediatek-pcie.txt | 1 +
.../bindings/pci/nvidia,tegra194-pcie-ep.yaml | 319 +
.../bindings/pci/nvidia,tegra194-pcie.txt | 245 -
.../bindings/pci/nvidia,tegra194-pcie.yaml | 350 +
.../devicetree/bindings/pci/pci-rcar-gen2.txt | 84 -
.../devicetree/bindings/pci/qcom,pcie.yaml | 55 +-
.../bindings/pci/renesas,pci-rcar-gen2.yaml | 186 +
.../devicetree/bindings/pci/snps,dw-pcie.yaml | 4 +-
.../devicetree/bindings/pci/xilinx-versal-cpm.yaml | 38 +-
.../devicetree/bindings/perf/arm,ccn.yaml | 40 +
Documentation/devicetree/bindings/perf/arm-ccn.txt | 23 -
.../phy/amlogic,g12a-mipi-dphy-analog.yaml | 35 +
.../phy/amlogic,meson-axg-mipi-pcie-analog.yaml | 2 +-
.../devicetree/bindings/phy/cdns,dphy.yaml | 5 +-
.../bindings/phy/fsl,imx8qm-lvds-phy.yaml | 61 +
.../devicetree/bindings/phy/mediatek,dsi-phy.yaml | 4 +
.../devicetree/bindings/phy/mediatek,pcie-phy.yaml | 75 +
.../devicetree/bindings/phy/mediatek,tphy.yaml | 2 +
.../devicetree/bindings/phy/mxs-usb-phy.txt | 1 +
.../devicetree/bindings/phy/phy-stih407-usb.txt | 2 +-
.../devicetree/bindings/phy/phy-tegra194-p2u.yaml | 17 +-
.../devicetree/bindings/phy/qcom,edp-phy.yaml | 6 +
.../bindings/phy/qcom,hdmi-phy-other.yaml | 104 +
.../devicetree/bindings/phy/qcom,hdmi-phy-qmp.yaml | 85 +
.../devicetree/bindings/phy/qcom,qmp-phy.yaml | 2 +
.../bindings/phy/qcom,qmp-usb3-dp-phy.yaml | 2 +-
.../devicetree/bindings/phy/qcom,qusb2-phy.yaml | 2 +-
.../bindings/phy/qcom,usb-snps-femto-v2.yaml | 2 +-
.../devicetree/bindings/phy/renesas,usb3-phy.yaml | 2 +-
.../bindings/phy/samsung,exynos-hdmi-phy.yaml | 1 -
.../devicetree/bindings/phy/samsung,ufs-phy.yaml | 15 +-
.../pinctrl/allwinner,sun4i-a10-pinctrl.yaml | 34 +-
.../bindings/pinctrl/aspeed,ast2400-pinctrl.yaml | 2 +-
.../bindings/pinctrl/aspeed,ast2500-pinctrl.yaml | 2 +-
.../bindings/pinctrl/aspeed,ast2600-pinctrl.yaml | 2 +-
.../bindings/pinctrl/fsl,scu-pinctrl.yaml | 74 +
.../bindings/pinctrl/nuvoton,wpcm450-pinctrl.yaml | 2 +-
.../pinctrl/nvidia,tegra124-dpaux-padctl.txt | 59 -
.../bindings/pinctrl/pinctrl-mt8186.yaml | 31 +-
.../bindings/pinctrl/pinctrl-mt8192.yaml | 64 +-
.../bindings/pinctrl/pinctrl-mt8195.yaml | 41 +-
.../devicetree/bindings/pinctrl/pinctrl-rk805.txt | 2 +-
.../bindings/pinctrl/qcom,ipq6018-pinctrl.yaml | 2 +-
.../bindings/pinctrl/qcom,msm8909-tlmm.yaml | 152 +
.../bindings/pinctrl/qcom,pmic-gpio.yaml | 4 +
.../pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml | 5 +
.../bindings/pinctrl/qcom,sm6375-tlmm.yaml | 158 +
.../bindings/pinctrl/ralink,mt7620-pinctrl.yaml | 26 +-
.../bindings/pinctrl/ralink,rt305x-pinctrl.yaml | 27 +-
.../devicetree/bindings/pinctrl/renesas,pfc.yaml | 1 +
.../bindings/pinctrl/renesas,rzg2l-pinctrl.yaml | 15 +
.../bindings/pinctrl/renesas,rzv2m-pinctrl.yaml | 170 +
.../bindings/pinctrl/st,stm32-pinctrl.yaml | 4 +-
.../bindings/pinctrl/sunplus,sp7021-pinctrl.yaml | 5 +-
.../bindings/pinctrl/xlnx,zynqmp-pinctrl.yaml | 4 +
.../bindings/power/amlogic,meson-ee-pwrc.yaml | 6 +-
.../bindings/power/amlogic,meson-sec-pwrc.yaml | 4 +-
.../bindings/power/apple,pmgr-pwrstate.yaml | 2 +-
.../bindings/power/brcm,bcm63xx-power.yaml | 4 +-
.../devicetree/bindings/power/fsl,scu-pd.yaml | 41 +
.../bindings/power/mediatek,power-controller.yaml | 2 +
.../devicetree/bindings/power/qcom,rpmpd.yaml | 1 +
.../devicetree/bindings/power/renesas,apmu.yaml | 4 +-
.../bindings/power/renesas,rcar-sysc.yaml | 4 +-
.../bindings/power/reset/msm-poweroff.txt | 17 -
.../devicetree/bindings/power/reset/qcom,pon.yaml | 8 +-
.../bindings/power/reset/qcom,pshold.yaml | 35 +
.../bindings/power/reset/regulator-poweroff.yaml | 2 +-
.../bindings/power/reset/xlnx,zynqmp-power.yaml | 2 +-
.../power/supply/active-semi,act8945a-charger.yaml | 4 +-
.../devicetree/bindings/power/supply/bq2415x.yaml | 4 +-
.../devicetree/bindings/power/supply/bq24190.yaml | 6 +-
.../devicetree/bindings/power/supply/bq24257.yaml | 4 +-
.../devicetree/bindings/power/supply/bq24735.yaml | 4 +-
.../devicetree/bindings/power/supply/bq2515x.yaml | 7 +-
.../devicetree/bindings/power/supply/bq256xx.yaml | 6 +-
.../devicetree/bindings/power/supply/bq25890.yaml | 4 +-
.../devicetree/bindings/power/supply/bq25980.yaml | 7 +-
.../devicetree/bindings/power/supply/bq27xxx.yaml | 4 +-
.../bindings/power/supply/charger-manager.yaml | 1 +
.../bindings/power/supply/cpcap-battery.yaml | 4 +-
.../bindings/power/supply/cpcap-charger.yaml | 4 +-
.../bindings/power/supply/dlg,da9150-charger.yaml | 4 +-
.../power/supply/dlg,da9150-fuel-gauge.yaml | 4 +-
.../bindings/power/supply/ingenic,battery.yaml | 4 +-
.../devicetree/bindings/power/supply/isp1704.yaml | 4 +-
.../bindings/power/supply/lego,ev3-battery.yaml | 4 +-
.../bindings/power/supply/lltc,lt3651-charger.yaml | 4 +-
.../bindings/power/supply/lltc,ltc294x.yaml | 4 +-
.../bindings/power/supply/ltc4162-l.yaml | 4 +-
.../bindings/power/supply/maxim,ds2760.yaml | 4 +-
.../bindings/power/supply/maxim,max14656.yaml | 4 +-
.../bindings/power/supply/maxim,max17040.yaml | 4 +-
.../bindings/power/supply/maxim,max17042.yaml | 4 +-
.../bindings/power/supply/maxim,max77976.yaml | 2 +-
.../bindings/power/supply/maxim,max8903.yaml | 4 +-
.../bindings/power/supply/nokia,n900-battery.yaml | 4 +-
.../bindings/power/supply/olpc-battery.yaml | 4 +-
.../bindings/power/supply/power-supply.yaml | 4 +-
.../bindings/power/supply/qcom,pm8941-charger.yaml | 9 +-
.../power/supply/richtek,rt5033-battery.yaml | 4 +-
.../bindings/power/supply/richtek,rt9455.yaml | 4 +-
.../bindings/power/supply/sc2731-charger.yaml | 4 +-
.../bindings/power/supply/sc27xx-fg.yaml | 4 +-
.../power/supply/stericsson,ab8500-btemp.yaml | 4 +-
.../power/supply/stericsson,ab8500-chargalg.yaml | 4 +-
.../power/supply/stericsson,ab8500-charger.yaml | 4 +-
.../power/supply/stericsson,ab8500-fg.yaml | 4 +-
.../power/supply/summit,smb347-charger.yaml | 6 +-
.../bindings/power/supply/tps65090-charger.yaml | 4 +-
.../bindings/power/supply/tps65217-charger.yaml | 4 +-
.../bindings/power/supply/twl4030-charger.yaml | 4 +-
.../supply/x-powers,axp20x-ac-power-supply.yaml | 4 +-
.../x-powers,axp20x-battery-power-supply.yaml | 4 +-
.../supply/x-powers,axp20x-usb-power-supply.yaml | 4 +-
.../devicetree/bindings/powerpc/fsl/cpus.txt | 2 +-
.../devicetree/bindings/powerpc/fsl/mpc5200.txt | 2 +-
.../devicetree/bindings/powerpc/opal/power-mgt.txt | 2 +-
Documentation/devicetree/bindings/pwm/clk-pwm.yaml | 46 +
.../devicetree/bindings/pwm/pwm-mediatek.txt | 3 +
.../devicetree/bindings/regulator/mps,mp5416.yaml | 1 +
.../bindings/regulator/pwm-regulator.txt | 92 -
.../bindings/regulator/pwm-regulator.yaml | 126 +
.../bindings/regulator/qcom,smd-rpm-regulator.yaml | 4 +
.../bindings/regulator/qcom,spmi-regulator.txt | 347 -
.../bindings/regulator/qcom,spmi-regulator.yaml | 323 +
.../regulator/qcom,usb-vbus-regulator.yaml | 2 +-
.../devicetree/bindings/regulator/regulator.yaml | 1 +
.../devicetree/bindings/regulator/vexpress.txt | 2 +-
.../devicetree/bindings/remoteproc/mtk,scp.yaml | 2 +
.../devicetree/bindings/remoteproc/qcom,adsp.yaml | 74 +-
.../bindings/remoteproc/qcom,glink-edge.yaml | 72 +
.../devicetree/bindings/remoteproc/qcom,q6v5.txt | 90 +-
.../bindings/remoteproc/qcom,qcs404-cdsp-pil.yaml | 1 -
.../bindings/remoteproc/qcom,sc7180-mss-pil.yaml | 245 +
.../bindings/remoteproc/qcom,sc7280-mss-pil.yaml | 266 +
.../bindings/remoteproc/qcom,sc7280-wpss-pil.yaml | 21 +-
.../bindings/remoteproc/qcom,sdm845-adsp-pil.yaml | 1 -
.../bindings/remoteproc/qcom,smd-edge.yaml | 85 +
.../bindings/remoteproc/ti,pru-rproc.yaml | 5 +-
.../bindings/reset/atmel,at91sam9260-reset.yaml | 68 +
.../bindings/reset/nuvoton,npcm750-reset.yaml | 10 +-
.../bindings/reset/renesas,rzg2l-usbphy-ctrl.yaml | 1 +
.../devicetree/bindings/reset/sunplus,reset.yaml | 38 +
.../bindings/reset/ti,tps380x-reset.yaml | 49 +
Documentation/devicetree/bindings/riscv/cpus.yaml | 5 +
.../devicetree/bindings/riscv/sifive-l2-cache.yaml | 6 +-
.../devicetree/bindings/rtc/fsl,scu-rtc.yaml | 31 +
.../bindings/rtc/microcrystal,rv3032.yaml | 1 +
.../devicetree/bindings/rtc/nuvoton,nct3018y.yaml | 45 +
.../devicetree/bindings/rtc/nxp,pcf85063.txt | 32 -
.../devicetree/bindings/rtc/nxp,pcf85063.yaml | 92 +
.../devicetree/bindings/rtc/qcom-pm8xxx-rtc.yaml | 2 +-
.../devicetree/bindings/rtc/rtc-ds1307.txt | 52 -
.../devicetree/bindings/rtc/rtc-ds1307.yaml | 102 +
.../devicetree/bindings/rtc/rtc-mt6397.txt | 2 +
.../devicetree/bindings/rtc/ti,k3-rtc.yaml | 62 +
.../devicetree/bindings/rtc/trivial-rtc.yaml | 2 +
.../devicetree/bindings/rtc/xlnx,zynqmp-rtc.yaml | 12 +-
Documentation/devicetree/bindings/serial/8250.yaml | 1 +
.../devicetree/bindings/serial/efm32-uart.txt | 20 -
.../devicetree/bindings/serial/mediatek,uart.yaml | 120 +
.../devicetree/bindings/serial/mtk-uart.txt | 59 -
.../devicetree/bindings/serial/renesas,hscif.yaml | 1 +
.../devicetree/bindings/serial/rs485.yaml | 4 +-
.../bindings/serial/snps-dw-apb-uart.yaml | 2 +
.../devicetree/bindings/serio/ps2-gpio.txt | 23 -
.../devicetree/bindings/serio/ps2-gpio.yaml | 64 +
.../bindings/soc/bcm/brcm,bcm2835-pm.txt | 46 -
.../bindings/soc/bcm/brcm,bcm2835-pm.yaml | 86 +
.../devicetree/bindings/soc/mediatek/devapc.yaml | 1 +
.../{display => soc}/mediatek/mediatek,mutex.yaml | 14 +-
.../devicetree/bindings/soc/mediatek/mtk-svs.yaml | 91 +
.../soc/microchip/atmel,at91rm9200-tcb.yaml | 6 +-
.../microchip/microchip,mpfs-sys-controller.yaml | 4 +-
.../bindings/soc/qcom/qcom,aoss-qmp.yaml | 3 +-
.../bindings/soc/qcom/qcom,rpmh-rsc.yaml | 33 +-
.../devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 37 +-
.../devicetree/bindings/soc/qcom/qcom,smd.yaml | 52 +-
.../devicetree/bindings/soc/qcom/qcom,spm.yaml | 1 +
.../devicetree/bindings/soc/qcom/qcom,wcnss.yaml | 1 -
.../bindings/soc/samsung/exynos-pmu.yaml | 13 +-
.../bindings/soc/samsung/exynos-usi.yaml | 8 +-
.../devicetree/bindings/soc/ti/ti,pruss.yaml | 5 +-
.../devicetree/bindings/sound/adi,adau1977.yaml | 7 +-
.../devicetree/bindings/sound/adi,max98396.yaml | 30 +-
.../sound/allwinner,sun50i-a64-codec-analog.yaml | 5 +
.../bindings/sound/atmel,sama5d2-classd.yaml | 100 +
.../bindings/sound/atmel,sama5d2-i2s.yaml | 85 +
.../bindings/sound/atmel,sama5d2-pdmic.yaml | 98 +
.../devicetree/bindings/sound/atmel-classd.txt | 55 -
.../devicetree/bindings/sound/atmel-i2s.txt | 46 -
.../devicetree/bindings/sound/atmel-pdmic.txt | 55 -
.../bindings/sound/atmel-sam9x5-wm8731-audio.txt | 2 +-
Documentation/devicetree/bindings/sound/da9055.txt | 2 +-
.../devicetree/bindings/sound/designware-i2s.txt | 35 -
.../devicetree/bindings/sound/fsl,micfil.txt | 33 -
.../devicetree/bindings/sound/fsl,micfil.yaml | 85 +
.../devicetree/bindings/sound/fsl,mqs.txt | 2 +-
.../devicetree/bindings/sound/fsl,spdif.yaml | 4 +
.../devicetree/bindings/sound/fsl-sai.txt | 11 +
Documentation/devicetree/bindings/sound/mt6358.txt | 4 +-
.../devicetree/bindings/sound/mt8186-afe-pcm.yaml | 175 +
.../sound/mt8186-mt6366-da7219-max98357.yaml | 75 +
.../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 75 +
.../devicetree/bindings/sound/nau8821.txt | 2 +-
.../bindings/sound/nvidia,tegra210-ahub.yaml | 4 +
.../bindings/sound/nvidia,tegra210-mbdrc.yaml | 47 +
.../bindings/sound/nvidia,tegra210-ope.yaml | 87 +
.../bindings/sound/nvidia,tegra210-peq.yaml | 48 +
.../devicetree/bindings/sound/nxp,tfa989x.yaml | 1 +
.../devicetree/bindings/sound/qcom,lpass-cpu.yaml | 8 +-
.../devicetree/bindings/sound/qcom,sdm845.txt | 91 -
.../devicetree/bindings/sound/qcom,sm8250.yaml | 3 +
.../devicetree/bindings/sound/qcom,wcd934x.yaml | 2 +-
.../devicetree/bindings/sound/qcom,wsa883x.yaml | 74 +
.../devicetree/bindings/sound/renesas,rz-ssi.yaml | 3 +-
.../devicetree/bindings/sound/rockchip-i2s.yaml | 7 +
.../devicetree/bindings/sound/sgtl5000.yaml | 1 +
.../bindings/sound/snps,designware-i2s.yaml | 94 +
.../devicetree/bindings/sound/tas2562.yaml | 2 +-
.../devicetree/bindings/sound/tlv320adcx140.yaml | 6 +-
.../devicetree/bindings/sound/wlf,wm8731.yaml | 9 +-
.../bindings/spi/atmel,at91rm9200-spi.yaml | 75 +
.../devicetree/bindings/spi/efm32-spi.txt | 39 -
.../devicetree/bindings/spi/hpe,gxp-spifi.yaml | 56 +
.../bindings/spi/mediatek,spi-mt65xx.yaml | 2 +
.../bindings/spi/mediatek,spi-mtk-nor.yaml | 15 +-
.../bindings/spi/microchip,mpfs-spi.yaml | 1 -
.../devicetree/bindings/spi/nuvoton,npcm-fiu.txt | 13 +-
.../spi/nvidia,tegra210-quad-peripheral-props.yaml | 33 +
.../bindings/spi/nvidia,tegra210-quad.yaml | 22 +-
.../bindings/spi/qcom,spi-geni-qcom.yaml | 6 +-
.../devicetree/bindings/spi/samsung,spi.yaml | 6 +-
.../devicetree/bindings/spi/snps,dw-apb-ssi.yaml | 26 +-
.../devicetree/bindings/spi/spi-cadence.yaml | 7 +
.../devicetree/bindings/spi/spi-controller.yaml | 19 +-
.../bindings/spi/spi-peripheral-props.yaml | 16 +-
.../devicetree/bindings/spi/spi-zynqmp-qspi.yaml | 7 +
.../devicetree/bindings/spi/spi_atmel.txt | 36 -
.../devicetree/bindings/sram/qcom,imem.yaml | 75 +
.../devicetree/bindings/sram/qcom,ocmem.yaml | 10 +-
.../bindings/thermal/brcm,avs-ro-thermal.yaml | 2 +-
.../bindings/thermal/fsl,scu-thermal.yaml | 38 +
.../bindings/thermal/nvidia,tegra124-soctherm.txt | 2 +-
.../bindings/thermal/qcom,spmi-temp-alarm.yaml | 85 +
.../bindings/thermal/qcom-spmi-temp-alarm.txt | 51 -
.../bindings/thermal/rcar-gen3-thermal.yaml | 36 +-
.../devicetree/bindings/thermal/rcar-thermal.yaml | 2 +-
.../bindings/timer/allwinner,sun4i-a10-timer.yaml | 1 +
.../devicetree/bindings/timer/ingenic,tcu.yaml | 4 +-
.../bindings/timer/mediatek,mtk-timer.txt | 6 +-
.../bindings/timer/nuvoton,npcm7xx-timer.yaml | 2 +
.../bindings/timer/nvidia,tegra186-timer.yaml | 109 +
.../devicetree/bindings/timer/renesas,cmt.yaml | 16 +-
.../devicetree/bindings/timer/st,nomadik-mtu.yaml | 58 +
.../devicetree/bindings/trivial-devices.yaml | 6 +-
.../devicetree/bindings/ufs/qcom,ufs.yaml | 2 +
.../devicetree/bindings/ufs/renesas,ufs.yaml | 61 +
.../bindings/ufs/samsung,exynos-ufs.yaml | 1 +
.../bindings/usb/allwinner,sun4i-a10-musb.yaml | 1 +
.../devicetree/bindings/usb/analogix,anx7411.yaml | 81 +
.../bindings/usb/aspeed,ast2600-udc.yaml | 52 +
.../devicetree/bindings/usb/atmel-usb.txt | 3 +
Documentation/devicetree/bindings/usb/dwc2.yaml | 3 +
Documentation/devicetree/bindings/usb/dwc3-st.txt | 2 +-
Documentation/devicetree/bindings/usb/ehci-st.txt | 2 +-
.../devicetree/bindings/usb/generic-ehci.yaml | 11 +-
.../devicetree/bindings/usb/generic-ohci.yaml | 4 +-
.../devicetree/bindings/usb/mediatek,mtk-xhci.yaml | 5 +
.../devicetree/bindings/usb/mediatek,mtu3.yaml | 3 +
Documentation/devicetree/bindings/usb/ohci-st.txt | 2 +-
.../devicetree/bindings/usb/qcom,dwc3.yaml | 154 +-
.../devicetree/bindings/usb/realtek,rts5411.yaml | 10 +-
.../devicetree/bindings/usb/snps,dwc3.yaml | 5 +
.../devicetree/bindings/usb/st,typec-stm32g0.yaml | 91 +
.../devicetree/bindings/usb/ti,usb8041.yaml | 67 +
.../devicetree/bindings/vendor-prefixes.yaml | 29 +-
Documentation/devicetree/bindings/virtio/mmio.yaml | 4 +
.../bindings/watchdog/allwinner,sun4i-a10-wdt.yaml | 1 -
.../bindings/watchdog/faraday,ftwdt010.yaml | 2 +-
.../devicetree/bindings/watchdog/fsl,scu-wdt.yaml | 34 +
.../bindings/watchdog/nuvoton,npcm-wdt.txt | 3 +-
.../bindings/watchdog/qcom,pm8916-wdt.txt | 28 -
.../bindings/watchdog/qcom,pm8916-wdt.yaml | 51 +
.../devicetree/bindings/watchdog/qcom-wdt.yaml | 1 +
.../bindings/watchdog/realtek,otto-wdt.yaml | 1 +
.../devicetree/bindings/writing-bindings.rst | 2 +-
Documentation/doc-guide/kernel-doc.rst | 2 +
Documentation/doc-guide/sphinx.rst | 14 +-
Documentation/driver-api/aperture.rst | 13 +
Documentation/driver-api/cxl/memory-devices.rst | 8 +
Documentation/driver-api/dmaengine/provider.rst | 10 -
Documentation/driver-api/driver-model/devres.rst | 1 -
Documentation/driver-api/firmware/core.rst | 1 +
.../firmware/firmware-usage-guidelines.rst | 44 +
Documentation/driver-api/fpga/fpga-mgr.rst | 27 +-
Documentation/driver-api/gpio/board.rst | 2 +-
Documentation/driver-api/gpio/consumer.rst | 8 +-
Documentation/driver-api/gpio/driver.rst | 6 +-
Documentation/driver-api/gpio/intro.rst | 6 +-
Documentation/driver-api/gpio/using-gpio.rst | 2 +-
Documentation/{ => driver-api}/hte/hte.rst | 0
Documentation/{ => driver-api}/hte/index.rst | 0
.../{ => driver-api}/hte/tegra194-hte.rst | 5 +-
Documentation/driver-api/index.rst | 2 +
Documentation/driver-api/media/mc-core.rst | 5 +-
Documentation/driver-api/media/v4l2-subdev.rst | 6 +
Documentation/driver-api/serial/driver.rst | 482 +-
Documentation/driver-api/serial/serial-rs485.rst | 38 +-
.../driver-api/surface_aggregator/client.rst | 6 +-
Documentation/driver-api/vfio-mediated-device.rst | 20 +-
Documentation/driver-api/vme.rst | 4 +-
Documentation/fault-injection/fault-injection.rst | 7 +
.../features/core/cBPF-JIT/arch-support.txt | 1 +
.../features/core/eBPF-JIT/arch-support.txt | 1 +
.../core/generic-idle-thread/arch-support.txt | 1 +
.../features/core/jump-labels/arch-support.txt | 1 +
.../core/thread-info-in-task/arch-support.txt | 1 +
.../features/core/tracehook/arch-support.txt | 1 +
.../features/debug/KASAN/arch-support.txt | 1 +
.../debug/debug-vm-pgtable/arch-support.txt | 3 +-
.../debug/gcov-profile-all/arch-support.txt | 5 +-
Documentation/features/debug/kcov/arch-support.txt | 3 +-
Documentation/features/debug/kgdb/arch-support.txt | 1 +
.../features/debug/kmemleak/arch-support.txt | 1 +
.../debug/kprobes-on-ftrace/arch-support.txt | 1 +
.../features/debug/kprobes/arch-support.txt | 1 +
.../features/debug/kretprobes/arch-support.txt | 1 +
.../features/debug/optprobes/arch-support.txt | 1 +
.../features/debug/stackprotector/arch-support.txt | 1 +
.../features/debug/uprobes/arch-support.txt | 1 +
.../debug/user-ret-profiler/arch-support.txt | 1 +
.../features/io/dma-contiguous/arch-support.txt | 1 +
.../locking/cmpxchg-local/arch-support.txt | 1 +
.../features/locking/lockdep/arch-support.txt | 1 +
.../locking/queued-rwlocks/arch-support.txt | 3 +-
.../locking/queued-spinlocks/arch-support.txt | 1 +
.../features/perf/kprobes-event/arch-support.txt | 3 +-
.../features/perf/perf-regs/arch-support.txt | 1 +
.../features/perf/perf-stackdump/arch-support.txt | 1 +
.../sched/membarrier-sync-core/arch-support.txt | 1 +
.../features/sched/numa-balancing/arch-support.txt | 1 +
.../seccomp/seccomp-filter/arch-support.txt | 1 +
.../time/arch-tick-broadcast/arch-support.txt | 1 +
.../features/time/clockevents/arch-support.txt | 1 +
.../time/context-tracking/arch-support.txt | 7 +-
.../features/time/irq-time-acct/arch-support.txt | 1 +
.../features/time/virt-cpuacct/arch-support.txt | 1 +
.../features/vm/ELF-ASLR/arch-support.txt | 1 +
.../features/vm/PG_uncached/arch-support.txt | 1 +
Documentation/features/vm/THP/arch-support.txt | 1 +
Documentation/features/vm/TLB/arch-support.txt | 1 +
.../features/vm/huge-vmap/arch-support.txt | 1 +
.../features/vm/ioremap_prot/arch-support.txt | 3 +-
.../features/vm/pte_special/arch-support.txt | 3 +-
Documentation/filesystems/btrfs.rst | 16 +-
Documentation/filesystems/ext2.rst | 2 -
Documentation/filesystems/ext4/attributes.rst | 68 +-
Documentation/filesystems/ext4/bigalloc.rst | 2 +-
Documentation/filesystems/ext4/bitmaps.rst | 6 +-
Documentation/filesystems/ext4/blockgroup.rst | 30 +-
Documentation/filesystems/ext4/blockmap.rst | 2 +-
Documentation/filesystems/ext4/checksums.rst | 26 +-
Documentation/filesystems/ext4/directory.rst | 166 +-
Documentation/filesystems/ext4/eainode.rst | 10 +-
Documentation/filesystems/ext4/group_descr.rst | 126 +-
Documentation/filesystems/ext4/ifork.rst | 60 +-
Documentation/filesystems/ext4/inlinedata.rst | 8 +-
Documentation/filesystems/ext4/inodes.rst | 306 +-
Documentation/filesystems/ext4/journal.rst | 214 +-
Documentation/filesystems/ext4/mmp.rst | 36 +-
Documentation/filesystems/ext4/overview.rst | 2 +-
Documentation/filesystems/ext4/special_inodes.rst | 8 +-
Documentation/filesystems/ext4/super.rst | 550 +-
Documentation/filesystems/f2fs.rst | 18 +-
Documentation/filesystems/fscrypt.rst | 22 +-
Documentation/filesystems/fsverity.rst | 53 +-
Documentation/filesystems/fuse.rst | 29 +-
Documentation/filesystems/locking.rst | 9 +-
Documentation/filesystems/netfs_library.rst | 76 +-
Documentation/filesystems/overlayfs.rst | 2 +-
Documentation/filesystems/porting.rst | 8 +
Documentation/filesystems/proc.rst | 11 +-
Documentation/filesystems/vfs.rst | 65 +-
.../filesystems/xfs-delayed-logging-design.rst | 361 +-
.../firmware-guide/acpi/DSD-properties-rules.rst | 11 +-
Documentation/firmware-guide/acpi/apei/einj.rst | 2 +-
Documentation/gpu/amdgpu/amdgpu-glossary.rst | 2 +-
Documentation/gpu/amdgpu/thermal.rst | 41 +
Documentation/gpu/drm-internals.rst | 32 +
Documentation/gpu/drm-usage-stats.rst | 21 +
Documentation/gpu/i915.rst | 12 +
Documentation/gpu/rfc/i915_small_bar.h | 189 +
Documentation/gpu/rfc/i915_small_bar.rst | 47 +
Documentation/gpu/rfc/i915_vm_bind.h | 291 +
Documentation/gpu/rfc/i915_vm_bind.rst | 245 +
Documentation/gpu/rfc/index.rst | 8 +
Documentation/gpu/todo.rst | 11 +
Documentation/gpu/vkms.rst | 6 -
Documentation/hwmon/aquacomputer_d5next.rst | 17 +-
Documentation/hwmon/asus_ec_sensors.rst | 4 +
Documentation/hwmon/dell-smm-hwmon.rst | 3 +
Documentation/hwmon/index.rst | 1 +
Documentation/hwmon/lm90.rst | 233 +-
Documentation/hwmon/lt7182s.rst | 92 +
Documentation/hwmon/pmbus-core.rst | 9 +
Documentation/hwmon/submitting-patches.rst | 1 -
Documentation/i2c/busses/i2c-i801.rst | 1 +
Documentation/i2c/i2c-protocol.rst | 11 +-
Documentation/i2c/i2c-sysfs.rst | 24 +-
Documentation/i2c/instantiating-devices.rst | 16 +-
Documentation/i2c/smbus-protocol.rst | 6 +-
Documentation/index.rst | 3 +-
Documentation/kbuild/kconfig-language.rst | 2 +-
Documentation/kbuild/llvm.rst | 10 +-
Documentation/kernel-hacking/hacking.rst | 3 +-
Documentation/livepatch/module-elf-format.rst | 10 +-
Documentation/loongarch/introduction.rst | 17 +-
Documentation/loongarch/irq-chip-model.rst | 22 +-
Documentation/m68k/kernel-options.rst | 4 +-
Documentation/memory-barriers.txt | 11 +-
Documentation/{vm => mm}/active_mm.rst | 0
Documentation/{vm => mm}/arch_pgtable_helpers.rst | 0
Documentation/{vm => mm}/balance.rst | 0
Documentation/{vm => mm}/bootmem.rst | 0
Documentation/{vm => mm}/damon/api.rst | 0
Documentation/{vm => mm}/damon/design.rst | 0
Documentation/{vm => mm}/damon/faq.rst | 0
Documentation/{vm => mm}/damon/index.rst | 0
Documentation/{vm => mm}/free_page_reporting.rst | 0
Documentation/{vm => mm}/frontswap.rst | 0
Documentation/{vm => mm}/highmem.rst | 31 +-
Documentation/{vm => mm}/hmm.rst | 0
Documentation/{vm => mm}/hugetlbfs_reserv.rst | 0
Documentation/{vm => mm}/hwpoison.rst | 3 +-
Documentation/{vm => mm}/index.rst | 0
Documentation/{vm => mm}/ksm.rst | 0
Documentation/{vm => mm}/memory-model.rst | 2 +-
Documentation/{vm => mm}/mmu_notifier.rst | 0
Documentation/{vm => mm}/numa.rst | 0
Documentation/{vm => mm}/oom.rst | 0
Documentation/{vm => mm}/overcommit-accounting.rst | 2 -
Documentation/{vm => mm}/page_allocation.rst | 0
Documentation/{vm => mm}/page_cache.rst | 0
Documentation/{vm => mm}/page_frags.rst | 0
Documentation/{vm => mm}/page_migration.rst | 113 +-
Documentation/{vm => mm}/page_owner.rst | 0
Documentation/{vm => mm}/page_reclaim.rst | 0
Documentation/{vm => mm}/page_table_check.rst | 0
Documentation/{vm => mm}/page_tables.rst | 0
Documentation/{vm => mm}/physical_memory.rst | 0
Documentation/{vm => mm}/process_addrs.rst | 0
Documentation/{vm => mm}/remap_file_pages.rst | 0
Documentation/{vm => mm}/shmfs.rst | 0
Documentation/{vm => mm}/slab.rst | 0
Documentation/{vm => mm}/slub.rst | 0
Documentation/{vm => mm}/split_page_table_lock.rst | 0
Documentation/{vm => mm}/swap.rst | 0
Documentation/{vm => mm}/transhuge.rst | 0
Documentation/{vm => mm}/unevictable-lru.rst | 0
Documentation/{vm => mm}/vmalloc.rst | 0
.../{vm => mm}/vmalloced-kernel-stacks.rst | 0
Documentation/{vm => mm}/vmemmap_dedup.rst | 72 +-
Documentation/{vm => mm}/z3fold.rst | 0
Documentation/{vm => mm}/zsmalloc.rst | 0
Documentation/networking/bonding.rst | 20 +-
Documentation/networking/can.rst | 2 +-
.../networking/device_drivers/can/can327.rst | 331 +
.../networking/device_drivers/can/index.rst | 1 +
.../networking/device_drivers/ethernet/index.rst | 2 +-
.../device_drivers/ethernet/intel/ice.rst | 9 +
.../device_drivers/ethernet/neterion/vxge.rst | 115 -
.../device_drivers/ethernet/wangxun/txgbe.rst | 20 +
.../networking/devlink/devlink-selftests.rst | 38 +
Documentation/networking/devlink/index.rst | 1 +
Documentation/networking/devlink/mlxsw.rst | 24 +
Documentation/networking/dsa/dsa.rst | 363 +-
Documentation/networking/ip-sysctl.rst | 124 +-
Documentation/networking/phy.rst | 2 +-
Documentation/networking/sfp-phylink.rst | 6 +-
Documentation/networking/smc-sysctl.rst | 13 +
Documentation/networking/tls.rst | 47 +
Documentation/power/energy-model.rst | 14 +-
Documentation/power/pci.rst | 2 +-
Documentation/powerpc/elf_hwcaps.rst | 231 +
Documentation/powerpc/index.rst | 1 +
Documentation/process/5.Posting.rst | 3 +-
Documentation/process/8.Conclusion.rst | 16 +-
Documentation/process/changes.rst | 12 +
Documentation/process/email-clients.rst | 69 +-
.../process/embargoed-hardware-issues.rst | 5 +-
Documentation/process/howto.rst | 4 +-
Documentation/process/index.rst | 1 -
Documentation/process/kernel-docs.rst | 64 +-
Documentation/process/maintainer-netdev.rst | 36 +
Documentation/process/submitting-drivers.rst | 194 -
Documentation/process/submitting-patches.rst | 5 +-
Documentation/s390/index.rst | 1 +
Documentation/s390/vfio-ap-locking.rst | 115 +
Documentation/s390/vfio-ap.rst | 498 +-
Documentation/scsi/scsi_eh.rst | 3 +-
Documentation/scsi/scsi_mid_low_api.rst | 2 +-
Documentation/scsi/ufs.rst | 15 +
Documentation/security/keys/core.rst | 2 +-
Documentation/security/secrets/coco.rst | 2 +-
Documentation/security/siphash.rst | 2 +-
Documentation/sound/soc/codec.rst | 2 +-
Documentation/sound/soc/dai.rst | 2 +-
Documentation/sound/soc/platform.rst | 2 +-
Documentation/sphinx/automarkup.py | 56 +-
Documentation/staging/static-keys.rst | 3 -
.../trace/coresight/coresight-etm4x-reference.rst | 17 +-
Documentation/trace/coresight/coresight.rst | 58 +-
Documentation/trace/index.rst | 1 +
Documentation/trace/kprobetrace.rst | 8 +-
.../trace/rv/da_monitor_instrumentation.rst | 171 +
Documentation/trace/rv/da_monitor_synthesis.rst | 147 +
Documentation/trace/rv/deterministic_automata.rst | 184 +
Documentation/trace/rv/index.rst | 14 +
Documentation/trace/rv/monitor_wip.rst | 55 +
Documentation/trace/rv/monitor_wwnr.rst | 45 +
Documentation/trace/rv/runtime-verification.rst | 231 +
Documentation/trace/uprobetracer.rst | 8 +-
.../it_IT/core-api/symbol-namespaces.rst | 6 +-
.../devicetree/bindings/submitting-patches.rst | 11 +
.../translations/it_IT/doc-guide/kernel-doc.rst | 2 +
.../translations/it_IT/doc-guide/sphinx.rst | 18 +-
.../translations/it_IT/kernel-hacking/hacking.rst | 27 +-
.../translations/it_IT/kernel-hacking/locking.rst | 14 +-
.../it_IT/maintainer/configure-git.rst | 10 +
.../translations/it_IT/networking/netdev-FAQ.rst | 2 +-
.../translations/it_IT/process/3.Early-stage.rst | 17 +-
.../translations/it_IT/process/5.Posting.rst | 32 +-
.../translations/it_IT/process/8.Conclusion.rst | 5 +-
.../translations/it_IT/process/changes.rst | 25 +-
.../translations/it_IT/process/coding-style.rst | 42 +-
.../translations/it_IT/process/deprecated.rst | 24 +-
Documentation/translations/it_IT/process/howto.rst | 3 +-
Documentation/translations/it_IT/process/index.rst | 2 +-
.../it_IT/process/maintainer-handbooks.rst | 24 +
.../it_IT/process/maintainer-pgp-guide.rst | 14 +-
.../translations/it_IT/process/maintainer-tip.rst | 10 +
.../translations/it_IT/process/maintainers.rst | 13 +
.../it_IT/process/stable-kernel-rules.rst | 42 +-
.../it_IT/process/submitting-drivers.rst | 16 -
.../it_IT/process/submitting-patches.rst | 72 +-
Documentation/translations/ja_JP/howto.rst | 4 +-
Documentation/translations/ko_KR/howto.rst | 2 +-
.../translations/zh_CN/PCI/pci-iov-howto.rst | 7 +-
Documentation/translations/zh_CN/PCI/pci.rst | 6 +-
.../translations/zh_CN/admin-guide/index.rst | 2 +-
.../zh_CN/admin-guide/mm/damon/index.rst | 2 +-
.../zh_CN/admin-guide/mm/damon/reclaim.rst | 2 +-
.../zh_CN/admin-guide/mm/damon/usage.rst | 10 +-
.../zh_CN/admin-guide/reporting-issues.rst | 125 +-
.../zh_CN/admin-guide/reporting-regressions.rst | 370 +
.../translations/zh_CN/core-api/cachetlb.rst | 6 +
.../translations/zh_CN/core-api/cpu_hotplug.rst | 435 +-
.../translations/zh_CN/core-api/index.rst | 4 +-
.../translations/zh_CN/core-api/irq/irq-domain.rst | 22 +-
.../translations/zh_CN/core-api/kernel-api.rst | 5 +-
.../translations/zh_CN/core-api/mm-api.rst | 23 +-
.../translations/zh_CN/core-api/printk-basics.rst | 3 +-
.../translations/zh_CN/core-api/printk-formats.rst | 3 +-
.../zh_CN/core-api/symbol-namespaces.rst | 2 +-
.../translations/zh_CN/core-api/watch_queue.rst | 313 +
.../translations/zh_CN/core-api/workqueue.rst | 21 +-
.../translations/zh_CN/core-api/xarray.rst | 4 +-
.../translations/zh_CN/dev-tools/kasan.rst | 117 +-
.../translations/zh_CN/dev-tools/sparse.rst | 2 +
.../zh_CN/dev-tools/testing-overview.rst | 25 +
.../translations/zh_CN/devicetree/index.rst | 2 +-
.../translations/zh_CN/devicetree/of_unittest.rst | 2 +-
.../translations/zh_CN/devicetree/usage-model.rst | 2 +-
.../translations/zh_CN/doc-guide/kernel-doc.rst | 2 +-
.../translations/zh_CN/iio/iio_configfs.rst | 12 +-
Documentation/translations/zh_CN/index.rst | 2 +-
.../translations/zh_CN/kernel-hacking/hacking.rst | 25 +-
Documentation/translations/zh_CN/locking/index.rst | 5 +-
.../translations/zh_CN/locking/mutex-design.rst | 145 +
.../translations/zh_CN/loongarch/introduction.rst | 18 +-
.../zh_CN/loongarch/irq-chip-model.rst | 14 +-
.../translations/zh_CN/{vm => mm}/active_mm.rst | 2 +-
.../translations/zh_CN/{vm => mm}/balance.rst | 2 +-
.../translations/zh_CN/{vm => mm}/damon/api.rst | 2 +-
.../translations/zh_CN/{vm => mm}/damon/design.rst | 2 +-
.../translations/zh_CN/{vm => mm}/damon/faq.rst | 2 +-
.../translations/zh_CN/{vm => mm}/damon/index.rst | 5 +-
.../zh_CN/{vm => mm}/free_page_reporting.rst | 2 +-
.../translations/zh_CN/{vm => mm}/frontswap.rst | 2 +-
Documentation/translations/zh_CN/mm/highmem.rst | 137 +
.../translations/zh_CN/{vm => mm}/hmm.rst | 2 +-
.../zh_CN/{vm => mm}/hugetlbfs_reserv.rst | 2 +-
.../translations/zh_CN/{vm => mm}/hwpoison.rst | 2 +-
Documentation/translations/zh_CN/mm/index.rst | 69 +
.../translations/zh_CN/{vm => mm}/ksm.rst | 2 +-
.../translations/zh_CN/{vm => mm}/memory-model.rst | 4 +-
.../translations/zh_CN/{vm => mm}/mmu_notifier.rst | 2 +-
.../translations/zh_CN/{vm => mm}/numa.rst | 2 +-
.../zh_CN/{vm => mm}/overcommit-accounting.rst | 2 +-
.../translations/zh_CN/{vm => mm}/page_frags.rst | 2 +-
.../translations/zh_CN/mm/page_migration.rst | 228 +
.../translations/zh_CN/{vm => mm}/page_owner.rst | 81 +-
.../zh_CN/{vm => mm}/page_table_check.rst | 2 +-
.../zh_CN/{vm => mm}/remap_file_pages.rst | 2 +-
.../zh_CN/{vm => mm}/split_page_table_lock.rst | 2 +-
.../zh_CN/mm/vmalloced-kernel-stacks.rst | 133 +
.../translations/zh_CN/{vm => mm}/z3fold.rst | 2 +-
.../translations/zh_CN/{vm => mm}/zsmalloc.rst | 2 +-
.../translations/zh_CN/process/5.Posting.rst | 3 +-
.../translations/zh_CN/process/8.Conclusion.rst | 1 -
.../zh_CN/process/embargoed-hardware-issues.rst | 2 +-
Documentation/translations/zh_CN/process/howto.rst | 1 -
Documentation/translations/zh_CN/process/index.rst | 1 -
.../zh_CN/process/submitting-drivers.rst | 160 -
.../zh_CN/process/submitting-patches.rst | 4 +-
Documentation/translations/zh_CN/riscv/index.rst | 1 -
Documentation/translations/zh_CN/riscv/pmu.rst | 235 -
.../translations/zh_CN/riscv/vm-layout.rst | 37 +
.../translations/zh_CN/scheduler/sched-stats.rst | 8 +-
Documentation/translations/zh_CN/vm/highmem.rst | 128 -
Documentation/translations/zh_CN/vm/index.rst | 54 -
Documentation/translations/zh_TW/index.rst | 2 +-
.../translations/zh_TW/process/5.Posting.rst | 3 +-
.../translations/zh_TW/process/8.Conclusion.rst | 1 -
.../zh_TW/process/embargoed-hardware-issues.rst | 2 +-
Documentation/translations/zh_TW/process/howto.rst | 1 -
Documentation/translations/zh_TW/process/index.rst | 1 -
.../zh_TW/process/submitting-drivers.rst | 164 -
.../zh_TW/process/submitting-patches.rst | 4 +-
Documentation/usb/gadget-testing.rst | 6 +
Documentation/usb/mass-storage.rst | 9 +
Documentation/usb/usbmon.rst | 2 +-
Documentation/userspace-api/ioctl/ioctl-number.rst | 2 +-
.../userspace-api/media/drivers/hantro.rst | 19 -
.../userspace-api/media/drivers/index.rst | 1 -
Documentation/userspace-api/media/v4l/control.rst | 4 +-
.../media/v4l/ext-ctrls-codec-stateless.rst | 902 +
.../userspace-api/media/v4l/ext-ctrls-codec.rst | 780 -
Documentation/userspace-api/media/v4l/mmap.rst | 2 +-
.../userspace-api/media/v4l/pixfmt-compressed.rst | 7 +-
.../userspace-api/media/v4l/pixfmt-packed-yuv.rst | 20 +
.../userspace-api/media/v4l/pixfmt-yuv-planar.rst | 63 +
.../userspace-api/media/v4l/subdev-formats.rst | 156 +
.../userspace-api/media/v4l/vidioc-g-ext-ctrls.rst | 20 +
.../userspace-api/media/v4l/vidioc-queryctrl.rst | 8 +
.../userspace-api/media/videodev2.h.rst.exceptions | 9 +
Documentation/virt/hyperv/clocks.rst | 73 +
Documentation/virt/hyperv/index.rst | 12 +
Documentation/virt/hyperv/overview.rst | 207 +
Documentation/virt/hyperv/vmbus.rst | 303 +
Documentation/virt/index.rst | 1 +
Documentation/virt/kvm/api.rst | 367 +-
Documentation/virt/kvm/arm/hyp-abi.rst | 11 +-
Documentation/virt/kvm/s390/index.rst | 1 +
Documentation/virt/kvm/s390/s390-pv-boot.rst | 2 +-
Documentation/virt/kvm/s390/s390-pv-dump.rst | 64 +
Documentation/virt/kvm/x86/hypercalls.rst | 2 +-
.../virt/uml/user_mode_linux_howto_v2.rst | 2 +-
Documentation/watchdog/watchdog-parameters.rst | 12 +
Documentation/x86/orc-unwinder.rst | 2 +-
Documentation/x86/sgx.rst | 15 +
Documentation/x86/x86_64/boot-options.rst | 8 +-
Documentation/x86/x86_64/uefi.rst | 2 +-
MAINTAINERS | 832 +-
Makefile | 40 +-
arch/Kconfig | 21 +-
arch/alpha/Kconfig | 1 -
arch/alpha/include/asm/bitops.h | 32 +-
arch/alpha/include/asm/dma.h | 9 -
arch/alpha/include/asm/floppy.h | 2 +-
arch/alpha/include/asm/io.h | 8 +-
arch/alpha/include/asm/pci.h | 6 -
arch/alpha/include/asm/pgtable.h | 17 -
arch/alpha/kernel/irq.c | 2 +-
arch/alpha/kernel/smp.c | 6 -
arch/alpha/mm/fault.c | 4 +
arch/alpha/mm/init.c | 22 +
arch/arc/configs/axs101_defconfig | 1 -
arch/arc/configs/axs103_defconfig | 1 -
arch/arc/configs/axs103_smp_defconfig | 1 -
arch/arc/configs/haps_hs_defconfig | 1 -
arch/arc/configs/haps_hs_smp_defconfig | 1 -
arch/arc/configs/hsdk_defconfig | 1 -
arch/arc/configs/nsim_700_defconfig | 1 -
arch/arc/configs/nsimosci_defconfig | 1 -
arch/arc/configs/nsimosci_hs_defconfig | 1 -
arch/arc/configs/nsimosci_hs_smp_defconfig | 1 -
arch/arc/configs/tb10x_defconfig | 1 -
arch/arc/configs/vdk_hs38_defconfig | 1 -
arch/arc/configs/vdk_hs38_smp_defconfig | 1 -
arch/arc/include/asm/dma.h | 5 -
arch/arc/include/asm/pgtable-bits-arcv2.h | 18 -
arch/arc/kernel/jump_label.c | 13 -
arch/arc/kernel/smp.c | 8 -
arch/arc/mm/fault.c | 4 +
arch/arc/mm/mmap.c | 20 +
arch/arm/Kconfig | 32 +-
arch/arm/Kconfig.debug | 2 +-
arch/arm/Makefile | 1 +
arch/arm/boot/bootp/bootp.lds | 5 +-
arch/arm/boot/dts/Makefile | 33 +-
arch/arm/boot/dts/alpine.dtsi | 2 +-
arch/arm/boot/dts/am335x-boneblack-wireless.dts | 2 +-
arch/arm/boot/dts/am335x-boneblack.dts | 4 +
arch/arm/boot/dts/am335x-boneblue.dts | 2 +-
arch/arm/boot/dts/am335x-bonegreen-wireless.dts | 2 +-
arch/arm/boot/dts/am335x-cm-t335.dts | 4 +-
arch/arm/boot/dts/am335x-evm.dts | 8 +-
arch/arm/boot/dts/am335x-guardian.dts | 2 -
arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi | 4 +-
arch/arm/boot/dts/am335x-moxa-uc-8100-common.dtsi | 4 +-
arch/arm/boot/dts/am335x-pcm-953.dtsi | 4 +-
arch/arm/boot/dts/am335x-pepper.dts | 8 +-
.../boot/dts/am335x-sancloud-bbe-extended-wifi.dts | 2 +-
arch/arm/boot/dts/am335x-shc.dts | 6 +-
arch/arm/boot/dts/am33xx.dtsi | 5 +-
arch/arm/boot/dts/am3517-evm-ui.dtsi | 26 +-
arch/arm/boot/dts/am3517-evm.dts | 18 +-
arch/arm/boot/dts/am3517.dtsi | 5 +-
arch/arm/boot/dts/am3874-iceboard.dts | 4 +-
arch/arm/boot/dts/am4372.dtsi | 5 +-
arch/arm/boot/dts/am437x-idk-evm.dts | 6 +-
arch/arm/boot/dts/am437x-l4.dtsi | 2 +-
arch/arm/boot/dts/animeo_ip.dts | 10 +-
arch/arm/boot/dts/armada-370-c200-v2.dts | 8 +-
arch/arm/boot/dts/armada-370-rd.dts | 2 -
arch/arm/boot/dts/armada-370-seagate-nas-xbay.dtsi | 8 +-
.../dts/armada-370-seagate-personal-cloud.dtsi | 8 +-
arch/arm/boot/dts/armada-381-netgear-gs110emx.dts | 2 +-
arch/arm/boot/dts/armada-385-clearfog-gtr.dtsi | 4 +-
arch/arm/boot/dts/armada-385-linksys.dtsi | 4 +-
arch/arm/boot/dts/armada-385-turris-omnia.dts | 10 +-
arch/arm/boot/dts/armada-388-clearfog-base.dts | 2 +-
arch/arm/boot/dts/armada-388-clearfog.dts | 2 +-
arch/arm/boot/dts/armada-xp-axpwifiap.dts | 6 +-
arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 8 +-
arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts | 6 +-
arch/arm/boot/dts/artpec6-devboard.dts | 9 +-
arch/arm/boot/dts/aspeed-ast2500-evb.dts | 2 +-
arch/arm/boot/dts/aspeed-ast2600-evb-a1.dts | 1 +
arch/arm/boot/dts/aspeed-ast2600-evb.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-ampere-mtjade.dts | 30 +-
.../boot/dts/aspeed-bmc-arm-centriq2400-rep.dts | 225 -
arch/arm/boot/dts/aspeed-bmc-bytedance-g220a.dts | 48 +-
arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts | 10 +-
arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts | 14 +-
arch/arm/boot/dts/aspeed-bmc-inspur-fp5280g2.dts | 22 +-
arch/arm/boot/dts/aspeed-bmc-opp-mihawk.dts | 23 +-
arch/arm/boot/dts/aspeed-bmc-opp-mowgli.dts | 20 +-
arch/arm/boot/dts/aspeed-bmc-opp-nicole.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-opp-swift.dts | 30 +-
arch/arm/boot/dts/aspeed-bmc-opp-tacoma.dts | 14 +-
arch/arm/boot/dts/aspeed-bmc-opp-vesnin.dts | 4 +-
arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts | 16 +-
arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 4 +-
arch/arm/boot/dts/aspeed-bmc-portwell-neptune.dts | 6 +-
...ia-dc-scm.dts => aspeed-bmc-qcom-dc-scm-v1.dts} | 4 +-
arch/arm/boot/dts/aspeed-bmc-quanta-s6q.dts | 6 +-
arch/arm/boot/dts/at91-foxg20.dts | 4 +-
arch/arm/boot/dts/at91-gatwick.dts | 2 +-
arch/arm/boot/dts/at91-kizbox.dts | 8 +-
arch/arm/boot/dts/at91-kizbox2-common.dtsi | 10 +-
arch/arm/boot/dts/at91-kizbox3-hs.dts | 14 +-
arch/arm/boot/dts/at91-kizboxmini-common.dtsi | 6 +-
arch/arm/boot/dts/at91-nattis-2-natte-2.dts | 2 +-
arch/arm/boot/dts/at91-qil_a9260.dts | 4 +-
arch/arm/boot/dts/at91-sam9x60ek.dts | 10 +-
arch/arm/boot/dts/at91-sama5d27_som1.dtsi | 4 +-
arch/arm/boot/dts/at91-sama5d27_som1_ek.dts | 8 +-
arch/arm/boot/dts/at91-sama5d27_wlsom1.dtsi | 2 +
arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dts | 7 +-
arch/arm/boot/dts/at91-sama5d2_icp.dts | 15 +-
arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts | 12 +-
arch/arm/boot/dts/at91-sama5d2_xplained.dts | 12 +-
arch/arm/boot/dts/at91-sama5d3_ksz9477_evb.dts | 5 +
arch/arm/boot/dts/at91-sama5d3_xplained.dts | 4 +-
arch/arm/boot/dts/at91-sama5d4_xplained.dts | 4 +-
arch/arm/boot/dts/at91-sama5d4ek.dts | 4 +-
arch/arm/boot/dts/at91-sama7g5ek.dts | 4 +-
arch/arm/boot/dts/at91-wb45n.dts | 7 +-
arch/arm/boot/dts/at91-wb50n.dts | 10 +-
arch/arm/boot/dts/at91sam9260.dtsi | 2 +-
arch/arm/boot/dts/at91sam9260ek.dts | 6 +-
arch/arm/boot/dts/at91sam9261.dtsi | 2 +-
arch/arm/boot/dts/at91sam9261ek.dts | 10 +-
arch/arm/boot/dts/at91sam9263.dtsi | 2 +-
arch/arm/boot/dts/at91sam9263ek.dts | 6 +-
arch/arm/boot/dts/at91sam9g20ek_common.dtsi | 6 +-
.../boot/dts/at91sam9g25-gardena-smart-gateway.dts | 2 +-
arch/arm/boot/dts/at91sam9g45.dtsi | 2 +-
arch/arm/boot/dts/at91sam9m10g45ek.dts | 16 +-
arch/arm/boot/dts/at91sam9n12.dtsi | 2 +-
arch/arm/boot/dts/at91sam9n12ek.dts | 4 +-
arch/arm/boot/dts/at91sam9rl.dtsi | 2 +-
arch/arm/boot/dts/at91sam9rlek.dts | 6 +-
arch/arm/boot/dts/at91sam9x5.dtsi | 2 +-
arch/arm/boot/dts/axm5516-cpus.dtsi | 32 +-
arch/arm/boot/dts/bcm11351.dtsi | 14 +-
arch/arm/boot/dts/bcm21664-garnet.dts | 14 +-
arch/arm/boot/dts/bcm21664.dtsi | 14 +-
arch/arm/boot/dts/bcm2711-rpi-400.dts | 6 +-
arch/arm/boot/dts/bcm2711-rpi.dtsi | 4 +
arch/arm/boot/dts/bcm2711.dtsi | 14 +-
arch/arm/boot/dts/bcm28155-ap.dts | 22 +-
arch/arm/boot/dts/bcm2835-common.dtsi | 1 +
arch/arm/boot/dts/bcm283x.dtsi | 8 +-
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts | 6 +-
arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts | 8 +-
.../dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi | 10 +-
arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 10 +-
arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts | 4 +-
arch/arm/boot/dts/bcm4708-linksys-ea6500-v2.dts | 4 +-
arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 2 +-
arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 2 +-
arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 6 +-
arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts | 6 +-
arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 6 +-
arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts | 4 +-
arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 8 +-
arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts | 2 +-
arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 2 +-
arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 2 +-
arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts | 4 +-
arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 6 +-
arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 14 +-
arch/arm/boot/dts/bcm4709-linksys-ea9200.dts | 6 +-
arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 8 +-
arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 10 +-
arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts | 6 +-
arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts | 8 +-
arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 6 +-
arch/arm/boot/dts/bcm47094-linksys-panamera.dts | 6 +-
arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 2 +-
arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts | 2 +-
arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 2 +-
arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 4 +-
arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 2 +-
arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 2 +-
arch/arm/boot/dts/bcm47094-netgear-r8500.dts | 8 +-
arch/arm/boot/dts/bcm47094-phicomm-k3.dts | 2 +-
arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts | 2 +-
arch/arm/boot/dts/bcm47189-luxul-xap-810.dts | 2 +-
arch/arm/boot/dts/bcm47189-tenda-ac9.dts | 6 +-
arch/arm/boot/dts/bcm47622.dtsi | 14 +-
arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 166 +
arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 4 +-
arch/arm/boot/dts/bcm5301x.dtsi | 6 +-
arch/arm/boot/dts/bcm63138.dtsi | 4 +-
arch/arm/boot/dts/bcm63148.dtsi | 103 +
arch/arm/boot/dts/bcm63178.dtsi | 118 +
arch/arm/boot/dts/bcm6756.dtsi | 130 +
arch/arm/boot/dts/bcm6846.dtsi | 103 +
arch/arm/boot/dts/bcm6855.dtsi | 120 +
arch/arm/boot/dts/bcm6878.dtsi | 110 +
arch/arm/boot/dts/bcm911360_entphn.dts | 4 +-
arch/arm/boot/dts/bcm947189acdbmr.dts | 4 +-
arch/arm/boot/dts/bcm953012er.dts | 4 +-
arch/arm/boot/dts/bcm958625-meraki-alamo.dtsi | 2 +-
arch/arm/boot/dts/bcm958625-meraki-kingpin.dtsi | 2 +-
arch/arm/boot/dts/bcm963138.dts | 27 +
arch/arm/boot/dts/bcm963138dvt.dts | 2 +-
arch/arm/boot/dts/bcm963148.dts | 30 +
arch/arm/boot/dts/bcm963178.dts | 30 +
arch/arm/boot/dts/bcm96756.dts | 30 +
arch/arm/boot/dts/bcm96846.dts | 30 +
arch/arm/boot/dts/bcm96855.dts | 30 +
arch/arm/boot/dts/bcm96878.dts | 30 +
arch/arm/boot/dts/da850-evm.dts | 18 +-
arch/arm/boot/dts/da850.dtsi | 12 +-
arch/arm/boot/dts/dm8148-evm.dts | 2 +-
arch/arm/boot/dts/dm814x.dtsi | 6 +-
arch/arm/boot/dts/dm8168-evm.dts | 2 +-
arch/arm/boot/dts/dm816x.dtsi | 6 +-
arch/arm/boot/dts/dra62x-j5eco-evm.dts | 2 +-
arch/arm/boot/dts/dra62x.dtsi | 6 +-
arch/arm/boot/dts/dra7-dspeve-thermal.dtsi | 5 +-
arch/arm/boot/dts/dra7-iva-thermal.dtsi | 5 +-
arch/arm/boot/dts/dra72x-mmc-iodelay.dtsi | 10 +-
arch/arm/boot/dts/dra74x-mmc-iodelay.dtsi | 10 +-
arch/arm/boot/dts/dra76x.dtsi | 6 +-
arch/arm/boot/dts/e60k02.dtsi | 4 +-
arch/arm/boot/dts/e70k02.dtsi | 8 +-
arch/arm/boot/dts/ecx-common.dtsi | 10 +-
arch/arm/boot/dts/en7523-evb.dts | 8 +
arch/arm/boot/dts/en7523.dtsi | 66 +
arch/arm/boot/dts/exynos-pinctrl.h | 55 +
arch/arm/boot/dts/exynos3250-artik5.dtsi | 2 +-
arch/arm/boot/dts/exynos3250-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos3250.dtsi | 6 +-
arch/arm/boot/dts/exynos4.dtsi | 8 +-
arch/arm/boot/dts/exynos4210-i9100.dts | 8 +-
arch/arm/boot/dts/exynos4210-origen.dts | 12 +-
arch/arm/boot/dts/exynos4210-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos4210-trats.dts | 2 +-
arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi | 8 +-
arch/arm/boot/dts/exynos4412-itop-elite.dts | 15 +-
arch/arm/boot/dts/exynos4412-midas.dtsi | 3 +-
arch/arm/boot/dts/exynos4412-odroidu3.dts | 4 +-
arch/arm/boot/dts/exynos4412-odroidx.dts | 5 +-
arch/arm/boot/dts/exynos4412-p4note.dtsi | 86 +-
arch/arm/boot/dts/exynos4412-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos4412-tiny4412.dts | 3 +
arch/arm/boot/dts/exynos5.dtsi | 2 +-
arch/arm/boot/dts/exynos5250-arndale.dts | 12 +-
arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos5250-snow-common.dtsi | 2 +-
arch/arm/boot/dts/exynos5250-spring.dts | 2 +-
arch/arm/boot/dts/exynos5260-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos5410-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos5420-arndale-octa.dts | 2 +-
arch/arm/boot/dts/exynos5420-peach-pit.dts | 2 +-
arch/arm/boot/dts/exynos5420-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos5422-odroidhc1.dts | 4 +-
arch/arm/boot/dts/exynos5422-odroidxu4.dts | 4 +-
arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi | 8 +-
arch/arm/boot/dts/exynos5800-peach-pi.dts | 2 +-
arch/arm/boot/dts/imx23-pinfunc.h | 8 +-
arch/arm/boot/dts/imx25.dtsi | 2 +-
arch/arm/boot/dts/imx27.dtsi | 6 +-
arch/arm/boot/dts/imx28-pinfunc.h | 8 +-
arch/arm/boot/dts/imx31.dtsi | 4 +-
arch/arm/boot/dts/imx50.dtsi | 6 +-
arch/arm/boot/dts/imx51-ts4800.dts | 2 +-
arch/arm/boot/dts/imx51.dtsi | 6 +-
arch/arm/boot/dts/imx53.dtsi | 6 +-
arch/arm/boot/dts/imx6dl-plym2m.dts | 2 +-
arch/arm/boot/dts/imx6dl-prtvt7.dts | 2 +-
arch/arm/boot/dts/imx6dl-victgo.dts | 2 +-
arch/arm/boot/dts/imx6dl.dtsi | 2 +-
arch/arm/boot/dts/imx6q-apalis-eval.dts | 127 +-
arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts | 263 +-
arch/arm/boot/dts/imx6q-apalis-ixora-v1.2.dts | 276 +
arch/arm/boot/dts/imx6q-apalis-ixora.dts | 113 +-
arch/arm/boot/dts/imx6q-bosch-acc.dts | 4 +-
arch/arm/boot/dts/imx6q-gk802.dts | 9 +-
.../boot/dts/imx6q-skov-reve-mi1010ait-1cp1.dts | 6 +
arch/arm/boot/dts/imx6q.dtsi | 4 +-
arch/arm/boot/dts/imx6qdl-apalis.dtsi | 638 +-
arch/arm/boot/dts/imx6qdl-colibri.dtsi | 21 +-
arch/arm/boot/dts/imx6qdl-prti6q.dtsi | 3 +
arch/arm/boot/dts/imx6qdl-skov-cpu-revc.dtsi | 4 +-
arch/arm/boot/dts/imx6qdl-skov-cpu.dtsi | 10 +
arch/arm/boot/dts/imx6qdl-ts7970.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl.dtsi | 8 +-
arch/arm/boot/dts/imx6sl-tolino-shine2hd.dts | 10 +-
arch/arm/boot/dts/imx6sx.dtsi | 2 +-
arch/arm/boot/dts/imx6ul-kontron-n6x1x-s.dtsi | 1 -
arch/arm/boot/dts/imx6ul-phytec-segin.dtsi | 5 -
arch/arm/boot/dts/imx6ul-tqma6ul2l.dtsi | 2 +-
arch/arm/boot/dts/imx6ul.dtsi | 36 +-
arch/arm/boot/dts/imx6ull-colibri.dtsi | 10 +-
arch/arm/boot/dts/imx6ull-tqma6ull2.dtsi | 2 +-
arch/arm/boot/dts/imx6ull-tqma6ull2l.dtsi | 2 +-
arch/arm/boot/dts/imx6ull.dtsi | 2 +-
arch/arm/boot/dts/imx6ulz-bsh-smm-m2.dts | 4 +
arch/arm/boot/dts/imx7-colibri-aster.dtsi | 142 +-
arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi | 156 +-
arch/arm/boot/dts/imx7-colibri-iris-v2.dtsi | 112 +
arch/arm/boot/dts/imx7-colibri-iris.dtsi | 108 +
arch/arm/boot/dts/imx7-colibri.dtsi | 830 +-
arch/arm/boot/dts/imx7d-colibri-aster.dts | 30 +-
arch/arm/boot/dts/imx7d-colibri-emmc-aster.dts | 10 +-
arch/arm/boot/dts/imx7d-colibri-emmc-eval-v3.dts | 10 +-
arch/arm/boot/dts/imx7d-colibri-emmc-iris-v2.dts | 21 +
arch/arm/boot/dts/imx7d-colibri-emmc-iris.dts | 21 +
arch/arm/boot/dts/imx7d-colibri-emmc.dtsi | 17 +-
arch/arm/boot/dts/imx7d-colibri-eval-v3.dts | 45 +-
arch/arm/boot/dts/imx7d-colibri-iris-v2.dts | 83 +
arch/arm/boot/dts/imx7d-colibri-iris.dts | 56 +
arch/arm/boot/dts/imx7d-colibri.dtsi | 13 +-
arch/arm/boot/dts/imx7d-sdb.dts | 2 +-
arch/arm/boot/dts/imx7d-smegw01.dts | 8 +-
arch/arm/boot/dts/imx7d.dtsi | 2 +-
arch/arm/boot/dts/imx7s-colibri-aster.dts | 27 +-
arch/arm/boot/dts/imx7s-colibri-eval-v3.dts | 43 +-
arch/arm/boot/dts/imx7s-colibri-iris-v2.dts | 78 +
arch/arm/boot/dts/imx7s-colibri-iris.dts | 51 +
arch/arm/boot/dts/imx7s-colibri.dtsi | 5 +-
arch/arm/boot/dts/imx7s.dtsi | 4 +-
arch/arm/boot/dts/imxrt1050.dtsi | 4 +-
arch/arm/boot/dts/imxrt1170-pinfunc.h | 1561 +
arch/arm/boot/dts/keystone-k2e-netcp.dtsi | 26 +-
arch/arm/boot/dts/keystone-k2e.dtsi | 6 +-
arch/arm/boot/dts/keystone-k2g-netcp.dtsi | 2 +-
arch/arm/boot/dts/keystone-k2g.dtsi | 18 +-
arch/arm/boot/dts/keystone-k2hk-netcp.dtsi | 12 +-
arch/arm/boot/dts/keystone-k2hk.dtsi | 4 +-
arch/arm/boot/dts/keystone-k2l-netcp.dtsi | 18 +-
arch/arm/boot/dts/keystone-k2l.dtsi | 8 +-
arch/arm/boot/dts/keystone.dtsi | 18 +-
.../boot/dts/lan966x-kontron-kswitch-d10-mmt.dtsi | 21 +-
arch/arm/boot/dts/lan966x-pcb8291.dts | 61 +-
arch/arm/boot/dts/lan966x-pcb8309.dts | 184 +
arch/arm/boot/dts/lan966x.dtsi | 30 +-
arch/arm/boot/dts/lpc18xx.dtsi | 6 +-
arch/arm/boot/dts/ls1021a-iot.dts | 2 +-
arch/arm/boot/dts/ls1021a.dtsi | 7 +
arch/arm/boot/dts/meson.dtsi | 4 +-
arch/arm/boot/dts/meson8.dtsi | 2 +-
arch/arm/boot/dts/meson8b.dtsi | 2 +-
arch/arm/boot/dts/mt2701.dtsi | 8 +-
arch/arm/boot/dts/mt7623.dtsi | 6 +-
arch/arm/boot/dts/mt7623a-rfb-emmc.dts | 4 +-
arch/arm/boot/dts/mt7623a-rfb-nand.dts | 4 +-
arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts | 4 +-
arch/arm/boot/dts/mt7623n-rfb-emmc.dts | 4 +-
arch/arm/boot/dts/mt7629-rfb.dts | 4 +-
arch/arm/boot/dts/mxs-pinfunc.h | 8 +-
arch/arm/boot/dts/nuvoton-common-npcm7xx.dtsi | 3 +-
arch/arm/boot/dts/nuvoton-npcm750.dtsi | 2 +-
arch/arm/boot/dts/omap2.dtsi | 5 +-
arch/arm/boot/dts/omap2420-h4.dts | 2 +-
arch/arm/boot/dts/omap2420.dtsi | 5 +-
arch/arm/boot/dts/omap2430.dtsi | 5 +-
arch/arm/boot/dts/omap3-cpu-thermal.dtsi | 5 +-
arch/arm/boot/dts/omap3-evm-37xx.dts | 2 +-
arch/arm/boot/dts/omap3-evm.dts | 2 +-
arch/arm/boot/dts/omap3-gta04.dtsi | 2 +-
arch/arm/boot/dts/omap3-igep.dtsi | 2 +-
arch/arm/boot/dts/omap3-ldp.dts | 6 +-
arch/arm/boot/dts/omap3-lilly-a83x.dtsi | 2 +-
arch/arm/boot/dts/omap3-n900.dts | 4 +-
arch/arm/boot/dts/omap3-n950-n9.dtsi | 4 +-
arch/arm/boot/dts/omap3-overo-base.dtsi | 2 +-
arch/arm/boot/dts/omap3-pandora-common.dtsi | 2 +-
arch/arm/boot/dts/omap3.dtsi | 5 +-
arch/arm/boot/dts/omap3430-sdp.dts | 6 +-
arch/arm/boot/dts/omap34xx.dtsi | 5 +-
arch/arm/boot/dts/omap36xx.dtsi | 5 +-
arch/arm/boot/dts/omap4-cpu-thermal.dtsi | 5 +-
arch/arm/boot/dts/omap443x.dtsi | 5 +-
arch/arm/boot/dts/omap4460.dtsi | 5 +-
arch/arm/boot/dts/omap5-core-thermal.dtsi | 5 +-
arch/arm/boot/dts/omap5-gpu-thermal.dtsi | 5 +-
arch/arm/boot/dts/omap5-l4.dtsi | 2 +-
arch/arm/boot/dts/orion5x-lacie-d2-network.dts | 5 +-
.../dts/orion5x-lacie-ethernet-disk-mini-v2.dts | 9 +-
.../boot/dts/orion5x-maxtor-shared-storage-2.dts | 5 +-
arch/arm/boot/dts/orion5x-mv88f5181.dtsi | 9 +-
arch/arm/boot/dts/orion5x-mv88f5182.dtsi | 9 +-
arch/arm/boot/dts/orion5x-netgear-wnr854t.dts | 9 +-
arch/arm/boot/dts/orion5x-rd88f5182-nas.dts | 9 +-
arch/arm/boot/dts/orion5x.dtsi | 9 +-
arch/arm/boot/dts/pxa300-raumfeld-common.dtsi | 10 +-
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | 25 +-
arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts | 24 +-
arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts | 14 +-
arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 25 +-
.../dts/qcom-apq8064-sony-xperia-lagan-yuga.dts | 10 +-
arch/arm/boot/dts/qcom-apq8064.dtsi | 189 +-
arch/arm/boot/dts/qcom-apq8084.dtsi | 10 +-
arch/arm/boot/dts/qcom-ipq4018-ap120c-ac-bit.dts | 6 +
arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dts | 7 +
arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dtsi | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1.dtsi | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019.dtsi | 4 +-
arch/arm/boot/dts/qcom-ipq8064-ap148.dts | 6 -
arch/arm/boot/dts/qcom-ipq8064-rb3011.dts | 15 +-
arch/arm/boot/dts/qcom-ipq8064-smb208.dtsi | 37 +
arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi | 9 +-
arch/arm/boot/dts/qcom-ipq8064.dtsi | 198 +-
arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi | 2 +-
arch/arm/boot/dts/qcom-mdm9615.dtsi | 7 +-
arch/arm/boot/dts/qcom-msm8226.dtsi | 6 +-
arch/arm/boot/dts/qcom-msm8660.dtsi | 116 +-
arch/arm/boot/dts/qcom-msm8960.dtsi | 54 +-
.../dts/qcom-msm8974-lge-nexus5-hammerhead.dts | 42 +-
.../boot/dts/qcom-msm8974-sony-xperia-rhine.dtsi | 40 +-
arch/arm/boot/dts/qcom-msm8974.dtsi | 83 +-
.../arm/boot/dts/qcom-msm8974pro-fairphone-fp2.dts | 46 +-
arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts | 22 +-
.../qcom-msm8974pro-sony-xperia-shinano-castor.dts | 48 +-
arch/arm/boot/dts/qcom-pm8841.dtsi | 1 +
arch/arm/boot/dts/qcom-pm8941.dtsi | 12 +-
arch/arm/boot/dts/qcom-pmx55.dtsi | 1 +
arch/arm/boot/dts/qcom-pmx65.dtsi | 3 +-
arch/arm/boot/dts/qcom-sdx55.dtsi | 8 +-
arch/arm/boot/dts/qcom-sdx65-mtp.dts | 61 +-
arch/arm/boot/dts/qcom-sdx65.dtsi | 273 +-
arch/arm/boot/dts/r7s9210-rza2mevb.dts | 4 +-
arch/arm/boot/dts/r8a7790-lager.dts | 2 +-
arch/arm/boot/dts/r8a7790-stout.dts | 2 +-
arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +-
arch/arm/boot/dts/r8a7791-porter.dts | 2 +-
arch/arm/boot/dts/r8a7792-blanche.dts | 2 +-
arch/arm/boot/dts/r8a7793-gose.dts | 2 +-
arch/arm/boot/dts/r8a7794-alt.dts | 2 +-
arch/arm/boot/dts/r8a7794-silk.dts | 2 +-
arch/arm/boot/dts/r8a77xx-aa104xd12-panel.dtsi | 39 -
arch/arm/boot/dts/r9a06g032-rzn1d400-db.dts | 119 +
arch/arm/boot/dts/r9a06g032.dtsi | 108 +
arch/arm/boot/dts/rk3066a-bqcurie2.dts | 4 +-
arch/arm/boot/dts/rk3066a-mk808.dts | 18 +
arch/arm/boot/dts/rk3066a-rayeager.dts | 2 +-
arch/arm/boot/dts/rk3188-bqedison2qc.dts | 4 +-
arch/arm/boot/dts/rk3188-px3-evb.dts | 2 +-
arch/arm/boot/dts/rk3188-radxarock.dts | 2 +-
arch/arm/boot/dts/rk3229-evb.dts | 2 +-
arch/arm/boot/dts/rk3288-evb.dtsi | 2 +-
arch/arm/boot/dts/rk3288-firefly-reload.dts | 2 +-
arch/arm/boot/dts/rk3288-firefly.dtsi | 2 +-
arch/arm/boot/dts/rk3288-phycore-rdk.dts | 4 +-
arch/arm/boot/dts/rk3288-popmetal.dts | 2 +-
arch/arm/boot/dts/rk3288-r89.dts | 2 +-
arch/arm/boot/dts/rk3288-rock2-square.dts | 2 +-
arch/arm/boot/dts/rk3288-tinker.dtsi | 4 +-
.../boot/dts/rk3288-veyron-broadcom-bluetooth.dtsi | 10 +-
arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi | 2 +-
arch/arm/boot/dts/rk3288-veyron-minnie.dts | 4 +-
arch/arm/boot/dts/rk3288-veyron-pinky.dts | 2 +-
arch/arm/boot/dts/rk3288-veyron.dtsi | 2 +-
arch/arm/boot/dts/rv1108-elgin-r1.dts | 14 +-
arch/arm/boot/dts/rv1108-evb.dts | 14 +-
arch/arm/boot/dts/rv1108.dtsi | 2 +-
arch/arm/boot/dts/s3c2410-pinctrl.h | 19 +
arch/arm/boot/dts/s3c2416-pinctrl.dtsi | 38 +-
arch/arm/boot/dts/s3c2416.dtsi | 4 +-
arch/arm/boot/dts/s3c64xx-pinctrl.dtsi | 178 +-
arch/arm/boot/dts/s3c64xx-pinctrl.h | 27 +
arch/arm/boot/dts/s3c64xx.dtsi | 6 +-
arch/arm/boot/dts/s5pv210-aquila.dts | 4 +-
arch/arm/boot/dts/s5pv210-aries.dtsi | 134 +-
arch/arm/boot/dts/s5pv210-fascinate4g.dts | 28 +-
arch/arm/boot/dts/s5pv210-galaxys.dts | 42 +-
arch/arm/boot/dts/s5pv210-pinctrl.dtsi | 480 +-
arch/arm/boot/dts/s5pv210-pinctrl.h | 39 +
arch/arm/boot/dts/s5pv210.dtsi | 8 +-
arch/arm/boot/dts/sam9x60.dtsi | 4 +-
arch/arm/boot/dts/sama5d2.dtsi | 26 +-
arch/arm/boot/dts/sama5d3.dtsi | 2 +-
arch/arm/boot/dts/sama5d4.dtsi | 2 +-
arch/arm/boot/dts/sama7g5.dtsi | 7 +
arch/arm/boot/dts/sd5203.dts | 2 +-
arch/arm/boot/dts/socfpga.dtsi | 8 +
arch/arm/boot/dts/socfpga_arria10.dtsi | 10 +
arch/arm/boot/dts/socfpga_arria10_chameleonv3.dts | 90 +
...ry_aa1.dts => socfpga_arria10_mercury_aa1.dtsi} | 48 +-
arch/arm/boot/dts/spear1310-evb.dts | 2 +-
arch/arm/boot/dts/spear1340-evb.dts | 2 +-
arch/arm/boot/dts/spear1340.dtsi | 2 +-
arch/arm/boot/dts/spear300-evb.dts | 2 +-
arch/arm/boot/dts/spear310-evb.dts | 2 +-
arch/arm/boot/dts/spear320-evb.dts | 2 +-
arch/arm/boot/dts/spear320-hmi.dts | 2 +-
arch/arm/boot/dts/spear320.dtsi | 2 +-
arch/arm/boot/dts/ste-ab8500.dtsi | 6 +-
arch/arm/boot/dts/ste-dbx5x0.dtsi | 5 -
arch/arm/boot/dts/ste-hrefv60plus.dtsi | 4 +-
arch/arm/boot/dts/ste-ux500-samsung-codina.dts | 4 +-
arch/arm/boot/dts/ste-ux500-samsung-gavini.dts | 4 +-
arch/arm/boot/dts/ste-ux500-samsung-janice.dts | 4 +-
arch/arm/boot/dts/stih407-family.dtsi | 176 +-
arch/arm/boot/dts/stih407.dtsi | 4 +-
arch/arm/boot/dts/stih410.dtsi | 4 +-
arch/arm/boot/dts/stihxxx-b2120.dtsi | 8 +-
arch/arm/boot/dts/stm32429i-eval.dts | 8 +-
arch/arm/boot/dts/stm32h743.dtsi | 4 +-
arch/arm/boot/dts/stm32h743i-disco.dts | 8 +-
arch/arm/boot/dts/stm32h743i-eval.dts | 8 +-
arch/arm/boot/dts/stm32h750i-art-pi.dts | 8 +-
arch/arm/boot/dts/stm32mp131.dtsi | 140 +-
arch/arm/boot/dts/stm32mp133.dtsi | 4 +-
arch/arm/boot/dts/stm32mp135f-dk.dts | 11 +
arch/arm/boot/dts/stm32mp13xc.dtsi | 3 +-
arch/arm/boot/dts/stm32mp13xf.dtsi | 3 +-
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 177 +-
arch/arm/boot/dts/stm32mp15-scmi.dtsi | 105 +
arch/arm/boot/dts/stm32mp151.dtsi | 54 +-
.../arm/boot/dts/stm32mp153c-dhcor-drc-compact.dts | 30 +
arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts | 17 +-
arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts | 14 +-
arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts | 17 +-
arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts | 14 +-
arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi | 55 +
.../boot/dts/stm32mp15xx-dhcor-drc-compact.dtsi | 322 +
arch/arm/boot/dts/stm32mp15xx-dhcor-io1v8.dtsi | 5 +
arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi | 4 +-
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 8 +
arch/arm/boot/dts/stm32mp15xx-osd32.dtsi | 9 +-
arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts | 40 +-
arch/arm/boot/dts/sun4i-a10-pcduino.dts | 6 +-
arch/arm/boot/dts/sun5i-a13-licheepi-one.dts | 6 +-
arch/arm/boot/dts/sun6i-a31.dtsi | 13 +-
arch/arm/boot/dts/sun7i-a20-pcduino3.dts | 6 +-
arch/arm/boot/dts/sun8i-a23-a33.dtsi | 9 +-
.../boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 8 +-
arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 2 +-
arch/arm/boot/dts/sun8i-h3-beelink-x2.dts | 6 +-
arch/arm/boot/dts/sun8i-h3-mapleboard-mp130.dts | 6 +-
arch/arm/boot/dts/sun8i-h3-nanopi-duo2.dts | 8 +-
arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts | 2 +-
arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts | 4 +-
arch/arm/boot/dts/sun8i-h3-nanopi.dtsi | 4 +-
arch/arm/boot/dts/sun8i-h3-orangepi-2.dts | 6 +-
arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts | 4 +-
arch/arm/boot/dts/sun8i-h3-orangepi-one.dts | 4 +-
arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts | 4 +-
arch/arm/boot/dts/sun8i-r16-bananapi-m2m.dts | 4 +-
arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts | 5 +
arch/arm/boot/dts/sun8i-r40-cpu-opp.dtsi | 52 +
arch/arm/boot/dts/sun8i-r40-feta40i.dtsi | 5 +
arch/arm/boot/dts/sun8i-r40.dtsi | 44 +-
arch/arm/boot/dts/sun8i-t3-cqa3t-bv3.dts | 5 +
arch/arm/boot/dts/sun8i-v3s.dtsi | 6 +-
arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts | 5 +
arch/arm/boot/dts/sun9i-a80.dtsi | 1 -
arch/arm/boot/dts/sunplus-sp7021-achip.dtsi | 84 +
arch/arm/boot/dts/sunplus-sp7021-demo-v3.dts | 30 +
arch/arm/boot/dts/sunplus-sp7021.dtsi | 310 +
arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi | 8 +-
arch/arm/boot/dts/sunxi-h3-h5-emlid-neutis.dtsi | 4 +-
arch/arm/boot/dts/sunxi-h3-h5.dtsi | 13 +-
arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi | 4 +-
arch/arm/boot/dts/tegra114-asus-tf701t.dts | 8 +-
arch/arm/boot/dts/tegra114-dalmore.dts | 8 +-
arch/arm/boot/dts/tegra114-roth.dts | 6 +-
arch/arm/boot/dts/tegra114-tn7.dts | 6 +-
arch/arm/boot/dts/tegra124-apalis-eval.dts | 2 +-
arch/arm/boot/dts/tegra124-apalis-v1.2-eval.dts | 2 +-
arch/arm/boot/dts/tegra124-jetson-tk1.dts | 2 +-
arch/arm/boot/dts/tegra124-nyan.dtsi | 4 +-
arch/arm/boot/dts/tegra124-venice2.dts | 2 +-
arch/arm/boot/dts/tegra20-acer-a500-picasso.dts | 10 +-
arch/arm/boot/dts/tegra20-asus-tf101.dts | 10 +-
arch/arm/boot/dts/tegra20-colibri-eval-v3.dts | 2 +-
arch/arm/boot/dts/tegra20-colibri-iris.dts | 2 +-
arch/arm/boot/dts/tegra20-harmony.dts | 2 +-
arch/arm/boot/dts/tegra20-paz00.dts | 2 +-
arch/arm/boot/dts/tegra20-seaboard.dts | 4 +-
arch/arm/boot/dts/tegra20-trimslice.dts | 2 +-
arch/arm/boot/dts/tegra20-ventana.dts | 2 +-
arch/arm/boot/dts/tegra30-apalis-eval.dts | 2 +-
arch/arm/boot/dts/tegra30-apalis-v1.1-eval.dts | 2 +-
.../dts/tegra30-asus-nexus7-grouper-common.dtsi | 14 +-
arch/arm/boot/dts/tegra30-asus-nexus7-tilapia.dtsi | 2 +-
.../boot/dts/tegra30-asus-transformer-common.dtsi | 10 +-
arch/arm/boot/dts/tegra30-cardhu.dtsi | 6 +-
arch/arm/boot/dts/tegra30-colibri-eval-v3.dts | 2 +-
arch/arm/boot/dts/tegra30-colibri.dtsi | 6 +-
arch/arm/boot/dts/tegra30-ouya.dts | 2 +-
arch/arm/boot/dts/tegra30-pegatron-chagall.dts | 10 +-
arch/arm/boot/dts/uniphier-pxs2.dtsi | 8 +-
arch/arm/boot/dts/zynq-zc702.dts | 4 +-
arch/arm/boot/dts/zynq-zturn-common.dtsi | 2 +-
arch/arm/common/Kconfig | 6 +-
arch/arm/common/Makefile | 1 -
arch/arm/common/dmabounce.c | 582 -
arch/arm/common/sa1111.c | 64 -
arch/arm/configs/am200epdkit_defconfig | 28 +-
arch/arm/configs/aspeed_g4_defconfig | 17 +-
arch/arm/configs/aspeed_g5_defconfig | 17 +-
arch/arm/configs/assabet_defconfig | 19 +-
arch/arm/configs/at91_dt_defconfig | 10 +-
arch/arm/configs/axm55xx_defconfig | 26 +-
arch/arm/configs/badge4_defconfig | 18 +-
arch/arm/configs/bcm2835_defconfig | 39 +-
arch/arm/configs/cerfcube_defconfig | 25 +-
arch/arm/configs/clps711x_defconfig | 6 +-
arch/arm/configs/cm_x300_defconfig | 29 +-
arch/arm/configs/cns3420vb_defconfig | 21 +-
arch/arm/configs/colibri_pxa270_defconfig | 42 +-
arch/arm/configs/colibri_pxa300_defconfig | 13 +-
arch/arm/configs/collie_defconfig | 22 +-
arch/arm/configs/corgi_defconfig | 52 +-
arch/arm/configs/davinci_all_defconfig | 39 +-
arch/arm/configs/dove_defconfig | 32 +-
arch/arm/configs/ep93xx_defconfig | 26 +-
arch/arm/configs/eseries_pxa_defconfig | 37 +-
arch/arm/configs/exynos_defconfig | 24 +-
arch/arm/configs/ezx_defconfig | 75 +-
arch/arm/configs/footbridge_defconfig | 32 +-
arch/arm/configs/h3600_defconfig | 16 +-
arch/arm/configs/h5000_defconfig | 21 +-
arch/arm/configs/hackkit_defconfig | 13 +-
arch/arm/configs/hisi_defconfig | 24 +-
arch/arm/configs/imx_v4_v5_defconfig | 10 +-
arch/arm/configs/imx_v6_v7_defconfig | 8 +-
arch/arm/configs/integrator_defconfig | 2 +-
arch/arm/configs/iop32x_defconfig | 24 +-
arch/arm/configs/ixp4xx_defconfig | 1 -
arch/arm/configs/jornada720_defconfig | 17 +-
arch/arm/configs/keystone_defconfig | 64 +-
arch/arm/configs/lart_defconfig | 22 +-
arch/arm/configs/lpc18xx_defconfig | 16 +-
arch/arm/configs/lpc32xx_defconfig | 12 +-
arch/arm/configs/lpd270_defconfig | 12 +-
arch/arm/configs/lubbock_defconfig | 22 +-
arch/arm/configs/magician_defconfig | 42 +-
arch/arm/configs/mainstone_defconfig | 16 +-
arch/arm/configs/milbeaut_m10v_defconfig | 7 +-
arch/arm/configs/mini2440_defconfig | 9 +-
arch/arm/configs/mmp2_defconfig | 37 +-
arch/arm/configs/moxart_defconfig | 20 +-
arch/arm/configs/mps2_defconfig | 18 +-
arch/arm/configs/multi_v4t_defconfig | 6 +-
arch/arm/configs/multi_v5_defconfig | 31 +-
arch/arm/configs/multi_v7_defconfig | 69 +-
arch/arm/configs/mv78xx0_defconfig | 37 +-
arch/arm/configs/mvebu_v5_defconfig | 40 +-
arch/arm/configs/mvebu_v7_defconfig | 4 +-
arch/arm/configs/mxs_defconfig | 7 +-
arch/arm/configs/neponset_defconfig | 30 +-
arch/arm/configs/netwinder_defconfig | 18 +-
arch/arm/configs/nhk8815_defconfig | 8 +-
arch/arm/configs/omap1_defconfig | 89 +-
arch/arm/configs/omap2plus_defconfig | 17 +-
arch/arm/configs/orion5x_defconfig | 49 +-
arch/arm/configs/oxnas_v6_defconfig | 14 +-
arch/arm/configs/palmz72_defconfig | 17 +-
arch/arm/configs/pcm027_defconfig | 25 +-
arch/arm/configs/pleb_defconfig | 9 +-
arch/arm/configs/pxa168_defconfig | 22 +-
arch/arm/configs/pxa255-idp_defconfig | 22 +-
arch/arm/configs/pxa3xx_defconfig | 27 +-
arch/arm/configs/pxa910_defconfig | 26 +-
arch/arm/configs/pxa_defconfig | 215 +-
arch/arm/configs/qcom_defconfig | 62 +-
arch/arm/configs/realview_defconfig | 8 +-
arch/arm/configs/rpc_defconfig | 20 +-
arch/arm/configs/s3c2410_defconfig | 13 +-
arch/arm/configs/s3c6400_defconfig | 13 +-
arch/arm/configs/s5pv210_defconfig | 6 +-
arch/arm/configs/sama5_defconfig | 8 +-
arch/arm/configs/sama7_defconfig | 8 +-
arch/arm/configs/shannon_defconfig | 11 +-
arch/arm/configs/shmobile_defconfig | 4 +-
arch/arm/configs/simpad_defconfig | 30 +-
arch/arm/configs/socfpga_defconfig | 8 +-
arch/arm/configs/sp7021_defconfig | 59 +
arch/arm/configs/spear13xx_defconfig | 18 +-
arch/arm/configs/spear3xx_defconfig | 12 +-
arch/arm/configs/spear6xx_defconfig | 10 +-
arch/arm/configs/spitz_defconfig | 51 +-
arch/arm/configs/stm32_defconfig | 18 +-
arch/arm/configs/sunxi_defconfig | 2 +-
arch/arm/configs/tct_hammer_defconfig | 15 +-
arch/arm/configs/tegra_defconfig | 20 +-
arch/arm/configs/trizeps4_defconfig | 67 +-
arch/arm/configs/u8500_defconfig | 2 +-
arch/arm/configs/versatile_defconfig | 4 +-
arch/arm/configs/vexpress_defconfig | 8 +-
arch/arm/configs/vf610m4_defconfig | 2 +-
arch/arm/configs/viper_defconfig | 31 +-
arch/arm/configs/vt8500_v6_v7_defconfig | 2 +-
arch/arm/configs/xcep_defconfig | 33 +-
arch/arm/configs/zeus_defconfig | 29 +-
arch/arm/crypto/Kconfig | 2 +-
arch/arm/crypto/Makefile | 4 +-
arch/arm/crypto/blake2s-shash.c | 75 -
arch/arm/include/asm/archrandom.h | 2 +
arch/arm/include/asm/bitops.h | 18 +-
arch/arm/include/asm/device.h | 3 -
arch/arm/include/asm/dma-direct.h | 49 +-
arch/arm/include/asm/dma-mapping.h | 128 -
arch/arm/include/asm/dma.h | 8 +-
arch/arm/include/asm/domain.h | 13 -
arch/arm/include/asm/efi.h | 7 -
arch/arm/include/asm/hardware/cache-aurora-l2.h | 5 +-
arch/arm/include/asm/hardware/cache-feroceon-l2.h | 6 +-
arch/arm/include/asm/hardware/cache-tauros2.h | 5 +-
arch/arm/include/asm/io.h | 4 +-
arch/arm/include/asm/irq_work.h | 2 +
arch/arm/include/asm/mach/map.h | 1 +
arch/arm/include/asm/memory.h | 2 -
arch/arm/include/asm/pci.h | 5 -
arch/arm/include/asm/pgtable.h | 17 -
arch/arm/include/asm/ptrace.h | 26 +
arch/arm/include/asm/xen/xen-ops.h | 2 +
arch/arm/include/debug/brcmstb.S | 14 +-
arch/arm/kernel/entry-common.S | 5 +-
arch/arm/kernel/entry-header.S | 12 +-
arch/arm/kernel/head.S | 34 +-
arch/arm/kernel/irq.c | 3 +-
arch/arm/kernel/jump_label.c | 6 -
arch/arm/kernel/reboot.c | 1 +
arch/arm/kernel/smp.c | 8 -
arch/arm/lib/findbit.S | 16 +-
arch/arm/lib/uaccess_with_memcpy.c | 2 +-
arch/arm/mach-at91/pm.c | 12 +-
arch/arm/mach-at91/sam_secure.c | 6 +
arch/arm/mach-at91/sam_secure.h | 1 +
arch/arm/mach-at91/sama5.c | 16 +-
arch/arm/mach-axxia/platsmp.c | 1 +
arch/arm/mach-bcm/Kconfig | 65 +-
arch/arm/mach-bcm/Makefile | 20 +-
arch/arm/mach-bcm/bcm63xx.c | 27 -
arch/arm/mach-bcm/bcm_cygnus.c | 14 +-
arch/arm/mach-bcm/bcm_hr2.c | 14 +-
arch/arm/mach-bcm/bcm_kona_smc.c | 15 +-
arch/arm/mach-bcm/bcm_kona_smc.h | 14 +-
arch/arm/mach-bcm/bcm_nsp.c | 14 +-
arch/arm/mach-bcm/board_bcm21664.c | 14 +-
arch/arm/mach-bcm/board_bcm23550.c | 14 +-
arch/arm/mach-bcm/board_bcm281xx.c | 14 +-
arch/arm/mach-bcm/brcmstb.c | 14 +-
arch/arm/mach-bcm/kona_l2_cache.c | 14 +-
arch/arm/mach-bcm/kona_l2_cache.h | 14 +-
arch/arm/mach-bcm/platsmp-brcmstb.c | 10 +-
arch/arm/mach-cns3xxx/Kconfig | 1 +
arch/arm/mach-cns3xxx/core.c | 2 +
arch/arm/mach-davinci/Kconfig | 52 +-
arch/arm/mach-davinci/Makefile | 6 -
arch/arm/mach-davinci/board-da830-evm.c | 6 +-
arch/arm/mach-davinci/board-da850-evm.c | 6 +-
arch/arm/mach-davinci/board-dm355-evm.c | 6 +-
arch/arm/mach-davinci/board-dm355-leopard.c | 5 +-
arch/arm/mach-davinci/board-dm365-evm.c | 11 +-
arch/arm/mach-davinci/board-dm644x-evm.c | 928 -
arch/arm/mach-davinci/board-dm646x-evm.c | 873 -
arch/arm/mach-davinci/board-mityomapl138.c | 5 +-
arch/arm/mach-davinci/board-neuros-osd2.c | 238 -
arch/arm/mach-davinci/board-omapl138-hawk.c | 5 +-
arch/arm/mach-davinci/board-sffsdr.c | 151 -
arch/arm/mach-davinci/common.c | 6 +-
arch/arm/mach-davinci/common.h | 6 +-
arch/arm/mach-davinci/cpuidle.h | 5 +-
arch/arm/mach-davinci/cputype.h | 6 +-
arch/arm/mach-davinci/da830.c | 6 +-
arch/arm/mach-davinci/da850.c | 6 +-
arch/arm/mach-davinci/da8xx.h | 6 +-
arch/arm/mach-davinci/davinci.h | 10 +-
arch/arm/mach-davinci/dm355.c | 6 +-
arch/arm/mach-davinci/dm365.c | 10 +-
arch/arm/mach-davinci/dm644x.c | 765 -
arch/arm/mach-davinci/dm646x.c | 726 -
arch/arm/mach-davinci/hardware.h | 6 +-
arch/arm/mach-davinci/mux.c | 6 +-
arch/arm/mach-davinci/mux.h | 6 +-
arch/arm/mach-davinci/pm.h | 10 +-
arch/arm/mach-davinci/pm_domain.c | 5 +-
arch/arm/mach-davinci/serial.h | 6 +-
arch/arm/mach-dove/Kconfig | 2 +
arch/arm/mach-dove/bridge-regs.h | 9 +-
arch/arm/mach-dove/cm-a510.c | 5 +-
arch/arm/mach-dove/common.c | 5 +-
arch/arm/mach-dove/common.h | 5 +-
arch/arm/mach-dove/dove-db-setup.c | 5 +-
arch/arm/mach-dove/dove.h | 9 +-
arch/arm/mach-dove/irq.c | 5 +-
arch/arm/mach-dove/irqs.h | 9 +-
arch/arm/mach-dove/mpp.c | 5 +-
arch/arm/mach-dove/pcie.c | 16 +-
arch/arm/mach-dove/pm.h | 6 +-
arch/arm/mach-ep93xx/Kconfig | 9 +
arch/arm/mach-exynos/exynos.c | 1 +
arch/arm/mach-footbridge/Kconfig | 2 +
arch/arm/mach-footbridge/common.c | 19 +-
arch/arm/mach-footbridge/include/mach/dma-direct.h | 8 +
arch/arm/mach-footbridge/include/mach/memory.h | 4 -
arch/arm/mach-highbank/highbank.c | 2 +-
arch/arm/mach-hisi/Kconfig | 2 +-
arch/arm/mach-imx/Kconfig | 6 +-
arch/arm/mach-imx/cpu-imx25.c | 2 +
arch/arm/mach-imx/cpuidle-imx6q.c | 5 +-
arch/arm/mach-iop32x/Kconfig | 1 +
arch/arm/mach-lpc18xx/board-dt.c | 5 +-
arch/arm/mach-lpc32xx/pm.c | 6 +-
arch/arm/mach-lpc32xx/suspend.S | 6 +-
arch/arm/mach-meson/platsmp.c | 2 +
arch/arm/mach-mmp/Kconfig | 9 +
arch/arm/mach-mmp/mmp2.h | 2 +-
arch/arm/mach-mmp/pxa168.h | 2 +-
arch/arm/mach-mmp/pxa910.h | 2 +-
arch/arm/mach-mv78xx0/Kconfig | 1 +
arch/arm/mach-mv78xx0/bridge-regs.h | 6 +-
arch/arm/mach-mv78xx0/buffalo-wxl-setup.c | 5 +-
arch/arm/mach-mv78xx0/common.c | 5 +-
arch/arm/mach-mv78xx0/common.h | 5 +-
arch/arm/mach-mv78xx0/db78x00-bp-setup.c | 5 +-
arch/arm/mach-mv78xx0/irq.c | 5 +-
arch/arm/mach-mv78xx0/irqs.h | 9 +-
arch/arm/mach-mv78xx0/mpp.c | 5 +-
arch/arm/mach-mv78xx0/mpp.h | 6 +-
arch/arm/mach-mv78xx0/mv78xx0.h | 5 +-
arch/arm/mach-mv78xx0/pcie.c | 16 +-
arch/arm/mach-mv78xx0/rd78x00-masa-setup.c | 5 +-
arch/arm/mach-mvebu/armada-370-xp.h | 5 +-
arch/arm/mach-mvebu/board-v7.c | 5 +-
arch/arm/mach-mvebu/coherency.c | 7 +-
arch/arm/mach-mvebu/coherency.h | 6 +-
arch/arm/mach-mvebu/coherency_ll.S | 5 +-
arch/arm/mach-mvebu/common.h | 5 +-
arch/arm/mach-mvebu/cpu-reset.c | 5 +-
arch/arm/mach-mvebu/dove.c | 5 +-
arch/arm/mach-mvebu/headsmp-a9.S | 5 +-
arch/arm/mach-mvebu/headsmp.S | 5 +-
arch/arm/mach-mvebu/kirkwood.c | 5 +-
arch/arm/mach-mvebu/kirkwood.h | 5 +-
arch/arm/mach-mvebu/mvebu-soc-id.c | 5 +-
arch/arm/mach-mvebu/mvebu-soc-id.h | 5 +-
arch/arm/mach-mvebu/platsmp-a9.c | 5 +-
arch/arm/mach-mvebu/platsmp.c | 5 +-
arch/arm/mach-mvebu/pm-board.c | 5 +-
arch/arm/mach-mvebu/pm.c | 5 +-
arch/arm/mach-mvebu/pmsu.c | 5 +-
arch/arm/mach-mvebu/pmsu.h | 5 +-
arch/arm/mach-mvebu/pmsu_ll.S | 5 +-
arch/arm/mach-mvebu/system-controller.c | 5 +-
arch/arm/mach-omap1/Kconfig | 11 +
arch/arm/mach-omap1/board-sx1.h | 9 +-
arch/arm/mach-omap1/gpio15xx.c | 10 +-
arch/arm/mach-omap1/gpio16xx.c | 10 +-
arch/arm/mach-omap1/gpio7xx.c | 10 +-
arch/arm/mach-omap1/mtd-xip.h | 6 +-
arch/arm/mach-omap1/pm_bus.c | 6 +-
arch/arm/mach-omap1/timer.c | 10 +-
arch/arm/mach-omap2/Kconfig | 8 +-
arch/arm/mach-omap2/am33xx.h | 10 +-
arch/arm/mach-omap2/clockdomains33xx_data.c | 10 +-
arch/arm/mach-omap2/clockdomains81xx_data.c | 10 +-
arch/arm/mach-omap2/cm-regbits-33xx.h | 10 +-
arch/arm/mach-omap2/cm33xx.c | 10 +-
arch/arm/mach-omap2/cm33xx.h | 10 +-
arch/arm/mach-omap2/cm81xx.h | 10 +-
arch/arm/mach-omap2/display.c | 13 +-
arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 11 +-
arch/arm/mach-omap2/omap_opp_data.h | 10 +-
arch/arm/mach-omap2/opp3xxx_data.c | 10 +-
arch/arm/mach-omap2/opp4xxx_data.c | 10 +-
arch/arm/mach-omap2/pdata-quirks.c | 2 +
arch/arm/mach-omap2/powerdomains33xx_data.c | 10 +-
arch/arm/mach-omap2/prcm43xx.h | 5 +-
arch/arm/mach-omap2/prm-regbits-33xx.h | 10 +-
arch/arm/mach-omap2/prm33xx.c | 10 +-
arch/arm/mach-omap2/prm33xx.h | 10 +-
arch/arm/mach-omap2/prm3xxx.c | 1 +
arch/arm/mach-omap2/ti81xx.h | 10 +-
arch/arm/mach-omap2/vc.c | 6 +-
arch/arm/mach-orion5x/Kconfig | 18 +
arch/arm/mach-orion5x/board-d2net.c | 5 +-
arch/arm/mach-orion5x/board-dt.c | 5 +-
arch/arm/mach-orion5x/board-rd88f5182.c | 5 +-
arch/arm/mach-orion5x/bridge-regs.h | 9 +-
arch/arm/mach-orion5x/common.c | 5 +-
arch/arm/mach-orion5x/db88f5281-setup.c | 5 +-
arch/arm/mach-orion5x/irq.c | 5 +-
arch/arm/mach-orion5x/irqs.h | 5 +-
arch/arm/mach-orion5x/kurobox_pro-setup.c | 5 +-
arch/arm/mach-orion5x/ls_hgl-setup.c | 5 +-
arch/arm/mach-orion5x/mpp.c | 5 +-
arch/arm/mach-orion5x/net2big-setup.c | 6 +-
arch/arm/mach-orion5x/orion5x.h | 5 +-
arch/arm/mach-orion5x/pci.c | 17 +-
arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c | 5 +-
arch/arm/mach-orion5x/rd88f5181l-ge-setup.c | 5 +-
arch/arm/mach-orion5x/rd88f5182-setup.c | 5 +-
arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | 5 +-
arch/arm/mach-orion5x/ts78xx-setup.c | 5 +-
arch/arm/mach-orion5x/wnr854t-setup.c | 9 +-
arch/arm/mach-orion5x/wrt350n-v2-setup.c | 9 +-
arch/arm/mach-pxa/Kconfig | 53 +
arch/arm/mach-pxa/corgi.c | 2 +-
arch/arm/mach-pxa/eseries.c | 11 +-
arch/arm/mach-pxa/hx4700.c | 2 +-
arch/arm/mach-pxa/icontrol.c | 4 +-
arch/arm/mach-pxa/littleton.c | 2 +-
arch/arm/mach-pxa/magician.c | 2 +-
arch/arm/mach-pxa/spitz.c | 2 +-
arch/arm/mach-pxa/standby.S | 6 +-
arch/arm/mach-pxa/tosa.c | 4 +-
arch/arm/mach-pxa/z2.c | 4 +-
arch/arm/mach-qcom/Kconfig | 4 +
arch/arm/mach-qcom/platsmp.c | 1 +
arch/arm/mach-rockchip/pm.c | 7 +-
arch/arm/mach-s3c/Kconfig | 14 +-
arch/arm/mach-s3c/Kconfig.s3c24xx | 28 +-
arch/arm/mach-s3c/Kconfig.s3c64xx | 34 +-
arch/arm/mach-s3c/mach-mini2440.c | 2 +-
arch/arm/mach-sa1100/Kconfig | 11 +
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5 +-
arch/arm/mach-spear/generic.h | 5 +-
arch/arm/mach-spear/misc_regs.h | 5 +-
arch/arm/mach-spear/pl080.c | 5 +-
arch/arm/mach-spear/pl080.h | 5 +-
arch/arm/mach-spear/restart.c | 5 +-
arch/arm/mach-spear/spear.h | 5 +-
arch/arm/mach-spear/spear1310.c | 5 +-
arch/arm/mach-spear/spear1340.c | 5 +-
arch/arm/mach-spear/spear13xx.c | 5 +-
arch/arm/mach-spear/spear300.c | 5 +-
arch/arm/mach-spear/spear310.c | 5 +-
arch/arm/mach-spear/spear320.c | 5 +-
arch/arm/mach-spear/spear3xx.c | 5 +-
arch/arm/mach-spear/spear6xx.c | 5 +-
arch/arm/mach-spear/time.c | 13 +-
arch/arm/mach-sunplus/Kconfig | 27 +
arch/arm/mach-sunplus/Makefile | 8 +
arch/arm/mach-sunplus/sp7021.c | 16 +
arch/arm/mach-versatile/spc.c | 10 +-
arch/arm/mach-zynq/common.c | 1 +
arch/arm/mm/Kconfig | 6 +-
arch/arm/mm/alignment.c | 3 +
arch/arm/mm/cache-feroceon-l2.c | 5 +-
arch/arm/mm/cache-tauros2.c | 5 +-
arch/arm/mm/dma-mapping.c | 661 +-
arch/arm/mm/fault.c | 4 +
arch/arm/mm/ioremap.c | 9 +-
arch/arm/mm/kasan_init.c | 6 +-
arch/arm/mm/mmu.c | 35 +-
arch/arm/mm/nommu.c | 9 +-
arch/arm/mm/proc-v7-bugs.c | 9 +-
arch/arm/net/bpf_jit_32.c | 16 -
arch/arm/probes/decode.h | 26 +-
arch/arm/xen/enlighten.c | 4 +
arch/arm/xen/p2m.c | 6 +-
arch/arm64/Kconfig | 49 +-
arch/arm64/Kconfig.platforms | 26 +-
arch/arm64/boot/Makefile | 5 +-
arch/arm64/boot/dts/Makefile | 1 +
arch/arm64/boot/dts/allwinner/Makefile | 2 +
arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi | 6 +
.../dts/allwinner/sun50i-a64-amarula-relic.dts | 2 +-
.../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 4 +-
.../boot/dts/allwinner/sun50i-a64-nanopi-a64.dts | 2 +-
.../boot/dts/allwinner/sun50i-a64-orangepi-win.dts | 6 +-
.../boot/dts/allwinner/sun50i-a64-pinebook.dts | 4 +-
.../dts/allwinner/sun50i-a64-pinephone-1.0.dts | 4 +
.../dts/allwinner/sun50i-a64-pinephone-1.1.dts | 4 +
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 10 +-
.../boot/dts/allwinner/sun50i-h5-nanopi-r1s-h5.dts | 4 +-
.../boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts | 4 +-
.../dts/allwinner/sun50i-h5-orangepi-prime.dts | 4 +-
.../boot/dts/allwinner/sun50i-h6-orangepi-3.dts | 4 +-
.../dts/allwinner/sun50i-h6-orangepi-lite2.dts | 4 +-
arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi | 2 +-
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 12 +-
.../dts/allwinner/sun50i-h616-orangepi-zero2.dts | 213 +
.../boot/dts/allwinner/sun50i-h616-x96-mate.dts | 177 +
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 591 +
arch/arm64/boot/dts/altera/Makefile | 3 +-
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi | 58 +-
.../boot/dts/altera/socfpga_stratix10_socdk.dts | 10 +-
.../dts/altera/socfpga_stratix10_socdk_nand.dts | 10 +-
.../boot/dts/altera/socfpga_stratix10_swvp.dts | 117 +
arch/arm64/boot/dts/amd/amd-overdrive-rev-b0.dts | 4 +-
arch/arm64/boot/dts/amd/amd-overdrive-rev-b1.dts | 4 +-
arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 2 +-
.../arm64/boot/dts/amlogic/meson-g12b-gsking-x.dts | 27 +-
.../boot/dts/amlogic/meson-g12b-gtking-pro.dts | 2 -
arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 2 +-
arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts | 2 -
.../boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts | 4 +-
.../boot/dts/amlogic/meson-gxbb-wetek-play2.dts | 4 +-
.../dts/amlogic/meson-gxl-s905d-mecool-kii-pro.dts | 4 +-
.../boot/dts/amlogic/meson-gxl-s905d-p230.dts | 4 +-
.../dts/amlogic/meson-gxl-s905d-vero4k-plus.dts | 4 +-
.../amlogic/meson-gxl-s905w-jethome-jethub-j80.dts | 2 +-
.../boot/dts/amlogic/meson-gxm-mecool-kiii-pro.dts | 4 +-
.../boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts | 4 +-
arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts | 4 +-
.../boot/dts/amlogic/meson-gxm-wetek-core2.dts | 2 -
arch/arm64/boot/dts/amlogic/meson-s4.dtsi | 6 +
arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts | 10 +-
arch/arm64/boot/dts/apm/apm-merlin.dts | 2 +-
arch/arm64/boot/dts/apm/apm-mustang.dts | 2 +-
arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 6 +-
arch/arm64/boot/dts/apm/apm-storm.dtsi | 10 +-
arch/arm64/boot/dts/apple/t8103-pmgr.dtsi | 7 +-
arch/arm64/boot/dts/apple/t8103.dtsi | 34 +
arch/arm64/boot/dts/arm/fvp-base-revc.dts | 2 +-
arch/arm64/boot/dts/arm/juno-base.dtsi | 44 +-
arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi | 16 +-
arch/arm64/boot/dts/arm/juno-r1.dts | 2 +
arch/arm64/boot/dts/arm/juno-r2.dts | 2 +
arch/arm64/boot/dts/arm/juno-scmi.dtsi | 1 -
arch/arm64/boot/dts/arm/juno.dts | 2 +
arch/arm64/boot/dts/broadcom/Makefile | 1 +
.../bcm4908/bcm4906-tplink-archer-c2300-v1.dts | 8 +-
arch/arm64/boot/dts/broadcom/bcm4908/bcm4906.dtsi | 8 +
.../broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts | 8 +-
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi | 2 +
arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 9 +
.../dts/broadcom/bcmbca/bcm4912-asus-gt-ax6000.dts | 19 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi | 128 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi | 110 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi | 128 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi | 128 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi | 103 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi | 121 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts | 30 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm963146.dts | 30 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts | 30 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts | 30 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm96856.dts | 30 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts | 30 +
.../arm64/boot/dts/broadcom/stingray/stingray.dtsi | 2 +-
arch/arm64/boot/dts/exynos/exynos-pinctrl.h | 79 +
arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi | 2 +-
arch/arm64/boot/dts/exynos/exynos5433.dtsi | 6 +-
arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 6 +-
arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi | 72 +-
.../boot/dts/exynos/exynos7885-jackpotlte.dts | 20 +
arch/arm64/boot/dts/exynos/exynos7885-pinctrl.dtsi | 2 +-
arch/arm64/boot/dts/exynos/exynos7885.dtsi | 44 +-
arch/arm64/boot/dts/exynos/exynos850-pinctrl.dtsi | 2 +-
.../boot/dts/exynos/exynosautov9-pinctrl.dtsi | 8 +-
arch/arm64/boot/dts/exynos/exynosautov9-sadk.dts | 20 +
arch/arm64/boot/dts/exynos/exynosautov9.dtsi | 1170 +-
arch/arm64/boot/dts/freescale/Makefile | 4 +
arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts | 2 +-
arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi | 18 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 2 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 21 +-
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 20 +-
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 20 +-
.../arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts | 10 +-
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 16 +-
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 18 +-
.../dts/freescale/fsl-lx2160a-clearfog-itx.dtsi | 8 +-
arch/arm64/boot/dts/freescale/fsl-lx2160a-qds.dts | 4 +-
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 16 +-
arch/arm64/boot/dts/freescale/fsl-lx2162a-qds.dts | 4 +-
arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi | 10 +-
.../dts/freescale/imx8mm-beacon-baseboard.dtsi | 4 +-
arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi | 43 +
.../boot/dts/freescale/imx8mm-icore-mx8mm.dtsi | 12 +-
arch/arm64/boot/dts/freescale/imx8mm-mx8menlo.dts | 4 +-
.../dts/freescale/imx8mm-phyboard-polis-rdk.dts | 450 +
.../boot/dts/freescale/imx8mm-phycore-som.dtsi | 440 +
.../boot/dts/freescale/imx8mm-var-som-symphony.dts | 6 +-
.../boot/dts/freescale/imx8mm-venice-gw700x.dtsi | 24 +-
.../boot/dts/freescale/imx8mm-venice-gw7901.dts | 8 +-
.../boot/dts/freescale/imx8mm-venice-gw7902.dts | 10 +-
.../boot/dts/freescale/imx8mm-venice-gw7903.dts | 6 +-
arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 10 +-
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 16 +-
.../dts/freescale/imx8mn-beacon-baseboard.dtsi | 4 +-
arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi | 45 +-
.../boot/dts/freescale/imx8mn-var-som-symphony.dts | 6 +-
.../boot/dts/freescale/imx8mn-venice-gw7902.dts | 8 +-
arch/arm64/boot/dts/freescale/imx8mn.dtsi | 13 +-
.../arm64/boot/dts/freescale/imx8mp-dhcom-pdk2.dts | 163 +
.../arm64/boot/dts/freescale/imx8mp-dhcom-som.dtsi | 1030 +
arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 126 +-
.../dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts | 40 +-
.../dts/freescale/imx8mp-phyboard-pollux-rdk.dts | 48 +-
.../dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts | 702 +
.../arm64/boot/dts/freescale/imx8mp-tqma8mpql.dtsi | 284 +
.../boot/dts/freescale/imx8mp-venice-gw74xx.dts | 116 +-
arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 10 +-
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 33 +-
arch/arm64/boot/dts/freescale/imx8mq-evk.dts | 43 +
.../boot/dts/freescale/imx8mq-librem5-devkit.dts | 6 +-
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi | 4 +-
arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts | 6 +-
.../arm64/boot/dts/freescale/imx8mq-zii-ultra.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 15 +-
arch/arm64/boot/dts/freescale/imx8qm.dtsi | 4 +-
.../dts/freescale/imx8qxp-colibri-eval-v3.dtsi | 8 +-
arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 14 +-
arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 14 +-
arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts | 114 +
arch/arm64/boot/dts/freescale/imx93-pinfunc.h | 623 +
arch/arm64/boot/dts/freescale/imx93.dtsi | 334 +
arch/arm64/boot/dts/freescale/mba8mx.dtsi | 8 +-
arch/arm64/boot/dts/freescale/s32g2.dtsi | 2 +-
arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts | 14 +-
arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 8 +-
arch/arm64/boot/dts/hisilicon/hi3670.dtsi | 2 +-
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 12 +-
arch/arm64/boot/dts/hisilicon/hip05-d02.dts | 6 +-
arch/arm64/boot/dts/hisilicon/hip06.dtsi | 6 +-
arch/arm64/boot/dts/hisilicon/hip07.dtsi | 6 +-
arch/arm64/boot/dts/intel/socfpga_agilex.dtsi | 14 +-
arch/arm64/boot/dts/lg/lg1312.dtsi | 38 +-
arch/arm64/boot/dts/lg/lg1313.dtsi | 38 +-
arch/arm64/boot/dts/marvell/Makefile | 1 +
arch/arm64/boot/dts/marvell/ac5-98dx25xx.dtsi | 291 +
arch/arm64/boot/dts/marvell/ac5-98dx35xx-rd.dts | 101 +
arch/arm64/boot/dts/marvell/ac5-98dx35xx.dtsi | 17 +
.../boot/dts/marvell/armada-3720-turris-mox.dts | 14 +-
arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts | 16 +-
.../boot/dts/marvell/armada-7040-mochabin.dts | 16 +-
.../dts/marvell/armada-8040-clearfog-gt-8k.dts | 8 +-
arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi | 24 +-
.../boot/dts/marvell/armada-8040-puzzle-m801.dts | 16 +-
arch/arm64/boot/dts/marvell/cn9130-crb.dtsi | 6 +-
arch/arm64/boot/dts/marvell/cn9130-db.dtsi | 10 +-
arch/arm64/boot/dts/marvell/cn9131-db.dtsi | 8 +-
arch/arm64/boot/dts/marvell/cn9132-db.dtsi | 8 +-
arch/arm64/boot/dts/mediatek/Makefile | 5 +
arch/arm64/boot/dts/mediatek/mt2712-evb.dts | 2 +-
arch/arm64/boot/dts/mediatek/mt2712e.dtsi | 2 +
arch/arm64/boot/dts/mediatek/mt6755.dtsi | 9 +-
arch/arm64/boot/dts/mediatek/mt6795.dtsi | 269 +-
.../boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 21 +-
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 13 +-
arch/arm64/boot/dts/mediatek/mt7622.dtsi | 10 +-
arch/arm64/boot/dts/mediatek/mt7986a.dtsi | 4 +-
.../boot/dts/mediatek/mt8173-elm-hana-rev7.dts | 6 +-
arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi | 24 +-
arch/arm64/boot/dts/mediatek/mt8173-evb.dts | 12 +-
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 25 +-
arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 38 +-
.../boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi | 4 +-
.../boot/dts/mediatek/mt8183-kukui-kakadu.dtsi | 2 +-
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 13 +-
arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts | 2 +-
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 315 +-
.../boot/dts/mediatek/mt8192-asurada-hayato-r1.dts | 47 +
.../dts/mediatek/mt8192-asurada-spherion-r0.dts | 62 +
arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi | 959 +
arch/arm64/boot/dts/mediatek/mt8192.dtsi | 29 +-
.../boot/dts/mediatek/mt8195-cherry-tomato-r1.dts | 15 +
.../boot/dts/mediatek/mt8195-cherry-tomato-r2.dts | 35 +
.../boot/dts/mediatek/mt8195-cherry-tomato-r3.dts | 36 +
arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi | 702 +
arch/arm64/boot/dts/mediatek/mt8195-evb.dts | 8 +-
arch/arm64/boot/dts/mediatek/mt8195.dtsi | 76 +-
arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi | 4 +-
.../boot/dts/microchip/sparx5_pcb134_board.dtsi | 200 +-
.../boot/dts/microchip/sparx5_pcb135_board.dtsi | 48 +-
arch/arm64/boot/dts/nuvoton/Makefile | 2 +
.../boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi | 170 +
.../arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts | 30 +
arch/arm64/boot/dts/nuvoton/nuvoton-npcm845.dtsi | 76 +
arch/arm64/boot/dts/nvidia/tegra132-norrin.dts | 4 +-
arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | 49 +-
.../dts/nvidia/tegra186-p3509-0000+p3636-0001.dts | 6 +-
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 37 +-
arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi | 2 +-
arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts | 47 +-
.../arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi | 47 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 113 +-
arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts | 84 +
arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi | 6 +-
arch/arm64/boot/dts/nvidia/tegra210-p2894.dtsi | 2 +-
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 88 +-
arch/arm64/boot/dts/nvidia/tegra210-smaug.dts | 10 +-
arch/arm64/boot/dts/nvidia/tegra210.dtsi | 42 +-
.../dts/nvidia/tegra234-p3737-0000+p3701-0000.dts | 49 +-
arch/arm64/boot/dts/nvidia/tegra234.dtsi | 177 +
arch/arm64/boot/dts/qcom/Makefile | 29 +-
arch/arm64/boot/dts/qcom/apq8016-sbc.dts | 36 +-
arch/arm64/boot/dts/qcom/apq8096-db820c.dts | 91 +-
arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts | 6 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 41 +-
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 3 -
arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi | 5 -
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 54 +-
.../boot/dts/qcom/msm8916-alcatel-idol347.dts | 2 +-
arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dts | 4 +-
arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts | 2 +-
.../boot/dts/qcom/msm8916-longcheer-l8150.dts | 2 +-
.../boot/dts/qcom/msm8916-longcheer-l8910.dts | 2 +-
.../dts/qcom/msm8916-samsung-a2015-common.dtsi | 16 +-
.../boot/dts/qcom/msm8916-samsung-a3u-eur.dts | 8 -
.../boot/dts/qcom/msm8916-samsung-a5u-eur.dts | 8 -
arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts | 4 +-
.../boot/dts/qcom/msm8916-samsung-serranove.dts | 6 +-
.../boot/dts/qcom/msm8916-wingtech-wt88047.dts | 2 +-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 28 +-
arch/arm64/boot/dts/qcom/msm8953.dtsi | 6 +-
arch/arm64/boot/dts/qcom/msm8992-lg-bullhead.dtsi | 2 +-
arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts | 8 +-
.../boot/dts/qcom/msm8994-msft-lumia-octagon.dtsi | 29 +-
.../dts/qcom/msm8994-sony-xperia-kitakami.dtsi | 12 +-
arch/arm64/boot/dts/qcom/msm8994.dtsi | 25 +-
.../qcom/msm8996-pmi8996-sony-xperia-tone-dora.dts | 11 -
.../msm8996-pmi8996-sony-xperia-tone-kagura.dts | 11 -
.../msm8996-pmi8996-sony-xperia-tone-keyaki.dts | 11 -
.../boot/dts/qcom/msm8996-sony-xperia-tone.dtsi | 77 +-
.../arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi | 14 +-
arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts | 4 +-
.../arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts | 414 +
.../arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts | 2 +-
arch/arm64/boot/dts/qcom/msm8996.dtsi | 297 +-
.../boot/dts/qcom/msm8998-asus-novago-tp370ql.dts | 23 +-
arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi | 138 +-
arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dts | 460 +-
arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dts | 9 +-
.../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 9 +-
arch/arm64/boot/dts/qcom/msm8998-mtp.dts | 443 +-
arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi | 421 -
.../boot/dts/qcom/msm8998-oneplus-cheeseburger.dts | 2 +-
.../boot/dts/qcom/msm8998-oneplus-common.dtsi | 88 +-
.../dts/qcom/msm8998-sony-xperia-yoshino-lilac.dts | 4 +
.../dts/qcom/msm8998-sony-xperia-yoshino-maple.dts | 2 +-
.../qcom/msm8998-sony-xperia-yoshino-poplar.dts | 10 +-
.../boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi | 120 +-
arch/arm64/boot/dts/qcom/msm8998.dtsi | 87 +-
arch/arm64/boot/dts/qcom/pm6350.dtsi | 3 +-
arch/arm64/boot/dts/qcom/pm660.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pm660l.dtsi | 8 +-
arch/arm64/boot/dts/qcom/pm8005.dtsi | 4 +
arch/arm64/boot/dts/qcom/pm8009.dtsi | 3 +-
arch/arm64/boot/dts/qcom/pm8150.dtsi | 3 +-
arch/arm64/boot/dts/qcom/pm8150b.dtsi | 13 +-
arch/arm64/boot/dts/qcom/pm8150l.dtsi | 14 +-
arch/arm64/boot/dts/qcom/pm8350.dtsi | 3 +-
arch/arm64/boot/dts/qcom/pm8350b.dtsi | 3 +-
arch/arm64/boot/dts/qcom/pm8916.dtsi | 17 +-
arch/arm64/boot/dts/qcom/pm8994.dtsi | 10 +
arch/arm64/boot/dts/qcom/pmi8994.dtsi | 22 +-
arch/arm64/boot/dts/qcom/pmi8998.dtsi | 13 +-
arch/arm64/boot/dts/qcom/pmm8155au_1.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pmm8155au_2.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pmr735b.dtsi | 3 +-
arch/arm64/boot/dts/qcom/pms405.dtsi | 17 +-
arch/arm64/boot/dts/qcom/qcs404-evb.dtsi | 4 +-
arch/arm64/boot/dts/qcom/qcs404.dtsi | 39 +-
arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 54 +-
arch/arm64/boot/dts/qcom/sa8295p-adp.dts | 389 +
arch/arm64/boot/dts/qcom/sa8540p.dtsi | 133 +
arch/arm64/boot/dts/qcom/sc7180-idp.dts | 5 +-
.../arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi | 4 +
.../boot/dts/qcom/sc7180-trogdor-homestar.dtsi | 8 +-
.../boot/dts/qcom/sc7180-trogdor-kingoftown-r0.dts | 44 +
.../boot/dts/qcom/sc7180-trogdor-kingoftown-r1.dts | 17 +
.../boot/dts/qcom/sc7180-trogdor-kingoftown.dtsi | 225 +
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor.dtsi | 3 +-
.../dts/qcom/sc7180-trogdor-mrbland-rev0-auo.dts | 22 +
.../dts/qcom/sc7180-trogdor-mrbland-rev0-boe.dts | 22 +
.../boot/dts/qcom/sc7180-trogdor-mrbland-rev0.dtsi | 53 +
.../dts/qcom/sc7180-trogdor-mrbland-rev1-auo.dts | 22 +
.../dts/qcom/sc7180-trogdor-mrbland-rev1-boe.dts | 24 +
.../boot/dts/qcom/sc7180-trogdor-mrbland.dtsi | 350 +
.../dts/qcom/sc7180-trogdor-pazquel-lte-parade.dts | 22 +
.../dts/qcom/sc7180-trogdor-pazquel-lte-ti.dts | 22 +
.../dts/qcom/sc7180-trogdor-pazquel-parade.dts | 17 +
.../boot/dts/qcom/sc7180-trogdor-pazquel-ti.dts | 17 +
.../boot/dts/qcom/sc7180-trogdor-pazquel.dtsi | 222 +
.../arm64/boot/dts/qcom/sc7180-trogdor-pompom.dtsi | 2 +
.../qcom/sc7180-trogdor-quackingstick-r0-lte.dts | 38 +
.../dts/qcom/sc7180-trogdor-quackingstick-r0.dts | 26 +
.../dts/qcom/sc7180-trogdor-quackingstick.dtsi | 324 +
arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts | 2 +
.../qcom/sc7180-trogdor-wormdingler-rev0-boe.dts | 22 +
.../qcom/sc7180-trogdor-wormdingler-rev0-inx.dts | 22 +
.../dts/qcom/sc7180-trogdor-wormdingler-rev0.dtsi | 53 +
...sc7180-trogdor-wormdingler-rev1-boe-rt5682s.dts | 29 +
.../qcom/sc7180-trogdor-wormdingler-rev1-boe.dts | 28 +
...sc7180-trogdor-wormdingler-rev1-inx-rt5682s.dts | 29 +
.../qcom/sc7180-trogdor-wormdingler-rev1-inx.dts | 22 +
.../boot/dts/qcom/sc7180-trogdor-wormdingler.dtsi | 412 +
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 8 +-
arch/arm64/boot/dts/qcom/sc7180.dtsi | 84 +-
arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi | 16 +
.../dts/qcom/sc7280-herobrine-audio-wcd9385.dtsi | 84 +
arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts | 12 +
.../dts/qcom/sc7280-herobrine-herobrine-r1.dts | 11 +
.../boot/dts/qcom/sc7280-herobrine-villager-r0.dts | 29 +
arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 20 +-
arch/arm64/boot/dts/qcom/sc7280-idp.dtsi | 91 +-
arch/arm64/boot/dts/qcom/sc7280-qcard.dtsi | 14 +-
arch/arm64/boot/dts/qcom/sc7280.dtsi | 275 +-
arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 427 +
.../dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 386 +
arch/arm64/boot/dts/qcom/sc8280xp-pmics.dtsi | 109 +
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 2147 +
.../arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts | 461 +
.../boot/dts/qcom/sdm630-sony-xperia-nile.dtsi | 61 +-
arch/arm64/boot/dts/qcom/sdm630.dtsi | 332 +-
arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts | 2 +-
.../dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts | 2 +-
.../arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts | 28 +-
arch/arm64/boot/dts/qcom/sdm660.dtsi | 5 +-
arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 136 +-
arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 68 +-
arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi | 614 +
arch/arm64/boot/dts/qcom/sdm845-lg-judyln.dts | 68 +
arch/arm64/boot/dts/qcom/sdm845-lg-judyp.dts | 44 +
.../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 8 +-
arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts | 35 +-
.../dts/qcom/sdm845-sony-xperia-tama-akatsuki.dts | 5 +-
.../boot/dts/qcom/sdm845-sony-xperia-tama.dtsi | 2 +-
.../boot/dts/qcom/sdm845-xiaomi-beryllium.dts | 8 +-
arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dts | 762 +
arch/arm64/boot/dts/qcom/sdm845.dtsi | 335 +-
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 10 +-
arch/arm64/boot/dts/qcom/sdm850-samsung-w737.dts | 4 +-
arch/arm64/boot/dts/qcom/sdm850.dtsi | 1 -
.../dts/qcom/sm6125-sony-xperia-seine-pdx201.dts | 40 +-
arch/arm64/boot/dts/qcom/sm6125.dtsi | 40 +-
arch/arm64/boot/dts/qcom/sm6350.dtsi | 34 +-
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 4 +-
arch/arm64/boot/dts/qcom/sm8150-hdk.dts | 4 +-
.../boot/dts/qcom/sm8150-microsoft-surface-duo.dts | 4 +-
arch/arm64/boot/dts/qcom/sm8150.dtsi | 36 +-
arch/arm64/boot/dts/qcom/sm8250-hdk.dts | 4 +-
.../boot/dts/qcom/sm8250-sony-xperia-edo.dtsi | 2 +-
arch/arm64/boot/dts/qcom/sm8250.dtsi | 132 +-
.../dts/qcom/sm8350-microsoft-surface-duo2.dts | 2 -
.../boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi | 2 +-
arch/arm64/boot/dts/qcom/sm8350.dtsi | 168 +-
arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 2 -
arch/arm64/boot/dts/qcom/sm8450-qrd.dts | 2 -
arch/arm64/boot/dts/qcom/sm8450.dtsi | 90 +-
arch/arm64/boot/dts/renesas/Makefile | 3 +
.../boot/dts/renesas/beacon-renesom-baseboard.dtsi | 6 +-
.../arm64/boot/dts/renesas/beacon-renesom-som.dtsi | 4 +-
.../dts/renesas/draak-ebisu-panel-aa104xd12.dts | 36 +
arch/arm64/boot/dts/renesas/draak.dtsi | 2 +-
arch/arm64/boot/dts/renesas/ebisu.dtsi | 8 +-
arch/arm64/boot/dts/renesas/hihope-common.dtsi | 4 +-
arch/arm64/boot/dts/renesas/panel-aa104xd12.dtsi | 30 +
arch/arm64/boot/dts/renesas/r8a774c0.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77990.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 31 +-
.../boot/dts/renesas/r8a779f0-spider-cpu.dtsi | 13 +
arch/arm64/boot/dts/renesas/r8a779f0-spider.dts | 1 +
arch/arm64/boot/dts/renesas/r8a779f0.dtsi | 434 +-
arch/arm64/boot/dts/renesas/r8a779m8.dtsi | 5 +
arch/arm64/boot/dts/renesas/r9a07g043.dtsi | 21 +-
arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts | 6 -
arch/arm64/boot/dts/renesas/r9a07g054l2-smarc.dts | 2 +-
arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dts | 14 +
arch/arm64/boot/dts/renesas/r9a09g011.dtsi | 51 +
arch/arm64/boot/dts/renesas/rzg2l-smarc-som.dtsi | 4 +-
arch/arm64/boot/dts/renesas/rzg2lc-smarc-som.dtsi | 4 +-
arch/arm64/boot/dts/renesas/rzg2lc-smarc.dtsi | 2 +-
arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi | 23 +-
arch/arm64/boot/dts/renesas/rzg2ul-smarc.dtsi | 6 +
arch/arm64/boot/dts/renesas/salvator-common.dtsi | 8 +-
.../boot/dts/renesas/salvator-panel-aa104xd12.dts | 36 +
arch/arm64/boot/dts/renesas/ulcb-kf.dtsi | 14 +-
arch/arm64/boot/dts/renesas/ulcb.dtsi | 6 +-
arch/arm64/boot/dts/rockchip/Makefile | 1 +
arch/arm64/boot/dts/rockchip/px30.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3308-evb.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts | 253 +
arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts | 32 +-
arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts | 2 +-
.../boot/dts/rockchip/rk3368-orion-r68-meta.dts | 4 +-
arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3368-r88.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3368.dtsi | 6 +-
arch/arm64/boot/dts/rockchip/rk3399-evb.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 2 +-
.../boot/dts/rockchip/rk3399-gru-chromebook.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts | 2 +-
.../boot/dts/rockchip/rk3399-gru-scarlet.dtsi | 6 +-
.../boot/dts/rockchip/rk3399-khadas-edge.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts | 4 +-
arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts | 2 +-
.../boot/dts/rockchip/rk3399-pinebook-pro.dts | 4 +-
.../arm64/boot/dts/rockchip/rk3399-puma-haikou.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi | 72 +-
.../dts/rockchip/rk3399-sapphire-excavator.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399.dtsi | 6 +-
.../boot/dts/rockchip/rk3399pro-vmarc-som.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3566-pinenote.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts | 115 +
arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3566.dtsi | 4 +
arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 137 +
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 55 +
arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts | 55 +
arch/arm64/boot/dts/rockchip/rk3568.dtsi | 4 +
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 166 +
arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi | 8 +-
arch/arm64/boot/dts/sprd/sc9836.dtsi | 10 +-
arch/arm64/boot/dts/sprd/sc9863a.dtsi | 4 +-
arch/arm64/boot/dts/sprd/whale2.dtsi | 2 +-
arch/arm64/boot/dts/tesla/fsd-evb.dts | 4 +
arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi | 106 +-
arch/arm64/boot/dts/tesla/fsd-pinctrl.h | 33 +
arch/arm64/boot/dts/tesla/fsd.dtsi | 120 +
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 17 +-
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 11 +-
arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 6 +-
arch/arm64/boot/dts/ti/k3-am642-evm.dts | 2 +-
arch/arm64/boot/dts/ti/k3-am642-sk.dts | 16 +-
arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi | 4 +-
arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 14 +-
arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi | 4 +-
arch/arm64/boot/dts/ti/k3-am654-base-board.dts | 8 +-
arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi | 4 +-
.../boot/dts/ti/k3-j721e-common-proc-board.dts | 4 +-
arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi | 4 +-
arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi | 6 +-
arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi | 4 +-
arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 4 +
arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 4 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts | 2 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts | 2 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts | 2 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dts | 2 +-
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 26 +
arch/arm64/configs/defconfig | 85 +-
arch/arm64/crypto/Kconfig | 10 +-
arch/arm64/crypto/Makefile | 3 +
arch/arm64/crypto/aes-glue.c | 80 +-
arch/arm64/crypto/aes-modes.S | 349 +-
arch/arm64/crypto/aes-neon.S | 2 +-
arch/arm64/crypto/poly1305-glue.c | 2 +-
arch/arm64/crypto/polyval-ce-core.S | 361 +
arch/arm64/crypto/polyval-ce-glue.c | 191 +
arch/arm64/include/asm/archrandom.h | 112 +-
arch/arm64/include/asm/asm-extable.h | 79 +-
arch/arm64/include/asm/asm-uaccess.h | 12 +-
arch/arm64/include/asm/asm_pointer_auth.h | 4 +-
arch/arm64/include/asm/assembler.h | 35 +-
arch/arm64/include/asm/barrier.h | 12 +-
arch/arm64/include/asm/cache.h | 41 +-
arch/arm64/include/asm/cacheflush.h | 7 -
arch/arm64/include/asm/cpu.h | 1 +
arch/arm64/include/asm/cpu_ops.h | 9 -
arch/arm64/include/asm/cpufeature.h | 7 +-
arch/arm64/include/asm/cpuidle.h | 15 -
arch/arm64/include/asm/efi.h | 7 +-
arch/arm64/include/asm/el2_setup.h | 60 -
arch/arm64/include/asm/fixmap.h | 4 +-
arch/arm64/include/asm/hugetlb.h | 3 -
arch/arm64/include/asm/hwcap.h | 3 +-
arch/arm64/include/asm/insn.h | 3 +
arch/arm64/include/asm/io.h | 65 +-
arch/arm64/include/asm/kernel-pgtable.h | 18 +-
arch/arm64/include/asm/kexec.h | 18 +-
arch/arm64/include/asm/kvm_asm.h | 16 +
arch/arm64/include/asm/kvm_emulate.h | 11 +-
arch/arm64/include/asm/kvm_host.h | 210 +-
arch/arm64/include/asm/memory.h | 26 +
arch/arm64/include/asm/mmu_context.h | 16 +-
arch/arm64/include/asm/pci.h | 18 +-
arch/arm64/include/asm/pgtable-hwdef.h | 3 +-
arch/arm64/include/asm/pgtable-prot.h | 18 -
arch/arm64/include/asm/pgtable.h | 16 +
arch/arm64/include/asm/processor.h | 3 +-
arch/arm64/include/asm/stacktrace.h | 62 +-
arch/arm64/include/asm/stacktrace/common.h | 199 +
arch/arm64/include/asm/stacktrace/nvhe.h | 55 +
arch/arm64/include/asm/sysreg.h | 128 +-
arch/arm64/include/asm/uaccess.h | 94 +-
arch/arm64/include/asm/virt.h | 14 +-
arch/arm64/include/asm/xen/xen-ops.h | 2 +
arch/arm64/include/uapi/asm/hwcap.h | 4 +
arch/arm64/kernel/Makefile | 7 +-
arch/arm64/kernel/acpi.c | 2 +-
arch/arm64/kernel/acpi_numa.c | 2 +-
arch/arm64/kernel/alternative.c | 2 +-
arch/arm64/kernel/armv8_deprecated.c | 9 +-
arch/arm64/kernel/cpu_errata.c | 26 +-
arch/arm64/kernel/cpufeature.c | 389 +-
arch/arm64/kernel/cpuidle.c | 29 -
arch/arm64/kernel/cpuinfo.c | 51 +-
arch/arm64/kernel/entry-common.c | 14 +-
arch/arm64/kernel/entry-ftrace.S | 1 -
arch/arm64/kernel/entry.S | 53 +-
arch/arm64/kernel/fpsimd.c | 21 +-
arch/arm64/kernel/ftrace.c | 137 +-
arch/arm64/kernel/head.S | 525 +-
arch/arm64/kernel/hibernate.c | 5 -
arch/arm64/kernel/hyp-stub.S | 117 +-
arch/arm64/kernel/idreg-override.c | 93 +-
arch/arm64/kernel/image-vars.h | 59 +-
arch/arm64/kernel/jump_label.c | 11 -
arch/arm64/kernel/kaslr.c | 149 +-
arch/arm64/kernel/kexec_image.c | 11 +-
arch/arm64/kernel/kuser32.S | 1 +
arch/arm64/kernel/mte.c | 15 +-
arch/arm64/kernel/pi/Makefile | 33 +
arch/arm64/kernel/pi/kaslr_early.c | 112 +
arch/arm64/kernel/setup.c | 7 +-
arch/arm64/kernel/signal.c | 20 +-
arch/arm64/kernel/sigreturn32.S | 1 +
arch/arm64/kernel/sleep.S | 3 +-
arch/arm64/kernel/smp.c | 8 -
arch/arm64/kernel/stacktrace.c | 184 +-
arch/arm64/kernel/suspend.c | 2 +-
arch/arm64/kernel/topology.c | 14 -
arch/arm64/kernel/traps.c | 6 +-
arch/arm64/kernel/vdso/Makefile | 8 +-
arch/arm64/kernel/vdso/vdso.lds.S | 16 +-
arch/arm64/kernel/vdso32/Makefile | 1 +
arch/arm64/kernel/vdso32/vdso.lds.S | 27 +-
arch/arm64/kernel/vmlinux.lds.S | 22 +-
arch/arm64/kvm/Kconfig | 13 +
arch/arm64/kvm/Makefile | 2 +-
arch/arm64/kvm/arch_timer.c | 5 +-
arch/arm64/kvm/arm.c | 41 +-
arch/arm64/kvm/debug.c | 25 +-
arch/arm64/kvm/fpsimd.c | 37 +-
arch/arm64/kvm/handle_exit.c | 10 +-
arch/arm64/kvm/hyp/exception.c | 23 +-
arch/arm64/kvm/hyp/include/hyp/debug-sr.h | 6 +-
arch/arm64/kvm/hyp/include/hyp/switch.h | 24 +-
arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 4 +-
arch/arm64/kvm/hyp/include/nvhe/fixed_config.h | 32 +-
arch/arm64/kvm/hyp/nvhe/Makefile | 21 +-
arch/arm64/kvm/hyp/nvhe/debug-sr.c | 8 +-
arch/arm64/kvm/hyp/nvhe/host.S | 9 +-
arch/arm64/kvm/hyp/nvhe/mem_protect.c | 4 -
arch/arm64/kvm/hyp/nvhe/stacktrace.c | 160 +
arch/arm64/kvm/hyp/nvhe/switch.c | 14 +-
arch/arm64/kvm/hyp/nvhe/sys_regs.c | 58 +-
arch/arm64/kvm/hyp/vhe/switch.c | 6 +-
arch/arm64/kvm/hyp/vhe/sysreg-sr.c | 4 +-
arch/arm64/kvm/inject_fault.c | 17 +-
arch/arm64/kvm/mmu.c | 2 +-
arch/arm64/kvm/reset.c | 6 +-
arch/arm64/kvm/stacktrace.c | 218 +
arch/arm64/kvm/sys_regs.c | 308 +-
arch/arm64/kvm/sys_regs.h | 18 +-
arch/arm64/kvm/vgic-sys-reg-v3.c | 462 +-
arch/arm64/kvm/vgic/vgic-kvm-device.c | 342 +-
arch/arm64/kvm/vgic/vgic-mmio-v2.c | 4 +-
arch/arm64/kvm/vgic/vgic-mmio-v3.c | 50 +-
arch/arm64/kvm/vgic/vgic-mmio.c | 46 +-
arch/arm64/kvm/vgic/vgic-mmio.h | 7 +-
arch/arm64/kvm/vgic/vgic.h | 9 +-
arch/arm64/kvm/vmid.c | 2 +-
arch/arm64/lib/insn.c | 30 +-
arch/arm64/lib/mte.S | 2 +-
arch/arm64/mm/cache.S | 43 -
arch/arm64/mm/copypage.c | 9 -
arch/arm64/mm/dma-mapping.c | 26 +-
arch/arm64/mm/extable.c | 10 +-
arch/arm64/mm/fault.c | 5 +-
arch/arm64/mm/flush.c | 13 +-
arch/arm64/mm/hugetlbpage.c | 96 +-
arch/arm64/mm/init.c | 6 +-
arch/arm64/mm/ioremap.c | 90 +-
arch/arm64/mm/kasan_init.c | 4 +-
arch/arm64/mm/mmap.c | 21 +
arch/arm64/mm/mmu.c | 78 +-
arch/arm64/mm/mteswap.c | 9 -
arch/arm64/mm/proc.S | 188 +-
arch/arm64/net/bpf_jit.h | 7 +
arch/arm64/net/bpf_jit_comp.c | 729 +-
arch/arm64/tools/cpucaps | 2 +
arch/arm64/tools/gen-sysreg.awk | 4 +-
arch/arm64/tools/sysreg | 264 +
arch/csky/Kconfig | 31 +-
arch/csky/abiv1/inc/abi/string.h | 6 +
arch/csky/include/asm/Kbuild | 4 +-
arch/csky/include/asm/cmpxchg.h | 31 +-
arch/csky/include/asm/jump_label.h | 47 +
arch/csky/include/asm/pci.h | 23 +-
arch/csky/include/asm/pgalloc.h | 2 +-
arch/csky/include/asm/pgtable.h | 24 +-
arch/csky/include/asm/sections.h | 10 +
arch/csky/include/asm/spinlock.h | 12 +
arch/csky/include/asm/spinlock_types.h | 9 +
arch/csky/include/asm/tlb.h | 15 -
arch/csky/kernel/Makefile | 1 +
arch/csky/kernel/entry.S | 8 +-
arch/csky/kernel/jump_label.c | 54 +
arch/csky/kernel/probes/kprobes.c | 4 +
arch/csky/kernel/setup.c | 4 +-
arch/csky/kernel/smp.c | 5 -
arch/csky/kernel/vmlinux.lds.S | 15 +-
arch/csky/mm/asid.c | 5 +-
arch/csky/mm/fault.c | 4 +
arch/csky/mm/init.c | 20 +
arch/hexagon/include/asm/bitops.h | 24 +-
arch/hexagon/include/asm/pgtable.h | 27 -
arch/hexagon/kernel/smp.c | 5 -
arch/hexagon/mm/init.c | 42 +
arch/hexagon/mm/vm_fault.c | 4 +
arch/ia64/Kconfig | 1 -
arch/ia64/configs/bigsur_defconfig | 1 -
arch/ia64/configs/generic_defconfig | 1 -
arch/ia64/configs/gensparse_defconfig | 1 -
arch/ia64/configs/tiger_defconfig | 1 -
arch/ia64/configs/zx1_defconfig | 1 -
arch/ia64/include/asm/bitops.h | 42 +-
arch/ia64/include/asm/dma.h | 2 -
arch/ia64/include/asm/io.h | 8 -
arch/ia64/include/asm/mmu_context.h | 5 +-
arch/ia64/include/asm/pci.h | 6 -
arch/ia64/include/asm/pgtable.h | 18 -
arch/ia64/include/asm/processor.h | 2 +-
arch/ia64/include/uapi/asm/cmpxchg.h | 28 +-
arch/ia64/kernel/iosapic.c | 2 +-
arch/ia64/kernel/irq.c | 4 +-
arch/ia64/kernel/msi_ia64.c | 4 +-
arch/ia64/kernel/smp.c | 6 -
arch/ia64/mm/fault.c | 4 +
arch/ia64/mm/init.c | 28 +-
arch/loongarch/Kconfig | 28 +-
arch/loongarch/Kconfig.debug | 29 +
arch/loongarch/Makefile | 2 +
arch/loongarch/configs/loongson3_defconfig | 34 +-
arch/loongarch/include/asm/acpi.h | 142 +
arch/loongarch/include/asm/asmmacro.h | 12 -
arch/loongarch/include/asm/atomic.h | 37 +-
arch/loongarch/include/asm/barrier.h | 4 +-
arch/loongarch/include/asm/bootinfo.h | 2 +-
arch/loongarch/include/asm/branch.h | 3 +-
arch/loongarch/include/asm/cmpxchg.h | 4 +-
arch/loongarch/include/asm/compiler.h | 15 -
arch/loongarch/include/asm/dma.h | 11 +
arch/loongarch/include/asm/efi.h | 16 +-
arch/loongarch/include/asm/elf.h | 2 -
arch/loongarch/include/asm/fpregdef.h | 1 -
arch/loongarch/include/asm/futex.h | 11 +-
arch/loongarch/include/asm/hardirq.h | 2 +-
arch/loongarch/include/asm/inst.h | 52 +
arch/loongarch/include/asm/irq.h | 45 +-
arch/loongarch/include/asm/irqflags.h | 1 -
arch/loongarch/include/asm/local.h | 1 -
arch/loongarch/include/asm/loongson.h | 16 +-
arch/loongarch/include/asm/page.h | 3 +-
arch/loongarch/include/asm/pci.h | 25 +
arch/loongarch/include/asm/percpu.h | 1 +
arch/loongarch/include/asm/pgalloc.h | 6 +-
arch/loongarch/include/asm/pgtable-bits.h | 19 -
arch/loongarch/include/asm/pgtable.h | 37 +-
arch/loongarch/include/asm/processor.h | 11 +-
arch/loongarch/include/asm/smp.h | 23 +-
arch/loongarch/include/asm/stacktrace.h | 32 +-
arch/loongarch/include/asm/switch_to.h | 14 +-
arch/loongarch/include/asm/thread_info.h | 4 +-
arch/loongarch/include/asm/timex.h | 7 -
arch/loongarch/include/asm/tlb.h | 10 -
arch/loongarch/include/asm/uaccess.h | 6 +-
arch/loongarch/include/asm/unwind.h | 42 +
arch/loongarch/include/asm/vdso.h | 1 +
arch/loongarch/include/asm/vdso/vdso.h | 15 +-
arch/loongarch/kernel/Makefile | 4 +
arch/loongarch/kernel/acpi.c | 107 +-
arch/loongarch/kernel/asm-offsets.c | 9 +-
arch/loongarch/kernel/cacheinfo.c | 10 +-
arch/loongarch/kernel/cpu-probe.c | 2 +-
arch/loongarch/kernel/entry.S | 4 +-
arch/loongarch/kernel/env.c | 20 -
arch/loongarch/kernel/fpu.S | 184 +-
arch/loongarch/kernel/genex.S | 12 +-
arch/loongarch/kernel/head.S | 23 +-
arch/loongarch/kernel/irq.c | 65 +-
arch/loongarch/kernel/numa.c | 1 -
arch/loongarch/kernel/proc.c | 2 +-
arch/loongarch/kernel/process.c | 104 +-
arch/loongarch/kernel/ptrace.c | 12 +-
arch/loongarch/kernel/reset.c | 1 -
arch/loongarch/kernel/setup.c | 7 +-
arch/loongarch/kernel/smp.c | 120 +-
arch/loongarch/kernel/stacktrace.c | 78 +
arch/loongarch/kernel/switch.S | 6 +-
arch/loongarch/kernel/time.c | 16 +-
arch/loongarch/kernel/traps.c | 27 +-
arch/loongarch/kernel/unwind_guess.c | 67 +
arch/loongarch/kernel/unwind_prologue.c | 176 +
arch/loongarch/kernel/vdso.c | 25 +-
arch/loongarch/kernel/vmlinux.lds.S | 2 +
arch/loongarch/lib/clear_user.S | 2 +-
arch/loongarch/lib/copy_user.S | 2 +-
arch/loongarch/lib/delay.c | 1 -
arch/loongarch/mm/cache.c | 46 +
arch/loongarch/mm/page.S | 118 +-
arch/loongarch/mm/pgtable.c | 2 +-
arch/loongarch/mm/tlb.c | 7 +-
arch/loongarch/mm/tlbex.S | 104 +-
arch/loongarch/pci/acpi.c | 175 +
arch/loongarch/pci/pci.c | 101 +
arch/loongarch/vdso/Makefile | 3 +-
arch/loongarch/vdso/vdso.lds.S | 1 +
arch/loongarch/vdso/vgetcpu.c | 43 +
arch/m68k/Kconfig | 1 -
arch/m68k/Kconfig.cpu | 7 +-
arch/m68k/Kconfig.debug | 6 +-
arch/m68k/Kconfig.machine | 5 +-
arch/m68k/coldfire/device.c | 6 +-
arch/m68k/coldfire/intc-2.c | 2 +-
arch/m68k/coldfire/m523x.c | 2 +-
arch/m68k/configs/amiga_defconfig | 14 +-
arch/m68k/configs/apollo_defconfig | 14 +-
arch/m68k/configs/atari_defconfig | 14 +-
arch/m68k/configs/bvme6000_defconfig | 14 +-
arch/m68k/configs/hp300_defconfig | 14 +-
arch/m68k/configs/mac_defconfig | 14 +-
arch/m68k/configs/multi_defconfig | 14 +-
arch/m68k/configs/mvme147_defconfig | 14 +-
arch/m68k/configs/mvme16x_defconfig | 14 +-
arch/m68k/configs/q40_defconfig | 14 +-
arch/m68k/configs/sun3_defconfig | 14 +-
arch/m68k/configs/sun3x_defconfig | 14 +-
arch/m68k/emu/nfblock.c | 4 +-
arch/m68k/include/asm/bitops.h | 51 +-
arch/m68k/include/asm/dma.h | 6 -
arch/m68k/include/asm/mcf_pgtable.h | 59 -
arch/m68k/include/asm/motorola_pgtable.h | 29 -
arch/m68k/include/asm/pci.h | 2 -
arch/m68k/include/asm/processor.h | 1 +
arch/m68k/include/asm/sun3_pgtable.h | 23 -
arch/m68k/include/asm/virtconvert.h | 4 +-
arch/m68k/include/uapi/asm/bootinfo-virt.h | 8 +
arch/m68k/include/uapi/asm/bootinfo.h | 4 +-
arch/m68k/kernel/traps.c | 1 +
arch/m68k/mac/iop.c | 4 +-
arch/m68k/mac/macints.c | 35 +-
arch/m68k/mm/fault.c | 4 +
arch/m68k/mm/mcfmmu.c | 55 +
arch/m68k/mm/motorola.c | 29 +
arch/m68k/mm/sun3mmu.c | 20 +
arch/m68k/q40/README | 5 +-
arch/m68k/q40/q40ints.c | 2 +-
arch/m68k/sun3/mmu_emu.c | 11 +-
arch/m68k/virt/config.c | 11 +
arch/m68k/virt/ints.c | 3 +-
arch/m68k/virt/platform.c | 58 +-
arch/microblaze/Kconfig | 2 -
arch/microblaze/include/asm/dma.h | 6 -
arch/microblaze/include/asm/io.h | 2 -
arch/microblaze/include/asm/pgtable.h | 17 -
arch/microblaze/kernel/entry.S | 2 +-
arch/microblaze/mm/fault.c | 4 +
arch/microblaze/mm/init.c | 20 +
arch/mips/Kbuild.platforms | 1 -
arch/mips/Kconfig | 27 +-
arch/mips/Makefile | 1 -
arch/mips/alchemy/devboards/pm.c | 2 +-
arch/mips/ath79/early_printk.c | 17 +-
arch/mips/bcm47xx/board.c | 2 +
arch/mips/bcm47xx/buttons.c | 10 +
arch/mips/bcm47xx/leds.c | 11 +
arch/mips/bcm47xx/prom.c | 2 +-
arch/mips/bcm47xx/workarounds.c | 1 +
arch/mips/bmips/setup.c | 14 +-
arch/mips/boot/dts/img/pistachio_marduk.dts | 4 +-
arch/mips/boot/dts/ingenic/ci20.dts | 2 +-
arch/mips/boot/dts/ingenic/gcw0.dts | 31 +-
arch/mips/boot/dts/ingenic/rs90.dts | 18 +-
arch/mips/boot/dts/ingenic/x1000.dtsi | 5 +-
arch/mips/boot/dts/ingenic/x1830.dtsi | 5 +-
arch/mips/boot/dts/mscc/ocelot.dtsi | 9 +-
arch/mips/boot/dts/pic32/pic32mzda_sk.dts | 9 +-
arch/mips/boot/dts/qca/ar9132_tl_wr1043nd_v1.dts | 6 +-
arch/mips/boot/dts/qca/ar9331_dpt_module.dts | 4 +-
arch/mips/boot/dts/qca/ar9331_dragino_ms14.dts | 6 +-
arch/mips/boot/dts/qca/ar9331_omega.dts | 4 +-
.../dts/qca/ar9331_openembed_som9331_board.dts | 4 +-
arch/mips/boot/dts/qca/ar9331_tl_mr3020.dts | 8 +-
.../dts/ralink/gardena_smart_gateway_mt7688.dts | 2 +-
arch/mips/boot/dts/ralink/mt7621-gnubee-gb-pc1.dts | 2 +-
arch/mips/boot/dts/ralink/mt7621-gnubee-gb-pc2.dts | 2 +-
arch/mips/cavium-octeon/Kconfig | 12 +
arch/mips/cavium-octeon/executive/cvmx-cmd-queue.c | 21 +-
.../cavium-octeon/executive/cvmx-helper-board.c | 4 +-
arch/mips/cavium-octeon/octeon-irq.c | 4 +-
arch/mips/cavium-octeon/octeon-platform.c | 3 +-
arch/mips/cavium-octeon/setup.c | 38 +-
arch/mips/configs/capcella_defconfig | 91 -
arch/mips/configs/cavium_octeon_defconfig | 2 +-
arch/mips/configs/e55_defconfig | 37 -
arch/mips/configs/mpc30x_defconfig | 53 -
arch/mips/configs/tb0219_defconfig | 76 -
arch/mips/configs/tb0226_defconfig | 71 -
arch/mips/configs/tb0287_defconfig | 84 -
arch/mips/configs/workpad_defconfig | 67 -
arch/mips/fw/cfe/cfe_api.c | 68 +-
arch/mips/generic/board-ranchu.c | 1 +
arch/mips/include/asm/cpu-type.h | 11 -
arch/mips/include/asm/cpu.h | 3 +-
arch/mips/include/asm/dma.h | 8 -
arch/mips/include/asm/fw/cfe/cfe_api.h | 2 +
arch/mips/include/asm/io.h | 11 +-
arch/mips/include/asm/jump_label.h | 2 +
arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 1 +
arch/mips/include/asm/mach-loongson64/irq.h | 3 +-
arch/mips/include/asm/mach-vr41xx/irq.h | 9 -
arch/mips/include/asm/mipsregs.h | 14 -
arch/mips/include/asm/octeon/cvmx-helper-board.h | 12 +-
arch/mips/include/asm/pci.h | 6 -
arch/mips/include/asm/pgalloc.h | 8 +-
arch/mips/include/asm/pgtable-32.h | 24 +-
arch/mips/include/asm/pgtable-64.h | 66 +-
arch/mips/include/asm/pgtable.h | 22 -
arch/mips/include/asm/vermagic.h | 2 -
arch/mips/include/asm/vr41xx/capcella.h | 30 -
arch/mips/include/asm/vr41xx/giu.h | 41 -
arch/mips/include/asm/vr41xx/irq.h | 97 -
arch/mips/include/asm/vr41xx/mpc30x.h | 24 -
arch/mips/include/asm/vr41xx/pci.h | 77 -
arch/mips/include/asm/vr41xx/siu.h | 45 -
arch/mips/include/asm/vr41xx/tb0219.h | 29 -
arch/mips/include/asm/vr41xx/tb0226.h | 30 -
arch/mips/include/asm/vr41xx/tb0287.h | 30 -
arch/mips/include/asm/vr41xx/vr41xx.h | 148 -
arch/mips/include/uapi/asm/ucontext.h | 2 +-
arch/mips/kernel/asm-offsets.c | 5 -
arch/mips/kernel/cpu-probe.c | 40 -
arch/mips/kernel/jump_label.c | 19 +
arch/mips/kernel/mips-mt.c | 4 +-
arch/mips/kernel/module.c | 5 +-
arch/mips/kernel/proc.c | 2 +-
arch/mips/kernel/vdso.c | 2 +-
arch/mips/kvm/mmu.c | 2 +-
arch/mips/lantiq/falcon/sysctrl.c | 6 +
arch/mips/lantiq/irq.c | 1 +
arch/mips/lantiq/xway/sysctrl.c | 4 +
arch/mips/lib/dump_tlb.c | 8 -
arch/mips/loongson64/numa.c | 1 -
arch/mips/math-emu/dsemul.c | 9 +-
arch/mips/mm/c-r4k.c | 44 -
arch/mips/mm/cache.c | 3 +
arch/mips/mm/context.c | 5 +-
arch/mips/mm/fault.c | 4 +
arch/mips/mm/pgtable.c | 2 +-
arch/mips/mm/physaddr.c | 14 +-
arch/mips/mm/tlbex.c | 53 +-
arch/mips/mti-malta/malta-time.c | 2 +
arch/mips/pci/Makefile | 6 -
arch/mips/pci/fixup-capcella.c | 37 -
arch/mips/pci/fixup-lemote2f.c | 2 +-
arch/mips/pci/fixup-mpc30x.c | 36 -
arch/mips/pci/fixup-tb0219.c | 38 -
arch/mips/pci/fixup-tb0226.c | 73 -
arch/mips/pci/fixup-tb0287.c | 52 -
arch/mips/pci/msi-octeon.c | 16 +-
arch/mips/pci/ops-vr41xx.c | 113 -
arch/mips/pci/pci-vr41xx.c | 309 -
arch/mips/pci/pci-vr41xx.h | 141 -
arch/mips/pic32/pic32mzda/init.c | 7 +-
arch/mips/pic32/pic32mzda/time.c | 3 +
arch/mips/ralink/of.c | 2 +
arch/mips/sgi-ip22/ip22-gio.c | 2 +-
arch/mips/vr41xx/Kconfig | 104 -
arch/mips/vr41xx/Makefile | 5 -
arch/mips/vr41xx/Platform | 29 -
arch/mips/vr41xx/casio-e55/Makefile | 6 -
arch/mips/vr41xx/casio-e55/setup.c | 27 -
arch/mips/vr41xx/common/Makefile | 6 -
arch/mips/vr41xx/common/bcu.c | 210 -
arch/mips/vr41xx/common/cmu.c | 242 -
arch/mips/vr41xx/common/giu.c | 110 -
arch/mips/vr41xx/common/icu.c | 716 -
arch/mips/vr41xx/common/init.c | 60 -
arch/mips/vr41xx/common/irq.c | 106 -
arch/mips/vr41xx/common/pmu.c | 123 -
arch/mips/vr41xx/common/rtc.c | 105 -
arch/mips/vr41xx/common/siu.c | 142 -
arch/mips/vr41xx/common/type.c | 11 -
arch/mips/vr41xx/ibm-workpad/Makefile | 6 -
arch/mips/vr41xx/ibm-workpad/setup.c | 27 -
arch/nios2/include/asm/pgtable.h | 23 +-
arch/nios2/mm/fault.c | 4 +
arch/nios2/mm/init.c | 25 +-
arch/nios2/mm/pgtable.c | 2 +-
arch/openrisc/Kconfig | 5 +-
arch/openrisc/configs/virt_defconfig | 108 +
arch/openrisc/include/asm/Kbuild | 1 +
arch/openrisc/include/asm/io.h | 4 +-
arch/openrisc/include/asm/pgtable.h | 18 -
arch/openrisc/kernel/smp.c | 6 -
arch/openrisc/kernel/unwinder.c | 2 +-
arch/openrisc/mm/fault.c | 4 +
arch/openrisc/mm/init.c | 20 +
arch/openrisc/mm/ioremap.c | 2 +-
arch/parisc/Kconfig | 2 +-
arch/parisc/include/asm/cacheflush.h | 6 +-
arch/parisc/include/asm/dma.h | 6 -
arch/parisc/include/asm/fb.h | 2 +-
arch/parisc/include/asm/floppy.h | 4 +-
arch/parisc/include/asm/io.h | 2 -
arch/parisc/include/asm/pci.h | 5 -
arch/parisc/include/asm/pgalloc.h | 6 +-
arch/parisc/include/asm/pgtable.h | 26 +-
arch/parisc/kernel/asm-offsets.c | 5 +
arch/parisc/kernel/cache.c | 10 +-
arch/parisc/kernel/drivers.c | 9 +-
arch/parisc/kernel/hardware.c | 11 +-
arch/parisc/kernel/irq.c | 4 +-
arch/parisc/kernel/jump_label.c | 11 -
arch/parisc/kernel/pci-dma.c | 4 +-
arch/parisc/kernel/smp.c | 7 -
arch/parisc/kernel/syscalls/syscall.tbl | 2 +-
arch/parisc/kernel/unaligned.c | 2 +-
arch/parisc/math-emu/decode_exc.c | 2 +-
arch/parisc/mm/fault.c | 6 +-
arch/parisc/mm/init.c | 22 +-
arch/powerpc/Kconfig | 37 +-
arch/powerpc/Kconfig.debug | 4 +-
arch/powerpc/Makefile | 34 +-
arch/powerpc/boot/dts/fsl/p2020si-post.dtsi | 3 +
arch/powerpc/boot/dts/turris1x.dts | 483 +
arch/powerpc/configs/44x/akebono_defconfig | 2 +-
arch/powerpc/configs/44x/currituck_defconfig | 2 +-
arch/powerpc/configs/44x/fsp2_defconfig | 2 +-
arch/powerpc/configs/44x/iss476-smp_defconfig | 2 +-
arch/powerpc/configs/44x/warp_defconfig | 2 +-
arch/powerpc/configs/52xx/lite5200b_defconfig | 2 +-
arch/powerpc/configs/52xx/motionpro_defconfig | 2 +-
arch/powerpc/configs/52xx/tqm5200_defconfig | 2 +-
arch/powerpc/configs/adder875_defconfig | 2 +-
arch/powerpc/configs/ep8248e_defconfig | 2 +-
arch/powerpc/configs/ep88xc_defconfig | 2 +-
arch/powerpc/configs/fsl-emb-nonhw.config | 2 +-
arch/powerpc/configs/mgcoge_defconfig | 2 +-
arch/powerpc/configs/mpc5200_defconfig | 2 +-
arch/powerpc/configs/mpc8272_ads_defconfig | 2 +-
arch/powerpc/configs/mpc885_ads_defconfig | 2 +-
arch/powerpc/configs/ppc6xx_defconfig | 2 +-
arch/powerpc/configs/pq2fads_defconfig | 2 +-
arch/powerpc/configs/ps3_defconfig | 2 +-
arch/powerpc/configs/tqm8xx_defconfig | 2 +-
arch/powerpc/crypto/aes-spe-glue.c | 2 +-
arch/powerpc/include/asm/archrandom.h | 41 +-
arch/powerpc/include/asm/asm-prototypes.h | 11 +-
arch/powerpc/include/asm/atomic.h | 5 +-
arch/powerpc/include/asm/barrier.h | 2 +
arch/powerpc/include/asm/bitops.h | 4 +-
arch/powerpc/include/asm/book3s/64/hugetlb.h | 3 +
arch/powerpc/include/asm/book3s/64/pgtable.h | 2 +-
arch/powerpc/include/asm/book3s/64/tlbflush.h | 26 +-
arch/powerpc/include/asm/bpf_perf_event.h | 9 +
arch/powerpc/include/asm/context_tracking.h | 2 +-
arch/powerpc/include/asm/cputable.h | 3 -
arch/powerpc/include/asm/cputime.h | 1 +
arch/powerpc/include/asm/dma.h | 6 -
arch/powerpc/include/asm/firmware.h | 3 +-
arch/powerpc/include/asm/hvcall.h | 23 +-
arch/powerpc/include/asm/hw_irq.h | 77 +-
arch/powerpc/include/asm/inst.h | 19 -
arch/powerpc/include/asm/interrupt.h | 1 +
arch/powerpc/include/asm/io.h | 3 -
arch/powerpc/include/asm/irq.h | 1 -
arch/powerpc/include/asm/kasan.h | 13 +-
arch/powerpc/include/asm/kexec.h | 15 +
arch/powerpc/include/asm/kprobes.h | 2 +-
arch/powerpc/include/asm/kvm_book3s.h | 3 -
arch/powerpc/include/asm/kvm_host.h | 16 +-
arch/powerpc/include/asm/machdep.h | 4 -
arch/powerpc/include/asm/mman.h | 1 +
arch/powerpc/include/asm/mmu.h | 12 -
arch/powerpc/include/asm/mpc52xx.h | 4 +-
arch/powerpc/include/asm/mpc5xxx.h | 9 +-
arch/powerpc/include/asm/nmi.h | 2 +
arch/powerpc/include/asm/nohash/64/pgalloc.h | 5 +-
arch/powerpc/include/asm/nohash/64/pgtable.h | 23 +-
arch/powerpc/include/asm/nohash/pgtable.h | 2 +-
arch/powerpc/include/asm/pci-bridge.h | 4 +
arch/powerpc/include/asm/pci.h | 2 -
arch/powerpc/include/asm/pgtable.h | 20 +-
arch/powerpc/include/asm/plpar_wrappers.h | 5 +-
arch/powerpc/include/asm/ppc-opcode.h | 15 +-
arch/powerpc/include/asm/probes.h | 4 +-
arch/powerpc/include/asm/prom.h | 13 +-
arch/powerpc/include/asm/setup.h | 6 +-
arch/powerpc/include/asm/simple_spinlock.h | 15 +-
arch/powerpc/include/asm/synch.h | 5 +-
arch/powerpc/include/asm/thread_info.h | 10 +-
arch/powerpc/include/asm/tlb.h | 2 -
arch/powerpc/include/asm/uaccess.h | 3 +-
arch/powerpc/include/asm/uprobes.h | 2 +-
arch/powerpc/include/asm/word-at-a-time.h | 2 +-
arch/powerpc/include/uapi/asm/bpf_perf_event.h | 9 -
arch/powerpc/kernel/Makefile | 14 +-
arch/powerpc/kernel/asm-offsets.c | 2 +-
arch/powerpc/kernel/btext.c | 2 +-
arch/powerpc/kernel/cputable.c | 67 +-
arch/powerpc/kernel/dawr.c | 1 +
arch/powerpc/kernel/dt_cpu_ftrs.c | 4 -
arch/powerpc/kernel/eeh_driver.c | 2 +-
arch/powerpc/kernel/exceptions-64s.S | 2 +-
arch/powerpc/kernel/head_64.S | 3 +
arch/powerpc/kernel/head_book3s_32.S | 4 +-
arch/powerpc/kernel/interrupt.c | 161 -
arch/powerpc/kernel/iommu.c | 5 +
arch/powerpc/kernel/irq.c | 500 +-
arch/powerpc/kernel/irq_64.c | 466 +
arch/powerpc/kernel/kgdb.c | 5 +-
arch/powerpc/kernel/kprobes.c | 2 +-
arch/powerpc/kernel/mce.c | 2 +-
arch/powerpc/kernel/pci-common.c | 32 +-
arch/powerpc/kernel/pci_32.c | 27 +-
arch/powerpc/kernel/pci_64.c | 2 +
arch/powerpc/kernel/pci_dn.c | 2 +-
arch/powerpc/kernel/process.c | 6 +-
arch/powerpc/kernel/prom.c | 10 +-
arch/powerpc/kernel/prom_init.c | 4 +-
arch/powerpc/kernel/prom_init_check.sh | 2 +-
arch/powerpc/kernel/ptrace/ptrace-fpu.c | 20 +-
arch/powerpc/kernel/ptrace/ptrace-vsx.c | 2 +-
arch/powerpc/kernel/ptrace/ptrace.c | 3 +
arch/powerpc/kernel/rtas.c | 15 +-
arch/powerpc/kernel/setup-common.c | 21 +-
arch/powerpc/kernel/setup_64.c | 1 -
arch/powerpc/kernel/signal_64.c | 9 +-
arch/powerpc/kernel/smp.c | 36 +-
arch/powerpc/kernel/syscall.c | 190 +
arch/powerpc/kernel/trace/ftrace.c | 38 +-
arch/powerpc/kernel/traps.c | 2 +-
arch/powerpc/kernel/vdso/cacheflush.S | 1 +
arch/powerpc/kernel/watchdog.c | 23 +-
arch/powerpc/kexec/core.c | 2 +
arch/powerpc/kexec/crash.c | 79 +-
arch/powerpc/kexec/file_load_64.c | 55 +
arch/powerpc/kvm/Kconfig | 21 +-
arch/powerpc/kvm/Makefile | 1 +
arch/powerpc/kvm/book3s_64_mmu_radix.c | 1 +
arch/powerpc/kvm/book3s_64_vio.c | 2 +-
arch/powerpc/kvm/book3s_hv.c | 30 +-
arch/powerpc/kvm/book3s_hv.h | 10 +
arch/powerpc/kvm/book3s_hv_builtin.c | 25 +-
arch/powerpc/kvm/book3s_hv_nested.c | 1 +
arch/powerpc/kvm/book3s_hv_p9_entry.c | 257 +-
arch/powerpc/kvm/book3s_hv_p9_perf.c | 219 +
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 24 +-
arch/powerpc/kvm/book3s_xics.h | 1 +
arch/powerpc/kvm/powerpc.c | 1 +
arch/powerpc/kvm/trace_hv.h | 21 +-
arch/powerpc/lib/test_emulate_step.c | 15 +-
arch/powerpc/mm/book3s32/mmu.c | 12 +-
arch/powerpc/mm/book3s64/hash_pgtable.c | 1 +
arch/powerpc/mm/book3s64/hash_utils.c | 2 +-
arch/powerpc/mm/book3s64/pkeys.c | 1 +
arch/powerpc/mm/book3s64/radix_hugetlbpage.c | 10 +-
arch/powerpc/mm/book3s64/radix_pgtable.c | 35 +-
arch/powerpc/mm/book3s64/radix_tlb.c | 14 +-
arch/powerpc/mm/copro_fault.c | 5 +
arch/powerpc/mm/fault.c | 5 +
arch/powerpc/mm/hugetlbpage.c | 1 +
arch/powerpc/mm/init_32.c | 37 -
arch/powerpc/mm/kasan/Makefile | 1 +
arch/powerpc/mm/kasan/init_32.c | 2 +-
arch/powerpc/mm/kasan/init_book3e_64.c | 133 +
arch/powerpc/mm/kasan/init_book3s_64.c | 2 +
arch/powerpc/mm/mem.c | 35 +-
arch/powerpc/mm/mmu_decl.h | 1 -
arch/powerpc/mm/nohash/40x.c | 9 +-
arch/powerpc/mm/nohash/8xx.c | 13 +-
arch/powerpc/mm/nohash/book3e_hugetlbpage.c | 30 +-
arch/powerpc/mm/nohash/book3e_pgtable.c | 6 +-
arch/powerpc/mm/nohash/kaslr_booke.c | 8 +-
arch/powerpc/mm/nohash/tlb_low.S | 4 +-
arch/powerpc/mm/nohash/tlb_low_64e.S | 147 +-
arch/powerpc/mm/pgtable.c | 24 +
arch/powerpc/mm/pgtable_32.c | 6 +-
arch/powerpc/mm/ptdump/shared.c | 6 +-
arch/powerpc/net/bpf_jit_comp32.c | 72 +-
arch/powerpc/net/bpf_jit_comp64.c | 96 +-
arch/powerpc/perf/core-book3s.c | 66 +-
arch/powerpc/perf/e500-pmu.c | 9 +-
arch/powerpc/perf/e6500-pmu.c | 5 +-
arch/powerpc/perf/generic-compat-pmu.c | 12 +-
arch/powerpc/perf/hv-24x7.c | 6 +-
arch/powerpc/perf/isa207-common.c | 3 +
arch/powerpc/perf/isa207-common.h | 1 +
arch/powerpc/perf/mpc7450-pmu.c | 5 +-
arch/powerpc/perf/power10-pmu.c | 17 +-
arch/powerpc/perf/power5+-pmu.c | 6 +-
arch/powerpc/perf/power5-pmu.c | 5 +-
arch/powerpc/perf/power6-pmu.c | 5 +-
arch/powerpc/perf/power7-pmu.c | 7 +-
arch/powerpc/perf/power8-pmu.c | 15 +-
arch/powerpc/perf/power9-pmu.c | 14 +-
arch/powerpc/perf/ppc970-pmu.c | 7 +-
arch/powerpc/platforms/4xx/cpm.c | 2 +-
arch/powerpc/platforms/52xx/mpc52xx_common.c | 37 -
arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 27 +-
arch/powerpc/platforms/83xx/misc.c | 14 +-
arch/powerpc/platforms/83xx/suspend.c | 52 +-
arch/powerpc/platforms/85xx/Kconfig | 18 +-
arch/powerpc/platforms/Kconfig.cputype | 54 +-
arch/powerpc/platforms/cell/axon_msi.c | 1 +
arch/powerpc/platforms/cell/spufs/inode.c | 1 +
arch/powerpc/platforms/cell/spufs/spufs.h | 2 +-
arch/powerpc/platforms/microwatt/Kconfig | 1 -
arch/powerpc/platforms/microwatt/microwatt.h | 7 +
arch/powerpc/platforms/microwatt/rng.c | 10 +-
arch/powerpc/platforms/microwatt/setup.c | 8 +
arch/powerpc/platforms/powermac/setup.c | 7 -
arch/powerpc/platforms/powernv/Kconfig | 3 +-
arch/powerpc/platforms/powernv/Makefile | 1 +
arch/powerpc/platforms/powernv/pci-ioda.c | 2 +
arch/powerpc/platforms/powernv/powernv.h | 2 +
arch/powerpc/platforms/powernv/rng.c | 130 +-
arch/powerpc/platforms/powernv/setup.c | 2 +
arch/powerpc/platforms/powernv/vas-fault.c | 2 +-
arch/powerpc/platforms/ps3/Kconfig | 2 +-
arch/powerpc/platforms/pseries/Kconfig | 14 +-
arch/powerpc/platforms/pseries/Makefile | 1 +
arch/powerpc/platforms/pseries/cmm.c | 60 +-
arch/powerpc/platforms/pseries/eeh_pseries.c | 2 +-
arch/powerpc/platforms/pseries/firmware.c | 1 +
arch/powerpc/platforms/pseries/iommu.c | 97 +-
arch/powerpc/platforms/pseries/kexec.c | 2 +-
arch/powerpc/platforms/pseries/lpar.c | 2 +-
arch/powerpc/platforms/pseries/mobility.c | 91 +-
.../platforms/pseries/papr_platform_attributes.c | 1 +
arch/powerpc/platforms/pseries/papr_scm.c | 7 +-
arch/powerpc/platforms/pseries/plpks.c | 460 +
arch/powerpc/platforms/pseries/plpks.h | 71 +
arch/powerpc/platforms/pseries/pseries.h | 2 +
arch/powerpc/platforms/pseries/rng.c | 11 +-
arch/powerpc/platforms/pseries/setup.c | 20 +-
arch/powerpc/platforms/pseries/vas.c | 3 +-
arch/powerpc/purgatory/.gitignore | 1 -
arch/powerpc/purgatory/Makefile | 8 +-
arch/powerpc/purgatory/kexec-purgatory.S | 14 +
arch/powerpc/sysdev/cpm2.c | 2 +-
arch/powerpc/sysdev/fsl_pci.c | 9 +
arch/powerpc/sysdev/fsl_pci.h | 1 +
arch/powerpc/sysdev/fsl_rio.c | 12 +-
arch/powerpc/sysdev/mpc5xxx_clocks.c | 41 +-
arch/powerpc/sysdev/of_rtc.c | 2 +
arch/powerpc/sysdev/xive/spapr.c | 6 +-
arch/powerpc/xmon/xmon.c | 4 +-
arch/riscv/Kconfig | 92 +-
arch/riscv/Kconfig.erratas | 14 +-
arch/riscv/Kconfig.socs | 4 +-
arch/riscv/Makefile | 11 +-
arch/riscv/boot/dts/canaan/Makefile | 10 +-
arch/riscv/boot/dts/canaan/canaan_kd233.dts | 8 +-
arch/riscv/boot/dts/canaan/k210.dtsi | 85 +-
arch/riscv/boot/dts/canaan/sipeed_maix_bit.dts | 4 +-
arch/riscv/boot/dts/canaan/sipeed_maix_dock.dts | 4 +-
arch/riscv/boot/dts/canaan/sipeed_maix_go.dts | 8 +-
arch/riscv/boot/dts/canaan/sipeed_maixduino.dts | 4 +-
arch/riscv/boot/dts/microchip/mpfs.dtsi | 58 +-
arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 24 +
arch/riscv/boot/dts/sifive/fu740-c000.dtsi | 24 +
.../riscv/boot/dts/sifive/hifive-unmatched-a00.dts | 44 +-
arch/riscv/boot/dts/starfive/jh7100.dtsi | 18 +-
arch/riscv/configs/32-bit.config | 2 +
arch/riscv/configs/defconfig | 65 +-
arch/riscv/configs/nommu_k210_defconfig | 1 +
arch/riscv/configs/nommu_k210_sdcard_defconfig | 1 +
arch/riscv/configs/nommu_virt_defconfig | 1 +
arch/riscv/configs/rv32_defconfig | 1 +
arch/riscv/errata/sifive/errata.c | 3 +-
arch/riscv/errata/thead/errata.c | 52 +-
arch/riscv/include/asm/asm.h | 15 +
arch/riscv/include/asm/barrier.h | 2 +
arch/riscv/include/asm/cache.h | 4 +
arch/riscv/include/asm/cacheflush.h | 10 +
arch/riscv/include/asm/cpu_ops.h | 1 +
arch/riscv/include/asm/cpu_ops_sbi.h | 2 +
arch/riscv/include/asm/csr.h | 21 +
arch/riscv/include/asm/efi.h | 2 -
arch/riscv/include/asm/errata_list.h | 81 +-
arch/riscv/include/asm/hwcap.h | 32 +
arch/riscv/include/asm/kvm_host.h | 24 +-
arch/riscv/include/asm/kvm_vcpu_fp.h | 8 +-
arch/riscv/include/asm/kvm_vcpu_insn.h | 48 +
arch/riscv/include/asm/kvm_vcpu_timer.h | 9 +-
arch/riscv/include/asm/page.h | 1 -
arch/riscv/include/asm/pci.h | 32 +-
arch/riscv/include/asm/pgtable-64.h | 12 +-
arch/riscv/include/asm/pgtable.h | 26 +-
arch/riscv/include/asm/processor.h | 4 +-
arch/riscv/include/asm/sbi.h | 32 +-
arch/riscv/include/asm/smp.h | 4 +-
arch/riscv/include/asm/switch_to.h | 4 +-
arch/riscv/include/asm/vdso/processor.h | 21 +-
arch/riscv/include/uapi/asm/kvm.h | 2 +
arch/riscv/kernel/Makefile | 2 +-
arch/riscv/kernel/alternative.c | 18 +-
arch/riscv/kernel/cpu.c | 29 +-
arch/riscv/kernel/cpu_ops.c | 5 +-
arch/riscv/kernel/cpu_ops_sbi.c | 4 +-
arch/riscv/kernel/cpu_ops_spinwait.c | 6 +-
arch/riscv/kernel/cpufeature.c | 79 +-
arch/riscv/kernel/crash_save_regs.S | 2 +-
arch/riscv/kernel/elf_kexec.c | 2 +-
arch/riscv/kernel/entry.S | 12 +-
arch/riscv/kernel/jump_label.c | 12 -
arch/riscv/kernel/machine_kexec.c | 28 +-
arch/riscv/kernel/probes/uprobes.c | 6 -
arch/riscv/kernel/setup.c | 2 +
arch/riscv/kernel/smp.c | 10 +-
arch/riscv/kernel/smpboot.c | 9 +-
arch/riscv/kernel/sys_riscv.c | 5 +-
arch/riscv/kernel/traps.c | 4 +
arch/riscv/kernel/traps_misaligned.c | 8 +-
arch/riscv/kvm/Makefile | 1 +
arch/riscv/kvm/mmu.c | 37 +-
arch/riscv/kvm/vcpu.c | 213 +-
arch/riscv/kvm/vcpu_exit.c | 496 +-
arch/riscv/kvm/vcpu_fp.c | 27 +-
arch/riscv/kvm/vcpu_insn.c | 752 +
arch/riscv/kvm/vcpu_timer.c | 148 +-
arch/riscv/kvm/vm.c | 4 +-
arch/riscv/kvm/vmid.c | 2 +-
arch/riscv/lib/uaccess.S | 4 +-
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/dma-noncoherent.c | 116 +
arch/riscv/mm/fault.c | 4 +
arch/riscv/mm/init.c | 24 +
arch/riscv/net/bpf_jit.h | 1 +
arch/riscv/net/bpf_jit_core.c | 8 +-
arch/riscv/purgatory/.gitignore | 1 -
arch/riscv/purgatory/Makefile | 10 +-
arch/riscv/purgatory/kexec-purgatory.S | 14 +
arch/s390/Kconfig | 19 +-
arch/s390/Makefile | 18 +-
arch/s390/boot/startup.c | 10 +-
arch/s390/boot/uv.c | 11 +-
arch/s390/boot/uv.h | 7 +-
arch/s390/configs/zfcpdump_defconfig | 1 -
arch/s390/crypto/Makefile | 2 +-
arch/s390/crypto/aes_s390.c | 2 +-
arch/s390/crypto/arch_random.c | 217 -
arch/s390/crypto/chacha-glue.c | 2 +-
arch/s390/crypto/crc32-vx.c | 2 +-
arch/s390/crypto/des_s390.c | 2 +-
arch/s390/crypto/ghash_s390.c | 2 +-
arch/s390/crypto/prng.c | 2 +-
arch/s390/crypto/sha1_s390.c | 2 +-
arch/s390/crypto/sha256_s390.c | 2 +-
arch/s390/crypto/sha3_256_s390.c | 2 +-
arch/s390/crypto/sha3_512_s390.c | 2 +-
arch/s390/crypto/sha512_s390.c | 2 +-
arch/s390/include/asm/airq.h | 7 +-
arch/s390/include/asm/ap.h | 6 +-
arch/s390/include/asm/archrandom.h | 40 +-
arch/s390/include/asm/bitops.h | 61 +-
arch/s390/include/asm/cpufeature.h | 23 +-
arch/s390/include/asm/dma.h | 6 -
arch/s390/include/asm/gmap.h | 39 +-
arch/s390/include/asm/jump_label.h | 5 +-
arch/s390/include/asm/kexec.h | 14 +
arch/s390/include/asm/kvm_host.h | 44 +-
arch/s390/include/asm/mmu.h | 16 +-
arch/s390/include/asm/mmu_context.h | 2 +-
arch/s390/include/asm/nospec-insn.h | 2 -
arch/s390/include/asm/os_info.h | 17 +-
arch/s390/include/asm/pci.h | 12 +-
arch/s390/include/asm/pci_clp.h | 9 +-
arch/s390/include/asm/pci_insn.h | 29 +-
arch/s390/include/asm/pgtable.h | 38 +-
arch/s390/include/asm/qdio.h | 6 +-
arch/s390/include/asm/sclp.h | 8 +-
arch/s390/include/asm/softirq_stack.h | 3 +-
arch/s390/include/asm/tlb.h | 3 -
arch/s390/include/asm/tpi.h | 13 +
arch/s390/include/asm/uaccess.h | 5 +-
arch/s390/include/asm/unwind.h | 2 +-
arch/s390/include/asm/uv.h | 51 +-
arch/s390/include/uapi/asm/hwctrset.h | 6 +-
arch/s390/include/uapi/asm/kvm.h | 1 +
arch/s390/kernel/Makefile | 2 +-
arch/s390/kernel/cpufeature.c | 46 +
arch/s390/kernel/crash_dump.c | 108 +-
arch/s390/kernel/jump_label.c | 28 +-
arch/s390/kernel/machine_kexec_file.c | 18 +-
arch/s390/kernel/module.c | 1 -
arch/s390/kernel/nmi.c | 8 +-
arch/s390/kernel/perf_cpum_cf.c | 22 +-
arch/s390/kernel/perf_pai_crypto.c | 20 +-
arch/s390/kernel/processor.c | 10 -
arch/s390/kernel/setup.c | 16 +-
arch/s390/kernel/uv.c | 156 +
arch/s390/kvm/Kconfig | 1 +
arch/s390/kvm/Makefile | 1 +
arch/s390/kvm/gaccess.c | 96 +-
arch/s390/kvm/gaccess.h | 6 +-
arch/s390/kvm/intercept.c | 15 +
arch/s390/kvm/interrupt.c | 98 +-
arch/s390/kvm/kvm-s390.c | 482 +-
arch/s390/kvm/kvm-s390.h | 16 +
arch/s390/kvm/pci.c | 690 +
arch/s390/kvm/pci.h | 87 +
arch/s390/kvm/priv.c | 26 +-
arch/s390/kvm/pv.c | 269 +-
arch/s390/kvm/sigp.c | 4 +-
arch/s390/kvm/vsie.c | 8 +
arch/s390/lib/Makefile | 3 +-
arch/s390/lib/expoline/Makefile | 3 +
arch/s390/lib/{ => expoline}/expoline.S | 0
arch/s390/mm/fault.c | 35 +-
arch/s390/mm/gmap.c | 177 +-
arch/s390/mm/init.c | 13 +-
arch/s390/mm/maccess.c | 26 -
arch/s390/mm/mmap.c | 20 +
arch/s390/pci/pci.c | 16 +
arch/s390/pci/pci_bus.c | 82 +-
arch/s390/pci/pci_clp.c | 7 +
arch/s390/pci/pci_insn.c | 4 +-
arch/s390/pci/pci_irq.c | 48 +-
arch/s390/purgatory/Makefile | 5 +-
arch/s390/tools/gen_facilities.c | 1 +
arch/sh/configs/ecovec24_defconfig | 2 -
arch/sh/include/asm/bitops-op32.h | 34 +-
arch/sh/include/asm/dma.h | 6 -
arch/sh/include/asm/io.h | 8 +-
arch/sh/include/asm/pci.h | 6 -
arch/sh/include/asm/pgtable.h | 17 -
arch/sh/kernel/irq.c | 9 +-
arch/sh/mm/fault.c | 4 +
arch/sh/mm/mmap.c | 20 +
arch/sparc/Kconfig | 5 +-
arch/sparc/include/asm/bitops_32.h | 18 +-
arch/sparc/include/asm/dma.h | 8 -
arch/sparc/include/asm/pci.h | 10 +-
arch/sparc/include/asm/pgtable_32.h | 19 -
arch/sparc/include/asm/pgtable_64.h | 19 -
arch/sparc/include/asm/tlb_64.h | 2 -
arch/sparc/kernel/irq_64.c | 2 +
arch/sparc/kernel/module.c | 3 -
arch/sparc/kernel/pci.c | 149 +-
arch/sparc/kernel/rtrap_64.S | 2 +-
arch/sparc/kernel/smp_32.c | 5 -
arch/sparc/kernel/smp_64.c | 6 -
arch/sparc/lib/atomic32.c | 12 +-
arch/sparc/mm/fault_32.c | 4 +
arch/sparc/mm/fault_64.c | 5 +
arch/sparc/mm/init_32.c | 20 +
arch/sparc/mm/init_64.c | 3 +
arch/sparc/vdso/vdso2c.c | 2 +-
arch/um/Kconfig | 17 +-
arch/um/drivers/Kconfig | 54 +-
arch/um/drivers/random.c | 2 +-
arch/um/drivers/ubd_kern.c | 8 +-
arch/um/drivers/virt-pci.c | 7 +-
arch/um/drivers/virtio_uml.c | 3 +-
arch/um/include/asm/archrandom.h | 25 +
arch/um/include/asm/common.lds.S | 2 +
arch/um/include/asm/kasan.h | 37 +
arch/um/include/asm/page.h | 4 +-
arch/um/include/asm/pci.h | 24 +-
arch/um/include/asm/pgtable.h | 17 -
arch/um/include/asm/processor-generic.h | 5 -
arch/um/include/asm/xor.h | 2 +-
arch/um/include/shared/mem.h | 4 +-
arch/um/include/shared/os.h | 7 +
arch/um/include/shared/user.h | 3 +-
arch/um/kernel/dyn.lds.S | 6 +-
arch/um/kernel/mem.c | 39 +
arch/um/kernel/stacktrace.c | 2 +-
arch/um/kernel/trap.c | 4 +
arch/um/kernel/um_arch.c | 12 +
arch/um/kernel/uml.lds.S | 1 +
arch/um/os-Linux/mem.c | 22 +
arch/um/os-Linux/skas/process.c | 23 +-
arch/um/os-Linux/umid.c | 3 +-
arch/um/os-Linux/user_syms.c | 4 +-
arch/um/os-Linux/util.c | 6 +
arch/x86/.gitignore | 2 -
arch/x86/Kconfig | 132 +-
arch/x86/Kconfig.debug | 3 -
arch/x86/Makefile | 7 +
arch/x86/boot/Makefile | 2 +-
arch/x86/boot/compressed/Makefile | 4 +
arch/x86/boot/compressed/ident_map_64.c | 13 +
arch/x86/coco/tdx/tdx.c | 187 +-
arch/x86/configs/i386_defconfig | 1 -
arch/x86/configs/x86_64_defconfig | 1 -
arch/x86/crypto/Makefile | 7 +-
arch/x86/crypto/aes_ctrby8_avx-x86_64.S | 232 +-
arch/x86/crypto/aesni-intel_glue.c | 114 +-
arch/x86/crypto/blake2s-glue.c | 3 +-
arch/x86/crypto/blake2s-shash.c | 77 -
arch/x86/crypto/blowfish_glue.c | 4 +-
arch/x86/crypto/crc32-pclmul_asm.S | 24 +-
arch/x86/crypto/polyval-clmulni_asm.S | 321 +
arch/x86/crypto/polyval-clmulni_glue.c | 203 +
arch/x86/entry/Makefile | 3 +-
arch/x86/entry/calling.h | 62 +
arch/x86/entry/entry.S | 22 +
arch/x86/entry/entry_32.S | 2 -
arch/x86/entry/entry_64.S | 63 +-
arch/x86/entry/entry_64_compat.S | 21 +-
arch/x86/entry/thunk_32.S | 2 -
arch/x86/entry/thunk_64.S | 4 -
arch/x86/entry/vdso/Makefile | 3 +-
arch/x86/entry/vdso/vdso2c.c | 2 +-
arch/x86/entry/vsyscall/vsyscall_emu_64.S | 9 +-
arch/x86/events/amd/uncore.c | 146 +-
arch/x86/events/core.c | 28 +-
arch/x86/events/intel/core.c | 167 +-
arch/x86/events/intel/ds.c | 129 +-
arch/x86/events/intel/lbr.c | 19 +-
arch/x86/events/perf_event.h | 23 +-
arch/x86/hyperv/hv_apic.c | 2 +-
arch/x86/hyperv/hv_init.c | 6 +
arch/x86/hyperv/irqdomain.c | 2 +-
arch/x86/hyperv/ivm.c | 84 +-
arch/x86/include/asm/alternative.h | 1 +
arch/x86/include/asm/amd-ibs.h | 16 +-
arch/x86/include/asm/apic.h | 2 -
arch/x86/include/asm/apicdef.h | 4 +-
arch/x86/include/asm/archrandom.h | 55 +-
arch/x86/include/asm/bitops.h | 22 +-
arch/x86/include/asm/cpufeatures.h | 19 +-
arch/x86/include/asm/disabled-features.h | 21 +-
arch/x86/include/asm/dma.h | 8 -
arch/x86/include/asm/e820/api.h | 5 -
arch/x86/include/asm/efi.h | 9 +-
arch/x86/include/asm/fpu/api.h | 2 +
arch/x86/include/asm/io.h | 9 -
arch/x86/include/asm/kexec.h | 12 +
arch/x86/include/asm/kvm-x86-ops.h | 3 +-
arch/x86/include/asm/kvm-x86-pmu-ops.h | 2 +-
arch/x86/include/asm/kvm_host.h | 154 +-
arch/x86/include/asm/linkage.h | 8 +
arch/x86/include/asm/mem_encrypt.h | 2 +
arch/x86/include/asm/mshyperv.h | 4 +
arch/x86/include/asm/msr-index.h | 50 +
arch/x86/include/asm/mwait.h | 1 +
arch/x86/include/asm/nospec-branch.h | 118 +-
arch/x86/include/asm/pci.h | 3 -
arch/x86/include/asm/pci_x86.h | 8 +
arch/x86/include/asm/perf_event.h | 27 +-
arch/x86/include/asm/pgtable_types.h | 19 -
arch/x86/include/asm/setup.h | 41 +-
arch/x86/include/asm/sev.h | 7 +-
arch/x86/include/asm/sgx.h | 8 +
arch/x86/include/asm/special_insns.h | 9 +
arch/x86/include/asm/static_call.h | 19 +-
arch/x86/include/asm/svm.h | 16 +-
arch/x86/include/asm/tlb.h | 3 -
arch/x86/include/asm/tlbflush.h | 1 +
arch/x86/include/asm/uaccess.h | 2 +-
arch/x86/include/asm/unwind_hints.h | 14 +-
arch/x86/include/asm/vmx.h | 18 +
arch/x86/include/asm/vmxfeatures.h | 6 +-
arch/x86/include/asm/xen/cpuid.h | 2 +
arch/x86/include/asm/xen/events.h | 3 +-
arch/x86/include/uapi/asm/bootparam.h | 17 +-
arch/x86/include/uapi/asm/kvm.h | 22 +-
arch/x86/include/uapi/asm/sgx.h | 62 +
arch/x86/include/uapi/asm/vmx.h | 4 +-
arch/x86/kernel/Makefile | 6 -
arch/x86/kernel/acpi/cppc.c | 16 +
arch/x86/kernel/alternative.c | 71 +
arch/x86/kernel/amd_nb.c | 13 +
arch/x86/kernel/apic/apic.c | 7 +-
arch/x86/kernel/apic/ipi.c | 2 +-
arch/x86/kernel/asm-offsets.c | 6 +
arch/x86/kernel/cpu/amd.c | 48 +-
arch/x86/kernel/cpu/bugs.c | 767 +-
arch/x86/kernel/cpu/cacheinfo.c | 6 +
arch/x86/kernel/cpu/common.c | 85 +-
arch/x86/kernel/cpu/cpu.h | 2 +
arch/x86/kernel/cpu/cyrix.c | 1 +
arch/x86/kernel/cpu/feat_ctl.c | 9 +-
arch/x86/kernel/cpu/hygon.c | 6 +
arch/x86/kernel/cpu/intel.c | 31 +-
arch/x86/kernel/cpu/mce/inject.c | 47 +
arch/x86/kernel/cpu/mce/internal.h | 2 +-
arch/x86/kernel/cpu/rdrand.c | 59 +-
arch/x86/kernel/cpu/scattered.c | 1 +
arch/x86/kernel/cpu/sgx/encl.c | 330 +-
arch/x86/kernel/cpu/sgx/encl.h | 16 +-
arch/x86/kernel/cpu/sgx/encls.h | 33 +
arch/x86/kernel/cpu/sgx/ioctl.c | 641 +-
arch/x86/kernel/cpu/sgx/main.c | 75 +-
arch/x86/kernel/cpu/sgx/sgx.h | 3 +
arch/x86/kernel/cpu/vmware.c | 4 +-
arch/x86/kernel/e820.c | 6 +-
arch/x86/kernel/espfix_64.c | 2 +-
arch/x86/kernel/fpu/core.c | 14 +
arch/x86/kernel/ftrace.c | 8 +-
arch/x86/kernel/ftrace_64.S | 11 +-
arch/x86/kernel/head64.c | 4 +-
arch/x86/kernel/head_32.S | 1 +
arch/x86/kernel/head_64.S | 5 +
arch/x86/kernel/jump_label.c | 13 -
arch/x86/kernel/kexec-bzimage64.c | 94 +-
arch/x86/kernel/kprobes/core.c | 18 +-
arch/x86/kernel/kvm.c | 3 +-
arch/x86/kernel/module.c | 11 +-
arch/x86/kernel/pmem.c | 7 +-
arch/x86/kernel/process.c | 46 +-
arch/x86/kernel/relocate_kernel_32.S | 25 +-
arch/x86/kernel/relocate_kernel_64.S | 23 +-
arch/x86/kernel/resource.c | 14 +-
arch/x86/kernel/setup.c | 78 +-
arch/x86/kernel/sev-shared.c | 25 +-
arch/x86/kernel/sev.c | 17 +-
arch/x86/kernel/smpboot.c | 4 -
arch/x86/kernel/static_call.c | 51 +-
arch/x86/kernel/tboot.c | 15 -
arch/x86/kernel/vmlinux.lds.S | 11 +-
arch/x86/kvm/cpuid.c | 115 +-
arch/x86/kvm/cpuid.h | 21 +-
arch/x86/kvm/debugfs.c | 4 +-
arch/x86/kvm/emulate.c | 90 +-
arch/x86/kvm/hyperv.c | 8 +-
arch/x86/kvm/i8254.c | 10 +-
arch/x86/kvm/i8254.h | 1 -
arch/x86/kvm/kvm_emulate.h | 28 +-
arch/x86/kvm/lapic.c | 210 +-
arch/x86/kvm/lapic.h | 20 +-
arch/x86/kvm/mmu.h | 10 +-
arch/x86/kvm/mmu/mmu.c | 981 +-
arch/x86/kvm/mmu/mmu_internal.h | 40 +-
arch/x86/kvm/mmu/paging.h | 14 -
arch/x86/kvm/mmu/paging_tmpl.h | 126 +-
arch/x86/kvm/mmu/spte.c | 71 +-
arch/x86/kvm/mmu/spte.h | 55 +-
arch/x86/kvm/mmu/tdp_iter.c | 6 +-
arch/x86/kvm/mmu/tdp_mmu.c | 71 +-
arch/x86/kvm/pmu.c | 212 +-
arch/x86/kvm/pmu.h | 45 +-
arch/x86/kvm/svm/avic.c | 333 +-
arch/x86/kvm/svm/nested.c | 115 +-
arch/x86/kvm/svm/pmu.c | 62 +-
arch/x86/kvm/svm/sev.c | 102 +-
arch/x86/kvm/svm/svm.c | 335 +-
arch/x86/kvm/svm/svm.h | 47 +-
arch/x86/kvm/svm/vmenter.S | 18 +
arch/x86/kvm/trace.h | 51 +-
arch/x86/kvm/vmx/capabilities.h | 61 +-
arch/x86/kvm/vmx/evmcs.c | 2 +
arch/x86/kvm/vmx/evmcs.h | 1 +
arch/x86/kvm/vmx/nested.c | 200 +-
arch/x86/kvm/vmx/nested.h | 5 +-
arch/x86/kvm/vmx/pmu_intel.c | 206 +-
arch/x86/kvm/vmx/posted_intr.c | 30 +-
arch/x86/kvm/vmx/posted_intr.h | 2 +
arch/x86/kvm/vmx/run_flags.h | 8 +
arch/x86/kvm/vmx/sgx.c | 10 +-
arch/x86/kvm/vmx/vmcs.h | 1 +
arch/x86/kvm/vmx/vmenter.S | 196 +-
arch/x86/kvm/vmx/vmx.c | 522 +-
arch/x86/kvm/vmx/vmx.h | 132 +-
arch/x86/kvm/vmx/vmx_ops.h | 2 +-
arch/x86/kvm/x86.c | 801 +-
arch/x86/kvm/x86.h | 35 +-
arch/x86/kvm/xen.c | 41 +-
arch/x86/kvm/xen.h | 6 +-
arch/x86/lib/memmove_64.S | 7 +-
arch/x86/lib/retpoline.S | 79 +-
arch/x86/mm/extable.c | 16 +-
arch/x86/mm/fault.c | 6 +-
arch/x86/mm/hugetlbpage.c | 47 +-
arch/x86/mm/init.c | 16 +-
arch/x86/mm/mem_encrypt.c | 7 -
arch/x86/mm/mem_encrypt_amd.c | 10 +-
arch/x86/mm/mem_encrypt_boot.S | 10 +-
arch/x86/mm/numa.c | 4 +-
arch/x86/mm/pgprot.c | 28 +
arch/x86/mm/pkeys.c | 15 +-
arch/x86/mm/tlb.c | 31 +-
arch/x86/net/bpf_jit_comp.c | 117 +-
arch/x86/pci/acpi.c | 8 +-
arch/x86/platform/efi/efi.c | 23 -
arch/x86/platform/efi/efi_thunk_64.S | 5 +-
arch/x86/platform/olpc/olpc-xo1-sci.c | 2 +-
arch/x86/purgatory/Makefile | 10 +-
arch/x86/purgatory/kexec-purgatory.S | 14 +
arch/x86/um/Kconfig | 10 +-
arch/x86/um/Makefile | 4 +-
arch/x86/um/mem_32.c | 2 +-
arch/x86/um/shared/sysdep/stub_64.h | 1 +
arch/x86/um/sysrq_64.c | 4 +-
arch/x86/um/vdso/Makefile | 3 +
arch/x86/xen/enlighten.c | 2 +-
arch/x86/xen/enlighten_hvm.c | 28 +-
arch/x86/xen/enlighten_pv.c | 13 +-
arch/x86/xen/setup.c | 6 +-
arch/x86/xen/suspend_hvm.c | 10 +-
arch/x86/xen/xen-asm.S | 30 +-
arch/x86/xen/xen-head.S | 11 +-
arch/x86/xen/xen-ops.h | 6 +-
arch/xtensa/Kconfig | 5 +-
arch/xtensa/boot/lib/Makefile | 2 +
arch/xtensa/include/asm/dma.h | 7 -
arch/xtensa/include/asm/io.h | 3 -
arch/xtensa/include/asm/pci.h | 3 -
arch/xtensa/include/asm/pgalloc.h | 2 +-
arch/xtensa/include/asm/pgtable.h | 19 -
arch/xtensa/kernel/entry.S | 10 +-
arch/xtensa/kernel/irq.c | 7 +-
arch/xtensa/kernel/time.c | 1 +
arch/xtensa/mm/fault.c | 4 +
arch/xtensa/mm/init.c | 22 +
arch/xtensa/platforms/iss/network.c | 63 +-
arch/xtensa/platforms/iss/simdisk.c | 4 +-
arch/xtensa/platforms/xtfpga/setup.c | 1 +
block/Kconfig | 1 -
block/bdev.c | 10 +-
block/bfq-cgroup.c | 34 +-
block/bfq-iosched.c | 22 +-
block/bfq-iosched.h | 8 +-
block/bfq-wf2q.c | 5 +-
block/bio-integrity.c | 2 +-
block/bio.c | 162 +-
block/blk-cgroup-rwstat.h | 8 +-
block/blk-cgroup.c | 76 +-
block/blk-cgroup.h | 12 +-
block/blk-core.c | 102 +-
block/blk-flush.c | 6 +-
block/blk-ia-ranges.c | 66 +-
block/blk-ioc.c | 2 +
block/blk-iocost.c | 22 +-
block/blk-iolatency.c | 30 +-
block/blk-ioprio.c | 57 +-
block/blk-ioprio.h | 9 +
block/blk-lib.c | 6 +-
block/blk-map.c | 7 +-
block/blk-merge.c | 249 +-
block/blk-mq-debugfs-zoned.c | 6 +-
block/blk-mq-debugfs.c | 48 +-
block/blk-mq-debugfs.h | 10 -
block/blk-mq-sched.c | 12 +
block/blk-mq-sysfs.c | 45 +-
block/blk-mq-tag.c | 31 +-
block/blk-mq-tag.h | 10 +-
block/blk-mq.c | 151 +-
block/blk-mq.h | 39 +-
block/blk-rq-qos.c | 12 +-
block/blk-rq-qos.h | 18 +-
block/blk-settings.c | 11 +-
block/blk-sysfs.c | 86 +-
block/blk-throttle.c | 7 +-
block/blk-wbt.c | 30 +-
block/blk-zoned.c | 92 +-
block/blk.h | 81 +-
block/bounce.c | 39 +-
block/bsg-lib.c | 6 +-
block/bsg.c | 4 +-
block/elevator.h | 2 +-
block/fops.c | 38 +-
block/genhd.c | 132 +-
block/holder.c | 4 -
block/ioctl.c | 2 +-
block/ioprio.c | 58 +-
block/kyber-iosched.c | 11 +-
block/mq-deadline.c | 7 +-
block/partitions/check.h | 4 +-
block/partitions/core.c | 23 +-
certs/.gitignore | 2 +-
certs/Kconfig | 1 +
certs/Makefile | 30 +-
certs/blacklist.c | 8 +-
certs/blacklist_hashes.c | 5 +-
certs/blacklist_nohashes.c | 6 -
{scripts => certs}/check-blacklist-hashes.awk | 0
certs/common.h | 9 -
certs/extract-cert.c | 7 +
certs/system_keyring.c | 6 +-
crypto/Kconfig | 213 +-
crypto/Makefile | 8 +-
crypto/af_alg.c | 3 +-
crypto/algif_hash.c | 5 +-
crypto/aria.c | 288 +
crypto/asymmetric_keys/Kconfig | 10 +
crypto/asymmetric_keys/Makefile | 2 +
crypto/asymmetric_keys/pkcs7_parser.c | 18 +
crypto/asymmetric_keys/public_key.c | 7 +-
crypto/asymmetric_keys/selftest.c | 224 +
crypto/asymmetric_keys/x509_cert_parser.c | 3 +
.../asymmetric_keys/x509_loader.c | 8 +-
crypto/asymmetric_keys/x509_parser.h | 9 +
crypto/asymmetric_keys/x509_public_key.c | 8 +-
crypto/blake2s_generic.c | 75 -
crypto/fips.c | 35 +-
crypto/hctr2.c | 581 +
crypto/kpp.c | 6 +
crypto/polyval-generic.c | 245 +
crypto/rsa.c | 78 +-
crypto/shash.c | 6 +
crypto/tcrypt.c | 62 +-
crypto/testmgr.c | 75 +-
crypto/testmgr.h | 4830 +-
crypto/twofish_common.c | 2 +-
crypto/xctr.c | 191 +
drivers/Kconfig | 2 -
drivers/Makefile | 3 +-
drivers/accessibility/braille/braille_console.c | 2 +-
drivers/accessibility/speakup/.gitignore | 4 +
drivers/accessibility/speakup/Makefile | 28 +
drivers/accessibility/speakup/genmap.c | 162 +
drivers/accessibility/speakup/main.c | 2 +-
drivers/accessibility/speakup/makemapdata.c | 125 +
drivers/accessibility/speakup/serialio.h | 3 +-
drivers/accessibility/speakup/speakupmap.h | 66 -
drivers/accessibility/speakup/utils.h | 102 +
drivers/acpi/Kconfig | 34 +-
drivers/acpi/Makefile | 5 +-
drivers/acpi/acpi_lpit.c | 6 -
drivers/acpi/acpi_lpss.c | 3 +
drivers/acpi/acpi_video.c | 57 +-
drivers/acpi/apei/apei-base.c | 2 +-
drivers/acpi/apei/bert.c | 31 +-
drivers/acpi/apei/einj.c | 2 +
drivers/acpi/arm64/iort.c | 360 +-
drivers/acpi/bus.c | 61 +-
drivers/acpi/container.c | 17 +-
drivers/acpi/cppc_acpi.c | 80 +-
drivers/acpi/device_pm.c | 22 +
drivers/acpi/device_sysfs.c | 2 +-
drivers/acpi/ec.c | 140 +-
drivers/acpi/glue.c | 133 +-
drivers/acpi/irq.c | 58 +-
drivers/acpi/pci_link.c | 8 +-
drivers/acpi/pci_mcfg.c | 13 +
drivers/acpi/pptt.c | 142 +-
drivers/acpi/prmt.c | 4 +-
drivers/acpi/processor_driver.c | 72 +-
drivers/acpi/processor_idle.c | 11 +-
drivers/acpi/processor_thermal.c | 54 +
drivers/acpi/property.c | 509 +-
drivers/acpi/resource.c | 10 +
drivers/acpi/scan.c | 71 +-
drivers/acpi/sleep.c | 11 +
drivers/acpi/utils.c | 38 +
drivers/acpi/video_detect.c | 63 +-
drivers/acpi/viot.c | 32 +-
drivers/acpi/x86/s2idle.c | 17 +-
drivers/amba/bus.c | 317 +-
drivers/android/Kconfig | 9 -
drivers/android/binder.c | 199 +-
drivers/android/binder_alloc.c | 37 +-
drivers/android/binder_alloc.h | 2 +-
drivers/android/binder_alloc_selftest.c | 2 +-
drivers/android/binder_internal.h | 46 +-
drivers/android/binder_trace.h | 4 +
drivers/android/binderfs.c | 47 +-
drivers/ata/Kconfig | 2 +-
drivers/ata/libata-acpi.c | 8 +-
drivers/ata/libata-core.c | 93 +-
drivers/ata/libata-eh.c | 30 +-
drivers/ata/libata-scsi.c | 11 +-
drivers/ata/libata-transport.c | 4 +-
drivers/ata/libata.h | 8 +-
drivers/ata/pata_acpi.c | 2 +-
drivers/ata/pata_ali.c | 2 +-
drivers/ata/pata_amd.c | 14 +-
drivers/ata/pata_cs5535.c | 4 +-
drivers/ata/pata_hpt366.c | 2 +-
drivers/ata/pata_hpt37x.c | 119 +-
drivers/ata/pata_hpt3x2n.c | 21 +-
drivers/ata/pata_macio.c | 2 +-
drivers/ata/pata_mpc52xx.c | 2 +-
drivers/ata/pata_octeon_cf.c | 3 +
drivers/ata/pata_pdc2027x.c | 4 +-
drivers/ata/pata_serverworks.c | 4 +-
drivers/ata/pata_sis.c | 2 +-
drivers/ata/pata_via.c | 2 +-
drivers/ata/sata_mv.c | 2 +-
drivers/atm/he.c | 9 +-
drivers/atm/idt77252.c | 1 +
drivers/atm/iphase.c | 2 +-
drivers/base/arch_topology.c | 100 +-
drivers/base/base.h | 1 +
drivers/base/cacheinfo.c | 145 +-
drivers/base/core.c | 136 +-
drivers/base/cpu.c | 16 +
drivers/base/dd.c | 59 +-
drivers/base/devtmpfs.c | 1 +
drivers/base/firmware_loader/main.c | 4 +-
drivers/base/firmware_loader/sysfs.c | 10 +-
drivers/base/init.c | 2 +
drivers/base/memory.c | 2 +-
drivers/base/node.c | 4 +-
drivers/base/power/domain.c | 5 +-
drivers/base/power/runtime.c | 40 +-
drivers/base/power/wakeup.c | 30 -
drivers/base/regmap/regcache.c | 11 +-
drivers/base/regmap/regmap-irq.c | 440 +-
drivers/base/regmap/regmap.c | 42 +-
drivers/base/topology.c | 32 +-
drivers/block/Kconfig | 18 +-
drivers/block/Makefile | 4 +-
drivers/block/amiflop.c | 2 +-
drivers/block/aoe/aoeblk.c | 2 +-
drivers/block/aoe/aoedev.c | 2 +-
drivers/block/ataflop.c | 5 +-
drivers/block/brd.c | 8 +-
drivers/block/drbd/drbd_actlog.c | 9 +-
drivers/block/drbd/drbd_bitmap.c | 51 +-
drivers/block/drbd/drbd_int.h | 5 +-
drivers/block/drbd/drbd_main.c | 4 +-
drivers/block/drbd/drbd_receiver.c | 24 +-
drivers/block/drbd/drbd_req.c | 8 +-
drivers/block/drbd/drbd_worker.c | 2 +-
drivers/block/floppy.c | 8 +-
drivers/block/loop.c | 3 +-
drivers/block/mtip32xx/mtip32xx.c | 307 +-
drivers/block/mtip32xx/mtip32xx.h | 5 -
drivers/block/n64cart.c | 2 +-
drivers/block/nbd.c | 15 +-
drivers/block/null_blk/main.c | 123 +-
drivers/block/null_blk/null_blk.h | 14 +-
drivers/block/null_blk/trace.h | 2 +-
drivers/block/null_blk/zoned.c | 12 +-
drivers/block/paride/pcd.c | 4 +-
drivers/block/paride/pd.c | 6 +-
drivers/block/paride/pf.c | 4 +-
drivers/block/pktcdvd.c | 16 +-
drivers/block/ps3disk.c | 4 +-
drivers/block/ps3vram.c | 6 +-
drivers/block/rbd.c | 8 +-
drivers/block/rnbd/rnbd-clt-sysfs.c | 2 +-
drivers/block/rnbd/rnbd-clt.c | 207 +-
drivers/block/rnbd/rnbd-clt.h | 18 +-
drivers/block/rnbd/rnbd-proto.h | 7 +-
drivers/block/rnbd/rnbd-srv-dev.c | 1 -
drivers/block/rnbd/rnbd-srv-dev.h | 1 -
drivers/block/rnbd/rnbd-srv-sysfs.c | 5 +-
drivers/block/rnbd/rnbd-srv.c | 29 +-
drivers/block/rnbd/rnbd-srv.h | 7 +-
drivers/block/sunvdc.c | 4 +-
drivers/block/swim.c | 2 +-
drivers/block/swim3.c | 2 +-
drivers/block/sx8.c | 1582 -
drivers/block/ublk_drv.c | 1803 +
drivers/block/virtio_blk.c | 27 +-
drivers/block/xen-blkback/blkback.c | 6 +-
drivers/block/xen-blkback/xenbus.c | 20 +-
drivers/block/xen-blkfront.c | 79 +-
drivers/block/z2ram.c | 3 +-
drivers/block/zram/zcomp.c | 11 +-
drivers/block/zram/zram_drv.c | 14 +-
drivers/bluetooth/btbcm.c | 33 +-
drivers/bluetooth/btbcm.h | 8 +-
drivers/bluetooth/btmrvl_debugfs.c | 15 +-
drivers/bluetooth/btmrvl_drv.h | 16 +-
drivers/bluetooth/btmrvl_main.c | 15 +-
drivers/bluetooth/btmrvl_sdio.c | 15 +-
drivers/bluetooth/btmrvl_sdio.h | 16 +-
drivers/bluetooth/btmtksdio.c | 15 +
drivers/bluetooth/btrtl.c | 2 +-
drivers/bluetooth/btusb.c | 45 +-
drivers/bluetooth/hci_bcm.c | 35 +-
drivers/bluetooth/hci_intel.c | 6 +-
drivers/bluetooth/hci_qca.c | 2 +-
drivers/bluetooth/hci_serdev.c | 11 +
drivers/bus/bt1-apb.c | 14 +-
drivers/bus/bt1-axi.c | 14 +-
drivers/bus/fsl-mc/fsl-mc-bus.c | 6 +-
drivers/bus/hisi_lpc.c | 204 +-
drivers/bus/mhi/ep/main.c | 11 +-
drivers/bus/mhi/host/init.c | 17 +-
drivers/bus/mhi/host/pci_generic.c | 8 +
drivers/bus/mhi/host/pm.c | 19 +-
drivers/bus/mvebu-mbus.c | 11 +-
drivers/bus/omap_l3_noc.c | 10 +-
drivers/bus/omap_l3_noc.h | 10 +-
drivers/bus/sunxi-rsb.c | 6 +-
drivers/bus/tegra-gmi.c | 5 +-
drivers/bus/ts-nbus.c | 5 +-
drivers/cdrom/gdrom.c | 3 +-
drivers/char/Kconfig | 56 +-
drivers/char/Makefile | 1 -
drivers/char/agp/intel-gtt.c | 75 +-
drivers/char/apm-emulation.c | 2 +-
drivers/char/hw_random/Kconfig | 2 +-
drivers/char/hw_random/iproc-rng200.c | 9 +-
drivers/char/hw_random/powernv-rng.c | 2 +-
drivers/char/hw_random/s390-trng.c | 11 +-
drivers/char/hw_random/via-rng.c | 2 +-
drivers/char/hw_random/virtio-rng.c | 2 +
drivers/char/lp.c | 2 +-
drivers/char/random.c | 96 +-
drivers/char/tb0219.c | 359 -
drivers/char/tpm/Kconfig | 12 +
drivers/char/tpm/Makefile | 1 +
drivers/char/tpm/tpm.h | 1 +
drivers/char/tpm/tpm1-cmd.c | 7 +-
drivers/char/tpm/tpm2-cmd.c | 6 +
drivers/char/tpm/tpm_tis_core.c | 14 +
drivers/char/tpm/tpm_tis_core.h | 10 +
drivers/char/tpm/tpm_tis_i2c.c | 390 +
drivers/clk/.kunitconfig | 1 +
drivers/clk/axs10x/i2s_pll_clock.c | 5 +-
drivers/clk/axs10x/pll_clock.c | 5 +-
drivers/clk/bcm/Kconfig | 4 +-
drivers/clk/bcm/clk-bcm21664.c | 10 +-
drivers/clk/bcm/clk-bcm281xx.c | 10 +-
drivers/clk/bcm/clk-bcm63xx.c | 14 +-
drivers/clk/bcm/clk-cygnus.c | 14 +-
drivers/clk/bcm/clk-hr2.c | 14 +-
drivers/clk/bcm/clk-iproc-armpll.c | 14 +-
drivers/clk/bcm/clk-iproc-asiu.c | 14 +-
drivers/clk/bcm/clk-iproc-pll.c | 14 +-
drivers/clk/bcm/clk-iproc.h | 14 +-
drivers/clk/bcm/clk-kona-setup.c | 10 +-
drivers/clk/bcm/clk-kona.c | 10 +-
drivers/clk/bcm/clk-kona.h | 10 +-
drivers/clk/bcm/clk-ns2.c | 14 +-
drivers/clk/bcm/clk-nsp.c | 14 +-
drivers/clk/clk-devres.c | 91 +-
drivers/clk/clk-fixed-factor.c | 56 +-
drivers/clk/clk-hsdk-pll.c | 5 +-
drivers/clk/clk-lan966x.c | 2 +-
drivers/clk/clk-moxart.c | 5 +-
drivers/clk/clk.c | 48 -
drivers/clk/imx/clk-fracn-gppll.c | 36 +-
drivers/clk/imx/clk-imx93.c | 6 +-
drivers/clk/keystone/sci-clk.c | 10 +-
drivers/clk/mediatek/clk-mt2701-eth.c | 10 +-
drivers/clk/mediatek/clk-mt2701-g3d.c | 10 +-
drivers/clk/mediatek/clk-mt2701-hif.c | 10 +-
drivers/clk/mediatek/clk-mt2701.c | 22 +-
drivers/clk/mediatek/clk-mt2712.c | 22 +-
drivers/clk/mediatek/clk-mt7622-eth.c | 10 +-
drivers/clk/mediatek/clk-mt7622-hif.c | 12 +-
drivers/clk/mediatek/clk-mt7622.c | 22 +-
drivers/clk/mediatek/clk-mt7629-eth.c | 10 +-
drivers/clk/mediatek/clk-mt7629-hif.c | 12 +-
drivers/clk/mediatek/clk-mt8135.c | 22 +-
drivers/clk/mediatek/clk-mt8173.c | 22 +-
drivers/clk/mediatek/clk-mt8183.c | 18 +-
drivers/clk/mediatek/clk-mt8186-infra_ao.c | 23 +
drivers/clk/mediatek/clk-mt8192-msdc.c | 21 -
drivers/clk/mediatek/clk-mt8192.c | 29 +
drivers/clk/mediatek/clk-mt8195-infra_ao.c | 24 +
drivers/clk/mediatek/clk-mtk.c | 7 +
drivers/clk/mediatek/clk-mtk.h | 9 +-
drivers/clk/mediatek/reset.c | 198 +-
drivers/clk/mediatek/reset.h | 82 +
drivers/clk/meson/axg-audio.c | 36 +-
drivers/clk/mmp/clk-apbc.c | 5 +-
drivers/clk/mmp/clk-apmu.c | 5 +-
drivers/clk/mmp/clk-frac.c | 5 +-
drivers/clk/mmp/clk-gate.c | 5 +-
drivers/clk/mmp/clk-mix.c | 5 +-
drivers/clk/mmp/clk-mmp2.c | 5 +-
drivers/clk/mmp/clk-of-mmp2.c | 5 +-
drivers/clk/mmp/clk-of-pxa168.c | 5 +-
drivers/clk/mmp/clk-of-pxa1928.c | 5 +-
drivers/clk/mmp/clk-of-pxa910.c | 5 +-
drivers/clk/mmp/clk-pxa168.c | 5 +-
drivers/clk/mmp/clk-pxa910.c | 5 +-
drivers/clk/nxp/clk-lpc18xx-ccu.c | 5 +-
drivers/clk/nxp/clk-lpc18xx-cgu.c | 5 +-
drivers/clk/nxp/clk-lpc18xx-creg.c | 5 +-
drivers/clk/qcom/Kconfig | 22 +-
drivers/clk/qcom/Makefile | 3 +
drivers/clk/qcom/camcc-sdm845.c | 4 +
drivers/clk/qcom/camcc-sm8250.c | 16 +-
drivers/clk/qcom/camcc-sm8450.c | 2856 +
drivers/clk/qcom/clk-alpha-pll.c | 144 +-
drivers/clk/qcom/clk-alpha-pll.h | 11 +-
drivers/clk/qcom/clk-hfpll.c | 15 +-
drivers/clk/qcom/clk-krait.c | 23 +-
drivers/clk/qcom/clk-krait.h | 1 +
drivers/clk/qcom/clk-rcg2.c | 16 +-
drivers/clk/qcom/clk-regmap-phy-mux.c | 62 +
drivers/clk/qcom/clk-regmap-phy-mux.h | 33 +
drivers/clk/qcom/clk-rpm.c | 24 +-
drivers/clk/qcom/clk-rpmh.c | 5 +
drivers/clk/qcom/dispcc-sm8250.c | 64 +-
drivers/clk/qcom/gcc-ipq8074.c | 104 +-
drivers/clk/qcom/gcc-msm8916.c | 35 +
drivers/clk/qcom/gcc-msm8939.c | 47 +-
drivers/clk/qcom/gcc-msm8960.c | 6 +-
drivers/clk/qcom/gcc-msm8994.c | 8 +-
drivers/clk/qcom/gcc-sc7280.c | 49 +-
drivers/clk/qcom/gcc-sc8280xp.c | 142 +-
drivers/clk/qcom/gcc-sm6350.c | 2 +-
drivers/clk/qcom/gcc-sm8450.c | 49 +-
drivers/clk/qcom/gdsc.c | 36 +-
drivers/clk/qcom/gdsc.h | 4 +
drivers/clk/qcom/gpucc-sm8350.c | 637 +
drivers/clk/qcom/krait-cc.c | 8 +
drivers/clk/qcom/mmcc-msm8996.c | 1052 +-
drivers/clk/qcom/videocc-sm8250.c | 4 -
drivers/clk/renesas/clk-r8a73a4.c | 22 +-
drivers/clk/renesas/clk-r8a7740.c | 20 +-
drivers/clk/renesas/clk-r8a7778.c | 31 +-
drivers/clk/renesas/clk-r8a7779.c | 27 +-
drivers/clk/renesas/clk-rz.c | 33 +-
drivers/clk/renesas/clk-sh73a0.c | 26 +-
drivers/clk/renesas/r8a779f0-cpg-mssr.c | 10 +
drivers/clk/renesas/r9a06g032-clocks.c | 32 +-
drivers/clk/renesas/r9a07g043-cpg.c | 32 +
drivers/clk/renesas/r9a07g044-cpg.c | 17 +-
drivers/clk/renesas/r9a09g011-cpg.c | 5 +
drivers/clk/renesas/rcar-gen4-cpg.c | 2 +-
drivers/clk/renesas/rzg2l-cpg.c | 2 +-
drivers/clk/spear/clk-aux-synth.c | 5 +-
drivers/clk/spear/clk-frac-synth.c | 5 +-
drivers/clk/spear/clk-gpt-synth.c | 5 +-
drivers/clk/spear/clk-vco-pll.c | 5 +-
drivers/clk/spear/clk.c | 5 +-
drivers/clk/spear/clk.h | 5 +-
drivers/clk/spear/spear1310_clock.c | 5 +-
drivers/clk/spear/spear1340_clock.c | 5 +-
drivers/clk/spear/spear3xx_clock.c | 5 +-
drivers/clk/spear/spear6xx_clock.c | 5 +-
drivers/clk/stm32/reset-stm32.c | 1 +
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c | 16 +-
drivers/clk/sunxi-ng/ccu-sun50i-h6.c | 16 +-
drivers/clk/sunxi-ng/ccu-sun8i-de2.c | 77 +-
drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 113 +-
drivers/clk/sunxi-ng/ccu-sun8i-r.c | 40 +-
drivers/clk/sunxi-ng/ccu-sun8i-v3s.c | 80 +-
drivers/clk/sunxi/Kconfig | 4 +-
drivers/clk/ti/adpll.c | 11 +-
drivers/clk/ti/apll.c | 10 +-
drivers/clk/ti/autoidle.c | 10 +-
drivers/clk/ti/clk-2xxx.c | 10 +-
drivers/clk/ti/clk-33xx.c | 10 +-
drivers/clk/ti/clk-3xxx.c | 10 +-
drivers/clk/ti/clk-43xx.c | 10 +-
drivers/clk/ti/clk-44xx.c | 210 +-
drivers/clk/ti/clk-54xx.c | 160 +-
drivers/clk/ti/clk-816x.c | 11 +-
drivers/clk/ti/clk-dra7-atl.c | 10 +-
drivers/clk/ti/clk.c | 10 +-
drivers/clk/ti/clkctrl.c | 14 +-
drivers/clk/ti/clkt_dflt.c | 10 +-
drivers/clk/ti/clock.h | 10 +-
drivers/clk/ti/clockdomain.c | 10 +-
drivers/clk/ti/composite.c | 10 +-
drivers/clk/ti/divider.c | 10 +-
drivers/clk/ti/dpll.c | 10 +-
drivers/clk/ti/fapll.c | 11 +-
drivers/clk/ti/fixed-factor.c | 10 +-
drivers/clk/ti/gate.c | 10 +-
drivers/clk/ti/interface.c | 10 +-
drivers/clk/ti/mux.c | 10 +-
drivers/clk/x86/Makefile | 4 +-
drivers/clocksource/Kconfig | 19 +-
drivers/clocksource/Makefile | 3 +-
drivers/clocksource/hyperv_timer.c | 1 -
drivers/clocksource/sh_cmt.c | 8 +
drivers/clocksource/timer-mediatek.c | 114 +
drivers/clocksource/timer-microchip-pit64b.c | 64 +-
drivers/clocksource/timer-riscv.c | 40 +-
drivers/clocksource/timer-sun4i.c | 2 +-
drivers/clocksource/timer-sun5i.c | 2 +-
drivers/clocksource/timer-tegra186.c | 514 +
drivers/clocksource/timer-ti-dm.c | 123 +
drivers/comedi/drivers/comedi_isadma.c | 2 +-
drivers/comedi/drivers/vmk80xx.c | 2 +-
drivers/counter/104-quad-8.c | 203 +-
drivers/cpufreq/Kconfig | 2 +-
drivers/cpufreq/acpi-cpufreq.c | 4 +
drivers/cpufreq/amd-pstate.c | 24 +
drivers/cpufreq/cpufreq-dt-platdev.c | 1 +
drivers/cpufreq/cpufreq-dt.c | 19 +-
drivers/cpufreq/cpufreq.c | 43 +-
drivers/cpufreq/cpufreq_ondemand.c | 13 +-
drivers/cpufreq/imx-cpufreq-dt.c | 12 +-
drivers/cpufreq/mediatek-cpufreq-hw.c | 7 +-
drivers/cpufreq/mediatek-cpufreq.c | 9 +-
drivers/cpufreq/mvebu-cpufreq.c | 5 +-
drivers/cpufreq/pmac32-cpufreq.c | 4 +
drivers/cpufreq/qcom-cpufreq-hw.c | 20 +-
drivers/cpufreq/qcom-cpufreq-nvmem.c | 109 +-
drivers/cpufreq/qoriq-cpufreq.c | 1 +
drivers/cpufreq/scmi-cpufreq.c | 15 +-
drivers/cpufreq/scpi-cpufreq.c | 10 +-
drivers/cpufreq/sti-cpufreq.c | 27 +-
drivers/cpufreq/sun50i-cpufreq-nvmem.c | 31 +-
drivers/cpufreq/tegra194-cpufreq.c | 4 +-
drivers/cpufreq/tegra20-cpufreq.c | 12 +-
drivers/cpufreq/ti-cpufreq.c | 42 +-
drivers/cpuidle/Kconfig.arm | 3 +-
drivers/cpuidle/cpuidle-at91.c | 5 +-
drivers/cpuidle/cpuidle-kirkwood.c | 5 +-
drivers/cpuidle/cpuidle-psci.c | 8 +-
drivers/cpuidle/cpuidle-riscv-sbi.c | 8 +-
drivers/cpuidle/cpuidle.c | 15 +-
drivers/cpuidle/governors/haltpoll.c | 3 +
drivers/crypto/Kconfig | 115 -
.../crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c | 1 +
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c | 16 +-
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c | 10 +-
drivers/crypto/amcc/crypto4xx_core.c | 40 +-
drivers/crypto/atmel-aes.c | 3 +-
drivers/crypto/atmel-ecc.c | 12 +-
drivers/crypto/atmel-sha.c | 5 +-
drivers/crypto/atmel-tdes.c | 5 +-
drivers/crypto/caam/caamalg_qi2.c | 7 +-
drivers/crypto/caam/caamhash_desc.c | 2 +-
drivers/crypto/caam/qi.c | 6 +-
drivers/crypto/cavium/cpt/cpt_hw_types.h | 2 +-
drivers/crypto/ccp/ccp-dev.h | 2 +-
drivers/crypto/ccp/sev-dev.c | 12 +-
drivers/crypto/ccp/sp-pci.c | 7 +
drivers/crypto/ccp/sp-platform.c | 12 +-
drivers/crypto/ccree/cc_driver.c | 13 +-
drivers/crypto/ccree/cc_pm.c | 2 +
drivers/crypto/hisilicon/hpre/hpre_crypto.c | 2 +-
drivers/crypto/hisilicon/qm.c | 203 +-
drivers/crypto/hisilicon/sec/sec_algs.c | 14 +-
drivers/crypto/hisilicon/sec/sec_drv.c | 2 +-
drivers/crypto/hisilicon/sec/sec_drv.h | 2 +-
drivers/crypto/hisilicon/sec2/sec.h | 6 +-
drivers/crypto/hisilicon/sec2/sec_crypto.c | 26 +-
drivers/crypto/hisilicon/sec2/sec_crypto.h | 1 +
drivers/crypto/hisilicon/sec2/sec_main.c | 39 +-
drivers/crypto/hisilicon/trng/trng.c | 2 +-
drivers/crypto/hisilicon/zip/zip_crypto.c | 10 +-
drivers/crypto/hisilicon/zip/zip_main.c | 17 +-
drivers/crypto/inside-secure/safexcel.c | 2 +
drivers/crypto/inside-secure/safexcel.h | 18 +-
drivers/crypto/keembay/keembay-ocs-ecc.c | 2 -
.../crypto/marvell/octeontx2/otx2_cpt_devlink.c | 40 +-
.../crypto/marvell/octeontx2/otx2_cptpf_ucode.c | 17 +-
.../crypto/marvell/octeontx2/otx2_cptpf_ucode.h | 3 +
drivers/crypto/nx/nx-common-powernv.c | 2 +-
drivers/crypto/nx/nx-common-pseries.c | 5 +-
drivers/crypto/omap-aes.c | 4 -
drivers/crypto/omap-des.c | 4 -
drivers/crypto/omap-sham.c | 3 +-
drivers/crypto/qat/Kconfig | 14 +-
drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c | 1 +
drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.h | 1 +
drivers/crypto/qat/qat_4xxx/adf_drv.c | 6 +-
drivers/crypto/qat/qat_common/Makefile | 1 +
drivers/crypto/qat/qat_common/adf_accel_devices.h | 1 +
drivers/crypto/qat/qat_common/adf_cfg.c | 41 +-
drivers/crypto/qat/qat_common/adf_common_drv.h | 8 +-
drivers/crypto/qat/qat_common/adf_init.c | 26 +
drivers/crypto/qat/qat_common/adf_sriov.c | 28 +-
drivers/crypto/qat/qat_common/adf_sysfs.c | 191 +
drivers/crypto/qat/qat_common/qat_algs.c | 4 +-
drivers/crypto/qat/qat_common/qat_asym_algs.c | 4 +-
drivers/crypto/s5p-sss.c | 3 -
drivers/crypto/sa2ul.c | 25 +-
drivers/crypto/sa2ul.h | 1 +
drivers/crypto/ux500/hash/hash_core.c | 2 +-
drivers/crypto/vmx/ghash.c | 1 +
drivers/crypto/vmx/ghashp8-ppc.pl | 2 +-
drivers/cxl/Kconfig | 9 +
drivers/cxl/acpi.c | 243 +-
drivers/cxl/core/Makefile | 1 +
drivers/cxl/core/core.h | 51 +-
drivers/cxl/core/hdm.c | 691 +-
drivers/cxl/core/mbox.c | 101 +-
drivers/cxl/core/memdev.c | 4 +-
drivers/cxl/core/pci.c | 181 +-
drivers/cxl/core/pmem.c | 4 +-
drivers/cxl/core/port.c | 740 +-
drivers/cxl/core/region.c | 1896 +
drivers/cxl/cxl.h | 313 +-
drivers/cxl/cxlmem.h | 50 +-
drivers/cxl/cxlpci.h | 1 +
drivers/cxl/mem.c | 46 +-
drivers/cxl/pci.c | 46 +-
drivers/cxl/pmem.c | 265 +-
drivers/cxl/port.c | 53 +
drivers/dax/super.c | 67 +-
drivers/devfreq/Kconfig | 10 +
drivers/devfreq/Makefile | 1 +
drivers/devfreq/devfreq.c | 80 +-
drivers/devfreq/event/exynos-ppmu.c | 8 +-
drivers/devfreq/exynos-bus.c | 27 +-
drivers/devfreq/governor_passive.c | 62 +-
drivers/devfreq/imx-bus.c | 3 +-
drivers/devfreq/mtk-cci-devfreq.c | 440 +
drivers/devfreq/tegra30-devfreq.c | 26 +-
drivers/dma-buf/Kconfig | 6 +-
drivers/dma-buf/Makefile | 2 +-
drivers/dma-buf/dma-buf.c | 111 +-
drivers/dma-buf/dma-fence-chain.c | 4 +-
drivers/dma-buf/dma-fence-unwrap.c | 163 +
drivers/dma-buf/st-dma-fence-unwrap.c | 157 +-
drivers/dma-buf/sync_file.c | 119 +-
drivers/dma-buf/udmabuf.c | 23 +-
drivers/dma/Kconfig | 8 +
drivers/dma/Makefile | 1 +
drivers/dma/altera-msgdma.c | 4 +-
drivers/dma/amba-pl08x.c | 2 +-
drivers/dma/apple-admac.c | 818 +
drivers/dma/at_xdmac.c | 7 +-
drivers/dma/bcm-sba-raid.c | 14 +-
drivers/dma/bestcomm/ata.c | 7 +-
drivers/dma/bestcomm/bestcomm.c | 7 +-
drivers/dma/bestcomm/fec.c | 7 +-
drivers/dma/bestcomm/sram.c | 7 +-
drivers/dma/dma-axi-dmac.c | 16 +
drivers/dma/dma-jz4780.c | 2 +-
drivers/dma/dmaengine.c | 7 -
drivers/dma/dmatest.c | 58 +-
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 19 +-
drivers/dma/dw-edma/dw-edma-core.c | 141 +-
drivers/dma/dw-edma/dw-edma-core.h | 31 +-
drivers/dma/dw-edma/dw-edma-pcie.c | 83 +-
drivers/dma/dw-edma/dw-edma-v0-core.c | 49 +-
drivers/dma/dw-edma/dw-edma-v0-core.h | 4 +-
drivers/dma/dw-edma/dw-edma-v0-debugfs.c | 18 +-
drivers/dma/dw-edma/dw-edma-v0-debugfs.h | 8 +-
drivers/dma/dw/core.c | 3 -
drivers/dma/dw/rzn1-dmamux.c | 3 +
drivers/dma/ep93xx_dma.c | 2 +-
drivers/dma/fsl-edma-common.c | 3 -
drivers/dma/idxd/device.c | 5 +-
drivers/dma/idxd/init.c | 13 +-
drivers/dma/imx-dma.c | 2 +-
drivers/dma/imx-sdma.c | 42 +-
drivers/dma/lgm/lgm-dma.c | 3 +-
drivers/dma/mediatek/mtk-cqdma.c | 2 +-
drivers/dma/mediatek/mtk-hsdma.c | 4 +-
drivers/dma/moxart-dma.c | 5 +-
drivers/dma/mv_xor_v2.c | 2 +-
drivers/dma/owl-dma.c | 2 +-
drivers/dma/pl330.c | 2 +-
drivers/dma/ppc4xx/adma.h | 5 +-
drivers/dma/ppc4xx/dma.h | 5 +-
drivers/dma/ppc4xx/xor.h | 5 +-
drivers/dma/qcom/bam_dma.c | 39 +-
drivers/dma/s3c24xx-dma.c | 2 +-
drivers/dma/sf-pdma/sf-pdma.c | 44 +-
drivers/dma/sh/rz-dmac.c | 17 +
drivers/dma/sprd-dma.c | 5 +-
drivers/dma/ste_dma40.c | 2 +-
drivers/dma/stm32-mdma.c | 5 -
drivers/dma/sun4i-dma.c | 32 +-
drivers/dma/tegra186-gpc-dma.c | 26 +-
drivers/dma/ti/dma-crossbar.c | 5 +
drivers/dma/ti/edma.c | 10 +-
drivers/dma/ti/k3-psil-j721s2.c | 8 +
drivers/dma/xilinx/xilinx_dma.c | 122 -
drivers/dma/xilinx/xilinx_dpdma.c | 6 +-
drivers/edac/Kconfig | 1 +
drivers/edac/edac_pci.c | 7 +-
drivers/edac/fsl_ddr_edac.c | 6 +-
drivers/edac/fsl_ddr_edac.h | 7 +-
drivers/edac/ghes_edac.c | 11 +-
drivers/edac/mpc85xx_edac.c | 2 +
drivers/edac/mpc85xx_edac.h | 7 +-
drivers/edac/pnd2_edac.c | 62 +-
drivers/edac/ppc4xx_edac.c | 1 +
drivers/edac/synopsys_edac.c | 44 +-
drivers/extcon/extcon-fsa9480.c | 6 -
drivers/extcon/extcon-palmas.c | 2 +-
drivers/extcon/extcon-rt8973a.c | 1 -
drivers/extcon/extcon-sm5502.c | 2 -
drivers/extcon/extcon.c | 12 +-
drivers/firewire/core-cdev.c | 2 +-
drivers/firewire/core-device.c | 6 +-
drivers/firewire/net.c | 14 +-
drivers/firmware/arm_scmi/Kconfig | 12 +
drivers/firmware/arm_scmi/Makefile | 3 +-
drivers/firmware/arm_scmi/base.c | 24 +-
drivers/firmware/arm_scmi/bus.c | 6 +-
drivers/firmware/arm_scmi/clock.c | 33 +-
drivers/firmware/arm_scmi/driver.c | 282 +-
drivers/firmware/arm_scmi/optee.c | 7 +-
drivers/firmware/arm_scmi/perf.c | 249 +-
drivers/firmware/arm_scmi/power.c | 2 +-
drivers/firmware/arm_scmi/powercap.c | 866 +
drivers/firmware/arm_scmi/protocols.h | 28 +-
drivers/firmware/arm_scmi/reset.c | 2 +-
drivers/firmware/arm_scmi/scmi_power_control.c | 362 +
drivers/firmware/arm_scmi/sensors.c | 68 +-
drivers/firmware/arm_scmi/system.c | 17 +-
drivers/firmware/arm_scmi/voltage.c | 15 +-
drivers/firmware/arm_scpi.c | 61 +-
drivers/firmware/cirrus/cs_dsp.c | 107 +
drivers/firmware/efi/Kconfig | 14 +-
drivers/firmware/efi/Makefile | 1 -
drivers/firmware/efi/efi-init.c | 1 +
drivers/firmware/efi/efi-pstore.c | 377 +-
drivers/firmware/efi/efi.c | 127 +-
drivers/firmware/efi/efibc.c | 76 +-
drivers/firmware/efi/efivars.c | 671 -
drivers/firmware/efi/libstub/riscv-stub.c | 13 +-
drivers/firmware/efi/memmap.c | 5 +-
drivers/firmware/efi/reboot.c | 21 +-
drivers/firmware/efi/sysfb_efi.c | 2 -
drivers/firmware/efi/vars.c | 1219 +-
drivers/firmware/mtk-adsp-ipc.c | 36 +-
drivers/firmware/qcom_scm-legacy.c | 4 +
drivers/firmware/qcom_scm.c | 71 +-
drivers/firmware/stratix10-rsu.c | 129 +-
drivers/firmware/stratix10-svc.c | 201 +-
drivers/firmware/tegra/bpmp-debugfs.c | 10 +-
drivers/firmware/tegra/bpmp.c | 6 +-
drivers/firmware/xilinx/zynqmp.c | 16 +-
drivers/fpga/Kconfig | 20 +
drivers/fpga/Makefile | 4 +
drivers/fpga/altera-pr-ip-core.c | 2 +-
drivers/fpga/dfl.c | 4 +-
drivers/fpga/fpga-bridge.c | 6 +-
drivers/fpga/fpga-mgr.c | 229 +-
drivers/fpga/fpga-region.c | 6 +-
drivers/fpga/intel-m10-bmc-sec-update.c | 625 +
drivers/fpga/microchip-spi.c | 398 +
drivers/gpio/Kconfig | 22 +-
drivers/gpio/Makefile | 2 +-
drivers/gpio/gpio-104-dio-48e.c | 249 +-
drivers/gpio/gpio-104-idi-48.c | 157 +-
drivers/gpio/gpio-104-idio-16.c | 60 +-
drivers/gpio/gpio-74xx-mmio.c | 19 +-
drivers/gpio/gpio-adnp.c | 19 +-
drivers/gpio/gpio-adp5588.c | 26 +-
drivers/gpio/gpio-bcm-kona.c | 10 +-
drivers/gpio/gpio-brcmstb.c | 23 +-
drivers/gpio/gpio-crystalcove.c | 70 +-
drivers/gpio/gpio-davinci.c | 83 +
drivers/gpio/gpio-dln2.c | 23 +-
drivers/gpio/gpio-dwapb.c | 7 +-
drivers/gpio/gpio-gpio-mm.c | 202 +-
drivers/gpio/gpio-grgpio.c | 14 +-
drivers/gpio/gpio-i8255.c | 287 +
drivers/gpio/gpio-i8255.h | 46 +
drivers/gpio/gpio-lp3943.c | 16 +-
drivers/gpio/gpio-lp873x.c | 10 +-
drivers/gpio/gpio-lp87565.c | 10 +-
drivers/gpio/gpio-merrifield.c | 22 +-
drivers/gpio/gpio-mpc8xxx.c | 5 +-
drivers/gpio/gpio-msc313.c | 15 +-
drivers/gpio/gpio-mvebu.c | 5 +-
drivers/gpio/gpio-mxs.c | 2 +-
drivers/gpio/gpio-pca953x.c | 22 +-
drivers/gpio/gpio-pca9570.c | 2 +
drivers/gpio/gpio-pch.c | 43 +-
drivers/gpio/gpio-pisosr.c | 10 +-
drivers/gpio/gpio-realtek-otto.c | 10 +-
drivers/gpio/gpio-rockchip.c | 3 +-
drivers/gpio/gpio-sch.c | 35 +-
drivers/gpio/gpio-sim.c | 16 +-
drivers/gpio/gpio-spear-spics.c | 5 +-
drivers/gpio/gpio-tegra.c | 15 +-
drivers/gpio/gpio-tegra186.c | 15 +-
drivers/gpio/gpio-thunderx.c | 17 +-
drivers/gpio/gpio-tpic2810.c | 10 +-
drivers/gpio/gpio-ts4800.c | 5 +-
drivers/gpio/gpio-twl4030.c | 18 +-
drivers/gpio/gpio-ucb1400.c | 20 -
drivers/gpio/gpio-vf610.c | 1 +
drivers/gpio/gpio-visconti.c | 15 +-
drivers/gpio/gpio-vr41xx.c | 543 -
drivers/gpio/gpio-wcove.c | 10 +-
drivers/gpio/gpio-winbond.c | 7 +-
drivers/gpio/gpio-ws16c48.c | 120 +-
drivers/gpio/gpio-xgs-iproc.c | 6 +-
drivers/gpio/gpio-xilinx.c | 4 +-
drivers/gpio/gpiolib-acpi.c | 3 +
drivers/gpio/gpiolib-cdev.c | 294 +-
drivers/gpio/gpiolib-devres.c | 32 -
drivers/gpio/gpiolib-of.c | 13 +-
drivers/gpio/gpiolib.c | 59 +-
drivers/gpu/drm/Kconfig | 19 +
drivers/gpu/drm/Makefile | 4 +-
drivers/gpu/drm/amd/amdgpu/Kconfig | 5 +-
drivers/gpu/drm/amd/amdgpu/Makefile | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 23 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 346 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 6 -
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 27 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 21 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c | 9 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 615 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 16 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 67 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 163 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 288 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 28 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 76 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_display.h | 2 -
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 31 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 57 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 72 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_imu.h | 7 +
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 41 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_job.h | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 62 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 223 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 67 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes_ctx.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 5 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 37 +
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 5 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 84 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h | 97 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_reset.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 12 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.h | 10 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 20 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 10 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 50 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 20 +
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h | 10 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 110 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 23 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 394 +-
.../rootgf119.c => amd/amdgpu/amdgpu_vram_mgr.h} | 67 +-
drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | 14 -
drivers/gpu/drm/amd/amdgpu/clearstate_gfx11.h | 307 +-
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 3 +-
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 3 +-
drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 5 +-
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 5 +-
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 176 +-
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 289 +-
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 8 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c | 32 +-
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 25 +-
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c | 45 +-
drivers/gpu/drm/amd/amdgpu/imu_v11_0.c | 48 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.h | 1 +
drivers/gpu/drm/amd/amdgpu/mes_v10_1.c | 119 +-
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 234 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_1.c | 555 +
.../disp/hdagv100.c => amd/amdgpu/mmhub_v3_0_1.h} | 16 +-
drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c | 12 +-
drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c | 12 +-
drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c | 12 +-
drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c | 23 +-
drivers/gpu/drm/amd/amdgpu/nbio_v2_3.h | 1 -
drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c | 126 +-
drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c | 21 -
drivers/gpu/drm/amd/amdgpu/nbio_v7_4.h | 1 -
drivers/gpu/drm/amd/amdgpu/nbio_v7_7.c | 29 +-
drivers/gpu/drm/amd/amdgpu/nv.c | 1 +
drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h | 2 +
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 166 +
drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.c | 387 +
.../disp/changv100.c => amd/amdgpu/psp_v13_0_4.h} | 20 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 79 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 109 +-
drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c | 131 +-
drivers/gpu/drm/amd/amdgpu/soc21.c | 36 +-
drivers/gpu/drm/amd/amdgpu/umc_v6_7.c | 50 +-
drivers/gpu/drm/amd/amdgpu/umc_v8_10.c | 357 +
drivers/gpu/drm/amd/amdgpu/umc_v8_10.h | 70 +
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 17 +-
drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 667 +-
drivers/gpu/drm/amd/amdkfd/Kconfig | 14 +
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 83 +-
drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 4 +-
drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c | 2 +
drivers/gpu/drm/amd/amdkfd/kfd_device.c | 26 +-
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 23 +-
drivers/gpu/drm/amd/amdkfd/kfd_events.c | 5 +-
drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c | 4 +-
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 95 +-
drivers/gpu/drm/amd/amdkfd/kfd_migrate.h | 5 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c | 12 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c | 2 +
drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 5 +-
drivers/gpu/drm/amd/amdkfd/kfd_process.c | 48 +-
.../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 32 +-
drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c | 134 +-
drivers/gpu/drm/amd/amdkfd/kfd_smi_events.h | 21 +-
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 207 +-
drivers/gpu/drm/amd/amdkfd/kfd_svm.h | 5 +-
drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 323 +-
drivers/gpu/drm/amd/amdkfd/kfd_topology.h | 4 +-
drivers/gpu/drm/amd/display/Kconfig | 2 +-
drivers/gpu/drm/amd/display/amdgpu_dm/Makefile | 8 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3008 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 40 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 464 +
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.h | 51 +
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 243 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.h | 2 -
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c | 38 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 38 +-
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 183 +-
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.h | 6 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 1649 +
.../drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h | 73 +
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c | 21 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 1 +
drivers/gpu/drm/amd/display/dc/Makefile | 7 +-
drivers/gpu/drm/amd/display/dc/basics/vector.c | 2 -
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c | 982 +-
.../display/dc/bios/bios_parser_types_internal2.h | 1 +
.../gpu/drm/amd/display/dc/bios/command_table.c | 4 +-
.../amd/display/dc/bios/command_table_helper2.c | 3 +
drivers/gpu/drm/amd/display/dc/clk_mgr/Makefile | 36 +-
drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 45 +-
.../amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c | 23 +-
.../amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.c | 4 +-
.../drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 234 +-
.../drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.h | 7 +
.../dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c | 18 +-
.../amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c | 60 +-
.../amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.h | 60 +
.../dc/clk_mgr/dcn30/dcn30_clk_mgr_smu_msg.c | 11 +-
.../drm/amd/display/dc/clk_mgr/dcn301/dcn301_smu.c | 17 +
.../drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c | 85 +-
.../drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.h | 3 +
.../amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c | 14 +-
.../amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.h | 2 +
.../drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c | 14 +-
.../amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c | 752 +
.../amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.h | 57 +
.../drm/amd/display/dc/clk_mgr/dcn314/dcn314_smu.c | 391 +
.../drm/amd/display/dc/clk_mgr/dcn314/dcn314_smu.h | 79 +
.../amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c | 19 +-
.../drm/amd/display/dc/clk_mgr/dcn315/dcn315_smu.c | 14 +-
.../amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c | 6 +-
.../drm/amd/display/dc/clk_mgr/dcn316/dcn316_smu.c | 14 +-
.../gpu/drm/amd/display/dc/clk_mgr/dcn32/dalsmc.h | 65 +
.../amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c | 798 +
.../display/dc/clk_mgr/dcn32/dcn32_clk_mgr.h} | 27 +-
.../dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.c | 141 +
.../dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.h | 47 +
.../dc/clk_mgr/dcn32/dcn32_smu13_driver_if.h | 63 +
.../amd/display/dc/clk_mgr/dcn32/smu13_driver_if.h | 108 +
drivers/gpu/drm/amd/display/dc/core/dc.c | 679 +-
drivers/gpu/drm/amd/display/dc/core/dc_debug.c | 4 +
.../gpu/drm/amd/display/dc/core/dc_hw_sequencer.c | 2 -
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 176 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 9 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 517 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_dpia.c | 96 +-
.../gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c | 77 +-
drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 348 +-
drivers/gpu/drm/amd/display/dc/core/dc_sink.c | 2 -
drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 13 +-
drivers/gpu/drm/amd/display/dc/core/dc_surface.c | 2 -
drivers/gpu/drm/amd/display/dc/dc.h | 76 +-
drivers/gpu/drm/amd/display/dc/dc_bios_types.h | 5 +
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 469 +
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.h | 10 +
drivers/gpu/drm/amd/display/dc/dc_hw_types.h | 3 +
drivers/gpu/drm/amd/display/dc/dc_link.h | 10 +
drivers/gpu/drm/amd/display/dc/dc_stream.h | 60 +-
drivers/gpu/drm/amd/display/dc/dc_types.h | 31 +-
drivers/gpu/drm/amd/display/dc/dce/dce_abm.h | 45 +
drivers/gpu/drm/amd/display/dc/dce/dce_audio.c | 15 +-
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c | 8 +-
.../gpu/drm/amd/display/dc/dce/dce_clock_source.c | 45 +-
.../gpu/drm/amd/display/dc/dce/dce_clock_source.h | 20 +-
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c | 3 -
drivers/gpu/drm/amd/display/dc/dce/dce_i2c_sw.c | 2 -
drivers/gpu/drm/amd/display/dc/dce/dce_ipp.c | 2 -
.../gpu/drm/amd/display/dc/dce/dce_link_encoder.c | 3 -
drivers/gpu/drm/amd/display/dc/dce/dce_opp.c | 2 -
.../drm/amd/display/dc/dce/dce_stream_encoder.c | 5 +-
.../drm/amd/display/dc/dce/dce_stream_encoder.h | 14 +-
.../gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c | 2 +
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c | 64 +
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.h | 2 +
.../drm/amd/display/dc/dce100/dce100_resource.c | 3 +-
.../drm/amd/display/dc/dce110/dce110_compressor.c | 3 -
.../amd/display/dc/dce110/dce110_hw_sequencer.c | 46 +-
.../amd/display/dc/dce110/dce110_opp_regamma_v.c | 2 -
.../drm/amd/display/dc/dce110/dce110_resource.c | 3 +-
.../drm/amd/display/dc/dce110/dce110_transform_v.c | 2 -
.../drm/amd/display/dc/dce112/dce112_compressor.c | 3 -
.../drm/amd/display/dc/dce112/dce112_resource.c | 3 +-
.../drm/amd/display/dc/dce120/dce120_resource.c | 3 +-
.../gpu/drm/amd/display/dc/dce60/dce60_resource.c | 1 +
.../gpu/drm/amd/display/dc/dce80/dce80_resource.c | 3 +-
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c | 2 +
.../gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.c | 2 -
.../gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.h | 33 +
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c | 5 +
.../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 153 +-
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_ipp.c | 2 -
.../drm/amd/display/dc/dcn10/dcn10_link_encoder.c | 3 -
.../drm/amd/display/dc/dcn10/dcn10_link_encoder.h | 6 +
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c | 5 +
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c | 2 -
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c | 1 +
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.h | 5 +
.../gpu/drm/amd/display/dc/dcn10/dcn10_resource.c | 3 +-
.../amd/display/dc/dcn10/dcn10_stream_encoder.c | 23 +-
.../amd/display/dc/dcn10/dcn10_stream_encoder.h | 26 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dccg.h | 34 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dpp.c | 5 +
.../gpu/drm/amd/display/dc/dcn20/dcn20_dpp_cm.c | 68 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.c | 17 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.h | 219 +
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dwb.c | 4 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hubp.c | 5 +
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hubp.h | 25 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 170 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c | 36 +-
.../gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 12 +-
.../gpu/drm/amd/display/dc/dcn20/dcn20_resource.h | 1 +
.../amd/display/dc/dcn20/dcn20_stream_encoder.c | 2 +-
drivers/gpu/drm/amd/display/dc/dcn201/Makefile | 25 -
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dpp.c | 3 +
.../drm/amd/display/dc/dcn201/dcn201_resource.c | 11 +-
.../gpu/drm/amd/display/dc/dcn21/dcn21_resource.c | 3 +-
drivers/gpu/drm/amd/display/dc/dcn30/Makefile | 32 -
.../display/dc/dcn30/dcn30_dio_stream_encoder.c | 36 +-
.../display/dc/dcn30/dcn30_dio_stream_encoder.h | 41 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dpp.c | 90 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dpp.h | 16 +
.../gpu/drm/amd/display/dc/dcn30/dcn30_dpp_cm.c | 25 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c | 81 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.h | 11 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_init.c | 2 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.c | 84 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.h | 251 +
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_optc.c | 21 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_optc.h | 12 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_resource.c | 155 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_resource.h | 3 +
.../drm/amd/display/dc/dcn301/dcn301_resource.c | 1 +
drivers/gpu/drm/amd/display/dc/dcn302/Makefile | 19 -
.../drm/amd/display/dc/dcn302/dcn302_resource.c | 4 +-
.../drm/amd/display/dc/dcn303/dcn303_resource.c | 4 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.c | 116 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.h | 51 +-
.../amd/display/dc/dcn31/dcn31_dio_link_encoder.c | 10 +-
.../amd/display/dc/dcn31/dcn31_dio_link_encoder.h | 28 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubp.c | 2 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hwseq.c | 24 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_optc.c | 3 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_optc.h | 8 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 28 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.h | 1 -
drivers/gpu/drm/amd/display/dc/dcn314/Makefile | 43 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_dccg.c | 283 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_dccg.h | 159 +
.../display/dc/dcn314/dcn314_dio_stream_encoder.c | 462 +
.../display/dc/dcn314/dcn314_dio_stream_encoder.h | 311 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.c | 376 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.h | 42 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_init.c | 159 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_init.h | 34 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_optc.c | 274 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_optc.h | 255 +
.../drm/amd/display/dc/dcn314/dcn314_resource.c | 2361 +
.../drm/amd/display/dc/dcn314/dcn314_resource.h | 43 +
.../drm/amd/display/dc/dcn315/dcn315_resource.c | 13 +-
.../drm/amd/display/dc/dcn316/dcn316_resource.c | 13 +-
drivers/gpu/drm/amd/display/dc/dcn32/Makefile | 20 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c | 308 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.h | 159 +
.../amd/display/dc/dcn32/dcn32_dio_link_encoder.c | 294 +
.../amd/display/dc/dcn32/dcn32_dio_link_encoder.h | 60 +
.../display/dc/dcn32/dcn32_dio_stream_encoder.c | 475 +
.../display/dc/dcn32/dcn32_dio_stream_encoder.h | 267 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dpp.c | 164 +
.../hw_translate_diag.c => dcn32/dcn32_dpp.h} | 27 +-
.../display/dc/dcn32/dcn32_hpo_dp_link_encoder.c | 90 +
.../display/dc/dcn32/dcn32_hpo_dp_link_encoder.h | 63 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_hubbub.c | 964 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_hubbub.h | 174 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubp.c | 186 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubp.h | 72 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c | 1188 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.h | 87 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.c | 158 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.h | 33 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_mmhubbub.c | 239 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_mmhubbub.h | 225 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mpc.c | 1044 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mpc.h | 322 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_optc.c | 328 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_optc.h | 254 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_resource.c | 2479 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_resource.h | 112 +
.../amd/display/dc/dcn32/dcn32_resource_helpers.c | 212 +
drivers/gpu/drm/amd/display/dc/dcn321/Makefile | 17 +
.../display/dc/dcn321/dcn321_dio_link_encoder.c | 199 +
.../display/dc/dcn321/dcn321_dio_link_encoder.h | 42 +
.../drm/amd/display/dc/dcn321/dcn321_resource.c | 1972 +
.../drm/amd/display/dc/dcn321/dcn321_resource.h | 45 +
drivers/gpu/drm/amd/display/dc/dml/Makefile | 11 +
drivers/gpu/drm/amd/display/dc/dml/dc_features.h | 2 +-
.../gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 438 +-
.../gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.h | 6 +
.../gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.c | 146 +-
.../gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.h | 9 +
.../amd/display/dc/dml/dcn30/display_mode_vba_30.c | 57 +-
.../amd/display/dc/dml/dcn30/display_mode_vba_30.h | 11 +
.../display/dc/dml/dcn30/display_rq_dlg_calc_30.c | 93 +-
.../gpu/drm/amd/display/dc/dml/dcn301/dcn301_fpu.c | 114 +-
.../gpu/drm/amd/display/dc/dml/dcn303/dcn303_fpu.c | 15 +-
.../gpu/drm/amd/display/dc/dml/dcn31/dcn31_fpu.c | 93 +-
.../gpu/drm/amd/display/dc/dml/dcn31/dcn31_fpu.h | 5 +
.../amd/display/dc/dml/dcn31/display_mode_vba_31.c | 109 +-
.../display/dc/dml/dcn31/display_rq_dlg_calc_31.c | 126 +-
.../display/dc/dml/dcn314/display_mode_vba_314.c | 7420 +
.../display/dc/dml/dcn314/display_mode_vba_314.h | 44 +
.../dc/dml/dcn314/display_rq_dlg_calc_314.c | 1733 +
.../dc/dml/dcn314/display_rq_dlg_calc_314.h | 70 +
.../gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 2291 +
.../gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.h | 74 +
.../amd/display/dc/dml/dcn32/display_mode_vba_32.c | 3778 +
.../dcn32/display_mode_vba_32.h} | 65 +-
.../dc/dml/dcn32/display_mode_vba_util_32.c | 6175 +
.../dc/dml/dcn32/display_mode_vba_util_32.h | 1188 +
.../display/dc/dml/dcn32/display_rq_dlg_calc_32.c | 615 +
.../display/dc/dml/dcn32/display_rq_dlg_calc_32.h | 70 +
.../gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.c | 684 +
.../gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.h | 38 +
.../drm/amd/display/dc/dml/display_mode_enums.h | 88 +-
.../gpu/drm/amd/display/dc/dml/display_mode_lib.c | 12 +
.../gpu/drm/amd/display/dc/dml/display_mode_lib.h | 15 +
.../drm/amd/display/dc/dml/display_mode_structs.h | 142 +
.../gpu/drm/amd/display/dc/dml/display_mode_vba.c | 185 +-
.../gpu/drm/amd/display/dc/dml/display_mode_vba.h | 392 +-
drivers/gpu/drm/amd/display/dc/dml/dml_wrapper.c | 73 +-
drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c | 4 +-
drivers/gpu/drm/amd/display/dc/gpio/Makefile | 8 +-
.../amd/display/dc/gpio/dcn20/hw_translate_dcn20.c | 17 +-
.../amd/display/dc/gpio/dcn21/hw_translate_dcn21.c | 17 +-
.../amd/display/dc/gpio/dcn30/hw_translate_dcn30.c | 19 +-
.../amd/display/dc/gpio/dcn32/hw_factory_dcn32.c | 255 +
.../hw_factory_diag.h => dcn32/hw_factory_dcn32.h} | 13 +-
.../amd/display/dc/gpio/dcn32/hw_translate_dcn32.c | 349 +
.../hw_translate_dcn32.h} | 11 +-
drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c | 2 -
drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c | 2 -
drivers/gpu/drm/amd/display/dc/gpio/hw_ddc.c | 3 -
drivers/gpu/drm/amd/display/dc/gpio/hw_factory.c | 19 +-
drivers/gpu/drm/amd/display/dc/gpio/hw_hpd.c | 2 -
drivers/gpu/drm/amd/display/dc/gpio/hw_translate.c | 14 +-
drivers/gpu/drm/amd/display/dc/inc/clock_source.h | 7 +-
drivers/gpu/drm/amd/display/dc/inc/core_status.h | 3 +-
drivers/gpu/drm/amd/display/dc/inc/core_types.h | 47 +
drivers/gpu/drm/amd/display/dc/inc/dc_link_dp.h | 8 +-
drivers/gpu/drm/amd/display/dc/inc/hw/clk_mgr.h | 8 +-
.../drm/amd/display/dc/inc/hw/clk_mgr_internal.h | 45 +-
drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h | 48 +-
drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h | 3 +
drivers/gpu/drm/amd/display/dc/inc/hw/dwb.h | 6 -
drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h | 8 +
.../gpu/drm/amd/display/dc/inc/hw/link_encoder.h | 23 +-
drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h | 2 +
drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h | 5 +
.../gpu/drm/amd/display/dc/inc/hw/stream_encoder.h | 11 +
.../drm/amd/display/dc/inc/hw/timing_generator.h | 10 +-
drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h | 9 +
.../drm/amd/display/dc/inc/hw_sequencer_private.h | 13 +
drivers/gpu/drm/amd/display/dc/inc/link_enc_cfg.h | 12 +
drivers/gpu/drm/amd/display/dc/inc/link_hwss.h | 6 +-
drivers/gpu/drm/amd/display/dc/inc/resource.h | 7 +
drivers/gpu/drm/amd/display/dc/irq/Makefile | 18 +
.../amd/display/dc/irq/dce110/irq_service_dce110.c | 2 -
.../amd/display/dc/irq/dce120/irq_service_dce120.c | 2 -
.../amd/display/dc/irq/dce80/irq_service_dce80.c | 2 -
.../amd/display/dc/irq/dcn10/irq_service_dcn10.c | 2 -
.../amd/display/dc/irq/dcn30/irq_service_dcn30.c | 14 +-
.../amd/display/dc/irq/dcn303/irq_service_dcn303.c | 19 +
.../amd/display/dc/irq/dcn314/irq_service_dcn314.c | 434 +
.../display/dc/irq/dcn314/irq_service_dcn314.h} | 23 +-
.../amd/display/dc/irq/dcn32/irq_service_dcn32.c | 432 +
.../amd/display/dc/irq/dcn32/irq_service_dcn32.h | 35 +
drivers/gpu/drm/amd/display/dc/irq/irq_service.c | 2 -
.../gpu/drm/amd/display/dc/link/link_hwss_dio.c | 7 +
.../gpu/drm/amd/display/dc/link/link_hwss_hpo_dp.c | 23 +-
drivers/gpu/drm/amd/display/dc/os_types.h | 3 +-
.../amd/display/dc/virtual/virtual_link_encoder.c | 2 -
.../display/dc/virtual/virtual_stream_encoder.c | 2 -
drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 9 +
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 396 +-
.../drm/amd/display/dmub/inc/dmub_subvp_state.h | 183 +
drivers/gpu/drm/amd/display/dmub/src/Makefile | 1 +
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.c | 11 +-
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.h | 3 +-
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.c | 493 +
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.h | 256 +
drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c | 52 +-
.../drm/amd/display/include/bios_parser_types.h | 11 +
drivers/gpu/drm/amd/display/include/dal_asic_id.h | 15 +-
drivers/gpu/drm/amd/display/include/dal_types.h | 3 +
.../drm/amd/display/include/ddc_service_types.h | 6 +
drivers/gpu/drm/amd/display/include/fixed31_32.h | 2 +-
.../drm/amd/display/include/link_service_types.h | 3 +-
.../gpu/drm/amd/display/include/set_mode_types.h | 8 +-
.../drm/amd/display/modules/color/color_gamma.c | 3 -
.../drm/amd/display/modules/freesync/freesync.c | 7 +-
.../amd/display/modules/hdcp/hdcp2_transition.c | 2 +-
.../gpu/drm/amd/display/modules/hdcp/hdcp_psp.c | 4 +
.../gpu/drm/amd/display/modules/hdcp/hdcp_psp.h | 11 +
.../gpu/drm/amd/display/modules/inc/mod_freesync.h | 3 +
.../amd/display/modules/info_packet/info_packet.c | 29 +-
.../drm/amd/display/modules/power/power_helpers.c | 117 +-
.../drm/amd/display/modules/power/power_helpers.h | 6 +
drivers/gpu/drm/amd/display/modules/vmid/vmid.c | 2 +-
drivers/gpu/drm/amd/include/amd_shared.h | 3 +
.../amd/include/asic_reg/clk/clk_11_0_1_offset.h | 0
.../amd/include/asic_reg/clk/clk_11_0_1_sh_mask.h | 0
.../gpu/drm/amd/include/asic_reg/dce/dce_11_0_d.h | 1 +
.../amd/include/asic_reg/dce/dce_11_0_sh_mask.h | 2 +
.../drm/amd/include/asic_reg/dce/dce_6_0_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_2_0_3_offset.h | 0
.../amd/include/asic_reg/dcn/dcn_2_0_3_sh_mask.h | 0
.../amd/include/asic_reg/dcn/dcn_3_0_0_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_3_0_1_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_3_0_2_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_3_0_3_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_3_1_2_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_3_1_4_offset.h | 15245 ++
.../amd/include/asic_reg/dcn/dcn_3_1_4_sh_mask.h | 61832 +++++
.../amd/include/asic_reg/dcn/dcn_3_2_0_offset.h | 14677 ++
.../amd/include/asic_reg/dcn/dcn_3_2_0_sh_mask.h | 222893 ++++++++++++++++++
.../amd/include/asic_reg/dcn/dcn_3_2_1_offset.h | 14561 ++
.../amd/include/asic_reg/dcn/dcn_3_2_1_sh_mask.h | 56582 +++++
.../amd/include/asic_reg/dpcs/dpcs_2_0_3_offset.h | 0
.../amd/include/asic_reg/dpcs/dpcs_2_0_3_sh_mask.h | 0
.../amd/include/asic_reg/dpcs/dpcs_3_1_4_offset.h | 7215 +
.../amd/include/asic_reg/dpcs/dpcs_3_1_4_sh_mask.h | 55194 +++++
.../drm/amd/include/asic_reg/gc/gc_11_0_0_offset.h | 3 +
.../amd/include/asic_reg/gc/gc_11_0_0_sh_mask.h | 25 +
.../include/asic_reg/mmhub/mmhub_3_0_1_offset.h | 1769 +
.../include/asic_reg/mmhub/mmhub_3_0_1_sh_mask.h | 7483 +
.../drm/amd/include/asic_reg/mp/mp_13_0_4_offset.h | 402 +
.../amd/include/asic_reg/mp/mp_13_0_4_sh_mask.h | 595 +
.../amd/include/asic_reg/nbio/nbio_4_3_0_offset.h | 2 +
.../amd/include/asic_reg/nbio/nbio_4_3_0_sh_mask.h | 1 +
.../amd/include/asic_reg/nbio/nbio_7_7_0_offset.h | 4 +
.../amd/include/asic_reg/nbio/nbio_7_7_0_sh_mask.h | 10 +
.../amd/include/asic_reg/umc/umc_8_10_0_offset.h | 33 +
.../amd/include/asic_reg/umc/umc_8_10_0_sh_mask.h | 94 +
drivers/gpu/drm/amd/include/atombios.h | 4 +-
drivers/gpu/drm/amd/include/atomfirmware.h | 209 +-
drivers/gpu/drm/amd/include/mes_api_def.h | 2 +-
drivers/gpu/drm/amd/include/mes_v11_api_def.h | 49 +-
drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 14 +
drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h | 11 +
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 33 +-
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 12 +
.../drm/amd/pm/swsmu/inc/pmfw_if/arcturus_ppsmc.h | 2 +-
.../swsmu/inc/pmfw_if/smu13_driver_if_aldebaran.h | 17 +-
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_0.h | 15 +-
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h | 80 +-
.../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_7_ppsmc.h | 9 +-
drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h | 1 +
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v11_0.h | 2 +
.../gpu/drm/amd/pm/swsmu/inc/smu_v11_0_7_pptable.h | 9 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v11_0_pptable.h | 9 +-
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h | 23 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v13_0_7_pptable.h | 5 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v13_0_pptable.h | 10 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 10 +-
.../drm/amd/pm/swsmu/smu11/cyan_skillfish_ppt.c | 1 +
drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 1 +
.../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 17 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 11 +
drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c | 39 +
drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c | 14 +
drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 98 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 83 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 215 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c | 28 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_5_ppt.c | 14 +
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 43 +
.../gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c | 32 +
drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c | 83 +-
drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c | 1 +
drivers/gpu/drm/arm/display/komeda/komeda_kms.h | 1 +
.../gpu/drm/arm/display/komeda/komeda_pipeline.c | 2 +
drivers/gpu/drm/arm/display/komeda/komeda_plane.c | 1 +
.../drm/arm/display/komeda/komeda_wb_connector.c | 1 +
drivers/gpu/drm/arm/hdlcd_crtc.c | 1 +
drivers/gpu/drm/arm/malidp_crtc.c | 1 +
drivers/gpu/drm/arm/malidp_mw.c | 2 +
drivers/gpu/drm/arm/malidp_planes.c | 2 +
drivers/gpu/drm/armada/armada_510.c | 1 +
drivers/gpu/drm/armada/armada_fb.h | 2 +
drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c | 1 +
drivers/gpu/drm/aspeed/aspeed_gfx_out.c | 1 +
drivers/gpu/drm/ast/ast_dp.c | 10 +-
drivers/gpu/drm/ast/ast_drv.h | 2 +-
drivers/gpu/drm/ast/ast_mode.c | 27 +-
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 1 +
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 1 +
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 2 +
drivers/gpu/drm/bridge/Kconfig | 21 +
drivers/gpu/drm/bridge/Makefile | 2 +
drivers/gpu/drm/bridge/adv7511/adv7511.h | 12 -
drivers/gpu/drm/bridge/adv7511/adv7511_cec.c | 12 +
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 24 +-
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 1 +
drivers/gpu/drm/bridge/analogix/anx7625.c | 200 +-
.../gpu/drm/bridge/cadence/cdns-mhdp8546-core.c | 2 +
drivers/gpu/drm/bridge/cdns-dsi.c | 26 +
drivers/gpu/drm/bridge/chipone-icn6211.c | 54 +-
drivers/gpu/drm/bridge/chrontel-ch7033.c | 1 +
drivers/gpu/drm/bridge/display-connector.c | 1 +
drivers/gpu/drm/bridge/fsl-ldb.c | 1 +
drivers/gpu/drm/bridge/imx/Kconfig | 47 +
drivers/gpu/drm/bridge/imx/Makefile | 9 +
drivers/gpu/drm/bridge/imx/imx-ldb-helper.c | 221 +
drivers/gpu/drm/bridge/imx/imx-ldb-helper.h | 96 +
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c | 588 +
drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c | 723 +
.../gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c | 450 +
drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c | 430 +
drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c | 488 +
drivers/gpu/drm/bridge/ite-it66121.c | 1 +
drivers/gpu/drm/bridge/lontium-lt8912b.c | 11 +-
drivers/gpu/drm/bridge/lontium-lt9211.c | 7 +-
drivers/gpu/drm/bridge/lontium-lt9611.c | 26 +-
drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 3 +-
drivers/gpu/drm/bridge/nwl-dsi.c | 7 +
drivers/gpu/drm/bridge/panel.c | 34 +
drivers/gpu/drm/bridge/parade-ps8622.c | 6 +-
drivers/gpu/drm/bridge/parade-ps8640.c | 113 +-
drivers/gpu/drm/bridge/sii902x.c | 6 +-
drivers/gpu/drm/bridge/sil-sii8620.c | 4 +-
drivers/gpu/drm/bridge/simple-bridge.c | 1 +
.../gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 2 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 1 +
drivers/gpu/drm/bridge/tc358764.c | 1 +
drivers/gpu/drm/bridge/tc358767.c | 180 +-
drivers/gpu/drm/bridge/tc358775.c | 25 +-
drivers/gpu/drm/bridge/ti-dlpc3433.c | 418 +
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 71 +-
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 27 +-
drivers/gpu/drm/bridge/ti-tfp410.c | 2 +
drivers/gpu/drm/display/Kconfig | 2 +-
drivers/gpu/drm/display/drm_dp_aux_bus.c | 211 +-
drivers/gpu/drm/display/drm_dp_helper.c | 4 +-
drivers/gpu/drm/display/drm_dp_mst_topology.c | 33 +-
drivers/gpu/drm/drm_aperture.c | 178 +-
drivers/gpu/drm/drm_atomic.c | 2 +
drivers/gpu/drm/drm_atomic_helper.c | 57 +
drivers/gpu/drm/drm_atomic_state_helper.c | 2 +
drivers/gpu/drm/drm_atomic_uapi.c | 1 +
drivers/gpu/drm/drm_blend.c | 2 +-
drivers/gpu/drm/drm_bridge.c | 24 +
drivers/gpu/drm/drm_bridge_connector.c | 8 +-
drivers/gpu/drm/drm_client_modeset.c | 29 +-
drivers/gpu/drm/drm_connector.c | 119 +-
drivers/gpu/drm/drm_crtc.c | 2 +
drivers/gpu/drm/drm_crtc_helper.c | 1 +
drivers/gpu/drm/drm_crtc_internal.h | 5 +-
drivers/gpu/drm/drm_damage_helper.c | 1 +
drivers/gpu/drm/drm_debugfs.c | 42 +-
drivers/gpu/drm/drm_displayid.c | 16 +-
drivers/gpu/drm/drm_edid.c | 2010 +-
drivers/gpu/drm/drm_encoder.c | 2 +-
drivers/gpu/drm/drm_fb_helper.c | 28 +-
drivers/gpu/drm/drm_file.c | 3 +-
drivers/gpu/drm/drm_gem.c | 21 +-
drivers/gpu/drm/drm_gem_atomic_helper.c | 7 +-
drivers/gpu/drm/drm_gem_cma_helper.c | 39 +-
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 104 +-
drivers/gpu/drm/drm_gem_shmem_helper.c | 1 +
drivers/gpu/drm/drm_gem_vram_helper.c | 54 +-
drivers/gpu/drm/drm_internal.h | 4 +-
drivers/gpu/drm/drm_ioctl.c | 2 +-
drivers/gpu/drm/drm_kms_helper_common.c | 1 +
drivers/gpu/drm/drm_mipi_dbi.c | 9 +
drivers/gpu/drm/drm_mode_config.c | 1 +
drivers/gpu/drm/drm_modes.c | 6 +
drivers/gpu/drm/drm_modeset_helper.c | 1 +
drivers/gpu/drm/drm_of.c | 63 +
drivers/gpu/drm/drm_panel_orientation_quirks.c | 2 +-
drivers/gpu/drm/drm_prime.c | 22 +-
drivers/gpu/drm/drm_probe_helper.c | 241 +-
drivers/gpu/drm/drm_simple_kms_helper.c | 14 +-
drivers/gpu/drm/drm_syncobj.c | 59 +-
drivers/gpu/drm/drm_writeback.c | 1 +
drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 2 +
drivers/gpu/drm/exynos/exynos7_drm_decon.c | 18 +-
drivers/gpu/drm/exynos/exynos_dp.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_dpi.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_drv.c | 6 +-
drivers/gpu/drm/exynos/exynos_drm_fb.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +
drivers/gpu/drm/exynos/exynos_drm_ipp.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_mic.c | 42 +-
drivers/gpu/drm/exynos/exynos_drm_plane.c | 2 +
drivers/gpu/drm/exynos/exynos_drm_scaler.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_vidi.c | 1 +
drivers/gpu/drm/exynos/exynos_hdmi.c | 8 +-
drivers/gpu/drm/exynos/exynos_mixer.c | 3 +
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 1 +
drivers/gpu/drm/gma500/cdv_intel_crt.c | 47 +-
drivers/gpu/drm/gma500/cdv_intel_dp.c | 1 +
drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 98 +-
drivers/gpu/drm/gma500/cdv_intel_lvds.c | 80 +-
drivers/gpu/drm/gma500/framebuffer.c | 1 +
drivers/gpu/drm/gma500/gma_display.c | 1 +
drivers/gpu/drm/gma500/intel_i2c.c | 36 +-
drivers/gpu/drm/gma500/oaktrail_crtc.c | 1 +
drivers/gpu/drm/gma500/oaktrail_hdmi.c | 1 +
drivers/gpu/drm/gma500/oaktrail_lvds.c | 51 +-
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c | 36 +-
drivers/gpu/drm/gma500/psb_drv.h | 2 +-
drivers/gpu/drm/gma500/psb_intel_drv.h | 24 +-
drivers/gpu/drm/gma500/psb_intel_lvds.c | 86 +-
drivers/gpu/drm/gma500/psb_intel_modes.c | 2 +
drivers/gpu/drm/gud/gud_connector.c | 1 +
drivers/gpu/drm/gud/gud_drv.c | 1 +
drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c | 1 +
drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 1 +
drivers/gpu/drm/hyperv/hyperv_drm_drv.c | 74 +-
drivers/gpu/drm/hyperv/hyperv_drm_modeset.c | 2 +
drivers/gpu/drm/i2c/tda998x_drv.c | 7 +-
drivers/gpu/drm/i915/Makefile | 6 +-
drivers/gpu/drm/i915/TODO.txt | 2 +-
drivers/gpu/drm/i915/display/g4x_dp.c | 22 +-
drivers/gpu/drm/i915/display/hsw_ips.c | 4 +-
drivers/gpu/drm/i915/display/i9xx_plane.c | 1 +
drivers/gpu/drm/i915/display/icl_dsi.c | 11 +-
drivers/gpu/drm/i915/display/intel_audio.c | 1 +
drivers/gpu/drm/i915/display/intel_audio_regs.h | 160 +
drivers/gpu/drm/i915/display/intel_backlight.c | 24 +-
drivers/gpu/drm/i915/display/intel_bios.c | 657 +-
drivers/gpu/drm/i915/display/intel_bios.h | 7 +
drivers/gpu/drm/i915/display/intel_bw.c | 6 +-
drivers/gpu/drm/i915/display/intel_cdclk.c | 16 +-
drivers/gpu/drm/i915/display/intel_color.c | 51 +-
.../gpu/drm/i915/display/intel_crtc_state_dump.c | 314 +
.../gpu/drm/i915/display/intel_crtc_state_dump.h | 16 +
drivers/gpu/drm/i915/display/intel_cursor.c | 1 +
drivers/gpu/drm/i915/display/intel_ddi.c | 54 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 37 +-
drivers/gpu/drm/i915/display/intel_display.c | 1847 +-
drivers/gpu/drm/i915/display/intel_display.h | 23 +-
.../gpu/drm/i915/display/intel_display_debugfs.c | 28 +
drivers/gpu/drm/i915/display/intel_display_power.c | 10 +-
.../drm/i915/display/intel_display_power_well.c | 4 +-
drivers/gpu/drm/i915/display/intel_display_types.h | 90 +-
drivers/gpu/drm/i915/display/intel_dmc.c | 103 +-
drivers/gpu/drm/i915/display/intel_dmc_regs.h | 65 +-
drivers/gpu/drm/i915/display/intel_dp.c | 127 +-
drivers/gpu/drm/i915/display/intel_dp.h | 2 +
.../gpu/drm/i915/display/intel_dp_aux_backlight.c | 6 +-
drivers/gpu/drm/i915/display/intel_dp_mst.c | 1 +
drivers/gpu/drm/i915/display/intel_dpll.c | 89 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 411 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.h | 8 +
drivers/gpu/drm/i915/display/intel_dpt.c | 16 +-
drivers/gpu/drm/i915/display/intel_drrs.c | 3 -
drivers/gpu/drm/i915/display/intel_dsi.c | 2 +-
.../gpu/drm/i915/display/intel_dsi_dcs_backlight.c | 9 +-
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 56 +-
drivers/gpu/drm/i915/display/intel_fb.c | 1 +
drivers/gpu/drm/i915/display/intel_fbc.c | 5 +-
drivers/gpu/drm/i915/display/intel_hdcp.c | 2 +-
drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +-
drivers/gpu/drm/i915/display/intel_hotplug.c | 3 +-
drivers/gpu/drm/i915/display/intel_lspcon.c | 1 +
drivers/gpu/drm/i915/display/intel_lvds.c | 8 +-
drivers/gpu/drm/i915/display/intel_modeset_setup.c | 734 +
drivers/gpu/drm/i915/display/intel_modeset_setup.h | 15 +
.../gpu/drm/i915/display/intel_modeset_verify.c | 246 +
.../gpu/drm/i915/display/intel_modeset_verify.h | 21 +
drivers/gpu/drm/i915/display/intel_opregion.c | 16 +
drivers/gpu/drm/i915/display/intel_opregion.h | 7 +
drivers/gpu/drm/i915/display/intel_overlay.c | 2 -
drivers/gpu/drm/i915/display/intel_panel.c | 66 +-
drivers/gpu/drm/i915/display/intel_panel.h | 3 +-
drivers/gpu/drm/i915/display/intel_pch_refclk.c | 91 +-
drivers/gpu/drm/i915/display/intel_pps.c | 129 +-
drivers/gpu/drm/i915/display/intel_pps.h | 1 +
drivers/gpu/drm/i915/display/intel_psr.c | 80 +-
drivers/gpu/drm/i915/display/intel_sdvo.c | 5 +-
drivers/gpu/drm/i915/display/intel_snps_phy.c | 77 +-
drivers/gpu/drm/i915/display/intel_snps_phy.h | 5 +-
drivers/gpu/drm/i915/display/intel_sprite.c | 1 +
drivers/gpu/drm/i915/display/intel_tc.c | 3 +-
drivers/gpu/drm/i915/display/intel_vbt_defs.h | 67 +-
drivers/gpu/drm/i915/display/intel_vrr.c | 30 +-
drivers/gpu/drm/i915/display/intel_vrr.h | 4 +-
drivers/gpu/drm/i915/display/skl_universal_plane.c | 1 +
drivers/gpu/drm/i915/display/vlv_dsi.c | 14 +-
drivers/gpu/drm/i915/gem/i915_gem_context.c | 33 +-
drivers/gpu/drm/i915/gem/i915_gem_create.c | 20 +-
drivers/gpu/drm/i915/gem/i915_gem_domain.c | 6 +-
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 19 +-
drivers/gpu/drm/i915/gem/i915_gem_object.c | 47 +
drivers/gpu/drm/i915/gem/i915_gem_object.h | 3 +
drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 18 +
drivers/gpu/drm/i915/gem/i915_gem_region.c | 2 +
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 11 +-
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 5 +-
drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 6 +-
drivers/gpu/drm/i915/gem/i915_gem_tiling.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 55 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.h | 3 +
drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c | 99 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm_move.h | 1 +
drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 4 +-
drivers/gpu/drm/i915/gem/i915_gem_wait.c | 34 +
drivers/gpu/drm/i915/gem/i915_gemfs.c | 50 +-
drivers/gpu/drm/i915/gem/i915_gemfs.h | 3 +-
drivers/gpu/drm/i915/gem/selftests/huge_pages.c | 7 +-
.../drm/i915/gem/selftests/i915_gem_client_blt.c | 250 +-
.../gpu/drm/i915/gem/selftests/i915_gem_context.c | 2 +-
.../gpu/drm/i915/gem/selftests/i915_gem_migrate.c | 141 +-
drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 87 +-
drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 21 +-
drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 3 +-
drivers/gpu/drm/i915/gt/intel_context.c | 24 +
drivers/gpu/drm/i915/gt/intel_context.h | 25 +-
drivers/gpu/drm/i915/gt/intel_context_types.h | 15 +-
drivers/gpu/drm/i915/gt/intel_engine.h | 2 +
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 225 +-
drivers/gpu/drm/i915/gt/intel_engine_regs.h | 10 +-
drivers/gpu/drm/i915/gt/intel_engine_types.h | 34 +-
.../gpu/drm/i915/gt/intel_execlists_submission.c | 27 +-
drivers/gpu/drm/i915/gt/intel_ggtt.c | 627 +-
drivers/gpu/drm/i915/gt/intel_ggtt_gmch.c | 132 +
drivers/gpu/drm/i915/gt/intel_ggtt_gmch.h | 27 +
drivers/gpu/drm/i915/gt/intel_gpu_commands.h | 37 +-
drivers/gpu/drm/i915/gt/intel_gt.c | 283 +-
drivers/gpu/drm/i915/gt/intel_gt.h | 24 -
drivers/gpu/drm/i915/gt/intel_gt_debugfs.c | 3 +-
drivers/gpu/drm/i915/gt/intel_gt_gmch.c | 654 -
drivers/gpu/drm/i915/gt/intel_gt_gmch.h | 46 -
drivers/gpu/drm/i915/gt/intel_gt_irq.c | 16 +
drivers/gpu/drm/i915/gt/intel_gt_mcr.c | 522 +
drivers/gpu/drm/i915/gt/intel_gt_mcr.h | 58 +
drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c | 12 +-
drivers/gpu/drm/i915/gt/intel_gt_regs.h | 83 +-
drivers/gpu/drm/i915/gt/intel_gt_sysfs.c | 29 +-
drivers/gpu/drm/i915/gt/intel_gt_sysfs.h | 6 +-
drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c | 177 +
drivers/gpu/drm/i915/gt/intel_gt_types.h | 11 +
drivers/gpu/drm/i915/gt/intel_gtt.h | 45 +-
drivers/gpu/drm/i915/gt/intel_llc.c | 3 +-
drivers/gpu/drm/i915/gt/intel_lrc.h | 10 -
drivers/gpu/drm/i915/gt/intel_mocs.c | 24 +-
drivers/gpu/drm/i915/gt/intel_rc6.c | 4 +-
drivers/gpu/drm/i915/gt/intel_region_lmem.c | 118 +-
drivers/gpu/drm/i915/gt/intel_reset.c | 37 +-
drivers/gpu/drm/i915/gt/intel_ring.c | 3 +-
drivers/gpu/drm/i915/gt/intel_ring_submission.c | 11 +-
drivers/gpu/drm/i915/gt/intel_rps.c | 9 +-
drivers/gpu/drm/i915/gt/intel_sseu.c | 450 +-
drivers/gpu/drm/i915/gt/intel_sseu.h | 92 +-
drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c | 30 +-
drivers/gpu/drm/i915/gt/intel_workarounds.c | 192 +-
drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 9 +-
drivers/gpu/drm/i915/gt/selftest_llc.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_lrc.c | 8 +-
drivers/gpu/drm/i915/gt/selftest_rps.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_slpc.c | 323 +-
drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h | 3 +
.../gpu/drm/i915/gt/uc/abi/guc_actions_slpc_abi.h | 6 +
drivers/gpu/drm/i915/gt/uc/intel_guc.c | 8 +-
drivers/gpu/drm/i915/gt/uc/intel_guc.h | 13 +
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 5 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c | 93 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h | 46 +
drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.c | 4 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 4 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_rc.c | 5 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h | 1 +
drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 62 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h | 1 +
drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h | 3 +
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 483 +-
drivers/gpu/drm/i915/gt/uc/intel_huc.c | 97 +-
drivers/gpu/drm/i915/gt/uc/intel_huc.h | 5 +-
drivers/gpu/drm/i915/gt/uc/intel_huc_fw.c | 5 +-
drivers/gpu/drm/i915/gt/uc/intel_uc.c | 26 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 169 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h | 9 +
drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h | 9 +
drivers/gpu/drm/i915/gvt/cmd_parser.c | 8 +-
drivers/gpu/drm/i915/gvt/gvt.h | 1 -
drivers/gpu/drm/i915/gvt/kvmgt.c | 120 +-
drivers/gpu/drm/i915/i915_active.c | 2 +-
drivers/gpu/drm/i915/i915_driver.c | 88 +-
drivers/gpu/drm/i915/i915_drm_client.c | 5 +-
drivers/gpu/drm/i915/i915_drm_client.h | 2 +-
drivers/gpu/drm/i915/i915_drv.h | 99 +-
drivers/gpu/drm/i915/i915_gem.h | 39 -
drivers/gpu/drm/i915/i915_getparam.c | 11 +-
drivers/gpu/drm/i915/i915_gpu_error.c | 69 +-
drivers/gpu/drm/i915/i915_gpu_error.h | 7 +
drivers/gpu/drm/i915/i915_params.c | 2 +
drivers/gpu/drm/i915/i915_params.h | 1 +
drivers/gpu/drm/i915/i915_pci.c | 160 +-
drivers/gpu/drm/i915/i915_perf.c | 158 +-
drivers/gpu/drm/i915/i915_query.c | 42 +-
drivers/gpu/drm/i915/i915_reg.h | 235 +-
drivers/gpu/drm/i915/i915_request.c | 57 +-
drivers/gpu/drm/i915/i915_request.h | 2 +
drivers/gpu/drm/i915/i915_scatterlist.c | 27 +-
drivers/gpu/drm/i915/i915_scatterlist.h | 6 +-
drivers/gpu/drm/i915/i915_scheduler.h | 1 +
drivers/gpu/drm/i915/i915_sysfs.c | 17 +-
drivers/gpu/drm/i915/i915_tasklet.h | 43 +
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 31 +-
drivers/gpu/drm/i915/i915_ttm_buddy_manager.h | 3 +
drivers/gpu/drm/i915/i915_utils.h | 40 -
drivers/gpu/drm/i915/i915_vma.c | 124 +-
drivers/gpu/drm/i915/intel_device_info.c | 17 +
drivers/gpu/drm/i915/intel_device_info.h | 50 +-
drivers/gpu/drm/i915/intel_dram.c | 2 +-
drivers/gpu/drm/i915/intel_gvt_mmio_table.c | 2 +
drivers/gpu/drm/i915/intel_memory_region.c | 18 +-
drivers/gpu/drm/i915/intel_memory_region.h | 4 +-
drivers/gpu/drm/i915/intel_pch.c | 16 +-
drivers/gpu/drm/i915/intel_pch.h | 8 +-
drivers/gpu/drm/i915/intel_pcode.c | 93 +-
drivers/gpu/drm/i915/intel_pcode.h | 20 +-
drivers/gpu/drm/i915/intel_pm.c | 180 +-
drivers/gpu/drm/i915/intel_pm.h | 14 +-
drivers/gpu/drm/i915/intel_region_ttm.c | 10 +-
drivers/gpu/drm/i915/intel_region_ttm.h | 3 +-
drivers/gpu/drm/i915/intel_step.c | 70 +-
drivers/gpu/drm/i915/intel_step.h | 4 +-
drivers/gpu/drm/i915/intel_uncore.c | 378 +-
drivers/gpu/drm/i915/intel_uncore.h | 8 -
drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c | 5 +-
drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 2 +-
.../gpu/drm/i915/selftests/intel_memory_region.c | 21 +-
drivers/gpu/drm/i915/selftests/intel_uncore.c | 2 +
drivers/gpu/drm/i915/selftests/mock_region.c | 3 +-
drivers/gpu/drm/imx/dcss/dcss-drv.c | 1 +
drivers/gpu/drm/imx/dcss/dcss-plane.c | 2 +
drivers/gpu/drm/imx/imx-ldb.c | 2 +
drivers/gpu/drm/imx/imx-tve.c | 1 +
drivers/gpu/drm/imx/ipuv3-crtc.c | 2 +-
drivers/gpu/drm/imx/ipuv3-plane.c | 2 +
drivers/gpu/drm/imx/parallel-display.c | 2 +
drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 12 +-
drivers/gpu/drm/ingenic/ingenic-drm.h | 3 +
drivers/gpu/drm/ingenic/ingenic-ipu.c | 1 +
drivers/gpu/drm/kmb/kmb_dsi.c | 1 +
drivers/gpu/drm/kmb/kmb_plane.c | 2 +
drivers/gpu/drm/lima/lima_devfreq.c | 12 +-
drivers/gpu/drm/logicvc/Kconfig | 9 +
drivers/gpu/drm/logicvc/Makefile | 9 +
drivers/gpu/drm/logicvc/logicvc_crtc.c | 280 +
drivers/gpu/drm/logicvc/logicvc_crtc.h | 21 +
drivers/gpu/drm/logicvc/logicvc_drm.c | 496 +
drivers/gpu/drm/logicvc/logicvc_drm.h | 67 +
drivers/gpu/drm/logicvc/logicvc_interface.c | 214 +
drivers/gpu/drm/logicvc/logicvc_interface.h | 28 +
drivers/gpu/drm/logicvc/logicvc_layer.c | 631 +
drivers/gpu/drm/logicvc/logicvc_layer.h | 64 +
drivers/gpu/drm/logicvc/logicvc_mode.c | 80 +
drivers/gpu/drm/logicvc/logicvc_mode.h | 15 +
drivers/gpu/drm/logicvc/logicvc_of.c | 185 +
drivers/gpu/drm/logicvc/logicvc_of.h | 46 +
drivers/gpu/drm/logicvc/logicvc_regs.h | 80 +
drivers/gpu/drm/mcde/mcde_clk_div.c | 1 +
drivers/gpu/drm/mcde/mcde_display.c | 1 +
drivers/gpu/drm/mcde/mcde_dsi.c | 1 +
drivers/gpu/drm/mediatek/Makefile | 4 +-
drivers/gpu/drm/mediatek/mtk_disp_drv.h | 20 +
drivers/gpu/drm/mediatek/mtk_disp_merge.c | 320 +
drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 2 +
drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 10 +-
drivers/gpu/drm/mediatek/mtk_dpi.c | 261 +-
drivers/gpu/drm/mediatek/mtk_dpi_regs.h | 18 +
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 69 +-
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 3 +
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 184 +-
drivers/gpu/drm/mediatek/mtk_drm_drv.h | 8 +
drivers/gpu/drm/mediatek/mtk_drm_plane.c | 3 +
drivers/gpu/drm/mediatek/mtk_drm_plane.h | 1 +
drivers/gpu/drm/mediatek/mtk_dsi.c | 101 +-
drivers/gpu/drm/mediatek/mtk_mdp_rdma.c | 315 +
drivers/gpu/drm/mediatek/mtk_mdp_rdma.h | 20 +
drivers/gpu/drm/meson/meson_encoder_cvbs.c | 1 +
drivers/gpu/drm/meson/meson_encoder_hdmi.c | 27 +-
drivers/gpu/drm/meson/meson_overlay.c | 2 +
drivers/gpu/drm/meson/meson_plane.c | 2 +
drivers/gpu/drm/meson/meson_viu.c | 22 +-
drivers/gpu/drm/mgag200/Makefile | 14 +-
drivers/gpu/drm/mgag200/mgag200_drv.c | 381 +-
drivers/gpu/drm/mgag200/mgag200_drv.h | 148 +-
drivers/gpu/drm/mgag200/mgag200_g200.c | 201 +
drivers/gpu/drm/mgag200/mgag200_g200eh.c | 50 +
drivers/gpu/drm/mgag200/mgag200_g200eh3.c | 51 +
drivers/gpu/drm/mgag200/mgag200_g200er.c | 46 +
drivers/gpu/drm/mgag200/mgag200_g200ev.c | 50 +
drivers/gpu/drm/mgag200/mgag200_g200ew3.c | 60 +
drivers/gpu/drm/mgag200/mgag200_g200se.c | 130 +
drivers/gpu/drm/mgag200/mgag200_g200wb.c | 50 +
drivers/gpu/drm/mgag200/mgag200_i2c.c | 59 +-
drivers/gpu/drm/mgag200/mgag200_mm.c | 116 -
drivers/gpu/drm/mgag200/mgag200_mode.c | 454 +-
drivers/gpu/drm/mgag200/mgag200_pll.c | 12 +-
drivers/gpu/drm/mgag200/mgag200_reg.h | 2 +
drivers/gpu/drm/msm/Makefile | 1 -
drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 8 -
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 30 +-
drivers/gpu/drm/msm/adreno/a6xx_gmu.h | 4 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 106 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.h | 3 +-
drivers/gpu/drm/msm/adreno/a6xx_hfi.c | 65 +-
drivers/gpu/drm/msm/adreno/adreno_device.c | 23 +
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 43 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.h | 32 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 24 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h | 4 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 119 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 6 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 166 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 26 +-
.../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 31 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h | 25 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 514 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 20 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c | 5 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h | 1 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c | 9 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c | 5 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.h | 2 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 8 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c | 24 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.h | 9 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c | 53 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h | 1 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.c | 5 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.h | 1 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c | 7 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h | 1 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 9 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h | 5 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c | 5 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.h | 1 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c | 55 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h | 36 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_vbif.c | 9 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c | 5 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 40 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 22 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c | 11 +-
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 31 +-
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h | 6 -
drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c | 1 +
drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c | 21 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.h | 6 -
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 1 +
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 31 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c | 3 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 2 +
drivers/gpu/drm/msm/disp/mdp_format.c | 2 +
drivers/gpu/drm/msm/dp/dp_clk_util.c | 120 -
drivers/gpu/drm/msm/dp/dp_clk_util.h | 38 -
drivers/gpu/drm/msm/dp/dp_ctrl.c | 46 +-
drivers/gpu/drm/msm/dp/dp_ctrl.h | 2 +-
drivers/gpu/drm/msm/dp/dp_display.c | 116 +-
drivers/gpu/drm/msm/dp/dp_display.h | 1 -
drivers/gpu/drm/msm/dp/dp_drm.c | 8 +-
drivers/gpu/drm/msm/dp/dp_drm.h | 2 +-
drivers/gpu/drm/msm/dp/dp_parser.c | 67 +-
drivers/gpu/drm/msm/dp/dp_parser.h | 10 +-
drivers/gpu/drm/msm/dp/dp_power.c | 199 +-
drivers/gpu/drm/msm/dsi/dsi_host.c | 57 +-
drivers/gpu/drm/msm/hdmi/hdmi.c | 126 +-
drivers/gpu/drm/msm/hdmi/hdmi.h | 15 +-
drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 11 +-
drivers/gpu/drm/msm/hdmi/hdmi_hpd.c | 62 +-
drivers/gpu/drm/msm/hdmi/hdmi_phy_8x60.c | 12 +
drivers/gpu/drm/msm/msm_debugfs.c | 1 +
drivers/gpu/drm/msm/msm_drv.c | 83 +-
drivers/gpu/drm/msm/msm_drv.h | 12 +-
drivers/gpu/drm/msm/msm_fb.c | 1 +
drivers/gpu/drm/msm/msm_fbdev.c | 1 +
drivers/gpu/drm/msm/msm_fence.c | 19 +-
drivers/gpu/drm/msm/msm_gem.c | 29 +-
drivers/gpu/drm/msm/msm_gem.h | 26 +-
drivers/gpu/drm/msm/msm_gem_prime.c | 15 +
drivers/gpu/drm/msm/msm_gem_shrinker.c | 4 +-
drivers/gpu/drm/msm/msm_gem_submit.c | 20 +-
drivers/gpu/drm/msm/msm_gem_vma.c | 6 +-
drivers/gpu/drm/msm/msm_gpu.c | 90 +-
drivers/gpu/drm/msm/msm_gpu.h | 31 +-
drivers/gpu/drm/msm/msm_gpu_devfreq.c | 41 +-
drivers/gpu/drm/msm/msm_iommu.c | 2 +-
drivers/gpu/drm/msm/msm_ringbuffer.c | 2 +-
drivers/gpu/drm/mxsfb/Kconfig | 16 +
drivers/gpu/drm/mxsfb/Makefile | 2 +
drivers/gpu/drm/mxsfb/lcdif_drv.c | 340 +
drivers/gpu/drm/mxsfb/lcdif_drv.h | 44 +
drivers/gpu/drm/mxsfb/lcdif_kms.c | 485 +
drivers/gpu/drm/mxsfb/lcdif_regs.h | 257 +
drivers/gpu/drm/mxsfb/mxsfb_kms.c | 2 +
drivers/gpu/drm/nouveau/Kconfig | 1 -
drivers/gpu/drm/nouveau/dispnv50/base507c.c | 17 +-
drivers/gpu/drm/nouveau/dispnv50/core507d.c | 4 +-
drivers/gpu/drm/nouveau/dispnv50/curs507a.c | 6 +-
drivers/gpu/drm/nouveau/dispnv50/disp.c | 59 +-
drivers/gpu/drm/nouveau/dispnv50/oimm507b.c | 6 +-
drivers/gpu/drm/nouveau/dispnv50/ovly507e.c | 17 +-
drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c | 7 +-
drivers/gpu/drm/nouveau/dispnv50/wndw.c | 22 +-
drivers/gpu/drm/nouveau/dispnv50/wndw.h | 5 -
drivers/gpu/drm/nouveau/dispnv50/wndwc37e.c | 7 +-
drivers/gpu/drm/nouveau/dispnv50/wndwc57e.c | 1 -
drivers/gpu/drm/nouveau/include/nvhw/drf.h | 4 +-
drivers/gpu/drm/nouveau/include/nvif/cl5070.h | 8 -
drivers/gpu/drm/nouveau/include/nvif/cl507a.h | 12 -
drivers/gpu/drm/nouveau/include/nvif/cl507b.h | 12 -
drivers/gpu/drm/nouveau/include/nvif/cl507c.h | 13 -
drivers/gpu/drm/nouveau/include/nvif/cl507d.h | 12 -
drivers/gpu/drm/nouveau/include/nvif/cl507e.h | 13 -
drivers/gpu/drm/nouveau/include/nvif/class.h | 141 +-
drivers/gpu/drm/nouveau/include/nvif/clc37b.h | 11 -
drivers/gpu/drm/nouveau/include/nvif/clc37e.h | 13 -
drivers/gpu/drm/nouveau/include/nvif/conn.h | 18 +
drivers/gpu/drm/nouveau/include/nvif/disp.h | 2 +
drivers/gpu/drm/nouveau/include/nvif/if0010.h | 13 +
drivers/gpu/drm/nouveau/include/nvif/if0011.h | 23 +
drivers/gpu/drm/nouveau/include/nvif/if0012.h | 23 +
drivers/gpu/drm/nouveau/include/nvif/if0014.h | 13 +
drivers/gpu/drm/nouveau/include/nvif/object.h | 6 +
drivers/gpu/drm/nouveau/include/nvif/outp.h | 14 +
drivers/gpu/drm/nouveau/include/nvif/printf.h | 9 +
drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 3 -
drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h | 43 +-
.../gpu/drm/nouveau/include/nvkm/engine/falcon.h | 10 -
drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 2 -
.../gpu/drm/nouveau/include/nvkm/subdev/bios/dcb.h | 1 +
drivers/gpu/drm/nouveau/include/nvkm/subdev/clk.h | 3 +-
.../gpu/drm/nouveau/include/nvkm/subdev/fault.h | 1 +
.../gpu/drm/nouveau/include/nvkm/subdev/secboot.h | 66 -
drivers/gpu/drm/nouveau/nouveau_abi16.c | 32 +-
drivers/gpu/drm/nouveau/nouveau_abi16.h | 1 +
drivers/gpu/drm/nouveau/nouveau_bios.c | 2 +
drivers/gpu/drm/nouveau/nouveau_bo.c | 9 +
drivers/gpu/drm/nouveau/nouveau_chan.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_connector.c | 18 +-
drivers/gpu/drm/nouveau/nouveau_connector.h | 3 +-
drivers/gpu/drm/nouveau/nouveau_display.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_dp.c | 12 +-
drivers/gpu/drm/nouveau/nouveau_drv.h | 1 -
drivers/gpu/drm/nouveau/nouveau_encoder.h | 3 +-
drivers/gpu/drm/nouveau/nouveau_fbcon.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_nvif.c | 31 +-
drivers/gpu/drm/nouveau/nouveau_usif.c | 231 +-
drivers/gpu/drm/nouveau/nvif/Kbuild | 2 +
.../{nvkm/engine/disp/rootga102.c => nvif/conn.c} | 60 +-
drivers/gpu/drm/nouveau/nvif/disp.c | 61 +-
drivers/gpu/drm/nouveau/nvif/object.c | 2 +-
.../{nvkm/engine/disp/rootg84.c => nvif/outp.c} | 65 +-
drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 3 +-
drivers/gpu/drm/nouveau/nvkm/engine/ce/gv100.c | 24 +
drivers/gpu/drm/nouveau/nvkm/engine/ce/priv.h | 2 +
drivers/gpu/drm/nouveau/nvkm/engine/ce/tu102.c | 1 +
drivers/gpu/drm/nouveau/nvkm/engine/device/acpi.c | 6 +-
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 25 -
drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 14 +-
drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 1 +
drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 115 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c | 139 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/baseg84.c | 74 -
.../gpu/drm/nouveau/nvkm/engine/disp/basegf119.c | 108 -
.../gpu/drm/nouveau/nvkm/engine/disp/basegp102.c | 32 -
.../gpu/drm/nouveau/nvkm/engine/disp/basenv50.c | 119 -
.../gpu/drm/nouveau/nvkm/engine/disp/capsgv100.c | 60 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c | 275 +
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.h | 135 +
.../gpu/drm/nouveau/nvkm/engine/disp/changf119.c | 62 -
.../gpu/drm/nouveau/nvkm/engine/disp/channv50.c | 364 -
.../gpu/drm/nouveau/nvkm/engine/disp/channv50.h | 193 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c | 6 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.h | 4 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/coreg84.c | 111 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/coreg94.c | 57 -
.../gpu/drm/nouveau/nvkm/engine/disp/coregf119.c | 231 -
.../gpu/drm/nouveau/nvkm/engine/disp/coregk104.c | 126 -
.../gpu/drm/nouveau/nvkm/engine/disp/coregp102.c | 70 -
.../gpu/drm/nouveau/nvkm/engine/disp/coregv100.c | 207 -
.../gpu/drm/nouveau/nvkm/engine/disp/corenv50.c | 234 -
.../gpu/drm/nouveau/nvkm/engine/disp/cursgp102.c | 32 -
.../gpu/drm/nouveau/nvkm/engine/disp/cursgv100.c | 81 -
.../gpu/drm/nouveau/nvkm/engine/disp/cursnv50.c | 64 -
.../gpu/drm/nouveau/nvkm/engine/disp/dacgf119.c | 70 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c | 121 -
.../gpu/drm/nouveau/nvkm/engine/disp/dmacgf119.c | 96 -
.../gpu/drm/nouveau/nvkm/engine/disp/dmacgp102.c | 64 -
.../gpu/drm/nouveau/nvkm/engine/disp/dmacgv100.c | 79 -
.../gpu/drm/nouveau/nvkm/engine/disp/dmacnv50.c | 137 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c | 457 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.h | 33 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.c | 291 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c | 341 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/ga102.c | 120 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c | 1041 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c | 275 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c | 23 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c | 78 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c | 146 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp100.c | 52 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c | 144 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c | 73 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.c | 172 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c | 883 +-
.../gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c | 62 -
.../gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c | 51 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c | 91 -
.../gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c | 82 -
.../gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c | 82 -
.../gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c | 91 -
.../gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c | 84 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/head.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/head.h | 19 +-
.../gpu/drm/nouveau/nvkm/engine/disp/headgf119.c | 104 -
.../gpu/drm/nouveau/nvkm/engine/disp/headgv100.c | 105 -
.../gpu/drm/nouveau/nvkm/engine/disp/headnv04.c | 74 -
.../gpu/drm/nouveau/nvkm/engine/disp/headnv50.c | 99 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.c | 10 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h | 95 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp77.c | 40 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp89.c | 54 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.c | 55 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 1159 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 102 -
.../gpu/drm/nouveau/nvkm/engine/disp/oimmgf119.c | 32 -
.../gpu/drm/nouveau/nvkm/engine/disp/oimmgp102.c | 32 -
.../gpu/drm/nouveau/nvkm/engine/disp/oimmnv50.c | 64 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c | 28 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.h | 41 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlyg84.c | 71 -
.../gpu/drm/nouveau/nvkm/engine/disp/ovlygf119.c | 95 -
.../gpu/drm/nouveau/nvkm/engine/disp/ovlygk104.c | 97 -
.../gpu/drm/nouveau/nvkm/engine/disp/ovlygp102.c | 32 -
.../gpu/drm/nouveau/nvkm/engine/disp/ovlygt200.c | 74 -
.../gpu/drm/nouveau/nvkm/engine/disp/ovlynv50.c | 107 -
.../gpu/drm/nouveau/nvkm/engine/disp/piocgf119.c | 78 -
.../gpu/drm/nouveau/nvkm/engine/disp/piocnv50.c | 87 -
.../gpu/drm/nouveau/nvkm/engine/disp/piornv50.c | 139 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h | 75 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootg94.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgk104.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgk110.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgm107.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgm200.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgp100.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgp102.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgt200.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgt215.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgv100.c | 53 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootnv04.c | 42 +-
.../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c | 140 +-
.../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h | 45 -
.../gpu/drm/nouveau/nvkm/engine/disp/roottu102.c | 53 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg84.c | 38 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg94.c | 302 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorga102.c | 144 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c | 208 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c | 54 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c | 80 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c | 160 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgp100.c | 93 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgt215.c | 69 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c | 155 -
.../gpu/drm/nouveau/nvkm/engine/disp/sormcp77.c | 48 -
.../gpu/drm/nouveau/nvkm/engine/disp/sormcp89.c | 53 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c | 106 -
.../gpu/drm/nouveau/nvkm/engine/disp/sortu102.c | 129 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/tu102.c | 108 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c | 117 +
drivers/gpu/drm/nouveau/nvkm/engine/disp/udisp.c | 115 +
drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c | 129 +
.../gpu/drm/nouveau/nvkm/engine/disp/wimmgv100.c | 82 -
.../gpu/drm/nouveau/nvkm/engine/disp/wndwgv100.c | 184 -
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 29 -
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c | 37 -
.../gpu/drm/nouveau/nvkm/engine/fifo/changk104.h | 2 -
.../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c | 11 +-
.../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogv100.c | 47 +-
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/engine/fifo/priv.h | 1 -
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.c | 1 -
drivers/gpu/drm/nouveau/nvkm/falcon/base.c | 10 -
drivers/gpu/drm/nouveau/nvkm/falcon/v1.c | 25 -
drivers/gpu/drm/nouveau/nvkm/subdev/bios/priv.h | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c | 2 +-
.../gpu/drm/nouveau/nvkm/subdev/bios/shadowrom.c | 14 +-
drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 20 +-
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c | 4 +-
drivers/gpu/drm/omapdrm/dss/hdmi4.c | 1 +
drivers/gpu/drm/omapdrm/dss/hdmi5.c | 1 +
drivers/gpu/drm/omapdrm/omap_debugfs.c | 1 +
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 1 +
drivers/gpu/drm/omapdrm/omap_fb.c | 2 +
drivers/gpu/drm/omapdrm/omap_fbdev.c | 1 +
drivers/gpu/drm/omapdrm/omap_plane.c | 2 +
drivers/gpu/drm/panel/Kconfig | 13 +
drivers/gpu/drm/panel/Makefile | 1 +
.../gpu/drm/panel/panel-asus-z00t-tm5p5-n35596.c | 7 +-
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 12 +
drivers/gpu/drm/panel/panel-dsi-cm.c | 29 +-
drivers/gpu/drm/panel/panel-ebbg-ft8719.c | 285 +
drivers/gpu/drm/panel/panel-edp.c | 48 +-
drivers/gpu/drm/panel/panel-elida-kd35t133.c | 12 +
.../gpu/drm/panel/panel-feiyang-fy07024di26a30d.c | 2 +-
drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 12 +
drivers/gpu/drm/panel/panel-lvds.c | 13 +
drivers/gpu/drm/panel/panel-novatek-nt35510.c | 6 +-
drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 4 +
.../gpu/drm/panel/panel-raspberrypi-touchscreen.c | 1 +
drivers/gpu/drm/panel/panel-raydium-rm67191.c | 1 +
drivers/gpu/drm/panel/panel-samsung-atna33xc20.c | 51 +-
drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 1 +
drivers/gpu/drm/panel/panel-simple.c | 137 +-
drivers/gpu/drm/panel/panel-sony-acx565akm.c | 12 +-
drivers/gpu/drm/panfrost/panfrost_devfreq.c | 3 +-
drivers/gpu/drm/panfrost/panfrost_device.c | 9 +-
drivers/gpu/drm/panfrost/panfrost_drv.c | 16 +-
drivers/gpu/drm/panfrost/panfrost_features.h | 13 +
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c | 2 +-
drivers/gpu/drm/panfrost/panfrost_gpu.c | 18 +-
drivers/gpu/drm/panfrost/panfrost_issues.h | 19 +-
drivers/gpu/drm/panfrost/panfrost_regs.h | 1 +
drivers/gpu/drm/pl111/pl111_display.c | 4 +-
drivers/gpu/drm/pl111/pl111_drv.c | 1 +
drivers/gpu/drm/pl111/pl111_versatile.c | 2 +
drivers/gpu/drm/qxl/qxl_display.c | 2 +
drivers/gpu/drm/qxl/qxl_draw.c | 1 +
drivers/gpu/drm/qxl/qxl_kms.c | 2 -
drivers/gpu/drm/r128/r128_drv.h | 4 +-
drivers/gpu/drm/radeon/.gitignore | 2 +-
drivers/gpu/drm/radeon/Kconfig | 2 +-
drivers/gpu/drm/radeon/Makefile | 2 +-
drivers/gpu/drm/radeon/atombios_crtc.c | 1 +
drivers/gpu/drm/radeon/atombios_encoders.c | 14 -
drivers/gpu/drm/radeon/evergreen.c | 1 +
drivers/gpu/drm/radeon/ni_dpm.c | 6 +-
drivers/gpu/drm/radeon/r100.c | 1 +
drivers/gpu/drm/radeon/r300_reg.h | 2 +-
drivers/gpu/drm/radeon/radeon_acpi.c | 2 -
drivers/gpu/drm/radeon/radeon_device.c | 3 +-
drivers/gpu/drm/radeon/radeon_display.c | 1 +
drivers/gpu/drm/radeon/radeon_fb.c | 1 +
drivers/gpu/drm/radeon/radeon_gem.c | 4 +-
drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 1 +
drivers/gpu/drm/radeon/radeon_legacy_encoders.c | 15 -
drivers/gpu/drm/radeon/radeon_mode.h | 4 -
drivers/gpu/drm/radeon/radeon_sa.c | 6 +-
drivers/gpu/drm/radeon/rs600.c | 1 +
drivers/gpu/drm/radeon/rv770.c | 1 +
drivers/gpu/drm/rcar-du/rcar_cmm.c | 2 +-
drivers/gpu/drm/rcar-du/rcar_cmm.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 7 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 19 +-
drivers/gpu/drm/rcar-du/rcar_du_drv.h | 4 +-
drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 3 +-
drivers/gpu/drm/rcar-du/rcar_du_encoder.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_group.c | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_group.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_kms.c | 3 +-
drivers/gpu/drm/rcar-du/rcar_du_kms.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_plane.c | 16 +-
drivers/gpu/drm/rcar-du/rcar_du_plane.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_regs.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 21 +-
drivers/gpu/drm/rcar-du/rcar_du_vsp.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_writeback.c | 4 +-
drivers/gpu/drm/rcar-du/rcar_du_writeback.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_lvds.c | 3 +-
drivers/gpu/drm/rcar-du/rcar_lvds.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_lvds_regs.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c | 17 +-
drivers/gpu/drm/rcar-du/rcar_mipi_dsi_regs.h | 2 +-
drivers/gpu/drm/rockchip/Kconfig | 4 +-
drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 10 +-
drivers/gpu/drm/rockchip/rk3066_hdmi.c | 1 +
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 1 +
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 5 +
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 8 +-
drivers/gpu/drm/rockchip/rockchip_rgb.c | 1 +
drivers/gpu/drm/scheduler/sched_main.c | 13 +-
drivers/gpu/drm/selftests/test-drm_damage_helper.c | 1 +
drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c | 2 +-
drivers/gpu/drm/selftests/test-drm_plane_helper.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_backlight.c | 6 +-
drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_kms.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_plane.c | 1 +
drivers/gpu/drm/solomon/ssd130x-spi.c | 2 +
drivers/gpu/drm/solomon/ssd130x.c | 2 +
drivers/gpu/drm/sprd/sprd_dpu.c | 2 +
drivers/gpu/drm/sti/sti_compositor.c | 1 +
drivers/gpu/drm/sti/sti_cursor.c | 1 +
drivers/gpu/drm/sti/sti_gdp.c | 2 +
drivers/gpu/drm/sti/sti_hda.c | 1 +
drivers/gpu/drm/sti/sti_hdmi.c | 9 +-
drivers/gpu/drm/sti/sti_hqvdp.c | 2 +
drivers/gpu/drm/sti/sti_plane.c | 2 +
drivers/gpu/drm/stm/drv.c | 1 +
drivers/gpu/drm/stm/ltdc.c | 294 +-
drivers/gpu/drm/stm/ltdc.h | 8 +-
drivers/gpu/drm/sun4i/sun4i_backend.c | 2 +
drivers/gpu/drm/sun4i/sun4i_framebuffer.c | 1 +
drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 1 +
drivers/gpu/drm/sun4i/sun4i_layer.c | 1 +
drivers/gpu/drm/sun4i/sun4i_tcon.c | 1 +
drivers/gpu/drm/sun4i/sun4i_tcon.h | 1 +
drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h | 9 +-
drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c | 242 +-
drivers/gpu/drm/sun4i/sun8i_mixer.c | 1 +
drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 2 +
drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 2 +
drivers/gpu/drm/tegra/dc.c | 3 +
drivers/gpu/drm/tegra/drm.c | 2 +
drivers/gpu/drm/tegra/drm.h | 11 +
drivers/gpu/drm/tegra/falcon.c | 8 +
drivers/gpu/drm/tegra/falcon.h | 1 +
drivers/gpu/drm/tegra/fb.c | 1 +
drivers/gpu/drm/tegra/gem.c | 11 +-
drivers/gpu/drm/tegra/hub.c | 3 +
drivers/gpu/drm/tegra/nvdec.c | 14 +-
drivers/gpu/drm/tegra/plane.c | 2 +
drivers/gpu/drm/tegra/submit.c | 48 +-
drivers/gpu/drm/tegra/uapi.c | 43 +-
drivers/gpu/drm/tegra/vic.c | 92 +-
drivers/gpu/drm/tests/.kunitconfig | 3 +
drivers/gpu/drm/tests/Makefile | 3 +
drivers/gpu/drm/tests/drm_format_helper_test.c | 161 +
drivers/gpu/drm/tidss/tidss_dispc.c | 3 +
drivers/gpu/drm/tidss/tidss_plane.c | 2 +
drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 1 +
drivers/gpu/drm/tilcdc/tilcdc_panel.c | 1 +
drivers/gpu/drm/tilcdc/tilcdc_plane.c | 1 +
drivers/gpu/drm/tiny/Kconfig | 1 +
drivers/gpu/drm/tiny/arcpgu.c | 2 +
drivers/gpu/drm/tiny/bochs.c | 3 +
drivers/gpu/drm/tiny/cirrus.c | 2 +
drivers/gpu/drm/tiny/gm12u320.c | 2 +
drivers/gpu/drm/tiny/ili9225.c | 1 +
drivers/gpu/drm/tiny/repaper.c | 1 +
drivers/gpu/drm/tiny/st7586.c | 1 +
drivers/gpu/drm/tiny/st7735r.c | 1 +
drivers/gpu/drm/ttm/ttm_bo.c | 9 +-
drivers/gpu/drm/ttm/ttm_pool.c | 2 +-
drivers/gpu/drm/tve200/tve200_display.c | 1 +
drivers/gpu/drm/udl/udl_connector.c | 3 +-
drivers/gpu/drm/v3d/Kconfig | 5 +-
drivers/gpu/drm/v3d/v3d_debugfs.c | 18 +-
drivers/gpu/drm/v3d/v3d_drv.c | 12 +-
drivers/gpu/drm/v3d/v3d_gem.c | 12 +-
drivers/gpu/drm/vboxvideo/vbox_mode.c | 2 +
drivers/gpu/drm/vc4/Kconfig | 1 +
drivers/gpu/drm/vc4/vc4_bo.c | 2 +
drivers/gpu/drm/vc4/vc4_crtc.c | 15 +-
drivers/gpu/drm/vc4/vc4_dpi.c | 100 +-
drivers/gpu/drm/vc4/vc4_drv.c | 19 +
drivers/gpu/drm/vc4/vc4_drv.h | 1 +
drivers/gpu/drm/vc4/vc4_dsi.c | 152 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 228 +-
drivers/gpu/drm/vc4/vc4_hdmi.h | 14 +-
drivers/gpu/drm/vc4/vc4_hdmi_regs.h | 38 +-
drivers/gpu/drm/vc4/vc4_hvs.c | 42 +
drivers/gpu/drm/vc4/vc4_kms.c | 9 +-
drivers/gpu/drm/vc4/vc4_plane.c | 94 +-
drivers/gpu/drm/vc4/vc4_regs.h | 2 +-
drivers/gpu/drm/vc4/vc4_txp.c | 1 +
drivers/gpu/drm/virtio/virtgpu_display.c | 1 +
drivers/gpu/drm/virtio/virtgpu_drv.h | 1 +
drivers/gpu/drm/virtio/virtgpu_ioctl.c | 6 +-
drivers/gpu/drm/virtio/virtgpu_object.c | 4 +-
drivers/gpu/drm/virtio/virtgpu_prime.c | 6 +-
drivers/gpu/drm/virtio/virtgpu_vq.c | 2 +
drivers/gpu/drm/vkms/vkms_composer.c | 10 +-
drivers/gpu/drm/vkms/vkms_drv.h | 1 +
drivers/gpu/drm/vkms/vkms_output.c | 1 +
drivers/gpu/drm/vkms/vkms_writeback.c | 1 +
drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 10 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 1 +
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 +
drivers/gpu/drm/xen/xen_drm_front_conn.c | 1 +
drivers/gpu/drm/xen/xen_drm_front_gem.c | 2 +-
drivers/gpu/drm/xen/xen_drm_front_kms.c | 1 +
drivers/gpu/drm/xlnx/zynqmp_disp.c | 1 +
drivers/gpu/drm/xlnx/zynqmp_dp.c | 1 +
drivers/gpu/host1x/Makefile | 6 +-
drivers/gpu/host1x/cdma.c | 43 +-
drivers/gpu/host1x/channel.c | 8 +-
drivers/gpu/host1x/context.c | 160 +
drivers/gpu/host1x/context.h | 38 +
drivers/gpu/host1x/context_bus.c | 5 -
drivers/gpu/host1x/dev.c | 124 +-
drivers/gpu/host1x/dev.h | 13 +
drivers/gpu/host1x/hw/cdma_hw.c | 34 +
drivers/gpu/host1x/hw/channel_hw.c | 137 +-
drivers/gpu/host1x/hw/host1x01_hardware.h | 114 +-
drivers/gpu/host1x/hw/host1x02_hardware.h | 113 +-
drivers/gpu/host1x/hw/host1x04_hardware.h | 113 +-
drivers/gpu/host1x/hw/host1x05_hardware.h | 113 +-
drivers/gpu/host1x/hw/host1x06_hardware.h | 118 +-
drivers/gpu/host1x/hw/host1x07_hardware.h | 118 +-
drivers/gpu/host1x/hw/host1x08.c | 33 +
drivers/gpu/host1x/hw/host1x08.h | 15 +
drivers/gpu/host1x/hw/host1x08_hardware.h | 21 +
drivers/gpu/host1x/hw/hw_host1x08_channel.h | 11 +
drivers/gpu/host1x/hw/hw_host1x08_common.h | 11 +
drivers/gpu/host1x/hw/hw_host1x08_hypervisor.h | 9 +
drivers/gpu/host1x/hw/hw_host1x08_uclass.h | 181 +
drivers/gpu/host1x/hw/hw_host1x08_vm.h | 36 +
drivers/gpu/host1x/hw/intr_hw.c | 11 +
drivers/gpu/host1x/hw/opcodes.h | 150 +
drivers/hid/.kunitconfig | 5 +
drivers/hid/Kconfig | 16 +
drivers/hid/Makefile | 3 +
drivers/hid/amd-sfh-hid/Makefile | 3 +
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 117 +-
drivers/hid/amd-sfh-hid/amd_sfh_common.h | 76 +
drivers/hid/amd-sfh-hid/amd_sfh_hid.c | 12 +-
drivers/hid/amd-sfh-hid/amd_sfh_hid.h | 12 +-
drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 78 +-
drivers/hid/amd-sfh-hid/amd_sfh_pcie.h | 52 +-
.../amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c | 17 +-
.../amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h | 3 -
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_desc.c | 300 +
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c | 324 +
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.h | 26 +
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_interface.c | 75 +
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_interface.h | 154 +
drivers/hid/hid-alps.c | 2 +
drivers/hid/hid-apple.c | 35 +-
drivers/hid/hid-core.c | 2 +-
drivers/hid/hid-cp2112.c | 5 +
drivers/hid/hid-hyperv.c | 5 +-
drivers/hid/hid-ids.h | 2 +
drivers/hid/hid-input.c | 2 +
drivers/hid/hid-lg-g15.c | 2 +-
drivers/hid/hid-logitech-hidpp.c | 2 +-
drivers/hid/hid-mcp2221.c | 3 +
drivers/hid/hid-multitouch.c | 13 +-
drivers/hid/hid-nintendo.c | 6 +-
drivers/hid/hid-uclogic-core.c | 2 +
drivers/hid/hid-uclogic-params.c | 225 +-
drivers/hid/hid-uclogic-rdesc-test.c | 219 +
drivers/hid/hid-uclogic-rdesc.c | 124 +-
drivers/hid/hid-uclogic-rdesc.h | 24 +-
drivers/hid/i2c-hid/Kconfig | 15 +
drivers/hid/i2c-hid/Makefile | 1 +
drivers/hid/i2c-hid/i2c-hid-of-elan.c | 130 +
drivers/hid/intel-ish-hid/ipc/ipc.c | 2 +-
drivers/hid/intel-ish-hid/ishtp-hid-client.c | 2 +-
drivers/hid/surface-hid/surface_hid_core.c | 38 +-
drivers/hid/wacom.h | 3 +
drivers/hid/wacom_sys.c | 4 +-
drivers/hid/wacom_wac.c | 111 +-
drivers/hv/channel_mgmt.c | 18 +-
drivers/hv/connection.c | 11 +
drivers/hv/hv_balloon.c | 135 +-
drivers/hv/hv_kvp.c | 2 +-
drivers/hv/hyperv_vmbus.h | 7 +
drivers/hv/vmbus_drv.c | 31 +-
drivers/hwmon/Kconfig | 27 +-
drivers/hwmon/aquacomputer_d5next.c | 316 +-
drivers/hwmon/aspeed-pwm-tacho.c | 2 +-
drivers/hwmon/asus-ec-sensors.c | 110 +-
drivers/hwmon/asus_wmi_sensors.c | 12 +-
drivers/hwmon/dell-smm-hwmon.c | 93 +-
drivers/hwmon/drivetemp.c | 1 +
drivers/hwmon/f71882fg.c | 2 +
drivers/hwmon/gsc-hwmon.c | 3 +
drivers/hwmon/ibmaem.c | 12 +-
drivers/hwmon/k10temp.c | 12 +
drivers/hwmon/lm75.h | 3 +-
drivers/hwmon/lm90.c | 2556 +-
drivers/hwmon/mcp3021.c | 99 +-
drivers/hwmon/nct6775-core.c | 3 +-
drivers/hwmon/nct6775-platform.c | 15 +-
drivers/hwmon/nct6775.h | 2 +
drivers/hwmon/occ/common.c | 18 +-
drivers/hwmon/occ/common.h | 3 +-
drivers/hwmon/occ/p8_i2c.c | 13 +-
drivers/hwmon/occ/p9_sbe.c | 13 +-
drivers/hwmon/pmbus/Kconfig | 9 +
drivers/hwmon/pmbus/Makefile | 1 +
drivers/hwmon/pmbus/lt7182s.c | 195 +
drivers/hwmon/pmbus/ltc2978.c | 44 +-
drivers/hwmon/pmbus/pmbus.h | 10 +-
drivers/hwmon/pmbus/pmbus_core.c | 446 +-
drivers/hwmon/pmbus/ucd9200.c | 2 +-
drivers/hwmon/sch56xx-common.c | 44 +-
drivers/hwmon/sht15.c | 17 +-
drivers/hwmon/tps23861.c | 14 +-
drivers/hwspinlock/omap_hwspinlock.c | 6 +-
drivers/hwspinlock/qcom_hwspinlock.c | 28 +-
drivers/hwtracing/coresight/coresight-config.h | 2 +
drivers/hwtracing/coresight/coresight-core.c | 1 +
drivers/hwtracing/coresight/coresight-etm-perf.c | 2 +
drivers/hwtracing/coresight/coresight-etm4x-core.c | 22 +-
drivers/hwtracing/coresight/coresight-etm4x.h | 11 +-
drivers/hwtracing/coresight/coresight-syscfg.c | 295 +-
drivers/hwtracing/coresight/coresight-syscfg.h | 13 +
drivers/hwtracing/intel_th/msu-sink.c | 3 +
drivers/hwtracing/intel_th/msu.c | 14 +-
drivers/hwtracing/intel_th/pci.c | 25 +-
drivers/i2c/busses/Kconfig | 33 +-
drivers/i2c/busses/Makefile | 4 +-
drivers/i2c/busses/i2c-altera.c | 2 +-
drivers/i2c/busses/i2c-aspeed.c | 2 +-
drivers/i2c/busses/i2c-au1550.c | 2 +-
drivers/i2c/busses/i2c-axxia.c | 2 +-
drivers/i2c/busses/i2c-bcm-iproc.c | 14 +-
drivers/i2c/busses/i2c-bcm-kona.c | 16 +-
drivers/i2c/busses/i2c-brcmstb.c | 18 +-
drivers/i2c/busses/i2c-cadence.c | 41 +-
drivers/i2c/busses/i2c-cbus-gpio.c | 2 +-
drivers/i2c/busses/i2c-cht-wc.c | 2 +-
drivers/i2c/busses/i2c-cros-ec-tunnel.c | 2 +-
drivers/i2c/busses/i2c-davinci.c | 2 +-
drivers/i2c/busses/i2c-designware-common.c | 3 -
drivers/i2c/busses/i2c-designware-platdrv.c | 13 +-
drivers/i2c/busses/i2c-digicolor.c | 2 +-
drivers/i2c/busses/i2c-eg20t.c | 2 +-
drivers/i2c/busses/i2c-emev2.c | 2 +-
drivers/i2c/busses/i2c-exynos5.c | 2 +-
drivers/i2c/busses/i2c-gpio.c | 2 +-
drivers/i2c/busses/i2c-highlander.c | 2 +-
drivers/i2c/busses/i2c-hisi.c | 3 +-
drivers/i2c/busses/i2c-hix5hd2.c | 2 +-
drivers/i2c/busses/i2c-i801.c | 46 +-
drivers/i2c/busses/i2c-ibm_iic.c | 2 +-
drivers/i2c/busses/i2c-icy.c | 2 +-
drivers/i2c/busses/i2c-imx-lpi2c.c | 2 +-
drivers/i2c/busses/i2c-imx.c | 2 +-
drivers/i2c/busses/i2c-kempld.c | 1 +
drivers/i2c/busses/i2c-lpc2k.c | 2 +-
drivers/i2c/busses/i2c-meson.c | 2 +-
drivers/i2c/busses/i2c-microchip-corei2c.c | 480 +
drivers/i2c/busses/i2c-mlxcpld.c | 6 +-
drivers/i2c/busses/i2c-mpc.c | 7 +-
drivers/i2c/busses/i2c-mt65xx.c | 54 +-
drivers/i2c/busses/i2c-mt7621.c | 2 +-
drivers/i2c/busses/i2c-mv64xxx.c | 63 +-
drivers/i2c/busses/i2c-mxs.c | 4 +-
drivers/i2c/busses/i2c-npcm7xx.c | 179 +-
drivers/i2c/busses/i2c-nvidia-gpu.c | 2 +-
drivers/i2c/busses/i2c-omap.c | 2 +-
drivers/i2c/busses/i2c-opal.c | 4 +-
drivers/i2c/busses/i2c-parport.c | 2 +-
drivers/i2c/busses/i2c-piix4.c | 16 +-
drivers/i2c/busses/i2c-pxa.c | 2 +-
drivers/i2c/busses/i2c-qcom-cci.c | 62 +-
drivers/i2c/busses/i2c-qcom-geni.c | 29 +-
drivers/i2c/busses/i2c-qup.c | 2 +-
drivers/i2c/busses/i2c-rcar.c | 2 +-
drivers/i2c/busses/i2c-riic.c | 2 +-
drivers/i2c/busses/i2c-rk3x.c | 2 +-
drivers/i2c/busses/i2c-rzv2m.c | 532 +
drivers/i2c/busses/i2c-s3c2410.c | 2 +-
drivers/i2c/busses/i2c-scmi.c | 9 +-
drivers/i2c/busses/i2c-sh_mobile.c | 2 +-
drivers/i2c/busses/i2c-simtec.c | 2 +-
drivers/i2c/busses/i2c-stm32f7.c | 7 +
drivers/i2c/busses/i2c-taos-evm.c | 2 +-
drivers/i2c/busses/i2c-tegra-bpmp.c | 2 +-
drivers/i2c/busses/i2c-tegra.c | 2 +-
drivers/i2c/busses/i2c-uniphier-f.c | 2 +-
drivers/i2c/busses/i2c-uniphier.c | 2 +-
drivers/i2c/busses/i2c-versatile.c | 2 +-
drivers/i2c/busses/i2c-wmt.c | 2 +-
drivers/i2c/busses/i2c-xiic.c | 4 +-
drivers/i2c/i2c-core-base.c | 11 +-
drivers/i2c/i2c-smbus.c | 2 +-
drivers/i2c/muxes/i2c-mux-gpmux.c | 1 +
drivers/idle/intel_idle.c | 131 +-
drivers/iio/accel/Kconfig | 2 +
drivers/iio/accel/adxl313_core.c | 2 +-
drivers/iio/accel/adxl355_core.c | 2 +-
drivers/iio/accel/adxl367.c | 48 +-
drivers/iio/accel/adxl367_spi.c | 8 +-
drivers/iio/accel/bma180.c | 3 +-
drivers/iio/accel/bma220_spi.c | 10 +-
drivers/iio/accel/bma400.h | 50 +-
drivers/iio/accel/bma400_core.c | 710 +-
drivers/iio/accel/bma400_i2c.c | 10 +-
drivers/iio/accel/bma400_spi.c | 8 +-
drivers/iio/accel/bmi088-accel-core.c | 99 +-
drivers/iio/accel/bmi088-accel-spi.c | 17 +-
drivers/iio/accel/bmi088-accel.h | 9 +-
drivers/iio/accel/cros_ec_accel_legacy.c | 6 +-
drivers/iio/accel/kxcjk-1013.c | 4 +-
drivers/iio/accel/kxsd9-i2c.c | 2 +-
drivers/iio/accel/kxsd9-spi.c | 2 +-
drivers/iio/accel/kxsd9.c | 11 +-
drivers/iio/accel/mc3230.c | 4 +-
drivers/iio/accel/mma7660.c | 6 +-
drivers/iio/accel/mma8452.c | 22 +-
drivers/iio/accel/mxc4005.c | 4 +-
drivers/iio/accel/sca3000.c | 6 +-
drivers/iio/accel/sca3300.c | 353 +-
drivers/iio/accel/stk8312.c | 4 +-
drivers/iio/accel/stk8ba50.c | 4 +-
drivers/iio/adc/Kconfig | 17 +-
drivers/iio/adc/Makefile | 1 +
drivers/iio/adc/ad7266.c | 4 +-
drivers/iio/adc/ad7280a.c | 2 +-
drivers/iio/adc/ad7292.c | 2 +-
drivers/iio/adc/ad7298.c | 2 +-
drivers/iio/adc/ad7476.c | 5 +-
drivers/iio/adc/ad7606.c | 1 +
drivers/iio/adc/ad7606.h | 4 +-
drivers/iio/adc/ad7606_par.c | 1 +
drivers/iio/adc/ad7766.c | 5 +-
drivers/iio/adc/ad7768-1.c | 6 +-
drivers/iio/adc/ad7887.c | 5 +-
drivers/iio/adc/ad7923.c | 4 +-
drivers/iio/adc/ad7949.c | 4 +-
drivers/iio/adc/ad799x.c | 8 +-
drivers/iio/adc/ad9467.c | 1 +
drivers/iio/adc/adi-axi-adc.c | 14 +-
drivers/iio/adc/aspeed_adc.c | 1 +
drivers/iio/adc/at91-sama5d2_adc.c | 11 +-
drivers/iio/adc/axp288_adc.c | 8 +
drivers/iio/adc/berlin2-adc.c | 2 +
drivers/iio/adc/hi8435.c | 2 +-
drivers/iio/adc/imx7d_adc.c | 6 +-
drivers/iio/adc/imx8qxp-adc.c | 14 +-
drivers/iio/adc/ina2xx-adc.c | 10 +-
drivers/iio/adc/ingenic-adc.c | 2 +
drivers/iio/adc/intel_mrfld_adc.c | 1 +
drivers/iio/adc/lpc18xx_adc.c | 3 +-
drivers/iio/adc/ltc2496.c | 4 +-
drivers/iio/adc/ltc2497.c | 4 +-
drivers/iio/adc/max1027.c | 8 +-
drivers/iio/adc/max11100.c | 4 +-
drivers/iio/adc/max1118.c | 2 +-
drivers/iio/adc/max1241.c | 2 +-
drivers/iio/adc/mcp320x.c | 2 +-
drivers/iio/adc/meson_saradc.c | 187 +-
drivers/iio/adc/mp2629_adc.c | 1 +
drivers/iio/adc/mt6360-adc.c | 1 +
drivers/iio/adc/mt6577_auxadc.c | 12 +-
drivers/iio/adc/nau7802.c | 16 +-
drivers/iio/adc/npcm_adc.c | 37 +-
drivers/iio/adc/qcom-spmi-rradc.c | 1022 +
drivers/iio/adc/rzg2l_adc.c | 12 +-
drivers/iio/adc/sc27xx_adc.c | 15 +-
drivers/iio/adc/stm32-adc-core.c | 11 +-
drivers/iio/adc/stm32-adc.c | 43 +-
drivers/iio/adc/stmpe-adc.c | 6 +-
drivers/iio/adc/stx104.c | 86 +-
drivers/iio/adc/ti-adc0832.c | 2 +-
drivers/iio/adc/ti-adc084s021.c | 4 +-
drivers/iio/adc/ti-adc108s102.c | 4 +-
drivers/iio/adc/ti-adc12138.c | 2 +-
drivers/iio/adc/ti-adc128s052.c | 2 +-
drivers/iio/adc/ti-adc161s626.c | 2 +-
drivers/iio/adc/ti-ads1015.c | 8 +-
drivers/iio/adc/ti-ads124s08.c | 8 +-
drivers/iio/adc/ti-ads131e08.c | 12 +-
drivers/iio/adc/ti-ads7950.c | 4 +-
drivers/iio/adc/ti-ads8344.c | 2 +-
drivers/iio/adc/ti-ads8688.c | 2 +-
drivers/iio/adc/ti-tlc4541.c | 4 +-
drivers/iio/adc/ti-tsc2046.c | 2 +-
drivers/iio/adc/ti_am335x_adc.c | 8 +-
drivers/iio/adc/vf610_adc.c | 15 +-
drivers/iio/adc/xilinx-ams.c | 10 +-
drivers/iio/adc/xilinx-xadc-core.c | 69 +-
drivers/iio/addac/ad74413r.c | 12 +-
drivers/iio/afe/iio-rescale.c | 4 +-
drivers/iio/amplifiers/ad8366.c | 4 +-
drivers/iio/chemical/atlas-sensor.c | 8 +-
drivers/iio/chemical/bme680_core.c | 2 +-
drivers/iio/chemical/ccs811.c | 14 +-
drivers/iio/chemical/scd4x.c | 8 +-
drivers/iio/chemical/sps30.c | 2 +-
drivers/iio/chemical/sps30_i2c.c | 1 +
drivers/iio/chemical/sps30_serial.c | 1 +
.../iio/common/cros_ec_sensors/cros_ec_lid_angle.c | 5 +-
.../iio/common/cros_ec_sensors/cros_ec_sensors.c | 7 +-
.../common/cros_ec_sensors/cros_ec_sensors_core.c | 88 +-
drivers/iio/common/ssp_sensors/ssp.h | 3 +-
drivers/iio/dac/Kconfig | 2 +-
drivers/iio/dac/ad5064.c | 4 +-
drivers/iio/dac/ad5360.c | 4 +-
drivers/iio/dac/ad5380.c | 4 +-
drivers/iio/dac/ad5421.c | 4 +-
drivers/iio/dac/ad5449.c | 4 +-
drivers/iio/dac/ad5504.c | 2 +-
drivers/iio/dac/ad5592r-base.c | 2 +-
drivers/iio/dac/ad5592r-base.h | 4 +-
drivers/iio/dac/ad5686.h | 6 +-
drivers/iio/dac/ad5755.c | 4 +-
drivers/iio/dac/ad5761.c | 4 +-
drivers/iio/dac/ad5764.c | 4 +-
drivers/iio/dac/ad5766.c | 2 +-
drivers/iio/dac/ad5770r.c | 2 +-
drivers/iio/dac/ad5791.c | 2 +-
drivers/iio/dac/ad7293.c | 2 +-
drivers/iio/dac/ad7303.c | 4 +-
drivers/iio/dac/ad8801.c | 2 +-
drivers/iio/dac/cio-dac.c | 20 +-
drivers/iio/dac/ds4424.c | 8 +-
drivers/iio/dac/ltc1660.c | 9 +-
drivers/iio/dac/ltc2688.c | 4 +-
drivers/iio/dac/max517.c | 8 +-
drivers/iio/dac/max5821.c | 9 +-
drivers/iio/dac/mcp4725.c | 9 +-
drivers/iio/dac/mcp4922.c | 13 +-
drivers/iio/dac/stm32-dac.c | 6 +-
drivers/iio/dac/ti-dac082s085.c | 2 +-
drivers/iio/dac/ti-dac5571.c | 5 +-
drivers/iio/dac/ti-dac7311.c | 2 +-
drivers/iio/dac/ti-dac7612.c | 4 +-
drivers/iio/dac/vf610_dac.c | 1 +
drivers/iio/frequency/ad9523.c | 6 +-
drivers/iio/frequency/adf4350.c | 6 +-
drivers/iio/frequency/adf4371.c | 2 +-
drivers/iio/frequency/admv1013.c | 2 +-
drivers/iio/frequency/admv1014.c | 8 +-
drivers/iio/frequency/admv4420.c | 2 +-
drivers/iio/frequency/adrf6780.c | 2 +-
drivers/iio/gyro/adis16080.c | 2 +-
drivers/iio/gyro/adis16130.c | 2 +-
drivers/iio/gyro/adxrs450.c | 2 +-
drivers/iio/gyro/bmg160_core.c | 2 +-
drivers/iio/gyro/fxas21002c_core.c | 6 +-
drivers/iio/gyro/itg3200_core.c | 9 +-
drivers/iio/gyro/mpu3050-core.c | 15 +-
drivers/iio/gyro/mpu3050-i2c.c | 2 +-
drivers/iio/health/afe4403.c | 9 +-
drivers/iio/health/afe4404.c | 13 +-
drivers/iio/humidity/hts221_buffer.c | 6 +-
drivers/iio/humidity/hts221_core.c | 12 +-
drivers/iio/humidity/hts221_i2c.c | 3 +-
drivers/iio/humidity/hts221_spi.c | 3 +-
drivers/iio/imu/bmi160/bmi160_core.c | 6 +-
drivers/iio/imu/bmi160/bmi160_i2c.c | 1 +
drivers/iio/imu/bmi160/bmi160_spi.c | 1 +
drivers/iio/imu/fxos8700_core.c | 2 +-
drivers/iio/imu/inv_icm42600/inv_icm42600.h | 3 +-
drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.h | 2 +-
drivers/iio/imu/inv_icm42600/inv_icm42600_core.c | 2 +-
drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 2 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 16 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 3 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i3c.c | 5 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 3 +-
drivers/iio/industrialio-buffer.c | 66 +-
drivers/iio/industrialio-core.c | 88 +-
drivers/iio/industrialio-sw-device.c | 2 +-
drivers/iio/industrialio-sw-trigger.c | 2 +-
drivers/iio/industrialio-trigger.c | 89 +-
drivers/iio/light/al3010.c | 8 +-
drivers/iio/light/al3320a.c | 9 +-
drivers/iio/light/as73211.c | 9 +-
drivers/iio/light/bh1750.c | 6 +-
drivers/iio/light/bh1780.c | 7 +-
drivers/iio/light/cm32181.c | 22 +
drivers/iio/light/cm3605.c | 13 +-
drivers/iio/light/cros_ec_light_prox.c | 9 +-
drivers/iio/light/gp2ap002.c | 14 +-
drivers/iio/light/isl29028.c | 19 +-
drivers/iio/light/jsa1212.c | 4 +-
drivers/iio/light/opt3001.c | 3 +-
drivers/iio/light/pa12203001.c | 8 +-
drivers/iio/light/stk3310.c | 4 +-
drivers/iio/light/tsl2563.c | 7 +-
drivers/iio/light/tsl2583.c | 17 +-
drivers/iio/light/tsl2591.c | 12 +-
drivers/iio/light/us5182d.c | 16 +-
drivers/iio/light/vcnl4000.c | 22 +-
drivers/iio/light/vcnl4035.c | 24 +-
drivers/iio/light/veml6030.c | 14 +-
drivers/iio/magnetometer/ak8974.c | 14 +-
drivers/iio/magnetometer/bmc150_magn.c | 3 +-
drivers/iio/magnetometer/bmc150_magn.h | 2 +-
drivers/iio/magnetometer/bmc150_magn_i2c.c | 4 +-
drivers/iio/magnetometer/hmc5843_core.c | 2 +-
drivers/iio/magnetometer/rm3100-core.c | 2 +-
drivers/iio/magnetometer/yamaha-yas530.c | 16 +-
drivers/iio/potentiometer/ad5110.c | 4 +-
drivers/iio/potentiometer/ad5272.c | 2 +-
drivers/iio/potentiometer/max5481.c | 2 +-
drivers/iio/potentiometer/mcp41010.c | 2 +-
drivers/iio/potentiometer/mcp4131.c | 2 +-
drivers/iio/pressure/bmp280-core.c | 2 +-
drivers/iio/pressure/bmp280-i2c.c | 1 +
drivers/iio/pressure/bmp280-regmap.c | 4 +-
drivers/iio/pressure/bmp280-spi.c | 1 +
drivers/iio/pressure/cros_ec_baro.c | 9 +-
drivers/iio/pressure/dlhl60d.c | 2 +-
drivers/iio/proximity/as3935.c | 2 +-
drivers/iio/proximity/cros_ec_mkbp_proximity.c | 8 +-
drivers/iio/proximity/ping.c | 2 +-
drivers/iio/proximity/srf04.c | 11 +-
drivers/iio/proximity/srf08.c | 2 +-
drivers/iio/proximity/sx9324.c | 79 +-
drivers/iio/proximity/sx9360.c | 15 +-
drivers/iio/proximity/sx_common.c | 10 +-
drivers/iio/proximity/vcnl3020.c | 4 +-
drivers/iio/proximity/vl53l0x-i2c.c | 55 +-
drivers/iio/resolver/ad2s1200.c | 2 +-
drivers/iio/resolver/ad2s90.c | 2 +-
drivers/iio/temperature/ltc2983.c | 13 +-
drivers/iio/temperature/max31865.c | 2 +-
drivers/iio/temperature/maxim_thermocouple.c | 2 +-
drivers/iio/test/Kconfig | 26 +-
drivers/iio/test/Makefile | 4 +-
drivers/iio/test/iio-test-format.c | 4 +
drivers/iio/test/iio-test-rescale.c | 5 +
drivers/iio/trigger/iio-trig-sysfs.c | 1 +
drivers/iio/trigger/stm32-lptimer-trigger.c | 4 +-
drivers/infiniband/Kconfig | 15 +-
drivers/infiniband/core/cm.c | 4 +-
drivers/infiniband/core/cma.c | 230 +-
drivers/infiniband/core/cma_priv.h | 1 +
drivers/infiniband/core/rdma_core.c | 2 +-
drivers/infiniband/core/roce_gid_mgmt.c | 2 +-
drivers/infiniband/core/rw.c | 45 +-
drivers/infiniband/hw/Makefile | 1 +
drivers/infiniband/hw/bnxt_re/bnxt_re.h | 2 +-
drivers/infiniband/hw/erdma/Kconfig | 12 +
drivers/infiniband/hw/erdma/Makefile | 4 +
drivers/infiniband/hw/erdma/erdma.h | 287 +
drivers/infiniband/hw/erdma/erdma_cm.c | 1430 +
drivers/infiniband/hw/erdma/erdma_cm.h | 167 +
drivers/infiniband/hw/erdma/erdma_cmdq.c | 493 +
drivers/infiniband/hw/erdma/erdma_cq.c | 205 +
drivers/infiniband/hw/erdma/erdma_eq.c | 329 +
drivers/infiniband/hw/erdma/erdma_hw.h | 508 +
drivers/infiniband/hw/erdma/erdma_main.c | 608 +
drivers/infiniband/hw/erdma/erdma_qp.c | 566 +
drivers/infiniband/hw/erdma/erdma_verbs.c | 1460 +
drivers/infiniband/hw/erdma/erdma_verbs.h | 342 +
drivers/infiniband/hw/hfi1/Kconfig | 2 +-
drivers/infiniband/hw/hfi1/file_ops.c | 4 +-
drivers/infiniband/hw/hfi1/ipoib_tx.c | 4 +-
drivers/infiniband/hw/hfi1/netdev_rx.c | 2 +-
drivers/infiniband/hw/hfi1/pio_copy.c | 2 +-
drivers/infiniband/hw/hfi1/trace_dbg.h | 8 +-
drivers/infiniband/hw/hns/hns_roce_device.h | 1 +
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 248 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 13 +-
drivers/infiniband/hw/irdma/cm.c | 61 +-
drivers/infiniband/hw/irdma/ctrl.c | 8 +-
drivers/infiniband/hw/irdma/hw.c | 33 +-
drivers/infiniband/hw/irdma/i40iw_hw.c | 1 +
drivers/infiniband/hw/irdma/icrdma_hw.c | 1 +
drivers/infiniband/hw/irdma/irdma.h | 1 +
drivers/infiniband/hw/irdma/main.h | 2 +-
drivers/infiniband/hw/irdma/utils.c | 1 +
drivers/infiniband/hw/irdma/verbs.c | 20 +-
drivers/infiniband/hw/mlx5/cq.c | 4 +
drivers/infiniband/hw/mlx5/dm.c | 53 +-
drivers/infiniband/hw/mlx5/fs.c | 165 +-
drivers/infiniband/hw/mlx5/main.c | 4 +-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 79 +-
drivers/infiniband/hw/mlx5/mr.c | 515 +-
drivers/infiniband/hw/mlx5/odp.c | 2 +-
drivers/infiniband/hw/mlx5/umr.c | 78 +-
drivers/infiniband/hw/qedr/qedr.h | 1 +
drivers/infiniband/hw/qedr/verbs.c | 12 +-
drivers/infiniband/hw/qib/qib.h | 2 +-
drivers/infiniband/hw/qib/qib_file_ops.c | 6 +-
drivers/infiniband/hw/qib/qib_iba7220.c | 2 +-
drivers/infiniband/hw/qib/qib_iba7322.c | 23 +-
drivers/infiniband/hw/qib/qib_init.c | 5 +-
drivers/infiniband/hw/qib/qib_sd7220.c | 2 +-
drivers/infiniband/hw/usnic/usnic_uiom.c | 2 +-
drivers/infiniband/sw/rxe/rxe_comp.c | 49 +-
drivers/infiniband/sw/rxe/rxe_cq.c | 8 +-
drivers/infiniband/sw/rxe/rxe_loc.h | 5 +-
drivers/infiniband/sw/rxe/rxe_mr.c | 213 +-
drivers/infiniband/sw/rxe/rxe_mw.c | 19 +-
drivers/infiniband/sw/rxe/rxe_param.h | 6 +
drivers/infiniband/sw/rxe/rxe_pool.c | 106 +-
drivers/infiniband/sw/rxe/rxe_pool.h | 18 +-
drivers/infiniband/sw/rxe/rxe_qp.c | 36 +-
drivers/infiniband/sw/rxe/rxe_queue.h | 5 +-
drivers/infiniband/sw/rxe/rxe_req.c | 137 +-
drivers/infiniband/sw/rxe/rxe_resp.c | 236 +-
drivers/infiniband/sw/rxe/rxe_task.c | 16 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 78 +-
drivers/infiniband/sw/rxe/rxe_verbs.h | 27 +-
drivers/infiniband/sw/siw/siw_cm.c | 7 +-
drivers/infiniband/sw/siw/siw_verbs.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 6 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 4 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 6 +-
drivers/infiniband/ulp/rtrs/rtrs-clt-stats.c | 14 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 50 +-
drivers/infiniband/ulp/rtrs/rtrs-pri.h | 21 +-
drivers/infiniband/ulp/rtrs/rtrs-srv-stats.c | 32 +-
drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 2 +
drivers/infiniband/ulp/rtrs/rtrs-srv.c | 32 +-
drivers/infiniband/ulp/rtrs/rtrs-srv.h | 15 +-
drivers/infiniband/ulp/srp/ib_srp.c | 3 +-
drivers/infiniband/ulp/srpt/ib_srpt.c | 156 +-
drivers/infiniband/ulp/srpt/ib_srpt.h | 18 +-
drivers/input/input-core-private.h | 16 +
drivers/input/input-mt.c | 48 +-
drivers/input/input.c | 149 +-
drivers/input/joystick/Kconfig | 1 +
drivers/input/joystick/adc-joystick.c | 15 +-
drivers/input/joystick/sensehat-joystick.c | 4 +-
drivers/input/keyboard/Kconfig | 2 +-
drivers/input/keyboard/adp5588-keys.c | 206 +-
drivers/input/keyboard/applespi.c | 42 +-
drivers/input/keyboard/bcm-keypad.c | 14 +-
drivers/input/keyboard/cros_ec_keyb.c | 89 +-
drivers/input/keyboard/mt6779-keypad.c | 18 +-
drivers/input/keyboard/mtk-pmic-keys.c | 98 +-
drivers/input/keyboard/omap4-keypad.c | 26 +-
drivers/input/misc/gpio_decoder.c | 10 +-
drivers/input/misc/iqs7222.c | 178 +-
drivers/input/misc/palmas-pwrbutton.c | 10 +-
drivers/input/misc/soc_button_array.c | 4 +-
drivers/input/misc/tps65218-pwrbutton.c | 10 +-
drivers/input/mouse/bcm5974.c | 7 +-
drivers/input/mouse/cyapa_gen6.c | 2 +-
drivers/input/mouse/gpio_mouse.c | 2 +-
drivers/input/serio/gscps2.c | 4 +
drivers/input/serio/i8042-x86ia64io.h | 1282 +-
drivers/input/touchscreen/bcm_iproc_tsc.c | 9 +-
drivers/input/touchscreen/edt-ft5x06.c | 96 +-
drivers/input/touchscreen/exc3000.c | 7 +-
drivers/input/touchscreen/goodix.c | 27 +-
drivers/input/touchscreen/usbtouchscreen.c | 3 +
drivers/input/touchscreen/wm97xx-core.c | 4 +-
drivers/input/touchscreen/zinitix.c | 112 +-
drivers/interconnect/bulk.c | 42 +
drivers/interconnect/imx/Kconfig | 4 +
drivers/interconnect/imx/Makefile | 2 +
drivers/interconnect/imx/imx.c | 84 +-
drivers/interconnect/imx/imx.h | 49 +-
drivers/interconnect/imx/imx8mm.c | 2 +-
drivers/interconnect/imx/imx8mn.c | 2 +-
drivers/interconnect/imx/imx8mp.c | 259 +
drivers/interconnect/imx/imx8mq.c | 2 +-
drivers/interconnect/qcom/Kconfig | 9 +
drivers/interconnect/qcom/Makefile | 5 +
drivers/interconnect/qcom/icc-common.c | 34 +
drivers/interconnect/qcom/icc-common.h | 13 +
drivers/interconnect/qcom/icc-rpm.c | 168 +-
drivers/interconnect/qcom/icc-rpm.h | 6 +
drivers/interconnect/qcom/icc-rpmh.c | 30 +-
drivers/interconnect/qcom/icc-rpmh.h | 1 -
drivers/interconnect/qcom/msm8939.c | 1 +
drivers/interconnect/qcom/sm6350.c | 493 +
drivers/interconnect/qcom/sm6350.h | 139 +
drivers/interconnect/qcom/sm8450.c | 1 +
drivers/iommu/Kconfig | 10 +
drivers/iommu/amd/amd_iommu.h | 18 +-
drivers/iommu/amd/amd_iommu_types.h | 186 +-
drivers/iommu/amd/init.c | 942 +-
drivers/iommu/amd/io_pgtable.c | 6 +-
drivers/iommu/amd/iommu.c | 585 +-
drivers/iommu/amd/iommu_v2.c | 67 +-
drivers/iommu/amd/quirks.c | 4 +-
drivers/iommu/apple-dart.c | 4 -
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 144 +-
drivers/iommu/arm/arm-smmu/Makefile | 1 +
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c | 142 +
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 34 +-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.h | 28 +
drivers/iommu/arm/arm-smmu/arm-smmu.c | 73 +-
drivers/iommu/arm/arm-smmu/arm-smmu.h | 1 +
drivers/iommu/arm/arm-smmu/qcom_iommu.c | 18 +-
drivers/iommu/dma-iommu.c | 124 +-
drivers/iommu/exynos-iommu.c | 182 +-
drivers/iommu/fsl_pamu_domain.c | 5 -
drivers/iommu/hyperv-iommu.c | 2 +-
drivers/iommu/intel/cap_audit.c | 2 +-
drivers/iommu/intel/debugfs.c | 51 +-
drivers/iommu/intel/dmar.c | 43 +-
drivers/iommu/intel/iommu.c | 471 +-
.../intel-iommu.h => drivers/iommu/intel/iommu.h | 38 +-
drivers/iommu/intel/irq_remapping.c | 2 +-
drivers/iommu/intel/pasid.c | 176 +-
drivers/iommu/intel/pasid.h | 2 +-
drivers/iommu/intel/perf.c | 2 +-
drivers/iommu/intel/svm.c | 11 +-
drivers/iommu/intel/trace.c | 2 +-
.../intel_iommu.h => drivers/iommu/intel/trace.h | 7 +-
drivers/iommu/io-pgtable-arm-v7s.c | 75 +-
drivers/iommu/iommu.c | 59 +-
drivers/iommu/iova.c | 12 +-
drivers/iommu/ipmmu-vmsa.c | 2 +-
drivers/iommu/msm_iommu.c | 7 +-
drivers/iommu/mtk_iommu.c | 71 +-
drivers/iommu/mtk_iommu_v1.c | 5 -
drivers/iommu/of_iommu.c | 2 +-
drivers/iommu/sprd-iommu.c | 11 -
drivers/iommu/sun50i-iommu.c | 3 -
drivers/iommu/tegra-gart.c | 5 -
drivers/iommu/tegra-smmu.c | 3 -
drivers/iommu/virtio-iommu.c | 31 +-
drivers/irqchip/Kconfig | 71 +-
drivers/irqchip/Makefile | 5 +
drivers/irqchip/irq-apple-aic.c | 4 +-
drivers/irqchip/irq-bcm6345-l1.c | 4 +-
drivers/irqchip/irq-gic-realview.c | 1 +
drivers/irqchip/irq-gic-v3.c | 68 +-
drivers/irqchip/irq-gic.c | 18 +-
drivers/irqchip/irq-keystone.c | 10 +-
drivers/irqchip/irq-loongarch-cpu.c | 148 +
drivers/irqchip/irq-loongson-eiointc.c | 395 +
drivers/irqchip/irq-loongson-liointc.c | 211 +-
drivers/irqchip/irq-loongson-pch-lpc.c | 205 +
drivers/irqchip/irq-loongson-pch-msi.c | 127 +-
drivers/irqchip/irq-loongson-pch-pic.c | 177 +-
drivers/irqchip/irq-mips-gic.c | 84 +-
drivers/irqchip/irq-or1k-pic.c | 1 -
drivers/irqchip/irq-realtek-rtl.c | 2 +-
drivers/irqchip/irq-renesas-rzg2l.c | 393 +
drivers/irqchip/irq-riscv-intc.c | 7 +-
drivers/irqchip/irq-sifive-plic.c | 149 +-
drivers/irqchip/irq-sp7021-intc.c | 278 +
drivers/irqchip/irq-stm32-exti.c | 250 +-
drivers/irqchip/irq-tegra.c | 10 +-
drivers/irqchip/irq-uniphier-aidet.c | 1 +
drivers/isdn/hardware/mISDN/hfcsusb.c | 2 +-
drivers/leds/Kconfig | 10 +-
drivers/leds/blink/Kconfig | 14 +
drivers/leds/blink/Makefile | 1 +
drivers/leds/blink/leds-bcm63138.c | 307 +
drivers/leds/leds-is31fl319x.c | 529 +-
drivers/leds/leds-turris-omnia.c | 4 +-
drivers/leds/rgb/leds-pwm-multicolor.c | 8 +-
drivers/leds/simple/Kconfig | 6 +-
drivers/leds/simple/Makefile | 1 +
drivers/leds/simple/simatic-ipc-leds-gpio.c | 105 +
drivers/leds/simple/simatic-ipc-leds.c | 80 +-
drivers/macintosh/adb.c | 2 +-
drivers/mailbox/bcm-flexrm-mailbox.c | 14 +-
drivers/mailbox/imx-mailbox.c | 40 +-
drivers/mailbox/mtk-cmdq-mailbox.c | 11 -
drivers/mcb/mcb-core.c | 4 +-
drivers/md/Makefile | 3 +-
drivers/md/bcache/Kconfig | 2 +-
drivers/md/bcache/btree.c | 2 +-
drivers/md/bcache/super.c | 27 +-
drivers/md/dm-bufio.c | 71 +-
drivers/md/dm-cache-metadata.h | 2 +-
drivers/md/dm-cache-target.c | 2 +-
drivers/md/dm-core.h | 33 +-
drivers/md/dm-ebs-target.c | 18 +-
drivers/md/dm-era-target.c | 8 +-
drivers/md/dm-flakey.c | 8 +-
drivers/md/dm-ima.c | 5 +-
drivers/md/dm-integrity.c | 78 +-
drivers/md/dm-io-rewind.c | 166 +
drivers/md/dm-io.c | 38 +-
drivers/md/dm-ioctl.c | 6 +-
drivers/md/dm-kcopyd.c | 28 +-
drivers/md/dm-log.c | 13 +-
drivers/md/dm-raid.c | 46 +-
drivers/md/dm-raid1.c | 12 +-
drivers/md/dm-rq.c | 3 +-
drivers/md/dm-snap-persistent.c | 27 +-
drivers/md/dm-snap.c | 2 +-
drivers/md/dm-table.c | 333 +-
drivers/md/dm-thin-metadata.c | 7 +-
drivers/md/dm-thin.c | 4 +-
drivers/md/dm-verity-fec.c | 4 +-
drivers/md/dm-verity-loadpin.c | 75 +
drivers/md/dm-verity-target.c | 208 +-
drivers/md/dm-verity.h | 10 +-
drivers/md/dm-writecache.c | 58 +-
drivers/md/dm-zone.c | 95 +-
drivers/md/dm-zoned-metadata.c | 9 +-
drivers/md/dm-zoned-target.c | 25 +-
drivers/md/dm-zoned.h | 2 +-
drivers/md/dm.c | 612 +-
drivers/md/dm.h | 6 -
drivers/md/md-autodetect.c | 21 +-
drivers/md/md-bitmap.c | 6 +-
drivers/md/md-cluster.c | 4 +-
drivers/md/md.c | 452 +-
drivers/md/md.h | 24 +-
drivers/md/persistent-data/dm-block-manager.c | 3 +-
drivers/md/raid1.c | 14 +-
drivers/md/raid10.c | 27 +-
drivers/md/raid5-cache.c | 52 +-
drivers/md/raid5-log.h | 77 +-
drivers/md/raid5-ppl.c | 18 +-
drivers/md/raid5.c | 742 +-
drivers/md/raid5.h | 2 +-
drivers/media/cec/core/cec-adap.c | 5 +-
drivers/media/cec/platform/cros-ec/cros-ec-cec.c | 4 +
drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 44 +
drivers/media/common/videobuf2/videobuf2-v4l2.c | 12 +
drivers/media/i2c/Kconfig | 18 +-
drivers/media/i2c/Makefile | 1 +
drivers/media/i2c/adv7180.c | 5 +-
drivers/media/i2c/adv7343_regs.h | 10 +-
drivers/media/i2c/adv7393_regs.h | 10 +-
drivers/media/i2c/adv748x/adv748x.h | 2 +-
drivers/media/i2c/adv7604.c | 5 +-
drivers/media/i2c/ar0521.c | 1061 +
drivers/media/i2c/mt9p031.c | 93 +-
drivers/media/i2c/ov5640.c | 1650 +-
drivers/media/i2c/ov5693.c | 57 +-
drivers/media/i2c/ov7251.c | 7 +-
drivers/media/i2c/st-mipid02.c | 30 +-
drivers/media/i2c/tda1997x.c | 2 +-
drivers/media/i2c/tvp5150.c | 2 +-
drivers/media/mc/mc-entity.c | 96 +-
drivers/media/pci/cx18/cx18-av-core.c | 2 +-
drivers/media/pci/cx88/cx88-core.c | 22 +-
drivers/media/pci/ddbridge/ddbridge-ci.c | 9 -
drivers/media/pci/ddbridge/ddbridge-ci.h | 9 -
drivers/media/pci/ddbridge/ddbridge-core.c | 9 -
drivers/media/pci/ddbridge/ddbridge-hw.c | 9 -
drivers/media/pci/ddbridge/ddbridge-hw.h | 11 +-
drivers/media/pci/ddbridge/ddbridge-i2c.c | 9 -
drivers/media/pci/ddbridge/ddbridge-i2c.h | 9 -
drivers/media/pci/ddbridge/ddbridge-io.h | 9 -
drivers/media/pci/ddbridge/ddbridge-main.c | 9 -
drivers/media/pci/ddbridge/ddbridge-max.c | 9 -
drivers/media/pci/ddbridge/ddbridge-max.h | 11 +-
drivers/media/pci/ddbridge/ddbridge-mci.c | 9 -
drivers/media/pci/ddbridge/ddbridge-mci.h | 9 -
drivers/media/pci/ddbridge/ddbridge-regs.h | 9 -
drivers/media/pci/ddbridge/ddbridge-sx8.c | 9 -
drivers/media/pci/ddbridge/ddbridge.h | 11 +-
drivers/media/pci/intel/ipu3/ipu3-cio2-main.c | 2 +-
drivers/media/pci/saa7164/saa7164-api.c | 2 +-
drivers/media/pci/sta2x11/Kconfig | 2 +-
drivers/media/pci/tw5864/tw5864-core.c | 30 +-
drivers/media/pci/tw686x/tw686x-core.c | 21 +-
drivers/media/pci/tw686x/tw686x-video.c | 4 +-
drivers/media/platform/amphion/vdec.c | 50 +-
drivers/media/platform/amphion/venc.c | 3 +-
drivers/media/platform/amphion/vpu.h | 1 +
drivers/media/platform/amphion/vpu_cmds.c | 3 +-
drivers/media/platform/amphion/vpu_core.c | 18 +-
drivers/media/platform/amphion/vpu_dbg.c | 2 +-
drivers/media/platform/amphion/vpu_malone.c | 20 +
drivers/media/platform/amphion/vpu_malone.h | 1 +
drivers/media/platform/amphion/vpu_msgs.c | 7 +-
drivers/media/platform/amphion/vpu_rpc.c | 2 +-
drivers/media/platform/amphion/vpu_rpc.h | 7 +-
drivers/media/platform/amphion/vpu_v4l2.c | 6 +-
drivers/media/platform/atmel/Kconfig | 4 +-
drivers/media/platform/atmel/atmel-isc-base.c | 20 +-
drivers/media/platform/atmel/atmel-sama7g5-isc.c | 2 +
.../media/platform/mediatek/jpeg/mtk_jpeg_core.c | 3 +
drivers/media/platform/mediatek/mdp/mtk_mdp_ipi.h | 2 +
.../platform/mediatek/vcodec/mtk_vcodec_dec.c | 133 +-
.../platform/mediatek/vcodec/mtk_vcodec_dec_drv.c | 13 +
.../platform/mediatek/vcodec/mtk_vcodec_dec_hw.c | 12 +-
.../platform/mediatek/vcodec/mtk_vcodec_dec_hw.h | 2 +
.../platform/mediatek/vcodec/mtk_vcodec_dec_pm.c | 50 +
.../mediatek/vcodec/mtk_vcodec_dec_stateful.c | 29 +-
.../mediatek/vcodec/mtk_vcodec_dec_stateless.c | 30 +-
.../platform/mediatek/vcodec/mtk_vcodec_drv.h | 36 +-
.../platform/mediatek/vcodec/mtk_vcodec_enc.c | 37 +-
.../mediatek/vcodec/vdec/vdec_h264_req_common.c | 7 +-
.../mediatek/vcodec/vdec/vdec_h264_req_multi_if.c | 25 +-
.../mediatek/vcodec/vdec/vdec_vp8_req_if.c | 7 +-
.../mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c | 210 +-
.../media/platform/mediatek/vcodec/vdec_drv_if.c | 2 +-
.../media/platform/mediatek/vcodec/vdec_vpu_if.c | 5 +
drivers/media/platform/nvidia/tegra-vde/h264.c | 9 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.c | 16 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h | 10 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c | 328 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h | 4 +-
drivers/media/platform/nxp/imx-mipi-csis.c | 41 +
drivers/media/platform/qcom/camss/camss-csid.c | 8 +-
drivers/media/platform/qcom/camss/camss-csiphy.c | 2 +-
drivers/media/platform/qcom/camss/camss-ispif.c | 43 +-
drivers/media/platform/qcom/camss/camss-vfe.c | 36 +-
drivers/media/platform/qcom/camss/camss-vfe.h | 3 -
drivers/media/platform/qcom/camss/camss-video.c | 6 +-
drivers/media/platform/qcom/camss/camss.c | 73 +-
drivers/media/platform/qcom/camss/camss.h | 7 +-
drivers/media/platform/qcom/venus/core.c | 20 +-
drivers/media/platform/qcom/venus/core.h | 2 +
drivers/media/platform/qcom/venus/dbgfs.c | 9 +
drivers/media/platform/qcom/venus/dbgfs.h | 13 +
drivers/media/platform/qcom/venus/helpers.c | 6 +-
drivers/media/platform/qcom/venus/hfi_cmds.c | 9 +
drivers/media/platform/qcom/venus/hfi_cmds.h | 1 +
drivers/media/platform/qcom/venus/hfi_helper.h | 20 +
drivers/media/platform/qcom/venus/hfi_parser.c | 6 +-
drivers/media/platform/qcom/venus/hfi_platform.c | 22 +
drivers/media/platform/qcom/venus/hfi_platform.h | 2 +
drivers/media/platform/qcom/venus/hfi_venus.c | 26 +
drivers/media/platform/qcom/venus/pm_helpers.c | 10 +-
.../media/platform/renesas/rcar-vin/rcar-core.c | 4 +-
.../media/platform/renesas/rcar-vin/rcar-csi2.c | 2 +-
drivers/media/platform/renesas/rcar-vin/rcar-dma.c | 2 +-
.../media/platform/renesas/rcar-vin/rcar-v4l2.c | 2 +-
drivers/media/platform/renesas/rcar_drif.c | 7 +-
drivers/media/platform/renesas/vsp1/vsp1_entity.c | 4 +-
drivers/media/platform/renesas/vsp1/vsp1_video.c | 2 +-
drivers/media/platform/rockchip/rkisp1/Kconfig | 2 +-
drivers/media/platform/rockchip/rkisp1/Makefile | 18 +-
.../platform/rockchip/rkisp1/rkisp1-capture.c | 181 +-
.../media/platform/rockchip/rkisp1/rkisp1-common.c | 143 +
.../media/platform/rockchip/rkisp1/rkisp1-common.h | 157 +-
.../media/platform/rockchip/rkisp1/rkisp1-csi.c | 536 +
.../media/platform/rockchip/rkisp1/rkisp1-csi.h | 28 +
.../media/platform/rockchip/rkisp1/rkisp1-debug.c | 243 +
.../media/platform/rockchip/rkisp1/rkisp1-dev.c | 504 +-
.../media/platform/rockchip/rkisp1/rkisp1-isp.c | 691 +-
.../media/platform/rockchip/rkisp1/rkisp1-params.c | 713 +-
.../media/platform/rockchip/rkisp1/rkisp1-regs.h | 190 +-
.../platform/rockchip/rkisp1/rkisp1-resizer.c | 218 +-
.../media/platform/rockchip/rkisp1/rkisp1-stats.c | 17 +-
.../media/platform/samsung/exynos-gsc/gsc-core.c | 3 +-
.../media/platform/samsung/exynos-gsc/gsc-core.h | 2 +-
drivers/media/platform/samsung/exynos4-is/common.c | 2 +-
.../platform/samsung/exynos4-is/fimc-capture.c | 6 +-
.../platform/samsung/exynos4-is/fimc-is-errno.h | 2 +-
.../platform/samsung/exynos4-is/fimc-isp-video.c | 2 +-
.../media/platform/samsung/exynos4-is/fimc-lite.c | 2 +-
.../media/platform/samsung/exynos4-is/media-dev.c | 2 +-
.../media/platform/samsung/exynos4-is/mipi-csis.c | 2 +-
.../platform/samsung/s3c-camif/camif-capture.c | 2 +-
.../media/platform/samsung/s5p-jpeg/jpeg-core.c | 2 +-
.../media/platform/samsung/s5p-mfc/s5p_mfc_pm.c | 3 +-
.../platform/st/sti/c8sectpfe/c8sectpfe-core.c | 33 +-
drivers/media/platform/st/sti/delta/delta-v4l2.c | 24 +-
drivers/media/platform/st/stm32/stm32-dcmi.c | 91 +-
drivers/media/platform/sunxi/Kconfig | 2 +
drivers/media/platform/sunxi/Makefile | 2 +
.../media/platform/sunxi/sun6i-csi/sun6i_video.c | 4 +-
.../media/platform/sunxi/sun6i-mipi-csi2/Kconfig | 15 +
.../media/platform/sunxi/sun6i-mipi-csi2/Makefile | 4 +
.../sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2.c | 750 +
.../sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2.h | 52 +
.../sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2_reg.h | 76 +
.../platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig | 13 +
.../platform/sunxi/sun8i-a83t-mipi-csi2/Makefile | 4 +
.../sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_dphy.c | 72 +
.../sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_dphy.h | 39 +
.../sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.c | 816 +
.../sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.h | 55 +
.../sun8i_a83t_mipi_csi2_reg.h | 151 +
drivers/media/platform/ti/cal/cal-camerarx.c | 4 +-
drivers/media/platform/ti/cal/cal-video.c | 2 +-
drivers/media/platform/ti/davinci/vpif.c | 1 +
drivers/media/platform/ti/davinci/vpif.h | 11 +-
drivers/media/platform/ti/davinci/vpif_display.h | 10 +-
drivers/media/platform/ti/omap/omap_voutlib.c | 4 +-
drivers/media/platform/ti/omap3isp/isp.c | 6 +-
drivers/media/platform/ti/omap3isp/ispccdc.c | 2 +-
drivers/media/platform/ti/omap3isp/ispccp2.c | 2 +-
drivers/media/platform/ti/omap3isp/ispcsi2.c | 2 +-
drivers/media/platform/ti/omap3isp/ispvideo.c | 4 +-
drivers/media/platform/video-mux.c | 2 +-
drivers/media/platform/xilinx/xilinx-csi2rxss.c | 2 +-
drivers/media/platform/xilinx/xilinx-dma.c | 4 +-
drivers/media/platform/xilinx/xilinx-vip.h | 4 +-
drivers/media/rc/ati_remote.c | 11 +-
drivers/media/rc/igorplugusb.c | 23 +-
drivers/media/rc/iguanair.c | 5 +-
drivers/media/rc/imon_raw.c | 16 +-
drivers/media/rc/lirc_dev.c | 6 +-
drivers/media/rc/rc-main.c | 9 +-
drivers/media/rc/redrat3.c | 4 +-
drivers/media/rc/streamzap.c | 2 +-
drivers/media/rc/ttusbir.c | 4 +-
drivers/media/rc/xbox_remote.c | 10 +-
drivers/media/test-drivers/vicodec/vicodec-core.c | 8 +-
drivers/media/test-drivers/vimc/Makefile | 2 +-
drivers/media/test-drivers/vimc/vimc-capture.c | 270 +-
drivers/media/test-drivers/vimc/vimc-common.h | 9 +-
drivers/media/test-drivers/vimc/vimc-core.c | 142 +-
drivers/media/test-drivers/vimc/vimc-debayer.c | 393 +-
drivers/media/test-drivers/vimc/vimc-lens.c | 102 +
drivers/media/test-drivers/vimc/vimc-scaler.c | 216 +-
drivers/media/test-drivers/vimc/vimc-sensor.c | 307 +-
drivers/media/test-drivers/vimc/vimc-streamer.c | 2 +-
drivers/media/test-drivers/vivid/vivid-ctrls.c | 29 +
.../media/test-drivers/vivid/vivid-vid-common.c | 15 +
drivers/media/usb/Kconfig | 1 -
drivers/media/usb/Makefile | 1 -
drivers/media/usb/airspy/airspy.c | 17 +-
drivers/media/usb/em28xx/em28xx-audio.c | 10 -
drivers/media/usb/em28xx/em28xx-camera.c | 10 -
drivers/media/usb/em28xx/em28xx-cards.c | 10 -
drivers/media/usb/em28xx/em28xx-core.c | 10 -
drivers/media/usb/em28xx/em28xx-dvb.c | 4 -
drivers/media/usb/em28xx/em28xx-i2c.c | 10 -
drivers/media/usb/em28xx/em28xx-input.c | 10 -
drivers/media/usb/em28xx/em28xx-v4l.h | 9 -
drivers/media/usb/em28xx/em28xx-vbi.c | 10 -
drivers/media/usb/em28xx/em28xx-video.c | 10 -
drivers/media/usb/em28xx/em28xx.h | 10 -
drivers/media/usb/gspca/spca501.c | 2 +-
drivers/media/usb/gspca/xirlink_cit.c | 2 +-
drivers/media/usb/hdpvr/hdpvr-video.c | 2 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 3 +-
drivers/media/usb/usbtv/usbtv-video.c | 5 +-
drivers/media/usb/usbtv/usbtv.h | 3 +-
drivers/media/usb/uvc/uvc_ctrl.c | 120 +-
drivers/media/usb/uvc/uvc_driver.c | 143 +-
drivers/media/usb/uvc/uvc_isight.c | 13 +-
drivers/media/usb/uvc/uvc_queue.c | 6 +-
drivers/media/usb/uvc/uvc_status.c | 6 +-
drivers/media/usb/uvc/uvc_v4l2.c | 18 +-
drivers/media/usb/uvc/uvc_video.c | 96 +-
drivers/media/usb/uvc/uvcvideo.h | 16 +-
drivers/media/v4l2-core/Kconfig | 6 +-
drivers/media/v4l2-core/v4l2-async.c | 45 +-
drivers/media/v4l2-core/v4l2-common.c | 2 +
drivers/media/v4l2-core/v4l2-ctrls-api.c | 103 +-
drivers/media/v4l2-core/v4l2-ctrls-core.c | 212 +-
drivers/media/v4l2-core/v4l2-ctrls-defs.c | 38 +-
drivers/media/v4l2-core/v4l2-ctrls-priv.h | 3 +-
drivers/media/v4l2-core/v4l2-ctrls-request.c | 13 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 71 +-
drivers/media/v4l2-core/v4l2-mem2mem.c | 2 +-
drivers/memory/Kconfig | 1 +
drivers/memory/mtk-smi.c | 22 +-
drivers/memory/samsung/exynos5422-dmc.c | 29 +-
drivers/memory/tegra/tegra124-emc.c | 11 +-
drivers/memory/tegra/tegra234.c | 80 +
drivers/memory/ti-emif-sram-pm.S | 10 +-
drivers/memstick/core/ms_block.c | 18 +-
drivers/memstick/core/mspro_block.c | 3 +-
drivers/message/fusion/mptspi.c | 2 +-
drivers/mfd/Kconfig | 6 +-
drivers/mfd/asic3.c | 9 +-
drivers/mfd/atmel-smc.c | 4 +-
drivers/mfd/axp20x.c | 9 +
drivers/mfd/bcm2835-pm.c | 74 +-
drivers/mfd/cros_ec_dev.c | 9 +-
drivers/mfd/db8500-prcmu.c | 2 +-
drivers/mfd/dln2.c | 17 +-
drivers/mfd/intel-lpss-pci.c | 13 +
drivers/mfd/intel-m10-bmc.c | 2 +-
drivers/mfd/intel_soc_pmic_bxtwc.c | 194 +-
drivers/mfd/intel_soc_pmic_chtwc.c | 27 +-
drivers/mfd/lp873x.c | 10 +-
drivers/mfd/lpc_ich.c | 161 +-
drivers/mfd/max77620.c | 2 +
drivers/mfd/max77714.c | 4 +-
drivers/mfd/mfd-core.c | 31 +-
drivers/mfd/mt6358-irq.c | 24 +
drivers/mfd/mt6397-core.c | 91 +
drivers/mfd/mt6397-irq.c | 9 +-
drivers/mfd/qcom-pm8008.c | 53 +-
drivers/mfd/qcom-spmi-pmic.c | 272 +-
drivers/mfd/syscon.c | 3 +-
drivers/mfd/t7l66xb.c | 6 +-
drivers/mfd/tc6393xb.c | 5 +-
drivers/mfd/tps65086.c | 10 +-
drivers/mfd/tps65217.c | 10 +-
drivers/mfd/tps65218.c | 10 +-
drivers/mfd/tps65912-core.c | 10 +-
drivers/mfd/tps65912-i2c.c | 10 +-
drivers/mfd/tps65912-spi.c | 10 +-
drivers/mfd/twl-core.c | 323 +-
drivers/mfd/ucb1400_core.c | 6 +-
drivers/misc/Kconfig | 13 +
drivers/misc/Makefile | 1 +
drivers/misc/atmel-ssc.c | 8 +-
drivers/misc/cardreader/rts5261.c | 2 +
drivers/misc/cardreader/rtsx_pcr.c | 8 +-
drivers/misc/cardreader/rtsx_usb.c | 27 +-
drivers/misc/cxl/context.c | 2 +-
drivers/misc/cxl/cxl.h | 2 +-
drivers/misc/cxl/guest.c | 2 +-
drivers/misc/cxl/irq.c | 4 +-
drivers/misc/cxl/of.c | 5 +-
drivers/misc/eeprom/at25.c | 93 +-
drivers/misc/eeprom/idt_89hpesx.c | 14 +-
drivers/misc/habanalabs/Makefile | 3 +
drivers/misc/habanalabs/common/Makefile | 3 +-
drivers/misc/habanalabs/common/asid.c | 5 +-
drivers/misc/habanalabs/common/command_buffer.c | 12 +-
.../misc/habanalabs/common/command_submission.c | 296 +-
drivers/misc/habanalabs/common/context.c | 73 +-
drivers/misc/habanalabs/common/debugfs.c | 221 +-
drivers/misc/habanalabs/common/decoder.c | 133 +
drivers/misc/habanalabs/common/device.c | 242 +-
drivers/misc/habanalabs/common/firmware_if.c | 211 +-
drivers/misc/habanalabs/common/habanalabs.h | 756 +-
drivers/misc/habanalabs/common/habanalabs_drv.c | 82 +-
drivers/misc/habanalabs/common/habanalabs_ioctl.c | 54 +-
drivers/misc/habanalabs/common/hw_queue.c | 45 +-
drivers/misc/habanalabs/common/irq.c | 160 +-
drivers/misc/habanalabs/common/memory.c | 115 +-
drivers/misc/habanalabs/common/memory_mgr.c | 2 +-
drivers/misc/habanalabs/common/mmu/Makefile | 3 +-
drivers/misc/habanalabs/common/mmu/mmu.c | 496 +-
drivers/misc/habanalabs/common/mmu/mmu_v1.c | 9 +-
drivers/misc/habanalabs/common/mmu/mmu_v2_hr.c | 399 +
drivers/misc/habanalabs/common/pci/pci.c | 40 +-
drivers/misc/habanalabs/common/security.c | 600 +
drivers/misc/habanalabs/common/sysfs.c | 10 +-
drivers/misc/habanalabs/gaudi/gaudi.c | 681 +-
drivers/misc/habanalabs/gaudi/gaudi_security.c | 2 +-
drivers/misc/habanalabs/gaudi2/Makefile | 4 +
drivers/misc/habanalabs/gaudi2/gaudi2.c | 9986 +
drivers/misc/habanalabs/gaudi2/gaudi2P.h | 566 +
drivers/misc/habanalabs/gaudi2/gaudi2_coresight.c | 2720 +
.../misc/habanalabs/gaudi2/gaudi2_coresight_regs.h | 1063 +
drivers/misc/habanalabs/gaudi2/gaudi2_masks.h | 141 +
drivers/misc/habanalabs/gaudi2/gaudi2_security.c | 3849 +
drivers/misc/habanalabs/goya/goya.c | 160 +-
drivers/misc/habanalabs/goya/goyaP.h | 6 +-
drivers/misc/habanalabs/goya/goya_hwmgr.c | 2 +
drivers/misc/habanalabs/include/common/cpucp_if.h | 297 +-
.../misc/habanalabs/include/common/hl_boot_if.h | 7 +
.../misc/habanalabs/include/gaudi/gaudi_masks.h | 1 +
.../include/gaudi2/arc/gaudi2_arc_common_packets.h | 213 +
.../gaudi2/asic_reg/arc_farm_arc0_acp_eng_regs.h | 567 +
.../gaudi2/asic_reg/arc_farm_arc0_aux_masks.h | 819 +
.../gaudi2/asic_reg/arc_farm_arc0_aux_regs.h | 591 +
.../asic_reg/arc_farm_arc0_dup_eng_axuser_regs.h | 61 +
.../gaudi2/asic_reg/arc_farm_arc0_dup_eng_regs.h | 575 +
.../asic_reg/arc_farm_kdma_ctx_axuser_masks.h | 135 +
.../asic_reg/arc_farm_kdma_ctx_axuser_regs.h | 61 +
.../gaudi2/asic_reg/arc_farm_kdma_ctx_masks.h | 221 +
.../gaudi2/asic_reg/arc_farm_kdma_ctx_regs.h | 95 +
.../gaudi2/asic_reg/arc_farm_kdma_kdma_cgm_regs.h | 29 +
.../include/gaudi2/asic_reg/arc_farm_kdma_masks.h | 415 +
.../include/gaudi2/asic_reg/arc_farm_kdma_regs.h | 157 +
.../include/gaudi2/asic_reg/cpu_if_regs.h | 777 +
.../gaudi2/asic_reg/dcore0_dec0_cmd_masks.h | 229 +
.../include/gaudi2/asic_reg/dcore0_dec0_cmd_regs.h | 85 +
.../asic_reg/dcore0_edma0_core_ctx_axuser_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_edma0_core_ctx_regs.h | 95 +
.../gaudi2/asic_reg/dcore0_edma0_core_masks.h | 415 +
.../gaudi2/asic_reg/dcore0_edma0_core_regs.h | 157 +
.../gaudi2/asic_reg/dcore0_edma0_qm_arc_aux_regs.h | 591 +
.../dcore0_edma0_qm_axuser_nonsecured_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_edma0_qm_cgm_regs.h | 29 +
.../gaudi2/asic_reg/dcore0_edma0_qm_masks.h | 1165 +
.../include/gaudi2/asic_reg/dcore0_edma0_qm_regs.h | 1057 +
.../asic_reg/dcore0_edma1_core_ctx_axuser_regs.h | 61 +
.../dcore0_edma1_qm_axuser_nonsecured_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_hmmu0_mmu_masks.h | 294 +
.../gaudi2/asic_reg/dcore0_hmmu0_mmu_regs.h | 237 +
.../gaudi2/asic_reg/dcore0_hmmu0_stlb_masks.h | 348 +
.../gaudi2/asic_reg/dcore0_hmmu0_stlb_regs.h | 141 +
.../include/gaudi2/asic_reg/dcore0_mme_acc_regs.h | 73 +
...dcore0_mme_ctrl_lo_arch_agu_cout0_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_cout0_slave_regs.h | 33 +
...dcore0_mme_ctrl_lo_arch_agu_cout1_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_cout1_slave_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in0_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in0_slave_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in1_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in1_slave_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in2_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in2_slave_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in3_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in3_slave_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in4_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in4_slave_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_base_addr_regs.h | 39 +
.../dcore0_mme_ctrl_lo_arch_non_tensor_end_regs.h | 73 +
...dcore0_mme_ctrl_lo_arch_non_tensor_start_regs.h | 35 +
.../dcore0_mme_ctrl_lo_arch_tensor_a_regs.h | 67 +
.../dcore0_mme_ctrl_lo_arch_tensor_b_regs.h | 67 +
.../dcore0_mme_ctrl_lo_arch_tensor_cout_regs.h | 67 +
.../gaudi2/asic_reg/dcore0_mme_ctrl_lo_masks.h | 468 +
.../asic_reg/dcore0_mme_ctrl_lo_mme_axuser_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_mme_ctrl_lo_regs.h | 163 +
.../asic_reg/dcore0_mme_qm_arc_acp_eng_regs.h | 567 +
.../gaudi2/asic_reg/dcore0_mme_qm_arc_aux_regs.h | 591 +
.../dcore0_mme_qm_arc_dup_eng_axuser_regs.h | 61 +
.../asic_reg/dcore0_mme_qm_arc_dup_eng_regs.h | 575 +
.../dcore0_mme_qm_axuser_nonsecured_regs.h | 61 +
.../asic_reg/dcore0_mme_qm_axuser_secured_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_mme_qm_cgm_regs.h | 29 +
.../include/gaudi2/asic_reg/dcore0_mme_qm_regs.h | 1057 +
.../gaudi2/asic_reg/dcore0_mme_sbte0_masks.h | 107 +
.../dcore0_mme_sbte0_mstr_if_axuser_regs.h | 61 +
.../asic_reg/dcore0_mme_wb0_mstr_if_axuser_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_rtr0_ctrl_regs.h | 291 +
.../dcore0_rtr0_mstr_if_rr_prvt_hbw_regs.h | 213 +
.../dcore0_rtr0_mstr_if_rr_prvt_lbw_regs.h | 189 +
.../dcore0_rtr0_mstr_if_rr_shrd_hbw_regs.h | 213 +
.../dcore0_rtr0_mstr_if_rr_shrd_lbw_regs.h | 189 +
.../gaudi2/asic_reg/dcore0_sync_mngr_glbl_masks.h | 135 +
.../gaudi2/asic_reg/dcore0_sync_mngr_glbl_regs.h | 1203 +
.../dcore0_sync_mngr_mstr_if_axuser_masks.h | 135 +
.../dcore0_sync_mngr_mstr_if_axuser_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_sync_mngr_objs_masks.h | 87 +
.../gaudi2/asic_reg/dcore0_sync_mngr_objs_regs.h | 43543 ++++
.../gaudi2/asic_reg/dcore0_tpc0_cfg_axuser_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_tpc0_cfg_kernel_regs.h | 129 +
.../dcore0_tpc0_cfg_kernel_tensor_0_regs.h | 63 +
.../gaudi2/asic_reg/dcore0_tpc0_cfg_masks.h | 509 +
.../gaudi2/asic_reg/dcore0_tpc0_cfg_qm_regs.h | 129 +
.../asic_reg/dcore0_tpc0_cfg_qm_sync_object_regs.h | 27 +
.../asic_reg/dcore0_tpc0_cfg_qm_tensor_0_regs.h | 63 +
.../include/gaudi2/asic_reg/dcore0_tpc0_cfg_regs.h | 229 +
.../gaudi2/asic_reg/dcore0_tpc0_cfg_special_regs.h | 185 +
.../asic_reg/dcore0_tpc0_eml_busmon_0_regs.h | 163 +
.../gaudi2/asic_reg/dcore0_tpc0_eml_etf_regs.h | 113 +
.../gaudi2/asic_reg/dcore0_tpc0_eml_funnel_regs.h | 75 +
.../gaudi2/asic_reg/dcore0_tpc0_eml_spmu_regs.h | 151 +
.../gaudi2/asic_reg/dcore0_tpc0_eml_stm_regs.h | 131 +
.../gaudi2/asic_reg/dcore0_tpc0_qm_arc_aux_regs.h | 591 +
.../dcore0_tpc0_qm_axuser_nonsecured_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_tpc0_qm_cgm_regs.h | 29 +
.../include/gaudi2/asic_reg/dcore0_tpc0_qm_regs.h | 1057 +
.../dcore0_vdec0_brdg_ctrl_axuser_dec_regs.h | 61 +
...dcore0_vdec0_brdg_ctrl_axuser_msix_abnrm_regs.h | 61 +
.../dcore0_vdec0_brdg_ctrl_axuser_msix_l2c_regs.h | 61 +
.../dcore0_vdec0_brdg_ctrl_axuser_msix_nrm_regs.h | 61 +
.../dcore0_vdec0_brdg_ctrl_axuser_msix_vcd_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_masks.h | 581 +
.../gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_regs.h | 245 +
.../asic_reg/dcore0_vdec0_ctrl_special_regs.h | 185 +
.../gaudi2/asic_reg/dcore1_mme_ctrl_lo_regs.h | 163 +
.../gaudi2/asic_reg/dcore3_mme_ctrl_lo_regs.h | 163 +
.../gaudi2/asic_reg/gaudi2_blocks_linux_driver.h | 45067 ++++
.../include/gaudi2/asic_reg/gaudi2_regs.h | 550 +
.../include/gaudi2/asic_reg/nic0_qm0_cgm_regs.h | 29 +
.../include/gaudi2/asic_reg/nic0_qm0_regs.h | 1057 +
.../gaudi2/asic_reg/nic0_qm_arc_aux0_regs.h | 591 +
.../include/gaudi2/asic_reg/nic0_qpc0_regs.h | 905 +
.../nic0_umr0_0_completion_queue_ci_1_regs.h | 27 +
.../asic_reg/nic0_umr0_0_unsecure_doorbell0_regs.h | 31 +
.../include/gaudi2/asic_reg/pcie_aux_regs.h | 293 +
.../include/gaudi2/asic_reg/pcie_dbi_regs.h | 422 +
.../include/gaudi2/asic_reg/pcie_dec0_cmd_masks.h | 229 +
.../include/gaudi2/asic_reg/pcie_dec0_cmd_regs.h | 85 +
.../pcie_vdec0_brdg_ctrl_axuser_dec_regs.h | 61 +
.../pcie_vdec0_brdg_ctrl_axuser_msix_abnrm_regs.h | 61 +
.../pcie_vdec0_brdg_ctrl_axuser_msix_l2c_regs.h | 61 +
.../pcie_vdec0_brdg_ctrl_axuser_msix_nrm_regs.h | 61 +
.../pcie_vdec0_brdg_ctrl_axuser_msix_vcd_regs.h | 61 +
.../gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_masks.h | 580 +
.../gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_regs.h | 245 +
.../gaudi2/asic_reg/pcie_vdec0_ctrl_special_regs.h | 185 +
.../include/gaudi2/asic_reg/pcie_wrap_regs.h | 601 +
.../gaudi2/asic_reg/pdma0_core_ctx_axuser_regs.h | 61 +
.../include/gaudi2/asic_reg/pdma0_core_ctx_regs.h | 95 +
.../include/gaudi2/asic_reg/pdma0_core_masks.h | 415 +
.../include/gaudi2/asic_reg/pdma0_core_regs.h | 157 +
.../gaudi2/asic_reg/pdma0_core_special_masks.h | 135 +
.../gaudi2/asic_reg/pdma0_qm_arc_aux_regs.h | 591 +
.../asic_reg/pdma0_qm_axuser_nonsecured_regs.h | 61 +
.../gaudi2/asic_reg/pdma0_qm_axuser_secured_regs.h | 61 +
.../include/gaudi2/asic_reg/pdma0_qm_cgm_regs.h | 29 +
.../include/gaudi2/asic_reg/pdma0_qm_masks.h | 1165 +
.../include/gaudi2/asic_reg/pdma0_qm_regs.h | 1057 +
.../gaudi2/asic_reg/pdma1_core_ctx_axuser_regs.h | 61 +
.../asic_reg/pdma1_qm_axuser_nonsecured_regs.h | 61 +
.../include/gaudi2/asic_reg/pmmu_hbw_stlb_masks.h | 334 +
.../include/gaudi2/asic_reg/pmmu_hbw_stlb_regs.h | 141 +
.../include/gaudi2/asic_reg/pmmu_pif_regs.h | 135 +
.../include/gaudi2/asic_reg/psoc_etr_masks.h | 311 +
.../include/gaudi2/asic_reg/psoc_etr_regs.h | 115 +
.../gaudi2/asic_reg/psoc_global_conf_masks.h | 1406 +
.../gaudi2/asic_reg/psoc_global_conf_regs.h | 1337 +
.../gaudi2/asic_reg/psoc_reset_conf_masks.h | 2321 +
.../include/gaudi2/asic_reg/psoc_reset_conf_regs.h | 989 +
.../include/gaudi2/asic_reg/psoc_timestamp_regs.h | 57 +
.../include/gaudi2/asic_reg/rot0_desc_regs.h | 155 +
.../include/gaudi2/asic_reg/rot0_masks.h | 313 +
.../include/gaudi2/asic_reg/rot0_qm_arc_aux_regs.h | 591 +
.../asic_reg/rot0_qm_axuser_nonsecured_regs.h | 61 +
.../include/gaudi2/asic_reg/rot0_qm_cgm_regs.h | 29 +
.../include/gaudi2/asic_reg/rot0_qm_regs.h | 1057 +
.../habanalabs/include/gaudi2/asic_reg/rot0_regs.h | 111 +
.../include/gaudi2/asic_reg/xbar_edge_0_regs.h | 199 +
.../include/gaudi2/asic_reg/xbar_mid_0_regs.h | 199 +
drivers/misc/habanalabs/include/gaudi2/gaudi2.h | 123 +
.../include/gaudi2/gaudi2_async_events.h | 963 +
.../include/gaudi2/gaudi2_async_ids_map_extended.h | 2668 +
.../include/gaudi2/gaudi2_async_virt_events.h | 57 +
.../habanalabs/include/gaudi2/gaudi2_coresight.h | 984 +
.../misc/habanalabs/include/gaudi2/gaudi2_fw_if.h | 99 +
.../habanalabs/include/gaudi2/gaudi2_packets.h | 197 +
.../habanalabs/include/gaudi2/gaudi2_reg_map.h | 59 +
.../misc/habanalabs/include/goya/goya_packets.h | 12 -
.../habanalabs/include/hw_ip/mmu/mmu_general.h | 14 +-
.../misc/habanalabs/include/hw_ip/mmu/mmu_v2_0.h | 51 +
drivers/misc/lkdtm/Makefile | 9 +-
drivers/misc/lkdtm/bugs.c | 2 +-
drivers/misc/lkdtm/cfi.c | 2 +-
drivers/misc/mei/hbm.c | 3 +-
drivers/misc/mei/hw-me-regs.h | 2 +
drivers/misc/mei/hw-me.c | 4 +-
drivers/misc/mei/pci-me.c | 2 +
drivers/misc/sgi-gru/grukservices.c | 2 +-
drivers/misc/sgi-xp/xpc_uv.c | 2 +-
drivers/misc/sgi-xp/xpnet.c | 13 +-
drivers/misc/sram-exec.c | 10 +-
drivers/misc/uacce/uacce.c | 133 +-
drivers/misc/vcpu_stall_detector.c | 223 +
drivers/misc/vmw_balloon.c | 63 +-
drivers/mmc/core/block.c | 41 +-
drivers/mmc/core/bus.c | 4 +-
drivers/mmc/core/core.c | 10 +-
drivers/mmc/core/debugfs.c | 80 +
drivers/mmc/core/host.c | 2 +-
drivers/mmc/core/queue.c | 4 +-
drivers/mmc/core/quirks.h | 4 +-
drivers/mmc/core/sd.c | 4 +-
drivers/mmc/core/sdio.c | 30 +-
drivers/mmc/host/Kconfig | 5 +-
drivers/mmc/host/cavium-octeon.c | 1 +
drivers/mmc/host/cavium-thunderx.c | 4 +-
drivers/mmc/host/cqhci-core.c | 9 +-
drivers/mmc/host/dw_mmc-exynos.c | 4 +-
drivers/mmc/host/dw_mmc-hi3798cv200.c | 4 +-
drivers/mmc/host/dw_mmc-rockchip.c | 4 +-
drivers/mmc/host/mmci.c | 2 +-
drivers/mmc/host/mtk-sd.c | 108 +-
drivers/mmc/host/mxcmmc.c | 4 +-
drivers/mmc/host/renesas_sdhi.h | 1 +
drivers/mmc/host/renesas_sdhi_core.c | 42 +-
drivers/mmc/host/renesas_sdhi_internal_dmac.c | 11 +-
drivers/mmc/host/sdhci-acpi.c | 7 +-
drivers/mmc/host/sdhci-bcm-kona.c | 14 +-
drivers/mmc/host/sdhci-brcmstb.c | 76 +-
drivers/mmc/host/sdhci-iproc.c | 14 +-
drivers/mmc/host/sdhci-msm.c | 29 +-
drivers/mmc/host/sdhci-of-arasan.c | 5 +-
drivers/mmc/host/sdhci-of-aspeed-test.c | 8 +-
drivers/mmc/host/sdhci-of-aspeed.c | 34 +-
drivers/mmc/host/sdhci-of-at91.c | 9 +-
drivers/mmc/host/sdhci-of-dwcmshc.c | 193 +-
drivers/mmc/host/sdhci-of-esdhc.c | 7 +-
drivers/mmc/host/sdhci-omap.c | 14 +-
drivers/mmc/host/sdhci-pci-core.c | 11 +-
drivers/mmc/host/sdhci-pci-gli.c | 37 +
drivers/mmc/host/sdhci-pci-o2micro.c | 2 +
drivers/mmc/host/sdhci-st.c | 5 +-
drivers/mmc/host/sdhci.c | 59 +-
drivers/mmc/host/sdhci.h | 3 +
drivers/mmc/host/tmio_mmc.c | 2 +-
drivers/mmc/host/tmio_mmc.h | 6 +-
drivers/mmc/host/tmio_mmc_core.c | 28 +-
drivers/mtd/devices/mtd_dataflash.c | 8 +
drivers/mtd/devices/powernv_flash.c | 4 +-
drivers/mtd/devices/spear_smi.c | 10 +-
drivers/mtd/devices/st_spi_fsm.c | 23 +-
drivers/mtd/hyperbus/hbmc-am654.c | 6 +-
drivers/mtd/hyperbus/hyperbus-core.c | 8 +-
drivers/mtd/hyperbus/rpc-if.c | 13 +-
drivers/mtd/lpddr/lpddr2_nvm.c | 4 +-
drivers/mtd/maps/physmap-core.c | 13 +-
drivers/mtd/maps/physmap-versatile.c | 2 +
drivers/mtd/mtd_blkdevs.c | 4 +-
drivers/mtd/mtdchar.c | 13 +-
drivers/mtd/mtdcore.c | 63 +
drivers/mtd/nand/raw/arasan-nand-controller.c | 16 +-
drivers/mtd/nand/raw/atmel/nand-controller.c | 4 +-
drivers/mtd/nand/raw/cafe_nand.c | 9 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 8 +-
drivers/mtd/nand/raw/meson_nand.c | 17 +-
drivers/mtd/nand/raw/nand_ids.c | 3 -
drivers/mtd/nand/raw/omap2.c | 6 +-
drivers/mtd/nand/raw/qcom_nandc.c | 306 +-
drivers/mtd/nand/raw/sm_common.c | 2 +-
drivers/mtd/nand/raw/tegra_nand.c | 5 +-
drivers/mtd/nand/spi/Makefile | 2 +-
drivers/mtd/nand/spi/ato.c | 86 +
drivers/mtd/nand/spi/core.c | 1 +
drivers/mtd/parsers/Kconfig | 9 +
drivers/mtd/parsers/Makefile | 1 +
drivers/mtd/parsers/ofpart_bcm4908.c | 3 +
drivers/mtd/parsers/redboot.c | 1 +
drivers/mtd/parsers/scpart.c | 249 +
drivers/mtd/sm_ftl.c | 2 +-
drivers/mtd/spi-nor/controllers/hisi-sfc.c | 2 +-
drivers/mtd/spi-nor/controllers/nxp-spifi.c | 8 +-
drivers/mtd/spi-nor/core.c | 70 +-
drivers/mtd/spi-nor/core.h | 21 +-
drivers/mtd/spi-nor/debugfs.c | 2 +-
drivers/mtd/spi-nor/esmt.c | 2 +-
drivers/mtd/spi-nor/issi.c | 31 +-
drivers/mtd/spi-nor/micron-st.c | 12 +-
drivers/mtd/spi-nor/otp.c | 12 +-
drivers/mtd/spi-nor/sfdp.c | 34 +-
drivers/mtd/spi-nor/spansion.c | 185 +-
drivers/mtd/spi-nor/xilinx.c | 2 +-
drivers/mtd/ubi/block.c | 4 +-
drivers/net/Kconfig | 3 +
drivers/net/amt.c | 308 +-
drivers/net/bonding/bond_3ad.c | 3 +-
drivers/net/bonding/bond_alb.c | 12 +-
drivers/net/bonding/bond_main.c | 100 +-
drivers/net/bonding/bond_netlink.c | 116 +-
drivers/net/bonding/bond_options.c | 65 +-
drivers/net/caif/caif_virtio.c | 10 +-
drivers/net/can/Kconfig | 111 +-
drivers/net/can/Makefile | 3 +-
drivers/net/can/at91_can.c | 6 +
drivers/net/can/c_can/c_can.h | 2 +-
drivers/net/can/c_can/c_can_ethtool.c | 8 +-
drivers/net/can/c_can/c_can_main.c | 9 +-
drivers/net/can/can327.c | 1144 +
drivers/net/can/cc770/cc770.c | 7 +
drivers/net/can/ctucanfd/ctucanfd_base.c | 13 +-
drivers/net/can/ctucanfd/ctucanfd_kregs.h | 32 +-
drivers/net/can/dev/Makefile | 17 +-
drivers/net/can/dev/bittiming.c | 197 -
drivers/net/can/dev/calc_bittiming.c | 202 +
drivers/net/can/dev/dev.c | 59 +-
drivers/net/can/dev/netlink.c | 9 +-
drivers/net/can/dev/skb.c | 78 +
drivers/net/can/flexcan/flexcan-core.c | 2 +-
drivers/net/can/flexcan/flexcan-ethtool.c | 8 +-
drivers/net/can/flexcan/flexcan.h | 2 +-
drivers/net/can/grcan.c | 8 +-
drivers/net/can/ifi_canfd/ifi_canfd.c | 10 +-
drivers/net/can/janz-ican3.c | 12 +-
drivers/net/can/kvaser_pciefd.c | 9 +-
drivers/net/can/m_can/Kconfig | 1 +
drivers/net/can/m_can/m_can.c | 22 +-
drivers/net/can/mscan/mpc5xxx_can.c | 2 +-
drivers/net/can/mscan/mscan.c | 5 +
drivers/net/can/pch_can.c | 15 +-
drivers/net/can/peak_canfd/peak_canfd.c | 54 +-
drivers/net/can/rcar/rcar_can.c | 15 +-
drivers/net/can/rcar/rcar_canfd.c | 16 +-
drivers/net/can/sja1000/sja1000.c | 22 +-
drivers/net/can/sja1000/sja1000.h | 3 +-
drivers/net/can/sja1000/sja1000_platform.c | 20 +-
drivers/net/can/slcan.c | 793 -
drivers/net/can/slcan/Makefile | 7 +
drivers/net/can/slcan/slcan-core.c | 939 +
drivers/net/can/slcan/slcan-ethtool.c | 61 +
drivers/net/can/slcan/slcan.h | 19 +
drivers/net/can/softing/softing_main.c | 10 +-
drivers/net/can/spi/hi311x.c | 12 +-
drivers/net/can/spi/mcp251x.c | 24 +-
drivers/net/can/spi/mcp251xfd/Kconfig | 1 +
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 26 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-dump.c | 2 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-ethtool.c | 1 +
drivers/net/can/spi/mcp251xfd/mcp251xfd-regmap.c | 22 +-
drivers/net/can/sun4i_can.c | 16 +-
drivers/net/can/ti_hecc.c | 18 +-
drivers/net/can/usb/Kconfig | 15 +-
drivers/net/can/usb/Makefile | 2 +-
drivers/net/can/usb/ems_usb.c | 12 +-
drivers/net/can/usb/{esd_usb2.c => esd_usb.c} | 259 +-
drivers/net/can/usb/etas_es58x/es58x_core.c | 39 +-
drivers/net/can/usb/etas_es58x/es58x_core.h | 6 +-
drivers/net/can/usb/gs_usb.c | 31 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb.h | 26 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c | 312 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 18 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c | 126 +-
drivers/net/can/usb/mcba_usb.c | 6 +
drivers/net/can/usb/peak_usb/pcan_usb.c | 2 +
drivers/net/can/usb/peak_usb/pcan_usb_core.c | 43 +-
drivers/net/can/usb/peak_usb/pcan_usb_core.h | 3 +-
drivers/net/can/usb/peak_usb/pcan_usb_fd.c | 69 +-
drivers/net/can/usb/peak_usb/pcan_usb_pro.c | 3 +-
drivers/net/can/usb/peak_usb/pcan_usb_pro.h | 2 +-
drivers/net/can/usb/ucan.c | 6 +
drivers/net/can/usb/usb_8dev.c | 18 +-
drivers/net/can/vcan.c | 8 +
drivers/net/can/vxcan.c | 8 +
drivers/net/can/xilinx_can.c | 83 +-
drivers/net/dsa/Kconfig | 17 +-
drivers/net/dsa/Makefile | 2 +-
drivers/net/dsa/b53/b53_spi.c | 2 -
drivers/net/dsa/bcm_sf2.c | 5 +
drivers/net/dsa/hirschmann/hellcreek.c | 7 +-
drivers/net/dsa/hirschmann/hellcreek_ptp.c | 1 +
drivers/net/dsa/lantiq_gswip.c | 4 +-
drivers/net/dsa/microchip/Kconfig | 42 +-
drivers/net/dsa/microchip/Makefile | 11 +-
drivers/net/dsa/microchip/ksz8.h | 105 +-
drivers/net/dsa/microchip/ksz8795.c | 623 +-
drivers/net/dsa/microchip/ksz8795_reg.h | 37 -
drivers/net/dsa/microchip/ksz8863_smi.c | 19 +-
drivers/net/dsa/microchip/ksz9477.c | 518 +-
drivers/net/dsa/microchip/ksz9477.h | 60 +
drivers/net/dsa/microchip/ksz9477_i2c.c | 6 +-
drivers/net/dsa/microchip/ksz9477_reg.h | 46 -
drivers/net/dsa/microchip/ksz9477_spi.c | 150 -
drivers/net/dsa/microchip/ksz_common.c | 1132 +-
drivers/net/dsa/microchip/ksz_common.h | 251 +-
.../net/dsa/microchip/{ksz8795_spi.c => ksz_spi.c} | 125 +-
drivers/net/dsa/microchip/lan937x.h | 21 +
drivers/net/dsa/microchip/lan937x_main.c | 443 +
drivers/net/dsa/microchip/lan937x_reg.h | 184 +
drivers/net/dsa/mt7530.c | 82 +-
drivers/net/dsa/mt7530.h | 1 -
drivers/net/dsa/mv88e6xxx/chip.c | 44 +-
drivers/net/dsa/mv88e6xxx/chip.h | 3 +-
drivers/net/dsa/mv88e6xxx/port.c | 36 -
drivers/net/dsa/mv88e6xxx/port.h | 2 -
drivers/net/dsa/mv88e6xxx/serdes.c | 35 +-
drivers/net/dsa/ocelot/Kconfig | 1 +
drivers/net/dsa/ocelot/felix.c | 12 +
drivers/net/dsa/ocelot/felix.h | 1 +
drivers/net/dsa/ocelot/felix_vsc9959.c | 306 +-
drivers/net/dsa/qca/Kconfig | 8 +
drivers/net/dsa/qca/Makefile | 2 +
drivers/net/dsa/qca/ar9331.c | 34 +-
drivers/net/dsa/{qca8k.c => qca/qca8k-8xxx.c} | 1691 +-
drivers/net/dsa/qca/qca8k-common.c | 1210 +
drivers/net/dsa/{ => qca}/qca8k.h | 102 +-
drivers/net/dsa/realtek/rtl8365mb.c | 333 +-
drivers/net/dsa/rzn1_a5psw.c | 1064 +
drivers/net/dsa/rzn1_a5psw.h | 259 +
drivers/net/dsa/sja1105/sja1105_main.c | 18 +-
drivers/net/dsa/vitesse-vsc73xx-spi.c | 10 +
drivers/net/eql.c | 4 +-
drivers/net/ethernet/Kconfig | 1 +
drivers/net/ethernet/Makefile | 1 +
drivers/net/ethernet/agere/et131x.c | 2 +-
drivers/net/ethernet/altera/altera_tse_main.c | 6 +-
drivers/net/ethernet/altera/altera_utils.h | 5 +-
drivers/net/ethernet/amd/amd8111e.c | 3 -
drivers/net/ethernet/amd/au1000_eth.c | 22 +-
drivers/net/ethernet/amd/au1000_eth.h | 4 +-
drivers/net/ethernet/amd/xgbe/xgbe-dcb.c | 2 +-
drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 8 +-
drivers/net/ethernet/amd/xgbe/xgbe-platform.c | 4 +-
drivers/net/ethernet/amd/xgbe/xgbe.h | 2 +-
drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 21 +-
.../net/ethernet/aquantia/atlantic/aq_pci_func.c | 23 +-
.../aquantia/atlantic/macsec/macsec_struct.h | 4 +-
drivers/net/ethernet/atheros/ag71xx.c | 12 +-
drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 15 +-
drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 10 +-
drivers/net/ethernet/atheros/atlx/atl1.c | 7 +-
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 16 +-
drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c | 1 +
drivers/net/ethernet/broadcom/bgmac-bcma.c | 1 -
drivers/net/ethernet/broadcom/bgmac.c | 2 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 17 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 20 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 +
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 68 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 24 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h | 12 +
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 13 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 9 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 10 +-
drivers/net/ethernet/broadcom/cnic.c | 4 +-
drivers/net/ethernet/broadcom/genet/bcmmii.c | 3 +
drivers/net/ethernet/broadcom/tg3.c | 2 +-
drivers/net/ethernet/brocade/bna/bnad.c | 6 +-
drivers/net/ethernet/cadence/macb.h | 5 +-
drivers/net/ethernet/cadence/macb_main.c | 143 +-
drivers/net/ethernet/cadence/macb_ptp.c | 7 +-
drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 4 +-
drivers/net/ethernet/chelsio/cxgb/common.h | 11 +-
drivers/net/ethernet/chelsio/cxgb/cphy.h | 11 +-
drivers/net/ethernet/chelsio/cxgb/cpl5_cmd.h | 12 +-
drivers/net/ethernet/chelsio/cxgb/elmer0.h | 12 +-
drivers/net/ethernet/chelsio/cxgb/espi.c | 11 +-
drivers/net/ethernet/chelsio/cxgb/espi.h | 11 +-
drivers/net/ethernet/chelsio/cxgb/gmac.h | 11 +-
drivers/net/ethernet/chelsio/cxgb/mv88x201x.c | 11 +-
drivers/net/ethernet/chelsio/cxgb/pm3393.c | 11 +-
drivers/net/ethernet/chelsio/cxgb/regs.h | 11 +-
drivers/net/ethernet/chelsio/cxgb/sge.c | 11 +-
drivers/net/ethernet/chelsio/cxgb/sge.h | 11 +-
drivers/net/ethernet/chelsio/cxgb/subr.c | 11 +-
.../net/ethernet/chelsio/cxgb/suni1x10gexp_regs.h | 12 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 6 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 8 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 27 +-
drivers/net/ethernet/chelsio/cxgb4/sge.c | 2 +-
.../net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4vf/t4vf_hw.c | 2 +-
.../chelsio/inline_crypto/ch_ktls/chcr_ktls.c | 14 +-
.../chelsio/inline_crypto/chtls/chtls_cm.c | 8 +-
drivers/net/ethernet/cisco/enic/cq_desc.h | 15 +-
drivers/net/ethernet/cisco/enic/cq_enet_desc.h | 15 +-
drivers/net/ethernet/cisco/enic/enic.h | 15 +-
drivers/net/ethernet/cisco/enic/enic_api.c | 19 +-
drivers/net/ethernet/cisco/enic/enic_api.h | 19 +-
drivers/net/ethernet/cisco/enic/enic_dev.c | 19 +-
drivers/net/ethernet/cisco/enic/enic_dev.h | 19 +-
drivers/net/ethernet/cisco/enic/enic_ethtool.c | 19 +-
drivers/net/ethernet/cisco/enic/enic_main.c | 5 +-
drivers/net/ethernet/cisco/enic/enic_pp.c | 19 +-
drivers/net/ethernet/cisco/enic/enic_pp.h | 19 +-
drivers/net/ethernet/cisco/enic/enic_res.c | 15 +-
drivers/net/ethernet/cisco/enic/enic_res.h | 15 +-
drivers/net/ethernet/cisco/enic/rq_enet_desc.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_cq.c | 15 +-
drivers/net/ethernet/cisco/enic/vnic_cq.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_dev.c | 15 +-
drivers/net/ethernet/cisco/enic/vnic_dev.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_devcmd.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_enet.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_intr.c | 15 +-
drivers/net/ethernet/cisco/enic/vnic_intr.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_nic.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_resource.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_rq.c | 16 +-
drivers/net/ethernet/cisco/enic/vnic_rq.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_rss.h | 14 +-
drivers/net/ethernet/cisco/enic/vnic_stats.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_vic.c | 19 +-
drivers/net/ethernet/cisco/enic/vnic_vic.h | 19 +-
drivers/net/ethernet/cisco/enic/vnic_wq.c | 15 +-
drivers/net/ethernet/cisco/enic/vnic_wq.h | 15 +-
drivers/net/ethernet/cisco/enic/wq_enet_desc.h | 15 +-
drivers/net/ethernet/emulex/benet/be_cmds.c | 10 +-
drivers/net/ethernet/emulex/benet/be_cmds.h | 2 +-
drivers/net/ethernet/emulex/benet/be_ethtool.c | 31 +-
drivers/net/ethernet/emulex/benet/be_main.c | 8 +-
drivers/net/ethernet/engleder/tsnep_main.c | 10 +-
drivers/net/ethernet/faraday/ftgmac100.c | 15 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 4 +-
drivers/net/ethernet/freescale/fec_main.c | 2 +-
drivers/net/ethernet/freescale/fec_mpc52xx.c | 2 +-
drivers/net/ethernet/freescale/fec_mpc52xx_phy.c | 3 +-
drivers/net/ethernet/freescale/fs_enet/fs_enet.h | 2 +-
drivers/net/ethernet/freescale/fs_enet/mii-fec.c | 4 +-
drivers/net/ethernet/freescale/gianfar.c | 1 +
drivers/net/ethernet/freescale/gianfar_ethtool.c | 6 +-
drivers/net/ethernet/fungible/funcore/fun_hci.h | 40 +
.../net/ethernet/fungible/funeth/funeth_ethtool.c | 36 +
drivers/net/ethernet/fungible/funeth/funeth_main.c | 3 +-
drivers/net/ethernet/fungible/funeth/funeth_rx.c | 5 +-
drivers/net/ethernet/fungible/funeth/funeth_tx.c | 174 +-
drivers/net/ethernet/fungible/funeth/funeth_txrx.h | 7 +-
drivers/net/ethernet/google/gve/gve_tx_dqo.c | 6 +-
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 6 +-
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 1 +
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 4 +-
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 2 +-
drivers/net/ethernet/hisilicon/hns3/hns3_trace.h | 3 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 18 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 101 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h | 1 +
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 2 +-
drivers/net/ethernet/hisilicon/hns_mdio.c | 4 +-
drivers/net/ethernet/huawei/hinic/hinic_dev.h | 3 -
drivers/net/ethernet/huawei/hinic/hinic_devlink.c | 4 +-
drivers/net/ethernet/huawei/hinic/hinic_main.c | 68 +-
drivers/net/ethernet/huawei/hinic/hinic_rx.c | 2 -
drivers/net/ethernet/huawei/hinic/hinic_sriov.c | 6 -
drivers/net/ethernet/huawei/hinic/hinic_tx.c | 2 -
drivers/net/ethernet/ibm/ehea/ehea_main.c | 2 +-
drivers/net/ethernet/ibm/ibmvnic.c | 9 +
drivers/net/ethernet/intel/e100.c | 1 -
drivers/net/ethernet/intel/e1000/e1000_hw.c | 6 +-
drivers/net/ethernet/intel/e1000/e1000_main.c | 4 +-
drivers/net/ethernet/intel/e1000/e1000_param.c | 2 -
drivers/net/ethernet/intel/e1000e/e1000.h | 2 +-
drivers/net/ethernet/intel/e1000e/hw.h | 1 -
drivers/net/ethernet/intel/e1000e/ich8lan.c | 4 -
drivers/net/ethernet/intel/e1000e/ich8lan.h | 1 -
drivers/net/ethernet/intel/e1000e/mac.c | 2 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 38 +-
drivers/net/ethernet/intel/e1000e/param.c | 2 -
drivers/net/ethernet/intel/e1000e/ptp.c | 18 +-
drivers/net/ethernet/intel/fm10k/fm10k_mbx.c | 4 +-
drivers/net/ethernet/intel/fm10k/fm10k_tlv.c | 4 +-
drivers/net/ethernet/intel/i40e/i40e.h | 31 +
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 128 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 254 +-
drivers/net/ethernet/intel/i40e/i40e_ptp.c | 36 +-
drivers/net/ethernet/intel/i40e/i40e_register.h | 13 +
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 105 +-
drivers/net/ethernet/intel/i40e/i40e_type.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 14 +-
drivers/net/ethernet/intel/i40e/i40e_xsk.c | 17 +-
drivers/net/ethernet/intel/iavf/iavf.h | 27 +-
drivers/net/ethernet/intel/iavf/iavf_ethtool.c | 10 -
drivers/net/ethernet/intel/iavf/iavf_main.c | 243 +-
drivers/net/ethernet/intel/iavf/iavf_txrx.c | 7 +-
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 130 +-
drivers/net/ethernet/intel/ice/ice.h | 8 +-
drivers/net/ethernet/intel/ice/ice_adminq_cmd.h | 7 +-
drivers/net/ethernet/intel/ice/ice_common.c | 47 +-
drivers/net/ethernet/intel/ice/ice_common.h | 4 +
drivers/net/ethernet/intel/ice/ice_devids.h | 1 +
drivers/net/ethernet/intel/ice/ice_devlink.c | 59 +-
drivers/net/ethernet/intel/ice/ice_eswitch.c | 8 +-
drivers/net/ethernet/intel/ice/ice_ethtool.c | 54 +-
drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c | 4 +-
drivers/net/ethernet/intel/ice/ice_flex_pipe.c | 7 +-
drivers/net/ethernet/intel/ice/ice_fw_update.c | 96 +-
drivers/net/ethernet/intel/ice/ice_gnss.c | 253 +-
drivers/net/ethernet/intel/ice/ice_gnss.h | 30 +-
drivers/net/ethernet/intel/ice/ice_lag.c | 6 +-
drivers/net/ethernet/intel/ice/ice_lib.c | 115 +-
drivers/net/ethernet/intel/ice/ice_lib.h | 11 +-
drivers/net/ethernet/intel/ice/ice_main.c | 154 +-
drivers/net/ethernet/intel/ice/ice_protocol_type.h | 20 +-
drivers/net/ethernet/intel/ice/ice_ptp.c | 36 +-
drivers/net/ethernet/intel/ice/ice_ptp.h | 31 +
drivers/net/ethernet/intel/ice/ice_sriov.c | 50 -
drivers/net/ethernet/intel/ice/ice_switch.c | 689 +-
drivers/net/ethernet/intel/ice/ice_switch.h | 9 +-
drivers/net/ethernet/intel/ice/ice_tc_lib.c | 142 +-
drivers/net/ethernet/intel/ice/ice_tc_lib.h | 11 +
drivers/net/ethernet/intel/ice/ice_txrx.c | 8 +-
drivers/net/ethernet/intel/ice/ice_type.h | 4 -
drivers/net/ethernet/intel/ice/ice_vf_lib.c | 94 +-
drivers/net/ethernet/intel/ice/ice_vf_lib.h | 7 +-
drivers/net/ethernet/intel/ice/ice_virtchnl.c | 228 +-
drivers/net/ethernet/intel/ice/ice_vlan_mode.c | 1 -
drivers/net/ethernet/intel/igb/e1000_82575.c | 2 +-
drivers/net/ethernet/intel/igb/e1000_defines.h | 3 -
drivers/net/ethernet/intel/igb/e1000_mac.c | 2 +-
drivers/net/ethernet/intel/igb/e1000_regs.h | 1 -
drivers/net/ethernet/intel/igb/igb_main.c | 142 +-
drivers/net/ethernet/intel/igb/igb_ptp.c | 15 +-
drivers/net/ethernet/intel/igbvf/igbvf.h | 2 +-
drivers/net/ethernet/intel/igbvf/netdev.c | 2 +-
drivers/net/ethernet/intel/igc/igc_hw.h | 2 -
drivers/net/ethernet/intel/igc/igc_mac.c | 2 +-
drivers/net/ethernet/intel/igc/igc_main.c | 26 +-
drivers/net/ethernet/intel/igc/igc_ptp.c | 1 -
drivers/net/ethernet/intel/igc/igc_regs.h | 8 +-
drivers/net/ethernet/intel/ixgb/ixgb_hw.c | 4 +-
drivers/net/ethernet/intel/ixgb/ixgb_main.c | 3 +-
drivers/net/ethernet/intel/ixgb/ixgb_param.c | 2 -
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 35 +
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 2 -
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 2 -
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 91 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 74 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 16 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 7 +
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 4 +-
drivers/net/ethernet/intel/ixgbevf/ethtool.c | 4 -
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 2 +-
drivers/net/ethernet/intel/ixgbevf/vf.c | 2 +-
drivers/net/ethernet/marvell/mv643xx_eth.c | 2 +-
drivers/net/ethernet/marvell/mvneta.c | 4 +-
.../marvell/octeon_ep/octep_regs_cn9k_pf.h | 2 +-
drivers/net/ethernet/marvell/octeontx2/af/Makefile | 2 +-
drivers/net/ethernet/marvell/octeontx2/af/cgx.c | 69 +-
drivers/net/ethernet/marvell/octeontx2/af/cgx.h | 2 +-
.../net/ethernet/marvell/octeontx2/af/cgx_fw_if.h | 2 +
.../ethernet/marvell/octeontx2/af/lmac_common.h | 1 +
drivers/net/ethernet/marvell/octeontx2/af/mbox.h | 45 +-
drivers/net/ethernet/marvell/octeontx2/af/npc.h | 25 +
.../ethernet/marvell/octeontx2/af/npc_profile.h | 5 +-
drivers/net/ethernet/marvell/octeontx2/af/rpm.c | 51 +-
drivers/net/ethernet/marvell/octeontx2/af/rpm.h | 5 +-
drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 22 +
drivers/net/ethernet/marvell/octeontx2/af/rvu.h | 26 +-
.../net/ethernet/marvell/octeontx2/af/rvu_cgx.c | 57 +-
.../net/ethernet/marvell/octeontx2/af/rvu_cpt.c | 4 +-
.../ethernet/marvell/octeontx2/af/rvu_debugfs.c | 179 +
.../ethernet/marvell/octeontx2/af/rvu_devlink.c | 71 +-
.../net/ethernet/marvell/octeontx2/af/rvu_nix.c | 41 +-
.../net/ethernet/marvell/octeontx2/af/rvu_npc.c | 68 +-
.../net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c | 164 +-
.../net/ethernet/marvell/octeontx2/af/rvu_npc_fs.h | 17 +
.../ethernet/marvell/octeontx2/af/rvu_npc_hash.c | 2009 +
.../ethernet/marvell/octeontx2/af/rvu_npc_hash.h | 233 +
.../net/ethernet/marvell/octeontx2/af/rvu_reg.h | 15 +
.../ethernet/marvell/octeontx2/nic/otx2_common.c | 19 +-
.../ethernet/marvell/octeontx2/nic/otx2_common.h | 11 +-
.../ethernet/marvell/octeontx2/nic/otx2_dmac_flt.c | 59 +-
.../ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 3 +-
.../ethernet/marvell/octeontx2/nic/otx2_flows.c | 40 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 2 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_tc.c | 106 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_txrx.c | 4 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_txrx.h | 2 +-
drivers/net/ethernet/marvell/prestera/Kconfig | 1 +
drivers/net/ethernet/marvell/prestera/prestera.h | 60 +-
.../net/ethernet/marvell/prestera/prestera_acl.c | 47 +-
.../net/ethernet/marvell/prestera/prestera_acl.h | 4 +-
.../ethernet/marvell/prestera/prestera_ethtool.c | 28 +-
.../ethernet/marvell/prestera/prestera_ethtool.h | 3 -
.../net/ethernet/marvell/prestera/prestera_flow.c | 52 +-
.../net/ethernet/marvell/prestera/prestera_flow.h | 1 +
.../ethernet/marvell/prestera/prestera_flower.c | 42 +-
.../net/ethernet/marvell/prestera/prestera_hw.c | 256 +-
.../net/ethernet/marvell/prestera/prestera_hw.h | 22 +-
.../net/ethernet/marvell/prestera/prestera_main.c | 547 +-
.../ethernet/marvell/prestera/prestera_router.c | 5 +-
.../ethernet/marvell/prestera/prestera_switchdev.c | 706 +-
drivers/net/ethernet/marvell/sky2.c | 4 +-
drivers/net/ethernet/mediatek/Kconfig | 2 +
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 673 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 34 +-
drivers/net/ethernet/mediatek/mtk_ppe_offload.c | 29 +-
drivers/net/ethernet/mediatek/mtk_star_emac.c | 529 +-
drivers/net/ethernet/mediatek/mtk_wed.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/catas.c | 5 +
drivers/net/ethernet/mellanox/mlx4/crdump.c | 20 +-
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 4 +-
drivers/net/ethernet/mellanox/mlx4/fw.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/main.c | 40 +-
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 12 +-
drivers/net/ethernet/mellanox/mlx5/core/debugfs.c | 24 +
drivers/net/ethernet/mellanox/mlx5/core/dev.c | 36 +-
drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 55 +-
.../ethernet/mellanox/mlx5/core/diag/fw_tracer.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/en.h | 46 +-
.../net/ethernet/mellanox/mlx5/core/en/devlink.c | 16 +-
drivers/net/ethernet/mellanox/mlx5/core/en/fs.h | 44 +-
.../mellanox/mlx5/core/en/fs_tt_redirect.c | 72 +-
drivers/net/ethernet/mellanox/mlx5/core/en/htb.c | 722 +
drivers/net/ethernet/mellanox/mlx5/core/en/htb.h | 46 +
.../net/ethernet/mellanox/mlx5/core/en/params.c | 15 +-
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 45 +-
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.h | 1 +
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c | 813 +-
drivers/net/ethernet/mellanox/mlx5/core/en/qos.h | 37 +-
.../ethernet/mellanox/mlx5/core/en/rep/bridge.c | 6 +
.../net/ethernet/mellanox/mlx5/core/en/rep/tc.c | 117 +-
drivers/net/ethernet/mellanox/mlx5/core/en/selq.c | 51 +-
drivers/net/ethernet/mellanox/mlx5/core/en/selq.h | 4 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/act.c | 4 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/act.h | 13 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/goto.c | 2 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/police.c | 153 +
.../ethernet/mellanox/mlx5/core/en/tc/act/trap.c | 2 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/meter.c | 579 +
.../net/ethernet/mellanox/mlx5/core/en/tc/meter.h | 74 +
.../ethernet/mellanox/mlx5/core/en/tc/post_act.c | 9 +-
.../ethernet/mellanox/mlx5/core/en/tc/post_meter.c | 209 +
.../ethernet/mellanox/mlx5/core/en/tc/post_meter.h | 29 +
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c | 26 +-
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.h | 11 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_priv.h | 9 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 4 +-
.../net/ethernet/mellanox/mlx5/core/en/xsk/rx.h | 14 +
.../mellanox/mlx5/core/en_accel/en_accel.h | 10 +
.../ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c | 32 +-
.../mellanox/mlx5/core/en_accel/ipsec_fs.c | 10 +-
.../mellanox/mlx5/core/en_accel/ipsec_fs.h | 21 -
.../ethernet/mellanox/mlx5/core/en_accel/ktls.c | 2 +-
.../ethernet/mellanox/mlx5/core/en_accel/ktls.h | 14 +
.../ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c | 3 +-
.../mellanox/mlx5/core/en_accel/ktls_stats.c | 2 +
.../ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c | 526 +-
drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 58 +-
.../net/ethernet/mellanox/mlx5/core/en_common.c | 5 +-
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 16 +-
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c | 554 +-
.../ethernet/mellanox/mlx5/core/en_fs_ethtool.c | 29 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 318 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 67 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.h | 3 +
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 16 +-
drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 2 +
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 223 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h | 12 +
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 53 +-
.../net/ethernet/mellanox/mlx5/core/esw/bridge.c | 408 +-
.../net/ethernet/mellanox/mlx5/core/esw/bridge.h | 6 +-
.../net/ethernet/mellanox/mlx5/core/esw/debugfs.c | 182 +
.../ethernet/mellanox/mlx5/core/esw/devlink_port.c | 20 +-
.../net/ethernet/mellanox/mlx5/core/esw/legacy.c | 5 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 123 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 26 +-
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 179 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 49 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 61 +-
drivers/net/ethernet/mellanox/mlx5/core/fw.c | 4 +
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/health.c | 4 +
.../ethernet/mellanox/mlx5/core/ipoib/ethtool.c | 2 +-
.../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 20 +-
.../net/ethernet/mellanox/mlx5/core/lag/debugfs.c | 14 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 30 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 13 +-
.../net/ethernet/mellanox/mlx5/core/lag/mpesw.c | 5 +-
drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c | 433 +
drivers/net/ethernet/mellanox/mlx5/core/lib/aso.h | 87 +
drivers/net/ethernet/mellanox/mlx5/core/lib/dm.c | 53 +-
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c | 11 +-
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.h | 1 -
drivers/net/ethernet/mellanox/mlx5/core/main.c | 99 +-
.../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 3 +-
.../net/ethernet/mellanox/mlx5/core/sf/devlink.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/sriov.c | 9 +-
.../mellanox/mlx5/core/steering/dr_action.c | 99 +
.../ethernet/mellanox/mlx5/core/steering/dr_cmd.c | 1 +
.../ethernet/mellanox/mlx5/core/steering/dr_dbg.c | 13 +-
.../mellanox/mlx5/core/steering/dr_ste_v1.c | 56 +
.../mellanox/mlx5/core/steering/dr_table.c | 8 +-
.../mellanox/mlx5/core/steering/dr_types.h | 18 +
.../ethernet/mellanox/mlx5/core/steering/fs_dr.c | 28 +-
.../mellanox/mlx5/core/steering/mlx5_ifc_dr.h | 26 +
.../ethernet/mellanox/mlx5/core/steering/mlx5dr.h | 11 +-
drivers/net/ethernet/mellanox/mlx5/core/vport.c | 14 +-
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c | 4 +-
drivers/net/ethernet/mellanox/mlxsw/Kconfig | 1 +
drivers/net/ethernet/mellanox/mlxsw/Makefile | 6 +-
drivers/net/ethernet/mellanox/mlxsw/cmd.h | 106 +-
drivers/net/ethernet/mellanox/mlxsw/core.c | 123 +-
drivers/net/ethernet/mellanox/mlxsw/core.h | 63 +-
.../mellanox/mlxsw/core_acl_flex_actions.c | 2 +-
drivers/net/ethernet/mellanox/mlxsw/core_env.c | 2 +-
.../ethernet/mellanox/mlxsw/core_linecard_dev.c | 183 +
.../net/ethernet/mellanox/mlxsw/core_linecards.c | 405 +
drivers/net/ethernet/mellanox/mlxsw/minimal.c | 10 +-
drivers/net/ethernet/mellanox/mlxsw/pci.c | 138 +-
drivers/net/ethernet/mellanox/mlxsw/pci_hw.h | 81 +-
drivers/net/ethernet/mellanox/mlxsw/port.h | 2 -
drivers/net/ethernet/mellanox/mlxsw/reg.h | 1298 +-
drivers/net/ethernet/mellanox/mlxsw/resources.h | 4 +
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 298 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 69 +-
.../net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c | 82 +-
.../net/ethernet/mellanox/mlxsw/spectrum2_kvdl.c | 2 +-
.../net/ethernet/mellanox/mlxsw/spectrum_buffers.c | 14 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c | 62 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.h | 2 +-
.../net/ethernet/mellanox/mlxsw/spectrum_dpipe.c | 92 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c | 1072 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c | 346 +
.../net/ethernet/mellanox/mlxsw/spectrum_policer.c | 32 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c | 718 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.h | 60 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.c | 1075 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.h | 77 +-
.../ethernet/mellanox/mlxsw/spectrum_router_xm.c | 812 -
.../net/ethernet/mellanox/mlxsw/spectrum_span.c | 6 +-
.../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 842 +-
.../net/ethernet/mellanox/mlxsw/spectrum_trap.c | 35 +-
drivers/net/ethernet/mellanox/mlxsw/trap.h | 4 +-
drivers/net/ethernet/microchip/lan743x_ethtool.c | 63 +-
drivers/net/ethernet/microchip/lan743x_ethtool.h | 26 +
drivers/net/ethernet/microchip/lan743x_main.c | 378 +-
drivers/net/ethernet/microchip/lan743x_main.h | 106 +
.../net/ethernet/microchip/lan966x/lan966x_mac.c | 112 +-
.../net/ethernet/microchip/lan966x/lan966x_main.c | 8 +-
.../net/ethernet/microchip/lan966x/lan966x_main.h | 1 +
.../ethernet/microchip/sparx5/sparx5_switchdev.c | 59 +-
drivers/net/ethernet/microsoft/mana/gdma.h | 10 +
drivers/net/ethernet/microsoft/mana/gdma_main.c | 39 +-
drivers/net/ethernet/microsoft/mana/hw_channel.c | 18 +-
drivers/net/ethernet/microsoft/mana/hw_channel.h | 5 +
drivers/net/ethernet/microsoft/mana/mana.h | 70 +
drivers/net/ethernet/microsoft/mana/mana_bpf.c | 64 +
drivers/net/ethernet/microsoft/mana/mana_en.c | 148 +-
drivers/net/ethernet/microsoft/mana/mana_ethtool.c | 12 +-
drivers/net/ethernet/mscc/ocelot.c | 1 +
drivers/net/ethernet/mscc/ocelot_fdma.c | 17 +-
drivers/net/ethernet/mscc/ocelot_ptp.c | 8 +
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 2 +-
drivers/net/ethernet/natsemi/natsemi.c | 2 +-
drivers/net/ethernet/neterion/Kconfig | 24 -
drivers/net/ethernet/neterion/Makefile | 1 -
drivers/net/ethernet/neterion/s2io.c | 10 +-
drivers/net/ethernet/neterion/vxge/Makefile | 8 -
drivers/net/ethernet/neterion/vxge/vxge-config.c | 5099 -
drivers/net/ethernet/neterion/vxge/vxge-config.h | 2086 -
drivers/net/ethernet/neterion/vxge/vxge-ethtool.c | 1154 -
drivers/net/ethernet/neterion/vxge/vxge-ethtool.h | 48 -
drivers/net/ethernet/neterion/vxge/vxge-main.c | 4808 -
drivers/net/ethernet/neterion/vxge/vxge-main.h | 516 -
drivers/net/ethernet/neterion/vxge/vxge-reg.h | 4636 -
drivers/net/ethernet/neterion/vxge/vxge-traffic.c | 2428 -
drivers/net/ethernet/neterion/vxge/vxge-traffic.h | 2290 -
drivers/net/ethernet/neterion/vxge/vxge-version.h | 49 -
drivers/net/ethernet/netronome/nfp/bpf/jit.c | 2 +-
drivers/net/ethernet/netronome/nfp/flower/action.c | 25 +-
drivers/net/ethernet/netronome/nfp/flower/cmsg.h | 2 -
.../net/ethernet/netronome/nfp/flower/conntrack.c | 46 +-
.../net/ethernet/netronome/nfp/flower/lag_conf.c | 4 +-
drivers/net/ethernet/netronome/nfp/flower/match.c | 16 +-
.../net/ethernet/netronome/nfp/flower/metadata.c | 2 +-
.../net/ethernet/netronome/nfp/flower/offload.c | 4 +-
.../net/ethernet/netronome/nfp/flower/qos_conf.c | 6 +-
.../ethernet/netronome/nfp/flower/tunnel_conf.c | 20 +-
drivers/net/ethernet/netronome/nfp/nfd3/dp.c | 84 +-
drivers/net/ethernet/netronome/nfp/nfd3/rings.c | 4 +
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c | 17 +-
drivers/net/ethernet/netronome/nfp/nfdk/dp.c | 155 +-
drivers/net/ethernet/netronome/nfp/nfdk/rings.c | 5 +-
drivers/net/ethernet/netronome/nfp/nfp_app.c | 2 +-
drivers/net/ethernet/netronome/nfp/nfp_main.c | 6 +-
drivers/net/ethernet/netronome/nfp/nfp_net.h | 27 +-
.../net/ethernet/netronome/nfp/nfp_net_common.c | 153 +-
drivers/net/ethernet/netronome/nfp/nfp_net_ctrl.h | 18 +
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c | 24 +
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h | 4 +
.../net/ethernet/netronome/nfp/nfp_net_ethtool.c | 222 +
drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 12 +-
drivers/net/ethernet/netronome/nfp/nfp_net_sriov.c | 28 +-
drivers/net/ethernet/netronome/nfp/nfp_net_xsk.c | 8 +-
drivers/net/ethernet/netronome/nfp/nfpcore/crc32.h | 1 -
.../net/ethernet/netronome/nfp/nfpcore/nfp_cpp.h | 26 +-
.../ethernet/netronome/nfp/nfpcore/nfp_cppcore.c | 3 +-
.../net/ethernet/netronome/nfp/nfpcore/nfp_dev.c | 4 +-
.../net/ethernet/netronome/nfp/nfpcore/nfp_nsp.h | 2 +
.../ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.c | 30 +
drivers/net/ethernet/pensando/ionic/ionic_lif.c | 2 +-
drivers/net/ethernet/pensando/ionic/ionic_txrx.c | 5 +-
.../net/ethernet/qlogic/netxen/netxen_nic_main.c | 2 +-
drivers/net/ethernet/qlogic/qed/qed_dev.c | 4 +-
drivers/net/ethernet/qlogic/qed/qed_int.c | 2 +-
drivers/net/ethernet/qlogic/qed/qed_rdma.c | 7 +-
drivers/net/ethernet/qlogic/qede/qede_fp.c | 8 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 2 +-
.../net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c | 6 +-
drivers/net/ethernet/qualcomm/emac/emac-mac.c | 6 +-
drivers/net/ethernet/realtek/r8169_main.c | 10 +-
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | 2 +-
drivers/net/ethernet/sfc/Makefile | 3 +-
drivers/net/ethernet/sfc/ef10.c | 33 +-
drivers/net/ethernet/sfc/ef100.c | 70 +-
drivers/net/ethernet/sfc/ef100_ethtool.c | 2 +-
drivers/net/ethernet/sfc/ef100_netdev.c | 148 +-
drivers/net/ethernet/sfc/ef100_netdev.h | 9 +-
drivers/net/ethernet/sfc/ef100_nic.c | 510 +-
drivers/net/ethernet/sfc/ef100_nic.h | 13 +-
drivers/net/ethernet/sfc/ef100_regs.h | 83 +-
drivers/net/ethernet/sfc/ef100_rep.c | 435 +
drivers/net/ethernet/sfc/ef100_rep.h | 69 +
drivers/net/ethernet/sfc/ef100_rx.c | 46 +-
drivers/net/ethernet/sfc/ef100_sriov.c | 32 +-
drivers/net/ethernet/sfc/ef100_sriov.h | 2 +-
drivers/net/ethernet/sfc/ef100_tx.c | 84 +-
drivers/net/ethernet/sfc/ef100_tx.h | 3 +
drivers/net/ethernet/sfc/ef10_sriov.c | 26 +-
drivers/net/ethernet/sfc/efx.c | 73 +-
drivers/net/ethernet/sfc/efx.h | 9 +-
drivers/net/ethernet/sfc/efx_common.c | 115 +-
drivers/net/ethernet/sfc/efx_common.h | 19 +-
drivers/net/ethernet/sfc/ethtool.c | 22 +-
drivers/net/ethernet/sfc/ethtool_common.c | 51 +-
drivers/net/ethernet/sfc/falcon/bitfield.h | 2 +-
drivers/net/ethernet/sfc/falcon/farch.c | 6 +-
drivers/net/ethernet/sfc/falcon/net_driver.h | 2 +-
drivers/net/ethernet/sfc/filter.h | 18 +
drivers/net/ethernet/sfc/mae.c | 346 +
drivers/net/ethernet/sfc/mae.h | 42 +
drivers/net/ethernet/sfc/mcdi.c | 63 +-
drivers/net/ethernet/sfc/mcdi.h | 5 +
drivers/net/ethernet/sfc/mcdi_filters.c | 6 +-
drivers/net/ethernet/sfc/mcdi_filters.h | 1 +
drivers/net/ethernet/sfc/mcdi_pcol.h | 8190 +-
drivers/net/ethernet/sfc/mcdi_pcol_mae.h | 24 +
drivers/net/ethernet/sfc/mcdi_port.c | 4 +-
drivers/net/ethernet/sfc/net_driver.h | 79 +-
drivers/net/ethernet/sfc/ptp.c | 22 +
drivers/net/ethernet/sfc/rx_common.c | 8 +-
drivers/net/ethernet/sfc/siena/farch.c | 6 +-
drivers/net/ethernet/sfc/siena/mcdi.c | 2 +-
drivers/net/ethernet/sfc/siena/mcdi_pcol.h | 10 +-
drivers/net/ethernet/sfc/siena/net_driver.h | 2 +-
drivers/net/ethernet/sfc/sriov.c | 10 +-
drivers/net/ethernet/sfc/tc.c | 252 +
drivers/net/ethernet/sfc/tc.h | 85 +
drivers/net/ethernet/sfc/tx.c | 10 +-
drivers/net/ethernet/sfc/tx_common.c | 35 +-
drivers/net/ethernet/sfc/tx_common.h | 3 +-
drivers/net/ethernet/smsc/epic100.c | 4 +-
drivers/net/ethernet/stmicro/stmmac/Kconfig | 3 +
drivers/net/ethernet/stmicro/stmmac/chain_mode.c | 6 +-
.../ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c | 1 +
.../net/ethernet/stmicro/stmmac/dwmac-ingenic.c | 6 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 63 +-
.../net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 157 +-
.../net/ethernet/stmicro/stmmac/dwmac-mediatek.c | 56 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4.h | 3 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 7 +
drivers/net/ethernet/stmicro/stmmac/mmc_core.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/ring_mode.c | 4 +-
drivers/net/ethernet/stmicro/stmmac/stmmac.h | 22 +-
.../net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 12 +-
.../net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c | 5 +
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 759 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 14 +
.../net/ethernet/stmicro/stmmac/stmmac_platform.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 12 +-
.../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 6 +-
drivers/net/ethernet/sun/cassini.c | 2 +-
drivers/net/ethernet/sun/cassini.h | 2 +-
drivers/net/ethernet/sun/ldmvsw.c | 2 +-
drivers/net/ethernet/sun/sungem.c | 2 +-
drivers/net/ethernet/sun/sunhme.c | 43 +-
drivers/net/ethernet/sunplus/spl2sw_driver.c | 2 +-
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c | 2 +-
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 17 +-
drivers/net/ethernet/via/via-velocity.h | 2 +-
drivers/net/ethernet/wangxun/Kconfig | 32 +
drivers/net/ethernet/wangxun/Makefile | 6 +
drivers/net/ethernet/wangxun/txgbe/Makefile | 9 +
drivers/net/ethernet/wangxun/txgbe/txgbe.h | 24 +
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c | 166 +
drivers/net/ethernet/wangxun/txgbe/txgbe_type.h | 57 +
drivers/net/ethernet/xilinx/xilinx_axienet.h | 51 +
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 29 +-
drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c | 2 +-
drivers/net/ethernet/xscale/ixp4xx_eth.c | 15 +-
drivers/net/fddi/skfp/fplustm.c | 2 +-
drivers/net/geneve.c | 16 +-
drivers/net/hamradio/6pack.c | 9 +-
drivers/net/ipa/Makefile | 10 +-
drivers/net/ipa/{ => data}/ipa_data-v3.1.c | 8 +-
drivers/net/ipa/{ => data}/ipa_data-v3.5.1.c | 8 +-
drivers/net/ipa/{ => data}/ipa_data-v4.11.c | 8 +-
drivers/net/ipa/{ => data}/ipa_data-v4.2.c | 8 +-
drivers/net/ipa/{ => data}/ipa_data-v4.5.c | 8 +-
drivers/net/ipa/{ => data}/ipa_data-v4.9.c | 8 +-
drivers/net/ipa/gsi.c | 252 +-
drivers/net/ipa/gsi.h | 26 +-
drivers/net/ipa/gsi_private.h | 24 +-
drivers/net/ipa/gsi_trans.c | 197 +-
drivers/net/ipa/gsi_trans.h | 15 +-
drivers/net/ipa/ipa_cmd.c | 8 +-
drivers/net/ipa/ipa_endpoint.c | 27 +-
drivers/net/ipa/ipa_endpoint.h | 4 +-
drivers/net/ipa/ipa_main.c | 3 +
drivers/net/ipa/ipa_qmi_msg.h | 2 +-
drivers/net/ipa/ipa_sysfs.c | 69 +-
drivers/net/ipa/ipa_sysfs.h | 1 +
drivers/net/ipvlan/ipvlan.h | 10 +-
drivers/net/ipvlan/ipvlan_core.c | 6 +-
drivers/net/ipvlan/ipvlan_main.c | 18 +-
drivers/net/macsec.c | 103 +-
drivers/net/macvlan.c | 22 +-
drivers/net/mdio/fwnode_mdio.c | 4 +-
drivers/net/netconsole.c | 2 +-
drivers/net/netdevsim/bpf.c | 8 +-
drivers/net/netdevsim/bus.c | 19 -
drivers/net/netdevsim/dev.c | 128 +-
drivers/net/netdevsim/fib.c | 103 +-
drivers/net/netdevsim/netdevsim.h | 3 -
drivers/net/pcs/Kconfig | 12 +-
drivers/net/pcs/Makefile | 1 +
drivers/net/pcs/pcs-lynx.c | 80 +-
drivers/net/pcs/pcs-rzn1-miic.c | 531 +
drivers/net/pcs/pcs-xpcs.c | 170 +-
drivers/net/pcs/pcs-xpcs.h | 1 -
drivers/net/phy/Kconfig | 7 +
drivers/net/phy/Makefile | 1 +
drivers/net/phy/aquantia_main.c | 35 +-
drivers/net/phy/at803x.c | 6 +
drivers/net/phy/ax88796b.c | 6 +-
drivers/net/phy/bcm-phy-lib.h | 19 +
drivers/net/phy/bcm-phy-ptp.c | 944 +
drivers/net/phy/broadcom.c | 48 +-
drivers/net/phy/dp83822.c | 4 +-
drivers/net/phy/dp83867.c | 84 +-
drivers/net/phy/dp83td510.c | 49 +
drivers/net/phy/fixed_phy.c | 1 +
drivers/net/phy/marvell-88x2222.c | 2 +
drivers/net/phy/marvell.c | 10 +-
drivers/net/phy/mdio_bus.c | 1 -
drivers/net/phy/micrel.c | 73 +-
drivers/net/phy/mxl-gpy.c | 162 +-
drivers/net/phy/nxp-tja11xx.c | 11 +-
drivers/net/phy/phy-c45.c | 34 +-
drivers/net/phy/phy.c | 23 +
drivers/net/phy/phy_device.c | 47 +-
drivers/net/phy/phylink.c | 74 +-
drivers/net/phy/sfp.c | 12 +-
drivers/net/phy/smsc.c | 19 +-
drivers/net/plip/plip.c | 2 +-
drivers/net/ppp/ppp_generic.c | 2 +-
drivers/net/sungem_phy.c | 1 +
drivers/net/tap.c | 20 +-
drivers/net/team/team.c | 26 +-
drivers/net/tun.c | 15 +-
drivers/net/usb/Kconfig | 3 +-
drivers/net/usb/asix.h | 6 +-
drivers/net/usb/asix_common.c | 41 +-
drivers/net/usb/ax88179_178a.c | 446 +-
drivers/net/usb/catc.c | 48 +-
drivers/net/usb/cdc_eem.c | 2 +-
drivers/net/usb/cdc_ncm.c | 25 +-
drivers/net/usb/cdc_subset.c | 10 +-
drivers/net/usb/kaweth.c | 2 +-
drivers/net/usb/plusb.c | 2 +-
drivers/net/usb/qmi_wwan.c | 2 +
drivers/net/usb/r8152.c | 30 +-
drivers/net/usb/smsc95xx.c | 207 +-
drivers/net/usb/usbnet.c | 42 +-
drivers/net/virtio_net.c | 400 +-
drivers/net/vmxnet3/Makefile | 2 +-
drivers/net/vmxnet3/upt1_defs.h | 2 +-
drivers/net/vmxnet3/vmxnet3_defs.h | 80 +-
drivers/net/vmxnet3/vmxnet3_drv.c | 290 +-
drivers/net/vmxnet3/vmxnet3_ethtool.c | 151 +-
drivers/net/vmxnet3/vmxnet3_int.h | 24 +-
drivers/net/vrf.c | 10 +-
drivers/net/vxlan/vxlan_core.c | 21 +-
drivers/net/wan/farsync.h | 2 +-
drivers/net/wireguard/allowedips.c | 9 +-
drivers/net/wireguard/device.c | 3 +-
drivers/net/wireguard/receive.c | 9 +-
drivers/net/wireguard/selftest/allowedips.c | 6 +-
drivers/net/wireguard/selftest/ratelimiter.c | 25 +-
drivers/net/wireless/admtek/adm8211.c | 2 +-
drivers/net/wireless/ath/ar5523/ar5523.c | 12 +-
drivers/net/wireless/ath/ath10k/core.c | 11 +-
drivers/net/wireless/ath/ath10k/core.h | 1 +
drivers/net/wireless/ath/ath10k/htt_rx.c | 8 +-
drivers/net/wireless/ath/ath10k/htt_tx.c | 61 +-
drivers/net/wireless/ath/ath10k/mac.c | 118 +-
drivers/net/wireless/ath/ath10k/qmi.c | 4 +-
drivers/net/wireless/ath/ath10k/snoc.c | 5 +-
drivers/net/wireless/ath/ath10k/trace.h | 14 +-
drivers/net/wireless/ath/ath10k/txrx.c | 15 +-
drivers/net/wireless/ath/ath10k/wmi-tlv.c | 2 +-
drivers/net/wireless/ath/ath10k/wmi.c | 4 +-
drivers/net/wireless/ath/ath11k/ahb.c | 56 +-
drivers/net/wireless/ath/ath11k/core.c | 103 +-
drivers/net/wireless/ath/ath11k/core.h | 10 +-
drivers/net/wireless/ath/ath11k/debug.h | 4 +-
.../net/wireless/ath/ath11k/debugfs_htt_stats.c | 88 +-
.../net/wireless/ath/ath11k/debugfs_htt_stats.h | 39 +
drivers/net/wireless/ath/ath11k/dp_rx.c | 8 +-
drivers/net/wireless/ath/ath11k/hal.c | 2 +-
drivers/net/wireless/ath/ath11k/hal_rx.c | 2 +-
drivers/net/wireless/ath/ath11k/htc.c | 4 +-
drivers/net/wireless/ath/ath11k/hw.h | 5 -
drivers/net/wireless/ath/ath11k/mac.c | 128 +-
drivers/net/wireless/ath/ath11k/mac.h | 2 -
drivers/net/wireless/ath/ath11k/pci.c | 72 +-
drivers/net/wireless/ath/ath11k/pcic.c | 57 +-
drivers/net/wireless/ath/ath11k/pcic.h | 2 +
drivers/net/wireless/ath/ath11k/qmi.c | 6 +-
drivers/net/wireless/ath/ath11k/trace.h | 7 +-
drivers/net/wireless/ath/ath11k/wmi.c | 50 +-
drivers/net/wireless/ath/ath11k/wmi.h | 25 -
drivers/net/wireless/ath/ath5k/base.c | 4 +-
drivers/net/wireless/ath/ath5k/mac80211-ops.c | 19 +-
drivers/net/wireless/ath/ath5k/phy.c | 2 +-
drivers/net/wireless/ath/ath6kl/cfg80211.c | 8 +-
drivers/net/wireless/ath/ath6kl/hif.h | 2 +-
drivers/net/wireless/ath/ath6kl/sdio.c | 2 +-
drivers/net/wireless/ath/ath6kl/trace.h | 14 +-
drivers/net/wireless/ath/ath6kl/usb.c | 16 +-
drivers/net/wireless/ath/ath6kl/wmi.h | 4 +-
drivers/net/wireless/ath/ath9k/ar9002_phy.c | 2 +-
drivers/net/wireless/ath/ath9k/beacon.c | 15 +-
drivers/net/wireless/ath/ath9k/dfs.c | 2 +-
drivers/net/wireless/ath/ath9k/hif_usb.c | 26 +-
drivers/net/wireless/ath/ath9k/htc.h | 32 +-
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c | 4 +-
drivers/net/wireless/ath/ath9k/htc_drv_init.c | 3 +-
drivers/net/wireless/ath/ath9k/htc_drv_main.c | 21 +-
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 10 +-
drivers/net/wireless/ath/ath9k/main.c | 15 +-
drivers/net/wireless/ath/carl9170/main.c | 7 +-
drivers/net/wireless/ath/carl9170/tx.c | 2 +-
drivers/net/wireless/ath/hw.c | 2 +-
drivers/net/wireless/ath/trace.h | 7 +-
drivers/net/wireless/ath/wcn36xx/Makefile | 3 +-
drivers/net/wireless/ath/wcn36xx/debug.c | 39 +
drivers/net/wireless/ath/wcn36xx/debug.h | 1 +
drivers/net/wireless/ath/wcn36xx/firmware.c | 125 +
drivers/net/wireless/ath/wcn36xx/firmware.h | 84 +
drivers/net/wireless/ath/wcn36xx/hal.h | 74 +-
drivers/net/wireless/ath/wcn36xx/main.c | 110 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 59 +-
drivers/net/wireless/ath/wcn36xx/smd.h | 3 -
drivers/net/wireless/ath/wil6210/cfg80211.c | 9 +-
drivers/net/wireless/ath/wil6210/debugfs.c | 18 +-
drivers/net/wireless/ath/wil6210/trace.h | 7 +-
drivers/net/wireless/ath/wil6210/txrx.c | 4 +-
drivers/net/wireless/ath/wil6210/txrx.h | 2 +-
drivers/net/wireless/ath/wil6210/wmi.c | 4 +-
drivers/net/wireless/atmel/at76c50x-usb.c | 2 +-
drivers/net/wireless/atmel/atmel.c | 2 +-
drivers/net/wireless/broadcom/b43/main.c | 11 +-
drivers/net/wireless/broadcom/b43/phy_common.h | 2 +-
drivers/net/wireless/broadcom/b43legacy/main.c | 9 +-
.../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 49 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/bus.h | 2 +-
.../broadcom/brcm80211/brcmfmac/cfg80211.c | 13 +-
.../wireless/broadcom/brcm80211/brcmfmac/common.c | 41 +-
.../wireless/broadcom/brcm80211/brcmfmac/common.h | 3 +
.../wireless/broadcom/brcm80211/brcmfmac/core.c | 8 +-
.../broadcom/brcm80211/brcmfmac/firmware.c | 25 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/of.c | 12 +-
.../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 17 +-
.../wireless/broadcom/brcm80211/brcmfmac/sdio.h | 16 -
.../broadcom/brcm80211/brcmfmac/tracepoint.h | 12 +-
.../brcm80211/brcmsmac/brcms_trace_brcmsmac_msg.h | 12 +-
.../broadcom/brcm80211/brcmsmac/mac80211_if.c | 21 +-
.../wireless/broadcom/brcm80211/brcmsmac/main.c | 2 +-
drivers/net/wireless/intel/ipw2x00/ipw2200.c | 2 +-
drivers/net/wireless/intel/iwlegacy/3945-mac.c | 6 +-
drivers/net/wireless/intel/iwlegacy/4965-mac.c | 2 +-
drivers/net/wireless/intel/iwlegacy/4965-rs.c | 5 +-
drivers/net/wireless/intel/iwlegacy/4965.c | 6 +-
drivers/net/wireless/intel/iwlegacy/common.c | 23 +-
drivers/net/wireless/intel/iwlegacy/common.h | 5 +-
drivers/net/wireless/intel/iwlwifi/dvm/agn.h | 2 +-
drivers/net/wireless/intel/iwlwifi/dvm/lib.c | 4 +-
drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c | 5 +-
drivers/net/wireless/intel/iwlwifi/dvm/main.c | 4 +-
drivers/net/wireless/intel/iwlwifi/dvm/rxon.c | 26 +-
drivers/net/wireless/intel/iwlwifi/fw/uefi.c | 96 +-
.../net/wireless/intel/iwlwifi/iwl-devtrace-msg.h | 12 +-
drivers/net/wireless/intel/iwlwifi/mvm/coex.c | 10 +-
drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 4 +-
.../net/wireless/intel/iwlwifi/mvm/debugfs-vif.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 2 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 16 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-responder.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 24 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 91 +-
.../net/wireless/intel/iwlwifi/mvm/offloading.c | 6 +-
drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/power.c | 8 +-
drivers/net/wireless/intel/iwlwifi/mvm/quota.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/sf.c | 6 +-
drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 3 +-
drivers/net/wireless/intel/iwlwifi/mvm/tdls.c | 4 +-
.../net/wireless/intel/iwlwifi/mvm/time-event.c | 12 +-
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 6 +-
drivers/net/wireless/intersil/p54/fwio.c | 6 +-
drivers/net/wireless/intersil/p54/main.c | 15 +-
drivers/net/wireless/intersil/p54/p54spi.c | 3 +-
drivers/net/wireless/mac80211_hwsim.c | 525 +-
drivers/net/wireless/mac80211_hwsim.h | 5 +-
drivers/net/wireless/marvell/libertas/if_usb.c | 1 +
drivers/net/wireless/marvell/libertas/mesh.c | 10 +-
drivers/net/wireless/marvell/libertas_tf/main.c | 6 +-
drivers/net/wireless/marvell/mwifiex/11ac.c | 14 +-
drivers/net/wireless/marvell/mwifiex/11ac.h | 14 +-
drivers/net/wireless/marvell/mwifiex/11h.c | 16 +-
drivers/net/wireless/marvell/mwifiex/11n.c | 14 +-
drivers/net/wireless/marvell/mwifiex/11n.h | 14 +-
drivers/net/wireless/marvell/mwifiex/11n_aggr.c | 14 +-
drivers/net/wireless/marvell/mwifiex/11n_aggr.h | 14 +-
.../net/wireless/marvell/mwifiex/11n_rxreorder.c | 14 +-
.../net/wireless/marvell/mwifiex/11n_rxreorder.h | 14 +-
drivers/net/wireless/marvell/mwifiex/Makefile | 13 +-
drivers/net/wireless/marvell/mwifiex/cfg80211.c | 32 +-
drivers/net/wireless/marvell/mwifiex/cfg80211.h | 14 +-
drivers/net/wireless/marvell/mwifiex/cfp.c | 14 +-
drivers/net/wireless/marvell/mwifiex/cmdevt.c | 14 +-
drivers/net/wireless/marvell/mwifiex/debugfs.c | 14 +-
drivers/net/wireless/marvell/mwifiex/decl.h | 14 +-
drivers/net/wireless/marvell/mwifiex/ethtool.c | 14 +-
drivers/net/wireless/marvell/mwifiex/fw.h | 14 +-
drivers/net/wireless/marvell/mwifiex/ie.c | 14 +-
drivers/net/wireless/marvell/mwifiex/init.c | 14 +-
drivers/net/wireless/marvell/mwifiex/ioctl.h | 14 +-
drivers/net/wireless/marvell/mwifiex/join.c | 14 +-
drivers/net/wireless/marvell/mwifiex/main.c | 14 +-
drivers/net/wireless/marvell/mwifiex/main.h | 14 +-
drivers/net/wireless/marvell/mwifiex/pcie.c | 16 +-
drivers/net/wireless/marvell/mwifiex/pcie.h | 14 +-
drivers/net/wireless/marvell/mwifiex/pcie_quirks.c | 18 +-
drivers/net/wireless/marvell/mwifiex/pcie_quirks.h | 18 +-
drivers/net/wireless/marvell/mwifiex/scan.c | 14 +-
drivers/net/wireless/marvell/mwifiex/sdio.c | 16 +-
drivers/net/wireless/marvell/mwifiex/sdio.h | 14 +-
drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 34 +-
drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c | 14 +-
drivers/net/wireless/marvell/mwifiex/sta_event.c | 14 +-
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 14 +-
drivers/net/wireless/marvell/mwifiex/sta_rx.c | 14 +-
drivers/net/wireless/marvell/mwifiex/sta_tx.c | 14 +-
drivers/net/wireless/marvell/mwifiex/txrx.c | 14 +-
drivers/net/wireless/marvell/mwifiex/uap_cmd.c | 14 +-
drivers/net/wireless/marvell/mwifiex/uap_event.c | 14 +-
drivers/net/wireless/marvell/mwifiex/uap_txrx.c | 14 +-
drivers/net/wireless/marvell/mwifiex/usb.c | 14 +-
drivers/net/wireless/marvell/mwifiex/usb.h | 14 +-
drivers/net/wireless/marvell/mwifiex/util.c | 14 +-
drivers/net/wireless/marvell/mwifiex/util.h | 14 +-
drivers/net/wireless/marvell/mwifiex/wmm.c | 14 +-
drivers/net/wireless/marvell/mwifiex/wmm.h | 14 +-
drivers/net/wireless/marvell/mwl8k.c | 21 +-
drivers/net/wireless/mediatek/mt76/dma.c | 19 +-
drivers/net/wireless/mediatek/mt76/eeprom.c | 5 +-
drivers/net/wireless/mediatek/mt76/mac80211.c | 65 +-
drivers/net/wireless/mediatek/mt76/mcu.c | 10 +-
drivers/net/wireless/mediatek/mt76/mt76.h | 85 +-
drivers/net/wireless/mediatek/mt76/mt7603/beacon.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt7603/main.c | 7 +-
drivers/net/wireless/mediatek/mt76/mt7615/dma.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7615/init.c | 5 +-
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 121 +-
drivers/net/wireless/mediatek/mt76/mt7615/mac.h | 69 -
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 32 +-
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c | 83 +-
drivers/net/wireless/mediatek/mt76/mt7615/mcu.h | 3 -
drivers/net/wireless/mediatek/mt76/mt7615/mmio.c | 4 +-
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | 10 +-
.../net/wireless/mediatek/mt76/mt7615/pci_mac.c | 109 +-
.../net/wireless/mediatek/mt76/mt7615/usb_sdio.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt76_connac.h | 116 +
.../net/wireless/mediatek/mt76/mt76_connac2_mac.h | 323 +
.../net/wireless/mediatek/mt76/mt76_connac_mac.c | 920 +
.../net/wireless/mediatek/mt76/mt76_connac_mcu.c | 315 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.h | 156 +
drivers/net/wireless/mediatek/mt76/mt76x02.h | 5 +-
.../net/wireless/mediatek/mt76/mt76x02_beacon.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 11 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c | 3 +-
.../net/wireless/mediatek/mt76/mt76x02_usb_mcu.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 5 +-
.../net/wireless/mediatek/mt76/mt7915/debugfs.c | 5 +-
drivers/net/wireless/mediatek/mt76/mt7915/dma.c | 69 +-
drivers/net/wireless/mediatek/mt76/mt7915/init.c | 21 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 915 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.h | 333 +-
drivers/net/wireless/mediatek/mt76/mt7915/main.c | 27 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 415 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 51 +-
drivers/net/wireless/mediatek/mt76/mt7915/mmio.c | 19 +-
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h | 32 +-
drivers/net/wireless/mediatek/mt76/mt7915/regs.h | 24 +-
.../net/wireless/mediatek/mt76/mt7915/testmode.c | 11 +-
drivers/net/wireless/mediatek/mt76/mt7921/Makefile | 1 +
.../net/wireless/mediatek/mt76/mt7921/acpi_sar.c | 279 +
.../net/wireless/mediatek/mt76/mt7921/acpi_sar.h | 93 +
drivers/net/wireless/mediatek/mt76/mt7921/dma.c | 21 +-
drivers/net/wireless/mediatek/mt76/mt7921/init.c | 13 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 716 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.h | 340 +-
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 125 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 424 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.h | 88 -
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 50 +-
drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 34 +-
.../net/wireless/mediatek/mt76/mt7921/pci_mac.c | 106 +-
.../net/wireless/mediatek/mt76/mt7921/pci_mcu.c | 17 +-
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c | 2 +-
.../net/wireless/mediatek/mt76/mt7921/sdio_mcu.c | 31 +-
drivers/net/wireless/mediatek/mt76/mt7921/usb.c | 14 +-
.../net/wireless/mediatek/mt76/mt7921/usb_mac.c | 4 +-
drivers/net/wireless/mediatek/mt76/sdio.c | 8 +-
drivers/net/wireless/mediatek/mt76/testmode.c | 9 +-
drivers/net/wireless/mediatek/mt76/tx.c | 54 +-
drivers/net/wireless/mediatek/mt76/usb.c | 7 +-
drivers/net/wireless/mediatek/mt7601u/debugfs.c | 2 +-
drivers/net/wireless/mediatek/mt7601u/eeprom.c | 2 +-
drivers/net/wireless/mediatek/mt7601u/main.c | 2 +-
drivers/net/wireless/mediatek/mt7601u/mt7601u.h | 3 +-
drivers/net/wireless/mediatek/mt7601u/phy.c | 9 +-
drivers/net/wireless/mediatek/mt7601u/tx.c | 3 +-
drivers/net/wireless/microchip/wilc1000/cfg80211.c | 252 +-
drivers/net/wireless/microchip/wilc1000/fw.h | 21 +-
drivers/net/wireless/microchip/wilc1000/hif.c | 228 +-
drivers/net/wireless/microchip/wilc1000/hif.h | 16 +-
drivers/net/wireless/microchip/wilc1000/netdev.c | 20 +-
drivers/net/wireless/microchip/wilc1000/netdev.h | 15 +-
drivers/net/wireless/microchip/wilc1000/sdio.c | 13 +
drivers/net/wireless/microchip/wilc1000/spi.c | 14 +-
drivers/net/wireless/microchip/wilc1000/wlan.c | 12 +-
drivers/net/wireless/microchip/wilc1000/wlan.h | 3 +
drivers/net/wireless/microchip/wilc1000/wlan_cfg.c | 6 +-
drivers/net/wireless/microchip/wilc1000/wlan_if.h | 20 +-
drivers/net/wireless/purelifi/plfxlc/mac.c | 8 +-
drivers/net/wireless/purelifi/plfxlc/usb.c | 2 +-
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c | 14 +-
drivers/net/wireless/quantenna/qtnfmac/commands.c | 14 +-
drivers/net/wireless/quantenna/qtnfmac/event.c | 15 +-
drivers/net/wireless/quantenna/qtnfmac/qlink.h | 4 +-
drivers/net/wireless/ralink/rt2x00/rt2400pci.c | 5 +-
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 5 +-
drivers/net/wireless/ralink/rt2x00/rt2800lib.h | 3 +-
drivers/net/wireless/ralink/rt2x00/rt2x00.h | 7 +-
drivers/net/wireless/ralink/rt2x00/rt2x00config.c | 4 +-
drivers/net/wireless/ralink/rt2x00/rt2x00mac.c | 9 +-
drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 2 +-
drivers/net/wireless/ralink/rt2x00/rt61pci.c | 5 +-
drivers/net/wireless/ralink/rt2x00/rt73usb.c | 5 +-
drivers/net/wireless/ray_cs.c | 20 +-
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c | 7 +-
drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c | 7 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 36 +-
drivers/net/wireless/realtek/rtlwifi/core.c | 15 +-
drivers/net/wireless/realtek/rtlwifi/debug.c | 8 +-
drivers/net/wireless/realtek/rtlwifi/pci.c | 2 +-
drivers/net/wireless/realtek/rtlwifi/regd.c | 2 +-
.../net/wireless/realtek/rtlwifi/rtl8192se/hw.c | 2 +-
drivers/net/wireless/realtek/rtw88/bf.c | 2 +-
drivers/net/wireless/realtek/rtw88/debug.c | 6 +-
drivers/net/wireless/realtek/rtw88/fw.c | 2 +-
drivers/net/wireless/realtek/rtw88/mac80211.c | 13 +-
drivers/net/wireless/realtek/rtw88/main.c | 26 +-
drivers/net/wireless/realtek/rtw88/main.h | 6 +-
drivers/net/wireless/realtek/rtw88/rtw8723d.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8723d.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8723de.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8723de.h | 10 -
drivers/net/wireless/realtek/rtw88/rtw8821c.c | 16 +-
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8821ce.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8821ce.h | 10 -
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822b.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8822be.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822be.h | 10 -
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822c.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8822ce.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822ce.h | 10 -
drivers/net/wireless/realtek/rtw89/cam.c | 38 +-
drivers/net/wireless/realtek/rtw89/cam.h | 17 +-
drivers/net/wireless/realtek/rtw89/core.c | 204 +-
drivers/net/wireless/realtek/rtw89/core.h | 80 +-
drivers/net/wireless/realtek/rtw89/debug.c | 6 +-
drivers/net/wireless/realtek/rtw89/debug.h | 3 +
drivers/net/wireless/realtek/rtw89/fw.c | 29 +-
drivers/net/wireless/realtek/rtw89/fw.h | 5 +-
drivers/net/wireless/realtek/rtw89/mac.c | 15 +-
drivers/net/wireless/realtek/rtw89/mac.h | 1 +
drivers/net/wireless/realtek/rtw89/mac80211.c | 18 +-
drivers/net/wireless/realtek/rtw89/pci.c | 27 +-
drivers/net/wireless/realtek/rtw89/pci.h | 1 +
drivers/net/wireless/realtek/rtw89/phy.c | 46 +-
drivers/net/wireless/realtek/rtw89/phy.h | 1 +
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c | 4 +-
.../net/wireless/realtek/rtw89/rtw8852a_table.c | 896 +-
drivers/net/wireless/realtek/rtw89/rtw8852c.c | 1 +
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c | 27 +
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h | 1 +
drivers/net/wireless/realtek/rtw89/sar.c | 140 +-
drivers/net/wireless/realtek/rtw89/ser.c | 15 +-
drivers/net/wireless/rndis_wlan.c | 5 +-
drivers/net/wireless/rsi/rsi_91x_core.c | 3 +-
drivers/net/wireless/rsi/rsi_91x_hal.c | 11 +-
drivers/net/wireless/rsi/rsi_91x_mac80211.c | 36 +-
drivers/net/wireless/rsi/rsi_91x_mgmt.c | 3 +-
drivers/net/wireless/rsi/rsi_91x_sdio.c | 2 +-
drivers/net/wireless/silabs/wfx/fwio.c | 3 +-
drivers/net/wireless/silabs/wfx/hif_tx.c | 12 +-
drivers/net/wireless/silabs/wfx/sta.c | 45 +-
drivers/net/wireless/silabs/wfx/sta.h | 13 +-
drivers/net/wireless/st/cw1200/bh.c | 10 +-
drivers/net/wireless/st/cw1200/sta.c | 47 +-
drivers/net/wireless/st/cw1200/sta.h | 5 +-
drivers/net/wireless/st/cw1200/txrx.c | 4 +-
drivers/net/wireless/ti/wl1251/acx.h | 2 +-
drivers/net/wireless/ti/wl1251/main.c | 15 +-
drivers/net/wireless/ti/wl12xx/main.c | 3 -
drivers/net/wireless/ti/wlcore/cmd.c | 4 +-
drivers/net/wireless/ti/wlcore/main.c | 54 +-
drivers/net/wireless/virt_wifi.c | 2 +-
drivers/net/wireless/zydas/zd1211rw/zd_mac.c | 13 +-
drivers/net/xen-netback/common.h | 12 -
drivers/net/xen-netback/interface.c | 16 +-
drivers/net/xen-netback/netback.c | 8 +-
drivers/net/xen-netback/rx.c | 3 +-
drivers/net/xen-netfront.c | 80 +-
drivers/nfc/nfcmrvl/i2c.c | 6 +-
drivers/nfc/nfcmrvl/spi.c | 6 +-
drivers/nfc/nfcmrvl/usb.c | 16 +-
drivers/nfc/nxp-nci/core.c | 34 +
drivers/nfc/nxp-nci/i2c.c | 11 +-
drivers/nfc/st21nfca/se.c | 53 +-
drivers/ntb/hw/epf/ntb_hw_epf.c | 48 +-
drivers/ntb/hw/idt/ntb_hw_idt.c | 6 +-
drivers/ntb/hw/intel/ntb_hw_gen1.c | 12 +-
drivers/ntb/hw/intel/ntb_hw_gen4.c | 2 +-
drivers/ntb/hw/intel/ntb_hw_intel.h | 7 +
drivers/ntb/test/ntb_tool.c | 8 +-
drivers/nvdimm/btt.c | 8 +-
drivers/nvdimm/bus.c | 4 +-
drivers/nvdimm/pmem.c | 23 +-
drivers/nvdimm/region_devs.c | 28 +-
drivers/nvdimm/virtio_pmem.c | 9 +-
drivers/nvme/Kconfig | 1 +
drivers/nvme/Makefile | 1 +
drivers/nvme/common/Kconfig | 4 +
drivers/nvme/common/Makefile | 7 +
drivers/nvme/common/auth.c | 483 +
drivers/nvme/host/Kconfig | 15 +
drivers/nvme/host/Makefile | 4 +-
drivers/nvme/host/apple.c | 33 +-
drivers/nvme/host/auth.c | 1017 +
drivers/nvme/host/constants.c | 3 +-
drivers/nvme/host/core.c | 519 +-
drivers/nvme/host/fabrics.c | 102 +-
drivers/nvme/host/fabrics.h | 7 +
drivers/nvme/host/fc.c | 23 +-
drivers/nvme/host/ioctl.c | 4 +-
drivers/nvme/host/multipath.c | 13 +-
drivers/nvme/host/nvme.h | 74 +-
drivers/nvme/host/pci.c | 298 +-
drivers/nvme/host/rdma.c | 133 +-
drivers/nvme/host/tcp.c | 126 +-
drivers/nvme/host/trace.c | 32 +
drivers/nvme/host/trace.h | 4 +-
drivers/nvme/host/zns.c | 6 +-
drivers/nvme/target/Kconfig | 15 +
drivers/nvme/target/Makefile | 1 +
drivers/nvme/target/admin-cmd.c | 4 +-
drivers/nvme/target/auth.c | 525 +
drivers/nvme/target/configfs.c | 156 +
drivers/nvme/target/core.c | 21 +
drivers/nvme/target/fabrics-cmd-auth.c | 544 +
drivers/nvme/target/fabrics-cmd.c | 55 +-
drivers/nvme/target/io-cmd-bdev.c | 17 +-
drivers/nvme/target/io-cmd-file.c | 2 +-
drivers/nvme/target/loop.c | 20 +-
drivers/nvme/target/nvmet.h | 76 +-
drivers/nvme/target/passthru.c | 55 +
drivers/nvme/target/rdma.c | 2 +-
drivers/nvme/target/tcp.c | 26 +-
drivers/nvme/target/zns.c | 24 +-
drivers/nvmem/Kconfig | 7 +
drivers/nvmem/Makefile | 2 +
drivers/nvmem/bcm-ocotp.c | 14 +-
drivers/nvmem/microchip-otpc.c | 288 +
drivers/nvmem/mtk-efuse.c | 3 +-
drivers/of/address.c | 17 +-
drivers/of/base.c | 4 +-
drivers/of/device.c | 5 +-
drivers/of/fdt.c | 25 +-
drivers/of/kexec.c | 30 +-
drivers/of/of_reserved_mem.c | 3 +-
drivers/of/overlay.c | 20 +-
drivers/of/unittest.c | 17 +-
drivers/opp/core.c | 1577 +-
drivers/opp/cpu.c | 12 +-
drivers/opp/debugfs.c | 27 +-
drivers/opp/of.c | 165 +-
drivers/opp/opp.h | 56 +-
drivers/opp/ti-opp-supply.c | 77 +-
drivers/parisc/iosapic.c | 2 +-
drivers/parisc/lba_pci.c | 6 +-
drivers/pci/Kconfig | 8 +
drivers/pci/Makefile | 1 +
drivers/pci/controller/Kconfig | 4 +-
drivers/pci/controller/cadence/pcie-cadence.c | 6 +-
drivers/pci/controller/dwc/pci-dra7xx.c | 22 +-
drivers/pci/controller/dwc/pci-exynos.c | 19 +-
drivers/pci/controller/dwc/pci-imx6.c | 686 +-
drivers/pci/controller/dwc/pci-keystone.c | 34 +-
drivers/pci/controller/dwc/pci-layerscape-ep.c | 12 -
drivers/pci/controller/dwc/pci-layerscape.c | 2 +-
drivers/pci/controller/dwc/pci-meson.c | 2 +-
drivers/pci/controller/dwc/pcie-al.c | 6 +-
drivers/pci/controller/dwc/pcie-armada8k.c | 6 +-
drivers/pci/controller/dwc/pcie-artpec6.c | 4 +-
drivers/pci/controller/dwc/pcie-designware-ep.c | 92 +-
drivers/pci/controller/dwc/pcie-designware-host.c | 404 +-
drivers/pci/controller/dwc/pcie-designware-plat.c | 25 +-
drivers/pci/controller/dwc/pcie-designware.c | 472 +-
drivers/pci/controller/dwc/pcie-designware.h | 178 +-
drivers/pci/controller/dwc/pcie-dw-rockchip.c | 4 +-
drivers/pci/controller/dwc/pcie-fu740.c | 4 +-
drivers/pci/controller/dwc/pcie-histb.c | 10 +-
drivers/pci/controller/dwc/pcie-intel-gw.c | 36 +-
drivers/pci/controller/dwc/pcie-keembay.c | 6 +-
drivers/pci/controller/dwc/pcie-kirin.c | 2 +-
drivers/pci/controller/dwc/pcie-qcom.c | 431 +-
drivers/pci/controller/dwc/pcie-spear13xx.c | 10 +-
drivers/pci/controller/dwc/pcie-tegra194-acpi.c | 7 +-
drivers/pci/controller/dwc/pcie-tegra194.c | 684 +-
drivers/pci/controller/dwc/pcie-uniphier.c | 10 +-
drivers/pci/controller/dwc/pcie-visconti.c | 6 +-
drivers/pci/controller/pci-aardvark.c | 112 +-
drivers/pci/controller/pci-hyperv.c | 12 +-
drivers/pci/controller/pci-loongson.c | 206 +-
drivers/pci/controller/pci-mvebu.c | 4 +-
drivers/pci/controller/pci-rcar-gen2.c | 1 +
drivers/pci/controller/pci-tegra.c | 9 +-
drivers/pci/controller/pci-xgene.c | 2 +-
drivers/pci/controller/pcie-brcmstb.c | 443 +-
drivers/pci/controller/pcie-iproc-msi.c | 4 +-
drivers/pci/controller/pcie-mediatek-gen3.c | 62 +-
drivers/pci/controller/pcie-mediatek.c | 8 +-
drivers/pci/controller/pcie-microchip-host.c | 2 +
drivers/pci/controller/pcie-rcar-host.c | 4 +-
drivers/pci/controller/pcie-rockchip-host.c | 8 +-
drivers/pci/controller/pcie-xilinx-cpm.c | 60 +-
drivers/pci/controller/vmd.c | 13 +-
drivers/pci/doe.c | 536 +
drivers/pci/endpoint/functions/Kconfig | 12 +
drivers/pci/endpoint/functions/Makefile | 1 +
drivers/pci/endpoint/functions/pci-epf-test.c | 117 +-
drivers/pci/endpoint/functions/pci-epf-vntb.c | 1442 +
drivers/pci/mmap.c | 44 -
drivers/pci/p2pdma.c | 93 +-
drivers/pci/pci-acpi.c | 5 +-
drivers/pci/pci.c | 8 +-
drivers/pci/pci.h | 2 -
drivers/pci/pcie/aer.c | 15 +-
drivers/pci/pcie/aspm.c | 20 -
drivers/pci/pcie/err.c | 12 +-
drivers/pci/pcie/portdrv_core.c | 9 +-
drivers/pci/probe.c | 92 +-
drivers/pci/proc.c | 7 +-
drivers/pci/quirks.c | 24 +-
drivers/pci/switch/switchtec.c | 7 +-
drivers/perf/arm-cci.c | 11 +-
drivers/perf/arm-ccn.c | 6 +-
drivers/perf/arm_spe_pmu.c | 22 +-
drivers/perf/fsl_imx8_ddr_perf.c | 6 +-
drivers/perf/hisilicon/Kconfig | 10 +
drivers/perf/hisilicon/Makefile | 1 +
drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c | 16 +-
drivers/perf/hisilicon/hisi_uncore_hha_pmu.c | 16 +-
drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c | 16 +-
drivers/perf/hisilicon/hisi_uncore_pa_pmu.c | 16 +-
drivers/perf/hisilicon/hisi_uncore_pmu.c | 18 +
drivers/perf/hisilicon/hisi_uncore_pmu.h | 2 +
drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c | 15 +-
drivers/perf/hisilicon/hns3_pmu.c | 1671 +
drivers/perf/marvell_cn10k_tad_pmu.c | 12 +-
drivers/perf/riscv_pmu.c | 5 +-
drivers/perf/riscv_pmu_sbi.c | 132 +-
drivers/phy/amlogic/Kconfig | 12 +
drivers/phy/amlogic/Makefile | 1 +
drivers/phy/amlogic/phy-meson-axg-mipi-dphy.c | 2 +-
.../phy/amlogic/phy-meson-g12a-mipi-dphy-analog.c | 171 +
drivers/phy/broadcom/Kconfig | 2 +-
drivers/phy/broadcom/phy-bcm-cygnus-pcie.c | 14 +-
drivers/phy/broadcom/phy-bcm-ns2-pcie.c | 14 +-
drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c | 14 +-
drivers/phy/broadcom/phy-brcm-usb-init.c | 2 +-
drivers/phy/cadence/cdns-dphy.c | 101 +-
drivers/phy/cadence/phy-cadence-sierra.c | 1 -
drivers/phy/cadence/phy-cadence-torrent.c | 1 -
drivers/phy/freescale/Kconfig | 9 +
drivers/phy/freescale/Makefile | 1 +
drivers/phy/freescale/phy-fsl-imx8qm-lvds-phy.c | 450 +
drivers/phy/mediatek/Kconfig | 19 +
drivers/phy/mediatek/Makefile | 2 +
drivers/phy/mediatek/phy-mtk-dp.c | 202 +
drivers/phy/mediatek/phy-mtk-pcie.c | 267 +
drivers/phy/motorola/phy-cpcap-usb.c | 10 +-
drivers/phy/qualcomm/Makefile | 8 +-
drivers/phy/qualcomm/phy-qcom-edp.c | 12 +
drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 2621 +
drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c | 1054 +
drivers/phy/qualcomm/phy-qcom-qmp-pcie-qhp.h | 123 +
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 2556 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-misc-v3.h | 17 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v4.h | 72 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v4_20.h | 17 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v5.h | 16 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v5_20.h | 17 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-ufs-v3.h | 18 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-ufs-v4.h | 31 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-ufs-v5.h | 27 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-usb-v4.h | 34 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-usb-v5.h | 36 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v2.h | 46 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v3.h | 145 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v4.h | 135 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v4_20.h | 15 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v5.h | 17 +
drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com-v3.h | 111 +
drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com-v4.h | 123 +
drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com-v5.h | 124 +
drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com.h | 140 +
drivers/phy/qualcomm/phy-qcom-qmp-qserdes-pll.h | 66 +
.../phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v3.h | 68 +
.../phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v4.h | 233 +
.../phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v4_20.h | 43 +
.../phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v5.h | 231 +
.../phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v5_20.h | 60 +
drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx.h | 205 +
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 1383 +
drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 2765 +
drivers/phy/qualcomm/phy-qcom-qmp.c | 6350 -
drivers/phy/qualcomm/phy-qcom-qmp.h | 1242 +-
drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 12 +-
drivers/phy/samsung/Makefile | 1 +
drivers/phy/samsung/phy-exynos-pcie.c | 25 +-
drivers/phy/samsung/phy-exynos7-ufs.c | 12 +-
drivers/phy/samsung/phy-exynosautov9-ufs.c | 29 +-
drivers/phy/samsung/phy-fsd-ufs.c | 63 +
drivers/phy/samsung/phy-samsung-ufs.c | 138 +-
drivers/phy/samsung/phy-samsung-ufs.h | 34 +-
drivers/phy/st/phy-stm32-usbphyc.c | 4 +-
drivers/phy/tegra/phy-tegra194-p2u.c | 48 +-
drivers/phy/ti/phy-dm816x-usb.c | 11 +-
drivers/phy/ti/phy-j721e-wiz.c | 75 +-
drivers/phy/ti/phy-tusb1210.c | 5 +-
drivers/pinctrl/Kconfig | 4 +-
drivers/pinctrl/aspeed/pinctrl-aspeed.c | 4 +-
drivers/pinctrl/aspeed/pinmux-aspeed.h | 2 +-
drivers/pinctrl/bcm/pinctrl-bcm281xx.c | 14 +-
drivers/pinctrl/bcm/pinctrl-bcm2835.c | 21 +-
drivers/pinctrl/bcm/pinctrl-cygnus-mux.c | 14 +-
drivers/pinctrl/bcm/pinctrl-ns2-mux.c | 10 +-
drivers/pinctrl/bcm/pinctrl-nsp-gpio.c | 14 +-
drivers/pinctrl/bcm/pinctrl-nsp-mux.c | 10 +-
drivers/pinctrl/core.c | 2 +-
drivers/pinctrl/devicetree.c | 2 +-
drivers/pinctrl/freescale/pinctrl-imx93.c | 2 +
drivers/pinctrl/intel/Kconfig | 8 +
drivers/pinctrl/intel/Makefile | 1 +
drivers/pinctrl/intel/pinctrl-baytrail.c | 18 +-
drivers/pinctrl/intel/pinctrl-cherryview.c | 16 +-
drivers/pinctrl/intel/pinctrl-intel.c | 28 +-
drivers/pinctrl/intel/pinctrl-intel.h | 25 +-
drivers/pinctrl/intel/pinctrl-lynxpoint.c | 10 +-
drivers/pinctrl/intel/pinctrl-merrifield.c | 14 +-
drivers/pinctrl/intel/pinctrl-meteorlake.c | 417 +
drivers/pinctrl/mediatek/pinctrl-mt8192.c | 296 +-
drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 65 +-
drivers/pinctrl/mvebu/pinctrl-mvebu.c | 10 +
drivers/pinctrl/nomadik/pinctrl-nomadik.c | 4 +-
drivers/pinctrl/pinctrl-amd.c | 242 +-
drivers/pinctrl/pinctrl-amd.h | 1376 +-
drivers/pinctrl/pinctrl-as3722.c | 15 +-
drivers/pinctrl/pinctrl-at91-pio4.c | 7 +-
drivers/pinctrl/pinctrl-at91.c | 10 +-
drivers/pinctrl/pinctrl-axp209.c | 14 +-
drivers/pinctrl/pinctrl-ingenic.c | 64 +-
drivers/pinctrl/pinctrl-ocelot.c | 228 +-
drivers/pinctrl/pinctrl-palmas.c | 15 +-
drivers/pinctrl/pinctrl-starfive.c | 5 +
drivers/pinctrl/pinctrl-utils.c | 15 +-
drivers/pinctrl/pinctrl-utils.h | 15 +-
drivers/pinctrl/pinctrl-zynqmp.c | 11 +
drivers/pinctrl/qcom/Kconfig | 19 +-
drivers/pinctrl/qcom/Makefile | 2 +
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 2 +-
drivers/pinctrl/qcom/pinctrl-lpass-lpi.h | 1 -
drivers/pinctrl/qcom/pinctrl-msm8909.c | 956 +
drivers/pinctrl/qcom/pinctrl-msm8916.c | 4 +-
drivers/pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c | 1 -
drivers/pinctrl/qcom/pinctrl-sm6375.c | 1544 +
drivers/pinctrl/qcom/pinctrl-sm8250.c | 2 +-
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 18 +-
drivers/pinctrl/ralink/pinctrl-ralink.c | 2 +
drivers/pinctrl/renesas/Kconfig | 18 +
drivers/pinctrl/renesas/Makefile | 2 +
drivers/pinctrl/renesas/core.c | 6 +
drivers/pinctrl/renesas/pfc-r8a779f0.c | 2 -
drivers/pinctrl/renesas/pfc-r8a779g0.c | 4262 +
drivers/pinctrl/renesas/pinctrl-rzg2l.c | 235 +
drivers/pinctrl/renesas/pinctrl-rzv2m.c | 1119 +
drivers/pinctrl/renesas/sh_pfc.h | 9 +-
drivers/pinctrl/samsung/pinctrl-exynos.c | 6 +-
drivers/pinctrl/samsung/pinctrl-exynos.h | 3 +
drivers/pinctrl/samsung/pinctrl-samsung.c | 4 +-
drivers/pinctrl/samsung/pinctrl-samsung.h | 8 +
drivers/pinctrl/stm32/pinctrl-stm32.c | 20 +-
drivers/pinctrl/sunplus/sppctl.c | 3 +
drivers/pinctrl/sunxi/Kconfig | 8 +-
drivers/pinctrl/sunxi/Makefile | 1 +
drivers/pinctrl/sunxi/pinctrl-sun20i-d1.c | 840 +
drivers/pinctrl/sunxi/pinctrl-sun50i-a100-r.c | 1 +
drivers/pinctrl/sunxi/pinctrl-sun50i-a100.c | 2 +-
drivers/pinctrl/sunxi/pinctrl-sun50i-a64-r.c | 1 -
drivers/pinctrl/sunxi/pinctrl-sun50i-h6-r.c | 2 +-
drivers/pinctrl/sunxi/pinctrl-sun50i-h616-r.c | 1 -
drivers/pinctrl/sunxi/pinctrl-sun50i-h616.c | 2 +-
drivers/pinctrl/sunxi/pinctrl-sun6i-a31-r.c | 22 +-
drivers/pinctrl/sunxi/pinctrl-sun8i-a23-r.c | 25 +-
drivers/pinctrl/sunxi/pinctrl-sun8i-a83t-r.c | 1 -
drivers/pinctrl/sunxi/pinctrl-sun8i-a83t.c | 10 +-
drivers/pinctrl/sunxi/pinctrl-sun9i-a80-r.c | 1 -
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 158 +-
drivers/pinctrl/sunxi/pinctrl-sunxi.h | 109 +-
drivers/platform/Kconfig | 5 +-
drivers/platform/chrome/Kconfig | 11 +-
drivers/platform/chrome/Makefile | 5 +
drivers/platform/chrome/cros_ec.c | 11 +-
drivers/platform/chrome/cros_ec_proto.c | 473 +-
drivers/platform/chrome/cros_ec_proto_test.c | 2753 +
drivers/platform/chrome/cros_ec_trace.h | 8 +-
drivers/platform/chrome/cros_ec_typec.c | 93 +-
drivers/platform/chrome/cros_kbd_led_backlight.c | 196 +-
drivers/platform/chrome/cros_kunit_util.c | 130 +
drivers/platform/chrome/cros_kunit_util.h | 48 +
drivers/platform/chrome/cros_usbpd_notify.c | 4 +-
drivers/platform/chrome/wilco_ec/event.c | 2 +-
drivers/platform/mellanox/Kconfig | 2 +-
drivers/platform/mellanox/mlxbf-tmfifo.c | 3 +
drivers/platform/mellanox/mlxreg-io.c | 23 +
drivers/platform/mellanox/mlxreg-lc.c | 82 +-
drivers/platform/mellanox/nvsw-sn2201.c | 6 +-
drivers/platform/mips/Kconfig | 2 +-
drivers/platform/olpc/olpc-ec.c | 2 +-
drivers/platform/surface/Kconfig | 58 +-
drivers/platform/surface/Makefile | 2 +
drivers/platform/surface/aggregator/Kconfig | 2 +-
drivers/platform/surface/aggregator/Makefile | 2 +-
drivers/platform/surface/aggregator/bus.c | 151 +-
drivers/platform/surface/aggregator/bus.h | 2 +-
drivers/platform/surface/aggregator/controller.c | 55 +-
drivers/platform/surface/aggregator/controller.h | 2 +-
drivers/platform/surface/aggregator/core.c | 2 +-
drivers/platform/surface/aggregator/ssh_msgb.h | 2 +-
.../platform/surface/aggregator/ssh_packet_layer.c | 2 +-
.../platform/surface/aggregator/ssh_packet_layer.h | 2 +-
drivers/platform/surface/aggregator/ssh_parser.c | 2 +-
drivers/platform/surface/aggregator/ssh_parser.h | 2 +-
.../surface/aggregator/ssh_request_layer.c | 2 +-
.../surface/aggregator/ssh_request_layer.h | 2 +-
drivers/platform/surface/aggregator/trace.h | 82 +-
drivers/platform/surface/surface_acpi_notify.c | 29 +-
drivers/platform/surface/surface_aggregator_cdev.c | 2 +-
drivers/platform/surface/surface_aggregator_hub.c | 371 +
.../platform/surface/surface_aggregator_registry.c | 362 +-
.../platform/surface/surface_aggregator_tabletsw.c | 533 +
drivers/platform/surface/surface_dtx.c | 2 +-
drivers/platform/surface/surface_gpe.c | 14 +-
drivers/platform/surface/surface_hotplug.c | 2 +-
.../platform/surface/surface_platform_profile.c | 2 +-
drivers/platform/x86/Kconfig | 54 +-
drivers/platform/x86/Makefile | 9 +-
drivers/platform/x86/acer-wmi.c | 7 +-
drivers/platform/x86/amd/Kconfig | 31 +
drivers/platform/x86/amd/Makefile | 10 +
drivers/platform/x86/{amd_hsmp.c => amd/hsmp.c} | 0
drivers/platform/x86/{amd-pmc.c => amd/pmc.c} | 14 +-
drivers/platform/x86/apple-gmux.c | 5 +-
drivers/platform/x86/asus-nb-wmi.c | 2 +
drivers/platform/x86/asus-wmi.c | 25 +
drivers/platform/x86/barco-p50-gpio.c | 5 +-
drivers/platform/x86/compal-laptop.c | 4 +-
drivers/platform/x86/dell/Kconfig | 1 -
drivers/platform/x86/gigabyte-wmi.c | 3 +
drivers/platform/x86/hp-wmi.c | 32 +-
drivers/platform/x86/ideapad-laptop.c | 29 +-
drivers/platform/x86/intel/atomisp2/led.c | 3 +-
drivers/platform/x86/intel/hid.c | 6 +
drivers/platform/x86/intel/ifs/Kconfig | 3 +
drivers/platform/x86/intel/pmc/core.c | 2 +
drivers/platform/x86/intel/pmt/class.c | 23 +-
drivers/platform/x86/intel/pmt/crashlog.c | 2 +-
drivers/platform/x86/intel/pmt/telemetry.c | 18 +-
.../x86/intel/speed_select_if/isst_if_common.c | 39 +-
drivers/platform/x86/intel/vsec.c | 130 +-
drivers/platform/x86/intel/vsec.h | 11 +-
drivers/platform/x86/mlx-platform.c | 491 +-
drivers/platform/x86/p2sb.c | 133 +
drivers/platform/x86/panasonic-laptop.c | 112 +-
drivers/platform/x86/pmc_atom.c | 19 +-
drivers/platform/x86/serial-multi-instantiate.c | 69 +-
drivers/platform/x86/simatic-ipc.c | 43 +-
drivers/platform/x86/sony-laptop.c | 7 +-
drivers/platform/x86/system76_acpi.c | 4 +-
drivers/platform/x86/thinkpad_acpi.c | 272 +-
drivers/platform/x86/x86-android-tablets.c | 17 +-
drivers/pnp/resource.c | 5 +-
drivers/power/reset/Kconfig | 6 +
drivers/power/reset/Makefile | 1 +
drivers/power/reset/arm-versatile-reboot.c | 1 +
drivers/power/reset/at91-reset.c | 184 +-
drivers/power/reset/brcm-kona-reset.c | 14 +-
drivers/power/reset/brcmstb-reboot.c | 14 +-
drivers/power/reset/pwr-mlxbf.c | 97 +
drivers/power/supply/ab8500-chargalg.h | 4 -
drivers/power/supply/ab8500_btemp.c | 1 -
drivers/power/supply/ab8500_chargalg.c | 70 +-
drivers/power/supply/ab8500_charger.c | 48 +-
drivers/power/supply/ab8500_fg.c | 12 +-
drivers/power/supply/bq24257_charger.c | 2 +-
drivers/power/supply/cpcap-battery.c | 10 +-
drivers/power/supply/cros_peripheral_charger.c | 2 +-
drivers/power/supply/goldfish_battery.c | 4 +-
drivers/power/supply/lp8788-charger.c | 2 +-
drivers/power/supply/max77976_charger.c | 4 +-
drivers/power/supply/olpc_battery.c | 5 +-
drivers/power/supply/pm2301_charger.h | 492 -
drivers/power/supply/power_supply_core.c | 28 +-
drivers/power/supply/surface_battery.c | 4 +-
drivers/power/supply/surface_charger.c | 4 +-
drivers/powercap/dtpm_cpu.c | 38 +-
drivers/powercap/intel_rapl_common.c | 1 +
drivers/powercap/intel_rapl_msr.c | 2 +
drivers/ptp/Kconfig | 1 +
drivers/ptp/ptp_dte.c | 14 +-
drivers/ptp/ptp_ocp.c | 23 +-
drivers/pwm/Kconfig | 10 +
drivers/pwm/Makefile | 1 +
drivers/pwm/core.c | 82 +-
drivers/pwm/pwm-atmel-tcb.c | 2 +-
drivers/pwm/pwm-bcm-iproc.c | 14 +-
drivers/pwm/pwm-bcm-kona.c | 14 +-
drivers/pwm/pwm-clk.c | 148 +
drivers/pwm/pwm-lpc18xx-sct.c | 67 +-
drivers/pwm/pwm-mediatek.c | 7 +
drivers/pwm/pwm-sifive.c | 117 +-
drivers/pwm/pwm-twl-led.c | 16 +
drivers/regulator/Kconfig | 28 +
drivers/regulator/Makefile | 3 +
drivers/regulator/core.c | 25 +-
drivers/regulator/cpcap-regulator.c | 10 +-
drivers/regulator/cros-ec-regulator.c | 36 +-
drivers/regulator/devres.c | 28 +
drivers/regulator/isl6271a-regulator.c | 10 +-
drivers/regulator/lp873x-regulator.c | 10 +-
drivers/regulator/max597x-regulator.c | 502 +
drivers/regulator/max8973-regulator.c | 15 +-
drivers/regulator/mp5416.c | 30 +-
drivers/regulator/mt6370-regulator.c | 390 +
drivers/regulator/mt6380-regulator.c | 2 +-
drivers/regulator/of_regulator.c | 6 +-
drivers/regulator/qcom_smd-regulator.c | 37 +-
drivers/regulator/qcom_spmi-regulator.c | 37 +
drivers/regulator/rpi-panel-attiny-regulator.c | 6 +-
drivers/regulator/rt5120-regulator.c | 420 +
drivers/regulator/rt5190a-regulator.c | 3 +
drivers/regulator/scmi-regulator.c | 1 +
drivers/regulator/ti-abb-regulator.c | 14 +-
drivers/regulator/tps51632-regulator.c | 15 +-
drivers/regulator/tps62360-regulator.c | 15 +-
drivers/regulator/tps65023-regulator.c | 10 +-
drivers/regulator/tps6507x-regulator.c | 10 +-
drivers/regulator/tps65086-regulator.c | 10 +-
drivers/regulator/tps65217-regulator.c | 10 +-
drivers/regulator/tps65218-regulator.c | 10 +-
drivers/regulator/tps65912-regulator.c | 10 +-
drivers/remoteproc/imx_rproc.c | 7 +-
drivers/remoteproc/keystone_remoteproc.c | 3 +-
drivers/remoteproc/mtk_scp.c | 23 +-
drivers/remoteproc/omap_remoteproc.c | 6 +-
drivers/remoteproc/pru_rproc.c | 1 +
drivers/remoteproc/qcom_common.c | 4 +-
drivers/remoteproc/qcom_q6v5.c | 4 +
drivers/remoteproc/qcom_q6v5_adsp.c | 3 +-
drivers/remoteproc/qcom_q6v5_mss.c | 54 +-
drivers/remoteproc/qcom_q6v5_pas.c | 105 +-
drivers/remoteproc/qcom_sysmon.c | 16 +-
drivers/remoteproc/qcom_wcnss.c | 10 +-
drivers/remoteproc/remoteproc_core.c | 28 +-
drivers/remoteproc/remoteproc_virtio.c | 13 +-
drivers/remoteproc/ti_k3_r5_remoteproc.c | 2 +
drivers/reset/Kconfig | 22 +-
drivers/reset/Makefile | 2 +
drivers/reset/reset-npcm.c | 207 +-
drivers/reset/reset-sunplus.c | 212 +
drivers/reset/reset-ti-sci.c | 10 +-
drivers/reset/reset-ti-syscon.c | 10 +-
drivers/reset/reset-tps380x.c | 126 +
drivers/rpmsg/mtk_rpmsg.c | 2 +
drivers/rpmsg/qcom_glink_native.c | 10 +-
drivers/rpmsg/qcom_glink_ssr.c | 2 +-
drivers/rpmsg/qcom_smd.c | 9 +-
drivers/rpmsg/rpmsg_char.c | 7 +-
drivers/rpmsg/rpmsg_core.c | 3 +-
drivers/rpmsg/rpmsg_internal.h | 4 +-
drivers/rtc/Kconfig | 41 +-
drivers/rtc/Makefile | 4 +-
drivers/rtc/class.c | 6 +-
drivers/rtc/dev.c | 8 +-
drivers/rtc/rtc-ab-b5ze-s3.c | 5 +-
drivers/rtc/rtc-ab-eoz9.c | 5 +-
drivers/rtc/rtc-bq32k.c | 5 +-
drivers/rtc/rtc-cmos.c | 3 -
drivers/rtc/rtc-core.h | 5 -
drivers/rtc/rtc-cros-ec.c | 4 +-
drivers/rtc/rtc-ds1374.c | 5 +-
drivers/rtc/rtc-ds1672.c | 5 +-
drivers/rtc/rtc-ds3232.c | 5 +-
drivers/rtc/rtc-em3027.c | 5 +-
drivers/rtc/rtc-fm3130.c | 5 +-
drivers/rtc/rtc-hym8563.c | 5 +-
drivers/rtc/rtc-isl12022.c | 5 +-
drivers/rtc/rtc-isl1208.c | 10 +-
drivers/rtc/rtc-max6900.c | 5 +-
drivers/rtc/rtc-mc146818-lib.c | 8 +-
drivers/rtc/rtc-mpfs.c | 323 +
drivers/rtc/rtc-nct3018y.c | 553 +
drivers/rtc/rtc-pcf8523.c | 5 +-
drivers/rtc/rtc-pcf85363.c | 5 +-
drivers/rtc/rtc-pcf8563.c | 5 +-
drivers/rtc/rtc-pcf8583.c | 5 +-
drivers/rtc/rtc-rv3029c2.c | 5 +-
drivers/rtc/rtc-rv8803.c | 98 +-
drivers/rtc/rtc-rx6110.c | 5 +-
drivers/rtc/rtc-rx8025.c | 22 +-
drivers/rtc/rtc-rx8581.c | 5 +-
drivers/rtc/rtc-s35390a.c | 5 +-
drivers/rtc/rtc-sd3078.c | 5 +-
drivers/rtc/rtc-spear.c | 2 +-
drivers/rtc/rtc-sun6i.c | 2 +
drivers/rtc/rtc-ti-k3.c | 680 +
drivers/rtc/rtc-vr41xx.c | 363 -
drivers/rtc/rtc-x1205.c | 5 +-
drivers/rtc/rtc-zynqmp.c | 115 +-
drivers/s390/block/dasd.c | 6 +-
drivers/s390/block/dasd_diag.c | 1 +
drivers/s390/block/dasd_eckd.c | 1 +
drivers/s390/block/dasd_genhd.c | 4 +-
drivers/s390/block/dasd_int.h | 2 +-
drivers/s390/block/dcssblk.c | 10 +-
drivers/s390/block/scm_blk.c | 4 +-
drivers/s390/char/Kconfig | 2 +-
drivers/s390/char/sclp.c | 2 +-
drivers/s390/char/sclp_early.c | 4 +
drivers/s390/char/tape_34xx.c | 2 +-
drivers/s390/char/uvdevice.c | 5 +-
drivers/s390/char/zcore.c | 55 +-
drivers/s390/cio/airq.c | 12 +-
drivers/s390/cio/qdio_thinint.c | 6 +-
drivers/s390/cio/vfio_ccw_async.c | 1 -
drivers/s390/cio/vfio_ccw_cp.c | 205 +-
drivers/s390/cio/vfio_ccw_cp.h | 12 +-
drivers/s390/cio/vfio_ccw_drv.c | 58 +-
drivers/s390/cio/vfio_ccw_fsm.c | 99 +-
drivers/s390/cio/vfio_ccw_ops.c | 114 +-
drivers/s390/cio/vfio_ccw_private.h | 13 +-
drivers/s390/crypto/ap_bus.c | 42 +-
drivers/s390/crypto/ap_queue.c | 2 +-
drivers/s390/crypto/pkey_api.c | 2 +-
drivers/s390/crypto/vfio_ap_drv.c | 124 +-
drivers/s390/crypto/vfio_ap_ops.c | 1544 +-
drivers/s390/crypto/vfio_ap_private.h | 54 +-
drivers/s390/net/ism_drv.c | 15 +-
drivers/s390/net/qeth_core_main.c | 170 +-
drivers/s390/net/qeth_ethtool.c | 12 +-
drivers/s390/scsi/zfcp_diag.h | 2 +-
drivers/s390/scsi/zfcp_fc.c | 29 +-
drivers/s390/scsi/zfcp_fc.h | 6 +-
drivers/s390/scsi/zfcp_fsf.c | 4 +-
drivers/s390/scsi/zfcp_sysfs.c | 2 +-
drivers/s390/virtio/virtio_ccw.c | 19 +-
drivers/scsi/BusLogic.c | 35 +-
drivers/scsi/FlashPoint.c | 4 +-
drivers/scsi/Kconfig | 13 +-
drivers/scsi/Makefile | 1 -
drivers/scsi/a2091.c | 63 +-
drivers/scsi/a3000.c | 53 +-
drivers/scsi/aacraid/aachba.c | 2 +-
drivers/scsi/aacraid/comminit.c | 2 +-
drivers/scsi/aacraid/linit.c | 2 +-
drivers/scsi/aic94xx/aic94xx_dev.c | 2 +-
drivers/scsi/be2iscsi/be_main.c | 21 +-
drivers/scsi/bnx2i/bnx2i_iscsi.c | 2 +-
drivers/scsi/ch.c | 2 +-
drivers/scsi/cxgbi/libcxgbi.c | 4 +-
drivers/scsi/cxlflash/ocxl_hw.c | 1 +
drivers/scsi/device_handler/scsi_dh_alua.c | 4 +-
drivers/scsi/device_handler/scsi_dh_emc.c | 2 +-
drivers/scsi/device_handler/scsi_dh_hp_sw.c | 4 +-
drivers/scsi/device_handler/scsi_dh_rdac.c | 2 +-
drivers/scsi/dpt/dpti_i2o.h | 441 -
drivers/scsi/dpt/dpti_ioctl.h | 136 -
drivers/scsi/dpt/dptsig.h | 336 -
drivers/scsi/dpt/osd_defs.h | 79 -
drivers/scsi/dpt/osd_util.h | 358 -
drivers/scsi/dpt/sys_info.h | 417 -
drivers/scsi/dpt_i2o.c | 3545 -
drivers/scsi/dpti.h | 331 -
drivers/scsi/fcoe/fcoe.c | 1 -
drivers/scsi/fnic/cq_desc.h | 14 +-
drivers/scsi/fnic/cq_enet_desc.h | 14 +-
drivers/scsi/fnic/cq_exch_desc.h | 14 +-
drivers/scsi/fnic/fcpio.h | 14 +-
drivers/scsi/fnic/fnic.h | 14 +-
drivers/scsi/fnic/fnic_attrs.c | 14 +-
drivers/scsi/fnic/fnic_debugfs.c | 18 +-
drivers/scsi/fnic/fnic_fcs.c | 14 +-
drivers/scsi/fnic/fnic_fip.h | 14 +-
drivers/scsi/fnic/fnic_io.h | 14 +-
drivers/scsi/fnic/fnic_isr.c | 15 +-
drivers/scsi/fnic/fnic_main.c | 60 +-
drivers/scsi/fnic/fnic_res.c | 14 +-
drivers/scsi/fnic/fnic_res.h | 14 +-
drivers/scsi/fnic/fnic_scsi.c | 28 +-
drivers/scsi/fnic/fnic_stats.h | 18 +-
drivers/scsi/fnic/fnic_trace.c | 18 +-
drivers/scsi/fnic/fnic_trace.h | 18 +-
drivers/scsi/fnic/rq_enet_desc.h | 14 +-
drivers/scsi/fnic/vnic_cq.c | 14 +-
drivers/scsi/fnic/vnic_cq.h | 14 +-
drivers/scsi/fnic/vnic_cq_copy.h | 14 +-
drivers/scsi/fnic/vnic_dev.c | 14 +-
drivers/scsi/fnic/vnic_dev.h | 14 +-
drivers/scsi/fnic/vnic_devcmd.h | 14 +-
drivers/scsi/fnic/vnic_intr.c | 14 +-
drivers/scsi/fnic/vnic_intr.h | 14 +-
drivers/scsi/fnic/vnic_nic.h | 14 +-
drivers/scsi/fnic/vnic_resource.h | 14 +-
drivers/scsi/fnic/vnic_rq.c | 15 +-
drivers/scsi/fnic/vnic_rq.h | 14 +-
drivers/scsi/fnic/vnic_scsi.h | 14 +-
drivers/scsi/fnic/vnic_stats.h | 14 +-
drivers/scsi/fnic/vnic_wq.c | 14 +-
drivers/scsi/fnic/vnic_wq.h | 14 +-
drivers/scsi/fnic/vnic_wq_copy.c | 15 +-
drivers/scsi/fnic/vnic_wq_copy.h | 14 +-
drivers/scsi/fnic/wq_enet_desc.h | 14 +-
drivers/scsi/gvp11.c | 95 +-
drivers/scsi/hisi_sas/hisi_sas_main.c | 49 +-
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 2 -
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 6 +-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 23 +-
drivers/scsi/hosts.c | 41 +-
drivers/scsi/ibmvscsi/ibmvfc.c | 82 +-
drivers/scsi/ibmvscsi/ibmvfc.h | 2 +-
drivers/scsi/ipr.c | 4 +-
drivers/scsi/iscsi_tcp.c | 74 +-
drivers/scsi/iscsi_tcp.h | 2 +
drivers/scsi/libiscsi.c | 313 +-
drivers/scsi/libiscsi_tcp.c | 6 +-
drivers/scsi/libsas/sas_expander.c | 67 +-
drivers/scsi/libsas/sas_init.c | 4 +
drivers/scsi/libsas/sas_internal.h | 2 +-
drivers/scsi/lpfc/lpfc.h | 11 +-
drivers/scsi/lpfc/lpfc_attr.c | 27 +-
drivers/scsi/lpfc/lpfc_bsg.c | 324 -
drivers/scsi/lpfc/lpfc_bsg.h | 14 +-
drivers/scsi/lpfc/lpfc_crtn.h | 6 +-
drivers/scsi/lpfc/lpfc_ct.c | 2 +-
drivers/scsi/lpfc/lpfc_debugfs.c | 22 +-
drivers/scsi/lpfc/lpfc_els.c | 53 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 60 +-
drivers/scsi/lpfc/lpfc_hw.h | 10 -
drivers/scsi/lpfc/lpfc_hw4.h | 4 +-
drivers/scsi/lpfc/lpfc_ids.h | 4 +-
drivers/scsi/lpfc/lpfc_init.c | 23 +-
drivers/scsi/lpfc/lpfc_nportdisc.c | 3 +-
drivers/scsi/lpfc/lpfc_nvme.c | 53 +-
drivers/scsi/lpfc/lpfc_nvmet.c | 54 +-
drivers/scsi/lpfc/lpfc_scsi.c | 7 +-
drivers/scsi/lpfc/lpfc_sli.c | 63 +-
drivers/scsi/lpfc/lpfc_sli.h | 1 -
drivers/scsi/lpfc/lpfc_version.h | 2 +-
drivers/scsi/megaraid/megaraid_mbox.c | 2 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 7 +-
drivers/scsi/megaraid/megaraid_sas_fusion.c | 3 +-
drivers/scsi/mesh.c | 7 +-
drivers/scsi/mpi3mr/mpi3mr.h | 73 +-
drivers/scsi/mpi3mr/mpi3mr_fw.c | 67 +
drivers/scsi/mpi3mr/mpi3mr_os.c | 307 +-
drivers/scsi/mpt3sas/mpt3sas_base.c | 31 +-
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 4 +-
drivers/scsi/pm8001/pm8001_hwi.c | 26 +-
drivers/scsi/pm8001/pm8001_init.c | 75 +-
drivers/scsi/pm8001/pm8001_sas.c | 10 +-
drivers/scsi/pm8001/pm8001_sas.h | 3 +
drivers/scsi/pm8001/pm80xx_hwi.c | 52 +-
drivers/scsi/pmcraid.c | 2 +-
drivers/scsi/qedi/qedi_main.c | 11 +-
drivers/scsi/qla2xxx/qla_attr.c | 29 +-
drivers/scsi/qla2xxx/qla_bsg.c | 96 +-
drivers/scsi/qla2xxx/qla_bsg.h | 15 +
drivers/scsi/qla2xxx/qla_dbg.h | 2 +-
drivers/scsi/qla2xxx/qla_def.h | 36 +-
drivers/scsi/qla2xxx/qla_edif.c | 585 +-
drivers/scsi/qla2xxx/qla_edif.h | 7 +-
drivers/scsi/qla2xxx/qla_edif_bsg.h | 106 +-
drivers/scsi/qla2xxx/qla_fw.h | 2 +-
drivers/scsi/qla2xxx/qla_gbl.h | 13 +-
drivers/scsi/qla2xxx/qla_gs.c | 131 +-
drivers/scsi/qla2xxx/qla_init.c | 96 +-
drivers/scsi/qla2xxx/qla_iocb.c | 5 +-
drivers/scsi/qla2xxx/qla_isr.c | 138 +-
drivers/scsi/qla2xxx/qla_mbx.c | 67 +-
drivers/scsi/qla2xxx/qla_mid.c | 6 +-
drivers/scsi/qla2xxx/qla_nvme.c | 5 -
drivers/scsi/qla2xxx/qla_os.c | 103 +-
drivers/scsi/qla2xxx/qla_target.c | 35 +-
drivers/scsi/qla2xxx/qla_version.h | 4 +-
drivers/scsi/scsi.c | 9 +-
drivers/scsi/scsi_debug.c | 22 +-
drivers/scsi/scsi_error.c | 26 +-
drivers/scsi/scsi_ioctl.c | 2 +-
drivers/scsi/scsi_lib.c | 44 +-
drivers/scsi/scsi_priv.h | 4 +-
drivers/scsi/scsi_scan.c | 9 +
drivers/scsi/scsi_sysfs.c | 31 +-
drivers/scsi/scsi_transport_iscsi.c | 105 +-
drivers/scsi/scsi_transport_sas.c | 6 +
drivers/scsi/sd.c | 103 +-
drivers/scsi/sd.h | 5 +
drivers/scsi/sd_zbc.c | 12 +-
drivers/scsi/sg.c | 53 +-
drivers/scsi/smartpqi/Kconfig | 2 +-
drivers/scsi/smartpqi/smartpqi.h | 27 +-
drivers/scsi/smartpqi/smartpqi_init.c | 405 +-
drivers/scsi/smartpqi/smartpqi_sas_transport.c | 2 +-
drivers/scsi/smartpqi/smartpqi_sis.c | 11 +-
drivers/scsi/smartpqi/smartpqi_sis.h | 4 +-
drivers/scsi/snic/cq_desc.h | 18 +-
drivers/scsi/snic/cq_enet_desc.h | 18 +-
drivers/scsi/snic/snic.h | 18 +-
drivers/scsi/snic/snic_attrs.c | 18 +-
drivers/scsi/snic/snic_ctl.c | 18 +-
drivers/scsi/snic/snic_debugfs.c | 18 +-
drivers/scsi/snic/snic_disc.c | 18 +-
drivers/scsi/snic/snic_disc.h | 18 +-
drivers/scsi/snic/snic_fwint.h | 20 +-
drivers/scsi/snic/snic_io.c | 18 +-
drivers/scsi/snic/snic_io.h | 18 +-
drivers/scsi/snic/snic_isr.c | 18 +-
drivers/scsi/snic/snic_main.c | 18 +-
drivers/scsi/snic/snic_res.c | 18 +-
drivers/scsi/snic/snic_res.h | 18 +-
drivers/scsi/snic/snic_scsi.c | 18 +-
drivers/scsi/snic/snic_stats.h | 18 +-
drivers/scsi/snic/snic_trc.c | 18 +-
drivers/scsi/snic/snic_trc.h | 18 +-
drivers/scsi/snic/vnic_cq.c | 18 +-
drivers/scsi/snic/vnic_cq.h | 18 +-
drivers/scsi/snic/vnic_cq_fw.h | 18 +-
drivers/scsi/snic/vnic_dev.c | 18 +-
drivers/scsi/snic/vnic_dev.h | 18 +-
drivers/scsi/snic/vnic_devcmd.h | 18 +-
drivers/scsi/snic/vnic_intr.c | 18 +-
drivers/scsi/snic/vnic_intr.h | 18 +-
drivers/scsi/snic/vnic_resource.h | 18 +-
drivers/scsi/snic/vnic_snic.h | 18 +-
drivers/scsi/snic/vnic_stats.h | 18 +-
drivers/scsi/snic/vnic_wq.c | 18 +-
drivers/scsi/snic/vnic_wq.h | 18 +-
drivers/scsi/snic/wq_enet_desc.h | 18 +-
drivers/scsi/sr.c | 4 +-
drivers/scsi/storvsc_drv.c | 27 +-
drivers/scsi/sym53c8xx_2/sym_hipd.c | 2 +-
drivers/scsi/vmw_pvscsi.h | 4 +-
drivers/sh/intc/chip.c | 2 +-
drivers/slimbus/core.c | 6 +-
drivers/slimbus/messaging.c | 4 +-
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
drivers/soc/amlogic/meson-mx-socinfo.c | 1 +
drivers/soc/amlogic/meson-secure-pwrc.c | 4 +-
drivers/soc/atmel/soc.c | 12 +-
drivers/soc/bcm/bcm2835-power.c | 72 +-
drivers/soc/bcm/brcmstb/biuctrl.c | 9 +-
drivers/soc/bcm/brcmstb/pm/pm-arm.c | 3 +-
drivers/soc/fsl/guts.c | 221 +-
drivers/soc/fujitsu/Kconfig | 16 +
drivers/soc/fujitsu/Makefile | 3 +
drivers/soc/fujitsu/a64fx-diag.c | 154 +
drivers/soc/imx/gpcv2.c | 8 +-
drivers/soc/imx/imx8m-blk-ctrl.c | 11 +-
drivers/soc/ixp4xx/ixp4xx-npe.c | 2 +-
drivers/soc/mediatek/Kconfig | 10 +
drivers/soc/mediatek/Makefile | 1 +
drivers/soc/mediatek/mt6795-pm-domains.h | 112 +
drivers/soc/mediatek/mt8183-pm-domains.h | 1 +
drivers/soc/mediatek/mt8186-pm-domains.h | 2 +-
drivers/soc/mediatek/mt8192-pm-domains.h | 2 +
drivers/soc/mediatek/mt8195-pm-domains.h | 4 +-
drivers/soc/mediatek/mt8365-mmsys.h | 22 +
drivers/soc/mediatek/mtk-devapc.c | 45 +-
drivers/soc/mediatek/mtk-mutex.c | 155 +-
drivers/soc/mediatek/mtk-pm-domains.c | 8 +
drivers/soc/mediatek/mtk-pm-domains.h | 2 +
drivers/soc/mediatek/mtk-pmic-wrap.c | 225 +-
drivers/soc/mediatek/mtk-svs.c | 2403 +
drivers/soc/qcom/Kconfig | 18 +
drivers/soc/qcom/Makefile | 1 +
drivers/soc/qcom/apr.c | 15 +-
drivers/soc/qcom/cmd-db.c | 8 +-
drivers/soc/qcom/icc-bwmon.c | 419 +
drivers/soc/qcom/llcc-qcom.c | 2 +-
drivers/soc/qcom/mdt_loader.c | 4 +-
drivers/soc/qcom/ocmem.c | 3 +
drivers/soc/qcom/qcom-geni-se.c | 3 +
drivers/soc/qcom/qcom_aoss.c | 4 +-
drivers/soc/qcom/rpmhpd.c | 4 +-
drivers/soc/qcom/rpmpd.c | 1 +
drivers/soc/qcom/smd-rpm.c | 1 +
drivers/soc/qcom/smem.c | 6 +-
drivers/soc/qcom/smp2p.c | 3 +
drivers/soc/qcom/socinfo.c | 4 +-
drivers/soc/qcom/spm.c | 14 +
drivers/soc/renesas/r8a779a0-sysc.c | 10 +-
drivers/soc/renesas/rcar-gen4-sysc.h | 4 +-
drivers/soc/renesas/rcar-sysc.h | 4 +-
drivers/soc/sunxi/Kconfig | 1 +
drivers/soc/tegra/common.c | 49 +-
drivers/soc/tegra/pmc.c | 4 +-
drivers/soc/ti/knav_dma.c | 10 +-
drivers/soc/ti/pruss.c | 1 +
drivers/soc/ti/wkup_m3_ipc.c | 2 +-
drivers/soc/xilinx/xlnx_event_manager.c | 5 +-
drivers/soundwire/bus.c | 75 +-
drivers/soundwire/bus_type.c | 38 +-
drivers/soundwire/intel.c | 32 +-
drivers/soundwire/qcom.c | 32 +-
drivers/soundwire/slave.c | 120 +-
drivers/soundwire/stream.c | 53 +-
drivers/spi/Kconfig | 18 +-
drivers/spi/Makefile | 2 +
drivers/spi/atmel-quadspi.c | 104 +-
drivers/spi/spi-altera-dfl.c | 14 +-
drivers/spi/spi-amd.c | 53 +-
drivers/spi/spi-armada-3700.c | 4 +-
drivers/spi/spi-aspeed-smc.c | 12 +-
drivers/spi/spi-atmel.c | 15 +-
drivers/spi/spi-bcm2835.c | 20 +-
drivers/spi/spi-cadence-quadspi.c | 19 +-
drivers/spi/spi-cadence.c | 37 +-
drivers/spi/spi-dw-core.c | 10 +-
drivers/spi/spi-dw-dma.c | 25 +-
drivers/spi/spi-dw-mmio.c | 8 +-
drivers/spi/spi-dw.h | 13 +-
drivers/spi/spi-fsi.c | 19 +-
drivers/spi/spi-gxp.c | 325 +
drivers/spi/spi-intel-pci.c | 1 +
drivers/spi/spi-intel.c | 4 +-
drivers/spi/spi-mem.c | 2 +-
drivers/spi/spi-microchip-core.c | 617 +
drivers/spi/spi-mpc52xx-psc.c | 116 +-
drivers/spi/spi-mpc52xx.c | 2 +-
drivers/spi/spi-npcm-fiu.c | 28 +-
drivers/spi/spi-pxa2xx.c | 4 +
drivers/spi/spi-rockchip.c | 11 +-
drivers/spi/spi-rspi.c | 4 +
drivers/spi/spi-s3c64xx.c | 123 +-
drivers/spi/spi-sh.c | 94 +-
drivers/spi/spi-sifive.c | 39 +
drivers/spi/spi-stm32-qspi.c | 18 +-
drivers/spi/spi-synquacer.c | 1 +
drivers/spi/spi-tegra20-slink.c | 3 +-
drivers/spi/spi-tegra210-quad.c | 33 +-
drivers/spi/spi-ti-qspi.c | 75 +-
drivers/spi/spi-topcliff-pch.c | 30 +-
drivers/spi/spi-zynqmp-gqspi.c | 25 +-
drivers/spi/spi.c | 575 +-
drivers/spmi/spmi.c | 17 +
drivers/staging/Kconfig | 2 -
drivers/staging/Makefile | 1 -
drivers/staging/fbtft/fb_ssd1351.c | 3 +-
drivers/staging/fbtft/fbtft-core.c | 5 +-
drivers/staging/gdm724x/gdm_tty.c | 6 -
drivers/staging/greybus/audio_helper.c | 14 +-
drivers/staging/greybus/fw-management.c | 6 +-
drivers/staging/greybus/loopback.c | 2 +-
drivers/staging/media/Kconfig | 12 +-
drivers/staging/media/Makefile | 1 +
drivers/staging/media/atomisp/Makefile | 3 -
.../staging/media/atomisp/i2c/atomisp-mt9m114.c | 4 +-
drivers/staging/media/atomisp/i2c/atomisp-ov2722.c | 20 +-
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h | 2 +-
drivers/staging/media/atomisp/include/hmm/hmm.h | 32 +-
drivers/staging/media/atomisp/include/hmm/hmm_bo.h | 37 +-
.../staging/media/atomisp/include/hmm/hmm_common.h | 26 -
.../staging/media/atomisp/include/hmm/hmm_pool.h | 116 -
.../staging/media/atomisp/include/linux/atomisp.h | 146 -
drivers/staging/media/atomisp/notes.txt | 30 +
drivers/staging/media/atomisp/pci/atomisp_acc.c | 625 -
drivers/staging/media/atomisp/pci/atomisp_acc.h | 120 -
drivers/staging/media/atomisp/pci/atomisp_cmd.c | 92 +-
drivers/staging/media/atomisp/pci/atomisp_compat.h | 29 +-
.../media/atomisp/pci/atomisp_compat_css20.c | 365 +-
.../media/atomisp/pci/atomisp_compat_ioctl32.h | 58 -
drivers/staging/media/atomisp/pci/atomisp_drvfs.c | 7 +-
drivers/staging/media/atomisp/pci/atomisp_fops.c | 13 -
.../media/atomisp/pci/atomisp_gmin_platform.c | 27 +-
drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 73 +-
drivers/staging/media/atomisp/pci/atomisp_ioctl.h | 1 -
drivers/staging/media/atomisp/pci/atomisp_subdev.c | 3 -
drivers/staging/media/atomisp/pci/atomisp_subdev.h | 10 -
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 32 -
.../pci/hive_isp_css_include/host/debug_public.h | 2 +-
drivers/staging/media/atomisp/pci/hmm/hmm.c | 202 +-
drivers/staging/media/atomisp/pci/hmm/hmm_bo.c | 261 +-
.../media/atomisp/pci/hmm/hmm_dynamic_pool.c | 234 -
.../media/atomisp/pci/hmm/hmm_reserved_pool.c | 253 -
.../media/atomisp/pci/ia_css_frame_public.h | 40 -
.../isp/kernels/sdis/sdis_1.0/ia_css_sdis.host.c | 2 +-
.../isp/kernels/sdis/sdis_2/ia_css_sdis2.host.c | 2 +-
.../atomisp/pci/isp/modes/interface/isp_const.h | 6 -
.../atomisp/pci/runtime/debug/src/ia_css_debug.c | 2 -
.../pci/runtime/frame/interface/ia_css_frame.h | 7 +-
.../media/atomisp/pci/runtime/frame/src/frame.c | 110 +-
.../atomisp/pci/runtime/isp_param/src/isp_param.c | 2 +-
.../media/atomisp/pci/runtime/rmgr/src/rmgr_vbuf.c | 23 +-
.../media/atomisp/pci/runtime/spctrl/src/spctrl.c | 2 +-
drivers/staging/media/atomisp/pci/sh_css.c | 8 +-
.../staging/media/atomisp/pci/sh_css_firmware.c | 2 +-
drivers/staging/media/atomisp/pci/sh_css_mipi.c | 3 +-
drivers/staging/media/atomisp/pci/sh_css_params.c | 47 +-
drivers/staging/media/av7110/av7110.c | 2 +-
drivers/staging/media/hantro/hantro.h | 4 +
drivers/staging/media/hantro/hantro_drv.c | 58 +-
drivers/staging/media/hantro/hantro_g2_hevc_dec.c | 44 +-
drivers/staging/media/hantro/hantro_g2_regs.h | 2 +-
drivers/staging/media/hantro/hantro_g2_vp9_dec.c | 18 +-
drivers/staging/media/hantro/hantro_hevc.c | 33 +-
drivers/staging/media/hantro/hantro_hw.h | 18 +-
drivers/staging/media/hantro/hantro_postproc.c | 38 +-
drivers/staging/media/hantro/hantro_v4l2.c | 52 +-
drivers/staging/media/hantro/hantro_v4l2.h | 3 +
drivers/staging/media/hantro/imx8m_vpu_hw.c | 80 +-
drivers/staging/media/hantro/rockchip_vpu_hw.c | 189 +-
drivers/staging/media/hantro/sama5d4_vdec_hw.c | 40 +-
drivers/staging/media/hantro/sunxi_vpu_hw.c | 51 +-
drivers/staging/media/imx/imx-media-dev-common.c | 2 +-
drivers/staging/media/imx/imx-media-utils.c | 2 +-
drivers/staging/media/imx/imx7-media-csi.c | 1607 +-
drivers/staging/media/omap4iss/iss.c | 6 +-
drivers/staging/media/omap4iss/iss_csi2.c | 2 +-
drivers/staging/media/omap4iss/iss_video.c | 2 +-
drivers/staging/media/rkvdec/rkvdec-h264.c | 41 +-
drivers/staging/media/rkvdec/rkvdec-vp9.c | 12 +-
.../{media/usb => staging/media}/stkwebcam/Kconfig | 8 +-
.../usb => staging/media}/stkwebcam/Makefile | 2 +-
drivers/staging/media/stkwebcam/TODO | 12 +
.../usb => staging/media}/stkwebcam/stk-sensor.c | 0
.../usb => staging/media}/stkwebcam/stk-webcam.c | 0
.../usb => staging/media}/stkwebcam/stk-webcam.h | 0
drivers/staging/media/sunxi/cedrus/cedrus.c | 54 +-
drivers/staging/media/sunxi/cedrus/cedrus.h | 7 +-
drivers/staging/media/sunxi/cedrus/cedrus_dec.c | 37 +-
drivers/staging/media/sunxi/cedrus/cedrus_h264.c | 5 +-
drivers/staging/media/sunxi/cedrus/cedrus_h265.c | 180 +-
drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c | 4 +-
drivers/staging/media/sunxi/cedrus/cedrus_regs.h | 3 +-
drivers/staging/media/sunxi/cedrus/cedrus_video.c | 1 -
drivers/staging/media/sunxi/cedrus/cedrus_vp8.c | 5 +-
drivers/staging/media/tegra-video/vi.c | 4 +-
drivers/staging/media/zoran/videocodec.c | 93 +-
drivers/staging/media/zoran/videocodec.h | 15 +
drivers/staging/media/zoran/zoran.h | 14 +
drivers/staging/media/zoran/zr36016.c | 91 +-
drivers/staging/media/zoran/zr36050.c | 144 +-
drivers/staging/media/zoran/zr36060.c | 97 +-
drivers/staging/octeon-usb/Kconfig | 11 -
drivers/staging/octeon-usb/Makefile | 2 -
drivers/staging/octeon-usb/TODO | 8 -
drivers/staging/octeon/ethernet-rx.c | 4 +-
drivers/staging/olpc_dcon/Kconfig | 2 +-
drivers/staging/olpc_dcon/olpc_dcon.c | 7 +-
drivers/staging/pi433/pi433_if.c | 2 +-
drivers/staging/qlge/qlge_main.c | 42 +-
drivers/staging/r8188eu/Makefile | 1 -
drivers/staging/r8188eu/core/rtw_ap.c | 23 +-
drivers/staging/r8188eu/core/rtw_cmd.c | 15 +-
drivers/staging/r8188eu/core/rtw_efuse.c | 61 +-
drivers/staging/r8188eu/core/rtw_fw.c | 78 +-
drivers/staging/r8188eu/core/rtw_ieee80211.c | 1 +
drivers/staging/r8188eu/core/rtw_ioctl_set.c | 1 -
drivers/staging/r8188eu/core/rtw_iol.c | 8 +-
drivers/staging/r8188eu/core/rtw_led.c | 43 +-
drivers/staging/r8188eu/core/rtw_mlme.c | 6 +-
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 464 +-
drivers/staging/r8188eu/core/rtw_p2p.c | 13 +-
drivers/staging/r8188eu/core/rtw_pwrctrl.c | 25 +-
drivers/staging/r8188eu/core/rtw_recv.c | 80 +-
drivers/staging/r8188eu/core/rtw_wlan_util.c | 145 +-
drivers/staging/r8188eu/core/rtw_xmit.c | 54 +-
drivers/staging/r8188eu/hal/Hal8188EPwrSeq.c | 45 -
drivers/staging/r8188eu/hal/Hal8188ERateAdaptive.c | 33 +-
drivers/staging/r8188eu/hal/HalPhyRf_8188e.c | 21 +-
drivers/staging/r8188eu/hal/HalPwrSeqCmd.c | 118 +-
drivers/staging/r8188eu/hal/hal_com.c | 66 +-
drivers/staging/r8188eu/hal/rtl8188e_cmd.c | 37 +-
drivers/staging/r8188eu/hal/rtl8188e_dm.c | 6 +-
drivers/staging/r8188eu/hal/rtl8188e_hal_init.c | 204 +-
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c | 30 +-
drivers/staging/r8188eu/hal/rtl8188eu_recv.c | 2 +-
drivers/staging/r8188eu/hal/usb_halinit.c | 476 +-
drivers/staging/r8188eu/hal/usb_ops_linux.c | 33 +-
drivers/staging/r8188eu/include/Hal8188EPwrSeq.h | 13 -
.../staging/r8188eu/include/Hal8188ERateAdaptive.h | 13 -
drivers/staging/r8188eu/include/HalPwrSeqCmd.h | 51 +-
drivers/staging/r8188eu/include/basic_types.h | 52 -
drivers/staging/r8188eu/include/hal_com.h | 3 -
drivers/staging/r8188eu/include/hal_intf.h | 20 +-
drivers/staging/r8188eu/include/ieee80211.h | 7 -
drivers/staging/r8188eu/include/osdep_service.h | 3 -
drivers/staging/r8188eu/include/rtl8188e_hal.h | 5 -
drivers/staging/r8188eu/include/rtl8188e_spec.h | 143 -
drivers/staging/r8188eu/include/rtw_eeprom.h | 10 -
drivers/staging/r8188eu/include/rtw_efuse.h | 2 -
drivers/staging/r8188eu/include/rtw_io.h | 8 +-
drivers/staging/r8188eu/include/rtw_iol.h | 24 +-
drivers/staging/r8188eu/include/rtw_led.h | 9 +-
drivers/staging/r8188eu/include/rtw_mlme_ext.h | 19 +-
drivers/staging/r8188eu/include/usb_ops_linux.h | 2 -
drivers/staging/r8188eu/os_dep/ioctl_linux.c | 85 +-
drivers/staging/r8188eu/os_dep/os_intfs.c | 19 +-
drivers/staging/r8188eu/os_dep/osdep_service.c | 8 -
drivers/staging/r8188eu/os_dep/usb_intf.c | 2 +-
drivers/staging/r8188eu/os_dep/usb_ops_linux.c | 2 +-
drivers/staging/r8188eu/os_dep/xmit_linux.c | 2 +-
drivers/staging/rtl8192e/rtllib_tx.c | 24 +-
drivers/staging/rtl8192e/rtllib_wx.c | 37 +-
drivers/staging/rtl8192u/r8192U.h | 2 +-
drivers/staging/rtl8192u/r8192U_dm.c | 40 +-
drivers/staging/rtl8192u/r8192U_dm.h | 2 +-
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 2 +-
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 233 +-
drivers/staging/rtl8723bs/os_dep/ioctl_linux.c | 6 +-
drivers/staging/rts5208/spi.c | 6 +-
drivers/staging/sm750fb/ddk750_dvi.c | 2 +-
drivers/staging/sm750fb/ddk750_power.h | 2 +-
drivers/staging/sm750fb/ddk750_sii164.c | 6 +-
drivers/staging/sm750fb/ddk750_sii164.h | 2 +-
.../vc04_services/bcm2835-audio/bcm2835-vchiq.c | 40 +-
.../include/linux/raspberrypi/vchiq.h | 48 +-
drivers/staging/vc04_services/interface/TESTING | 82 +
.../vc04_services/interface/vchiq_arm/vchiq_arm.c | 96 +-
.../vc04_services/interface/vchiq_arm/vchiq_arm.h | 8 +-
.../vc04_services/interface/vchiq_arm/vchiq_core.c | 106 +-
.../vc04_services/interface/vchiq_arm/vchiq_core.h | 38 +-
.../vc04_services/interface/vchiq_arm/vchiq_dev.c | 40 +-
.../staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 63 +-
drivers/staging/vme_user/Kconfig | 27 +
drivers/staging/vme_user/Makefile | 3 +
drivers/{vme => staging/vme_user}/vme.c | 2 +-
{include/linux => drivers/staging/vme_user}/vme.h | 0
drivers/{vme => staging/vme_user}/vme_bridge.h | 2 +-
.../{vme/bridges => staging/vme_user}/vme_fake.c | 4 +-
.../{vme/bridges => staging/vme_user}/vme_tsi148.c | 4 +-
.../{vme/bridges => staging/vme_user}/vme_tsi148.h | 0
drivers/staging/vme_user/vme_user.c | 2 +-
drivers/staging/vt6655/baseband.c | 10 +-
drivers/staging/vt6655/card.c | 103 +-
drivers/staging/vt6655/channel.c | 2 +-
drivers/staging/vt6655/device_main.c | 96 +-
drivers/staging/vt6655/mac.c | 55 +-
drivers/staging/vt6655/mac.h | 120 +-
drivers/staging/vt6655/power.c | 25 +-
drivers/staging/vt6655/rf.c | 20 +-
drivers/staging/vt6655/rxtx.c | 8 +-
drivers/staging/vt6655/srom.c | 2 +-
drivers/staging/vt6655/upc.h | 35 -
drivers/staging/vt6656/main_usb.c | 6 +-
drivers/staging/vt6656/rxtx.c | 2 +-
drivers/staging/wlan-ng/cfg80211.c | 2 +-
drivers/staging/wlan-ng/hfa384x_usb.c | 2 +-
drivers/target/iscsi/iscsi_target.c | 57 +-
drivers/target/iscsi/iscsi_target_auth.c | 122 +-
drivers/target/iscsi/iscsi_target_configfs.c | 113 +-
drivers/target/iscsi/iscsi_target_login.c | 17 +-
drivers/target/iscsi/iscsi_target_nego.c | 160 +-
drivers/target/iscsi/iscsi_target_nego.h | 3 +-
drivers/target/iscsi/iscsi_target_nodeattrib.c | 1 +
drivers/target/iscsi/iscsi_target_tpg.c | 3 +-
drivers/target/target_core_alua.c | 5 +-
drivers/target/target_core_configfs.c | 27 +-
drivers/target/target_core_device.c | 38 +-
drivers/target/target_core_file.c | 40 +-
drivers/target/target_core_iblock.c | 21 +-
drivers/target/target_core_pr.c | 28 +-
drivers/target/target_core_sbc.c | 105 +-
drivers/target/target_core_stat.c | 10 +-
drivers/target/target_core_xcopy.c | 2 +-
drivers/tee/optee/optee_smc.h | 2 +-
drivers/tee/optee/smc_abi.c | 4 +-
drivers/tee/tee_core.c | 2 +-
drivers/thermal/Kconfig | 4 +-
drivers/thermal/cpufreq_cooling.c | 96 +-
drivers/thermal/db8500_thermal.c | 34 +-
drivers/thermal/devfreq_cooling.c | 46 +-
drivers/thermal/gov_fair_share.c | 6 +-
drivers/thermal/gov_power_allocator.c | 4 +-
drivers/thermal/gov_step_wise.c | 26 +-
drivers/thermal/hisi_thermal.c | 10 +-
drivers/thermal/intel/intel_pch_thermal.c | 8 -
drivers/thermal/intel/intel_tcc_cooling.c | 3 +
drivers/thermal/intel/x86_pkg_temp_thermal.c | 2 +-
drivers/thermal/k3_j72xx_bandgap.c | 13 +-
drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 5 +
drivers/thermal/qcom/qcom-spmi-temp-alarm.c | 5 +
drivers/thermal/qcom/tsens.c | 12 -
drivers/thermal/qcom/tsens.h | 2 -
drivers/thermal/rcar_gen3_thermal.c | 8 +-
drivers/thermal/rzg2l_thermal.c | 18 +-
drivers/thermal/sun8i_thermal.c | 2 +-
drivers/thermal/tegra/soctherm.c | 32 -
drivers/thermal/tegra/tegra30-tsensor.c | 2 +-
drivers/thermal/thermal_core.c | 79 +-
drivers/thermal/thermal_core.h | 15 -
drivers/thermal/thermal_helpers.c | 13 +-
drivers/thermal/thermal_netlink.c | 2 +-
drivers/thermal/thermal_of.c | 201 +-
drivers/thermal/thermal_sysfs.c | 32 +-
drivers/thermal/ti-soc-thermal/ti-bandgap.c | 2 +-
drivers/thunderbolt/Kconfig | 6 +-
drivers/thunderbolt/acpi.c | 29 +-
drivers/thunderbolt/ctl.c | 6 +-
drivers/thunderbolt/ctl.h | 2 +-
drivers/thunderbolt/domain.c | 3 -
drivers/thunderbolt/icm.c | 2 +
drivers/thunderbolt/nhi.c | 4 +
drivers/thunderbolt/nhi.h | 2 +
drivers/thunderbolt/switch.c | 91 +-
drivers/thunderbolt/tb.c | 68 +-
drivers/thunderbolt/tb.h | 56 +-
drivers/thunderbolt/tb_regs.h | 6 +
drivers/thunderbolt/test.c | 12 +-
drivers/thunderbolt/tmu.c | 221 +-
drivers/tty/amiserial.c | 20 +-
drivers/tty/goldfish.c | 2 +-
drivers/tty/mips_ejtag_fdc.c | 4 +-
drivers/tty/n_gsm.c | 759 +-
drivers/tty/n_tty.c | 92 +-
drivers/tty/pty.c | 14 +-
drivers/tty/serial/8250/8250.h | 24 +-
drivers/tty/serial/8250/8250_bcm2835aux.c | 7 +-
drivers/tty/serial/8250/8250_bcm7271.c | 24 +-
drivers/tty/serial/8250/8250_core.c | 12 +-
drivers/tty/serial/8250/8250_dma.c | 6 +-
drivers/tty/serial/8250/8250_dw.c | 94 +-
drivers/tty/serial/8250/8250_dwlib.c | 152 +-
drivers/tty/serial/8250/8250_early.c | 4 +-
drivers/tty/serial/8250/8250_exar.c | 25 +-
drivers/tty/serial/8250/8250_fintek.c | 31 +-
drivers/tty/serial/8250/8250_fsl.c | 4 +-
drivers/tty/serial/8250/8250_ingenic.c | 2 +-
drivers/tty/serial/8250/8250_lpc18xx.c | 28 +-
drivers/tty/serial/8250/8250_lpss.c | 2 +-
drivers/tty/serial/8250/8250_of.c | 1 +
drivers/tty/serial/8250/8250_omap.c | 7 +-
drivers/tty/serial/8250/8250_pci.c | 135 +-
drivers/tty/serial/8250/8250_pericom.c | 2 +-
drivers/tty/serial/8250/8250_port.c | 165 +-
drivers/tty/serial/8250/Kconfig | 1 +
drivers/tty/serial/Kconfig | 22 +-
drivers/tty/serial/Makefile | 1 -
drivers/tty/serial/amba-pl011.c | 38 +-
drivers/tty/serial/ar933x_uart.c | 27 +-
drivers/tty/serial/atmel_serial.c | 103 +-
drivers/tty/serial/earlycon.c | 3 +
drivers/tty/serial/fsl_lpuart.c | 67 +-
drivers/tty/serial/imx.c | 21 +-
drivers/tty/serial/kgdboc.c | 2 +-
drivers/tty/serial/max310x.c | 272 +-
drivers/tty/serial/mcf.c | 10 +-
drivers/tty/serial/meson_uart.c | 2 +-
drivers/tty/serial/mpc52xx_uart.c | 4 +-
drivers/tty/serial/msm_serial.c | 550 +-
drivers/tty/serial/mux.c | 6 -
drivers/tty/serial/mvebu-uart.c | 36 +-
drivers/tty/serial/omap-serial.c | 18 +-
drivers/tty/serial/owl-uart.c | 2 +-
drivers/tty/serial/pch_uart.c | 7 +-
drivers/tty/serial/pic32_uart.c | 4 +-
drivers/tty/serial/pmac_zilog.c | 1 -
drivers/tty/serial/pxa.c | 5 +-
drivers/tty/serial/qcom_geni_serial.c | 92 +-
drivers/tty/serial/rda-uart.c | 2 +-
drivers/tty/serial/samsung_tty.c | 95 +-
drivers/tty/serial/sc16is7xx.c | 10 +-
drivers/tty/serial/serial-tegra.c | 5 +-
drivers/tty/serial/serial_core.c | 466 +-
drivers/tty/serial/serial_mctrl_gpio.c | 48 +
drivers/tty/serial/sifive.c | 10 -
drivers/tty/serial/st-asc.c | 1 -
drivers/tty/serial/stm32-usart.c | 81 +-
drivers/tty/serial/stm32-usart.h | 68 -
drivers/tty/serial/sunsu.c | 4 +-
drivers/tty/serial/ucc_uart.c | 2 +
drivers/tty/serial/vr41xx_siu.c | 934 -
drivers/tty/sysrq.c | 2 -
drivers/tty/tty.h | 3 +
drivers/tty/tty_buffer.c | 105 +-
drivers/tty/tty_io.c | 2 +-
drivers/tty/tty_ioctl.c | 4 +
drivers/tty/tty_port.c | 21 +
drivers/tty/vt/Makefile | 2 +-
drivers/tty/vt/consolemap.c | 684 +-
drivers/tty/vt/defkeymap.c_shipped | 6 +-
drivers/tty/vt/selection.c | 3 +-
drivers/tty/vt/vt.c | 18 +-
drivers/ufs/core/ufshcd-priv.h | 6 +-
drivers/ufs/core/ufshcd.c | 233 +-
drivers/ufs/core/ufshpb.c | 7 +-
drivers/ufs/host/Kconfig | 12 +
drivers/ufs/host/Makefile | 1 +
drivers/ufs/host/ufs-exynos.c | 182 +-
drivers/ufs/host/ufs-exynos.h | 1 +
drivers/ufs/host/ufs-mediatek.c | 324 +-
drivers/ufs/host/ufs-mediatek.h | 74 +
drivers/ufs/host/ufs-qcom.c | 23 -
drivers/ufs/host/ufs-renesas.c | 412 +
drivers/ufs/host/ufshcd-pci.c | 18 +-
drivers/ufs/host/ufshcd-pltfrm.c | 28 +-
drivers/ufs/host/ufshcd-pltfrm.h | 6 +-
drivers/uio/uio_pruss.c | 10 +-
drivers/usb/atm/ueagle-atm.c | 2 +-
drivers/usb/cdns3/cdns3-gadget.c | 15 +-
drivers/usb/cdns3/cdnsp-ring.c | 19 +-
drivers/usb/chipidea/ci.h | 1 +
drivers/usb/chipidea/ci_hdrc_imx.c | 23 +-
drivers/usb/chipidea/ci_hdrc_imx.h | 2 +-
drivers/usb/chipidea/core.c | 2 +
drivers/usb/chipidea/otg_fsm.c | 2 +-
drivers/usb/chipidea/trace.h | 4 +-
drivers/usb/chipidea/udc.c | 17 +
drivers/usb/class/cdc-acm.c | 44 +-
drivers/usb/class/cdc-acm.h | 20 -
drivers/usb/common/usb-conn-gpio.c | 17 +
drivers/usb/core/Makefile | 4 +
drivers/usb/core/driver.c | 2 +-
drivers/usb/core/hcd.c | 51 +-
drivers/usb/core/hub.c | 108 +-
drivers/usb/core/hub.h | 4 +
drivers/usb/core/port.c | 83 +
drivers/usb/core/sysfs.c | 79 +-
drivers/usb/core/usb-acpi.c | 18 +-
drivers/usb/core/usb.c | 2 +-
drivers/usb/dwc2/gadget.c | 3 +-
drivers/usb/dwc2/hcd.c | 7 +-
drivers/usb/dwc3/Kconfig | 4 +-
drivers/usb/dwc3/core.c | 65 +-
drivers/usb/dwc3/core.h | 3 +
drivers/usb/dwc3/dwc3-am62.c | 8 +-
drivers/usb/dwc3/dwc3-pci.c | 1 +
drivers/usb/dwc3/dwc3-qcom.c | 144 +-
drivers/usb/dwc3/ep0.c | 9 +-
drivers/usb/dwc3/gadget.c | 123 +-
drivers/usb/gadget/function/f_acm.c | 20 +-
drivers/usb/gadget/function/f_fs.c | 40 +-
drivers/usb/gadget/function/f_mass_storage.c | 36 +-
drivers/usb/gadget/function/f_uvc.c | 30 +-
drivers/usb/gadget/function/storage_common.c | 15 +
drivers/usb/gadget/function/storage_common.h | 2 +
drivers/usb/gadget/function/u_ether.c | 13 +-
drivers/usb/gadget/function/uvc_configfs.c | 6 +-
drivers/usb/gadget/function/uvc_queue.c | 23 +-
drivers/usb/gadget/function/uvc_video.c | 17 +-
drivers/usb/gadget/legacy/inode.c | 1 +
drivers/usb/gadget/legacy/raw_gadget.c | 63 +-
drivers/usb/gadget/udc/Kconfig | 19 +-
drivers/usb/gadget/udc/Makefile | 1 +
drivers/usb/gadget/udc/aspeed-vhub/hub.c | 4 +-
drivers/usb/gadget/udc/aspeed_udc.c | 1597 +
drivers/usb/gadget/udc/atmel_usba_udc.c | 10 +-
drivers/usb/gadget/udc/bdc/bdc_cmd.c | 2 +-
drivers/usb/gadget/udc/core.c | 11 +-
drivers/usb/gadget/udc/lpc32xx_udc.c | 1 +
drivers/usb/gadget/udc/tegra-xudc.c | 8 +-
drivers/usb/gadget/udc/trace.h | 8 +-
drivers/usb/host/Kconfig | 10 +
drivers/usb/host/Makefile | 1 +
drivers/usb/host/ehci-fsl.c | 11 +-
drivers/usb/host/ehci-platform.c | 2 +
drivers/usb/host/ehci-ppc-of.c | 1 +
drivers/usb/host/ehci-q.c | 2 +-
drivers/usb/host/fsl-mph-dr-of.c | 3 +
drivers/usb/host/max3421-hcd.c | 2 +-
.../{staging/octeon-usb => usb/host}/octeon-hcd.c | 0
.../{staging/octeon-usb => usb/host}/octeon-hcd.h | 0
drivers/usb/host/ohci-at91.c | 69 +-
drivers/usb/host/ohci-nxp.c | 1 +
drivers/usb/host/ohci-platform.c | 3 +
drivers/usb/host/ohci-ppc-of.c | 1 +
drivers/usb/host/ohci-sa1111.c | 25 +
drivers/usb/host/ohci-sm501.c | 2 +-
drivers/usb/host/uhci-grlib.c | 2 +-
drivers/usb/host/uhci-hcd.h | 2 +-
drivers/usb/host/xhci-hub.c | 2 +-
drivers/usb/host/xhci-mtk.c | 7 +
drivers/usb/host/xhci-pci-renesas.c | 4 -
drivers/usb/host/xhci-pci.c | 6 +-
drivers/usb/host/xhci-ring.c | 2 +-
drivers/usb/host/xhci-tegra.c | 8 +-
drivers/usb/host/xhci-trace.h | 4 +-
drivers/usb/host/xhci.c | 65 +-
drivers/usb/host/xhci.h | 4 +-
drivers/usb/image/mdc800.c | 2 +-
drivers/usb/misc/Kconfig | 16 +
drivers/usb/misc/Makefile | 1 +
drivers/usb/misc/ldusb.c | 6 +-
drivers/usb/misc/onboard_usb_hub.c | 458 +
drivers/usb/misc/onboard_usb_hub.h | 36 +
drivers/usb/misc/onboard_usb_hub_pdevs.c | 143 +
drivers/usb/misc/sisusbvga/sisusb_con.c | 2 +-
drivers/usb/misc/usbsevseg.c | 2 +-
drivers/usb/misc/usbtest.c | 2 +-
drivers/usb/mtu3/mtu3.h | 5 +-
drivers/usb/mtu3/mtu3_core.c | 35 +-
drivers/usb/mtu3/mtu3_debugfs.c | 8 +-
drivers/usb/mtu3/mtu3_gadget.c | 38 +-
drivers/usb/mtu3/mtu3_gadget_ep0.c | 10 +-
drivers/usb/mtu3/mtu3_hw_regs.h | 16 +
drivers/usb/mtu3/mtu3_plat.c | 43 +-
drivers/usb/mtu3/mtu3_trace.h | 10 +-
drivers/usb/musb/Kconfig | 13 +-
drivers/usb/musb/Makefile | 1 +
drivers/usb/musb/mpfs.c | 269 +
drivers/usb/musb/musb_core.c | 16 +-
drivers/usb/musb/musb_cppi41.c | 2 +-
drivers/usb/musb/musb_gadget.c | 2 -
drivers/usb/musb/musb_trace.h | 4 +-
drivers/usb/musb/tusb6010.c | 2 +-
drivers/usb/phy/phy-keystone.c | 2 +-
drivers/usb/renesas_usbhs/rza.c | 4 +
drivers/usb/serial/cypress_m8.c | 2 +-
drivers/usb/serial/ftdi_sio.c | 3 +
drivers/usb/serial/ftdi_sio_ids.h | 6 +
drivers/usb/serial/garmin_gps.c | 4 +-
drivers/usb/serial/io_edgeport.c | 4 +-
drivers/usb/serial/io_ti.c | 2 +
drivers/usb/serial/io_usbvend.h | 1 +
drivers/usb/serial/mos7720.c | 2 +-
drivers/usb/serial/opticon.c | 4 +-
drivers/usb/serial/option.c | 12 +
drivers/usb/serial/pl2303.c | 29 +-
drivers/usb/serial/sierra.c | 7 +-
drivers/usb/serial/usb-serial.c | 2 +-
drivers/usb/serial/usb_wwan.c | 13 +-
drivers/usb/storage/transport.c | 2 +-
drivers/usb/typec/Kconfig | 11 +
drivers/usb/typec/Makefile | 3 +-
drivers/usb/typec/anx7411.c | 1601 +
drivers/usb/typec/class.c | 168 +-
drivers/usb/typec/class.h | 6 +
drivers/usb/typec/mux.c | 8 +-
drivers/usb/typec/pd.c | 708 +
drivers/usb/typec/pd.h | 30 +
drivers/usb/typec/retimer.c | 173 +
drivers/usb/typec/retimer.h | 15 +
drivers/usb/typec/tcpm/Kconfig | 1 -
drivers/usb/typec/tcpm/tcpci.c | 3 +-
drivers/usb/typec/tcpm/tcpci_maxim.c | 3 +-
drivers/usb/typec/tcpm/tcpci_mt6360.c | 3 +-
drivers/usb/typec/tcpm/tcpci_rt1711h.c | 2 +-
drivers/usb/typec/tcpm/tcpm.c | 146 +-
drivers/usb/typec/ucsi/Kconfig | 10 +
drivers/usb/typec/ucsi/Makefile | 1 +
drivers/usb/typec/ucsi/ucsi.c | 4 +
drivers/usb/typec/ucsi/ucsi_ccg.c | 28 +-
drivers/usb/typec/ucsi/ucsi_stm32g0.c | 777 +
drivers/usb/usbip/vudc_rx.c | 6 +-
drivers/usb/usbip/vudc_sysfs.c | 14 +-
drivers/vdpa/ifcvf/ifcvf_base.c | 14 +-
drivers/vdpa/ifcvf/ifcvf_base.h | 2 +
drivers/vdpa/ifcvf/ifcvf_main.c | 144 +-
drivers/vdpa/mlx5/core/mlx5_vdpa.h | 11 +
drivers/vdpa/mlx5/net/mlx5_vnet.c | 215 +-
drivers/vdpa/vdpa.c | 14 +-
drivers/vdpa/vdpa_sim/vdpa_sim.c | 18 +-
drivers/vdpa/vdpa_sim/vdpa_sim.h | 1 +
drivers/vdpa/vdpa_sim/vdpa_sim_blk.c | 176 +-
drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 3 +
drivers/vdpa/vdpa_user/iova_domain.c | 102 +-
drivers/vdpa/vdpa_user/iova_domain.h | 8 +
drivers/vdpa/vdpa_user/vduse_dev.c | 247 +-
drivers/vfio/Makefile | 2 +
drivers/vfio/fsl-mc/vfio_fsl_mc_private.h | 2 +-
drivers/vfio/pci/Kconfig | 11 +
drivers/vfio/pci/Makefile | 2 +-
drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c | 11 +-
drivers/vfio/pci/mlx5/cmd.c | 14 +-
drivers/vfio/pci/mlx5/cmd.h | 4 +-
drivers/vfio/pci/mlx5/main.c | 11 +-
drivers/vfio/pci/vfio_pci_config.c | 4 +-
drivers/vfio/pci/vfio_pci_core.c | 22 +-
drivers/vfio/pci/vfio_pci_zdev.c | 35 +-
drivers/vfio/platform/vfio_platform_private.h | 21 +-
drivers/vfio/vfio.h | 17 +-
drivers/vfio/vfio_iommu_spapr_tce.c | 14 +-
drivers/vfio/vfio_iommu_type1.c | 197 +-
drivers/vfio/{vfio.c => vfio_main.c} | 209 +-
drivers/vhost/scsi.c | 89 +-
drivers/vhost/vdpa.c | 42 +-
drivers/vhost/vringh.c | 88 +-
drivers/video/Kconfig | 6 +
drivers/video/Makefile | 2 +
drivers/video/aperture.c | 351 +
drivers/video/backlight/lp855x_bl.c | 21 +-
drivers/video/backlight/ltv350qv.c | 3 +-
drivers/video/backlight/platform_lcd.c | 10 -
drivers/video/backlight/rt4831-backlight.c | 33 +-
drivers/video/backlight/tps65217_bl.c | 10 +-
drivers/video/console/Kconfig | 1 +
drivers/video/console/sticore.c | 2 +
drivers/video/console/vgacon.c | 12 +-
drivers/video/fbdev/68328fb.c | 7 +-
drivers/video/fbdev/Kconfig | 7 +-
drivers/video/fbdev/amba-clcd.c | 24 +-
drivers/video/fbdev/amifb.c | 15 +-
drivers/video/fbdev/arkfb.c | 9 +-
drivers/video/fbdev/atafb.c | 103 +-
drivers/video/fbdev/au1100fb.c | 6 +-
drivers/video/fbdev/cirrusfb.c | 8 +-
drivers/video/fbdev/core/fbcon.c | 54 +-
drivers/video/fbdev/core/fbmem.c | 38 +-
drivers/video/fbdev/dnfb.c | 2 +-
drivers/video/fbdev/efifb.c | 11 -
drivers/video/fbdev/fm2fb.c | 4 +-
drivers/video/fbdev/hpfb.c | 4 +-
drivers/video/fbdev/i740fb.c | 9 +-
drivers/video/fbdev/imxfb.c | 134 +-
drivers/video/fbdev/intelfb/intelfbdrv.c | 4 +-
drivers/video/fbdev/intelfb/intelfbhw.c | 12 +-
drivers/video/fbdev/offb.c | 1 +
drivers/video/fbdev/omap/hwa742.c | 3 +-
drivers/video/fbdev/omap/omapfb.h | 9 -
drivers/video/fbdev/omap/omapfb_main.c | 3 +-
drivers/video/fbdev/omap/sossi.c | 2 +-
drivers/video/fbdev/omap2/omapfb/dss/hdmi_phy.c | 2 +-
drivers/video/fbdev/pxa3xx-gcu.c | 2 +-
drivers/video/fbdev/q40fb.c | 2 +-
drivers/video/fbdev/s3fb.c | 2 +
drivers/video/fbdev/sa1100fb.c | 41 -
drivers/video/fbdev/simplefb.c | 14 +-
drivers/video/fbdev/sis/init.c | 4 +-
drivers/video/fbdev/skeletonfb.c | 21 +-
drivers/video/fbdev/valkyriefb.c | 10 +-
drivers/video/fbdev/vt8623fb.c | 2 +
drivers/virt/acrn/ioreq.c | 6 +-
drivers/virt/coco/sev-guest/sev-guest.c | 9 +-
drivers/virt/nitro_enclaves/Kconfig | 5 +-
drivers/virt/nitro_enclaves/ne_misc_dev.c | 27 -
drivers/virt/nitro_enclaves/ne_misc_dev_test.c | 5 +-
drivers/virt/vboxguest/vboxguest_linux.c | 9 +-
drivers/virtio/Kconfig | 32 +-
drivers/virtio/Makefile | 1 +
drivers/virtio/virtio.c | 11 +-
drivers/virtio/virtio_anchor.c | 18 +
drivers/virtio/virtio_balloon.c | 49 +-
drivers/virtio/virtio_mem.c | 6 +-
drivers/virtio/virtio_mmio.c | 43 +-
drivers/virtio/virtio_pci_common.c | 32 +-
drivers/virtio/virtio_pci_common.h | 3 +-
drivers/virtio/virtio_pci_legacy.c | 8 +-
drivers/virtio/virtio_pci_modern.c | 153 +-
drivers/virtio/virtio_pci_modern_dev.c | 43 +-
drivers/virtio/virtio_ring.c | 857 +-
drivers/virtio/virtio_vdpa.c | 18 +-
drivers/vme/Kconfig | 18 -
drivers/vme/Makefile | 8 -
drivers/vme/boards/Kconfig | 10 -
drivers/vme/boards/Makefile | 6 -
drivers/vme/boards/vme_vmivme7805.c | 106 -
drivers/vme/boards/vme_vmivme7805.h | 33 -
drivers/vme/bridges/Kconfig | 24 -
drivers/vme/bridges/Makefile | 4 -
drivers/vme/bridges/vme_ca91cx42.c | 1928 -
drivers/vme/bridges/vme_ca91cx42.h | 579 -
drivers/watchdog/Kconfig | 9 +
drivers/watchdog/Makefile | 1 +
drivers/watchdog/armada_37xx_wdt.c | 2 +
drivers/watchdog/bcm7038_wdt.c | 8 +-
drivers/watchdog/booke_wdt.c | 2 +-
drivers/watchdog/dw_wdt.c | 8 +-
drivers/watchdog/f71808e_wdt.c | 4 +-
drivers/watchdog/gxp-wdt.c | 1 +
drivers/watchdog/max77620_wdt.c | 4 +-
drivers/watchdog/mtk_wdt.c | 10 +-
drivers/watchdog/pc87413_wdt.c | 2 +-
drivers/watchdog/pm8916_wdt.c | 41 +-
drivers/watchdog/pseries-wdt.c | 239 +
drivers/watchdog/realtek_otto_wdt.c | 1 +
drivers/watchdog/s3c2410_wdt.c | 9 +-
drivers/watchdog/sama5d4_wdt.c | 8 +-
drivers/watchdog/simatic-ipc-wdt.c | 15 +-
drivers/watchdog/sp5100_tco.c | 1 +
drivers/watchdog/sp805_wdt.c | 5 +
drivers/watchdog/st_lpc_wdt.c | 9 +-
drivers/watchdog/tegra_wdt.c | 14 +-
drivers/watchdog/wdat_wdt.c | 7 +-
drivers/xen/Kconfig | 29 +
drivers/xen/Makefile | 2 +
drivers/xen/events/events_base.c | 60 +-
drivers/xen/features.c | 2 +-
drivers/xen/gntdev-common.h | 7 +
drivers/xen/gntdev.c | 159 +-
drivers/xen/grant-dma-iommu.c | 78 +
drivers/xen/grant-dma-ops.c | 356 +
drivers/xen/grant-table.c | 251 +-
drivers/xen/manage.c | 2 +-
drivers/xen/xen-front-pgdir-shbuf.c | 4 +-
drivers/xen/xen-pciback/pciback_ops.c | 2 +-
drivers/xen/xenbus/xenbus_dev_frontend.c | 4 +-
drivers/xen/xenbus/xenbus_probe_backend.c | 2 +-
drivers/xen/xlate_mmu.c | 1 -
fs/9p/cache.c | 4 +-
fs/9p/fid.c | 75 +-
fs/9p/fid.h | 6 +-
fs/9p/v9fs.c | 2 +-
fs/9p/v9fs.h | 10 +-
fs/9p/vfs_addr.c | 32 +-
fs/9p/vfs_dentry.c | 4 +-
fs/9p/vfs_dir.c | 2 +-
fs/9p/vfs_file.c | 9 +-
fs/9p/vfs_inode.c | 102 +-
fs/9p/vfs_inode_dotl.c | 79 +-
fs/9p/vfs_super.c | 8 +-
fs/9p/xattr.c | 8 +-
fs/Kconfig | 12 +-
fs/Makefile | 2 -
fs/affs/file.c | 6 +-
fs/afs/callback.c | 2 +-
fs/afs/cell.c | 61 +-
fs/afs/cmservice.c | 4 +-
fs/afs/dir.c | 32 +-
fs/afs/dir_edit.c | 10 +-
fs/afs/dir_silly.c | 4 +-
fs/afs/dynroot.c | 2 +-
fs/afs/file.c | 12 +-
fs/afs/fs_operation.c | 6 +-
fs/afs/inode.c | 43 +-
fs/afs/internal.h | 39 +-
fs/afs/mntpt.c | 6 -
fs/afs/proc.c | 6 +-
fs/afs/rxrpc.c | 31 +-
fs/afs/server.c | 46 +-
fs/afs/super.c | 6 +-
fs/afs/vl_list.c | 19 +-
fs/afs/volume.c | 24 +-
fs/afs/write.c | 25 +-
fs/aio.c | 38 +-
fs/attr.c | 80 +-
fs/autofs/autofs_i.h | 7 +-
fs/autofs/expire.c | 2 +-
fs/autofs/inode.c | 1 +
fs/autofs/root.c | 108 +-
fs/befs/linuxvfs.c | 16 +-
fs/btrfs/async-thread.h | 1 -
fs/btrfs/backref.c | 88 +-
fs/btrfs/backref.h | 3 +-
fs/btrfs/block-group.c | 34 +-
fs/btrfs/block-group.h | 1 +
fs/btrfs/block-rsv.c | 21 +-
fs/btrfs/block-rsv.h | 15 +-
fs/btrfs/btrfs_inode.h | 25 +-
fs/btrfs/check-integrity.c | 4 +-
fs/btrfs/compression.c | 365 +-
fs/btrfs/compression.h | 20 +-
fs/btrfs/ctree.h | 125 +-
fs/btrfs/delalloc-space.c | 6 +-
fs/btrfs/delayed-inode.c | 479 +-
fs/btrfs/delayed-inode.h | 11 +
fs/btrfs/delayed-ref.c | 4 +-
fs/btrfs/dev-replace.c | 3 +-
fs/btrfs/disk-io.c | 482 +-
fs/btrfs/disk-io.h | 17 +-
fs/btrfs/extent-tree.c | 171 +-
fs/btrfs/extent_io.c | 1008 +-
fs/btrfs/extent_io.h | 15 +-
fs/btrfs/file.c | 136 +-
fs/btrfs/free-space-cache.c | 3 +-
fs/btrfs/inode.c | 829 +-
fs/btrfs/ioctl.c | 150 +-
fs/btrfs/locking.c | 3 -
fs/btrfs/lzo.c | 28 +-
fs/btrfs/ordered-data.c | 40 +-
fs/btrfs/ordered-data.h | 5 +-
fs/btrfs/raid56.c | 796 +-
fs/btrfs/raid56.h | 168 +-
fs/btrfs/reflink.c | 35 +-
fs/btrfs/scrub.c | 71 +-
fs/btrfs/send.c | 821 +-
fs/btrfs/send.h | 169 +-
fs/btrfs/space-info.c | 110 +-
fs/btrfs/space-info.h | 8 +-
fs/btrfs/struct-funcs.c | 11 +-
fs/btrfs/subpage.c | 4 +-
fs/btrfs/super.c | 85 +-
fs/btrfs/sysfs.c | 186 +-
fs/btrfs/tests/btrfs-tests.c | 25 +-
fs/btrfs/tests/extent-buffer-tests.c | 3 +-
fs/btrfs/transaction.c | 138 +-
fs/btrfs/tree-log.c | 29 +-
fs/btrfs/tree-log.h | 3 +
fs/btrfs/volumes.c | 362 +-
fs/btrfs/volumes.h | 46 +-
fs/btrfs/zlib.c | 42 +-
fs/btrfs/zoned.c | 192 +-
fs/btrfs/zoned.h | 23 +
fs/btrfs/zstd.c | 33 +-
fs/buffer.c | 422 +-
fs/cachefiles/ondemand.c | 3 +-
fs/ceph/addr.c | 88 +-
fs/ceph/cache.c | 4 +-
fs/ceph/cache.h | 2 +-
fs/ceph/caps.c | 143 +-
fs/ceph/dir.c | 79 +-
fs/ceph/file.c | 134 +-
fs/ceph/inode.c | 23 +-
fs/ceph/mds_client.c | 169 +-
fs/ceph/mds_client.h | 13 +-
fs/ceph/mdsmap.c | 22 +-
fs/ceph/snap.c | 8 +-
fs/ceph/super.c | 21 +-
fs/ceph/super.h | 41 +-
fs/ceph/xattr.c | 26 +-
fs/cifs/Makefile | 6 +-
fs/cifs/cached_dir.c | 388 +
fs/cifs/cached_dir.h | 64 +
fs/cifs/cifs_debug.c | 84 +-
fs/cifs/cifsacl.c | 2 +
fs/cifs/cifsencrypt.c | 6 +-
fs/cifs/cifsfs.c | 84 +-
fs/cifs/cifsfs.h | 6 +-
fs/cifs/cifsglob.h | 247 +-
fs/cifs/cifsproto.h | 18 +-
fs/cifs/cifssmb.c | 477 +-
fs/cifs/connect.c | 344 +-
fs/cifs/dfs_cache.c | 8 +-
fs/cifs/dir.c | 8 +
fs/cifs/file.c | 324 +-
fs/cifs/fs_context.c | 9 +
fs/cifs/fs_context.h | 8 +
fs/cifs/fscache.c | 8 +-
fs/cifs/fscache.h | 26 +-
fs/cifs/inode.c | 69 +-
fs/cifs/ioctl.c | 2 +
fs/cifs/link.c | 8 +
fs/cifs/misc.c | 96 +-
fs/cifs/netmisc.c | 2 +-
fs/cifs/readdir.c | 5 +-
fs/cifs/sess.c | 190 +-
fs/cifs/smb1ops.c | 10 +-
fs/cifs/smb2inode.c | 11 +-
fs/cifs/smb2misc.c | 60 +-
fs/cifs/smb2ops.c | 562 +-
fs/cifs/smb2pdu.c | 62 +-
fs/cifs/smb2proto.h | 10 -
fs/cifs/smb2transport.c | 38 +-
fs/cifs/trace.h | 38 +
fs/cifs/transport.c | 334 +-
fs/cifs/xattr.c | 5 +-
fs/coda/symlink.c | 11 +-
fs/coredump.c | 4 +-
fs/cramfs/inode.c | 17 +-
fs/crypto/fname.c | 36 +-
fs/crypto/fscrypt_private.h | 11 +-
fs/crypto/hooks.c | 6 +-
fs/crypto/keysetup.c | 7 +
fs/crypto/policy.c | 49 +-
fs/dax.c | 405 +-
fs/dcache.c | 69 +-
fs/direct-io.c | 47 +-
fs/dlm/Kconfig | 9 +
fs/dlm/Makefile | 2 +-
fs/dlm/ast.c | 4 +-
fs/dlm/config.c | 21 +-
fs/dlm/config.h | 3 +-
fs/dlm/dlm_internal.h | 32 +-
fs/dlm/lock.c | 143 +-
fs/dlm/lock.h | 17 +-
fs/dlm/lockspace.c | 31 +-
fs/dlm/lowcomms.c | 4 +-
fs/dlm/member.c | 30 +-
fs/dlm/plock.c | 51 +-
fs/dlm/recoverd.c | 35 +-
fs/dlm/user.c | 21 +-
fs/efivarfs/Makefile | 2 +-
fs/efivarfs/internal.h | 40 +
fs/efivarfs/super.c | 15 +-
fs/efivarfs/vars.c | 738 +
fs/erofs/compress.h | 2 +-
fs/erofs/data.c | 39 +-
fs/erofs/decompressor.c | 18 +-
fs/erofs/decompressor_lzma.c | 1 +
fs/erofs/dir.c | 20 +-
fs/erofs/super.c | 10 +-
fs/erofs/utils.c | 2 +-
fs/erofs/zdata.c | 797 +-
fs/erofs/zdata.h | 119 +-
fs/erofs/zpvec.h | 159 -
fs/eventpoll.c | 22 +
fs/exec.c | 20 +-
fs/exfat/exfat_fs.h | 19 +-
fs/exfat/fatent.c | 2 +-
fs/exfat/file.c | 82 +-
fs/exfat/inode.c | 41 +-
fs/exfat/misc.c | 17 -
fs/exfat/namei.c | 26 +-
fs/exfat/nls.c | 4 +-
fs/exfat/super.c | 4 +-
fs/ext2/dir.c | 29 +-
fs/ext2/ext2.h | 1 -
fs/ext2/inode.c | 63 +-
fs/ext2/namei.c | 10 +-
fs/ext2/super.c | 31 +-
fs/ext2/xattr.c | 170 +-
fs/ext4/balloc.c | 2 +-
fs/ext4/ext4.h | 24 +-
fs/ext4/ext4_jbd2.c | 3 +-
fs/ext4/extents_status.c | 3 +-
fs/ext4/fast_commit.c | 48 +-
fs/ext4/indirect.c | 4 +-
fs/ext4/inline.c | 33 +
fs/ext4/inode.c | 86 +-
fs/ext4/ioctl.c | 105 +-
fs/ext4/mballoc.c | 57 +-
fs/ext4/migrate.c | 6 +-
fs/ext4/mmp.c | 11 +-
fs/ext4/namei.c | 33 +-
fs/ext4/orphan.c | 24 +-
fs/ext4/page-io.c | 2 +-
fs/ext4/resize.c | 49 +-
fs/ext4/super.c | 210 +-
fs/ext4/symlink.c | 15 +
fs/ext4/xattr.c | 169 +-
fs/ext4/xattr.h | 16 +-
fs/f2fs/checkpoint.c | 4 +-
fs/f2fs/compress.c | 264 +-
fs/f2fs/data.c | 133 +-
fs/f2fs/debug.c | 2 +-
fs/f2fs/f2fs.h | 112 +-
fs/f2fs/file.c | 101 +-
fs/f2fs/gc.c | 11 +-
fs/f2fs/gc.h | 21 +-
fs/f2fs/inode.c | 3 +-
fs/f2fs/iostat.c | 31 +-
fs/f2fs/namei.c | 17 +-
fs/f2fs/node.c | 24 +-
fs/f2fs/recovery.c | 10 +-
fs/f2fs/segment.c | 81 +-
fs/f2fs/segment.h | 11 +-
fs/f2fs/super.c | 92 +-
fs/f2fs/sysfs.c | 56 +
fs/fat/file.c | 9 +-
fs/fat/namei_vfat.c | 231 +-
fs/fcntl.c | 1 +
fs/file_table.c | 19 +-
fs/freevxfs/vxfs_immed.c | 43 +-
fs/freevxfs/vxfs_subr.c | 6 -
fs/fs-writeback.c | 37 +-
fs/fscache/cookie.c | 31 +-
fs/fscache/volume.c | 4 +-
fs/fuse/control.c | 4 +-
fs/fuse/dax.c | 2 +-
fs/fuse/dev.c | 7 +-
fs/fuse/dir.c | 16 +-
fs/fuse/file.c | 46 +-
fs/fuse/inode.c | 16 +-
fs/fuse/ioctl.c | 15 +-
fs/fuse/virtio_fs.c | 9 +-
fs/gfs2/aops.c | 28 +-
fs/gfs2/bmap.c | 5 +-
fs/gfs2/dir.c | 7 +-
fs/gfs2/file.c | 5 +-
fs/gfs2/glock.c | 202 +-
fs/gfs2/glock.h | 2 +-
fs/gfs2/glops.c | 31 +-
fs/gfs2/incore.h | 6 +-
fs/gfs2/lock_dlm.c | 2 +-
fs/gfs2/log.c | 9 +-
fs/gfs2/log.h | 2 +-
fs/gfs2/lops.c | 32 +-
fs/gfs2/lops.h | 2 +-
fs/gfs2/main.c | 3 +-
fs/gfs2/meta_io.c | 18 +-
fs/gfs2/ops_fstype.c | 2 -
fs/gfs2/quota.c | 30 +-
fs/gfs2/rgrp.c | 12 +-
fs/gfs2/rgrp.h | 5 +-
fs/gfs2/super.c | 2 +-
fs/gfs2/xattr.c | 2 +-
fs/hfs/bnode.c | 4 -
fs/hfsplus/bnode.c | 4 -
fs/hfsplus/hfsplus_fs.h | 2 +-
fs/hfsplus/part_tbl.c | 5 +-
fs/hfsplus/super.c | 4 +-
fs/hfsplus/wrapper.c | 12 +-
fs/hostfs/hostfs_kern.c | 6 +-
fs/hugetlbfs/inode.c | 181 +-
fs/inode.c | 216 +-
fs/io_uring.c | 13316 --
fs/iomap/buffered-io.c | 125 +-
fs/iomap/direct-io.c | 33 +-
fs/isofs/compress.c | 2 +-
fs/jbd2/checkpoint.c | 6 +-
fs/jbd2/commit.c | 40 +-
fs/jbd2/journal.c | 69 +-
fs/jbd2/recovery.c | 34 +-
fs/jbd2/revoke.c | 8 +-
fs/jbd2/transaction.c | 42 +-
fs/jfs/file.c | 4 +-
fs/jfs/inode.c | 18 +-
fs/jfs/jfs_metapage.c | 2 +-
fs/kernel_read_file.c | 38 +-
fs/kernfs/dir.c | 7 +-
fs/kernfs/file.c | 205 +-
fs/kernfs/kernfs-internal.h | 4 +
fs/kernfs/mount.c | 19 +
fs/ksmbd/auth.c | 56 +-
fs/ksmbd/auth.h | 11 +-
fs/ksmbd/connection.c | 9 +-
fs/ksmbd/connection.h | 10 +-
fs/ksmbd/mgmt/share_config.c | 14 -
fs/ksmbd/mgmt/share_config.h | 2 -
fs/ksmbd/mgmt/tree_connect.c | 5 +-
fs/ksmbd/mgmt/tree_connect.h | 4 +-
fs/ksmbd/mgmt/user_session.c | 95 +-
fs/ksmbd/mgmt/user_session.h | 13 +-
fs/ksmbd/oplock.c | 46 +-
fs/ksmbd/server.c | 8 +-
fs/ksmbd/smb2misc.c | 12 +-
fs/ksmbd/smb2pdu.c | 160 +-
fs/ksmbd/smb_common.h | 2 +-
fs/ksmbd/smbacl.c | 130 +-
fs/ksmbd/smbacl.h | 2 +-
fs/ksmbd/transport_rdma.c | 10 -
fs/ksmbd/transport_tcp.c | 2 +-
fs/ksmbd/vfs.c | 22 +-
fs/ksmbd/vfs.h | 2 +-
fs/ksmbd/vfs_cache.c | 2 +-
fs/lockd/svc4proc.c | 12 +-
fs/lockd/svclock.c | 10 +-
fs/lockd/svcproc.c | 5 +-
fs/lockd/svcsubs.c | 14 +-
fs/lockd/xdr4.c | 19 +-
fs/locks.c | 77 +-
fs/mbcache.c | 125 +-
fs/mount.h | 1 -
fs/mpage.c | 131 +-
fs/namei.c | 271 +-
fs/namespace.c | 2 +-
fs/netfs/buffered_read.c | 26 +-
fs/netfs/internal.h | 2 +-
fs/netfs/objects.c | 8 +-
fs/nfs/blocklayout/blocklayout.c | 13 +-
fs/nfs/blocklayout/dev.c | 42 +-
fs/nfs/callback_proc.c | 1 +
fs/nfs/client.c | 13 +-
fs/nfs/dir.c | 81 +-
fs/nfs/direct.c | 58 +-
fs/nfs/file.c | 6 +-
fs/nfs/filelayout/filelayout.c | 2 +
fs/nfs/flexfilelayout/flexfilelayout.c | 4 +
fs/nfs/flexfilelayout/flexfilelayoutdev.c | 6 +-
fs/nfs/fs_context.c | 26 +-
fs/nfs/internal.h | 57 +-
fs/nfs/nfs3client.c | 1 -
fs/nfs/nfs42xattr.c | 7 +-
fs/nfs/nfs42xdr.c | 170 +-
fs/nfs/nfs4client.c | 4 +-
fs/nfs/nfs4file.c | 1 +
fs/nfs/nfs4idmap.c | 46 +-
fs/nfs/nfs4proc.c | 51 +-
fs/nfs/nfs4state.c | 1 +
fs/nfs/nfstrace.h | 215 +-
fs/nfs/pnfs.c | 21 +-
fs/nfs/pnfs.h | 1 +
fs/nfs/read.c | 4 -
fs/nfs/super.c | 2 +-
fs/nfs/write.c | 74 +-
fs/nfsd/acl.h | 6 +-
fs/nfsd/filecache.c | 758 +-
fs/nfsd/filecache.h | 11 +-
fs/nfsd/netns.h | 3 +
fs/nfsd/nfs2acl.c | 6 +-
fs/nfsd/nfs3acl.c | 4 +-
fs/nfsd/nfs3proc.c | 35 +-
fs/nfsd/nfs4acl.c | 46 +-
fs/nfsd/nfs4callback.c | 37 +-
fs/nfsd/nfs4proc.c | 330 +-
fs/nfsd/nfs4state.c | 127 +-
fs/nfsd/nfs4xdr.c | 132 +-
fs/nfsd/nfscache.c | 3 +-
fs/nfsd/nfsctl.c | 21 +-
fs/nfsd/nfsd.h | 9 +-
fs/nfsd/nfsfh.c | 27 +-
fs/nfsd/nfsfh.h | 58 +-
fs/nfsd/nfsproc.c | 27 +-
fs/nfsd/state.h | 1 -
fs/nfsd/trace.h | 327 +-
fs/nfsd/vfs.c | 267 +-
fs/nfsd/vfs.h | 33 +-
fs/nfsd/xdr4.h | 60 +-
fs/nilfs2/btnode.c | 8 +-
fs/nilfs2/btnode.h | 4 +-
fs/nilfs2/btree.c | 6 +-
fs/nilfs2/dir.c | 2 +-
fs/nilfs2/gcinode.c | 7 +-
fs/nilfs2/mdt.c | 19 +-
fs/nilfs2/nilfs.h | 3 +
fs/nilfs2/page.c | 60 +-
fs/notify/fanotify/fanotify.c | 19 +-
fs/notify/fanotify/fanotify.h | 2 +
fs/notify/fanotify/fanotify_user.c | 138 +-
fs/notify/fdinfo.c | 6 +-
fs/notify/fsnotify.c | 23 +-
fs/notify/inotify/inotify_user.c | 2 +-
fs/ntfs/aops.c | 12 +-
fs/ntfs/aops.h | 7 +-
fs/ntfs/attrib.c | 8 +-
fs/ntfs/compress.c | 2 +-
fs/ntfs/file.c | 7 +-
fs/ntfs/logfile.c | 2 +-
fs/ntfs/mft.c | 4 +-
fs/ntfs3/file.c | 2 +-
fs/ntfs3/fsntfs.c | 2 +-
fs/ntfs3/inode.c | 10 +-
fs/ntfs3/ntfs_fs.h | 9 +-
fs/ocfs2/aops.c | 30 +-
fs/ocfs2/buffer_head_io.c | 8 +-
fs/ocfs2/cluster/heartbeat.c | 75 +-
fs/ocfs2/dlmfs/dlmfs.c | 14 +-
fs/ocfs2/file.c | 2 +-
fs/ocfs2/heartbeat.c | 27 +-
fs/ocfs2/namei.c | 1 +
fs/ocfs2/ocfs2.h | 4 +-
fs/ocfs2/quota_global.c | 2 +-
fs/ocfs2/refcounttree.c | 42 +-
fs/ocfs2/slot_map.c | 46 +-
fs/ocfs2/super.c | 23 +-
fs/open.c | 63 +-
fs/orangefs/inode.c | 4 +-
fs/overlayfs/copy_up.c | 7 +-
fs/overlayfs/export.c | 2 +-
fs/overlayfs/inode.c | 91 +-
fs/overlayfs/namei.c | 4 +-
fs/overlayfs/overlayfs.h | 21 +-
fs/overlayfs/super.c | 13 +-
fs/posix_acl.c | 168 +-
fs/proc/array.c | 5 +-
fs/proc/base.c | 46 +-
fs/proc/inode.c | 22 +-
fs/proc/kmsg.c | 1 -
fs/proc/nommu.c | 1 -
fs/proc/proc_net.c | 9 +-
fs/proc/proc_tty.c | 2 -
fs/proc/root.c | 8 +-
fs/proc/task_mmu.c | 7 +-
fs/proc/vmcore.c | 1 -
fs/proc_namespace.c | 2 +-
fs/pstore/inode.c | 1 +
fs/pstore/platform.c | 64 +-
fs/pstore/zone.c | 12 +-
fs/quota/dquot.c | 29 +-
fs/read_write.c | 107 +-
fs/reiserfs/inode.c | 20 +-
fs/reiserfs/journal.c | 12 +-
fs/reiserfs/stree.c | 4 +-
fs/reiserfs/super.c | 2 +-
fs/reiserfs/xattr.c | 9 +-
fs/remap_range.c | 45 +-
fs/splice.c | 64 +-
fs/squashfs/Makefile | 4 +-
fs/squashfs/block.c | 10 +-
fs/squashfs/decompressor.h | 1 +
fs/squashfs/file.c | 148 +-
fs/squashfs/file_direct.c | 90 +-
fs/squashfs/lz4_wrapper.c | 7 +-
fs/squashfs/lzo_wrapper.c | 7 +-
fs/squashfs/page_actor.c | 55 +-
fs/squashfs/page_actor.h | 57 +-
fs/squashfs/super.c | 33 -
fs/squashfs/xz_wrapper.c | 11 +-
fs/squashfs/zlib_wrapper.c | 12 +-
fs/squashfs/zstd_wrapper.c | 12 +-
fs/super.c | 39 +-
fs/tracefs/inode.c | 2 +-
fs/ubifs/file.c | 29 +-
fs/ubifs/super.c | 2 +-
fs/udf/dir.c | 2 +-
fs/udf/directory.c | 2 +-
fs/udf/inode.c | 2 +-
fs/ufs/balloc.c | 2 +-
fs/ufs/dir.c | 2 +-
fs/ufs/util.c | 11 -
fs/userfaultfd.c | 18 +-
fs/verity/Kconfig | 10 +-
fs/xattr.c | 25 +-
fs/xfs/Makefile | 6 +
fs/xfs/libxfs/xfs_ag.c | 171 +-
fs/xfs/libxfs/xfs_ag.h | 75 +-
fs/xfs/libxfs/xfs_ag_resv.c | 2 +-
fs/xfs/libxfs/xfs_alloc.c | 145 +-
fs/xfs/libxfs/xfs_alloc.h | 58 +-
fs/xfs/libxfs/xfs_alloc_btree.c | 9 +-
fs/xfs/libxfs/xfs_attr.c | 69 +-
fs/xfs/libxfs/xfs_attr.h | 27 +-
fs/xfs/libxfs/xfs_attr_leaf.c | 65 +-
fs/xfs/libxfs/xfs_attr_leaf.h | 3 +-
fs/xfs/libxfs/xfs_attr_remote.c | 15 +-
fs/xfs/libxfs/xfs_bmap.c | 84 +-
fs/xfs/libxfs/xfs_bmap_btree.c | 10 +-
fs/xfs/libxfs/xfs_btree.c | 29 +-
fs/xfs/libxfs/xfs_da_btree.h | 4 +-
fs/xfs/libxfs/xfs_dir2.c | 2 +-
fs/xfs/libxfs/xfs_dir2_block.c | 6 +-
fs/xfs/libxfs/xfs_dir2_sf.c | 8 +-
fs/xfs/libxfs/xfs_format.h | 2 +-
fs/xfs/libxfs/xfs_ialloc.c | 86 +-
fs/xfs/libxfs/xfs_ialloc.h | 25 +-
fs/xfs/libxfs/xfs_ialloc_btree.c | 20 +-
fs/xfs/libxfs/xfs_inode_buf.c | 15 +-
fs/xfs/libxfs/xfs_inode_fork.c | 65 +-
fs/xfs/libxfs/xfs_inode_fork.h | 27 +-
fs/xfs/libxfs/xfs_refcount.c | 19 +-
fs/xfs/libxfs/xfs_refcount_btree.c | 5 +-
fs/xfs/libxfs/xfs_rmap.c | 8 +-
fs/xfs/libxfs/xfs_rmap_btree.c | 9 +-
fs/xfs/libxfs/xfs_symlink_remote.c | 2 +-
fs/xfs/libxfs/xfs_trans_resv.c | 2 +-
fs/xfs/libxfs/xfs_types.c | 73 +-
fs/xfs/libxfs/xfs_types.h | 9 -
fs/xfs/scrub/agheader.c | 25 +-
fs/xfs/scrub/agheader_repair.c | 21 +-
fs/xfs/scrub/alloc.c | 7 +-
fs/xfs/scrub/bmap.c | 16 +-
fs/xfs/scrub/btree.c | 2 +-
fs/xfs/scrub/common.c | 6 +-
fs/xfs/scrub/dabtree.c | 2 +-
fs/xfs/scrub/dir.c | 2 +-
fs/xfs/scrub/fscounters.c | 4 +-
fs/xfs/scrub/health.c | 2 +
fs/xfs/scrub/ialloc.c | 12 +-
fs/xfs/scrub/quota.c | 2 +-
fs/xfs/scrub/refcount.c | 9 +-
fs/xfs/scrub/repair.c | 49 +-
fs/xfs/scrub/rmap.c | 6 +-
fs/xfs/scrub/symlink.c | 6 +-
fs/xfs/xfs_aops.c | 2 +-
fs/xfs/xfs_attr_inactive.c | 23 +-
fs/xfs/xfs_attr_item.c | 42 +-
fs/xfs/xfs_attr_list.c | 9 +-
fs/xfs/xfs_bio_io.c | 2 +-
fs/xfs/xfs_bmap_util.c | 39 +-
fs/xfs/xfs_buf.c | 305 +-
fs/xfs/xfs_buf.h | 27 +-
fs/xfs/xfs_dir2_readdir.c | 2 +-
fs/xfs/xfs_discard.c | 2 +-
fs/xfs/xfs_dquot.c | 2 +-
fs/xfs/xfs_extfree_item.c | 18 +-
fs/xfs/xfs_file.c | 68 +-
fs/xfs/xfs_filestream.c | 4 +-
fs/xfs/xfs_fsmap.c | 3 +-
fs/xfs/xfs_fsops.c | 16 +-
fs/xfs/xfs_icache.c | 72 +-
fs/xfs/xfs_icache.h | 1 +
fs/xfs/xfs_inode.c | 757 +-
fs/xfs/xfs_inode.h | 70 +-
fs/xfs/xfs_inode_item.c | 58 +-
fs/xfs/xfs_ioctl.c | 13 +-
fs/xfs/xfs_iomap.c | 49 +-
fs/xfs/xfs_iomap.h | 1 +
fs/xfs/xfs_iops.c | 27 +-
fs/xfs/xfs_iops.h | 3 +
fs/xfs/xfs_itable.c | 4 +-
fs/xfs/xfs_iunlink_item.c | 180 +
fs/xfs/xfs_iunlink_item.h | 27 +
fs/xfs/xfs_linux.h | 2 +-
fs/xfs/xfs_log.c | 78 +-
fs/xfs/xfs_log.h | 3 +-
fs/xfs/xfs_log_cil.c | 472 +-
fs/xfs/xfs_log_priv.h | 58 +-
fs/xfs/xfs_log_recover.c | 198 +-
fs/xfs/xfs_mount.c | 3 +-
fs/xfs/xfs_mount.h | 3 +-
fs/xfs/xfs_notify_failure.c | 226 +
fs/xfs/xfs_qm.c | 17 +-
fs/xfs/xfs_qm_syscalls.c | 9 +-
fs/xfs/xfs_reflink.c | 256 +-
fs/xfs/xfs_reflink.h | 3 -
fs/xfs/xfs_super.c | 48 +-
fs/xfs/xfs_super.h | 1 +
fs/xfs/xfs_symlink.c | 2 +-
fs/xfs/xfs_trace.h | 4 +-
fs/xfs/xfs_trans.c | 95 +-
fs/xfs/xfs_trans.h | 7 +-
fs/xfs/xfs_trans_priv.h | 3 +-
fs/xfs/xfs_xattr.c | 17 +-
fs/zonefs/super.c | 163 +-
fs/zonefs/trace.h | 4 +-
include/acpi/acpi_bus.h | 12 +-
include/acpi/cppc_acpi.h | 3 +-
include/acpi/processor.h | 9 +-
include/asm-generic/Kbuild | 1 +
include/asm-generic/archrandom.h | 15 +
include/asm-generic/barrier.h | 8 +
include/asm-generic/bitops/generic-non-atomic.h | 161 +
.../asm-generic/bitops/instrumented-non-atomic.h | 35 +-
include/asm-generic/bitops/non-atomic.h | 121 +-
.../bitops/non-instrumented-non-atomic.h | 16 +
include/asm-generic/io.h | 136 +-
include/asm-generic/pci.h | 39 +-
include/asm-generic/pci_iomap.h | 2 +
include/asm-generic/softirq_stack.h | 2 +-
include/asm-generic/tlb.h | 68 +-
include/clocksource/timer-ti-dm.h | 144 -
include/crypto/aria.h | 461 +
include/crypto/hash.h | 2 +
include/crypto/internal/blake2s.h | 108 -
include/crypto/kpp.h | 2 +
include/crypto/polyval.h | 22 +
include/drm/display/drm_dp_aux_bus.h | 34 +-
include/drm/display/drm_dp_helper.h | 48 +-
include/drm/drm_atomic_helper.h | 2 +
include/drm/drm_bridge.h | 15 +
include/drm/drm_connector.h | 10 +-
include/drm/drm_crtc.h | 17 +-
include/drm/drm_displayid.h | 6 +-
include/drm/drm_edid.h | 39 +-
include/drm/drm_encoder_slave.h | 2 +
include/drm/drm_fb_helper.h | 1 +
include/drm/drm_gem.h | 26 +-
include/drm/drm_gem_framebuffer_helper.h | 10 +-
include/drm/drm_mipi_dsi.h | 17 +
include/drm/drm_of.h | 22 +
include/drm/drm_panel.h | 9 +
include/drm/drm_probe_helper.h | 3 +
include/drm/drm_rect.h | 16 +
include/drm/i915_pciids.h | 39 +-
include/drm/intel-gtt.h | 24 +-
include/dt-bindings/clock/bcm21664.h | 10 +-
include/dt-bindings/clock/bcm281xx.h | 10 +-
include/dt-bindings/clock/efm32-cmu.h | 43 -
include/dt-bindings/clock/exynos7885.h | 54 +-
include/dt-bindings/clock/nuvoton,npcm845-clk.h | 49 +
include/dt-bindings/clock/qcom,dispcc-sm8350.h | 1 +
include/dt-bindings/clock/qcom,gcc-ipq8074.h | 4 +
include/dt-bindings/clock/qcom,gcc-msm8939.h | 1 +
include/dt-bindings/clock/qcom,gpucc-sm8350.h | 52 +
include/dt-bindings/clock/qcom,sm8450-camcc.h | 159 +
include/dt-bindings/clock/r9a07g043-cpg.h | 20 +
include/dt-bindings/clock/sprd,ums512-clk.h | 397 +
include/dt-bindings/clock/sunplus,sp7021-clkc.h | 88 +
include/dt-bindings/clock/tegra234-clock.h | 105 +
include/dt-bindings/clock/ti-dra7-atl.h | 10 +-
include/dt-bindings/gpio/gpio.h | 3 +
include/dt-bindings/interconnect/fsl,imx8mp.h | 59 +
include/dt-bindings/interconnect/qcom,sm6350.h | 148 +
include/dt-bindings/mailbox/qcom-ipcc.h | 1 +
include/dt-bindings/memory/tegra234-mc.h | 26 +
include/dt-bindings/net/pcs-rzn1-miic.h | 33 +
include/dt-bindings/nvmem/microchip,sama7g5-otpc.h | 12 +
include/dt-bindings/pinctrl/hisi.h | 10 +-
include/dt-bindings/pinctrl/keystone.h | 10 +-
include/dt-bindings/pinctrl/r7s9210-pinctrl.h | 2 +-
include/dt-bindings/pinctrl/rzg2l-pinctrl.h | 2 +-
include/dt-bindings/pinctrl/rzv2m-pinctrl.h | 23 +
include/dt-bindings/power/mt6795-power.h | 16 +
include/dt-bindings/power/mt6797-power.h | 9 +-
include/dt-bindings/power/qcom-rpmpd.h | 7 +
include/dt-bindings/power/tegra234-powergate.h | 2 +
include/dt-bindings/reset/mt8186-resets.h | 5 +
include/dt-bindings/reset/mt8192-resets.h | 8 +
include/dt-bindings/reset/mt8195-resets.h | 6 +
include/dt-bindings/reset/sama7g5-reset.h | 10 +
include/dt-bindings/reset/sunplus,sp7021-reset.h | 87 +
include/dt-bindings/reset/tegra234-reset.h | 10 +
include/dt-bindings/soc/samsung,boot-mode.h | 18 +
include/dt-bindings/sound/qcom,wcd9335.h | 15 +
include/keys/asymmetric-type.h | 3 +
include/kunit/test.h | 63 +-
include/kvm/arm_vgic.h | 2 +-
include/linux/acpi.h | 19 +-
include/linux/acpi_iort.h | 14 +-
include/linux/acpi_viot.h | 2 +
include/linux/amd-iommu.h | 4 +
include/linux/aperture.h | 56 +
include/linux/arch_topology.h | 1 -
include/linux/atm_tcp.h | 2 +
include/linux/audit.h | 7 -
include/linux/backing-dev-defs.h | 7 -
include/linux/backing-dev.h | 25 +-
include/linux/balloon_compaction.h | 6 +-
include/linux/base64.h | 16 +
include/linux/bio.h | 11 +-
include/linux/bitmap.h | 37 +-
include/linux/bitops.h | 50 +
include/linux/blk-mq.h | 34 +-
include/linux/blk_types.h | 119 +-
include/linux/blkdev.h | 247 +-
include/linux/blktrace_api.h | 13 +-
include/linux/bpf-cgroup-defs.h | 13 +-
include/linux/bpf-cgroup.h | 9 +-
include/linux/bpf.h | 175 +-
include/linux/bpf_lsm.h | 7 +
include/linux/bpf_verifier.h | 14 +-
include/linux/bpfptr.h | 8 +-
include/linux/brcmphy.h | 1 +
include/linux/btf.h | 93 +-
include/linux/btf_ids.h | 71 +-
include/linux/buffer_head.h | 52 +-
include/linux/cacheinfo.h | 3 +
include/linux/can/bittiming.h | 2 +
include/linux/can/dev.h | 4 +
include/linux/can/skb.h | 59 +-
include/linux/ceph/ceph_fs.h | 8 +-
include/linux/ceph/mdsmap.h | 1 +
include/linux/ceph/osd_client.h | 5 +-
include/linux/cgroup-defs.h | 28 +-
include/linux/cgroup.h | 2 +-
include/linux/clk-provider.h | 36 +-
include/linux/clk.h | 134 +-
include/linux/clk/ti.h | 10 +-
include/linux/compiler-gcc.h | 11 -
include/linux/compiler_types.h | 2 +
include/linux/console.h | 17 -
include/linux/console_struct.h | 6 +-
include/linux/consolemap.h | 60 +-
include/linux/context_tracking.h | 95 +-
include/linux/context_tracking_irq.h | 21 +
include/linux/context_tracking_state.h | 113 +-
include/linux/coresight-pmu.h | 2 +
include/linux/cpu.h | 5 +
include/linux/cpuhotplug.h | 3 +-
include/linux/cpumask.h | 244 +-
include/linux/crc-itu-t.h | 2 +-
include/linux/damon.h | 25 +-
include/linux/dax.h | 56 +-
include/linux/dcache.h | 11 +-
include/linux/devfreq.h | 5 +
include/linux/device-mapper.h | 7 +-
include/linux/device.h | 2 +
include/linux/device/driver.h | 2 +-
include/linux/dim.h | 2 +-
include/linux/dm-bufio.h | 8 +-
include/linux/dm-io.h | 4 +-
include/linux/dm-verity-loadpin.h | 27 +
include/linux/dma-fence-unwrap.h | 76 +-
include/linux/dma-map-ops.h | 67 +
include/linux/dma-mapping.h | 10 +
include/linux/dma/edma.h | 61 +-
include/linux/dma/imx-dma.h | 13 +
include/linux/dma/qcom-gpi-dma.h | 2 +-
include/linux/dmaengine.h | 20 -
include/linux/dmar.h | 6 +-
include/linux/dsa/tag_qca.h | 5 +
include/linux/efi.h | 85 +-
include/linux/energy_model.h | 54 +-
include/linux/entry-common.h | 10 +-
include/linux/evm.h | 6 +-
include/linux/extcon.h | 2 +
include/linux/fanotify.h | 18 +-
include/linux/fb.h | 1 -
include/linux/fbcon.h | 4 +
include/linux/filter.h | 43 +-
include/linux/firmware/cirrus/cs_dsp.h | 77 +-
include/linux/firmware/intel/stratix10-smc.h | 175 +
.../linux/firmware/intel/stratix10-svc-client.h | 53 +-
include/linux/firmware/trusted_foundations.h | 8 +-
include/linux/firmware/xlnx-zynqmp.h | 12 +
include/linux/fpga/fpga-mgr.h | 24 +-
include/linux/fs.h | 208 +-
include/linux/fscache.h | 3 +-
include/linux/fscrypt.h | 5 +
include/linux/fsnotify_backend.h | 89 +-
include/linux/ftrace.h | 43 +
include/linux/fwnode.h | 4 +
include/linux/gfp.h | 348 +-
include/linux/gfp_types.h | 348 +
include/linux/gpio.h | 6 -
include/linux/gpio/driver.h | 71 +-
include/linux/gpio/machine.h | 1 +
include/linux/hardirq.h | 12 +-
include/linux/highmem-internal.h | 10 +-
include/linux/highmem.h | 48 +-
include/linux/hippidevice.h | 4 +
include/linux/hisi_acc_qm.h | 8 +-
include/linux/hmm.h | 4 +-
include/linux/host1x.h | 42 +
include/linux/huge_mm.h | 106 +-
include/linux/hugetlb.h | 52 +-
include/linux/hypervisor.h | 8 +
include/linux/i2c.h | 3 +-
include/linux/ieee80211.h | 380 +-
include/linux/if_eql.h | 1 +
include/linux/if_hsr.h | 4 +
include/linux/if_macvlan.h | 6 +-
include/linux/if_rmnet.h | 2 +
include/linux/if_tap.h | 11 +-
include/linux/if_team.h | 10 +-
include/linux/if_vlan.h | 10 +-
include/linux/iio/common/cros_ec_sensors_core.h | 9 +-
include/linux/iio/iio.h | 23 +-
include/linux/iio/trigger.h | 26 +-
include/linux/ima.h | 5 +
include/linux/inetdevice.h | 2 +-
include/linux/input/elan-i2c-ids.h | 5 +-
include/linux/interconnect.h | 7 +
include/linux/io-pgtable.h | 15 +-
include/linux/io_uring_types.h | 581 +
include/linux/iomap.h | 15 +-
include/linux/iommu.h | 27 +-
include/linux/ioport.h | 3 +
include/linux/ioprio.h | 24 +-
include/linux/iosys-map.h | 82 +-
include/linux/iova.h | 2 +
include/linux/irq.h | 35 +-
include/linux/irqchip/mmp.h | 3 +
include/linux/irqdesc.h | 5 +-
include/linux/isa-dma.h | 14 +
include/linux/jbd2.h | 8 +-
include/linux/jump_label.h | 9 +-
include/linux/kernel_read_file.h | 32 +-
include/linux/kernel_stat.h | 7 +
include/linux/kernfs.h | 59 +-
include/linux/kexec.h | 88 +-
include/linux/kfifo.h | 2 +-
include/linux/khugepaged.h | 30 -
include/linux/kmemleak.h | 8 +-
include/linux/kvm_host.h | 33 +-
include/linux/kvm_types.h | 9 +-
include/linux/lapb.h | 5 +
include/linux/libata.h | 52 +-
include/linux/libnvdimm.h | 5 +
include/linux/limits.h | 1 +
include/linux/lockd/lockd.h | 1 +
include/linux/lockd/xdr.h | 2 +
include/linux/lockdep.h | 30 +-
include/linux/lockref.h | 1 -
include/linux/lsm_hook_defs.h | 1 +
include/linux/lsm_hooks.h | 7 +
include/linux/mailbox/mtk-cmdq-mailbox.h | 10 -
include/linux/mbcache.h | 33 +-
include/linux/mdev.h | 5 -
include/linux/mdio/mdio-xgene.h | 4 +
include/linux/memcontrol.h | 74 +-
include/linux/memory_hotplug.h | 9 -
include/linux/memregion.h | 2 +-
include/linux/memremap.h | 35 +-
include/linux/mfd/bcm2835-pm.h | 1 +
include/linux/mfd/ipaq-micro.h | 4 +-
include/linux/mfd/lp873x.h | 10 +-
include/linux/mfd/max77714.h | 2 +-
include/linux/mfd/mt6331/core.h | 40 +
include/linux/mfd/mt6331/registers.h | 584 +
include/linux/mfd/mt6332/core.h | 65 +
include/linux/mfd/mt6332/registers.h | 642 +
include/linux/mfd/mt6357/core.h | 119 +
include/linux/mfd/mt6357/registers.h | 1574 +
include/linux/mfd/mt6397/core.h | 3 +
include/linux/mfd/t7l66xb.h | 1 -
include/linux/mfd/tc6387xb.h | 1 -
include/linux/mfd/tc6393xb.h | 2 +-
include/linux/mfd/tps65086.h | 10 +-
include/linux/mfd/tps65217.h | 10 +-
include/linux/mfd/tps65218.h | 10 +-
include/linux/mfd/tps65912.h | 10 +-
include/linux/mfd/twl.h | 57 -
include/linux/migrate.h | 79 +-
include/linux/mii.h | 35 +
include/linux/miscdevice.h | 2 +-
include/linux/mlx5/device.h | 36 +-
include/linux/mlx5/driver.h | 12 +-
include/linux/mlx5/eswitch.h | 8 +-
include/linux/mlx5/fs.h | 16 +
include/linux/mlx5/mlx5_ifc.h | 186 +-
include/linux/mlx5/mlx5_ifc_vdpa.h | 8 +
include/linux/mm.h | 160 +-
include/linux/mm_types.h | 12 +
include/linux/mmc/card.h | 9 +-
include/linux/mmc/host.h | 26 +
include/linux/mmc/mmc.h | 6 +
include/linux/mmc/sdio.h | 5 +
include/linux/mmdebug.h | 10 +
include/linux/mmu_notifier.h | 2 +-
include/linux/mmzone.h | 159 +-
include/linux/mnt_idmapping.h | 305 +-
include/linux/module.h | 5 +
include/linux/mpage.h | 2 -
include/linux/mroute_base.h | 15 +-
include/linux/mtd/hyperbus.h | 4 +-
include/linux/mtd/spi-nor.h | 4 +-
include/linux/mtd/spinand.h | 1 +
include/linux/net.h | 6 +-
include/linux/netdevice.h | 42 +-
include/linux/netfilter/nf_conntrack_h323.h | 109 +-
include/linux/netfilter/nf_conntrack_sip.h | 2 +-
include/linux/netfs.h | 77 +-
include/linux/nfs_fs.h | 9 +
include/linux/nfs_page.h | 3 +-
include/linux/nfs_ssc.h | 2 +-
include/linux/nfs_xdr.h | 1 +
include/linux/nl802154.h | 2 +
include/linux/nmi.h | 2 +
include/linux/nodemask.h | 24 +-
include/linux/nvme-auth.h | 41 +
include/linux/nvme.h | 219 +-
include/linux/objtool.h | 17 +-
include/linux/of.h | 7 +-
include/linux/of_gpio.h | 1 +
include/linux/of_platform.h | 22 +-
include/linux/once.h | 2 -
include/linux/once_lite.h | 20 +-
include/linux/page-flags.h | 57 +-
include/linux/pagemap.h | 35 +-
include/linux/pagevec.h | 11 -
include/linux/panic.h | 3 +-
include/linux/pci-doe.h | 77 +
include/linux/pci-ecam.h | 1 +
include/linux/pci-p2pdma.h | 27 -
include/linux/pci.h | 12 +-
include/linux/pci_ids.h | 4 +
include/linux/pcs-rzn1-miic.h | 18 +
include/linux/pcs/pcs-xpcs.h | 3 +-
include/linux/perf/riscv_pmu.h | 4 +
include/linux/perf_event.h | 2 +
include/linux/pgtable.h | 28 +
include/linux/phy.h | 9 +
include/linux/phy_fixed.h | 3 +
include/linux/pinctrl/pinctrl.h | 20 +
include/linux/pipe_fs_i.h | 29 +-
include/linux/platform_data/cros_ec_commands.h | 8 +-
include/linux/platform_data/cros_ec_proto.h | 8 +-
include/linux/platform_data/davinci_asp.h | 10 +-
include/linux/platform_data/gpio-davinci.h | 10 +-
include/linux/platform_data/uio_dmem_genirq.h | 10 +-
include/linux/platform_data/uio_pruss.h | 10 +-
include/linux/platform_data/usb-omap.h | 16 +-
include/linux/platform_data/video-imxfb.h | 70 -
include/linux/platform_data/x86/asus-wmi.h | 1 +
include/linux/platform_data/x86/p2sb.h | 28 +
include/linux/platform_data/x86/pmc_atom.h | 2 +-
include/linux/platform_data/x86/simatic-ipc-base.h | 2 -
include/linux/pm_opp.h | 322 +-
include/linux/pm_runtime.h | 5 +-
include/linux/pm_wakeirq.h | 14 +-
include/linux/pm_wakeup.h | 31 +-
include/linux/posix_acl.h | 1 +
include/linux/posix_acl_xattr.h | 34 +-
include/linux/ppp-comp.h | 2 +-
include/linux/ppp_channel.h | 2 +
include/linux/ppp_defs.h | 14 +
include/linux/printk.h | 11 -
include/linux/pstore.h | 4 +
include/linux/ptp_kvm.h | 2 +
include/linux/ptp_pch.h | 4 +
include/linux/pwm.h | 35 +-
include/linux/quotaops.h | 15 +-
include/linux/radix-tree.h | 2 +-
include/linux/random.h | 24 +-
include/linux/ratelimit_types.h | 12 +-
include/linux/rbtree.h | 2 +-
include/linux/rcupdate.h | 45 +-
include/linux/rcupdate_trace.h | 2 +-
include/linux/rcutiny.h | 27 +-
include/linux/rcutree.h | 11 +-
include/linux/refcount.h | 6 +-
include/linux/regmap.h | 141 +-
include/linux/regulator/consumer.h | 16 +-
include/linux/regulator/driver.h | 1 +
include/linux/remoteproc.h | 4 +-
include/linux/reset.h | 2 +-
include/linux/reset/bcm63xx_pmb.h | 10 +-
include/linux/rmap.h | 4 +-
include/linux/rtsx_usb.h | 2 -
include/linux/rv.h | 70 +
include/linux/scatterlist.h | 69 +
include/linux/sched.h | 19 +-
include/linux/sched/mm.h | 4 +-
include/linux/sched/rt.h | 8 -
include/linux/sched/task.h | 2 +-
include/linux/sched/topology.h | 1 +
include/linux/sched/user.h | 3 +-
include/linux/scmi_protocol.h | 151 +-
include/linux/security.h | 15 +-
include/linux/seq_file_net.h | 1 +
include/linux/serial.h | 15 +-
include/linux/serial_8250.h | 7 +-
include/linux/serial_core.h | 370 +-
include/linux/serial_s3c.h | 2 +-
include/linux/shmem_fs.h | 11 +
include/linux/shrinker.h | 33 +-
include/linux/skbuff.h | 277 +-
include/linux/skmsg.h | 4 +-
include/linux/soc/mediatek/mtk-mutex.h | 27 +
include/linux/soc/ti/knav_dma.h | 10 +-
include/linux/soc/ti/knav_qmss.h | 10 +-
include/linux/soc/ti/ti-msgmgr.h | 10 +-
include/linux/socket.h | 16 +-
include/linux/sockptr.h | 8 +
include/linux/soundwire/sdw.h | 8 +-
include/linux/soundwire/sdw_intel.h | 3 +
include/linux/spi/spi.h | 169 +-
include/linux/spmi.h | 3 +
include/linux/sram.h | 14 +-
include/linux/stmmac.h | 1 +
include/linux/sungem_phy.h | 2 +
include/linux/sunrpc/bc_xprt.h | 17 +-
include/linux/sunrpc/clnt.h | 5 +
include/linux/sunrpc/sched.h | 4 +-
include/linux/sunrpc/xdr.h | 27 +-
include/linux/sunrpc/xprt.h | 6 +-
include/linux/sunrpc/xprtmultipath.h | 7 +-
include/linux/surface_aggregator/controller.h | 149 +-
include/linux/surface_aggregator/device.h | 213 +-
include/linux/surface_aggregator/serial_hub.h | 75 +-
include/linux/swap.h | 15 +-
include/linux/swapops.h | 21 +-
include/linux/swiotlb.h | 17 +-
include/linux/sysctl.h | 6 +
include/linux/sysfs.h | 16 +
include/linux/tboot.h | 2 -
include/linux/tcp.h | 30 +
include/linux/thermal.h | 26 +-
include/linux/ti-emif-sram.h | 10 +-
include/linux/time64.h | 5 +-
include/linux/tpm_eventlog.h | 2 +-
include/linux/trace_events.h | 18 +
include/linux/tracepoint.h | 6 +-
include/linux/tty_buffer.h | 1 +
include/linux/tty_ldisc.h | 14 +
include/linux/tty_port.h | 2 +
include/linux/uacce.h | 6 +-
include/linux/uaccess.h | 4 +-
include/linux/ucb1400.h | 2 -
include/linux/uio.h | 52 +-
include/linux/usb.h | 2 +
include/linux/usb/audio-v2.h | 3 -
include/linux/usb/audio.h | 3 -
include/linux/usb/c67x00.h | 15 -
include/linux/usb/cdc-wdm.h | 4 -
include/linux/usb/cdc.h | 4 -
include/linux/usb/cdc_ncm.h | 4 +-
include/linux/usb/composite.h | 14 -
include/linux/usb/ehci_def.h | 14 -
include/linux/usb/ehci_pdriver.h | 14 -
include/linux/usb/g_hid.h | 14 -
include/linux/usb/gadget.h | 2 -
include/linux/usb/hcd.h | 15 +-
include/linux/usb/input.h | 4 -
include/linux/usb/isp1301.h | 10 -
include/linux/usb/m66592.h | 14 -
include/linux/usb/musb-ux500.h | 10 -
include/linux/usb/net2280.h | 14 -
include/linux/usb/of.h | 2 -
include/linux/usb/ohci_pdriver.h | 14 -
include/linux/usb/onboard_hub.h | 18 +
include/linux/usb/otg-fsm.h | 17 +-
include/linux/usb/pd.h | 38 +
include/linux/usb/phy_companion.h | 10 -
include/linux/usb/r8a66597.h | 14 -
include/linux/usb/rndis_host.h | 14 -
include/linux/usb/serial.h | 5 -
include/linux/usb/storage.h | 2 -
.../usb/typec/tcpm => include/linux/usb}/tcpci.h | 1 +
include/linux/usb/tegra_usb_phy.h | 10 -
include/linux/usb/typec.h | 23 +
include/linux/usb/typec_altmode.h | 2 +-
include/linux/usb/typec_mux.h | 44 +-
include/linux/usb/typec_retimer.h | 45 +
include/linux/usb/ulpi.h | 4 -
include/linux/usb/usb338x.h | 11 -
include/linux/usb/usbnet.h | 20 +-
include/linux/usb/xhci-dbgp.h | 4 -
include/linux/vdpa.h | 9 +-
include/linux/vfio.h | 106 +-
include/linux/vfio_pci_core.h | 77 +-
include/linux/virtio.h | 10 +
include/linux/virtio_anchor.h | 19 +
include/linux/virtio_config.h | 51 +-
include/linux/virtio_pci_modern.h | 9 +
include/linux/virtio_ring.h | 10 -
include/linux/visorbus.h | 344 -
include/linux/vmalloc.h | 1 +
include/linux/wait.h | 9 +-
include/linux/watch_queue.h | 2 +-
include/linux/wkup_m3_ipc.h | 10 +-
include/linux/workqueue.h | 67 +-
include/linux/writeback.h | 11 +-
include/linux/xarray.h | 16 +
include/linux/xattr.h | 2 +-
include/media/hevc-ctrls.h | 250 -
include/media/i2c/adv7343.h | 10 +-
include/media/i2c/adv7393.h | 10 +-
include/media/i2c/ov2659.h | 14 +-
include/media/media-entity.h | 98 +-
include/media/tpg/v4l2-tpg.h | 16 +
include/media/v4l2-async.h | 2 +
include/media/v4l2-common.h | 6 +-
include/media/v4l2-ctrls.h | 48 +-
include/media/v4l2-subdev.h | 34 +
include/media/videobuf2-v4l2.h | 10 +
include/net/9p/client.h | 49 +-
include/net/addrconf.h | 3 +
include/net/af_unix.h | 5 +-
include/net/af_vsock.h | 1 +
include/net/amt.h | 23 +
include/net/ax25.h | 1 +
include/net/ax88796.h | 6 +-
include/net/bluetooth/bluetooth.h | 71 +-
include/net/bluetooth/hci.h | 203 +-
include/net/bluetooth/hci_core.h | 234 +-
include/net/bluetooth/hci_sock.h | 2 +
include/net/bluetooth/hci_sync.h | 16 +
include/net/bluetooth/iso.h | 32 +
include/net/bluetooth/l2cap.h | 1 +
include/net/bond_options.h | 22 +-
include/net/bonding.h | 14 +-
include/net/cfg80211.h | 592 +-
include/net/codel_qdisc.h | 1 +
include/net/compat.h | 5 +-
include/net/datalink.h | 7 +
include/net/dcbevent.h | 2 +
include/net/dcbnl.h | 2 +
include/net/devlink.h | 118 +-
include/net/dn_dev.h | 1 +
include/net/dn_fib.h | 2 +
include/net/dn_neigh.h | 2 +
include/net/dn_nsp.h | 6 +
include/net/dn_route.h | 3 +
include/net/dropreason.h | 256 +
include/net/dsa.h | 9 +
include/net/erspan.h | 3 +
include/net/esp.h | 1 +
include/net/ethoc.h | 3 +
include/net/firewire.h | 5 +-
include/net/flow_dissector.h | 29 +
include/net/flow_offload.h | 14 +
include/net/fq.h | 4 +
include/net/fq_impl.h | 5 +-
include/net/garp.h | 2 +
include/net/genetlink.h | 5 +-
include/net/gtp.h | 4 +
include/net/gue.h | 3 +
include/net/hwbm.h | 2 +
include/net/ila.h | 2 +
include/net/inet6_connection_sock.h | 2 +
include/net/inet6_hashtables.h | 7 +-
include/net/inet_common.h | 6 +
include/net/inet_connection_sock.h | 13 +-
include/net/inet_frag.h | 3 +
include/net/inet_hashtables.h | 87 +-
include/net/inet_sock.h | 25 +-
include/net/ip.h | 6 +-
include/net/ip6_route.h | 20 +-
include/net/ip_tunnels.h | 17 +-
include/net/ipcomp.h | 2 +
include/net/ipconfig.h | 2 +
include/net/ipv6.h | 4 +-
include/net/llc_c_ac.h | 7 +
include/net/llc_c_st.h | 4 +
include/net/llc_s_ac.h | 4 +
include/net/llc_s_ev.h | 1 +
include/net/llc_s_st.h | 6 +
include/net/mac80211.h | 339 +-
include/net/mpls_iptunnel.h | 3 +
include/net/mptcp.h | 7 +-
include/net/mrp.h | 4 +
include/net/ncsi.h | 2 +
include/net/neighbour.h | 1 +
include/net/net_namespace.h | 8 +
include/net/netevent.h | 1 +
include/net/netfilter/nf_conntrack_core.h | 19 +
include/net/netfilter/nf_conntrack_timeout.h | 2 +-
include/net/netfilter/nf_flow_table.h | 21 +
include/net/netfilter/nf_nat.h | 2 +-
include/net/netfilter/nf_tables.h | 59 +-
include/net/netfilter/nf_tables_core.h | 10 -
include/net/netfilter/nf_tables_offload.h | 2 +-
include/net/netns/can.h | 1 +
include/net/netns/core.h | 2 +
include/net/netns/flow_table.h | 14 +
include/net/netns/generic.h | 1 +
include/net/netns/ipv4.h | 1 +
include/net/netns/mctp.h | 1 +
include/net/netns/mpls.h | 2 +
include/net/netns/nexthop.h | 1 +
include/net/netns/sctp.h | 3 +
include/net/netns/smc.h | 1 +
include/net/netns/unix.h | 8 +
include/net/netrom.h | 1 +
include/net/p8022.h | 5 +
include/net/phonet/pep.h | 3 +
include/net/phonet/phonet.h | 4 +
include/net/phonet/pn_dev.h | 5 +
include/net/pkt_cls.h | 2 +-
include/net/pkt_sched.h | 17 +
include/net/pptp.h | 3 +
include/net/protocol.h | 4 -
include/net/psnap.h | 5 +
include/net/raw.h | 20 +-
include/net/rawv6.h | 7 +-
include/net/regulatory.h | 3 +
include/net/rose.h | 4 +-
include/net/route.h | 9 +-
include/net/sch_generic.h | 19 -
include/net/secure_seq.h | 2 +
include/net/smc.h | 11 +-
include/net/sock.h | 204 +-
include/net/stp.h | 2 +
include/net/strparser.h | 11 +-
include/net/switchdev.h | 3 +
include/net/tcp.h | 28 +-
include/net/tls.h | 306 +-
include/net/transp_v6.h | 2 +
include/net/tun_proto.h | 3 +-
include/net/udp.h | 8 +-
include/net/udplite.h | 1 +
include/net/xdp_priv.h | 1 +
include/net/xdp_sock_drv.h | 25 +
include/net/xfrm.h | 8 +-
include/ras/ras_event.h | 1 -
include/rdma/ib_verbs.h | 13 +-
include/rdma/rdma_cm.h | 1 +
include/rv/automata.h | 75 +
include/rv/da_monitor.h | 544 +
include/rv/instrumentation.h | 29 +
include/scsi/libiscsi.h | 13 +-
include/scsi/libsas.h | 2 +-
include/scsi/sas.h | 42 +-
include/scsi/scsi_cmnd.h | 4 +-
include/scsi/scsi_device.h | 4 +-
include/scsi/scsi_host.h | 6 +-
include/scsi/scsi_transport_iscsi.h | 3 +-
include/soc/mscc/ocelot.h | 6 +
include/soc/qcom/qcom-spmi-pmic.h | 61 +
include/sound/control.h | 4 +-
include/sound/core.h | 14 +
include/sound/cs35l41.h | 7 +
include/sound/dmaengine_pcm.h | 2 +
include/sound/hda_codec.h | 1 -
include/sound/hdaudio.h | 1 +
include/sound/hdmi-codec.h | 4 +-
include/sound/madera-pdata.h | 2 +-
include/sound/pcm.h | 71 +-
include/sound/rawmidi.h | 6 +-
include/sound/simple_card_utils.h | 5 +-
include/sound/soc-acpi-intel-match.h | 2 +
include/sound/soc-card.h | 1 +
include/sound/soc-component.h | 7 +-
include/sound/soc-dai.h | 6 +
include/sound/soc.h | 17 +-
include/sound/sof.h | 1 +
include/sound/sof/dai-amd.h | 7 +
include/sound/sof/dai-intel.h | 2 +
include/sound/sof/dai.h | 2 +-
include/sound/sof/ipc4/header.h | 8 +
include/sound/sof/stream.h | 6 +-
include/target/iscsi/iscsi_target_core.h | 14 +
include/target/target_core_backend.h | 1 +
include/target/target_core_base.h | 4 +-
include/trace/events/9p.h | 48 +
include/trace/events/afs.h | 36 +-
include/trace/events/btrfs.h | 158 +
include/trace/events/devlink.h | 7 +-
include/trace/events/dlm.h | 118 +-
include/trace/events/f2fs.h | 22 +-
include/trace/events/fib.h | 6 +-
include/trace/events/fib6.h | 8 +-
include/trace/events/fscache.h | 2 +
include/trace/events/io_uring.h | 217 +-
include/trace/events/iocost.h | 2 +-
include/trace/events/iscsi.h | 4 +-
include/trace/events/jbd2.h | 12 +-
include/trace/events/kmem.h | 40 +-
include/trace/events/kvm.h | 2 +-
include/trace/events/libata.h | 1 +
include/trace/events/neigh.h | 2 +-
include/trace/events/net.h | 2 +-
include/trace/events/nilfs2.h | 4 +-
include/trace/events/power.h | 51 +
include/trace/events/qdisc.h | 4 +-
include/trace/events/qla.h | 4 +-
include/trace/events/rv.h | 142 +
include/trace/events/rwmmio.h | 97 +
include/trace/events/scmi.h | 56 +
include/trace/events/scsi.h | 35 +-
include/trace/events/skb.h | 89 +-
include/trace/events/sock.h | 6 +-
include/trace/events/spmi.h | 12 +-
include/trace/events/sunrpc.h | 34 +-
include/trace/events/thermal.h | 28 +-
include/trace/events/workqueue.h | 8 +-
include/trace/stages/stage1_struct_define.h | 3 +
include/trace/stages/stage2_data_offsets.h | 3 +
include/trace/stages/stage4_event_fields.h | 11 +-
include/trace/stages/stage5_get_offsets.h | 4 +
include/trace/stages/stage6_event_callback.h | 12 +
include/uapi/asm-generic/fcntl.h | 2 +
include/uapi/asm-generic/termbits-common.h | 1 +
include/uapi/drm/amdgpu_drm.h | 7 +-
include/uapi/drm/drm_fourcc.h | 14 +-
include/uapi/drm/i915_drm.h | 393 +-
include/uapi/linux/android/binder.h | 1 +
include/uapi/linux/atm_zatm.h | 47 +
include/uapi/linux/blkzoned.h | 2 +-
include/uapi/linux/bpf.h | 109 +-
include/uapi/linux/btf.h | 17 +-
include/uapi/linux/btrfs.h | 20 +-
include/uapi/linux/btrfs_tree.h | 2 +-
include/uapi/linux/can/bcm.h | 2 +-
include/uapi/linux/can/error.h | 20 +-
include/uapi/linux/connector.h | 2 +-
include/uapi/linux/cycx_cfm.h | 2 +-
include/uapi/linux/devlink.h | 31 +
include/uapi/linux/dm-ioctl.h | 12 +-
include/uapi/linux/dm-log-userspace.h | 2 +-
include/uapi/linux/dma-buf.h | 84 +
include/uapi/linux/elf.h | 1 +
include/uapi/linux/ethtool.h | 28 +-
include/uapi/linux/f2fs.h | 2 +-
include/uapi/linux/fanotify.h | 10 +-
include/uapi/linux/fiemap.h | 2 +-
include/uapi/linux/firewire-cdev.h | 12 +-
include/uapi/linux/fs.h | 2 +-
include/uapi/linux/fscrypt.h | 3 +-
include/uapi/linux/genetlink.h | 5 +-
include/uapi/linux/idxd.h | 6 +-
include/uapi/linux/if_alg.h | 2 +-
include/uapi/linux/if_arcnet.h | 6 +-
include/uapi/linux/if_ether.h | 1 +
include/uapi/linux/if_link.h | 1 +
include/uapi/linux/if_pppox.h | 4 +-
include/uapi/linux/if_tun.h | 2 +-
include/uapi/linux/igmp.h | 6 +-
include/uapi/linux/inet_diag.h | 2 +-
include/uapi/linux/inotify.h | 2 +-
include/uapi/linux/input.h | 11 +-
include/uapi/linux/io_uring.h | 119 +-
include/uapi/linux/ip.h | 4 +-
include/uapi/linux/ip_vs.h | 4 +-
include/uapi/linux/iso_fs.h | 4 +-
include/uapi/linux/jffs2.h | 8 +-
include/uapi/linux/kcov.h | 2 +-
include/uapi/linux/kfd_ioctl.h | 55 +-
include/uapi/linux/kvm.h | 119 +-
include/uapi/linux/loadpin.h | 22 +
include/uapi/linux/magic.h | 4 -
include/uapi/linux/media-bus-format.h | 6 +-
include/uapi/linux/minix_fs.h | 4 +-
include/uapi/linux/mmc/ioctl.h | 2 +-
include/uapi/linux/mptcp.h | 9 +-
include/uapi/linux/ndctl.h | 10 +-
include/uapi/linux/neighbour.h | 1 +
include/uapi/linux/net_dropmon.h | 4 +-
include/uapi/linux/netfilter/x_tables.h | 4 +-
include/uapi/linux/netfilter/xt_IDLETIMER.h | 17 +-
include/uapi/linux/netfilter_arp/arp_tables.h | 6 +-
include/uapi/linux/netfilter_bridge/ebt_among.h | 2 +-
include/uapi/linux/netfilter_ipv4/ip_tables.h | 6 +-
include/uapi/linux/netfilter_ipv6/ip6_tables.h | 4 +-
include/uapi/linux/netfilter_ipv6/ip6t_LOG.h | 2 +-
include/uapi/linux/nl80211.h | 107 +-
include/uapi/linux/pci_regs.h | 29 +-
include/uapi/linux/perf_event.h | 7 +-
include/uapi/linux/pkt_cls.h | 7 +-
include/uapi/linux/raid/md_p.h | 2 +-
include/uapi/linux/random.h | 2 +-
include/uapi/linux/romfs_fs.h | 4 +-
include/uapi/linux/rtnetlink.h | 2 +-
include/uapi/linux/sctp.h | 10 +-
include/uapi/linux/seg6.h | 2 +-
include/uapi/linux/seg6_iptunnel.h | 4 +-
include/uapi/linux/serial.h | 20 +-
include/uapi/linux/serial_core.h | 4 -
include/uapi/linux/serial_reg.h | 4 +-
include/uapi/linux/smc.h | 1 +
include/uapi/linux/snmp.h | 2 +
include/uapi/linux/stm.h | 2 +-
include/uapi/linux/swab.h | 6 +-
include/uapi/linux/sysctl.h | 37 +-
include/uapi/linux/target_core_user.h | 2 +-
include/uapi/linux/tls.h | 6 +-
include/uapi/linux/tty.h | 3 +-
include/uapi/linux/ublk_cmd.h | 227 +
include/uapi/linux/usb/audio.h | 2 +-
include/uapi/linux/usb/cdc.h | 19 +-
include/uapi/linux/usb/ch9.h | 2 +-
include/uapi/linux/usb/raw_gadget.h | 4 +-
include/uapi/linux/usbdevice_fs.h | 4 +-
include/uapi/linux/v4l2-controls.h | 459 +
include/uapi/linux/vduse.h | 47 +
include/uapi/linux/vfio_zdev.h | 7 +
include/uapi/linux/vhost.h | 9 +
include/uapi/linux/vhost_types.h | 6 +-
include/uapi/linux/videodev2.h | 39 +
include/uapi/linux/virtio_9p.h | 2 +-
include/uapi/linux/virtio_config.h | 7 +-
include/uapi/linux/virtio_net.h | 34 +-
include/uapi/linux/virtio_pci.h | 2 +
include/uapi/linux/xfrm.h | 16 +-
include/uapi/misc/habanalabs.h | 541 +-
include/uapi/mtd/mtd-abi.h | 4 +-
include/uapi/rdma/erdma-abi.h | 49 +
include/uapi/rdma/hfi/hfi1_user.h | 2 +-
include/uapi/rdma/ib_user_ioctl_verbs.h | 1 +
include/uapi/rdma/ib_user_verbs.h | 72 +-
include/uapi/rdma/mlx5_user_ioctl_cmds.h | 17 +
include/uapi/rdma/mlx5_user_ioctl_verbs.h | 1 +
include/uapi/rdma/rdma_user_cm.h | 2 +-
include/uapi/rdma/rdma_user_ioctl_cmds.h | 2 +-
include/uapi/scsi/fc/fc_els.h | 18 +-
include/uapi/scsi/scsi_bsg_fc.h | 2 +-
include/uapi/sound/asound.h | 2 +-
include/uapi/sound/compress_offload.h | 2 +-
include/uapi/sound/compress_params.h | 6 +-
include/uapi/sound/firewire.h | 6 +-
include/uapi/sound/skl-tplg-interface.h | 2 +-
include/uapi/sound/sof/abi.h | 4 +-
include/uapi/sound/sof/header.h | 32 +-
include/uapi/sound/sof/tokens.h | 44 +
include/uapi/sound/usb_stream.h | 2 +-
include/ufs/ufshcd.h | 21 +-
include/ufs/unipro.h | 104 +-
include/video/of_display_timing.h | 2 +
include/xen/arm/xen-ops.h | 18 +
include/xen/grant_table.h | 4 +
include/xen/hvm.h | 2 +
include/xen/interface/hvm/hvm_op.h | 19 +
include/xen/xen-ops.h | 22 +
init/Kconfig | 335 +-
init/init_task.c | 1 +
init/main.c | 1 +
init/version.c | 17 +
io_uring/Makefile | 11 +
io_uring/advise.c | 99 +
io_uring/advise.h | 7 +
io_uring/alloc_cache.h | 53 +
io_uring/cancel.c | 315 +
io_uring/cancel.h | 23 +
io_uring/epoll.c | 65 +
io_uring/epoll.h | 6 +
io_uring/fdinfo.c | 194 +
io_uring/fdinfo.h | 3 +
io_uring/filetable.c | 193 +
io_uring/filetable.h | 88 +
io_uring/fs.c | 293 +
io_uring/fs.h | 20 +
{fs => io_uring}/io-wq.c | 21 +-
io_uring/io-wq.h | 83 +
io_uring/io_uring.c | 3966 +
io_uring/io_uring.h | 304 +
io_uring/kbuf.c | 549 +
io_uring/kbuf.h | 140 +
io_uring/msg_ring.c | 171 +
io_uring/msg_ring.h | 4 +
io_uring/net.c | 1250 +
io_uring/net.h | 63 +
io_uring/nop.c | 25 +
io_uring/nop.h | 4 +
io_uring/notif.c | 157 +
io_uring/notif.h | 90 +
io_uring/opdef.c | 510 +
io_uring/opdef.h | 42 +
io_uring/openclose.c | 256 +
io_uring/openclose.h | 14 +
io_uring/poll.c | 965 +
io_uring/poll.h | 39 +
io_uring/refs.h | 48 +
io_uring/rsrc.c | 1420 +
io_uring/rsrc.h | 181 +
io_uring/rw.c | 1049 +
io_uring/rw.h | 23 +
fs/io-wq.h => io_uring/slist.h | 100 +-
io_uring/splice.c | 122 +
io_uring/splice.h | 7 +
io_uring/sqpoll.c | 421 +
io_uring/sqpoll.h | 29 +
io_uring/statx.c | 73 +
io_uring/statx.h | 5 +
io_uring/sync.c | 110 +
io_uring/sync.h | 10 +
io_uring/tctx.c | 340 +
io_uring/tctx.h | 31 +
io_uring/timeout.c | 644 +
io_uring/timeout.h | 36 +
io_uring/uring_cmd.c | 119 +
io_uring/uring_cmd.h | 13 +
io_uring/xattr.c | 258 +
io_uring/xattr.h | 15 +
ipc/mqueue.c | 2 +-
ipc/namespace.c | 5 +-
kernel/audit.c | 4 +-
kernel/auditsc.c | 27 +-
kernel/bpf/arraymap.c | 46 +-
kernel/bpf/bpf_iter.c | 23 +-
kernel/bpf/bpf_lsm.c | 85 +
kernel/bpf/bpf_struct_ops.c | 10 +-
kernel/bpf/btf.c | 370 +-
kernel/bpf/cgroup.c | 416 +-
kernel/bpf/core.c | 140 +-
kernel/bpf/devmap.c | 6 +-
kernel/bpf/hashtab.c | 14 +-
kernel/bpf/helpers.c | 24 +-
kernel/bpf/local_storage.c | 2 +-
kernel/bpf/lpm_trie.c | 2 +-
kernel/bpf/percpu_freelist.c | 20 +-
kernel/bpf/preload/iterators/Makefile | 10 +-
kernel/bpf/reuseport_array.c | 9 +-
kernel/bpf/syscall.c | 88 +-
kernel/bpf/trampoline.c | 429 +-
kernel/bpf/verifier.c | 487 +-
kernel/cfi.c | 22 +-
kernel/cgroup/cgroup-internal.h | 1 +
kernel/cgroup/cgroup-v1.c | 17 +-
kernel/cgroup/cgroup.c | 173 +-
kernel/cgroup/cpuset.c | 2 +-
kernel/cgroup/rstat.c | 44 +-
kernel/configs/android-base.config | 1 -
kernel/configs/x86_debug.config | 3 +-
kernel/configs/xen.config | 1 -
kernel/context_tracking.c | 617 +-
kernel/cpu_pm.c | 8 +-
kernel/crash_core.c | 28 +-
kernel/dma/coherent.c | 10 +-
kernel/dma/debug.c | 2 +-
kernel/dma/direct.c | 48 +-
kernel/dma/direct.h | 8 +-
kernel/dma/mapping.c | 47 +-
kernel/dma/swiotlb.c | 269 +-
kernel/entry/common.c | 16 +-
kernel/entry/kvm.c | 6 -
kernel/events/core.c | 84 +-
kernel/events/ring_buffer.c | 5 +-
kernel/exit.c | 4 +-
kernel/extable.c | 4 +-
kernel/fork.c | 20 +-
kernel/groups.c | 13 +
kernel/hung_task.c | 13 +-
kernel/irq/Kconfig | 2 +
kernel/irq/chip.c | 16 +-
kernel/irq/debugfs.c | 2 +-
kernel/irq/generic-chip.c | 2 +-
kernel/irq/ipi.c | 16 +-
kernel/irq/irqdesc.c | 2 +-
kernel/irq/irqdomain.c | 14 +-
kernel/irq/manage.c | 10 +-
kernel/irq/pm.c | 2 -
kernel/jump_label.c | 41 +-
kernel/kallsyms.c | 114 +-
kernel/kallsyms_internal.h | 30 +
kernel/kcsan/.kunitconfig | 24 +
kernel/kexec_core.c | 27 -
kernel/kexec_file.c | 104 +-
kernel/kprobes.c | 3 +-
kernel/kthread.c | 14 +-
kernel/locking/lockdep.c | 11 +-
kernel/locking/rwsem.c | 30 +-
kernel/module/Kconfig | 293 +
kernel/module/decompress.c | 8 +-
kernel/module/internal.h | 15 +-
kernel/module/kallsyms.c | 76 +-
kernel/module/main.c | 65 +-
kernel/module/procfs.c | 2 +-
kernel/nsproxy.c | 3 +-
kernel/panic.c | 5 +-
kernel/power/Kconfig | 20 +
kernel/power/energy_model.c | 24 +-
kernel/power/hibernate.c | 2 +-
kernel/power/qos.c | 4 +-
kernel/power/swap.c | 29 +-
kernel/power/user.c | 13 +-
kernel/printk/printk.c | 600 +-
kernel/profile.c | 15 +-
kernel/ptrace.c | 2 +-
kernel/rcu/Kconfig | 31 +
kernel/rcu/Kconfig.debug | 5 +-
kernel/rcu/rcu.h | 19 +-
kernel/rcu/rcuscale.c | 1 +
kernel/rcu/rcutorture.c | 247 +-
kernel/rcu/refscale.c | 18 +-
kernel/rcu/srcutree.c | 98 +-
kernel/rcu/tasks.h | 541 +-
kernel/rcu/tiny.c | 25 +-
kernel/rcu/tree.c | 662 +-
kernel/rcu/tree.h | 21 +-
kernel/rcu/tree_exp.h | 115 +-
kernel/rcu/tree_nocb.h | 266 +-
kernel/rcu/tree_plugin.h | 82 +-
kernel/rcu/tree_stall.h | 57 +-
kernel/rcu/update.c | 15 +-
kernel/reboot.c | 101 +-
kernel/resource.c | 185 +-
kernel/rseq.c | 23 +-
kernel/sched/core.c | 299 +-
kernel/sched/core_sched.c | 15 +-
kernel/sched/cpufreq_schedutil.c | 5 +-
kernel/sched/cputime.c | 15 +
kernel/sched/deadline.c | 11 +-
kernel/sched/fair.c | 818 +-
kernel/sched/features.h | 3 +-
kernel/sched/idle.c | 10 +-
kernel/sched/pelt.h | 40 +-
kernel/sched/psi.c | 19 +-
kernel/sched/rt.c | 15 +-
kernel/sched/sched.h | 76 +-
kernel/sched/topology.c | 23 +-
kernel/signal.c | 8 +-
kernel/smp.c | 4 +-
kernel/softirq.c | 4 +-
kernel/sysctl.c | 118 +-
kernel/time/Kconfig | 37 +-
kernel/time/hrtimer.c | 1 +
kernel/time/posix-stubs.c | 3 +-
kernel/time/posix-timers.c | 19 +-
kernel/time/tick-sched.c | 3 +-
kernel/time/time.c | 4 +-
kernel/time/timekeeping.c | 7 +-
kernel/trace/Kconfig | 5 +-
kernel/trace/Makefile | 1 +
kernel/trace/blktrace.c | 75 +-
kernel/trace/bpf_trace.c | 70 +-
kernel/trace/ftrace.c | 341 +-
kernel/trace/rethook.c | 9 +
kernel/trace/rv/Kconfig | 78 +
kernel/trace/rv/Makefile | 8 +
kernel/trace/rv/monitors/wip/wip.c | 88 +
kernel/trace/rv/monitors/wip/wip.h | 46 +
kernel/trace/rv/monitors/wwnr/wwnr.c | 87 +
kernel/trace/rv/monitors/wwnr/wwnr.h | 46 +
kernel/trace/rv/reactor_panic.c | 43 +
kernel/trace/rv/reactor_printk.c | 42 +
kernel/trace/rv/rv.c | 799 +
kernel/trace/rv/rv.h | 68 +
kernel/trace/rv/rv_reactors.c | 510 +
kernel/trace/trace.c | 56 +-
kernel/trace/trace.h | 9 +
kernel/trace/trace_dynevent.c | 2 +-
kernel/trace/trace_eprobe.c | 37 +-
kernel/trace/trace_events_hist.c | 7 +-
kernel/trace/trace_events_user.c | 2 +-
kernel/trace/trace_kprobe.c | 27 +-
kernel/trace/trace_probe.c | 4 +
kernel/trace/trace_probe.h | 5 +-
kernel/trace/trace_uprobe.c | 20 +-
kernel/watch_queue.c | 105 +-
kernel/watchdog.c | 25 +-
kernel/watchdog_hld.c | 4 -
kernel/workqueue.c | 30 +-
lib/Kconfig | 19 +-
lib/Kconfig.debug | 21 +-
lib/Kconfig.ubsan | 5 +-
lib/Makefile | 13 +-
lib/base64.c | 103 +
lib/bitmap.c | 11 +-
lib/btree.c | 30 +-
lib/cpumask.c | 99 +-
lib/crc-itu-t.c | 2 +-
lib/crypto/Kconfig | 4 +
lib/crypto/Makefile | 3 +
lib/crypto/blake2s-selftest.c | 41 +
lib/crypto/blake2s.c | 37 +-
lib/{ => crypto}/sha1.c | 3 +
lib/devres.c | 15 +-
lib/error-inject.c | 28 +-
lib/flex_proportions.c | 10 +-
lib/idr.c | 3 +-
lib/iov_iter.c | 1148 +-
lib/kunit/executor.c | 125 +-
lib/kunit/executor_test.c | 144 +-
lib/kunit/test.c | 58 +-
lib/list_debug.c | 12 +-
lib/livepatch/test_klp_callbacks_busy.c | 8 +
lib/lockref.c | 25 -
lib/lru_cache.c | 4 +-
lib/lz4/lz4_decompress.c | 6 +-
lib/lzo/lzo1x_compress.c | 6 +-
{crypto => lib}/memneq.c | 0
lib/mpi/mpi-add.c | 2 +-
lib/mpi/mpi-mul.c | 1 +
lib/mpi/mpiutil.c | 2 +-
lib/nodemask.c | 31 -
lib/overflow_kunit.c | 6 +
lib/radix-tree.c | 4 +-
lib/sbitmap.c | 5 +-
lib/scatterlist.c | 4 +-
lib/smp_processor_id.c | 2 +-
lib/stackdepot.c | 59 +-
lib/test_bitmap.c | 68 +
lib/test_bpf.c | 4 +-
lib/test_cpumask.c | 138 +
lib/test_free_pages.c | 2 +-
lib/test_hmm.c | 347 +-
lib/test_hmm_uapi.h | 19 +-
lib/test_kasan.c | 10 +
lib/test_printf.c | 21 +-
lib/test_vmalloc.c | 15 +-
lib/trace_readwrite.c | 47 +
lib/ts_bm.c | 2 +-
lib/vsprintf.c | 3 +-
lib/xarray.c | 5 +-
mm/Kconfig | 20 +-
mm/Makefile | 1 +
mm/backing-dev.c | 11 +-
mm/balloon_compaction.c | 10 +-
mm/cma_debug.c | 2 +-
mm/compaction.c | 39 +-
mm/damon/Kconfig | 8 +
mm/damon/Makefile | 1 +
mm/damon/dbgfs.c | 79 +-
mm/damon/lru_sort.c | 548 +
mm/damon/ops-common.c | 42 +
mm/damon/ops-common.h | 2 +
mm/damon/paddr.c | 60 +-
mm/damon/reclaim.c | 50 +-
mm/damon/sysfs.c | 69 +-
mm/damon/vaddr.c | 3 +-
mm/debug_vm_pgtable.c | 2 +-
mm/filemap.c | 185 +-
mm/folio-compat.c | 22 -
mm/frontswap.c | 2 +-
mm/gup.c | 96 +-
mm/gup_test.c | 2 +-
mm/highmem.c | 4 +-
mm/hmm.c | 19 +-
mm/huge_memory.c | 201 +-
mm/hugetlb.c | 266 +-
mm/hugetlb_cgroup.c | 1 +
mm/hugetlb_vmemmap.c | 633 +-
mm/hugetlb_vmemmap.h | 45 +-
mm/hwpoison-inject.c | 2 +-
mm/internal.h | 21 +
mm/ioremap.c | 26 +-
mm/kasan/common.c | 11 +-
mm/kasan/hw_tags.c | 32 +-
mm/kasan/kasan.h | 3 +-
mm/kasan/report.c | 12 +-
mm/kasan/shadow.c | 29 +-
mm/kfence/core.c | 29 +-
mm/khugepaged.c | 230 +-
mm/kmemleak.c | 260 +-
mm/ksm.c | 12 +-
mm/list_lru.c | 2 +-
mm/madvise.c | 16 +-
mm/memblock.c | 46 +-
mm/memcontrol.c | 226 +-
mm/memory-failure.c | 523 +-
mm/memory.c | 63 +-
mm/memory_hotplug.c | 57 +-
mm/mempolicy.c | 10 +-
mm/mempool.c | 2 +-
mm/memremap.c | 22 +-
mm/migrate.c | 282 +-
mm/migrate_device.c | 83 +-
mm/mlock.c | 2 +-
mm/mmap.c | 53 +-
mm/mprotect.c | 81 +-
mm/nommu.c | 2 +-
mm/page-writeback.c | 89 +-
mm/page_alloc.c | 472 +-
mm/page_isolation.c | 2 +
mm/page_vma_mapped.c | 5 +-
mm/percpu.c | 6 +-
mm/readahead.c | 4 +
mm/rmap.c | 141 +-
mm/secretmem.c | 55 +-
mm/shmem.c | 106 +-
mm/shrinker_debug.c | 286 +
mm/slab.c | 30 +-
mm/slab.h | 39 +-
mm/slab_common.c | 36 +-
mm/slob.c | 33 +-
mm/slub.c | 141 +-
mm/sparse-vmemmap.c | 399 +-
mm/sparse.c | 2 +-
mm/swap.c | 630 +-
mm/swap.h | 19 +-
mm/swap_slots.c | 2 +-
mm/swap_state.c | 60 +-
mm/swapfile.c | 31 +-
mm/truncate.c | 2 +-
mm/usercopy.c | 26 +-
mm/userfaultfd.c | 5 +-
mm/util.c | 6 +-
mm/vmalloc.c | 150 +-
mm/vmscan.c | 388 +-
mm/workingset.c | 2 +-
mm/z3fold.c | 84 +-
mm/zsmalloc.c | 118 +-
net/6lowpan/nhc.c | 103 +-
net/6lowpan/nhc.h | 38 +-
net/6lowpan/nhc_dest.c | 9 +-
net/6lowpan/nhc_fragment.c | 9 +-
net/6lowpan/nhc_ghc_ext_dest.c | 9 +-
net/6lowpan/nhc_ghc_ext_frag.c | 11 +-
net/6lowpan/nhc_ghc_ext_hop.c | 9 +-
net/6lowpan/nhc_ghc_ext_route.c | 9 +-
net/6lowpan/nhc_ghc_icmpv6.c | 9 +-
net/6lowpan/nhc_ghc_udp.c | 9 +-
net/6lowpan/nhc_hop.c | 9 +-
net/6lowpan/nhc_ipv6.c | 11 +-
net/6lowpan/nhc_mobility.c | 9 +-
net/6lowpan/nhc_routing.c | 9 +-
net/6lowpan/nhc_udp.c | 9 +-
net/8021q/vlan_core.c | 6 +-
net/8021q/vlan_dev.c | 22 +-
net/8021q/vlan_netlink.c | 10 +-
net/9p/client.c | 293 +-
net/9p/protocol.c | 3 +-
net/9p/trans_fd.c | 13 +-
net/9p/trans_rdma.c | 2 +-
net/9p/trans_virtio.c | 41 +-
net/9p/trans_xen.c | 2 +-
net/ax25/af_ax25.c | 40 +-
net/ax25/ax25_dev.c | 9 +-
net/ax25/ax25_timer.c | 4 +-
net/batman-adv/trace.h | 9 +-
net/bluetooth/Kconfig | 1 +
net/bluetooth/Makefile | 1 +
net/bluetooth/af_bluetooth.c | 4 +-
net/bluetooth/aosp.c | 15 +-
net/bluetooth/eir.c | 62 +-
net/bluetooth/eir.h | 1 +
net/bluetooth/hci_conn.c | 893 +-
net/bluetooth/hci_core.c | 572 +-
net/bluetooth/hci_event.c | 536 +-
net/bluetooth/hci_request.c | 429 +-
net/bluetooth/hci_request.h | 16 +-
net/bluetooth/hci_sock.c | 11 +-
net/bluetooth/hci_sync.c | 635 +-
net/bluetooth/iso.c | 1835 +
net/bluetooth/l2cap_core.c | 69 +-
net/bluetooth/lib.c | 71 +
net/bluetooth/mgmt.c | 346 +-
net/bluetooth/msft.c | 284 +-
net/bluetooth/msft.h | 6 +-
net/bpf/test_run.c | 85 +-
net/bridge/br_if.c | 10 +-
net/bridge/br_mdb.c | 15 +-
net/bridge/br_netfilter_hooks.c | 21 +-
net/bridge/br_netlink.c | 16 +-
net/bridge/br_vlan.c | 36 +-
net/bridge/netfilter/nft_meta_bridge.c | 2 +-
net/caif/caif_socket.c | 20 +-
net/can/Kconfig | 5 +-
net/can/bcm.c | 18 +-
net/can/j1939/socket.c | 5 +-
net/can/j1939/transport.c | 8 +-
net/ceph/osd_client.c | 15 +-
net/ceph/osdmap.c | 32 +-
net/ceph/pagelist.c | 2 +-
net/compat.c | 40 +-
net/core/.gitignore | 1 +
net/core/Makefile | 23 +-
net/core/bpf_sk_storage.c | 12 +-
net/core/datagram.c | 20 +-
net/core/dev.c | 82 +-
net/core/dev_ioctl.c | 4 +-
net/core/devlink.c | 1655 +-
net/core/drop_monitor.c | 36 +-
net/core/dst.c | 8 +-
net/core/failover.c | 4 +-
net/core/filter.c | 246 +-
net/core/flow_dissector.c | 53 +-
net/core/flow_offload.c | 20 +
net/core/link_watch.c | 2 +-
net/core/neighbour.c | 50 +-
net/core/net-sysfs.c | 9 +-
net/core/net_namespace.c | 7 +
net/core/netpoll.c | 2 +-
net/core/page_pool.c | 5 +-
net/core/pktgen.c | 6 +-
net/core/secure_seq.c | 4 +-
net/core/skbuff.c | 68 +-
net/core/skmsg.c | 65 +-
net/core/sock.c | 34 +-
net/core/sock_map.c | 43 +-
net/core/sock_reuseport.c | 4 +-
net/core/stream.c | 6 +-
net/dccp/proto.c | 43 +-
net/decnet/af_decnet.c | 8 +-
net/decnet/dn_neigh.c | 1 +
net/decnet/dn_route.c | 2 +-
net/dsa/Kconfig | 11 +-
net/dsa/Makefile | 1 +
net/dsa/port.c | 7 +-
net/dsa/slave.c | 37 +-
net/dsa/switch.c | 1 +
net/dsa/tag_brcm.c | 4 +-
net/dsa/tag_ksz.c | 59 +
net/dsa/tag_rzn1_a5psw.c | 113 +
net/ethtool/cabletest.c | 2 +-
net/ethtool/eeprom.c | 2 +-
net/ethtool/ioctl.c | 21 +-
net/ethtool/netlink.c | 6 +-
net/ethtool/netlink.h | 2 +-
net/hsr/hsr_debugfs.c | 10 +-
net/ipv4/af_inet.c | 35 +-
net/ipv4/ah4.c | 2 +-
net/ipv4/arp.c | 25 +-
net/ipv4/bpf_tcp_ca.c | 57 +-
net/ipv4/cipso_ipv4.c | 12 +-
net/ipv4/devinet.c | 4 +-
net/ipv4/esp4.c | 6 +-
net/ipv4/fib_semantics.c | 17 +-
net/ipv4/fib_trie.c | 9 +-
net/ipv4/icmp.c | 22 +-
net/ipv4/igmp.c | 49 +-
net/ipv4/inet_connection_sock.c | 252 +-
net/ipv4/inet_hashtables.c | 203 +-
net/ipv4/inet_timewait_sock.c | 3 +-
net/ipv4/inetpeer.c | 12 +-
net/ipv4/ip_forward.c | 2 +-
net/ipv4/ip_gre.c | 26 +-
net/ipv4/ip_input.c | 37 +-
net/ipv4/ip_output.c | 60 +-
net/ipv4/ip_sockglue.c | 8 +-
net/ipv4/ip_tunnel.c | 21 +-
net/ipv4/ip_tunnel_core.c | 2 +-
net/ipv4/ipconfig.c | 14 +-
net/ipv4/ipmr.c | 217 +-
net/ipv4/ipmr_base.c | 53 +-
net/ipv4/netfilter/nf_nat_h323.c | 42 +-
net/ipv4/netfilter/nf_reject_ipv4.c | 4 +-
net/ipv4/nexthop.c | 5 +-
net/ipv4/ping.c | 46 +-
net/ipv4/proc.c | 2 +-
net/ipv4/raw.c | 172 +-
net/ipv4/raw_diag.c | 57 +-
net/ipv4/route.c | 75 +-
net/ipv4/syncookies.c | 11 +-
net/ipv4/sysctl_net_ipv4.c | 77 +-
net/ipv4/tcp.c | 239 +-
net/ipv4/tcp_bbr.c | 24 +-
net/ipv4/tcp_bpf.c | 4 +-
net/ipv4/tcp_cubic.c | 20 +-
net/ipv4/tcp_dctcp.c | 20 +-
net/ipv4/tcp_fastopen.c | 9 +-
net/ipv4/tcp_input.c | 103 +-
net/ipv4/tcp_ipv4.c | 17 +-
net/ipv4/tcp_metrics.c | 13 +-
net/ipv4/tcp_minisocks.c | 4 +-
net/ipv4/tcp_output.c | 92 +-
net/ipv4/tcp_recovery.c | 6 +-
net/ipv4/tcp_timer.c | 49 +-
net/ipv4/udp.c | 33 +-
net/ipv4/udplite.c | 3 +
net/ipv4/xfrm4_policy.c | 2 +-
net/ipv4/xfrm4_protocol.c | 1 -
net/ipv6/Kconfig | 1 +
net/ipv6/addrconf.c | 78 +-
net/ipv6/addrconf_core.c | 2 +-
net/ipv6/af_inet6.c | 8 +-
net/ipv6/esp6.c | 4 +-
net/ipv6/icmp.c | 2 +-
net/ipv6/ip6_gre.c | 66 +-
net/ipv6/ip6_input.c | 23 +-
net/ipv6/ip6_output.c | 58 +-
net/ipv6/ip6_tunnel.c | 22 +-
net/ipv6/ip6_vti.c | 4 +-
net/ipv6/ip6mr.c | 301 +-
net/ipv6/mcast.c | 14 +-
net/ipv6/ndisc.c | 30 +-
net/ipv6/ping.c | 12 +-
net/ipv6/raw.c | 120 +-
net/ipv6/route.c | 23 +-
net/ipv6/seg6_hmac.c | 2 -
net/ipv6/seg6_iptunnel.c | 145 +-
net/ipv6/seg6_local.c | 13 +-
net/ipv6/sit.c | 20 +-
net/ipv6/syncookies.c | 3 +-
net/ipv6/tcp_ipv6.c | 21 +-
net/ipv6/udp.c | 12 +-
net/ipv6/udplite.c | 3 +
net/ipv6/xfrm6_policy.c | 4 +-
net/iucv/af_iucv.c | 2 -
net/key/af_key.c | 6 +-
net/l2tp/l2tp_debugfs.c | 6 +-
net/l2tp/l2tp_ip6.c | 5 +-
net/l2tp/l2tp_ppp.c | 2 +-
net/llc/af_llc.c | 2 +-
net/mac80211/agg-rx.c | 6 +-
net/mac80211/agg-tx.c | 6 +-
net/mac80211/airtime.c | 4 +-
net/mac80211/cfg.c | 971 +-
net/mac80211/chan.c | 685 +-
net/mac80211/debug.h | 33 +
net/mac80211/debugfs.c | 104 +-
net/mac80211/debugfs_key.c | 10 +-
net/mac80211/debugfs_netdev.c | 52 +-
net/mac80211/debugfs_sta.c | 24 +-
net/mac80211/driver-ops.c | 8 +-
net/mac80211/driver-ops.h | 120 +-
net/mac80211/eht.c | 9 +-
net/mac80211/ethtool.c | 26 +-
net/mac80211/he.c | 17 +-
net/mac80211/ht.c | 57 +-
net/mac80211/ibss.c | 99 +-
net/mac80211/ieee80211_i.h | 702 +-
net/mac80211/iface.c | 369 +-
net/mac80211/key.c | 78 +-
net/mac80211/key.h | 9 +-
net/mac80211/main.c | 234 +-
net/mac80211/mesh.c | 50 +-
net/mac80211/mesh_hwmp.c | 15 +-
net/mac80211/mesh_plink.c | 20 +-
net/mac80211/mlme.c | 5885 +-
net/mac80211/ocb.c | 15 +-
net/mac80211/offchannel.c | 88 +-
net/mac80211/rate.c | 28 +-
net/mac80211/rate.h | 10 +-
net/mac80211/rx.c | 254 +-
net/mac80211/scan.c | 14 +-
net/mac80211/spectmgmt.c | 16 +-
net/mac80211/sta_info.c | 518 +-
net/mac80211/sta_info.h | 58 +-
net/mac80211/status.c | 84 +-
net/mac80211/tdls.c | 44 +-
net/mac80211/trace.h | 1175 +-
net/mac80211/trace_msg.h | 6 +-
net/mac80211/tx.c | 988 +-
net/mac80211/util.c | 464 +-
net/mac80211/vht.c | 219 +-
net/mac80211/wme.c | 7 +-
net/mac80211/wpa.c | 133 +-
net/mac80211/wpa.h | 5 +-
net/mptcp/options.c | 12 +-
net/mptcp/pm.c | 10 +-
net/mptcp/pm_netlink.c | 165 +-
net/mptcp/pm_userspace.c | 51 +-
net/mptcp/protocol.c | 208 +-
net/mptcp/protocol.h | 49 +-
net/mptcp/subflow.c | 134 +-
net/ncsi/ncsi-manage.c | 3 +-
net/netfilter/Kconfig | 8 +
net/netfilter/Makefile | 1 +
net/netfilter/ipvs/ip_vs_mh.c | 5 +-
net/netfilter/nf_conntrack_bpf.c | 365 +-
net/netfilter/nf_conntrack_broadcast.c | 6 +-
net/netfilter/nf_conntrack_core.c | 92 +-
net/netfilter/nf_conntrack_h323_main.c | 260 +-
net/netfilter/nf_conntrack_helper.c | 4 +-
net/netfilter/nf_conntrack_netlink.c | 64 +-
net/netfilter/nf_conntrack_pptp.c | 2 +-
net/netfilter/nf_conntrack_sip.c | 9 +-
net/netfilter/nf_conntrack_standalone.c | 3 +
net/netfilter/nf_conntrack_timeout.c | 18 +-
net/netfilter/nf_dup_netdev.c | 25 +-
net/netfilter/nf_flow_table_core.c | 73 +-
net/netfilter/nf_flow_table_offload.c | 17 +-
net/netfilter/nf_flow_table_procfs.c | 80 +
net/netfilter/nf_log_syslog.c | 8 +-
net/netfilter/nf_synproxy_core.c | 2 +-
net/netfilter/nf_tables_api.c | 319 +-
net/netfilter/nf_tables_core.c | 29 +-
net/netfilter/nf_tables_offload.c | 23 +-
net/netfilter/nf_tables_trace.c | 44 +-
net/netfilter/nfnetlink.c | 2 +-
net/netfilter/nfnetlink_cthelper.c | 10 +-
net/netfilter/nfnetlink_cttimeout.c | 2 +-
net/netfilter/nfnetlink_queue.c | 7 +-
net/netfilter/nft_bitwise.c | 66 +-
net/netfilter/nft_byteorder.c | 3 +-
net/netfilter/nft_cmp.c | 62 +-
net/netfilter/nft_ct.c | 4 +-
net/netfilter/nft_dynset.c | 2 +-
net/netfilter/nft_exthdr.c | 10 +-
net/netfilter/nft_immediate.c | 22 +-
net/netfilter/nft_meta.c | 13 +-
net/netfilter/nft_nat.c | 3 +-
net/netfilter/nft_numgen.c | 12 +-
net/netfilter/nft_osf.c | 2 +-
net/netfilter/nft_queue.c | 27 +
net/netfilter/nft_range.c | 27 +-
net/netfilter/nft_set_bitmap.c | 4 +-
net/netfilter/nft_set_hash.c | 2 +
net/netfilter/nft_set_pipapo.c | 48 +-
net/netfilter/nft_socket.c | 8 +-
net/netfilter/nft_tproxy.c | 6 +-
net/netfilter/nft_tunnel.c | 3 +-
net/netfilter/nft_xfrm.c | 8 +-
net/netfilter/xt_CT.c | 23 +-
net/netfilter/xt_DSCP.c | 8 +-
net/netfilter/xt_TCPMSS.c | 4 +-
net/netfilter/xt_TPROXY.c | 25 +-
net/netfilter/xt_connlimit.c | 6 +-
net/netlabel/netlabel_unlabeled.c | 2 +-
net/openvswitch/actions.c | 6 +
net/openvswitch/conntrack.c | 4 +-
net/openvswitch/flow.c | 2 +-
net/openvswitch/vport-netdev.c | 6 +-
net/packet/af_packet.c | 16 +-
net/rds/message.c | 3 +-
net/rds/rdma.c | 2 +-
net/rose/af_rose.c | 17 +-
net/rose/rose_route.c | 6 +-
net/rose/rose_timer.c | 34 +-
net/rxrpc/protocol.h | 2 +-
net/rxrpc/rxkad.c | 2 +-
net/sched/act_api.c | 22 +-
net/sched/act_ct.c | 5 +-
net/sched/act_mirred.c | 6 +-
net/sched/act_police.c | 2 +-
net/sched/cls_api.c | 21 +-
net/sched/cls_flower.c | 72 +-
net/sched/cls_route.c | 2 +-
net/sched/sch_api.c | 2 +-
net/sched/sch_cbq.c | 82 +-
net/sched/sch_generic.c | 19 +-
net/sched/sch_netem.c | 4 +-
net/sched/sch_taprio.c | 5 +-
net/sctp/associola.c | 5 +-
net/sctp/protocol.c | 6 +-
net/sctp/sm_statefuns.c | 2 -
net/sctp/socket.c | 12 +-
net/sctp/stream.c | 19 +-
net/sctp/stream_interleave.c | 2 -
net/sctp/stream_sched.c | 2 +-
net/sctp/ulpqueue.c | 4 -
net/smc/af_smc.c | 69 +-
net/smc/smc_clc.c | 8 +-
net/smc/smc_clc.h | 2 +-
net/smc/smc_core.c | 246 +-
net/smc/smc_core.h | 20 +-
net/smc/smc_diag.c | 1 +
net/smc/smc_ib.c | 44 +-
net/smc/smc_ib.h | 2 +
net/smc/smc_ism.c | 19 +-
net/smc/smc_ism.h | 20 +-
net/smc/smc_llc.c | 35 +-
net/smc/smc_pnet.c | 7 +-
net/smc/smc_rx.c | 92 +-
net/smc/smc_sysctl.c | 11 +
net/smc/smc_tx.c | 20 +-
net/socket.c | 70 +-
net/strparser/strparser.c | 3 +
net/sunrpc/auth.c | 4 +-
net/sunrpc/auth_gss/auth_gss.c | 11 +-
net/sunrpc/backchannel_rqst.c | 30 +-
net/sunrpc/clnt.c | 208 +-
net/sunrpc/sched.c | 1 +
net/sunrpc/sunrpc.h | 16 +-
net/sunrpc/svc_xprt.c | 2 +-
net/sunrpc/sysfs.c | 28 +-
net/sunrpc/xdr.c | 205 +-
net/sunrpc/xprt.c | 59 +-
net/sunrpc/xprtmultipath.c | 111 +-
net/sunrpc/xprtrdma/svc_rdma_rw.c | 4 +-
net/sunrpc/xprtrdma/transport.c | 6 +-
net/sunrpc/xprtsock.c | 18 +-
net/switchdev/switchdev.c | 4 +-
net/tipc/bearer.c | 4 +-
net/tipc/core.c | 3 +-
net/tipc/name_table.c | 11 -
net/tipc/name_table.h | 1 -
net/tipc/node.c | 41 +-
net/tipc/socket.c | 3 +-
net/tls/Makefile | 2 +-
net/tls/tls.h | 321 +
net/tls/tls_device.c | 160 +-
net/tls/tls_device_fallback.c | 11 +-
net/tls/tls_main.c | 126 +-
net/tls/tls_proc.c | 4 +
net/tls/tls_strp.c | 494 +
net/tls/tls_sw.c | 792 +-
net/tls/tls_toe.c | 2 +
net/unix/af_unix.c | 296 +-
net/unix/diag.c | 49 +-
net/unix/sysctl_net_unix.c | 19 +-
net/vmw_vsock/af_vsock.c | 10 +-
net/wireless/ap.c | 46 +-
net/wireless/chan.c | 206 +-
net/wireless/core.c | 37 +-
net/wireless/core.h | 31 +-
net/wireless/ethtool.c | 12 +-
net/wireless/ibss.c | 57 +-
net/wireless/mesh.c | 31 +-
net/wireless/mlme.c | 308 +-
net/wireless/nl80211.c | 1550 +-
net/wireless/nl80211.h | 9 +-
net/wireless/ocb.c | 5 +-
net/wireless/rdev-ops.h | 124 +-
net/wireless/reg.c | 139 +-
net/wireless/scan.c | 8 +-
net/wireless/sme.c | 519 +-
net/wireless/trace.h | 569 +-
net/wireless/util.c | 101 +-
net/wireless/wext-compat.c | 48 +-
net/wireless/wext-sme.c | 29 +-
net/x25/af_x25.c | 5 +
net/xdp/xdp_umem.c | 6 +-
net/xdp/xsk.c | 26 +-
net/xdp/xsk_buff_pool.c | 1 +
net/xdp/xsk_queue.h | 8 -
net/xfrm/xfrm_device.c | 2 +-
net/xfrm/xfrm_policy.c | 5 +-
net/xfrm/xfrm_state.c | 8 +-
net/xfrm/xfrm_user.c | 6 +-
samples/bpf/Makefile | 19 +-
samples/bpf/fds_example.c | 3 +-
samples/bpf/sock_example.c | 3 +-
samples/bpf/test_cgrp2_attach.c | 3 +-
samples/bpf/test_lru_dist.c | 2 +-
samples/bpf/test_map_in_map_user.c | 4 +-
samples/bpf/tracex5_user.c | 3 +-
samples/bpf/xdp1_kern.c | 11 +-
samples/bpf/xdp2_kern.c | 11 +-
samples/bpf/xdp_fwd_user.c | 55 +-
samples/bpf/xdp_redirect_map.bpf.c | 6 +-
samples/bpf/xdp_redirect_map_user.c | 9 +
samples/bpf/xdp_router_ipv4.bpf.c | 9 +
samples/bpf/xdp_tx_iptunnel_kern.c | 2 +-
samples/bpf/xdpsock.h | 19 -
samples/bpf/xdpsock_ctrl_proc.c | 190 -
samples/bpf/xdpsock_kern.c | 24 -
samples/bpf/xdpsock_user.c | 2019 -
samples/bpf/xsk_fwd.c | 1085 -
samples/fprobe/fprobe_example.c | 38 +-
samples/kprobes/kprobe_example.c | 5 +-
samples/kprobes/kretprobe_example.c | 5 +-
samples/trace_events/trace-events-sample.c | 14 +-
samples/trace_events/trace-events-sample.h | 32 +-
samples/v4l/v4l2-pci-skeleton.c | 14 +-
scripts/Kconfig.include | 2 +-
scripts/Makefile.build | 9 +-
scripts/Makefile.compiler | 2 +-
scripts/Makefile.lib | 1 +
scripts/Makefile.modinst | 6 +-
scripts/Makefile.package | 4 +-
scripts/Makefile.vmlinux_o | 2 +-
scripts/bloat-o-meter | 47 +-
scripts/bpf_doc.py | 26 +-
scripts/check-local-export | 36 +-
scripts/checkpatch.pl | 5 +-
scripts/checkstack.pl | 4 +
scripts/clang-tools/gen_compile_commands.py | 6 +-
scripts/coccinelle/api/alloc/zalloc-simple.cocci | 2 +-
scripts/coccinelle/api/atomic_as_refcounter.cocci | 2 +-
scripts/coccinelle/api/check_bq27xxx_data.cocci | 2 +-
scripts/coccinelle/api/d_find_alias.cocci | 2 +-
scripts/coccinelle/api/err_cast.cocci | 2 +-
scripts/coccinelle/api/kstrdup.cocci | 2 +-
scripts/coccinelle/api/memdup.cocci | 2 +-
scripts/coccinelle/api/memdup_user.cocci | 2 +-
scripts/coccinelle/api/pm_runtime.cocci | 2 +-
scripts/coccinelle/api/resource_size.cocci | 2 +-
scripts/coccinelle/free/clk_put.cocci | 2 +-
scripts/coccinelle/free/devm_free.cocci | 2 +-
scripts/coccinelle/free/ifnulldev_put.cocci | 55 +
scripts/coccinelle/free/iounmap.cocci | 2 +-
scripts/coccinelle/free/kfree.cocci | 2 +-
scripts/coccinelle/free/kfreeaddr.cocci | 2 +-
scripts/coccinelle/free/pci_free_consistent.cocci | 2 +-
.../iterators/device_node_continue.cocci | 2 +-
scripts/coccinelle/iterators/for_each_child.cocci | 2 +-
scripts/coccinelle/iterators/itnull.cocci | 2 +-
.../coccinelle/iterators/list_entry_update.cocci | 2 +-
scripts/coccinelle/iterators/use_after_iter.cocci | 2 +-
scripts/coccinelle/locks/call_kern.cocci | 2 +-
scripts/coccinelle/locks/double_lock.cocci | 2 +-
scripts/coccinelle/locks/flags.cocci | 2 +-
scripts/coccinelle/locks/mini_lock.cocci | 2 +-
scripts/coccinelle/misc/boolreturn.cocci | 59 -
scripts/coccinelle/misc/cstptr.cocci | 2 +-
scripts/coccinelle/misc/doubleinit.cocci | 2 +-
scripts/coccinelle/misc/ifcol.cocci | 2 +-
scripts/coccinelle/misc/newline_in_nl_msg.cocci | 2 +-
scripts/coccinelle/misc/noderef.cocci | 2 +-
scripts/coccinelle/misc/orplus.cocci | 2 +-
scripts/coccinelle/misc/returnvar.cocci | 2 +-
scripts/coccinelle/misc/semicolon.cocci | 2 +-
.../misc/{ifaddr.cocci => test_addr.cocci} | 6 +-
scripts/coccinelle/misc/warn.cocci | 2 +-
scripts/coccinelle/null/badzero.cocci | 2 +-
scripts/coccinelle/null/deref_null.cocci | 2 +-
scripts/coccinelle/null/eno.cocci | 2 +-
scripts/coccinelle/null/kmerr.cocci | 2 +-
scripts/coccinelle/tests/doublebitand.cocci | 2 +-
scripts/coccinelle/tests/doubletest.cocci | 2 +-
scripts/coccinelle/tests/odd_ptr_err.cocci | 2 +-
.../tests/unsigned_lesser_than_zero.cocci | 2 +-
.../dummy-plugin-dir/include/plugin-version.h | 0
scripts/dummy-tools/gcc | 8 +-
scripts/faddr2line | 50 +-
scripts/gcc-plugins/latent_entropy_plugin.c | 2 +-
scripts/gcc-plugins/stackleak_plugin.c | 2 +-
scripts/gcc-plugins/structleak_plugin.c | 2 +-
scripts/gdb/linux/config.py | 6 +-
scripts/gdb/linux/dmesg.py | 9 +-
scripts/gdb/linux/symbols.py | 2 +-
scripts/gdb/linux/utils.py | 14 +-
scripts/gdb/vmlinux-gdb.py | 2 +-
scripts/gen_autoksyms.sh | 3 +
scripts/get_feat.pl | 2 +-
scripts/headers_install.sh | 2 -
scripts/kconfig/qconf-cfg.sh | 1 +
scripts/kernel-doc | 82 +-
scripts/mod/file2alias.c | 4 +-
scripts/mod/modpost.c | 286 +-
scripts/mod/modpost.h | 33 +-
scripts/module.lds.S | 2 +
scripts/nsdeps | 5 +-
scripts/package/mkspec | 3 +
scripts/remove-stale-files | 6 +
scripts/sign-file.c | 9 +-
scripts/sphinx-pre-install | 90 +-
scripts/tags.sh | 9 +-
scripts/tracing/draw_functrace.py | 2 +-
security/Kconfig | 11 -
security/apparmor/Kconfig | 86 +-
security/apparmor/apparmorfs.c | 103 +-
security/apparmor/audit.c | 2 +-
security/apparmor/domain.c | 5 +-
security/apparmor/include/apparmor.h | 1 +
security/apparmor/include/apparmorfs.h | 14 +
security/apparmor/include/file.h | 3 +
security/apparmor/include/ipc.h | 18 -
security/apparmor/include/label.h | 2 +
security/apparmor/include/lib.h | 5 +
security/apparmor/include/path.h | 4 +-
security/apparmor/include/policy.h | 6 +-
security/apparmor/include/policy_ns.h | 1 +
security/apparmor/include/policy_unpack.h | 2 +
security/apparmor/include/secid.h | 5 +-
security/apparmor/include/task.h | 18 +
security/apparmor/ipc.c | 110 -
security/apparmor/label.c | 29 +-
security/apparmor/lib.c | 27 +-
security/apparmor/lsm.c | 38 +-
security/apparmor/mount.c | 13 +-
security/apparmor/net.c | 3 +-
security/apparmor/policy.c | 35 +-
security/apparmor/policy_ns.c | 53 +-
security/apparmor/policy_unpack.c | 53 +-
security/apparmor/policy_unpack_test.c | 28 +-
security/apparmor/procattr.c | 2 +-
security/apparmor/secid.c | 56 +-
security/apparmor/task.c | 114 +
security/integrity/evm/evm_crypto.c | 7 +-
security/integrity/evm/evm_main.c | 64 +-
security/integrity/ima/ima_appraise.c | 3 +-
security/integrity/ima/ima_crypto.c | 1 +
security/integrity/ima/ima_efi.c | 2 +
security/integrity/ima/ima_kexec.c | 2 +-
security/integrity/ima/ima_policy.c | 4 +
security/integrity/ima/ima_template_lib.c | 6 +-
security/keys/trusted-keys/trusted_tpm2.c | 4 +-
security/loadpin/Kconfig | 16 +
security/loadpin/loadpin.c | 167 +-
security/safesetid/lsm.c | 39 +-
security/security.c | 10 +-
security/selinux/hooks.c | 28 +-
security/selinux/include/audit.h | 2 +-
security/selinux/include/avc.h | 2 +-
security/selinux/ss/policydb.h | 2 +
security/selinux/ss/services.c | 9 +-
security/smack/smack_access.c | 7 +-
security/smack/smack_lsm.c | 7 -
sound/ac97/bus.c | 2 +-
sound/aoa/soundbus/sysfs.c | 22 +-
sound/core/Kconfig | 37 +-
sound/core/compress_offload.c | 9 +-
sound/core/control.c | 290 +-
sound/core/control_led.c | 29 +-
sound/core/device.c | 2 +
sound/core/info.c | 2 +
sound/core/init.c | 18 +-
sound/core/isadma.c | 5 +-
sound/core/memalloc.c | 33 +-
sound/core/misc.c | 94 +
sound/core/pcm.c | 7 +-
sound/core/pcm_dmaengine.c | 30 +-
sound/core/pcm_lib.c | 2 +-
sound/core/pcm_memory.c | 4 +
sound/core/pcm_native.c | 8 +-
sound/core/rawmidi.c | 274 +-
sound/core/timer.c | 11 +-
sound/core/vmaster.c | 3 +-
sound/hda/ext/hdac_ext_controller.c | 7 -
sound/hda/hdac_bus.c | 2 +-
sound/hda/hdac_controller.c | 7 +-
sound/hda/hdac_device.c | 1 +
sound/hda/hdac_i915.c | 15 +-
sound/hda/hdac_sysfs.c | 42 +-
sound/hda/intel-dsp-config.c | 17 +
sound/hda/intel-nhlt.c | 17 +-
sound/hda/trace.h | 41 +-
sound/isa/wavefront/wavefront_synth.c | 2 -
sound/pci/asihpi/hpi6000.c | 2 +-
sound/pci/asihpi/hpi6205.c | 2 +-
sound/pci/cs46xx/cs46xx.c | 22 +-
sound/pci/emu10k1/memory.c | 2 +-
sound/pci/ens1370.c | 2 +-
sound/pci/hda/Kconfig | 12 +-
sound/pci/hda/Makefile | 2 +
sound/pci/hda/cs35l41_hda.c | 958 +-
sound/pci/hda/cs35l41_hda.h | 39 +
sound/pci/hda/cs35l41_hda_i2c.c | 19 +-
sound/pci/hda/cs35l41_hda_spi.c | 16 +-
sound/pci/hda/hda_auto_parser.c | 7 +-
sound/pci/hda/hda_bind.c | 7 +
sound/pci/hda/hda_codec.c | 55 +-
sound/pci/hda/hda_component.h | 3 +
sound/pci/hda/hda_cs_dsp_ctl.c | 240 +
sound/pci/hda/hda_cs_dsp_ctl.h | 39 +
sound/pci/hda/hda_intel.c | 3 +
sound/pci/hda/hda_local.h | 1 +
sound/pci/hda/hda_sysfs.c | 23 +-
sound/pci/hda/patch_cirrus.c | 1 +
sound/pci/hda/patch_conexant.c | 23 +-
sound/pci/hda/patch_cs8409-tables.c | 6 +-
sound/pci/hda/patch_cs8409.h | 2 -
sound/pci/hda/patch_hdmi.c | 1 +
sound/pci/hda/patch_realtek.c | 237 +-
sound/pci/hda/patch_via.c | 4 +-
sound/pci/ice1712/quartet.c | 2 +-
sound/soc/Makefile | 4 +-
sound/soc/adi/axi-i2s.c | 1 +
sound/soc/adi/axi-spdif.c | 1 +
sound/soc/amd/Kconfig | 22 +
sound/soc/amd/Makefile | 3 +
sound/soc/amd/acp-config.c | 30 +
sound/soc/amd/acp-es8336.c | 318 +
sound/soc/amd/acp-pcm-dma.c | 50 +-
sound/soc/amd/acp.h | 13 +
sound/soc/amd/acp/Kconfig | 12 +
sound/soc/amd/acp/Makefile | 2 +
sound/soc/amd/acp/acp-i2s.c | 169 +-
sound/soc/amd/acp/acp-legacy-mach.c | 32 +
sound/soc/amd/acp/acp-mach-common.c | 301 +-
sound/soc/amd/acp/acp-mach.h | 9 +
sound/soc/amd/acp/acp-pci.c | 35 +-
sound/soc/amd/acp/acp-pdm.c | 10 +-
sound/soc/amd/acp/acp-platform.c | 55 +-
sound/soc/amd/acp/acp-rembrandt.c | 401 +
sound/soc/amd/acp/acp-renoir.c | 48 +-
sound/soc/amd/acp/acp-sof-mach.c | 30 +
sound/soc/amd/acp/amd.h | 86 +-
sound/soc/amd/acp/chip_offset_byte.h | 40 +-
sound/soc/amd/mach-config.h | 1 +
sound/soc/amd/raven/acp3x-i2s.c | 3 +-
sound/soc/amd/renoir/acp3x-pdm-dma.c | 13 +-
sound/soc/amd/rpl/Makefile | 5 +
sound/soc/amd/rpl/rpl-pci-acp6x.c | 227 +
sound/soc/amd/rpl/rpl_acp6x.h | 36 +
sound/soc/amd/rpl/rpl_acp6x_chip_offset_byte.h | 30 +
sound/soc/amd/vangogh/acp5x-i2s.c | 5 +-
sound/soc/amd/vangogh/acp5x-mach.c | 3 +-
sound/soc/amd/yc/acp6x-mach.c | 32 +-
sound/soc/amd/yc/acp6x-pdm-dma.c | 13 +-
sound/soc/amd/yc/pci-acp6x.c | 2 +-
sound/soc/atmel/atmel-classd.c | 1 +
sound/soc/atmel/atmel-i2s.c | 7 +-
sound/soc/atmel/atmel-pdmic.c | 1 +
sound/soc/atmel/atmel_ssc_dai.c | 30 +-
sound/soc/atmel/mchp-i2s-mcc.c | 11 +-
sound/soc/atmel/mchp-pdmc.c | 7 +-
sound/soc/atmel/mchp-spdifrx.c | 22 +-
sound/soc/atmel/mchp-spdiftx.c | 25 +-
sound/soc/atmel/mikroe-proto.c | 4 +-
sound/soc/au1x/ac97c.c | 3 +-
sound/soc/au1x/i2sc.c | 5 +-
sound/soc/au1x/psc-ac97.c | 3 +-
sound/soc/au1x/psc-i2s.c | 7 +-
sound/soc/bcm/bcm2835-i2s.c | 23 +-
sound/soc/bcm/bcm63xx-i2s-whistler.c | 1 +
sound/soc/bcm/cygnus-pcm.c | 14 +-
sound/soc/bcm/cygnus-ssp.c | 25 +-
sound/soc/bcm/cygnus-ssp.h | 14 +-
sound/soc/cirrus/ep93xx-ac97.c | 3 +-
sound/soc/cirrus/ep93xx-i2s.c | 11 +-
sound/soc/codecs/88pm860x-codec.c | 1 -
sound/soc/codecs/Kconfig | 28 +
sound/soc/codecs/Makefile | 6 +
sound/soc/codecs/ab8500-codec.c | 3 -
sound/soc/codecs/ab8500-codec.h | 2 -
sound/soc/codecs/ac97.c | 1 -
sound/soc/codecs/ad1836.c | 1 -
sound/soc/codecs/ad193x.c | 1 -
sound/soc/codecs/ad1980.c | 1 -
sound/soc/codecs/ad73311.c | 1 -
sound/soc/codecs/adau1373.c | 1 -
sound/soc/codecs/adau1701.c | 1 -
sound/soc/codecs/adau1761.c | 1 -
sound/soc/codecs/adau1781.c | 1 -
sound/soc/codecs/adau1977.c | 1 -
sound/soc/codecs/adau7002.c | 1 -
sound/soc/codecs/adau7118.c | 1 -
sound/soc/codecs/adav80x.c | 1 -
sound/soc/codecs/ads117x.c | 1 -
sound/soc/codecs/ak4104.c | 1 -
sound/soc/codecs/ak4118.c | 1 -
sound/soc/codecs/ak4375.c | 1 -
sound/soc/codecs/ak4458.c | 2 -
sound/soc/codecs/ak4535.c | 1 -
sound/soc/codecs/ak4554.c | 1 -
sound/soc/codecs/ak4613.c | 13 +-
sound/soc/codecs/ak4641.c | 1 -
sound/soc/codecs/ak4642.c | 1 -
sound/soc/codecs/ak4671.c | 1 -
sound/soc/codecs/ak5386.c | 1 -
sound/soc/codecs/ak5558.c | 2 -
sound/soc/codecs/alc5623.c | 1 -
sound/soc/codecs/alc5632.c | 1 -
sound/soc/codecs/arizona.c | 4 +-
sound/soc/codecs/bd28623.c | 1 -
sound/soc/codecs/bt-sco.c | 1 -
sound/soc/codecs/cpcap.c | 1 -
sound/soc/codecs/cq93vc.c | 1 -
sound/soc/codecs/cros_ec_codec.c | 1 +
sound/soc/codecs/cs35l32.c | 1 -
sound/soc/codecs/cs35l33.c | 1 -
sound/soc/codecs/cs35l34.c | 1 -
sound/soc/codecs/cs35l35.c | 1 -
sound/soc/codecs/cs35l36.c | 4 +-
sound/soc/codecs/cs35l41-lib.c | 92 +-
sound/soc/codecs/cs35l41-spi.c | 1 +
sound/soc/codecs/cs35l41.c | 113 +-
sound/soc/codecs/cs35l45-i2c.c | 4 +-
sound/soc/codecs/cs35l45.c | 6 +-
sound/soc/codecs/cs35l45.h | 4 +-
sound/soc/codecs/cs4234.c | 1 -
sound/soc/codecs/cs4265.c | 1 -
sound/soc/codecs/cs4270.c | 2 -
sound/soc/codecs/cs4271.c | 1 -
sound/soc/codecs/cs42l42.c | 4 +-
sound/soc/codecs/cs42l51.c | 3 +-
sound/soc/codecs/cs42l52.c | 9 +-
sound/soc/codecs/cs42l56.c | 5 +-
sound/soc/codecs/cs42l73.c | 1 -
sound/soc/codecs/cs42xx8.c | 1 -
sound/soc/codecs/cs43130.c | 1 -
sound/soc/codecs/cs4341.c | 1 -
sound/soc/codecs/cs4349.c | 1 -
sound/soc/codecs/cs47l15.c | 6 +-
sound/soc/codecs/cs47l24.c | 1 -
sound/soc/codecs/cs47l35.c | 1 -
sound/soc/codecs/cs47l85.c | 1 -
sound/soc/codecs/cs47l90.c | 1 -
sound/soc/codecs/cs47l92.c | 9 +-
sound/soc/codecs/cs53l30.c | 17 +-
sound/soc/codecs/cx20442.c | 1 -
sound/soc/codecs/cx2072x.c | 17 +-
sound/soc/codecs/da7210.c | 3 +-
sound/soc/codecs/da7213.c | 1 -
sound/soc/codecs/da7218.c | 1 -
sound/soc/codecs/da7219.c | 7 -
sound/soc/codecs/da732x.c | 7 -
sound/soc/codecs/da9055.c | 1 -
sound/soc/codecs/dmic.c | 1 -
sound/soc/codecs/es7134.c | 1 -
sound/soc/codecs/es7241.c | 1 -
sound/soc/codecs/es8316.c | 21 +-
sound/soc/codecs/es8328.c | 6 +-
sound/soc/codecs/gtm601.c | 1 -
sound/soc/codecs/hda-dai.c | 102 +
sound/soc/codecs/hda.c | 395 +
sound/soc/codecs/hda.h | 19 +
sound/soc/codecs/hdac_hdmi.c | 1 -
sound/soc/codecs/hdmi-codec.c | 19 +-
sound/soc/codecs/ics43432.c | 1 -
sound/soc/codecs/inno_rk3036.c | 1 -
sound/soc/codecs/isabelle.c | 1 -
sound/soc/codecs/jz4740.c | 2 -
sound/soc/codecs/lm49453.c | 7 -
sound/soc/codecs/lochnagar-sc.c | 1 -
sound/soc/codecs/lpass-va-macro.c | 11 +-
sound/soc/codecs/madera.c | 14 +-
sound/soc/codecs/max98088.c | 33 +-
sound/soc/codecs/max98090.c | 13 +-
sound/soc/codecs/max98095.c | 1 -
sound/soc/codecs/max98357a.c | 1 -
sound/soc/codecs/max98371.c | 1 -
sound/soc/codecs/max98373-i2c.c | 1 -
sound/soc/codecs/max98373-sdw.c | 12 +-
sound/soc/codecs/max98373.c | 16 +-
sound/soc/codecs/max98390.c | 3 +-
sound/soc/codecs/max98396.c | 281 +-
sound/soc/codecs/max98396.h | 10 +-
sound/soc/codecs/max9850.c | 1 -
sound/soc/codecs/max98520.c | 1 -
sound/soc/codecs/max9860.c | 7 +-
sound/soc/codecs/max9867.c | 1 -
sound/soc/codecs/max98925.c | 1 -
sound/soc/codecs/max98926.c | 1 -
sound/soc/codecs/max98927.c | 1 -
sound/soc/codecs/mc13783.c | 1 -
sound/soc/codecs/ml26124.c | 1 -
sound/soc/codecs/msm8916-wcd-analog.c | 1 -
sound/soc/codecs/msm8916-wcd-digital.c | 47 +-
sound/soc/codecs/mt6358.c | 1 +
sound/soc/codecs/mt6359-accdet.c | 1 +
sound/soc/codecs/mt6359.c | 1 +
sound/soc/codecs/nau8315.c | 1 -
sound/soc/codecs/nau8540.c | 1 -
sound/soc/codecs/nau8810.c | 1 -
sound/soc/codecs/nau8821.c | 76 +-
sound/soc/codecs/nau8821.h | 1 +
sound/soc/codecs/nau8822.c | 19 +-
sound/soc/codecs/nau8822.h | 5 +
sound/soc/codecs/nau8824.c | 1 -
sound/soc/codecs/nau8825.c | 3 +-
sound/soc/codecs/pcm1681.c | 1 -
sound/soc/codecs/pcm1789.c | 1 -
sound/soc/codecs/pcm179x.c | 1 -
sound/soc/codecs/pcm186x.c | 2 -
sound/soc/codecs/pcm3008.c | 1 -
sound/soc/codecs/pcm3168a.c | 1 -
sound/soc/codecs/pcm5102a.c | 1 -
sound/soc/codecs/pcm512x.c | 1 -
sound/soc/codecs/rk3328_codec.c | 6 +-
sound/soc/codecs/rk817_codec.c | 1 -
sound/soc/codecs/rt1011.c | 1 -
sound/soc/codecs/rt1015.c | 1 -
sound/soc/codecs/rt1015p.c | 1 -
sound/soc/codecs/rt1016.c | 1 -
sound/soc/codecs/rt1019.c | 1 -
sound/soc/codecs/rt1305.c | 1 -
sound/soc/codecs/rt1308-sdw.c | 23 +
sound/soc/codecs/rt1308.c | 1 -
sound/soc/codecs/rt1316-sdw.c | 23 +
sound/soc/codecs/rt274.c | 11 +-
sound/soc/codecs/rt286.c | 19 +-
sound/soc/codecs/rt286.h | 2 -
sound/soc/codecs/rt298.c | 61 +-
sound/soc/codecs/rt298.h | 2 -
sound/soc/codecs/rt5514.c | 1 -
sound/soc/codecs/rt5616.c | 1 -
sound/soc/codecs/rt5631.c | 1 -
sound/soc/codecs/rt5640.c | 43 +-
sound/soc/codecs/rt5645.c | 1 -
sound/soc/codecs/rt5651.c | 1 -
sound/soc/codecs/rt5659.c | 1 -
sound/soc/codecs/rt5660.c | 1 -
sound/soc/codecs/rt5663.c | 1 -
sound/soc/codecs/rt5665.c | 1 -
sound/soc/codecs/rt5668.c | 1 -
sound/soc/codecs/rt5670.c | 1 -
sound/soc/codecs/rt5677.c | 1 -
sound/soc/codecs/rt5682-sdw.c | 5 +-
sound/soc/codecs/rt5682.c | 1 -
sound/soc/codecs/rt5682s.c | 1 -
sound/soc/codecs/rt700-sdw.c | 6 +-
sound/soc/codecs/rt700.c | 35 +-
sound/soc/codecs/rt711-sdca-sdw.c | 9 +-
sound/soc/codecs/rt711-sdca.c | 49 +-
sound/soc/codecs/rt711-sdw.c | 9 +-
sound/soc/codecs/rt711.c | 45 +-
sound/soc/codecs/rt715-sdca-sdw.c | 12 +
sound/soc/codecs/rt715-sdca.c | 12 +
sound/soc/codecs/rt715-sdw.c | 12 +
sound/soc/codecs/rt715.c | 12 +
sound/soc/codecs/sgtl5000.c | 10 +-
sound/soc/codecs/sgtl5000.h | 1 +
sound/soc/codecs/si476x.c | 1 -
sound/soc/codecs/spdif_receiver.c | 1 -
sound/soc/codecs/spdif_transmitter.c | 1 -
sound/soc/codecs/ssm2518.c | 5 +-
sound/soc/codecs/ssm2602.c | 7 +-
sound/soc/codecs/ssm4567.c | 5 +-
sound/soc/codecs/sta32x.c | 5 +-
sound/soc/codecs/sta350.c | 5 +-
sound/soc/codecs/sta529.c | 1 -
sound/soc/codecs/stac9766.c | 2 -
sound/soc/codecs/sti-sas.c | 7 +-
sound/soc/codecs/tas2552.c | 13 +-
sound/soc/codecs/tas2562.c | 2 -
sound/soc/codecs/tas2764.c | 47 +-
sound/soc/codecs/tas2764.h | 6 +-
sound/soc/codecs/tas2770.c | 7 +-
sound/soc/codecs/tas2780.c | 663 +
sound/soc/codecs/tas2780.h | 101 +
sound/soc/codecs/tas5086.c | 3 +-
sound/soc/codecs/tas571x.c | 1 -
sound/soc/codecs/tas5720.c | 6 +-
sound/soc/codecs/tas5805m.c | 1 -
sound/soc/codecs/tas6424.c | 7 +-
sound/soc/codecs/tfa9879.c | 5 +-
sound/soc/codecs/tfa989x.c | 31 +-
sound/soc/codecs/tlv320adc3xxx.c | 3 +-
sound/soc/codecs/tlv320adcx140.c | 24 +-
sound/soc/codecs/tlv320aic23.c | 8 +-
sound/soc/codecs/tlv320aic26.c | 16 +-
sound/soc/codecs/tlv320aic31xx.c | 20 +-
sound/soc/codecs/tlv320aic32x4.c | 11 +-
sound/soc/codecs/tlv320aic3x.c | 12 +-
sound/soc/codecs/tlv320dac33.c | 13 +-
sound/soc/codecs/tscs42xx.c | 1 -
sound/soc/codecs/twl4030.c | 102 +-
sound/soc/codecs/twl6040.c | 1 -
sound/soc/codecs/uda1334.c | 3 +-
sound/soc/codecs/uda134x.c | 1 -
sound/soc/codecs/uda1380.c | 1 -
sound/soc/codecs/wcd-mbhc-v2.c | 12 +-
sound/soc/codecs/wcd9335.c | 123 +-
sound/soc/codecs/wcd938x.c | 12 +
sound/soc/codecs/wl1273.c | 1 -
sound/soc/codecs/wm0010.c | 1 -
sound/soc/codecs/wm1250-ev1.c | 1 -
sound/soc/codecs/wm2000.c | 1 -
sound/soc/codecs/wm2200.c | 1 -
sound/soc/codecs/wm5100.c | 1 -
sound/soc/codecs/wm5102.c | 22 +-
sound/soc/codecs/wm5110.c | 9 +-
sound/soc/codecs/wm8350.c | 1 -
sound/soc/codecs/wm8400.c | 1 -
sound/soc/codecs/wm8510.c | 1 -
sound/soc/codecs/wm8523.c | 1 -
sound/soc/codecs/wm8524.c | 1 -
sound/soc/codecs/wm8580.c | 1 -
sound/soc/codecs/wm8711.c | 1 -
sound/soc/codecs/wm8727.c | 1 -
sound/soc/codecs/wm8728.c | 1 -
sound/soc/codecs/wm8731.c | 1 -
sound/soc/codecs/wm8737.c | 1 -
sound/soc/codecs/wm8741.c | 1 -
sound/soc/codecs/wm8750.c | 1 -
sound/soc/codecs/wm8753.c | 1 -
sound/soc/codecs/wm8770.c | 1 -
sound/soc/codecs/wm8776.c | 1 -
sound/soc/codecs/wm8782.c | 1 -
sound/soc/codecs/wm8804.c | 1 -
sound/soc/codecs/wm8900.c | 1 -
sound/soc/codecs/wm8903.c | 1 -
sound/soc/codecs/wm8904.c | 1 -
sound/soc/codecs/wm8940.c | 1 -
sound/soc/codecs/wm8955.c | 1 -
sound/soc/codecs/wm8960.c | 1 -
sound/soc/codecs/wm8961.c | 1 -
sound/soc/codecs/wm8962.c | 2 +-
sound/soc/codecs/wm8971.c | 1 -
sound/soc/codecs/wm8974.c | 1 -
sound/soc/codecs/wm8978.c | 1 -
sound/soc/codecs/wm8983.c | 1 -
sound/soc/codecs/wm8985.c | 1 -
sound/soc/codecs/wm8988.c | 1 -
sound/soc/codecs/wm8990.c | 1 -
sound/soc/codecs/wm8991.c | 1 -
sound/soc/codecs/wm8993.c | 1 -
sound/soc/codecs/wm8994.c | 1 -
sound/soc/codecs/wm8995.c | 1 -
sound/soc/codecs/wm8996.c | 2 -
sound/soc/codecs/wm8997.c | 1 -
sound/soc/codecs/wm8998.c | 22 +-
sound/soc/codecs/wm9081.c | 1 -
sound/soc/codecs/wm9090.c | 1 -
sound/soc/codecs/wm9705.c | 1 -
sound/soc/codecs/wm9712.c | 1 -
sound/soc/codecs/wm9713.c | 1 -
sound/soc/codecs/wm_adsp.c | 29 +-
sound/soc/codecs/wsa881x.c | 16 +-
sound/soc/codecs/wsa883x.c | 1511 +
sound/soc/codecs/zl38060.c | 1 -
sound/soc/dwc/dwc-i2s.c | 15 +-
sound/soc/fsl/Kconfig | 3 +
sound/soc/fsl/fsl-asoc-card.c | 5 +-
sound/soc/fsl/fsl_asrc.c | 6 +-
sound/soc/fsl/fsl_asrc_dma.c | 19 +-
sound/soc/fsl/fsl_aud2htx.c | 3 +-
sound/soc/fsl/fsl_audmix.c | 6 +-
sound/soc/fsl/fsl_easrc.c | 16 +-
sound/soc/fsl/fsl_easrc.h | 2 +-
sound/soc/fsl/fsl_esai.c | 11 +-
sound/soc/fsl/fsl_micfil.c | 55 +-
sound/soc/fsl/fsl_micfil.h | 9 +
sound/soc/fsl/fsl_mqs.c | 136 +-
sound/soc/fsl/fsl_rpmsg.c | 3 +-
sound/soc/fsl/fsl_sai.c | 376 +-
sound/soc/fsl/fsl_sai.h | 28 +-
sound/soc/fsl/fsl_spdif.c | 51 +-
sound/soc/fsl/fsl_ssi.c | 23 +-
sound/soc/fsl/fsl_utils.c | 69 +
sound/soc/fsl/fsl_utils.h | 7 +
sound/soc/fsl/fsl_xcvr.c | 12 +-
sound/soc/fsl/imx-audmix.c | 4 +-
sound/soc/fsl/imx-audmux.c | 24 +-
sound/soc/fsl/imx-card.c | 24 +-
sound/soc/fsl/mpc5200_psc_i2s.c | 3 +-
sound/soc/fsl/pcm030-audio-fabric.c | 8 +-
sound/soc/generic/audio-graph-card.c | 4 +-
.../generic/audio-graph-card2-custom-sample.dtsi | 101 +-
sound/soc/generic/audio-graph-card2.c | 84 +-
sound/soc/generic/simple-card-utils.c | 44 +-
sound/soc/generic/test-component.c | 20 +-
sound/soc/hisilicon/hi6210-i2s.c | 19 +-
sound/soc/img/img-i2s-in.c | 7 +-
sound/soc/img/img-i2s-out.c | 21 +-
sound/soc/img/img-parallel-out.c | 3 +-
sound/soc/img/img-spdif-in.c | 3 +-
sound/soc/img/img-spdif-out.c | 3 +-
sound/soc/img/pistachio-internal-dac.c | 1 -
sound/soc/intel/Kconfig | 5 +-
sound/soc/intel/atom/sst-atom-controls.c | 8 +-
sound/soc/intel/atom/sst/sst.c | 2 +-
sound/soc/intel/atom/sst/sst_ipc.c | 8 +-
sound/soc/intel/avs/Makefile | 3 +
sound/soc/intel/avs/boards/Kconfig | 121 +
sound/soc/intel/avs/boards/Makefile | 27 +
sound/soc/intel/avs/boards/da7219.c | 282 +
sound/soc/intel/avs/boards/dmic.c | 93 +
sound/soc/intel/avs/boards/hdaudio.c | 294 +
sound/soc/intel/avs/boards/i2s_test.c | 180 +
sound/soc/intel/avs/boards/max98357a.c | 154 +
sound/soc/intel/avs/boards/max98373.c | 239 +
sound/soc/intel/avs/boards/nau8825.c | 353 +
sound/soc/intel/avs/boards/rt274.c | 310 +
sound/soc/intel/avs/boards/rt286.c | 281 +
sound/soc/intel/avs/boards/rt298.c | 281 +
sound/soc/intel/avs/boards/rt5682.c | 340 +
sound/soc/intel/avs/boards/ssm4567.c | 271 +
sound/soc/intel/avs/cldma.c | 12 +-
sound/soc/intel/avs/core.c | 13 +-
sound/soc/intel/avs/dsp.c | 11 +-
sound/soc/intel/avs/ipc.c | 1 +
sound/soc/intel/avs/loader.c | 2 +-
sound/soc/intel/avs/messages.c | 18 +-
sound/soc/intel/avs/path.c | 54 +-
sound/soc/intel/avs/pcm.c | 2 -
sound/soc/intel/avs/topology.c | 31 +-
sound/soc/intel/boards/Kconfig | 5 +-
sound/soc/intel/boards/Makefile | 4 +-
sound/soc/intel/boards/bdw-rt5650.c | 1 +
sound/soc/intel/boards/bdw-rt5677.c | 1 +
sound/soc/intel/boards/bdw_rt286.c | 280 +
sound/soc/intel/boards/broadwell.c | 336 -
sound/soc/intel/boards/bxt_da7219_max98357a.c | 21 +-
sound/soc/intel/boards/bxt_rt298.c | 2 +-
sound/soc/intel/boards/bytcht_cx2072x.c | 2 +-
sound/soc/intel/boards/bytcht_da7213.c | 2 +-
sound/soc/intel/boards/bytcht_es8316.c | 2 +-
sound/soc/intel/boards/bytcht_nocodec.c | 2 +-
sound/soc/intel/boards/bytcr_rt5640.c | 4 +-
sound/soc/intel/boards/bytcr_rt5651.c | 4 +-
sound/soc/intel/boards/bytcr_wm5102.c | 15 +-
sound/soc/intel/boards/cht_bsw_max98090_ti.c | 3 +-
sound/soc/intel/boards/cht_bsw_rt5645.c | 8 +-
sound/soc/intel/boards/cht_bsw_rt5672.c | 2 +-
sound/soc/intel/boards/cml_rt1011_rt5682.c | 23 +-
sound/soc/intel/boards/glk_rt5682_max98357a.c | 21 +-
sound/soc/intel/boards/haswell.c | 202 -
sound/soc/intel/boards/hda_dsp_common.c | 4 +-
sound/soc/intel/boards/hsw_rt5640.c | 177 +
sound/soc/intel/boards/kbl_da7219_max98357a.c | 21 +-
sound/soc/intel/boards/kbl_da7219_max98927.c | 21 +-
sound/soc/intel/boards/kbl_rt5663_max98927.c | 21 +-
.../soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 21 +-
sound/soc/intel/boards/skl_hda_dsp_generic.c | 4 +-
sound/soc/intel/boards/skl_nau88l25_max98357a.c | 19 +-
sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 19 +-
sound/soc/intel/boards/skl_rt286.c | 2 +-
sound/soc/intel/boards/sof_cirrus_common.c | 40 +-
sound/soc/intel/boards/sof_cs42l42.c | 109 +-
sound/soc/intel/boards/sof_da7219_max98373.c | 23 +-
sound/soc/intel/boards/sof_es8336.c | 160 +-
sound/soc/intel/boards/sof_nau8825.c | 33 +-
sound/soc/intel/boards/sof_pcm512x.c | 2 +-
sound/soc/intel/boards/sof_realtek_common.c | 24 +-
sound/soc/intel/boards/sof_realtek_common.h | 6 +-
sound/soc/intel/boards/sof_rt5682.c | 61 +-
sound/soc/intel/boards/sof_sdw.c | 104 +-
sound/soc/intel/boards/sof_sdw_rt711.c | 3 +
sound/soc/intel/boards/sof_sdw_rt711_sdca.c | 3 +
sound/soc/intel/catpt/device.c | 5 +-
sound/soc/intel/catpt/pcm.c | 26 +-
sound/soc/intel/catpt/sysfs.c | 4 +-
sound/soc/intel/common/Makefile | 1 +
sound/soc/intel/common/soc-acpi-intel-adl-match.c | 61 +
.../intel/common/soc-acpi-intel-hsw-bdw-match.c | 6 +-
sound/soc/intel/common/soc-acpi-intel-mtl-match.c | 89 +
sound/soc/intel/keembay/kmb_platform.c | 18 +-
sound/soc/intel/skylake/skl-nhlt.c | 40 +-
sound/soc/intel/skylake/skl-pcm.c | 5 +-
sound/soc/intel/skylake/skl-topology.c | 6 -
sound/soc/jz4740/Kconfig | 2 +-
sound/soc/jz4740/jz4740-i2s.c | 44 +-
sound/soc/mediatek/Kconfig | 45 +
sound/soc/mediatek/Makefile | 1 +
sound/soc/mediatek/common/Makefile | 2 +-
sound/soc/mediatek/common/mtk-dsp-sof-common.c | 196 +
sound/soc/mediatek/common/mtk-dsp-sof-common.h | 36 +
sound/soc/mediatek/common/mtk-soc-card.h | 17 +
sound/soc/mediatek/mt6797/mt6797-mt6351.c | 6 +-
sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 6 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 10 +-
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 9 +-
sound/soc/mediatek/mt8186/Makefile | 22 +
sound/soc/mediatek/mt8186/mt8186-afe-clk.c | 652 +
sound/soc/mediatek/mt8186/mt8186-afe-clk.h | 106 +
sound/soc/mediatek/mt8186/mt8186-afe-common.h | 195 +
sound/soc/mediatek/mt8186/mt8186-afe-control.c | 255 +
sound/soc/mediatek/mt8186/mt8186-afe-gpio.c | 243 +
sound/soc/mediatek/mt8186/mt8186-afe-gpio.h | 19 +
sound/soc/mediatek/mt8186/mt8186-afe-pcm.c | 3000 +
sound/soc/mediatek/mt8186/mt8186-audsys-clk.c | 150 +
sound/soc/mediatek/mt8186/mt8186-audsys-clk.h | 15 +
sound/soc/mediatek/mt8186/mt8186-audsys-clkid.h | 45 +
sound/soc/mediatek/mt8186/mt8186-dai-adda.c | 865 +
sound/soc/mediatek/mt8186/mt8186-dai-hostless.c | 298 +
sound/soc/mediatek/mt8186/mt8186-dai-hw-gain.c | 236 +
sound/soc/mediatek/mt8186/mt8186-dai-i2s.c | 1223 +
sound/soc/mediatek/mt8186/mt8186-dai-pcm.c | 418 +
sound/soc/mediatek/mt8186/mt8186-dai-src.c | 695 +
sound/soc/mediatek/mt8186/mt8186-dai-tdm.c | 645 +
sound/soc/mediatek/mt8186/mt8186-interconnection.h | 69 +
sound/soc/mediatek/mt8186/mt8186-misc-control.c | 252 +
sound/soc/mediatek/mt8186/mt8186-mt6366-common.c | 57 +
sound/soc/mediatek/mt8186/mt8186-mt6366-common.h | 17 +
.../mt8186/mt8186-mt6366-da7219-max98357.c | 1002 +
.../mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c | 978 +
sound/soc/mediatek/mt8186/mt8186-reg.h | 2913 +
sound/soc/mediatek/mt8195/mt8195-afe-clk.c | 8 +-
sound/soc/mediatek/mt8195/mt8195-dai-etdm.c | 6 +-
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 6 +-
sound/soc/mediatek/mt8195/mt8195-mt6359.c | 233 +-
sound/soc/meson/aiu-acodec-ctrl.c | 1 -
sound/soc/meson/aiu-codec-ctrl.c | 1 -
sound/soc/meson/aiu-encoder-i2s.c | 2 +-
sound/soc/meson/axg-frddr.c | 3 +
sound/soc/meson/axg-pdm.c | 4 +-
sound/soc/meson/axg-spdifin.c | 1 +
sound/soc/meson/axg-spdifout.c | 1 +
sound/soc/meson/axg-tdm-interface.c | 14 +-
sound/soc/meson/axg-toddr.c | 3 +
sound/soc/meson/g12a-toacodec.c | 2 -
sound/soc/meson/g12a-tohdmitx.c | 1 -
sound/soc/meson/meson-codec-glue.c | 2 +-
sound/soc/meson/t9015.c | 1 -
sound/soc/mxs/mxs-saif.c | 7 +-
sound/soc/pxa/magician.c | 8 +-
sound/soc/pxa/mmp-sspa.c | 15 +-
sound/soc/pxa/pxa-ssp.c | 43 +-
sound/soc/pxa/pxa2xx-i2s.c | 27 +-
sound/soc/qcom/apq8016_sbc.c | 2 +-
sound/soc/qcom/lpass-apq8016.c | 1 +
sound/soc/qcom/lpass-cpu.c | 7 +
sound/soc/qcom/lpass-platform.c | 2 +-
sound/soc/qcom/qdsp6/audioreach.c | 4 +-
sound/soc/qcom/qdsp6/q6adm.c | 8 +-
sound/soc/qcom/qdsp6/q6afe.c | 6 +-
sound/soc/qcom/qdsp6/q6apm-dai.c | 6 +
sound/soc/qcom/qdsp6/q6apm.c | 1 +
sound/soc/qcom/qdsp6/q6asm-dai.c | 23 +-
sound/soc/qcom/qdsp6/q6asm.c | 2 +-
sound/soc/qcom/sc7180.c | 2 +-
sound/soc/qcom/sc7280.c | 33 +
sound/soc/qcom/sdm845.c | 6 +-
sound/soc/qcom/sm8250.c | 4 +-
sound/soc/rockchip/rk3288_hdmi_analog.c | 4 +-
sound/soc/rockchip/rockchip_i2s.c | 182 +-
sound/soc/rockchip/rockchip_i2s_tdm.c | 13 +-
sound/soc/rockchip/rockchip_pdm.c | 7 +-
sound/soc/rockchip/rockchip_spdif.c | 1 +
sound/soc/samsung/Kconfig | 20 +-
sound/soc/samsung/aries_wm8994.c | 7 +-
sound/soc/samsung/h1940_uda1380.c | 2 +-
sound/soc/samsung/i2s.c | 8 +-
sound/soc/samsung/neo1973_wm8753.c | 2 +-
sound/soc/samsung/pcm.c | 7 +-
sound/soc/samsung/rx1950_uda1380.c | 4 +-
sound/soc/samsung/s3c-i2s-v2.c | 17 +-
sound/soc/samsung/s3c2412-i2s.c | 7 +-
sound/soc/samsung/s3c24xx-i2s.c | 14 +-
sound/soc/samsung/snow.c | 2 +-
sound/soc/samsung/spdif.c | 7 +-
sound/soc/sh/fsi.c | 6 +-
sound/soc/sh/hac.c | 3 +-
sound/soc/sh/rcar/core.c | 30 +-
sound/soc/sh/rcar/ssiu.c | 3 +
sound/soc/sh/rz-ssi.c | 11 +-
sound/soc/sh/siu_pcm.c | 17 +-
sound/soc/sh/ssi.c | 13 +-
sound/soc/soc-card.c | 6 +
sound/soc/soc-core.c | 167 +-
sound/soc/soc-dai.c | 3 +-
sound/soc/soc-dapm.c | 15 +-
sound/soc/soc-ops.c | 55 +-
sound/soc/soc-pcm.c | 3 +-
sound/soc/soc-topology-test.c | 37 +-
sound/soc/soc-topology.c | 2 +-
sound/soc/soc-utils.c | 1 -
sound/soc/sof/Kconfig | 7 +
sound/soc/sof/Makefile | 16 +-
sound/soc/sof/amd/Kconfig | 1 +
sound/soc/sof/amd/acp-dsp-offset.h | 2 +
sound/soc/sof/amd/acp.c | 36 +
sound/soc/sof/amd/acp.h | 4 +
sound/soc/sof/amd/pci-rn.c | 4 +
sound/soc/sof/amd/renoir.c | 4 +
sound/soc/sof/compress.c | 73 +-
sound/soc/sof/core.c | 7 +-
sound/soc/sof/debug.c | 5 +-
sound/soc/sof/imx/Kconfig | 1 +
sound/soc/sof/intel/Kconfig | 27 +
sound/soc/sof/intel/Makefile | 4 +-
sound/soc/sof/intel/apl.c | 1 +
sound/soc/sof/intel/atom.c | 16 +-
sound/soc/sof/intel/bdw.c | 7 +-
sound/soc/sof/intel/byt.c | 5 +-
sound/soc/sof/intel/cnl.c | 39 +-
sound/soc/sof/intel/hda-dai.c | 226 +-
sound/soc/sof/intel/hda-dsp.c | 36 +-
sound/soc/sof/intel/hda-ipc.c | 39 +-
sound/soc/sof/intel/hda-loader.c | 37 +-
sound/soc/sof/intel/hda-pcm.c | 74 +-
sound/soc/sof/intel/hda-probes.c | 16 +-
sound/soc/sof/intel/hda-stream.c | 115 +-
sound/soc/sof/intel/hda.c | 235 +-
sound/soc/sof/intel/hda.h | 74 +
sound/soc/sof/intel/icl.c | 1 +
sound/soc/sof/intel/mtl.c | 794 +
sound/soc/sof/intel/mtl.h | 76 +
sound/soc/sof/intel/pci-apl.c | 1 +
sound/soc/sof/intel/pci-cnl.c | 1 +
sound/soc/sof/intel/pci-icl.c | 1 +
sound/soc/sof/intel/pci-mtl.c | 71 +
sound/soc/sof/intel/pci-tgl.c | 1 +
sound/soc/sof/intel/shim.h | 2 +
sound/soc/sof/intel/tgl.c | 34 +-
sound/soc/sof/ipc.c | 24 +-
sound/soc/sof/ipc3-dtrace.c | 55 +-
sound/soc/sof/ipc3-loader.c | 17 +-
sound/soc/sof/ipc3-pcm.c | 11 +-
sound/soc/sof/ipc3-topology.c | 96 +-
sound/soc/sof/ipc3.c | 36 +-
sound/soc/sof/ipc4-control.c | 216 +
sound/soc/sof/ipc4-pcm.c | 234 +
sound/soc/sof/ipc4-priv.h | 7 +
sound/soc/sof/ipc4-topology.c | 1921 +
sound/soc/sof/ipc4-topology.h | 270 +
sound/soc/sof/ipc4.c | 45 +-
sound/soc/sof/mediatek/Kconfig | 1 +
sound/soc/sof/mediatek/adsp_helper.h | 1 +
sound/soc/sof/mediatek/mt8186/mt8186-clk.c | 4 +-
sound/soc/sof/mediatek/mt8186/mt8186.c | 2 +-
sound/soc/sof/mediatek/mt8195/mt8195-clk.c | 7 +
sound/soc/sof/mediatek/mt8195/mt8195-loader.c | 13 +-
sound/soc/sof/mediatek/mt8195/mt8195.c | 50 +-
sound/soc/sof/mediatek/mt8195/mt8195.h | 5 +
sound/soc/sof/ops.h | 6 +
sound/soc/sof/pcm.c | 13 +
sound/soc/sof/pm.c | 21 +-
sound/soc/sof/sof-audio.c | 2 +-
sound/soc/sof/sof-audio.h | 12 +
sound/soc/sof/sof-client-ipc-msg-injector.c | 41 +-
sound/soc/sof/sof-client-probes.c | 13 +-
sound/soc/sof/sof-client-probes.h | 8 +-
sound/soc/sof/sof-client.c | 4 +-
sound/soc/sof/sof-priv.h | 17 +-
sound/soc/sof/topology.c | 121 +-
sound/soc/spear/spdif_in.c | 3 +-
sound/soc/spear/spdif_out.c | 3 +-
sound/soc/sti/sti_uniperif.c | 3 +-
sound/soc/stm/stm32_adfsdm.c | 3 +-
sound/soc/stm/stm32_i2s.c | 9 +-
sound/soc/stm/stm32_sai_sub.c | 11 +-
sound/soc/stm/stm32_spdifrx.c | 1 +
sound/soc/sunxi/sun4i-codec.c | 85 +-
sound/soc/sunxi/sun4i-i2s.c | 23 +-
sound/soc/sunxi/sun4i-spdif.c | 3 +-
sound/soc/sunxi/sun50i-codec-analog.c | 8 +
sound/soc/sunxi/sun8i-codec.c | 7 +-
sound/soc/tegra/Kconfig | 9 +
sound/soc/tegra/Makefile | 2 +
sound/soc/tegra/tegra20_ac97.c | 5 +-
sound/soc/tegra/tegra20_das.c | 198 +-
sound/soc/tegra/tegra20_das.h | 120 -
sound/soc/tegra/tegra20_i2s.c | 9 +-
sound/soc/tegra/tegra20_spdif.c | 1 +
sound/soc/tegra/tegra210_adx.c | 2 +-
sound/soc/tegra/tegra210_ahub.c | 39 +-
sound/soc/tegra/tegra210_i2s.c | 7 +-
sound/soc/tegra/tegra210_mbdrc.c | 1014 +
sound/soc/tegra/tegra210_mbdrc.h | 215 +
sound/soc/tegra/tegra210_ope.c | 419 +
sound/soc/tegra/tegra210_ope.h | 90 +
sound/soc/tegra/tegra210_peq.c | 434 +
sound/soc/tegra/tegra210_peq.h | 56 +
sound/soc/tegra/tegra30_i2s.c | 9 +-
sound/soc/ti/davinci-i2s.c | 35 +-
sound/soc/ti/davinci-mcasp.c | 16 +-
sound/soc/ti/davinci-vcif.c | 3 +-
sound/soc/ti/omap-dmic.c | 3 +-
sound/soc/ti/omap-hdmi.c | 1 +
sound/soc/ti/omap-mcbsp-priv.h | 2 -
sound/soc/ti/omap-mcbsp-st.c | 14 +-
sound/soc/ti/omap-mcbsp.c | 34 +-
sound/soc/ti/omap-mcpdm.c | 7 +-
sound/soc/uniphier/evea.c | 1 -
sound/soc/ux500/mop500.c | 2 -
sound/soc/ux500/mop500_ab8500.c | 2 -
sound/soc/ux500/mop500_ab8500.h | 2 -
sound/soc/ux500/ux500_msp_dai.c | 41 +-
sound/soc/ux500/ux500_msp_dai.h | 2 -
sound/soc/ux500/ux500_msp_i2s.c | 2 -
sound/soc/ux500/ux500_msp_i2s.h | 2 -
sound/soc/ux500/ux500_pcm.c | 2 -
sound/soc/ux500/ux500_pcm.h | 2 -
sound/soc/xilinx/xlnx_formatter_pcm.c | 18 +-
sound/soc/xilinx/xlnx_i2s.c | 1 +
sound/soc/xilinx/xlnx_spdif.c | 1 +
sound/soc/xtensa/xtfpga-i2s.c | 19 +-
sound/spi/Kconfig | 2 +-
sound/usb/6fire/pcm.c | 2 +-
sound/usb/bcd2000/bcd2000.c | 3 +-
sound/usb/card.c | 8 +
sound/usb/endpoint.c | 2 +-
sound/usb/hiface/pcm.c | 2 +-
sound/usb/line6/pod.c | 8 +-
sound/usb/line6/podhd.c | 4 +-
sound/usb/mixer_maps.c | 34 +-
sound/usb/mixer_quirks.c | 188 +-
sound/usb/mixer_scarlett_gen2.c | 91 +-
sound/usb/mixer_us16x08.c | 6 +-
sound/usb/pcm.c | 7 +-
sound/usb/quirks-table.h | 255 +-
sound/usb/quirks.c | 15 +
sound/x86/intel_hdmi_audio.c | 15 +-
tools/Makefile | 3 +
tools/accounting/getdelays.c | 4 -
tools/arch/arm64/include/asm/cputype.h | 12 +-
tools/arch/arm64/include/uapi/asm/kvm.h | 36 +
tools/arch/x86/include/asm/amd-ibs.h | 16 +-
tools/arch/x86/include/asm/cpufeatures.h | 22 +-
tools/arch/x86/include/asm/disabled-features.h | 29 +-
tools/arch/x86/include/asm/msr-index.h | 42 +
tools/arch/x86/include/uapi/asm/kvm.h | 23 +-
tools/arch/x86/include/uapi/asm/svm.h | 13 +
tools/bpf/Makefile | 7 +-
tools/bpf/bpf_jit_disasm.c | 5 +-
tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 16 +-
.../bpf/bpftool/Documentation/bpftool-feature.rst | 12 +
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 5 +-
tools/bpf/bpftool/Makefile | 17 +-
tools/bpf/bpftool/bash-completion/bpftool | 30 +-
tools/bpf/bpftool/btf.c | 57 +-
tools/bpf/bpftool/btf_dumper.c | 29 +
tools/bpf/bpftool/cgroup.c | 162 +-
tools/bpf/bpftool/common.c | 160 +-
tools/bpf/bpftool/feature.c | 148 +-
tools/bpf/bpftool/gen.c | 115 +-
tools/bpf/bpftool/jit_disasm.c | 42 +-
tools/bpf/bpftool/link.c | 61 +-
tools/bpf/bpftool/main.c | 2 -
tools/bpf/bpftool/main.h | 24 +-
tools/bpf/bpftool/map.c | 84 +-
tools/bpf/bpftool/pids.c | 1 +
tools/bpf/bpftool/prog.c | 81 +-
tools/bpf/bpftool/struct_ops.c | 2 +
tools/bpf/resolve_btfids/main.c | 40 +-
tools/bpf/runqslower/Makefile | 7 +-
tools/build/Makefile.feature | 4 +-
tools/build/feature/Makefile | 16 +-
tools/build/feature/test-all.c | 4 +
.../build/feature/test-disassembler-init-styled.c | 13 +
tools/build/feature/test-libcrypto.c | 15 +-
tools/cgroup/memcg_shrinker.py | 71 +
tools/include/asm-generic/bitops/non-atomic.h | 34 +-
tools/include/linux/bitmap.h | 12 +-
tools/include/linux/bitops.h | 16 +
tools/include/linux/btf_ids.h | 35 +-
tools/include/linux/list.h | 11 +
tools/include/linux/objtool.h | 17 +-
tools/include/linux/sched/mm.h | 2 +
tools/include/nolibc/Makefile | 37 +-
tools/include/nolibc/stdio.h | 4 +-
tools/include/nolibc/stdlib.h | 7 +-
tools/include/tools/dis-asm-compat.h | 55 +
tools/include/uapi/asm-generic/fcntl.h | 13 +-
tools/include/uapi/drm/i915_drm.h | 359 +-
tools/include/uapi/linux/bpf.h | 107 +-
tools/include/uapi/linux/btf.h | 17 +-
tools/include/uapi/linux/fs.h | 2 +-
tools/include/uapi/linux/if_link.h | 1 +
tools/include/uapi/linux/if_tun.h | 2 +-
tools/include/uapi/linux/kvm.h | 65 +-
tools/include/uapi/linux/perf_event.h | 4 +-
tools/include/uapi/linux/pkt_cls.h | 4 +-
tools/include/uapi/linux/prctl.h | 9 +
tools/include/uapi/linux/seg6.h | 4 +-
tools/include/uapi/linux/usbdevice_fs.h | 4 +-
tools/include/uapi/linux/vhost.h | 26 +-
tools/include/uapi/sound/asound.h | 2 +-
tools/kvm/kvm_stat/kvm_stat | 3 +-
tools/lib/bitmap.c | 6 +-
tools/lib/bpf/Build | 2 +-
tools/lib/bpf/Makefile | 2 +-
tools/lib/bpf/bpf.c | 209 +-
tools/lib/bpf/bpf.h | 109 +-
tools/lib/bpf/bpf_core_read.h | 11 +
tools/lib/bpf/bpf_helpers.h | 13 +
tools/lib/bpf/bpf_tracing.h | 60 +-
tools/lib/bpf/btf.c | 412 +-
tools/lib/bpf/btf.h | 118 +-
tools/lib/bpf/btf_dump.c | 160 +-
tools/lib/bpf/gen_loader.c | 2 +-
tools/lib/bpf/libbpf.c | 2342 +-
tools/lib/bpf/libbpf.h | 569 +-
tools/lib/bpf/libbpf.map | 123 +-
tools/lib/bpf/libbpf_common.h | 16 +-
tools/lib/bpf/libbpf_internal.h | 39 +-
tools/lib/bpf/libbpf_legacy.h | 28 +-
tools/lib/bpf/libbpf_probes.c | 125 +-
tools/lib/bpf/linker.c | 7 +-
tools/lib/bpf/netlink.c | 62 +-
tools/lib/bpf/relo_core.c | 479 +-
tools/lib/bpf/relo_core.h | 10 +-
tools/lib/bpf/skel_internal.h | 4 +-
tools/lib/bpf/usdt.bpf.h | 16 +-
tools/lib/bpf/usdt.c | 129 +-
tools/lib/perf/evsel.c | 17 +-
tools/lib/perf/include/internal/evsel.h | 4 +
tools/lib/perf/include/perf/event.h | 8 +
tools/objtool/arch/x86/decode.c | 5 +
tools/objtool/builtin-check.c | 13 +
tools/objtool/check.c | 335 +-
tools/objtool/include/objtool/arch.h | 1 +
tools/objtool/include/objtool/builtin.h | 2 +
tools/objtool/include/objtool/check.h | 24 +-
tools/objtool/include/objtool/elf.h | 1 +
tools/objtool/include/objtool/objtool.h | 1 +
tools/objtool/objtool.c | 1 +
tools/perf/Build | 1 +
tools/perf/Documentation/guest-files.txt | 16 +
tools/perf/Documentation/guestmount.txt | 11 +
tools/perf/Documentation/perf-buildid-list.txt | 4 +
tools/perf/Documentation/perf-c2c.txt | 31 +-
tools/perf/Documentation/perf-dlfilter.txt | 22 +
tools/perf/Documentation/perf-inject.txt | 21 +
tools/perf/Documentation/perf-intel-pt.txt | 181 +-
tools/perf/Documentation/perf-kvm.txt | 25 +-
tools/perf/Documentation/perf-kwork.txt | 180 +
tools/perf/Documentation/perf-lock.txt | 55 +-
tools/perf/Documentation/perf-record.txt | 10 +
tools/perf/Documentation/perf-script.txt | 16 +-
tools/perf/Documentation/perf-stat.txt | 21 +
tools/perf/Documentation/perf.data-file-format.txt | 20 +-
tools/perf/Makefile.config | 44 +-
tools/perf/Makefile.perf | 22 +-
tools/perf/arch/arm/util/cs-etm.c | 2 +-
tools/perf/arch/arm64/util/arm-spe.c | 2 +-
tools/perf/arch/arm64/util/pmu.c | 4 +-
tools/perf/arch/x86/tests/Build | 1 -
tools/perf/arch/x86/tests/arch-tests.c | 2 -
tools/perf/arch/x86/tests/intel-cqm.c | 2 +-
tools/perf/arch/x86/tests/rdpmc.c | 182 -
tools/perf/arch/x86/util/cpuid.h | 34 +
tools/perf/arch/x86/util/evlist.c | 64 +-
tools/perf/arch/x86/util/evsel.c | 72 +
tools/perf/arch/x86/util/header.c | 27 +-
tools/perf/arch/x86/util/intel-bts.c | 2 +-
tools/perf/arch/x86/util/intel-pt.c | 2 +-
tools/perf/arch/x86/util/iostat.c | 2 +-
tools/perf/arch/x86/util/topdown.c | 51 +
tools/perf/arch/x86/util/topdown.h | 1 +
tools/perf/arch/x86/util/tsc.c | 77 +
tools/perf/builtin-annotate.c | 8 +
tools/perf/builtin-buildid-list.c | 39 +-
tools/perf/builtin-c2c.c | 454 +-
tools/perf/builtin-inject.c | 1052 +-
tools/perf/builtin-kvm.c | 8 +-
tools/perf/builtin-kwork.c | 1832 +
tools/perf/builtin-list.c | 2 +-
tools/perf/builtin-lock.c | 958 +-
tools/perf/builtin-record.c | 55 +-
tools/perf/builtin-report.c | 6 +
tools/perf/builtin-sched.c | 2 +-
tools/perf/builtin-script.c | 27 +-
tools/perf/builtin-stat.c | 82 +-
tools/perf/builtin-timechart.c | 1 +
tools/perf/builtin-trace.c | 5 +-
tools/perf/builtin.h | 1 +
tools/perf/command-list.txt | 1 +
tools/perf/include/perf/perf_dlfilter.h | 8 +
tools/perf/perf.c | 1 +
tools/perf/pmu-events/Build | 21 +-
tools/perf/pmu-events/arch/arm64/mapfile.csv | 2 +
tools/perf/pmu-events/arch/s390/cf_z16/pai.json | 1101 +
.../pmu-events/arch/test/test_soc/cpu/metrics.json | 64 +
.../pmu-events/arch/x86/alderlake/adl-metrics.json | 4 +-
.../perf/pmu-events/arch/x86/alderlake/cache.json | 178 +-
.../arch/x86/alderlake/floating-point.json | 19 +-
.../pmu-events/arch/x86/alderlake/frontend.json | 38 +-
.../perf/pmu-events/arch/x86/alderlake/memory.json | 40 +-
.../perf/pmu-events/arch/x86/alderlake/other.json | 97 +-
.../pmu-events/arch/x86/alderlake/pipeline.json | 507 +-
.../arch/x86/alderlake/uncore-other.json | 2 +-
.../arch/x86/alderlake/virtual-memory.json | 63 +-
tools/perf/pmu-events/arch/x86/bonnell/cache.json | 2 +-
.../arch/x86/bonnell/floating-point.json | 2 +-
.../perf/pmu-events/arch/x86/bonnell/frontend.json | 2 +-
tools/perf/pmu-events/arch/x86/bonnell/memory.json | 2 +-
tools/perf/pmu-events/arch/x86/bonnell/other.json | 2 +-
.../perf/pmu-events/arch/x86/bonnell/pipeline.json | 2 +-
.../arch/x86/bonnell/virtual-memory.json | 2 +-
.../pmu-events/arch/x86/broadwell/bdw-metrics.json | 130 +-
.../perf/pmu-events/arch/x86/broadwell/cache.json | 2 +-
.../arch/x86/broadwell/floating-point.json | 2 +-
.../pmu-events/arch/x86/broadwell/frontend.json | 2 +-
.../perf/pmu-events/arch/x86/broadwell/memory.json | 2 +-
.../perf/pmu-events/arch/x86/broadwell/other.json | 2 +-
.../pmu-events/arch/x86/broadwell/pipeline.json | 2 +-
.../arch/x86/broadwell/uncore-cache.json | 152 +
.../arch/x86/broadwell/uncore-other.json | 82 +
.../perf/pmu-events/arch/x86/broadwell/uncore.json | 278 -
.../arch/x86/broadwell/virtual-memory.json | 2 +-
.../arch/x86/broadwellde/bdwde-metrics.json | 142 +-
.../pmu-events/arch/x86/broadwellde/cache.json | 2 +-
.../arch/x86/broadwellde/floating-point.json | 2 +-
.../pmu-events/arch/x86/broadwellde/frontend.json | 2 +-
.../pmu-events/arch/x86/broadwellde/memory.json | 2 +-
.../pmu-events/arch/x86/broadwellde/other.json | 2 +-
.../pmu-events/arch/x86/broadwellde/pipeline.json | 2 +-
.../arch/x86/broadwellde/uncore-cache.json | 3721 +-
.../arch/x86/broadwellde/uncore-memory.json | 2867 +-
.../arch/x86/broadwellde/uncore-other.json | 1233 +
.../arch/x86/broadwellde/uncore-power.json | 492 +-
.../arch/x86/broadwellde/virtual-memory.json | 2 +-
.../arch/x86/broadwellx/bdx-metrics.json | 576 +-
.../perf/pmu-events/arch/x86/broadwellx/cache.json | 22 +-
.../arch/x86/broadwellx/floating-point.json | 9 +-
.../pmu-events/arch/x86/broadwellx/frontend.json | 2 +-
.../pmu-events/arch/x86/broadwellx/memory.json | 39 +-
.../perf/pmu-events/arch/x86/broadwellx/other.json | 2 +-
.../pmu-events/arch/x86/broadwellx/pipeline.json | 4 +-
.../arch/x86/broadwellx/uncore-cache.json | 3633 +-
.../arch/x86/broadwellx/uncore-interconnect.json | 1438 +-
.../arch/x86/broadwellx/uncore-memory.json | 2849 +-
.../arch/x86/broadwellx/uncore-other.json | 3252 +
.../arch/x86/broadwellx/uncore-power.json | 437 +-
.../arch/x86/broadwellx/virtual-memory.json | 2 +-
.../pmu-events/arch/x86/cascadelakex/cache.json | 8 +-
.../arch/x86/cascadelakex/clx-metrics.json | 730 +-
.../arch/x86/cascadelakex/floating-point.json | 2 +-
.../pmu-events/arch/x86/cascadelakex/frontend.json | 2 +-
.../pmu-events/arch/x86/cascadelakex/other.json | 63 +
.../pmu-events/arch/x86/cascadelakex/pipeline.json | 11 +
.../arch/x86/cascadelakex/uncore-memory.json | 4423 +-
.../arch/x86/cascadelakex/uncore-other.json | 23575 +-
.../arch/x86/cascadelakex/uncore-power.json | 201 +
.../arch/x86/cascadelakex/virtual-memory.json | 2 +-
.../pmu-events/arch/x86/elkhartlake/cache.json | 956 +-
.../arch/x86/elkhartlake/floating-point.json | 19 +-
.../pmu-events/arch/x86/elkhartlake/frontend.json | 34 +-
.../pmu-events/arch/x86/elkhartlake/memory.json | 388 +-
.../pmu-events/arch/x86/elkhartlake/other.json | 527 +-
.../pmu-events/arch/x86/elkhartlake/pipeline.json | 203 +-
.../arch/x86/elkhartlake/virtual-memory.json | 151 +-
tools/perf/pmu-events/arch/x86/goldmont/cache.json | 2 +-
.../arch/x86/goldmont/floating-point.json | 2 +-
.../pmu-events/arch/x86/goldmont/frontend.json | 2 +-
.../perf/pmu-events/arch/x86/goldmont/memory.json | 2 +-
.../pmu-events/arch/x86/goldmont/pipeline.json | 2 +-
.../arch/x86/goldmont/virtual-memory.json | 2 +-
.../pmu-events/arch/x86/goldmontplus/cache.json | 2 +-
.../arch/x86/goldmontplus/floating-point.json | 2 +-
.../pmu-events/arch/x86/goldmontplus/frontend.json | 2 +-
.../pmu-events/arch/x86/goldmontplus/memory.json | 2 +-
.../pmu-events/arch/x86/goldmontplus/pipeline.json | 2 +-
.../arch/x86/goldmontplus/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/haswell/cache.json | 78 +-
.../arch/x86/haswell/floating-point.json | 2 +-
.../perf/pmu-events/arch/x86/haswell/frontend.json | 2 +-
.../pmu-events/arch/x86/haswell/hsw-metrics.json | 85 +-
tools/perf/pmu-events/arch/x86/haswell/memory.json | 75 +-
tools/perf/pmu-events/arch/x86/haswell/other.json | 2 +-
.../perf/pmu-events/arch/x86/haswell/pipeline.json | 9 +-
.../pmu-events/arch/x86/haswell/uncore-other.json | 7 +-
.../arch/x86/haswell/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/haswellx/cache.json | 44 +-
.../arch/x86/haswellx/floating-point.json | 2 +-
.../pmu-events/arch/x86/haswellx/frontend.json | 2 +-
.../pmu-events/arch/x86/haswellx/hsx-metrics.json | 496 +-
.../perf/pmu-events/arch/x86/haswellx/memory.json | 52 +-
tools/perf/pmu-events/arch/x86/haswellx/other.json | 2 +-
.../pmu-events/arch/x86/haswellx/pipeline.json | 9 +-
.../pmu-events/arch/x86/haswellx/uncore-cache.json | 3622 +-
.../arch/x86/haswellx/uncore-interconnect.json | 1430 +-
.../arch/x86/haswellx/uncore-memory.json | 2839 +-
.../pmu-events/arch/x86/haswellx/uncore-other.json | 3170 +
.../pmu-events/arch/x86/haswellx/uncore-power.json | 477 +-
.../arch/x86/haswellx/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/icelake/cache.json | 8 +-
.../arch/x86/icelake/floating-point.json | 2 +-
.../perf/pmu-events/arch/x86/icelake/frontend.json | 2 +-
.../pmu-events/arch/x86/icelake/icl-metrics.json | 126 +-
.../pmu-events/arch/x86/icelake/uncore-other.json | 31 +
.../arch/x86/icelake/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/icelakex/cache.json | 28 +-
.../arch/x86/icelakex/floating-point.json | 2 +-
.../pmu-events/arch/x86/icelakex/frontend.json | 2 +-
.../pmu-events/arch/x86/icelakex/icx-metrics.json | 697 +-
.../perf/pmu-events/arch/x86/icelakex/memory.json | 6 +-
tools/perf/pmu-events/arch/x86/icelakex/other.json | 51 +-
.../pmu-events/arch/x86/icelakex/pipeline.json | 12 +
.../arch/x86/icelakex/uncore-memory.json | 1523 +
.../pmu-events/arch/x86/icelakex/uncore-other.json | 38506 ++-
.../pmu-events/arch/x86/icelakex/uncore-power.json | 225 +
.../arch/x86/icelakex/virtual-memory.json | 2 +-
.../perf/pmu-events/arch/x86/ivybridge/cache.json | 2 +-
.../arch/x86/ivybridge/floating-point.json | 2 +-
.../pmu-events/arch/x86/ivybridge/frontend.json | 2 +-
.../pmu-events/arch/x86/ivybridge/ivb-metrics.json | 94 +-
.../perf/pmu-events/arch/x86/ivybridge/memory.json | 2 +-
.../perf/pmu-events/arch/x86/ivybridge/other.json | 2 +-
.../pmu-events/arch/x86/ivybridge/pipeline.json | 4 +-
.../arch/x86/ivybridge/uncore-other.json | 2 +-
.../arch/x86/ivybridge/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/ivytown/cache.json | 2 +-
.../arch/x86/ivytown/floating-point.json | 2 +-
.../perf/pmu-events/arch/x86/ivytown/frontend.json | 2 +-
.../pmu-events/arch/x86/ivytown/ivt-metrics.json | 100 +-
tools/perf/pmu-events/arch/x86/ivytown/memory.json | 2 +-
tools/perf/pmu-events/arch/x86/ivytown/other.json | 2 +-
.../pmu-events/arch/x86/ivytown/uncore-cache.json | 3405 +-
.../arch/x86/ivytown/uncore-interconnect.json | 1749 +-
.../pmu-events/arch/x86/ivytown/uncore-memory.json | 1775 +-
.../pmu-events/arch/x86/ivytown/uncore-other.json | 2398 +
.../pmu-events/arch/x86/ivytown/uncore-power.json | 677 +-
.../arch/x86/ivytown/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/jaketown/cache.json | 2 +-
.../arch/x86/jaketown/floating-point.json | 2 +-
.../pmu-events/arch/x86/jaketown/frontend.json | 2 +-
.../pmu-events/arch/x86/jaketown/jkt-metrics.json | 17 +-
.../perf/pmu-events/arch/x86/jaketown/memory.json | 2 +-
tools/perf/pmu-events/arch/x86/jaketown/other.json | 2 +-
.../pmu-events/arch/x86/jaketown/pipeline.json | 16 +-
.../pmu-events/arch/x86/jaketown/uncore-cache.json | 1930 +-
.../arch/x86/jaketown/uncore-interconnect.json | 824 +-
.../arch/x86/jaketown/uncore-memory.json | 445 +-
.../pmu-events/arch/x86/jaketown/uncore-other.json | 1538 +
.../pmu-events/arch/x86/jaketown/uncore-power.json | 351 +-
.../arch/x86/jaketown/virtual-memory.json | 2 +-
.../pmu-events/arch/x86/knightslanding/cache.json | 2 +-
.../arch/x86/knightslanding/floating-point.json | 2 +-
.../arch/x86/knightslanding/frontend.json | 2 +-
.../pmu-events/arch/x86/knightslanding/memory.json | 2 +-
.../arch/x86/knightslanding/pipeline.json | 2 +-
.../arch/x86/knightslanding/uncore-memory.json | 42 -
.../arch/x86/knightslanding/uncore-other.json | 4103 +
.../arch/x86/knightslanding/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/mapfile.csv | 74 +-
.../perf/pmu-events/arch/x86/meteorlake/cache.json | 262 +
.../pmu-events/arch/x86/meteorlake/frontend.json | 24 +
.../pmu-events/arch/x86/meteorlake/memory.json | 185 +
.../perf/pmu-events/arch/x86/meteorlake/other.json | 46 +
.../pmu-events/arch/x86/meteorlake/pipeline.json | 254 +
.../arch/x86/meteorlake/virtual-memory.json | 46 +
.../perf/pmu-events/arch/x86/nehalemep/cache.json | 14 +-
.../arch/x86/nehalemep/floating-point.json | 2 +-
.../pmu-events/arch/x86/nehalemep/frontend.json | 2 +-
.../perf/pmu-events/arch/x86/nehalemep/memory.json | 6 +-
.../arch/x86/nehalemep/virtual-memory.json | 2 +-
.../perf/pmu-events/arch/x86/nehalemex/cache.json | 2974 +-
.../arch/x86/nehalemex/floating-point.json | 182 +-
.../pmu-events/arch/x86/nehalemex/frontend.json | 20 +-
.../perf/pmu-events/arch/x86/nehalemex/memory.json | 672 +-
.../perf/pmu-events/arch/x86/nehalemex/other.json | 170 +-
.../pmu-events/arch/x86/nehalemex/pipeline.json | 830 +-
.../arch/x86/nehalemex/virtual-memory.json | 92 +-
.../pmu-events/arch/x86/sandybridge/cache.json | 2 +-
.../arch/x86/sandybridge/floating-point.json | 2 +-
.../pmu-events/arch/x86/sandybridge/frontend.json | 4 +-
.../pmu-events/arch/x86/sandybridge/memory.json | 2 +-
.../pmu-events/arch/x86/sandybridge/other.json | 2 +-
.../pmu-events/arch/x86/sandybridge/pipeline.json | 10 +-
.../arch/x86/sandybridge/snb-metrics.json | 11 +-
.../arch/x86/sandybridge/uncore-other.json | 2 +-
.../arch/x86/sandybridge/virtual-memory.json | 2 +-
.../pmu-events/arch/x86/sapphirerapids/cache.json | 135 +-
.../arch/x86/sapphirerapids/floating-point.json | 6 +
.../arch/x86/sapphirerapids/frontend.json | 16 +
.../pmu-events/arch/x86/sapphirerapids/memory.json | 23 +-
.../pmu-events/arch/x86/sapphirerapids/other.json | 68 +-
.../arch/x86/sapphirerapids/pipeline.json | 99 +-
.../arch/x86/sapphirerapids/spr-metrics.json | 572 +-
.../arch/x86/sapphirerapids/uncore-other.json | 9 -
.../arch/x86/sapphirerapids/virtual-memory.json | 20 +
.../perf/pmu-events/arch/x86/silvermont/cache.json | 2 +-
.../arch/x86/silvermont/floating-point.json | 2 +-
.../pmu-events/arch/x86/silvermont/frontend.json | 2 +-
.../pmu-events/arch/x86/silvermont/memory.json | 2 +-
.../perf/pmu-events/arch/x86/silvermont/other.json | 2 +-
.../pmu-events/arch/x86/silvermont/pipeline.json | 2 +-
.../arch/x86/silvermont/virtual-memory.json | 2 +-
.../arch/x86/skylake/floating-point.json | 2 +-
.../perf/pmu-events/arch/x86/skylake/frontend.json | 2 +-
tools/perf/pmu-events/arch/x86/skylake/other.json | 2 +-
.../pmu-events/arch/x86/skylake/skl-metrics.json | 178 +-
.../pmu-events/arch/x86/skylake/uncore-cache.json | 142 +
.../pmu-events/arch/x86/skylake/uncore-other.json | 79 +
tools/perf/pmu-events/arch/x86/skylake/uncore.json | 254 -
.../arch/x86/skylake/virtual-memory.json | 2 +-
.../arch/x86/skylakex/floating-point.json | 2 +-
.../pmu-events/arch/x86/skylakex/frontend.json | 2 +-
tools/perf/pmu-events/arch/x86/skylakex/other.json | 66 +-
.../pmu-events/arch/x86/skylakex/pipeline.json | 11 +
.../pmu-events/arch/x86/skylakex/skx-metrics.json | 673 +-
.../arch/x86/skylakex/uncore-memory.json | 3567 +-
.../pmu-events/arch/x86/skylakex/uncore-other.json | 22606 +-
.../pmu-events/arch/x86/skylakex/uncore-power.json | 201 +
.../arch/x86/skylakex/virtual-memory.json | 2 +-
.../arch/x86/{tremontx => snowridgex}/cache.json | 60 +-
.../{tremontx => snowridgex}/floating-point.json | 9 +-
.../x86/{tremontx => snowridgex}/frontend.json | 20 +-
.../arch/x86/{tremontx => snowridgex}/memory.json | 4 +-
.../arch/x86/{tremontx => snowridgex}/other.json | 18 +-
.../x86/{tremontx => snowridgex}/pipeline.json | 98 +-
.../arch/x86/snowridgex/uncore-memory.json | 619 +
.../arch/x86/snowridgex/uncore-other.json | 25192 ++
.../arch/x86/snowridgex/uncore-power.json | 235 +
.../{tremontx => snowridgex}/virtual-memory.json | 69 +-
.../perf/pmu-events/arch/x86/tigerlake/cache.json | 48 +-
.../arch/x86/tigerlake/floating-point.json | 2 +-
.../pmu-events/arch/x86/tigerlake/frontend.json | 2 +-
.../perf/pmu-events/arch/x86/tigerlake/memory.json | 2 +-
.../perf/pmu-events/arch/x86/tigerlake/other.json | 1 -
.../pmu-events/arch/x86/tigerlake/pipeline.json | 4 +-
.../pmu-events/arch/x86/tigerlake/tgl-metrics.json | 378 +-
.../arch/x86/tigerlake/uncore-other.json | 65 +
.../arch/x86/tigerlake/virtual-memory.json | 2 +-
.../arch/x86/tremontx/uncore-memory.json | 245 -
.../pmu-events/arch/x86/tremontx/uncore-other.json | 2395 -
.../pmu-events/arch/x86/tremontx/uncore-power.json | 11 -
.../pmu-events/arch/x86/westmereep-dp/cache.json | 2 +-
.../arch/x86/westmereep-dp/floating-point.json | 2 +-
.../arch/x86/westmereep-dp/frontend.json | 2 +-
.../pmu-events/arch/x86/westmereep-dp/memory.json | 2 +-
.../arch/x86/westmereep-dp/virtual-memory.json | 2 +-
.../arch/x86/westmereep-sp/floating-point.json | 2 +-
.../arch/x86/westmereep-sp/frontend.json | 2 +-
.../arch/x86/westmereep-sp/virtual-memory.json | 2 +-
.../arch/x86/westmereex/floating-point.json | 2 +-
.../pmu-events/arch/x86/westmereex/frontend.json | 2 +-
.../arch/x86/westmereex/virtual-memory.json | 2 +-
tools/perf/pmu-events/empty-pmu-events.c | 342 +
tools/perf/pmu-events/jevents.c | 1342 -
tools/perf/pmu-events/jevents.py | 725 +
tools/perf/pmu-events/jsmn.c | 352 -
tools/perf/pmu-events/jsmn.h | 68 -
tools/perf/pmu-events/json.c | 162 -
tools/perf/pmu-events/json.h | 39 -
tools/perf/pmu-events/pmu-events.h | 40 +-
tools/perf/scripts/perl/Perf-Trace-Util/Build | 6 +-
tools/perf/scripts/python/arm-cs-trace-disasm.py | 34 +-
tools/perf/scripts/python/intel-pt-events.py | 32 +-
tools/perf/tests/Build | 1 +
tools/perf/tests/bp_account.c | 16 +-
tools/perf/tests/bpf-script-example.c | 35 +-
tools/perf/tests/builtin-test-list.c | 207 +
tools/perf/tests/builtin-test-list.h | 12 +
tools/perf/tests/builtin-test.c | 152 +-
tools/perf/tests/code-reading.c | 2 +-
tools/perf/tests/event-times.c | 2 +-
tools/perf/tests/evsel-roundtrip-name.c | 4 +-
tools/perf/tests/expand-cgroup.c | 25 +-
tools/perf/tests/expr.c | 15 +
tools/perf/tests/hists_cumulate.c | 2 +-
tools/perf/tests/hists_filter.c | 4 +-
tools/perf/tests/hists_link.c | 4 +-
tools/perf/tests/hists_output.c | 2 +-
tools/perf/tests/keep-tracking.c | 4 +-
tools/perf/tests/mmap-basic.c | 127 +-
tools/perf/tests/parse-metric.c | 77 +-
tools/perf/tests/perf-time-to-tsc.c | 31 +-
tools/perf/tests/pmu-events.c | 474 +-
tools/perf/tests/shell/lib/perf_csv_output_lint.py | 48 -
.../perf/tests/shell/lib/perf_json_output_lint.py | 96 +
tools/perf/tests/shell/record_offcpu.sh | 57 +-
tools/perf/tests/shell/stat+csv_output.sh | 70 +-
tools/perf/tests/shell/stat+json_output.sh | 147 +
tools/perf/tests/shell/stat_all_metrics.sh | 47 +-
tools/perf/tests/shell/test_arm_callgraph_fp.sh | 2 +-
tools/perf/tests/shell/test_arm_spe.sh | 30 +-
tools/perf/tests/shell/test_brstack.sh | 114 +
tools/perf/tests/switch-tracking.c | 24 +-
tools/perf/tests/topology.c | 2 +-
tools/perf/trace/beauty/arch_errno_names.sh | 14 +-
tools/perf/trace/beauty/include/linux/socket.h | 7 +-
tools/perf/util/Build | 5 +
tools/perf/util/amd-sample-raw.c | 68 +-
tools/perf/util/annotate.c | 7 +-
tools/perf/util/arm-spe-decoder/arm-spe-decoder.c | 1 +
tools/perf/util/arm-spe-decoder/arm-spe-decoder.h | 12 +
tools/perf/util/arm-spe.c | 140 +-
tools/perf/util/auxtrace.c | 30 +-
tools/perf/util/auxtrace.h | 4 +
tools/perf/util/bpf-loader.c | 224 +-
tools/perf/util/bpf-utils.c | 5 +-
tools/perf/util/bpf_kwork.c | 346 +
tools/perf/util/bpf_lock_contention.c | 189 +
tools/perf/util/bpf_off_cpu.c | 60 +-
tools/perf/util/bpf_skel/kwork_trace.bpf.c | 383 +
tools/perf/util/bpf_skel/lock_contention.bpf.c | 175 +
tools/perf/util/bpf_skel/off_cpu.bpf.c | 58 +-
tools/perf/util/build-id.c | 132 +-
tools/perf/util/build-id.h | 16 +-
tools/perf/util/callchain.c | 18 +-
tools/perf/util/cs-etm.c | 2 +-
tools/perf/util/data-convert-json.c | 5 +-
tools/perf/util/data.c | 43 +-
tools/perf/util/data.h | 2 +
tools/perf/util/dlfilter.c | 2 +
tools/perf/util/dso.h | 6 +
tools/perf/util/dsos.c | 15 +-
tools/perf/util/env.c | 62 +-
tools/perf/util/env.h | 14 +-
tools/perf/util/event.c | 1 +
tools/perf/util/event.h | 23 +
tools/perf/util/events_stats.h | 2 +-
tools/perf/util/evlist.c | 53 +-
tools/perf/util/evlist.h | 9 +-
tools/perf/util/evsel.c | 50 +-
tools/perf/util/evsel.h | 4 +
tools/perf/util/expr.c | 13 +
tools/perf/util/expr.l | 2 +-
tools/perf/util/genelf.c | 6 +-
tools/perf/util/header.c | 206 +-
tools/perf/util/header.h | 4 +-
tools/perf/util/intel-pt.c | 183 +-
tools/perf/util/jitdump.c | 9 +-
tools/perf/util/kwork.h | 257 +
tools/perf/util/llvm-utils.c | 2 +-
tools/perf/util/lock-contention.h | 147 +
tools/perf/util/machine.c | 57 +-
tools/perf/util/machine.h | 7 +
tools/perf/util/mem-events.c | 46 +-
tools/perf/util/mem-events.h | 3 +
tools/perf/util/metricgroup.c | 284 +-
tools/perf/util/metricgroup.h | 5 +-
tools/perf/util/off_cpu.h | 9 +
tools/perf/util/ordered-events.h | 6 +
tools/perf/util/parse-events.c | 736 +-
tools/perf/util/parse-events.h | 35 +-
tools/perf/util/perf_api_probe.c | 2 +-
tools/perf/util/pmu.c | 154 +-
tools/perf/util/pmu.h | 12 +-
tools/perf/util/print-events.c | 572 +
tools/perf/util/print-events.h | 22 +
tools/perf/util/probe-event.c | 8 +-
tools/perf/util/record.c | 4 +-
tools/perf/util/record.h | 1 +
tools/perf/util/s390-sample-raw.c | 50 +-
tools/perf/util/scripting-engines/Build | 4 +-
.../util/scripting-engines/trace-event-python.c | 17 +-
tools/perf/util/session.c | 115 +-
tools/perf/util/session.h | 4 +
tools/perf/util/setup.py | 12 +-
tools/perf/util/stat-display.c | 383 +-
tools/perf/util/stat.c | 1 +
tools/perf/util/stat.h | 2 +
tools/perf/util/symbol-elf.c | 71 +-
tools/perf/util/symbol.c | 6 +-
tools/perf/util/synthetic-events.c | 114 +-
tools/perf/util/synthetic-events.h | 2 +
tools/perf/util/thread.c | 1 +
tools/perf/util/thread.h | 1 +
tools/perf/util/tool.h | 3 +-
tools/perf/util/topdown.c | 7 +
tools/perf/util/topdown.h | 3 +-
tools/perf/util/trace-event-info.c | 96 +
tools/perf/util/tracepoint.c | 63 +
tools/perf/util/tracepoint.h | 25 +
tools/perf/util/tsc.h | 1 +
tools/perf/util/unwind-libunwind-local.c | 4 +-
tools/perf/util/util.c | 70 +-
tools/perf/util/util.h | 15 +
tools/power/cpupower/debug/i386/dump_psb.c | 6 +-
tools/power/pm-graph/README | 6 +-
tools/power/pm-graph/bootgraph.py | 20 +-
.../pm-graph/config/custom-timeline-functions.cfg | 2 +-
tools/power/pm-graph/sleepgraph.py | 518 +-
tools/power/x86/intel-speed-select/hfi-events.c | 2 +-
tools/power/x86/intel-speed-select/isst-daemon.c | 2 +-
tools/power/x86/turbostat/turbostat.8 | 200 +-
tools/power/x86/turbostat/turbostat.c | 240 +-
tools/spi/spidev_test.c | 11 +
tools/testing/crypto/chacha20-s390/test-cipher.c | 9 +-
tools/testing/cxl/Kbuild | 1 +
tools/testing/cxl/test/cxl.c | 131 +-
tools/testing/cxl/test/mem.c | 53 +-
tools/testing/cxl/test/mock.c | 8 +-
tools/testing/kunit/configs/arch_uml.config | 5 +
tools/testing/kunit/configs/coverage_uml.config | 11 +
tools/testing/kunit/kunit.py | 83 +-
tools/testing/kunit/kunit_config.py | 54 +-
tools/testing/kunit/kunit_kernel.py | 104 +-
tools/testing/kunit/kunit_parser.py | 63 +-
tools/testing/kunit/kunit_printer.py | 48 +
tools/testing/kunit/kunit_tool_test.py | 214 +-
tools/testing/memblock/Makefile | 3 +-
tools/testing/memblock/README | 17 +-
tools/testing/memblock/TODO | 14 +-
tools/testing/memblock/internal.h | 11 +
tools/testing/memblock/linux/kmemleak.h | 2 +-
tools/testing/memblock/linux/memory_hotplug.h | 8 +-
tools/testing/memblock/main.c | 2 +
tools/testing/memblock/scripts/Makefile.include | 10 +-
tools/testing/memblock/tests/alloc_api.c | 225 +-
tools/testing/memblock/tests/alloc_helpers_api.c | 129 +-
tools/testing/memblock/tests/alloc_nid_api.c | 351 +-
tools/testing/memblock/tests/basic_api.c | 337 +-
tools/testing/memblock/tests/common.c | 118 +
tools/testing/memblock/tests/common.h | 54 +
tools/testing/selftests/Makefile | 31 +-
tools/testing/selftests/arm64/mte/Makefile | 1 -
tools/testing/selftests/arm64/signal/Makefile | 1 -
.../testing/selftests/arm64/signal/test_signals.h | 4 +-
tools/testing/selftests/bpf/.gitignore | 3 +-
tools/testing/selftests/bpf/DENYLIST | 6 +
tools/testing/selftests/bpf/DENYLIST.s390x | 67 +
tools/testing/selftests/bpf/Makefile | 34 +-
tools/testing/selftests/bpf/bench.c | 99 +
tools/testing/selftests/bpf/bench.h | 16 +
.../bpf/benchs/bench_bpf_hashmap_full_update.c | 96 +
.../selftests/bpf/benchs/bench_local_storage.c | 287 +
.../benchs/bench_local_storage_rcu_tasks_trace.c | 281 +
.../benchs/run_bench_bpf_hashmap_full_update.sh | 11 +
.../bpf/benchs/run_bench_local_storage.sh | 24 +
.../run_bench_local_storage_rcu_tasks_trace.sh | 11 +
tools/testing/selftests/bpf/benchs/run_common.sh | 17 +
tools/testing/selftests/bpf/bpf_legacy.h | 9 -
.../selftests/bpf/bpf_testmod/bpf_testmod.c | 10 +-
tools/testing/selftests/bpf/btf_helpers.c | 25 +-
tools/testing/selftests/bpf/config | 93 +-
tools/testing/selftests/bpf/config.s390x | 147 +
tools/testing/selftests/bpf/config.x86_64 | 251 +
tools/testing/selftests/bpf/network_helpers.c | 2 +-
.../selftests/bpf/prog_tests/attach_probe.c | 49 +-
.../testing/selftests/bpf/prog_tests/bpf_cookie.c | 78 +-
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 132 +-
tools/testing/selftests/bpf/prog_tests/bpf_loop.c | 62 +
tools/testing/selftests/bpf/prog_tests/bpf_nf.c | 64 +-
.../testing/selftests/bpf/prog_tests/bpf_tcp_ca.c | 61 +
tools/testing/selftests/bpf/prog_tests/btf.c | 157 +-
tools/testing/selftests/bpf/prog_tests/btf_write.c | 126 +-
.../testing/selftests/bpf/prog_tests/core_extern.c | 17 +-
.../testing/selftests/bpf/prog_tests/core_reloc.c | 140 +-
.../selftests/bpf/prog_tests/fexit_bpf2bpf.c | 109 +
.../selftests/bpf/prog_tests/fexit_stress.c | 32 +-
.../selftests/bpf/prog_tests/kprobe_multi_test.c | 9 +-
.../testing/selftests/bpf/prog_tests/libbpf_str.c | 207 +
tools/testing/selftests/bpf/prog_tests/lru_bug.c | 21 +
.../testing/selftests/bpf/prog_tests/lsm_cgroup.c | 313 +
.../testing/selftests/bpf/prog_tests/probe_user.c | 35 +-
.../selftests/bpf/prog_tests/resolve_btfids.c | 2 +-
.../selftests/bpf/prog_tests/ringbuf_multi.c | 11 +
.../testing/selftests/bpf/prog_tests/send_signal.c | 2 +-
tools/testing/selftests/bpf/prog_tests/skeleton.c | 2 +
.../testing/selftests/bpf/prog_tests/sock_fields.c | 1 -
.../selftests/bpf/prog_tests/sockmap_ktls.c | 84 +-
tools/testing/selftests/bpf/prog_tests/tailcalls.c | 55 +
.../testing/selftests/bpf/prog_tests/tc_redirect.c | 8 +-
.../testing/selftests/bpf/prog_tests/test_tunnel.c | 17 +-
tools/testing/selftests/bpf/prog_tests/usdt.c | 2 +-
.../selftests/bpf/prog_tests/xdp_synproxy.c | 183 +
.../bpf/progs/bpf_hashmap_full_update_bench.c | 40 +
tools/testing/selftests/bpf/progs/bpf_iter.h | 7 +
.../selftests/bpf/progs/bpf_iter_bpf_hash_map.c | 9 +
.../bpf/progs/bpf_iter_bpf_sk_storage_map.c | 22 +-
tools/testing/selftests/bpf/progs/bpf_iter_ksym.c | 74 +
tools/testing/selftests/bpf/progs/bpf_loop.c | 114 +
.../selftests/bpf/progs/bpf_syscall_macro.c | 6 +-
.../testing/selftests/bpf/progs/bpf_tracing_net.h | 1 +
.../bpf/progs/btf__core_reloc_enum64val.c | 3 +
.../bpf/progs/btf__core_reloc_enum64val___diff.c | 3 +
.../btf__core_reloc_enum64val___err_missing.c | 3 +
.../btf__core_reloc_enum64val___val3_missing.c | 3 +
.../bpf/progs/btf__core_reloc_type_based___diff.c | 3 +
.../testing/selftests/bpf/progs/core_reloc_types.h | 190 +-
tools/testing/selftests/bpf/progs/dynptr_fail.c | 10 +-
tools/testing/selftests/bpf/progs/dynptr_success.c | 4 +-
.../selftests/bpf/progs/freplace_global_func.c | 18 +
tools/testing/selftests/bpf/progs/kprobe_multi.c | 24 +-
.../selftests/bpf/progs/local_storage_bench.c | 104 +
.../progs/local_storage_rcu_tasks_trace_bench.c | 67 +
tools/testing/selftests/bpf/progs/lru_bug.c | 49 +
tools/testing/selftests/bpf/progs/lsm_cgroup.c | 180 +
.../selftests/bpf/progs/lsm_cgroup_nonvoid.c | 14 +
.../selftests/bpf/progs/tailcall_bpf2bpf6.c | 42 +
.../selftests/bpf/progs/tcp_ca_incompl_cong_ops.c | 35 +
.../selftests/bpf/progs/tcp_ca_unsupp_cong_op.c | 21 +
.../selftests/bpf/progs/tcp_ca_write_sk_pacing.c | 60 +
.../selftests/bpf/progs/test_attach_probe.c | 73 +-
tools/testing/selftests/bpf/progs/test_bpf_nf.c | 85 +-
.../testing/selftests/bpf/progs/test_bpf_nf_fail.c | 134 +
tools/testing/selftests/bpf/progs/test_btf_haskv.c | 51 -
tools/testing/selftests/bpf/progs/test_btf_newkv.c | 18 -
.../testing/selftests/bpf/progs/test_core_extern.c | 3 +
.../bpf/progs/test_core_reloc_enum64val.c | 70 +
.../selftests/bpf/progs/test_core_reloc_kernel.c | 19 +
.../bpf/progs/test_core_reloc_type_based.c | 49 +-
.../testing/selftests/bpf/progs/test_probe_user.c | 50 +-
tools/testing/selftests/bpf/progs/test_skeleton.c | 4 +
tools/testing/selftests/bpf/progs/test_tc_dtime.c | 53 +-
.../testing/selftests/bpf/progs/test_tunnel_kern.c | 80 +-
tools/testing/selftests/bpf/progs/test_varlen.c | 8 +-
.../selftests/bpf/progs/test_xdp_noinline.c | 30 +-
.../selftests/bpf/progs/xdp_synproxy_kern.c | 843 +
.../selftests/bpf/test_bpftool_synctypes.py | 182 +-
tools/testing/selftests/bpf/test_btf.h | 3 +
tools/testing/selftests/bpf/test_progs.c | 7 +-
tools/testing/selftests/bpf/test_verifier.c | 367 +-
tools/testing/selftests/bpf/test_xdp_veth.sh | 6 +-
tools/testing/selftests/bpf/test_xdping.sh | 4 +
tools/testing/selftests/bpf/test_xsk.sh | 6 +-
.../selftests/bpf/verifier/bpf_loop_inline.c | 264 +
tools/testing/selftests/bpf/verifier/calls.c | 53 +
tools/testing/selftests/bpf/verifier/jmp32.c | 21 +
tools/testing/selftests/bpf/verifier/jump.c | 22 +
tools/testing/selftests/bpf/vmtest.sh | 53 +-
tools/testing/selftests/bpf/xdp_synproxy.c | 466 +
tools/{lib => testing/selftests}/bpf/xsk.c | 92 +-
tools/{lib => testing/selftests}/bpf/xsk.h | 30 +-
tools/testing/selftests/bpf/xsk_prereqs.sh | 4 +-
.../selftests/bpf/{xdpxceiver.c => xskxceiver.c} | 25 +-
.../selftests/bpf/{xdpxceiver.h => xskxceiver.h} | 6 +-
tools/testing/selftests/damon/_chk_dependency.sh | 10 +
tools/testing/selftests/dma/Makefile | 1 +
tools/testing/selftests/dma/dma_map_benchmark.c | 2 +-
tools/testing/selftests/drivers/dma-buf/udmabuf.c | 3 +-
tools/testing/selftests/drivers/gpu/drm_mm.sh | 4 +-
tools/testing/selftests/drivers/net/dsa/Makefile | 17 +
.../drivers/net/mlxsw/devlink_linecard.sh | 54 +
.../drivers/net/mlxsw/rif_counter_scale.sh | 107 +
.../drivers/net/mlxsw/spectrum-2/resource_scale.sh | 31 +-
.../net/mlxsw/spectrum-2/rif_counter_scale.sh | 1 +
.../net/mlxsw/spectrum-2/tc_flower_scale.sh | 15 +-
.../drivers/net/mlxsw/spectrum/resource_scale.sh | 29 +-
.../net/mlxsw/spectrum/rif_counter_scale.sh | 34 +
.../selftests/drivers/net/mlxsw/tc_flower_scale.sh | 17 +
.../testing/selftests/drivers/net/netdevsim/fib.sh | 45 +
.../selftests/drivers/s390x/uvdevice/Makefile | 1 -
.../testing/selftests/filesystems/binderfs/config | 1 -
.../testing/selftests/filesystems/fat}/.gitignore | 3 +-
tools/testing/selftests/filesystems/fat/Makefile | 7 +
tools/testing/selftests/filesystems/fat/config | 2 +
.../selftests/filesystems/fat/rename_exchange.c | 37 +
.../selftests/filesystems/fat/run_fat_tests.sh | 82 +
.../ftrace/test.d/dynevent/add_remove_eprobe.tc | 9 +-
.../ftrace/test.d/dynevent/add_remove_kprobe.tc | 7 +
.../ftrace/test.d/kprobe/kprobe_syntax_errors.tc | 2 +-
tools/testing/selftests/futex/functional/Makefile | 1 -
tools/testing/selftests/gpio/Makefile | 2 +-
tools/testing/selftests/kcmp/kcmp_test.c | 6 +-
tools/testing/selftests/kexec/kexec_common_lib.sh | 36 +-
tools/testing/selftests/kselftest_deps.sh | 2 +-
tools/testing/selftests/kselftest_module.h | 4 +
tools/testing/selftests/kvm/.gitignore | 10 +-
tools/testing/selftests/kvm/Makefile | 76 +-
tools/testing/selftests/kvm/aarch64/arch_timer.c | 88 +-
.../selftests/kvm/aarch64/debug-exceptions.c | 26 +-
tools/testing/selftests/kvm/aarch64/get-reg-list.c | 30 +-
tools/testing/selftests/kvm/aarch64/hypercalls.c | 97 +-
tools/testing/selftests/kvm/aarch64/psci_test.c | 72 +-
.../selftests/kvm/aarch64/vcpu_width_config.c | 71 +-
tools/testing/selftests/kvm/aarch64/vgic_init.c | 446 +-
tools/testing/selftests/kvm/aarch64/vgic_irq.c | 44 +-
.../selftests/kvm/access_tracking_perf_test.c | 92 +-
tools/testing/selftests/kvm/demand_paging_test.c | 49 +-
tools/testing/selftests/kvm/dirty_log_perf_test.c | 89 +-
tools/testing/selftests/kvm/dirty_log_test.c | 95 +-
.../testing/selftests/kvm/hardware_disable_test.c | 29 +-
.../selftests/kvm/include/aarch64/processor.h | 28 +-
tools/testing/selftests/kvm/include/aarch64/vgic.h | 6 +-
.../testing/selftests/kvm/include/kvm_util_base.h | 823 +-
.../testing/selftests/kvm/include/perf_test_util.h | 14 +-
.../selftests/kvm/include/riscv/processor.h | 20 -
tools/testing/selftests/kvm/include/test_util.h | 7 +
tools/testing/selftests/kvm/include/ucall_common.h | 65 +-
tools/testing/selftests/kvm/include/x86_64/apic.h | 1 +
tools/testing/selftests/kvm/include/x86_64/evmcs.h | 2 +-
tools/testing/selftests/kvm/include/x86_64/mce.h | 25 +
.../selftests/kvm/include/x86_64/processor.h | 499 +-
tools/testing/selftests/kvm/include/x86_64/svm.h | 2 -
.../selftests/kvm/include/x86_64/svm_util.h | 27 +-
tools/testing/selftests/kvm/include/x86_64/vmx.h | 8 +-
.../testing/selftests/kvm/kvm_binary_stats_test.c | 183 +-
tools/testing/selftests/kvm/kvm_create_max_vcpus.c | 10 +-
tools/testing/selftests/kvm/kvm_page_table_test.c | 66 +-
.../testing/selftests/kvm/lib/aarch64/processor.c | 81 +-
tools/testing/selftests/kvm/lib/aarch64/ucall.c | 22 +-
tools/testing/selftests/kvm/lib/aarch64/vgic.c | 54 +-
tools/testing/selftests/kvm/lib/elf.c | 1 -
tools/testing/selftests/kvm/lib/guest_modes.c | 6 +-
tools/testing/selftests/kvm/lib/kvm_util.c | 1207 +-
.../testing/selftests/kvm/lib/kvm_util_internal.h | 128 -
tools/testing/selftests/kvm/lib/perf_test_util.c | 125 +-
tools/testing/selftests/kvm/lib/riscv/processor.c | 111 +-
tools/testing/selftests/kvm/lib/riscv/ucall.c | 16 +-
.../selftests/kvm/lib/s390x/diag318_test_handler.c | 11 +-
tools/testing/selftests/kvm/lib/s390x/processor.c | 44 +-
tools/testing/selftests/kvm/lib/s390x/ucall.c | 10 +-
.../selftests/kvm/lib/x86_64/perf_test_util.c | 111 +
tools/testing/selftests/kvm/lib/x86_64/processor.c | 842 +-
tools/testing/selftests/kvm/lib/x86_64/svm.c | 17 -
tools/testing/selftests/kvm/lib/x86_64/ucall.c | 12 +-
tools/testing/selftests/kvm/lib/x86_64/vmx.c | 167 +-
.../testing/selftests/kvm/max_guest_memory_test.c | 55 +-
.../kvm/memslot_modification_stress_test.c | 13 +-
tools/testing/selftests/kvm/memslot_perf_test.c | 32 +-
tools/testing/selftests/kvm/rseq_test.c | 88 +-
tools/testing/selftests/kvm/s390x/memop.c | 182 +-
tools/testing/selftests/kvm/s390x/resets.c | 178 +-
tools/testing/selftests/kvm/s390x/sync_regs_test.c | 121 +-
tools/testing/selftests/kvm/s390x/tprot.c | 68 +-
.../testing/selftests/kvm/set_memory_region_test.c | 46 +-
tools/testing/selftests/kvm/steal_time.c | 123 +-
.../selftests/kvm/system_counter_offset_test.c | 38 +-
tools/testing/selftests/kvm/x86_64/amx_test.c | 91 +-
tools/testing/selftests/kvm/x86_64/cpuid_test.c | 105 +-
.../selftests/kvm/x86_64/cr4_cpuid_sync_test.c | 43 +-
tools/testing/selftests/kvm/x86_64/debug_regs.c | 77 +-
.../selftests/kvm/x86_64/emulator_error_test.c | 85 +-
tools/testing/selftests/kvm/x86_64/evmcs_test.c | 65 +-
.../selftests/kvm/x86_64/fix_hypercall_test.c | 47 +-
.../selftests/kvm/x86_64/get_msr_index_features.c | 117 +-
tools/testing/selftests/kvm/x86_64/hyperv_clock.c | 38 +-
tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c | 48 +-
.../testing/selftests/kvm/x86_64/hyperv_features.c | 406 +-
.../testing/selftests/kvm/x86_64/hyperv_svm_test.c | 28 +-
.../testing/selftests/kvm/x86_64/kvm_clock_test.c | 32 +-
tools/testing/selftests/kvm/x86_64/kvm_pv_test.c | 117 +-
.../selftests/kvm/x86_64/max_vcpuid_cap_test.c | 44 +
.../selftests/kvm/x86_64/mmio_warning_test.c | 16 +-
tools/testing/selftests/kvm/x86_64/mmu_role_test.c | 147 -
.../selftests/kvm/x86_64/monitor_mwait_test.c | 131 +
.../selftests/kvm/x86_64/nx_huge_pages_test.c | 269 +
.../selftests/kvm/x86_64/nx_huge_pages_test.sh | 59 +
.../selftests/kvm/x86_64/platform_info_test.c | 51 +-
.../selftests/kvm/x86_64/pmu_event_filter_test.c | 117 +-
.../testing/selftests/kvm/x86_64/set_boot_cpu_id.c | 95 +-
.../testing/selftests/kvm/x86_64/set_sregs_test.c | 75 +-
.../selftests/kvm/x86_64/sev_migrate_tests.c | 131 +-
tools/testing/selftests/kvm/x86_64/smm_test.c | 46 +-
tools/testing/selftests/kvm/x86_64/state_test.c | 39 +-
.../selftests/kvm/x86_64/svm_int_ctl_test.c | 25 +-
.../kvm/x86_64/svm_nested_soft_inject_test.c | 211 +
.../testing/selftests/kvm/x86_64/svm_vmcall_test.c | 20 +-
.../testing/selftests/kvm/x86_64/sync_regs_test.c | 62 +-
.../selftests/kvm/x86_64/triple_fault_event_test.c | 90 +
tools/testing/selftests/kvm/x86_64/tsc_msrs_test.c | 39 +-
.../selftests/kvm/x86_64/tsc_scaling_sync.c | 25 +-
.../selftests/kvm/x86_64/ucna_injection_test.c | 316 +
.../selftests/kvm/x86_64/userspace_io_test.c | 22 +-
.../selftests/kvm/x86_64/userspace_msr_exit_test.c | 188 +-
.../selftests/kvm/x86_64/vmx_apic_access_test.c | 32 +-
.../kvm/x86_64/vmx_close_while_nested_test.c | 21 +-
.../selftests/kvm/x86_64/vmx_dirty_log_test.c | 18 +-
.../vmx_exception_with_invalid_guest_state.c | 68 +-
.../kvm/x86_64/vmx_invalid_nested_guest_state.c | 22 +-
tools/testing/selftests/kvm/x86_64/vmx_msrs_test.c | 84 +
.../kvm/x86_64/vmx_nested_tsc_scaling_test.c | 33 +-
.../selftests/kvm/x86_64/vmx_pmu_caps_test.c | 73 +-
.../kvm/x86_64/vmx_preemption_timer_test.c | 38 +-
.../kvm/x86_64/vmx_set_nested_state_test.c | 105 +-
.../selftests/kvm/x86_64/vmx_tsc_adjust_test.c | 17 +-
.../testing/selftests/kvm/x86_64/xapic_ipi_test.c | 48 +-
.../selftests/kvm/x86_64/xapic_state_test.c | 82 +-
.../testing/selftests/kvm/x86_64/xen_shinfo_test.c | 75 +-
.../testing/selftests/kvm/x86_64/xen_vmcall_test.c | 27 +-
tools/testing/selftests/kvm/x86_64/xss_msr_test.c | 56 +-
tools/testing/selftests/landlock/Makefile | 10 +-
tools/testing/selftests/lib.mk | 63 +-
tools/testing/selftests/net/.gitignore | 4 +-
tools/testing/selftests/net/Makefile | 11 +-
tools/testing/selftests/net/af_unix/Makefile | 3 +-
tools/testing/selftests/net/af_unix/unix_connect.c | 148 +
.../selftests/net/arp_ndisc_untracked_subnets.sh | 308 +
tools/testing/selftests/net/bind_bhash_test.c | 119 -
tools/testing/selftests/net/bpf/Makefile | 4 +-
tools/testing/selftests/net/cmsg_sender.c | 2 +-
tools/testing/selftests/net/fcnal-test.sh | 61 +-
tools/testing/selftests/net/fib_nexthop_nongw.sh | 119 +
tools/testing/selftests/net/fib_rule_tests.sh | 23 +
tools/testing/selftests/net/forwarding/Makefile | 3 +
.../net/forwarding/bridge_mdb_port_down.sh | 118 +
.../net/forwarding/custom_multipath_hash.sh | 24 +-
.../net/forwarding/ethtool_extended_state.sh | 43 +-
.../net/forwarding/gre_custom_multipath_hash.sh | 24 +-
.../net/forwarding/ip6gre_custom_multipath_hash.sh | 24 +-
tools/testing/selftests/net/forwarding/lib.sh | 6 +-
.../net/forwarding/mirror_gre_bridge_1q_lag.sh | 7 +-
.../selftests/net/forwarding/vxlan_asymmetric.sh | 2 +-
tools/testing/selftests/net/io_uring_zerocopy_tx.c | 605 +
.../testing/selftests/net/io_uring_zerocopy_tx.sh | 131 +
tools/testing/selftests/net/ioam6.sh | 12 +-
tools/testing/selftests/net/ipv6_flowlabel.c | 75 +-
tools/testing/selftests/net/ipv6_flowlabel.sh | 16 +
tools/testing/selftests/net/mptcp/Makefile | 3 +-
tools/testing/selftests/net/mptcp/diag.sh | 48 +-
tools/testing/selftests/net/mptcp/mptcp_connect.c | 28 +-
tools/testing/selftests/net/mptcp/mptcp_inq.c | 2 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh | 116 +-
tools/testing/selftests/net/mptcp/mptcp_sockopt.c | 2 +-
tools/testing/selftests/net/mptcp/pm_nl_ctl.c | 75 +-
tools/testing/selftests/net/mptcp/simult_flows.sh | 14 +-
tools/testing/selftests/net/mptcp/userspace_pm.sh | 72 +-
.../selftests/net/srv6_hencap_red_l3vpn_test.sh | 879 +
.../selftests/net/srv6_hl2encap_red_l2vpn_test.sh | 821 +
tools/testing/selftests/net/tap.c | 434 +
tools/testing/selftests/net/tls.c | 124 +-
tools/testing/selftests/net/tun.c | 162 +
tools/testing/selftests/net/udpgro.sh | 2 +-
tools/testing/selftests/net/udpgro_bench.sh | 2 +-
tools/testing/selftests/net/udpgro_frglist.sh | 2 +-
tools/testing/selftests/net/udpgro_fwd.sh | 2 +-
tools/testing/selftests/net/udpgso_bench.sh | 2 +-
tools/testing/selftests/net/veth.sh | 6 +-
.../selftests/netfilter/nft_concat_range.sh | 2 +-
tools/testing/selftests/netfilter/nft_nat.sh | 43 +
.../selftests/netfilter/nft_trans_stress.sh | 81 +-
.../testing/selftests/powerpc/include/basic_asm.h | 63 +-
tools/testing/selftests/powerpc/include/reg.h | 73 +-
tools/testing/selftests/powerpc/include/utils.h | 10 +
tools/testing/selftests/powerpc/lib/reg.S | 107 +-
tools/testing/selftests/powerpc/math/.gitignore | 1 +
tools/testing/selftests/powerpc/math/mma.S | 3 +
tools/testing/selftests/powerpc/mce/.gitignore | 1 +
.../selftests/powerpc/papr_attributes/attr_test.c | 30 +-
tools/testing/selftests/powerpc/pmu/Makefile | 11 +-
tools/testing/selftests/powerpc/pmu/branch_loops.S | 28 +
tools/testing/selftests/powerpc/pmu/ebb/.gitignore | 1 +
.../powerpc/pmu/ebb/cycles_with_mmcr2_test.c | 1 +
.../powerpc/pmu/event_code_tests/Makefile | 15 +
.../pmu/event_code_tests/blacklisted_events_test.c | 132 +
.../event_alternatives_tests_p10.c | 109 +
.../event_code_tests/event_alternatives_tests_p9.c | 116 +
.../event_code_tests/generic_events_valid_test.c | 130 +
.../event_code_tests/group_constraint_cache_test.c | 60 +
.../group_constraint_l2l3_sel_test.c | 64 +
.../group_constraint_mmcra_sample_test.c | 54 +
.../event_code_tests/group_constraint_pmc56_test.c | 63 +
.../group_constraint_pmc_count_test.c | 70 +
.../group_constraint_radix_scope_qual_test.c | 56 +
.../group_constraint_repeat_test.c | 56 +
.../group_constraint_thresh_cmp_test.c | 96 +
.../group_constraint_thresh_ctl_test.c | 64 +
.../group_constraint_thresh_sel_test.c | 63 +
.../event_code_tests/group_constraint_unit_test.c | 74 +
.../group_pmc56_exclude_constraints_test.c | 64 +
.../event_code_tests/hw_cache_event_type_test.c | 88 +
.../pmu/event_code_tests/invalid_event_code_test.c | 67 +
.../reserved_bits_mmcra_sample_elig_mode_test.c | 77 +
.../reserved_bits_mmcra_thresh_ctl_test.c | 44 +
.../selftests/powerpc/pmu/sampling_tests/Makefile | 7 +-
.../pmu/sampling_tests/bhrb_filter_map_test.c | 105 +
.../pmu/sampling_tests/bhrb_no_crash_wo_pmu_test.c | 59 +
.../intr_regs_no_crash_wo_pmu_test.c | 57 +
.../selftests/powerpc/pmu/sampling_tests/misc.c | 135 +-
.../selftests/powerpc/pmu/sampling_tests/misc.h | 9 +-
.../pmu/sampling_tests/mmcr1_sel_unit_cache_test.c | 77 +
.../pmu/sampling_tests/mmcra_bhrb_any_test.c | 65 +
.../pmu/sampling_tests/mmcra_bhrb_cond_test.c | 69 +
.../mmcra_bhrb_disable_no_branch_test.c | 64 +
.../pmu/sampling_tests/mmcra_bhrb_disable_test.c | 66 +
.../pmu/sampling_tests/mmcra_bhrb_ind_call_test.c | 69 +
.../pmu/sampling_tests/mmcra_thresh_cmp_test.c | 74 +
tools/testing/selftests/powerpc/ptrace/Makefile | 40 +-
.../testing/selftests/powerpc/ptrace/ptrace-gpr.S | 52 +
.../testing/selftests/powerpc/ptrace/ptrace-gpr.c | 125 +-
.../testing/selftests/powerpc/ptrace/ptrace-gpr.h | 14 +-
.../selftests/powerpc/ptrace/ptrace-tm-gpr.c | 18 +-
.../selftests/powerpc/ptrace/ptrace-tm-spd-gpr.c | 20 +-
tools/testing/selftests/powerpc/ptrace/ptrace.h | 79 +-
.../testing/selftests/powerpc/security/.gitignore | 1 +
tools/testing/selftests/proc/proc-pid-vm.c | 75 +-
.../selftests/rcutorture/bin/kvm-check-branches.sh | 11 +-
.../testing/selftests/rcutorture/bin/kvm-remote.sh | 1 +
tools/testing/selftests/rcutorture/bin/kvm.sh | 6 +-
tools/testing/selftests/rseq/rseq-riscv.h | 50 +-
tools/testing/selftests/rseq/rseq.c | 3 +-
tools/testing/selftests/safesetid/Makefile | 2 +-
tools/testing/selftests/safesetid/safesetid-test.c | 295 +-
tools/testing/selftests/seccomp/seccomp_bpf.c | 2 +-
tools/testing/selftests/sgx/defines.h | 23 +
tools/testing/selftests/sgx/load.c | 41 +
tools/testing/selftests/sgx/main.c | 1435 +
tools/testing/selftests/sgx/main.h | 1 +
tools/testing/selftests/sgx/test_encl.c | 68 +
tools/testing/selftests/sgx/test_encl_bootstrap.S | 6 +
tools/testing/selftests/sync/config | 1 -
tools/testing/selftests/tc-testing/.gitignore | 1 -
tools/testing/selftests/tc-testing/Makefile | 1 -
.../tc-testing/tc-tests/actions/gact.json | 77 +
tools/testing/selftests/timens/Makefile | 2 +-
tools/testing/selftests/timens/vfork_exec.c | 90 +
tools/testing/selftests/timers/adjtick.c | 2 +-
.../testing/selftests/timers/alarmtimer-suspend.c | 2 +-
tools/testing/selftests/timers/change_skew.c | 2 +-
.../testing/selftests/timers/clocksource-switch.c | 71 +-
.../testing/selftests/timers/inconsistency-check.c | 32 +-
tools/testing/selftests/timers/nanosleep.c | 18 +-
tools/testing/selftests/timers/raw_skew.c | 2 +-
tools/testing/selftests/timers/skew_consistency.c | 2 +-
tools/testing/selftests/timers/valid-adjtimex.c | 2 +-
tools/testing/selftests/tpm2/settings | 1 +
tools/testing/selftests/vm/Makefile | 2 +-
tools/testing/selftests/vm/gup_test.c | 4 +-
tools/testing/selftests/vm/hmm-tests.c | 325 +-
tools/testing/selftests/vm/hugepage-mremap.c | 2 +-
tools/testing/selftests/vm/hugetlb-madvise.c | 5 +-
tools/testing/selftests/vm/ksm_tests.c | 2 +
tools/testing/selftests/vm/mrelease_test.c | 16 +-
tools/testing/selftests/vm/run_vmtests.sh | 15 +-
tools/testing/selftests/vm/soft-dirty.c | 67 +-
tools/testing/selftests/vm/test_hmm.sh | 24 +-
tools/testing/selftests/vm/userfaultfd.c | 6 +-
tools/testing/selftests/vm/va_128TBswitch.c | 8 +-
tools/testing/selftests/vm/va_128TBswitch.sh | 54 +
tools/testing/selftests/wireguard/qemu/Makefile | 61 +-
.../selftests/wireguard/qemu/arch/arm.config | 1 +
.../selftests/wireguard/qemu/arch/armeb.config | 1 +
.../selftests/wireguard/qemu/arch/i686.config | 8 +-
.../selftests/wireguard/qemu/arch/m68k.config | 10 +-
.../selftests/wireguard/qemu/arch/mips.config | 1 +
.../selftests/wireguard/qemu/arch/mipsel.config | 1 +
.../selftests/wireguard/qemu/arch/powerpc.config | 1 +
.../selftests/wireguard/qemu/arch/riscv32.config | 1 +
.../selftests/wireguard/qemu/arch/um.config | 3 +
.../selftests/wireguard/qemu/arch/x86_64.config | 7 +-
.../testing/selftests/wireguard/qemu/debug.config | 5 -
tools/testing/selftests/wireguard/qemu/init.c | 14 +
.../testing/selftests/wireguard/qemu/kernel.config | 5 +-
tools/thermal/tmon/pid.c | 2 +-
tools/thermal/tmon/sysfs.c | 24 +-
tools/thermal/tmon/tmon.h | 3 +
tools/tracing/rtla/Makefile | 2 +-
tools/tracing/rtla/src/trace.c | 9 +-
tools/tracing/rtla/src/utils.c | 7 +-
tools/usb/testusb.c | 18 +-
tools/verification/dot2/Makefile | 26 +
tools/verification/dot2/automata.py | 174 +
tools/verification/dot2/dot2c | 26 +
tools/verification/dot2/dot2c.py | 254 +
tools/verification/dot2/dot2k | 47 +
tools/verification/dot2/dot2k.py | 177 +
.../dot2/dot2k_templates/main_global.c | 91 +
.../dot2/dot2k_templates/main_per_cpu.c | 91 +
.../dot2/dot2k_templates/main_per_task.c | 91 +
tools/verification/models/wip.dot | 16 +
tools/verification/models/wwnr.dot | 16 +
tools/virtio/linux/kernel.h | 2 +-
tools/virtio/linux/vringh.h | 1 +
tools/virtio/virtio_test.c | 4 +-
tools/vm/page_owner_sort.c | 30 +-
tools/vm/slabinfo.c | 58 +-
virt/kvm/kvm_main.c | 311 +-
virt/kvm/pfncache.c | 231 +-
14075 files changed, 1381208 insertions(+), 278526 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-bus-event_source-devices-caps
delete mode 100644 Documentation/ABI/testing/sysfs-bus-iio-temperature-max31856
delete mode 100644 Documentation/ABI/testing/sysfs-bus-iio-temperature-max31865
create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-thermocouple
create mode 100644 Documentation/ABI/testing/sysfs-bus-platform-onboard-usb-hub
create mode 100644 Documentation/ABI/testing/sysfs-bus-surface_aggregator-tabletsw
create mode 100644 Documentation/ABI/testing/sysfs-class-usb_power_delivery
create mode 100644 Documentation/ABI/testing/sysfs-class-vduse
create mode 100644 Documentation/ABI/testing/sysfs-driver-intel-m10-bmc-sec-update
create mode 100644 Documentation/ABI/testing/sysfs-driver-qat
create mode 100644 Documentation/PCI/endpoint/pci-vntb-function.rst
create mode 100644 Documentation/PCI/endpoint/pci-vntb-howto.rst
create mode 100644 Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst
create mode 100644 Documentation/admin-guide/mm/damon/lru_sort.rst
create mode 100644 Documentation/admin-guide/mm/shrinker_debugfs.rst
create mode 100644 Documentation/admin-guide/perf/hns3-pmu.rst
create mode 100644 Documentation/arm/google/chromebook-boot-flow.rst
create mode 100644 Documentation/bpf/kfuncs.rst
create mode 100644 Documentation/bpf/map_hash.rst
delete mode 100644 Documentation/core-api/bus-virt-phys-mapping.rst
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
rename Documentation/devicetree/bindings/arm/{coresight-cti.yaml => arm,coresight-cti.yaml} (98%)
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-replicator.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etb10.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tmc.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tpiu.yaml
rename Documentation/devicetree/bindings/arm/{ete.yaml => arm,embedded-trace-extension.yaml} (95%)
rename Documentation/devicetree/bindings/arm/{trbe.yaml => arm,trace-buffer-extension.yaml} (94%)
create mode 100644 Documentation/devicetree/bindings/arm/aspeed/aspeed.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
delete mode 100644 Documentation/devicetree/bindings/arm/coresight.txt
delete mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt
create mode 100644 Documentation/devicetree/bindings/arm/marvell/marvell,ac5.yaml
create mode 100644 Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml
create mode 100644 Documentation/devicetree/bindings/arm/sunplus,sp7021.yaml
create mode 100644 Documentation/devicetree/bindings/arm/tegra/nvidia,tegra194-axi2apb.yaml
create mode 100644 Documentation/devicetree/bindings/arm/tegra/nvidia,tegra194-cbb.yaml
create mode 100644 Documentation/devicetree/bindings/arm/tegra/nvidia,tegra234-cbb.yaml
delete mode 100644 Documentation/devicetree/bindings/ata/ahci-ceva.txt
create mode 100644 Documentation/devicetree/bindings/ata/ceva,ahci-1v84.yaml
delete mode 100644 Documentation/devicetree/bindings/chosen.txt
create mode 100644 Documentation/devicetree/bindings/chrome/google,cros-kbd-led-backlight.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/efm32-clock.txt
create mode 100644 Documentation/devicetree/bindings/clock/fsl,scu-clk.yaml
create mode 100644 Documentation/devicetree/bindings/clock/nuvoton,npcm845-clk.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gpucc-sm8350.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm8450-camcc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/sprd,ums512-clk.yaml
create mode 100644 Documentation/devicetree/bindings/clock/sunplus,sp7021-clkc.yaml
delete mode 100644 Documentation/devicetree/bindings/devfreq/exynos-bus.txt
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-ldb.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pixel-combiner.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pixel-link.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pxl2dpi.yaml
delete mode 100644 Documentation/devicetree/bindings/display/bridge/sii902x.txt
create mode 100644 Documentation/devicetree/bindings/display/bridge/sil,sii9022.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/ti,dlpc3433.yaml
delete mode 100644 Documentation/devicetree/bindings/display/ilitek,ili9341.txt
delete mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.txt
create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.yaml
create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,mdp-rdma.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/hdmi.txt
create mode 100644 Documentation/devicetree/bindings/display/msm/hdmi.yaml
create mode 100644 Documentation/devicetree/bindings/display/panel/arm,rtsm-display.yaml
create mode 100644 Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml
delete mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra114-mipi.txt
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra114-mipi.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra124-dpaux.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra124-sor.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra124-vic.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra186-dc.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra186-display.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra186-dsi-padctl.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-dc.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-dsi.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-epp.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-gr2d.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-gr3d.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-hdmi.yaml
delete mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-isp.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-mpe.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-tvo.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-vi.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra210-csi.yaml
create mode 100644 Documentation/devicetree/bindings/dma/apple,admac.yaml
create mode 100644 Documentation/devicetree/bindings/dma/fsl,edma.yaml
delete mode 100644 Documentation/devicetree/bindings/dma/fsl-edma.txt
create mode 100644 Documentation/devicetree/bindings/dma/qcom,bam-dma.yaml
delete mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.txt
delete mode 100644 Documentation/devicetree/bindings/dma/ste-dma40.txt
create mode 100644 Documentation/devicetree/bindings/dma/stericsson,dma40.yaml
create mode 100644 Documentation/devicetree/bindings/dsp/mediatek,mt8186-dsp.yaml
rename Documentation/devicetree/bindings/{misc/eeprom-93xx46.yaml => eeprom/microchip,93lc46b.yaml} (89%)
create mode 100644 Documentation/devicetree/bindings/firmware/fsl,scu.yaml
create mode 100644 Documentation/devicetree/bindings/fpga/microchip,mpf-spi-fpga-mgr.yaml
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-mvebu.txt
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-tpic2810.txt
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-tpic2810.yaml
rename Documentation/devicetree/bindings/{arm => hwinfo}/renesas,prr.yaml (85%)
rename Documentation/devicetree/bindings/{soc/samsung/exynos-chipid.yaml => hwinfo/samsung,exynos-chipid.yaml} (92%)
create mode 100644 Documentation/devicetree/bindings/hwinfo/samsung,s5pv210-chipid.yaml
rename Documentation/devicetree/bindings/{soc/ti/k3-socinfo.yaml => hwinfo/ti,k3-socinfo.yaml} (92%)
rename Documentation/devicetree/bindings/{i2c => hwmon}/ibm,p8-occ-hwmon.txt (100%)
create mode 100644 Documentation/devicetree/bindings/i2c/arm,i2c-versatile.yaml
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-efm32.txt
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-nomadik.txt
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-ocores.txt
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-qcom-cci.txt
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-versatile.txt
create mode 100644 Documentation/devicetree/bindings/i2c/opencores,i2c-ocores.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/renesas,rzv2m.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/st,nomadik-i2c.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/qcom,spmi-rradc.yaml
delete mode 100644 Documentation/devicetree/bindings/input/adc-keys.txt
create mode 100644 Documentation/devicetree/bindings/input/adc-keys.yaml
create mode 100644 Documentation/devicetree/bindings/input/elan,ekth6915.yaml
create mode 100644 Documentation/devicetree/bindings/input/fsl,scu-key.yaml
create mode 100644 Documentation/devicetree/bindings/interconnect/mediatek,cci.yaml
create mode 100644 Documentation/devicetree/bindings/interconnect/qcom,msm8998-bwmon.yaml
create mode 100644 Documentation/devicetree/bindings/interconnect/qcom,rpmh-common.yaml
create mode 100644 Documentation/devicetree/bindings/interconnect/qcom,sm6350-rpmh.yaml
create mode 100644 Documentation/devicetree/bindings/interconnect/samsung,exynos-bus.yaml
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/rda,8810pl-intc.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/rda,8810pl-intc.yaml
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,rzg2l-irqc.yaml
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/sunplus,sp7021-intc.yaml
create mode 100644 Documentation/devicetree/bindings/iommu/xen,grant-dma.yaml
create mode 100644 Documentation/devicetree/bindings/leds/issi,is31fl319x.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/leds-aat1290.txt
create mode 100644 Documentation/devicetree/bindings/leds/leds-bcm63138.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/leds-is31fl319x.txt
create mode 100644 Documentation/devicetree/bindings/leds/skyworks,aat1290.yaml
create mode 100644 Documentation/devicetree/bindings/media/allwinner,sun6i-a31-mipi-csi2.yaml
create mode 100644 Documentation/devicetree/bindings/media/allwinner,sun8i-a83t-mipi-csi2.yaml
delete mode 100644 Documentation/devicetree/bindings/media/exynos-jpeg-codec.txt
delete mode 100644 Documentation/devicetree/bindings/media/gpio-ir-receiver.txt
create mode 100644 Documentation/devicetree/bindings/media/gpio-ir-receiver.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov5693.yaml
create mode 100644 Documentation/devicetree/bindings/media/rockchip,rk3568-vepu.yaml
create mode 100644 Documentation/devicetree/bindings/media/samsung,s5pv210-jpeg.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/canaan,k210-sram.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/da9063.txt
create mode 100644 Documentation/devicetree/bindings/mfd/dlg,da9063.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/fsl,imx8qxp-csr.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.txt
create mode 100644 Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/qcom,tcsr.txt
create mode 100644 Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml
create mode 100644 Documentation/devicetree/bindings/misc/qemu,vcpu-stall-detector.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
delete mode 100644 Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt
create mode 100644 Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
create mode 100644 Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml
create mode 100644 Documentation/devicetree/bindings/mmc/samsung,s3c6410-sdhci.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/samsung-sdhci.txt
delete mode 100644 Documentation/devicetree/bindings/mtd/partitions/arm,arm-firmware-suite.txt
create mode 100644 Documentation/devicetree/bindings/mtd/partitions/arm,arm-firmware-suite.yaml
create mode 100644 Documentation/devicetree/bindings/net/can/microchip,mpfs-can.yaml
create mode 100644 Documentation/devicetree/bindings/net/can/nxp,sja1000.yaml
delete mode 100644 Documentation/devicetree/bindings/net/can/sja1000.txt
create mode 100644 Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
create mode 100644 Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
delete mode 100644 Documentation/devicetree/bindings/net/dsa/mt7530.txt
create mode 100644 Documentation/devicetree/bindings/net/dsa/renesas,rzn1-a5psw.yaml
delete mode 100644 Documentation/devicetree/bindings/net/emac_rockchip.txt
create mode 100644 Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml
create mode 100644 Documentation/devicetree/bindings/net/rockchip,emac.yaml
delete mode 100644 Documentation/devicetree/bindings/net/sff,sfp.txt
create mode 100644 Documentation/devicetree/bindings/net/sff,sfp.yaml
create mode 100644 Documentation/devicetree/bindings/net/xlnx,emaclite.yaml
create mode 100644 Documentation/devicetree/bindings/nvmem/fsl,scu-ocotp.yaml
create mode 100644 Documentation/devicetree/bindings/nvmem/mediatek,efuse.yaml
create mode 100644 Documentation/devicetree/bindings/nvmem/microchip,sama7g5-otpc.yaml
delete mode 100644 Documentation/devicetree/bindings/nvmem/mtk-efuse.txt
create mode 100644 Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie-ep.yaml
delete mode 100644 Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt
create mode 100644 Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.yaml
delete mode 100644 Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt
create mode 100644 Documentation/devicetree/bindings/pci/renesas,pci-rcar-gen2.yaml
create mode 100644 Documentation/devicetree/bindings/perf/arm,ccn.yaml
delete mode 100644 Documentation/devicetree/bindings/perf/arm-ccn.txt
create mode 100644 Documentation/devicetree/bindings/phy/amlogic,g12a-mipi-dphy-analog.yaml
create mode 100644 Documentation/devicetree/bindings/phy/fsl,imx8qm-lvds-phy.yaml
create mode 100644 Documentation/devicetree/bindings/phy/mediatek,pcie-phy.yaml
create mode 100644 Documentation/devicetree/bindings/phy/qcom,hdmi-phy-other.yaml
create mode 100644 Documentation/devicetree/bindings/phy/qcom,hdmi-phy-qmp.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-dpaux-padctl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8909-tlmm.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sm6375-tlmm.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/renesas,rzv2m-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/power/fsl,scu-pd.yaml
delete mode 100644 Documentation/devicetree/bindings/power/reset/msm-poweroff.txt
create mode 100644 Documentation/devicetree/bindings/power/reset/qcom,pshold.yaml
create mode 100644 Documentation/devicetree/bindings/pwm/clk-pwm.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/pwm-regulator.txt
create mode 100644 Documentation/devicetree/bindings/regulator/pwm-regulator.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/qcom,spmi-regulator.txt
create mode 100644 Documentation/devicetree/bindings/regulator/qcom,spmi-regulator.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,glink-edge.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sc7180-mss-pil.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sc7280-mss-pil.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,smd-edge.yaml
create mode 100644 Documentation/devicetree/bindings/reset/atmel,at91sam9260-reset.yaml
create mode 100644 Documentation/devicetree/bindings/reset/sunplus,reset.yaml
create mode 100644 Documentation/devicetree/bindings/reset/ti,tps380x-reset.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/fsl,scu-rtc.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/nuvoton,nct3018y.yaml
delete mode 100644 Documentation/devicetree/bindings/rtc/nxp,pcf85063.txt
create mode 100644 Documentation/devicetree/bindings/rtc/nxp,pcf85063.yaml
delete mode 100644 Documentation/devicetree/bindings/rtc/rtc-ds1307.txt
create mode 100644 Documentation/devicetree/bindings/rtc/rtc-ds1307.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/ti,k3-rtc.yaml
delete mode 100644 Documentation/devicetree/bindings/serial/efm32-uart.txt
create mode 100644 Documentation/devicetree/bindings/serial/mediatek,uart.yaml
delete mode 100644 Documentation/devicetree/bindings/serial/mtk-uart.txt
delete mode 100644 Documentation/devicetree/bindings/serio/ps2-gpio.txt
create mode 100644 Documentation/devicetree/bindings/serio/ps2-gpio.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.txt
create mode 100644 Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml
rename Documentation/devicetree/bindings/{display => soc}/mediatek/mediatek,mutex.yaml (81%)
create mode 100644 Documentation/devicetree/bindings/soc/mediatek/mtk-svs.yaml
create mode 100644 Documentation/devicetree/bindings/sound/atmel,sama5d2-classd.yaml
create mode 100644 Documentation/devicetree/bindings/sound/atmel,sama5d2-i2s.yaml
create mode 100644 Documentation/devicetree/bindings/sound/atmel,sama5d2-pdmic.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/atmel-classd.txt
delete mode 100644 Documentation/devicetree/bindings/sound/atmel-i2s.txt
delete mode 100644 Documentation/devicetree/bindings/sound/atmel-pdmic.txt
delete mode 100644 Documentation/devicetree/bindings/sound/designware-i2s.txt
delete mode 100644 Documentation/devicetree/bindings/sound/fsl,micfil.txt
create mode 100644 Documentation/devicetree/bindings/sound/fsl,micfil.yaml
create mode 100644 Documentation/devicetree/bindings/sound/mt8186-afe-pcm.yaml
create mode 100644 Documentation/devicetree/bindings/sound/mt8186-mt6366-da7219-max98357.yaml
create mode 100644 Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-mbdrc.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-ope.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-peq.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/qcom,sdm845.txt
create mode 100644 Documentation/devicetree/bindings/sound/qcom,wsa883x.yaml
create mode 100644 Documentation/devicetree/bindings/sound/snps,designware-i2s.yaml
create mode 100644 Documentation/devicetree/bindings/spi/atmel,at91rm9200-spi.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/efm32-spi.txt
create mode 100644 Documentation/devicetree/bindings/spi/hpe,gxp-spifi.yaml
create mode 100644 Documentation/devicetree/bindings/spi/nvidia,tegra210-quad-peripheral-props.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/spi_atmel.txt
create mode 100644 Documentation/devicetree/bindings/sram/qcom,imem.yaml
create mode 100644 Documentation/devicetree/bindings/thermal/fsl,scu-thermal.yaml
create mode 100644 Documentation/devicetree/bindings/thermal/qcom,spmi-temp-alarm.yaml
delete mode 100644 Documentation/devicetree/bindings/thermal/qcom-spmi-temp-alarm.txt
create mode 100644 Documentation/devicetree/bindings/timer/nvidia,tegra186-timer.yaml
create mode 100644 Documentation/devicetree/bindings/timer/st,nomadik-mtu.yaml
create mode 100644 Documentation/devicetree/bindings/ufs/renesas,ufs.yaml
create mode 100644 Documentation/devicetree/bindings/usb/analogix,anx7411.yaml
create mode 100644 Documentation/devicetree/bindings/usb/aspeed,ast2600-udc.yaml
create mode 100644 Documentation/devicetree/bindings/usb/st,typec-stm32g0.yaml
create mode 100644 Documentation/devicetree/bindings/usb/ti,usb8041.yaml
create mode 100644 Documentation/devicetree/bindings/watchdog/fsl,scu-wdt.yaml
delete mode 100644 Documentation/devicetree/bindings/watchdog/qcom,pm8916-wdt.txt
create mode 100644 Documentation/devicetree/bindings/watchdog/qcom,pm8916-wdt.yaml
create mode 100644 Documentation/driver-api/aperture.rst
create mode 100644 Documentation/driver-api/firmware/firmware-usage-guidelines.rst
rename Documentation/{ => driver-api}/hte/hte.rst (100%)
rename Documentation/{ => driver-api}/hte/index.rst (100%)
rename Documentation/{ => driver-api}/hte/tegra194-hte.rst (94%)
create mode 100644 Documentation/gpu/rfc/i915_small_bar.h
create mode 100644 Documentation/gpu/rfc/i915_small_bar.rst
create mode 100644 Documentation/gpu/rfc/i915_vm_bind.h
create mode 100644 Documentation/gpu/rfc/i915_vm_bind.rst
create mode 100644 Documentation/hwmon/lt7182s.rst
rename Documentation/{vm => mm}/active_mm.rst (100%)
rename Documentation/{vm => mm}/arch_pgtable_helpers.rst (100%)
rename Documentation/{vm => mm}/balance.rst (100%)
rename Documentation/{vm => mm}/bootmem.rst (100%)
rename Documentation/{vm => mm}/damon/api.rst (100%)
rename Documentation/{vm => mm}/damon/design.rst (100%)
rename Documentation/{vm => mm}/damon/faq.rst (100%)
rename Documentation/{vm => mm}/damon/index.rst (100%)
rename Documentation/{vm => mm}/free_page_reporting.rst (100%)
rename Documentation/{vm => mm}/frontswap.rst (100%)
rename Documentation/{vm => mm}/highmem.rst (83%)
rename Documentation/{vm => mm}/hmm.rst (100%)
rename Documentation/{vm => mm}/hugetlbfs_reserv.rst (100%)
rename Documentation/{vm => mm}/hwpoison.rst (98%)
rename Documentation/{vm => mm}/index.rst (100%)
rename Documentation/{vm => mm}/ksm.rst (100%)
rename Documentation/{vm => mm}/memory-model.rst (99%)
rename Documentation/{vm => mm}/mmu_notifier.rst (100%)
rename Documentation/{vm => mm}/numa.rst (100%)
rename Documentation/{vm => mm}/oom.rst (100%)
rename Documentation/{vm => mm}/overcommit-accounting.rst (98%)
rename Documentation/{vm => mm}/page_allocation.rst (100%)
rename Documentation/{vm => mm}/page_cache.rst (100%)
rename Documentation/{vm => mm}/page_frags.rst (100%)
rename Documentation/{vm => mm}/page_migration.rst (60%)
rename Documentation/{vm => mm}/page_owner.rst (100%)
rename Documentation/{vm => mm}/page_reclaim.rst (100%)
rename Documentation/{vm => mm}/page_table_check.rst (100%)
rename Documentation/{vm => mm}/page_tables.rst (100%)
rename Documentation/{vm => mm}/physical_memory.rst (100%)
rename Documentation/{vm => mm}/process_addrs.rst (100%)
rename Documentation/{vm => mm}/remap_file_pages.rst (100%)
rename Documentation/{vm => mm}/shmfs.rst (100%)
rename Documentation/{vm => mm}/slab.rst (100%)
rename Documentation/{vm => mm}/slub.rst (100%)
rename Documentation/{vm => mm}/split_page_table_lock.rst (100%)
rename Documentation/{vm => mm}/swap.rst (100%)
rename Documentation/{vm => mm}/transhuge.rst (100%)
rename Documentation/{vm => mm}/unevictable-lru.rst (100%)
rename Documentation/{vm => mm}/vmalloc.rst (100%)
rename Documentation/{vm => mm}/vmalloced-kernel-stacks.rst (100%)
rename Documentation/{vm => mm}/vmemmap_dedup.rst (79%)
rename Documentation/{vm => mm}/z3fold.rst (100%)
rename Documentation/{vm => mm}/zsmalloc.rst (100%)
create mode 100644 Documentation/networking/device_drivers/can/can327.rst
delete mode 100644 Documentation/networking/device_drivers/ethernet/neterion/vxge.rst
create mode 100644 Documentation/networking/device_drivers/ethernet/wangxun/txgbe.rst
create mode 100644 Documentation/networking/devlink/devlink-selftests.rst
create mode 100644 Documentation/powerpc/elf_hwcaps.rst
delete mode 100644 Documentation/process/submitting-drivers.rst
create mode 100644 Documentation/s390/vfio-ap-locking.rst
create mode 100644 Documentation/trace/rv/da_monitor_instrumentation.rst
create mode 100644 Documentation/trace/rv/da_monitor_synthesis.rst
create mode 100644 Documentation/trace/rv/deterministic_automata.rst
create mode 100644 Documentation/trace/rv/index.rst
create mode 100644 Documentation/trace/rv/monitor_wip.rst
create mode 100644 Documentation/trace/rv/monitor_wwnr.rst
create mode 100644 Documentation/trace/rv/runtime-verification.rst
create mode 100644 Documentation/translations/it_IT/devicetree/bindings/submitting-patches.rst
create mode 100644 Documentation/translations/it_IT/maintainer/configure-git.rst
create mode 100644 Documentation/translations/it_IT/process/maintainer-handbooks.rst
create mode 100644 Documentation/translations/it_IT/process/maintainer-tip.rst
create mode 100644 Documentation/translations/it_IT/process/maintainers.rst
delete mode 100644 Documentation/translations/it_IT/process/submitting-drivers.rst
create mode 100644 Documentation/translations/zh_CN/admin-guide/reporting-regressions.rst
create mode 100644 Documentation/translations/zh_CN/core-api/watch_queue.rst
create mode 100644 Documentation/translations/zh_CN/locking/mutex-design.rst
rename Documentation/translations/zh_CN/{vm => mm}/active_mm.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/balance.rst (99%)
rename Documentation/translations/zh_CN/{vm => mm}/damon/api.rst (91%)
rename Documentation/translations/zh_CN/{vm => mm}/damon/design.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/damon/faq.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/damon/index.rst (90%)
rename Documentation/translations/zh_CN/{vm => mm}/free_page_reporting.rst (97%)
rename Documentation/translations/zh_CN/{vm => mm}/frontswap.rst (99%)
create mode 100644 Documentation/translations/zh_CN/mm/highmem.rst
rename Documentation/translations/zh_CN/{vm => mm}/hmm.rst (99%)
rename Documentation/translations/zh_CN/{vm => mm}/hugetlbfs_reserv.rst (99%)
rename Documentation/translations/zh_CN/{vm => mm}/hwpoison.rst (99%)
create mode 100644 Documentation/translations/zh_CN/mm/index.rst
rename Documentation/translations/zh_CN/{vm => mm}/ksm.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/memory-model.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/mmu_notifier.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/numa.rst (99%)
rename Documentation/translations/zh_CN/{vm => mm}/overcommit-accounting.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/page_frags.rst (97%)
create mode 100644 Documentation/translations/zh_CN/mm/page_migration.rst
rename Documentation/translations/zh_CN/{vm => mm}/page_owner.rst (65%)
rename Documentation/translations/zh_CN/{vm => mm}/page_table_check.rst (97%)
rename Documentation/translations/zh_CN/{vm => mm}/remap_file_pages.rst (97%)
rename Documentation/translations/zh_CN/{vm => mm}/split_page_table_lock.rst (98%)
create mode 100644 Documentation/translations/zh_CN/mm/vmalloced-kernel-stacks.rst
rename Documentation/translations/zh_CN/{vm => mm}/z3fold.rst (96%)
rename Documentation/translations/zh_CN/{vm => mm}/zsmalloc.rst (98%)
delete mode 100644 Documentation/translations/zh_CN/process/submitting-drivers.rst
delete mode 100644 Documentation/translations/zh_CN/riscv/pmu.rst
delete mode 100644 Documentation/translations/zh_CN/vm/highmem.rst
delete mode 100644 Documentation/translations/zh_CN/vm/index.rst
delete mode 100644 Documentation/translations/zh_TW/process/submitting-drivers.rst
delete mode 100644 Documentation/userspace-api/media/drivers/hantro.rst
create mode 100644 Documentation/virt/hyperv/clocks.rst
create mode 100644 Documentation/virt/hyperv/index.rst
create mode 100644 Documentation/virt/hyperv/overview.rst
create mode 100644 Documentation/virt/hyperv/vmbus.rst
create mode 100644 Documentation/virt/kvm/s390/s390-pv-dump.rst
delete mode 100644 arch/arm/boot/dts/aspeed-bmc-arm-centriq2400-rep.dts
rename arch/arm/boot/dts/{aspeed-bmc-nuvia-dc-scm.dts => aspeed-bmc-qcom-dc-scm-v1.dts} (97%)
create mode 100644 arch/arm/boot/dts/bcm53015-meraki-mr26.dts
create mode 100644 arch/arm/boot/dts/bcm63148.dtsi
create mode 100644 arch/arm/boot/dts/bcm63178.dtsi
create mode 100644 arch/arm/boot/dts/bcm6756.dtsi
create mode 100644 arch/arm/boot/dts/bcm6846.dtsi
create mode 100644 arch/arm/boot/dts/bcm6855.dtsi
create mode 100644 arch/arm/boot/dts/bcm6878.dtsi
create mode 100644 arch/arm/boot/dts/bcm963138.dts
create mode 100644 arch/arm/boot/dts/bcm963148.dts
create mode 100644 arch/arm/boot/dts/bcm963178.dts
create mode 100644 arch/arm/boot/dts/bcm96756.dts
create mode 100644 arch/arm/boot/dts/bcm96846.dts
create mode 100644 arch/arm/boot/dts/bcm96855.dts
create mode 100644 arch/arm/boot/dts/bcm96878.dts
create mode 100644 arch/arm/boot/dts/exynos-pinctrl.h
create mode 100644 arch/arm/boot/dts/imx6q-apalis-ixora-v1.2.dts
create mode 100644 arch/arm/boot/dts/imx7-colibri-iris-v2.dtsi
create mode 100644 arch/arm/boot/dts/imx7-colibri-iris.dtsi
create mode 100644 arch/arm/boot/dts/imx7d-colibri-emmc-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx7d-colibri-emmc-iris.dts
create mode 100644 arch/arm/boot/dts/imx7d-colibri-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx7d-colibri-iris.dts
create mode 100644 arch/arm/boot/dts/imx7s-colibri-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx7s-colibri-iris.dts
create mode 100644 arch/arm/boot/dts/imxrt1170-pinfunc.h
create mode 100644 arch/arm/boot/dts/lan966x-pcb8309.dts
create mode 100644 arch/arm/boot/dts/qcom-ipq8064-smb208.dtsi
delete mode 100644 arch/arm/boot/dts/r8a77xx-aa104xd12-panel.dtsi
create mode 100644 arch/arm/boot/dts/s3c2410-pinctrl.h
create mode 100644 arch/arm/boot/dts/s3c64xx-pinctrl.h
create mode 100644 arch/arm/boot/dts/s5pv210-pinctrl.h
create mode 100644 arch/arm/boot/dts/socfpga_arria10_chameleonv3.dts
rename arch/arm/boot/dts/{socfpga_arria10_mercury_aa1.dts => socfpga_arria10_mercury_aa1.dtsi} (70%)
create mode 100644 arch/arm/boot/dts/stm32mp15-scmi.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp153c-dhcor-drc-compact.dts
create mode 100644 arch/arm/boot/dts/stm32mp15xx-dhcor-drc-compact.dtsi
create mode 100644 arch/arm/boot/dts/sun8i-r40-cpu-opp.dtsi
create mode 100644 arch/arm/boot/dts/sunplus-sp7021-achip.dtsi
create mode 100644 arch/arm/boot/dts/sunplus-sp7021-demo-v3.dts
create mode 100644 arch/arm/boot/dts/sunplus-sp7021.dtsi
delete mode 100644 arch/arm/common/dmabounce.c
create mode 100644 arch/arm/configs/sp7021_defconfig
delete mode 100644 arch/arm/crypto/blake2s-shash.c
delete mode 100644 arch/arm/include/asm/dma-mapping.h
create mode 100644 arch/arm/include/asm/xen/xen-ops.h
delete mode 100644 arch/arm/mach-bcm/bcm63xx.c
delete mode 100644 arch/arm/mach-davinci/board-dm644x-evm.c
delete mode 100644 arch/arm/mach-davinci/board-dm646x-evm.c
delete mode 100644 arch/arm/mach-davinci/board-neuros-osd2.c
delete mode 100644 arch/arm/mach-davinci/board-sffsdr.c
delete mode 100644 arch/arm/mach-davinci/dm644x.c
delete mode 100644 arch/arm/mach-davinci/dm646x.c
create mode 100644 arch/arm/mach-footbridge/include/mach/dma-direct.h
create mode 100644 arch/arm/mach-sunplus/Kconfig
create mode 100644 arch/arm/mach-sunplus/Makefile
create mode 100644 arch/arm/mach-sunplus/sp7021.c
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
create mode 100644 arch/arm64/boot/dts/altera/socfpga_stratix10_swvp.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/Makefile
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm4912-asus-gt-ax6000.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm963146.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm96856.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts
create mode 100644 arch/arm64/boot/dts/exynos/exynos-pinctrl.h
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-phyboard-polis-rdk.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-phycore-som.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk2.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-dhcom-som.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
create mode 100755 arch/arm64/boot/dts/freescale/imx93-pinfunc.h
create mode 100644 arch/arm64/boot/dts/freescale/imx93.dtsi
create mode 100644 arch/arm64/boot/dts/marvell/ac5-98dx25xx.dtsi
create mode 100644 arch/arm64/boot/dts/marvell/ac5-98dx35xx-rd.dts
create mode 100644 arch/arm64/boot/dts/marvell/ac5-98dx35xx.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8192-asurada-hayato-r1.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8192-asurada-spherion-r0.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r1.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r2.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r3.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi
create mode 100644 arch/arm64/boot/dts/nuvoton/Makefile
create mode 100644 arch/arm64/boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi
create mode 100644 arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts
create mode 100644 arch/arm64/boot/dts/nuvoton/nuvoton-npcm845.dtsi
delete mode 100644 arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dts
delete mode 100644 arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dts
delete mode 100644 arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts
delete mode 100644 arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sa8295p-adp.dts
create mode 100644 arch/arm64/boot/dts/qcom/sa8540p.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-kingoftown-r0.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-kingoftown-r1.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-kingoftown.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-mrbland-rev0-auo.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-mrbland-rev0-boe.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-mrbland-rev0.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-mrbland-rev1-auo.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-mrbland-rev1-boe.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-mrbland.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel-lte-parade.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel-lte-ti.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel-parade.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel-ti.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-quackingstick-r0-lte.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-quackingstick-r0.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-quackingstick.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev0-boe.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev0-inx.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev0.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev1-boe-rt5682s.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev1-boe.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev1-inx-rt5682s.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev1-inx.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-audio-wcd9385.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-pmics.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-lg-judyln.dts
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-lg-judyp.dts
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dts
create mode 100644 arch/arm64/boot/dts/renesas/draak-ebisu-panel-aa104xd12.dts
create mode 100644 arch/arm64/boot/dts/renesas/panel-aa104xd12.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/salvator-panel-aa104xd12.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
create mode 100644 arch/arm64/boot/dts/tesla/fsd-pinctrl.h
create mode 100644 arch/arm64/crypto/polyval-ce-core.S
create mode 100644 arch/arm64/crypto/polyval-ce-glue.c
create mode 100644 arch/arm64/include/asm/stacktrace/common.h
create mode 100644 arch/arm64/include/asm/stacktrace/nvhe.h
create mode 100644 arch/arm64/include/asm/xen/xen-ops.h
create mode 100644 arch/arm64/kernel/pi/Makefile
create mode 100644 arch/arm64/kernel/pi/kaslr_early.c
create mode 100644 arch/arm64/kvm/hyp/nvhe/stacktrace.c
create mode 100644 arch/arm64/kvm/stacktrace.c
create mode 100644 arch/csky/include/asm/jump_label.h
create mode 100644 arch/csky/include/asm/sections.h
create mode 100644 arch/csky/include/asm/spinlock.h
create mode 100644 arch/csky/include/asm/spinlock_types.h
create mode 100644 arch/csky/kernel/jump_label.c
delete mode 100644 arch/loongarch/include/asm/compiler.h
create mode 100644 arch/loongarch/include/asm/dma.h
create mode 100644 arch/loongarch/include/asm/pci.h
create mode 100644 arch/loongarch/include/asm/unwind.h
create mode 100644 arch/loongarch/kernel/stacktrace.c
create mode 100644 arch/loongarch/kernel/unwind_guess.c
create mode 100644 arch/loongarch/kernel/unwind_prologue.c
create mode 100644 arch/loongarch/pci/acpi.c
create mode 100644 arch/loongarch/pci/pci.c
create mode 100644 arch/loongarch/vdso/vgetcpu.c
delete mode 100644 arch/mips/configs/capcella_defconfig
delete mode 100644 arch/mips/configs/e55_defconfig
delete mode 100644 arch/mips/configs/mpc30x_defconfig
delete mode 100644 arch/mips/configs/tb0219_defconfig
delete mode 100644 arch/mips/configs/tb0226_defconfig
delete mode 100644 arch/mips/configs/tb0287_defconfig
delete mode 100644 arch/mips/configs/workpad_defconfig
delete mode 100644 arch/mips/include/asm/mach-vr41xx/irq.h
delete mode 100644 arch/mips/include/asm/vr41xx/capcella.h
delete mode 100644 arch/mips/include/asm/vr41xx/giu.h
delete mode 100644 arch/mips/include/asm/vr41xx/irq.h
delete mode 100644 arch/mips/include/asm/vr41xx/mpc30x.h
delete mode 100644 arch/mips/include/asm/vr41xx/pci.h
delete mode 100644 arch/mips/include/asm/vr41xx/siu.h
delete mode 100644 arch/mips/include/asm/vr41xx/tb0219.h
delete mode 100644 arch/mips/include/asm/vr41xx/tb0226.h
delete mode 100644 arch/mips/include/asm/vr41xx/tb0287.h
delete mode 100644 arch/mips/include/asm/vr41xx/vr41xx.h
delete mode 100644 arch/mips/pci/fixup-capcella.c
delete mode 100644 arch/mips/pci/fixup-mpc30x.c
delete mode 100644 arch/mips/pci/fixup-tb0219.c
delete mode 100644 arch/mips/pci/fixup-tb0226.c
delete mode 100644 arch/mips/pci/fixup-tb0287.c
delete mode 100644 arch/mips/pci/ops-vr41xx.c
delete mode 100644 arch/mips/pci/pci-vr41xx.c
delete mode 100644 arch/mips/pci/pci-vr41xx.h
delete mode 100644 arch/mips/vr41xx/Kconfig
delete mode 100644 arch/mips/vr41xx/Makefile
delete mode 100644 arch/mips/vr41xx/Platform
delete mode 100644 arch/mips/vr41xx/casio-e55/Makefile
delete mode 100644 arch/mips/vr41xx/casio-e55/setup.c
delete mode 100644 arch/mips/vr41xx/common/Makefile
delete mode 100644 arch/mips/vr41xx/common/bcu.c
delete mode 100644 arch/mips/vr41xx/common/cmu.c
delete mode 100644 arch/mips/vr41xx/common/giu.c
delete mode 100644 arch/mips/vr41xx/common/icu.c
delete mode 100644 arch/mips/vr41xx/common/init.c
delete mode 100644 arch/mips/vr41xx/common/irq.c
delete mode 100644 arch/mips/vr41xx/common/pmu.c
delete mode 100644 arch/mips/vr41xx/common/rtc.c
delete mode 100644 arch/mips/vr41xx/common/siu.c
delete mode 100644 arch/mips/vr41xx/common/type.c
delete mode 100644 arch/mips/vr41xx/ibm-workpad/Makefile
delete mode 100644 arch/mips/vr41xx/ibm-workpad/setup.c
create mode 100644 arch/openrisc/configs/virt_defconfig
create mode 100644 arch/powerpc/boot/dts/turris1x.dts
create mode 100644 arch/powerpc/include/asm/bpf_perf_event.h
delete mode 100644 arch/powerpc/include/uapi/asm/bpf_perf_event.h
create mode 100644 arch/powerpc/kernel/irq_64.c
create mode 100644 arch/powerpc/kernel/syscall.c
create mode 100644 arch/powerpc/kvm/book3s_hv_p9_perf.c
create mode 100644 arch/powerpc/mm/kasan/init_book3e_64.c
create mode 100644 arch/powerpc/platforms/microwatt/microwatt.h
create mode 100644 arch/powerpc/platforms/pseries/plpks.c
create mode 100644 arch/powerpc/platforms/pseries/plpks.h
create mode 100644 arch/powerpc/purgatory/kexec-purgatory.S
create mode 100644 arch/riscv/include/asm/kvm_vcpu_insn.h
create mode 100644 arch/riscv/kvm/vcpu_insn.c
create mode 100644 arch/riscv/mm/dma-noncoherent.c
create mode 100644 arch/riscv/purgatory/kexec-purgatory.S
create mode 100644 arch/s390/kernel/cpufeature.c
create mode 100644 arch/s390/kvm/pci.c
create mode 100644 arch/s390/kvm/pci.h
create mode 100644 arch/s390/lib/expoline/Makefile
rename arch/s390/lib/{ => expoline}/expoline.S (100%)
create mode 100644 arch/um/include/asm/archrandom.h
create mode 100644 arch/um/include/asm/kasan.h
delete mode 100644 arch/x86/crypto/blake2s-shash.c
create mode 100644 arch/x86/crypto/polyval-clmulni_asm.S
create mode 100644 arch/x86/crypto/polyval-clmulni_glue.c
create mode 100644 arch/x86/entry/entry.S
delete mode 100644 arch/x86/kvm/mmu/paging.h
create mode 100644 arch/x86/kvm/vmx/run_flags.h
create mode 100644 arch/x86/purgatory/kexec-purgatory.S
delete mode 100644 certs/blacklist_nohashes.c
rename {scripts => certs}/check-blacklist-hashes.awk (100%)
delete mode 100644 certs/common.h
create mode 100644 crypto/aria.c
create mode 100644 crypto/asymmetric_keys/selftest.c
rename certs/common.c => crypto/asymmetric_keys/x509_loader.c (87%)
delete mode 100644 crypto/blake2s_generic.c
create mode 100644 crypto/hctr2.c
create mode 100644 crypto/polyval-generic.c
create mode 100644 crypto/xctr.c
create mode 100644 drivers/accessibility/speakup/.gitignore
create mode 100644 drivers/accessibility/speakup/genmap.c
create mode 100644 drivers/accessibility/speakup/makemapdata.c
delete mode 100644 drivers/accessibility/speakup/speakupmap.h
create mode 100644 drivers/accessibility/speakup/utils.h
delete mode 100644 drivers/block/sx8.c
create mode 100644 drivers/block/ublk_drv.c
delete mode 100644 drivers/char/tb0219.c
create mode 100644 drivers/char/tpm/tpm_tis_i2c.c
create mode 100644 drivers/clk/mediatek/reset.h
create mode 100644 drivers/clk/qcom/camcc-sm8450.c
create mode 100644 drivers/clk/qcom/clk-regmap-phy-mux.c
create mode 100644 drivers/clk/qcom/clk-regmap-phy-mux.h
create mode 100644 drivers/clk/qcom/gpucc-sm8350.c
create mode 100644 drivers/clocksource/timer-tegra186.c
create mode 100644 drivers/crypto/qat/qat_common/adf_sysfs.c
create mode 100644 drivers/cxl/core/region.c
create mode 100644 drivers/devfreq/mtk-cci-devfreq.c
create mode 100644 drivers/dma-buf/dma-fence-unwrap.c
create mode 100644 drivers/dma/apple-admac.c
create mode 100644 drivers/firmware/arm_scmi/powercap.c
create mode 100644 drivers/firmware/arm_scmi/scmi_power_control.c
delete mode 100644 drivers/firmware/efi/efivars.c
create mode 100644 drivers/fpga/intel-m10-bmc-sec-update.c
create mode 100644 drivers/fpga/microchip-spi.c
create mode 100644 drivers/gpio/gpio-i8255.c
create mode 100644 drivers/gpio/gpio-i8255.h
delete mode 100644 drivers/gpio/gpio-vr41xx.c
rename drivers/gpu/drm/{nouveau/nvkm/engine/disp/rootgf119.c => amd/amdgpu/amdgpu_vram_mgr.h} (52%)
create mode 100644 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_1.c
rename drivers/gpu/drm/{nouveau/nvkm/engine/disp/hdagv100.c => amd/amdgpu/mmhub_v3_0_1.h} (80%)
create mode 100644 drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.c
rename drivers/gpu/drm/{nouveau/nvkm/engine/disp/changv100.c => amd/amdgpu/psp_v13_0_4.h} (78%)
create mode 100644 drivers/gpu/drm/amd/amdgpu/umc_v8_10.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/umc_v8_10.h
create mode 100644 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
create mode 100644 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.h
create mode 100644 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
create mode 100644 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.h
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_smu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_smu.h
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dalsmc.h
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c
rename drivers/gpu/drm/{nouveau/nvkm/engine/disp/hdmigm200.c => amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.h} (72%)
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.c
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.h
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_smu13_driver_if.h
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/smu13_driver_if.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/Makefile
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_dccg.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_dccg.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_dio_stream_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_dio_stream_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_init.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_init.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_optc.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_optc.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/Makefile
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_link_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_link_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_stream_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_stream_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dpp.c
rename drivers/gpu/drm/amd/display/dc/{gpio/diagnostics/hw_translate_diag.c => dcn32/dcn32_dpp.h} (74%)
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hpo_dp_link_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hpo_dp_link_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubbub.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubbub.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubp.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubp.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mmhubbub.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mmhubbub.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mpc.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mpc.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_optc.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_optc.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/Makefile
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/dcn321_dio_link_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/dcn321_dio_link_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/dcn321_resource.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/dcn321_resource.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn314/display_rq_dlg_calc_314.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn314/display_rq_dlg_calc_314.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c
rename drivers/gpu/drm/amd/display/dc/{gpio/diagnostics/hw_factory_diag.c => dml/dcn32/display_mode_vba_32.h} (53%)
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_util_32.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_util_32.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_rq_dlg_calc_32.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_rq_dlg_calc_32.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.h
create mode 100644 drivers/gpu/drm/amd/display/dc/gpio/dcn32/hw_factory_dcn32.c
rename drivers/gpu/drm/amd/display/dc/gpio/{diagnostics/hw_factory_diag.h => dcn32/hw_factory_dcn32.h} (81%)
create mode 100644 drivers/gpu/drm/amd/display/dc/gpio/dcn32/hw_translate_dcn32.c
rename drivers/gpu/drm/amd/display/dc/gpio/{diagnostics/hw_translate_diag.h => dcn32/hw_translate_dcn32.h} (82%)
create mode 100644 drivers/gpu/drm/amd/display/dc/irq/dcn314/irq_service_dcn314.c
rename drivers/gpu/drm/{nouveau/nvkm/engine/disp/cursgf119.c => amd/display/dc/irq/dcn314/irq_service_dcn314.h} (76%)
create mode 100644 drivers/gpu/drm/amd/display/dc/irq/dcn32/irq_service_dcn32.c
create mode 100644 drivers/gpu/drm/amd/display/dc/irq/dcn32/irq_service_dcn32.h
create mode 100644 drivers/gpu/drm/amd/display/dmub/inc/dmub_subvp_state.h
create mode 100644 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.c
create mode 100644 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.h
mode change 100755 => 100644 drivers/gpu/drm/amd/include/asic_reg/clk/clk_11_0_1_offset.h
mode change 100755 => 100644 drivers/gpu/drm/amd/include/asic_reg/clk/clk_11_0_1_sh_mask.h
mode change 100755 => 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_2_0_3_offset.h
mode change 100755 => 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_2_0_3_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_1_4_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_1_4_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_2_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_2_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_2_1_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_2_1_sh_mask.h
mode change 100755 => 100644 drivers/gpu/drm/amd/include/asic_reg/dpcs/dpcs_2_0_3_offset.h
mode change 100755 => 100644 drivers/gpu/drm/amd/include/asic_reg/dpcs/dpcs_2_0_3_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dpcs/dpcs_3_1_4_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dpcs/dpcs_3_1_4_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_3_0_1_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_3_0_1_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_13_0_4_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_13_0_4_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/umc/umc_8_10_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/umc/umc_8_10_0_sh_mask.h
create mode 100644 drivers/gpu/drm/bridge/imx/Kconfig
create mode 100644 drivers/gpu/drm/bridge/imx/Makefile
create mode 100644 drivers/gpu/drm/bridge/imx/imx-ldb-helper.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx-ldb-helper.h
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c
create mode 100644 drivers/gpu/drm/bridge/ti-dlpc3433.c
create mode 100644 drivers/gpu/drm/i915/display/intel_audio_regs.h
create mode 100644 drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
create mode 100644 drivers/gpu/drm/i915/display/intel_crtc_state_dump.h
create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_setup.c
create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_setup.h
create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_verify.c
create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_verify.h
create mode 100644 drivers/gpu/drm/i915/gt/intel_ggtt_gmch.c
create mode 100644 drivers/gpu/drm/i915/gt/intel_ggtt_gmch.h
delete mode 100644 drivers/gpu/drm/i915/gt/intel_gt_gmch.c
delete mode 100644 drivers/gpu/drm/i915/gt/intel_gt_gmch.h
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_mcr.c
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_mcr.h
create mode 100644 drivers/gpu/drm/i915/i915_tasklet.h
create mode 100644 drivers/gpu/drm/logicvc/Kconfig
create mode 100644 drivers/gpu/drm/logicvc/Makefile
create mode 100644 drivers/gpu/drm/logicvc/logicvc_crtc.c
create mode 100644 drivers/gpu/drm/logicvc/logicvc_crtc.h
create mode 100644 drivers/gpu/drm/logicvc/logicvc_drm.c
create mode 100644 drivers/gpu/drm/logicvc/logicvc_drm.h
create mode 100644 drivers/gpu/drm/logicvc/logicvc_interface.c
create mode 100644 drivers/gpu/drm/logicvc/logicvc_interface.h
create mode 100644 drivers/gpu/drm/logicvc/logicvc_layer.c
create mode 100644 drivers/gpu/drm/logicvc/logicvc_layer.h
create mode 100644 drivers/gpu/drm/logicvc/logicvc_mode.c
create mode 100644 drivers/gpu/drm/logicvc/logicvc_mode.h
create mode 100644 drivers/gpu/drm/logicvc/logicvc_of.c
create mode 100644 drivers/gpu/drm/logicvc/logicvc_of.h
create mode 100644 drivers/gpu/drm/logicvc/logicvc_regs.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_disp_merge.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_mdp_rdma.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_mdp_rdma.h
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200eh.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200eh3.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200er.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200ev.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200ew3.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200se.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200wb.c
delete mode 100644 drivers/gpu/drm/mgag200/mgag200_mm.c
delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h
delete mode 100644 drivers/gpu/drm/msm/dp/dp_clk_util.c
delete mode 100644 drivers/gpu/drm/msm/dp/dp_clk_util.h
create mode 100644 drivers/gpu/drm/mxsfb/lcdif_drv.c
create mode 100644 drivers/gpu/drm/mxsfb/lcdif_drv.h
create mode 100644 drivers/gpu/drm/mxsfb/lcdif_kms.c
create mode 100644 drivers/gpu/drm/mxsfb/lcdif_regs.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/cl507a.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/cl507b.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/cl507c.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/cl507d.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/cl507e.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/clc37b.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/clc37e.h
create mode 100644 drivers/gpu/drm/nouveau/include/nvif/conn.h
create mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0010.h
create mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0011.h
create mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0012.h
create mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0014.h
create mode 100644 drivers/gpu/drm/nouveau/include/nvif/outp.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvkm/subdev/secboot.h
rename drivers/gpu/drm/nouveau/{nvkm/engine/disp/rootga102.c => nvif/conn.c} (56%)
rename drivers/gpu/drm/nouveau/{nvkm/engine/disp/rootg84.c => nvif/outp.c} (54%)
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/baseg84.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/basegf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/basegp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/basenv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/capsgv100.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.h
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/changf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.h
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coreg84.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coreg94.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coregf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coregk104.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coregp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coregv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/corenv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/cursgp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/cursgv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/cursnv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/dacgf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/dmacgf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/dmacgp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/dmacgv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/dmacnv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/headgf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/headgv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/headnv04.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/headnv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/oimmgf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/oimmgp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/oimmnv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlyg84.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlygf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlygk104.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlygp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlygt200.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlynv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/piocgf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/piocnv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/piornv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootg94.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgk104.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgk110.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgm107.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgm200.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgp100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgt200.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgt215.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg84.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg94.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorga102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgp100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgt215.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sormcp77.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sormcp89.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/udisp.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/wimmgv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/wndwgv100.c
create mode 100644 drivers/gpu/drm/panel/panel-ebbg-ft8719.c
create mode 100644 drivers/gpu/drm/tests/.kunitconfig
create mode 100644 drivers/gpu/drm/tests/Makefile
create mode 100644 drivers/gpu/drm/tests/drm_format_helper_test.c
create mode 100644 drivers/gpu/host1x/context.c
create mode 100644 drivers/gpu/host1x/context.h
create mode 100644 drivers/gpu/host1x/hw/host1x08.c
create mode 100644 drivers/gpu/host1x/hw/host1x08.h
create mode 100644 drivers/gpu/host1x/hw/host1x08_hardware.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_channel.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_common.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_hypervisor.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_uclass.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_vm.h
create mode 100644 drivers/gpu/host1x/hw/opcodes.h
create mode 100644 drivers/hid/.kunitconfig
create mode 100644 drivers/hid/amd-sfh-hid/amd_sfh_common.h
create mode 100644 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_desc.c
create mode 100644 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c
create mode 100644 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.h
create mode 100644 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_interface.c
create mode 100644 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_interface.h
create mode 100644 drivers/hid/hid-uclogic-rdesc-test.c
create mode 100644 drivers/hid/i2c-hid/i2c-hid-of-elan.c
create mode 100644 drivers/hwmon/pmbus/lt7182s.c
create mode 100644 drivers/i2c/busses/i2c-microchip-corei2c.c
create mode 100644 drivers/i2c/busses/i2c-rzv2m.c
create mode 100644 drivers/iio/adc/qcom-spmi-rradc.c
create mode 100644 drivers/infiniband/hw/erdma/Kconfig
create mode 100644 drivers/infiniband/hw/erdma/Makefile
create mode 100644 drivers/infiniband/hw/erdma/erdma.h
create mode 100644 drivers/infiniband/hw/erdma/erdma_cm.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_cm.h
create mode 100644 drivers/infiniband/hw/erdma/erdma_cmdq.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_cq.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_eq.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_hw.h
create mode 100644 drivers/infiniband/hw/erdma/erdma_main.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_qp.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_verbs.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_verbs.h
create mode 100644 drivers/input/input-core-private.h
create mode 100644 drivers/interconnect/imx/imx8mp.c
create mode 100644 drivers/interconnect/qcom/icc-common.c
create mode 100644 drivers/interconnect/qcom/icc-common.h
create mode 100644 drivers/interconnect/qcom/sm6350.c
create mode 100644 drivers/interconnect/qcom/sm6350.h
create mode 100644 drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
create mode 100644 drivers/iommu/arm/arm-smmu/arm-smmu-qcom.h
rename include/linux/intel-iommu.h => drivers/iommu/intel/iommu.h (97%)
rename include/trace/events/intel_iommu.h => drivers/iommu/intel/trace.h (93%)
create mode 100644 drivers/irqchip/irq-loongarch-cpu.c
create mode 100644 drivers/irqchip/irq-loongson-eiointc.c
create mode 100644 drivers/irqchip/irq-loongson-pch-lpc.c
create mode 100644 drivers/irqchip/irq-renesas-rzg2l.c
create mode 100644 drivers/irqchip/irq-sp7021-intc.c
create mode 100644 drivers/leds/blink/leds-bcm63138.c
create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.c
create mode 100644 drivers/md/dm-io-rewind.c
create mode 100644 drivers/md/dm-verity-loadpin.c
create mode 100644 drivers/media/i2c/ar0521.c
create mode 100644 drivers/media/platform/rockchip/rkisp1/rkisp1-csi.c
create mode 100644 drivers/media/platform/rockchip/rkisp1/rkisp1-csi.h
create mode 100644 drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
create mode 100644 drivers/media/platform/sunxi/sun6i-mipi-csi2/Kconfig
create mode 100644 drivers/media/platform/sunxi/sun6i-mipi-csi2/Makefile
create mode 100644 drivers/media/platform/sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2.c
create mode 100644 drivers/media/platform/sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2.h
create mode 100644 drivers/media/platform/sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2_reg.h
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Makefile
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_dphy.c
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_dphy.h
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.c
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.h
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2_reg.h
create mode 100644 drivers/media/test-drivers/vimc/vimc-lens.c
create mode 100644 drivers/misc/habanalabs/common/decoder.c
create mode 100644 drivers/misc/habanalabs/common/mmu/mmu_v2_hr.c
create mode 100644 drivers/misc/habanalabs/common/security.c
create mode 100644 drivers/misc/habanalabs/gaudi2/Makefile
create mode 100644 drivers/misc/habanalabs/gaudi2/gaudi2.c
create mode 100644 drivers/misc/habanalabs/gaudi2/gaudi2P.h
create mode 100644 drivers/misc/habanalabs/gaudi2/gaudi2_coresight.c
create mode 100644 drivers/misc/habanalabs/gaudi2/gaudi2_coresight_regs.h
create mode 100644 drivers/misc/habanalabs/gaudi2/gaudi2_masks.h
create mode 100644 drivers/misc/habanalabs/gaudi2/gaudi2_security.c
create mode 100644 drivers/misc/habanalabs/include/gaudi2/arc/gaudi2_arc_common_packets.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_arc0_acp_eng_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_arc0_aux_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_arc0_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_arc0_dup_eng_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_arc0_dup_eng_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_ctx_axuser_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_ctx_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_ctx_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_ctx_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_kdma_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/cpu_if_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_dec0_cmd_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_dec0_cmd_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_core_ctx_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_core_ctx_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_core_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_core_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_qm_arc_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_qm_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_qm_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_qm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma1_core_ctx_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma1_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_hmmu0_mmu_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_hmmu0_mmu_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_hmmu0_stlb_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_hmmu0_stlb_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_acc_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_cout0_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_cout0_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_cout1_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_cout1_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in0_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in0_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in1_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in1_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in2_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in2_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in3_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in3_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in4_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in4_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_base_addr_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_non_tensor_end_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_non_tensor_start_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_tensor_a_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_tensor_b_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_tensor_cout_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_mme_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_arc_acp_eng_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_arc_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_arc_dup_eng_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_arc_dup_eng_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_axuser_secured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_sbte0_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_sbte0_mstr_if_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_wb0_mstr_if_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_rtr0_ctrl_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_rtr0_mstr_if_rr_prvt_hbw_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_rtr0_mstr_if_rr_prvt_lbw_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_rtr0_mstr_if_rr_shrd_hbw_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_rtr0_mstr_if_rr_shrd_lbw_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_sync_mngr_glbl_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_sync_mngr_glbl_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_sync_mngr_mstr_if_axuser_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_sync_mngr_mstr_if_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_sync_mngr_objs_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_sync_mngr_objs_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_kernel_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_kernel_tensor_0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_qm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_qm_sync_object_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_qm_tensor_0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_special_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_eml_busmon_0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_eml_etf_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_eml_funnel_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_eml_spmu_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_eml_stm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_qm_arc_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_qm_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_qm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_axuser_dec_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_axuser_msix_abnrm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_axuser_msix_l2c_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_axuser_msix_nrm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_axuser_msix_vcd_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_ctrl_special_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore1_mme_ctrl_lo_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore3_mme_ctrl_lo_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/gaudi2_blocks_linux_driver.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/gaudi2_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/nic0_qm0_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/nic0_qm0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/nic0_qm_arc_aux0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/nic0_qpc0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/nic0_umr0_0_completion_queue_ci_1_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/nic0_umr0_0_unsecure_doorbell0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_dbi_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_dec0_cmd_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_dec0_cmd_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_axuser_dec_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_axuser_msix_abnrm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_axuser_msix_l2c_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_axuser_msix_nrm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_axuser_msix_vcd_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_ctrl_special_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_wrap_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_core_ctx_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_core_ctx_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_core_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_core_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_core_special_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_qm_arc_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_qm_axuser_secured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_qm_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_qm_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_qm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma1_core_ctx_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma1_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pmmu_hbw_stlb_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pmmu_hbw_stlb_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pmmu_pif_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_etr_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_etr_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_global_conf_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_global_conf_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_reset_conf_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_reset_conf_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_timestamp_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_desc_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_qm_arc_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_qm_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_qm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/xbar_edge_0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/xbar_mid_0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_async_events.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_async_ids_map_extended.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_async_virt_events.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_coresight.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_fw_if.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_packets.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_reg_map.h
create mode 100644 drivers/misc/habanalabs/include/hw_ip/mmu/mmu_v2_0.h
create mode 100644 drivers/misc/vcpu_stall_detector.c
create mode 100644 drivers/mtd/nand/spi/ato.c
create mode 100644 drivers/mtd/parsers/scpart.c
create mode 100644 drivers/net/can/can327.c
create mode 100644 drivers/net/can/dev/calc_bittiming.c
delete mode 100644 drivers/net/can/slcan.c
create mode 100644 drivers/net/can/slcan/Makefile
create mode 100644 drivers/net/can/slcan/slcan-core.c
create mode 100644 drivers/net/can/slcan/slcan-ethtool.c
create mode 100644 drivers/net/can/slcan/slcan.h
rename drivers/net/can/usb/{esd_usb2.c => esd_usb.c} (80%)
create mode 100644 drivers/net/dsa/microchip/ksz9477.h
delete mode 100644 drivers/net/dsa/microchip/ksz9477_spi.c
rename drivers/net/dsa/microchip/{ksz8795_spi.c => ksz_spi.c} (52%)
create mode 100644 drivers/net/dsa/microchip/lan937x.h
create mode 100644 drivers/net/dsa/microchip/lan937x_main.c
create mode 100644 drivers/net/dsa/microchip/lan937x_reg.h
rename drivers/net/dsa/{qca8k.c => qca/qca8k-8xxx.c} (63%)
create mode 100644 drivers/net/dsa/qca/qca8k-common.c
rename drivers/net/dsa/{ => qca}/qca8k.h (80%)
create mode 100644 drivers/net/dsa/rzn1_a5psw.c
create mode 100644 drivers/net/dsa/rzn1_a5psw.h
create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.h
create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/htb.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/htb.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/act/police.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_meter.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_meter.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/esw/debugfs.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/aso.h
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/core_linecard_dev.c
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c
delete mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_router_xm.c
delete mode 100644 drivers/net/ethernet/neterion/vxge/Makefile
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-config.c
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-config.h
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-ethtool.c
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-ethtool.h
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-main.c
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-main.h
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-reg.h
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-traffic.c
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-traffic.h
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-version.h
create mode 100644 drivers/net/ethernet/sfc/ef100_rep.c
create mode 100644 drivers/net/ethernet/sfc/ef100_rep.h
create mode 100644 drivers/net/ethernet/sfc/mae.c
create mode 100644 drivers/net/ethernet/sfc/mae.h
create mode 100644 drivers/net/ethernet/sfc/mcdi_pcol_mae.h
create mode 100644 drivers/net/ethernet/sfc/tc.c
create mode 100644 drivers/net/ethernet/sfc/tc.h
create mode 100644 drivers/net/ethernet/wangxun/Kconfig
create mode 100644 drivers/net/ethernet/wangxun/Makefile
create mode 100644 drivers/net/ethernet/wangxun/txgbe/Makefile
create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe.h
create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe_type.h
rename drivers/net/ipa/{ => data}/ipa_data-v3.1.c (99%)
rename drivers/net/ipa/{ => data}/ipa_data-v3.5.1.c (99%)
rename drivers/net/ipa/{ => data}/ipa_data-v4.11.c (98%)
rename drivers/net/ipa/{ => data}/ipa_data-v4.2.c (98%)
rename drivers/net/ipa/{ => data}/ipa_data-v4.5.c (99%)
rename drivers/net/ipa/{ => data}/ipa_data-v4.9.c (99%)
create mode 100644 drivers/net/pcs/pcs-rzn1-miic.c
create mode 100644 drivers/net/phy/bcm-phy-ptp.c
create mode 100644 drivers/net/wireless/ath/wcn36xx/firmware.c
create mode 100644 drivers/net/wireless/ath/wcn36xx/firmware.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76_connac2_mac.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.h
delete mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723de.h
delete mode 100644 drivers/net/wireless/realtek/rtw88/rtw8821ce.h
delete mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822be.h
delete mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822ce.h
create mode 100644 drivers/nvme/common/Kconfig
create mode 100644 drivers/nvme/common/Makefile
create mode 100644 drivers/nvme/common/auth.c
create mode 100644 drivers/nvme/host/auth.c
create mode 100644 drivers/nvme/target/auth.c
create mode 100644 drivers/nvme/target/fabrics-cmd-auth.c
create mode 100644 drivers/nvmem/microchip-otpc.c
create mode 100644 drivers/pci/doe.c
create mode 100644 drivers/pci/endpoint/functions/pci-epf-vntb.c
create mode 100644 drivers/perf/hisilicon/hns3_pmu.c
create mode 100644 drivers/phy/amlogic/phy-meson-g12a-mipi-dphy-analog.c
create mode 100644 drivers/phy/freescale/phy-fsl-imx8qm-lvds-phy.c
create mode 100644 drivers/phy/mediatek/phy-mtk-dp.c
create mode 100644 drivers/phy/mediatek/phy-mtk-pcie.c
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-combo.c
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcie-qhp.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-misc-v3.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v4.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v4_20.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v5.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v5_20.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-ufs-v3.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-ufs-v4.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-ufs-v5.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-usb-v4.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-usb-v5.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v2.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v3.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v4.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v4_20.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v5.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com-v3.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com-v4.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com-v5.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-pll.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v3.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v4.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v4_20.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v5.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v5_20.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-usb.c
delete mode 100644 drivers/phy/qualcomm/phy-qcom-qmp.c
create mode 100644 drivers/phy/samsung/phy-fsd-ufs.c
create mode 100644 drivers/pinctrl/intel/pinctrl-meteorlake.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-msm8909.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-sm6375.c
create mode 100644 drivers/pinctrl/renesas/pfc-r8a779g0.c
create mode 100644 drivers/pinctrl/renesas/pinctrl-rzv2m.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun20i-d1.c
create mode 100644 drivers/platform/chrome/cros_ec_proto_test.c
create mode 100644 drivers/platform/chrome/cros_kunit_util.c
create mode 100644 drivers/platform/chrome/cros_kunit_util.h
create mode 100644 drivers/platform/surface/surface_aggregator_hub.c
create mode 100644 drivers/platform/surface/surface_aggregator_tabletsw.c
create mode 100644 drivers/platform/x86/amd/Kconfig
create mode 100644 drivers/platform/x86/amd/Makefile
rename drivers/platform/x86/{amd_hsmp.c => amd/hsmp.c} (100%)
rename drivers/platform/x86/{amd-pmc.c => amd/pmc.c} (98%)
create mode 100644 drivers/platform/x86/p2sb.c
create mode 100644 drivers/power/reset/pwr-mlxbf.c
delete mode 100644 drivers/power/supply/pm2301_charger.h
create mode 100644 drivers/pwm/pwm-clk.c
create mode 100644 drivers/regulator/max597x-regulator.c
create mode 100644 drivers/regulator/mt6370-regulator.c
create mode 100644 drivers/regulator/rt5120-regulator.c
create mode 100644 drivers/reset/reset-sunplus.c
create mode 100644 drivers/reset/reset-tps380x.c
create mode 100644 drivers/rtc/rtc-mpfs.c
create mode 100644 drivers/rtc/rtc-nct3018y.c
create mode 100644 drivers/rtc/rtc-ti-k3.c
delete mode 100644 drivers/rtc/rtc-vr41xx.c
delete mode 100644 drivers/scsi/dpt/dpti_i2o.h
delete mode 100644 drivers/scsi/dpt/dpti_ioctl.h
delete mode 100644 drivers/scsi/dpt/dptsig.h
delete mode 100644 drivers/scsi/dpt/osd_defs.h
delete mode 100644 drivers/scsi/dpt/osd_util.h
delete mode 100644 drivers/scsi/dpt/sys_info.h
delete mode 100644 drivers/scsi/dpt_i2o.c
delete mode 100644 drivers/scsi/dpti.h
create mode 100644 drivers/soc/fujitsu/Kconfig
create mode 100644 drivers/soc/fujitsu/Makefile
create mode 100644 drivers/soc/fujitsu/a64fx-diag.c
create mode 100644 drivers/soc/mediatek/mt6795-pm-domains.h
create mode 100644 drivers/soc/mediatek/mtk-svs.c
create mode 100644 drivers/soc/qcom/icc-bwmon.c
create mode 100644 drivers/spi/spi-gxp.c
create mode 100644 drivers/spi/spi-microchip-core.c
delete mode 100644 drivers/staging/media/atomisp/include/hmm/hmm_pool.h
create mode 100644 drivers/staging/media/atomisp/notes.txt
delete mode 100644 drivers/staging/media/atomisp/pci/atomisp_acc.c
delete mode 100644 drivers/staging/media/atomisp/pci/atomisp_acc.h
delete mode 100644 drivers/staging/media/atomisp/pci/hmm/hmm_dynamic_pool.c
delete mode 100644 drivers/staging/media/atomisp/pci/hmm/hmm_reserved_pool.c
rename drivers/{media/usb => staging/media}/stkwebcam/Kconfig (68%)
rename drivers/{media/usb => staging/media}/stkwebcam/Makefile (63%)
create mode 100644 drivers/staging/media/stkwebcam/TODO
rename drivers/{media/usb => staging/media}/stkwebcam/stk-sensor.c (100%)
rename drivers/{media/usb => staging/media}/stkwebcam/stk-webcam.c (100%)
rename drivers/{media/usb => staging/media}/stkwebcam/stk-webcam.h (100%)
delete mode 100644 drivers/staging/octeon-usb/Kconfig
delete mode 100644 drivers/staging/octeon-usb/Makefile
delete mode 100644 drivers/staging/octeon-usb/TODO
delete mode 100644 drivers/staging/r8188eu/hal/Hal8188EPwrSeq.c
delete mode 100644 drivers/staging/r8188eu/include/Hal8188EPwrSeq.h
delete mode 100644 drivers/staging/r8188eu/include/basic_types.h
create mode 100644 drivers/staging/vc04_services/interface/TESTING
rename drivers/{vme => staging/vme_user}/vme.c (99%)
rename {include/linux => drivers/staging/vme_user}/vme.h (100%)
rename drivers/{vme => staging/vme_user}/vme_bridge.h (99%)
rename drivers/{vme/bridges => staging/vme_user}/vme_fake.c (99%)
rename drivers/{vme/bridges => staging/vme_user}/vme_tsi148.c (99%)
rename drivers/{vme/bridges => staging/vme_user}/vme_tsi148.h (100%)
delete mode 100644 drivers/staging/vt6655/upc.h
delete mode 100644 drivers/tty/serial/vr41xx_siu.c
create mode 100644 drivers/ufs/host/ufs-renesas.c
create mode 100644 drivers/usb/gadget/udc/aspeed_udc.c
rename drivers/{staging/octeon-usb => usb/host}/octeon-hcd.c (100%)
rename drivers/{staging/octeon-usb => usb/host}/octeon-hcd.h (100%)
create mode 100644 drivers/usb/misc/onboard_usb_hub.c
create mode 100644 drivers/usb/misc/onboard_usb_hub.h
create mode 100644 drivers/usb/misc/onboard_usb_hub_pdevs.c
create mode 100644 drivers/usb/musb/mpfs.c
create mode 100644 drivers/usb/typec/anx7411.c
create mode 100644 drivers/usb/typec/pd.c
create mode 100644 drivers/usb/typec/pd.h
create mode 100644 drivers/usb/typec/retimer.c
create mode 100644 drivers/usb/typec/retimer.h
create mode 100644 drivers/usb/typec/ucsi/ucsi_stm32g0.c
rename drivers/vfio/{vfio.c => vfio_main.c} (93%)
create mode 100644 drivers/video/aperture.c
create mode 100644 drivers/virtio/virtio_anchor.c
delete mode 100644 drivers/vme/Kconfig
delete mode 100644 drivers/vme/Makefile
delete mode 100644 drivers/vme/boards/Kconfig
delete mode 100644 drivers/vme/boards/Makefile
delete mode 100644 drivers/vme/boards/vme_vmivme7805.c
delete mode 100644 drivers/vme/boards/vme_vmivme7805.h
delete mode 100644 drivers/vme/bridges/Kconfig
delete mode 100644 drivers/vme/bridges/Makefile
delete mode 100644 drivers/vme/bridges/vme_ca91cx42.c
delete mode 100644 drivers/vme/bridges/vme_ca91cx42.h
create mode 100644 drivers/watchdog/pseries-wdt.c
create mode 100644 drivers/xen/grant-dma-iommu.c
create mode 100644 drivers/xen/grant-dma-ops.c
create mode 100644 fs/cifs/cached_dir.c
create mode 100644 fs/cifs/cached_dir.h
create mode 100644 fs/efivarfs/vars.c
delete mode 100644 fs/erofs/zpvec.h
delete mode 100644 fs/io_uring.c
create mode 100644 fs/xfs/xfs_iunlink_item.c
create mode 100644 fs/xfs/xfs_iunlink_item.h
create mode 100644 fs/xfs/xfs_notify_failure.c
create mode 100644 include/asm-generic/archrandom.h
create mode 100644 include/asm-generic/bitops/generic-non-atomic.h
create mode 100644 include/asm-generic/bitops/non-instrumented-non-atomic.h
create mode 100644 include/crypto/aria.h
create mode 100644 include/crypto/polyval.h
delete mode 100644 include/dt-bindings/clock/efm32-cmu.h
create mode 100644 include/dt-bindings/clock/nuvoton,npcm845-clk.h
create mode 120000 include/dt-bindings/clock/qcom,dispcc-sm8350.h
create mode 100644 include/dt-bindings/clock/qcom,gpucc-sm8350.h
create mode 100644 include/dt-bindings/clock/qcom,sm8450-camcc.h
create mode 100644 include/dt-bindings/clock/sprd,ums512-clk.h
create mode 100644 include/dt-bindings/clock/sunplus,sp7021-clkc.h
create mode 100644 include/dt-bindings/interconnect/fsl,imx8mp.h
create mode 100644 include/dt-bindings/interconnect/qcom,sm6350.h
create mode 100644 include/dt-bindings/net/pcs-rzn1-miic.h
create mode 100644 include/dt-bindings/nvmem/microchip,sama7g5-otpc.h
create mode 100644 include/dt-bindings/pinctrl/rzv2m-pinctrl.h
create mode 100644 include/dt-bindings/power/mt6795-power.h
create mode 100644 include/dt-bindings/reset/sama7g5-reset.h
create mode 100644 include/dt-bindings/reset/sunplus,sp7021-reset.h
create mode 100644 include/dt-bindings/soc/samsung,boot-mode.h
create mode 100644 include/dt-bindings/sound/qcom,wcd9335.h
create mode 100644 include/linux/aperture.h
create mode 100644 include/linux/base64.h
create mode 100644 include/linux/context_tracking_irq.h
create mode 100644 include/linux/dm-verity-loadpin.h
create mode 100644 include/linux/gfp_types.h
create mode 100644 include/linux/io_uring_types.h
create mode 100644 include/linux/isa-dma.h
create mode 100644 include/linux/mfd/mt6331/core.h
create mode 100644 include/linux/mfd/mt6331/registers.h
create mode 100644 include/linux/mfd/mt6332/core.h
create mode 100644 include/linux/mfd/mt6332/registers.h
create mode 100644 include/linux/mfd/mt6357/core.h
create mode 100644 include/linux/mfd/mt6357/registers.h
create mode 100644 include/linux/nvme-auth.h
create mode 100644 include/linux/pci-doe.h
create mode 100644 include/linux/pcs-rzn1-miic.h
delete mode 100644 include/linux/platform_data/video-imxfb.h
create mode 100644 include/linux/platform_data/x86/p2sb.h
create mode 100644 include/linux/rv.h
create mode 100644 include/linux/usb/onboard_hub.h
rename {drivers/usb/typec/tcpm => include/linux/usb}/tcpci.h (99%)
create mode 100644 include/linux/usb/typec_retimer.h
create mode 100644 include/linux/virtio_anchor.h
delete mode 100644 include/linux/visorbus.h
delete mode 100644 include/media/hevc-ctrls.h
create mode 100644 include/net/bluetooth/iso.h
create mode 100644 include/net/dropreason.h
create mode 100644 include/net/netns/flow_table.h
create mode 100644 include/rv/automata.h
create mode 100644 include/rv/da_monitor.h
create mode 100644 include/rv/instrumentation.h
create mode 100644 include/soc/qcom/qcom-spmi-pmic.h
create mode 100644 include/trace/events/rv.h
create mode 100644 include/trace/events/rwmmio.h
create mode 100644 include/uapi/linux/atm_zatm.h
create mode 100644 include/uapi/linux/loadpin.h
create mode 100644 include/uapi/linux/ublk_cmd.h
create mode 100644 include/uapi/rdma/erdma-abi.h
create mode 100644 include/xen/arm/xen-ops.h
create mode 100644 io_uring/Makefile
create mode 100644 io_uring/advise.c
create mode 100644 io_uring/advise.h
create mode 100644 io_uring/alloc_cache.h
create mode 100644 io_uring/cancel.c
create mode 100644 io_uring/cancel.h
create mode 100644 io_uring/epoll.c
create mode 100644 io_uring/epoll.h
create mode 100644 io_uring/fdinfo.c
create mode 100644 io_uring/fdinfo.h
create mode 100644 io_uring/filetable.c
create mode 100644 io_uring/filetable.h
create mode 100644 io_uring/fs.c
create mode 100644 io_uring/fs.h
rename {fs => io_uring}/io-wq.c (99%)
create mode 100644 io_uring/io-wq.h
create mode 100644 io_uring/io_uring.c
create mode 100644 io_uring/io_uring.h
create mode 100644 io_uring/kbuf.c
create mode 100644 io_uring/kbuf.h
create mode 100644 io_uring/msg_ring.c
create mode 100644 io_uring/msg_ring.h
create mode 100644 io_uring/net.c
create mode 100644 io_uring/net.h
create mode 100644 io_uring/nop.c
create mode 100644 io_uring/nop.h
create mode 100644 io_uring/notif.c
create mode 100644 io_uring/notif.h
create mode 100644 io_uring/opdef.c
create mode 100644 io_uring/opdef.h
create mode 100644 io_uring/openclose.c
create mode 100644 io_uring/openclose.h
create mode 100644 io_uring/poll.c
create mode 100644 io_uring/poll.h
create mode 100644 io_uring/refs.h
create mode 100644 io_uring/rsrc.c
create mode 100644 io_uring/rsrc.h
create mode 100644 io_uring/rw.c
create mode 100644 io_uring/rw.h
rename fs/io-wq.h => io_uring/slist.h (56%)
create mode 100644 io_uring/splice.c
create mode 100644 io_uring/splice.h
create mode 100644 io_uring/sqpoll.c
create mode 100644 io_uring/sqpoll.h
create mode 100644 io_uring/statx.c
create mode 100644 io_uring/statx.h
create mode 100644 io_uring/sync.c
create mode 100644 io_uring/sync.h
create mode 100644 io_uring/tctx.c
create mode 100644 io_uring/tctx.h
create mode 100644 io_uring/timeout.c
create mode 100644 io_uring/timeout.h
create mode 100644 io_uring/uring_cmd.c
create mode 100644 io_uring/uring_cmd.h
create mode 100644 io_uring/xattr.c
create mode 100644 io_uring/xattr.h
create mode 100644 kernel/kallsyms_internal.h
create mode 100644 kernel/kcsan/.kunitconfig
create mode 100644 kernel/module/Kconfig
create mode 100644 kernel/trace/rv/Kconfig
create mode 100644 kernel/trace/rv/Makefile
create mode 100644 kernel/trace/rv/monitors/wip/wip.c
create mode 100644 kernel/trace/rv/monitors/wip/wip.h
create mode 100644 kernel/trace/rv/monitors/wwnr/wwnr.c
create mode 100644 kernel/trace/rv/monitors/wwnr/wwnr.h
create mode 100644 kernel/trace/rv/reactor_panic.c
create mode 100644 kernel/trace/rv/reactor_printk.c
create mode 100644 kernel/trace/rv/rv.c
create mode 100644 kernel/trace/rv/rv.h
create mode 100644 kernel/trace/rv/rv_reactors.c
create mode 100644 lib/base64.c
rename lib/{ => crypto}/sha1.c (98%)
rename {crypto => lib}/memneq.c (100%)
delete mode 100644 lib/nodemask.c
create mode 100644 lib/test_cpumask.c
create mode 100644 lib/trace_readwrite.c
create mode 100644 mm/damon/lru_sort.c
create mode 100644 mm/shrinker_debug.c
create mode 100644 net/bluetooth/iso.c
create mode 100644 net/core/.gitignore
create mode 100644 net/dsa/tag_rzn1_a5psw.c
create mode 100644 net/netfilter/nf_flow_table_procfs.c
create mode 100644 net/tls/tls.h
create mode 100644 net/tls/tls_strp.c
delete mode 100644 samples/bpf/xdpsock.h
delete mode 100644 samples/bpf/xdpsock_ctrl_proc.c
delete mode 100644 samples/bpf/xdpsock_kern.c
delete mode 100644 samples/bpf/xdpsock_user.c
delete mode 100644 samples/bpf/xsk_fwd.c
create mode 100644 scripts/coccinelle/free/ifnulldev_put.cocci
delete mode 100644 scripts/coccinelle/misc/boolreturn.cocci
rename scripts/coccinelle/misc/{ifaddr.cocci => test_addr.cocci} (87%)
create mode 100644 scripts/dummy-tools/dummy-plugin-dir/include/plugin-version.h
create mode 100644 sound/pci/hda/hda_cs_dsp_ctl.c
create mode 100644 sound/pci/hda/hda_cs_dsp_ctl.h
create mode 100644 sound/soc/amd/acp-es8336.c
create mode 100644 sound/soc/amd/acp/acp-rembrandt.c
create mode 100644 sound/soc/amd/rpl/Makefile
create mode 100644 sound/soc/amd/rpl/rpl-pci-acp6x.c
create mode 100644 sound/soc/amd/rpl/rpl_acp6x.h
create mode 100644 sound/soc/amd/rpl/rpl_acp6x_chip_offset_byte.h
create mode 100644 sound/soc/codecs/hda-dai.c
create mode 100644 sound/soc/codecs/hda.c
create mode 100644 sound/soc/codecs/hda.h
create mode 100644 sound/soc/codecs/tas2780.c
create mode 100644 sound/soc/codecs/tas2780.h
create mode 100644 sound/soc/codecs/wsa883x.c
create mode 100644 sound/soc/intel/avs/boards/Kconfig
create mode 100644 sound/soc/intel/avs/boards/Makefile
create mode 100644 sound/soc/intel/avs/boards/da7219.c
create mode 100644 sound/soc/intel/avs/boards/dmic.c
create mode 100644 sound/soc/intel/avs/boards/hdaudio.c
create mode 100644 sound/soc/intel/avs/boards/i2s_test.c
create mode 100644 sound/soc/intel/avs/boards/max98357a.c
create mode 100644 sound/soc/intel/avs/boards/max98373.c
create mode 100644 sound/soc/intel/avs/boards/nau8825.c
create mode 100644 sound/soc/intel/avs/boards/rt274.c
create mode 100644 sound/soc/intel/avs/boards/rt286.c
create mode 100644 sound/soc/intel/avs/boards/rt298.c
create mode 100644 sound/soc/intel/avs/boards/rt5682.c
create mode 100644 sound/soc/intel/avs/boards/ssm4567.c
create mode 100644 sound/soc/intel/boards/bdw_rt286.c
delete mode 100644 sound/soc/intel/boards/broadwell.c
delete mode 100644 sound/soc/intel/boards/haswell.c
create mode 100644 sound/soc/intel/boards/hsw_rt5640.c
create mode 100644 sound/soc/intel/common/soc-acpi-intel-mtl-match.c
create mode 100644 sound/soc/mediatek/common/mtk-dsp-sof-common.c
create mode 100644 sound/soc/mediatek/common/mtk-dsp-sof-common.h
create mode 100644 sound/soc/mediatek/common/mtk-soc-card.h
create mode 100644 sound/soc/mediatek/mt8186/Makefile
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-clk.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-clk.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-common.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-control.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-gpio.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-gpio.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-pcm.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-audsys-clk.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-audsys-clk.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-audsys-clkid.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-adda.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-hostless.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-hw-gain.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-i2s.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-pcm.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-src.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-tdm.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-interconnection.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-misc-control.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-common.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-common.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-da7219-max98357.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-reg.h
create mode 100644 sound/soc/sof/intel/mtl.c
create mode 100644 sound/soc/sof/intel/mtl.h
create mode 100644 sound/soc/sof/intel/pci-mtl.c
create mode 100644 sound/soc/sof/ipc4-control.c
create mode 100644 sound/soc/sof/ipc4-pcm.c
create mode 100644 sound/soc/sof/ipc4-topology.c
create mode 100644 sound/soc/sof/ipc4-topology.h
delete mode 100644 sound/soc/tegra/tegra20_das.h
create mode 100644 sound/soc/tegra/tegra210_mbdrc.c
create mode 100644 sound/soc/tegra/tegra210_mbdrc.h
create mode 100644 sound/soc/tegra/tegra210_ope.c
create mode 100644 sound/soc/tegra/tegra210_ope.h
create mode 100644 sound/soc/tegra/tegra210_peq.c
create mode 100644 sound/soc/tegra/tegra210_peq.h
create mode 100644 tools/build/feature/test-disassembler-init-styled.c
create mode 100644 tools/cgroup/memcg_shrinker.py
create mode 100644 tools/include/tools/dis-asm-compat.h
create mode 100644 tools/perf/Documentation/guest-files.txt
create mode 100644 tools/perf/Documentation/guestmount.txt
create mode 100644 tools/perf/Documentation/perf-kwork.txt
delete mode 100644 tools/perf/arch/x86/tests/rdpmc.c
create mode 100644 tools/perf/arch/x86/util/cpuid.h
create mode 100644 tools/perf/builtin-kwork.c
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z16/pai.json
create mode 100644 tools/perf/pmu-events/arch/test/test_soc/cpu/metrics.json
create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/uncore-cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/uncore-other.json
delete mode 100644 tools/perf/pmu-events/arch/x86/broadwell/uncore.json
create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/cascadelakex/uncore-power.json
create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/icelake/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/uncore-other.json
delete mode 100644 tools/perf/pmu-events/arch/x86/knightslanding/uncore-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/knightslanding/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/frontend.json
create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/other.json
create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/virtual-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylake/uncore-cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylake/uncore-other.json
delete mode 100644 tools/perf/pmu-events/arch/x86/skylake/uncore.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/uncore-power.json
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/cache.json (95%)
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/floating-point.json (84%)
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/frontend.json (94%)
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/memory.json (99%)
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/other.json (98%)
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/pipeline.json (89%)
create mode 100644 tools/perf/pmu-events/arch/x86/snowridgex/uncore-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/snowridgex/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/snowridgex/uncore-power.json
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/virtual-memory.json (91%)
create mode 100644 tools/perf/pmu-events/arch/x86/tigerlake/uncore-other.json
delete mode 100644 tools/perf/pmu-events/arch/x86/tremontx/uncore-memory.json
delete mode 100644 tools/perf/pmu-events/arch/x86/tremontx/uncore-other.json
delete mode 100644 tools/perf/pmu-events/arch/x86/tremontx/uncore-power.json
create mode 100644 tools/perf/pmu-events/empty-pmu-events.c
delete mode 100644 tools/perf/pmu-events/jevents.c
create mode 100755 tools/perf/pmu-events/jevents.py
delete mode 100644 tools/perf/pmu-events/jsmn.c
delete mode 100644 tools/perf/pmu-events/jsmn.h
delete mode 100644 tools/perf/pmu-events/json.c
delete mode 100644 tools/perf/pmu-events/json.h
create mode 100644 tools/perf/tests/builtin-test-list.c
create mode 100644 tools/perf/tests/builtin-test-list.h
delete mode 100644 tools/perf/tests/shell/lib/perf_csv_output_lint.py
create mode 100644 tools/perf/tests/shell/lib/perf_json_output_lint.py
create mode 100755 tools/perf/tests/shell/stat+json_output.sh
create mode 100755 tools/perf/tests/shell/test_brstack.sh
create mode 100644 tools/perf/util/bpf_kwork.c
create mode 100644 tools/perf/util/bpf_lock_contention.c
create mode 100644 tools/perf/util/bpf_skel/kwork_trace.bpf.c
create mode 100644 tools/perf/util/bpf_skel/lock_contention.bpf.c
create mode 100644 tools/perf/util/kwork.h
create mode 100644 tools/perf/util/lock-contention.h
create mode 100644 tools/perf/util/print-events.c
create mode 100644 tools/perf/util/print-events.h
create mode 100644 tools/perf/util/tracepoint.c
create mode 100644 tools/perf/util/tracepoint.h
create mode 100644 tools/testing/kunit/configs/arch_uml.config
create mode 100644 tools/testing/kunit/configs/coverage_uml.config
create mode 100644 tools/testing/kunit/kunit_printer.py
create mode 100644 tools/testing/selftests/bpf/DENYLIST
create mode 100644 tools/testing/selftests/bpf/DENYLIST.s390x
create mode 100644 tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_full_update.c
create mode 100644 tools/testing/selftests/bpf/benchs/bench_local_storage.c
create mode 100644 tools/testing/selftests/bpf/benchs/bench_local_storage_rcu_tasks_trace.c
create mode 100755 tools/testing/selftests/bpf/benchs/run_bench_bpf_hashmap_full_update.sh
create mode 100755 tools/testing/selftests/bpf/benchs/run_bench_local_storage.sh
create mode 100755 tools/testing/selftests/bpf/benchs/run_bench_local_storage_rcu_tasks_trace.sh
create mode 100644 tools/testing/selftests/bpf/config.s390x
create mode 100644 tools/testing/selftests/bpf/config.x86_64
create mode 100644 tools/testing/selftests/bpf/prog_tests/libbpf_str.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/lru_bug.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/lsm_cgroup.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/xdp_synproxy.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_hashmap_full_update_bench.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_ksym.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_enum64val.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_enum64val___diff.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_enum64val___err_missing.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_enum64val___val3_missing.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_type_based___diff.c
create mode 100644 tools/testing/selftests/bpf/progs/freplace_global_func.c
create mode 100644 tools/testing/selftests/bpf/progs/local_storage_bench.c
create mode 100644 tools/testing/selftests/bpf/progs/local_storage_rcu_tasks_trace_bench.c
create mode 100644 tools/testing/selftests/bpf/progs/lru_bug.c
create mode 100644 tools/testing/selftests/bpf/progs/lsm_cgroup.c
create mode 100644 tools/testing/selftests/bpf/progs/lsm_cgroup_nonvoid.c
create mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf6.c
create mode 100644 tools/testing/selftests/bpf/progs/tcp_ca_incompl_cong_ops.c
create mode 100644 tools/testing/selftests/bpf/progs/tcp_ca_unsupp_cong_op.c
create mode 100644 tools/testing/selftests/bpf/progs/tcp_ca_write_sk_pacing.c
create mode 100644 tools/testing/selftests/bpf/progs/test_bpf_nf_fail.c
delete mode 100644 tools/testing/selftests/bpf/progs/test_btf_haskv.c
create mode 100644 tools/testing/selftests/bpf/progs/test_core_reloc_enum64val.c
create mode 100644 tools/testing/selftests/bpf/progs/xdp_synproxy_kern.c
create mode 100644 tools/testing/selftests/bpf/verifier/bpf_loop_inline.c
create mode 100644 tools/testing/selftests/bpf/xdp_synproxy.c
rename tools/{lib => testing/selftests}/bpf/xsk.c (94%)
rename tools/{lib => testing/selftests}/bpf/xsk.h (84%)
rename tools/testing/selftests/bpf/{xdpxceiver.c => xskxceiver.c} (98%)
rename tools/testing/selftests/bpf/{xdpxceiver.h => xskxceiver.h} (98%)
create mode 100644 tools/testing/selftests/drivers/net/dsa/Makefile
create mode 100644 tools/testing/selftests/drivers/net/mlxsw/rif_counter_scale.sh
create mode 120000 tools/testing/selftests/drivers/net/mlxsw/spectrum-2/rif_counter_scale.sh
create mode 100644 tools/testing/selftests/drivers/net/mlxsw/spectrum/rif_counter_scale.sh
rename {Documentation/vm => tools/testing/selftests/filesystems/fat}/.gitignore (66%)
create mode 100644 tools/testing/selftests/filesystems/fat/Makefile
create mode 100644 tools/testing/selftests/filesystems/fat/config
create mode 100644 tools/testing/selftests/filesystems/fat/rename_exchange.c
create mode 100644 tools/testing/selftests/filesystems/fat/run_fat_tests.sh
create mode 100644 tools/testing/selftests/kvm/include/x86_64/mce.h
delete mode 100644 tools/testing/selftests/kvm/lib/kvm_util_internal.h
create mode 100644 tools/testing/selftests/kvm/lib/x86_64/perf_test_util.c
create mode 100644 tools/testing/selftests/kvm/x86_64/max_vcpuid_cap_test.c
delete mode 100644 tools/testing/selftests/kvm/x86_64/mmu_role_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/monitor_mwait_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/nx_huge_pages_test.c
create mode 100755 tools/testing/selftests/kvm/x86_64/nx_huge_pages_test.sh
create mode 100644 tools/testing/selftests/kvm/x86_64/svm_nested_soft_inject_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/triple_fault_event_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/ucna_injection_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/vmx_msrs_test.c
create mode 100644 tools/testing/selftests/net/af_unix/unix_connect.c
create mode 100755 tools/testing/selftests/net/arp_ndisc_untracked_subnets.sh
delete mode 100644 tools/testing/selftests/net/bind_bhash_test.c
create mode 100755 tools/testing/selftests/net/fib_nexthop_nongw.sh
create mode 100755 tools/testing/selftests/net/forwarding/bridge_mdb_port_down.sh
create mode 100644 tools/testing/selftests/net/io_uring_zerocopy_tx.c
create mode 100755 tools/testing/selftests/net/io_uring_zerocopy_tx.sh
create mode 100755 tools/testing/selftests/net/srv6_hencap_red_l3vpn_test.sh
create mode 100755 tools/testing/selftests/net/srv6_hl2encap_red_l2vpn_test.sh
create mode 100644 tools/testing/selftests/net/tap.c
create mode 100644 tools/testing/selftests/net/tun.c
create mode 100644 tools/testing/selftests/powerpc/mce/.gitignore
create mode 100644 tools/testing/selftests/powerpc/pmu/branch_loops.S
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/Makefile
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/blacklisted_events_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/event_alternatives_tests_p10.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/event_alternatives_tests_p9.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/generic_events_valid_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_cache_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_l2l3_sel_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_mmcra_sample_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_pmc56_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_pmc_count_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_radix_scope_qual_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_repeat_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_thresh_cmp_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_thresh_ctl_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_thresh_sel_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_unit_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_pmc56_exclude_constraints_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/hw_cache_event_type_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/invalid_event_code_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/reserved_bits_mmcra_sample_elig_mode_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/reserved_bits_mmcra_thresh_ctl_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/bhrb_filter_map_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/bhrb_no_crash_wo_pmu_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/intr_regs_no_crash_wo_pmu_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcr1_sel_unit_cache_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_any_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_cond_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_disable_no_branch_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_disable_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_ind_call_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_thresh_cmp_test.c
create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-gpr.S
create mode 100644 tools/testing/selftests/timens/vfork_exec.c
create mode 100644 tools/testing/selftests/tpm2/settings
create mode 100755 tools/testing/selftests/vm/va_128TBswitch.sh
create mode 100644 tools/testing/selftests/wireguard/qemu/arch/um.config
create mode 100644 tools/verification/dot2/Makefile
create mode 100644 tools/verification/dot2/automata.py
create mode 100644 tools/verification/dot2/dot2c
create mode 100644 tools/verification/dot2/dot2c.py
create mode 100644 tools/verification/dot2/dot2k
create mode 100644 tools/verification/dot2/dot2k.py
create mode 100644 tools/verification/dot2/dot2k_templates/main_global.c
create mode 100644 tools/verification/dot2/dot2k_templates/main_per_cpu.c
create mode 100644 tools/verification/dot2/dot2k_templates/main_per_task.c
create mode 100644 tools/verification/models/wip.dot
create mode 100644 tools/verification/models/wwnr.dot
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer
^ permalink raw reply [relevance 1%]
* [Intel-gfx] [PULL] drm-misc-fixes
@ 2022-08-25 7:31 1% ` Thomas Zimmermann
0 siblings, 0 replies; 200+ results
From: Thomas Zimmermann @ 2022-08-25 7:31 UTC (permalink / raw)
To: Dave Airlie, Daniel Vetter
Cc: dim-tools, dri-devel, Maxime Ripard, Thomas Zimmermann,
Rodrigo Vivi, intel-gfx
Hi Dave and Daniel,
here's the weekly PR for drm-misc-fixes.
Best regards
Thomas
drm-misc-fixes-2022-08-25:
Short summary of fixes pull:
* gem: Fixes handle release leak
* nouveau: Fix fencing when moving BO
* vc4: HDMI fixes
* Backmerging for v6.0-rc1
The following changes since commit 82a1356a933d8443139f8886f11b63c974a09a67:
drm/sun4i: dsi: Prevent underflow when computing packet sizes (2022-08-15 09:09:49 +0200)
are available in the Git repository at:
git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-fixes-2022-08-25
for you to fetch changes up to 6b04ce966a738ecdd9294c9593e48513c0dc90aa:
nouveau: explicitly wait on the fence in nouveau_bo_move_m2mf (2022-08-23 18:00:12 +0200)
----------------------------------------------------------------
Short summary of fixes pull:
* gem: Fixes handle release leak
* nouveau: Fix fencing when moving BO
* vc4: HDMI fixes
* Backmerging for v6.0-rc1
----------------------------------------------------------------
Jeffy Chen (1):
drm/gem: Fix GEM handle release errors
Karol Herbst (1):
nouveau: explicitly wait on the fence in nouveau_bo_move_m2mf
Maxime Ripard (2):
drm/vc4: hdmi: Depends on CONFIG_PM
drm/vc4: hdmi: Rework power up
Thomas Zimmermann (1):
Merge drm/drm-fixes into drm-misc-fixes
.clang-format | 1 +
.mailmap | 17 +-
CREDITS | 8 +
Documentation/ABI/stable/sysfs-block | 9 +
Documentation/ABI/stable/sysfs-driver-mlxreg-io | 81 +-
Documentation/ABI/stable/sysfs-module | 2 +-
.../ABI/testing/configfs-usb-gadget-mass-storage | 10 +-
.../ABI/testing/debugfs-driver-habanalabs | 38 +-
Documentation/ABI/testing/procfs-smaps_rollup | 1 +
Documentation/ABI/testing/sysfs-ata | 11 +-
Documentation/ABI/testing/sysfs-bus-cxl | 305 +-
.../testing/sysfs-bus-event_source-devices-caps | 18 +
Documentation/ABI/testing/sysfs-bus-iio | 8 +
Documentation/ABI/testing/sysfs-bus-iio-sx9324 | 1 +
.../ABI/testing/sysfs-bus-iio-temperature-max31856 | 31 -
.../ABI/testing/sysfs-bus-iio-temperature-max31865 | 20 -
.../ABI/testing/sysfs-bus-iio-thermocouple | 18 +
.../ABI/testing/sysfs-bus-iio-timer-stm32 | 8 -
Documentation/ABI/testing/sysfs-bus-iio-vf610 | 2 +-
.../ABI/testing/sysfs-bus-platform-onboard-usb-hub | 8 +
.../testing/sysfs-bus-surface_aggregator-tabletsw | 57 +
Documentation/ABI/testing/sysfs-bus-usb | 11 +
Documentation/ABI/testing/sysfs-class-hwmon | 9 +
Documentation/ABI/testing/sysfs-class-pwm | 2 +-
Documentation/ABI/testing/sysfs-class-rtrs-client | 2 +-
Documentation/ABI/testing/sysfs-class-rtrs-server | 2 +-
Documentation/ABI/testing/sysfs-class-typec | 8 +
.../ABI/testing/sysfs-class-usb_power_delivery | 240 +
Documentation/ABI/testing/sysfs-class-vduse | 33 +
.../ABI/testing/sysfs-devices-platform-ACPI-TAD | 2 +-
.../ABI/testing/sysfs-devices-platform-soc-ipa | 62 +-
Documentation/ABI/testing/sysfs-devices-power | 2 +-
Documentation/ABI/testing/sysfs-devices-soc | 14 +-
Documentation/ABI/testing/sysfs-devices-system-cpu | 11 +-
.../ABI/testing/sysfs-driver-bd9571mwv-regulator | 2 +-
.../testing/sysfs-driver-intel-m10-bmc-sec-update | 61 +
Documentation/ABI/testing/sysfs-driver-qat | 49 +
Documentation/ABI/testing/sysfs-driver-xen-blkback | 2 +-
.../ABI/testing/sysfs-driver-xen-blkfront | 2 +-
.../ABI/testing/sysfs-firmware-qemu_fw_cfg | 5 +-
Documentation/ABI/testing/sysfs-fs-f2fs | 30 +
Documentation/ABI/testing/sysfs-kernel-mm-ksm | 2 +-
Documentation/ABI/testing/sysfs-kernel-slab | 4 +-
Documentation/Kconfig | 23 +-
Documentation/PCI/endpoint/index.rst | 2 +
Documentation/PCI/endpoint/pci-vntb-function.rst | 129 +
Documentation/PCI/endpoint/pci-vntb-howto.rst | 167 +
Documentation/PCI/pci-iov-howto.rst | 7 +-
Documentation/PCI/sysfs-pci.rst | 2 +-
.../RCU/Design/Requirements/Requirements.rst | 10 +-
Documentation/RCU/stallwarn.rst | 6 +-
Documentation/admin-guide/cgroup-v1/memcg_test.rst | 2 +-
Documentation/admin-guide/cgroup-v2.rst | 39 +-
.../admin-guide/device-mapper/writecache.rst | 18 +-
Documentation/admin-guide/devices.rst | 7 +-
Documentation/admin-guide/efi-stub.rst | 4 +-
Documentation/admin-guide/hw-vuln/index.rst | 1 +
.../hw-vuln/processor_mmio_stale_data.rst | 246 +
Documentation/admin-guide/hw-vuln/spectre.rst | 8 +
Documentation/admin-guide/kernel-parameters.txt | 265 +-
Documentation/admin-guide/media/vimc.dot | 4 +
Documentation/admin-guide/media/vimc.rst | 19 +
Documentation/admin-guide/media/vivid.rst | 14 +
Documentation/admin-guide/mm/concepts.rst | 2 +-
Documentation/admin-guide/mm/damon/index.rst | 3 +-
Documentation/admin-guide/mm/damon/lru_sort.rst | 294 +
Documentation/admin-guide/mm/damon/reclaim.rst | 8 +-
Documentation/admin-guide/mm/damon/usage.rst | 10 +-
Documentation/admin-guide/mm/hugetlbpage.rst | 4 +-
Documentation/admin-guide/mm/index.rst | 1 +
Documentation/admin-guide/mm/memory-hotplug.rst | 4 +-
Documentation/admin-guide/mm/shrinker_debugfs.rst | 135 +
Documentation/admin-guide/perf/hns3-pmu.rst | 136 +
Documentation/admin-guide/perf/index.rst | 1 +
Documentation/admin-guide/pm/cpuidle.rst | 15 +-
Documentation/admin-guide/sysctl/kernel.rst | 16 +-
Documentation/admin-guide/sysctl/net.rst | 12 +
Documentation/admin-guide/sysctl/vm.rst | 10 +-
Documentation/admin-guide/tainted-kernels.rst | 1 +
Documentation/arm/google/chromebook-boot-flow.rst | 69 +
Documentation/arm/index.rst | 2 +
Documentation/arm/samsung-s3c24xx/cpufreq.rst | 3 +-
Documentation/arm/tcm.rst | 2 +-
Documentation/arm64/elf_hwcaps.rst | 27 +-
Documentation/arm64/memory.rst | 10 +-
Documentation/arm64/silicon-errata.rst | 6 +
Documentation/arm64/sme.rst | 2 +-
Documentation/block/null_blk.rst | 22 +
Documentation/bpf/bpf_design_QA.rst | 25 +
Documentation/bpf/btf.rst | 49 +-
Documentation/bpf/index.rst | 1 +
Documentation/bpf/instruction-set.rst | 4 +-
Documentation/bpf/kfuncs.rst | 170 +
.../bpf/libbpf/libbpf_naming_convention.rst | 13 +-
Documentation/bpf/map_hash.rst | 185 +
Documentation/core-api/bus-virt-phys-mapping.rst | 220 -
Documentation/core-api/dma-api-howto.rst | 14 -
Documentation/core-api/dma-api.rst | 14 +
Documentation/core-api/idr.rst | 3 +
Documentation/core-api/index.rst | 3 +-
Documentation/core-api/kernel-api.rst | 2 +-
Documentation/core-api/mm-api.rst | 8 +-
Documentation/core-api/protection-keys.rst | 44 +-
Documentation/core-api/symbol-namespaces.rst | 4 +-
Documentation/dev-tools/coccinelle.rst | 2 +-
Documentation/dev-tools/kmemleak.rst | 1 -
Documentation/dev-tools/kselftest.rst | 36 +-
Documentation/dev-tools/kunit/run_wrapper.rst | 81 +-
Documentation/dev-tools/kunit/running_tips.rst | 5 +-
Documentation/dev-tools/kunit/usage.rst | 2 +-
Documentation/devicetree/bindings/Makefile | 4 +-
Documentation/devicetree/bindings/arm/altera.yaml | 10 +-
.../bindings/arm/arm,coresight-catu.yaml | 101 +
.../bindings/arm/arm,coresight-cpu-debug.yaml | 81 +
.../{coresight-cti.yaml => arm,coresight-cti.yaml} | 5 +-
.../bindings/arm/arm,coresight-dynamic-funnel.yaml | 126 +
.../arm/arm,coresight-dynamic-replicator.yaml | 126 +
.../bindings/arm/arm,coresight-etb10.yaml | 92 +
.../devicetree/bindings/arm/arm,coresight-etm.yaml | 156 +
.../bindings/arm/arm,coresight-static-funnel.yaml | 90 +
.../arm/arm,coresight-static-replicator.yaml | 91 +
.../devicetree/bindings/arm/arm,coresight-stm.yaml | 101 +
.../devicetree/bindings/arm/arm,coresight-tmc.yaml | 131 +
.../bindings/arm/arm,coresight-tpiu.yaml | 91 +
...{ete.yaml => arm,embedded-trace-extension.yaml} | 3 +-
.../{trbe.yaml => arm,trace-buffer-extension.yaml} | 2 +-
.../devicetree/bindings/arm/aspeed/aspeed.yaml | 87 +
.../devicetree/bindings/arm/atmel-at91.yaml | 6 +-
.../devicetree/bindings/arm/atmel-sysregs.txt | 15 -
.../devicetree/bindings/arm/bcm/brcm,bcm4708.yaml | 7 +
.../devicetree/bindings/arm/bcm/brcm,bcmbca.yaml | 93 +
.../bindings/arm/coresight-cpu-debug.txt | 49 -
.../devicetree/bindings/arm/coresight.txt | 402 -
Documentation/devicetree/bindings/arm/cpus.yaml | 2 +
.../devicetree/bindings/arm/freescale/fsl,scu.txt | 271 -
Documentation/devicetree/bindings/arm/fsl.yaml | 61 +-
.../arm/marvell/ap80x-system-controller.txt | 2 +-
.../arm/marvell/cp110-system-controller.txt | 2 +-
.../bindings/arm/marvell/marvell,ac5.yaml | 32 +
.../devicetree/bindings/arm/mediatek.yaml | 30 +
.../arm/mediatek/mediatek,mt8186-sys-clock.yaml | 3 +
.../arm/mediatek/mediatek,mt8192-clock.yaml | 8 -
.../arm/mediatek/mediatek,mt8192-sys-clock.yaml | 3 +
.../arm/mediatek/mediatek,mt8195-sys-clock.yaml | 3 +
.../bindings/arm/mediatek/mediatek,pericfg.yaml | 1 +
.../devicetree/bindings/arm/msm/qcom,saw2.txt | 2 +-
.../devicetree/bindings/arm/npcm/npcm.yaml | 7 +
.../devicetree/bindings/arm/npcm/nuvoton,gcr.yaml | 2 +
Documentation/devicetree/bindings/arm/qcom.yaml | 443 +-
.../devicetree/bindings/arm/rockchip.yaml | 5 +
.../bindings/arm/samsung/samsung-soc.yaml | 40 +
.../devicetree/bindings/arm/stm32/stm32.yaml | 8 +-
.../devicetree/bindings/arm/sunplus,sp7021.yaml | 29 +
Documentation/devicetree/bindings/arm/sunxi.yaml | 10 +
.../arm/sunxi/allwinner,sun4i-a10-mbus.yaml | 24 +-
.../arm/tegra/nvidia,tegra-ccplex-cluster.yaml | 1 -
.../arm/tegra/nvidia,tegra194-axi2apb.yaml | 40 +
.../bindings/arm/tegra/nvidia,tegra194-cbb.yaml | 97 +
.../bindings/arm/tegra/nvidia,tegra20-pmc.yaml | 2 +-
.../bindings/arm/tegra/nvidia,tegra234-cbb.yaml | 74 +
.../devicetree/bindings/arm/vexpress-sysreg.yaml | 10 +-
.../devicetree/bindings/ata/ahci-ceva.txt | 63 -
.../devicetree/bindings/ata/ceva,ahci-1v84.yaml | 189 +
.../bindings/bus/qcom,ssc-block-bus.yaml | 25 +-
Documentation/devicetree/bindings/chosen.txt | 137 -
.../bindings/chrome/google,cros-ec-typec.yaml | 15 +-
.../chrome/google,cros-kbd-led-backlight.yaml | 35 +
.../clock/allwinner,sun8i-a83t-de2-clk.yaml | 3 +
.../devicetree/bindings/clock/efm32-clock.txt | 11 -
.../bindings/clock/fixed-factor-clock.yaml | 1 -
.../devicetree/bindings/clock/fsl,scu-clk.yaml | 43 +
.../devicetree/bindings/clock/idt,versaclock5.yaml | 2 +-
.../bindings/clock/nuvoton,npcm845-clk.yaml | 49 +
.../bindings/clock/qcom,dispcc-sm8x50.yaml | 6 +-
.../bindings/clock/qcom,gcc-apq8064.yaml | 40 +-
.../bindings/clock/qcom,gcc-ipq8074.yaml | 5 +
.../bindings/clock/qcom,gcc-msm8996.yaml | 16 +
.../devicetree/bindings/clock/qcom,gcc-other.yaml | 5 +-
.../devicetree/bindings/clock/qcom,gcc-sdm845.yaml | 3 +
.../bindings/clock/qcom,gpucc-sm8350.yaml | 72 +
.../devicetree/bindings/clock/qcom,rpmcc.yaml | 85 +-
.../bindings/clock/qcom,sm8450-camcc.yaml | 80 +
.../bindings/clock/renesas,rzg2l-cpg.yaml | 7 +-
.../bindings/clock/samsung,exynos7885-clock.yaml | 27 +
.../devicetree/bindings/clock/sprd,ums512-clk.yaml | 71 +
.../devicetree/bindings/clock/st,stm32mp1-rcc.yaml | 1 +
.../devicetree/bindings/clock/st/st,flexgen.txt | 2 +-
.../bindings/clock/sunplus,sp7021-clkc.yaml | 52 +
.../devicetree/bindings/clock/ti/davinci/pll.txt | 2 +-
.../devicetree/bindings/clock/ti/dra7-atl.txt | 2 +-
.../bindings/connector/usb-connector.yaml | 152 +-
.../bindings/cpufreq/brcm,stb-avs-cpu-freq.txt | 2 +-
.../bindings/cpufreq/cpufreq-qcom-hw.yaml | 1 +
.../bindings/cpufreq/qcom-cpufreq-nvmem.yaml | 11 +-
.../devicetree/bindings/devfreq/exynos-bus.txt | 488 -
.../allwinner,sun4i-a10-display-engine.yaml | 1 +
.../devicetree/bindings/display/arm,malidp.yaml | 7 +-
.../devicetree/bindings/display/arm,pl11x.yaml | 15 +-
.../devicetree/bindings/display/atmel,lcdc.txt | 1 -
.../bindings/display/bridge/analogix,anx7625.yaml | 19 +-
.../bindings/display/bridge/fsl,imx8qxp-ldb.yaml | 173 +
.../display/bridge/fsl,imx8qxp-pixel-combiner.yaml | 144 +
.../display/bridge/fsl,imx8qxp-pixel-link.yaml | 144 +
.../display/bridge/fsl,imx8qxp-pxl2dpi.yaml | 108 +
.../bindings/display/bridge/fsl,ldb.yaml | 16 +-
.../display/bridge/ingenic,jz4780-hdmi.yaml | 1 -
.../devicetree/bindings/display/bridge/sii902x.txt | 78 -
.../bindings/display/bridge/sil,sii9022.yaml | 131 +
.../bindings/display/bridge/ti,dlpc3433.yaml | 117 +
.../devicetree/bindings/display/fsl,lcdif.yaml | 1 +
.../devicetree/bindings/display/ilitek,ili9341.txt | 27 -
.../bindings/display/mediatek/mediatek,dpi.yaml | 11 +-
.../bindings/display/mediatek/mediatek,dsi.txt | 62 -
.../bindings/display/mediatek/mediatek,dsi.yaml | 116 +
.../display/mediatek/mediatek,mdp-rdma.yaml | 88 +
.../bindings/display/msm/dp-controller.yaml | 8 +-
.../bindings/display/msm/dpu-sc7180.yaml | 2 +-
.../bindings/display/msm/dpu-sc7280.yaml | 2 +-
.../bindings/display/msm/dpu-sdm845.yaml | 2 +-
.../bindings/display/msm/dsi-controller-main.yaml | 2 +-
.../bindings/display/msm/dsi-phy-10nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-14nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-20nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-28nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-common.yaml | 2 +-
.../devicetree/bindings/display/msm/hdmi.txt | 99 -
.../devicetree/bindings/display/msm/hdmi.yaml | 232 +
.../bindings/display/panel/arm,rtsm-display.yaml | 27 +
.../bindings/display/panel/ebbg,ft8719.yaml | 74 +
.../display/panel/feiyang,fy07024di26a30d.yaml | 1 -
.../bindings/display/panel/ilitek,ili9341.yaml | 49 +-
.../bindings/display/panel/lg,lg4573.yaml | 2 +-
.../bindings/display/panel/lgphilips,lb035q02.yaml | 3 +
.../bindings/display/panel/novatek,nt36672a.yaml | 2 +
.../bindings/display/panel/panel-simple.yaml | 8 +
.../bindings/display/panel/raydium,rm67191.yaml | 1 +
.../bindings/display/panel/samsung,ld9040.yaml | 3 +
.../bindings/display/panel/sharp,lq101r1sx01.yaml | 7 +-
.../bindings/display/panel/sitronix,st7789v.yaml | 3 +
.../devicetree/bindings/display/panel/tpo,td.yaml | 3 +
.../display/samsung/samsung,exynos-hdmi-ddc.yaml | 1 -
.../display/samsung/samsung,exynos-hdmi.yaml | 1 -
.../display/samsung/samsung,exynos-mixer.yaml | 1 -
.../display/samsung/samsung,exynos5433-decon.yaml | 1 -
.../display/samsung/samsung,exynos5433-mic.yaml | 1 -
.../display/samsung/samsung,exynos7-decon.yaml | 1 -
.../bindings/display/samsung/samsung,fimd.yaml | 1 -
.../bindings/display/simple-framebuffer.yaml | 1 -
.../bindings/display/sitronix,st7735r.yaml | 1 +
.../bindings/display/solomon,ssd1307fb.yaml | 7 +-
.../display/tegra/nvidia,tegra114-mipi.txt | 41 -
.../display/tegra/nvidia,tegra114-mipi.yaml | 74 +
.../display/tegra/nvidia,tegra124-dpaux.yaml | 152 +
.../display/tegra/nvidia,tegra124-sor.yaml | 197 +
.../display/tegra/nvidia,tegra124-vic.yaml | 72 +
.../bindings/display/tegra/nvidia,tegra186-dc.yaml | 85 +
.../display/tegra/nvidia,tegra186-display.yaml | 310 +
.../display/tegra/nvidia,tegra186-dsi-padctl.yaml | 45 +
.../bindings/display/tegra/nvidia,tegra20-dc.yaml | 183 +
.../bindings/display/tegra/nvidia,tegra20-dsi.yaml | 159 +
.../bindings/display/tegra/nvidia,tegra20-epp.yaml | 70 +
.../display/tegra/nvidia,tegra20-gr2d.yaml | 74 +
.../display/tegra/nvidia,tegra20-gr3d.yaml | 215 +
.../display/tegra/nvidia,tegra20-hdmi.yaml | 126 +
.../display/tegra/nvidia,tegra20-host1x.txt | 675 -
.../display/tegra/nvidia,tegra20-host1x.yaml | 431 +
.../bindings/display/tegra/nvidia,tegra20-isp.yaml | 67 +
.../bindings/display/tegra/nvidia,tegra20-mpe.yaml | 73 +
.../bindings/display/tegra/nvidia,tegra20-tvo.yaml | 58 +
.../bindings/display/tegra/nvidia,tegra20-vi.yaml | 163 +
.../display/tegra/nvidia,tegra210-csi.yaml | 52 +
.../bindings/dma/allwinner,sun50i-a64-dma.yaml | 2 +-
.../devicetree/bindings/dma/apple,admac.yaml | 80 +
.../devicetree/bindings/dma/fsl,edma.yaml | 155 +
Documentation/devicetree/bindings/dma/fsl-edma.txt | 111 -
.../devicetree/bindings/dma/mediatek,uart-dma.yaml | 1 +
.../bindings/dma/nvidia,tegra186-gpc-dma.yaml | 4 +-
.../devicetree/bindings/dma/qcom,bam-dma.yaml | 100 +
.../devicetree/bindings/dma/qcom_bam_dma.txt | 52 -
.../devicetree/bindings/dma/snps,dw-axi-dmac.yaml | 7 +-
.../devicetree/bindings/dma/ste-dma40.txt | 138 -
.../devicetree/bindings/dma/stericsson,dma40.yaml | 159 +
.../bindings/dsp/mediatek,mt8186-dsp.yaml | 91 +
.../bindings/dsp/mediatek,mt8195-dsp.yaml | 10 +-
Documentation/devicetree/bindings/eeprom/at25.yaml | 5 +-
.../microchip,93lc46b.yaml} | 11 +-
.../devicetree/bindings/firmware/arm,scmi.yaml | 10 +
.../devicetree/bindings/firmware/fsl,scu.yaml | 210 +
.../devicetree/bindings/firmware/qcom,scm.txt | 4 +
.../devicetree/bindings/fpga/fpga-region.txt | 2 +-
.../bindings/fpga/microchip,mpf-spi-fpga-mgr.yaml | 44 +
.../devicetree/bindings/gpio/fsl-imx-gpio.yaml | 2 +
.../devicetree/bindings/gpio/gpio-mvebu.txt | 93 -
.../devicetree/bindings/gpio/gpio-mvebu.yaml | 146 +
.../devicetree/bindings/gpio/gpio-pca9570.yaml | 1 +
.../devicetree/bindings/gpio/gpio-pisosr.txt | 2 +-
.../devicetree/bindings/gpio/gpio-tpic2810.txt | 16 -
.../devicetree/bindings/gpio/gpio-tpic2810.yaml | 51 +
.../devicetree/bindings/gpio/gpio-zynq.yaml | 59 +-
.../bindings/gpio/renesas,rcar-gpio.yaml | 4 +-
.../bindings/gpio/rockchip,gpio-bank.yaml | 2 +
.../devicetree/bindings/gpio/sifive,gpio.yaml | 4 +
.../bindings/gpio/x-powers,axp209-gpio.yaml | 6 +
.../devicetree/bindings/gpu/arm,mali-bifrost.yaml | 25 +-
.../devicetree/bindings/gpu/brcm,bcm-v3d.yaml | 1 +
.../bindings/{arm => hwinfo}/renesas,prr.yaml | 4 +-
.../samsung,exynos-chipid.yaml} | 2 +-
.../bindings/hwinfo/samsung,s5pv210-chipid.yaml | 30 +
.../k3-socinfo.yaml => hwinfo/ti,k3-socinfo.yaml} | 2 +-
.../devicetree/bindings/hwmon/adi,adm1177.yaml | 1 -
.../devicetree/bindings/hwmon/adt7475.yaml | 2 +-
.../bindings/{i2c => hwmon}/ibm,p8-occ-hwmon.txt | 0
.../devicetree/bindings/hwmon/national,lm90.yaml | 131 +
.../devicetree/bindings/hwmon/ti,tmp401.yaml | 5 +-
.../devicetree/bindings/hwmon/vexpress.txt | 2 +-
.../devicetree/bindings/i2c/arm,i2c-versatile.yaml | 29 +
.../devicetree/bindings/i2c/i2c-efm32.txt | 33 -
.../devicetree/bindings/i2c/i2c-mt65xx.yaml | 1 +
.../devicetree/bindings/i2c/i2c-nomadik.txt | 23 -
.../devicetree/bindings/i2c/i2c-ocores.txt | 78 -
.../devicetree/bindings/i2c/i2c-qcom-cci.txt | 95 -
.../devicetree/bindings/i2c/i2c-rk3x.yaml | 2 +
.../devicetree/bindings/i2c/i2c-versatile.txt | 10 -
.../bindings/i2c/marvell,mv64xxx-i2c.yaml | 10 +-
.../bindings/i2c/nuvoton,npcm7xx-i2c.yaml | 25 +-
.../bindings/i2c/opencores,i2c-ocores.yaml | 113 +
.../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 242 +
.../devicetree/bindings/i2c/renesas,rzv2m.yaml | 80 +
.../devicetree/bindings/i2c/st,nomadik-i2c.yaml | 115 +
.../devicetree/bindings/i2c/st,stm32-i2c.yaml | 2 +
.../bindings/iio/accel/adi,adis16240.yaml | 2 +-
.../devicetree/bindings/iio/accel/adi,adxl345.yaml | 2 +-
.../bindings/iio/accel/bosch,bmi088.yaml | 2 +
.../devicetree/bindings/iio/accel/fsl,mma7455.yaml | 1 -
.../bindings/iio/accel/murata,sca3300.yaml | 1 +
.../devicetree/bindings/iio/adc/adi,ad7091r5.yaml | 2 +-
.../devicetree/bindings/iio/adc/adi,ad7606.yaml | 3 +-
.../devicetree/bindings/iio/adc/adi,ad9467.yaml | 1 -
.../devicetree/bindings/iio/adc/adi,axi-adc.yaml | 1 -
.../devicetree/bindings/iio/adc/fsl,vf610-adc.yaml | 9 +-
.../bindings/iio/adc/mediatek,mt2701-auxadc.yaml | 1 +
.../bindings/iio/adc/nuvoton,npcm750-adc.yaml | 7 +-
.../bindings/iio/adc/nxp,lpc1850-adc.yaml | 2 +-
.../bindings/iio/adc/qcom,spmi-rradc.yaml | 51 +
.../bindings/iio/adc/renesas,rzg2l-adc.yaml | 28 +-
.../devicetree/bindings/iio/adc/ti,adc108s102.yaml | 2 +-
.../devicetree/bindings/iio/adc/ti,ads124s08.yaml | 2 +-
.../bindings/iio/amplifiers/adi,hmc425a.yaml | 1 -
.../devicetree/bindings/iio/dac/adi,ad5766.yaml | 2 +
.../devicetree/bindings/iio/dac/adi,ad5770r.yaml | 2 +-
.../bindings/iio/dac/microchip,mcp4922.yaml | 1 +
.../devicetree/bindings/iio/dac/ti,dac5571.yaml | 1 +
.../devicetree/bindings/iio/imu/adi,adis16480.yaml | 2 +-
.../devicetree/bindings/iio/imu/nxp,fxos8700.yaml | 2 +-
.../bindings/iio/proximity/semtech,sx9324.yaml | 39 +
.../bindings/iio/proximity/semtech,sx9360.yaml | 9 +
.../bindings/iio/proximity/st,vl53l0x.yaml | 5 +
.../devicetree/bindings/input/adc-joystick.yaml | 2 +-
.../devicetree/bindings/input/adc-keys.txt | 67 -
.../devicetree/bindings/input/adc-keys.yaml | 103 +
.../input/allwinner,sun4i-a10-lradc-keys.yaml | 5 +-
.../devicetree/bindings/input/ariel-pwrbutton.yaml | 1 +
.../devicetree/bindings/input/azoteq,iqs7222.yaml | 41 +-
.../devicetree/bindings/input/da9062-onkey.txt | 2 +-
.../devicetree/bindings/input/elan,ekth6915.yaml | 65 +
.../bindings/input/fsl,mpr121-touchkey.yaml | 4 +-
.../devicetree/bindings/input/fsl,scu-key.yaml | 40 +
.../devicetree/bindings/input/gpio-keys.yaml | 167 +-
Documentation/devicetree/bindings/input/input.yaml | 24 +-
.../devicetree/bindings/input/iqs269a.yaml | 17 +-
.../devicetree/bindings/input/iqs626a.yaml | 13 +-
.../devicetree/bindings/input/iqs62x-keys.yaml | 9 +-
.../devicetree/bindings/input/max77650-onkey.yaml | 8 +-
.../bindings/input/microchip,cap11xx.yaml | 2 +-
.../bindings/input/touchscreen/edt-ft5x06.yaml | 8 +
.../bindings/input/touchscreen/ektf2127.txt | 2 +-
.../bindings/interconnect/fsl,imx8m-noc.yaml | 6 +-
.../bindings/interconnect/mediatek,cci.yaml | 141 +
.../bindings/interconnect/qcom,msm8998-bwmon.yaml | 86 +
.../devicetree/bindings/interconnect/qcom,rpm.yaml | 6 +-
.../bindings/interconnect/qcom,rpmh-common.yaml | 43 +
.../bindings/interconnect/qcom,rpmh.yaml | 22 +-
.../bindings/interconnect/qcom,sm6350-rpmh.yaml | 82 +
.../bindings/interconnect/samsung,exynos-bus.yaml | 290 +
.../interrupt-controller/rda,8810pl-intc.txt | 61 -
.../interrupt-controller/rda,8810pl-intc.yaml | 43 +
.../interrupt-controller/renesas,rzg2l-irqc.yaml | 134 +
.../interrupt-controller/sifive,plic-1.0.0.yaml | 65 +-
.../socionext,uniphier-aidet.yaml | 1 +
.../interrupt-controller/sunplus,sp7021-intc.yaml | 62 +
.../devicetree/bindings/iommu/arm,smmu.yaml | 1 +
.../devicetree/bindings/iommu/mediatek,iommu.yaml | 17 +
.../devicetree/bindings/iommu/xen,grant-dma.yaml | 39 +
.../devicetree/bindings/leds/backlight/common.yaml | 2 +-
.../bindings/leds/backlight/gpio-backlight.yaml | 2 +-
.../bindings/leds/backlight/led-backlight.yaml | 2 +-
.../bindings/leds/backlight/lm3630a-backlight.yaml | 2 +-
.../bindings/leds/backlight/pwm-backlight.yaml | 2 +-
.../leds/backlight/richtek,rt4831-backlight.yaml | 5 +
.../bindings/leds/cznic,turris-omnia-leds.yaml | 2 +
.../devicetree/bindings/leds/issi,is31fl319x.yaml | 193 +
.../devicetree/bindings/leds/leds-aat1290.txt | 77 -
.../devicetree/bindings/leds/leds-bcm63138.yaml | 95 +
.../bindings/leds/leds-class-multicolor.yaml | 34 +-
.../devicetree/bindings/leds/leds-is31fl319x.txt | 61 -
.../devicetree/bindings/leds/leds-lp50xx.yaml | 116 +-
.../devicetree/bindings/leds/leds-lp55xx.yaml | 222 +-
.../bindings/leds/leds-pwm-multicolor.yaml | 51 +-
.../devicetree/bindings/leds/leds-qcom-lpg.yaml | 3 +
.../devicetree/bindings/leds/skyworks,aat1290.yaml | 95 +
.../devicetree/bindings/mailbox/arm,mhu.yaml | 1 +
.../devicetree/bindings/mailbox/fsl,mu.yaml | 6 +-
.../bindings/mailbox/qcom,apcs-kpss-global.yaml | 46 +-
.../devicetree/bindings/mailbox/qcom-ipcc.yaml | 1 +
.../bindings/media/allwinner,sun6i-a31-csi.yaml | 58 +-
.../media/allwinner,sun6i-a31-mipi-csi2.yaml | 137 +
.../media/allwinner,sun8i-a83t-mipi-csi2.yaml | 125 +
.../bindings/media/exynos-jpeg-codec.txt | 16 -
.../devicetree/bindings/media/gpio-ir-receiver.txt | 20 -
.../bindings/media/gpio-ir-receiver.yaml | 40 +
.../bindings/media/i2c/aptina,mt9p031.yaml | 1 +
.../devicetree/bindings/media/i2c/onnn,ar0521.yaml | 112 +
.../devicetree/bindings/media/i2c/ovti,ov5693.yaml | 124 +
.../media/mediatek,vcodec-subdev-decoder.yaml | 52 +-
.../bindings/media/mediatek-jpeg-encoder.yaml | 6 +
.../bindings/media/nxp,imx-mipi-csi2.yaml | 11 +-
.../bindings/media/qcom,sdm660-camss.yaml | 7 +
Documentation/devicetree/bindings/media/rc.yaml | 2 +-
.../bindings/media/rockchip,rk3568-vepu.yaml | 69 +
.../devicetree/bindings/media/rockchip-isp1.yaml | 23 +-
.../bindings/media/samsung,s5pv210-jpeg.yaml | 123 +
.../memory-controllers/canaan,k210-sram.yaml | 52 +
.../memory-controllers/mediatek,smi-common.yaml | 1 +
.../memory-controllers/mediatek,smi-larb.yaml | 1 +
.../memory-controllers/nvidia,tegra186-mc.yaml | 3 -
Documentation/devicetree/bindings/mfd/da9063.txt | 114 -
.../devicetree/bindings/mfd/dlg,da9063.yaml | 132 +
.../devicetree/bindings/mfd/fsl,imx8qxp-csr.yaml | 192 +
.../devicetree/bindings/mfd/gateworks-gsc.yaml | 1 -
.../devicetree/bindings/mfd/google,cros-ec.yaml | 3 +
.../devicetree/bindings/mfd/maxim,max77714.yaml | 2 +-
.../devicetree/bindings/mfd/mps,mp2629.yaml | 4 +-
Documentation/devicetree/bindings/mfd/mt6397.txt | 8 +-
.../devicetree/bindings/mfd/qcom,spmi-pmic.txt | 94 -
.../devicetree/bindings/mfd/qcom,spmi-pmic.yaml | 190 +
.../devicetree/bindings/mfd/qcom,tcsr.txt | 24 -
.../devicetree/bindings/mfd/qcom,tcsr.yaml | 50 +
.../devicetree/bindings/mfd/qcom-pm8xxx.yaml | 2 +-
.../devicetree/bindings/mfd/rohm,bd71815-pmic.yaml | 2 +-
.../devicetree/bindings/mfd/st,stm32-lptimer.yaml | 28 +-
.../devicetree/bindings/mfd/st,stm32-timers.yaml | 37 +-
Documentation/devicetree/bindings/mfd/syscon.yaml | 2 +-
.../bindings/mfd/ti,j721e-system-controller.yaml | 12 +
.../devicetree/bindings/mips/lantiq/rcu.txt | 2 +-
.../bindings/misc/qemu,vcpu-stall-detector.yaml | 51 +
.../bindings/mmc/brcm,sdhci-brcmstb.yaml | 34 +-
.../devicetree/bindings/mmc/exynos-dw-mshc.txt | 94 -
.../bindings/mmc/marvell,xenon-sdhci.yaml | 4 +-
.../devicetree/bindings/mmc/mmc-spi-slot.txt | 29 -
.../devicetree/bindings/mmc/mmc-spi-slot.yaml | 77 +
Documentation/devicetree/bindings/mmc/mtk-sd.yaml | 62 +-
.../devicetree/bindings/mmc/renesas,sdhi.yaml | 7 +-
.../devicetree/bindings/mmc/rockchip-dw-mshc.yaml | 1 +
.../bindings/mmc/samsung,exynos-dw-mshc.yaml | 160 +
.../bindings/mmc/samsung,s3c6410-sdhci.yaml | 81 +
.../devicetree/bindings/mmc/samsung-sdhci.txt | 32 -
.../devicetree/bindings/mmc/sdhci-msm.yaml | 84 +-
.../bindings/mtd/microchip,mchp48l640.yaml | 7 +-
.../devicetree/bindings/mtd/mxc-nand.yaml | 2 -
.../mtd/partitions/arm,arm-firmware-suite.txt | 17 -
.../mtd/partitions/arm,arm-firmware-suite.yaml | 28 +
.../bindings/mtd/partitions/partition.yaml | 20 +-
.../bindings/mtd/partitions/qcom,smem-part.yaml | 27 +
.../devicetree/bindings/mtd/qcom,nandc.yaml | 27 +
.../bindings/net/allwinner,sun8i-a83t-emac.yaml | 1 +
.../devicetree/bindings/net/altera_tse.txt | 2 +-
.../bindings/net/broadcom-bluetooth.yaml | 25 +
.../bindings/net/can/microchip,mpfs-can.yaml | 45 +
.../devicetree/bindings/net/can/nxp,sja1000.yaml | 132 +
.../devicetree/bindings/net/can/sja1000.txt | 58 -
.../devicetree/bindings/net/cdns,macb.yaml | 14 +-
Documentation/devicetree/bindings/net/cpsw.txt | 2 +-
.../bindings/net/dsa/hirschmann,hellcreek.yaml | 2 +-
.../bindings/net/dsa/mediatek,mt7530.yaml | 407 +
.../bindings/net/dsa/microchip,lan937x.yaml | 192 +
.../devicetree/bindings/net/dsa/mt7530.txt | 327 -
.../bindings/net/dsa/renesas,rzn1-a5psw.yaml | 157 +
.../devicetree/bindings/net/emac_rockchip.txt | 52 -
.../bindings/net/ethernet-controller.yaml | 158 +-
Documentation/devicetree/bindings/net/fsl,fec.yaml | 14 +-
.../bindings/net/mediatek,star-emac.yaml | 17 +
Documentation/devicetree/bindings/net/micrel.txt | 1 +
.../devicetree/bindings/net/nfc/marvell,nci.yaml | 4 +-
.../devicetree/bindings/net/nfc/nxp,nci.yaml | 1 -
.../devicetree/bindings/net/nfc/st,st-nci.yaml | 5 +-
.../devicetree/bindings/net/nfc/st,st95hf.yaml | 7 +-
.../devicetree/bindings/net/nfc/ti,trf7970a.yaml | 7 +-
.../bindings/net/pcs/renesas,rzn1-miic.yaml | 171 +
.../devicetree/bindings/net/qcom-emac.txt | 2 +-
.../devicetree/bindings/net/rockchip,emac.yaml | 115 +
Documentation/devicetree/bindings/net/sff,sfp.txt | 85 -
Documentation/devicetree/bindings/net/sff,sfp.yaml | 142 +
.../devicetree/bindings/net/snps,dwmac.yaml | 5 +
.../devicetree/bindings/net/ti,dp83822.yaml | 2 +-
.../devicetree/bindings/net/ti,dp83867.yaml | 20 +-
.../devicetree/bindings/net/ti,dp83869.yaml | 2 +-
.../bindings/net/wireless/brcm,bcm4329-fmac.yaml | 10 +
.../bindings/net/wireless/mediatek,mt76.yaml | 13 +
.../bindings/net/wireless/qca,ath9k.yaml | 2 +-
.../bindings/net/wireless/qcom,ath11k.yaml | 2 +-
.../devicetree/bindings/net/xlnx,emaclite.yaml | 63 +
.../devicetree/bindings/nvme/apple,nvme-ans.yaml | 1 -
.../devicetree/bindings/nvmem/fsl,scu-ocotp.yaml | 56 +
.../devicetree/bindings/nvmem/mediatek,efuse.yaml | 89 +
.../bindings/nvmem/microchip,sama7g5-otpc.yaml | 50 +
.../devicetree/bindings/nvmem/mtk-efuse.txt | 43 -
.../devicetree/bindings/opp/opp-v2-base.yaml | 10 +
.../devicetree/bindings/opp/opp-v2-kryo-cpu.yaml | 15 +
.../devicetree/bindings/pci/fsl,imx6q-pcie.yaml | 1 +
.../devicetree/bindings/pci/host-generic-pci.yaml | 3 +
.../devicetree/bindings/pci/mediatek-pcie.txt | 1 +
.../bindings/pci/nvidia,tegra194-pcie-ep.yaml | 319 +
.../bindings/pci/nvidia,tegra194-pcie.txt | 245 -
.../bindings/pci/nvidia,tegra194-pcie.yaml | 350 +
.../devicetree/bindings/pci/pci-rcar-gen2.txt | 84 -
.../devicetree/bindings/pci/qcom,pcie.yaml | 55 +-
.../bindings/pci/renesas,pci-rcar-gen2.yaml | 186 +
.../devicetree/bindings/pci/snps,dw-pcie.yaml | 4 +-
.../devicetree/bindings/pci/xilinx-versal-cpm.yaml | 38 +-
.../devicetree/bindings/perf/arm,ccn.yaml | 40 +
Documentation/devicetree/bindings/perf/arm-ccn.txt | 23 -
.../phy/amlogic,g12a-mipi-dphy-analog.yaml | 35 +
.../phy/amlogic,meson-axg-mipi-pcie-analog.yaml | 2 +-
.../devicetree/bindings/phy/cdns,dphy.yaml | 5 +-
.../bindings/phy/fsl,imx8qm-lvds-phy.yaml | 61 +
.../devicetree/bindings/phy/mediatek,dsi-phy.yaml | 4 +
.../devicetree/bindings/phy/mediatek,pcie-phy.yaml | 75 +
.../devicetree/bindings/phy/mediatek,tphy.yaml | 2 +
.../devicetree/bindings/phy/mxs-usb-phy.txt | 1 +
.../devicetree/bindings/phy/phy-stih407-usb.txt | 2 +-
.../devicetree/bindings/phy/phy-tegra194-p2u.yaml | 17 +-
.../devicetree/bindings/phy/qcom,edp-phy.yaml | 6 +
.../bindings/phy/qcom,hdmi-phy-other.yaml | 104 +
.../devicetree/bindings/phy/qcom,hdmi-phy-qmp.yaml | 85 +
.../devicetree/bindings/phy/qcom,qmp-phy.yaml | 2 +
.../bindings/phy/qcom,qmp-usb3-dp-phy.yaml | 2 +-
.../devicetree/bindings/phy/qcom,qusb2-phy.yaml | 2 +-
.../bindings/phy/qcom,usb-snps-femto-v2.yaml | 2 +-
.../devicetree/bindings/phy/renesas,usb3-phy.yaml | 2 +-
.../bindings/phy/samsung,exynos-hdmi-phy.yaml | 1 -
.../devicetree/bindings/phy/samsung,ufs-phy.yaml | 15 +-
.../pinctrl/allwinner,sun4i-a10-pinctrl.yaml | 34 +-
.../bindings/pinctrl/aspeed,ast2400-pinctrl.yaml | 2 +-
.../bindings/pinctrl/aspeed,ast2500-pinctrl.yaml | 2 +-
.../bindings/pinctrl/aspeed,ast2600-pinctrl.yaml | 2 +-
.../bindings/pinctrl/fsl,scu-pinctrl.yaml | 74 +
.../bindings/pinctrl/nuvoton,wpcm450-pinctrl.yaml | 2 +-
.../pinctrl/nvidia,tegra124-dpaux-padctl.txt | 59 -
.../bindings/pinctrl/pinctrl-mt8186.yaml | 31 +-
.../bindings/pinctrl/pinctrl-mt8192.yaml | 64 +-
.../bindings/pinctrl/pinctrl-mt8195.yaml | 41 +-
.../devicetree/bindings/pinctrl/pinctrl-rk805.txt | 2 +-
.../bindings/pinctrl/qcom,ipq6018-pinctrl.yaml | 2 +-
.../bindings/pinctrl/qcom,msm8909-tlmm.yaml | 152 +
.../bindings/pinctrl/qcom,pmic-gpio.yaml | 4 +
.../pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml | 5 +
.../bindings/pinctrl/qcom,sm6375-tlmm.yaml | 158 +
.../bindings/pinctrl/ralink,mt7620-pinctrl.yaml | 26 +-
.../bindings/pinctrl/ralink,rt305x-pinctrl.yaml | 27 +-
.../devicetree/bindings/pinctrl/renesas,pfc.yaml | 1 +
.../bindings/pinctrl/renesas,rzg2l-pinctrl.yaml | 15 +
.../bindings/pinctrl/renesas,rzv2m-pinctrl.yaml | 170 +
.../bindings/pinctrl/st,stm32-pinctrl.yaml | 4 +-
.../bindings/pinctrl/sunplus,sp7021-pinctrl.yaml | 5 +-
.../bindings/pinctrl/xlnx,zynqmp-pinctrl.yaml | 4 +
.../bindings/power/amlogic,meson-ee-pwrc.yaml | 6 +-
.../bindings/power/amlogic,meson-sec-pwrc.yaml | 4 +-
.../bindings/power/apple,pmgr-pwrstate.yaml | 2 +-
.../bindings/power/brcm,bcm63xx-power.yaml | 4 +-
.../devicetree/bindings/power/fsl,scu-pd.yaml | 41 +
.../bindings/power/mediatek,power-controller.yaml | 2 +
.../devicetree/bindings/power/qcom,rpmpd.yaml | 1 +
.../devicetree/bindings/power/renesas,apmu.yaml | 4 +-
.../bindings/power/renesas,rcar-sysc.yaml | 4 +-
.../bindings/power/reset/msm-poweroff.txt | 17 -
.../devicetree/bindings/power/reset/qcom,pon.yaml | 8 +-
.../bindings/power/reset/qcom,pshold.yaml | 35 +
.../bindings/power/reset/regulator-poweroff.yaml | 2 +-
.../bindings/power/reset/xlnx,zynqmp-power.yaml | 2 +-
.../power/supply/active-semi,act8945a-charger.yaml | 4 +-
.../devicetree/bindings/power/supply/bq2415x.yaml | 4 +-
.../devicetree/bindings/power/supply/bq24190.yaml | 6 +-
.../devicetree/bindings/power/supply/bq24257.yaml | 4 +-
.../devicetree/bindings/power/supply/bq24735.yaml | 4 +-
.../devicetree/bindings/power/supply/bq2515x.yaml | 7 +-
.../devicetree/bindings/power/supply/bq256xx.yaml | 6 +-
.../devicetree/bindings/power/supply/bq25890.yaml | 4 +-
.../devicetree/bindings/power/supply/bq25980.yaml | 7 +-
.../devicetree/bindings/power/supply/bq27xxx.yaml | 4 +-
.../bindings/power/supply/charger-manager.yaml | 1 +
.../bindings/power/supply/cpcap-battery.yaml | 4 +-
.../bindings/power/supply/cpcap-charger.yaml | 4 +-
.../bindings/power/supply/dlg,da9150-charger.yaml | 4 +-
.../power/supply/dlg,da9150-fuel-gauge.yaml | 4 +-
.../bindings/power/supply/ingenic,battery.yaml | 4 +-
.../devicetree/bindings/power/supply/isp1704.yaml | 4 +-
.../bindings/power/supply/lego,ev3-battery.yaml | 4 +-
.../bindings/power/supply/lltc,lt3651-charger.yaml | 4 +-
.../bindings/power/supply/lltc,ltc294x.yaml | 4 +-
.../bindings/power/supply/ltc4162-l.yaml | 4 +-
.../bindings/power/supply/maxim,ds2760.yaml | 4 +-
.../bindings/power/supply/maxim,max14656.yaml | 4 +-
.../bindings/power/supply/maxim,max17040.yaml | 4 +-
.../bindings/power/supply/maxim,max17042.yaml | 4 +-
.../bindings/power/supply/maxim,max77976.yaml | 2 +-
.../bindings/power/supply/maxim,max8903.yaml | 4 +-
.../bindings/power/supply/nokia,n900-battery.yaml | 4 +-
.../bindings/power/supply/olpc-battery.yaml | 4 +-
.../bindings/power/supply/power-supply.yaml | 4 +-
.../bindings/power/supply/qcom,pm8941-charger.yaml | 9 +-
.../power/supply/richtek,rt5033-battery.yaml | 4 +-
.../bindings/power/supply/richtek,rt9455.yaml | 4 +-
.../bindings/power/supply/sc2731-charger.yaml | 4 +-
.../bindings/power/supply/sc27xx-fg.yaml | 4 +-
.../power/supply/stericsson,ab8500-btemp.yaml | 4 +-
.../power/supply/stericsson,ab8500-chargalg.yaml | 4 +-
.../power/supply/stericsson,ab8500-charger.yaml | 4 +-
.../power/supply/stericsson,ab8500-fg.yaml | 4 +-
.../power/supply/summit,smb347-charger.yaml | 6 +-
.../bindings/power/supply/tps65090-charger.yaml | 4 +-
.../bindings/power/supply/tps65217-charger.yaml | 4 +-
.../bindings/power/supply/twl4030-charger.yaml | 4 +-
.../supply/x-powers,axp20x-ac-power-supply.yaml | 4 +-
.../x-powers,axp20x-battery-power-supply.yaml | 4 +-
.../supply/x-powers,axp20x-usb-power-supply.yaml | 4 +-
.../devicetree/bindings/powerpc/fsl/cpus.txt | 2 +-
.../devicetree/bindings/powerpc/fsl/mpc5200.txt | 2 +-
.../devicetree/bindings/powerpc/opal/power-mgt.txt | 2 +-
Documentation/devicetree/bindings/pwm/clk-pwm.yaml | 46 +
.../devicetree/bindings/pwm/pwm-mediatek.txt | 3 +
.../devicetree/bindings/regulator/mps,mp5416.yaml | 1 +
.../bindings/regulator/pwm-regulator.txt | 92 -
.../bindings/regulator/pwm-regulator.yaml | 126 +
.../bindings/regulator/qcom,smd-rpm-regulator.yaml | 4 +
.../bindings/regulator/qcom,spmi-regulator.txt | 347 -
.../bindings/regulator/qcom,spmi-regulator.yaml | 323 +
.../regulator/qcom,usb-vbus-regulator.yaml | 2 +-
.../devicetree/bindings/regulator/regulator.yaml | 1 +
.../devicetree/bindings/regulator/vexpress.txt | 2 +-
.../devicetree/bindings/remoteproc/mtk,scp.yaml | 2 +
.../devicetree/bindings/remoteproc/qcom,adsp.yaml | 74 +-
.../bindings/remoteproc/qcom,glink-edge.yaml | 72 +
.../devicetree/bindings/remoteproc/qcom,q6v5.txt | 90 +-
.../bindings/remoteproc/qcom,qcs404-cdsp-pil.yaml | 1 -
.../bindings/remoteproc/qcom,sc7180-mss-pil.yaml | 245 +
.../bindings/remoteproc/qcom,sc7280-mss-pil.yaml | 266 +
.../bindings/remoteproc/qcom,sc7280-wpss-pil.yaml | 21 +-
.../bindings/remoteproc/qcom,sdm845-adsp-pil.yaml | 1 -
.../bindings/remoteproc/qcom,smd-edge.yaml | 85 +
.../bindings/remoteproc/ti,pru-rproc.yaml | 5 +-
.../bindings/reset/atmel,at91sam9260-reset.yaml | 68 +
.../bindings/reset/nuvoton,npcm750-reset.yaml | 10 +-
.../bindings/reset/renesas,rzg2l-usbphy-ctrl.yaml | 1 +
.../devicetree/bindings/reset/sunplus,reset.yaml | 38 +
.../bindings/reset/ti,tps380x-reset.yaml | 49 +
Documentation/devicetree/bindings/riscv/cpus.yaml | 5 +
.../devicetree/bindings/riscv/sifive-l2-cache.yaml | 6 +-
.../devicetree/bindings/rtc/fsl,scu-rtc.yaml | 31 +
.../bindings/rtc/microcrystal,rv3032.yaml | 1 +
.../devicetree/bindings/rtc/nuvoton,nct3018y.yaml | 45 +
.../devicetree/bindings/rtc/nxp,pcf85063.txt | 32 -
.../devicetree/bindings/rtc/nxp,pcf85063.yaml | 92 +
.../devicetree/bindings/rtc/qcom-pm8xxx-rtc.yaml | 2 +-
.../devicetree/bindings/rtc/rtc-ds1307.txt | 52 -
.../devicetree/bindings/rtc/rtc-ds1307.yaml | 102 +
.../devicetree/bindings/rtc/rtc-mt6397.txt | 2 +
.../devicetree/bindings/rtc/ti,k3-rtc.yaml | 62 +
.../devicetree/bindings/rtc/trivial-rtc.yaml | 2 +
.../devicetree/bindings/rtc/xlnx,zynqmp-rtc.yaml | 12 +-
Documentation/devicetree/bindings/serial/8250.yaml | 1 +
.../devicetree/bindings/serial/efm32-uart.txt | 20 -
.../devicetree/bindings/serial/mediatek,uart.yaml | 120 +
.../devicetree/bindings/serial/mtk-uart.txt | 59 -
.../devicetree/bindings/serial/renesas,hscif.yaml | 1 +
.../devicetree/bindings/serial/rs485.yaml | 4 +-
.../bindings/serial/snps-dw-apb-uart.yaml | 2 +
.../devicetree/bindings/serio/ps2-gpio.txt | 23 -
.../devicetree/bindings/serio/ps2-gpio.yaml | 64 +
.../bindings/soc/bcm/brcm,bcm2835-pm.txt | 46 -
.../bindings/soc/bcm/brcm,bcm2835-pm.yaml | 86 +
.../devicetree/bindings/soc/mediatek/devapc.yaml | 1 +
.../{display => soc}/mediatek/mediatek,mutex.yaml | 14 +-
.../devicetree/bindings/soc/mediatek/mtk-svs.yaml | 91 +
.../soc/microchip/atmel,at91rm9200-tcb.yaml | 6 +-
.../microchip/microchip,mpfs-sys-controller.yaml | 4 +-
.../bindings/soc/qcom/qcom,aoss-qmp.yaml | 3 +-
.../bindings/soc/qcom/qcom,rpmh-rsc.yaml | 33 +-
.../devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 37 +-
.../devicetree/bindings/soc/qcom/qcom,smd.yaml | 52 +-
.../devicetree/bindings/soc/qcom/qcom,spm.yaml | 1 +
.../devicetree/bindings/soc/qcom/qcom,wcnss.yaml | 1 -
.../bindings/soc/samsung/exynos-pmu.yaml | 13 +-
.../bindings/soc/samsung/exynos-usi.yaml | 8 +-
.../devicetree/bindings/soc/ti/ti,pruss.yaml | 5 +-
.../devicetree/bindings/sound/adi,adau1977.yaml | 7 +-
.../devicetree/bindings/sound/adi,max98396.yaml | 30 +-
.../sound/allwinner,sun50i-a64-codec-analog.yaml | 5 +
.../bindings/sound/atmel,sama5d2-classd.yaml | 100 +
.../bindings/sound/atmel,sama5d2-i2s.yaml | 85 +
.../bindings/sound/atmel,sama5d2-pdmic.yaml | 98 +
.../devicetree/bindings/sound/atmel-classd.txt | 55 -
.../devicetree/bindings/sound/atmel-i2s.txt | 46 -
.../devicetree/bindings/sound/atmel-pdmic.txt | 55 -
.../bindings/sound/atmel-sam9x5-wm8731-audio.txt | 2 +-
Documentation/devicetree/bindings/sound/da9055.txt | 2 +-
.../devicetree/bindings/sound/designware-i2s.txt | 35 -
.../devicetree/bindings/sound/fsl,micfil.txt | 33 -
.../devicetree/bindings/sound/fsl,micfil.yaml | 85 +
.../devicetree/bindings/sound/fsl,mqs.txt | 2 +-
.../devicetree/bindings/sound/fsl,spdif.yaml | 4 +
.../devicetree/bindings/sound/fsl-sai.txt | 11 +
Documentation/devicetree/bindings/sound/mt6358.txt | 4 +-
.../devicetree/bindings/sound/mt8186-afe-pcm.yaml | 175 +
.../sound/mt8186-mt6366-da7219-max98357.yaml | 75 +
.../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 75 +
.../devicetree/bindings/sound/nau8821.txt | 2 +-
.../bindings/sound/nvidia,tegra210-ahub.yaml | 4 +
.../bindings/sound/nvidia,tegra210-mbdrc.yaml | 47 +
.../bindings/sound/nvidia,tegra210-ope.yaml | 87 +
.../bindings/sound/nvidia,tegra210-peq.yaml | 48 +
.../devicetree/bindings/sound/nxp,tfa989x.yaml | 1 +
.../devicetree/bindings/sound/qcom,lpass-cpu.yaml | 8 +-
.../devicetree/bindings/sound/qcom,sdm845.txt | 91 -
.../devicetree/bindings/sound/qcom,sm8250.yaml | 3 +
.../devicetree/bindings/sound/qcom,wcd934x.yaml | 2 +-
.../devicetree/bindings/sound/qcom,wsa883x.yaml | 74 +
.../devicetree/bindings/sound/renesas,rz-ssi.yaml | 3 +-
.../devicetree/bindings/sound/rockchip-i2s.yaml | 7 +
.../devicetree/bindings/sound/sgtl5000.yaml | 1 +
.../bindings/sound/snps,designware-i2s.yaml | 94 +
.../devicetree/bindings/sound/tas2562.yaml | 2 +-
.../devicetree/bindings/sound/tlv320adcx140.yaml | 6 +-
.../devicetree/bindings/sound/wlf,wm8731.yaml | 9 +-
.../bindings/spi/atmel,at91rm9200-spi.yaml | 75 +
.../devicetree/bindings/spi/efm32-spi.txt | 39 -
.../devicetree/bindings/spi/hpe,gxp-spifi.yaml | 56 +
.../bindings/spi/mediatek,spi-mt65xx.yaml | 2 +
.../bindings/spi/mediatek,spi-mtk-nor.yaml | 15 +-
.../bindings/spi/microchip,mpfs-spi.yaml | 1 -
.../devicetree/bindings/spi/nuvoton,npcm-fiu.txt | 13 +-
.../spi/nvidia,tegra210-quad-peripheral-props.yaml | 33 +
.../bindings/spi/nvidia,tegra210-quad.yaml | 22 +-
.../bindings/spi/qcom,spi-geni-qcom.yaml | 6 +-
.../devicetree/bindings/spi/samsung,spi.yaml | 6 +-
.../devicetree/bindings/spi/snps,dw-apb-ssi.yaml | 26 +-
.../devicetree/bindings/spi/spi-cadence.yaml | 7 +
.../devicetree/bindings/spi/spi-controller.yaml | 19 +-
.../bindings/spi/spi-peripheral-props.yaml | 16 +-
.../devicetree/bindings/spi/spi-zynqmp-qspi.yaml | 7 +
.../devicetree/bindings/spi/spi_atmel.txt | 36 -
.../devicetree/bindings/sram/qcom,imem.yaml | 75 +
.../devicetree/bindings/sram/qcom,ocmem.yaml | 10 +-
.../bindings/thermal/brcm,avs-ro-thermal.yaml | 2 +-
.../bindings/thermal/fsl,scu-thermal.yaml | 38 +
.../bindings/thermal/nvidia,tegra124-soctherm.txt | 2 +-
.../bindings/thermal/qcom,spmi-temp-alarm.yaml | 85 +
.../bindings/thermal/qcom-spmi-temp-alarm.txt | 51 -
.../bindings/thermal/rcar-gen3-thermal.yaml | 36 +-
.../devicetree/bindings/thermal/rcar-thermal.yaml | 2 +-
.../bindings/timer/allwinner,sun4i-a10-timer.yaml | 1 +
.../devicetree/bindings/timer/ingenic,tcu.yaml | 4 +-
.../bindings/timer/mediatek,mtk-timer.txt | 6 +-
.../bindings/timer/nuvoton,npcm7xx-timer.yaml | 2 +
.../bindings/timer/nvidia,tegra186-timer.yaml | 109 +
.../devicetree/bindings/timer/renesas,cmt.yaml | 16 +-
.../devicetree/bindings/timer/st,nomadik-mtu.yaml | 58 +
.../devicetree/bindings/trivial-devices.yaml | 6 +-
.../devicetree/bindings/ufs/qcom,ufs.yaml | 2 +
.../devicetree/bindings/ufs/renesas,ufs.yaml | 61 +
.../bindings/ufs/samsung,exynos-ufs.yaml | 1 +
.../bindings/usb/allwinner,sun4i-a10-musb.yaml | 1 +
.../devicetree/bindings/usb/analogix,anx7411.yaml | 81 +
.../bindings/usb/aspeed,ast2600-udc.yaml | 52 +
.../devicetree/bindings/usb/atmel-usb.txt | 3 +
Documentation/devicetree/bindings/usb/dwc2.yaml | 3 +
Documentation/devicetree/bindings/usb/dwc3-st.txt | 2 +-
Documentation/devicetree/bindings/usb/ehci-st.txt | 2 +-
.../devicetree/bindings/usb/generic-ehci.yaml | 11 +-
.../devicetree/bindings/usb/generic-ohci.yaml | 4 +-
.../devicetree/bindings/usb/mediatek,mtk-xhci.yaml | 5 +
.../devicetree/bindings/usb/mediatek,mtu3.yaml | 3 +
Documentation/devicetree/bindings/usb/ohci-st.txt | 2 +-
.../devicetree/bindings/usb/qcom,dwc3.yaml | 154 +-
.../devicetree/bindings/usb/realtek,rts5411.yaml | 10 +-
.../devicetree/bindings/usb/snps,dwc3.yaml | 5 +
.../devicetree/bindings/usb/st,typec-stm32g0.yaml | 91 +
.../devicetree/bindings/usb/ti,usb8041.yaml | 67 +
.../devicetree/bindings/vendor-prefixes.yaml | 29 +-
Documentation/devicetree/bindings/virtio/mmio.yaml | 4 +
.../bindings/watchdog/allwinner,sun4i-a10-wdt.yaml | 1 -
.../bindings/watchdog/faraday,ftwdt010.yaml | 2 +-
.../devicetree/bindings/watchdog/fsl,scu-wdt.yaml | 34 +
.../bindings/watchdog/nuvoton,npcm-wdt.txt | 3 +-
.../bindings/watchdog/qcom,pm8916-wdt.txt | 28 -
.../bindings/watchdog/qcom,pm8916-wdt.yaml | 51 +
.../devicetree/bindings/watchdog/qcom-wdt.yaml | 1 +
.../bindings/watchdog/realtek,otto-wdt.yaml | 1 +
.../devicetree/bindings/writing-bindings.rst | 2 +-
Documentation/doc-guide/kernel-doc.rst | 2 +
Documentation/doc-guide/sphinx.rst | 14 +-
Documentation/driver-api/aperture.rst | 13 +
Documentation/driver-api/cxl/memory-devices.rst | 8 +
Documentation/driver-api/dmaengine/provider.rst | 10 -
Documentation/driver-api/driver-model/devres.rst | 1 -
Documentation/driver-api/firmware/core.rst | 1 +
.../firmware/firmware-usage-guidelines.rst | 44 +
Documentation/driver-api/fpga/fpga-mgr.rst | 27 +-
Documentation/driver-api/gpio/board.rst | 2 +-
Documentation/driver-api/gpio/consumer.rst | 8 +-
Documentation/driver-api/gpio/driver.rst | 6 +-
Documentation/driver-api/gpio/intro.rst | 6 +-
Documentation/driver-api/gpio/using-gpio.rst | 2 +-
Documentation/{ => driver-api}/hte/hte.rst | 0
Documentation/{ => driver-api}/hte/index.rst | 0
.../{ => driver-api}/hte/tegra194-hte.rst | 5 +-
Documentation/driver-api/index.rst | 2 +
Documentation/driver-api/media/mc-core.rst | 5 +-
Documentation/driver-api/media/v4l2-subdev.rst | 6 +
Documentation/driver-api/serial/driver.rst | 482 +-
Documentation/driver-api/serial/serial-rs485.rst | 38 +-
.../driver-api/surface_aggregator/client.rst | 6 +-
Documentation/driver-api/vfio-mediated-device.rst | 20 +-
Documentation/driver-api/vme.rst | 4 +-
Documentation/fault-injection/fault-injection.rst | 7 +
.../features/core/cBPF-JIT/arch-support.txt | 1 +
.../features/core/eBPF-JIT/arch-support.txt | 1 +
.../core/generic-idle-thread/arch-support.txt | 1 +
.../features/core/jump-labels/arch-support.txt | 1 +
.../core/thread-info-in-task/arch-support.txt | 1 +
.../features/core/tracehook/arch-support.txt | 1 +
.../features/debug/KASAN/arch-support.txt | 1 +
.../debug/debug-vm-pgtable/arch-support.txt | 3 +-
.../debug/gcov-profile-all/arch-support.txt | 5 +-
Documentation/features/debug/kcov/arch-support.txt | 3 +-
Documentation/features/debug/kgdb/arch-support.txt | 1 +
.../features/debug/kmemleak/arch-support.txt | 1 +
.../debug/kprobes-on-ftrace/arch-support.txt | 1 +
.../features/debug/kprobes/arch-support.txt | 1 +
.../features/debug/kretprobes/arch-support.txt | 1 +
.../features/debug/optprobes/arch-support.txt | 1 +
.../features/debug/stackprotector/arch-support.txt | 1 +
.../features/debug/uprobes/arch-support.txt | 1 +
.../debug/user-ret-profiler/arch-support.txt | 1 +
.../features/io/dma-contiguous/arch-support.txt | 1 +
.../locking/cmpxchg-local/arch-support.txt | 1 +
.../features/locking/lockdep/arch-support.txt | 1 +
.../locking/queued-rwlocks/arch-support.txt | 3 +-
.../locking/queued-spinlocks/arch-support.txt | 1 +
.../features/perf/kprobes-event/arch-support.txt | 3 +-
.../features/perf/perf-regs/arch-support.txt | 1 +
.../features/perf/perf-stackdump/arch-support.txt | 1 +
.../sched/membarrier-sync-core/arch-support.txt | 1 +
.../features/sched/numa-balancing/arch-support.txt | 1 +
.../seccomp/seccomp-filter/arch-support.txt | 1 +
.../time/arch-tick-broadcast/arch-support.txt | 1 +
.../features/time/clockevents/arch-support.txt | 1 +
.../time/context-tracking/arch-support.txt | 7 +-
.../features/time/irq-time-acct/arch-support.txt | 1 +
.../features/time/virt-cpuacct/arch-support.txt | 1 +
.../features/vm/ELF-ASLR/arch-support.txt | 1 +
.../features/vm/PG_uncached/arch-support.txt | 1 +
Documentation/features/vm/THP/arch-support.txt | 1 +
Documentation/features/vm/TLB/arch-support.txt | 1 +
.../features/vm/huge-vmap/arch-support.txt | 1 +
.../features/vm/ioremap_prot/arch-support.txt | 3 +-
.../features/vm/pte_special/arch-support.txt | 3 +-
Documentation/filesystems/btrfs.rst | 16 +-
Documentation/filesystems/ext2.rst | 2 -
Documentation/filesystems/ext4/attributes.rst | 68 +-
Documentation/filesystems/ext4/bigalloc.rst | 2 +-
Documentation/filesystems/ext4/bitmaps.rst | 6 +-
Documentation/filesystems/ext4/blockgroup.rst | 30 +-
Documentation/filesystems/ext4/blockmap.rst | 2 +-
Documentation/filesystems/ext4/checksums.rst | 26 +-
Documentation/filesystems/ext4/directory.rst | 166 +-
Documentation/filesystems/ext4/eainode.rst | 10 +-
Documentation/filesystems/ext4/group_descr.rst | 126 +-
Documentation/filesystems/ext4/ifork.rst | 60 +-
Documentation/filesystems/ext4/inlinedata.rst | 8 +-
Documentation/filesystems/ext4/inodes.rst | 306 +-
Documentation/filesystems/ext4/journal.rst | 214 +-
Documentation/filesystems/ext4/mmp.rst | 36 +-
Documentation/filesystems/ext4/overview.rst | 2 +-
Documentation/filesystems/ext4/special_inodes.rst | 8 +-
Documentation/filesystems/ext4/super.rst | 550 +-
Documentation/filesystems/f2fs.rst | 18 +-
Documentation/filesystems/fscrypt.rst | 22 +-
Documentation/filesystems/fsverity.rst | 53 +-
Documentation/filesystems/fuse.rst | 29 +-
Documentation/filesystems/locking.rst | 9 +-
Documentation/filesystems/netfs_library.rst | 76 +-
Documentation/filesystems/overlayfs.rst | 2 +-
Documentation/filesystems/porting.rst | 8 +
Documentation/filesystems/proc.rst | 11 +-
Documentation/filesystems/vfs.rst | 65 +-
.../filesystems/xfs-delayed-logging-design.rst | 361 +-
.../firmware-guide/acpi/DSD-properties-rules.rst | 11 +-
Documentation/firmware-guide/acpi/apei/einj.rst | 2 +-
Documentation/gpu/amdgpu/amdgpu-glossary.rst | 2 +-
Documentation/gpu/amdgpu/thermal.rst | 41 +
Documentation/gpu/drm-internals.rst | 32 +
Documentation/gpu/drm-usage-stats.rst | 21 +
Documentation/gpu/i915.rst | 12 +
Documentation/gpu/rfc/i915_small_bar.h | 189 +
Documentation/gpu/rfc/i915_small_bar.rst | 47 +
Documentation/gpu/rfc/i915_vm_bind.h | 291 +
Documentation/gpu/rfc/i915_vm_bind.rst | 245 +
Documentation/gpu/rfc/index.rst | 8 +
Documentation/gpu/todo.rst | 11 +
Documentation/gpu/vkms.rst | 6 -
Documentation/hwmon/aquacomputer_d5next.rst | 17 +-
Documentation/hwmon/asus_ec_sensors.rst | 4 +
Documentation/hwmon/dell-smm-hwmon.rst | 3 +
Documentation/hwmon/index.rst | 1 +
Documentation/hwmon/lm90.rst | 233 +-
Documentation/hwmon/lt7182s.rst | 92 +
Documentation/hwmon/pmbus-core.rst | 9 +
Documentation/hwmon/submitting-patches.rst | 1 -
Documentation/i2c/busses/i2c-i801.rst | 1 +
Documentation/i2c/i2c-protocol.rst | 11 +-
Documentation/i2c/i2c-sysfs.rst | 24 +-
Documentation/i2c/instantiating-devices.rst | 16 +-
Documentation/i2c/smbus-protocol.rst | 6 +-
Documentation/index.rst | 3 +-
Documentation/kbuild/kconfig-language.rst | 2 +-
Documentation/kbuild/llvm.rst | 10 +-
Documentation/kernel-hacking/hacking.rst | 3 +-
Documentation/livepatch/module-elf-format.rst | 10 +-
Documentation/loongarch/introduction.rst | 17 +-
Documentation/loongarch/irq-chip-model.rst | 22 +-
Documentation/m68k/kernel-options.rst | 4 +-
Documentation/memory-barriers.txt | 11 +-
Documentation/{vm => mm}/active_mm.rst | 0
Documentation/{vm => mm}/arch_pgtable_helpers.rst | 0
Documentation/{vm => mm}/balance.rst | 0
Documentation/{vm => mm}/bootmem.rst | 0
Documentation/{vm => mm}/damon/api.rst | 0
Documentation/{vm => mm}/damon/design.rst | 0
Documentation/{vm => mm}/damon/faq.rst | 0
Documentation/{vm => mm}/damon/index.rst | 0
Documentation/{vm => mm}/free_page_reporting.rst | 0
Documentation/{vm => mm}/frontswap.rst | 0
Documentation/{vm => mm}/highmem.rst | 31 +-
Documentation/{vm => mm}/hmm.rst | 0
Documentation/{vm => mm}/hugetlbfs_reserv.rst | 0
Documentation/{vm => mm}/hwpoison.rst | 3 +-
Documentation/{vm => mm}/index.rst | 0
Documentation/{vm => mm}/ksm.rst | 0
Documentation/{vm => mm}/memory-model.rst | 2 +-
Documentation/{vm => mm}/mmu_notifier.rst | 0
Documentation/{vm => mm}/numa.rst | 0
Documentation/{vm => mm}/oom.rst | 0
Documentation/{vm => mm}/overcommit-accounting.rst | 2 -
Documentation/{vm => mm}/page_allocation.rst | 0
Documentation/{vm => mm}/page_cache.rst | 0
Documentation/{vm => mm}/page_frags.rst | 0
Documentation/{vm => mm}/page_migration.rst | 113 +-
Documentation/{vm => mm}/page_owner.rst | 0
Documentation/{vm => mm}/page_reclaim.rst | 0
Documentation/{vm => mm}/page_table_check.rst | 0
Documentation/{vm => mm}/page_tables.rst | 0
Documentation/{vm => mm}/physical_memory.rst | 0
Documentation/{vm => mm}/process_addrs.rst | 0
Documentation/{vm => mm}/remap_file_pages.rst | 0
Documentation/{vm => mm}/shmfs.rst | 0
Documentation/{vm => mm}/slab.rst | 0
Documentation/{vm => mm}/slub.rst | 0
Documentation/{vm => mm}/split_page_table_lock.rst | 0
Documentation/{vm => mm}/swap.rst | 0
Documentation/{vm => mm}/transhuge.rst | 0
Documentation/{vm => mm}/unevictable-lru.rst | 0
Documentation/{vm => mm}/vmalloc.rst | 0
.../{vm => mm}/vmalloced-kernel-stacks.rst | 0
Documentation/{vm => mm}/vmemmap_dedup.rst | 72 +-
Documentation/{vm => mm}/z3fold.rst | 0
Documentation/{vm => mm}/zsmalloc.rst | 0
Documentation/networking/bonding.rst | 20 +-
Documentation/networking/can.rst | 2 +-
.../networking/device_drivers/can/can327.rst | 331 +
.../networking/device_drivers/can/index.rst | 1 +
.../networking/device_drivers/ethernet/index.rst | 2 +-
.../device_drivers/ethernet/intel/ice.rst | 9 +
.../device_drivers/ethernet/neterion/vxge.rst | 115 -
.../device_drivers/ethernet/wangxun/txgbe.rst | 20 +
.../networking/devlink/devlink-selftests.rst | 38 +
Documentation/networking/devlink/index.rst | 1 +
Documentation/networking/devlink/mlxsw.rst | 24 +
Documentation/networking/dsa/dsa.rst | 363 +-
Documentation/networking/ip-sysctl.rst | 124 +-
Documentation/networking/phy.rst | 2 +-
Documentation/networking/sfp-phylink.rst | 6 +-
Documentation/networking/smc-sysctl.rst | 13 +
Documentation/networking/tls.rst | 47 +
Documentation/power/energy-model.rst | 14 +-
Documentation/power/pci.rst | 2 +-
Documentation/powerpc/elf_hwcaps.rst | 231 +
Documentation/powerpc/index.rst | 1 +
Documentation/process/5.Posting.rst | 3 +-
Documentation/process/8.Conclusion.rst | 16 +-
Documentation/process/changes.rst | 12 +
Documentation/process/email-clients.rst | 69 +-
.../process/embargoed-hardware-issues.rst | 5 +-
Documentation/process/howto.rst | 4 +-
Documentation/process/index.rst | 1 -
Documentation/process/kernel-docs.rst | 64 +-
Documentation/process/maintainer-netdev.rst | 36 +
Documentation/process/submitting-drivers.rst | 194 -
Documentation/process/submitting-patches.rst | 5 +-
Documentation/s390/index.rst | 1 +
Documentation/s390/vfio-ap-locking.rst | 115 +
Documentation/s390/vfio-ap.rst | 498 +-
Documentation/scsi/scsi_eh.rst | 3 +-
Documentation/scsi/scsi_mid_low_api.rst | 2 +-
Documentation/scsi/ufs.rst | 15 +
Documentation/security/keys/core.rst | 2 +-
Documentation/security/secrets/coco.rst | 2 +-
Documentation/security/siphash.rst | 2 +-
Documentation/sound/soc/codec.rst | 2 +-
Documentation/sound/soc/dai.rst | 2 +-
Documentation/sound/soc/platform.rst | 2 +-
Documentation/sphinx/automarkup.py | 56 +-
Documentation/staging/static-keys.rst | 3 -
.../trace/coresight/coresight-etm4x-reference.rst | 17 +-
Documentation/trace/coresight/coresight.rst | 58 +-
Documentation/trace/index.rst | 1 +
Documentation/trace/kprobetrace.rst | 8 +-
.../trace/rv/da_monitor_instrumentation.rst | 171 +
Documentation/trace/rv/da_monitor_synthesis.rst | 147 +
Documentation/trace/rv/deterministic_automata.rst | 184 +
Documentation/trace/rv/index.rst | 14 +
Documentation/trace/rv/monitor_wip.rst | 55 +
Documentation/trace/rv/monitor_wwnr.rst | 45 +
Documentation/trace/rv/runtime-verification.rst | 231 +
Documentation/trace/uprobetracer.rst | 8 +-
.../it_IT/core-api/symbol-namespaces.rst | 6 +-
.../devicetree/bindings/submitting-patches.rst | 11 +
.../translations/it_IT/doc-guide/kernel-doc.rst | 2 +
.../translations/it_IT/doc-guide/sphinx.rst | 18 +-
.../translations/it_IT/kernel-hacking/hacking.rst | 27 +-
.../translations/it_IT/kernel-hacking/locking.rst | 14 +-
.../it_IT/maintainer/configure-git.rst | 10 +
.../translations/it_IT/networking/netdev-FAQ.rst | 2 +-
.../translations/it_IT/process/3.Early-stage.rst | 17 +-
.../translations/it_IT/process/5.Posting.rst | 32 +-
.../translations/it_IT/process/8.Conclusion.rst | 5 +-
.../translations/it_IT/process/changes.rst | 25 +-
.../translations/it_IT/process/coding-style.rst | 42 +-
.../translations/it_IT/process/deprecated.rst | 24 +-
Documentation/translations/it_IT/process/howto.rst | 3 +-
Documentation/translations/it_IT/process/index.rst | 2 +-
.../it_IT/process/maintainer-handbooks.rst | 24 +
.../it_IT/process/maintainer-pgp-guide.rst | 14 +-
.../translations/it_IT/process/maintainer-tip.rst | 10 +
.../translations/it_IT/process/maintainers.rst | 13 +
.../it_IT/process/stable-kernel-rules.rst | 42 +-
.../it_IT/process/submitting-drivers.rst | 16 -
.../it_IT/process/submitting-patches.rst | 72 +-
Documentation/translations/ja_JP/howto.rst | 4 +-
Documentation/translations/ko_KR/howto.rst | 2 +-
.../translations/zh_CN/PCI/pci-iov-howto.rst | 7 +-
Documentation/translations/zh_CN/PCI/pci.rst | 6 +-
.../translations/zh_CN/admin-guide/index.rst | 2 +-
.../zh_CN/admin-guide/mm/damon/index.rst | 2 +-
.../zh_CN/admin-guide/mm/damon/reclaim.rst | 2 +-
.../zh_CN/admin-guide/mm/damon/usage.rst | 10 +-
.../zh_CN/admin-guide/reporting-issues.rst | 125 +-
.../zh_CN/admin-guide/reporting-regressions.rst | 370 +
.../translations/zh_CN/core-api/cachetlb.rst | 6 +
.../translations/zh_CN/core-api/cpu_hotplug.rst | 435 +-
.../translations/zh_CN/core-api/index.rst | 4 +-
.../translations/zh_CN/core-api/irq/irq-domain.rst | 22 +-
.../translations/zh_CN/core-api/kernel-api.rst | 5 +-
.../translations/zh_CN/core-api/mm-api.rst | 23 +-
.../translations/zh_CN/core-api/printk-basics.rst | 3 +-
.../translations/zh_CN/core-api/printk-formats.rst | 3 +-
.../zh_CN/core-api/symbol-namespaces.rst | 2 +-
.../translations/zh_CN/core-api/watch_queue.rst | 313 +
.../translations/zh_CN/core-api/workqueue.rst | 21 +-
.../translations/zh_CN/core-api/xarray.rst | 4 +-
.../translations/zh_CN/dev-tools/kasan.rst | 117 +-
.../translations/zh_CN/dev-tools/sparse.rst | 2 +
.../zh_CN/dev-tools/testing-overview.rst | 25 +
.../translations/zh_CN/devicetree/index.rst | 2 +-
.../translations/zh_CN/devicetree/of_unittest.rst | 2 +-
.../translations/zh_CN/devicetree/usage-model.rst | 2 +-
.../translations/zh_CN/doc-guide/kernel-doc.rst | 2 +-
.../translations/zh_CN/iio/iio_configfs.rst | 12 +-
Documentation/translations/zh_CN/index.rst | 2 +-
.../translations/zh_CN/kernel-hacking/hacking.rst | 25 +-
Documentation/translations/zh_CN/locking/index.rst | 5 +-
.../translations/zh_CN/locking/mutex-design.rst | 145 +
.../translations/zh_CN/loongarch/introduction.rst | 18 +-
.../zh_CN/loongarch/irq-chip-model.rst | 14 +-
.../translations/zh_CN/{vm => mm}/active_mm.rst | 2 +-
.../translations/zh_CN/{vm => mm}/balance.rst | 2 +-
.../translations/zh_CN/{vm => mm}/damon/api.rst | 2 +-
.../translations/zh_CN/{vm => mm}/damon/design.rst | 2 +-
.../translations/zh_CN/{vm => mm}/damon/faq.rst | 2 +-
.../translations/zh_CN/{vm => mm}/damon/index.rst | 5 +-
.../zh_CN/{vm => mm}/free_page_reporting.rst | 2 +-
.../translations/zh_CN/{vm => mm}/frontswap.rst | 2 +-
Documentation/translations/zh_CN/mm/highmem.rst | 137 +
.../translations/zh_CN/{vm => mm}/hmm.rst | 2 +-
.../zh_CN/{vm => mm}/hugetlbfs_reserv.rst | 2 +-
.../translations/zh_CN/{vm => mm}/hwpoison.rst | 2 +-
Documentation/translations/zh_CN/mm/index.rst | 69 +
.../translations/zh_CN/{vm => mm}/ksm.rst | 2 +-
.../translations/zh_CN/{vm => mm}/memory-model.rst | 4 +-
.../translations/zh_CN/{vm => mm}/mmu_notifier.rst | 2 +-
.../translations/zh_CN/{vm => mm}/numa.rst | 2 +-
.../zh_CN/{vm => mm}/overcommit-accounting.rst | 2 +-
.../translations/zh_CN/{vm => mm}/page_frags.rst | 2 +-
.../translations/zh_CN/mm/page_migration.rst | 228 +
.../translations/zh_CN/{vm => mm}/page_owner.rst | 81 +-
.../zh_CN/{vm => mm}/page_table_check.rst | 2 +-
.../zh_CN/{vm => mm}/remap_file_pages.rst | 2 +-
.../zh_CN/{vm => mm}/split_page_table_lock.rst | 2 +-
.../zh_CN/mm/vmalloced-kernel-stacks.rst | 133 +
.../translations/zh_CN/{vm => mm}/z3fold.rst | 2 +-
.../translations/zh_CN/{vm => mm}/zsmalloc.rst | 2 +-
.../translations/zh_CN/process/5.Posting.rst | 3 +-
.../translations/zh_CN/process/8.Conclusion.rst | 1 -
.../zh_CN/process/embargoed-hardware-issues.rst | 2 +-
Documentation/translations/zh_CN/process/howto.rst | 1 -
Documentation/translations/zh_CN/process/index.rst | 1 -
.../zh_CN/process/submitting-drivers.rst | 160 -
.../zh_CN/process/submitting-patches.rst | 4 +-
Documentation/translations/zh_CN/riscv/index.rst | 1 -
Documentation/translations/zh_CN/riscv/pmu.rst | 235 -
.../translations/zh_CN/riscv/vm-layout.rst | 37 +
.../translations/zh_CN/scheduler/sched-stats.rst | 8 +-
Documentation/translations/zh_CN/vm/highmem.rst | 128 -
Documentation/translations/zh_CN/vm/index.rst | 54 -
Documentation/translations/zh_TW/index.rst | 2 +-
.../translations/zh_TW/process/5.Posting.rst | 3 +-
.../translations/zh_TW/process/8.Conclusion.rst | 1 -
.../zh_TW/process/embargoed-hardware-issues.rst | 2 +-
Documentation/translations/zh_TW/process/howto.rst | 1 -
Documentation/translations/zh_TW/process/index.rst | 1 -
.../zh_TW/process/submitting-drivers.rst | 164 -
.../zh_TW/process/submitting-patches.rst | 4 +-
Documentation/usb/gadget-testing.rst | 6 +
Documentation/usb/mass-storage.rst | 9 +
Documentation/usb/usbmon.rst | 2 +-
Documentation/userspace-api/ioctl/ioctl-number.rst | 2 +-
.../userspace-api/media/drivers/hantro.rst | 19 -
.../userspace-api/media/drivers/index.rst | 1 -
Documentation/userspace-api/media/v4l/control.rst | 4 +-
.../media/v4l/ext-ctrls-codec-stateless.rst | 902 +
.../userspace-api/media/v4l/ext-ctrls-codec.rst | 780 -
Documentation/userspace-api/media/v4l/mmap.rst | 2 +-
.../userspace-api/media/v4l/pixfmt-compressed.rst | 7 +-
.../userspace-api/media/v4l/pixfmt-packed-yuv.rst | 20 +
.../userspace-api/media/v4l/pixfmt-yuv-planar.rst | 63 +
.../userspace-api/media/v4l/subdev-formats.rst | 156 +
.../userspace-api/media/v4l/vidioc-g-ext-ctrls.rst | 20 +
.../userspace-api/media/v4l/vidioc-queryctrl.rst | 8 +
.../userspace-api/media/videodev2.h.rst.exceptions | 9 +
Documentation/virt/hyperv/clocks.rst | 73 +
Documentation/virt/hyperv/index.rst | 12 +
Documentation/virt/hyperv/overview.rst | 207 +
Documentation/virt/hyperv/vmbus.rst | 303 +
Documentation/virt/index.rst | 1 +
Documentation/virt/kvm/api.rst | 367 +-
Documentation/virt/kvm/arm/hyp-abi.rst | 11 +-
Documentation/virt/kvm/s390/index.rst | 1 +
Documentation/virt/kvm/s390/s390-pv-boot.rst | 2 +-
Documentation/virt/kvm/s390/s390-pv-dump.rst | 64 +
Documentation/virt/kvm/x86/hypercalls.rst | 2 +-
.../virt/uml/user_mode_linux_howto_v2.rst | 2 +-
Documentation/watchdog/watchdog-parameters.rst | 12 +
Documentation/x86/orc-unwinder.rst | 2 +-
Documentation/x86/sgx.rst | 15 +
Documentation/x86/x86_64/boot-options.rst | 8 +-
Documentation/x86/x86_64/uefi.rst | 2 +-
MAINTAINERS | 832 +-
Makefile | 40 +-
arch/Kconfig | 21 +-
arch/alpha/Kconfig | 1 -
arch/alpha/include/asm/bitops.h | 32 +-
arch/alpha/include/asm/dma.h | 9 -
arch/alpha/include/asm/floppy.h | 2 +-
arch/alpha/include/asm/io.h | 8 +-
arch/alpha/include/asm/pci.h | 6 -
arch/alpha/include/asm/pgtable.h | 17 -
arch/alpha/kernel/irq.c | 2 +-
arch/alpha/kernel/smp.c | 6 -
arch/alpha/mm/fault.c | 4 +
arch/alpha/mm/init.c | 22 +
arch/arc/configs/axs101_defconfig | 1 -
arch/arc/configs/axs103_defconfig | 1 -
arch/arc/configs/axs103_smp_defconfig | 1 -
arch/arc/configs/haps_hs_defconfig | 1 -
arch/arc/configs/haps_hs_smp_defconfig | 1 -
arch/arc/configs/hsdk_defconfig | 1 -
arch/arc/configs/nsim_700_defconfig | 1 -
arch/arc/configs/nsimosci_defconfig | 1 -
arch/arc/configs/nsimosci_hs_defconfig | 1 -
arch/arc/configs/nsimosci_hs_smp_defconfig | 1 -
arch/arc/configs/tb10x_defconfig | 1 -
arch/arc/configs/vdk_hs38_defconfig | 1 -
arch/arc/configs/vdk_hs38_smp_defconfig | 1 -
arch/arc/include/asm/dma.h | 5 -
arch/arc/include/asm/pgtable-bits-arcv2.h | 18 -
arch/arc/kernel/jump_label.c | 13 -
arch/arc/kernel/smp.c | 8 -
arch/arc/mm/fault.c | 4 +
arch/arc/mm/mmap.c | 20 +
arch/arm/Kconfig | 32 +-
arch/arm/Kconfig.debug | 2 +-
arch/arm/Makefile | 1 +
arch/arm/boot/bootp/bootp.lds | 5 +-
arch/arm/boot/dts/Makefile | 33 +-
arch/arm/boot/dts/alpine.dtsi | 2 +-
arch/arm/boot/dts/am335x-boneblack-wireless.dts | 2 +-
arch/arm/boot/dts/am335x-boneblack.dts | 4 +
arch/arm/boot/dts/am335x-boneblue.dts | 2 +-
arch/arm/boot/dts/am335x-bonegreen-wireless.dts | 2 +-
arch/arm/boot/dts/am335x-cm-t335.dts | 4 +-
arch/arm/boot/dts/am335x-evm.dts | 8 +-
arch/arm/boot/dts/am335x-guardian.dts | 2 -
arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi | 4 +-
arch/arm/boot/dts/am335x-moxa-uc-8100-common.dtsi | 4 +-
arch/arm/boot/dts/am335x-pcm-953.dtsi | 4 +-
arch/arm/boot/dts/am335x-pepper.dts | 8 +-
.../boot/dts/am335x-sancloud-bbe-extended-wifi.dts | 2 +-
arch/arm/boot/dts/am335x-shc.dts | 6 +-
arch/arm/boot/dts/am33xx.dtsi | 5 +-
arch/arm/boot/dts/am3517-evm-ui.dtsi | 26 +-
arch/arm/boot/dts/am3517-evm.dts | 18 +-
arch/arm/boot/dts/am3517.dtsi | 5 +-
arch/arm/boot/dts/am3874-iceboard.dts | 4 +-
arch/arm/boot/dts/am4372.dtsi | 5 +-
arch/arm/boot/dts/am437x-idk-evm.dts | 6 +-
arch/arm/boot/dts/am437x-l4.dtsi | 2 +-
arch/arm/boot/dts/animeo_ip.dts | 10 +-
arch/arm/boot/dts/armada-370-c200-v2.dts | 8 +-
arch/arm/boot/dts/armada-370-rd.dts | 2 -
arch/arm/boot/dts/armada-370-seagate-nas-xbay.dtsi | 8 +-
.../dts/armada-370-seagate-personal-cloud.dtsi | 8 +-
arch/arm/boot/dts/armada-381-netgear-gs110emx.dts | 2 +-
arch/arm/boot/dts/armada-385-clearfog-gtr.dtsi | 4 +-
arch/arm/boot/dts/armada-385-linksys.dtsi | 4 +-
arch/arm/boot/dts/armada-385-turris-omnia.dts | 10 +-
arch/arm/boot/dts/armada-388-clearfog-base.dts | 2 +-
arch/arm/boot/dts/armada-388-clearfog.dts | 2 +-
arch/arm/boot/dts/armada-xp-axpwifiap.dts | 6 +-
arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 8 +-
arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts | 6 +-
arch/arm/boot/dts/artpec6-devboard.dts | 9 +-
arch/arm/boot/dts/aspeed-ast2500-evb.dts | 2 +-
arch/arm/boot/dts/aspeed-ast2600-evb-a1.dts | 1 +
arch/arm/boot/dts/aspeed-ast2600-evb.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-ampere-mtjade.dts | 30 +-
.../boot/dts/aspeed-bmc-arm-centriq2400-rep.dts | 225 -
arch/arm/boot/dts/aspeed-bmc-bytedance-g220a.dts | 48 +-
arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts | 10 +-
arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts | 14 +-
arch/arm/boot/dts/aspeed-bmc-inspur-fp5280g2.dts | 22 +-
arch/arm/boot/dts/aspeed-bmc-opp-mihawk.dts | 23 +-
arch/arm/boot/dts/aspeed-bmc-opp-mowgli.dts | 20 +-
arch/arm/boot/dts/aspeed-bmc-opp-nicole.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-opp-swift.dts | 30 +-
arch/arm/boot/dts/aspeed-bmc-opp-tacoma.dts | 14 +-
arch/arm/boot/dts/aspeed-bmc-opp-vesnin.dts | 4 +-
arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts | 16 +-
arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 4 +-
arch/arm/boot/dts/aspeed-bmc-portwell-neptune.dts | 6 +-
...ia-dc-scm.dts => aspeed-bmc-qcom-dc-scm-v1.dts} | 4 +-
arch/arm/boot/dts/aspeed-bmc-quanta-s6q.dts | 6 +-
arch/arm/boot/dts/at91-foxg20.dts | 4 +-
arch/arm/boot/dts/at91-gatwick.dts | 2 +-
arch/arm/boot/dts/at91-kizbox.dts | 8 +-
arch/arm/boot/dts/at91-kizbox2-common.dtsi | 10 +-
arch/arm/boot/dts/at91-kizbox3-hs.dts | 14 +-
arch/arm/boot/dts/at91-kizboxmini-common.dtsi | 6 +-
arch/arm/boot/dts/at91-nattis-2-natte-2.dts | 2 +-
arch/arm/boot/dts/at91-qil_a9260.dts | 4 +-
arch/arm/boot/dts/at91-sam9x60ek.dts | 10 +-
arch/arm/boot/dts/at91-sama5d27_som1.dtsi | 4 +-
arch/arm/boot/dts/at91-sama5d27_som1_ek.dts | 8 +-
arch/arm/boot/dts/at91-sama5d27_wlsom1.dtsi | 2 +
arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dts | 7 +-
arch/arm/boot/dts/at91-sama5d2_icp.dts | 15 +-
arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts | 12 +-
arch/arm/boot/dts/at91-sama5d2_xplained.dts | 12 +-
arch/arm/boot/dts/at91-sama5d3_ksz9477_evb.dts | 5 +
arch/arm/boot/dts/at91-sama5d3_xplained.dts | 4 +-
arch/arm/boot/dts/at91-sama5d4_xplained.dts | 4 +-
arch/arm/boot/dts/at91-sama5d4ek.dts | 4 +-
arch/arm/boot/dts/at91-sama7g5ek.dts | 4 +-
arch/arm/boot/dts/at91-wb45n.dts | 7 +-
arch/arm/boot/dts/at91-wb50n.dts | 10 +-
arch/arm/boot/dts/at91sam9260.dtsi | 2 +-
arch/arm/boot/dts/at91sam9260ek.dts | 6 +-
arch/arm/boot/dts/at91sam9261.dtsi | 2 +-
arch/arm/boot/dts/at91sam9261ek.dts | 10 +-
arch/arm/boot/dts/at91sam9263.dtsi | 2 +-
arch/arm/boot/dts/at91sam9263ek.dts | 6 +-
arch/arm/boot/dts/at91sam9g20ek_common.dtsi | 6 +-
.../boot/dts/at91sam9g25-gardena-smart-gateway.dts | 2 +-
arch/arm/boot/dts/at91sam9g45.dtsi | 2 +-
arch/arm/boot/dts/at91sam9m10g45ek.dts | 16 +-
arch/arm/boot/dts/at91sam9n12.dtsi | 2 +-
arch/arm/boot/dts/at91sam9n12ek.dts | 4 +-
arch/arm/boot/dts/at91sam9rl.dtsi | 2 +-
arch/arm/boot/dts/at91sam9rlek.dts | 6 +-
arch/arm/boot/dts/at91sam9x5.dtsi | 2 +-
arch/arm/boot/dts/axm5516-cpus.dtsi | 32 +-
arch/arm/boot/dts/bcm11351.dtsi | 14 +-
arch/arm/boot/dts/bcm21664-garnet.dts | 14 +-
arch/arm/boot/dts/bcm21664.dtsi | 14 +-
arch/arm/boot/dts/bcm2711-rpi-400.dts | 6 +-
arch/arm/boot/dts/bcm2711-rpi.dtsi | 4 +
arch/arm/boot/dts/bcm2711.dtsi | 14 +-
arch/arm/boot/dts/bcm28155-ap.dts | 22 +-
arch/arm/boot/dts/bcm2835-common.dtsi | 1 +
arch/arm/boot/dts/bcm283x.dtsi | 8 +-
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts | 6 +-
arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts | 8 +-
.../dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi | 10 +-
arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 10 +-
arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts | 4 +-
arch/arm/boot/dts/bcm4708-linksys-ea6500-v2.dts | 4 +-
arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 2 +-
arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 2 +-
arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 6 +-
arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts | 6 +-
arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 6 +-
arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts | 4 +-
arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 8 +-
arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts | 2 +-
arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 2 +-
arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 2 +-
arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts | 4 +-
arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 6 +-
arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 14 +-
arch/arm/boot/dts/bcm4709-linksys-ea9200.dts | 6 +-
arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 8 +-
arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 10 +-
arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts | 6 +-
arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts | 8 +-
arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 6 +-
arch/arm/boot/dts/bcm47094-linksys-panamera.dts | 6 +-
arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 2 +-
arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts | 2 +-
arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 2 +-
arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 4 +-
arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 2 +-
arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 2 +-
arch/arm/boot/dts/bcm47094-netgear-r8500.dts | 8 +-
arch/arm/boot/dts/bcm47094-phicomm-k3.dts | 2 +-
arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts | 2 +-
arch/arm/boot/dts/bcm47189-luxul-xap-810.dts | 2 +-
arch/arm/boot/dts/bcm47189-tenda-ac9.dts | 6 +-
arch/arm/boot/dts/bcm47622.dtsi | 14 +-
arch/arm/boot/dts/bcm53015-meraki-mr26.dts | 166 +
arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 4 +-
arch/arm/boot/dts/bcm5301x.dtsi | 6 +-
arch/arm/boot/dts/bcm63138.dtsi | 4 +-
arch/arm/boot/dts/bcm63148.dtsi | 103 +
arch/arm/boot/dts/bcm63178.dtsi | 118 +
arch/arm/boot/dts/bcm6756.dtsi | 130 +
arch/arm/boot/dts/bcm6846.dtsi | 103 +
arch/arm/boot/dts/bcm6855.dtsi | 120 +
arch/arm/boot/dts/bcm6878.dtsi | 110 +
arch/arm/boot/dts/bcm911360_entphn.dts | 4 +-
arch/arm/boot/dts/bcm947189acdbmr.dts | 4 +-
arch/arm/boot/dts/bcm953012er.dts | 4 +-
arch/arm/boot/dts/bcm958625-meraki-alamo.dtsi | 2 +-
arch/arm/boot/dts/bcm958625-meraki-kingpin.dtsi | 2 +-
arch/arm/boot/dts/bcm963138.dts | 27 +
arch/arm/boot/dts/bcm963138dvt.dts | 2 +-
arch/arm/boot/dts/bcm963148.dts | 30 +
arch/arm/boot/dts/bcm963178.dts | 30 +
arch/arm/boot/dts/bcm96756.dts | 30 +
arch/arm/boot/dts/bcm96846.dts | 30 +
arch/arm/boot/dts/bcm96855.dts | 30 +
arch/arm/boot/dts/bcm96878.dts | 30 +
arch/arm/boot/dts/da850-evm.dts | 18 +-
arch/arm/boot/dts/da850.dtsi | 12 +-
arch/arm/boot/dts/dm8148-evm.dts | 2 +-
arch/arm/boot/dts/dm814x.dtsi | 6 +-
arch/arm/boot/dts/dm8168-evm.dts | 2 +-
arch/arm/boot/dts/dm816x.dtsi | 6 +-
arch/arm/boot/dts/dra62x-j5eco-evm.dts | 2 +-
arch/arm/boot/dts/dra62x.dtsi | 6 +-
arch/arm/boot/dts/dra7-dspeve-thermal.dtsi | 5 +-
arch/arm/boot/dts/dra7-iva-thermal.dtsi | 5 +-
arch/arm/boot/dts/dra72x-mmc-iodelay.dtsi | 10 +-
arch/arm/boot/dts/dra74x-mmc-iodelay.dtsi | 10 +-
arch/arm/boot/dts/dra76x.dtsi | 6 +-
arch/arm/boot/dts/e60k02.dtsi | 4 +-
arch/arm/boot/dts/e70k02.dtsi | 8 +-
arch/arm/boot/dts/ecx-common.dtsi | 10 +-
arch/arm/boot/dts/en7523-evb.dts | 8 +
arch/arm/boot/dts/en7523.dtsi | 66 +
arch/arm/boot/dts/exynos-pinctrl.h | 55 +
arch/arm/boot/dts/exynos3250-artik5.dtsi | 2 +-
arch/arm/boot/dts/exynos3250-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos3250.dtsi | 6 +-
arch/arm/boot/dts/exynos4.dtsi | 8 +-
arch/arm/boot/dts/exynos4210-i9100.dts | 8 +-
arch/arm/boot/dts/exynos4210-origen.dts | 12 +-
arch/arm/boot/dts/exynos4210-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos4210-trats.dts | 2 +-
arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi | 8 +-
arch/arm/boot/dts/exynos4412-itop-elite.dts | 15 +-
arch/arm/boot/dts/exynos4412-midas.dtsi | 3 +-
arch/arm/boot/dts/exynos4412-odroidu3.dts | 4 +-
arch/arm/boot/dts/exynos4412-odroidx.dts | 5 +-
arch/arm/boot/dts/exynos4412-p4note.dtsi | 86 +-
arch/arm/boot/dts/exynos4412-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos4412-tiny4412.dts | 3 +
arch/arm/boot/dts/exynos5.dtsi | 2 +-
arch/arm/boot/dts/exynos5250-arndale.dts | 12 +-
arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos5250-snow-common.dtsi | 2 +-
arch/arm/boot/dts/exynos5250-spring.dts | 2 +-
arch/arm/boot/dts/exynos5260-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos5410-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos5420-arndale-octa.dts | 2 +-
arch/arm/boot/dts/exynos5420-peach-pit.dts | 2 +-
arch/arm/boot/dts/exynos5420-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/exynos5422-odroidhc1.dts | 4 +-
arch/arm/boot/dts/exynos5422-odroidxu4.dts | 4 +-
arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi | 8 +-
arch/arm/boot/dts/exynos5800-peach-pi.dts | 2 +-
arch/arm/boot/dts/imx23-pinfunc.h | 8 +-
arch/arm/boot/dts/imx25.dtsi | 2 +-
arch/arm/boot/dts/imx27.dtsi | 6 +-
arch/arm/boot/dts/imx28-pinfunc.h | 8 +-
arch/arm/boot/dts/imx31.dtsi | 4 +-
arch/arm/boot/dts/imx50.dtsi | 6 +-
arch/arm/boot/dts/imx51-ts4800.dts | 2 +-
arch/arm/boot/dts/imx51.dtsi | 6 +-
arch/arm/boot/dts/imx53.dtsi | 6 +-
arch/arm/boot/dts/imx6dl-plym2m.dts | 2 +-
arch/arm/boot/dts/imx6dl-prtvt7.dts | 2 +-
arch/arm/boot/dts/imx6dl-victgo.dts | 2 +-
arch/arm/boot/dts/imx6dl.dtsi | 2 +-
arch/arm/boot/dts/imx6q-apalis-eval.dts | 127 +-
arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts | 263 +-
arch/arm/boot/dts/imx6q-apalis-ixora-v1.2.dts | 276 +
arch/arm/boot/dts/imx6q-apalis-ixora.dts | 113 +-
arch/arm/boot/dts/imx6q-bosch-acc.dts | 4 +-
arch/arm/boot/dts/imx6q-gk802.dts | 9 +-
.../boot/dts/imx6q-skov-reve-mi1010ait-1cp1.dts | 6 +
arch/arm/boot/dts/imx6q.dtsi | 4 +-
arch/arm/boot/dts/imx6qdl-apalis.dtsi | 638 +-
arch/arm/boot/dts/imx6qdl-colibri.dtsi | 21 +-
arch/arm/boot/dts/imx6qdl-prti6q.dtsi | 3 +
arch/arm/boot/dts/imx6qdl-skov-cpu-revc.dtsi | 4 +-
arch/arm/boot/dts/imx6qdl-skov-cpu.dtsi | 10 +
arch/arm/boot/dts/imx6qdl-ts7970.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl.dtsi | 8 +-
arch/arm/boot/dts/imx6sl-tolino-shine2hd.dts | 10 +-
arch/arm/boot/dts/imx6sx.dtsi | 2 +-
arch/arm/boot/dts/imx6ul-kontron-n6x1x-s.dtsi | 1 -
arch/arm/boot/dts/imx6ul-phytec-segin.dtsi | 5 -
arch/arm/boot/dts/imx6ul-tqma6ul2l.dtsi | 2 +-
arch/arm/boot/dts/imx6ul.dtsi | 36 +-
arch/arm/boot/dts/imx6ull-colibri.dtsi | 10 +-
arch/arm/boot/dts/imx6ull-tqma6ull2.dtsi | 2 +-
arch/arm/boot/dts/imx6ull-tqma6ull2l.dtsi | 2 +-
arch/arm/boot/dts/imx6ull.dtsi | 2 +-
arch/arm/boot/dts/imx6ulz-bsh-smm-m2.dts | 4 +
arch/arm/boot/dts/imx7-colibri-aster.dtsi | 142 +-
arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi | 156 +-
arch/arm/boot/dts/imx7-colibri-iris-v2.dtsi | 112 +
arch/arm/boot/dts/imx7-colibri-iris.dtsi | 108 +
arch/arm/boot/dts/imx7-colibri.dtsi | 830 +-
arch/arm/boot/dts/imx7d-colibri-aster.dts | 30 +-
arch/arm/boot/dts/imx7d-colibri-emmc-aster.dts | 10 +-
arch/arm/boot/dts/imx7d-colibri-emmc-eval-v3.dts | 10 +-
arch/arm/boot/dts/imx7d-colibri-emmc-iris-v2.dts | 21 +
arch/arm/boot/dts/imx7d-colibri-emmc-iris.dts | 21 +
arch/arm/boot/dts/imx7d-colibri-emmc.dtsi | 17 +-
arch/arm/boot/dts/imx7d-colibri-eval-v3.dts | 45 +-
arch/arm/boot/dts/imx7d-colibri-iris-v2.dts | 83 +
arch/arm/boot/dts/imx7d-colibri-iris.dts | 56 +
arch/arm/boot/dts/imx7d-colibri.dtsi | 13 +-
arch/arm/boot/dts/imx7d-sdb.dts | 2 +-
arch/arm/boot/dts/imx7d-smegw01.dts | 8 +-
arch/arm/boot/dts/imx7d.dtsi | 2 +-
arch/arm/boot/dts/imx7s-colibri-aster.dts | 27 +-
arch/arm/boot/dts/imx7s-colibri-eval-v3.dts | 43 +-
arch/arm/boot/dts/imx7s-colibri-iris-v2.dts | 78 +
arch/arm/boot/dts/imx7s-colibri-iris.dts | 51 +
arch/arm/boot/dts/imx7s-colibri.dtsi | 5 +-
arch/arm/boot/dts/imx7s.dtsi | 4 +-
arch/arm/boot/dts/imxrt1050.dtsi | 4 +-
arch/arm/boot/dts/imxrt1170-pinfunc.h | 1561 +
arch/arm/boot/dts/keystone-k2e-netcp.dtsi | 26 +-
arch/arm/boot/dts/keystone-k2e.dtsi | 6 +-
arch/arm/boot/dts/keystone-k2g-netcp.dtsi | 2 +-
arch/arm/boot/dts/keystone-k2g.dtsi | 18 +-
arch/arm/boot/dts/keystone-k2hk-netcp.dtsi | 12 +-
arch/arm/boot/dts/keystone-k2hk.dtsi | 4 +-
arch/arm/boot/dts/keystone-k2l-netcp.dtsi | 18 +-
arch/arm/boot/dts/keystone-k2l.dtsi | 8 +-
arch/arm/boot/dts/keystone.dtsi | 18 +-
.../boot/dts/lan966x-kontron-kswitch-d10-mmt.dtsi | 21 +-
arch/arm/boot/dts/lan966x-pcb8291.dts | 61 +-
arch/arm/boot/dts/lan966x-pcb8309.dts | 184 +
arch/arm/boot/dts/lan966x.dtsi | 30 +-
arch/arm/boot/dts/lpc18xx.dtsi | 6 +-
arch/arm/boot/dts/ls1021a-iot.dts | 2 +-
arch/arm/boot/dts/ls1021a.dtsi | 7 +
arch/arm/boot/dts/meson.dtsi | 4 +-
arch/arm/boot/dts/meson8.dtsi | 2 +-
arch/arm/boot/dts/meson8b.dtsi | 2 +-
arch/arm/boot/dts/mt2701.dtsi | 8 +-
arch/arm/boot/dts/mt7623.dtsi | 6 +-
arch/arm/boot/dts/mt7623a-rfb-emmc.dts | 4 +-
arch/arm/boot/dts/mt7623a-rfb-nand.dts | 4 +-
arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts | 4 +-
arch/arm/boot/dts/mt7623n-rfb-emmc.dts | 4 +-
arch/arm/boot/dts/mt7629-rfb.dts | 4 +-
arch/arm/boot/dts/mxs-pinfunc.h | 8 +-
arch/arm/boot/dts/nuvoton-common-npcm7xx.dtsi | 3 +-
arch/arm/boot/dts/nuvoton-npcm750.dtsi | 2 +-
arch/arm/boot/dts/omap2.dtsi | 5 +-
arch/arm/boot/dts/omap2420-h4.dts | 2 +-
arch/arm/boot/dts/omap2420.dtsi | 5 +-
arch/arm/boot/dts/omap2430.dtsi | 5 +-
arch/arm/boot/dts/omap3-cpu-thermal.dtsi | 5 +-
arch/arm/boot/dts/omap3-evm-37xx.dts | 2 +-
arch/arm/boot/dts/omap3-evm.dts | 2 +-
arch/arm/boot/dts/omap3-gta04.dtsi | 2 +-
arch/arm/boot/dts/omap3-igep.dtsi | 2 +-
arch/arm/boot/dts/omap3-ldp.dts | 6 +-
arch/arm/boot/dts/omap3-lilly-a83x.dtsi | 2 +-
arch/arm/boot/dts/omap3-n900.dts | 4 +-
arch/arm/boot/dts/omap3-n950-n9.dtsi | 4 +-
arch/arm/boot/dts/omap3-overo-base.dtsi | 2 +-
arch/arm/boot/dts/omap3-pandora-common.dtsi | 2 +-
arch/arm/boot/dts/omap3.dtsi | 5 +-
arch/arm/boot/dts/omap3430-sdp.dts | 6 +-
arch/arm/boot/dts/omap34xx.dtsi | 5 +-
arch/arm/boot/dts/omap36xx.dtsi | 5 +-
arch/arm/boot/dts/omap4-cpu-thermal.dtsi | 5 +-
arch/arm/boot/dts/omap443x.dtsi | 5 +-
arch/arm/boot/dts/omap4460.dtsi | 5 +-
arch/arm/boot/dts/omap5-core-thermal.dtsi | 5 +-
arch/arm/boot/dts/omap5-gpu-thermal.dtsi | 5 +-
arch/arm/boot/dts/omap5-l4.dtsi | 2 +-
arch/arm/boot/dts/orion5x-lacie-d2-network.dts | 5 +-
.../dts/orion5x-lacie-ethernet-disk-mini-v2.dts | 9 +-
.../boot/dts/orion5x-maxtor-shared-storage-2.dts | 5 +-
arch/arm/boot/dts/orion5x-mv88f5181.dtsi | 9 +-
arch/arm/boot/dts/orion5x-mv88f5182.dtsi | 9 +-
arch/arm/boot/dts/orion5x-netgear-wnr854t.dts | 9 +-
arch/arm/boot/dts/orion5x-rd88f5182-nas.dts | 9 +-
arch/arm/boot/dts/orion5x.dtsi | 9 +-
arch/arm/boot/dts/pxa300-raumfeld-common.dtsi | 10 +-
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | 25 +-
arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts | 24 +-
arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts | 14 +-
arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 25 +-
.../dts/qcom-apq8064-sony-xperia-lagan-yuga.dts | 10 +-
arch/arm/boot/dts/qcom-apq8064.dtsi | 189 +-
arch/arm/boot/dts/qcom-apq8084.dtsi | 10 +-
arch/arm/boot/dts/qcom-ipq4018-ap120c-ac-bit.dts | 6 +
arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dts | 7 +
arch/arm/boot/dts/qcom-ipq4018-ap120c-ac.dtsi | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1.dtsi | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019.dtsi | 4 +-
arch/arm/boot/dts/qcom-ipq8064-ap148.dts | 6 -
arch/arm/boot/dts/qcom-ipq8064-rb3011.dts | 15 +-
arch/arm/boot/dts/qcom-ipq8064-smb208.dtsi | 37 +
arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi | 9 +-
arch/arm/boot/dts/qcom-ipq8064.dtsi | 198 +-
arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi | 2 +-
arch/arm/boot/dts/qcom-mdm9615.dtsi | 7 +-
arch/arm/boot/dts/qcom-msm8226.dtsi | 6 +-
arch/arm/boot/dts/qcom-msm8660.dtsi | 116 +-
arch/arm/boot/dts/qcom-msm8960.dtsi | 54 +-
.../dts/qcom-msm8974-lge-nexus5-hammerhead.dts | 42 +-
.../boot/dts/qcom-msm8974-sony-xperia-rhine.dtsi | 40 +-
arch/arm/boot/dts/qcom-msm8974.dtsi | 83 +-
.../arm/boot/dts/qcom-msm8974pro-fairphone-fp2.dts | 46 +-
arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts | 22 +-
.../qcom-msm8974pro-sony-xperia-shinano-castor.dts | 48 +-
arch/arm/boot/dts/qcom-pm8841.dtsi | 1 +
arch/arm/boot/dts/qcom-pm8941.dtsi | 12 +-
arch/arm/boot/dts/qcom-pmx55.dtsi | 1 +
arch/arm/boot/dts/qcom-pmx65.dtsi | 3 +-
arch/arm/boot/dts/qcom-sdx55.dtsi | 8 +-
arch/arm/boot/dts/qcom-sdx65-mtp.dts | 61 +-
arch/arm/boot/dts/qcom-sdx65.dtsi | 273 +-
arch/arm/boot/dts/r7s9210-rza2mevb.dts | 4 +-
arch/arm/boot/dts/r8a7790-lager.dts | 2 +-
arch/arm/boot/dts/r8a7790-stout.dts | 2 +-
arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +-
arch/arm/boot/dts/r8a7791-porter.dts | 2 +-
arch/arm/boot/dts/r8a7792-blanche.dts | 2 +-
arch/arm/boot/dts/r8a7793-gose.dts | 2 +-
arch/arm/boot/dts/r8a7794-alt.dts | 2 +-
arch/arm/boot/dts/r8a7794-silk.dts | 2 +-
arch/arm/boot/dts/r8a77xx-aa104xd12-panel.dtsi | 39 -
arch/arm/boot/dts/r9a06g032-rzn1d400-db.dts | 119 +
arch/arm/boot/dts/r9a06g032.dtsi | 108 +
arch/arm/boot/dts/rk3066a-bqcurie2.dts | 4 +-
arch/arm/boot/dts/rk3066a-mk808.dts | 18 +
arch/arm/boot/dts/rk3066a-rayeager.dts | 2 +-
arch/arm/boot/dts/rk3188-bqedison2qc.dts | 4 +-
arch/arm/boot/dts/rk3188-px3-evb.dts | 2 +-
arch/arm/boot/dts/rk3188-radxarock.dts | 2 +-
arch/arm/boot/dts/rk3229-evb.dts | 2 +-
arch/arm/boot/dts/rk3288-evb.dtsi | 2 +-
arch/arm/boot/dts/rk3288-firefly-reload.dts | 2 +-
arch/arm/boot/dts/rk3288-firefly.dtsi | 2 +-
arch/arm/boot/dts/rk3288-phycore-rdk.dts | 4 +-
arch/arm/boot/dts/rk3288-popmetal.dts | 2 +-
arch/arm/boot/dts/rk3288-r89.dts | 2 +-
arch/arm/boot/dts/rk3288-rock2-square.dts | 2 +-
arch/arm/boot/dts/rk3288-tinker.dtsi | 4 +-
.../boot/dts/rk3288-veyron-broadcom-bluetooth.dtsi | 10 +-
arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi | 2 +-
arch/arm/boot/dts/rk3288-veyron-minnie.dts | 4 +-
arch/arm/boot/dts/rk3288-veyron-pinky.dts | 2 +-
arch/arm/boot/dts/rk3288-veyron.dtsi | 2 +-
arch/arm/boot/dts/rv1108-elgin-r1.dts | 14 +-
arch/arm/boot/dts/rv1108-evb.dts | 14 +-
arch/arm/boot/dts/rv1108.dtsi | 2 +-
arch/arm/boot/dts/s3c2410-pinctrl.h | 19 +
arch/arm/boot/dts/s3c2416-pinctrl.dtsi | 38 +-
arch/arm/boot/dts/s3c2416.dtsi | 4 +-
arch/arm/boot/dts/s3c64xx-pinctrl.dtsi | 178 +-
arch/arm/boot/dts/s3c64xx-pinctrl.h | 27 +
arch/arm/boot/dts/s3c64xx.dtsi | 6 +-
arch/arm/boot/dts/s5pv210-aquila.dts | 4 +-
arch/arm/boot/dts/s5pv210-aries.dtsi | 134 +-
arch/arm/boot/dts/s5pv210-fascinate4g.dts | 28 +-
arch/arm/boot/dts/s5pv210-galaxys.dts | 42 +-
arch/arm/boot/dts/s5pv210-pinctrl.dtsi | 480 +-
arch/arm/boot/dts/s5pv210-pinctrl.h | 39 +
arch/arm/boot/dts/s5pv210.dtsi | 8 +-
arch/arm/boot/dts/sam9x60.dtsi | 4 +-
arch/arm/boot/dts/sama5d2.dtsi | 26 +-
arch/arm/boot/dts/sama5d3.dtsi | 2 +-
arch/arm/boot/dts/sama5d4.dtsi | 2 +-
arch/arm/boot/dts/sama7g5.dtsi | 7 +
arch/arm/boot/dts/sd5203.dts | 2 +-
arch/arm/boot/dts/socfpga.dtsi | 8 +
arch/arm/boot/dts/socfpga_arria10.dtsi | 10 +
arch/arm/boot/dts/socfpga_arria10_chameleonv3.dts | 90 +
...ry_aa1.dts => socfpga_arria10_mercury_aa1.dtsi} | 48 +-
arch/arm/boot/dts/spear1310-evb.dts | 2 +-
arch/arm/boot/dts/spear1340-evb.dts | 2 +-
arch/arm/boot/dts/spear1340.dtsi | 2 +-
arch/arm/boot/dts/spear300-evb.dts | 2 +-
arch/arm/boot/dts/spear310-evb.dts | 2 +-
arch/arm/boot/dts/spear320-evb.dts | 2 +-
arch/arm/boot/dts/spear320-hmi.dts | 2 +-
arch/arm/boot/dts/spear320.dtsi | 2 +-
arch/arm/boot/dts/ste-ab8500.dtsi | 6 +-
arch/arm/boot/dts/ste-dbx5x0.dtsi | 5 -
arch/arm/boot/dts/ste-hrefv60plus.dtsi | 4 +-
arch/arm/boot/dts/ste-ux500-samsung-codina.dts | 4 +-
arch/arm/boot/dts/ste-ux500-samsung-gavini.dts | 4 +-
arch/arm/boot/dts/ste-ux500-samsung-janice.dts | 4 +-
arch/arm/boot/dts/stih407-family.dtsi | 176 +-
arch/arm/boot/dts/stih407.dtsi | 4 +-
arch/arm/boot/dts/stih410.dtsi | 4 +-
arch/arm/boot/dts/stihxxx-b2120.dtsi | 8 +-
arch/arm/boot/dts/stm32429i-eval.dts | 8 +-
arch/arm/boot/dts/stm32h743.dtsi | 4 +-
arch/arm/boot/dts/stm32h743i-disco.dts | 8 +-
arch/arm/boot/dts/stm32h743i-eval.dts | 8 +-
arch/arm/boot/dts/stm32h750i-art-pi.dts | 8 +-
arch/arm/boot/dts/stm32mp131.dtsi | 140 +-
arch/arm/boot/dts/stm32mp133.dtsi | 4 +-
arch/arm/boot/dts/stm32mp135f-dk.dts | 11 +
arch/arm/boot/dts/stm32mp13xc.dtsi | 3 +-
arch/arm/boot/dts/stm32mp13xf.dtsi | 3 +-
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 177 +-
arch/arm/boot/dts/stm32mp15-scmi.dtsi | 105 +
arch/arm/boot/dts/stm32mp151.dtsi | 54 +-
.../arm/boot/dts/stm32mp153c-dhcor-drc-compact.dts | 30 +
arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts | 17 +-
arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts | 14 +-
arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts | 17 +-
arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts | 14 +-
arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi | 55 +
.../boot/dts/stm32mp15xx-dhcor-drc-compact.dtsi | 322 +
arch/arm/boot/dts/stm32mp15xx-dhcor-io1v8.dtsi | 5 +
arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi | 4 +-
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 8 +
arch/arm/boot/dts/stm32mp15xx-osd32.dtsi | 9 +-
arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts | 40 +-
arch/arm/boot/dts/sun4i-a10-pcduino.dts | 6 +-
arch/arm/boot/dts/sun5i-a13-licheepi-one.dts | 6 +-
arch/arm/boot/dts/sun6i-a31.dtsi | 13 +-
arch/arm/boot/dts/sun7i-a20-pcduino3.dts | 6 +-
arch/arm/boot/dts/sun8i-a23-a33.dtsi | 9 +-
.../boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts | 8 +-
arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 2 +-
arch/arm/boot/dts/sun8i-h3-beelink-x2.dts | 6 +-
arch/arm/boot/dts/sun8i-h3-mapleboard-mp130.dts | 6 +-
arch/arm/boot/dts/sun8i-h3-nanopi-duo2.dts | 8 +-
arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts | 2 +-
arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts | 4 +-
arch/arm/boot/dts/sun8i-h3-nanopi.dtsi | 4 +-
arch/arm/boot/dts/sun8i-h3-orangepi-2.dts | 6 +-
arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts | 4 +-
arch/arm/boot/dts/sun8i-h3-orangepi-one.dts | 4 +-
arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts | 4 +-
arch/arm/boot/dts/sun8i-r16-bananapi-m2m.dts | 4 +-
arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts | 5 +
arch/arm/boot/dts/sun8i-r40-cpu-opp.dtsi | 52 +
arch/arm/boot/dts/sun8i-r40-feta40i.dtsi | 5 +
arch/arm/boot/dts/sun8i-r40.dtsi | 44 +-
arch/arm/boot/dts/sun8i-t3-cqa3t-bv3.dts | 5 +
arch/arm/boot/dts/sun8i-v3s.dtsi | 6 +-
arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts | 5 +
arch/arm/boot/dts/sun9i-a80.dtsi | 1 -
arch/arm/boot/dts/sunplus-sp7021-achip.dtsi | 84 +
arch/arm/boot/dts/sunplus-sp7021-demo-v3.dts | 30 +
arch/arm/boot/dts/sunplus-sp7021.dtsi | 310 +
arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi | 8 +-
arch/arm/boot/dts/sunxi-h3-h5-emlid-neutis.dtsi | 4 +-
arch/arm/boot/dts/sunxi-h3-h5.dtsi | 13 +-
arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi | 4 +-
arch/arm/boot/dts/tegra114-asus-tf701t.dts | 8 +-
arch/arm/boot/dts/tegra114-dalmore.dts | 8 +-
arch/arm/boot/dts/tegra114-roth.dts | 6 +-
arch/arm/boot/dts/tegra114-tn7.dts | 6 +-
arch/arm/boot/dts/tegra124-apalis-eval.dts | 2 +-
arch/arm/boot/dts/tegra124-apalis-v1.2-eval.dts | 2 +-
arch/arm/boot/dts/tegra124-jetson-tk1.dts | 2 +-
arch/arm/boot/dts/tegra124-nyan.dtsi | 4 +-
arch/arm/boot/dts/tegra124-venice2.dts | 2 +-
arch/arm/boot/dts/tegra20-acer-a500-picasso.dts | 10 +-
arch/arm/boot/dts/tegra20-asus-tf101.dts | 10 +-
arch/arm/boot/dts/tegra20-colibri-eval-v3.dts | 2 +-
arch/arm/boot/dts/tegra20-colibri-iris.dts | 2 +-
arch/arm/boot/dts/tegra20-harmony.dts | 2 +-
arch/arm/boot/dts/tegra20-paz00.dts | 2 +-
arch/arm/boot/dts/tegra20-seaboard.dts | 4 +-
arch/arm/boot/dts/tegra20-trimslice.dts | 2 +-
arch/arm/boot/dts/tegra20-ventana.dts | 2 +-
arch/arm/boot/dts/tegra30-apalis-eval.dts | 2 +-
arch/arm/boot/dts/tegra30-apalis-v1.1-eval.dts | 2 +-
.../dts/tegra30-asus-nexus7-grouper-common.dtsi | 14 +-
arch/arm/boot/dts/tegra30-asus-nexus7-tilapia.dtsi | 2 +-
.../boot/dts/tegra30-asus-transformer-common.dtsi | 10 +-
arch/arm/boot/dts/tegra30-cardhu.dtsi | 6 +-
arch/arm/boot/dts/tegra30-colibri-eval-v3.dts | 2 +-
arch/arm/boot/dts/tegra30-colibri.dtsi | 6 +-
arch/arm/boot/dts/tegra30-ouya.dts | 2 +-
arch/arm/boot/dts/tegra30-pegatron-chagall.dts | 10 +-
arch/arm/boot/dts/uniphier-pxs2.dtsi | 8 +-
arch/arm/boot/dts/zynq-zc702.dts | 4 +-
arch/arm/boot/dts/zynq-zturn-common.dtsi | 2 +-
arch/arm/common/Kconfig | 6 +-
arch/arm/common/Makefile | 1 -
arch/arm/common/dmabounce.c | 582 -
arch/arm/common/sa1111.c | 64 -
arch/arm/configs/am200epdkit_defconfig | 28 +-
arch/arm/configs/aspeed_g4_defconfig | 17 +-
arch/arm/configs/aspeed_g5_defconfig | 17 +-
arch/arm/configs/assabet_defconfig | 19 +-
arch/arm/configs/at91_dt_defconfig | 10 +-
arch/arm/configs/axm55xx_defconfig | 26 +-
arch/arm/configs/badge4_defconfig | 18 +-
arch/arm/configs/bcm2835_defconfig | 39 +-
arch/arm/configs/cerfcube_defconfig | 25 +-
arch/arm/configs/clps711x_defconfig | 6 +-
arch/arm/configs/cm_x300_defconfig | 29 +-
arch/arm/configs/cns3420vb_defconfig | 21 +-
arch/arm/configs/colibri_pxa270_defconfig | 42 +-
arch/arm/configs/colibri_pxa300_defconfig | 13 +-
arch/arm/configs/collie_defconfig | 22 +-
arch/arm/configs/corgi_defconfig | 52 +-
arch/arm/configs/davinci_all_defconfig | 39 +-
arch/arm/configs/dove_defconfig | 32 +-
arch/arm/configs/ep93xx_defconfig | 26 +-
arch/arm/configs/eseries_pxa_defconfig | 37 +-
arch/arm/configs/exynos_defconfig | 24 +-
arch/arm/configs/ezx_defconfig | 75 +-
arch/arm/configs/footbridge_defconfig | 32 +-
arch/arm/configs/h3600_defconfig | 16 +-
arch/arm/configs/h5000_defconfig | 21 +-
arch/arm/configs/hackkit_defconfig | 13 +-
arch/arm/configs/hisi_defconfig | 24 +-
arch/arm/configs/imx_v4_v5_defconfig | 10 +-
arch/arm/configs/imx_v6_v7_defconfig | 8 +-
arch/arm/configs/integrator_defconfig | 2 +-
arch/arm/configs/iop32x_defconfig | 24 +-
arch/arm/configs/ixp4xx_defconfig | 1 -
arch/arm/configs/jornada720_defconfig | 17 +-
arch/arm/configs/keystone_defconfig | 64 +-
arch/arm/configs/lart_defconfig | 22 +-
arch/arm/configs/lpc18xx_defconfig | 16 +-
arch/arm/configs/lpc32xx_defconfig | 12 +-
arch/arm/configs/lpd270_defconfig | 12 +-
arch/arm/configs/lubbock_defconfig | 22 +-
arch/arm/configs/magician_defconfig | 42 +-
arch/arm/configs/mainstone_defconfig | 16 +-
arch/arm/configs/milbeaut_m10v_defconfig | 7 +-
arch/arm/configs/mini2440_defconfig | 9 +-
arch/arm/configs/mmp2_defconfig | 37 +-
arch/arm/configs/moxart_defconfig | 20 +-
arch/arm/configs/mps2_defconfig | 18 +-
arch/arm/configs/multi_v4t_defconfig | 6 +-
arch/arm/configs/multi_v5_defconfig | 31 +-
arch/arm/configs/multi_v7_defconfig | 69 +-
arch/arm/configs/mv78xx0_defconfig | 37 +-
arch/arm/configs/mvebu_v5_defconfig | 40 +-
arch/arm/configs/mvebu_v7_defconfig | 4 +-
arch/arm/configs/mxs_defconfig | 7 +-
arch/arm/configs/neponset_defconfig | 30 +-
arch/arm/configs/netwinder_defconfig | 18 +-
arch/arm/configs/nhk8815_defconfig | 8 +-
arch/arm/configs/omap1_defconfig | 89 +-
arch/arm/configs/omap2plus_defconfig | 17 +-
arch/arm/configs/orion5x_defconfig | 49 +-
arch/arm/configs/oxnas_v6_defconfig | 14 +-
arch/arm/configs/palmz72_defconfig | 17 +-
arch/arm/configs/pcm027_defconfig | 25 +-
arch/arm/configs/pleb_defconfig | 9 +-
arch/arm/configs/pxa168_defconfig | 22 +-
arch/arm/configs/pxa255-idp_defconfig | 22 +-
arch/arm/configs/pxa3xx_defconfig | 27 +-
arch/arm/configs/pxa910_defconfig | 26 +-
arch/arm/configs/pxa_defconfig | 215 +-
arch/arm/configs/qcom_defconfig | 62 +-
arch/arm/configs/realview_defconfig | 8 +-
arch/arm/configs/rpc_defconfig | 20 +-
arch/arm/configs/s3c2410_defconfig | 13 +-
arch/arm/configs/s3c6400_defconfig | 13 +-
arch/arm/configs/s5pv210_defconfig | 6 +-
arch/arm/configs/sama5_defconfig | 8 +-
arch/arm/configs/sama7_defconfig | 8 +-
arch/arm/configs/shannon_defconfig | 11 +-
arch/arm/configs/shmobile_defconfig | 4 +-
arch/arm/configs/simpad_defconfig | 30 +-
arch/arm/configs/socfpga_defconfig | 8 +-
arch/arm/configs/sp7021_defconfig | 59 +
arch/arm/configs/spear13xx_defconfig | 18 +-
arch/arm/configs/spear3xx_defconfig | 12 +-
arch/arm/configs/spear6xx_defconfig | 10 +-
arch/arm/configs/spitz_defconfig | 51 +-
arch/arm/configs/stm32_defconfig | 18 +-
arch/arm/configs/sunxi_defconfig | 2 +-
arch/arm/configs/tct_hammer_defconfig | 15 +-
arch/arm/configs/tegra_defconfig | 20 +-
arch/arm/configs/trizeps4_defconfig | 67 +-
arch/arm/configs/u8500_defconfig | 2 +-
arch/arm/configs/versatile_defconfig | 4 +-
arch/arm/configs/vexpress_defconfig | 8 +-
arch/arm/configs/vf610m4_defconfig | 2 +-
arch/arm/configs/viper_defconfig | 31 +-
arch/arm/configs/vt8500_v6_v7_defconfig | 2 +-
arch/arm/configs/xcep_defconfig | 33 +-
arch/arm/configs/zeus_defconfig | 29 +-
arch/arm/crypto/Kconfig | 2 +-
arch/arm/crypto/Makefile | 4 +-
arch/arm/crypto/blake2s-shash.c | 75 -
arch/arm/include/asm/archrandom.h | 2 +
arch/arm/include/asm/bitops.h | 18 +-
arch/arm/include/asm/device.h | 3 -
arch/arm/include/asm/dma-direct.h | 49 +-
arch/arm/include/asm/dma-mapping.h | 128 -
arch/arm/include/asm/dma.h | 8 +-
arch/arm/include/asm/domain.h | 13 -
arch/arm/include/asm/efi.h | 7 -
arch/arm/include/asm/hardware/cache-aurora-l2.h | 5 +-
arch/arm/include/asm/hardware/cache-feroceon-l2.h | 6 +-
arch/arm/include/asm/hardware/cache-tauros2.h | 5 +-
arch/arm/include/asm/io.h | 4 +-
arch/arm/include/asm/irq_work.h | 2 +
arch/arm/include/asm/mach/map.h | 1 +
arch/arm/include/asm/memory.h | 2 -
arch/arm/include/asm/pci.h | 5 -
arch/arm/include/asm/pgtable.h | 17 -
arch/arm/include/asm/ptrace.h | 26 +
arch/arm/include/asm/xen/xen-ops.h | 2 +
arch/arm/include/debug/brcmstb.S | 14 +-
arch/arm/kernel/entry-common.S | 5 +-
arch/arm/kernel/entry-header.S | 12 +-
arch/arm/kernel/head.S | 34 +-
arch/arm/kernel/irq.c | 3 +-
arch/arm/kernel/jump_label.c | 6 -
arch/arm/kernel/reboot.c | 1 +
arch/arm/kernel/smp.c | 8 -
arch/arm/lib/findbit.S | 16 +-
arch/arm/lib/uaccess_with_memcpy.c | 2 +-
arch/arm/mach-at91/pm.c | 12 +-
arch/arm/mach-at91/sam_secure.c | 6 +
arch/arm/mach-at91/sam_secure.h | 1 +
arch/arm/mach-at91/sama5.c | 16 +-
arch/arm/mach-axxia/platsmp.c | 1 +
arch/arm/mach-bcm/Kconfig | 65 +-
arch/arm/mach-bcm/Makefile | 20 +-
arch/arm/mach-bcm/bcm63xx.c | 27 -
arch/arm/mach-bcm/bcm_cygnus.c | 14 +-
arch/arm/mach-bcm/bcm_hr2.c | 14 +-
arch/arm/mach-bcm/bcm_kona_smc.c | 15 +-
arch/arm/mach-bcm/bcm_kona_smc.h | 14 +-
arch/arm/mach-bcm/bcm_nsp.c | 14 +-
arch/arm/mach-bcm/board_bcm21664.c | 14 +-
arch/arm/mach-bcm/board_bcm23550.c | 14 +-
arch/arm/mach-bcm/board_bcm281xx.c | 14 +-
arch/arm/mach-bcm/brcmstb.c | 14 +-
arch/arm/mach-bcm/kona_l2_cache.c | 14 +-
arch/arm/mach-bcm/kona_l2_cache.h | 14 +-
arch/arm/mach-bcm/platsmp-brcmstb.c | 10 +-
arch/arm/mach-cns3xxx/Kconfig | 1 +
arch/arm/mach-cns3xxx/core.c | 2 +
arch/arm/mach-davinci/Kconfig | 52 +-
arch/arm/mach-davinci/Makefile | 6 -
arch/arm/mach-davinci/board-da830-evm.c | 6 +-
arch/arm/mach-davinci/board-da850-evm.c | 6 +-
arch/arm/mach-davinci/board-dm355-evm.c | 6 +-
arch/arm/mach-davinci/board-dm355-leopard.c | 5 +-
arch/arm/mach-davinci/board-dm365-evm.c | 11 +-
arch/arm/mach-davinci/board-dm644x-evm.c | 928 -
arch/arm/mach-davinci/board-dm646x-evm.c | 873 -
arch/arm/mach-davinci/board-mityomapl138.c | 5 +-
arch/arm/mach-davinci/board-neuros-osd2.c | 238 -
arch/arm/mach-davinci/board-omapl138-hawk.c | 5 +-
arch/arm/mach-davinci/board-sffsdr.c | 151 -
arch/arm/mach-davinci/common.c | 6 +-
arch/arm/mach-davinci/common.h | 6 +-
arch/arm/mach-davinci/cpuidle.h | 5 +-
arch/arm/mach-davinci/cputype.h | 6 +-
arch/arm/mach-davinci/da830.c | 6 +-
arch/arm/mach-davinci/da850.c | 6 +-
arch/arm/mach-davinci/da8xx.h | 6 +-
arch/arm/mach-davinci/davinci.h | 10 +-
arch/arm/mach-davinci/dm355.c | 6 +-
arch/arm/mach-davinci/dm365.c | 10 +-
arch/arm/mach-davinci/dm644x.c | 765 -
arch/arm/mach-davinci/dm646x.c | 726 -
arch/arm/mach-davinci/hardware.h | 6 +-
arch/arm/mach-davinci/mux.c | 6 +-
arch/arm/mach-davinci/mux.h | 6 +-
arch/arm/mach-davinci/pm.h | 10 +-
arch/arm/mach-davinci/pm_domain.c | 5 +-
arch/arm/mach-davinci/serial.h | 6 +-
arch/arm/mach-dove/Kconfig | 2 +
arch/arm/mach-dove/bridge-regs.h | 9 +-
arch/arm/mach-dove/cm-a510.c | 5 +-
arch/arm/mach-dove/common.c | 5 +-
arch/arm/mach-dove/common.h | 5 +-
arch/arm/mach-dove/dove-db-setup.c | 5 +-
arch/arm/mach-dove/dove.h | 9 +-
arch/arm/mach-dove/irq.c | 5 +-
arch/arm/mach-dove/irqs.h | 9 +-
arch/arm/mach-dove/mpp.c | 5 +-
arch/arm/mach-dove/pcie.c | 16 +-
arch/arm/mach-dove/pm.h | 6 +-
arch/arm/mach-ep93xx/Kconfig | 9 +
arch/arm/mach-exynos/exynos.c | 1 +
arch/arm/mach-footbridge/Kconfig | 2 +
arch/arm/mach-footbridge/common.c | 19 +-
arch/arm/mach-footbridge/include/mach/dma-direct.h | 8 +
arch/arm/mach-footbridge/include/mach/memory.h | 4 -
arch/arm/mach-highbank/highbank.c | 2 +-
arch/arm/mach-hisi/Kconfig | 2 +-
arch/arm/mach-imx/Kconfig | 6 +-
arch/arm/mach-imx/cpu-imx25.c | 2 +
arch/arm/mach-imx/cpuidle-imx6q.c | 5 +-
arch/arm/mach-iop32x/Kconfig | 1 +
arch/arm/mach-lpc18xx/board-dt.c | 5 +-
arch/arm/mach-lpc32xx/pm.c | 6 +-
arch/arm/mach-lpc32xx/suspend.S | 6 +-
arch/arm/mach-meson/platsmp.c | 2 +
arch/arm/mach-mmp/Kconfig | 9 +
arch/arm/mach-mmp/mmp2.h | 2 +-
arch/arm/mach-mmp/pxa168.h | 2 +-
arch/arm/mach-mmp/pxa910.h | 2 +-
arch/arm/mach-mv78xx0/Kconfig | 1 +
arch/arm/mach-mv78xx0/bridge-regs.h | 6 +-
arch/arm/mach-mv78xx0/buffalo-wxl-setup.c | 5 +-
arch/arm/mach-mv78xx0/common.c | 5 +-
arch/arm/mach-mv78xx0/common.h | 5 +-
arch/arm/mach-mv78xx0/db78x00-bp-setup.c | 5 +-
arch/arm/mach-mv78xx0/irq.c | 5 +-
arch/arm/mach-mv78xx0/irqs.h | 9 +-
arch/arm/mach-mv78xx0/mpp.c | 5 +-
arch/arm/mach-mv78xx0/mpp.h | 6 +-
arch/arm/mach-mv78xx0/mv78xx0.h | 5 +-
arch/arm/mach-mv78xx0/pcie.c | 16 +-
arch/arm/mach-mv78xx0/rd78x00-masa-setup.c | 5 +-
arch/arm/mach-mvebu/armada-370-xp.h | 5 +-
arch/arm/mach-mvebu/board-v7.c | 5 +-
arch/arm/mach-mvebu/coherency.c | 7 +-
arch/arm/mach-mvebu/coherency.h | 6 +-
arch/arm/mach-mvebu/coherency_ll.S | 5 +-
arch/arm/mach-mvebu/common.h | 5 +-
arch/arm/mach-mvebu/cpu-reset.c | 5 +-
arch/arm/mach-mvebu/dove.c | 5 +-
arch/arm/mach-mvebu/headsmp-a9.S | 5 +-
arch/arm/mach-mvebu/headsmp.S | 5 +-
arch/arm/mach-mvebu/kirkwood.c | 5 +-
arch/arm/mach-mvebu/kirkwood.h | 5 +-
arch/arm/mach-mvebu/mvebu-soc-id.c | 5 +-
arch/arm/mach-mvebu/mvebu-soc-id.h | 5 +-
arch/arm/mach-mvebu/platsmp-a9.c | 5 +-
arch/arm/mach-mvebu/platsmp.c | 5 +-
arch/arm/mach-mvebu/pm-board.c | 5 +-
arch/arm/mach-mvebu/pm.c | 5 +-
arch/arm/mach-mvebu/pmsu.c | 5 +-
arch/arm/mach-mvebu/pmsu.h | 5 +-
arch/arm/mach-mvebu/pmsu_ll.S | 5 +-
arch/arm/mach-mvebu/system-controller.c | 5 +-
arch/arm/mach-omap1/Kconfig | 11 +
arch/arm/mach-omap1/board-sx1.h | 9 +-
arch/arm/mach-omap1/gpio15xx.c | 10 +-
arch/arm/mach-omap1/gpio16xx.c | 10 +-
arch/arm/mach-omap1/gpio7xx.c | 10 +-
arch/arm/mach-omap1/mtd-xip.h | 6 +-
arch/arm/mach-omap1/pm_bus.c | 6 +-
arch/arm/mach-omap1/timer.c | 10 +-
arch/arm/mach-omap2/Kconfig | 8 +-
arch/arm/mach-omap2/am33xx.h | 10 +-
arch/arm/mach-omap2/clockdomains33xx_data.c | 10 +-
arch/arm/mach-omap2/clockdomains81xx_data.c | 10 +-
arch/arm/mach-omap2/cm-regbits-33xx.h | 10 +-
arch/arm/mach-omap2/cm33xx.c | 10 +-
arch/arm/mach-omap2/cm33xx.h | 10 +-
arch/arm/mach-omap2/cm81xx.h | 10 +-
arch/arm/mach-omap2/display.c | 13 +-
arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 11 +-
arch/arm/mach-omap2/omap_opp_data.h | 10 +-
arch/arm/mach-omap2/opp3xxx_data.c | 10 +-
arch/arm/mach-omap2/opp4xxx_data.c | 10 +-
arch/arm/mach-omap2/pdata-quirks.c | 2 +
arch/arm/mach-omap2/powerdomains33xx_data.c | 10 +-
arch/arm/mach-omap2/prcm43xx.h | 5 +-
arch/arm/mach-omap2/prm-regbits-33xx.h | 10 +-
arch/arm/mach-omap2/prm33xx.c | 10 +-
arch/arm/mach-omap2/prm33xx.h | 10 +-
arch/arm/mach-omap2/prm3xxx.c | 1 +
arch/arm/mach-omap2/ti81xx.h | 10 +-
arch/arm/mach-omap2/vc.c | 6 +-
arch/arm/mach-orion5x/Kconfig | 18 +
arch/arm/mach-orion5x/board-d2net.c | 5 +-
arch/arm/mach-orion5x/board-dt.c | 5 +-
arch/arm/mach-orion5x/board-rd88f5182.c | 5 +-
arch/arm/mach-orion5x/bridge-regs.h | 9 +-
arch/arm/mach-orion5x/common.c | 5 +-
arch/arm/mach-orion5x/db88f5281-setup.c | 5 +-
arch/arm/mach-orion5x/irq.c | 5 +-
arch/arm/mach-orion5x/irqs.h | 5 +-
arch/arm/mach-orion5x/kurobox_pro-setup.c | 5 +-
arch/arm/mach-orion5x/ls_hgl-setup.c | 5 +-
arch/arm/mach-orion5x/mpp.c | 5 +-
arch/arm/mach-orion5x/net2big-setup.c | 6 +-
arch/arm/mach-orion5x/orion5x.h | 5 +-
arch/arm/mach-orion5x/pci.c | 17 +-
arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c | 5 +-
arch/arm/mach-orion5x/rd88f5181l-ge-setup.c | 5 +-
arch/arm/mach-orion5x/rd88f5182-setup.c | 5 +-
arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | 5 +-
arch/arm/mach-orion5x/ts78xx-setup.c | 5 +-
arch/arm/mach-orion5x/wnr854t-setup.c | 9 +-
arch/arm/mach-orion5x/wrt350n-v2-setup.c | 9 +-
arch/arm/mach-pxa/Kconfig | 53 +
arch/arm/mach-pxa/corgi.c | 2 +-
arch/arm/mach-pxa/eseries.c | 11 +-
arch/arm/mach-pxa/hx4700.c | 2 +-
arch/arm/mach-pxa/icontrol.c | 4 +-
arch/arm/mach-pxa/littleton.c | 2 +-
arch/arm/mach-pxa/magician.c | 2 +-
arch/arm/mach-pxa/spitz.c | 2 +-
arch/arm/mach-pxa/standby.S | 6 +-
arch/arm/mach-pxa/tosa.c | 4 +-
arch/arm/mach-pxa/z2.c | 4 +-
arch/arm/mach-qcom/Kconfig | 4 +
arch/arm/mach-qcom/platsmp.c | 1 +
arch/arm/mach-rockchip/pm.c | 7 +-
arch/arm/mach-s3c/Kconfig | 14 +-
arch/arm/mach-s3c/Kconfig.s3c24xx | 28 +-
arch/arm/mach-s3c/Kconfig.s3c64xx | 34 +-
arch/arm/mach-s3c/mach-mini2440.c | 2 +-
arch/arm/mach-sa1100/Kconfig | 11 +
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5 +-
arch/arm/mach-spear/generic.h | 5 +-
arch/arm/mach-spear/misc_regs.h | 5 +-
arch/arm/mach-spear/pl080.c | 5 +-
arch/arm/mach-spear/pl080.h | 5 +-
arch/arm/mach-spear/restart.c | 5 +-
arch/arm/mach-spear/spear.h | 5 +-
arch/arm/mach-spear/spear1310.c | 5 +-
arch/arm/mach-spear/spear1340.c | 5 +-
arch/arm/mach-spear/spear13xx.c | 5 +-
arch/arm/mach-spear/spear300.c | 5 +-
arch/arm/mach-spear/spear310.c | 5 +-
arch/arm/mach-spear/spear320.c | 5 +-
arch/arm/mach-spear/spear3xx.c | 5 +-
arch/arm/mach-spear/spear6xx.c | 5 +-
arch/arm/mach-spear/time.c | 13 +-
arch/arm/mach-sunplus/Kconfig | 27 +
arch/arm/mach-sunplus/Makefile | 8 +
arch/arm/mach-sunplus/sp7021.c | 16 +
arch/arm/mach-versatile/spc.c | 10 +-
arch/arm/mach-zynq/common.c | 1 +
arch/arm/mm/Kconfig | 6 +-
arch/arm/mm/alignment.c | 3 +
arch/arm/mm/cache-feroceon-l2.c | 5 +-
arch/arm/mm/cache-tauros2.c | 5 +-
arch/arm/mm/dma-mapping.c | 661 +-
arch/arm/mm/fault.c | 4 +
arch/arm/mm/ioremap.c | 9 +-
arch/arm/mm/kasan_init.c | 6 +-
arch/arm/mm/mmu.c | 35 +-
arch/arm/mm/nommu.c | 9 +-
arch/arm/mm/proc-v7-bugs.c | 9 +-
arch/arm/net/bpf_jit_32.c | 16 -
arch/arm/probes/decode.h | 26 +-
arch/arm/xen/enlighten.c | 4 +
arch/arm/xen/p2m.c | 6 +-
arch/arm64/Kconfig | 49 +-
arch/arm64/Kconfig.platforms | 26 +-
arch/arm64/boot/Makefile | 5 +-
arch/arm64/boot/dts/Makefile | 1 +
arch/arm64/boot/dts/allwinner/Makefile | 2 +
arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi | 6 +
.../dts/allwinner/sun50i-a64-amarula-relic.dts | 2 +-
.../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 4 +-
.../boot/dts/allwinner/sun50i-a64-nanopi-a64.dts | 2 +-
.../boot/dts/allwinner/sun50i-a64-orangepi-win.dts | 6 +-
.../boot/dts/allwinner/sun50i-a64-pinebook.dts | 4 +-
.../dts/allwinner/sun50i-a64-pinephone-1.0.dts | 4 +
.../dts/allwinner/sun50i-a64-pinephone-1.1.dts | 4 +
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 10 +-
.../boot/dts/allwinner/sun50i-h5-nanopi-r1s-h5.dts | 4 +-
.../boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts | 4 +-
.../dts/allwinner/sun50i-h5-orangepi-prime.dts | 4 +-
.../boot/dts/allwinner/sun50i-h6-orangepi-3.dts | 4 +-
.../dts/allwinner/sun50i-h6-orangepi-lite2.dts | 4 +-
arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi | 2 +-
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 12 +-
.../dts/allwinner/sun50i-h616-orangepi-zero2.dts | 213 +
.../boot/dts/allwinner/sun50i-h616-x96-mate.dts | 177 +
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 591 +
arch/arm64/boot/dts/altera/Makefile | 3 +-
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi | 58 +-
.../boot/dts/altera/socfpga_stratix10_socdk.dts | 10 +-
.../dts/altera/socfpga_stratix10_socdk_nand.dts | 10 +-
.../boot/dts/altera/socfpga_stratix10_swvp.dts | 117 +
arch/arm64/boot/dts/amd/amd-overdrive-rev-b0.dts | 4 +-
arch/arm64/boot/dts/amd/amd-overdrive-rev-b1.dts | 4 +-
arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 2 +-
.../arm64/boot/dts/amlogic/meson-g12b-gsking-x.dts | 27 +-
.../boot/dts/amlogic/meson-g12b-gtking-pro.dts | 2 -
arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 2 +-
arch/arm64/boot/dts/amlogic/meson-gxbb-kii-pro.dts | 2 -
.../boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts | 4 +-
.../boot/dts/amlogic/meson-gxbb-wetek-play2.dts | 4 +-
.../dts/amlogic/meson-gxl-s905d-mecool-kii-pro.dts | 4 +-
.../boot/dts/amlogic/meson-gxl-s905d-p230.dts | 4 +-
.../dts/amlogic/meson-gxl-s905d-vero4k-plus.dts | 4 +-
.../amlogic/meson-gxl-s905w-jethome-jethub-j80.dts | 2 +-
.../boot/dts/amlogic/meson-gxm-mecool-kiii-pro.dts | 4 +-
.../boot/dts/amlogic/meson-gxm-minix-neo-u9h.dts | 4 +-
arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts | 4 +-
.../boot/dts/amlogic/meson-gxm-wetek-core2.dts | 2 -
arch/arm64/boot/dts/amlogic/meson-s4.dtsi | 6 +
arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts | 10 +-
arch/arm64/boot/dts/apm/apm-merlin.dts | 2 +-
arch/arm64/boot/dts/apm/apm-mustang.dts | 2 +-
arch/arm64/boot/dts/apm/apm-shadowcat.dtsi | 6 +-
arch/arm64/boot/dts/apm/apm-storm.dtsi | 10 +-
arch/arm64/boot/dts/apple/t8103-pmgr.dtsi | 7 +-
arch/arm64/boot/dts/apple/t8103.dtsi | 34 +
arch/arm64/boot/dts/arm/fvp-base-revc.dts | 2 +-
arch/arm64/boot/dts/arm/juno-base.dtsi | 44 +-
arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi | 16 +-
arch/arm64/boot/dts/arm/juno-r1.dts | 2 +
arch/arm64/boot/dts/arm/juno-r2.dts | 2 +
arch/arm64/boot/dts/arm/juno-scmi.dtsi | 1 -
arch/arm64/boot/dts/arm/juno.dts | 2 +
arch/arm64/boot/dts/broadcom/Makefile | 1 +
.../bcm4908/bcm4906-tplink-archer-c2300-v1.dts | 8 +-
arch/arm64/boot/dts/broadcom/bcm4908/bcm4906.dtsi | 8 +
.../broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts | 8 +-
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi | 2 +
arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 9 +
.../dts/broadcom/bcmbca/bcm4912-asus-gt-ax6000.dts | 19 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi | 128 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi | 110 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi | 128 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi | 128 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi | 103 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi | 121 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts | 30 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm963146.dts | 30 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts | 30 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts | 30 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm96856.dts | 30 +
arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts | 30 +
.../arm64/boot/dts/broadcom/stingray/stingray.dtsi | 2 +-
arch/arm64/boot/dts/exynos/exynos-pinctrl.h | 79 +
arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi | 2 +-
arch/arm64/boot/dts/exynos/exynos5433.dtsi | 6 +-
arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 6 +-
arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi | 72 +-
.../boot/dts/exynos/exynos7885-jackpotlte.dts | 20 +
arch/arm64/boot/dts/exynos/exynos7885-pinctrl.dtsi | 2 +-
arch/arm64/boot/dts/exynos/exynos7885.dtsi | 44 +-
arch/arm64/boot/dts/exynos/exynos850-pinctrl.dtsi | 2 +-
.../boot/dts/exynos/exynosautov9-pinctrl.dtsi | 8 +-
arch/arm64/boot/dts/exynos/exynosautov9-sadk.dts | 20 +
arch/arm64/boot/dts/exynos/exynosautov9.dtsi | 1170 +-
arch/arm64/boot/dts/freescale/Makefile | 4 +
arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts | 2 +-
arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi | 18 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 2 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 21 +-
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 20 +-
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 20 +-
.../arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts | 10 +-
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 16 +-
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 18 +-
.../dts/freescale/fsl-lx2160a-clearfog-itx.dtsi | 8 +-
arch/arm64/boot/dts/freescale/fsl-lx2160a-qds.dts | 4 +-
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 16 +-
arch/arm64/boot/dts/freescale/fsl-lx2162a-qds.dts | 4 +-
arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi | 10 +-
.../dts/freescale/imx8mm-beacon-baseboard.dtsi | 4 +-
arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi | 43 +
.../boot/dts/freescale/imx8mm-icore-mx8mm.dtsi | 12 +-
arch/arm64/boot/dts/freescale/imx8mm-mx8menlo.dts | 4 +-
.../dts/freescale/imx8mm-phyboard-polis-rdk.dts | 450 +
.../boot/dts/freescale/imx8mm-phycore-som.dtsi | 440 +
.../boot/dts/freescale/imx8mm-var-som-symphony.dts | 6 +-
.../boot/dts/freescale/imx8mm-venice-gw700x.dtsi | 24 +-
.../boot/dts/freescale/imx8mm-venice-gw7901.dts | 8 +-
.../boot/dts/freescale/imx8mm-venice-gw7902.dts | 10 +-
.../boot/dts/freescale/imx8mm-venice-gw7903.dts | 6 +-
arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 10 +-
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 16 +-
.../dts/freescale/imx8mn-beacon-baseboard.dtsi | 4 +-
arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi | 45 +-
.../boot/dts/freescale/imx8mn-var-som-symphony.dts | 6 +-
.../boot/dts/freescale/imx8mn-venice-gw7902.dts | 8 +-
arch/arm64/boot/dts/freescale/imx8mn.dtsi | 13 +-
.../arm64/boot/dts/freescale/imx8mp-dhcom-pdk2.dts | 163 +
.../arm64/boot/dts/freescale/imx8mp-dhcom-som.dtsi | 1030 +
arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 126 +-
.../dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts | 40 +-
.../dts/freescale/imx8mp-phyboard-pollux-rdk.dts | 48 +-
.../dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts | 702 +
.../arm64/boot/dts/freescale/imx8mp-tqma8mpql.dtsi | 284 +
.../boot/dts/freescale/imx8mp-venice-gw74xx.dts | 116 +-
arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 10 +-
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 33 +-
arch/arm64/boot/dts/freescale/imx8mq-evk.dts | 43 +
.../boot/dts/freescale/imx8mq-librem5-devkit.dts | 6 +-
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi | 4 +-
arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts | 6 +-
.../arm64/boot/dts/freescale/imx8mq-zii-ultra.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 15 +-
arch/arm64/boot/dts/freescale/imx8qm.dtsi | 4 +-
.../dts/freescale/imx8qxp-colibri-eval-v3.dtsi | 8 +-
arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 14 +-
arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 14 +-
arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts | 114 +
arch/arm64/boot/dts/freescale/imx93-pinfunc.h | 623 +
arch/arm64/boot/dts/freescale/imx93.dtsi | 334 +
arch/arm64/boot/dts/freescale/mba8mx.dtsi | 8 +-
arch/arm64/boot/dts/freescale/s32g2.dtsi | 2 +-
arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts | 14 +-
arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 8 +-
arch/arm64/boot/dts/hisilicon/hi3670.dtsi | 2 +-
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 12 +-
arch/arm64/boot/dts/hisilicon/hip05-d02.dts | 6 +-
arch/arm64/boot/dts/hisilicon/hip06.dtsi | 6 +-
arch/arm64/boot/dts/hisilicon/hip07.dtsi | 6 +-
arch/arm64/boot/dts/intel/socfpga_agilex.dtsi | 14 +-
arch/arm64/boot/dts/lg/lg1312.dtsi | 38 +-
arch/arm64/boot/dts/lg/lg1313.dtsi | 38 +-
arch/arm64/boot/dts/marvell/Makefile | 1 +
arch/arm64/boot/dts/marvell/ac5-98dx25xx.dtsi | 291 +
arch/arm64/boot/dts/marvell/ac5-98dx35xx-rd.dts | 101 +
arch/arm64/boot/dts/marvell/ac5-98dx35xx.dtsi | 17 +
.../boot/dts/marvell/armada-3720-turris-mox.dts | 14 +-
arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts | 16 +-
.../boot/dts/marvell/armada-7040-mochabin.dts | 16 +-
.../dts/marvell/armada-8040-clearfog-gt-8k.dts | 8 +-
arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi | 24 +-
.../boot/dts/marvell/armada-8040-puzzle-m801.dts | 16 +-
arch/arm64/boot/dts/marvell/cn9130-crb.dtsi | 6 +-
arch/arm64/boot/dts/marvell/cn9130-db.dtsi | 10 +-
arch/arm64/boot/dts/marvell/cn9131-db.dtsi | 8 +-
arch/arm64/boot/dts/marvell/cn9132-db.dtsi | 8 +-
arch/arm64/boot/dts/mediatek/Makefile | 5 +
arch/arm64/boot/dts/mediatek/mt2712-evb.dts | 2 +-
arch/arm64/boot/dts/mediatek/mt2712e.dtsi | 2 +
arch/arm64/boot/dts/mediatek/mt6755.dtsi | 9 +-
arch/arm64/boot/dts/mediatek/mt6795.dtsi | 269 +-
.../boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 21 +-
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 13 +-
arch/arm64/boot/dts/mediatek/mt7622.dtsi | 10 +-
arch/arm64/boot/dts/mediatek/mt7986a.dtsi | 4 +-
.../boot/dts/mediatek/mt8173-elm-hana-rev7.dts | 6 +-
arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi | 24 +-
arch/arm64/boot/dts/mediatek/mt8173-evb.dts | 12 +-
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 25 +-
arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 38 +-
.../boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi | 4 +-
.../boot/dts/mediatek/mt8183-kukui-kakadu.dtsi | 2 +-
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 13 +-
arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts | 2 +-
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 315 +-
.../boot/dts/mediatek/mt8192-asurada-hayato-r1.dts | 47 +
.../dts/mediatek/mt8192-asurada-spherion-r0.dts | 62 +
arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi | 959 +
arch/arm64/boot/dts/mediatek/mt8192.dtsi | 29 +-
.../boot/dts/mediatek/mt8195-cherry-tomato-r1.dts | 15 +
.../boot/dts/mediatek/mt8195-cherry-tomato-r2.dts | 35 +
.../boot/dts/mediatek/mt8195-cherry-tomato-r3.dts | 36 +
arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi | 702 +
arch/arm64/boot/dts/mediatek/mt8195-evb.dts | 8 +-
arch/arm64/boot/dts/mediatek/mt8195.dtsi | 76 +-
arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi | 4 +-
.../boot/dts/microchip/sparx5_pcb134_board.dtsi | 200 +-
.../boot/dts/microchip/sparx5_pcb135_board.dtsi | 48 +-
arch/arm64/boot/dts/nuvoton/Makefile | 2 +
.../boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi | 170 +
.../arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts | 30 +
arch/arm64/boot/dts/nuvoton/nuvoton-npcm845.dtsi | 76 +
arch/arm64/boot/dts/nvidia/tegra132-norrin.dts | 4 +-
arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | 49 +-
.../dts/nvidia/tegra186-p3509-0000+p3636-0001.dts | 6 +-
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 37 +-
arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi | 2 +-
arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts | 47 +-
.../arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi | 47 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 113 +-
arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts | 84 +
arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi | 6 +-
arch/arm64/boot/dts/nvidia/tegra210-p2894.dtsi | 2 +-
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 88 +-
arch/arm64/boot/dts/nvidia/tegra210-smaug.dts | 10 +-
arch/arm64/boot/dts/nvidia/tegra210.dtsi | 42 +-
.../dts/nvidia/tegra234-p3737-0000+p3701-0000.dts | 49 +-
arch/arm64/boot/dts/nvidia/tegra234.dtsi | 177 +
arch/arm64/boot/dts/qcom/Makefile | 29 +-
arch/arm64/boot/dts/qcom/apq8016-sbc.dts | 36 +-
arch/arm64/boot/dts/qcom/apq8096-db820c.dts | 91 +-
arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts | 6 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 41 +-
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 3 -
arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi | 5 -
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 54 +-
.../boot/dts/qcom/msm8916-alcatel-idol347.dts | 2 +-
arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dts | 4 +-
arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts | 2 +-
.../boot/dts/qcom/msm8916-longcheer-l8150.dts | 2 +-
.../boot/dts/qcom/msm8916-longcheer-l8910.dts | 2 +-
.../dts/qcom/msm8916-samsung-a2015-common.dtsi | 16 +-
.../boot/dts/qcom/msm8916-samsung-a3u-eur.dts | 8 -
.../boot/dts/qcom/msm8916-samsung-a5u-eur.dts | 8 -
arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts | 4 +-
.../boot/dts/qcom/msm8916-samsung-serranove.dts | 6 +-
.../boot/dts/qcom/msm8916-wingtech-wt88047.dts | 2 +-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 28 +-
arch/arm64/boot/dts/qcom/msm8953.dtsi | 6 +-
arch/arm64/boot/dts/qcom/msm8992-lg-bullhead.dtsi | 2 +-
arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts | 8 +-
.../boot/dts/qcom/msm8994-msft-lumia-octagon.dtsi | 29 +-
.../dts/qcom/msm8994-sony-xperia-kitakami.dtsi | 12 +-
arch/arm64/boot/dts/qcom/msm8994.dtsi | 25 +-
.../qcom/msm8996-pmi8996-sony-xperia-tone-dora.dts | 11 -
.../msm8996-pmi8996-sony-xperia-tone-kagura.dts | 11 -
.../msm8996-pmi8996-sony-xperia-tone-keyaki.dts | 11 -
.../boot/dts/qcom/msm8996-sony-xperia-tone.dtsi | 77 +-
.../arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi | 14 +-
arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts | 4 +-
.../arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts | 414 +
.../arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts | 2 +-
arch/arm64/boot/dts/qcom/msm8996.dtsi | 297 +-
.../boot/dts/qcom/msm8998-asus-novago-tp370ql.dts | 23 +-
arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi | 138 +-
arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dts | 460 +-
arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dts | 9 +-
.../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 9 +-
arch/arm64/boot/dts/qcom/msm8998-mtp.dts | 443 +-
arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi | 421 -
.../boot/dts/qcom/msm8998-oneplus-cheeseburger.dts | 2 +-
.../boot/dts/qcom/msm8998-oneplus-common.dtsi | 88 +-
.../dts/qcom/msm8998-sony-xperia-yoshino-lilac.dts | 4 +
.../dts/qcom/msm8998-sony-xperia-yoshino-maple.dts | 2 +-
.../qcom/msm8998-sony-xperia-yoshino-poplar.dts | 10 +-
.../boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi | 120 +-
arch/arm64/boot/dts/qcom/msm8998.dtsi | 87 +-
arch/arm64/boot/dts/qcom/pm6350.dtsi | 3 +-
arch/arm64/boot/dts/qcom/pm660.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pm660l.dtsi | 8 +-
arch/arm64/boot/dts/qcom/pm8005.dtsi | 4 +
arch/arm64/boot/dts/qcom/pm8009.dtsi | 3 +-
arch/arm64/boot/dts/qcom/pm8150.dtsi | 3 +-
arch/arm64/boot/dts/qcom/pm8150b.dtsi | 13 +-
arch/arm64/boot/dts/qcom/pm8150l.dtsi | 14 +-
arch/arm64/boot/dts/qcom/pm8350.dtsi | 3 +-
arch/arm64/boot/dts/qcom/pm8350b.dtsi | 3 +-
arch/arm64/boot/dts/qcom/pm8916.dtsi | 17 +-
arch/arm64/boot/dts/qcom/pm8994.dtsi | 10 +
arch/arm64/boot/dts/qcom/pmi8994.dtsi | 22 +-
arch/arm64/boot/dts/qcom/pmi8998.dtsi | 13 +-
arch/arm64/boot/dts/qcom/pmm8155au_1.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pmm8155au_2.dtsi | 2 +-
arch/arm64/boot/dts/qcom/pmr735b.dtsi | 3 +-
arch/arm64/boot/dts/qcom/pms405.dtsi | 17 +-
arch/arm64/boot/dts/qcom/qcs404-evb.dtsi | 4 +-
arch/arm64/boot/dts/qcom/qcs404.dtsi | 39 +-
arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 54 +-
arch/arm64/boot/dts/qcom/sa8295p-adp.dts | 389 +
arch/arm64/boot/dts/qcom/sa8540p.dtsi | 133 +
arch/arm64/boot/dts/qcom/sc7180-idp.dts | 5 +-
.../arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi | 4 +
.../boot/dts/qcom/sc7180-trogdor-homestar.dtsi | 8 +-
.../boot/dts/qcom/sc7180-trogdor-kingoftown-r0.dts | 44 +
.../boot/dts/qcom/sc7180-trogdor-kingoftown-r1.dts | 17 +
.../boot/dts/qcom/sc7180-trogdor-kingoftown.dtsi | 225 +
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor.dtsi | 3 +-
.../dts/qcom/sc7180-trogdor-mrbland-rev0-auo.dts | 22 +
.../dts/qcom/sc7180-trogdor-mrbland-rev0-boe.dts | 22 +
.../boot/dts/qcom/sc7180-trogdor-mrbland-rev0.dtsi | 53 +
.../dts/qcom/sc7180-trogdor-mrbland-rev1-auo.dts | 22 +
.../dts/qcom/sc7180-trogdor-mrbland-rev1-boe.dts | 24 +
.../boot/dts/qcom/sc7180-trogdor-mrbland.dtsi | 350 +
.../dts/qcom/sc7180-trogdor-pazquel-lte-parade.dts | 22 +
.../dts/qcom/sc7180-trogdor-pazquel-lte-ti.dts | 22 +
.../dts/qcom/sc7180-trogdor-pazquel-parade.dts | 17 +
.../boot/dts/qcom/sc7180-trogdor-pazquel-ti.dts | 17 +
.../boot/dts/qcom/sc7180-trogdor-pazquel.dtsi | 222 +
.../arm64/boot/dts/qcom/sc7180-trogdor-pompom.dtsi | 2 +
.../qcom/sc7180-trogdor-quackingstick-r0-lte.dts | 38 +
.../dts/qcom/sc7180-trogdor-quackingstick-r0.dts | 26 +
.../dts/qcom/sc7180-trogdor-quackingstick.dtsi | 324 +
arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts | 2 +
.../qcom/sc7180-trogdor-wormdingler-rev0-boe.dts | 22 +
.../qcom/sc7180-trogdor-wormdingler-rev0-inx.dts | 22 +
.../dts/qcom/sc7180-trogdor-wormdingler-rev0.dtsi | 53 +
...sc7180-trogdor-wormdingler-rev1-boe-rt5682s.dts | 29 +
.../qcom/sc7180-trogdor-wormdingler-rev1-boe.dts | 28 +
...sc7180-trogdor-wormdingler-rev1-inx-rt5682s.dts | 29 +
.../qcom/sc7180-trogdor-wormdingler-rev1-inx.dts | 22 +
.../boot/dts/qcom/sc7180-trogdor-wormdingler.dtsi | 412 +
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 8 +-
arch/arm64/boot/dts/qcom/sc7180.dtsi | 84 +-
arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi | 16 +
.../dts/qcom/sc7280-herobrine-audio-wcd9385.dtsi | 84 +
arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts | 12 +
.../dts/qcom/sc7280-herobrine-herobrine-r1.dts | 11 +
.../boot/dts/qcom/sc7280-herobrine-villager-r0.dts | 29 +
arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 20 +-
arch/arm64/boot/dts/qcom/sc7280-idp.dtsi | 91 +-
arch/arm64/boot/dts/qcom/sc7280-qcard.dtsi | 14 +-
arch/arm64/boot/dts/qcom/sc7280.dtsi | 275 +-
arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 427 +
.../dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 386 +
arch/arm64/boot/dts/qcom/sc8280xp-pmics.dtsi | 109 +
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 2147 +
.../arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts | 461 +
.../boot/dts/qcom/sdm630-sony-xperia-nile.dtsi | 61 +-
arch/arm64/boot/dts/qcom/sdm630.dtsi | 332 +-
arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts | 2 +-
.../dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts | 2 +-
.../arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts | 28 +-
arch/arm64/boot/dts/qcom/sdm660.dtsi | 5 +-
arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 136 +-
arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 68 +-
arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi | 614 +
arch/arm64/boot/dts/qcom/sdm845-lg-judyln.dts | 68 +
arch/arm64/boot/dts/qcom/sdm845-lg-judyp.dts | 44 +
.../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 8 +-
arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts | 35 +-
.../dts/qcom/sdm845-sony-xperia-tama-akatsuki.dts | 5 +-
.../boot/dts/qcom/sdm845-sony-xperia-tama.dtsi | 2 +-
.../boot/dts/qcom/sdm845-xiaomi-beryllium.dts | 8 +-
arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dts | 762 +
arch/arm64/boot/dts/qcom/sdm845.dtsi | 335 +-
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 10 +-
arch/arm64/boot/dts/qcom/sdm850-samsung-w737.dts | 4 +-
arch/arm64/boot/dts/qcom/sdm850.dtsi | 1 -
.../dts/qcom/sm6125-sony-xperia-seine-pdx201.dts | 40 +-
arch/arm64/boot/dts/qcom/sm6125.dtsi | 40 +-
arch/arm64/boot/dts/qcom/sm6350.dtsi | 34 +-
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 4 +-
arch/arm64/boot/dts/qcom/sm8150-hdk.dts | 4 +-
.../boot/dts/qcom/sm8150-microsoft-surface-duo.dts | 4 +-
arch/arm64/boot/dts/qcom/sm8150.dtsi | 36 +-
arch/arm64/boot/dts/qcom/sm8250-hdk.dts | 4 +-
.../boot/dts/qcom/sm8250-sony-xperia-edo.dtsi | 2 +-
arch/arm64/boot/dts/qcom/sm8250.dtsi | 132 +-
.../dts/qcom/sm8350-microsoft-surface-duo2.dts | 2 -
.../boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi | 2 +-
arch/arm64/boot/dts/qcom/sm8350.dtsi | 168 +-
arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 2 -
arch/arm64/boot/dts/qcom/sm8450-qrd.dts | 2 -
arch/arm64/boot/dts/qcom/sm8450.dtsi | 90 +-
arch/arm64/boot/dts/renesas/Makefile | 3 +
.../boot/dts/renesas/beacon-renesom-baseboard.dtsi | 6 +-
.../arm64/boot/dts/renesas/beacon-renesom-som.dtsi | 4 +-
.../dts/renesas/draak-ebisu-panel-aa104xd12.dts | 36 +
arch/arm64/boot/dts/renesas/draak.dtsi | 2 +-
arch/arm64/boot/dts/renesas/ebisu.dtsi | 8 +-
arch/arm64/boot/dts/renesas/hihope-common.dtsi | 4 +-
arch/arm64/boot/dts/renesas/panel-aa104xd12.dtsi | 30 +
arch/arm64/boot/dts/renesas/r8a774c0.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77990.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 31 +-
.../boot/dts/renesas/r8a779f0-spider-cpu.dtsi | 13 +
arch/arm64/boot/dts/renesas/r8a779f0-spider.dts | 1 +
arch/arm64/boot/dts/renesas/r8a779f0.dtsi | 434 +-
arch/arm64/boot/dts/renesas/r8a779m8.dtsi | 5 +
arch/arm64/boot/dts/renesas/r9a07g043.dtsi | 21 +-
arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts | 6 -
arch/arm64/boot/dts/renesas/r9a07g054l2-smarc.dts | 2 +-
arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dts | 14 +
arch/arm64/boot/dts/renesas/r9a09g011.dtsi | 51 +
arch/arm64/boot/dts/renesas/rzg2l-smarc-som.dtsi | 4 +-
arch/arm64/boot/dts/renesas/rzg2lc-smarc-som.dtsi | 4 +-
arch/arm64/boot/dts/renesas/rzg2lc-smarc.dtsi | 2 +-
arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi | 23 +-
arch/arm64/boot/dts/renesas/rzg2ul-smarc.dtsi | 6 +
arch/arm64/boot/dts/renesas/salvator-common.dtsi | 8 +-
.../boot/dts/renesas/salvator-panel-aa104xd12.dts | 36 +
arch/arm64/boot/dts/renesas/ulcb-kf.dtsi | 14 +-
arch/arm64/boot/dts/renesas/ulcb.dtsi | 6 +-
arch/arm64/boot/dts/rockchip/Makefile | 1 +
arch/arm64/boot/dts/rockchip/px30.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3308-evb.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts | 253 +
arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts | 32 +-
arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts | 2 +-
.../boot/dts/rockchip/rk3368-orion-r68-meta.dts | 4 +-
arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3368-r88.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3368.dtsi | 6 +-
arch/arm64/boot/dts/rockchip/rk3399-evb.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 2 +-
.../boot/dts/rockchip/rk3399-gru-chromebook.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts | 2 +-
.../boot/dts/rockchip/rk3399-gru-scarlet.dtsi | 6 +-
.../boot/dts/rockchip/rk3399-khadas-edge.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts | 4 +-
arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts | 2 +-
.../boot/dts/rockchip/rk3399-pinebook-pro.dts | 4 +-
.../arm64/boot/dts/rockchip/rk3399-puma-haikou.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi | 72 +-
.../dts/rockchip/rk3399-sapphire-excavator.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399.dtsi | 6 +-
.../boot/dts/rockchip/rk3399pro-vmarc-som.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3566-pinenote.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts | 115 +
arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3566.dtsi | 4 +
arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 137 +
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 55 +
arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts | 55 +
arch/arm64/boot/dts/rockchip/rk3568.dtsi | 4 +
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 166 +
arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi | 8 +-
arch/arm64/boot/dts/sprd/sc9836.dtsi | 10 +-
arch/arm64/boot/dts/sprd/sc9863a.dtsi | 4 +-
arch/arm64/boot/dts/sprd/whale2.dtsi | 2 +-
arch/arm64/boot/dts/tesla/fsd-evb.dts | 4 +
arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi | 106 +-
arch/arm64/boot/dts/tesla/fsd-pinctrl.h | 33 +
arch/arm64/boot/dts/tesla/fsd.dtsi | 120 +
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 17 +-
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 11 +-
arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 6 +-
arch/arm64/boot/dts/ti/k3-am642-evm.dts | 2 +-
arch/arm64/boot/dts/ti/k3-am642-sk.dts | 16 +-
arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi | 4 +-
arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 14 +-
arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi | 4 +-
arch/arm64/boot/dts/ti/k3-am654-base-board.dts | 8 +-
arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi | 4 +-
.../boot/dts/ti/k3-j721e-common-proc-board.dts | 4 +-
arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi | 4 +-
arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi | 6 +-
arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi | 4 +-
arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 4 +
arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 4 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts | 2 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts | 2 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts | 2 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dts | 2 +-
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 26 +
arch/arm64/configs/defconfig | 85 +-
arch/arm64/crypto/Kconfig | 10 +-
arch/arm64/crypto/Makefile | 3 +
arch/arm64/crypto/aes-glue.c | 80 +-
arch/arm64/crypto/aes-modes.S | 349 +-
arch/arm64/crypto/aes-neon.S | 2 +-
arch/arm64/crypto/poly1305-glue.c | 2 +-
arch/arm64/crypto/polyval-ce-core.S | 361 +
arch/arm64/crypto/polyval-ce-glue.c | 191 +
arch/arm64/include/asm/archrandom.h | 112 +-
arch/arm64/include/asm/asm-extable.h | 79 +-
arch/arm64/include/asm/asm-uaccess.h | 12 +-
arch/arm64/include/asm/asm_pointer_auth.h | 4 +-
arch/arm64/include/asm/assembler.h | 35 +-
arch/arm64/include/asm/barrier.h | 12 +-
arch/arm64/include/asm/cache.h | 41 +-
arch/arm64/include/asm/cacheflush.h | 7 -
arch/arm64/include/asm/cpu.h | 1 +
arch/arm64/include/asm/cpu_ops.h | 9 -
arch/arm64/include/asm/cpufeature.h | 7 +-
arch/arm64/include/asm/cpuidle.h | 15 -
arch/arm64/include/asm/efi.h | 7 +-
arch/arm64/include/asm/el2_setup.h | 60 -
arch/arm64/include/asm/fixmap.h | 4 +-
arch/arm64/include/asm/hugetlb.h | 3 -
arch/arm64/include/asm/hwcap.h | 3 +-
arch/arm64/include/asm/insn.h | 3 +
arch/arm64/include/asm/io.h | 65 +-
arch/arm64/include/asm/kernel-pgtable.h | 18 +-
arch/arm64/include/asm/kexec.h | 18 +-
arch/arm64/include/asm/kvm_asm.h | 16 +
arch/arm64/include/asm/kvm_emulate.h | 11 +-
arch/arm64/include/asm/kvm_host.h | 210 +-
arch/arm64/include/asm/memory.h | 26 +
arch/arm64/include/asm/mmu_context.h | 16 +-
arch/arm64/include/asm/pci.h | 18 +-
arch/arm64/include/asm/pgtable-hwdef.h | 3 +-
arch/arm64/include/asm/pgtable-prot.h | 18 -
arch/arm64/include/asm/pgtable.h | 16 +
arch/arm64/include/asm/processor.h | 3 +-
arch/arm64/include/asm/stacktrace.h | 62 +-
arch/arm64/include/asm/stacktrace/common.h | 199 +
arch/arm64/include/asm/stacktrace/nvhe.h | 55 +
arch/arm64/include/asm/sysreg.h | 128 +-
arch/arm64/include/asm/uaccess.h | 94 +-
arch/arm64/include/asm/virt.h | 14 +-
arch/arm64/include/asm/xen/xen-ops.h | 2 +
arch/arm64/include/uapi/asm/hwcap.h | 4 +
arch/arm64/kernel/Makefile | 7 +-
arch/arm64/kernel/acpi.c | 2 +-
arch/arm64/kernel/acpi_numa.c | 2 +-
arch/arm64/kernel/alternative.c | 2 +-
arch/arm64/kernel/armv8_deprecated.c | 9 +-
arch/arm64/kernel/cpu_errata.c | 26 +-
arch/arm64/kernel/cpufeature.c | 389 +-
arch/arm64/kernel/cpuidle.c | 29 -
arch/arm64/kernel/cpuinfo.c | 51 +-
arch/arm64/kernel/entry-common.c | 14 +-
arch/arm64/kernel/entry-ftrace.S | 1 -
arch/arm64/kernel/entry.S | 53 +-
arch/arm64/kernel/fpsimd.c | 21 +-
arch/arm64/kernel/ftrace.c | 137 +-
arch/arm64/kernel/head.S | 525 +-
arch/arm64/kernel/hibernate.c | 5 -
arch/arm64/kernel/hyp-stub.S | 117 +-
arch/arm64/kernel/idreg-override.c | 93 +-
arch/arm64/kernel/image-vars.h | 59 +-
arch/arm64/kernel/jump_label.c | 11 -
arch/arm64/kernel/kaslr.c | 149 +-
arch/arm64/kernel/kexec_image.c | 11 +-
arch/arm64/kernel/kuser32.S | 1 +
arch/arm64/kernel/mte.c | 15 +-
arch/arm64/kernel/pi/Makefile | 33 +
arch/arm64/kernel/pi/kaslr_early.c | 112 +
arch/arm64/kernel/setup.c | 7 +-
arch/arm64/kernel/signal.c | 20 +-
arch/arm64/kernel/sigreturn32.S | 1 +
arch/arm64/kernel/sleep.S | 3 +-
arch/arm64/kernel/smp.c | 8 -
arch/arm64/kernel/stacktrace.c | 184 +-
arch/arm64/kernel/suspend.c | 2 +-
arch/arm64/kernel/topology.c | 14 -
arch/arm64/kernel/traps.c | 6 +-
arch/arm64/kernel/vdso/Makefile | 8 +-
arch/arm64/kernel/vdso/vdso.lds.S | 16 +-
arch/arm64/kernel/vdso32/Makefile | 1 +
arch/arm64/kernel/vdso32/vdso.lds.S | 27 +-
arch/arm64/kernel/vmlinux.lds.S | 22 +-
arch/arm64/kvm/Kconfig | 13 +
arch/arm64/kvm/Makefile | 2 +-
arch/arm64/kvm/arch_timer.c | 5 +-
arch/arm64/kvm/arm.c | 41 +-
arch/arm64/kvm/debug.c | 25 +-
arch/arm64/kvm/fpsimd.c | 37 +-
arch/arm64/kvm/handle_exit.c | 10 +-
arch/arm64/kvm/hyp/exception.c | 23 +-
arch/arm64/kvm/hyp/include/hyp/debug-sr.h | 6 +-
arch/arm64/kvm/hyp/include/hyp/switch.h | 24 +-
arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 4 +-
arch/arm64/kvm/hyp/include/nvhe/fixed_config.h | 32 +-
arch/arm64/kvm/hyp/nvhe/Makefile | 21 +-
arch/arm64/kvm/hyp/nvhe/debug-sr.c | 8 +-
arch/arm64/kvm/hyp/nvhe/host.S | 9 +-
arch/arm64/kvm/hyp/nvhe/mem_protect.c | 4 -
arch/arm64/kvm/hyp/nvhe/stacktrace.c | 160 +
arch/arm64/kvm/hyp/nvhe/switch.c | 14 +-
arch/arm64/kvm/hyp/nvhe/sys_regs.c | 58 +-
arch/arm64/kvm/hyp/vhe/switch.c | 6 +-
arch/arm64/kvm/hyp/vhe/sysreg-sr.c | 4 +-
arch/arm64/kvm/inject_fault.c | 17 +-
arch/arm64/kvm/mmu.c | 2 +-
arch/arm64/kvm/reset.c | 6 +-
arch/arm64/kvm/stacktrace.c | 218 +
arch/arm64/kvm/sys_regs.c | 308 +-
arch/arm64/kvm/sys_regs.h | 18 +-
arch/arm64/kvm/vgic-sys-reg-v3.c | 462 +-
arch/arm64/kvm/vgic/vgic-kvm-device.c | 342 +-
arch/arm64/kvm/vgic/vgic-mmio-v2.c | 4 +-
arch/arm64/kvm/vgic/vgic-mmio-v3.c | 50 +-
arch/arm64/kvm/vgic/vgic-mmio.c | 46 +-
arch/arm64/kvm/vgic/vgic-mmio.h | 7 +-
arch/arm64/kvm/vgic/vgic.h | 9 +-
arch/arm64/kvm/vmid.c | 2 +-
arch/arm64/lib/insn.c | 30 +-
arch/arm64/lib/mte.S | 2 +-
arch/arm64/mm/cache.S | 43 -
arch/arm64/mm/copypage.c | 9 -
arch/arm64/mm/dma-mapping.c | 26 +-
arch/arm64/mm/extable.c | 10 +-
arch/arm64/mm/fault.c | 5 +-
arch/arm64/mm/flush.c | 13 +-
arch/arm64/mm/hugetlbpage.c | 96 +-
arch/arm64/mm/init.c | 6 +-
arch/arm64/mm/ioremap.c | 90 +-
arch/arm64/mm/kasan_init.c | 4 +-
arch/arm64/mm/mmap.c | 21 +
arch/arm64/mm/mmu.c | 78 +-
arch/arm64/mm/mteswap.c | 9 -
arch/arm64/mm/proc.S | 188 +-
arch/arm64/net/bpf_jit.h | 7 +
arch/arm64/net/bpf_jit_comp.c | 729 +-
arch/arm64/tools/cpucaps | 2 +
arch/arm64/tools/gen-sysreg.awk | 4 +-
arch/arm64/tools/sysreg | 264 +
arch/csky/Kconfig | 31 +-
arch/csky/abiv1/inc/abi/string.h | 6 +
arch/csky/include/asm/Kbuild | 4 +-
arch/csky/include/asm/cmpxchg.h | 31 +-
arch/csky/include/asm/jump_label.h | 47 +
arch/csky/include/asm/pci.h | 23 +-
arch/csky/include/asm/pgalloc.h | 2 +-
arch/csky/include/asm/pgtable.h | 24 +-
arch/csky/include/asm/sections.h | 10 +
arch/csky/include/asm/spinlock.h | 12 +
arch/csky/include/asm/spinlock_types.h | 9 +
arch/csky/include/asm/tlb.h | 15 -
arch/csky/kernel/Makefile | 1 +
arch/csky/kernel/entry.S | 8 +-
arch/csky/kernel/jump_label.c | 54 +
arch/csky/kernel/probes/kprobes.c | 4 +
arch/csky/kernel/setup.c | 4 +-
arch/csky/kernel/smp.c | 5 -
arch/csky/kernel/vmlinux.lds.S | 15 +-
arch/csky/mm/asid.c | 5 +-
arch/csky/mm/fault.c | 4 +
arch/csky/mm/init.c | 20 +
arch/hexagon/include/asm/bitops.h | 24 +-
arch/hexagon/include/asm/pgtable.h | 27 -
arch/hexagon/kernel/smp.c | 5 -
arch/hexagon/mm/init.c | 42 +
arch/hexagon/mm/vm_fault.c | 4 +
arch/ia64/Kconfig | 1 -
arch/ia64/configs/bigsur_defconfig | 1 -
arch/ia64/configs/generic_defconfig | 1 -
arch/ia64/configs/gensparse_defconfig | 1 -
arch/ia64/configs/tiger_defconfig | 1 -
arch/ia64/configs/zx1_defconfig | 1 -
arch/ia64/include/asm/bitops.h | 42 +-
arch/ia64/include/asm/dma.h | 2 -
arch/ia64/include/asm/io.h | 8 -
arch/ia64/include/asm/mmu_context.h | 5 +-
arch/ia64/include/asm/pci.h | 6 -
arch/ia64/include/asm/pgtable.h | 18 -
arch/ia64/include/asm/processor.h | 2 +-
arch/ia64/include/uapi/asm/cmpxchg.h | 28 +-
arch/ia64/kernel/iosapic.c | 2 +-
arch/ia64/kernel/irq.c | 4 +-
arch/ia64/kernel/msi_ia64.c | 4 +-
arch/ia64/kernel/smp.c | 6 -
arch/ia64/mm/fault.c | 4 +
arch/ia64/mm/init.c | 28 +-
arch/loongarch/Kconfig | 28 +-
arch/loongarch/Kconfig.debug | 29 +
arch/loongarch/Makefile | 2 +
arch/loongarch/configs/loongson3_defconfig | 34 +-
arch/loongarch/include/asm/acpi.h | 142 +
arch/loongarch/include/asm/asmmacro.h | 12 -
arch/loongarch/include/asm/atomic.h | 37 +-
arch/loongarch/include/asm/barrier.h | 4 +-
arch/loongarch/include/asm/bootinfo.h | 2 +-
arch/loongarch/include/asm/branch.h | 3 +-
arch/loongarch/include/asm/cmpxchg.h | 4 +-
arch/loongarch/include/asm/compiler.h | 15 -
arch/loongarch/include/asm/dma.h | 11 +
arch/loongarch/include/asm/efi.h | 16 +-
arch/loongarch/include/asm/elf.h | 2 -
arch/loongarch/include/asm/fpregdef.h | 1 -
arch/loongarch/include/asm/futex.h | 11 +-
arch/loongarch/include/asm/hardirq.h | 2 +-
arch/loongarch/include/asm/inst.h | 52 +
arch/loongarch/include/asm/irq.h | 45 +-
arch/loongarch/include/asm/irqflags.h | 1 -
arch/loongarch/include/asm/local.h | 1 -
arch/loongarch/include/asm/loongson.h | 16 +-
arch/loongarch/include/asm/page.h | 3 +-
arch/loongarch/include/asm/pci.h | 25 +
arch/loongarch/include/asm/percpu.h | 1 +
arch/loongarch/include/asm/pgalloc.h | 6 +-
arch/loongarch/include/asm/pgtable-bits.h | 19 -
arch/loongarch/include/asm/pgtable.h | 37 +-
arch/loongarch/include/asm/processor.h | 11 +-
arch/loongarch/include/asm/smp.h | 23 +-
arch/loongarch/include/asm/stacktrace.h | 32 +-
arch/loongarch/include/asm/switch_to.h | 14 +-
arch/loongarch/include/asm/thread_info.h | 4 +-
arch/loongarch/include/asm/timex.h | 7 -
arch/loongarch/include/asm/tlb.h | 10 -
arch/loongarch/include/asm/uaccess.h | 6 +-
arch/loongarch/include/asm/unwind.h | 42 +
arch/loongarch/include/asm/vdso.h | 1 +
arch/loongarch/include/asm/vdso/vdso.h | 15 +-
arch/loongarch/kernel/Makefile | 4 +
arch/loongarch/kernel/acpi.c | 107 +-
arch/loongarch/kernel/asm-offsets.c | 9 +-
arch/loongarch/kernel/cacheinfo.c | 10 +-
arch/loongarch/kernel/cpu-probe.c | 2 +-
arch/loongarch/kernel/entry.S | 4 +-
arch/loongarch/kernel/env.c | 20 -
arch/loongarch/kernel/fpu.S | 184 +-
arch/loongarch/kernel/genex.S | 12 +-
arch/loongarch/kernel/head.S | 23 +-
arch/loongarch/kernel/irq.c | 65 +-
arch/loongarch/kernel/numa.c | 1 -
arch/loongarch/kernel/proc.c | 2 +-
arch/loongarch/kernel/process.c | 104 +-
arch/loongarch/kernel/ptrace.c | 12 +-
arch/loongarch/kernel/reset.c | 1 -
arch/loongarch/kernel/setup.c | 7 +-
arch/loongarch/kernel/smp.c | 120 +-
arch/loongarch/kernel/stacktrace.c | 78 +
arch/loongarch/kernel/switch.S | 6 +-
arch/loongarch/kernel/time.c | 16 +-
arch/loongarch/kernel/traps.c | 27 +-
arch/loongarch/kernel/unwind_guess.c | 67 +
arch/loongarch/kernel/unwind_prologue.c | 176 +
arch/loongarch/kernel/vdso.c | 25 +-
arch/loongarch/kernel/vmlinux.lds.S | 2 +
arch/loongarch/lib/clear_user.S | 2 +-
arch/loongarch/lib/copy_user.S | 2 +-
arch/loongarch/lib/delay.c | 1 -
arch/loongarch/mm/cache.c | 46 +
arch/loongarch/mm/page.S | 118 +-
arch/loongarch/mm/pgtable.c | 2 +-
arch/loongarch/mm/tlb.c | 7 +-
arch/loongarch/mm/tlbex.S | 104 +-
arch/loongarch/pci/acpi.c | 175 +
arch/loongarch/pci/pci.c | 101 +
arch/loongarch/vdso/Makefile | 3 +-
arch/loongarch/vdso/vdso.lds.S | 1 +
arch/loongarch/vdso/vgetcpu.c | 43 +
arch/m68k/Kconfig | 1 -
arch/m68k/Kconfig.cpu | 7 +-
arch/m68k/Kconfig.debug | 6 +-
arch/m68k/Kconfig.machine | 5 +-
arch/m68k/coldfire/device.c | 6 +-
arch/m68k/coldfire/intc-2.c | 2 +-
arch/m68k/coldfire/m523x.c | 2 +-
arch/m68k/configs/amiga_defconfig | 14 +-
arch/m68k/configs/apollo_defconfig | 14 +-
arch/m68k/configs/atari_defconfig | 14 +-
arch/m68k/configs/bvme6000_defconfig | 14 +-
arch/m68k/configs/hp300_defconfig | 14 +-
arch/m68k/configs/mac_defconfig | 14 +-
arch/m68k/configs/multi_defconfig | 14 +-
arch/m68k/configs/mvme147_defconfig | 14 +-
arch/m68k/configs/mvme16x_defconfig | 14 +-
arch/m68k/configs/q40_defconfig | 14 +-
arch/m68k/configs/sun3_defconfig | 14 +-
arch/m68k/configs/sun3x_defconfig | 14 +-
arch/m68k/emu/nfblock.c | 4 +-
arch/m68k/include/asm/bitops.h | 51 +-
arch/m68k/include/asm/dma.h | 6 -
arch/m68k/include/asm/mcf_pgtable.h | 59 -
arch/m68k/include/asm/motorola_pgtable.h | 29 -
arch/m68k/include/asm/pci.h | 2 -
arch/m68k/include/asm/processor.h | 1 +
arch/m68k/include/asm/sun3_pgtable.h | 23 -
arch/m68k/include/asm/virtconvert.h | 4 +-
arch/m68k/include/uapi/asm/bootinfo-virt.h | 8 +
arch/m68k/include/uapi/asm/bootinfo.h | 4 +-
arch/m68k/kernel/traps.c | 1 +
arch/m68k/mac/iop.c | 4 +-
arch/m68k/mac/macints.c | 35 +-
arch/m68k/mm/fault.c | 4 +
arch/m68k/mm/mcfmmu.c | 55 +
arch/m68k/mm/motorola.c | 29 +
arch/m68k/mm/sun3mmu.c | 20 +
arch/m68k/q40/README | 5 +-
arch/m68k/q40/q40ints.c | 2 +-
arch/m68k/sun3/mmu_emu.c | 11 +-
arch/m68k/virt/config.c | 11 +
arch/m68k/virt/ints.c | 3 +-
arch/m68k/virt/platform.c | 58 +-
arch/microblaze/Kconfig | 2 -
arch/microblaze/include/asm/dma.h | 6 -
arch/microblaze/include/asm/io.h | 2 -
arch/microblaze/include/asm/pgtable.h | 17 -
arch/microblaze/kernel/entry.S | 2 +-
arch/microblaze/mm/fault.c | 4 +
arch/microblaze/mm/init.c | 20 +
arch/mips/Kbuild.platforms | 1 -
arch/mips/Kconfig | 27 +-
arch/mips/Makefile | 1 -
arch/mips/alchemy/devboards/pm.c | 2 +-
arch/mips/ath79/early_printk.c | 17 +-
arch/mips/bcm47xx/board.c | 2 +
arch/mips/bcm47xx/buttons.c | 10 +
arch/mips/bcm47xx/leds.c | 11 +
arch/mips/bcm47xx/prom.c | 2 +-
arch/mips/bcm47xx/workarounds.c | 1 +
arch/mips/bmips/setup.c | 14 +-
arch/mips/boot/dts/img/pistachio_marduk.dts | 4 +-
arch/mips/boot/dts/ingenic/ci20.dts | 2 +-
arch/mips/boot/dts/ingenic/gcw0.dts | 31 +-
arch/mips/boot/dts/ingenic/rs90.dts | 18 +-
arch/mips/boot/dts/ingenic/x1000.dtsi | 5 +-
arch/mips/boot/dts/ingenic/x1830.dtsi | 5 +-
arch/mips/boot/dts/mscc/ocelot.dtsi | 9 +-
arch/mips/boot/dts/pic32/pic32mzda_sk.dts | 9 +-
arch/mips/boot/dts/qca/ar9132_tl_wr1043nd_v1.dts | 6 +-
arch/mips/boot/dts/qca/ar9331_dpt_module.dts | 4 +-
arch/mips/boot/dts/qca/ar9331_dragino_ms14.dts | 6 +-
arch/mips/boot/dts/qca/ar9331_omega.dts | 4 +-
.../dts/qca/ar9331_openembed_som9331_board.dts | 4 +-
arch/mips/boot/dts/qca/ar9331_tl_mr3020.dts | 8 +-
.../dts/ralink/gardena_smart_gateway_mt7688.dts | 2 +-
arch/mips/boot/dts/ralink/mt7621-gnubee-gb-pc1.dts | 2 +-
arch/mips/boot/dts/ralink/mt7621-gnubee-gb-pc2.dts | 2 +-
arch/mips/cavium-octeon/Kconfig | 12 +
arch/mips/cavium-octeon/executive/cvmx-cmd-queue.c | 21 +-
.../cavium-octeon/executive/cvmx-helper-board.c | 4 +-
arch/mips/cavium-octeon/octeon-irq.c | 4 +-
arch/mips/cavium-octeon/octeon-platform.c | 3 +-
arch/mips/cavium-octeon/setup.c | 38 +-
arch/mips/configs/capcella_defconfig | 91 -
arch/mips/configs/cavium_octeon_defconfig | 2 +-
arch/mips/configs/e55_defconfig | 37 -
arch/mips/configs/mpc30x_defconfig | 53 -
arch/mips/configs/tb0219_defconfig | 76 -
arch/mips/configs/tb0226_defconfig | 71 -
arch/mips/configs/tb0287_defconfig | 84 -
arch/mips/configs/workpad_defconfig | 67 -
arch/mips/fw/cfe/cfe_api.c | 68 +-
arch/mips/generic/board-ranchu.c | 1 +
arch/mips/include/asm/cpu-type.h | 11 -
arch/mips/include/asm/cpu.h | 3 +-
arch/mips/include/asm/dma.h | 8 -
arch/mips/include/asm/fw/cfe/cfe_api.h | 2 +
arch/mips/include/asm/io.h | 11 +-
arch/mips/include/asm/jump_label.h | 2 +
arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 1 +
arch/mips/include/asm/mach-loongson64/irq.h | 3 +-
arch/mips/include/asm/mach-vr41xx/irq.h | 9 -
arch/mips/include/asm/mipsregs.h | 14 -
arch/mips/include/asm/octeon/cvmx-helper-board.h | 12 +-
arch/mips/include/asm/pci.h | 6 -
arch/mips/include/asm/pgalloc.h | 8 +-
arch/mips/include/asm/pgtable-32.h | 24 +-
arch/mips/include/asm/pgtable-64.h | 66 +-
arch/mips/include/asm/pgtable.h | 22 -
arch/mips/include/asm/vermagic.h | 2 -
arch/mips/include/asm/vr41xx/capcella.h | 30 -
arch/mips/include/asm/vr41xx/giu.h | 41 -
arch/mips/include/asm/vr41xx/irq.h | 97 -
arch/mips/include/asm/vr41xx/mpc30x.h | 24 -
arch/mips/include/asm/vr41xx/pci.h | 77 -
arch/mips/include/asm/vr41xx/siu.h | 45 -
arch/mips/include/asm/vr41xx/tb0219.h | 29 -
arch/mips/include/asm/vr41xx/tb0226.h | 30 -
arch/mips/include/asm/vr41xx/tb0287.h | 30 -
arch/mips/include/asm/vr41xx/vr41xx.h | 148 -
arch/mips/include/uapi/asm/ucontext.h | 2 +-
arch/mips/kernel/asm-offsets.c | 5 -
arch/mips/kernel/cpu-probe.c | 40 -
arch/mips/kernel/jump_label.c | 19 +
arch/mips/kernel/mips-mt.c | 4 +-
arch/mips/kernel/module.c | 5 +-
arch/mips/kernel/proc.c | 2 +-
arch/mips/kernel/vdso.c | 2 +-
arch/mips/kvm/mmu.c | 2 +-
arch/mips/lantiq/falcon/sysctrl.c | 6 +
arch/mips/lantiq/irq.c | 1 +
arch/mips/lantiq/xway/sysctrl.c | 4 +
arch/mips/lib/dump_tlb.c | 8 -
arch/mips/loongson64/numa.c | 1 -
arch/mips/math-emu/dsemul.c | 9 +-
arch/mips/mm/c-r4k.c | 44 -
arch/mips/mm/cache.c | 3 +
arch/mips/mm/context.c | 5 +-
arch/mips/mm/fault.c | 4 +
arch/mips/mm/pgtable.c | 2 +-
arch/mips/mm/physaddr.c | 14 +-
arch/mips/mm/tlbex.c | 53 +-
arch/mips/mti-malta/malta-time.c | 2 +
arch/mips/pci/Makefile | 6 -
arch/mips/pci/fixup-capcella.c | 37 -
arch/mips/pci/fixup-lemote2f.c | 2 +-
arch/mips/pci/fixup-mpc30x.c | 36 -
arch/mips/pci/fixup-tb0219.c | 38 -
arch/mips/pci/fixup-tb0226.c | 73 -
arch/mips/pci/fixup-tb0287.c | 52 -
arch/mips/pci/msi-octeon.c | 16 +-
arch/mips/pci/ops-vr41xx.c | 113 -
arch/mips/pci/pci-vr41xx.c | 309 -
arch/mips/pci/pci-vr41xx.h | 141 -
arch/mips/pic32/pic32mzda/init.c | 7 +-
arch/mips/pic32/pic32mzda/time.c | 3 +
arch/mips/ralink/of.c | 2 +
arch/mips/sgi-ip22/ip22-gio.c | 2 +-
arch/mips/vr41xx/Kconfig | 104 -
arch/mips/vr41xx/Makefile | 5 -
arch/mips/vr41xx/Platform | 29 -
arch/mips/vr41xx/casio-e55/Makefile | 6 -
arch/mips/vr41xx/casio-e55/setup.c | 27 -
arch/mips/vr41xx/common/Makefile | 6 -
arch/mips/vr41xx/common/bcu.c | 210 -
arch/mips/vr41xx/common/cmu.c | 242 -
arch/mips/vr41xx/common/giu.c | 110 -
arch/mips/vr41xx/common/icu.c | 716 -
arch/mips/vr41xx/common/init.c | 60 -
arch/mips/vr41xx/common/irq.c | 106 -
arch/mips/vr41xx/common/pmu.c | 123 -
arch/mips/vr41xx/common/rtc.c | 105 -
arch/mips/vr41xx/common/siu.c | 142 -
arch/mips/vr41xx/common/type.c | 11 -
arch/mips/vr41xx/ibm-workpad/Makefile | 6 -
arch/mips/vr41xx/ibm-workpad/setup.c | 27 -
arch/nios2/include/asm/pgtable.h | 23 +-
arch/nios2/mm/fault.c | 4 +
arch/nios2/mm/init.c | 25 +-
arch/nios2/mm/pgtable.c | 2 +-
arch/openrisc/Kconfig | 5 +-
arch/openrisc/configs/virt_defconfig | 108 +
arch/openrisc/include/asm/Kbuild | 1 +
arch/openrisc/include/asm/io.h | 4 +-
arch/openrisc/include/asm/pgtable.h | 18 -
arch/openrisc/kernel/smp.c | 6 -
arch/openrisc/kernel/unwinder.c | 2 +-
arch/openrisc/mm/fault.c | 4 +
arch/openrisc/mm/init.c | 20 +
arch/openrisc/mm/ioremap.c | 2 +-
arch/parisc/Kconfig | 2 +-
arch/parisc/include/asm/cacheflush.h | 6 +-
arch/parisc/include/asm/dma.h | 6 -
arch/parisc/include/asm/fb.h | 2 +-
arch/parisc/include/asm/floppy.h | 4 +-
arch/parisc/include/asm/io.h | 2 -
arch/parisc/include/asm/pci.h | 5 -
arch/parisc/include/asm/pgalloc.h | 6 +-
arch/parisc/include/asm/pgtable.h | 26 +-
arch/parisc/kernel/asm-offsets.c | 5 +
arch/parisc/kernel/cache.c | 10 +-
arch/parisc/kernel/drivers.c | 9 +-
arch/parisc/kernel/hardware.c | 11 +-
arch/parisc/kernel/irq.c | 4 +-
arch/parisc/kernel/jump_label.c | 11 -
arch/parisc/kernel/pci-dma.c | 4 +-
arch/parisc/kernel/smp.c | 7 -
arch/parisc/kernel/syscalls/syscall.tbl | 2 +-
arch/parisc/kernel/unaligned.c | 2 +-
arch/parisc/math-emu/decode_exc.c | 2 +-
arch/parisc/mm/fault.c | 6 +-
arch/parisc/mm/init.c | 22 +-
arch/powerpc/Kconfig | 37 +-
arch/powerpc/Kconfig.debug | 4 +-
arch/powerpc/Makefile | 34 +-
arch/powerpc/boot/dts/fsl/p2020si-post.dtsi | 3 +
arch/powerpc/boot/dts/turris1x.dts | 483 +
arch/powerpc/configs/44x/akebono_defconfig | 2 +-
arch/powerpc/configs/44x/currituck_defconfig | 2 +-
arch/powerpc/configs/44x/fsp2_defconfig | 2 +-
arch/powerpc/configs/44x/iss476-smp_defconfig | 2 +-
arch/powerpc/configs/44x/warp_defconfig | 2 +-
arch/powerpc/configs/52xx/lite5200b_defconfig | 2 +-
arch/powerpc/configs/52xx/motionpro_defconfig | 2 +-
arch/powerpc/configs/52xx/tqm5200_defconfig | 2 +-
arch/powerpc/configs/adder875_defconfig | 2 +-
arch/powerpc/configs/ep8248e_defconfig | 2 +-
arch/powerpc/configs/ep88xc_defconfig | 2 +-
arch/powerpc/configs/fsl-emb-nonhw.config | 2 +-
arch/powerpc/configs/mgcoge_defconfig | 2 +-
arch/powerpc/configs/mpc5200_defconfig | 2 +-
arch/powerpc/configs/mpc8272_ads_defconfig | 2 +-
arch/powerpc/configs/mpc885_ads_defconfig | 2 +-
arch/powerpc/configs/ppc6xx_defconfig | 2 +-
arch/powerpc/configs/pq2fads_defconfig | 2 +-
arch/powerpc/configs/ps3_defconfig | 2 +-
arch/powerpc/configs/tqm8xx_defconfig | 2 +-
arch/powerpc/crypto/aes-spe-glue.c | 2 +-
arch/powerpc/include/asm/archrandom.h | 41 +-
arch/powerpc/include/asm/asm-prototypes.h | 11 +-
arch/powerpc/include/asm/atomic.h | 5 +-
arch/powerpc/include/asm/barrier.h | 2 +
arch/powerpc/include/asm/bitops.h | 4 +-
arch/powerpc/include/asm/book3s/64/hugetlb.h | 3 +
arch/powerpc/include/asm/book3s/64/pgtable.h | 2 +-
arch/powerpc/include/asm/book3s/64/tlbflush.h | 26 +-
arch/powerpc/include/asm/bpf_perf_event.h | 9 +
arch/powerpc/include/asm/context_tracking.h | 2 +-
arch/powerpc/include/asm/cputable.h | 3 -
arch/powerpc/include/asm/cputime.h | 1 +
arch/powerpc/include/asm/dma.h | 6 -
arch/powerpc/include/asm/firmware.h | 3 +-
arch/powerpc/include/asm/hvcall.h | 23 +-
arch/powerpc/include/asm/hw_irq.h | 77 +-
arch/powerpc/include/asm/inst.h | 19 -
arch/powerpc/include/asm/interrupt.h | 1 +
arch/powerpc/include/asm/io.h | 3 -
arch/powerpc/include/asm/irq.h | 1 -
arch/powerpc/include/asm/kasan.h | 13 +-
arch/powerpc/include/asm/kexec.h | 15 +
arch/powerpc/include/asm/kprobes.h | 2 +-
arch/powerpc/include/asm/kvm_book3s.h | 3 -
arch/powerpc/include/asm/kvm_host.h | 16 +-
arch/powerpc/include/asm/machdep.h | 4 -
arch/powerpc/include/asm/mman.h | 1 +
arch/powerpc/include/asm/mmu.h | 12 -
arch/powerpc/include/asm/mpc52xx.h | 4 +-
arch/powerpc/include/asm/mpc5xxx.h | 9 +-
arch/powerpc/include/asm/nmi.h | 2 +
arch/powerpc/include/asm/nohash/64/pgalloc.h | 5 +-
arch/powerpc/include/asm/nohash/64/pgtable.h | 23 +-
arch/powerpc/include/asm/nohash/pgtable.h | 2 +-
arch/powerpc/include/asm/pci-bridge.h | 4 +
arch/powerpc/include/asm/pci.h | 2 -
arch/powerpc/include/asm/pgtable.h | 20 +-
arch/powerpc/include/asm/plpar_wrappers.h | 5 +-
arch/powerpc/include/asm/ppc-opcode.h | 15 +-
arch/powerpc/include/asm/probes.h | 4 +-
arch/powerpc/include/asm/prom.h | 13 +-
arch/powerpc/include/asm/setup.h | 6 +-
arch/powerpc/include/asm/simple_spinlock.h | 15 +-
arch/powerpc/include/asm/synch.h | 5 +-
arch/powerpc/include/asm/thread_info.h | 10 +-
arch/powerpc/include/asm/tlb.h | 2 -
arch/powerpc/include/asm/uaccess.h | 3 +-
arch/powerpc/include/asm/uprobes.h | 2 +-
arch/powerpc/include/asm/word-at-a-time.h | 2 +-
arch/powerpc/include/uapi/asm/bpf_perf_event.h | 9 -
arch/powerpc/kernel/Makefile | 14 +-
arch/powerpc/kernel/asm-offsets.c | 2 +-
arch/powerpc/kernel/btext.c | 2 +-
arch/powerpc/kernel/cputable.c | 67 +-
arch/powerpc/kernel/dawr.c | 1 +
arch/powerpc/kernel/dt_cpu_ftrs.c | 4 -
arch/powerpc/kernel/eeh_driver.c | 2 +-
arch/powerpc/kernel/exceptions-64s.S | 2 +-
arch/powerpc/kernel/head_64.S | 3 +
arch/powerpc/kernel/head_book3s_32.S | 4 +-
arch/powerpc/kernel/interrupt.c | 161 -
arch/powerpc/kernel/iommu.c | 5 +
arch/powerpc/kernel/irq.c | 500 +-
arch/powerpc/kernel/irq_64.c | 466 +
arch/powerpc/kernel/kgdb.c | 5 +-
arch/powerpc/kernel/kprobes.c | 2 +-
arch/powerpc/kernel/mce.c | 2 +-
arch/powerpc/kernel/pci-common.c | 32 +-
arch/powerpc/kernel/pci_32.c | 27 +-
arch/powerpc/kernel/pci_64.c | 2 +
arch/powerpc/kernel/pci_dn.c | 2 +-
arch/powerpc/kernel/process.c | 6 +-
arch/powerpc/kernel/prom.c | 10 +-
arch/powerpc/kernel/prom_init.c | 4 +-
arch/powerpc/kernel/prom_init_check.sh | 2 +-
arch/powerpc/kernel/ptrace/ptrace-fpu.c | 20 +-
arch/powerpc/kernel/ptrace/ptrace-vsx.c | 2 +-
arch/powerpc/kernel/ptrace/ptrace.c | 3 +
arch/powerpc/kernel/rtas.c | 15 +-
arch/powerpc/kernel/setup-common.c | 21 +-
arch/powerpc/kernel/setup_64.c | 1 -
arch/powerpc/kernel/signal_64.c | 9 +-
arch/powerpc/kernel/smp.c | 36 +-
arch/powerpc/kernel/syscall.c | 190 +
arch/powerpc/kernel/trace/ftrace.c | 38 +-
arch/powerpc/kernel/traps.c | 2 +-
arch/powerpc/kernel/vdso/cacheflush.S | 1 +
arch/powerpc/kernel/watchdog.c | 23 +-
arch/powerpc/kexec/core.c | 2 +
arch/powerpc/kexec/crash.c | 79 +-
arch/powerpc/kexec/file_load_64.c | 55 +
arch/powerpc/kvm/Kconfig | 21 +-
arch/powerpc/kvm/Makefile | 1 +
arch/powerpc/kvm/book3s_64_mmu_radix.c | 1 +
arch/powerpc/kvm/book3s_64_vio.c | 2 +-
arch/powerpc/kvm/book3s_hv.c | 30 +-
arch/powerpc/kvm/book3s_hv.h | 10 +
arch/powerpc/kvm/book3s_hv_builtin.c | 25 +-
arch/powerpc/kvm/book3s_hv_nested.c | 1 +
arch/powerpc/kvm/book3s_hv_p9_entry.c | 257 +-
arch/powerpc/kvm/book3s_hv_p9_perf.c | 219 +
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 24 +-
arch/powerpc/kvm/book3s_xics.h | 1 +
arch/powerpc/kvm/powerpc.c | 1 +
arch/powerpc/kvm/trace_hv.h | 21 +-
arch/powerpc/lib/test_emulate_step.c | 15 +-
arch/powerpc/mm/book3s32/mmu.c | 12 +-
arch/powerpc/mm/book3s64/hash_pgtable.c | 1 +
arch/powerpc/mm/book3s64/hash_utils.c | 2 +-
arch/powerpc/mm/book3s64/pkeys.c | 1 +
arch/powerpc/mm/book3s64/radix_hugetlbpage.c | 10 +-
arch/powerpc/mm/book3s64/radix_pgtable.c | 35 +-
arch/powerpc/mm/book3s64/radix_tlb.c | 14 +-
arch/powerpc/mm/copro_fault.c | 5 +
arch/powerpc/mm/fault.c | 5 +
arch/powerpc/mm/hugetlbpage.c | 1 +
arch/powerpc/mm/init_32.c | 37 -
arch/powerpc/mm/kasan/Makefile | 1 +
arch/powerpc/mm/kasan/init_32.c | 2 +-
arch/powerpc/mm/kasan/init_book3e_64.c | 133 +
arch/powerpc/mm/kasan/init_book3s_64.c | 2 +
arch/powerpc/mm/mem.c | 35 +-
arch/powerpc/mm/mmu_decl.h | 1 -
arch/powerpc/mm/nohash/40x.c | 9 +-
arch/powerpc/mm/nohash/8xx.c | 13 +-
arch/powerpc/mm/nohash/book3e_hugetlbpage.c | 30 +-
arch/powerpc/mm/nohash/book3e_pgtable.c | 6 +-
arch/powerpc/mm/nohash/kaslr_booke.c | 8 +-
arch/powerpc/mm/nohash/tlb_low.S | 4 +-
arch/powerpc/mm/nohash/tlb_low_64e.S | 147 +-
arch/powerpc/mm/pgtable.c | 24 +
arch/powerpc/mm/pgtable_32.c | 6 +-
arch/powerpc/mm/ptdump/shared.c | 6 +-
arch/powerpc/net/bpf_jit_comp32.c | 72 +-
arch/powerpc/net/bpf_jit_comp64.c | 96 +-
arch/powerpc/perf/core-book3s.c | 66 +-
arch/powerpc/perf/e500-pmu.c | 9 +-
arch/powerpc/perf/e6500-pmu.c | 5 +-
arch/powerpc/perf/generic-compat-pmu.c | 12 +-
arch/powerpc/perf/hv-24x7.c | 6 +-
arch/powerpc/perf/isa207-common.c | 3 +
arch/powerpc/perf/isa207-common.h | 1 +
arch/powerpc/perf/mpc7450-pmu.c | 5 +-
arch/powerpc/perf/power10-pmu.c | 17 +-
arch/powerpc/perf/power5+-pmu.c | 6 +-
arch/powerpc/perf/power5-pmu.c | 5 +-
arch/powerpc/perf/power6-pmu.c | 5 +-
arch/powerpc/perf/power7-pmu.c | 7 +-
arch/powerpc/perf/power8-pmu.c | 15 +-
arch/powerpc/perf/power9-pmu.c | 14 +-
arch/powerpc/perf/ppc970-pmu.c | 7 +-
arch/powerpc/platforms/4xx/cpm.c | 2 +-
arch/powerpc/platforms/52xx/mpc52xx_common.c | 37 -
arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 27 +-
arch/powerpc/platforms/83xx/misc.c | 14 +-
arch/powerpc/platforms/83xx/suspend.c | 52 +-
arch/powerpc/platforms/85xx/Kconfig | 18 +-
arch/powerpc/platforms/Kconfig.cputype | 54 +-
arch/powerpc/platforms/cell/axon_msi.c | 1 +
arch/powerpc/platforms/cell/spufs/inode.c | 1 +
arch/powerpc/platforms/cell/spufs/spufs.h | 2 +-
arch/powerpc/platforms/microwatt/Kconfig | 1 -
arch/powerpc/platforms/microwatt/microwatt.h | 7 +
arch/powerpc/platforms/microwatt/rng.c | 10 +-
arch/powerpc/platforms/microwatt/setup.c | 8 +
arch/powerpc/platforms/powermac/setup.c | 7 -
arch/powerpc/platforms/powernv/Kconfig | 3 +-
arch/powerpc/platforms/powernv/Makefile | 1 +
arch/powerpc/platforms/powernv/pci-ioda.c | 2 +
arch/powerpc/platforms/powernv/powernv.h | 2 +
arch/powerpc/platforms/powernv/rng.c | 130 +-
arch/powerpc/platforms/powernv/setup.c | 2 +
arch/powerpc/platforms/powernv/vas-fault.c | 2 +-
arch/powerpc/platforms/ps3/Kconfig | 2 +-
arch/powerpc/platforms/pseries/Kconfig | 14 +-
arch/powerpc/platforms/pseries/Makefile | 1 +
arch/powerpc/platforms/pseries/cmm.c | 60 +-
arch/powerpc/platforms/pseries/eeh_pseries.c | 2 +-
arch/powerpc/platforms/pseries/firmware.c | 1 +
arch/powerpc/platforms/pseries/iommu.c | 97 +-
arch/powerpc/platforms/pseries/kexec.c | 2 +-
arch/powerpc/platforms/pseries/lpar.c | 2 +-
arch/powerpc/platforms/pseries/mobility.c | 91 +-
.../platforms/pseries/papr_platform_attributes.c | 1 +
arch/powerpc/platforms/pseries/papr_scm.c | 7 +-
arch/powerpc/platforms/pseries/plpks.c | 460 +
arch/powerpc/platforms/pseries/plpks.h | 71 +
arch/powerpc/platforms/pseries/pseries.h | 2 +
arch/powerpc/platforms/pseries/rng.c | 11 +-
arch/powerpc/platforms/pseries/setup.c | 20 +-
arch/powerpc/platforms/pseries/vas.c | 3 +-
arch/powerpc/purgatory/.gitignore | 1 -
arch/powerpc/purgatory/Makefile | 8 +-
arch/powerpc/purgatory/kexec-purgatory.S | 14 +
arch/powerpc/sysdev/cpm2.c | 2 +-
arch/powerpc/sysdev/fsl_pci.c | 9 +
arch/powerpc/sysdev/fsl_pci.h | 1 +
arch/powerpc/sysdev/fsl_rio.c | 12 +-
arch/powerpc/sysdev/mpc5xxx_clocks.c | 41 +-
arch/powerpc/sysdev/of_rtc.c | 2 +
arch/powerpc/sysdev/xive/spapr.c | 6 +-
arch/powerpc/xmon/xmon.c | 4 +-
arch/riscv/Kconfig | 92 +-
arch/riscv/Kconfig.erratas | 14 +-
arch/riscv/Kconfig.socs | 4 +-
arch/riscv/Makefile | 11 +-
arch/riscv/boot/dts/canaan/Makefile | 10 +-
arch/riscv/boot/dts/canaan/canaan_kd233.dts | 8 +-
arch/riscv/boot/dts/canaan/k210.dtsi | 85 +-
arch/riscv/boot/dts/canaan/sipeed_maix_bit.dts | 4 +-
arch/riscv/boot/dts/canaan/sipeed_maix_dock.dts | 4 +-
arch/riscv/boot/dts/canaan/sipeed_maix_go.dts | 8 +-
arch/riscv/boot/dts/canaan/sipeed_maixduino.dts | 4 +-
arch/riscv/boot/dts/microchip/mpfs.dtsi | 58 +-
arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 24 +
arch/riscv/boot/dts/sifive/fu740-c000.dtsi | 24 +
.../riscv/boot/dts/sifive/hifive-unmatched-a00.dts | 44 +-
arch/riscv/boot/dts/starfive/jh7100.dtsi | 18 +-
arch/riscv/configs/32-bit.config | 2 +
arch/riscv/configs/defconfig | 65 +-
arch/riscv/configs/nommu_k210_defconfig | 1 +
arch/riscv/configs/nommu_k210_sdcard_defconfig | 1 +
arch/riscv/configs/nommu_virt_defconfig | 1 +
arch/riscv/configs/rv32_defconfig | 1 +
arch/riscv/errata/sifive/errata.c | 3 +-
arch/riscv/errata/thead/errata.c | 52 +-
arch/riscv/include/asm/asm.h | 15 +
arch/riscv/include/asm/barrier.h | 2 +
arch/riscv/include/asm/cache.h | 4 +
arch/riscv/include/asm/cacheflush.h | 10 +
arch/riscv/include/asm/cpu_ops.h | 1 +
arch/riscv/include/asm/cpu_ops_sbi.h | 2 +
arch/riscv/include/asm/csr.h | 21 +
arch/riscv/include/asm/efi.h | 2 -
arch/riscv/include/asm/errata_list.h | 81 +-
arch/riscv/include/asm/hwcap.h | 32 +
arch/riscv/include/asm/kvm_host.h | 24 +-
arch/riscv/include/asm/kvm_vcpu_fp.h | 8 +-
arch/riscv/include/asm/kvm_vcpu_insn.h | 48 +
arch/riscv/include/asm/kvm_vcpu_timer.h | 9 +-
arch/riscv/include/asm/page.h | 1 -
arch/riscv/include/asm/pci.h | 32 +-
arch/riscv/include/asm/pgtable-64.h | 12 +-
arch/riscv/include/asm/pgtable.h | 26 +-
arch/riscv/include/asm/processor.h | 4 +-
arch/riscv/include/asm/sbi.h | 32 +-
arch/riscv/include/asm/smp.h | 4 +-
arch/riscv/include/asm/switch_to.h | 4 +-
arch/riscv/include/asm/vdso/processor.h | 21 +-
arch/riscv/include/uapi/asm/kvm.h | 2 +
arch/riscv/kernel/Makefile | 2 +-
arch/riscv/kernel/alternative.c | 18 +-
arch/riscv/kernel/cpu.c | 29 +-
arch/riscv/kernel/cpu_ops.c | 5 +-
arch/riscv/kernel/cpu_ops_sbi.c | 4 +-
arch/riscv/kernel/cpu_ops_spinwait.c | 6 +-
arch/riscv/kernel/cpufeature.c | 79 +-
arch/riscv/kernel/crash_save_regs.S | 2 +-
arch/riscv/kernel/elf_kexec.c | 2 +-
arch/riscv/kernel/entry.S | 12 +-
arch/riscv/kernel/jump_label.c | 12 -
arch/riscv/kernel/machine_kexec.c | 28 +-
arch/riscv/kernel/probes/uprobes.c | 6 -
arch/riscv/kernel/setup.c | 2 +
arch/riscv/kernel/smp.c | 10 +-
arch/riscv/kernel/smpboot.c | 9 +-
arch/riscv/kernel/sys_riscv.c | 5 +-
arch/riscv/kernel/traps.c | 4 +
arch/riscv/kernel/traps_misaligned.c | 8 +-
arch/riscv/kvm/Makefile | 1 +
arch/riscv/kvm/mmu.c | 37 +-
arch/riscv/kvm/vcpu.c | 213 +-
arch/riscv/kvm/vcpu_exit.c | 496 +-
arch/riscv/kvm/vcpu_fp.c | 27 +-
arch/riscv/kvm/vcpu_insn.c | 752 +
arch/riscv/kvm/vcpu_timer.c | 148 +-
arch/riscv/kvm/vm.c | 4 +-
arch/riscv/kvm/vmid.c | 2 +-
arch/riscv/lib/uaccess.S | 4 +-
arch/riscv/mm/Makefile | 1 +
arch/riscv/mm/dma-noncoherent.c | 116 +
arch/riscv/mm/fault.c | 4 +
arch/riscv/mm/init.c | 24 +
arch/riscv/net/bpf_jit.h | 1 +
arch/riscv/net/bpf_jit_core.c | 8 +-
arch/riscv/purgatory/.gitignore | 1 -
arch/riscv/purgatory/Makefile | 10 +-
arch/riscv/purgatory/kexec-purgatory.S | 14 +
arch/s390/Kconfig | 19 +-
arch/s390/Makefile | 18 +-
arch/s390/boot/startup.c | 10 +-
arch/s390/boot/uv.c | 11 +-
arch/s390/boot/uv.h | 7 +-
arch/s390/configs/zfcpdump_defconfig | 1 -
arch/s390/crypto/Makefile | 2 +-
arch/s390/crypto/aes_s390.c | 2 +-
arch/s390/crypto/arch_random.c | 217 -
arch/s390/crypto/chacha-glue.c | 2 +-
arch/s390/crypto/crc32-vx.c | 2 +-
arch/s390/crypto/des_s390.c | 2 +-
arch/s390/crypto/ghash_s390.c | 2 +-
arch/s390/crypto/prng.c | 2 +-
arch/s390/crypto/sha1_s390.c | 2 +-
arch/s390/crypto/sha256_s390.c | 2 +-
arch/s390/crypto/sha3_256_s390.c | 2 +-
arch/s390/crypto/sha3_512_s390.c | 2 +-
arch/s390/crypto/sha512_s390.c | 2 +-
arch/s390/include/asm/airq.h | 7 +-
arch/s390/include/asm/ap.h | 6 +-
arch/s390/include/asm/archrandom.h | 40 +-
arch/s390/include/asm/bitops.h | 61 +-
arch/s390/include/asm/cpufeature.h | 23 +-
arch/s390/include/asm/dma.h | 6 -
arch/s390/include/asm/gmap.h | 39 +-
arch/s390/include/asm/jump_label.h | 5 +-
arch/s390/include/asm/kexec.h | 14 +
arch/s390/include/asm/kvm_host.h | 44 +-
arch/s390/include/asm/mmu.h | 16 +-
arch/s390/include/asm/mmu_context.h | 2 +-
arch/s390/include/asm/nospec-insn.h | 2 -
arch/s390/include/asm/os_info.h | 17 +-
arch/s390/include/asm/pci.h | 12 +-
arch/s390/include/asm/pci_clp.h | 9 +-
arch/s390/include/asm/pci_insn.h | 29 +-
arch/s390/include/asm/pgtable.h | 38 +-
arch/s390/include/asm/qdio.h | 6 +-
arch/s390/include/asm/sclp.h | 8 +-
arch/s390/include/asm/softirq_stack.h | 3 +-
arch/s390/include/asm/tlb.h | 3 -
arch/s390/include/asm/tpi.h | 13 +
arch/s390/include/asm/uaccess.h | 5 +-
arch/s390/include/asm/unwind.h | 2 +-
arch/s390/include/asm/uv.h | 51 +-
arch/s390/include/uapi/asm/hwctrset.h | 6 +-
arch/s390/include/uapi/asm/kvm.h | 1 +
arch/s390/kernel/Makefile | 2 +-
arch/s390/kernel/cpufeature.c | 46 +
arch/s390/kernel/crash_dump.c | 108 +-
arch/s390/kernel/jump_label.c | 28 +-
arch/s390/kernel/machine_kexec_file.c | 18 +-
arch/s390/kernel/module.c | 1 -
arch/s390/kernel/nmi.c | 8 +-
arch/s390/kernel/perf_cpum_cf.c | 22 +-
arch/s390/kernel/perf_pai_crypto.c | 20 +-
arch/s390/kernel/processor.c | 10 -
arch/s390/kernel/setup.c | 16 +-
arch/s390/kernel/uv.c | 156 +
arch/s390/kvm/Kconfig | 1 +
arch/s390/kvm/Makefile | 1 +
arch/s390/kvm/gaccess.c | 96 +-
arch/s390/kvm/gaccess.h | 6 +-
arch/s390/kvm/intercept.c | 15 +
arch/s390/kvm/interrupt.c | 98 +-
arch/s390/kvm/kvm-s390.c | 482 +-
arch/s390/kvm/kvm-s390.h | 16 +
arch/s390/kvm/pci.c | 690 +
arch/s390/kvm/pci.h | 87 +
arch/s390/kvm/priv.c | 26 +-
arch/s390/kvm/pv.c | 269 +-
arch/s390/kvm/sigp.c | 4 +-
arch/s390/kvm/vsie.c | 8 +
arch/s390/lib/Makefile | 3 +-
arch/s390/lib/expoline/Makefile | 3 +
arch/s390/lib/{ => expoline}/expoline.S | 0
arch/s390/mm/fault.c | 35 +-
arch/s390/mm/gmap.c | 177 +-
arch/s390/mm/init.c | 13 +-
arch/s390/mm/maccess.c | 26 -
arch/s390/mm/mmap.c | 20 +
arch/s390/pci/pci.c | 16 +
arch/s390/pci/pci_bus.c | 82 +-
arch/s390/pci/pci_clp.c | 7 +
arch/s390/pci/pci_insn.c | 4 +-
arch/s390/pci/pci_irq.c | 48 +-
arch/s390/purgatory/Makefile | 5 +-
arch/s390/tools/gen_facilities.c | 1 +
arch/sh/configs/ecovec24_defconfig | 2 -
arch/sh/include/asm/bitops-op32.h | 34 +-
arch/sh/include/asm/dma.h | 6 -
arch/sh/include/asm/io.h | 8 +-
arch/sh/include/asm/pci.h | 6 -
arch/sh/include/asm/pgtable.h | 17 -
arch/sh/kernel/irq.c | 9 +-
arch/sh/mm/fault.c | 4 +
arch/sh/mm/mmap.c | 20 +
arch/sparc/Kconfig | 5 +-
arch/sparc/include/asm/bitops_32.h | 18 +-
arch/sparc/include/asm/dma.h | 8 -
arch/sparc/include/asm/pci.h | 10 +-
arch/sparc/include/asm/pgtable_32.h | 19 -
arch/sparc/include/asm/pgtable_64.h | 19 -
arch/sparc/include/asm/tlb_64.h | 2 -
arch/sparc/kernel/irq_64.c | 2 +
arch/sparc/kernel/module.c | 3 -
arch/sparc/kernel/pci.c | 149 +-
arch/sparc/kernel/rtrap_64.S | 2 +-
arch/sparc/kernel/smp_32.c | 5 -
arch/sparc/kernel/smp_64.c | 6 -
arch/sparc/lib/atomic32.c | 12 +-
arch/sparc/mm/fault_32.c | 4 +
arch/sparc/mm/fault_64.c | 5 +
arch/sparc/mm/init_32.c | 20 +
arch/sparc/mm/init_64.c | 3 +
arch/sparc/vdso/vdso2c.c | 2 +-
arch/um/Kconfig | 17 +-
arch/um/drivers/Kconfig | 54 +-
arch/um/drivers/random.c | 2 +-
arch/um/drivers/ubd_kern.c | 8 +-
arch/um/drivers/virt-pci.c | 7 +-
arch/um/drivers/virtio_uml.c | 3 +-
arch/um/include/asm/archrandom.h | 25 +
arch/um/include/asm/common.lds.S | 2 +
arch/um/include/asm/kasan.h | 37 +
arch/um/include/asm/page.h | 4 +-
arch/um/include/asm/pci.h | 24 +-
arch/um/include/asm/pgtable.h | 17 -
arch/um/include/asm/processor-generic.h | 5 -
arch/um/include/asm/xor.h | 2 +-
arch/um/include/shared/mem.h | 4 +-
arch/um/include/shared/os.h | 7 +
arch/um/include/shared/user.h | 3 +-
arch/um/kernel/dyn.lds.S | 6 +-
arch/um/kernel/mem.c | 39 +
arch/um/kernel/stacktrace.c | 2 +-
arch/um/kernel/trap.c | 4 +
arch/um/kernel/um_arch.c | 12 +
arch/um/kernel/uml.lds.S | 1 +
arch/um/os-Linux/mem.c | 22 +
arch/um/os-Linux/skas/process.c | 23 +-
arch/um/os-Linux/umid.c | 3 +-
arch/um/os-Linux/user_syms.c | 4 +-
arch/um/os-Linux/util.c | 6 +
arch/x86/.gitignore | 2 -
arch/x86/Kconfig | 132 +-
arch/x86/Kconfig.debug | 3 -
arch/x86/Makefile | 7 +
arch/x86/boot/Makefile | 2 +-
arch/x86/boot/compressed/Makefile | 4 +
arch/x86/boot/compressed/ident_map_64.c | 13 +
arch/x86/coco/tdx/tdx.c | 187 +-
arch/x86/configs/i386_defconfig | 1 -
arch/x86/configs/x86_64_defconfig | 1 -
arch/x86/crypto/Makefile | 7 +-
arch/x86/crypto/aes_ctrby8_avx-x86_64.S | 232 +-
arch/x86/crypto/aesni-intel_glue.c | 114 +-
arch/x86/crypto/blake2s-glue.c | 3 +-
arch/x86/crypto/blake2s-shash.c | 77 -
arch/x86/crypto/blowfish_glue.c | 4 +-
arch/x86/crypto/crc32-pclmul_asm.S | 24 +-
arch/x86/crypto/polyval-clmulni_asm.S | 321 +
arch/x86/crypto/polyval-clmulni_glue.c | 203 +
arch/x86/entry/Makefile | 3 +-
arch/x86/entry/calling.h | 62 +
arch/x86/entry/entry.S | 22 +
arch/x86/entry/entry_32.S | 2 -
arch/x86/entry/entry_64.S | 63 +-
arch/x86/entry/entry_64_compat.S | 21 +-
arch/x86/entry/thunk_32.S | 2 -
arch/x86/entry/thunk_64.S | 4 -
arch/x86/entry/vdso/Makefile | 3 +-
arch/x86/entry/vdso/vdso2c.c | 2 +-
arch/x86/entry/vsyscall/vsyscall_emu_64.S | 9 +-
arch/x86/events/amd/uncore.c | 146 +-
arch/x86/events/core.c | 28 +-
arch/x86/events/intel/core.c | 167 +-
arch/x86/events/intel/ds.c | 129 +-
arch/x86/events/intel/lbr.c | 19 +-
arch/x86/events/perf_event.h | 23 +-
arch/x86/hyperv/hv_apic.c | 2 +-
arch/x86/hyperv/hv_init.c | 6 +
arch/x86/hyperv/irqdomain.c | 2 +-
arch/x86/hyperv/ivm.c | 84 +-
arch/x86/include/asm/alternative.h | 1 +
arch/x86/include/asm/amd-ibs.h | 16 +-
arch/x86/include/asm/apic.h | 2 -
arch/x86/include/asm/apicdef.h | 4 +-
arch/x86/include/asm/archrandom.h | 55 +-
arch/x86/include/asm/bitops.h | 22 +-
arch/x86/include/asm/cpufeatures.h | 19 +-
arch/x86/include/asm/disabled-features.h | 21 +-
arch/x86/include/asm/dma.h | 8 -
arch/x86/include/asm/e820/api.h | 5 -
arch/x86/include/asm/efi.h | 9 +-
arch/x86/include/asm/fpu/api.h | 2 +
arch/x86/include/asm/io.h | 9 -
arch/x86/include/asm/kexec.h | 12 +
arch/x86/include/asm/kvm-x86-ops.h | 3 +-
arch/x86/include/asm/kvm-x86-pmu-ops.h | 2 +-
arch/x86/include/asm/kvm_host.h | 154 +-
arch/x86/include/asm/linkage.h | 8 +
arch/x86/include/asm/mem_encrypt.h | 2 +
arch/x86/include/asm/mshyperv.h | 4 +
arch/x86/include/asm/msr-index.h | 50 +
arch/x86/include/asm/mwait.h | 1 +
arch/x86/include/asm/nospec-branch.h | 118 +-
arch/x86/include/asm/pci.h | 3 -
arch/x86/include/asm/pci_x86.h | 8 +
arch/x86/include/asm/perf_event.h | 27 +-
arch/x86/include/asm/pgtable_types.h | 19 -
arch/x86/include/asm/setup.h | 41 +-
arch/x86/include/asm/sev.h | 7 +-
arch/x86/include/asm/sgx.h | 8 +
arch/x86/include/asm/special_insns.h | 9 +
arch/x86/include/asm/static_call.h | 19 +-
arch/x86/include/asm/svm.h | 16 +-
arch/x86/include/asm/tlb.h | 3 -
arch/x86/include/asm/tlbflush.h | 1 +
arch/x86/include/asm/uaccess.h | 2 +-
arch/x86/include/asm/unwind_hints.h | 14 +-
arch/x86/include/asm/vmx.h | 18 +
arch/x86/include/asm/vmxfeatures.h | 6 +-
arch/x86/include/asm/xen/cpuid.h | 2 +
arch/x86/include/asm/xen/events.h | 3 +-
arch/x86/include/uapi/asm/bootparam.h | 17 +-
arch/x86/include/uapi/asm/kvm.h | 22 +-
arch/x86/include/uapi/asm/sgx.h | 62 +
arch/x86/include/uapi/asm/vmx.h | 4 +-
arch/x86/kernel/Makefile | 6 -
arch/x86/kernel/acpi/cppc.c | 16 +
arch/x86/kernel/alternative.c | 71 +
arch/x86/kernel/amd_nb.c | 13 +
arch/x86/kernel/apic/apic.c | 7 +-
arch/x86/kernel/apic/ipi.c | 2 +-
arch/x86/kernel/asm-offsets.c | 6 +
arch/x86/kernel/cpu/amd.c | 48 +-
arch/x86/kernel/cpu/bugs.c | 767 +-
arch/x86/kernel/cpu/cacheinfo.c | 6 +
arch/x86/kernel/cpu/common.c | 85 +-
arch/x86/kernel/cpu/cpu.h | 2 +
arch/x86/kernel/cpu/cyrix.c | 1 +
arch/x86/kernel/cpu/feat_ctl.c | 9 +-
arch/x86/kernel/cpu/hygon.c | 6 +
arch/x86/kernel/cpu/intel.c | 31 +-
arch/x86/kernel/cpu/mce/inject.c | 47 +
arch/x86/kernel/cpu/mce/internal.h | 2 +-
arch/x86/kernel/cpu/rdrand.c | 59 +-
arch/x86/kernel/cpu/scattered.c | 1 +
arch/x86/kernel/cpu/sgx/encl.c | 330 +-
arch/x86/kernel/cpu/sgx/encl.h | 16 +-
arch/x86/kernel/cpu/sgx/encls.h | 33 +
arch/x86/kernel/cpu/sgx/ioctl.c | 641 +-
arch/x86/kernel/cpu/sgx/main.c | 75 +-
arch/x86/kernel/cpu/sgx/sgx.h | 3 +
arch/x86/kernel/cpu/vmware.c | 4 +-
arch/x86/kernel/e820.c | 6 +-
arch/x86/kernel/espfix_64.c | 2 +-
arch/x86/kernel/fpu/core.c | 14 +
arch/x86/kernel/ftrace.c | 8 +-
arch/x86/kernel/ftrace_64.S | 11 +-
arch/x86/kernel/head64.c | 4 +-
arch/x86/kernel/head_32.S | 1 +
arch/x86/kernel/head_64.S | 5 +
arch/x86/kernel/jump_label.c | 13 -
arch/x86/kernel/kexec-bzimage64.c | 94 +-
arch/x86/kernel/kprobes/core.c | 18 +-
arch/x86/kernel/kvm.c | 3 +-
arch/x86/kernel/module.c | 11 +-
arch/x86/kernel/pmem.c | 7 +-
arch/x86/kernel/process.c | 46 +-
arch/x86/kernel/relocate_kernel_32.S | 25 +-
arch/x86/kernel/relocate_kernel_64.S | 23 +-
arch/x86/kernel/resource.c | 14 +-
arch/x86/kernel/setup.c | 78 +-
arch/x86/kernel/sev-shared.c | 25 +-
arch/x86/kernel/sev.c | 17 +-
arch/x86/kernel/smpboot.c | 4 -
arch/x86/kernel/static_call.c | 51 +-
arch/x86/kernel/tboot.c | 15 -
arch/x86/kernel/vmlinux.lds.S | 11 +-
arch/x86/kvm/cpuid.c | 115 +-
arch/x86/kvm/cpuid.h | 21 +-
arch/x86/kvm/debugfs.c | 4 +-
arch/x86/kvm/emulate.c | 90 +-
arch/x86/kvm/hyperv.c | 8 +-
arch/x86/kvm/i8254.c | 10 +-
arch/x86/kvm/i8254.h | 1 -
arch/x86/kvm/kvm_emulate.h | 28 +-
arch/x86/kvm/lapic.c | 210 +-
arch/x86/kvm/lapic.h | 20 +-
arch/x86/kvm/mmu.h | 10 +-
arch/x86/kvm/mmu/mmu.c | 981 +-
arch/x86/kvm/mmu/mmu_internal.h | 40 +-
arch/x86/kvm/mmu/paging.h | 14 -
arch/x86/kvm/mmu/paging_tmpl.h | 126 +-
arch/x86/kvm/mmu/spte.c | 71 +-
arch/x86/kvm/mmu/spte.h | 55 +-
arch/x86/kvm/mmu/tdp_iter.c | 6 +-
arch/x86/kvm/mmu/tdp_mmu.c | 71 +-
arch/x86/kvm/pmu.c | 212 +-
arch/x86/kvm/pmu.h | 45 +-
arch/x86/kvm/svm/avic.c | 333 +-
arch/x86/kvm/svm/nested.c | 115 +-
arch/x86/kvm/svm/pmu.c | 62 +-
arch/x86/kvm/svm/sev.c | 102 +-
arch/x86/kvm/svm/svm.c | 335 +-
arch/x86/kvm/svm/svm.h | 47 +-
arch/x86/kvm/svm/vmenter.S | 18 +
arch/x86/kvm/trace.h | 51 +-
arch/x86/kvm/vmx/capabilities.h | 61 +-
arch/x86/kvm/vmx/evmcs.c | 2 +
arch/x86/kvm/vmx/evmcs.h | 1 +
arch/x86/kvm/vmx/nested.c | 200 +-
arch/x86/kvm/vmx/nested.h | 5 +-
arch/x86/kvm/vmx/pmu_intel.c | 206 +-
arch/x86/kvm/vmx/posted_intr.c | 30 +-
arch/x86/kvm/vmx/posted_intr.h | 2 +
arch/x86/kvm/vmx/run_flags.h | 8 +
arch/x86/kvm/vmx/sgx.c | 10 +-
arch/x86/kvm/vmx/vmcs.h | 1 +
arch/x86/kvm/vmx/vmenter.S | 196 +-
arch/x86/kvm/vmx/vmx.c | 522 +-
arch/x86/kvm/vmx/vmx.h | 132 +-
arch/x86/kvm/vmx/vmx_ops.h | 2 +-
arch/x86/kvm/x86.c | 801 +-
arch/x86/kvm/x86.h | 35 +-
arch/x86/kvm/xen.c | 41 +-
arch/x86/kvm/xen.h | 6 +-
arch/x86/lib/memmove_64.S | 7 +-
arch/x86/lib/retpoline.S | 79 +-
arch/x86/mm/extable.c | 16 +-
arch/x86/mm/fault.c | 6 +-
arch/x86/mm/hugetlbpage.c | 47 +-
arch/x86/mm/init.c | 16 +-
arch/x86/mm/mem_encrypt.c | 7 -
arch/x86/mm/mem_encrypt_amd.c | 10 +-
arch/x86/mm/mem_encrypt_boot.S | 10 +-
arch/x86/mm/numa.c | 4 +-
arch/x86/mm/pgprot.c | 28 +
arch/x86/mm/pkeys.c | 15 +-
arch/x86/mm/tlb.c | 31 +-
arch/x86/net/bpf_jit_comp.c | 117 +-
arch/x86/pci/acpi.c | 8 +-
arch/x86/platform/efi/efi.c | 23 -
arch/x86/platform/efi/efi_thunk_64.S | 5 +-
arch/x86/platform/olpc/olpc-xo1-sci.c | 2 +-
arch/x86/purgatory/Makefile | 10 +-
arch/x86/purgatory/kexec-purgatory.S | 14 +
arch/x86/um/Kconfig | 10 +-
arch/x86/um/Makefile | 4 +-
arch/x86/um/mem_32.c | 2 +-
arch/x86/um/shared/sysdep/stub_64.h | 1 +
arch/x86/um/sysrq_64.c | 4 +-
arch/x86/um/vdso/Makefile | 3 +
arch/x86/xen/enlighten.c | 2 +-
arch/x86/xen/enlighten_hvm.c | 28 +-
arch/x86/xen/enlighten_pv.c | 13 +-
arch/x86/xen/setup.c | 6 +-
arch/x86/xen/suspend_hvm.c | 10 +-
arch/x86/xen/xen-asm.S | 30 +-
arch/x86/xen/xen-head.S | 11 +-
arch/x86/xen/xen-ops.h | 6 +-
arch/xtensa/Kconfig | 5 +-
arch/xtensa/boot/lib/Makefile | 2 +
arch/xtensa/include/asm/dma.h | 7 -
arch/xtensa/include/asm/io.h | 3 -
arch/xtensa/include/asm/pci.h | 3 -
arch/xtensa/include/asm/pgalloc.h | 2 +-
arch/xtensa/include/asm/pgtable.h | 19 -
arch/xtensa/kernel/entry.S | 10 +-
arch/xtensa/kernel/irq.c | 7 +-
arch/xtensa/kernel/time.c | 1 +
arch/xtensa/mm/fault.c | 4 +
arch/xtensa/mm/init.c | 22 +
arch/xtensa/platforms/iss/network.c | 63 +-
arch/xtensa/platforms/iss/simdisk.c | 4 +-
arch/xtensa/platforms/xtfpga/setup.c | 1 +
block/Kconfig | 1 -
block/bdev.c | 10 +-
block/bfq-cgroup.c | 34 +-
block/bfq-iosched.c | 22 +-
block/bfq-iosched.h | 8 +-
block/bfq-wf2q.c | 5 +-
block/bio-integrity.c | 2 +-
block/bio.c | 162 +-
block/blk-cgroup-rwstat.h | 8 +-
block/blk-cgroup.c | 76 +-
block/blk-cgroup.h | 12 +-
block/blk-core.c | 102 +-
block/blk-flush.c | 6 +-
block/blk-ia-ranges.c | 66 +-
block/blk-ioc.c | 2 +
block/blk-iocost.c | 22 +-
block/blk-iolatency.c | 30 +-
block/blk-ioprio.c | 57 +-
block/blk-ioprio.h | 9 +
block/blk-lib.c | 6 +-
block/blk-map.c | 7 +-
block/blk-merge.c | 249 +-
block/blk-mq-debugfs-zoned.c | 6 +-
block/blk-mq-debugfs.c | 48 +-
block/blk-mq-debugfs.h | 10 -
block/blk-mq-sched.c | 12 +
block/blk-mq-sysfs.c | 45 +-
block/blk-mq-tag.c | 31 +-
block/blk-mq-tag.h | 10 +-
block/blk-mq.c | 151 +-
block/blk-mq.h | 39 +-
block/blk-rq-qos.c | 12 +-
block/blk-rq-qos.h | 18 +-
block/blk-settings.c | 11 +-
block/blk-sysfs.c | 86 +-
block/blk-throttle.c | 7 +-
block/blk-wbt.c | 30 +-
block/blk-zoned.c | 92 +-
block/blk.h | 81 +-
block/bounce.c | 39 +-
block/bsg-lib.c | 6 +-
block/bsg.c | 4 +-
block/elevator.h | 2 +-
block/fops.c | 38 +-
block/genhd.c | 132 +-
block/holder.c | 4 -
block/ioctl.c | 2 +-
block/ioprio.c | 58 +-
block/kyber-iosched.c | 11 +-
block/mq-deadline.c | 7 +-
block/partitions/check.h | 4 +-
block/partitions/core.c | 23 +-
certs/.gitignore | 2 +-
certs/Kconfig | 1 +
certs/Makefile | 30 +-
certs/blacklist.c | 8 +-
certs/blacklist_hashes.c | 5 +-
certs/blacklist_nohashes.c | 6 -
{scripts => certs}/check-blacklist-hashes.awk | 0
certs/common.h | 9 -
certs/extract-cert.c | 7 +
certs/system_keyring.c | 6 +-
crypto/Kconfig | 213 +-
crypto/Makefile | 8 +-
crypto/af_alg.c | 3 +-
crypto/algif_hash.c | 5 +-
crypto/aria.c | 288 +
crypto/asymmetric_keys/Kconfig | 10 +
crypto/asymmetric_keys/Makefile | 2 +
crypto/asymmetric_keys/pkcs7_parser.c | 18 +
crypto/asymmetric_keys/public_key.c | 7 +-
crypto/asymmetric_keys/selftest.c | 224 +
crypto/asymmetric_keys/x509_cert_parser.c | 3 +
.../asymmetric_keys/x509_loader.c | 8 +-
crypto/asymmetric_keys/x509_parser.h | 9 +
crypto/asymmetric_keys/x509_public_key.c | 8 +-
crypto/blake2s_generic.c | 75 -
crypto/fips.c | 35 +-
crypto/hctr2.c | 581 +
crypto/kpp.c | 6 +
crypto/polyval-generic.c | 245 +
crypto/rsa.c | 78 +-
crypto/shash.c | 6 +
crypto/tcrypt.c | 62 +-
crypto/testmgr.c | 75 +-
crypto/testmgr.h | 4830 +-
crypto/twofish_common.c | 2 +-
crypto/xctr.c | 191 +
drivers/Kconfig | 2 -
drivers/Makefile | 3 +-
drivers/accessibility/braille/braille_console.c | 2 +-
drivers/accessibility/speakup/.gitignore | 4 +
drivers/accessibility/speakup/Makefile | 28 +
drivers/accessibility/speakup/genmap.c | 162 +
drivers/accessibility/speakup/main.c | 2 +-
drivers/accessibility/speakup/makemapdata.c | 125 +
drivers/accessibility/speakup/serialio.h | 3 +-
drivers/accessibility/speakup/speakupmap.h | 66 -
drivers/accessibility/speakup/utils.h | 102 +
drivers/acpi/Kconfig | 34 +-
drivers/acpi/Makefile | 5 +-
drivers/acpi/acpi_lpit.c | 6 -
drivers/acpi/acpi_lpss.c | 3 +
drivers/acpi/acpi_video.c | 57 +-
drivers/acpi/apei/apei-base.c | 2 +-
drivers/acpi/apei/bert.c | 31 +-
drivers/acpi/apei/einj.c | 2 +
drivers/acpi/arm64/iort.c | 360 +-
drivers/acpi/bus.c | 61 +-
drivers/acpi/container.c | 17 +-
drivers/acpi/cppc_acpi.c | 80 +-
drivers/acpi/device_pm.c | 22 +
drivers/acpi/device_sysfs.c | 2 +-
drivers/acpi/ec.c | 140 +-
drivers/acpi/glue.c | 133 +-
drivers/acpi/irq.c | 58 +-
drivers/acpi/pci_link.c | 8 +-
drivers/acpi/pci_mcfg.c | 13 +
drivers/acpi/pptt.c | 142 +-
drivers/acpi/prmt.c | 4 +-
drivers/acpi/processor_driver.c | 72 +-
drivers/acpi/processor_idle.c | 11 +-
drivers/acpi/processor_thermal.c | 54 +
drivers/acpi/property.c | 509 +-
drivers/acpi/resource.c | 10 +
drivers/acpi/scan.c | 71 +-
drivers/acpi/sleep.c | 11 +
drivers/acpi/utils.c | 38 +
drivers/acpi/video_detect.c | 63 +-
drivers/acpi/viot.c | 32 +-
drivers/acpi/x86/s2idle.c | 17 +-
drivers/amba/bus.c | 317 +-
drivers/android/Kconfig | 9 -
drivers/android/binder.c | 199 +-
drivers/android/binder_alloc.c | 37 +-
drivers/android/binder_alloc.h | 2 +-
drivers/android/binder_alloc_selftest.c | 2 +-
drivers/android/binder_internal.h | 46 +-
drivers/android/binder_trace.h | 4 +
drivers/android/binderfs.c | 47 +-
drivers/ata/Kconfig | 2 +-
drivers/ata/libata-acpi.c | 8 +-
drivers/ata/libata-core.c | 93 +-
drivers/ata/libata-eh.c | 30 +-
drivers/ata/libata-scsi.c | 11 +-
drivers/ata/libata-transport.c | 4 +-
drivers/ata/libata.h | 8 +-
drivers/ata/pata_acpi.c | 2 +-
drivers/ata/pata_ali.c | 2 +-
drivers/ata/pata_amd.c | 14 +-
drivers/ata/pata_cs5535.c | 4 +-
drivers/ata/pata_hpt366.c | 2 +-
drivers/ata/pata_hpt37x.c | 119 +-
drivers/ata/pata_hpt3x2n.c | 21 +-
drivers/ata/pata_macio.c | 2 +-
drivers/ata/pata_mpc52xx.c | 2 +-
drivers/ata/pata_octeon_cf.c | 3 +
drivers/ata/pata_pdc2027x.c | 4 +-
drivers/ata/pata_serverworks.c | 4 +-
drivers/ata/pata_sis.c | 2 +-
drivers/ata/pata_via.c | 2 +-
drivers/ata/sata_mv.c | 2 +-
drivers/atm/he.c | 9 +-
drivers/atm/idt77252.c | 1 +
drivers/atm/iphase.c | 2 +-
drivers/base/arch_topology.c | 100 +-
drivers/base/base.h | 1 +
drivers/base/cacheinfo.c | 145 +-
drivers/base/core.c | 136 +-
drivers/base/cpu.c | 16 +
drivers/base/dd.c | 59 +-
drivers/base/devtmpfs.c | 1 +
drivers/base/firmware_loader/main.c | 4 +-
drivers/base/firmware_loader/sysfs.c | 10 +-
drivers/base/init.c | 2 +
drivers/base/memory.c | 2 +-
drivers/base/node.c | 4 +-
drivers/base/power/domain.c | 5 +-
drivers/base/power/runtime.c | 40 +-
drivers/base/power/wakeup.c | 30 -
drivers/base/regmap/regcache.c | 11 +-
drivers/base/regmap/regmap-irq.c | 440 +-
drivers/base/regmap/regmap.c | 42 +-
drivers/base/topology.c | 32 +-
drivers/block/Kconfig | 18 +-
drivers/block/Makefile | 4 +-
drivers/block/amiflop.c | 2 +-
drivers/block/aoe/aoeblk.c | 2 +-
drivers/block/aoe/aoedev.c | 2 +-
drivers/block/ataflop.c | 5 +-
drivers/block/brd.c | 8 +-
drivers/block/drbd/drbd_actlog.c | 9 +-
drivers/block/drbd/drbd_bitmap.c | 51 +-
drivers/block/drbd/drbd_int.h | 5 +-
drivers/block/drbd/drbd_main.c | 4 +-
drivers/block/drbd/drbd_receiver.c | 24 +-
drivers/block/drbd/drbd_req.c | 8 +-
drivers/block/drbd/drbd_worker.c | 2 +-
drivers/block/floppy.c | 8 +-
drivers/block/loop.c | 3 +-
drivers/block/mtip32xx/mtip32xx.c | 307 +-
drivers/block/mtip32xx/mtip32xx.h | 5 -
drivers/block/n64cart.c | 2 +-
drivers/block/nbd.c | 15 +-
drivers/block/null_blk/main.c | 123 +-
drivers/block/null_blk/null_blk.h | 14 +-
drivers/block/null_blk/trace.h | 2 +-
drivers/block/null_blk/zoned.c | 12 +-
drivers/block/paride/pcd.c | 4 +-
drivers/block/paride/pd.c | 6 +-
drivers/block/paride/pf.c | 4 +-
drivers/block/pktcdvd.c | 16 +-
drivers/block/ps3disk.c | 4 +-
drivers/block/ps3vram.c | 6 +-
drivers/block/rbd.c | 8 +-
drivers/block/rnbd/rnbd-clt-sysfs.c | 2 +-
drivers/block/rnbd/rnbd-clt.c | 207 +-
drivers/block/rnbd/rnbd-clt.h | 18 +-
drivers/block/rnbd/rnbd-proto.h | 7 +-
drivers/block/rnbd/rnbd-srv-dev.c | 1 -
drivers/block/rnbd/rnbd-srv-dev.h | 1 -
drivers/block/rnbd/rnbd-srv-sysfs.c | 5 +-
drivers/block/rnbd/rnbd-srv.c | 29 +-
drivers/block/rnbd/rnbd-srv.h | 7 +-
drivers/block/sunvdc.c | 4 +-
drivers/block/swim.c | 2 +-
drivers/block/swim3.c | 2 +-
drivers/block/sx8.c | 1582 -
drivers/block/ublk_drv.c | 1803 +
drivers/block/virtio_blk.c | 27 +-
drivers/block/xen-blkback/blkback.c | 6 +-
drivers/block/xen-blkback/xenbus.c | 20 +-
drivers/block/xen-blkfront.c | 79 +-
drivers/block/z2ram.c | 3 +-
drivers/block/zram/zcomp.c | 11 +-
drivers/block/zram/zram_drv.c | 14 +-
drivers/bluetooth/btbcm.c | 33 +-
drivers/bluetooth/btbcm.h | 8 +-
drivers/bluetooth/btmrvl_debugfs.c | 15 +-
drivers/bluetooth/btmrvl_drv.h | 16 +-
drivers/bluetooth/btmrvl_main.c | 15 +-
drivers/bluetooth/btmrvl_sdio.c | 15 +-
drivers/bluetooth/btmrvl_sdio.h | 16 +-
drivers/bluetooth/btmtksdio.c | 15 +
drivers/bluetooth/btrtl.c | 2 +-
drivers/bluetooth/btusb.c | 45 +-
drivers/bluetooth/hci_bcm.c | 35 +-
drivers/bluetooth/hci_intel.c | 6 +-
drivers/bluetooth/hci_qca.c | 2 +-
drivers/bluetooth/hci_serdev.c | 11 +
drivers/bus/bt1-apb.c | 14 +-
drivers/bus/bt1-axi.c | 14 +-
drivers/bus/fsl-mc/fsl-mc-bus.c | 6 +-
drivers/bus/hisi_lpc.c | 204 +-
drivers/bus/mhi/ep/main.c | 11 +-
drivers/bus/mhi/host/init.c | 17 +-
drivers/bus/mhi/host/pci_generic.c | 8 +
drivers/bus/mhi/host/pm.c | 19 +-
drivers/bus/mvebu-mbus.c | 11 +-
drivers/bus/omap_l3_noc.c | 10 +-
drivers/bus/omap_l3_noc.h | 10 +-
drivers/bus/sunxi-rsb.c | 6 +-
drivers/bus/tegra-gmi.c | 5 +-
drivers/bus/ts-nbus.c | 5 +-
drivers/cdrom/gdrom.c | 3 +-
drivers/char/Kconfig | 56 +-
drivers/char/Makefile | 1 -
drivers/char/agp/intel-gtt.c | 75 +-
drivers/char/apm-emulation.c | 2 +-
drivers/char/hw_random/Kconfig | 2 +-
drivers/char/hw_random/iproc-rng200.c | 9 +-
drivers/char/hw_random/powernv-rng.c | 2 +-
drivers/char/hw_random/s390-trng.c | 11 +-
drivers/char/hw_random/via-rng.c | 2 +-
drivers/char/hw_random/virtio-rng.c | 2 +
drivers/char/lp.c | 2 +-
drivers/char/random.c | 96 +-
drivers/char/tb0219.c | 359 -
drivers/char/tpm/Kconfig | 12 +
drivers/char/tpm/Makefile | 1 +
drivers/char/tpm/tpm.h | 1 +
drivers/char/tpm/tpm1-cmd.c | 7 +-
drivers/char/tpm/tpm2-cmd.c | 6 +
drivers/char/tpm/tpm_tis_core.c | 14 +
drivers/char/tpm/tpm_tis_core.h | 10 +
drivers/char/tpm/tpm_tis_i2c.c | 390 +
drivers/clk/.kunitconfig | 1 +
drivers/clk/axs10x/i2s_pll_clock.c | 5 +-
drivers/clk/axs10x/pll_clock.c | 5 +-
drivers/clk/bcm/Kconfig | 4 +-
drivers/clk/bcm/clk-bcm21664.c | 10 +-
drivers/clk/bcm/clk-bcm281xx.c | 10 +-
drivers/clk/bcm/clk-bcm63xx.c | 14 +-
drivers/clk/bcm/clk-cygnus.c | 14 +-
drivers/clk/bcm/clk-hr2.c | 14 +-
drivers/clk/bcm/clk-iproc-armpll.c | 14 +-
drivers/clk/bcm/clk-iproc-asiu.c | 14 +-
drivers/clk/bcm/clk-iproc-pll.c | 14 +-
drivers/clk/bcm/clk-iproc.h | 14 +-
drivers/clk/bcm/clk-kona-setup.c | 10 +-
drivers/clk/bcm/clk-kona.c | 10 +-
drivers/clk/bcm/clk-kona.h | 10 +-
drivers/clk/bcm/clk-ns2.c | 14 +-
drivers/clk/bcm/clk-nsp.c | 14 +-
drivers/clk/clk-devres.c | 91 +-
drivers/clk/clk-fixed-factor.c | 56 +-
drivers/clk/clk-hsdk-pll.c | 5 +-
drivers/clk/clk-lan966x.c | 2 +-
drivers/clk/clk-moxart.c | 5 +-
drivers/clk/clk.c | 48 -
drivers/clk/imx/clk-fracn-gppll.c | 36 +-
drivers/clk/imx/clk-imx93.c | 6 +-
drivers/clk/keystone/sci-clk.c | 10 +-
drivers/clk/mediatek/clk-mt2701-eth.c | 10 +-
drivers/clk/mediatek/clk-mt2701-g3d.c | 10 +-
drivers/clk/mediatek/clk-mt2701-hif.c | 10 +-
drivers/clk/mediatek/clk-mt2701.c | 22 +-
drivers/clk/mediatek/clk-mt2712.c | 22 +-
drivers/clk/mediatek/clk-mt7622-eth.c | 10 +-
drivers/clk/mediatek/clk-mt7622-hif.c | 12 +-
drivers/clk/mediatek/clk-mt7622.c | 22 +-
drivers/clk/mediatek/clk-mt7629-eth.c | 10 +-
drivers/clk/mediatek/clk-mt7629-hif.c | 12 +-
drivers/clk/mediatek/clk-mt8135.c | 22 +-
drivers/clk/mediatek/clk-mt8173.c | 22 +-
drivers/clk/mediatek/clk-mt8183.c | 18 +-
drivers/clk/mediatek/clk-mt8186-infra_ao.c | 23 +
drivers/clk/mediatek/clk-mt8192-msdc.c | 21 -
drivers/clk/mediatek/clk-mt8192.c | 29 +
drivers/clk/mediatek/clk-mt8195-infra_ao.c | 24 +
drivers/clk/mediatek/clk-mtk.c | 7 +
drivers/clk/mediatek/clk-mtk.h | 9 +-
drivers/clk/mediatek/reset.c | 198 +-
drivers/clk/mediatek/reset.h | 82 +
drivers/clk/meson/axg-audio.c | 36 +-
drivers/clk/mmp/clk-apbc.c | 5 +-
drivers/clk/mmp/clk-apmu.c | 5 +-
drivers/clk/mmp/clk-frac.c | 5 +-
drivers/clk/mmp/clk-gate.c | 5 +-
drivers/clk/mmp/clk-mix.c | 5 +-
drivers/clk/mmp/clk-mmp2.c | 5 +-
drivers/clk/mmp/clk-of-mmp2.c | 5 +-
drivers/clk/mmp/clk-of-pxa168.c | 5 +-
drivers/clk/mmp/clk-of-pxa1928.c | 5 +-
drivers/clk/mmp/clk-of-pxa910.c | 5 +-
drivers/clk/mmp/clk-pxa168.c | 5 +-
drivers/clk/mmp/clk-pxa910.c | 5 +-
drivers/clk/nxp/clk-lpc18xx-ccu.c | 5 +-
drivers/clk/nxp/clk-lpc18xx-cgu.c | 5 +-
drivers/clk/nxp/clk-lpc18xx-creg.c | 5 +-
drivers/clk/qcom/Kconfig | 22 +-
drivers/clk/qcom/Makefile | 3 +
drivers/clk/qcom/camcc-sdm845.c | 4 +
drivers/clk/qcom/camcc-sm8250.c | 16 +-
drivers/clk/qcom/camcc-sm8450.c | 2856 +
drivers/clk/qcom/clk-alpha-pll.c | 144 +-
drivers/clk/qcom/clk-alpha-pll.h | 11 +-
drivers/clk/qcom/clk-hfpll.c | 15 +-
drivers/clk/qcom/clk-krait.c | 23 +-
drivers/clk/qcom/clk-krait.h | 1 +
drivers/clk/qcom/clk-rcg2.c | 16 +-
drivers/clk/qcom/clk-regmap-phy-mux.c | 62 +
drivers/clk/qcom/clk-regmap-phy-mux.h | 33 +
drivers/clk/qcom/clk-rpm.c | 24 +-
drivers/clk/qcom/clk-rpmh.c | 5 +
drivers/clk/qcom/dispcc-sm8250.c | 64 +-
drivers/clk/qcom/gcc-ipq8074.c | 104 +-
drivers/clk/qcom/gcc-msm8916.c | 35 +
drivers/clk/qcom/gcc-msm8939.c | 47 +-
drivers/clk/qcom/gcc-msm8960.c | 6 +-
drivers/clk/qcom/gcc-msm8994.c | 8 +-
drivers/clk/qcom/gcc-sc7280.c | 49 +-
drivers/clk/qcom/gcc-sc8280xp.c | 142 +-
drivers/clk/qcom/gcc-sm6350.c | 2 +-
drivers/clk/qcom/gcc-sm8450.c | 49 +-
drivers/clk/qcom/gdsc.c | 36 +-
drivers/clk/qcom/gdsc.h | 4 +
drivers/clk/qcom/gpucc-sm8350.c | 637 +
drivers/clk/qcom/krait-cc.c | 8 +
drivers/clk/qcom/mmcc-msm8996.c | 1052 +-
drivers/clk/qcom/videocc-sm8250.c | 4 -
drivers/clk/renesas/clk-r8a73a4.c | 22 +-
drivers/clk/renesas/clk-r8a7740.c | 20 +-
drivers/clk/renesas/clk-r8a7778.c | 31 +-
drivers/clk/renesas/clk-r8a7779.c | 27 +-
drivers/clk/renesas/clk-rz.c | 33 +-
drivers/clk/renesas/clk-sh73a0.c | 26 +-
drivers/clk/renesas/r8a779f0-cpg-mssr.c | 10 +
drivers/clk/renesas/r9a06g032-clocks.c | 32 +-
drivers/clk/renesas/r9a07g043-cpg.c | 32 +
drivers/clk/renesas/r9a07g044-cpg.c | 17 +-
drivers/clk/renesas/r9a09g011-cpg.c | 5 +
drivers/clk/renesas/rcar-gen4-cpg.c | 2 +-
drivers/clk/renesas/rzg2l-cpg.c | 2 +-
drivers/clk/spear/clk-aux-synth.c | 5 +-
drivers/clk/spear/clk-frac-synth.c | 5 +-
drivers/clk/spear/clk-gpt-synth.c | 5 +-
drivers/clk/spear/clk-vco-pll.c | 5 +-
drivers/clk/spear/clk.c | 5 +-
drivers/clk/spear/clk.h | 5 +-
drivers/clk/spear/spear1310_clock.c | 5 +-
drivers/clk/spear/spear1340_clock.c | 5 +-
drivers/clk/spear/spear3xx_clock.c | 5 +-
drivers/clk/spear/spear6xx_clock.c | 5 +-
drivers/clk/stm32/reset-stm32.c | 1 +
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c | 16 +-
drivers/clk/sunxi-ng/ccu-sun50i-h6.c | 16 +-
drivers/clk/sunxi-ng/ccu-sun8i-de2.c | 77 +-
drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 113 +-
drivers/clk/sunxi-ng/ccu-sun8i-r.c | 40 +-
drivers/clk/sunxi-ng/ccu-sun8i-v3s.c | 80 +-
drivers/clk/sunxi/Kconfig | 4 +-
drivers/clk/ti/adpll.c | 11 +-
drivers/clk/ti/apll.c | 10 +-
drivers/clk/ti/autoidle.c | 10 +-
drivers/clk/ti/clk-2xxx.c | 10 +-
drivers/clk/ti/clk-33xx.c | 10 +-
drivers/clk/ti/clk-3xxx.c | 10 +-
drivers/clk/ti/clk-43xx.c | 10 +-
drivers/clk/ti/clk-44xx.c | 210 +-
drivers/clk/ti/clk-54xx.c | 160 +-
drivers/clk/ti/clk-816x.c | 11 +-
drivers/clk/ti/clk-dra7-atl.c | 10 +-
drivers/clk/ti/clk.c | 10 +-
drivers/clk/ti/clkctrl.c | 14 +-
drivers/clk/ti/clkt_dflt.c | 10 +-
drivers/clk/ti/clock.h | 10 +-
drivers/clk/ti/clockdomain.c | 10 +-
drivers/clk/ti/composite.c | 10 +-
drivers/clk/ti/divider.c | 10 +-
drivers/clk/ti/dpll.c | 10 +-
drivers/clk/ti/fapll.c | 11 +-
drivers/clk/ti/fixed-factor.c | 10 +-
drivers/clk/ti/gate.c | 10 +-
drivers/clk/ti/interface.c | 10 +-
drivers/clk/ti/mux.c | 10 +-
drivers/clk/x86/Makefile | 4 +-
drivers/clocksource/Kconfig | 19 +-
drivers/clocksource/Makefile | 3 +-
drivers/clocksource/hyperv_timer.c | 1 -
drivers/clocksource/sh_cmt.c | 8 +
drivers/clocksource/timer-mediatek.c | 114 +
drivers/clocksource/timer-microchip-pit64b.c | 64 +-
drivers/clocksource/timer-riscv.c | 40 +-
drivers/clocksource/timer-sun4i.c | 2 +-
drivers/clocksource/timer-sun5i.c | 2 +-
drivers/clocksource/timer-tegra186.c | 514 +
drivers/clocksource/timer-ti-dm.c | 123 +
drivers/comedi/drivers/comedi_isadma.c | 2 +-
drivers/comedi/drivers/vmk80xx.c | 2 +-
drivers/counter/104-quad-8.c | 203 +-
drivers/cpufreq/Kconfig | 2 +-
drivers/cpufreq/acpi-cpufreq.c | 4 +
drivers/cpufreq/amd-pstate.c | 24 +
drivers/cpufreq/cpufreq-dt-platdev.c | 1 +
drivers/cpufreq/cpufreq-dt.c | 19 +-
drivers/cpufreq/cpufreq.c | 43 +-
drivers/cpufreq/cpufreq_ondemand.c | 13 +-
drivers/cpufreq/imx-cpufreq-dt.c | 12 +-
drivers/cpufreq/mediatek-cpufreq-hw.c | 7 +-
drivers/cpufreq/mediatek-cpufreq.c | 9 +-
drivers/cpufreq/mvebu-cpufreq.c | 5 +-
drivers/cpufreq/pmac32-cpufreq.c | 4 +
drivers/cpufreq/qcom-cpufreq-hw.c | 20 +-
drivers/cpufreq/qcom-cpufreq-nvmem.c | 109 +-
drivers/cpufreq/qoriq-cpufreq.c | 1 +
drivers/cpufreq/scmi-cpufreq.c | 15 +-
drivers/cpufreq/scpi-cpufreq.c | 10 +-
drivers/cpufreq/sti-cpufreq.c | 27 +-
drivers/cpufreq/sun50i-cpufreq-nvmem.c | 31 +-
drivers/cpufreq/tegra194-cpufreq.c | 4 +-
drivers/cpufreq/tegra20-cpufreq.c | 12 +-
drivers/cpufreq/ti-cpufreq.c | 42 +-
drivers/cpuidle/Kconfig.arm | 3 +-
drivers/cpuidle/cpuidle-at91.c | 5 +-
drivers/cpuidle/cpuidle-kirkwood.c | 5 +-
drivers/cpuidle/cpuidle-psci.c | 8 +-
drivers/cpuidle/cpuidle-riscv-sbi.c | 8 +-
drivers/cpuidle/cpuidle.c | 15 +-
drivers/cpuidle/governors/haltpoll.c | 3 +
drivers/crypto/Kconfig | 115 -
.../crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c | 1 +
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c | 16 +-
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c | 10 +-
drivers/crypto/amcc/crypto4xx_core.c | 40 +-
drivers/crypto/atmel-aes.c | 3 +-
drivers/crypto/atmel-ecc.c | 12 +-
drivers/crypto/atmel-sha.c | 5 +-
drivers/crypto/atmel-tdes.c | 5 +-
drivers/crypto/caam/caamalg_qi2.c | 7 +-
drivers/crypto/caam/caamhash_desc.c | 2 +-
drivers/crypto/caam/qi.c | 6 +-
drivers/crypto/cavium/cpt/cpt_hw_types.h | 2 +-
drivers/crypto/ccp/ccp-dev.h | 2 +-
drivers/crypto/ccp/sev-dev.c | 12 +-
drivers/crypto/ccp/sp-pci.c | 7 +
drivers/crypto/ccp/sp-platform.c | 12 +-
drivers/crypto/ccree/cc_driver.c | 13 +-
drivers/crypto/ccree/cc_pm.c | 2 +
drivers/crypto/hisilicon/hpre/hpre_crypto.c | 2 +-
drivers/crypto/hisilicon/qm.c | 203 +-
drivers/crypto/hisilicon/sec/sec_algs.c | 14 +-
drivers/crypto/hisilicon/sec/sec_drv.c | 2 +-
drivers/crypto/hisilicon/sec/sec_drv.h | 2 +-
drivers/crypto/hisilicon/sec2/sec.h | 6 +-
drivers/crypto/hisilicon/sec2/sec_crypto.c | 26 +-
drivers/crypto/hisilicon/sec2/sec_crypto.h | 1 +
drivers/crypto/hisilicon/sec2/sec_main.c | 39 +-
drivers/crypto/hisilicon/trng/trng.c | 2 +-
drivers/crypto/hisilicon/zip/zip_crypto.c | 10 +-
drivers/crypto/hisilicon/zip/zip_main.c | 17 +-
drivers/crypto/inside-secure/safexcel.c | 2 +
drivers/crypto/inside-secure/safexcel.h | 18 +-
drivers/crypto/keembay/keembay-ocs-ecc.c | 2 -
.../crypto/marvell/octeontx2/otx2_cpt_devlink.c | 40 +-
.../crypto/marvell/octeontx2/otx2_cptpf_ucode.c | 17 +-
.../crypto/marvell/octeontx2/otx2_cptpf_ucode.h | 3 +
drivers/crypto/nx/nx-common-powernv.c | 2 +-
drivers/crypto/nx/nx-common-pseries.c | 5 +-
drivers/crypto/omap-aes.c | 4 -
drivers/crypto/omap-des.c | 4 -
drivers/crypto/omap-sham.c | 3 +-
drivers/crypto/qat/Kconfig | 14 +-
drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c | 1 +
drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.h | 1 +
drivers/crypto/qat/qat_4xxx/adf_drv.c | 6 +-
drivers/crypto/qat/qat_common/Makefile | 1 +
drivers/crypto/qat/qat_common/adf_accel_devices.h | 1 +
drivers/crypto/qat/qat_common/adf_cfg.c | 41 +-
drivers/crypto/qat/qat_common/adf_common_drv.h | 8 +-
drivers/crypto/qat/qat_common/adf_init.c | 26 +
drivers/crypto/qat/qat_common/adf_sriov.c | 28 +-
drivers/crypto/qat/qat_common/adf_sysfs.c | 191 +
drivers/crypto/qat/qat_common/qat_algs.c | 4 +-
drivers/crypto/qat/qat_common/qat_asym_algs.c | 4 +-
drivers/crypto/s5p-sss.c | 3 -
drivers/crypto/sa2ul.c | 25 +-
drivers/crypto/sa2ul.h | 1 +
drivers/crypto/ux500/hash/hash_core.c | 2 +-
drivers/crypto/vmx/ghash.c | 1 +
drivers/crypto/vmx/ghashp8-ppc.pl | 2 +-
drivers/cxl/Kconfig | 9 +
drivers/cxl/acpi.c | 243 +-
drivers/cxl/core/Makefile | 1 +
drivers/cxl/core/core.h | 51 +-
drivers/cxl/core/hdm.c | 691 +-
drivers/cxl/core/mbox.c | 101 +-
drivers/cxl/core/memdev.c | 4 +-
drivers/cxl/core/pci.c | 181 +-
drivers/cxl/core/pmem.c | 4 +-
drivers/cxl/core/port.c | 740 +-
drivers/cxl/core/region.c | 1896 +
drivers/cxl/cxl.h | 313 +-
drivers/cxl/cxlmem.h | 50 +-
drivers/cxl/cxlpci.h | 1 +
drivers/cxl/mem.c | 46 +-
drivers/cxl/pci.c | 46 +-
drivers/cxl/pmem.c | 265 +-
drivers/cxl/port.c | 53 +
drivers/dax/super.c | 67 +-
drivers/devfreq/Kconfig | 10 +
drivers/devfreq/Makefile | 1 +
drivers/devfreq/devfreq.c | 80 +-
drivers/devfreq/event/exynos-ppmu.c | 8 +-
drivers/devfreq/exynos-bus.c | 27 +-
drivers/devfreq/governor_passive.c | 62 +-
drivers/devfreq/imx-bus.c | 3 +-
drivers/devfreq/mtk-cci-devfreq.c | 440 +
drivers/devfreq/tegra30-devfreq.c | 26 +-
drivers/dma-buf/Kconfig | 6 +-
drivers/dma-buf/Makefile | 2 +-
drivers/dma-buf/dma-buf.c | 111 +-
drivers/dma-buf/dma-fence-chain.c | 4 +-
drivers/dma-buf/dma-fence-unwrap.c | 163 +
drivers/dma-buf/st-dma-fence-unwrap.c | 157 +-
drivers/dma-buf/sync_file.c | 119 +-
drivers/dma-buf/udmabuf.c | 23 +-
drivers/dma/Kconfig | 8 +
drivers/dma/Makefile | 1 +
drivers/dma/altera-msgdma.c | 4 +-
drivers/dma/amba-pl08x.c | 2 +-
drivers/dma/apple-admac.c | 818 +
drivers/dma/at_xdmac.c | 7 +-
drivers/dma/bcm-sba-raid.c | 14 +-
drivers/dma/bestcomm/ata.c | 7 +-
drivers/dma/bestcomm/bestcomm.c | 7 +-
drivers/dma/bestcomm/fec.c | 7 +-
drivers/dma/bestcomm/sram.c | 7 +-
drivers/dma/dma-axi-dmac.c | 16 +
drivers/dma/dma-jz4780.c | 2 +-
drivers/dma/dmaengine.c | 7 -
drivers/dma/dmatest.c | 58 +-
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 19 +-
drivers/dma/dw-edma/dw-edma-core.c | 141 +-
drivers/dma/dw-edma/dw-edma-core.h | 31 +-
drivers/dma/dw-edma/dw-edma-pcie.c | 83 +-
drivers/dma/dw-edma/dw-edma-v0-core.c | 49 +-
drivers/dma/dw-edma/dw-edma-v0-core.h | 4 +-
drivers/dma/dw-edma/dw-edma-v0-debugfs.c | 18 +-
drivers/dma/dw-edma/dw-edma-v0-debugfs.h | 8 +-
drivers/dma/dw/core.c | 3 -
drivers/dma/dw/rzn1-dmamux.c | 3 +
drivers/dma/ep93xx_dma.c | 2 +-
drivers/dma/fsl-edma-common.c | 3 -
drivers/dma/idxd/device.c | 5 +-
drivers/dma/idxd/init.c | 13 +-
drivers/dma/imx-dma.c | 2 +-
drivers/dma/imx-sdma.c | 42 +-
drivers/dma/lgm/lgm-dma.c | 3 +-
drivers/dma/mediatek/mtk-cqdma.c | 2 +-
drivers/dma/mediatek/mtk-hsdma.c | 4 +-
drivers/dma/moxart-dma.c | 5 +-
drivers/dma/mv_xor_v2.c | 2 +-
drivers/dma/owl-dma.c | 2 +-
drivers/dma/pl330.c | 2 +-
drivers/dma/ppc4xx/adma.h | 5 +-
drivers/dma/ppc4xx/dma.h | 5 +-
drivers/dma/ppc4xx/xor.h | 5 +-
drivers/dma/qcom/bam_dma.c | 39 +-
drivers/dma/s3c24xx-dma.c | 2 +-
drivers/dma/sf-pdma/sf-pdma.c | 44 +-
drivers/dma/sh/rz-dmac.c | 17 +
drivers/dma/sprd-dma.c | 5 +-
drivers/dma/ste_dma40.c | 2 +-
drivers/dma/stm32-mdma.c | 5 -
drivers/dma/sun4i-dma.c | 32 +-
drivers/dma/tegra186-gpc-dma.c | 26 +-
drivers/dma/ti/dma-crossbar.c | 5 +
drivers/dma/ti/edma.c | 10 +-
drivers/dma/ti/k3-psil-j721s2.c | 8 +
drivers/dma/xilinx/xilinx_dma.c | 122 -
drivers/dma/xilinx/xilinx_dpdma.c | 6 +-
drivers/edac/Kconfig | 1 +
drivers/edac/edac_pci.c | 7 +-
drivers/edac/fsl_ddr_edac.c | 6 +-
drivers/edac/fsl_ddr_edac.h | 7 +-
drivers/edac/ghes_edac.c | 11 +-
drivers/edac/mpc85xx_edac.c | 2 +
drivers/edac/mpc85xx_edac.h | 7 +-
drivers/edac/pnd2_edac.c | 62 +-
drivers/edac/ppc4xx_edac.c | 1 +
drivers/edac/synopsys_edac.c | 44 +-
drivers/extcon/extcon-fsa9480.c | 6 -
drivers/extcon/extcon-palmas.c | 2 +-
drivers/extcon/extcon-rt8973a.c | 1 -
drivers/extcon/extcon-sm5502.c | 2 -
drivers/extcon/extcon.c | 12 +-
drivers/firewire/core-cdev.c | 2 +-
drivers/firewire/core-device.c | 6 +-
drivers/firewire/net.c | 14 +-
drivers/firmware/arm_scmi/Kconfig | 12 +
drivers/firmware/arm_scmi/Makefile | 3 +-
drivers/firmware/arm_scmi/base.c | 24 +-
drivers/firmware/arm_scmi/bus.c | 6 +-
drivers/firmware/arm_scmi/clock.c | 33 +-
drivers/firmware/arm_scmi/driver.c | 282 +-
drivers/firmware/arm_scmi/optee.c | 7 +-
drivers/firmware/arm_scmi/perf.c | 249 +-
drivers/firmware/arm_scmi/power.c | 2 +-
drivers/firmware/arm_scmi/powercap.c | 866 +
drivers/firmware/arm_scmi/protocols.h | 28 +-
drivers/firmware/arm_scmi/reset.c | 2 +-
drivers/firmware/arm_scmi/scmi_power_control.c | 362 +
drivers/firmware/arm_scmi/sensors.c | 68 +-
drivers/firmware/arm_scmi/system.c | 17 +-
drivers/firmware/arm_scmi/voltage.c | 15 +-
drivers/firmware/arm_scpi.c | 61 +-
drivers/firmware/cirrus/cs_dsp.c | 107 +
drivers/firmware/efi/Kconfig | 14 +-
drivers/firmware/efi/Makefile | 1 -
drivers/firmware/efi/efi-init.c | 1 +
drivers/firmware/efi/efi-pstore.c | 377 +-
drivers/firmware/efi/efi.c | 127 +-
drivers/firmware/efi/efibc.c | 76 +-
drivers/firmware/efi/efivars.c | 671 -
drivers/firmware/efi/libstub/riscv-stub.c | 13 +-
drivers/firmware/efi/memmap.c | 5 +-
drivers/firmware/efi/reboot.c | 21 +-
drivers/firmware/efi/sysfb_efi.c | 2 -
drivers/firmware/efi/vars.c | 1219 +-
drivers/firmware/mtk-adsp-ipc.c | 36 +-
drivers/firmware/qcom_scm-legacy.c | 4 +
drivers/firmware/qcom_scm.c | 71 +-
drivers/firmware/stratix10-rsu.c | 129 +-
drivers/firmware/stratix10-svc.c | 201 +-
drivers/firmware/tegra/bpmp-debugfs.c | 10 +-
drivers/firmware/tegra/bpmp.c | 6 +-
drivers/firmware/xilinx/zynqmp.c | 16 +-
drivers/fpga/Kconfig | 20 +
drivers/fpga/Makefile | 4 +
drivers/fpga/altera-pr-ip-core.c | 2 +-
drivers/fpga/dfl.c | 4 +-
drivers/fpga/fpga-bridge.c | 6 +-
drivers/fpga/fpga-mgr.c | 229 +-
drivers/fpga/fpga-region.c | 6 +-
drivers/fpga/intel-m10-bmc-sec-update.c | 625 +
drivers/fpga/microchip-spi.c | 398 +
drivers/gpio/Kconfig | 22 +-
drivers/gpio/Makefile | 2 +-
drivers/gpio/gpio-104-dio-48e.c | 249 +-
drivers/gpio/gpio-104-idi-48.c | 157 +-
drivers/gpio/gpio-104-idio-16.c | 60 +-
drivers/gpio/gpio-74xx-mmio.c | 19 +-
drivers/gpio/gpio-adnp.c | 19 +-
drivers/gpio/gpio-adp5588.c | 26 +-
drivers/gpio/gpio-bcm-kona.c | 10 +-
drivers/gpio/gpio-brcmstb.c | 23 +-
drivers/gpio/gpio-crystalcove.c | 70 +-
drivers/gpio/gpio-davinci.c | 83 +
drivers/gpio/gpio-dln2.c | 23 +-
drivers/gpio/gpio-dwapb.c | 7 +-
drivers/gpio/gpio-gpio-mm.c | 202 +-
drivers/gpio/gpio-grgpio.c | 14 +-
drivers/gpio/gpio-i8255.c | 287 +
drivers/gpio/gpio-i8255.h | 46 +
drivers/gpio/gpio-lp3943.c | 16 +-
drivers/gpio/gpio-lp873x.c | 10 +-
drivers/gpio/gpio-lp87565.c | 10 +-
drivers/gpio/gpio-merrifield.c | 22 +-
drivers/gpio/gpio-mpc8xxx.c | 5 +-
drivers/gpio/gpio-msc313.c | 15 +-
drivers/gpio/gpio-mvebu.c | 5 +-
drivers/gpio/gpio-mxs.c | 2 +-
drivers/gpio/gpio-pca953x.c | 22 +-
drivers/gpio/gpio-pca9570.c | 2 +
drivers/gpio/gpio-pch.c | 43 +-
drivers/gpio/gpio-pisosr.c | 10 +-
drivers/gpio/gpio-realtek-otto.c | 10 +-
drivers/gpio/gpio-rockchip.c | 3 +-
drivers/gpio/gpio-sch.c | 35 +-
drivers/gpio/gpio-sim.c | 16 +-
drivers/gpio/gpio-spear-spics.c | 5 +-
drivers/gpio/gpio-tegra.c | 15 +-
drivers/gpio/gpio-tegra186.c | 15 +-
drivers/gpio/gpio-thunderx.c | 17 +-
drivers/gpio/gpio-tpic2810.c | 10 +-
drivers/gpio/gpio-ts4800.c | 5 +-
drivers/gpio/gpio-twl4030.c | 18 +-
drivers/gpio/gpio-ucb1400.c | 20 -
drivers/gpio/gpio-vf610.c | 1 +
drivers/gpio/gpio-visconti.c | 15 +-
drivers/gpio/gpio-vr41xx.c | 543 -
drivers/gpio/gpio-wcove.c | 10 +-
drivers/gpio/gpio-winbond.c | 7 +-
drivers/gpio/gpio-ws16c48.c | 120 +-
drivers/gpio/gpio-xgs-iproc.c | 6 +-
drivers/gpio/gpio-xilinx.c | 4 +-
drivers/gpio/gpiolib-acpi.c | 3 +
drivers/gpio/gpiolib-cdev.c | 294 +-
drivers/gpio/gpiolib-devres.c | 32 -
drivers/gpio/gpiolib-of.c | 13 +-
drivers/gpio/gpiolib.c | 59 +-
drivers/gpu/drm/Kconfig | 19 +
drivers/gpu/drm/Makefile | 4 +-
drivers/gpu/drm/amd/amdgpu/Kconfig | 5 +-
drivers/gpu/drm/amd/amdgpu/Makefile | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 23 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 346 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 6 -
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 27 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 21 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c | 9 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 615 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 16 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 67 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 163 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 288 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 28 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 76 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_display.h | 2 -
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 31 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 57 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 72 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_imu.h | 7 +
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 41 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_job.h | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 62 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 223 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 67 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes_ctx.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 5 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 37 +
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 5 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 84 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h | 97 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_reset.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 12 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.h | 10 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 20 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 10 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 50 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 20 +
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h | 10 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 110 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 23 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 394 +-
.../rootgf119.c => amd/amdgpu/amdgpu_vram_mgr.h} | 67 +-
drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | 14 -
drivers/gpu/drm/amd/amdgpu/clearstate_gfx11.h | 307 +-
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 3 +-
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 3 +-
drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 5 +-
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 5 +-
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 176 +-
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 289 +-
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 8 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c | 32 +-
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 25 +-
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c | 45 +-
drivers/gpu/drm/amd/amdgpu/imu_v11_0.c | 48 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.h | 1 +
drivers/gpu/drm/amd/amdgpu/mes_v10_1.c | 119 +-
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 234 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_1.c | 555 +
.../disp/hdagv100.c => amd/amdgpu/mmhub_v3_0_1.h} | 16 +-
drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c | 12 +-
drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c | 12 +-
drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c | 12 +-
drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c | 23 +-
drivers/gpu/drm/amd/amdgpu/nbio_v2_3.h | 1 -
drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c | 126 +-
drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c | 21 -
drivers/gpu/drm/amd/amdgpu/nbio_v7_4.h | 1 -
drivers/gpu/drm/amd/amdgpu/nbio_v7_7.c | 29 +-
drivers/gpu/drm/amd/amdgpu/nv.c | 1 +
drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h | 2 +
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 166 +
drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.c | 387 +
.../disp/changv100.c => amd/amdgpu/psp_v13_0_4.h} | 20 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 79 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 109 +-
drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c | 131 +-
drivers/gpu/drm/amd/amdgpu/soc21.c | 36 +-
drivers/gpu/drm/amd/amdgpu/umc_v6_7.c | 50 +-
drivers/gpu/drm/amd/amdgpu/umc_v8_10.c | 357 +
drivers/gpu/drm/amd/amdgpu/umc_v8_10.h | 70 +
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 17 +-
drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 667 +-
drivers/gpu/drm/amd/amdkfd/Kconfig | 14 +
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 83 +-
drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 4 +-
drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c | 2 +
drivers/gpu/drm/amd/amdkfd/kfd_device.c | 26 +-
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 23 +-
drivers/gpu/drm/amd/amdkfd/kfd_events.c | 5 +-
drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c | 4 +-
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 95 +-
drivers/gpu/drm/amd/amdkfd/kfd_migrate.h | 5 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c | 12 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c | 2 +
drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 5 +-
drivers/gpu/drm/amd/amdkfd/kfd_process.c | 48 +-
.../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 32 +-
drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c | 134 +-
drivers/gpu/drm/amd/amdkfd/kfd_smi_events.h | 21 +-
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 207 +-
drivers/gpu/drm/amd/amdkfd/kfd_svm.h | 5 +-
drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 323 +-
drivers/gpu/drm/amd/amdkfd/kfd_topology.h | 4 +-
drivers/gpu/drm/amd/display/Kconfig | 2 +-
drivers/gpu/drm/amd/display/amdgpu_dm/Makefile | 8 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3008 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 40 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 464 +
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.h | 51 +
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 243 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.h | 2 -
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c | 38 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 38 +-
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 183 +-
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.h | 6 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 1649 +
.../drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h | 73 +
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c | 21 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 1 +
drivers/gpu/drm/amd/display/dc/Makefile | 7 +-
drivers/gpu/drm/amd/display/dc/basics/vector.c | 2 -
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c | 982 +-
.../display/dc/bios/bios_parser_types_internal2.h | 1 +
.../gpu/drm/amd/display/dc/bios/command_table.c | 4 +-
.../amd/display/dc/bios/command_table_helper2.c | 3 +
drivers/gpu/drm/amd/display/dc/clk_mgr/Makefile | 36 +-
drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 45 +-
.../amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c | 23 +-
.../amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.c | 4 +-
.../drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 234 +-
.../drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.h | 7 +
.../dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c | 18 +-
.../amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c | 60 +-
.../amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.h | 60 +
.../dc/clk_mgr/dcn30/dcn30_clk_mgr_smu_msg.c | 11 +-
.../drm/amd/display/dc/clk_mgr/dcn301/dcn301_smu.c | 17 +
.../drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c | 85 +-
.../drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.h | 3 +
.../amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c | 14 +-
.../amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.h | 2 +
.../drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c | 14 +-
.../amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c | 752 +
.../amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.h | 57 +
.../drm/amd/display/dc/clk_mgr/dcn314/dcn314_smu.c | 391 +
.../drm/amd/display/dc/clk_mgr/dcn314/dcn314_smu.h | 79 +
.../amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c | 19 +-
.../drm/amd/display/dc/clk_mgr/dcn315/dcn315_smu.c | 14 +-
.../amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c | 6 +-
.../drm/amd/display/dc/clk_mgr/dcn316/dcn316_smu.c | 14 +-
.../gpu/drm/amd/display/dc/clk_mgr/dcn32/dalsmc.h | 65 +
.../amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c | 798 +
.../display/dc/clk_mgr/dcn32/dcn32_clk_mgr.h} | 27 +-
.../dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.c | 141 +
.../dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.h | 47 +
.../dc/clk_mgr/dcn32/dcn32_smu13_driver_if.h | 63 +
.../amd/display/dc/clk_mgr/dcn32/smu13_driver_if.h | 108 +
drivers/gpu/drm/amd/display/dc/core/dc.c | 679 +-
drivers/gpu/drm/amd/display/dc/core/dc_debug.c | 4 +
.../gpu/drm/amd/display/dc/core/dc_hw_sequencer.c | 2 -
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 176 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 9 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 517 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_dpia.c | 96 +-
.../gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c | 77 +-
drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 348 +-
drivers/gpu/drm/amd/display/dc/core/dc_sink.c | 2 -
drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 13 +-
drivers/gpu/drm/amd/display/dc/core/dc_surface.c | 2 -
drivers/gpu/drm/amd/display/dc/dc.h | 76 +-
drivers/gpu/drm/amd/display/dc/dc_bios_types.h | 5 +
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 469 +
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.h | 10 +
drivers/gpu/drm/amd/display/dc/dc_hw_types.h | 3 +
drivers/gpu/drm/amd/display/dc/dc_link.h | 10 +
drivers/gpu/drm/amd/display/dc/dc_stream.h | 60 +-
drivers/gpu/drm/amd/display/dc/dc_types.h | 31 +-
drivers/gpu/drm/amd/display/dc/dce/dce_abm.h | 45 +
drivers/gpu/drm/amd/display/dc/dce/dce_audio.c | 15 +-
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c | 8 +-
.../gpu/drm/amd/display/dc/dce/dce_clock_source.c | 45 +-
.../gpu/drm/amd/display/dc/dce/dce_clock_source.h | 20 +-
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c | 3 -
drivers/gpu/drm/amd/display/dc/dce/dce_i2c_sw.c | 2 -
drivers/gpu/drm/amd/display/dc/dce/dce_ipp.c | 2 -
.../gpu/drm/amd/display/dc/dce/dce_link_encoder.c | 3 -
drivers/gpu/drm/amd/display/dc/dce/dce_opp.c | 2 -
.../drm/amd/display/dc/dce/dce_stream_encoder.c | 5 +-
.../drm/amd/display/dc/dce/dce_stream_encoder.h | 14 +-
.../gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c | 2 +
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c | 64 +
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.h | 2 +
.../drm/amd/display/dc/dce100/dce100_resource.c | 3 +-
.../drm/amd/display/dc/dce110/dce110_compressor.c | 3 -
.../amd/display/dc/dce110/dce110_hw_sequencer.c | 46 +-
.../amd/display/dc/dce110/dce110_opp_regamma_v.c | 2 -
.../drm/amd/display/dc/dce110/dce110_resource.c | 3 +-
.../drm/amd/display/dc/dce110/dce110_transform_v.c | 2 -
.../drm/amd/display/dc/dce112/dce112_compressor.c | 3 -
.../drm/amd/display/dc/dce112/dce112_resource.c | 3 +-
.../drm/amd/display/dc/dce120/dce120_resource.c | 3 +-
.../gpu/drm/amd/display/dc/dce60/dce60_resource.c | 1 +
.../gpu/drm/amd/display/dc/dce80/dce80_resource.c | 3 +-
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c | 2 +
.../gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.c | 2 -
.../gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.h | 33 +
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c | 5 +
.../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 153 +-
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_ipp.c | 2 -
.../drm/amd/display/dc/dcn10/dcn10_link_encoder.c | 3 -
.../drm/amd/display/dc/dcn10/dcn10_link_encoder.h | 6 +
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c | 5 +
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c | 2 -
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c | 1 +
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.h | 5 +
.../gpu/drm/amd/display/dc/dcn10/dcn10_resource.c | 3 +-
.../amd/display/dc/dcn10/dcn10_stream_encoder.c | 23 +-
.../amd/display/dc/dcn10/dcn10_stream_encoder.h | 26 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dccg.h | 34 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dpp.c | 5 +
.../gpu/drm/amd/display/dc/dcn20/dcn20_dpp_cm.c | 68 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.c | 17 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.h | 219 +
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dwb.c | 4 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hubp.c | 5 +
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hubp.h | 25 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 170 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c | 36 +-
.../gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 12 +-
.../gpu/drm/amd/display/dc/dcn20/dcn20_resource.h | 1 +
.../amd/display/dc/dcn20/dcn20_stream_encoder.c | 2 +-
drivers/gpu/drm/amd/display/dc/dcn201/Makefile | 25 -
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dpp.c | 3 +
.../drm/amd/display/dc/dcn201/dcn201_resource.c | 11 +-
.../gpu/drm/amd/display/dc/dcn21/dcn21_resource.c | 3 +-
drivers/gpu/drm/amd/display/dc/dcn30/Makefile | 32 -
.../display/dc/dcn30/dcn30_dio_stream_encoder.c | 36 +-
.../display/dc/dcn30/dcn30_dio_stream_encoder.h | 41 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dpp.c | 90 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dpp.h | 16 +
.../gpu/drm/amd/display/dc/dcn30/dcn30_dpp_cm.c | 25 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c | 81 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.h | 11 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_init.c | 2 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.c | 84 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.h | 251 +
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_optc.c | 21 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_optc.h | 12 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_resource.c | 155 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_resource.h | 3 +
.../drm/amd/display/dc/dcn301/dcn301_resource.c | 1 +
drivers/gpu/drm/amd/display/dc/dcn302/Makefile | 19 -
.../drm/amd/display/dc/dcn302/dcn302_resource.c | 4 +-
.../drm/amd/display/dc/dcn303/dcn303_resource.c | 4 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.c | 116 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.h | 51 +-
.../amd/display/dc/dcn31/dcn31_dio_link_encoder.c | 10 +-
.../amd/display/dc/dcn31/dcn31_dio_link_encoder.h | 28 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubp.c | 2 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hwseq.c | 24 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_optc.c | 3 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_optc.h | 8 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 28 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.h | 1 -
drivers/gpu/drm/amd/display/dc/dcn314/Makefile | 43 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_dccg.c | 283 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_dccg.h | 159 +
.../display/dc/dcn314/dcn314_dio_stream_encoder.c | 462 +
.../display/dc/dcn314/dcn314_dio_stream_encoder.h | 311 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.c | 376 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.h | 42 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_init.c | 159 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_init.h | 34 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_optc.c | 274 +
.../gpu/drm/amd/display/dc/dcn314/dcn314_optc.h | 255 +
.../drm/amd/display/dc/dcn314/dcn314_resource.c | 2361 +
.../drm/amd/display/dc/dcn314/dcn314_resource.h | 43 +
.../drm/amd/display/dc/dcn315/dcn315_resource.c | 13 +-
.../drm/amd/display/dc/dcn316/dcn316_resource.c | 13 +-
drivers/gpu/drm/amd/display/dc/dcn32/Makefile | 20 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c | 308 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.h | 159 +
.../amd/display/dc/dcn32/dcn32_dio_link_encoder.c | 294 +
.../amd/display/dc/dcn32/dcn32_dio_link_encoder.h | 60 +
.../display/dc/dcn32/dcn32_dio_stream_encoder.c | 475 +
.../display/dc/dcn32/dcn32_dio_stream_encoder.h | 267 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dpp.c | 164 +
.../hw_translate_diag.c => dcn32/dcn32_dpp.h} | 27 +-
.../display/dc/dcn32/dcn32_hpo_dp_link_encoder.c | 90 +
.../display/dc/dcn32/dcn32_hpo_dp_link_encoder.h | 63 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_hubbub.c | 964 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_hubbub.h | 174 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubp.c | 186 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubp.h | 72 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c | 1188 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.h | 87 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.c | 158 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.h | 33 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_mmhubbub.c | 239 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_mmhubbub.h | 225 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mpc.c | 1044 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mpc.h | 322 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_optc.c | 328 +
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_optc.h | 254 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_resource.c | 2479 +
.../gpu/drm/amd/display/dc/dcn32/dcn32_resource.h | 112 +
.../amd/display/dc/dcn32/dcn32_resource_helpers.c | 212 +
drivers/gpu/drm/amd/display/dc/dcn321/Makefile | 17 +
.../display/dc/dcn321/dcn321_dio_link_encoder.c | 199 +
.../display/dc/dcn321/dcn321_dio_link_encoder.h | 42 +
.../drm/amd/display/dc/dcn321/dcn321_resource.c | 1972 +
.../drm/amd/display/dc/dcn321/dcn321_resource.h | 45 +
drivers/gpu/drm/amd/display/dc/dml/Makefile | 11 +
drivers/gpu/drm/amd/display/dc/dml/dc_features.h | 2 +-
.../gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 438 +-
.../gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.h | 6 +
.../gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.c | 146 +-
.../gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.h | 9 +
.../amd/display/dc/dml/dcn30/display_mode_vba_30.c | 57 +-
.../amd/display/dc/dml/dcn30/display_mode_vba_30.h | 11 +
.../display/dc/dml/dcn30/display_rq_dlg_calc_30.c | 93 +-
.../gpu/drm/amd/display/dc/dml/dcn301/dcn301_fpu.c | 114 +-
.../gpu/drm/amd/display/dc/dml/dcn303/dcn303_fpu.c | 15 +-
.../gpu/drm/amd/display/dc/dml/dcn31/dcn31_fpu.c | 93 +-
.../gpu/drm/amd/display/dc/dml/dcn31/dcn31_fpu.h | 5 +
.../amd/display/dc/dml/dcn31/display_mode_vba_31.c | 109 +-
.../display/dc/dml/dcn31/display_rq_dlg_calc_31.c | 126 +-
.../display/dc/dml/dcn314/display_mode_vba_314.c | 7420 +
.../display/dc/dml/dcn314/display_mode_vba_314.h | 44 +
.../dc/dml/dcn314/display_rq_dlg_calc_314.c | 1733 +
.../dc/dml/dcn314/display_rq_dlg_calc_314.h | 70 +
.../gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 2291 +
.../gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.h | 74 +
.../amd/display/dc/dml/dcn32/display_mode_vba_32.c | 3778 +
.../dcn32/display_mode_vba_32.h} | 65 +-
.../dc/dml/dcn32/display_mode_vba_util_32.c | 6175 +
.../dc/dml/dcn32/display_mode_vba_util_32.h | 1188 +
.../display/dc/dml/dcn32/display_rq_dlg_calc_32.c | 615 +
.../display/dc/dml/dcn32/display_rq_dlg_calc_32.h | 70 +
.../gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.c | 684 +
.../gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.h | 38 +
.../drm/amd/display/dc/dml/display_mode_enums.h | 88 +-
.../gpu/drm/amd/display/dc/dml/display_mode_lib.c | 12 +
.../gpu/drm/amd/display/dc/dml/display_mode_lib.h | 15 +
.../drm/amd/display/dc/dml/display_mode_structs.h | 142 +
.../gpu/drm/amd/display/dc/dml/display_mode_vba.c | 185 +-
.../gpu/drm/amd/display/dc/dml/display_mode_vba.h | 392 +-
drivers/gpu/drm/amd/display/dc/dml/dml_wrapper.c | 73 +-
drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c | 4 +-
drivers/gpu/drm/amd/display/dc/gpio/Makefile | 8 +-
.../amd/display/dc/gpio/dcn20/hw_translate_dcn20.c | 17 +-
.../amd/display/dc/gpio/dcn21/hw_translate_dcn21.c | 17 +-
.../amd/display/dc/gpio/dcn30/hw_translate_dcn30.c | 19 +-
.../amd/display/dc/gpio/dcn32/hw_factory_dcn32.c | 255 +
.../hw_factory_diag.h => dcn32/hw_factory_dcn32.h} | 13 +-
.../amd/display/dc/gpio/dcn32/hw_translate_dcn32.c | 349 +
.../hw_translate_dcn32.h} | 11 +-
drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c | 2 -
drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c | 2 -
drivers/gpu/drm/amd/display/dc/gpio/hw_ddc.c | 3 -
drivers/gpu/drm/amd/display/dc/gpio/hw_factory.c | 19 +-
drivers/gpu/drm/amd/display/dc/gpio/hw_hpd.c | 2 -
drivers/gpu/drm/amd/display/dc/gpio/hw_translate.c | 14 +-
drivers/gpu/drm/amd/display/dc/inc/clock_source.h | 7 +-
drivers/gpu/drm/amd/display/dc/inc/core_status.h | 3 +-
drivers/gpu/drm/amd/display/dc/inc/core_types.h | 47 +
drivers/gpu/drm/amd/display/dc/inc/dc_link_dp.h | 8 +-
drivers/gpu/drm/amd/display/dc/inc/hw/clk_mgr.h | 8 +-
.../drm/amd/display/dc/inc/hw/clk_mgr_internal.h | 45 +-
drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h | 48 +-
drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h | 3 +
drivers/gpu/drm/amd/display/dc/inc/hw/dwb.h | 6 -
drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h | 8 +
.../gpu/drm/amd/display/dc/inc/hw/link_encoder.h | 23 +-
drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h | 2 +
drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h | 5 +
.../gpu/drm/amd/display/dc/inc/hw/stream_encoder.h | 11 +
.../drm/amd/display/dc/inc/hw/timing_generator.h | 10 +-
drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h | 9 +
.../drm/amd/display/dc/inc/hw_sequencer_private.h | 13 +
drivers/gpu/drm/amd/display/dc/inc/link_enc_cfg.h | 12 +
drivers/gpu/drm/amd/display/dc/inc/link_hwss.h | 6 +-
drivers/gpu/drm/amd/display/dc/inc/resource.h | 7 +
drivers/gpu/drm/amd/display/dc/irq/Makefile | 18 +
.../amd/display/dc/irq/dce110/irq_service_dce110.c | 2 -
.../amd/display/dc/irq/dce120/irq_service_dce120.c | 2 -
.../amd/display/dc/irq/dce80/irq_service_dce80.c | 2 -
.../amd/display/dc/irq/dcn10/irq_service_dcn10.c | 2 -
.../amd/display/dc/irq/dcn30/irq_service_dcn30.c | 14 +-
.../amd/display/dc/irq/dcn303/irq_service_dcn303.c | 19 +
.../amd/display/dc/irq/dcn314/irq_service_dcn314.c | 434 +
.../display/dc/irq/dcn314/irq_service_dcn314.h} | 23 +-
.../amd/display/dc/irq/dcn32/irq_service_dcn32.c | 432 +
.../amd/display/dc/irq/dcn32/irq_service_dcn32.h | 35 +
drivers/gpu/drm/amd/display/dc/irq/irq_service.c | 2 -
.../gpu/drm/amd/display/dc/link/link_hwss_dio.c | 7 +
.../gpu/drm/amd/display/dc/link/link_hwss_hpo_dp.c | 23 +-
drivers/gpu/drm/amd/display/dc/os_types.h | 3 +-
.../amd/display/dc/virtual/virtual_link_encoder.c | 2 -
.../display/dc/virtual/virtual_stream_encoder.c | 2 -
drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 9 +
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 396 +-
.../drm/amd/display/dmub/inc/dmub_subvp_state.h | 183 +
drivers/gpu/drm/amd/display/dmub/src/Makefile | 1 +
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.c | 11 +-
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.h | 3 +-
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.c | 493 +
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.h | 256 +
drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c | 52 +-
.../drm/amd/display/include/bios_parser_types.h | 11 +
drivers/gpu/drm/amd/display/include/dal_asic_id.h | 15 +-
drivers/gpu/drm/amd/display/include/dal_types.h | 3 +
.../drm/amd/display/include/ddc_service_types.h | 6 +
drivers/gpu/drm/amd/display/include/fixed31_32.h | 2 +-
.../drm/amd/display/include/link_service_types.h | 3 +-
.../gpu/drm/amd/display/include/set_mode_types.h | 8 +-
.../drm/amd/display/modules/color/color_gamma.c | 3 -
.../drm/amd/display/modules/freesync/freesync.c | 7 +-
.../amd/display/modules/hdcp/hdcp2_transition.c | 2 +-
.../gpu/drm/amd/display/modules/hdcp/hdcp_psp.c | 4 +
.../gpu/drm/amd/display/modules/hdcp/hdcp_psp.h | 11 +
.../gpu/drm/amd/display/modules/inc/mod_freesync.h | 3 +
.../amd/display/modules/info_packet/info_packet.c | 29 +-
.../drm/amd/display/modules/power/power_helpers.c | 117 +-
.../drm/amd/display/modules/power/power_helpers.h | 6 +
drivers/gpu/drm/amd/display/modules/vmid/vmid.c | 2 +-
drivers/gpu/drm/amd/include/amd_shared.h | 3 +
.../amd/include/asic_reg/clk/clk_11_0_1_offset.h | 0
.../amd/include/asic_reg/clk/clk_11_0_1_sh_mask.h | 0
.../gpu/drm/amd/include/asic_reg/dce/dce_11_0_d.h | 1 +
.../amd/include/asic_reg/dce/dce_11_0_sh_mask.h | 2 +
.../drm/amd/include/asic_reg/dce/dce_6_0_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_2_0_3_offset.h | 0
.../amd/include/asic_reg/dcn/dcn_2_0_3_sh_mask.h | 0
.../amd/include/asic_reg/dcn/dcn_3_0_0_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_3_0_1_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_3_0_2_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_3_0_3_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_3_1_2_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_3_1_4_offset.h | 15245 ++
.../amd/include/asic_reg/dcn/dcn_3_1_4_sh_mask.h | 61832 +++++
.../amd/include/asic_reg/dcn/dcn_3_2_0_offset.h | 14677 ++
.../amd/include/asic_reg/dcn/dcn_3_2_0_sh_mask.h | 222893 ++++++++++++++++++
.../amd/include/asic_reg/dcn/dcn_3_2_1_offset.h | 14561 ++
.../amd/include/asic_reg/dcn/dcn_3_2_1_sh_mask.h | 56582 +++++
.../amd/include/asic_reg/dpcs/dpcs_2_0_3_offset.h | 0
.../amd/include/asic_reg/dpcs/dpcs_2_0_3_sh_mask.h | 0
.../amd/include/asic_reg/dpcs/dpcs_3_1_4_offset.h | 7215 +
.../amd/include/asic_reg/dpcs/dpcs_3_1_4_sh_mask.h | 55194 +++++
.../drm/amd/include/asic_reg/gc/gc_11_0_0_offset.h | 3 +
.../amd/include/asic_reg/gc/gc_11_0_0_sh_mask.h | 25 +
.../include/asic_reg/mmhub/mmhub_3_0_1_offset.h | 1769 +
.../include/asic_reg/mmhub/mmhub_3_0_1_sh_mask.h | 7483 +
.../drm/amd/include/asic_reg/mp/mp_13_0_4_offset.h | 402 +
.../amd/include/asic_reg/mp/mp_13_0_4_sh_mask.h | 595 +
.../amd/include/asic_reg/nbio/nbio_4_3_0_offset.h | 2 +
.../amd/include/asic_reg/nbio/nbio_4_3_0_sh_mask.h | 1 +
.../amd/include/asic_reg/nbio/nbio_7_7_0_offset.h | 4 +
.../amd/include/asic_reg/nbio/nbio_7_7_0_sh_mask.h | 10 +
.../amd/include/asic_reg/umc/umc_8_10_0_offset.h | 33 +
.../amd/include/asic_reg/umc/umc_8_10_0_sh_mask.h | 94 +
drivers/gpu/drm/amd/include/atombios.h | 4 +-
drivers/gpu/drm/amd/include/atomfirmware.h | 209 +-
drivers/gpu/drm/amd/include/mes_api_def.h | 2 +-
drivers/gpu/drm/amd/include/mes_v11_api_def.h | 49 +-
drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 14 +
drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h | 11 +
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 33 +-
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 12 +
.../drm/amd/pm/swsmu/inc/pmfw_if/arcturus_ppsmc.h | 2 +-
.../swsmu/inc/pmfw_if/smu13_driver_if_aldebaran.h | 17 +-
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_0.h | 15 +-
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h | 80 +-
.../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_7_ppsmc.h | 9 +-
drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h | 1 +
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v11_0.h | 2 +
.../gpu/drm/amd/pm/swsmu/inc/smu_v11_0_7_pptable.h | 9 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v11_0_pptable.h | 9 +-
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h | 23 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v13_0_7_pptable.h | 5 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v13_0_pptable.h | 10 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 10 +-
.../drm/amd/pm/swsmu/smu11/cyan_skillfish_ppt.c | 1 +
drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 1 +
.../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 17 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 11 +
drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c | 39 +
drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c | 14 +
drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 98 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 83 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 215 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c | 28 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_5_ppt.c | 14 +
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 43 +
.../gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c | 32 +
drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c | 83 +-
drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c | 1 +
drivers/gpu/drm/arm/display/komeda/komeda_kms.h | 1 +
.../gpu/drm/arm/display/komeda/komeda_pipeline.c | 2 +
drivers/gpu/drm/arm/display/komeda/komeda_plane.c | 1 +
.../drm/arm/display/komeda/komeda_wb_connector.c | 1 +
drivers/gpu/drm/arm/hdlcd_crtc.c | 1 +
drivers/gpu/drm/arm/malidp_crtc.c | 1 +
drivers/gpu/drm/arm/malidp_mw.c | 2 +
drivers/gpu/drm/arm/malidp_planes.c | 2 +
drivers/gpu/drm/armada/armada_510.c | 1 +
drivers/gpu/drm/armada/armada_fb.h | 2 +
drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c | 1 +
drivers/gpu/drm/aspeed/aspeed_gfx_out.c | 1 +
drivers/gpu/drm/ast/ast_dp.c | 10 +-
drivers/gpu/drm/ast/ast_drv.h | 2 +-
drivers/gpu/drm/ast/ast_mode.c | 27 +-
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 1 +
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 1 +
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 2 +
drivers/gpu/drm/bridge/Kconfig | 21 +
drivers/gpu/drm/bridge/Makefile | 2 +
drivers/gpu/drm/bridge/adv7511/adv7511.h | 12 -
drivers/gpu/drm/bridge/adv7511/adv7511_cec.c | 12 +
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 24 +-
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 1 +
drivers/gpu/drm/bridge/analogix/anx7625.c | 200 +-
.../gpu/drm/bridge/cadence/cdns-mhdp8546-core.c | 2 +
drivers/gpu/drm/bridge/cdns-dsi.c | 26 +
drivers/gpu/drm/bridge/chipone-icn6211.c | 54 +-
drivers/gpu/drm/bridge/chrontel-ch7033.c | 1 +
drivers/gpu/drm/bridge/display-connector.c | 1 +
drivers/gpu/drm/bridge/fsl-ldb.c | 1 +
drivers/gpu/drm/bridge/imx/Kconfig | 47 +
drivers/gpu/drm/bridge/imx/Makefile | 9 +
drivers/gpu/drm/bridge/imx/imx-ldb-helper.c | 221 +
drivers/gpu/drm/bridge/imx/imx-ldb-helper.h | 96 +
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c | 588 +
drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c | 723 +
.../gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c | 450 +
drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c | 430 +
drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c | 488 +
drivers/gpu/drm/bridge/ite-it66121.c | 1 +
drivers/gpu/drm/bridge/lontium-lt8912b.c | 11 +-
drivers/gpu/drm/bridge/lontium-lt9211.c | 7 +-
drivers/gpu/drm/bridge/lontium-lt9611.c | 26 +-
drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 3 +-
drivers/gpu/drm/bridge/nwl-dsi.c | 7 +
drivers/gpu/drm/bridge/panel.c | 34 +
drivers/gpu/drm/bridge/parade-ps8622.c | 6 +-
drivers/gpu/drm/bridge/parade-ps8640.c | 113 +-
drivers/gpu/drm/bridge/sii902x.c | 6 +-
drivers/gpu/drm/bridge/sil-sii8620.c | 4 +-
drivers/gpu/drm/bridge/simple-bridge.c | 1 +
.../gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 2 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 1 +
drivers/gpu/drm/bridge/tc358764.c | 1 +
drivers/gpu/drm/bridge/tc358767.c | 180 +-
drivers/gpu/drm/bridge/tc358775.c | 25 +-
drivers/gpu/drm/bridge/ti-dlpc3433.c | 418 +
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 71 +-
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 27 +-
drivers/gpu/drm/bridge/ti-tfp410.c | 2 +
drivers/gpu/drm/display/Kconfig | 2 +-
drivers/gpu/drm/display/drm_dp_aux_bus.c | 211 +-
drivers/gpu/drm/display/drm_dp_helper.c | 4 +-
drivers/gpu/drm/display/drm_dp_mst_topology.c | 33 +-
drivers/gpu/drm/drm_aperture.c | 178 +-
drivers/gpu/drm/drm_atomic.c | 2 +
drivers/gpu/drm/drm_atomic_helper.c | 57 +
drivers/gpu/drm/drm_atomic_state_helper.c | 2 +
drivers/gpu/drm/drm_atomic_uapi.c | 1 +
drivers/gpu/drm/drm_blend.c | 2 +-
drivers/gpu/drm/drm_bridge.c | 24 +
drivers/gpu/drm/drm_bridge_connector.c | 8 +-
drivers/gpu/drm/drm_client_modeset.c | 29 +-
drivers/gpu/drm/drm_connector.c | 119 +-
drivers/gpu/drm/drm_crtc.c | 2 +
drivers/gpu/drm/drm_crtc_helper.c | 1 +
drivers/gpu/drm/drm_crtc_internal.h | 5 +-
drivers/gpu/drm/drm_damage_helper.c | 1 +
drivers/gpu/drm/drm_debugfs.c | 42 +-
drivers/gpu/drm/drm_displayid.c | 16 +-
drivers/gpu/drm/drm_edid.c | 2010 +-
drivers/gpu/drm/drm_encoder.c | 2 +-
drivers/gpu/drm/drm_fb_helper.c | 28 +-
drivers/gpu/drm/drm_file.c | 3 +-
drivers/gpu/drm/drm_gem.c | 21 +-
drivers/gpu/drm/drm_gem_atomic_helper.c | 7 +-
drivers/gpu/drm/drm_gem_cma_helper.c | 39 +-
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 104 +-
drivers/gpu/drm/drm_gem_shmem_helper.c | 1 +
drivers/gpu/drm/drm_gem_vram_helper.c | 54 +-
drivers/gpu/drm/drm_internal.h | 4 +-
drivers/gpu/drm/drm_ioctl.c | 2 +-
drivers/gpu/drm/drm_kms_helper_common.c | 1 +
drivers/gpu/drm/drm_mipi_dbi.c | 9 +
drivers/gpu/drm/drm_mode_config.c | 1 +
drivers/gpu/drm/drm_modes.c | 6 +
drivers/gpu/drm/drm_modeset_helper.c | 1 +
drivers/gpu/drm/drm_of.c | 63 +
drivers/gpu/drm/drm_panel_orientation_quirks.c | 2 +-
drivers/gpu/drm/drm_prime.c | 22 +-
drivers/gpu/drm/drm_probe_helper.c | 241 +-
drivers/gpu/drm/drm_simple_kms_helper.c | 14 +-
drivers/gpu/drm/drm_syncobj.c | 59 +-
drivers/gpu/drm/drm_writeback.c | 1 +
drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 2 +
drivers/gpu/drm/exynos/exynos7_drm_decon.c | 18 +-
drivers/gpu/drm/exynos/exynos_dp.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_dpi.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_drv.c | 6 +-
drivers/gpu/drm/exynos/exynos_drm_fb.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +
drivers/gpu/drm/exynos/exynos_drm_ipp.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_mic.c | 42 +-
drivers/gpu/drm/exynos/exynos_drm_plane.c | 2 +
drivers/gpu/drm/exynos/exynos_drm_scaler.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_vidi.c | 1 +
drivers/gpu/drm/exynos/exynos_hdmi.c | 8 +-
drivers/gpu/drm/exynos/exynos_mixer.c | 3 +
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 1 +
drivers/gpu/drm/gma500/cdv_intel_crt.c | 47 +-
drivers/gpu/drm/gma500/cdv_intel_dp.c | 1 +
drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 98 +-
drivers/gpu/drm/gma500/cdv_intel_lvds.c | 80 +-
drivers/gpu/drm/gma500/framebuffer.c | 1 +
drivers/gpu/drm/gma500/gma_display.c | 1 +
drivers/gpu/drm/gma500/intel_i2c.c | 36 +-
drivers/gpu/drm/gma500/oaktrail_crtc.c | 1 +
drivers/gpu/drm/gma500/oaktrail_hdmi.c | 1 +
drivers/gpu/drm/gma500/oaktrail_lvds.c | 51 +-
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c | 36 +-
drivers/gpu/drm/gma500/psb_drv.h | 2 +-
drivers/gpu/drm/gma500/psb_intel_drv.h | 24 +-
drivers/gpu/drm/gma500/psb_intel_lvds.c | 86 +-
drivers/gpu/drm/gma500/psb_intel_modes.c | 2 +
drivers/gpu/drm/gud/gud_connector.c | 1 +
drivers/gpu/drm/gud/gud_drv.c | 1 +
drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c | 1 +
drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 1 +
drivers/gpu/drm/hyperv/hyperv_drm_drv.c | 74 +-
drivers/gpu/drm/hyperv/hyperv_drm_modeset.c | 2 +
drivers/gpu/drm/i2c/tda998x_drv.c | 7 +-
drivers/gpu/drm/i915/Makefile | 6 +-
drivers/gpu/drm/i915/TODO.txt | 2 +-
drivers/gpu/drm/i915/display/g4x_dp.c | 22 +-
drivers/gpu/drm/i915/display/hsw_ips.c | 4 +-
drivers/gpu/drm/i915/display/i9xx_plane.c | 1 +
drivers/gpu/drm/i915/display/icl_dsi.c | 11 +-
drivers/gpu/drm/i915/display/intel_audio.c | 1 +
drivers/gpu/drm/i915/display/intel_audio_regs.h | 160 +
drivers/gpu/drm/i915/display/intel_backlight.c | 24 +-
drivers/gpu/drm/i915/display/intel_bios.c | 657 +-
drivers/gpu/drm/i915/display/intel_bios.h | 7 +
drivers/gpu/drm/i915/display/intel_bw.c | 6 +-
drivers/gpu/drm/i915/display/intel_cdclk.c | 16 +-
drivers/gpu/drm/i915/display/intel_color.c | 51 +-
.../gpu/drm/i915/display/intel_crtc_state_dump.c | 314 +
.../gpu/drm/i915/display/intel_crtc_state_dump.h | 16 +
drivers/gpu/drm/i915/display/intel_cursor.c | 1 +
drivers/gpu/drm/i915/display/intel_ddi.c | 54 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 37 +-
drivers/gpu/drm/i915/display/intel_display.c | 1847 +-
drivers/gpu/drm/i915/display/intel_display.h | 23 +-
.../gpu/drm/i915/display/intel_display_debugfs.c | 28 +
drivers/gpu/drm/i915/display/intel_display_power.c | 10 +-
.../drm/i915/display/intel_display_power_well.c | 4 +-
drivers/gpu/drm/i915/display/intel_display_types.h | 90 +-
drivers/gpu/drm/i915/display/intel_dmc.c | 103 +-
drivers/gpu/drm/i915/display/intel_dmc_regs.h | 65 +-
drivers/gpu/drm/i915/display/intel_dp.c | 127 +-
drivers/gpu/drm/i915/display/intel_dp.h | 2 +
.../gpu/drm/i915/display/intel_dp_aux_backlight.c | 6 +-
drivers/gpu/drm/i915/display/intel_dp_mst.c | 1 +
drivers/gpu/drm/i915/display/intel_dpll.c | 89 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 411 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.h | 8 +
drivers/gpu/drm/i915/display/intel_dpt.c | 16 +-
drivers/gpu/drm/i915/display/intel_drrs.c | 3 -
drivers/gpu/drm/i915/display/intel_dsi.c | 2 +-
.../gpu/drm/i915/display/intel_dsi_dcs_backlight.c | 9 +-
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 56 +-
drivers/gpu/drm/i915/display/intel_fb.c | 1 +
drivers/gpu/drm/i915/display/intel_fbc.c | 5 +-
drivers/gpu/drm/i915/display/intel_hdcp.c | 2 +-
drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +-
drivers/gpu/drm/i915/display/intel_hotplug.c | 3 +-
drivers/gpu/drm/i915/display/intel_lspcon.c | 1 +
drivers/gpu/drm/i915/display/intel_lvds.c | 8 +-
drivers/gpu/drm/i915/display/intel_modeset_setup.c | 734 +
drivers/gpu/drm/i915/display/intel_modeset_setup.h | 15 +
.../gpu/drm/i915/display/intel_modeset_verify.c | 246 +
.../gpu/drm/i915/display/intel_modeset_verify.h | 21 +
drivers/gpu/drm/i915/display/intel_opregion.c | 16 +
drivers/gpu/drm/i915/display/intel_opregion.h | 7 +
drivers/gpu/drm/i915/display/intel_overlay.c | 2 -
drivers/gpu/drm/i915/display/intel_panel.c | 66 +-
drivers/gpu/drm/i915/display/intel_panel.h | 3 +-
drivers/gpu/drm/i915/display/intel_pch_refclk.c | 91 +-
drivers/gpu/drm/i915/display/intel_pps.c | 129 +-
drivers/gpu/drm/i915/display/intel_pps.h | 1 +
drivers/gpu/drm/i915/display/intel_psr.c | 80 +-
drivers/gpu/drm/i915/display/intel_sdvo.c | 5 +-
drivers/gpu/drm/i915/display/intel_snps_phy.c | 77 +-
drivers/gpu/drm/i915/display/intel_snps_phy.h | 5 +-
drivers/gpu/drm/i915/display/intel_sprite.c | 1 +
drivers/gpu/drm/i915/display/intel_tc.c | 3 +-
drivers/gpu/drm/i915/display/intel_vbt_defs.h | 67 +-
drivers/gpu/drm/i915/display/intel_vrr.c | 30 +-
drivers/gpu/drm/i915/display/intel_vrr.h | 4 +-
drivers/gpu/drm/i915/display/skl_universal_plane.c | 1 +
drivers/gpu/drm/i915/display/vlv_dsi.c | 14 +-
drivers/gpu/drm/i915/gem/i915_gem_context.c | 33 +-
drivers/gpu/drm/i915/gem/i915_gem_create.c | 20 +-
drivers/gpu/drm/i915/gem/i915_gem_domain.c | 6 +-
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 19 +-
drivers/gpu/drm/i915/gem/i915_gem_object.c | 47 +
drivers/gpu/drm/i915/gem/i915_gem_object.h | 3 +
drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 18 +
drivers/gpu/drm/i915/gem/i915_gem_region.c | 2 +
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 11 +-
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 5 +-
drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 6 +-
drivers/gpu/drm/i915/gem/i915_gem_tiling.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 55 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.h | 3 +
drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c | 99 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm_move.h | 1 +
drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 4 +-
drivers/gpu/drm/i915/gem/i915_gem_wait.c | 34 +
drivers/gpu/drm/i915/gem/i915_gemfs.c | 50 +-
drivers/gpu/drm/i915/gem/i915_gemfs.h | 3 +-
drivers/gpu/drm/i915/gem/selftests/huge_pages.c | 7 +-
.../drm/i915/gem/selftests/i915_gem_client_blt.c | 250 +-
.../gpu/drm/i915/gem/selftests/i915_gem_context.c | 2 +-
.../gpu/drm/i915/gem/selftests/i915_gem_migrate.c | 141 +-
drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 87 +-
drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 21 +-
drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 3 +-
drivers/gpu/drm/i915/gt/intel_context.c | 24 +
drivers/gpu/drm/i915/gt/intel_context.h | 25 +-
drivers/gpu/drm/i915/gt/intel_context_types.h | 15 +-
drivers/gpu/drm/i915/gt/intel_engine.h | 2 +
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 225 +-
drivers/gpu/drm/i915/gt/intel_engine_regs.h | 10 +-
drivers/gpu/drm/i915/gt/intel_engine_types.h | 34 +-
.../gpu/drm/i915/gt/intel_execlists_submission.c | 27 +-
drivers/gpu/drm/i915/gt/intel_ggtt.c | 627 +-
drivers/gpu/drm/i915/gt/intel_ggtt_gmch.c | 132 +
drivers/gpu/drm/i915/gt/intel_ggtt_gmch.h | 27 +
drivers/gpu/drm/i915/gt/intel_gpu_commands.h | 37 +-
drivers/gpu/drm/i915/gt/intel_gt.c | 283 +-
drivers/gpu/drm/i915/gt/intel_gt.h | 24 -
drivers/gpu/drm/i915/gt/intel_gt_debugfs.c | 3 +-
drivers/gpu/drm/i915/gt/intel_gt_gmch.c | 654 -
drivers/gpu/drm/i915/gt/intel_gt_gmch.h | 46 -
drivers/gpu/drm/i915/gt/intel_gt_irq.c | 16 +
drivers/gpu/drm/i915/gt/intel_gt_mcr.c | 522 +
drivers/gpu/drm/i915/gt/intel_gt_mcr.h | 58 +
drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c | 12 +-
drivers/gpu/drm/i915/gt/intel_gt_regs.h | 83 +-
drivers/gpu/drm/i915/gt/intel_gt_sysfs.c | 29 +-
drivers/gpu/drm/i915/gt/intel_gt_sysfs.h | 6 +-
drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c | 177 +
drivers/gpu/drm/i915/gt/intel_gt_types.h | 11 +
drivers/gpu/drm/i915/gt/intel_gtt.h | 45 +-
drivers/gpu/drm/i915/gt/intel_llc.c | 3 +-
drivers/gpu/drm/i915/gt/intel_lrc.h | 10 -
drivers/gpu/drm/i915/gt/intel_mocs.c | 24 +-
drivers/gpu/drm/i915/gt/intel_rc6.c | 4 +-
drivers/gpu/drm/i915/gt/intel_region_lmem.c | 118 +-
drivers/gpu/drm/i915/gt/intel_reset.c | 37 +-
drivers/gpu/drm/i915/gt/intel_ring.c | 3 +-
drivers/gpu/drm/i915/gt/intel_ring_submission.c | 11 +-
drivers/gpu/drm/i915/gt/intel_rps.c | 9 +-
drivers/gpu/drm/i915/gt/intel_sseu.c | 450 +-
drivers/gpu/drm/i915/gt/intel_sseu.h | 92 +-
drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c | 30 +-
drivers/gpu/drm/i915/gt/intel_workarounds.c | 192 +-
drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 9 +-
drivers/gpu/drm/i915/gt/selftest_llc.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_lrc.c | 8 +-
drivers/gpu/drm/i915/gt/selftest_rps.c | 2 +-
drivers/gpu/drm/i915/gt/selftest_slpc.c | 323 +-
drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h | 3 +
.../gpu/drm/i915/gt/uc/abi/guc_actions_slpc_abi.h | 6 +
drivers/gpu/drm/i915/gt/uc/intel_guc.c | 8 +-
drivers/gpu/drm/i915/gt/uc/intel_guc.h | 13 +
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 5 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c | 93 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h | 46 +
drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.c | 4 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 4 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_rc.c | 5 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h | 1 +
drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 62 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h | 1 +
drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h | 3 +
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 483 +-
drivers/gpu/drm/i915/gt/uc/intel_huc.c | 97 +-
drivers/gpu/drm/i915/gt/uc/intel_huc.h | 5 +-
drivers/gpu/drm/i915/gt/uc/intel_huc_fw.c | 5 +-
drivers/gpu/drm/i915/gt/uc/intel_uc.c | 26 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 169 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h | 9 +
drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h | 9 +
drivers/gpu/drm/i915/gvt/cmd_parser.c | 8 +-
drivers/gpu/drm/i915/gvt/gvt.h | 1 -
drivers/gpu/drm/i915/gvt/kvmgt.c | 120 +-
drivers/gpu/drm/i915/i915_active.c | 2 +-
drivers/gpu/drm/i915/i915_driver.c | 88 +-
drivers/gpu/drm/i915/i915_drm_client.c | 5 +-
drivers/gpu/drm/i915/i915_drm_client.h | 2 +-
drivers/gpu/drm/i915/i915_drv.h | 99 +-
drivers/gpu/drm/i915/i915_gem.h | 39 -
drivers/gpu/drm/i915/i915_getparam.c | 11 +-
drivers/gpu/drm/i915/i915_gpu_error.c | 69 +-
drivers/gpu/drm/i915/i915_gpu_error.h | 7 +
drivers/gpu/drm/i915/i915_params.c | 2 +
drivers/gpu/drm/i915/i915_params.h | 1 +
drivers/gpu/drm/i915/i915_pci.c | 160 +-
drivers/gpu/drm/i915/i915_perf.c | 158 +-
drivers/gpu/drm/i915/i915_query.c | 42 +-
drivers/gpu/drm/i915/i915_reg.h | 235 +-
drivers/gpu/drm/i915/i915_request.c | 57 +-
drivers/gpu/drm/i915/i915_request.h | 2 +
drivers/gpu/drm/i915/i915_scatterlist.c | 27 +-
drivers/gpu/drm/i915/i915_scatterlist.h | 6 +-
drivers/gpu/drm/i915/i915_scheduler.h | 1 +
drivers/gpu/drm/i915/i915_sysfs.c | 17 +-
drivers/gpu/drm/i915/i915_tasklet.h | 43 +
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 31 +-
drivers/gpu/drm/i915/i915_ttm_buddy_manager.h | 3 +
drivers/gpu/drm/i915/i915_utils.h | 40 -
drivers/gpu/drm/i915/i915_vma.c | 124 +-
drivers/gpu/drm/i915/intel_device_info.c | 17 +
drivers/gpu/drm/i915/intel_device_info.h | 50 +-
drivers/gpu/drm/i915/intel_dram.c | 2 +-
drivers/gpu/drm/i915/intel_gvt_mmio_table.c | 2 +
drivers/gpu/drm/i915/intel_memory_region.c | 18 +-
drivers/gpu/drm/i915/intel_memory_region.h | 4 +-
drivers/gpu/drm/i915/intel_pch.c | 16 +-
drivers/gpu/drm/i915/intel_pch.h | 8 +-
drivers/gpu/drm/i915/intel_pcode.c | 93 +-
drivers/gpu/drm/i915/intel_pcode.h | 20 +-
drivers/gpu/drm/i915/intel_pm.c | 180 +-
drivers/gpu/drm/i915/intel_pm.h | 14 +-
drivers/gpu/drm/i915/intel_region_ttm.c | 10 +-
drivers/gpu/drm/i915/intel_region_ttm.h | 3 +-
drivers/gpu/drm/i915/intel_step.c | 70 +-
drivers/gpu/drm/i915/intel_step.h | 4 +-
drivers/gpu/drm/i915/intel_uncore.c | 378 +-
drivers/gpu/drm/i915/intel_uncore.h | 8 -
drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c | 5 +-
drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 2 +-
.../gpu/drm/i915/selftests/intel_memory_region.c | 21 +-
drivers/gpu/drm/i915/selftests/intel_uncore.c | 2 +
drivers/gpu/drm/i915/selftests/mock_region.c | 3 +-
drivers/gpu/drm/imx/dcss/dcss-drv.c | 1 +
drivers/gpu/drm/imx/dcss/dcss-plane.c | 2 +
drivers/gpu/drm/imx/imx-ldb.c | 2 +
drivers/gpu/drm/imx/imx-tve.c | 1 +
drivers/gpu/drm/imx/ipuv3-crtc.c | 2 +-
drivers/gpu/drm/imx/ipuv3-plane.c | 2 +
drivers/gpu/drm/imx/parallel-display.c | 2 +
drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 12 +-
drivers/gpu/drm/ingenic/ingenic-drm.h | 3 +
drivers/gpu/drm/ingenic/ingenic-ipu.c | 1 +
drivers/gpu/drm/kmb/kmb_dsi.c | 1 +
drivers/gpu/drm/kmb/kmb_plane.c | 2 +
drivers/gpu/drm/lima/lima_devfreq.c | 12 +-
drivers/gpu/drm/logicvc/Kconfig | 9 +
drivers/gpu/drm/logicvc/Makefile | 9 +
drivers/gpu/drm/logicvc/logicvc_crtc.c | 280 +
drivers/gpu/drm/logicvc/logicvc_crtc.h | 21 +
drivers/gpu/drm/logicvc/logicvc_drm.c | 496 +
drivers/gpu/drm/logicvc/logicvc_drm.h | 67 +
drivers/gpu/drm/logicvc/logicvc_interface.c | 214 +
drivers/gpu/drm/logicvc/logicvc_interface.h | 28 +
drivers/gpu/drm/logicvc/logicvc_layer.c | 631 +
drivers/gpu/drm/logicvc/logicvc_layer.h | 64 +
drivers/gpu/drm/logicvc/logicvc_mode.c | 80 +
drivers/gpu/drm/logicvc/logicvc_mode.h | 15 +
drivers/gpu/drm/logicvc/logicvc_of.c | 185 +
drivers/gpu/drm/logicvc/logicvc_of.h | 46 +
drivers/gpu/drm/logicvc/logicvc_regs.h | 80 +
drivers/gpu/drm/mcde/mcde_clk_div.c | 1 +
drivers/gpu/drm/mcde/mcde_display.c | 1 +
drivers/gpu/drm/mcde/mcde_dsi.c | 1 +
drivers/gpu/drm/mediatek/Makefile | 4 +-
drivers/gpu/drm/mediatek/mtk_disp_drv.h | 20 +
drivers/gpu/drm/mediatek/mtk_disp_merge.c | 320 +
drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 2 +
drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 10 +-
drivers/gpu/drm/mediatek/mtk_dpi.c | 261 +-
drivers/gpu/drm/mediatek/mtk_dpi_regs.h | 18 +
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 69 +-
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 3 +
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 184 +-
drivers/gpu/drm/mediatek/mtk_drm_drv.h | 8 +
drivers/gpu/drm/mediatek/mtk_drm_plane.c | 3 +
drivers/gpu/drm/mediatek/mtk_drm_plane.h | 1 +
drivers/gpu/drm/mediatek/mtk_dsi.c | 101 +-
drivers/gpu/drm/mediatek/mtk_mdp_rdma.c | 315 +
drivers/gpu/drm/mediatek/mtk_mdp_rdma.h | 20 +
drivers/gpu/drm/meson/meson_encoder_cvbs.c | 1 +
drivers/gpu/drm/meson/meson_encoder_hdmi.c | 27 +-
drivers/gpu/drm/meson/meson_overlay.c | 2 +
drivers/gpu/drm/meson/meson_plane.c | 2 +
drivers/gpu/drm/meson/meson_viu.c | 22 +-
drivers/gpu/drm/mgag200/Makefile | 14 +-
drivers/gpu/drm/mgag200/mgag200_drv.c | 381 +-
drivers/gpu/drm/mgag200/mgag200_drv.h | 148 +-
drivers/gpu/drm/mgag200/mgag200_g200.c | 201 +
drivers/gpu/drm/mgag200/mgag200_g200eh.c | 50 +
drivers/gpu/drm/mgag200/mgag200_g200eh3.c | 51 +
drivers/gpu/drm/mgag200/mgag200_g200er.c | 46 +
drivers/gpu/drm/mgag200/mgag200_g200ev.c | 50 +
drivers/gpu/drm/mgag200/mgag200_g200ew3.c | 60 +
drivers/gpu/drm/mgag200/mgag200_g200se.c | 130 +
drivers/gpu/drm/mgag200/mgag200_g200wb.c | 50 +
drivers/gpu/drm/mgag200/mgag200_i2c.c | 59 +-
drivers/gpu/drm/mgag200/mgag200_mm.c | 116 -
drivers/gpu/drm/mgag200/mgag200_mode.c | 454 +-
drivers/gpu/drm/mgag200/mgag200_pll.c | 12 +-
drivers/gpu/drm/mgag200/mgag200_reg.h | 2 +
drivers/gpu/drm/msm/Makefile | 1 -
drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 8 -
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 30 +-
drivers/gpu/drm/msm/adreno/a6xx_gmu.h | 4 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 106 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.h | 3 +-
drivers/gpu/drm/msm/adreno/a6xx_hfi.c | 65 +-
drivers/gpu/drm/msm/adreno/adreno_device.c | 23 +
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 43 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.h | 32 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 24 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h | 4 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 119 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 6 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 166 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 26 +-
.../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 31 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h | 25 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 514 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 20 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c | 5 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h | 1 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c | 9 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c | 5 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.h | 2 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 8 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c | 24 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.h | 9 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c | 53 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h | 1 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.c | 5 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_merge3d.h | 1 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c | 7 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h | 1 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 9 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h | 5 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c | 5 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.h | 1 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c | 55 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h | 36 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_vbif.c | 9 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c | 5 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 40 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 22 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c | 11 +-
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 31 +-
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h | 6 -
drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c | 1 +
drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c | 21 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.h | 6 -
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 1 +
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 31 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c | 3 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 2 +
drivers/gpu/drm/msm/disp/mdp_format.c | 2 +
drivers/gpu/drm/msm/dp/dp_clk_util.c | 120 -
drivers/gpu/drm/msm/dp/dp_clk_util.h | 38 -
drivers/gpu/drm/msm/dp/dp_ctrl.c | 46 +-
drivers/gpu/drm/msm/dp/dp_ctrl.h | 2 +-
drivers/gpu/drm/msm/dp/dp_display.c | 116 +-
drivers/gpu/drm/msm/dp/dp_display.h | 1 -
drivers/gpu/drm/msm/dp/dp_drm.c | 8 +-
drivers/gpu/drm/msm/dp/dp_drm.h | 2 +-
drivers/gpu/drm/msm/dp/dp_parser.c | 67 +-
drivers/gpu/drm/msm/dp/dp_parser.h | 10 +-
drivers/gpu/drm/msm/dp/dp_power.c | 199 +-
drivers/gpu/drm/msm/dsi/dsi_host.c | 57 +-
drivers/gpu/drm/msm/hdmi/hdmi.c | 126 +-
drivers/gpu/drm/msm/hdmi/hdmi.h | 15 +-
drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 11 +-
drivers/gpu/drm/msm/hdmi/hdmi_hpd.c | 62 +-
drivers/gpu/drm/msm/hdmi/hdmi_phy_8x60.c | 12 +
drivers/gpu/drm/msm/msm_debugfs.c | 1 +
drivers/gpu/drm/msm/msm_drv.c | 83 +-
drivers/gpu/drm/msm/msm_drv.h | 12 +-
drivers/gpu/drm/msm/msm_fb.c | 1 +
drivers/gpu/drm/msm/msm_fbdev.c | 1 +
drivers/gpu/drm/msm/msm_fence.c | 19 +-
drivers/gpu/drm/msm/msm_gem.c | 29 +-
drivers/gpu/drm/msm/msm_gem.h | 26 +-
drivers/gpu/drm/msm/msm_gem_prime.c | 15 +
drivers/gpu/drm/msm/msm_gem_shrinker.c | 4 +-
drivers/gpu/drm/msm/msm_gem_submit.c | 20 +-
drivers/gpu/drm/msm/msm_gem_vma.c | 6 +-
drivers/gpu/drm/msm/msm_gpu.c | 90 +-
drivers/gpu/drm/msm/msm_gpu.h | 31 +-
drivers/gpu/drm/msm/msm_gpu_devfreq.c | 41 +-
drivers/gpu/drm/msm/msm_iommu.c | 2 +-
drivers/gpu/drm/msm/msm_ringbuffer.c | 2 +-
drivers/gpu/drm/mxsfb/Kconfig | 16 +
drivers/gpu/drm/mxsfb/Makefile | 2 +
drivers/gpu/drm/mxsfb/lcdif_drv.c | 340 +
drivers/gpu/drm/mxsfb/lcdif_drv.h | 44 +
drivers/gpu/drm/mxsfb/lcdif_kms.c | 485 +
drivers/gpu/drm/mxsfb/lcdif_regs.h | 257 +
drivers/gpu/drm/mxsfb/mxsfb_kms.c | 2 +
drivers/gpu/drm/nouveau/Kconfig | 1 -
drivers/gpu/drm/nouveau/dispnv50/base507c.c | 17 +-
drivers/gpu/drm/nouveau/dispnv50/core507d.c | 4 +-
drivers/gpu/drm/nouveau/dispnv50/curs507a.c | 6 +-
drivers/gpu/drm/nouveau/dispnv50/disp.c | 59 +-
drivers/gpu/drm/nouveau/dispnv50/oimm507b.c | 6 +-
drivers/gpu/drm/nouveau/dispnv50/ovly507e.c | 17 +-
drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c | 7 +-
drivers/gpu/drm/nouveau/dispnv50/wndw.c | 22 +-
drivers/gpu/drm/nouveau/dispnv50/wndw.h | 5 -
drivers/gpu/drm/nouveau/dispnv50/wndwc37e.c | 7 +-
drivers/gpu/drm/nouveau/dispnv50/wndwc57e.c | 1 -
drivers/gpu/drm/nouveau/include/nvhw/drf.h | 4 +-
drivers/gpu/drm/nouveau/include/nvif/cl5070.h | 8 -
drivers/gpu/drm/nouveau/include/nvif/cl507a.h | 12 -
drivers/gpu/drm/nouveau/include/nvif/cl507b.h | 12 -
drivers/gpu/drm/nouveau/include/nvif/cl507c.h | 13 -
drivers/gpu/drm/nouveau/include/nvif/cl507d.h | 12 -
drivers/gpu/drm/nouveau/include/nvif/cl507e.h | 13 -
drivers/gpu/drm/nouveau/include/nvif/class.h | 141 +-
drivers/gpu/drm/nouveau/include/nvif/clc37b.h | 11 -
drivers/gpu/drm/nouveau/include/nvif/clc37e.h | 13 -
drivers/gpu/drm/nouveau/include/nvif/conn.h | 18 +
drivers/gpu/drm/nouveau/include/nvif/disp.h | 2 +
drivers/gpu/drm/nouveau/include/nvif/if0010.h | 13 +
drivers/gpu/drm/nouveau/include/nvif/if0011.h | 23 +
drivers/gpu/drm/nouveau/include/nvif/if0012.h | 23 +
drivers/gpu/drm/nouveau/include/nvif/if0014.h | 13 +
drivers/gpu/drm/nouveau/include/nvif/object.h | 6 +
drivers/gpu/drm/nouveau/include/nvif/outp.h | 14 +
drivers/gpu/drm/nouveau/include/nvif/printf.h | 9 +
drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 3 -
drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h | 43 +-
.../gpu/drm/nouveau/include/nvkm/engine/falcon.h | 10 -
drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 2 -
.../gpu/drm/nouveau/include/nvkm/subdev/bios/dcb.h | 1 +
drivers/gpu/drm/nouveau/include/nvkm/subdev/clk.h | 3 +-
.../gpu/drm/nouveau/include/nvkm/subdev/fault.h | 1 +
.../gpu/drm/nouveau/include/nvkm/subdev/secboot.h | 66 -
drivers/gpu/drm/nouveau/nouveau_abi16.c | 32 +-
drivers/gpu/drm/nouveau/nouveau_abi16.h | 1 +
drivers/gpu/drm/nouveau/nouveau_bios.c | 2 +
drivers/gpu/drm/nouveau/nouveau_bo.c | 9 +
drivers/gpu/drm/nouveau/nouveau_chan.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_connector.c | 18 +-
drivers/gpu/drm/nouveau/nouveau_connector.h | 3 +-
drivers/gpu/drm/nouveau/nouveau_display.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_dp.c | 12 +-
drivers/gpu/drm/nouveau/nouveau_drv.h | 1 -
drivers/gpu/drm/nouveau/nouveau_encoder.h | 3 +-
drivers/gpu/drm/nouveau/nouveau_fbcon.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_nvif.c | 31 +-
drivers/gpu/drm/nouveau/nouveau_usif.c | 231 +-
drivers/gpu/drm/nouveau/nvif/Kbuild | 2 +
.../{nvkm/engine/disp/rootga102.c => nvif/conn.c} | 60 +-
drivers/gpu/drm/nouveau/nvif/disp.c | 61 +-
drivers/gpu/drm/nouveau/nvif/object.c | 2 +-
.../{nvkm/engine/disp/rootg84.c => nvif/outp.c} | 65 +-
drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 3 +-
drivers/gpu/drm/nouveau/nvkm/engine/ce/gv100.c | 24 +
drivers/gpu/drm/nouveau/nvkm/engine/ce/priv.h | 2 +
drivers/gpu/drm/nouveau/nvkm/engine/ce/tu102.c | 1 +
drivers/gpu/drm/nouveau/nvkm/engine/device/acpi.c | 6 +-
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 25 -
drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 14 +-
drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 1 +
drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 115 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c | 139 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/baseg84.c | 74 -
.../gpu/drm/nouveau/nvkm/engine/disp/basegf119.c | 108 -
.../gpu/drm/nouveau/nvkm/engine/disp/basegp102.c | 32 -
.../gpu/drm/nouveau/nvkm/engine/disp/basenv50.c | 119 -
.../gpu/drm/nouveau/nvkm/engine/disp/capsgv100.c | 60 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c | 275 +
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.h | 135 +
.../gpu/drm/nouveau/nvkm/engine/disp/changf119.c | 62 -
.../gpu/drm/nouveau/nvkm/engine/disp/channv50.c | 364 -
.../gpu/drm/nouveau/nvkm/engine/disp/channv50.h | 193 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c | 6 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.h | 4 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/coreg84.c | 111 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/coreg94.c | 57 -
.../gpu/drm/nouveau/nvkm/engine/disp/coregf119.c | 231 -
.../gpu/drm/nouveau/nvkm/engine/disp/coregk104.c | 126 -
.../gpu/drm/nouveau/nvkm/engine/disp/coregp102.c | 70 -
.../gpu/drm/nouveau/nvkm/engine/disp/coregv100.c | 207 -
.../gpu/drm/nouveau/nvkm/engine/disp/corenv50.c | 234 -
.../gpu/drm/nouveau/nvkm/engine/disp/cursgp102.c | 32 -
.../gpu/drm/nouveau/nvkm/engine/disp/cursgv100.c | 81 -
.../gpu/drm/nouveau/nvkm/engine/disp/cursnv50.c | 64 -
.../gpu/drm/nouveau/nvkm/engine/disp/dacgf119.c | 70 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c | 121 -
.../gpu/drm/nouveau/nvkm/engine/disp/dmacgf119.c | 96 -
.../gpu/drm/nouveau/nvkm/engine/disp/dmacgp102.c | 64 -
.../gpu/drm/nouveau/nvkm/engine/disp/dmacgv100.c | 79 -
.../gpu/drm/nouveau/nvkm/engine/disp/dmacnv50.c | 137 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c | 457 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.h | 33 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.c | 291 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c | 341 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/ga102.c | 120 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c | 1041 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c | 275 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c | 23 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c | 78 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c | 146 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp100.c | 52 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c | 144 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c | 73 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.c | 172 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c | 883 +-
.../gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c | 62 -
.../gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c | 51 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c | 91 -
.../gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c | 82 -
.../gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c | 82 -
.../gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c | 91 -
.../gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c | 84 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/head.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/head.h | 19 +-
.../gpu/drm/nouveau/nvkm/engine/disp/headgf119.c | 104 -
.../gpu/drm/nouveau/nvkm/engine/disp/headgv100.c | 105 -
.../gpu/drm/nouveau/nvkm/engine/disp/headnv04.c | 74 -
.../gpu/drm/nouveau/nvkm/engine/disp/headnv50.c | 99 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.c | 10 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h | 95 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp77.c | 40 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp89.c | 54 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.c | 55 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 1159 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 102 -
.../gpu/drm/nouveau/nvkm/engine/disp/oimmgf119.c | 32 -
.../gpu/drm/nouveau/nvkm/engine/disp/oimmgp102.c | 32 -
.../gpu/drm/nouveau/nvkm/engine/disp/oimmnv50.c | 64 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c | 28 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.h | 41 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlyg84.c | 71 -
.../gpu/drm/nouveau/nvkm/engine/disp/ovlygf119.c | 95 -
.../gpu/drm/nouveau/nvkm/engine/disp/ovlygk104.c | 97 -
.../gpu/drm/nouveau/nvkm/engine/disp/ovlygp102.c | 32 -
.../gpu/drm/nouveau/nvkm/engine/disp/ovlygt200.c | 74 -
.../gpu/drm/nouveau/nvkm/engine/disp/ovlynv50.c | 107 -
.../gpu/drm/nouveau/nvkm/engine/disp/piocgf119.c | 78 -
.../gpu/drm/nouveau/nvkm/engine/disp/piocnv50.c | 87 -
.../gpu/drm/nouveau/nvkm/engine/disp/piornv50.c | 139 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h | 75 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootg94.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgk104.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgk110.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgm107.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgm200.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgp100.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgp102.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgt200.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgt215.c | 55 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootgv100.c | 53 -
.../gpu/drm/nouveau/nvkm/engine/disp/rootnv04.c | 42 +-
.../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c | 140 +-
.../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h | 45 -
.../gpu/drm/nouveau/nvkm/engine/disp/roottu102.c | 53 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg84.c | 38 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg94.c | 302 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorga102.c | 144 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c | 208 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c | 54 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c | 80 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c | 160 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgp100.c | 93 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgt215.c | 69 -
.../gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c | 155 -
.../gpu/drm/nouveau/nvkm/engine/disp/sormcp77.c | 48 -
.../gpu/drm/nouveau/nvkm/engine/disp/sormcp89.c | 53 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c | 106 -
.../gpu/drm/nouveau/nvkm/engine/disp/sortu102.c | 129 -
drivers/gpu/drm/nouveau/nvkm/engine/disp/tu102.c | 108 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c | 117 +
drivers/gpu/drm/nouveau/nvkm/engine/disp/udisp.c | 115 +
drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c | 129 +
.../gpu/drm/nouveau/nvkm/engine/disp/wimmgv100.c | 82 -
.../gpu/drm/nouveau/nvkm/engine/disp/wndwgv100.c | 184 -
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 29 -
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c | 37 -
.../gpu/drm/nouveau/nvkm/engine/fifo/changk104.h | 2 -
.../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c | 11 +-
.../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogv100.c | 47 +-
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/engine/fifo/priv.h | 1 -
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.c | 1 -
drivers/gpu/drm/nouveau/nvkm/falcon/base.c | 10 -
drivers/gpu/drm/nouveau/nvkm/falcon/v1.c | 25 -
drivers/gpu/drm/nouveau/nvkm/subdev/bios/priv.h | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c | 2 +-
.../gpu/drm/nouveau/nvkm/subdev/bios/shadowrom.c | 14 +-
drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 20 +-
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c | 4 +-
drivers/gpu/drm/omapdrm/dss/hdmi4.c | 1 +
drivers/gpu/drm/omapdrm/dss/hdmi5.c | 1 +
drivers/gpu/drm/omapdrm/omap_debugfs.c | 1 +
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 1 +
drivers/gpu/drm/omapdrm/omap_fb.c | 2 +
drivers/gpu/drm/omapdrm/omap_fbdev.c | 1 +
drivers/gpu/drm/omapdrm/omap_plane.c | 2 +
drivers/gpu/drm/panel/Kconfig | 13 +
drivers/gpu/drm/panel/Makefile | 1 +
.../gpu/drm/panel/panel-asus-z00t-tm5p5-n35596.c | 7 +-
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 12 +
drivers/gpu/drm/panel/panel-dsi-cm.c | 29 +-
drivers/gpu/drm/panel/panel-ebbg-ft8719.c | 285 +
drivers/gpu/drm/panel/panel-edp.c | 48 +-
drivers/gpu/drm/panel/panel-elida-kd35t133.c | 12 +
.../gpu/drm/panel/panel-feiyang-fy07024di26a30d.c | 2 +-
drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 12 +
drivers/gpu/drm/panel/panel-lvds.c | 13 +
drivers/gpu/drm/panel/panel-novatek-nt35510.c | 6 +-
drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 4 +
.../gpu/drm/panel/panel-raspberrypi-touchscreen.c | 1 +
drivers/gpu/drm/panel/panel-raydium-rm67191.c | 1 +
drivers/gpu/drm/panel/panel-samsung-atna33xc20.c | 51 +-
drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 1 +
drivers/gpu/drm/panel/panel-simple.c | 137 +-
drivers/gpu/drm/panel/panel-sony-acx565akm.c | 12 +-
drivers/gpu/drm/panfrost/panfrost_devfreq.c | 3 +-
drivers/gpu/drm/panfrost/panfrost_device.c | 9 +-
drivers/gpu/drm/panfrost/panfrost_drv.c | 16 +-
drivers/gpu/drm/panfrost/panfrost_features.h | 13 +
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c | 2 +-
drivers/gpu/drm/panfrost/panfrost_gpu.c | 18 +-
drivers/gpu/drm/panfrost/panfrost_issues.h | 19 +-
drivers/gpu/drm/panfrost/panfrost_regs.h | 1 +
drivers/gpu/drm/pl111/pl111_display.c | 4 +-
drivers/gpu/drm/pl111/pl111_drv.c | 1 +
drivers/gpu/drm/pl111/pl111_versatile.c | 2 +
drivers/gpu/drm/qxl/qxl_display.c | 2 +
drivers/gpu/drm/qxl/qxl_draw.c | 1 +
drivers/gpu/drm/qxl/qxl_kms.c | 2 -
drivers/gpu/drm/r128/r128_drv.h | 4 +-
drivers/gpu/drm/radeon/.gitignore | 2 +-
drivers/gpu/drm/radeon/Kconfig | 2 +-
drivers/gpu/drm/radeon/Makefile | 2 +-
drivers/gpu/drm/radeon/atombios_crtc.c | 1 +
drivers/gpu/drm/radeon/atombios_encoders.c | 14 -
drivers/gpu/drm/radeon/evergreen.c | 1 +
drivers/gpu/drm/radeon/ni_dpm.c | 6 +-
drivers/gpu/drm/radeon/r100.c | 1 +
drivers/gpu/drm/radeon/r300_reg.h | 2 +-
drivers/gpu/drm/radeon/radeon_acpi.c | 2 -
drivers/gpu/drm/radeon/radeon_device.c | 3 +-
drivers/gpu/drm/radeon/radeon_display.c | 1 +
drivers/gpu/drm/radeon/radeon_fb.c | 1 +
drivers/gpu/drm/radeon/radeon_gem.c | 4 +-
drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 1 +
drivers/gpu/drm/radeon/radeon_legacy_encoders.c | 15 -
drivers/gpu/drm/radeon/radeon_mode.h | 4 -
drivers/gpu/drm/radeon/radeon_sa.c | 6 +-
drivers/gpu/drm/radeon/rs600.c | 1 +
drivers/gpu/drm/radeon/rv770.c | 1 +
drivers/gpu/drm/rcar-du/rcar_cmm.c | 2 +-
drivers/gpu/drm/rcar-du/rcar_cmm.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 7 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 19 +-
drivers/gpu/drm/rcar-du/rcar_du_drv.h | 4 +-
drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 3 +-
drivers/gpu/drm/rcar-du/rcar_du_encoder.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_group.c | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_group.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_kms.c | 3 +-
drivers/gpu/drm/rcar-du/rcar_du_kms.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_plane.c | 16 +-
drivers/gpu/drm/rcar-du/rcar_du_plane.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_regs.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 21 +-
drivers/gpu/drm/rcar-du/rcar_du_vsp.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_writeback.c | 4 +-
drivers/gpu/drm/rcar-du/rcar_du_writeback.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_lvds.c | 3 +-
drivers/gpu/drm/rcar-du/rcar_lvds.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_lvds_regs.h | 2 +-
drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c | 17 +-
drivers/gpu/drm/rcar-du/rcar_mipi_dsi_regs.h | 2 +-
drivers/gpu/drm/rockchip/Kconfig | 4 +-
drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 10 +-
drivers/gpu/drm/rockchip/rk3066_hdmi.c | 1 +
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 1 +
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 5 +
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 8 +-
drivers/gpu/drm/rockchip/rockchip_rgb.c | 1 +
drivers/gpu/drm/scheduler/sched_main.c | 13 +-
drivers/gpu/drm/selftests/test-drm_damage_helper.c | 1 +
drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c | 2 +-
drivers/gpu/drm/selftests/test-drm_plane_helper.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_backlight.c | 6 +-
drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_kms.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_plane.c | 1 +
drivers/gpu/drm/solomon/ssd130x-spi.c | 2 +
drivers/gpu/drm/solomon/ssd130x.c | 2 +
drivers/gpu/drm/sprd/sprd_dpu.c | 2 +
drivers/gpu/drm/sti/sti_compositor.c | 1 +
drivers/gpu/drm/sti/sti_cursor.c | 1 +
drivers/gpu/drm/sti/sti_gdp.c | 2 +
drivers/gpu/drm/sti/sti_hda.c | 1 +
drivers/gpu/drm/sti/sti_hdmi.c | 9 +-
drivers/gpu/drm/sti/sti_hqvdp.c | 2 +
drivers/gpu/drm/sti/sti_plane.c | 2 +
drivers/gpu/drm/stm/drv.c | 1 +
drivers/gpu/drm/stm/ltdc.c | 294 +-
drivers/gpu/drm/stm/ltdc.h | 8 +-
drivers/gpu/drm/sun4i/sun4i_backend.c | 2 +
drivers/gpu/drm/sun4i/sun4i_framebuffer.c | 1 +
drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 1 +
drivers/gpu/drm/sun4i/sun4i_layer.c | 1 +
drivers/gpu/drm/sun4i/sun4i_tcon.c | 1 +
drivers/gpu/drm/sun4i/sun4i_tcon.h | 1 +
drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h | 9 +-
drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c | 242 +-
drivers/gpu/drm/sun4i/sun8i_mixer.c | 1 +
drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 2 +
drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 2 +
drivers/gpu/drm/tegra/dc.c | 3 +
drivers/gpu/drm/tegra/drm.c | 2 +
drivers/gpu/drm/tegra/drm.h | 11 +
drivers/gpu/drm/tegra/falcon.c | 8 +
drivers/gpu/drm/tegra/falcon.h | 1 +
drivers/gpu/drm/tegra/fb.c | 1 +
drivers/gpu/drm/tegra/gem.c | 11 +-
drivers/gpu/drm/tegra/hub.c | 3 +
drivers/gpu/drm/tegra/nvdec.c | 14 +-
drivers/gpu/drm/tegra/plane.c | 2 +
drivers/gpu/drm/tegra/submit.c | 48 +-
drivers/gpu/drm/tegra/uapi.c | 43 +-
drivers/gpu/drm/tegra/vic.c | 92 +-
drivers/gpu/drm/tests/.kunitconfig | 3 +
drivers/gpu/drm/tests/Makefile | 3 +
drivers/gpu/drm/tests/drm_format_helper_test.c | 161 +
drivers/gpu/drm/tidss/tidss_dispc.c | 3 +
drivers/gpu/drm/tidss/tidss_plane.c | 2 +
drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 1 +
drivers/gpu/drm/tilcdc/tilcdc_panel.c | 1 +
drivers/gpu/drm/tilcdc/tilcdc_plane.c | 1 +
drivers/gpu/drm/tiny/Kconfig | 1 +
drivers/gpu/drm/tiny/arcpgu.c | 2 +
drivers/gpu/drm/tiny/bochs.c | 3 +
drivers/gpu/drm/tiny/cirrus.c | 2 +
drivers/gpu/drm/tiny/gm12u320.c | 2 +
drivers/gpu/drm/tiny/ili9225.c | 1 +
drivers/gpu/drm/tiny/repaper.c | 1 +
drivers/gpu/drm/tiny/st7586.c | 1 +
drivers/gpu/drm/tiny/st7735r.c | 1 +
drivers/gpu/drm/ttm/ttm_bo.c | 9 +-
drivers/gpu/drm/ttm/ttm_pool.c | 2 +-
drivers/gpu/drm/tve200/tve200_display.c | 1 +
drivers/gpu/drm/udl/udl_connector.c | 3 +-
drivers/gpu/drm/v3d/Kconfig | 5 +-
drivers/gpu/drm/v3d/v3d_debugfs.c | 18 +-
drivers/gpu/drm/v3d/v3d_drv.c | 12 +-
drivers/gpu/drm/v3d/v3d_gem.c | 12 +-
drivers/gpu/drm/vboxvideo/vbox_mode.c | 2 +
drivers/gpu/drm/vc4/Kconfig | 1 +
drivers/gpu/drm/vc4/vc4_bo.c | 2 +
drivers/gpu/drm/vc4/vc4_crtc.c | 15 +-
drivers/gpu/drm/vc4/vc4_dpi.c | 100 +-
drivers/gpu/drm/vc4/vc4_drv.c | 19 +
drivers/gpu/drm/vc4/vc4_drv.h | 1 +
drivers/gpu/drm/vc4/vc4_dsi.c | 152 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 228 +-
drivers/gpu/drm/vc4/vc4_hdmi.h | 14 +-
drivers/gpu/drm/vc4/vc4_hdmi_regs.h | 38 +-
drivers/gpu/drm/vc4/vc4_hvs.c | 42 +
drivers/gpu/drm/vc4/vc4_kms.c | 9 +-
drivers/gpu/drm/vc4/vc4_plane.c | 94 +-
drivers/gpu/drm/vc4/vc4_regs.h | 2 +-
drivers/gpu/drm/vc4/vc4_txp.c | 1 +
drivers/gpu/drm/virtio/virtgpu_display.c | 1 +
drivers/gpu/drm/virtio/virtgpu_drv.h | 1 +
drivers/gpu/drm/virtio/virtgpu_ioctl.c | 6 +-
drivers/gpu/drm/virtio/virtgpu_object.c | 4 +-
drivers/gpu/drm/virtio/virtgpu_prime.c | 6 +-
drivers/gpu/drm/virtio/virtgpu_vq.c | 2 +
drivers/gpu/drm/vkms/vkms_composer.c | 10 +-
drivers/gpu/drm/vkms/vkms_drv.h | 1 +
drivers/gpu/drm/vkms/vkms_output.c | 1 +
drivers/gpu/drm/vkms/vkms_writeback.c | 1 +
drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 10 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 1 +
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 +
drivers/gpu/drm/xen/xen_drm_front_conn.c | 1 +
drivers/gpu/drm/xen/xen_drm_front_gem.c | 2 +-
drivers/gpu/drm/xen/xen_drm_front_kms.c | 1 +
drivers/gpu/drm/xlnx/zynqmp_disp.c | 1 +
drivers/gpu/drm/xlnx/zynqmp_dp.c | 1 +
drivers/gpu/host1x/Makefile | 6 +-
drivers/gpu/host1x/cdma.c | 43 +-
drivers/gpu/host1x/channel.c | 8 +-
drivers/gpu/host1x/context.c | 160 +
drivers/gpu/host1x/context.h | 38 +
drivers/gpu/host1x/context_bus.c | 5 -
drivers/gpu/host1x/dev.c | 124 +-
drivers/gpu/host1x/dev.h | 13 +
drivers/gpu/host1x/hw/cdma_hw.c | 34 +
drivers/gpu/host1x/hw/channel_hw.c | 137 +-
drivers/gpu/host1x/hw/host1x01_hardware.h | 114 +-
drivers/gpu/host1x/hw/host1x02_hardware.h | 113 +-
drivers/gpu/host1x/hw/host1x04_hardware.h | 113 +-
drivers/gpu/host1x/hw/host1x05_hardware.h | 113 +-
drivers/gpu/host1x/hw/host1x06_hardware.h | 118 +-
drivers/gpu/host1x/hw/host1x07_hardware.h | 118 +-
drivers/gpu/host1x/hw/host1x08.c | 33 +
drivers/gpu/host1x/hw/host1x08.h | 15 +
drivers/gpu/host1x/hw/host1x08_hardware.h | 21 +
drivers/gpu/host1x/hw/hw_host1x08_channel.h | 11 +
drivers/gpu/host1x/hw/hw_host1x08_common.h | 11 +
drivers/gpu/host1x/hw/hw_host1x08_hypervisor.h | 9 +
drivers/gpu/host1x/hw/hw_host1x08_uclass.h | 181 +
drivers/gpu/host1x/hw/hw_host1x08_vm.h | 36 +
drivers/gpu/host1x/hw/intr_hw.c | 11 +
drivers/gpu/host1x/hw/opcodes.h | 150 +
drivers/hid/.kunitconfig | 5 +
drivers/hid/Kconfig | 16 +
drivers/hid/Makefile | 3 +
drivers/hid/amd-sfh-hid/Makefile | 3 +
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 117 +-
drivers/hid/amd-sfh-hid/amd_sfh_common.h | 76 +
drivers/hid/amd-sfh-hid/amd_sfh_hid.c | 12 +-
drivers/hid/amd-sfh-hid/amd_sfh_hid.h | 12 +-
drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 78 +-
drivers/hid/amd-sfh-hid/amd_sfh_pcie.h | 52 +-
.../amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c | 17 +-
.../amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h | 3 -
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_desc.c | 300 +
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c | 324 +
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.h | 26 +
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_interface.c | 75 +
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_interface.h | 154 +
drivers/hid/hid-alps.c | 2 +
drivers/hid/hid-apple.c | 35 +-
drivers/hid/hid-core.c | 2 +-
drivers/hid/hid-cp2112.c | 5 +
drivers/hid/hid-hyperv.c | 5 +-
drivers/hid/hid-ids.h | 2 +
drivers/hid/hid-input.c | 2 +
drivers/hid/hid-lg-g15.c | 2 +-
drivers/hid/hid-logitech-hidpp.c | 2 +-
drivers/hid/hid-mcp2221.c | 3 +
drivers/hid/hid-multitouch.c | 13 +-
drivers/hid/hid-nintendo.c | 6 +-
drivers/hid/hid-uclogic-core.c | 2 +
drivers/hid/hid-uclogic-params.c | 225 +-
drivers/hid/hid-uclogic-rdesc-test.c | 219 +
drivers/hid/hid-uclogic-rdesc.c | 124 +-
drivers/hid/hid-uclogic-rdesc.h | 24 +-
drivers/hid/i2c-hid/Kconfig | 15 +
drivers/hid/i2c-hid/Makefile | 1 +
drivers/hid/i2c-hid/i2c-hid-of-elan.c | 130 +
drivers/hid/intel-ish-hid/ipc/ipc.c | 2 +-
drivers/hid/intel-ish-hid/ishtp-hid-client.c | 2 +-
drivers/hid/surface-hid/surface_hid_core.c | 38 +-
drivers/hid/wacom.h | 3 +
drivers/hid/wacom_sys.c | 4 +-
drivers/hid/wacom_wac.c | 111 +-
drivers/hv/channel_mgmt.c | 18 +-
drivers/hv/connection.c | 11 +
drivers/hv/hv_balloon.c | 135 +-
drivers/hv/hv_kvp.c | 2 +-
drivers/hv/hyperv_vmbus.h | 7 +
drivers/hv/vmbus_drv.c | 31 +-
drivers/hwmon/Kconfig | 27 +-
drivers/hwmon/aquacomputer_d5next.c | 316 +-
drivers/hwmon/aspeed-pwm-tacho.c | 2 +-
drivers/hwmon/asus-ec-sensors.c | 110 +-
drivers/hwmon/asus_wmi_sensors.c | 12 +-
drivers/hwmon/dell-smm-hwmon.c | 93 +-
drivers/hwmon/drivetemp.c | 1 +
drivers/hwmon/f71882fg.c | 2 +
drivers/hwmon/gsc-hwmon.c | 3 +
drivers/hwmon/ibmaem.c | 12 +-
drivers/hwmon/k10temp.c | 12 +
drivers/hwmon/lm75.h | 3 +-
drivers/hwmon/lm90.c | 2556 +-
drivers/hwmon/mcp3021.c | 99 +-
drivers/hwmon/nct6775-core.c | 3 +-
drivers/hwmon/nct6775-platform.c | 15 +-
drivers/hwmon/nct6775.h | 2 +
drivers/hwmon/occ/common.c | 18 +-
drivers/hwmon/occ/common.h | 3 +-
drivers/hwmon/occ/p8_i2c.c | 13 +-
drivers/hwmon/occ/p9_sbe.c | 13 +-
drivers/hwmon/pmbus/Kconfig | 9 +
drivers/hwmon/pmbus/Makefile | 1 +
drivers/hwmon/pmbus/lt7182s.c | 195 +
drivers/hwmon/pmbus/ltc2978.c | 44 +-
drivers/hwmon/pmbus/pmbus.h | 10 +-
drivers/hwmon/pmbus/pmbus_core.c | 446 +-
drivers/hwmon/pmbus/ucd9200.c | 2 +-
drivers/hwmon/sch56xx-common.c | 44 +-
drivers/hwmon/sht15.c | 17 +-
drivers/hwmon/tps23861.c | 14 +-
drivers/hwspinlock/omap_hwspinlock.c | 6 +-
drivers/hwspinlock/qcom_hwspinlock.c | 28 +-
drivers/hwtracing/coresight/coresight-config.h | 2 +
drivers/hwtracing/coresight/coresight-core.c | 1 +
drivers/hwtracing/coresight/coresight-etm-perf.c | 2 +
drivers/hwtracing/coresight/coresight-etm4x-core.c | 22 +-
drivers/hwtracing/coresight/coresight-etm4x.h | 11 +-
drivers/hwtracing/coresight/coresight-syscfg.c | 295 +-
drivers/hwtracing/coresight/coresight-syscfg.h | 13 +
drivers/hwtracing/intel_th/msu-sink.c | 3 +
drivers/hwtracing/intel_th/msu.c | 14 +-
drivers/hwtracing/intel_th/pci.c | 25 +-
drivers/i2c/busses/Kconfig | 33 +-
drivers/i2c/busses/Makefile | 4 +-
drivers/i2c/busses/i2c-altera.c | 2 +-
drivers/i2c/busses/i2c-aspeed.c | 2 +-
drivers/i2c/busses/i2c-au1550.c | 2 +-
drivers/i2c/busses/i2c-axxia.c | 2 +-
drivers/i2c/busses/i2c-bcm-iproc.c | 14 +-
drivers/i2c/busses/i2c-bcm-kona.c | 16 +-
drivers/i2c/busses/i2c-brcmstb.c | 18 +-
drivers/i2c/busses/i2c-cadence.c | 41 +-
drivers/i2c/busses/i2c-cbus-gpio.c | 2 +-
drivers/i2c/busses/i2c-cht-wc.c | 2 +-
drivers/i2c/busses/i2c-cros-ec-tunnel.c | 2 +-
drivers/i2c/busses/i2c-davinci.c | 2 +-
drivers/i2c/busses/i2c-designware-common.c | 3 -
drivers/i2c/busses/i2c-designware-platdrv.c | 13 +-
drivers/i2c/busses/i2c-digicolor.c | 2 +-
drivers/i2c/busses/i2c-eg20t.c | 2 +-
drivers/i2c/busses/i2c-emev2.c | 2 +-
drivers/i2c/busses/i2c-exynos5.c | 2 +-
drivers/i2c/busses/i2c-gpio.c | 2 +-
drivers/i2c/busses/i2c-highlander.c | 2 +-
drivers/i2c/busses/i2c-hisi.c | 3 +-
drivers/i2c/busses/i2c-hix5hd2.c | 2 +-
drivers/i2c/busses/i2c-i801.c | 46 +-
drivers/i2c/busses/i2c-ibm_iic.c | 2 +-
drivers/i2c/busses/i2c-icy.c | 2 +-
drivers/i2c/busses/i2c-imx-lpi2c.c | 2 +-
drivers/i2c/busses/i2c-imx.c | 2 +-
drivers/i2c/busses/i2c-kempld.c | 1 +
drivers/i2c/busses/i2c-lpc2k.c | 2 +-
drivers/i2c/busses/i2c-meson.c | 2 +-
drivers/i2c/busses/i2c-microchip-corei2c.c | 480 +
drivers/i2c/busses/i2c-mlxcpld.c | 6 +-
drivers/i2c/busses/i2c-mpc.c | 7 +-
drivers/i2c/busses/i2c-mt65xx.c | 54 +-
drivers/i2c/busses/i2c-mt7621.c | 2 +-
drivers/i2c/busses/i2c-mv64xxx.c | 63 +-
drivers/i2c/busses/i2c-mxs.c | 4 +-
drivers/i2c/busses/i2c-npcm7xx.c | 179 +-
drivers/i2c/busses/i2c-nvidia-gpu.c | 2 +-
drivers/i2c/busses/i2c-omap.c | 2 +-
drivers/i2c/busses/i2c-opal.c | 4 +-
drivers/i2c/busses/i2c-parport.c | 2 +-
drivers/i2c/busses/i2c-piix4.c | 16 +-
drivers/i2c/busses/i2c-pxa.c | 2 +-
drivers/i2c/busses/i2c-qcom-cci.c | 62 +-
drivers/i2c/busses/i2c-qcom-geni.c | 29 +-
drivers/i2c/busses/i2c-qup.c | 2 +-
drivers/i2c/busses/i2c-rcar.c | 2 +-
drivers/i2c/busses/i2c-riic.c | 2 +-
drivers/i2c/busses/i2c-rk3x.c | 2 +-
drivers/i2c/busses/i2c-rzv2m.c | 532 +
drivers/i2c/busses/i2c-s3c2410.c | 2 +-
drivers/i2c/busses/i2c-scmi.c | 9 +-
drivers/i2c/busses/i2c-sh_mobile.c | 2 +-
drivers/i2c/busses/i2c-simtec.c | 2 +-
drivers/i2c/busses/i2c-stm32f7.c | 7 +
drivers/i2c/busses/i2c-taos-evm.c | 2 +-
drivers/i2c/busses/i2c-tegra-bpmp.c | 2 +-
drivers/i2c/busses/i2c-tegra.c | 2 +-
drivers/i2c/busses/i2c-uniphier-f.c | 2 +-
drivers/i2c/busses/i2c-uniphier.c | 2 +-
drivers/i2c/busses/i2c-versatile.c | 2 +-
drivers/i2c/busses/i2c-wmt.c | 2 +-
drivers/i2c/busses/i2c-xiic.c | 4 +-
drivers/i2c/i2c-core-base.c | 11 +-
drivers/i2c/i2c-smbus.c | 2 +-
drivers/i2c/muxes/i2c-mux-gpmux.c | 1 +
drivers/idle/intel_idle.c | 131 +-
drivers/iio/accel/Kconfig | 2 +
drivers/iio/accel/adxl313_core.c | 2 +-
drivers/iio/accel/adxl355_core.c | 2 +-
drivers/iio/accel/adxl367.c | 48 +-
drivers/iio/accel/adxl367_spi.c | 8 +-
drivers/iio/accel/bma180.c | 3 +-
drivers/iio/accel/bma220_spi.c | 10 +-
drivers/iio/accel/bma400.h | 50 +-
drivers/iio/accel/bma400_core.c | 710 +-
drivers/iio/accel/bma400_i2c.c | 10 +-
drivers/iio/accel/bma400_spi.c | 8 +-
drivers/iio/accel/bmi088-accel-core.c | 99 +-
drivers/iio/accel/bmi088-accel-spi.c | 17 +-
drivers/iio/accel/bmi088-accel.h | 9 +-
drivers/iio/accel/cros_ec_accel_legacy.c | 6 +-
drivers/iio/accel/kxcjk-1013.c | 4 +-
drivers/iio/accel/kxsd9-i2c.c | 2 +-
drivers/iio/accel/kxsd9-spi.c | 2 +-
drivers/iio/accel/kxsd9.c | 11 +-
drivers/iio/accel/mc3230.c | 4 +-
drivers/iio/accel/mma7660.c | 6 +-
drivers/iio/accel/mma8452.c | 22 +-
drivers/iio/accel/mxc4005.c | 4 +-
drivers/iio/accel/sca3000.c | 6 +-
drivers/iio/accel/sca3300.c | 353 +-
drivers/iio/accel/stk8312.c | 4 +-
drivers/iio/accel/stk8ba50.c | 4 +-
drivers/iio/adc/Kconfig | 17 +-
drivers/iio/adc/Makefile | 1 +
drivers/iio/adc/ad7266.c | 4 +-
drivers/iio/adc/ad7280a.c | 2 +-
drivers/iio/adc/ad7292.c | 2 +-
drivers/iio/adc/ad7298.c | 2 +-
drivers/iio/adc/ad7476.c | 5 +-
drivers/iio/adc/ad7606.c | 1 +
drivers/iio/adc/ad7606.h | 4 +-
drivers/iio/adc/ad7606_par.c | 1 +
drivers/iio/adc/ad7766.c | 5 +-
drivers/iio/adc/ad7768-1.c | 6 +-
drivers/iio/adc/ad7887.c | 5 +-
drivers/iio/adc/ad7923.c | 4 +-
drivers/iio/adc/ad7949.c | 4 +-
drivers/iio/adc/ad799x.c | 8 +-
drivers/iio/adc/ad9467.c | 1 +
drivers/iio/adc/adi-axi-adc.c | 14 +-
drivers/iio/adc/aspeed_adc.c | 1 +
drivers/iio/adc/at91-sama5d2_adc.c | 11 +-
drivers/iio/adc/axp288_adc.c | 8 +
drivers/iio/adc/berlin2-adc.c | 2 +
drivers/iio/adc/hi8435.c | 2 +-
drivers/iio/adc/imx7d_adc.c | 6 +-
drivers/iio/adc/imx8qxp-adc.c | 14 +-
drivers/iio/adc/ina2xx-adc.c | 10 +-
drivers/iio/adc/ingenic-adc.c | 2 +
drivers/iio/adc/intel_mrfld_adc.c | 1 +
drivers/iio/adc/lpc18xx_adc.c | 3 +-
drivers/iio/adc/ltc2496.c | 4 +-
drivers/iio/adc/ltc2497.c | 4 +-
drivers/iio/adc/max1027.c | 8 +-
drivers/iio/adc/max11100.c | 4 +-
drivers/iio/adc/max1118.c | 2 +-
drivers/iio/adc/max1241.c | 2 +-
drivers/iio/adc/mcp320x.c | 2 +-
drivers/iio/adc/meson_saradc.c | 187 +-
drivers/iio/adc/mp2629_adc.c | 1 +
drivers/iio/adc/mt6360-adc.c | 1 +
drivers/iio/adc/mt6577_auxadc.c | 12 +-
drivers/iio/adc/nau7802.c | 16 +-
drivers/iio/adc/npcm_adc.c | 37 +-
drivers/iio/adc/qcom-spmi-rradc.c | 1022 +
drivers/iio/adc/rzg2l_adc.c | 12 +-
drivers/iio/adc/sc27xx_adc.c | 15 +-
drivers/iio/adc/stm32-adc-core.c | 11 +-
drivers/iio/adc/stm32-adc.c | 43 +-
drivers/iio/adc/stmpe-adc.c | 6 +-
drivers/iio/adc/stx104.c | 86 +-
drivers/iio/adc/ti-adc0832.c | 2 +-
drivers/iio/adc/ti-adc084s021.c | 4 +-
drivers/iio/adc/ti-adc108s102.c | 4 +-
drivers/iio/adc/ti-adc12138.c | 2 +-
drivers/iio/adc/ti-adc128s052.c | 2 +-
drivers/iio/adc/ti-adc161s626.c | 2 +-
drivers/iio/adc/ti-ads1015.c | 8 +-
drivers/iio/adc/ti-ads124s08.c | 8 +-
drivers/iio/adc/ti-ads131e08.c | 12 +-
drivers/iio/adc/ti-ads7950.c | 4 +-
drivers/iio/adc/ti-ads8344.c | 2 +-
drivers/iio/adc/ti-ads8688.c | 2 +-
drivers/iio/adc/ti-tlc4541.c | 4 +-
drivers/iio/adc/ti-tsc2046.c | 2 +-
drivers/iio/adc/ti_am335x_adc.c | 8 +-
drivers/iio/adc/vf610_adc.c | 15 +-
drivers/iio/adc/xilinx-ams.c | 10 +-
drivers/iio/adc/xilinx-xadc-core.c | 69 +-
drivers/iio/addac/ad74413r.c | 12 +-
drivers/iio/afe/iio-rescale.c | 4 +-
drivers/iio/amplifiers/ad8366.c | 4 +-
drivers/iio/chemical/atlas-sensor.c | 8 +-
drivers/iio/chemical/bme680_core.c | 2 +-
drivers/iio/chemical/ccs811.c | 14 +-
drivers/iio/chemical/scd4x.c | 8 +-
drivers/iio/chemical/sps30.c | 2 +-
drivers/iio/chemical/sps30_i2c.c | 1 +
drivers/iio/chemical/sps30_serial.c | 1 +
.../iio/common/cros_ec_sensors/cros_ec_lid_angle.c | 5 +-
.../iio/common/cros_ec_sensors/cros_ec_sensors.c | 7 +-
.../common/cros_ec_sensors/cros_ec_sensors_core.c | 88 +-
drivers/iio/common/ssp_sensors/ssp.h | 3 +-
drivers/iio/dac/Kconfig | 2 +-
drivers/iio/dac/ad5064.c | 4 +-
drivers/iio/dac/ad5360.c | 4 +-
drivers/iio/dac/ad5380.c | 4 +-
drivers/iio/dac/ad5421.c | 4 +-
drivers/iio/dac/ad5449.c | 4 +-
drivers/iio/dac/ad5504.c | 2 +-
drivers/iio/dac/ad5592r-base.c | 2 +-
drivers/iio/dac/ad5592r-base.h | 4 +-
drivers/iio/dac/ad5686.h | 6 +-
drivers/iio/dac/ad5755.c | 4 +-
drivers/iio/dac/ad5761.c | 4 +-
drivers/iio/dac/ad5764.c | 4 +-
drivers/iio/dac/ad5766.c | 2 +-
drivers/iio/dac/ad5770r.c | 2 +-
drivers/iio/dac/ad5791.c | 2 +-
drivers/iio/dac/ad7293.c | 2 +-
drivers/iio/dac/ad7303.c | 4 +-
drivers/iio/dac/ad8801.c | 2 +-
drivers/iio/dac/cio-dac.c | 20 +-
drivers/iio/dac/ds4424.c | 8 +-
drivers/iio/dac/ltc1660.c | 9 +-
drivers/iio/dac/ltc2688.c | 4 +-
drivers/iio/dac/max517.c | 8 +-
drivers/iio/dac/max5821.c | 9 +-
drivers/iio/dac/mcp4725.c | 9 +-
drivers/iio/dac/mcp4922.c | 13 +-
drivers/iio/dac/stm32-dac.c | 6 +-
drivers/iio/dac/ti-dac082s085.c | 2 +-
drivers/iio/dac/ti-dac5571.c | 5 +-
drivers/iio/dac/ti-dac7311.c | 2 +-
drivers/iio/dac/ti-dac7612.c | 4 +-
drivers/iio/dac/vf610_dac.c | 1 +
drivers/iio/frequency/ad9523.c | 6 +-
drivers/iio/frequency/adf4350.c | 6 +-
drivers/iio/frequency/adf4371.c | 2 +-
drivers/iio/frequency/admv1013.c | 2 +-
drivers/iio/frequency/admv1014.c | 8 +-
drivers/iio/frequency/admv4420.c | 2 +-
drivers/iio/frequency/adrf6780.c | 2 +-
drivers/iio/gyro/adis16080.c | 2 +-
drivers/iio/gyro/adis16130.c | 2 +-
drivers/iio/gyro/adxrs450.c | 2 +-
drivers/iio/gyro/bmg160_core.c | 2 +-
drivers/iio/gyro/fxas21002c_core.c | 6 +-
drivers/iio/gyro/itg3200_core.c | 9 +-
drivers/iio/gyro/mpu3050-core.c | 15 +-
drivers/iio/gyro/mpu3050-i2c.c | 2 +-
drivers/iio/health/afe4403.c | 9 +-
drivers/iio/health/afe4404.c | 13 +-
drivers/iio/humidity/hts221_buffer.c | 6 +-
drivers/iio/humidity/hts221_core.c | 12 +-
drivers/iio/humidity/hts221_i2c.c | 3 +-
drivers/iio/humidity/hts221_spi.c | 3 +-
drivers/iio/imu/bmi160/bmi160_core.c | 6 +-
drivers/iio/imu/bmi160/bmi160_i2c.c | 1 +
drivers/iio/imu/bmi160/bmi160_spi.c | 1 +
drivers/iio/imu/fxos8700_core.c | 2 +-
drivers/iio/imu/inv_icm42600/inv_icm42600.h | 3 +-
drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.h | 2 +-
drivers/iio/imu/inv_icm42600/inv_icm42600_core.c | 2 +-
drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 2 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 16 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 3 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i3c.c | 5 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 3 +-
drivers/iio/industrialio-buffer.c | 66 +-
drivers/iio/industrialio-core.c | 88 +-
drivers/iio/industrialio-sw-device.c | 2 +-
drivers/iio/industrialio-sw-trigger.c | 2 +-
drivers/iio/industrialio-trigger.c | 89 +-
drivers/iio/light/al3010.c | 8 +-
drivers/iio/light/al3320a.c | 9 +-
drivers/iio/light/as73211.c | 9 +-
drivers/iio/light/bh1750.c | 6 +-
drivers/iio/light/bh1780.c | 7 +-
drivers/iio/light/cm32181.c | 22 +
drivers/iio/light/cm3605.c | 13 +-
drivers/iio/light/cros_ec_light_prox.c | 9 +-
drivers/iio/light/gp2ap002.c | 14 +-
drivers/iio/light/isl29028.c | 19 +-
drivers/iio/light/jsa1212.c | 4 +-
drivers/iio/light/opt3001.c | 3 +-
drivers/iio/light/pa12203001.c | 8 +-
drivers/iio/light/stk3310.c | 4 +-
drivers/iio/light/tsl2563.c | 7 +-
drivers/iio/light/tsl2583.c | 17 +-
drivers/iio/light/tsl2591.c | 12 +-
drivers/iio/light/us5182d.c | 16 +-
drivers/iio/light/vcnl4000.c | 22 +-
drivers/iio/light/vcnl4035.c | 24 +-
drivers/iio/light/veml6030.c | 14 +-
drivers/iio/magnetometer/ak8974.c | 14 +-
drivers/iio/magnetometer/bmc150_magn.c | 3 +-
drivers/iio/magnetometer/bmc150_magn.h | 2 +-
drivers/iio/magnetometer/bmc150_magn_i2c.c | 4 +-
drivers/iio/magnetometer/hmc5843_core.c | 2 +-
drivers/iio/magnetometer/rm3100-core.c | 2 +-
drivers/iio/magnetometer/yamaha-yas530.c | 16 +-
drivers/iio/potentiometer/ad5110.c | 4 +-
drivers/iio/potentiometer/ad5272.c | 2 +-
drivers/iio/potentiometer/max5481.c | 2 +-
drivers/iio/potentiometer/mcp41010.c | 2 +-
drivers/iio/potentiometer/mcp4131.c | 2 +-
drivers/iio/pressure/bmp280-core.c | 2 +-
drivers/iio/pressure/bmp280-i2c.c | 1 +
drivers/iio/pressure/bmp280-regmap.c | 4 +-
drivers/iio/pressure/bmp280-spi.c | 1 +
drivers/iio/pressure/cros_ec_baro.c | 9 +-
drivers/iio/pressure/dlhl60d.c | 2 +-
drivers/iio/proximity/as3935.c | 2 +-
drivers/iio/proximity/cros_ec_mkbp_proximity.c | 8 +-
drivers/iio/proximity/ping.c | 2 +-
drivers/iio/proximity/srf04.c | 11 +-
drivers/iio/proximity/srf08.c | 2 +-
drivers/iio/proximity/sx9324.c | 79 +-
drivers/iio/proximity/sx9360.c | 15 +-
drivers/iio/proximity/sx_common.c | 10 +-
drivers/iio/proximity/vcnl3020.c | 4 +-
drivers/iio/proximity/vl53l0x-i2c.c | 55 +-
drivers/iio/resolver/ad2s1200.c | 2 +-
drivers/iio/resolver/ad2s90.c | 2 +-
drivers/iio/temperature/ltc2983.c | 13 +-
drivers/iio/temperature/max31865.c | 2 +-
drivers/iio/temperature/maxim_thermocouple.c | 2 +-
drivers/iio/test/Kconfig | 26 +-
drivers/iio/test/Makefile | 4 +-
drivers/iio/test/iio-test-format.c | 4 +
drivers/iio/test/iio-test-rescale.c | 5 +
drivers/iio/trigger/iio-trig-sysfs.c | 1 +
drivers/iio/trigger/stm32-lptimer-trigger.c | 4 +-
drivers/infiniband/Kconfig | 15 +-
drivers/infiniband/core/cm.c | 4 +-
drivers/infiniband/core/cma.c | 230 +-
drivers/infiniband/core/cma_priv.h | 1 +
drivers/infiniband/core/rdma_core.c | 2 +-
drivers/infiniband/core/roce_gid_mgmt.c | 2 +-
drivers/infiniband/core/rw.c | 45 +-
drivers/infiniband/hw/Makefile | 1 +
drivers/infiniband/hw/bnxt_re/bnxt_re.h | 2 +-
drivers/infiniband/hw/erdma/Kconfig | 12 +
drivers/infiniband/hw/erdma/Makefile | 4 +
drivers/infiniband/hw/erdma/erdma.h | 287 +
drivers/infiniband/hw/erdma/erdma_cm.c | 1430 +
drivers/infiniband/hw/erdma/erdma_cm.h | 167 +
drivers/infiniband/hw/erdma/erdma_cmdq.c | 493 +
drivers/infiniband/hw/erdma/erdma_cq.c | 205 +
drivers/infiniband/hw/erdma/erdma_eq.c | 329 +
drivers/infiniband/hw/erdma/erdma_hw.h | 508 +
drivers/infiniband/hw/erdma/erdma_main.c | 608 +
drivers/infiniband/hw/erdma/erdma_qp.c | 566 +
drivers/infiniband/hw/erdma/erdma_verbs.c | 1460 +
drivers/infiniband/hw/erdma/erdma_verbs.h | 342 +
drivers/infiniband/hw/hfi1/Kconfig | 2 +-
drivers/infiniband/hw/hfi1/file_ops.c | 4 +-
drivers/infiniband/hw/hfi1/ipoib_tx.c | 4 +-
drivers/infiniband/hw/hfi1/netdev_rx.c | 2 +-
drivers/infiniband/hw/hfi1/pio_copy.c | 2 +-
drivers/infiniband/hw/hfi1/trace_dbg.h | 8 +-
drivers/infiniband/hw/hns/hns_roce_device.h | 1 +
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 248 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 13 +-
drivers/infiniband/hw/irdma/cm.c | 61 +-
drivers/infiniband/hw/irdma/ctrl.c | 8 +-
drivers/infiniband/hw/irdma/hw.c | 33 +-
drivers/infiniband/hw/irdma/i40iw_hw.c | 1 +
drivers/infiniband/hw/irdma/icrdma_hw.c | 1 +
drivers/infiniband/hw/irdma/irdma.h | 1 +
drivers/infiniband/hw/irdma/main.h | 2 +-
drivers/infiniband/hw/irdma/utils.c | 1 +
drivers/infiniband/hw/irdma/verbs.c | 20 +-
drivers/infiniband/hw/mlx5/cq.c | 4 +
drivers/infiniband/hw/mlx5/dm.c | 53 +-
drivers/infiniband/hw/mlx5/fs.c | 165 +-
drivers/infiniband/hw/mlx5/main.c | 4 +-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 79 +-
drivers/infiniband/hw/mlx5/mr.c | 515 +-
drivers/infiniband/hw/mlx5/odp.c | 2 +-
drivers/infiniband/hw/mlx5/umr.c | 78 +-
drivers/infiniband/hw/qedr/qedr.h | 1 +
drivers/infiniband/hw/qedr/verbs.c | 12 +-
drivers/infiniband/hw/qib/qib.h | 2 +-
drivers/infiniband/hw/qib/qib_file_ops.c | 6 +-
drivers/infiniband/hw/qib/qib_iba7220.c | 2 +-
drivers/infiniband/hw/qib/qib_iba7322.c | 23 +-
drivers/infiniband/hw/qib/qib_init.c | 5 +-
drivers/infiniband/hw/qib/qib_sd7220.c | 2 +-
drivers/infiniband/hw/usnic/usnic_uiom.c | 2 +-
drivers/infiniband/sw/rxe/rxe_comp.c | 49 +-
drivers/infiniband/sw/rxe/rxe_cq.c | 8 +-
drivers/infiniband/sw/rxe/rxe_loc.h | 5 +-
drivers/infiniband/sw/rxe/rxe_mr.c | 213 +-
drivers/infiniband/sw/rxe/rxe_mw.c | 19 +-
drivers/infiniband/sw/rxe/rxe_param.h | 6 +
drivers/infiniband/sw/rxe/rxe_pool.c | 106 +-
drivers/infiniband/sw/rxe/rxe_pool.h | 18 +-
drivers/infiniband/sw/rxe/rxe_qp.c | 36 +-
drivers/infiniband/sw/rxe/rxe_queue.h | 5 +-
drivers/infiniband/sw/rxe/rxe_req.c | 137 +-
drivers/infiniband/sw/rxe/rxe_resp.c | 236 +-
drivers/infiniband/sw/rxe/rxe_task.c | 16 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 78 +-
drivers/infiniband/sw/rxe/rxe_verbs.h | 27 +-
drivers/infiniband/sw/siw/siw_cm.c | 7 +-
drivers/infiniband/sw/siw/siw_verbs.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 6 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 4 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 6 +-
drivers/infiniband/ulp/rtrs/rtrs-clt-stats.c | 14 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 50 +-
drivers/infiniband/ulp/rtrs/rtrs-pri.h | 21 +-
drivers/infiniband/ulp/rtrs/rtrs-srv-stats.c | 32 +-
drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 2 +
drivers/infiniband/ulp/rtrs/rtrs-srv.c | 32 +-
drivers/infiniband/ulp/rtrs/rtrs-srv.h | 15 +-
drivers/infiniband/ulp/srp/ib_srp.c | 3 +-
drivers/infiniband/ulp/srpt/ib_srpt.c | 156 +-
drivers/infiniband/ulp/srpt/ib_srpt.h | 18 +-
drivers/input/input-core-private.h | 16 +
drivers/input/input-mt.c | 48 +-
drivers/input/input.c | 149 +-
drivers/input/joystick/Kconfig | 1 +
drivers/input/joystick/adc-joystick.c | 15 +-
drivers/input/joystick/sensehat-joystick.c | 4 +-
drivers/input/keyboard/Kconfig | 2 +-
drivers/input/keyboard/adp5588-keys.c | 206 +-
drivers/input/keyboard/applespi.c | 42 +-
drivers/input/keyboard/bcm-keypad.c | 14 +-
drivers/input/keyboard/cros_ec_keyb.c | 89 +-
drivers/input/keyboard/mt6779-keypad.c | 18 +-
drivers/input/keyboard/mtk-pmic-keys.c | 98 +-
drivers/input/keyboard/omap4-keypad.c | 26 +-
drivers/input/misc/gpio_decoder.c | 10 +-
drivers/input/misc/iqs7222.c | 178 +-
drivers/input/misc/palmas-pwrbutton.c | 10 +-
drivers/input/misc/soc_button_array.c | 4 +-
drivers/input/misc/tps65218-pwrbutton.c | 10 +-
drivers/input/mouse/bcm5974.c | 7 +-
drivers/input/mouse/cyapa_gen6.c | 2 +-
drivers/input/mouse/gpio_mouse.c | 2 +-
drivers/input/serio/gscps2.c | 4 +
drivers/input/serio/i8042-x86ia64io.h | 1282 +-
drivers/input/touchscreen/bcm_iproc_tsc.c | 9 +-
drivers/input/touchscreen/edt-ft5x06.c | 96 +-
drivers/input/touchscreen/exc3000.c | 7 +-
drivers/input/touchscreen/goodix.c | 27 +-
drivers/input/touchscreen/usbtouchscreen.c | 3 +
drivers/input/touchscreen/wm97xx-core.c | 4 +-
drivers/input/touchscreen/zinitix.c | 112 +-
drivers/interconnect/bulk.c | 42 +
drivers/interconnect/imx/Kconfig | 4 +
drivers/interconnect/imx/Makefile | 2 +
drivers/interconnect/imx/imx.c | 84 +-
drivers/interconnect/imx/imx.h | 49 +-
drivers/interconnect/imx/imx8mm.c | 2 +-
drivers/interconnect/imx/imx8mn.c | 2 +-
drivers/interconnect/imx/imx8mp.c | 259 +
drivers/interconnect/imx/imx8mq.c | 2 +-
drivers/interconnect/qcom/Kconfig | 9 +
drivers/interconnect/qcom/Makefile | 5 +
drivers/interconnect/qcom/icc-common.c | 34 +
drivers/interconnect/qcom/icc-common.h | 13 +
drivers/interconnect/qcom/icc-rpm.c | 168 +-
drivers/interconnect/qcom/icc-rpm.h | 6 +
drivers/interconnect/qcom/icc-rpmh.c | 30 +-
drivers/interconnect/qcom/icc-rpmh.h | 1 -
drivers/interconnect/qcom/msm8939.c | 1 +
drivers/interconnect/qcom/sm6350.c | 493 +
drivers/interconnect/qcom/sm6350.h | 139 +
drivers/interconnect/qcom/sm8450.c | 1 +
drivers/iommu/Kconfig | 10 +
drivers/iommu/amd/amd_iommu.h | 18 +-
drivers/iommu/amd/amd_iommu_types.h | 186 +-
drivers/iommu/amd/init.c | 942 +-
drivers/iommu/amd/io_pgtable.c | 6 +-
drivers/iommu/amd/iommu.c | 585 +-
drivers/iommu/amd/iommu_v2.c | 67 +-
drivers/iommu/amd/quirks.c | 4 +-
drivers/iommu/apple-dart.c | 4 -
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 144 +-
drivers/iommu/arm/arm-smmu/Makefile | 1 +
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c | 142 +
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 34 +-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.h | 28 +
drivers/iommu/arm/arm-smmu/arm-smmu.c | 73 +-
drivers/iommu/arm/arm-smmu/arm-smmu.h | 1 +
drivers/iommu/arm/arm-smmu/qcom_iommu.c | 18 +-
drivers/iommu/dma-iommu.c | 124 +-
drivers/iommu/exynos-iommu.c | 182 +-
drivers/iommu/fsl_pamu_domain.c | 5 -
drivers/iommu/hyperv-iommu.c | 2 +-
drivers/iommu/intel/cap_audit.c | 2 +-
drivers/iommu/intel/debugfs.c | 51 +-
drivers/iommu/intel/dmar.c | 43 +-
drivers/iommu/intel/iommu.c | 471 +-
.../intel-iommu.h => drivers/iommu/intel/iommu.h | 38 +-
drivers/iommu/intel/irq_remapping.c | 2 +-
drivers/iommu/intel/pasid.c | 176 +-
drivers/iommu/intel/pasid.h | 2 +-
drivers/iommu/intel/perf.c | 2 +-
drivers/iommu/intel/svm.c | 11 +-
drivers/iommu/intel/trace.c | 2 +-
.../intel_iommu.h => drivers/iommu/intel/trace.h | 7 +-
drivers/iommu/io-pgtable-arm-v7s.c | 75 +-
drivers/iommu/iommu.c | 59 +-
drivers/iommu/iova.c | 12 +-
drivers/iommu/ipmmu-vmsa.c | 2 +-
drivers/iommu/msm_iommu.c | 7 +-
drivers/iommu/mtk_iommu.c | 71 +-
drivers/iommu/mtk_iommu_v1.c | 5 -
drivers/iommu/of_iommu.c | 2 +-
drivers/iommu/sprd-iommu.c | 11 -
drivers/iommu/sun50i-iommu.c | 3 -
drivers/iommu/tegra-gart.c | 5 -
drivers/iommu/tegra-smmu.c | 3 -
drivers/iommu/virtio-iommu.c | 31 +-
drivers/irqchip/Kconfig | 71 +-
drivers/irqchip/Makefile | 5 +
drivers/irqchip/irq-apple-aic.c | 4 +-
drivers/irqchip/irq-bcm6345-l1.c | 4 +-
drivers/irqchip/irq-gic-realview.c | 1 +
drivers/irqchip/irq-gic-v3.c | 68 +-
drivers/irqchip/irq-gic.c | 18 +-
drivers/irqchip/irq-keystone.c | 10 +-
drivers/irqchip/irq-loongarch-cpu.c | 148 +
drivers/irqchip/irq-loongson-eiointc.c | 395 +
drivers/irqchip/irq-loongson-liointc.c | 211 +-
drivers/irqchip/irq-loongson-pch-lpc.c | 205 +
drivers/irqchip/irq-loongson-pch-msi.c | 127 +-
drivers/irqchip/irq-loongson-pch-pic.c | 177 +-
drivers/irqchip/irq-mips-gic.c | 84 +-
drivers/irqchip/irq-or1k-pic.c | 1 -
drivers/irqchip/irq-realtek-rtl.c | 2 +-
drivers/irqchip/irq-renesas-rzg2l.c | 393 +
drivers/irqchip/irq-riscv-intc.c | 7 +-
drivers/irqchip/irq-sifive-plic.c | 149 +-
drivers/irqchip/irq-sp7021-intc.c | 278 +
drivers/irqchip/irq-stm32-exti.c | 250 +-
drivers/irqchip/irq-tegra.c | 10 +-
drivers/irqchip/irq-uniphier-aidet.c | 1 +
drivers/isdn/hardware/mISDN/hfcsusb.c | 2 +-
drivers/leds/Kconfig | 10 +-
drivers/leds/blink/Kconfig | 14 +
drivers/leds/blink/Makefile | 1 +
drivers/leds/blink/leds-bcm63138.c | 307 +
drivers/leds/leds-is31fl319x.c | 529 +-
drivers/leds/leds-turris-omnia.c | 4 +-
drivers/leds/rgb/leds-pwm-multicolor.c | 8 +-
drivers/leds/simple/Kconfig | 6 +-
drivers/leds/simple/Makefile | 1 +
drivers/leds/simple/simatic-ipc-leds-gpio.c | 105 +
drivers/leds/simple/simatic-ipc-leds.c | 80 +-
drivers/macintosh/adb.c | 2 +-
drivers/mailbox/bcm-flexrm-mailbox.c | 14 +-
drivers/mailbox/imx-mailbox.c | 40 +-
drivers/mailbox/mtk-cmdq-mailbox.c | 11 -
drivers/mcb/mcb-core.c | 4 +-
drivers/md/Makefile | 3 +-
drivers/md/bcache/Kconfig | 2 +-
drivers/md/bcache/btree.c | 2 +-
drivers/md/bcache/super.c | 27 +-
drivers/md/dm-bufio.c | 71 +-
drivers/md/dm-cache-metadata.h | 2 +-
drivers/md/dm-cache-target.c | 2 +-
drivers/md/dm-core.h | 33 +-
drivers/md/dm-ebs-target.c | 18 +-
drivers/md/dm-era-target.c | 8 +-
drivers/md/dm-flakey.c | 8 +-
drivers/md/dm-ima.c | 5 +-
drivers/md/dm-integrity.c | 78 +-
drivers/md/dm-io-rewind.c | 166 +
drivers/md/dm-io.c | 38 +-
drivers/md/dm-ioctl.c | 6 +-
drivers/md/dm-kcopyd.c | 28 +-
drivers/md/dm-log.c | 13 +-
drivers/md/dm-raid.c | 46 +-
drivers/md/dm-raid1.c | 12 +-
drivers/md/dm-rq.c | 3 +-
drivers/md/dm-snap-persistent.c | 27 +-
drivers/md/dm-snap.c | 2 +-
drivers/md/dm-table.c | 333 +-
drivers/md/dm-thin-metadata.c | 7 +-
drivers/md/dm-thin.c | 4 +-
drivers/md/dm-verity-fec.c | 4 +-
drivers/md/dm-verity-loadpin.c | 75 +
drivers/md/dm-verity-target.c | 208 +-
drivers/md/dm-verity.h | 10 +-
drivers/md/dm-writecache.c | 58 +-
drivers/md/dm-zone.c | 95 +-
drivers/md/dm-zoned-metadata.c | 9 +-
drivers/md/dm-zoned-target.c | 25 +-
drivers/md/dm-zoned.h | 2 +-
drivers/md/dm.c | 612 +-
drivers/md/dm.h | 6 -
drivers/md/md-autodetect.c | 21 +-
drivers/md/md-bitmap.c | 6 +-
drivers/md/md-cluster.c | 4 +-
drivers/md/md.c | 452 +-
drivers/md/md.h | 24 +-
drivers/md/persistent-data/dm-block-manager.c | 3 +-
drivers/md/raid1.c | 14 +-
drivers/md/raid10.c | 27 +-
drivers/md/raid5-cache.c | 52 +-
drivers/md/raid5-log.h | 77 +-
drivers/md/raid5-ppl.c | 18 +-
drivers/md/raid5.c | 742 +-
drivers/md/raid5.h | 2 +-
drivers/media/cec/core/cec-adap.c | 5 +-
drivers/media/cec/platform/cros-ec/cros-ec-cec.c | 4 +
drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 44 +
drivers/media/common/videobuf2/videobuf2-v4l2.c | 12 +
drivers/media/i2c/Kconfig | 18 +-
drivers/media/i2c/Makefile | 1 +
drivers/media/i2c/adv7180.c | 5 +-
drivers/media/i2c/adv7343_regs.h | 10 +-
drivers/media/i2c/adv7393_regs.h | 10 +-
drivers/media/i2c/adv748x/adv748x.h | 2 +-
drivers/media/i2c/adv7604.c | 5 +-
drivers/media/i2c/ar0521.c | 1061 +
drivers/media/i2c/mt9p031.c | 93 +-
drivers/media/i2c/ov5640.c | 1650 +-
drivers/media/i2c/ov5693.c | 57 +-
drivers/media/i2c/ov7251.c | 7 +-
drivers/media/i2c/st-mipid02.c | 30 +-
drivers/media/i2c/tda1997x.c | 2 +-
drivers/media/i2c/tvp5150.c | 2 +-
drivers/media/mc/mc-entity.c | 96 +-
drivers/media/pci/cx18/cx18-av-core.c | 2 +-
drivers/media/pci/cx88/cx88-core.c | 22 +-
drivers/media/pci/ddbridge/ddbridge-ci.c | 9 -
drivers/media/pci/ddbridge/ddbridge-ci.h | 9 -
drivers/media/pci/ddbridge/ddbridge-core.c | 9 -
drivers/media/pci/ddbridge/ddbridge-hw.c | 9 -
drivers/media/pci/ddbridge/ddbridge-hw.h | 11 +-
drivers/media/pci/ddbridge/ddbridge-i2c.c | 9 -
drivers/media/pci/ddbridge/ddbridge-i2c.h | 9 -
drivers/media/pci/ddbridge/ddbridge-io.h | 9 -
drivers/media/pci/ddbridge/ddbridge-main.c | 9 -
drivers/media/pci/ddbridge/ddbridge-max.c | 9 -
drivers/media/pci/ddbridge/ddbridge-max.h | 11 +-
drivers/media/pci/ddbridge/ddbridge-mci.c | 9 -
drivers/media/pci/ddbridge/ddbridge-mci.h | 9 -
drivers/media/pci/ddbridge/ddbridge-regs.h | 9 -
drivers/media/pci/ddbridge/ddbridge-sx8.c | 9 -
drivers/media/pci/ddbridge/ddbridge.h | 11 +-
drivers/media/pci/intel/ipu3/ipu3-cio2-main.c | 2 +-
drivers/media/pci/saa7164/saa7164-api.c | 2 +-
drivers/media/pci/sta2x11/Kconfig | 2 +-
drivers/media/pci/tw5864/tw5864-core.c | 30 +-
drivers/media/pci/tw686x/tw686x-core.c | 21 +-
drivers/media/pci/tw686x/tw686x-video.c | 4 +-
drivers/media/platform/amphion/vdec.c | 50 +-
drivers/media/platform/amphion/venc.c | 3 +-
drivers/media/platform/amphion/vpu.h | 1 +
drivers/media/platform/amphion/vpu_cmds.c | 3 +-
drivers/media/platform/amphion/vpu_core.c | 18 +-
drivers/media/platform/amphion/vpu_dbg.c | 2 +-
drivers/media/platform/amphion/vpu_malone.c | 20 +
drivers/media/platform/amphion/vpu_malone.h | 1 +
drivers/media/platform/amphion/vpu_msgs.c | 7 +-
drivers/media/platform/amphion/vpu_rpc.c | 2 +-
drivers/media/platform/amphion/vpu_rpc.h | 7 +-
drivers/media/platform/amphion/vpu_v4l2.c | 6 +-
drivers/media/platform/atmel/Kconfig | 4 +-
drivers/media/platform/atmel/atmel-isc-base.c | 20 +-
drivers/media/platform/atmel/atmel-sama7g5-isc.c | 2 +
.../media/platform/mediatek/jpeg/mtk_jpeg_core.c | 3 +
drivers/media/platform/mediatek/mdp/mtk_mdp_ipi.h | 2 +
.../platform/mediatek/vcodec/mtk_vcodec_dec.c | 133 +-
.../platform/mediatek/vcodec/mtk_vcodec_dec_drv.c | 13 +
.../platform/mediatek/vcodec/mtk_vcodec_dec_hw.c | 12 +-
.../platform/mediatek/vcodec/mtk_vcodec_dec_hw.h | 2 +
.../platform/mediatek/vcodec/mtk_vcodec_dec_pm.c | 50 +
.../mediatek/vcodec/mtk_vcodec_dec_stateful.c | 29 +-
.../mediatek/vcodec/mtk_vcodec_dec_stateless.c | 30 +-
.../platform/mediatek/vcodec/mtk_vcodec_drv.h | 36 +-
.../platform/mediatek/vcodec/mtk_vcodec_enc.c | 37 +-
.../mediatek/vcodec/vdec/vdec_h264_req_common.c | 7 +-
.../mediatek/vcodec/vdec/vdec_h264_req_multi_if.c | 25 +-
.../mediatek/vcodec/vdec/vdec_vp8_req_if.c | 7 +-
.../mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c | 210 +-
.../media/platform/mediatek/vcodec/vdec_drv_if.c | 2 +-
.../media/platform/mediatek/vcodec/vdec_vpu_if.c | 5 +
drivers/media/platform/nvidia/tegra-vde/h264.c | 9 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.c | 16 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h | 10 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c | 328 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h | 4 +-
drivers/media/platform/nxp/imx-mipi-csis.c | 41 +
drivers/media/platform/qcom/camss/camss-csid.c | 8 +-
drivers/media/platform/qcom/camss/camss-csiphy.c | 2 +-
drivers/media/platform/qcom/camss/camss-ispif.c | 43 +-
drivers/media/platform/qcom/camss/camss-vfe.c | 36 +-
drivers/media/platform/qcom/camss/camss-vfe.h | 3 -
drivers/media/platform/qcom/camss/camss-video.c | 6 +-
drivers/media/platform/qcom/camss/camss.c | 73 +-
drivers/media/platform/qcom/camss/camss.h | 7 +-
drivers/media/platform/qcom/venus/core.c | 20 +-
drivers/media/platform/qcom/venus/core.h | 2 +
drivers/media/platform/qcom/venus/dbgfs.c | 9 +
drivers/media/platform/qcom/venus/dbgfs.h | 13 +
drivers/media/platform/qcom/venus/helpers.c | 6 +-
drivers/media/platform/qcom/venus/hfi_cmds.c | 9 +
drivers/media/platform/qcom/venus/hfi_cmds.h | 1 +
drivers/media/platform/qcom/venus/hfi_helper.h | 20 +
drivers/media/platform/qcom/venus/hfi_parser.c | 6 +-
drivers/media/platform/qcom/venus/hfi_platform.c | 22 +
drivers/media/platform/qcom/venus/hfi_platform.h | 2 +
drivers/media/platform/qcom/venus/hfi_venus.c | 26 +
drivers/media/platform/qcom/venus/pm_helpers.c | 10 +-
.../media/platform/renesas/rcar-vin/rcar-core.c | 4 +-
.../media/platform/renesas/rcar-vin/rcar-csi2.c | 2 +-
drivers/media/platform/renesas/rcar-vin/rcar-dma.c | 2 +-
.../media/platform/renesas/rcar-vin/rcar-v4l2.c | 2 +-
drivers/media/platform/renesas/rcar_drif.c | 7 +-
drivers/media/platform/renesas/vsp1/vsp1_entity.c | 4 +-
drivers/media/platform/renesas/vsp1/vsp1_video.c | 2 +-
drivers/media/platform/rockchip/rkisp1/Kconfig | 2 +-
drivers/media/platform/rockchip/rkisp1/Makefile | 18 +-
.../platform/rockchip/rkisp1/rkisp1-capture.c | 181 +-
.../media/platform/rockchip/rkisp1/rkisp1-common.c | 143 +
.../media/platform/rockchip/rkisp1/rkisp1-common.h | 157 +-
.../media/platform/rockchip/rkisp1/rkisp1-csi.c | 536 +
.../media/platform/rockchip/rkisp1/rkisp1-csi.h | 28 +
.../media/platform/rockchip/rkisp1/rkisp1-debug.c | 243 +
.../media/platform/rockchip/rkisp1/rkisp1-dev.c | 504 +-
.../media/platform/rockchip/rkisp1/rkisp1-isp.c | 691 +-
.../media/platform/rockchip/rkisp1/rkisp1-params.c | 713 +-
.../media/platform/rockchip/rkisp1/rkisp1-regs.h | 190 +-
.../platform/rockchip/rkisp1/rkisp1-resizer.c | 218 +-
.../media/platform/rockchip/rkisp1/rkisp1-stats.c | 17 +-
.../media/platform/samsung/exynos-gsc/gsc-core.c | 3 +-
.../media/platform/samsung/exynos-gsc/gsc-core.h | 2 +-
drivers/media/platform/samsung/exynos4-is/common.c | 2 +-
.../platform/samsung/exynos4-is/fimc-capture.c | 6 +-
.../platform/samsung/exynos4-is/fimc-is-errno.h | 2 +-
.../platform/samsung/exynos4-is/fimc-isp-video.c | 2 +-
.../media/platform/samsung/exynos4-is/fimc-lite.c | 2 +-
.../media/platform/samsung/exynos4-is/media-dev.c | 2 +-
.../media/platform/samsung/exynos4-is/mipi-csis.c | 2 +-
.../platform/samsung/s3c-camif/camif-capture.c | 2 +-
.../media/platform/samsung/s5p-jpeg/jpeg-core.c | 2 +-
.../media/platform/samsung/s5p-mfc/s5p_mfc_pm.c | 3 +-
.../platform/st/sti/c8sectpfe/c8sectpfe-core.c | 33 +-
drivers/media/platform/st/sti/delta/delta-v4l2.c | 24 +-
drivers/media/platform/st/stm32/stm32-dcmi.c | 91 +-
drivers/media/platform/sunxi/Kconfig | 2 +
drivers/media/platform/sunxi/Makefile | 2 +
.../media/platform/sunxi/sun6i-csi/sun6i_video.c | 4 +-
.../media/platform/sunxi/sun6i-mipi-csi2/Kconfig | 15 +
.../media/platform/sunxi/sun6i-mipi-csi2/Makefile | 4 +
.../sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2.c | 750 +
.../sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2.h | 52 +
.../sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2_reg.h | 76 +
.../platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig | 13 +
.../platform/sunxi/sun8i-a83t-mipi-csi2/Makefile | 4 +
.../sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_dphy.c | 72 +
.../sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_dphy.h | 39 +
.../sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.c | 816 +
.../sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.h | 55 +
.../sun8i_a83t_mipi_csi2_reg.h | 151 +
drivers/media/platform/ti/cal/cal-camerarx.c | 4 +-
drivers/media/platform/ti/cal/cal-video.c | 2 +-
drivers/media/platform/ti/davinci/vpif.c | 1 +
drivers/media/platform/ti/davinci/vpif.h | 11 +-
drivers/media/platform/ti/davinci/vpif_display.h | 10 +-
drivers/media/platform/ti/omap/omap_voutlib.c | 4 +-
drivers/media/platform/ti/omap3isp/isp.c | 6 +-
drivers/media/platform/ti/omap3isp/ispccdc.c | 2 +-
drivers/media/platform/ti/omap3isp/ispccp2.c | 2 +-
drivers/media/platform/ti/omap3isp/ispcsi2.c | 2 +-
drivers/media/platform/ti/omap3isp/ispvideo.c | 4 +-
drivers/media/platform/video-mux.c | 2 +-
drivers/media/platform/xilinx/xilinx-csi2rxss.c | 2 +-
drivers/media/platform/xilinx/xilinx-dma.c | 4 +-
drivers/media/platform/xilinx/xilinx-vip.h | 4 +-
drivers/media/rc/ati_remote.c | 11 +-
drivers/media/rc/igorplugusb.c | 23 +-
drivers/media/rc/iguanair.c | 5 +-
drivers/media/rc/imon_raw.c | 16 +-
drivers/media/rc/lirc_dev.c | 6 +-
drivers/media/rc/rc-main.c | 9 +-
drivers/media/rc/redrat3.c | 4 +-
drivers/media/rc/streamzap.c | 2 +-
drivers/media/rc/ttusbir.c | 4 +-
drivers/media/rc/xbox_remote.c | 10 +-
drivers/media/test-drivers/vicodec/vicodec-core.c | 8 +-
drivers/media/test-drivers/vimc/Makefile | 2 +-
drivers/media/test-drivers/vimc/vimc-capture.c | 270 +-
drivers/media/test-drivers/vimc/vimc-common.h | 9 +-
drivers/media/test-drivers/vimc/vimc-core.c | 142 +-
drivers/media/test-drivers/vimc/vimc-debayer.c | 393 +-
drivers/media/test-drivers/vimc/vimc-lens.c | 102 +
drivers/media/test-drivers/vimc/vimc-scaler.c | 216 +-
drivers/media/test-drivers/vimc/vimc-sensor.c | 307 +-
drivers/media/test-drivers/vimc/vimc-streamer.c | 2 +-
drivers/media/test-drivers/vivid/vivid-ctrls.c | 29 +
.../media/test-drivers/vivid/vivid-vid-common.c | 15 +
drivers/media/usb/Kconfig | 1 -
drivers/media/usb/Makefile | 1 -
drivers/media/usb/airspy/airspy.c | 17 +-
drivers/media/usb/em28xx/em28xx-audio.c | 10 -
drivers/media/usb/em28xx/em28xx-camera.c | 10 -
drivers/media/usb/em28xx/em28xx-cards.c | 10 -
drivers/media/usb/em28xx/em28xx-core.c | 10 -
drivers/media/usb/em28xx/em28xx-dvb.c | 4 -
drivers/media/usb/em28xx/em28xx-i2c.c | 10 -
drivers/media/usb/em28xx/em28xx-input.c | 10 -
drivers/media/usb/em28xx/em28xx-v4l.h | 9 -
drivers/media/usb/em28xx/em28xx-vbi.c | 10 -
drivers/media/usb/em28xx/em28xx-video.c | 10 -
drivers/media/usb/em28xx/em28xx.h | 10 -
drivers/media/usb/gspca/spca501.c | 2 +-
drivers/media/usb/gspca/xirlink_cit.c | 2 +-
drivers/media/usb/hdpvr/hdpvr-video.c | 2 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 3 +-
drivers/media/usb/usbtv/usbtv-video.c | 5 +-
drivers/media/usb/usbtv/usbtv.h | 3 +-
drivers/media/usb/uvc/uvc_ctrl.c | 120 +-
drivers/media/usb/uvc/uvc_driver.c | 143 +-
drivers/media/usb/uvc/uvc_isight.c | 13 +-
drivers/media/usb/uvc/uvc_queue.c | 6 +-
drivers/media/usb/uvc/uvc_status.c | 6 +-
drivers/media/usb/uvc/uvc_v4l2.c | 18 +-
drivers/media/usb/uvc/uvc_video.c | 96 +-
drivers/media/usb/uvc/uvcvideo.h | 16 +-
drivers/media/v4l2-core/Kconfig | 6 +-
drivers/media/v4l2-core/v4l2-async.c | 45 +-
drivers/media/v4l2-core/v4l2-common.c | 2 +
drivers/media/v4l2-core/v4l2-ctrls-api.c | 103 +-
drivers/media/v4l2-core/v4l2-ctrls-core.c | 212 +-
drivers/media/v4l2-core/v4l2-ctrls-defs.c | 38 +-
drivers/media/v4l2-core/v4l2-ctrls-priv.h | 3 +-
drivers/media/v4l2-core/v4l2-ctrls-request.c | 13 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 71 +-
drivers/media/v4l2-core/v4l2-mem2mem.c | 2 +-
drivers/memory/Kconfig | 1 +
drivers/memory/mtk-smi.c | 22 +-
drivers/memory/samsung/exynos5422-dmc.c | 29 +-
drivers/memory/tegra/tegra124-emc.c | 11 +-
drivers/memory/tegra/tegra234.c | 80 +
drivers/memory/ti-emif-sram-pm.S | 10 +-
drivers/memstick/core/ms_block.c | 18 +-
drivers/memstick/core/mspro_block.c | 3 +-
drivers/message/fusion/mptspi.c | 2 +-
drivers/mfd/Kconfig | 6 +-
drivers/mfd/asic3.c | 9 +-
drivers/mfd/atmel-smc.c | 4 +-
drivers/mfd/axp20x.c | 9 +
drivers/mfd/bcm2835-pm.c | 74 +-
drivers/mfd/cros_ec_dev.c | 9 +-
drivers/mfd/db8500-prcmu.c | 2 +-
drivers/mfd/dln2.c | 17 +-
drivers/mfd/intel-lpss-pci.c | 13 +
drivers/mfd/intel-m10-bmc.c | 2 +-
drivers/mfd/intel_soc_pmic_bxtwc.c | 194 +-
drivers/mfd/intel_soc_pmic_chtwc.c | 27 +-
drivers/mfd/lp873x.c | 10 +-
drivers/mfd/lpc_ich.c | 161 +-
drivers/mfd/max77620.c | 2 +
drivers/mfd/max77714.c | 4 +-
drivers/mfd/mfd-core.c | 31 +-
drivers/mfd/mt6358-irq.c | 24 +
drivers/mfd/mt6397-core.c | 91 +
drivers/mfd/mt6397-irq.c | 9 +-
drivers/mfd/qcom-pm8008.c | 53 +-
drivers/mfd/qcom-spmi-pmic.c | 272 +-
drivers/mfd/syscon.c | 3 +-
drivers/mfd/t7l66xb.c | 6 +-
drivers/mfd/tc6393xb.c | 5 +-
drivers/mfd/tps65086.c | 10 +-
drivers/mfd/tps65217.c | 10 +-
drivers/mfd/tps65218.c | 10 +-
drivers/mfd/tps65912-core.c | 10 +-
drivers/mfd/tps65912-i2c.c | 10 +-
drivers/mfd/tps65912-spi.c | 10 +-
drivers/mfd/twl-core.c | 323 +-
drivers/mfd/ucb1400_core.c | 6 +-
drivers/misc/Kconfig | 13 +
drivers/misc/Makefile | 1 +
drivers/misc/atmel-ssc.c | 8 +-
drivers/misc/cardreader/rts5261.c | 2 +
drivers/misc/cardreader/rtsx_pcr.c | 8 +-
drivers/misc/cardreader/rtsx_usb.c | 27 +-
drivers/misc/cxl/context.c | 2 +-
drivers/misc/cxl/cxl.h | 2 +-
drivers/misc/cxl/guest.c | 2 +-
drivers/misc/cxl/irq.c | 4 +-
drivers/misc/cxl/of.c | 5 +-
drivers/misc/eeprom/at25.c | 93 +-
drivers/misc/eeprom/idt_89hpesx.c | 14 +-
drivers/misc/habanalabs/Makefile | 3 +
drivers/misc/habanalabs/common/Makefile | 3 +-
drivers/misc/habanalabs/common/asid.c | 5 +-
drivers/misc/habanalabs/common/command_buffer.c | 12 +-
.../misc/habanalabs/common/command_submission.c | 296 +-
drivers/misc/habanalabs/common/context.c | 73 +-
drivers/misc/habanalabs/common/debugfs.c | 221 +-
drivers/misc/habanalabs/common/decoder.c | 133 +
drivers/misc/habanalabs/common/device.c | 242 +-
drivers/misc/habanalabs/common/firmware_if.c | 211 +-
drivers/misc/habanalabs/common/habanalabs.h | 756 +-
drivers/misc/habanalabs/common/habanalabs_drv.c | 82 +-
drivers/misc/habanalabs/common/habanalabs_ioctl.c | 54 +-
drivers/misc/habanalabs/common/hw_queue.c | 45 +-
drivers/misc/habanalabs/common/irq.c | 160 +-
drivers/misc/habanalabs/common/memory.c | 115 +-
drivers/misc/habanalabs/common/memory_mgr.c | 2 +-
drivers/misc/habanalabs/common/mmu/Makefile | 3 +-
drivers/misc/habanalabs/common/mmu/mmu.c | 496 +-
drivers/misc/habanalabs/common/mmu/mmu_v1.c | 9 +-
drivers/misc/habanalabs/common/mmu/mmu_v2_hr.c | 399 +
drivers/misc/habanalabs/common/pci/pci.c | 40 +-
drivers/misc/habanalabs/common/security.c | 600 +
drivers/misc/habanalabs/common/sysfs.c | 10 +-
drivers/misc/habanalabs/gaudi/gaudi.c | 681 +-
drivers/misc/habanalabs/gaudi/gaudi_security.c | 2 +-
drivers/misc/habanalabs/gaudi2/Makefile | 4 +
drivers/misc/habanalabs/gaudi2/gaudi2.c | 9986 +
drivers/misc/habanalabs/gaudi2/gaudi2P.h | 566 +
drivers/misc/habanalabs/gaudi2/gaudi2_coresight.c | 2720 +
.../misc/habanalabs/gaudi2/gaudi2_coresight_regs.h | 1063 +
drivers/misc/habanalabs/gaudi2/gaudi2_masks.h | 141 +
drivers/misc/habanalabs/gaudi2/gaudi2_security.c | 3849 +
drivers/misc/habanalabs/goya/goya.c | 160 +-
drivers/misc/habanalabs/goya/goyaP.h | 6 +-
drivers/misc/habanalabs/goya/goya_hwmgr.c | 2 +
drivers/misc/habanalabs/include/common/cpucp_if.h | 297 +-
.../misc/habanalabs/include/common/hl_boot_if.h | 7 +
.../misc/habanalabs/include/gaudi/gaudi_masks.h | 1 +
.../include/gaudi2/arc/gaudi2_arc_common_packets.h | 213 +
.../gaudi2/asic_reg/arc_farm_arc0_acp_eng_regs.h | 567 +
.../gaudi2/asic_reg/arc_farm_arc0_aux_masks.h | 819 +
.../gaudi2/asic_reg/arc_farm_arc0_aux_regs.h | 591 +
.../asic_reg/arc_farm_arc0_dup_eng_axuser_regs.h | 61 +
.../gaudi2/asic_reg/arc_farm_arc0_dup_eng_regs.h | 575 +
.../asic_reg/arc_farm_kdma_ctx_axuser_masks.h | 135 +
.../asic_reg/arc_farm_kdma_ctx_axuser_regs.h | 61 +
.../gaudi2/asic_reg/arc_farm_kdma_ctx_masks.h | 221 +
.../gaudi2/asic_reg/arc_farm_kdma_ctx_regs.h | 95 +
.../gaudi2/asic_reg/arc_farm_kdma_kdma_cgm_regs.h | 29 +
.../include/gaudi2/asic_reg/arc_farm_kdma_masks.h | 415 +
.../include/gaudi2/asic_reg/arc_farm_kdma_regs.h | 157 +
.../include/gaudi2/asic_reg/cpu_if_regs.h | 777 +
.../gaudi2/asic_reg/dcore0_dec0_cmd_masks.h | 229 +
.../include/gaudi2/asic_reg/dcore0_dec0_cmd_regs.h | 85 +
.../asic_reg/dcore0_edma0_core_ctx_axuser_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_edma0_core_ctx_regs.h | 95 +
.../gaudi2/asic_reg/dcore0_edma0_core_masks.h | 415 +
.../gaudi2/asic_reg/dcore0_edma0_core_regs.h | 157 +
.../gaudi2/asic_reg/dcore0_edma0_qm_arc_aux_regs.h | 591 +
.../dcore0_edma0_qm_axuser_nonsecured_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_edma0_qm_cgm_regs.h | 29 +
.../gaudi2/asic_reg/dcore0_edma0_qm_masks.h | 1165 +
.../include/gaudi2/asic_reg/dcore0_edma0_qm_regs.h | 1057 +
.../asic_reg/dcore0_edma1_core_ctx_axuser_regs.h | 61 +
.../dcore0_edma1_qm_axuser_nonsecured_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_hmmu0_mmu_masks.h | 294 +
.../gaudi2/asic_reg/dcore0_hmmu0_mmu_regs.h | 237 +
.../gaudi2/asic_reg/dcore0_hmmu0_stlb_masks.h | 348 +
.../gaudi2/asic_reg/dcore0_hmmu0_stlb_regs.h | 141 +
.../include/gaudi2/asic_reg/dcore0_mme_acc_regs.h | 73 +
...dcore0_mme_ctrl_lo_arch_agu_cout0_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_cout0_slave_regs.h | 33 +
...dcore0_mme_ctrl_lo_arch_agu_cout1_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_cout1_slave_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in0_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in0_slave_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in1_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in1_slave_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in2_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in2_slave_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in3_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in3_slave_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in4_master_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_agu_in4_slave_regs.h | 33 +
.../dcore0_mme_ctrl_lo_arch_base_addr_regs.h | 39 +
.../dcore0_mme_ctrl_lo_arch_non_tensor_end_regs.h | 73 +
...dcore0_mme_ctrl_lo_arch_non_tensor_start_regs.h | 35 +
.../dcore0_mme_ctrl_lo_arch_tensor_a_regs.h | 67 +
.../dcore0_mme_ctrl_lo_arch_tensor_b_regs.h | 67 +
.../dcore0_mme_ctrl_lo_arch_tensor_cout_regs.h | 67 +
.../gaudi2/asic_reg/dcore0_mme_ctrl_lo_masks.h | 468 +
.../asic_reg/dcore0_mme_ctrl_lo_mme_axuser_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_mme_ctrl_lo_regs.h | 163 +
.../asic_reg/dcore0_mme_qm_arc_acp_eng_regs.h | 567 +
.../gaudi2/asic_reg/dcore0_mme_qm_arc_aux_regs.h | 591 +
.../dcore0_mme_qm_arc_dup_eng_axuser_regs.h | 61 +
.../asic_reg/dcore0_mme_qm_arc_dup_eng_regs.h | 575 +
.../dcore0_mme_qm_axuser_nonsecured_regs.h | 61 +
.../asic_reg/dcore0_mme_qm_axuser_secured_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_mme_qm_cgm_regs.h | 29 +
.../include/gaudi2/asic_reg/dcore0_mme_qm_regs.h | 1057 +
.../gaudi2/asic_reg/dcore0_mme_sbte0_masks.h | 107 +
.../dcore0_mme_sbte0_mstr_if_axuser_regs.h | 61 +
.../asic_reg/dcore0_mme_wb0_mstr_if_axuser_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_rtr0_ctrl_regs.h | 291 +
.../dcore0_rtr0_mstr_if_rr_prvt_hbw_regs.h | 213 +
.../dcore0_rtr0_mstr_if_rr_prvt_lbw_regs.h | 189 +
.../dcore0_rtr0_mstr_if_rr_shrd_hbw_regs.h | 213 +
.../dcore0_rtr0_mstr_if_rr_shrd_lbw_regs.h | 189 +
.../gaudi2/asic_reg/dcore0_sync_mngr_glbl_masks.h | 135 +
.../gaudi2/asic_reg/dcore0_sync_mngr_glbl_regs.h | 1203 +
.../dcore0_sync_mngr_mstr_if_axuser_masks.h | 135 +
.../dcore0_sync_mngr_mstr_if_axuser_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_sync_mngr_objs_masks.h | 87 +
.../gaudi2/asic_reg/dcore0_sync_mngr_objs_regs.h | 43543 ++++
.../gaudi2/asic_reg/dcore0_tpc0_cfg_axuser_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_tpc0_cfg_kernel_regs.h | 129 +
.../dcore0_tpc0_cfg_kernel_tensor_0_regs.h | 63 +
.../gaudi2/asic_reg/dcore0_tpc0_cfg_masks.h | 509 +
.../gaudi2/asic_reg/dcore0_tpc0_cfg_qm_regs.h | 129 +
.../asic_reg/dcore0_tpc0_cfg_qm_sync_object_regs.h | 27 +
.../asic_reg/dcore0_tpc0_cfg_qm_tensor_0_regs.h | 63 +
.../include/gaudi2/asic_reg/dcore0_tpc0_cfg_regs.h | 229 +
.../gaudi2/asic_reg/dcore0_tpc0_cfg_special_regs.h | 185 +
.../asic_reg/dcore0_tpc0_eml_busmon_0_regs.h | 163 +
.../gaudi2/asic_reg/dcore0_tpc0_eml_etf_regs.h | 113 +
.../gaudi2/asic_reg/dcore0_tpc0_eml_funnel_regs.h | 75 +
.../gaudi2/asic_reg/dcore0_tpc0_eml_spmu_regs.h | 151 +
.../gaudi2/asic_reg/dcore0_tpc0_eml_stm_regs.h | 131 +
.../gaudi2/asic_reg/dcore0_tpc0_qm_arc_aux_regs.h | 591 +
.../dcore0_tpc0_qm_axuser_nonsecured_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_tpc0_qm_cgm_regs.h | 29 +
.../include/gaudi2/asic_reg/dcore0_tpc0_qm_regs.h | 1057 +
.../dcore0_vdec0_brdg_ctrl_axuser_dec_regs.h | 61 +
...dcore0_vdec0_brdg_ctrl_axuser_msix_abnrm_regs.h | 61 +
.../dcore0_vdec0_brdg_ctrl_axuser_msix_l2c_regs.h | 61 +
.../dcore0_vdec0_brdg_ctrl_axuser_msix_nrm_regs.h | 61 +
.../dcore0_vdec0_brdg_ctrl_axuser_msix_vcd_regs.h | 61 +
.../gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_masks.h | 581 +
.../gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_regs.h | 245 +
.../asic_reg/dcore0_vdec0_ctrl_special_regs.h | 185 +
.../gaudi2/asic_reg/dcore1_mme_ctrl_lo_regs.h | 163 +
.../gaudi2/asic_reg/dcore3_mme_ctrl_lo_regs.h | 163 +
.../gaudi2/asic_reg/gaudi2_blocks_linux_driver.h | 45067 ++++
.../include/gaudi2/asic_reg/gaudi2_regs.h | 550 +
.../include/gaudi2/asic_reg/nic0_qm0_cgm_regs.h | 29 +
.../include/gaudi2/asic_reg/nic0_qm0_regs.h | 1057 +
.../gaudi2/asic_reg/nic0_qm_arc_aux0_regs.h | 591 +
.../include/gaudi2/asic_reg/nic0_qpc0_regs.h | 905 +
.../nic0_umr0_0_completion_queue_ci_1_regs.h | 27 +
.../asic_reg/nic0_umr0_0_unsecure_doorbell0_regs.h | 31 +
.../include/gaudi2/asic_reg/pcie_aux_regs.h | 293 +
.../include/gaudi2/asic_reg/pcie_dbi_regs.h | 422 +
.../include/gaudi2/asic_reg/pcie_dec0_cmd_masks.h | 229 +
.../include/gaudi2/asic_reg/pcie_dec0_cmd_regs.h | 85 +
.../pcie_vdec0_brdg_ctrl_axuser_dec_regs.h | 61 +
.../pcie_vdec0_brdg_ctrl_axuser_msix_abnrm_regs.h | 61 +
.../pcie_vdec0_brdg_ctrl_axuser_msix_l2c_regs.h | 61 +
.../pcie_vdec0_brdg_ctrl_axuser_msix_nrm_regs.h | 61 +
.../pcie_vdec0_brdg_ctrl_axuser_msix_vcd_regs.h | 61 +
.../gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_masks.h | 580 +
.../gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_regs.h | 245 +
.../gaudi2/asic_reg/pcie_vdec0_ctrl_special_regs.h | 185 +
.../include/gaudi2/asic_reg/pcie_wrap_regs.h | 601 +
.../gaudi2/asic_reg/pdma0_core_ctx_axuser_regs.h | 61 +
.../include/gaudi2/asic_reg/pdma0_core_ctx_regs.h | 95 +
.../include/gaudi2/asic_reg/pdma0_core_masks.h | 415 +
.../include/gaudi2/asic_reg/pdma0_core_regs.h | 157 +
.../gaudi2/asic_reg/pdma0_core_special_masks.h | 135 +
.../gaudi2/asic_reg/pdma0_qm_arc_aux_regs.h | 591 +
.../asic_reg/pdma0_qm_axuser_nonsecured_regs.h | 61 +
.../gaudi2/asic_reg/pdma0_qm_axuser_secured_regs.h | 61 +
.../include/gaudi2/asic_reg/pdma0_qm_cgm_regs.h | 29 +
.../include/gaudi2/asic_reg/pdma0_qm_masks.h | 1165 +
.../include/gaudi2/asic_reg/pdma0_qm_regs.h | 1057 +
.../gaudi2/asic_reg/pdma1_core_ctx_axuser_regs.h | 61 +
.../asic_reg/pdma1_qm_axuser_nonsecured_regs.h | 61 +
.../include/gaudi2/asic_reg/pmmu_hbw_stlb_masks.h | 334 +
.../include/gaudi2/asic_reg/pmmu_hbw_stlb_regs.h | 141 +
.../include/gaudi2/asic_reg/pmmu_pif_regs.h | 135 +
.../include/gaudi2/asic_reg/psoc_etr_masks.h | 311 +
.../include/gaudi2/asic_reg/psoc_etr_regs.h | 115 +
.../gaudi2/asic_reg/psoc_global_conf_masks.h | 1406 +
.../gaudi2/asic_reg/psoc_global_conf_regs.h | 1337 +
.../gaudi2/asic_reg/psoc_reset_conf_masks.h | 2321 +
.../include/gaudi2/asic_reg/psoc_reset_conf_regs.h | 989 +
.../include/gaudi2/asic_reg/psoc_timestamp_regs.h | 57 +
.../include/gaudi2/asic_reg/rot0_desc_regs.h | 155 +
.../include/gaudi2/asic_reg/rot0_masks.h | 313 +
.../include/gaudi2/asic_reg/rot0_qm_arc_aux_regs.h | 591 +
.../asic_reg/rot0_qm_axuser_nonsecured_regs.h | 61 +
.../include/gaudi2/asic_reg/rot0_qm_cgm_regs.h | 29 +
.../include/gaudi2/asic_reg/rot0_qm_regs.h | 1057 +
.../habanalabs/include/gaudi2/asic_reg/rot0_regs.h | 111 +
.../include/gaudi2/asic_reg/xbar_edge_0_regs.h | 199 +
.../include/gaudi2/asic_reg/xbar_mid_0_regs.h | 199 +
drivers/misc/habanalabs/include/gaudi2/gaudi2.h | 123 +
.../include/gaudi2/gaudi2_async_events.h | 963 +
.../include/gaudi2/gaudi2_async_ids_map_extended.h | 2668 +
.../include/gaudi2/gaudi2_async_virt_events.h | 57 +
.../habanalabs/include/gaudi2/gaudi2_coresight.h | 984 +
.../misc/habanalabs/include/gaudi2/gaudi2_fw_if.h | 99 +
.../habanalabs/include/gaudi2/gaudi2_packets.h | 197 +
.../habanalabs/include/gaudi2/gaudi2_reg_map.h | 59 +
.../misc/habanalabs/include/goya/goya_packets.h | 12 -
.../habanalabs/include/hw_ip/mmu/mmu_general.h | 14 +-
.../misc/habanalabs/include/hw_ip/mmu/mmu_v2_0.h | 51 +
drivers/misc/lkdtm/Makefile | 9 +-
drivers/misc/lkdtm/bugs.c | 2 +-
drivers/misc/lkdtm/cfi.c | 2 +-
drivers/misc/mei/hbm.c | 3 +-
drivers/misc/mei/hw-me-regs.h | 2 +
drivers/misc/mei/hw-me.c | 4 +-
drivers/misc/mei/pci-me.c | 2 +
drivers/misc/sgi-gru/grukservices.c | 2 +-
drivers/misc/sgi-xp/xpc_uv.c | 2 +-
drivers/misc/sgi-xp/xpnet.c | 13 +-
drivers/misc/sram-exec.c | 10 +-
drivers/misc/uacce/uacce.c | 133 +-
drivers/misc/vcpu_stall_detector.c | 223 +
drivers/misc/vmw_balloon.c | 63 +-
drivers/mmc/core/block.c | 41 +-
drivers/mmc/core/bus.c | 4 +-
drivers/mmc/core/core.c | 10 +-
drivers/mmc/core/debugfs.c | 80 +
drivers/mmc/core/host.c | 2 +-
drivers/mmc/core/queue.c | 4 +-
drivers/mmc/core/quirks.h | 4 +-
drivers/mmc/core/sd.c | 4 +-
drivers/mmc/core/sdio.c | 30 +-
drivers/mmc/host/Kconfig | 5 +-
drivers/mmc/host/cavium-octeon.c | 1 +
drivers/mmc/host/cavium-thunderx.c | 4 +-
drivers/mmc/host/cqhci-core.c | 9 +-
drivers/mmc/host/dw_mmc-exynos.c | 4 +-
drivers/mmc/host/dw_mmc-hi3798cv200.c | 4 +-
drivers/mmc/host/dw_mmc-rockchip.c | 4 +-
drivers/mmc/host/mmci.c | 2 +-
drivers/mmc/host/mtk-sd.c | 108 +-
drivers/mmc/host/mxcmmc.c | 4 +-
drivers/mmc/host/renesas_sdhi.h | 1 +
drivers/mmc/host/renesas_sdhi_core.c | 42 +-
drivers/mmc/host/renesas_sdhi_internal_dmac.c | 11 +-
drivers/mmc/host/sdhci-acpi.c | 7 +-
drivers/mmc/host/sdhci-bcm-kona.c | 14 +-
drivers/mmc/host/sdhci-brcmstb.c | 76 +-
drivers/mmc/host/sdhci-iproc.c | 14 +-
drivers/mmc/host/sdhci-msm.c | 29 +-
drivers/mmc/host/sdhci-of-arasan.c | 5 +-
drivers/mmc/host/sdhci-of-aspeed-test.c | 8 +-
drivers/mmc/host/sdhci-of-aspeed.c | 34 +-
drivers/mmc/host/sdhci-of-at91.c | 9 +-
drivers/mmc/host/sdhci-of-dwcmshc.c | 193 +-
drivers/mmc/host/sdhci-of-esdhc.c | 7 +-
drivers/mmc/host/sdhci-omap.c | 14 +-
drivers/mmc/host/sdhci-pci-core.c | 11 +-
drivers/mmc/host/sdhci-pci-gli.c | 37 +
drivers/mmc/host/sdhci-pci-o2micro.c | 2 +
drivers/mmc/host/sdhci-st.c | 5 +-
drivers/mmc/host/sdhci.c | 59 +-
drivers/mmc/host/sdhci.h | 3 +
drivers/mmc/host/tmio_mmc.c | 2 +-
drivers/mmc/host/tmio_mmc.h | 6 +-
drivers/mmc/host/tmio_mmc_core.c | 28 +-
drivers/mtd/devices/mtd_dataflash.c | 8 +
drivers/mtd/devices/powernv_flash.c | 4 +-
drivers/mtd/devices/spear_smi.c | 10 +-
drivers/mtd/devices/st_spi_fsm.c | 23 +-
drivers/mtd/hyperbus/hbmc-am654.c | 6 +-
drivers/mtd/hyperbus/hyperbus-core.c | 8 +-
drivers/mtd/hyperbus/rpc-if.c | 13 +-
drivers/mtd/lpddr/lpddr2_nvm.c | 4 +-
drivers/mtd/maps/physmap-core.c | 13 +-
drivers/mtd/maps/physmap-versatile.c | 2 +
drivers/mtd/mtd_blkdevs.c | 4 +-
drivers/mtd/mtdchar.c | 13 +-
drivers/mtd/mtdcore.c | 63 +
drivers/mtd/nand/raw/arasan-nand-controller.c | 16 +-
drivers/mtd/nand/raw/atmel/nand-controller.c | 4 +-
drivers/mtd/nand/raw/cafe_nand.c | 9 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 8 +-
drivers/mtd/nand/raw/meson_nand.c | 17 +-
drivers/mtd/nand/raw/nand_ids.c | 3 -
drivers/mtd/nand/raw/omap2.c | 6 +-
drivers/mtd/nand/raw/qcom_nandc.c | 306 +-
drivers/mtd/nand/raw/sm_common.c | 2 +-
drivers/mtd/nand/raw/tegra_nand.c | 5 +-
drivers/mtd/nand/spi/Makefile | 2 +-
drivers/mtd/nand/spi/ato.c | 86 +
drivers/mtd/nand/spi/core.c | 1 +
drivers/mtd/parsers/Kconfig | 9 +
drivers/mtd/parsers/Makefile | 1 +
drivers/mtd/parsers/ofpart_bcm4908.c | 3 +
drivers/mtd/parsers/redboot.c | 1 +
drivers/mtd/parsers/scpart.c | 249 +
drivers/mtd/sm_ftl.c | 2 +-
drivers/mtd/spi-nor/controllers/hisi-sfc.c | 2 +-
drivers/mtd/spi-nor/controllers/nxp-spifi.c | 8 +-
drivers/mtd/spi-nor/core.c | 70 +-
drivers/mtd/spi-nor/core.h | 21 +-
drivers/mtd/spi-nor/debugfs.c | 2 +-
drivers/mtd/spi-nor/esmt.c | 2 +-
drivers/mtd/spi-nor/issi.c | 31 +-
drivers/mtd/spi-nor/micron-st.c | 12 +-
drivers/mtd/spi-nor/otp.c | 12 +-
drivers/mtd/spi-nor/sfdp.c | 34 +-
drivers/mtd/spi-nor/spansion.c | 185 +-
drivers/mtd/spi-nor/xilinx.c | 2 +-
drivers/mtd/ubi/block.c | 4 +-
drivers/net/Kconfig | 3 +
drivers/net/amt.c | 308 +-
drivers/net/bonding/bond_3ad.c | 3 +-
drivers/net/bonding/bond_alb.c | 12 +-
drivers/net/bonding/bond_main.c | 100 +-
drivers/net/bonding/bond_netlink.c | 116 +-
drivers/net/bonding/bond_options.c | 65 +-
drivers/net/caif/caif_virtio.c | 10 +-
drivers/net/can/Kconfig | 111 +-
drivers/net/can/Makefile | 3 +-
drivers/net/can/at91_can.c | 6 +
drivers/net/can/c_can/c_can.h | 2 +-
drivers/net/can/c_can/c_can_ethtool.c | 8 +-
drivers/net/can/c_can/c_can_main.c | 9 +-
drivers/net/can/can327.c | 1144 +
drivers/net/can/cc770/cc770.c | 7 +
drivers/net/can/ctucanfd/ctucanfd_base.c | 13 +-
drivers/net/can/ctucanfd/ctucanfd_kregs.h | 32 +-
drivers/net/can/dev/Makefile | 17 +-
drivers/net/can/dev/bittiming.c | 197 -
drivers/net/can/dev/calc_bittiming.c | 202 +
drivers/net/can/dev/dev.c | 59 +-
drivers/net/can/dev/netlink.c | 9 +-
drivers/net/can/dev/skb.c | 78 +
drivers/net/can/flexcan/flexcan-core.c | 2 +-
drivers/net/can/flexcan/flexcan-ethtool.c | 8 +-
drivers/net/can/flexcan/flexcan.h | 2 +-
drivers/net/can/grcan.c | 8 +-
drivers/net/can/ifi_canfd/ifi_canfd.c | 10 +-
drivers/net/can/janz-ican3.c | 12 +-
drivers/net/can/kvaser_pciefd.c | 9 +-
drivers/net/can/m_can/Kconfig | 1 +
drivers/net/can/m_can/m_can.c | 22 +-
drivers/net/can/mscan/mpc5xxx_can.c | 2 +-
drivers/net/can/mscan/mscan.c | 5 +
drivers/net/can/pch_can.c | 15 +-
drivers/net/can/peak_canfd/peak_canfd.c | 54 +-
drivers/net/can/rcar/rcar_can.c | 15 +-
drivers/net/can/rcar/rcar_canfd.c | 16 +-
drivers/net/can/sja1000/sja1000.c | 22 +-
drivers/net/can/sja1000/sja1000.h | 3 +-
drivers/net/can/sja1000/sja1000_platform.c | 20 +-
drivers/net/can/slcan.c | 793 -
drivers/net/can/slcan/Makefile | 7 +
drivers/net/can/slcan/slcan-core.c | 939 +
drivers/net/can/slcan/slcan-ethtool.c | 61 +
drivers/net/can/slcan/slcan.h | 19 +
drivers/net/can/softing/softing_main.c | 10 +-
drivers/net/can/spi/hi311x.c | 12 +-
drivers/net/can/spi/mcp251x.c | 24 +-
drivers/net/can/spi/mcp251xfd/Kconfig | 1 +
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 26 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-dump.c | 2 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-ethtool.c | 1 +
drivers/net/can/spi/mcp251xfd/mcp251xfd-regmap.c | 22 +-
drivers/net/can/sun4i_can.c | 16 +-
drivers/net/can/ti_hecc.c | 18 +-
drivers/net/can/usb/Kconfig | 15 +-
drivers/net/can/usb/Makefile | 2 +-
drivers/net/can/usb/ems_usb.c | 12 +-
drivers/net/can/usb/{esd_usb2.c => esd_usb.c} | 259 +-
drivers/net/can/usb/etas_es58x/es58x_core.c | 39 +-
drivers/net/can/usb/etas_es58x/es58x_core.h | 6 +-
drivers/net/can/usb/gs_usb.c | 31 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb.h | 26 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c | 312 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 18 +-
drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c | 126 +-
drivers/net/can/usb/mcba_usb.c | 6 +
drivers/net/can/usb/peak_usb/pcan_usb.c | 2 +
drivers/net/can/usb/peak_usb/pcan_usb_core.c | 43 +-
drivers/net/can/usb/peak_usb/pcan_usb_core.h | 3 +-
drivers/net/can/usb/peak_usb/pcan_usb_fd.c | 69 +-
drivers/net/can/usb/peak_usb/pcan_usb_pro.c | 3 +-
drivers/net/can/usb/peak_usb/pcan_usb_pro.h | 2 +-
drivers/net/can/usb/ucan.c | 6 +
drivers/net/can/usb/usb_8dev.c | 18 +-
drivers/net/can/vcan.c | 8 +
drivers/net/can/vxcan.c | 8 +
drivers/net/can/xilinx_can.c | 83 +-
drivers/net/dsa/Kconfig | 17 +-
drivers/net/dsa/Makefile | 2 +-
drivers/net/dsa/b53/b53_spi.c | 2 -
drivers/net/dsa/bcm_sf2.c | 5 +
drivers/net/dsa/hirschmann/hellcreek.c | 7 +-
drivers/net/dsa/hirschmann/hellcreek_ptp.c | 1 +
drivers/net/dsa/lantiq_gswip.c | 4 +-
drivers/net/dsa/microchip/Kconfig | 42 +-
drivers/net/dsa/microchip/Makefile | 11 +-
drivers/net/dsa/microchip/ksz8.h | 105 +-
drivers/net/dsa/microchip/ksz8795.c | 623 +-
drivers/net/dsa/microchip/ksz8795_reg.h | 37 -
drivers/net/dsa/microchip/ksz8863_smi.c | 19 +-
drivers/net/dsa/microchip/ksz9477.c | 518 +-
drivers/net/dsa/microchip/ksz9477.h | 60 +
drivers/net/dsa/microchip/ksz9477_i2c.c | 6 +-
drivers/net/dsa/microchip/ksz9477_reg.h | 46 -
drivers/net/dsa/microchip/ksz9477_spi.c | 150 -
drivers/net/dsa/microchip/ksz_common.c | 1132 +-
drivers/net/dsa/microchip/ksz_common.h | 251 +-
.../net/dsa/microchip/{ksz8795_spi.c => ksz_spi.c} | 125 +-
drivers/net/dsa/microchip/lan937x.h | 21 +
drivers/net/dsa/microchip/lan937x_main.c | 443 +
drivers/net/dsa/microchip/lan937x_reg.h | 184 +
drivers/net/dsa/mt7530.c | 82 +-
drivers/net/dsa/mt7530.h | 1 -
drivers/net/dsa/mv88e6xxx/chip.c | 44 +-
drivers/net/dsa/mv88e6xxx/chip.h | 3 +-
drivers/net/dsa/mv88e6xxx/port.c | 36 -
drivers/net/dsa/mv88e6xxx/port.h | 2 -
drivers/net/dsa/mv88e6xxx/serdes.c | 35 +-
drivers/net/dsa/ocelot/Kconfig | 1 +
drivers/net/dsa/ocelot/felix.c | 12 +
drivers/net/dsa/ocelot/felix.h | 1 +
drivers/net/dsa/ocelot/felix_vsc9959.c | 306 +-
drivers/net/dsa/qca/Kconfig | 8 +
drivers/net/dsa/qca/Makefile | 2 +
drivers/net/dsa/qca/ar9331.c | 34 +-
drivers/net/dsa/{qca8k.c => qca/qca8k-8xxx.c} | 1691 +-
drivers/net/dsa/qca/qca8k-common.c | 1210 +
drivers/net/dsa/{ => qca}/qca8k.h | 102 +-
drivers/net/dsa/realtek/rtl8365mb.c | 333 +-
drivers/net/dsa/rzn1_a5psw.c | 1064 +
drivers/net/dsa/rzn1_a5psw.h | 259 +
drivers/net/dsa/sja1105/sja1105_main.c | 18 +-
drivers/net/dsa/vitesse-vsc73xx-spi.c | 10 +
drivers/net/eql.c | 4 +-
drivers/net/ethernet/Kconfig | 1 +
drivers/net/ethernet/Makefile | 1 +
drivers/net/ethernet/agere/et131x.c | 2 +-
drivers/net/ethernet/altera/altera_tse_main.c | 6 +-
drivers/net/ethernet/altera/altera_utils.h | 5 +-
drivers/net/ethernet/amd/amd8111e.c | 3 -
drivers/net/ethernet/amd/au1000_eth.c | 22 +-
drivers/net/ethernet/amd/au1000_eth.h | 4 +-
drivers/net/ethernet/amd/xgbe/xgbe-dcb.c | 2 +-
drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 8 +-
drivers/net/ethernet/amd/xgbe/xgbe-platform.c | 4 +-
drivers/net/ethernet/amd/xgbe/xgbe.h | 2 +-
drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 21 +-
.../net/ethernet/aquantia/atlantic/aq_pci_func.c | 23 +-
.../aquantia/atlantic/macsec/macsec_struct.h | 4 +-
drivers/net/ethernet/atheros/ag71xx.c | 12 +-
drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 15 +-
drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 10 +-
drivers/net/ethernet/atheros/atlx/atl1.c | 7 +-
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 16 +-
drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c | 1 +
drivers/net/ethernet/broadcom/bgmac-bcma.c | 1 -
drivers/net/ethernet/broadcom/bgmac.c | 2 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 17 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 20 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 +
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 68 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 24 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h | 12 +
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 13 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 9 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 10 +-
drivers/net/ethernet/broadcom/cnic.c | 4 +-
drivers/net/ethernet/broadcom/genet/bcmmii.c | 3 +
drivers/net/ethernet/broadcom/tg3.c | 2 +-
drivers/net/ethernet/brocade/bna/bnad.c | 6 +-
drivers/net/ethernet/cadence/macb.h | 5 +-
drivers/net/ethernet/cadence/macb_main.c | 143 +-
drivers/net/ethernet/cadence/macb_ptp.c | 7 +-
drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 4 +-
drivers/net/ethernet/chelsio/cxgb/common.h | 11 +-
drivers/net/ethernet/chelsio/cxgb/cphy.h | 11 +-
drivers/net/ethernet/chelsio/cxgb/cpl5_cmd.h | 12 +-
drivers/net/ethernet/chelsio/cxgb/elmer0.h | 12 +-
drivers/net/ethernet/chelsio/cxgb/espi.c | 11 +-
drivers/net/ethernet/chelsio/cxgb/espi.h | 11 +-
drivers/net/ethernet/chelsio/cxgb/gmac.h | 11 +-
drivers/net/ethernet/chelsio/cxgb/mv88x201x.c | 11 +-
drivers/net/ethernet/chelsio/cxgb/pm3393.c | 11 +-
drivers/net/ethernet/chelsio/cxgb/regs.h | 11 +-
drivers/net/ethernet/chelsio/cxgb/sge.c | 11 +-
drivers/net/ethernet/chelsio/cxgb/sge.h | 11 +-
drivers/net/ethernet/chelsio/cxgb/subr.c | 11 +-
.../net/ethernet/chelsio/cxgb/suni1x10gexp_regs.h | 12 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 6 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 8 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 27 +-
drivers/net/ethernet/chelsio/cxgb4/sge.c | 2 +-
.../net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4vf/t4vf_hw.c | 2 +-
.../chelsio/inline_crypto/ch_ktls/chcr_ktls.c | 14 +-
.../chelsio/inline_crypto/chtls/chtls_cm.c | 8 +-
drivers/net/ethernet/cisco/enic/cq_desc.h | 15 +-
drivers/net/ethernet/cisco/enic/cq_enet_desc.h | 15 +-
drivers/net/ethernet/cisco/enic/enic.h | 15 +-
drivers/net/ethernet/cisco/enic/enic_api.c | 19 +-
drivers/net/ethernet/cisco/enic/enic_api.h | 19 +-
drivers/net/ethernet/cisco/enic/enic_dev.c | 19 +-
drivers/net/ethernet/cisco/enic/enic_dev.h | 19 +-
drivers/net/ethernet/cisco/enic/enic_ethtool.c | 19 +-
drivers/net/ethernet/cisco/enic/enic_main.c | 5 +-
drivers/net/ethernet/cisco/enic/enic_pp.c | 19 +-
drivers/net/ethernet/cisco/enic/enic_pp.h | 19 +-
drivers/net/ethernet/cisco/enic/enic_res.c | 15 +-
drivers/net/ethernet/cisco/enic/enic_res.h | 15 +-
drivers/net/ethernet/cisco/enic/rq_enet_desc.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_cq.c | 15 +-
drivers/net/ethernet/cisco/enic/vnic_cq.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_dev.c | 15 +-
drivers/net/ethernet/cisco/enic/vnic_dev.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_devcmd.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_enet.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_intr.c | 15 +-
drivers/net/ethernet/cisco/enic/vnic_intr.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_nic.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_resource.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_rq.c | 16 +-
drivers/net/ethernet/cisco/enic/vnic_rq.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_rss.h | 14 +-
drivers/net/ethernet/cisco/enic/vnic_stats.h | 15 +-
drivers/net/ethernet/cisco/enic/vnic_vic.c | 19 +-
drivers/net/ethernet/cisco/enic/vnic_vic.h | 19 +-
drivers/net/ethernet/cisco/enic/vnic_wq.c | 15 +-
drivers/net/ethernet/cisco/enic/vnic_wq.h | 15 +-
drivers/net/ethernet/cisco/enic/wq_enet_desc.h | 15 +-
drivers/net/ethernet/emulex/benet/be_cmds.c | 10 +-
drivers/net/ethernet/emulex/benet/be_cmds.h | 2 +-
drivers/net/ethernet/emulex/benet/be_ethtool.c | 31 +-
drivers/net/ethernet/emulex/benet/be_main.c | 8 +-
drivers/net/ethernet/engleder/tsnep_main.c | 10 +-
drivers/net/ethernet/faraday/ftgmac100.c | 15 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 4 +-
drivers/net/ethernet/freescale/fec_main.c | 2 +-
drivers/net/ethernet/freescale/fec_mpc52xx.c | 2 +-
drivers/net/ethernet/freescale/fec_mpc52xx_phy.c | 3 +-
drivers/net/ethernet/freescale/fs_enet/fs_enet.h | 2 +-
drivers/net/ethernet/freescale/fs_enet/mii-fec.c | 4 +-
drivers/net/ethernet/freescale/gianfar.c | 1 +
drivers/net/ethernet/freescale/gianfar_ethtool.c | 6 +-
drivers/net/ethernet/fungible/funcore/fun_hci.h | 40 +
.../net/ethernet/fungible/funeth/funeth_ethtool.c | 36 +
drivers/net/ethernet/fungible/funeth/funeth_main.c | 3 +-
drivers/net/ethernet/fungible/funeth/funeth_rx.c | 5 +-
drivers/net/ethernet/fungible/funeth/funeth_tx.c | 174 +-
drivers/net/ethernet/fungible/funeth/funeth_txrx.h | 7 +-
drivers/net/ethernet/google/gve/gve_tx_dqo.c | 6 +-
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 6 +-
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 1 +
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 4 +-
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 2 +-
drivers/net/ethernet/hisilicon/hns3/hns3_trace.h | 3 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 18 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 101 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h | 1 +
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 2 +-
drivers/net/ethernet/hisilicon/hns_mdio.c | 4 +-
drivers/net/ethernet/huawei/hinic/hinic_dev.h | 3 -
drivers/net/ethernet/huawei/hinic/hinic_devlink.c | 4 +-
drivers/net/ethernet/huawei/hinic/hinic_main.c | 68 +-
drivers/net/ethernet/huawei/hinic/hinic_rx.c | 2 -
drivers/net/ethernet/huawei/hinic/hinic_sriov.c | 6 -
drivers/net/ethernet/huawei/hinic/hinic_tx.c | 2 -
drivers/net/ethernet/ibm/ehea/ehea_main.c | 2 +-
drivers/net/ethernet/ibm/ibmvnic.c | 9 +
drivers/net/ethernet/intel/e100.c | 1 -
drivers/net/ethernet/intel/e1000/e1000_hw.c | 6 +-
drivers/net/ethernet/intel/e1000/e1000_main.c | 4 +-
drivers/net/ethernet/intel/e1000/e1000_param.c | 2 -
drivers/net/ethernet/intel/e1000e/e1000.h | 2 +-
drivers/net/ethernet/intel/e1000e/hw.h | 1 -
drivers/net/ethernet/intel/e1000e/ich8lan.c | 4 -
drivers/net/ethernet/intel/e1000e/ich8lan.h | 1 -
drivers/net/ethernet/intel/e1000e/mac.c | 2 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 38 +-
drivers/net/ethernet/intel/e1000e/param.c | 2 -
drivers/net/ethernet/intel/e1000e/ptp.c | 18 +-
drivers/net/ethernet/intel/fm10k/fm10k_mbx.c | 4 +-
drivers/net/ethernet/intel/fm10k/fm10k_tlv.c | 4 +-
drivers/net/ethernet/intel/i40e/i40e.h | 31 +
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 128 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 254 +-
drivers/net/ethernet/intel/i40e/i40e_ptp.c | 36 +-
drivers/net/ethernet/intel/i40e/i40e_register.h | 13 +
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 105 +-
drivers/net/ethernet/intel/i40e/i40e_type.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 14 +-
drivers/net/ethernet/intel/i40e/i40e_xsk.c | 17 +-
drivers/net/ethernet/intel/iavf/iavf.h | 27 +-
drivers/net/ethernet/intel/iavf/iavf_ethtool.c | 10 -
drivers/net/ethernet/intel/iavf/iavf_main.c | 243 +-
drivers/net/ethernet/intel/iavf/iavf_txrx.c | 7 +-
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 130 +-
drivers/net/ethernet/intel/ice/ice.h | 8 +-
drivers/net/ethernet/intel/ice/ice_adminq_cmd.h | 7 +-
drivers/net/ethernet/intel/ice/ice_common.c | 47 +-
drivers/net/ethernet/intel/ice/ice_common.h | 4 +
drivers/net/ethernet/intel/ice/ice_devids.h | 1 +
drivers/net/ethernet/intel/ice/ice_devlink.c | 59 +-
drivers/net/ethernet/intel/ice/ice_eswitch.c | 8 +-
drivers/net/ethernet/intel/ice/ice_ethtool.c | 54 +-
drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c | 4 +-
drivers/net/ethernet/intel/ice/ice_flex_pipe.c | 7 +-
drivers/net/ethernet/intel/ice/ice_fw_update.c | 96 +-
drivers/net/ethernet/intel/ice/ice_gnss.c | 253 +-
drivers/net/ethernet/intel/ice/ice_gnss.h | 30 +-
drivers/net/ethernet/intel/ice/ice_lag.c | 6 +-
drivers/net/ethernet/intel/ice/ice_lib.c | 115 +-
drivers/net/ethernet/intel/ice/ice_lib.h | 11 +-
drivers/net/ethernet/intel/ice/ice_main.c | 154 +-
drivers/net/ethernet/intel/ice/ice_protocol_type.h | 20 +-
drivers/net/ethernet/intel/ice/ice_ptp.c | 36 +-
drivers/net/ethernet/intel/ice/ice_ptp.h | 31 +
drivers/net/ethernet/intel/ice/ice_sriov.c | 50 -
drivers/net/ethernet/intel/ice/ice_switch.c | 689 +-
drivers/net/ethernet/intel/ice/ice_switch.h | 9 +-
drivers/net/ethernet/intel/ice/ice_tc_lib.c | 142 +-
drivers/net/ethernet/intel/ice/ice_tc_lib.h | 11 +
drivers/net/ethernet/intel/ice/ice_txrx.c | 8 +-
drivers/net/ethernet/intel/ice/ice_type.h | 4 -
drivers/net/ethernet/intel/ice/ice_vf_lib.c | 94 +-
drivers/net/ethernet/intel/ice/ice_vf_lib.h | 7 +-
drivers/net/ethernet/intel/ice/ice_virtchnl.c | 228 +-
drivers/net/ethernet/intel/ice/ice_vlan_mode.c | 1 -
drivers/net/ethernet/intel/igb/e1000_82575.c | 2 +-
drivers/net/ethernet/intel/igb/e1000_defines.h | 3 -
drivers/net/ethernet/intel/igb/e1000_mac.c | 2 +-
drivers/net/ethernet/intel/igb/e1000_regs.h | 1 -
drivers/net/ethernet/intel/igb/igb_main.c | 142 +-
drivers/net/ethernet/intel/igb/igb_ptp.c | 15 +-
drivers/net/ethernet/intel/igbvf/igbvf.h | 2 +-
drivers/net/ethernet/intel/igbvf/netdev.c | 2 +-
drivers/net/ethernet/intel/igc/igc_hw.h | 2 -
drivers/net/ethernet/intel/igc/igc_mac.c | 2 +-
drivers/net/ethernet/intel/igc/igc_main.c | 26 +-
drivers/net/ethernet/intel/igc/igc_ptp.c | 1 -
drivers/net/ethernet/intel/igc/igc_regs.h | 8 +-
drivers/net/ethernet/intel/ixgb/ixgb_hw.c | 4 +-
drivers/net/ethernet/intel/ixgb/ixgb_main.c | 3 +-
drivers/net/ethernet/intel/ixgb/ixgb_param.c | 2 -
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 35 +
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 2 -
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 2 -
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 91 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 74 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 16 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 7 +
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 4 +-
drivers/net/ethernet/intel/ixgbevf/ethtool.c | 4 -
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 2 +-
drivers/net/ethernet/intel/ixgbevf/vf.c | 2 +-
drivers/net/ethernet/marvell/mv643xx_eth.c | 2 +-
drivers/net/ethernet/marvell/mvneta.c | 4 +-
.../marvell/octeon_ep/octep_regs_cn9k_pf.h | 2 +-
drivers/net/ethernet/marvell/octeontx2/af/Makefile | 2 +-
drivers/net/ethernet/marvell/octeontx2/af/cgx.c | 69 +-
drivers/net/ethernet/marvell/octeontx2/af/cgx.h | 2 +-
.../net/ethernet/marvell/octeontx2/af/cgx_fw_if.h | 2 +
.../ethernet/marvell/octeontx2/af/lmac_common.h | 1 +
drivers/net/ethernet/marvell/octeontx2/af/mbox.h | 45 +-
drivers/net/ethernet/marvell/octeontx2/af/npc.h | 25 +
.../ethernet/marvell/octeontx2/af/npc_profile.h | 5 +-
drivers/net/ethernet/marvell/octeontx2/af/rpm.c | 51 +-
drivers/net/ethernet/marvell/octeontx2/af/rpm.h | 5 +-
drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 22 +
drivers/net/ethernet/marvell/octeontx2/af/rvu.h | 26 +-
.../net/ethernet/marvell/octeontx2/af/rvu_cgx.c | 57 +-
.../net/ethernet/marvell/octeontx2/af/rvu_cpt.c | 4 +-
.../ethernet/marvell/octeontx2/af/rvu_debugfs.c | 179 +
.../ethernet/marvell/octeontx2/af/rvu_devlink.c | 71 +-
.../net/ethernet/marvell/octeontx2/af/rvu_nix.c | 41 +-
.../net/ethernet/marvell/octeontx2/af/rvu_npc.c | 68 +-
.../net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c | 164 +-
.../net/ethernet/marvell/octeontx2/af/rvu_npc_fs.h | 17 +
.../ethernet/marvell/octeontx2/af/rvu_npc_hash.c | 2009 +
.../ethernet/marvell/octeontx2/af/rvu_npc_hash.h | 233 +
.../net/ethernet/marvell/octeontx2/af/rvu_reg.h | 15 +
.../ethernet/marvell/octeontx2/nic/otx2_common.c | 19 +-
.../ethernet/marvell/octeontx2/nic/otx2_common.h | 11 +-
.../ethernet/marvell/octeontx2/nic/otx2_dmac_flt.c | 59 +-
.../ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 3 +-
.../ethernet/marvell/octeontx2/nic/otx2_flows.c | 40 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 2 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_tc.c | 106 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_txrx.c | 4 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_txrx.h | 2 +-
drivers/net/ethernet/marvell/prestera/Kconfig | 1 +
drivers/net/ethernet/marvell/prestera/prestera.h | 60 +-
.../net/ethernet/marvell/prestera/prestera_acl.c | 47 +-
.../net/ethernet/marvell/prestera/prestera_acl.h | 4 +-
.../ethernet/marvell/prestera/prestera_ethtool.c | 28 +-
.../ethernet/marvell/prestera/prestera_ethtool.h | 3 -
.../net/ethernet/marvell/prestera/prestera_flow.c | 52 +-
.../net/ethernet/marvell/prestera/prestera_flow.h | 1 +
.../ethernet/marvell/prestera/prestera_flower.c | 42 +-
.../net/ethernet/marvell/prestera/prestera_hw.c | 256 +-
.../net/ethernet/marvell/prestera/prestera_hw.h | 22 +-
.../net/ethernet/marvell/prestera/prestera_main.c | 547 +-
.../ethernet/marvell/prestera/prestera_router.c | 5 +-
.../ethernet/marvell/prestera/prestera_switchdev.c | 706 +-
drivers/net/ethernet/marvell/sky2.c | 4 +-
drivers/net/ethernet/mediatek/Kconfig | 2 +
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 673 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 34 +-
drivers/net/ethernet/mediatek/mtk_ppe_offload.c | 29 +-
drivers/net/ethernet/mediatek/mtk_star_emac.c | 529 +-
drivers/net/ethernet/mediatek/mtk_wed.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/catas.c | 5 +
drivers/net/ethernet/mellanox/mlx4/crdump.c | 20 +-
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 4 +-
drivers/net/ethernet/mellanox/mlx4/fw.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/main.c | 40 +-
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 12 +-
drivers/net/ethernet/mellanox/mlx5/core/debugfs.c | 24 +
drivers/net/ethernet/mellanox/mlx5/core/dev.c | 36 +-
drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 55 +-
.../ethernet/mellanox/mlx5/core/diag/fw_tracer.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/en.h | 46 +-
.../net/ethernet/mellanox/mlx5/core/en/devlink.c | 16 +-
drivers/net/ethernet/mellanox/mlx5/core/en/fs.h | 44 +-
.../mellanox/mlx5/core/en/fs_tt_redirect.c | 72 +-
drivers/net/ethernet/mellanox/mlx5/core/en/htb.c | 722 +
drivers/net/ethernet/mellanox/mlx5/core/en/htb.h | 46 +
.../net/ethernet/mellanox/mlx5/core/en/params.c | 15 +-
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 45 +-
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.h | 1 +
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c | 813 +-
drivers/net/ethernet/mellanox/mlx5/core/en/qos.h | 37 +-
.../ethernet/mellanox/mlx5/core/en/rep/bridge.c | 6 +
.../net/ethernet/mellanox/mlx5/core/en/rep/tc.c | 117 +-
drivers/net/ethernet/mellanox/mlx5/core/en/selq.c | 51 +-
drivers/net/ethernet/mellanox/mlx5/core/en/selq.h | 4 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/act.c | 4 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/act.h | 13 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/goto.c | 2 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/police.c | 153 +
.../ethernet/mellanox/mlx5/core/en/tc/act/trap.c | 2 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/meter.c | 579 +
.../net/ethernet/mellanox/mlx5/core/en/tc/meter.h | 74 +
.../ethernet/mellanox/mlx5/core/en/tc/post_act.c | 9 +-
.../ethernet/mellanox/mlx5/core/en/tc/post_meter.c | 209 +
.../ethernet/mellanox/mlx5/core/en/tc/post_meter.h | 29 +
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c | 26 +-
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.h | 11 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_priv.h | 9 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 4 +-
.../net/ethernet/mellanox/mlx5/core/en/xsk/rx.h | 14 +
.../mellanox/mlx5/core/en_accel/en_accel.h | 10 +
.../ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c | 32 +-
.../mellanox/mlx5/core/en_accel/ipsec_fs.c | 10 +-
.../mellanox/mlx5/core/en_accel/ipsec_fs.h | 21 -
.../ethernet/mellanox/mlx5/core/en_accel/ktls.c | 2 +-
.../ethernet/mellanox/mlx5/core/en_accel/ktls.h | 14 +
.../ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c | 3 +-
.../mellanox/mlx5/core/en_accel/ktls_stats.c | 2 +
.../ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c | 526 +-
drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 58 +-
.../net/ethernet/mellanox/mlx5/core/en_common.c | 5 +-
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 16 +-
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c | 554 +-
.../ethernet/mellanox/mlx5/core/en_fs_ethtool.c | 29 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 318 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 67 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.h | 3 +
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 16 +-
drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 2 +
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 223 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h | 12 +
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 53 +-
.../net/ethernet/mellanox/mlx5/core/esw/bridge.c | 408 +-
.../net/ethernet/mellanox/mlx5/core/esw/bridge.h | 6 +-
.../net/ethernet/mellanox/mlx5/core/esw/debugfs.c | 182 +
.../ethernet/mellanox/mlx5/core/esw/devlink_port.c | 20 +-
.../net/ethernet/mellanox/mlx5/core/esw/legacy.c | 5 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 123 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 26 +-
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 179 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 49 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 61 +-
drivers/net/ethernet/mellanox/mlx5/core/fw.c | 4 +
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/health.c | 4 +
.../ethernet/mellanox/mlx5/core/ipoib/ethtool.c | 2 +-
.../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 20 +-
.../net/ethernet/mellanox/mlx5/core/lag/debugfs.c | 14 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 30 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 13 +-
.../net/ethernet/mellanox/mlx5/core/lag/mpesw.c | 5 +-
drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c | 433 +
drivers/net/ethernet/mellanox/mlx5/core/lib/aso.h | 87 +
drivers/net/ethernet/mellanox/mlx5/core/lib/dm.c | 53 +-
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c | 11 +-
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.h | 1 -
drivers/net/ethernet/mellanox/mlx5/core/main.c | 99 +-
.../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 3 +-
.../net/ethernet/mellanox/mlx5/core/sf/devlink.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/sriov.c | 9 +-
.../mellanox/mlx5/core/steering/dr_action.c | 99 +
.../ethernet/mellanox/mlx5/core/steering/dr_cmd.c | 1 +
.../ethernet/mellanox/mlx5/core/steering/dr_dbg.c | 13 +-
.../mellanox/mlx5/core/steering/dr_ste_v1.c | 56 +
.../mellanox/mlx5/core/steering/dr_table.c | 8 +-
.../mellanox/mlx5/core/steering/dr_types.h | 18 +
.../ethernet/mellanox/mlx5/core/steering/fs_dr.c | 28 +-
.../mellanox/mlx5/core/steering/mlx5_ifc_dr.h | 26 +
.../ethernet/mellanox/mlx5/core/steering/mlx5dr.h | 11 +-
drivers/net/ethernet/mellanox/mlx5/core/vport.c | 14 +-
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c | 4 +-
drivers/net/ethernet/mellanox/mlxsw/Kconfig | 1 +
drivers/net/ethernet/mellanox/mlxsw/Makefile | 6 +-
drivers/net/ethernet/mellanox/mlxsw/cmd.h | 106 +-
drivers/net/ethernet/mellanox/mlxsw/core.c | 123 +-
drivers/net/ethernet/mellanox/mlxsw/core.h | 63 +-
.../mellanox/mlxsw/core_acl_flex_actions.c | 2 +-
drivers/net/ethernet/mellanox/mlxsw/core_env.c | 2 +-
.../ethernet/mellanox/mlxsw/core_linecard_dev.c | 183 +
.../net/ethernet/mellanox/mlxsw/core_linecards.c | 405 +
drivers/net/ethernet/mellanox/mlxsw/minimal.c | 10 +-
drivers/net/ethernet/mellanox/mlxsw/pci.c | 138 +-
drivers/net/ethernet/mellanox/mlxsw/pci_hw.h | 81 +-
drivers/net/ethernet/mellanox/mlxsw/port.h | 2 -
drivers/net/ethernet/mellanox/mlxsw/reg.h | 1298 +-
drivers/net/ethernet/mellanox/mlxsw/resources.h | 4 +
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 298 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 69 +-
.../net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c | 82 +-
.../net/ethernet/mellanox/mlxsw/spectrum2_kvdl.c | 2 +-
.../net/ethernet/mellanox/mlxsw/spectrum_buffers.c | 14 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c | 62 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.h | 2 +-
.../net/ethernet/mellanox/mlxsw/spectrum_dpipe.c | 92 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c | 1072 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c | 346 +
.../net/ethernet/mellanox/mlxsw/spectrum_policer.c | 32 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c | 718 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.h | 60 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.c | 1075 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.h | 77 +-
.../ethernet/mellanox/mlxsw/spectrum_router_xm.c | 812 -
.../net/ethernet/mellanox/mlxsw/spectrum_span.c | 6 +-
.../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 842 +-
.../net/ethernet/mellanox/mlxsw/spectrum_trap.c | 35 +-
drivers/net/ethernet/mellanox/mlxsw/trap.h | 4 +-
drivers/net/ethernet/microchip/lan743x_ethtool.c | 63 +-
drivers/net/ethernet/microchip/lan743x_ethtool.h | 26 +
drivers/net/ethernet/microchip/lan743x_main.c | 378 +-
drivers/net/ethernet/microchip/lan743x_main.h | 106 +
.../net/ethernet/microchip/lan966x/lan966x_mac.c | 112 +-
.../net/ethernet/microchip/lan966x/lan966x_main.c | 8 +-
.../net/ethernet/microchip/lan966x/lan966x_main.h | 1 +
.../ethernet/microchip/sparx5/sparx5_switchdev.c | 59 +-
drivers/net/ethernet/microsoft/mana/gdma.h | 10 +
drivers/net/ethernet/microsoft/mana/gdma_main.c | 39 +-
drivers/net/ethernet/microsoft/mana/hw_channel.c | 18 +-
drivers/net/ethernet/microsoft/mana/hw_channel.h | 5 +
drivers/net/ethernet/microsoft/mana/mana.h | 70 +
drivers/net/ethernet/microsoft/mana/mana_bpf.c | 64 +
drivers/net/ethernet/microsoft/mana/mana_en.c | 148 +-
drivers/net/ethernet/microsoft/mana/mana_ethtool.c | 12 +-
drivers/net/ethernet/mscc/ocelot.c | 1 +
drivers/net/ethernet/mscc/ocelot_fdma.c | 17 +-
drivers/net/ethernet/mscc/ocelot_ptp.c | 8 +
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 2 +-
drivers/net/ethernet/natsemi/natsemi.c | 2 +-
drivers/net/ethernet/neterion/Kconfig | 24 -
drivers/net/ethernet/neterion/Makefile | 1 -
drivers/net/ethernet/neterion/s2io.c | 10 +-
drivers/net/ethernet/neterion/vxge/Makefile | 8 -
drivers/net/ethernet/neterion/vxge/vxge-config.c | 5099 -
drivers/net/ethernet/neterion/vxge/vxge-config.h | 2086 -
drivers/net/ethernet/neterion/vxge/vxge-ethtool.c | 1154 -
drivers/net/ethernet/neterion/vxge/vxge-ethtool.h | 48 -
drivers/net/ethernet/neterion/vxge/vxge-main.c | 4808 -
drivers/net/ethernet/neterion/vxge/vxge-main.h | 516 -
drivers/net/ethernet/neterion/vxge/vxge-reg.h | 4636 -
drivers/net/ethernet/neterion/vxge/vxge-traffic.c | 2428 -
drivers/net/ethernet/neterion/vxge/vxge-traffic.h | 2290 -
drivers/net/ethernet/neterion/vxge/vxge-version.h | 49 -
drivers/net/ethernet/netronome/nfp/bpf/jit.c | 2 +-
drivers/net/ethernet/netronome/nfp/flower/action.c | 25 +-
drivers/net/ethernet/netronome/nfp/flower/cmsg.h | 2 -
.../net/ethernet/netronome/nfp/flower/conntrack.c | 46 +-
.../net/ethernet/netronome/nfp/flower/lag_conf.c | 4 +-
drivers/net/ethernet/netronome/nfp/flower/match.c | 16 +-
.../net/ethernet/netronome/nfp/flower/metadata.c | 2 +-
.../net/ethernet/netronome/nfp/flower/offload.c | 4 +-
.../net/ethernet/netronome/nfp/flower/qos_conf.c | 6 +-
.../ethernet/netronome/nfp/flower/tunnel_conf.c | 20 +-
drivers/net/ethernet/netronome/nfp/nfd3/dp.c | 84 +-
drivers/net/ethernet/netronome/nfp/nfd3/rings.c | 4 +
drivers/net/ethernet/netronome/nfp/nfd3/xsk.c | 17 +-
drivers/net/ethernet/netronome/nfp/nfdk/dp.c | 155 +-
drivers/net/ethernet/netronome/nfp/nfdk/rings.c | 5 +-
drivers/net/ethernet/netronome/nfp/nfp_app.c | 2 +-
drivers/net/ethernet/netronome/nfp/nfp_main.c | 6 +-
drivers/net/ethernet/netronome/nfp/nfp_net.h | 27 +-
.../net/ethernet/netronome/nfp/nfp_net_common.c | 153 +-
drivers/net/ethernet/netronome/nfp/nfp_net_ctrl.h | 18 +
drivers/net/ethernet/netronome/nfp/nfp_net_dp.c | 24 +
drivers/net/ethernet/netronome/nfp/nfp_net_dp.h | 4 +
.../net/ethernet/netronome/nfp/nfp_net_ethtool.c | 222 +
drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 12 +-
drivers/net/ethernet/netronome/nfp/nfp_net_sriov.c | 28 +-
drivers/net/ethernet/netronome/nfp/nfp_net_xsk.c | 8 +-
drivers/net/ethernet/netronome/nfp/nfpcore/crc32.h | 1 -
.../net/ethernet/netronome/nfp/nfpcore/nfp_cpp.h | 26 +-
.../ethernet/netronome/nfp/nfpcore/nfp_cppcore.c | 3 +-
.../net/ethernet/netronome/nfp/nfpcore/nfp_dev.c | 4 +-
.../net/ethernet/netronome/nfp/nfpcore/nfp_nsp.h | 2 +
.../ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.c | 30 +
drivers/net/ethernet/pensando/ionic/ionic_lif.c | 2 +-
drivers/net/ethernet/pensando/ionic/ionic_txrx.c | 5 +-
.../net/ethernet/qlogic/netxen/netxen_nic_main.c | 2 +-
drivers/net/ethernet/qlogic/qed/qed_dev.c | 4 +-
drivers/net/ethernet/qlogic/qed/qed_int.c | 2 +-
drivers/net/ethernet/qlogic/qed/qed_rdma.c | 7 +-
drivers/net/ethernet/qlogic/qede/qede_fp.c | 8 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 2 +-
.../net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c | 6 +-
drivers/net/ethernet/qualcomm/emac/emac-mac.c | 6 +-
drivers/net/ethernet/realtek/r8169_main.c | 10 +-
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | 2 +-
drivers/net/ethernet/sfc/Makefile | 3 +-
drivers/net/ethernet/sfc/ef10.c | 33 +-
drivers/net/ethernet/sfc/ef100.c | 70 +-
drivers/net/ethernet/sfc/ef100_ethtool.c | 2 +-
drivers/net/ethernet/sfc/ef100_netdev.c | 148 +-
drivers/net/ethernet/sfc/ef100_netdev.h | 9 +-
drivers/net/ethernet/sfc/ef100_nic.c | 510 +-
drivers/net/ethernet/sfc/ef100_nic.h | 13 +-
drivers/net/ethernet/sfc/ef100_regs.h | 83 +-
drivers/net/ethernet/sfc/ef100_rep.c | 435 +
drivers/net/ethernet/sfc/ef100_rep.h | 69 +
drivers/net/ethernet/sfc/ef100_rx.c | 46 +-
drivers/net/ethernet/sfc/ef100_sriov.c | 32 +-
drivers/net/ethernet/sfc/ef100_sriov.h | 2 +-
drivers/net/ethernet/sfc/ef100_tx.c | 84 +-
drivers/net/ethernet/sfc/ef100_tx.h | 3 +
drivers/net/ethernet/sfc/ef10_sriov.c | 26 +-
drivers/net/ethernet/sfc/efx.c | 73 +-
drivers/net/ethernet/sfc/efx.h | 9 +-
drivers/net/ethernet/sfc/efx_common.c | 115 +-
drivers/net/ethernet/sfc/efx_common.h | 19 +-
drivers/net/ethernet/sfc/ethtool.c | 22 +-
drivers/net/ethernet/sfc/ethtool_common.c | 51 +-
drivers/net/ethernet/sfc/falcon/bitfield.h | 2 +-
drivers/net/ethernet/sfc/falcon/farch.c | 6 +-
drivers/net/ethernet/sfc/falcon/net_driver.h | 2 +-
drivers/net/ethernet/sfc/filter.h | 18 +
drivers/net/ethernet/sfc/mae.c | 346 +
drivers/net/ethernet/sfc/mae.h | 42 +
drivers/net/ethernet/sfc/mcdi.c | 63 +-
drivers/net/ethernet/sfc/mcdi.h | 5 +
drivers/net/ethernet/sfc/mcdi_filters.c | 6 +-
drivers/net/ethernet/sfc/mcdi_filters.h | 1 +
drivers/net/ethernet/sfc/mcdi_pcol.h | 8190 +-
drivers/net/ethernet/sfc/mcdi_pcol_mae.h | 24 +
drivers/net/ethernet/sfc/mcdi_port.c | 4 +-
drivers/net/ethernet/sfc/net_driver.h | 79 +-
drivers/net/ethernet/sfc/ptp.c | 22 +
drivers/net/ethernet/sfc/rx_common.c | 8 +-
drivers/net/ethernet/sfc/siena/farch.c | 6 +-
drivers/net/ethernet/sfc/siena/mcdi.c | 2 +-
drivers/net/ethernet/sfc/siena/mcdi_pcol.h | 10 +-
drivers/net/ethernet/sfc/siena/net_driver.h | 2 +-
drivers/net/ethernet/sfc/sriov.c | 10 +-
drivers/net/ethernet/sfc/tc.c | 252 +
drivers/net/ethernet/sfc/tc.h | 85 +
drivers/net/ethernet/sfc/tx.c | 10 +-
drivers/net/ethernet/sfc/tx_common.c | 35 +-
drivers/net/ethernet/sfc/tx_common.h | 3 +-
drivers/net/ethernet/smsc/epic100.c | 4 +-
drivers/net/ethernet/stmicro/stmmac/Kconfig | 3 +
drivers/net/ethernet/stmicro/stmmac/chain_mode.c | 6 +-
.../ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c | 1 +
.../net/ethernet/stmicro/stmmac/dwmac-ingenic.c | 6 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 63 +-
.../net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 157 +-
.../net/ethernet/stmicro/stmmac/dwmac-mediatek.c | 56 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4.h | 3 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 7 +
drivers/net/ethernet/stmicro/stmmac/mmc_core.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/ring_mode.c | 4 +-
drivers/net/ethernet/stmicro/stmmac/stmmac.h | 22 +-
.../net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 12 +-
.../net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c | 5 +
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 759 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 14 +
.../net/ethernet/stmicro/stmmac/stmmac_platform.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 12 +-
.../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 6 +-
drivers/net/ethernet/sun/cassini.c | 2 +-
drivers/net/ethernet/sun/cassini.h | 2 +-
drivers/net/ethernet/sun/ldmvsw.c | 2 +-
drivers/net/ethernet/sun/sungem.c | 2 +-
drivers/net/ethernet/sun/sunhme.c | 43 +-
drivers/net/ethernet/sunplus/spl2sw_driver.c | 2 +-
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c | 2 +-
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 17 +-
drivers/net/ethernet/via/via-velocity.h | 2 +-
drivers/net/ethernet/wangxun/Kconfig | 32 +
drivers/net/ethernet/wangxun/Makefile | 6 +
drivers/net/ethernet/wangxun/txgbe/Makefile | 9 +
drivers/net/ethernet/wangxun/txgbe/txgbe.h | 24 +
drivers/net/ethernet/wangxun/txgbe/txgbe_main.c | 166 +
drivers/net/ethernet/wangxun/txgbe/txgbe_type.h | 57 +
drivers/net/ethernet/xilinx/xilinx_axienet.h | 51 +
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 29 +-
drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c | 2 +-
drivers/net/ethernet/xscale/ixp4xx_eth.c | 15 +-
drivers/net/fddi/skfp/fplustm.c | 2 +-
drivers/net/geneve.c | 16 +-
drivers/net/hamradio/6pack.c | 9 +-
drivers/net/ipa/Makefile | 10 +-
drivers/net/ipa/{ => data}/ipa_data-v3.1.c | 8 +-
drivers/net/ipa/{ => data}/ipa_data-v3.5.1.c | 8 +-
drivers/net/ipa/{ => data}/ipa_data-v4.11.c | 8 +-
drivers/net/ipa/{ => data}/ipa_data-v4.2.c | 8 +-
drivers/net/ipa/{ => data}/ipa_data-v4.5.c | 8 +-
drivers/net/ipa/{ => data}/ipa_data-v4.9.c | 8 +-
drivers/net/ipa/gsi.c | 252 +-
drivers/net/ipa/gsi.h | 26 +-
drivers/net/ipa/gsi_private.h | 24 +-
drivers/net/ipa/gsi_trans.c | 197 +-
drivers/net/ipa/gsi_trans.h | 15 +-
drivers/net/ipa/ipa_cmd.c | 8 +-
drivers/net/ipa/ipa_endpoint.c | 27 +-
drivers/net/ipa/ipa_endpoint.h | 4 +-
drivers/net/ipa/ipa_main.c | 3 +
drivers/net/ipa/ipa_qmi_msg.h | 2 +-
drivers/net/ipa/ipa_sysfs.c | 69 +-
drivers/net/ipa/ipa_sysfs.h | 1 +
drivers/net/ipvlan/ipvlan.h | 10 +-
drivers/net/ipvlan/ipvlan_core.c | 6 +-
drivers/net/ipvlan/ipvlan_main.c | 18 +-
drivers/net/macsec.c | 103 +-
drivers/net/macvlan.c | 22 +-
drivers/net/mdio/fwnode_mdio.c | 4 +-
drivers/net/netconsole.c | 2 +-
drivers/net/netdevsim/bpf.c | 8 +-
drivers/net/netdevsim/bus.c | 19 -
drivers/net/netdevsim/dev.c | 128 +-
drivers/net/netdevsim/fib.c | 103 +-
drivers/net/netdevsim/netdevsim.h | 3 -
drivers/net/pcs/Kconfig | 12 +-
drivers/net/pcs/Makefile | 1 +
drivers/net/pcs/pcs-lynx.c | 80 +-
drivers/net/pcs/pcs-rzn1-miic.c | 531 +
drivers/net/pcs/pcs-xpcs.c | 170 +-
drivers/net/pcs/pcs-xpcs.h | 1 -
drivers/net/phy/Kconfig | 7 +
drivers/net/phy/Makefile | 1 +
drivers/net/phy/aquantia_main.c | 35 +-
drivers/net/phy/at803x.c | 6 +
drivers/net/phy/ax88796b.c | 6 +-
drivers/net/phy/bcm-phy-lib.h | 19 +
drivers/net/phy/bcm-phy-ptp.c | 944 +
drivers/net/phy/broadcom.c | 48 +-
drivers/net/phy/dp83822.c | 4 +-
drivers/net/phy/dp83867.c | 84 +-
drivers/net/phy/dp83td510.c | 49 +
drivers/net/phy/fixed_phy.c | 1 +
drivers/net/phy/marvell-88x2222.c | 2 +
drivers/net/phy/marvell.c | 10 +-
drivers/net/phy/mdio_bus.c | 1 -
drivers/net/phy/micrel.c | 73 +-
drivers/net/phy/mxl-gpy.c | 162 +-
drivers/net/phy/nxp-tja11xx.c | 11 +-
drivers/net/phy/phy-c45.c | 34 +-
drivers/net/phy/phy.c | 23 +
drivers/net/phy/phy_device.c | 47 +-
drivers/net/phy/phylink.c | 74 +-
drivers/net/phy/sfp.c | 12 +-
drivers/net/phy/smsc.c | 19 +-
drivers/net/plip/plip.c | 2 +-
drivers/net/ppp/ppp_generic.c | 2 +-
drivers/net/sungem_phy.c | 1 +
drivers/net/tap.c | 20 +-
drivers/net/team/team.c | 26 +-
drivers/net/tun.c | 15 +-
drivers/net/usb/Kconfig | 3 +-
drivers/net/usb/asix.h | 6 +-
drivers/net/usb/asix_common.c | 41 +-
drivers/net/usb/ax88179_178a.c | 446 +-
drivers/net/usb/catc.c | 48 +-
drivers/net/usb/cdc_eem.c | 2 +-
drivers/net/usb/cdc_ncm.c | 25 +-
drivers/net/usb/cdc_subset.c | 10 +-
drivers/net/usb/kaweth.c | 2 +-
drivers/net/usb/plusb.c | 2 +-
drivers/net/usb/qmi_wwan.c | 2 +
drivers/net/usb/r8152.c | 30 +-
drivers/net/usb/smsc95xx.c | 207 +-
drivers/net/usb/usbnet.c | 42 +-
drivers/net/virtio_net.c | 400 +-
drivers/net/vmxnet3/Makefile | 2 +-
drivers/net/vmxnet3/upt1_defs.h | 2 +-
drivers/net/vmxnet3/vmxnet3_defs.h | 80 +-
drivers/net/vmxnet3/vmxnet3_drv.c | 290 +-
drivers/net/vmxnet3/vmxnet3_ethtool.c | 151 +-
drivers/net/vmxnet3/vmxnet3_int.h | 24 +-
drivers/net/vrf.c | 10 +-
drivers/net/vxlan/vxlan_core.c | 21 +-
drivers/net/wan/farsync.h | 2 +-
drivers/net/wireguard/allowedips.c | 9 +-
drivers/net/wireguard/device.c | 3 +-
drivers/net/wireguard/receive.c | 9 +-
drivers/net/wireguard/selftest/allowedips.c | 6 +-
drivers/net/wireguard/selftest/ratelimiter.c | 25 +-
drivers/net/wireless/admtek/adm8211.c | 2 +-
drivers/net/wireless/ath/ar5523/ar5523.c | 12 +-
drivers/net/wireless/ath/ath10k/core.c | 11 +-
drivers/net/wireless/ath/ath10k/core.h | 1 +
drivers/net/wireless/ath/ath10k/htt_rx.c | 8 +-
drivers/net/wireless/ath/ath10k/htt_tx.c | 61 +-
drivers/net/wireless/ath/ath10k/mac.c | 118 +-
drivers/net/wireless/ath/ath10k/qmi.c | 4 +-
drivers/net/wireless/ath/ath10k/snoc.c | 5 +-
drivers/net/wireless/ath/ath10k/trace.h | 14 +-
drivers/net/wireless/ath/ath10k/txrx.c | 15 +-
drivers/net/wireless/ath/ath10k/wmi-tlv.c | 2 +-
drivers/net/wireless/ath/ath10k/wmi.c | 4 +-
drivers/net/wireless/ath/ath11k/ahb.c | 56 +-
drivers/net/wireless/ath/ath11k/core.c | 103 +-
drivers/net/wireless/ath/ath11k/core.h | 10 +-
drivers/net/wireless/ath/ath11k/debug.h | 4 +-
.../net/wireless/ath/ath11k/debugfs_htt_stats.c | 88 +-
.../net/wireless/ath/ath11k/debugfs_htt_stats.h | 39 +
drivers/net/wireless/ath/ath11k/dp_rx.c | 8 +-
drivers/net/wireless/ath/ath11k/hal.c | 2 +-
drivers/net/wireless/ath/ath11k/hal_rx.c | 2 +-
drivers/net/wireless/ath/ath11k/htc.c | 4 +-
drivers/net/wireless/ath/ath11k/hw.h | 5 -
drivers/net/wireless/ath/ath11k/mac.c | 128 +-
drivers/net/wireless/ath/ath11k/mac.h | 2 -
drivers/net/wireless/ath/ath11k/pci.c | 72 +-
drivers/net/wireless/ath/ath11k/pcic.c | 57 +-
drivers/net/wireless/ath/ath11k/pcic.h | 2 +
drivers/net/wireless/ath/ath11k/qmi.c | 6 +-
drivers/net/wireless/ath/ath11k/trace.h | 7 +-
drivers/net/wireless/ath/ath11k/wmi.c | 50 +-
drivers/net/wireless/ath/ath11k/wmi.h | 25 -
drivers/net/wireless/ath/ath5k/base.c | 4 +-
drivers/net/wireless/ath/ath5k/mac80211-ops.c | 19 +-
drivers/net/wireless/ath/ath5k/phy.c | 2 +-
drivers/net/wireless/ath/ath6kl/cfg80211.c | 8 +-
drivers/net/wireless/ath/ath6kl/hif.h | 2 +-
drivers/net/wireless/ath/ath6kl/sdio.c | 2 +-
drivers/net/wireless/ath/ath6kl/trace.h | 14 +-
drivers/net/wireless/ath/ath6kl/usb.c | 16 +-
drivers/net/wireless/ath/ath6kl/wmi.h | 4 +-
drivers/net/wireless/ath/ath9k/ar9002_phy.c | 2 +-
drivers/net/wireless/ath/ath9k/beacon.c | 15 +-
drivers/net/wireless/ath/ath9k/dfs.c | 2 +-
drivers/net/wireless/ath/ath9k/hif_usb.c | 26 +-
drivers/net/wireless/ath/ath9k/htc.h | 32 +-
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c | 4 +-
drivers/net/wireless/ath/ath9k/htc_drv_init.c | 3 +-
drivers/net/wireless/ath/ath9k/htc_drv_main.c | 21 +-
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 10 +-
drivers/net/wireless/ath/ath9k/main.c | 15 +-
drivers/net/wireless/ath/carl9170/main.c | 7 +-
drivers/net/wireless/ath/carl9170/tx.c | 2 +-
drivers/net/wireless/ath/hw.c | 2 +-
drivers/net/wireless/ath/trace.h | 7 +-
drivers/net/wireless/ath/wcn36xx/Makefile | 3 +-
drivers/net/wireless/ath/wcn36xx/debug.c | 39 +
drivers/net/wireless/ath/wcn36xx/debug.h | 1 +
drivers/net/wireless/ath/wcn36xx/firmware.c | 125 +
drivers/net/wireless/ath/wcn36xx/firmware.h | 84 +
drivers/net/wireless/ath/wcn36xx/hal.h | 74 +-
drivers/net/wireless/ath/wcn36xx/main.c | 110 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 59 +-
drivers/net/wireless/ath/wcn36xx/smd.h | 3 -
drivers/net/wireless/ath/wil6210/cfg80211.c | 9 +-
drivers/net/wireless/ath/wil6210/debugfs.c | 18 +-
drivers/net/wireless/ath/wil6210/trace.h | 7 +-
drivers/net/wireless/ath/wil6210/txrx.c | 4 +-
drivers/net/wireless/ath/wil6210/txrx.h | 2 +-
drivers/net/wireless/ath/wil6210/wmi.c | 4 +-
drivers/net/wireless/atmel/at76c50x-usb.c | 2 +-
drivers/net/wireless/atmel/atmel.c | 2 +-
drivers/net/wireless/broadcom/b43/main.c | 11 +-
drivers/net/wireless/broadcom/b43/phy_common.h | 2 +-
drivers/net/wireless/broadcom/b43legacy/main.c | 9 +-
.../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 49 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/bus.h | 2 +-
.../broadcom/brcm80211/brcmfmac/cfg80211.c | 13 +-
.../wireless/broadcom/brcm80211/brcmfmac/common.c | 41 +-
.../wireless/broadcom/brcm80211/brcmfmac/common.h | 3 +
.../wireless/broadcom/brcm80211/brcmfmac/core.c | 8 +-
.../broadcom/brcm80211/brcmfmac/firmware.c | 25 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/of.c | 12 +-
.../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 17 +-
.../wireless/broadcom/brcm80211/brcmfmac/sdio.h | 16 -
.../broadcom/brcm80211/brcmfmac/tracepoint.h | 12 +-
.../brcm80211/brcmsmac/brcms_trace_brcmsmac_msg.h | 12 +-
.../broadcom/brcm80211/brcmsmac/mac80211_if.c | 21 +-
.../wireless/broadcom/brcm80211/brcmsmac/main.c | 2 +-
drivers/net/wireless/intel/ipw2x00/ipw2200.c | 2 +-
drivers/net/wireless/intel/iwlegacy/3945-mac.c | 6 +-
drivers/net/wireless/intel/iwlegacy/4965-mac.c | 2 +-
drivers/net/wireless/intel/iwlegacy/4965-rs.c | 5 +-
drivers/net/wireless/intel/iwlegacy/4965.c | 6 +-
drivers/net/wireless/intel/iwlegacy/common.c | 23 +-
drivers/net/wireless/intel/iwlegacy/common.h | 5 +-
drivers/net/wireless/intel/iwlwifi/dvm/agn.h | 2 +-
drivers/net/wireless/intel/iwlwifi/dvm/lib.c | 4 +-
drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c | 5 +-
drivers/net/wireless/intel/iwlwifi/dvm/main.c | 4 +-
drivers/net/wireless/intel/iwlwifi/dvm/rxon.c | 26 +-
drivers/net/wireless/intel/iwlwifi/fw/uefi.c | 96 +-
.../net/wireless/intel/iwlwifi/iwl-devtrace-msg.h | 12 +-
drivers/net/wireless/intel/iwlwifi/mvm/coex.c | 10 +-
drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 4 +-
.../net/wireless/intel/iwlwifi/mvm/debugfs-vif.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 2 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 16 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-responder.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 24 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 91 +-
.../net/wireless/intel/iwlwifi/mvm/offloading.c | 6 +-
drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/power.c | 8 +-
drivers/net/wireless/intel/iwlwifi/mvm/quota.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/sf.c | 6 +-
drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 3 +-
drivers/net/wireless/intel/iwlwifi/mvm/tdls.c | 4 +-
.../net/wireless/intel/iwlwifi/mvm/time-event.c | 12 +-
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 6 +-
drivers/net/wireless/intersil/p54/fwio.c | 6 +-
drivers/net/wireless/intersil/p54/main.c | 15 +-
drivers/net/wireless/intersil/p54/p54spi.c | 3 +-
drivers/net/wireless/mac80211_hwsim.c | 525 +-
drivers/net/wireless/mac80211_hwsim.h | 5 +-
drivers/net/wireless/marvell/libertas/if_usb.c | 1 +
drivers/net/wireless/marvell/libertas/mesh.c | 10 +-
drivers/net/wireless/marvell/libertas_tf/main.c | 6 +-
drivers/net/wireless/marvell/mwifiex/11ac.c | 14 +-
drivers/net/wireless/marvell/mwifiex/11ac.h | 14 +-
drivers/net/wireless/marvell/mwifiex/11h.c | 16 +-
drivers/net/wireless/marvell/mwifiex/11n.c | 14 +-
drivers/net/wireless/marvell/mwifiex/11n.h | 14 +-
drivers/net/wireless/marvell/mwifiex/11n_aggr.c | 14 +-
drivers/net/wireless/marvell/mwifiex/11n_aggr.h | 14 +-
.../net/wireless/marvell/mwifiex/11n_rxreorder.c | 14 +-
.../net/wireless/marvell/mwifiex/11n_rxreorder.h | 14 +-
drivers/net/wireless/marvell/mwifiex/Makefile | 13 +-
drivers/net/wireless/marvell/mwifiex/cfg80211.c | 32 +-
drivers/net/wireless/marvell/mwifiex/cfg80211.h | 14 +-
drivers/net/wireless/marvell/mwifiex/cfp.c | 14 +-
drivers/net/wireless/marvell/mwifiex/cmdevt.c | 14 +-
drivers/net/wireless/marvell/mwifiex/debugfs.c | 14 +-
drivers/net/wireless/marvell/mwifiex/decl.h | 14 +-
drivers/net/wireless/marvell/mwifiex/ethtool.c | 14 +-
drivers/net/wireless/marvell/mwifiex/fw.h | 14 +-
drivers/net/wireless/marvell/mwifiex/ie.c | 14 +-
drivers/net/wireless/marvell/mwifiex/init.c | 14 +-
drivers/net/wireless/marvell/mwifiex/ioctl.h | 14 +-
drivers/net/wireless/marvell/mwifiex/join.c | 14 +-
drivers/net/wireless/marvell/mwifiex/main.c | 14 +-
drivers/net/wireless/marvell/mwifiex/main.h | 14 +-
drivers/net/wireless/marvell/mwifiex/pcie.c | 16 +-
drivers/net/wireless/marvell/mwifiex/pcie.h | 14 +-
drivers/net/wireless/marvell/mwifiex/pcie_quirks.c | 18 +-
drivers/net/wireless/marvell/mwifiex/pcie_quirks.h | 18 +-
drivers/net/wireless/marvell/mwifiex/scan.c | 14 +-
drivers/net/wireless/marvell/mwifiex/sdio.c | 16 +-
drivers/net/wireless/marvell/mwifiex/sdio.h | 14 +-
drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 34 +-
drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c | 14 +-
drivers/net/wireless/marvell/mwifiex/sta_event.c | 14 +-
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 14 +-
drivers/net/wireless/marvell/mwifiex/sta_rx.c | 14 +-
drivers/net/wireless/marvell/mwifiex/sta_tx.c | 14 +-
drivers/net/wireless/marvell/mwifiex/txrx.c | 14 +-
drivers/net/wireless/marvell/mwifiex/uap_cmd.c | 14 +-
drivers/net/wireless/marvell/mwifiex/uap_event.c | 14 +-
drivers/net/wireless/marvell/mwifiex/uap_txrx.c | 14 +-
drivers/net/wireless/marvell/mwifiex/usb.c | 14 +-
drivers/net/wireless/marvell/mwifiex/usb.h | 14 +-
drivers/net/wireless/marvell/mwifiex/util.c | 14 +-
drivers/net/wireless/marvell/mwifiex/util.h | 14 +-
drivers/net/wireless/marvell/mwifiex/wmm.c | 14 +-
drivers/net/wireless/marvell/mwifiex/wmm.h | 14 +-
drivers/net/wireless/marvell/mwl8k.c | 21 +-
drivers/net/wireless/mediatek/mt76/dma.c | 19 +-
drivers/net/wireless/mediatek/mt76/eeprom.c | 5 +-
drivers/net/wireless/mediatek/mt76/mac80211.c | 65 +-
drivers/net/wireless/mediatek/mt76/mcu.c | 10 +-
drivers/net/wireless/mediatek/mt76/mt76.h | 85 +-
drivers/net/wireless/mediatek/mt76/mt7603/beacon.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt7603/main.c | 7 +-
drivers/net/wireless/mediatek/mt76/mt7615/dma.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7615/init.c | 5 +-
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 121 +-
drivers/net/wireless/mediatek/mt76/mt7615/mac.h | 69 -
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 32 +-
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c | 83 +-
drivers/net/wireless/mediatek/mt76/mt7615/mcu.h | 3 -
drivers/net/wireless/mediatek/mt76/mt7615/mmio.c | 4 +-
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | 10 +-
.../net/wireless/mediatek/mt76/mt7615/pci_mac.c | 109 +-
.../net/wireless/mediatek/mt76/mt7615/usb_sdio.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt76_connac.h | 116 +
.../net/wireless/mediatek/mt76/mt76_connac2_mac.h | 323 +
.../net/wireless/mediatek/mt76/mt76_connac_mac.c | 920 +
.../net/wireless/mediatek/mt76/mt76_connac_mcu.c | 315 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.h | 156 +
drivers/net/wireless/mediatek/mt76/mt76x02.h | 5 +-
.../net/wireless/mediatek/mt76/mt76x02_beacon.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 11 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c | 3 +-
.../net/wireless/mediatek/mt76/mt76x02_usb_mcu.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 5 +-
.../net/wireless/mediatek/mt76/mt7915/debugfs.c | 5 +-
drivers/net/wireless/mediatek/mt76/mt7915/dma.c | 69 +-
drivers/net/wireless/mediatek/mt76/mt7915/init.c | 21 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 915 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.h | 333 +-
drivers/net/wireless/mediatek/mt76/mt7915/main.c | 27 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 415 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 51 +-
drivers/net/wireless/mediatek/mt76/mt7915/mmio.c | 19 +-
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h | 32 +-
drivers/net/wireless/mediatek/mt76/mt7915/regs.h | 24 +-
.../net/wireless/mediatek/mt76/mt7915/testmode.c | 11 +-
drivers/net/wireless/mediatek/mt76/mt7921/Makefile | 1 +
.../net/wireless/mediatek/mt76/mt7921/acpi_sar.c | 279 +
.../net/wireless/mediatek/mt76/mt7921/acpi_sar.h | 93 +
drivers/net/wireless/mediatek/mt76/mt7921/dma.c | 21 +-
drivers/net/wireless/mediatek/mt76/mt7921/init.c | 13 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 716 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.h | 340 +-
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 125 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 424 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.h | 88 -
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 50 +-
drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 34 +-
.../net/wireless/mediatek/mt76/mt7921/pci_mac.c | 106 +-
.../net/wireless/mediatek/mt76/mt7921/pci_mcu.c | 17 +-
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c | 2 +-
.../net/wireless/mediatek/mt76/mt7921/sdio_mcu.c | 31 +-
drivers/net/wireless/mediatek/mt76/mt7921/usb.c | 14 +-
.../net/wireless/mediatek/mt76/mt7921/usb_mac.c | 4 +-
drivers/net/wireless/mediatek/mt76/sdio.c | 8 +-
drivers/net/wireless/mediatek/mt76/testmode.c | 9 +-
drivers/net/wireless/mediatek/mt76/tx.c | 54 +-
drivers/net/wireless/mediatek/mt76/usb.c | 7 +-
drivers/net/wireless/mediatek/mt7601u/debugfs.c | 2 +-
drivers/net/wireless/mediatek/mt7601u/eeprom.c | 2 +-
drivers/net/wireless/mediatek/mt7601u/main.c | 2 +-
drivers/net/wireless/mediatek/mt7601u/mt7601u.h | 3 +-
drivers/net/wireless/mediatek/mt7601u/phy.c | 9 +-
drivers/net/wireless/mediatek/mt7601u/tx.c | 3 +-
drivers/net/wireless/microchip/wilc1000/cfg80211.c | 252 +-
drivers/net/wireless/microchip/wilc1000/fw.h | 21 +-
drivers/net/wireless/microchip/wilc1000/hif.c | 228 +-
drivers/net/wireless/microchip/wilc1000/hif.h | 16 +-
drivers/net/wireless/microchip/wilc1000/netdev.c | 20 +-
drivers/net/wireless/microchip/wilc1000/netdev.h | 15 +-
drivers/net/wireless/microchip/wilc1000/sdio.c | 13 +
drivers/net/wireless/microchip/wilc1000/spi.c | 14 +-
drivers/net/wireless/microchip/wilc1000/wlan.c | 12 +-
drivers/net/wireless/microchip/wilc1000/wlan.h | 3 +
drivers/net/wireless/microchip/wilc1000/wlan_cfg.c | 6 +-
drivers/net/wireless/microchip/wilc1000/wlan_if.h | 20 +-
drivers/net/wireless/purelifi/plfxlc/mac.c | 8 +-
drivers/net/wireless/purelifi/plfxlc/usb.c | 2 +-
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c | 14 +-
drivers/net/wireless/quantenna/qtnfmac/commands.c | 14 +-
drivers/net/wireless/quantenna/qtnfmac/event.c | 15 +-
drivers/net/wireless/quantenna/qtnfmac/qlink.h | 4 +-
drivers/net/wireless/ralink/rt2x00/rt2400pci.c | 5 +-
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 5 +-
drivers/net/wireless/ralink/rt2x00/rt2800lib.h | 3 +-
drivers/net/wireless/ralink/rt2x00/rt2x00.h | 7 +-
drivers/net/wireless/ralink/rt2x00/rt2x00config.c | 4 +-
drivers/net/wireless/ralink/rt2x00/rt2x00mac.c | 9 +-
drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 2 +-
drivers/net/wireless/ralink/rt2x00/rt61pci.c | 5 +-
drivers/net/wireless/ralink/rt2x00/rt73usb.c | 5 +-
drivers/net/wireless/ray_cs.c | 20 +-
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c | 7 +-
drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c | 7 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 36 +-
drivers/net/wireless/realtek/rtlwifi/core.c | 15 +-
drivers/net/wireless/realtek/rtlwifi/debug.c | 8 +-
drivers/net/wireless/realtek/rtlwifi/pci.c | 2 +-
drivers/net/wireless/realtek/rtlwifi/regd.c | 2 +-
.../net/wireless/realtek/rtlwifi/rtl8192se/hw.c | 2 +-
drivers/net/wireless/realtek/rtw88/bf.c | 2 +-
drivers/net/wireless/realtek/rtw88/debug.c | 6 +-
drivers/net/wireless/realtek/rtw88/fw.c | 2 +-
drivers/net/wireless/realtek/rtw88/mac80211.c | 13 +-
drivers/net/wireless/realtek/rtw88/main.c | 26 +-
drivers/net/wireless/realtek/rtw88/main.h | 6 +-
drivers/net/wireless/realtek/rtw88/rtw8723d.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8723d.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8723de.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8723de.h | 10 -
drivers/net/wireless/realtek/rtw88/rtw8821c.c | 16 +-
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8821ce.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8821ce.h | 10 -
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822b.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8822be.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822be.h | 10 -
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822c.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8822ce.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822ce.h | 10 -
drivers/net/wireless/realtek/rtw89/cam.c | 38 +-
drivers/net/wireless/realtek/rtw89/cam.h | 17 +-
drivers/net/wireless/realtek/rtw89/core.c | 204 +-
drivers/net/wireless/realtek/rtw89/core.h | 80 +-
drivers/net/wireless/realtek/rtw89/debug.c | 6 +-
drivers/net/wireless/realtek/rtw89/debug.h | 3 +
drivers/net/wireless/realtek/rtw89/fw.c | 29 +-
drivers/net/wireless/realtek/rtw89/fw.h | 5 +-
drivers/net/wireless/realtek/rtw89/mac.c | 15 +-
drivers/net/wireless/realtek/rtw89/mac.h | 1 +
drivers/net/wireless/realtek/rtw89/mac80211.c | 18 +-
drivers/net/wireless/realtek/rtw89/pci.c | 27 +-
drivers/net/wireless/realtek/rtw89/pci.h | 1 +
drivers/net/wireless/realtek/rtw89/phy.c | 46 +-
drivers/net/wireless/realtek/rtw89/phy.h | 1 +
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c | 4 +-
.../net/wireless/realtek/rtw89/rtw8852a_table.c | 896 +-
drivers/net/wireless/realtek/rtw89/rtw8852c.c | 1 +
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c | 27 +
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h | 1 +
drivers/net/wireless/realtek/rtw89/sar.c | 140 +-
drivers/net/wireless/realtek/rtw89/ser.c | 15 +-
drivers/net/wireless/rndis_wlan.c | 5 +-
drivers/net/wireless/rsi/rsi_91x_core.c | 3 +-
drivers/net/wireless/rsi/rsi_91x_hal.c | 11 +-
drivers/net/wireless/rsi/rsi_91x_mac80211.c | 36 +-
drivers/net/wireless/rsi/rsi_91x_mgmt.c | 3 +-
drivers/net/wireless/rsi/rsi_91x_sdio.c | 2 +-
drivers/net/wireless/silabs/wfx/fwio.c | 3 +-
drivers/net/wireless/silabs/wfx/hif_tx.c | 12 +-
drivers/net/wireless/silabs/wfx/sta.c | 45 +-
drivers/net/wireless/silabs/wfx/sta.h | 13 +-
drivers/net/wireless/st/cw1200/bh.c | 10 +-
drivers/net/wireless/st/cw1200/sta.c | 47 +-
drivers/net/wireless/st/cw1200/sta.h | 5 +-
drivers/net/wireless/st/cw1200/txrx.c | 4 +-
drivers/net/wireless/ti/wl1251/acx.h | 2 +-
drivers/net/wireless/ti/wl1251/main.c | 15 +-
drivers/net/wireless/ti/wl12xx/main.c | 3 -
drivers/net/wireless/ti/wlcore/cmd.c | 4 +-
drivers/net/wireless/ti/wlcore/main.c | 54 +-
drivers/net/wireless/virt_wifi.c | 2 +-
drivers/net/wireless/zydas/zd1211rw/zd_mac.c | 13 +-
drivers/net/xen-netback/common.h | 12 -
drivers/net/xen-netback/interface.c | 16 +-
drivers/net/xen-netback/netback.c | 8 +-
drivers/net/xen-netback/rx.c | 3 +-
drivers/net/xen-netfront.c | 80 +-
drivers/nfc/nfcmrvl/i2c.c | 6 +-
drivers/nfc/nfcmrvl/spi.c | 6 +-
drivers/nfc/nfcmrvl/usb.c | 16 +-
drivers/nfc/nxp-nci/core.c | 34 +
drivers/nfc/nxp-nci/i2c.c | 11 +-
drivers/nfc/st21nfca/se.c | 53 +-
drivers/ntb/hw/epf/ntb_hw_epf.c | 48 +-
drivers/ntb/hw/idt/ntb_hw_idt.c | 6 +-
drivers/ntb/hw/intel/ntb_hw_gen1.c | 12 +-
drivers/ntb/hw/intel/ntb_hw_gen4.c | 2 +-
drivers/ntb/hw/intel/ntb_hw_intel.h | 7 +
drivers/ntb/test/ntb_tool.c | 8 +-
drivers/nvdimm/btt.c | 8 +-
drivers/nvdimm/bus.c | 4 +-
drivers/nvdimm/pmem.c | 23 +-
drivers/nvdimm/region_devs.c | 28 +-
drivers/nvdimm/virtio_pmem.c | 9 +-
drivers/nvme/Kconfig | 1 +
drivers/nvme/Makefile | 1 +
drivers/nvme/common/Kconfig | 4 +
drivers/nvme/common/Makefile | 7 +
drivers/nvme/common/auth.c | 483 +
drivers/nvme/host/Kconfig | 15 +
drivers/nvme/host/Makefile | 4 +-
drivers/nvme/host/apple.c | 33 +-
drivers/nvme/host/auth.c | 1017 +
drivers/nvme/host/constants.c | 3 +-
drivers/nvme/host/core.c | 519 +-
drivers/nvme/host/fabrics.c | 102 +-
drivers/nvme/host/fabrics.h | 7 +
drivers/nvme/host/fc.c | 23 +-
drivers/nvme/host/ioctl.c | 4 +-
drivers/nvme/host/multipath.c | 13 +-
drivers/nvme/host/nvme.h | 74 +-
drivers/nvme/host/pci.c | 298 +-
drivers/nvme/host/rdma.c | 133 +-
drivers/nvme/host/tcp.c | 126 +-
drivers/nvme/host/trace.c | 32 +
drivers/nvme/host/trace.h | 4 +-
drivers/nvme/host/zns.c | 6 +-
drivers/nvme/target/Kconfig | 15 +
drivers/nvme/target/Makefile | 1 +
drivers/nvme/target/admin-cmd.c | 4 +-
drivers/nvme/target/auth.c | 525 +
drivers/nvme/target/configfs.c | 156 +
drivers/nvme/target/core.c | 21 +
drivers/nvme/target/fabrics-cmd-auth.c | 544 +
drivers/nvme/target/fabrics-cmd.c | 55 +-
drivers/nvme/target/io-cmd-bdev.c | 17 +-
drivers/nvme/target/io-cmd-file.c | 2 +-
drivers/nvme/target/loop.c | 20 +-
drivers/nvme/target/nvmet.h | 76 +-
drivers/nvme/target/passthru.c | 55 +
drivers/nvme/target/rdma.c | 2 +-
drivers/nvme/target/tcp.c | 26 +-
drivers/nvme/target/zns.c | 24 +-
drivers/nvmem/Kconfig | 7 +
drivers/nvmem/Makefile | 2 +
drivers/nvmem/bcm-ocotp.c | 14 +-
drivers/nvmem/microchip-otpc.c | 288 +
drivers/nvmem/mtk-efuse.c | 3 +-
drivers/of/address.c | 17 +-
drivers/of/base.c | 4 +-
drivers/of/device.c | 5 +-
drivers/of/fdt.c | 25 +-
drivers/of/kexec.c | 30 +-
drivers/of/of_reserved_mem.c | 3 +-
drivers/of/overlay.c | 20 +-
drivers/of/unittest.c | 17 +-
drivers/opp/core.c | 1577 +-
drivers/opp/cpu.c | 12 +-
drivers/opp/debugfs.c | 27 +-
drivers/opp/of.c | 165 +-
drivers/opp/opp.h | 56 +-
drivers/opp/ti-opp-supply.c | 77 +-
drivers/parisc/iosapic.c | 2 +-
drivers/parisc/lba_pci.c | 6 +-
drivers/pci/Kconfig | 8 +
drivers/pci/Makefile | 1 +
drivers/pci/controller/Kconfig | 4 +-
drivers/pci/controller/cadence/pcie-cadence.c | 6 +-
drivers/pci/controller/dwc/pci-dra7xx.c | 22 +-
drivers/pci/controller/dwc/pci-exynos.c | 19 +-
drivers/pci/controller/dwc/pci-imx6.c | 686 +-
drivers/pci/controller/dwc/pci-keystone.c | 34 +-
drivers/pci/controller/dwc/pci-layerscape-ep.c | 12 -
drivers/pci/controller/dwc/pci-layerscape.c | 2 +-
drivers/pci/controller/dwc/pci-meson.c | 2 +-
drivers/pci/controller/dwc/pcie-al.c | 6 +-
drivers/pci/controller/dwc/pcie-armada8k.c | 6 +-
drivers/pci/controller/dwc/pcie-artpec6.c | 4 +-
drivers/pci/controller/dwc/pcie-designware-ep.c | 92 +-
drivers/pci/controller/dwc/pcie-designware-host.c | 404 +-
drivers/pci/controller/dwc/pcie-designware-plat.c | 25 +-
drivers/pci/controller/dwc/pcie-designware.c | 472 +-
drivers/pci/controller/dwc/pcie-designware.h | 178 +-
drivers/pci/controller/dwc/pcie-dw-rockchip.c | 4 +-
drivers/pci/controller/dwc/pcie-fu740.c | 4 +-
drivers/pci/controller/dwc/pcie-histb.c | 10 +-
drivers/pci/controller/dwc/pcie-intel-gw.c | 36 +-
drivers/pci/controller/dwc/pcie-keembay.c | 6 +-
drivers/pci/controller/dwc/pcie-kirin.c | 2 +-
drivers/pci/controller/dwc/pcie-qcom.c | 431 +-
drivers/pci/controller/dwc/pcie-spear13xx.c | 10 +-
drivers/pci/controller/dwc/pcie-tegra194-acpi.c | 7 +-
drivers/pci/controller/dwc/pcie-tegra194.c | 684 +-
drivers/pci/controller/dwc/pcie-uniphier.c | 10 +-
drivers/pci/controller/dwc/pcie-visconti.c | 6 +-
drivers/pci/controller/pci-aardvark.c | 112 +-
drivers/pci/controller/pci-hyperv.c | 12 +-
drivers/pci/controller/pci-loongson.c | 206 +-
drivers/pci/controller/pci-mvebu.c | 4 +-
drivers/pci/controller/pci-rcar-gen2.c | 1 +
drivers/pci/controller/pci-tegra.c | 9 +-
drivers/pci/controller/pci-xgene.c | 2 +-
drivers/pci/controller/pcie-brcmstb.c | 443 +-
drivers/pci/controller/pcie-iproc-msi.c | 4 +-
drivers/pci/controller/pcie-mediatek-gen3.c | 62 +-
drivers/pci/controller/pcie-mediatek.c | 8 +-
drivers/pci/controller/pcie-microchip-host.c | 2 +
drivers/pci/controller/pcie-rcar-host.c | 4 +-
drivers/pci/controller/pcie-rockchip-host.c | 8 +-
drivers/pci/controller/pcie-xilinx-cpm.c | 60 +-
drivers/pci/controller/vmd.c | 13 +-
drivers/pci/doe.c | 536 +
drivers/pci/endpoint/functions/Kconfig | 12 +
drivers/pci/endpoint/functions/Makefile | 1 +
drivers/pci/endpoint/functions/pci-epf-test.c | 117 +-
drivers/pci/endpoint/functions/pci-epf-vntb.c | 1442 +
drivers/pci/mmap.c | 44 -
drivers/pci/p2pdma.c | 93 +-
drivers/pci/pci-acpi.c | 5 +-
drivers/pci/pci.c | 8 +-
drivers/pci/pci.h | 2 -
drivers/pci/pcie/aer.c | 15 +-
drivers/pci/pcie/aspm.c | 20 -
drivers/pci/pcie/err.c | 12 +-
drivers/pci/pcie/portdrv_core.c | 9 +-
drivers/pci/probe.c | 92 +-
drivers/pci/proc.c | 7 +-
drivers/pci/quirks.c | 24 +-
drivers/pci/switch/switchtec.c | 7 +-
drivers/perf/arm-cci.c | 11 +-
drivers/perf/arm-ccn.c | 6 +-
drivers/perf/arm_spe_pmu.c | 22 +-
drivers/perf/fsl_imx8_ddr_perf.c | 6 +-
drivers/perf/hisilicon/Kconfig | 10 +
drivers/perf/hisilicon/Makefile | 1 +
drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c | 16 +-
drivers/perf/hisilicon/hisi_uncore_hha_pmu.c | 16 +-
drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c | 16 +-
drivers/perf/hisilicon/hisi_uncore_pa_pmu.c | 16 +-
drivers/perf/hisilicon/hisi_uncore_pmu.c | 18 +
drivers/perf/hisilicon/hisi_uncore_pmu.h | 2 +
drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c | 15 +-
drivers/perf/hisilicon/hns3_pmu.c | 1671 +
drivers/perf/marvell_cn10k_tad_pmu.c | 12 +-
drivers/perf/riscv_pmu.c | 5 +-
drivers/perf/riscv_pmu_sbi.c | 132 +-
drivers/phy/amlogic/Kconfig | 12 +
drivers/phy/amlogic/Makefile | 1 +
drivers/phy/amlogic/phy-meson-axg-mipi-dphy.c | 2 +-
.../phy/amlogic/phy-meson-g12a-mipi-dphy-analog.c | 171 +
drivers/phy/broadcom/Kconfig | 2 +-
drivers/phy/broadcom/phy-bcm-cygnus-pcie.c | 14 +-
drivers/phy/broadcom/phy-bcm-ns2-pcie.c | 14 +-
drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c | 14 +-
drivers/phy/broadcom/phy-brcm-usb-init.c | 2 +-
drivers/phy/cadence/cdns-dphy.c | 101 +-
drivers/phy/cadence/phy-cadence-sierra.c | 1 -
drivers/phy/cadence/phy-cadence-torrent.c | 1 -
drivers/phy/freescale/Kconfig | 9 +
drivers/phy/freescale/Makefile | 1 +
drivers/phy/freescale/phy-fsl-imx8qm-lvds-phy.c | 450 +
drivers/phy/mediatek/Kconfig | 19 +
drivers/phy/mediatek/Makefile | 2 +
drivers/phy/mediatek/phy-mtk-dp.c | 202 +
drivers/phy/mediatek/phy-mtk-pcie.c | 267 +
drivers/phy/motorola/phy-cpcap-usb.c | 10 +-
drivers/phy/qualcomm/Makefile | 8 +-
drivers/phy/qualcomm/phy-qcom-edp.c | 12 +
drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 2621 +
drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c | 1054 +
drivers/phy/qualcomm/phy-qcom-qmp-pcie-qhp.h | 123 +
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 2556 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-misc-v3.h | 17 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v4.h | 72 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v4_20.h | 17 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v5.h | 16 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v5_20.h | 17 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-ufs-v3.h | 18 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-ufs-v4.h | 31 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-ufs-v5.h | 27 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-usb-v4.h | 34 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-usb-v5.h | 36 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v2.h | 46 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v3.h | 145 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v4.h | 135 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v4_20.h | 15 +
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v5.h | 17 +
drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com-v3.h | 111 +
drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com-v4.h | 123 +
drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com-v5.h | 124 +
drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com.h | 140 +
drivers/phy/qualcomm/phy-qcom-qmp-qserdes-pll.h | 66 +
.../phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v3.h | 68 +
.../phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v4.h | 233 +
.../phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v4_20.h | 43 +
.../phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v5.h | 231 +
.../phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v5_20.h | 60 +
drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx.h | 205 +
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 1383 +
drivers/phy/qualcomm/phy-qcom-qmp-usb.c | 2765 +
drivers/phy/qualcomm/phy-qcom-qmp.c | 6350 -
drivers/phy/qualcomm/phy-qcom-qmp.h | 1242 +-
drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 12 +-
drivers/phy/samsung/Makefile | 1 +
drivers/phy/samsung/phy-exynos-pcie.c | 25 +-
drivers/phy/samsung/phy-exynos7-ufs.c | 12 +-
drivers/phy/samsung/phy-exynosautov9-ufs.c | 29 +-
drivers/phy/samsung/phy-fsd-ufs.c | 63 +
drivers/phy/samsung/phy-samsung-ufs.c | 138 +-
drivers/phy/samsung/phy-samsung-ufs.h | 34 +-
drivers/phy/st/phy-stm32-usbphyc.c | 4 +-
drivers/phy/tegra/phy-tegra194-p2u.c | 48 +-
drivers/phy/ti/phy-dm816x-usb.c | 11 +-
drivers/phy/ti/phy-j721e-wiz.c | 75 +-
drivers/phy/ti/phy-tusb1210.c | 5 +-
drivers/pinctrl/Kconfig | 4 +-
drivers/pinctrl/aspeed/pinctrl-aspeed.c | 4 +-
drivers/pinctrl/aspeed/pinmux-aspeed.h | 2 +-
drivers/pinctrl/bcm/pinctrl-bcm281xx.c | 14 +-
drivers/pinctrl/bcm/pinctrl-bcm2835.c | 21 +-
drivers/pinctrl/bcm/pinctrl-cygnus-mux.c | 14 +-
drivers/pinctrl/bcm/pinctrl-ns2-mux.c | 10 +-
drivers/pinctrl/bcm/pinctrl-nsp-gpio.c | 14 +-
drivers/pinctrl/bcm/pinctrl-nsp-mux.c | 10 +-
drivers/pinctrl/core.c | 2 +-
drivers/pinctrl/devicetree.c | 2 +-
drivers/pinctrl/freescale/pinctrl-imx93.c | 2 +
drivers/pinctrl/intel/Kconfig | 8 +
drivers/pinctrl/intel/Makefile | 1 +
drivers/pinctrl/intel/pinctrl-baytrail.c | 18 +-
drivers/pinctrl/intel/pinctrl-cherryview.c | 16 +-
drivers/pinctrl/intel/pinctrl-intel.c | 28 +-
drivers/pinctrl/intel/pinctrl-intel.h | 25 +-
drivers/pinctrl/intel/pinctrl-lynxpoint.c | 10 +-
drivers/pinctrl/intel/pinctrl-merrifield.c | 14 +-
drivers/pinctrl/intel/pinctrl-meteorlake.c | 417 +
drivers/pinctrl/mediatek/pinctrl-mt8192.c | 296 +-
drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 65 +-
drivers/pinctrl/mvebu/pinctrl-mvebu.c | 10 +
drivers/pinctrl/nomadik/pinctrl-nomadik.c | 4 +-
drivers/pinctrl/pinctrl-amd.c | 242 +-
drivers/pinctrl/pinctrl-amd.h | 1376 +-
drivers/pinctrl/pinctrl-as3722.c | 15 +-
drivers/pinctrl/pinctrl-at91-pio4.c | 7 +-
drivers/pinctrl/pinctrl-at91.c | 10 +-
drivers/pinctrl/pinctrl-axp209.c | 14 +-
drivers/pinctrl/pinctrl-ingenic.c | 64 +-
drivers/pinctrl/pinctrl-ocelot.c | 228 +-
drivers/pinctrl/pinctrl-palmas.c | 15 +-
drivers/pinctrl/pinctrl-starfive.c | 5 +
drivers/pinctrl/pinctrl-utils.c | 15 +-
drivers/pinctrl/pinctrl-utils.h | 15 +-
drivers/pinctrl/pinctrl-zynqmp.c | 11 +
drivers/pinctrl/qcom/Kconfig | 19 +-
drivers/pinctrl/qcom/Makefile | 2 +
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 2 +-
drivers/pinctrl/qcom/pinctrl-lpass-lpi.h | 1 -
drivers/pinctrl/qcom/pinctrl-msm8909.c | 956 +
drivers/pinctrl/qcom/pinctrl-msm8916.c | 4 +-
drivers/pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c | 1 -
drivers/pinctrl/qcom/pinctrl-sm6375.c | 1544 +
drivers/pinctrl/qcom/pinctrl-sm8250.c | 2 +-
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 18 +-
drivers/pinctrl/ralink/pinctrl-ralink.c | 2 +
drivers/pinctrl/renesas/Kconfig | 18 +
drivers/pinctrl/renesas/Makefile | 2 +
drivers/pinctrl/renesas/core.c | 6 +
drivers/pinctrl/renesas/pfc-r8a779f0.c | 2 -
drivers/pinctrl/renesas/pfc-r8a779g0.c | 4262 +
drivers/pinctrl/renesas/pinctrl-rzg2l.c | 235 +
drivers/pinctrl/renesas/pinctrl-rzv2m.c | 1119 +
drivers/pinctrl/renesas/sh_pfc.h | 9 +-
drivers/pinctrl/samsung/pinctrl-exynos.c | 6 +-
drivers/pinctrl/samsung/pinctrl-exynos.h | 3 +
drivers/pinctrl/samsung/pinctrl-samsung.c | 4 +-
drivers/pinctrl/samsung/pinctrl-samsung.h | 8 +
drivers/pinctrl/stm32/pinctrl-stm32.c | 20 +-
drivers/pinctrl/sunplus/sppctl.c | 3 +
drivers/pinctrl/sunxi/Kconfig | 8 +-
drivers/pinctrl/sunxi/Makefile | 1 +
drivers/pinctrl/sunxi/pinctrl-sun20i-d1.c | 840 +
drivers/pinctrl/sunxi/pinctrl-sun50i-a100-r.c | 1 +
drivers/pinctrl/sunxi/pinctrl-sun50i-a100.c | 2 +-
drivers/pinctrl/sunxi/pinctrl-sun50i-a64-r.c | 1 -
drivers/pinctrl/sunxi/pinctrl-sun50i-h6-r.c | 2 +-
drivers/pinctrl/sunxi/pinctrl-sun50i-h616-r.c | 1 -
drivers/pinctrl/sunxi/pinctrl-sun50i-h616.c | 2 +-
drivers/pinctrl/sunxi/pinctrl-sun6i-a31-r.c | 22 +-
drivers/pinctrl/sunxi/pinctrl-sun8i-a23-r.c | 25 +-
drivers/pinctrl/sunxi/pinctrl-sun8i-a83t-r.c | 1 -
drivers/pinctrl/sunxi/pinctrl-sun8i-a83t.c | 10 +-
drivers/pinctrl/sunxi/pinctrl-sun9i-a80-r.c | 1 -
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 158 +-
drivers/pinctrl/sunxi/pinctrl-sunxi.h | 109 +-
drivers/platform/Kconfig | 5 +-
drivers/platform/chrome/Kconfig | 11 +-
drivers/platform/chrome/Makefile | 5 +
drivers/platform/chrome/cros_ec.c | 11 +-
drivers/platform/chrome/cros_ec_proto.c | 473 +-
drivers/platform/chrome/cros_ec_proto_test.c | 2753 +
drivers/platform/chrome/cros_ec_trace.h | 8 +-
drivers/platform/chrome/cros_ec_typec.c | 93 +-
drivers/platform/chrome/cros_kbd_led_backlight.c | 196 +-
drivers/platform/chrome/cros_kunit_util.c | 130 +
drivers/platform/chrome/cros_kunit_util.h | 48 +
drivers/platform/chrome/cros_usbpd_notify.c | 4 +-
drivers/platform/chrome/wilco_ec/event.c | 2 +-
drivers/platform/mellanox/Kconfig | 2 +-
drivers/platform/mellanox/mlxbf-tmfifo.c | 3 +
drivers/platform/mellanox/mlxreg-io.c | 23 +
drivers/platform/mellanox/mlxreg-lc.c | 82 +-
drivers/platform/mellanox/nvsw-sn2201.c | 6 +-
drivers/platform/mips/Kconfig | 2 +-
drivers/platform/olpc/olpc-ec.c | 2 +-
drivers/platform/surface/Kconfig | 58 +-
drivers/platform/surface/Makefile | 2 +
drivers/platform/surface/aggregator/Kconfig | 2 +-
drivers/platform/surface/aggregator/Makefile | 2 +-
drivers/platform/surface/aggregator/bus.c | 151 +-
drivers/platform/surface/aggregator/bus.h | 2 +-
drivers/platform/surface/aggregator/controller.c | 55 +-
drivers/platform/surface/aggregator/controller.h | 2 +-
drivers/platform/surface/aggregator/core.c | 2 +-
drivers/platform/surface/aggregator/ssh_msgb.h | 2 +-
.../platform/surface/aggregator/ssh_packet_layer.c | 2 +-
.../platform/surface/aggregator/ssh_packet_layer.h | 2 +-
drivers/platform/surface/aggregator/ssh_parser.c | 2 +-
drivers/platform/surface/aggregator/ssh_parser.h | 2 +-
.../surface/aggregator/ssh_request_layer.c | 2 +-
.../surface/aggregator/ssh_request_layer.h | 2 +-
drivers/platform/surface/aggregator/trace.h | 82 +-
drivers/platform/surface/surface_acpi_notify.c | 29 +-
drivers/platform/surface/surface_aggregator_cdev.c | 2 +-
drivers/platform/surface/surface_aggregator_hub.c | 371 +
.../platform/surface/surface_aggregator_registry.c | 362 +-
.../platform/surface/surface_aggregator_tabletsw.c | 533 +
drivers/platform/surface/surface_dtx.c | 2 +-
drivers/platform/surface/surface_gpe.c | 14 +-
drivers/platform/surface/surface_hotplug.c | 2 +-
.../platform/surface/surface_platform_profile.c | 2 +-
drivers/platform/x86/Kconfig | 54 +-
drivers/platform/x86/Makefile | 9 +-
drivers/platform/x86/acer-wmi.c | 7 +-
drivers/platform/x86/amd/Kconfig | 31 +
drivers/platform/x86/amd/Makefile | 10 +
drivers/platform/x86/{amd_hsmp.c => amd/hsmp.c} | 0
drivers/platform/x86/{amd-pmc.c => amd/pmc.c} | 14 +-
drivers/platform/x86/apple-gmux.c | 5 +-
drivers/platform/x86/asus-nb-wmi.c | 2 +
drivers/platform/x86/asus-wmi.c | 25 +
drivers/platform/x86/barco-p50-gpio.c | 5 +-
drivers/platform/x86/compal-laptop.c | 4 +-
drivers/platform/x86/dell/Kconfig | 1 -
drivers/platform/x86/gigabyte-wmi.c | 3 +
drivers/platform/x86/hp-wmi.c | 32 +-
drivers/platform/x86/ideapad-laptop.c | 29 +-
drivers/platform/x86/intel/atomisp2/led.c | 3 +-
drivers/platform/x86/intel/hid.c | 6 +
drivers/platform/x86/intel/ifs/Kconfig | 3 +
drivers/platform/x86/intel/pmc/core.c | 2 +
drivers/platform/x86/intel/pmt/class.c | 23 +-
drivers/platform/x86/intel/pmt/crashlog.c | 2 +-
drivers/platform/x86/intel/pmt/telemetry.c | 18 +-
.../x86/intel/speed_select_if/isst_if_common.c | 39 +-
drivers/platform/x86/intel/vsec.c | 130 +-
drivers/platform/x86/intel/vsec.h | 11 +-
drivers/platform/x86/mlx-platform.c | 491 +-
drivers/platform/x86/p2sb.c | 133 +
drivers/platform/x86/panasonic-laptop.c | 112 +-
drivers/platform/x86/pmc_atom.c | 19 +-
drivers/platform/x86/serial-multi-instantiate.c | 69 +-
drivers/platform/x86/simatic-ipc.c | 43 +-
drivers/platform/x86/sony-laptop.c | 7 +-
drivers/platform/x86/system76_acpi.c | 4 +-
drivers/platform/x86/thinkpad_acpi.c | 272 +-
drivers/platform/x86/x86-android-tablets.c | 17 +-
drivers/pnp/resource.c | 5 +-
drivers/power/reset/Kconfig | 6 +
drivers/power/reset/Makefile | 1 +
drivers/power/reset/arm-versatile-reboot.c | 1 +
drivers/power/reset/at91-reset.c | 184 +-
drivers/power/reset/brcm-kona-reset.c | 14 +-
drivers/power/reset/brcmstb-reboot.c | 14 +-
drivers/power/reset/pwr-mlxbf.c | 97 +
drivers/power/supply/ab8500-chargalg.h | 4 -
drivers/power/supply/ab8500_btemp.c | 1 -
drivers/power/supply/ab8500_chargalg.c | 70 +-
drivers/power/supply/ab8500_charger.c | 48 +-
drivers/power/supply/ab8500_fg.c | 12 +-
drivers/power/supply/bq24257_charger.c | 2 +-
drivers/power/supply/cpcap-battery.c | 10 +-
drivers/power/supply/cros_peripheral_charger.c | 2 +-
drivers/power/supply/goldfish_battery.c | 4 +-
drivers/power/supply/lp8788-charger.c | 2 +-
drivers/power/supply/max77976_charger.c | 4 +-
drivers/power/supply/olpc_battery.c | 5 +-
drivers/power/supply/pm2301_charger.h | 492 -
drivers/power/supply/power_supply_core.c | 28 +-
drivers/power/supply/surface_battery.c | 4 +-
drivers/power/supply/surface_charger.c | 4 +-
drivers/powercap/dtpm_cpu.c | 38 +-
drivers/powercap/intel_rapl_common.c | 1 +
drivers/powercap/intel_rapl_msr.c | 2 +
drivers/ptp/Kconfig | 1 +
drivers/ptp/ptp_dte.c | 14 +-
drivers/ptp/ptp_ocp.c | 23 +-
drivers/pwm/Kconfig | 10 +
drivers/pwm/Makefile | 1 +
drivers/pwm/core.c | 82 +-
drivers/pwm/pwm-atmel-tcb.c | 2 +-
drivers/pwm/pwm-bcm-iproc.c | 14 +-
drivers/pwm/pwm-bcm-kona.c | 14 +-
drivers/pwm/pwm-clk.c | 148 +
drivers/pwm/pwm-lpc18xx-sct.c | 67 +-
drivers/pwm/pwm-mediatek.c | 7 +
drivers/pwm/pwm-sifive.c | 117 +-
drivers/pwm/pwm-twl-led.c | 16 +
drivers/regulator/Kconfig | 28 +
drivers/regulator/Makefile | 3 +
drivers/regulator/core.c | 25 +-
drivers/regulator/cpcap-regulator.c | 10 +-
drivers/regulator/cros-ec-regulator.c | 36 +-
drivers/regulator/devres.c | 28 +
drivers/regulator/isl6271a-regulator.c | 10 +-
drivers/regulator/lp873x-regulator.c | 10 +-
drivers/regulator/max597x-regulator.c | 502 +
drivers/regulator/max8973-regulator.c | 15 +-
drivers/regulator/mp5416.c | 30 +-
drivers/regulator/mt6370-regulator.c | 390 +
drivers/regulator/mt6380-regulator.c | 2 +-
drivers/regulator/of_regulator.c | 6 +-
drivers/regulator/qcom_smd-regulator.c | 37 +-
drivers/regulator/qcom_spmi-regulator.c | 37 +
drivers/regulator/rpi-panel-attiny-regulator.c | 6 +-
drivers/regulator/rt5120-regulator.c | 420 +
drivers/regulator/rt5190a-regulator.c | 3 +
drivers/regulator/scmi-regulator.c | 1 +
drivers/regulator/ti-abb-regulator.c | 14 +-
drivers/regulator/tps51632-regulator.c | 15 +-
drivers/regulator/tps62360-regulator.c | 15 +-
drivers/regulator/tps65023-regulator.c | 10 +-
drivers/regulator/tps6507x-regulator.c | 10 +-
drivers/regulator/tps65086-regulator.c | 10 +-
drivers/regulator/tps65217-regulator.c | 10 +-
drivers/regulator/tps65218-regulator.c | 10 +-
drivers/regulator/tps65912-regulator.c | 10 +-
drivers/remoteproc/imx_rproc.c | 7 +-
drivers/remoteproc/keystone_remoteproc.c | 3 +-
drivers/remoteproc/mtk_scp.c | 23 +-
drivers/remoteproc/omap_remoteproc.c | 6 +-
drivers/remoteproc/pru_rproc.c | 1 +
drivers/remoteproc/qcom_common.c | 4 +-
drivers/remoteproc/qcom_q6v5.c | 4 +
drivers/remoteproc/qcom_q6v5_adsp.c | 3 +-
drivers/remoteproc/qcom_q6v5_mss.c | 54 +-
drivers/remoteproc/qcom_q6v5_pas.c | 105 +-
drivers/remoteproc/qcom_sysmon.c | 16 +-
drivers/remoteproc/qcom_wcnss.c | 10 +-
drivers/remoteproc/remoteproc_core.c | 28 +-
drivers/remoteproc/remoteproc_virtio.c | 13 +-
drivers/remoteproc/ti_k3_r5_remoteproc.c | 2 +
drivers/reset/Kconfig | 22 +-
drivers/reset/Makefile | 2 +
drivers/reset/reset-npcm.c | 207 +-
drivers/reset/reset-sunplus.c | 212 +
drivers/reset/reset-ti-sci.c | 10 +-
drivers/reset/reset-ti-syscon.c | 10 +-
drivers/reset/reset-tps380x.c | 126 +
drivers/rpmsg/mtk_rpmsg.c | 2 +
drivers/rpmsg/qcom_glink_native.c | 10 +-
drivers/rpmsg/qcom_glink_ssr.c | 2 +-
drivers/rpmsg/qcom_smd.c | 9 +-
drivers/rpmsg/rpmsg_char.c | 7 +-
drivers/rpmsg/rpmsg_core.c | 3 +-
drivers/rpmsg/rpmsg_internal.h | 4 +-
drivers/rtc/Kconfig | 41 +-
drivers/rtc/Makefile | 4 +-
drivers/rtc/class.c | 6 +-
drivers/rtc/dev.c | 8 +-
drivers/rtc/rtc-ab-b5ze-s3.c | 5 +-
drivers/rtc/rtc-ab-eoz9.c | 5 +-
drivers/rtc/rtc-bq32k.c | 5 +-
drivers/rtc/rtc-cmos.c | 3 -
drivers/rtc/rtc-core.h | 5 -
drivers/rtc/rtc-cros-ec.c | 4 +-
drivers/rtc/rtc-ds1374.c | 5 +-
drivers/rtc/rtc-ds1672.c | 5 +-
drivers/rtc/rtc-ds3232.c | 5 +-
drivers/rtc/rtc-em3027.c | 5 +-
drivers/rtc/rtc-fm3130.c | 5 +-
drivers/rtc/rtc-hym8563.c | 5 +-
drivers/rtc/rtc-isl12022.c | 5 +-
drivers/rtc/rtc-isl1208.c | 10 +-
drivers/rtc/rtc-max6900.c | 5 +-
drivers/rtc/rtc-mc146818-lib.c | 8 +-
drivers/rtc/rtc-mpfs.c | 323 +
drivers/rtc/rtc-nct3018y.c | 553 +
drivers/rtc/rtc-pcf8523.c | 5 +-
drivers/rtc/rtc-pcf85363.c | 5 +-
drivers/rtc/rtc-pcf8563.c | 5 +-
drivers/rtc/rtc-pcf8583.c | 5 +-
drivers/rtc/rtc-rv3029c2.c | 5 +-
drivers/rtc/rtc-rv8803.c | 98 +-
drivers/rtc/rtc-rx6110.c | 5 +-
drivers/rtc/rtc-rx8025.c | 22 +-
drivers/rtc/rtc-rx8581.c | 5 +-
drivers/rtc/rtc-s35390a.c | 5 +-
drivers/rtc/rtc-sd3078.c | 5 +-
drivers/rtc/rtc-spear.c | 2 +-
drivers/rtc/rtc-sun6i.c | 2 +
drivers/rtc/rtc-ti-k3.c | 680 +
drivers/rtc/rtc-vr41xx.c | 363 -
drivers/rtc/rtc-x1205.c | 5 +-
drivers/rtc/rtc-zynqmp.c | 115 +-
drivers/s390/block/dasd.c | 6 +-
drivers/s390/block/dasd_diag.c | 1 +
drivers/s390/block/dasd_eckd.c | 1 +
drivers/s390/block/dasd_genhd.c | 4 +-
drivers/s390/block/dasd_int.h | 2 +-
drivers/s390/block/dcssblk.c | 10 +-
drivers/s390/block/scm_blk.c | 4 +-
drivers/s390/char/Kconfig | 2 +-
drivers/s390/char/sclp.c | 2 +-
drivers/s390/char/sclp_early.c | 4 +
drivers/s390/char/tape_34xx.c | 2 +-
drivers/s390/char/uvdevice.c | 5 +-
drivers/s390/char/zcore.c | 55 +-
drivers/s390/cio/airq.c | 12 +-
drivers/s390/cio/qdio_thinint.c | 6 +-
drivers/s390/cio/vfio_ccw_async.c | 1 -
drivers/s390/cio/vfio_ccw_cp.c | 205 +-
drivers/s390/cio/vfio_ccw_cp.h | 12 +-
drivers/s390/cio/vfio_ccw_drv.c | 58 +-
drivers/s390/cio/vfio_ccw_fsm.c | 99 +-
drivers/s390/cio/vfio_ccw_ops.c | 114 +-
drivers/s390/cio/vfio_ccw_private.h | 13 +-
drivers/s390/crypto/ap_bus.c | 42 +-
drivers/s390/crypto/ap_queue.c | 2 +-
drivers/s390/crypto/pkey_api.c | 2 +-
drivers/s390/crypto/vfio_ap_drv.c | 124 +-
drivers/s390/crypto/vfio_ap_ops.c | 1544 +-
drivers/s390/crypto/vfio_ap_private.h | 54 +-
drivers/s390/net/ism_drv.c | 15 +-
drivers/s390/net/qeth_core_main.c | 170 +-
drivers/s390/net/qeth_ethtool.c | 12 +-
drivers/s390/scsi/zfcp_diag.h | 2 +-
drivers/s390/scsi/zfcp_fc.c | 29 +-
drivers/s390/scsi/zfcp_fc.h | 6 +-
drivers/s390/scsi/zfcp_fsf.c | 4 +-
drivers/s390/scsi/zfcp_sysfs.c | 2 +-
drivers/s390/virtio/virtio_ccw.c | 19 +-
drivers/scsi/BusLogic.c | 35 +-
drivers/scsi/FlashPoint.c | 4 +-
drivers/scsi/Kconfig | 13 +-
drivers/scsi/Makefile | 1 -
drivers/scsi/a2091.c | 63 +-
drivers/scsi/a3000.c | 53 +-
drivers/scsi/aacraid/aachba.c | 2 +-
drivers/scsi/aacraid/comminit.c | 2 +-
drivers/scsi/aacraid/linit.c | 2 +-
drivers/scsi/aic94xx/aic94xx_dev.c | 2 +-
drivers/scsi/be2iscsi/be_main.c | 21 +-
drivers/scsi/bnx2i/bnx2i_iscsi.c | 2 +-
drivers/scsi/ch.c | 2 +-
drivers/scsi/cxgbi/libcxgbi.c | 4 +-
drivers/scsi/cxlflash/ocxl_hw.c | 1 +
drivers/scsi/device_handler/scsi_dh_alua.c | 4 +-
drivers/scsi/device_handler/scsi_dh_emc.c | 2 +-
drivers/scsi/device_handler/scsi_dh_hp_sw.c | 4 +-
drivers/scsi/device_handler/scsi_dh_rdac.c | 2 +-
drivers/scsi/dpt/dpti_i2o.h | 441 -
drivers/scsi/dpt/dpti_ioctl.h | 136 -
drivers/scsi/dpt/dptsig.h | 336 -
drivers/scsi/dpt/osd_defs.h | 79 -
drivers/scsi/dpt/osd_util.h | 358 -
drivers/scsi/dpt/sys_info.h | 417 -
drivers/scsi/dpt_i2o.c | 3545 -
drivers/scsi/dpti.h | 331 -
drivers/scsi/fcoe/fcoe.c | 1 -
drivers/scsi/fnic/cq_desc.h | 14 +-
drivers/scsi/fnic/cq_enet_desc.h | 14 +-
drivers/scsi/fnic/cq_exch_desc.h | 14 +-
drivers/scsi/fnic/fcpio.h | 14 +-
drivers/scsi/fnic/fnic.h | 14 +-
drivers/scsi/fnic/fnic_attrs.c | 14 +-
drivers/scsi/fnic/fnic_debugfs.c | 18 +-
drivers/scsi/fnic/fnic_fcs.c | 14 +-
drivers/scsi/fnic/fnic_fip.h | 14 +-
drivers/scsi/fnic/fnic_io.h | 14 +-
drivers/scsi/fnic/fnic_isr.c | 15 +-
drivers/scsi/fnic/fnic_main.c | 60 +-
drivers/scsi/fnic/fnic_res.c | 14 +-
drivers/scsi/fnic/fnic_res.h | 14 +-
drivers/scsi/fnic/fnic_scsi.c | 28 +-
drivers/scsi/fnic/fnic_stats.h | 18 +-
drivers/scsi/fnic/fnic_trace.c | 18 +-
drivers/scsi/fnic/fnic_trace.h | 18 +-
drivers/scsi/fnic/rq_enet_desc.h | 14 +-
drivers/scsi/fnic/vnic_cq.c | 14 +-
drivers/scsi/fnic/vnic_cq.h | 14 +-
drivers/scsi/fnic/vnic_cq_copy.h | 14 +-
drivers/scsi/fnic/vnic_dev.c | 14 +-
drivers/scsi/fnic/vnic_dev.h | 14 +-
drivers/scsi/fnic/vnic_devcmd.h | 14 +-
drivers/scsi/fnic/vnic_intr.c | 14 +-
drivers/scsi/fnic/vnic_intr.h | 14 +-
drivers/scsi/fnic/vnic_nic.h | 14 +-
drivers/scsi/fnic/vnic_resource.h | 14 +-
drivers/scsi/fnic/vnic_rq.c | 15 +-
drivers/scsi/fnic/vnic_rq.h | 14 +-
drivers/scsi/fnic/vnic_scsi.h | 14 +-
drivers/scsi/fnic/vnic_stats.h | 14 +-
drivers/scsi/fnic/vnic_wq.c | 14 +-
drivers/scsi/fnic/vnic_wq.h | 14 +-
drivers/scsi/fnic/vnic_wq_copy.c | 15 +-
drivers/scsi/fnic/vnic_wq_copy.h | 14 +-
drivers/scsi/fnic/wq_enet_desc.h | 14 +-
drivers/scsi/gvp11.c | 95 +-
drivers/scsi/hisi_sas/hisi_sas_main.c | 49 +-
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 2 -
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 6 +-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 23 +-
drivers/scsi/hosts.c | 41 +-
drivers/scsi/ibmvscsi/ibmvfc.c | 82 +-
drivers/scsi/ibmvscsi/ibmvfc.h | 2 +-
drivers/scsi/ipr.c | 4 +-
drivers/scsi/iscsi_tcp.c | 74 +-
drivers/scsi/iscsi_tcp.h | 2 +
drivers/scsi/libiscsi.c | 313 +-
drivers/scsi/libiscsi_tcp.c | 6 +-
drivers/scsi/libsas/sas_expander.c | 67 +-
drivers/scsi/libsas/sas_init.c | 4 +
drivers/scsi/libsas/sas_internal.h | 2 +-
drivers/scsi/lpfc/lpfc.h | 11 +-
drivers/scsi/lpfc/lpfc_attr.c | 27 +-
drivers/scsi/lpfc/lpfc_bsg.c | 324 -
drivers/scsi/lpfc/lpfc_bsg.h | 14 +-
drivers/scsi/lpfc/lpfc_crtn.h | 6 +-
drivers/scsi/lpfc/lpfc_ct.c | 2 +-
drivers/scsi/lpfc/lpfc_debugfs.c | 22 +-
drivers/scsi/lpfc/lpfc_els.c | 53 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 60 +-
drivers/scsi/lpfc/lpfc_hw.h | 10 -
drivers/scsi/lpfc/lpfc_hw4.h | 4 +-
drivers/scsi/lpfc/lpfc_ids.h | 4 +-
drivers/scsi/lpfc/lpfc_init.c | 23 +-
drivers/scsi/lpfc/lpfc_nportdisc.c | 3 +-
drivers/scsi/lpfc/lpfc_nvme.c | 53 +-
drivers/scsi/lpfc/lpfc_nvmet.c | 54 +-
drivers/scsi/lpfc/lpfc_scsi.c | 7 +-
drivers/scsi/lpfc/lpfc_sli.c | 63 +-
drivers/scsi/lpfc/lpfc_sli.h | 1 -
drivers/scsi/lpfc/lpfc_version.h | 2 +-
drivers/scsi/megaraid/megaraid_mbox.c | 2 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 7 +-
drivers/scsi/megaraid/megaraid_sas_fusion.c | 3 +-
drivers/scsi/mesh.c | 7 +-
drivers/scsi/mpi3mr/mpi3mr.h | 73 +-
drivers/scsi/mpi3mr/mpi3mr_fw.c | 67 +
drivers/scsi/mpi3mr/mpi3mr_os.c | 307 +-
drivers/scsi/mpt3sas/mpt3sas_base.c | 31 +-
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 4 +-
drivers/scsi/pm8001/pm8001_hwi.c | 26 +-
drivers/scsi/pm8001/pm8001_init.c | 75 +-
drivers/scsi/pm8001/pm8001_sas.c | 10 +-
drivers/scsi/pm8001/pm8001_sas.h | 3 +
drivers/scsi/pm8001/pm80xx_hwi.c | 52 +-
drivers/scsi/pmcraid.c | 2 +-
drivers/scsi/qedi/qedi_main.c | 11 +-
drivers/scsi/qla2xxx/qla_attr.c | 29 +-
drivers/scsi/qla2xxx/qla_bsg.c | 96 +-
drivers/scsi/qla2xxx/qla_bsg.h | 15 +
drivers/scsi/qla2xxx/qla_dbg.h | 2 +-
drivers/scsi/qla2xxx/qla_def.h | 36 +-
drivers/scsi/qla2xxx/qla_edif.c | 585 +-
drivers/scsi/qla2xxx/qla_edif.h | 7 +-
drivers/scsi/qla2xxx/qla_edif_bsg.h | 106 +-
drivers/scsi/qla2xxx/qla_fw.h | 2 +-
drivers/scsi/qla2xxx/qla_gbl.h | 13 +-
drivers/scsi/qla2xxx/qla_gs.c | 131 +-
drivers/scsi/qla2xxx/qla_init.c | 96 +-
drivers/scsi/qla2xxx/qla_iocb.c | 5 +-
drivers/scsi/qla2xxx/qla_isr.c | 138 +-
drivers/scsi/qla2xxx/qla_mbx.c | 67 +-
drivers/scsi/qla2xxx/qla_mid.c | 6 +-
drivers/scsi/qla2xxx/qla_nvme.c | 5 -
drivers/scsi/qla2xxx/qla_os.c | 103 +-
drivers/scsi/qla2xxx/qla_target.c | 35 +-
drivers/scsi/qla2xxx/qla_version.h | 4 +-
drivers/scsi/scsi.c | 9 +-
drivers/scsi/scsi_debug.c | 22 +-
drivers/scsi/scsi_error.c | 26 +-
drivers/scsi/scsi_ioctl.c | 2 +-
drivers/scsi/scsi_lib.c | 44 +-
drivers/scsi/scsi_priv.h | 4 +-
drivers/scsi/scsi_scan.c | 9 +
drivers/scsi/scsi_sysfs.c | 31 +-
drivers/scsi/scsi_transport_iscsi.c | 105 +-
drivers/scsi/scsi_transport_sas.c | 6 +
drivers/scsi/sd.c | 103 +-
drivers/scsi/sd.h | 5 +
drivers/scsi/sd_zbc.c | 12 +-
drivers/scsi/sg.c | 53 +-
drivers/scsi/smartpqi/Kconfig | 2 +-
drivers/scsi/smartpqi/smartpqi.h | 27 +-
drivers/scsi/smartpqi/smartpqi_init.c | 405 +-
drivers/scsi/smartpqi/smartpqi_sas_transport.c | 2 +-
drivers/scsi/smartpqi/smartpqi_sis.c | 11 +-
drivers/scsi/smartpqi/smartpqi_sis.h | 4 +-
drivers/scsi/snic/cq_desc.h | 18 +-
drivers/scsi/snic/cq_enet_desc.h | 18 +-
drivers/scsi/snic/snic.h | 18 +-
drivers/scsi/snic/snic_attrs.c | 18 +-
drivers/scsi/snic/snic_ctl.c | 18 +-
drivers/scsi/snic/snic_debugfs.c | 18 +-
drivers/scsi/snic/snic_disc.c | 18 +-
drivers/scsi/snic/snic_disc.h | 18 +-
drivers/scsi/snic/snic_fwint.h | 20 +-
drivers/scsi/snic/snic_io.c | 18 +-
drivers/scsi/snic/snic_io.h | 18 +-
drivers/scsi/snic/snic_isr.c | 18 +-
drivers/scsi/snic/snic_main.c | 18 +-
drivers/scsi/snic/snic_res.c | 18 +-
drivers/scsi/snic/snic_res.h | 18 +-
drivers/scsi/snic/snic_scsi.c | 18 +-
drivers/scsi/snic/snic_stats.h | 18 +-
drivers/scsi/snic/snic_trc.c | 18 +-
drivers/scsi/snic/snic_trc.h | 18 +-
drivers/scsi/snic/vnic_cq.c | 18 +-
drivers/scsi/snic/vnic_cq.h | 18 +-
drivers/scsi/snic/vnic_cq_fw.h | 18 +-
drivers/scsi/snic/vnic_dev.c | 18 +-
drivers/scsi/snic/vnic_dev.h | 18 +-
drivers/scsi/snic/vnic_devcmd.h | 18 +-
drivers/scsi/snic/vnic_intr.c | 18 +-
drivers/scsi/snic/vnic_intr.h | 18 +-
drivers/scsi/snic/vnic_resource.h | 18 +-
drivers/scsi/snic/vnic_snic.h | 18 +-
drivers/scsi/snic/vnic_stats.h | 18 +-
drivers/scsi/snic/vnic_wq.c | 18 +-
drivers/scsi/snic/vnic_wq.h | 18 +-
drivers/scsi/snic/wq_enet_desc.h | 18 +-
drivers/scsi/sr.c | 4 +-
drivers/scsi/storvsc_drv.c | 27 +-
drivers/scsi/sym53c8xx_2/sym_hipd.c | 2 +-
drivers/scsi/vmw_pvscsi.h | 4 +-
drivers/sh/intc/chip.c | 2 +-
drivers/slimbus/core.c | 6 +-
drivers/slimbus/messaging.c | 4 +-
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
drivers/soc/amlogic/meson-mx-socinfo.c | 1 +
drivers/soc/amlogic/meson-secure-pwrc.c | 4 +-
drivers/soc/atmel/soc.c | 12 +-
drivers/soc/bcm/bcm2835-power.c | 72 +-
drivers/soc/bcm/brcmstb/biuctrl.c | 9 +-
drivers/soc/bcm/brcmstb/pm/pm-arm.c | 3 +-
drivers/soc/fsl/guts.c | 221 +-
drivers/soc/fujitsu/Kconfig | 16 +
drivers/soc/fujitsu/Makefile | 3 +
drivers/soc/fujitsu/a64fx-diag.c | 154 +
drivers/soc/imx/gpcv2.c | 8 +-
drivers/soc/imx/imx8m-blk-ctrl.c | 11 +-
drivers/soc/ixp4xx/ixp4xx-npe.c | 2 +-
drivers/soc/mediatek/Kconfig | 10 +
drivers/soc/mediatek/Makefile | 1 +
drivers/soc/mediatek/mt6795-pm-domains.h | 112 +
drivers/soc/mediatek/mt8183-pm-domains.h | 1 +
drivers/soc/mediatek/mt8186-pm-domains.h | 2 +-
drivers/soc/mediatek/mt8192-pm-domains.h | 2 +
drivers/soc/mediatek/mt8195-pm-domains.h | 4 +-
drivers/soc/mediatek/mt8365-mmsys.h | 22 +
drivers/soc/mediatek/mtk-devapc.c | 45 +-
drivers/soc/mediatek/mtk-mutex.c | 155 +-
drivers/soc/mediatek/mtk-pm-domains.c | 8 +
drivers/soc/mediatek/mtk-pm-domains.h | 2 +
drivers/soc/mediatek/mtk-pmic-wrap.c | 225 +-
drivers/soc/mediatek/mtk-svs.c | 2403 +
drivers/soc/qcom/Kconfig | 18 +
drivers/soc/qcom/Makefile | 1 +
drivers/soc/qcom/apr.c | 15 +-
drivers/soc/qcom/cmd-db.c | 8 +-
drivers/soc/qcom/icc-bwmon.c | 419 +
drivers/soc/qcom/llcc-qcom.c | 2 +-
drivers/soc/qcom/mdt_loader.c | 4 +-
drivers/soc/qcom/ocmem.c | 3 +
drivers/soc/qcom/qcom-geni-se.c | 3 +
drivers/soc/qcom/qcom_aoss.c | 4 +-
drivers/soc/qcom/rpmhpd.c | 4 +-
drivers/soc/qcom/rpmpd.c | 1 +
drivers/soc/qcom/smd-rpm.c | 1 +
drivers/soc/qcom/smem.c | 6 +-
drivers/soc/qcom/smp2p.c | 3 +
drivers/soc/qcom/socinfo.c | 4 +-
drivers/soc/qcom/spm.c | 14 +
drivers/soc/renesas/r8a779a0-sysc.c | 10 +-
drivers/soc/renesas/rcar-gen4-sysc.h | 4 +-
drivers/soc/renesas/rcar-sysc.h | 4 +-
drivers/soc/sunxi/Kconfig | 1 +
drivers/soc/tegra/common.c | 49 +-
drivers/soc/tegra/pmc.c | 4 +-
drivers/soc/ti/knav_dma.c | 10 +-
drivers/soc/ti/pruss.c | 1 +
drivers/soc/ti/wkup_m3_ipc.c | 2 +-
drivers/soc/xilinx/xlnx_event_manager.c | 5 +-
drivers/soundwire/bus.c | 75 +-
drivers/soundwire/bus_type.c | 38 +-
drivers/soundwire/intel.c | 32 +-
drivers/soundwire/qcom.c | 32 +-
drivers/soundwire/slave.c | 120 +-
drivers/soundwire/stream.c | 53 +-
drivers/spi/Kconfig | 18 +-
drivers/spi/Makefile | 2 +
drivers/spi/atmel-quadspi.c | 104 +-
drivers/spi/spi-altera-dfl.c | 14 +-
drivers/spi/spi-amd.c | 53 +-
drivers/spi/spi-armada-3700.c | 4 +-
drivers/spi/spi-aspeed-smc.c | 12 +-
drivers/spi/spi-atmel.c | 15 +-
drivers/spi/spi-bcm2835.c | 20 +-
drivers/spi/spi-cadence-quadspi.c | 19 +-
drivers/spi/spi-cadence.c | 37 +-
drivers/spi/spi-dw-core.c | 10 +-
drivers/spi/spi-dw-dma.c | 25 +-
drivers/spi/spi-dw-mmio.c | 8 +-
drivers/spi/spi-dw.h | 13 +-
drivers/spi/spi-fsi.c | 19 +-
drivers/spi/spi-gxp.c | 325 +
drivers/spi/spi-intel-pci.c | 1 +
drivers/spi/spi-intel.c | 4 +-
drivers/spi/spi-mem.c | 2 +-
drivers/spi/spi-microchip-core.c | 617 +
drivers/spi/spi-mpc52xx-psc.c | 116 +-
drivers/spi/spi-mpc52xx.c | 2 +-
drivers/spi/spi-npcm-fiu.c | 28 +-
drivers/spi/spi-pxa2xx.c | 4 +
drivers/spi/spi-rockchip.c | 11 +-
drivers/spi/spi-rspi.c | 4 +
drivers/spi/spi-s3c64xx.c | 123 +-
drivers/spi/spi-sh.c | 94 +-
drivers/spi/spi-sifive.c | 39 +
drivers/spi/spi-stm32-qspi.c | 18 +-
drivers/spi/spi-synquacer.c | 1 +
drivers/spi/spi-tegra20-slink.c | 3 +-
drivers/spi/spi-tegra210-quad.c | 33 +-
drivers/spi/spi-ti-qspi.c | 75 +-
drivers/spi/spi-topcliff-pch.c | 30 +-
drivers/spi/spi-zynqmp-gqspi.c | 25 +-
drivers/spi/spi.c | 575 +-
drivers/spmi/spmi.c | 17 +
drivers/staging/Kconfig | 2 -
drivers/staging/Makefile | 1 -
drivers/staging/fbtft/fb_ssd1351.c | 3 +-
drivers/staging/fbtft/fbtft-core.c | 5 +-
drivers/staging/gdm724x/gdm_tty.c | 6 -
drivers/staging/greybus/audio_helper.c | 14 +-
drivers/staging/greybus/fw-management.c | 6 +-
drivers/staging/greybus/loopback.c | 2 +-
drivers/staging/media/Kconfig | 12 +-
drivers/staging/media/Makefile | 1 +
drivers/staging/media/atomisp/Makefile | 3 -
.../staging/media/atomisp/i2c/atomisp-mt9m114.c | 4 +-
drivers/staging/media/atomisp/i2c/atomisp-ov2722.c | 20 +-
drivers/staging/media/atomisp/i2c/ov5693/ov5693.h | 2 +-
drivers/staging/media/atomisp/include/hmm/hmm.h | 32 +-
drivers/staging/media/atomisp/include/hmm/hmm_bo.h | 37 +-
.../staging/media/atomisp/include/hmm/hmm_common.h | 26 -
.../staging/media/atomisp/include/hmm/hmm_pool.h | 116 -
.../staging/media/atomisp/include/linux/atomisp.h | 146 -
drivers/staging/media/atomisp/notes.txt | 30 +
drivers/staging/media/atomisp/pci/atomisp_acc.c | 625 -
drivers/staging/media/atomisp/pci/atomisp_acc.h | 120 -
drivers/staging/media/atomisp/pci/atomisp_cmd.c | 92 +-
drivers/staging/media/atomisp/pci/atomisp_compat.h | 29 +-
.../media/atomisp/pci/atomisp_compat_css20.c | 365 +-
.../media/atomisp/pci/atomisp_compat_ioctl32.h | 58 -
drivers/staging/media/atomisp/pci/atomisp_drvfs.c | 7 +-
drivers/staging/media/atomisp/pci/atomisp_fops.c | 13 -
.../media/atomisp/pci/atomisp_gmin_platform.c | 27 +-
drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 73 +-
drivers/staging/media/atomisp/pci/atomisp_ioctl.h | 1 -
drivers/staging/media/atomisp/pci/atomisp_subdev.c | 3 -
drivers/staging/media/atomisp/pci/atomisp_subdev.h | 10 -
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 32 -
.../pci/hive_isp_css_include/host/debug_public.h | 2 +-
drivers/staging/media/atomisp/pci/hmm/hmm.c | 202 +-
drivers/staging/media/atomisp/pci/hmm/hmm_bo.c | 261 +-
.../media/atomisp/pci/hmm/hmm_dynamic_pool.c | 234 -
.../media/atomisp/pci/hmm/hmm_reserved_pool.c | 253 -
.../media/atomisp/pci/ia_css_frame_public.h | 40 -
.../isp/kernels/sdis/sdis_1.0/ia_css_sdis.host.c | 2 +-
.../isp/kernels/sdis/sdis_2/ia_css_sdis2.host.c | 2 +-
.../atomisp/pci/isp/modes/interface/isp_const.h | 6 -
.../atomisp/pci/runtime/debug/src/ia_css_debug.c | 2 -
.../pci/runtime/frame/interface/ia_css_frame.h | 7 +-
.../media/atomisp/pci/runtime/frame/src/frame.c | 110 +-
.../atomisp/pci/runtime/isp_param/src/isp_param.c | 2 +-
.../media/atomisp/pci/runtime/rmgr/src/rmgr_vbuf.c | 23 +-
.../media/atomisp/pci/runtime/spctrl/src/spctrl.c | 2 +-
drivers/staging/media/atomisp/pci/sh_css.c | 8 +-
.../staging/media/atomisp/pci/sh_css_firmware.c | 2 +-
drivers/staging/media/atomisp/pci/sh_css_mipi.c | 3 +-
drivers/staging/media/atomisp/pci/sh_css_params.c | 47 +-
drivers/staging/media/av7110/av7110.c | 2 +-
drivers/staging/media/hantro/hantro.h | 4 +
drivers/staging/media/hantro/hantro_drv.c | 58 +-
drivers/staging/media/hantro/hantro_g2_hevc_dec.c | 44 +-
drivers/staging/media/hantro/hantro_g2_regs.h | 2 +-
drivers/staging/media/hantro/hantro_g2_vp9_dec.c | 18 +-
drivers/staging/media/hantro/hantro_hevc.c | 33 +-
drivers/staging/media/hantro/hantro_hw.h | 18 +-
drivers/staging/media/hantro/hantro_postproc.c | 38 +-
drivers/staging/media/hantro/hantro_v4l2.c | 52 +-
drivers/staging/media/hantro/hantro_v4l2.h | 3 +
drivers/staging/media/hantro/imx8m_vpu_hw.c | 80 +-
drivers/staging/media/hantro/rockchip_vpu_hw.c | 189 +-
drivers/staging/media/hantro/sama5d4_vdec_hw.c | 40 +-
drivers/staging/media/hantro/sunxi_vpu_hw.c | 51 +-
drivers/staging/media/imx/imx-media-dev-common.c | 2 +-
drivers/staging/media/imx/imx-media-utils.c | 2 +-
drivers/staging/media/imx/imx7-media-csi.c | 1607 +-
drivers/staging/media/omap4iss/iss.c | 6 +-
drivers/staging/media/omap4iss/iss_csi2.c | 2 +-
drivers/staging/media/omap4iss/iss_video.c | 2 +-
drivers/staging/media/rkvdec/rkvdec-h264.c | 41 +-
drivers/staging/media/rkvdec/rkvdec-vp9.c | 12 +-
.../{media/usb => staging/media}/stkwebcam/Kconfig | 8 +-
.../usb => staging/media}/stkwebcam/Makefile | 2 +-
drivers/staging/media/stkwebcam/TODO | 12 +
.../usb => staging/media}/stkwebcam/stk-sensor.c | 0
.../usb => staging/media}/stkwebcam/stk-webcam.c | 0
.../usb => staging/media}/stkwebcam/stk-webcam.h | 0
drivers/staging/media/sunxi/cedrus/cedrus.c | 54 +-
drivers/staging/media/sunxi/cedrus/cedrus.h | 7 +-
drivers/staging/media/sunxi/cedrus/cedrus_dec.c | 37 +-
drivers/staging/media/sunxi/cedrus/cedrus_h264.c | 5 +-
drivers/staging/media/sunxi/cedrus/cedrus_h265.c | 180 +-
drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c | 4 +-
drivers/staging/media/sunxi/cedrus/cedrus_regs.h | 3 +-
drivers/staging/media/sunxi/cedrus/cedrus_video.c | 1 -
drivers/staging/media/sunxi/cedrus/cedrus_vp8.c | 5 +-
drivers/staging/media/tegra-video/vi.c | 4 +-
drivers/staging/media/zoran/videocodec.c | 93 +-
drivers/staging/media/zoran/videocodec.h | 15 +
drivers/staging/media/zoran/zoran.h | 14 +
drivers/staging/media/zoran/zr36016.c | 91 +-
drivers/staging/media/zoran/zr36050.c | 144 +-
drivers/staging/media/zoran/zr36060.c | 97 +-
drivers/staging/octeon-usb/Kconfig | 11 -
drivers/staging/octeon-usb/Makefile | 2 -
drivers/staging/octeon-usb/TODO | 8 -
drivers/staging/octeon/ethernet-rx.c | 4 +-
drivers/staging/olpc_dcon/Kconfig | 2 +-
drivers/staging/olpc_dcon/olpc_dcon.c | 7 +-
drivers/staging/pi433/pi433_if.c | 2 +-
drivers/staging/qlge/qlge_main.c | 42 +-
drivers/staging/r8188eu/Makefile | 1 -
drivers/staging/r8188eu/core/rtw_ap.c | 23 +-
drivers/staging/r8188eu/core/rtw_cmd.c | 15 +-
drivers/staging/r8188eu/core/rtw_efuse.c | 61 +-
drivers/staging/r8188eu/core/rtw_fw.c | 78 +-
drivers/staging/r8188eu/core/rtw_ieee80211.c | 1 +
drivers/staging/r8188eu/core/rtw_ioctl_set.c | 1 -
drivers/staging/r8188eu/core/rtw_iol.c | 8 +-
drivers/staging/r8188eu/core/rtw_led.c | 43 +-
drivers/staging/r8188eu/core/rtw_mlme.c | 6 +-
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 464 +-
drivers/staging/r8188eu/core/rtw_p2p.c | 13 +-
drivers/staging/r8188eu/core/rtw_pwrctrl.c | 25 +-
drivers/staging/r8188eu/core/rtw_recv.c | 80 +-
drivers/staging/r8188eu/core/rtw_wlan_util.c | 145 +-
drivers/staging/r8188eu/core/rtw_xmit.c | 54 +-
drivers/staging/r8188eu/hal/Hal8188EPwrSeq.c | 45 -
drivers/staging/r8188eu/hal/Hal8188ERateAdaptive.c | 33 +-
drivers/staging/r8188eu/hal/HalPhyRf_8188e.c | 21 +-
drivers/staging/r8188eu/hal/HalPwrSeqCmd.c | 118 +-
drivers/staging/r8188eu/hal/hal_com.c | 66 +-
drivers/staging/r8188eu/hal/rtl8188e_cmd.c | 37 +-
drivers/staging/r8188eu/hal/rtl8188e_dm.c | 6 +-
drivers/staging/r8188eu/hal/rtl8188e_hal_init.c | 204 +-
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c | 30 +-
drivers/staging/r8188eu/hal/rtl8188eu_recv.c | 2 +-
drivers/staging/r8188eu/hal/usb_halinit.c | 476 +-
drivers/staging/r8188eu/hal/usb_ops_linux.c | 33 +-
drivers/staging/r8188eu/include/Hal8188EPwrSeq.h | 13 -
.../staging/r8188eu/include/Hal8188ERateAdaptive.h | 13 -
drivers/staging/r8188eu/include/HalPwrSeqCmd.h | 51 +-
drivers/staging/r8188eu/include/basic_types.h | 52 -
drivers/staging/r8188eu/include/hal_com.h | 3 -
drivers/staging/r8188eu/include/hal_intf.h | 20 +-
drivers/staging/r8188eu/include/ieee80211.h | 7 -
drivers/staging/r8188eu/include/osdep_service.h | 3 -
drivers/staging/r8188eu/include/rtl8188e_hal.h | 5 -
drivers/staging/r8188eu/include/rtl8188e_spec.h | 143 -
drivers/staging/r8188eu/include/rtw_eeprom.h | 10 -
drivers/staging/r8188eu/include/rtw_efuse.h | 2 -
drivers/staging/r8188eu/include/rtw_io.h | 8 +-
drivers/staging/r8188eu/include/rtw_iol.h | 24 +-
drivers/staging/r8188eu/include/rtw_led.h | 9 +-
drivers/staging/r8188eu/include/rtw_mlme_ext.h | 19 +-
drivers/staging/r8188eu/include/usb_ops_linux.h | 2 -
drivers/staging/r8188eu/os_dep/ioctl_linux.c | 85 +-
drivers/staging/r8188eu/os_dep/os_intfs.c | 19 +-
drivers/staging/r8188eu/os_dep/osdep_service.c | 8 -
drivers/staging/r8188eu/os_dep/usb_intf.c | 2 +-
drivers/staging/r8188eu/os_dep/usb_ops_linux.c | 2 +-
drivers/staging/r8188eu/os_dep/xmit_linux.c | 2 +-
drivers/staging/rtl8192e/rtllib_tx.c | 24 +-
drivers/staging/rtl8192e/rtllib_wx.c | 37 +-
drivers/staging/rtl8192u/r8192U.h | 2 +-
drivers/staging/rtl8192u/r8192U_dm.c | 40 +-
drivers/staging/rtl8192u/r8192U_dm.h | 2 +-
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 2 +-
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 233 +-
drivers/staging/rtl8723bs/os_dep/ioctl_linux.c | 6 +-
drivers/staging/rts5208/spi.c | 6 +-
drivers/staging/sm750fb/ddk750_dvi.c | 2 +-
drivers/staging/sm750fb/ddk750_power.h | 2 +-
drivers/staging/sm750fb/ddk750_sii164.c | 6 +-
drivers/staging/sm750fb/ddk750_sii164.h | 2 +-
.../vc04_services/bcm2835-audio/bcm2835-vchiq.c | 40 +-
.../include/linux/raspberrypi/vchiq.h | 48 +-
drivers/staging/vc04_services/interface/TESTING | 82 +
.../vc04_services/interface/vchiq_arm/vchiq_arm.c | 96 +-
.../vc04_services/interface/vchiq_arm/vchiq_arm.h | 8 +-
.../vc04_services/interface/vchiq_arm/vchiq_core.c | 106 +-
.../vc04_services/interface/vchiq_arm/vchiq_core.h | 38 +-
.../vc04_services/interface/vchiq_arm/vchiq_dev.c | 40 +-
.../staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 63 +-
drivers/staging/vme_user/Kconfig | 27 +
drivers/staging/vme_user/Makefile | 3 +
drivers/{vme => staging/vme_user}/vme.c | 2 +-
{include/linux => drivers/staging/vme_user}/vme.h | 0
drivers/{vme => staging/vme_user}/vme_bridge.h | 2 +-
.../{vme/bridges => staging/vme_user}/vme_fake.c | 4 +-
.../{vme/bridges => staging/vme_user}/vme_tsi148.c | 4 +-
.../{vme/bridges => staging/vme_user}/vme_tsi148.h | 0
drivers/staging/vme_user/vme_user.c | 2 +-
drivers/staging/vt6655/baseband.c | 10 +-
drivers/staging/vt6655/card.c | 103 +-
drivers/staging/vt6655/channel.c | 2 +-
drivers/staging/vt6655/device_main.c | 96 +-
drivers/staging/vt6655/mac.c | 55 +-
drivers/staging/vt6655/mac.h | 120 +-
drivers/staging/vt6655/power.c | 25 +-
drivers/staging/vt6655/rf.c | 20 +-
drivers/staging/vt6655/rxtx.c | 8 +-
drivers/staging/vt6655/srom.c | 2 +-
drivers/staging/vt6655/upc.h | 35 -
drivers/staging/vt6656/main_usb.c | 6 +-
drivers/staging/vt6656/rxtx.c | 2 +-
drivers/staging/wlan-ng/cfg80211.c | 2 +-
drivers/staging/wlan-ng/hfa384x_usb.c | 2 +-
drivers/target/iscsi/iscsi_target.c | 57 +-
drivers/target/iscsi/iscsi_target_auth.c | 122 +-
drivers/target/iscsi/iscsi_target_configfs.c | 113 +-
drivers/target/iscsi/iscsi_target_login.c | 17 +-
drivers/target/iscsi/iscsi_target_nego.c | 160 +-
drivers/target/iscsi/iscsi_target_nego.h | 3 +-
drivers/target/iscsi/iscsi_target_nodeattrib.c | 1 +
drivers/target/iscsi/iscsi_target_tpg.c | 3 +-
drivers/target/target_core_alua.c | 5 +-
drivers/target/target_core_configfs.c | 27 +-
drivers/target/target_core_device.c | 38 +-
drivers/target/target_core_file.c | 40 +-
drivers/target/target_core_iblock.c | 21 +-
drivers/target/target_core_pr.c | 28 +-
drivers/target/target_core_sbc.c | 105 +-
drivers/target/target_core_stat.c | 10 +-
drivers/target/target_core_xcopy.c | 2 +-
drivers/tee/optee/optee_smc.h | 2 +-
drivers/tee/optee/smc_abi.c | 4 +-
drivers/tee/tee_core.c | 2 +-
drivers/thermal/Kconfig | 4 +-
drivers/thermal/cpufreq_cooling.c | 96 +-
drivers/thermal/db8500_thermal.c | 34 +-
drivers/thermal/devfreq_cooling.c | 46 +-
drivers/thermal/gov_fair_share.c | 6 +-
drivers/thermal/gov_power_allocator.c | 4 +-
drivers/thermal/gov_step_wise.c | 26 +-
drivers/thermal/hisi_thermal.c | 10 +-
drivers/thermal/intel/intel_pch_thermal.c | 8 -
drivers/thermal/intel/intel_tcc_cooling.c | 3 +
drivers/thermal/intel/x86_pkg_temp_thermal.c | 2 +-
drivers/thermal/k3_j72xx_bandgap.c | 13 +-
drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 5 +
drivers/thermal/qcom/qcom-spmi-temp-alarm.c | 5 +
drivers/thermal/qcom/tsens.c | 12 -
drivers/thermal/qcom/tsens.h | 2 -
drivers/thermal/rcar_gen3_thermal.c | 8 +-
drivers/thermal/rzg2l_thermal.c | 18 +-
drivers/thermal/sun8i_thermal.c | 2 +-
drivers/thermal/tegra/soctherm.c | 32 -
drivers/thermal/tegra/tegra30-tsensor.c | 2 +-
drivers/thermal/thermal_core.c | 79 +-
drivers/thermal/thermal_core.h | 15 -
drivers/thermal/thermal_helpers.c | 13 +-
drivers/thermal/thermal_netlink.c | 2 +-
drivers/thermal/thermal_of.c | 201 +-
drivers/thermal/thermal_sysfs.c | 32 +-
drivers/thermal/ti-soc-thermal/ti-bandgap.c | 2 +-
drivers/thunderbolt/Kconfig | 6 +-
drivers/thunderbolt/acpi.c | 29 +-
drivers/thunderbolt/ctl.c | 6 +-
drivers/thunderbolt/ctl.h | 2 +-
drivers/thunderbolt/domain.c | 3 -
drivers/thunderbolt/icm.c | 2 +
drivers/thunderbolt/nhi.c | 4 +
drivers/thunderbolt/nhi.h | 2 +
drivers/thunderbolt/switch.c | 91 +-
drivers/thunderbolt/tb.c | 68 +-
drivers/thunderbolt/tb.h | 56 +-
drivers/thunderbolt/tb_regs.h | 6 +
drivers/thunderbolt/test.c | 12 +-
drivers/thunderbolt/tmu.c | 221 +-
drivers/tty/amiserial.c | 20 +-
drivers/tty/goldfish.c | 2 +-
drivers/tty/mips_ejtag_fdc.c | 4 +-
drivers/tty/n_gsm.c | 759 +-
drivers/tty/n_tty.c | 92 +-
drivers/tty/pty.c | 14 +-
drivers/tty/serial/8250/8250.h | 24 +-
drivers/tty/serial/8250/8250_bcm2835aux.c | 7 +-
drivers/tty/serial/8250/8250_bcm7271.c | 24 +-
drivers/tty/serial/8250/8250_core.c | 12 +-
drivers/tty/serial/8250/8250_dma.c | 6 +-
drivers/tty/serial/8250/8250_dw.c | 94 +-
drivers/tty/serial/8250/8250_dwlib.c | 152 +-
drivers/tty/serial/8250/8250_early.c | 4 +-
drivers/tty/serial/8250/8250_exar.c | 25 +-
drivers/tty/serial/8250/8250_fintek.c | 31 +-
drivers/tty/serial/8250/8250_fsl.c | 4 +-
drivers/tty/serial/8250/8250_ingenic.c | 2 +-
drivers/tty/serial/8250/8250_lpc18xx.c | 28 +-
drivers/tty/serial/8250/8250_lpss.c | 2 +-
drivers/tty/serial/8250/8250_of.c | 1 +
drivers/tty/serial/8250/8250_omap.c | 7 +-
drivers/tty/serial/8250/8250_pci.c | 135 +-
drivers/tty/serial/8250/8250_pericom.c | 2 +-
drivers/tty/serial/8250/8250_port.c | 165 +-
drivers/tty/serial/8250/Kconfig | 1 +
drivers/tty/serial/Kconfig | 22 +-
drivers/tty/serial/Makefile | 1 -
drivers/tty/serial/amba-pl011.c | 38 +-
drivers/tty/serial/ar933x_uart.c | 27 +-
drivers/tty/serial/atmel_serial.c | 103 +-
drivers/tty/serial/earlycon.c | 3 +
drivers/tty/serial/fsl_lpuart.c | 67 +-
drivers/tty/serial/imx.c | 21 +-
drivers/tty/serial/kgdboc.c | 2 +-
drivers/tty/serial/max310x.c | 272 +-
drivers/tty/serial/mcf.c | 10 +-
drivers/tty/serial/meson_uart.c | 2 +-
drivers/tty/serial/mpc52xx_uart.c | 4 +-
drivers/tty/serial/msm_serial.c | 550 +-
drivers/tty/serial/mux.c | 6 -
drivers/tty/serial/mvebu-uart.c | 36 +-
drivers/tty/serial/omap-serial.c | 18 +-
drivers/tty/serial/owl-uart.c | 2 +-
drivers/tty/serial/pch_uart.c | 7 +-
drivers/tty/serial/pic32_uart.c | 4 +-
drivers/tty/serial/pmac_zilog.c | 1 -
drivers/tty/serial/pxa.c | 5 +-
drivers/tty/serial/qcom_geni_serial.c | 92 +-
drivers/tty/serial/rda-uart.c | 2 +-
drivers/tty/serial/samsung_tty.c | 95 +-
drivers/tty/serial/sc16is7xx.c | 10 +-
drivers/tty/serial/serial-tegra.c | 5 +-
drivers/tty/serial/serial_core.c | 466 +-
drivers/tty/serial/serial_mctrl_gpio.c | 48 +
drivers/tty/serial/sifive.c | 10 -
drivers/tty/serial/st-asc.c | 1 -
drivers/tty/serial/stm32-usart.c | 81 +-
drivers/tty/serial/stm32-usart.h | 68 -
drivers/tty/serial/sunsu.c | 4 +-
drivers/tty/serial/ucc_uart.c | 2 +
drivers/tty/serial/vr41xx_siu.c | 934 -
drivers/tty/sysrq.c | 2 -
drivers/tty/tty.h | 3 +
drivers/tty/tty_buffer.c | 105 +-
drivers/tty/tty_io.c | 2 +-
drivers/tty/tty_ioctl.c | 4 +
drivers/tty/tty_port.c | 21 +
drivers/tty/vt/Makefile | 2 +-
drivers/tty/vt/consolemap.c | 684 +-
drivers/tty/vt/defkeymap.c_shipped | 6 +-
drivers/tty/vt/selection.c | 3 +-
drivers/tty/vt/vt.c | 18 +-
drivers/ufs/core/ufshcd-priv.h | 6 +-
drivers/ufs/core/ufshcd.c | 233 +-
drivers/ufs/core/ufshpb.c | 7 +-
drivers/ufs/host/Kconfig | 12 +
drivers/ufs/host/Makefile | 1 +
drivers/ufs/host/ufs-exynos.c | 182 +-
drivers/ufs/host/ufs-exynos.h | 1 +
drivers/ufs/host/ufs-mediatek.c | 324 +-
drivers/ufs/host/ufs-mediatek.h | 74 +
drivers/ufs/host/ufs-qcom.c | 23 -
drivers/ufs/host/ufs-renesas.c | 412 +
drivers/ufs/host/ufshcd-pci.c | 18 +-
drivers/ufs/host/ufshcd-pltfrm.c | 28 +-
drivers/ufs/host/ufshcd-pltfrm.h | 6 +-
drivers/uio/uio_pruss.c | 10 +-
drivers/usb/atm/ueagle-atm.c | 2 +-
drivers/usb/cdns3/cdns3-gadget.c | 15 +-
drivers/usb/cdns3/cdnsp-ring.c | 19 +-
drivers/usb/chipidea/ci.h | 1 +
drivers/usb/chipidea/ci_hdrc_imx.c | 23 +-
drivers/usb/chipidea/ci_hdrc_imx.h | 2 +-
drivers/usb/chipidea/core.c | 2 +
drivers/usb/chipidea/otg_fsm.c | 2 +-
drivers/usb/chipidea/trace.h | 4 +-
drivers/usb/chipidea/udc.c | 17 +
drivers/usb/class/cdc-acm.c | 44 +-
drivers/usb/class/cdc-acm.h | 20 -
drivers/usb/common/usb-conn-gpio.c | 17 +
drivers/usb/core/Makefile | 4 +
drivers/usb/core/driver.c | 2 +-
drivers/usb/core/hcd.c | 51 +-
drivers/usb/core/hub.c | 108 +-
drivers/usb/core/hub.h | 4 +
drivers/usb/core/port.c | 83 +
drivers/usb/core/sysfs.c | 79 +-
drivers/usb/core/usb-acpi.c | 18 +-
drivers/usb/core/usb.c | 2 +-
drivers/usb/dwc2/gadget.c | 3 +-
drivers/usb/dwc2/hcd.c | 7 +-
drivers/usb/dwc3/Kconfig | 4 +-
drivers/usb/dwc3/core.c | 65 +-
drivers/usb/dwc3/core.h | 3 +
drivers/usb/dwc3/dwc3-am62.c | 8 +-
drivers/usb/dwc3/dwc3-pci.c | 1 +
drivers/usb/dwc3/dwc3-qcom.c | 144 +-
drivers/usb/dwc3/ep0.c | 9 +-
drivers/usb/dwc3/gadget.c | 123 +-
drivers/usb/gadget/function/f_acm.c | 20 +-
drivers/usb/gadget/function/f_fs.c | 40 +-
drivers/usb/gadget/function/f_mass_storage.c | 36 +-
drivers/usb/gadget/function/f_uvc.c | 30 +-
drivers/usb/gadget/function/storage_common.c | 15 +
drivers/usb/gadget/function/storage_common.h | 2 +
drivers/usb/gadget/function/u_ether.c | 13 +-
drivers/usb/gadget/function/uvc_configfs.c | 6 +-
drivers/usb/gadget/function/uvc_queue.c | 23 +-
drivers/usb/gadget/function/uvc_video.c | 17 +-
drivers/usb/gadget/legacy/inode.c | 1 +
drivers/usb/gadget/legacy/raw_gadget.c | 63 +-
drivers/usb/gadget/udc/Kconfig | 19 +-
drivers/usb/gadget/udc/Makefile | 1 +
drivers/usb/gadget/udc/aspeed-vhub/hub.c | 4 +-
drivers/usb/gadget/udc/aspeed_udc.c | 1597 +
drivers/usb/gadget/udc/atmel_usba_udc.c | 10 +-
drivers/usb/gadget/udc/bdc/bdc_cmd.c | 2 +-
drivers/usb/gadget/udc/core.c | 11 +-
drivers/usb/gadget/udc/lpc32xx_udc.c | 1 +
drivers/usb/gadget/udc/tegra-xudc.c | 8 +-
drivers/usb/gadget/udc/trace.h | 8 +-
drivers/usb/host/Kconfig | 10 +
drivers/usb/host/Makefile | 1 +
drivers/usb/host/ehci-fsl.c | 11 +-
drivers/usb/host/ehci-platform.c | 2 +
drivers/usb/host/ehci-ppc-of.c | 1 +
drivers/usb/host/ehci-q.c | 2 +-
drivers/usb/host/fsl-mph-dr-of.c | 3 +
drivers/usb/host/max3421-hcd.c | 2 +-
.../{staging/octeon-usb => usb/host}/octeon-hcd.c | 0
.../{staging/octeon-usb => usb/host}/octeon-hcd.h | 0
drivers/usb/host/ohci-at91.c | 69 +-
drivers/usb/host/ohci-nxp.c | 1 +
drivers/usb/host/ohci-platform.c | 3 +
drivers/usb/host/ohci-ppc-of.c | 1 +
drivers/usb/host/ohci-sa1111.c | 25 +
drivers/usb/host/ohci-sm501.c | 2 +-
drivers/usb/host/uhci-grlib.c | 2 +-
drivers/usb/host/uhci-hcd.h | 2 +-
drivers/usb/host/xhci-hub.c | 2 +-
drivers/usb/host/xhci-mtk.c | 7 +
drivers/usb/host/xhci-pci-renesas.c | 4 -
drivers/usb/host/xhci-pci.c | 6 +-
drivers/usb/host/xhci-ring.c | 2 +-
drivers/usb/host/xhci-tegra.c | 8 +-
drivers/usb/host/xhci-trace.h | 4 +-
drivers/usb/host/xhci.c | 65 +-
drivers/usb/host/xhci.h | 4 +-
drivers/usb/image/mdc800.c | 2 +-
drivers/usb/misc/Kconfig | 16 +
drivers/usb/misc/Makefile | 1 +
drivers/usb/misc/ldusb.c | 6 +-
drivers/usb/misc/onboard_usb_hub.c | 458 +
drivers/usb/misc/onboard_usb_hub.h | 36 +
drivers/usb/misc/onboard_usb_hub_pdevs.c | 143 +
drivers/usb/misc/sisusbvga/sisusb_con.c | 2 +-
drivers/usb/misc/usbsevseg.c | 2 +-
drivers/usb/misc/usbtest.c | 2 +-
drivers/usb/mtu3/mtu3.h | 5 +-
drivers/usb/mtu3/mtu3_core.c | 35 +-
drivers/usb/mtu3/mtu3_debugfs.c | 8 +-
drivers/usb/mtu3/mtu3_gadget.c | 38 +-
drivers/usb/mtu3/mtu3_gadget_ep0.c | 10 +-
drivers/usb/mtu3/mtu3_hw_regs.h | 16 +
drivers/usb/mtu3/mtu3_plat.c | 43 +-
drivers/usb/mtu3/mtu3_trace.h | 10 +-
drivers/usb/musb/Kconfig | 13 +-
drivers/usb/musb/Makefile | 1 +
drivers/usb/musb/mpfs.c | 269 +
drivers/usb/musb/musb_core.c | 16 +-
drivers/usb/musb/musb_cppi41.c | 2 +-
drivers/usb/musb/musb_gadget.c | 2 -
drivers/usb/musb/musb_trace.h | 4 +-
drivers/usb/musb/tusb6010.c | 2 +-
drivers/usb/phy/phy-keystone.c | 2 +-
drivers/usb/renesas_usbhs/rza.c | 4 +
drivers/usb/serial/cypress_m8.c | 2 +-
drivers/usb/serial/ftdi_sio.c | 3 +
drivers/usb/serial/ftdi_sio_ids.h | 6 +
drivers/usb/serial/garmin_gps.c | 4 +-
drivers/usb/serial/io_edgeport.c | 4 +-
drivers/usb/serial/io_ti.c | 2 +
drivers/usb/serial/io_usbvend.h | 1 +
drivers/usb/serial/mos7720.c | 2 +-
drivers/usb/serial/opticon.c | 4 +-
drivers/usb/serial/option.c | 12 +
drivers/usb/serial/pl2303.c | 29 +-
drivers/usb/serial/sierra.c | 7 +-
drivers/usb/serial/usb-serial.c | 2 +-
drivers/usb/serial/usb_wwan.c | 13 +-
drivers/usb/storage/transport.c | 2 +-
drivers/usb/typec/Kconfig | 11 +
drivers/usb/typec/Makefile | 3 +-
drivers/usb/typec/anx7411.c | 1601 +
drivers/usb/typec/class.c | 168 +-
drivers/usb/typec/class.h | 6 +
drivers/usb/typec/mux.c | 8 +-
drivers/usb/typec/pd.c | 708 +
drivers/usb/typec/pd.h | 30 +
drivers/usb/typec/retimer.c | 173 +
drivers/usb/typec/retimer.h | 15 +
drivers/usb/typec/tcpm/Kconfig | 1 -
drivers/usb/typec/tcpm/tcpci.c | 3 +-
drivers/usb/typec/tcpm/tcpci_maxim.c | 3 +-
drivers/usb/typec/tcpm/tcpci_mt6360.c | 3 +-
drivers/usb/typec/tcpm/tcpci_rt1711h.c | 2 +-
drivers/usb/typec/tcpm/tcpm.c | 146 +-
drivers/usb/typec/ucsi/Kconfig | 10 +
drivers/usb/typec/ucsi/Makefile | 1 +
drivers/usb/typec/ucsi/ucsi.c | 4 +
drivers/usb/typec/ucsi/ucsi_ccg.c | 28 +-
drivers/usb/typec/ucsi/ucsi_stm32g0.c | 777 +
drivers/usb/usbip/vudc_rx.c | 6 +-
drivers/usb/usbip/vudc_sysfs.c | 14 +-
drivers/vdpa/ifcvf/ifcvf_base.c | 14 +-
drivers/vdpa/ifcvf/ifcvf_base.h | 2 +
drivers/vdpa/ifcvf/ifcvf_main.c | 144 +-
drivers/vdpa/mlx5/core/mlx5_vdpa.h | 11 +
drivers/vdpa/mlx5/net/mlx5_vnet.c | 215 +-
drivers/vdpa/vdpa.c | 14 +-
drivers/vdpa/vdpa_sim/vdpa_sim.c | 18 +-
drivers/vdpa/vdpa_sim/vdpa_sim.h | 1 +
drivers/vdpa/vdpa_sim/vdpa_sim_blk.c | 176 +-
drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 3 +
drivers/vdpa/vdpa_user/iova_domain.c | 102 +-
drivers/vdpa/vdpa_user/iova_domain.h | 8 +
drivers/vdpa/vdpa_user/vduse_dev.c | 247 +-
drivers/vfio/Makefile | 2 +
drivers/vfio/fsl-mc/vfio_fsl_mc_private.h | 2 +-
drivers/vfio/pci/Kconfig | 11 +
drivers/vfio/pci/Makefile | 2 +-
drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c | 11 +-
drivers/vfio/pci/mlx5/cmd.c | 14 +-
drivers/vfio/pci/mlx5/cmd.h | 4 +-
drivers/vfio/pci/mlx5/main.c | 11 +-
drivers/vfio/pci/vfio_pci_config.c | 4 +-
drivers/vfio/pci/vfio_pci_core.c | 22 +-
drivers/vfio/pci/vfio_pci_zdev.c | 35 +-
drivers/vfio/platform/vfio_platform_private.h | 21 +-
drivers/vfio/vfio.h | 17 +-
drivers/vfio/vfio_iommu_spapr_tce.c | 14 +-
drivers/vfio/vfio_iommu_type1.c | 197 +-
drivers/vfio/{vfio.c => vfio_main.c} | 209 +-
drivers/vhost/scsi.c | 89 +-
drivers/vhost/vdpa.c | 42 +-
drivers/vhost/vringh.c | 88 +-
drivers/video/Kconfig | 6 +
drivers/video/Makefile | 2 +
drivers/video/aperture.c | 351 +
drivers/video/backlight/lp855x_bl.c | 21 +-
drivers/video/backlight/ltv350qv.c | 3 +-
drivers/video/backlight/platform_lcd.c | 10 -
drivers/video/backlight/rt4831-backlight.c | 33 +-
drivers/video/backlight/tps65217_bl.c | 10 +-
drivers/video/console/Kconfig | 1 +
drivers/video/console/sticore.c | 2 +
drivers/video/console/vgacon.c | 12 +-
drivers/video/fbdev/68328fb.c | 7 +-
drivers/video/fbdev/Kconfig | 7 +-
drivers/video/fbdev/amba-clcd.c | 24 +-
drivers/video/fbdev/amifb.c | 15 +-
drivers/video/fbdev/arkfb.c | 9 +-
drivers/video/fbdev/atafb.c | 103 +-
drivers/video/fbdev/au1100fb.c | 6 +-
drivers/video/fbdev/cirrusfb.c | 8 +-
drivers/video/fbdev/core/fbcon.c | 54 +-
drivers/video/fbdev/core/fbmem.c | 38 +-
drivers/video/fbdev/dnfb.c | 2 +-
drivers/video/fbdev/efifb.c | 11 -
drivers/video/fbdev/fm2fb.c | 4 +-
drivers/video/fbdev/hpfb.c | 4 +-
drivers/video/fbdev/i740fb.c | 9 +-
drivers/video/fbdev/imxfb.c | 134 +-
drivers/video/fbdev/intelfb/intelfbdrv.c | 4 +-
drivers/video/fbdev/intelfb/intelfbhw.c | 12 +-
drivers/video/fbdev/offb.c | 1 +
drivers/video/fbdev/omap/hwa742.c | 3 +-
drivers/video/fbdev/omap/omapfb.h | 9 -
drivers/video/fbdev/omap/omapfb_main.c | 3 +-
drivers/video/fbdev/omap/sossi.c | 2 +-
drivers/video/fbdev/omap2/omapfb/dss/hdmi_phy.c | 2 +-
drivers/video/fbdev/pxa3xx-gcu.c | 2 +-
drivers/video/fbdev/q40fb.c | 2 +-
drivers/video/fbdev/s3fb.c | 2 +
drivers/video/fbdev/sa1100fb.c | 41 -
drivers/video/fbdev/simplefb.c | 14 +-
drivers/video/fbdev/sis/init.c | 4 +-
drivers/video/fbdev/skeletonfb.c | 21 +-
drivers/video/fbdev/valkyriefb.c | 10 +-
drivers/video/fbdev/vt8623fb.c | 2 +
drivers/virt/acrn/ioreq.c | 6 +-
drivers/virt/coco/sev-guest/sev-guest.c | 9 +-
drivers/virt/nitro_enclaves/Kconfig | 5 +-
drivers/virt/nitro_enclaves/ne_misc_dev.c | 27 -
drivers/virt/nitro_enclaves/ne_misc_dev_test.c | 5 +-
drivers/virt/vboxguest/vboxguest_linux.c | 9 +-
drivers/virtio/Kconfig | 32 +-
drivers/virtio/Makefile | 1 +
drivers/virtio/virtio.c | 11 +-
drivers/virtio/virtio_anchor.c | 18 +
drivers/virtio/virtio_balloon.c | 49 +-
drivers/virtio/virtio_mem.c | 6 +-
drivers/virtio/virtio_mmio.c | 43 +-
drivers/virtio/virtio_pci_common.c | 32 +-
drivers/virtio/virtio_pci_common.h | 3 +-
drivers/virtio/virtio_pci_legacy.c | 8 +-
drivers/virtio/virtio_pci_modern.c | 153 +-
drivers/virtio/virtio_pci_modern_dev.c | 43 +-
drivers/virtio/virtio_ring.c | 857 +-
drivers/virtio/virtio_vdpa.c | 18 +-
drivers/vme/Kconfig | 18 -
drivers/vme/Makefile | 8 -
drivers/vme/boards/Kconfig | 10 -
drivers/vme/boards/Makefile | 6 -
drivers/vme/boards/vme_vmivme7805.c | 106 -
drivers/vme/boards/vme_vmivme7805.h | 33 -
drivers/vme/bridges/Kconfig | 24 -
drivers/vme/bridges/Makefile | 4 -
drivers/vme/bridges/vme_ca91cx42.c | 1928 -
drivers/vme/bridges/vme_ca91cx42.h | 579 -
drivers/watchdog/Kconfig | 9 +
drivers/watchdog/Makefile | 1 +
drivers/watchdog/armada_37xx_wdt.c | 2 +
drivers/watchdog/bcm7038_wdt.c | 8 +-
drivers/watchdog/booke_wdt.c | 2 +-
drivers/watchdog/dw_wdt.c | 8 +-
drivers/watchdog/f71808e_wdt.c | 4 +-
drivers/watchdog/gxp-wdt.c | 1 +
drivers/watchdog/max77620_wdt.c | 4 +-
drivers/watchdog/mtk_wdt.c | 10 +-
drivers/watchdog/pc87413_wdt.c | 2 +-
drivers/watchdog/pm8916_wdt.c | 41 +-
drivers/watchdog/pseries-wdt.c | 239 +
drivers/watchdog/realtek_otto_wdt.c | 1 +
drivers/watchdog/s3c2410_wdt.c | 9 +-
drivers/watchdog/sama5d4_wdt.c | 8 +-
drivers/watchdog/simatic-ipc-wdt.c | 15 +-
drivers/watchdog/sp5100_tco.c | 1 +
drivers/watchdog/sp805_wdt.c | 5 +
drivers/watchdog/st_lpc_wdt.c | 9 +-
drivers/watchdog/tegra_wdt.c | 14 +-
drivers/watchdog/wdat_wdt.c | 7 +-
drivers/xen/Kconfig | 29 +
drivers/xen/Makefile | 2 +
drivers/xen/events/events_base.c | 60 +-
drivers/xen/features.c | 2 +-
drivers/xen/gntdev-common.h | 7 +
drivers/xen/gntdev.c | 159 +-
drivers/xen/grant-dma-iommu.c | 78 +
drivers/xen/grant-dma-ops.c | 356 +
drivers/xen/grant-table.c | 251 +-
drivers/xen/manage.c | 2 +-
drivers/xen/xen-front-pgdir-shbuf.c | 4 +-
drivers/xen/xen-pciback/pciback_ops.c | 2 +-
drivers/xen/xenbus/xenbus_dev_frontend.c | 4 +-
drivers/xen/xenbus/xenbus_probe_backend.c | 2 +-
drivers/xen/xlate_mmu.c | 1 -
fs/9p/cache.c | 4 +-
fs/9p/fid.c | 75 +-
fs/9p/fid.h | 6 +-
fs/9p/v9fs.c | 2 +-
fs/9p/v9fs.h | 10 +-
fs/9p/vfs_addr.c | 32 +-
fs/9p/vfs_dentry.c | 4 +-
fs/9p/vfs_dir.c | 2 +-
fs/9p/vfs_file.c | 9 +-
fs/9p/vfs_inode.c | 102 +-
fs/9p/vfs_inode_dotl.c | 79 +-
fs/9p/vfs_super.c | 8 +-
fs/9p/xattr.c | 8 +-
fs/Kconfig | 12 +-
fs/Makefile | 2 -
fs/affs/file.c | 6 +-
fs/afs/callback.c | 2 +-
fs/afs/cell.c | 61 +-
fs/afs/cmservice.c | 4 +-
fs/afs/dir.c | 32 +-
fs/afs/dir_edit.c | 10 +-
fs/afs/dir_silly.c | 4 +-
fs/afs/dynroot.c | 2 +-
fs/afs/file.c | 12 +-
fs/afs/fs_operation.c | 6 +-
fs/afs/inode.c | 43 +-
fs/afs/internal.h | 39 +-
fs/afs/mntpt.c | 6 -
fs/afs/proc.c | 6 +-
fs/afs/rxrpc.c | 31 +-
fs/afs/server.c | 46 +-
fs/afs/super.c | 6 +-
fs/afs/vl_list.c | 19 +-
fs/afs/volume.c | 24 +-
fs/afs/write.c | 25 +-
fs/aio.c | 38 +-
fs/attr.c | 80 +-
fs/autofs/autofs_i.h | 7 +-
fs/autofs/expire.c | 2 +-
fs/autofs/inode.c | 1 +
fs/autofs/root.c | 108 +-
fs/befs/linuxvfs.c | 16 +-
fs/btrfs/async-thread.h | 1 -
fs/btrfs/backref.c | 88 +-
fs/btrfs/backref.h | 3 +-
fs/btrfs/block-group.c | 34 +-
fs/btrfs/block-group.h | 1 +
fs/btrfs/block-rsv.c | 21 +-
fs/btrfs/block-rsv.h | 15 +-
fs/btrfs/btrfs_inode.h | 25 +-
fs/btrfs/check-integrity.c | 4 +-
fs/btrfs/compression.c | 365 +-
fs/btrfs/compression.h | 20 +-
fs/btrfs/ctree.h | 125 +-
fs/btrfs/delalloc-space.c | 6 +-
fs/btrfs/delayed-inode.c | 479 +-
fs/btrfs/delayed-inode.h | 11 +
fs/btrfs/delayed-ref.c | 4 +-
fs/btrfs/dev-replace.c | 3 +-
fs/btrfs/disk-io.c | 482 +-
fs/btrfs/disk-io.h | 17 +-
fs/btrfs/extent-tree.c | 171 +-
fs/btrfs/extent_io.c | 1008 +-
fs/btrfs/extent_io.h | 15 +-
fs/btrfs/file.c | 136 +-
fs/btrfs/free-space-cache.c | 3 +-
fs/btrfs/inode.c | 829 +-
fs/btrfs/ioctl.c | 150 +-
fs/btrfs/locking.c | 3 -
fs/btrfs/lzo.c | 28 +-
fs/btrfs/ordered-data.c | 40 +-
fs/btrfs/ordered-data.h | 5 +-
fs/btrfs/raid56.c | 796 +-
fs/btrfs/raid56.h | 168 +-
fs/btrfs/reflink.c | 35 +-
fs/btrfs/scrub.c | 71 +-
fs/btrfs/send.c | 821 +-
fs/btrfs/send.h | 169 +-
fs/btrfs/space-info.c | 110 +-
fs/btrfs/space-info.h | 8 +-
fs/btrfs/struct-funcs.c | 11 +-
fs/btrfs/subpage.c | 4 +-
fs/btrfs/super.c | 85 +-
fs/btrfs/sysfs.c | 186 +-
fs/btrfs/tests/btrfs-tests.c | 25 +-
fs/btrfs/tests/extent-buffer-tests.c | 3 +-
fs/btrfs/transaction.c | 138 +-
fs/btrfs/tree-log.c | 29 +-
fs/btrfs/tree-log.h | 3 +
fs/btrfs/volumes.c | 362 +-
fs/btrfs/volumes.h | 46 +-
fs/btrfs/zlib.c | 42 +-
fs/btrfs/zoned.c | 192 +-
fs/btrfs/zoned.h | 23 +
fs/btrfs/zstd.c | 33 +-
fs/buffer.c | 422 +-
fs/cachefiles/ondemand.c | 3 +-
fs/ceph/addr.c | 88 +-
fs/ceph/cache.c | 4 +-
fs/ceph/cache.h | 2 +-
fs/ceph/caps.c | 143 +-
fs/ceph/dir.c | 79 +-
fs/ceph/file.c | 134 +-
fs/ceph/inode.c | 23 +-
fs/ceph/mds_client.c | 169 +-
fs/ceph/mds_client.h | 13 +-
fs/ceph/mdsmap.c | 22 +-
fs/ceph/snap.c | 8 +-
fs/ceph/super.c | 21 +-
fs/ceph/super.h | 41 +-
fs/ceph/xattr.c | 26 +-
fs/cifs/Makefile | 6 +-
fs/cifs/cached_dir.c | 388 +
fs/cifs/cached_dir.h | 64 +
fs/cifs/cifs_debug.c | 84 +-
fs/cifs/cifsacl.c | 2 +
fs/cifs/cifsencrypt.c | 6 +-
fs/cifs/cifsfs.c | 84 +-
fs/cifs/cifsfs.h | 6 +-
fs/cifs/cifsglob.h | 247 +-
fs/cifs/cifsproto.h | 18 +-
fs/cifs/cifssmb.c | 477 +-
fs/cifs/connect.c | 344 +-
fs/cifs/dfs_cache.c | 8 +-
fs/cifs/dir.c | 8 +
fs/cifs/file.c | 324 +-
fs/cifs/fs_context.c | 9 +
fs/cifs/fs_context.h | 8 +
fs/cifs/fscache.c | 8 +-
fs/cifs/fscache.h | 26 +-
fs/cifs/inode.c | 69 +-
fs/cifs/ioctl.c | 2 +
fs/cifs/link.c | 8 +
fs/cifs/misc.c | 96 +-
fs/cifs/netmisc.c | 2 +-
fs/cifs/readdir.c | 5 +-
fs/cifs/sess.c | 190 +-
fs/cifs/smb1ops.c | 10 +-
fs/cifs/smb2inode.c | 11 +-
fs/cifs/smb2misc.c | 60 +-
fs/cifs/smb2ops.c | 562 +-
fs/cifs/smb2pdu.c | 62 +-
fs/cifs/smb2proto.h | 10 -
fs/cifs/smb2transport.c | 38 +-
fs/cifs/trace.h | 38 +
fs/cifs/transport.c | 334 +-
fs/cifs/xattr.c | 5 +-
fs/coda/symlink.c | 11 +-
fs/coredump.c | 4 +-
fs/cramfs/inode.c | 17 +-
fs/crypto/fname.c | 36 +-
fs/crypto/fscrypt_private.h | 11 +-
fs/crypto/hooks.c | 6 +-
fs/crypto/keysetup.c | 7 +
fs/crypto/policy.c | 49 +-
fs/dax.c | 405 +-
fs/dcache.c | 69 +-
fs/direct-io.c | 47 +-
fs/dlm/Kconfig | 9 +
fs/dlm/Makefile | 2 +-
fs/dlm/ast.c | 4 +-
fs/dlm/config.c | 21 +-
fs/dlm/config.h | 3 +-
fs/dlm/dlm_internal.h | 32 +-
fs/dlm/lock.c | 143 +-
fs/dlm/lock.h | 17 +-
fs/dlm/lockspace.c | 31 +-
fs/dlm/lowcomms.c | 4 +-
fs/dlm/member.c | 30 +-
fs/dlm/plock.c | 51 +-
fs/dlm/recoverd.c | 35 +-
fs/dlm/user.c | 21 +-
fs/efivarfs/Makefile | 2 +-
fs/efivarfs/internal.h | 40 +
fs/efivarfs/super.c | 15 +-
fs/efivarfs/vars.c | 738 +
fs/erofs/compress.h | 2 +-
fs/erofs/data.c | 39 +-
fs/erofs/decompressor.c | 18 +-
fs/erofs/decompressor_lzma.c | 1 +
fs/erofs/dir.c | 20 +-
fs/erofs/super.c | 10 +-
fs/erofs/utils.c | 2 +-
fs/erofs/zdata.c | 797 +-
fs/erofs/zdata.h | 119 +-
fs/erofs/zpvec.h | 159 -
fs/eventpoll.c | 22 +
fs/exec.c | 20 +-
fs/exfat/exfat_fs.h | 19 +-
fs/exfat/fatent.c | 2 +-
fs/exfat/file.c | 82 +-
fs/exfat/inode.c | 41 +-
fs/exfat/misc.c | 17 -
fs/exfat/namei.c | 26 +-
fs/exfat/nls.c | 4 +-
fs/exfat/super.c | 4 +-
fs/ext2/dir.c | 29 +-
fs/ext2/ext2.h | 1 -
fs/ext2/inode.c | 63 +-
fs/ext2/namei.c | 10 +-
fs/ext2/super.c | 31 +-
fs/ext2/xattr.c | 170 +-
fs/ext4/balloc.c | 2 +-
fs/ext4/ext4.h | 24 +-
fs/ext4/ext4_jbd2.c | 3 +-
fs/ext4/extents_status.c | 3 +-
fs/ext4/fast_commit.c | 48 +-
fs/ext4/indirect.c | 4 +-
fs/ext4/inline.c | 33 +
fs/ext4/inode.c | 86 +-
fs/ext4/ioctl.c | 105 +-
fs/ext4/mballoc.c | 57 +-
fs/ext4/migrate.c | 6 +-
fs/ext4/mmp.c | 11 +-
fs/ext4/namei.c | 33 +-
fs/ext4/orphan.c | 24 +-
fs/ext4/page-io.c | 2 +-
fs/ext4/resize.c | 49 +-
fs/ext4/super.c | 210 +-
fs/ext4/symlink.c | 15 +
fs/ext4/xattr.c | 169 +-
fs/ext4/xattr.h | 16 +-
fs/f2fs/checkpoint.c | 4 +-
fs/f2fs/compress.c | 264 +-
fs/f2fs/data.c | 133 +-
fs/f2fs/debug.c | 2 +-
fs/f2fs/f2fs.h | 112 +-
fs/f2fs/file.c | 101 +-
fs/f2fs/gc.c | 11 +-
fs/f2fs/gc.h | 21 +-
fs/f2fs/inode.c | 3 +-
fs/f2fs/iostat.c | 31 +-
fs/f2fs/namei.c | 17 +-
fs/f2fs/node.c | 24 +-
fs/f2fs/recovery.c | 10 +-
fs/f2fs/segment.c | 81 +-
fs/f2fs/segment.h | 11 +-
fs/f2fs/super.c | 92 +-
fs/f2fs/sysfs.c | 56 +
fs/fat/file.c | 9 +-
fs/fat/namei_vfat.c | 231 +-
fs/fcntl.c | 1 +
fs/file_table.c | 19 +-
fs/freevxfs/vxfs_immed.c | 43 +-
fs/freevxfs/vxfs_subr.c | 6 -
fs/fs-writeback.c | 37 +-
fs/fscache/cookie.c | 31 +-
fs/fscache/volume.c | 4 +-
fs/fuse/control.c | 4 +-
fs/fuse/dax.c | 2 +-
fs/fuse/dev.c | 7 +-
fs/fuse/dir.c | 16 +-
fs/fuse/file.c | 46 +-
fs/fuse/inode.c | 16 +-
fs/fuse/ioctl.c | 15 +-
fs/fuse/virtio_fs.c | 9 +-
fs/gfs2/aops.c | 28 +-
fs/gfs2/bmap.c | 5 +-
fs/gfs2/dir.c | 7 +-
fs/gfs2/file.c | 5 +-
fs/gfs2/glock.c | 202 +-
fs/gfs2/glock.h | 2 +-
fs/gfs2/glops.c | 31 +-
fs/gfs2/incore.h | 6 +-
fs/gfs2/lock_dlm.c | 2 +-
fs/gfs2/log.c | 9 +-
fs/gfs2/log.h | 2 +-
fs/gfs2/lops.c | 32 +-
fs/gfs2/lops.h | 2 +-
fs/gfs2/main.c | 3 +-
fs/gfs2/meta_io.c | 18 +-
fs/gfs2/ops_fstype.c | 2 -
fs/gfs2/quota.c | 30 +-
fs/gfs2/rgrp.c | 12 +-
fs/gfs2/rgrp.h | 5 +-
fs/gfs2/super.c | 2 +-
fs/gfs2/xattr.c | 2 +-
fs/hfs/bnode.c | 4 -
fs/hfsplus/bnode.c | 4 -
fs/hfsplus/hfsplus_fs.h | 2 +-
fs/hfsplus/part_tbl.c | 5 +-
fs/hfsplus/super.c | 4 +-
fs/hfsplus/wrapper.c | 12 +-
fs/hostfs/hostfs_kern.c | 6 +-
fs/hugetlbfs/inode.c | 181 +-
fs/inode.c | 216 +-
fs/io_uring.c | 13316 --
fs/iomap/buffered-io.c | 125 +-
fs/iomap/direct-io.c | 33 +-
fs/isofs/compress.c | 2 +-
fs/jbd2/checkpoint.c | 6 +-
fs/jbd2/commit.c | 40 +-
fs/jbd2/journal.c | 69 +-
fs/jbd2/recovery.c | 34 +-
fs/jbd2/revoke.c | 8 +-
fs/jbd2/transaction.c | 42 +-
fs/jfs/file.c | 4 +-
fs/jfs/inode.c | 18 +-
fs/jfs/jfs_metapage.c | 2 +-
fs/kernel_read_file.c | 38 +-
fs/kernfs/dir.c | 7 +-
fs/kernfs/file.c | 205 +-
fs/kernfs/kernfs-internal.h | 4 +
fs/kernfs/mount.c | 19 +
fs/ksmbd/auth.c | 56 +-
fs/ksmbd/auth.h | 11 +-
fs/ksmbd/connection.c | 9 +-
fs/ksmbd/connection.h | 10 +-
fs/ksmbd/mgmt/share_config.c | 14 -
fs/ksmbd/mgmt/share_config.h | 2 -
fs/ksmbd/mgmt/tree_connect.c | 5 +-
fs/ksmbd/mgmt/tree_connect.h | 4 +-
fs/ksmbd/mgmt/user_session.c | 95 +-
fs/ksmbd/mgmt/user_session.h | 13 +-
fs/ksmbd/oplock.c | 46 +-
fs/ksmbd/server.c | 8 +-
fs/ksmbd/smb2misc.c | 12 +-
fs/ksmbd/smb2pdu.c | 160 +-
fs/ksmbd/smb_common.h | 2 +-
fs/ksmbd/smbacl.c | 130 +-
fs/ksmbd/smbacl.h | 2 +-
fs/ksmbd/transport_rdma.c | 10 -
fs/ksmbd/transport_tcp.c | 2 +-
fs/ksmbd/vfs.c | 22 +-
fs/ksmbd/vfs.h | 2 +-
fs/ksmbd/vfs_cache.c | 2 +-
fs/lockd/svc4proc.c | 12 +-
fs/lockd/svclock.c | 10 +-
fs/lockd/svcproc.c | 5 +-
fs/lockd/svcsubs.c | 14 +-
fs/lockd/xdr4.c | 19 +-
fs/locks.c | 77 +-
fs/mbcache.c | 125 +-
fs/mount.h | 1 -
fs/mpage.c | 131 +-
fs/namei.c | 271 +-
fs/namespace.c | 2 +-
fs/netfs/buffered_read.c | 26 +-
fs/netfs/internal.h | 2 +-
fs/netfs/objects.c | 8 +-
fs/nfs/blocklayout/blocklayout.c | 13 +-
fs/nfs/blocklayout/dev.c | 42 +-
fs/nfs/callback_proc.c | 1 +
fs/nfs/client.c | 13 +-
fs/nfs/dir.c | 81 +-
fs/nfs/direct.c | 58 +-
fs/nfs/file.c | 6 +-
fs/nfs/filelayout/filelayout.c | 2 +
fs/nfs/flexfilelayout/flexfilelayout.c | 4 +
fs/nfs/flexfilelayout/flexfilelayoutdev.c | 6 +-
fs/nfs/fs_context.c | 26 +-
fs/nfs/internal.h | 57 +-
fs/nfs/nfs3client.c | 1 -
fs/nfs/nfs42xattr.c | 7 +-
fs/nfs/nfs42xdr.c | 170 +-
fs/nfs/nfs4client.c | 4 +-
fs/nfs/nfs4file.c | 1 +
fs/nfs/nfs4idmap.c | 46 +-
fs/nfs/nfs4proc.c | 51 +-
fs/nfs/nfs4state.c | 1 +
fs/nfs/nfstrace.h | 215 +-
fs/nfs/pnfs.c | 21 +-
fs/nfs/pnfs.h | 1 +
fs/nfs/read.c | 4 -
fs/nfs/super.c | 2 +-
fs/nfs/write.c | 74 +-
fs/nfsd/acl.h | 6 +-
fs/nfsd/filecache.c | 758 +-
fs/nfsd/filecache.h | 11 +-
fs/nfsd/netns.h | 3 +
fs/nfsd/nfs2acl.c | 6 +-
fs/nfsd/nfs3acl.c | 4 +-
fs/nfsd/nfs3proc.c | 35 +-
fs/nfsd/nfs4acl.c | 46 +-
fs/nfsd/nfs4callback.c | 37 +-
fs/nfsd/nfs4proc.c | 330 +-
fs/nfsd/nfs4state.c | 127 +-
fs/nfsd/nfs4xdr.c | 132 +-
fs/nfsd/nfscache.c | 3 +-
fs/nfsd/nfsctl.c | 21 +-
fs/nfsd/nfsd.h | 9 +-
fs/nfsd/nfsfh.c | 27 +-
fs/nfsd/nfsfh.h | 58 +-
fs/nfsd/nfsproc.c | 27 +-
fs/nfsd/state.h | 1 -
fs/nfsd/trace.h | 327 +-
fs/nfsd/vfs.c | 267 +-
fs/nfsd/vfs.h | 33 +-
fs/nfsd/xdr4.h | 60 +-
fs/nilfs2/btnode.c | 8 +-
fs/nilfs2/btnode.h | 4 +-
fs/nilfs2/btree.c | 6 +-
fs/nilfs2/dir.c | 2 +-
fs/nilfs2/gcinode.c | 7 +-
fs/nilfs2/mdt.c | 19 +-
fs/nilfs2/nilfs.h | 3 +
fs/nilfs2/page.c | 60 +-
fs/notify/fanotify/fanotify.c | 19 +-
fs/notify/fanotify/fanotify.h | 2 +
fs/notify/fanotify/fanotify_user.c | 138 +-
fs/notify/fdinfo.c | 6 +-
fs/notify/fsnotify.c | 23 +-
fs/notify/inotify/inotify_user.c | 2 +-
fs/ntfs/aops.c | 12 +-
fs/ntfs/aops.h | 7 +-
fs/ntfs/attrib.c | 8 +-
fs/ntfs/compress.c | 2 +-
fs/ntfs/file.c | 7 +-
fs/ntfs/logfile.c | 2 +-
fs/ntfs/mft.c | 4 +-
fs/ntfs3/file.c | 2 +-
fs/ntfs3/fsntfs.c | 2 +-
fs/ntfs3/inode.c | 10 +-
fs/ntfs3/ntfs_fs.h | 9 +-
fs/ocfs2/aops.c | 30 +-
fs/ocfs2/buffer_head_io.c | 8 +-
fs/ocfs2/cluster/heartbeat.c | 75 +-
fs/ocfs2/dlmfs/dlmfs.c | 14 +-
fs/ocfs2/file.c | 2 +-
fs/ocfs2/heartbeat.c | 27 +-
fs/ocfs2/namei.c | 1 +
fs/ocfs2/ocfs2.h | 4 +-
fs/ocfs2/quota_global.c | 2 +-
fs/ocfs2/refcounttree.c | 42 +-
fs/ocfs2/slot_map.c | 46 +-
fs/ocfs2/super.c | 23 +-
fs/open.c | 63 +-
fs/orangefs/inode.c | 4 +-
fs/overlayfs/copy_up.c | 7 +-
fs/overlayfs/export.c | 2 +-
fs/overlayfs/inode.c | 91 +-
fs/overlayfs/namei.c | 4 +-
fs/overlayfs/overlayfs.h | 21 +-
fs/overlayfs/super.c | 13 +-
fs/posix_acl.c | 168 +-
fs/proc/array.c | 5 +-
fs/proc/base.c | 46 +-
fs/proc/inode.c | 22 +-
fs/proc/kmsg.c | 1 -
fs/proc/nommu.c | 1 -
fs/proc/proc_net.c | 9 +-
fs/proc/proc_tty.c | 2 -
fs/proc/root.c | 8 +-
fs/proc/task_mmu.c | 7 +-
fs/proc/vmcore.c | 1 -
fs/proc_namespace.c | 2 +-
fs/pstore/inode.c | 1 +
fs/pstore/platform.c | 64 +-
fs/pstore/zone.c | 12 +-
fs/quota/dquot.c | 29 +-
fs/read_write.c | 107 +-
fs/reiserfs/inode.c | 20 +-
fs/reiserfs/journal.c | 12 +-
fs/reiserfs/stree.c | 4 +-
fs/reiserfs/super.c | 2 +-
fs/reiserfs/xattr.c | 9 +-
fs/remap_range.c | 45 +-
fs/splice.c | 64 +-
fs/squashfs/Makefile | 4 +-
fs/squashfs/block.c | 10 +-
fs/squashfs/decompressor.h | 1 +
fs/squashfs/file.c | 148 +-
fs/squashfs/file_direct.c | 90 +-
fs/squashfs/lz4_wrapper.c | 7 +-
fs/squashfs/lzo_wrapper.c | 7 +-
fs/squashfs/page_actor.c | 55 +-
fs/squashfs/page_actor.h | 57 +-
fs/squashfs/super.c | 33 -
fs/squashfs/xz_wrapper.c | 11 +-
fs/squashfs/zlib_wrapper.c | 12 +-
fs/squashfs/zstd_wrapper.c | 12 +-
fs/super.c | 39 +-
fs/tracefs/inode.c | 2 +-
fs/ubifs/file.c | 29 +-
fs/ubifs/super.c | 2 +-
fs/udf/dir.c | 2 +-
fs/udf/directory.c | 2 +-
fs/udf/inode.c | 2 +-
fs/ufs/balloc.c | 2 +-
fs/ufs/dir.c | 2 +-
fs/ufs/util.c | 11 -
fs/userfaultfd.c | 18 +-
fs/verity/Kconfig | 10 +-
fs/xattr.c | 25 +-
fs/xfs/Makefile | 6 +
fs/xfs/libxfs/xfs_ag.c | 171 +-
fs/xfs/libxfs/xfs_ag.h | 75 +-
fs/xfs/libxfs/xfs_ag_resv.c | 2 +-
fs/xfs/libxfs/xfs_alloc.c | 145 +-
fs/xfs/libxfs/xfs_alloc.h | 58 +-
fs/xfs/libxfs/xfs_alloc_btree.c | 9 +-
fs/xfs/libxfs/xfs_attr.c | 69 +-
fs/xfs/libxfs/xfs_attr.h | 27 +-
fs/xfs/libxfs/xfs_attr_leaf.c | 65 +-
fs/xfs/libxfs/xfs_attr_leaf.h | 3 +-
fs/xfs/libxfs/xfs_attr_remote.c | 15 +-
fs/xfs/libxfs/xfs_bmap.c | 84 +-
fs/xfs/libxfs/xfs_bmap_btree.c | 10 +-
fs/xfs/libxfs/xfs_btree.c | 29 +-
fs/xfs/libxfs/xfs_da_btree.h | 4 +-
fs/xfs/libxfs/xfs_dir2.c | 2 +-
fs/xfs/libxfs/xfs_dir2_block.c | 6 +-
fs/xfs/libxfs/xfs_dir2_sf.c | 8 +-
fs/xfs/libxfs/xfs_format.h | 2 +-
fs/xfs/libxfs/xfs_ialloc.c | 86 +-
fs/xfs/libxfs/xfs_ialloc.h | 25 +-
fs/xfs/libxfs/xfs_ialloc_btree.c | 20 +-
fs/xfs/libxfs/xfs_inode_buf.c | 15 +-
fs/xfs/libxfs/xfs_inode_fork.c | 65 +-
fs/xfs/libxfs/xfs_inode_fork.h | 27 +-
fs/xfs/libxfs/xfs_refcount.c | 19 +-
fs/xfs/libxfs/xfs_refcount_btree.c | 5 +-
fs/xfs/libxfs/xfs_rmap.c | 8 +-
fs/xfs/libxfs/xfs_rmap_btree.c | 9 +-
fs/xfs/libxfs/xfs_symlink_remote.c | 2 +-
fs/xfs/libxfs/xfs_trans_resv.c | 2 +-
fs/xfs/libxfs/xfs_types.c | 73 +-
fs/xfs/libxfs/xfs_types.h | 9 -
fs/xfs/scrub/agheader.c | 25 +-
fs/xfs/scrub/agheader_repair.c | 21 +-
fs/xfs/scrub/alloc.c | 7 +-
fs/xfs/scrub/bmap.c | 16 +-
fs/xfs/scrub/btree.c | 2 +-
fs/xfs/scrub/common.c | 6 +-
fs/xfs/scrub/dabtree.c | 2 +-
fs/xfs/scrub/dir.c | 2 +-
fs/xfs/scrub/fscounters.c | 4 +-
fs/xfs/scrub/health.c | 2 +
fs/xfs/scrub/ialloc.c | 12 +-
fs/xfs/scrub/quota.c | 2 +-
fs/xfs/scrub/refcount.c | 9 +-
fs/xfs/scrub/repair.c | 49 +-
fs/xfs/scrub/rmap.c | 6 +-
fs/xfs/scrub/symlink.c | 6 +-
fs/xfs/xfs_aops.c | 2 +-
fs/xfs/xfs_attr_inactive.c | 23 +-
fs/xfs/xfs_attr_item.c | 42 +-
fs/xfs/xfs_attr_list.c | 9 +-
fs/xfs/xfs_bio_io.c | 2 +-
fs/xfs/xfs_bmap_util.c | 39 +-
fs/xfs/xfs_buf.c | 305 +-
fs/xfs/xfs_buf.h | 27 +-
fs/xfs/xfs_dir2_readdir.c | 2 +-
fs/xfs/xfs_discard.c | 2 +-
fs/xfs/xfs_dquot.c | 2 +-
fs/xfs/xfs_extfree_item.c | 18 +-
fs/xfs/xfs_file.c | 68 +-
fs/xfs/xfs_filestream.c | 4 +-
fs/xfs/xfs_fsmap.c | 3 +-
fs/xfs/xfs_fsops.c | 16 +-
fs/xfs/xfs_icache.c | 72 +-
fs/xfs/xfs_icache.h | 1 +
fs/xfs/xfs_inode.c | 757 +-
fs/xfs/xfs_inode.h | 70 +-
fs/xfs/xfs_inode_item.c | 58 +-
fs/xfs/xfs_ioctl.c | 13 +-
fs/xfs/xfs_iomap.c | 49 +-
fs/xfs/xfs_iomap.h | 1 +
fs/xfs/xfs_iops.c | 27 +-
fs/xfs/xfs_iops.h | 3 +
fs/xfs/xfs_itable.c | 4 +-
fs/xfs/xfs_iunlink_item.c | 180 +
fs/xfs/xfs_iunlink_item.h | 27 +
fs/xfs/xfs_linux.h | 2 +-
fs/xfs/xfs_log.c | 78 +-
fs/xfs/xfs_log.h | 3 +-
fs/xfs/xfs_log_cil.c | 472 +-
fs/xfs/xfs_log_priv.h | 58 +-
fs/xfs/xfs_log_recover.c | 198 +-
fs/xfs/xfs_mount.c | 3 +-
fs/xfs/xfs_mount.h | 3 +-
fs/xfs/xfs_notify_failure.c | 226 +
fs/xfs/xfs_qm.c | 17 +-
fs/xfs/xfs_qm_syscalls.c | 9 +-
fs/xfs/xfs_reflink.c | 256 +-
fs/xfs/xfs_reflink.h | 3 -
fs/xfs/xfs_super.c | 48 +-
fs/xfs/xfs_super.h | 1 +
fs/xfs/xfs_symlink.c | 2 +-
fs/xfs/xfs_trace.h | 4 +-
fs/xfs/xfs_trans.c | 95 +-
fs/xfs/xfs_trans.h | 7 +-
fs/xfs/xfs_trans_priv.h | 3 +-
fs/xfs/xfs_xattr.c | 17 +-
fs/zonefs/super.c | 163 +-
fs/zonefs/trace.h | 4 +-
include/acpi/acpi_bus.h | 12 +-
include/acpi/cppc_acpi.h | 3 +-
include/acpi/processor.h | 9 +-
include/asm-generic/Kbuild | 1 +
include/asm-generic/archrandom.h | 15 +
include/asm-generic/barrier.h | 8 +
include/asm-generic/bitops/generic-non-atomic.h | 161 +
.../asm-generic/bitops/instrumented-non-atomic.h | 35 +-
include/asm-generic/bitops/non-atomic.h | 121 +-
.../bitops/non-instrumented-non-atomic.h | 16 +
include/asm-generic/io.h | 136 +-
include/asm-generic/pci.h | 39 +-
include/asm-generic/pci_iomap.h | 2 +
include/asm-generic/softirq_stack.h | 2 +-
include/asm-generic/tlb.h | 68 +-
include/clocksource/timer-ti-dm.h | 144 -
include/crypto/aria.h | 461 +
include/crypto/hash.h | 2 +
include/crypto/internal/blake2s.h | 108 -
include/crypto/kpp.h | 2 +
include/crypto/polyval.h | 22 +
include/drm/display/drm_dp_aux_bus.h | 34 +-
include/drm/display/drm_dp_helper.h | 48 +-
include/drm/drm_atomic_helper.h | 2 +
include/drm/drm_bridge.h | 15 +
include/drm/drm_connector.h | 10 +-
include/drm/drm_crtc.h | 17 +-
include/drm/drm_displayid.h | 6 +-
include/drm/drm_edid.h | 39 +-
include/drm/drm_encoder_slave.h | 2 +
include/drm/drm_fb_helper.h | 1 +
include/drm/drm_gem.h | 26 +-
include/drm/drm_gem_framebuffer_helper.h | 10 +-
include/drm/drm_mipi_dsi.h | 17 +
include/drm/drm_of.h | 22 +
include/drm/drm_panel.h | 9 +
include/drm/drm_probe_helper.h | 3 +
include/drm/drm_rect.h | 16 +
include/drm/i915_pciids.h | 39 +-
include/drm/intel-gtt.h | 24 +-
include/dt-bindings/clock/bcm21664.h | 10 +-
include/dt-bindings/clock/bcm281xx.h | 10 +-
include/dt-bindings/clock/efm32-cmu.h | 43 -
include/dt-bindings/clock/exynos7885.h | 54 +-
include/dt-bindings/clock/nuvoton,npcm845-clk.h | 49 +
include/dt-bindings/clock/qcom,dispcc-sm8350.h | 1 +
include/dt-bindings/clock/qcom,gcc-ipq8074.h | 4 +
include/dt-bindings/clock/qcom,gcc-msm8939.h | 1 +
include/dt-bindings/clock/qcom,gpucc-sm8350.h | 52 +
include/dt-bindings/clock/qcom,sm8450-camcc.h | 159 +
include/dt-bindings/clock/r9a07g043-cpg.h | 20 +
include/dt-bindings/clock/sprd,ums512-clk.h | 397 +
include/dt-bindings/clock/sunplus,sp7021-clkc.h | 88 +
include/dt-bindings/clock/tegra234-clock.h | 105 +
include/dt-bindings/clock/ti-dra7-atl.h | 10 +-
include/dt-bindings/gpio/gpio.h | 3 +
include/dt-bindings/interconnect/fsl,imx8mp.h | 59 +
include/dt-bindings/interconnect/qcom,sm6350.h | 148 +
include/dt-bindings/mailbox/qcom-ipcc.h | 1 +
include/dt-bindings/memory/tegra234-mc.h | 26 +
include/dt-bindings/net/pcs-rzn1-miic.h | 33 +
include/dt-bindings/nvmem/microchip,sama7g5-otpc.h | 12 +
include/dt-bindings/pinctrl/hisi.h | 10 +-
include/dt-bindings/pinctrl/keystone.h | 10 +-
include/dt-bindings/pinctrl/r7s9210-pinctrl.h | 2 +-
include/dt-bindings/pinctrl/rzg2l-pinctrl.h | 2 +-
include/dt-bindings/pinctrl/rzv2m-pinctrl.h | 23 +
include/dt-bindings/power/mt6795-power.h | 16 +
include/dt-bindings/power/mt6797-power.h | 9 +-
include/dt-bindings/power/qcom-rpmpd.h | 7 +
include/dt-bindings/power/tegra234-powergate.h | 2 +
include/dt-bindings/reset/mt8186-resets.h | 5 +
include/dt-bindings/reset/mt8192-resets.h | 8 +
include/dt-bindings/reset/mt8195-resets.h | 6 +
include/dt-bindings/reset/sama7g5-reset.h | 10 +
include/dt-bindings/reset/sunplus,sp7021-reset.h | 87 +
include/dt-bindings/reset/tegra234-reset.h | 10 +
include/dt-bindings/soc/samsung,boot-mode.h | 18 +
include/dt-bindings/sound/qcom,wcd9335.h | 15 +
include/keys/asymmetric-type.h | 3 +
include/kunit/test.h | 63 +-
include/kvm/arm_vgic.h | 2 +-
include/linux/acpi.h | 19 +-
include/linux/acpi_iort.h | 14 +-
include/linux/acpi_viot.h | 2 +
include/linux/amd-iommu.h | 4 +
include/linux/aperture.h | 56 +
include/linux/arch_topology.h | 1 -
include/linux/atm_tcp.h | 2 +
include/linux/audit.h | 7 -
include/linux/backing-dev-defs.h | 7 -
include/linux/backing-dev.h | 25 +-
include/linux/balloon_compaction.h | 6 +-
include/linux/base64.h | 16 +
include/linux/bio.h | 11 +-
include/linux/bitmap.h | 37 +-
include/linux/bitops.h | 50 +
include/linux/blk-mq.h | 34 +-
include/linux/blk_types.h | 119 +-
include/linux/blkdev.h | 247 +-
include/linux/blktrace_api.h | 13 +-
include/linux/bpf-cgroup-defs.h | 13 +-
include/linux/bpf-cgroup.h | 9 +-
include/linux/bpf.h | 175 +-
include/linux/bpf_lsm.h | 7 +
include/linux/bpf_verifier.h | 14 +-
include/linux/bpfptr.h | 8 +-
include/linux/brcmphy.h | 1 +
include/linux/btf.h | 93 +-
include/linux/btf_ids.h | 71 +-
include/linux/buffer_head.h | 52 +-
include/linux/cacheinfo.h | 3 +
include/linux/can/bittiming.h | 2 +
include/linux/can/dev.h | 4 +
include/linux/can/skb.h | 59 +-
include/linux/ceph/ceph_fs.h | 8 +-
include/linux/ceph/mdsmap.h | 1 +
include/linux/ceph/osd_client.h | 5 +-
include/linux/cgroup-defs.h | 28 +-
include/linux/cgroup.h | 2 +-
include/linux/clk-provider.h | 36 +-
include/linux/clk.h | 134 +-
include/linux/clk/ti.h | 10 +-
include/linux/compiler-gcc.h | 11 -
include/linux/compiler_types.h | 2 +
include/linux/console.h | 17 -
include/linux/console_struct.h | 6 +-
include/linux/consolemap.h | 60 +-
include/linux/context_tracking.h | 95 +-
include/linux/context_tracking_irq.h | 21 +
include/linux/context_tracking_state.h | 113 +-
include/linux/coresight-pmu.h | 2 +
include/linux/cpu.h | 5 +
include/linux/cpuhotplug.h | 3 +-
include/linux/cpumask.h | 244 +-
include/linux/crc-itu-t.h | 2 +-
include/linux/damon.h | 25 +-
include/linux/dax.h | 56 +-
include/linux/dcache.h | 11 +-
include/linux/devfreq.h | 5 +
include/linux/device-mapper.h | 7 +-
include/linux/device.h | 2 +
include/linux/device/driver.h | 2 +-
include/linux/dim.h | 2 +-
include/linux/dm-bufio.h | 8 +-
include/linux/dm-io.h | 4 +-
include/linux/dm-verity-loadpin.h | 27 +
include/linux/dma-fence-unwrap.h | 76 +-
include/linux/dma-map-ops.h | 67 +
include/linux/dma-mapping.h | 10 +
include/linux/dma/edma.h | 61 +-
include/linux/dma/imx-dma.h | 13 +
include/linux/dma/qcom-gpi-dma.h | 2 +-
include/linux/dmaengine.h | 20 -
include/linux/dmar.h | 6 +-
include/linux/dsa/tag_qca.h | 5 +
include/linux/efi.h | 85 +-
include/linux/energy_model.h | 54 +-
include/linux/entry-common.h | 10 +-
include/linux/evm.h | 6 +-
include/linux/extcon.h | 2 +
include/linux/fanotify.h | 18 +-
include/linux/fb.h | 1 -
include/linux/fbcon.h | 4 +
include/linux/filter.h | 43 +-
include/linux/firmware/cirrus/cs_dsp.h | 77 +-
include/linux/firmware/intel/stratix10-smc.h | 175 +
.../linux/firmware/intel/stratix10-svc-client.h | 53 +-
include/linux/firmware/trusted_foundations.h | 8 +-
include/linux/firmware/xlnx-zynqmp.h | 12 +
include/linux/fpga/fpga-mgr.h | 24 +-
include/linux/fs.h | 208 +-
include/linux/fscache.h | 3 +-
include/linux/fscrypt.h | 5 +
include/linux/fsnotify_backend.h | 89 +-
include/linux/ftrace.h | 43 +
include/linux/fwnode.h | 4 +
include/linux/gfp.h | 348 +-
include/linux/gfp_types.h | 348 +
include/linux/gpio.h | 6 -
include/linux/gpio/driver.h | 71 +-
include/linux/gpio/machine.h | 1 +
include/linux/hardirq.h | 12 +-
include/linux/highmem-internal.h | 10 +-
include/linux/highmem.h | 48 +-
include/linux/hippidevice.h | 4 +
include/linux/hisi_acc_qm.h | 8 +-
include/linux/hmm.h | 4 +-
include/linux/host1x.h | 42 +
include/linux/huge_mm.h | 106 +-
include/linux/hugetlb.h | 52 +-
include/linux/hypervisor.h | 8 +
include/linux/i2c.h | 3 +-
include/linux/ieee80211.h | 380 +-
include/linux/if_eql.h | 1 +
include/linux/if_hsr.h | 4 +
include/linux/if_macvlan.h | 6 +-
include/linux/if_rmnet.h | 2 +
include/linux/if_tap.h | 11 +-
include/linux/if_team.h | 10 +-
include/linux/if_vlan.h | 10 +-
include/linux/iio/common/cros_ec_sensors_core.h | 9 +-
include/linux/iio/iio.h | 23 +-
include/linux/iio/trigger.h | 26 +-
include/linux/ima.h | 5 +
include/linux/inetdevice.h | 2 +-
include/linux/input/elan-i2c-ids.h | 5 +-
include/linux/interconnect.h | 7 +
include/linux/io-pgtable.h | 15 +-
include/linux/io_uring_types.h | 581 +
include/linux/iomap.h | 15 +-
include/linux/iommu.h | 27 +-
include/linux/ioport.h | 3 +
include/linux/ioprio.h | 24 +-
include/linux/iosys-map.h | 82 +-
include/linux/iova.h | 2 +
include/linux/irq.h | 35 +-
include/linux/irqchip/mmp.h | 3 +
include/linux/irqdesc.h | 5 +-
include/linux/isa-dma.h | 14 +
include/linux/jbd2.h | 8 +-
include/linux/jump_label.h | 9 +-
include/linux/kernel_read_file.h | 32 +-
include/linux/kernel_stat.h | 7 +
include/linux/kernfs.h | 59 +-
include/linux/kexec.h | 88 +-
include/linux/kfifo.h | 2 +-
include/linux/khugepaged.h | 30 -
include/linux/kmemleak.h | 8 +-
include/linux/kvm_host.h | 33 +-
include/linux/kvm_types.h | 9 +-
include/linux/lapb.h | 5 +
include/linux/libata.h | 52 +-
include/linux/libnvdimm.h | 5 +
include/linux/limits.h | 1 +
include/linux/lockd/lockd.h | 1 +
include/linux/lockd/xdr.h | 2 +
include/linux/lockdep.h | 30 +-
include/linux/lockref.h | 1 -
include/linux/lsm_hook_defs.h | 1 +
include/linux/lsm_hooks.h | 7 +
include/linux/mailbox/mtk-cmdq-mailbox.h | 10 -
include/linux/mbcache.h | 33 +-
include/linux/mdev.h | 5 -
include/linux/mdio/mdio-xgene.h | 4 +
include/linux/memcontrol.h | 74 +-
include/linux/memory_hotplug.h | 9 -
include/linux/memregion.h | 2 +-
include/linux/memremap.h | 35 +-
include/linux/mfd/bcm2835-pm.h | 1 +
include/linux/mfd/ipaq-micro.h | 4 +-
include/linux/mfd/lp873x.h | 10 +-
include/linux/mfd/max77714.h | 2 +-
include/linux/mfd/mt6331/core.h | 40 +
include/linux/mfd/mt6331/registers.h | 584 +
include/linux/mfd/mt6332/core.h | 65 +
include/linux/mfd/mt6332/registers.h | 642 +
include/linux/mfd/mt6357/core.h | 119 +
include/linux/mfd/mt6357/registers.h | 1574 +
include/linux/mfd/mt6397/core.h | 3 +
include/linux/mfd/t7l66xb.h | 1 -
include/linux/mfd/tc6387xb.h | 1 -
include/linux/mfd/tc6393xb.h | 2 +-
include/linux/mfd/tps65086.h | 10 +-
include/linux/mfd/tps65217.h | 10 +-
include/linux/mfd/tps65218.h | 10 +-
include/linux/mfd/tps65912.h | 10 +-
include/linux/mfd/twl.h | 57 -
include/linux/migrate.h | 79 +-
include/linux/mii.h | 35 +
include/linux/miscdevice.h | 2 +-
include/linux/mlx5/device.h | 36 +-
include/linux/mlx5/driver.h | 12 +-
include/linux/mlx5/eswitch.h | 8 +-
include/linux/mlx5/fs.h | 16 +
include/linux/mlx5/mlx5_ifc.h | 186 +-
include/linux/mlx5/mlx5_ifc_vdpa.h | 8 +
include/linux/mm.h | 160 +-
include/linux/mm_types.h | 12 +
include/linux/mmc/card.h | 9 +-
include/linux/mmc/host.h | 26 +
include/linux/mmc/mmc.h | 6 +
include/linux/mmc/sdio.h | 5 +
include/linux/mmdebug.h | 10 +
include/linux/mmu_notifier.h | 2 +-
include/linux/mmzone.h | 159 +-
include/linux/mnt_idmapping.h | 305 +-
include/linux/module.h | 5 +
include/linux/mpage.h | 2 -
include/linux/mroute_base.h | 15 +-
include/linux/mtd/hyperbus.h | 4 +-
include/linux/mtd/spi-nor.h | 4 +-
include/linux/mtd/spinand.h | 1 +
include/linux/net.h | 6 +-
include/linux/netdevice.h | 42 +-
include/linux/netfilter/nf_conntrack_h323.h | 109 +-
include/linux/netfilter/nf_conntrack_sip.h | 2 +-
include/linux/netfs.h | 77 +-
include/linux/nfs_fs.h | 9 +
include/linux/nfs_page.h | 3 +-
include/linux/nfs_ssc.h | 2 +-
include/linux/nfs_xdr.h | 1 +
include/linux/nl802154.h | 2 +
include/linux/nmi.h | 2 +
include/linux/nodemask.h | 24 +-
include/linux/nvme-auth.h | 41 +
include/linux/nvme.h | 219 +-
include/linux/objtool.h | 17 +-
include/linux/of.h | 7 +-
include/linux/of_gpio.h | 1 +
include/linux/of_platform.h | 22 +-
include/linux/once.h | 2 -
include/linux/once_lite.h | 20 +-
include/linux/page-flags.h | 57 +-
include/linux/pagemap.h | 35 +-
include/linux/pagevec.h | 11 -
include/linux/panic.h | 3 +-
include/linux/pci-doe.h | 77 +
include/linux/pci-ecam.h | 1 +
include/linux/pci-p2pdma.h | 27 -
include/linux/pci.h | 12 +-
include/linux/pci_ids.h | 4 +
include/linux/pcs-rzn1-miic.h | 18 +
include/linux/pcs/pcs-xpcs.h | 3 +-
include/linux/perf/riscv_pmu.h | 4 +
include/linux/perf_event.h | 2 +
include/linux/pgtable.h | 28 +
include/linux/phy.h | 9 +
include/linux/phy_fixed.h | 3 +
include/linux/pinctrl/pinctrl.h | 20 +
include/linux/pipe_fs_i.h | 29 +-
include/linux/platform_data/cros_ec_commands.h | 8 +-
include/linux/platform_data/cros_ec_proto.h | 8 +-
include/linux/platform_data/davinci_asp.h | 10 +-
include/linux/platform_data/gpio-davinci.h | 10 +-
include/linux/platform_data/uio_dmem_genirq.h | 10 +-
include/linux/platform_data/uio_pruss.h | 10 +-
include/linux/platform_data/usb-omap.h | 16 +-
include/linux/platform_data/video-imxfb.h | 70 -
include/linux/platform_data/x86/asus-wmi.h | 1 +
include/linux/platform_data/x86/p2sb.h | 28 +
include/linux/platform_data/x86/pmc_atom.h | 2 +-
include/linux/platform_data/x86/simatic-ipc-base.h | 2 -
include/linux/pm_opp.h | 322 +-
include/linux/pm_runtime.h | 5 +-
include/linux/pm_wakeirq.h | 14 +-
include/linux/pm_wakeup.h | 31 +-
include/linux/posix_acl.h | 1 +
include/linux/posix_acl_xattr.h | 34 +-
include/linux/ppp-comp.h | 2 +-
include/linux/ppp_channel.h | 2 +
include/linux/ppp_defs.h | 14 +
include/linux/printk.h | 11 -
include/linux/pstore.h | 4 +
include/linux/ptp_kvm.h | 2 +
include/linux/ptp_pch.h | 4 +
include/linux/pwm.h | 35 +-
include/linux/quotaops.h | 15 +-
include/linux/radix-tree.h | 2 +-
include/linux/random.h | 24 +-
include/linux/ratelimit_types.h | 12 +-
include/linux/rbtree.h | 2 +-
include/linux/rcupdate.h | 45 +-
include/linux/rcupdate_trace.h | 2 +-
include/linux/rcutiny.h | 27 +-
include/linux/rcutree.h | 11 +-
include/linux/refcount.h | 6 +-
include/linux/regmap.h | 141 +-
include/linux/regulator/consumer.h | 16 +-
include/linux/regulator/driver.h | 1 +
include/linux/remoteproc.h | 4 +-
include/linux/reset.h | 2 +-
include/linux/reset/bcm63xx_pmb.h | 10 +-
include/linux/rmap.h | 4 +-
include/linux/rtsx_usb.h | 2 -
include/linux/rv.h | 70 +
include/linux/scatterlist.h | 69 +
include/linux/sched.h | 19 +-
include/linux/sched/mm.h | 4 +-
include/linux/sched/rt.h | 8 -
include/linux/sched/task.h | 2 +-
include/linux/sched/topology.h | 1 +
include/linux/sched/user.h | 3 +-
include/linux/scmi_protocol.h | 151 +-
include/linux/security.h | 15 +-
include/linux/seq_file_net.h | 1 +
include/linux/serial.h | 15 +-
include/linux/serial_8250.h | 7 +-
include/linux/serial_core.h | 370 +-
include/linux/serial_s3c.h | 2 +-
include/linux/shmem_fs.h | 11 +
include/linux/shrinker.h | 33 +-
include/linux/skbuff.h | 277 +-
include/linux/skmsg.h | 4 +-
include/linux/soc/mediatek/mtk-mutex.h | 27 +
include/linux/soc/ti/knav_dma.h | 10 +-
include/linux/soc/ti/knav_qmss.h | 10 +-
include/linux/soc/ti/ti-msgmgr.h | 10 +-
include/linux/socket.h | 16 +-
include/linux/sockptr.h | 8 +
include/linux/soundwire/sdw.h | 8 +-
include/linux/soundwire/sdw_intel.h | 3 +
include/linux/spi/spi.h | 169 +-
include/linux/spmi.h | 3 +
include/linux/sram.h | 14 +-
include/linux/stmmac.h | 1 +
include/linux/sungem_phy.h | 2 +
include/linux/sunrpc/bc_xprt.h | 17 +-
include/linux/sunrpc/clnt.h | 5 +
include/linux/sunrpc/sched.h | 4 +-
include/linux/sunrpc/xdr.h | 27 +-
include/linux/sunrpc/xprt.h | 6 +-
include/linux/sunrpc/xprtmultipath.h | 7 +-
include/linux/surface_aggregator/controller.h | 149 +-
include/linux/surface_aggregator/device.h | 213 +-
include/linux/surface_aggregator/serial_hub.h | 75 +-
include/linux/swap.h | 15 +-
include/linux/swapops.h | 21 +-
include/linux/swiotlb.h | 17 +-
include/linux/sysctl.h | 6 +
include/linux/sysfs.h | 16 +
include/linux/tboot.h | 2 -
include/linux/tcp.h | 30 +
include/linux/thermal.h | 26 +-
include/linux/ti-emif-sram.h | 10 +-
include/linux/time64.h | 5 +-
include/linux/tpm_eventlog.h | 2 +-
include/linux/trace_events.h | 18 +
include/linux/tracepoint.h | 6 +-
include/linux/tty_buffer.h | 1 +
include/linux/tty_ldisc.h | 14 +
include/linux/tty_port.h | 2 +
include/linux/uacce.h | 6 +-
include/linux/uaccess.h | 4 +-
include/linux/ucb1400.h | 2 -
include/linux/uio.h | 52 +-
include/linux/usb.h | 2 +
include/linux/usb/audio-v2.h | 3 -
include/linux/usb/audio.h | 3 -
include/linux/usb/c67x00.h | 15 -
include/linux/usb/cdc-wdm.h | 4 -
include/linux/usb/cdc.h | 4 -
include/linux/usb/cdc_ncm.h | 4 +-
include/linux/usb/composite.h | 14 -
include/linux/usb/ehci_def.h | 14 -
include/linux/usb/ehci_pdriver.h | 14 -
include/linux/usb/g_hid.h | 14 -
include/linux/usb/gadget.h | 2 -
include/linux/usb/hcd.h | 15 +-
include/linux/usb/input.h | 4 -
include/linux/usb/isp1301.h | 10 -
include/linux/usb/m66592.h | 14 -
include/linux/usb/musb-ux500.h | 10 -
include/linux/usb/net2280.h | 14 -
include/linux/usb/of.h | 2 -
include/linux/usb/ohci_pdriver.h | 14 -
include/linux/usb/onboard_hub.h | 18 +
include/linux/usb/otg-fsm.h | 17 +-
include/linux/usb/pd.h | 38 +
include/linux/usb/phy_companion.h | 10 -
include/linux/usb/r8a66597.h | 14 -
include/linux/usb/rndis_host.h | 14 -
include/linux/usb/serial.h | 5 -
include/linux/usb/storage.h | 2 -
.../usb/typec/tcpm => include/linux/usb}/tcpci.h | 1 +
include/linux/usb/tegra_usb_phy.h | 10 -
include/linux/usb/typec.h | 23 +
include/linux/usb/typec_altmode.h | 2 +-
include/linux/usb/typec_mux.h | 44 +-
include/linux/usb/typec_retimer.h | 45 +
include/linux/usb/ulpi.h | 4 -
include/linux/usb/usb338x.h | 11 -
include/linux/usb/usbnet.h | 20 +-
include/linux/usb/xhci-dbgp.h | 4 -
include/linux/vdpa.h | 9 +-
include/linux/vfio.h | 106 +-
include/linux/vfio_pci_core.h | 77 +-
include/linux/virtio.h | 10 +
include/linux/virtio_anchor.h | 19 +
include/linux/virtio_config.h | 51 +-
include/linux/virtio_pci_modern.h | 9 +
include/linux/virtio_ring.h | 10 -
include/linux/visorbus.h | 344 -
include/linux/vmalloc.h | 1 +
include/linux/wait.h | 9 +-
include/linux/watch_queue.h | 2 +-
include/linux/wkup_m3_ipc.h | 10 +-
include/linux/workqueue.h | 67 +-
include/linux/writeback.h | 11 +-
include/linux/xarray.h | 16 +
include/linux/xattr.h | 2 +-
include/media/hevc-ctrls.h | 250 -
include/media/i2c/adv7343.h | 10 +-
include/media/i2c/adv7393.h | 10 +-
include/media/i2c/ov2659.h | 14 +-
include/media/media-entity.h | 98 +-
include/media/tpg/v4l2-tpg.h | 16 +
include/media/v4l2-async.h | 2 +
include/media/v4l2-common.h | 6 +-
include/media/v4l2-ctrls.h | 48 +-
include/media/v4l2-subdev.h | 34 +
include/media/videobuf2-v4l2.h | 10 +
include/net/9p/client.h | 49 +-
include/net/addrconf.h | 3 +
include/net/af_unix.h | 5 +-
include/net/af_vsock.h | 1 +
include/net/amt.h | 23 +
include/net/ax25.h | 1 +
include/net/ax88796.h | 6 +-
include/net/bluetooth/bluetooth.h | 71 +-
include/net/bluetooth/hci.h | 203 +-
include/net/bluetooth/hci_core.h | 234 +-
include/net/bluetooth/hci_sock.h | 2 +
include/net/bluetooth/hci_sync.h | 16 +
include/net/bluetooth/iso.h | 32 +
include/net/bluetooth/l2cap.h | 1 +
include/net/bond_options.h | 22 +-
include/net/bonding.h | 14 +-
include/net/cfg80211.h | 592 +-
include/net/codel_qdisc.h | 1 +
include/net/compat.h | 5 +-
include/net/datalink.h | 7 +
include/net/dcbevent.h | 2 +
include/net/dcbnl.h | 2 +
include/net/devlink.h | 118 +-
include/net/dn_dev.h | 1 +
include/net/dn_fib.h | 2 +
include/net/dn_neigh.h | 2 +
include/net/dn_nsp.h | 6 +
include/net/dn_route.h | 3 +
include/net/dropreason.h | 256 +
include/net/dsa.h | 9 +
include/net/erspan.h | 3 +
include/net/esp.h | 1 +
include/net/ethoc.h | 3 +
include/net/firewire.h | 5 +-
include/net/flow_dissector.h | 29 +
include/net/flow_offload.h | 14 +
include/net/fq.h | 4 +
include/net/fq_impl.h | 5 +-
include/net/garp.h | 2 +
include/net/genetlink.h | 5 +-
include/net/gtp.h | 4 +
include/net/gue.h | 3 +
include/net/hwbm.h | 2 +
include/net/ila.h | 2 +
include/net/inet6_connection_sock.h | 2 +
include/net/inet6_hashtables.h | 7 +-
include/net/inet_common.h | 6 +
include/net/inet_connection_sock.h | 13 +-
include/net/inet_frag.h | 3 +
include/net/inet_hashtables.h | 87 +-
include/net/inet_sock.h | 25 +-
include/net/ip.h | 6 +-
include/net/ip6_route.h | 20 +-
include/net/ip_tunnels.h | 17 +-
include/net/ipcomp.h | 2 +
include/net/ipconfig.h | 2 +
include/net/ipv6.h | 4 +-
include/net/llc_c_ac.h | 7 +
include/net/llc_c_st.h | 4 +
include/net/llc_s_ac.h | 4 +
include/net/llc_s_ev.h | 1 +
include/net/llc_s_st.h | 6 +
include/net/mac80211.h | 339 +-
include/net/mpls_iptunnel.h | 3 +
include/net/mptcp.h | 7 +-
include/net/mrp.h | 4 +
include/net/ncsi.h | 2 +
include/net/neighbour.h | 1 +
include/net/net_namespace.h | 8 +
include/net/netevent.h | 1 +
include/net/netfilter/nf_conntrack_core.h | 19 +
include/net/netfilter/nf_conntrack_timeout.h | 2 +-
include/net/netfilter/nf_flow_table.h | 21 +
include/net/netfilter/nf_nat.h | 2 +-
include/net/netfilter/nf_tables.h | 59 +-
include/net/netfilter/nf_tables_core.h | 10 -
include/net/netfilter/nf_tables_offload.h | 2 +-
include/net/netns/can.h | 1 +
include/net/netns/core.h | 2 +
include/net/netns/flow_table.h | 14 +
include/net/netns/generic.h | 1 +
include/net/netns/ipv4.h | 1 +
include/net/netns/mctp.h | 1 +
include/net/netns/mpls.h | 2 +
include/net/netns/nexthop.h | 1 +
include/net/netns/sctp.h | 3 +
include/net/netns/smc.h | 1 +
include/net/netns/unix.h | 8 +
include/net/netrom.h | 1 +
include/net/p8022.h | 5 +
include/net/phonet/pep.h | 3 +
include/net/phonet/phonet.h | 4 +
include/net/phonet/pn_dev.h | 5 +
include/net/pkt_cls.h | 2 +-
include/net/pkt_sched.h | 17 +
include/net/pptp.h | 3 +
include/net/protocol.h | 4 -
include/net/psnap.h | 5 +
include/net/raw.h | 20 +-
include/net/rawv6.h | 7 +-
include/net/regulatory.h | 3 +
include/net/rose.h | 4 +-
include/net/route.h | 9 +-
include/net/sch_generic.h | 19 -
include/net/secure_seq.h | 2 +
include/net/smc.h | 11 +-
include/net/sock.h | 204 +-
include/net/stp.h | 2 +
include/net/strparser.h | 11 +-
include/net/switchdev.h | 3 +
include/net/tcp.h | 28 +-
include/net/tls.h | 306 +-
include/net/transp_v6.h | 2 +
include/net/tun_proto.h | 3 +-
include/net/udp.h | 8 +-
include/net/udplite.h | 1 +
include/net/xdp_priv.h | 1 +
include/net/xdp_sock_drv.h | 25 +
include/net/xfrm.h | 8 +-
include/ras/ras_event.h | 1 -
include/rdma/ib_verbs.h | 13 +-
include/rdma/rdma_cm.h | 1 +
include/rv/automata.h | 75 +
include/rv/da_monitor.h | 544 +
include/rv/instrumentation.h | 29 +
include/scsi/libiscsi.h | 13 +-
include/scsi/libsas.h | 2 +-
include/scsi/sas.h | 42 +-
include/scsi/scsi_cmnd.h | 4 +-
include/scsi/scsi_device.h | 4 +-
include/scsi/scsi_host.h | 6 +-
include/scsi/scsi_transport_iscsi.h | 3 +-
include/soc/mscc/ocelot.h | 6 +
include/soc/qcom/qcom-spmi-pmic.h | 61 +
include/sound/control.h | 4 +-
include/sound/core.h | 14 +
include/sound/cs35l41.h | 7 +
include/sound/dmaengine_pcm.h | 2 +
include/sound/hda_codec.h | 1 -
include/sound/hdaudio.h | 1 +
include/sound/hdmi-codec.h | 4 +-
include/sound/madera-pdata.h | 2 +-
include/sound/pcm.h | 71 +-
include/sound/rawmidi.h | 6 +-
include/sound/simple_card_utils.h | 5 +-
include/sound/soc-acpi-intel-match.h | 2 +
include/sound/soc-card.h | 1 +
include/sound/soc-component.h | 7 +-
include/sound/soc-dai.h | 6 +
include/sound/soc.h | 17 +-
include/sound/sof.h | 1 +
include/sound/sof/dai-amd.h | 7 +
include/sound/sof/dai-intel.h | 2 +
include/sound/sof/dai.h | 2 +-
include/sound/sof/ipc4/header.h | 8 +
include/sound/sof/stream.h | 6 +-
include/target/iscsi/iscsi_target_core.h | 14 +
include/target/target_core_backend.h | 1 +
include/target/target_core_base.h | 4 +-
include/trace/events/9p.h | 48 +
include/trace/events/afs.h | 36 +-
include/trace/events/btrfs.h | 158 +
include/trace/events/devlink.h | 7 +-
include/trace/events/dlm.h | 118 +-
include/trace/events/f2fs.h | 22 +-
include/trace/events/fib.h | 6 +-
include/trace/events/fib6.h | 8 +-
include/trace/events/fscache.h | 2 +
include/trace/events/io_uring.h | 217 +-
include/trace/events/iocost.h | 2 +-
include/trace/events/iscsi.h | 4 +-
include/trace/events/jbd2.h | 12 +-
include/trace/events/kmem.h | 40 +-
include/trace/events/kvm.h | 2 +-
include/trace/events/libata.h | 1 +
include/trace/events/neigh.h | 2 +-
include/trace/events/net.h | 2 +-
include/trace/events/nilfs2.h | 4 +-
include/trace/events/power.h | 51 +
include/trace/events/qdisc.h | 4 +-
include/trace/events/qla.h | 4 +-
include/trace/events/rv.h | 142 +
include/trace/events/rwmmio.h | 97 +
include/trace/events/scmi.h | 56 +
include/trace/events/scsi.h | 35 +-
include/trace/events/skb.h | 89 +-
include/trace/events/sock.h | 6 +-
include/trace/events/spmi.h | 12 +-
include/trace/events/sunrpc.h | 34 +-
include/trace/events/thermal.h | 28 +-
include/trace/events/workqueue.h | 8 +-
include/trace/stages/stage1_struct_define.h | 3 +
include/trace/stages/stage2_data_offsets.h | 3 +
include/trace/stages/stage4_event_fields.h | 11 +-
include/trace/stages/stage5_get_offsets.h | 4 +
include/trace/stages/stage6_event_callback.h | 12 +
include/uapi/asm-generic/fcntl.h | 2 +
include/uapi/asm-generic/termbits-common.h | 1 +
include/uapi/drm/amdgpu_drm.h | 7 +-
include/uapi/drm/drm_fourcc.h | 14 +-
include/uapi/drm/i915_drm.h | 393 +-
include/uapi/linux/android/binder.h | 1 +
include/uapi/linux/atm_zatm.h | 47 +
include/uapi/linux/blkzoned.h | 2 +-
include/uapi/linux/bpf.h | 109 +-
include/uapi/linux/btf.h | 17 +-
include/uapi/linux/btrfs.h | 20 +-
include/uapi/linux/btrfs_tree.h | 2 +-
include/uapi/linux/can/bcm.h | 2 +-
include/uapi/linux/can/error.h | 20 +-
include/uapi/linux/connector.h | 2 +-
include/uapi/linux/cycx_cfm.h | 2 +-
include/uapi/linux/devlink.h | 31 +
include/uapi/linux/dm-ioctl.h | 12 +-
include/uapi/linux/dm-log-userspace.h | 2 +-
include/uapi/linux/dma-buf.h | 84 +
include/uapi/linux/elf.h | 1 +
include/uapi/linux/ethtool.h | 28 +-
include/uapi/linux/f2fs.h | 2 +-
include/uapi/linux/fanotify.h | 10 +-
include/uapi/linux/fiemap.h | 2 +-
include/uapi/linux/firewire-cdev.h | 12 +-
include/uapi/linux/fs.h | 2 +-
include/uapi/linux/fscrypt.h | 3 +-
include/uapi/linux/genetlink.h | 5 +-
include/uapi/linux/idxd.h | 6 +-
include/uapi/linux/if_alg.h | 2 +-
include/uapi/linux/if_arcnet.h | 6 +-
include/uapi/linux/if_ether.h | 1 +
include/uapi/linux/if_link.h | 1 +
include/uapi/linux/if_pppox.h | 4 +-
include/uapi/linux/if_tun.h | 2 +-
include/uapi/linux/igmp.h | 6 +-
include/uapi/linux/inet_diag.h | 2 +-
include/uapi/linux/inotify.h | 2 +-
include/uapi/linux/input.h | 11 +-
include/uapi/linux/io_uring.h | 119 +-
include/uapi/linux/ip.h | 4 +-
include/uapi/linux/ip_vs.h | 4 +-
include/uapi/linux/iso_fs.h | 4 +-
include/uapi/linux/jffs2.h | 8 +-
include/uapi/linux/kcov.h | 2 +-
include/uapi/linux/kfd_ioctl.h | 55 +-
include/uapi/linux/kvm.h | 119 +-
include/uapi/linux/loadpin.h | 22 +
include/uapi/linux/magic.h | 4 -
include/uapi/linux/media-bus-format.h | 6 +-
include/uapi/linux/minix_fs.h | 4 +-
include/uapi/linux/mmc/ioctl.h | 2 +-
include/uapi/linux/mptcp.h | 9 +-
include/uapi/linux/ndctl.h | 10 +-
include/uapi/linux/neighbour.h | 1 +
include/uapi/linux/net_dropmon.h | 4 +-
include/uapi/linux/netfilter/x_tables.h | 4 +-
include/uapi/linux/netfilter/xt_IDLETIMER.h | 17 +-
include/uapi/linux/netfilter_arp/arp_tables.h | 6 +-
include/uapi/linux/netfilter_bridge/ebt_among.h | 2 +-
include/uapi/linux/netfilter_ipv4/ip_tables.h | 6 +-
include/uapi/linux/netfilter_ipv6/ip6_tables.h | 4 +-
include/uapi/linux/netfilter_ipv6/ip6t_LOG.h | 2 +-
include/uapi/linux/nl80211.h | 107 +-
include/uapi/linux/pci_regs.h | 29 +-
include/uapi/linux/perf_event.h | 7 +-
include/uapi/linux/pkt_cls.h | 7 +-
include/uapi/linux/raid/md_p.h | 2 +-
include/uapi/linux/random.h | 2 +-
include/uapi/linux/romfs_fs.h | 4 +-
include/uapi/linux/rtnetlink.h | 2 +-
include/uapi/linux/sctp.h | 10 +-
include/uapi/linux/seg6.h | 2 +-
include/uapi/linux/seg6_iptunnel.h | 4 +-
include/uapi/linux/serial.h | 20 +-
include/uapi/linux/serial_core.h | 4 -
include/uapi/linux/serial_reg.h | 4 +-
include/uapi/linux/smc.h | 1 +
include/uapi/linux/snmp.h | 2 +
include/uapi/linux/stm.h | 2 +-
include/uapi/linux/swab.h | 6 +-
include/uapi/linux/sysctl.h | 37 +-
include/uapi/linux/target_core_user.h | 2 +-
include/uapi/linux/tls.h | 6 +-
include/uapi/linux/tty.h | 3 +-
include/uapi/linux/ublk_cmd.h | 227 +
include/uapi/linux/usb/audio.h | 2 +-
include/uapi/linux/usb/cdc.h | 19 +-
include/uapi/linux/usb/ch9.h | 2 +-
include/uapi/linux/usb/raw_gadget.h | 4 +-
include/uapi/linux/usbdevice_fs.h | 4 +-
include/uapi/linux/v4l2-controls.h | 459 +
include/uapi/linux/vduse.h | 47 +
include/uapi/linux/vfio_zdev.h | 7 +
include/uapi/linux/vhost.h | 9 +
include/uapi/linux/vhost_types.h | 6 +-
include/uapi/linux/videodev2.h | 39 +
include/uapi/linux/virtio_9p.h | 2 +-
include/uapi/linux/virtio_config.h | 7 +-
include/uapi/linux/virtio_net.h | 34 +-
include/uapi/linux/virtio_pci.h | 2 +
include/uapi/linux/xfrm.h | 16 +-
include/uapi/misc/habanalabs.h | 541 +-
include/uapi/mtd/mtd-abi.h | 4 +-
include/uapi/rdma/erdma-abi.h | 49 +
include/uapi/rdma/hfi/hfi1_user.h | 2 +-
include/uapi/rdma/ib_user_ioctl_verbs.h | 1 +
include/uapi/rdma/ib_user_verbs.h | 72 +-
include/uapi/rdma/mlx5_user_ioctl_cmds.h | 17 +
include/uapi/rdma/mlx5_user_ioctl_verbs.h | 1 +
include/uapi/rdma/rdma_user_cm.h | 2 +-
include/uapi/rdma/rdma_user_ioctl_cmds.h | 2 +-
include/uapi/scsi/fc/fc_els.h | 18 +-
include/uapi/scsi/scsi_bsg_fc.h | 2 +-
include/uapi/sound/asound.h | 2 +-
include/uapi/sound/compress_offload.h | 2 +-
include/uapi/sound/compress_params.h | 6 +-
include/uapi/sound/firewire.h | 6 +-
include/uapi/sound/skl-tplg-interface.h | 2 +-
include/uapi/sound/sof/abi.h | 4 +-
include/uapi/sound/sof/header.h | 32 +-
include/uapi/sound/sof/tokens.h | 44 +
include/uapi/sound/usb_stream.h | 2 +-
include/ufs/ufshcd.h | 21 +-
include/ufs/unipro.h | 104 +-
include/video/of_display_timing.h | 2 +
include/xen/arm/xen-ops.h | 18 +
include/xen/grant_table.h | 4 +
include/xen/hvm.h | 2 +
include/xen/interface/hvm/hvm_op.h | 19 +
include/xen/xen-ops.h | 22 +
init/Kconfig | 335 +-
init/init_task.c | 1 +
init/main.c | 1 +
init/version.c | 17 +
io_uring/Makefile | 11 +
io_uring/advise.c | 99 +
io_uring/advise.h | 7 +
io_uring/alloc_cache.h | 53 +
io_uring/cancel.c | 315 +
io_uring/cancel.h | 23 +
io_uring/epoll.c | 65 +
io_uring/epoll.h | 6 +
io_uring/fdinfo.c | 194 +
io_uring/fdinfo.h | 3 +
io_uring/filetable.c | 193 +
io_uring/filetable.h | 88 +
io_uring/fs.c | 293 +
io_uring/fs.h | 20 +
{fs => io_uring}/io-wq.c | 21 +-
io_uring/io-wq.h | 83 +
io_uring/io_uring.c | 3966 +
io_uring/io_uring.h | 304 +
io_uring/kbuf.c | 549 +
io_uring/kbuf.h | 140 +
io_uring/msg_ring.c | 171 +
io_uring/msg_ring.h | 4 +
io_uring/net.c | 1250 +
io_uring/net.h | 63 +
io_uring/nop.c | 25 +
io_uring/nop.h | 4 +
io_uring/notif.c | 157 +
io_uring/notif.h | 90 +
io_uring/opdef.c | 510 +
io_uring/opdef.h | 42 +
io_uring/openclose.c | 256 +
io_uring/openclose.h | 14 +
io_uring/poll.c | 965 +
io_uring/poll.h | 39 +
io_uring/refs.h | 48 +
io_uring/rsrc.c | 1420 +
io_uring/rsrc.h | 181 +
io_uring/rw.c | 1049 +
io_uring/rw.h | 23 +
fs/io-wq.h => io_uring/slist.h | 100 +-
io_uring/splice.c | 122 +
io_uring/splice.h | 7 +
io_uring/sqpoll.c | 421 +
io_uring/sqpoll.h | 29 +
io_uring/statx.c | 73 +
io_uring/statx.h | 5 +
io_uring/sync.c | 110 +
io_uring/sync.h | 10 +
io_uring/tctx.c | 340 +
io_uring/tctx.h | 31 +
io_uring/timeout.c | 644 +
io_uring/timeout.h | 36 +
io_uring/uring_cmd.c | 119 +
io_uring/uring_cmd.h | 13 +
io_uring/xattr.c | 258 +
io_uring/xattr.h | 15 +
ipc/mqueue.c | 2 +-
ipc/namespace.c | 5 +-
kernel/audit.c | 4 +-
kernel/auditsc.c | 27 +-
kernel/bpf/arraymap.c | 46 +-
kernel/bpf/bpf_iter.c | 23 +-
kernel/bpf/bpf_lsm.c | 85 +
kernel/bpf/bpf_struct_ops.c | 10 +-
kernel/bpf/btf.c | 370 +-
kernel/bpf/cgroup.c | 416 +-
kernel/bpf/core.c | 140 +-
kernel/bpf/devmap.c | 6 +-
kernel/bpf/hashtab.c | 14 +-
kernel/bpf/helpers.c | 24 +-
kernel/bpf/local_storage.c | 2 +-
kernel/bpf/lpm_trie.c | 2 +-
kernel/bpf/percpu_freelist.c | 20 +-
kernel/bpf/preload/iterators/Makefile | 10 +-
kernel/bpf/reuseport_array.c | 9 +-
kernel/bpf/syscall.c | 88 +-
kernel/bpf/trampoline.c | 429 +-
kernel/bpf/verifier.c | 487 +-
kernel/cfi.c | 22 +-
kernel/cgroup/cgroup-internal.h | 1 +
kernel/cgroup/cgroup-v1.c | 17 +-
kernel/cgroup/cgroup.c | 173 +-
kernel/cgroup/cpuset.c | 2 +-
kernel/cgroup/rstat.c | 44 +-
kernel/configs/android-base.config | 1 -
kernel/configs/x86_debug.config | 3 +-
kernel/configs/xen.config | 1 -
kernel/context_tracking.c | 617 +-
kernel/cpu_pm.c | 8 +-
kernel/crash_core.c | 28 +-
kernel/dma/coherent.c | 10 +-
kernel/dma/debug.c | 2 +-
kernel/dma/direct.c | 48 +-
kernel/dma/direct.h | 8 +-
kernel/dma/mapping.c | 47 +-
kernel/dma/swiotlb.c | 269 +-
kernel/entry/common.c | 16 +-
kernel/entry/kvm.c | 6 -
kernel/events/core.c | 84 +-
kernel/events/ring_buffer.c | 5 +-
kernel/exit.c | 4 +-
kernel/extable.c | 4 +-
kernel/fork.c | 20 +-
kernel/groups.c | 13 +
kernel/hung_task.c | 13 +-
kernel/irq/Kconfig | 2 +
kernel/irq/chip.c | 16 +-
kernel/irq/debugfs.c | 2 +-
kernel/irq/generic-chip.c | 2 +-
kernel/irq/ipi.c | 16 +-
kernel/irq/irqdesc.c | 2 +-
kernel/irq/irqdomain.c | 14 +-
kernel/irq/manage.c | 10 +-
kernel/irq/pm.c | 2 -
kernel/jump_label.c | 41 +-
kernel/kallsyms.c | 114 +-
kernel/kallsyms_internal.h | 30 +
kernel/kcsan/.kunitconfig | 24 +
kernel/kexec_core.c | 27 -
kernel/kexec_file.c | 104 +-
kernel/kprobes.c | 3 +-
kernel/kthread.c | 14 +-
kernel/locking/lockdep.c | 11 +-
kernel/locking/rwsem.c | 30 +-
kernel/module/Kconfig | 293 +
kernel/module/decompress.c | 8 +-
kernel/module/internal.h | 15 +-
kernel/module/kallsyms.c | 76 +-
kernel/module/main.c | 65 +-
kernel/module/procfs.c | 2 +-
kernel/nsproxy.c | 3 +-
kernel/panic.c | 5 +-
kernel/power/Kconfig | 20 +
kernel/power/energy_model.c | 24 +-
kernel/power/hibernate.c | 2 +-
kernel/power/qos.c | 4 +-
kernel/power/swap.c | 29 +-
kernel/power/user.c | 13 +-
kernel/printk/printk.c | 600 +-
kernel/profile.c | 15 +-
kernel/ptrace.c | 2 +-
kernel/rcu/Kconfig | 31 +
kernel/rcu/Kconfig.debug | 5 +-
kernel/rcu/rcu.h | 19 +-
kernel/rcu/rcuscale.c | 1 +
kernel/rcu/rcutorture.c | 247 +-
kernel/rcu/refscale.c | 18 +-
kernel/rcu/srcutree.c | 98 +-
kernel/rcu/tasks.h | 541 +-
kernel/rcu/tiny.c | 25 +-
kernel/rcu/tree.c | 662 +-
kernel/rcu/tree.h | 21 +-
kernel/rcu/tree_exp.h | 115 +-
kernel/rcu/tree_nocb.h | 266 +-
kernel/rcu/tree_plugin.h | 82 +-
kernel/rcu/tree_stall.h | 57 +-
kernel/rcu/update.c | 15 +-
kernel/reboot.c | 101 +-
kernel/resource.c | 185 +-
kernel/rseq.c | 23 +-
kernel/sched/core.c | 299 +-
kernel/sched/core_sched.c | 15 +-
kernel/sched/cpufreq_schedutil.c | 5 +-
kernel/sched/cputime.c | 15 +
kernel/sched/deadline.c | 11 +-
kernel/sched/fair.c | 818 +-
kernel/sched/features.h | 3 +-
kernel/sched/idle.c | 10 +-
kernel/sched/pelt.h | 40 +-
kernel/sched/psi.c | 19 +-
kernel/sched/rt.c | 15 +-
kernel/sched/sched.h | 76 +-
kernel/sched/topology.c | 23 +-
kernel/signal.c | 8 +-
kernel/smp.c | 4 +-
kernel/softirq.c | 4 +-
kernel/sysctl.c | 118 +-
kernel/time/Kconfig | 37 +-
kernel/time/hrtimer.c | 1 +
kernel/time/posix-stubs.c | 3 +-
kernel/time/posix-timers.c | 19 +-
kernel/time/tick-sched.c | 3 +-
kernel/time/time.c | 4 +-
kernel/time/timekeeping.c | 7 +-
kernel/trace/Kconfig | 5 +-
kernel/trace/Makefile | 1 +
kernel/trace/blktrace.c | 75 +-
kernel/trace/bpf_trace.c | 70 +-
kernel/trace/ftrace.c | 341 +-
kernel/trace/rethook.c | 9 +
kernel/trace/rv/Kconfig | 78 +
kernel/trace/rv/Makefile | 8 +
kernel/trace/rv/monitors/wip/wip.c | 88 +
kernel/trace/rv/monitors/wip/wip.h | 46 +
kernel/trace/rv/monitors/wwnr/wwnr.c | 87 +
kernel/trace/rv/monitors/wwnr/wwnr.h | 46 +
kernel/trace/rv/reactor_panic.c | 43 +
kernel/trace/rv/reactor_printk.c | 42 +
kernel/trace/rv/rv.c | 799 +
kernel/trace/rv/rv.h | 68 +
kernel/trace/rv/rv_reactors.c | 510 +
kernel/trace/trace.c | 56 +-
kernel/trace/trace.h | 9 +
kernel/trace/trace_dynevent.c | 2 +-
kernel/trace/trace_eprobe.c | 37 +-
kernel/trace/trace_events_hist.c | 7 +-
kernel/trace/trace_events_user.c | 2 +-
kernel/trace/trace_kprobe.c | 27 +-
kernel/trace/trace_probe.c | 4 +
kernel/trace/trace_probe.h | 5 +-
kernel/trace/trace_uprobe.c | 20 +-
kernel/watch_queue.c | 105 +-
kernel/watchdog.c | 25 +-
kernel/watchdog_hld.c | 4 -
kernel/workqueue.c | 30 +-
lib/Kconfig | 19 +-
lib/Kconfig.debug | 21 +-
lib/Kconfig.ubsan | 5 +-
lib/Makefile | 13 +-
lib/base64.c | 103 +
lib/bitmap.c | 11 +-
lib/btree.c | 30 +-
lib/cpumask.c | 99 +-
lib/crc-itu-t.c | 2 +-
lib/crypto/Kconfig | 4 +
lib/crypto/Makefile | 3 +
lib/crypto/blake2s-selftest.c | 41 +
lib/crypto/blake2s.c | 37 +-
lib/{ => crypto}/sha1.c | 3 +
lib/devres.c | 15 +-
lib/error-inject.c | 28 +-
lib/flex_proportions.c | 10 +-
lib/idr.c | 3 +-
lib/iov_iter.c | 1148 +-
lib/kunit/executor.c | 125 +-
lib/kunit/executor_test.c | 144 +-
lib/kunit/test.c | 58 +-
lib/list_debug.c | 12 +-
lib/livepatch/test_klp_callbacks_busy.c | 8 +
lib/lockref.c | 25 -
lib/lru_cache.c | 4 +-
lib/lz4/lz4_decompress.c | 6 +-
lib/lzo/lzo1x_compress.c | 6 +-
{crypto => lib}/memneq.c | 0
lib/mpi/mpi-add.c | 2 +-
lib/mpi/mpi-mul.c | 1 +
lib/mpi/mpiutil.c | 2 +-
lib/nodemask.c | 31 -
lib/overflow_kunit.c | 6 +
lib/radix-tree.c | 4 +-
lib/sbitmap.c | 5 +-
lib/scatterlist.c | 4 +-
lib/smp_processor_id.c | 2 +-
lib/stackdepot.c | 59 +-
lib/test_bitmap.c | 68 +
lib/test_bpf.c | 4 +-
lib/test_cpumask.c | 138 +
lib/test_free_pages.c | 2 +-
lib/test_hmm.c | 347 +-
lib/test_hmm_uapi.h | 19 +-
lib/test_kasan.c | 10 +
lib/test_printf.c | 21 +-
lib/test_vmalloc.c | 15 +-
lib/trace_readwrite.c | 47 +
lib/ts_bm.c | 2 +-
lib/vsprintf.c | 3 +-
lib/xarray.c | 5 +-
mm/Kconfig | 20 +-
mm/Makefile | 1 +
mm/backing-dev.c | 11 +-
mm/balloon_compaction.c | 10 +-
mm/cma_debug.c | 2 +-
mm/compaction.c | 39 +-
mm/damon/Kconfig | 8 +
mm/damon/Makefile | 1 +
mm/damon/dbgfs.c | 79 +-
mm/damon/lru_sort.c | 548 +
mm/damon/ops-common.c | 42 +
mm/damon/ops-common.h | 2 +
mm/damon/paddr.c | 60 +-
mm/damon/reclaim.c | 50 +-
mm/damon/sysfs.c | 69 +-
mm/damon/vaddr.c | 3 +-
mm/debug_vm_pgtable.c | 2 +-
mm/filemap.c | 185 +-
mm/folio-compat.c | 22 -
mm/frontswap.c | 2 +-
mm/gup.c | 96 +-
mm/gup_test.c | 2 +-
mm/highmem.c | 4 +-
mm/hmm.c | 19 +-
mm/huge_memory.c | 201 +-
mm/hugetlb.c | 266 +-
mm/hugetlb_cgroup.c | 1 +
mm/hugetlb_vmemmap.c | 633 +-
mm/hugetlb_vmemmap.h | 45 +-
mm/hwpoison-inject.c | 2 +-
mm/internal.h | 21 +
mm/ioremap.c | 26 +-
mm/kasan/common.c | 11 +-
mm/kasan/hw_tags.c | 32 +-
mm/kasan/kasan.h | 3 +-
mm/kasan/report.c | 12 +-
mm/kasan/shadow.c | 29 +-
mm/kfence/core.c | 29 +-
mm/khugepaged.c | 230 +-
mm/kmemleak.c | 260 +-
mm/ksm.c | 12 +-
mm/list_lru.c | 2 +-
mm/madvise.c | 16 +-
mm/memblock.c | 46 +-
mm/memcontrol.c | 226 +-
mm/memory-failure.c | 523 +-
mm/memory.c | 63 +-
mm/memory_hotplug.c | 57 +-
mm/mempolicy.c | 10 +-
mm/mempool.c | 2 +-
mm/memremap.c | 22 +-
mm/migrate.c | 282 +-
mm/migrate_device.c | 83 +-
mm/mlock.c | 2 +-
mm/mmap.c | 53 +-
mm/mprotect.c | 81 +-
mm/nommu.c | 2 +-
mm/page-writeback.c | 89 +-
mm/page_alloc.c | 472 +-
mm/page_isolation.c | 2 +
mm/page_vma_mapped.c | 5 +-
mm/percpu.c | 6 +-
mm/readahead.c | 4 +
mm/rmap.c | 141 +-
mm/secretmem.c | 55 +-
mm/shmem.c | 106 +-
mm/shrinker_debug.c | 286 +
mm/slab.c | 30 +-
mm/slab.h | 39 +-
mm/slab_common.c | 36 +-
mm/slob.c | 33 +-
mm/slub.c | 141 +-
mm/sparse-vmemmap.c | 399 +-
mm/sparse.c | 2 +-
mm/swap.c | 630 +-
mm/swap.h | 19 +-
mm/swap_slots.c | 2 +-
mm/swap_state.c | 60 +-
mm/swapfile.c | 31 +-
mm/truncate.c | 2 +-
mm/usercopy.c | 26 +-
mm/userfaultfd.c | 5 +-
mm/util.c | 6 +-
mm/vmalloc.c | 150 +-
mm/vmscan.c | 388 +-
mm/workingset.c | 2 +-
mm/z3fold.c | 84 +-
mm/zsmalloc.c | 118 +-
net/6lowpan/nhc.c | 103 +-
net/6lowpan/nhc.h | 38 +-
net/6lowpan/nhc_dest.c | 9 +-
net/6lowpan/nhc_fragment.c | 9 +-
net/6lowpan/nhc_ghc_ext_dest.c | 9 +-
net/6lowpan/nhc_ghc_ext_frag.c | 11 +-
net/6lowpan/nhc_ghc_ext_hop.c | 9 +-
net/6lowpan/nhc_ghc_ext_route.c | 9 +-
net/6lowpan/nhc_ghc_icmpv6.c | 9 +-
net/6lowpan/nhc_ghc_udp.c | 9 +-
net/6lowpan/nhc_hop.c | 9 +-
net/6lowpan/nhc_ipv6.c | 11 +-
net/6lowpan/nhc_mobility.c | 9 +-
net/6lowpan/nhc_routing.c | 9 +-
net/6lowpan/nhc_udp.c | 9 +-
net/8021q/vlan_core.c | 6 +-
net/8021q/vlan_dev.c | 22 +-
net/8021q/vlan_netlink.c | 10 +-
net/9p/client.c | 293 +-
net/9p/protocol.c | 3 +-
net/9p/trans_fd.c | 13 +-
net/9p/trans_rdma.c | 2 +-
net/9p/trans_virtio.c | 41 +-
net/9p/trans_xen.c | 2 +-
net/ax25/af_ax25.c | 40 +-
net/ax25/ax25_dev.c | 9 +-
net/ax25/ax25_timer.c | 4 +-
net/batman-adv/trace.h | 9 +-
net/bluetooth/Kconfig | 1 +
net/bluetooth/Makefile | 1 +
net/bluetooth/af_bluetooth.c | 4 +-
net/bluetooth/aosp.c | 15 +-
net/bluetooth/eir.c | 62 +-
net/bluetooth/eir.h | 1 +
net/bluetooth/hci_conn.c | 893 +-
net/bluetooth/hci_core.c | 572 +-
net/bluetooth/hci_event.c | 536 +-
net/bluetooth/hci_request.c | 429 +-
net/bluetooth/hci_request.h | 16 +-
net/bluetooth/hci_sock.c | 11 +-
net/bluetooth/hci_sync.c | 635 +-
net/bluetooth/iso.c | 1835 +
net/bluetooth/l2cap_core.c | 69 +-
net/bluetooth/lib.c | 71 +
net/bluetooth/mgmt.c | 346 +-
net/bluetooth/msft.c | 284 +-
net/bluetooth/msft.h | 6 +-
net/bpf/test_run.c | 85 +-
net/bridge/br_if.c | 10 +-
net/bridge/br_mdb.c | 15 +-
net/bridge/br_netfilter_hooks.c | 21 +-
net/bridge/br_netlink.c | 16 +-
net/bridge/br_vlan.c | 36 +-
net/bridge/netfilter/nft_meta_bridge.c | 2 +-
net/caif/caif_socket.c | 20 +-
net/can/Kconfig | 5 +-
net/can/bcm.c | 18 +-
net/can/j1939/socket.c | 5 +-
net/can/j1939/transport.c | 8 +-
net/ceph/osd_client.c | 15 +-
net/ceph/osdmap.c | 32 +-
net/ceph/pagelist.c | 2 +-
net/compat.c | 40 +-
net/core/.gitignore | 1 +
net/core/Makefile | 23 +-
net/core/bpf_sk_storage.c | 12 +-
net/core/datagram.c | 20 +-
net/core/dev.c | 82 +-
net/core/dev_ioctl.c | 4 +-
net/core/devlink.c | 1655 +-
net/core/drop_monitor.c | 36 +-
net/core/dst.c | 8 +-
net/core/failover.c | 4 +-
net/core/filter.c | 246 +-
net/core/flow_dissector.c | 53 +-
net/core/flow_offload.c | 20 +
net/core/link_watch.c | 2 +-
net/core/neighbour.c | 50 +-
net/core/net-sysfs.c | 9 +-
net/core/net_namespace.c | 7 +
net/core/netpoll.c | 2 +-
net/core/page_pool.c | 5 +-
net/core/pktgen.c | 6 +-
net/core/secure_seq.c | 4 +-
net/core/skbuff.c | 68 +-
net/core/skmsg.c | 65 +-
net/core/sock.c | 34 +-
net/core/sock_map.c | 43 +-
net/core/sock_reuseport.c | 4 +-
net/core/stream.c | 6 +-
net/dccp/proto.c | 43 +-
net/decnet/af_decnet.c | 8 +-
net/decnet/dn_neigh.c | 1 +
net/decnet/dn_route.c | 2 +-
net/dsa/Kconfig | 11 +-
net/dsa/Makefile | 1 +
net/dsa/port.c | 7 +-
net/dsa/slave.c | 37 +-
net/dsa/switch.c | 1 +
net/dsa/tag_brcm.c | 4 +-
net/dsa/tag_ksz.c | 59 +
net/dsa/tag_rzn1_a5psw.c | 113 +
net/ethtool/cabletest.c | 2 +-
net/ethtool/eeprom.c | 2 +-
net/ethtool/ioctl.c | 21 +-
net/ethtool/netlink.c | 6 +-
net/ethtool/netlink.h | 2 +-
net/hsr/hsr_debugfs.c | 10 +-
net/ipv4/af_inet.c | 35 +-
net/ipv4/ah4.c | 2 +-
net/ipv4/arp.c | 25 +-
net/ipv4/bpf_tcp_ca.c | 57 +-
net/ipv4/cipso_ipv4.c | 12 +-
net/ipv4/devinet.c | 4 +-
net/ipv4/esp4.c | 6 +-
net/ipv4/fib_semantics.c | 17 +-
net/ipv4/fib_trie.c | 9 +-
net/ipv4/icmp.c | 22 +-
net/ipv4/igmp.c | 49 +-
net/ipv4/inet_connection_sock.c | 252 +-
net/ipv4/inet_hashtables.c | 203 +-
net/ipv4/inet_timewait_sock.c | 3 +-
net/ipv4/inetpeer.c | 12 +-
net/ipv4/ip_forward.c | 2 +-
net/ipv4/ip_gre.c | 26 +-
net/ipv4/ip_input.c | 37 +-
net/ipv4/ip_output.c | 60 +-
net/ipv4/ip_sockglue.c | 8 +-
net/ipv4/ip_tunnel.c | 21 +-
net/ipv4/ip_tunnel_core.c | 2 +-
net/ipv4/ipconfig.c | 14 +-
net/ipv4/ipmr.c | 217 +-
net/ipv4/ipmr_base.c | 53 +-
net/ipv4/netfilter/nf_nat_h323.c | 42 +-
net/ipv4/netfilter/nf_reject_ipv4.c | 4 +-
net/ipv4/nexthop.c | 5 +-
net/ipv4/ping.c | 46 +-
net/ipv4/proc.c | 2 +-
net/ipv4/raw.c | 172 +-
net/ipv4/raw_diag.c | 57 +-
net/ipv4/route.c | 75 +-
net/ipv4/syncookies.c | 11 +-
net/ipv4/sysctl_net_ipv4.c | 77 +-
net/ipv4/tcp.c | 239 +-
net/ipv4/tcp_bbr.c | 24 +-
net/ipv4/tcp_bpf.c | 4 +-
net/ipv4/tcp_cubic.c | 20 +-
net/ipv4/tcp_dctcp.c | 20 +-
net/ipv4/tcp_fastopen.c | 9 +-
net/ipv4/tcp_input.c | 103 +-
net/ipv4/tcp_ipv4.c | 17 +-
net/ipv4/tcp_metrics.c | 13 +-
net/ipv4/tcp_minisocks.c | 4 +-
net/ipv4/tcp_output.c | 92 +-
net/ipv4/tcp_recovery.c | 6 +-
net/ipv4/tcp_timer.c | 49 +-
net/ipv4/udp.c | 33 +-
net/ipv4/udplite.c | 3 +
net/ipv4/xfrm4_policy.c | 2 +-
net/ipv4/xfrm4_protocol.c | 1 -
net/ipv6/Kconfig | 1 +
net/ipv6/addrconf.c | 78 +-
net/ipv6/addrconf_core.c | 2 +-
net/ipv6/af_inet6.c | 8 +-
net/ipv6/esp6.c | 4 +-
net/ipv6/icmp.c | 2 +-
net/ipv6/ip6_gre.c | 66 +-
net/ipv6/ip6_input.c | 23 +-
net/ipv6/ip6_output.c | 58 +-
net/ipv6/ip6_tunnel.c | 22 +-
net/ipv6/ip6_vti.c | 4 +-
net/ipv6/ip6mr.c | 301 +-
net/ipv6/mcast.c | 14 +-
net/ipv6/ndisc.c | 30 +-
net/ipv6/ping.c | 12 +-
net/ipv6/raw.c | 120 +-
net/ipv6/route.c | 23 +-
net/ipv6/seg6_hmac.c | 2 -
net/ipv6/seg6_iptunnel.c | 145 +-
net/ipv6/seg6_local.c | 13 +-
net/ipv6/sit.c | 20 +-
net/ipv6/syncookies.c | 3 +-
net/ipv6/tcp_ipv6.c | 21 +-
net/ipv6/udp.c | 12 +-
net/ipv6/udplite.c | 3 +
net/ipv6/xfrm6_policy.c | 4 +-
net/iucv/af_iucv.c | 2 -
net/key/af_key.c | 6 +-
net/l2tp/l2tp_debugfs.c | 6 +-
net/l2tp/l2tp_ip6.c | 5 +-
net/l2tp/l2tp_ppp.c | 2 +-
net/llc/af_llc.c | 2 +-
net/mac80211/agg-rx.c | 6 +-
net/mac80211/agg-tx.c | 6 +-
net/mac80211/airtime.c | 4 +-
net/mac80211/cfg.c | 971 +-
net/mac80211/chan.c | 685 +-
net/mac80211/debug.h | 33 +
net/mac80211/debugfs.c | 104 +-
net/mac80211/debugfs_key.c | 10 +-
net/mac80211/debugfs_netdev.c | 52 +-
net/mac80211/debugfs_sta.c | 24 +-
net/mac80211/driver-ops.c | 8 +-
net/mac80211/driver-ops.h | 120 +-
net/mac80211/eht.c | 9 +-
net/mac80211/ethtool.c | 26 +-
net/mac80211/he.c | 17 +-
net/mac80211/ht.c | 57 +-
net/mac80211/ibss.c | 99 +-
net/mac80211/ieee80211_i.h | 702 +-
net/mac80211/iface.c | 369 +-
net/mac80211/key.c | 78 +-
net/mac80211/key.h | 9 +-
net/mac80211/main.c | 234 +-
net/mac80211/mesh.c | 50 +-
net/mac80211/mesh_hwmp.c | 15 +-
net/mac80211/mesh_plink.c | 20 +-
net/mac80211/mlme.c | 5885 +-
net/mac80211/ocb.c | 15 +-
net/mac80211/offchannel.c | 88 +-
net/mac80211/rate.c | 28 +-
net/mac80211/rate.h | 10 +-
net/mac80211/rx.c | 254 +-
net/mac80211/scan.c | 14 +-
net/mac80211/spectmgmt.c | 16 +-
net/mac80211/sta_info.c | 518 +-
net/mac80211/sta_info.h | 58 +-
net/mac80211/status.c | 84 +-
net/mac80211/tdls.c | 44 +-
net/mac80211/trace.h | 1175 +-
net/mac80211/trace_msg.h | 6 +-
net/mac80211/tx.c | 988 +-
net/mac80211/util.c | 464 +-
net/mac80211/vht.c | 219 +-
net/mac80211/wme.c | 7 +-
net/mac80211/wpa.c | 133 +-
net/mac80211/wpa.h | 5 +-
net/mptcp/options.c | 12 +-
net/mptcp/pm.c | 10 +-
net/mptcp/pm_netlink.c | 165 +-
net/mptcp/pm_userspace.c | 51 +-
net/mptcp/protocol.c | 208 +-
net/mptcp/protocol.h | 49 +-
net/mptcp/subflow.c | 134 +-
net/ncsi/ncsi-manage.c | 3 +-
net/netfilter/Kconfig | 8 +
net/netfilter/Makefile | 1 +
net/netfilter/ipvs/ip_vs_mh.c | 5 +-
net/netfilter/nf_conntrack_bpf.c | 365 +-
net/netfilter/nf_conntrack_broadcast.c | 6 +-
net/netfilter/nf_conntrack_core.c | 92 +-
net/netfilter/nf_conntrack_h323_main.c | 260 +-
net/netfilter/nf_conntrack_helper.c | 4 +-
net/netfilter/nf_conntrack_netlink.c | 64 +-
net/netfilter/nf_conntrack_pptp.c | 2 +-
net/netfilter/nf_conntrack_sip.c | 9 +-
net/netfilter/nf_conntrack_standalone.c | 3 +
net/netfilter/nf_conntrack_timeout.c | 18 +-
net/netfilter/nf_dup_netdev.c | 25 +-
net/netfilter/nf_flow_table_core.c | 73 +-
net/netfilter/nf_flow_table_offload.c | 17 +-
net/netfilter/nf_flow_table_procfs.c | 80 +
net/netfilter/nf_log_syslog.c | 8 +-
net/netfilter/nf_synproxy_core.c | 2 +-
net/netfilter/nf_tables_api.c | 319 +-
net/netfilter/nf_tables_core.c | 29 +-
net/netfilter/nf_tables_offload.c | 23 +-
net/netfilter/nf_tables_trace.c | 44 +-
net/netfilter/nfnetlink.c | 2 +-
net/netfilter/nfnetlink_cthelper.c | 10 +-
net/netfilter/nfnetlink_cttimeout.c | 2 +-
net/netfilter/nfnetlink_queue.c | 7 +-
net/netfilter/nft_bitwise.c | 66 +-
net/netfilter/nft_byteorder.c | 3 +-
net/netfilter/nft_cmp.c | 62 +-
net/netfilter/nft_ct.c | 4 +-
net/netfilter/nft_dynset.c | 2 +-
net/netfilter/nft_exthdr.c | 10 +-
net/netfilter/nft_immediate.c | 22 +-
net/netfilter/nft_meta.c | 13 +-
net/netfilter/nft_nat.c | 3 +-
net/netfilter/nft_numgen.c | 12 +-
net/netfilter/nft_osf.c | 2 +-
net/netfilter/nft_queue.c | 27 +
net/netfilter/nft_range.c | 27 +-
net/netfilter/nft_set_bitmap.c | 4 +-
net/netfilter/nft_set_hash.c | 2 +
net/netfilter/nft_set_pipapo.c | 48 +-
net/netfilter/nft_socket.c | 8 +-
net/netfilter/nft_tproxy.c | 6 +-
net/netfilter/nft_tunnel.c | 3 +-
net/netfilter/nft_xfrm.c | 8 +-
net/netfilter/xt_CT.c | 23 +-
net/netfilter/xt_DSCP.c | 8 +-
net/netfilter/xt_TCPMSS.c | 4 +-
net/netfilter/xt_TPROXY.c | 25 +-
net/netfilter/xt_connlimit.c | 6 +-
net/netlabel/netlabel_unlabeled.c | 2 +-
net/openvswitch/actions.c | 6 +
net/openvswitch/conntrack.c | 4 +-
net/openvswitch/flow.c | 2 +-
net/openvswitch/vport-netdev.c | 6 +-
net/packet/af_packet.c | 16 +-
net/rds/message.c | 3 +-
net/rds/rdma.c | 2 +-
net/rose/af_rose.c | 17 +-
net/rose/rose_route.c | 6 +-
net/rose/rose_timer.c | 34 +-
net/rxrpc/protocol.h | 2 +-
net/rxrpc/rxkad.c | 2 +-
net/sched/act_api.c | 22 +-
net/sched/act_ct.c | 5 +-
net/sched/act_mirred.c | 6 +-
net/sched/act_police.c | 2 +-
net/sched/cls_api.c | 21 +-
net/sched/cls_flower.c | 72 +-
net/sched/cls_route.c | 2 +-
net/sched/sch_api.c | 2 +-
net/sched/sch_cbq.c | 82 +-
net/sched/sch_generic.c | 19 +-
net/sched/sch_netem.c | 4 +-
net/sched/sch_taprio.c | 5 +-
net/sctp/associola.c | 5 +-
net/sctp/protocol.c | 6 +-
net/sctp/sm_statefuns.c | 2 -
net/sctp/socket.c | 12 +-
net/sctp/stream.c | 19 +-
net/sctp/stream_interleave.c | 2 -
net/sctp/stream_sched.c | 2 +-
net/sctp/ulpqueue.c | 4 -
net/smc/af_smc.c | 69 +-
net/smc/smc_clc.c | 8 +-
net/smc/smc_clc.h | 2 +-
net/smc/smc_core.c | 246 +-
net/smc/smc_core.h | 20 +-
net/smc/smc_diag.c | 1 +
net/smc/smc_ib.c | 44 +-
net/smc/smc_ib.h | 2 +
net/smc/smc_ism.c | 19 +-
net/smc/smc_ism.h | 20 +-
net/smc/smc_llc.c | 35 +-
net/smc/smc_pnet.c | 7 +-
net/smc/smc_rx.c | 92 +-
net/smc/smc_sysctl.c | 11 +
net/smc/smc_tx.c | 20 +-
net/socket.c | 70 +-
net/strparser/strparser.c | 3 +
net/sunrpc/auth.c | 4 +-
net/sunrpc/auth_gss/auth_gss.c | 11 +-
net/sunrpc/backchannel_rqst.c | 30 +-
net/sunrpc/clnt.c | 208 +-
net/sunrpc/sched.c | 1 +
net/sunrpc/sunrpc.h | 16 +-
net/sunrpc/svc_xprt.c | 2 +-
net/sunrpc/sysfs.c | 28 +-
net/sunrpc/xdr.c | 205 +-
net/sunrpc/xprt.c | 59 +-
net/sunrpc/xprtmultipath.c | 111 +-
net/sunrpc/xprtrdma/svc_rdma_rw.c | 4 +-
net/sunrpc/xprtrdma/transport.c | 6 +-
net/sunrpc/xprtsock.c | 18 +-
net/switchdev/switchdev.c | 4 +-
net/tipc/bearer.c | 4 +-
net/tipc/core.c | 3 +-
net/tipc/name_table.c | 11 -
net/tipc/name_table.h | 1 -
net/tipc/node.c | 41 +-
net/tipc/socket.c | 3 +-
net/tls/Makefile | 2 +-
net/tls/tls.h | 321 +
net/tls/tls_device.c | 160 +-
net/tls/tls_device_fallback.c | 11 +-
net/tls/tls_main.c | 126 +-
net/tls/tls_proc.c | 4 +
net/tls/tls_strp.c | 494 +
net/tls/tls_sw.c | 792 +-
net/tls/tls_toe.c | 2 +
net/unix/af_unix.c | 296 +-
net/unix/diag.c | 49 +-
net/unix/sysctl_net_unix.c | 19 +-
net/vmw_vsock/af_vsock.c | 10 +-
net/wireless/ap.c | 46 +-
net/wireless/chan.c | 206 +-
net/wireless/core.c | 37 +-
net/wireless/core.h | 31 +-
net/wireless/ethtool.c | 12 +-
net/wireless/ibss.c | 57 +-
net/wireless/mesh.c | 31 +-
net/wireless/mlme.c | 308 +-
net/wireless/nl80211.c | 1550 +-
net/wireless/nl80211.h | 9 +-
net/wireless/ocb.c | 5 +-
net/wireless/rdev-ops.h | 124 +-
net/wireless/reg.c | 139 +-
net/wireless/scan.c | 8 +-
net/wireless/sme.c | 519 +-
net/wireless/trace.h | 569 +-
net/wireless/util.c | 101 +-
net/wireless/wext-compat.c | 48 +-
net/wireless/wext-sme.c | 29 +-
net/x25/af_x25.c | 5 +
net/xdp/xdp_umem.c | 6 +-
net/xdp/xsk.c | 26 +-
net/xdp/xsk_buff_pool.c | 1 +
net/xdp/xsk_queue.h | 8 -
net/xfrm/xfrm_device.c | 2 +-
net/xfrm/xfrm_policy.c | 5 +-
net/xfrm/xfrm_state.c | 8 +-
net/xfrm/xfrm_user.c | 6 +-
samples/bpf/Makefile | 19 +-
samples/bpf/fds_example.c | 3 +-
samples/bpf/sock_example.c | 3 +-
samples/bpf/test_cgrp2_attach.c | 3 +-
samples/bpf/test_lru_dist.c | 2 +-
samples/bpf/test_map_in_map_user.c | 4 +-
samples/bpf/tracex5_user.c | 3 +-
samples/bpf/xdp1_kern.c | 11 +-
samples/bpf/xdp2_kern.c | 11 +-
samples/bpf/xdp_fwd_user.c | 55 +-
samples/bpf/xdp_redirect_map.bpf.c | 6 +-
samples/bpf/xdp_redirect_map_user.c | 9 +
samples/bpf/xdp_router_ipv4.bpf.c | 9 +
samples/bpf/xdp_tx_iptunnel_kern.c | 2 +-
samples/bpf/xdpsock.h | 19 -
samples/bpf/xdpsock_ctrl_proc.c | 190 -
samples/bpf/xdpsock_kern.c | 24 -
samples/bpf/xdpsock_user.c | 2019 -
samples/bpf/xsk_fwd.c | 1085 -
samples/fprobe/fprobe_example.c | 38 +-
samples/kprobes/kprobe_example.c | 5 +-
samples/kprobes/kretprobe_example.c | 5 +-
samples/trace_events/trace-events-sample.c | 14 +-
samples/trace_events/trace-events-sample.h | 32 +-
samples/v4l/v4l2-pci-skeleton.c | 14 +-
scripts/Kconfig.include | 2 +-
scripts/Makefile.build | 9 +-
scripts/Makefile.compiler | 2 +-
scripts/Makefile.lib | 1 +
scripts/Makefile.modinst | 6 +-
scripts/Makefile.package | 4 +-
scripts/Makefile.vmlinux_o | 2 +-
scripts/bloat-o-meter | 47 +-
scripts/bpf_doc.py | 26 +-
scripts/check-local-export | 36 +-
scripts/checkpatch.pl | 5 +-
scripts/checkstack.pl | 4 +
scripts/clang-tools/gen_compile_commands.py | 6 +-
scripts/coccinelle/api/alloc/zalloc-simple.cocci | 2 +-
scripts/coccinelle/api/atomic_as_refcounter.cocci | 2 +-
scripts/coccinelle/api/check_bq27xxx_data.cocci | 2 +-
scripts/coccinelle/api/d_find_alias.cocci | 2 +-
scripts/coccinelle/api/err_cast.cocci | 2 +-
scripts/coccinelle/api/kstrdup.cocci | 2 +-
scripts/coccinelle/api/memdup.cocci | 2 +-
scripts/coccinelle/api/memdup_user.cocci | 2 +-
scripts/coccinelle/api/pm_runtime.cocci | 2 +-
scripts/coccinelle/api/resource_size.cocci | 2 +-
scripts/coccinelle/free/clk_put.cocci | 2 +-
scripts/coccinelle/free/devm_free.cocci | 2 +-
scripts/coccinelle/free/ifnulldev_put.cocci | 55 +
scripts/coccinelle/free/iounmap.cocci | 2 +-
scripts/coccinelle/free/kfree.cocci | 2 +-
scripts/coccinelle/free/kfreeaddr.cocci | 2 +-
scripts/coccinelle/free/pci_free_consistent.cocci | 2 +-
.../iterators/device_node_continue.cocci | 2 +-
scripts/coccinelle/iterators/for_each_child.cocci | 2 +-
scripts/coccinelle/iterators/itnull.cocci | 2 +-
.../coccinelle/iterators/list_entry_update.cocci | 2 +-
scripts/coccinelle/iterators/use_after_iter.cocci | 2 +-
scripts/coccinelle/locks/call_kern.cocci | 2 +-
scripts/coccinelle/locks/double_lock.cocci | 2 +-
scripts/coccinelle/locks/flags.cocci | 2 +-
scripts/coccinelle/locks/mini_lock.cocci | 2 +-
scripts/coccinelle/misc/boolreturn.cocci | 59 -
scripts/coccinelle/misc/cstptr.cocci | 2 +-
scripts/coccinelle/misc/doubleinit.cocci | 2 +-
scripts/coccinelle/misc/ifcol.cocci | 2 +-
scripts/coccinelle/misc/newline_in_nl_msg.cocci | 2 +-
scripts/coccinelle/misc/noderef.cocci | 2 +-
scripts/coccinelle/misc/orplus.cocci | 2 +-
scripts/coccinelle/misc/returnvar.cocci | 2 +-
scripts/coccinelle/misc/semicolon.cocci | 2 +-
.../misc/{ifaddr.cocci => test_addr.cocci} | 6 +-
scripts/coccinelle/misc/warn.cocci | 2 +-
scripts/coccinelle/null/badzero.cocci | 2 +-
scripts/coccinelle/null/deref_null.cocci | 2 +-
scripts/coccinelle/null/eno.cocci | 2 +-
scripts/coccinelle/null/kmerr.cocci | 2 +-
scripts/coccinelle/tests/doublebitand.cocci | 2 +-
scripts/coccinelle/tests/doubletest.cocci | 2 +-
scripts/coccinelle/tests/odd_ptr_err.cocci | 2 +-
.../tests/unsigned_lesser_than_zero.cocci | 2 +-
.../dummy-plugin-dir/include/plugin-version.h | 0
scripts/dummy-tools/gcc | 8 +-
scripts/faddr2line | 50 +-
scripts/gcc-plugins/latent_entropy_plugin.c | 2 +-
scripts/gcc-plugins/stackleak_plugin.c | 2 +-
scripts/gcc-plugins/structleak_plugin.c | 2 +-
scripts/gdb/linux/config.py | 6 +-
scripts/gdb/linux/dmesg.py | 9 +-
scripts/gdb/linux/symbols.py | 2 +-
scripts/gdb/linux/utils.py | 14 +-
scripts/gdb/vmlinux-gdb.py | 2 +-
scripts/gen_autoksyms.sh | 3 +
scripts/get_feat.pl | 2 +-
scripts/headers_install.sh | 2 -
scripts/kconfig/qconf-cfg.sh | 1 +
scripts/kernel-doc | 82 +-
scripts/mod/file2alias.c | 4 +-
scripts/mod/modpost.c | 286 +-
scripts/mod/modpost.h | 33 +-
scripts/module.lds.S | 2 +
scripts/nsdeps | 5 +-
scripts/package/mkspec | 3 +
scripts/remove-stale-files | 6 +
scripts/sign-file.c | 9 +-
scripts/sphinx-pre-install | 90 +-
scripts/tags.sh | 9 +-
scripts/tracing/draw_functrace.py | 2 +-
security/Kconfig | 11 -
security/apparmor/Kconfig | 86 +-
security/apparmor/apparmorfs.c | 103 +-
security/apparmor/audit.c | 2 +-
security/apparmor/domain.c | 5 +-
security/apparmor/include/apparmor.h | 1 +
security/apparmor/include/apparmorfs.h | 14 +
security/apparmor/include/file.h | 3 +
security/apparmor/include/ipc.h | 18 -
security/apparmor/include/label.h | 2 +
security/apparmor/include/lib.h | 5 +
security/apparmor/include/path.h | 4 +-
security/apparmor/include/policy.h | 6 +-
security/apparmor/include/policy_ns.h | 1 +
security/apparmor/include/policy_unpack.h | 2 +
security/apparmor/include/secid.h | 5 +-
security/apparmor/include/task.h | 18 +
security/apparmor/ipc.c | 110 -
security/apparmor/label.c | 29 +-
security/apparmor/lib.c | 27 +-
security/apparmor/lsm.c | 38 +-
security/apparmor/mount.c | 13 +-
security/apparmor/net.c | 3 +-
security/apparmor/policy.c | 35 +-
security/apparmor/policy_ns.c | 53 +-
security/apparmor/policy_unpack.c | 53 +-
security/apparmor/policy_unpack_test.c | 28 +-
security/apparmor/procattr.c | 2 +-
security/apparmor/secid.c | 56 +-
security/apparmor/task.c | 114 +
security/integrity/evm/evm_crypto.c | 7 +-
security/integrity/evm/evm_main.c | 64 +-
security/integrity/ima/ima_appraise.c | 3 +-
security/integrity/ima/ima_crypto.c | 1 +
security/integrity/ima/ima_efi.c | 2 +
security/integrity/ima/ima_kexec.c | 2 +-
security/integrity/ima/ima_policy.c | 4 +
security/integrity/ima/ima_template_lib.c | 6 +-
security/keys/trusted-keys/trusted_tpm2.c | 4 +-
security/loadpin/Kconfig | 16 +
security/loadpin/loadpin.c | 167 +-
security/safesetid/lsm.c | 39 +-
security/security.c | 10 +-
security/selinux/hooks.c | 28 +-
security/selinux/include/audit.h | 2 +-
security/selinux/include/avc.h | 2 +-
security/selinux/ss/policydb.h | 2 +
security/selinux/ss/services.c | 9 +-
security/smack/smack_access.c | 7 +-
security/smack/smack_lsm.c | 7 -
sound/ac97/bus.c | 2 +-
sound/aoa/soundbus/sysfs.c | 22 +-
sound/core/Kconfig | 37 +-
sound/core/compress_offload.c | 9 +-
sound/core/control.c | 290 +-
sound/core/control_led.c | 29 +-
sound/core/device.c | 2 +
sound/core/info.c | 2 +
sound/core/init.c | 18 +-
sound/core/isadma.c | 5 +-
sound/core/memalloc.c | 33 +-
sound/core/misc.c | 94 +
sound/core/pcm.c | 7 +-
sound/core/pcm_dmaengine.c | 30 +-
sound/core/pcm_lib.c | 2 +-
sound/core/pcm_memory.c | 4 +
sound/core/pcm_native.c | 8 +-
sound/core/rawmidi.c | 274 +-
sound/core/timer.c | 11 +-
sound/core/vmaster.c | 3 +-
sound/hda/ext/hdac_ext_controller.c | 7 -
sound/hda/hdac_bus.c | 2 +-
sound/hda/hdac_controller.c | 7 +-
sound/hda/hdac_device.c | 1 +
sound/hda/hdac_i915.c | 15 +-
sound/hda/hdac_sysfs.c | 42 +-
sound/hda/intel-dsp-config.c | 17 +
sound/hda/intel-nhlt.c | 17 +-
sound/hda/trace.h | 41 +-
sound/isa/wavefront/wavefront_synth.c | 2 -
sound/pci/asihpi/hpi6000.c | 2 +-
sound/pci/asihpi/hpi6205.c | 2 +-
sound/pci/cs46xx/cs46xx.c | 22 +-
sound/pci/emu10k1/memory.c | 2 +-
sound/pci/ens1370.c | 2 +-
sound/pci/hda/Kconfig | 12 +-
sound/pci/hda/Makefile | 2 +
sound/pci/hda/cs35l41_hda.c | 958 +-
sound/pci/hda/cs35l41_hda.h | 39 +
sound/pci/hda/cs35l41_hda_i2c.c | 19 +-
sound/pci/hda/cs35l41_hda_spi.c | 16 +-
sound/pci/hda/hda_auto_parser.c | 7 +-
sound/pci/hda/hda_bind.c | 7 +
sound/pci/hda/hda_codec.c | 55 +-
sound/pci/hda/hda_component.h | 3 +
sound/pci/hda/hda_cs_dsp_ctl.c | 240 +
sound/pci/hda/hda_cs_dsp_ctl.h | 39 +
sound/pci/hda/hda_intel.c | 3 +
sound/pci/hda/hda_local.h | 1 +
sound/pci/hda/hda_sysfs.c | 23 +-
sound/pci/hda/patch_cirrus.c | 1 +
sound/pci/hda/patch_conexant.c | 23 +-
sound/pci/hda/patch_cs8409-tables.c | 6 +-
sound/pci/hda/patch_cs8409.h | 2 -
sound/pci/hda/patch_hdmi.c | 1 +
sound/pci/hda/patch_realtek.c | 237 +-
sound/pci/hda/patch_via.c | 4 +-
sound/pci/ice1712/quartet.c | 2 +-
sound/soc/Makefile | 4 +-
sound/soc/adi/axi-i2s.c | 1 +
sound/soc/adi/axi-spdif.c | 1 +
sound/soc/amd/Kconfig | 22 +
sound/soc/amd/Makefile | 3 +
sound/soc/amd/acp-config.c | 30 +
sound/soc/amd/acp-es8336.c | 318 +
sound/soc/amd/acp-pcm-dma.c | 50 +-
sound/soc/amd/acp.h | 13 +
sound/soc/amd/acp/Kconfig | 12 +
sound/soc/amd/acp/Makefile | 2 +
sound/soc/amd/acp/acp-i2s.c | 169 +-
sound/soc/amd/acp/acp-legacy-mach.c | 32 +
sound/soc/amd/acp/acp-mach-common.c | 301 +-
sound/soc/amd/acp/acp-mach.h | 9 +
sound/soc/amd/acp/acp-pci.c | 35 +-
sound/soc/amd/acp/acp-pdm.c | 10 +-
sound/soc/amd/acp/acp-platform.c | 55 +-
sound/soc/amd/acp/acp-rembrandt.c | 401 +
sound/soc/amd/acp/acp-renoir.c | 48 +-
sound/soc/amd/acp/acp-sof-mach.c | 30 +
sound/soc/amd/acp/amd.h | 86 +-
sound/soc/amd/acp/chip_offset_byte.h | 40 +-
sound/soc/amd/mach-config.h | 1 +
sound/soc/amd/raven/acp3x-i2s.c | 3 +-
sound/soc/amd/renoir/acp3x-pdm-dma.c | 13 +-
sound/soc/amd/rpl/Makefile | 5 +
sound/soc/amd/rpl/rpl-pci-acp6x.c | 227 +
sound/soc/amd/rpl/rpl_acp6x.h | 36 +
sound/soc/amd/rpl/rpl_acp6x_chip_offset_byte.h | 30 +
sound/soc/amd/vangogh/acp5x-i2s.c | 5 +-
sound/soc/amd/vangogh/acp5x-mach.c | 3 +-
sound/soc/amd/yc/acp6x-mach.c | 32 +-
sound/soc/amd/yc/acp6x-pdm-dma.c | 13 +-
sound/soc/amd/yc/pci-acp6x.c | 2 +-
sound/soc/atmel/atmel-classd.c | 1 +
sound/soc/atmel/atmel-i2s.c | 7 +-
sound/soc/atmel/atmel-pdmic.c | 1 +
sound/soc/atmel/atmel_ssc_dai.c | 30 +-
sound/soc/atmel/mchp-i2s-mcc.c | 11 +-
sound/soc/atmel/mchp-pdmc.c | 7 +-
sound/soc/atmel/mchp-spdifrx.c | 22 +-
sound/soc/atmel/mchp-spdiftx.c | 25 +-
sound/soc/atmel/mikroe-proto.c | 4 +-
sound/soc/au1x/ac97c.c | 3 +-
sound/soc/au1x/i2sc.c | 5 +-
sound/soc/au1x/psc-ac97.c | 3 +-
sound/soc/au1x/psc-i2s.c | 7 +-
sound/soc/bcm/bcm2835-i2s.c | 23 +-
sound/soc/bcm/bcm63xx-i2s-whistler.c | 1 +
sound/soc/bcm/cygnus-pcm.c | 14 +-
sound/soc/bcm/cygnus-ssp.c | 25 +-
sound/soc/bcm/cygnus-ssp.h | 14 +-
sound/soc/cirrus/ep93xx-ac97.c | 3 +-
sound/soc/cirrus/ep93xx-i2s.c | 11 +-
sound/soc/codecs/88pm860x-codec.c | 1 -
sound/soc/codecs/Kconfig | 28 +
sound/soc/codecs/Makefile | 6 +
sound/soc/codecs/ab8500-codec.c | 3 -
sound/soc/codecs/ab8500-codec.h | 2 -
sound/soc/codecs/ac97.c | 1 -
sound/soc/codecs/ad1836.c | 1 -
sound/soc/codecs/ad193x.c | 1 -
sound/soc/codecs/ad1980.c | 1 -
sound/soc/codecs/ad73311.c | 1 -
sound/soc/codecs/adau1373.c | 1 -
sound/soc/codecs/adau1701.c | 1 -
sound/soc/codecs/adau1761.c | 1 -
sound/soc/codecs/adau1781.c | 1 -
sound/soc/codecs/adau1977.c | 1 -
sound/soc/codecs/adau7002.c | 1 -
sound/soc/codecs/adau7118.c | 1 -
sound/soc/codecs/adav80x.c | 1 -
sound/soc/codecs/ads117x.c | 1 -
sound/soc/codecs/ak4104.c | 1 -
sound/soc/codecs/ak4118.c | 1 -
sound/soc/codecs/ak4375.c | 1 -
sound/soc/codecs/ak4458.c | 2 -
sound/soc/codecs/ak4535.c | 1 -
sound/soc/codecs/ak4554.c | 1 -
sound/soc/codecs/ak4613.c | 13 +-
sound/soc/codecs/ak4641.c | 1 -
sound/soc/codecs/ak4642.c | 1 -
sound/soc/codecs/ak4671.c | 1 -
sound/soc/codecs/ak5386.c | 1 -
sound/soc/codecs/ak5558.c | 2 -
sound/soc/codecs/alc5623.c | 1 -
sound/soc/codecs/alc5632.c | 1 -
sound/soc/codecs/arizona.c | 4 +-
sound/soc/codecs/bd28623.c | 1 -
sound/soc/codecs/bt-sco.c | 1 -
sound/soc/codecs/cpcap.c | 1 -
sound/soc/codecs/cq93vc.c | 1 -
sound/soc/codecs/cros_ec_codec.c | 1 +
sound/soc/codecs/cs35l32.c | 1 -
sound/soc/codecs/cs35l33.c | 1 -
sound/soc/codecs/cs35l34.c | 1 -
sound/soc/codecs/cs35l35.c | 1 -
sound/soc/codecs/cs35l36.c | 4 +-
sound/soc/codecs/cs35l41-lib.c | 92 +-
sound/soc/codecs/cs35l41-spi.c | 1 +
sound/soc/codecs/cs35l41.c | 113 +-
sound/soc/codecs/cs35l45-i2c.c | 4 +-
sound/soc/codecs/cs35l45.c | 6 +-
sound/soc/codecs/cs35l45.h | 4 +-
sound/soc/codecs/cs4234.c | 1 -
sound/soc/codecs/cs4265.c | 1 -
sound/soc/codecs/cs4270.c | 2 -
sound/soc/codecs/cs4271.c | 1 -
sound/soc/codecs/cs42l42.c | 4 +-
sound/soc/codecs/cs42l51.c | 3 +-
sound/soc/codecs/cs42l52.c | 9 +-
sound/soc/codecs/cs42l56.c | 5 +-
sound/soc/codecs/cs42l73.c | 1 -
sound/soc/codecs/cs42xx8.c | 1 -
sound/soc/codecs/cs43130.c | 1 -
sound/soc/codecs/cs4341.c | 1 -
sound/soc/codecs/cs4349.c | 1 -
sound/soc/codecs/cs47l15.c | 6 +-
sound/soc/codecs/cs47l24.c | 1 -
sound/soc/codecs/cs47l35.c | 1 -
sound/soc/codecs/cs47l85.c | 1 -
sound/soc/codecs/cs47l90.c | 1 -
sound/soc/codecs/cs47l92.c | 9 +-
sound/soc/codecs/cs53l30.c | 17 +-
sound/soc/codecs/cx20442.c | 1 -
sound/soc/codecs/cx2072x.c | 17 +-
sound/soc/codecs/da7210.c | 3 +-
sound/soc/codecs/da7213.c | 1 -
sound/soc/codecs/da7218.c | 1 -
sound/soc/codecs/da7219.c | 7 -
sound/soc/codecs/da732x.c | 7 -
sound/soc/codecs/da9055.c | 1 -
sound/soc/codecs/dmic.c | 1 -
sound/soc/codecs/es7134.c | 1 -
sound/soc/codecs/es7241.c | 1 -
sound/soc/codecs/es8316.c | 21 +-
sound/soc/codecs/es8328.c | 6 +-
sound/soc/codecs/gtm601.c | 1 -
sound/soc/codecs/hda-dai.c | 102 +
sound/soc/codecs/hda.c | 395 +
sound/soc/codecs/hda.h | 19 +
sound/soc/codecs/hdac_hdmi.c | 1 -
sound/soc/codecs/hdmi-codec.c | 19 +-
sound/soc/codecs/ics43432.c | 1 -
sound/soc/codecs/inno_rk3036.c | 1 -
sound/soc/codecs/isabelle.c | 1 -
sound/soc/codecs/jz4740.c | 2 -
sound/soc/codecs/lm49453.c | 7 -
sound/soc/codecs/lochnagar-sc.c | 1 -
sound/soc/codecs/lpass-va-macro.c | 11 +-
sound/soc/codecs/madera.c | 14 +-
sound/soc/codecs/max98088.c | 33 +-
sound/soc/codecs/max98090.c | 13 +-
sound/soc/codecs/max98095.c | 1 -
sound/soc/codecs/max98357a.c | 1 -
sound/soc/codecs/max98371.c | 1 -
sound/soc/codecs/max98373-i2c.c | 1 -
sound/soc/codecs/max98373-sdw.c | 12 +-
sound/soc/codecs/max98373.c | 16 +-
sound/soc/codecs/max98390.c | 3 +-
sound/soc/codecs/max98396.c | 281 +-
sound/soc/codecs/max98396.h | 10 +-
sound/soc/codecs/max9850.c | 1 -
sound/soc/codecs/max98520.c | 1 -
sound/soc/codecs/max9860.c | 7 +-
sound/soc/codecs/max9867.c | 1 -
sound/soc/codecs/max98925.c | 1 -
sound/soc/codecs/max98926.c | 1 -
sound/soc/codecs/max98927.c | 1 -
sound/soc/codecs/mc13783.c | 1 -
sound/soc/codecs/ml26124.c | 1 -
sound/soc/codecs/msm8916-wcd-analog.c | 1 -
sound/soc/codecs/msm8916-wcd-digital.c | 47 +-
sound/soc/codecs/mt6358.c | 1 +
sound/soc/codecs/mt6359-accdet.c | 1 +
sound/soc/codecs/mt6359.c | 1 +
sound/soc/codecs/nau8315.c | 1 -
sound/soc/codecs/nau8540.c | 1 -
sound/soc/codecs/nau8810.c | 1 -
sound/soc/codecs/nau8821.c | 76 +-
sound/soc/codecs/nau8821.h | 1 +
sound/soc/codecs/nau8822.c | 19 +-
sound/soc/codecs/nau8822.h | 5 +
sound/soc/codecs/nau8824.c | 1 -
sound/soc/codecs/nau8825.c | 3 +-
sound/soc/codecs/pcm1681.c | 1 -
sound/soc/codecs/pcm1789.c | 1 -
sound/soc/codecs/pcm179x.c | 1 -
sound/soc/codecs/pcm186x.c | 2 -
sound/soc/codecs/pcm3008.c | 1 -
sound/soc/codecs/pcm3168a.c | 1 -
sound/soc/codecs/pcm5102a.c | 1 -
sound/soc/codecs/pcm512x.c | 1 -
sound/soc/codecs/rk3328_codec.c | 6 +-
sound/soc/codecs/rk817_codec.c | 1 -
sound/soc/codecs/rt1011.c | 1 -
sound/soc/codecs/rt1015.c | 1 -
sound/soc/codecs/rt1015p.c | 1 -
sound/soc/codecs/rt1016.c | 1 -
sound/soc/codecs/rt1019.c | 1 -
sound/soc/codecs/rt1305.c | 1 -
sound/soc/codecs/rt1308-sdw.c | 23 +
sound/soc/codecs/rt1308.c | 1 -
sound/soc/codecs/rt1316-sdw.c | 23 +
sound/soc/codecs/rt274.c | 11 +-
sound/soc/codecs/rt286.c | 19 +-
sound/soc/codecs/rt286.h | 2 -
sound/soc/codecs/rt298.c | 61 +-
sound/soc/codecs/rt298.h | 2 -
sound/soc/codecs/rt5514.c | 1 -
sound/soc/codecs/rt5616.c | 1 -
sound/soc/codecs/rt5631.c | 1 -
sound/soc/codecs/rt5640.c | 43 +-
sound/soc/codecs/rt5645.c | 1 -
sound/soc/codecs/rt5651.c | 1 -
sound/soc/codecs/rt5659.c | 1 -
sound/soc/codecs/rt5660.c | 1 -
sound/soc/codecs/rt5663.c | 1 -
sound/soc/codecs/rt5665.c | 1 -
sound/soc/codecs/rt5668.c | 1 -
sound/soc/codecs/rt5670.c | 1 -
sound/soc/codecs/rt5677.c | 1 -
sound/soc/codecs/rt5682-sdw.c | 5 +-
sound/soc/codecs/rt5682.c | 1 -
sound/soc/codecs/rt5682s.c | 1 -
sound/soc/codecs/rt700-sdw.c | 6 +-
sound/soc/codecs/rt700.c | 35 +-
sound/soc/codecs/rt711-sdca-sdw.c | 9 +-
sound/soc/codecs/rt711-sdca.c | 49 +-
sound/soc/codecs/rt711-sdw.c | 9 +-
sound/soc/codecs/rt711.c | 45 +-
sound/soc/codecs/rt715-sdca-sdw.c | 12 +
sound/soc/codecs/rt715-sdca.c | 12 +
sound/soc/codecs/rt715-sdw.c | 12 +
sound/soc/codecs/rt715.c | 12 +
sound/soc/codecs/sgtl5000.c | 10 +-
sound/soc/codecs/sgtl5000.h | 1 +
sound/soc/codecs/si476x.c | 1 -
sound/soc/codecs/spdif_receiver.c | 1 -
sound/soc/codecs/spdif_transmitter.c | 1 -
sound/soc/codecs/ssm2518.c | 5 +-
sound/soc/codecs/ssm2602.c | 7 +-
sound/soc/codecs/ssm4567.c | 5 +-
sound/soc/codecs/sta32x.c | 5 +-
sound/soc/codecs/sta350.c | 5 +-
sound/soc/codecs/sta529.c | 1 -
sound/soc/codecs/stac9766.c | 2 -
sound/soc/codecs/sti-sas.c | 7 +-
sound/soc/codecs/tas2552.c | 13 +-
sound/soc/codecs/tas2562.c | 2 -
sound/soc/codecs/tas2764.c | 47 +-
sound/soc/codecs/tas2764.h | 6 +-
sound/soc/codecs/tas2770.c | 7 +-
sound/soc/codecs/tas2780.c | 663 +
sound/soc/codecs/tas2780.h | 101 +
sound/soc/codecs/tas5086.c | 3 +-
sound/soc/codecs/tas571x.c | 1 -
sound/soc/codecs/tas5720.c | 6 +-
sound/soc/codecs/tas5805m.c | 1 -
sound/soc/codecs/tas6424.c | 7 +-
sound/soc/codecs/tfa9879.c | 5 +-
sound/soc/codecs/tfa989x.c | 31 +-
sound/soc/codecs/tlv320adc3xxx.c | 3 +-
sound/soc/codecs/tlv320adcx140.c | 24 +-
sound/soc/codecs/tlv320aic23.c | 8 +-
sound/soc/codecs/tlv320aic26.c | 16 +-
sound/soc/codecs/tlv320aic31xx.c | 20 +-
sound/soc/codecs/tlv320aic32x4.c | 11 +-
sound/soc/codecs/tlv320aic3x.c | 12 +-
sound/soc/codecs/tlv320dac33.c | 13 +-
sound/soc/codecs/tscs42xx.c | 1 -
sound/soc/codecs/twl4030.c | 102 +-
sound/soc/codecs/twl6040.c | 1 -
sound/soc/codecs/uda1334.c | 3 +-
sound/soc/codecs/uda134x.c | 1 -
sound/soc/codecs/uda1380.c | 1 -
sound/soc/codecs/wcd-mbhc-v2.c | 12 +-
sound/soc/codecs/wcd9335.c | 123 +-
sound/soc/codecs/wcd938x.c | 12 +
sound/soc/codecs/wl1273.c | 1 -
sound/soc/codecs/wm0010.c | 1 -
sound/soc/codecs/wm1250-ev1.c | 1 -
sound/soc/codecs/wm2000.c | 1 -
sound/soc/codecs/wm2200.c | 1 -
sound/soc/codecs/wm5100.c | 1 -
sound/soc/codecs/wm5102.c | 22 +-
sound/soc/codecs/wm5110.c | 9 +-
sound/soc/codecs/wm8350.c | 1 -
sound/soc/codecs/wm8400.c | 1 -
sound/soc/codecs/wm8510.c | 1 -
sound/soc/codecs/wm8523.c | 1 -
sound/soc/codecs/wm8524.c | 1 -
sound/soc/codecs/wm8580.c | 1 -
sound/soc/codecs/wm8711.c | 1 -
sound/soc/codecs/wm8727.c | 1 -
sound/soc/codecs/wm8728.c | 1 -
sound/soc/codecs/wm8731.c | 1 -
sound/soc/codecs/wm8737.c | 1 -
sound/soc/codecs/wm8741.c | 1 -
sound/soc/codecs/wm8750.c | 1 -
sound/soc/codecs/wm8753.c | 1 -
sound/soc/codecs/wm8770.c | 1 -
sound/soc/codecs/wm8776.c | 1 -
sound/soc/codecs/wm8782.c | 1 -
sound/soc/codecs/wm8804.c | 1 -
sound/soc/codecs/wm8900.c | 1 -
sound/soc/codecs/wm8903.c | 1 -
sound/soc/codecs/wm8904.c | 1 -
sound/soc/codecs/wm8940.c | 1 -
sound/soc/codecs/wm8955.c | 1 -
sound/soc/codecs/wm8960.c | 1 -
sound/soc/codecs/wm8961.c | 1 -
sound/soc/codecs/wm8962.c | 2 +-
sound/soc/codecs/wm8971.c | 1 -
sound/soc/codecs/wm8974.c | 1 -
sound/soc/codecs/wm8978.c | 1 -
sound/soc/codecs/wm8983.c | 1 -
sound/soc/codecs/wm8985.c | 1 -
sound/soc/codecs/wm8988.c | 1 -
sound/soc/codecs/wm8990.c | 1 -
sound/soc/codecs/wm8991.c | 1 -
sound/soc/codecs/wm8993.c | 1 -
sound/soc/codecs/wm8994.c | 1 -
sound/soc/codecs/wm8995.c | 1 -
sound/soc/codecs/wm8996.c | 2 -
sound/soc/codecs/wm8997.c | 1 -
sound/soc/codecs/wm8998.c | 22 +-
sound/soc/codecs/wm9081.c | 1 -
sound/soc/codecs/wm9090.c | 1 -
sound/soc/codecs/wm9705.c | 1 -
sound/soc/codecs/wm9712.c | 1 -
sound/soc/codecs/wm9713.c | 1 -
sound/soc/codecs/wm_adsp.c | 29 +-
sound/soc/codecs/wsa881x.c | 16 +-
sound/soc/codecs/wsa883x.c | 1511 +
sound/soc/codecs/zl38060.c | 1 -
sound/soc/dwc/dwc-i2s.c | 15 +-
sound/soc/fsl/Kconfig | 3 +
sound/soc/fsl/fsl-asoc-card.c | 5 +-
sound/soc/fsl/fsl_asrc.c | 6 +-
sound/soc/fsl/fsl_asrc_dma.c | 19 +-
sound/soc/fsl/fsl_aud2htx.c | 3 +-
sound/soc/fsl/fsl_audmix.c | 6 +-
sound/soc/fsl/fsl_easrc.c | 16 +-
sound/soc/fsl/fsl_easrc.h | 2 +-
sound/soc/fsl/fsl_esai.c | 11 +-
sound/soc/fsl/fsl_micfil.c | 55 +-
sound/soc/fsl/fsl_micfil.h | 9 +
sound/soc/fsl/fsl_mqs.c | 136 +-
sound/soc/fsl/fsl_rpmsg.c | 3 +-
sound/soc/fsl/fsl_sai.c | 376 +-
sound/soc/fsl/fsl_sai.h | 28 +-
sound/soc/fsl/fsl_spdif.c | 51 +-
sound/soc/fsl/fsl_ssi.c | 23 +-
sound/soc/fsl/fsl_utils.c | 69 +
sound/soc/fsl/fsl_utils.h | 7 +
sound/soc/fsl/fsl_xcvr.c | 12 +-
sound/soc/fsl/imx-audmix.c | 4 +-
sound/soc/fsl/imx-audmux.c | 24 +-
sound/soc/fsl/imx-card.c | 24 +-
sound/soc/fsl/mpc5200_psc_i2s.c | 3 +-
sound/soc/fsl/pcm030-audio-fabric.c | 8 +-
sound/soc/generic/audio-graph-card.c | 4 +-
.../generic/audio-graph-card2-custom-sample.dtsi | 101 +-
sound/soc/generic/audio-graph-card2.c | 84 +-
sound/soc/generic/simple-card-utils.c | 44 +-
sound/soc/generic/test-component.c | 20 +-
sound/soc/hisilicon/hi6210-i2s.c | 19 +-
sound/soc/img/img-i2s-in.c | 7 +-
sound/soc/img/img-i2s-out.c | 21 +-
sound/soc/img/img-parallel-out.c | 3 +-
sound/soc/img/img-spdif-in.c | 3 +-
sound/soc/img/img-spdif-out.c | 3 +-
sound/soc/img/pistachio-internal-dac.c | 1 -
sound/soc/intel/Kconfig | 5 +-
sound/soc/intel/atom/sst-atom-controls.c | 8 +-
sound/soc/intel/atom/sst/sst.c | 2 +-
sound/soc/intel/atom/sst/sst_ipc.c | 8 +-
sound/soc/intel/avs/Makefile | 3 +
sound/soc/intel/avs/boards/Kconfig | 121 +
sound/soc/intel/avs/boards/Makefile | 27 +
sound/soc/intel/avs/boards/da7219.c | 282 +
sound/soc/intel/avs/boards/dmic.c | 93 +
sound/soc/intel/avs/boards/hdaudio.c | 294 +
sound/soc/intel/avs/boards/i2s_test.c | 180 +
sound/soc/intel/avs/boards/max98357a.c | 154 +
sound/soc/intel/avs/boards/max98373.c | 239 +
sound/soc/intel/avs/boards/nau8825.c | 353 +
sound/soc/intel/avs/boards/rt274.c | 310 +
sound/soc/intel/avs/boards/rt286.c | 281 +
sound/soc/intel/avs/boards/rt298.c | 281 +
sound/soc/intel/avs/boards/rt5682.c | 340 +
sound/soc/intel/avs/boards/ssm4567.c | 271 +
sound/soc/intel/avs/cldma.c | 12 +-
sound/soc/intel/avs/core.c | 13 +-
sound/soc/intel/avs/dsp.c | 11 +-
sound/soc/intel/avs/ipc.c | 1 +
sound/soc/intel/avs/loader.c | 2 +-
sound/soc/intel/avs/messages.c | 18 +-
sound/soc/intel/avs/path.c | 54 +-
sound/soc/intel/avs/pcm.c | 2 -
sound/soc/intel/avs/topology.c | 31 +-
sound/soc/intel/boards/Kconfig | 5 +-
sound/soc/intel/boards/Makefile | 4 +-
sound/soc/intel/boards/bdw-rt5650.c | 1 +
sound/soc/intel/boards/bdw-rt5677.c | 1 +
sound/soc/intel/boards/bdw_rt286.c | 280 +
sound/soc/intel/boards/broadwell.c | 336 -
sound/soc/intel/boards/bxt_da7219_max98357a.c | 21 +-
sound/soc/intel/boards/bxt_rt298.c | 2 +-
sound/soc/intel/boards/bytcht_cx2072x.c | 2 +-
sound/soc/intel/boards/bytcht_da7213.c | 2 +-
sound/soc/intel/boards/bytcht_es8316.c | 2 +-
sound/soc/intel/boards/bytcht_nocodec.c | 2 +-
sound/soc/intel/boards/bytcr_rt5640.c | 4 +-
sound/soc/intel/boards/bytcr_rt5651.c | 4 +-
sound/soc/intel/boards/bytcr_wm5102.c | 15 +-
sound/soc/intel/boards/cht_bsw_max98090_ti.c | 3 +-
sound/soc/intel/boards/cht_bsw_rt5645.c | 8 +-
sound/soc/intel/boards/cht_bsw_rt5672.c | 2 +-
sound/soc/intel/boards/cml_rt1011_rt5682.c | 23 +-
sound/soc/intel/boards/glk_rt5682_max98357a.c | 21 +-
sound/soc/intel/boards/haswell.c | 202 -
sound/soc/intel/boards/hda_dsp_common.c | 4 +-
sound/soc/intel/boards/hsw_rt5640.c | 177 +
sound/soc/intel/boards/kbl_da7219_max98357a.c | 21 +-
sound/soc/intel/boards/kbl_da7219_max98927.c | 21 +-
sound/soc/intel/boards/kbl_rt5663_max98927.c | 21 +-
.../soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 21 +-
sound/soc/intel/boards/skl_hda_dsp_generic.c | 4 +-
sound/soc/intel/boards/skl_nau88l25_max98357a.c | 19 +-
sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 19 +-
sound/soc/intel/boards/skl_rt286.c | 2 +-
sound/soc/intel/boards/sof_cirrus_common.c | 40 +-
sound/soc/intel/boards/sof_cs42l42.c | 109 +-
sound/soc/intel/boards/sof_da7219_max98373.c | 23 +-
sound/soc/intel/boards/sof_es8336.c | 160 +-
sound/soc/intel/boards/sof_nau8825.c | 33 +-
sound/soc/intel/boards/sof_pcm512x.c | 2 +-
sound/soc/intel/boards/sof_realtek_common.c | 24 +-
sound/soc/intel/boards/sof_realtek_common.h | 6 +-
sound/soc/intel/boards/sof_rt5682.c | 61 +-
sound/soc/intel/boards/sof_sdw.c | 104 +-
sound/soc/intel/boards/sof_sdw_rt711.c | 3 +
sound/soc/intel/boards/sof_sdw_rt711_sdca.c | 3 +
sound/soc/intel/catpt/device.c | 5 +-
sound/soc/intel/catpt/pcm.c | 26 +-
sound/soc/intel/catpt/sysfs.c | 4 +-
sound/soc/intel/common/Makefile | 1 +
sound/soc/intel/common/soc-acpi-intel-adl-match.c | 61 +
.../intel/common/soc-acpi-intel-hsw-bdw-match.c | 6 +-
sound/soc/intel/common/soc-acpi-intel-mtl-match.c | 89 +
sound/soc/intel/keembay/kmb_platform.c | 18 +-
sound/soc/intel/skylake/skl-nhlt.c | 40 +-
sound/soc/intel/skylake/skl-pcm.c | 5 +-
sound/soc/intel/skylake/skl-topology.c | 6 -
sound/soc/jz4740/Kconfig | 2 +-
sound/soc/jz4740/jz4740-i2s.c | 44 +-
sound/soc/mediatek/Kconfig | 45 +
sound/soc/mediatek/Makefile | 1 +
sound/soc/mediatek/common/Makefile | 2 +-
sound/soc/mediatek/common/mtk-dsp-sof-common.c | 196 +
sound/soc/mediatek/common/mtk-dsp-sof-common.h | 36 +
sound/soc/mediatek/common/mtk-soc-card.h | 17 +
sound/soc/mediatek/mt6797/mt6797-mt6351.c | 6 +-
sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 6 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 10 +-
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 9 +-
sound/soc/mediatek/mt8186/Makefile | 22 +
sound/soc/mediatek/mt8186/mt8186-afe-clk.c | 652 +
sound/soc/mediatek/mt8186/mt8186-afe-clk.h | 106 +
sound/soc/mediatek/mt8186/mt8186-afe-common.h | 195 +
sound/soc/mediatek/mt8186/mt8186-afe-control.c | 255 +
sound/soc/mediatek/mt8186/mt8186-afe-gpio.c | 243 +
sound/soc/mediatek/mt8186/mt8186-afe-gpio.h | 19 +
sound/soc/mediatek/mt8186/mt8186-afe-pcm.c | 3000 +
sound/soc/mediatek/mt8186/mt8186-audsys-clk.c | 150 +
sound/soc/mediatek/mt8186/mt8186-audsys-clk.h | 15 +
sound/soc/mediatek/mt8186/mt8186-audsys-clkid.h | 45 +
sound/soc/mediatek/mt8186/mt8186-dai-adda.c | 865 +
sound/soc/mediatek/mt8186/mt8186-dai-hostless.c | 298 +
sound/soc/mediatek/mt8186/mt8186-dai-hw-gain.c | 236 +
sound/soc/mediatek/mt8186/mt8186-dai-i2s.c | 1223 +
sound/soc/mediatek/mt8186/mt8186-dai-pcm.c | 418 +
sound/soc/mediatek/mt8186/mt8186-dai-src.c | 695 +
sound/soc/mediatek/mt8186/mt8186-dai-tdm.c | 645 +
sound/soc/mediatek/mt8186/mt8186-interconnection.h | 69 +
sound/soc/mediatek/mt8186/mt8186-misc-control.c | 252 +
sound/soc/mediatek/mt8186/mt8186-mt6366-common.c | 57 +
sound/soc/mediatek/mt8186/mt8186-mt6366-common.h | 17 +
.../mt8186/mt8186-mt6366-da7219-max98357.c | 1002 +
.../mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c | 978 +
sound/soc/mediatek/mt8186/mt8186-reg.h | 2913 +
sound/soc/mediatek/mt8195/mt8195-afe-clk.c | 8 +-
sound/soc/mediatek/mt8195/mt8195-dai-etdm.c | 6 +-
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 6 +-
sound/soc/mediatek/mt8195/mt8195-mt6359.c | 233 +-
sound/soc/meson/aiu-acodec-ctrl.c | 1 -
sound/soc/meson/aiu-codec-ctrl.c | 1 -
sound/soc/meson/aiu-encoder-i2s.c | 2 +-
sound/soc/meson/axg-frddr.c | 3 +
sound/soc/meson/axg-pdm.c | 4 +-
sound/soc/meson/axg-spdifin.c | 1 +
sound/soc/meson/axg-spdifout.c | 1 +
sound/soc/meson/axg-tdm-interface.c | 14 +-
sound/soc/meson/axg-toddr.c | 3 +
sound/soc/meson/g12a-toacodec.c | 2 -
sound/soc/meson/g12a-tohdmitx.c | 1 -
sound/soc/meson/meson-codec-glue.c | 2 +-
sound/soc/meson/t9015.c | 1 -
sound/soc/mxs/mxs-saif.c | 7 +-
sound/soc/pxa/magician.c | 8 +-
sound/soc/pxa/mmp-sspa.c | 15 +-
sound/soc/pxa/pxa-ssp.c | 43 +-
sound/soc/pxa/pxa2xx-i2s.c | 27 +-
sound/soc/qcom/apq8016_sbc.c | 2 +-
sound/soc/qcom/lpass-apq8016.c | 1 +
sound/soc/qcom/lpass-cpu.c | 7 +
sound/soc/qcom/lpass-platform.c | 2 +-
sound/soc/qcom/qdsp6/audioreach.c | 4 +-
sound/soc/qcom/qdsp6/q6adm.c | 8 +-
sound/soc/qcom/qdsp6/q6afe.c | 6 +-
sound/soc/qcom/qdsp6/q6apm-dai.c | 6 +
sound/soc/qcom/qdsp6/q6apm.c | 1 +
sound/soc/qcom/qdsp6/q6asm-dai.c | 23 +-
sound/soc/qcom/qdsp6/q6asm.c | 2 +-
sound/soc/qcom/sc7180.c | 2 +-
sound/soc/qcom/sc7280.c | 33 +
sound/soc/qcom/sdm845.c | 6 +-
sound/soc/qcom/sm8250.c | 4 +-
sound/soc/rockchip/rk3288_hdmi_analog.c | 4 +-
sound/soc/rockchip/rockchip_i2s.c | 182 +-
sound/soc/rockchip/rockchip_i2s_tdm.c | 13 +-
sound/soc/rockchip/rockchip_pdm.c | 7 +-
sound/soc/rockchip/rockchip_spdif.c | 1 +
sound/soc/samsung/Kconfig | 20 +-
sound/soc/samsung/aries_wm8994.c | 7 +-
sound/soc/samsung/h1940_uda1380.c | 2 +-
sound/soc/samsung/i2s.c | 8 +-
sound/soc/samsung/neo1973_wm8753.c | 2 +-
sound/soc/samsung/pcm.c | 7 +-
sound/soc/samsung/rx1950_uda1380.c | 4 +-
sound/soc/samsung/s3c-i2s-v2.c | 17 +-
sound/soc/samsung/s3c2412-i2s.c | 7 +-
sound/soc/samsung/s3c24xx-i2s.c | 14 +-
sound/soc/samsung/snow.c | 2 +-
sound/soc/samsung/spdif.c | 7 +-
sound/soc/sh/fsi.c | 6 +-
sound/soc/sh/hac.c | 3 +-
sound/soc/sh/rcar/core.c | 30 +-
sound/soc/sh/rcar/ssiu.c | 3 +
sound/soc/sh/rz-ssi.c | 11 +-
sound/soc/sh/siu_pcm.c | 17 +-
sound/soc/sh/ssi.c | 13 +-
sound/soc/soc-card.c | 6 +
sound/soc/soc-core.c | 167 +-
sound/soc/soc-dai.c | 3 +-
sound/soc/soc-dapm.c | 15 +-
sound/soc/soc-ops.c | 55 +-
sound/soc/soc-pcm.c | 3 +-
sound/soc/soc-topology-test.c | 37 +-
sound/soc/soc-topology.c | 2 +-
sound/soc/soc-utils.c | 1 -
sound/soc/sof/Kconfig | 7 +
sound/soc/sof/Makefile | 16 +-
sound/soc/sof/amd/Kconfig | 1 +
sound/soc/sof/amd/acp-dsp-offset.h | 2 +
sound/soc/sof/amd/acp.c | 36 +
sound/soc/sof/amd/acp.h | 4 +
sound/soc/sof/amd/pci-rn.c | 4 +
sound/soc/sof/amd/renoir.c | 4 +
sound/soc/sof/compress.c | 73 +-
sound/soc/sof/core.c | 7 +-
sound/soc/sof/debug.c | 5 +-
sound/soc/sof/imx/Kconfig | 1 +
sound/soc/sof/intel/Kconfig | 27 +
sound/soc/sof/intel/Makefile | 4 +-
sound/soc/sof/intel/apl.c | 1 +
sound/soc/sof/intel/atom.c | 16 +-
sound/soc/sof/intel/bdw.c | 7 +-
sound/soc/sof/intel/byt.c | 5 +-
sound/soc/sof/intel/cnl.c | 39 +-
sound/soc/sof/intel/hda-dai.c | 226 +-
sound/soc/sof/intel/hda-dsp.c | 36 +-
sound/soc/sof/intel/hda-ipc.c | 39 +-
sound/soc/sof/intel/hda-loader.c | 37 +-
sound/soc/sof/intel/hda-pcm.c | 74 +-
sound/soc/sof/intel/hda-probes.c | 16 +-
sound/soc/sof/intel/hda-stream.c | 115 +-
sound/soc/sof/intel/hda.c | 235 +-
sound/soc/sof/intel/hda.h | 74 +
sound/soc/sof/intel/icl.c | 1 +
sound/soc/sof/intel/mtl.c | 794 +
sound/soc/sof/intel/mtl.h | 76 +
sound/soc/sof/intel/pci-apl.c | 1 +
sound/soc/sof/intel/pci-cnl.c | 1 +
sound/soc/sof/intel/pci-icl.c | 1 +
sound/soc/sof/intel/pci-mtl.c | 71 +
sound/soc/sof/intel/pci-tgl.c | 1 +
sound/soc/sof/intel/shim.h | 2 +
sound/soc/sof/intel/tgl.c | 34 +-
sound/soc/sof/ipc.c | 24 +-
sound/soc/sof/ipc3-dtrace.c | 55 +-
sound/soc/sof/ipc3-loader.c | 17 +-
sound/soc/sof/ipc3-pcm.c | 11 +-
sound/soc/sof/ipc3-topology.c | 96 +-
sound/soc/sof/ipc3.c | 36 +-
sound/soc/sof/ipc4-control.c | 216 +
sound/soc/sof/ipc4-pcm.c | 234 +
sound/soc/sof/ipc4-priv.h | 7 +
sound/soc/sof/ipc4-topology.c | 1921 +
sound/soc/sof/ipc4-topology.h | 270 +
sound/soc/sof/ipc4.c | 45 +-
sound/soc/sof/mediatek/Kconfig | 1 +
sound/soc/sof/mediatek/adsp_helper.h | 1 +
sound/soc/sof/mediatek/mt8186/mt8186-clk.c | 4 +-
sound/soc/sof/mediatek/mt8186/mt8186.c | 2 +-
sound/soc/sof/mediatek/mt8195/mt8195-clk.c | 7 +
sound/soc/sof/mediatek/mt8195/mt8195-loader.c | 13 +-
sound/soc/sof/mediatek/mt8195/mt8195.c | 50 +-
sound/soc/sof/mediatek/mt8195/mt8195.h | 5 +
sound/soc/sof/ops.h | 6 +
sound/soc/sof/pcm.c | 13 +
sound/soc/sof/pm.c | 21 +-
sound/soc/sof/sof-audio.c | 2 +-
sound/soc/sof/sof-audio.h | 12 +
sound/soc/sof/sof-client-ipc-msg-injector.c | 41 +-
sound/soc/sof/sof-client-probes.c | 13 +-
sound/soc/sof/sof-client-probes.h | 8 +-
sound/soc/sof/sof-client.c | 4 +-
sound/soc/sof/sof-priv.h | 17 +-
sound/soc/sof/topology.c | 121 +-
sound/soc/spear/spdif_in.c | 3 +-
sound/soc/spear/spdif_out.c | 3 +-
sound/soc/sti/sti_uniperif.c | 3 +-
sound/soc/stm/stm32_adfsdm.c | 3 +-
sound/soc/stm/stm32_i2s.c | 9 +-
sound/soc/stm/stm32_sai_sub.c | 11 +-
sound/soc/stm/stm32_spdifrx.c | 1 +
sound/soc/sunxi/sun4i-codec.c | 85 +-
sound/soc/sunxi/sun4i-i2s.c | 23 +-
sound/soc/sunxi/sun4i-spdif.c | 3 +-
sound/soc/sunxi/sun50i-codec-analog.c | 8 +
sound/soc/sunxi/sun8i-codec.c | 7 +-
sound/soc/tegra/Kconfig | 9 +
sound/soc/tegra/Makefile | 2 +
sound/soc/tegra/tegra20_ac97.c | 5 +-
sound/soc/tegra/tegra20_das.c | 198 +-
sound/soc/tegra/tegra20_das.h | 120 -
sound/soc/tegra/tegra20_i2s.c | 9 +-
sound/soc/tegra/tegra20_spdif.c | 1 +
sound/soc/tegra/tegra210_adx.c | 2 +-
sound/soc/tegra/tegra210_ahub.c | 39 +-
sound/soc/tegra/tegra210_i2s.c | 7 +-
sound/soc/tegra/tegra210_mbdrc.c | 1014 +
sound/soc/tegra/tegra210_mbdrc.h | 215 +
sound/soc/tegra/tegra210_ope.c | 419 +
sound/soc/tegra/tegra210_ope.h | 90 +
sound/soc/tegra/tegra210_peq.c | 434 +
sound/soc/tegra/tegra210_peq.h | 56 +
sound/soc/tegra/tegra30_i2s.c | 9 +-
sound/soc/ti/davinci-i2s.c | 35 +-
sound/soc/ti/davinci-mcasp.c | 16 +-
sound/soc/ti/davinci-vcif.c | 3 +-
sound/soc/ti/omap-dmic.c | 3 +-
sound/soc/ti/omap-hdmi.c | 1 +
sound/soc/ti/omap-mcbsp-priv.h | 2 -
sound/soc/ti/omap-mcbsp-st.c | 14 +-
sound/soc/ti/omap-mcbsp.c | 34 +-
sound/soc/ti/omap-mcpdm.c | 7 +-
sound/soc/uniphier/evea.c | 1 -
sound/soc/ux500/mop500.c | 2 -
sound/soc/ux500/mop500_ab8500.c | 2 -
sound/soc/ux500/mop500_ab8500.h | 2 -
sound/soc/ux500/ux500_msp_dai.c | 41 +-
sound/soc/ux500/ux500_msp_dai.h | 2 -
sound/soc/ux500/ux500_msp_i2s.c | 2 -
sound/soc/ux500/ux500_msp_i2s.h | 2 -
sound/soc/ux500/ux500_pcm.c | 2 -
sound/soc/ux500/ux500_pcm.h | 2 -
sound/soc/xilinx/xlnx_formatter_pcm.c | 18 +-
sound/soc/xilinx/xlnx_i2s.c | 1 +
sound/soc/xilinx/xlnx_spdif.c | 1 +
sound/soc/xtensa/xtfpga-i2s.c | 19 +-
sound/spi/Kconfig | 2 +-
sound/usb/6fire/pcm.c | 2 +-
sound/usb/bcd2000/bcd2000.c | 3 +-
sound/usb/card.c | 8 +
sound/usb/endpoint.c | 2 +-
sound/usb/hiface/pcm.c | 2 +-
sound/usb/line6/pod.c | 8 +-
sound/usb/line6/podhd.c | 4 +-
sound/usb/mixer_maps.c | 34 +-
sound/usb/mixer_quirks.c | 188 +-
sound/usb/mixer_scarlett_gen2.c | 91 +-
sound/usb/mixer_us16x08.c | 6 +-
sound/usb/pcm.c | 7 +-
sound/usb/quirks-table.h | 255 +-
sound/usb/quirks.c | 15 +
sound/x86/intel_hdmi_audio.c | 15 +-
tools/Makefile | 3 +
tools/accounting/getdelays.c | 4 -
tools/arch/arm64/include/asm/cputype.h | 12 +-
tools/arch/arm64/include/uapi/asm/kvm.h | 36 +
tools/arch/x86/include/asm/amd-ibs.h | 16 +-
tools/arch/x86/include/asm/cpufeatures.h | 22 +-
tools/arch/x86/include/asm/disabled-features.h | 29 +-
tools/arch/x86/include/asm/msr-index.h | 42 +
tools/arch/x86/include/uapi/asm/kvm.h | 23 +-
tools/arch/x86/include/uapi/asm/svm.h | 13 +
tools/bpf/Makefile | 7 +-
tools/bpf/bpf_jit_disasm.c | 5 +-
tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 16 +-
.../bpf/bpftool/Documentation/bpftool-feature.rst | 12 +
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 5 +-
tools/bpf/bpftool/Makefile | 17 +-
tools/bpf/bpftool/bash-completion/bpftool | 30 +-
tools/bpf/bpftool/btf.c | 57 +-
tools/bpf/bpftool/btf_dumper.c | 29 +
tools/bpf/bpftool/cgroup.c | 162 +-
tools/bpf/bpftool/common.c | 160 +-
tools/bpf/bpftool/feature.c | 148 +-
tools/bpf/bpftool/gen.c | 115 +-
tools/bpf/bpftool/jit_disasm.c | 42 +-
tools/bpf/bpftool/link.c | 61 +-
tools/bpf/bpftool/main.c | 2 -
tools/bpf/bpftool/main.h | 24 +-
tools/bpf/bpftool/map.c | 84 +-
tools/bpf/bpftool/pids.c | 1 +
tools/bpf/bpftool/prog.c | 81 +-
tools/bpf/bpftool/struct_ops.c | 2 +
tools/bpf/resolve_btfids/main.c | 40 +-
tools/bpf/runqslower/Makefile | 7 +-
tools/build/Makefile.feature | 4 +-
tools/build/feature/Makefile | 16 +-
tools/build/feature/test-all.c | 4 +
.../build/feature/test-disassembler-init-styled.c | 13 +
tools/build/feature/test-libcrypto.c | 15 +-
tools/cgroup/memcg_shrinker.py | 71 +
tools/include/asm-generic/bitops/non-atomic.h | 34 +-
tools/include/linux/bitmap.h | 12 +-
tools/include/linux/bitops.h | 16 +
tools/include/linux/btf_ids.h | 35 +-
tools/include/linux/list.h | 11 +
tools/include/linux/objtool.h | 17 +-
tools/include/linux/sched/mm.h | 2 +
tools/include/nolibc/Makefile | 37 +-
tools/include/nolibc/stdio.h | 4 +-
tools/include/nolibc/stdlib.h | 7 +-
tools/include/tools/dis-asm-compat.h | 55 +
tools/include/uapi/asm-generic/fcntl.h | 13 +-
tools/include/uapi/drm/i915_drm.h | 359 +-
tools/include/uapi/linux/bpf.h | 107 +-
tools/include/uapi/linux/btf.h | 17 +-
tools/include/uapi/linux/fs.h | 2 +-
tools/include/uapi/linux/if_link.h | 1 +
tools/include/uapi/linux/if_tun.h | 2 +-
tools/include/uapi/linux/kvm.h | 65 +-
tools/include/uapi/linux/perf_event.h | 4 +-
tools/include/uapi/linux/pkt_cls.h | 4 +-
tools/include/uapi/linux/prctl.h | 9 +
tools/include/uapi/linux/seg6.h | 4 +-
tools/include/uapi/linux/usbdevice_fs.h | 4 +-
tools/include/uapi/linux/vhost.h | 26 +-
tools/include/uapi/sound/asound.h | 2 +-
tools/kvm/kvm_stat/kvm_stat | 3 +-
tools/lib/bitmap.c | 6 +-
tools/lib/bpf/Build | 2 +-
tools/lib/bpf/Makefile | 2 +-
tools/lib/bpf/bpf.c | 209 +-
tools/lib/bpf/bpf.h | 109 +-
tools/lib/bpf/bpf_core_read.h | 11 +
tools/lib/bpf/bpf_helpers.h | 13 +
tools/lib/bpf/bpf_tracing.h | 60 +-
tools/lib/bpf/btf.c | 412 +-
tools/lib/bpf/btf.h | 118 +-
tools/lib/bpf/btf_dump.c | 160 +-
tools/lib/bpf/gen_loader.c | 2 +-
tools/lib/bpf/libbpf.c | 2342 +-
tools/lib/bpf/libbpf.h | 569 +-
tools/lib/bpf/libbpf.map | 123 +-
tools/lib/bpf/libbpf_common.h | 16 +-
tools/lib/bpf/libbpf_internal.h | 39 +-
tools/lib/bpf/libbpf_legacy.h | 28 +-
tools/lib/bpf/libbpf_probes.c | 125 +-
tools/lib/bpf/linker.c | 7 +-
tools/lib/bpf/netlink.c | 62 +-
tools/lib/bpf/relo_core.c | 479 +-
tools/lib/bpf/relo_core.h | 10 +-
tools/lib/bpf/skel_internal.h | 4 +-
tools/lib/bpf/usdt.bpf.h | 16 +-
tools/lib/bpf/usdt.c | 129 +-
tools/lib/perf/evsel.c | 17 +-
tools/lib/perf/include/internal/evsel.h | 4 +
tools/lib/perf/include/perf/event.h | 8 +
tools/objtool/arch/x86/decode.c | 5 +
tools/objtool/builtin-check.c | 13 +
tools/objtool/check.c | 335 +-
tools/objtool/include/objtool/arch.h | 1 +
tools/objtool/include/objtool/builtin.h | 2 +
tools/objtool/include/objtool/check.h | 24 +-
tools/objtool/include/objtool/elf.h | 1 +
tools/objtool/include/objtool/objtool.h | 1 +
tools/objtool/objtool.c | 1 +
tools/perf/Build | 1 +
tools/perf/Documentation/guest-files.txt | 16 +
tools/perf/Documentation/guestmount.txt | 11 +
tools/perf/Documentation/perf-buildid-list.txt | 4 +
tools/perf/Documentation/perf-c2c.txt | 31 +-
tools/perf/Documentation/perf-dlfilter.txt | 22 +
tools/perf/Documentation/perf-inject.txt | 21 +
tools/perf/Documentation/perf-intel-pt.txt | 181 +-
tools/perf/Documentation/perf-kvm.txt | 25 +-
tools/perf/Documentation/perf-kwork.txt | 180 +
tools/perf/Documentation/perf-lock.txt | 55 +-
tools/perf/Documentation/perf-record.txt | 10 +
tools/perf/Documentation/perf-script.txt | 16 +-
tools/perf/Documentation/perf-stat.txt | 21 +
tools/perf/Documentation/perf.data-file-format.txt | 20 +-
tools/perf/Makefile.config | 44 +-
tools/perf/Makefile.perf | 22 +-
tools/perf/arch/arm/util/cs-etm.c | 2 +-
tools/perf/arch/arm64/util/arm-spe.c | 2 +-
tools/perf/arch/arm64/util/pmu.c | 4 +-
tools/perf/arch/x86/tests/Build | 1 -
tools/perf/arch/x86/tests/arch-tests.c | 2 -
tools/perf/arch/x86/tests/intel-cqm.c | 2 +-
tools/perf/arch/x86/tests/rdpmc.c | 182 -
tools/perf/arch/x86/util/cpuid.h | 34 +
tools/perf/arch/x86/util/evlist.c | 64 +-
tools/perf/arch/x86/util/evsel.c | 72 +
tools/perf/arch/x86/util/header.c | 27 +-
tools/perf/arch/x86/util/intel-bts.c | 2 +-
tools/perf/arch/x86/util/intel-pt.c | 2 +-
tools/perf/arch/x86/util/iostat.c | 2 +-
tools/perf/arch/x86/util/topdown.c | 51 +
tools/perf/arch/x86/util/topdown.h | 1 +
tools/perf/arch/x86/util/tsc.c | 77 +
tools/perf/builtin-annotate.c | 8 +
tools/perf/builtin-buildid-list.c | 39 +-
tools/perf/builtin-c2c.c | 454 +-
tools/perf/builtin-inject.c | 1052 +-
tools/perf/builtin-kvm.c | 8 +-
tools/perf/builtin-kwork.c | 1832 +
tools/perf/builtin-list.c | 2 +-
tools/perf/builtin-lock.c | 958 +-
tools/perf/builtin-record.c | 55 +-
tools/perf/builtin-report.c | 6 +
tools/perf/builtin-sched.c | 2 +-
tools/perf/builtin-script.c | 27 +-
tools/perf/builtin-stat.c | 82 +-
tools/perf/builtin-timechart.c | 1 +
tools/perf/builtin-trace.c | 5 +-
tools/perf/builtin.h | 1 +
tools/perf/command-list.txt | 1 +
tools/perf/include/perf/perf_dlfilter.h | 8 +
tools/perf/perf.c | 1 +
tools/perf/pmu-events/Build | 21 +-
tools/perf/pmu-events/arch/arm64/mapfile.csv | 2 +
tools/perf/pmu-events/arch/s390/cf_z16/pai.json | 1101 +
.../pmu-events/arch/test/test_soc/cpu/metrics.json | 64 +
.../pmu-events/arch/x86/alderlake/adl-metrics.json | 4 +-
.../perf/pmu-events/arch/x86/alderlake/cache.json | 178 +-
.../arch/x86/alderlake/floating-point.json | 19 +-
.../pmu-events/arch/x86/alderlake/frontend.json | 38 +-
.../perf/pmu-events/arch/x86/alderlake/memory.json | 40 +-
.../perf/pmu-events/arch/x86/alderlake/other.json | 97 +-
.../pmu-events/arch/x86/alderlake/pipeline.json | 507 +-
.../arch/x86/alderlake/uncore-other.json | 2 +-
.../arch/x86/alderlake/virtual-memory.json | 63 +-
tools/perf/pmu-events/arch/x86/bonnell/cache.json | 2 +-
.../arch/x86/bonnell/floating-point.json | 2 +-
.../perf/pmu-events/arch/x86/bonnell/frontend.json | 2 +-
tools/perf/pmu-events/arch/x86/bonnell/memory.json | 2 +-
tools/perf/pmu-events/arch/x86/bonnell/other.json | 2 +-
.../perf/pmu-events/arch/x86/bonnell/pipeline.json | 2 +-
.../arch/x86/bonnell/virtual-memory.json | 2 +-
.../pmu-events/arch/x86/broadwell/bdw-metrics.json | 130 +-
.../perf/pmu-events/arch/x86/broadwell/cache.json | 2 +-
.../arch/x86/broadwell/floating-point.json | 2 +-
.../pmu-events/arch/x86/broadwell/frontend.json | 2 +-
.../perf/pmu-events/arch/x86/broadwell/memory.json | 2 +-
.../perf/pmu-events/arch/x86/broadwell/other.json | 2 +-
.../pmu-events/arch/x86/broadwell/pipeline.json | 2 +-
.../arch/x86/broadwell/uncore-cache.json | 152 +
.../arch/x86/broadwell/uncore-other.json | 82 +
.../perf/pmu-events/arch/x86/broadwell/uncore.json | 278 -
.../arch/x86/broadwell/virtual-memory.json | 2 +-
.../arch/x86/broadwellde/bdwde-metrics.json | 142 +-
.../pmu-events/arch/x86/broadwellde/cache.json | 2 +-
.../arch/x86/broadwellde/floating-point.json | 2 +-
.../pmu-events/arch/x86/broadwellde/frontend.json | 2 +-
.../pmu-events/arch/x86/broadwellde/memory.json | 2 +-
.../pmu-events/arch/x86/broadwellde/other.json | 2 +-
.../pmu-events/arch/x86/broadwellde/pipeline.json | 2 +-
.../arch/x86/broadwellde/uncore-cache.json | 3721 +-
.../arch/x86/broadwellde/uncore-memory.json | 2867 +-
.../arch/x86/broadwellde/uncore-other.json | 1233 +
.../arch/x86/broadwellde/uncore-power.json | 492 +-
.../arch/x86/broadwellde/virtual-memory.json | 2 +-
.../arch/x86/broadwellx/bdx-metrics.json | 576 +-
.../perf/pmu-events/arch/x86/broadwellx/cache.json | 22 +-
.../arch/x86/broadwellx/floating-point.json | 9 +-
.../pmu-events/arch/x86/broadwellx/frontend.json | 2 +-
.../pmu-events/arch/x86/broadwellx/memory.json | 39 +-
.../perf/pmu-events/arch/x86/broadwellx/other.json | 2 +-
.../pmu-events/arch/x86/broadwellx/pipeline.json | 4 +-
.../arch/x86/broadwellx/uncore-cache.json | 3633 +-
.../arch/x86/broadwellx/uncore-interconnect.json | 1438 +-
.../arch/x86/broadwellx/uncore-memory.json | 2849 +-
.../arch/x86/broadwellx/uncore-other.json | 3252 +
.../arch/x86/broadwellx/uncore-power.json | 437 +-
.../arch/x86/broadwellx/virtual-memory.json | 2 +-
.../pmu-events/arch/x86/cascadelakex/cache.json | 8 +-
.../arch/x86/cascadelakex/clx-metrics.json | 730 +-
.../arch/x86/cascadelakex/floating-point.json | 2 +-
.../pmu-events/arch/x86/cascadelakex/frontend.json | 2 +-
.../pmu-events/arch/x86/cascadelakex/other.json | 63 +
.../pmu-events/arch/x86/cascadelakex/pipeline.json | 11 +
.../arch/x86/cascadelakex/uncore-memory.json | 4423 +-
.../arch/x86/cascadelakex/uncore-other.json | 23575 +-
.../arch/x86/cascadelakex/uncore-power.json | 201 +
.../arch/x86/cascadelakex/virtual-memory.json | 2 +-
.../pmu-events/arch/x86/elkhartlake/cache.json | 956 +-
.../arch/x86/elkhartlake/floating-point.json | 19 +-
.../pmu-events/arch/x86/elkhartlake/frontend.json | 34 +-
.../pmu-events/arch/x86/elkhartlake/memory.json | 388 +-
.../pmu-events/arch/x86/elkhartlake/other.json | 527 +-
.../pmu-events/arch/x86/elkhartlake/pipeline.json | 203 +-
.../arch/x86/elkhartlake/virtual-memory.json | 151 +-
tools/perf/pmu-events/arch/x86/goldmont/cache.json | 2 +-
.../arch/x86/goldmont/floating-point.json | 2 +-
.../pmu-events/arch/x86/goldmont/frontend.json | 2 +-
.../perf/pmu-events/arch/x86/goldmont/memory.json | 2 +-
.../pmu-events/arch/x86/goldmont/pipeline.json | 2 +-
.../arch/x86/goldmont/virtual-memory.json | 2 +-
.../pmu-events/arch/x86/goldmontplus/cache.json | 2 +-
.../arch/x86/goldmontplus/floating-point.json | 2 +-
.../pmu-events/arch/x86/goldmontplus/frontend.json | 2 +-
.../pmu-events/arch/x86/goldmontplus/memory.json | 2 +-
.../pmu-events/arch/x86/goldmontplus/pipeline.json | 2 +-
.../arch/x86/goldmontplus/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/haswell/cache.json | 78 +-
.../arch/x86/haswell/floating-point.json | 2 +-
.../perf/pmu-events/arch/x86/haswell/frontend.json | 2 +-
.../pmu-events/arch/x86/haswell/hsw-metrics.json | 85 +-
tools/perf/pmu-events/arch/x86/haswell/memory.json | 75 +-
tools/perf/pmu-events/arch/x86/haswell/other.json | 2 +-
.../perf/pmu-events/arch/x86/haswell/pipeline.json | 9 +-
.../pmu-events/arch/x86/haswell/uncore-other.json | 7 +-
.../arch/x86/haswell/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/haswellx/cache.json | 44 +-
.../arch/x86/haswellx/floating-point.json | 2 +-
.../pmu-events/arch/x86/haswellx/frontend.json | 2 +-
.../pmu-events/arch/x86/haswellx/hsx-metrics.json | 496 +-
.../perf/pmu-events/arch/x86/haswellx/memory.json | 52 +-
tools/perf/pmu-events/arch/x86/haswellx/other.json | 2 +-
.../pmu-events/arch/x86/haswellx/pipeline.json | 9 +-
.../pmu-events/arch/x86/haswellx/uncore-cache.json | 3622 +-
.../arch/x86/haswellx/uncore-interconnect.json | 1430 +-
.../arch/x86/haswellx/uncore-memory.json | 2839 +-
.../pmu-events/arch/x86/haswellx/uncore-other.json | 3170 +
.../pmu-events/arch/x86/haswellx/uncore-power.json | 477 +-
.../arch/x86/haswellx/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/icelake/cache.json | 8 +-
.../arch/x86/icelake/floating-point.json | 2 +-
.../perf/pmu-events/arch/x86/icelake/frontend.json | 2 +-
.../pmu-events/arch/x86/icelake/icl-metrics.json | 126 +-
.../pmu-events/arch/x86/icelake/uncore-other.json | 31 +
.../arch/x86/icelake/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/icelakex/cache.json | 28 +-
.../arch/x86/icelakex/floating-point.json | 2 +-
.../pmu-events/arch/x86/icelakex/frontend.json | 2 +-
.../pmu-events/arch/x86/icelakex/icx-metrics.json | 697 +-
.../perf/pmu-events/arch/x86/icelakex/memory.json | 6 +-
tools/perf/pmu-events/arch/x86/icelakex/other.json | 51 +-
.../pmu-events/arch/x86/icelakex/pipeline.json | 12 +
.../arch/x86/icelakex/uncore-memory.json | 1523 +
.../pmu-events/arch/x86/icelakex/uncore-other.json | 38506 ++-
.../pmu-events/arch/x86/icelakex/uncore-power.json | 225 +
.../arch/x86/icelakex/virtual-memory.json | 2 +-
.../perf/pmu-events/arch/x86/ivybridge/cache.json | 2 +-
.../arch/x86/ivybridge/floating-point.json | 2 +-
.../pmu-events/arch/x86/ivybridge/frontend.json | 2 +-
.../pmu-events/arch/x86/ivybridge/ivb-metrics.json | 94 +-
.../perf/pmu-events/arch/x86/ivybridge/memory.json | 2 +-
.../perf/pmu-events/arch/x86/ivybridge/other.json | 2 +-
.../pmu-events/arch/x86/ivybridge/pipeline.json | 4 +-
.../arch/x86/ivybridge/uncore-other.json | 2 +-
.../arch/x86/ivybridge/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/ivytown/cache.json | 2 +-
.../arch/x86/ivytown/floating-point.json | 2 +-
.../perf/pmu-events/arch/x86/ivytown/frontend.json | 2 +-
.../pmu-events/arch/x86/ivytown/ivt-metrics.json | 100 +-
tools/perf/pmu-events/arch/x86/ivytown/memory.json | 2 +-
tools/perf/pmu-events/arch/x86/ivytown/other.json | 2 +-
.../pmu-events/arch/x86/ivytown/uncore-cache.json | 3405 +-
.../arch/x86/ivytown/uncore-interconnect.json | 1749 +-
.../pmu-events/arch/x86/ivytown/uncore-memory.json | 1775 +-
.../pmu-events/arch/x86/ivytown/uncore-other.json | 2398 +
.../pmu-events/arch/x86/ivytown/uncore-power.json | 677 +-
.../arch/x86/ivytown/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/jaketown/cache.json | 2 +-
.../arch/x86/jaketown/floating-point.json | 2 +-
.../pmu-events/arch/x86/jaketown/frontend.json | 2 +-
.../pmu-events/arch/x86/jaketown/jkt-metrics.json | 17 +-
.../perf/pmu-events/arch/x86/jaketown/memory.json | 2 +-
tools/perf/pmu-events/arch/x86/jaketown/other.json | 2 +-
.../pmu-events/arch/x86/jaketown/pipeline.json | 16 +-
.../pmu-events/arch/x86/jaketown/uncore-cache.json | 1930 +-
.../arch/x86/jaketown/uncore-interconnect.json | 824 +-
.../arch/x86/jaketown/uncore-memory.json | 445 +-
.../pmu-events/arch/x86/jaketown/uncore-other.json | 1538 +
.../pmu-events/arch/x86/jaketown/uncore-power.json | 351 +-
.../arch/x86/jaketown/virtual-memory.json | 2 +-
.../pmu-events/arch/x86/knightslanding/cache.json | 2 +-
.../arch/x86/knightslanding/floating-point.json | 2 +-
.../arch/x86/knightslanding/frontend.json | 2 +-
.../pmu-events/arch/x86/knightslanding/memory.json | 2 +-
.../arch/x86/knightslanding/pipeline.json | 2 +-
.../arch/x86/knightslanding/uncore-memory.json | 42 -
.../arch/x86/knightslanding/uncore-other.json | 4103 +
.../arch/x86/knightslanding/virtual-memory.json | 2 +-
tools/perf/pmu-events/arch/x86/mapfile.csv | 74 +-
.../perf/pmu-events/arch/x86/meteorlake/cache.json | 262 +
.../pmu-events/arch/x86/meteorlake/frontend.json | 24 +
.../pmu-events/arch/x86/meteorlake/memory.json | 185 +
.../perf/pmu-events/arch/x86/meteorlake/other.json | 46 +
.../pmu-events/arch/x86/meteorlake/pipeline.json | 254 +
.../arch/x86/meteorlake/virtual-memory.json | 46 +
.../perf/pmu-events/arch/x86/nehalemep/cache.json | 14 +-
.../arch/x86/nehalemep/floating-point.json | 2 +-
.../pmu-events/arch/x86/nehalemep/frontend.json | 2 +-
.../perf/pmu-events/arch/x86/nehalemep/memory.json | 6 +-
.../arch/x86/nehalemep/virtual-memory.json | 2 +-
.../perf/pmu-events/arch/x86/nehalemex/cache.json | 2974 +-
.../arch/x86/nehalemex/floating-point.json | 182 +-
.../pmu-events/arch/x86/nehalemex/frontend.json | 20 +-
.../perf/pmu-events/arch/x86/nehalemex/memory.json | 672 +-
.../perf/pmu-events/arch/x86/nehalemex/other.json | 170 +-
.../pmu-events/arch/x86/nehalemex/pipeline.json | 830 +-
.../arch/x86/nehalemex/virtual-memory.json | 92 +-
.../pmu-events/arch/x86/sandybridge/cache.json | 2 +-
.../arch/x86/sandybridge/floating-point.json | 2 +-
.../pmu-events/arch/x86/sandybridge/frontend.json | 4 +-
.../pmu-events/arch/x86/sandybridge/memory.json | 2 +-
.../pmu-events/arch/x86/sandybridge/other.json | 2 +-
.../pmu-events/arch/x86/sandybridge/pipeline.json | 10 +-
.../arch/x86/sandybridge/snb-metrics.json | 11 +-
.../arch/x86/sandybridge/uncore-other.json | 2 +-
.../arch/x86/sandybridge/virtual-memory.json | 2 +-
.../pmu-events/arch/x86/sapphirerapids/cache.json | 135 +-
.../arch/x86/sapphirerapids/floating-point.json | 6 +
.../arch/x86/sapphirerapids/frontend.json | 16 +
.../pmu-events/arch/x86/sapphirerapids/memory.json | 23 +-
.../pmu-events/arch/x86/sapphirerapids/other.json | 68 +-
.../arch/x86/sapphirerapids/pipeline.json | 99 +-
.../arch/x86/sapphirerapids/spr-metrics.json | 572 +-
.../arch/x86/sapphirerapids/uncore-other.json | 9 -
.../arch/x86/sapphirerapids/virtual-memory.json | 20 +
.../perf/pmu-events/arch/x86/silvermont/cache.json | 2 +-
.../arch/x86/silvermont/floating-point.json | 2 +-
.../pmu-events/arch/x86/silvermont/frontend.json | 2 +-
.../pmu-events/arch/x86/silvermont/memory.json | 2 +-
.../perf/pmu-events/arch/x86/silvermont/other.json | 2 +-
.../pmu-events/arch/x86/silvermont/pipeline.json | 2 +-
.../arch/x86/silvermont/virtual-memory.json | 2 +-
.../arch/x86/skylake/floating-point.json | 2 +-
.../perf/pmu-events/arch/x86/skylake/frontend.json | 2 +-
tools/perf/pmu-events/arch/x86/skylake/other.json | 2 +-
.../pmu-events/arch/x86/skylake/skl-metrics.json | 178 +-
.../pmu-events/arch/x86/skylake/uncore-cache.json | 142 +
.../pmu-events/arch/x86/skylake/uncore-other.json | 79 +
tools/perf/pmu-events/arch/x86/skylake/uncore.json | 254 -
.../arch/x86/skylake/virtual-memory.json | 2 +-
.../arch/x86/skylakex/floating-point.json | 2 +-
.../pmu-events/arch/x86/skylakex/frontend.json | 2 +-
tools/perf/pmu-events/arch/x86/skylakex/other.json | 66 +-
.../pmu-events/arch/x86/skylakex/pipeline.json | 11 +
.../pmu-events/arch/x86/skylakex/skx-metrics.json | 673 +-
.../arch/x86/skylakex/uncore-memory.json | 3567 +-
.../pmu-events/arch/x86/skylakex/uncore-other.json | 22606 +-
.../pmu-events/arch/x86/skylakex/uncore-power.json | 201 +
.../arch/x86/skylakex/virtual-memory.json | 2 +-
.../arch/x86/{tremontx => snowridgex}/cache.json | 60 +-
.../{tremontx => snowridgex}/floating-point.json | 9 +-
.../x86/{tremontx => snowridgex}/frontend.json | 20 +-
.../arch/x86/{tremontx => snowridgex}/memory.json | 4 +-
.../arch/x86/{tremontx => snowridgex}/other.json | 18 +-
.../x86/{tremontx => snowridgex}/pipeline.json | 98 +-
.../arch/x86/snowridgex/uncore-memory.json | 619 +
.../arch/x86/snowridgex/uncore-other.json | 25192 ++
.../arch/x86/snowridgex/uncore-power.json | 235 +
.../{tremontx => snowridgex}/virtual-memory.json | 69 +-
.../perf/pmu-events/arch/x86/tigerlake/cache.json | 48 +-
.../arch/x86/tigerlake/floating-point.json | 2 +-
.../pmu-events/arch/x86/tigerlake/frontend.json | 2 +-
.../perf/pmu-events/arch/x86/tigerlake/memory.json | 2 +-
.../perf/pmu-events/arch/x86/tigerlake/other.json | 1 -
.../pmu-events/arch/x86/tigerlake/pipeline.json | 4 +-
.../pmu-events/arch/x86/tigerlake/tgl-metrics.json | 378 +-
.../arch/x86/tigerlake/uncore-other.json | 65 +
.../arch/x86/tigerlake/virtual-memory.json | 2 +-
.../arch/x86/tremontx/uncore-memory.json | 245 -
.../pmu-events/arch/x86/tremontx/uncore-other.json | 2395 -
.../pmu-events/arch/x86/tremontx/uncore-power.json | 11 -
.../pmu-events/arch/x86/westmereep-dp/cache.json | 2 +-
.../arch/x86/westmereep-dp/floating-point.json | 2 +-
.../arch/x86/westmereep-dp/frontend.json | 2 +-
.../pmu-events/arch/x86/westmereep-dp/memory.json | 2 +-
.../arch/x86/westmereep-dp/virtual-memory.json | 2 +-
.../arch/x86/westmereep-sp/floating-point.json | 2 +-
.../arch/x86/westmereep-sp/frontend.json | 2 +-
.../arch/x86/westmereep-sp/virtual-memory.json | 2 +-
.../arch/x86/westmereex/floating-point.json | 2 +-
.../pmu-events/arch/x86/westmereex/frontend.json | 2 +-
.../arch/x86/westmereex/virtual-memory.json | 2 +-
tools/perf/pmu-events/empty-pmu-events.c | 342 +
tools/perf/pmu-events/jevents.c | 1342 -
tools/perf/pmu-events/jevents.py | 725 +
tools/perf/pmu-events/jsmn.c | 352 -
tools/perf/pmu-events/jsmn.h | 68 -
tools/perf/pmu-events/json.c | 162 -
tools/perf/pmu-events/json.h | 39 -
tools/perf/pmu-events/pmu-events.h | 40 +-
tools/perf/scripts/perl/Perf-Trace-Util/Build | 6 +-
tools/perf/scripts/python/arm-cs-trace-disasm.py | 34 +-
tools/perf/scripts/python/intel-pt-events.py | 32 +-
tools/perf/tests/Build | 1 +
tools/perf/tests/bp_account.c | 16 +-
tools/perf/tests/bpf-script-example.c | 35 +-
tools/perf/tests/builtin-test-list.c | 207 +
tools/perf/tests/builtin-test-list.h | 12 +
tools/perf/tests/builtin-test.c | 152 +-
tools/perf/tests/code-reading.c | 2 +-
tools/perf/tests/event-times.c | 2 +-
tools/perf/tests/evsel-roundtrip-name.c | 4 +-
tools/perf/tests/expand-cgroup.c | 25 +-
tools/perf/tests/expr.c | 15 +
tools/perf/tests/hists_cumulate.c | 2 +-
tools/perf/tests/hists_filter.c | 4 +-
tools/perf/tests/hists_link.c | 4 +-
tools/perf/tests/hists_output.c | 2 +-
tools/perf/tests/keep-tracking.c | 4 +-
tools/perf/tests/mmap-basic.c | 127 +-
tools/perf/tests/parse-metric.c | 77 +-
tools/perf/tests/perf-time-to-tsc.c | 31 +-
tools/perf/tests/pmu-events.c | 474 +-
tools/perf/tests/shell/lib/perf_csv_output_lint.py | 48 -
.../perf/tests/shell/lib/perf_json_output_lint.py | 96 +
tools/perf/tests/shell/record_offcpu.sh | 57 +-
tools/perf/tests/shell/stat+csv_output.sh | 70 +-
tools/perf/tests/shell/stat+json_output.sh | 147 +
tools/perf/tests/shell/stat_all_metrics.sh | 47 +-
tools/perf/tests/shell/test_arm_callgraph_fp.sh | 2 +-
tools/perf/tests/shell/test_arm_spe.sh | 30 +-
tools/perf/tests/shell/test_brstack.sh | 114 +
tools/perf/tests/switch-tracking.c | 24 +-
tools/perf/tests/topology.c | 2 +-
tools/perf/trace/beauty/arch_errno_names.sh | 14 +-
tools/perf/trace/beauty/include/linux/socket.h | 7 +-
tools/perf/util/Build | 5 +
tools/perf/util/amd-sample-raw.c | 68 +-
tools/perf/util/annotate.c | 7 +-
tools/perf/util/arm-spe-decoder/arm-spe-decoder.c | 1 +
tools/perf/util/arm-spe-decoder/arm-spe-decoder.h | 12 +
tools/perf/util/arm-spe.c | 140 +-
tools/perf/util/auxtrace.c | 30 +-
tools/perf/util/auxtrace.h | 4 +
tools/perf/util/bpf-loader.c | 224 +-
tools/perf/util/bpf-utils.c | 5 +-
tools/perf/util/bpf_kwork.c | 346 +
tools/perf/util/bpf_lock_contention.c | 189 +
tools/perf/util/bpf_off_cpu.c | 60 +-
tools/perf/util/bpf_skel/kwork_trace.bpf.c | 383 +
tools/perf/util/bpf_skel/lock_contention.bpf.c | 175 +
tools/perf/util/bpf_skel/off_cpu.bpf.c | 58 +-
tools/perf/util/build-id.c | 132 +-
tools/perf/util/build-id.h | 16 +-
tools/perf/util/callchain.c | 18 +-
tools/perf/util/cs-etm.c | 2 +-
tools/perf/util/data-convert-json.c | 5 +-
tools/perf/util/data.c | 43 +-
tools/perf/util/data.h | 2 +
tools/perf/util/dlfilter.c | 2 +
tools/perf/util/dso.h | 6 +
tools/perf/util/dsos.c | 15 +-
tools/perf/util/env.c | 62 +-
tools/perf/util/env.h | 14 +-
tools/perf/util/event.c | 1 +
tools/perf/util/event.h | 23 +
tools/perf/util/events_stats.h | 2 +-
tools/perf/util/evlist.c | 53 +-
tools/perf/util/evlist.h | 9 +-
tools/perf/util/evsel.c | 50 +-
tools/perf/util/evsel.h | 4 +
tools/perf/util/expr.c | 13 +
tools/perf/util/expr.l | 2 +-
tools/perf/util/genelf.c | 6 +-
tools/perf/util/header.c | 206 +-
tools/perf/util/header.h | 4 +-
tools/perf/util/intel-pt.c | 183 +-
tools/perf/util/jitdump.c | 9 +-
tools/perf/util/kwork.h | 257 +
tools/perf/util/llvm-utils.c | 2 +-
tools/perf/util/lock-contention.h | 147 +
tools/perf/util/machine.c | 57 +-
tools/perf/util/machine.h | 7 +
tools/perf/util/mem-events.c | 46 +-
tools/perf/util/mem-events.h | 3 +
tools/perf/util/metricgroup.c | 284 +-
tools/perf/util/metricgroup.h | 5 +-
tools/perf/util/off_cpu.h | 9 +
tools/perf/util/ordered-events.h | 6 +
tools/perf/util/parse-events.c | 736 +-
tools/perf/util/parse-events.h | 35 +-
tools/perf/util/perf_api_probe.c | 2 +-
tools/perf/util/pmu.c | 154 +-
tools/perf/util/pmu.h | 12 +-
tools/perf/util/print-events.c | 572 +
tools/perf/util/print-events.h | 22 +
tools/perf/util/probe-event.c | 8 +-
tools/perf/util/record.c | 4 +-
tools/perf/util/record.h | 1 +
tools/perf/util/s390-sample-raw.c | 50 +-
tools/perf/util/scripting-engines/Build | 4 +-
.../util/scripting-engines/trace-event-python.c | 17 +-
tools/perf/util/session.c | 115 +-
tools/perf/util/session.h | 4 +
tools/perf/util/setup.py | 12 +-
tools/perf/util/stat-display.c | 383 +-
tools/perf/util/stat.c | 1 +
tools/perf/util/stat.h | 2 +
tools/perf/util/symbol-elf.c | 71 +-
tools/perf/util/symbol.c | 6 +-
tools/perf/util/synthetic-events.c | 114 +-
tools/perf/util/synthetic-events.h | 2 +
tools/perf/util/thread.c | 1 +
tools/perf/util/thread.h | 1 +
tools/perf/util/tool.h | 3 +-
tools/perf/util/topdown.c | 7 +
tools/perf/util/topdown.h | 3 +-
tools/perf/util/trace-event-info.c | 96 +
tools/perf/util/tracepoint.c | 63 +
tools/perf/util/tracepoint.h | 25 +
tools/perf/util/tsc.h | 1 +
tools/perf/util/unwind-libunwind-local.c | 4 +-
tools/perf/util/util.c | 70 +-
tools/perf/util/util.h | 15 +
tools/power/cpupower/debug/i386/dump_psb.c | 6 +-
tools/power/pm-graph/README | 6 +-
tools/power/pm-graph/bootgraph.py | 20 +-
.../pm-graph/config/custom-timeline-functions.cfg | 2 +-
tools/power/pm-graph/sleepgraph.py | 518 +-
tools/power/x86/intel-speed-select/hfi-events.c | 2 +-
tools/power/x86/intel-speed-select/isst-daemon.c | 2 +-
tools/power/x86/turbostat/turbostat.8 | 200 +-
tools/power/x86/turbostat/turbostat.c | 240 +-
tools/spi/spidev_test.c | 11 +
tools/testing/crypto/chacha20-s390/test-cipher.c | 9 +-
tools/testing/cxl/Kbuild | 1 +
tools/testing/cxl/test/cxl.c | 131 +-
tools/testing/cxl/test/mem.c | 53 +-
tools/testing/cxl/test/mock.c | 8 +-
tools/testing/kunit/configs/arch_uml.config | 5 +
tools/testing/kunit/configs/coverage_uml.config | 11 +
tools/testing/kunit/kunit.py | 83 +-
tools/testing/kunit/kunit_config.py | 54 +-
tools/testing/kunit/kunit_kernel.py | 104 +-
tools/testing/kunit/kunit_parser.py | 63 +-
tools/testing/kunit/kunit_printer.py | 48 +
tools/testing/kunit/kunit_tool_test.py | 214 +-
tools/testing/memblock/Makefile | 3 +-
tools/testing/memblock/README | 17 +-
tools/testing/memblock/TODO | 14 +-
tools/testing/memblock/internal.h | 11 +
tools/testing/memblock/linux/kmemleak.h | 2 +-
tools/testing/memblock/linux/memory_hotplug.h | 8 +-
tools/testing/memblock/main.c | 2 +
tools/testing/memblock/scripts/Makefile.include | 10 +-
tools/testing/memblock/tests/alloc_api.c | 225 +-
tools/testing/memblock/tests/alloc_helpers_api.c | 129 +-
tools/testing/memblock/tests/alloc_nid_api.c | 351 +-
tools/testing/memblock/tests/basic_api.c | 337 +-
tools/testing/memblock/tests/common.c | 118 +
tools/testing/memblock/tests/common.h | 54 +
tools/testing/selftests/Makefile | 31 +-
tools/testing/selftests/arm64/mte/Makefile | 1 -
tools/testing/selftests/arm64/signal/Makefile | 1 -
.../testing/selftests/arm64/signal/test_signals.h | 4 +-
tools/testing/selftests/bpf/.gitignore | 3 +-
tools/testing/selftests/bpf/DENYLIST | 6 +
tools/testing/selftests/bpf/DENYLIST.s390x | 67 +
tools/testing/selftests/bpf/Makefile | 34 +-
tools/testing/selftests/bpf/bench.c | 99 +
tools/testing/selftests/bpf/bench.h | 16 +
.../bpf/benchs/bench_bpf_hashmap_full_update.c | 96 +
.../selftests/bpf/benchs/bench_local_storage.c | 287 +
.../benchs/bench_local_storage_rcu_tasks_trace.c | 281 +
.../benchs/run_bench_bpf_hashmap_full_update.sh | 11 +
.../bpf/benchs/run_bench_local_storage.sh | 24 +
.../run_bench_local_storage_rcu_tasks_trace.sh | 11 +
tools/testing/selftests/bpf/benchs/run_common.sh | 17 +
tools/testing/selftests/bpf/bpf_legacy.h | 9 -
.../selftests/bpf/bpf_testmod/bpf_testmod.c | 10 +-
tools/testing/selftests/bpf/btf_helpers.c | 25 +-
tools/testing/selftests/bpf/config | 93 +-
tools/testing/selftests/bpf/config.s390x | 147 +
tools/testing/selftests/bpf/config.x86_64 | 251 +
tools/testing/selftests/bpf/network_helpers.c | 2 +-
.../selftests/bpf/prog_tests/attach_probe.c | 49 +-
.../testing/selftests/bpf/prog_tests/bpf_cookie.c | 78 +-
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 132 +-
tools/testing/selftests/bpf/prog_tests/bpf_loop.c | 62 +
tools/testing/selftests/bpf/prog_tests/bpf_nf.c | 64 +-
.../testing/selftests/bpf/prog_tests/bpf_tcp_ca.c | 61 +
tools/testing/selftests/bpf/prog_tests/btf.c | 157 +-
tools/testing/selftests/bpf/prog_tests/btf_write.c | 126 +-
.../testing/selftests/bpf/prog_tests/core_extern.c | 17 +-
.../testing/selftests/bpf/prog_tests/core_reloc.c | 140 +-
.../selftests/bpf/prog_tests/fexit_bpf2bpf.c | 109 +
.../selftests/bpf/prog_tests/fexit_stress.c | 32 +-
.../selftests/bpf/prog_tests/kprobe_multi_test.c | 9 +-
.../testing/selftests/bpf/prog_tests/libbpf_str.c | 207 +
tools/testing/selftests/bpf/prog_tests/lru_bug.c | 21 +
.../testing/selftests/bpf/prog_tests/lsm_cgroup.c | 313 +
.../testing/selftests/bpf/prog_tests/probe_user.c | 35 +-
.../selftests/bpf/prog_tests/resolve_btfids.c | 2 +-
.../selftests/bpf/prog_tests/ringbuf_multi.c | 11 +
.../testing/selftests/bpf/prog_tests/send_signal.c | 2 +-
tools/testing/selftests/bpf/prog_tests/skeleton.c | 2 +
.../testing/selftests/bpf/prog_tests/sock_fields.c | 1 -
.../selftests/bpf/prog_tests/sockmap_ktls.c | 84 +-
tools/testing/selftests/bpf/prog_tests/tailcalls.c | 55 +
.../testing/selftests/bpf/prog_tests/tc_redirect.c | 8 +-
.../testing/selftests/bpf/prog_tests/test_tunnel.c | 17 +-
tools/testing/selftests/bpf/prog_tests/usdt.c | 2 +-
.../selftests/bpf/prog_tests/xdp_synproxy.c | 183 +
.../bpf/progs/bpf_hashmap_full_update_bench.c | 40 +
tools/testing/selftests/bpf/progs/bpf_iter.h | 7 +
.../selftests/bpf/progs/bpf_iter_bpf_hash_map.c | 9 +
.../bpf/progs/bpf_iter_bpf_sk_storage_map.c | 22 +-
tools/testing/selftests/bpf/progs/bpf_iter_ksym.c | 74 +
tools/testing/selftests/bpf/progs/bpf_loop.c | 114 +
.../selftests/bpf/progs/bpf_syscall_macro.c | 6 +-
.../testing/selftests/bpf/progs/bpf_tracing_net.h | 1 +
.../bpf/progs/btf__core_reloc_enum64val.c | 3 +
.../bpf/progs/btf__core_reloc_enum64val___diff.c | 3 +
.../btf__core_reloc_enum64val___err_missing.c | 3 +
.../btf__core_reloc_enum64val___val3_missing.c | 3 +
.../bpf/progs/btf__core_reloc_type_based___diff.c | 3 +
.../testing/selftests/bpf/progs/core_reloc_types.h | 190 +-
tools/testing/selftests/bpf/progs/dynptr_fail.c | 10 +-
tools/testing/selftests/bpf/progs/dynptr_success.c | 4 +-
.../selftests/bpf/progs/freplace_global_func.c | 18 +
tools/testing/selftests/bpf/progs/kprobe_multi.c | 24 +-
.../selftests/bpf/progs/local_storage_bench.c | 104 +
.../progs/local_storage_rcu_tasks_trace_bench.c | 67 +
tools/testing/selftests/bpf/progs/lru_bug.c | 49 +
tools/testing/selftests/bpf/progs/lsm_cgroup.c | 180 +
.../selftests/bpf/progs/lsm_cgroup_nonvoid.c | 14 +
.../selftests/bpf/progs/tailcall_bpf2bpf6.c | 42 +
.../selftests/bpf/progs/tcp_ca_incompl_cong_ops.c | 35 +
.../selftests/bpf/progs/tcp_ca_unsupp_cong_op.c | 21 +
.../selftests/bpf/progs/tcp_ca_write_sk_pacing.c | 60 +
.../selftests/bpf/progs/test_attach_probe.c | 73 +-
tools/testing/selftests/bpf/progs/test_bpf_nf.c | 85 +-
.../testing/selftests/bpf/progs/test_bpf_nf_fail.c | 134 +
tools/testing/selftests/bpf/progs/test_btf_haskv.c | 51 -
tools/testing/selftests/bpf/progs/test_btf_newkv.c | 18 -
.../testing/selftests/bpf/progs/test_core_extern.c | 3 +
.../bpf/progs/test_core_reloc_enum64val.c | 70 +
.../selftests/bpf/progs/test_core_reloc_kernel.c | 19 +
.../bpf/progs/test_core_reloc_type_based.c | 49 +-
.../testing/selftests/bpf/progs/test_probe_user.c | 50 +-
tools/testing/selftests/bpf/progs/test_skeleton.c | 4 +
tools/testing/selftests/bpf/progs/test_tc_dtime.c | 53 +-
.../testing/selftests/bpf/progs/test_tunnel_kern.c | 80 +-
tools/testing/selftests/bpf/progs/test_varlen.c | 8 +-
.../selftests/bpf/progs/test_xdp_noinline.c | 30 +-
.../selftests/bpf/progs/xdp_synproxy_kern.c | 843 +
.../selftests/bpf/test_bpftool_synctypes.py | 182 +-
tools/testing/selftests/bpf/test_btf.h | 3 +
tools/testing/selftests/bpf/test_progs.c | 7 +-
tools/testing/selftests/bpf/test_verifier.c | 367 +-
tools/testing/selftests/bpf/test_xdp_veth.sh | 6 +-
tools/testing/selftests/bpf/test_xdping.sh | 4 +
tools/testing/selftests/bpf/test_xsk.sh | 6 +-
.../selftests/bpf/verifier/bpf_loop_inline.c | 264 +
tools/testing/selftests/bpf/verifier/calls.c | 53 +
tools/testing/selftests/bpf/verifier/jmp32.c | 21 +
tools/testing/selftests/bpf/verifier/jump.c | 22 +
tools/testing/selftests/bpf/vmtest.sh | 53 +-
tools/testing/selftests/bpf/xdp_synproxy.c | 466 +
tools/{lib => testing/selftests}/bpf/xsk.c | 92 +-
tools/{lib => testing/selftests}/bpf/xsk.h | 30 +-
tools/testing/selftests/bpf/xsk_prereqs.sh | 4 +-
.../selftests/bpf/{xdpxceiver.c => xskxceiver.c} | 25 +-
.../selftests/bpf/{xdpxceiver.h => xskxceiver.h} | 6 +-
tools/testing/selftests/damon/_chk_dependency.sh | 10 +
tools/testing/selftests/dma/Makefile | 1 +
tools/testing/selftests/dma/dma_map_benchmark.c | 2 +-
tools/testing/selftests/drivers/dma-buf/udmabuf.c | 3 +-
tools/testing/selftests/drivers/gpu/drm_mm.sh | 4 +-
tools/testing/selftests/drivers/net/dsa/Makefile | 17 +
.../drivers/net/mlxsw/devlink_linecard.sh | 54 +
.../drivers/net/mlxsw/rif_counter_scale.sh | 107 +
.../drivers/net/mlxsw/spectrum-2/resource_scale.sh | 31 +-
.../net/mlxsw/spectrum-2/rif_counter_scale.sh | 1 +
.../net/mlxsw/spectrum-2/tc_flower_scale.sh | 15 +-
.../drivers/net/mlxsw/spectrum/resource_scale.sh | 29 +-
.../net/mlxsw/spectrum/rif_counter_scale.sh | 34 +
.../selftests/drivers/net/mlxsw/tc_flower_scale.sh | 17 +
.../testing/selftests/drivers/net/netdevsim/fib.sh | 45 +
.../selftests/drivers/s390x/uvdevice/Makefile | 1 -
.../testing/selftests/filesystems/binderfs/config | 1 -
.../testing/selftests/filesystems/fat}/.gitignore | 3 +-
tools/testing/selftests/filesystems/fat/Makefile | 7 +
tools/testing/selftests/filesystems/fat/config | 2 +
.../selftests/filesystems/fat/rename_exchange.c | 37 +
.../selftests/filesystems/fat/run_fat_tests.sh | 82 +
.../ftrace/test.d/dynevent/add_remove_eprobe.tc | 9 +-
.../ftrace/test.d/dynevent/add_remove_kprobe.tc | 7 +
.../ftrace/test.d/kprobe/kprobe_syntax_errors.tc | 2 +-
tools/testing/selftests/futex/functional/Makefile | 1 -
tools/testing/selftests/gpio/Makefile | 2 +-
tools/testing/selftests/kcmp/kcmp_test.c | 6 +-
tools/testing/selftests/kexec/kexec_common_lib.sh | 36 +-
tools/testing/selftests/kselftest_deps.sh | 2 +-
tools/testing/selftests/kselftest_module.h | 4 +
tools/testing/selftests/kvm/.gitignore | 10 +-
tools/testing/selftests/kvm/Makefile | 76 +-
tools/testing/selftests/kvm/aarch64/arch_timer.c | 88 +-
.../selftests/kvm/aarch64/debug-exceptions.c | 26 +-
tools/testing/selftests/kvm/aarch64/get-reg-list.c | 30 +-
tools/testing/selftests/kvm/aarch64/hypercalls.c | 97 +-
tools/testing/selftests/kvm/aarch64/psci_test.c | 72 +-
.../selftests/kvm/aarch64/vcpu_width_config.c | 71 +-
tools/testing/selftests/kvm/aarch64/vgic_init.c | 446 +-
tools/testing/selftests/kvm/aarch64/vgic_irq.c | 44 +-
.../selftests/kvm/access_tracking_perf_test.c | 92 +-
tools/testing/selftests/kvm/demand_paging_test.c | 49 +-
tools/testing/selftests/kvm/dirty_log_perf_test.c | 89 +-
tools/testing/selftests/kvm/dirty_log_test.c | 95 +-
.../testing/selftests/kvm/hardware_disable_test.c | 29 +-
.../selftests/kvm/include/aarch64/processor.h | 28 +-
tools/testing/selftests/kvm/include/aarch64/vgic.h | 6 +-
.../testing/selftests/kvm/include/kvm_util_base.h | 823 +-
.../testing/selftests/kvm/include/perf_test_util.h | 14 +-
.../selftests/kvm/include/riscv/processor.h | 20 -
tools/testing/selftests/kvm/include/test_util.h | 7 +
tools/testing/selftests/kvm/include/ucall_common.h | 65 +-
tools/testing/selftests/kvm/include/x86_64/apic.h | 1 +
tools/testing/selftests/kvm/include/x86_64/evmcs.h | 2 +-
tools/testing/selftests/kvm/include/x86_64/mce.h | 25 +
.../selftests/kvm/include/x86_64/processor.h | 499 +-
tools/testing/selftests/kvm/include/x86_64/svm.h | 2 -
.../selftests/kvm/include/x86_64/svm_util.h | 27 +-
tools/testing/selftests/kvm/include/x86_64/vmx.h | 8 +-
.../testing/selftests/kvm/kvm_binary_stats_test.c | 183 +-
tools/testing/selftests/kvm/kvm_create_max_vcpus.c | 10 +-
tools/testing/selftests/kvm/kvm_page_table_test.c | 66 +-
.../testing/selftests/kvm/lib/aarch64/processor.c | 81 +-
tools/testing/selftests/kvm/lib/aarch64/ucall.c | 22 +-
tools/testing/selftests/kvm/lib/aarch64/vgic.c | 54 +-
tools/testing/selftests/kvm/lib/elf.c | 1 -
tools/testing/selftests/kvm/lib/guest_modes.c | 6 +-
tools/testing/selftests/kvm/lib/kvm_util.c | 1207 +-
.../testing/selftests/kvm/lib/kvm_util_internal.h | 128 -
tools/testing/selftests/kvm/lib/perf_test_util.c | 125 +-
tools/testing/selftests/kvm/lib/riscv/processor.c | 111 +-
tools/testing/selftests/kvm/lib/riscv/ucall.c | 16 +-
.../selftests/kvm/lib/s390x/diag318_test_handler.c | 11 +-
tools/testing/selftests/kvm/lib/s390x/processor.c | 44 +-
tools/testing/selftests/kvm/lib/s390x/ucall.c | 10 +-
.../selftests/kvm/lib/x86_64/perf_test_util.c | 111 +
tools/testing/selftests/kvm/lib/x86_64/processor.c | 842 +-
tools/testing/selftests/kvm/lib/x86_64/svm.c | 17 -
tools/testing/selftests/kvm/lib/x86_64/ucall.c | 12 +-
tools/testing/selftests/kvm/lib/x86_64/vmx.c | 167 +-
.../testing/selftests/kvm/max_guest_memory_test.c | 55 +-
.../kvm/memslot_modification_stress_test.c | 13 +-
tools/testing/selftests/kvm/memslot_perf_test.c | 32 +-
tools/testing/selftests/kvm/rseq_test.c | 88 +-
tools/testing/selftests/kvm/s390x/memop.c | 182 +-
tools/testing/selftests/kvm/s390x/resets.c | 178 +-
tools/testing/selftests/kvm/s390x/sync_regs_test.c | 121 +-
tools/testing/selftests/kvm/s390x/tprot.c | 68 +-
.../testing/selftests/kvm/set_memory_region_test.c | 46 +-
tools/testing/selftests/kvm/steal_time.c | 123 +-
.../selftests/kvm/system_counter_offset_test.c | 38 +-
tools/testing/selftests/kvm/x86_64/amx_test.c | 91 +-
tools/testing/selftests/kvm/x86_64/cpuid_test.c | 105 +-
.../selftests/kvm/x86_64/cr4_cpuid_sync_test.c | 43 +-
tools/testing/selftests/kvm/x86_64/debug_regs.c | 77 +-
.../selftests/kvm/x86_64/emulator_error_test.c | 85 +-
tools/testing/selftests/kvm/x86_64/evmcs_test.c | 65 +-
.../selftests/kvm/x86_64/fix_hypercall_test.c | 47 +-
.../selftests/kvm/x86_64/get_msr_index_features.c | 117 +-
tools/testing/selftests/kvm/x86_64/hyperv_clock.c | 38 +-
tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c | 48 +-
.../testing/selftests/kvm/x86_64/hyperv_features.c | 406 +-
.../testing/selftests/kvm/x86_64/hyperv_svm_test.c | 28 +-
.../testing/selftests/kvm/x86_64/kvm_clock_test.c | 32 +-
tools/testing/selftests/kvm/x86_64/kvm_pv_test.c | 117 +-
.../selftests/kvm/x86_64/max_vcpuid_cap_test.c | 44 +
.../selftests/kvm/x86_64/mmio_warning_test.c | 16 +-
tools/testing/selftests/kvm/x86_64/mmu_role_test.c | 147 -
.../selftests/kvm/x86_64/monitor_mwait_test.c | 131 +
.../selftests/kvm/x86_64/nx_huge_pages_test.c | 269 +
.../selftests/kvm/x86_64/nx_huge_pages_test.sh | 59 +
.../selftests/kvm/x86_64/platform_info_test.c | 51 +-
.../selftests/kvm/x86_64/pmu_event_filter_test.c | 117 +-
.../testing/selftests/kvm/x86_64/set_boot_cpu_id.c | 95 +-
.../testing/selftests/kvm/x86_64/set_sregs_test.c | 75 +-
.../selftests/kvm/x86_64/sev_migrate_tests.c | 131 +-
tools/testing/selftests/kvm/x86_64/smm_test.c | 46 +-
tools/testing/selftests/kvm/x86_64/state_test.c | 39 +-
.../selftests/kvm/x86_64/svm_int_ctl_test.c | 25 +-
.../kvm/x86_64/svm_nested_soft_inject_test.c | 211 +
.../testing/selftests/kvm/x86_64/svm_vmcall_test.c | 20 +-
.../testing/selftests/kvm/x86_64/sync_regs_test.c | 62 +-
.../selftests/kvm/x86_64/triple_fault_event_test.c | 90 +
tools/testing/selftests/kvm/x86_64/tsc_msrs_test.c | 39 +-
.../selftests/kvm/x86_64/tsc_scaling_sync.c | 25 +-
.../selftests/kvm/x86_64/ucna_injection_test.c | 316 +
.../selftests/kvm/x86_64/userspace_io_test.c | 22 +-
.../selftests/kvm/x86_64/userspace_msr_exit_test.c | 188 +-
.../selftests/kvm/x86_64/vmx_apic_access_test.c | 32 +-
.../kvm/x86_64/vmx_close_while_nested_test.c | 21 +-
.../selftests/kvm/x86_64/vmx_dirty_log_test.c | 18 +-
.../vmx_exception_with_invalid_guest_state.c | 68 +-
.../kvm/x86_64/vmx_invalid_nested_guest_state.c | 22 +-
tools/testing/selftests/kvm/x86_64/vmx_msrs_test.c | 84 +
.../kvm/x86_64/vmx_nested_tsc_scaling_test.c | 33 +-
.../selftests/kvm/x86_64/vmx_pmu_caps_test.c | 73 +-
.../kvm/x86_64/vmx_preemption_timer_test.c | 38 +-
.../kvm/x86_64/vmx_set_nested_state_test.c | 105 +-
.../selftests/kvm/x86_64/vmx_tsc_adjust_test.c | 17 +-
.../testing/selftests/kvm/x86_64/xapic_ipi_test.c | 48 +-
.../selftests/kvm/x86_64/xapic_state_test.c | 82 +-
.../testing/selftests/kvm/x86_64/xen_shinfo_test.c | 75 +-
.../testing/selftests/kvm/x86_64/xen_vmcall_test.c | 27 +-
tools/testing/selftests/kvm/x86_64/xss_msr_test.c | 56 +-
tools/testing/selftests/landlock/Makefile | 10 +-
tools/testing/selftests/lib.mk | 63 +-
tools/testing/selftests/net/.gitignore | 4 +-
tools/testing/selftests/net/Makefile | 11 +-
tools/testing/selftests/net/af_unix/Makefile | 3 +-
tools/testing/selftests/net/af_unix/unix_connect.c | 148 +
.../selftests/net/arp_ndisc_untracked_subnets.sh | 308 +
tools/testing/selftests/net/bind_bhash_test.c | 119 -
tools/testing/selftests/net/bpf/Makefile | 4 +-
tools/testing/selftests/net/cmsg_sender.c | 2 +-
tools/testing/selftests/net/fcnal-test.sh | 61 +-
tools/testing/selftests/net/fib_nexthop_nongw.sh | 119 +
tools/testing/selftests/net/fib_rule_tests.sh | 23 +
tools/testing/selftests/net/forwarding/Makefile | 3 +
.../net/forwarding/bridge_mdb_port_down.sh | 118 +
.../net/forwarding/custom_multipath_hash.sh | 24 +-
.../net/forwarding/ethtool_extended_state.sh | 43 +-
.../net/forwarding/gre_custom_multipath_hash.sh | 24 +-
.../net/forwarding/ip6gre_custom_multipath_hash.sh | 24 +-
tools/testing/selftests/net/forwarding/lib.sh | 6 +-
.../net/forwarding/mirror_gre_bridge_1q_lag.sh | 7 +-
.../selftests/net/forwarding/vxlan_asymmetric.sh | 2 +-
tools/testing/selftests/net/io_uring_zerocopy_tx.c | 605 +
.../testing/selftests/net/io_uring_zerocopy_tx.sh | 131 +
tools/testing/selftests/net/ioam6.sh | 12 +-
tools/testing/selftests/net/ipv6_flowlabel.c | 75 +-
tools/testing/selftests/net/ipv6_flowlabel.sh | 16 +
tools/testing/selftests/net/mptcp/Makefile | 3 +-
tools/testing/selftests/net/mptcp/diag.sh | 48 +-
tools/testing/selftests/net/mptcp/mptcp_connect.c | 28 +-
tools/testing/selftests/net/mptcp/mptcp_inq.c | 2 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh | 116 +-
tools/testing/selftests/net/mptcp/mptcp_sockopt.c | 2 +-
tools/testing/selftests/net/mptcp/pm_nl_ctl.c | 75 +-
tools/testing/selftests/net/mptcp/simult_flows.sh | 14 +-
tools/testing/selftests/net/mptcp/userspace_pm.sh | 72 +-
.../selftests/net/srv6_hencap_red_l3vpn_test.sh | 879 +
.../selftests/net/srv6_hl2encap_red_l2vpn_test.sh | 821 +
tools/testing/selftests/net/tap.c | 434 +
tools/testing/selftests/net/tls.c | 124 +-
tools/testing/selftests/net/tun.c | 162 +
tools/testing/selftests/net/udpgro.sh | 2 +-
tools/testing/selftests/net/udpgro_bench.sh | 2 +-
tools/testing/selftests/net/udpgro_frglist.sh | 2 +-
tools/testing/selftests/net/udpgro_fwd.sh | 2 +-
tools/testing/selftests/net/udpgso_bench.sh | 2 +-
tools/testing/selftests/net/veth.sh | 6 +-
.../selftests/netfilter/nft_concat_range.sh | 2 +-
tools/testing/selftests/netfilter/nft_nat.sh | 43 +
.../selftests/netfilter/nft_trans_stress.sh | 81 +-
.../testing/selftests/powerpc/include/basic_asm.h | 63 +-
tools/testing/selftests/powerpc/include/reg.h | 73 +-
tools/testing/selftests/powerpc/include/utils.h | 10 +
tools/testing/selftests/powerpc/lib/reg.S | 107 +-
tools/testing/selftests/powerpc/math/.gitignore | 1 +
tools/testing/selftests/powerpc/math/mma.S | 3 +
tools/testing/selftests/powerpc/mce/.gitignore | 1 +
.../selftests/powerpc/papr_attributes/attr_test.c | 30 +-
tools/testing/selftests/powerpc/pmu/Makefile | 11 +-
tools/testing/selftests/powerpc/pmu/branch_loops.S | 28 +
tools/testing/selftests/powerpc/pmu/ebb/.gitignore | 1 +
.../powerpc/pmu/ebb/cycles_with_mmcr2_test.c | 1 +
.../powerpc/pmu/event_code_tests/Makefile | 15 +
.../pmu/event_code_tests/blacklisted_events_test.c | 132 +
.../event_alternatives_tests_p10.c | 109 +
.../event_code_tests/event_alternatives_tests_p9.c | 116 +
.../event_code_tests/generic_events_valid_test.c | 130 +
.../event_code_tests/group_constraint_cache_test.c | 60 +
.../group_constraint_l2l3_sel_test.c | 64 +
.../group_constraint_mmcra_sample_test.c | 54 +
.../event_code_tests/group_constraint_pmc56_test.c | 63 +
.../group_constraint_pmc_count_test.c | 70 +
.../group_constraint_radix_scope_qual_test.c | 56 +
.../group_constraint_repeat_test.c | 56 +
.../group_constraint_thresh_cmp_test.c | 96 +
.../group_constraint_thresh_ctl_test.c | 64 +
.../group_constraint_thresh_sel_test.c | 63 +
.../event_code_tests/group_constraint_unit_test.c | 74 +
.../group_pmc56_exclude_constraints_test.c | 64 +
.../event_code_tests/hw_cache_event_type_test.c | 88 +
.../pmu/event_code_tests/invalid_event_code_test.c | 67 +
.../reserved_bits_mmcra_sample_elig_mode_test.c | 77 +
.../reserved_bits_mmcra_thresh_ctl_test.c | 44 +
.../selftests/powerpc/pmu/sampling_tests/Makefile | 7 +-
.../pmu/sampling_tests/bhrb_filter_map_test.c | 105 +
.../pmu/sampling_tests/bhrb_no_crash_wo_pmu_test.c | 59 +
.../intr_regs_no_crash_wo_pmu_test.c | 57 +
.../selftests/powerpc/pmu/sampling_tests/misc.c | 135 +-
.../selftests/powerpc/pmu/sampling_tests/misc.h | 9 +-
.../pmu/sampling_tests/mmcr1_sel_unit_cache_test.c | 77 +
.../pmu/sampling_tests/mmcra_bhrb_any_test.c | 65 +
.../pmu/sampling_tests/mmcra_bhrb_cond_test.c | 69 +
.../mmcra_bhrb_disable_no_branch_test.c | 64 +
.../pmu/sampling_tests/mmcra_bhrb_disable_test.c | 66 +
.../pmu/sampling_tests/mmcra_bhrb_ind_call_test.c | 69 +
.../pmu/sampling_tests/mmcra_thresh_cmp_test.c | 74 +
tools/testing/selftests/powerpc/ptrace/Makefile | 40 +-
.../testing/selftests/powerpc/ptrace/ptrace-gpr.S | 52 +
.../testing/selftests/powerpc/ptrace/ptrace-gpr.c | 125 +-
.../testing/selftests/powerpc/ptrace/ptrace-gpr.h | 14 +-
.../selftests/powerpc/ptrace/ptrace-tm-gpr.c | 18 +-
.../selftests/powerpc/ptrace/ptrace-tm-spd-gpr.c | 20 +-
tools/testing/selftests/powerpc/ptrace/ptrace.h | 79 +-
.../testing/selftests/powerpc/security/.gitignore | 1 +
tools/testing/selftests/proc/proc-pid-vm.c | 75 +-
.../selftests/rcutorture/bin/kvm-check-branches.sh | 11 +-
.../testing/selftests/rcutorture/bin/kvm-remote.sh | 1 +
tools/testing/selftests/rcutorture/bin/kvm.sh | 6 +-
tools/testing/selftests/rseq/rseq-riscv.h | 50 +-
tools/testing/selftests/rseq/rseq.c | 3 +-
tools/testing/selftests/safesetid/Makefile | 2 +-
tools/testing/selftests/safesetid/safesetid-test.c | 295 +-
tools/testing/selftests/seccomp/seccomp_bpf.c | 2 +-
tools/testing/selftests/sgx/defines.h | 23 +
tools/testing/selftests/sgx/load.c | 41 +
tools/testing/selftests/sgx/main.c | 1435 +
tools/testing/selftests/sgx/main.h | 1 +
tools/testing/selftests/sgx/test_encl.c | 68 +
tools/testing/selftests/sgx/test_encl_bootstrap.S | 6 +
tools/testing/selftests/sync/config | 1 -
tools/testing/selftests/tc-testing/.gitignore | 1 -
tools/testing/selftests/tc-testing/Makefile | 1 -
.../tc-testing/tc-tests/actions/gact.json | 77 +
tools/testing/selftests/timens/Makefile | 2 +-
tools/testing/selftests/timens/vfork_exec.c | 90 +
tools/testing/selftests/timers/adjtick.c | 2 +-
.../testing/selftests/timers/alarmtimer-suspend.c | 2 +-
tools/testing/selftests/timers/change_skew.c | 2 +-
.../testing/selftests/timers/clocksource-switch.c | 71 +-
.../testing/selftests/timers/inconsistency-check.c | 32 +-
tools/testing/selftests/timers/nanosleep.c | 18 +-
tools/testing/selftests/timers/raw_skew.c | 2 +-
tools/testing/selftests/timers/skew_consistency.c | 2 +-
tools/testing/selftests/timers/valid-adjtimex.c | 2 +-
tools/testing/selftests/tpm2/settings | 1 +
tools/testing/selftests/vm/Makefile | 2 +-
tools/testing/selftests/vm/gup_test.c | 4 +-
tools/testing/selftests/vm/hmm-tests.c | 325 +-
tools/testing/selftests/vm/hugepage-mremap.c | 2 +-
tools/testing/selftests/vm/hugetlb-madvise.c | 5 +-
tools/testing/selftests/vm/ksm_tests.c | 2 +
tools/testing/selftests/vm/mrelease_test.c | 16 +-
tools/testing/selftests/vm/run_vmtests.sh | 15 +-
tools/testing/selftests/vm/soft-dirty.c | 67 +-
tools/testing/selftests/vm/test_hmm.sh | 24 +-
tools/testing/selftests/vm/userfaultfd.c | 6 +-
tools/testing/selftests/vm/va_128TBswitch.c | 8 +-
tools/testing/selftests/vm/va_128TBswitch.sh | 54 +
tools/testing/selftests/wireguard/qemu/Makefile | 61 +-
.../selftests/wireguard/qemu/arch/arm.config | 1 +
.../selftests/wireguard/qemu/arch/armeb.config | 1 +
.../selftests/wireguard/qemu/arch/i686.config | 8 +-
.../selftests/wireguard/qemu/arch/m68k.config | 10 +-
.../selftests/wireguard/qemu/arch/mips.config | 1 +
.../selftests/wireguard/qemu/arch/mipsel.config | 1 +
.../selftests/wireguard/qemu/arch/powerpc.config | 1 +
.../selftests/wireguard/qemu/arch/riscv32.config | 1 +
.../selftests/wireguard/qemu/arch/um.config | 3 +
.../selftests/wireguard/qemu/arch/x86_64.config | 7 +-
.../testing/selftests/wireguard/qemu/debug.config | 5 -
tools/testing/selftests/wireguard/qemu/init.c | 14 +
.../testing/selftests/wireguard/qemu/kernel.config | 5 +-
tools/thermal/tmon/pid.c | 2 +-
tools/thermal/tmon/sysfs.c | 24 +-
tools/thermal/tmon/tmon.h | 3 +
tools/tracing/rtla/Makefile | 2 +-
tools/tracing/rtla/src/trace.c | 9 +-
tools/tracing/rtla/src/utils.c | 7 +-
tools/usb/testusb.c | 18 +-
tools/verification/dot2/Makefile | 26 +
tools/verification/dot2/automata.py | 174 +
tools/verification/dot2/dot2c | 26 +
tools/verification/dot2/dot2c.py | 254 +
tools/verification/dot2/dot2k | 47 +
tools/verification/dot2/dot2k.py | 177 +
.../dot2/dot2k_templates/main_global.c | 91 +
.../dot2/dot2k_templates/main_per_cpu.c | 91 +
.../dot2/dot2k_templates/main_per_task.c | 91 +
tools/verification/models/wip.dot | 16 +
tools/verification/models/wwnr.dot | 16 +
tools/virtio/linux/kernel.h | 2 +-
tools/virtio/linux/vringh.h | 1 +
tools/virtio/virtio_test.c | 4 +-
tools/vm/page_owner_sort.c | 30 +-
tools/vm/slabinfo.c | 58 +-
virt/kvm/kvm_main.c | 311 +-
virt/kvm/pfncache.c | 231 +-
14075 files changed, 1381208 insertions(+), 278526 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-bus-event_source-devices-caps
delete mode 100644 Documentation/ABI/testing/sysfs-bus-iio-temperature-max31856
delete mode 100644 Documentation/ABI/testing/sysfs-bus-iio-temperature-max31865
create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-thermocouple
create mode 100644 Documentation/ABI/testing/sysfs-bus-platform-onboard-usb-hub
create mode 100644 Documentation/ABI/testing/sysfs-bus-surface_aggregator-tabletsw
create mode 100644 Documentation/ABI/testing/sysfs-class-usb_power_delivery
create mode 100644 Documentation/ABI/testing/sysfs-class-vduse
create mode 100644 Documentation/ABI/testing/sysfs-driver-intel-m10-bmc-sec-update
create mode 100644 Documentation/ABI/testing/sysfs-driver-qat
create mode 100644 Documentation/PCI/endpoint/pci-vntb-function.rst
create mode 100644 Documentation/PCI/endpoint/pci-vntb-howto.rst
create mode 100644 Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst
create mode 100644 Documentation/admin-guide/mm/damon/lru_sort.rst
create mode 100644 Documentation/admin-guide/mm/shrinker_debugfs.rst
create mode 100644 Documentation/admin-guide/perf/hns3-pmu.rst
create mode 100644 Documentation/arm/google/chromebook-boot-flow.rst
create mode 100644 Documentation/bpf/kfuncs.rst
create mode 100644 Documentation/bpf/map_hash.rst
delete mode 100644 Documentation/core-api/bus-virt-phys-mapping.rst
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
rename Documentation/devicetree/bindings/arm/{coresight-cti.yaml => arm,coresight-cti.yaml} (98%)
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-dynamic-replicator.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etb10.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-etm.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-static-replicator.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-stm.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tmc.yaml
create mode 100644 Documentation/devicetree/bindings/arm/arm,coresight-tpiu.yaml
rename Documentation/devicetree/bindings/arm/{ete.yaml => arm,embedded-trace-extension.yaml} (95%)
rename Documentation/devicetree/bindings/arm/{trbe.yaml => arm,trace-buffer-extension.yaml} (94%)
create mode 100644 Documentation/devicetree/bindings/arm/aspeed/aspeed.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
delete mode 100644 Documentation/devicetree/bindings/arm/coresight.txt
delete mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt
create mode 100644 Documentation/devicetree/bindings/arm/marvell/marvell,ac5.yaml
create mode 100644 Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml
create mode 100644 Documentation/devicetree/bindings/arm/sunplus,sp7021.yaml
create mode 100644 Documentation/devicetree/bindings/arm/tegra/nvidia,tegra194-axi2apb.yaml
create mode 100644 Documentation/devicetree/bindings/arm/tegra/nvidia,tegra194-cbb.yaml
create mode 100644 Documentation/devicetree/bindings/arm/tegra/nvidia,tegra234-cbb.yaml
delete mode 100644 Documentation/devicetree/bindings/ata/ahci-ceva.txt
create mode 100644 Documentation/devicetree/bindings/ata/ceva,ahci-1v84.yaml
delete mode 100644 Documentation/devicetree/bindings/chosen.txt
create mode 100644 Documentation/devicetree/bindings/chrome/google,cros-kbd-led-backlight.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/efm32-clock.txt
create mode 100644 Documentation/devicetree/bindings/clock/fsl,scu-clk.yaml
create mode 100644 Documentation/devicetree/bindings/clock/nuvoton,npcm845-clk.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gpucc-sm8350.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sm8450-camcc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/sprd,ums512-clk.yaml
create mode 100644 Documentation/devicetree/bindings/clock/sunplus,sp7021-clkc.yaml
delete mode 100644 Documentation/devicetree/bindings/devfreq/exynos-bus.txt
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-ldb.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pixel-combiner.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pixel-link.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pxl2dpi.yaml
delete mode 100644 Documentation/devicetree/bindings/display/bridge/sii902x.txt
create mode 100644 Documentation/devicetree/bindings/display/bridge/sil,sii9022.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/ti,dlpc3433.yaml
delete mode 100644 Documentation/devicetree/bindings/display/ilitek,ili9341.txt
delete mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.txt
create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.yaml
create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,mdp-rdma.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/hdmi.txt
create mode 100644 Documentation/devicetree/bindings/display/msm/hdmi.yaml
create mode 100644 Documentation/devicetree/bindings/display/panel/arm,rtsm-display.yaml
create mode 100644 Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml
delete mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra114-mipi.txt
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra114-mipi.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra124-dpaux.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra124-sor.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra124-vic.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra186-dc.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra186-display.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra186-dsi-padctl.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-dc.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-dsi.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-epp.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-gr2d.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-gr3d.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-hdmi.yaml
delete mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-isp.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-mpe.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-tvo.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-vi.yaml
create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra210-csi.yaml
create mode 100644 Documentation/devicetree/bindings/dma/apple,admac.yaml
create mode 100644 Documentation/devicetree/bindings/dma/fsl,edma.yaml
delete mode 100644 Documentation/devicetree/bindings/dma/fsl-edma.txt
create mode 100644 Documentation/devicetree/bindings/dma/qcom,bam-dma.yaml
delete mode 100644 Documentation/devicetree/bindings/dma/qcom_bam_dma.txt
delete mode 100644 Documentation/devicetree/bindings/dma/ste-dma40.txt
create mode 100644 Documentation/devicetree/bindings/dma/stericsson,dma40.yaml
create mode 100644 Documentation/devicetree/bindings/dsp/mediatek,mt8186-dsp.yaml
rename Documentation/devicetree/bindings/{misc/eeprom-93xx46.yaml => eeprom/microchip,93lc46b.yaml} (89%)
create mode 100644 Documentation/devicetree/bindings/firmware/fsl,scu.yaml
create mode 100644 Documentation/devicetree/bindings/fpga/microchip,mpf-spi-fpga-mgr.yaml
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-mvebu.txt
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-tpic2810.txt
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-tpic2810.yaml
rename Documentation/devicetree/bindings/{arm => hwinfo}/renesas,prr.yaml (85%)
rename Documentation/devicetree/bindings/{soc/samsung/exynos-chipid.yaml => hwinfo/samsung,exynos-chipid.yaml} (92%)
create mode 100644 Documentation/devicetree/bindings/hwinfo/samsung,s5pv210-chipid.yaml
rename Documentation/devicetree/bindings/{soc/ti/k3-socinfo.yaml => hwinfo/ti,k3-socinfo.yaml} (92%)
rename Documentation/devicetree/bindings/{i2c => hwmon}/ibm,p8-occ-hwmon.txt (100%)
create mode 100644 Documentation/devicetree/bindings/i2c/arm,i2c-versatile.yaml
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-efm32.txt
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-nomadik.txt
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-ocores.txt
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-qcom-cci.txt
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-versatile.txt
create mode 100644 Documentation/devicetree/bindings/i2c/opencores,i2c-ocores.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/renesas,rzv2m.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/st,nomadik-i2c.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/qcom,spmi-rradc.yaml
delete mode 100644 Documentation/devicetree/bindings/input/adc-keys.txt
create mode 100644 Documentation/devicetree/bindings/input/adc-keys.yaml
create mode 100644 Documentation/devicetree/bindings/input/elan,ekth6915.yaml
create mode 100644 Documentation/devicetree/bindings/input/fsl,scu-key.yaml
create mode 100644 Documentation/devicetree/bindings/interconnect/mediatek,cci.yaml
create mode 100644 Documentation/devicetree/bindings/interconnect/qcom,msm8998-bwmon.yaml
create mode 100644 Documentation/devicetree/bindings/interconnect/qcom,rpmh-common.yaml
create mode 100644 Documentation/devicetree/bindings/interconnect/qcom,sm6350-rpmh.yaml
create mode 100644 Documentation/devicetree/bindings/interconnect/samsung,exynos-bus.yaml
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/rda,8810pl-intc.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/rda,8810pl-intc.yaml
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,rzg2l-irqc.yaml
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/sunplus,sp7021-intc.yaml
create mode 100644 Documentation/devicetree/bindings/iommu/xen,grant-dma.yaml
create mode 100644 Documentation/devicetree/bindings/leds/issi,is31fl319x.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/leds-aat1290.txt
create mode 100644 Documentation/devicetree/bindings/leds/leds-bcm63138.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/leds-is31fl319x.txt
create mode 100644 Documentation/devicetree/bindings/leds/skyworks,aat1290.yaml
create mode 100644 Documentation/devicetree/bindings/media/allwinner,sun6i-a31-mipi-csi2.yaml
create mode 100644 Documentation/devicetree/bindings/media/allwinner,sun8i-a83t-mipi-csi2.yaml
delete mode 100644 Documentation/devicetree/bindings/media/exynos-jpeg-codec.txt
delete mode 100644 Documentation/devicetree/bindings/media/gpio-ir-receiver.txt
create mode 100644 Documentation/devicetree/bindings/media/gpio-ir-receiver.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov5693.yaml
create mode 100644 Documentation/devicetree/bindings/media/rockchip,rk3568-vepu.yaml
create mode 100644 Documentation/devicetree/bindings/media/samsung,s5pv210-jpeg.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/canaan,k210-sram.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/da9063.txt
create mode 100644 Documentation/devicetree/bindings/mfd/dlg,da9063.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/fsl,imx8qxp-csr.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.txt
create mode 100644 Documentation/devicetree/bindings/mfd/qcom,spmi-pmic.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/qcom,tcsr.txt
create mode 100644 Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml
create mode 100644 Documentation/devicetree/bindings/misc/qemu,vcpu-stall-detector.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
delete mode 100644 Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt
create mode 100644 Documentation/devicetree/bindings/mmc/mmc-spi-slot.yaml
create mode 100644 Documentation/devicetree/bindings/mmc/samsung,exynos-dw-mshc.yaml
create mode 100644 Documentation/devicetree/bindings/mmc/samsung,s3c6410-sdhci.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/samsung-sdhci.txt
delete mode 100644 Documentation/devicetree/bindings/mtd/partitions/arm,arm-firmware-suite.txt
create mode 100644 Documentation/devicetree/bindings/mtd/partitions/arm,arm-firmware-suite.yaml
create mode 100644 Documentation/devicetree/bindings/net/can/microchip,mpfs-can.yaml
create mode 100644 Documentation/devicetree/bindings/net/can/nxp,sja1000.yaml
delete mode 100644 Documentation/devicetree/bindings/net/can/sja1000.txt
create mode 100644 Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
create mode 100644 Documentation/devicetree/bindings/net/dsa/microchip,lan937x.yaml
delete mode 100644 Documentation/devicetree/bindings/net/dsa/mt7530.txt
create mode 100644 Documentation/devicetree/bindings/net/dsa/renesas,rzn1-a5psw.yaml
delete mode 100644 Documentation/devicetree/bindings/net/emac_rockchip.txt
create mode 100644 Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml
create mode 100644 Documentation/devicetree/bindings/net/rockchip,emac.yaml
delete mode 100644 Documentation/devicetree/bindings/net/sff,sfp.txt
create mode 100644 Documentation/devicetree/bindings/net/sff,sfp.yaml
create mode 100644 Documentation/devicetree/bindings/net/xlnx,emaclite.yaml
create mode 100644 Documentation/devicetree/bindings/nvmem/fsl,scu-ocotp.yaml
create mode 100644 Documentation/devicetree/bindings/nvmem/mediatek,efuse.yaml
create mode 100644 Documentation/devicetree/bindings/nvmem/microchip,sama7g5-otpc.yaml
delete mode 100644 Documentation/devicetree/bindings/nvmem/mtk-efuse.txt
create mode 100644 Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie-ep.yaml
delete mode 100644 Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt
create mode 100644 Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.yaml
delete mode 100644 Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt
create mode 100644 Documentation/devicetree/bindings/pci/renesas,pci-rcar-gen2.yaml
create mode 100644 Documentation/devicetree/bindings/perf/arm,ccn.yaml
delete mode 100644 Documentation/devicetree/bindings/perf/arm-ccn.txt
create mode 100644 Documentation/devicetree/bindings/phy/amlogic,g12a-mipi-dphy-analog.yaml
create mode 100644 Documentation/devicetree/bindings/phy/fsl,imx8qm-lvds-phy.yaml
create mode 100644 Documentation/devicetree/bindings/phy/mediatek,pcie-phy.yaml
create mode 100644 Documentation/devicetree/bindings/phy/qcom,hdmi-phy-other.yaml
create mode 100644 Documentation/devicetree/bindings/phy/qcom,hdmi-phy-qmp.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,scu-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-dpaux-padctl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8909-tlmm.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sm6375-tlmm.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/renesas,rzv2m-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/power/fsl,scu-pd.yaml
delete mode 100644 Documentation/devicetree/bindings/power/reset/msm-poweroff.txt
create mode 100644 Documentation/devicetree/bindings/power/reset/qcom,pshold.yaml
create mode 100644 Documentation/devicetree/bindings/pwm/clk-pwm.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/pwm-regulator.txt
create mode 100644 Documentation/devicetree/bindings/regulator/pwm-regulator.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/qcom,spmi-regulator.txt
create mode 100644 Documentation/devicetree/bindings/regulator/qcom,spmi-regulator.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,glink-edge.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sc7180-mss-pil.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,sc7280-mss-pil.yaml
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,smd-edge.yaml
create mode 100644 Documentation/devicetree/bindings/reset/atmel,at91sam9260-reset.yaml
create mode 100644 Documentation/devicetree/bindings/reset/sunplus,reset.yaml
create mode 100644 Documentation/devicetree/bindings/reset/ti,tps380x-reset.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/fsl,scu-rtc.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/nuvoton,nct3018y.yaml
delete mode 100644 Documentation/devicetree/bindings/rtc/nxp,pcf85063.txt
create mode 100644 Documentation/devicetree/bindings/rtc/nxp,pcf85063.yaml
delete mode 100644 Documentation/devicetree/bindings/rtc/rtc-ds1307.txt
create mode 100644 Documentation/devicetree/bindings/rtc/rtc-ds1307.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/ti,k3-rtc.yaml
delete mode 100644 Documentation/devicetree/bindings/serial/efm32-uart.txt
create mode 100644 Documentation/devicetree/bindings/serial/mediatek,uart.yaml
delete mode 100644 Documentation/devicetree/bindings/serial/mtk-uart.txt
delete mode 100644 Documentation/devicetree/bindings/serio/ps2-gpio.txt
create mode 100644 Documentation/devicetree/bindings/serio/ps2-gpio.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.txt
create mode 100644 Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.yaml
rename Documentation/devicetree/bindings/{display => soc}/mediatek/mediatek,mutex.yaml (81%)
create mode 100644 Documentation/devicetree/bindings/soc/mediatek/mtk-svs.yaml
create mode 100644 Documentation/devicetree/bindings/sound/atmel,sama5d2-classd.yaml
create mode 100644 Documentation/devicetree/bindings/sound/atmel,sama5d2-i2s.yaml
create mode 100644 Documentation/devicetree/bindings/sound/atmel,sama5d2-pdmic.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/atmel-classd.txt
delete mode 100644 Documentation/devicetree/bindings/sound/atmel-i2s.txt
delete mode 100644 Documentation/devicetree/bindings/sound/atmel-pdmic.txt
delete mode 100644 Documentation/devicetree/bindings/sound/designware-i2s.txt
delete mode 100644 Documentation/devicetree/bindings/sound/fsl,micfil.txt
create mode 100644 Documentation/devicetree/bindings/sound/fsl,micfil.yaml
create mode 100644 Documentation/devicetree/bindings/sound/mt8186-afe-pcm.yaml
create mode 100644 Documentation/devicetree/bindings/sound/mt8186-mt6366-da7219-max98357.yaml
create mode 100644 Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-mbdrc.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-ope.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-peq.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/qcom,sdm845.txt
create mode 100644 Documentation/devicetree/bindings/sound/qcom,wsa883x.yaml
create mode 100644 Documentation/devicetree/bindings/sound/snps,designware-i2s.yaml
create mode 100644 Documentation/devicetree/bindings/spi/atmel,at91rm9200-spi.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/efm32-spi.txt
create mode 100644 Documentation/devicetree/bindings/spi/hpe,gxp-spifi.yaml
create mode 100644 Documentation/devicetree/bindings/spi/nvidia,tegra210-quad-peripheral-props.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/spi_atmel.txt
create mode 100644 Documentation/devicetree/bindings/sram/qcom,imem.yaml
create mode 100644 Documentation/devicetree/bindings/thermal/fsl,scu-thermal.yaml
create mode 100644 Documentation/devicetree/bindings/thermal/qcom,spmi-temp-alarm.yaml
delete mode 100644 Documentation/devicetree/bindings/thermal/qcom-spmi-temp-alarm.txt
create mode 100644 Documentation/devicetree/bindings/timer/nvidia,tegra186-timer.yaml
create mode 100644 Documentation/devicetree/bindings/timer/st,nomadik-mtu.yaml
create mode 100644 Documentation/devicetree/bindings/ufs/renesas,ufs.yaml
create mode 100644 Documentation/devicetree/bindings/usb/analogix,anx7411.yaml
create mode 100644 Documentation/devicetree/bindings/usb/aspeed,ast2600-udc.yaml
create mode 100644 Documentation/devicetree/bindings/usb/st,typec-stm32g0.yaml
create mode 100644 Documentation/devicetree/bindings/usb/ti,usb8041.yaml
create mode 100644 Documentation/devicetree/bindings/watchdog/fsl,scu-wdt.yaml
delete mode 100644 Documentation/devicetree/bindings/watchdog/qcom,pm8916-wdt.txt
create mode 100644 Documentation/devicetree/bindings/watchdog/qcom,pm8916-wdt.yaml
create mode 100644 Documentation/driver-api/aperture.rst
create mode 100644 Documentation/driver-api/firmware/firmware-usage-guidelines.rst
rename Documentation/{ => driver-api}/hte/hte.rst (100%)
rename Documentation/{ => driver-api}/hte/index.rst (100%)
rename Documentation/{ => driver-api}/hte/tegra194-hte.rst (94%)
create mode 100644 Documentation/gpu/rfc/i915_small_bar.h
create mode 100644 Documentation/gpu/rfc/i915_small_bar.rst
create mode 100644 Documentation/gpu/rfc/i915_vm_bind.h
create mode 100644 Documentation/gpu/rfc/i915_vm_bind.rst
create mode 100644 Documentation/hwmon/lt7182s.rst
rename Documentation/{vm => mm}/active_mm.rst (100%)
rename Documentation/{vm => mm}/arch_pgtable_helpers.rst (100%)
rename Documentation/{vm => mm}/balance.rst (100%)
rename Documentation/{vm => mm}/bootmem.rst (100%)
rename Documentation/{vm => mm}/damon/api.rst (100%)
rename Documentation/{vm => mm}/damon/design.rst (100%)
rename Documentation/{vm => mm}/damon/faq.rst (100%)
rename Documentation/{vm => mm}/damon/index.rst (100%)
rename Documentation/{vm => mm}/free_page_reporting.rst (100%)
rename Documentation/{vm => mm}/frontswap.rst (100%)
rename Documentation/{vm => mm}/highmem.rst (83%)
rename Documentation/{vm => mm}/hmm.rst (100%)
rename Documentation/{vm => mm}/hugetlbfs_reserv.rst (100%)
rename Documentation/{vm => mm}/hwpoison.rst (98%)
rename Documentation/{vm => mm}/index.rst (100%)
rename Documentation/{vm => mm}/ksm.rst (100%)
rename Documentation/{vm => mm}/memory-model.rst (99%)
rename Documentation/{vm => mm}/mmu_notifier.rst (100%)
rename Documentation/{vm => mm}/numa.rst (100%)
rename Documentation/{vm => mm}/oom.rst (100%)
rename Documentation/{vm => mm}/overcommit-accounting.rst (98%)
rename Documentation/{vm => mm}/page_allocation.rst (100%)
rename Documentation/{vm => mm}/page_cache.rst (100%)
rename Documentation/{vm => mm}/page_frags.rst (100%)
rename Documentation/{vm => mm}/page_migration.rst (60%)
rename Documentation/{vm => mm}/page_owner.rst (100%)
rename Documentation/{vm => mm}/page_reclaim.rst (100%)
rename Documentation/{vm => mm}/page_table_check.rst (100%)
rename Documentation/{vm => mm}/page_tables.rst (100%)
rename Documentation/{vm => mm}/physical_memory.rst (100%)
rename Documentation/{vm => mm}/process_addrs.rst (100%)
rename Documentation/{vm => mm}/remap_file_pages.rst (100%)
rename Documentation/{vm => mm}/shmfs.rst (100%)
rename Documentation/{vm => mm}/slab.rst (100%)
rename Documentation/{vm => mm}/slub.rst (100%)
rename Documentation/{vm => mm}/split_page_table_lock.rst (100%)
rename Documentation/{vm => mm}/swap.rst (100%)
rename Documentation/{vm => mm}/transhuge.rst (100%)
rename Documentation/{vm => mm}/unevictable-lru.rst (100%)
rename Documentation/{vm => mm}/vmalloc.rst (100%)
rename Documentation/{vm => mm}/vmalloced-kernel-stacks.rst (100%)
rename Documentation/{vm => mm}/vmemmap_dedup.rst (79%)
rename Documentation/{vm => mm}/z3fold.rst (100%)
rename Documentation/{vm => mm}/zsmalloc.rst (100%)
create mode 100644 Documentation/networking/device_drivers/can/can327.rst
delete mode 100644 Documentation/networking/device_drivers/ethernet/neterion/vxge.rst
create mode 100644 Documentation/networking/device_drivers/ethernet/wangxun/txgbe.rst
create mode 100644 Documentation/networking/devlink/devlink-selftests.rst
create mode 100644 Documentation/powerpc/elf_hwcaps.rst
delete mode 100644 Documentation/process/submitting-drivers.rst
create mode 100644 Documentation/s390/vfio-ap-locking.rst
create mode 100644 Documentation/trace/rv/da_monitor_instrumentation.rst
create mode 100644 Documentation/trace/rv/da_monitor_synthesis.rst
create mode 100644 Documentation/trace/rv/deterministic_automata.rst
create mode 100644 Documentation/trace/rv/index.rst
create mode 100644 Documentation/trace/rv/monitor_wip.rst
create mode 100644 Documentation/trace/rv/monitor_wwnr.rst
create mode 100644 Documentation/trace/rv/runtime-verification.rst
create mode 100644 Documentation/translations/it_IT/devicetree/bindings/submitting-patches.rst
create mode 100644 Documentation/translations/it_IT/maintainer/configure-git.rst
create mode 100644 Documentation/translations/it_IT/process/maintainer-handbooks.rst
create mode 100644 Documentation/translations/it_IT/process/maintainer-tip.rst
create mode 100644 Documentation/translations/it_IT/process/maintainers.rst
delete mode 100644 Documentation/translations/it_IT/process/submitting-drivers.rst
create mode 100644 Documentation/translations/zh_CN/admin-guide/reporting-regressions.rst
create mode 100644 Documentation/translations/zh_CN/core-api/watch_queue.rst
create mode 100644 Documentation/translations/zh_CN/locking/mutex-design.rst
rename Documentation/translations/zh_CN/{vm => mm}/active_mm.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/balance.rst (99%)
rename Documentation/translations/zh_CN/{vm => mm}/damon/api.rst (91%)
rename Documentation/translations/zh_CN/{vm => mm}/damon/design.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/damon/faq.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/damon/index.rst (90%)
rename Documentation/translations/zh_CN/{vm => mm}/free_page_reporting.rst (97%)
rename Documentation/translations/zh_CN/{vm => mm}/frontswap.rst (99%)
create mode 100644 Documentation/translations/zh_CN/mm/highmem.rst
rename Documentation/translations/zh_CN/{vm => mm}/hmm.rst (99%)
rename Documentation/translations/zh_CN/{vm => mm}/hugetlbfs_reserv.rst (99%)
rename Documentation/translations/zh_CN/{vm => mm}/hwpoison.rst (99%)
create mode 100644 Documentation/translations/zh_CN/mm/index.rst
rename Documentation/translations/zh_CN/{vm => mm}/ksm.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/memory-model.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/mmu_notifier.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/numa.rst (99%)
rename Documentation/translations/zh_CN/{vm => mm}/overcommit-accounting.rst (98%)
rename Documentation/translations/zh_CN/{vm => mm}/page_frags.rst (97%)
create mode 100644 Documentation/translations/zh_CN/mm/page_migration.rst
rename Documentation/translations/zh_CN/{vm => mm}/page_owner.rst (65%)
rename Documentation/translations/zh_CN/{vm => mm}/page_table_check.rst (97%)
rename Documentation/translations/zh_CN/{vm => mm}/remap_file_pages.rst (97%)
rename Documentation/translations/zh_CN/{vm => mm}/split_page_table_lock.rst (98%)
create mode 100644 Documentation/translations/zh_CN/mm/vmalloced-kernel-stacks.rst
rename Documentation/translations/zh_CN/{vm => mm}/z3fold.rst (96%)
rename Documentation/translations/zh_CN/{vm => mm}/zsmalloc.rst (98%)
delete mode 100644 Documentation/translations/zh_CN/process/submitting-drivers.rst
delete mode 100644 Documentation/translations/zh_CN/riscv/pmu.rst
delete mode 100644 Documentation/translations/zh_CN/vm/highmem.rst
delete mode 100644 Documentation/translations/zh_CN/vm/index.rst
delete mode 100644 Documentation/translations/zh_TW/process/submitting-drivers.rst
delete mode 100644 Documentation/userspace-api/media/drivers/hantro.rst
create mode 100644 Documentation/virt/hyperv/clocks.rst
create mode 100644 Documentation/virt/hyperv/index.rst
create mode 100644 Documentation/virt/hyperv/overview.rst
create mode 100644 Documentation/virt/hyperv/vmbus.rst
create mode 100644 Documentation/virt/kvm/s390/s390-pv-dump.rst
delete mode 100644 arch/arm/boot/dts/aspeed-bmc-arm-centriq2400-rep.dts
rename arch/arm/boot/dts/{aspeed-bmc-nuvia-dc-scm.dts => aspeed-bmc-qcom-dc-scm-v1.dts} (97%)
create mode 100644 arch/arm/boot/dts/bcm53015-meraki-mr26.dts
create mode 100644 arch/arm/boot/dts/bcm63148.dtsi
create mode 100644 arch/arm/boot/dts/bcm63178.dtsi
create mode 100644 arch/arm/boot/dts/bcm6756.dtsi
create mode 100644 arch/arm/boot/dts/bcm6846.dtsi
create mode 100644 arch/arm/boot/dts/bcm6855.dtsi
create mode 100644 arch/arm/boot/dts/bcm6878.dtsi
create mode 100644 arch/arm/boot/dts/bcm963138.dts
create mode 100644 arch/arm/boot/dts/bcm963148.dts
create mode 100644 arch/arm/boot/dts/bcm963178.dts
create mode 100644 arch/arm/boot/dts/bcm96756.dts
create mode 100644 arch/arm/boot/dts/bcm96846.dts
create mode 100644 arch/arm/boot/dts/bcm96855.dts
create mode 100644 arch/arm/boot/dts/bcm96878.dts
create mode 100644 arch/arm/boot/dts/exynos-pinctrl.h
create mode 100644 arch/arm/boot/dts/imx6q-apalis-ixora-v1.2.dts
create mode 100644 arch/arm/boot/dts/imx7-colibri-iris-v2.dtsi
create mode 100644 arch/arm/boot/dts/imx7-colibri-iris.dtsi
create mode 100644 arch/arm/boot/dts/imx7d-colibri-emmc-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx7d-colibri-emmc-iris.dts
create mode 100644 arch/arm/boot/dts/imx7d-colibri-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx7d-colibri-iris.dts
create mode 100644 arch/arm/boot/dts/imx7s-colibri-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx7s-colibri-iris.dts
create mode 100644 arch/arm/boot/dts/imxrt1170-pinfunc.h
create mode 100644 arch/arm/boot/dts/lan966x-pcb8309.dts
create mode 100644 arch/arm/boot/dts/qcom-ipq8064-smb208.dtsi
delete mode 100644 arch/arm/boot/dts/r8a77xx-aa104xd12-panel.dtsi
create mode 100644 arch/arm/boot/dts/s3c2410-pinctrl.h
create mode 100644 arch/arm/boot/dts/s3c64xx-pinctrl.h
create mode 100644 arch/arm/boot/dts/s5pv210-pinctrl.h
create mode 100644 arch/arm/boot/dts/socfpga_arria10_chameleonv3.dts
rename arch/arm/boot/dts/{socfpga_arria10_mercury_aa1.dts => socfpga_arria10_mercury_aa1.dtsi} (70%)
create mode 100644 arch/arm/boot/dts/stm32mp15-scmi.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp153c-dhcor-drc-compact.dts
create mode 100644 arch/arm/boot/dts/stm32mp15xx-dhcor-drc-compact.dtsi
create mode 100644 arch/arm/boot/dts/sun8i-r40-cpu-opp.dtsi
create mode 100644 arch/arm/boot/dts/sunplus-sp7021-achip.dtsi
create mode 100644 arch/arm/boot/dts/sunplus-sp7021-demo-v3.dts
create mode 100644 arch/arm/boot/dts/sunplus-sp7021.dtsi
delete mode 100644 arch/arm/common/dmabounce.c
create mode 100644 arch/arm/configs/sp7021_defconfig
delete mode 100644 arch/arm/crypto/blake2s-shash.c
delete mode 100644 arch/arm/include/asm/dma-mapping.h
create mode 100644 arch/arm/include/asm/xen/xen-ops.h
delete mode 100644 arch/arm/mach-bcm/bcm63xx.c
delete mode 100644 arch/arm/mach-davinci/board-dm644x-evm.c
delete mode 100644 arch/arm/mach-davinci/board-dm646x-evm.c
delete mode 100644 arch/arm/mach-davinci/board-neuros-osd2.c
delete mode 100644 arch/arm/mach-davinci/board-sffsdr.c
delete mode 100644 arch/arm/mach-davinci/dm644x.c
delete mode 100644 arch/arm/mach-davinci/dm646x.c
create mode 100644 arch/arm/mach-footbridge/include/mach/dma-direct.h
create mode 100644 arch/arm/mach-sunplus/Kconfig
create mode 100644 arch/arm/mach-sunplus/Makefile
create mode 100644 arch/arm/mach-sunplus/sp7021.c
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
create mode 100644 arch/arm64/boot/dts/altera/socfpga_stratix10_swvp.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/Makefile
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm4912-asus-gt-ax6000.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm963146.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm96856.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts
create mode 100644 arch/arm64/boot/dts/exynos/exynos-pinctrl.h
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-phyboard-polis-rdk.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-phycore-som.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk2.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-dhcom-som.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
create mode 100755 arch/arm64/boot/dts/freescale/imx93-pinfunc.h
create mode 100644 arch/arm64/boot/dts/freescale/imx93.dtsi
create mode 100644 arch/arm64/boot/dts/marvell/ac5-98dx25xx.dtsi
create mode 100644 arch/arm64/boot/dts/marvell/ac5-98dx35xx-rd.dts
create mode 100644 arch/arm64/boot/dts/marvell/ac5-98dx35xx.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8192-asurada-hayato-r1.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8192-asurada-spherion-r0.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r1.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r2.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195-cherry-tomato-r3.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi
create mode 100644 arch/arm64/boot/dts/nuvoton/Makefile
create mode 100644 arch/arm64/boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi
create mode 100644 arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts
create mode 100644 arch/arm64/boot/dts/nuvoton/nuvoton-npcm845.dtsi
delete mode 100644 arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dts
delete mode 100644 arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dts
delete mode 100644 arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-xiaomi-natrium.dts
delete mode 100644 arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sa8295p-adp.dts
create mode 100644 arch/arm64/boot/dts/qcom/sa8540p.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-kingoftown-r0.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-kingoftown-r1.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-kingoftown.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-mrbland-rev0-auo.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-mrbland-rev0-boe.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-mrbland-rev0.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-mrbland-rev1-auo.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-mrbland-rev1-boe.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-mrbland.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel-lte-parade.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel-lte-ti.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel-parade.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel-ti.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-pazquel.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-quackingstick-r0-lte.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-quackingstick-r0.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-quackingstick.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev0-boe.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev0-inx.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev0.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev1-boe-rt5682s.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev1-boe.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev1-inx-rt5682s.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler-rev1-inx.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-wormdingler.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-audio-wcd9385.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-pmics.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-lg-judyln.dts
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-lg-judyp.dts
create mode 100644 arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dts
create mode 100644 arch/arm64/boot/dts/renesas/draak-ebisu-panel-aa104xd12.dts
create mode 100644 arch/arm64/boot/dts/renesas/panel-aa104xd12.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/salvator-panel-aa104xd12.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts
create mode 100644 arch/arm64/boot/dts/tesla/fsd-pinctrl.h
create mode 100644 arch/arm64/crypto/polyval-ce-core.S
create mode 100644 arch/arm64/crypto/polyval-ce-glue.c
create mode 100644 arch/arm64/include/asm/stacktrace/common.h
create mode 100644 arch/arm64/include/asm/stacktrace/nvhe.h
create mode 100644 arch/arm64/include/asm/xen/xen-ops.h
create mode 100644 arch/arm64/kernel/pi/Makefile
create mode 100644 arch/arm64/kernel/pi/kaslr_early.c
create mode 100644 arch/arm64/kvm/hyp/nvhe/stacktrace.c
create mode 100644 arch/arm64/kvm/stacktrace.c
create mode 100644 arch/csky/include/asm/jump_label.h
create mode 100644 arch/csky/include/asm/sections.h
create mode 100644 arch/csky/include/asm/spinlock.h
create mode 100644 arch/csky/include/asm/spinlock_types.h
create mode 100644 arch/csky/kernel/jump_label.c
delete mode 100644 arch/loongarch/include/asm/compiler.h
create mode 100644 arch/loongarch/include/asm/dma.h
create mode 100644 arch/loongarch/include/asm/pci.h
create mode 100644 arch/loongarch/include/asm/unwind.h
create mode 100644 arch/loongarch/kernel/stacktrace.c
create mode 100644 arch/loongarch/kernel/unwind_guess.c
create mode 100644 arch/loongarch/kernel/unwind_prologue.c
create mode 100644 arch/loongarch/pci/acpi.c
create mode 100644 arch/loongarch/pci/pci.c
create mode 100644 arch/loongarch/vdso/vgetcpu.c
delete mode 100644 arch/mips/configs/capcella_defconfig
delete mode 100644 arch/mips/configs/e55_defconfig
delete mode 100644 arch/mips/configs/mpc30x_defconfig
delete mode 100644 arch/mips/configs/tb0219_defconfig
delete mode 100644 arch/mips/configs/tb0226_defconfig
delete mode 100644 arch/mips/configs/tb0287_defconfig
delete mode 100644 arch/mips/configs/workpad_defconfig
delete mode 100644 arch/mips/include/asm/mach-vr41xx/irq.h
delete mode 100644 arch/mips/include/asm/vr41xx/capcella.h
delete mode 100644 arch/mips/include/asm/vr41xx/giu.h
delete mode 100644 arch/mips/include/asm/vr41xx/irq.h
delete mode 100644 arch/mips/include/asm/vr41xx/mpc30x.h
delete mode 100644 arch/mips/include/asm/vr41xx/pci.h
delete mode 100644 arch/mips/include/asm/vr41xx/siu.h
delete mode 100644 arch/mips/include/asm/vr41xx/tb0219.h
delete mode 100644 arch/mips/include/asm/vr41xx/tb0226.h
delete mode 100644 arch/mips/include/asm/vr41xx/tb0287.h
delete mode 100644 arch/mips/include/asm/vr41xx/vr41xx.h
delete mode 100644 arch/mips/pci/fixup-capcella.c
delete mode 100644 arch/mips/pci/fixup-mpc30x.c
delete mode 100644 arch/mips/pci/fixup-tb0219.c
delete mode 100644 arch/mips/pci/fixup-tb0226.c
delete mode 100644 arch/mips/pci/fixup-tb0287.c
delete mode 100644 arch/mips/pci/ops-vr41xx.c
delete mode 100644 arch/mips/pci/pci-vr41xx.c
delete mode 100644 arch/mips/pci/pci-vr41xx.h
delete mode 100644 arch/mips/vr41xx/Kconfig
delete mode 100644 arch/mips/vr41xx/Makefile
delete mode 100644 arch/mips/vr41xx/Platform
delete mode 100644 arch/mips/vr41xx/casio-e55/Makefile
delete mode 100644 arch/mips/vr41xx/casio-e55/setup.c
delete mode 100644 arch/mips/vr41xx/common/Makefile
delete mode 100644 arch/mips/vr41xx/common/bcu.c
delete mode 100644 arch/mips/vr41xx/common/cmu.c
delete mode 100644 arch/mips/vr41xx/common/giu.c
delete mode 100644 arch/mips/vr41xx/common/icu.c
delete mode 100644 arch/mips/vr41xx/common/init.c
delete mode 100644 arch/mips/vr41xx/common/irq.c
delete mode 100644 arch/mips/vr41xx/common/pmu.c
delete mode 100644 arch/mips/vr41xx/common/rtc.c
delete mode 100644 arch/mips/vr41xx/common/siu.c
delete mode 100644 arch/mips/vr41xx/common/type.c
delete mode 100644 arch/mips/vr41xx/ibm-workpad/Makefile
delete mode 100644 arch/mips/vr41xx/ibm-workpad/setup.c
create mode 100644 arch/openrisc/configs/virt_defconfig
create mode 100644 arch/powerpc/boot/dts/turris1x.dts
create mode 100644 arch/powerpc/include/asm/bpf_perf_event.h
delete mode 100644 arch/powerpc/include/uapi/asm/bpf_perf_event.h
create mode 100644 arch/powerpc/kernel/irq_64.c
create mode 100644 arch/powerpc/kernel/syscall.c
create mode 100644 arch/powerpc/kvm/book3s_hv_p9_perf.c
create mode 100644 arch/powerpc/mm/kasan/init_book3e_64.c
create mode 100644 arch/powerpc/platforms/microwatt/microwatt.h
create mode 100644 arch/powerpc/platforms/pseries/plpks.c
create mode 100644 arch/powerpc/platforms/pseries/plpks.h
create mode 100644 arch/powerpc/purgatory/kexec-purgatory.S
create mode 100644 arch/riscv/include/asm/kvm_vcpu_insn.h
create mode 100644 arch/riscv/kvm/vcpu_insn.c
create mode 100644 arch/riscv/mm/dma-noncoherent.c
create mode 100644 arch/riscv/purgatory/kexec-purgatory.S
create mode 100644 arch/s390/kernel/cpufeature.c
create mode 100644 arch/s390/kvm/pci.c
create mode 100644 arch/s390/kvm/pci.h
create mode 100644 arch/s390/lib/expoline/Makefile
rename arch/s390/lib/{ => expoline}/expoline.S (100%)
create mode 100644 arch/um/include/asm/archrandom.h
create mode 100644 arch/um/include/asm/kasan.h
delete mode 100644 arch/x86/crypto/blake2s-shash.c
create mode 100644 arch/x86/crypto/polyval-clmulni_asm.S
create mode 100644 arch/x86/crypto/polyval-clmulni_glue.c
create mode 100644 arch/x86/entry/entry.S
delete mode 100644 arch/x86/kvm/mmu/paging.h
create mode 100644 arch/x86/kvm/vmx/run_flags.h
create mode 100644 arch/x86/purgatory/kexec-purgatory.S
delete mode 100644 certs/blacklist_nohashes.c
rename {scripts => certs}/check-blacklist-hashes.awk (100%)
delete mode 100644 certs/common.h
create mode 100644 crypto/aria.c
create mode 100644 crypto/asymmetric_keys/selftest.c
rename certs/common.c => crypto/asymmetric_keys/x509_loader.c (87%)
delete mode 100644 crypto/blake2s_generic.c
create mode 100644 crypto/hctr2.c
create mode 100644 crypto/polyval-generic.c
create mode 100644 crypto/xctr.c
create mode 100644 drivers/accessibility/speakup/.gitignore
create mode 100644 drivers/accessibility/speakup/genmap.c
create mode 100644 drivers/accessibility/speakup/makemapdata.c
delete mode 100644 drivers/accessibility/speakup/speakupmap.h
create mode 100644 drivers/accessibility/speakup/utils.h
delete mode 100644 drivers/block/sx8.c
create mode 100644 drivers/block/ublk_drv.c
delete mode 100644 drivers/char/tb0219.c
create mode 100644 drivers/char/tpm/tpm_tis_i2c.c
create mode 100644 drivers/clk/mediatek/reset.h
create mode 100644 drivers/clk/qcom/camcc-sm8450.c
create mode 100644 drivers/clk/qcom/clk-regmap-phy-mux.c
create mode 100644 drivers/clk/qcom/clk-regmap-phy-mux.h
create mode 100644 drivers/clk/qcom/gpucc-sm8350.c
create mode 100644 drivers/clocksource/timer-tegra186.c
create mode 100644 drivers/crypto/qat/qat_common/adf_sysfs.c
create mode 100644 drivers/cxl/core/region.c
create mode 100644 drivers/devfreq/mtk-cci-devfreq.c
create mode 100644 drivers/dma-buf/dma-fence-unwrap.c
create mode 100644 drivers/dma/apple-admac.c
create mode 100644 drivers/firmware/arm_scmi/powercap.c
create mode 100644 drivers/firmware/arm_scmi/scmi_power_control.c
delete mode 100644 drivers/firmware/efi/efivars.c
create mode 100644 drivers/fpga/intel-m10-bmc-sec-update.c
create mode 100644 drivers/fpga/microchip-spi.c
create mode 100644 drivers/gpio/gpio-i8255.c
create mode 100644 drivers/gpio/gpio-i8255.h
delete mode 100644 drivers/gpio/gpio-vr41xx.c
rename drivers/gpu/drm/{nouveau/nvkm/engine/disp/rootgf119.c => amd/amdgpu/amdgpu_vram_mgr.h} (52%)
create mode 100644 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_1.c
rename drivers/gpu/drm/{nouveau/nvkm/engine/disp/hdagv100.c => amd/amdgpu/mmhub_v3_0_1.h} (80%)
create mode 100644 drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.c
rename drivers/gpu/drm/{nouveau/nvkm/engine/disp/changv100.c => amd/amdgpu/psp_v13_0_4.h} (78%)
create mode 100644 drivers/gpu/drm/amd/amdgpu/umc_v8_10.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/umc_v8_10.h
create mode 100644 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
create mode 100644 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.h
create mode 100644 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
create mode 100644 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.c
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_clk_mgr.h
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_smu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn314/dcn314_smu.h
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dalsmc.h
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c
rename drivers/gpu/drm/{nouveau/nvkm/engine/disp/hdmigm200.c => amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.h} (72%)
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.c
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.h
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_smu13_driver_if.h
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/smu13_driver_if.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/Makefile
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_dccg.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_dccg.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_dio_stream_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_dio_stream_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_init.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_init.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_optc.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_optc.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/Makefile
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_link_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_link_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_stream_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_stream_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dpp.c
rename drivers/gpu/drm/amd/display/dc/{gpio/diagnostics/hw_translate_diag.c => dcn32/dcn32_dpp.h} (74%)
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hpo_dp_link_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hpo_dp_link_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubbub.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubbub.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubp.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubp.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mmhubbub.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mmhubbub.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mpc.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mpc.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_optc.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_optc.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/Makefile
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/dcn321_dio_link_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/dcn321_dio_link_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/dcn321_resource.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/dcn321_resource.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn314/display_mode_vba_314.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn314/display_rq_dlg_calc_314.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn314/display_rq_dlg_calc_314.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c
rename drivers/gpu/drm/amd/display/dc/{gpio/diagnostics/hw_factory_diag.c => dml/dcn32/display_mode_vba_32.h} (53%)
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_util_32.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_util_32.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_rq_dlg_calc_32.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_rq_dlg_calc_32.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn321/dcn321_fpu.h
create mode 100644 drivers/gpu/drm/amd/display/dc/gpio/dcn32/hw_factory_dcn32.c
rename drivers/gpu/drm/amd/display/dc/gpio/{diagnostics/hw_factory_diag.h => dcn32/hw_factory_dcn32.h} (81%)
create mode 100644 drivers/gpu/drm/amd/display/dc/gpio/dcn32/hw_translate_dcn32.c
rename drivers/gpu/drm/amd/display/dc/gpio/{diagnostics/hw_translate_diag.h => dcn32/hw_translate_dcn32.h} (82%)
create mode 100644 drivers/gpu/drm/amd/display/dc/irq/dcn314/irq_service_dcn314.c
rename drivers/gpu/drm/{nouveau/nvkm/engine/disp/cursgf119.c => amd/display/dc/irq/dcn314/irq_service_dcn314.h} (76%)
create mode 100644 drivers/gpu/drm/amd/display/dc/irq/dcn32/irq_service_dcn32.c
create mode 100644 drivers/gpu/drm/amd/display/dc/irq/dcn32/irq_service_dcn32.h
create mode 100644 drivers/gpu/drm/amd/display/dmub/inc/dmub_subvp_state.h
create mode 100644 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.c
create mode 100644 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.h
mode change 100755 => 100644 drivers/gpu/drm/amd/include/asic_reg/clk/clk_11_0_1_offset.h
mode change 100755 => 100644 drivers/gpu/drm/amd/include/asic_reg/clk/clk_11_0_1_sh_mask.h
mode change 100755 => 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_2_0_3_offset.h
mode change 100755 => 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_2_0_3_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_1_4_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_1_4_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_2_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_2_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_2_1_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_2_1_sh_mask.h
mode change 100755 => 100644 drivers/gpu/drm/amd/include/asic_reg/dpcs/dpcs_2_0_3_offset.h
mode change 100755 => 100644 drivers/gpu/drm/amd/include/asic_reg/dpcs/dpcs_2_0_3_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dpcs/dpcs_3_1_4_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dpcs/dpcs_3_1_4_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_3_0_1_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_3_0_1_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_13_0_4_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_13_0_4_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/umc/umc_8_10_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/umc/umc_8_10_0_sh_mask.h
create mode 100644 drivers/gpu/drm/bridge/imx/Kconfig
create mode 100644 drivers/gpu/drm/bridge/imx/Makefile
create mode 100644 drivers/gpu/drm/bridge/imx/imx-ldb-helper.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx-ldb-helper.h
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c
create mode 100644 drivers/gpu/drm/bridge/ti-dlpc3433.c
create mode 100644 drivers/gpu/drm/i915/display/intel_audio_regs.h
create mode 100644 drivers/gpu/drm/i915/display/intel_crtc_state_dump.c
create mode 100644 drivers/gpu/drm/i915/display/intel_crtc_state_dump.h
create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_setup.c
create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_setup.h
create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_verify.c
create mode 100644 drivers/gpu/drm/i915/display/intel_modeset_verify.h
create mode 100644 drivers/gpu/drm/i915/gt/intel_ggtt_gmch.c
create mode 100644 drivers/gpu/drm/i915/gt/intel_ggtt_gmch.h
delete mode 100644 drivers/gpu/drm/i915/gt/intel_gt_gmch.c
delete mode 100644 drivers/gpu/drm/i915/gt/intel_gt_gmch.h
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_mcr.c
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_mcr.h
create mode 100644 drivers/gpu/drm/i915/i915_tasklet.h
create mode 100644 drivers/gpu/drm/logicvc/Kconfig
create mode 100644 drivers/gpu/drm/logicvc/Makefile
create mode 100644 drivers/gpu/drm/logicvc/logicvc_crtc.c
create mode 100644 drivers/gpu/drm/logicvc/logicvc_crtc.h
create mode 100644 drivers/gpu/drm/logicvc/logicvc_drm.c
create mode 100644 drivers/gpu/drm/logicvc/logicvc_drm.h
create mode 100644 drivers/gpu/drm/logicvc/logicvc_interface.c
create mode 100644 drivers/gpu/drm/logicvc/logicvc_interface.h
create mode 100644 drivers/gpu/drm/logicvc/logicvc_layer.c
create mode 100644 drivers/gpu/drm/logicvc/logicvc_layer.h
create mode 100644 drivers/gpu/drm/logicvc/logicvc_mode.c
create mode 100644 drivers/gpu/drm/logicvc/logicvc_mode.h
create mode 100644 drivers/gpu/drm/logicvc/logicvc_of.c
create mode 100644 drivers/gpu/drm/logicvc/logicvc_of.h
create mode 100644 drivers/gpu/drm/logicvc/logicvc_regs.h
create mode 100644 drivers/gpu/drm/mediatek/mtk_disp_merge.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_mdp_rdma.c
create mode 100644 drivers/gpu/drm/mediatek/mtk_mdp_rdma.h
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200eh.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200eh3.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200er.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200ev.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200ew3.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200se.c
create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200wb.c
delete mode 100644 drivers/gpu/drm/mgag200/mgag200_mm.c
delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h
delete mode 100644 drivers/gpu/drm/msm/dp/dp_clk_util.c
delete mode 100644 drivers/gpu/drm/msm/dp/dp_clk_util.h
create mode 100644 drivers/gpu/drm/mxsfb/lcdif_drv.c
create mode 100644 drivers/gpu/drm/mxsfb/lcdif_drv.h
create mode 100644 drivers/gpu/drm/mxsfb/lcdif_kms.c
create mode 100644 drivers/gpu/drm/mxsfb/lcdif_regs.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/cl507a.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/cl507b.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/cl507c.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/cl507d.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/cl507e.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/clc37b.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvif/clc37e.h
create mode 100644 drivers/gpu/drm/nouveau/include/nvif/conn.h
create mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0010.h
create mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0011.h
create mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0012.h
create mode 100644 drivers/gpu/drm/nouveau/include/nvif/if0014.h
create mode 100644 drivers/gpu/drm/nouveau/include/nvif/outp.h
delete mode 100644 drivers/gpu/drm/nouveau/include/nvkm/subdev/secboot.h
rename drivers/gpu/drm/nouveau/{nvkm/engine/disp/rootga102.c => nvif/conn.c} (56%)
rename drivers/gpu/drm/nouveau/{nvkm/engine/disp/rootg84.c => nvif/outp.c} (54%)
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/baseg84.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/basegf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/basegp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/basenv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/capsgv100.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.h
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/changf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.h
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coreg84.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coreg94.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coregf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coregk104.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coregp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coregv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/corenv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/cursgp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/cursgv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/cursnv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/dacgf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/dmacgf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/dmacgp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/dmacgv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/dmacnv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmigv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/headgf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/headgv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/headnv04.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/headnv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/oimmgf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/oimmgp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/oimmnv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlyg84.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlygf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlygk104.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlygp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlygt200.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlynv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/piocgf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/piocnv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/piornv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootg94.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgk104.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgk110.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgm107.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgm200.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgp100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgp102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgt200.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgt215.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg84.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg94.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorga102.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgp100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgt215.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sormcp77.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sormcp89.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/udisp.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/wimmgv100.c
delete mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/wndwgv100.c
create mode 100644 drivers/gpu/drm/panel/panel-ebbg-ft8719.c
create mode 100644 drivers/gpu/drm/tests/.kunitconfig
create mode 100644 drivers/gpu/drm/tests/Makefile
create mode 100644 drivers/gpu/drm/tests/drm_format_helper_test.c
create mode 100644 drivers/gpu/host1x/context.c
create mode 100644 drivers/gpu/host1x/context.h
create mode 100644 drivers/gpu/host1x/hw/host1x08.c
create mode 100644 drivers/gpu/host1x/hw/host1x08.h
create mode 100644 drivers/gpu/host1x/hw/host1x08_hardware.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_channel.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_common.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_hypervisor.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_uclass.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x08_vm.h
create mode 100644 drivers/gpu/host1x/hw/opcodes.h
create mode 100644 drivers/hid/.kunitconfig
create mode 100644 drivers/hid/amd-sfh-hid/amd_sfh_common.h
create mode 100644 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_desc.c
create mode 100644 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c
create mode 100644 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.h
create mode 100644 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_interface.c
create mode 100644 drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_interface.h
create mode 100644 drivers/hid/hid-uclogic-rdesc-test.c
create mode 100644 drivers/hid/i2c-hid/i2c-hid-of-elan.c
create mode 100644 drivers/hwmon/pmbus/lt7182s.c
create mode 100644 drivers/i2c/busses/i2c-microchip-corei2c.c
create mode 100644 drivers/i2c/busses/i2c-rzv2m.c
create mode 100644 drivers/iio/adc/qcom-spmi-rradc.c
create mode 100644 drivers/infiniband/hw/erdma/Kconfig
create mode 100644 drivers/infiniband/hw/erdma/Makefile
create mode 100644 drivers/infiniband/hw/erdma/erdma.h
create mode 100644 drivers/infiniband/hw/erdma/erdma_cm.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_cm.h
create mode 100644 drivers/infiniband/hw/erdma/erdma_cmdq.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_cq.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_eq.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_hw.h
create mode 100644 drivers/infiniband/hw/erdma/erdma_main.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_qp.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_verbs.c
create mode 100644 drivers/infiniband/hw/erdma/erdma_verbs.h
create mode 100644 drivers/input/input-core-private.h
create mode 100644 drivers/interconnect/imx/imx8mp.c
create mode 100644 drivers/interconnect/qcom/icc-common.c
create mode 100644 drivers/interconnect/qcom/icc-common.h
create mode 100644 drivers/interconnect/qcom/sm6350.c
create mode 100644 drivers/interconnect/qcom/sm6350.h
create mode 100644 drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
create mode 100644 drivers/iommu/arm/arm-smmu/arm-smmu-qcom.h
rename include/linux/intel-iommu.h => drivers/iommu/intel/iommu.h (97%)
rename include/trace/events/intel_iommu.h => drivers/iommu/intel/trace.h (93%)
create mode 100644 drivers/irqchip/irq-loongarch-cpu.c
create mode 100644 drivers/irqchip/irq-loongson-eiointc.c
create mode 100644 drivers/irqchip/irq-loongson-pch-lpc.c
create mode 100644 drivers/irqchip/irq-renesas-rzg2l.c
create mode 100644 drivers/irqchip/irq-sp7021-intc.c
create mode 100644 drivers/leds/blink/leds-bcm63138.c
create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.c
create mode 100644 drivers/md/dm-io-rewind.c
create mode 100644 drivers/md/dm-verity-loadpin.c
create mode 100644 drivers/media/i2c/ar0521.c
create mode 100644 drivers/media/platform/rockchip/rkisp1/rkisp1-csi.c
create mode 100644 drivers/media/platform/rockchip/rkisp1/rkisp1-csi.h
create mode 100644 drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
create mode 100644 drivers/media/platform/sunxi/sun6i-mipi-csi2/Kconfig
create mode 100644 drivers/media/platform/sunxi/sun6i-mipi-csi2/Makefile
create mode 100644 drivers/media/platform/sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2.c
create mode 100644 drivers/media/platform/sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2.h
create mode 100644 drivers/media/platform/sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2_reg.h
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Makefile
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_dphy.c
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_dphy.h
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.c
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.h
create mode 100644 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2_reg.h
create mode 100644 drivers/media/test-drivers/vimc/vimc-lens.c
create mode 100644 drivers/misc/habanalabs/common/decoder.c
create mode 100644 drivers/misc/habanalabs/common/mmu/mmu_v2_hr.c
create mode 100644 drivers/misc/habanalabs/common/security.c
create mode 100644 drivers/misc/habanalabs/gaudi2/Makefile
create mode 100644 drivers/misc/habanalabs/gaudi2/gaudi2.c
create mode 100644 drivers/misc/habanalabs/gaudi2/gaudi2P.h
create mode 100644 drivers/misc/habanalabs/gaudi2/gaudi2_coresight.c
create mode 100644 drivers/misc/habanalabs/gaudi2/gaudi2_coresight_regs.h
create mode 100644 drivers/misc/habanalabs/gaudi2/gaudi2_masks.h
create mode 100644 drivers/misc/habanalabs/gaudi2/gaudi2_security.c
create mode 100644 drivers/misc/habanalabs/include/gaudi2/arc/gaudi2_arc_common_packets.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_arc0_acp_eng_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_arc0_aux_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_arc0_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_arc0_dup_eng_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_arc0_dup_eng_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_ctx_axuser_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_ctx_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_ctx_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_ctx_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_kdma_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/arc_farm_kdma_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/cpu_if_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_dec0_cmd_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_dec0_cmd_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_core_ctx_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_core_ctx_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_core_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_core_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_qm_arc_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_qm_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_qm_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma0_qm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma1_core_ctx_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_edma1_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_hmmu0_mmu_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_hmmu0_mmu_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_hmmu0_stlb_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_hmmu0_stlb_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_acc_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_cout0_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_cout0_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_cout1_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_cout1_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in0_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in0_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in1_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in1_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in2_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in2_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in3_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in3_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in4_master_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_agu_in4_slave_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_base_addr_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_non_tensor_end_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_non_tensor_start_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_tensor_a_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_tensor_b_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_arch_tensor_cout_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_mme_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_ctrl_lo_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_arc_acp_eng_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_arc_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_arc_dup_eng_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_arc_dup_eng_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_axuser_secured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_qm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_sbte0_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_sbte0_mstr_if_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_mme_wb0_mstr_if_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_rtr0_ctrl_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_rtr0_mstr_if_rr_prvt_hbw_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_rtr0_mstr_if_rr_prvt_lbw_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_rtr0_mstr_if_rr_shrd_hbw_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_rtr0_mstr_if_rr_shrd_lbw_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_sync_mngr_glbl_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_sync_mngr_glbl_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_sync_mngr_mstr_if_axuser_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_sync_mngr_mstr_if_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_sync_mngr_objs_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_sync_mngr_objs_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_kernel_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_kernel_tensor_0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_qm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_qm_sync_object_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_qm_tensor_0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_cfg_special_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_eml_busmon_0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_eml_etf_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_eml_funnel_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_eml_spmu_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_eml_stm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_qm_arc_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_qm_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_tpc0_qm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_axuser_dec_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_axuser_msix_abnrm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_axuser_msix_l2c_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_axuser_msix_nrm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_axuser_msix_vcd_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_brdg_ctrl_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore0_vdec0_ctrl_special_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore1_mme_ctrl_lo_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/dcore3_mme_ctrl_lo_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/gaudi2_blocks_linux_driver.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/gaudi2_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/nic0_qm0_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/nic0_qm0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/nic0_qm_arc_aux0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/nic0_qpc0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/nic0_umr0_0_completion_queue_ci_1_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/nic0_umr0_0_unsecure_doorbell0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_dbi_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_dec0_cmd_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_dec0_cmd_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_axuser_dec_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_axuser_msix_abnrm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_axuser_msix_l2c_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_axuser_msix_nrm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_axuser_msix_vcd_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_brdg_ctrl_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_vdec0_ctrl_special_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pcie_wrap_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_core_ctx_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_core_ctx_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_core_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_core_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_core_special_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_qm_arc_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_qm_axuser_secured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_qm_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_qm_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma0_qm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma1_core_ctx_axuser_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pdma1_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pmmu_hbw_stlb_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pmmu_hbw_stlb_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/pmmu_pif_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_etr_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_etr_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_global_conf_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_global_conf_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_reset_conf_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_reset_conf_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/psoc_timestamp_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_desc_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_masks.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_qm_arc_aux_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_qm_axuser_nonsecured_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_qm_cgm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_qm_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/rot0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/xbar_edge_0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/asic_reg/xbar_mid_0_regs.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_async_events.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_async_ids_map_extended.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_async_virt_events.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_coresight.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_fw_if.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_packets.h
create mode 100644 drivers/misc/habanalabs/include/gaudi2/gaudi2_reg_map.h
create mode 100644 drivers/misc/habanalabs/include/hw_ip/mmu/mmu_v2_0.h
create mode 100644 drivers/misc/vcpu_stall_detector.c
create mode 100644 drivers/mtd/nand/spi/ato.c
create mode 100644 drivers/mtd/parsers/scpart.c
create mode 100644 drivers/net/can/can327.c
create mode 100644 drivers/net/can/dev/calc_bittiming.c
delete mode 100644 drivers/net/can/slcan.c
create mode 100644 drivers/net/can/slcan/Makefile
create mode 100644 drivers/net/can/slcan/slcan-core.c
create mode 100644 drivers/net/can/slcan/slcan-ethtool.c
create mode 100644 drivers/net/can/slcan/slcan.h
rename drivers/net/can/usb/{esd_usb2.c => esd_usb.c} (80%)
create mode 100644 drivers/net/dsa/microchip/ksz9477.h
delete mode 100644 drivers/net/dsa/microchip/ksz9477_spi.c
rename drivers/net/dsa/microchip/{ksz8795_spi.c => ksz_spi.c} (52%)
create mode 100644 drivers/net/dsa/microchip/lan937x.h
create mode 100644 drivers/net/dsa/microchip/lan937x_main.c
create mode 100644 drivers/net/dsa/microchip/lan937x_reg.h
rename drivers/net/dsa/{qca8k.c => qca/qca8k-8xxx.c} (63%)
create mode 100644 drivers/net/dsa/qca/qca8k-common.c
rename drivers/net/dsa/{ => qca}/qca8k.h (80%)
create mode 100644 drivers/net/dsa/rzn1_a5psw.c
create mode 100644 drivers/net/dsa/rzn1_a5psw.h
create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.h
create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/htb.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/htb.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/act/police.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_meter.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_meter.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/esw/debugfs.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/aso.h
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/core_linecard_dev.c
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c
delete mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_router_xm.c
delete mode 100644 drivers/net/ethernet/neterion/vxge/Makefile
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-config.c
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-config.h
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-ethtool.c
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-ethtool.h
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-main.c
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-main.h
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-reg.h
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-traffic.c
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-traffic.h
delete mode 100644 drivers/net/ethernet/neterion/vxge/vxge-version.h
create mode 100644 drivers/net/ethernet/sfc/ef100_rep.c
create mode 100644 drivers/net/ethernet/sfc/ef100_rep.h
create mode 100644 drivers/net/ethernet/sfc/mae.c
create mode 100644 drivers/net/ethernet/sfc/mae.h
create mode 100644 drivers/net/ethernet/sfc/mcdi_pcol_mae.h
create mode 100644 drivers/net/ethernet/sfc/tc.c
create mode 100644 drivers/net/ethernet/sfc/tc.h
create mode 100644 drivers/net/ethernet/wangxun/Kconfig
create mode 100644 drivers/net/ethernet/wangxun/Makefile
create mode 100644 drivers/net/ethernet/wangxun/txgbe/Makefile
create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe.h
create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe_main.c
create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe_type.h
rename drivers/net/ipa/{ => data}/ipa_data-v3.1.c (99%)
rename drivers/net/ipa/{ => data}/ipa_data-v3.5.1.c (99%)
rename drivers/net/ipa/{ => data}/ipa_data-v4.11.c (98%)
rename drivers/net/ipa/{ => data}/ipa_data-v4.2.c (98%)
rename drivers/net/ipa/{ => data}/ipa_data-v4.5.c (99%)
rename drivers/net/ipa/{ => data}/ipa_data-v4.9.c (99%)
create mode 100644 drivers/net/pcs/pcs-rzn1-miic.c
create mode 100644 drivers/net/phy/bcm-phy-ptp.c
create mode 100644 drivers/net/wireless/ath/wcn36xx/firmware.c
create mode 100644 drivers/net/wireless/ath/wcn36xx/firmware.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt76_connac2_mac.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.h
delete mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723de.h
delete mode 100644 drivers/net/wireless/realtek/rtw88/rtw8821ce.h
delete mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822be.h
delete mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822ce.h
create mode 100644 drivers/nvme/common/Kconfig
create mode 100644 drivers/nvme/common/Makefile
create mode 100644 drivers/nvme/common/auth.c
create mode 100644 drivers/nvme/host/auth.c
create mode 100644 drivers/nvme/target/auth.c
create mode 100644 drivers/nvme/target/fabrics-cmd-auth.c
create mode 100644 drivers/nvmem/microchip-otpc.c
create mode 100644 drivers/pci/doe.c
create mode 100644 drivers/pci/endpoint/functions/pci-epf-vntb.c
create mode 100644 drivers/perf/hisilicon/hns3_pmu.c
create mode 100644 drivers/phy/amlogic/phy-meson-g12a-mipi-dphy-analog.c
create mode 100644 drivers/phy/freescale/phy-fsl-imx8qm-lvds-phy.c
create mode 100644 drivers/phy/mediatek/phy-mtk-dp.c
create mode 100644 drivers/phy/mediatek/phy-mtk-pcie.c
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-combo.c
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcie-msm8996.c
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcie-qhp.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-misc-v3.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v4.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v4_20.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v5.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v5_20.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-ufs-v3.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-ufs-v4.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-ufs-v5.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-usb-v4.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-usb-v5.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v2.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v3.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v4.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v4_20.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-pcs-v5.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com-v3.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com-v4.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com-v5.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-com.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-pll.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v3.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v4.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v4_20.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v5.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx-v5_20.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-qserdes-txrx.h
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
create mode 100644 drivers/phy/qualcomm/phy-qcom-qmp-usb.c
delete mode 100644 drivers/phy/qualcomm/phy-qcom-qmp.c
create mode 100644 drivers/phy/samsung/phy-fsd-ufs.c
create mode 100644 drivers/pinctrl/intel/pinctrl-meteorlake.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-msm8909.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-sm6375.c
create mode 100644 drivers/pinctrl/renesas/pfc-r8a779g0.c
create mode 100644 drivers/pinctrl/renesas/pinctrl-rzv2m.c
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun20i-d1.c
create mode 100644 drivers/platform/chrome/cros_ec_proto_test.c
create mode 100644 drivers/platform/chrome/cros_kunit_util.c
create mode 100644 drivers/platform/chrome/cros_kunit_util.h
create mode 100644 drivers/platform/surface/surface_aggregator_hub.c
create mode 100644 drivers/platform/surface/surface_aggregator_tabletsw.c
create mode 100644 drivers/platform/x86/amd/Kconfig
create mode 100644 drivers/platform/x86/amd/Makefile
rename drivers/platform/x86/{amd_hsmp.c => amd/hsmp.c} (100%)
rename drivers/platform/x86/{amd-pmc.c => amd/pmc.c} (98%)
create mode 100644 drivers/platform/x86/p2sb.c
create mode 100644 drivers/power/reset/pwr-mlxbf.c
delete mode 100644 drivers/power/supply/pm2301_charger.h
create mode 100644 drivers/pwm/pwm-clk.c
create mode 100644 drivers/regulator/max597x-regulator.c
create mode 100644 drivers/regulator/mt6370-regulator.c
create mode 100644 drivers/regulator/rt5120-regulator.c
create mode 100644 drivers/reset/reset-sunplus.c
create mode 100644 drivers/reset/reset-tps380x.c
create mode 100644 drivers/rtc/rtc-mpfs.c
create mode 100644 drivers/rtc/rtc-nct3018y.c
create mode 100644 drivers/rtc/rtc-ti-k3.c
delete mode 100644 drivers/rtc/rtc-vr41xx.c
delete mode 100644 drivers/scsi/dpt/dpti_i2o.h
delete mode 100644 drivers/scsi/dpt/dpti_ioctl.h
delete mode 100644 drivers/scsi/dpt/dptsig.h
delete mode 100644 drivers/scsi/dpt/osd_defs.h
delete mode 100644 drivers/scsi/dpt/osd_util.h
delete mode 100644 drivers/scsi/dpt/sys_info.h
delete mode 100644 drivers/scsi/dpt_i2o.c
delete mode 100644 drivers/scsi/dpti.h
create mode 100644 drivers/soc/fujitsu/Kconfig
create mode 100644 drivers/soc/fujitsu/Makefile
create mode 100644 drivers/soc/fujitsu/a64fx-diag.c
create mode 100644 drivers/soc/mediatek/mt6795-pm-domains.h
create mode 100644 drivers/soc/mediatek/mtk-svs.c
create mode 100644 drivers/soc/qcom/icc-bwmon.c
create mode 100644 drivers/spi/spi-gxp.c
create mode 100644 drivers/spi/spi-microchip-core.c
delete mode 100644 drivers/staging/media/atomisp/include/hmm/hmm_pool.h
create mode 100644 drivers/staging/media/atomisp/notes.txt
delete mode 100644 drivers/staging/media/atomisp/pci/atomisp_acc.c
delete mode 100644 drivers/staging/media/atomisp/pci/atomisp_acc.h
delete mode 100644 drivers/staging/media/atomisp/pci/hmm/hmm_dynamic_pool.c
delete mode 100644 drivers/staging/media/atomisp/pci/hmm/hmm_reserved_pool.c
rename drivers/{media/usb => staging/media}/stkwebcam/Kconfig (68%)
rename drivers/{media/usb => staging/media}/stkwebcam/Makefile (63%)
create mode 100644 drivers/staging/media/stkwebcam/TODO
rename drivers/{media/usb => staging/media}/stkwebcam/stk-sensor.c (100%)
rename drivers/{media/usb => staging/media}/stkwebcam/stk-webcam.c (100%)
rename drivers/{media/usb => staging/media}/stkwebcam/stk-webcam.h (100%)
delete mode 100644 drivers/staging/octeon-usb/Kconfig
delete mode 100644 drivers/staging/octeon-usb/Makefile
delete mode 100644 drivers/staging/octeon-usb/TODO
delete mode 100644 drivers/staging/r8188eu/hal/Hal8188EPwrSeq.c
delete mode 100644 drivers/staging/r8188eu/include/Hal8188EPwrSeq.h
delete mode 100644 drivers/staging/r8188eu/include/basic_types.h
create mode 100644 drivers/staging/vc04_services/interface/TESTING
rename drivers/{vme => staging/vme_user}/vme.c (99%)
rename {include/linux => drivers/staging/vme_user}/vme.h (100%)
rename drivers/{vme => staging/vme_user}/vme_bridge.h (99%)
rename drivers/{vme/bridges => staging/vme_user}/vme_fake.c (99%)
rename drivers/{vme/bridges => staging/vme_user}/vme_tsi148.c (99%)
rename drivers/{vme/bridges => staging/vme_user}/vme_tsi148.h (100%)
delete mode 100644 drivers/staging/vt6655/upc.h
delete mode 100644 drivers/tty/serial/vr41xx_siu.c
create mode 100644 drivers/ufs/host/ufs-renesas.c
create mode 100644 drivers/usb/gadget/udc/aspeed_udc.c
rename drivers/{staging/octeon-usb => usb/host}/octeon-hcd.c (100%)
rename drivers/{staging/octeon-usb => usb/host}/octeon-hcd.h (100%)
create mode 100644 drivers/usb/misc/onboard_usb_hub.c
create mode 100644 drivers/usb/misc/onboard_usb_hub.h
create mode 100644 drivers/usb/misc/onboard_usb_hub_pdevs.c
create mode 100644 drivers/usb/musb/mpfs.c
create mode 100644 drivers/usb/typec/anx7411.c
create mode 100644 drivers/usb/typec/pd.c
create mode 100644 drivers/usb/typec/pd.h
create mode 100644 drivers/usb/typec/retimer.c
create mode 100644 drivers/usb/typec/retimer.h
create mode 100644 drivers/usb/typec/ucsi/ucsi_stm32g0.c
rename drivers/vfio/{vfio.c => vfio_main.c} (93%)
create mode 100644 drivers/video/aperture.c
create mode 100644 drivers/virtio/virtio_anchor.c
delete mode 100644 drivers/vme/Kconfig
delete mode 100644 drivers/vme/Makefile
delete mode 100644 drivers/vme/boards/Kconfig
delete mode 100644 drivers/vme/boards/Makefile
delete mode 100644 drivers/vme/boards/vme_vmivme7805.c
delete mode 100644 drivers/vme/boards/vme_vmivme7805.h
delete mode 100644 drivers/vme/bridges/Kconfig
delete mode 100644 drivers/vme/bridges/Makefile
delete mode 100644 drivers/vme/bridges/vme_ca91cx42.c
delete mode 100644 drivers/vme/bridges/vme_ca91cx42.h
create mode 100644 drivers/watchdog/pseries-wdt.c
create mode 100644 drivers/xen/grant-dma-iommu.c
create mode 100644 drivers/xen/grant-dma-ops.c
create mode 100644 fs/cifs/cached_dir.c
create mode 100644 fs/cifs/cached_dir.h
create mode 100644 fs/efivarfs/vars.c
delete mode 100644 fs/erofs/zpvec.h
delete mode 100644 fs/io_uring.c
create mode 100644 fs/xfs/xfs_iunlink_item.c
create mode 100644 fs/xfs/xfs_iunlink_item.h
create mode 100644 fs/xfs/xfs_notify_failure.c
create mode 100644 include/asm-generic/archrandom.h
create mode 100644 include/asm-generic/bitops/generic-non-atomic.h
create mode 100644 include/asm-generic/bitops/non-instrumented-non-atomic.h
create mode 100644 include/crypto/aria.h
create mode 100644 include/crypto/polyval.h
delete mode 100644 include/dt-bindings/clock/efm32-cmu.h
create mode 100644 include/dt-bindings/clock/nuvoton,npcm845-clk.h
create mode 120000 include/dt-bindings/clock/qcom,dispcc-sm8350.h
create mode 100644 include/dt-bindings/clock/qcom,gpucc-sm8350.h
create mode 100644 include/dt-bindings/clock/qcom,sm8450-camcc.h
create mode 100644 include/dt-bindings/clock/sprd,ums512-clk.h
create mode 100644 include/dt-bindings/clock/sunplus,sp7021-clkc.h
create mode 100644 include/dt-bindings/interconnect/fsl,imx8mp.h
create mode 100644 include/dt-bindings/interconnect/qcom,sm6350.h
create mode 100644 include/dt-bindings/net/pcs-rzn1-miic.h
create mode 100644 include/dt-bindings/nvmem/microchip,sama7g5-otpc.h
create mode 100644 include/dt-bindings/pinctrl/rzv2m-pinctrl.h
create mode 100644 include/dt-bindings/power/mt6795-power.h
create mode 100644 include/dt-bindings/reset/sama7g5-reset.h
create mode 100644 include/dt-bindings/reset/sunplus,sp7021-reset.h
create mode 100644 include/dt-bindings/soc/samsung,boot-mode.h
create mode 100644 include/dt-bindings/sound/qcom,wcd9335.h
create mode 100644 include/linux/aperture.h
create mode 100644 include/linux/base64.h
create mode 100644 include/linux/context_tracking_irq.h
create mode 100644 include/linux/dm-verity-loadpin.h
create mode 100644 include/linux/gfp_types.h
create mode 100644 include/linux/io_uring_types.h
create mode 100644 include/linux/isa-dma.h
create mode 100644 include/linux/mfd/mt6331/core.h
create mode 100644 include/linux/mfd/mt6331/registers.h
create mode 100644 include/linux/mfd/mt6332/core.h
create mode 100644 include/linux/mfd/mt6332/registers.h
create mode 100644 include/linux/mfd/mt6357/core.h
create mode 100644 include/linux/mfd/mt6357/registers.h
create mode 100644 include/linux/nvme-auth.h
create mode 100644 include/linux/pci-doe.h
create mode 100644 include/linux/pcs-rzn1-miic.h
delete mode 100644 include/linux/platform_data/video-imxfb.h
create mode 100644 include/linux/platform_data/x86/p2sb.h
create mode 100644 include/linux/rv.h
create mode 100644 include/linux/usb/onboard_hub.h
rename {drivers/usb/typec/tcpm => include/linux/usb}/tcpci.h (99%)
create mode 100644 include/linux/usb/typec_retimer.h
create mode 100644 include/linux/virtio_anchor.h
delete mode 100644 include/linux/visorbus.h
delete mode 100644 include/media/hevc-ctrls.h
create mode 100644 include/net/bluetooth/iso.h
create mode 100644 include/net/dropreason.h
create mode 100644 include/net/netns/flow_table.h
create mode 100644 include/rv/automata.h
create mode 100644 include/rv/da_monitor.h
create mode 100644 include/rv/instrumentation.h
create mode 100644 include/soc/qcom/qcom-spmi-pmic.h
create mode 100644 include/trace/events/rv.h
create mode 100644 include/trace/events/rwmmio.h
create mode 100644 include/uapi/linux/atm_zatm.h
create mode 100644 include/uapi/linux/loadpin.h
create mode 100644 include/uapi/linux/ublk_cmd.h
create mode 100644 include/uapi/rdma/erdma-abi.h
create mode 100644 include/xen/arm/xen-ops.h
create mode 100644 io_uring/Makefile
create mode 100644 io_uring/advise.c
create mode 100644 io_uring/advise.h
create mode 100644 io_uring/alloc_cache.h
create mode 100644 io_uring/cancel.c
create mode 100644 io_uring/cancel.h
create mode 100644 io_uring/epoll.c
create mode 100644 io_uring/epoll.h
create mode 100644 io_uring/fdinfo.c
create mode 100644 io_uring/fdinfo.h
create mode 100644 io_uring/filetable.c
create mode 100644 io_uring/filetable.h
create mode 100644 io_uring/fs.c
create mode 100644 io_uring/fs.h
rename {fs => io_uring}/io-wq.c (99%)
create mode 100644 io_uring/io-wq.h
create mode 100644 io_uring/io_uring.c
create mode 100644 io_uring/io_uring.h
create mode 100644 io_uring/kbuf.c
create mode 100644 io_uring/kbuf.h
create mode 100644 io_uring/msg_ring.c
create mode 100644 io_uring/msg_ring.h
create mode 100644 io_uring/net.c
create mode 100644 io_uring/net.h
create mode 100644 io_uring/nop.c
create mode 100644 io_uring/nop.h
create mode 100644 io_uring/notif.c
create mode 100644 io_uring/notif.h
create mode 100644 io_uring/opdef.c
create mode 100644 io_uring/opdef.h
create mode 100644 io_uring/openclose.c
create mode 100644 io_uring/openclose.h
create mode 100644 io_uring/poll.c
create mode 100644 io_uring/poll.h
create mode 100644 io_uring/refs.h
create mode 100644 io_uring/rsrc.c
create mode 100644 io_uring/rsrc.h
create mode 100644 io_uring/rw.c
create mode 100644 io_uring/rw.h
rename fs/io-wq.h => io_uring/slist.h (56%)
create mode 100644 io_uring/splice.c
create mode 100644 io_uring/splice.h
create mode 100644 io_uring/sqpoll.c
create mode 100644 io_uring/sqpoll.h
create mode 100644 io_uring/statx.c
create mode 100644 io_uring/statx.h
create mode 100644 io_uring/sync.c
create mode 100644 io_uring/sync.h
create mode 100644 io_uring/tctx.c
create mode 100644 io_uring/tctx.h
create mode 100644 io_uring/timeout.c
create mode 100644 io_uring/timeout.h
create mode 100644 io_uring/uring_cmd.c
create mode 100644 io_uring/uring_cmd.h
create mode 100644 io_uring/xattr.c
create mode 100644 io_uring/xattr.h
create mode 100644 kernel/kallsyms_internal.h
create mode 100644 kernel/kcsan/.kunitconfig
create mode 100644 kernel/module/Kconfig
create mode 100644 kernel/trace/rv/Kconfig
create mode 100644 kernel/trace/rv/Makefile
create mode 100644 kernel/trace/rv/monitors/wip/wip.c
create mode 100644 kernel/trace/rv/monitors/wip/wip.h
create mode 100644 kernel/trace/rv/monitors/wwnr/wwnr.c
create mode 100644 kernel/trace/rv/monitors/wwnr/wwnr.h
create mode 100644 kernel/trace/rv/reactor_panic.c
create mode 100644 kernel/trace/rv/reactor_printk.c
create mode 100644 kernel/trace/rv/rv.c
create mode 100644 kernel/trace/rv/rv.h
create mode 100644 kernel/trace/rv/rv_reactors.c
create mode 100644 lib/base64.c
rename lib/{ => crypto}/sha1.c (98%)
rename {crypto => lib}/memneq.c (100%)
delete mode 100644 lib/nodemask.c
create mode 100644 lib/test_cpumask.c
create mode 100644 lib/trace_readwrite.c
create mode 100644 mm/damon/lru_sort.c
create mode 100644 mm/shrinker_debug.c
create mode 100644 net/bluetooth/iso.c
create mode 100644 net/core/.gitignore
create mode 100644 net/dsa/tag_rzn1_a5psw.c
create mode 100644 net/netfilter/nf_flow_table_procfs.c
create mode 100644 net/tls/tls.h
create mode 100644 net/tls/tls_strp.c
delete mode 100644 samples/bpf/xdpsock.h
delete mode 100644 samples/bpf/xdpsock_ctrl_proc.c
delete mode 100644 samples/bpf/xdpsock_kern.c
delete mode 100644 samples/bpf/xdpsock_user.c
delete mode 100644 samples/bpf/xsk_fwd.c
create mode 100644 scripts/coccinelle/free/ifnulldev_put.cocci
delete mode 100644 scripts/coccinelle/misc/boolreturn.cocci
rename scripts/coccinelle/misc/{ifaddr.cocci => test_addr.cocci} (87%)
create mode 100644 scripts/dummy-tools/dummy-plugin-dir/include/plugin-version.h
create mode 100644 sound/pci/hda/hda_cs_dsp_ctl.c
create mode 100644 sound/pci/hda/hda_cs_dsp_ctl.h
create mode 100644 sound/soc/amd/acp-es8336.c
create mode 100644 sound/soc/amd/acp/acp-rembrandt.c
create mode 100644 sound/soc/amd/rpl/Makefile
create mode 100644 sound/soc/amd/rpl/rpl-pci-acp6x.c
create mode 100644 sound/soc/amd/rpl/rpl_acp6x.h
create mode 100644 sound/soc/amd/rpl/rpl_acp6x_chip_offset_byte.h
create mode 100644 sound/soc/codecs/hda-dai.c
create mode 100644 sound/soc/codecs/hda.c
create mode 100644 sound/soc/codecs/hda.h
create mode 100644 sound/soc/codecs/tas2780.c
create mode 100644 sound/soc/codecs/tas2780.h
create mode 100644 sound/soc/codecs/wsa883x.c
create mode 100644 sound/soc/intel/avs/boards/Kconfig
create mode 100644 sound/soc/intel/avs/boards/Makefile
create mode 100644 sound/soc/intel/avs/boards/da7219.c
create mode 100644 sound/soc/intel/avs/boards/dmic.c
create mode 100644 sound/soc/intel/avs/boards/hdaudio.c
create mode 100644 sound/soc/intel/avs/boards/i2s_test.c
create mode 100644 sound/soc/intel/avs/boards/max98357a.c
create mode 100644 sound/soc/intel/avs/boards/max98373.c
create mode 100644 sound/soc/intel/avs/boards/nau8825.c
create mode 100644 sound/soc/intel/avs/boards/rt274.c
create mode 100644 sound/soc/intel/avs/boards/rt286.c
create mode 100644 sound/soc/intel/avs/boards/rt298.c
create mode 100644 sound/soc/intel/avs/boards/rt5682.c
create mode 100644 sound/soc/intel/avs/boards/ssm4567.c
create mode 100644 sound/soc/intel/boards/bdw_rt286.c
delete mode 100644 sound/soc/intel/boards/broadwell.c
delete mode 100644 sound/soc/intel/boards/haswell.c
create mode 100644 sound/soc/intel/boards/hsw_rt5640.c
create mode 100644 sound/soc/intel/common/soc-acpi-intel-mtl-match.c
create mode 100644 sound/soc/mediatek/common/mtk-dsp-sof-common.c
create mode 100644 sound/soc/mediatek/common/mtk-dsp-sof-common.h
create mode 100644 sound/soc/mediatek/common/mtk-soc-card.h
create mode 100644 sound/soc/mediatek/mt8186/Makefile
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-clk.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-clk.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-common.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-control.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-gpio.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-gpio.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-afe-pcm.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-audsys-clk.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-audsys-clk.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-audsys-clkid.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-adda.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-hostless.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-hw-gain.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-i2s.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-pcm.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-src.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-dai-tdm.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-interconnection.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-misc-control.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-common.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-common.h
create mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-da7219-max98357.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
create mode 100644 sound/soc/mediatek/mt8186/mt8186-reg.h
create mode 100644 sound/soc/sof/intel/mtl.c
create mode 100644 sound/soc/sof/intel/mtl.h
create mode 100644 sound/soc/sof/intel/pci-mtl.c
create mode 100644 sound/soc/sof/ipc4-control.c
create mode 100644 sound/soc/sof/ipc4-pcm.c
create mode 100644 sound/soc/sof/ipc4-topology.c
create mode 100644 sound/soc/sof/ipc4-topology.h
delete mode 100644 sound/soc/tegra/tegra20_das.h
create mode 100644 sound/soc/tegra/tegra210_mbdrc.c
create mode 100644 sound/soc/tegra/tegra210_mbdrc.h
create mode 100644 sound/soc/tegra/tegra210_ope.c
create mode 100644 sound/soc/tegra/tegra210_ope.h
create mode 100644 sound/soc/tegra/tegra210_peq.c
create mode 100644 sound/soc/tegra/tegra210_peq.h
create mode 100644 tools/build/feature/test-disassembler-init-styled.c
create mode 100644 tools/cgroup/memcg_shrinker.py
create mode 100644 tools/include/tools/dis-asm-compat.h
create mode 100644 tools/perf/Documentation/guest-files.txt
create mode 100644 tools/perf/Documentation/guestmount.txt
create mode 100644 tools/perf/Documentation/perf-kwork.txt
delete mode 100644 tools/perf/arch/x86/tests/rdpmc.c
create mode 100644 tools/perf/arch/x86/util/cpuid.h
create mode 100644 tools/perf/builtin-kwork.c
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z16/pai.json
create mode 100644 tools/perf/pmu-events/arch/test/test_soc/cpu/metrics.json
create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/uncore-cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/broadwell/uncore-other.json
delete mode 100644 tools/perf/pmu-events/arch/x86/broadwell/uncore.json
create mode 100644 tools/perf/pmu-events/arch/x86/broadwellde/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/broadwellx/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/cascadelakex/uncore-power.json
create mode 100644 tools/perf/pmu-events/arch/x86/haswellx/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/icelake/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/ivytown/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/jaketown/uncore-other.json
delete mode 100644 tools/perf/pmu-events/arch/x86/knightslanding/uncore-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/knightslanding/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/frontend.json
create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/other.json
create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/x86/meteorlake/virtual-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylake/uncore-cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylake/uncore-other.json
delete mode 100644 tools/perf/pmu-events/arch/x86/skylake/uncore.json
create mode 100644 tools/perf/pmu-events/arch/x86/skylakex/uncore-power.json
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/cache.json (95%)
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/floating-point.json (84%)
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/frontend.json (94%)
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/memory.json (99%)
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/other.json (98%)
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/pipeline.json (89%)
create mode 100644 tools/perf/pmu-events/arch/x86/snowridgex/uncore-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/snowridgex/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/snowridgex/uncore-power.json
rename tools/perf/pmu-events/arch/x86/{tremontx => snowridgex}/virtual-memory.json (91%)
create mode 100644 tools/perf/pmu-events/arch/x86/tigerlake/uncore-other.json
delete mode 100644 tools/perf/pmu-events/arch/x86/tremontx/uncore-memory.json
delete mode 100644 tools/perf/pmu-events/arch/x86/tremontx/uncore-other.json
delete mode 100644 tools/perf/pmu-events/arch/x86/tremontx/uncore-power.json
create mode 100644 tools/perf/pmu-events/empty-pmu-events.c
delete mode 100644 tools/perf/pmu-events/jevents.c
create mode 100755 tools/perf/pmu-events/jevents.py
delete mode 100644 tools/perf/pmu-events/jsmn.c
delete mode 100644 tools/perf/pmu-events/jsmn.h
delete mode 100644 tools/perf/pmu-events/json.c
delete mode 100644 tools/perf/pmu-events/json.h
create mode 100644 tools/perf/tests/builtin-test-list.c
create mode 100644 tools/perf/tests/builtin-test-list.h
delete mode 100644 tools/perf/tests/shell/lib/perf_csv_output_lint.py
create mode 100644 tools/perf/tests/shell/lib/perf_json_output_lint.py
create mode 100755 tools/perf/tests/shell/stat+json_output.sh
create mode 100755 tools/perf/tests/shell/test_brstack.sh
create mode 100644 tools/perf/util/bpf_kwork.c
create mode 100644 tools/perf/util/bpf_lock_contention.c
create mode 100644 tools/perf/util/bpf_skel/kwork_trace.bpf.c
create mode 100644 tools/perf/util/bpf_skel/lock_contention.bpf.c
create mode 100644 tools/perf/util/kwork.h
create mode 100644 tools/perf/util/lock-contention.h
create mode 100644 tools/perf/util/print-events.c
create mode 100644 tools/perf/util/print-events.h
create mode 100644 tools/perf/util/tracepoint.c
create mode 100644 tools/perf/util/tracepoint.h
create mode 100644 tools/testing/kunit/configs/arch_uml.config
create mode 100644 tools/testing/kunit/configs/coverage_uml.config
create mode 100644 tools/testing/kunit/kunit_printer.py
create mode 100644 tools/testing/selftests/bpf/DENYLIST
create mode 100644 tools/testing/selftests/bpf/DENYLIST.s390x
create mode 100644 tools/testing/selftests/bpf/benchs/bench_bpf_hashmap_full_update.c
create mode 100644 tools/testing/selftests/bpf/benchs/bench_local_storage.c
create mode 100644 tools/testing/selftests/bpf/benchs/bench_local_storage_rcu_tasks_trace.c
create mode 100755 tools/testing/selftests/bpf/benchs/run_bench_bpf_hashmap_full_update.sh
create mode 100755 tools/testing/selftests/bpf/benchs/run_bench_local_storage.sh
create mode 100755 tools/testing/selftests/bpf/benchs/run_bench_local_storage_rcu_tasks_trace.sh
create mode 100644 tools/testing/selftests/bpf/config.s390x
create mode 100644 tools/testing/selftests/bpf/config.x86_64
create mode 100644 tools/testing/selftests/bpf/prog_tests/libbpf_str.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/lru_bug.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/lsm_cgroup.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/xdp_synproxy.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_hashmap_full_update_bench.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_ksym.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_enum64val.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_enum64val___diff.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_enum64val___err_missing.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_enum64val___val3_missing.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_type_based___diff.c
create mode 100644 tools/testing/selftests/bpf/progs/freplace_global_func.c
create mode 100644 tools/testing/selftests/bpf/progs/local_storage_bench.c
create mode 100644 tools/testing/selftests/bpf/progs/local_storage_rcu_tasks_trace_bench.c
create mode 100644 tools/testing/selftests/bpf/progs/lru_bug.c
create mode 100644 tools/testing/selftests/bpf/progs/lsm_cgroup.c
create mode 100644 tools/testing/selftests/bpf/progs/lsm_cgroup_nonvoid.c
create mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf6.c
create mode 100644 tools/testing/selftests/bpf/progs/tcp_ca_incompl_cong_ops.c
create mode 100644 tools/testing/selftests/bpf/progs/tcp_ca_unsupp_cong_op.c
create mode 100644 tools/testing/selftests/bpf/progs/tcp_ca_write_sk_pacing.c
create mode 100644 tools/testing/selftests/bpf/progs/test_bpf_nf_fail.c
delete mode 100644 tools/testing/selftests/bpf/progs/test_btf_haskv.c
create mode 100644 tools/testing/selftests/bpf/progs/test_core_reloc_enum64val.c
create mode 100644 tools/testing/selftests/bpf/progs/xdp_synproxy_kern.c
create mode 100644 tools/testing/selftests/bpf/verifier/bpf_loop_inline.c
create mode 100644 tools/testing/selftests/bpf/xdp_synproxy.c
rename tools/{lib => testing/selftests}/bpf/xsk.c (94%)
rename tools/{lib => testing/selftests}/bpf/xsk.h (84%)
rename tools/testing/selftests/bpf/{xdpxceiver.c => xskxceiver.c} (98%)
rename tools/testing/selftests/bpf/{xdpxceiver.h => xskxceiver.h} (98%)
create mode 100644 tools/testing/selftests/drivers/net/dsa/Makefile
create mode 100644 tools/testing/selftests/drivers/net/mlxsw/rif_counter_scale.sh
create mode 120000 tools/testing/selftests/drivers/net/mlxsw/spectrum-2/rif_counter_scale.sh
create mode 100644 tools/testing/selftests/drivers/net/mlxsw/spectrum/rif_counter_scale.sh
rename {Documentation/vm => tools/testing/selftests/filesystems/fat}/.gitignore (66%)
create mode 100644 tools/testing/selftests/filesystems/fat/Makefile
create mode 100644 tools/testing/selftests/filesystems/fat/config
create mode 100644 tools/testing/selftests/filesystems/fat/rename_exchange.c
create mode 100644 tools/testing/selftests/filesystems/fat/run_fat_tests.sh
create mode 100644 tools/testing/selftests/kvm/include/x86_64/mce.h
delete mode 100644 tools/testing/selftests/kvm/lib/kvm_util_internal.h
create mode 100644 tools/testing/selftests/kvm/lib/x86_64/perf_test_util.c
create mode 100644 tools/testing/selftests/kvm/x86_64/max_vcpuid_cap_test.c
delete mode 100644 tools/testing/selftests/kvm/x86_64/mmu_role_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/monitor_mwait_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/nx_huge_pages_test.c
create mode 100755 tools/testing/selftests/kvm/x86_64/nx_huge_pages_test.sh
create mode 100644 tools/testing/selftests/kvm/x86_64/svm_nested_soft_inject_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/triple_fault_event_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/ucna_injection_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/vmx_msrs_test.c
create mode 100644 tools/testing/selftests/net/af_unix/unix_connect.c
create mode 100755 tools/testing/selftests/net/arp_ndisc_untracked_subnets.sh
delete mode 100644 tools/testing/selftests/net/bind_bhash_test.c
create mode 100755 tools/testing/selftests/net/fib_nexthop_nongw.sh
create mode 100755 tools/testing/selftests/net/forwarding/bridge_mdb_port_down.sh
create mode 100644 tools/testing/selftests/net/io_uring_zerocopy_tx.c
create mode 100755 tools/testing/selftests/net/io_uring_zerocopy_tx.sh
create mode 100755 tools/testing/selftests/net/srv6_hencap_red_l3vpn_test.sh
create mode 100755 tools/testing/selftests/net/srv6_hl2encap_red_l2vpn_test.sh
create mode 100644 tools/testing/selftests/net/tap.c
create mode 100644 tools/testing/selftests/net/tun.c
create mode 100644 tools/testing/selftests/powerpc/mce/.gitignore
create mode 100644 tools/testing/selftests/powerpc/pmu/branch_loops.S
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/Makefile
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/blacklisted_events_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/event_alternatives_tests_p10.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/event_alternatives_tests_p9.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/generic_events_valid_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_cache_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_l2l3_sel_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_mmcra_sample_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_pmc56_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_pmc_count_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_radix_scope_qual_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_repeat_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_thresh_cmp_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_thresh_ctl_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_thresh_sel_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_constraint_unit_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/group_pmc56_exclude_constraints_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/hw_cache_event_type_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/invalid_event_code_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/reserved_bits_mmcra_sample_elig_mode_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/event_code_tests/reserved_bits_mmcra_thresh_ctl_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/bhrb_filter_map_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/bhrb_no_crash_wo_pmu_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/intr_regs_no_crash_wo_pmu_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcr1_sel_unit_cache_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_any_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_cond_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_disable_no_branch_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_disable_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_bhrb_ind_call_test.c
create mode 100644 tools/testing/selftests/powerpc/pmu/sampling_tests/mmcra_thresh_cmp_test.c
create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-gpr.S
create mode 100644 tools/testing/selftests/timens/vfork_exec.c
create mode 100644 tools/testing/selftests/tpm2/settings
create mode 100755 tools/testing/selftests/vm/va_128TBswitch.sh
create mode 100644 tools/testing/selftests/wireguard/qemu/arch/um.config
create mode 100644 tools/verification/dot2/Makefile
create mode 100644 tools/verification/dot2/automata.py
create mode 100644 tools/verification/dot2/dot2c
create mode 100644 tools/verification/dot2/dot2c.py
create mode 100644 tools/verification/dot2/dot2k
create mode 100644 tools/verification/dot2/dot2k.py
create mode 100644 tools/verification/dot2/dot2k_templates/main_global.c
create mode 100644 tools/verification/dot2/dot2k_templates/main_per_cpu.c
create mode 100644 tools/verification/dot2/dot2k_templates/main_per_task.c
create mode 100644 tools/verification/models/wip.dot
create mode 100644 tools/verification/models/wwnr.dot
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer
^ permalink raw reply [relevance 1%]
* Re: Re: [PATCH v4 0/4] riscv, mm: detect svnapot cpu support at runtime
2022-08-22 21:22 0% ` [PATCH v4 0/4] riscv, mm: detect svnapot cpu support at runtime Conor.Dooley
@ 2022-08-23 3:07 0% ` Qinglin Pan
0 siblings, 0 replies; 200+ results
From: Qinglin Pan @ 2022-08-23 3:07 UTC (permalink / raw)
To: Conor.Dooley, linux-riscv; +Cc: jeff, xuyinan
Hey Conor,
I think something maybe wrong with my patchset, and I will fix them and
all hints you have mentioned in other mails in the next version patchset.
Thank you so much for your review.
Yours,
Qinglin
On 8/23/22 5:22 AM, Conor.Dooley@microchip.com wrote:
> On 22/08/2022 16:34, panqinglin2020@iscas.ac.cn wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>
>> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> Hey Qingling,
> Apologies for yet another mail - but I built allmodconfig
> with CONFIG_SVNAPOT=y and got a build error:
>
> CC arch/riscv/kernel/asm-offsets.s
> In file included from /stuff/linux/arch/riscv/include/asm/tlbflush.h:12,
> from /stuff/linux/arch/riscv/include/asm/pgtable.h:108,
> from /stuff/linux/include/linux/pgtable.h:6,
> from /stuff/linux/include/linux/mm.h:29,
> from /stuff/linux/arch/riscv/kernel/asm-offsets.c:10:
> /stuff/linux/arch/riscv/include/asm/pgtable.h: In function 'pte_pfn':
> /stuff/linux/arch/riscv/include/asm/pgtable.h:299:35: error: '_PAGE_NAPOT_SHIFT' undeclared (first use in this function)
> 299 | ALT_SVNAPOT_PTE_PFN(_val, _PAGE_NAPOT_SHIFT,
> | ^~~~~~~~~~~~~~~~~
> /stuff/linux/arch/riscv/include/asm/errata_list.h:165:23: note: in definition of macro 'ALT_SVNAPOT_PTE_PFN'
> 165 | "i"(_napot_shift))
> | ^~~~~~~~~~~~
> /stuff/linux/arch/riscv/include/asm/pgtable.h:299:35: note: each undeclared identifier is reported only once for each function it appears in
> 299 | ALT_SVNAPOT_PTE_PFN(_val, _PAGE_NAPOT_SHIFT,
> | ^~~~~~~~~~~~~~~~~
> /stuff/linux/arch/riscv/include/asm/errata_list.h:165:23: note: in definition of macro 'ALT_SVNAPOT_PTE_PFN'
> 165 | "i"(_napot_shift))
> | ^~~~~~~~~~~~
> In file included from /stuff/linux/include/linux/mm.h:29,
> from /stuff/linux/arch/riscv/kernel/asm-offsets.c:10:
> /stuff/linux/include/linux/pgtable.h: At top level:
> /stuff/linux/include/linux/pgtable.h:1457:20: error: redefinition of 'p4d_clear_huge'
> 1457 | static inline void p4d_clear_huge(p4d_t *p4d) { }
> | ^~~~~~~~~~~~~~
> In file included from /stuff/linux/include/linux/pgtable.h:6,
> from /stuff/linux/include/linux/mm.h:29,
> from /stuff/linux/arch/riscv/kernel/asm-offsets.c:10:
> /stuff/linux/arch/riscv/include/asm/pgtable.h:763:20: note: previous definition of 'p4d_clear_huge' with type 'void(p4d_t *)'
> 763 | static inline void p4d_clear_huge(p4d_t *p4d) { }
> | ^~~~~~~~~~~~~~
> make[3]: *** [/stuff/linux/scripts/Makefile.build:117: arch/riscv/kernel/asm-offsets.s] Error 1
> make[2]: *** [/stuff/linux/Makefile:1205: prepare0] Error 2
> make[2]: Leaving directory '/stuff/brsdk/work/linux'
> make[1]: *** [Makefile:222: __sub-make] Error 2
> make[1]: Leaving directory '/stuff/linux'
> make: *** [Makefile:179: allmodconfig] Error 2
>
>>
>> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
>> page. This patch set is for using Svnapot in Linux Kernel's boot process
>> and hugetlb fs.
>>
>> This patchset adds a Kconfig item for using Svnapot in
>> "Platform type"->"Svnapot support". Its default value is off, and people can set
>> it on if they allow kernel to detect Svnapot hardware support and leverage it.
>>
>> Tested on:
>> - qemu rv64 with "Svnapot support" off and svnapot=true.
>> - qemu rv64 with "Svnapot support" on and svnapot=true.
>> - qemu rv64 with "Svnapot support" off and svnapot=false.
>> - qemu rv64 with "Svnapot support" on and svnapot=false.
>>
>> Changes in v2:
>> - detect Svnapot hardware support at boot time.
>> Changes in v3:
>> - do linear mapping again if has_svnapot
>> Changes in v4:
>> - fix some errors/warns reported by checkpatch.pl, thanks @Conor
>>
>> Qinglin Pan (4):
>> mm: modify pte format for Svnapot
>> mm: support Svnapot in physical page linear-mapping
>> mm: support Svnapot in hugetlb page
>> mm: support Svnapot in huge vmap
>>
>> arch/riscv/Kconfig | 10 +-
>> arch/riscv/include/asm/errata_list.h | 24 ++-
>> arch/riscv/include/asm/hugetlb.h | 30 +++-
>> arch/riscv/include/asm/hwcap.h | 1 +
>> arch/riscv/include/asm/mmu.h | 1 +
>> arch/riscv/include/asm/page.h | 2 +-
>> arch/riscv/include/asm/pgtable-64.h | 14 ++
>> arch/riscv/include/asm/pgtable.h | 70 +++++++-
>> arch/riscv/include/asm/vmalloc.h | 22 +++
>> arch/riscv/kernel/cpu.c | 1 +
>> arch/riscv/kernel/cpufeature.c | 18 ++
>> arch/riscv/kernel/setup.c | 11 +-
>> arch/riscv/mm/hugetlbpage.c | 250 ++++++++++++++++++++++++++-
>> arch/riscv/mm/init.c | 47 +++--
>> 14 files changed, 477 insertions(+), 24 deletions(-)
>>
>> --
>> 2.35.1
>>
>>
>> _______________________________________________
>> linux-riscv mailing list
>> linux-riscv@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-riscv
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* Re: [PATCH v4 0/4] riscv, mm: detect svnapot cpu support at runtime
2022-08-22 15:34 4% [PATCH v4 " panqinglin2020
2022-08-22 15:34 10% ` [PATCH v4 4/4] mm: support Svnapot in huge vmap panqinglin2020
@ 2022-08-22 21:22 0% ` Conor.Dooley
2022-08-23 3:07 0% ` Qinglin Pan
1 sibling, 1 reply; 200+ results
From: Conor.Dooley @ 2022-08-22 21:22 UTC (permalink / raw)
To: panqinglin2020, palmer, linux-riscv; +Cc: jeff, xuyinan
On 22/08/2022 16:34, panqinglin2020@iscas.ac.cn wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Hey Qingling,
Apologies for yet another mail - but I built allmodconfig
with CONFIG_SVNAPOT=y and got a build error:
CC arch/riscv/kernel/asm-offsets.s
In file included from /stuff/linux/arch/riscv/include/asm/tlbflush.h:12,
from /stuff/linux/arch/riscv/include/asm/pgtable.h:108,
from /stuff/linux/include/linux/pgtable.h:6,
from /stuff/linux/include/linux/mm.h:29,
from /stuff/linux/arch/riscv/kernel/asm-offsets.c:10:
/stuff/linux/arch/riscv/include/asm/pgtable.h: In function 'pte_pfn':
/stuff/linux/arch/riscv/include/asm/pgtable.h:299:35: error: '_PAGE_NAPOT_SHIFT' undeclared (first use in this function)
299 | ALT_SVNAPOT_PTE_PFN(_val, _PAGE_NAPOT_SHIFT,
| ^~~~~~~~~~~~~~~~~
/stuff/linux/arch/riscv/include/asm/errata_list.h:165:23: note: in definition of macro 'ALT_SVNAPOT_PTE_PFN'
165 | "i"(_napot_shift))
| ^~~~~~~~~~~~
/stuff/linux/arch/riscv/include/asm/pgtable.h:299:35: note: each undeclared identifier is reported only once for each function it appears in
299 | ALT_SVNAPOT_PTE_PFN(_val, _PAGE_NAPOT_SHIFT,
| ^~~~~~~~~~~~~~~~~
/stuff/linux/arch/riscv/include/asm/errata_list.h:165:23: note: in definition of macro 'ALT_SVNAPOT_PTE_PFN'
165 | "i"(_napot_shift))
| ^~~~~~~~~~~~
In file included from /stuff/linux/include/linux/mm.h:29,
from /stuff/linux/arch/riscv/kernel/asm-offsets.c:10:
/stuff/linux/include/linux/pgtable.h: At top level:
/stuff/linux/include/linux/pgtable.h:1457:20: error: redefinition of 'p4d_clear_huge'
1457 | static inline void p4d_clear_huge(p4d_t *p4d) { }
| ^~~~~~~~~~~~~~
In file included from /stuff/linux/include/linux/pgtable.h:6,
from /stuff/linux/include/linux/mm.h:29,
from /stuff/linux/arch/riscv/kernel/asm-offsets.c:10:
/stuff/linux/arch/riscv/include/asm/pgtable.h:763:20: note: previous definition of 'p4d_clear_huge' with type 'void(p4d_t *)'
763 | static inline void p4d_clear_huge(p4d_t *p4d) { }
| ^~~~~~~~~~~~~~
make[3]: *** [/stuff/linux/scripts/Makefile.build:117: arch/riscv/kernel/asm-offsets.s] Error 1
make[2]: *** [/stuff/linux/Makefile:1205: prepare0] Error 2
make[2]: Leaving directory '/stuff/brsdk/work/linux'
make[1]: *** [Makefile:222: __sub-make] Error 2
make[1]: Leaving directory '/stuff/linux'
make: *** [Makefile:179: allmodconfig] Error 2
>
> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> page. This patch set is for using Svnapot in Linux Kernel's boot process
> and hugetlb fs.
>
> This patchset adds a Kconfig item for using Svnapot in
> "Platform type"->"Svnapot support". Its default value is off, and people can set
> it on if they allow kernel to detect Svnapot hardware support and leverage it.
>
> Tested on:
> - qemu rv64 with "Svnapot support" off and svnapot=true.
> - qemu rv64 with "Svnapot support" on and svnapot=true.
> - qemu rv64 with "Svnapot support" off and svnapot=false.
> - qemu rv64 with "Svnapot support" on and svnapot=false.
>
> Changes in v2:
> - detect Svnapot hardware support at boot time.
> Changes in v3:
> - do linear mapping again if has_svnapot
> Changes in v4:
> - fix some errors/warns reported by checkpatch.pl, thanks @Conor
>
> Qinglin Pan (4):
> mm: modify pte format for Svnapot
> mm: support Svnapot in physical page linear-mapping
> mm: support Svnapot in hugetlb page
> mm: support Svnapot in huge vmap
>
> arch/riscv/Kconfig | 10 +-
> arch/riscv/include/asm/errata_list.h | 24 ++-
> arch/riscv/include/asm/hugetlb.h | 30 +++-
> arch/riscv/include/asm/hwcap.h | 1 +
> arch/riscv/include/asm/mmu.h | 1 +
> arch/riscv/include/asm/page.h | 2 +-
> arch/riscv/include/asm/pgtable-64.h | 14 ++
> arch/riscv/include/asm/pgtable.h | 70 +++++++-
> arch/riscv/include/asm/vmalloc.h | 22 +++
> arch/riscv/kernel/cpu.c | 1 +
> arch/riscv/kernel/cpufeature.c | 18 ++
> arch/riscv/kernel/setup.c | 11 +-
> arch/riscv/mm/hugetlbpage.c | 250 ++++++++++++++++++++++++++-
> arch/riscv/mm/init.c | 47 +++--
> 14 files changed, 477 insertions(+), 24 deletions(-)
>
> --
> 2.35.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* Re: [PATCH v4 4/4] mm: support Svnapot in huge vmap
2022-08-22 15:34 10% ` [PATCH v4 4/4] mm: support Svnapot in huge vmap panqinglin2020
@ 2022-08-22 21:13 6% ` Conor.Dooley
0 siblings, 0 replies; 200+ results
From: Conor.Dooley @ 2022-08-22 21:13 UTC (permalink / raw)
To: panqinglin2020, palmer, linux-riscv; +Cc: jeff, xuyinan
On 22/08/2022 16:34, panqinglin2020@iscas.ac.cn wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> The HAVE_ARCH_HUGE_VMAP option can be used to help implement arch
> special huge vmap size. This commit selects this option by default and
> re-writes the arch_vmap_pte_range_map_size for Svnapot 64KB size.
>
> It can be tested when booting kernel in qemu with pci device, which
> will make the kernel to call pci driver using ioremap, and the
> re-written function will be called.
>
> Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> index 9aaec147a860..a420325a24ac 100644
> --- a/arch/riscv/Kconfig
> +++ b/arch/riscv/Kconfig
> @@ -70,6 +70,7 @@ config RISCV
> select GENERIC_TIME_VSYSCALL if MMU && 64BIT
> select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
> select HAVE_ARCH_AUDITSYSCALL
> + select HAVE_ARCH_HUGE_VMAP
> select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
> select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
> select HAVE_ARCH_KASAN if MMU && 64BIT
> diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
> index 37547dd04010..6d5caa1a6bd9 100644
> --- a/arch/riscv/include/asm/pgtable.h
> +++ b/arch/riscv/include/asm/pgtable.h
> @@ -750,6 +750,43 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma,
> }
> #endif /* CONFIG_TRANSPARENT_HUGEPAGE */
>
> +static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
> +{
> + return 0;
> +}
> +
> +static inline int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
> +{
> + return 0;
> +}
> +
> +static inline void p4d_clear_huge(p4d_t *p4d) { }
> +
> +static inline int pud_clear_huge(pud_t *pud)
> +{
> + return 0;
> +}
> +
> +static inline int pmd_clear_huge(pmd_t *pmd)
> +{
> + return 0;
> +}
> +
> +static inline int p4d_free_pud_page(p4d_t *p4d, unsigned long addr)
> +{
> + return 0;
> +}
> +
> +static inline int pud_free_pmd_page(pud_t *pud, unsigned long addr)
> +{
> + return 0;
> +}
> +
> +static inline int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
> +{
> + return 0;
> +}
> +
> /*
> * Encode and decode a swap entry
> *
> diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
> index ff9abc00d139..d92880fbfcde 100644
> --- a/arch/riscv/include/asm/vmalloc.h
> +++ b/arch/riscv/include/asm/vmalloc.h
> @@ -1,4 +1,26 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> #ifndef _ASM_RISCV_VMALLOC_H
> #define _ASM_RISCV_VMALLOC_H
>
> +#include <linux/pgtable.h>
> +
> +#ifdef CONFIG_SVNAPOT
> +#define arch_vmap_pte_range_map_size vmap_pte_range_map_size
> +static inline unsigned long vmap_pte_range_map_size(unsigned long addr,
> + unsigned long end,
> + u64 pfn,
> + unsigned int max_page_shift)
How about:
static inline unsigned long
vmap_pte_range_map_size(unsigned long addr, unsigned long end, u64 pfn,
unsigned int max_page_shift)
{
?
> +{
> + bool is_napot_addr = !(addr & NAPOT_CONT64KB_MASK);
> + bool pfn_align_napot = !(pfn & (NAPOT_64KB_PTE_NUM - 1UL));
> + bool space_enough = ((end - addr) >= NAPOT_CONT64KB_SIZE);
> +
tbh I would rather see this early return for each of these failed
tests rather than lump them all into the below. Prob can do the same
for each of them.. Personally I find that more readable than what you
have here. /shrug
Thanks,
Conor.
> + if (has_svnapot() && is_napot_addr && pfn_align_napot &&
> + space_enough && max_page_shift >= NAPOT_CONT64KB_SHIFT)
> + return NAPOT_CONT64KB_SIZE;
> +
> + return PAGE_SIZE;
> +}
> +#endif /*CONFIG_SVNAPOT*/
> +
> #endif /* _ASM_RISCV_VMALLOC_H */
> --
> 2.35.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 6%]
* [PATCH v4 4/4] mm: support Svnapot in huge vmap
2022-08-22 15:34 4% [PATCH v4 " panqinglin2020
@ 2022-08-22 15:34 10% ` panqinglin2020
2022-08-22 21:13 6% ` Conor.Dooley
2022-08-22 21:22 0% ` [PATCH v4 0/4] riscv, mm: detect svnapot cpu support at runtime Conor.Dooley
1 sibling, 1 reply; 200+ results
From: panqinglin2020 @ 2022-08-22 15:34 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
The HAVE_ARCH_HUGE_VMAP option can be used to help implement arch
special huge vmap size. This commit selects this option by default and
re-writes the arch_vmap_pte_range_map_size for Svnapot 64KB size.
It can be tested when booting kernel in qemu with pci device, which
will make the kernel to call pci driver using ioremap, and the
re-written function will be called.
Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 9aaec147a860..a420325a24ac 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -70,6 +70,7 @@ config RISCV
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
select HAVE_ARCH_AUDITSYSCALL
+ select HAVE_ARCH_HUGE_VMAP
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
select HAVE_ARCH_KASAN if MMU && 64BIT
diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
index 37547dd04010..6d5caa1a6bd9 100644
--- a/arch/riscv/include/asm/pgtable.h
+++ b/arch/riscv/include/asm/pgtable.h
@@ -750,6 +750,43 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma,
}
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
+static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+static inline int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+static inline void p4d_clear_huge(p4d_t *p4d) { }
+
+static inline int pud_clear_huge(pud_t *pud)
+{
+ return 0;
+}
+
+static inline int pmd_clear_huge(pmd_t *pmd)
+{
+ return 0;
+}
+
+static inline int p4d_free_pud_page(p4d_t *p4d, unsigned long addr)
+{
+ return 0;
+}
+
+static inline int pud_free_pmd_page(pud_t *pud, unsigned long addr)
+{
+ return 0;
+}
+
+static inline int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
+{
+ return 0;
+}
+
/*
* Encode and decode a swap entry
*
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index ff9abc00d139..d92880fbfcde 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -1,4 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _ASM_RISCV_VMALLOC_H
#define _ASM_RISCV_VMALLOC_H
+#include <linux/pgtable.h>
+
+#ifdef CONFIG_SVNAPOT
+#define arch_vmap_pte_range_map_size vmap_pte_range_map_size
+static inline unsigned long vmap_pte_range_map_size(unsigned long addr,
+ unsigned long end,
+ u64 pfn,
+ unsigned int max_page_shift)
+{
+ bool is_napot_addr = !(addr & NAPOT_CONT64KB_MASK);
+ bool pfn_align_napot = !(pfn & (NAPOT_64KB_PTE_NUM - 1UL));
+ bool space_enough = ((end - addr) >= NAPOT_CONT64KB_SIZE);
+
+ if (has_svnapot() && is_napot_addr && pfn_align_napot &&
+ space_enough && max_page_shift >= NAPOT_CONT64KB_SHIFT)
+ return NAPOT_CONT64KB_SIZE;
+
+ return PAGE_SIZE;
+}
+#endif /*CONFIG_SVNAPOT*/
+
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.35.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 10%]
* [PATCH v4 0/4] riscv, mm: detect svnapot cpu support at runtime
@ 2022-08-22 15:34 4% panqinglin2020
2022-08-22 15:34 10% ` [PATCH v4 4/4] mm: support Svnapot in huge vmap panqinglin2020
2022-08-22 21:22 0% ` [PATCH v4 0/4] riscv, mm: detect svnapot cpu support at runtime Conor.Dooley
0 siblings, 2 replies; 200+ results
From: panqinglin2020 @ 2022-08-22 15:34 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in Linux Kernel's boot process
and hugetlb fs.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"Svnapot support". Its default value is off, and people can set
it on if they allow kernel to detect Svnapot hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Changes in v4:
- fix some errors/warns reported by checkpatch.pl, thanks @Conor
Qinglin Pan (4):
mm: modify pte format for Svnapot
mm: support Svnapot in physical page linear-mapping
mm: support Svnapot in hugetlb page
mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 10 +-
arch/riscv/include/asm/errata_list.h | 24 ++-
arch/riscv/include/asm/hugetlb.h | 30 +++-
arch/riscv/include/asm/hwcap.h | 1 +
arch/riscv/include/asm/mmu.h | 1 +
arch/riscv/include/asm/page.h | 2 +-
arch/riscv/include/asm/pgtable-64.h | 14 ++
arch/riscv/include/asm/pgtable.h | 70 +++++++-
arch/riscv/include/asm/vmalloc.h | 22 +++
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 18 ++
arch/riscv/kernel/setup.c | 11 +-
arch/riscv/mm/hugetlbpage.c | 250 ++++++++++++++++++++++++++-
arch/riscv/mm/init.c | 47 +++--
14 files changed, 477 insertions(+), 24 deletions(-)
--
2.35.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 4%]
* Re: [PATCH v3 0/4] riscv, mm: detect svnapot cpu support at runtime
2022-08-22 12:59 4% [PATCH v3 0/4] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
2022-08-22 12:59 10% ` [PATCH v3 4/4] mm: support Svnapot in huge vmap panqinglin2020
@ 2022-08-22 13:09 0% ` Conor.Dooley
1 sibling, 0 replies; 200+ results
From: Conor.Dooley @ 2022-08-22 13:09 UTC (permalink / raw)
To: panqinglin2020, palmer, linux-riscv; +Cc: jeff, xuyinan
Hey,
On 22/08/2022 13:59, panqinglin2020@iscas.ac.cn wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> page. This patch set is for using Svnapot in Linux Kernel's boot process
> and hugetlb fs.
>
> This patchset adds a Kconfig item for using Svnapot in
> "Platform type"->"Svnapot support". Its default value is off, and people can set
> it on if they allow kernel to detect Svnapot hardware support and leverage it.
>
> Tested on:
> - qemu rv64 with "Svnapot support" off and svnapot=true.
> - qemu rv64 with "Svnapot support" on and svnapot=true.
> - qemu rv64 with "Svnapot support" off and svnapot=false.
> - qemu rv64 with "Svnapot support" on and svnapot=false.
I applied this to v6.0-rc1 and got a bunch of checkpatch complaints.
Some of the CHECK level ones may be invalid, but could you see to
the others please?
Thanks,
Conor.
./scripts/checkpatch.pl --strict --terse -g v6.0-rc1..HEAD
93b854a885f0b34bef287db048fc4f4505a05ab2:6: WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line)
93b854a885f0b34bef287db048fc4f4505a05ab2:69: CHECK: Macro argument reuse '_val' - possible side-effects?
93b854a885f0b34bef287db048fc4f4505a05ab2:114: CHECK: Prefer using the BIT macro
93b854a885f0b34bef287db048fc4f4505a05ab2:117: CHECK: Prefer using the BIT macro
93b854a885f0b34bef287db048fc4f4505a05ab2:119: CHECK: Prefer using the BIT macro
93b854a885f0b34bef287db048fc4f4505a05ab2:133: ERROR: open brace '{' following function definitions go on the next line
93b854a885f0b34bef287db048fc4f4505a05ab2:135: WARNING: Missing a blank line after declarations
93b854a885f0b34bef287db048fc4f4505a05ab2:163: WARNING: Missing a blank line after declarations
93b854a885f0b34bef287db048fc4f4505a05ab2:164: CHECK: Alignment should match open parenthesis
93b854a885f0b34bef287db048fc4f4505a05ab2:197: CHECK: Please use a blank line after function/struct/union/enum declarations
total: 1 errors, 3 warnings, 6 checks, 157 lines checked
fd3c74a08431b73897fc61bc7081082d4fd267d9:80: WARNING: Missing a blank line after declarations
fd3c74a08431b73897fc61bc7081082d4fd267d9:91: WARNING: Avoid crashing the kernel - try using WARN_ON & recovery code rather than BUG() or BUG_ON()
total: 0 errors, 2 warnings, 0 checks, 113 lines checked
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:73: CHECK: extern prototypes should be avoided in .h files
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:74: CHECK: Alignment should match open parenthesis
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:77: CHECK: extern prototypes should be avoided in .h files
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:80: CHECK: extern prototypes should be avoided in .h files
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:83: CHECK: extern prototypes should be avoided in .h files
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:84: CHECK: Alignment should match open parenthesis
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:86: CHECK: extern prototypes should be avoided in .h files
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:90: CHECK: extern prototypes should be avoided in .h files
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:93: CHECK: extern prototypes should be avoided in .h files
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:96: CHECK: extern prototypes should be avoided in .h files
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:97: CHECK: Alignment should match open parenthesis
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:126: CHECK: Alignment should match open parenthesis
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:212: CHECK: Alignment should match open parenthesis
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:226: CHECK: Alignment should match open parenthesis
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:235: CHECK: Alignment should match open parenthesis
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:251: CHECK: Alignment should match open parenthesis
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:278: CHECK: Alignment should match open parenthesis
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:291: CHECK: Alignment should match open parenthesis
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:308: CHECK: Alignment should match open parenthesis
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:325: CHECK: Alignment should match open parenthesis
bac3dfa35183e296fce1b6bc4b57f2bcaa63e4cc:335: CHECK: Alignment should match open parenthesis
total: 0 errors, 0 warnings, 21 checks, 311 lines checked
50b1c316e41a52532295929bb02e857431bdf15e:90: CHECK: Consider using #include <linux/pgtable.h> instead of <asm/pgtable.h>
50b1c316e41a52532295929bb02e857431bdf15e:95: CHECK: Alignment should match open parenthesis
50b1c316e41a52532295929bb02e857431bdf15e:102: CHECK: Logical continuations should be on the previous line
total: 0 errors, 0 warnings, 3 checks, 74 lines checked
>
> Changes in v2:
> - detect Svnapot hardware support at boot time.
> Changes in v3:
> - do linear mapping again if has_svnapot
>
> Qinglin Pan (4):
> mm: modify pte format for Svnapot
> mm: support Svnapot in physical page linear-mapping
> mm: support Svnapot in hugetlb page
> mm: support Svnapot in huge vmap
>
> arch/riscv/Kconfig | 10 +-
> arch/riscv/include/asm/errata_list.h | 24 ++-
> arch/riscv/include/asm/hugetlb.h | 31 +++-
> arch/riscv/include/asm/hwcap.h | 1 +
> arch/riscv/include/asm/mmu.h | 1 +
> arch/riscv/include/asm/page.h | 2 +-
> arch/riscv/include/asm/pgtable-64.h | 14 ++
> arch/riscv/include/asm/pgtable.h | 67 +++++++-
> arch/riscv/include/asm/vmalloc.h | 20 +++
> arch/riscv/kernel/cpu.c | 1 +
> arch/riscv/kernel/cpufeature.c | 17 ++
> arch/riscv/kernel/setup.c | 11 +-
> arch/riscv/mm/hugetlbpage.c | 239 ++++++++++++++++++++++++++-
> arch/riscv/mm/init.c | 47 ++++--
> 14 files changed, 461 insertions(+), 24 deletions(-)
>
> --
> 2.35.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* [PATCH v3 4/4] mm: support Svnapot in huge vmap
2022-08-22 12:59 4% [PATCH v3 0/4] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
@ 2022-08-22 12:59 10% ` panqinglin2020
2022-08-22 13:09 0% ` [PATCH v3 0/4] riscv, mm: detect svnapot cpu support at runtime Conor.Dooley
1 sibling, 0 replies; 200+ results
From: panqinglin2020 @ 2022-08-22 12:59 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
The HAVE_ARCH_HUGE_VMAP option can be used to help implement arch
special huge vmap size. This commit selects this option by default and
re-writes the arch_vmap_pte_range_map_size for Svnapot 64KB size.
It can be tested when booting kernel in qemu with pci device, which
will make the kernel to call pci driver using ioremap, and the
re-written function will be called.
Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 9aaec147a860..a420325a24ac 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -70,6 +70,7 @@ config RISCV
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
select HAVE_ARCH_AUDITSYSCALL
+ select HAVE_ARCH_HUGE_VMAP
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
select HAVE_ARCH_KASAN if MMU && 64BIT
diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
index 8be197edaac8..99f98783dca7 100644
--- a/arch/riscv/include/asm/pgtable.h
+++ b/arch/riscv/include/asm/pgtable.h
@@ -747,6 +747,43 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma,
}
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
+static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+static inline int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+static inline void p4d_clear_huge(p4d_t *p4d) { }
+
+static inline int pud_clear_huge(pud_t *pud)
+{
+ return 0;
+}
+
+static inline int pmd_clear_huge(pmd_t *pmd)
+{
+ return 0;
+}
+
+static inline int p4d_free_pud_page(p4d_t *p4d, unsigned long addr)
+{
+ return 0;
+}
+
+static inline int pud_free_pmd_page(pud_t *pud, unsigned long addr)
+{
+ return 0;
+}
+
+static inline int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
+{
+ return 0;
+}
+
/*
* Encode and decode a swap entry
*
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index ff9abc00d139..776a88bd4fcf 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -1,4 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _ASM_RISCV_VMALLOC_H
#define _ASM_RISCV_VMALLOC_H
+#include <asm/pgtable.h>
+
+#ifdef CONFIG_SVNAPOT
+#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
+static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
+ u64 pfn, unsigned int max_page_shift)
+{
+ bool is_napot_addr = !(addr & NAPOT_CONT64KB_MASK);
+ bool pfn_align_napot = !(pfn & (NAPOT_64KB_PTE_NUM - 1UL));
+ bool space_enough = ((end - addr) >= NAPOT_CONT64KB_SIZE);
+
+ if (has_svnapot() && is_napot_addr && pfn_align_napot && space_enough
+ && max_page_shift >= NAPOT_CONT64KB_SHIFT)
+ return NAPOT_CONT64KB_SIZE;
+
+ return PAGE_SIZE;
+}
+#endif /*CONFIG_SVNAPOT*/
+
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.35.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 10%]
* [PATCH v3 0/4] riscv, mm: detect svnapot cpu support at runtime
@ 2022-08-22 12:59 4% panqinglin2020
2022-08-22 12:59 10% ` [PATCH v3 4/4] mm: support Svnapot in huge vmap panqinglin2020
2022-08-22 13:09 0% ` [PATCH v3 0/4] riscv, mm: detect svnapot cpu support at runtime Conor.Dooley
0 siblings, 2 replies; 200+ results
From: panqinglin2020 @ 2022-08-22 12:59 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in Linux Kernel's boot process
and hugetlb fs.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"Svnapot support". Its default value is off, and people can set
it on if they allow kernel to detect Svnapot hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Changes in v3:
- do linear mapping again if has_svnapot
Qinglin Pan (4):
mm: modify pte format for Svnapot
mm: support Svnapot in physical page linear-mapping
mm: support Svnapot in hugetlb page
mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 10 +-
arch/riscv/include/asm/errata_list.h | 24 ++-
arch/riscv/include/asm/hugetlb.h | 31 +++-
arch/riscv/include/asm/hwcap.h | 1 +
arch/riscv/include/asm/mmu.h | 1 +
arch/riscv/include/asm/page.h | 2 +-
arch/riscv/include/asm/pgtable-64.h | 14 ++
arch/riscv/include/asm/pgtable.h | 67 +++++++-
arch/riscv/include/asm/vmalloc.h | 20 +++
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 17 ++
arch/riscv/kernel/setup.c | 11 +-
arch/riscv/mm/hugetlbpage.c | 239 ++++++++++++++++++++++++++-
arch/riscv/mm/init.c | 47 ++++--
14 files changed, 461 insertions(+), 24 deletions(-)
--
2.35.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 4%]
* [PATCH v2 4/4] mm: support Svnapot in huge vmap
2022-07-16 8:56 4% [PATCH v2 0/4] riscv: mm: add Svnapot support panqinglin2020
@ 2022-07-16 8:56 10% ` panqinglin2020
0 siblings, 0 replies; 200+ results
From: panqinglin2020 @ 2022-07-16 8:56 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
The HAVE_ARCH_HUGE_VMAP option can be used to help implement arch
special huge vmap size. This patch selects this option by default and
re-writes the arch_vmap_pte_range_map_size for Svnapot 64KB size.
It can be tested when booting kernel in qemu with pci device, which
will make the kernel to call pci driver using ioremap, and the
re-written function will be called.
Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index a1fcdd04b12c..35731d627762 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -70,6 +70,7 @@ config RISCV
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
select HAVE_ARCH_AUDITSYSCALL
+ select HAVE_ARCH_HUGE_VMAP
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
select HAVE_ARCH_KASAN if MMU && 64BIT
diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
index 34c4be9de79e..75c2cf1f11bd 100644
--- a/arch/riscv/include/asm/pgtable.h
+++ b/arch/riscv/include/asm/pgtable.h
@@ -767,6 +767,43 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma,
}
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
+static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+static inline int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+static inline void p4d_clear_huge(p4d_t *p4d) { }
+
+static inline int pud_clear_huge(pud_t *pud)
+{
+ return 0;
+}
+
+static inline int pmd_clear_huge(pmd_t *pmd)
+{
+ return 0;
+}
+
+static inline int p4d_free_pud_page(p4d_t *p4d, unsigned long addr)
+{
+ return 0;
+}
+
+static inline int pud_free_pmd_page(pud_t *pud, unsigned long addr)
+{
+ return 0;
+}
+
+static inline int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
+{
+ return 0;
+}
+
/*
* Encode and decode a swap entry
*
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index ff9abc00d139..776a88bd4fcf 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -1,4 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _ASM_RISCV_VMALLOC_H
#define _ASM_RISCV_VMALLOC_H
+#include <asm/pgtable.h>
+
+#ifdef CONFIG_SVNAPOT
+#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
+static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
+ u64 pfn, unsigned int max_page_shift)
+{
+ bool is_napot_addr = !(addr & NAPOT_CONT64KB_MASK);
+ bool pfn_align_napot = !(pfn & (NAPOT_64KB_PTE_NUM - 1UL));
+ bool space_enough = ((end - addr) >= NAPOT_CONT64KB_SIZE);
+
+ if (has_svnapot() && is_napot_addr && pfn_align_napot && space_enough
+ && max_page_shift >= NAPOT_CONT64KB_SHIFT)
+ return NAPOT_CONT64KB_SIZE;
+
+ return PAGE_SIZE;
+}
+#endif /*CONFIG_SVNAPOT*/
+
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.35.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 10%]
* [PATCH v2 0/4] riscv: mm: add Svnapot support
@ 2022-07-16 8:56 4% panqinglin2020
2022-07-16 8:56 10% ` [PATCH v2 4/4] mm: support Svnapot in huge vmap panqinglin2020
0 siblings, 1 reply; 200+ results
From: panqinglin2020 @ 2022-07-16 8:56 UTC (permalink / raw)
To: palmer, linux-riscv; +Cc: jeff, xuyinan, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in Linux Kernel's boot process
and hugetlb fs.
This patchset adds a Kconfig item for using Svnapot in
"Platform type"->"Svnapot support". Its default value is off, and people can set
it on if they allow kernel to detect Svnapot hardware support and leverage it.
Tested on:
- qemu rv64 with "Svnapot support" off and svnapot=true.
- qemu rv64 with "Svnapot support" on and svnapot=true.
- qemu rv64 with "Svnapot support" off and svnapot=false.
- qemu rv64 with "Svnapot support" on and svnapot=false.
Changes in v2:
- detect Svnapot hardware support at boot time.
Qinglin Pan (4):
mm: modify pte format for Svnapot
mm: support Svnapot in physical page linear-mapping
mm: support Svnapot in hugetlb page
mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 10 +-
arch/riscv/include/asm/errata_list.h | 24 ++-
arch/riscv/include/asm/hugetlb.h | 31 +++-
arch/riscv/include/asm/hwcap.h | 1 +
arch/riscv/include/asm/page.h | 2 +-
arch/riscv/include/asm/pgtable-64.h | 14 ++
arch/riscv/include/asm/pgtable.h | 67 +++++++-
arch/riscv/include/asm/vmalloc.h | 20 +++
arch/riscv/kernel/cpu.c | 1 +
arch/riscv/kernel/cpufeature.c | 18 ++
arch/riscv/mm/hugetlbpage.c | 239 ++++++++++++++++++++++++++-
arch/riscv/mm/init.c | 28 +++-
12 files changed, 442 insertions(+), 13 deletions(-)
--
2.35.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 4%]
* [PULL] drm-misc-next
@ 2022-06-23 8:02 1% ` Thomas Zimmermann
0 siblings, 0 replies; 200+ results
From: Thomas Zimmermann @ 2022-06-23 8:02 UTC (permalink / raw)
To: Dave Airlie, Daniel Vetter
Cc: Tvrtko Ursulin, dim-tools, dri-devel, Thomas Zimmermann,
Rodrigo Vivi, intel-gfx
Hi Dave and Daniel,
here's the drm-misc-next PR for this week.
Best regards
Thomas
drm-misc-next-2022-06-23:
drm-misc-next for v5.20:
UAPI Changes:
* media: Add various RGB666 and RGB888 format constants
Cross-subsystem Changes:
* media: Documentation
Core Changes:
* aperture: Fix segfault during hot-unplug
* dp: Support waiting for HDP signal, plus driver updates;
Port-validation fixes
* fbcon: Improve scrolling performance; Sanitize input
* Clean up <drm/drm_crtc.h>
Driver Changes:
* amdgpu: Cleanups
* bridge: Add support for i.MX8qxp and i.MX8qm; anx7625: DPI fixes;
tc358775: Fix clock settings; ti-sn65dsi83: Allow GPIO to sleep
* panel: Set orientation from panel, plus driver updates
* Several small cleanups
The following changes since commit e4a8864f74e9e9e4a7eb93952a4cfa35c165c930:
iosys-map: Fix typo in documentation (2022-06-16 16:44:34 -0700)
are available in the Git repository at:
git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-next-2022-06-23
for you to fetch changes up to 009a3a52791f31c57d755a73f6bc66fbdd8bd76c:
drm/hyperv-drm: Include framebuffer and EDID headers (2022-06-22 16:07:38 +0200)
----------------------------------------------------------------
drm-misc-next for v5.20:
UAPI Changes:
* media: Add various RGB666 and RGB888 format constants
Cross-subsystem Changes:
* media: Documentation
Core Changes:
* aperture: Fix segfault during hot-unplug
* dp: Support waiting for HDP signal, plus driver updates;
Port-validation fixes
* fbcon: Improve scrolling performance; Sanitize input
* Clean up <drm/drm_crtc.h>
Driver Changes:
* amdgpu: Cleanups
* bridge: Add support for i.MX8qxp and i.MX8qm; anx7625: DPI fixes;
tc358775: Fix clock settings; ti-sn65dsi83: Allow GPIO to sleep
* panel: Set orientation from panel, plus driver updates
* Several small cleanups
----------------------------------------------------------------
Alex Deucher (1):
drm/amdgpu/display: drop set but unused variable
Alexander Stein (2):
drm/bridge: ti-sn65dsi83: add more dev_err_probe
drm/bridge: ti-sn65dsi83: Allow GPIO operations to sleep
Douglas Anderson (4):
drm/dp: Add wait_hpd_asserted() callback to struct drm_dp_aux
drm/panel-edp: Take advantage of wait_hpd_asserted() in struct drm_dp_aux
drm/panel: atna33xc20: Take advantage of wait_hpd_asserted() in struct drm_dp_aux
drm/bridge: parade-ps8640: Provide wait_hpd_asserted() in struct drm_dp_aux
Helge Deller (2):
fbcon: Fix accelerated fbdev scrolling while logo is still shown
fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters
Hsin-Yi Wang (8):
drm/panel: Add an API to allow drm to set orientation from panel
drm/panel: boe-tv101wum-nl6: Implement .get_orientation callback
drm/panel: panel-edp: Implement .get_orientation callback
drm/panel: lvds: Implement .get_orientation callback
drm/panel: panel-simple: Implement .get_orientation callback
drm/panel: ili9881c: Implement .get_orientation callback
drm/panel: elida-kd35t133: Implement .get_orientation callback
drm: Config orientation property if panel provides it
Jiang Jian (6):
drm/display: Remove duplicate 'the' in two places.
drm/nouveau/mmu: drop unexpected word "the" in the comments
drm/prime: drop unexpected word "the" in the comments
drm/vc4: drop unexpected word "the" in the comments
drm: panel-orientation-quirks: drop unexpected word "the" in the comments
GPU: drm: drop unexpected word "the" in the comments
Jiri Vanek (2):
drm/bridge/tc358775: Return before displaying inappropriate error message
drm/bridge/tc358775: Fix DSI clock division for vsync delay calculation
Liu Ying (14):
media: uapi: Add some RGB bus formats for i.MX8qm/qxp pixel combiner
media: docs: Add some RGB bus formats for i.MX8qm/qxp pixel combiner
dt-bindings: display: bridge: Add i.MX8qm/qxp pixel combiner binding
drm/bridge: imx: Add i.MX8qm/qxp pixel combiner support
dt-bindings: display: bridge: Add i.MX8qm/qxp display pixel link binding
drm/bridge: imx: Add i.MX8qm/qxp display pixel link support
dt-bindings: display: bridge: Add i.MX8qxp pixel link to DPI binding
drm/bridge: imx: Add i.MX8qxp pixel link to DPI support
drm/bridge: imx: Add LDB driver helper support
dt-bindings: display: bridge: Add i.MX8qm/qxp LVDS display bridge binding
drm/bridge: imx: Add LDB support for i.MX8qxp
drm/bridge: imx: Add LDB support for i.MX8qm
dt-bindings: mfd: Add i.MX8qm/qxp Control and Status Registers module binding
MAINTAINERS: add maintainer for DRM bridge drivers for i.MX SoCs
Lyude Paul (2):
drm/display/dp_mst: Don't validate port refs in drm_dp_check_and_send_link_address()
drm/dp_mst: Get rid of old comment in drm_atomic_get_mst_topology_state docs
Thomas Zimmermann (3):
Merge drm/drm-next into drm-misc-next
drm/aperture: Run fbdev removal before internal helpers
drm/hyperv-drm: Include framebuffer and EDID headers
Ville Syrjälä (5):
drm: Drop drm_edid.h from drm_crtc.h
drm: Drop drm_framebuffer.h from drm_crtc.h
drm: Drop drm_blend.h from drm_crtc.h
drm: Drop drm_connector.h from drm_crtc.h
drm/xlnx: Fix build failure due to missing include
Xin Ji (2):
dt-bindings:drm/bridge:anx7625: add port@0 property
drm/bridge: anx7625: Use DPI bus type
.clang-format | 218 +-
.gitignore | 1 +
.mailmap | 7 +
Documentation/ABI/stable/sysfs-bus-mhi | 10 +
Documentation/ABI/stable/sysfs-driver-mlxreg-io | 36 +
Documentation/ABI/testing/configfs-usb-gadget-uvc | 1 +
.../ABI/testing/debugfs-driver-habanalabs | 38 +
Documentation/ABI/testing/debugfs-hisi-hpre | 14 +
Documentation/ABI/testing/debugfs-hisi-sec | 14 +
Documentation/ABI/testing/debugfs-hisi-zip | 14 +
Documentation/ABI/testing/ima_policy | 45 +-
Documentation/ABI/testing/securityfs-secrets-coco | 51 +
Documentation/ABI/testing/sysfs-ata | 11 +-
Documentation/ABI/testing/sysfs-bus-thunderbolt | 10 +
Documentation/ABI/testing/sysfs-class-cxl | 4 +-
Documentation/ABI/testing/sysfs-class-firmware | 77 +
Documentation/ABI/testing/sysfs-class-regulator | 81 +
.../ABI/testing/sysfs-devices-physical_location | 42 +
.../ABI/testing/sysfs-driver-bd9571mwv-regulator | 2 +-
Documentation/ABI/testing/sysfs-driver-ccp | 87 +
.../ABI/testing/sysfs-driver-chromeos-acpi | 137 +
Documentation/ABI/testing/sysfs-driver-ufs | 18 +-
Documentation/ABI/testing/sysfs-driver-xen-blkback | 4 +-
.../ABI/testing/sysfs-driver-xen-blkfront | 2 +-
Documentation/ABI/testing/sysfs-kernel-mm-damon | 25 +-
Documentation/ABI/testing/sysfs-platform-intel-ifs | 39 +
Documentation/PCI/pci.rst | 4 +-
.../RCU/Design/Data-Structures/Data-Structures.rst | 2 +-
.../Expedited-Grace-Periods.rst | 2 +-
.../RCU/Design/Requirements/Requirements.rst | 36 +-
Documentation/RCU/arrayRCU.rst | 4 +-
Documentation/RCU/checklist.rst | 9 +-
Documentation/RCU/rcu.rst | 13 +-
Documentation/RCU/rculist_nulls.rst | 2 +-
Documentation/RCU/stallwarn.rst | 20 +
Documentation/RCU/whatisRCU.rst | 18 +-
Documentation/accounting/delay-accounting.rst | 5 +-
Documentation/accounting/psi.rst | 9 +-
Documentation/admin-guide/blockdev/index.rst | 6 +-
Documentation/admin-guide/blockdev/zram.rst | 5 +
Documentation/admin-guide/bootconfig.rst | 31 +-
Documentation/admin-guide/cgroup-v2.rst | 51 +-
Documentation/admin-guide/devices.txt | 2 +-
Documentation/admin-guide/kernel-parameters.rst | 11 +-
Documentation/admin-guide/kernel-parameters.txt | 571 +-
Documentation/admin-guide/media/vimc.dot | 14 +-
Documentation/admin-guide/mm/damon/reclaim.rst | 11 +
Documentation/admin-guide/mm/damon/usage.rst | 41 +-
Documentation/admin-guide/mm/hugetlbpage.rst | 2 +-
Documentation/admin-guide/mm/ksm.rst | 18 +
Documentation/admin-guide/nfs/nfs-client.rst | 15 +-
.../admin-guide/pm/intel-speed-select.rst | 22 +
Documentation/admin-guide/sysctl/kernel.rst | 15 +-
Documentation/admin-guide/sysctl/net.rst | 17 +
Documentation/admin-guide/sysctl/vm.rst | 48 +
Documentation/arch.rst | 1 +
Documentation/arm/marvell.rst | 7 -
Documentation/arm/tcm.rst | 2 +-
Documentation/arm64/booting.rst | 10 +
Documentation/arm64/cpu-feature-registers.rst | 2 +
Documentation/arm64/elf_hwcaps.rst | 37 +
Documentation/arm64/index.rst | 1 +
Documentation/arm64/silicon-errata.rst | 3 +
Documentation/arm64/sme.rst | 428 +
Documentation/arm64/sve.rst | 70 +-
Documentation/bpf/instruction-set.rst | 4 +-
Documentation/bpf/libbpf/index.rst | 3 +-
Documentation/cdrom/cdrom-standard.rst | 10 -
Documentation/cdrom/ide-cd.rst | 538 -
Documentation/cdrom/index.rst | 1 -
Documentation/conf.py | 2 +-
Documentation/core-api/index.rst | 2 +
Documentation/core-api/printk-index.rst | 137 +
Documentation/core-api/timekeeping.rst | 1 +
Documentation/{ => core-api}/watch_queue.rst | 0
Documentation/dev-tools/kasan.rst | 228 +-
Documentation/dev-tools/ktap.rst | 18 +-
Documentation/dev-tools/kunit/api/index.rst | 5 +
Documentation/dev-tools/kunit/api/resource.rst | 13 +
Documentation/dev-tools/kunit/architecture.rst | 2 +-
Documentation/dev-tools/kunit/running_tips.rst | 3 +-
Documentation/dev-tools/kunit/usage.rst | 19 +-
Documentation/dev-tools/testing-overview.rst | 63 +
.../devicetree/bindings/arm/arm,corstone1000.yaml | 45 +
.../devicetree/bindings/arm/bcm/brcm,bcm4708.yaml | 10 +-
.../devicetree/bindings/arm/bcm/brcm,bcm63138.txt | 2 +-
.../devicetree/bindings/arm/bcm/brcm,bcmbca.yaml | 33 +
.../bindings/arm/freescale/fsl,layerscape-dcfg.txt | 19 -
.../bindings/arm/freescale/fsl,layerscape-scfg.txt | 19 -
Documentation/devicetree/bindings/arm/fsl.yaml | 119 +-
.../hisilicon/controller/hip04-bootwrapper.yaml | 5 +-
Documentation/devicetree/bindings/arm/hpe,gxp.yaml | 27 +
.../devicetree/bindings/arm/intel,socfpga.yaml | 1 +
.../devicetree/bindings/arm/mediatek.yaml | 5 +
.../bindings/arm/mediatek/mediatek,apmixedsys.txt | 35 -
.../bindings/arm/mediatek/mediatek,infracfg.txt | 42 -
.../bindings/arm/mediatek/mediatek,infracfg.yaml | 81 +
.../bindings/arm/mediatek/mediatek,mmsys.yaml | 32 +
.../arm/mediatek/mediatek,mt7622-pcie-mirror.yaml | 42 +
.../bindings/arm/mediatek/mediatek,mt7622-wed.yaml | 50 +
.../arm/mediatek/mediatek,mt8186-clock.yaml | 56 +
.../arm/mediatek/mediatek,mt8186-sys-clock.yaml | 54 +
.../bindings/arm/mediatek/mediatek,pericfg.yaml | 1 +
.../bindings/arm/mediatek/mediatek,topckgen.txt | 35 -
.../devicetree/bindings/arm/msm/qcom,llcc.yaml | 2 +
.../devicetree/bindings/arm/omap/prcm.txt | 7 +-
Documentation/devicetree/bindings/arm/qcom.yaml | 21 +
Documentation/devicetree/bindings/arm/renesas.yaml | 20 +
.../devicetree/bindings/arm/rockchip.yaml | 23 +-
Documentation/devicetree/bindings/arm/sp810.txt | 46 -
Documentation/devicetree/bindings/arm/sp810.yaml | 80 +
Documentation/devicetree/bindings/arm/spe-pmu.txt | 20 -
.../devicetree/bindings/arm/stm32/stm32.yaml | 63 +-
Documentation/devicetree/bindings/arm/sunxi.yaml | 5 +
Documentation/devicetree/bindings/arm/syna.txt | 4 -
.../arm/tegra/nvidia,tegra-ccplex-cluster.yaml | 52 +
Documentation/devicetree/bindings/arm/ux500.yaml | 5 +
.../devicetree/bindings/arm/vexpress-config.yaml | 285 +
.../devicetree/bindings/arm/vexpress-sysreg.txt | 103 -
.../devicetree/bindings/arm/vexpress-sysreg.yaml | 90 +
.../devicetree/bindings/ata/renesas,rcar-sata.yaml | 1 +
.../bindings/bus/qcom,ssc-block-bus.yaml | 147 +
.../bindings/clock/airoha,en7523-scu.yaml | 58 +
.../devicetree/bindings/clock/clock-bindings.txt | 188 +-
.../devicetree/bindings/clock/idt,versaclock5.yaml | 2 +-
.../devicetree/bindings/clock/imx8m-clock.yaml | 4 -
.../bindings/clock/mediatek,apmixedsys.yaml | 61 +
.../bindings/clock/mediatek,topckgen.yaml | 61 +
.../bindings/clock/qcom,gcc-apq8064.yaml | 4 +-
.../bindings/clock/qcom,gcc-apq8084.yaml | 42 +
.../bindings/clock/qcom,gcc-sc8280xp.yaml | 128 +
.../devicetree/bindings/clock/qcom,mmcc.yaml | 2 +-
.../devicetree/bindings/clock/qcom,rpmcc.txt | 63 -
.../devicetree/bindings/clock/qcom,rpmcc.yaml | 75 +
.../bindings/clock/qcom,sc7280-lpasscorecc.yaml | 172 +
.../bindings/clock/renesas,cpg-mssr.yaml | 1 +
.../bindings/clock/renesas,h8300-div-clock.txt | 24 -
.../bindings/clock/renesas,h8s2678-pll-clock.txt | 23 -
.../bindings/clock/renesas,r9a06g032-sysctrl.yaml | 11 +
.../bindings/clock/renesas,rzg2l-cpg.yaml | 20 +-
.../bindings/clock/rockchip,px30-cru.txt | 70 -
.../bindings/clock/rockchip,px30-cru.yaml | 119 +
.../bindings/clock/rockchip,rk3036-cru.txt | 56 -
.../bindings/clock/rockchip,rk3036-cru.yaml | 72 +
.../bindings/clock/rockchip,rk3188-cru.txt | 61 -
.../bindings/clock/rockchip,rk3188-cru.yaml | 78 +
.../bindings/clock/rockchip,rk3228-cru.txt | 58 -
.../bindings/clock/rockchip,rk3228-cru.yaml | 74 +
.../bindings/clock/rockchip,rk3288-cru.txt | 67 -
.../bindings/clock/rockchip,rk3288-cru.yaml | 85 +
.../bindings/clock/rockchip,rk3308-cru.txt | 60 -
.../bindings/clock/rockchip,rk3308-cru.yaml | 76 +
.../bindings/clock/rockchip,rk3368-cru.txt | 61 -
.../bindings/clock/rockchip,rk3368-cru.yaml | 78 +
.../bindings/clock/rockchip,rk3399-cru.yaml | 33 +-
.../bindings/clock/rockchip,rk3568-cru.yaml | 13 +
.../bindings/clock/rockchip,rv1108-cru.txt | 59 -
.../bindings/clock/rockchip,rv1108-cru.yaml | 75 +
.../clock/samsung,exynos4412-isp-clock.yaml | 1 -
.../bindings/clock/samsung,exynosautov9-clock.yaml | 219 +
.../devicetree/bindings/clock/st,stm32mp1-rcc.yaml | 43 +
.../bindings/clock/stericsson,u8500-clks.yaml | 57 +
.../bindings/clock/ti,am654-ehrpwm-tbclk.yaml | 1 +
.../devicetree/bindings/clock/ti-clkctrl.txt | 4 +-
.../devicetree/bindings/clock/ti/clockdomain.txt | 3 +
.../devicetree/bindings/clock/ti/composite.txt | 3 +
.../bindings/clock/ti/fixed-factor-clock.txt | 1 +
.../devicetree/bindings/clock/ti/gate.txt | 1 +
.../devicetree/bindings/clock/ti/interface.txt | 1 +
Documentation/devicetree/bindings/clock/ti/mux.txt | 1 +
.../bindings/cpufreq/brcm,stb-avs-cpu-freq.txt | 2 +-
.../bindings/cpufreq/cpufreq-mediatek.txt | 7 +
.../bindings/crypto/allwinner,sun8i-ce.yaml | 1 -
.../devicetree/bindings/crypto/ti,sa2ul.yaml | 1 +
.../devicetree/bindings/devfreq/rk3399_dmc.txt | 212 -
.../bindings/display/amlogic,meson-dw-hdmi.yaml | 1 -
.../devicetree/bindings/display/arm,hdlcd.txt | 79 -
.../devicetree/bindings/display/arm,hdlcd.yaml | 89 +
.../devicetree/bindings/display/arm,komeda.txt | 78 -
.../devicetree/bindings/display/arm,komeda.yaml | 130 +
.../devicetree/bindings/display/arm,malidp.txt | 68 -
.../devicetree/bindings/display/arm,malidp.yaml | 119 +
.../devicetree/bindings/display/arm,pl11x.txt | 110 -
.../devicetree/bindings/display/arm,pl11x.yaml | 183 +
.../bindings/display/bridge/analogix,anx7625.yaml | 19 +-
.../bindings/display/bridge/fsl,imx8qxp-ldb.yaml | 173 +
.../display/bridge/fsl,imx8qxp-pixel-combiner.yaml | 144 +
.../display/bridge/fsl,imx8qxp-pixel-link.yaml | 144 +
.../display/bridge/fsl,imx8qxp-pxl2dpi.yaml | 108 +
.../display/bridge/google,cros-ec-anx7688.yaml | 1 -
.../devicetree/bindings/display/bridge/ps8640.yaml | 1 -
.../bindings/display/bridge/renesas,lvds.yaml | 4 -
.../bindings/display/bridge/toshiba,tc358768.yaml | 1 +
.../bindings/display/imx/nxp,imx8mq-dcss.yaml | 1 -
.../bindings/display/mediatek/mediatek,aal.yaml | 11 +-
.../bindings/display/mediatek/mediatek,ccorr.yaml | 5 +-
.../bindings/display/mediatek/mediatek,color.yaml | 7 +-
.../bindings/display/mediatek/mediatek,dither.yaml | 4 +-
.../bindings/display/mediatek/mediatek,dpi.yaml | 1 +
.../bindings/display/mediatek/mediatek,gamma.yaml | 4 +-
.../bindings/display/mediatek/mediatek,merge.yaml | 1 -
.../bindings/display/mediatek/mediatek,mutex.yaml | 25 +-
.../bindings/display/mediatek/mediatek,ovl-2l.yaml | 4 +
.../bindings/display/mediatek/mediatek,ovl.yaml | 8 +-
.../display/mediatek/mediatek,postmask.yaml | 4 +
.../bindings/display/mediatek/mediatek,rdma.yaml | 7 +-
.../bindings/display/msm/dpu-qcm2290.yaml | 4 +
.../bindings/display/msm/dpu-sc7180.yaml | 6 +-
.../bindings/display/msm/dpu-sc7280.yaml | 6 +-
.../bindings/display/msm/dpu-sdm845.yaml | 6 +-
.../bindings/display/msm/dsi-controller-main.yaml | 2 +-
.../bindings/display/msm/dsi-phy-10nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-14nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-20nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-28nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-common.yaml | 2 +-
.../bindings/display/panel/ilitek,ili9341.yaml | 1 -
.../bindings/display/panel/orisetech,otm8009a.yaml | 1 -
.../bindings/display/panel/panel-timing.yaml | 5 +
.../bindings/display/panel/raydium,rm67191.yaml | 1 +
.../bindings/display/panel/samsung,s6e8aa0.yaml | 1 +
.../devicetree/bindings/display/renesas,du.yaml | 23 -
.../bindings/display/rockchip/rockchip-vop2.yaml | 8 +-
.../display/sprd/sprd,display-subsystem.yaml | 1 -
.../devicetree/bindings/display/st,stm32-ltdc.yaml | 1 -
.../bindings/dma/allwinner,sun50i-a64-dma.yaml | 9 +-
.../devicetree/bindings/dma/altr,msgdma.yaml | 2 +-
.../devicetree/bindings/dma/arm,pl330.yaml | 3 +
.../devicetree/bindings/dma/fsl-imx-dma.txt | 8 +-
Documentation/devicetree/bindings/dma/mmp-dma.txt | 10 +-
.../bindings/dma/nvidia,tegra186-gpc-dma.yaml | 110 +
.../devicetree/bindings/dma/qcom,gpi.yaml | 3 +
.../devicetree/bindings/dma/renesas,rcar-dmac.yaml | 10 +-
.../bindings/dma/renesas,rzn1-dmamux.yaml | 51 +
.../bindings/dma/sifive,fu540-c000-pdma.yaml | 19 +-
.../bindings/dma/snps,dma-spear1340.yaml | 8 +-
Documentation/devicetree/bindings/dma/sprd-dma.txt | 7 +-
.../devicetree/bindings/dma/st,stm32-dmamux.yaml | 1 -
.../devicetree/bindings/dma/st,stm32-mdma.yaml | 1 -
.../devicetree/bindings/dma/xilinx/xilinx_dma.txt | 6 +-
.../bindings/dsp/mediatek,mt8195-dsp.yaml | 105 +
Documentation/devicetree/bindings/eeprom/at24.txt | 1 -
Documentation/devicetree/bindings/eeprom/at24.yaml | 4 +-
.../devicetree/bindings/example-schema.yaml | 14 +-
.../bindings/extcon/siliconmitus,sm5502-muic.yaml | 5 +-
.../devicetree/bindings/firmware/qcom,scm.txt | 3 +-
.../devicetree/bindings/gnss/brcm,bcm4751.yaml | 69 +
.../devicetree/bindings/gnss/mediatek.txt | 35 -
.../devicetree/bindings/gnss/mediatek.yaml | 59 +
.../bindings/gpio/fairchild,74hc595.yaml | 1 +
.../devicetree/bindings/gpio/gpio-altera.txt | 5 +-
.../bindings/gpio/gpio-consumer-common.yaml | 64 +
.../devicetree/bindings/gpio/gpio-pca95xx.yaml | 1 +
.../bindings/gpio/realtek,otto-gpio.yaml | 34 +-
.../bindings/gpio/renesas,rcar-gpio.yaml | 5 +
.../bindings/gpio/socionext,uniphier-gpio.yaml | 17 +
.../devicetree/bindings/gpu/samsung-rotator.yaml | 1 -
Documentation/devicetree/bindings/h8300/cpu.txt | 13 -
.../devicetree/bindings/hwmon/adt7475.yaml | 23 +-
Documentation/devicetree/bindings/hwmon/lm75.yaml | 1 +
.../bindings/hwmon/microchip,lan966x.yaml | 53 +
.../devicetree/bindings/hwmon/national,lm90.yaml | 20 +
.../devicetree/bindings/hwmon/nuvoton,nct6775.yaml | 57 +
.../devicetree/bindings/hwmon/ti,tmp401.yaml | 105 +
.../devicetree/bindings/hwmon/ti,tmp421.yaml | 7 +-
.../devicetree/bindings/hwmon/vexpress.txt | 2 +-
.../devicetree/bindings/i2c/i2c-gate.yaml | 1 -
.../devicetree/bindings/i2c/i2c-mt65xx.txt | 53 -
.../devicetree/bindings/i2c/i2c-mt65xx.yaml | 118 +
.../devicetree/bindings/i2c/i2c-mux-gpmux.yaml | 1 -
.../bindings/i2c/qcom,i2c-geni-qcom.yaml | 100 +
.../devicetree/bindings/i2c/qcom,i2c-qup.txt | 40 -
.../devicetree/bindings/i2c/qcom,i2c-qup.yaml | 89 +
.../devicetree/bindings/i2c/renesas,rcar-i2c.yaml | 2 +-
.../devicetree/bindings/i2c/renesas,riic.yaml | 2 +
.../bindings/i2c/samsung,s3c2410-i2c.yaml | 2 +-
.../devicetree/bindings/i3c/cdns,i3c-master.txt | 43 -
.../devicetree/bindings/i3c/cdns,i3c-master.yaml | 60 +
.../devicetree/bindings/i3c/snps,dw-i3c-master.txt | 41 -
.../bindings/i3c/snps,dw-i3c-master.yaml | 52 +
.../devicetree/bindings/iio/adc/adi,ad7291.yaml | 1 -
.../bindings/iio/adc/renesas,rzg2l-adc.yaml | 3 +-
.../bindings/iio/adc/sprd,sc2720-adc.yaml | 60 +-
.../devicetree/bindings/iio/adc/st,stm32-adc.yaml | 2 -
.../devicetree/bindings/iio/adc/ti,ads1015.yaml | 7 +-
.../devicetree/bindings/iio/dac/adi,ad3552r.yaml | 2 +-
.../devicetree/bindings/iio/dac/lltc,ltc1660.yaml | 2 +-
.../devicetree/bindings/iio/dac/lltc,ltc2632.yaml | 2 +-
.../bindings/iio/imu/invensense,mpu6050.yaml | 34 +-
.../devicetree/bindings/iio/imu/st,lsm6dsx.yaml | 38 +-
.../devicetree/bindings/iio/light/stk33xx.yaml | 6 +
.../iio/potentiometer/microchip,mcp4131.yaml | 2 +-
.../devicetree/bindings/iio/st,st-sensors.yaml | 1 +
.../input/allwinner,sun4i-a10-lradc-keys.yaml | 22 +
.../devicetree/bindings/input/azoteq,iqs7222.yaml | 960 +
.../bindings/input/google,cros-ec-keyb.yaml | 37 +-
.../devicetree/bindings/input/ilitek,ili2xxx.txt | 27 -
.../bindings/input/mediatek,mt6779-keypad.yaml | 2 +-
.../bindings/input/touchscreen/ilitek_ts_i2c.yaml | 7 +-
.../bindings/interconnect/qcom,bcm-voter.yaml | 8 +-
.../bindings/interconnect/qcom,osm-l3.yaml | 2 +-
.../bindings/interconnect/qcom,rpmh.yaml | 18 +-
.../bindings/interrupt-controller/arm,gic-v3.yaml | 8 +-
.../interrupt-controller/fsl,ls-extirq.txt | 53 -
.../interrupt-controller/fsl,ls-extirq.yaml | 118 +
.../bindings/interrupt-controller/qcom,pdc.txt | 6 +-
.../interrupt-controller/renesas,h8300h-intc.txt | 22 -
.../interrupt-controller/renesas,h8s-intc.txt | 22 -
.../devicetree/bindings/iommu/apple,sart.yaml | 52 +
.../devicetree/bindings/iommu/arm,smmu-v3.yaml | 16 +-
.../devicetree/bindings/iommu/arm,smmu.yaml | 25 +-
.../devicetree/bindings/iommu/mediatek,iommu.yaml | 34 +-
.../devicetree/bindings/iommu/samsung,sysmmu.yaml | 11 -
.../devicetree/bindings/iommu/xen,grant-dma.yaml | 39 +
.../bindings/leds/backlight/qcom-wled.yaml | 2 +-
.../devicetree/bindings/leds/kinetic,ktd2692.yaml | 87 +
.../bindings/leds/leds-class-multicolor.yaml | 2 +-
.../devicetree/bindings/leds/leds-ktd2692.txt | 50 -
.../devicetree/bindings/leds/leds-mt6360.yaml | 4 +-
.../bindings/leds/leds-pwm-multicolor.yaml | 79 +
.../devicetree/bindings/leds/leds-qcom-lpg.yaml | 174 +
.../devicetree/bindings/leds/regulator-led.yaml | 55 +
.../bindings/mailbox/amlogic,meson-gxbb-mhu.yaml | 1 -
.../devicetree/bindings/mailbox/mtk,adsp-mbox.yaml | 7 +-
.../bindings/mailbox/nvidia,tegra186-hsp.yaml | 9 +
.../devicetree/bindings/mailbox/qcom-ipcc.yaml | 30 +-
.../devicetree/bindings/mailbox/st,stm32-ipcc.yaml | 11 +-
.../bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt | 127 -
.../bindings/mailbox/xlnx,zynqmp-ipi-mailbox.yaml | 140 +
.../devicetree/bindings/media/i2c/adv7604.yaml | 3 +-
.../bindings/media/i2c/dongwoon,dw9807-vcm.txt | 9 -
.../bindings/media/i2c/dongwoon,dw9807-vcm.yaml | 41 +
.../devicetree/bindings/media/i2c/sony,imx412.yaml | 9 +
.../bindings/media/mediatek,vcodec-encoder.yaml | 3 +
.../media/mediatek,vcodec-subdev-decoder.yaml | 4 +-
.../devicetree/bindings/media/microchip,xisc.yaml | 3 +-
.../devicetree/bindings/media/rockchip,vdec.yaml | 4 +-
.../devicetree/bindings/media/rockchip-vpu.yaml | 1 +
.../bindings/media/video-interfaces.yaml | 1 +
.../bindings/memory-controllers/fsl/fsl,ddr.yaml | 6 -
.../ingenic,nemc-peripherals.yaml | 46 +
.../bindings/memory-controllers/ingenic,nemc.yaml | 32 -
.../memory-controllers/nvidia,tegra186-mc.yaml | 77 +-
.../memory-controllers/renesas,h8300-bsc.yaml | 35 -
.../memory-controllers/renesas,rpc-if.yaml | 6 +
.../memory-controllers/rockchip,rk3399-dmc.yaml | 384 +
Documentation/devicetree/bindings/mfd/da9063.txt | 9 +-
.../devicetree/bindings/mfd/fsl,imx8qxp-csr.yaml | 192 +
.../devicetree/bindings/mfd/google,cros-ec.yaml | 2 +-
.../devicetree/bindings/mfd/maxim,max77714.yaml | 2 +-
.../devicetree/bindings/mfd/mediatek,mt6360.yaml | 256 +
.../devicetree/bindings/mfd/qcom,spmi-pmic.txt | 2 +-
Documentation/devicetree/bindings/mfd/rk808.txt | 465 -
.../devicetree/bindings/mfd/rockchip,rk805.yaml | 219 +
.../devicetree/bindings/mfd/rockchip,rk808.yaml | 257 +
.../devicetree/bindings/mfd/rockchip,rk809.yaml | 284 +
.../devicetree/bindings/mfd/rockchip,rk817.yaml | 330 +
.../devicetree/bindings/mfd/rockchip,rk818.yaml | 282 +
.../bindings/mfd/samsung,exynos5433-lpass.yaml | 4 +-
Documentation/devicetree/bindings/mfd/syscon.yaml | 8 -
.../devicetree/bindings/mfd/wlf,arizona.yaml | 1 +
.../bindings/mmc/brcm,sdhci-brcmstb.yaml | 22 +-
.../devicetree/bindings/mmc/fsl-imx-esdhc.yaml | 31 +-
.../bindings/mmc/marvell,dove-sdhci.yaml | 44 +
.../bindings/mmc/marvell,orion-sdio.yaml | 44 +
.../bindings/mmc/marvell,xenon-sdhci.txt | 173 -
.../bindings/mmc/marvell,xenon-sdhci.yaml | 277 +
.../devicetree/bindings/mmc/mmc-controller.yaml | 5 +-
Documentation/devicetree/bindings/mmc/mtk-sd.yaml | 15 +-
.../bindings/mmc/nvidia,tegra20-sdhci.yaml | 7 +-
.../devicetree/bindings/mmc/orion-sdio.txt | 16 -
.../devicetree/bindings/mmc/sdhci-am654.yaml | 7 +
.../devicetree/bindings/mmc/sdhci-dove.txt | 14 -
.../devicetree/bindings/mmc/sdhci-msm.txt | 123 -
.../devicetree/bindings/mmc/sdhci-msm.yaml | 194 +
.../bindings/mmc/snps,dwcmshc-sdhci.yaml | 1 +
.../devicetree/bindings/mtd/aspeed-smc.txt | 51 -
Documentation/devicetree/bindings/mtd/common.txt | 1 -
Documentation/devicetree/bindings/mtd/elm.txt | 16 -
.../devicetree/bindings/mtd/gpmi-nand.yaml | 2 -
.../bindings/mtd/hisilicon,fmc-spi-nor.txt | 2 +-
.../devicetree/bindings/mtd/ingenic,nand.yaml | 1 +
.../devicetree/bindings/mtd/jedec,spi-nor.yaml | 8 -
.../bindings/mtd/partitions/fixed-partitions.yaml | 55 +-
.../devicetree/bindings/mtd/renesas-nandc.yaml | 5 +
.../devicetree/bindings/mtd/spi-nand.yaml | 1 +
Documentation/devicetree/bindings/mtd/ti,elm.yaml | 72 +
Documentation/devicetree/bindings/mux/reg-mux.yaml | 9 +-
.../devicetree/bindings/net/adi,adin.yaml | 18 +-
.../devicetree/bindings/net/asix,ax88178.yaml | 68 +
.../bindings/net/aspeed,ast2600-mdio.yaml | 6 +
.../devicetree/bindings/net/can/bosch,c_can.yaml | 3 -
.../devicetree/bindings/net/can/ctu,ctucanfd.yaml | 66 +
.../bindings/net/can/microchip,mcp251xfd.yaml | 19 +-
.../bindings/net/can/renesas,rcar-canfd.yaml | 5 +-
.../devicetree/bindings/net/cdns,macb.yaml | 10 +-
.../devicetree/bindings/net/dsa/brcm,b53.yaml | 115 +-
.../devicetree/bindings/net/dsa/microchip,ksz.yaml | 1 +
.../devicetree/bindings/net/dsa/nxp,sja1105.yaml | 1 +
.../devicetree/bindings/net/dsa/realtek.yaml | 1 +
.../devicetree/bindings/net/ethernet-phy.yaml | 9 +
.../devicetree/bindings/net/ingenic,mac.yaml | 1 +
.../bindings/net/marvell,orion-mdio.yaml | 60 +
.../devicetree/bindings/net/marvell-orion-mdio.txt | 54 -
.../devicetree/bindings/net/mediatek,net.yaml | 437 +
.../devicetree/bindings/net/mediatek-dwmac.yaml | 3 +
.../devicetree/bindings/net/mediatek-net.txt | 98 -
Documentation/devicetree/bindings/net/micrel.txt | 9 +
.../devicetree/bindings/net/microchip,lan95xx.yaml | 63 +
.../bindings/net/microchip,lan966x-switch.yaml | 8 +-
.../devicetree/bindings/net/mscc,miim.yaml | 61 +
.../devicetree/bindings/net/mscc-miim.txt | 26 -
.../devicetree/bindings/net/qcom,ipa.yaml | 7 +
.../devicetree/bindings/net/renesas,etheravb.yaml | 82 +-
.../devicetree/bindings/net/smsc,lan91c111.yaml | 61 +
.../devicetree/bindings/net/smsc-lan91c111.txt | 17 -
.../bindings/net/sunplus,sp7021-emac.yaml | 141 +
.../devicetree/bindings/net/ti,davinci-mdio.yaml | 1 +
.../devicetree/bindings/net/ti,k3-am654-cpts.yaml | 1 -
.../bindings/net/toshiba,visconti-dwmac.yaml | 3 +-
.../bindings/net/wireless/mediatek,mt76.yaml | 2 +-
.../bindings/net/wireless/qcom,ath11k.yaml | 363 +-
.../{staging => }/net/wireless/silabs,wfx.yaml | 3 +-
.../bindings/net/wireless/ti,wlcore.yaml | 2 +
.../devicetree/bindings/nvme/apple,nvme-ans.yaml | 110 +
.../devicetree/bindings/nvmem/apple,efuses.yaml | 50 +
.../bindings/nvmem/fsl,layerscape-sfp.yaml | 30 +-
.../devicetree/bindings/nvmem/snvs-lpgpr.yaml | 4 +
.../devicetree/bindings/opp/opp-v2-kryo-cpu.yaml | 56 +-
.../devicetree/bindings/pci/apple,pcie.yaml | 8 +-
.../devicetree/bindings/pci/layerscape-pci.txt | 65 +-
.../devicetree/bindings/pci/qcom,pcie.txt | 397 -
.../devicetree/bindings/pci/qcom,pcie.yaml | 714 +
.../devicetree/bindings/pci/rockchip-dw-pcie.yaml | 12 +-
.../devicetree/bindings/pci/snps,dw-pcie-ep.yaml | 6 +-
.../devicetree/bindings/pci/snps,dw-pcie.yaml | 2 +
.../bindings/pci/socionext,uniphier-pcie.yaml | 117 +
.../devicetree/bindings/pci/uniphier-pcie.txt | 82 -
.../devicetree/bindings/pci/xilinx-versal-cpm.yaml | 10 +-
.../devicetree/bindings/perf/arm,cmn.yaml | 2 +
.../devicetree/bindings/perf/spe-pmu.yaml | 40 +
.../phy/allwinner,sun6i-a31-mipi-dphy.yaml | 12 +
.../devicetree/bindings/phy/brcm,sata-phy.yaml | 10 +-
.../bindings/phy/marvell,armada-3700-utmi-phy.yaml | 2 +-
.../devicetree/bindings/phy/mixel,mipi-dsi-phy.txt | 29 -
.../bindings/phy/mixel,mipi-dsi-phy.yaml | 107 +
.../devicetree/bindings/phy/phy-stih407-usb.txt | 2 +-
.../devicetree/bindings/phy/qcom,qmp-phy.yaml | 4 +
.../bindings/phy/qcom,qmp-usb3-dp-phy.yaml | 2 +-
.../devicetree/bindings/phy/qcom,qusb2-phy.yaml | 2 +-
.../bindings/phy/qcom,usb-snps-femto-v2.yaml | 2 +-
.../devicetree/bindings/phy/renesas,usb2-phy.yaml | 1 +
.../bindings/phy/socionext,uniphier-ahci-phy.yaml | 91 +-
.../bindings/phy/socionext,uniphier-pcie-phy.yaml | 47 +-
.../bindings/phy/socionext,uniphier-usb2-phy.yaml | 3 +
.../phy/socionext,uniphier-usb3hs-phy.yaml | 89 +-
.../phy/socionext,uniphier-usb3ss-phy.yaml | 98 +-
.../bindings/pinctrl/aspeed,ast2500-pinctrl.yaml | 81 +-
.../bindings/pinctrl/aspeed,ast2600-pinctrl.yaml | 4 +-
.../bindings/pinctrl/canaan,k210-fpioa.yaml | 2 +
.../bindings/pinctrl/fsl,imx7d-pinctrl.txt | 87 -
.../bindings/pinctrl/fsl,imx7d-pinctrl.yaml | 113 +
.../devicetree/bindings/pinctrl/fsl,imxrt1170.yaml | 77 +
.../bindings/pinctrl/marvell,ac5-pinctrl.yaml | 72 +
.../bindings/pinctrl/mediatek,pinctrl-mt6795.yaml | 224 +
.../bindings/pinctrl/mscc,ocelot-pinctrl.txt | 42 -
.../bindings/pinctrl/mscc,ocelot-pinctrl.yaml | 116 +
.../devicetree/bindings/pinctrl/pincfg-node.yaml | 12 +-
.../bindings/pinctrl/pinctrl-mt8192.yaml | 155 +-
.../devicetree/bindings/pinctrl/pinctrl-rk805.txt | 2 +-
.../bindings/pinctrl/qcom,pmic-gpio.yaml | 287 +-
.../bindings/pinctrl/qcom,qcm2290-pinctrl.yaml | 3 +-
.../pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml | 115 +
.../bindings/pinctrl/qcom,sc7280-pinctrl.yaml | 3 +-
.../bindings/pinctrl/qcom,sm6115-pinctrl.yaml | 3 +-
...trl.yaml => qcom,sm8250-lpass-lpi-pinctrl.yaml} | 2 +-
.../bindings/pinctrl/qcom,sm8250-pinctrl.yaml | 3 +-
.../bindings/pinctrl/qcom,tlmm-common.yaml | 1 -
.../bindings/pinctrl/ralink,mt7620-pinctrl.yaml | 97 +
...2880-pinmux.yaml => ralink,mt7621-pinctrl.yaml} | 27 +-
.../bindings/pinctrl/ralink,rt2880-pinctrl.yaml | 68 +
.../bindings/pinctrl/ralink,rt305x-pinctrl.yaml | 89 +
.../bindings/pinctrl/ralink,rt3883-pinctrl.yaml | 71 +
.../bindings/pinctrl/renesas,rzg2l-pinctrl.yaml | 5 +-
.../bindings/pinctrl/rockchip,pinctrl.yaml | 4 +-
.../bindings/power/amlogic,meson-sec-pwrc.yaml | 1 -
.../devicetree/bindings/power/avs/qcom,cpr.yaml | 1 +
.../devicetree/bindings/power/qcom,rpmpd.yaml | 3 +
.../bindings/power/renesas,rcar-sysc.yaml | 16 +-
.../devicetree/bindings/power/supply/battery.yaml | 7 +-
.../bindings/power/supply/charger-manager.yaml | 1 +
.../bindings/power/supply/cw2015_battery.yaml | 1 -
.../bindings/power/supply/maxim,max77976.yaml | 2 +-
.../bindings/power/supply/power-supply.yaml | 1 -
.../bindings/power/supply/ti,lp8727.yaml | 1 -
.../bindings/power/supply/tps65217-charger.yaml | 2 +-
.../devicetree/bindings/powerpc/fsl/cache_sram.txt | 20 -
.../devicetree/bindings/powerpc/fsl/l2cache.txt | 6 -
.../devicetree/bindings/pwm/atmel,at91sam-pwm.yaml | 47 +
.../devicetree/bindings/pwm/atmel-pwm.txt | 35 -
.../bindings/pwm/google,cros-ec-pwm.yaml | 9 +-
.../devicetree/bindings/pwm/mediatek,pwm-disp.yaml | 75 +
.../devicetree/bindings/pwm/pwm-mediatek.txt | 1 +
.../devicetree/bindings/pwm/pwm-mtk-disp.txt | 45 -
.../devicetree/bindings/pwm/pwm-omap-dmtimer.txt | 2 +-
.../bindings/pwm/sunplus,sp7021-pwm.yaml | 42 +
.../bindings/regulator/mt6315-regulator.yaml | 6 +-
.../bindings/regulator/mt6358-regulator.txt | 22 +-
.../bindings/regulator/nxp,pca9450-regulator.yaml | 11 +
.../bindings/regulator/qcom,rpmh-regulator.yaml | 262 +-
.../bindings/regulator/qcom,smd-rpm-regulator.yaml | 5 +-
.../regulator/qcom,usb-vbus-regulator.yaml | 2 +-
.../regulator/richtek,rt4801-regulator.yaml | 21 +-
.../regulator/richtek,rt5759-regulator.yaml | 90 +
.../regulator/siliconmitus,sm5703-regulator.yaml | 49 +
.../regulator/socionext,uniphier-regulator.yaml | 58 +-
.../bindings/regulator/st,stm32-vrefbuf.yaml | 1 -
.../devicetree/bindings/regulator/vexpress.txt | 2 +-
.../bindings/remoteproc/fsl,imx-rproc.yaml | 9 +-
.../devicetree/bindings/remoteproc/mtk,scp.yaml | 57 +-
.../devicetree/bindings/remoteproc/qcom,adsp.yaml | 31 +
.../devicetree/bindings/remoteproc/qcom,q6v5.txt | 2 +-
.../bindings/remoteproc/qcom,wcnss-pil.txt | 2 +-
.../bindings/remoteproc/st,stm32-rproc.yaml | 16 +-
.../devicetree/bindings/reserved-memory/phram.yaml | 47 +
.../bindings/reserved-memory/ramoops.yaml | 1 -
.../devicetree/bindings/reset/altr,rst-mgr.yaml | 47 +
.../bindings/reset/amlogic,meson-axg-audio-arb.txt | 22 -
.../reset/amlogic,meson-axg-audio-arb.yaml | 56 +
.../bindings/reset/amlogic,meson-reset.yaml | 1 +
.../devicetree/bindings/reset/ath79-reset.txt | 20 -
.../devicetree/bindings/reset/berlin,reset.txt | 23 -
.../bindings/reset/bitmain,bm1880-reset.txt | 18 -
.../bindings/reset/bitmain,bm1880-reset.yaml | 36 +
.../bindings/reset/hisilicon,hi6220-reset.txt | 37 -
.../devicetree/bindings/reset/lantiq,reset.txt | 30 -
.../devicetree/bindings/reset/lantiq,reset.yaml | 49 +
.../bindings/reset/marvell,berlin2-reset.yaml | 38 +
.../devicetree/bindings/reset/microchip,rst.yaml | 1 -
.../bindings/reset/nuvoton,npcm-reset.txt | 32 -
.../bindings/reset/nuvoton,npcm750-reset.yaml | 50 +
.../bindings/reset/qca,ar7100-reset.yaml | 40 +
.../devicetree/bindings/reset/qcom,aoss-reset.yaml | 2 +-
.../devicetree/bindings/reset/qcom,pdc-global.yaml | 2 +-
.../devicetree/bindings/reset/renesas,rst.yaml | 1 +
.../bindings/reset/snps,axs10x-reset.txt | 33 -
.../bindings/reset/snps,axs10x-reset.yaml | 48 +
.../devicetree/bindings/reset/socfpga-reset.txt | 16 -
.../reset/socionext,uniphier-glue-reset.yaml | 52 +-
.../bindings/reset/st,sti-picophyreset.txt | 42 -
.../devicetree/bindings/reset/st,sti-powerdown.txt | 45 -
.../bindings/reset/st,stih407-picophyreset.yaml | 47 +
.../bindings/reset/st,stih407-powerdown.yaml | 49 +
.../devicetree/bindings/riscv/microchip.yaml | 2 +
.../devicetree/bindings/rng/intel,ixp46x-rng.yaml | 1 -
.../devicetree/bindings/rng/st,stm32-rng.yaml | 1 +
.../bindings/rtc/allwinner,sun6i-a31-rtc.yaml | 10 -
.../devicetree/bindings/rtc/nxp,pcf85063.txt | 1 +
.../devicetree/bindings/rtc/renesas,rzn1-rtc.yaml | 70 +
Documentation/devicetree/bindings/rtc/rtc.txt | 1 -
Documentation/devicetree/bindings/serial/8250.yaml | 1 +
.../devicetree/bindings/serial/fsl-lpuart.yaml | 4 +-
.../devicetree/bindings/serial/qcom,msm-uartdm.txt | 81 -
.../bindings/serial/qcom,msm-uartdm.yaml | 112 +
.../bindings/serial/qcom,serial-geni-qcom.yaml | 86 +
.../bindings/serial/renesas,em-uart.yaml | 37 +-
.../devicetree/bindings/serial/renesas,hscif.yaml | 9 +-
.../devicetree/bindings/serial/renesas,scif.yaml | 2 +-
.../devicetree/bindings/serial/rs485.yaml | 5 +
.../devicetree/bindings/serial/samsung_uart.yaml | 4 -
.../bindings/serial/socionext,uniphier-uart.yaml | 5 +-
.../devicetree/bindings/serial/sprd-uart.yaml | 2 +-
.../devicetree/bindings/serio/arm,pl050.yaml | 67 +
.../bindings/soc/amlogic/amlogic,canvas.yaml | 1 -
.../bindings/soc/fsl/fsl,layerscape-dcfg.yaml | 68 +
.../bindings/soc/fsl/fsl,layerscape-scfg.yaml | 58 +
.../bindings/soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 84 +
.../soc/imx/fsl,imx8mp-media-blk-ctrl.yaml | 104 +
.../bindings/soc/intel/intel,hps-copy-engine.yaml | 51 +
.../devicetree/bindings/soc/mediatek/pwrap.txt | 10 +-
.../devicetree/bindings/soc/qcom/qcom,geni-se.yaml | 102 +-
.../devicetree/bindings/soc/qcom/qcom,gsbi.txt | 87 -
.../devicetree/bindings/soc/qcom/qcom,gsbi.yaml | 132 +
.../bindings/soc/qcom/qcom,rpmh-rsc.yaml | 272 +
.../devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 12 +-
.../devicetree/bindings/soc/qcom/qcom,smd.txt | 98 -
.../devicetree/bindings/soc/qcom/qcom,smd.yaml | 135 +
.../devicetree/bindings/soc/qcom/qcom,smp2p.txt | 110 -
.../devicetree/bindings/soc/qcom/qcom,smp2p.yaml | 145 +
.../devicetree/bindings/soc/qcom/qcom,smsm.txt | 104 -
.../devicetree/bindings/soc/qcom/qcom,smsm.yaml | 138 +
.../devicetree/bindings/soc/qcom/qcom,wcnss.txt | 131 -
.../devicetree/bindings/soc/qcom/qcom,wcnss.yaml | 137 +
.../devicetree/bindings/soc/qcom/rpmh-rsc.txt | 137 -
.../{power => soc/renesas}/renesas,rzg2l-sysc.yaml | 7 +-
.../devicetree/bindings/soc/rockchip/grf.yaml | 3 +
.../bindings/soc/samsung/exynos-usi.yaml | 2 +-
.../devicetree/bindings/soc/ti/wkup-m3-ipc.yaml | 175 +
.../devicetree/bindings/soc/ti/wkup_m3_ipc.txt | 57 -
.../devicetree/bindings/sound/adi,adau1372.yaml | 1 -
.../devicetree/bindings/sound/adi,max98396.yaml | 79 +
.../bindings/sound/allwinner,sun4i-a10-i2s.yaml | 1 -
.../bindings/sound/amlogic,gx-sound-card.yaml | 1 -
.../devicetree/bindings/sound/arm,pl041.yaml | 62 +
.../bindings/sound/audio-graph-card2.yaml | 3 +
.../devicetree/bindings/sound/cirrus,cs35l41.yaml | 44 +-
.../devicetree/bindings/sound/cirrus,cs35l45.yaml | 75 +
.../devicetree/bindings/sound/fsl,micfil.txt | 1 +
.../devicetree/bindings/sound/imx-audio-hdmi.yaml | 3 +
.../devicetree/bindings/sound/maxim,max98390.yaml | 5 +
.../devicetree/bindings/sound/maxim,max98520.yaml | 1 -
.../devicetree/bindings/sound/mchp,spdifrx.yaml | 2 +-
.../devicetree/bindings/sound/mchp,spdiftx.yaml | 2 +-
.../sound/mt8192-mt6359-rt1015-rt5682.yaml | 32 +
.../sound/mt8195-mt6359-rt1011-rt5682.yaml | 51 -
...t6359-rt1019-rt5682.yaml => mt8195-mt6359.yaml} | 9 +-
.../bindings/sound/nvidia,tegra-audio-rt5640.yaml | 1 -
.../bindings/sound/nvidia,tegra186-asrc.yaml | 81 +
.../bindings/sound/nvidia,tegra210-ahub.yaml | 4 +
.../devicetree/bindings/sound/qcom,lpass-cpu.yaml | 17 +-
.../bindings/sound/qcom,lpass-rx-macro.yaml | 17 +-
.../bindings/sound/qcom,lpass-tx-macro.yaml | 17 +-
.../bindings/sound/qcom,lpass-va-macro.yaml | 11 +-
.../devicetree/bindings/sound/qcom,wcd938x.yaml | 3 +
.../devicetree/bindings/sound/realtek,rt1015p.yaml | 3 +
Documentation/devicetree/bindings/sound/rt5682.txt | 2 +
.../bindings/sound/samsung,aries-wm8994.yaml | 1 -
.../devicetree/bindings/sound/samsung,odroid.yaml | 1 -
.../devicetree/bindings/sound/serial-midi.yaml | 51 +
.../devicetree/bindings/sound/tas2562.yaml | 1 -
.../devicetree/bindings/sound/tas2770.yaml | 1 -
.../bindings/sound/{tas2764.yaml => tas27xx.yaml} | 17 +-
.../bindings/sound/ti,j721e-cpb-audio.yaml | 2 -
.../devicetree/bindings/sound/wlf,wm8731.yaml | 97 +
.../devicetree/bindings/sound/wlf,wm8940.yaml | 57 +
Documentation/devicetree/bindings/sound/wm8731.txt | 27 -
.../devicetree/bindings/soundwire/qcom,sdw.txt | 14 +
.../bindings/spi/allwinner,sun6i-a31-spi.yaml | 1 +
.../bindings/spi/amlogic,meson-gx-spicc.yaml | 1 -
.../bindings/spi/amlogic,meson6-spifc.yaml | 1 -
.../bindings/spi/aspeed,ast2600-fmc.yaml | 82 +
.../devicetree/bindings/spi/ingenic,spi.yaml | 3 +
.../bindings/spi/mediatek,spi-mt65xx.yaml | 4 +
.../bindings/spi/mediatek,spi-mtk-snfi.yaml | 88 +
.../devicetree/bindings/spi/qcom,spi-geni-qcom.txt | 39 -
.../bindings/spi/qcom,spi-geni-qcom.yaml | 116 +
.../bindings/spi/qcom,spi-qcom-qspi.yaml | 4 +-
.../devicetree/bindings/spi/qcom,spi-qup.txt | 103 -
.../devicetree/bindings/spi/qcom,spi-qup.yaml | 81 +
.../devicetree/bindings/spi/renesas,hspi.yaml | 1 -
.../devicetree/bindings/spi/renesas,rspi.yaml | 2 +
.../devicetree/bindings/spi/spi-davinci.txt | 2 +-
.../devicetree/bindings/spi/spi-pl022.yaml | 2 +-
.../bindings/spmi/qcom,spmi-pmic-arb.txt | 65 -
.../bindings/spmi/qcom,spmi-pmic-arb.yaml | 117 +
.../devicetree/bindings/thermal/qcom-lmh.yaml | 1 +
.../bindings/thermal/qcom-spmi-adc-tm5.yaml | 110 +-
.../devicetree/bindings/thermal/qcom-tsens.yaml | 6 +-
.../bindings/thermal/rcar-gen3-thermal.yaml | 1 -
.../devicetree/bindings/thermal/rzg2l-thermal.yaml | 2 +
.../bindings/thermal/ti,j72xx-thermal.yaml | 63 +
.../devicetree/bindings/timer/cdns,ttc.yaml | 1 -
.../devicetree/bindings/timer/hpe,gxp-timer.yaml | 47 +
.../bindings/timer/mediatek,mtk-timer.txt | 1 +
.../devicetree/bindings/timer/rda,8810pl-timer.txt | 20 -
.../bindings/timer/rda,8810pl-timer.yaml | 47 +
.../bindings/timer/renesas,16bit-timer.txt | 25 -
.../bindings/timer/renesas,8bit-timer.txt | 25 -
.../devicetree/bindings/timer/renesas,ostm.yaml | 2 +
.../bindings/timer/samsung,exynos4210-mct.yaml | 72 +-
.../devicetree/bindings/timer/ti,timer-dm.yaml | 152 +
.../devicetree/bindings/timer/ti,timer.txt | 44 -
.../devicetree/bindings/timer/xlnx,xps-timer.yaml | 92 +
.../timestamp/hardware-timestamps-common.yaml | 29 +
.../bindings/timestamp/hte-consumer.yaml | 39 +
.../bindings/timestamp/nvidia,tegra194-hte.yaml | 88 +
.../devicetree/bindings/trivial-devices.yaml | 12 +-
.../devicetree/bindings/ufs/cdns,ufshc.yaml | 3 +
.../devicetree/bindings/usb/am33xx-usb.txt | 7 +-
.../devicetree/bindings/usb/ci-hdrc-usb2.txt | 2 +-
.../devicetree/bindings/usb/da8xx-usb.txt | 5 +-
Documentation/devicetree/bindings/usb/dwc2.yaml | 11 +-
Documentation/devicetree/bindings/usb/dwc3-st.txt | 2 +-
.../devicetree/bindings/usb/dwc3-xilinx.yaml | 4 +
Documentation/devicetree/bindings/usb/ehci-st.txt | 2 +-
.../devicetree/bindings/usb/fcs,fsa4480.yaml | 72 +
.../devicetree/bindings/usb/generic-ehci.yaml | 1 +
.../devicetree/bindings/usb/generic-ohci.yaml | 1 +
.../bindings/usb/mediatek,mt6360-tcpc.yaml | 5 +
.../devicetree/bindings/usb/mediatek,mtu3.yaml | 1 +
Documentation/devicetree/bindings/usb/ohci-st.txt | 2 +-
.../devicetree/bindings/usb/qcom,dwc3.yaml | 229 +-
.../devicetree/bindings/usb/renesas,usbhs.yaml | 4 +
.../bindings/usb/samsung,exynos-usb2.yaml | 15 +-
.../devicetree/bindings/usb/smsc,usb3503.yaml | 3 +-
.../devicetree/bindings/usb/snps,dwc3.yaml | 2 +
.../devicetree/bindings/usb/ti,am62-usb.yaml | 103 +
.../devicetree/bindings/vendor-prefixes.yaml | 13 +
.../bindings/watchdog/allwinner,sun4i-a10-wdt.yaml | 25 +-
.../devicetree/bindings/watchdog/da9062-wdt.txt | 6 +
.../bindings/watchdog/faraday,ftwdt010.txt | 22 -
.../bindings/watchdog/faraday,ftwdt010.yaml | 67 +
.../bindings/watchdog/fsl-imx7ulp-wdt.yaml | 1 +
.../devicetree/bindings/watchdog/mtk-wdt.txt | 1 +
.../devicetree/bindings/watchdog/qcom-wdt.yaml | 39 +-
.../devicetree/bindings/watchdog/renesas,wdt.yaml | 12 +-
.../bindings/watchdog/socionext,uniphier-wdt.yaml | 2 +-
.../bindings/watchdog/sunplus,sp7021-wdt.yaml | 47 +
.../devicetree/bindings/writing-bindings.rst | 25 +
.../devicetree/bindings/writing-schema.rst | 8 +
Documentation/devicetree/overlay-notes.rst | 30 +-
Documentation/doc-guide/contributing.rst | 5 +-
Documentation/doc-guide/kernel-doc.rst | 2 +
Documentation/doc-guide/sphinx.rst | 5 +-
Documentation/dontdiff | 1 +
Documentation/driver-api/dmaengine/provider.rst | 8 +-
Documentation/driver-api/driver-model/devres.rst | 2 +-
Documentation/driver-api/firmware/fw_upload.rst | 126 +
Documentation/driver-api/firmware/index.rst | 1 +
Documentation/driver-api/gpio/driver.rst | 181 +-
Documentation/driver-api/hte/hte.rst | 79 +
Documentation/driver-api/hte/index.rst | 22 +
Documentation/driver-api/hte/tegra194-hte.rst | 49 +
Documentation/driver-api/index.rst | 2 +
Documentation/driver-api/libata.rst | 11 -
Documentation/driver-api/media/cec-core.rst | 13 +-
Documentation/driver-api/media/mc-core.rst | 13 +-
Documentation/driver-api/media/v4l2-subdev.rst | 69 +
Documentation/driver-api/pwm.rst | 6 +
Documentation/driver-api/serial/driver.rst | 2 +-
Documentation/driver-api/serial/index.rst | 2 -
Documentation/driver-api/serial/n_gsm.rst | 159 -
Documentation/driver-api/thermal/intel_dptf.rst | 2 +-
Documentation/{ => driver-api}/tty/index.rst | 22 +-
.../driver-api/{serial => tty}/moxa-smartio.rst | 0
Documentation/driver-api/tty/n_gsm.rst | 153 +
Documentation/{ => driver-api}/tty/n_tty.rst | 0
Documentation/{ => driver-api}/tty/tty_buffer.rst | 0
Documentation/{ => driver-api}/tty/tty_driver.rst | 0
.../{ => driver-api}/tty/tty_internals.rst | 0
Documentation/{ => driver-api}/tty/tty_ldisc.rst | 0
Documentation/{ => driver-api}/tty/tty_port.rst | 0
Documentation/{ => driver-api}/tty/tty_struct.rst | 0
Documentation/driver-api/vfio-mediated-device.rst | 31 +-
Documentation/fault-injection/fault-injection.rst | 14 +-
.../features/core/cBPF-JIT/arch-support.txt | 2 +-
.../features/core/eBPF-JIT/arch-support.txt | 2 +-
.../core/generic-idle-thread/arch-support.txt | 2 +-
.../features/core/jump-labels/arch-support.txt | 2 +-
.../core/thread-info-in-task/arch-support.txt | 2 +-
.../features/core/tracehook/arch-support.txt | 2 +-
.../features/debug/KASAN/arch-support.txt | 2 +-
.../debug/debug-vm-pgtable/arch-support.txt | 6 +-
.../debug/gcov-profile-all/arch-support.txt | 4 +-
Documentation/features/debug/kcov/arch-support.txt | 2 +-
Documentation/features/debug/kgdb/arch-support.txt | 2 +-
.../features/debug/kmemleak/arch-support.txt | 2 +-
.../debug/kprobes-on-ftrace/arch-support.txt | 2 +-
.../features/debug/kprobes/arch-support.txt | 2 +-
.../features/debug/kretprobes/arch-support.txt | 2 +-
.../features/debug/optprobes/arch-support.txt | 2 +-
.../features/debug/stackprotector/arch-support.txt | 2 +-
.../features/debug/uprobes/arch-support.txt | 2 +-
.../debug/user-ret-profiler/arch-support.txt | 2 +-
.../features/io/dma-contiguous/arch-support.txt | 2 +-
.../locking/cmpxchg-local/arch-support.txt | 2 +-
.../features/locking/lockdep/arch-support.txt | 2 +-
.../locking/queued-rwlocks/arch-support.txt | 4 +-
.../locking/queued-spinlocks/arch-support.txt | 2 +-
.../features/perf/kprobes-event/arch-support.txt | 4 +-
.../features/perf/perf-regs/arch-support.txt | 2 +-
.../features/perf/perf-stackdump/arch-support.txt | 2 +-
.../sched/membarrier-sync-core/arch-support.txt | 2 +-
.../features/sched/numa-balancing/arch-support.txt | 2 +-
.../seccomp/seccomp-filter/arch-support.txt | 2 +-
.../time/arch-tick-broadcast/arch-support.txt | 2 +-
.../features/time/clockevents/arch-support.txt | 2 +-
.../time/context-tracking/arch-support.txt | 4 +-
.../features/time/irq-time-acct/arch-support.txt | 2 +-
.../features/time/virt-cpuacct/arch-support.txt | 4 +-
.../features/vm/ELF-ASLR/arch-support.txt | 2 +-
.../features/vm/PG_uncached/arch-support.txt | 2 +-
Documentation/features/vm/THP/arch-support.txt | 2 +-
Documentation/features/vm/TLB/arch-support.txt | 2 +-
.../features/vm/huge-vmap/arch-support.txt | 2 +-
.../features/vm/ioremap_prot/arch-support.txt | 2 +-
.../features/vm/pte_special/arch-support.txt | 4 +-
Documentation/filesystems/caching/cachefiles.rst | 178 +
Documentation/filesystems/caching/netfs-api.rst | 4 +-
Documentation/filesystems/erofs.rst | 64 +-
Documentation/filesystems/fscrypt.rst | 2 +-
Documentation/filesystems/fsverity.rst | 37 +-
Documentation/filesystems/idmappings.rst | 5 +
Documentation/filesystems/locking.rst | 58 +-
Documentation/filesystems/netfs_library.rst | 75 +-
.../filesystems/nfs/client-identifier.rst | 216 +
Documentation/filesystems/nfs/index.rst | 2 +
Documentation/filesystems/porting.rst | 2 +-
Documentation/filesystems/proc.rst | 246 +-
Documentation/filesystems/vfs.rst | 103 +-
Documentation/filesystems/zonefs.rst | 52 +-
.../firmware-guide/acpi/chromeos-acpi-device.rst | 363 +
Documentation/firmware-guide/acpi/enumeration.rst | 28 +-
Documentation/firmware-guide/acpi/index.rst | 1 +
Documentation/fpga/dfl.rst | 5 +
Documentation/hwmon/aquacomputer_d5next.rst | 7 +-
Documentation/hwmon/asus_ec_sensors.rst | 25 +-
Documentation/hwmon/dell-smm-hwmon.rst | 9 +
Documentation/hwmon/hwmon-kernel-api.rst | 18 +-
Documentation/hwmon/index.rst | 2 +
Documentation/hwmon/lan966x.rst | 40 +
Documentation/hwmon/max16601.rst | 8 +
Documentation/hwmon/xdpe152c4.rst | 118 +
Documentation/i2c/writing-clients.rst | 13 +-
Documentation/ide/ChangeLog.ide-cd.1994-2004 | 268 -
Documentation/ide/ChangeLog.ide-floppy.1996-2002 | 63 -
Documentation/ide/ChangeLog.ide-tape.1995-2002 | 257 -
Documentation/ide/changelogs.rst | 17 -
Documentation/ide/ide-tape.rst | 68 -
Documentation/ide/ide.rst | 265 -
Documentation/ide/index.rst | 21 -
Documentation/ide/warm-plug-howto.rst | 18 -
Documentation/{ => images}/COPYING-logo | 8 +
Documentation/{ => images}/logo.gif | Bin
Documentation/images/logo.svg | 2040 +
Documentation/index.rst | 3 -
Documentation/input/devices/atarikbd.rst | 4 +-
Documentation/input/devices/ntrig.rst | 2 +-
Documentation/input/input-programming.rst | 6 +-
Documentation/kbuild/kconfig-language.rst | 6 +
Documentation/kbuild/reproducible-builds.rst | 8 +-
Documentation/kernel-hacking/hacking.rst | 36 +-
Documentation/kernel-hacking/locking.rst | 5 +-
Documentation/leds/leds-qcom-lpg.rst | 78 +
Documentation/loongarch/features.rst | 3 +
Documentation/loongarch/index.rst | 21 +
Documentation/loongarch/introduction.rst | 387 +
Documentation/loongarch/irq-chip-model.rst | 156 +
Documentation/misc-devices/index.rst | 1 +
Documentation/misc-devices/oxsemi-tornado.rst | 131 +
.../networking/device_drivers/appletalk/index.rst | 1 -
.../networking/device_drivers/appletalk/ltpc.rst | 144 -
.../device_drivers/can/ctu/ctucanfd-driver.rst | 639 +
.../device_drivers/can/ctu/fsm_txt_buffer_user.svg | 151 +
.../networking/device_drivers/can/index.rst | 1 +
.../device_drivers/ethernet/dec/de4x5.rst | 189 -
.../networking/device_drivers/ethernet/index.rst | 2 +-
.../device_drivers/ethernet/marvell/octeon_ep.rst | 35 +
Documentation/networking/device_drivers/index.rst | 1 -
.../networking/device_drivers/wan/index.rst | 18 -
.../networking/device_drivers/wan/z8530book.rst | 256 -
.../networking/device_drivers/wwan/index.rst | 1 +
.../networking/device_drivers/wwan/t7xx.rst | 120 +
.../networking/devlink/devlink-linecard.rst | 122 +
Documentation/networking/devlink/index.rst | 1 +
Documentation/networking/dsa/dsa.rst | 17 +
Documentation/networking/ethtool-netlink.rst | 8 +
Documentation/networking/index.rst | 5 +-
Documentation/networking/ip-sysctl.rst | 22 +
Documentation/networking/mptcp-sysctl.rst | 18 +
Documentation/networking/nf_conntrack-sysctl.rst | 5 +-
Documentation/networking/skbuff.rst | 37 +
Documentation/power/energy-model.rst | 24 +-
Documentation/powerpc/dawr-power9.rst | 26 +-
Documentation/powerpc/kasan.txt | 58 +
Documentation/process/3.Early-stage.rst | 9 +-
Documentation/process/changes.rst | 20 +-
.../process/embargoed-hardware-issues.rst | 7 +-
Documentation/process/maintainer-tip.rst | 14 +
Documentation/process/submitting-patches.rst | 14 +-
Documentation/riscv/vm-layout.rst | 36 +
Documentation/scheduler/sched-stats.rst | 8 +-
Documentation/security/IMA-templates.rst | 11 +-
Documentation/security/index.rst | 1 +
Documentation/security/keys/trusted-encrypted.rst | 60 +-
Documentation/security/landlock.rst | 17 +-
Documentation/security/secrets/coco.rst | 103 +
Documentation/security/secrets/index.rst | 9 +
Documentation/sound/alsa-configuration.rst | 4 +-
Documentation/sphinx/kerneldoc-preamble.sty | 14 +-
Documentation/tools/rtla/Makefile | 14 +-
Documentation/tools/rtla/common_appendix.rst | 3 +-
Documentation/trace/ftrace.rst | 12 +
Documentation/trace/timerlat-tracer.rst | 5 +-
Documentation/translations/ja_JP/SubmittingPatches | 36 +-
Documentation/translations/ja_JP/howto.rst | 44 +-
Documentation/translations/ja_JP/index.rst | 2 +-
.../zh_CN/admin-guide/mm/damon/reclaim.rst | 4 +-
.../zh_CN/admin-guide/mm/damon/usage.rst | 291 +-
.../zh_CN/dev-tools/gdb-kernel-debugging.rst | 167 +
.../translations/zh_CN/dev-tools/index.rst | 2 +-
.../translations/zh_CN/devicetree/usage-model.rst | 8 +-
Documentation/translations/zh_CN/index.rst | 3 +-
Documentation/translations/zh_CN/locking/index.rst | 42 +
.../translations/zh_CN/locking/spinlocks.rst | 149 +
.../translations/zh_CN/loongarch/features.rst | 8 +
.../translations/zh_CN/loongarch/index.rst | 26 +
.../translations/zh_CN/loongarch/introduction.rst | 351 +
.../zh_CN/loongarch/irq-chip-model.rst | 155 +
Documentation/translations/zh_CN/process/howto.rst | 2 +-
.../translations/zh_CN/scheduler/index.rst | 2 +
.../translations/zh_CN/scheduler/sched-debug.rst | 51 +
.../translations/zh_CN/scheduler/schedutil.rst | 165 +
.../translations/zh_CN/vm/damon/design.rst | 7 +-
Documentation/translations/zh_CN/vm/frontswap.rst | 196 +
Documentation/translations/zh_CN/vm/hmm.rst | 361 +
.../translations/zh_CN/vm/hugetlbfs_reserv.rst | 436 +
Documentation/translations/zh_CN/vm/hwpoison.rst | 166 +
Documentation/translations/zh_CN/vm/index.rst | 29 +-
.../translations/zh_CN/vm/memory-model.rst | 135 +
.../translations/zh_CN/vm/mmu_notifier.rst | 97 +
Documentation/translations/zh_CN/vm/numa.rst | 101 +
.../zh_CN/vm/overcommit-accounting.rst | 86 +
Documentation/translations/zh_CN/vm/page_frags.rst | 38 +
Documentation/translations/zh_CN/vm/page_owner.rst | 116 +
.../translations/zh_CN/vm/page_table_check.rst | 56 +
.../translations/zh_CN/vm/remap_file_pages.rst | 32 +
.../zh_CN/vm/split_page_table_lock.rst | 96 +
Documentation/translations/zh_CN/vm/z3fold.rst | 31 +
Documentation/translations/zh_CN/vm/zsmalloc.rst | 78 +
Documentation/usb/gadget-testing.rst | 1 +
Documentation/usb/usbmon.rst | 2 +-
Documentation/userspace-api/ioctl/cdrom.rst | 6 +
Documentation/userspace-api/landlock.rst | 180 +-
.../userspace-api/media/drivers/uvcvideo.rst | 2 +-
.../userspace-api/media/lirc.h.rst.exceptions | 2 +
.../media/mediactl/media-controller-model.rst | 6 +
.../userspace-api/media/mediactl/media-types.rst | 17 +-
.../userspace-api/media/v4l/dev-decoder.rst | 9 +-
.../media/v4l/ext-ctrls-codec-stateless.rst | 10 +-
.../userspace-api/media/v4l/ext-ctrls-codec.rst | 22 +
.../userspace-api/media/v4l/pixfmt-reserved.rst | 19 +
.../userspace-api/media/v4l/pixfmt-yuv-luma.rst | 14 +-
.../userspace-api/media/v4l/subdev-formats.rst | 156 +
.../userspace-api/media/v4l/vidioc-streamon.rst | 3 +-
Documentation/userspace-api/seccomp_filter.rst | 10 +
Documentation/virt/coco/sev-guest.rst | 155 +
Documentation/virt/index.rst | 1 +
Documentation/virt/kvm/api.rst | 254 +-
Documentation/virt/kvm/arm/hypercalls.rst | 138 +
Documentation/virt/kvm/arm/index.rst | 2 +-
Documentation/virt/kvm/arm/psci.rst | 77 -
Documentation/virt/kvm/x86/mmu.rst | 4 +
Documentation/vm/arch_pgtable_helpers.rst | 10 +-
Documentation/vm/bootmem.rst | 5 +
Documentation/vm/highmem.rst | 100 +-
Documentation/vm/index.rst | 41 +-
Documentation/vm/oom.rst | 5 +
Documentation/vm/page_allocation.rst | 5 +
Documentation/vm/page_cache.rst | 5 +
Documentation/vm/page_owner.rst | 45 +-
Documentation/vm/page_reclaim.rst | 5 +
Documentation/vm/page_tables.rst | 5 +
Documentation/vm/physical_memory.rst | 5 +
Documentation/vm/process_addrs.rst | 5 +
Documentation/vm/shmfs.rst | 5 +
Documentation/vm/slab.rst | 5 +
Documentation/vm/slub.rst | 64 +
Documentation/vm/swap.rst | 5 +
Documentation/vm/vmalloc.rst | 5 +
Documentation/vm/vmemmap_dedup.rst | 223 +
Documentation/w1/slaves/w1_therm.rst | 9 +-
Documentation/x86/cpuinfo.rst | 5 +-
Documentation/x86/exception-tables.rst | 23 +-
Documentation/x86/ifs.rst | 2 +
Documentation/x86/index.rst | 4 +-
Documentation/x86/intel-iommu.rst | 115 -
Documentation/x86/iommu.rst | 151 +
Documentation/x86/tdx.rst | 218 +
Documentation/x86/x86_64/boot-options.rst | 23 +-
Documentation/x86/zero-page.rst | 2 +
MAINTAINERS | 549 +-
Makefile | 31 +-
arch/Kconfig | 43 +-
arch/alpha/include/asm/page.h | 2 +-
arch/alpha/include/asm/timex.h | 1 +
arch/alpha/include/uapi/asm/socket.h | 2 +
arch/alpha/include/uapi/asm/termbits.h | 214 +-
arch/alpha/kernel/osf_sys.c | 1 +
arch/alpha/kernel/process.c | 15 +-
arch/alpha/lib/csum_partial_copy.c | 1 -
arch/arc/Kconfig | 2 +
arch/arc/include/asm/perf_event.h | 4 +
arch/arc/include/asm/ptrace.h | 27 +
arch/arc/include/asm/syscall.h | 2 +
arch/arc/include/asm/thread_info.h | 5 +-
arch/arc/include/uapi/asm/bpf_perf_event.h | 9 +
arch/arc/kernel/disasm.c | 64 +-
arch/arc/kernel/entry.S | 12 +-
arch/arc/kernel/process.c | 13 +-
arch/arc/kernel/ptrace.c | 140 +-
arch/arm/Kconfig | 136 +-
arch/arm/Kconfig.debug | 28 +-
arch/arm/Makefile | 14 +-
.../uncompress.h => boot/compressed/misc-ep93xx.h} | 70 +-
arch/arm/boot/compressed/misc.c | 4 +
arch/arm/boot/dts/Makefile | 57 +-
arch/arm/boot/dts/am335x-baltos.dtsi | 2 +-
arch/arm/boot/dts/am335x-bone-common.dtsi | 4 +
arch/arm/boot/dts/am335x-evm.dts | 4 +
arch/arm/boot/dts/am335x-evmsk.dts | 4 +
arch/arm/boot/dts/am335x-guardian.dts | 376 +-
arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi | 2 +-
arch/arm/boot/dts/am335x-moxa-uc-8100-common.dtsi | 2 +-
arch/arm/boot/dts/am335x-myirtech-myc.dtsi | 12 +-
arch/arm/boot/dts/am335x-myirtech-myd.dts | 20 +-
arch/arm/boot/dts/am335x-phycore-som.dtsi | 2 +-
arch/arm/boot/dts/am335x-sl50.dts | 2 +-
arch/arm/boot/dts/am33xx-clocks.dtsi | 373 +-
arch/arm/boot/dts/am33xx.dtsi | 3 +
arch/arm/boot/dts/am35xx-clocks.dtsi | 52 +-
arch/arm/boot/dts/am3874-iceboard.dts | 2 +-
arch/arm/boot/dts/am437x-cm-t43.dts | 2 +-
arch/arm/boot/dts/am437x-gp-evm.dts | 5 +
arch/arm/boot/dts/am437x-idk-evm.dts | 2 +-
arch/arm/boot/dts/am437x-sk-evm.dts | 6 +-
arch/arm/boot/dts/am43x-epos-evm.dts | 6 +-
arch/arm/boot/dts/am43xx-clocks.dtsi | 339 +-
arch/arm/boot/dts/am574x-idk.dts | 2 +-
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 2 +-
arch/arm/boot/dts/am57xx-idk-common.dtsi | 2 +-
arch/arm/boot/dts/armada-370-db.dts | 2 +-
.../dts/armada-370-seagate-personal-cloud.dtsi | 2 +-
arch/arm/boot/dts/armada-370-synology-ds213j.dts | 2 +-
arch/arm/boot/dts/armada-375-db.dts | 2 +-
arch/arm/boot/dts/armada-381-netgear-gs110emx.dts | 2 +-
arch/arm/boot/dts/armada-385-atl-x530.dts | 2 +-
arch/arm/boot/dts/armada-385-clearfog-gtr.dtsi | 2 +-
arch/arm/boot/dts/armada-385-db-88f6820-amc.dts | 2 +-
arch/arm/boot/dts/armada-385-db-ap.dts | 2 +-
arch/arm/boot/dts/armada-385-synology-ds116.dts | 2 +-
arch/arm/boot/dts/armada-385-turris-omnia.dts | 8 +-
arch/arm/boot/dts/armada-388-db.dts | 2 +-
arch/arm/boot/dts/armada-388-gp.dts | 2 +-
arch/arm/boot/dts/armada-388-rd.dts | 2 +-
.../arm/boot/dts/armada-38x-solidrun-microsom.dtsi | 2 +-
arch/arm/boot/dts/armada-390-db.dts | 2 +-
arch/arm/boot/dts/armada-398-db.dts | 2 +-
arch/arm/boot/dts/armada-xp-axpwifiap.dts | 2 +-
arch/arm/boot/dts/armada-xp-crs305-1g-4s-bit.dts | 2 +-
arch/arm/boot/dts/armada-xp-crs305-1g-4s.dtsi | 2 +-
arch/arm/boot/dts/armada-xp-crs326-24g-2s-bit.dts | 2 +-
arch/arm/boot/dts/armada-xp-crs326-24g-2s.dtsi | 2 +-
.../boot/dts/armada-xp-crs328-4c-20s-4s-bit.dts | 2 +-
arch/arm/boot/dts/armada-xp-crs328-4c-20s-4s.dtsi | 2 +-
arch/arm/boot/dts/armada-xp-db-dxbc2.dts | 2 +-
arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts | 2 +-
arch/arm/boot/dts/armada-xp-db.dts | 2 +-
arch/arm/boot/dts/armada-xp-gp.dts | 2 +-
arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 2 +-
arch/arm/boot/dts/armada-xp-synology-ds414.dts | 2 +-
arch/arm/boot/dts/aspeed-ast2600-evb.dts | 39 +-
arch/arm/boot/dts/aspeed-bmc-asrock-romed8hm3.dts | 4 +-
.../arm/boot/dts/aspeed-bmc-facebook-bletchley.dts | 182 +-
arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-nuvia-dc-scm.dts | 190 +
arch/arm/boot/dts/aspeed-g4.dtsi | 16 +-
arch/arm/boot/dts/aspeed-g5.dtsi | 16 +-
arch/arm/boot/dts/aspeed-g6-pinctrl.dtsi | 10 +-
arch/arm/boot/dts/aspeed-g6.dtsi | 52 +-
arch/arm/boot/dts/at91-sama7g5ek.dts | 21 +-
arch/arm/boot/dts/at91sam9261ek.dts | 4 +
arch/arm/boot/dts/at91sam9263ek.dts | 4 +
arch/arm/boot/dts/at91sam9rlek.dts | 4 +
arch/arm/boot/dts/bcm-cygnus.dtsi | 12 +-
arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 21 +-
arch/arm/boot/dts/bcm2835-rpi-a.dts | 35 +-
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 19 +-
arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 35 +-
arch/arm/boot/dts/bcm2835-rpi-b.dts | 48 +-
arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts | 1 -
arch/arm/boot/dts/bcm2835-rpi-zero-w.dts | 25 +-
arch/arm/boot/dts/bcm2835-rpi-zero.dts | 29 +-
arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 3 +-
arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts | 1 -
arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 5 +-
arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 3 +-
arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts | 5 +-
arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi | 12 +-
arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi | 2 +-
arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi | 2 +-
.../dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi | 192 +
arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp.dts | 26 +
arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp2.dts | 26 +
arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts | 19 +-
arch/arm/boot/dts/bcm47622.dtsi | 126 +
arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 2 +-
arch/arm/boot/dts/bcm5301x.dtsi | 2 +-
arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts | 2 +-
arch/arm/boot/dts/bcm947622.dts | 30 +
arch/arm/boot/dts/bcm953012er.dts | 2 +-
arch/arm/boot/dts/bcm953012hr.dts | 2 +-
arch/arm/boot/dts/bcm953012k.dts | 2 +-
arch/arm/boot/dts/bcm958522er.dts | 2 +-
arch/arm/boot/dts/bcm958525er.dts | 2 +-
arch/arm/boot/dts/bcm958525xmc.dts | 2 +-
arch/arm/boot/dts/bcm958622hr.dts | 2 +-
arch/arm/boot/dts/bcm958623hr.dts | 2 +-
arch/arm/boot/dts/bcm958625hr.dts | 2 +-
arch/arm/boot/dts/bcm958625k.dts | 2 +-
arch/arm/boot/dts/bcm988312hr.dts | 2 +-
arch/arm/boot/dts/da850.dtsi | 2 +
arch/arm/boot/dts/dm814x.dtsi | 3 +
arch/arm/boot/dts/dm816x.dtsi | 3 +
arch/arm/boot/dts/dove-cubox.dts | 2 +-
arch/arm/boot/dts/dove-d2plug.dts | 2 +-
arch/arm/boot/dts/dove-d3plug.dts | 2 +-
arch/arm/boot/dts/dove-dove-db.dts | 2 +-
arch/arm/boot/dts/dra7-evm-common.dtsi | 2 +-
arch/arm/boot/dts/dra72-evm-common.dtsi | 2 +-
arch/arm/boot/dts/dra76-evm.dts | 2 +-
arch/arm/boot/dts/dra7xx-clocks.dtsi | 693 +-
arch/arm/boot/dts/exynos3250.dtsi | 7 +-
arch/arm/boot/dts/exynos4.dtsi | 10 +-
arch/arm/boot/dts/exynos4210-universal_c210.dts | 2 -
arch/arm/boot/dts/exynos4412-odroidu3.dts | 4 +-
arch/arm/boot/dts/exynos4412-odroidx.dts | 8 +-
arch/arm/boot/dts/exynos5250-smdk5250.dts | 4 +-
arch/arm/boot/dts/exynos5250.dtsi | 16 +-
arch/arm/boot/dts/exynos5260.dtsi | 3 +-
arch/arm/boot/dts/exynos5410-odroidxu.dts | 4 +-
arch/arm/boot/dts/exynos5410.dtsi | 4 -
arch/arm/boot/dts/exynos5420.dtsi | 10 -
arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 7 +-
arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts | 6 +-
arch/arm/boot/dts/exynos5422-odroidxu3.dts | 6 +-
arch/arm/boot/dts/exynos54xx.dtsi | 3 +-
arch/arm/boot/dts/hpe-bmc-dl360gen10.dts | 26 +
arch/arm/boot/dts/hpe-gxp.dtsi | 127 +
arch/arm/boot/dts/imx27.dtsi | 2 +-
arch/arm/boot/dts/imx28-evk.dts | 2 +-
arch/arm/boot/dts/imx28-m28evk.dts | 2 +-
arch/arm/boot/dts/imx28-sps1.dts | 2 +-
arch/arm/boot/dts/imx51-digi-connectcore-jsk.dts | 8 +
arch/arm/boot/dts/imx51-digi-connectcore-som.dtsi | 25 +-
arch/arm/boot/dts/imx51.dtsi | 6 +
arch/arm/boot/dts/imx6dl-colibri-aster.dts | 113 +
arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts | 110 +-
arch/arm/boot/dts/imx6dl-colibri-iris-v2.dts | 46 +
arch/arm/boot/dts/imx6dl-colibri-iris.dts | 152 +
arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts | 31 -
arch/arm/boot/dts/imx6dl-eckelmann-ci4x10.dts | 6 +-
arch/arm/boot/dts/imx6dl-plybas.dts | 2 +-
arch/arm/boot/dts/imx6dl-rex-basic.dts | 2 +-
arch/arm/boot/dts/imx6dl-victgo.dts | 657 +-
arch/arm/boot/dts/imx6dl-vicut1.dts | 1 +
arch/arm/boot/dts/imx6q-ba16.dtsi | 2 +-
arch/arm/boot/dts/imx6q-bosch-acc.dts | 779 +
arch/arm/boot/dts/imx6q-bx50v3.dtsi | 2 +-
arch/arm/boot/dts/imx6q-cm-fx6.dts | 2 +-
arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts | 2 +-
arch/arm/boot/dts/imx6q-dms-ba16.dts | 2 +-
arch/arm/boot/dts/imx6q-gw5400-a.dts | 2 +-
arch/arm/boot/dts/imx6q-marsboard.dts | 2 +-
arch/arm/boot/dts/imx6q-rex-pro.dts | 2 +-
arch/arm/boot/dts/imx6q-vicut1.dts | 5 +-
arch/arm/boot/dts/imx6qdl-aristainetos.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi | 44 -
arch/arm/boot/dts/imx6qdl-colibri.dtsi | 771 +-
arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi | 4 +-
arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-sabresd.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-sr-som.dtsi | 10 +
arch/arm/boot/dts/imx6qdl-tx6.dtsi | 5 -
arch/arm/boot/dts/imx6qdl-udoo.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-vicut1-12inch.dtsi | 128 +
arch/arm/boot/dts/imx6qdl-vicut1.dtsi | 261 +-
arch/arm/boot/dts/imx6qp-vicutp.dts | 1 +
arch/arm/boot/dts/imx6sl-evk.dts | 2 +-
arch/arm/boot/dts/imx6sl.dtsi | 2 +-
arch/arm/boot/dts/imx6sx-nitrogen6sx.dts | 2 +-
arch/arm/boot/dts/imx6sx-sdb-reva.dts | 4 +-
arch/arm/boot/dts/imx6sx-sdb.dts | 4 +-
arch/arm/boot/dts/imx6ul-14x14-evk.dtsi | 2 +-
arch/arm/boot/dts/imx6ul-kontron-n6310-som.dtsi | 2 +-
arch/arm/boot/dts/imx6ul-kontron-n6311-som.dtsi | 2 +-
arch/arm/boot/dts/imx6ul-kontron-n6x1x-s.dtsi | 2 +-
.../boot/dts/imx6ul-kontron-n6x1x-som-common.dtsi | 2 +-
.../boot/dts/imx6ul-phytec-segin-peb-av-02.dtsi | 3 +-
arch/arm/boot/dts/imx6ul-tqma6ul-common.dtsi | 211 +
arch/arm/boot/dts/imx6ul-tqma6ul1-mba6ulx.dts | 55 +
arch/arm/boot/dts/imx6ul-tqma6ul1.dtsi | 37 +
arch/arm/boot/dts/imx6ul-tqma6ul2-mba6ulx.dts | 15 +
arch/arm/boot/dts/imx6ul-tqma6ul2.dtsi | 71 +
arch/arm/boot/dts/imx6ul-tqma6ul2l-mba6ulx.dts | 15 +
arch/arm/boot/dts/imx6ul-tqma6ul2l.dtsi | 71 +
arch/arm/boot/dts/imx6ul-tqma6ulx-common.dtsi | 43 +
arch/arm/boot/dts/imx6ul-tqma6ulxl-common.dtsi | 48 +
arch/arm/boot/dts/imx6ull-colibri-aster.dts | 20 +
arch/arm/boot/dts/imx6ull-colibri-aster.dtsi | 145 +
arch/arm/boot/dts/imx6ull-colibri-emmc-aster.dts | 17 +
arch/arm/boot/dts/imx6ull-colibri-emmc-iris-v2.dts | 17 +
arch/arm/boot/dts/imx6ull-colibri-emmc-iris.dts | 17 +
.../arm/boot/dts/imx6ull-colibri-emmc-nonwifi.dtsi | 8 +-
arch/arm/boot/dts/imx6ull-colibri-eval-v3.dts | 6 +-
arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi | 63 +-
arch/arm/boot/dts/imx6ull-colibri-iris-v2.dts | 65 +
arch/arm/boot/dts/imx6ull-colibri-iris-v2.dtsi | 27 +
arch/arm/boot/dts/imx6ull-colibri-iris.dts | 20 +
arch/arm/boot/dts/imx6ull-colibri-iris.dtsi | 132 +
arch/arm/boot/dts/imx6ull-colibri-nonwifi.dtsi | 145 +-
arch/arm/boot/dts/imx6ull-colibri-wifi-aster.dts | 20 +
arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dts | 4 +-
arch/arm/boot/dts/imx6ull-colibri-wifi-iris-v2.dts | 65 +
arch/arm/boot/dts/imx6ull-colibri-wifi-iris.dts | 20 +
arch/arm/boot/dts/imx6ull-colibri-wifi.dtsi | 144 +-
arch/arm/boot/dts/imx6ull-colibri.dtsi | 285 +-
arch/arm/boot/dts/imx6ull-kontron-n6411-som.dtsi | 2 +-
arch/arm/boot/dts/imx6ull-phytec-tauri-emmc.dts | 20 +
arch/arm/boot/dts/imx6ull-phytec-tauri-nand.dts | 20 +
arch/arm/boot/dts/imx6ull-phytec-tauri.dtsi | 588 +
arch/arm/boot/dts/imx6ull-tqma6ull2-mba6ulx.dts | 15 +
arch/arm/boot/dts/imx6ull-tqma6ull2.dtsi | 76 +
arch/arm/boot/dts/imx6ull-tqma6ull2l-mba6ulx.dts | 15 +
arch/arm/boot/dts/imx6ull-tqma6ull2l.dtsi | 76 +
arch/arm/boot/dts/imx7d-smegw01.dts | 469 +
arch/arm/boot/dts/imx7s.dtsi | 2 +-
arch/arm/boot/dts/imxrt1050-evk.dts | 72 +
arch/arm/boot/dts/imxrt1050.dtsi | 160 +
arch/arm/boot/dts/keystone-k2e-evm.dts | 4 +-
arch/arm/boot/dts/keystone-k2g-evm.dts | 2 +-
arch/arm/boot/dts/keystone-k2g-ice.dts | 2 +-
arch/arm/boot/dts/keystone-k2hk-evm.dts | 4 +-
arch/arm/boot/dts/keystone-k2l-evm.dts | 4 +-
arch/arm/boot/dts/kirkwood-dir665.dts | 2 +-
arch/arm/boot/dts/kirkwood-synology.dtsi | 2 +-
.../dts/lan966x-kontron-kswitch-d10-mmt-6g-2gs.dts | 94 +
.../dts/lan966x-kontron-kswitch-d10-mmt-8g.dts | 39 +
.../boot/dts/lan966x-kontron-kswitch-d10-mmt.dtsi | 190 +
arch/arm/boot/dts/lan966x-pcb8291.dts | 2 +-
arch/arm/boot/dts/lan966x.dtsi | 353 +-
arch/arm/boot/dts/logicpd-som-lv.dtsi | 10 +-
arch/arm/boot/dts/ls1021a-iot.dts | 227 +
arch/arm/boot/dts/ls1021a.dtsi | 6 +-
arch/arm/boot/dts/mba6ulx.dtsi | 569 +
arch/arm/boot/dts/meson8-minix-neo-x8.dts | 2 +-
arch/arm/boot/dts/mmp2.dtsi | 2 +
arch/arm/boot/dts/mt2701.dtsi | 2 -
arch/arm/boot/dts/mt7623n.dtsi | 5 -
arch/arm/boot/dts/nspire-classic.dtsi | 10 +-
arch/arm/boot/dts/nspire-cx.dts | 4 +-
arch/arm/boot/dts/nspire.dtsi | 60 +-
arch/arm/boot/dts/nuvoton-npcm730-gbs.dts | 6 +-
arch/arm/boot/dts/nuvoton-npcm730-gsj.dts | 2 +-
arch/arm/boot/dts/nuvoton-npcm730-kudo.dts | 6 +-
arch/arm/boot/dts/nuvoton-npcm750-evb.dts | 8 +-
.../boot/dts/nuvoton-npcm750-runbmc-olympus.dts | 6 +-
arch/arm/boot/dts/omap3-beagle-xm.dts | 2 +-
arch/arm/boot/dts/omap3430es1-clocks.dtsi | 184 +-
arch/arm/boot/dts/omap34xx-omap36xx-clocks.dtsi | 275 +-
.../omap36xx-am35xx-omap3430es2plus-clocks.dtsi | 79 +-
arch/arm/boot/dts/omap36xx-clocks.dtsi | 17 +-
.../boot/dts/omap36xx-omap3430es2plus-clocks.dtsi | 136 +-
arch/arm/boot/dts/omap3xxx-clocks.dtsi | 2044 +-
arch/arm/boot/dts/omap4-panda-common.dtsi | 2 +-
arch/arm/boot/dts/omap443x-clocks.dtsi | 1 +
arch/arm/boot/dts/omap446x-clocks.dtsi | 2 +
arch/arm/boot/dts/omap44xx-clocks.dtsi | 173 +-
arch/arm/boot/dts/omap5-igep0050.dts | 2 +-
arch/arm/boot/dts/omap5-uevm.dts | 2 +-
arch/arm/boot/dts/omap54xx-clocks.dtsi | 160 +-
arch/arm/boot/dts/ox820.dtsi | 2 +-
arch/arm/boot/dts/pxa25x.dtsi | 5 +-
arch/arm/boot/dts/pxa27x.dtsi | 5 +-
arch/arm/boot/dts/pxa3xx.dtsi | 5 +-
arch/arm/boot/dts/qcom-apq8026-asus-sparrow.dts | 294 +
...dts => qcom-apq8064-sony-xperia-lagan-yuga.dts} | 0
arch/arm/boot/dts/qcom-apq8064.dtsi | 16 +-
arch/arm/boot/dts/qcom-apq8074-dragonboard.dts | 582 +-
arch/arm/boot/dts/qcom-apq8084.dtsi | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi | 4 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c1.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1.dtsi | 4 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1.dtsi | 4 +-
arch/arm/boot/dts/qcom-ipq4019.dtsi | 44 +-
arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi | 2 +-
arch/arm/boot/dts/qcom-ipq8064.dtsi | 12 +-
arch/arm/boot/dts/qcom-mdm9615.dtsi | 4 +-
arch/arm/boot/dts/qcom-msm8226.dtsi | 9 +
arch/arm/boot/dts/qcom-msm8660.dtsi | 1 +
arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts | 409 -
.../dts/qcom-msm8974-lge-nexus5-hammerhead.dts | 1052 +-
arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts | 908 -
.../boot/dts/qcom-msm8974-sony-xperia-amami.dts | 435 -
.../boot/dts/qcom-msm8974-sony-xperia-castor.dts | 723 -
.../boot/dts/qcom-msm8974-sony-xperia-honami.dts | 484 -
.../dts/qcom-msm8974-sony-xperia-rhine-amami.dts | 13 +
.../dts/qcom-msm8974-sony-xperia-rhine-honami.dts | 7 +
.../boot/dts/qcom-msm8974-sony-xperia-rhine.dtsi | 457 +
arch/arm/boot/dts/qcom-msm8974.dtsi | 1916 +-
.../arm/boot/dts/qcom-msm8974pro-fairphone-fp2.dts | 432 +
arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts | 813 +
.../qcom-msm8974pro-sony-xperia-shinano-castor.dts | 608 +
arch/arm/boot/dts/qcom-msm8974pro.dtsi | 32 +-
arch/arm/boot/dts/qcom-pm8226.dtsi | 41 +
arch/arm/boot/dts/qcom-pm8941.dtsi | 2 +-
arch/arm/boot/dts/qcom-pmx65.dtsi | 32 +
arch/arm/boot/dts/qcom-sdx55.dtsi | 20 +-
arch/arm/boot/dts/qcom-sdx65-mtp.dts | 221 +
arch/arm/boot/dts/qcom-sdx65.dtsi | 193 +-
arch/arm/boot/dts/r8a7743.dtsi | 1 +
arch/arm/boot/dts/r8a7744.dtsi | 1 +
arch/arm/boot/dts/r8a7745.dtsi | 1 +
arch/arm/boot/dts/r8a77470.dtsi | 1 +
arch/arm/boot/dts/r8a7790.dtsi | 1 +
arch/arm/boot/dts/r8a7791.dtsi | 1 +
arch/arm/boot/dts/r8a7792.dtsi | 1 +
arch/arm/boot/dts/r8a7793.dtsi | 1 +
arch/arm/boot/dts/r8a7794.dtsi | 1 +
arch/arm/boot/dts/r9a06g032.dtsi | 113 +-
arch/arm/boot/dts/rk3036.dtsi | 6 +-
arch/arm/boot/dts/rk3066a.dtsi | 3 +-
arch/arm/boot/dts/rk3188-bqedison2qc.dts | 3 +-
arch/arm/boot/dts/rk3188.dtsi | 3 +-
arch/arm/boot/dts/rk322x.dtsi | 4 +-
arch/arm/boot/dts/rk3288.dtsi | 2 +
arch/arm/boot/dts/rv1108.dtsi | 31 +-
arch/arm/boot/dts/s5pv210-aquila.dts | 3 +-
arch/arm/boot/dts/s5pv210-aries.dtsi | 11 +-
arch/arm/boot/dts/s5pv210-goni.dts | 6 +-
arch/arm/boot/dts/s5pv210.dtsi | 46 +-
arch/arm/boot/dts/sam9x60.dtsi | 2 +-
arch/arm/boot/dts/sama7g5.dtsi | 27 +-
arch/arm/boot/dts/socfpga.dtsi | 4 +-
arch/arm/boot/dts/socfpga_arria10.dtsi | 4 +-
arch/arm/boot/dts/socfpga_arria10_socdk_qspi.dts | 2 +-
arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 2 +-
arch/arm/boot/dts/socfpga_cyclone5_sodia.dts | 2 +-
arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts | 4 +-
arch/arm/boot/dts/ste-dbx5x0.dtsi | 12 +-
arch/arm/boot/dts/ste-ux500-samsung-codina-tmo.dts | 785 +
arch/arm/boot/dts/ste-ux500-samsung-codina.dts | 80 +-
arch/arm/boot/dts/ste-ux500-samsung-gavini.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-golden.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-janice.dts | 44 +-
arch/arm/boot/dts/ste-ux500-samsung-kyle.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-skomer.dts | 35 +-
arch/arm/boot/dts/stm32f4-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/stm32f7-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/stm32h743.dtsi | 2 +-
arch/arm/boot/dts/stm32mp131.dtsi | 19 +-
arch/arm/boot/dts/stm32mp135f-dk.dts | 29 +
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 64 +
arch/arm/boot/dts/stm32mp151.dtsi | 45 +-
arch/arm/boot/dts/stm32mp151a-prtt1a.dts | 52 +
arch/arm/boot/dts/stm32mp151a-prtt1c.dts | 304 +
arch/arm/boot/dts/stm32mp151a-prtt1l.dtsi | 229 +
arch/arm/boot/dts/stm32mp151a-prtt1s.dts | 63 +
arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts | 86 +
arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts | 95 +
arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts | 91 +
arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts | 100 +
arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi | 22 +-
arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi | 1 +
arch/arm/boot/dts/sun8i-h3-nanopi.dtsi | 1 -
arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts | 31 +
arch/arm/boot/dts/suniv-f1c100s.dtsi | 104 +-
arch/arm/boot/dts/zynq-7000.dtsi | 2 -
arch/arm/boot/install.sh | 21 -
arch/arm/common/locomo.c | 1 -
arch/arm/common/sa1111.c | 5 +-
arch/arm/configs/am200epdkit_defconfig | 1 +
arch/arm/configs/at91_dt_defconfig | 4 +-
arch/arm/configs/cm_x300_defconfig | 1 +
arch/arm/configs/colibri_pxa270_defconfig | 1 +
arch/arm/configs/colibri_pxa300_defconfig | 1 +
arch/arm/configs/corgi_defconfig | 1 +
arch/arm/configs/dove_defconfig | 2 +
arch/arm/configs/ep93xx_defconfig | 2 +
arch/arm/configs/eseries_pxa_defconfig | 1 +
arch/arm/configs/ezx_defconfig | 1 +
arch/arm/configs/h5000_defconfig | 1 +
arch/arm/configs/imx_v6_v7_defconfig | 1 +
arch/arm/configs/iop32x_defconfig | 1 +
arch/arm/configs/ixp4xx_defconfig | 88 +-
arch/arm/configs/lpc18xx_defconfig | 1 -
arch/arm/configs/lpd270_defconfig | 1 +
arch/arm/configs/lubbock_defconfig | 1 +
arch/arm/configs/magician_defconfig | 1 +
arch/arm/configs/mainstone_defconfig | 1 +
arch/arm/configs/mini2440_defconfig | 5 +-
arch/arm/configs/mps2_defconfig | 1 -
arch/arm/configs/multi_v5_defconfig | 3 +-
arch/arm/configs/multi_v7_defconfig | 23 +
arch/arm/configs/omap1_defconfig | 3 +
arch/arm/configs/omap2plus_defconfig | 3 +
arch/arm/configs/palmz72_defconfig | 1 +
arch/arm/configs/pcm027_defconfig | 1 +
arch/arm/configs/pxa255-idp_defconfig | 1 +
arch/arm/configs/pxa3xx_defconfig | 1 +
arch/arm/configs/pxa_defconfig | 1 +
arch/arm/configs/qcom_defconfig | 8 +
arch/arm/configs/s3c2410_defconfig | 5 +
arch/arm/configs/sama5_defconfig | 3 +-
arch/arm/configs/sama7_defconfig | 8 +
arch/arm/configs/shmobile_defconfig | 4 +-
arch/arm/configs/spitz_defconfig | 1 +
arch/arm/configs/stm32_defconfig | 1 -
arch/arm/configs/tct_hammer_defconfig | 2 +
arch/arm/configs/trizeps4_defconfig | 1 +
arch/arm/configs/vf610m4_defconfig | 1 -
arch/arm/configs/viper_defconfig | 1 +
arch/arm/configs/xcep_defconfig | 1 +
arch/arm/configs/zeus_defconfig | 1 +
arch/arm/include/asm/arch_gicv3.h | 7 +-
arch/arm/include/asm/assembler.h | 28 +-
arch/arm/include/asm/hardware/sa1111.h | 2 -
arch/arm/include/asm/io.h | 30 +-
arch/arm/include/asm/module.h | 17 +-
arch/arm/include/asm/timex.h | 1 +
arch/arm/include/asm/unwind.h | 1 +
.../include/asm/xen/{page-coherent.h => xen-ops.h} | 2 +-
arch/arm/kernel/crash_dump.c | 27 +-
arch/arm/kernel/entry-armv.S | 90 +-
arch/arm/kernel/entry-common.S | 12 +-
arch/arm/kernel/entry-header.S | 3 +-
arch/arm/kernel/ftrace.c | 6 +-
arch/arm/kernel/hw_breakpoint.c | 26 +
arch/arm/kernel/module.c | 78 +-
arch/arm/kernel/process.c | 12 +-
arch/arm/kernel/reboot.c | 4 +-
arch/arm/kernel/signal.c | 1 +
arch/arm/mach-asm9260/Kconfig | 1 +
arch/arm/mach-aspeed/Kconfig | 2 +-
arch/arm/mach-at91/Kconfig | 21 +-
arch/arm/mach-at91/Makefile | 2 +-
arch/arm/mach-at91/pm.c | 431 +-
arch/arm/mach-at91/sam_secure.c | 46 +
arch/arm/mach-at91/sam_secure.h | 18 +
arch/arm/mach-at91/sama5.c | 2 +
arch/arm/mach-bcm/Kconfig | 12 +
arch/arm/mach-bcm/platsmp-brcmstb.c | 2 +-
arch/arm/mach-clps711x/Kconfig | 1 +
arch/arm/mach-davinci/Kconfig | 1 +
arch/arm/mach-davinci/Makefile | 4 +-
arch/arm/mach-davinci/board-da830-evm.c | 10 +-
arch/arm/mach-davinci/board-da850-evm.c | 7 +-
arch/arm/mach-davinci/board-dm355-evm.c | 5 +-
arch/arm/mach-davinci/board-dm355-leopard.c | 5 +-
arch/arm/mach-davinci/board-dm365-evm.c | 6 +-
arch/arm/mach-davinci/board-dm644x-evm.c | 16 +-
arch/arm/mach-davinci/board-dm646x-evm.c | 9 +-
arch/arm/mach-davinci/board-mityomapl138.c | 8 +-
arch/arm/mach-davinci/board-neuros-osd2.c | 7 +-
arch/arm/mach-davinci/board-omapl138-hawk.c | 6 +-
arch/arm/mach-davinci/board-sffsdr.c | 6 +-
arch/arm/mach-davinci/common.c | 4 +-
arch/arm/mach-davinci/{include/mach => }/common.h | 0
arch/arm/mach-davinci/{include/mach => }/cputype.h | 2 +-
arch/arm/mach-davinci/da830.c | 11 +-
arch/arm/mach-davinci/da850.c | 12 +-
arch/arm/mach-davinci/da8xx-dt.c | 4 +-
arch/arm/mach-davinci/{include/mach => }/da8xx.h | 5 +-
arch/arm/mach-davinci/davinci.h | 3 +-
arch/arm/mach-davinci/devices-da8xx.c | 7 +-
arch/arm/mach-davinci/devices.c | 7 +-
arch/arm/mach-davinci/dm355.c | 12 +-
arch/arm/mach-davinci/dm365.c | 12 +-
arch/arm/mach-davinci/dm644x.c | 12 +-
arch/arm/mach-davinci/dm646x.c | 12 +-
.../arm/mach-davinci/{include/mach => }/hardware.h | 0
arch/arm/mach-davinci/include/mach/mux.h | 990 -
arch/arm/mach-davinci/include/mach/uncompress.h | 97 -
arch/arm/mach-davinci/mux.c | 4 +-
arch/arm/mach-davinci/mux.h | 969 +-
arch/arm/mach-davinci/pdata-quirks.c | 4 +-
arch/arm/mach-davinci/pm.c | 9 +-
arch/arm/mach-davinci/{include/mach => }/pm.h | 0
arch/arm/mach-davinci/serial.c | 4 +-
arch/arm/mach-davinci/{include/mach => }/serial.h | 2 +-
arch/arm/mach-davinci/sram.c | 2 +-
arch/arm/mach-davinci/usb-da8xx.c | 7 +-
arch/arm/mach-davinci/usb.c | 5 +-
arch/arm/mach-dove/Kconfig | 16 +-
arch/arm/mach-dove/Makefile | 2 +
arch/arm/mach-dove/include/mach/uncompress.h | 34 -
arch/arm/mach-ep93xx/Kconfig | 13 +
arch/arm/mach-ep93xx/adssphere.c | 1 +
arch/arm/mach-ep93xx/clock.c | 10 +-
arch/arm/mach-ep93xx/core.c | 5 +-
arch/arm/mach-ep93xx/edb93xx.c | 8 +
.../mach-ep93xx/{include/mach => }/ep93xx-regs.h | 4 -
arch/arm/mach-ep93xx/gesbc9312.c | 1 +
arch/arm/mach-ep93xx/gpio-ep93xx.h | 2 +-
arch/arm/mach-ep93xx/include/mach/irqs.h | 79 -
arch/arm/mach-ep93xx/irqs.h | 76 +
arch/arm/mach-ep93xx/micro9.c | 4 +
arch/arm/mach-ep93xx/simone.c | 1 +
arch/arm/mach-ep93xx/snappercl15.c | 1 +
arch/arm/mach-ep93xx/soc.h | 3 +-
arch/arm/mach-ep93xx/ts72xx.c | 5 +-
arch/arm/mach-ep93xx/vision_ep9307.c | 1 +
arch/arm/mach-exynos/Kconfig | 1 -
arch/arm/mach-gemini/Kconfig | 1 +
arch/arm/mach-highbank/Kconfig | 1 -
arch/arm/mach-hisi/Kconfig | 2 +-
arch/arm/mach-hisi/platsmp.c | 4 +
arch/arm/mach-hpe/Kconfig | 23 +
arch/arm/mach-hpe/Makefile | 1 +
arch/arm/mach-hpe/gxp.c | 16 +
arch/arm/mach-imx/Kconfig | 4 +-
arch/arm/mach-integrator/Kconfig | 125 -
arch/arm/mach-integrator/Makefile | 10 -
arch/arm/mach-iop32x/Kconfig | 18 +-
arch/arm/mach-iop32x/em7210.c | 1 +
arch/arm/mach-iop32x/glantank.c | 1 +
arch/arm/mach-iop32x/include/mach/irqs.h | 14 -
arch/arm/mach-iop32x/include/mach/uncompress.h | 25 -
arch/arm/mach-iop32x/iq31244.c | 1 +
arch/arm/mach-iop32x/iq80321.c | 1 +
arch/arm/mach-iop32x/irqs.h | 2 +
arch/arm/mach-iop32x/n2100.c | 1 +
arch/arm/mach-ixp4xx/Kconfig | 29 +-
arch/arm/mach-ixp4xx/Makefile.boot | 4 -
arch/arm/mach-ixp4xx/include/mach/uncompress.h | 54 -
arch/arm/mach-keystone/Kconfig | 1 -
arch/arm/mach-lpc32xx/Kconfig | 1 +
arch/arm/mach-mediatek/Kconfig | 1 +
arch/arm/mach-mmp/Kconfig | 12 +-
arch/arm/mach-mmp/Makefile | 3 -
arch/arm/mach-mmp/devices.c | 2 +-
arch/arm/mach-mmp/devices.h | 10 +-
arch/arm/mach-mmp/mfp.h | 2 +-
arch/arm/mach-mmp/mmp2.h | 48 +-
arch/arm/mach-mmp/pxa168.h | 60 +-
arch/arm/mach-mmp/pxa910.h | 38 +-
arch/arm/mach-mmp/tavorevb.c | 113 -
arch/arm/mach-mmp/ttc_dkb.c | 6 +-
arch/arm/mach-moxart/Kconfig | 1 +
arch/arm/mach-mv78xx0/Kconfig | 1 +
arch/arm/mach-mvebu/Kconfig | 3 +-
arch/arm/mach-mxs/Kconfig | 1 +
arch/arm/mach-nomadik/Kconfig | 2 +-
arch/arm/mach-npcm/Kconfig | 2 +-
arch/arm/mach-nspire/Kconfig | 1 +
arch/arm/mach-omap1/Kconfig | 73 +
arch/arm/mach-omap1/Makefile | 6 +-
arch/arm/mach-omap1/ams-delta-fiq-handler.S | 3 +-
arch/arm/mach-omap1/ams-delta-fiq.c | 2 +
arch/arm/mach-omap1/ams-delta-fiq.h | 2 +-
arch/arm/mach-omap1/board-ams-delta.c | 20 +-
arch/arm/mach-omap1/board-fsample.c | 10 +-
arch/arm/mach-omap1/board-generic.c | 8 +-
arch/arm/mach-omap1/board-h2.c | 14 +-
arch/arm/mach-omap1/board-h3.c | 16 +-
arch/arm/mach-omap1/board-htcherald.c | 12 +-
arch/arm/mach-omap1/board-innovator.c | 34 +-
arch/arm/mach-omap1/board-nokia770.c | 8 +-
arch/arm/mach-omap1/board-osk.c | 49 +-
arch/arm/mach-omap1/board-palmte.c | 14 +-
arch/arm/mach-omap1/board-palmtt.c | 14 +-
arch/arm/mach-omap1/board-palmz71.c | 14 +-
arch/arm/mach-omap1/board-perseus2.c | 15 +-
arch/arm/mach-omap1/board-sx1-mmc.c | 3 +-
arch/arm/mach-omap1/board-sx1.c | 12 +-
arch/arm/mach-omap1/clock.c | 797 +-
arch/arm/mach-omap1/clock.h | 191 +-
arch/arm/mach-omap1/clock_data.c | 510 +-
arch/arm/mach-omap1/common.h | 3 +-
arch/arm/mach-omap1/devices.c | 12 +-
arch/arm/mach-omap1/dma.c | 2 +-
arch/arm/mach-omap1/fb.c | 19 +-
arch/arm/mach-omap1/flash.c | 5 +-
arch/arm/mach-omap1/fpga.c | 3 +-
arch/arm/mach-omap1/gpio15xx.c | 3 +-
arch/arm/mach-omap1/gpio16xx.c | 5 +-
arch/arm/mach-omap1/gpio7xx.c | 3 +-
arch/arm/mach-omap1/{include/mach => }/hardware.h | 136 +-
arch/arm/mach-omap1/i2c.c | 4 +-
arch/arm/mach-omap1/id.c | 5 +-
arch/arm/mach-omap1/include/mach/io.h | 45 -
arch/arm/mach-omap1/include/mach/lcdc.h | 44 -
arch/arm/mach-omap1/include/mach/memory.h | 12 -
arch/arm/mach-omap1/include/mach/uncompress.h | 117 -
arch/arm/mach-omap1/io.c | 12 +-
arch/arm/mach-omap1/irq.c | 4 +-
arch/arm/mach-omap1/{include/mach => }/irqs.h | 2 -
arch/arm/mach-omap1/mcbsp.c | 17 +-
arch/arm/mach-omap1/{include/mach => }/mtd-xip.h | 3 +-
arch/arm/mach-omap1/mux.c | 6 +-
arch/arm/mach-omap1/mux.h | 144 +
arch/arm/mach-omap1/ocpi.c | 8 +-
.../arm/{plat-omap/dma.c => mach-omap1/omap-dma.c} | 269 +-
arch/arm/mach-omap1/{include/mach => }/omap1510.h | 0
arch/arm/mach-omap1/{include/mach => }/omap16xx.h | 0
arch/arm/mach-omap1/{include/mach => }/omap7xx.h | 0
arch/arm/mach-omap1/pm.c | 9 +-
arch/arm/mach-omap1/pm.h | 2 +
arch/arm/mach-omap1/reset.c | 3 +-
arch/arm/mach-omap1/serial.c | 10 +-
arch/arm/mach-omap1/{include/mach => }/serial.h | 0
arch/arm/mach-omap1/sleep.S | 2 +-
arch/arm/mach-omap1/soc.h | 6 +-
arch/arm/mach-omap1/sram-init.c | 91 +-
arch/arm/mach-omap1/sram.S | 4 +-
arch/arm/mach-omap1/sram.h | 4 +-
arch/arm/mach-omap1/{include/mach => }/tc.h | 2 -
arch/arm/mach-omap1/time.c | 7 +-
arch/arm/mach-omap1/timer.c | 1 +
arch/arm/mach-omap1/timer32k.c | 100 +-
arch/arm/mach-omap1/usb.c | 8 +-
arch/arm/mach-omap1/usb.h | 25 +
arch/arm/mach-omap2/Kconfig | 49 +
arch/arm/mach-omap2/Makefile | 3 -
arch/arm/mach-omap2/cm_common.c | 8 +-
arch/arm/mach-omap2/common.h | 13 +-
arch/arm/mach-omap2/control.c | 19 +-
arch/arm/mach-omap2/dma.c | 1 +
arch/arm/mach-omap2/include/mach/hardware.h | 3 -
arch/arm/mach-omap2/include/mach/irqs.h | 3 -
arch/arm/mach-omap2/include/mach/serial.h | 66 -
arch/arm/mach-omap2/omap-iommu.c | 1 +
arch/arm/mach-omap2/omap-secure.c | 2 +-
arch/arm/mach-omap2/omap-secure.h | 2 +-
arch/arm/mach-omap2/omap4-common.c | 2 +-
arch/arm/mach-omap2/omap_device.c | 20 -
arch/arm/mach-omap2/omap_device.h | 1 -
arch/arm/mach-omap2/pdata-quirks.c | 11 -
arch/arm/mach-omap2/prm_common.c | 8 +-
arch/arm/mach-omap2/serial.h | 67 +-
arch/arm/mach-omap2/sram.c | 91 +-
arch/arm/mach-omap2/sram.h | 5 +-
arch/arm/mach-orion5x/Kconfig | 1 +
arch/arm/mach-orion5x/dns323-setup.c | 4 +-
arch/arm/mach-oxnas/Kconfig | 2 +-
arch/arm/mach-pxa/Kconfig | 15 +
arch/arm/mach-pxa/Makefile | 18 +-
arch/arm/mach-pxa/{include/mach => }/addr-map.h | 0
arch/arm/mach-pxa/am300epd.c | 2 +-
.../arm/mach-pxa/balloon3-pcmcia.c | 4 +-
arch/arm/mach-pxa/balloon3.c | 4 +-
arch/arm/mach-pxa/{include/mach => }/balloon3.h | 0
arch/arm/mach-pxa/cm-x300.c | 12 +-
arch/arm/mach-pxa/colibri-evalboard.c | 1 -
.../arm/mach-pxa/colibri-pcmcia.c | 2 +-
arch/arm/mach-pxa/colibri-pxa270-income.c | 1 -
arch/arm/mach-pxa/colibri-pxa270.c | 2 +-
arch/arm/mach-pxa/colibri-pxa300.c | 3 +-
arch/arm/mach-pxa/colibri-pxa320.c | 2 +-
arch/arm/mach-pxa/colibri-pxa3xx.c | 3 +-
arch/arm/mach-pxa/colibri.h | 2 +-
arch/arm/mach-pxa/corgi.c | 23 +-
arch/arm/mach-pxa/{include/mach => }/corgi.h | 0
arch/arm/mach-pxa/corgi_pm.c | 5 +-
arch/arm/mach-pxa/csb726.c | 5 +-
arch/arm/mach-pxa/csb726.h | 2 +-
arch/arm/mach-pxa/devices.c | 17 +-
.../arm/mach-pxa/e740-pcmcia.c | 4 +-
.../arm/mach-pxa/{include/mach => }/eseries-gpio.h | 0
arch/arm/mach-pxa/eseries.c | 38 +-
arch/arm/mach-pxa/ezx.c | 1 -
arch/arm/mach-pxa/generic.c | 62 +-
arch/arm/mach-pxa/generic.h | 9 -
arch/arm/mach-pxa/gumstix.c | 1 -
arch/arm/mach-pxa/gumstix.h | 2 +-
arch/arm/mach-pxa/h5000.c | 2 +-
.../arm/mach-pxa/hx4700-pcmcia.c | 4 +-
arch/arm/mach-pxa/hx4700.c | 18 +-
arch/arm/mach-pxa/{include/mach => }/hx4700.h | 0
arch/arm/mach-pxa/idp.c | 2 -
arch/arm/mach-pxa/idp.h | 2 +-
arch/arm/mach-pxa/include/mach/bitfield.h | 114 -
arch/arm/mach-pxa/include/mach/dma.h | 17 -
arch/arm/mach-pxa/include/mach/generic.h | 1 -
arch/arm/mach-pxa/include/mach/mtd-xip.h | 36 -
arch/arm/mach-pxa/include/mach/uncompress.h | 70 -
arch/arm/mach-pxa/irq.c | 5 +-
arch/arm/mach-pxa/{include/mach => }/irqs.h | 0
arch/arm/mach-pxa/littleton.c | 1 -
arch/arm/mach-pxa/lpd270.c | 6 +-
arch/arm/mach-pxa/lubbock.c | 17 +-
arch/arm/mach-pxa/{include/mach => }/lubbock.h | 4 +-
arch/arm/mach-pxa/magician.c | 56 +-
arch/arm/mach-pxa/{include/mach => }/magician.h | 2 +-
arch/arm/mach-pxa/mainstone.c | 17 +-
arch/arm/mach-pxa/{include/mach => }/mainstone.h | 4 +-
arch/arm/mach-pxa/mfp-pxa2xx.c | 3 +-
arch/arm/mach-pxa/mfp-pxa2xx.h | 2 +-
arch/arm/mach-pxa/mfp-pxa3xx.c | 3 +-
arch/arm/mach-pxa/mfp-pxa3xx.h | 2 +-
arch/arm/mach-pxa/{include/mach => }/mfp.h | 2 +-
arch/arm/mach-pxa/mioa701.c | 4 +-
arch/arm/mach-pxa/mxm8x10.c | 8 +-
arch/arm/mach-pxa/palm27x.c | 2 +-
.../arm/mach-pxa/palmld-pcmcia.c | 5 +-
arch/arm/mach-pxa/palmld.c | 23 +-
arch/arm/mach-pxa/{include/mach => }/palmld.h | 0
arch/arm/mach-pxa/palmt5.c | 11 +-
arch/arm/mach-pxa/palmt5.h | 2 +-
.../arm/mach-pxa/palmtc-pcmcia.c | 4 +-
arch/arm/mach-pxa/palmtc.c | 4 +-
arch/arm/mach-pxa/{include/mach => }/palmtc.h | 0
arch/arm/mach-pxa/palmte2.c | 2 +-
arch/arm/mach-pxa/palmtreo.c | 4 +-
.../arm/mach-pxa/palmtx-pcmcia.c | 4 +-
arch/arm/mach-pxa/palmtx.c | 13 +-
arch/arm/mach-pxa/{include/mach => }/palmtx.h | 0
arch/arm/mach-pxa/palmz72.c | 2 +-
arch/arm/mach-pxa/pcm027.h | 2 +-
arch/arm/mach-pxa/pcm990-baseboard.c | 2 +-
arch/arm/mach-pxa/pcm990_baseboard.h | 2 +-
arch/arm/mach-pxa/poodle.c | 31 +-
arch/arm/mach-pxa/{include/mach => }/poodle.h | 2 -
arch/arm/mach-pxa/pxa-dt.c | 2 +-
arch/arm/mach-pxa/pxa-regs.h | 52 +
arch/arm/mach-pxa/pxa25x.c | 12 +-
arch/arm/mach-pxa/pxa25x.h | 6 +-
arch/arm/mach-pxa/pxa27x-udc.h | 2 +
arch/arm/mach-pxa/pxa27x.c | 12 +-
arch/arm/mach-pxa/pxa27x.h | 6 +-
arch/arm/mach-pxa/{include/mach => }/pxa2xx-regs.h | 47 +-
arch/arm/mach-pxa/pxa2xx.c | 32 +-
arch/arm/mach-pxa/pxa300.c | 1 +
arch/arm/mach-pxa/pxa320.c | 1 +
arch/arm/mach-pxa/{include/mach => }/pxa3xx-regs.h | 71 +-
arch/arm/mach-pxa/pxa3xx-ulpi.c | 2 +-
arch/arm/mach-pxa/pxa3xx.c | 19 +-
arch/arm/mach-pxa/pxa3xx.h | 6 +-
arch/arm/mach-pxa/pxa930.c | 1 +
arch/arm/mach-pxa/{include/mach => }/regs-ost.h | 4 +-
arch/arm/mach-pxa/regs-rtc.h | 2 +-
arch/arm/mach-pxa/regs-u2d.h | 2 -
arch/arm/mach-pxa/{include/mach => }/regs-uart.h | 2 +
arch/arm/mach-pxa/reset.c | 9 +-
arch/arm/mach-pxa/{include/mach => }/reset.h | 2 +-
arch/arm/mach-pxa/sharpsl_pm.c | 2 +-
arch/arm/mach-pxa/sleep.S | 9 +-
arch/arm/mach-pxa/smemc.c | 13 +-
arch/arm/mach-pxa/{include/mach => }/smemc.h | 0
arch/arm/mach-pxa/spitz.c | 37 +-
arch/arm/mach-pxa/{include/mach => }/spitz.h | 0
arch/arm/mach-pxa/spitz_pm.c | 3 +-
arch/arm/mach-pxa/standby.S | 3 +-
arch/arm/mach-pxa/tosa.c | 80 +-
arch/arm/mach-pxa/{include/mach => }/tosa.h | 18 -
.../arm/mach-pxa/trizeps4-pcmcia.c | 6 +-
arch/arm/mach-pxa/trizeps4.c | 6 +-
arch/arm/mach-pxa/{include/mach => }/trizeps4.h | 1 +
.../arm/mach-pxa/viper-pcmcia.c | 6 +-
.../arm/mach-pxa/viper-pcmcia.h | 0
arch/arm/mach-pxa/viper.c | 20 +-
.../arm/mach-pxa/vpac270-pcmcia.c | 4 +-
arch/arm/mach-pxa/vpac270.c | 4 +-
arch/arm/mach-pxa/{include/mach => }/vpac270.h | 0
arch/arm/mach-pxa/xcep.c | 4 +-
arch/arm/mach-pxa/z2.c | 13 +-
arch/arm/mach-pxa/{include/mach => }/z2.h | 0
arch/arm/mach-pxa/zeus.c | 20 +-
arch/arm/mach-pxa/zylonite.c | 34 +-
arch/arm/mach-pxa/zylonite.h | 2 +
arch/arm/mach-pxa/zylonite_pxa300.c | 1 +
arch/arm/mach-pxa/zylonite_pxa320.c | 1 +
arch/arm/mach-qcom/Kconfig | 1 -
arch/arm/mach-realview/Kconfig | 103 -
arch/arm/mach-realview/Makefile | 8 -
arch/arm/mach-rockchip/platsmp.c | 2 +-
arch/arm/mach-s3c/Kconfig | 8 -
arch/arm/mach-s3c/Kconfig.s3c24xx | 31 +-
arch/arm/mach-s3c/Kconfig.s3c64xx | 7 +-
arch/arm/mach-s3c/Makefile | 2 -
arch/arm/mach-s3c/Makefile.s3c64xx | 3 -
arch/arm/mach-s3c/bast-ide.c | 2 +-
arch/arm/mach-s3c/bast-irq.c | 2 +-
arch/arm/mach-s3c/cpu.c | 3 +-
arch/arm/mach-s3c/dev-audio-s3c64xx.c | 2 +-
arch/arm/mach-s3c/dev-uart-s3c64xx.c | 2 +-
arch/arm/mach-s3c/devs.c | 2 +-
arch/arm/mach-s3c/gpio-samsung.c | 2 +-
arch/arm/mach-s3c/include/mach/io-s3c24xx.h | 50 -
arch/arm/mach-s3c/include/mach/io.h | 8 -
arch/arm/mach-s3c/init.c | 2 +
arch/arm/mach-s3c/iotiming-s3c2410.c | 2 +-
arch/arm/mach-s3c/irq-pm-s3c24xx.c | 2 +-
arch/arm/mach-s3c/irq-s3c24xx.c | 2 +-
.../arm/mach-s3c/{include/mach => }/irqs-s3c24xx.h | 18 +-
.../arm/mach-s3c/{include/mach => }/irqs-s3c64xx.h | 0
arch/arm/mach-s3c/{include/mach => }/irqs.h | 0
arch/arm/mach-s3c/mach-amlm5900.c | 2 +
arch/arm/mach-s3c/mach-anubis.c | 6 +-
arch/arm/mach-s3c/mach-anw6410.c | 2 +-
arch/arm/mach-s3c/mach-at2440evb.c | 1 +
arch/arm/mach-s3c/mach-bast.c | 6 +-
arch/arm/mach-s3c/mach-crag6410-module.c | 2 +-
arch/arm/mach-s3c/mach-crag6410.c | 2 +-
arch/arm/mach-s3c/mach-gta02.c | 1 +
arch/arm/mach-s3c/mach-h1940.c | 1 +
arch/arm/mach-s3c/mach-hmt.c | 2 +-
arch/arm/mach-s3c/mach-jive.c | 2 +-
arch/arm/mach-s3c/mach-mini2440.c | 3 +-
arch/arm/mach-s3c/mach-mini6410.c | 2 +-
arch/arm/mach-s3c/mach-n30.c | 2 +
arch/arm/mach-s3c/mach-ncp.c | 2 +-
arch/arm/mach-s3c/mach-nexcoder.c | 1 +
arch/arm/mach-s3c/mach-osiris.c | 6 +-
arch/arm/mach-s3c/mach-otom.c | 1 +
arch/arm/mach-s3c/mach-qt2410.c | 1 +
arch/arm/mach-s3c/mach-real6410.c | 2 +-
arch/arm/mach-s3c/mach-rx1950.c | 1 +
arch/arm/mach-s3c/mach-rx3715.c | 7 +-
arch/arm/mach-s3c/mach-smartq5.c | 2 +-
arch/arm/mach-s3c/mach-smartq7.c | 2 +-
arch/arm/mach-s3c/mach-smdk2410.c | 1 +
arch/arm/mach-s3c/mach-smdk2413.c | 3 +
arch/arm/mach-s3c/mach-smdk2416.c | 11 +-
arch/arm/mach-s3c/mach-smdk2440.c | 11 +-
arch/arm/mach-s3c/mach-smdk2443.c | 12 +-
arch/arm/mach-s3c/mach-smdk6400.c | 2 +-
arch/arm/mach-s3c/mach-smdk6410.c | 2 +-
arch/arm/mach-s3c/mach-tct_hammer.c | 1 +
arch/arm/mach-s3c/mach-vr1000.c | 6 +-
arch/arm/mach-s3c/mach-vstms.c | 1 +
arch/arm/mach-s3c/{include/mach => }/map-base.h | 6 +
arch/arm/mach-s3c/map-s3c24xx.h | 2 +-
arch/arm/mach-s3c/map-s3c64xx.h | 2 +-
arch/arm/mach-s3c/pl080.c | 2 +-
arch/arm/mach-s3c/pm-core-s3c24xx.h | 2 +-
arch/arm/mach-s3c/pm-s3c2412.c | 2 +-
arch/arm/mach-s3c/pm-s3c64xx.c | 4 +-
arch/arm/mach-s3c/pm.c | 2 +-
arch/arm/mach-s3c/s3c2443.c | 2 +-
arch/arm/mach-s3c/s3c24xx.c | 9 +-
arch/arm/mach-s3c/s3c24xx.h | 2 +-
arch/arm/mach-s3c/s3c64xx.c | 9 +-
arch/arm/mach-s3c/simtec-usb.c | 2 +-
arch/arm/mach-sa1100/generic.c | 6 +-
arch/arm/mach-sa1100/include/mach/reset.h | 1 -
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 2 +-
arch/arm/mach-shmobile/setup-emev2.c | 2 +-
arch/arm/mach-shmobile/setup-r7s72100.c | 2 +-
arch/arm/mach-shmobile/setup-r7s9210.c | 2 +-
arch/arm/mach-shmobile/setup-r8a73a4.c | 2 +-
arch/arm/mach-shmobile/setup-r8a7740.c | 2 +-
arch/arm/mach-shmobile/setup-r8a7778.c | 2 +-
arch/arm/mach-shmobile/setup-r8a7779.c | 2 +-
arch/arm/mach-shmobile/setup-rcar-gen2.c | 4 +-
arch/arm/mach-shmobile/setup-sh73a0.c | 2 +-
arch/arm/mach-socfpga/Kconfig | 1 -
arch/arm/mach-spear/Kconfig | 2 +-
arch/arm/mach-spear/Makefile | 2 -
arch/arm/mach-spear/include/mach/irqs.h | 35 -
arch/arm/mach-spear/include/mach/uncompress.h | 42 -
arch/arm/mach-spear/{include/mach => }/misc_regs.h | 4 +-
arch/arm/mach-spear/pl080.c | 4 +-
arch/arm/mach-spear/platsmp.c | 2 +-
arch/arm/mach-spear/restart.c | 2 +-
arch/arm/mach-spear/{include/mach => }/spear.h | 0
arch/arm/mach-spear/spear1310.c | 2 +-
arch/arm/mach-spear/spear13xx.c | 2 +-
arch/arm/mach-spear/spear300.c | 2 +-
arch/arm/mach-spear/spear310.c | 2 +-
arch/arm/mach-spear/spear320.c | 2 +-
arch/arm/mach-spear/spear3xx.c | 4 +-
arch/arm/mach-spear/spear6xx.c | 4 +-
arch/arm/mach-sunxi/Kconfig | 15 +-
arch/arm/mach-tegra/platsmp.c | 2 +-
arch/arm/mach-versatile/Kconfig | 309 +
arch/arm/mach-versatile/Makefile | 32 +-
.../Makefile.boot | 0
arch/arm/{mach-vexpress => mach-versatile}/dcscb.c | 5 +-
.../dcscb_setup.S | 2 -
.../{plat-versatile => mach-versatile}/headsmp.S | 2 -
.../{plat-versatile => mach-versatile}/hotplug.c | 2 +-
.../cm.h => mach-versatile/integrator-cm.h} | 0
.../integrator-hardware.h} | 0
.../core.c => mach-versatile/integrator.c} | 8 +-
.../common.h => mach-versatile/integrator.h} | 0
.../integrator_ap.c | 13 +-
.../integrator_cp.c | 8 +-
.../platsmp-realview.c} | 2 +-
.../platsmp-vexpress.c} | 7 +-
.../{plat-versatile => mach-versatile}/platsmp.c | 4 +-
.../include/plat => mach-versatile}/platsmp.h | 2 -
.../realview-dt.c => mach-versatile/realview.c} | 0
arch/arm/{mach-vexpress => mach-versatile}/spc.c | 0
arch/arm/{mach-vexpress => mach-versatile}/spc.h | 0
.../arm/{mach-vexpress => mach-versatile}/tc2_pm.c | 2 -
.../{mach-vexpress => mach-versatile}/v2m-mps2.c | 0
arch/arm/{mach-vexpress => mach-versatile}/v2m.c | 2 +-
.../mach-versatile/{versatile_dt.c => versatile.c} | 0
.../core.h => mach-versatile/vexpress.h} | 0
arch/arm/mach-vexpress/Kconfig | 81 -
arch/arm/mach-vexpress/Makefile | 19 -
arch/arm/mach-vt8500/Kconfig | 1 +
arch/arm/mach-zynq/Kconfig | 1 -
arch/arm/mm/Kconfig | 28 +-
arch/arm/mm/cache-b15-rac.c | 2 +-
arch/arm/mm/copypage-xsc3.c | 2 +
arch/arm/mm/dma-mapping.c | 7 +-
arch/arm/mm/init.c | 6 +-
arch/arm/mm/ioremap.c | 10 +-
arch/arm/mm/proc-v7-bugs.c | 1 +
arch/arm/plat-omap/Kconfig | 119 -
arch/arm/plat-omap/Makefile | 13 -
arch/arm/plat-omap/counter_32k.c | 114 -
arch/arm/plat-omap/debug-leds.c | 171 -
arch/arm/plat-omap/include/plat/counter-32k.h | 1 -
arch/arm/plat-omap/include/plat/cpu.h | 21 -
arch/arm/plat-omap/include/plat/sram.h | 8 -
arch/arm/plat-omap/sram.c | 129 -
arch/arm/plat-versatile/Makefile | 5 -
arch/arm/vdso/Makefile | 2 +-
arch/arm/xen/enlighten.c | 2 +
arch/arm/xen/mm.c | 38 +-
arch/arm64/Kconfig | 126 +-
arch/arm64/Kconfig.platforms | 8 +-
arch/arm64/Makefile | 6 +-
.../boot/dts/allwinner/sun50i-a64-olinuxino.dts | 30 +
.../boot/dts/allwinner/sun50i-a64-teres-i.dts | 8 +
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi | 2 -
arch/arm64/boot/dts/amlogic/Makefile | 38 +-
.../dts/amlogic/meson-axg-jethome-jethub-j100.dts | 16 +-
.../boot/dts/amlogic/meson-gx-libretech-pc.dtsi | 2 +-
.../dts/amlogic/meson-gxl-s805x-libretech-ac.dts | 2 +-
.../amlogic/meson-gxl-s905w-jethome-jethub-j80.dts | 6 +
.../amlogic/meson-gxl-s905x-libretech-cc-v2.dts | 2 +-
.../boot/dts/amlogic/meson-gxm-khadas-vim2.dts | 2 +-
arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi | 2 +-
arch/arm64/boot/dts/amlogic/meson-s4.dtsi | 33 +
.../boot/dts/amlogic/meson-sm1-odroid-hc4.dts | 2 +-
arch/arm64/boot/dts/arm/Makefile | 1 +
arch/arm64/boot/dts/arm/corstone1000-fvp.dts | 51 +
arch/arm64/boot/dts/arm/corstone1000-mps3.dts | 32 +
arch/arm64/boot/dts/arm/corstone1000.dtsi | 164 +
arch/arm64/boot/dts/arm/foundation-v8.dtsi | 2 +-
arch/arm64/boot/dts/arm/fvp-base-revc.dts | 3 +-
arch/arm64/boot/dts/arm/juno-base.dtsi | 164 +-
arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi | 37 +-
arch/arm64/boot/dts/arm/juno-r1-scmi.dts | 8 +-
arch/arm64/boot/dts/arm/juno-r1.dts | 25 +
arch/arm64/boot/dts/arm/juno-r2-scmi.dts | 8 +-
arch/arm64/boot/dts/arm/juno-r2.dts | 25 +
arch/arm64/boot/dts/arm/juno-scmi.dtsi | 25 +
arch/arm64/boot/dts/arm/juno.dts | 25 +
.../boot/dts/arm/rtsm_ve-motherboard-rs2.dtsi | 11 +-
arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi | 4 +-
.../arm64/boot/dts/broadcom/northstar2/ns2-svk.dts | 2 +-
.../arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts | 2 +-
arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi | 2 -
.../boot/dts/broadcom/stingray/bcm958742k.dts | 4 +-
.../arm64/boot/dts/broadcom/stingray/stingray.dtsi | 2 -
arch/arm64/boot/dts/exynos/exynos5433.dtsi | 9 +-
arch/arm64/boot/dts/exynos/exynos7.dtsi | 4 -
arch/arm64/boot/dts/exynos/exynos850-e850-96.dts | 5 +
arch/arm64/boot/dts/exynos/exynos850.dtsi | 19 +-
arch/arm64/boot/dts/exynos/exynosautov9-sadk.dts | 4 +
arch/arm64/boot/dts/exynos/exynosautov9.dtsi | 116 +-
arch/arm64/boot/dts/freescale/Makefile | 9 +
.../dts/freescale/fsl-ls1028a-kontron-sl28.dts | 9 +
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 2 +
arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts | 2 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 2 -
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 6 +-
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 6 +-
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 6 +-
arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi | 10 +-
arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi | 2 +-
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 6 +-
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 6 +-
arch/arm64/boot/dts/freescale/imx8-ss-vpu.dtsi | 74 +
.../dts/freescale/imx8mm-beacon-baseboard.dtsi | 3 +
.../dts/freescale/imx8mm-data-modul-edm-sbc.dts | 997 +
arch/arm64/boot/dts/freescale/imx8mm-emcon.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi | 20 +
.../boot/dts/freescale/imx8mm-kontron-n801x-s.dts | 2 +-
.../dts/freescale/imx8mm-kontron-n801x-som.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8mm-mx8menlo.dts | 334 +
.../boot/dts/freescale/imx8mm-venice-gw71xx.dtsi | 1 +
.../boot/dts/freescale/imx8mm-venice-gw72xx.dtsi | 1 +
.../boot/dts/freescale/imx8mm-venice-gw73xx.dtsi | 2 +
.../boot/dts/freescale/imx8mm-venice-gw7901.dts | 16 +-
.../boot/dts/freescale/imx8mm-venice-gw7902.dts | 17 +-
.../boot/dts/freescale/imx8mm-venice-gw7903.dts | 1 +
.../boot/dts/freescale/imx8mm-verdin-dahlia.dtsi | 2 +-
.../boot/dts/freescale/imx8mm-verdin-wifi.dtsi | 26 +-
arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 411 +-
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 8 +-
.../dts/freescale/imx8mn-beacon-baseboard.dtsi | 3 +
.../boot/dts/freescale/imx8mn-bsh-smm-s2pro.dts | 90 +
arch/arm64/boot/dts/freescale/imx8mn-ddr3l-evk.dts | 114 +
arch/arm64/boot/dts/freescale/imx8mn-evk.dts | 54 +-
arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi | 45 +
.../boot/dts/freescale/imx8mn-venice-gw7902.dts | 8 +
arch/arm64/boot/dts/freescale/imx8mn.dtsi | 14 +-
.../dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts | 175 +
.../boot/dts/freescale/imx8mp-icore-mx8mp.dtsi | 186 +
.../boot/dts/freescale/imx8mp-venice-gw74xx.dts | 896 +
.../boot/dts/freescale/imx8mp-verdin-dahlia.dtsi | 129 +
.../boot/dts/freescale/imx8mp-verdin-dev.dtsi | 46 +
.../dts/freescale/imx8mp-verdin-nonwifi-dahlia.dts | 18 +
.../dts/freescale/imx8mp-verdin-nonwifi-dev.dts | 18 +
.../boot/dts/freescale/imx8mp-verdin-nonwifi.dtsi | 54 +
.../dts/freescale/imx8mp-verdin-wifi-dahlia.dts | 18 +
.../boot/dts/freescale/imx8mp-verdin-wifi-dev.dts | 18 +
.../boot/dts/freescale/imx8mp-verdin-wifi.dtsi | 82 +
arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 1380 +
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 247 +-
.../dts/freescale/imx8mq-kontron-pitx-imx8m.dts | 2 +-
.../boot/dts/freescale/imx8mq-librem5-devkit.dts | 2 +-
.../arm64/boot/dts/freescale/imx8mq-librem5-r4.dts | 4 +
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi | 15 +-
.../boot/dts/freescale/imx8mq-mnt-reform2.dts | 2 +-
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 15 +-
arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 25 +
arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 24 +
arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 4 +-
arch/arm64/boot/dts/hisilicon/hi3670.dtsi | 4 +-
arch/arm64/boot/dts/intel/Makefile | 3 +-
arch/arm64/boot/dts/intel/socfpga_agilex.dtsi | 2 -
arch/arm64/boot/dts/intel/socfpga_agilex_n6000.dts | 66 +
arch/arm64/boot/dts/marvell/armada-3720-db.dts | 2 +-
.../dts/marvell/armada-3720-espressobin-ultra.dts | 9 +-
.../boot/dts/marvell/armada-3720-turris-mox.dts | 14 +-
arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts | 21 +-
arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 4 +-
arch/arm64/boot/dts/marvell/armada-7040-db.dts | 4 +-
.../boot/dts/marvell/armada-7040-mochabin.dts | 2 +-
.../dts/marvell/armada-8040-clearfog-gt-8k.dts | 2 +-
arch/arm64/boot/dts/marvell/armada-8040-db.dts | 4 +-
arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi | 2 +-
.../boot/dts/marvell/armada-8040-puzzle-m801.dts | 2 +-
arch/arm64/boot/dts/marvell/armada-ap80x.dtsi | 2 +-
arch/arm64/boot/dts/marvell/armada-cp11x.dtsi | 2 +-
arch/arm64/boot/dts/marvell/cn9130-crb.dtsi | 2 +-
arch/arm64/boot/dts/marvell/cn9130-db.dtsi | 2 +-
arch/arm64/boot/dts/marvell/cn9131-db.dtsi | 2 +-
arch/arm64/boot/dts/mediatek/Makefile | 2 +
arch/arm64/boot/dts/mediatek/mt2712e.dtsi | 10 +-
arch/arm64/boot/dts/mediatek/mt6359.dtsi | 298 +
arch/arm64/boot/dts/mediatek/mt7622.dtsi | 52 +-
arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts | 74 +
arch/arm64/boot/dts/mediatek/mt7986a.dtsi | 39 +
arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts | 70 +
arch/arm64/boot/dts/mediatek/mt8167.dtsi | 2 +-
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 29 +-
.../boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi | 2 +-
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 2 +-
arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts | 2 +-
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 17 +-
arch/arm64/boot/dts/mediatek/mt8192-evb.dts | 1 +
arch/arm64/boot/dts/mediatek/mt8192.dtsi | 526 +-
arch/arm64/boot/dts/mediatek/mt8195-demo.dts | 450 +
arch/arm64/boot/dts/mediatek/mt8195-evb.dts | 181 +
arch/arm64/boot/dts/mediatek/mt8195.dtsi | 1045 +
arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi | 1 -
arch/arm64/boot/dts/microchip/sparx5_nand.dtsi | 2 +-
arch/arm64/boot/dts/microchip/sparx5_pcb125.dts | 4 +-
.../boot/dts/microchip/sparx5_pcb134_board.dtsi | 4 +-
.../boot/dts/microchip/sparx5_pcb135_board.dtsi | 4 +-
arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | 223 +
.../dts/nvidia/tegra186-p3509-0000+p3636-0001.dts | 2 +-
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 15 +-
arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts | 225 +-
.../arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi | 225 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 42 +-
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 2 +-
arch/arm64/boot/dts/nvidia/tegra210.dtsi | 5 +-
.../arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi | 12 +
.../dts/nvidia/tegra234-p3737-0000+p3701-0000.dts | 223 +
arch/arm64/boot/dts/nvidia/tegra234.dtsi | 67 +-
arch/arm64/boot/dts/qcom/Makefile | 5 +-
arch/arm64/boot/dts/qcom/apq8096-db820c.dts | 24 +-
arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts | 2 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 46 +-
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 2 +-
arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi | 2 +-
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 58 +-
arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts | 59 +-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 102 +-
arch/arm64/boot/dts/qcom/msm8953.dtsi | 63 +-
arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts | 36 +-
arch/arm64/boot/dts/qcom/msm8992.dtsi | 24 +-
.../dts/qcom/msm8994-huawei-angler-rev-101.dts | 21 +-
.../dts/qcom/msm8994-sony-xperia-kitakami.dtsi | 89 +-
arch/arm64/boot/dts/qcom/msm8994.dtsi | 133 +-
arch/arm64/boot/dts/qcom/msm8996-mtp.dts | 8 +-
.../boot/dts/qcom/msm8996-sony-xperia-tone.dtsi | 18 +-
.../arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi | 56 +-
arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts | 9 +
.../arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts | 9 +
arch/arm64/boot/dts/qcom/msm8996.dtsi | 273 +-
.../boot/dts/qcom/msm8998-oneplus-common.dtsi | 31 +
arch/arm64/boot/dts/qcom/msm8998.dtsi | 28 +-
arch/arm64/boot/dts/qcom/pm8350.dtsi | 31 +
arch/arm64/boot/dts/qcom/pm8350b.dtsi | 31 +
arch/arm64/boot/dts/qcom/pm8350c.dtsi | 41 +-
arch/arm64/boot/dts/qcom/pm8450.dtsi | 59 +
arch/arm64/boot/dts/qcom/pmr735a.dtsi | 32 +-
arch/arm64/boot/dts/qcom/pmr735b.dtsi | 31 +
arch/arm64/boot/dts/qcom/qcs404-evb.dtsi | 7 +-
arch/arm64/boot/dts/qcom/qcs404.dtsi | 102 +-
arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 2 +-
arch/arm64/boot/dts/qcom/sa8155p-adp.dts | 193 +
.../arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi | 11 +-
.../boot/dts/qcom/sc7180-trogdor-homestar-r2.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-homestar-r3.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-homestar-r4.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-homestar.dtsi | 7 -
.../qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dts | 2 +-
.../qcom/sc7180-trogdor-lazor-limozeen-nots-r9.dts | 4 +-
.../dts/qcom/sc7180-trogdor-lazor-limozeen-r4.dts | 2 +-
.../dts/qcom/sc7180-trogdor-lazor-limozeen-r9.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r0.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r1-lte.dts | 4 -
.../boot/dts/qcom/sc7180-trogdor-lazor-r1.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r3-kb.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r3-lte.dts | 6 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r3.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r9-kb.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r9-lte.dts | 6 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r9.dts | 2 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor.dtsi | 7 +-
.../arm64/boot/dts/qcom/sc7180-trogdor-pompom.dtsi | 9 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts | 9 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 9 +-
arch/arm64/boot/dts/qcom/sc7180.dtsi | 22 +-
.../dts/qcom/{sc7280-crd.dts => sc7280-crd-r3.dts} | 7 +-
arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts | 365 +
.../dts/qcom/sc7280-herobrine-herobrine-r0.dts | 1352 -
.../dts/qcom/sc7280-herobrine-herobrine-r1.dts | 38 +
.../boot/dts/qcom/sc7280-herobrine-villager-r0.dts | 304 +
arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 93 +-
arch/arm64/boot/dts/qcom/sc7280-idp.dts | 2 +-
arch/arm64/boot/dts/qcom/sc7280-idp.dtsi | 36 +-
arch/arm64/boot/dts/qcom/sc7280-idp2.dts | 4 +
arch/arm64/boot/dts/qcom/sc7280-qcard.dtsi | 73 +-
arch/arm64/boot/dts/qcom/sc7280.dtsi | 404 +-
arch/arm64/boot/dts/qcom/sdm630.dtsi | 16 +-
arch/arm64/boot/dts/qcom/sdm660.dtsi | 2 +-
arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 33 +
.../boot/dts/qcom/sdm845-xiaomi-beryllium.dts | 35 +-
arch/arm64/boot/dts/qcom/sdm845.dtsi | 60 +-
arch/arm64/boot/dts/qcom/sm6125.dtsi | 16 +-
arch/arm64/boot/dts/qcom/sm6350.dtsi | 252 +-
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 61 +-
arch/arm64/boot/dts/qcom/sm8150.dtsi | 352 +-
arch/arm64/boot/dts/qcom/sm8250-mtp.dts | 12 +
.../boot/dts/qcom/sm8250-sony-xperia-edo.dtsi | 30 +-
arch/arm64/boot/dts/qcom/sm8250.dtsi | 363 +-
arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 4 +
.../dts/qcom/sm8350-microsoft-surface-duo2.dts | 12 +
arch/arm64/boot/dts/qcom/sm8350.dtsi | 207 +-
arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 41 +
arch/arm64/boot/dts/qcom/sm8450-qrd.dts | 34 +
arch/arm64/boot/dts/qcom/sm8450.dtsi | 3780 +-
arch/arm64/boot/dts/renesas/Makefile | 6 +
.../boot/dts/renesas/beacon-renesom-baseboard.dtsi | 10 +-
arch/arm64/boot/dts/renesas/draak.dtsi | 60 +-
arch/arm64/boot/dts/renesas/ebisu.dtsi | 60 +-
arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774c0-cat874.dts | 2 +-
arch/arm64/boot/dts/renesas/r8a774c0.dtsi | 8 +-
arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 5 +-
arch/arm64/boot/dts/renesas/r8a77951.dtsi | 22 +-
arch/arm64/boot/dts/renesas/r8a77960.dtsi | 22 +-
arch/arm64/boot/dts/renesas/r8a77961.dtsi | 47 +-
arch/arm64/boot/dts/renesas/r8a77965.dtsi | 22 +-
arch/arm64/boot/dts/renesas/r8a77970.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77980.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77990.dtsi | 24 +-
arch/arm64/boot/dts/renesas/r8a77995.dtsi | 24 +-
.../boot/dts/renesas/r8a779a0-falcon-cpu.dtsi | 12 +-
arch/arm64/boot/dts/renesas/r8a779a0-falcon.dts | 24 +
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 131 +-
.../boot/dts/renesas/r8a779f0-spider-cpu.dtsi | 20 +
.../boot/dts/renesas/r8a779f0-spider-ethernet.dtsi | 15 +
arch/arm64/boot/dts/renesas/r8a779f0-spider.dts | 10 +
arch/arm64/boot/dts/renesas/r8a779f0.dtsi | 163 +
.../boot/dts/renesas/r8a779g0-white-hawk-cpu.dtsi | 45 +
.../arm64/boot/dts/renesas/r8a779g0-white-hawk.dts | 22 +
arch/arm64/boot/dts/renesas/r8a779g0.dtsi | 122 +
arch/arm64/boot/dts/renesas/r9a07g043.dtsi | 885 +
arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts | 21 +
arch/arm64/boot/dts/renesas/r9a07g044.dtsi | 8 +-
arch/arm64/boot/dts/renesas/r9a07g044c2-smarc.dts | 76 -
arch/arm64/boot/dts/renesas/r9a07g054.dtsi | 592 +-
arch/arm64/boot/dts/renesas/r9a07g054l2-smarc.dts | 8 -
arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dts | 44 +
arch/arm64/boot/dts/renesas/r9a09g011.dtsi | 93 +
arch/arm64/boot/dts/renesas/rz-smarc-common.dtsi | 24 -
arch/arm64/boot/dts/renesas/rzg2l-smarc.dtsi | 30 +
.../boot/dts/renesas/rzg2lc-smarc-pinfunction.dtsi | 64 +-
arch/arm64/boot/dts/renesas/rzg2lc-smarc-som.dtsi | 61 +
arch/arm64/boot/dts/renesas/rzg2lc-smarc.dtsi | 38 +
.../boot/dts/renesas/rzg2ul-smarc-pinfunction.dtsi | 119 +
arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi | 251 +
arch/arm64/boot/dts/renesas/rzg2ul-smarc.dtsi | 63 +
arch/arm64/boot/dts/renesas/salvator-common.dtsi | 51 +-
arch/arm64/boot/dts/renesas/ulcb-kf.dtsi | 10 +-
arch/arm64/boot/dts/renesas/ulcb.dtsi | 49 +
arch/arm64/boot/dts/rockchip/Makefile | 6 +-
arch/arm64/boot/dts/rockchip/rk3308.dtsi | 5 +-
arch/arm64/boot/dts/rockchip/rk3328.dtsi | 22 +-
arch/arm64/boot/dts/rockchip/rk3368.dtsi | 2 +
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 3 +-
.../boot/dts/rockchip/rk3399-gru-chromebook.dtsi | 7 +
.../boot/dts/rockchip/rk3399-gru-scarlet.dtsi | 12 +
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi | 28 +
arch/arm64/boot/dts/rockchip/rk3399-hugsun-x99.dts | 3 +-
.../boot/dts/rockchip/rk3399-khadas-edge.dtsi | 3 +-
arch/arm64/boot/dts/rockchip/rk3399-leez-p710.dts | 3 +-
arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi | 25 +
arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts | 3 +-
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi | 3 +-
arch/arm64/boot/dts/rockchip/rk3399.dtsi | 45 +-
arch/arm64/boot/dts/rockchip/rk3566-pinenote.dtsi | 80 +
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts | 41 +-
arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts | 615 +
arch/arm64/boot/dts/rockchip/rk3566-roc-pc.dts | 579 +
.../boot/dts/rockchip/rk3566-soquartz-cm4.dts | 177 +
arch/arm64/boot/dts/rockchip/rk3566-soquartz.dtsi | 616 +
arch/arm64/boot/dts/rockchip/rk3566.dtsi | 11 +
arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 142 +-
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 46 +
arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts | 562 +
arch/arm64/boot/dts/rockchip/rk3568.dtsi | 23 +
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 76 +-
arch/arm64/boot/dts/sprd/whale2.dtsi | 4 +
arch/arm64/boot/dts/synaptics/as370.dtsi | 173 -
arch/arm64/boot/dts/tesla/fsd.dtsi | 10 +-
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 307 +
arch/arm64/boot/dts/ti/k3-am62-mcu.dtsi | 48 +
arch/arm64/boot/dts/ti/k3-am62.dtsi | 1 +
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 289 +
arch/arm64/boot/dts/ti/k3-am64-mcu.dtsi | 2 -
arch/arm64/boot/dts/ti/k3-am642-sk.dts | 62 +
.../boot/dts/ti/k3-j721e-common-proc-board.dts | 77 +-
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 75 +-
arch/arm64/boot/dts/ti/k3-j721e-sk.dts | 139 +-
arch/arm64/boot/dts/toshiba/tmpv7708-rm-mbrc.dts | 9 -
.../boot/dts/toshiba/tmpv7708-visrobo-vrb.dts | 6 -
.../boot/dts/toshiba/tmpv7708-visrobo-vrc.dtsi | 4 -
arch/arm64/boot/dts/toshiba/tmpv7708.dtsi | 96 +-
arch/arm64/boot/install.sh | 21 -
arch/arm64/configs/defconfig | 33 +
arch/arm64/crypto/Kconfig | 16 +-
arch/arm64/crypto/Makefile | 8 +-
arch/arm64/crypto/sm4-ce-cipher-core.S | 36 +
arch/arm64/crypto/sm4-ce-cipher-glue.c | 82 +
arch/arm64/crypto/sm4-ce-core.S | 688 +-
arch/arm64/crypto/sm4-ce-glue.c | 386 +-
arch/arm64/crypto/sm4-neon-core.S | 487 +
arch/arm64/crypto/sm4-neon-glue.c | 442 +
arch/arm64/include/asm/Kbuild | 1 +
arch/arm64/include/asm/arch_gicv3.h | 6 -
arch/arm64/include/asm/archrandom.h | 2 +-
arch/arm64/include/asm/asm-bug.h | 4 +-
arch/arm64/include/asm/barrier.h | 4 +
arch/arm64/include/asm/cache.h | 17 +-
arch/arm64/include/asm/compat.h | 93 +-
arch/arm64/include/asm/compiler.h | 16 -
arch/arm64/include/asm/cpu.h | 4 +
arch/arm64/include/asm/cpufeature.h | 24 +
arch/arm64/include/asm/cputype.h | 10 +-
arch/arm64/include/asm/debug-monitors.h | 4 +-
arch/arm64/include/asm/el2_setup.h | 64 +-
arch/arm64/include/asm/esr.h | 29 +-
arch/arm64/include/asm/exception.h | 29 +-
arch/arm64/include/asm/fpsimd.h | 135 +-
arch/arm64/include/asm/fpsimdmacros.h | 87 +
arch/arm64/include/asm/ftrace.h | 7 +
arch/arm64/include/asm/hugetlb.h | 6 +-
arch/arm64/include/asm/hwcap.h | 9 +
arch/arm64/include/asm/insn.h | 9 +
arch/arm64/include/asm/io.h | 4 +
arch/arm64/include/asm/kvm_arm.h | 4 +-
arch/arm64/include/asm/kvm_asm.h | 1 +
arch/arm64/include/asm/kvm_emulate.h | 13 +-
arch/arm64/include/asm/kvm_host.h | 50 +-
arch/arm64/include/asm/kvm_mmu.h | 3 +
arch/arm64/include/asm/kvm_ras.h | 2 +-
arch/arm64/include/asm/mman.h | 24 -
arch/arm64/include/asm/mte-kasan.h | 1 +
arch/arm64/include/asm/mte.h | 1 +
arch/arm64/include/asm/percpu.h | 1 +
arch/arm64/include/asm/pgtable-hwdef.h | 4 +-
arch/arm64/include/asm/pgtable-prot.h | 1 +
arch/arm64/include/asm/pgtable.h | 94 +-
arch/arm64/include/asm/processor.h | 40 +-
arch/arm64/include/asm/stacktrace.h | 32 -
arch/arm64/include/asm/sysreg.h | 181 +-
arch/arm64/include/asm/system_misc.h | 4 +-
arch/arm64/include/asm/thread_info.h | 2 +
arch/arm64/include/asm/traps.h | 12 +-
arch/arm64/include/asm/uaccess.h | 15 +
arch/arm64/include/asm/unistd.h | 1 +
.../include/asm/xen/{page-coherent.h => xen-ops.h} | 2 +-
arch/arm64/include/uapi/asm/hwcap.h | 9 +
arch/arm64/include/uapi/asm/kvm.h | 36 +
arch/arm64/include/uapi/asm/ptrace.h | 69 +-
arch/arm64/include/uapi/asm/sigcontext.h | 55 +-
arch/arm64/kernel/Makefile | 4 +
arch/arm64/kernel/cpu_errata.c | 4 +-
arch/arm64/kernel/cpufeature.c | 195 +-
arch/arm64/kernel/cpuinfo.c | 14 +
arch/arm64/kernel/crash_dump.c | 29 +-
arch/arm64/kernel/debug-monitors.c | 12 +-
arch/arm64/kernel/entry-common.c | 25 +-
arch/arm64/kernel/entry-fpsimd.S | 36 +
arch/arm64/kernel/entry-ftrace.S | 17 -
arch/arm64/kernel/entry.S | 2 +-
arch/arm64/kernel/fpsimd.c | 667 +-
arch/arm64/kernel/ftrace.c | 17 +
arch/arm64/kernel/hibernate.c | 2 +-
arch/arm64/kernel/hw_breakpoint.c | 4 +-
arch/arm64/kernel/kgdb.c | 6 +-
arch/arm64/kernel/machine_kexec.c | 9 +-
arch/arm64/kernel/machine_kexec_file.c | 12 +-
arch/arm64/kernel/mte.c | 54 +-
arch/arm64/kernel/paravirt.c | 29 +-
arch/arm64/kernel/probes/kprobes.c | 4 +-
arch/arm64/kernel/probes/uprobes.c | 4 +-
arch/arm64/kernel/process.c | 59 +-
arch/arm64/kernel/ptrace.c | 366 +-
arch/arm64/kernel/relocate_kernel.S | 22 +-
arch/arm64/kernel/setup.c | 24 +-
arch/arm64/kernel/signal.c | 189 +-
arch/arm64/kernel/signal32.c | 1 +
arch/arm64/kernel/smp.c | 1 +
arch/arm64/kernel/stacktrace.c | 124 +-
arch/arm64/kernel/sys_compat.c | 2 +-
arch/arm64/kernel/syscall.c | 29 +-
arch/arm64/kernel/traps.c | 67 +-
arch/arm64/kernel/vdso/Makefile | 6 +-
arch/arm64/kernel/vdso32/Makefile | 3 -
arch/arm64/kernel/vmlinux.lds.S | 21 +-
arch/arm64/kvm/Makefile | 4 +-
arch/arm64/kvm/arch_timer.c | 47 +-
arch/arm64/kvm/arm.c | 168 +-
arch/arm64/kvm/fpsimd.c | 43 +-
arch/arm64/kvm/guest.c | 10 +-
arch/arm64/kvm/handle_exit.c | 65 +-
arch/arm64/kvm/hyp/include/hyp/switch.h | 2 +-
arch/arm64/kvm/hyp/include/nvhe/fixed_config.h | 28 +-
arch/arm64/kvm/hyp/include/nvhe/mm.h | 6 +-
arch/arm64/kvm/hyp/nvhe/host.S | 32 +-
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 18 +-
arch/arm64/kvm/hyp/nvhe/mm.c | 78 +-
arch/arm64/kvm/hyp/nvhe/setup.c | 31 +-
arch/arm64/kvm/hyp/nvhe/switch.c | 87 +-
arch/arm64/kvm/hyp/nvhe/sys_regs.c | 5 +-
arch/arm64/kvm/hyp/vgic-v3-sr.c | 4 +-
arch/arm64/kvm/hyp/vhe/switch.c | 11 +-
arch/arm64/kvm/hypercalls.c | 327 +-
arch/arm64/kvm/inject_fault.c | 4 +-
arch/arm64/kvm/mmu.c | 68 +-
arch/arm64/kvm/pmu-emul.c | 3 +-
arch/arm64/kvm/pmu.c | 40 +-
arch/arm64/kvm/psci.c | 248 +-
arch/arm64/kvm/sys_regs.c | 308 +-
arch/arm64/kvm/sys_regs.h | 9 +-
arch/arm64/kvm/vgic/vgic-init.c | 13 +-
arch/arm64/kvm/vgic/vgic-its.c | 160 +-
arch/arm64/kvm/vgic/vgic-mmio-v2.c | 18 +-
arch/arm64/kvm/vgic/vgic-mmio-v3.c | 125 +-
arch/arm64/kvm/vgic/vgic-v3.c | 4 +
arch/arm64/kvm/vgic/vgic.h | 10 +
arch/arm64/lib/delay.c | 12 +-
arch/arm64/lib/insn.c | 67 +-
arch/arm64/lib/mte.S | 4 +-
arch/arm64/mm/copypage.c | 4 +-
arch/arm64/mm/dma-mapping.c | 7 +-
arch/arm64/mm/fault.c | 73 +-
arch/arm64/mm/flush.c | 14 +
arch/arm64/mm/hugetlbpage.c | 61 +-
arch/arm64/mm/init.c | 77 +-
arch/arm64/mm/ioremap.c | 8 +
arch/arm64/mm/mmap.c | 25 +
arch/arm64/mm/trans_pgd.c | 2 +-
arch/arm64/net/bpf_jit.h | 17 +
arch/arm64/net/bpf_jit_comp.c | 256 +-
arch/arm64/tools/Makefile | 8 +-
arch/arm64/tools/cpucaps | 3 +
arch/arm64/tools/gen-sysreg.awk | 268 +
arch/arm64/tools/sysreg | 369 +
arch/csky/Kbuild | 2 +
arch/csky/Kconfig | 8 +
arch/csky/Makefile | 3 -
arch/csky/abiv1/Makefile | 2 -
arch/csky/abiv1/memcpy.S | 347 -
arch/csky/abiv1/strksyms.c | 6 -
arch/csky/abiv2/Makefile | 2 +
arch/csky/abiv2/strksyms.c | 4 +-
arch/csky/boot/Makefile | 1 -
arch/csky/include/asm/Kbuild | 3 +
arch/csky/include/asm/atomic.h | 237 +
arch/csky/include/asm/barrier.h | 11 +-
arch/csky/include/asm/cmpxchg.h | 64 +-
arch/csky/include/asm/io.h | 12 +-
arch/csky/include/asm/processor.h | 2 +-
arch/csky/include/asm/spinlock.h | 89 -
arch/csky/include/asm/spinlock_types.h | 27 -
arch/csky/kernel/Makefile | 2 +-
arch/csky/kernel/io.c | 91 +
arch/csky/kernel/module.c | 2 +-
arch/csky/kernel/power.c | 6 +-
arch/csky/kernel/probes/kprobes.c | 2 +-
arch/csky/kernel/probes/uprobes.c | 2 +-
arch/csky/kernel/process.c | 16 +-
arch/csky/lib/Makefile | 3 +
arch/csky/lib/string.c | 134 +
arch/csky/mm/dma-mapping.c | 1 -
arch/h8300/Kbuild | 5 -
arch/h8300/Kconfig | 49 -
arch/h8300/Kconfig.cpu | 99 -
arch/h8300/Makefile | 44 -
arch/h8300/boot/Makefile | 27 -
arch/h8300/boot/compressed/Makefile | 45 -
arch/h8300/boot/compressed/head.S | 49 -
arch/h8300/boot/compressed/misc.c | 76 -
arch/h8300/boot/compressed/vmlinux.lds | 35 -
arch/h8300/boot/compressed/vmlinux.scr | 9 -
arch/h8300/boot/dts/Makefile | 6 -
arch/h8300/boot/dts/edosk2674.dts | 108 -
arch/h8300/boot/dts/h8300h_sim.dts | 97 -
arch/h8300/boot/dts/h8s_sim.dts | 100 -
arch/h8300/configs/edosk2674_defconfig | 48 -
arch/h8300/configs/h8300h-sim_defconfig | 48 -
arch/h8300/configs/h8s-sim_defconfig | 48 -
arch/h8300/include/asm/Kbuild | 8 -
arch/h8300/include/asm/bitops.h | 179 -
arch/h8300/include/asm/bug.h | 13 -
arch/h8300/include/asm/byteorder.h | 7 -
arch/h8300/include/asm/cache.h | 12 -
arch/h8300/include/asm/elf.h | 102 -
arch/h8300/include/asm/flat.h | 36 -
arch/h8300/include/asm/hash.h | 54 -
arch/h8300/include/asm/io.h | 67 -
arch/h8300/include/asm/irq.h | 25 -
arch/h8300/include/asm/irqflags.h | 97 -
arch/h8300/include/asm/kgdb.h | 45 -
arch/h8300/include/asm/mmu_context.h | 6 -
arch/h8300/include/asm/page.h | 17 -
arch/h8300/include/asm/page_offset.h | 2 -
arch/h8300/include/asm/pgtable.h | 43 -
arch/h8300/include/asm/processor.h | 126 -
arch/h8300/include/asm/ptrace.h | 39 -
arch/h8300/include/asm/signal.h | 23 -
arch/h8300/include/asm/smp.h | 1 -
arch/h8300/include/asm/string.h | 18 -
arch/h8300/include/asm/switch_to.h | 52 -
arch/h8300/include/asm/syscall.h | 43 -
arch/h8300/include/asm/thread_info.h | 102 -
arch/h8300/include/asm/tlb.h | 7 -
arch/h8300/include/asm/traps.h | 41 -
arch/h8300/include/asm/user.h | 71 -
arch/h8300/include/asm/vmalloc.h | 4 -
arch/h8300/include/uapi/asm/byteorder.h | 7 -
arch/h8300/include/uapi/asm/posix_types.h | 13 -
arch/h8300/include/uapi/asm/ptrace.h | 43 -
arch/h8300/include/uapi/asm/sigcontext.h | 19 -
arch/h8300/include/uapi/asm/signal.h | 92 -
arch/h8300/include/uapi/asm/unistd.h | 8 -
arch/h8300/kernel/Makefile | 22 -
arch/h8300/kernel/asm-offsets.c | 70 -
arch/h8300/kernel/entry.S | 433 -
arch/h8300/kernel/h8300_ksyms.c | 35 -
arch/h8300/kernel/head_ram.S | 60 -
arch/h8300/kernel/head_rom.S | 111 -
arch/h8300/kernel/irq.c | 99 -
arch/h8300/kernel/kgdb.c | 135 -
arch/h8300/kernel/module.c | 71 -
arch/h8300/kernel/process.c | 173 -
arch/h8300/kernel/ptrace.c | 199 -
arch/h8300/kernel/ptrace_h.c | 256 -
arch/h8300/kernel/ptrace_s.c | 44 -
arch/h8300/kernel/setup.c | 213 -
arch/h8300/kernel/signal.c | 287 -
arch/h8300/kernel/sim-console.c | 31 -
arch/h8300/kernel/syscalls.c | 15 -
arch/h8300/kernel/traps.c | 156 -
arch/h8300/kernel/vmlinux.lds.S | 69 -
arch/h8300/lib/Makefile | 9 -
arch/h8300/lib/abs.S | 21 -
arch/h8300/lib/ashldi3.c | 25 -
arch/h8300/lib/ashrdi3.c | 25 -
arch/h8300/lib/delay.c | 41 -
arch/h8300/lib/libgcc.h | 78 -
arch/h8300/lib/lshrdi3.c | 24 -
arch/h8300/lib/memcpy.S | 86 -
arch/h8300/lib/memset.S | 70 -
arch/h8300/lib/moddivsi3.S | 73 -
arch/h8300/lib/modsi3.S | 73 -
arch/h8300/lib/muldi3.c | 45 -
arch/h8300/lib/mulsi3.S | 39 -
arch/h8300/lib/ucmpdi2.c | 18 -
arch/h8300/lib/udivsi3.S | 77 -
arch/h8300/mm/Makefile | 6 -
arch/h8300/mm/fault.c | 57 -
arch/h8300/mm/init.c | 95 -
arch/h8300/mm/memory.c | 52 -
arch/hexagon/kernel/process.c | 12 +-
arch/ia64/Makefile | 5 +-
arch/ia64/include/asm/hugetlb.h | 5 +-
arch/ia64/include/asm/iommu_table.h | 7 -
arch/ia64/include/asm/ptrace.h | 4 -
arch/ia64/include/asm/timex.h | 1 +
arch/ia64/install.sh | 10 -
arch/ia64/kernel/crash_dump.c | 32 +-
arch/ia64/kernel/kprobes.c | 64 +-
arch/ia64/kernel/mca.c | 1 -
arch/ia64/kernel/palinfo.c | 2 +-
arch/ia64/kernel/process.c | 19 +-
arch/ia64/kernel/ptrace.c | 59 +-
arch/ia64/kernel/setup.c | 2 +-
arch/ia64/kernel/smpboot.c | 4 -
arch/ia64/kernel/traps.c | 2 +-
arch/ia64/kernel/uncached.c | 2 +-
arch/ia64/mm/init.c | 6 +-
arch/ia64/mm/tlb.c | 4 +-
arch/loongarch/Kbuild | 6 +
arch/loongarch/Kconfig | 439 +
.../asm/fpu/internal.h => loongarch/Kconfig.debug} | 0
arch/loongarch/Makefile | 100 +
.../Kconfig.debug => loongarch/boot/.gitignore} | 2 +-
arch/loongarch/boot/Makefile | 16 +
arch/loongarch/boot/dts/Makefile | 4 +
arch/loongarch/configs/loongson3_defconfig | 771 +
arch/loongarch/include/asm/Kbuild | 30 +
arch/loongarch/include/asm/acenv.h | 18 +
arch/loongarch/include/asm/acpi.h | 38 +
arch/loongarch/include/asm/addrspace.h | 112 +
arch/loongarch/include/asm/asm-offsets.h | 5 +
arch/loongarch/include/asm/asm-prototypes.h | 7 +
arch/loongarch/include/asm/asm.h | 191 +
arch/loongarch/include/asm/asmmacro.h | 289 +
arch/loongarch/include/asm/atomic.h | 362 +
arch/loongarch/include/asm/barrier.h | 159 +
arch/loongarch/include/asm/bitops.h | 33 +
arch/loongarch/include/asm/bitrev.h | 34 +
arch/loongarch/include/asm/bootinfo.h | 43 +
arch/loongarch/include/asm/branch.h | 21 +
arch/loongarch/include/asm/bug.h | 23 +
arch/loongarch/include/asm/cache.h | 13 +
arch/loongarch/include/asm/cacheflush.h | 80 +
arch/loongarch/include/asm/cacheops.h | 37 +
arch/loongarch/include/asm/clocksource.h | 12 +
arch/loongarch/include/asm/cmpxchg.h | 123 +
arch/loongarch/include/asm/compiler.h | 15 +
arch/loongarch/include/asm/cpu-features.h | 73 +
arch/loongarch/include/asm/cpu-info.h | 116 +
arch/loongarch/include/asm/cpu.h | 127 +
arch/loongarch/include/asm/cpufeature.h | 24 +
arch/loongarch/include/asm/delay.h | 26 +
arch/loongarch/include/asm/dma-direct.h | 11 +
arch/loongarch/include/asm/dmi.h | 24 +
arch/loongarch/include/asm/efi.h | 41 +
arch/loongarch/include/asm/elf.h | 301 +
arch/loongarch/include/asm/entry-common.h | 13 +
arch/loongarch/include/asm/exec.h | 10 +
arch/loongarch/include/asm/fb.h | 23 +
arch/loongarch/include/asm/fixmap.h | 13 +
arch/loongarch/include/asm/fpregdef.h | 53 +
arch/loongarch/include/asm/fpu.h | 129 +
arch/loongarch/include/asm/futex.h | 108 +
arch/loongarch/include/asm/hardirq.h | 26 +
arch/loongarch/include/asm/hugetlb.h | 83 +
arch/loongarch/include/asm/hw_irq.h | 17 +
arch/loongarch/include/asm/idle.h | 9 +
arch/loongarch/include/asm/inst.h | 117 +
arch/loongarch/include/asm/io.h | 129 +
arch/loongarch/include/asm/irq.h | 132 +
arch/loongarch/include/asm/irq_regs.h | 27 +
arch/loongarch/include/asm/irqflags.h | 78 +
arch/loongarch/include/asm/kdebug.h | 23 +
arch/loongarch/include/asm/linkage.h | 36 +
arch/loongarch/include/asm/local.h | 138 +
arch/loongarch/include/asm/loongarch.h | 1516 +
arch/loongarch/include/asm/loongson.h | 153 +
arch/loongarch/include/asm/mmu.h | 16 +
arch/loongarch/include/asm/mmu_context.h | 152 +
arch/loongarch/include/asm/mmzone.h | 18 +
arch/loongarch/include/asm/module.h | 80 +
arch/loongarch/include/asm/module.lds.h | 7 +
arch/loongarch/include/asm/numa.h | 67 +
arch/loongarch/include/asm/page.h | 115 +
arch/loongarch/include/asm/percpu.h | 215 +
arch/loongarch/include/asm/perf_event.h | 10 +
arch/loongarch/include/asm/pgalloc.h | 103 +
arch/loongarch/include/asm/pgtable-bits.h | 131 +
arch/loongarch/include/asm/pgtable.h | 565 +
arch/loongarch/include/asm/prefetch.h | 29 +
arch/loongarch/include/asm/processor.h | 209 +
arch/loongarch/include/asm/ptrace.h | 152 +
arch/loongarch/include/asm/reboot.h | 10 +
arch/loongarch/include/asm/regdef.h | 41 +
arch/loongarch/include/asm/seccomp.h | 20 +
arch/loongarch/include/asm/serial.h | 11 +
arch/loongarch/include/asm/setup.h | 21 +
arch/loongarch/include/asm/shmparam.h | 12 +
arch/loongarch/include/asm/smp.h | 115 +
arch/loongarch/include/asm/sparsemem.h | 23 +
arch/loongarch/include/asm/stackframe.h | 219 +
arch/loongarch/include/asm/stacktrace.h | 74 +
arch/loongarch/include/asm/string.h | 12 +
arch/loongarch/include/asm/switch_to.h | 37 +
arch/loongarch/include/asm/syscall.h | 74 +
arch/loongarch/include/asm/thread_info.h | 106 +
arch/loongarch/include/asm/time.h | 50 +
arch/loongarch/include/asm/timex.h | 26 +
arch/loongarch/include/asm/tlb.h | 180 +
arch/loongarch/include/asm/tlbflush.h | 48 +
arch/loongarch/include/asm/topology.h | 41 +
arch/loongarch/include/asm/types.h | 19 +
arch/loongarch/include/asm/uaccess.h | 269 +
arch/loongarch/include/asm/unistd.h | 11 +
arch/loongarch/include/asm/vdso.h | 38 +
arch/loongarch/include/asm/vdso/clocksource.h | 8 +
arch/loongarch/include/asm/vdso/gettimeofday.h | 99 +
arch/loongarch/include/asm/vdso/processor.h | 14 +
arch/loongarch/include/asm/vdso/vdso.h | 30 +
arch/loongarch/include/asm/vdso/vsyscall.h | 27 +
arch/loongarch/include/asm/vermagic.h | 19 +
arch/loongarch/include/asm/vmalloc.h | 4 +
arch/{h8300 => loongarch}/include/uapi/asm/Kbuild | 2 +-
arch/loongarch/include/uapi/asm/auxvec.h | 17 +
arch/loongarch/include/uapi/asm/bitsperlong.h | 9 +
arch/loongarch/include/uapi/asm/break.h | 23 +
arch/loongarch/include/uapi/asm/byteorder.h | 13 +
arch/loongarch/include/uapi/asm/hwcap.h | 20 +
arch/loongarch/include/uapi/asm/ptrace.h | 52 +
arch/loongarch/include/uapi/asm/reg.h | 59 +
arch/loongarch/include/uapi/asm/sigcontext.h | 44 +
arch/loongarch/include/uapi/asm/signal.h | 13 +
arch/loongarch/include/uapi/asm/ucontext.h | 35 +
arch/loongarch/include/uapi/asm/unistd.h | 5 +
arch/{h8300 => loongarch}/kernel/.gitignore | 0
arch/loongarch/kernel/Makefile | 25 +
arch/loongarch/kernel/access-helper.h | 13 +
arch/loongarch/kernel/acpi.c | 337 +
arch/loongarch/kernel/asm-offsets.c | 264 +
arch/loongarch/kernel/cacheinfo.c | 123 +
arch/loongarch/kernel/cpu-probe.c | 292 +
arch/loongarch/kernel/dma.c | 40 +
arch/loongarch/kernel/efi.c | 72 +
arch/loongarch/kernel/elf.c | 30 +
arch/loongarch/kernel/entry.S | 89 +
arch/loongarch/kernel/env.c | 101 +
arch/loongarch/kernel/fpu.S | 261 +
arch/loongarch/kernel/genex.S | 95 +
arch/loongarch/kernel/head.S | 98 +
arch/loongarch/kernel/idle.c | 16 +
arch/loongarch/kernel/inst.c | 40 +
arch/loongarch/kernel/io.c | 94 +
arch/loongarch/kernel/irq.c | 93 +
arch/loongarch/kernel/mem.c | 64 +
arch/loongarch/kernel/module-sections.c | 121 +
arch/loongarch/kernel/module.c | 375 +
arch/loongarch/kernel/numa.c | 466 +
arch/loongarch/kernel/proc.c | 127 +
arch/loongarch/kernel/process.c | 269 +
arch/loongarch/kernel/ptrace.c | 431 +
arch/loongarch/kernel/reset.c | 102 +
arch/loongarch/kernel/setup.c | 373 +
arch/loongarch/kernel/signal.c | 566 +
arch/loongarch/kernel/smp.c | 749 +
arch/loongarch/kernel/switch.S | 35 +
arch/loongarch/kernel/syscall.c | 63 +
arch/loongarch/kernel/time.c | 214 +
arch/loongarch/kernel/topology.c | 52 +
arch/loongarch/kernel/traps.c | 725 +
arch/loongarch/kernel/vdso.c | 138 +
arch/loongarch/kernel/vmlinux.lds.S | 120 +
arch/loongarch/lib/Makefile | 6 +
arch/loongarch/lib/clear_user.S | 43 +
arch/loongarch/lib/copy_user.S | 47 +
arch/loongarch/lib/delay.c | 43 +
arch/loongarch/lib/dump_tlb.c | 111 +
arch/loongarch/mm/Makefile | 9 +
arch/loongarch/mm/cache.c | 141 +
arch/loongarch/mm/extable.c | 22 +
arch/loongarch/mm/fault.c | 261 +
arch/loongarch/mm/hugetlbpage.c | 87 +
arch/loongarch/mm/init.c | 178 +
arch/loongarch/mm/ioremap.c | 27 +
arch/loongarch/mm/maccess.c | 10 +
arch/loongarch/mm/mmap.c | 125 +
arch/loongarch/mm/page.S | 84 +
arch/loongarch/mm/pgtable.c | 130 +
arch/loongarch/mm/tlb.c | 305 +
arch/loongarch/mm/tlbex.S | 546 +
arch/loongarch/pci/Makefile | 7 +
.../boot/compressed => loongarch/vdso}/.gitignore | 4 +-
arch/loongarch/vdso/Makefile | 96 +
arch/loongarch/vdso/elf.S | 15 +
arch/loongarch/vdso/gen_vdso_offsets.sh | 13 +
arch/loongarch/vdso/sigreturn.S | 24 +
arch/loongarch/vdso/vdso.S | 22 +
arch/loongarch/vdso/vdso.lds.S | 72 +
arch/loongarch/vdso/vgettimeofday.c | 25 +
arch/m68k/Kbuild | 1 +
arch/m68k/Kconfig.bus | 10 -
arch/m68k/Kconfig.cpu | 4 +-
arch/m68k/Kconfig.machine | 18 +
arch/m68k/Makefile | 3 +-
arch/m68k/coldfire/Makefile | 2 +-
arch/m68k/coldfire/dma.c | 43 -
arch/m68k/coldfire/intc.c | 2 +-
arch/m68k/coldfire/m53xx.c | 2 +-
arch/m68k/coldfire/pci.c | 2 +-
arch/m68k/configs/amiga_defconfig | 5 +-
arch/m68k/configs/apollo_defconfig | 5 +-
arch/m68k/configs/atari_defconfig | 5 +-
arch/m68k/configs/bvme6000_defconfig | 5 +-
arch/m68k/configs/hp300_defconfig | 5 +-
arch/m68k/configs/mac_defconfig | 5 +-
arch/m68k/configs/multi_defconfig | 5 +-
arch/m68k/configs/mvme147_defconfig | 5 +-
arch/m68k/configs/mvme16x_defconfig | 5 +-
arch/m68k/configs/q40_defconfig | 5 +-
arch/m68k/configs/sun3_defconfig | 5 +-
arch/m68k/configs/sun3x_defconfig | 5 +-
arch/m68k/configs/virt_defconfig | 68 +
arch/m68k/emu/natfeat.c | 3 +-
arch/m68k/hp300/config.c | 7 -
arch/m68k/include/asm/Kbuild | 1 +
arch/m68k/include/asm/config.h | 2 +
arch/m68k/include/asm/dma.h | 483 -
arch/m68k/include/asm/elf.h | 9 +
arch/m68k/include/asm/export.h | 2 -
arch/m68k/include/asm/io.h | 3 +
arch/m68k/include/asm/irq.h | 3 +-
arch/m68k/include/asm/machdep.h | 2 -
arch/m68k/include/asm/mmu.h | 4 +-
arch/m68k/include/asm/pgtable_mm.h | 7 +
arch/m68k/include/asm/pgtable_no.h | 3 +-
arch/m68k/include/asm/raw_io.h | 6 +-
arch/m68k/include/asm/setup.h | 44 +-
arch/m68k/include/asm/timex.h | 2 +-
arch/m68k/include/asm/virt.h | 25 +
arch/m68k/include/uapi/asm/bootinfo-virt.h | 18 +
arch/m68k/include/uapi/asm/bootinfo.h | 1 +
arch/m68k/include/uapi/asm/ptrace.h | 5 +
arch/m68k/install.sh | 22 -
arch/m68k/kernel/Makefile | 1 +
arch/m68k/kernel/entry.S | 4 +-
arch/m68k/kernel/head.S | 31 +
arch/m68k/kernel/process.c | 17 +-
arch/m68k/kernel/ptrace.c | 65 +-
arch/m68k/kernel/setup_mm.c | 17 +-
arch/m68k/kernel/setup_no.c | 2 -
arch/m68k/kernel/signal.c | 1 +
arch/m68k/kernel/time.c | 9 +
arch/m68k/lib/checksum.c | 2 -
arch/m68k/mac/config.c | 4 +-
arch/m68k/math-emu/fp_arith.c | 2 +-
arch/m68k/mm/kmap.c | 21 +-
arch/m68k/mm/motorola.c | 1 -
arch/m68k/q40/config.c | 7 -
arch/m68k/virt/Makefile | 6 +
arch/m68k/virt/config.c | 132 +
arch/m68k/virt/ints.c | 155 +
arch/m68k/virt/platform.c | 72 +
arch/microblaze/include/asm/string.h | 2 +
arch/microblaze/kernel/kgdb.c | 2 +-
arch/microblaze/kernel/process.c | 12 +-
arch/microblaze/kernel/timer.c | 4 +
arch/microblaze/lib/memcpy.c | 18 +-
arch/microblaze/lib/memmove.c | 31 +-
arch/microblaze/lib/memset.c | 33 +-
arch/microblaze/mm/init.c | 5 +
arch/mips/Kconfig | 17 +-
arch/mips/alchemy/common/dbdma.c | 2 +-
arch/mips/alchemy/devboards/db1300.c | 9 -
arch/mips/bmips/dma.c | 1 +
arch/mips/boot/dts/brcm/bcm97358svmb.dts | 2 +-
arch/mips/boot/dts/brcm/bcm97360svmb.dts | 2 +-
arch/mips/boot/dts/brcm/bcm97425svmb.dts | 2 +-
arch/mips/boot/dts/ingenic/cu1000-neo.dts | 77 +-
arch/mips/boot/dts/ingenic/cu1830-neo.dts | 76 +-
arch/mips/boot/dts/ingenic/jz4780.dtsi | 2 +-
arch/mips/boot/dts/ingenic/x1000.dtsi | 34 +-
arch/mips/boot/dts/ingenic/x1830.dtsi | 55 +-
arch/mips/boot/dts/mscc/jaguar2_pcb110.dts | 10 +-
arch/mips/boot/dts/mscc/jaguar2_pcb111.dts | 10 +-
arch/mips/boot/dts/mscc/jaguar2_pcb118.dts | 6 +-
arch/mips/boot/dts/mscc/ocelot.dtsi | 4 +-
arch/mips/boot/dts/mscc/ocelot_pcb120.dts | 6 +-
arch/mips/boot/dts/mscc/serval_common.dtsi | 14 +-
.../dts/ralink/gardena_smart_gateway_mt7688.dts | 2 +-
arch/mips/boot/dts/ralink/mt7621-gnubee-gb-pc1.dts | 26 +-
arch/mips/boot/dts/ralink/mt7621-gnubee-gb-pc2.dts | 30 +-
arch/mips/boot/dts/ralink/mt7621.dtsi | 4 +-
arch/mips/boot/tools/relocs.c | 2 +-
arch/mips/cavium-octeon/dma-octeon.c | 15 +-
arch/mips/cavium-octeon/executive/cvmx-bootmem.c | 2 +-
.../cavium-octeon/executive/cvmx-helper-xaui.c | 5 +-
arch/mips/cavium-octeon/executive/cvmx-helper.c | 6 +
arch/mips/cavium-octeon/executive/cvmx-pko.c | 2 +-
arch/mips/cavium-octeon/octeon-irq.c | 2 +-
arch/mips/cavium-octeon/octeon-usb.c | 2 +-
arch/mips/configs/cu1000-neo_defconfig | 2 +-
arch/mips/configs/cu1830-neo_defconfig | 2 +-
arch/mips/configs/gpr_defconfig | 5 -
arch/mips/configs/mtx1_defconfig | 6 -
arch/mips/dec/ioasic-irq.c | 4 +-
arch/mips/dec/setup.c | 2 +-
arch/mips/fw/arc/memory.c | 2 +-
arch/mips/generic/board-ingenic.c | 26 -
arch/mips/include/asm/checksum.h | 79 +-
arch/mips/include/asm/compat.h | 41 +-
arch/mips/include/asm/cpu-features.h | 3 +
arch/mips/include/asm/hugetlb.h | 9 +-
.../include/asm/mach-ip27/cpu-feature-overrides.h | 1 -
.../include/asm/mach-ip30/cpu-feature-overrides.h | 1 -
arch/mips/include/asm/mach-ralink/spaces.h | 2 +
arch/mips/include/asm/octeon/cvmx-bootinfo.h | 2 +
arch/mips/include/asm/timex.h | 25 +-
arch/mips/include/asm/unistd.h | 2 +
arch/mips/include/uapi/asm/fcntl.h | 30 +-
arch/mips/include/uapi/asm/socket.h | 2 +
arch/mips/include/uapi/asm/stat.h | 20 +-
arch/mips/include/uapi/asm/termbits.h | 249 +-
arch/mips/jazz/irq.c | 2 +-
arch/mips/kernel/cmpxchg.c | 2 +-
arch/mips/kernel/cpu-probe.c | 2 +-
arch/mips/kernel/crash_dump.c | 27 +-
arch/mips/kernel/idle.c | 2 +-
arch/mips/kernel/kprobes.c | 36 +-
arch/mips/kernel/mips-cpc.c | 1 +
arch/mips/kernel/perf_event_mipsxx.c | 2 +-
arch/mips/kernel/process.c | 13 +-
arch/mips/kernel/reset.c | 3 +-
arch/mips/kernel/setup.c | 17 +-
arch/mips/kernel/smp.c | 6 +
arch/mips/kernel/time.c | 11 +-
arch/mips/kvm/tlb.c | 2 +-
arch/mips/loongson32/Kconfig | 2 +-
arch/mips/loongson64/dma.c | 2 +-
arch/mips/mm/fault.c | 6 +-
arch/mips/net/bpf_jit_comp32.c | 2 +-
arch/mips/pci/pci-octeon.c | 2 +-
arch/mips/pci/pcie-octeon.c | 4 +-
arch/mips/pic32/pic32mzda/config.c | 2 +-
arch/mips/sgi-ip22/ip22-reset.c | 11 +-
arch/mips/sgi-ip27/ip27-xtalk.c | 4 +
arch/mips/sgi-ip30/ip30-xtalk.c | 4 +
arch/mips/sibyte/bcm1480/setup.c | 4 +-
arch/mips/sibyte/common/dma.c | 2 +-
arch/mips/tools/loongson3-llsc-check.c | 2 +-
arch/mips/txx9/generic/pci.c | 2 +-
arch/mips/vr41xx/common/cmu.c | 2 -
arch/nios2/Makefile | 3 +-
arch/nios2/boot/install.sh | 22 -
arch/nios2/include/asm/timex.h | 3 +
arch/nios2/kernel/process.c | 12 +-
arch/openrisc/Kconfig | 54 +-
arch/openrisc/Makefile | 17 +
arch/openrisc/configs/or1klitex_defconfig | 32 +
arch/openrisc/include/asm/Kbuild | 5 +-
arch/openrisc/include/asm/spinlock.h | 27 -
arch/openrisc/include/asm/spinlock_types.h | 7 -
arch/openrisc/include/asm/timex.h | 1 +
arch/openrisc/kernel/entry.S | 20 +-
arch/openrisc/kernel/head.S | 377 +-
arch/openrisc/kernel/process.c | 31 +-
arch/openrisc/kernel/time.c | 3 +-
arch/openrisc/kernel/traps.c | 63 +-
arch/openrisc/lib/delay.c | 1 +
arch/openrisc/mm/fault.c | 9 +-
arch/openrisc/mm/tlb.c | 2 +-
arch/parisc/Kconfig | 5 +-
arch/parisc/Makefile | 12 +-
arch/parisc/configs/generic-32bit_defconfig | 4 +-
arch/parisc/configs/generic-64bit_defconfig | 3 +-
arch/parisc/include/asm/assembly.h | 12 +-
arch/parisc/include/asm/cache.h | 1 +
arch/parisc/include/asm/cacheflush.h | 31 +-
arch/parisc/include/asm/compat.h | 45 +-
arch/parisc/include/asm/fb.h | 4 +
arch/parisc/include/asm/fixmap.h | 25 +-
arch/parisc/include/asm/hugetlb.h | 5 +-
arch/parisc/include/asm/page.h | 6 +-
arch/parisc/include/asm/pgtable.h | 2 +-
arch/parisc/include/asm/timex.h | 3 +-
arch/parisc/include/asm/unistd.h | 3 +-
arch/parisc/include/uapi/asm/socket.h | 2 +
arch/parisc/include/uapi/asm/termbits.h | 241 +-
arch/parisc/install.sh | 28 -
arch/parisc/kernel/cache.c | 331 +-
arch/parisc/kernel/entry.S | 22 +-
arch/parisc/kernel/kprobes.c | 2 +-
arch/parisc/kernel/pacache.S | 94 +-
arch/parisc/kernel/process.c | 22 +-
arch/parisc/kernel/processor.c | 13 +-
arch/parisc/kernel/setup.c | 2 +
arch/parisc/kernel/time.c | 6 +-
arch/parisc/kernel/topology.c | 16 +-
arch/parisc/kernel/traps.c | 2 +-
arch/parisc/math-emu/dfadd.c | 2 +-
arch/parisc/math-emu/dfsub.c | 2 +-
arch/parisc/math-emu/sfadd.c | 2 +-
arch/parisc/math-emu/sfsub.c | 2 +-
arch/parisc/mm/fault.c | 6 +-
arch/parisc/mm/init.c | 6 +
arch/parisc/nm | 6 -
arch/powerpc/Kconfig | 35 +-
arch/powerpc/Kconfig.debug | 3 +-
arch/powerpc/Makefile | 15 +-
arch/powerpc/boot/Makefile | 14 +-
arch/powerpc/boot/crt0.S | 45 +-
arch/powerpc/boot/cuboot-hotfoot.c | 2 +-
arch/powerpc/boot/dts/fsl/p2020si-post.dtsi | 5 +
arch/powerpc/boot/dts/microwatt.dts | 2 +
arch/powerpc/boot/install.sh | 23 -
arch/powerpc/boot/ops.h | 6 -
arch/powerpc/boot/wrapper | 2 +-
arch/powerpc/configs/chrp32_defconfig | 1 -
arch/powerpc/configs/ppc6xx_defconfig | 1 -
arch/powerpc/crypto/aes-spe-glue.c | 2 +-
arch/powerpc/include/asm/book3s/64/hash.h | 4 +
arch/powerpc/include/asm/book3s/64/hugetlb.h | 4 -
arch/powerpc/include/asm/book3s/64/mmu-hash.h | 1 +
arch/powerpc/include/asm/book3s/64/mmu.h | 6 -
arch/powerpc/include/asm/book3s/64/pgtable.h | 34 +-
arch/powerpc/include/asm/book3s/64/radix.h | 12 +-
arch/powerpc/include/asm/book3s/64/slice.h | 26 +
arch/powerpc/include/asm/bug.h | 14 +-
arch/powerpc/include/asm/checksum.h | 26 +-
arch/powerpc/include/asm/code-patching.h | 67 +-
arch/powerpc/include/asm/compat.h | 50 +-
arch/powerpc/include/asm/cputable.h | 16 +-
arch/powerpc/include/asm/drmem.h | 3 +
arch/powerpc/include/asm/eeh.h | 6 -
arch/powerpc/include/asm/elf.h | 14 +-
arch/powerpc/include/asm/fadump-internal.h | 2 +-
arch/powerpc/include/asm/fsl_85xx_cache_sram.h | 35 -
arch/powerpc/include/asm/ftrace.h | 8 +-
arch/powerpc/include/asm/hugetlb.h | 11 +-
arch/powerpc/include/asm/inst.h | 13 +-
arch/powerpc/include/asm/interrupt.h | 52 +-
arch/powerpc/include/asm/io.h | 2 -
arch/powerpc/include/asm/iommu.h | 6 +-
arch/powerpc/include/asm/kasan.h | 22 +
arch/powerpc/include/asm/kup.h | 1 -
arch/powerpc/include/asm/kvm_book3s_asm.h | 3 -
arch/powerpc/include/asm/kvm_host.h | 10 +-
arch/powerpc/include/asm/kvm_ppc.h | 14 +-
arch/powerpc/include/asm/linkage.h | 2 +-
arch/powerpc/include/asm/livepatch.h | 10 +-
arch/powerpc/include/asm/mman.h | 12 -
arch/powerpc/include/asm/mmu_context.h | 5 -
arch/powerpc/include/asm/module.h | 2 -
arch/powerpc/include/asm/nohash/tlbflush.h | 12 +-
arch/powerpc/include/asm/paca.h | 8 +-
arch/powerpc/include/asm/page.h | 8 +-
arch/powerpc/include/asm/parport.h | 2 +-
arch/powerpc/include/asm/pci-bridge.h | 14 +-
arch/powerpc/include/asm/pnv-pci.h | 1 +
arch/powerpc/include/asm/ppc-opcode.h | 109 +-
arch/powerpc/include/asm/ppc_asm.h | 4 +-
arch/powerpc/include/asm/probes.h | 36 +
arch/powerpc/include/asm/processor.h | 2 -
arch/powerpc/include/asm/ptrace.h | 2 +-
arch/powerpc/include/asm/reg.h | 3 -
arch/powerpc/include/asm/signal.h | 5 +
arch/powerpc/include/asm/slice.h | 46 -
arch/powerpc/include/asm/smp.h | 2 -
arch/powerpc/include/asm/svm.h | 6 +-
arch/powerpc/include/asm/swiotlb.h | 1 +
arch/powerpc/include/asm/switch_to.h | 9 +
arch/powerpc/include/asm/task_size_64.h | 8 +
arch/powerpc/include/asm/thread_info.h | 10 +-
arch/powerpc/include/asm/time.h | 1 +
arch/powerpc/include/asm/timex.h | 1 +
arch/powerpc/include/asm/topology.h | 8 +-
arch/powerpc/include/asm/types.h | 8 -
arch/powerpc/include/asm/unistd.h | 1 +
arch/powerpc/include/asm/vas.h | 2 +-
arch/powerpc/include/uapi/asm/auxvec.h | 4 +-
arch/powerpc/include/uapi/asm/signal.h | 5 +
arch/powerpc/include/uapi/asm/stat.h | 10 +-
arch/powerpc/include/uapi/asm/termbits.h | 182 +-
arch/powerpc/kernel/Makefile | 15 +-
arch/powerpc/kernel/btext.c | 5 +-
arch/powerpc/kernel/cacheinfo.c | 1 -
arch/powerpc/kernel/cputable.c | 28 +-
arch/powerpc/kernel/crash_dump.c | 37 +-
arch/powerpc/kernel/dawr.c | 2 +-
arch/powerpc/kernel/dma-swiotlb.c | 1 +
arch/powerpc/kernel/dt_cpu_ftrs.c | 10 +-
arch/powerpc/kernel/eeh.c | 4 +-
arch/powerpc/kernel/eeh_driver.c | 1 -
arch/powerpc/kernel/eeh_event.c | 2 +-
arch/powerpc/kernel/eeh_pe.c | 3 +-
arch/powerpc/kernel/eeh_sysfs.c | 1 +
arch/powerpc/kernel/entry_32.S | 49 -
arch/powerpc/kernel/entry_64.S | 150 -
arch/powerpc/kernel/fadump.c | 54 +-
arch/powerpc/kernel/head_64.S | 4 +-
arch/powerpc/kernel/idle.c | 2 +-
arch/powerpc/kernel/interrupt_64.S | 12 +-
arch/powerpc/kernel/iommu.c | 5 +-
arch/powerpc/kernel/irq.c | 87 +-
arch/powerpc/kernel/isa-bridge.c | 2 +-
arch/powerpc/kernel/kprobes.c | 10 +-
arch/powerpc/kernel/legacy_serial.c | 2 +-
arch/powerpc/kernel/misc_64.S | 2 +-
arch/powerpc/kernel/module.c | 4 +-
arch/powerpc/kernel/module_32.c | 40 +-
arch/powerpc/kernel/module_64.c | 11 +-
arch/powerpc/kernel/nvram_64.c | 2 +-
arch/powerpc/kernel/paca.c | 5 -
arch/powerpc/kernel/pci-common.c | 6 +-
arch/powerpc/kernel/pci-hotplug.c | 1 +
arch/powerpc/kernel/pci_32.c | 1 -
arch/powerpc/kernel/pci_64.c | 11 +-
arch/powerpc/kernel/pci_dn.c | 2 +-
arch/powerpc/kernel/pci_of_scan.c | 4 +-
arch/powerpc/kernel/proc_powerpc.c | 2 +-
arch/powerpc/kernel/process.c | 65 +-
arch/powerpc/kernel/prom.c | 1 -
arch/powerpc/kernel/prom_init.c | 4 +-
arch/powerpc/kernel/ptrace/ptrace-fpu.c | 20 +-
arch/powerpc/kernel/ptrace/ptrace-view.c | 2 +-
arch/powerpc/kernel/ptrace/ptrace.c | 7 +-
arch/powerpc/kernel/rtas-proc.c | 9 +-
arch/powerpc/kernel/rtas-rtc.c | 1 -
arch/powerpc/kernel/rtas.c | 25 +-
arch/powerpc/kernel/rtas_entry.S | 172 +
arch/powerpc/kernel/rtas_flash.c | 2 +-
arch/powerpc/kernel/rtas_pci.c | 3 +-
arch/powerpc/kernel/rtasd.c | 1 -
arch/powerpc/kernel/setup-common.c | 83 +-
arch/powerpc/kernel/setup_32.c | 3 +-
arch/powerpc/kernel/setup_64.c | 5 +-
arch/powerpc/kernel/signal.c | 15 +
arch/powerpc/kernel/signal_32.c | 6 +
arch/powerpc/kernel/signal_64.c | 7 +-
arch/powerpc/kernel/smp.c | 27 +-
arch/powerpc/kernel/syscalls.c | 2 +-
arch/powerpc/kernel/sysfs.c | 2 +-
arch/powerpc/kernel/time.c | 15 +-
arch/powerpc/kernel/trace/Makefile | 5 +-
arch/powerpc/kernel/trace/ftrace.c | 383 +-
arch/powerpc/kernel/traps.c | 6 +-
arch/powerpc/kernel/uprobes.c | 5 +
arch/powerpc/kernel/vdso.c | 1 -
arch/powerpc/kernel/vdso/Makefile | 1 +
arch/powerpc/kernel/vdso/gettimeofday.S | 9 +-
arch/powerpc/kernel/vdso/vdso32.lds.S | 1 -
arch/powerpc/kernel/vdso/vdso64.lds.S | 1 -
arch/powerpc/kernel/watchdog.c | 2 +-
arch/powerpc/kexec/Makefile | 2 +
arch/powerpc/kexec/core.c | 1 -
arch/powerpc/kexec/core_64.c | 4 +-
arch/powerpc/kexec/crash.c | 3 +-
arch/powerpc/kvm/Makefile | 10 +-
arch/powerpc/kvm/book3s_32_sr.S | 26 +-
arch/powerpc/kvm/book3s_64_entry.S | 2 +-
arch/powerpc/kvm/book3s_64_mmu_hv.c | 42 +-
arch/powerpc/kvm/book3s_64_vio.c | 43 +
arch/powerpc/kvm/book3s_64_vio_hv.c | 672 -
arch/powerpc/kvm/book3s_emulate.c | 2 +-
arch/powerpc/kvm/book3s_hv.c | 74 +-
arch/powerpc/kvm/book3s_hv_builtin.c | 64 -
arch/powerpc/kvm/book3s_hv_nested.c | 137 +-
arch/powerpc/kvm/book3s_hv_p9_entry.c | 17 +-
arch/powerpc/kvm/book3s_hv_rm_xics.c | 7 +-
arch/powerpc/kvm/book3s_hv_rm_xive.c | 46 -
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 30 +-
arch/powerpc/kvm/book3s_hv_uvmem.c | 10 +-
arch/powerpc/kvm/book3s_interrupts.S | 2 +-
arch/powerpc/kvm/book3s_pr.c | 2 +-
arch/powerpc/kvm/book3s_pr_papr.c | 6 +
arch/powerpc/kvm/book3s_rmhandlers.S | 2 +-
arch/powerpc/kvm/book3s_xics.c | 2 +-
arch/powerpc/kvm/book3s_xive.c | 655 +-
arch/powerpc/kvm/book3s_xive.h | 7 -
arch/powerpc/kvm/book3s_xive_native.c | 2 +-
arch/powerpc/kvm/book3s_xive_template.c | 636 -
arch/powerpc/kvm/e500mc.c | 3 +-
arch/powerpc/kvm/powerpc.c | 31 +-
arch/powerpc/kvm/trace_hv.h | 8 +-
arch/powerpc/lib/Makefile | 3 +
arch/powerpc/lib/checksum_wrappers.c | 2 -
arch/powerpc/lib/code-patching.c | 61 +-
arch/powerpc/lib/feature-fixups.c | 2 +-
arch/powerpc/lib/sstep.c | 52 +-
arch/powerpc/mm/Makefile | 3 +-
arch/powerpc/mm/book3s32/mmu.c | 1 -
arch/powerpc/mm/book3s64/Makefile | 11 +-
arch/powerpc/mm/book3s64/hash_pgtable.c | 2 +-
arch/powerpc/mm/book3s64/hash_utils.c | 39 +-
arch/powerpc/mm/book3s64/iommu_api.c | 68 -
arch/powerpc/mm/book3s64/pgtable.c | 19 +-
arch/powerpc/mm/book3s64/radix_hugetlbpage.c | 55 -
arch/powerpc/mm/book3s64/radix_pgtable.c | 2 +-
arch/powerpc/mm/book3s64/radix_tlb.c | 2 +-
arch/powerpc/mm/book3s64/slb.c | 4 +-
arch/powerpc/mm/{ => book3s64}/slice.c | 71 +-
arch/powerpc/mm/cacheflush.c | 2 +-
arch/powerpc/mm/drmem.c | 2 +-
arch/powerpc/mm/hugetlbpage.c | 34 -
arch/powerpc/mm/init_32.c | 1 -
arch/powerpc/mm/init_64.c | 7 +-
arch/powerpc/mm/kasan/Makefile | 3 +-
.../mm/kasan/{kasan_init_32.c => init_32.c} | 0
arch/powerpc/mm/kasan/init_book3s_64.c | 102 +
arch/powerpc/mm/mem.c | 10 +-
arch/powerpc/mm/mmap.c | 256 -
arch/powerpc/mm/mmu_decl.h | 4 +
arch/powerpc/mm/nohash/40x.c | 1 -
arch/powerpc/mm/nohash/book3e_hugetlbpage.c | 2 +-
arch/powerpc/mm/nohash/fsl_book3e.c | 22 +-
arch/powerpc/mm/nohash/kaslr_booke.c | 13 +-
arch/powerpc/mm/nohash/mmu_context.c | 9 -
arch/powerpc/mm/nohash/tlb.c | 6 +-
arch/powerpc/mm/numa.c | 36 +-
arch/powerpc/mm/pageattr.c | 1 +
arch/powerpc/mm/pgtable-frag.c | 2 +-
arch/powerpc/mm/pgtable.c | 2 +-
arch/powerpc/mm/pgtable_64.c | 1 -
arch/powerpc/mm/ptdump/ptdump.c | 3 +-
arch/powerpc/net/bpf_jit.h | 4 +-
arch/powerpc/net/bpf_jit_comp.c | 2 +-
arch/powerpc/net/bpf_jit_comp64.c | 4 +-
arch/powerpc/perf/8xx-pmu.c | 2 +-
arch/powerpc/perf/core-book3s.c | 6 +-
arch/powerpc/perf/hv-24x7.c | 40 +-
arch/powerpc/perf/imc-pmu.c | 5 +-
arch/powerpc/perf/isa207-common.c | 18 +-
arch/powerpc/perf/power9-pmu.c | 4 +-
arch/powerpc/platforms/40x/ppc40x_simple.c | 1 -
arch/powerpc/platforms/44x/canyonlands.c | 1 +
arch/powerpc/platforms/44x/fsp2.c | 2 +-
arch/powerpc/platforms/44x/ppc44x_simple.c | 1 -
arch/powerpc/platforms/44x/ppc476.c | 2 +-
arch/powerpc/platforms/44x/sam440ep.c | 1 -
arch/powerpc/platforms/44x/warp.c | 3 +-
arch/powerpc/platforms/4xx/cpm.c | 2 +-
arch/powerpc/platforms/4xx/hsta_msi.c | 1 +
arch/powerpc/platforms/4xx/pci.c | 1 +
arch/powerpc/platforms/4xx/uic.c | 3 +-
arch/powerpc/platforms/512x/clock-commonclk.c | 2 +-
arch/powerpc/platforms/512x/mpc5121_ads.c | 1 -
arch/powerpc/platforms/512x/mpc5121_ads_cpld.c | 3 +-
arch/powerpc/platforms/512x/mpc512x_generic.c | 1 -
arch/powerpc/platforms/512x/mpc512x_shared.c | 4 +-
arch/powerpc/platforms/52xx/efika.c | 1 -
arch/powerpc/platforms/52xx/lite5200.c | 1 -
arch/powerpc/platforms/52xx/lite5200_pm.c | 2 +
arch/powerpc/platforms/52xx/media5200.c | 3 +-
arch/powerpc/platforms/52xx/mpc5200_simple.c | 2 +-
arch/powerpc/platforms/52xx/mpc52xx_common.c | 4 +-
arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 8 +-
arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c | 5 +-
arch/powerpc/platforms/52xx/mpc52xx_pci.c | 22 +-
arch/powerpc/platforms/52xx/mpc52xx_pic.c | 3 +-
arch/powerpc/platforms/52xx/mpc52xx_pm.c | 2 +
arch/powerpc/platforms/82xx/ep8248e.c | 1 -
arch/powerpc/platforms/82xx/km82xx.c | 1 -
arch/powerpc/platforms/82xx/pq2ads-pci-pic.c | 2 +-
arch/powerpc/platforms/83xx/km83xx.c | 1 -
arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c | 15 +-
arch/powerpc/platforms/83xx/mpc832x_mds.c | 1 -
arch/powerpc/platforms/83xx/mpc832x_rdb.c | 1 +
arch/powerpc/platforms/83xx/mpc834x_itx.c | 1 -
arch/powerpc/platforms/83xx/mpc834x_mds.c | 2 +-
arch/powerpc/platforms/83xx/mpc836x_mds.c | 1 -
arch/powerpc/platforms/83xx/mpc836x_rdk.c | 1 -
arch/powerpc/platforms/83xx/mpc837x_mds.c | 2 +-
arch/powerpc/platforms/83xx/suspend.c | 7 +-
arch/powerpc/platforms/83xx/usb.c | 2 +-
arch/powerpc/platforms/85xx/Kconfig | 9 -
arch/powerpc/platforms/85xx/corenet_generic.c | 1 -
arch/powerpc/platforms/85xx/ge_imp3a.c | 2 +-
arch/powerpc/platforms/85xx/ksi8560.c | 1 -
arch/powerpc/platforms/85xx/mpc8536_ds.c | 1 -
arch/powerpc/platforms/85xx/mpc85xx_cds.c | 5 +-
arch/powerpc/platforms/85xx/mpc85xx_ds.c | 2 +-
arch/powerpc/platforms/85xx/mpc85xx_mds.c | 1 -
arch/powerpc/platforms/85xx/mpc85xx_rdb.c | 1 -
arch/powerpc/platforms/85xx/p1010rdb.c | 1 -
arch/powerpc/platforms/85xx/p1022_ds.c | 1 +
arch/powerpc/platforms/85xx/p1022_rdk.c | 1 +
arch/powerpc/platforms/85xx/p1023_rdb.c | 2 +-
arch/powerpc/platforms/85xx/qemu_e500.c | 1 +
arch/powerpc/platforms/85xx/smp.c | 2 +-
arch/powerpc/platforms/85xx/socrates.c | 1 -
arch/powerpc/platforms/85xx/stx_gp3.c | 1 -
arch/powerpc/platforms/85xx/tqm85xx.c | 1 -
arch/powerpc/platforms/85xx/xes_mpc85xx.c | 2 +-
arch/powerpc/platforms/86xx/gef_ppc9a.c | 4 +-
arch/powerpc/platforms/86xx/gef_sbc310.c | 4 +-
arch/powerpc/platforms/86xx/gef_sbc610.c | 4 +-
arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 3 +-
arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 1 -
arch/powerpc/platforms/86xx/mvme7100.c | 1 +
arch/powerpc/platforms/8xx/Makefile | 2 +-
arch/powerpc/platforms/8xx/adder875.c | 4 +-
arch/powerpc/platforms/8xx/cpm1-ic.c | 188 +
arch/powerpc/platforms/8xx/cpm1.c | 142 +-
arch/powerpc/platforms/8xx/ep88xc.c | 3 +-
arch/powerpc/platforms/8xx/m8xx_setup.c | 31 +-
arch/powerpc/platforms/8xx/mpc86xads_setup.c | 3 +-
arch/powerpc/platforms/8xx/mpc885ads_setup.c | 3 +-
arch/powerpc/platforms/8xx/mpc8xx.h | 1 -
arch/powerpc/platforms/8xx/pic.c | 20 +-
arch/powerpc/platforms/8xx/pic.h | 2 +-
arch/powerpc/platforms/8xx/tqm8xx_setup.c | 3 +-
arch/powerpc/platforms/Kconfig.cputype | 11 +-
arch/powerpc/platforms/amigaone/setup.c | 1 +
arch/powerpc/platforms/book3s/vas-api.c | 2 +-
arch/powerpc/platforms/cell/axon_msi.c | 2 +-
arch/powerpc/platforms/cell/cbe_powerbutton.c | 2 +-
arch/powerpc/platforms/cell/cbe_regs.c | 4 +-
arch/powerpc/platforms/cell/cbe_thermal.c | 1 -
arch/powerpc/platforms/cell/interrupt.c | 3 +-
arch/powerpc/platforms/cell/iommu.c | 4 +-
arch/powerpc/platforms/cell/pervasive.c | 1 -
arch/powerpc/platforms/cell/ras.c | 2 +-
arch/powerpc/platforms/cell/setup.c | 1 -
arch/powerpc/platforms/cell/smp.c | 1 -
arch/powerpc/platforms/cell/spider-pci.c | 3 +-
arch/powerpc/platforms/cell/spider-pic.c | 3 +-
arch/powerpc/platforms/cell/spu_base.c | 1 -
arch/powerpc/platforms/cell/spu_manage.c | 5 +-
arch/powerpc/platforms/cell/spu_priv1_mmio.c | 1 -
arch/powerpc/platforms/cell/spufs/inode.c | 2 +-
arch/powerpc/platforms/chrp/nvram.c | 2 +-
arch/powerpc/platforms/chrp/pci.c | 2 +-
arch/powerpc/platforms/chrp/setup.c | 6 +-
arch/powerpc/platforms/chrp/smp.c | 1 -
arch/powerpc/platforms/chrp/time.c | 4 +-
arch/powerpc/platforms/embedded6xx/gamecube.c | 1 -
arch/powerpc/platforms/embedded6xx/holly.c | 3 +-
arch/powerpc/platforms/embedded6xx/linkstation.c | 1 -
arch/powerpc/platforms/embedded6xx/ls_uart.c | 2 +-
arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c | 2 +-
arch/powerpc/platforms/embedded6xx/mvme5100.c | 2 +-
arch/powerpc/platforms/embedded6xx/storcenter.c | 1 -
arch/powerpc/platforms/embedded6xx/usbgecko_udbg.c | 3 +-
arch/powerpc/platforms/embedded6xx/wii.c | 2 +-
arch/powerpc/platforms/fsl_uli1575.c | 1 +
arch/powerpc/platforms/maple/pci.c | 2 +-
arch/powerpc/platforms/maple/setup.c | 2 +-
arch/powerpc/platforms/maple/time.c | 2 +-
arch/powerpc/platforms/pasemi/dma_lib.c | 2 +
arch/powerpc/platforms/pasemi/iommu.c | 1 +
arch/powerpc/platforms/pasemi/misc.c | 1 +
arch/powerpc/platforms/pasemi/msi.c | 2 +-
arch/powerpc/platforms/pasemi/pci.c | 1 +
arch/powerpc/platforms/pasemi/setup.c | 2 +-
arch/powerpc/platforms/powermac/backlight.c | 1 -
arch/powerpc/platforms/powermac/bootx_init.c | 3 +-
arch/powerpc/platforms/powermac/feature.c | 1 -
arch/powerpc/platforms/powermac/low_i2c.c | 4 +-
arch/powerpc/platforms/powermac/nvram.c | 4 +-
arch/powerpc/platforms/powermac/pci.c | 3 +-
arch/powerpc/platforms/powermac/pfunc_core.c | 4 +-
arch/powerpc/platforms/powermac/pic.c | 6 +-
arch/powerpc/platforms/powermac/pmac.h | 2 +
arch/powerpc/platforms/powermac/setup.c | 5 -
arch/powerpc/platforms/powermac/smp.c | 4 +-
arch/powerpc/platforms/powermac/time.c | 2 +-
arch/powerpc/platforms/powermac/udbg_adb.c | 2 +-
arch/powerpc/platforms/powermac/udbg_scc.c | 2 +-
arch/powerpc/platforms/powernv/Makefile | 9 +
arch/powerpc/platforms/powernv/eeh-powernv.c | 29 +-
arch/powerpc/platforms/powernv/idle.c | 4 +-
arch/powerpc/platforms/powernv/ocxl.c | 2 +-
arch/powerpc/platforms/powernv/opal-core.c | 2 +-
arch/powerpc/platforms/powernv/opal-fadump.c | 102 +-
arch/powerpc/platforms/powernv/opal-fadump.h | 10 +-
arch/powerpc/platforms/powernv/opal-flash.c | 4 +
arch/powerpc/platforms/powernv/opal-imc.c | 2 +-
arch/powerpc/platforms/powernv/opal-lpc.c | 2 +-
.../powerpc/platforms/powernv/opal-memory-errors.c | 2 +-
arch/powerpc/platforms/powernv/pci-cxl.c | 1 +
arch/powerpc/platforms/powernv/pci-ioda-tce.c | 5 +-
arch/powerpc/platforms/powernv/pci-ioda.c | 51 +-
arch/powerpc/platforms/powernv/pci-sriov.c | 4 +-
arch/powerpc/platforms/powernv/pci.c | 1 -
arch/powerpc/platforms/powernv/pci.h | 3 +-
arch/powerpc/platforms/powernv/setup.c | 9 +
arch/powerpc/platforms/powernv/smp.c | 2 +-
arch/powerpc/platforms/powernv/ultravisor.c | 1 +
arch/powerpc/platforms/powernv/vas-fault.c | 2 +-
arch/powerpc/platforms/powernv/vas-window.c | 4 +-
arch/powerpc/platforms/powernv/vas.h | 2 +-
arch/powerpc/platforms/ps3/Kconfig | 2 +-
arch/powerpc/platforms/ps3/htab.c | 1 -
arch/powerpc/platforms/ps3/mm.c | 3 +-
arch/powerpc/platforms/ps3/os-area.c | 2 -
arch/powerpc/platforms/ps3/setup.c | 2 +-
arch/powerpc/platforms/ps3/system-bus.c | 2 +-
arch/powerpc/platforms/pseries/Makefile | 4 +
arch/powerpc/platforms/pseries/cmm.c | 4 +-
arch/powerpc/platforms/pseries/dlpar.c | 3 +-
arch/powerpc/platforms/pseries/eeh_pseries.c | 9 +-
arch/powerpc/platforms/pseries/hotplug-cpu.c | 2 +-
arch/powerpc/platforms/pseries/hotplug-memory.c | 1 -
arch/powerpc/platforms/pseries/iommu.c | 5 +-
arch/powerpc/platforms/pseries/kexec.c | 8 +
arch/powerpc/platforms/pseries/lpar.c | 1 -
arch/powerpc/platforms/pseries/lparcfg.c | 1 -
arch/powerpc/platforms/pseries/msi.c | 1 +
arch/powerpc/platforms/pseries/nvram.c | 2 +-
arch/powerpc/platforms/pseries/papr_scm.c | 54 +-
arch/powerpc/platforms/pseries/pci.c | 1 -
arch/powerpc/platforms/pseries/pmem.c | 1 -
arch/powerpc/platforms/pseries/pseries.h | 1 +
arch/powerpc/platforms/pseries/reconfig.c | 1 -
arch/powerpc/platforms/pseries/rtas-fadump.c | 17 +-
arch/powerpc/platforms/pseries/setup.c | 21 +-
arch/powerpc/platforms/pseries/smp.c | 1 -
arch/powerpc/platforms/pseries/svm.c | 26 +-
arch/powerpc/platforms/pseries/vas-sysfs.c | 37 +-
arch/powerpc/platforms/pseries/vas.c | 25 +-
arch/powerpc/platforms/pseries/vas.h | 2 +-
arch/powerpc/platforms/pseries/vio.c | 1 +
arch/powerpc/sysdev/Makefile | 1 -
arch/powerpc/sysdev/cpm2_pic.c | 2 +-
arch/powerpc/sysdev/dart_iommu.c | 8 +-
arch/powerpc/sysdev/dcr.c | 2 +-
arch/powerpc/sysdev/fsl_85xx_cache_ctlr.h | 88 -
arch/powerpc/sysdev/fsl_85xx_cache_sram.c | 147 -
arch/powerpc/sysdev/fsl_85xx_l2ctlr.c | 216 -
arch/powerpc/sysdev/fsl_lbc.c | 5 +-
arch/powerpc/sysdev/fsl_msi.c | 4 +-
arch/powerpc/sysdev/fsl_pci.c | 5 +-
arch/powerpc/sysdev/fsl_rio.c | 2 +
arch/powerpc/sysdev/fsl_soc.c | 1 -
arch/powerpc/sysdev/ge/ge_pic.c | 6 +-
arch/powerpc/sysdev/grackle.c | 2 +-
arch/powerpc/sysdev/i8259.c | 2 +-
arch/powerpc/sysdev/indirect_pci.c | 1 -
arch/powerpc/sysdev/ipic.c | 3 +-
arch/powerpc/sysdev/mmio_nvram.c | 2 +-
arch/powerpc/sysdev/mpic.c | 2 +
arch/powerpc/sysdev/mpic_msgr.c | 5 +-
arch/powerpc/sysdev/mpic_msi.c | 5 +-
arch/powerpc/sysdev/mpic_timer.c | 2 +-
arch/powerpc/sysdev/mpic_u3msi.c | 4 +-
arch/powerpc/sysdev/msi_bitmap.c | 1 +
arch/powerpc/sysdev/pmi.c | 3 +-
arch/powerpc/sysdev/rtc_cmos_setup.c | 2 +-
arch/powerpc/sysdev/tsi108_dev.c | 3 +-
arch/powerpc/sysdev/tsi108_pci.c | 3 +-
arch/powerpc/sysdev/xics/icp-native.c | 3 +-
arch/powerpc/sysdev/xics/icp-opal.c | 1 +
arch/powerpc/sysdev/xics/ics-native.c | 2 +-
arch/powerpc/sysdev/xics/ics-opal.c | 1 -
arch/powerpc/sysdev/xics/ics-rtas.c | 1 -
arch/powerpc/sysdev/xics/xics-common.c | 6 +-
arch/powerpc/sysdev/xive/common.c | 6 +-
arch/powerpc/sysdev/xive/native.c | 4 +-
arch/powerpc/sysdev/xive/spapr.c | 9 +-
arch/powerpc/xmon/ppc-opc.c | 2 +-
arch/powerpc/xmon/xmon.c | 19 +-
arch/riscv/Kbuild | 4 +
arch/riscv/Kconfig | 79 +-
arch/riscv/Kconfig.erratas | 34 +-
arch/riscv/Kconfig.socs | 1 -
arch/riscv/Makefile | 19 +-
arch/riscv/boot/.gitignore | 1 +
arch/riscv/boot/dts/microchip/Makefile | 3 +-
...pfs-fabric.dtsi => mpfs-icicle-kit-fabric.dtsi} | 2 +
...hip-mpfs-icicle-kit.dts => mpfs-icicle-kit.dts} | 105 +-
.../boot/dts/microchip/mpfs-polarberry-fabric.dtsi | 16 +
arch/riscv/boot/dts/microchip/mpfs-polarberry.dts | 99 +
.../microchip/{microchip-mpfs.dtsi => mpfs.dtsi} | 13 +-
arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 5 +-
arch/riscv/boot/install.sh | 21 -
arch/riscv/errata/Makefile | 2 +-
arch/riscv/errata/alternative.c | 75 -
arch/riscv/errata/sifive/errata.c | 20 +-
arch/riscv/errata/thead/Makefile | 11 +
arch/riscv/errata/thead/errata.c | 82 +
arch/riscv/include/asm/Kbuild | 4 +
arch/riscv/include/asm/alternative-macros.h | 133 +-
arch/riscv/include/asm/alternative.h | 25 +-
arch/riscv/include/asm/asm.h | 26 -
arch/riscv/include/asm/atomic.h | 102 +-
arch/riscv/include/asm/bug.h | 4 +-
arch/riscv/include/asm/cmpxchg.h | 12 -
arch/riscv/include/asm/compat.h | 129 +
arch/riscv/include/asm/csr.h | 8 +
arch/riscv/include/asm/elf.h | 50 +-
arch/riscv/include/asm/errata_list.h | 59 +
arch/riscv/include/asm/fixmap.h | 2 -
arch/riscv/include/asm/hwcap.h | 1 +
arch/riscv/include/asm/irq_work.h | 2 +-
arch/riscv/include/asm/kexec.h | 11 +
arch/riscv/include/asm/kvm_host.h | 124 +-
arch/riscv/include/asm/mmu.h | 1 +
arch/riscv/include/asm/pgtable-32.h | 17 +
arch/riscv/include/asm/pgtable-64.h | 84 +-
arch/riscv/include/asm/pgtable-bits.h | 10 -
arch/riscv/include/asm/pgtable.h | 134 +-
arch/riscv/include/asm/processor.h | 6 +-
arch/riscv/include/asm/signal32.h | 18 +
arch/riscv/include/asm/spinlock.h | 135 -
arch/riscv/include/asm/spinlock_types.h | 25 -
arch/riscv/include/asm/syscall.h | 1 +
arch/riscv/include/asm/thread_info.h | 1 +
arch/riscv/include/asm/timex.h | 2 +-
arch/riscv/include/asm/unistd.h | 12 +-
arch/riscv/include/asm/vdso.h | 9 +
arch/riscv/include/asm/vendorid_list.h | 1 +
arch/riscv/include/asm/xip_fixup.h | 31 +
arch/riscv/include/uapi/asm/kvm.h | 20 +
arch/riscv/include/uapi/asm/unistd.h | 3 +-
arch/riscv/kernel/Makefile | 19 +
arch/riscv/kernel/alternative.c | 118 +
arch/riscv/kernel/compat_signal.c | 243 +
arch/riscv/kernel/compat_syscall_table.c | 19 +
arch/riscv/kernel/compat_vdso/.gitignore | 2 +
arch/riscv/kernel/compat_vdso/Makefile | 78 +
arch/riscv/kernel/compat_vdso/compat_vdso.S | 8 +
arch/riscv/kernel/compat_vdso/compat_vdso.lds.S | 3 +
arch/riscv/kernel/compat_vdso/flush_icache.S | 3 +
.../kernel/compat_vdso/gen_compat_vdso_offsets.sh | 5 +
arch/riscv/kernel/compat_vdso/getcpu.S | 3 +
arch/riscv/kernel/compat_vdso/note.S | 3 +
arch/riscv/kernel/compat_vdso/rt_sigreturn.S | 3 +
arch/riscv/kernel/cpu.c | 5 +
arch/riscv/kernel/cpufeature.c | 87 +-
arch/riscv/kernel/crash_dump.c | 26 +-
arch/riscv/kernel/efi.c | 2 +-
arch/riscv/kernel/elf_kexec.c | 448 +
arch/riscv/kernel/entry.S | 18 +-
arch/riscv/kernel/ftrace.c | 6 +-
arch/riscv/kernel/head.S | 2 +
arch/riscv/kernel/machine_kexec.c | 4 +-
arch/riscv/kernel/machine_kexec_file.c | 14 +
arch/riscv/kernel/module.c | 29 +
arch/riscv/kernel/process.c | 49 +-
arch/riscv/kernel/ptrace.c | 87 +-
arch/riscv/kernel/reset.c | 12 +-
arch/riscv/kernel/setup.c | 6 +-
arch/riscv/kernel/signal.c | 7 +-
arch/riscv/kernel/smpboot.c | 4 -
arch/riscv/kernel/suspend_entry.S | 1 +
arch/riscv/kernel/sys_riscv.c | 6 +-
arch/riscv/kernel/traps.c | 2 +-
arch/riscv/kernel/vdso.c | 114 +-
arch/riscv/kernel/vdso/vdso.S | 6 +-
arch/riscv/kvm/main.c | 11 +-
arch/riscv/kvm/mmu.c | 264 +-
arch/riscv/kvm/tlb.S | 74 -
arch/riscv/kvm/tlb.c | 461 +
arch/riscv/kvm/vcpu.c | 144 +-
arch/riscv/kvm/vcpu_exit.c | 6 +-
arch/riscv/kvm/vcpu_sbi_replace.c | 40 +-
arch/riscv/kvm/vcpu_sbi_v01.c | 35 +-
arch/riscv/kvm/vm.c | 8 +-
arch/riscv/kvm/vmid.c | 30 +-
arch/riscv/mm/fault.c | 10 +-
arch/riscv/mm/init.c | 110 +-
arch/riscv/net/bpf_jit.h | 67 +
arch/riscv/net/bpf_jit_comp64.c | 110 +-
arch/riscv/purgatory/.gitignore | 4 +
arch/riscv/purgatory/Makefile | 95 +
arch/riscv/purgatory/entry.S | 47 +
arch/riscv/purgatory/purgatory.c | 45 +
arch/s390/Kconfig | 14 +-
arch/s390/Kconfig.debug | 12 +-
arch/s390/Makefile | 7 +-
arch/s390/boot/.gitignore | 3 +
arch/s390/boot/Makefile | 78 +-
arch/s390/boot/boot.h | 6 +-
arch/s390/boot/{compressed => }/clz_ctz.c | 0
arch/s390/boot/compressed/Makefile | 86 -
arch/s390/boot/{compressed => }/decompressor.c | 0
arch/s390/boot/{compressed => }/decompressor.h | 0
arch/s390/boot/head.S | 366 +-
arch/s390/boot/install.sh | 6 -
arch/s390/boot/ipl_data.c | 84 +
arch/s390/boot/ipl_parm.c | 7 +
arch/s390/boot/kaslr.c | 2 +-
arch/s390/boot/mem_detect.c | 2 +-
arch/s390/boot/startup.c | 2 +-
arch/s390/boot/{compressed => }/vmlinux.lds.S | 9 +
arch/s390/crypto/aes_s390.c | 4 +-
arch/s390/crypto/chacha-glue.c | 34 +-
arch/s390/crypto/des_s390.c | 2 +-
arch/s390/crypto/prng.c | 2 +-
arch/s390/hypfs/hypfs_vm.c | 2 +-
arch/s390/include/asm/alternative-asm.h | 76 +-
arch/s390/include/asm/alternative.h | 93 +-
arch/s390/include/asm/asm-extable.h | 91 +-
arch/s390/include/asm/barrier.h | 16 +-
arch/s390/include/asm/bug.h | 5 +-
arch/s390/include/asm/cio.h | 2 +-
arch/s390/include/asm/compat.h | 124 +-
arch/s390/include/asm/ctl_reg.h | 4 +-
arch/s390/include/asm/entry-common.h | 14 +-
arch/s390/include/asm/hugetlb.h | 26 +-
arch/s390/include/asm/ipl.h | 6 +
arch/s390/include/asm/kexec.h | 12 +-
arch/s390/include/asm/livepatch.h | 22 -
arch/s390/include/asm/lowcore.h | 5 +-
arch/s390/include/asm/nmi.h | 2 +-
arch/s390/include/asm/nospec-insn.h | 12 +-
arch/s390/include/asm/pai.h | 74 +
arch/s390/include/asm/pci_debug.h | 7 +-
arch/s390/include/asm/pgtable.h | 36 +-
arch/s390/include/asm/preempt.h | 15 +-
arch/s390/include/asm/processor.h | 14 +-
arch/s390/include/asm/ptrace.h | 29 +
arch/s390/include/asm/sclp.h | 1 +
arch/s390/include/asm/scsw.h | 83 +-
arch/s390/include/asm/spinlock.h | 3 +-
arch/s390/include/asm/stacktrace.h | 11 +-
arch/s390/include/asm/stp.h | 4 +-
arch/s390/include/asm/timex.h | 1 +
arch/s390/include/asm/uaccess.h | 217 +-
arch/s390/include/asm/unistd.h | 1 +
arch/s390/include/asm/uv.h | 23 +-
arch/s390/include/asm/vx-insn.h | 6 +-
arch/s390/include/uapi/asm/pkey.h | 2 +-
arch/s390/include/uapi/asm/uvdevice.h | 51 +
arch/s390/include/uapi/asm/zcrypt.h | 42 +-
arch/s390/kernel/Makefile | 3 +-
arch/s390/kernel/alternative.c | 61 +-
arch/s390/kernel/asm-offsets.c | 26 +-
arch/s390/kernel/compat_linux.h | 89 +-
arch/s390/kernel/crash_dump.c | 13 +-
arch/s390/kernel/early.c | 5 +-
arch/s390/kernel/{base.S => earlypgm.S} | 33 +-
arch/s390/kernel/entry.S | 63 +-
arch/s390/kernel/entry.h | 2 +
arch/s390/kernel/ftrace.c | 3 +-
arch/s390/kernel/irq.c | 4 +-
arch/s390/kernel/machine_kexec.c | 10 +-
arch/s390/kernel/nmi.c | 6 +-
arch/s390/kernel/perf_cpum_cf_events.c | 148 +
arch/s390/kernel/perf_event.c | 2 +-
arch/s390/kernel/perf_pai_crypto.c | 688 +
arch/s390/kernel/process.c | 12 +-
arch/s390/kernel/relocate_kernel.S | 3 +-
arch/s390/kernel/setup.c | 2 +-
arch/s390/kernel/time.c | 12 +-
arch/s390/kernel/vdso.c | 55 +-
arch/s390/kvm/gaccess.c | 22 +-
arch/s390/kvm/kvm-s390.c | 21 +-
arch/s390/kvm/priv.c | 1 -
arch/s390/lib/spinlock.c | 4 +-
arch/s390/mm/extable.c | 39 +-
arch/s390/mm/gmap.c | 21 +
arch/s390/mm/init.c | 16 +-
arch/s390/mm/mmap.c | 4 +-
arch/s390/mm/pgtable.c | 2 +-
arch/s390/net/bpf_jit_comp.c | 2 +-
arch/s390/pci/pci.c | 2 +-
arch/s390/pci/pci_clp.c | 2 +-
arch/s390/pci/pci_debug.c | 2 +-
arch/s390/pci/pci_event.c | 3 -
arch/s390/pci/pci_insn.c | 108 +-
arch/s390/purgatory/head.S | 30 +-
arch/sh/boards/board-sh7757lcr.c | 2 +-
arch/sh/boards/mach-ecovec24/setup.c | 2 +-
arch/sh/boot/romimage/mmcif-sh7724.c | 2 +-
arch/sh/configs/rsk7201_defconfig | 1 -
arch/sh/configs/rsk7203_defconfig | 1 -
arch/sh/configs/se7206_defconfig | 1 -
arch/sh/include/asm/hugetlb.h | 5 +-
arch/sh/kernel/crash_dump.c | 29 +-
arch/sh/kernel/process_32.c | 12 +-
arch/sh/kernel/reboot.c | 3 +-
arch/sparc/Kconfig | 6 +-
arch/sparc/Makefile | 3 +-
arch/sparc/boot/install.sh | 22 -
arch/sparc/include/asm/compat.h | 61 +-
arch/sparc/include/asm/hugetlb.h | 5 +-
arch/sparc/include/asm/mman.h | 6 -
arch/sparc/include/asm/timex_32.h | 4 +-
arch/sparc/include/asm/unistd.h | 1 +
arch/sparc/include/uapi/asm/socket.h | 1 +
arch/sparc/include/uapi/asm/stat.h | 12 +-
arch/sparc/include/uapi/asm/termbits.h | 223 +-
arch/sparc/kernel/process_32.c | 12 +-
arch/sparc/kernel/process_64.c | 12 +-
arch/sparc/kernel/signal32.c | 1 +
arch/sparc/kernel/signal_64.c | 1 +
arch/sparc/mm/init_64.c | 12 +
arch/sparc/vdso/Makefile | 3 +-
arch/um/Kconfig | 2 +-
arch/um/drivers/Kconfig | 15 +
arch/um/drivers/Makefile | 2 +
arch/um/drivers/chan_kern.c | 10 +-
arch/um/drivers/chan_user.c | 9 +-
arch/um/drivers/daemon_kern.c | 2 +-
arch/um/drivers/line.c | 22 +-
arch/um/drivers/line.h | 4 +-
arch/um/drivers/ssl.c | 2 -
arch/um/drivers/stdio_console.c | 2 -
arch/um/drivers/ubd_kern.c | 3 -
arch/um/drivers/vector_kern.c | 3 +-
arch/um/drivers/virt-pci.c | 7 +-
arch/um/drivers/virtio_uml.c | 33 +-
arch/um/drivers/xterm.c | 7 +-
arch/um/include/asm/Kbuild | 1 +
arch/um/include/asm/irq.h | 22 +-
arch/um/include/asm/thread_info.h | 2 +
arch/um/include/asm/timex.h | 9 +-
arch/um/kernel/exec.c | 2 +-
arch/um/kernel/process.c | 17 +-
arch/um/kernel/ptrace.c | 8 +-
arch/um/kernel/signal.c | 4 +-
arch/x86/Kconfig | 201 +-
arch/x86/Kconfig.debug | 31 +-
arch/x86/Makefile | 4 +-
arch/x86/boot/boot.h | 73 +-
arch/x86/boot/compressed/Makefile | 2 +
arch/x86/boot/compressed/acpi.c | 176 +-
arch/x86/boot/compressed/early_serial_console.c | 3 +-
arch/x86/boot/compressed/efi.c | 234 +
arch/x86/boot/compressed/efi.h | 126 +
arch/x86/boot/compressed/head_64.S | 64 +-
arch/x86/boot/compressed/ident_map_64.c | 39 +-
arch/x86/boot/compressed/idt_64.c | 18 +-
arch/x86/boot/compressed/kaslr.c | 3 +-
arch/x86/boot/compressed/mem_encrypt.S | 36 -
arch/x86/boot/compressed/misc.c | 17 +-
arch/x86/boot/compressed/misc.h | 60 +-
arch/x86/boot/compressed/pgtable.h | 2 +-
arch/x86/boot/compressed/pgtable_64.c | 3 +-
arch/x86/boot/compressed/sev.c | 263 +-
arch/x86/boot/compressed/tdcall.S | 3 +
arch/x86/boot/compressed/tdx.c | 77 +
arch/x86/boot/compressed/tdx.h | 13 +
arch/x86/boot/cpucheck.c | 30 +-
arch/x86/boot/cpuflags.c | 3 +-
arch/x86/boot/cpuflags.h | 1 +
arch/x86/boot/header.S | 4 +
arch/x86/boot/install.sh | 22 -
arch/x86/boot/io.h | 41 +
arch/x86/boot/main.c | 6 +-
arch/x86/boot/msr.h | 26 +
arch/x86/coco/Makefile | 2 +
arch/x86/coco/core.c | 25 +-
.../staging/vme => arch/x86/coco/tdx}/Makefile | 3 +-
arch/x86/coco/tdx/tdcall.S | 205 +
arch/x86/coco/tdx/tdx.c | 692 +
arch/x86/crypto/blowfish_glue.c | 8 +-
arch/x86/crypto/camellia_glue.c | 8 +-
arch/x86/crypto/serpent_avx2_glue.c | 8 +-
arch/x86/crypto/twofish_glue.c | 8 +-
arch/x86/crypto/twofish_glue_3way.c | 8 +-
arch/x86/entry/calling.h | 19 +-
arch/x86/entry/entry_64.S | 62 +-
arch/x86/entry/entry_64_compat.S | 111 +-
arch/x86/entry/vdso/Makefile | 3 +-
arch/x86/entry/vdso/vma.c | 2 +-
arch/x86/entry/vsyscall/vsyscall_64.c | 2 +-
arch/x86/events/Kconfig | 20 +-
arch/x86/events/amd/Makefile | 1 +
arch/x86/events/amd/brs.c | 367 +
arch/x86/events/amd/core.c | 505 +-
arch/x86/events/amd/ibs.c | 209 +-
arch/x86/events/core.c | 12 +-
arch/x86/events/intel/core.c | 4 +-
arch/x86/events/intel/cstate.c | 2 +
arch/x86/events/intel/lbr.c | 36 +-
arch/x86/events/intel/uncore.c | 2 +
arch/x86/events/intel/uncore_snb.c | 454 +-
arch/x86/events/msr.c | 2 +
arch/x86/events/perf_event.h | 125 +-
arch/x86/ia32/Makefile | 2 -
arch/x86/ia32/ia32_aout.c | 325 -
arch/x86/include/asm/acenv.h | 14 +-
arch/x86/include/asm/amd-ibs.h | 2 +-
arch/x86/include/asm/amd_nb.h | 1 -
arch/x86/include/asm/apic.h | 7 +
arch/x86/include/asm/apicdef.h | 6 -
arch/x86/include/asm/bootparam_utils.h | 1 +
arch/x86/include/asm/bug.h | 2 +-
arch/x86/include/asm/cmpxchg_32.h | 21 +
arch/x86/include/asm/cmpxchg_64.h | 6 +
arch/x86/include/asm/compat.h | 104 +-
arch/x86/include/asm/cpu.h | 22 +-
arch/x86/include/asm/cpu_entry_area.h | 2 +-
arch/x86/include/asm/cpufeature.h | 9 +-
arch/x86/include/asm/cpufeatures.h | 7 +-
arch/x86/include/asm/cpuid.h | 34 +
arch/x86/include/asm/disabled-features.h | 16 +-
arch/x86/include/asm/dma-mapping.h | 12 -
arch/x86/include/asm/e820/api.h | 5 +
arch/x86/include/asm/efi.h | 14 +
arch/x86/include/asm/elf.h | 15 +-
arch/x86/include/asm/entry-common.h | 4 +-
arch/x86/include/asm/extable.h | 8 +-
arch/x86/include/asm/fpu/api.h | 3 +-
arch/x86/include/asm/fpu/sched.h | 2 +-
arch/x86/include/asm/ftrace.h | 7 +
arch/x86/include/asm/gart.h | 5 +-
arch/x86/include/asm/highmem.h | 1 +
arch/x86/include/asm/idtentry.h | 4 +
arch/x86/include/asm/io.h | 42 +-
arch/x86/include/asm/iommu.h | 8 +
arch/x86/include/asm/iommu_table.h | 102 -
arch/x86/include/asm/irqflags.h | 8 -
arch/x86/include/asm/jump_label.h | 6 +-
arch/x86/include/asm/kexec.h | 8 +
arch/x86/include/asm/kvm-x86-ops.h | 1 +
arch/x86/include/asm/kvm-x86-pmu-ops.h | 31 +
arch/x86/include/asm/kvm_host.h | 96 +-
arch/x86/include/asm/kvm_para.h | 22 +
arch/x86/include/asm/livepatch.h | 20 -
arch/x86/include/asm/mem_encrypt.h | 6 +-
arch/x86/include/asm/mmu_context.h | 2 +-
arch/x86/include/asm/mmx.h | 0
arch/x86/include/asm/msr-index.h | 19 +
arch/x86/include/asm/msr.h | 11 +-
arch/x86/include/asm/nmi.h | 1 +
arch/x86/include/asm/page_64.h | 2 +-
arch/x86/include/asm/pci_x86.h | 11 +
arch/x86/include/asm/perf_event.h | 43 +
arch/x86/include/asm/pgtable.h | 54 +-
arch/x86/include/asm/pgtable_64.h | 4 +-
arch/x86/include/asm/pgtable_64_types.h | 5 +
arch/x86/include/asm/pgtable_types.h | 2 +
arch/x86/include/asm/pkeys.h | 8 -
arch/x86/include/asm/processor.h | 4 +-
arch/x86/include/asm/proto.h | 8 +-
arch/x86/include/asm/ptrace.h | 4 +
arch/x86/include/asm/realmode.h | 1 +
arch/x86/include/asm/segment.h | 12 -
arch/x86/include/asm/set_memory.h | 52 -
arch/x86/include/asm/setup.h | 31 +-
arch/x86/include/asm/sev-common.h | 82 +
arch/x86/include/asm/sev.h | 137 +-
arch/x86/include/asm/shared/io.h | 34 +
arch/x86/include/asm/shared/msr.h | 15 +
arch/x86/include/asm/shared/tdx.h | 40 +
arch/x86/include/asm/smap.h | 24 -
arch/x86/include/asm/special_insns.h | 7 +-
arch/x86/include/asm/suspend_32.h | 2 +-
arch/x86/include/asm/suspend_64.h | 12 +-
arch/x86/include/asm/svm.h | 179 +-
arch/x86/include/asm/swiotlb.h | 30 -
arch/x86/include/asm/switch_to.h | 8 +-
arch/x86/include/asm/tdx.h | 91 +
arch/x86/include/asm/text-patching.h | 1 +
arch/x86/include/asm/thread_info.h | 4 +-
arch/x86/include/asm/timex.h | 9 +
arch/x86/include/asm/tlbflush.h | 97 +
arch/x86/include/asm/topology.h | 23 +-
arch/x86/include/asm/traps.h | 2 +-
arch/x86/include/asm/tsc.h | 7 +-
arch/x86/include/asm/uaccess.h | 142 +
arch/x86/include/asm/unistd.h | 1 +
arch/x86/include/asm/vmx.h | 10 +-
arch/x86/include/asm/xen/page-coherent.h | 24 -
arch/x86/include/asm/xen/page.h | 8 -
arch/x86/include/asm/xen/swiotlb-xen.h | 8 +-
arch/x86/include/uapi/asm/amd_hsmp.h | 114 +-
arch/x86/include/uapi/asm/bootparam.h | 4 +-
arch/x86/include/uapi/asm/kvm.h | 11 +-
arch/x86/include/uapi/asm/mman.h | 14 -
arch/x86/include/uapi/asm/svm.h | 13 +
arch/x86/kernel/Makefile | 4 -
arch/x86/kernel/acpi/boot.c | 102 +-
arch/x86/kernel/acpi/cppc.c | 29 +-
arch/x86/kernel/alternative.c | 73 +-
arch/x86/kernel/amd_gart_64.c | 5 +-
arch/x86/kernel/amd_nb.c | 7 +-
arch/x86/kernel/aperture_64.c | 14 +-
arch/x86/kernel/apic/apic.c | 28 +-
arch/x86/kernel/apic/io_apic.c | 18 +-
arch/x86/kernel/apic/x2apic_uv_x.c | 16 +-
arch/x86/kernel/asm-offsets.c | 17 +
arch/x86/kernel/asm-offsets_64.c | 4 +-
arch/x86/kernel/cpu/aperfmperf.c | 480 +-
arch/x86/kernel/cpu/bugs.c | 7 +
arch/x86/kernel/cpu/common.c | 107 +-
arch/x86/kernel/cpu/intel.c | 110 +-
arch/x86/kernel/cpu/mce/amd.c | 32 +-
arch/x86/kernel/cpu/mce/apei.c | 8 +-
arch/x86/kernel/cpu/mce/core.c | 10 +-
arch/x86/kernel/cpu/mce/severity.c | 110 +-
arch/x86/kernel/cpu/microcode/core.c | 115 +-
arch/x86/kernel/cpu/microcode/intel.c | 59 +-
arch/x86/kernel/cpu/mshyperv.c | 10 +-
arch/x86/kernel/cpu/proc.c | 11 +-
arch/x86/kernel/cpu/resctrl/rdtgroup.c | 14 +-
arch/x86/kernel/cpu/scattered.c | 1 +
arch/x86/kernel/cpu/sgx/encl.c | 218 +-
arch/x86/kernel/cpu/sgx/encl.h | 9 +-
arch/x86/kernel/cpu/sgx/main.c | 22 +-
arch/x86/kernel/crash.c | 2 +-
arch/x86/kernel/crash_dump_32.c | 29 +-
arch/x86/kernel/crash_dump_64.c | 48 +-
arch/x86/kernel/early-quirks.c | 1 +
arch/x86/kernel/fpu/core.c | 88 +-
arch/x86/kernel/fpu/xstate.c | 65 +-
arch/x86/kernel/fpu/xstate.h | 14 +-
arch/x86/kernel/ftrace.c | 23 +-
arch/x86/kernel/head64.c | 36 +-
arch/x86/kernel/head_64.S | 65 +-
arch/x86/kernel/idt.c | 3 +
arch/x86/kernel/kvm.c | 118 +-
arch/x86/kernel/kvmclock.c | 2 +-
arch/x86/kernel/machine_kexec_64.c | 12 +-
arch/x86/kernel/nmi.c | 12 +-
arch/x86/kernel/pci-dma.c | 114 +-
arch/x86/kernel/pci-iommu_table.c | 77 -
arch/x86/kernel/pci-swiotlb.c | 77 -
arch/x86/kernel/probe_roms.c | 13 +-
arch/x86/kernel/process.c | 41 +-
arch/x86/kernel/process_32.c | 13 +-
arch/x86/kernel/process_64.c | 4 +-
arch/x86/kernel/ptrace.c | 6 +-
arch/x86/kernel/reboot.c | 4 +-
arch/x86/kernel/resource.c | 25 +-
arch/x86/kernel/setup.c | 34 +-
arch/x86/kernel/sev-shared.c | 534 +-
arch/x86/kernel/sev.c | 855 +-
arch/x86/kernel/signal.c | 8 +-
arch/x86/kernel/signal_compat.c | 2 +
arch/x86/kernel/smpboot.c | 373 +-
arch/x86/kernel/step.c | 3 +-
arch/x86/kernel/sys_x86_64.c | 7 +-
arch/x86/kernel/tboot.c | 1 -
arch/x86/kernel/tracepoint.c | 6 -
arch/x86/kernel/traps.c | 162 +-
arch/x86/kernel/vm86_32.c | 4 +-
arch/x86/kernel/vmlinux.lds.S | 12 -
arch/x86/kvm/cpuid.c | 24 +-
arch/x86/kvm/hyperv.c | 14 +-
arch/x86/kvm/i8259.c | 1 -
arch/x86/kvm/irq.c | 10 +-
arch/x86/kvm/irq_comm.c | 2 +-
arch/x86/kvm/lapic.c | 5 +-
arch/x86/kvm/lapic.h | 1 -
arch/x86/kvm/mmu.h | 109 +-
arch/x86/kvm/mmu/mmu.c | 649 +-
arch/x86/kvm/mmu/mmu_internal.h | 123 +-
arch/x86/kvm/mmu/mmutrace.h | 1 +
arch/x86/kvm/mmu/paging_tmpl.h | 71 +-
arch/x86/kvm/mmu/spte.c | 75 +-
arch/x86/kvm/mmu/spte.h | 20 +-
arch/x86/kvm/mmu/tdp_iter.c | 9 +
arch/x86/kvm/mmu/tdp_iter.h | 35 +-
arch/x86/kvm/mmu/tdp_mmu.c | 134 +-
arch/x86/kvm/pmu.c | 73 +-
arch/x86/kvm/pmu.h | 7 +-
arch/x86/kvm/svm/avic.c | 84 +-
arch/x86/kvm/svm/nested.c | 312 +-
arch/x86/kvm/svm/pmu.c | 30 +-
arch/x86/kvm/svm/sev.c | 92 +-
arch/x86/kvm/svm/svm.c | 257 +-
arch/x86/kvm/svm/svm.h | 61 +-
arch/x86/kvm/trace.h | 20 +
arch/x86/kvm/vmx/nested.c | 63 +-
arch/x86/kvm/vmx/pmu_intel.c | 2 +-
arch/x86/kvm/vmx/posted_intr.c | 11 +-
arch/x86/kvm/vmx/vmcs.h | 5 +
arch/x86/kvm/vmx/vmx.c | 50 +-
arch/x86/kvm/x86.c | 423 +-
arch/x86/kvm/xen.c | 1245 +-
arch/x86/kvm/xen.h | 68 +-
arch/x86/lib/csum-wrappers_64.c | 2 -
arch/x86/lib/delay.c | 4 +-
arch/x86/lib/insn-eval.c | 5 +-
arch/x86/lib/kaslr.c | 2 +-
arch/x86/lib/mmx_32.c | 0
arch/x86/math-emu/get_address.c | 2 +-
arch/x86/mm/Makefile | 3 +-
arch/x86/mm/amdtopology.c | 2 +-
arch/x86/mm/fault.c | 2 +-
arch/x86/mm/init_64.c | 16 +-
arch/x86/mm/ioremap.c | 5 +
arch/x86/mm/mem_encrypt.c | 20 +-
arch/x86/mm/mem_encrypt_amd.c | 78 +-
arch/x86/mm/mem_encrypt_identity.c | 8 +
arch/x86/mm/mmio-mod.c | 2 +-
arch/x86/mm/numa_emulation.c | 4 +-
arch/x86/mm/pat/memtype.c | 2 +-
arch/x86/mm/pat/set_memory.c | 49 +-
arch/x86/mm/pgprot.c | 35 +
arch/x86/mm/pgtable.c | 13 +-
arch/x86/mm/pti.c | 2 +-
arch/x86/mm/setup_nx.c | 62 -
arch/x86/net/bpf_jit_comp.c | 79 +-
arch/x86/pci/acpi.c | 93 +
arch/x86/pci/common.c | 8 +
arch/x86/pci/irq.c | 377 +-
arch/x86/pci/sta2x11-fixup.c | 2 +-
arch/x86/platform/efi/efi.c | 3 +
arch/x86/platform/efi/efi_thunk_64.S | 2 +-
arch/x86/platform/uv/uv_nmi.c | 23 +-
arch/x86/realmode/init.c | 2 +-
arch/x86/realmode/rm/header.S | 1 +
arch/x86/realmode/rm/trampoline_64.S | 57 +-
arch/x86/realmode/rm/trampoline_common.S | 12 +-
arch/x86/realmode/rm/wakemain.c | 4 +
arch/x86/um/ldt.c | 6 +-
arch/x86/virt/vmx/tdx/tdxcall.S | 96 +
arch/x86/xen/Makefile | 2 -
arch/x86/xen/enlighten_hvm.c | 2 +
arch/x86/xen/enlighten_pv.c | 8 +-
arch/x86/xen/mmu_pv.c | 1 +
arch/x86/xen/pci-swiotlb-xen.c | 96 -
arch/x86/xen/smp_pv.c | 5 +-
arch/xtensa/Kconfig | 18 +
arch/xtensa/boot/lib/Makefile | 1 +
arch/xtensa/include/asm/barrier.h | 12 +-
arch/xtensa/include/asm/bitops.h | 10 +-
arch/xtensa/include/asm/coprocessor.h | 11 +-
arch/xtensa/include/asm/processor.h | 7 +
arch/xtensa/include/asm/sections.h | 2 +-
arch/xtensa/include/asm/thread_info.h | 11 +-
arch/xtensa/include/asm/timex.h | 6 +-
arch/xtensa/include/asm/traps.h | 40 +-
arch/xtensa/kernel/Makefile | 1 +
arch/xtensa/kernel/asm-offsets.c | 19 +-
arch/xtensa/kernel/coprocessor.S | 230 +-
arch/xtensa/kernel/entry.S | 335 +-
arch/xtensa/kernel/hibernate.c | 25 +
arch/xtensa/kernel/process.c | 129 +-
arch/xtensa/kernel/ptrace.c | 7 +-
arch/xtensa/kernel/s32c1i_selftest.c | 7 +-
arch/xtensa/kernel/signal.c | 7 +-
arch/xtensa/kernel/smp.c | 7 +
arch/xtensa/kernel/traps.c | 143 +-
arch/xtensa/lib/Makefile | 2 +
arch/xtensa/lib/kcsan-stubs.c | 54 +
arch/xtensa/lib/memcopy.S | 20 +-
arch/xtensa/mm/Makefile | 3 +-
arch/xtensa/mm/fault.c | 112 +-
arch/xtensa/mm/mmu.c | 2 +
arch/xtensa/platforms/iss/network.c | 150 +-
arch/xtensa/platforms/iss/simdisk.c | 18 +-
arch/xtensa/platforms/xt2000/setup.c | 2 +-
block/Makefile | 1 +
block/badblocks.c | 2 -
block/bdev.c | 23 +-
block/bfq-cgroup.c | 111 +-
block/bfq-iosched.c | 95 +-
block/bfq-iosched.h | 11 +-
block/bio.c | 171 +-
block/blk-cgroup-fc-appid.c | 57 +
block/blk-cgroup.c | 176 +-
block/blk-cgroup.h | 140 +-
block/blk-core.c | 87 +-
block/blk-crypto-fallback.c | 15 +-
block/blk-ia-ranges.c | 7 +-
block/blk-iocost.c | 76 +-
block/blk-iolatency.c | 130 +-
block/blk-lib.c | 124 +-
block/blk-map.c | 47 +-
block/blk-mq-debugfs.c | 2 -
block/blk-mq-tag.c | 1 -
block/blk-mq.c | 154 +-
block/blk-settings.c | 74 +-
block/blk-throttle.c | 5 +-
block/blk.h | 21 -
block/bounce.c | 1 -
block/fops.c | 47 +-
block/genhd.c | 6 +-
block/ioctl.c | 48 +-
block/mq-deadline.c | 1 +
block/partitions/acorn.c | 4 +-
block/partitions/atari.c | 1 -
block/partitions/core.c | 14 +-
block/partitions/ldm.c | 15 +-
certs/.gitignore | 1 +
certs/Kconfig | 17 +-
certs/Makefile | 18 +-
certs/blacklist.c | 227 +-
certs/extract-cert.c | 7 +
crypto/Kconfig | 18 +-
crypto/Makefile | 6 +-
crypto/asymmetric_keys/x509_public_key.c | 3 +-
crypto/cryptd.c | 23 +-
crypto/crypto_engine.c | 1 +
crypto/ecrdsa.c | 8 +-
{lib/crypto => crypto}/sm3.c | 0
{lib/crypto => crypto}/sm4.c | 10 +-
crypto/testmgr.c | 75 +-
drivers/Kconfig | 6 +-
drivers/Makefile | 5 +-
drivers/accessibility/speakup/fakekey.c | 4 +-
drivers/accessibility/speakup/serialio.c | 2 +-
drivers/accessibility/speakup/speakup_acntpc.c | 2 +-
drivers/accessibility/speakup/speakup_acntsa.c | 2 +-
drivers/accessibility/speakup/speakup_apollo.c | 2 +-
drivers/accessibility/speakup/speakup_audptr.c | 2 +-
drivers/accessibility/speakup/speakup_bns.c | 2 +-
drivers/accessibility/speakup/speakup_decext.c | 2 +-
drivers/accessibility/speakup/speakup_dectlk.c | 2 +-
drivers/accessibility/speakup/speakup_dtlk.c | 2 +-
drivers/accessibility/speakup/speakup_dummy.c | 2 +-
drivers/accessibility/speakup/speakup_keypc.c | 2 +-
drivers/accessibility/speakup/speakup_ltlk.c | 2 +-
drivers/accessibility/speakup/speakup_soft.c | 3 +-
drivers/accessibility/speakup/speakup_spkout.c | 2 +-
drivers/accessibility/speakup/speakup_txprt.c | 2 +-
drivers/acpi/ac.c | 4 +-
drivers/acpi/acpi_pad.c | 7 +
drivers/acpi/acpi_video.c | 31 +-
drivers/acpi/acpica/acapps.h | 4 +-
drivers/acpi/acpica/accommon.h | 2 +-
drivers/acpi/acpica/acconvert.h | 2 +-
drivers/acpi/acpica/acdebug.h | 2 +-
drivers/acpi/acpica/acdispat.h | 2 +-
drivers/acpi/acpica/acevents.h | 2 +-
drivers/acpi/acpica/acglobal.h | 2 +-
drivers/acpi/acpica/achware.h | 2 +-
drivers/acpi/acpica/acinterp.h | 2 +-
drivers/acpi/acpica/aclocal.h | 2 +-
drivers/acpi/acpica/acmacros.h | 2 +-
drivers/acpi/acpica/acnamesp.h | 2 +-
drivers/acpi/acpica/acobject.h | 2 +-
drivers/acpi/acpica/acopcode.h | 2 +-
drivers/acpi/acpica/acparser.h | 2 +-
drivers/acpi/acpica/acpredef.h | 2 +-
drivers/acpi/acpica/acresrc.h | 2 +-
drivers/acpi/acpica/acstruct.h | 2 +-
drivers/acpi/acpica/actables.h | 2 +-
drivers/acpi/acpica/acutils.h | 2 +-
drivers/acpi/acpica/amlcode.h | 2 +-
drivers/acpi/acpica/amlresrc.h | 2 +-
drivers/acpi/acpica/dbhistry.c | 2 +-
drivers/acpi/acpica/dsargs.c | 2 +-
drivers/acpi/acpica/dscontrol.c | 2 +-
drivers/acpi/acpica/dsdebug.c | 2 +-
drivers/acpi/acpica/dsfield.c | 2 +-
drivers/acpi/acpica/dsinit.c | 2 +-
drivers/acpi/acpica/dsmethod.c | 2 +-
drivers/acpi/acpica/dsobject.c | 2 +-
drivers/acpi/acpica/dsopcode.c | 2 +-
drivers/acpi/acpica/dspkginit.c | 2 +-
drivers/acpi/acpica/dswexec.c | 4 +-
drivers/acpi/acpica/dswload.c | 2 +-
drivers/acpi/acpica/dswload2.c | 2 +-
drivers/acpi/acpica/dswscope.c | 2 +-
drivers/acpi/acpica/dswstate.c | 2 +-
drivers/acpi/acpica/evevent.c | 2 +-
drivers/acpi/acpica/evglock.c | 2 +-
drivers/acpi/acpica/evgpe.c | 2 +-
drivers/acpi/acpica/evgpeblk.c | 2 +-
drivers/acpi/acpica/evgpeinit.c | 2 +-
drivers/acpi/acpica/evgpeutil.c | 2 +-
drivers/acpi/acpica/evhandler.c | 2 +-
drivers/acpi/acpica/evmisc.c | 2 +-
drivers/acpi/acpica/evregion.c | 2 +-
drivers/acpi/acpica/evrgnini.c | 2 +-
drivers/acpi/acpica/evxface.c | 2 +-
drivers/acpi/acpica/evxfevnt.c | 2 +-
drivers/acpi/acpica/evxfgpe.c | 2 +-
drivers/acpi/acpica/evxfregn.c | 2 +-
drivers/acpi/acpica/exconcat.c | 2 +-
drivers/acpi/acpica/exconfig.c | 61 +-
drivers/acpi/acpica/exconvrt.c | 2 +-
drivers/acpi/acpica/excreate.c | 2 +-
drivers/acpi/acpica/exdebug.c | 2 +-
drivers/acpi/acpica/exdump.c | 2 +-
drivers/acpi/acpica/exfield.c | 2 +-
drivers/acpi/acpica/exfldio.c | 4 +-
drivers/acpi/acpica/exmisc.c | 2 +-
drivers/acpi/acpica/exmutex.c | 2 +-
drivers/acpi/acpica/exnames.c | 2 +-
drivers/acpi/acpica/exoparg1.c | 23 +-
drivers/acpi/acpica/exoparg2.c | 2 +-
drivers/acpi/acpica/exoparg3.c | 2 +-
drivers/acpi/acpica/exoparg6.c | 2 +-
drivers/acpi/acpica/exprep.c | 2 +-
drivers/acpi/acpica/exregion.c | 2 +-
drivers/acpi/acpica/exresnte.c | 2 +-
drivers/acpi/acpica/exresolv.c | 2 +-
drivers/acpi/acpica/exresop.c | 2 +-
drivers/acpi/acpica/exserial.c | 2 +-
drivers/acpi/acpica/exstore.c | 2 +-
drivers/acpi/acpica/exstoren.c | 2 +-
drivers/acpi/acpica/exstorob.c | 2 +-
drivers/acpi/acpica/exsystem.c | 29 +-
drivers/acpi/acpica/extrace.c | 2 +-
drivers/acpi/acpica/exutils.c | 2 +-
drivers/acpi/acpica/hwacpi.c | 2 +-
drivers/acpi/acpica/hwesleep.c | 2 +-
drivers/acpi/acpica/hwgpe.c | 2 +-
drivers/acpi/acpica/hwregs.c | 2 +-
drivers/acpi/acpica/hwsleep.c | 2 +-
drivers/acpi/acpica/hwtimer.c | 2 +-
drivers/acpi/acpica/hwvalid.c | 2 +-
drivers/acpi/acpica/hwxface.c | 2 +-
drivers/acpi/acpica/hwxfsleep.c | 2 +-
drivers/acpi/acpica/nsarguments.c | 2 +-
drivers/acpi/acpica/nsconvert.c | 2 +-
drivers/acpi/acpica/nsdump.c | 2 +-
drivers/acpi/acpica/nsdumpdv.c | 2 +-
drivers/acpi/acpica/nsinit.c | 2 +-
drivers/acpi/acpica/nsload.c | 2 +-
drivers/acpi/acpica/nsparse.c | 2 +-
drivers/acpi/acpica/nspredef.c | 2 +-
drivers/acpi/acpica/nsprepkg.c | 2 +-
drivers/acpi/acpica/nsrepair.c | 2 +-
drivers/acpi/acpica/nsrepair2.c | 2 +-
drivers/acpi/acpica/nsutils.c | 2 +-
drivers/acpi/acpica/nswalk.c | 2 +-
drivers/acpi/acpica/nsxfname.c | 2 +-
drivers/acpi/acpica/psargs.c | 2 +-
drivers/acpi/acpica/psloop.c | 2 +-
drivers/acpi/acpica/psobject.c | 2 +-
drivers/acpi/acpica/psopcode.c | 6 +-
drivers/acpi/acpica/psopinfo.c | 2 +-
drivers/acpi/acpica/psparse.c | 2 +-
drivers/acpi/acpica/psscope.c | 2 +-
drivers/acpi/acpica/pstree.c | 2 +-
drivers/acpi/acpica/psutils.c | 2 +-
drivers/acpi/acpica/pswalk.c | 2 +-
drivers/acpi/acpica/psxface.c | 2 +-
drivers/acpi/acpica/tbdata.c | 2 +-
drivers/acpi/acpica/tbfadt.c | 2 +-
drivers/acpi/acpica/tbfind.c | 2 +-
drivers/acpi/acpica/tbinstal.c | 2 +-
drivers/acpi/acpica/tbprint.c | 2 +-
drivers/acpi/acpica/tbutils.c | 2 +-
drivers/acpi/acpica/tbxface.c | 2 +-
drivers/acpi/acpica/tbxfload.c | 2 +-
drivers/acpi/acpica/tbxfroot.c | 2 +-
drivers/acpi/acpica/utaddress.c | 2 +-
drivers/acpi/acpica/utalloc.c | 2 +-
drivers/acpi/acpica/utascii.c | 2 +-
drivers/acpi/acpica/utbuffer.c | 2 +-
drivers/acpi/acpica/utcache.c | 2 +-
drivers/acpi/acpica/utcopy.c | 2 +-
drivers/acpi/acpica/utdebug.c | 2 +-
drivers/acpi/acpica/utdecode.c | 2 +-
drivers/acpi/acpica/uteval.c | 2 +-
drivers/acpi/acpica/utglobal.c | 2 +-
drivers/acpi/acpica/uthex.c | 2 +-
drivers/acpi/acpica/utids.c | 2 +-
drivers/acpi/acpica/utinit.c | 2 +-
drivers/acpi/acpica/utlock.c | 2 +-
drivers/acpi/acpica/utobject.c | 2 +-
drivers/acpi/acpica/utosi.c | 3 +-
drivers/acpi/acpica/utpredef.c | 2 +-
drivers/acpi/acpica/utprint.c | 2 +-
drivers/acpi/acpica/uttrack.c | 2 +-
drivers/acpi/acpica/utuuid.c | 2 +-
drivers/acpi/acpica/utxface.c | 2 +-
drivers/acpi/acpica/utxfinit.c | 2 +-
drivers/acpi/apei/einj.c | 3 +
drivers/acpi/apei/erst-dbg.c | 3 +-
drivers/acpi/apei/erst.c | 77 +-
drivers/acpi/arm64/agdi.c | 1 +
drivers/acpi/battery.c | 24 +-
drivers/acpi/bgrt.c | 2 +-
drivers/acpi/bus.c | 62 +-
drivers/acpi/cppc_acpi.c | 46 +-
drivers/acpi/device_pm.c | 83 +-
drivers/acpi/dptf/dptf_pch_fivr.c | 1 +
drivers/acpi/dptf/dptf_power.c | 11 +-
drivers/acpi/dptf/int340x_thermal.c | 6 +
drivers/acpi/fan.h | 1 +
drivers/acpi/glue.c | 16 +-
drivers/acpi/nfit/core.c | 30 +-
drivers/acpi/nfit/mce.c | 4 +-
drivers/acpi/nfit/nfit.h | 24 -
drivers/acpi/osl.c | 86 -
drivers/acpi/pci_root.c | 240 +-
drivers/acpi/processor_idle.c | 15 +-
drivers/acpi/property.c | 54 +-
drivers/acpi/sleep.c | 28 +-
drivers/acpi/spcr.c | 1 +
drivers/acpi/sysfs.c | 25 +-
drivers/acpi/utils.c | 2 +-
drivers/amba/bus.c | 202 +-
drivers/android/binder.c | 201 +-
drivers/android/binder_alloc.c | 22 +-
drivers/android/binder_internal.h | 5 +
drivers/android/binderfs.c | 8 +
drivers/ata/ahci.c | 5 +-
drivers/ata/ahci_brcm.c | 7 +-
drivers/ata/libata-core.c | 352 +-
drivers/ata/libata-sata.c | 25 -
drivers/ata/libata-scsi.c | 48 +-
drivers/ata/libata-transport.c | 2 +-
drivers/ata/libata.h | 13 -
drivers/ata/pata_ftide010.c | 7 +-
drivers/ata/pata_mpc52xx.c | 3 +-
drivers/ata/pata_octeon_cf.c | 3 +
drivers/ata/pata_palmld.c | 3 +-
drivers/ata/pata_sil680.c | 30 +-
drivers/ata/pata_via.c | 6 +-
drivers/ata/sata_gemini.c | 7 +-
drivers/atm/Kconfig | 79 -
drivers/atm/Makefile | 4 -
drivers/atm/ambassador.c | 2400 -
drivers/atm/ambassador.h | 648 -
drivers/atm/firestream.c | 2057 -
drivers/atm/firestream.h | 502 -
drivers/atm/horizon.c | 2853 -
drivers/atm/horizon.h | 492 -
drivers/atm/nicstarmac.c | 5 -
drivers/atm/uPD98401.h | 293 -
drivers/atm/uPD98402.c | 266 -
drivers/atm/uPD98402.h | 107 -
drivers/atm/zatm.c | 1652 -
drivers/atm/zatm.h | 104 -
drivers/base/Makefile | 1 +
drivers/base/arch_topology.c | 5 +
drivers/base/base.h | 1 +
drivers/base/bus.c | 4 +-
drivers/base/core.c | 18 +-
drivers/base/dd.c | 49 +-
drivers/base/driver.c | 70 +
drivers/base/firmware_loader/Kconfig | 43 +-
drivers/base/firmware_loader/Makefile | 2 +
drivers/base/firmware_loader/fallback.c | 430 -
drivers/base/firmware_loader/fallback.h | 46 +-
drivers/base/firmware_loader/firmware.h | 16 +
drivers/base/firmware_loader/main.c | 111 +-
drivers/base/firmware_loader/sysfs.c | 422 +
drivers/base/firmware_loader/sysfs.h | 117 +
drivers/base/firmware_loader/sysfs_upload.c | 397 +
drivers/base/firmware_loader/sysfs_upload.h | 41 +
drivers/base/memory.c | 5 +-
drivers/base/node.c | 1 +
drivers/base/physical_location.c | 143 +
drivers/base/physical_location.h | 16 +
drivers/base/platform.c | 55 +-
drivers/base/power/common.c | 8 +-
drivers/base/power/domain.c | 278 +-
drivers/base/power/domain_governor.c | 65 +-
drivers/base/power/runtime.c | 53 +-
drivers/base/power/wakeup.c | 1 +
drivers/base/property.c | 313 +-
drivers/base/regmap/internal.h | 4 +
drivers/base/regmap/regcache.c | 4 +-
drivers/base/regmap/regmap-i3c.c | 2 +-
drivers/base/regmap/regmap-sccb.c | 2 +-
drivers/base/regmap/regmap-sdw-mbq.c | 2 +-
drivers/base/regmap/regmap-sdw.c | 2 +-
drivers/base/regmap/regmap-slimbus.c | 2 +-
drivers/base/regmap/regmap-w1.c | 6 +-
drivers/base/regmap/regmap.c | 78 +-
drivers/bcma/driver_gpio.c | 7 +-
drivers/block/aoe/aoe.h | 2 +
drivers/block/aoe/aoeblk.c | 2 +-
drivers/block/aoe/aoecmd.c | 2 +-
drivers/block/aoe/aoedev.c | 4 +-
drivers/block/aoe/aoemain.c | 10 +-
drivers/block/ataflop.c | 10 +-
drivers/block/drbd/drbd_bitmap.c | 2 +-
drivers/block/drbd/drbd_main.c | 62 +-
drivers/block/drbd/drbd_nl.c | 127 +-
drivers/block/drbd/drbd_receiver.c | 28 +-
drivers/block/drbd/drbd_req.c | 2 +-
drivers/block/drbd/drbd_state.c | 3 +-
drivers/block/drbd/drbd_worker.c | 2 +-
drivers/block/floppy.c | 18 +-
drivers/block/loop.c | 405 +-
drivers/block/loop.h | 72 -
drivers/block/mtip32xx/mtip32xx.c | 2 +-
drivers/block/nbd.c | 151 +-
drivers/block/null_blk/main.c | 99 +-
drivers/block/null_blk/null_blk.h | 15 +-
drivers/block/null_blk/zoned.c | 13 +-
drivers/block/pktcdvd.c | 36 +-
drivers/block/rbd.c | 14 +-
drivers/block/rnbd/rnbd-clt.c | 20 +-
drivers/block/rnbd/rnbd-srv-dev.h | 10 +-
drivers/block/rnbd/rnbd-srv.c | 5 +-
drivers/block/sx8.c | 4 +-
drivers/block/virtio_blk.c | 229 +-
drivers/block/xen-blkback/blkback.c | 15 +-
drivers/block/xen-blkback/xenbus.c | 14 +-
drivers/block/xen-blkfront.c | 71 +-
drivers/block/zram/Kconfig | 3 +-
drivers/block/zram/zram_drv.c | 87 +-
drivers/block/zram/zram_drv.h | 1 -
drivers/bluetooth/btbcm.c | 53 +-
drivers/bluetooth/btintel.c | 2 +-
drivers/bluetooth/btmtksdio.c | 26 +-
drivers/bluetooth/btrtl.c | 13 +
drivers/bluetooth/btusb.c | 23 +-
drivers/bluetooth/hci_qca.c | 4 +-
drivers/bus/Kconfig | 11 +
drivers/bus/Makefile | 1 +
drivers/bus/brcmstb_gisb.c | 1 -
drivers/bus/fsl-mc/fsl-mc-bus.c | 49 +-
drivers/bus/mhi/Kconfig | 1 +
drivers/bus/mhi/Makefile | 3 +
drivers/bus/mhi/common.h | 22 +
drivers/bus/mhi/ep/Kconfig | 10 +
drivers/bus/mhi/ep/Makefile | 2 +
drivers/bus/mhi/ep/internal.h | 218 +
drivers/bus/mhi/ep/main.c | 1591 +
drivers/bus/mhi/ep/mmio.c | 273 +
drivers/bus/mhi/ep/ring.c | 207 +
drivers/bus/mhi/ep/sm.c | 148 +
drivers/bus/mhi/host/boot.c | 22 +-
drivers/bus/mhi/host/init.c | 89 +-
drivers/bus/mhi/host/internal.h | 7 +-
drivers/bus/mhi/host/main.c | 18 +-
drivers/bus/mhi/host/pci_generic.c | 133 +-
drivers/bus/mhi/host/pm.c | 24 +-
drivers/bus/qcom-ssc-block-bus.c | 389 +
drivers/bus/ti-sysc.c | 8 +-
drivers/cdrom/cdrom.c | 38 +-
drivers/char/Kconfig | 53 +-
drivers/char/agp/amd64-agp.c | 2 +-
drivers/char/hw_random/Kconfig | 15 +-
drivers/char/hw_random/Makefile | 1 +
drivers/char/hw_random/cn10k-rng.c | 31 +-
drivers/char/hw_random/mpfs-rng.c | 104 +
drivers/char/hw_random/omap3-rom-rng.c | 2 +-
drivers/char/hw_random/optee-rng.c | 2 +-
drivers/char/hw_random/virtio-rng.c | 2 +
drivers/char/ipmi/ipmb_dev_int.c | 5 +-
drivers/char/ipmi/ipmi_ipmb.c | 6 +-
drivers/char/ipmi/ipmi_msghandler.c | 118 +-
drivers/char/ipmi/ipmi_poweroff.c | 8 +-
drivers/char/ipmi/ipmi_si_intf.c | 22 +-
drivers/char/ipmi/ipmi_ssif.c | 33 +-
drivers/char/ipmi/ipmi_watchdog.c | 28 +-
drivers/char/mem.c | 2 +-
drivers/char/misc.c | 24 +-
drivers/char/pcmcia/synclink_cs.c | 10 +-
drivers/char/random.c | 1347 +-
drivers/char/tpm/tpm2-cmd.c | 17 +-
drivers/char/tpm/tpm_ftpm_tee.c | 2 +-
drivers/char/tpm/tpm_ibmvtpm.c | 1 +
drivers/char/tpm/tpm_tis.c | 67 +-
drivers/char/tpm/tpm_tis_core.h | 58 +-
drivers/char/tpm/tpm_tis_i2c_cr50.c | 11 +-
drivers/char/tpm/tpm_tis_spi.h | 4 -
drivers/char/tpm/tpm_tis_spi_cr50.c | 7 +-
drivers/char/tpm/tpm_tis_spi_main.c | 45 +-
drivers/char/tpm/tpm_tis_synquacer.c | 98 +-
drivers/char/tpm/xen-tpmfront.c | 18 +-
drivers/char/ttyprintk.c | 16 +
drivers/char/xillybus/xillybus_class.c | 26 +-
drivers/char/xillybus/xillyusb.c | 1 +
drivers/clk/Kconfig | 14 +
drivers/clk/Makefile | 3 +-
drivers/clk/actions/owl-pll.c | 2 +-
drivers/clk/at91/clk-generated.c | 4 +
drivers/clk/bcm/clk-bcm2835.c | 1 +
drivers/clk/bcm/clk-raspberrypi.c | 2 +-
drivers/clk/clk-cdce706.c | 5 +-
drivers/clk/clk-cdce925.c | 24 +-
drivers/clk/clk-cs2000-cp.c | 5 +-
drivers/clk/clk-en7523.c | 351 +
drivers/clk/clk-fixed-rate.c | 2 +-
drivers/clk/clk-max9485.c | 5 +-
drivers/clk/clk-mux.c | 4 +-
drivers/clk/clk-renesas-pcie.c | 4 +-
drivers/clk/clk-si514.c | 5 +-
drivers/clk/clk-si5341.c | 5 +-
drivers/clk/clk-si5351.c | 24 +-
drivers/clk/clk-si544.c | 22 +-
drivers/clk/clk-si570.c | 24 +-
drivers/clk/clk.c | 9 +-
drivers/clk/h8300/Makefile | 3 -
drivers/clk/h8300/clk-div.c | 57 -
drivers/clk/h8300/clk-h8s2678.c | 145 -
drivers/clk/imx/clk-composite-8m.c | 19 +-
drivers/clk/imx/clk-imx7d.c | 1 -
drivers/clk/imx/clk-imx8mm.c | 3 +-
drivers/clk/imx/clk-imx8mn.c | 41 +-
drivers/clk/imx/clk-imx8mp.c | 24 +-
drivers/clk/imx/clk-imx8mq.c | 5 +-
drivers/clk/imx/clk-scu.c | 13 +-
drivers/clk/imx/clk.c | 5 +
drivers/clk/imx/clk.h | 1 +
drivers/clk/ingenic/cgu.c | 2 +-
drivers/clk/ingenic/cgu.h | 3 +
drivers/clk/ingenic/jz4725b-cgu.c | 10 +
drivers/clk/ingenic/jz4740-cgu.c | 10 +
drivers/clk/ingenic/jz4760-cgu.c | 10 +
drivers/clk/ingenic/jz4770-cgu.c | 5 +
drivers/clk/ingenic/jz4780-cgu.c | 15 +
drivers/clk/ingenic/tcu.c | 35 +-
drivers/clk/ingenic/x1000-cgu.c | 15 +
drivers/clk/ingenic/x1830-cgu.c | 11 +
drivers/clk/keystone/syscon-clk.c | 11 +
drivers/clk/mediatek/Kconfig | 8 +
drivers/clk/mediatek/Makefile | 5 +
drivers/clk/mediatek/clk-apmixed.c | 12 +-
drivers/clk/mediatek/clk-cpumux.c | 50 +-
drivers/clk/mediatek/clk-cpumux.h | 6 +-
drivers/clk/mediatek/clk-gate.c | 52 +-
drivers/clk/mediatek/clk-gate.h | 8 +-
drivers/clk/mediatek/clk-mt2701-aud.c | 4 +-
drivers/clk/mediatek/clk-mt2701-bdp.c | 4 +-
drivers/clk/mediatek/clk-mt2701-eth.c | 4 +-
drivers/clk/mediatek/clk-mt2701-g3d.c | 4 +-
drivers/clk/mediatek/clk-mt2701-hif.c | 4 +-
drivers/clk/mediatek/clk-mt2701-img.c | 4 +-
drivers/clk/mediatek/clk-mt2701-mm.c | 4 +-
drivers/clk/mediatek/clk-mt2701-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt2701.c | 34 +-
drivers/clk/mediatek/clk-mt2712-bdp.c | 4 +-
drivers/clk/mediatek/clk-mt2712-img.c | 4 +-
drivers/clk/mediatek/clk-mt2712-jpgdec.c | 4 +-
drivers/clk/mediatek/clk-mt2712-mfg.c | 4 +-
drivers/clk/mediatek/clk-mt2712-mm.c | 4 +-
drivers/clk/mediatek/clk-mt2712-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt2712-venc.c | 4 +-
drivers/clk/mediatek/clk-mt2712.c | 58 +-
drivers/clk/mediatek/clk-mt6765-audio.c | 4 +-
drivers/clk/mediatek/clk-mt6765-cam.c | 4 +-
drivers/clk/mediatek/clk-mt6765-img.c | 4 +-
drivers/clk/mediatek/clk-mt6765-mipi0a.c | 4 +-
drivers/clk/mediatek/clk-mt6765-mm.c | 4 +-
drivers/clk/mediatek/clk-mt6765-vcodec.c | 4 +-
drivers/clk/mediatek/clk-mt6765.c | 32 +-
drivers/clk/mediatek/clk-mt6779-aud.c | 4 +-
drivers/clk/mediatek/clk-mt6779-cam.c | 4 +-
drivers/clk/mediatek/clk-mt6779-img.c | 4 +-
drivers/clk/mediatek/clk-mt6779-ipe.c | 4 +-
drivers/clk/mediatek/clk-mt6779-mfg.c | 4 +-
drivers/clk/mediatek/clk-mt6779-mm.c | 4 +-
drivers/clk/mediatek/clk-mt6779-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt6779-venc.c | 4 +-
drivers/clk/mediatek/clk-mt6779.c | 36 +-
drivers/clk/mediatek/clk-mt6797-img.c | 4 +-
drivers/clk/mediatek/clk-mt6797-mm.c | 4 +-
drivers/clk/mediatek/clk-mt6797-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt6797-venc.c | 4 +-
drivers/clk/mediatek/clk-mt6797.c | 42 +-
drivers/clk/mediatek/clk-mt7622-aud.c | 4 +-
drivers/clk/mediatek/clk-mt7622-eth.c | 8 +-
drivers/clk/mediatek/clk-mt7622-hif.c | 8 +-
drivers/clk/mediatek/clk-mt7622.c | 48 +-
drivers/clk/mediatek/clk-mt7629-eth.c | 8 +-
drivers/clk/mediatek/clk-mt7629-hif.c | 8 +-
drivers/clk/mediatek/clk-mt7629.c | 42 +-
drivers/clk/mediatek/clk-mt7986-apmixed.c | 22 +-
drivers/clk/mediatek/clk-mt7986-eth.c | 14 +-
drivers/clk/mediatek/clk-mt7986-infracfg.c | 4 +-
drivers/clk/mediatek/clk-mt7986-topckgen.c | 16 +-
drivers/clk/mediatek/clk-mt8135.c | 38 +-
drivers/clk/mediatek/clk-mt8167-aud.c | 4 +-
drivers/clk/mediatek/clk-mt8167-img.c | 4 +-
drivers/clk/mediatek/clk-mt8167-mfgcfg.c | 4 +-
drivers/clk/mediatek/clk-mt8167-mm.c | 4 +-
drivers/clk/mediatek/clk-mt8167-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt8167.c | 28 +-
drivers/clk/mediatek/clk-mt8173-mm.c | 4 +-
drivers/clk/mediatek/clk-mt8173.c | 97 +-
drivers/clk/mediatek/clk-mt8183-audio.c | 4 +-
drivers/clk/mediatek/clk-mt8183-cam.c | 4 +-
drivers/clk/mediatek/clk-mt8183-img.c | 4 +-
drivers/clk/mediatek/clk-mt8183-ipu0.c | 4 +-
drivers/clk/mediatek/clk-mt8183-ipu1.c | 4 +-
drivers/clk/mediatek/clk-mt8183-ipu_adl.c | 4 +-
drivers/clk/mediatek/clk-mt8183-ipu_conn.c | 4 +-
drivers/clk/mediatek/clk-mt8183-mfgcfg.c | 4 +-
drivers/clk/mediatek/clk-mt8183-mm.c | 4 +-
drivers/clk/mediatek/clk-mt8183-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt8183-venc.c | 4 +-
drivers/clk/mediatek/clk-mt8183.c | 47 +-
drivers/clk/mediatek/clk-mt8186-apmixedsys.c | 133 +
drivers/clk/mediatek/clk-mt8186-cam.c | 90 +
drivers/clk/mediatek/clk-mt8186-img.c | 68 +
drivers/clk/mediatek/clk-mt8186-imp_iic_wrap.c | 67 +
drivers/clk/mediatek/clk-mt8186-infra_ao.c | 216 +
drivers/clk/mediatek/clk-mt8186-ipe.c | 55 +
drivers/clk/mediatek/clk-mt8186-mcu.c | 108 +
drivers/clk/mediatek/clk-mt8186-mdp.c | 80 +
drivers/clk/mediatek/clk-mt8186-mfg.c | 48 +
drivers/clk/mediatek/clk-mt8186-mm.c | 111 +
drivers/clk/mediatek/clk-mt8186-topckgen.c | 780 +
drivers/clk/mediatek/clk-mt8186-vdec.c | 88 +
drivers/clk/mediatek/clk-mt8186-venc.c | 51 +
drivers/clk/mediatek/clk-mt8186-wpe.c | 51 +
drivers/clk/mediatek/clk-mt8192-aud.c | 4 +-
drivers/clk/mediatek/clk-mt8192-mm.c | 4 +-
drivers/clk/mediatek/clk-mt8192.c | 21 +-
drivers/clk/mediatek/clk-mt8195-apmixedsys.c | 6 +-
drivers/clk/mediatek/clk-mt8195-apusys_pll.c | 6 +-
drivers/clk/mediatek/clk-mt8195-topckgen.c | 6 +-
drivers/clk/mediatek/clk-mt8195-vdo0.c | 6 +-
drivers/clk/mediatek/clk-mt8195-vdo1.c | 6 +-
drivers/clk/mediatek/clk-mt8516-aud.c | 4 +-
drivers/clk/mediatek/clk-mt8516.c | 24 +-
drivers/clk/mediatek/clk-mtk.c | 173 +-
drivers/clk/mediatek/clk-mtk.h | 25 +-
drivers/clk/mediatek/clk-mux.c | 50 +-
drivers/clk/mediatek/clk-mux.h | 6 +-
drivers/clk/mediatek/clk-pll.c | 64 +-
drivers/clk/mediatek/clk-pll.h | 6 +-
drivers/clk/pxa/clk-pxa.c | 8 +-
drivers/clk/pxa/clk-pxa.h | 9 +-
drivers/clk/pxa/clk-pxa25x.c | 46 +-
drivers/clk/pxa/clk-pxa27x.c | 68 +-
drivers/clk/pxa/clk-pxa2xx.h | 58 +
drivers/clk/pxa/clk-pxa3xx.c | 139 +-
drivers/clk/qcom/Kconfig | 19 +
drivers/clk/qcom/Makefile | 2 +
drivers/clk/qcom/clk-rcg.h | 2 +
drivers/clk/qcom/clk-rcg2.c | 126 +-
drivers/clk/qcom/clk-smd-rpm.c | 8 +-
drivers/clk/qcom/gcc-msm8976.c | 7 +-
drivers/clk/qcom/gcc-msm8998.c | 56 +
drivers/clk/qcom/gcc-sc8280xp.c | 7488 +
drivers/clk/qcom/lpassaudiocc-sc7280.c | 838 +
drivers/clk/qcom/lpasscorecc-sc7280.c | 431 +
drivers/clk/renesas/Kconfig | 17 +-
drivers/clk/renesas/Makefile | 3 +
drivers/clk/renesas/r8a774a1-cpg-mssr.c | 9 +-
drivers/clk/renesas/r8a774b1-cpg-mssr.c | 9 +-
drivers/clk/renesas/r8a774c0-cpg-mssr.c | 8 +-
drivers/clk/renesas/r8a774e1-cpg-mssr.c | 9 +-
drivers/clk/renesas/r8a7795-cpg-mssr.c | 9 +-
drivers/clk/renesas/r8a7796-cpg-mssr.c | 9 +-
drivers/clk/renesas/r8a77965-cpg-mssr.c | 9 +-
drivers/clk/renesas/r8a77980-cpg-mssr.c | 10 +-
drivers/clk/renesas/r8a77990-cpg-mssr.c | 7 +
drivers/clk/renesas/r8a77995-cpg-mssr.c | 11 +-
drivers/clk/renesas/r8a779a0-cpg-mssr.c | 23 +-
drivers/clk/renesas/r8a779f0-cpg-mssr.c | 30 +-
drivers/clk/renesas/r8a779g0-cpg-mssr.c | 218 +
drivers/clk/renesas/r9a06g032-clocks.c | 42 +-
drivers/clk/renesas/r9a07g043-cpg.c | 320 +
drivers/clk/renesas/r9a07g044-cpg.c | 96 +-
drivers/clk/renesas/r9a09g011-cpg.c | 172 +
drivers/clk/renesas/rcar-gen3-cpg.h | 5 +-
drivers/clk/renesas/rcar-gen4-cpg.c | 5 +
drivers/clk/renesas/rcar-gen4-cpg.h | 3 +
drivers/clk/renesas/renesas-cpg-mssr.c | 6 +
drivers/clk/renesas/renesas-cpg-mssr.h | 1 +
drivers/clk/renesas/rzg2l-cpg.c | 464 +-
drivers/clk/renesas/rzg2l-cpg.h | 87 +-
drivers/clk/rockchip/clk-rk3568.c | 1 +
drivers/clk/samsung/Makefile | 1 +
drivers/clk/samsung/clk-exynosautov9.c | 1733 +
drivers/clk/stm32/Makefile | 1 +
drivers/clk/stm32/clk-stm32-core.c | 695 +
drivers/clk/stm32/clk-stm32-core.h | 188 +
drivers/clk/stm32/clk-stm32mp13.c | 1620 +
drivers/clk/stm32/reset-stm32.c | 122 +
drivers/clk/stm32/reset-stm32.h | 8 +
drivers/clk/stm32/stm32mp13_rcc.h | 1748 +
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c | 5 +
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.h | 2 +-
drivers/clk/sunxi-ng/ccu-sun50i-h616.c | 8 +
drivers/clk/sunxi-ng/ccu-sun50i-h616.h | 2 +-
drivers/clk/sunxi-ng/ccu-sun6i-rtc.c | 15 -
drivers/clk/tegra/clk-bpmp.c | 87 +-
drivers/clk/tegra/clk-dfll.c | 20 +-
drivers/clk/ti/clkctrl.c | 13 +-
drivers/clk/ti/composite.c | 2 +-
drivers/clk/ux500/clk-prcmu.c | 252 +-
drivers/clk/ux500/clk.h | 70 +-
drivers/clk/ux500/reset-prcc.c | 2 +-
drivers/clk/ux500/u8500_of_clk.c | 350 +-
drivers/clocksource/Kconfig | 37 +-
drivers/clocksource/Makefile | 5 +-
drivers/clocksource/bcm_kona_timer.c | 14 +-
drivers/clocksource/h8300_timer16.c | 192 -
drivers/clocksource/h8300_timer8.c | 211 -
drivers/clocksource/h8300_tpu.c | 158 -
drivers/clocksource/jcore-pit.c | 5 +-
drivers/clocksource/mips-gic-timer.c | 9 +-
drivers/clocksource/timer-armada-370-xp.c | 5 +-
drivers/clocksource/timer-digicolor.c | 5 +-
drivers/clocksource/timer-goldfish.c | 153 +
drivers/clocksource/timer-gxp.c | 209 +
drivers/clocksource/timer-ixp4xx.c | 25 -
drivers/clocksource/timer-lpc32xx.c | 6 +-
drivers/clocksource/timer-orion.c | 5 +-
drivers/clocksource/timer-oxnas-rps.c | 2 +-
drivers/clocksource/timer-pistachio.c | 5 +-
drivers/clocksource/timer-riscv.c | 2 +-
drivers/clocksource/timer-sp804.c | 10 +-
drivers/clocksource/timer-sun4i.c | 5 +-
drivers/clocksource/timer-sun5i.c | 5 +-
drivers/clocksource/timer-ti-dm.c | 5 +-
drivers/comedi/drivers.c | 2 +-
drivers/cpufreq/cppc_cpufreq.c | 217 +-
drivers/cpufreq/cpufreq.c | 112 +-
drivers/cpufreq/cpufreq_governor.c | 20 +-
drivers/cpufreq/cpufreq_governor.h | 1 +
drivers/cpufreq/intel_pstate.c | 2 +
drivers/cpufreq/mediatek-cpufreq-hw.c | 4 +-
drivers/cpufreq/mediatek-cpufreq.c | 636 +-
drivers/cpufreq/pasemi-cpufreq.c | 1 -
drivers/cpufreq/pmac32-cpufreq.c | 2 +-
drivers/cpufreq/pmac64-cpufreq.c | 2 +-
drivers/cpufreq/ppc_cbe_cpufreq.c | 1 -
drivers/cpufreq/ppc_cbe_cpufreq_pmi.c | 2 +-
drivers/cpufreq/pxa2xx-cpufreq.c | 6 +-
drivers/cpufreq/pxa3xx-cpufreq.c | 65 +-
drivers/cpufreq/scmi-cpufreq.c | 4 +-
drivers/cpufreq/tegra194-cpufreq.c | 246 +-
drivers/cpuidle/cpuidle-psci-domain.c | 4 +-
drivers/cpuidle/cpuidle-psci.c | 46 +
drivers/cpuidle/cpuidle-riscv-sbi.c | 4 +-
drivers/crypto/Kconfig | 4 +-
drivers/crypto/Makefile | 1 +
.../crypto/allwinner/sun4i-ss/sun4i-ss-cipher.c | 22 +-
drivers/crypto/allwinner/sun4i-ss/sun4i-ss.h | 1 +
.../crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c | 102 +-
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c | 54 +-
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c | 130 +-
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-prng.c | 6 +-
drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h | 19 +-
.../crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c | 180 +-
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c | 92 +-
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c | 385 +-
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-prng.c | 6 +-
drivers/crypto/allwinner/sun8i-ss/sun8i-ss.h | 33 +-
drivers/crypto/atmel-ecc.c | 2 +-
drivers/crypto/atmel-i2c.c | 30 +-
drivers/crypto/atmel-i2c.h | 1 +
drivers/crypto/atmel-sha204a.c | 11 +-
drivers/crypto/caam/Kconfig | 11 +
drivers/crypto/caam/Makefile | 2 +
drivers/crypto/caam/blob_gen.c | 182 +
drivers/crypto/caam/caamprng.c | 235 +
drivers/crypto/caam/ctrl.c | 35 +-
drivers/crypto/caam/intern.h | 16 +
drivers/crypto/caam/jr.c | 3 +-
drivers/crypto/caam/regs.h | 4 +-
drivers/crypto/cavium/nitrox/nitrox_main.c | 10 +-
drivers/crypto/ccp/psp-dev.c | 49 +-
drivers/crypto/ccp/psp-dev.h | 22 +
drivers/crypto/ccp/sev-dev.c | 32 +-
drivers/crypto/ccp/sp-pci.c | 62 +
drivers/crypto/ccree/cc_buffer_mgr.c | 27 +-
drivers/crypto/ccree/cc_driver.c | 24 +-
drivers/crypto/hisilicon/Kconfig | 1 +
drivers/crypto/hisilicon/hpre/hpre_main.c | 222 +-
drivers/crypto/hisilicon/qm.c | 282 +-
drivers/crypto/hisilicon/sec2/sec_crypto.c | 2 -
drivers/crypto/hisilicon/sec2/sec_main.c | 108 +-
drivers/crypto/hisilicon/sgl.c | 6 +-
drivers/crypto/hisilicon/zip/zip_crypto.c | 2 +-
drivers/crypto/hisilicon/zip/zip_main.c | 185 +-
drivers/crypto/inside-secure/safexcel.c | 9 +
drivers/crypto/keembay/keembay-ocs-aes-core.c | 9 +-
drivers/crypto/marvell/cesa/cipher.c | 1 -
drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.c | 7 +-
drivers/crypto/nx/nx-common-powernv.c | 2 +-
drivers/crypto/qat/qat_4xxx/adf_drv.c | 8 +-
drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c | 15 +-
drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.h | 4 -
drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c | 15 +-
drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.h | 4 -
drivers/crypto/qat/qat_common/Makefile | 1 +
drivers/crypto/qat/qat_common/adf_accel_devices.h | 6 +-
drivers/crypto/qat/qat_common/adf_common_drv.h | 18 +-
drivers/crypto/qat/qat_common/adf_gen2_hw_data.c | 13 +
drivers/crypto/qat/qat_common/adf_gen2_hw_data.h | 6 +
drivers/crypto/qat/qat_common/adf_gen2_pfvf.c | 78 +-
drivers/crypto/qat/qat_common/adf_gen4_pfvf.c | 61 +-
drivers/crypto/qat/qat_common/adf_isr.c | 21 +-
drivers/crypto/qat/qat_common/adf_pfvf_msg.h | 4 +-
drivers/crypto/qat/qat_common/adf_pfvf_pf_proto.c | 6 +-
drivers/crypto/qat/qat_common/adf_sriov.c | 16 +-
drivers/crypto/qat/qat_common/adf_transport.c | 11 +
drivers/crypto/qat/qat_common/adf_transport.h | 1 +
.../crypto/qat/qat_common/adf_transport_internal.h | 1 +
drivers/crypto/qat/qat_common/adf_vf_isr.c | 1 +
drivers/crypto/qat/qat_common/qat_algs.c | 153 +-
drivers/crypto/qat/qat_common/qat_algs_send.c | 86 +
drivers/crypto/qat/qat_common/qat_algs_send.h | 11 +
drivers/crypto/qat/qat_common/qat_asym_algs.c | 307 +-
drivers/crypto/qat/qat_common/qat_crypto.c | 10 +-
drivers/crypto/qat/qat_common/qat_crypto.h | 44 +
drivers/crypto/qat/qat_common/qat_hal.c | 1 +
drivers/crypto/qat/qat_common/qat_uclo.c | 3 +-
.../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 126 +-
.../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.h | 4 -
drivers/crypto/qcom-rng.c | 1 +
drivers/crypto/sa2ul.c | 1 +
drivers/crypto/talitos.c | 10 +-
drivers/crypto/ux500/hash/hash_core.c | 4 +-
.../crypto/virtio/virtio_crypto_akcipher_algs.c | 95 +-
drivers/crypto/virtio/virtio_crypto_common.h | 21 +-
drivers/crypto/virtio/virtio_crypto_core.c | 55 +-
.../crypto/virtio/virtio_crypto_skcipher_algs.c | 140 +-
drivers/crypto/vmx/Makefile | 17 +-
drivers/cxl/Kconfig | 4 +
drivers/cxl/Makefile | 2 +-
drivers/cxl/acpi.c | 13 +
drivers/cxl/core/Makefile | 1 +
drivers/cxl/core/mbox.c | 334 +-
drivers/cxl/core/memdev.c | 3 +
drivers/cxl/core/pci.c | 364 +
drivers/cxl/core/pmem.c | 10 +-
drivers/cxl/core/port.c | 68 +-
drivers/cxl/core/suspend.c | 24 +
drivers/cxl/cxl.h | 78 -
drivers/cxl/cxlmem.h | 75 +-
drivers/cxl/cxlpci.h | 2 +
drivers/cxl/mem.c | 148 +-
drivers/cxl/pci.c | 175 +-
drivers/cxl/pmem.c | 13 +-
drivers/cxl/port.c | 28 +-
drivers/dax/super.c | 14 +-
drivers/devfreq/devfreq.c | 20 +-
drivers/devfreq/governor.h | 27 +
drivers/devfreq/governor_passive.c | 403 +-
drivers/devfreq/rk3399_dmc.c | 312 +-
drivers/dio/dio.c | 5 +-
drivers/dma-buf/dma-buf.c | 16 +-
drivers/dma/Kconfig | 14 +-
drivers/dma/Makefile | 1 +
drivers/dma/amba-pl08x.c | 11 -
drivers/dma/at_hdmac.c | 10 +-
drivers/dma/at_xdmac.c | 9 +-
drivers/dma/bestcomm/bestcomm.c | 2 +
drivers/dma/dma-jz4780.c | 9 +
drivers/dma/dmaengine.c | 7 -
drivers/dma/dmatest.c | 13 +-
drivers/dma/dw/Kconfig | 9 +
drivers/dma/dw/Makefile | 2 +
drivers/dma/dw/platform.c | 1 +
drivers/dma/dw/rzn1-dmamux.c | 155 +
drivers/dma/ep93xx_dma.c | 2 +-
drivers/dma/idxd/cdev.c | 18 +-
drivers/dma/idxd/device.c | 151 +-
drivers/dma/idxd/dma.c | 65 +-
drivers/dma/idxd/idxd.h | 20 +-
drivers/dma/idxd/init.c | 30 +-
drivers/dma/idxd/registers.h | 1 +
drivers/dma/idxd/sysfs.c | 12 +-
drivers/dma/imx-dma.c | 2 +-
drivers/dma/imx-sdma.c | 76 +-
drivers/dma/mediatek/mtk-cqdma.c | 12 +-
drivers/dma/mediatek/mtk-hsdma.c | 13 +-
drivers/dma/mmp_pdma.c | 14 +-
drivers/dma/mv_xor_v2.c | 4 +-
drivers/dma/nbpfaxi.c | 14 +-
drivers/dma/plx_dma.c | 4 +-
drivers/dma/ptdma/ptdma-dev.c | 36 +-
drivers/dma/ptdma/ptdma-dmaengine.c | 16 +-
drivers/dma/ptdma/ptdma.h | 13 +
drivers/dma/pxa_dma.c | 13 +-
drivers/dma/qcom/gpi.c | 21 +-
drivers/dma/qcom/hidma.c | 13 +-
drivers/dma/sf-pdma/sf-pdma.c | 24 +-
drivers/dma/sf-pdma/sf-pdma.h | 8 +-
drivers/dma/sh/Kconfig | 2 +-
drivers/dma/sprd-dma.c | 6 +-
drivers/dma/stm32-dma.c | 311 +-
drivers/dma/stm32-dmamux.c | 2 +-
drivers/dma/stm32-mdma.c | 53 +-
drivers/dma/sun6i-dma.c | 92 +-
drivers/dma/tegra186-gpc-dma.c | 1498 +
drivers/dma/ti/cppi41.c | 6 +-
drivers/dma/ti/k3-psil-am62.c | 8 +-
drivers/dma/ti/omap-dma.c | 19 +-
drivers/dma/xilinx/zynqmp_dma.c | 17 +-
drivers/edac/Kconfig | 3 +-
drivers/edac/amd64_edac.c | 2 +-
drivers/edac/armada_xp_edac.c | 18 +-
drivers/edac/dmc520_edac.c | 2 +-
drivers/edac/edac_device.c | 130 +-
drivers/edac/edac_device.h | 14 +
drivers/edac/edac_device_sysfs.c | 5 +-
drivers/edac/edac_mc.c | 96 +-
drivers/edac/edac_module.h | 2 -
drivers/edac/edac_pci.c | 25 +-
drivers/edac/ghes_edac.c | 202 +-
drivers/edac/i5100_edac.c | 5 -
drivers/edac/mpc85xx_edac.c | 14 -
drivers/edac/synopsys_edac.c | 15 +-
drivers/edac/xgene_edac.c | 2 +-
drivers/extcon/Kconfig | 3 +-
drivers/extcon/extcon-axp288.c | 4 +-
drivers/extcon/extcon-intel-int3496.c | 54 +-
drivers/extcon/extcon-ptn5150.c | 36 +
drivers/extcon/extcon-sm5502.c | 2 +
drivers/extcon/extcon-usb-gpio.c | 15 -
drivers/extcon/extcon-usbc-cros-ec.c | 2 +-
drivers/extcon/extcon.c | 37 +-
drivers/firewire/core-card.c | 42 +
drivers/firewire/core-cdev.c | 10 +-
drivers/firewire/core-topology.c | 9 +-
drivers/firewire/core-transaction.c | 48 +-
drivers/firewire/sbp2.c | 13 +-
drivers/firmware/Kconfig | 9 +
drivers/firmware/Makefile | 4 +-
drivers/firmware/arm_ffa/driver.c | 24 +-
drivers/firmware/arm_scmi/Kconfig | 1 +
drivers/firmware/arm_scmi/base.c | 46 +-
drivers/firmware/arm_scmi/clock.c | 343 +-
drivers/firmware/arm_scmi/common.h | 225 +-
drivers/firmware/arm_scmi/driver.c | 168 +-
drivers/firmware/arm_scmi/optee.c | 144 +-
drivers/firmware/arm_scmi/perf.c | 162 +-
drivers/firmware/arm_scmi/power.c | 44 +-
drivers/firmware/arm_scmi/protocols.h | 318 +
drivers/firmware/arm_scmi/reset.c | 40 +-
drivers/firmware/arm_scmi/sensors.c | 645 +-
drivers/firmware/arm_scmi/system.c | 9 +-
drivers/firmware/arm_scmi/voltage.c | 218 +-
drivers/firmware/broadcom/tee_bnxt_fw.c | 2 +-
drivers/firmware/dmi-sysfs.c | 2 +-
drivers/firmware/edd.c | 3 +-
drivers/firmware/efi/Kconfig | 87 +-
drivers/firmware/efi/cper.c | 64 +-
drivers/firmware/efi/efi.c | 13 +-
drivers/firmware/efi/libstub/arm32-stub.c | 3 +-
drivers/firmware/efi/libstub/arm64-stub.c | 15 +-
drivers/firmware/efi/libstub/efi-stub.c | 2 +-
drivers/firmware/efi/libstub/efistub.h | 84 +-
drivers/firmware/efi/libstub/randomalloc.c | 11 +
drivers/firmware/efi/libstub/riscv-stub.c | 32 +-
drivers/firmware/efi/libstub/x86-stub.c | 119 +-
drivers/firmware/mtk-adsp-ipc.c | 157 +
drivers/firmware/qcom_scm.c | 4 +
drivers/firmware/smccc/kvm_guest.c | 1 +
drivers/firmware/stratix10-svc.c | 12 +-
drivers/firmware/ti_sci.c | 61 +-
drivers/firmware/xilinx/zynqmp.c | 131 +-
drivers/fpga/Makefile | 6 +-
drivers/fpga/dfl-pci.c | 9 +
drivers/fpga/dfl.c | 38 +-
drivers/fpga/dfl.h | 1 +
drivers/fpga/fpga-mgr.c | 13 +-
drivers/fpga/fpga-region.c | 6 +-
drivers/fpga/of-fpga-region.c | 22 +-
drivers/gpio/Kconfig | 7 +-
drivers/gpio/TODO | 19 +
drivers/gpio/gpio-104-dio-48e.c | 63 +-
drivers/gpio/gpio-104-idi-48.c | 27 +-
drivers/gpio/gpio-104-idio-16.c | 33 +-
drivers/gpio/gpio-adp5588.c | 19 -
drivers/gpio/gpio-amdpt.c | 10 +-
drivers/gpio/gpio-brcmstb.c | 12 +-
drivers/gpio/gpio-cadence.c | 12 +-
drivers/gpio/gpio-crystalcove.c | 70 +-
drivers/gpio/gpio-dln2.c | 23 +-
drivers/gpio/gpio-dwapb.c | 81 +-
drivers/gpio/gpio-ftgpio010.c | 8 +-
drivers/gpio/gpio-gpio-mm.c | 43 +-
drivers/gpio/gpio-grgpio.c | 30 +-
drivers/gpio/gpio-hlwd.c | 18 +-
drivers/gpio/gpio-idt3243x.c | 12 +-
drivers/gpio/gpio-ixp4xx.c | 49 +-
drivers/gpio/gpio-loongson1.c | 8 +-
drivers/gpio/gpio-max732x.c | 37 +-
drivers/gpio/gpio-max77620.c | 9 +-
drivers/gpio/gpio-menz127.c | 8 +-
drivers/gpio/gpio-merrifield.c | 22 +-
drivers/gpio/gpio-ml-ioh.c | 76 +-
drivers/gpio/gpio-mlxbf2.c | 18 +-
drivers/gpio/gpio-mmio.c | 22 +-
drivers/gpio/gpio-mvebu.c | 10 +-
drivers/gpio/gpio-pca953x.c | 60 +-
drivers/gpio/gpio-pcf857x.c | 49 +-
drivers/gpio/gpio-pl061.c | 32 +-
drivers/gpio/gpio-rcar.c | 38 +-
drivers/gpio/gpio-realtek-otto.c | 137 +-
drivers/gpio/gpio-rockchip.c | 29 +-
drivers/gpio/gpio-sch.c | 35 +-
drivers/gpio/gpio-sifive.c | 26 +-
drivers/gpio/gpio-sim.c | 4 +-
drivers/gpio/gpio-syscon.c | 49 +-
drivers/gpio/gpio-tb10x.c | 4 +-
drivers/gpio/gpio-tegra186.c | 113 +-
drivers/gpio/gpio-vf610.c | 8 +-
drivers/gpio/gpio-visconti.c | 7 +-
drivers/gpio/gpio-wcove.c | 10 +-
drivers/gpio/gpio-ws16c48.c | 65 +-
drivers/gpio/gpio-zevio.c | 25 +-
drivers/gpio/gpiolib-cdev.c | 318 +-
drivers/gpio/gpiolib-of.c | 10 +-
drivers/gpio/gpiolib-sysfs.c | 3 +-
drivers/gpio/gpiolib.c | 146 +-
drivers/gpio/gpiolib.h | 12 +-
drivers/gpu/Makefile | 3 +-
drivers/gpu/drm/amd/amdgpu/Makefile | 35 +-
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 44 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 14 +
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 15 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.c | 625 +
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 47 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 385 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 13 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 25 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 228 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.h | 23 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 80 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 424 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h | 4 -
drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell.h | 13 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 48 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 68 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 9 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 56 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 47 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 29 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 7 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_imu.h | 51 +
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 15 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c | 18 +
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.h | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 22 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_lsdma.c | 91 +
drivers/gpu/drm/amd/amdgpu/amdgpu_lsdma.h | 46 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 1227 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 252 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes_ctx.h | 121 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 5 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 634 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 30 +
drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c | 62 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.h | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 206 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 193 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 22 +
drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.h | 45 +
drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c | 28 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 259 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 74 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 45 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 29 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 15 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c | 6 +-
drivers/gpu/drm/amd/amdgpu/athub_v3_0.c | 98 +
drivers/gpu/drm/amd/amdgpu/athub_v3_0.h | 30 +
drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 12 +-
drivers/gpu/drm/amd/amdgpu/clearstate_gfx11.h | 988 +
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 493 +-
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 6442 +
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.h | 29 +
drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c | 62 +-
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 80 +-
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 50 +-
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 72 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c | 2 +
drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 2 +
drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c | 511 +
drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.h | 29 +
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 27 +-
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c | 982 +
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.h | 30 +
drivers/gpu/drm/amd/amdgpu/hdp_v5_2.c | 45 +
drivers/gpu/drm/amd/amdgpu/hdp_v5_2.h | 31 +
drivers/gpu/drm/amd/amdgpu/hdp_v6_0.c | 142 +
drivers/gpu/drm/amd/amdgpu/hdp_v6_0.h | 31 +
drivers/gpu/drm/amd/amdgpu/iceland_ih.c | 7 +-
drivers/gpu/drm/amd/amdgpu/ih_v6_0.c | 745 +
drivers/gpu/drm/amd/amdgpu/ih_v6_0.h | 28 +
drivers/gpu/drm/amd/amdgpu/imu_v11_0.c | 367 +
drivers/gpu/drm/amd/amdgpu/imu_v11_0.h | 30 +
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c | 10 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.h | 1 +
drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c | 20 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c | 609 +
drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.h | 29 +
drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c | 121 +
drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.h | 31 +
drivers/gpu/drm/amd/amdgpu/mes_v10_1.c | 630 +-
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 1186 +
drivers/gpu/drm/amd/amdgpu/mes_v11_0.h | 29 +
drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c | 2 +
drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c | 2 +
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.c | 661 +
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.h | 28 +
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.c | 571 +
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.h | 28 +
drivers/gpu/drm/amd/amdgpu/navi10_ih.c | 7 +-
drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c | 368 +
drivers/gpu/drm/amd/amdgpu/nbio_v4_3.h | 32 +
drivers/gpu/drm/amd/amdgpu/nbio_v7_7.c | 240 +
drivers/gpu/drm/amd/amdgpu/nbio_v7_7.h | 33 +
drivers/gpu/drm/amd/amdgpu/nv.c | 14 +-
drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h | 30 +
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 129 +-
drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 12 +-
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 24 +-
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 32 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 177 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 179 +-
drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c | 1689 +
drivers/gpu/drm/amd/amdgpu/sdma_v6_0.h | 30 +
drivers/gpu/drm/amd/amdgpu/sdma_v6_0_0_pkt_open.h | 5664 +
drivers/gpu/drm/amd/amdgpu/si_dma.c | 9 +-
drivers/gpu/drm/amd/amdgpu/smuio_v13_0_6.c | 41 +
drivers/gpu/drm/amd/amdgpu/smuio_v13_0_6.h | 30 +
drivers/gpu/drm/amd/amdgpu/soc15.c | 13 -
drivers/gpu/drm/amd/amdgpu/soc15_common.h | 8 +
drivers/gpu/drm/amd/amdgpu/soc21.c | 722 +
drivers/gpu/drm/amd/amdgpu/soc21.h | 30 +
drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/vcn_sw_ring.c | 86 +
drivers/gpu/drm/amd/amdgpu/vcn_sw_ring.h | 44 +
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 15 +-
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 24 +-
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 113 +-
drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 1874 +
drivers/gpu/drm/amd/amdgpu/vcn_v4_0.h | 29 +
drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 7 +-
drivers/gpu/drm/amd/amdgpu/vi.c | 17 +-
drivers/gpu/drm/amd/amdkfd/Makefile | 3 +
drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h | 2974 +-
.../gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx10.asm | 394 +-
.../gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx9.asm | 244 +-
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 7 +-
drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 86 +-
drivers/gpu/drm/amd/amdkfd/kfd_device.c | 92 +-
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 300 +-
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 5 +
.../drm/amd/amdkfd/kfd_device_queue_manager_v11.c | 81 +
drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c | 56 +-
drivers/gpu/drm/amd/amdkfd/kfd_events.c | 22 +-
drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c | 384 +
drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c | 41 +-
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 21 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c | 10 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c | 508 +
drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 16 +-
drivers/gpu/drm/amd/amdkfd/kfd_process.c | 29 +-
.../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 21 +
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 73 +-
drivers/gpu/drm/amd/amdkfd/kfd_svm.h | 1 +
drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 42 +-
drivers/gpu/drm/amd/amdkfd/soc15_int.h | 3 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 75 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 6 -
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 6 -
.../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 2 -
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 6 +-
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 2 -
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.h | 3 -
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c | 4 -
.../drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 1 +
drivers/gpu/drm/amd/display/dc/Makefile | 2 -
.../amd/display/dc/bios/command_table_helper2.c | 3 +-
.../drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 2 +-
.../drm/amd/display/dc/clk_mgr/dcn301/dcn301_smu.c | 2 +
.../amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c | 13 +-
.../amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.h | 2 +
.../amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c | 124 +-
.../amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c | 6 +-
drivers/gpu/drm/amd/display/dc/core/dc.c | 56 +-
drivers/gpu/drm/amd/display/dc/core/dc_debug.c | 2 -
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 46 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 6 -
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 188 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_dpia.c | 21 +-
drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 31 +-
drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 12 -
drivers/gpu/drm/amd/display/dc/core/dc_surface.c | 2 +
drivers/gpu/drm/amd/display/dc/dc.h | 66 +-
drivers/gpu/drm/amd/display/dc/dc_hw_types.h | 19 +-
drivers/gpu/drm/amd/display/dc/dc_stream.h | 2 +-
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c | 3 +-
.../gpu/drm/amd/display/dc/dce/dce_clock_source.c | 24 +-
.../gpu/drm/amd/display/dc/dce/dce_clock_source.h | 12 +-
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c | 10 -
.../drm/amd/display/dc/dce/dce_stream_encoder.c | 21 +-
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c | 2 +-
.../amd/display/dc/dce110/dce110_hw_sequencer.c | 2 -
.../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 27 +-
.../amd/display/dc/dcn10/dcn10_stream_encoder.c | 1 +
.../amd/display/dc/dcn10/dcn10_stream_encoder.h | 8 +
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.c | 11 +
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 18 +-
.../gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.c | 2 -
.../display/dc/dcn30/dcn30_dio_stream_encoder.h | 4 +
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.h | 5 -
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_optc.c | 10 +
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_optc.h | 2 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_resource.c | 516 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_resource.h | 5 +
.../drm/amd/display/dc/dcn301/dcn301_resource.c | 2 +
.../drm/amd/display/dc/dcn302/dcn302_resource.c | 2 +
.../drm/amd/display/dc/dcn303/dcn303_resource.c | 2 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.c | 68 +-
.../amd/display/dc/dcn31/dcn31_dio_link_encoder.c | 4 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 42 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.h | 9 +
.../drm/amd/display/dc/dcn315/dcn315_resource.c | 4 +-
.../drm/amd/display/dc/dcn316/dcn316_resource.c | 4 +-
drivers/gpu/drm/amd/display/dc/dm_helpers.h | 2 -
drivers/gpu/drm/amd/display/dc/dml/Makefile | 3 +-
.../gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.c | 617 +
.../gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.h | 67 +
.../gpu/drm/amd/display/dc/dml/dcn31/dcn31_fpu.c | 145 +-
drivers/gpu/drm/amd/display/dc/dml/dml_wrapper.c | 2 -
drivers/gpu/drm/amd/display/dc/gpio/Makefile | 3 +-
.../amd/display/dc/gpio/dcn30/hw_factory_dcn30.c | 2 -
.../amd/display/dc/gpio/dcn30/hw_factory_dcn30.h | 2 -
.../amd/display/dc/gpio/dcn30/hw_translate_dcn30.c | 2 -
.../amd/display/dc/gpio/dcn30/hw_translate_dcn30.h | 2 -
drivers/gpu/drm/amd/display/dc/gpio/hw_factory.c | 4 -
drivers/gpu/drm/amd/display/dc/gpio/hw_translate.c | 4 -
drivers/gpu/drm/amd/display/dc/inc/core_types.h | 24 +-
drivers/gpu/drm/amd/display/dc/inc/dc_link_dp.h | 4 +-
drivers/gpu/drm/amd/display/dc/inc/dc_link_dpia.h | 5 +
drivers/gpu/drm/amd/display/dc/inc/hw/clk_mgr.h | 2 +
drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h | 18 +-
drivers/gpu/drm/amd/display/dc/inc/hw/dsc.h | 1 +
drivers/gpu/drm/amd/display/dc/irq/Makefile | 3 +-
.../amd/display/dc/irq/dcn30/irq_service_dcn30.c | 3 -
.../amd/display/dc/irq/dcn30/irq_service_dcn30.h | 3 -
drivers/gpu/drm/amd/display/dc/irq/irq_service.c | 5 -
.../gpu/drm/amd/display/dc/link/link_hwss_hpo_dp.c | 19 +-
drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 1 +
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 36 +-
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.c | 12 +-
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.h | 3 +-
.../drm/amd/display/include/ddc_service_types.h | 4 +
drivers/gpu/drm/amd/include/amd_shared.h | 5 +
.../include/asic_reg/athub/athub_3_0_0_offset.h | 259 +
.../include/asic_reg/athub/athub_3_0_0_sh_mask.h | 1246 +
.../amd/include/asic_reg/dce/dce_10_0_sh_mask.h | 2 +
.../amd/include/asic_reg/dce/dce_11_0_sh_mask.h | 2 +
.../amd/include/asic_reg/dce/dce_11_2_sh_mask.h | 2 +
.../amd/include/asic_reg/dce/dce_12_0_sh_mask.h | 2 +
.../drm/amd/include/asic_reg/dce/dce_8_0_sh_mask.h | 2 +
.../drm/amd/include/asic_reg/dcn/dcn_1_0_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_2_0_0_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_2_0_3_sh_mask.h | 4 +-
.../amd/include/asic_reg/dcn/dcn_2_1_0_sh_mask.h | 2 +
.../amd/include/asic_reg/gc/gc_11_0_0_default.h | 6114 +
.../drm/amd/include/asic_reg/gc/gc_11_0_0_offset.h | 11670 ++
.../amd/include/asic_reg/gc/gc_11_0_0_sh_mask.h | 41635 +++++
.../amd/include/asic_reg/hdp/hdp_5_2_1_offset.h | 217 +
.../amd/include/asic_reg/hdp/hdp_5_2_1_sh_mask.h | 684 +
.../amd/include/asic_reg/hdp/hdp_6_0_0_offset.h | 209 +
.../amd/include/asic_reg/hdp/hdp_6_0_0_sh_mask.h | 646 +
.../include/asic_reg/lsdma/lsdma_6_0_0_offset.h | 391 +
.../include/asic_reg/lsdma/lsdma_6_0_0_sh_mask.h | 1439 +
.../include/asic_reg/mmhub/mmhub_3_0_0_offset.h | 1529 +
.../include/asic_reg/mmhub/mmhub_3_0_0_sh_mask.h | 7478 +
.../include/asic_reg/mmhub/mmhub_3_0_2_offset.h | 1425 +
.../include/asic_reg/mmhub/mmhub_3_0_2_sh_mask.h | 7228 +
.../drm/amd/include/asic_reg/mp/mp_13_0_0_offset.h | 461 +
.../amd/include/asic_reg/mp/mp_13_0_0_sh_mask.h | 682 +
.../drm/amd/include/asic_reg/mp/mp_13_0_2_offset.h | 48 +
.../amd/include/asic_reg/mp/mp_13_0_2_sh_mask.h | 72 +
.../amd/include/asic_reg/nbio/nbio_4_3_0_offset.h | 17379 ++
.../amd/include/asic_reg/nbio/nbio_4_3_0_sh_mask.h | 82049 ++++++++++
.../amd/include/asic_reg/nbio/nbio_7_7_0_offset.h | 29654 ++++
.../amd/include/asic_reg/nbio/nbio_7_7_0_sh_mask.h | 154403 ++++++++++++++++++
.../amd/include/asic_reg/oss/osssys_6_0_0_offset.h | 263 +
.../include/asic_reg/oss/osssys_6_0_0_sh_mask.h | 969 +
.../include/asic_reg/smuio/smuio_13_0_6_offset.h | 517 +
.../include/asic_reg/smuio/smuio_13_0_6_sh_mask.h | 1178 +
.../amd/include/asic_reg/vcn/vcn_4_0_0_offset.h | 1610 +
.../amd/include/asic_reg/vcn/vcn_4_0_0_sh_mask.h | 8055 +
drivers/gpu/drm/amd/include/atombios.h | 2 +-
drivers/gpu/drm/amd/include/atomfirmware.h | 204 +-
drivers/gpu/drm/amd/include/discovery.h | 114 +-
.../amd/include/ivsrcid/gfx/irqsrcs_gfx_11_0_0.h | 77 +
.../drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h | 4 +
.../drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_4_0.h | 41 +
drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 1 +
drivers/gpu/drm/amd/include/kgd_pp_interface.h | 1 +
.../gpu/drm/amd/{amdgpu => include}/mes_api_def.h | 167 +-
drivers/gpu/drm/amd/include/mes_v11_api_def.h | 579 +
drivers/gpu/drm/amd/include/soc15_hw_ip.h | 1 +
drivers/gpu/drm/amd/include/soc15_ih_clientid.h | 27 +
drivers/gpu/drm/amd/include/soc21_enum.h | 22477 +++
drivers/gpu/drm/amd/include/v11_structs.h | 1189 +
drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 3 +
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 154 +-
drivers/gpu/drm/amd/pm/inc/smu_v13_0_0_pptable.h | 203 +
drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c | 14 +-
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 137 +-
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 18 +-
.../inc/pmfw_if/smu11_driver_if_sienna_cichlid.h | 63 +
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_0.h | 1542 +
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_4.h | 267 +
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h | 1562 +
.../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_0_ppsmc.h | 141 +
.../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_4_pmfw.h | 137 +
.../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_4_ppsmc.h | 138 +
.../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_7_ppsmc.h | 134 +
drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h | 28 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v11_0_7_pptable.h | 9 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v11_0_pptable.h | 9 +-
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h | 58 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v13_0_7_pptable.h | 203 +
.../gpu/drm/amd/pm/swsmu/inc/smu_v13_0_pptable.h | 10 +-
.../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 237 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 2 +-
drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c | 60 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/Makefile | 3 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 1 +
drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.h | 8 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 722 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 1652 +
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.h | 28 +
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c | 1042 +
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.h | 28 +
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 1597 +
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.h | 28 +
.../gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c | 65 +-
drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c | 24 +-
drivers/gpu/drm/amd/pm/swsmu/smu_cmn.h | 2 +
drivers/gpu/drm/amd/pm/swsmu/smu_internal.h | 1 +
drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c | 1 +
drivers/gpu/drm/arm/display/komeda/komeda_kms.h | 1 +
drivers/gpu/drm/arm/display/komeda/komeda_plane.c | 1 +
.../drm/arm/display/komeda/komeda_wb_connector.c | 5 +-
drivers/gpu/drm/arm/hdlcd_crtc.c | 1 +
drivers/gpu/drm/arm/malidp_crtc.c | 1 +
drivers/gpu/drm/arm/malidp_mw.c | 6 +-
drivers/gpu/drm/arm/malidp_planes.c | 2 +
drivers/gpu/drm/armada/armada_fb.h | 2 +
drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c | 1 +
drivers/gpu/drm/aspeed/aspeed_gfx_out.c | 1 +
drivers/gpu/drm/ast/ast_mode.c | 1 +
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 2 +
drivers/gpu/drm/bridge/Kconfig | 3 +
drivers/gpu/drm/bridge/Makefile | 1 +
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 43 +-
drivers/gpu/drm/bridge/analogix/anx7625.c | 8 +-
.../gpu/drm/bridge/cadence/cdns-mhdp8546-core.c | 1 +
drivers/gpu/drm/bridge/imx/Kconfig | 43 +
drivers/gpu/drm/bridge/imx/Makefile | 9 +
drivers/gpu/drm/bridge/imx/imx-ldb-helper.c | 220 +
drivers/gpu/drm/bridge/imx/imx-ldb-helper.h | 96 +
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c | 587 +
drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c | 722 +
.../gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c | 448 +
drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c | 429 +
drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c | 487 +
drivers/gpu/drm/bridge/lontium-lt8912b.c | 1 +
drivers/gpu/drm/bridge/panel.c | 34 +
drivers/gpu/drm/bridge/parade-ps8640.c | 40 +-
drivers/gpu/drm/bridge/simple-bridge.c | 1 +
drivers/gpu/drm/bridge/tc358775.c | 3 +-
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 8 +-
drivers/gpu/drm/bridge/ti-tfp410.c | 1 +
drivers/gpu/drm/display/drm_dp_helper.c | 3 +-
drivers/gpu/drm/display/drm_dp_mst_topology.c | 27 +-
drivers/gpu/drm/drm_aperture.c | 26 +-
drivers/gpu/drm/drm_atomic.c | 2 +
drivers/gpu/drm/drm_atomic_helper.c | 18 +-
drivers/gpu/drm/drm_atomic_state_helper.c | 2 +
drivers/gpu/drm/drm_atomic_uapi.c | 1 +
drivers/gpu/drm/drm_bridge_connector.c | 8 +-
drivers/gpu/drm/drm_client_modeset.c | 1 +
drivers/gpu/drm/drm_connector.c | 31 +
drivers/gpu/drm/drm_crtc.c | 2 +
drivers/gpu/drm/drm_crtc_helper.c | 1 +
drivers/gpu/drm/drm_damage_helper.c | 1 +
drivers/gpu/drm/drm_fb_helper.c | 1 +
drivers/gpu/drm/drm_gem_atomic_helper.c | 1 +
drivers/gpu/drm/drm_ioctl.c | 2 +-
drivers/gpu/drm/drm_kms_helper_common.c | 1 +
drivers/gpu/drm/drm_mipi_dbi.c | 1 +
drivers/gpu/drm/drm_mode_config.c | 1 +
drivers/gpu/drm/drm_modes.c | 1 +
drivers/gpu/drm/drm_modeset_helper.c | 1 +
drivers/gpu/drm/drm_panel_orientation_quirks.c | 2 +-
drivers/gpu/drm/drm_prime.c | 2 +-
drivers/gpu/drm/drm_vm.c | 2 +-
drivers/gpu/drm/drm_writeback.c | 74 +-
drivers/gpu/drm/etnaviv/etnaviv_gem.c | 11 +-
drivers/gpu/drm/etnaviv/etnaviv_mmu.c | 54 +-
drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 2 +
drivers/gpu/drm/exynos/exynos7_drm_decon.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_fb.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +
drivers/gpu/drm/exynos/exynos_drm_ipp.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_plane.c | 2 +
drivers/gpu/drm/exynos/exynos_drm_scaler.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_vidi.c | 1 +
drivers/gpu/drm/exynos/exynos_mixer.c | 3 +
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 1 +
drivers/gpu/drm/gma500/cdv_intel_dp.c | 1 +
drivers/gpu/drm/gma500/framebuffer.c | 1 +
drivers/gpu/drm/gma500/gma_display.c | 1 +
drivers/gpu/drm/gma500/oaktrail_crtc.c | 1 +
drivers/gpu/drm/gma500/oaktrail_hdmi.c | 1 +
drivers/gpu/drm/gma500/oaktrail_lvds.c | 1 +
drivers/gpu/drm/gma500/psb_intel_modes.c | 2 +
drivers/gpu/drm/gud/gud_connector.c | 1 +
drivers/gpu/drm/gud/gud_drv.c | 1 +
drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 1 +
drivers/gpu/drm/hyperv/hyperv_drm_modeset.c | 7 +-
drivers/gpu/drm/hyperv/hyperv_drm_proto.c | 23 +-
drivers/gpu/drm/i915/Kconfig | 36 +-
drivers/gpu/drm/i915/Makefile | 9 +-
drivers/gpu/drm/i915/display/g4x_dp.c | 3 +-
drivers/gpu/drm/i915/display/g4x_hdmi.c | 3 +-
drivers/gpu/drm/i915/display/i9xx_plane.c | 1 +
drivers/gpu/drm/i915/display/icl_dsi.c | 8 +-
drivers/gpu/drm/i915/display/intel_audio.c | 4 +-
drivers/gpu/drm/i915/display/intel_bios.c | 346 +-
drivers/gpu/drm/i915/display/intel_cursor.c | 1 +
drivers/gpu/drm/i915/display/intel_ddi.c | 6 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 4 +-
drivers/gpu/drm/i915/display/intel_display.c | 176 +-
drivers/gpu/drm/i915/display/intel_display.h | 4 +-
drivers/gpu/drm/i915/display/intel_display_power.c | 5283 +-
drivers/gpu/drm/i915/display/intel_display_power.h | 126 +-
.../gpu/drm/i915/display/intel_display_power_map.c | 1501 +
.../gpu/drm/i915/display/intel_display_power_map.h | 14 +
.../drm/i915/display/intel_display_power_well.c | 1813 +-
.../drm/i915/display/intel_display_power_well.h | 132 +-
drivers/gpu/drm/i915/display/intel_display_types.h | 1 +
drivers/gpu/drm/i915/display/intel_dmc.c | 44 +
drivers/gpu/drm/i915/display/intel_dmc_regs.h | 16 +
drivers/gpu/drm/i915/display/intel_dp.c | 1 +
.../gpu/drm/i915/display/intel_dp_link_training.c | 33 +-
drivers/gpu/drm/i915/display/intel_dpio_phy.c | 1 +
drivers/gpu/drm/i915/display/intel_dpll.c | 196 +-
drivers/gpu/drm/i915/display/intel_dpll.h | 6 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 268 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.h | 9 +-
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 33 +-
drivers/gpu/drm/i915/display/intel_fb.c | 1 +
drivers/gpu/drm/i915/display/intel_fbc.c | 18 +-
drivers/gpu/drm/i915/display/intel_lspcon.c | 1 +
drivers/gpu/drm/i915/display/intel_opregion.c | 2 +
drivers/gpu/drm/i915/display/intel_panel.c | 10 +-
drivers/gpu/drm/i915/display/intel_pps.c | 1 +
drivers/gpu/drm/i915/display/intel_psr.c | 3 +
drivers/gpu/drm/i915/display/intel_sprite.c | 1 +
drivers/gpu/drm/i915/display/intel_tc.c | 5 +-
drivers/gpu/drm/i915/display/intel_vbt_defs.h | 24 +-
drivers/gpu/drm/i915/display/skl_universal_plane.c | 1 +
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 6 +-
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 23 +-
drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 54 +
drivers/gpu/drm/i915/gt/gen8_engine_cs.h | 7 +
drivers/gpu/drm/i915/gt/intel_engine_regs.h | 2 +
drivers/gpu/drm/i915/gt/intel_engine_user.c | 2 +-
.../gpu/drm/i915/gt/intel_execlists_submission.c | 15 +-
drivers/gpu/drm/i915/gt/intel_gpu_commands.h | 2 +
drivers/gpu/drm/i915/gt/intel_gt.c | 1 +
drivers/gpu/drm/i915/gt/intel_gt_regs.h | 1 +
drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c | 23 +-
drivers/gpu/drm/i915/gt/intel_lrc.c | 75 +-
drivers/gpu/drm/i915/gt/intel_lrc.h | 5 +
drivers/gpu/drm/i915/gt/intel_migrate.c | 59 +-
drivers/gpu/drm/i915/gt/intel_reset.c | 2 +-
drivers/gpu/drm/i915/gt/intel_sseu.c | 2 -
drivers/gpu/drm/i915/gt/selftest_lrc.c | 53 +-
drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h | 2 +-
.../drm/i915/gt/uc/abi/guc_communication_ctb_abi.h | 2 +-
drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_guc.h | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 35 +-
drivers/gpu/drm/i915/gt/uc/intel_uc.c | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_uc.h | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 1 +
drivers/gpu/drm/i915/gvt/Makefile | 30 +-
drivers/gpu/drm/i915/gvt/cfg_space.c | 89 +-
drivers/gpu/drm/i915/gvt/cmd_parser.c | 4 +-
drivers/gpu/drm/i915/gvt/dmabuf.c | 36 +-
drivers/gpu/drm/i915/gvt/execlist.c | 12 +-
drivers/gpu/drm/i915/gvt/firmware.c | 25 +-
drivers/gpu/drm/i915/gvt/gtt.c | 55 +-
drivers/gpu/drm/i915/gvt/gvt.c | 340 -
drivers/gpu/drm/i915/gvt/gvt.h | 124 +-
drivers/gpu/drm/i915/gvt/handlers.c | 1035 +-
drivers/gpu/drm/i915/gvt/hypercall.h | 82 -
drivers/gpu/drm/i915/gvt/interrupt.c | 40 +-
drivers/gpu/drm/i915/gvt/kvmgt.c | 1108 +-
drivers/gpu/drm/i915/gvt/mmio.c | 4 +-
drivers/gpu/drm/i915/gvt/mmio.h | 1 -
drivers/gpu/drm/i915/gvt/mpt.h | 400 -
drivers/gpu/drm/i915/gvt/opregion.c | 148 +-
drivers/gpu/drm/i915/gvt/page_track.c | 8 +-
drivers/gpu/drm/i915/gvt/reg.h | 9 +-
drivers/gpu/drm/i915/gvt/scheduler.c | 37 +-
drivers/gpu/drm/i915/gvt/trace.h | 2 +-
drivers/gpu/drm/i915/gvt/vgpu.c | 22 +-
drivers/gpu/drm/i915/i915_driver.c | 7 -
drivers/gpu/drm/i915/i915_drm_client.c | 1 +
drivers/gpu/drm/i915/i915_drm_client.h | 2 +-
drivers/gpu/drm/i915/i915_drv.h | 10 +-
drivers/gpu/drm/i915/i915_pci.c | 30 +-
drivers/gpu/drm/i915/i915_perf.c | 4 +-
drivers/gpu/drm/i915/i915_perf_types.h | 2 +-
drivers/gpu/drm/i915/i915_pmu.c | 2 +-
drivers/gpu/drm/i915/i915_reg.h | 33 +-
drivers/gpu/drm/i915/i915_vma.c | 19 +-
drivers/gpu/drm/i915/i915_vma.h | 1 -
drivers/gpu/drm/i915/intel_device_info.c | 31 +-
drivers/gpu/drm/i915/intel_device_info.h | 12 +-
drivers/gpu/drm/i915/intel_gvt.c | 252 +-
drivers/gpu/drm/i915/intel_gvt.h | 32 +-
drivers/gpu/drm/i915/intel_gvt_mmio_table.c | 1292 +
drivers/gpu/drm/i915/intel_pm.c | 22 +-
drivers/gpu/drm/imx/dcss/dcss-plane.c | 2 +
drivers/gpu/drm/imx/imx-ldb.c | 1 +
drivers/gpu/drm/imx/imx-tve.c | 5 +-
drivers/gpu/drm/imx/ipuv3-crtc.c | 2 +-
drivers/gpu/drm/imx/ipuv3-plane.c | 10 +-
drivers/gpu/drm/imx/parallel-display.c | 1 +
drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 1 +
drivers/gpu/drm/ingenic/ingenic-ipu.c | 1 +
drivers/gpu/drm/kmb/kmb_plane.c | 2 +
drivers/gpu/drm/logicvc/logicvc_layer.c | 2 +
drivers/gpu/drm/mcde/mcde_display.c | 1 +
drivers/gpu/drm/mediatek/mtk_cec.c | 2 +-
drivers/gpu/drm/mediatek/mtk_disp_aal.c | 2 +-
drivers/gpu/drm/mediatek/mtk_disp_drv.h | 18 +-
drivers/gpu/drm/mediatek/mtk_disp_gamma.c | 34 +-
drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 24 +-
drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 22 +-
drivers/gpu/drm/mediatek/mtk_dpi.c | 4 +-
drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 17 +-
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 4 +
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 29 +-
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 31 +
drivers/gpu/drm/mediatek/mtk_drm_plane.c | 4 +-
drivers/gpu/drm/mediatek/mtk_dsi.c | 1 -
drivers/gpu/drm/meson/meson_overlay.c | 2 +
drivers/gpu/drm/meson/meson_plane.c | 2 +
drivers/gpu/drm/mgag200/mgag200_mode.c | 1 +
drivers/gpu/drm/msm/Kconfig | 51 +-
drivers/gpu/drm/msm/Makefile | 29 +-
drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 21 +-
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 2 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 18 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 68 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.h | 4 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.h | 32 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 14 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 593 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 32 +
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 97 +-
.../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 112 +-
.../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 79 +-
.../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 755 +
drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h | 22 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 157 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 95 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c | 94 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h | 23 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c | 215 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h | 80 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 161 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 12 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c | 62 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.h | 2 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h | 22 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c | 32 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h | 14 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h | 18 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c | 25 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h | 19 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c | 279 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.h | 115 +
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 254 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 13 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 260 -
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 172 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h | 2 +
drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 78 +
drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h | 13 +
drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 93 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c | 80 +
drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h | 31 +
drivers/gpu/drm/msm/disp/mdp4/mdp4_dsi_encoder.c | 3 +
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 64 +-
drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c | 1 +
drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c | 3 +
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 15 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 81 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_mdss.c | 252 -
drivers/gpu/drm/msm/disp/mdp5/mdp5_mixer.c | 15 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_mixer.h | 4 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c | 15 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.h | 2 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 24 +-
drivers/gpu/drm/msm/disp/mdp_format.c | 2 +
drivers/gpu/drm/msm/dp/dp_audio.c | 50 +-
drivers/gpu/drm/msm/dp/dp_aux.c | 21 +-
drivers/gpu/drm/msm/dp/dp_aux.h | 3 +-
drivers/gpu/drm/msm/dp/dp_catalog.c | 98 +-
drivers/gpu/drm/msm/dp/dp_catalog.h | 3 +
drivers/gpu/drm/msm/dp/dp_ctrl.c | 175 +-
drivers/gpu/drm/msm/dp/dp_ctrl.h | 2 +
drivers/gpu/drm/msm/dp/dp_debug.c | 2 -
drivers/gpu/drm/msm/dp/dp_display.c | 444 +-
drivers/gpu/drm/msm/dp/dp_display.h | 7 +-
drivers/gpu/drm/msm/dp/dp_drm.c | 215 +-
drivers/gpu/drm/msm/dp/dp_drm.h | 22 +-
drivers/gpu/drm/msm/dp/dp_link.c | 103 +-
drivers/gpu/drm/msm/dp/dp_panel.c | 60 +-
drivers/gpu/drm/msm/dp/dp_panel.h | 4 +-
drivers/gpu/drm/msm/dp/dp_parser.c | 25 +-
drivers/gpu/drm/msm/dp/dp_parser.h | 14 +-
drivers/gpu/drm/msm/dp/dp_power.c | 25 +-
drivers/gpu/drm/msm/dsi/dsi.c | 6 +-
drivers/gpu/drm/msm/dsi/dsi.h | 3 +
drivers/gpu/drm/msm/dsi/dsi.xml.h | 80 +
drivers/gpu/drm/msm/dsi/dsi_host.c | 300 +-
drivers/gpu/drm/msm/dsi/dsi_manager.c | 47 +-
drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c | 2 +-
drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 10 +-
drivers/gpu/drm/msm/edp/edp.h | 78 -
drivers/gpu/drm/msm/edp/edp_ctrl.c | 1374 -
drivers/gpu/drm/msm/hdmi/hdmi.c | 11 +-
drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 4 +
drivers/gpu/drm/msm/msm_debugfs.c | 1 +
drivers/gpu/drm/msm/msm_drv.c | 301 +-
drivers/gpu/drm/msm/msm_drv.h | 162 +-
drivers/gpu/drm/msm/msm_fb.c | 21 +-
drivers/gpu/drm/msm/msm_fbdev.c | 1 +
drivers/gpu/drm/msm/msm_fence.c | 6 +-
drivers/gpu/drm/msm/msm_fence.h | 3 +
drivers/gpu/drm/msm/msm_gem.c | 151 +-
drivers/gpu/drm/msm/msm_gem.h | 53 +-
drivers/gpu/drm/msm/msm_gem_prime.c | 2 +-
drivers/gpu/drm/msm/msm_gem_submit.c | 37 +-
drivers/gpu/drm/msm/msm_gem_vma.c | 61 +-
drivers/gpu/drm/msm/msm_gpu.c | 51 +-
drivers/gpu/drm/msm/msm_gpu.h | 25 +-
drivers/gpu/drm/msm/msm_gpu_devfreq.c | 97 +-
drivers/gpu/drm/msm/msm_kms.h | 22 +-
drivers/gpu/drm/msm/msm_mdss.c | 472 +
drivers/gpu/drm/msm/msm_rd.c | 5 +-
drivers/gpu/drm/msm/msm_ringbuffer.c | 15 +-
drivers/gpu/drm/msm/msm_ringbuffer.h | 1 -
drivers/gpu/drm/msm/msm_submitqueue.c | 2 +
drivers/gpu/drm/mxsfb/mxsfb_kms.c | 1 +
drivers/gpu/drm/nouveau/dispnv50/wndw.c | 1 +
drivers/gpu/drm/nouveau/nouveau_backlight.c | 9 +-
drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c | 2 +-
drivers/gpu/drm/omapdrm/dss/hdmi4.c | 1 +
drivers/gpu/drm/omapdrm/dss/hdmi5.c | 1 +
drivers/gpu/drm/omapdrm/omap_debugfs.c | 1 +
drivers/gpu/drm/omapdrm/omap_fb.c | 2 +
drivers/gpu/drm/omapdrm/omap_fbdev.c | 1 +
drivers/gpu/drm/omapdrm/omap_plane.c | 2 +
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 12 +
drivers/gpu/drm/panel/panel-edp.c | 47 +-
drivers/gpu/drm/panel/panel-elida-kd35t133.c | 12 +
drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 12 +
drivers/gpu/drm/panel/panel-lvds.c | 13 +
drivers/gpu/drm/panel/panel-samsung-atna33xc20.c | 51 +-
drivers/gpu/drm/panel/panel-simple.c | 14 +-
drivers/gpu/drm/panfrost/panfrost_drv.c | 5 +-
drivers/gpu/drm/panfrost/panfrost_job.c | 6 +-
drivers/gpu/drm/panfrost/panfrost_job.h | 2 +-
drivers/gpu/drm/pl111/pl111_display.c | 1 +
drivers/gpu/drm/pl111/pl111_drv.c | 1 +
drivers/gpu/drm/pl111/pl111_versatile.c | 2 +
drivers/gpu/drm/qxl/qxl_display.c | 2 +
drivers/gpu/drm/qxl/qxl_draw.c | 1 +
drivers/gpu/drm/radeon/Makefile | 2 +-
drivers/gpu/drm/radeon/atombios.h | 10 +-
drivers/gpu/drm/radeon/atombios_crtc.c | 1 +
drivers/gpu/drm/radeon/cik_blit_shaders.c | 246 -
drivers/gpu/drm/radeon/cik_blit_shaders.h | 219 +-
drivers/gpu/drm/radeon/evergreen.c | 1 +
drivers/gpu/drm/radeon/r100.c | 1 +
drivers/gpu/drm/radeon/radeon_connectors.c | 4 +
drivers/gpu/drm/radeon/radeon_device.c | 1 +
drivers/gpu/drm/radeon/radeon_display.c | 1 +
drivers/gpu/drm/radeon/radeon_fb.c | 1 +
drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 1 +
drivers/gpu/drm/radeon/rs600.c | 1 +
drivers/gpu/drm/radeon/rv770.c | 1 +
drivers/gpu/drm/radeon/si_dpm.c | 4 +-
drivers/gpu/drm/rcar-du/rcar_du_kms.c | 1 +
drivers/gpu/drm/rcar-du/rcar_du_plane.c | 2 +
drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 2 +
drivers/gpu/drm/rcar-du/rcar_du_writeback.c | 6 +-
drivers/gpu/drm/rockchip/rk3066_hdmi.c | 1 +
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 1 +
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 2 +
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 6 +-
drivers/gpu/drm/selftests/test-drm_damage_helper.c | 1 +
drivers/gpu/drm/selftests/test-drm_plane_helper.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_kms.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_plane.c | 1 +
drivers/gpu/drm/solomon/ssd130x.c | 2 +
drivers/gpu/drm/sprd/sprd_dpu.c | 2 +
drivers/gpu/drm/sti/sti_cursor.c | 1 +
drivers/gpu/drm/sti/sti_gdp.c | 1 +
drivers/gpu/drm/sti/sti_hqvdp.c | 1 +
drivers/gpu/drm/sti/sti_plane.c | 2 +
drivers/gpu/drm/stm/ltdc.c | 3 +
drivers/gpu/drm/sun4i/sun4i_backend.c | 2 +
drivers/gpu/drm/sun4i/sun4i_framebuffer.c | 1 +
drivers/gpu/drm/sun4i/sun4i_layer.c | 1 +
drivers/gpu/drm/sun4i/sun8i_mixer.c | 1 +
drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 2 +
drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 2 +
drivers/gpu/drm/tegra/dc.c | 2 +
drivers/gpu/drm/tegra/drm.c | 1 +
drivers/gpu/drm/tegra/fb.c | 1 +
drivers/gpu/drm/tegra/gem.c | 1 +
drivers/gpu/drm/tegra/hub.c | 2 +
drivers/gpu/drm/tegra/plane.c | 1 +
drivers/gpu/drm/tegra/vic.c | 5 +-
drivers/gpu/drm/tidss/tidss_dispc.c | 2 +
drivers/gpu/drm/tidss/tidss_plane.c | 2 +
drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 1 +
drivers/gpu/drm/tilcdc/tilcdc_plane.c | 1 +
drivers/gpu/drm/tiny/arcpgu.c | 2 +
drivers/gpu/drm/tiny/bochs.c | 2 +
drivers/gpu/drm/tiny/cirrus.c | 2 +
drivers/gpu/drm/tiny/gm12u320.c | 2 +
drivers/gpu/drm/tiny/ili9225.c | 1 +
drivers/gpu/drm/tiny/repaper.c | 1 +
drivers/gpu/drm/tiny/st7586.c | 1 +
drivers/gpu/drm/ttm/ttm_bo_vm.c | 2 +-
drivers/gpu/drm/ttm/ttm_module.c | 2 +-
drivers/gpu/drm/tve200/tve200_display.c | 1 +
drivers/gpu/drm/udl/udl_connector.c | 1 +
drivers/gpu/drm/vboxvideo/vbox_mode.c | 2 +
drivers/gpu/drm/vc4/vc4_bo.c | 2 +
drivers/gpu/drm/vc4/vc4_crtc.c | 1 +
drivers/gpu/drm/vc4/vc4_hdmi.c | 1 +
drivers/gpu/drm/vc4/vc4_kms.c | 1 +
drivers/gpu/drm/vc4/vc4_plane.c | 2 +
drivers/gpu/drm/vc4/vc4_regs.h | 2 +-
drivers/gpu/drm/vc4/vc4_txp.c | 4 +-
drivers/gpu/drm/virtio/virtgpu_display.c | 1 +
drivers/gpu/drm/virtio/virtgpu_drv.h | 1 +
drivers/gpu/drm/virtio/virtgpu_vq.c | 2 +
drivers/gpu/drm/vkms/vkms_drv.h | 1 +
drivers/gpu/drm/vkms/vkms_output.c | 1 +
drivers/gpu/drm/vkms/vkms_writeback.c | 5 +-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 +
drivers/gpu/drm/xen/xen_drm_front.h | 9 -
drivers/gpu/drm/xen/xen_drm_front_conn.c | 1 +
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c | 43 +-
drivers/gpu/drm/xen/xen_drm_front_kms.c | 1 +
drivers/gpu/drm/xlnx/zynqmp_disp.c | 1 +
drivers/gpu/host1x/Kconfig | 5 +
drivers/gpu/host1x/Makefile | 1 +
drivers/gpu/host1x/context_bus.c | 31 +
drivers/gpu/host1x/debug.c | 11 +-
drivers/gpu/host1x/job.c | 4 +-
drivers/gpu/ipu-v3/ipu-dc.c | 5 +-
drivers/gpu/ipu-v3/ipu-image-convert.c | 9 +-
drivers/hid/Kconfig | 8 +
drivers/hid/Makefile | 1 +
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 45 +-
drivers/hid/amd-sfh-hid/amd_sfh_hid.c | 9 +-
drivers/hid/amd-sfh-hid/amd_sfh_hid.h | 1 -
drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 17 +-
drivers/hid/amd-sfh-hid/amd_sfh_pcie.h | 5 +
.../hid_descriptor/amd_sfh_hid_report_desc.h | 6 +-
drivers/hid/hid-apple.c | 22 +-
drivers/hid/hid-bigbenff.c | 6 +
drivers/hid/hid-core.c | 4 +
drivers/hid/hid-elan.c | 2 -
drivers/hid/hid-ids.h | 7 +
drivers/hid/hid-kye.c | 12 +-
drivers/hid/hid-led.c | 2 +-
drivers/hid/hid-lenovo.c | 174 +-
drivers/hid/hid-megaworld.c | 125 +
drivers/hid/hid-multitouch.c | 9 +
drivers/hid/hid-uclogic-core.c | 113 +-
drivers/hid/hid-uclogic-params.c | 288 +-
drivers/hid/hid-uclogic-params.h | 105 +-
drivers/hid/hid-uclogic-rdesc.c | 181 +-
drivers/hid/hid-uclogic-rdesc.h | 34 +-
drivers/hid/hid-viewsonic.c | 2 +-
drivers/hid/intel-ish-hid/ipc/hw-ish.h | 2 +
drivers/hid/intel-ish-hid/ipc/pci-ish.c | 2 +
drivers/hid/usbhid/hid-core.c | 2 +-
drivers/hid/usbhid/usbkbd.c | 2 +-
drivers/hid/usbhid/usbmouse.c | 2 +-
drivers/hid/wacom_sys.c | 2 +-
drivers/hid/wacom_wac.c | 43 +-
drivers/hid/wacom_wac.h | 5 +
drivers/hte/Kconfig | 33 +
drivers/hte/Makefile | 3 +
drivers/hte/hte-tegra194-test.c | 238 +
drivers/hte/hte-tegra194.c | 730 +
drivers/hte/hte.c | 947 +
drivers/hv/channel.c | 116 +-
drivers/hv/channel_mgmt.c | 40 +-
drivers/hv/connection.c | 6 +-
drivers/hv/hv_balloon.c | 21 +-
drivers/hv/hyperv_vmbus.h | 2 +-
drivers/hv/ring_buffer.c | 46 +-
drivers/hv/vmbus_drv.c | 88 +-
drivers/hwmon/Kconfig | 57 +-
drivers/hwmon/Makefile | 4 +
drivers/hwmon/acpi_power_meter.c | 17 +-
drivers/hwmon/adt7470.c | 4 +-
drivers/hwmon/adt7475.c | 119 +-
drivers/hwmon/aquacomputer_d5next.c | 466 +-
drivers/hwmon/as370-hwmon.c | 12 +-
drivers/hwmon/asus-ec-sensors.c | 414 +-
drivers/hwmon/asus_wmi_sensors.c | 2 +-
drivers/hwmon/bt1-pvt.c | 50 +-
drivers/hwmon/dell-smm-hwmon.c | 147 +-
drivers/hwmon/f71882fg.c | 5 +-
drivers/hwmon/hwmon.c | 100 +-
drivers/hwmon/ibmaem.c | 10 +-
drivers/hwmon/intel-m10-bmc-hwmon.c | 11 +-
drivers/hwmon/jc42.c | 8 +
drivers/hwmon/lan966x-hwmon.c | 418 +
drivers/hwmon/lm75.c | 14 +
drivers/hwmon/lm83.c | 2 -
drivers/hwmon/lm90.c | 4 +
drivers/hwmon/ltc2992.c | 86 +-
drivers/hwmon/mr75203.c | 12 +-
drivers/hwmon/{nct6775.c => nct6775-core.c} | 2445 +-
drivers/hwmon/nct6775-i2c.c | 195 +
drivers/hwmon/nct6775-platform.c | 1229 +
drivers/hwmon/nct6775.h | 252 +
drivers/hwmon/occ/common.c | 100 +-
drivers/hwmon/occ/common.h | 5 +-
drivers/hwmon/occ/p8_i2c.c | 2 +-
drivers/hwmon/occ/p9_sbe.c | 2 +-
drivers/hwmon/occ/sysfs.c | 137 +-
drivers/hwmon/peci/cputemp.c | 38 +-
drivers/hwmon/peci/dimmtemp.c | 33 +-
drivers/hwmon/pmbus/Kconfig | 13 +-
drivers/hwmon/pmbus/Makefile | 1 +
drivers/hwmon/pmbus/delta-ahe50dc-fan.c | 16 +
drivers/hwmon/pmbus/ltc2978.c | 12 +
drivers/hwmon/pmbus/max16601.c | 13 +-
drivers/hwmon/pmbus/pmbus.h | 2 +
drivers/hwmon/pmbus/pmbus_core.c | 230 +-
drivers/hwmon/pmbus/xdpe12284.c | 2 +-
drivers/hwmon/pmbus/xdpe152c4.c | 75 +
drivers/hwmon/pwm-fan.c | 12 +-
drivers/hwmon/sl28cpld-hwmon.c | 14 +-
drivers/hwmon/tmp401.c | 57 +-
drivers/hwtracing/coresight/coresight-core.c | 33 +-
drivers/hwtracing/coresight/coresight-cpu-debug.c | 7 +-
drivers/hwtracing/coresight/coresight-etm3x-core.c | 2 +-
.../hwtracing/coresight/coresight-etm3x-sysfs.c | 2 +-
drivers/hwtracing/coresight/coresight-etm4x-core.c | 136 +-
.../hwtracing/coresight/coresight-etm4x-sysfs.c | 180 +-
drivers/hwtracing/coresight/coresight-etm4x.h | 120 +-
drivers/i2c/busses/i2c-at91-master.c | 11 +
drivers/i2c/busses/i2c-cadence.c | 12 +-
drivers/i2c/busses/i2c-davinci.c | 12 +-
drivers/i2c/busses/i2c-designware-amdpsp.c | 4 +-
drivers/i2c/busses/i2c-designware-common.c | 2 +-
drivers/i2c/busses/i2c-ismt.c | 17 +
drivers/i2c/busses/i2c-meson.c | 115 +-
drivers/i2c/busses/i2c-mt65xx.c | 11 +-
drivers/i2c/busses/i2c-mt7621.c | 15 +-
drivers/i2c/busses/i2c-npcm7xx.c | 122 +-
drivers/i2c/busses/i2c-powermac.c | 2 +-
drivers/i2c/busses/i2c-qcom-geni.c | 6 +-
drivers/i2c/busses/i2c-rcar.c | 217 +-
drivers/i2c/busses/i2c-thunderx-pcidrv.c | 1 +
drivers/i2c/busses/i2c-xiic.c | 84 +-
drivers/i3c/master/mipi-i3c-hci/core.c | 7 +-
drivers/i3c/master/svc-i3c-master.c | 3 +-
drivers/idle/intel_idle.c | 165 +-
drivers/iio/accel/Kconfig | 1 -
drivers/iio/accel/adxl355_core.c | 7 +-
drivers/iio/accel/adxl367.c | 1 -
drivers/iio/accel/bmc150-accel-core.c | 4 +-
drivers/iio/accel/dmard09.c | 2 +-
drivers/iio/accel/fxls8962af-core.c | 1 -
drivers/iio/accel/kxsd9-spi.c | 4 +-
drivers/iio/accel/mma8452.c | 1 +
drivers/iio/accel/sca3000.c | 1 -
drivers/iio/accel/ssp_accel_sensor.c | 1 -
drivers/iio/accel/st_accel.h | 28 +-
drivers/iio/accel/st_accel_core.c | 14 +-
drivers/iio/accel/st_accel_i2c.c | 5 +
drivers/iio/accel/st_accel_spi.c | 5 +
drivers/iio/adc/Kconfig | 2 +-
drivers/iio/adc/ad7124.c | 86 +-
drivers/iio/adc/ad7192.c | 68 +-
drivers/iio/adc/ad7266.c | 44 +-
drivers/iio/adc/ad7280a.c | 2 +-
drivers/iio/adc/ad_sigma_delta.c | 143 +-
drivers/iio/adc/at91-sama5d2_adc.c | 4 +-
drivers/iio/adc/ina2xx-adc.c | 3 +-
drivers/iio/adc/palmas_gpadc.c | 3 +-
drivers/iio/adc/qcom-vadc-common.c | 11 +
drivers/iio/adc/sc27xx_adc.c | 470 +-
drivers/iio/adc/stm32-dfsdm-adc.c | 5 +-
drivers/iio/adc/stmpe-adc.c | 21 +-
drivers/iio/adc/ti-ads1015.c | 398 +-
drivers/iio/adc/ti-ads8688.c | 1 +
drivers/iio/adc/ti_am335x_adc.c | 4 +-
drivers/iio/afe/Kconfig | 1 -
drivers/iio/afe/iio-rescale.c | 5 +-
drivers/iio/buffer/kfifo_buf.c | 10 +-
drivers/iio/chemical/scd30.h | 5 +-
drivers/iio/chemical/scd30_core.c | 10 +-
drivers/iio/chemical/scd30_i2c.c | 3 +-
drivers/iio/chemical/scd30_serial.c | 3 +-
.../common/cros_ec_sensors/cros_ec_sensors_core.c | 5 +-
drivers/iio/common/scmi_sensors/scmi_iio.c | 1 -
drivers/iio/common/ssp_sensors/ssp_spi.c | 13 +-
drivers/iio/common/st_sensors/st_sensors_core.c | 50 +-
drivers/iio/dac/Kconfig | 4 +-
drivers/iio/dac/ad5064.c | 2 +-
drivers/iio/dac/ad5360.c | 2 +-
drivers/iio/dac/ad5380.c | 2 +-
drivers/iio/dac/ad5446.c | 2 +-
drivers/iio/dac/ad5504.c | 2 +-
drivers/iio/dac/ad5624r_spi.c | 2 +-
drivers/iio/dac/ad5686.c | 2 +-
drivers/iio/dac/ad5755.c | 2 +-
drivers/iio/dac/ad5791.c | 2 +-
drivers/iio/dac/ad7303.c | 2 +-
drivers/iio/dac/ltc2632.c | 8 +-
drivers/iio/dac/ltc2688.c | 19 +-
drivers/iio/dac/max5821.c | 2 +-
drivers/iio/dac/mcp4725.c | 4 +-
drivers/iio/dac/stm32-dac.c | 2 +-
drivers/iio/dac/ti-dac082s085.c | 2 +-
drivers/iio/dac/ti-dac5571.c | 2 +-
drivers/iio/dac/ti-dac7311.c | 2 +-
drivers/iio/dummy/iio_simple_dummy.c | 20 +-
drivers/iio/dummy/iio_simple_dummy_buffer.c | 48 +-
drivers/iio/frequency/ad9523.c | 2 +-
drivers/iio/gyro/fxas21002c_core.c | 8 +-
drivers/iio/gyro/mpu3050-core.c | 14 +-
drivers/iio/gyro/mpu3050-i2c.c | 4 +-
drivers/iio/gyro/mpu3050.h | 2 +-
drivers/iio/gyro/ssp_gyro_sensor.c | 1 -
drivers/iio/gyro/st_gyro_core.c | 15 +-
drivers/iio/health/max30100.c | 1 -
drivers/iio/health/max30102.c | 1 -
drivers/iio/imu/adis16480.c | 91 +-
drivers/iio/imu/bmi160/bmi160_core.c | 27 +-
drivers/iio/imu/bmi160/bmi160_i2c.c | 13 +-
drivers/iio/imu/bmi160/bmi160_spi.c | 18 +-
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c | 1 -
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c | 1 -
drivers/iio/imu/inv_mpu6050/Kconfig | 4 +-
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 9 +
drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 6 +
drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 2 +
drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | 5 +
drivers/iio/imu/st_lsm6dsx/Kconfig | 6 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 2 +
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c | 4 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 6 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 5 +
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 5 +
drivers/iio/industrialio-buffer.c | 42 +-
drivers/iio/industrialio-core.c | 46 +-
drivers/iio/industrialio-event.c | 2 +-
drivers/iio/industrialio-trigger.c | 2 +-
drivers/iio/light/Kconfig | 1 -
drivers/iio/light/apds9960.c | 1 -
drivers/iio/light/stk3310.c | 25 +
drivers/iio/light/tsl2772.c | 25 +-
drivers/iio/magnetometer/Kconfig | 1 -
drivers/iio/magnetometer/rm3100-core.c | 15 +-
drivers/iio/magnetometer/st_magn_core.c | 15 +-
drivers/iio/multiplexer/Kconfig | 1 -
drivers/iio/multiplexer/iio-mux.c | 49 +-
drivers/iio/pressure/st_pressure_core.c | 8 +-
drivers/iio/proximity/mb1232.c | 8 +-
drivers/iio/proximity/ping.c | 5 +-
drivers/iio/proximity/vl53l0x-i2c.c | 7 +-
drivers/iio/temperature/ltc2983.c | 236 +-
drivers/iio/temperature/max31856.c | 6 +-
drivers/iio/temperature/max31865.c | 4 +-
drivers/iio/trigger/iio-trig-sysfs.c | 11 +-
drivers/infiniband/core/device.c | 26 +-
drivers/infiniband/core/nldev.c | 2 +-
drivers/infiniband/core/sa_query.c | 16 +-
drivers/infiniband/core/umem_odp.c | 2 +-
drivers/infiniband/core/uverbs_cmd.c | 2 +-
.../infiniband/core/uverbs_std_types_flow_action.c | 383 +-
drivers/infiniband/core/verbs.c | 8 +-
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 2 +-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 1 -
drivers/infiniband/hw/cxgb4/provider.c | 8 +-
drivers/infiniband/hw/hfi1/common.h | 55 -
drivers/infiniband/hw/hfi1/driver.c | 6 -
drivers/infiniband/hw/hfi1/efivar.c | 2 +-
drivers/infiniband/hw/hfi1/file_ops.c | 4 +-
drivers/infiniband/hw/hfi1/init.c | 2 +-
drivers/infiniband/hw/hfi1/sdma.c | 12 +-
drivers/infiniband/hw/hfi1/verbs.c | 4 +-
drivers/infiniband/hw/hns/hns_roce_device.h | 32 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 451 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 326 +-
drivers/infiniband/hw/hns/hns_roce_main.c | 2 +-
drivers/infiniband/hw/hns/hns_roce_mr.c | 3 +-
drivers/infiniband/hw/hns/hns_roce_qp.c | 20 -
drivers/infiniband/hw/hns/hns_roce_restrack.c | 49 +-
drivers/infiniband/hw/irdma/cm.c | 33 +-
drivers/infiniband/hw/irdma/hw.c | 35 +-
drivers/infiniband/hw/irdma/main.h | 1 -
drivers/infiniband/hw/irdma/puda.c | 7 +-
drivers/infiniband/hw/irdma/utils.c | 168 +-
drivers/infiniband/hw/irdma/verbs.c | 64 +-
drivers/infiniband/hw/irdma/verbs.h | 13 +-
drivers/infiniband/hw/mlx4/cm.c | 29 +-
drivers/infiniband/hw/mlx4/main.c | 18 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 3 +
drivers/infiniband/hw/mlx5/Makefile | 1 +
drivers/infiniband/hw/mlx5/fs.c | 226 +-
drivers/infiniband/hw/mlx5/gsi.c | 2 +-
drivers/infiniband/hw/mlx5/main.c | 156 +-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 90 +-
drivers/infiniband/hw/mlx5/mr.c | 421 +-
drivers/infiniband/hw/mlx5/odp.c | 64 +-
drivers/infiniband/hw/mlx5/qp.c | 3 +-
drivers/infiniband/hw/mlx5/umr.c | 700 +
drivers/infiniband/hw/mlx5/umr.h | 97 +
drivers/infiniband/hw/mlx5/wr.c | 377 +-
drivers/infiniband/hw/mlx5/wr.h | 60 +
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 +-
drivers/infiniband/hw/qedr/main.c | 1 -
drivers/infiniband/hw/qedr/verbs.c | 3 +-
drivers/infiniband/hw/qib/qib.h | 2 +-
drivers/infiniband/hw/usnic/usnic_ib_main.c | 11 +-
drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 6 +-
drivers/infiniband/hw/usnic/usnic_uiom.c | 15 +-
drivers/infiniband/hw/usnic/usnic_uiom.h | 3 +-
drivers/infiniband/sw/rdmavt/qp.c | 6 +-
drivers/infiniband/sw/rxe/rxe.c | 1 +
drivers/infiniband/sw/rxe/rxe_comp.c | 3 +-
drivers/infiniband/sw/rxe/rxe_loc.h | 17 +-
drivers/infiniband/sw/rxe/rxe_mcast.c | 87 +-
drivers/infiniband/sw/rxe/rxe_mr.c | 10 +-
drivers/infiniband/sw/rxe/rxe_mw.c | 65 +-
drivers/infiniband/sw/rxe/rxe_opcode.c | 2 -
drivers/infiniband/sw/rxe/rxe_param.h | 2 -
drivers/infiniband/sw/rxe/rxe_pool.c | 11 +-
drivers/infiniband/sw/rxe/rxe_pool.h | 5 -
drivers/infiniband/sw/rxe/rxe_qp.c | 36 +-
drivers/infiniband/sw/rxe/rxe_recv.c | 1 -
drivers/infiniband/sw/rxe/rxe_req.c | 28 +-
drivers/infiniband/sw/rxe/rxe_resp.c | 43 +-
drivers/infiniband/sw/rxe/rxe_srq.c | 129 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 40 +-
drivers/infiniband/sw/rxe/rxe_verbs.h | 3 +-
drivers/infiniband/sw/siw/siw_cm.c | 7 +-
drivers/infiniband/sw/siw/siw_main.c | 5 +-
drivers/infiniband/sw/siw/siw_verbs.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 1 +
drivers/infiniband/ulp/ipoib/ipoib_main.c | 5 +-
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 6 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 2 +-
drivers/infiniband/ulp/iser/iscsi_iser.h | 2 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 8 +-
drivers/infiniband/ulp/isert/ib_isert.c | 131 +-
drivers/infiniband/ulp/isert/ib_isert.h | 4 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 2 +-
drivers/infiniband/ulp/srp/ib_srp.c | 8 +-
drivers/input/input.c | 4 +-
drivers/input/joystick/Kconfig | 12 +
drivers/input/joystick/Makefile | 1 +
drivers/input/joystick/sensehat-joystick.c | 137 +
drivers/input/keyboard/bcm-keypad.c | 3 +-
drivers/input/keyboard/clps711x-keypad.c | 3 +-
drivers/input/keyboard/cros_ec_keyb.c | 29 +-
drivers/input/keyboard/ep93xx_keypad.c | 7 +-
drivers/input/keyboard/gpio_keys.c | 2 +-
drivers/input/keyboard/mt6779-keypad.c | 10 +-
drivers/input/keyboard/omap-keypad.c | 1 +
drivers/input/keyboard/sun4i-lradc-keys.c | 63 +-
drivers/input/misc/Kconfig | 10 +
drivers/input/misc/Makefile | 1 +
drivers/input/misc/ati_remote2.c | 2 +-
drivers/input/misc/cm109.c | 2 +-
drivers/input/misc/iqs7222.c | 2446 +
drivers/input/misc/pm8941-pwrkey.c | 127 +-
drivers/input/misc/powermate.c | 2 +-
drivers/input/misc/soc_button_array.c | 4 +-
drivers/input/misc/sparcspkr.c | 1 +
drivers/input/misc/xen-kbdfront.c | 4 +-
drivers/input/misc/yealink.c | 2 +-
drivers/input/mouse/bcm5974.c | 7 +-
drivers/input/mouse/cypress_ps2.c | 2 +-
drivers/input/mouse/psmouse-smbus.c | 11 +-
drivers/input/mouse/pxa930_trkball.c | 1 -
drivers/input/mouse/vmmouse.c | 14 +
drivers/input/rmi4/rmi_f54.c | 1 -
drivers/input/tablet/acecad.c | 2 +-
drivers/input/tablet/aiptek.c | 3 +-
drivers/input/tablet/pegasus_notetaker.c | 2 +-
drivers/input/touchscreen/Kconfig | 2 +
drivers/input/touchscreen/ili210x.c | 20 +-
drivers/input/touchscreen/mainstone-wm97xx.c | 130 +-
drivers/input/touchscreen/stmfts.c | 16 +-
drivers/input/touchscreen/wm97xx-core.c | 42 +-
drivers/input/touchscreen/zylonite-wm97xx.c | 43 +-
drivers/interconnect/core.c | 8 +-
drivers/interconnect/qcom/Kconfig | 18 +
drivers/interconnect/qcom/Makefile | 4 +
drivers/interconnect/qcom/icc-rpm.c | 16 +-
drivers/interconnect/qcom/icc-rpm.h | 6 +-
drivers/interconnect/qcom/icc-rpmh.c | 2 +-
drivers/interconnect/qcom/icc-rpmh.h | 6 +-
drivers/interconnect/qcom/msm8916.c | 12 +-
drivers/interconnect/qcom/msm8939.c | 16 +-
drivers/interconnect/qcom/msm8974.c | 28 +-
drivers/interconnect/qcom/msm8996.c | 16 +-
drivers/interconnect/qcom/osm-l3.c | 16 +-
drivers/interconnect/qcom/qcm2290.c | 24 +-
drivers/interconnect/qcom/qcs404.c | 12 +-
drivers/interconnect/qcom/sc7180.c | 66 +-
drivers/interconnect/qcom/sc7280.c | 72 +-
drivers/interconnect/qcom/sc8180x.c | 1895 +-
drivers/interconnect/qcom/sc8180x.h | 7 +
drivers/interconnect/qcom/sc8280xp.c | 2438 +
drivers/interconnect/qcom/sc8280xp.h | 209 +
drivers/interconnect/qcom/sdm660.c | 24 +-
drivers/interconnect/qcom/sdm845.c | 32 +-
drivers/interconnect/qcom/sdx55.c | 12 +-
drivers/interconnect/qcom/sdx65.c | 231 +
drivers/interconnect/qcom/sdx65.h | 65 +
drivers/interconnect/qcom/sm8150.c | 66 +-
drivers/interconnect/qcom/sm8250.c | 66 +-
drivers/interconnect/qcom/sm8350.c | 60 +-
drivers/interconnect/qcom/sm8450.c | 68 +-
drivers/iommu/amd/amd_iommu_types.h | 4 +
drivers/iommu/amd/init.c | 14 +-
drivers/iommu/amd/iommu.c | 16 +-
drivers/iommu/amd/iommu_v2.c | 12 +-
drivers/iommu/apple-dart.c | 10 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 22 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 2 +
drivers/iommu/arm/arm-smmu/arm-smmu-impl.c | 3 +-
drivers/iommu/arm/arm-smmu/arm-smmu-nvidia.c | 30 +
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 1 +
drivers/iommu/arm/arm-smmu/arm-smmu.c | 8 +-
drivers/iommu/dma-iommu.c | 25 +-
drivers/iommu/fsl_pamu.c | 3 +
drivers/iommu/fsl_pamu_domain.c | 1 +
drivers/iommu/intel/dmar.c | 6 +-
drivers/iommu/intel/iommu.c | 243 +-
drivers/iommu/intel/pasid.c | 45 +-
drivers/iommu/intel/pasid.h | 2 +
drivers/iommu/intel/svm.c | 4 +
drivers/iommu/iommu.c | 363 +-
drivers/iommu/msm_iommu.c | 22 +-
drivers/iommu/mtk_iommu.c | 980 +-
drivers/iommu/mtk_iommu.h | 101 -
drivers/iommu/mtk_iommu_v1.c | 242 +-
drivers/iommu/s390-iommu.c | 15 +-
drivers/irqchip/Kconfig | 29 +-
drivers/irqchip/Makefile | 8 +-
drivers/irqchip/irq-armada-370-xp.c | 56 +-
drivers/irqchip/irq-aspeed-i2c-ic.c | 4 +-
drivers/irqchip/irq-aspeed-scu-ic.c | 4 +-
drivers/irqchip/irq-bcm6345-l1.c | 2 +-
drivers/irqchip/irq-csky-apb-intc.c | 4 +-
drivers/irqchip/irq-gic-v3-its.c | 2 +-
drivers/irqchip/irq-gic-v3.c | 256 +-
drivers/irqchip/irq-gic.c | 6 +-
drivers/irqchip/irq-imx-irqsteer.c | 16 +-
drivers/irqchip/irq-ixp4xx.c | 126 +-
drivers/irqchip/irq-loongson-liointc.c | 6 +-
drivers/irqchip/irq-renesas-h8300h.c | 94 -
drivers/irqchip/irq-renesas-h8s.c | 102 -
drivers/irqchip/irq-sni-exiu.c | 25 +-
drivers/irqchip/irq-sun6i-r.c | 6 +-
drivers/irqchip/irq-xtensa-mx.c | 18 +-
drivers/isdn/mISDN/socket.c | 2 +-
drivers/leds/Kconfig | 3 +
drivers/leds/Makefile | 3 +
drivers/leds/flash/leds-ktd2692.c | 15 +-
drivers/leds/leds-is31fl32xx.c | 8 +-
drivers/leds/leds-locomo.c | 1 -
drivers/leds/leds-lp50xx.c | 4 +-
drivers/leds/leds-pca9532.c | 11 +-
drivers/leds/leds-regulator.c | 47 +-
drivers/leds/rgb/Kconfig | 29 +
drivers/leds/rgb/Makefile | 4 +
drivers/leds/rgb/leds-pwm-multicolor.c | 186 +
drivers/leds/rgb/leds-qcom-lpg.c | 1451 +
drivers/macintosh/Kconfig | 6 +
drivers/macintosh/Makefile | 3 +-
drivers/macintosh/adb.c | 2 +-
drivers/macintosh/adbhid.c | 9 +-
drivers/macintosh/ams/ams-core.c | 2 +-
drivers/macintosh/ams/ams-i2c.c | 6 +-
drivers/macintosh/ans-lcd.c | 2 +-
drivers/macintosh/macio-adb.c | 5 +-
drivers/macintosh/macio_asic.c | 9 +-
drivers/macintosh/macio_sysfs.c | 2 +
drivers/macintosh/mediabay.c | 2 +-
drivers/macintosh/rack-meter.c | 1 -
drivers/macintosh/smu.c | 7 +-
drivers/macintosh/therm_adt746x.c | 1 -
drivers/macintosh/therm_windtunnel.c | 1 -
drivers/macintosh/via-cuda.c | 10 +-
drivers/macintosh/via-pmu-backlight.c | 1 -
drivers/macintosh/via-pmu-led.c | 2 +-
drivers/macintosh/via-pmu.c | 9 +-
drivers/macintosh/windfarm_ad7417_sensor.c | 2 +-
drivers/macintosh/windfarm_core.c | 2 -
drivers/macintosh/windfarm_cpufreq_clamp.c | 2 -
drivers/macintosh/windfarm_fcu_controls.c | 2 +-
drivers/macintosh/windfarm_lm75_sensor.c | 1 -
drivers/macintosh/windfarm_lm87_sensor.c | 2 +-
drivers/macintosh/windfarm_max6690_sensor.c | 2 +-
drivers/macintosh/windfarm_mpu.h | 2 +
drivers/macintosh/windfarm_pm112.c | 4 +-
drivers/macintosh/windfarm_pm121.c | 3 +-
drivers/macintosh/windfarm_pm72.c | 2 +-
drivers/macintosh/windfarm_pm81.c | 3 +-
drivers/macintosh/windfarm_pm91.c | 3 +-
drivers/macintosh/windfarm_rm31.c | 2 +-
drivers/macintosh/windfarm_smu_controls.c | 3 +-
drivers/macintosh/windfarm_smu_sat.c | 2 +-
drivers/macintosh/windfarm_smu_sensors.c | 3 +-
drivers/mailbox/arm_mhu_db.c | 2 +-
drivers/mailbox/arm_mhuv2.c | 3 +-
drivers/mailbox/imx-mailbox.c | 7 +-
drivers/mailbox/mailbox.c | 19 +-
drivers/mailbox/mtk-adsp-mailbox.c | 8 +
drivers/mailbox/omap-mailbox.c | 6 +-
drivers/mailbox/pcc.c | 2 +-
drivers/mailbox/qcom-ipcc.c | 26 +-
drivers/mailbox/tegra-hsp.c | 151 +-
drivers/md/bcache/alloc.c | 2 +-
drivers/md/bcache/bcache.h | 7 +
drivers/md/bcache/btree.c | 59 +-
drivers/md/bcache/btree.h | 2 +-
drivers/md/bcache/debug.c | 10 +-
drivers/md/bcache/journal.c | 31 +-
drivers/md/bcache/journal.h | 2 +
drivers/md/bcache/request.c | 10 +-
drivers/md/bcache/super.c | 4 +-
drivers/md/bcache/sysfs.c | 2 +-
drivers/md/bcache/writeback.c | 133 +-
drivers/md/bcache/writeback.h | 2 +-
drivers/md/dm-bufio.c | 9 +-
drivers/md/dm-cache-metadata.c | 3 +-
drivers/md/dm-cache-target.c | 9 +-
drivers/md/dm-clone-target.c | 9 +-
drivers/md/dm-core.h | 49 +-
drivers/md/dm-crypt.c | 14 +-
drivers/md/dm-delay.c | 3 +-
drivers/md/dm-flakey.c | 4 +-
drivers/md/dm-integrity.c | 2 -
drivers/md/dm-io.c | 2 +-
drivers/md/dm-linear.c | 26 +-
drivers/md/dm-log-writes.c | 18 +-
drivers/md/dm-mpath.c | 8 +-
drivers/md/dm-path-selector.h | 15 +
drivers/md/dm-ps-historical-service-time.c | 1 +
drivers/md/dm-raid.c | 11 +-
drivers/md/dm-rq.c | 2 +-
drivers/md/dm-stats.c | 11 +
drivers/md/dm-stripe.c | 15 +-
drivers/md/dm-table.c | 67 +-
drivers/md/dm-target.c | 4 +-
drivers/md/dm-thin.c | 15 +-
drivers/md/dm-verity-target.c | 1 +
drivers/md/dm-writecache.c | 7 +-
drivers/md/dm-zone.c | 10 -
drivers/md/dm-zoned-target.c | 2 +-
drivers/md/dm.c | 644 +-
drivers/md/dm.h | 6 +-
drivers/md/md-bitmap.c | 45 +-
drivers/md/md-cluster.c | 2 +-
drivers/md/md-linear.c | 16 +-
drivers/md/md-multipath.c | 15 +-
drivers/md/md.c | 252 +-
drivers/md/md.h | 64 +-
drivers/md/raid0.c | 67 +-
drivers/md/raid1.c | 97 +-
drivers/md/raid10.c | 135 +-
drivers/md/raid5-cache.c | 13 +-
drivers/md/raid5-ppl.c | 40 +-
drivers/md/raid5.c | 272 +-
drivers/md/raid5.h | 23 +-
drivers/media/cec/core/cec-adap.c | 294 +-
drivers/media/cec/core/cec-api.c | 24 +-
drivers/media/cec/core/cec-core.c | 18 +-
drivers/media/cec/core/cec-pin-priv.h | 11 +
drivers/media/cec/core/cec-pin.c | 72 +-
drivers/media/cec/core/cec-priv.h | 10 +
drivers/media/cec/platform/seco/seco-cec.c | 22 +-
drivers/media/common/saa7146/saa7146_video.c | 1 -
drivers/media/common/videobuf2/videobuf2-dma-sg.c | 3 +-
drivers/media/common/videobuf2/videobuf2-v4l2.c | 26 +-
drivers/media/i2c/Kconfig | 1 +
drivers/media/i2c/adv7180.c | 46 +
drivers/media/i2c/ccs/ccs-core.c | 43 +-
drivers/media/i2c/dw9714.c | 2 +-
drivers/media/i2c/dw9768.c | 6 -
drivers/media/i2c/dw9807-vcm.c | 2 +
drivers/media/i2c/imx412.c | 39 +-
drivers/media/i2c/max9286.c | 19 +-
drivers/media/i2c/ov5645.c | 8 +-
drivers/media/i2c/ov5648.c | 4 +-
drivers/media/i2c/ov5695.c | 2 +-
drivers/media/i2c/ov7251.c | 750 +-
drivers/media/i2c/ov7640.c | 33 +-
drivers/media/i2c/ov7670.c | 1 -
drivers/media/i2c/ov8856.c | 23 +-
drivers/media/i2c/rdacm20.c | 10 +-
drivers/media/i2c/rdacm21.c | 2 +-
drivers/media/i2c/s5k6a3.c | 4 +-
drivers/media/i2c/video-i2c.c | 61 +-
drivers/media/mc/mc-device.c | 21 +-
drivers/media/mc/mc-entity.c | 80 +-
drivers/media/pci/bt8xx/bttv-driver.c | 2 -
drivers/media/pci/cx18/cx18-ioctl.c | 2 -
drivers/media/pci/cx23885/cx23885-core.c | 6 +-
drivers/media/pci/cx25821/cx25821-alsa.c | 4 +-
drivers/media/pci/cx25821/cx25821-core.c | 2 +-
drivers/media/pci/cx88/cx88-blackbird.c | 1 -
drivers/media/pci/cx88/cx88-video.c | 1 -
drivers/media/pci/dt3155/dt3155.c | 3 -
drivers/media/pci/intel/ipu3/cio2-bridge.c | 2 +
drivers/media/pci/intel/ipu3/ipu3-cio2-main.c | 11 +-
drivers/media/pci/ivtv/ivtv-ioctl.c | 1 -
drivers/media/pci/meye/meye.c | 1 -
drivers/media/pci/saa7134/saa7134-video.c | 4 +-
drivers/media/pci/saa7164/saa7164-encoder.c | 1 -
drivers/media/pci/saa7164/saa7164-vbi.c | 1 -
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c | 3 -
drivers/media/pci/solo6x10/solo6x10-v4l2.c | 4 -
drivers/media/pci/sta2x11/sta2x11_vip.c | 4 -
drivers/media/pci/tw5864/tw5864-video.c | 1 -
drivers/media/pci/tw68/tw68-video.c | 3 -
drivers/media/pci/tw686x/tw686x-video.c | 2 -
drivers/media/platform/allegro-dvt/allegro-core.c | 5 -
drivers/media/platform/amphion/vdec.c | 84 +-
drivers/media/platform/amphion/venc.c | 59 +-
drivers/media/platform/amphion/vpu_dbg.c | 12 -
drivers/media/platform/amphion/vpu_defs.h | 2 +-
drivers/media/platform/amphion/vpu_malone.c | 4 +-
drivers/media/platform/amphion/vpu_msgs.c | 8 +
drivers/media/platform/amphion/vpu_v4l2.c | 68 +-
drivers/media/platform/amphion/vpu_v4l2.h | 3 +
drivers/media/platform/aspeed/aspeed-video.c | 4 +-
drivers/media/platform/atmel/atmel-isc-base.c | 34 +-
drivers/media/platform/atmel/atmel-isc.h | 8 +-
drivers/media/platform/atmel/atmel-sama5d2-isc.c | 58 +-
drivers/media/platform/atmel/atmel-sama7g5-isc.c | 61 +-
drivers/media/platform/atmel/microchip-csi2dc.c | 5 +
drivers/media/platform/cadence/cdns-csi2tx.c | 5 +-
drivers/media/platform/chips-media/coda-bit.c | 4 +-
drivers/media/platform/chips-media/coda-common.c | 155 +-
drivers/media/platform/chips-media/coda-jpeg.c | 24 +-
drivers/media/platform/chips-media/coda.h | 7 +
drivers/media/platform/marvell/cafe-driver.c | 1 -
.../media/platform/mediatek/jpeg/mtk_jpeg_core.c | 2 -
drivers/media/platform/mediatek/vcodec/Kconfig | 1 +
drivers/media/platform/mediatek/vcodec/Makefile | 4 +
.../platform/mediatek/vcodec/mtk_vcodec_dec.c | 75 +-
.../platform/mediatek/vcodec/mtk_vcodec_dec.h | 1 +
.../platform/mediatek/vcodec/mtk_vcodec_dec_drv.c | 15 +-
.../platform/mediatek/vcodec/mtk_vcodec_dec_pm.c | 166 +-
.../platform/mediatek/vcodec/mtk_vcodec_dec_pm.h | 6 +-
.../mediatek/vcodec/mtk_vcodec_dec_stateful.c | 19 +-
.../mediatek/vcodec/mtk_vcodec_dec_stateless.c | 276 +-
.../platform/mediatek/vcodec/mtk_vcodec_drv.h | 41 +-
.../platform/mediatek/vcodec/mtk_vcodec_enc_drv.c | 5 -
.../media/platform/mediatek/vcodec/mtk_vcodec_fw.c | 6 +
.../media/platform/mediatek/vcodec/mtk_vcodec_fw.h | 1 +
.../mediatek/vcodec/vdec/vdec_h264_req_common.c | 323 +
.../mediatek/vcodec/vdec/vdec_h264_req_common.h | 277 +
.../mediatek/vcodec/vdec/vdec_h264_req_if.c | 447 +-
.../mediatek/vcodec/vdec/vdec_h264_req_multi_if.c | 808 +
.../mediatek/vcodec/vdec/vdec_vp8_req_if.c | 437 +
.../mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c | 2030 +
.../media/platform/mediatek/vcodec/vdec_drv_if.c | 37 +-
.../media/platform/mediatek/vcodec/vdec_drv_if.h | 3 +
.../media/platform/mediatek/vcodec/vdec_ipi_msg.h | 36 +
.../platform/mediatek/vcodec/vdec_msg_queue.c | 2 +
.../platform/mediatek/vcodec/vdec_msg_queue.h | 2 +
.../media/platform/mediatek/vcodec/vdec_vpu_if.c | 53 +-
.../media/platform/mediatek/vcodec/vdec_vpu_if.h | 15 +
.../media/platform/mediatek/vcodec/venc_vpu_if.c | 2 +-
drivers/media/platform/nvidia/tegra-vde/h264.c | 19 +-
drivers/media/platform/nxp/Kconfig | 2 -
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h | 4 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c | 315 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h | 6 +-
drivers/media/platform/nxp/imx-mipi-csis.c | 669 +-
drivers/media/platform/qcom/camss/camss-video.c | 4 -
drivers/media/platform/qcom/venus/core.h | 1 +
drivers/media/platform/qcom/venus/helpers.c | 85 +-
drivers/media/platform/qcom/venus/helpers.h | 1 +
drivers/media/platform/qcom/venus/hfi.c | 3 +
.../media/platform/qcom/venus/hfi_platform_v4.c | 4 +-
.../media/platform/qcom/venus/hfi_platform_v6.c | 4 +-
drivers/media/platform/qcom/venus/hfi_venus.c | 4 +-
drivers/media/platform/qcom/venus/vdec.c | 37 +-
drivers/media/platform/qcom/venus/venc.c | 6 +-
drivers/media/platform/qcom/venus/venc_ctrls.c | 8 +
.../media/platform/renesas/rcar-vin/rcar-core.c | 3 -
drivers/media/platform/renesas/rcar-vin/rcar-dma.c | 25 +
.../media/platform/renesas/rcar-vin/rcar-v4l2.c | 13 +-
drivers/media/platform/renesas/rcar_jpu.c | 2 -
drivers/media/platform/renesas/renesas-ceu.c | 8 +-
drivers/media/platform/renesas/vsp1/vsp1_drv.c | 2 -
drivers/media/platform/renesas/vsp1/vsp1_entity.c | 10 +-
drivers/media/platform/renesas/vsp1/vsp1_histo.c | 2 -
drivers/media/platform/renesas/vsp1/vsp1_rpf.c | 6 +-
drivers/media/platform/renesas/vsp1/vsp1_video.c | 16 +-
drivers/media/platform/rockchip/rga/rga.c | 6 +-
.../media/platform/rockchip/rkisp1/rkisp1-isp.c | 34 +-
.../media/platform/rockchip/rkisp1/rkisp1-regs.h | 11 -
.../media/platform/samsung/exynos-gsc/gsc-m2m.c | 5 -
drivers/media/platform/samsung/exynos4-is/common.c | 2 -
.../media/platform/samsung/exynos4-is/fimc-is.c | 6 +-
.../platform/samsung/exynos4-is/fimc-isp-video.h | 2 +-
.../media/platform/samsung/exynos4-is/fimc-lite.c | 4 -
.../media/platform/samsung/s5p-jpeg/jpeg-core.c | 2 -
.../media/platform/samsung/s5p-jpeg/jpeg-hw-s5p.c | 1 -
.../media/platform/samsung/s5p-mfc/s5p_mfc_dec.c | 2 -
.../media/platform/samsung/s5p-mfc/s5p_mfc_enc.c | 2 -
drivers/media/platform/st/sti/bdisp/bdisp-v4l2.c | 3 +-
.../platform/st/sti/c8sectpfe/c8sectpfe-common.h | 1 -
drivers/media/platform/st/sti/delta/delta-v4l2.c | 6 +-
drivers/media/platform/st/stm32/stm32-dcmi.c | 2 -
drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c | 2 -
.../media/platform/sunxi/sun4i-csi/sun4i_v4l2.c | 4 -
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c | 2 -
drivers/media/platform/ti/cal/cal-camerarx.c | 27 +
drivers/media/platform/ti/cal/cal-video.c | 4 -
drivers/media/platform/ti/cal/cal.c | 51 +-
drivers/media/platform/ti/cal/cal.h | 2 +
drivers/media/platform/ti/davinci/dm355_ccdc.c | 3 +-
drivers/media/platform/ti/davinci/dm644x_ccdc.c | 3 +-
drivers/media/platform/ti/davinci/isif.c | 3 +-
drivers/media/platform/ti/davinci/vpbe_display.c | 2 -
drivers/media/platform/ti/davinci/vpif_capture.c | 2 -
drivers/media/platform/ti/davinci/vpif_display.c | 5 +-
drivers/media/platform/ti/omap3isp/ispcsiphy.c | 3 +-
drivers/media/platform/video-mux.c | 4 +-
drivers/media/radio/Kconfig | 4 +-
drivers/media/radio/radio-maxiradio.c | 2 -
drivers/media/rc/ati_remote.c | 4 +-
drivers/media/rc/bpf-lirc.c | 8 +-
drivers/media/rc/gpio-ir-tx.c | 7 +-
drivers/media/rc/imon.c | 109 +-
drivers/media/rc/mceusb.c | 2 +-
drivers/media/rc/meson-ir-tx.c | 4 +-
drivers/media/rc/streamzap.c | 2 +-
drivers/media/rc/xbox_remote.c | 2 +-
drivers/media/usb/dvb-usb/a800.c | 18 +-
drivers/media/usb/dvb-usb/af9005.c | 19 +-
drivers/media/usb/dvb-usb/az6027.c | 45 +-
drivers/media/usb/dvb-usb/cinergyT2-core.c | 10 +-
drivers/media/usb/dvb-usb/cxusb.c | 88 +-
drivers/media/usb/dvb-usb/dib0700_devices.c | 428 +-
drivers/media/usb/dvb-usb/dibusb-mb.c | 165 +-
drivers/media/usb/dvb-usb/dibusb-mc.c | 88 +-
drivers/media/usb/dvb-usb/digitv.c | 13 +-
drivers/media/usb/dvb-usb/dtt200u.c | 56 +-
drivers/media/usb/dvb-usb/dtv5100.c | 11 +-
drivers/media/usb/dvb-usb/dw2102.c | 84 +-
drivers/media/usb/dvb-usb/gp8psk.c | 36 +-
drivers/media/usb/dvb-usb/m920x.c | 51 +-
drivers/media/usb/dvb-usb/nova-t-usb2.c | 18 +-
drivers/media/usb/dvb-usb/opera1.c | 15 +-
drivers/media/usb/dvb-usb/pctv452e.c | 22 +-
drivers/media/usb/dvb-usb/technisat-usb2.c | 11 +-
drivers/media/usb/dvb-usb/ttusb2.c | 36 +-
drivers/media/usb/dvb-usb/umt-010.c | 18 +-
drivers/media/usb/dvb-usb/vp702x.c | 23 +-
drivers/media/usb/dvb-usb/vp7045.c | 28 +-
drivers/media/usb/gspca/spca561.c | 2 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 7 +-
drivers/media/usb/stkwebcam/stk-webcam.c | 11 +-
drivers/media/usb/stkwebcam/stk-webcam.h | 2 +
drivers/media/usb/tm6000/tm6000-dvb.c | 2 +-
drivers/media/usb/tm6000/tm6000-input.c | 2 +-
drivers/media/usb/tm6000/tm6000-video.c | 2 +-
drivers/media/usb/uvc/uvc_ctrl.c | 10 +
drivers/media/usb/uvc/uvc_driver.c | 11 +-
drivers/media/usb/uvc/uvc_v4l2.c | 28 +-
drivers/media/usb/uvc/uvc_video.c | 16 +-
drivers/media/usb/uvc/uvcvideo.h | 4 +
drivers/media/v4l2-core/tuner-core.c | 4 +-
drivers/media/v4l2-core/v4l2-async.c | 33 +-
drivers/media/v4l2-core/v4l2-ctrls-core.c | 5 +-
drivers/media/v4l2-core/v4l2-ctrls-defs.c | 9 +
drivers/media/v4l2-core/v4l2-fwnode.c | 4 +
drivers/media/v4l2-core/v4l2-h264.c | 275 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 7 +
drivers/media/v4l2-core/v4l2-mem2mem.c | 9 +-
drivers/media/v4l2-core/v4l2-subdev.c | 219 +-
drivers/memory/Kconfig | 2 +-
drivers/memory/brcmstb_dpfe.c | 10 +-
drivers/memory/da8xx-ddrctl.c | 3 +-
drivers/memory/emif.c | 17 +-
drivers/memory/fsl-corenet-cf.c | 9 +-
drivers/memory/omap-gpmc.c | 43 +-
drivers/memory/renesas-rpc-if.c | 31 +-
drivers/memory/samsung/exynos5422-dmc.c | 5 +-
drivers/memory/tegra/Makefile | 2 +
drivers/memory/tegra/mc.c | 141 +-
drivers/memory/tegra/mc.h | 50 +-
drivers/memory/tegra/tegra186-emc.c | 3 +
drivers/memory/tegra/tegra186.c | 39 +
drivers/memory/tegra/tegra194.c | 9 +
drivers/memory/tegra/tegra234.c | 110 +
drivers/memory/ti-aemif.c | 4 +-
drivers/memory/ti-emif-pm.c | 6 +-
drivers/message/fusion/mptctl.c | 3 -
drivers/mfd/cros_ec_dev.c | 19 +
drivers/mfd/davinci_voicecodec.c | 6 +-
drivers/mfd/hi655x-pmic.c | 27 +-
drivers/mfd/intel-lpss-pci.c | 2 +
drivers/mfd/ipaq-micro.c | 2 +-
drivers/mfd/mt6397-core.c | 13 +
drivers/mfd/rt4831.c | 7 +-
drivers/mfd/sprd-sc27xx-spi.c | 3 +-
drivers/mfd/tc6393xb.c | 130 +-
drivers/mfd/twl-core.c | 8 +-
drivers/mfd/twl-core.h | 4 +-
drivers/mfd/twl4030-irq.c | 7 +-
drivers/mfd/twl6030-irq.c | 3 +-
drivers/misc/altera-stapl/altera.c | 56 +-
drivers/misc/bcm-vk/bcm_vk_msg.c | 29 +-
drivers/misc/cardreader/alcor_pci.c | 6 +-
drivers/misc/cardreader/rts5261.c | 115 +-
drivers/misc/cardreader/rtsx_usb.c | 1 +
drivers/misc/cxl/api.c | 1 +
drivers/misc/cxl/cxl.h | 2 +
drivers/misc/cxl/cxllib.c | 1 +
drivers/misc/cxl/flash.c | 1 +
drivers/misc/cxl/guest.c | 2 +
drivers/misc/cxl/irq.c | 1 +
drivers/misc/cxl/main.c | 1 +
drivers/misc/cxl/native.c | 1 +
drivers/misc/fastrpc.c | 18 +-
drivers/misc/habanalabs/common/Makefile | 2 +-
drivers/misc/habanalabs/common/command_buffer.c | 413 +-
.../misc/habanalabs/common/command_submission.c | 89 +-
drivers/misc/habanalabs/common/context.c | 4 +-
drivers/misc/habanalabs/common/debugfs.c | 304 +-
drivers/misc/habanalabs/common/device.c | 280 +-
drivers/misc/habanalabs/common/firmware_if.c | 86 +-
drivers/misc/habanalabs/common/habanalabs.h | 415 +-
drivers/misc/habanalabs/common/habanalabs_drv.c | 44 +-
drivers/misc/habanalabs/common/habanalabs_ioctl.c | 108 +-
drivers/misc/habanalabs/common/irq.c | 14 +-
drivers/misc/habanalabs/common/memory.c | 289 +-
drivers/misc/habanalabs/common/memory_mgr.c | 349 +
drivers/misc/habanalabs/common/mmu/mmu.c | 296 +-
drivers/misc/habanalabs/common/mmu/mmu_v1.c | 297 +-
drivers/misc/habanalabs/common/pci/pci.c | 10 +-
drivers/misc/habanalabs/gaudi/gaudi.c | 412 +-
drivers/misc/habanalabs/gaudi/gaudiP.h | 4 +-
drivers/misc/habanalabs/goya/goya.c | 363 +-
drivers/misc/habanalabs/include/common/cpucp_if.h | 70 +-
.../habanalabs/include/hw_ip/mmu/mmu_general.h | 10 +
drivers/misc/lkdtm/bugs.c | 96 +-
drivers/misc/lkdtm/cfi.c | 145 +-
drivers/misc/lkdtm/core.c | 138 +-
drivers/misc/lkdtm/fortify.c | 17 +-
drivers/misc/lkdtm/heap.c | 48 +-
drivers/misc/lkdtm/lkdtm.h | 142 +-
drivers/misc/lkdtm/perms.c | 47 +-
drivers/misc/lkdtm/powerpc.c | 11 +-
drivers/misc/lkdtm/refcount.c | 65 +-
drivers/misc/lkdtm/stackleak.c | 154 +-
drivers/misc/lkdtm/usercopy.c | 146 +-
drivers/misc/mei/hdcp/mei_hdcp.c | 2 +-
drivers/misc/mei/pxp/mei_pxp.c | 2 +-
drivers/misc/ocxl/afu_irq.c | 1 +
drivers/misc/ocxl/file.c | 2 +
drivers/misc/ocxl/link.c | 1 +
drivers/misc/pvpanic/pvpanic.c | 10 +-
drivers/misc/vmw_balloon.c | 4 +-
drivers/misc/vmw_vmci/Kconfig | 2 +-
drivers/misc/vmw_vmci/vmci_context.c | 15 +-
drivers/misc/vmw_vmci/vmci_guest.c | 4 +
drivers/misc/vmw_vmci/vmci_queue_pair.c | 12 +
drivers/mmc/core/block.c | 55 +-
drivers/mmc/core/core.c | 7 +-
drivers/mmc/core/mmc.c | 34 +-
drivers/mmc/core/mmc_ops.c | 2 +-
drivers/mmc/core/queue.c | 5 +-
drivers/mmc/core/sd.c | 7 +
drivers/mmc/host/Kconfig | 2 +-
drivers/mmc/host/atmel-mci.c | 9 +-
drivers/mmc/host/bcm2835.c | 2 +-
drivers/mmc/host/dw_mmc.c | 2 +-
drivers/mmc/host/jz4740_mmc.c | 20 +
drivers/mmc/host/meson-gx-mmc.c | 21 +-
drivers/mmc/host/meson-mx-sdhc-mmc.c | 2 +-
drivers/mmc/host/mmci.c | 6 +-
drivers/mmc/host/mmci_stm32_sdmmc.c | 88 +-
drivers/mmc/host/mtk-sd.c | 2 +-
drivers/mmc/host/mxcmmc.c | 2 +-
drivers/mmc/host/of_mmc_spi.c | 4 +
drivers/mmc/host/omap.c | 23 +-
drivers/mmc/host/pxamci.c | 2 +-
drivers/mmc/host/renesas_sdhi.h | 2 +
drivers/mmc/host/renesas_sdhi_core.c | 2 -
drivers/mmc/host/renesas_sdhi_internal_dmac.c | 76 +-
drivers/mmc/host/sdhci-brcmstb.c | 67 +-
drivers/mmc/host/sdhci-msm.c | 67 +
drivers/mmc/host/sdhci-of-arasan.c | 3 +
drivers/mmc/host/sdhci-omap.c | 9 +-
drivers/mmc/host/sdhci-pci-gli.c | 13 +
drivers/mmc/host/sdhci.c | 2 +-
drivers/mmc/host/sdhci_am654.c | 23 +-
drivers/mmc/host/sh_mmcif.c | 2 +-
drivers/mmc/host/sunxi-mmc.c | 7 +-
drivers/mmc/host/uniphier-sd.c | 2 +-
drivers/mtd/chips/cfi_cmdset_0002.c | 112 +-
drivers/mtd/devices/phram.c | 108 +-
drivers/mtd/devices/st_spi_fsm.c | 2 +
drivers/mtd/maps/Kconfig | 9 -
drivers/mtd/maps/Makefile | 1 -
drivers/mtd/maps/ixp4xx.c | 262 -
drivers/mtd/maps/pxa2xx-flash.c | 2 -
drivers/mtd/mtd_blkdevs.c | 1 -
drivers/mtd/mtdblock.c | 8 +-
drivers/mtd/mtdcore.c | 11 +-
drivers/mtd/mtdoops.c | 61 +-
drivers/mtd/mtdpart.c | 9 +
drivers/mtd/nand/Kconfig | 8 +
drivers/mtd/nand/Makefile | 1 +
drivers/mtd/nand/{raw/mtk_ecc.c => ecc-mtk.c} | 8 +-
drivers/mtd/nand/raw/Kconfig | 1 +
drivers/mtd/nand/raw/Makefile | 2 +-
drivers/mtd/nand/raw/cadence-nand-controller.c | 5 +-
drivers/mtd/nand/raw/cs553x_nand.c | 7 +-
drivers/mtd/nand/raw/davinci_nand.c | 2 +-
drivers/mtd/nand/raw/denali_pci.c | 15 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 296 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.h | 12 +-
drivers/mtd/nand/raw/intel-nand-controller.c | 2 +-
drivers/mtd/nand/raw/mpc5121_nfc.c | 3 +-
drivers/mtd/nand/raw/mtk_nand.c | 2 +-
drivers/mtd/nand/raw/nand_base.c | 9 +-
drivers/mtd/nand/raw/nand_ids.c | 6 +
drivers/mtd/nand/raw/nand_toshiba.c | 6 +-
drivers/mtd/nand/raw/omap_elm.c | 1 +
drivers/mtd/nand/raw/renesas-nand-controller.c | 51 +-
drivers/mtd/nand/raw/rockchip-nand-controller.c | 6 +-
drivers/mtd/nand/raw/tmio_nand.c | 3 +
drivers/mtd/nand/spi/Makefile | 2 +-
drivers/mtd/nand/spi/core.c | 1 +
drivers/mtd/nand/spi/gigadevice.c | 158 +-
drivers/mtd/nand/spi/xtx.c | 129 +
drivers/mtd/parsers/bcm47xxpart.c | 2 +-
drivers/mtd/spi-nor/Makefile | 1 +
drivers/mtd/spi-nor/controllers/Kconfig | 10 -
drivers/mtd/spi-nor/controllers/Makefile | 1 -
drivers/mtd/spi-nor/controllers/aspeed-smc.c | 921 -
drivers/mtd/spi-nor/core.c | 286 +-
drivers/mtd/spi-nor/core.h | 123 +-
drivers/mtd/spi-nor/debugfs.c | 249 +
drivers/mtd/spi-nor/eon.c | 3 +-
drivers/mtd/spi-nor/micron-st.c | 139 +-
drivers/mtd/spi-nor/spansion.c | 159 +-
drivers/mtd/spi-nor/winbond.c | 45 +-
drivers/mtd/spi-nor/xilinx.c | 12 +-
drivers/mtd/ubi/fastmap-wl.c | 121 +-
drivers/mtd/ubi/fastmap.c | 11 -
drivers/mtd/ubi/ubi.h | 4 +-
drivers/mtd/ubi/vmt.c | 1 -
drivers/mtd/ubi/wl.c | 33 +-
drivers/mtd/ubi/wl.h | 2 +
drivers/net/Space.c | 3 -
drivers/net/amt.c | 72 +-
drivers/net/appletalk/Kconfig | 11 -
drivers/net/appletalk/Makefile | 1 -
drivers/net/appletalk/ltpc.c | 1277 -
drivers/net/appletalk/ltpc.h | 74 -
drivers/net/bonding/bond_main.c | 31 +-
drivers/net/bonding/bond_netlink.c | 5 -
drivers/net/bonding/bond_options.c | 10 +-
drivers/net/bonding/bond_procfs.c | 15 +
drivers/net/caif/caif_virtio.c | 3 +-
drivers/net/can/Kconfig | 18 +-
drivers/net/can/Makefile | 1 +
drivers/net/can/at91_can.c | 12 +-
drivers/net/can/c_can/c_can_main.c | 19 +-
drivers/net/can/ctucanfd/Kconfig | 34 +
drivers/net/can/ctucanfd/Makefile | 10 +
drivers/net/can/ctucanfd/ctucanfd.h | 82 +
drivers/net/can/ctucanfd/ctucanfd_base.c | 1452 +
drivers/net/can/ctucanfd/ctucanfd_kframe.h | 77 +
drivers/net/can/ctucanfd/ctucanfd_kregs.h | 325 +
drivers/net/can/ctucanfd/ctucanfd_pci.c | 294 +
drivers/net/can/ctucanfd/ctucanfd_platform.c | 131 +
drivers/net/can/dev/Makefile | 2 -
drivers/net/can/dev/bittiming.c | 2 +-
drivers/net/can/dev/dev.c | 5 -
drivers/net/can/dev/rx-offload.c | 11 +-
drivers/net/can/flexcan/flexcan-core.c | 23 +-
drivers/net/can/grcan.c | 48 +-
drivers/net/can/ifi_canfd/ifi_canfd.c | 9 -
drivers/net/can/janz-ican3.c | 2 +-
drivers/net/can/led.c | 140 -
drivers/net/can/m_can/m_can.c | 46 +-
drivers/net/can/m_can/m_can.h | 4 -
drivers/net/can/m_can/m_can_pci.c | 48 +-
drivers/net/can/mscan/mpc5xxx_can.c | 2 +
drivers/net/can/mscan/mscan.c | 2 +-
drivers/net/can/pch_can.c | 2 +-
drivers/net/can/rcar/rcar_can.c | 12 +-
drivers/net/can/rcar/rcar_canfd.c | 11 +-
drivers/net/can/sja1000/Kconfig | 2 +-
drivers/net/can/sja1000/sja1000.c | 11 -
drivers/net/can/sja1000/tscan1.c | 7 +-
drivers/net/can/slcan.c | 4 +-
drivers/net/can/spi/hi311x.c | 8 -
drivers/net/can/spi/mcp251x.c | 10 -
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 25 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-rx.c | 2 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd.h | 14 +-
drivers/net/can/sun4i_can.c | 7 -
drivers/net/can/ti_hecc.c | 12 +-
drivers/net/can/usb/kvaser_usb/Makefile | 5 +
drivers/net/can/usb/mcba_usb.c | 8 -
drivers/net/can/usb/peak_usb/pcan_usb.c | 2 +-
drivers/net/can/usb/usb_8dev.c | 11 -
drivers/net/can/xilinx_can.c | 16 +-
drivers/net/dsa/Kconfig | 3 +-
drivers/net/dsa/b53/b53_common.c | 42 +-
drivers/net/dsa/b53/b53_priv.h | 24 +-
drivers/net/dsa/b53/b53_serdes.c | 74 +-
drivers/net/dsa/b53/b53_serdes.h | 9 +-
drivers/net/dsa/b53/b53_srab.c | 4 +-
drivers/net/dsa/bcm_sf2.c | 3 +
drivers/net/dsa/lantiq_gswip.c | 13 +-
drivers/net/dsa/microchip/ksz8795.c | 287 +-
drivers/net/dsa/microchip/ksz8795_reg.h | 3 -
drivers/net/dsa/microchip/ksz8795_spi.c | 35 +-
drivers/net/dsa/microchip/ksz8863_smi.c | 10 +-
drivers/net/dsa/microchip/ksz9477.c | 365 +-
drivers/net/dsa/microchip/ksz9477_i2c.c | 30 +-
drivers/net/dsa/microchip/ksz9477_reg.h | 4 -
drivers/net/dsa/microchip/ksz9477_spi.c | 30 +-
drivers/net/dsa/microchip/ksz_common.c | 621 +-
drivers/net/dsa/microchip/ksz_common.h | 89 +-
drivers/net/dsa/mt7530.c | 333 +-
drivers/net/dsa/mt7530.h | 26 +-
drivers/net/dsa/mv88e6xxx/chip.c | 79 +-
drivers/net/dsa/mv88e6xxx/serdes.c | 35 +-
drivers/net/dsa/ocelot/felix.c | 702 +-
drivers/net/dsa/ocelot/felix.h | 18 +-
drivers/net/dsa/ocelot/felix_vsc9959.c | 7 +-
drivers/net/dsa/ocelot/seville_vsc9953.c | 6 +-
drivers/net/dsa/qca8k.c | 145 +-
drivers/net/dsa/qca8k.h | 12 +-
drivers/net/dsa/realtek/rtl8365mb.c | 40 +-
drivers/net/dsa/realtek/rtl8366rb.c | 37 +-
drivers/net/dsa/sja1105/sja1105_main.c | 5 +-
drivers/net/eql.c | 3 +-
drivers/net/ethernet/3com/typhoon.c | 2 +-
drivers/net/ethernet/Kconfig | 1 +
drivers/net/ethernet/Makefile | 1 +
drivers/net/ethernet/adaptec/starfire.c | 2 +-
drivers/net/ethernet/alacritech/slic.h | 2 -
drivers/net/ethernet/alacritech/slicoss.c | 2 +-
drivers/net/ethernet/altera/altera_tse_main.c | 6 +-
drivers/net/ethernet/amazon/ena/ena_netdev.c | 4 +-
drivers/net/ethernet/amd/Kconfig | 10 -
drivers/net/ethernet/amd/Makefile | 1 -
drivers/net/ethernet/amd/amd8111e.c | 2 +-
drivers/net/ethernet/amd/au1000_eth.c | 22 +-
drivers/net/ethernet/amd/au1000_eth.h | 4 +-
drivers/net/ethernet/amd/ni65.c | 1251 -
drivers/net/ethernet/amd/ni65.h | 121 -
drivers/net/ethernet/amd/pcnet32.c | 3 +-
drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 2 +-
drivers/net/ethernet/amd/xgbe/xgbe.h | 3 +-
drivers/net/ethernet/apple/bmac.c | 1 -
drivers/net/ethernet/apple/mace.c | 1 -
drivers/net/ethernet/aquantia/atlantic/aq_cfg.h | 3 +-
.../net/ethernet/aquantia/atlantic/aq_ethtool.c | 9 +
drivers/net/ethernet/aquantia/atlantic/aq_main.c | 87 +
drivers/net/ethernet/aquantia/atlantic/aq_main.h | 2 +
drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 136 +
drivers/net/ethernet/aquantia/atlantic/aq_nic.h | 5 +
.../net/ethernet/aquantia/atlantic/aq_pci_func.c | 4 +-
drivers/net/ethernet/aquantia/atlantic/aq_ptp.c | 2 +-
drivers/net/ethernet/aquantia/atlantic/aq_ring.c | 429 +-
drivers/net/ethernet/aquantia/atlantic/aq_ring.h | 21 +-
drivers/net/ethernet/aquantia/atlantic/aq_vec.c | 25 +-
drivers/net/ethernet/aquantia/atlantic/aq_vec.h | 6 +
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c | 6 +-
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 17 +-
drivers/net/ethernet/arc/emac_main.c | 3 +-
drivers/net/ethernet/atheros/ag71xx.c | 3 +-
drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 2 +-
drivers/net/ethernet/broadcom/Makefile | 5 +
drivers/net/ethernet/broadcom/bcm4908_enet.c | 2 +-
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 4 +-
drivers/net/ethernet/broadcom/bcmsysport.c | 14 +-
drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c | 1 +
drivers/net/ethernet/broadcom/bgmac.c | 2 +-
drivers/net/ethernet/broadcom/bgmac.h | 2 -
drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h | 10 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 326 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 18 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 86 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 415 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 95 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h | 2 +
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 12 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h | 12 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 191 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.h | 16 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 7 +-
drivers/net/ethernet/broadcom/sb1250-mac.c | 9 +-
drivers/net/ethernet/brocade/bna/bnad.c | 3 +-
drivers/net/ethernet/cadence/macb.h | 6 +-
drivers/net/ethernet/cadence/macb_main.c | 355 +-
drivers/net/ethernet/cadence/macb_ptp.c | 4 +-
drivers/net/ethernet/calxeda/xgmac.c | 2 +-
drivers/net/ethernet/cavium/liquidio/lio_main.c | 2 +-
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 2 +-
drivers/net/ethernet/cavium/thunder/nic_main.c | 16 +-
drivers/net/ethernet/cavium/thunder/nicvf_main.c | 3 -
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 10 +-
.../chelsio/inline_crypto/ch_ktls/chcr_ktls.c | 2 +-
.../ethernet/chelsio/inline_crypto/chtls/chtls.h | 2 +-
.../chelsio/inline_crypto/chtls/chtls_io.c | 22 +-
drivers/net/ethernet/cirrus/cs89x0.c | 2 +-
drivers/net/ethernet/cortina/gemini.c | 4 +-
drivers/net/ethernet/dec/tulip/Kconfig | 15 -
drivers/net/ethernet/dec/tulip/Makefile | 1 -
drivers/net/ethernet/dec/tulip/de4x5.c | 5591 -
drivers/net/ethernet/dec/tulip/de4x5.h | 1017 -
drivers/net/ethernet/dec/tulip/eeprom.c | 7 +-
drivers/net/ethernet/dec/tulip/tulip_core.c | 61 +-
drivers/net/ethernet/dec/tulip/winbond-840.c | 2 -
drivers/net/ethernet/emulex/benet/be.h | 3 +-
drivers/net/ethernet/emulex/benet/be_main.c | 4 +-
drivers/net/ethernet/engleder/tsnep_hw.h | 9 +-
drivers/net/ethernet/engleder/tsnep_main.c | 36 +-
drivers/net/ethernet/engleder/tsnep_ptp.c | 28 +
drivers/net/ethernet/ezchip/nps_enet.c | 4 +-
drivers/net/ethernet/faraday/ftgmac100.c | 5 +
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 31 +-
drivers/net/ethernet/freescale/dpaa/dpaa_eth.h | 31 +-
.../net/ethernet/freescale/dpaa/dpaa_eth_sysfs.c | 32 +-
.../net/ethernet/freescale/dpaa/dpaa_eth_trace.h | 32 +-
drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c | 32 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 12 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c | 3 -
drivers/net/ethernet/freescale/enetc/enetc.c | 13 +-
drivers/net/ethernet/freescale/enetc/enetc.h | 2 +
.../net/ethernet/freescale/enetc/enetc_ethtool.c | 2 +
drivers/net/ethernet/freescale/enetc/enetc_hw.h | 1 +
.../net/ethernet/freescale/enetc/enetc_pci_mdio.c | 4 +-
drivers/net/ethernet/freescale/enetc/enetc_pf.c | 30 +-
drivers/net/ethernet/freescale/enetc/enetc_qos.c | 6 +
drivers/net/ethernet/freescale/fec_main.c | 20 +-
drivers/net/ethernet/freescale/fec_mpc52xx.c | 2 +
drivers/net/ethernet/freescale/fec_mpc52xx_phy.c | 1 +
.../net/ethernet/freescale/fs_enet/fs_enet-main.c | 3 +-
drivers/net/ethernet/freescale/gianfar.c | 6 +-
drivers/net/ethernet/freescale/gianfar.h | 3 -
.../net/ethernet/fungible/funeth/funeth_devlink.c | 8 +-
drivers/net/ethernet/fungible/funeth/funeth_main.c | 3 +-
drivers/net/ethernet/hisilicon/hisi_femac.c | 3 +-
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 4 +-
drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h | 73 +-
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 4 +
.../hisilicon/hns3/hns3_common/hclge_comm_cmd.c | 2 +
.../hisilicon/hns3/hns3_common/hclge_comm_cmd.h | 1 +
.../hisilicon/hns3/hns3_common/hclge_comm_rss.h | 2 +-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 5 +-
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 144 +-
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.h | 6 +
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c | 2 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 30 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 6 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 195 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_trace.h | 2 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 62 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 2 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c | 88 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h | 2 +-
drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c | 2 +
drivers/net/ethernet/huawei/hinic/hinic_hw_wq.c | 9 +-
drivers/net/ethernet/huawei/hinic/hinic_rx.c | 3 +-
drivers/net/ethernet/huawei/hinic/hinic_tx.c | 3 +-
drivers/net/ethernet/ibm/ehea/ehea.h | 1 +
drivers/net/ethernet/ibm/ehea/ehea_main.c | 2 +
drivers/net/ethernet/ibm/emac/mal.c | 4 +-
drivers/net/ethernet/ibm/ibmveth.c | 2 +-
drivers/net/ethernet/ibm/ibmvnic.c | 311 +-
drivers/net/ethernet/ibm/ibmvnic.h | 54 +-
drivers/net/ethernet/intel/e100.c | 2 +-
drivers/net/ethernet/intel/i40e/i40e.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_common.c | 1 +
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 5 +-
drivers/net/ethernet/intel/i40e/i40e_devids.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 2 +
drivers/net/ethernet/intel/i40e/i40e_main.c | 52 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 49 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_xsk.c | 39 +-
drivers/net/ethernet/intel/ice/ice.h | 16 +
drivers/net/ethernet/intel/ice/ice_adminq_cmd.h | 58 +-
drivers/net/ethernet/intel/ice/ice_devlink.c | 27 +-
drivers/net/ethernet/intel/ice/ice_ethtool.c | 77 +-
drivers/net/ethernet/intel/ice/ice_gnss.c | 3 +-
drivers/net/ethernet/intel/ice/ice_idc.c | 40 +-
drivers/net/ethernet/intel/ice/ice_lib.c | 16 +-
drivers/net/ethernet/intel/ice/ice_main.c | 31 +-
drivers/net/ethernet/intel/ice/ice_ptp.c | 29 +-
drivers/net/ethernet/intel/ice/ice_repr.c | 8 +-
drivers/net/ethernet/intel/ice/ice_sriov.c | 32 +-
drivers/net/ethernet/intel/ice/ice_switch.c | 678 +-
drivers/net/ethernet/intel/ice/ice_switch.h | 15 +-
drivers/net/ethernet/intel/ice/ice_tc_lib.c | 1 -
drivers/net/ethernet/intel/ice/ice_txrx.c | 29 +-
drivers/net/ethernet/intel/ice/ice_txrx.h | 12 +-
drivers/net/ethernet/intel/ice/ice_vf_lib.c | 43 +-
drivers/net/ethernet/intel/ice/ice_vf_lib.h | 4 +-
drivers/net/ethernet/intel/ice/ice_virtchnl.c | 95 +-
drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c | 9 +-
drivers/net/ethernet/intel/ice/ice_xsk.c | 53 +-
drivers/net/ethernet/intel/igb/igb_ethtool.c | 4 +-
drivers/net/ethernet/intel/igb/igb_main.c | 3 +-
drivers/net/ethernet/intel/igc/igc.h | 1 -
drivers/net/ethernet/intel/igc/igc_base.c | 2 -
drivers/net/ethernet/intel/igc/igc_hw.h | 7 -
drivers/net/ethernet/intel/igc/igc_main.c | 50 -
drivers/net/ethernet/intel/igc/igc_phy.c | 16 +-
drivers/net/ethernet/intel/igc/igc_phy.h | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c | 9 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.h | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 107 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 8 +-
.../net/ethernet/intel/ixgbe/ixgbe_txrx_common.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 53 +-
drivers/net/ethernet/intel/ixgbevf/ipsec.c | 6 +-
drivers/net/ethernet/intel/ixgbevf/ipsec.h | 2 +-
drivers/net/ethernet/jme.c | 2 +-
drivers/net/ethernet/jme.h | 2 -
drivers/net/ethernet/lantiq_etop.c | 8 +-
drivers/net/ethernet/lantiq_xrx200.c | 4 +-
drivers/net/ethernet/marvell/Kconfig | 2 +
drivers/net/ethernet/marvell/Makefile | 1 +
drivers/net/ethernet/marvell/mv643xx_eth.c | 2 +-
drivers/net/ethernet/marvell/mvneta.c | 22 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 4 +-
drivers/net/ethernet/marvell/octeon_ep/Kconfig | 20 +
drivers/net/ethernet/marvell/octeon_ep/Makefile | 9 +
.../net/ethernet/marvell/octeon_ep/octep_cn9k_pf.c | 737 +
.../net/ethernet/marvell/octeon_ep/octep_config.h | 204 +
.../ethernet/marvell/octeon_ep/octep_ctrl_mbox.c | 245 +
.../ethernet/marvell/octeon_ep/octep_ctrl_mbox.h | 170 +
.../ethernet/marvell/octeon_ep/octep_ctrl_net.c | 194 +
.../ethernet/marvell/octeon_ep/octep_ctrl_net.h | 299 +
.../net/ethernet/marvell/octeon_ep/octep_ethtool.c | 463 +
.../net/ethernet/marvell/octeon_ep/octep_main.c | 1181 +
.../net/ethernet/marvell/octeon_ep/octep_main.h | 357 +
.../marvell/octeon_ep/octep_regs_cn9k_pf.h | 367 +
drivers/net/ethernet/marvell/octeon_ep/octep_rx.c | 507 +
drivers/net/ethernet/marvell/octeon_ep/octep_rx.h | 199 +
drivers/net/ethernet/marvell/octeon_ep/octep_tx.c | 334 +
drivers/net/ethernet/marvell/octeon_ep/octep_tx.h | 284 +
drivers/net/ethernet/marvell/octeontx2/Kconfig | 1 +
.../net/ethernet/marvell/octeontx2/af/rvu_cpt.c | 2 +-
.../ethernet/marvell/octeontx2/af/rvu_debugfs.c | 4 +-
.../ethernet/marvell/octeontx2/nic/otx2_common.c | 5 -
.../ethernet/marvell/octeontx2/nic/otx2_common.h | 10 +
.../ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 45 +-
.../ethernet/marvell/octeontx2/nic/otx2_flows.c | 4 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 31 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_txrx.c | 23 +
.../net/ethernet/marvell/octeontx2/nic/otx2_txrx.h | 1 +
.../net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 2 +-
.../net/ethernet/marvell/prestera/prestera_acl.c | 42 +-
.../net/ethernet/marvell/prestera/prestera_acl.h | 12 +
.../ethernet/marvell/prestera/prestera_flower.c | 28 +
.../net/ethernet/marvell/prestera/prestera_hw.c | 81 +
.../net/ethernet/marvell/prestera/prestera_hw.h | 13 +
.../ethernet/marvell/prestera/prestera_router.c | 11 +-
.../net/ethernet/marvell/prestera/prestera_rxtx.c | 2 +-
drivers/net/ethernet/marvell/pxa168_eth.c | 3 +-
drivers/net/ethernet/marvell/skge.c | 3 +-
drivers/net/ethernet/marvell/sky2.c | 3 +-
drivers/net/ethernet/mediatek/Kconfig | 4 +
drivers/net/ethernet/mediatek/Makefile | 10 +
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 1086 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 360 +-
drivers/net/ethernet/mediatek/mtk_ppe.c | 371 +-
drivers/net/ethernet/mediatek/mtk_ppe.h | 89 +-
drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c | 1 -
drivers/net/ethernet/mediatek/mtk_ppe_offload.c | 191 +-
drivers/net/ethernet/mediatek/mtk_sgmii.c | 175 +-
drivers/net/ethernet/mediatek/mtk_star_emac.c | 3 +-
drivers/net/ethernet/mediatek/mtk_wed.c | 880 +
drivers/net/ethernet/mediatek/mtk_wed.h | 135 +
drivers/net/ethernet/mediatek/mtk_wed_debugfs.c | 175 +
drivers/net/ethernet/mediatek/mtk_wed_ops.c | 8 +
drivers/net/ethernet/mediatek/mtk_wed_regs.h | 251 +
drivers/net/ethernet/mellanox/mlx4/cmd.c | 23 +-
drivers/net/ethernet/mellanox/mlx4/en_cq.c | 3 +-
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 3 +
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 47 +-
drivers/net/ethernet/mellanox/mlx5/core/Kconfig | 58 +-
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 16 +-
.../net/ethernet/mellanox/mlx5/core/accel/accel.h | 36 -
.../net/ethernet/mellanox/mlx5/core/accel/ipsec.c | 179 -
.../net/ethernet/mellanox/mlx5/core/accel/ipsec.h | 96 -
.../mellanox/mlx5/core/accel/ipsec_offload.c | 385 -
.../mellanox/mlx5/core/accel/ipsec_offload.h | 38 -
.../net/ethernet/mellanox/mlx5/core/accel/tls.c | 125 -
.../net/ethernet/mellanox/mlx5/core/accel/tls.h | 156 -
drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 6 -
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/debugfs.c | 2 +
drivers/net/ethernet/mellanox/mlx5/core/dev.c | 55 +-
drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 24 +-
.../mellanox/mlx5/core/diag/fs_tracepoint.c | 3 +
.../ethernet/mellanox/mlx5/core/diag/fw_tracer.c | 7 +-
.../ethernet/mellanox/mlx5/core/diag/rsc_dump.c | 31 +-
drivers/net/ethernet/mellanox/mlx5/core/en.h | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/en/dcbnl.h | 2 -
drivers/net/ethernet/mellanox/mlx5/core/en/fs.h | 3 +-
.../net/ethernet/mellanox/mlx5/core/en/params.c | 19 +-
.../ethernet/mellanox/mlx5/core/en/port_buffer.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 1 +
.../ethernet/mellanox/mlx5/core/en/reporter_rx.c | 6 +
.../ethernet/mellanox/mlx5/core/en/tc/act/act.c | 3 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/act/ct.c | 34 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/mirred.c | 14 +
.../ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c | 60 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/sample.c | 1 +
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c | 96 +-
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.h | 11 +
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 3 +-
drivers/net/ethernet/mellanox/mlx5/core/en/trap.c | 14 +-
.../net/ethernet/mellanox/mlx5/core/en/xsk/pool.c | 1 +
.../net/ethernet/mellanox/mlx5/core/en/xsk/rx.c | 6 -
.../net/ethernet/mellanox/mlx5/core/en/xsk/rx.h | 1 -
.../net/ethernet/mellanox/mlx5/core/en/xsk/setup.c | 5 +-
.../net/ethernet/mellanox/mlx5/core/en/xsk/tx.c | 2 +-
.../mellanox/mlx5/core/en_accel/en_accel.h | 11 +-
.../ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c | 2 +-
.../ethernet/mellanox/mlx5/core/en_accel/ipsec.c | 204 +-
.../ethernet/mellanox/mlx5/core/en_accel/ipsec.h | 110 +-
.../mellanox/mlx5/core/en_accel/ipsec_fs.c | 365 +-
.../mellanox/mlx5/core/en_accel/ipsec_fs.h | 11 +-
.../mellanox/mlx5/core/en_accel/ipsec_offload.c | 205 +
.../mellanox/mlx5/core/en_accel/ipsec_rxtx.c | 249 +-
.../mellanox/mlx5/core/en_accel/ipsec_rxtx.h | 3 -
.../mellanox/mlx5/core/en_accel/ipsec_stats.c | 65 +-
.../ethernet/mellanox/mlx5/core/en_accel/ktls.c | 71 +-
.../ethernet/mellanox/mlx5/core/en_accel/ktls.h | 86 +-
.../ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c | 2 +-
.../core/en_accel/{tls_stats.c => ktls_stats.c} | 51 +-
.../ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c | 20 +-
.../mellanox/mlx5/core/en_accel/ktls_txrx.h | 28 +-
.../mellanox/mlx5/core/en_accel/ktls_utils.h | 1 -
.../net/ethernet/mellanox/mlx5/core/en_accel/tls.c | 247 -
.../net/ethernet/mellanox/mlx5/core/en_accel/tls.h | 132 -
.../mellanox/mlx5/core/en_accel/tls_rxtx.c | 390 -
.../mellanox/mlx5/core/en_accel/tls_rxtx.h | 91 -
drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c | 19 +-
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 91 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 67 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 79 +-
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 9 +-
drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 1 -
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 77 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h | 7 +
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 105 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 28 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 8 -
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 14 +-
.../net/ethernet/mellanox/mlx5/core/fpga/core.h | 3 -
.../net/ethernet/mellanox/mlx5/core/fpga/ipsec.c | 1582 -
.../net/ethernet/mellanox/mlx5/core/fpga/ipsec.h | 62 -
drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c | 622 -
drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.h | 74 -
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 20 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 229 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/fw.c | 3 +-
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 87 +-
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.h | 1 +
.../ethernet/mellanox/mlx5/core/ipoib/ethtool.c | 14 +-
.../net/ethernet/mellanox/mlx5/core/lag/debugfs.c | 174 +
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 683 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 65 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c | 42 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/mp.h | 7 +-
.../net/ethernet/mellanox/mlx5/core/lag/mpesw.c | 101 +
.../net/ethernet/mellanox/mlx5/core/lag/mpesw.h | 26 +
.../net/ethernet/mellanox/mlx5/core/lag/port_sel.c | 131 +-
.../net/ethernet/mellanox/mlx5/core/lag/port_sel.h | 15 +-
.../net/ethernet/mellanox/mlx5/core/lib/devcom.c | 16 +-
.../net/ethernet/mellanox/mlx5/core/lib/devcom.h | 2 +
.../net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c | 2 +
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c | 1 +
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.h | 1 +
drivers/net/ethernet/mellanox/mlx5/core/main.c | 86 +-
.../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c | 8 +-
drivers/net/ethernet/mellanox/mlx5/core/sriov.c | 65 +-
.../mellanox/mlx5/core/steering/dr_action.c | 71 +-
.../ethernet/mellanox/mlx5/core/steering/dr_cmd.c | 21 +-
.../ethernet/mellanox/mlx5/core/steering/dr_fw.c | 4 +-
.../mellanox/mlx5/core/steering/dr_ste_v0.c | 4 +-
.../mellanox/mlx5/core/steering/dr_types.h | 3 +-
.../ethernet/mellanox/mlx5/core/steering/fs_dr.c | 13 +-
.../ethernet/mellanox/mlx5/core/steering/mlx5dr.h | 3 +-
drivers/net/ethernet/mellanox/mlx5/core/vport.c | 52 +-
.../net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h | 3 -
.../mellanox/mlxbf_gige/mlxbf_gige_ethtool.c | 8 +-
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_intr.c | 9 -
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c | 2 +-
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c | 6 +-
drivers/net/ethernet/mellanox/mlxsw/Makefile | 3 +-
drivers/net/ethernet/mellanox/mlxsw/core.c | 58 +-
drivers/net/ethernet/mellanox/mlxsw/core.h | 79 +-
drivers/net/ethernet/mellanox/mlxsw/core_env.c | 681 +-
drivers/net/ethernet/mellanox/mlxsw/core_env.h | 47 +-
drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c | 311 +-
.../net/ethernet/mellanox/mlxsw/core_linecards.c | 1142 +
drivers/net/ethernet/mellanox/mlxsw/core_thermal.c | 250 +-
drivers/net/ethernet/mellanox/mlxsw/minimal.c | 39 +-
drivers/net/ethernet/mellanox/mlxsw/reg.h | 465 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 348 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 27 +-
.../ethernet/mellanox/mlxsw/spectrum_acl_tcam.c | 5 +-
.../net/ethernet/mellanox/mlxsw/spectrum_buffers.c | 26 +
drivers/net/ethernet/mellanox/mlxsw/spectrum_dcb.c | 13 -
.../net/ethernet/mellanox/mlxsw/spectrum_ethtool.c | 35 +-
.../net/ethernet/mellanox/mlxsw/spectrum_ipip.c | 11 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.c | 201 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.h | 2 +
.../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 31 +-
.../net/ethernet/mellanox/mlxsw/spectrum_trap.c | 2 +-
drivers/net/ethernet/mellanox/mlxsw/trap.h | 6 +
drivers/net/ethernet/microchip/lan743x_main.c | 38 +-
drivers/net/ethernet/microchip/lan966x/Makefile | 2 +-
.../net/ethernet/microchip/lan966x/lan966x_fdma.c | 842 +
.../net/ethernet/microchip/lan966x/lan966x_main.c | 121 +-
.../net/ethernet/microchip/lan966x/lan966x_main.h | 121 +
.../net/ethernet/microchip/lan966x/lan966x_port.c | 3 +
.../net/ethernet/microchip/lan966x/lan966x_ptp.c | 276 +-
.../net/ethernet/microchip/lan966x/lan966x_regs.h | 146 +
.../net/ethernet/microchip/sparx5/sparx5_fdma.c | 3 +-
.../net/ethernet/microchip/sparx5/sparx5_port.c | 2 +-
.../ethernet/microchip/sparx5/sparx5_switchdev.c | 12 +
drivers/net/ethernet/microsoft/mana/mana_en.c | 4 +-
drivers/net/ethernet/moxa/moxart_ether.c | 2 +-
drivers/net/ethernet/mscc/ocelot.c | 255 +-
drivers/net/ethernet/mscc/ocelot.h | 1 -
drivers/net/ethernet/mscc/ocelot_fdma.c | 4 +-
drivers/net/ethernet/mscc/ocelot_flower.c | 25 +-
drivers/net/ethernet/mscc/ocelot_net.c | 79 +-
drivers/net/ethernet/mscc/ocelot_police.c | 26 +-
drivers/net/ethernet/mscc/ocelot_police.h | 2 +-
drivers/net/ethernet/mscc/ocelot_vcap.c | 51 +-
drivers/net/ethernet/mscc/ocelot_vsc7514.c | 2 +-
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 6 +-
drivers/net/ethernet/natsemi/natsemi.c | 2 -
drivers/net/ethernet/neterion/vxge/vxge-main.c | 13 +-
drivers/net/ethernet/neterion/vxge/vxge-main.h | 2 -
drivers/net/ethernet/netronome/nfp/crypto/tls.c | 2 +-
drivers/net/ethernet/netronome/nfp/flower/action.c | 3 +-
.../net/ethernet/netronome/nfp/flower/conntrack.c | 300 +-
.../net/ethernet/netronome/nfp/flower/lag_conf.c | 2 +-
drivers/net/ethernet/netronome/nfp/flower/main.h | 110 +-
drivers/net/ethernet/netronome/nfp/flower/match.c | 67 +-
.../net/ethernet/netronome/nfp/flower/metadata.c | 19 +-
.../net/ethernet/netronome/nfp/flower/offload.c | 86 +-
.../ethernet/netronome/nfp/flower/tunnel_conf.c | 515 +-
drivers/net/ethernet/netronome/nfp/nfdk/dp.c | 12 +-
drivers/net/ethernet/netronome/nfp/nfdk/nfdk.h | 3 +-
drivers/net/ethernet/netronome/nfp/nfp_main.c | 38 +-
drivers/net/ethernet/netronome/nfp/nfp_net.h | 11 +-
.../net/ethernet/netronome/nfp/nfp_net_common.c | 13 +-
.../net/ethernet/netronome/nfp/nfp_net_ethtool.c | 4 +-
drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 5 +-
drivers/net/ethernet/netronome/nfp/nfp_net_sriov.c | 111 +-
drivers/net/ethernet/netronome/nfp/nfp_net_sriov.h | 12 +
.../net/ethernet/netronome/nfp/nfp_netvf_main.c | 12 +-
.../ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c | 18 +-
.../net/ethernet/netronome/nfp/nfpcore/nfp_cpp.h | 26 +-
.../net/ethernet/netronome/nfp/nfpcore/nfp_dev.h | 8 +
drivers/net/ethernet/nvidia/forcedeth.c | 6 +-
drivers/net/ethernet/nxp/lpc_eth.c | 2 +-
.../net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 12 +-
.../net/ethernet/pensando/ionic/ionic_bus_pci.c | 3 +-
drivers/net/ethernet/qlogic/qed/Makefile | 3 +-
drivers/net/ethernet/qlogic/qed/qed_dbg_hsi.h | 2 +-
drivers/net/ethernet/qlogic/qed/qed_main.c | 1 -
.../ethernet/qlogic/qed/qed_nvmetcp_ip_services.c | 238 -
drivers/net/ethernet/qlogic/qed/qed_rdma.c | 45 +-
drivers/net/ethernet/qlogic/qed/qed_roce.c | 2 +-
drivers/net/ethernet/qlogic/qed/qed_vf.h | 2 +-
drivers/net/ethernet/qlogic/qede/qede_main.c | 1 -
drivers/net/ethernet/qlogic/qede/qede_ptp.c | 10 +-
drivers/net/ethernet/qlogic/qla3xxx.c | 3 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 9 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 3 +-
drivers/net/ethernet/realtek/8139cp.c | 2 +-
drivers/net/ethernet/realtek/atp.h | 4 -
drivers/net/ethernet/realtek/r8169_main.c | 8 +-
drivers/net/ethernet/renesas/ravb.h | 6 +
drivers/net/ethernet/renesas/ravb_main.c | 109 +-
drivers/net/ethernet/renesas/ravb_ptp.c | 6 +-
drivers/net/ethernet/rocker/rocker_main.c | 3 +-
drivers/net/ethernet/sfc/Kconfig | 15 +-
drivers/net/ethernet/sfc/Makefile | 5 +-
drivers/net/ethernet/sfc/ef10.c | 7 +-
drivers/net/ethernet/sfc/ef100.c | 27 +-
drivers/net/ethernet/sfc/ef100_nic.c | 18 +-
drivers/net/ethernet/sfc/ef100_sriov.c | 56 +
drivers/net/ethernet/sfc/ef100_sriov.h | 14 +
drivers/net/ethernet/sfc/efx.c | 19 +-
drivers/net/ethernet/sfc/efx.h | 1 -
drivers/net/ethernet/sfc/efx_channels.c | 72 +-
drivers/net/ethernet/sfc/efx_channels.h | 3 -
drivers/net/ethernet/sfc/efx_common.c | 4 +-
drivers/net/ethernet/sfc/falcon/efx.c | 10 +-
drivers/net/ethernet/sfc/falcon/rx.c | 4 +-
drivers/net/ethernet/sfc/falcon/tx.c | 3 +-
drivers/net/ethernet/sfc/mcdi_pcol.h | 4 +-
drivers/net/ethernet/sfc/net_driver.h | 7 +-
drivers/net/ethernet/sfc/nic.h | 4 -
drivers/net/ethernet/sfc/ptp.c | 14 +-
drivers/net/ethernet/sfc/ptp.h | 1 +
drivers/net/ethernet/sfc/siena/Kconfig | 46 +
drivers/net/ethernet/sfc/siena/Makefile | 11 +
drivers/net/ethernet/sfc/siena/bitfield.h | 614 +
drivers/net/ethernet/sfc/siena/efx.c | 1325 +
drivers/net/ethernet/sfc/siena/efx.h | 218 +
drivers/net/ethernet/sfc/siena/efx_channels.c | 1368 +
drivers/net/ethernet/sfc/siena/efx_channels.h | 45 +
drivers/net/ethernet/sfc/siena/efx_common.c | 1408 +
drivers/net/ethernet/sfc/siena/efx_common.h | 118 +
drivers/net/ethernet/sfc/siena/enum.h | 176 +
drivers/net/ethernet/sfc/siena/ethtool.c | 282 +
drivers/net/ethernet/sfc/siena/ethtool_common.c | 1340 +
drivers/net/ethernet/sfc/siena/ethtool_common.h | 60 +
drivers/net/ethernet/sfc/{ => siena}/farch.c | 77 +-
drivers/net/ethernet/sfc/siena/farch_regs.h | 2929 +
drivers/net/ethernet/sfc/siena/filter.h | 309 +
drivers/net/ethernet/sfc/siena/io.h | 310 +
drivers/net/ethernet/sfc/siena/mcdi.c | 2260 +
drivers/net/ethernet/sfc/siena/mcdi.h | 386 +
drivers/net/ethernet/sfc/siena/mcdi_mon.c | 531 +
drivers/net/ethernet/sfc/siena/mcdi_pcol.h | 17204 ++
drivers/net/ethernet/sfc/siena/mcdi_port.c | 110 +
drivers/net/ethernet/sfc/siena/mcdi_port.h | 17 +
drivers/net/ethernet/sfc/siena/mcdi_port_common.c | 1282 +
drivers/net/ethernet/sfc/siena/mcdi_port_common.h | 58 +
drivers/net/ethernet/sfc/siena/mtd.c | 124 +
drivers/net/ethernet/sfc/siena/net_driver.h | 1715 +
drivers/net/ethernet/sfc/siena/nic.c | 530 +
drivers/net/ethernet/sfc/siena/nic.h | 206 +
drivers/net/ethernet/sfc/siena/nic_common.h | 251 +
drivers/net/ethernet/sfc/siena/ptp.c | 2201 +
drivers/net/ethernet/sfc/siena/ptp.h | 45 +
drivers/net/ethernet/sfc/siena/rx.c | 400 +
drivers/net/ethernet/sfc/siena/rx_common.c | 1094 +
drivers/net/ethernet/sfc/siena/rx_common.h | 110 +
drivers/net/ethernet/sfc/siena/selftest.c | 807 +
drivers/net/ethernet/sfc/siena/selftest.h | 52 +
drivers/net/ethernet/sfc/{ => siena}/siena.c | 168 +-
drivers/net/ethernet/sfc/{ => siena}/siena_sriov.c | 35 +-
drivers/net/ethernet/sfc/{ => siena}/siena_sriov.h | 9 +-
drivers/net/ethernet/sfc/siena/sriov.h | 83 +
drivers/net/ethernet/sfc/siena/tx.c | 392 +
drivers/net/ethernet/sfc/siena/tx.h | 40 +
drivers/net/ethernet/sfc/siena/tx_common.c | 448 +
drivers/net/ethernet/sfc/siena/tx_common.h | 39 +
drivers/net/ethernet/sfc/siena/vfdi.h | 252 +
drivers/net/ethernet/sfc/siena/workarounds.h | 28 +
drivers/net/ethernet/sfc/tx.c | 3 +-
drivers/net/ethernet/sfc/tx_common.c | 3 +-
drivers/net/ethernet/smsc/Kconfig | 4 +-
drivers/net/ethernet/smsc/smc911x.c | 6 +-
drivers/net/ethernet/smsc/smc91x.h | 11 -
drivers/net/ethernet/smsc/smsc911x.c | 5 +-
drivers/net/ethernet/smsc/smsc9420.c | 2 +-
drivers/net/ethernet/smsc/smsc9420.h | 1 -
drivers/net/ethernet/socionext/sni_ave.c | 3 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c | 4 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 7 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 1 +
drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c | 6 -
.../net/ethernet/stmicro/stmmac/dwxgmac2_descs.c | 6 -
drivers/net/ethernet/stmicro/stmmac/enh_desc.c | 6 -
drivers/net/ethernet/stmicro/stmmac/hwif.h | 4 -
drivers/net/ethernet/stmicro/stmmac/norm_desc.c | 6 -
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 35 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 26 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c | 4 +-
.../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 13 +-
drivers/net/ethernet/sun/cassini.c | 4 +-
drivers/net/ethernet/sun/niu.c | 41 +-
drivers/net/ethernet/sun/sungem.c | 1 -
drivers/net/ethernet/sunplus/Kconfig | 32 +
drivers/net/ethernet/sunplus/Makefile | 6 +
drivers/net/ethernet/sunplus/spl2sw_define.h | 270 +
drivers/net/ethernet/sunplus/spl2sw_desc.c | 228 +
drivers/net/ethernet/sunplus/spl2sw_desc.h | 19 +
drivers/net/ethernet/sunplus/spl2sw_driver.c | 565 +
drivers/net/ethernet/sunplus/spl2sw_int.c | 273 +
drivers/net/ethernet/sunplus/spl2sw_int.h | 13 +
drivers/net/ethernet/sunplus/spl2sw_mac.c | 274 +
drivers/net/ethernet/sunplus/spl2sw_mac.h | 18 +
drivers/net/ethernet/sunplus/spl2sw_mdio.c | 131 +
drivers/net/ethernet/sunplus/spl2sw_mdio.h | 12 +
drivers/net/ethernet/sunplus/spl2sw_phy.c | 92 +
drivers/net/ethernet/sunplus/spl2sw_phy.h | 12 +
drivers/net/ethernet/sunplus/spl2sw_register.h | 86 +
drivers/net/ethernet/synopsys/dwc-xlgmac.h | 3 +-
drivers/net/ethernet/ti/Kconfig | 1 +
drivers/net/ethernet/ti/am65-cpsw-ethtool.c | 6 +-
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 45 +-
drivers/net/ethernet/ti/am65-cpsw-qos.c | 193 +-
drivers/net/ethernet/ti/am65-cpsw-qos.h | 8 +
drivers/net/ethernet/ti/cpsw.c | 45 +-
drivers/net/ethernet/ti/cpsw_ale.c | 66 +
drivers/net/ethernet/ti/cpsw_ale.h | 2 +
drivers/net/ethernet/ti/cpsw_new.c | 51 +-
drivers/net/ethernet/ti/cpsw_priv.c | 235 +-
drivers/net/ethernet/ti/cpsw_priv.h | 10 +-
drivers/net/ethernet/ti/davinci_emac.c | 12 +-
drivers/net/ethernet/ti/davinci_mdio.c | 18 +-
drivers/net/ethernet/ti/netcp_core.c | 5 +-
drivers/net/ethernet/toshiba/spider_net.c | 3 +-
drivers/net/ethernet/toshiba/spider_net.h | 1 -
drivers/net/ethernet/toshiba/tc35815.c | 2 +-
drivers/net/ethernet/via/via-velocity.c | 3 +-
drivers/net/ethernet/via/via-velocity.h | 1 -
drivers/net/ethernet/wiznet/w5100.c | 2 +-
drivers/net/ethernet/wiznet/w5300.c | 2 +-
drivers/net/ethernet/xilinx/ll_temac_main.c | 2 +-
drivers/net/ethernet/xilinx/xilinx_axienet.h | 54 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 168 +-
drivers/net/ethernet/xilinx/xilinx_emaclite.c | 85 +-
drivers/net/ethernet/xscale/ixp4xx_eth.c | 2 +-
drivers/net/ethernet/xscale/ptp_ixp46x.c | 2 +-
drivers/net/fddi/skfp/smt.c | 2 +-
drivers/net/geneve.c | 10 +-
drivers/net/hamradio/Kconfig | 34 -
drivers/net/hamradio/Makefile | 1 -
drivers/net/hamradio/dmascc.c | 1450 -
drivers/net/hyperv/hyperv_net.h | 69 +-
drivers/net/hyperv/netvsc.c | 16 +-
drivers/net/hyperv/netvsc_bpf.c | 101 +-
drivers/net/hyperv/netvsc_drv.c | 155 +-
drivers/net/hyperv/rndis_filter.c | 4 +-
drivers/net/ieee802154/Kconfig | 7 -
drivers/net/ieee802154/at86rf230.c | 163 +-
drivers/net/ieee802154/atusb.c | 37 +-
drivers/net/ieee802154/ca8210.c | 181 +-
drivers/net/ieee802154/mcr20a.c | 5 -
drivers/net/ipa/gsi.c | 26 +-
drivers/net/ipa/gsi.h | 1 -
drivers/net/ipa/gsi_reg.h | 2 +-
drivers/net/ipa/gsi_trans.c | 38 +-
drivers/net/ipa/gsi_trans.h | 24 +-
drivers/net/ipa/ipa.h | 2 +
drivers/net/ipa/ipa_cmd.c | 78 +-
drivers/net/ipa/ipa_cmd.h | 11 -
drivers/net/ipa/ipa_data-v3.1.c | 2 +
drivers/net/ipa/ipa_data-v3.5.1.c | 2 +
drivers/net/ipa/ipa_data-v4.11.c | 2 +
drivers/net/ipa/ipa_data-v4.2.c | 2 +
drivers/net/ipa/ipa_data-v4.5.c | 2 +
drivers/net/ipa/ipa_data-v4.9.c | 2 +
drivers/net/ipa/ipa_data.h | 70 +-
drivers/net/ipa/ipa_endpoint.c | 234 +-
drivers/net/ipa/ipa_endpoint.h | 85 +-
drivers/net/ipa/ipa_interrupt.c | 6 +-
drivers/net/ipa/ipa_modem.c | 13 +-
drivers/net/ipa/ipa_qmi.c | 2 +-
drivers/net/ipvlan/ipvlan_main.c | 6 +-
drivers/net/loopback.c | 2 +
drivers/net/macsec.c | 7 +
drivers/net/macvlan.c | 9 +-
drivers/net/mdio/mdio-aspeed.c | 138 +-
drivers/net/mdio/mdio-mscc-miim.c | 81 +-
drivers/net/mdio/mdio-mux-bcm6368.c | 2 +-
drivers/net/netdevsim/fib.c | 9 +-
drivers/net/netdevsim/ipsec.c | 2 +-
drivers/net/pcs/pcs-xpcs.c | 6 +-
drivers/net/phy/Kconfig | 13 +
drivers/net/phy/Makefile | 2 +
drivers/net/phy/adin.c | 40 +
drivers/net/phy/adin1100.c | 292 +
drivers/net/phy/at803x.c | 33 +-
drivers/net/phy/bcm87xx.c | 36 +-
drivers/net/phy/dp83822.c | 9 +-
drivers/net/phy/dp83867.c | 29 +
drivers/net/phy/dp83td510.c | 209 +
drivers/net/phy/fixed_phy.c | 6 +-
drivers/net/phy/marvell.c | 53 +-
drivers/net/phy/mdio_bus.c | 1 -
drivers/net/phy/micrel.c | 271 +-
drivers/net/phy/microchip.c | 10 +-
drivers/net/phy/microchip_t1.c | 50 +
drivers/net/phy/phy-c45.c | 297 +-
drivers/net/phy/phy-core.c | 3 +-
drivers/net/phy/phy.c | 25 +-
drivers/net/phy/phy_device.c | 10 +-
drivers/net/phy/phylink.c | 64 +-
drivers/net/phy/sfp.c | 12 +-
drivers/net/phy/smsc.c | 59 +-
drivers/net/ppp/pppoe.c | 4 +-
drivers/net/sungem_phy.c | 6 +-
drivers/net/tun.c | 3 +-
drivers/net/usb/aqc111.c | 2 +-
drivers/net/usb/asix_devices.c | 6 +-
drivers/net/usb/ax88179_178a.c | 2 +-
drivers/net/usb/cdc_ether.c | 3 +-
drivers/net/usb/cdc_ncm.c | 12 +-
drivers/net/usb/lan78xx.c | 10 +-
drivers/net/usb/qmi_wwan.c | 5 +-
drivers/net/usb/r8152.c | 41 +-
drivers/net/usb/rndis_host.c | 49 +-
drivers/net/usb/smsc95xx.c | 152 +-
drivers/net/usb/sr9800.h | 2 +-
drivers/net/usb/usbnet.c | 10 +-
drivers/net/veth.c | 6 +-
drivers/net/virtio_net.c | 9 +-
drivers/net/vmxnet3/vmxnet3_drv.c | 6 +
drivers/net/vxlan/vxlan_core.c | 43 +-
drivers/net/wan/Kconfig | 72 -
drivers/net/wan/Makefile | 5 -
drivers/net/wan/cosa.c | 2052 -
drivers/net/wan/cosa.h | 104 -
drivers/net/wan/fsl_ucc_hdlc.c | 2 +-
drivers/net/wan/hd64572.c | 3 +-
drivers/net/wan/hostess_sv11.c | 336 -
drivers/net/wan/ixp4xx_hss.c | 2 +-
drivers/net/wan/lapbether.c | 2 +-
drivers/net/wan/lmc/Makefile | 18 -
drivers/net/wan/lmc/lmc.h | 33 -
drivers/net/wan/lmc/lmc_debug.c | 65 -
drivers/net/wan/lmc/lmc_debug.h | 52 -
drivers/net/wan/lmc/lmc_ioctl.h | 255 -
drivers/net/wan/lmc/lmc_main.c | 2009 -
drivers/net/wan/lmc/lmc_media.c | 1206 -
drivers/net/wan/lmc/lmc_proto.c | 106 -
drivers/net/wan/lmc/lmc_proto.h | 18 -
drivers/net/wan/lmc/lmc_var.h | 468 -
drivers/net/wan/sealevel.c | 352 -
drivers/net/wan/z85230.c | 1641 -
drivers/net/wan/z85230.h | 407 -
drivers/net/wireless/Kconfig | 2 +
drivers/net/wireless/Makefile | 4 +-
drivers/net/wireless/ath/ar5523/ar5523.c | 7 +-
drivers/net/wireless/ath/ath10k/ahb.c | 9 +-
drivers/net/wireless/ath/ath10k/core.c | 38 +-
drivers/net/wireless/ath/ath10k/core.h | 3 -
drivers/net/wireless/ath/ath10k/hw.h | 2 +
drivers/net/wireless/ath/ath10k/mac.c | 106 +-
drivers/net/wireless/ath/ath10k/pci.c | 2 +-
drivers/net/wireless/ath/ath10k/sdio.c | 2 +-
drivers/net/wireless/ath/ath10k/snoc.c | 2 +-
drivers/net/wireless/ath/ath10k/usb.c | 27 +
drivers/net/wireless/ath/ath11k/Makefile | 3 +-
drivers/net/wireless/ath/ath11k/ahb.c | 331 +-
drivers/net/wireless/ath/ath11k/ahb.h | 9 +
drivers/net/wireless/ath/ath11k/ce.c | 4 +-
drivers/net/wireless/ath/ath11k/core.c | 580 +-
drivers/net/wireless/ath/ath11k/core.h | 168 +-
drivers/net/wireless/ath/ath11k/debugfs.c | 4 +
drivers/net/wireless/ath/ath11k/dp_tx.c | 8 +-
drivers/net/wireless/ath/ath11k/hal.c | 15 +-
drivers/net/wireless/ath/ath11k/hal.h | 17 +-
drivers/net/wireless/ath/ath11k/htc.c | 6 +
drivers/net/wireless/ath/ath11k/hw.c | 209 +-
drivers/net/wireless/ath/ath11k/hw.h | 45 +-
drivers/net/wireless/ath/ath11k/mac.c | 793 +-
drivers/net/wireless/ath/ath11k/mac.h | 7 +-
drivers/net/wireless/ath/ath11k/mhi.c | 285 +-
drivers/net/wireless/ath/ath11k/mhi.h | 17 +-
drivers/net/wireless/ath/ath11k/pci.c | 984 +-
drivers/net/wireless/ath/ath11k/pci.h | 28 +-
drivers/net/wireless/ath/ath11k/pcic.c | 748 +
drivers/net/wireless/ath/ath11k/pcic.h | 46 +
drivers/net/wireless/ath/ath11k/peer.c | 373 +-
drivers/net/wireless/ath/ath11k/peer.h | 10 +-
drivers/net/wireless/ath/ath11k/qmi.c | 286 +-
drivers/net/wireless/ath/ath11k/qmi.h | 28 +-
drivers/net/wireless/ath/ath11k/reg.c | 47 +-
drivers/net/wireless/ath/ath11k/reg.h | 2 +-
drivers/net/wireless/ath/ath11k/spectral.c | 17 +-
drivers/net/wireless/ath/ath11k/wmi.c | 872 +-
drivers/net/wireless/ath/ath11k/wmi.h | 448 +-
drivers/net/wireless/ath/ath11k/wow.c | 797 +
drivers/net/wireless/ath/ath11k/wow.h | 45 +
drivers/net/wireless/ath/ath6kl/Makefile | 5 +
drivers/net/wireless/ath/ath6kl/htc_mbox.c | 2 +-
drivers/net/wireless/ath/ath9k/Makefile | 5 +
drivers/net/wireless/ath/ath9k/ahb.c | 10 +-
drivers/net/wireless/ath/ath9k/ar9002_mac.c | 9 +-
drivers/net/wireless/ath/ath9k/ar9003_calib.c | 2 +-
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 85 +-
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h | 2 +
drivers/net/wireless/ath/ath9k/ar9003_mac.c | 9 +-
drivers/net/wireless/ath/ath9k/ar9003_paprd.c | 10 +-
drivers/net/wireless/ath/ath9k/ar9003_phy.c | 25 +-
drivers/net/wireless/ath/ath9k/ar9003_phy.h | 2 +-
drivers/net/wireless/ath/ath9k/debug_sta.c | 4 +-
drivers/net/wireless/ath/ath9k/hif_usb.c | 5 +-
drivers/net/wireless/ath/ath9k/htc_drv_main.c | 20 +-
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 8 +
drivers/net/wireless/ath/ath9k/mac.h | 6 +-
drivers/net/wireless/ath/ath9k/main.c | 2 +-
drivers/net/wireless/ath/ath9k/reg.h | 10 +-
drivers/net/wireless/ath/ath9k/xmit.c | 8 +-
drivers/net/wireless/ath/carl9170/Makefile | 5 +
drivers/net/wireless/ath/carl9170/main.c | 8 +-
drivers/net/wireless/ath/carl9170/tx.c | 8 +-
drivers/net/wireless/ath/wcn36xx/hal.h | 7 +-
drivers/net/wireless/ath/wcn36xx/main.c | 160 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 98 +-
drivers/net/wireless/ath/wcn36xx/smd.h | 2 +
drivers/net/wireless/ath/wcn36xx/txrx.c | 29 +
drivers/net/wireless/ath/wcn36xx/txrx.h | 1 +
drivers/net/wireless/ath/wil6210/cfg80211.c | 5 +-
drivers/net/wireless/ath/wil6210/debugfs.c | 14 -
drivers/net/wireless/ath/wil6210/netdev.c | 14 +-
drivers/net/wireless/ath/wil6210/pm.c | 5 +-
drivers/net/wireless/ath/wil6210/wil6210.h | 1 -
drivers/net/wireless/broadcom/b43/phy_n.c | 2 +-
drivers/net/wireless/broadcom/b43legacy/phy.c | 2 +-
.../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 39 +-
.../broadcom/brcm80211/brcmfmac/cfg80211.c | 3 +-
.../wireless/broadcom/brcm80211/brcmfmac/common.c | 23 +-
.../wireless/broadcom/brcm80211/brcmfmac/common.h | 1 +
.../wireless/broadcom/brcm80211/brcmfmac/core.c | 4 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/of.c | 3 +
.../broadcom/brcm80211/brcmsmac/mac80211_if.c | 2 +-
drivers/net/wireless/intel/ipw2x00/ipw2100.c | 64 +-
drivers/net/wireless/intel/ipw2x00/ipw2200.c | 119 +-
drivers/net/wireless/intel/ipw2x00/libipw_tx.c | 2 +-
drivers/net/wireless/intel/iwlegacy/3945-rs.c | 6 +-
drivers/net/wireless/intel/iwlegacy/4965-rs.c | 22 +-
drivers/net/wireless/intel/iwlegacy/common.c | 6 +-
drivers/net/wireless/intel/iwlwifi/dvm/rs.c | 22 +-
drivers/net/wireless/intel/iwlwifi/dvm/rxon.c | 2 +-
drivers/net/wireless/intel/iwlwifi/dvm/sta.c | 4 +-
drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 3 +
.../net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h | 4 +-
drivers/net/wireless/intel/iwlwifi/fw/api/debug.h | 4 +-
drivers/net/wireless/intel/iwlwifi/fw/api/filter.h | 2 +-
drivers/net/wireless/intel/iwlwifi/fw/api/scan.h | 4 +-
drivers/net/wireless/intel/iwlwifi/fw/api/sta.h | 2 +-
drivers/net/wireless/intel/iwlwifi/fw/api/tdls.h | 2 +-
drivers/net/wireless/intel/iwlwifi/fw/error-dump.h | 2 +-
drivers/net/wireless/intel/iwlwifi/fw/file.h | 10 +-
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 2 +-
drivers/net/wireless/intel/iwlwifi/iwl-prph.h | 2 +
drivers/net/wireless/intel/iwlwifi/mei/main.c | 3 +
drivers/net/wireless/intel/iwlwifi/mei/sap.h | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 24 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 15 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 32 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 55 +-
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 1 -
drivers/net/wireless/intel/iwlwifi/mvm/power.c | 3 +
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 38 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 35 +-
drivers/net/wireless/intel/iwlwifi/mvm/rx.c | 44 +-
drivers/net/wireless/intel/iwlwifi/mvm/sf.c | 8 +-
drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 33 +-
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 6 +-
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 48 +-
drivers/net/wireless/intersil/orinoco/airport.c | 1 +
drivers/net/wireless/mac80211_hwsim.c | 14 +-
drivers/net/wireless/marvell/libertas/cfg.c | 4 +-
drivers/net/wireless/marvell/libertas/host.h | 6 +-
drivers/net/wireless/marvell/mwifiex/11h.c | 2 +
drivers/net/wireless/marvell/mwifiex/sdio.c | 23 +-
drivers/net/wireless/marvell/mwifiex/sdio.h | 6 +
drivers/net/wireless/marvell/mwl8k.c | 48 +-
drivers/net/wireless/mediatek/mt76/agg-rx.c | 8 +-
drivers/net/wireless/mediatek/mt76/dma.c | 215 +-
drivers/net/wireless/mediatek/mt76/mac80211.c | 14 +-
drivers/net/wireless/mediatek/mt76/mcu.c | 8 +-
drivers/net/wireless/mediatek/mt76/mmio.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt76.h | 50 +-
drivers/net/wireless/mediatek/mt76/mt7603/beacon.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt7603/dma.c | 12 +-
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 16 +-
drivers/net/wireless/mediatek/mt76/mt7603/main.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt7615/dma.c | 10 +-
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt7615/mmio.c | 2 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.c | 90 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.h | 1 -
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 4 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 10 +-
.../net/wireless/mediatek/mt76/mt7915/debugfs.c | 205 +-
drivers/net/wireless/mediatek/mt76/mt7915/dma.c | 61 +-
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c | 2 +
drivers/net/wireless/mediatek/mt76/mt7915/init.c | 129 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 251 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.h | 2 +
drivers/net/wireless/mediatek/mt76/mt7915/main.c | 72 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 288 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 39 +-
drivers/net/wireless/mediatek/mt76/mt7915/mmio.c | 39 +-
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h | 26 +-
drivers/net/wireless/mediatek/mt76/mt7915/pci.c | 99 +-
drivers/net/wireless/mediatek/mt76/mt7915/regs.h | 61 +-
drivers/net/wireless/mediatek/mt76/mt7915/soc.c | 41 +-
drivers/net/wireless/mediatek/mt76/mt7921/dma.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt7921/init.c | 15 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 43 +-
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 155 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 122 +-
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 15 +-
drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 10 +-
drivers/net/wireless/mediatek/mt76/mt7921/regs.h | 5 +
drivers/net/wireless/mediatek/mt76/mt7921/usb.c | 62 +-
.../net/wireless/mediatek/mt76/mt7921/usb_mac.c | 7 +-
drivers/net/wireless/mediatek/mt76/tx.c | 53 +-
drivers/net/wireless/mediatek/mt76/usb.c | 2 +-
drivers/net/wireless/mediatek/mt7601u/mac.c | 2 +-
drivers/net/wireless/mediatek/mt7601u/tx.c | 4 +-
drivers/net/wireless/microchip/wilc1000/hif.h | 2 +-
drivers/net/wireless/microchip/wilc1000/mon.c | 4 +-
drivers/net/wireless/microchip/wilc1000/netdev.c | 3 +-
drivers/net/wireless/microchip/wilc1000/sdio.c | 2 +-
drivers/net/wireless/microchip/wilc1000/wlan.c | 7 +-
drivers/net/wireless/purelifi/Kconfig | 17 +
drivers/net/wireless/purelifi/Makefile | 2 +
drivers/net/wireless/purelifi/plfxlc/Kconfig | 14 +
drivers/net/wireless/purelifi/plfxlc/Makefile | 3 +
drivers/net/wireless/purelifi/plfxlc/chip.c | 98 +
drivers/net/wireless/purelifi/plfxlc/chip.h | 70 +
drivers/net/wireless/purelifi/plfxlc/firmware.c | 276 +
drivers/net/wireless/purelifi/plfxlc/intf.h | 52 +
drivers/net/wireless/purelifi/plfxlc/mac.c | 754 +
drivers/net/wireless/purelifi/plfxlc/mac.h | 184 +
drivers/net/wireless/purelifi/plfxlc/usb.c | 891 +
drivers/net/wireless/purelifi/plfxlc/usb.h | 198 +
.../wireless/quantenna/qtnfmac/pcie/pearl_pcie.c | 4 +-
.../wireless/quantenna/qtnfmac/pcie/topaz_pcie.c | 4 +-
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 8 +-
drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 2 +-
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c | 4 +-
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c | 8 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 146 +-
drivers/net/wireless/realtek/rtlwifi/base.c | 44 +-
.../realtek/rtlwifi/btcoexist/halbtc8821a1ant.c | 16 +-
drivers/net/wireless/realtek/rtlwifi/core.c | 40 +-
drivers/net/wireless/realtek/rtlwifi/pci.c | 15 +-
drivers/net/wireless/realtek/rtlwifi/rc.c | 20 +-
.../net/wireless/realtek/rtlwifi/rtl8188ee/hw.c | 26 +-
.../net/wireless/realtek/rtlwifi/rtl8188ee/trx.c | 8 +-
.../net/wireless/realtek/rtlwifi/rtl8192ce/hw.c | 26 +-
.../net/wireless/realtek/rtlwifi/rtl8192ce/trx.c | 6 +-
.../net/wireless/realtek/rtlwifi/rtl8192cu/hw.c | 30 +-
.../net/wireless/realtek/rtlwifi/rtl8192cu/trx.c | 2 +-
.../net/wireless/realtek/rtlwifi/rtl8192de/hw.c | 26 +-
.../net/wireless/realtek/rtlwifi/rtl8192de/phy.c | 5 +-
.../net/wireless/realtek/rtlwifi/rtl8192de/trx.c | 4 +-
.../net/wireless/realtek/rtlwifi/rtl8192ee/hw.c | 12 +-
.../net/wireless/realtek/rtlwifi/rtl8192ee/trx.c | 8 +-
.../net/wireless/realtek/rtlwifi/rtl8192se/hw.c | 26 +-
.../net/wireless/realtek/rtlwifi/rtl8192se/trx.c | 2 +-
.../net/wireless/realtek/rtlwifi/rtl8723ae/hw.c | 26 +-
.../net/wireless/realtek/rtlwifi/rtl8723ae/trx.c | 8 +-
.../net/wireless/realtek/rtlwifi/rtl8723be/hw.c | 12 +-
.../net/wireless/realtek/rtlwifi/rtl8723be/trx.c | 8 +-
.../net/wireless/realtek/rtlwifi/rtl8821ae/hw.c | 30 +-
.../net/wireless/realtek/rtlwifi/rtl8821ae/trx.c | 6 +-
drivers/net/wireless/realtek/rtlwifi/usb.c | 2 +-
drivers/net/wireless/realtek/rtw88/bf.c | 2 +-
drivers/net/wireless/realtek/rtw88/fw.c | 41 +-
drivers/net/wireless/realtek/rtw88/fw.h | 5 +-
drivers/net/wireless/realtek/rtw88/mac.c | 2 +-
drivers/net/wireless/realtek/rtw88/mac80211.c | 42 +-
drivers/net/wireless/realtek/rtw88/main.c | 75 +-
drivers/net/wireless/realtek/rtw88/main.h | 9 +-
drivers/net/wireless/realtek/rtw88/pci.c | 19 +-
drivers/net/wireless/realtek/rtw88/phy.c | 2 +-
drivers/net/wireless/realtek/rtw88/reg.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8723d.c | 1 +
drivers/net/wireless/realtek/rtw88/rtw8821c.c | 5 +
.../net/wireless/realtek/rtw88/rtw8821c_table.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8821ce.c | 4 +
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 1 +
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 1 +
drivers/net/wireless/realtek/rtw88/rx.c | 3 +-
drivers/net/wireless/realtek/rtw88/tx.c | 31 +-
drivers/net/wireless/realtek/rtw88/tx.h | 4 +
drivers/net/wireless/realtek/rtw89/Kconfig | 18 +-
drivers/net/wireless/realtek/rtw89/Makefile | 9 +
drivers/net/wireless/realtek/rtw89/cam.c | 57 +-
drivers/net/wireless/realtek/rtw89/cam.h | 4 +
drivers/net/wireless/realtek/rtw89/coex.c | 24 +-
drivers/net/wireless/realtek/rtw89/core.c | 193 +-
drivers/net/wireless/realtek/rtw89/core.h | 295 +-
drivers/net/wireless/realtek/rtw89/debug.c | 75 +-
drivers/net/wireless/realtek/rtw89/debug.h | 1 +
drivers/net/wireless/realtek/rtw89/fw.c | 301 +-
drivers/net/wireless/realtek/rtw89/fw.h | 388 +-
drivers/net/wireless/realtek/rtw89/mac.c | 736 +-
drivers/net/wireless/realtek/rtw89/mac.h | 82 +-
drivers/net/wireless/realtek/rtw89/mac80211.c | 16 +-
drivers/net/wireless/realtek/rtw89/pci.c | 954 +-
drivers/net/wireless/realtek/rtw89/pci.h | 389 +
drivers/net/wireless/realtek/rtw89/phy.c | 481 +-
drivers/net/wireless/realtek/rtw89/phy.h | 76 +-
drivers/net/wireless/realtek/rtw89/ps.c | 34 +-
drivers/net/wireless/realtek/rtw89/reg.h | 1907 +-
drivers/net/wireless/realtek/rtw89/regd.c | 513 +-
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 81 +-
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c | 16 +-
.../net/wireless/realtek/rtw89/rtw8852a_table.c | 605 +-
drivers/net/wireless/realtek/rtw89/rtw8852ae.c | 40 +
drivers/net/wireless/realtek/rtw89/rtw8852c.c | 2561 +-
drivers/net/wireless/realtek/rtw89/rtw8852c.h | 20 +-
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c | 4041 +
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h | 28 +
.../wireless/realtek/rtw89/rtw8852c_rfk_table.c | 781 +
.../wireless/realtek/rtw89/rtw8852c_rfk_table.h | 67 +
.../net/wireless/realtek/rtw89/rtw8852c_table.c | 19470 +++
.../net/wireless/realtek/rtw89/rtw8852c_table.h | 36 +
drivers/net/wireless/realtek/rtw89/rtw8852ce.c | 48 +
drivers/net/wireless/realtek/rtw89/ser.c | 250 +-
drivers/net/wireless/realtek/rtw89/txrx.h | 107 +
drivers/net/wireless/realtek/rtw89/util.h | 30 +
drivers/net/wireless/rsi/rsi_91x_mac80211.c | 12 +-
drivers/net/wireless/rsi/rsi_91x_mgmt.c | 8 +-
drivers/net/wireless/silabs/Kconfig | 18 +
drivers/net/wireless/silabs/Makefile | 3 +
.../{staging => net/wireless/silabs}/wfx/Kconfig | 0
.../{staging => net/wireless/silabs}/wfx/Makefile | 0
drivers/{staging => net/wireless/silabs}/wfx/bh.c | 6 +-
drivers/{staging => net/wireless/silabs}/wfx/bh.h | 0
drivers/{staging => net/wireless/silabs}/wfx/bus.h | 0
.../wireless/silabs}/wfx/bus_sdio.c | 0
.../{staging => net/wireless/silabs}/wfx/bus_spi.c | 0
.../{staging => net/wireless/silabs}/wfx/data_rx.c | 5 +-
.../{staging => net/wireless/silabs}/wfx/data_rx.h | 0
.../{staging => net/wireless/silabs}/wfx/data_tx.c | 3 +-
.../{staging => net/wireless/silabs}/wfx/data_tx.h | 0
.../{staging => net/wireless/silabs}/wfx/debug.c | 0
.../{staging => net/wireless/silabs}/wfx/debug.h | 0
.../{staging => net/wireless/silabs}/wfx/fwio.c | 0
.../{staging => net/wireless/silabs}/wfx/fwio.h | 0
.../wireless/silabs}/wfx/hif_api_cmd.h | 0
.../wireless/silabs}/wfx/hif_api_general.h | 0
.../wireless/silabs}/wfx/hif_api_mib.h | 0
.../{staging => net/wireless/silabs}/wfx/hif_rx.c | 0
.../{staging => net/wireless/silabs}/wfx/hif_rx.h | 0
.../{staging => net/wireless/silabs}/wfx/hif_tx.c | 12 +-
.../{staging => net/wireless/silabs}/wfx/hif_tx.h | 0
.../wireless/silabs}/wfx/hif_tx_mib.c | 0
.../wireless/silabs}/wfx/hif_tx_mib.h | 0
.../{staging => net/wireless/silabs}/wfx/hwio.c | 0
.../{staging => net/wireless/silabs}/wfx/hwio.h | 0
drivers/{staging => net/wireless/silabs}/wfx/key.c | 4 +-
drivers/{staging => net/wireless/silabs}/wfx/key.h | 0
.../{staging => net/wireless/silabs}/wfx/main.c | 8 +-
.../{staging => net/wireless/silabs}/wfx/main.h | 0
.../{staging => net/wireless/silabs}/wfx/queue.c | 3 +-
.../{staging => net/wireless/silabs}/wfx/queue.h | 0
.../{staging => net/wireless/silabs}/wfx/scan.c | 11 +-
.../{staging => net/wireless/silabs}/wfx/scan.h | 0
drivers/{staging => net/wireless/silabs}/wfx/sta.c | 104 +-
drivers/{staging => net/wireless/silabs}/wfx/sta.h | 0
.../{staging => net/wireless/silabs}/wfx/traces.h | 0
drivers/{staging => net/wireless/silabs}/wfx/wfx.h | 7 +-
drivers/net/wireless/st/cw1200/sta.c | 4 +-
drivers/net/wireless/ti/wl1251/event.c | 22 +-
drivers/net/wireless/ti/wl1251/io.c | 20 +-
drivers/net/wireless/ti/wl1251/tx.c | 15 +-
drivers/net/wireless/ti/wl18xx/debugfs.c | 18 +-
drivers/net/wireless/ti/wlcore/cmd.c | 14 +-
drivers/net/wireless/ti/wlcore/debugfs.c | 52 +-
drivers/net/wireless/ti/wlcore/main.c | 241 +-
drivers/net/wireless/ti/wlcore/scan.c | 6 +-
drivers/net/wireless/ti/wlcore/sdio.c | 3 +-
drivers/net/wireless/ti/wlcore/sysfs.c | 6 +-
drivers/net/wireless/ti/wlcore/testmode.c | 12 +-
drivers/net/wireless/ti/wlcore/tx.c | 6 +-
drivers/net/wireless/ti/wlcore/vendor_cmd.c | 18 +-
drivers/net/wwan/Kconfig | 14 +
drivers/net/wwan/Makefile | 1 +
drivers/net/wwan/iosm/iosm_ipc_coredump.h | 5 +-
drivers/net/wwan/iosm/iosm_ipc_protocol_ops.c | 10 -
drivers/net/wwan/t7xx/Makefile | 20 +
drivers/net/wwan/t7xx/t7xx_cldma.c | 281 +
drivers/net/wwan/t7xx/t7xx_cldma.h | 180 +
drivers/net/wwan/t7xx/t7xx_dpmaif.c | 1281 +
drivers/net/wwan/t7xx/t7xx_dpmaif.h | 179 +
drivers/net/wwan/t7xx/t7xx_hif_cldma.c | 1339 +
drivers/net/wwan/t7xx/t7xx_hif_cldma.h | 127 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif.c | 574 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif.h | 206 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c | 1243 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.h | 116 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c | 683 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.h | 78 +
drivers/net/wwan/t7xx/t7xx_mhccif.c | 122 +
drivers/net/wwan/t7xx/t7xx_mhccif.h | 37 +
drivers/net/wwan/t7xx/t7xx_modem_ops.c | 727 +
drivers/net/wwan/t7xx/t7xx_modem_ops.h | 88 +
drivers/net/wwan/t7xx/t7xx_netdev.c | 423 +
drivers/net/wwan/t7xx/t7xx_netdev.h | 55 +
drivers/net/wwan/t7xx/t7xx_pci.c | 761 +
drivers/net/wwan/t7xx/t7xx_pci.h | 120 +
drivers/net/wwan/t7xx/t7xx_pcie_mac.c | 262 +
drivers/net/wwan/t7xx/t7xx_pcie_mac.h | 31 +
drivers/net/wwan/t7xx/t7xx_port.h | 135 +
drivers/net/wwan/t7xx/t7xx_port_ctrl_msg.c | 273 +
drivers/net/wwan/t7xx/t7xx_port_proxy.c | 509 +
drivers/net/wwan/t7xx/t7xx_port_proxy.h | 98 +
drivers/net/wwan/t7xx/t7xx_port_wwan.c | 176 +
drivers/net/wwan/t7xx/t7xx_reg.h | 350 +
drivers/net/wwan/t7xx/t7xx_state_monitor.c | 550 +
drivers/net/wwan/t7xx/t7xx_state_monitor.h | 135 +
drivers/net/wwan/wwan_hwsim.c | 22 +-
drivers/net/xen-netback/interface.c | 3 +-
drivers/net/xen-netback/netback.c | 2 +-
drivers/net/xen-netfront.c | 92 +-
drivers/nfc/nfcmrvl/main.c | 2 +-
drivers/nfc/nfcmrvl/usb.c | 16 +-
drivers/nfc/pn533/pn533.c | 5 +-
drivers/nfc/st21nfca/se.c | 70 +-
drivers/nfc/st21nfca/st21nfca.h | 1 +
drivers/nvdimm/btt_devs.c | 23 +-
drivers/nvdimm/bus.c | 38 +-
drivers/nvdimm/core.c | 19 +-
drivers/nvdimm/dax_devs.c | 4 +-
drivers/nvdimm/dimm_devs.c | 12 +-
drivers/nvdimm/namespace_devs.c | 46 +-
drivers/nvdimm/nd-core.h | 68 +-
drivers/nvdimm/pfn_devs.c | 31 +-
drivers/nvdimm/pmem.c | 205 +-
drivers/nvdimm/pmem.h | 5 +-
drivers/nvdimm/region.c | 2 +-
drivers/nvdimm/region_devs.c | 20 +-
drivers/nvdimm/security.c | 5 -
drivers/nvme/host/Kconfig | 13 +
drivers/nvme/host/Makefile | 3 +
drivers/nvme/host/apple.c | 1593 +
drivers/nvme/host/constants.c | 5 +-
drivers/nvme/host/core.c | 124 +-
drivers/nvme/host/fabrics.h | 8 +
drivers/nvme/host/fc.c | 44 +-
drivers/nvme/host/ioctl.c | 279 +-
drivers/nvme/host/multipath.c | 1 +
drivers/nvme/host/nvme.h | 6 +
drivers/nvme/host/pci.c | 17 +-
drivers/nvme/host/rdma.c | 9 +-
drivers/nvme/host/tcp.c | 5 +-
drivers/nvme/target/io-cmd-bdev.c | 2 +-
drivers/nvme/target/passthru.c | 5 +-
drivers/nvme/target/rdma.c | 4 +-
drivers/nvme/target/zns.c | 3 +-
drivers/nvmem/Kconfig | 13 +
drivers/nvmem/Makefile | 2 +
drivers/nvmem/apple-efuses.c | 80 +
drivers/nvmem/bcm-ocotp.c | 2 +-
drivers/nvmem/brcm_nvram.c | 2 +
drivers/nvmem/core.c | 1 +
drivers/nvmem/layerscape-sfp.c | 36 +-
drivers/nvmem/qfprom.c | 3 +-
drivers/nvmem/sunplus-ocotp.c | 4 +-
drivers/of/fdt.c | 36 +-
drivers/of/irq.c | 15 +-
drivers/of/kexec.c | 9 +
drivers/of/overlay.c | 339 +-
drivers/of/platform.c | 15 +-
drivers/of/property.c | 39 +-
drivers/of/unittest-data/Makefile | 10 +
drivers/of/unittest-data/overlay_16.dts | 15 +
drivers/of/unittest-data/overlay_17.dts | 15 +
drivers/of/unittest-data/overlay_18.dts | 15 +
drivers/of/unittest-data/overlay_19.dts | 15 +
drivers/of/unittest-data/overlay_20.dts | 15 +
drivers/of/unittest.c | 201 +
drivers/opp/core.c | 339 +-
drivers/opp/debugfs.c | 10 +-
drivers/opp/of.c | 8 +-
drivers/pci/controller/cadence/pci-j721e.c | 3 +
drivers/pci/controller/cadence/pcie-cadence-ep.c | 21 +-
drivers/pci/controller/cadence/pcie-cadence-host.c | 10 +
drivers/pci/controller/cadence/pcie-cadence.h | 7 +
drivers/pci/controller/dwc/pci-imx6.c | 23 +-
drivers/pci/controller/dwc/pcie-designware-host.c | 3 +-
drivers/pci/controller/dwc/pcie-dw-rockchip.c | 119 +-
drivers/pci/controller/dwc/pcie-qcom-ep.c | 91 +-
drivers/pci/controller/dwc/pcie-qcom.c | 30 +-
drivers/pci/controller/dwc/pcie-tegra194.c | 9 -
drivers/pci/controller/pci-aardvark.c | 48 +-
drivers/pci/controller/pci-hyperv.c | 243 +-
drivers/pci/controller/pci-mvebu.c | 97 +-
drivers/pci/controller/pci-versatile.c | 3 +-
drivers/pci/controller/pcie-brcmstb.c | 257 +-
drivers/pci/controller/pcie-mediatek-gen3.c | 8 +
drivers/pci/controller/pcie-mediatek.c | 1 +
drivers/pci/controller/pcie-microchip-host.c | 18 +-
drivers/pci/controller/pcie-rockchip-ep.c | 3 +-
drivers/pci/controller/vmd.c | 7 +-
drivers/pci/hotplug/pnv_php.c | 1 +
drivers/pci/hotplug/rpadlpar_core.c | 1 +
drivers/pci/hotplug/rpaphp_core.c | 2 +
drivers/pci/hotplug/rpaphp_pci.c | 1 +
drivers/pci/hotplug/rpaphp_slot.c | 1 +
drivers/pci/of.c | 78 +-
drivers/pci/p2pdma.c | 25 +-
drivers/pci/pci-acpi.c | 44 +-
drivers/pci/pci-driver.c | 63 +-
drivers/pci/pci-stub.c | 1 +
drivers/pci/pci-sysfs.c | 28 +-
drivers/pci/pci.c | 365 +-
drivers/pci/pci.h | 15 +
drivers/pci/pcie/aer.c | 7 +-
drivers/pci/pcie/portdrv_pci.c | 2 +
drivers/pci/quirks.c | 47 +
drivers/pci/xen-pcifront.c | 19 +-
drivers/pcmcia/Kconfig | 5 +-
drivers/pcmcia/Makefile | 13 -
drivers/pcmcia/bcm63xx_pcmcia.c | 9 +-
drivers/pcmcia/omap_cf.c | 48 +-
drivers/pcmcia/pxa2xx_base.c | 48 +-
drivers/pcmcia/pxa2xx_sharpsl.c | 3 +-
drivers/pcmcia/rsrc_nonstatic.c | 2 +-
drivers/pcmcia/sa1111_generic.c | 1 -
drivers/pcmcia/sa1111_lubbock.c | 1 -
drivers/pcmcia/soc_common.c | 19 +-
drivers/pcmcia/soc_common.h | 120 +-
drivers/perf/arm-cmn.c | 609 +-
drivers/perf/arm_pmu_acpi.c | 4 +-
drivers/perf/arm_spe_pmu.c | 3 +
drivers/perf/hisilicon/Makefile | 2 +-
drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c | 409 +
drivers/perf/hisilicon/hisi_uncore_pa_pmu.c | 18 +-
drivers/perf/hisilicon/hisi_uncore_pmu.c | 4 +
drivers/perf/hisilicon/hisi_uncore_pmu.h | 1 +
drivers/perf/marvell_cn10k_tad_pmu.c | 6 +-
drivers/perf/riscv_pmu_sbi.c | 8 +-
drivers/phy/Kconfig | 1 +
drivers/phy/allwinner/phy-sun6i-mipi-dphy.c | 166 +-
drivers/phy/cadence/phy-cadence-sierra.c | 193 +-
drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c | 276 +-
drivers/phy/freescale/phy-fsl-imx8m-pcie.c | 10 +-
drivers/phy/mediatek/phy-mtk-hdmi.c | 50 +-
drivers/phy/mediatek/phy-mtk-mipi-dsi.c | 29 +-
drivers/phy/phy-can-transceiver.c | 24 +-
drivers/phy/phy-core.c | 44 +-
drivers/phy/qualcomm/phy-qcom-qmp.c | 124 +-
drivers/phy/rockchip/phy-rockchip-dphy-rx0.c | 7 +-
drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 129 +-
drivers/phy/rockchip/phy-rockchip-typec.c | 6 +-
drivers/pinctrl/aspeed/pinctrl-aspeed-g6.c | 17 +-
drivers/pinctrl/bcm/pinctrl-bcm2835.c | 18 +
drivers/pinctrl/berlin/berlin-bg4ct.c | 3 +-
drivers/pinctrl/freescale/Kconfig | 7 +
drivers/pinctrl/freescale/Makefile | 1 +
drivers/pinctrl/freescale/pinctrl-imxrt1170.c | 349 +
drivers/pinctrl/intel/pinctrl-baytrail.c | 42 +-
drivers/pinctrl/intel/pinctrl-broxton.c | 1 +
drivers/pinctrl/intel/pinctrl-cherryview.c | 66 +-
drivers/pinctrl/intel/pinctrl-intel.c | 45 +-
drivers/pinctrl/intel/pinctrl-intel.h | 2 -
drivers/pinctrl/intel/pinctrl-lynxpoint.c | 26 +-
drivers/pinctrl/mediatek/Kconfig | 8 +
drivers/pinctrl/mediatek/Makefile | 1 +
drivers/pinctrl/mediatek/pinctrl-mt6795.c | 623 +
drivers/pinctrl/mediatek/pinctrl-mt8365.c | 2 +-
drivers/pinctrl/mediatek/pinctrl-mtk-mt6795.h | 1698 +
drivers/pinctrl/meson/Kconfig | 2 +-
drivers/pinctrl/meson/pinctrl-meson-s4.c | 3 +-
drivers/pinctrl/meson/pinctrl-meson.c | 52 +-
drivers/pinctrl/meson/pinctrl-meson.h | 28 +-
drivers/pinctrl/mvebu/Kconfig | 4 +
drivers/pinctrl/mvebu/Makefile | 1 +
drivers/pinctrl/mvebu/pinctrl-ac5.c | 261 +
drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 36 +-
drivers/pinctrl/nomadik/pinctrl-nomadik-db8500.c | 7 +-
drivers/pinctrl/nomadik/pinctrl-nomadik.c | 2 +-
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c | 150 +-
drivers/pinctrl/pinctrl-amd.c | 11 +-
drivers/pinctrl/pinctrl-apple-gpio.c | 31 +-
drivers/pinctrl/pinctrl-equilibrium.c | 11 +-
drivers/pinctrl/pinctrl-equilibrium.h | 10 +-
drivers/pinctrl/pinctrl-ingenic.c | 118 +-
drivers/pinctrl/pinctrl-max77620.c | 1 -
drivers/pinctrl/pinctrl-microchip-sgpio.c | 16 +-
drivers/pinctrl/pinctrl-ocelot.c | 26 +-
drivers/pinctrl/pinctrl-rockchip.c | 532 +-
drivers/pinctrl/pinctrl-rockchip.h | 177 +-
drivers/pinctrl/pinctrl-starfive.c | 11 +-
drivers/pinctrl/pinctrl-thunderbay.c | 7 +-
drivers/pinctrl/qcom/Kconfig | 19 +
drivers/pinctrl/qcom/Makefile | 2 +
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 309 +-
drivers/pinctrl/qcom/pinctrl-lpass-lpi.h | 86 +
drivers/pinctrl/qcom/pinctrl-msm.c | 53 +-
drivers/pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c | 167 +
drivers/pinctrl/qcom/pinctrl-sm8150.c | 22 +
drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c | 163 +
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 2 +
drivers/pinctrl/ralink/Kconfig | 28 +-
drivers/pinctrl/ralink/Makefile | 4 +-
drivers/pinctrl/ralink/pinctrl-mt7620.c | 302 +-
drivers/pinctrl/ralink/pinctrl-mt7621.c | 76 +-
drivers/pinctrl/ralink/pinctrl-ralink.c | 349 +
.../pinctrl/ralink/{pinmux.h => pinctrl-ralink.h} | 16 +-
drivers/pinctrl/ralink/pinctrl-rt2880.c | 381 +-
drivers/pinctrl/ralink/pinctrl-rt288x.c | 60 -
drivers/pinctrl/ralink/pinctrl-rt305x.c | 66 +-
drivers/pinctrl/ralink/pinctrl-rt3883.c | 50 +-
drivers/pinctrl/renesas/Kconfig | 7 +-
drivers/pinctrl/renesas/core.c | 117 +-
drivers/pinctrl/renesas/gpio.c | 1 -
drivers/pinctrl/renesas/pfc-emev2.c | 60 +-
drivers/pinctrl/renesas/pfc-r8a73a4.c | 58 +-
drivers/pinctrl/renesas/pfc-r8a7740.c | 74 +-
drivers/pinctrl/renesas/pfc-r8a77470.c | 176 +-
drivers/pinctrl/renesas/pfc-r8a7778.c | 98 +-
drivers/pinctrl/renesas/pfc-r8a7779.c | 82 +-
drivers/pinctrl/renesas/pfc-r8a7790.c | 110 +-
drivers/pinctrl/renesas/pfc-r8a7791.c | 111 +-
drivers/pinctrl/renesas/pfc-r8a7792.c | 231 +-
drivers/pinctrl/renesas/pfc-r8a7794.c | 97 +-
drivers/pinctrl/renesas/pfc-r8a77950.c | 170 +-
drivers/pinctrl/renesas/pfc-r8a77951.c | 169 +-
drivers/pinctrl/renesas/pfc-r8a7796.c | 166 +-
drivers/pinctrl/renesas/pfc-r8a77965.c | 166 +-
drivers/pinctrl/renesas/pfc-r8a77970.c | 136 +-
drivers/pinctrl/renesas/pfc-r8a77980.c | 107 +-
drivers/pinctrl/renesas/pfc-r8a77990.c | 252 +-
drivers/pinctrl/renesas/pfc-r8a77995.c | 229 +-
drivers/pinctrl/renesas/pfc-r8a779a0.c | 246 +-
drivers/pinctrl/renesas/pfc-r8a779f0.c | 121 +-
drivers/pinctrl/renesas/pfc-sh7203.c | 53 +-
drivers/pinctrl/renesas/pfc-sh7264.c | 104 +-
drivers/pinctrl/renesas/pfc-sh7269.c | 82 +-
drivers/pinctrl/renesas/pfc-sh73a0.c | 87 +-
drivers/pinctrl/renesas/pfc-sh7720.c | 57 +-
drivers/pinctrl/renesas/pfc-sh7722.c | 203 +-
drivers/pinctrl/renesas/pfc-sh7723.c | 71 +-
drivers/pinctrl/renesas/pfc-sh7724.c | 8 +-
drivers/pinctrl/renesas/pfc-sh7734.c | 116 +-
drivers/pinctrl/renesas/pfc-sh7757.c | 96 +-
drivers/pinctrl/renesas/pfc-sh7785.c | 61 +-
drivers/pinctrl/renesas/pfc-sh7786.c | 22 +-
drivers/pinctrl/renesas/pfc-shx3.c | 1 -
drivers/pinctrl/renesas/pinctrl-rza1.c | 47 +-
drivers/pinctrl/renesas/pinctrl-rzg2l.c | 200 +-
drivers/pinctrl/renesas/pinctrl-rzn1.c | 10 +-
drivers/pinctrl/renesas/pinctrl.c | 1 -
drivers/pinctrl/renesas/sh_pfc.h | 24 +-
drivers/pinctrl/samsung/pinctrl-exynos.c | 8 +-
drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 2 +-
drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 4 +-
drivers/pinctrl/samsung/pinctrl-samsung.c | 30 +-
drivers/pinctrl/samsung/pinctrl-samsung.h | 2 +-
drivers/pinctrl/stm32/pinctrl-stm32.c | 274 +-
drivers/pinctrl/stm32/pinctrl-stm32.h | 15 +-
drivers/pinctrl/stm32/pinctrl-stm32mp135.c | 3 +-
drivers/pinctrl/stm32/pinctrl-stm32mp157.c | 2 +-
drivers/pinctrl/sunxi/pinctrl-suniv-f1c100s.c | 4 +-
drivers/pinctrl/tegra/pinctrl-tegra194.c | 9 -
drivers/platform/chrome/Kconfig | 11 +
drivers/platform/chrome/Makefile | 1 +
drivers/platform/chrome/chromeos_acpi.c | 257 +
drivers/platform/chrome/cros_ec.c | 36 +-
drivers/platform/chrome/cros_ec_chardev.c | 2 +-
drivers/platform/chrome/cros_ec_i2c.c | 12 +-
drivers/platform/chrome/cros_ec_ishtp.c | 4 +-
drivers/platform/chrome/cros_ec_lpc.c | 49 +-
drivers/platform/chrome/cros_ec_proto.c | 63 +-
drivers/platform/chrome/cros_ec_rpmsg.c | 2 +
drivers/platform/chrome/cros_ec_spi.c | 15 +-
drivers/platform/chrome/cros_ec_typec.c | 3 +
drivers/platform/mellanox/Kconfig | 17 +
drivers/platform/mellanox/Makefile | 1 +
drivers/platform/mellanox/nvsw-sn2201.c | 1261 +
drivers/platform/mips/Kconfig | 2 +-
drivers/platform/mips/cpu_hwmon.c | 127 +-
drivers/platform/surface/aggregator/core.c | 2 +-
drivers/platform/surface/surface_gpe.c | 8 +
drivers/platform/x86/Kconfig | 8 +
drivers/platform/x86/Makefile | 3 +
drivers/platform/x86/amd-pmc.c | 147 +-
drivers/platform/x86/asus-nb-wmi.c | 1 +
drivers/platform/x86/asus-wmi.c | 4 +-
drivers/platform/x86/barco-p50-gpio.c | 5 +-
drivers/platform/x86/dell/dcdbas.c | 127 +-
drivers/platform/x86/dell/dcdbas.h | 9 +
drivers/platform/x86/dell/dell-smbios-smm.c | 14 +-
drivers/platform/x86/gigabyte-wmi.c | 4 +
drivers/platform/x86/hp-wmi.c | 37 +-
drivers/platform/x86/intel/Kconfig | 1 +
drivers/platform/x86/intel/Makefile | 1 +
drivers/platform/x86/intel/chtwc_int33fe.c | 2 +
drivers/platform/x86/intel/hid.c | 8 +-
drivers/platform/x86/intel/ifs/Kconfig | 13 +
drivers/platform/x86/intel/ifs/Makefile | 3 +
drivers/platform/x86/intel/ifs/core.c | 73 +
drivers/platform/x86/intel/ifs/ifs.h | 234 +
drivers/platform/x86/intel/ifs/load.c | 266 +
drivers/platform/x86/intel/ifs/runtest.c | 252 +
drivers/platform/x86/intel/ifs/sysfs.c | 149 +
drivers/platform/x86/intel/pmc/core.c | 3 +-
drivers/platform/x86/intel/pmt/crashlog.c | 2 +-
drivers/platform/x86/intel/pmt/telemetry.c | 2 +-
drivers/platform/x86/pmc_atom.c | 13 -
drivers/platform/x86/samsung-laptop.c | 2 +-
drivers/platform/x86/thinkpad_acpi.c | 175 +-
drivers/platform/x86/toshiba_acpi.c | 2 +-
drivers/platform/x86/winmate-fm07-keys.c | 189 +
drivers/platform/x86/wmi.c | 13 +-
drivers/power/supply/ab8500_fg.c | 19 +-
drivers/power/supply/axp288_charger.c | 17 +-
drivers/power/supply/axp288_fuel_gauge.c | 41 +-
drivers/power/supply/bq24190_charger.c | 63 +-
drivers/power/supply/bq27xxx_battery.c | 60 +-
drivers/power/supply/charger-manager.c | 7 +-
drivers/power/supply/max8997_charger.c | 8 +-
drivers/power/supply/power_supply_core.c | 2 +-
drivers/power/supply/tosa_battery.c | 172 +-
drivers/powercap/dtpm_cpu.c | 2 +-
drivers/powercap/intel_rapl_common.c | 4 +-
drivers/powercap/intel_rapl_msr.c | 1 +
drivers/ptp/ptp_clock.c | 31 +-
drivers/ptp/ptp_clockmatrix.c | 321 +-
drivers/ptp/ptp_clockmatrix.h | 7 +-
drivers/ptp/ptp_ocp.c | 623 +-
drivers/ptp/ptp_private.h | 11 +
drivers/ptp/ptp_sysfs.c | 11 +-
drivers/ptp/ptp_vclock.c | 82 +-
drivers/pwm/Kconfig | 25 +
drivers/pwm/Makefile | 2 +
drivers/pwm/pwm-atmel-tcb.c | 14 +-
drivers/pwm/pwm-clps711x.c | 68 +-
drivers/pwm/pwm-cros-ec.c | 82 +-
drivers/pwm/pwm-lp3943.c | 42 +-
drivers/pwm/pwm-lpc18xx-sct.c | 43 +-
drivers/pwm/pwm-lpc32xx.c | 29 +-
drivers/pwm/pwm-mediatek.c | 36 +-
drivers/pwm/pwm-raspberrypi-poe.c | 2 +-
drivers/pwm/pwm-renesas-tpu.c | 317 +-
drivers/pwm/pwm-samsung.c | 54 +-
drivers/pwm/pwm-sifive.c | 5 +-
drivers/pwm/pwm-sti.c | 29 +-
drivers/pwm/pwm-stmpe.c | 29 +-
drivers/pwm/pwm-sun4i.c | 18 +-
drivers/pwm/pwm-sunplus.c | 232 +
drivers/pwm/pwm-tegra.c | 40 +-
drivers/pwm/pwm-twl-led.c | 76 +-
drivers/pwm/pwm-xilinx.c | 321 +
drivers/rapidio/devices/rio_mport_cdev.c | 4 +-
drivers/regulator/Kconfig | 17 +
drivers/regulator/Makefile | 2 +
drivers/regulator/core.c | 93 +-
drivers/regulator/da9121-regulator.c | 2 +
drivers/regulator/fixed.c | 5 +-
drivers/regulator/mt6358-regulator.c | 213 +-
drivers/regulator/pca9450-regulator.c | 27 +-
drivers/regulator/pfuze100-regulator.c | 44 +-
drivers/regulator/qcom_smd-regulator.c | 35 +-
drivers/regulator/rpi-panel-attiny-regulator.c | 1 -
drivers/regulator/rt4801-regulator.c | 49 +-
drivers/regulator/rt5759-regulator.c | 369 +
drivers/regulator/scmi-regulator.c | 2 +-
drivers/regulator/sm5703-regulator.c | 167 +
drivers/regulator/stm32-vrefbuf.c | 30 +-
drivers/remoteproc/imx_dsp_rproc.c | 105 +-
drivers/remoteproc/imx_rproc.c | 36 +
drivers/remoteproc/mtk_common.h | 2 +
drivers/remoteproc/mtk_scp.c | 76 +-
drivers/remoteproc/qcom_q6v5_pas.c | 34 +
drivers/remoteproc/remoteproc_cdev.c | 11 -
drivers/remoteproc/remoteproc_core.c | 15 +-
drivers/remoteproc/remoteproc_debugfs.c | 17 +-
drivers/remoteproc/remoteproc_elf_loader.c | 2 +-
drivers/remoteproc/remoteproc_sysfs.c | 11 -
drivers/reset/Kconfig | 4 +-
drivers/reset/core.c | 15 +-
drivers/reset/reset-meson.c | 6 +
drivers/reset/reset-simple.c | 1 +
drivers/reset/reset-uniphier-glue.c | 75 +-
drivers/rpmsg/qcom_smd.c | 4 +-
drivers/rpmsg/rpmsg_core.c | 42 +-
drivers/rpmsg/rpmsg_internal.h | 5 +-
drivers/rpmsg/rpmsg_ns.c | 4 +-
drivers/rpmsg/virtio_rpmsg_bus.c | 9 +-
drivers/rtc/Kconfig | 7 +
drivers/rtc/Makefile | 1 +
drivers/rtc/rtc-ftrtc010.c | 34 +-
drivers/rtc/rtc-gamecube.c | 1 +
drivers/rtc/rtc-goldfish.c | 44 +-
drivers/rtc/rtc-meson.c | 2 +-
drivers/rtc/rtc-mt6397.c | 2 +
drivers/rtc/rtc-mxc.c | 2 +-
drivers/rtc/rtc-pcf85063.c | 2 +
drivers/rtc/rtc-pxa.c | 2 -
drivers/rtc/rtc-rx8025.c | 7 +-
drivers/rtc/rtc-rzn1.c | 418 +
drivers/rtc/rtc-sun6i.c | 59 +
drivers/s390/block/dasd.c | 18 +-
drivers/s390/block/dasd_eckd.c | 33 +-
drivers/s390/block/dasd_fba.c | 2 -
drivers/s390/block/dasd_int.h | 14 +
drivers/s390/block/dcssblk.c | 9 +-
drivers/s390/char/Kconfig | 11 +
drivers/s390/char/Makefile | 1 +
drivers/s390/char/con3215.c | 25 +-
drivers/s390/char/con3270.c | 31 +-
drivers/s390/char/raw3270.c | 15 +
drivers/s390/char/raw3270.h | 1 +
drivers/s390/char/sclp_con.c | 26 +-
drivers/s390/char/sclp_early.c | 4 +-
drivers/s390/char/sclp_vt220.c | 42 +-
drivers/s390/char/uvdevice.c | 257 +
drivers/s390/cio/chsc.c | 4 +-
drivers/s390/cio/cio.h | 6 +-
drivers/s390/cio/css.c | 28 +-
drivers/s390/cio/vfio_ccw_cp.c | 47 +-
drivers/s390/cio/vfio_ccw_cp.h | 4 +-
drivers/s390/cio/vfio_ccw_fsm.c | 3 +-
drivers/s390/cio/vfio_ccw_ops.c | 14 +-
drivers/s390/crypto/ap_bus.c | 96 +-
drivers/s390/crypto/ap_bus.h | 1 +
drivers/s390/crypto/ap_queue.c | 7 +-
drivers/s390/crypto/pkey_api.c | 149 +-
drivers/s390/crypto/vfio_ap_drv.c | 2 -
drivers/s390/crypto/vfio_ap_ops.c | 59 +-
drivers/s390/crypto/vfio_ap_private.h | 3 -
drivers/s390/crypto/zcrypt_api.c | 215 +-
drivers/s390/crypto/zcrypt_api.h | 4 +-
drivers/s390/crypto/zcrypt_card.c | 2 +-
drivers/s390/crypto/zcrypt_cca_key.h | 58 +-
drivers/s390/crypto/zcrypt_ccamisc.c | 272 +-
drivers/s390/crypto/zcrypt_ccamisc.h | 6 +
drivers/s390/crypto/zcrypt_cex2a.c | 11 +-
drivers/s390/crypto/zcrypt_cex2c.c | 10 +-
drivers/s390/crypto/zcrypt_cex4.c | 44 +-
drivers/s390/crypto/zcrypt_ep11misc.c | 168 +-
drivers/s390/crypto/zcrypt_ep11misc.h | 2 +-
drivers/s390/crypto/zcrypt_error.h | 3 +-
drivers/s390/crypto/zcrypt_msgtype50.c | 31 +-
drivers/s390/crypto/zcrypt_msgtype6.c | 340 +-
drivers/s390/crypto/zcrypt_msgtype6.h | 26 +-
drivers/s390/crypto/zcrypt_queue.c | 2 +-
drivers/s390/net/ctcm_mpc.c | 6 +-
drivers/s390/net/ctcm_sysfs.c | 5 +-
drivers/s390/net/lcs.c | 7 +-
drivers/s390/net/qeth_core.h | 2 -
drivers/s390/net/qeth_core_main.c | 3 +-
drivers/s390/net/qeth_l2_main.c | 4 +-
drivers/s390/net/qeth_l3_main.c | 4 +-
drivers/s390/virtio/virtio_ccw.c | 34 +
drivers/scsi/Kconfig | 1 -
drivers/scsi/Makefile | 1 -
drivers/scsi/aacraid/aacraid.h | 2 +-
drivers/scsi/aha1542.c | 20 +-
drivers/scsi/bfa/bfad_debugfs.c | 3 +-
drivers/scsi/bfa/bfad_im.c | 1 -
drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 22 +-
drivers/scsi/bnx2fc/bnx2fc_io.c | 17 +-
drivers/scsi/dc395x.c | 15 +-
drivers/scsi/device_handler/scsi_dh_alua.c | 3 +-
drivers/scsi/dpt_i2o.c | 1 -
drivers/scsi/elx/efct/efct_hw.c | 1 -
drivers/scsi/elx/efct/efct_io.c | 1 -
drivers/scsi/elx/efct/efct_lio.c | 3 -
drivers/scsi/esas2r/esas2r_flash.c | 2 +-
drivers/scsi/fcoe/fcoe.c | 46 +-
drivers/scsi/fcoe/fcoe_ctlr.c | 28 +-
drivers/scsi/fcoe/fcoe_transport.c | 6 +-
drivers/scsi/fnic/fnic.h | 2 +-
drivers/scsi/fnic/fnic_debugfs.c | 3 +-
drivers/scsi/fnic/fnic_main.c | 10 +-
drivers/scsi/hisi_sas/hisi_sas_main.c | 68 +-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 10 +-
drivers/scsi/hosts.c | 8 +-
drivers/scsi/ipr.c | 17 +-
drivers/scsi/isci/request.c | 2 +-
drivers/scsi/libfc/fc_exch.c | 3 +-
drivers/scsi/libfc/fc_fcp.c | 29 +-
drivers/scsi/libfc/fc_lport.c | 30 +-
drivers/scsi/libsas/sas_ata.c | 41 +-
drivers/scsi/lpfc/Makefile | 2 +-
drivers/scsi/lpfc/lpfc.h | 10 +-
drivers/scsi/lpfc/lpfc_attr.c | 55 +-
drivers/scsi/lpfc/lpfc_bsg.c | 81 +-
drivers/scsi/lpfc/lpfc_crtn.h | 12 +-
drivers/scsi/lpfc/lpfc_ct.c | 368 +-
drivers/scsi/lpfc/lpfc_els.c | 732 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 164 +-
drivers/scsi/lpfc/lpfc_hw.h | 97 +-
drivers/scsi/lpfc/lpfc_hw4.h | 20 +-
drivers/scsi/lpfc/lpfc_ids.h | 30 +
drivers/scsi/lpfc/lpfc_init.c | 365 +-
drivers/scsi/lpfc/lpfc_logmsg.h | 8 +-
drivers/scsi/lpfc/lpfc_mbox.c | 203 +-
drivers/scsi/lpfc/lpfc_nportdisc.c | 82 +-
drivers/scsi/lpfc/lpfc_nvme.c | 141 +-
drivers/scsi/lpfc/lpfc_nvmet.c | 73 +-
drivers/scsi/lpfc/lpfc_scsi.c | 327 +-
drivers/scsi/lpfc/lpfc_sli.c | 301 +-
drivers/scsi/lpfc/lpfc_sli.h | 34 +-
drivers/scsi/lpfc/lpfc_sli4.h | 3 +
drivers/scsi/lpfc/lpfc_version.h | 2 +-
drivers/scsi/lpfc/lpfc_vmid.c | 288 +
drivers/scsi/lpfc/lpfc_vport.c | 31 +-
drivers/scsi/mac53c94.c | 2 +-
drivers/scsi/megaraid.c | 2 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 2 -
drivers/scsi/megaraid/megaraid_sas_fusion.c | 2 -
drivers/scsi/mpi3mr/Kconfig | 1 +
drivers/scsi/mpi3mr/Makefile | 1 +
drivers/scsi/mpi3mr/mpi/mpi30_init.h | 53 -
drivers/scsi/mpi3mr/mpi/mpi30_ioc.h | 27 -
drivers/scsi/mpi3mr/mpi/mpi30_pci.h | 31 +-
drivers/scsi/mpi3mr/mpi3mr.h | 137 +-
drivers/scsi/mpi3mr/mpi3mr_app.c | 1860 +
drivers/scsi/mpi3mr/mpi3mr_debug.h | 37 +-
drivers/scsi/mpi3mr/mpi3mr_fw.c | 335 +-
drivers/scsi/mpi3mr/mpi3mr_os.c | 71 +-
drivers/scsi/mpt3sas/mpt3sas_base.c | 57 +-
drivers/scsi/mpt3sas/mpt3sas_base.h | 6 +-
drivers/scsi/mpt3sas/mpt3sas_ctl.c | 11 +-
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 24 +-
drivers/scsi/myrb.c | 11 +-
drivers/scsi/pmcraid.c | 6 +-
drivers/scsi/qedf/qedf_attr.c | 2 -
drivers/scsi/qedf/qedf_io.c | 5 +-
drivers/scsi/qedf/qedf_main.c | 13 +-
drivers/scsi/qla1280.c | 3 +-
drivers/scsi/qla2xxx/qla_edif.c | 3 +-
drivers/scsi/qla2xxx/qla_mid.c | 2 -
drivers/scsi/qla2xxx/qla_os.c | 1 -
drivers/scsi/qla2xxx/qla_target.c | 12 +-
drivers/scsi/qla2xxx/qla_target.h | 1 -
drivers/scsi/qla4xxx/ql4_os.c | 1 -
drivers/scsi/scsi.c | 116 +-
drivers/scsi/scsi_debug.c | 149 +-
drivers/scsi/scsi_error.c | 5 +-
drivers/scsi/scsi_lib.c | 4 +-
drivers/scsi/scsi_scan.c | 12 +-
drivers/scsi/scsi_sysfs.c | 29 +-
drivers/scsi/scsicam.c | 11 +-
drivers/scsi/sd.c | 202 +-
drivers/scsi/sd.h | 37 +-
drivers/scsi/sd_dif.c | 8 +-
drivers/scsi/sd_zbc.c | 262 +-
drivers/scsi/sg.c | 3 +-
drivers/scsi/smartpqi/smartpqi.h | 2 +-
drivers/scsi/sr.c | 14 +-
drivers/scsi/st.c | 3 +-
drivers/scsi/storvsc_drv.c | 193 +-
drivers/scsi/ufs/Kconfig | 211 -
drivers/scsi/vmw_pvscsi.c | 1 -
drivers/scsi/vmw_pvscsi.h | 4 +-
drivers/scsi/xen-scsifront.c | 199 +-
drivers/slimbus/qcom-ctrl.c | 6 +-
drivers/slimbus/qcom-ngd-ctrl.c | 23 +-
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 5 +-
drivers/soc/apple/Kconfig | 24 +
drivers/soc/apple/Makefile | 6 +
drivers/soc/apple/rtkit-crashlog.c | 154 +
drivers/soc/apple/rtkit-internal.h | 62 +
drivers/soc/apple/rtkit.c | 958 +
drivers/soc/apple/sart.c | 328 +
drivers/soc/bcm/bcm63xx/bcm-pmb.c | 3 +
drivers/soc/imx/Makefile | 1 +
drivers/soc/imx/gpcv2.c | 430 +-
drivers/soc/imx/imx8m-blk-ctrl.c | 124 +-
drivers/soc/imx/imx8mp-blk-ctrl.c | 696 +
drivers/soc/ixp4xx/ixp4xx-qmgr.c | 2 +-
drivers/soc/mediatek/mt8167-mmsys.h | 2 +-
drivers/soc/mediatek/mt8183-mmsys.h | 2 +-
drivers/soc/mediatek/mt8186-mmsys.h | 4 +-
drivers/soc/mediatek/mt8192-mmsys.h | 4 +-
drivers/soc/mediatek/mt8195-mmsys.h | 370 +
drivers/soc/mediatek/mt8365-mmsys.h | 4 +-
drivers/soc/mediatek/mtk-cmdq-helper.c | 25 +-
drivers/soc/mediatek/mtk-mmsys.c | 153 +-
drivers/soc/mediatek/mtk-mmsys.h | 6 +
drivers/soc/mediatek/mtk-mutex.c | 92 +-
{arch/arm/plat-pxa => drivers/soc/pxa}/Kconfig | 5 +-
{arch/arm/plat-pxa => drivers/soc/pxa}/Makefile | 4 -
{arch/arm/plat-pxa => drivers/soc/pxa}/mfp.c | 2 +-
{arch/arm/plat-pxa => drivers/soc/pxa}/ssp.c | 0
drivers/soc/qcom/llcc-qcom.c | 61 +
drivers/soc/qcom/pdr_interface.c | 11 +-
drivers/soc/qcom/pdr_internal.h | 20 +-
drivers/soc/qcom/rpmhpd.c | 73 +-
drivers/soc/qcom/smem.c | 305 +-
drivers/soc/qcom/smp2p.c | 1 +
drivers/soc/qcom/smsm.c | 1 +
drivers/soc/qcom/socinfo.c | 26 +-
drivers/soc/renesas/Kconfig | 26 +
drivers/soc/renesas/Makefile | 1 +
drivers/soc/renesas/r8a779g0-sysc.c | 62 +
drivers/soc/renesas/rcar-gen4-sysc.c | 3 +
drivers/soc/renesas/rcar-gen4-sysc.h | 1 +
drivers/soc/renesas/rcar-rst.c | 1 +
drivers/soc/renesas/renesas-soc.c | 23 +-
drivers/soc/rockchip/Kconfig | 24 +-
drivers/soc/rockchip/grf.c | 19 +
drivers/soc/rockchip/pm_domains.c | 128 +-
drivers/soc/tegra/Kconfig | 1 +
drivers/soc/tegra/fuse/fuse-tegra.c | 8 +-
drivers/soc/tegra/fuse/fuse-tegra30.c | 17 +-
drivers/soc/tegra/pmc.c | 122 +-
drivers/soc/ti/knav_dma.c | 29 +-
drivers/soc/ti/knav_qmss_queue.c | 21 +-
drivers/soc/ti/omap_prm.c | 7 +-
drivers/soc/ti/pm33xx.c | 6 +-
drivers/soc/ti/pruss.c | 3 +-
drivers/soc/ti/ti_sci_pm_domains.c | 2 +
drivers/soc/ti/wkup_m3_ipc.c | 210 +-
drivers/soc/xilinx/xlnx_event_manager.c | 203 +-
drivers/soc/xilinx/zynqmp_power.c | 7 +-
drivers/soundwire/bus.c | 27 +-
drivers/soundwire/cadence_master.c | 42 +-
drivers/soundwire/intel.c | 11 +-
drivers/soundwire/qcom.c | 22 +-
drivers/soundwire/stream.c | 1 +
drivers/spi/Kconfig | 28 +-
drivers/spi/Makefile | 2 +
drivers/spi/atmel-quadspi.c | 6 -
drivers/spi/spi-aspeed-smc.c | 1210 +
drivers/spi/spi-au1550.c | 4 +-
drivers/spi/spi-cadence-quadspi.c | 159 +-
drivers/spi/spi-cadence.c | 11 +-
drivers/spi/spi-clps711x.c | 5 +-
drivers/spi/spi-fsi.c | 12 +-
drivers/spi/spi-fsl-lpspi.c | 2 +-
drivers/spi/spi-fsl-qspi.c | 4 +
drivers/spi/spi-img-spfi.c | 2 +-
drivers/spi/spi-imx.c | 358 +-
drivers/spi/spi-ingenic.c | 47 +-
drivers/spi/spi-intel.c | 51 +-
drivers/spi/spi-mem.c | 13 +-
drivers/spi/spi-mpc52xx-psc.c | 1 +
drivers/spi/spi-mpc52xx.c | 3 +
drivers/spi/spi-mt65xx.c | 702 +-
drivers/spi/spi-mtk-snfi.c | 1472 +
drivers/spi/spi-mxs.c | 3 +-
drivers/spi/spi-omap-uwire.c | 15 +-
drivers/spi/spi-omap2-mcspi.c | 19 +-
drivers/spi/spi-rockchip.c | 8 +
drivers/spi/spi-rspi.c | 15 +-
drivers/spi/spi-sprd.c | 3 +-
drivers/spi/spi-stm32-qspi.c | 41 +-
drivers/spi/spi-stm32.c | 3 +-
drivers/spi/spi-sunplus-sp7021.c | 6 -
drivers/spi/spi-tegra114.c | 9 +-
drivers/spi/spi-tegra20-sflash.c | 6 +-
drivers/spi/spi-tegra20-slink.c | 6 +-
drivers/spi/spi-ti-qspi.c | 8 +-
drivers/spi/spi.c | 54 +-
drivers/spi/spidev.c | 104 +-
drivers/ssb/pci.c | 1 -
drivers/staging/Kconfig | 4 +-
drivers/staging/Makefile | 4 +-
drivers/staging/fieldbus/anybuss/host.c | 2 +-
drivers/staging/greybus/arche-apb-ctrl.c | 2 +-
drivers/staging/greybus/arche-platform.c | 2 +-
drivers/staging/greybus/audio_codec.c | 44 +-
drivers/staging/greybus/pwm.c | 1 -
drivers/staging/greybus/tools/loopback_test.c | 2 +-
drivers/staging/iio/cdc/ad7746.c | 2 +-
drivers/staging/iio/impedance-analyzer/ad5933.c | 1 -
drivers/staging/iio/resolver/ad2s1210.c | 1 -
drivers/staging/ks7010/ks_hostif.c | 19 +-
drivers/staging/ks7010/ks_wlan.h | 2 +-
.../media/atomisp/pci/runtime/rmgr/src/rmgr_vbuf.c | 4 +-
drivers/staging/media/av7110/av7110_av.c | 46 +-
drivers/staging/media/hantro/TODO | 8 +-
drivers/staging/media/hantro/hantro.h | 2 +
drivers/staging/media/hantro/hantro_drv.c | 18 +-
drivers/staging/media/hantro/hantro_g1_h264_dec.c | 38 +-
drivers/staging/media/hantro/hantro_g2_hevc_dec.c | 36 +-
drivers/staging/media/hantro/hantro_g2_regs.h | 6 +
drivers/staging/media/hantro/hantro_h264.c | 134 +-
drivers/staging/media/hantro/hantro_hevc.c | 46 +-
drivers/staging/media/hantro/hantro_hw.h | 21 +-
drivers/staging/media/hantro/hantro_postproc.c | 53 +-
drivers/staging/media/hantro/hantro_v4l2.c | 107 +-
.../media/hantro/rockchip_vpu2_hw_h264_dec.c | 98 +-
drivers/staging/media/hantro/rockchip_vpu_hw.c | 14 +
drivers/staging/media/ipu3/ipu3-css-fw.c | 4 +-
drivers/staging/media/ipu3/ipu3-css-fw.h | 4 +-
drivers/staging/media/ipu3/ipu3-css-params.c | 20 +
drivers/staging/media/ipu3/ipu3-v4l2.c | 1 +
drivers/staging/media/ipu3/ipu3.c | 25 +-
drivers/staging/media/rkvdec/TODO | 4 +-
drivers/staging/media/rkvdec/rkvdec-h264.c | 157 +-
drivers/staging/media/rkvdec/rkvdec.c | 35 +-
drivers/staging/media/rkvdec/rkvdec.h | 2 +
drivers/staging/media/tegra-video/vi.c | 10 +-
drivers/staging/most/dim2/dim2.c | 29 +-
drivers/staging/qlge/qlge.h | 1 +
drivers/staging/r8188eu/core/rtw_ap.c | 3 -
drivers/staging/r8188eu/core/rtw_br_ext.c | 76 +-
drivers/staging/r8188eu/core/rtw_cmd.c | 337 +-
drivers/staging/r8188eu/core/rtw_fw.c | 163 +-
drivers/staging/r8188eu/core/rtw_ieee80211.c | 45 +-
drivers/staging/r8188eu/core/rtw_ioctl_set.c | 4 +-
drivers/staging/r8188eu/core/rtw_iol.c | 4 +-
drivers/staging/r8188eu/core/rtw_led.c | 10 +-
drivers/staging/r8188eu/core/rtw_mlme.c | 321 +-
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 755 +-
drivers/staging/r8188eu/core/rtw_p2p.c | 70 +-
drivers/staging/r8188eu/core/rtw_pwrctrl.c | 109 +-
drivers/staging/r8188eu/core/rtw_recv.c | 319 +-
drivers/staging/r8188eu/core/rtw_security.c | 6 +-
drivers/staging/r8188eu/core/rtw_sta_mgt.c | 4 +-
drivers/staging/r8188eu/core/rtw_wlan_util.c | 135 +-
drivers/staging/r8188eu/core/rtw_xmit.c | 104 +-
drivers/staging/r8188eu/hal/HalHWImg8188E_BB.c | 6 +-
drivers/staging/r8188eu/hal/HalHWImg8188E_MAC.c | 2 +-
drivers/staging/r8188eu/hal/HalHWImg8188E_RF.c | 2 +-
drivers/staging/r8188eu/hal/HalPwrSeqCmd.c | 22 -
drivers/staging/r8188eu/hal/hal_com.c | 4 +-
drivers/staging/r8188eu/hal/odm_HWConfig.c | 8 +-
drivers/staging/r8188eu/hal/rtl8188e_cmd.c | 49 +-
drivers/staging/r8188eu/hal/rtl8188e_hal_init.c | 15 +-
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c | 8 +-
drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c | 7 +-
drivers/staging/r8188eu/hal/rtl8188eu_xmit.c | 8 +-
drivers/staging/r8188eu/hal/usb_halinit.c | 355 +-
drivers/staging/r8188eu/hal/usb_ops_linux.c | 10 +-
drivers/staging/r8188eu/include/HalVerDef.h | 5 +-
drivers/staging/r8188eu/include/basic_types.h | 73 +-
drivers/staging/r8188eu/include/drv_types.h | 7 +-
drivers/staging/r8188eu/include/hal_intf.h | 34 +-
drivers/staging/r8188eu/include/ieee80211.h | 63 -
drivers/staging/r8188eu/include/odm.h | 29 -
drivers/staging/r8188eu/include/osdep_service.h | 47 -
drivers/staging/r8188eu/include/rtl8188e_hal.h | 3 -
drivers/staging/r8188eu/include/rtl8188e_spec.h | 10 +-
drivers/staging/r8188eu/include/rtw_debug.h | 55 -
drivers/staging/r8188eu/include/rtw_eeprom.h | 3 -
drivers/staging/r8188eu/include/rtw_fw.h | 5 +
drivers/staging/r8188eu/include/rtw_ioctl.h | 79 -
drivers/staging/r8188eu/include/rtw_mlme.h | 11 +-
drivers/staging/r8188eu/include/rtw_mlme_ext.h | 62 +-
drivers/staging/r8188eu/include/rtw_pwrctrl.h | 23 +-
drivers/staging/r8188eu/include/rtw_recv.h | 3 -
drivers/staging/r8188eu/include/rtw_xmit.h | 4 +-
drivers/staging/r8188eu/include/sta_info.h | 2 -
drivers/staging/r8188eu/include/usb_ops.h | 22 +-
drivers/staging/r8188eu/include/usb_osintf.h | 4 -
drivers/staging/r8188eu/include/usb_vendor_req.h | 35 -
drivers/staging/r8188eu/include/wifi.h | 60 +-
drivers/staging/r8188eu/os_dep/ioctl_linux.c | 295 +-
drivers/staging/r8188eu/os_dep/mlme_linux.c | 1 -
drivers/staging/r8188eu/os_dep/os_intfs.c | 45 +-
drivers/staging/r8188eu/os_dep/osdep_service.c | 27 +-
drivers/staging/r8188eu/os_dep/usb_intf.c | 5 +-
drivers/staging/r8188eu/os_dep/usb_ops_linux.c | 19 +-
drivers/staging/r8188eu/os_dep/xmit_linux.c | 16 +-
drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 8 +-
drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 2 +-
drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 52 +-
.../staging/rtl8192e/rtl8192e/r8192E_firmware.c | 3 +-
drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 22 +-
drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 20 +-
drivers/staging/rtl8192e/rtl819x_BAProc.c | 5 +-
drivers/staging/rtl8192e/rtllib.h | 2 +-
drivers/staging/rtl8192e/rtllib_crypt_ccmp.c | 10 +-
drivers/staging/rtl8192e/rtllib_crypt_tkip.c | 38 +-
drivers/staging/rtl8192e/rtllib_rx.c | 22 +-
drivers/staging/rtl8192e/rtllib_softmac.c | 63 +-
drivers/staging/rtl8192e/rtllib_softmac_wx.c | 4 +-
drivers/staging/rtl8192e/rtllib_wx.c | 2 +-
drivers/staging/rtl8192u/ieee80211/ieee80211.h | 2 +-
.../rtl8192u/ieee80211/ieee80211_crypt_ccmp.c | 2 +-
.../rtl8192u/ieee80211/ieee80211_crypt_tkip.c | 2 +-
.../rtl8192u/ieee80211/ieee80211_crypt_wep.c | 2 +-
.../staging/rtl8192u/ieee80211/ieee80211_softmac.c | 30 +-
drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c | 8 +-
.../staging/rtl8192u/ieee80211/rtl819x_HTProc.c | 15 +-
drivers/staging/rtl8192u/r8192U_core.c | 2 +-
drivers/staging/rtl8712/drv_types.h | 3 +-
drivers/staging/rtl8712/ieee80211.c | 4 +-
drivers/staging/rtl8712/os_intfs.c | 1 -
drivers/staging/rtl8712/rtl8712_cmdctrl_bitdef.h | 1 -
drivers/staging/rtl8712/rtl8712_efuse.h | 4 +-
.../staging/rtl8712/rtl8712_macsetting_bitdef.h | 3 -
.../staging/rtl8712/rtl8712_macsetting_regdef.h | 2 -
drivers/staging/rtl8712/rtl8712_ratectrl_regdef.h | 1 -
drivers/staging/rtl8712/rtl8712_recv.c | 16 +-
drivers/staging/rtl8712/rtl8712_security_bitdef.h | 1 -
drivers/staging/rtl8712/rtl8712_spec.h | 3 -
drivers/staging/rtl8712/rtl8712_syscfg_bitdef.h | 4 -
drivers/staging/rtl8712/rtl8712_syscfg_regdef.h | 2 -
drivers/staging/rtl8712/rtl8712_timectrl_bitdef.h | 1 -
drivers/staging/rtl8712/rtl8712_wmac_bitdef.h | 1 -
drivers/staging/rtl8712/rtl871x_cmd.c | 4 +-
drivers/staging/rtl8712/rtl871x_cmd.h | 3 -
drivers/staging/rtl8712/rtl871x_ioctl.h | 1 -
drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 24 +-
drivers/staging/rtl8712/rtl871x_ioctl_rtl.c | 1 -
drivers/staging/rtl8712/rtl871x_ioctl_set.c | 3 +-
drivers/staging/rtl8712/rtl871x_mlme.c | 102 +-
drivers/staging/rtl8712/rtl871x_mp_ioctl.h | 1 -
drivers/staging/rtl8712/rtl871x_mp_phy_regdef.h | 3 -
drivers/staging/rtl8712/rtl871x_recv.c | 1 -
drivers/staging/rtl8712/rtl871x_security.c | 1 -
drivers/staging/rtl8712/sta_info.h | 1 -
drivers/staging/rtl8712/usb_intf.c | 14 +-
drivers/staging/rtl8712/usb_ops.c | 27 +-
drivers/staging/rtl8712/usb_ops_linux.c | 21 +-
drivers/staging/rtl8712/wifi.h | 1 -
drivers/staging/rtl8712/xmit_linux.c | 8 +-
drivers/staging/rtl8723bs/core/rtw_ap.c | 24 +-
drivers/staging/rtl8723bs/core/rtw_cmd.c | 12 +-
drivers/staging/rtl8723bs/core/rtw_efuse.c | 54 +-
drivers/staging/rtl8723bs/core/rtw_ieee80211.c | 44 +-
drivers/staging/rtl8723bs/core/rtw_mlme.c | 66 +-
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 194 +-
drivers/staging/rtl8723bs/core/rtw_rf.c | 56 +-
drivers/staging/rtl8723bs/hal/HalBtcOutSrc.h | 11 -
drivers/staging/rtl8723bs/hal/hal_btcoex.c | 8 -
drivers/staging/rtl8723bs/hal/sdio_ops.c | 15 +-
drivers/staging/rtl8723bs/include/HalVerDef.h | 10 -
drivers/staging/rtl8723bs/include/drv_types.h | 1 -
drivers/staging/rtl8723bs/include/hal_com_reg.h | 295 -
drivers/staging/rtl8723bs/include/rtw_ioctl.h | 72 -
drivers/staging/rtl8723bs/os_dep/os_intfs.c | 2 +-
drivers/staging/rts5208/rtsx_transport.c | 12 +-
drivers/staging/sm750fb/sm750_hw.c | 1 +
.../Documentation/ABI/sysfs-platform-visorchipset | 89 -
drivers/staging/unisys/Documentation/overview.txt | 337 -
drivers/staging/unisys/Kconfig | 16 -
drivers/staging/unisys/MAINTAINERS | 5 -
drivers/staging/unisys/Makefile | 7 -
drivers/staging/unisys/TODO | 16 -
drivers/staging/unisys/include/iochannel.h | 571 -
drivers/staging/unisys/visorhba/Kconfig | 15 -
drivers/staging/unisys/visorhba/Makefile | 10 -
drivers/staging/unisys/visorhba/visorhba_main.c | 1142 -
drivers/staging/unisys/visorinput/Kconfig | 16 -
drivers/staging/unisys/visorinput/Makefile | 7 -
drivers/staging/unisys/visorinput/visorinput.c | 788 -
drivers/staging/unisys/visornic/Kconfig | 16 -
drivers/staging/unisys/visornic/Makefile | 10 -
drivers/staging/unisys/visornic/visornic_main.c | 2148 -
drivers/staging/vc04_services/Kconfig | 1 +
.../staging/vc04_services/bcm2835-audio/Kconfig | 8 +-
drivers/staging/vc04_services/bcm2835-audio/TODO | 10 -
.../vc04_services/bcm2835-audio/bcm2835-ctl.c | 86 +-
.../vc04_services/bcm2835-audio/bcm2835-pcm.c | 5 +-
.../vc04_services/bcm2835-audio/bcm2835-vchiq.c | 2 +-
.../staging/vc04_services/bcm2835-audio/bcm2835.c | 33 +-
.../staging/vc04_services/bcm2835-audio/bcm2835.h | 2 +-
.../staging/vc04_services/bcm2835-camera/Kconfig | 4 +-
.../vc04_services/bcm2835-camera/bcm2835-camera.c | 24 +-
.../vc04_services/bcm2835-camera/controls.c | 33 +-
.../vc04_services/interface/vchiq_arm/vchiq_arm.c | 26 +-
.../vc04_services/interface/vchiq_arm/vchiq_core.h | 1 -
.../vc04_services/interface/vchiq_arm/vchiq_dev.c | 13 +-
.../vc04_services/vchiq-mmal/mmal-msg-common.h | 7 +-
.../vc04_services/vchiq-mmal/mmal-msg-format.h | 6 +-
.../vc04_services/vchiq-mmal/mmal-parameters.h | 15 +-
.../staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 11 +-
drivers/staging/{vme/devices => vme_user}/Kconfig | 2 +-
drivers/staging/{vme/devices => vme_user}/Makefile | 0
.../staging/{vme/devices => vme_user}/vme_user.c | 2 +-
.../staging/{vme/devices => vme_user}/vme_user.h | 0
drivers/staging/vt6655/baseband.c | 15 +-
drivers/staging/vt6655/card.c | 38 +-
drivers/staging/vt6655/card.h | 2 +-
drivers/staging/vt6655/channel.c | 6 +-
drivers/staging/vt6655/device_main.c | 37 +-
drivers/staging/vt6655/key.c | 1 -
drivers/staging/vt6655/mac.c | 1 -
drivers/staging/vt6655/mac.h | 271 +-
drivers/staging/vt6655/rf.c | 10 +-
drivers/staging/vt6655/rxtx.c | 6 +-
drivers/staging/vt6655/srom.c | 19 +-
drivers/staging/vt6655/tmacro.h | 43 -
drivers/staging/vt6655/upc.h | 25 -
drivers/staging/vt6656/channel.c | 1 -
drivers/staging/vt6656/rf.c | 1 -
drivers/staging/wfx/TODO | 6 -
drivers/staging/wlan-ng/cfg80211.c | 10 +-
drivers/staging/wlan-ng/hfa384x.h | 4 +-
drivers/staging/wlan-ng/hfa384x_usb.c | 34 +-
drivers/staging/wlan-ng/prism2usb.c | 8 +-
drivers/target/iscsi/cxgbit/cxgbit.h | 22 +-
drivers/target/iscsi/cxgbit/cxgbit_cm.c | 8 +-
drivers/target/iscsi/cxgbit/cxgbit_ddp.c | 4 +-
drivers/target/iscsi/cxgbit/cxgbit_main.c | 2 +-
drivers/target/iscsi/cxgbit/cxgbit_target.c | 72 +-
drivers/target/iscsi/iscsi_target.c | 304 +-
drivers/target/iscsi/iscsi_target.h | 30 +-
drivers/target/iscsi/iscsi_target_auth.c | 10 +-
drivers/target/iscsi/iscsi_target_auth.h | 4 +-
drivers/target/iscsi/iscsi_target_configfs.c | 58 +-
drivers/target/iscsi/iscsi_target_datain_values.c | 28 +-
drivers/target/iscsi/iscsi_target_datain_values.h | 12 +-
drivers/target/iscsi/iscsi_target_device.c | 4 +-
drivers/target/iscsi/iscsi_target_device.h | 8 +-
drivers/target/iscsi/iscsi_target_erl0.c | 68 +-
drivers/target/iscsi/iscsi_target_erl0.h | 24 +-
drivers/target/iscsi/iscsi_target_erl1.c | 92 +-
drivers/target/iscsi/iscsi_target_erl1.h | 40 +-
drivers/target/iscsi/iscsi_target_erl2.c | 48 +-
drivers/target/iscsi/iscsi_target_erl2.h | 26 +-
drivers/target/iscsi/iscsi_target_login.c | 78 +-
drivers/target/iscsi/iscsi_target_login.h | 22 +-
drivers/target/iscsi/iscsi_target_nego.c | 60 +-
drivers/target/iscsi/iscsi_target_nego.h | 12 +-
drivers/target/iscsi/iscsi_target_nodeattrib.c | 4 +-
drivers/target/iscsi/iscsi_target_parameters.c | 8 +-
drivers/target/iscsi/iscsi_target_parameters.h | 8 +-
drivers/target/iscsi/iscsi_target_seq_pdu_list.c | 44 +-
drivers/target/iscsi/iscsi_target_seq_pdu_list.h | 10 +-
drivers/target/iscsi/iscsi_target_stat.c | 16 +-
drivers/target/iscsi/iscsi_target_tmr.c | 72 +-
drivers/target/iscsi/iscsi_target_tmr.h | 16 +-
drivers/target/iscsi/iscsi_target_tpg.c | 2 +-
drivers/target/iscsi/iscsi_target_tpg.h | 4 +-
drivers/target/iscsi/iscsi_target_util.c | 164 +-
drivers/target/iscsi/iscsi_target_util.h | 102 +-
drivers/target/target_core_configfs.c | 47 +-
drivers/target/target_core_device.c | 20 +-
drivers/target/target_core_file.c | 10 +-
drivers/target/target_core_iblock.c | 17 +-
drivers/target/target_core_pscsi.c | 39 +-
drivers/target/target_core_spc.c | 2 +-
drivers/target/target_core_user.c | 50 +-
drivers/tee/Kconfig | 5 +-
drivers/tee/optee/call.c | 240 +-
drivers/tee/optee/core.c | 1 +
drivers/tee/optee/ffa_abi.c | 38 +-
drivers/tee/optee/optee_ffa.h | 12 +-
drivers/tee/optee/optee_private.h | 31 +-
drivers/tee/optee/optee_smc.h | 48 +-
drivers/tee/optee/smc_abi.c | 197 +-
drivers/tee/tee_core.c | 2 -
drivers/tee/tee_shm.c | 85 +-
drivers/thermal/Makefile | 2 +-
drivers/thermal/broadcom/bcm2711_thermal.c | 5 +-
drivers/thermal/broadcom/sr-thermal.c | 3 +
drivers/thermal/cpufreq_cooling.c | 2 +-
drivers/thermal/devfreq_cooling.c | 33 +-
drivers/thermal/hisi_thermal.c | 6 +-
drivers/thermal/imx_sc_thermal.c | 6 +-
.../intel/int340x_thermal/int3400_thermal.c | 73 +-
.../intel/int340x_thermal/int3403_thermal.c | 1 +
.../int340x_thermal/processor_thermal_device.h | 1 +
.../int340x_thermal/processor_thermal_device_pci.c | 1 +
drivers/thermal/intel/intel_hfi.c | 2 -
drivers/thermal/intel/intel_pch_thermal.c | 43 +-
drivers/thermal/k3_bandgap.c | 5 +
drivers/thermal/k3_j72xx_bandgap.c | 566 +
drivers/thermal/qcom/lmh.c | 1 +
drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 486 +-
drivers/thermal/qcom/tsens.c | 3 +
drivers/thermal/rcar_thermal.c | 17 +-
drivers/thermal/rzg2l_thermal.c | 10 +-
drivers/thermal/thermal_core.c | 1 +
drivers/thermal/thermal_hwmon.c | 6 +-
drivers/thermal/thermal_of.c | 14 +-
drivers/thunderbolt/ctl.c | 15 +-
drivers/thunderbolt/domain.c | 12 +-
drivers/thunderbolt/nhi.c | 46 +-
drivers/thunderbolt/path.c | 6 +
drivers/thunderbolt/switch.c | 109 +-
drivers/thunderbolt/tb.c | 25 +-
drivers/thunderbolt/tb.h | 6 +-
drivers/thunderbolt/tb_msgs.h | 39 +
drivers/thunderbolt/tb_regs.h | 5 +
drivers/thunderbolt/test.c | 242 +-
drivers/thunderbolt/tunnel.c | 18 +-
drivers/thunderbolt/tunnel.h | 4 +-
drivers/thunderbolt/usb4_port.c | 38 +
drivers/thunderbolt/xdomain.c | 609 +-
drivers/tty/amiserial.c | 2 -
drivers/tty/goldfish.c | 22 +-
drivers/tty/hvc/Kconfig | 19 +
drivers/tty/hvc/hvc_dcc.c | 194 +-
drivers/tty/hvc/hvc_opal.c | 6 +-
drivers/tty/hvc/hvc_vio.c | 2 +-
drivers/tty/hvc/hvc_xen.c | 2 +-
drivers/tty/hvc/hvcs.c | 5 +-
drivers/tty/hvc/hvsi.c | 2 +-
drivers/tty/mxser.c | 5 +-
drivers/tty/n_gsm.c | 57 +-
drivers/tty/n_tty.c | 73 +-
drivers/tty/serial/8250/8250.h | 42 +
drivers/tty/serial/8250/8250_aspeed_vuart.c | 2 +
drivers/tty/serial/8250/8250_core.c | 1 -
drivers/tty/serial/8250/8250_dma.c | 7 +-
drivers/tty/serial/8250/8250_dw.c | 229 +-
drivers/tty/serial/8250/8250_dwlib.c | 116 +-
drivers/tty/serial/8250/8250_dwlib.h | 51 +
drivers/tty/serial/8250/8250_fintek.c | 8 +-
drivers/tty/serial/8250/8250_mtk.c | 22 +-
drivers/tty/serial/8250/8250_of.c | 2 +
drivers/tty/serial/8250/8250_pci.c | 480 +-
drivers/tty/serial/8250/8250_port.c | 140 +-
drivers/tty/serial/8250/8250_pxa.c | 1 -
drivers/tty/serial/8250/Kconfig | 2 +-
drivers/tty/serial/Kconfig | 14 +-
drivers/tty/serial/altera_jtaguart.c | 6 +-
drivers/tty/serial/amba-pl011.c | 48 +-
drivers/tty/serial/amba-pl011.h | 35 -
drivers/tty/serial/atmel_serial.c | 4 +-
drivers/tty/serial/cpm_uart/cpm_uart.h | 2 +
drivers/tty/serial/cpm_uart/cpm_uart_core.c | 2 +-
drivers/tty/serial/cpm_uart/cpm_uart_cpm2.c | 1 -
drivers/tty/serial/digicolor-usart.c | 7 +-
drivers/tty/serial/fsl_lpuart.c | 84 +-
drivers/tty/serial/icom.c | 538 +-
drivers/tty/serial/icom.h | 274 -
drivers/tty/serial/imx.c | 4 +-
drivers/tty/serial/jsm/jsm_cls.c | 8 +-
drivers/tty/serial/jsm/jsm_neo.c | 8 +-
drivers/tty/serial/max310x.c | 1 -
drivers/tty/serial/men_z135_uart.c | 1 -
drivers/tty/serial/meson_uart.c | 40 +-
drivers/tty/serial/mpc52xx_uart.c | 5 +-
drivers/tty/serial/msm_serial.c | 5 +
drivers/tty/serial/omap-serial.c | 13 +-
drivers/tty/serial/owl-uart.c | 7 +-
drivers/tty/serial/pch_uart.c | 77 +-
drivers/tty/serial/pic32_uart.c | 159 +-
drivers/tty/serial/pic32_uart.h | 125 -
drivers/tty/serial/pmac_zilog.c | 69 +-
drivers/tty/serial/pmac_zilog.h | 11 -
drivers/tty/serial/qcom_geni_serial.c | 58 +-
drivers/tty/serial/rda-uart.c | 2 +
drivers/tty/serial/sa1100.c | 4 +-
drivers/tty/serial/samsung_tty.c | 13 +
drivers/tty/serial/sc16is7xx.c | 10 -
drivers/tty/serial/serial_core.c | 89 +-
drivers/tty/serial/serial_txx9.c | 2 +
drivers/tty/serial/sh-sci.c | 6 +-
drivers/tty/serial/sifive.c | 20 +-
drivers/tty/serial/st-asc.c | 4 +
drivers/tty/serial/stm32-usart.c | 225 +-
drivers/tty/serial/stm32-usart.h | 3 +
drivers/tty/serial/sunplus-uart.c | 2 +-
drivers/tty/serial/sunsu.c | 2 -
drivers/tty/serial/uartlite.c | 3 +-
drivers/tty/serial/xilinx_uartps.c | 46 +-
drivers/tty/serial/zs.c | 2 +-
drivers/tty/synclink_gt.c | 2 +
drivers/tty/sysrq.c | 29 +-
drivers/tty/tty_baudrate.c | 35 +-
drivers/tty/tty_buffer.c | 3 +-
drivers/tty/tty_ioctl.c | 2 -
drivers/tty/tty_jobctrl.c | 4 +-
drivers/ufs/Kconfig | 30 +
drivers/ufs/Makefile | 5 +
drivers/ufs/core/Kconfig | 60 +
drivers/ufs/core/Makefile | 10 +
drivers/{scsi/ufs => ufs/core}/ufs-debugfs.c | 3 +-
drivers/{scsi/ufs => ufs/core}/ufs-debugfs.h | 0
.../{scsi/ufs => ufs/core}/ufs-fault-injection.c | 0
.../{scsi/ufs => ufs/core}/ufs-fault-injection.h | 0
drivers/{scsi/ufs => ufs/core}/ufs-hwmon.c | 3 +-
drivers/{scsi/ufs => ufs/core}/ufs-sysfs.c | 3 +-
drivers/{scsi/ufs => ufs/core}/ufs-sysfs.h | 3 +-
drivers/{scsi/ufs => ufs/core}/ufs_bsg.c | 6 +
drivers/{scsi/ufs => ufs/core}/ufs_bsg.h | 7 +-
drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.c | 2 +-
drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.h | 7 +-
drivers/ufs/core/ufshcd-priv.h | 298 +
drivers/{scsi/ufs => ufs/core}/ufshcd.c | 256 +-
drivers/{scsi/ufs => ufs/core}/ufshpb.c | 230 +-
drivers/{scsi/ufs => ufs/core}/ufshpb.h | 16 +-
drivers/ufs/host/Kconfig | 114 +
drivers/{scsi/ufs => ufs/host}/Makefile | 12 -
drivers/{scsi/ufs => ufs/host}/cdns-pltfrm.c | 2 +-
drivers/{scsi/ufs => ufs/host}/tc-dwc-g210-pci.c | 3 +-
.../{scsi/ufs => ufs/host}/tc-dwc-g210-pltfrm.c | 1 +
drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.c | 6 +-
drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.h | 2 +
drivers/{scsi/ufs => ufs/host}/ti-j721e-ufs.c | 6 +-
drivers/{scsi/ufs => ufs/host}/ufs-exynos.c | 11 +-
drivers/{scsi/ufs => ufs/host}/ufs-exynos.h | 8 +-
drivers/{scsi/ufs => ufs/host}/ufs-hisi.c | 10 +-
drivers/{scsi/ufs => ufs/host}/ufs-hisi.h | 0
.../{scsi/ufs => ufs/host}/ufs-mediatek-trace.h | 2 +-
drivers/{scsi/ufs => ufs/host}/ufs-mediatek.c | 37 +-
drivers/{scsi/ufs => ufs/host}/ufs-mediatek.h | 0
drivers/{scsi/ufs => ufs/host}/ufs-qcom-ice.c | 2 +-
drivers/{scsi/ufs => ufs/host}/ufs-qcom.c | 81 +-
drivers/{scsi/ufs => ufs/host}/ufs-qcom.h | 6 +-
drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.c | 6 +-
drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.h | 2 +
drivers/{scsi/ufs => ufs/host}/ufshcd-pci.c | 6 +-
drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.c | 42 +-
drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.h | 2 +-
drivers/{scsi/ufs => ufs/host}/ufshci-dwc.h | 0
drivers/uio/uio_dfl.c | 2 +
drivers/usb/atm/usbatm.c | 2 +-
drivers/usb/c67x00/c67x00-drv.c | 6 +-
drivers/usb/c67x00/c67x00-sched.c | 4 +-
drivers/usb/cdns3/cdns3-gadget.c | 47 +-
drivers/usb/cdns3/cdns3-gadget.h | 9 +-
drivers/usb/class/cdc-acm.h | 8 -
drivers/usb/class/cdc-wdm.c | 1 +
drivers/usb/core/devices.c | 47 -
drivers/usb/core/driver.c | 25 +-
drivers/usb/core/hcd-pci.c | 5 +-
drivers/usb/core/hcd.c | 29 +-
drivers/usb/core/hub.c | 10 +-
drivers/usb/core/quirks.c | 3 +
drivers/usb/core/usb-acpi.c | 7 +-
drivers/usb/dwc2/core.c | 9 +
drivers/usb/dwc2/core.h | 5 +
drivers/usb/dwc2/gadget.c | 1 -
drivers/usb/dwc2/params.c | 50 +-
drivers/usb/dwc3/Kconfig | 9 +
drivers/usb/dwc3/Makefile | 1 +
drivers/usb/dwc3/core.c | 81 +-
drivers/usb/dwc3/core.h | 2 +
drivers/usb/dwc3/drd.c | 50 -
drivers/usb/dwc3/dwc3-am62.c | 332 +
drivers/usb/dwc3/dwc3-pci.c | 2 +-
drivers/usb/dwc3/dwc3-xilinx.c | 17 +
drivers/usb/dwc3/ep0.c | 14 +-
drivers/usb/dwc3/gadget.c | 190 +-
drivers/usb/dwc3/gadget.h | 2 +
drivers/usb/dwc3/host.c | 2 -
drivers/usb/gadget/composite.c | 2 +-
drivers/usb/gadget/configfs.c | 2 +-
drivers/usb/gadget/function/f_acm.c | 10 +
drivers/usb/gadget/function/f_uvc.c | 30 +-
drivers/usb/gadget/function/u_audio.c | 4 +-
drivers/usb/gadget/function/u_uvc.h | 1 +
drivers/usb/gadget/function/uvc.h | 3 +
drivers/usb/gadget/function/uvc_configfs.c | 189 +-
drivers/usb/gadget/function/uvc_configfs.h | 120 +-
drivers/usb/gadget/function/uvc_queue.c | 30 +-
drivers/usb/gadget/function/uvc_queue.h | 3 +-
drivers/usb/gadget/function/uvc_v4l2.c | 3 +-
drivers/usb/gadget/function/uvc_video.c | 17 +-
drivers/usb/gadget/legacy/dbgp.c | 2 +-
drivers/usb/gadget/legacy/inode.c | 2 +-
drivers/usb/gadget/legacy/raw_gadget.c | 6 +-
drivers/usb/gadget/udc/core.c | 289 +-
drivers/usb/gadget/udc/net2272.c | 6 +-
drivers/usb/gadget/udc/net2280.c | 14 +-
drivers/usb/gadget/udc/omap_udc.c | 21 +-
drivers/usb/gadget/udc/pxa25x_udc.c | 37 +-
drivers/usb/gadget/udc/pxa25x_udc.h | 7 +-
drivers/usb/gadget/udc/pxa27x_udc.h | 2 +-
drivers/usb/gadget/udc/s3c-hsudc.c | 4 +-
drivers/usb/gadget/udc/tegra-xudc.c | 4 +-
drivers/usb/gadget/udc/udc-xilinx.c | 2 +-
drivers/usb/host/Kconfig | 2 +-
drivers/usb/host/ehci-omap.c | 5 -
drivers/usb/host/ehci-platform.c | 1 +
drivers/usb/host/ehci-q.c | 4 +-
drivers/usb/host/ehci-xilinx-of.c | 12 +-
drivers/usb/host/fhci-hcd.c | 3 +-
drivers/usb/host/fotg210-hcd.c | 2 +-
drivers/usb/host/isp116x-hcd.c | 11 +-
drivers/usb/host/isp1362-hcd.c | 6 +-
drivers/usb/host/max3421-hcd.c | 6 +-
drivers/usb/host/ohci-hcd.c | 3 +-
drivers/usb/host/ohci-omap.c | 60 +-
drivers/usb/host/ohci-platform.c | 1 +
drivers/usb/host/ohci-ppc-of.c | 3 -
drivers/usb/host/ohci-pxa27x.c | 3 +-
drivers/usb/host/oxu210hp-hcd.c | 16 +-
drivers/usb/host/r8a66597-hcd.c | 3 +-
drivers/usb/host/sl811-hcd.c | 6 +-
drivers/usb/host/xen-hcd.c | 65 +-
drivers/usb/host/xhci-hub.c | 3 +-
drivers/usb/host/xhci-mem.c | 23 +-
drivers/usb/host/xhci-mtk-sch.c | 90 +-
drivers/usb/host/xhci-mtk.h | 2 -
drivers/usb/host/xhci-pci.c | 5 +-
drivers/usb/host/xhci-plat.c | 46 +-
drivers/usb/host/xhci-ring.c | 144 +-
drivers/usb/host/xhci.c | 175 +-
drivers/usb/host/xhci.h | 30 +-
drivers/usb/isp1760/isp1760-core.c | 8 +
drivers/usb/isp1760/isp1760-hcd.c | 6 +-
drivers/usb/misc/ftdi-elan.c | 15 +-
drivers/usb/misc/lvstest.c | 2 +-
drivers/usb/musb/mediatek.c | 73 +-
drivers/usb/musb/omap2430.c | 1 +
drivers/usb/phy/Kconfig | 3 +-
drivers/usb/phy/phy-isp1301-omap.c | 6 +-
drivers/usb/phy/phy-omap-otg.c | 4 +-
drivers/usb/serial/ark3116.c | 3 +-
drivers/usb/serial/ftdi_sio.c | 2 +-
drivers/usb/serial/option.c | 6 +
drivers/usb/serial/pl2303.c | 4 +
drivers/usb/serial/pl2303.h | 1 +
drivers/usb/serial/qcserial.c | 2 +
drivers/usb/serial/whiteheat.c | 4 -
drivers/usb/storage/alauda.c | 4 +-
drivers/usb/storage/isd200.c | 8 +-
drivers/usb/storage/karma.c | 15 +-
drivers/usb/storage/onetouch.c | 2 +-
drivers/usb/storage/shuttle_usbat.c | 28 +-
drivers/usb/storage/transport.c | 2 +-
drivers/usb/typec/bus.c | 2 +-
drivers/usb/typec/mux.c | 271 +-
drivers/usb/typec/mux.h | 12 +-
drivers/usb/typec/mux/Kconfig | 10 +
drivers/usb/typec/mux/Makefile | 1 +
drivers/usb/typec/mux/fsa4480.c | 218 +
drivers/usb/typec/mux/intel_pmc_mux.c | 29 +-
drivers/usb/typec/mux/pi3usb30532.c | 8 +-
drivers/usb/typec/tcpm/fusb302.c | 4 +-
drivers/usb/typec/tcpm/tcpci.c | 2 +-
drivers/usb/typec/tcpm/tcpci_mt6360.c | 26 +
drivers/usb/typec/tipd/core.c | 32 +-
drivers/usb/typec/ucsi/ucsi.c | 85 +-
drivers/usb/typec/ucsi/ucsi.h | 6 +-
drivers/usb/typec/ucsi/ucsi_acpi.c | 23 +-
drivers/usb/usbip/stub_dev.c | 2 +-
drivers/usb/usbip/stub_rx.c | 2 +
drivers/vdpa/alibaba/eni_vdpa.c | 2 +-
drivers/vdpa/ifcvf/ifcvf_main.c | 23 +-
drivers/vdpa/mlx5/core/mlx5_vdpa.h | 2 +
drivers/vdpa/mlx5/net/mlx5_vnet.c | 553 +-
drivers/vdpa/vdpa.c | 286 +-
drivers/vdpa/vdpa_sim/vdpa_sim.c | 105 +-
drivers/vdpa/vdpa_sim/vdpa_sim.h | 3 +
drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 169 +-
drivers/vdpa/vdpa_user/vduse_dev.c | 10 +-
drivers/vdpa/virtio_pci/vp_vdpa.c | 161 +-
drivers/vfio/fsl-mc/vfio_fsl_mc.c | 1 +
drivers/vfio/mdev/Makefile | 2 +-
drivers/vfio/mdev/mdev_core.c | 52 +-
drivers/vfio/mdev/mdev_driver.c | 10 -
drivers/vfio/mdev/mdev_private.h | 6 +-
drivers/vfio/mdev/mdev_sysfs.c | 37 +-
drivers/vfio/mdev/vfio_mdev.c | 152 -
drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c | 16 +-
drivers/vfio/pci/mlx5/cmd.c | 236 +-
drivers/vfio/pci/mlx5/cmd.h | 52 +-
drivers/vfio/pci/mlx5/main.c | 136 +-
drivers/vfio/pci/vfio_pci.c | 7 +-
drivers/vfio/pci/vfio_pci_config.c | 56 +-
drivers/vfio/pci/vfio_pci_core.c | 254 +-
drivers/vfio/platform/vfio_amba.c | 1 +
drivers/vfio/platform/vfio_platform.c | 1 +
drivers/vfio/vfio.c | 1013 +-
drivers/vfio/vfio_iommu_type1.c | 30 +-
drivers/vhost/iotlb.c | 23 +-
drivers/vhost/net.c | 26 +-
drivers/vhost/scsi.c | 4 +-
drivers/vhost/test.c | 14 +-
drivers/vhost/vdpa.c | 273 +-
drivers/vhost/vhost.c | 45 +-
drivers/vhost/vhost.h | 7 +-
drivers/vhost/vringh.c | 10 +-
drivers/vhost/vsock.c | 7 +-
drivers/video/backlight/Kconfig | 4 +-
drivers/video/backlight/omap1_bl.c | 4 +-
drivers/video/console/sticon.c | 5 +-
drivers/video/console/sticore.c | 53 +-
drivers/video/fbdev/Makefile | 2 +-
drivers/video/fbdev/amba-clcd.c | 5 +-
drivers/video/fbdev/core/fbcon.c | 12 +-
drivers/video/fbdev/core/fbmem.c | 47 -
drivers/video/fbdev/core/fbsysfs.c | 4 +
drivers/video/fbdev/efifb.c | 9 +-
drivers/video/fbdev/hyperv_fb.c | 42 +-
drivers/video/fbdev/mx3fb.c | 2 +-
drivers/video/fbdev/omap/Kconfig | 4 +-
drivers/video/fbdev/omap/Makefile | 5 +
drivers/video/fbdev/omap/lcd_ams_delta.c | 6 +-
.../video/fbdev/omap}/lcd_dma.c | 7 +-
.../mach => drivers/video/fbdev/omap}/lcd_dma.h | 2 -
drivers/video/fbdev/omap/lcd_inn1510.c | 9 +-
drivers/video/fbdev/omap/lcd_osk.c | 4 +-
drivers/video/fbdev/omap/lcdc.c | 10 +-
drivers/video/fbdev/omap/lcdc.h | 35 +
drivers/video/fbdev/omap/omapfb.h | 6 +
drivers/video/fbdev/omap/omapfb_main.c | 19 +-
drivers/video/fbdev/omap/sossi.c | 4 +-
.../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 7 +-
drivers/video/fbdev/omap2/omapfb/dss/hdmi_pll.c | 8 +-
drivers/video/fbdev/pxa3xx-gcu.c | 12 +-
.../video/fbdev/pxa3xx-regs.h | 24 +-
drivers/video/fbdev/pxafb.c | 4 +-
drivers/video/fbdev/simplefb.c | 8 +-
drivers/video/fbdev/sticore.h | 3 +
drivers/video/fbdev/stifb.c | 4 +-
drivers/video/fbdev/vesafb.c | 11 +-
drivers/video/fbdev/xen-fbfront.c | 1 -
drivers/virt/Kconfig | 5 +
drivers/virt/Makefile | 2 +
drivers/virt/acrn/acrn_drv.h | 10 +-
drivers/virt/acrn/mm.c | 9 +-
drivers/virt/coco/efi_secret/Kconfig | 16 +
drivers/virt/coco/efi_secret/Makefile | 2 +
drivers/virt/coco/efi_secret/efi_secret.c | 349 +
drivers/virt/coco/sev-guest/Kconfig | 14 +
drivers/virt/coco/sev-guest/Makefile | 2 +
drivers/virt/coco/sev-guest/sev-guest.c | 743 +
drivers/virt/coco/sev-guest/sev-guest.h | 63 +
drivers/virt/fsl_hypervisor.c | 3 +-
drivers/virtio/Kconfig | 6 -
drivers/virtio/virtio.c | 37 +-
drivers/virtio/virtio_balloon.c | 12 +-
drivers/virtio/virtio_mem.c | 6 +-
drivers/virtio/virtio_mmio.c | 28 +-
drivers/virtio/virtio_pci_common.c | 15 +-
drivers/virtio/virtio_pci_common.h | 10 +-
drivers/virtio/virtio_pci_legacy.c | 11 +-
drivers/virtio/virtio_pci_modern.c | 14 +-
drivers/virtio/virtio_pci_modern_dev.c | 6 +
drivers/virtio/virtio_ring.c | 55 +-
drivers/virtio/virtio_vdpa.c | 12 +-
drivers/visorbus/Kconfig | 15 -
drivers/visorbus/Makefile | 10 -
drivers/visorbus/controlvmchannel.h | 650 -
drivers/visorbus/vbuschannel.h | 95 -
drivers/visorbus/visorbus_main.c | 1234 -
drivers/visorbus/visorbus_private.h | 48 -
drivers/visorbus/visorchannel.c | 434 -
drivers/visorbus/visorchipset.c | 1691 -
drivers/vme/Kconfig | 2 -
drivers/w1/masters/ds2490.c | 124 +-
drivers/watchdog/Kconfig | 30 +
drivers/watchdog/Makefile | 3 +
drivers/watchdog/bcm7038_wdt.c | 1 +
drivers/watchdog/da9063_wdt.c | 36 +
drivers/watchdog/gxp-wdt.c | 174 +
drivers/watchdog/iTCO_wdt.c | 20 +-
drivers/watchdog/mtk_wdt.c | 12 +
drivers/watchdog/rti_wdt.c | 10 +-
drivers/watchdog/rzg2l_wdt.c | 83 +-
drivers/watchdog/rzn1_wdt.c | 203 +
drivers/watchdog/sa1100_wdt.c | 88 +-
drivers/watchdog/sp805_wdt.c | 1 +
drivers/watchdog/sunplus_wdt.c | 220 +
drivers/watchdog/ts4800_wdt.c | 5 +-
drivers/watchdog/wdat_wdt.c | 6 +-
drivers/xen/Kconfig | 20 +
drivers/xen/Makefile | 2 +
drivers/xen/gntalloc.c | 9 +-
drivers/xen/gntdev-dmabuf.c | 15 +-
drivers/xen/grant-dma-iommu.c | 78 +
drivers/xen/grant-dma-ops.c | 346 +
drivers/xen/grant-table.c | 269 +-
drivers/xen/pvcalls-front.c | 6 +-
drivers/xen/swiotlb-xen.c | 231 +-
drivers/xen/xen-front-pgdir-shbuf.c | 20 +-
drivers/xen/xen-scsiback.c | 82 +-
drivers/xen/xenbus/xenbus_client.c | 82 +-
drivers/xen/xenbus/xenbus_probe.c | 91 +-
drivers/xen/xlate_mmu.c | 1 -
fs/9p/cache.c | 4 +-
fs/9p/v9fs.c | 2 +-
fs/9p/v9fs.h | 10 +-
fs/9p/vfs_addr.c | 36 +-
fs/9p/vfs_inode.c | 5 +-
fs/Kconfig | 22 +-
fs/Kconfig.binfmt | 8 +-
fs/adfs/inode.c | 10 +-
fs/affs/file.c | 21 +-
fs/affs/symlink.c | 5 +-
fs/afs/callback.c | 2 +-
fs/afs/dir.c | 44 +-
fs/afs/dir_edit.c | 10 +-
fs/afs/dir_silly.c | 4 +-
fs/afs/dynroot.c | 2 +-
fs/afs/file.c | 38 +-
fs/afs/fs_operation.c | 6 +-
fs/afs/inode.c | 52 +-
fs/afs/internal.h | 27 +-
fs/afs/misc.c | 5 +-
fs/afs/rotate.c | 4 +
fs/afs/rxrpc.c | 8 +-
fs/afs/security.c | 3 +-
fs/afs/super.c | 6 +-
fs/afs/volume.c | 3 +-
fs/afs/write.c | 26 +-
fs/befs/linuxvfs.c | 17 +-
fs/bfs/file.c | 11 +-
fs/binfmt_flat.c | 239 +-
fs/btrfs/acl.c | 39 +-
fs/btrfs/async-thread.c | 122 +-
fs/btrfs/async-thread.h | 7 +-
fs/btrfs/block-group.c | 205 +-
fs/btrfs/block-group.h | 7 +-
fs/btrfs/btrfs_inode.h | 34 +-
fs/btrfs/check-integrity.c | 172 +-
fs/btrfs/check-integrity.h | 6 +-
fs/btrfs/compression.c | 60 +-
fs/btrfs/compression.h | 4 +-
fs/btrfs/ctree.c | 102 +-
fs/btrfs/ctree.h | 165 +-
fs/btrfs/delalloc-space.c | 9 +-
fs/btrfs/delayed-inode.c | 84 +-
fs/btrfs/delayed-ref.c | 4 +-
fs/btrfs/delayed-ref.h | 1 -
fs/btrfs/dev-replace.c | 52 +-
fs/btrfs/dir-item.c | 31 +-
fs/btrfs/disk-io.c | 344 +-
fs/btrfs/disk-io.h | 10 +-
fs/btrfs/extent-tree.c | 69 +-
fs/btrfs/extent_io.c | 634 +-
fs/btrfs/extent_io.h | 47 +-
fs/btrfs/file.c | 295 +-
fs/btrfs/free-space-cache.c | 11 +-
fs/btrfs/free-space-tree.c | 2 +-
fs/btrfs/inode.c | 1905 +-
fs/btrfs/ioctl.c | 289 +-
fs/btrfs/props.c | 99 +-
fs/btrfs/props.h | 8 +-
fs/btrfs/qgroup.c | 7 +-
fs/btrfs/qgroup.h | 12 +-
fs/btrfs/raid56.c | 809 +-
fs/btrfs/raid56.h | 9 +-
fs/btrfs/reflink.c | 23 +-
fs/btrfs/relocation.c | 32 +-
fs/btrfs/root-tree.c | 3 +-
fs/btrfs/scrub.c | 1889 +-
fs/btrfs/send.c | 402 +-
fs/btrfs/space-info.c | 11 +-
fs/btrfs/space-info.h | 8 +
fs/btrfs/subpage.c | 55 +-
fs/btrfs/subpage.h | 2 +
fs/btrfs/super.c | 9 +-
fs/btrfs/sysfs.c | 46 +-
fs/btrfs/tests/btrfs-tests.c | 24 +-
fs/btrfs/transaction.c | 116 +-
fs/btrfs/tree-checker.c | 55 +
fs/btrfs/tree-checker.h | 1 +
fs/btrfs/tree-log.c | 64 +-
fs/btrfs/volumes.c | 142 +-
fs/btrfs/volumes.h | 46 +-
fs/btrfs/xattr.c | 51 +-
fs/btrfs/zoned.c | 252 +-
fs/btrfs/zoned.h | 23 +-
fs/btrfs/zstd.c | 14 +-
fs/buffer.c | 214 +-
fs/cachefiles/Kconfig | 12 +
fs/cachefiles/Makefile | 1 +
fs/cachefiles/daemon.c | 117 +-
fs/cachefiles/interface.c | 2 +
fs/cachefiles/internal.h | 78 +
fs/cachefiles/io.c | 76 +-
fs/cachefiles/namei.c | 16 +-
fs/cachefiles/ondemand.c | 503 +
fs/ceph/addr.c | 99 +-
fs/ceph/cache.c | 4 +-
fs/ceph/cache.h | 2 +-
fs/ceph/caps.c | 179 +-
fs/ceph/file.c | 18 +-
fs/ceph/inode.c | 45 +-
fs/ceph/mds_client.c | 125 +-
fs/ceph/mds_client.h | 2 +-
fs/ceph/quota.c | 19 +-
fs/ceph/snap.c | 8 +-
fs/ceph/super.c | 3 +-
fs/ceph/super.h | 39 +-
fs/ceph/xattr.c | 24 +-
fs/cifs/Makefile | 4 +-
fs/cifs/cifs_debug.c | 11 +-
fs/cifs/cifs_swn.c | 4 +-
fs/cifs/cifsencrypt.c | 8 +-
fs/cifs/cifsfs.c | 22 +-
fs/cifs/cifsfs.h | 7 +-
fs/cifs/cifsglob.h | 160 +-
fs/cifs/cifsproto.h | 9 +
fs/cifs/cifssmb.c | 5 +-
fs/cifs/connect.c | 138 +-
fs/cifs/dfs_cache.c | 96 +-
fs/cifs/file.c | 59 +-
fs/cifs/fs_context.c | 33 +-
fs/cifs/fs_context.h | 4 +-
fs/cifs/fscache.c | 8 +-
fs/cifs/fscache.h | 10 +-
fs/cifs/inode.c | 4 +-
fs/cifs/misc.c | 42 +-
fs/cifs/readdir.c | 179 +-
fs/cifs/sess.c | 44 +-
fs/cifs/smb1ops.c | 6 +-
fs/cifs/smb2inode.c | 7 +-
fs/cifs/smb2misc.c | 12 +-
fs/cifs/smb2ops.c | 49 +-
fs/cifs/smb2pdu.c | 14 +-
fs/cifs/smb2pdu.h | 22 -
fs/cifs/smb2transport.c | 7 +-
fs/cifs/smbdirect.c | 8 +-
fs/cifs/trace.h | 2 +
fs/cifs/transport.c | 48 +-
fs/coda/symlink.c | 7 +-
fs/cramfs/README | 8 +-
fs/cramfs/inode.c | 7 +-
fs/crypto/crypto.c | 10 +-
fs/crypto/fname.c | 11 +-
fs/crypto/fscrypt_private.h | 10 +-
fs/crypto/inline_crypt.c | 33 +-
fs/crypto/keyring.c | 64 +-
fs/crypto/keysetup.c | 22 +-
fs/crypto/policy.c | 132 +-
fs/dax.c | 120 +-
fs/direct-io.c | 32 +-
fs/dlm/dir.c | 2 +-
fs/dlm/dlm_internal.h | 66 +-
fs/dlm/lock.c | 654 +-
fs/dlm/lockspace.c | 12 +
fs/dlm/lockspace.h | 1 +
fs/dlm/lowcomms.c | 12 +-
fs/dlm/member.c | 11 +-
fs/dlm/midcomms.c | 61 +-
fs/dlm/plock.c | 178 +-
fs/dlm/rcom.c | 120 +-
fs/dlm/recover.c | 49 +-
fs/dlm/requestqueue.c | 20 +-
fs/dlm/user.c | 16 +-
fs/dlm/util.c | 92 +-
fs/dlm/util.h | 8 +-
fs/ecryptfs/mmap.c | 15 +-
fs/efs/inode.c | 8 +-
fs/efs/symlink.c | 5 +-
fs/erofs/Kconfig | 10 +
fs/erofs/Makefile | 1 +
fs/erofs/data.c | 34 +-
fs/erofs/decompressor.c | 7 +-
fs/erofs/erofs_fs.h | 50 +-
fs/erofs/fscache.c | 520 +
fs/erofs/inode.c | 16 +-
fs/erofs/internal.h | 76 +-
fs/erofs/namei.c | 5 +-
fs/erofs/super.c | 237 +-
fs/erofs/sysfs.c | 4 +-
fs/erofs/zdata.c | 174 +-
fs/erofs/zdata.h | 50 +-
fs/exec.c | 14 +-
fs/exfat/balloc.c | 8 +-
fs/exfat/exfat_fs.h | 7 +
fs/exfat/fatent.c | 47 +-
fs/exfat/file.c | 5 +-
fs/exfat/inode.c | 10 +-
fs/exfat/misc.c | 10 +-
fs/exfat/namei.c | 27 +-
fs/exfat/super.c | 19 +-
fs/exportfs/expfs.c | 5 +-
fs/ext2/inode.c | 22 +-
fs/ext4/Makefile | 1 +
fs/ext4/crypto.c | 246 +
fs/ext4/dir.c | 6 +-
fs/ext4/ext4.h | 86 +-
fs/ext4/extents.c | 20 +-
fs/ext4/fast_commit.c | 13 +-
fs/ext4/file.c | 4 +-
fs/ext4/inline.c | 59 +-
fs/ext4/inode.c | 85 +-
fs/ext4/ioctl.c | 69 +-
fs/ext4/mballoc.c | 35 +-
fs/ext4/mmp.c | 2 +-
fs/ext4/move_extent.c | 17 +-
fs/ext4/namei.c | 214 +-
fs/ext4/readpage.c | 4 +-
fs/ext4/super.c | 227 +-
fs/ext4/symlink.c | 51 +-
fs/ext4/verity.c | 9 +-
fs/f2fs/checkpoint.c | 18 +-
fs/f2fs/compress.c | 2 +-
fs/f2fs/data.c | 249 +-
fs/f2fs/debug.c | 18 +-
fs/f2fs/dir.c | 3 +-
fs/f2fs/f2fs.h | 147 +-
fs/f2fs/file.c | 330 +-
fs/f2fs/gc.c | 186 +-
fs/f2fs/hash.c | 11 +-
fs/f2fs/inline.c | 29 +-
fs/f2fs/inode.c | 34 +-
fs/f2fs/namei.c | 38 +-
fs/f2fs/node.c | 31 +-
fs/f2fs/node.h | 1 -
fs/f2fs/segment.c | 468 +-
fs/f2fs/segment.h | 40 +-
fs/f2fs/super.c | 90 +-
fs/f2fs/verity.c | 11 +-
fs/fat/fat.h | 14 +-
fs/fat/fatent.c | 7 +-
fs/fat/file.c | 19 +-
fs/fat/inode.c | 39 +-
fs/fat/misc.c | 78 +-
fs/fat/namei_vfat.c | 4 -
fs/fcntl.c | 9 +-
fs/file.c | 113 +-
fs/file_table.c | 9 +-
fs/freevxfs/vxfs.h | 27 +-
fs/freevxfs/vxfs_bmap.c | 26 +-
fs/freevxfs/vxfs_dir.h | 27 +-
fs/freevxfs/vxfs_extern.h | 27 +-
fs/freevxfs/vxfs_fshead.c | 26 +-
fs/freevxfs/vxfs_fshead.h | 27 +-
fs/freevxfs/vxfs_immed.c | 41 +-
fs/freevxfs/vxfs_inode.c | 26 +-
fs/freevxfs/vxfs_inode.h | 27 +-
fs/freevxfs/vxfs_lookup.c | 26 +-
fs/freevxfs/vxfs_olt.c | 26 +-
fs/freevxfs/vxfs_olt.h | 27 +-
fs/freevxfs/vxfs_subr.c | 43 +-
fs/freevxfs/vxfs_super.c | 26 +-
fs/fs-writeback.c | 56 +-
fs/fsopen.c | 4 +-
fs/fuse/dax.c | 4 +-
fs/fuse/dir.c | 10 +-
fs/fuse/file.c | 12 +-
fs/fuse/virtio_fs.c | 6 +-
fs/gfs2/aops.c | 81 +-
fs/gfs2/bmap.c | 11 +-
fs/gfs2/file.c | 143 +-
fs/gfs2/glock.c | 35 +-
fs/gfs2/glock.h | 12 +-
fs/gfs2/inode.h | 2 +-
fs/gfs2/main.c | 10 +-
fs/gfs2/meta_io.c | 4 +-
fs/gfs2/meta_io.h | 8 +-
fs/gfs2/quota.c | 62 +-
fs/gfs2/recovery.c | 22 +-
fs/gfs2/rgrp.c | 11 +-
fs/hfs/extent.c | 6 +-
fs/hfs/hfs_fs.h | 2 +
fs/hfs/inode.c | 38 +-
fs/hfsplus/extents.c | 8 +-
fs/hfsplus/hfsplus_fs.h | 2 +
fs/hfsplus/inode.c | 38 +-
fs/hostfs/hostfs_kern.c | 9 +-
fs/hpfs/file.c | 10 +-
fs/hpfs/namei.c | 5 +-
fs/hugetlbfs/inode.c | 44 +-
fs/inode.c | 2 +-
fs/internal.h | 32 +-
fs/io-wq.c | 4 +-
fs/io-wq.h | 1 +
fs/io_uring.c | 3867 +-
fs/iomap/buffered-io.c | 44 +-
fs/iomap/direct-io.c | 35 +-
fs/iomap/trace.h | 2 +-
fs/isofs/compress.c | 5 +-
fs/isofs/inode.c | 6 +-
fs/isofs/rock.c | 7 +-
fs/jbd2/commit.c | 14 +-
fs/jbd2/journal.c | 9 +-
fs/jbd2/transaction.c | 14 +-
fs/jffs2/erase.c | 6 +-
fs/jffs2/file.c | 23 +-
fs/jffs2/fs.c | 3 +-
fs/jffs2/gc.c | 2 +-
fs/jffs2/os-linux.h | 2 +-
fs/jfs/Makefile | 2 -
fs/jfs/inode.c | 29 +-
fs/jfs/ioctl.c | 5 +-
fs/jfs/jfs_dmap.c | 71 +-
fs/jfs/jfs_dtree.c | 298 -
fs/jfs/jfs_extent.c | 255 -
fs/jfs/jfs_logmgr.c | 8 -
fs/jfs/jfs_metapage.c | 21 +-
fs/jfs/jfs_mount.c | 4 +-
fs/jfs/jfs_txnmgr.c | 34 -
fs/jfs/jfs_xtree.c | 961 -
fs/jfs/jfs_xtree.h | 4 -
fs/jfs/super.c | 8 +-
fs/kernfs/dir.c | 31 +-
fs/kernfs/file.c | 47 +-
fs/ksmbd/connection.c | 22 +-
fs/ksmbd/connection.h | 27 +-
fs/ksmbd/ksmbd_netlink.h | 3 +-
fs/ksmbd/misc.c | 10 +-
fs/ksmbd/smb2misc.c | 2 +-
fs/ksmbd/smb2pdu.c | 126 +-
fs/ksmbd/smb_common.c | 4 +-
fs/ksmbd/smbacl.c | 1 +
fs/ksmbd/transport_ipc.c | 3 +
fs/ksmbd/transport_rdma.c | 363 +-
fs/ksmbd/transport_rdma.h | 8 +
fs/libfs.c | 18 +-
fs/locks.c | 61 +-
fs/minix/inode.c | 11 +-
fs/mpage.c | 20 +-
fs/namei.c | 117 +-
fs/namespace.c | 7 +-
fs/netfs/buffered_read.c | 34 +-
fs/netfs/internal.h | 2 +-
fs/netfs/objects.c | 8 +-
fs/nfs/dir.c | 9 +-
fs/nfs/direct.c | 23 +-
fs/nfs/file.c | 119 +-
fs/nfs/filelayout/filelayout.c | 7 +-
fs/nfs/fs_context.c | 2 +-
fs/nfs/fscache.c | 7 +-
fs/nfs/fscache.h | 14 +-
fs/nfs/internal.h | 1 +
fs/nfs/nfs4file.c | 4 +-
fs/nfs/nfs4namespace.c | 9 +-
fs/nfs/nfs4proc.c | 194 +-
fs/nfs/nfs4state.c | 29 +-
fs/nfs/nfs4xdr.c | 99 +-
fs/nfs/pagelist.c | 3 +
fs/nfs/pnfs.c | 2 +
fs/nfs/read.c | 3 +-
fs/nfs/symlink.c | 16 +-
fs/nfs/unlink.c | 8 +
fs/nfs/write.c | 54 +-
fs/nfsd/filecache.c | 77 +-
fs/nfsd/filecache.h | 2 +
fs/nfsd/nfs3proc.c | 141 +-
fs/nfsd/nfs4proc.c | 264 +-
fs/nfsd/nfs4state.c | 353 +-
fs/nfsd/nfs4xdr.c | 2 +-
fs/nfsd/nfscache.c | 2 +-
fs/nfsd/nfsctl.c | 20 +-
fs/nfsd/nfsd.h | 5 +
fs/nfsd/state.h | 31 +
fs/nfsd/trace.h | 34 +-
fs/nfsd/vfs.c | 255 +-
fs/nfsd/vfs.h | 14 +-
fs/nfsd/xdr4.h | 1 +
fs/nilfs2/inode.c | 27 +-
fs/nilfs2/ioctl.c | 6 +-
fs/nilfs2/recovery.c | 2 +-
fs/nilfs2/sufile.c | 4 +-
fs/nilfs2/the_nilfs.c | 4 +-
fs/notify/dnotify/dnotify.c | 13 +-
fs/notify/fanotify/fanotify.c | 24 +-
fs/notify/fanotify/fanotify.h | 12 +
fs/notify/fanotify/fanotify_user.c | 117 +-
fs/notify/fdinfo.c | 21 +-
fs/notify/fsnotify.c | 89 +-
fs/notify/group.c | 32 +-
fs/notify/inotify/inotify.h | 19 +
fs/notify/inotify/inotify_fsnotify.c | 2 +-
fs/notify/inotify/inotify_user.c | 47 +-
fs/notify/mark.c | 112 +-
fs/ntfs/aops.c | 40 +-
fs/ntfs/aops.h | 6 +-
fs/ntfs/attrib.c | 2 +-
fs/ntfs/compress.c | 4 +-
fs/ntfs/file.c | 8 +-
fs/ntfs/inode.c | 4 +-
fs/ntfs/mft.h | 2 +-
fs/ntfs3/file.c | 25 +-
fs/ntfs3/frecord.c | 10 +-
fs/ntfs3/fslog.c | 12 +-
fs/ntfs3/inode.c | 36 +-
fs/ntfs3/ntfs_fs.h | 5 +
fs/ntfs3/super.c | 20 +-
fs/ntfs3/xattr.c | 136 +-
fs/ocfs2/alloc.c | 2 +-
fs/ocfs2/aops.c | 23 +-
fs/ocfs2/dlm/dlmdebug.c | 12 +-
fs/ocfs2/dlm/dlmunlock.c | 21 +-
fs/ocfs2/dlmfs/userdlm.c | 17 +-
fs/ocfs2/file.c | 2 +-
fs/ocfs2/inode.c | 4 +-
fs/ocfs2/ioctl.c | 5 +-
fs/ocfs2/journal.c | 33 +-
fs/ocfs2/journal.h | 2 +
fs/ocfs2/quota_local.c | 10 +-
fs/ocfs2/refcounttree.c | 6 +-
fs/ocfs2/reservations.c | 4 +-
fs/ocfs2/reservations.h | 9 +-
fs/ocfs2/super.c | 180 +-
fs/ocfs2/symlink.c | 5 +-
fs/omfs/file.c | 11 +-
fs/open.c | 75 +-
fs/orangefs/inode.c | 52 +-
fs/overlayfs/copy_up.c | 90 +-
fs/overlayfs/dir.c | 147 +-
fs/overlayfs/export.c | 5 +
fs/overlayfs/file.c | 56 +-
fs/overlayfs/inode.c | 68 +-
fs/overlayfs/namei.c | 53 +-
fs/overlayfs/overlayfs.h | 232 +-
fs/overlayfs/ovl_entry.h | 7 +-
fs/overlayfs/readdir.c | 48 +-
fs/overlayfs/super.c | 57 +-
fs/overlayfs/util.c | 103 +-
fs/pipe.c | 33 +-
fs/proc/base.c | 22 +
fs/proc/cpuinfo.c | 6 +-
fs/proc/fd.c | 23 +-
fs/proc/generic.c | 3 +
fs/proc/kcore.c | 14 +-
fs/proc/meminfo.c | 7 +
fs/proc/proc_net.c | 3 +
fs/proc/proc_sysctl.c | 93 +-
fs/proc/task_mmu.c | 9 +-
fs/proc/vmcore.c | 130 +-
fs/qnx4/inode.c | 7 +-
fs/qnx6/inode.c | 6 +-
fs/quota/dquot.c | 10 +
fs/read_write.c | 16 +
fs/reiserfs/file.c | 2 +-
fs/reiserfs/inode.c | 36 +-
fs/reiserfs/journal.c | 14 +-
fs/romfs/super.c | 9 +-
fs/seq_file.c | 32 +
fs/smbfs_common/smb2pdu.h | 108 +-
fs/smbfs_common/smbfsctl.h | 6 +
fs/squashfs/block.c | 20 +-
fs/squashfs/file.c | 5 +-
fs/squashfs/super.c | 2 +-
fs/squashfs/symlink.c | 5 +-
fs/stat.c | 2 +-
fs/super.c | 2 +-
fs/sync.c | 9 +
fs/sysv/itree.c | 10 +-
fs/sysv/super.c | 4 +-
fs/ubifs/budget.c | 7 +-
fs/ubifs/file.c | 41 +-
fs/ubifs/super.c | 2 +-
fs/ubifs/ubifs.h | 2 +-
fs/ubifs/xattr.c | 2 +-
fs/udf/file.c | 14 +-
fs/udf/inode.c | 10 +-
fs/udf/namei.c | 8 +-
fs/udf/symlink.c | 5 +-
fs/ufs/inode.c | 13 +-
fs/userfaultfd.c | 32 +-
fs/vboxsf/file.c | 5 +-
fs/verity/Kconfig | 1 +
fs/verity/enable.c | 33 +-
fs/verity/fsverity_private.h | 13 +-
fs/verity/measure.c | 43 +
fs/verity/open.c | 12 +-
fs/verity/read_metadata.c | 5 +-
fs/xattr.c | 143 +-
fs/xfs/Makefile | 1 +
fs/xfs/libxfs/xfs_ag.c | 3 +-
fs/xfs/libxfs/xfs_alloc.c | 12 +-
fs/xfs/libxfs/xfs_alloc.h | 2 +-
fs/xfs/libxfs/xfs_attr.c | 1676 +-
fs/xfs/libxfs/xfs_attr.h | 205 +-
fs/xfs/libxfs/xfs_attr_leaf.c | 64 +-
fs/xfs/libxfs/xfs_attr_remote.c | 37 +-
fs/xfs/libxfs/xfs_attr_remote.h | 6 +-
fs/xfs/libxfs/xfs_bmap.c | 167 +-
fs/xfs/libxfs/xfs_bmap.h | 58 +-
fs/xfs/libxfs/xfs_bmap_btree.c | 9 +-
fs/xfs/libxfs/xfs_btree.c | 185 +-
fs/xfs/libxfs/xfs_btree.h | 26 +-
fs/xfs/libxfs/xfs_da_btree.c | 15 +
fs/xfs/libxfs/xfs_da_btree.h | 26 +-
fs/xfs/libxfs/xfs_da_format.h | 9 +-
fs/xfs/libxfs/xfs_defer.c | 97 +-
fs/xfs/libxfs/xfs_defer.h | 3 +
fs/xfs/libxfs/xfs_dir2.c | 8 +
fs/xfs/libxfs/xfs_errortag.h | 8 +-
fs/xfs/libxfs/xfs_format.h | 189 +-
fs/xfs/libxfs/xfs_fs.h | 41 +-
fs/xfs/libxfs/xfs_ialloc.c | 8 +-
fs/xfs/libxfs/xfs_ialloc.h | 2 +-
fs/xfs/libxfs/xfs_inode_buf.c | 118 +-
fs/xfs/libxfs/xfs_inode_fork.c | 51 +-
fs/xfs/libxfs/xfs_inode_fork.h | 76 +-
fs/xfs/libxfs/xfs_log_format.h | 87 +-
fs/xfs/libxfs/xfs_log_recover.h | 16 +-
fs/xfs/libxfs/xfs_log_rlimit.c | 75 +-
fs/xfs/libxfs/xfs_quota_defs.h | 50 +-
fs/xfs/libxfs/xfs_refcount.c | 14 +-
fs/xfs/libxfs/xfs_refcount.h | 13 +-
fs/xfs/libxfs/xfs_rmap.c | 161 +-
fs/xfs/libxfs/xfs_rmap.h | 7 +-
fs/xfs/libxfs/xfs_rtbitmap.c | 9 +-
fs/xfs/libxfs/xfs_sb.c | 80 +-
fs/xfs/libxfs/xfs_shared.h | 24 +-
fs/xfs/libxfs/xfs_symlink_remote.c | 2 +-
fs/xfs/libxfs/xfs_trans_resv.c | 225 +-
fs/xfs/libxfs/xfs_trans_resv.h | 16 +-
fs/xfs/libxfs/xfs_types.h | 11 +-
fs/xfs/scrub/bmap.c | 26 +-
fs/xfs/scrub/common.c | 2 +
fs/xfs/scrub/inode.c | 20 +-
fs/xfs/scrub/rtbitmap.c | 9 +-
fs/xfs/scrub/scrub.c | 17 +-
fs/xfs/xfs_acl.c | 7 +-
fs/xfs/xfs_acl.h | 8 +-
fs/xfs/xfs_aops.c | 14 +-
fs/xfs/xfs_attr_item.c | 882 +
fs/xfs/xfs_attr_item.h | 54 +
fs/xfs/xfs_attr_list.c | 1 +
fs/xfs/xfs_bmap_item.c | 27 +-
fs/xfs/xfs_bmap_util.c | 27 +-
fs/xfs/xfs_buf_item.h | 24 +-
fs/xfs/xfs_buf_item_recover.c | 66 +
fs/xfs/xfs_discard.c | 8 +-
fs/xfs/xfs_dquot.c | 18 +-
fs/xfs/xfs_dquot.h | 8 -
fs/xfs/xfs_error.c | 9 +
fs/xfs/xfs_error.h | 20 +-
fs/xfs/xfs_extfree_item.c | 23 +-
fs/xfs/xfs_file.c | 32 +-
fs/xfs/xfs_filestream.c | 7 +-
fs/xfs/xfs_fsmap.c | 6 +-
fs/xfs/xfs_fsops.c | 14 +-
fs/xfs/xfs_globals.c | 1 +
fs/xfs/xfs_icache.c | 9 +-
fs/xfs/xfs_icreate_item.c | 1 +
fs/xfs/xfs_inode.c | 82 +-
fs/xfs/xfs_inode.h | 29 +-
fs/xfs/xfs_inode_item.c | 48 +-
fs/xfs/xfs_inode_item_recover.c | 145 +-
fs/xfs/xfs_ioctl.c | 10 +-
fs/xfs/xfs_ioctl32.c | 2 +
fs/xfs/xfs_iomap.c | 33 +-
fs/xfs/xfs_iops.c | 7 +-
fs/xfs/xfs_itable.c | 15 +-
fs/xfs/xfs_itable.h | 5 +-
fs/xfs/xfs_iwalk.h | 2 +-
fs/xfs/xfs_log.c | 766 +-
fs/xfs/xfs_log.h | 97 +-
fs/xfs/xfs_log_cil.c | 393 +-
fs/xfs/xfs_log_priv.h | 92 +-
fs/xfs/xfs_log_recover.c | 95 +-
fs/xfs/xfs_message.c | 58 +-
fs/xfs/xfs_message.h | 61 +-
fs/xfs/xfs_mount.c | 92 +-
fs/xfs/xfs_mount.h | 50 +-
fs/xfs/xfs_ondisk.h | 2 +
fs/xfs/xfs_qm.c | 18 +-
fs/xfs/xfs_qm.h | 5 -
fs/xfs/xfs_qm_syscalls.c | 26 +-
fs/xfs/xfs_quotaops.c | 8 +-
fs/xfs/xfs_refcount_item.c | 25 +-
fs/xfs/xfs_reflink.c | 100 +-
fs/xfs/xfs_rmap_item.c | 25 +-
fs/xfs/xfs_rtalloc.c | 41 +
fs/xfs/xfs_rtalloc.h | 9 +-
fs/xfs/xfs_super.c | 50 +-
fs/xfs/xfs_super.h | 1 -
fs/xfs/xfs_symlink.c | 5 -
fs/xfs/xfs_sysctl.h | 1 +
fs/xfs/xfs_sysfs.c | 24 +
fs/xfs/xfs_trace.h | 100 +-
fs/xfs/xfs_trans.c | 52 +-
fs/xfs/xfs_trans.h | 38 +-
fs/xfs/xfs_trans_dquot.c | 4 +-
fs/xfs/xfs_xattr.c | 81 +-
fs/xfs/xfs_xattr.h | 13 +
fs/zonefs/Makefile | 2 +-
fs/zonefs/super.c | 300 +-
fs/zonefs/sysfs.c | 139 +
fs/zonefs/zonefs.h | 18 +-
include/acpi/acbuffer.h | 2 +-
include/acpi/acconfig.h | 2 +-
include/acpi/acexcep.h | 2 +-
include/acpi/acnames.h | 2 +-
include/acpi/acoutput.h | 2 +-
include/acpi/acpi.h | 2 +-
include/acpi/acpi_bus.h | 15 +-
include/acpi/acpiosxf.h | 2 +-
include/acpi/acpixf.h | 4 +-
include/acpi/acrestyp.h | 2 +-
include/acpi/actbl.h | 2 +-
include/acpi/actbl1.h | 18 +-
include/acpi/actbl2.h | 175 +-
include/acpi/actbl3.h | 2 +-
include/acpi/actypes.h | 19 +-
include/acpi/acuuid.h | 2 +-
include/acpi/apei.h | 2 +
include/acpi/cppc_acpi.h | 5 +
include/acpi/platform/acenv.h | 2 +-
include/acpi/platform/acenvex.h | 2 +-
include/acpi/platform/acgcc.h | 2 +-
include/acpi/platform/acgccex.h | 2 +-
include/acpi/platform/acintel.h | 2 +-
include/acpi/platform/aclinux.h | 2 +-
include/acpi/platform/aclinuxex.h | 2 +-
include/asm-generic/Kbuild | 1 +
include/asm-generic/compat.h | 113 +
include/asm-generic/export.h | 22 +-
include/asm-generic/hugetlb.h | 28 +-
include/asm-generic/pgtable-nopmd.h | 2 +
include/asm-generic/platform-feature.h | 8 +
include/asm-generic/qrwlock.h | 32 +-
include/asm-generic/qrwlock_types.h | 2 +-
include/asm-generic/qspinlock.h | 29 +
include/asm-generic/spinlock.h | 94 +-
include/asm-generic/spinlock_types.h | 17 +
include/asm-generic/tlb.h | 14 +
include/asm-generic/vmlinux.lds.h | 12 +-
include/clocksource/timer-goldfish.h | 31 +
include/clocksource/timer-xilinx.h | 73 +
include/crypto/sm4.h | 4 +
include/drm/display/drm_dp_helper.h | 30 +
include/drm/drm_bridge.h | 14 +
include/drm/drm_cache.h | 8 +
include/drm/drm_connector.h | 4 +
include/drm/drm_crtc.h | 6 +-
include/drm/drm_edid.h | 6 +-
include/drm/drm_panel.h | 16 +
include/drm/drm_writeback.h | 11 +-
include/drm/i915_pciids.h | 31 +
include/dt-bindings/clock/en7523-clk.h | 17 +
include/dt-bindings/clock/imx8mn-clock.h | 16 +-
include/dt-bindings/clock/imx8mp-clock.h | 9 +-
include/dt-bindings/clock/mt8186-clk.h | 445 +
include/dt-bindings/clock/qcom,gcc-msm8976.h | 1 +
include/dt-bindings/clock/qcom,gcc-msm8998.h | 4 +
include/dt-bindings/clock/qcom,gcc-sc8280xp.h | 496 +
.../dt-bindings/clock/qcom,lpassaudiocc-sc7280.h | 43 +
.../dt-bindings/clock/qcom,lpasscorecc-sc7280.h | 26 +
include/dt-bindings/clock/r8a779g0-cpg-mssr.h | 90 +
include/dt-bindings/clock/r9a07g043-cpg.h | 184 +
include/dt-bindings/clock/r9a09g011-cpg.h | 352 +
include/dt-bindings/clock/samsung,exynosautov9.h | 299 +
include/dt-bindings/clock/ste-db8500-clkout.h | 17 +
include/dt-bindings/clock/stm32mp1-clks.h | 46 +-
include/dt-bindings/clock/stm32mp13-clks.h | 229 +
include/dt-bindings/clock/sun50i-h6-r-ccu.h | 1 +
include/dt-bindings/clock/sun50i-h616-ccu.h | 1 +
include/dt-bindings/clock/tegra234-clock.h | 8 +
include/dt-bindings/gce/mt8186-gce.h | 421 +
include/dt-bindings/interconnect/qcom,sc8180x.h | 7 +
include/dt-bindings/interconnect/qcom,sc8280xp.h | 232 +
include/dt-bindings/interconnect/qcom,sdx65.h | 67 +
include/dt-bindings/mailbox/tegra186-hsp.h | 5 +
include/dt-bindings/memory/mt8186-memory-port.h | 217 +
include/dt-bindings/memory/mt8195-memory-port.h | 408 +
include/dt-bindings/memory/mtk-memory-port.h | 2 +
include/dt-bindings/mfd/cros_ec.h | 18 +
include/dt-bindings/pinctrl/mt6795-pinfunc.h | 908 +
include/dt-bindings/power/imx8mp-power.h | 18 +
include/dt-bindings/power/qcom-rpmpd.h | 26 +
include/dt-bindings/power/r8a779g0-sysc.h | 45 +
include/dt-bindings/reset/amlogic,meson-s4-reset.h | 125 +
include/dt-bindings/reset/mt7986-resets.h | 55 +
include/dt-bindings/reset/mt8186-resets.h | 36 +
include/dt-bindings/reset/mt8192-resets.h | 3 +
include/dt-bindings/reset/stm32mp1-resets.h | 24 +-
include/dt-bindings/reset/stm32mp13-resets.h | 100 +
include/dt-bindings/reset/tegra234-reset.h | 2 +
include/dt-bindings/sound/cs35l45.h | 20 +
include/keys/system_keyring.h | 14 +-
include/keys/trusted-type.h | 2 +-
include/keys/trusted_caam.h | 11 +
include/kunit/resource.h | 406 +
include/kunit/test.h | 418 +-
include/kvm/arm_arch_timer.h | 2 -
include/kvm/arm_hypercalls.h | 8 +
include/kvm/arm_pmu.h | 34 +-
include/kvm/arm_psci.h | 7 -
include/kvm/arm_vgic.h | 8 +-
include/linux/acct.h | 1 -
include/linux/acpi.h | 47 +-
include/linux/amba/bus.h | 14 +-
include/linux/amba/mmci.h | 6 -
include/linux/arm_ffa.h | 7 +-
include/linux/atomic/atomic-arch-fallback.h | 72 +-
include/linux/atomic/atomic-instrumented.h | 40 +-
include/linux/audit.h | 2 +-
include/linux/backing-dev.h | 6 +-
include/linux/bio.h | 16 +-
include/linux/bitmap.h | 56 +-
include/linux/blk-cgroup.h | 258 +-
include/linux/blk-mq.h | 4 +-
include/linux/blk_types.h | 27 +-
include/linux/blkdev.h | 136 +-
include/linux/blktrace_api.h | 10 +-
include/linux/bootconfig.h | 10 +
include/linux/bpf-cgroup.h | 8 +-
include/linux/bpf.h | 353 +-
include/linux/bpf_local_storage.h | 4 +-
include/linux/bpf_types.h | 1 +
include/linux/bpf_verifier.h | 23 +-
include/linux/btf.h | 23 +
include/linux/btf_ids.h | 3 +-
include/linux/buffer_head.h | 14 +-
include/linux/can/dev.h | 10 -
include/linux/can/led.h | 51 -
include/linux/can/rx-offload.h | 4 +-
include/linux/cc_platform.h | 18 +
include/linux/cdrom.h | 1 -
include/linux/ceph/osd_client.h | 3 +
include/linux/clk/pxa.h | 16 +
include/linux/cma.h | 4 +-
include/linux/compaction.h | 5 +-
include/linux/compat.h | 69 +
include/linux/compiler-clang.h | 10 +
include/linux/compiler-gcc.h | 8 -
include/linux/compiler.h | 6 +-
include/linux/compiler_types.h | 14 +-
include/linux/console.h | 19 +
include/linux/context_tracking_state.h | 8 +-
include/linux/cper.h | 3 +
include/linux/cpufreq.h | 1 -
include/linux/cpuhotplug.h | 2 +
include/linux/crash_dump.h | 19 +-
include/linux/crc-itu-t.h | 2 +-
include/linux/damon.h | 14 +
include/linux/dax.h | 22 +-
include/linux/delayacct.h | 31 +-
include/linux/devfreq.h | 17 +-
include/linux/device-mapper.h | 13 +-
include/linux/device.h | 121 +-
include/linux/device/bus.h | 3 +
include/linux/device/driver.h | 2 +
.../{platform_data/dma-imx.h => dma/imx-dma.h} | 26 +-
include/linux/dmaengine.h | 9 +-
include/linux/dmar.h | 6 +-
include/linux/efi.h | 28 +
include/linux/elfcore.h | 9 -
include/linux/energy_model.h | 35 +-
include/linux/entry-common.h | 8 +-
include/linux/ethtool.h | 4 +
include/linux/export-internal.h | 17 +
include/linux/export.h | 37 +-
include/linux/extcon.h | 2 +-
include/linux/fanotify.h | 1 +
include/linux/fault-inject.h | 2 +
include/linux/fb.h | 1 -
include/linux/fdtable.h | 2 +-
include/linux/file.h | 2 -
include/linux/find.h | 6 +-
include/linux/firewire.h | 3 +
include/linux/firmware.h | 82 +
include/linux/firmware/cirrus/cs_dsp.h | 28 +-
include/linux/firmware/mediatek/mtk-adsp-ipc.h | 65 +
include/linux/firmware/xlnx-event-manager.h | 4 +-
include/linux/firmware/xlnx-zynqmp.h | 11 +
include/linux/fortify-string.h | 16 +
include/linux/fpga/fpga-region.h | 6 +-
include/linux/fs.h | 75 +-
include/linux/fscache.h | 1 +
include/linux/fscrypt.h | 51 +-
include/linux/fsl/mc.h | 14 +-
include/linux/fsnotify_backend.h | 98 +-
include/linux/fsverity.h | 18 +
include/linux/ftrace.h | 13 +-
include/linux/fwnode.h | 15 +-
include/linux/gfp.h | 20 +-
include/linux/goldfish.h | 15 +-
include/linux/gpio/consumer.h | 16 +-
include/linux/gpio/driver.h | 68 +-
include/linux/gpio/machine.h | 12 +
include/linux/highmem-internal.h | 28 +-
include/linux/highmem.h | 53 +-
include/linux/hisi_acc_qm.h | 23 +-
include/linux/host1x.h | 6 +
include/linux/host1x_context_bus.h | 15 +
include/linux/hte.h | 271 +
include/linux/huge_mm.h | 20 +-
include/linux/hugetlb.h | 47 +-
include/linux/hwmon.h | 6 +
include/linux/hyperv.h | 103 +-
include/linux/icmpv6.h | 11 +-
include/linux/ieee802154.h | 81 +-
include/linux/iio/adc/ad_sigma_delta.h | 38 +
include/linux/iio/adc/qcom-vadc-common.h | 2 +
include/linux/iio/common/st_sensors.h | 3 +
include/linux/iio/iio-opaque.h | 4 +
include/linux/iio/iio.h | 70 +-
include/linux/iio/kfifo_buf.h | 5 +-
include/linux/initrd.h | 2 -
include/linux/instrumentation.h | 6 +-
include/linux/intel-iommu.h | 3 +-
include/linux/intel-svm.h | 2 +-
include/linux/interrupt.h | 27 +-
include/linux/io_uring.h | 38 +
include/linux/iomap.h | 20 +-
include/linux/iommu.h | 69 +-
include/linux/ipc_namespace.h | 37 +-
include/linux/ipmi.h | 5 +
include/linux/ipmi_smi.h | 6 +
include/linux/ipv6.h | 6 +-
include/linux/irq.h | 2 +
include/linux/irqchip/arm-gic-v3.h | 2 +
include/linux/irqchip/irq-ixp4xx.h | 12 -
include/linux/irqflags.h | 4 +-
include/linux/jbd2.h | 2 +-
include/linux/jump_label.h | 4 +-
include/linux/kallsyms.h | 7 +-
include/linux/kasan.h | 8 +-
include/linux/kdb.h | 1 +
include/linux/kexec.h | 48 +-
include/linux/khugepaged.h | 44 +-
include/linux/kprobes.h | 2 +-
include/linux/ksm.h | 4 +-
include/linux/kthread.h | 4 -
include/linux/kvm_host.h | 6 +-
include/linux/latencytop.h | 3 -
include/linux/libata.h | 4 +-
include/linux/linkage.h | 15 +-
include/linux/list.h | 42 +-
include/linux/livepatch.h | 2 -
include/linux/lockdep.h | 10 +-
include/linux/lsm_audit.h | 2 +
include/linux/lsm_hook_defs.h | 2 +-
include/linux/lsm_hooks.h | 5 +-
include/linux/mailbox_controller.h | 1 +
include/linux/mdev.h | 82 +-
include/linux/mdio.h | 70 +
include/linux/memcontrol.h | 72 +-
include/linux/memory_hotplug.h | 14 +-
include/linux/mfd/hi655x-pmic.h | 4 +-
include/linux/mfd/idt8a340_reg.h | 12 +-
include/linux/mfd/mt6359/registers.h | 2 +
include/linux/mfd/tc6393xb.h | 3 -
include/linux/mfd/tps65218.h | 2 +-
include/linux/mhi_ep.h | 277 +
include/linux/migrate.h | 39 +-
include/linux/mlx5/accel.h | 156 -
include/linux/mlx5/driver.h | 29 +-
include/linux/mlx5/fs.h | 12 +
include/linux/mlx5/mlx5_ifc.h | 29 +-
include/linux/mlx5/mlx5_ifc_fpga.h | 211 -
include/linux/mlx5/mlx5_ifc_vdpa.h | 39 +
include/linux/mlx5/port.h | 2 +-
include/linux/mm.h | 80 +-
include/linux/mm_inline.h | 43 +
include/linux/mm_types.h | 25 +
include/linux/mman.h | 4 -
include/linux/mmc/core.h | 2 +-
include/linux/mmc/host.h | 2 +-
include/linux/mmzone.h | 5 +-
include/linux/mod_devicetable.h | 2 +
include/linux/module.h | 32 +-
include/linux/mount.h | 29 +-
include/linux/mpage.h | 2 +-
include/linux/mtd/cfi.h | 1 +
.../mtk_ecc.h => include/linux/mtd/nand-ecc-mtk.h | 0
include/linux/mtd/spi-nor.h | 4 +-
include/linux/mtd/spinand.h | 1 +
include/linux/namei.h | 6 +
include/linux/netdev_features.h | 4 +-
include/linux/netdevice.h | 380 +-
include/linux/netfs.h | 63 +-
include/linux/nfs4.h | 2 +
include/linux/nfs_fs.h | 4 +-
include/linux/nfs_fs_sb.h | 1 +
include/linux/nfs_xdr.h | 12 +-
include/linux/nodemask.h | 51 +-
include/linux/notifier.h | 7 +
include/linux/nvme-fc-driver.h | 14 +
include/linux/nvme.h | 46 +-
include/linux/nvmem-consumer.h | 1 +
include/linux/objtool.h | 10 +-
include/linux/of.h | 16 +-
include/linux/of_irq.h | 6 +-
include/linux/omap-dma.h | 35 +-
include/linux/oom.h | 4 -
include/linux/page-flags.h | 64 +-
include/linux/page-isolation.h | 6 +-
include/linux/pagemap.h | 79 +-
include/linux/panic.h | 6 -
include/linux/pci.h | 18 +-
include/linux/perf_event.h | 22 +
include/linux/pgtable.h | 84 +-
include/linux/phy.h | 8 +-
include/linux/phy/phy-lvds.h | 32 +
include/linux/phy/phy.h | 4 +
include/linux/phylink.h | 6 -
include/linux/pipe_fs_i.h | 2 +-
include/linux/platform-feature.h | 19 +
include/linux/platform_data/asoc-poodle.h | 16 +
.../linux/platform_data/asoc-pxa.h | 4 +-
include/linux/platform_data/cros_ec_commands.h | 10 +-
include/linux/platform_data/cros_ec_proto.h | 6 +-
include/linux/platform_data/max732x.h | 12 -
include/linux/platform_data/mlxreg.h | 4 +
include/linux/platform_data/pcf857x.h | 2 +-
include/linux/{mmc => platform_data}/sh_mmcif.h | 2 -
include/linux/platform_data/timer-ixp4xx.h | 11 -
include/linux/platform_data/usb-omap1.h | 2 +
include/linux/platform_data/video-pxafb.h | 22 +-
include/linux/platform_data/x86/pmc_atom.h | 1 -
include/linux/platform_device.h | 16 +-
include/linux/pm.h | 24 +-
include/linux/pm_domain.h | 24 +-
include/linux/pm_opp.h | 41 +-
include/linux/pm_runtime.h | 10 +-
include/linux/polynomial.h | 35 +
include/linux/prandom.h | 61 +-
include/linux/printk.h | 83 +-
include/linux/property.h | 17 +-
include/linux/ptp_classify.h | 3 +
include/linux/ptp_clock_kernel.h | 42 +-
include/linux/ptrace.h | 7 -
include/linux/qed/qed_fcoe_if.h | 4 +-
include/linux/qed/qed_iscsi_if.h | 4 +-
include/linux/qed/qed_nvmetcp_if.h | 2 +-
include/linux/qed/qed_nvmetcp_ip_services_if.h | 29 -
include/linux/random.h | 89 +-
include/linux/randomize_kstack.h | 27 +-
include/linux/rcupdate.h | 1 +
include/linux/reboot.h | 95 +-
include/linux/regmap.h | 12 +
include/linux/regulator/mt6358-regulator.h | 45 +
include/linux/regulator/pca9450.h | 7 +
include/linux/remoteproc/mtk_scp.h | 2 +
include/linux/rmap.h | 149 +-
include/linux/rpmsg.h | 14 +-
include/linux/rtnetlink.h | 1 +
include/linux/rtsx_pci.h | 3 +
include/linux/sched.h | 70 +-
include/linux/sched/coredump.h | 3 +-
include/linux/sched/jobctl.h | 8 +
include/linux/sched/mm.h | 11 +-
include/linux/sched/signal.h | 35 +-
include/linux/sched/sysctl.h | 41 -
include/linux/sched/task.h | 8 +-
include/linux/sched/task_stack.h | 2 +-
include/linux/scmi_protocol.h | 31 +-
include/linux/seccomp.h | 3 +-
include/linux/security.h | 2 +
include/linux/seq_file.h | 4 +
include/linux/serial_core.h | 1 +
include/linux/serial_s3c.h | 3 +
include/linux/set_memory.h | 10 +-
include/linux/shmem_fs.h | 6 +-
include/linux/signal.h | 3 +-
include/linux/siphash.h | 33 +-
include/linux/skbuff.h | 428 +-
include/linux/slab.h | 27 +-
include/linux/slub_def.h | 1 -
include/linux/soc/apple/rtkit.h | 155 +
include/linux/soc/apple/sart.h | 53 +
include/linux/soc/mediatek/mtk-cmdq.h | 5 +-
include/linux/soc/mediatek/mtk-mmsys.h | 12 +
include/linux/soc/mediatek/mtk_wed.h | 131 +
.../mach/hardware.h => include/linux/soc/pxa/cpu.h | 61 +-
.../include/plat => include/linux/soc/pxa}/mfp.h | 6 +-
include/linux/soc/pxa/smemc.h | 13 +
include/linux/soc/qcom/llcc-qcom.h | 2 +
include/linux/soc/renesas/r9a06g032-sysctrl.h | 11 +
include/linux/soc/ti/omap1-io.h | 143 +
.../mach/mux.h => include/linux/soc/ti/omap1-mux.h | 142 +-
.../mach/soc.h => include/linux/soc/ti/omap1-soc.h | 22 -
.../mach/usb.h => include/linux/soc/ti/omap1-usb.h | 28 +-
include/linux/socket.h | 7 +-
include/linux/spi/spi.h | 4 +
include/linux/srcutree.h | 32 +-
include/linux/stackdepot.h | 26 +-
include/linux/stackleak.h | 55 +-
include/linux/stmmac.h | 1 +
include/linux/stop_machine.h | 16 +
include/linux/string.h | 4 +
include/linux/sunrpc/cache.h | 8 +-
include/linux/sunrpc/clnt.h | 1 +
include/linux/sunrpc/svc.h | 4 +-
include/linux/sunrpc/xdr.h | 16 +-
include/linux/suspend.h | 44 +-
include/linux/swap.h | 196 +-
include/linux/swap_slots.h | 2 +-
include/linux/swapops.h | 134 +-
include/linux/swiotlb.h | 22 +-
include/linux/sysctl.h | 9 +-
include/linux/task_work.h | 1 +
include/linux/tee_drv.h | 18 -
include/linux/thermal.h | 3 +
include/linux/thunderbolt.h | 21 +-
include/linux/timekeeping.h | 1 +
include/linux/timer.h | 8 -
include/linux/timex.h | 8 +
include/linux/topology.h | 7 -
include/linux/torture.h | 2 +-
include/linux/uaccess.h | 22 +
include/linux/usb.h | 17 +-
include/linux/usb/gadget.h | 28 +-
include/linux/usb/hcd.h | 2 +
include/linux/usb/rndis_host.h | 1 +
include/linux/usb/typec_mux.h | 22 +-
include/linux/usb/usbnet.h | 1 +
include/linux/userfaultfd_k.h | 84 +
include/linux/vdpa.h | 66 +-
include/linux/vermagic.h | 10 +-
include/linux/vfio.h | 44 +-
include/linux/vfio_pci_core.h | 3 +-
include/linux/vhost_iotlb.h | 2 +
include/linux/virtio.h | 1 +
include/linux/virtio_config.h | 56 +-
include/linux/vm_event_item.h | 7 +
include/linux/wkup_m3_ipc.h | 13 +
include/linux/wm97xx.h | 4 -
include/linux/workqueue.h | 66 +-
include/linux/writeback.h | 22 +-
include/linux/xarray.h | 1 +
include/media/cec.h | 14 +
include/media/dvb-usb-ids.h | 632 +-
include/media/i2c/mt9t112.h | 2 +-
include/media/i2c/wm8775.h | 2 +-
include/media/media-device.h | 51 +-
include/media/media-entity.h | 21 +-
include/media/mipi-csi2.h | 1 +
include/media/v4l2-fwnode.h | 2 +
include/media/v4l2-h264.h | 31 +-
include/media/v4l2-mediabus.h | 2 +
include/media/v4l2-subdev.h | 279 +-
include/media/videobuf2-v4l2.h | 23 +-
include/net/act_api.h | 3 +-
include/net/amt.h | 2 +-
include/net/ax25.h | 1 +
include/net/bluetooth/hci.h | 10 +
include/net/bluetooth/hci_core.h | 28 +-
include/net/bonding.h | 6 +
include/net/cfg80211.h | 16 +-
include/net/cfg802154.h | 8 +-
include/net/devlink.h | 48 +
include/net/dsa.h | 25 +-
include/net/flow_dissector.h | 9 +
include/net/flow_offload.h | 1 +
include/net/if_inet6.h | 8 +
include/net/inet6_hashtables.h | 28 +-
include/net/inet_connection_sock.h | 5 +-
include/net/inet_hashtables.h | 145 +-
include/net/inet_sock.h | 5 +-
include/net/inet_timewait_sock.h | 3 +-
include/net/ip.h | 3 +-
include/net/ip_fib.h | 4 +-
include/net/ipv6.h | 48 +-
include/net/mac80211.h | 126 +-
include/net/mac802154.h | 19 +
include/net/mptcp.h | 11 +-
include/net/net_debug.h | 157 +
include/net/netfilter/nf_conntrack.h | 23 +-
include/net/netfilter/nf_conntrack_core.h | 9 +-
include/net/netfilter/nf_conntrack_count.h | 1 +
include/net/netfilter/nf_conntrack_ecache.h | 53 +-
include/net/netfilter/nf_conntrack_extend.h | 31 +-
include/net/netfilter/nf_conntrack_labels.h | 10 +-
include/net/netfilter/nf_conntrack_timeout.h | 8 -
include/net/netfilter/nf_reject.h | 21 +-
include/net/netfilter/nf_tables.h | 1 -
include/net/netfilter/nf_tables_offload.h | 2 +-
include/net/netns/conntrack.h | 8 +-
include/net/page_pool.h | 21 +
include/net/ping.h | 4 +-
include/net/pkt_cls.h | 6 +-
include/net/route.h | 36 +-
include/net/rtnetlink.h | 16 +-
include/net/sch_generic.h | 42 +-
include/net/sctp/sctp.h | 2 +-
include/net/secure_seq.h | 4 +-
include/net/sock.h | 64 +-
include/net/strparser.h | 4 +
include/net/tc_act/tc_gact.h | 15 +
include/net/tc_act/tc_pedit.h | 1 +
include/net/tc_act/tc_skbedit.h | 13 +
include/net/tcp.h | 45 +-
include/net/tls.h | 16 +-
include/net/udp.h | 8 +-
include/net/xfrm.h | 34 +-
include/pcmcia/soc_common.h | 125 +
include/ras/ras_event.h | 1 -
include/rdma/ib_verbs.h | 146 +-
include/rdma/opa_vnic.h | 3 +-
include/scsi/libfcoe.h | 5 +-
include/scsi/libiscsi.h | 6 +-
include/scsi/sas_ata.h | 7 +
include/scsi/scsi_device.h | 9 +-
include/scsi/scsi_proto.h | 9 +-
include/soc/fsl/caam-blob.h | 103 +
include/soc/mscc/ocelot.h | 42 +-
include/soc/mscc/ocelot_vcap.h | 4 +-
include/soc/rockchip/pm_domains.h | 25 +
include/soc/tegra/mc.h | 8 +-
include/sound/cs35l41.h | 137 +-
include/sound/cs42l42.h | 810 +
include/sound/hda_codec.h | 3 +
include/sound/intel-dsp-config.h | 3 +-
include/sound/intel-nhlt.h | 6 +-
include/sound/jack.h | 1 +
include/sound/pxa2xx-lib.h | 4 +
include/sound/soc-acpi.h | 2 +
include/sound/soc-card.h | 7 +-
include/sound/soc-component.h | 9 +
include/sound/soc-dpcm.h | 2 +
include/sound/soc.h | 27 +-
include/sound/sof.h | 23 +-
include/sound/sof/ext_manifest4.h | 119 +
include/sound/sof/ipc4/header.h | 460 +
include/sound/sof/stream.h | 3 +-
include/target/iscsi/iscsi_target_core.h | 52 +-
include/target/iscsi/iscsi_transport.h | 126 +-
include/target/target_core_backend.h | 4 +-
include/trace/events/btrfs.h | 34 +-
include/trace/events/cachefiles.h | 176 +
include/trace/events/compaction.h | 4 +-
include/trace/events/ext4.h | 21 +-
include/trace/events/f2fs.h | 153 +-
include/trace/events/intel_ifs.h | 41 +
include/trace/events/io_uring.h | 107 +-
include/trace/events/kmem.h | 26 +-
include/trace/events/lock.h | 63 +-
include/trace/events/mmflags.h | 84 +-
include/trace/events/mptcp.h | 6 +-
include/trace/events/percpu.h | 23 +-
include/trace/events/rxrpc.h | 265 +-
include/trace/events/sched.h | 6 +-
include/trace/events/skb.h | 21 +-
include/trace/events/sunrpc.h | 12 +-
include/trace/events/swiotlb.h | 29 +-
include/trace/events/tcp.h | 47 +-
include/trace/events/thermal_pressure.h | 29 +
include/trace/events/timer.h | 5 +-
include/trace/events/vmscan.h | 20 +-
include/trace/events/workqueue.h | 8 +-
include/uapi/asm-generic/fcntl.h | 23 +-
include/uapi/asm-generic/siginfo.h | 7 +
include/uapi/asm-generic/socket.h | 2 +
include/uapi/asm-generic/termbits-common.h | 65 +
include/uapi/asm-generic/termbits.h | 239 +-
include/uapi/asm-generic/unistd.h | 4 +-
include/uapi/drm/amdgpu_drm.h | 10 +
include/uapi/drm/drm_fourcc.h | 22 +
include/uapi/drm/i915_drm.h | 62 +-
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/acct.h | 3 +-
include/uapi/linux/agpgart.h | 9 +-
include/uapi/linux/android/binder.h | 18 +-
include/uapi/linux/atm_zatm.h | 47 -
include/uapi/linux/audit.h | 2 +
include/uapi/linux/bpf.h | 125 +
include/uapi/linux/btf.h | 4 +-
include/uapi/linux/btrfs_tree.h | 13 -
include/uapi/linux/cachefiles.h | 68 +
include/uapi/linux/can/isotp.h | 25 +-
include/uapi/linux/cdrom.h | 2 +-
include/uapi/linux/cec.h | 20 +
include/uapi/linux/cxl_mem.h | 14 +-
include/uapi/linux/devlink.h | 23 +
include/uapi/linux/dma-buf.h | 4 +-
include/uapi/linux/elf-em.h | 1 +
include/uapi/linux/elf.h | 9 +-
include/uapi/linux/ethtool.h | 1 +
include/uapi/linux/ethtool_netlink.h | 1 +
include/uapi/linux/fanotify.h | 1 +
include/uapi/linux/gpio.h | 3 +
include/uapi/linux/idxd.h | 31 +-
include/uapi/linux/if_link.h | 7 +
include/uapi/linux/input.h | 1 +
include/uapi/linux/io_uring.h | 134 +-
include/uapi/linux/ipv6.h | 1 +
include/uapi/linux/kexec.h | 1 +
include/uapi/linux/kvm.h | 54 +-
include/uapi/linux/landlock.h | 36 +-
include/uapi/linux/lirc.h | 7 +
include/uapi/linux/loop.h | 7 +-
include/uapi/linux/mdio.h | 75 +
include/uapi/linux/media-bus-format.h | 6 +-
include/uapi/linux/media.h | 4 +-
include/uapi/linux/mptcp.h | 8 +
include/uapi/linux/neighbour.h | 2 +
include/uapi/linux/netlink.h | 1 +
include/uapi/linux/nl80211.h | 2 +
include/uapi/linux/nvme_ioctl.h | 28 +
include/uapi/linux/pci_regs.h | 1 +
include/uapi/linux/pkt_cls.h | 2 +
include/uapi/linux/prctl.h | 9 +
include/uapi/linux/rfkill.h | 2 +-
include/uapi/linux/seccomp.h | 2 +
include/uapi/linux/sev-guest.h | 80 +
include/uapi/linux/socket.h | 2 +-
include/uapi/linux/spi/spi.h | 3 +-
include/uapi/linux/taskstats.h | 28 +-
include/uapi/linux/tc_act/tc_skbedit.h | 2 +
include/uapi/linux/tee.h | 4 -
include/uapi/linux/tipc_config.h | 28 +-
include/uapi/linux/tls.h | 2 +
include/uapi/linux/types.h | 3 +
include/uapi/linux/userfaultfd.h | 10 +-
include/uapi/linux/v4l2-controls.h | 5 +
include/uapi/linux/vdpa.h | 6 +
include/uapi/linux/vfio.h | 4 +-
include/uapi/linux/vhost.h | 26 +-
include/uapi/linux/vhost_types.h | 11 +-
include/uapi/linux/videodev2.h | 5 +-
include/uapi/linux/virtio_ids.h | 14 +-
include/uapi/misc/habanalabs.h | 87 +-
include/uapi/rdma/ib_user_verbs.h | 42 +
include/uapi/scsi/scsi_bsg_mpi3mr.h | 582 +
include/uapi/sound/intel/avs/tokens.h | 126 +
include/uapi/sound/sof/abi.h | 4 +-
{drivers/scsi => include}/ufs/ufs.h | 35 -
{drivers/scsi => include}/ufs/ufs_quirks.h | 15 +-
{drivers/scsi => include}/ufs/ufshcd.h | 376 +-
{drivers/scsi => include}/ufs/ufshci.h | 2 +
{drivers/scsi => include}/ufs/unipro.h | 18 +-
include/video/radeon.h | 2 +-
include/xen/arm/page-coherent.h | 20 -
include/xen/arm/page.h | 4 -
include/xen/arm/xen-ops.h | 18 +
include/xen/grant_table.h | 12 +-
include/xen/interface/grant_table.h | 161 +-
include/xen/interface/io/ring.h | 19 +-
include/xen/interface/io/vscsiif.h | 133 +-
include/xen/interface/io/xs_wire.h | 37 +-
include/xen/swiotlb-xen.h | 2 -
include/xen/xen-ops.h | 20 +-
include/xen/xen.h | 8 +
include/xen/xenbus.h | 4 +-
init/Kconfig | 264 +-
init/do_mounts_initrd.c | 22 +-
init/initramfs.c | 78 +-
init/main.c | 53 +-
ipc/ipc_sysctl.c | 205 +-
ipc/mq_sysctl.c | 121 +-
ipc/mqueue.c | 24 +-
ipc/namespace.c | 10 +
ipc/sem.c | 25 +-
kernel/Makefile | 7 +-
kernel/acct.c | 22 +-
kernel/audit_fsnotify.c | 5 +-
kernel/audit_tree.c | 34 +-
kernel/audit_watch.c | 2 +-
kernel/auditsc.c | 6 +
kernel/bpf/Kconfig | 1 +
kernel/bpf/Makefile | 2 +-
kernel/bpf/arraymap.c | 61 +-
kernel/bpf/bloom_filter.c | 6 +-
kernel/bpf/bpf_inode_storage.c | 10 +-
kernel/bpf/bpf_iter.c | 32 +-
kernel/bpf/bpf_local_storage.c | 29 +-
kernel/bpf/bpf_lru_list.h | 1 +
kernel/bpf/bpf_lsm.c | 17 +
kernel/bpf/bpf_struct_ops.c | 81 +-
kernel/bpf/bpf_task_storage.c | 9 +-
kernel/bpf/btf.c | 641 +-
kernel/bpf/cgroup.c | 106 +-
kernel/bpf/core.c | 43 +-
kernel/bpf/cpumap.c | 6 +-
kernel/bpf/devmap.c | 10 +-
kernel/bpf/hashtab.c | 133 +-
kernel/bpf/helpers.c | 223 +-
kernel/bpf/link_iter.c | 107 +
kernel/bpf/local_storage.c | 7 +-
kernel/bpf/lpm_trie.c | 6 +-
kernel/bpf/map_in_map.c | 5 +-
kernel/bpf/queue_stack_maps.c | 10 +-
kernel/bpf/reuseport_array.c | 6 +-
kernel/bpf/ringbuf.c | 88 +-
kernel/bpf/stackmap.c | 7 +-
kernel/bpf/syscall.c | 500 +-
kernel/bpf/task_iter.c | 1 -
kernel/bpf/trampoline.c | 118 +-
kernel/bpf/verifier.c | 819 +-
kernel/cgroup/cgroup-internal.h | 1 -
kernel/cgroup/cgroup.c | 4 +-
kernel/cgroup/cpuset.c | 7 +-
kernel/configs/x86_debug.config | 18 +
kernel/cpu.c | 29 +-
kernel/crash_core.c | 6 +-
kernel/debug/debug_core.c | 24 +
kernel/debug/kdb/kdb_io.c | 1 -
kernel/debug/kdb/kdb_keyboard.c | 1 -
kernel/debug/kdb/kdb_main.c | 111 +-
kernel/debug/kdb/kdb_private.h | 4 -
kernel/debug/kdb/kdb_support.c | 1 -
kernel/delayacct.c | 38 +-
kernel/dma/debug.c | 4 +-
kernel/dma/direct.c | 31 +-
kernel/dma/direct.h | 2 +-
kernel/dma/swiotlb.c | 194 +-
kernel/entry/common.c | 8 +-
kernel/entry/kvm.c | 6 -
kernel/events/core.c | 19 +-
kernel/events/uprobes.c | 9 +-
kernel/fork.c | 57 +-
kernel/futex/pi.c | 2 +-
kernel/gen_kheaders.sh | 2 +-
kernel/hung_task.c | 13 +-
kernel/irq/affinity.c | 2 +-
kernel/irq/chip.c | 13 +-
kernel/irq/debugfs.c | 1 +
kernel/irq/internals.h | 2 +
kernel/irq/irq_sim.c | 2 +-
kernel/irq/irqdesc.c | 3 +-
kernel/irq/manage.c | 70 +-
kernel/irq/matrix.c | 2 +-
kernel/irq/msi.c | 15 +
kernel/kallsyms.c | 3 +-
kernel/kcov.c | 14 +-
kernel/kcsan/kcsan_test.c | 36 +-
kernel/kexec_core.c | 26 +-
kernel/kexec_file.c | 38 +-
kernel/kprobes.c | 144 +-
kernel/kthread.c | 1 -
kernel/latencytop.c | 41 +-
kernel/livepatch/patch.c | 2 +-
kernel/locking/lockdep.c | 58 +-
kernel/locking/mutex.c | 18 +-
kernel/locking/percpu-rwsem.c | 5 +
kernel/locking/qrwlock.c | 17 +-
kernel/locking/qspinlock.c | 5 +
kernel/locking/rtmutex.c | 11 +
kernel/locking/rwbase_rt.c | 7 +
kernel/locking/rwsem.c | 130 +-
kernel/locking/semaphore.c | 15 +-
kernel/module-internal.h | 50 -
kernel/module/Makefile | 21 +
kernel/module/debug_kmemleak.c | 30 +
.../{module_decompress.c => module/decompress.c} | 5 +-
kernel/module/internal.h | 302 +
kernel/module/kallsyms.c | 512 +
kernel/module/kdb.c | 62 +
kernel/module/livepatch.c | 74 +
kernel/{module.c => module/main.c} | 2081 +-
kernel/module/procfs.c | 146 +
kernel/module/signing.c | 125 +
kernel/module/strict_rwx.c | 143 +
kernel/module/sysfs.c | 436 +
kernel/module/tracking.c | 61 +
kernel/module/tree_lookup.c | 117 +
kernel/module/version.c | 101 +
kernel/module_signing.c | 45 -
kernel/notifier.c | 101 +-
kernel/panic.c | 32 +-
kernel/pid_namespace.c | 2 +-
kernel/platform-feature.c | 27 +
kernel/power/Makefile | 6 +-
kernel/power/energy_model.c | 65 +-
kernel/power/hibernate.c | 2 +-
kernel/power/main.c | 34 +-
kernel/power/process.c | 3 -
kernel/power/snapshot.c | 12 +-
kernel/power/suspend.c | 3 +-
kernel/printk/printk.c | 1203 +-
kernel/ptrace.c | 93 +-
kernel/rcu/Kconfig | 73 +-
kernel/rcu/Kconfig.debug | 23 +-
kernel/rcu/rcu.h | 15 +-
kernel/rcu/rcu_segcblist.c | 8 +-
kernel/rcu/rcuscale.c | 22 +-
kernel/rcu/rcutorture.c | 129 +-
kernel/rcu/refscale.c | 22 +-
kernel/rcu/srcutree.c | 639 +-
kernel/rcu/sync.c | 2 +-
kernel/rcu/tasks.h | 89 +-
kernel/rcu/tree.c | 146 +-
kernel/rcu/tree.h | 9 +-
kernel/rcu/tree_exp.h | 151 +-
kernel/rcu/tree_nocb.h | 39 +-
kernel/rcu/tree_plugin.h | 28 +-
kernel/rcu/tree_stall.h | 38 +-
kernel/rcu/update.c | 2 +
kernel/reboot.c | 433 +-
kernel/relay.c | 2 +-
kernel/scftorture.c | 5 +-
kernel/sched/autogroup.c | 2 +-
kernel/sched/build_policy.c | 2 +
kernel/sched/build_utility.c | 1 +
kernel/sched/clock.c | 4 +-
kernel/sched/core.c | 172 +-
kernel/sched/deadline.c | 57 +-
kernel/sched/fair.c | 326 +-
kernel/sched/idle.c | 4 +-
kernel/sched/pelt.h | 4 +-
kernel/sched/psi.c | 18 +-
kernel/sched/rt.c | 68 +-
kernel/sched/sched.h | 62 +-
kernel/sched/smp.h | 6 +
kernel/sched/topology.c | 25 +-
kernel/seccomp.c | 44 +-
kernel/signal.c | 158 +-
kernel/smp.c | 39 +-
kernel/smpboot.c | 7 +
kernel/softirq.c | 13 +
kernel/stackleak.c | 105 +-
kernel/stop_machine.c | 23 +-
kernel/sys.c | 12 +
kernel/sysctl.c | 390 -
kernel/task_work.c | 25 +-
kernel/taskstats.c | 24 +
kernel/time/clockevents.c | 9 +-
kernel/time/clocksource.c | 2 +-
kernel/time/posix-cpu-timers.c | 6 +-
kernel/time/sched_clock.c | 13 +-
kernel/time/tick-sched.c | 12 +-
kernel/time/timekeeping.c | 58 +-
kernel/time/timer.c | 90 +-
kernel/trace/Kconfig | 2 +
kernel/trace/Makefile | 4 +
kernel/trace/blktrace.c | 26 +-
kernel/trace/bpf_trace.c | 148 +-
kernel/trace/fgraph.c | 24 +-
kernel/trace/fprobe.c | 32 +-
kernel/trace/ftrace.c | 377 +-
kernel/trace/pid_list.c | 4 +-
kernel/trace/ring_buffer.c | 81 +-
kernel/trace/trace.c | 86 +-
kernel/trace/trace.h | 26 +-
kernel/trace/trace_boot.c | 2 +-
kernel/trace/trace_dynevent.c | 9 +-
kernel/trace/trace_eprobe.c | 24 +-
kernel/trace/trace_events.c | 77 +-
kernel/trace/trace_events_filter.c | 2 +-
kernel/trace/trace_events_hist.c | 191 +-
kernel/trace/trace_events_trigger.c | 324 +-
kernel/trace/trace_kprobe.c | 15 +-
kernel/trace/trace_osnoise.c | 26 +-
kernel/trace/trace_output.c | 25 +-
kernel/trace/trace_preemptirq.c | 4 +-
kernel/trace/trace_recursion_record.c | 7 +-
kernel/trace/trace_sched_switch.c | 4 +-
kernel/trace/trace_sched_wakeup.c | 4 +-
kernel/trace/trace_selftest.c | 3 +
kernel/trace/trace_syscalls.c | 35 +-
kernel/trace/tracing_map.c | 3 +-
kernel/tsacct.c | 10 +-
kernel/umh.c | 6 +-
kernel/usermode_driver.c | 4 +-
kernel/watchdog.c | 8 +-
kernel/watchdog_hld.c | 4 +
kernel/workqueue.c | 18 +-
lib/.gitignore | 1 +
lib/Kconfig | 3 +
lib/Kconfig.debug | 118 +-
lib/Kconfig.kasan | 168 +-
lib/Kconfig.kcsan | 4 +-
lib/Kconfig.ubsan | 2 +-
lib/Makefile | 12 +-
lib/assoc_array.c | 8 +
lib/bitmap.c | 117 +-
lib/bootconfig-data.S | 10 +
lib/bootconfig.c | 13 +
lib/bug.c | 15 +-
lib/crc-itu-t.c | 2 +-
lib/crypto/Kconfig | 6 -
lib/crypto/Makefile | 6 -
lib/debugobjects.c | 5 +-
lib/dim/net_dim.c | 44 +-
lib/dump_stack.c | 4 +-
lib/fault-inject.c | 3 +
lib/glob.c | 2 +-
lib/iov_iter.c | 20 +-
lib/irq_poll.c | 8 +-
lib/kstrtox.c | 6 +-
lib/kunit/Makefile | 1 +
lib/kunit/debugfs.c | 2 +-
lib/kunit/executor.c | 32 +-
lib/kunit/executor_test.c | 4 +-
lib/kunit/kunit-example-test.c | 16 +
lib/kunit/kunit-test.c | 37 +-
lib/kunit/resource.c | 79 +
lib/kunit/test.c | 145 +-
lib/list-test.c | 397 +-
lib/lockref.c | 9 +-
lib/nmi_backtrace.c | 4 +-
lib/nodemask.c | 4 +-
lib/percpu-refcount.c | 1 +
lib/polynomial.c | 108 +
lib/random32.c | 347 +-
lib/siphash.c | 37 +-
lib/slub_kunit.c | 10 +-
lib/stackdepot.c | 67 +-
lib/string.c | 25 +-
lib/string_helpers.c | 3 +
lib/test_bitmap.c | 25 +
lib/test_bpf.c | 315 +-
lib/test_firmware.c | 381 +
lib/test_kasan.c | 2 +-
lib/test_meminit.c | 12 +-
lib/test_siphash.c | 7 +-
lib/test_string.c | 33 +
lib/test_sysctl.c | 32 +
lib/vsprintf.c | 64 +-
lib/xarray.c | 5 +-
mm/Kconfig | 633 +-
mm/Kconfig.debug | 33 +
mm/Makefile | 2 +-
mm/backing-dev.c | 19 +-
mm/cma.c | 4 +-
mm/compaction.c | 93 +-
mm/damon/core-test.h | 36 +
mm/damon/core.c | 115 +-
mm/damon/ops-common.c | 3 +-
mm/damon/paddr.c | 2 +-
mm/damon/reclaim.c | 124 +-
mm/damon/sysfs.c | 406 +-
mm/damon/vaddr-test.h | 14 +-
mm/damon/vaddr.c | 90 +-
mm/debug_vm_pgtable.c | 46 +-
mm/fadvise.c | 11 +
mm/failslab.c | 3 +
mm/filemap.c | 113 +-
mm/folio-compat.c | 4 +-
mm/gup.c | 156 +-
mm/hmm.c | 2 +-
mm/huge_memory.c | 187 +-
mm/hugetlb.c | 445 +-
mm/hugetlb_vmemmap.c | 323 +-
mm/hugetlb_vmemmap.h | 24 +-
mm/hwpoison-inject.c | 1 +
mm/internal.h | 177 +-
mm/kasan/common.c | 12 +-
mm/kasan/generic.c | 6 +-
mm/kasan/kasan.h | 92 +-
mm/kasan/quarantine.c | 54 +-
mm/kasan/report.c | 2 +-
mm/kasan/report_generic.c | 8 +-
mm/kfence/.kunitconfig | 6 +
mm/kfence/core.c | 50 +-
mm/kfence/kfence_test.c | 36 +-
mm/khugepaged.c | 81 +-
mm/ksm.c | 35 +-
mm/madvise.c | 35 +-
mm/memcontrol.c | 329 +-
mm/memory-failure.c | 141 +-
mm/memory.c | 590 +-
mm/memory_hotplug.c | 35 +-
mm/mempolicy.c | 74 +-
mm/memremap.c | 12 +-
mm/migrate.c | 196 +-
mm/migrate_device.c | 23 +-
mm/mincore.c | 4 +-
mm/mmap.c | 102 +-
mm/mmu_gather.c | 16 +-
mm/mprotect.c | 176 +-
mm/mremap.c | 18 +-
mm/oom_kill.c | 38 +-
mm/page-writeback.c | 131 +-
mm/page_alloc.c | 403 +-
mm/page_ext.c | 2 +-
mm/page_idle.c | 7 +-
mm/page_io.c | 257 +-
mm/page_isolation.c | 405 +-
mm/page_owner.c | 13 +-
mm/page_table_check.c | 27 +-
mm/page_vma_mapped.c | 17 +-
mm/percpu-internal.h | 8 +-
mm/percpu.c | 5 +-
mm/pgtable-generic.c | 8 +
mm/readahead.c | 62 +-
mm/rmap.c | 409 +-
mm/secretmem.c | 8 +-
mm/shmem.c | 396 +-
mm/slab.c | 36 +-
mm/slab.h | 5 +-
mm/slab_common.c | 26 +-
mm/slob.c | 16 +-
mm/slub.c | 174 +-
mm/sparse-vmemmap.c | 176 +-
mm/sparse.c | 53 +-
mm/swap.c | 10 +-
mm/swap.h | 157 +
mm/swap_slots.c | 20 +-
mm/swap_state.c | 93 +-
mm/swapfile.c | 190 +-
mm/usercopy.c | 91 +-
mm/userfaultfd.c | 62 +-
mm/util.c | 35 +-
mm/vmalloc.c | 18 +-
mm/vmscan.c | 488 +-
mm/vmstat.c | 13 +-
mm/z3fold.c | 155 +-
mm/zsmalloc.c | 37 +-
mm/zswap.c | 52 +-
net/8021q/vlan.c | 3 +-
net/8021q/vlan_dev.c | 3 +-
net/9p/trans_xen.c | 8 +-
net/Kconfig.debug | 7 +
net/appletalk/ddp.c | 3 +-
net/atm/common.c | 4 +-
net/ax25/af_ax25.c | 30 +-
net/ax25/ax25_dev.c | 23 +-
net/ax25/ax25_subr.c | 2 +-
net/batman-adv/bridge_loop_avoidance.c | 4 +-
net/batman-adv/fragmentation.c | 11 +
net/batman-adv/hard-interface.c | 2 +
net/batman-adv/main.h | 2 +-
net/batman-adv/translation-table.c | 12 +-
net/bluetooth/af_bluetooth.c | 7 +-
net/bluetooth/eir.c | 31 +
net/bluetooth/eir.h | 4 +
net/bluetooth/hci_conn.c | 7 +-
net/bluetooth/hci_core.c | 12 +-
net/bluetooth/hci_event.c | 35 +-
net/bluetooth/hci_request.c | 6 +-
net/bluetooth/hci_sock.c | 3 +-
net/bluetooth/hci_sync.c | 94 +-
net/bluetooth/mgmt.c | 45 +-
net/bluetooth/mgmt_util.c | 2 +-
net/bluetooth/sco.c | 23 +-
net/bpf/bpf_dummy_struct_ops.c | 24 +-
net/bpf/test_run.c | 86 +-
net/bridge/br_device.c | 1 +
net/bridge/br_fdb.c | 160 +-
net/bridge/br_if.c | 12 +-
net/bridge/br_input.c | 7 +
net/bridge/br_mdb.c | 12 +-
net/bridge/br_netlink.c | 9 +-
net/bridge/br_private.h | 21 +-
net/bridge/br_switchdev.c | 3 +-
net/bridge/br_sysfs_br.c | 6 +-
net/caif/caif_socket.c | 2 +-
net/can/bcm.c | 7 +-
net/can/isotp.c | 153 +-
net/can/j1939/socket.c | 4 +-
net/can/raw.c | 20 +-
net/ceph/crush/mapper.c | 5 +-
net/ceph/osd_client.c | 311 +-
net/core/bpf_sk_storage.c | 11 +-
net/core/datagram.c | 7 +-
net/core/datagram.h | 15 -
net/core/dev.c | 237 +-
net/core/dev.h | 112 +
net/core/dev_addr_lists.c | 2 +
net/core/dev_ioctl.c | 2 +
net/core/devlink.c | 653 +-
net/core/drop_monitor.c | 2 +-
net/core/filter.c | 37 +-
net/core/flow_dissector.c | 20 +
net/core/flow_offload.c | 6 +
net/core/gro.c | 8 +
net/core/link_watch.c | 1 +
net/core/neighbour.c | 4 +-
net/core/net-procfs.c | 2 +
net/core/net-sysfs.c | 22 +-
net/core/page_pool.c | 83 +-
net/core/rtnetlink.c | 449 +-
net/core/secure_seq.c | 16 +-
net/core/skbuff.c | 71 +-
net/core/skmsg.c | 22 +-
net/core/sock.c | 126 +-
net/core/sock_map.c | 10 +-
net/core/sysctl_net_core.c | 29 +-
net/dccp/dccp.h | 4 +-
net/dccp/ipv4.c | 13 +-
net/dccp/ipv6.c | 12 +-
net/dccp/proto.c | 40 +-
net/decnet/dn_dev.c | 4 +-
net/decnet/dn_neigh.c | 3 +-
net/decnet/dn_route.c | 6 +-
net/dsa/dsa.c | 49 -
net/dsa/dsa2.c | 25 +-
net/dsa/dsa_priv.h | 29 +-
net/dsa/port.c | 137 +-
net/dsa/slave.c | 67 +-
net/dsa/switch.c | 198 +-
net/dsa/tag_8021q.c | 10 +-
net/ethernet/eth.c | 2 +-
net/ethtool/common.c | 3 +
net/ethtool/netlink.h | 2 +-
net/ethtool/rings.c | 54 +-
net/ieee802154/socket.c | 12 +-
net/ipv4/Kconfig | 1 -
net/ipv4/af_inet.c | 11 +-
net/ipv4/arp.c | 7 +-
net/ipv4/datagram.c | 7 +-
net/ipv4/devinet.c | 6 +-
net/ipv4/esp4.c | 6 -
net/ipv4/fib_frontend.c | 4 +-
net/ipv4/fib_rules.c | 2 +-
net/ipv4/fib_semantics.c | 4 +-
net/ipv4/fib_trie.c | 12 +-
net/ipv4/fou.c | 1 -
net/ipv4/icmp.c | 77 +-
net/ipv4/igmp.c | 13 +-
net/ipv4/inet_connection_sock.c | 245 +-
net/ipv4/inet_diag.c | 5 +-
net/ipv4/inet_fragment.c | 2 +-
net/ipv4/inet_hashtables.c | 373 +-
net/ipv4/inet_timewait_sock.c | 58 +-
net/ipv4/ip_forward.c | 13 +-
net/ipv4/ip_gre.c | 61 +-
net/ipv4/ip_input.c | 1 +
net/ipv4/ipmr.c | 2 +-
net/ipv4/netfilter.c | 3 +-
net/ipv4/netfilter/nf_reject_ipv4.c | 10 +-
net/ipv4/netfilter/nft_fib_ipv4.c | 4 +
net/ipv4/ping.c | 52 +-
net/ipv4/raw.c | 6 +-
net/ipv4/route.c | 75 +-
net/ipv4/sysctl_net_ipv4.c | 16 +-
net/ipv4/tcp.c | 83 +-
net/ipv4/tcp_bbr.c | 22 +-
net/ipv4/tcp_bic.c | 14 +-
net/ipv4/tcp_bpf.c | 15 +-
net/ipv4/tcp_cdg.c | 30 +-
net/ipv4/tcp_cong.c | 30 +-
net/ipv4/tcp_cubic.c | 26 +-
net/ipv4/tcp_dctcp.c | 11 +-
net/ipv4/tcp_highspeed.c | 18 +-
net/ipv4/tcp_htcp.c | 10 +-
net/ipv4/tcp_hybla.c | 18 +-
net/ipv4/tcp_illinois.c | 12 +-
net/ipv4/tcp_input.c | 182 +-
net/ipv4/tcp_ipv4.c | 36 +-
net/ipv4/tcp_lp.c | 6 +-
net/ipv4/tcp_metrics.c | 12 +-
net/ipv4/tcp_nv.c | 24 +-
net/ipv4/tcp_output.c | 50 +-
net/ipv4/tcp_rate.c | 2 +-
net/ipv4/tcp_recovery.c | 15 +-
net/ipv4/tcp_scalable.c | 4 +-
net/ipv4/tcp_vegas.c | 21 +-
net/ipv4/tcp_veno.c | 24 +-
net/ipv4/tcp_westwood.c | 3 +-
net/ipv4/tcp_yeah.c | 30 +-
net/ipv4/udp.c | 16 +-
net/ipv4/udp_bpf.c | 17 +-
net/ipv4/udp_impl.h | 4 +-
net/ipv4/xfrm4_protocol.c | 1 -
net/ipv6/addrconf.c | 53 +-
net/ipv6/af_inet6.c | 7 +-
net/ipv6/datagram.c | 10 +-
net/ipv6/esp6.c | 6 -
net/ipv6/exthdrs.c | 44 +-
net/ipv6/icmp.c | 31 +-
net/ipv6/inet6_hashtables.c | 15 +-
net/ipv6/ip6_gre.c | 34 +-
net/ipv6/ip6_input.c | 41 +-
net/ipv6/ip6_offload.c | 56 +-
net/ipv6/ip6_output.c | 62 +-
net/ipv6/ip6_tunnel.c | 2 -
net/ipv6/mcast.c | 8 +-
net/ipv6/ndisc.c | 30 +-
net/ipv6/netfilter.c | 3 +-
net/ipv6/netfilter/nf_reject_ipv6.c | 4 +-
net/ipv6/netfilter/nft_fib_ipv6.c | 4 +
net/ipv6/ping.c | 8 +-
net/ipv6/raw.c | 6 +-
net/ipv6/route.c | 6 +-
net/ipv6/seg6_hmac.c | 1 -
net/ipv6/seg6_local.c | 1 +
net/ipv6/sysctl_net_ipv6.c | 6 +-
net/ipv6/tcp_ipv6.c | 12 +-
net/ipv6/udp.c | 23 +-
net/ipv6/udp_impl.h | 4 +-
net/iucv/af_iucv.c | 3 +-
net/key/af_key.c | 14 +-
net/l2tp/l2tp_ip.c | 8 +-
net/l2tp/l2tp_ip6.c | 17 +-
net/l2tp/l2tp_ppp.c | 3 +-
net/mac80211/agg-rx.c | 12 +-
net/mac80211/agg-tx.c | 6 +-
net/mac80211/airtime.c | 4 +-
net/mac80211/cfg.c | 81 +-
net/mac80211/chan.c | 15 +-
net/mac80211/debugfs.c | 1 +
net/mac80211/debugfs_netdev.c | 2 +-
net/mac80211/debugfs_sta.c | 12 +-
net/mac80211/eht.c | 6 +-
net/mac80211/ethtool.c | 4 +-
net/mac80211/he.c | 8 +-
net/mac80211/ht.c | 8 +-
net/mac80211/ibss.c | 26 +-
net/mac80211/ieee80211_i.h | 12 +-
net/mac80211/key.c | 9 +-
net/mac80211/main.c | 4 +-
net/mac80211/mesh_hwmp.c | 2 +-
net/mac80211/mesh_plink.c | 24 +-
net/mac80211/mlme.c | 141 +-
net/mac80211/ocb.c | 2 +-
net/mac80211/offchannel.c | 2 +-
net/mac80211/rate.c | 8 +-
net/mac80211/rc80211_minstrel_ht.c | 177 +-
net/mac80211/rc80211_minstrel_ht.h | 2 +-
net/mac80211/rx.c | 134 +-
net/mac80211/s1g.c | 4 +-
net/mac80211/scan.c | 20 +
net/mac80211/sta_info.c | 110 +-
net/mac80211/sta_info.h | 155 +-
net/mac80211/status.c | 130 +-
net/mac80211/tdls.c | 26 +-
net/mac80211/trace.h | 4 +-
net/mac80211/tx.c | 28 +-
net/mac80211/util.c | 40 -
net/mac80211/vht.c | 78 +-
net/mac80211/wpa.c | 103 +-
net/mac802154/cfg.c | 1 +
net/mac802154/ieee802154_i.h | 2 +
net/mac802154/main.c | 54 +-
net/mac802154/util.c | 22 +-
net/mctp/af_mctp.c | 4 +-
net/mctp/test/route-test.c | 12 +-
net/mpls/af_mpls.c | 3 +-
net/mptcp/Makefile | 4 +-
net/mptcp/bpf.c | 21 +
net/mptcp/ctrl.c | 21 +
net/mptcp/mib.c | 5 +
net/mptcp/mib.h | 7 +
net/mptcp/mptcp_diag.c | 105 +-
net/mptcp/options.c | 103 +-
net/mptcp/pm.c | 111 +-
net/mptcp/pm_netlink.c | 266 +-
net/mptcp/pm_userspace.c | 429 +
net/mptcp/protocol.c | 123 +-
net/mptcp/protocol.h | 120 +-
net/mptcp/sockopt.c | 21 +-
net/mptcp/subflow.c | 105 +-
net/netfilter/ipvs/ip_vs_ctl.c | 4 +-
net/netfilter/nf_conncount.c | 11 +
net/netfilter/nf_conntrack_bpf.c | 22 +-
net/netfilter/nf_conntrack_core.c | 304 +-
net/netfilter/nf_conntrack_ecache.c | 178 +-
net/netfilter/nf_conntrack_extend.c | 32 +-
net/netfilter/nf_conntrack_helper.c | 5 -
net/netfilter/nf_conntrack_netlink.c | 152 +-
net/netfilter/nf_conntrack_proto.c | 10 +-
net/netfilter/nf_conntrack_proto_tcp.c | 52 +-
net/netfilter/nf_conntrack_standalone.c | 2 +-
net/netfilter/nf_conntrack_timeout.c | 7 +-
net/netfilter/nf_flow_table_core.c | 60 +-
net/netfilter/nf_flow_table_ip.c | 19 +
net/netfilter/nf_log_syslog.c | 136 +-
net/netfilter/nf_nat_masquerade.c | 5 +-
net/netfilter/nf_tables_api.c | 175 +-
net/netfilter/nf_tables_offload.c | 23 +-
net/netfilter/nfnetlink.c | 26 +-
net/netfilter/nfnetlink_cttimeout.c | 62 +-
net/netfilter/nft_bitwise.c | 13 +-
net/netfilter/nft_fib.c | 4 +
net/netfilter/nft_flow_offload.c | 38 +-
net/netfilter/nft_limit.c | 2 +
net/netfilter/nft_nat.c | 3 +-
net/netlink/af_netlink.c | 4 +-
net/netrom/af_netrom.c | 3 +-
net/nfc/core.c | 34 +-
net/nfc/llcp_sock.c | 3 +-
net/nfc/nci/data.c | 2 +-
net/nfc/nci/hci.c | 4 +-
net/nfc/netlink.c | 4 +-
net/nfc/rawsock.c | 3 +-
net/openvswitch/actions.c | 6 +
net/openvswitch/conntrack.c | 4 +-
net/packet/af_packet.c | 24 +-
net/phonet/datagram.c | 4 +-
net/phonet/pep.c | 7 +-
net/qrtr/af_qrtr.c | 3 +-
net/rds/ib.c | 4 +-
net/rds/tcp.c | 18 +-
net/rds/tcp.h | 2 +-
net/rds/tcp_connect.c | 5 +-
net/rds/tcp_listen.c | 5 +-
net/rose/af_rose.c | 3 +-
net/rose/rose_route.c | 25 +-
net/rxrpc/af_rxrpc.c | 2 +-
net/rxrpc/ar-internal.h | 38 +-
net/rxrpc/call_accept.c | 10 +-
net/rxrpc/call_event.c | 7 +-
net/rxrpc/call_object.c | 62 +-
net/rxrpc/conn_client.c | 30 +-
net/rxrpc/conn_object.c | 51 +-
net/rxrpc/conn_service.c | 8 +-
net/rxrpc/input.c | 62 +-
net/rxrpc/local_object.c | 71 +-
net/rxrpc/net_ns.c | 7 +-
net/rxrpc/output.c | 20 +-
net/rxrpc/peer_object.c | 40 +-
net/rxrpc/proc.c | 85 +-
net/rxrpc/recvmsg.c | 8 +-
net/rxrpc/sendmsg.c | 6 +
net/rxrpc/skbuff.c | 1 -
net/rxrpc/sysctl.c | 4 +-
net/sched/act_api.c | 4 +-
net/sched/act_csum.c | 3 +-
net/sched/act_ct.c | 5 +-
net/sched/act_gact.c | 13 +-
net/sched/act_gate.c | 3 +-
net/sched/act_mirred.c | 4 +-
net/sched/act_mpls.c | 10 +-
net/sched/act_pedit.c | 34 +-
net/sched/act_police.c | 20 +-
net/sched/act_sample.c | 3 +-
net/sched/act_skbedit.c | 65 +-
net/sched/act_tunnel_key.c | 4 +-
net/sched/act_vlan.c | 4 +-
net/sched/cls_api.c | 22 +-
net/sched/cls_flower.c | 104 +-
net/sched/cls_matchall.c | 19 +-
net/sched/em_meta.c | 7 +-
net/sched/sch_generic.c | 12 +-
net/sctp/input.c | 4 +-
net/sctp/ipv6.c | 4 +-
net/sctp/output.c | 3 +-
net/sctp/socket.c | 18 +-
net/sctp/stream_sched.c | 9 +-
net/sctp/ulpevent.c | 2 +-
net/smc/af_smc.c | 53 +-
net/smc/smc_cdc.c | 2 +-
net/smc/smc_ib.c | 1 +
net/smc/smc_rx.c | 4 +-
net/smc/smc_tx.c | 17 +-
net/smc/smc_wr.c | 5 +-
net/socket.c | 127 +-
net/sunrpc/auth_gss/gss_rpc_upcall.c | 1 +
net/sunrpc/auth_gss/svcauth_gss.c | 4 +-
net/sunrpc/cache.c | 18 +-
net/sunrpc/clnt.c | 44 +-
net/sunrpc/debugfs.c | 3 +
net/sunrpc/fail.h | 2 +-
net/sunrpc/svc.c | 24 +-
net/sunrpc/svc_xprt.c | 17 +-
net/sunrpc/svcsock.c | 21 +-
net/sunrpc/xdr.c | 37 +-
net/sunrpc/xprtrdma/frwr_ops.c | 2 +-
net/sunrpc/xprtrdma/rpc_rdma.c | 5 +
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 1 -
net/sunrpc/xprtrdma/svc_rdma_rw.c | 4 +-
net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 +-
net/sunrpc/xprtsock.c | 37 +-
net/tipc/bearer.c | 3 +-
net/tls/tls_device.c | 62 +-
net/tls/tls_main.c | 55 +
net/tls/tls_sw.c | 491 +-
net/unix/af_unix.c | 21 +-
net/unix/unix_bpf.c | 5 +-
net/vmw_vsock/hyperv_transport.c | 21 +-
net/vmw_vsock/virtio_transport.c | 197 +-
net/vmw_vsock/vmci_transport.c | 5 +-
net/wireless/chan.c | 93 +-
net/wireless/core.h | 14 +-
net/wireless/ibss.c | 4 +-
net/wireless/nl80211.c | 435 +-
net/wireless/reg.c | 4 +
net/wireless/scan.c | 2 +-
net/x25/af_x25.c | 3 +-
net/x25/x25_proc.c | 3 +-
net/xdp/xsk.c | 9 +-
net/xdp/xsk_queue.h | 12 +-
net/xdp/xskmap.c | 6 +-
net/xfrm/espintcp.c | 4 +-
net/xfrm/xfrm_device.c | 15 +-
net/xfrm/xfrm_output.c | 3 +-
net/xfrm/xfrm_policy.c | 2 +-
net/xfrm/xfrm_state.c | 4 +-
net/xfrm/xfrm_user.c | 5 +-
samples/bpf/Makefile | 19 +-
samples/bpf/cpustat_user.c | 1 -
samples/bpf/hbm.c | 5 +-
samples/bpf/ibumad_user.c | 1 -
samples/bpf/map_perf_test_user.c | 1 -
samples/bpf/offwaketime_user.c | 1 -
samples/bpf/sockex2_user.c | 1 -
samples/bpf/sockex3_user.c | 1 -
samples/bpf/spintest_user.c | 1 -
samples/bpf/syscall_tp_user.c | 4 +-
samples/bpf/task_fd_query_user.c | 1 -
samples/bpf/test_lru_dist.c | 1 -
samples/bpf/test_map_in_map_user.c | 1 -
samples/bpf/test_overhead_user.c | 1 -
samples/bpf/tracex2_user.c | 1 -
samples/bpf/tracex3_user.c | 1 -
samples/bpf/tracex4_user.c | 1 -
samples/bpf/tracex5_user.c | 1 -
samples/bpf/tracex6_user.c | 1 -
samples/bpf/xdp1_user.c | 3 +-
samples/bpf/xdp_adjust_tail_user.c | 1 -
samples/bpf/xdp_monitor_user.c | 1 -
samples/bpf/xdp_redirect_cpu_user.c | 1 -
samples/bpf/xdp_redirect_map_multi_user.c | 1 -
samples/bpf/xdp_redirect_user.c | 1 -
samples/bpf/xdp_router_ipv4.bpf.c | 180 +
samples/bpf/xdp_router_ipv4_kern.c | 186 -
samples/bpf/xdp_router_ipv4_user.c | 456 +-
samples/bpf/xdp_rxq_info_user.c | 23 +-
samples/bpf/xdp_sample_pkts_user.c | 1 -
samples/bpf/xdp_sample_user.c | 1 -
samples/bpf/xdp_tx_iptunnel_user.c | 1 -
samples/bpf/xdpsock_user.c | 9 +-
samples/bpf/xsk_fwd.c | 7 +-
samples/landlock/sandboxer.c | 132 +-
samples/trace_events/trace_custom_sched.h | 6 +-
samples/vfio-mdev/mbochs.c | 9 +-
samples/vfio-mdev/mdpy.c | 9 +-
samples/vfio-mdev/mtty.c | 39 +-
scripts/Kbuild.include | 10 +-
scripts/Makefile | 4 +-
scripts/Makefile.build | 226 +-
scripts/Makefile.clean | 8 +-
scripts/Makefile.extrawarn | 13 +-
scripts/Makefile.gcc-plugins | 22 +-
scripts/Makefile.lib | 37 +-
scripts/Makefile.modfinal | 5 +-
scripts/Makefile.modpost | 12 +-
scripts/Makefile.randstruct | 17 +
scripts/Makefile.vmlinux | 32 +
scripts/Makefile.vmlinux_o | 87 +
scripts/adjust_autoksyms.sh | 2 +-
scripts/atomic/gen-atomic-fallback.sh | 31 +-
scripts/atomic/gen-atomic-instrumented.sh | 2 +-
scripts/basic/.gitignore | 1 +
scripts/basic/Makefile | 11 +
scripts/bloat-o-meter | 1 +
scripts/bpf_doc.py | 4 +
scripts/check-blacklist-hashes.awk | 37 +
scripts/check-local-export | 71 +
scripts/checkpatch.pl | 8 +-
scripts/checksyscalls.sh | 2 +-
scripts/decode_stacktrace.sh | 27 +-
scripts/dtc/include-prefixes/h8300 | 1 -
.../Makefile.boot => scripts/dummy-tools/pahole | 3 +-
scripts/faddr2line | 150 +-
scripts/gcc-plugins/Kconfig | 38 -
scripts/gcc-plugins/Makefile | 24 +-
scripts/gcc-plugins/gen-random-seed.sh | 9 -
scripts/gcc-plugins/latent_entropy_plugin.c | 2 +-
scripts/gcc-plugins/randomize_layout_plugin.c | 89 +-
scripts/gcc-plugins/sancov_plugin.c | 2 +-
scripts/gcc-plugins/stackleak_plugin.c | 2 +-
scripts/gcc-plugins/structleak_plugin.c | 2 +-
scripts/gdb/linux/config.py | 6 +-
scripts/gen-randstruct-seed.sh | 7 +
scripts/gen_autoksyms.sh | 18 +-
scripts/genksyms/genksyms.c | 18 +-
scripts/get_abi.pl | 4 +-
scripts/get_maintainer.pl | 1 +
scripts/install.sh | 40 +
scripts/kallsyms.c | 5 +-
scripts/kconfig/gconf-cfg.sh | 12 +-
scripts/kconfig/mconf-cfg.sh | 16 +-
scripts/kconfig/nconf-cfg.sh | 16 +-
scripts/kconfig/nconf.c | 8 +-
scripts/kconfig/qconf-cfg.sh | 14 +-
scripts/link-vmlinux.sh | 148 +-
scripts/min-tool-version.sh | 3 +-
scripts/mod/file2alias.c | 12 +-
scripts/mod/list.h | 213 +
scripts/mod/modpost.c | 825 +-
scripts/mod/modpost.h | 34 +-
scripts/mod/sumversion.c | 19 +-
scripts/nsdeps | 5 +-
scripts/objdiff | 6 +-
scripts/objdump-func | 29 +
scripts/package/builddeb | 2 +-
scripts/prune-kernel | 6 +-
scripts/selinux/genheaders/genheaders.c | 75 +-
scripts/selinux/mdp/mdp.c | 4 +-
scripts/sign-file.c | 7 +
scripts/sorttable.c | 5 +
scripts/spdxcheck-test.sh | 2 +-
scripts/spdxcheck.py | 175 +-
scripts/spdxexclude | 18 +
scripts/subarch.include | 2 +-
scripts/tags.sh | 11 +-
security/Kconfig | 13 +-
security/Kconfig.hardening | 73 +
security/apparmor/lsm.c | 30 +-
security/apparmor/policy_unpack_test.c | 6 +-
security/integrity/digsig.c | 3 +-
security/integrity/evm/evm.h | 3 -
security/integrity/evm/evm_crypto.c | 2 +-
security/integrity/evm/evm_main.c | 2 +-
security/integrity/ima/Kconfig | 14 +-
security/integrity/ima/ima_api.c | 47 +-
security/integrity/ima/ima_appraise.c | 114 +-
security/integrity/ima/ima_main.c | 4 +-
security/integrity/ima/ima_policy.c | 82 +-
security/integrity/ima/ima_template.c | 4 +
security/integrity/ima/ima_template_lib.c | 94 +-
security/integrity/ima/ima_template_lib.h | 4 +
security/integrity/integrity.h | 27 +-
.../integrity/platform_certs/keyring_handler.c | 32 +-
.../integrity/platform_certs/keyring_handler.h | 8 +
security/integrity/platform_certs/load_uefi.c | 33 +
security/keys/Kconfig | 18 +-
security/keys/big_key.c | 73 +-
security/keys/trusted-keys/Kconfig | 38 +
security/keys/trusted-keys/Makefile | 10 +-
security/keys/trusted-keys/trusted_caam.c | 80 +
security/keys/trusted-keys/trusted_core.c | 45 +-
security/keys/trusted-keys/trusted_tpm2.c | 4 +-
security/landlock/cred.c | 4 +-
security/landlock/cred.h | 8 +-
security/landlock/fs.c | 815 +-
security/landlock/fs.h | 11 +-
security/landlock/limits.h | 10 +-
security/landlock/object.c | 6 +-
security/landlock/object.h | 6 +-
security/landlock/ptrace.c | 10 +-
security/landlock/ruleset.c | 84 +-
security/landlock/ruleset.h | 35 +-
security/landlock/syscalls.c | 95 +-
security/loadpin/loadpin.c | 5 +-
security/lsm_audit.c | 3 +
security/security.c | 22 +-
security/selinux/avc.c | 6 +-
security/selinux/hooks.c | 9 +-
security/selinux/include/audit.h | 5 +-
security/selinux/include/avc.h | 1 +
security/selinux/include/avc_ss.h | 4 +-
security/selinux/include/classmap.h | 2 +-
security/selinux/include/ibpkey.h | 2 +
security/selinux/include/initial_sid_to_string.h | 3 +-
security/selinux/include/netnode.h | 2 +
security/selinux/include/netport.h | 2 +
security/selinux/include/policycap.h | 2 +-
security/selinux/include/policycap_names.h | 2 +-
security/selinux/include/security.h | 4 +
security/selinux/include/xfrm.h | 2 +
security/selinux/nlmsgtab.c | 12 +-
security/selinux/selinuxfs.c | 8 +-
security/selinux/ss/avtab.c | 20 +-
security/selinux/ss/hashtab.c | 3 +-
security/selinux/ss/policydb.c | 36 +-
security/selinux/ss/services.c | 47 +-
security/smack/smackfs.c | 2 +-
security/tomoyo/tomoyo.c | 11 +-
sound/arm/pxa2xx-ac97-lib.c | 145 +-
.../regs-ac97.h => sound/arm/pxa2xx-ac97-regs.h | 42 +-
sound/arm/pxa2xx-ac97.c | 3 +-
sound/core/Makefile | 2 -
sound/core/jack.c | 34 +-
sound/core/pcm_memory.c | 3 +-
sound/core/seq/seq_ports.c | 2 +-
sound/drivers/Kconfig | 18 +
sound/drivers/Makefile | 2 +
sound/drivers/serial-generic.c | 374 +
sound/firewire/fireworks/fireworks_hwdep.c | 1 +
sound/hda/hdac_device.c | 1 +
sound/isa/Kconfig | 2 +-
sound/isa/wavefront/wavefront_synth.c | 3 +-
sound/pci/cs5535audio/cs5535audio_pcm.c | 2 +-
sound/pci/ctxfi/ctatc.c | 2 +
sound/pci/ctxfi/cthardware.h | 3 +-
sound/pci/ctxfi/cthw20k1.c | 2 +-
sound/pci/echoaudio/midi.c | 1 -
sound/pci/emu10k1/emu10k1_main.c | 5 +-
sound/pci/hda/Kconfig | 2 +
sound/pci/hda/cs35l41_hda.c | 438 +-
sound/pci/hda/cs35l41_hda.h | 31 +-
sound/pci/hda/cs35l41_hda_spi.c | 2 +-
sound/pci/hda/hda_codec.c | 11 +-
sound/pci/hda/hda_component.h | 2 -
sound/pci/hda/hda_intel.c | 3 +
sound/pci/hda/hda_tegra.c | 2 +
sound/pci/hda/patch_conexant.c | 8 +
sound/pci/hda/patch_cs8409-tables.c | 346 +-
sound/pci/hda/patch_cs8409.c | 361 +-
sound/pci/hda/patch_cs8409.h | 14 +-
sound/pci/hda/patch_hdmi.c | 1 +
sound/pci/hda/patch_realtek.c | 177 +-
sound/pci/hda/patch_via.c | 2 -
sound/pci/lola/lola_pcm.c | 3 +-
sound/pci/rme9652/hdsp.c | 2 +-
sound/soc/Kconfig | 9 +-
sound/soc/Makefile | 5 +
sound/soc/amd/acp-da7219-max98357a.c | 4 +-
sound/soc/amd/acp-rt5645.c | 2 +-
sound/soc/amd/acp/Kconfig | 6 +-
sound/soc/amd/acp/acp-legacy-mach.c | 22 +-
sound/soc/amd/acp/acp-mach-common.c | 29 +-
sound/soc/amd/acp/acp-mach.h | 9 +-
sound/soc/amd/acp/acp-pci.c | 1 +
sound/soc/amd/acp/acp-sof-mach.c | 22 +-
sound/soc/amd/acp3x-rt5682-max9836.c | 2 +-
sound/soc/amd/vangogh/acp5x-mach.c | 10 +-
sound/soc/amd/yc/acp6x-mach.c | 42 +-
sound/soc/amd/yc/pci-acp6x.c | 9 +-
sound/soc/atmel/Kconfig | 4 +-
sound/soc/atmel/atmel-classd.c | 1 -
sound/soc/atmel/atmel-pdmic.c | 1 -
sound/soc/atmel/mchp-pdmc.c | 1 +
sound/soc/atmel/sam9g20_wm8731.c | 16 +-
sound/soc/au1x/Kconfig | 2 +-
sound/soc/codecs/Kconfig | 67 +-
sound/soc/codecs/Makefile | 16 +
sound/soc/codecs/ad193x-i2c.c | 6 +-
sound/soc/codecs/adau1372-i2c.c | 4 +-
sound/soc/codecs/adau1372.c | 1 +
sound/soc/codecs/adau1373.c | 5 +-
sound/soc/codecs/adau1701.c | 5 +-
sound/soc/codecs/adau1761-i2c.c | 8 +-
sound/soc/codecs/adau1761.c | 86 +-
sound/soc/codecs/adau1781-i2c.c | 8 +-
sound/soc/codecs/adau17x1.c | 20 +-
sound/soc/codecs/adau17x1.h | 1 +
sound/soc/codecs/adau1977-i2c.c | 8 +-
sound/soc/codecs/adau7118-i2c.c | 5 +-
sound/soc/codecs/adav803.c | 5 +-
sound/soc/codecs/ak4118.c | 5 +-
sound/soc/codecs/ak4535.c | 5 +-
sound/soc/codecs/ak4613.c | 377 +-
sound/soc/codecs/ak4641.c | 5 +-
sound/soc/codecs/ak4642.c | 8 +-
sound/soc/codecs/ak4671.c | 5 +-
sound/soc/codecs/alc5623.c | 24 +-
sound/soc/codecs/alc5632.c | 20 +-
sound/soc/codecs/cros_ec_codec.c | 7 +-
sound/soc/codecs/cs35l32.c | 5 +-
sound/soc/codecs/cs35l33.c | 5 +-
sound/soc/codecs/cs35l34.c | 5 +-
sound/soc/codecs/cs35l35.c | 5 +-
sound/soc/codecs/cs35l36.c | 10 +-
sound/soc/codecs/cs35l41-i2c.c | 9 +-
sound/soc/codecs/cs35l41-lib.c | 319 +-
sound/soc/codecs/cs35l41-spi.c | 4 +-
sound/soc/codecs/cs35l41.c | 285 +-
sound/soc/codecs/cs35l41.h | 23 +-
sound/soc/codecs/cs35l45-i2c.c | 74 +
sound/soc/codecs/cs35l45-spi.c | 74 +
sound/soc/codecs/cs35l45-tables.c | 202 +
sound/soc/codecs/cs35l45.c | 690 +
sound/soc/codecs/cs35l45.h | 217 +
sound/soc/codecs/cs4234.c | 5 +-
sound/soc/codecs/cs4265.c | 5 +-
sound/soc/codecs/cs4270.c | 20 +-
sound/soc/codecs/cs4271-i2c.c | 5 +-
sound/soc/codecs/cs42l42.c | 5 +-
sound/soc/codecs/cs42l42.h | 826 +-
sound/soc/codecs/cs42l51-i2c.c | 5 +-
sound/soc/codecs/cs42l51.c | 9 +-
sound/soc/codecs/cs42l52.c | 13 +-
sound/soc/codecs/cs42l56.c | 11 +-
sound/soc/codecs/cs42l73.c | 5 +-
sound/soc/codecs/cs42xx8-i2c.c | 5 +-
sound/soc/codecs/cs43130.c | 23 +-
sound/soc/codecs/cs43130.h | 151 +-
sound/soc/codecs/cs4341.c | 5 +-
sound/soc/codecs/cs4349.c | 14 +-
sound/soc/codecs/cs53l30.c | 21 +-
sound/soc/codecs/cx2072x.c | 6 +-
sound/soc/codecs/da7210.c | 5 +-
sound/soc/codecs/da7213.c | 5 +-
sound/soc/codecs/da7218.c | 19 +-
sound/soc/codecs/da7219-aad.c | 18 +-
sound/soc/codecs/da7219.c | 19 +-
sound/soc/codecs/da732x.c | 5 +-
sound/soc/codecs/da9055.c | 5 +-
sound/soc/codecs/dmic.c | 5 +-
sound/soc/codecs/es8316.c | 5 +-
sound/soc/codecs/es8328-i2c.c | 5 +-
sound/soc/codecs/es8328.c | 5 +-
sound/soc/codecs/hdac_hda.c | 15 +-
sound/soc/codecs/hdmi-codec.c | 15 +-
sound/soc/codecs/isabelle.c | 5 +-
sound/soc/codecs/lm4857.c | 5 +-
sound/soc/codecs/lm49453.c | 5 +-
sound/soc/codecs/lochnagar-sc.c | 5 +-
sound/soc/codecs/lpass-macro-common.c | 35 +-
sound/soc/codecs/max9768.c | 5 +-
sound/soc/codecs/max98088.c | 21 +-
sound/soc/codecs/max98090.c | 34 +-
sound/soc/codecs/max98095.c | 19 +-
sound/soc/codecs/max98371.c | 5 +-
sound/soc/codecs/max98373-i2c.c | 5 +-
sound/soc/codecs/max98390.c | 17 +-
sound/soc/codecs/max98396.c | 1637 +
sound/soc/codecs/max98396.h | 305 +
sound/soc/codecs/max9850.c | 5 +-
sound/soc/codecs/max98504.c | 6 +-
sound/soc/codecs/max98520.c | 4 +-
sound/soc/codecs/max9867.c | 5 +-
sound/soc/codecs/max9877.c | 5 +-
sound/soc/codecs/max98925.c | 5 +-
sound/soc/codecs/max98926.c | 5 +-
sound/soc/codecs/max98927.c | 5 +-
sound/soc/codecs/ml26124.c | 5 +-
sound/soc/codecs/mt6351.c | 10 +-
sound/soc/codecs/mt6358.c | 10 +-
sound/soc/codecs/mt6359.c | 10 +-
sound/soc/codecs/mt6660.c | 6 +-
sound/soc/codecs/nau8540.c | 5 +-
sound/soc/codecs/nau8810.c | 5 +-
sound/soc/codecs/nau8821.c | 5 +-
sound/soc/codecs/nau8822.c | 9 +-
sound/soc/codecs/nau8822.h | 3 +
sound/soc/codecs/nau8824.c | 5 +-
sound/soc/codecs/nau8825.c | 5 +-
sound/soc/codecs/pcm1681.c | 5 +-
sound/soc/codecs/pcm1789-i2c.c | 9 +-
sound/soc/codecs/pcm1789.c | 4 +-
sound/soc/codecs/pcm1789.h | 2 +-
sound/soc/codecs/pcm179x-i2c.c | 5 +-
sound/soc/codecs/pcm186x-i2c.c | 24 +-
sound/soc/codecs/pcm186x.c | 7 +-
sound/soc/codecs/pcm3060-i2c.c | 5 +-
sound/soc/codecs/pcm3060.c | 1 +
sound/soc/codecs/pcm3168a-i2c.c | 5 +-
sound/soc/codecs/pcm512x-i2c.c | 5 +-
sound/soc/codecs/rk3328_codec.c | 2 +-
sound/soc/codecs/rt1011.c | 5 +-
sound/soc/codecs/rt1015.c | 5 +-
sound/soc/codecs/rt1016.c | 5 +-
sound/soc/codecs/rt1019.c | 8 +-
sound/soc/codecs/rt1305.c | 5 +-
sound/soc/codecs/rt1308-sdw.c | 1 +
sound/soc/codecs/rt1308-sdw.h | 1 +
sound/soc/codecs/rt1308.c | 5 +-
sound/soc/codecs/rt1316-sdw.c | 1 +
sound/soc/codecs/rt274.c | 5 +-
sound/soc/codecs/rt286.c | 5 +-
sound/soc/codecs/rt298.c | 5 +-
sound/soc/codecs/rt5514.c | 7 +-
sound/soc/codecs/rt5616.c | 5 +-
sound/soc/codecs/rt5631.c | 5 +-
sound/soc/codecs/rt5640.c | 16 +-
sound/soc/codecs/rt5640.h | 2 +
sound/soc/codecs/rt5645.c | 16 +-
sound/soc/codecs/rt5651.c | 5 +-
sound/soc/codecs/rt5659.c | 5 +-
sound/soc/codecs/rt5660.c | 5 +-
sound/soc/codecs/rt5663.c | 5 +-
sound/soc/codecs/rt5665.c | 5 +-
sound/soc/codecs/rt5668.c | 5 +-
sound/soc/codecs/rt5670.c | 5 +-
sound/soc/codecs/rt5682-i2c.c | 5 +-
sound/soc/codecs/rt5682s.c | 32 +-
sound/soc/codecs/rt5682s.h | 6 +-
sound/soc/codecs/rt700.c | 1 +
sound/soc/codecs/rt711-sdca.c | 1 +
sound/soc/codecs/rt711.c | 1 +
sound/soc/codecs/rt715-sdca-sdw.c | 2 -
sound/soc/codecs/rt715-sdca.c | 1 +
sound/soc/codecs/rt715.c | 1 +
sound/soc/codecs/rt9120.c | 115 +-
sound/soc/codecs/sdw-mockup.c | 1 +
sound/soc/codecs/sgtl5000.c | 5 +-
sound/soc/codecs/ssm2518.c | 5 +-
sound/soc/codecs/ssm2602-i2c.c | 8 +-
sound/soc/codecs/ssm4567.c | 5 +-
sound/soc/codecs/sta32x.c | 14 +-
sound/soc/codecs/sta350.c | 14 +-
sound/soc/codecs/sta529.c | 5 +-
sound/soc/codecs/tas2552.c | 5 +-
sound/soc/codecs/tas2562.c | 25 +-
sound/soc/codecs/tas2764.c | 5 +-
sound/soc/codecs/tas2770.c | 5 +-
sound/soc/codecs/tas5086.c | 5 +-
sound/soc/codecs/tas571x.c | 17 +-
sound/soc/codecs/tas5720.c | 21 +-
sound/soc/codecs/tas6424.c | 17 +-
sound/soc/codecs/tda7419.c | 5 +-
sound/soc/codecs/tlv320adc3xxx.c | 32 +-
sound/soc/codecs/tlv320adcx140.c | 16 +-
sound/soc/codecs/tlv320aic23-i2c.c | 5 +-
sound/soc/codecs/tlv320aic31xx.c | 32 +-
sound/soc/codecs/tlv320aic32x4-i2c.c | 11 +-
sound/soc/codecs/tlv320aic3x-i2c.c | 25 +-
sound/soc/codecs/tlv320dac33.c | 5 +-
sound/soc/codecs/tpa6130a2.c | 21 +-
sound/soc/codecs/ts3a227e.c | 5 +-
sound/soc/codecs/tscs42xx.c | 5 +-
sound/soc/codecs/tscs454.c | 17 +-
sound/soc/codecs/uda1380.c | 5 +-
sound/soc/codecs/wcd9335.c | 1 +
sound/soc/codecs/wcd934x.c | 1 +
sound/soc/codecs/wcd938x.c | 1 +
sound/soc/codecs/wm1250-ev1.c | 5 +-
sound/soc/codecs/wm2000.c | 12 +-
sound/soc/codecs/wm2200.c | 5 +-
sound/soc/codecs/wm5100.c | 5 +-
sound/soc/codecs/wm8510.c | 5 +-
sound/soc/codecs/wm8523.c | 5 +-
sound/soc/codecs/wm8580.c | 5 +-
sound/soc/codecs/wm8711.c | 5 +-
sound/soc/codecs/wm8728.c | 5 +-
sound/soc/codecs/wm8731-i2c.c | 68 +
sound/soc/codecs/wm8731-spi.c | 59 +
sound/soc/codecs/wm8731.c | 267 +-
sound/soc/codecs/wm8731.h | 27 +
sound/soc/codecs/wm8737.c | 5 +-
sound/soc/codecs/wm8741.c | 5 +-
sound/soc/codecs/wm8750.c | 5 +-
sound/soc/codecs/wm8753.c | 5 +-
sound/soc/codecs/wm8776.c | 5 +-
sound/soc/codecs/wm8804-i2c.c | 5 +-
sound/soc/codecs/wm8900.c | 5 +-
sound/soc/codecs/wm8903.c | 7 +-
sound/soc/codecs/wm8904.c | 9 +-
sound/soc/codecs/wm8940.c | 12 +-
sound/soc/codecs/wm8955.c | 5 +-
sound/soc/codecs/wm8958-dsp2.c | 8 +-
sound/soc/codecs/wm8960.c | 20 +-
sound/soc/codecs/wm8961.c | 5 +-
sound/soc/codecs/wm8962.c | 12 +-
sound/soc/codecs/wm8971.c | 5 +-
sound/soc/codecs/wm8974.c | 5 +-
sound/soc/codecs/wm8978.c | 5 +-
sound/soc/codecs/wm8983.c | 5 +-
sound/soc/codecs/wm8985.c | 8 +-
sound/soc/codecs/wm8988.c | 5 +-
sound/soc/codecs/wm8990.c | 5 +-
sound/soc/codecs/wm8991.c | 5 +-
sound/soc/codecs/wm8993.c | 5 +-
sound/soc/codecs/wm8995.c | 5 +-
sound/soc/codecs/wm8996.c | 5 +-
sound/soc/codecs/wm9081.c | 5 +-
sound/soc/codecs/wm9090.c | 6 +-
sound/soc/codecs/wm_adsp.c | 12 +-
sound/soc/codecs/wsa881x.c | 1 +
sound/soc/fsl/fsl_asrc.c | 8 +-
sound/soc/fsl/fsl_asrc_dma.c | 2 +-
sound/soc/fsl/fsl_easrc.h | 2 +-
sound/soc/fsl/fsl_esai.c | 6 +-
sound/soc/fsl/fsl_micfil.c | 382 +-
sound/soc/fsl/fsl_micfil.h | 269 +-
sound/soc/fsl/fsl_sai.c | 44 +-
sound/soc/fsl/fsl_sai.h | 5 +-
sound/soc/fsl/fsl_ssi.c | 34 +-
sound/soc/fsl/imx-es8328.c | 2 +-
sound/soc/fsl/imx-hdmi.c | 9 +-
sound/soc/fsl/imx-pcm.h | 2 +-
sound/soc/fsl/imx-sgtl5000.c | 14 +-
sound/soc/fsl/imx-ssi.h | 2 +-
sound/soc/generic/audio-graph-card2.c | 7 +-
sound/soc/generic/simple-card-utils.c | 7 +-
sound/soc/img/img-i2s-in.c | 6 +-
sound/soc/img/img-parallel-out.c | 6 +-
sound/soc/img/img-spdif-in.c | 6 +-
sound/soc/img/img-spdif-out.c | 6 +-
sound/soc/intel/Kconfig | 9 +-
sound/soc/intel/atom/sst/sst.c | 1 -
sound/soc/intel/atom/sst/sst_drv_interface.c | 15 +-
sound/soc/intel/avs/Makefile | 8 +-
sound/soc/intel/avs/apl.c | 250 +
sound/soc/intel/avs/avs.h | 102 +
sound/soc/intel/avs/board_selection.c | 502 +
sound/soc/intel/avs/core.c | 631 +
sound/soc/intel/avs/dsp.c | 27 +-
sound/soc/intel/avs/ipc.c | 253 +-
sound/soc/intel/avs/loader.c | 84 +
sound/soc/intel/avs/messages.c | 35 +-
sound/soc/intel/avs/messages.h | 51 +
sound/soc/intel/avs/path.c | 1005 +
sound/soc/intel/avs/path.h | 72 +
sound/soc/intel/avs/pcm.c | 1182 +
sound/soc/intel/avs/registers.h | 8 +
sound/soc/intel/avs/skl.c | 125 +
sound/soc/intel/avs/topology.c | 1598 +
sound/soc/intel/avs/topology.h | 194 +
sound/soc/intel/avs/trace.c | 33 +
sound/soc/intel/avs/trace.h | 154 +
sound/soc/intel/avs/utils.c | 23 +
sound/soc/intel/boards/bdw-rt5650.c | 6 +-
sound/soc/intel/boards/bdw-rt5677.c | 4 +-
sound/soc/intel/boards/broadwell.c | 2 +-
sound/soc/intel/boards/bxt_da7219_max98357a.c | 5 +-
sound/soc/intel/boards/bxt_rt298.c | 5 +-
sound/soc/intel/boards/bytcht_cx2072x.c | 10 +-
sound/soc/intel/boards/bytcht_es8316.c | 8 +-
sound/soc/intel/boards/bytcr_rt5640.c | 38 +-
sound/soc/intel/boards/bytcr_rt5651.c | 7 +-
sound/soc/intel/boards/bytcr_wm5102.c | 6 +-
sound/soc/intel/boards/cht_bsw_max98090_ti.c | 28 +-
sound/soc/intel/boards/cht_bsw_nau8824.c | 4 +-
sound/soc/intel/boards/cht_bsw_rt5645.c | 6 +-
sound/soc/intel/boards/cht_bsw_rt5672.c | 12 +-
sound/soc/intel/boards/cml_rt1011_rt5682.c | 5 +-
sound/soc/intel/boards/glk_rt5682_max98357a.c | 5 +-
sound/soc/intel/boards/kbl_da7219_max98357a.c | 5 +-
sound/soc/intel/boards/kbl_da7219_max98927.c | 5 +-
sound/soc/intel/boards/kbl_rt5660.c | 15 +-
sound/soc/intel/boards/kbl_rt5663_max98927.c | 7 +-
.../soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 7 +-
sound/soc/intel/boards/skl_hda_dsp_common.c | 8 +-
sound/soc/intel/boards/skl_nau88l25_max98357a.c | 6 +-
sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 6 +-
sound/soc/intel/boards/skl_rt286.c | 5 +-
sound/soc/intel/boards/sof_cirrus_common.c | 40 +-
sound/soc/intel/boards/sof_cs42l42.c | 5 +-
sound/soc/intel/boards/sof_da7219_max98373.c | 2 +-
sound/soc/intel/boards/sof_es8336.c | 8 +-
sound/soc/intel/boards/sof_nau8825.c | 2 +-
sound/soc/intel/boards/sof_realtek_common.c | 39 +
sound/soc/intel/boards/sof_realtek_common.h | 5 +
sound/soc/intel/boards/sof_rt5682.c | 18 +-
sound/soc/intel/boards/sof_sdw_rt5682.c | 14 +-
sound/soc/intel/boards/sof_sdw_rt700.c | 14 +-
sound/soc/intel/boards/sof_sdw_rt711.c | 14 +-
sound/soc/intel/boards/sof_sdw_rt711_sdca.c | 14 +-
sound/soc/intel/boards/sof_ssp_amp.c | 25 +-
sound/soc/intel/catpt/messages.h | 4 +-
sound/soc/intel/common/soc-acpi-intel-adl-match.c | 9 +-
sound/soc/mediatek/Kconfig | 27 +-
sound/soc/mediatek/mt2701/mt2701-wm8960.c | 9 +-
sound/soc/mediatek/mt8173/mt8173-max98090.c | 13 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 +-
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 4 +-
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 5 +-
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 5 +-
.../mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 203 +-
sound/soc/mediatek/mt8195/Makefile | 3 +-
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 8 +-
.../mediatek/mt8195/mt8195-mt6359-rt1011-rt5682.c | 1198 -
...8195-mt6359-rt1019-rt5682.c => mt8195-mt6359.c} | 871 +-
sound/soc/meson/aiu-acodec-ctrl.c | 2 +-
sound/soc/meson/aiu-codec-ctrl.c | 2 +-
sound/soc/meson/axg-card.c | 1 -
sound/soc/meson/axg-tdm-interface.c | 26 +-
sound/soc/meson/g12a-tohdmitx.c | 2 +-
sound/soc/mxs/mxs-saif.c | 1 +
sound/soc/pxa/Kconfig | 4 +-
sound/soc/pxa/corgi.c | 43 +-
sound/soc/pxa/e740_wm9705.c | 37 +-
sound/soc/pxa/e750_wm9705.c | 33 +-
sound/soc/pxa/e800_wm9712.c | 33 +-
sound/soc/pxa/em-x270.c | 2 +-
sound/soc/pxa/hx4700.c | 43 +-
sound/soc/pxa/magician.c | 141 +-
sound/soc/pxa/mioa701_wm9713.c | 2 +-
sound/soc/pxa/palm27x.c | 9 +-
sound/soc/pxa/poodle.c | 51 +-
sound/soc/pxa/pxa2xx-ac97.c | 24 +-
sound/soc/pxa/pxa2xx-i2s.c | 112 +-
sound/soc/pxa/spitz.c | 58 +-
sound/soc/pxa/tosa.c | 25 +-
sound/soc/pxa/ttc-dkb.c | 14 +-
sound/soc/pxa/z2.c | 15 +-
sound/soc/qcom/Kconfig | 2 +
sound/soc/qcom/apq8016_sbc.c | 2 +-
sound/soc/qcom/lpass-platform.c | 4 +-
sound/soc/qcom/sc7180.c | 4 +-
sound/soc/qcom/sc7280.c | 99 +-
sound/soc/qcom/sdm845.c | 2 +-
sound/soc/qcom/sm8250.c | 2 +-
sound/soc/rockchip/rk3288_hdmi_analog.c | 8 +-
sound/soc/rockchip/rk3399_gru_sound.c | 16 +-
sound/soc/rockchip/rockchip_max98090.c | 16 +-
sound/soc/rockchip/rockchip_rt5645.c | 2 +-
sound/soc/samsung/aries_wm8994.c | 6 +-
sound/soc/samsung/bells.c | 4 +-
sound/soc/samsung/h1940_uda1380.c | 3 +-
sound/soc/samsung/littlemill.c | 6 +-
sound/soc/samsung/lowland.c | 13 +-
sound/soc/samsung/midas_wm1811.c | 2 +-
sound/soc/samsung/rx1950_uda1380.c | 3 +-
sound/soc/samsung/smartq_wm8987.c | 8 +-
sound/soc/samsung/spdif.c | 3 +-
sound/soc/samsung/speyside.c | 14 +-
sound/soc/samsung/tobermory.c | 12 +-
sound/soc/sh/Kconfig | 2 +-
sound/soc/sh/rcar/core.c | 17 +-
sound/soc/sh/rcar/dma.c | 9 +-
sound/soc/sh/rcar/rsnd.h | 2 +-
sound/soc/sh/rcar/src.c | 7 +-
sound/soc/sh/rcar/ssi.c | 14 +-
sound/soc/sh/rcar/ssiu.c | 11 +-
sound/soc/sh/rz-ssi.c | 24 +-
sound/soc/soc-card.c | 56 +-
sound/soc/soc-component.c | 16 +-
sound/soc/soc-core.c | 98 +-
sound/soc/soc-dapm.c | 2 -
sound/soc/soc-generic-dmaengine-pcm.c | 57 +-
sound/soc/soc-jack.c | 2 +-
sound/soc/soc-ops.c | 20 +-
sound/soc/soc-pcm.c | 38 +-
sound/soc/soc-topology.c | 455 +-
sound/soc/soc-utils-test.c | 186 +
sound/soc/soc-utils.c | 45 +
sound/soc/sof/Makefile | 4 +-
sound/soc/sof/amd/acp-trace.c | 4 +-
sound/soc/sof/amd/acp.c | 66 +-
sound/soc/sof/amd/acp.h | 10 +-
sound/soc/sof/amd/pci-rn.c | 15 +-
sound/soc/sof/amd/renoir.c | 6 +-
sound/soc/sof/compress.c | 8 +-
sound/soc/sof/control.c | 36 +-
sound/soc/sof/core.c | 28 +-
sound/soc/sof/debug.c | 9 +-
sound/soc/sof/imx/imx8.c | 40 +-
sound/soc/sof/imx/imx8m.c | 20 +-
sound/soc/sof/intel/Kconfig | 2 +-
sound/soc/sof/intel/Makefile | 2 +-
sound/soc/sof/intel/apl.c | 143 +-
sound/soc/sof/intel/bdw.c | 21 +-
sound/soc/sof/intel/byt.c | 56 +-
sound/soc/sof/intel/cnl.c | 212 +-
sound/soc/sof/intel/hda-common-ops.c | 106 +
sound/soc/sof/intel/hda-dai.c | 434 +-
sound/soc/sof/intel/hda-dsp.c | 52 +-
sound/soc/sof/intel/hda-ipc.c | 82 +
sound/soc/sof/intel/hda-loader.c | 123 +-
sound/soc/sof/intel/hda-trace.c | 4 +-
sound/soc/sof/intel/hda.c | 40 +-
sound/soc/sof/intel/hda.h | 50 +-
sound/soc/sof/intel/icl.c | 121 +-
sound/soc/sof/intel/pci-apl.c | 36 +-
sound/soc/sof/intel/pci-cnl.c | 54 +-
sound/soc/sof/intel/pci-icl.c | 36 +-
sound/soc/sof/intel/pci-tgl.c | 97 +-
sound/soc/sof/intel/pci-tng.c | 27 +-
sound/soc/sof/intel/shim.h | 16 +-
sound/soc/sof/intel/tgl.c | 160 +-
sound/soc/sof/ipc.c | 969 +-
sound/soc/sof/ipc3-control.c | 155 +-
sound/soc/sof/ipc3-dtrace.c | 649 +
sound/soc/sof/ipc3-loader.c | 415 +
sound/soc/sof/ipc3-ops.h | 21 -
sound/soc/sof/ipc3-pcm.c | 10 +-
sound/soc/sof/ipc3-priv.h | 65 +
sound/soc/sof/ipc3-topology.c | 79 +-
sound/soc/sof/ipc3.c | 1040 +-
sound/soc/sof/ipc4-loader.c | 210 +
sound/soc/sof/ipc4-priv.h | 44 +
sound/soc/sof/ipc4.c | 606 +
sound/soc/sof/loader.c | 698 +-
sound/soc/sof/mediatek/Kconfig | 11 +
sound/soc/sof/mediatek/Makefile | 2 +
sound/soc/sof/mediatek/adsp_helper.h | 20 +-
sound/soc/sof/mediatek/mt8186/Makefile | 4 +
sound/soc/sof/mediatek/mt8186/mt8186-clk.c | 101 +
sound/soc/sof/mediatek/mt8186/mt8186-clk.h | 24 +
sound/soc/sof/mediatek/mt8186/mt8186-loader.c | 58 +
sound/soc/sof/mediatek/mt8186/mt8186.c | 554 +
sound/soc/sof/mediatek/mt8186/mt8186.h | 80 +
sound/soc/sof/mediatek/mt8195/mt8195.c | 192 +-
sound/soc/sof/mediatek/mtk-adsp-common.c | 84 +
sound/soc/sof/mediatek/mtk-adsp-common.h | 10 +
sound/soc/sof/ops.c | 2 +-
sound/soc/sof/ops.h | 34 +-
sound/soc/sof/pcm.c | 30 +-
sound/soc/sof/pm.c | 22 +-
sound/soc/sof/sof-acpi-dev.c | 6 +-
sound/soc/sof/sof-audio.c | 398 +-
sound/soc/sof/sof-audio.h | 80 +-
sound/soc/sof/sof-client-ipc-flood-test.c | 3 +-
sound/soc/sof/sof-client-ipc-msg-injector.c | 195 +-
sound/soc/sof/sof-client-probes.c | 14 +-
sound/soc/sof/sof-client.c | 66 +-
sound/soc/sof/sof-client.h | 2 +
sound/soc/sof/sof-of-dev.c | 12 +-
sound/soc/sof/sof-of-dev.h | 1 +
sound/soc/sof/sof-pci-dev.c | 101 +-
sound/soc/sof/sof-priv.h | 130 +-
sound/soc/sof/topology.c | 79 +-
sound/soc/sof/trace.c | 596 +-
sound/soc/tegra/Kconfig | 12 +
sound/soc/tegra/Makefile | 2 +
sound/soc/tegra/tegra186_asrc.c | 1046 +
sound/soc/tegra/tegra186_asrc.h | 112 +
sound/soc/tegra/tegra210_ahub.c | 82 +-
sound/soc/tegra/tegra_asoc_machine.c | 30 +-
sound/soc/tegra/tegra_wm8903.c | 10 +-
sound/soc/ti/ams-delta.c | 4 +-
sound/soc/ti/davinci-mcasp.c | 2 +
sound/soc/ti/j721e-evm.c | 44 +-
sound/soc/ti/omap-abe-twl6040.c | 8 +-
sound/soc/ti/omap-twl4030.c | 8 +-
sound/soc/ti/osk5912.c | 4 +-
sound/soc/ti/rx51.c | 2 +-
sound/soc/uniphier/aio-compress.c | 7 +-
sound/soc/ux500/mop500_ab8500.c | 9 +-
sound/usb/card.c | 1 +
sound/usb/card.h | 3 +-
sound/usb/clock.c | 11 +
sound/usb/endpoint.c | 90 +-
sound/usb/implicit.c | 10 +-
sound/usb/line6/pcm.c | 4 +-
sound/usb/midi.c | 7 +-
sound/usb/mixer_maps.c | 30 +
sound/usb/pcm.c | 22 +-
sound/usb/quirks-table.h | 19 +-
sound/usb/quirks.c | 8 +
sound/usb/usbaudio.h | 7 +
sound/usb/usx2y/usb_stream.c | 6 +-
sound/usb/usx2y/usbusx2yaudio.c | 2 +-
sound/usb/usx2y/usx2yhwdeppcm.c | 2 +-
sound/xen/xen_snd_front_evtchnl.c | 44 +-
sound/xen/xen_snd_front_evtchnl.h | 9 -
tools/Makefile | 40 +-
tools/accounting/.gitignore | 1 +
tools/accounting/Makefile | 2 +-
tools/accounting/getdelays.c | 8 +-
tools/accounting/procacct.c | 417 +
tools/arch/arm64/include/uapi/asm/perf_regs.h | 7 +-
tools/arch/h8300/include/asm/bitsperlong.h | 15 -
tools/arch/h8300/include/uapi/asm/mman.h | 7 -
tools/arch/x86/include/asm/amd-ibs.h | 2 +-
tools/arch/x86/include/asm/disabled-features.h | 8 +-
tools/arch/x86/include/asm/msr-index.h | 19 +
tools/bpf/bpftool/btf.c | 62 +-
tools/bpf/bpftool/common.c | 8 -
tools/bpf/bpftool/feature.c | 26 +-
tools/bpf/bpftool/gen.c | 5 +-
tools/bpf/bpftool/link.c | 4 +
tools/bpf/bpftool/main.c | 6 +-
tools/bpf/bpftool/main.h | 2 -
tools/bpf/bpftool/map.c | 2 -
tools/bpf/bpftool/perf.c | 112 +-
tools/bpf/bpftool/pids.c | 1 -
tools/bpf/bpftool/prog.c | 4 +-
tools/bpf/bpftool/struct_ops.c | 2 -
tools/bpf/bpftool/tracelog.c | 2 +-
tools/bpf/runqslower/runqslower.c | 18 +-
tools/build/Makefile.feature | 5 +
tools/build/feature/Makefile | 24 +
tools/build/feature/test-libbpf-bpf_map_create.c | 8 +
.../feature/test-libbpf-bpf_object__next_map.c | 8 +
.../feature/test-libbpf-bpf_object__next_program.c | 8 +
tools/build/feature/test-libbpf-bpf_prog_load.c | 9 +
.../test-libbpf-btf__load_from_kernel_by_id.c | 8 +
tools/build/feature/test-libbpf-btf__raw_data.c | 8 +
tools/certs/print-cert-tbs-hash.sh | 91 +
tools/gpio/gpio-event-mon.c | 6 +-
tools/include/linux/arm-smccc.h | 193 +
tools/include/linux/bitmap.h | 17 +-
tools/include/linux/objtool.h | 10 +-
tools/include/nolibc/Makefile | 42 +
tools/include/nolibc/arch-aarch64.h | 199 +
tools/include/nolibc/arch-arm.h | 204 +
tools/include/nolibc/arch-i386.h | 219 +
tools/include/nolibc/arch-mips.h | 215 +
tools/include/nolibc/arch-riscv.h | 204 +
tools/include/nolibc/arch-x86_64.h | 215 +
tools/include/nolibc/arch.h | 32 +
tools/include/nolibc/ctype.h | 99 +
tools/include/nolibc/errno.h | 27 +
tools/include/nolibc/nolibc.h | 2540 +-
tools/include/nolibc/signal.h | 22 +
tools/include/nolibc/std.h | 49 +
tools/include/nolibc/stdio.h | 306 +
tools/include/nolibc/stdlib.h | 423 +
tools/include/nolibc/string.h | 285 +
tools/include/nolibc/sys.h | 1247 +
tools/include/nolibc/time.h | 28 +
tools/include/nolibc/types.h | 205 +
tools/include/nolibc/unistd.h | 54 +
tools/include/uapi/asm-generic/fcntl.h | 21 +-
tools/include/uapi/asm-generic/socket.h | 2 +
tools/include/uapi/asm-generic/unistd.h | 4 +-
tools/include/uapi/asm/bitsperlong.h | 2 +
tools/include/uapi/asm/bpf_perf_event.h | 2 +
tools/include/uapi/linux/bpf.h | 125 +
tools/include/uapi/linux/btf.h | 4 +-
tools/include/uapi/linux/if_link.h | 2 +
tools/include/uapi/linux/kvm.h | 10 +-
tools/lib/bitmap.c | 20 +-
tools/lib/bpf/Build | 3 +-
tools/lib/bpf/Makefile | 4 +-
tools/lib/bpf/bpf.c | 136 +-
tools/lib/bpf/bpf.h | 46 +-
tools/lib/bpf/bpf_core_read.h | 37 +-
tools/lib/bpf/bpf_helpers.h | 26 +
tools/lib/bpf/bpf_tracing.h | 23 +
tools/lib/bpf/btf.c | 15 +-
tools/lib/bpf/libbpf.c | 1273 +-
tools/lib/bpf/libbpf.h | 279 +-
tools/lib/bpf/libbpf.map | 17 +-
tools/lib/bpf/libbpf_internal.h | 37 +
tools/lib/bpf/libbpf_version.h | 4 +-
tools/lib/bpf/relo_core.c | 104 +-
tools/lib/bpf/relo_core.h | 6 +
tools/lib/bpf/usdt.bpf.h | 259 +
tools/lib/bpf/usdt.c | 1518 +
tools/lib/perf/evlist.c | 84 +-
tools/lib/perf/evsel.c | 34 +-
tools/lib/perf/include/internal/evlist.h | 3 +-
tools/lib/perf/include/internal/evsel.h | 11 +
tools/lib/perf/include/internal/lib.h | 2 +
tools/lib/perf/include/perf/cpumap.h | 3 +
tools/lib/perf/include/perf/evsel.h | 1 +
tools/lib/perf/lib.c | 20 +
tools/lib/subcmd/parse-options.c | 17 +-
tools/lib/thermal/.gitignore | 2 +
tools/lib/thermal/Build | 5 +
tools/lib/thermal/Makefile | 165 +
tools/lib/thermal/commands.c | 349 +
tools/lib/thermal/events.c | 164 +
tools/lib/thermal/include/thermal.h | 142 +
tools/lib/thermal/libthermal.map | 25 +
tools/lib/thermal/libthermal.pc.template | 12 +
tools/lib/thermal/sampling.c | 75 +
tools/lib/thermal/thermal.c | 135 +
tools/lib/thermal/thermal_nl.c | 215 +
tools/lib/thermal/thermal_nl.h | 46 +
tools/memory-model/README | 3 +-
tools/objtool/Build | 12 +-
.../{stack-validation.txt => objtool.txt} | 122 +-
tools/objtool/Makefile | 14 +-
tools/objtool/arch/x86/decode.c | 2 +-
tools/objtool/arch/x86/special.c | 2 +-
tools/objtool/builtin-check.c | 156 +-
tools/objtool/builtin-orc.c | 73 -
tools/objtool/check.c | 467 +-
tools/objtool/elf.c | 211 +-
tools/objtool/include/objtool/builtin.h | 34 +-
tools/objtool/include/objtool/elf.h | 16 +-
tools/objtool/include/objtool/warn.h | 35 +-
tools/objtool/objtool.c | 103 +-
tools/objtool/weak.c | 9 +-
tools/perf/.gitignore | 1 -
tools/perf/Documentation/perf-annotate.txt | 5 +
tools/perf/Documentation/perf-arm-spe.txt | 218 +
tools/perf/Documentation/perf-c2c.txt | 8 +-
tools/perf/Documentation/perf-intel-pt.txt | 165 +
tools/perf/Documentation/perf-kvm.txt | 3 +
tools/perf/Documentation/perf-lock.txt | 21 +
tools/perf/Documentation/perf-record.txt | 12 +-
tools/perf/Documentation/perf-script.txt | 4 +
tools/perf/Documentation/perf-stat.txt | 12 +-
tools/perf/Documentation/perf-top.txt | 2 +-
tools/perf/Documentation/perf.txt | 2 +-
tools/perf/Makefile.config | 74 +-
tools/perf/Makefile.perf | 6 +-
tools/perf/arch/arm/util/cs-etm.c | 1 +
tools/perf/arch/arm64/util/arm-spe.c | 1 +
tools/perf/arch/arm64/util/mem-events.c | 6 +-
tools/perf/arch/arm64/util/perf_regs.c | 38 +
tools/perf/arch/arm64/util/unwind-libunwind.c | 73 +-
tools/perf/arch/riscv/Makefile | 1 +
tools/perf/arch/s390/util/auxtrace.c | 1 +
tools/perf/arch/x86/util/evlist.c | 7 +-
tools/perf/arch/x86/util/evsel.c | 32 +
tools/perf/arch/x86/util/evsel.h | 7 +
tools/perf/arch/x86/util/intel-bts.c | 1 +
tools/perf/arch/x86/util/intel-pt.c | 32 +-
tools/perf/arch/x86/util/perf_regs.c | 12 +
tools/perf/arch/x86/util/topdown.c | 46 +-
tools/perf/arch/x86/util/topdown.h | 7 +
tools/perf/bench/Build | 1 +
tools/perf/bench/bench.h | 2 +
tools/perf/bench/breakpoint.c | 244 +
tools/perf/bench/numa.c | 4 +-
tools/perf/builtin-annotate.c | 24 +
tools/perf/builtin-bench.c | 8 +
tools/perf/builtin-c2c.c | 90 +-
tools/perf/builtin-inject.c | 162 +-
tools/perf/builtin-kvm.c | 2 +
tools/perf/builtin-lock.c | 94 +-
tools/perf/builtin-record.c | 77 +-
tools/perf/builtin-script.c | 37 +-
tools/perf/builtin-stat.c | 76 +-
tools/perf/builtin-version.c | 1 +
tools/perf/perf-with-kcore.sh | 247 -
.../arch/arm64/arm/cortex-a34/branch.json | 11 +
.../pmu-events/arch/arm64/arm/cortex-a34/bus.json | 17 +
.../arch/arm64/arm/cortex-a34/cache.json | 32 +
.../arch/arm64/arm/cortex-a34/exception.json | 14 +
.../arch/arm64/arm/cortex-a34/instruction.json | 29 +
.../arch/arm64/arm/cortex-a34/memory.json | 8 +
.../arch/arm64/arm/cortex-a35/branch.json | 11 +
.../pmu-events/arch/arm64/arm/cortex-a35/bus.json | 17 +
.../arch/arm64/arm/cortex-a35/cache.json | 32 +
.../arch/arm64/arm/cortex-a35/exception.json | 14 +
.../arch/arm64/arm/cortex-a35/instruction.json | 44 +
.../arch/arm64/arm/cortex-a35/memory.json | 8 +
.../arch/arm64/arm/cortex-a510/branch.json | 59 +
.../pmu-events/arch/arm64/arm/cortex-a510/bus.json | 17 +
.../arch/arm64/arm/cortex-a510/cache.json | 182 +
.../arch/arm64/arm/cortex-a510/exception.json | 14 +
.../arch/arm64/arm/cortex-a510/instruction.json | 95 +
.../arch/arm64/arm/cortex-a510/memory.json | 32 +
.../arch/arm64/arm/cortex-a510/pipeline.json | 107 +
.../pmu-events/arch/arm64/arm/cortex-a510/pmu.json | 8 +
.../arch/arm64/arm/cortex-a510/trace.json | 32 +
.../arch/arm64/arm/cortex-a55/branch.json | 59 +
.../pmu-events/arch/arm64/arm/cortex-a55/bus.json | 17 +
.../arch/arm64/arm/cortex-a55/cache.json | 188 +
.../arch/arm64/arm/cortex-a55/exception.json | 20 +
.../arch/arm64/arm/cortex-a55/instruction.json | 65 +
.../arch/arm64/arm/cortex-a55/memory.json | 17 +
.../arch/arm64/arm/cortex-a55/pipeline.json | 80 +
.../arch/arm64/arm/cortex-a57-a72/branch.json | 17 +
.../arch/arm64/arm/cortex-a57-a72/bus.json | 29 +
.../arch/arm64/arm/cortex-a57-a72/cache.json | 80 +
.../arm64/arm/cortex-a57-a72/core-imp-def.json | 179 -
.../arch/arm64/arm/cortex-a57-a72/exception.json | 47 +
.../arch/arm64/arm/cortex-a57-a72/instruction.json | 68 +
.../arch/arm64/arm/cortex-a57-a72/memory.json | 20 +
.../arch/arm64/arm/cortex-a65/branch.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-a65/bus.json | 17 +
.../arch/arm64/arm/cortex-a65/cache.json | 236 +
.../pmu-events/arch/arm64/arm/cortex-a65/dpu.json | 32 +
.../arch/arm64/arm/cortex-a65/exception.json | 14 +
.../pmu-events/arch/arm64/arm/cortex-a65/ifu.json | 122 +
.../arch/arm64/arm/cortex-a65/instruction.json | 71 +
.../arch/arm64/arm/cortex-a65/memory.json | 35 +
.../arch/arm64/arm/cortex-a65/pipeline.json | 8 +
.../arch/arm64/arm/cortex-a710/branch.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-a710/bus.json | 20 +
.../arch/arm64/arm/cortex-a710/cache.json | 155 +
.../arch/arm64/arm/cortex-a710/exception.json | 47 +
.../arch/arm64/arm/cortex-a710/instruction.json | 134 +
.../arch/arm64/arm/cortex-a710/memory.json | 41 +
.../arch/arm64/arm/cortex-a710/pipeline.json | 23 +
.../arch/arm64/arm/cortex-a710/trace.json | 29 +
.../arch/arm64/arm/cortex-a73/branch.json | 11 +
.../pmu-events/arch/arm64/arm/cortex-a73/bus.json | 23 +
.../arch/arm64/arm/cortex-a73/cache.json | 107 +
.../pmu-events/arch/arm64/arm/cortex-a73/etm.json | 14 +
.../arch/arm64/arm/cortex-a73/exception.json | 14 +
.../arch/arm64/arm/cortex-a73/instruction.json | 65 +
.../arch/arm64/arm/cortex-a73/memory.json | 14 +
.../pmu-events/arch/arm64/arm/cortex-a73/mmu.json | 44 +
.../arch/arm64/arm/cortex-a73/pipeline.json | 38 +
.../arch/arm64/arm/cortex-a75/branch.json | 11 +
.../pmu-events/arch/arm64/arm/cortex-a75/bus.json | 17 +
.../arch/arm64/arm/cortex-a75/cache.json | 164 +
.../pmu-events/arch/arm64/arm/cortex-a75/etm.json | 14 +
.../arch/arm64/arm/cortex-a75/exception.json | 17 +
.../arch/arm64/arm/cortex-a75/instruction.json | 74 +
.../arch/arm64/arm/cortex-a75/memory.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-a75/mmu.json | 44 +
.../arch/arm64/arm/cortex-a75/pipeline.json | 44 +
.../arch/arm64/arm/cortex-a77/branch.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-a77/bus.json | 17 +
.../arch/arm64/arm/cortex-a77/cache.json | 143 +
.../arch/arm64/arm/cortex-a77/exception.json | 47 +
.../arch/arm64/arm/cortex-a77/instruction.json | 77 +
.../arch/arm64/arm/cortex-a77/memory.json | 23 +
.../arch/arm64/arm/cortex-a77/pipeline.json | 8 +
.../arch/arm64/arm/cortex-a78/branch.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-a78/bus.json | 20 +
.../arch/arm64/arm/cortex-a78/cache.json | 155 +
.../arch/arm64/arm/cortex-a78/exception.json | 47 +
.../arch/arm64/arm/cortex-a78/instruction.json | 80 +
.../arch/arm64/arm/cortex-a78/memory.json | 23 +
.../arch/arm64/arm/cortex-a78/pipeline.json | 23 +
.../arch/arm64/arm/cortex-x1/branch.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-x1/bus.json | 20 +
.../pmu-events/arch/arm64/arm/cortex-x1/cache.json | 155 +
.../arch/arm64/arm/cortex-x1/exception.json | 47 +
.../arch/arm64/arm/cortex-x1/instruction.json | 80 +
.../arch/arm64/arm/cortex-x1/memory.json | 23 +
.../arch/arm64/arm/cortex-x1/pipeline.json | 23 +
.../arch/arm64/arm/cortex-x2/branch.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-x2/bus.json | 20 +
.../pmu-events/arch/arm64/arm/cortex-x2/cache.json | 155 +
.../arch/arm64/arm/cortex-x2/exception.json | 47 +
.../arch/arm64/arm/cortex-x2/instruction.json | 134 +
.../arch/arm64/arm/cortex-x2/memory.json | 41 +
.../arch/arm64/arm/cortex-x2/pipeline.json | 23 +
.../pmu-events/arch/arm64/arm/cortex-x2/trace.json | 29 +
.../arch/arm64/arm/neoverse-e1/branch.json | 17 +
.../pmu-events/arch/arm64/arm/neoverse-e1/bus.json | 17 +
.../arch/arm64/arm/neoverse-e1/cache.json | 107 +
.../arch/arm64/arm/neoverse-e1/exception.json | 14 +
.../arch/arm64/arm/neoverse-e1/instruction.json | 65 +
.../arch/arm64/arm/neoverse-e1/memory.json | 23 +
.../arch/arm64/arm/neoverse-e1/pipeline.json | 8 +
.../pmu-events/arch/arm64/arm/neoverse-e1/spe.json | 14 +
.../arch/arm64/common-and-microarch.json | 66 +
tools/perf/pmu-events/arch/arm64/mapfile.csv | 13 +
tools/perf/pmu-events/arch/s390/cf_z10/basic.json | 48 +-
tools/perf/pmu-events/arch/s390/cf_z10/crypto.json | 64 +-
.../perf/pmu-events/arch/s390/cf_z10/extended.json | 36 +-
tools/perf/pmu-events/arch/s390/cf_z13/basic.json | 48 +-
tools/perf/pmu-events/arch/s390/cf_z13/crypto.json | 64 +-
.../perf/pmu-events/arch/s390/cf_z13/extended.json | 100 +-
tools/perf/pmu-events/arch/s390/cf_z14/basic.json | 32 +-
tools/perf/pmu-events/arch/s390/cf_z14/crypto.json | 64 +-
.../perf/pmu-events/arch/s390/cf_z14/extended.json | 102 +-
tools/perf/pmu-events/arch/s390/cf_z15/basic.json | 32 +-
tools/perf/pmu-events/arch/s390/cf_z15/crypto.json | 114 -
.../perf/pmu-events/arch/s390/cf_z15/crypto6.json | 112 +
.../perf/pmu-events/arch/s390/cf_z15/extended.json | 108 +-
tools/perf/pmu-events/arch/s390/cf_z16/basic.json | 58 +
.../perf/pmu-events/arch/s390/cf_z16/crypto6.json | 142 +
.../perf/pmu-events/arch/s390/cf_z16/extended.json | 492 +
.../pmu-events/arch/s390/cf_z16/transaction.json | 7 +
tools/perf/pmu-events/arch/s390/cf_z196/basic.json | 48 +-
.../perf/pmu-events/arch/s390/cf_z196/crypto.json | 64 +-
.../pmu-events/arch/s390/cf_z196/extended.json | 44 +-
.../perf/pmu-events/arch/s390/cf_zec12/basic.json | 48 +-
.../perf/pmu-events/arch/s390/cf_zec12/crypto.json | 64 +-
.../pmu-events/arch/s390/cf_zec12/extended.json | 66 +-
tools/perf/pmu-events/arch/s390/mapfile.csv | 1 +
.../pmu-events/arch/x86/alderlake/adl-metrics.json | 792 +
.../pmu-events/arch/x86/cascadelakex/cache.json | 1164 +-
.../pmu-events/arch/x86/cascadelakex/memory.json | 702 +-
.../pmu-events/arch/x86/cascadelakex/other.json | 156 +-
.../pmu-events/arch/x86/cascadelakex/pipeline.json | 14 +-
.../arch/x86/cascadelakex/uncore-memory.json | 61 +
.../arch/x86/cascadelakex/uncore-other.json | 96 +-
.../pmu-events/arch/x86/elkhartlake/other.json | 13 +-
.../pmu-events/arch/x86/elkhartlake/pipeline.json | 13 +-
tools/perf/pmu-events/arch/x86/goldmont/other.json | 31 +-
.../pmu-events/arch/x86/goldmont/pipeline.json | 31 +-
.../pmu-events/arch/x86/goldmontplus/other.json | 37 +-
.../pmu-events/arch/x86/goldmontplus/pipeline.json | 37 +-
tools/perf/pmu-events/arch/x86/icelake/cache.json | 41 +-
.../pmu-events/arch/x86/icelake/icl-metrics.json | 36 +-
tools/perf/pmu-events/arch/x86/icelake/memory.json | 10 +-
tools/perf/pmu-events/arch/x86/icelake/other.json | 38 +-
.../perf/pmu-events/arch/x86/icelake/pipeline.json | 26 +-
tools/perf/pmu-events/arch/x86/icelakex/cache.json | 31 +-
.../pmu-events/arch/x86/icelakex/icx-metrics.json | 24 +-
.../perf/pmu-events/arch/x86/icelakex/memory.json | 21 +-
tools/perf/pmu-events/arch/x86/icelakex/other.json | 70 +-
.../pmu-events/arch/x86/icelakex/pipeline.json | 14 +-
.../perf/pmu-events/arch/x86/ivytown/pipeline.json | 4 +-
.../pmu-events/arch/x86/ivytown/uncore-memory.json | 3 +-
tools/perf/pmu-events/arch/x86/mapfile.csv | 1 +
.../perf/pmu-events/arch/x86/nehalemep/other.json | 66 +-
.../pmu-events/arch/x86/nehalemep/pipeline.json | 66 +-
.../pmu-events/arch/x86/sapphirerapids/cache.json | 1083 +
.../arch/x86/sapphirerapids/floating-point.json | 218 +
.../arch/x86/sapphirerapids/frontend.json | 471 +
.../pmu-events/arch/x86/sapphirerapids/memory.json | 415 +
.../pmu-events/arch/x86/sapphirerapids/other.json | 362 +
.../arch/x86/sapphirerapids/pipeline.json | 1283 +
.../arch/x86/sapphirerapids/spr-metrics.json | 530 +
.../arch/x86/sapphirerapids/uncore-memory.json | 499 +
.../arch/x86/sapphirerapids/uncore-other.json | 5150 +
.../arch/x86/sapphirerapids/uncore-power.json | 12 +
.../arch/x86/sapphirerapids/virtual-memory.json | 225 +
tools/perf/pmu-events/arch/x86/skylake/cache.json | 174 +-
tools/perf/pmu-events/arch/x86/skylake/memory.json | 90 +-
.../perf/pmu-events/arch/x86/skylake/pipeline.json | 14 +-
tools/perf/pmu-events/arch/x86/skylakex/cache.json | 74 +-
.../perf/pmu-events/arch/x86/skylakex/memory.json | 74 +-
.../pmu-events/arch/x86/skylakex/pipeline.json | 14 +-
.../arch/x86/skylakex/uncore-memory.json | 20 +
.../pmu-events/arch/x86/skylakex/uncore-other.json | 96 +-
.../perf/pmu-events/arch/x86/tigerlake/other.json | 13 +-
.../pmu-events/arch/x86/tigerlake/pipeline.json | 13 +-
tools/perf/pmu-events/arch/x86/tremontx/other.json | 13 +-
.../pmu-events/arch/x86/tremontx/pipeline.json | 13 +-
.../arch/x86/tremontx/uncore-memory.json | 22 +
.../pmu-events/arch/x86/tremontx/uncore-other.json | 94 +
.../pmu-events/arch/x86/westmereep-dp/other.json | 66 +-
.../arch/x86/westmereep-dp/pipeline.json | 66 +-
.../pmu-events/arch/x86/westmereep-sp/cache.json | 14 +-
.../pmu-events/arch/x86/westmereep-sp/memory.json | 6 +-
.../pmu-events/arch/x86/westmereep-sp/other.json | 66 +-
.../arch/x86/westmereep-sp/pipeline.json | 66 +-
.../perf/pmu-events/arch/x86/westmereex/cache.json | 14 +-
.../pmu-events/arch/x86/westmereex/memory.json | 6 +-
.../perf/pmu-events/arch/x86/westmereex/other.json | 66 +-
.../pmu-events/arch/x86/westmereex/pipeline.json | 66 +-
tools/perf/pmu-events/jevents.c | 92 +-
tools/perf/scripts/python/arm-cs-trace-disasm.py | 272 +
tools/perf/scripts/python/intel-pt-events.py | 8 +-
tools/perf/tests/bpf.c | 10 +-
tools/perf/tests/builtin-test.c | 18 +-
tools/perf/tests/evsel-roundtrip-name.c | 2 +-
tools/perf/tests/mmap-basic.c | 18 +-
tools/perf/tests/openat-syscall-all-cpus.c | 23 +-
tools/perf/tests/openat-syscall.c | 20 +-
tools/perf/tests/parse-events.c | 492 +-
tools/perf/tests/perf-record.c | 18 +-
tools/perf/tests/pmu-events.c | 30 +-
tools/perf/tests/shell/lib/perf_csv_output_lint.py | 48 +
tools/perf/tests/shell/record.sh | 80 +
tools/perf/tests/shell/record_offcpu.sh | 60 +
tools/perf/tests/shell/stat+csv_output.sh | 147 +
tools/perf/tests/shell/stat.sh | 80 +
tools/perf/tests/shell/stat_all_pmu.sh | 10 +
tools/perf/tests/shell/test_arm_coresight.sh | 1 -
tools/perf/tests/shell/test_arm_spe_fork.sh | 92 +
tools/perf/tests/shell/test_intel_pt.sh | 71 +
tools/perf/tests/topology.c | 11 +
tools/perf/tests/vmlinux-kallsyms.c | 12 +-
tools/perf/util/Build | 1 +
tools/perf/util/auxtrace.c | 31 +-
tools/perf/util/auxtrace.h | 13 +-
tools/perf/util/bpf-event.c | 30 +-
tools/perf/util/bpf-loader.c | 27 +-
tools/perf/util/bpf_counter.c | 67 +-
tools/perf/util/bpf_counter_cgroup.c | 42 +-
tools/perf/util/bpf_off_cpu.c | 338 +
tools/perf/util/bpf_skel/off_cpu.bpf.c | 229 +
tools/perf/util/data.c | 14 +
tools/perf/util/data.h | 2 +
tools/perf/util/dso.h | 2 +
tools/perf/util/event.c | 7 +-
tools/perf/util/evlist.c | 123 +-
tools/perf/util/evlist.h | 7 +-
tools/perf/util/evsel.c | 84 +-
tools/perf/util/evsel.h | 29 +-
tools/perf/util/genelf.h | 3 +
tools/perf/util/header.c | 62 +-
tools/perf/util/header.h | 15 +
.../perf/util/intel-pt-decoder/intel-pt-decoder.c | 99 +-
.../perf/util/intel-pt-decoder/intel-pt-decoder.h | 1 +
.../util/intel-pt-decoder/intel-pt-insn-decoder.c | 1 +
.../util/intel-pt-decoder/intel-pt-insn-decoder.h | 1 +
tools/perf/util/intel-pt.c | 57 +-
tools/perf/util/libunwind/arm64.c | 2 +-
tools/perf/util/machine.c | 101 +-
tools/perf/util/machine.h | 5 +-
tools/perf/util/mem-events.c | 32 +-
tools/perf/util/mem-events.h | 1 +
tools/perf/util/metricgroup.c | 124 +-
tools/perf/util/mmap.c | 4 +-
tools/perf/util/off_cpu.h | 29 +
tools/perf/util/parse-events.c | 48 +-
tools/perf/util/parse-events.l | 2 +
tools/perf/util/path.c | 14 +-
tools/perf/util/path.h | 1 +
tools/perf/util/perf_regs.c | 2 +
tools/perf/util/python-ext-sources | 1 +
.../util/scripting-engines/trace-event-python.c | 70 +-
tools/perf/util/session.c | 33 +-
tools/perf/util/stat-display.c | 46 +-
tools/perf/util/stat-shadow.c | 29 +-
tools/perf/util/stat.c | 31 +-
tools/perf/util/stat.h | 22 +
tools/perf/util/symbol_conf.h | 3 +-
tools/perf/util/topdown.c | 17 +-
tools/perf/util/topdown.h | 3 +-
tools/perf/util/unwind-libunwind-local.c | 105 +-
tools/perf/util/util.c | 5 +
tools/power/acpi/common/cmfsize.c | 2 +-
tools/power/acpi/common/getopt.c | 2 +-
.../acpi/os_specific/service_layers/oslinuxtbl.c | 2 +-
.../acpi/os_specific/service_layers/osunixdir.c | 2 +-
.../acpi/os_specific/service_layers/osunixmap.c | 2 +-
.../acpi/os_specific/service_layers/osunixxf.c | 2 +-
tools/power/acpi/tools/acpidump/acpidump.h | 2 +-
tools/power/acpi/tools/acpidump/apdump.c | 2 +-
tools/power/acpi/tools/acpidump/apfiles.c | 2 +-
tools/power/acpi/tools/acpidump/apmain.c | 2 +-
tools/power/x86/intel-speed-select/hfi-events.c | 2 +-
tools/power/x86/intel-speed-select/isst-config.c | 6 +
tools/power/x86/turbostat/Makefile | 2 +-
tools/power/x86/turbostat/turbostat.8 | 2 +-
tools/power/x86/turbostat/turbostat.c | 594 +-
tools/testing/crypto/chacha20-s390/Makefile | 12 +
tools/testing/crypto/chacha20-s390/run-tests.sh | 34 +
tools/testing/crypto/chacha20-s390/test-cipher.c | 372 +
tools/testing/cxl/Kbuild | 3 +-
tools/testing/cxl/mock_mem.c | 10 -
tools/testing/cxl/test/mem.c | 17 -
tools/testing/cxl/test/mock.c | 29 +
tools/testing/kunit/configs/all_tests_uml.config | 37 +
tools/testing/kunit/kunit.py | 63 +-
tools/testing/kunit/kunit_config.py | 21 +-
tools/testing/kunit/kunit_json.py | 66 +-
tools/testing/kunit/kunit_kernel.py | 81 +-
tools/testing/kunit/kunit_parser.py | 154 +-
tools/testing/kunit/kunit_tool_test.py | 44 +-
tools/testing/kunit/qemu_config.py | 17 +-
tools/testing/kunit/qemu_configs/alpha.py | 2 +-
tools/testing/kunit/qemu_configs/arm.py | 2 +-
tools/testing/kunit/qemu_configs/arm64.py | 2 +-
tools/testing/kunit/qemu_configs/i386.py | 4 +-
tools/testing/kunit/qemu_configs/powerpc.py | 2 +-
tools/testing/kunit/qemu_configs/riscv.py | 7 +-
tools/testing/kunit/qemu_configs/s390.py | 4 +-
tools/testing/kunit/qemu_configs/sparc.py | 2 +-
tools/testing/kunit/qemu_configs/x86_64.py | 2 +-
tools/testing/kunit/run_checks.py | 2 +-
.../kunit/test_data/test_is_test_passed-crash.log | 70 -
.../test_is_test_passed-no_tests_no_plan.log | 2 +-
tools/testing/memblock/TODO | 3 -
tools/testing/memblock/tests/basic_api.c | 392 +-
tools/testing/nvdimm/pmem-dax.c | 4 +-
tools/testing/nvdimm/test/iomap.c | 18 +-
tools/testing/nvdimm/test/nfit.c | 3 -
tools/testing/selftests/Makefile | 3 +
tools/testing/selftests/alsa/Makefile | 3 +
tools/testing/selftests/alsa/mixer-test.c | 41 +-
tools/testing/selftests/arm64/Makefile | 11 +-
tools/testing/selftests/arm64/abi/.gitignore | 1 +
tools/testing/selftests/arm64/abi/Makefile | 9 +-
.../testing/selftests/arm64/abi/syscall-abi-asm.S | 79 +-
tools/testing/selftests/arm64/abi/syscall-abi.c | 204 +-
tools/testing/selftests/arm64/abi/syscall-abi.h | 15 +
tools/testing/selftests/arm64/abi/tpidr2.c | 298 +
tools/testing/selftests/arm64/bti/Makefile | 6 +-
tools/testing/selftests/arm64/fp/.gitignore | 5 +
tools/testing/selftests/arm64/fp/Makefile | 46 +-
tools/testing/selftests/arm64/fp/rdvl-sme.c | 14 +
tools/testing/selftests/arm64/fp/rdvl.S | 10 +
tools/testing/selftests/arm64/fp/rdvl.h | 1 +
tools/testing/selftests/arm64/fp/sme-inst.h | 51 +
tools/testing/selftests/arm64/fp/ssve-stress | 59 +
tools/testing/selftests/arm64/fp/sve-ptrace.c | 175 +-
tools/testing/selftests/arm64/fp/sve-test.S | 20 +
tools/testing/selftests/arm64/fp/vec-syscfg.c | 10 +
tools/testing/selftests/arm64/fp/vlset.c | 10 +-
tools/testing/selftests/arm64/fp/za-fork-asm.S | 61 +
tools/testing/selftests/arm64/fp/za-fork.c | 156 +
tools/testing/selftests/arm64/fp/za-ptrace.c | 356 +
tools/testing/selftests/arm64/fp/za-stress | 59 +
tools/testing/selftests/arm64/fp/za-test.S | 388 +
tools/testing/selftests/arm64/mte/.gitignore | 1 +
.../selftests/arm64/mte/check_child_memory.c | 8 +-
tools/testing/selftests/arm64/mte/check_prctl.c | 119 +
.../selftests/arm64/mte/check_tags_inclusion.c | 54 +-
.../testing/selftests/arm64/mte/mte_common_util.c | 42 +-
.../testing/selftests/arm64/mte/mte_common_util.h | 15 +-
tools/testing/selftests/arm64/signal/.gitignore | 3 +
.../testing/selftests/arm64/signal/test_signals.h | 4 +
.../selftests/arm64/signal/test_signals_utils.c | 6 +
.../testcases/fake_sigreturn_sme_change_vl.c | 92 +
.../testcases/fake_sigreturn_sve_change_vl.c | 2 +
.../arm64/signal/testcases/sme_trap_no_sm.c | 38 +
.../signal/testcases/sme_trap_non_streaming.c | 45 +
.../selftests/arm64/signal/testcases/sme_trap_za.c | 36 +
.../selftests/arm64/signal/testcases/sme_vl.c | 68 +
.../selftests/arm64/signal/testcases/ssve_regs.c | 135 +
.../selftests/arm64/signal/testcases/testcases.c | 36 +
.../selftests/arm64/signal/testcases/testcases.h | 3 +-
.../selftests/arm64/signal/testcases/za_regs.c | 128 +
tools/testing/selftests/bpf/Makefile | 39 +-
tools/testing/selftests/bpf/bench.c | 1 -
tools/testing/selftests/bpf/bpf_rlimit.h | 28 -
tools/testing/selftests/bpf/bpf_tcp_helpers.h | 13 +
tools/testing/selftests/bpf/config | 4 +
tools/testing/selftests/bpf/flow_dissector_load.c | 6 +-
tools/testing/selftests/bpf/get_cgroup_id_user.c | 4 +-
.../selftests/bpf/map_tests/map_in_map_batch_ops.c | 252 +
tools/testing/selftests/bpf/network_helpers.c | 40 +-
tools/testing/selftests/bpf/network_helpers.h | 2 +
.../testing/selftests/bpf/prog_tests/arg_parsing.c | 107 +
.../selftests/bpf/prog_tests/attach_probe.c | 95 +-
.../testing/selftests/bpf/prog_tests/bpf_cookie.c | 89 +
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 265 +-
.../selftests/bpf/prog_tests/bpf_mod_race.c | 4 +-
.../testing/selftests/bpf/prog_tests/bpf_tcp_ca.c | 6 +-
tools/testing/selftests/bpf/prog_tests/btf.c | 100 +-
.../selftests/bpf/prog_tests/core_autosize.c | 2 +-
.../testing/selftests/bpf/prog_tests/core_reloc.c | 13 +-
.../testing/selftests/bpf/prog_tests/core_retro.c | 17 +-
tools/testing/selftests/bpf/prog_tests/dynptr.c | 137 +
.../selftests/bpf/prog_tests/fexit_bpf2bpf.c | 14 +
.../selftests/bpf/prog_tests/fexit_stress.c | 4 +-
tools/testing/selftests/bpf/prog_tests/for_each.c | 42 +-
.../selftests/bpf/prog_tests/helper_restricted.c | 10 +-
.../selftests/bpf/prog_tests/kprobe_multi_test.c | 159 +-
tools/testing/selftests/bpf/prog_tests/ksyms_btf.c | 17 +-
.../selftests/bpf/prog_tests/linked_funcs.c | 6 +
tools/testing/selftests/bpf/prog_tests/log_fixup.c | 149 +
.../selftests/bpf/prog_tests/lookup_and_delete.c | 15 +-
tools/testing/selftests/bpf/prog_tests/map_kptr.c | 148 +
.../bpf/prog_tests/map_lookup_percpu_elem.c | 58 +
tools/testing/selftests/bpf/prog_tests/mptcp.c | 174 +
tools/testing/selftests/bpf/prog_tests/netcnt.c | 2 +-
.../bpf/prog_tests/prog_tests_framework.c | 56 +
.../selftests/bpf/prog_tests/reference_tracking.c | 23 +-
.../selftests/bpf/prog_tests/ringbuf_multi.c | 12 -
.../selftests/bpf/prog_tests/skb_load_bytes.c | 45 +
tools/testing/selftests/bpf/prog_tests/snprintf.c | 4 +-
.../selftests/bpf/prog_tests/stacktrace_build_id.c | 8 +-
.../bpf/prog_tests/stacktrace_build_id_nmi.c | 11 +-
.../testing/selftests/bpf/prog_tests/tc_redirect.c | 1 -
.../selftests/bpf/prog_tests/test_global_funcs.c | 1 +
.../selftests/bpf/prog_tests/test_strncmp.c | 25 +-
.../testing/selftests/bpf/prog_tests/test_tunnel.c | 423 +
tools/testing/selftests/bpf/prog_tests/timer_mim.c | 2 +-
.../selftests/bpf/prog_tests/trampoline_count.c | 134 +-
.../selftests/bpf/prog_tests/unpriv_bpf_disabled.c | 312 +
.../selftests/bpf/prog_tests/uprobe_autoattach.c | 50 +
tools/testing/selftests/bpf/prog_tests/usdt.c | 419 +
tools/testing/selftests/bpf/progs/bpf_iter.h | 7 +
.../selftests/bpf/progs/bpf_iter_bpf_link.c | 21 +
.../bpf/progs/btf__core_reloc_size___diff_offs.c | 3 +
.../bpf/progs/btf_dump_test_case_syntax.c | 2 +-
.../testing/selftests/bpf/progs/core_reloc_types.h | 18 +
tools/testing/selftests/bpf/progs/dynptr_fail.c | 588 +
tools/testing/selftests/bpf/progs/dynptr_success.c | 164 +
tools/testing/selftests/bpf/progs/exhandler_kern.c | 13 +-
.../bpf/progs/for_each_map_elem_write_key.c | 27 +
.../selftests/bpf/progs/freplace_global_func.c | 18 +
tools/testing/selftests/bpf/progs/kprobe_multi.c | 14 +
.../selftests/bpf/progs/kprobe_multi_empty.c | 12 +
tools/testing/selftests/bpf/progs/linked_funcs1.c | 15 +-
tools/testing/selftests/bpf/progs/linked_funcs2.c | 15 +-
tools/testing/selftests/bpf/progs/loop5.c | 1 -
tools/testing/selftests/bpf/progs/map_kptr.c | 292 +
tools/testing/selftests/bpf/progs/map_kptr_fail.c | 418 +
tools/testing/selftests/bpf/progs/mptcp_sock.c | 88 +
.../selftests/bpf/progs/perf_event_stackmap.c | 4 +-
tools/testing/selftests/bpf/progs/profiler.inc.h | 5 +-
tools/testing/selftests/bpf/progs/profiler1.c | 1 -
tools/testing/selftests/bpf/progs/pyperf.h | 6 +-
tools/testing/selftests/bpf/progs/pyperf600.c | 11 +-
tools/testing/selftests/bpf/progs/skb_load_bytes.c | 19 +
tools/testing/selftests/bpf/progs/strncmp_test.c | 8 +-
.../selftests/bpf/progs/test_attach_probe.c | 64 +-
.../testing/selftests/bpf/progs/test_bpf_cookie.c | 56 +-
.../bpf/progs/test_core_reloc_existence.c | 11 +-
.../selftests/bpf/progs/test_core_reloc_size.c | 31 +-
.../selftests/bpf/progs/test_global_func17.c | 16 +
.../selftests/bpf/progs/test_helper_restricted.c | 16 +-
.../bpf/progs/test_ksyms_btf_write_check.c | 18 +-
.../selftests/bpf/progs/test_l4lb_noinline.c | 2 +-
tools/testing/selftests/bpf/progs/test_log_fixup.c | 64 +
.../bpf/progs/test_map_lookup_percpu_elem.c | 76 +
.../selftests/bpf/progs/test_module_attach.c | 2 +-
.../testing/selftests/bpf/progs/test_pkt_access.c | 2 -
.../selftests/bpf/progs/test_ringbuf_multi.c | 2 +
tools/testing/selftests/bpf/progs/test_sk_assign.c | 4 +-
.../selftests/bpf/progs/test_sk_lookup_kern.c | 18 +-
.../selftests/bpf/progs/test_stacktrace_build_id.c | 2 +-
tools/testing/selftests/bpf/progs/test_subprogs.c | 8 +
.../selftests/bpf/progs/test_task_pt_regs.c | 2 +-
.../selftests/bpf/progs/test_trampoline_count.c | 16 +-
.../testing/selftests/bpf/progs/test_tunnel_kern.c | 371 +-
.../selftests/bpf/progs/test_unpriv_bpf_disabled.c | 83 +
.../selftests/bpf/progs/test_uprobe_autoattach.c | 73 +
.../selftests/bpf/progs/test_urandom_usdt.c | 70 +
tools/testing/selftests/bpf/progs/test_usdt.c | 96 +
.../selftests/bpf/progs/test_usdt_multispec.c | 32 +
.../selftests/bpf/progs/test_xdp_noinline.c | 12 +-
tools/testing/selftests/bpf/progs/trigger_bench.c | 2 +-
tools/testing/selftests/bpf/sdt-config.h | 6 +
tools/testing/selftests/bpf/sdt.h | 513 +
.../selftests/bpf/test_bpftool_synctypes.py | 2 +-
tools/testing/selftests/bpf/test_cgroup_storage.c | 7 +-
tools/testing/selftests/bpf/test_dev_cgroup.c | 4 +-
tools/testing/selftests/bpf/test_lpm_map.c | 43 +-
tools/testing/selftests/bpf/test_lru_map.c | 70 +-
tools/testing/selftests/bpf/test_offload.py | 2 +-
tools/testing/selftests/bpf/test_progs.c | 1006 +-
tools/testing/selftests/bpf/test_progs.h | 89 +-
.../selftests/bpf/test_skb_cgroup_id_user.c | 4 +-
tools/testing/selftests/bpf/test_sock.c | 6 +-
tools/testing/selftests/bpf/test_sock_addr.c | 4 +-
tools/testing/selftests/bpf/test_sockmap.c | 5 +-
tools/testing/selftests/bpf/test_sysctl.c | 6 +-
tools/testing/selftests/bpf/test_tag.c | 4 +-
.../selftests/bpf/test_tcp_check_syncookie_user.c | 4 +-
tools/testing/selftests/bpf/test_tcpnotify_user.c | 1 -
tools/testing/selftests/bpf/test_tunnel.sh | 124 +-
tools/testing/selftests/bpf/test_verifier.c | 55 +-
tools/testing/selftests/bpf/test_verifier_log.c | 5 +-
tools/testing/selftests/bpf/test_xsk.sh | 53 +-
tools/testing/selftests/bpf/testing_helpers.c | 91 +-
tools/testing/selftests/bpf/testing_helpers.h | 8 +
tools/testing/selftests/bpf/trace_helpers.c | 9 +-
tools/testing/selftests/bpf/urandom_read.c | 63 +-
tools/testing/selftests/bpf/urandom_read_aux.c | 9 +
tools/testing/selftests/bpf/urandom_read_lib1.c | 13 +
tools/testing/selftests/bpf/urandom_read_lib2.c | 8 +
tools/testing/selftests/bpf/verifier/calls.c | 20 +
tools/testing/selftests/bpf/verifier/map_kptr.c | 469 +
.../testing/selftests/bpf/verifier/ref_tracking.c | 2 +-
tools/testing/selftests/bpf/verifier/sock.c | 6 +-
tools/testing/selftests/bpf/xdp_redirect_multi.c | 1 -
tools/testing/selftests/bpf/xdping.c | 8 +-
tools/testing/selftests/bpf/xdpxceiver.c | 553 +-
tools/testing/selftests/bpf/xdpxceiver.h | 42 +-
tools/testing/selftests/bpf/xsk_prereqs.sh | 47 +-
tools/testing/selftests/cgroup/.gitignore | 1 +
tools/testing/selftests/cgroup/Makefile | 2 +
tools/testing/selftests/cgroup/cgroup_util.c | 64 +-
tools/testing/selftests/cgroup/cgroup_util.h | 5 +
tools/testing/selftests/cgroup/config | 8 +
tools/testing/selftests/cgroup/memcg_protection.m | 89 +
tools/testing/selftests/cgroup/test_cpu.c | 726 +
tools/testing/selftests/cgroup/test_memcontrol.c | 392 +-
tools/testing/selftests/cgroup/test_stress.sh | 2 +-
tools/testing/selftests/damon/sysfs.sh | 1 +
tools/testing/selftests/drivers/.gitignore | 1 +
.../drivers/net/dsa/bridge_locked_port.sh | 1 +
.../selftests/drivers/net/dsa/bridge_mdb.sh | 1 +
.../selftests/drivers/net/dsa/bridge_mld.sh | 1 +
.../selftests/drivers/net/dsa/bridge_vlan_aware.sh | 1 +
.../selftests/drivers/net/dsa/bridge_vlan_mcast.sh | 1 +
.../drivers/net/dsa/bridge_vlan_unaware.sh | 1 +
.../selftests/drivers/net/dsa/forwarding.config | 2 +
tools/testing/selftests/drivers/net/dsa/lib.sh | 1 +
.../selftests/drivers/net/dsa/local_termination.sh | 1 +
.../selftests/drivers/net/dsa/no_forwarding.sh | 1 +
.../drivers/net/mlxsw/devlink_linecard.sh | 280 +
.../selftests/drivers/net/mlxsw/qos_burst.sh | 480 +
.../selftests/drivers/net/mlxsw/qos_headroom.sh | 4 +-
.../testing/selftests/drivers/net/mlxsw/qos_pfc.sh | 4 +-
.../selftests/drivers/net/mlxsw/sch_red_ets.sh | 5 +-
.../selftests/drivers/net/mlxsw/sch_red_root.sh | 5 +-
.../selftests/drivers/net/netdevsim/hw_stats_l3.sh | 4 +-
.../selftests/drivers/net/ocelot/basic_qos.sh | 253 +
tools/testing/selftests/drivers/net/ocelot/psfp.sh | 327 +
.../drivers/net/ocelot/tc_flower_chains.sh | 204 +-
.../selftests/drivers/s390x/uvdevice/Makefile | 22 +
.../selftests/drivers/s390x/uvdevice/config | 1 +
.../drivers/s390x/uvdevice/test_uvdevice.c | 276 +
.../selftests/filesystems/binderfs/binderfs_test.c | 4 +-
tools/testing/selftests/firmware/Makefile | 2 +-
tools/testing/selftests/firmware/config | 1 +
tools/testing/selftests/firmware/fw_filesystem.sh | 170 +-
tools/testing/selftests/firmware/fw_lib.sh | 19 +-
tools/testing/selftests/firmware/fw_run_tests.sh | 4 +
tools/testing/selftests/firmware/fw_upload.sh | 214 +
.../ftrace/test.d/kprobe/kprobe_args_string.tc | 3 +
.../ftrace/test.d/kprobe/kprobe_args_syntax.tc | 4 +
.../ftrace/test.d/kprobe/multiple_kprobes.tc | 2 +
tools/testing/selftests/ir/ir_loopback.sh | 2 +-
tools/testing/selftests/kselftest.h | 15 +
tools/testing/selftests/kvm/.gitignore | 6 +-
tools/testing/selftests/kvm/Makefile | 7 +-
tools/testing/selftests/kvm/aarch64/get-reg-list.c | 8 +
tools/testing/selftests/kvm/aarch64/hypercalls.c | 336 +
.../selftests/kvm/aarch64/psci_cpu_on_test.c | 121 -
tools/testing/selftests/kvm/aarch64/psci_test.c | 213 +
.../selftests/kvm/include/aarch64/processor.h | 22 +
.../selftests/kvm/include/riscv/processor.h | 8 +-
.../testing/selftests/kvm/lib/aarch64/processor.c | 25 +
tools/testing/selftests/kvm/lib/riscv/processor.c | 11 +-
tools/testing/selftests/kvm/lib/riscv/ucall.c | 31 +-
tools/testing/selftests/kvm/s390x/memop.c | 46 +-
tools/testing/selftests/kvm/steal_time.c | 13 +-
.../selftests/kvm/x86_64/fix_hypercall_test.c | 170 +
tools/testing/selftests/kvm/x86_64/hyperv_clock.c | 10 +-
.../selftests/kvm/x86_64/pmu_event_filter_test.c | 37 +-
.../selftests/kvm/x86_64/tsc_scaling_sync.c | 119 +
.../{vmx_pmu_msrs_test.c => vmx_pmu_caps_test.c} | 18 +-
.../testing/selftests/kvm/x86_64/xen_shinfo_test.c | 366 +-
tools/testing/selftests/landlock/base_test.c | 179 +-
tools/testing/selftests/landlock/common.h | 66 +-
tools/testing/selftests/landlock/fs_test.c | 1619 +-
tools/testing/selftests/landlock/ptrace_test.c | 40 +-
tools/testing/selftests/lkdtm/config | 4 +
tools/testing/selftests/lkdtm/tests.txt | 9 +-
tools/testing/selftests/mqueue/mq_perf_tests.c | 4 +-
tools/testing/selftests/net/.gitignore | 2 +
tools/testing/selftests/net/Makefile | 11 +-
tools/testing/selftests/net/bind_bhash_test.c | 119 +
tools/testing/selftests/net/bpf/Makefile | 14 +
tools/testing/selftests/net/bpf/nat6to4.c | 285 +
tools/testing/selftests/net/fcnal-test.sh | 12 +
tools/testing/selftests/net/fib_nexthops.sh | 53 +-
tools/testing/selftests/net/fib_rule_tests.sh | 12 +-
tools/testing/selftests/net/forwarding/Makefile | 35 +
.../testing/selftests/net/forwarding/bridge_mdb.sh | 103 +
.../selftests/net/forwarding/hw_stats_l3.sh | 16 +-
.../selftests/net/forwarding/hw_stats_l3_gre.sh | 109 +
tools/testing/selftests/net/forwarding/lib.sh | 144 +-
.../selftests/net/forwarding/local_termination.sh | 299 +
.../net/forwarding/mirror_gre_bridge_1q.sh | 3 +
.../selftests/net/forwarding/no_forwarding.sh | 261 +
tools/testing/selftests/net/forwarding/router.sh | 18 +
.../selftests/net/forwarding/router_vid_1.sh | 27 +-
.../testing/selftests/net/forwarding/tc_actions.sh | 2 +-
tools/testing/selftests/net/forwarding/tsn_lib.sh | 235 +
tools/testing/selftests/net/mptcp/config | 8 +
tools/testing/selftests/net/mptcp/diag.sh | 38 +
tools/testing/selftests/net/mptcp/mptcp_join.sh | 291 +-
tools/testing/selftests/net/mptcp/pm_nl_ctl.c | 645 +-
tools/testing/selftests/net/mptcp/userspace_pm.sh | 779 +
.../selftests/net/ndisc_unsolicited_na_test.sh | 254 +
tools/testing/selftests/net/psock_snd.c | 2 +
tools/testing/selftests/net/so_txtime.c | 4 +-
.../selftests/net/stress_reuseport_listen.c | 105 +
.../selftests/net/stress_reuseport_listen.sh | 25 +
tools/testing/selftests/net/udpgro_frglist.sh | 101 +
.../testing/selftests/net/vrf_strict_mode_test.sh | 48 +-
tools/testing/selftests/netfilter/nft_fib.sh | 50 +
tools/testing/selftests/netfilter/nft_nat.sh | 43 +
tools/testing/selftests/powerpc/include/utils.h | 5 +
tools/testing/selftests/powerpc/math/Makefile | 4 +-
tools/testing/selftests/powerpc/math/mma.S | 33 +
tools/testing/selftests/powerpc/math/mma.c | 48 +
tools/testing/selftests/powerpc/mm/.gitignore | 1 +
tools/testing/selftests/powerpc/mm/Makefile | 4 +-
.../selftests/powerpc/mm/large_vm_gpr_corruption.c | 156 +
.../powerpc/pmu/ebb/fixed_instruction_loop.S | 43 -
.../selftests/powerpc/pmu/sampling_tests/misc.c | 2 +-
.../selftests/powerpc/security/spectre_v2.c | 32 +-
.../testing/selftests/rcutorture/bin/functions.sh | 2 +-
.../selftests/rcutorture/bin/kvm-find-errors.sh | 2 +-
.../selftests/rcutorture/bin/kvm-recheck.sh | 7 +-
.../testing/selftests/rcutorture/bin/kvm-remote.sh | 14 +-
tools/testing/selftests/rcutorture/bin/kvm.sh | 10 +-
tools/testing/selftests/rcutorture/bin/torture.sh | 29 +-
.../selftests/rcutorture/configs/rcu/RUDE01 | 2 +
.../selftests/rcutorture/configs/rcu/SRCU-N | 2 +
.../selftests/rcutorture/configs/rcu/TASKS01 | 1 +
.../selftests/rcutorture/configs/rcu/TASKS02 | 4 +
.../selftests/rcutorture/configs/rcu/TASKS02.boot | 1 +
.../selftests/rcutorture/configs/rcu/TASKS03 | 2 +
.../selftests/rcutorture/configs/rcu/TRACE01 | 3 +
.../selftests/rcutorture/configs/rcu/TRACE02 | 2 +
.../selftests/rcutorture/configs/rcu/TREE04 | 5 +-
.../selftests/rcutorture/configs/rcu/TREE07 | 1 +
.../selftests/rcutorture/configs/rcu/TREE09 | 2 +
.../selftests/rcutorture/configs/rcu/TREE10 | 1 +
.../rcutorture/configs/rcu/ver_functions.sh | 16 +-
.../selftests/rcutorture/configs/rcuscale/CFcommon | 7 +-
.../selftests/rcutorture/configs/rcuscale/TREE | 2 +
.../selftests/rcutorture/configs/refscale/CFcommon | 4 +
.../rcutorture/configs/refscale/NOPREEMPT | 2 +
.../selftests/rcutorture/configs/scf/NOPREEMPT | 2 +
.../selftests/rcutorture/configs/scf/PREEMPT | 1 +
.../rcutorture/configs/scf/ver_functions.sh | 3 +-
tools/testing/selftests/resctrl/Makefile | 19 +-
tools/testing/selftests/resctrl/README | 39 +-
tools/testing/selftests/resctrl/cat_test.c | 2 +-
tools/testing/selftests/resctrl/fill_buf.c | 4 +-
tools/testing/selftests/resctrl/resctrl.h | 5 +-
tools/testing/selftests/resctrl/resctrl_tests.c | 49 +-
tools/testing/selftests/resctrl/resctrl_val.c | 1 +
tools/testing/selftests/resctrl/resctrlfs.c | 2 +-
tools/testing/selftests/resctrl/settings | 3 +
tools/testing/selftests/seccomp/Makefile | 1 +
tools/testing/selftests/seccomp/seccomp_bpf.c | 437 +-
tools/testing/selftests/sysctl/sysctl.sh | 23 +
tools/testing/selftests/vm/.gitignore | 3 +
tools/testing/selftests/vm/Makefile | 24 +-
tools/testing/selftests/vm/config | 2 +
tools/testing/selftests/vm/gup_test.c | 24 +-
tools/testing/selftests/vm/hugepage-mremap.c | 6 +
tools/testing/selftests/vm/ksm_tests.c | 9 +-
tools/testing/selftests/vm/madv_populate.c | 34 +-
tools/testing/selftests/vm/migration.c | 193 +
tools/testing/selftests/vm/mrelease_test.c | 200 +
tools/testing/selftests/vm/pkey-x86.h | 21 +-
tools/testing/selftests/vm/protection_keys.c | 2 +-
tools/testing/selftests/vm/run_vmtests.sh | 525 +-
tools/testing/selftests/vm/settings | 1 +
tools/testing/selftests/vm/soft-dirty.c | 145 +
tools/testing/selftests/vm/split_huge_page_test.c | 79 +-
tools/testing/selftests/vm/userfaultfd.c | 13 +-
tools/testing/selftests/vm/vm_util.c | 108 +
tools/testing/selftests/vm/vm_util.h | 9 +
tools/testing/selftests/wireguard/netns.sh | 34 +-
tools/testing/selftests/wireguard/qemu/.gitignore | 1 +
tools/testing/selftests/wireguard/qemu/Makefile | 229 +-
.../selftests/wireguard/qemu/arch/aarch64.config | 5 +-
.../wireguard/qemu/arch/aarch64_be.config | 5 +-
.../selftests/wireguard/qemu/arch/arm.config | 5 +-
.../selftests/wireguard/qemu/arch/armeb.config | 5 +-
.../selftests/wireguard/qemu/arch/i686.config | 2 +-
.../selftests/wireguard/qemu/arch/m68k.config | 2 +-
.../selftests/wireguard/qemu/arch/mips.config | 2 +-
.../selftests/wireguard/qemu/arch/mips64.config | 2 +-
.../selftests/wireguard/qemu/arch/mips64el.config | 2 +-
.../selftests/wireguard/qemu/arch/mipsel.config | 2 +-
.../selftests/wireguard/qemu/arch/powerpc.config | 2 +-
.../selftests/wireguard/qemu/arch/powerpc64.config | 13 +
.../wireguard/qemu/arch/powerpc64le.config | 2 +-
.../selftests/wireguard/qemu/arch/riscv32.config | 12 +
.../selftests/wireguard/qemu/arch/riscv64.config | 12 +
.../selftests/wireguard/qemu/arch/s390x.config | 6 +
.../selftests/wireguard/qemu/arch/x86_64.config | 2 +-
tools/testing/selftests/wireguard/qemu/init.c | 9 +-
.../testing/selftests/wireguard/qemu/kernel.config | 3 +
tools/testing/selftests/x86/amx.c | 24 +-
.../testing/selftests/x86/corrupt_xstate_header.c | 16 +-
tools/thermal/lib/Build | 3 +
tools/thermal/lib/Makefile | 158 +
tools/thermal/lib/libthermal_tools.pc.template | 12 +
tools/thermal/lib/log.c | 77 +
tools/thermal/lib/log.h | 31 +
tools/thermal/lib/mainloop.c | 120 +
tools/thermal/lib/mainloop.h | 15 +
tools/thermal/lib/thermal-tools.h | 10 +
tools/thermal/lib/uptimeofday.c | 40 +
tools/thermal/lib/uptimeofday.h | 12 +
tools/thermal/thermal-engine/Build | 1 +
tools/thermal/thermal-engine/Makefile | 28 +
tools/thermal/thermal-engine/thermal-engine.c | 341 +
tools/thermal/thermometer/Build | 1 +
tools/thermal/thermometer/Makefile | 26 +
tools/thermal/thermometer/thermometer.8 | 92 +
tools/thermal/thermometer/thermometer.c | 572 +
tools/thermal/thermometer/thermometer.conf | 5 +
tools/tracing/rtla/Makefile | 40 +-
tools/tracing/rtla/README.txt | 13 +-
tools/tracing/rtla/src/osnoise_hist.c | 5 +-
tools/tracing/rtla/src/osnoise_top.c | 9 +-
tools/tracing/rtla/src/timerlat_hist.c | 11 +-
tools/tracing/rtla/src/timerlat_top.c | 11 +-
tools/tracing/rtla/src/utils.c | 108 +-
tools/tracing/rtla/src/utils.h | 3 +-
tools/usb/testusb.c | 2 +-
tools/vm/page-types.c | 8 +-
tools/vm/page_owner_sort.c | 386 +-
usr/dummy-include/stdbool.h | 7 +
usr/dummy-include/stdlib.h | 7 +
usr/gen_init_cpio.c | 92 +-
usr/include/Makefile | 14 +-
virt/kvm/eventfd.c | 3 +-
virt/kvm/kvm_main.c | 10 +-
virt/kvm/vfio.c | 329 +-
12668 files changed, 1024288 insertions(+), 243821 deletions(-)
create mode 100644 Documentation/ABI/testing/securityfs-secrets-coco
create mode 100644 Documentation/ABI/testing/sysfs-class-firmware
create mode 100644 Documentation/ABI/testing/sysfs-devices-physical_location
create mode 100644 Documentation/ABI/testing/sysfs-driver-ccp
create mode 100644 Documentation/ABI/testing/sysfs-driver-chromeos-acpi
create mode 100644 Documentation/ABI/testing/sysfs-platform-intel-ifs
create mode 100644 Documentation/arm64/sme.rst
delete mode 100644 Documentation/cdrom/ide-cd.rst
create mode 100644 Documentation/core-api/printk-index.rst
rename Documentation/{ => core-api}/watch_queue.rst (100%)
create mode 100644 Documentation/dev-tools/kunit/api/resource.rst
create mode 100644 Documentation/devicetree/bindings/arm/arm,corstone1000.yaml
create mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-dcfg.txt
delete mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-scfg.txt
create mode 100644 Documentation/devicetree/bindings/arm/hpe,gxp.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
delete mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.yaml
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-pcie-mirror.yaml
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt8186-clock.yaml
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt8186-sys-clock.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
delete mode 100644 Documentation/devicetree/bindings/arm/sp810.txt
create mode 100644 Documentation/devicetree/bindings/arm/sp810.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/spe-pmu.txt
create mode 100644 Documentation/devicetree/bindings/arm/tegra/nvidia,tegra-ccplex-cluster.yaml
create mode 100644 Documentation/devicetree/bindings/arm/vexpress-config.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/vexpress-sysreg.txt
create mode 100644 Documentation/devicetree/bindings/arm/vexpress-sysreg.yaml
create mode 100644 Documentation/devicetree/bindings/bus/qcom,ssc-block-bus.yaml
create mode 100644 Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml
create mode 100644 Documentation/devicetree/bindings/clock/mediatek,apmixedsys.yaml
create mode 100644 Documentation/devicetree/bindings/clock/mediatek,topckgen.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-apq8084.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-sc8280xp.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/qcom,rpmcc.txt
create mode 100644 Documentation/devicetree/bindings/clock/qcom,rpmcc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscorecc.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/renesas,h8300-div-clock.txt
delete mode 100644 Documentation/devicetree/bindings/clock/renesas,h8s2678-pll-clock.txt
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,px30-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,px30-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3036-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3036-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3188-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3188-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3228-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3228-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3288-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3288-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3308-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3308-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3368-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3368-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rv1108-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rv1108-cru.yaml
create mode 100644 Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml
delete mode 100644 Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt
delete mode 100644 Documentation/devicetree/bindings/display/arm,hdlcd.txt
create mode 100644 Documentation/devicetree/bindings/display/arm,hdlcd.yaml
delete mode 100644 Documentation/devicetree/bindings/display/arm,komeda.txt
create mode 100644 Documentation/devicetree/bindings/display/arm,komeda.yaml
delete mode 100644 Documentation/devicetree/bindings/display/arm,malidp.txt
create mode 100644 Documentation/devicetree/bindings/display/arm,malidp.yaml
delete mode 100644 Documentation/devicetree/bindings/display/arm,pl11x.txt
create mode 100644 Documentation/devicetree/bindings/display/arm,pl11x.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-ldb.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pixel-combiner.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pixel-link.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pxl2dpi.yaml
create mode 100644 Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml
create mode 100644 Documentation/devicetree/bindings/dma/renesas,rzn1-dmamux.yaml
create mode 100644 Documentation/devicetree/bindings/dsp/mediatek,mt8195-dsp.yaml
delete mode 100644 Documentation/devicetree/bindings/eeprom/at24.txt
create mode 100644 Documentation/devicetree/bindings/gnss/brcm,bcm4751.yaml
delete mode 100644 Documentation/devicetree/bindings/gnss/mediatek.txt
create mode 100644 Documentation/devicetree/bindings/gnss/mediatek.yaml
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-consumer-common.yaml
delete mode 100644 Documentation/devicetree/bindings/h8300/cpu.txt
create mode 100644 Documentation/devicetree/bindings/hwmon/microchip,lan966x.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/nuvoton,nct6775.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/ti,tmp401.yaml
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-mt65xx.txt
create mode 100644 Documentation/devicetree/bindings/i2c/i2c-mt65xx.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml
delete mode 100644 Documentation/devicetree/bindings/i2c/qcom,i2c-qup.txt
create mode 100644 Documentation/devicetree/bindings/i2c/qcom,i2c-qup.yaml
delete mode 100644 Documentation/devicetree/bindings/i3c/cdns,i3c-master.txt
create mode 100644 Documentation/devicetree/bindings/i3c/cdns,i3c-master.yaml
delete mode 100644 Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.txt
create mode 100644 Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml
create mode 100644 Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml
delete mode 100644 Documentation/devicetree/bindings/input/ilitek,ili2xxx.txt
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,h8300h-intc.txt
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,h8s-intc.txt
create mode 100644 Documentation/devicetree/bindings/iommu/apple,sart.yaml
create mode 100644 Documentation/devicetree/bindings/iommu/xen,grant-dma.yaml
create mode 100644 Documentation/devicetree/bindings/leds/kinetic,ktd2692.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/leds-ktd2692.txt
create mode 100644 Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml
create mode 100644 Documentation/devicetree/bindings/leds/leds-qcom-lpg.yaml
create mode 100644 Documentation/devicetree/bindings/leds/regulator-led.yaml
delete mode 100644 Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt
create mode 100644 Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.yaml
delete mode 100644 Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.txt
create mode 100644 Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-peripherals.yaml
delete mode 100644 Documentation/devicetree/bindings/memory-controllers/renesas,h8300-bsc.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/rockchip,rk3399-dmc.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/fsl,imx8qxp-csr.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/mediatek,mt6360.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/rk808.txt
create mode 100644 Documentation/devicetree/bindings/mfd/rockchip,rk805.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/rockchip,rk809.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/rockchip,rk817.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/rockchip,rk818.yaml
create mode 100644 Documentation/devicetree/bindings/mmc/marvell,dove-sdhci.yaml
create mode 100644 Documentation/devicetree/bindings/mmc/marvell,orion-sdio.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.txt
create mode 100644 Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/orion-sdio.txt
delete mode 100644 Documentation/devicetree/bindings/mmc/sdhci-dove.txt
delete mode 100644 Documentation/devicetree/bindings/mmc/sdhci-msm.txt
create mode 100644 Documentation/devicetree/bindings/mmc/sdhci-msm.yaml
delete mode 100644 Documentation/devicetree/bindings/mtd/aspeed-smc.txt
delete mode 100644 Documentation/devicetree/bindings/mtd/common.txt
delete mode 100644 Documentation/devicetree/bindings/mtd/elm.txt
create mode 100644 Documentation/devicetree/bindings/mtd/ti,elm.yaml
create mode 100644 Documentation/devicetree/bindings/net/asix,ax88178.yaml
create mode 100644 Documentation/devicetree/bindings/net/can/ctu,ctucanfd.yaml
create mode 100644 Documentation/devicetree/bindings/net/marvell,orion-mdio.yaml
delete mode 100644 Documentation/devicetree/bindings/net/marvell-orion-mdio.txt
create mode 100644 Documentation/devicetree/bindings/net/mediatek,net.yaml
delete mode 100644 Documentation/devicetree/bindings/net/mediatek-net.txt
create mode 100644 Documentation/devicetree/bindings/net/microchip,lan95xx.yaml
create mode 100644 Documentation/devicetree/bindings/net/mscc,miim.yaml
delete mode 100644 Documentation/devicetree/bindings/net/mscc-miim.txt
create mode 100644 Documentation/devicetree/bindings/net/smsc,lan91c111.yaml
delete mode 100644 Documentation/devicetree/bindings/net/smsc-lan91c111.txt
create mode 100644 Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml
rename Documentation/devicetree/bindings/{staging => }/net/wireless/silabs,wfx.yaml (97%)
create mode 100644 Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml
create mode 100644 Documentation/devicetree/bindings/nvmem/apple,efuses.yaml
delete mode 100644 Documentation/devicetree/bindings/pci/qcom,pcie.txt
create mode 100644 Documentation/devicetree/bindings/pci/qcom,pcie.yaml
create mode 100644 Documentation/devicetree/bindings/pci/socionext,uniphier-pcie.yaml
delete mode 100644 Documentation/devicetree/bindings/pci/uniphier-pcie.txt
create mode 100644 Documentation/devicetree/bindings/perf/spe-pmu.yaml
delete mode 100644 Documentation/devicetree/bindings/phy/mixel,mipi-dsi-phy.txt
create mode 100644 Documentation/devicetree/bindings/phy/mixel,mipi-dsi-phy.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,imx7d-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,imx7d-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,imxrt1170.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/marvell,ac5-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/mediatek,pinctrl-mt6795.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{qcom,lpass-lpi-pinctrl.yaml => qcom,sm8250-lpass-lpi-pinctrl.yaml} (97%)
create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,mt7620-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{ralink,rt2880-pinmux.yaml => ralink,mt7621-pinctrl.yaml} (63%)
create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt305x-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt3883-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/powerpc/fsl/cache_sram.txt
create mode 100644 Documentation/devicetree/bindings/pwm/atmel,at91sam-pwm.yaml
delete mode 100644 Documentation/devicetree/bindings/pwm/atmel-pwm.txt
create mode 100644 Documentation/devicetree/bindings/pwm/mediatek,pwm-disp.yaml
delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-mtk-disp.txt
create mode 100644 Documentation/devicetree/bindings/pwm/sunplus,sp7021-pwm.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/richtek,rt5759-regulator.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/siliconmitus,sm5703-regulator.yaml
create mode 100644 Documentation/devicetree/bindings/reserved-memory/phram.yaml
create mode 100644 Documentation/devicetree/bindings/reset/altr,rst-mgr.yaml
delete mode 100644 Documentation/devicetree/bindings/reset/amlogic,meson-axg-audio-arb.txt
create mode 100644 Documentation/devicetree/bindings/reset/amlogic,meson-axg-audio-arb.yaml
delete mode 100644 Documentation/devicetree/bindings/reset/ath79-reset.txt
delete mode 100644 Documentation/devicetree/bindings/reset/berlin,reset.txt
delete mode 100644 Documentation/devicetree/bindings/reset/bitmain,bm1880-reset.txt
create mode 100644 Documentation/devicetree/bindings/reset/bitmain,bm1880-reset.yaml
delete mode 100644 Documentation/devicetree/bindings/reset/hisilicon,hi6220-reset.txt
delete mode 100644 Documentation/devicetree/bindings/reset/lantiq,reset.txt
create mode 100644 Documentation/devicetree/bindings/reset/lantiq,reset.yaml
create mode 100644 Documentation/devicetree/bindings/reset/marvell,berlin2-reset.yaml
delete mode 100644 Documentation/devicetree/bindings/reset/nuvoton,npcm-reset.txt
create mode 100644 Documentation/devicetree/bindings/reset/nuvoton,npcm750-reset.yaml
create mode 100644 Documentation/devicetree/bindings/reset/qca,ar7100-reset.yaml
delete mode 100644 Documentation/devicetree/bindings/reset/snps,axs10x-reset.txt
create mode 100644 Documentation/devicetree/bindings/reset/snps,axs10x-reset.yaml
delete mode 100644 Documentation/devicetree/bindings/reset/socfpga-reset.txt
delete mode 100644 Documentation/devicetree/bindings/reset/st,sti-picophyreset.txt
delete mode 100644 Documentation/devicetree/bindings/reset/st,sti-powerdown.txt
create mode 100644 Documentation/devicetree/bindings/reset/st,stih407-picophyreset.yaml
create mode 100644 Documentation/devicetree/bindings/reset/st,stih407-powerdown.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/renesas,rzn1-rtc.yaml
delete mode 100644 Documentation/devicetree/bindings/rtc/rtc.txt
delete mode 100644 Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt
create mode 100644 Documentation/devicetree/bindings/serial/qcom,msm-uartdm.yaml
create mode 100644 Documentation/devicetree/bindings/serial/qcom,serial-geni-qcom.yaml
create mode 100644 Documentation/devicetree/bindings/serio/arm,pl050.yaml
create mode 100644 Documentation/devicetree/bindings/soc/fsl/fsl,layerscape-dcfg.yaml
create mode 100644 Documentation/devicetree/bindings/soc/fsl/fsl,layerscape-scfg.yaml
create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml
create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-media-blk-ctrl.yaml
create mode 100644 Documentation/devicetree/bindings/soc/intel/intel,hps-copy-engine.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.txt
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.yaml
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,rpmh-rsc.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smsm.txt
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smsm.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/qcom/rpmh-rsc.txt
rename Documentation/devicetree/bindings/{power => soc/renesas}/renesas,rzg2l-sysc.yaml (87%)
create mode 100644 Documentation/devicetree/bindings/soc/ti/wkup-m3-ipc.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/ti/wkup_m3_ipc.txt
create mode 100644 Documentation/devicetree/bindings/sound/adi,max98396.yaml
create mode 100644 Documentation/devicetree/bindings/sound/arm,pl041.yaml
create mode 100644 Documentation/devicetree/bindings/sound/cirrus,cs35l45.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/mt8195-mt6359-rt1011-rt5682.yaml
rename Documentation/devicetree/bindings/sound/{mt8195-mt6359-rt1019-rt5682.yaml => mt8195-mt6359.yaml} (84%)
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra186-asrc.yaml
create mode 100644 Documentation/devicetree/bindings/sound/serial-midi.yaml
rename Documentation/devicetree/bindings/sound/{tas2764.yaml => tas27xx.yaml} (73%)
create mode 100644 Documentation/devicetree/bindings/sound/wlf,wm8731.yaml
create mode 100644 Documentation/devicetree/bindings/sound/wlf,wm8940.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/wm8731.txt
create mode 100644 Documentation/devicetree/bindings/spi/aspeed,ast2600-fmc.yaml
create mode 100644 Documentation/devicetree/bindings/spi/mediatek,spi-mtk-snfi.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.txt
create mode 100644 Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/qcom,spi-qup.txt
create mode 100644 Documentation/devicetree/bindings/spi/qcom,spi-qup.yaml
delete mode 100644 Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.txt
create mode 100644 Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.yaml
create mode 100644 Documentation/devicetree/bindings/thermal/ti,j72xx-thermal.yaml
create mode 100644 Documentation/devicetree/bindings/timer/hpe,gxp-timer.yaml
delete mode 100644 Documentation/devicetree/bindings/timer/rda,8810pl-timer.txt
create mode 100644 Documentation/devicetree/bindings/timer/rda,8810pl-timer.yaml
delete mode 100644 Documentation/devicetree/bindings/timer/renesas,16bit-timer.txt
delete mode 100644 Documentation/devicetree/bindings/timer/renesas,8bit-timer.txt
create mode 100644 Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
delete mode 100644 Documentation/devicetree/bindings/timer/ti,timer.txt
create mode 100644 Documentation/devicetree/bindings/timer/xlnx,xps-timer.yaml
create mode 100644 Documentation/devicetree/bindings/timestamp/hardware-timestamps-common.yaml
create mode 100644 Documentation/devicetree/bindings/timestamp/hte-consumer.yaml
create mode 100644 Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml
create mode 100644 Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml
create mode 100644 Documentation/devicetree/bindings/usb/ti,am62-usb.yaml
delete mode 100644 Documentation/devicetree/bindings/watchdog/faraday,ftwdt010.txt
create mode 100644 Documentation/devicetree/bindings/watchdog/faraday,ftwdt010.yaml
create mode 100644 Documentation/devicetree/bindings/watchdog/sunplus,sp7021-wdt.yaml
create mode 100644 Documentation/driver-api/firmware/fw_upload.rst
create mode 100644 Documentation/driver-api/hte/hte.rst
create mode 100644 Documentation/driver-api/hte/index.rst
create mode 100644 Documentation/driver-api/hte/tegra194-hte.rst
delete mode 100644 Documentation/driver-api/serial/n_gsm.rst
rename Documentation/{ => driver-api}/tty/index.rst (81%)
rename Documentation/driver-api/{serial => tty}/moxa-smartio.rst (100%)
create mode 100644 Documentation/driver-api/tty/n_gsm.rst
rename Documentation/{ => driver-api}/tty/n_tty.rst (100%)
rename Documentation/{ => driver-api}/tty/tty_buffer.rst (100%)
rename Documentation/{ => driver-api}/tty/tty_driver.rst (100%)
rename Documentation/{ => driver-api}/tty/tty_internals.rst (100%)
rename Documentation/{ => driver-api}/tty/tty_ldisc.rst (100%)
rename Documentation/{ => driver-api}/tty/tty_port.rst (100%)
rename Documentation/{ => driver-api}/tty/tty_struct.rst (100%)
create mode 100644 Documentation/filesystems/nfs/client-identifier.rst
create mode 100644 Documentation/firmware-guide/acpi/chromeos-acpi-device.rst
create mode 100644 Documentation/hwmon/lan966x.rst
create mode 100644 Documentation/hwmon/xdpe152c4.rst
delete mode 100644 Documentation/ide/ChangeLog.ide-cd.1994-2004
delete mode 100644 Documentation/ide/ChangeLog.ide-floppy.1996-2002
delete mode 100644 Documentation/ide/ChangeLog.ide-tape.1995-2002
delete mode 100644 Documentation/ide/changelogs.rst
delete mode 100644 Documentation/ide/ide-tape.rst
delete mode 100644 Documentation/ide/ide.rst
delete mode 100644 Documentation/ide/index.rst
delete mode 100644 Documentation/ide/warm-plug-howto.rst
rename Documentation/{ => images}/COPYING-logo (64%)
rename Documentation/{ => images}/logo.gif (100%)
create mode 100644 Documentation/images/logo.svg
create mode 100644 Documentation/leds/leds-qcom-lpg.rst
create mode 100644 Documentation/loongarch/features.rst
create mode 100644 Documentation/loongarch/index.rst
create mode 100644 Documentation/loongarch/introduction.rst
create mode 100644 Documentation/loongarch/irq-chip-model.rst
create mode 100644 Documentation/misc-devices/oxsemi-tornado.rst
delete mode 100644 Documentation/networking/device_drivers/appletalk/ltpc.rst
create mode 100644 Documentation/networking/device_drivers/can/ctu/ctucanfd-driver.rst
create mode 100644 Documentation/networking/device_drivers/can/ctu/fsm_txt_buffer_user.svg
delete mode 100644 Documentation/networking/device_drivers/ethernet/dec/de4x5.rst
create mode 100644 Documentation/networking/device_drivers/ethernet/marvell/octeon_ep.rst
delete mode 100644 Documentation/networking/device_drivers/wan/index.rst
delete mode 100644 Documentation/networking/device_drivers/wan/z8530book.rst
create mode 100644 Documentation/networking/device_drivers/wwan/t7xx.rst
create mode 100644 Documentation/networking/devlink/devlink-linecard.rst
create mode 100644 Documentation/networking/skbuff.rst
create mode 100644 Documentation/powerpc/kasan.txt
create mode 100644 Documentation/security/secrets/coco.rst
create mode 100644 Documentation/security/secrets/index.rst
create mode 100644 Documentation/translations/zh_CN/dev-tools/gdb-kernel-debugging.rst
create mode 100644 Documentation/translations/zh_CN/locking/index.rst
create mode 100644 Documentation/translations/zh_CN/locking/spinlocks.rst
create mode 100644 Documentation/translations/zh_CN/loongarch/features.rst
create mode 100644 Documentation/translations/zh_CN/loongarch/index.rst
create mode 100644 Documentation/translations/zh_CN/loongarch/introduction.rst
create mode 100644 Documentation/translations/zh_CN/loongarch/irq-chip-model.rst
create mode 100644 Documentation/translations/zh_CN/scheduler/sched-debug.rst
create mode 100644 Documentation/translations/zh_CN/scheduler/schedutil.rst
create mode 100644 Documentation/translations/zh_CN/vm/frontswap.rst
create mode 100644 Documentation/translations/zh_CN/vm/hmm.rst
create mode 100644 Documentation/translations/zh_CN/vm/hugetlbfs_reserv.rst
create mode 100644 Documentation/translations/zh_CN/vm/hwpoison.rst
create mode 100644 Documentation/translations/zh_CN/vm/memory-model.rst
create mode 100644 Documentation/translations/zh_CN/vm/mmu_notifier.rst
create mode 100644 Documentation/translations/zh_CN/vm/numa.rst
create mode 100644 Documentation/translations/zh_CN/vm/overcommit-accounting.rst
create mode 100644 Documentation/translations/zh_CN/vm/page_frags.rst
create mode 100644 Documentation/translations/zh_CN/vm/page_owner.rst
create mode 100644 Documentation/translations/zh_CN/vm/page_table_check.rst
create mode 100644 Documentation/translations/zh_CN/vm/remap_file_pages.rst
create mode 100644 Documentation/translations/zh_CN/vm/split_page_table_lock.rst
create mode 100644 Documentation/translations/zh_CN/vm/z3fold.rst
create mode 100644 Documentation/translations/zh_CN/vm/zsmalloc.rst
create mode 100644 Documentation/virt/coco/sev-guest.rst
create mode 100644 Documentation/virt/kvm/arm/hypercalls.rst
delete mode 100644 Documentation/virt/kvm/arm/psci.rst
create mode 100644 Documentation/vm/bootmem.rst
create mode 100644 Documentation/vm/oom.rst
create mode 100644 Documentation/vm/page_allocation.rst
create mode 100644 Documentation/vm/page_cache.rst
create mode 100644 Documentation/vm/page_reclaim.rst
create mode 100644 Documentation/vm/page_tables.rst
create mode 100644 Documentation/vm/physical_memory.rst
create mode 100644 Documentation/vm/process_addrs.rst
create mode 100644 Documentation/vm/shmfs.rst
create mode 100644 Documentation/vm/slab.rst
create mode 100644 Documentation/vm/swap.rst
create mode 100644 Documentation/vm/vmalloc.rst
create mode 100644 Documentation/vm/vmemmap_dedup.rst
create mode 100644 Documentation/x86/ifs.rst
delete mode 100644 Documentation/x86/intel-iommu.rst
create mode 100644 Documentation/x86/iommu.rst
create mode 100644 Documentation/x86/tdx.rst
create mode 100644 arch/arc/include/uapi/asm/bpf_perf_event.h
rename arch/arm/{mach-ep93xx/include/mach/uncompress.h => boot/compressed/misc-ep93xx.h} (51%)
create mode 100644 arch/arm/boot/dts/aspeed-bmc-nuvia-dc-scm.dts
create mode 100644 arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
create mode 100644 arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp.dts
create mode 100644 arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp2.dts
create mode 100644 arch/arm/boot/dts/bcm47622.dtsi
create mode 100644 arch/arm/boot/dts/bcm947622.dts
create mode 100644 arch/arm/boot/dts/hpe-bmc-dl360gen10.dts
create mode 100644 arch/arm/boot/dts/hpe-gxp.dtsi
create mode 100644 arch/arm/boot/dts/imx6dl-colibri-aster.dts
create mode 100644 arch/arm/boot/dts/imx6dl-colibri-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx6dl-colibri-iris.dts
delete mode 100644 arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts
create mode 100644 arch/arm/boot/dts/imx6q-bosch-acc.dts
delete mode 100644 arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi
create mode 100644 arch/arm/boot/dts/imx6qdl-vicut1-12inch.dtsi
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul-common.dtsi
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul1-mba6ulx.dts
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul1.dtsi
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul2-mba6ulx.dts
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul2.dtsi
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul2l-mba6ulx.dts
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul2l.dtsi
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ulx-common.dtsi
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ulxl-common.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-aster.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-aster.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-emmc-aster.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-emmc-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-emmc-iris.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-iris-v2.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-iris.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-iris.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-wifi-aster.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-wifi-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-wifi-iris.dts
create mode 100644 arch/arm/boot/dts/imx6ull-phytec-tauri-emmc.dts
create mode 100644 arch/arm/boot/dts/imx6ull-phytec-tauri-nand.dts
create mode 100644 arch/arm/boot/dts/imx6ull-phytec-tauri.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-tqma6ull2-mba6ulx.dts
create mode 100644 arch/arm/boot/dts/imx6ull-tqma6ull2.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-tqma6ull2l-mba6ulx.dts
create mode 100644 arch/arm/boot/dts/imx6ull-tqma6ull2l.dtsi
create mode 100644 arch/arm/boot/dts/imx7d-smegw01.dts
create mode 100644 arch/arm/boot/dts/imxrt1050-evk.dts
create mode 100644 arch/arm/boot/dts/imxrt1050.dtsi
create mode 100644 arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-6g-2gs.dts
create mode 100644 arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-8g.dts
create mode 100644 arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt.dtsi
create mode 100644 arch/arm/boot/dts/ls1021a-iot.dts
create mode 100644 arch/arm/boot/dts/mba6ulx.dtsi
create mode 100644 arch/arm/boot/dts/qcom-apq8026-asus-sparrow.dts
rename arch/arm/boot/dts/{qcom-apq8064-sony-xperia-yuga.dts => qcom-apq8064-sony-xperia-lagan-yuga.dts} (100%)
delete mode 100644 arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts
delete mode 100644 arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
delete mode 100644 arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dts
delete mode 100644 arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts
delete mode 100644 arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine-amami.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine-honami.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine.dtsi
create mode 100644 arch/arm/boot/dts/qcom-msm8974pro-fairphone-fp2.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8974pro-sony-xperia-shinano-castor.dts
create mode 100644 arch/arm/boot/dts/qcom-pmx65.dtsi
create mode 100644 arch/arm/boot/dts/ste-ux500-samsung-codina-tmo.dts
create mode 100644 arch/arm/boot/dts/stm32mp151a-prtt1a.dts
create mode 100644 arch/arm/boot/dts/stm32mp151a-prtt1c.dts
create mode 100644 arch/arm/boot/dts/stm32mp151a-prtt1l.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp151a-prtt1s.dts
create mode 100644 arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts
create mode 100644 arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts
create mode 100644 arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts
create mode 100644 arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts
mode change 100644 => 100755 arch/arm/boot/install.sh
rename arch/arm/include/asm/xen/{page-coherent.h => xen-ops.h} (52%)
create mode 100644 arch/arm/mach-at91/sam_secure.c
create mode 100644 arch/arm/mach-at91/sam_secure.h
rename arch/arm/mach-davinci/{include/mach => }/common.h (100%)
rename arch/arm/mach-davinci/{include/mach => }/cputype.h (98%)
rename arch/arm/mach-davinci/{include/mach => }/da8xx.h (99%)
rename arch/arm/mach-davinci/{include/mach => }/hardware.h (100%)
delete mode 100644 arch/arm/mach-davinci/include/mach/mux.h
delete mode 100644 arch/arm/mach-davinci/include/mach/uncompress.h
rename arch/arm/mach-davinci/{include/mach => }/pm.h (100%)
rename arch/arm/mach-davinci/{include/mach => }/serial.h (97%)
delete mode 100644 arch/arm/mach-dove/include/mach/uncompress.h
rename arch/arm/mach-ep93xx/{include/mach => }/ep93xx-regs.h (94%)
delete mode 100644 arch/arm/mach-ep93xx/include/mach/irqs.h
create mode 100644 arch/arm/mach-ep93xx/irqs.h
create mode 100644 arch/arm/mach-hpe/Kconfig
create mode 100644 arch/arm/mach-hpe/Makefile
create mode 100644 arch/arm/mach-hpe/gxp.c
delete mode 100644 arch/arm/mach-integrator/Kconfig
delete mode 100644 arch/arm/mach-integrator/Makefile
delete mode 100644 arch/arm/mach-iop32x/include/mach/irqs.h
delete mode 100644 arch/arm/mach-iop32x/include/mach/uncompress.h
delete mode 100644 arch/arm/mach-ixp4xx/Makefile.boot
delete mode 100644 arch/arm/mach-ixp4xx/include/mach/uncompress.h
delete mode 100644 arch/arm/mach-mmp/tavorevb.c
rename arch/arm/mach-omap1/{include/mach => }/hardware.h (59%)
delete mode 100644 arch/arm/mach-omap1/include/mach/io.h
delete mode 100644 arch/arm/mach-omap1/include/mach/lcdc.h
delete mode 100644 arch/arm/mach-omap1/include/mach/memory.h
delete mode 100644 arch/arm/mach-omap1/include/mach/uncompress.h
rename arch/arm/mach-omap1/{include/mach => }/irqs.h (99%)
rename arch/arm/mach-omap1/{include/mach => }/mtd-xip.h (97%)
create mode 100644 arch/arm/mach-omap1/mux.h
rename arch/arm/{plat-omap/dma.c => mach-omap1/omap-dma.c} (83%)
rename arch/arm/mach-omap1/{include/mach => }/omap1510.h (100%)
rename arch/arm/mach-omap1/{include/mach => }/omap16xx.h (100%)
rename arch/arm/mach-omap1/{include/mach => }/omap7xx.h (100%)
rename arch/arm/mach-omap1/{include/mach => }/serial.h (100%)
rename arch/arm/mach-omap1/{include/mach => }/tc.h (98%)
create mode 100644 arch/arm/mach-omap1/usb.h
delete mode 100644 arch/arm/mach-omap2/include/mach/hardware.h
delete mode 100644 arch/arm/mach-omap2/include/mach/irqs.h
delete mode 100644 arch/arm/mach-omap2/include/mach/serial.h
rename arch/arm/mach-pxa/{include/mach => }/addr-map.h (100%)
rename drivers/pcmcia/pxa2xx_balloon3.c => arch/arm/mach-pxa/balloon3-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/balloon3.h (100%)
rename drivers/pcmcia/pxa2xx_colibri.c => arch/arm/mach-pxa/colibri-pcmcia.c (99%)
rename arch/arm/mach-pxa/{include/mach => }/corgi.h (100%)
rename drivers/pcmcia/pxa2xx_e740.c => arch/arm/mach-pxa/e740-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/eseries-gpio.h (100%)
rename drivers/pcmcia/pxa2xx_hx4700.c => arch/arm/mach-pxa/hx4700-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/hx4700.h (100%)
delete mode 100644 arch/arm/mach-pxa/include/mach/bitfield.h
delete mode 100644 arch/arm/mach-pxa/include/mach/dma.h
delete mode 100644 arch/arm/mach-pxa/include/mach/generic.h
delete mode 100644 arch/arm/mach-pxa/include/mach/mtd-xip.h
delete mode 100644 arch/arm/mach-pxa/include/mach/uncompress.h
rename arch/arm/mach-pxa/{include/mach => }/irqs.h (100%)
rename arch/arm/mach-pxa/{include/mach => }/lubbock.h (95%)
rename arch/arm/mach-pxa/{include/mach => }/magician.h (99%)
rename arch/arm/mach-pxa/{include/mach => }/mainstone.h (98%)
rename arch/arm/mach-pxa/{include/mach => }/mfp.h (91%)
rename drivers/pcmcia/pxa2xx_palmld.c => arch/arm/mach-pxa/palmld-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/palmld.h (100%)
rename drivers/pcmcia/pxa2xx_palmtc.c => arch/arm/mach-pxa/palmtc-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/palmtc.h (100%)
rename drivers/pcmcia/pxa2xx_palmtx.c => arch/arm/mach-pxa/palmtx-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/palmtx.h (100%)
rename arch/arm/mach-pxa/{include/mach => }/poodle.h (98%)
create mode 100644 arch/arm/mach-pxa/pxa-regs.h
rename arch/arm/mach-pxa/{include/mach => }/pxa2xx-regs.h (76%)
rename arch/arm/mach-pxa/{include/mach => }/pxa3xx-regs.h (61%)
rename arch/arm/mach-pxa/{include/mach => }/regs-ost.h (94%)
rename arch/arm/mach-pxa/{include/mach => }/regs-uart.h (99%)
rename arch/arm/mach-pxa/{include/mach => }/reset.h (92%)
rename arch/arm/mach-pxa/{include/mach => }/smemc.h (100%)
rename arch/arm/mach-pxa/{include/mach => }/spitz.h (100%)
rename arch/arm/mach-pxa/{include/mach => }/tosa.h (88%)
rename drivers/pcmcia/pxa2xx_trizeps4.c => arch/arm/mach-pxa/trizeps4-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/trizeps4.h (99%)
rename drivers/pcmcia/pxa2xx_viper.c => arch/arm/mach-pxa/viper-pcmcia.c (97%)
rename include/linux/platform_data/pcmcia-pxa2xx_viper.h => arch/arm/mach-pxa/viper-pcmcia.h (100%)
rename drivers/pcmcia/pxa2xx_vpac270.c => arch/arm/mach-pxa/vpac270-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/vpac270.h (100%)
rename arch/arm/mach-pxa/{include/mach => }/z2.h (100%)
delete mode 100644 arch/arm/mach-realview/Kconfig
delete mode 100644 arch/arm/mach-realview/Makefile
delete mode 100644 arch/arm/mach-s3c/include/mach/io-s3c24xx.h
delete mode 100644 arch/arm/mach-s3c/include/mach/io.h
rename arch/arm/mach-s3c/{include/mach => }/irqs-s3c24xx.h (95%)
rename arch/arm/mach-s3c/{include/mach => }/irqs-s3c64xx.h (100%)
rename arch/arm/mach-s3c/{include/mach => }/irqs.h (100%)
rename arch/arm/mach-s3c/{include/mach => }/map-base.h (87%)
delete mode 100644 arch/arm/mach-spear/include/mach/irqs.h
delete mode 100644 arch/arm/mach-spear/include/mach/uncompress.h
rename arch/arm/mach-spear/{include/mach => }/misc_regs.h (87%)
rename arch/arm/mach-spear/{include/mach => }/spear.h (100%)
rename arch/arm/{mach-vexpress => mach-versatile}/Makefile.boot (100%)
rename arch/arm/{mach-vexpress => mach-versatile}/dcscb.c (97%)
rename arch/arm/{mach-vexpress => mach-versatile}/dcscb_setup.S (95%)
rename arch/arm/{plat-versatile => mach-versatile}/headsmp.S (94%)
rename arch/arm/{plat-versatile => mach-versatile}/hotplug.c (98%)
rename arch/arm/{mach-integrator/cm.h => mach-versatile/integrator-cm.h} (100%)
rename arch/arm/{mach-integrator/hardware.h => mach-versatile/integrator-hardware.h} (100%)
rename arch/arm/{mach-integrator/core.c => mach-versatile/integrator.c} (95%)
rename arch/arm/{mach-integrator/common.h => mach-versatile/integrator.h} (100%)
rename arch/arm/{mach-integrator => mach-versatile}/integrator_ap.c (95%)
rename arch/arm/{mach-integrator => mach-versatile}/integrator_cp.c (96%)
rename arch/arm/{mach-realview/platsmp-dt.c => mach-versatile/platsmp-realview.c} (98%)
rename arch/arm/{mach-vexpress/platsmp.c => mach-versatile/platsmp-vexpress.c} (96%)
rename arch/arm/{plat-versatile => mach-versatile}/platsmp.c (97%)
rename arch/arm/{plat-versatile/include/plat => mach-versatile}/platsmp.h (87%)
rename arch/arm/{mach-realview/realview-dt.c => mach-versatile/realview.c} (100%)
rename arch/arm/{mach-vexpress => mach-versatile}/spc.c (100%)
rename arch/arm/{mach-vexpress => mach-versatile}/spc.h (100%)
rename arch/arm/{mach-vexpress => mach-versatile}/tc2_pm.c (99%)
rename arch/arm/{mach-vexpress => mach-versatile}/v2m-mps2.c (100%)
rename arch/arm/{mach-vexpress => mach-versatile}/v2m.c (97%)
rename arch/arm/mach-versatile/{versatile_dt.c => versatile.c} (100%)
rename arch/arm/{mach-vexpress/core.h => mach-versatile/vexpress.h} (100%)
delete mode 100644 arch/arm/mach-vexpress/Kconfig
delete mode 100644 arch/arm/mach-vexpress/Makefile
delete mode 100644 arch/arm/plat-omap/Kconfig
delete mode 100644 arch/arm/plat-omap/Makefile
delete mode 100644 arch/arm/plat-omap/counter_32k.c
delete mode 100644 arch/arm/plat-omap/debug-leds.c
delete mode 100644 arch/arm/plat-omap/include/plat/counter-32k.h
delete mode 100644 arch/arm/plat-omap/include/plat/cpu.h
delete mode 100644 arch/arm/plat-omap/include/plat/sram.h
delete mode 100644 arch/arm/plat-omap/sram.c
delete mode 100644 arch/arm/plat-versatile/Makefile
create mode 100644 arch/arm64/boot/dts/arm/corstone1000-fvp.dts
create mode 100644 arch/arm64/boot/dts/arm/corstone1000-mps3.dts
create mode 100644 arch/arm64/boot/dts/arm/corstone1000.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8-ss-vpu.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-data-modul-edm-sbc.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-mx8menlo.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mn-ddr3l-evk.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-dahlia.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dahlia.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dev.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dahlia.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dev.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi
create mode 100644 arch/arm64/boot/dts/intel/socfpga_agilex_n6000.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt6359.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195-demo.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195-evb.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/pm8450.dtsi
rename arch/arm64/boot/dts/qcom/{sc7280-crd.dts => sc7280-crd-r3.dts} (88%)
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts
delete mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-herobrine-r0.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r0.dts
create mode 100644 arch/arm64/boot/dts/renesas/r8a779f0-spider-ethernet.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g0-white-hawk-cpu.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g0-white-hawk.dts
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g0.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r9a07g043.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts
create mode 100644 arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dts
create mode 100644 arch/arm64/boot/dts/renesas/r9a09g011.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/rzg2ul-smarc-pinfunction.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/rzg2ul-smarc.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-roc-pc.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-soquartz-cm4.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-soquartz.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts
delete mode 100644 arch/arm64/boot/dts/synaptics/as370.dtsi
mode change 100644 => 100755 arch/arm64/boot/install.sh
create mode 100644 arch/arm64/crypto/sm4-ce-cipher-core.S
create mode 100644 arch/arm64/crypto/sm4-ce-cipher-glue.c
create mode 100644 arch/arm64/crypto/sm4-neon-core.S
create mode 100644 arch/arm64/crypto/sm4-neon-glue.c
rename arch/arm64/include/asm/xen/{page-coherent.h => xen-ops.h} (52%)
create mode 100755 arch/arm64/tools/gen-sysreg.awk
create mode 100644 arch/arm64/tools/sysreg
delete mode 100644 arch/csky/abiv1/memcpy.S
delete mode 100644 arch/csky/abiv1/strksyms.c
create mode 100644 arch/csky/include/asm/atomic.h
delete mode 100644 arch/csky/include/asm/spinlock.h
delete mode 100644 arch/csky/include/asm/spinlock_types.h
create mode 100644 arch/csky/kernel/io.c
create mode 100644 arch/csky/lib/string.c
delete mode 100644 arch/h8300/Kbuild
delete mode 100644 arch/h8300/Kconfig
delete mode 100644 arch/h8300/Kconfig.cpu
delete mode 100644 arch/h8300/Makefile
delete mode 100644 arch/h8300/boot/Makefile
delete mode 100644 arch/h8300/boot/compressed/Makefile
delete mode 100644 arch/h8300/boot/compressed/head.S
delete mode 100644 arch/h8300/boot/compressed/misc.c
delete mode 100644 arch/h8300/boot/compressed/vmlinux.lds
delete mode 100644 arch/h8300/boot/compressed/vmlinux.scr
delete mode 100644 arch/h8300/boot/dts/Makefile
delete mode 100644 arch/h8300/boot/dts/edosk2674.dts
delete mode 100644 arch/h8300/boot/dts/h8300h_sim.dts
delete mode 100644 arch/h8300/boot/dts/h8s_sim.dts
delete mode 100644 arch/h8300/configs/edosk2674_defconfig
delete mode 100644 arch/h8300/configs/h8300h-sim_defconfig
delete mode 100644 arch/h8300/configs/h8s-sim_defconfig
delete mode 100644 arch/h8300/include/asm/Kbuild
delete mode 100644 arch/h8300/include/asm/bitops.h
delete mode 100644 arch/h8300/include/asm/bug.h
delete mode 100644 arch/h8300/include/asm/byteorder.h
delete mode 100644 arch/h8300/include/asm/cache.h
delete mode 100644 arch/h8300/include/asm/elf.h
delete mode 100644 arch/h8300/include/asm/flat.h
delete mode 100644 arch/h8300/include/asm/hash.h
delete mode 100644 arch/h8300/include/asm/io.h
delete mode 100644 arch/h8300/include/asm/irq.h
delete mode 100644 arch/h8300/include/asm/irqflags.h
delete mode 100644 arch/h8300/include/asm/kgdb.h
delete mode 100644 arch/h8300/include/asm/mmu_context.h
delete mode 100644 arch/h8300/include/asm/page.h
delete mode 100644 arch/h8300/include/asm/page_offset.h
delete mode 100644 arch/h8300/include/asm/pgtable.h
delete mode 100644 arch/h8300/include/asm/processor.h
delete mode 100644 arch/h8300/include/asm/ptrace.h
delete mode 100644 arch/h8300/include/asm/signal.h
delete mode 100644 arch/h8300/include/asm/smp.h
delete mode 100644 arch/h8300/include/asm/string.h
delete mode 100644 arch/h8300/include/asm/switch_to.h
delete mode 100644 arch/h8300/include/asm/syscall.h
delete mode 100644 arch/h8300/include/asm/thread_info.h
delete mode 100644 arch/h8300/include/asm/tlb.h
delete mode 100644 arch/h8300/include/asm/traps.h
delete mode 100644 arch/h8300/include/asm/user.h
delete mode 100644 arch/h8300/include/asm/vmalloc.h
delete mode 100644 arch/h8300/include/uapi/asm/byteorder.h
delete mode 100644 arch/h8300/include/uapi/asm/posix_types.h
delete mode 100644 arch/h8300/include/uapi/asm/ptrace.h
delete mode 100644 arch/h8300/include/uapi/asm/sigcontext.h
delete mode 100644 arch/h8300/include/uapi/asm/signal.h
delete mode 100644 arch/h8300/include/uapi/asm/unistd.h
delete mode 100644 arch/h8300/kernel/Makefile
delete mode 100644 arch/h8300/kernel/asm-offsets.c
delete mode 100644 arch/h8300/kernel/entry.S
delete mode 100644 arch/h8300/kernel/h8300_ksyms.c
delete mode 100644 arch/h8300/kernel/head_ram.S
delete mode 100644 arch/h8300/kernel/head_rom.S
delete mode 100644 arch/h8300/kernel/irq.c
delete mode 100644 arch/h8300/kernel/kgdb.c
delete mode 100644 arch/h8300/kernel/module.c
delete mode 100644 arch/h8300/kernel/process.c
delete mode 100644 arch/h8300/kernel/ptrace.c
delete mode 100644 arch/h8300/kernel/ptrace_h.c
delete mode 100644 arch/h8300/kernel/ptrace_s.c
delete mode 100644 arch/h8300/kernel/setup.c
delete mode 100644 arch/h8300/kernel/signal.c
delete mode 100644 arch/h8300/kernel/sim-console.c
delete mode 100644 arch/h8300/kernel/syscalls.c
delete mode 100644 arch/h8300/kernel/traps.c
delete mode 100644 arch/h8300/kernel/vmlinux.lds.S
delete mode 100644 arch/h8300/lib/Makefile
delete mode 100644 arch/h8300/lib/abs.S
delete mode 100644 arch/h8300/lib/ashldi3.c
delete mode 100644 arch/h8300/lib/ashrdi3.c
delete mode 100644 arch/h8300/lib/delay.c
delete mode 100644 arch/h8300/lib/libgcc.h
delete mode 100644 arch/h8300/lib/lshrdi3.c
delete mode 100644 arch/h8300/lib/memcpy.S
delete mode 100644 arch/h8300/lib/memset.S
delete mode 100644 arch/h8300/lib/moddivsi3.S
delete mode 100644 arch/h8300/lib/modsi3.S
delete mode 100644 arch/h8300/lib/muldi3.c
delete mode 100644 arch/h8300/lib/mulsi3.S
delete mode 100644 arch/h8300/lib/ucmpdi2.c
delete mode 100644 arch/h8300/lib/udivsi3.S
delete mode 100644 arch/h8300/mm/Makefile
delete mode 100644 arch/h8300/mm/fault.c
delete mode 100644 arch/h8300/mm/init.c
delete mode 100644 arch/h8300/mm/memory.c
delete mode 100644 arch/ia64/include/asm/iommu_table.h
mode change 100644 => 100755 arch/ia64/install.sh
create mode 100644 arch/loongarch/Kbuild
create mode 100644 arch/loongarch/Kconfig
rename arch/{x86/include/asm/fpu/internal.h => loongarch/Kconfig.debug} (100%)
create mode 100644 arch/loongarch/Makefile
rename arch/{h8300/Kconfig.debug => loongarch/boot/.gitignore} (58%)
create mode 100644 arch/loongarch/boot/Makefile
create mode 100644 arch/loongarch/boot/dts/Makefile
create mode 100644 arch/loongarch/configs/loongson3_defconfig
create mode 100644 arch/loongarch/include/asm/Kbuild
create mode 100644 arch/loongarch/include/asm/acenv.h
create mode 100644 arch/loongarch/include/asm/acpi.h
create mode 100644 arch/loongarch/include/asm/addrspace.h
create mode 100644 arch/loongarch/include/asm/asm-offsets.h
create mode 100644 arch/loongarch/include/asm/asm-prototypes.h
create mode 100644 arch/loongarch/include/asm/asm.h
create mode 100644 arch/loongarch/include/asm/asmmacro.h
create mode 100644 arch/loongarch/include/asm/atomic.h
create mode 100644 arch/loongarch/include/asm/barrier.h
create mode 100644 arch/loongarch/include/asm/bitops.h
create mode 100644 arch/loongarch/include/asm/bitrev.h
create mode 100644 arch/loongarch/include/asm/bootinfo.h
create mode 100644 arch/loongarch/include/asm/branch.h
create mode 100644 arch/loongarch/include/asm/bug.h
create mode 100644 arch/loongarch/include/asm/cache.h
create mode 100644 arch/loongarch/include/asm/cacheflush.h
create mode 100644 arch/loongarch/include/asm/cacheops.h
create mode 100644 arch/loongarch/include/asm/clocksource.h
create mode 100644 arch/loongarch/include/asm/cmpxchg.h
create mode 100644 arch/loongarch/include/asm/compiler.h
create mode 100644 arch/loongarch/include/asm/cpu-features.h
create mode 100644 arch/loongarch/include/asm/cpu-info.h
create mode 100644 arch/loongarch/include/asm/cpu.h
create mode 100644 arch/loongarch/include/asm/cpufeature.h
create mode 100644 arch/loongarch/include/asm/delay.h
create mode 100644 arch/loongarch/include/asm/dma-direct.h
create mode 100644 arch/loongarch/include/asm/dmi.h
create mode 100644 arch/loongarch/include/asm/efi.h
create mode 100644 arch/loongarch/include/asm/elf.h
create mode 100644 arch/loongarch/include/asm/entry-common.h
create mode 100644 arch/loongarch/include/asm/exec.h
create mode 100644 arch/loongarch/include/asm/fb.h
create mode 100644 arch/loongarch/include/asm/fixmap.h
create mode 100644 arch/loongarch/include/asm/fpregdef.h
create mode 100644 arch/loongarch/include/asm/fpu.h
create mode 100644 arch/loongarch/include/asm/futex.h
create mode 100644 arch/loongarch/include/asm/hardirq.h
create mode 100644 arch/loongarch/include/asm/hugetlb.h
create mode 100644 arch/loongarch/include/asm/hw_irq.h
create mode 100644 arch/loongarch/include/asm/idle.h
create mode 100644 arch/loongarch/include/asm/inst.h
create mode 100644 arch/loongarch/include/asm/io.h
create mode 100644 arch/loongarch/include/asm/irq.h
create mode 100644 arch/loongarch/include/asm/irq_regs.h
create mode 100644 arch/loongarch/include/asm/irqflags.h
create mode 100644 arch/loongarch/include/asm/kdebug.h
create mode 100644 arch/loongarch/include/asm/linkage.h
create mode 100644 arch/loongarch/include/asm/local.h
create mode 100644 arch/loongarch/include/asm/loongarch.h
create mode 100644 arch/loongarch/include/asm/loongson.h
create mode 100644 arch/loongarch/include/asm/mmu.h
create mode 100644 arch/loongarch/include/asm/mmu_context.h
create mode 100644 arch/loongarch/include/asm/mmzone.h
create mode 100644 arch/loongarch/include/asm/module.h
create mode 100644 arch/loongarch/include/asm/module.lds.h
create mode 100644 arch/loongarch/include/asm/numa.h
create mode 100644 arch/loongarch/include/asm/page.h
create mode 100644 arch/loongarch/include/asm/percpu.h
create mode 100644 arch/loongarch/include/asm/perf_event.h
create mode 100644 arch/loongarch/include/asm/pgalloc.h
create mode 100644 arch/loongarch/include/asm/pgtable-bits.h
create mode 100644 arch/loongarch/include/asm/pgtable.h
create mode 100644 arch/loongarch/include/asm/prefetch.h
create mode 100644 arch/loongarch/include/asm/processor.h
create mode 100644 arch/loongarch/include/asm/ptrace.h
create mode 100644 arch/loongarch/include/asm/reboot.h
create mode 100644 arch/loongarch/include/asm/regdef.h
create mode 100644 arch/loongarch/include/asm/seccomp.h
create mode 100644 arch/loongarch/include/asm/serial.h
create mode 100644 arch/loongarch/include/asm/setup.h
create mode 100644 arch/loongarch/include/asm/shmparam.h
create mode 100644 arch/loongarch/include/asm/smp.h
create mode 100644 arch/loongarch/include/asm/sparsemem.h
create mode 100644 arch/loongarch/include/asm/stackframe.h
create mode 100644 arch/loongarch/include/asm/stacktrace.h
create mode 100644 arch/loongarch/include/asm/string.h
create mode 100644 arch/loongarch/include/asm/switch_to.h
create mode 100644 arch/loongarch/include/asm/syscall.h
create mode 100644 arch/loongarch/include/asm/thread_info.h
create mode 100644 arch/loongarch/include/asm/time.h
create mode 100644 arch/loongarch/include/asm/timex.h
create mode 100644 arch/loongarch/include/asm/tlb.h
create mode 100644 arch/loongarch/include/asm/tlbflush.h
create mode 100644 arch/loongarch/include/asm/topology.h
create mode 100644 arch/loongarch/include/asm/types.h
create mode 100644 arch/loongarch/include/asm/uaccess.h
create mode 100644 arch/loongarch/include/asm/unistd.h
create mode 100644 arch/loongarch/include/asm/vdso.h
create mode 100644 arch/loongarch/include/asm/vdso/clocksource.h
create mode 100644 arch/loongarch/include/asm/vdso/gettimeofday.h
create mode 100644 arch/loongarch/include/asm/vdso/processor.h
create mode 100644 arch/loongarch/include/asm/vdso/vdso.h
create mode 100644 arch/loongarch/include/asm/vdso/vsyscall.h
create mode 100644 arch/loongarch/include/asm/vermagic.h
create mode 100644 arch/loongarch/include/asm/vmalloc.h
rename arch/{h8300 => loongarch}/include/uapi/asm/Kbuild (59%)
create mode 100644 arch/loongarch/include/uapi/asm/auxvec.h
create mode 100644 arch/loongarch/include/uapi/asm/bitsperlong.h
create mode 100644 arch/loongarch/include/uapi/asm/break.h
create mode 100644 arch/loongarch/include/uapi/asm/byteorder.h
create mode 100644 arch/loongarch/include/uapi/asm/hwcap.h
create mode 100644 arch/loongarch/include/uapi/asm/ptrace.h
create mode 100644 arch/loongarch/include/uapi/asm/reg.h
create mode 100644 arch/loongarch/include/uapi/asm/sigcontext.h
create mode 100644 arch/loongarch/include/uapi/asm/signal.h
create mode 100644 arch/loongarch/include/uapi/asm/ucontext.h
create mode 100644 arch/loongarch/include/uapi/asm/unistd.h
rename arch/{h8300 => loongarch}/kernel/.gitignore (100%)
create mode 100644 arch/loongarch/kernel/Makefile
create mode 100644 arch/loongarch/kernel/access-helper.h
create mode 100644 arch/loongarch/kernel/acpi.c
create mode 100644 arch/loongarch/kernel/asm-offsets.c
create mode 100644 arch/loongarch/kernel/cacheinfo.c
create mode 100644 arch/loongarch/kernel/cpu-probe.c
create mode 100644 arch/loongarch/kernel/dma.c
create mode 100644 arch/loongarch/kernel/efi.c
create mode 100644 arch/loongarch/kernel/elf.c
create mode 100644 arch/loongarch/kernel/entry.S
create mode 100644 arch/loongarch/kernel/env.c
create mode 100644 arch/loongarch/kernel/fpu.S
create mode 100644 arch/loongarch/kernel/genex.S
create mode 100644 arch/loongarch/kernel/head.S
create mode 100644 arch/loongarch/kernel/idle.c
create mode 100644 arch/loongarch/kernel/inst.c
create mode 100644 arch/loongarch/kernel/io.c
create mode 100644 arch/loongarch/kernel/irq.c
create mode 100644 arch/loongarch/kernel/mem.c
create mode 100644 arch/loongarch/kernel/module-sections.c
create mode 100644 arch/loongarch/kernel/module.c
create mode 100644 arch/loongarch/kernel/numa.c
create mode 100644 arch/loongarch/kernel/proc.c
create mode 100644 arch/loongarch/kernel/process.c
create mode 100644 arch/loongarch/kernel/ptrace.c
create mode 100644 arch/loongarch/kernel/reset.c
create mode 100644 arch/loongarch/kernel/setup.c
create mode 100644 arch/loongarch/kernel/signal.c
create mode 100644 arch/loongarch/kernel/smp.c
create mode 100644 arch/loongarch/kernel/switch.S
create mode 100644 arch/loongarch/kernel/syscall.c
create mode 100644 arch/loongarch/kernel/time.c
create mode 100644 arch/loongarch/kernel/topology.c
create mode 100644 arch/loongarch/kernel/traps.c
create mode 100644 arch/loongarch/kernel/vdso.c
create mode 100644 arch/loongarch/kernel/vmlinux.lds.S
create mode 100644 arch/loongarch/lib/Makefile
create mode 100644 arch/loongarch/lib/clear_user.S
create mode 100644 arch/loongarch/lib/copy_user.S
create mode 100644 arch/loongarch/lib/delay.c
create mode 100644 arch/loongarch/lib/dump_tlb.c
create mode 100644 arch/loongarch/mm/Makefile
create mode 100644 arch/loongarch/mm/cache.c
create mode 100644 arch/loongarch/mm/extable.c
create mode 100644 arch/loongarch/mm/fault.c
create mode 100644 arch/loongarch/mm/hugetlbpage.c
create mode 100644 arch/loongarch/mm/init.c
create mode 100644 arch/loongarch/mm/ioremap.c
create mode 100644 arch/loongarch/mm/maccess.c
create mode 100644 arch/loongarch/mm/mmap.c
create mode 100644 arch/loongarch/mm/page.S
create mode 100644 arch/loongarch/mm/pgtable.c
create mode 100644 arch/loongarch/mm/tlb.c
create mode 100644 arch/loongarch/mm/tlbex.S
create mode 100644 arch/loongarch/pci/Makefile
rename arch/{s390/boot/compressed => loongarch/vdso}/.gitignore (54%)
create mode 100644 arch/loongarch/vdso/Makefile
create mode 100644 arch/loongarch/vdso/elf.S
create mode 100755 arch/loongarch/vdso/gen_vdso_offsets.sh
create mode 100644 arch/loongarch/vdso/sigreturn.S
create mode 100644 arch/loongarch/vdso/vdso.S
create mode 100644 arch/loongarch/vdso/vdso.lds.S
create mode 100644 arch/loongarch/vdso/vgettimeofday.c
delete mode 100644 arch/m68k/coldfire/dma.c
create mode 100644 arch/m68k/configs/virt_defconfig
delete mode 100644 arch/m68k/include/asm/export.h
create mode 100644 arch/m68k/include/asm/virt.h
create mode 100644 arch/m68k/include/uapi/asm/bootinfo-virt.h
mode change 100644 => 100755 arch/m68k/install.sh
create mode 100644 arch/m68k/virt/Makefile
create mode 100644 arch/m68k/virt/config.c
create mode 100644 arch/m68k/virt/ints.c
create mode 100644 arch/m68k/virt/platform.c
mode change 100644 => 100755 arch/nios2/boot/install.sh
delete mode 100644 arch/openrisc/include/asm/spinlock.h
delete mode 100644 arch/openrisc/include/asm/spinlock_types.h
mode change 100644 => 100755 arch/parisc/install.sh
delete mode 100644 arch/parisc/nm
mode change 100644 => 100755 arch/powerpc/boot/install.sh
delete mode 100644 arch/powerpc/include/asm/fsl_85xx_cache_sram.h
delete mode 100644 arch/powerpc/include/asm/slice.h
create mode 100644 arch/powerpc/kernel/rtas_entry.S
delete mode 100644 arch/powerpc/kvm/book3s_64_vio_hv.c
delete mode 100644 arch/powerpc/kvm/book3s_hv_rm_xive.c
delete mode 100644 arch/powerpc/kvm/book3s_xive_template.c
rename arch/powerpc/mm/{ => book3s64}/slice.c (91%)
rename arch/powerpc/mm/kasan/{kasan_init_32.c => init_32.c} (100%)
create mode 100644 arch/powerpc/mm/kasan/init_book3s_64.c
delete mode 100644 arch/powerpc/mm/mmap.c
create mode 100644 arch/powerpc/platforms/8xx/cpm1-ic.c
delete mode 100644 arch/powerpc/sysdev/fsl_85xx_cache_ctlr.h
delete mode 100644 arch/powerpc/sysdev/fsl_85xx_cache_sram.c
delete mode 100644 arch/powerpc/sysdev/fsl_85xx_l2ctlr.c
rename arch/riscv/boot/dts/microchip/{microchip-mpfs-fabric.dtsi => mpfs-icicle-kit-fabric.dtsi} (91%)
rename arch/riscv/boot/dts/microchip/{microchip-mpfs-icicle-kit.dts => mpfs-icicle-kit.dts} (95%)
create mode 100644 arch/riscv/boot/dts/microchip/mpfs-polarberry-fabric.dtsi
create mode 100644 arch/riscv/boot/dts/microchip/mpfs-polarberry.dts
rename arch/riscv/boot/dts/microchip/{microchip-mpfs.dtsi => mpfs.dtsi} (98%)
mode change 100644 => 100755 arch/riscv/boot/install.sh
delete mode 100644 arch/riscv/errata/alternative.c
create mode 100644 arch/riscv/errata/thead/Makefile
create mode 100644 arch/riscv/errata/thead/errata.c
create mode 100644 arch/riscv/include/asm/compat.h
create mode 100644 arch/riscv/include/asm/signal32.h
delete mode 100644 arch/riscv/include/asm/spinlock.h
delete mode 100644 arch/riscv/include/asm/spinlock_types.h
create mode 100644 arch/riscv/include/asm/xip_fixup.h
create mode 100644 arch/riscv/kernel/alternative.c
create mode 100644 arch/riscv/kernel/compat_signal.c
create mode 100644 arch/riscv/kernel/compat_syscall_table.c
create mode 100644 arch/riscv/kernel/compat_vdso/.gitignore
create mode 100644 arch/riscv/kernel/compat_vdso/Makefile
create mode 100644 arch/riscv/kernel/compat_vdso/compat_vdso.S
create mode 100644 arch/riscv/kernel/compat_vdso/compat_vdso.lds.S
create mode 100644 arch/riscv/kernel/compat_vdso/flush_icache.S
create mode 100755 arch/riscv/kernel/compat_vdso/gen_compat_vdso_offsets.sh
create mode 100644 arch/riscv/kernel/compat_vdso/getcpu.S
create mode 100644 arch/riscv/kernel/compat_vdso/note.S
create mode 100644 arch/riscv/kernel/compat_vdso/rt_sigreturn.S
create mode 100644 arch/riscv/kernel/elf_kexec.c
create mode 100644 arch/riscv/kernel/machine_kexec_file.c
delete mode 100644 arch/riscv/kvm/tlb.S
create mode 100644 arch/riscv/kvm/tlb.c
create mode 100644 arch/riscv/purgatory/.gitignore
create mode 100644 arch/riscv/purgatory/Makefile
create mode 100644 arch/riscv/purgatory/entry.S
create mode 100644 arch/riscv/purgatory/purgatory.c
rename arch/s390/boot/{compressed => }/clz_ctz.c (100%)
delete mode 100644 arch/s390/boot/compressed/Makefile
rename arch/s390/boot/{compressed => }/decompressor.c (100%)
rename arch/s390/boot/{compressed => }/decompressor.h (100%)
mode change 100644 => 100755 arch/s390/boot/install.sh
create mode 100644 arch/s390/boot/ipl_data.c
rename arch/s390/boot/{compressed => }/vmlinux.lds.S (94%)
delete mode 100644 arch/s390/include/asm/livepatch.h
create mode 100644 arch/s390/include/asm/pai.h
create mode 100644 arch/s390/include/uapi/asm/uvdevice.h
rename arch/s390/kernel/{base.S => earlypgm.S} (52%)
create mode 100644 arch/s390/kernel/perf_pai_crypto.c
mode change 100644 => 100755 arch/sparc/boot/install.sh
create mode 100644 arch/x86/boot/compressed/efi.c
create mode 100644 arch/x86/boot/compressed/efi.h
create mode 100644 arch/x86/boot/compressed/tdcall.S
create mode 100644 arch/x86/boot/compressed/tdx.c
create mode 100644 arch/x86/boot/compressed/tdx.h
mode change 100644 => 100755 arch/x86/boot/install.sh
create mode 100644 arch/x86/boot/io.h
create mode 100644 arch/x86/boot/msr.h
rename {drivers/staging/vme => arch/x86/coco/tdx}/Makefile (58%)
create mode 100644 arch/x86/coco/tdx/tdcall.S
create mode 100644 arch/x86/coco/tdx/tdx.c
create mode 100644 arch/x86/events/amd/brs.c
delete mode 100644 arch/x86/ia32/ia32_aout.c
create mode 100644 arch/x86/include/asm/cpuid.h
delete mode 100644 arch/x86/include/asm/iommu_table.h
create mode 100644 arch/x86/include/asm/kvm-x86-pmu-ops.h
delete mode 100644 arch/x86/include/asm/livepatch.h
delete mode 100644 arch/x86/include/asm/mmx.h
create mode 100644 arch/x86/include/asm/shared/io.h
create mode 100644 arch/x86/include/asm/shared/msr.h
create mode 100644 arch/x86/include/asm/shared/tdx.h
delete mode 100644 arch/x86/include/asm/swiotlb.h
create mode 100644 arch/x86/include/asm/tdx.h
delete mode 100644 arch/x86/include/asm/xen/page-coherent.h
delete mode 100644 arch/x86/kernel/pci-iommu_table.c
delete mode 100644 arch/x86/kernel/pci-swiotlb.c
delete mode 100644 arch/x86/lib/mmx_32.c
create mode 100644 arch/x86/mm/pgprot.c
delete mode 100644 arch/x86/mm/setup_nx.c
create mode 100644 arch/x86/virt/vmx/tdx/tdxcall.S
delete mode 100644 arch/x86/xen/pci-swiotlb-xen.c
create mode 100644 arch/xtensa/kernel/hibernate.c
create mode 100644 arch/xtensa/lib/kcsan-stubs.c
create mode 100644 block/blk-cgroup-fc-appid.c
rename {lib/crypto => crypto}/sm3.c (100%)
rename {lib/crypto => crypto}/sm4.c (94%)
delete mode 100644 drivers/atm/ambassador.c
delete mode 100644 drivers/atm/ambassador.h
delete mode 100644 drivers/atm/firestream.c
delete mode 100644 drivers/atm/firestream.h
delete mode 100644 drivers/atm/horizon.c
delete mode 100644 drivers/atm/horizon.h
delete mode 100644 drivers/atm/uPD98401.h
delete mode 100644 drivers/atm/uPD98402.c
delete mode 100644 drivers/atm/uPD98402.h
delete mode 100644 drivers/atm/zatm.c
delete mode 100644 drivers/atm/zatm.h
create mode 100644 drivers/base/firmware_loader/sysfs.c
create mode 100644 drivers/base/firmware_loader/sysfs.h
create mode 100644 drivers/base/firmware_loader/sysfs_upload.c
create mode 100644 drivers/base/firmware_loader/sysfs_upload.h
create mode 100644 drivers/base/physical_location.c
create mode 100644 drivers/base/physical_location.h
delete mode 100644 drivers/block/loop.h
create mode 100644 drivers/bus/mhi/ep/Kconfig
create mode 100644 drivers/bus/mhi/ep/Makefile
create mode 100644 drivers/bus/mhi/ep/internal.h
create mode 100644 drivers/bus/mhi/ep/main.c
create mode 100644 drivers/bus/mhi/ep/mmio.c
create mode 100644 drivers/bus/mhi/ep/ring.c
create mode 100644 drivers/bus/mhi/ep/sm.c
create mode 100644 drivers/bus/qcom-ssc-block-bus.c
create mode 100644 drivers/char/hw_random/mpfs-rng.c
create mode 100644 drivers/clk/clk-en7523.c
delete mode 100644 drivers/clk/h8300/Makefile
delete mode 100644 drivers/clk/h8300/clk-div.c
delete mode 100644 drivers/clk/h8300/clk-h8s2678.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-apmixedsys.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-cam.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-img.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-imp_iic_wrap.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-infra_ao.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-ipe.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-mcu.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-mdp.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-mfg.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-mm.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-topckgen.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-vdec.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-venc.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-wpe.c
create mode 100644 drivers/clk/pxa/clk-pxa2xx.h
create mode 100644 drivers/clk/qcom/gcc-sc8280xp.c
create mode 100644 drivers/clk/qcom/lpassaudiocc-sc7280.c
create mode 100644 drivers/clk/qcom/lpasscorecc-sc7280.c
create mode 100644 drivers/clk/renesas/r8a779g0-cpg-mssr.c
create mode 100644 drivers/clk/renesas/r9a07g043-cpg.c
create mode 100644 drivers/clk/renesas/r9a09g011-cpg.c
create mode 100644 drivers/clk/samsung/clk-exynosautov9.c
create mode 100644 drivers/clk/stm32/Makefile
create mode 100644 drivers/clk/stm32/clk-stm32-core.c
create mode 100644 drivers/clk/stm32/clk-stm32-core.h
create mode 100644 drivers/clk/stm32/clk-stm32mp13.c
create mode 100644 drivers/clk/stm32/reset-stm32.c
create mode 100644 drivers/clk/stm32/reset-stm32.h
create mode 100644 drivers/clk/stm32/stm32mp13_rcc.h
delete mode 100644 drivers/clocksource/h8300_timer16.c
delete mode 100644 drivers/clocksource/h8300_timer8.c
delete mode 100644 drivers/clocksource/h8300_tpu.c
create mode 100644 drivers/clocksource/timer-goldfish.c
create mode 100644 drivers/clocksource/timer-gxp.c
create mode 100644 drivers/crypto/caam/blob_gen.c
create mode 100644 drivers/crypto/caam/caamprng.c
create mode 100644 drivers/crypto/qat/qat_common/qat_algs_send.c
create mode 100644 drivers/crypto/qat/qat_common/qat_algs_send.h
create mode 100644 drivers/cxl/core/suspend.c
create mode 100644 drivers/dma/dw/rzn1-dmamux.c
create mode 100644 drivers/dma/tegra186-gpc-dma.c
create mode 100644 drivers/firmware/arm_scmi/protocols.h
create mode 100644 drivers/firmware/mtk-adsp-ipc.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_imu.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_lsdma.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_lsdma.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_mes_ctx.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/athub_v3_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/athub_v3_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/clearstate_gfx11.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/gmc_v11_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/hdp_v5_2.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/hdp_v5_2.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/hdp_v6_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/hdp_v6_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/ih_v6_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/imu_v11_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/imu_v11_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/mes_v11_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/nbio_v4_3.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/nbio_v7_7.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/nbio_v7_7.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/sdma_v6_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/sdma_v6_0_0_pkt_open.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/smuio_v13_0_6.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/smuio_v13_0_6.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/soc21.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/soc21.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/vcn_sw_ring.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/vcn_sw_ring.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/vcn_v4_0.h
create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_v11.c
create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c
create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/athub/athub_3_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/athub/athub_3_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/gc/gc_11_0_0_default.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/gc/gc_11_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/gc/gc_11_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_5_2_1_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_5_2_1_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_6_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_6_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/lsdma/lsdma_6_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/lsdma/lsdma_6_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_3_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_3_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_3_0_2_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_3_0_2_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_13_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_13_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/nbio/nbio_4_3_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/nbio/nbio_4_3_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/nbio/nbio_7_7_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/nbio/nbio_7_7_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/oss/osssys_6_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/oss/osssys_6_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/smuio/smuio_13_0_6_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/smuio/smuio_13_0_6_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/vcn/vcn_4_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/vcn/vcn_4_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/ivsrcid/gfx/irqsrcs_gfx_11_0_0.h
create mode 100644 drivers/gpu/drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_4_0.h
rename drivers/gpu/drm/amd/{amdgpu => include}/mes_api_def.h (68%)
create mode 100644 drivers/gpu/drm/amd/include/mes_v11_api_def.h
create mode 100644 drivers/gpu/drm/amd/include/soc21_enum.h
create mode 100644 drivers/gpu/drm/amd/include/v11_structs.h
create mode 100644 drivers/gpu/drm/amd/pm/inc/smu_v13_0_0_pptable.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_0.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_4.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_0_ppsmc.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_4_pmfw.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_4_ppsmc.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_7_ppsmc.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0_7_pptable.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.h
create mode 100644 drivers/gpu/drm/bridge/imx/Kconfig
create mode 100644 drivers/gpu/drm/bridge/imx/Makefile
create mode 100644 drivers/gpu/drm/bridge/imx/imx-ldb-helper.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx-ldb-helper.h
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c
create mode 100644 drivers/gpu/drm/i915/display/intel_display_power_map.c
create mode 100644 drivers/gpu/drm/i915/display/intel_display_power_map.h
delete mode 100644 drivers/gpu/drm/i915/gvt/gvt.c
delete mode 100644 drivers/gpu/drm/i915/gvt/hypercall.h
delete mode 100644 drivers/gpu/drm/i915/gvt/mpt.h
create mode 100644 drivers/gpu/drm/i915/intel_gvt_mmio_table.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.h
delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h
delete mode 100644 drivers/gpu/drm/msm/disp/mdp5/mdp5_mdss.c
delete mode 100644 drivers/gpu/drm/msm/edp/edp.h
delete mode 100644 drivers/gpu/drm/msm/edp/edp_ctrl.c
create mode 100644 drivers/gpu/drm/msm/msm_mdss.c
delete mode 100644 drivers/gpu/drm/radeon/cik_blit_shaders.c
create mode 100644 drivers/gpu/host1x/context_bus.c
create mode 100644 drivers/hid/hid-megaworld.c
create mode 100644 drivers/hte/Kconfig
create mode 100644 drivers/hte/Makefile
create mode 100644 drivers/hte/hte-tegra194-test.c
create mode 100644 drivers/hte/hte-tegra194.c
create mode 100644 drivers/hte/hte.c
create mode 100644 drivers/hwmon/lan966x-hwmon.c
rename drivers/hwmon/{nct6775.c => nct6775-core.c} (66%)
create mode 100644 drivers/hwmon/nct6775-i2c.c
create mode 100644 drivers/hwmon/nct6775-platform.c
create mode 100644 drivers/hwmon/nct6775.h
create mode 100644 drivers/hwmon/pmbus/xdpe152c4.c
create mode 100644 drivers/infiniband/hw/mlx5/umr.c
create mode 100644 drivers/infiniband/hw/mlx5/umr.h
create mode 100644 drivers/input/joystick/sensehat-joystick.c
create mode 100644 drivers/input/misc/iqs7222.c
create mode 100644 drivers/interconnect/qcom/sc8280xp.c
create mode 100644 drivers/interconnect/qcom/sc8280xp.h
create mode 100644 drivers/interconnect/qcom/sdx65.c
create mode 100644 drivers/interconnect/qcom/sdx65.h
delete mode 100644 drivers/iommu/mtk_iommu.h
delete mode 100644 drivers/irqchip/irq-renesas-h8300h.c
delete mode 100644 drivers/irqchip/irq-renesas-h8s.c
create mode 100644 drivers/leds/rgb/Kconfig
create mode 100644 drivers/leds/rgb/Makefile
create mode 100644 drivers/leds/rgb/leds-pwm-multicolor.c
create mode 100644 drivers/leds/rgb/leds-qcom-lpg.c
create mode 100644 drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_common.c
create mode 100644 drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_common.h
create mode 100644 drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_multi_if.c
create mode 100644 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_req_if.c
create mode 100644 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c
create mode 100644 drivers/memory/tegra/tegra234.c
create mode 100644 drivers/misc/habanalabs/common/memory_mgr.c
delete mode 100644 drivers/mtd/maps/ixp4xx.c
rename drivers/mtd/nand/{raw/mtk_ecc.c => ecc-mtk.c} (98%)
create mode 100644 drivers/mtd/nand/spi/xtx.c
delete mode 100644 drivers/mtd/spi-nor/controllers/aspeed-smc.c
create mode 100644 drivers/mtd/spi-nor/debugfs.c
delete mode 100644 drivers/net/appletalk/ltpc.c
delete mode 100644 drivers/net/appletalk/ltpc.h
create mode 100644 drivers/net/can/ctucanfd/Kconfig
create mode 100644 drivers/net/can/ctucanfd/Makefile
create mode 100644 drivers/net/can/ctucanfd/ctucanfd.h
create mode 100644 drivers/net/can/ctucanfd/ctucanfd_base.c
create mode 100644 drivers/net/can/ctucanfd/ctucanfd_kframe.h
create mode 100644 drivers/net/can/ctucanfd/ctucanfd_kregs.h
create mode 100644 drivers/net/can/ctucanfd/ctucanfd_pci.c
create mode 100644 drivers/net/can/ctucanfd/ctucanfd_platform.c
delete mode 100644 drivers/net/can/led.c
delete mode 100644 drivers/net/ethernet/amd/ni65.c
delete mode 100644 drivers/net/ethernet/amd/ni65.h
delete mode 100644 drivers/net/ethernet/dec/tulip/de4x5.c
delete mode 100644 drivers/net/ethernet/dec/tulip/de4x5.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/Kconfig
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/Makefile
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_cn9k_pf.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_config.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_mbox.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_mbox.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_ethtool.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_main.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_main.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_regs_cn9k_pf.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_rx.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_rx.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_tx.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_tx.h
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed.c
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed.h
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed_debugfs.c
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed_ops.c
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed_regs.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/accel.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec_offload.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec_offload.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/tls.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/tls.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.c
rename drivers/net/ethernet/mellanox/mlx5/core/en_accel/{tls_stats.c => ktls_stats.c} (63%)
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/debugfs.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.h
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/core_linecards.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
delete mode 100644 drivers/net/ethernet/qlogic/qed/qed_nvmetcp_ip_services.c
create mode 100644 drivers/net/ethernet/sfc/ef100_sriov.c
create mode 100644 drivers/net/ethernet/sfc/ef100_sriov.h
create mode 100644 drivers/net/ethernet/sfc/siena/Kconfig
create mode 100644 drivers/net/ethernet/sfc/siena/Makefile
create mode 100644 drivers/net/ethernet/sfc/siena/bitfield.h
create mode 100644 drivers/net/ethernet/sfc/siena/efx.c
create mode 100644 drivers/net/ethernet/sfc/siena/efx.h
create mode 100644 drivers/net/ethernet/sfc/siena/efx_channels.c
create mode 100644 drivers/net/ethernet/sfc/siena/efx_channels.h
create mode 100644 drivers/net/ethernet/sfc/siena/efx_common.c
create mode 100644 drivers/net/ethernet/sfc/siena/efx_common.h
create mode 100644 drivers/net/ethernet/sfc/siena/enum.h
create mode 100644 drivers/net/ethernet/sfc/siena/ethtool.c
create mode 100644 drivers/net/ethernet/sfc/siena/ethtool_common.c
create mode 100644 drivers/net/ethernet/sfc/siena/ethtool_common.h
rename drivers/net/ethernet/sfc/{ => siena}/farch.c (97%)
create mode 100644 drivers/net/ethernet/sfc/siena/farch_regs.h
create mode 100644 drivers/net/ethernet/sfc/siena/filter.h
create mode 100644 drivers/net/ethernet/sfc/siena/io.h
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi.c
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi.h
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_mon.c
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_pcol.h
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_port.c
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_port.h
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_port_common.c
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_port_common.h
create mode 100644 drivers/net/ethernet/sfc/siena/mtd.c
create mode 100644 drivers/net/ethernet/sfc/siena/net_driver.h
create mode 100644 drivers/net/ethernet/sfc/siena/nic.c
create mode 100644 drivers/net/ethernet/sfc/siena/nic.h
create mode 100644 drivers/net/ethernet/sfc/siena/nic_common.h
create mode 100644 drivers/net/ethernet/sfc/siena/ptp.c
create mode 100644 drivers/net/ethernet/sfc/siena/ptp.h
create mode 100644 drivers/net/ethernet/sfc/siena/rx.c
create mode 100644 drivers/net/ethernet/sfc/siena/rx_common.c
create mode 100644 drivers/net/ethernet/sfc/siena/rx_common.h
create mode 100644 drivers/net/ethernet/sfc/siena/selftest.c
create mode 100644 drivers/net/ethernet/sfc/siena/selftest.h
rename drivers/net/ethernet/sfc/{ => siena}/siena.c (89%)
rename drivers/net/ethernet/sfc/{ => siena}/siena_sriov.c (98%)
rename drivers/net/ethernet/sfc/{ => siena}/siena_sriov.h (94%)
create mode 100644 drivers/net/ethernet/sfc/siena/sriov.h
create mode 100644 drivers/net/ethernet/sfc/siena/tx.c
create mode 100644 drivers/net/ethernet/sfc/siena/tx.h
create mode 100644 drivers/net/ethernet/sfc/siena/tx_common.c
create mode 100644 drivers/net/ethernet/sfc/siena/tx_common.h
create mode 100644 drivers/net/ethernet/sfc/siena/vfdi.h
create mode 100644 drivers/net/ethernet/sfc/siena/workarounds.h
create mode 100644 drivers/net/ethernet/sunplus/Kconfig
create mode 100644 drivers/net/ethernet/sunplus/Makefile
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_define.h
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_desc.c
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_desc.h
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_driver.c
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_int.c
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_int.h
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_mac.c
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_mac.h
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_mdio.c
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_mdio.h
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_phy.c
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_phy.h
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_register.h
delete mode 100644 drivers/net/hamradio/dmascc.c
create mode 100644 drivers/net/phy/adin1100.c
create mode 100644 drivers/net/phy/dp83td510.c
delete mode 100644 drivers/net/wan/cosa.c
delete mode 100644 drivers/net/wan/cosa.h
delete mode 100644 drivers/net/wan/hostess_sv11.c
delete mode 100644 drivers/net/wan/lmc/Makefile
delete mode 100644 drivers/net/wan/lmc/lmc.h
delete mode 100644 drivers/net/wan/lmc/lmc_debug.c
delete mode 100644 drivers/net/wan/lmc/lmc_debug.h
delete mode 100644 drivers/net/wan/lmc/lmc_ioctl.h
delete mode 100644 drivers/net/wan/lmc/lmc_main.c
delete mode 100644 drivers/net/wan/lmc/lmc_media.c
delete mode 100644 drivers/net/wan/lmc/lmc_proto.c
delete mode 100644 drivers/net/wan/lmc/lmc_proto.h
delete mode 100644 drivers/net/wan/lmc/lmc_var.h
delete mode 100644 drivers/net/wan/sealevel.c
delete mode 100644 drivers/net/wan/z85230.c
delete mode 100644 drivers/net/wan/z85230.h
create mode 100644 drivers/net/wireless/ath/ath11k/pcic.c
create mode 100644 drivers/net/wireless/ath/ath11k/pcic.h
create mode 100644 drivers/net/wireless/purelifi/Kconfig
create mode 100644 drivers/net/wireless/purelifi/Makefile
create mode 100644 drivers/net/wireless/purelifi/plfxlc/Kconfig
create mode 100644 drivers/net/wireless/purelifi/plfxlc/Makefile
create mode 100644 drivers/net/wireless/purelifi/plfxlc/chip.c
create mode 100644 drivers/net/wireless/purelifi/plfxlc/chip.h
create mode 100644 drivers/net/wireless/purelifi/plfxlc/firmware.c
create mode 100644 drivers/net/wireless/purelifi/plfxlc/intf.h
create mode 100644 drivers/net/wireless/purelifi/plfxlc/mac.c
create mode 100644 drivers/net/wireless/purelifi/plfxlc/mac.h
create mode 100644 drivers/net/wireless/purelifi/plfxlc/usb.c
create mode 100644 drivers/net/wireless/purelifi/plfxlc/usb.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852c_rfk_table.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852c_rfk_table.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852c_table.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852c_table.h
create mode 100644 drivers/net/wireless/silabs/Kconfig
create mode 100644 drivers/net/wireless/silabs/Makefile
rename drivers/{staging => net/wireless/silabs}/wfx/Kconfig (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/Makefile (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/bh.c (98%)
rename drivers/{staging => net/wireless/silabs}/wfx/bh.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/bus.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/bus_sdio.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/bus_spi.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/data_rx.c (93%)
rename drivers/{staging => net/wireless/silabs}/wfx/data_rx.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/data_tx.c (99%)
rename drivers/{staging => net/wireless/silabs}/wfx/data_tx.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/debug.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/debug.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/fwio.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/fwio.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_api_cmd.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_api_general.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_api_mib.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_rx.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_rx.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_tx.c (97%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_tx.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_tx_mib.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_tx_mib.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hwio.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hwio.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/key.c (99%)
rename drivers/{staging => net/wireless/silabs}/wfx/key.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/main.c (98%)
rename drivers/{staging => net/wireless/silabs}/wfx/main.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/queue.c (98%)
rename drivers/{staging => net/wireless/silabs}/wfx/queue.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/scan.c (92%)
rename drivers/{staging => net/wireless/silabs}/wfx/scan.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/sta.c (89%)
rename drivers/{staging => net/wireless/silabs}/wfx/sta.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/traces.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/wfx.h (95%)
create mode 100644 drivers/net/wwan/t7xx/Makefile
create mode 100644 drivers/net/wwan/t7xx/t7xx_cldma.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_cldma.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_dpmaif.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_dpmaif.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_cldma.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_cldma.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_mhccif.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_mhccif.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_modem_ops.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_modem_ops.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_netdev.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_netdev.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_pci.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_pci.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_pcie_mac.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_pcie_mac.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_port.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_port_ctrl_msg.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_port_proxy.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_port_proxy.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_port_wwan.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_reg.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_state_monitor.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_state_monitor.h
create mode 100644 drivers/nvme/host/apple.c
create mode 100644 drivers/nvmem/apple-efuses.c
create mode 100644 drivers/of/unittest-data/overlay_16.dts
create mode 100644 drivers/of/unittest-data/overlay_17.dts
create mode 100644 drivers/of/unittest-data/overlay_18.dts
create mode 100644 drivers/of/unittest-data/overlay_19.dts
create mode 100644 drivers/of/unittest-data/overlay_20.dts
create mode 100644 drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c
create mode 100644 drivers/pinctrl/freescale/pinctrl-imxrt1170.c
create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt6795.c
create mode 100644 drivers/pinctrl/mediatek/pinctrl-mtk-mt6795.h
create mode 100644 drivers/pinctrl/mvebu/pinctrl-ac5.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-lpass-lpi.h
create mode 100644 drivers/pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c
create mode 100644 drivers/pinctrl/ralink/pinctrl-ralink.c
rename drivers/pinctrl/ralink/{pinmux.h => pinctrl-ralink.h} (75%)
delete mode 100644 drivers/pinctrl/ralink/pinctrl-rt288x.c
create mode 100644 drivers/platform/chrome/chromeos_acpi.c
create mode 100644 drivers/platform/mellanox/nvsw-sn2201.c
create mode 100644 drivers/platform/x86/intel/ifs/Kconfig
create mode 100644 drivers/platform/x86/intel/ifs/Makefile
create mode 100644 drivers/platform/x86/intel/ifs/core.c
create mode 100644 drivers/platform/x86/intel/ifs/ifs.h
create mode 100644 drivers/platform/x86/intel/ifs/load.c
create mode 100644 drivers/platform/x86/intel/ifs/runtest.c
create mode 100644 drivers/platform/x86/intel/ifs/sysfs.c
create mode 100644 drivers/platform/x86/winmate-fm07-keys.c
create mode 100644 drivers/pwm/pwm-sunplus.c
create mode 100644 drivers/pwm/pwm-xilinx.c
create mode 100644 drivers/regulator/rt5759-regulator.c
create mode 100644 drivers/regulator/sm5703-regulator.c
create mode 100644 drivers/rtc/rtc-rzn1.c
create mode 100644 drivers/s390/char/uvdevice.c
create mode 100644 drivers/scsi/lpfc/lpfc_vmid.c
create mode 100644 drivers/scsi/mpi3mr/mpi3mr_app.c
delete mode 100644 drivers/scsi/ufs/Kconfig
create mode 100644 drivers/soc/apple/rtkit-crashlog.c
create mode 100644 drivers/soc/apple/rtkit-internal.h
create mode 100644 drivers/soc/apple/rtkit.c
create mode 100644 drivers/soc/apple/sart.c
create mode 100644 drivers/soc/imx/imx8mp-blk-ctrl.c
create mode 100644 drivers/soc/mediatek/mt8195-mmsys.h
rename {arch/arm/plat-pxa => drivers/soc/pxa}/Kconfig (83%)
rename {arch/arm/plat-pxa => drivers/soc/pxa}/Makefile (51%)
rename {arch/arm/plat-pxa => drivers/soc/pxa}/mfp.c (99%)
rename {arch/arm/plat-pxa => drivers/soc/pxa}/ssp.c (100%)
create mode 100644 drivers/soc/renesas/r8a779g0-sysc.c
create mode 100644 drivers/spi/spi-aspeed-smc.c
create mode 100644 drivers/spi/spi-mtk-snfi.c
delete mode 100644 drivers/staging/r8188eu/include/rtw_debug.h
delete mode 100644 drivers/staging/r8188eu/include/usb_vendor_req.h
delete mode 100644 drivers/staging/rtl8723bs/include/rtw_ioctl.h
delete mode 100644 drivers/staging/unisys/Documentation/ABI/sysfs-platform-visorchipset
delete mode 100644 drivers/staging/unisys/Documentation/overview.txt
delete mode 100644 drivers/staging/unisys/Kconfig
delete mode 100644 drivers/staging/unisys/MAINTAINERS
delete mode 100644 drivers/staging/unisys/Makefile
delete mode 100644 drivers/staging/unisys/TODO
delete mode 100644 drivers/staging/unisys/include/iochannel.h
delete mode 100644 drivers/staging/unisys/visorhba/Kconfig
delete mode 100644 drivers/staging/unisys/visorhba/Makefile
delete mode 100644 drivers/staging/unisys/visorhba/visorhba_main.c
delete mode 100644 drivers/staging/unisys/visorinput/Kconfig
delete mode 100644 drivers/staging/unisys/visorinput/Makefile
delete mode 100644 drivers/staging/unisys/visorinput/visorinput.c
delete mode 100644 drivers/staging/unisys/visornic/Kconfig
delete mode 100644 drivers/staging/unisys/visornic/Makefile
delete mode 100644 drivers/staging/unisys/visornic/visornic_main.c
delete mode 100644 drivers/staging/vc04_services/bcm2835-audio/TODO
rename drivers/staging/{vme/devices => vme_user}/Kconfig (93%)
rename drivers/staging/{vme/devices => vme_user}/Makefile (100%)
rename drivers/staging/{vme/devices => vme_user}/vme_user.c (99%)
rename drivers/staging/{vme/devices => vme_user}/vme_user.h (100%)
delete mode 100644 drivers/staging/vt6655/tmacro.h
delete mode 100644 drivers/staging/wfx/TODO
create mode 100644 drivers/thermal/k3_j72xx_bandgap.c
delete mode 100644 drivers/tty/serial/amba-pl011.h
delete mode 100644 drivers/tty/serial/icom.h
delete mode 100644 drivers/tty/serial/pic32_uart.h
create mode 100644 drivers/ufs/Kconfig
create mode 100644 drivers/ufs/Makefile
create mode 100644 drivers/ufs/core/Kconfig
create mode 100644 drivers/ufs/core/Makefile
rename drivers/{scsi/ufs => ufs/core}/ufs-debugfs.c (99%)
rename drivers/{scsi/ufs => ufs/core}/ufs-debugfs.h (100%)
rename drivers/{scsi/ufs => ufs/core}/ufs-fault-injection.c (100%)
rename drivers/{scsi/ufs => ufs/core}/ufs-fault-injection.h (100%)
rename drivers/{scsi/ufs => ufs/core}/ufs-hwmon.c (98%)
rename drivers/{scsi/ufs => ufs/core}/ufs-sysfs.c (99%)
rename drivers/{scsi/ufs => ufs/core}/ufs-sysfs.h (95%)
rename drivers/{scsi/ufs => ufs/core}/ufs_bsg.c (97%)
rename drivers/{scsi/ufs => ufs/core}/ufs_bsg.h (77%)
rename drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.c (99%)
rename drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.h (94%)
create mode 100644 drivers/ufs/core/ufshcd-priv.h
rename drivers/{scsi/ufs => ufs/core}/ufshcd.c (98%)
rename drivers/{scsi/ufs => ufs/core}/ufshpb.c (94%)
rename drivers/{scsi/ufs => ufs/core}/ufshpb.h (96%)
create mode 100644 drivers/ufs/host/Kconfig
rename drivers/{scsi/ufs => ufs/host}/Makefile (56%)
rename drivers/{scsi/ufs => ufs/host}/cdns-pltfrm.c (99%)
rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210-pci.c (98%)
rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210-pltfrm.c (98%)
rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.c (99%)
rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.h (95%)
rename drivers/{scsi/ufs => ufs/host}/ti-j721e-ufs.c (96%)
rename drivers/{scsi/ufs => ufs/host}/ufs-exynos.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufs-exynos.h (97%)
rename drivers/{scsi/ufs => ufs/host}/ufs-hisi.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufs-hisi.h (100%)
rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek-trace.h (93%)
rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek.c (97%)
rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek.h (100%)
rename drivers/{scsi/ufs => ufs/host}/ufs-qcom-ice.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufs-qcom.c (96%)
rename drivers/{scsi/ufs => ufs/host}/ufs-qcom.h (98%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.c (98%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.h (95%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-pci.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.c (92%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.h (98%)
rename drivers/{scsi/ufs => ufs/host}/ufshci-dwc.h (100%)
create mode 100644 drivers/usb/dwc3/dwc3-am62.c
create mode 100644 drivers/usb/typec/mux/fsa4480.c
delete mode 100644 drivers/vfio/mdev/vfio_mdev.c
rename {arch/arm/mach-omap1 => drivers/video/fbdev/omap}/lcd_dma.c (98%)
rename {arch/arm/mach-omap1/include/mach => drivers/video/fbdev/omap}/lcd_dma.h (98%)
rename arch/arm/mach-pxa/include/mach/regs-lcd.h => drivers/video/fbdev/pxa3xx-regs.h (90%)
create mode 100644 drivers/virt/coco/efi_secret/Kconfig
create mode 100644 drivers/virt/coco/efi_secret/Makefile
create mode 100644 drivers/virt/coco/efi_secret/efi_secret.c
create mode 100644 drivers/virt/coco/sev-guest/Kconfig
create mode 100644 drivers/virt/coco/sev-guest/Makefile
create mode 100644 drivers/virt/coco/sev-guest/sev-guest.c
create mode 100644 drivers/virt/coco/sev-guest/sev-guest.h
delete mode 100644 drivers/visorbus/Kconfig
delete mode 100644 drivers/visorbus/Makefile
delete mode 100644 drivers/visorbus/controlvmchannel.h
delete mode 100644 drivers/visorbus/vbuschannel.h
delete mode 100644 drivers/visorbus/visorbus_main.c
delete mode 100644 drivers/visorbus/visorbus_private.h
delete mode 100644 drivers/visorbus/visorchannel.c
delete mode 100644 drivers/visorbus/visorchipset.c
create mode 100644 drivers/watchdog/gxp-wdt.c
create mode 100644 drivers/watchdog/rzn1_wdt.c
create mode 100644 drivers/watchdog/sunplus_wdt.c
create mode 100644 drivers/xen/grant-dma-iommu.c
create mode 100644 drivers/xen/grant-dma-ops.c
create mode 100644 fs/cachefiles/ondemand.c
create mode 100644 fs/erofs/fscache.c
create mode 100644 fs/ext4/crypto.c
create mode 100644 fs/xfs/xfs_attr_item.c
create mode 100644 fs/xfs/xfs_attr_item.h
create mode 100644 fs/xfs/xfs_xattr.h
create mode 100644 fs/zonefs/sysfs.c
create mode 100644 include/asm-generic/platform-feature.h
create mode 100644 include/asm-generic/spinlock_types.h
create mode 100644 include/clocksource/timer-goldfish.h
create mode 100644 include/clocksource/timer-xilinx.h
create mode 100644 include/dt-bindings/clock/en7523-clk.h
create mode 100644 include/dt-bindings/clock/mt8186-clk.h
create mode 100644 include/dt-bindings/clock/qcom,gcc-sc8280xp.h
create mode 100644 include/dt-bindings/clock/qcom,lpassaudiocc-sc7280.h
create mode 100644 include/dt-bindings/clock/qcom,lpasscorecc-sc7280.h
create mode 100644 include/dt-bindings/clock/r8a779g0-cpg-mssr.h
create mode 100644 include/dt-bindings/clock/r9a07g043-cpg.h
create mode 100644 include/dt-bindings/clock/r9a09g011-cpg.h
create mode 100644 include/dt-bindings/clock/samsung,exynosautov9.h
create mode 100644 include/dt-bindings/clock/ste-db8500-clkout.h
create mode 100644 include/dt-bindings/clock/stm32mp13-clks.h
create mode 100644 include/dt-bindings/gce/mt8186-gce.h
create mode 100644 include/dt-bindings/interconnect/qcom,sc8280xp.h
create mode 100644 include/dt-bindings/interconnect/qcom,sdx65.h
create mode 100644 include/dt-bindings/memory/mt8186-memory-port.h
create mode 100644 include/dt-bindings/memory/mt8195-memory-port.h
create mode 100644 include/dt-bindings/mfd/cros_ec.h
create mode 100644 include/dt-bindings/pinctrl/mt6795-pinfunc.h
create mode 100644 include/dt-bindings/power/r8a779g0-sysc.h
create mode 100644 include/dt-bindings/reset/amlogic,meson-s4-reset.h
create mode 100644 include/dt-bindings/reset/mt7986-resets.h
create mode 100644 include/dt-bindings/reset/mt8186-resets.h
create mode 100644 include/dt-bindings/reset/stm32mp13-resets.h
create mode 100644 include/dt-bindings/sound/cs35l45.h
create mode 100644 include/keys/trusted_caam.h
create mode 100644 include/kunit/resource.h
delete mode 100644 include/linux/can/led.h
create mode 100644 include/linux/clk/pxa.h
rename include/linux/{platform_data/dma-imx.h => dma/imx-dma.h} (67%)
create mode 100644 include/linux/export-internal.h
create mode 100644 include/linux/firmware/mediatek/mtk-adsp-ipc.h
create mode 100644 include/linux/host1x_context_bus.h
create mode 100644 include/linux/hte.h
delete mode 100644 include/linux/irqchip/irq-ixp4xx.h
create mode 100644 include/linux/mhi_ep.h
delete mode 100644 include/linux/mlx5/accel.h
rename drivers/mtd/nand/raw/mtk_ecc.h => include/linux/mtd/nand-ecc-mtk.h (100%)
create mode 100644 include/linux/phy/phy-lvds.h
create mode 100644 include/linux/platform-feature.h
create mode 100644 include/linux/platform_data/asoc-poodle.h
rename arch/arm/mach-pxa/include/mach/audio.h => include/linux/platform_data/asoc-pxa.h (93%)
rename include/linux/{mmc => platform_data}/sh_mmcif.h (99%)
delete mode 100644 include/linux/platform_data/timer-ixp4xx.h
create mode 100644 include/linux/polynomial.h
delete mode 100644 include/linux/qed/qed_nvmetcp_ip_services_if.h
create mode 100644 include/linux/soc/apple/rtkit.h
create mode 100644 include/linux/soc/apple/sart.h
create mode 100644 include/linux/soc/mediatek/mtk_wed.h
rename arch/arm/mach-pxa/include/mach/hardware.h => include/linux/soc/pxa/cpu.h (75%)
rename {arch/arm/plat-pxa/include/plat => include/linux/soc/pxa}/mfp.h (98%)
create mode 100644 include/linux/soc/pxa/smemc.h
create mode 100644 include/linux/soc/renesas/r9a06g032-sysctrl.h
create mode 100644 include/linux/soc/ti/omap1-io.h
rename arch/arm/mach-omap1/include/mach/mux.h => include/linux/soc/ti/omap1-mux.h (53%)
rename arch/arm/mach-omap1/include/mach/soc.h => include/linux/soc/ti/omap1-soc.h (90%)
rename arch/arm/mach-omap1/include/mach/usb.h => include/linux/soc/ti/omap1-usb.h (86%)
create mode 100644 include/net/net_debug.h
create mode 100644 include/pcmcia/soc_common.h
create mode 100644 include/soc/fsl/caam-blob.h
create mode 100644 include/soc/rockchip/pm_domains.h
create mode 100644 include/sound/cs42l42.h
create mode 100644 include/sound/sof/ext_manifest4.h
create mode 100644 include/sound/sof/ipc4/header.h
create mode 100644 include/trace/events/intel_ifs.h
create mode 100644 include/trace/events/thermal_pressure.h
create mode 100644 include/uapi/asm-generic/termbits-common.h
delete mode 100644 include/uapi/linux/atm_zatm.h
create mode 100644 include/uapi/linux/cachefiles.h
create mode 100644 include/uapi/linux/sev-guest.h
create mode 100644 include/uapi/scsi/scsi_bsg_mpi3mr.h
create mode 100644 include/uapi/sound/intel/avs/tokens.h
rename {drivers/scsi => include}/ufs/ufs.h (93%)
rename {drivers/scsi => include}/ufs/ufs_quirks.h (94%)
rename {drivers/scsi => include}/ufs/ufshcd.h (81%)
rename {drivers/scsi => include}/ufs/ufshci.h (99%)
rename {drivers/scsi => include}/ufs/unipro.h (98%)
delete mode 100644 include/xen/arm/page-coherent.h
create mode 100644 include/xen/arm/xen-ops.h
create mode 100644 kernel/bpf/link_iter.c
create mode 100644 kernel/configs/x86_debug.config
delete mode 100644 kernel/module-internal.h
create mode 100644 kernel/module/Makefile
create mode 100644 kernel/module/debug_kmemleak.c
rename kernel/{module_decompress.c => module/decompress.c} (99%)
create mode 100644 kernel/module/internal.h
create mode 100644 kernel/module/kallsyms.c
create mode 100644 kernel/module/kdb.c
create mode 100644 kernel/module/livepatch.c
rename kernel/{module.c => module/main.c} (61%)
create mode 100644 kernel/module/procfs.c
create mode 100644 kernel/module/signing.c
create mode 100644 kernel/module/strict_rwx.c
create mode 100644 kernel/module/sysfs.c
create mode 100644 kernel/module/tracking.c
create mode 100644 kernel/module/tree_lookup.c
create mode 100644 kernel/module/version.c
delete mode 100644 kernel/module_signing.c
create mode 100644 kernel/platform-feature.c
create mode 100644 lib/bootconfig-data.S
create mode 100644 lib/kunit/resource.c
create mode 100644 lib/polynomial.c
create mode 100644 mm/kfence/.kunitconfig
create mode 100644 mm/swap.h
delete mode 100644 net/core/datagram.h
create mode 100644 net/core/dev.h
create mode 100644 net/mptcp/bpf.c
create mode 100644 net/mptcp/pm_userspace.c
create mode 100644 samples/bpf/xdp_router_ipv4.bpf.c
delete mode 100644 samples/bpf/xdp_router_ipv4_kern.c
create mode 100644 scripts/Makefile.randstruct
create mode 100644 scripts/Makefile.vmlinux
create mode 100644 scripts/Makefile.vmlinux_o
create mode 100755 scripts/check-blacklist-hashes.awk
create mode 100755 scripts/check-local-export
delete mode 120000 scripts/dtc/include-prefixes/h8300
rename arch/arm/mach-pxa/Makefile.boot => scripts/dummy-tools/pahole (59%)
mode change 100644 => 100755
delete mode 100755 scripts/gcc-plugins/gen-random-seed.sh
create mode 100755 scripts/gen-randstruct-seed.sh
create mode 100755 scripts/install.sh
create mode 100644 scripts/mod/list.h
create mode 100755 scripts/objdump-func
create mode 100644 scripts/spdxexclude
create mode 100644 security/keys/trusted-keys/Kconfig
create mode 100644 security/keys/trusted-keys/trusted_caam.c
rename arch/arm/mach-pxa/include/mach/regs-ac97.h => sound/arm/pxa2xx-ac97-regs.h (71%)
create mode 100644 sound/drivers/serial-generic.c
create mode 100644 sound/soc/codecs/cs35l45-i2c.c
create mode 100644 sound/soc/codecs/cs35l45-spi.c
create mode 100644 sound/soc/codecs/cs35l45-tables.c
create mode 100644 sound/soc/codecs/cs35l45.c
create mode 100644 sound/soc/codecs/cs35l45.h
create mode 100644 sound/soc/codecs/max98396.c
create mode 100644 sound/soc/codecs/max98396.h
create mode 100644 sound/soc/codecs/wm8731-i2c.c
create mode 100644 sound/soc/codecs/wm8731-spi.c
create mode 100644 sound/soc/intel/avs/apl.c
create mode 100644 sound/soc/intel/avs/board_selection.c
create mode 100644 sound/soc/intel/avs/path.c
create mode 100644 sound/soc/intel/avs/path.h
create mode 100644 sound/soc/intel/avs/pcm.c
create mode 100644 sound/soc/intel/avs/skl.c
create mode 100644 sound/soc/intel/avs/topology.c
create mode 100644 sound/soc/intel/avs/topology.h
create mode 100644 sound/soc/intel/avs/trace.c
create mode 100644 sound/soc/intel/avs/trace.h
delete mode 100644 sound/soc/mediatek/mt8195/mt8195-mt6359-rt1011-rt5682.c
rename sound/soc/mediatek/mt8195/{mt8195-mt6359-rt1019-rt5682.c => mt8195-mt6359.c} (78%)
create mode 100644 sound/soc/soc-utils-test.c
create mode 100644 sound/soc/sof/intel/hda-common-ops.c
create mode 100644 sound/soc/sof/ipc3-dtrace.c
create mode 100644 sound/soc/sof/ipc3-loader.c
delete mode 100644 sound/soc/sof/ipc3-ops.h
create mode 100644 sound/soc/sof/ipc3-priv.h
create mode 100644 sound/soc/sof/ipc4-loader.c
create mode 100644 sound/soc/sof/ipc4-priv.h
create mode 100644 sound/soc/sof/ipc4.c
create mode 100644 sound/soc/sof/mediatek/mt8186/Makefile
create mode 100644 sound/soc/sof/mediatek/mt8186/mt8186-clk.c
create mode 100644 sound/soc/sof/mediatek/mt8186/mt8186-clk.h
create mode 100644 sound/soc/sof/mediatek/mt8186/mt8186-loader.c
create mode 100644 sound/soc/sof/mediatek/mt8186/mt8186.c
create mode 100644 sound/soc/sof/mediatek/mt8186/mt8186.h
create mode 100644 sound/soc/sof/mediatek/mtk-adsp-common.c
create mode 100644 sound/soc/sof/mediatek/mtk-adsp-common.h
create mode 100644 sound/soc/tegra/tegra186_asrc.c
create mode 100644 sound/soc/tegra/tegra186_asrc.h
create mode 100644 tools/accounting/procacct.c
delete mode 100644 tools/arch/h8300/include/asm/bitsperlong.h
delete mode 100644 tools/arch/h8300/include/uapi/asm/mman.h
create mode 100644 tools/build/feature/test-libbpf-bpf_map_create.c
create mode 100644 tools/build/feature/test-libbpf-bpf_object__next_map.c
create mode 100644 tools/build/feature/test-libbpf-bpf_object__next_program.c
create mode 100644 tools/build/feature/test-libbpf-bpf_prog_load.c
create mode 100644 tools/build/feature/test-libbpf-btf__load_from_kernel_by_id.c
create mode 100644 tools/build/feature/test-libbpf-btf__raw_data.c
create mode 100755 tools/certs/print-cert-tbs-hash.sh
create mode 100644 tools/include/linux/arm-smccc.h
create mode 100644 tools/include/nolibc/Makefile
create mode 100644 tools/include/nolibc/arch-aarch64.h
create mode 100644 tools/include/nolibc/arch-arm.h
create mode 100644 tools/include/nolibc/arch-i386.h
create mode 100644 tools/include/nolibc/arch-mips.h
create mode 100644 tools/include/nolibc/arch-riscv.h
create mode 100644 tools/include/nolibc/arch-x86_64.h
create mode 100644 tools/include/nolibc/arch.h
create mode 100644 tools/include/nolibc/ctype.h
create mode 100644 tools/include/nolibc/errno.h
create mode 100644 tools/include/nolibc/signal.h
create mode 100644 tools/include/nolibc/std.h
create mode 100644 tools/include/nolibc/stdio.h
create mode 100644 tools/include/nolibc/stdlib.h
create mode 100644 tools/include/nolibc/string.h
create mode 100644 tools/include/nolibc/sys.h
create mode 100644 tools/include/nolibc/time.h
create mode 100644 tools/include/nolibc/types.h
create mode 100644 tools/include/nolibc/unistd.h
create mode 100644 tools/lib/bpf/usdt.bpf.h
create mode 100644 tools/lib/bpf/usdt.c
create mode 100644 tools/lib/thermal/.gitignore
create mode 100644 tools/lib/thermal/Build
create mode 100644 tools/lib/thermal/Makefile
create mode 100644 tools/lib/thermal/commands.c
create mode 100644 tools/lib/thermal/events.c
create mode 100644 tools/lib/thermal/include/thermal.h
create mode 100644 tools/lib/thermal/libthermal.map
create mode 100644 tools/lib/thermal/libthermal.pc.template
create mode 100644 tools/lib/thermal/sampling.c
create mode 100644 tools/lib/thermal/thermal.c
create mode 100644 tools/lib/thermal/thermal_nl.c
create mode 100644 tools/lib/thermal/thermal_nl.h
rename tools/objtool/Documentation/{stack-validation.txt => objtool.txt} (80%)
delete mode 100644 tools/objtool/builtin-orc.c
create mode 100644 tools/perf/Documentation/perf-arm-spe.txt
create mode 100644 tools/perf/arch/x86/util/evsel.h
create mode 100644 tools/perf/arch/x86/util/topdown.h
create mode 100644 tools/perf/bench/breakpoint.c
delete mode 100644 tools/perf/perf-with-kcore.sh
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a34/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a34/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a34/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a34/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a34/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a34/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a35/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a35/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a35/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a35/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a35/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a35/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/pmu.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/trace.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/cache.json
delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/core-imp-def.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/dpu.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/ifu.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/trace.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/etm.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/mmu.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/etm.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/mmu.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/trace.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/spe.json
delete mode 100644 tools/perf/pmu-events/arch/s390/cf_z15/crypto.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z16/basic.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z16/crypto6.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z16/extended.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z16/transaction.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlake/adl-metrics.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/floating-point.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/frontend.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/other.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/spr-metrics.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/uncore-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/uncore-power.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/virtual-memory.json
create mode 100755 tools/perf/scripts/python/arm-cs-trace-disasm.py
create mode 100644 tools/perf/tests/shell/lib/perf_csv_output_lint.py
create mode 100755 tools/perf/tests/shell/record.sh
create mode 100755 tools/perf/tests/shell/record_offcpu.sh
create mode 100755 tools/perf/tests/shell/stat+csv_output.sh
create mode 100755 tools/perf/tests/shell/stat.sh
create mode 100755 tools/perf/tests/shell/test_arm_spe_fork.sh
create mode 100755 tools/perf/tests/shell/test_intel_pt.sh
create mode 100644 tools/perf/util/bpf_off_cpu.c
create mode 100644 tools/perf/util/bpf_skel/off_cpu.bpf.c
create mode 100644 tools/perf/util/off_cpu.h
create mode 100644 tools/testing/crypto/chacha20-s390/Makefile
create mode 100644 tools/testing/crypto/chacha20-s390/run-tests.sh
create mode 100644 tools/testing/crypto/chacha20-s390/test-cipher.c
delete mode 100644 tools/testing/cxl/mock_mem.c
create mode 100644 tools/testing/kunit/configs/all_tests_uml.config
delete mode 100644 tools/testing/kunit/test_data/test_is_test_passed-crash.log
create mode 100644 tools/testing/selftests/arm64/abi/syscall-abi.h
create mode 100644 tools/testing/selftests/arm64/abi/tpidr2.c
create mode 100644 tools/testing/selftests/arm64/fp/rdvl-sme.c
create mode 100644 tools/testing/selftests/arm64/fp/sme-inst.h
create mode 100644 tools/testing/selftests/arm64/fp/ssve-stress
create mode 100644 tools/testing/selftests/arm64/fp/za-fork-asm.S
create mode 100644 tools/testing/selftests/arm64/fp/za-fork.c
create mode 100644 tools/testing/selftests/arm64/fp/za-ptrace.c
create mode 100644 tools/testing/selftests/arm64/fp/za-stress
create mode 100644 tools/testing/selftests/arm64/fp/za-test.S
create mode 100644 tools/testing/selftests/arm64/mte/check_prctl.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_sme_change_vl.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/sme_trap_no_sm.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/sme_trap_non_streaming.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/sme_trap_za.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/sme_vl.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/ssve_regs.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/za_regs.c
delete mode 100644 tools/testing/selftests/bpf/bpf_rlimit.h
create mode 100644 tools/testing/selftests/bpf/map_tests/map_in_map_batch_ops.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/arg_parsing.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/dynptr.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/log_fixup.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/map_kptr.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/map_lookup_percpu_elem.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/mptcp.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/prog_tests_framework.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/skb_load_bytes.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/test_tunnel.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/unpriv_bpf_disabled.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/uprobe_autoattach.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/usdt.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_bpf_link.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_size___diff_offs.c
create mode 100644 tools/testing/selftests/bpf/progs/dynptr_fail.c
create mode 100644 tools/testing/selftests/bpf/progs/dynptr_success.c
create mode 100644 tools/testing/selftests/bpf/progs/for_each_map_elem_write_key.c
create mode 100644 tools/testing/selftests/bpf/progs/freplace_global_func.c
create mode 100644 tools/testing/selftests/bpf/progs/kprobe_multi_empty.c
create mode 100644 tools/testing/selftests/bpf/progs/map_kptr.c
create mode 100644 tools/testing/selftests/bpf/progs/map_kptr_fail.c
create mode 100644 tools/testing/selftests/bpf/progs/mptcp_sock.c
create mode 100644 tools/testing/selftests/bpf/progs/skb_load_bytes.c
create mode 100644 tools/testing/selftests/bpf/progs/test_global_func17.c
create mode 100644 tools/testing/selftests/bpf/progs/test_log_fixup.c
create mode 100644 tools/testing/selftests/bpf/progs/test_map_lookup_percpu_elem.c
create mode 100644 tools/testing/selftests/bpf/progs/test_unpriv_bpf_disabled.c
create mode 100644 tools/testing/selftests/bpf/progs/test_uprobe_autoattach.c
create mode 100644 tools/testing/selftests/bpf/progs/test_urandom_usdt.c
create mode 100644 tools/testing/selftests/bpf/progs/test_usdt.c
create mode 100644 tools/testing/selftests/bpf/progs/test_usdt_multispec.c
create mode 100644 tools/testing/selftests/bpf/sdt-config.h
create mode 100644 tools/testing/selftests/bpf/sdt.h
create mode 100644 tools/testing/selftests/bpf/urandom_read_aux.c
create mode 100644 tools/testing/selftests/bpf/urandom_read_lib1.c
create mode 100644 tools/testing/selftests/bpf/urandom_read_lib2.c
create mode 100644 tools/testing/selftests/bpf/verifier/map_kptr.c
create mode 100644 tools/testing/selftests/cgroup/config
create mode 100644 tools/testing/selftests/cgroup/memcg_protection.m
create mode 100644 tools/testing/selftests/cgroup/test_cpu.c
create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_locked_port.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_mdb.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_mld.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_vlan_aware.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_vlan_mcast.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_vlan_unaware.sh
create mode 100644 tools/testing/selftests/drivers/net/dsa/forwarding.config
create mode 120000 tools/testing/selftests/drivers/net/dsa/lib.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/local_termination.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/no_forwarding.sh
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/devlink_linecard.sh
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/qos_burst.sh
create mode 100755 tools/testing/selftests/drivers/net/ocelot/basic_qos.sh
create mode 100755 tools/testing/selftests/drivers/net/ocelot/psfp.sh
create mode 100644 tools/testing/selftests/drivers/s390x/uvdevice/Makefile
create mode 100644 tools/testing/selftests/drivers/s390x/uvdevice/config
create mode 100644 tools/testing/selftests/drivers/s390x/uvdevice/test_uvdevice.c
create mode 100755 tools/testing/selftests/firmware/fw_upload.sh
create mode 100644 tools/testing/selftests/kvm/aarch64/hypercalls.c
delete mode 100644 tools/testing/selftests/kvm/aarch64/psci_cpu_on_test.c
create mode 100644 tools/testing/selftests/kvm/aarch64/psci_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/fix_hypercall_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/tsc_scaling_sync.c
rename tools/testing/selftests/kvm/x86_64/{vmx_pmu_msrs_test.c => vmx_pmu_caps_test.c} (83%)
create mode 100644 tools/testing/selftests/net/bind_bhash_test.c
create mode 100644 tools/testing/selftests/net/bpf/Makefile
create mode 100644 tools/testing/selftests/net/bpf/nat6to4.c
create mode 100755 tools/testing/selftests/net/forwarding/bridge_mdb.sh
create mode 100755 tools/testing/selftests/net/forwarding/hw_stats_l3_gre.sh
mode change 100644 => 100755 tools/testing/selftests/net/forwarding/lib.sh
create mode 100755 tools/testing/selftests/net/forwarding/local_termination.sh
create mode 100755 tools/testing/selftests/net/forwarding/no_forwarding.sh
create mode 100644 tools/testing/selftests/net/forwarding/tsn_lib.sh
create mode 100755 tools/testing/selftests/net/mptcp/userspace_pm.sh
create mode 100755 tools/testing/selftests/net/ndisc_unsolicited_na_test.sh
create mode 100644 tools/testing/selftests/net/stress_reuseport_listen.c
create mode 100755 tools/testing/selftests/net/stress_reuseport_listen.sh
create mode 100755 tools/testing/selftests/net/udpgro_frglist.sh
create mode 100644 tools/testing/selftests/powerpc/math/mma.S
create mode 100644 tools/testing/selftests/powerpc/math/mma.c
create mode 100644 tools/testing/selftests/powerpc/mm/large_vm_gpr_corruption.c
delete mode 100644 tools/testing/selftests/powerpc/pmu/ebb/fixed_instruction_loop.S
create mode 100644 tools/testing/selftests/resctrl/settings
create mode 100644 tools/testing/selftests/vm/migration.c
create mode 100644 tools/testing/selftests/vm/mrelease_test.c
create mode 100644 tools/testing/selftests/vm/settings
create mode 100644 tools/testing/selftests/vm/soft-dirty.c
create mode 100644 tools/testing/selftests/vm/vm_util.c
create mode 100644 tools/testing/selftests/vm/vm_util.h
create mode 100644 tools/testing/selftests/wireguard/qemu/arch/powerpc64.config
create mode 100644 tools/testing/selftests/wireguard/qemu/arch/riscv32.config
create mode 100644 tools/testing/selftests/wireguard/qemu/arch/riscv64.config
create mode 100644 tools/testing/selftests/wireguard/qemu/arch/s390x.config
create mode 100644 tools/thermal/lib/Build
create mode 100644 tools/thermal/lib/Makefile
create mode 100644 tools/thermal/lib/libthermal_tools.pc.template
create mode 100644 tools/thermal/lib/log.c
create mode 100644 tools/thermal/lib/log.h
create mode 100644 tools/thermal/lib/mainloop.c
create mode 100644 tools/thermal/lib/mainloop.h
create mode 100644 tools/thermal/lib/thermal-tools.h
create mode 100644 tools/thermal/lib/uptimeofday.c
create mode 100644 tools/thermal/lib/uptimeofday.h
create mode 100644 tools/thermal/thermal-engine/Build
create mode 100644 tools/thermal/thermal-engine/Makefile
create mode 100644 tools/thermal/thermal-engine/thermal-engine.c
create mode 100644 tools/thermal/thermometer/Build
create mode 100644 tools/thermal/thermometer/Makefile
create mode 100644 tools/thermal/thermometer/thermometer.8
create mode 100644 tools/thermal/thermometer/thermometer.c
create mode 100644 tools/thermal/thermometer/thermometer.conf
create mode 100644 usr/dummy-include/stdbool.h
create mode 100644 usr/dummy-include/stdlib.h
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer
^ permalink raw reply [relevance 1%]
* [Intel-gfx] [PULL] drm-misc-next
@ 2022-06-23 8:02 1% ` Thomas Zimmermann
0 siblings, 0 replies; 200+ results
From: Thomas Zimmermann @ 2022-06-23 8:02 UTC (permalink / raw)
To: Dave Airlie, Daniel Vetter
Cc: dim-tools, dri-devel, Maxime Ripard, Thomas Zimmermann,
Rodrigo Vivi, intel-gfx
Hi Dave and Daniel,
here's the drm-misc-next PR for this week.
Best regards
Thomas
drm-misc-next-2022-06-23:
drm-misc-next for v5.20:
UAPI Changes:
* media: Add various RGB666 and RGB888 format constants
Cross-subsystem Changes:
* media: Documentation
Core Changes:
* aperture: Fix segfault during hot-unplug
* dp: Support waiting for HDP signal, plus driver updates;
Port-validation fixes
* fbcon: Improve scrolling performance; Sanitize input
* Clean up <drm/drm_crtc.h>
Driver Changes:
* amdgpu: Cleanups
* bridge: Add support for i.MX8qxp and i.MX8qm; anx7625: DPI fixes;
tc358775: Fix clock settings; ti-sn65dsi83: Allow GPIO to sleep
* panel: Set orientation from panel, plus driver updates
* Several small cleanups
The following changes since commit e4a8864f74e9e9e4a7eb93952a4cfa35c165c930:
iosys-map: Fix typo in documentation (2022-06-16 16:44:34 -0700)
are available in the Git repository at:
git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-next-2022-06-23
for you to fetch changes up to 009a3a52791f31c57d755a73f6bc66fbdd8bd76c:
drm/hyperv-drm: Include framebuffer and EDID headers (2022-06-22 16:07:38 +0200)
----------------------------------------------------------------
drm-misc-next for v5.20:
UAPI Changes:
* media: Add various RGB666 and RGB888 format constants
Cross-subsystem Changes:
* media: Documentation
Core Changes:
* aperture: Fix segfault during hot-unplug
* dp: Support waiting for HDP signal, plus driver updates;
Port-validation fixes
* fbcon: Improve scrolling performance; Sanitize input
* Clean up <drm/drm_crtc.h>
Driver Changes:
* amdgpu: Cleanups
* bridge: Add support for i.MX8qxp and i.MX8qm; anx7625: DPI fixes;
tc358775: Fix clock settings; ti-sn65dsi83: Allow GPIO to sleep
* panel: Set orientation from panel, plus driver updates
* Several small cleanups
----------------------------------------------------------------
Alex Deucher (1):
drm/amdgpu/display: drop set but unused variable
Alexander Stein (2):
drm/bridge: ti-sn65dsi83: add more dev_err_probe
drm/bridge: ti-sn65dsi83: Allow GPIO operations to sleep
Douglas Anderson (4):
drm/dp: Add wait_hpd_asserted() callback to struct drm_dp_aux
drm/panel-edp: Take advantage of wait_hpd_asserted() in struct drm_dp_aux
drm/panel: atna33xc20: Take advantage of wait_hpd_asserted() in struct drm_dp_aux
drm/bridge: parade-ps8640: Provide wait_hpd_asserted() in struct drm_dp_aux
Helge Deller (2):
fbcon: Fix accelerated fbdev scrolling while logo is still shown
fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters
Hsin-Yi Wang (8):
drm/panel: Add an API to allow drm to set orientation from panel
drm/panel: boe-tv101wum-nl6: Implement .get_orientation callback
drm/panel: panel-edp: Implement .get_orientation callback
drm/panel: lvds: Implement .get_orientation callback
drm/panel: panel-simple: Implement .get_orientation callback
drm/panel: ili9881c: Implement .get_orientation callback
drm/panel: elida-kd35t133: Implement .get_orientation callback
drm: Config orientation property if panel provides it
Jiang Jian (6):
drm/display: Remove duplicate 'the' in two places.
drm/nouveau/mmu: drop unexpected word "the" in the comments
drm/prime: drop unexpected word "the" in the comments
drm/vc4: drop unexpected word "the" in the comments
drm: panel-orientation-quirks: drop unexpected word "the" in the comments
GPU: drm: drop unexpected word "the" in the comments
Jiri Vanek (2):
drm/bridge/tc358775: Return before displaying inappropriate error message
drm/bridge/tc358775: Fix DSI clock division for vsync delay calculation
Liu Ying (14):
media: uapi: Add some RGB bus formats for i.MX8qm/qxp pixel combiner
media: docs: Add some RGB bus formats for i.MX8qm/qxp pixel combiner
dt-bindings: display: bridge: Add i.MX8qm/qxp pixel combiner binding
drm/bridge: imx: Add i.MX8qm/qxp pixel combiner support
dt-bindings: display: bridge: Add i.MX8qm/qxp display pixel link binding
drm/bridge: imx: Add i.MX8qm/qxp display pixel link support
dt-bindings: display: bridge: Add i.MX8qxp pixel link to DPI binding
drm/bridge: imx: Add i.MX8qxp pixel link to DPI support
drm/bridge: imx: Add LDB driver helper support
dt-bindings: display: bridge: Add i.MX8qm/qxp LVDS display bridge binding
drm/bridge: imx: Add LDB support for i.MX8qxp
drm/bridge: imx: Add LDB support for i.MX8qm
dt-bindings: mfd: Add i.MX8qm/qxp Control and Status Registers module binding
MAINTAINERS: add maintainer for DRM bridge drivers for i.MX SoCs
Lyude Paul (2):
drm/display/dp_mst: Don't validate port refs in drm_dp_check_and_send_link_address()
drm/dp_mst: Get rid of old comment in drm_atomic_get_mst_topology_state docs
Thomas Zimmermann (3):
Merge drm/drm-next into drm-misc-next
drm/aperture: Run fbdev removal before internal helpers
drm/hyperv-drm: Include framebuffer and EDID headers
Ville Syrjälä (5):
drm: Drop drm_edid.h from drm_crtc.h
drm: Drop drm_framebuffer.h from drm_crtc.h
drm: Drop drm_blend.h from drm_crtc.h
drm: Drop drm_connector.h from drm_crtc.h
drm/xlnx: Fix build failure due to missing include
Xin Ji (2):
dt-bindings:drm/bridge:anx7625: add port@0 property
drm/bridge: anx7625: Use DPI bus type
.clang-format | 218 +-
.gitignore | 1 +
.mailmap | 7 +
Documentation/ABI/stable/sysfs-bus-mhi | 10 +
Documentation/ABI/stable/sysfs-driver-mlxreg-io | 36 +
Documentation/ABI/testing/configfs-usb-gadget-uvc | 1 +
.../ABI/testing/debugfs-driver-habanalabs | 38 +
Documentation/ABI/testing/debugfs-hisi-hpre | 14 +
Documentation/ABI/testing/debugfs-hisi-sec | 14 +
Documentation/ABI/testing/debugfs-hisi-zip | 14 +
Documentation/ABI/testing/ima_policy | 45 +-
Documentation/ABI/testing/securityfs-secrets-coco | 51 +
Documentation/ABI/testing/sysfs-ata | 11 +-
Documentation/ABI/testing/sysfs-bus-thunderbolt | 10 +
Documentation/ABI/testing/sysfs-class-cxl | 4 +-
Documentation/ABI/testing/sysfs-class-firmware | 77 +
Documentation/ABI/testing/sysfs-class-regulator | 81 +
.../ABI/testing/sysfs-devices-physical_location | 42 +
.../ABI/testing/sysfs-driver-bd9571mwv-regulator | 2 +-
Documentation/ABI/testing/sysfs-driver-ccp | 87 +
.../ABI/testing/sysfs-driver-chromeos-acpi | 137 +
Documentation/ABI/testing/sysfs-driver-ufs | 18 +-
Documentation/ABI/testing/sysfs-driver-xen-blkback | 4 +-
.../ABI/testing/sysfs-driver-xen-blkfront | 2 +-
Documentation/ABI/testing/sysfs-kernel-mm-damon | 25 +-
Documentation/ABI/testing/sysfs-platform-intel-ifs | 39 +
Documentation/PCI/pci.rst | 4 +-
.../RCU/Design/Data-Structures/Data-Structures.rst | 2 +-
.../Expedited-Grace-Periods.rst | 2 +-
.../RCU/Design/Requirements/Requirements.rst | 36 +-
Documentation/RCU/arrayRCU.rst | 4 +-
Documentation/RCU/checklist.rst | 9 +-
Documentation/RCU/rcu.rst | 13 +-
Documentation/RCU/rculist_nulls.rst | 2 +-
Documentation/RCU/stallwarn.rst | 20 +
Documentation/RCU/whatisRCU.rst | 18 +-
Documentation/accounting/delay-accounting.rst | 5 +-
Documentation/accounting/psi.rst | 9 +-
Documentation/admin-guide/blockdev/index.rst | 6 +-
Documentation/admin-guide/blockdev/zram.rst | 5 +
Documentation/admin-guide/bootconfig.rst | 31 +-
Documentation/admin-guide/cgroup-v2.rst | 51 +-
Documentation/admin-guide/devices.txt | 2 +-
Documentation/admin-guide/kernel-parameters.rst | 11 +-
Documentation/admin-guide/kernel-parameters.txt | 571 +-
Documentation/admin-guide/media/vimc.dot | 14 +-
Documentation/admin-guide/mm/damon/reclaim.rst | 11 +
Documentation/admin-guide/mm/damon/usage.rst | 41 +-
Documentation/admin-guide/mm/hugetlbpage.rst | 2 +-
Documentation/admin-guide/mm/ksm.rst | 18 +
Documentation/admin-guide/nfs/nfs-client.rst | 15 +-
.../admin-guide/pm/intel-speed-select.rst | 22 +
Documentation/admin-guide/sysctl/kernel.rst | 15 +-
Documentation/admin-guide/sysctl/net.rst | 17 +
Documentation/admin-guide/sysctl/vm.rst | 48 +
Documentation/arch.rst | 1 +
Documentation/arm/marvell.rst | 7 -
Documentation/arm/tcm.rst | 2 +-
Documentation/arm64/booting.rst | 10 +
Documentation/arm64/cpu-feature-registers.rst | 2 +
Documentation/arm64/elf_hwcaps.rst | 37 +
Documentation/arm64/index.rst | 1 +
Documentation/arm64/silicon-errata.rst | 3 +
Documentation/arm64/sme.rst | 428 +
Documentation/arm64/sve.rst | 70 +-
Documentation/bpf/instruction-set.rst | 4 +-
Documentation/bpf/libbpf/index.rst | 3 +-
Documentation/cdrom/cdrom-standard.rst | 10 -
Documentation/cdrom/ide-cd.rst | 538 -
Documentation/cdrom/index.rst | 1 -
Documentation/conf.py | 2 +-
Documentation/core-api/index.rst | 2 +
Documentation/core-api/printk-index.rst | 137 +
Documentation/core-api/timekeeping.rst | 1 +
Documentation/{ => core-api}/watch_queue.rst | 0
Documentation/dev-tools/kasan.rst | 228 +-
Documentation/dev-tools/ktap.rst | 18 +-
Documentation/dev-tools/kunit/api/index.rst | 5 +
Documentation/dev-tools/kunit/api/resource.rst | 13 +
Documentation/dev-tools/kunit/architecture.rst | 2 +-
Documentation/dev-tools/kunit/running_tips.rst | 3 +-
Documentation/dev-tools/kunit/usage.rst | 19 +-
Documentation/dev-tools/testing-overview.rst | 63 +
.../devicetree/bindings/arm/arm,corstone1000.yaml | 45 +
.../devicetree/bindings/arm/bcm/brcm,bcm4708.yaml | 10 +-
.../devicetree/bindings/arm/bcm/brcm,bcm63138.txt | 2 +-
.../devicetree/bindings/arm/bcm/brcm,bcmbca.yaml | 33 +
.../bindings/arm/freescale/fsl,layerscape-dcfg.txt | 19 -
.../bindings/arm/freescale/fsl,layerscape-scfg.txt | 19 -
Documentation/devicetree/bindings/arm/fsl.yaml | 119 +-
.../hisilicon/controller/hip04-bootwrapper.yaml | 5 +-
Documentation/devicetree/bindings/arm/hpe,gxp.yaml | 27 +
.../devicetree/bindings/arm/intel,socfpga.yaml | 1 +
.../devicetree/bindings/arm/mediatek.yaml | 5 +
.../bindings/arm/mediatek/mediatek,apmixedsys.txt | 35 -
.../bindings/arm/mediatek/mediatek,infracfg.txt | 42 -
.../bindings/arm/mediatek/mediatek,infracfg.yaml | 81 +
.../bindings/arm/mediatek/mediatek,mmsys.yaml | 32 +
.../arm/mediatek/mediatek,mt7622-pcie-mirror.yaml | 42 +
.../bindings/arm/mediatek/mediatek,mt7622-wed.yaml | 50 +
.../arm/mediatek/mediatek,mt8186-clock.yaml | 56 +
.../arm/mediatek/mediatek,mt8186-sys-clock.yaml | 54 +
.../bindings/arm/mediatek/mediatek,pericfg.yaml | 1 +
.../bindings/arm/mediatek/mediatek,topckgen.txt | 35 -
.../devicetree/bindings/arm/msm/qcom,llcc.yaml | 2 +
.../devicetree/bindings/arm/omap/prcm.txt | 7 +-
Documentation/devicetree/bindings/arm/qcom.yaml | 21 +
Documentation/devicetree/bindings/arm/renesas.yaml | 20 +
.../devicetree/bindings/arm/rockchip.yaml | 23 +-
Documentation/devicetree/bindings/arm/sp810.txt | 46 -
Documentation/devicetree/bindings/arm/sp810.yaml | 80 +
Documentation/devicetree/bindings/arm/spe-pmu.txt | 20 -
.../devicetree/bindings/arm/stm32/stm32.yaml | 63 +-
Documentation/devicetree/bindings/arm/sunxi.yaml | 5 +
Documentation/devicetree/bindings/arm/syna.txt | 4 -
.../arm/tegra/nvidia,tegra-ccplex-cluster.yaml | 52 +
Documentation/devicetree/bindings/arm/ux500.yaml | 5 +
.../devicetree/bindings/arm/vexpress-config.yaml | 285 +
.../devicetree/bindings/arm/vexpress-sysreg.txt | 103 -
.../devicetree/bindings/arm/vexpress-sysreg.yaml | 90 +
.../devicetree/bindings/ata/renesas,rcar-sata.yaml | 1 +
.../bindings/bus/qcom,ssc-block-bus.yaml | 147 +
.../bindings/clock/airoha,en7523-scu.yaml | 58 +
.../devicetree/bindings/clock/clock-bindings.txt | 188 +-
.../devicetree/bindings/clock/idt,versaclock5.yaml | 2 +-
.../devicetree/bindings/clock/imx8m-clock.yaml | 4 -
.../bindings/clock/mediatek,apmixedsys.yaml | 61 +
.../bindings/clock/mediatek,topckgen.yaml | 61 +
.../bindings/clock/qcom,gcc-apq8064.yaml | 4 +-
.../bindings/clock/qcom,gcc-apq8084.yaml | 42 +
.../bindings/clock/qcom,gcc-sc8280xp.yaml | 128 +
.../devicetree/bindings/clock/qcom,mmcc.yaml | 2 +-
.../devicetree/bindings/clock/qcom,rpmcc.txt | 63 -
.../devicetree/bindings/clock/qcom,rpmcc.yaml | 75 +
.../bindings/clock/qcom,sc7280-lpasscorecc.yaml | 172 +
.../bindings/clock/renesas,cpg-mssr.yaml | 1 +
.../bindings/clock/renesas,h8300-div-clock.txt | 24 -
.../bindings/clock/renesas,h8s2678-pll-clock.txt | 23 -
.../bindings/clock/renesas,r9a06g032-sysctrl.yaml | 11 +
.../bindings/clock/renesas,rzg2l-cpg.yaml | 20 +-
.../bindings/clock/rockchip,px30-cru.txt | 70 -
.../bindings/clock/rockchip,px30-cru.yaml | 119 +
.../bindings/clock/rockchip,rk3036-cru.txt | 56 -
.../bindings/clock/rockchip,rk3036-cru.yaml | 72 +
.../bindings/clock/rockchip,rk3188-cru.txt | 61 -
.../bindings/clock/rockchip,rk3188-cru.yaml | 78 +
.../bindings/clock/rockchip,rk3228-cru.txt | 58 -
.../bindings/clock/rockchip,rk3228-cru.yaml | 74 +
.../bindings/clock/rockchip,rk3288-cru.txt | 67 -
.../bindings/clock/rockchip,rk3288-cru.yaml | 85 +
.../bindings/clock/rockchip,rk3308-cru.txt | 60 -
.../bindings/clock/rockchip,rk3308-cru.yaml | 76 +
.../bindings/clock/rockchip,rk3368-cru.txt | 61 -
.../bindings/clock/rockchip,rk3368-cru.yaml | 78 +
.../bindings/clock/rockchip,rk3399-cru.yaml | 33 +-
.../bindings/clock/rockchip,rk3568-cru.yaml | 13 +
.../bindings/clock/rockchip,rv1108-cru.txt | 59 -
.../bindings/clock/rockchip,rv1108-cru.yaml | 75 +
.../clock/samsung,exynos4412-isp-clock.yaml | 1 -
.../bindings/clock/samsung,exynosautov9-clock.yaml | 219 +
.../devicetree/bindings/clock/st,stm32mp1-rcc.yaml | 43 +
.../bindings/clock/stericsson,u8500-clks.yaml | 57 +
.../bindings/clock/ti,am654-ehrpwm-tbclk.yaml | 1 +
.../devicetree/bindings/clock/ti-clkctrl.txt | 4 +-
.../devicetree/bindings/clock/ti/clockdomain.txt | 3 +
.../devicetree/bindings/clock/ti/composite.txt | 3 +
.../bindings/clock/ti/fixed-factor-clock.txt | 1 +
.../devicetree/bindings/clock/ti/gate.txt | 1 +
.../devicetree/bindings/clock/ti/interface.txt | 1 +
Documentation/devicetree/bindings/clock/ti/mux.txt | 1 +
.../bindings/cpufreq/brcm,stb-avs-cpu-freq.txt | 2 +-
.../bindings/cpufreq/cpufreq-mediatek.txt | 7 +
.../bindings/crypto/allwinner,sun8i-ce.yaml | 1 -
.../devicetree/bindings/crypto/ti,sa2ul.yaml | 1 +
.../devicetree/bindings/devfreq/rk3399_dmc.txt | 212 -
.../bindings/display/amlogic,meson-dw-hdmi.yaml | 1 -
.../devicetree/bindings/display/arm,hdlcd.txt | 79 -
.../devicetree/bindings/display/arm,hdlcd.yaml | 89 +
.../devicetree/bindings/display/arm,komeda.txt | 78 -
.../devicetree/bindings/display/arm,komeda.yaml | 130 +
.../devicetree/bindings/display/arm,malidp.txt | 68 -
.../devicetree/bindings/display/arm,malidp.yaml | 119 +
.../devicetree/bindings/display/arm,pl11x.txt | 110 -
.../devicetree/bindings/display/arm,pl11x.yaml | 183 +
.../bindings/display/bridge/analogix,anx7625.yaml | 19 +-
.../bindings/display/bridge/fsl,imx8qxp-ldb.yaml | 173 +
.../display/bridge/fsl,imx8qxp-pixel-combiner.yaml | 144 +
.../display/bridge/fsl,imx8qxp-pixel-link.yaml | 144 +
.../display/bridge/fsl,imx8qxp-pxl2dpi.yaml | 108 +
.../display/bridge/google,cros-ec-anx7688.yaml | 1 -
.../devicetree/bindings/display/bridge/ps8640.yaml | 1 -
.../bindings/display/bridge/renesas,lvds.yaml | 4 -
.../bindings/display/bridge/toshiba,tc358768.yaml | 1 +
.../bindings/display/imx/nxp,imx8mq-dcss.yaml | 1 -
.../bindings/display/mediatek/mediatek,aal.yaml | 11 +-
.../bindings/display/mediatek/mediatek,ccorr.yaml | 5 +-
.../bindings/display/mediatek/mediatek,color.yaml | 7 +-
.../bindings/display/mediatek/mediatek,dither.yaml | 4 +-
.../bindings/display/mediatek/mediatek,dpi.yaml | 1 +
.../bindings/display/mediatek/mediatek,gamma.yaml | 4 +-
.../bindings/display/mediatek/mediatek,merge.yaml | 1 -
.../bindings/display/mediatek/mediatek,mutex.yaml | 25 +-
.../bindings/display/mediatek/mediatek,ovl-2l.yaml | 4 +
.../bindings/display/mediatek/mediatek,ovl.yaml | 8 +-
.../display/mediatek/mediatek,postmask.yaml | 4 +
.../bindings/display/mediatek/mediatek,rdma.yaml | 7 +-
.../bindings/display/msm/dpu-qcm2290.yaml | 4 +
.../bindings/display/msm/dpu-sc7180.yaml | 6 +-
.../bindings/display/msm/dpu-sc7280.yaml | 6 +-
.../bindings/display/msm/dpu-sdm845.yaml | 6 +-
.../bindings/display/msm/dsi-controller-main.yaml | 2 +-
.../bindings/display/msm/dsi-phy-10nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-14nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-20nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-28nm.yaml | 2 +-
.../bindings/display/msm/dsi-phy-common.yaml | 2 +-
.../bindings/display/panel/ilitek,ili9341.yaml | 1 -
.../bindings/display/panel/orisetech,otm8009a.yaml | 1 -
.../bindings/display/panel/panel-timing.yaml | 5 +
.../bindings/display/panel/raydium,rm67191.yaml | 1 +
.../bindings/display/panel/samsung,s6e8aa0.yaml | 1 +
.../devicetree/bindings/display/renesas,du.yaml | 23 -
.../bindings/display/rockchip/rockchip-vop2.yaml | 8 +-
.../display/sprd/sprd,display-subsystem.yaml | 1 -
.../devicetree/bindings/display/st,stm32-ltdc.yaml | 1 -
.../bindings/dma/allwinner,sun50i-a64-dma.yaml | 9 +-
.../devicetree/bindings/dma/altr,msgdma.yaml | 2 +-
.../devicetree/bindings/dma/arm,pl330.yaml | 3 +
.../devicetree/bindings/dma/fsl-imx-dma.txt | 8 +-
Documentation/devicetree/bindings/dma/mmp-dma.txt | 10 +-
.../bindings/dma/nvidia,tegra186-gpc-dma.yaml | 110 +
.../devicetree/bindings/dma/qcom,gpi.yaml | 3 +
.../devicetree/bindings/dma/renesas,rcar-dmac.yaml | 10 +-
.../bindings/dma/renesas,rzn1-dmamux.yaml | 51 +
.../bindings/dma/sifive,fu540-c000-pdma.yaml | 19 +-
.../bindings/dma/snps,dma-spear1340.yaml | 8 +-
Documentation/devicetree/bindings/dma/sprd-dma.txt | 7 +-
.../devicetree/bindings/dma/st,stm32-dmamux.yaml | 1 -
.../devicetree/bindings/dma/st,stm32-mdma.yaml | 1 -
.../devicetree/bindings/dma/xilinx/xilinx_dma.txt | 6 +-
.../bindings/dsp/mediatek,mt8195-dsp.yaml | 105 +
Documentation/devicetree/bindings/eeprom/at24.txt | 1 -
Documentation/devicetree/bindings/eeprom/at24.yaml | 4 +-
.../devicetree/bindings/example-schema.yaml | 14 +-
.../bindings/extcon/siliconmitus,sm5502-muic.yaml | 5 +-
.../devicetree/bindings/firmware/qcom,scm.txt | 3 +-
.../devicetree/bindings/gnss/brcm,bcm4751.yaml | 69 +
.../devicetree/bindings/gnss/mediatek.txt | 35 -
.../devicetree/bindings/gnss/mediatek.yaml | 59 +
.../bindings/gpio/fairchild,74hc595.yaml | 1 +
.../devicetree/bindings/gpio/gpio-altera.txt | 5 +-
.../bindings/gpio/gpio-consumer-common.yaml | 64 +
.../devicetree/bindings/gpio/gpio-pca95xx.yaml | 1 +
.../bindings/gpio/realtek,otto-gpio.yaml | 34 +-
.../bindings/gpio/renesas,rcar-gpio.yaml | 5 +
.../bindings/gpio/socionext,uniphier-gpio.yaml | 17 +
.../devicetree/bindings/gpu/samsung-rotator.yaml | 1 -
Documentation/devicetree/bindings/h8300/cpu.txt | 13 -
.../devicetree/bindings/hwmon/adt7475.yaml | 23 +-
Documentation/devicetree/bindings/hwmon/lm75.yaml | 1 +
.../bindings/hwmon/microchip,lan966x.yaml | 53 +
.../devicetree/bindings/hwmon/national,lm90.yaml | 20 +
.../devicetree/bindings/hwmon/nuvoton,nct6775.yaml | 57 +
.../devicetree/bindings/hwmon/ti,tmp401.yaml | 105 +
.../devicetree/bindings/hwmon/ti,tmp421.yaml | 7 +-
.../devicetree/bindings/hwmon/vexpress.txt | 2 +-
.../devicetree/bindings/i2c/i2c-gate.yaml | 1 -
.../devicetree/bindings/i2c/i2c-mt65xx.txt | 53 -
.../devicetree/bindings/i2c/i2c-mt65xx.yaml | 118 +
.../devicetree/bindings/i2c/i2c-mux-gpmux.yaml | 1 -
.../bindings/i2c/qcom,i2c-geni-qcom.yaml | 100 +
.../devicetree/bindings/i2c/qcom,i2c-qup.txt | 40 -
.../devicetree/bindings/i2c/qcom,i2c-qup.yaml | 89 +
.../devicetree/bindings/i2c/renesas,rcar-i2c.yaml | 2 +-
.../devicetree/bindings/i2c/renesas,riic.yaml | 2 +
.../bindings/i2c/samsung,s3c2410-i2c.yaml | 2 +-
.../devicetree/bindings/i3c/cdns,i3c-master.txt | 43 -
.../devicetree/bindings/i3c/cdns,i3c-master.yaml | 60 +
.../devicetree/bindings/i3c/snps,dw-i3c-master.txt | 41 -
.../bindings/i3c/snps,dw-i3c-master.yaml | 52 +
.../devicetree/bindings/iio/adc/adi,ad7291.yaml | 1 -
.../bindings/iio/adc/renesas,rzg2l-adc.yaml | 3 +-
.../bindings/iio/adc/sprd,sc2720-adc.yaml | 60 +-
.../devicetree/bindings/iio/adc/st,stm32-adc.yaml | 2 -
.../devicetree/bindings/iio/adc/ti,ads1015.yaml | 7 +-
.../devicetree/bindings/iio/dac/adi,ad3552r.yaml | 2 +-
.../devicetree/bindings/iio/dac/lltc,ltc1660.yaml | 2 +-
.../devicetree/bindings/iio/dac/lltc,ltc2632.yaml | 2 +-
.../bindings/iio/imu/invensense,mpu6050.yaml | 34 +-
.../devicetree/bindings/iio/imu/st,lsm6dsx.yaml | 38 +-
.../devicetree/bindings/iio/light/stk33xx.yaml | 6 +
.../iio/potentiometer/microchip,mcp4131.yaml | 2 +-
.../devicetree/bindings/iio/st,st-sensors.yaml | 1 +
.../input/allwinner,sun4i-a10-lradc-keys.yaml | 22 +
.../devicetree/bindings/input/azoteq,iqs7222.yaml | 960 +
.../bindings/input/google,cros-ec-keyb.yaml | 37 +-
.../devicetree/bindings/input/ilitek,ili2xxx.txt | 27 -
.../bindings/input/mediatek,mt6779-keypad.yaml | 2 +-
.../bindings/input/touchscreen/ilitek_ts_i2c.yaml | 7 +-
.../bindings/interconnect/qcom,bcm-voter.yaml | 8 +-
.../bindings/interconnect/qcom,osm-l3.yaml | 2 +-
.../bindings/interconnect/qcom,rpmh.yaml | 18 +-
.../bindings/interrupt-controller/arm,gic-v3.yaml | 8 +-
.../interrupt-controller/fsl,ls-extirq.txt | 53 -
.../interrupt-controller/fsl,ls-extirq.yaml | 118 +
.../bindings/interrupt-controller/qcom,pdc.txt | 6 +-
.../interrupt-controller/renesas,h8300h-intc.txt | 22 -
.../interrupt-controller/renesas,h8s-intc.txt | 22 -
.../devicetree/bindings/iommu/apple,sart.yaml | 52 +
.../devicetree/bindings/iommu/arm,smmu-v3.yaml | 16 +-
.../devicetree/bindings/iommu/arm,smmu.yaml | 25 +-
.../devicetree/bindings/iommu/mediatek,iommu.yaml | 34 +-
.../devicetree/bindings/iommu/samsung,sysmmu.yaml | 11 -
.../devicetree/bindings/iommu/xen,grant-dma.yaml | 39 +
.../bindings/leds/backlight/qcom-wled.yaml | 2 +-
.../devicetree/bindings/leds/kinetic,ktd2692.yaml | 87 +
.../bindings/leds/leds-class-multicolor.yaml | 2 +-
.../devicetree/bindings/leds/leds-ktd2692.txt | 50 -
.../devicetree/bindings/leds/leds-mt6360.yaml | 4 +-
.../bindings/leds/leds-pwm-multicolor.yaml | 79 +
.../devicetree/bindings/leds/leds-qcom-lpg.yaml | 174 +
.../devicetree/bindings/leds/regulator-led.yaml | 55 +
.../bindings/mailbox/amlogic,meson-gxbb-mhu.yaml | 1 -
.../devicetree/bindings/mailbox/mtk,adsp-mbox.yaml | 7 +-
.../bindings/mailbox/nvidia,tegra186-hsp.yaml | 9 +
.../devicetree/bindings/mailbox/qcom-ipcc.yaml | 30 +-
.../devicetree/bindings/mailbox/st,stm32-ipcc.yaml | 11 +-
.../bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt | 127 -
.../bindings/mailbox/xlnx,zynqmp-ipi-mailbox.yaml | 140 +
.../devicetree/bindings/media/i2c/adv7604.yaml | 3 +-
.../bindings/media/i2c/dongwoon,dw9807-vcm.txt | 9 -
.../bindings/media/i2c/dongwoon,dw9807-vcm.yaml | 41 +
.../devicetree/bindings/media/i2c/sony,imx412.yaml | 9 +
.../bindings/media/mediatek,vcodec-encoder.yaml | 3 +
.../media/mediatek,vcodec-subdev-decoder.yaml | 4 +-
.../devicetree/bindings/media/microchip,xisc.yaml | 3 +-
.../devicetree/bindings/media/rockchip,vdec.yaml | 4 +-
.../devicetree/bindings/media/rockchip-vpu.yaml | 1 +
.../bindings/media/video-interfaces.yaml | 1 +
.../bindings/memory-controllers/fsl/fsl,ddr.yaml | 6 -
.../ingenic,nemc-peripherals.yaml | 46 +
.../bindings/memory-controllers/ingenic,nemc.yaml | 32 -
.../memory-controllers/nvidia,tegra186-mc.yaml | 77 +-
.../memory-controllers/renesas,h8300-bsc.yaml | 35 -
.../memory-controllers/renesas,rpc-if.yaml | 6 +
.../memory-controllers/rockchip,rk3399-dmc.yaml | 384 +
Documentation/devicetree/bindings/mfd/da9063.txt | 9 +-
.../devicetree/bindings/mfd/fsl,imx8qxp-csr.yaml | 192 +
.../devicetree/bindings/mfd/google,cros-ec.yaml | 2 +-
.../devicetree/bindings/mfd/maxim,max77714.yaml | 2 +-
.../devicetree/bindings/mfd/mediatek,mt6360.yaml | 256 +
.../devicetree/bindings/mfd/qcom,spmi-pmic.txt | 2 +-
Documentation/devicetree/bindings/mfd/rk808.txt | 465 -
.../devicetree/bindings/mfd/rockchip,rk805.yaml | 219 +
.../devicetree/bindings/mfd/rockchip,rk808.yaml | 257 +
.../devicetree/bindings/mfd/rockchip,rk809.yaml | 284 +
.../devicetree/bindings/mfd/rockchip,rk817.yaml | 330 +
.../devicetree/bindings/mfd/rockchip,rk818.yaml | 282 +
.../bindings/mfd/samsung,exynos5433-lpass.yaml | 4 +-
Documentation/devicetree/bindings/mfd/syscon.yaml | 8 -
.../devicetree/bindings/mfd/wlf,arizona.yaml | 1 +
.../bindings/mmc/brcm,sdhci-brcmstb.yaml | 22 +-
.../devicetree/bindings/mmc/fsl-imx-esdhc.yaml | 31 +-
.../bindings/mmc/marvell,dove-sdhci.yaml | 44 +
.../bindings/mmc/marvell,orion-sdio.yaml | 44 +
.../bindings/mmc/marvell,xenon-sdhci.txt | 173 -
.../bindings/mmc/marvell,xenon-sdhci.yaml | 277 +
.../devicetree/bindings/mmc/mmc-controller.yaml | 5 +-
Documentation/devicetree/bindings/mmc/mtk-sd.yaml | 15 +-
.../bindings/mmc/nvidia,tegra20-sdhci.yaml | 7 +-
.../devicetree/bindings/mmc/orion-sdio.txt | 16 -
.../devicetree/bindings/mmc/sdhci-am654.yaml | 7 +
.../devicetree/bindings/mmc/sdhci-dove.txt | 14 -
.../devicetree/bindings/mmc/sdhci-msm.txt | 123 -
.../devicetree/bindings/mmc/sdhci-msm.yaml | 194 +
.../bindings/mmc/snps,dwcmshc-sdhci.yaml | 1 +
.../devicetree/bindings/mtd/aspeed-smc.txt | 51 -
Documentation/devicetree/bindings/mtd/common.txt | 1 -
Documentation/devicetree/bindings/mtd/elm.txt | 16 -
.../devicetree/bindings/mtd/gpmi-nand.yaml | 2 -
.../bindings/mtd/hisilicon,fmc-spi-nor.txt | 2 +-
.../devicetree/bindings/mtd/ingenic,nand.yaml | 1 +
.../devicetree/bindings/mtd/jedec,spi-nor.yaml | 8 -
.../bindings/mtd/partitions/fixed-partitions.yaml | 55 +-
.../devicetree/bindings/mtd/renesas-nandc.yaml | 5 +
.../devicetree/bindings/mtd/spi-nand.yaml | 1 +
Documentation/devicetree/bindings/mtd/ti,elm.yaml | 72 +
Documentation/devicetree/bindings/mux/reg-mux.yaml | 9 +-
.../devicetree/bindings/net/adi,adin.yaml | 18 +-
.../devicetree/bindings/net/asix,ax88178.yaml | 68 +
.../bindings/net/aspeed,ast2600-mdio.yaml | 6 +
.../devicetree/bindings/net/can/bosch,c_can.yaml | 3 -
.../devicetree/bindings/net/can/ctu,ctucanfd.yaml | 66 +
.../bindings/net/can/microchip,mcp251xfd.yaml | 19 +-
.../bindings/net/can/renesas,rcar-canfd.yaml | 5 +-
.../devicetree/bindings/net/cdns,macb.yaml | 10 +-
.../devicetree/bindings/net/dsa/brcm,b53.yaml | 115 +-
.../devicetree/bindings/net/dsa/microchip,ksz.yaml | 1 +
.../devicetree/bindings/net/dsa/nxp,sja1105.yaml | 1 +
.../devicetree/bindings/net/dsa/realtek.yaml | 1 +
.../devicetree/bindings/net/ethernet-phy.yaml | 9 +
.../devicetree/bindings/net/ingenic,mac.yaml | 1 +
.../bindings/net/marvell,orion-mdio.yaml | 60 +
.../devicetree/bindings/net/marvell-orion-mdio.txt | 54 -
.../devicetree/bindings/net/mediatek,net.yaml | 437 +
.../devicetree/bindings/net/mediatek-dwmac.yaml | 3 +
.../devicetree/bindings/net/mediatek-net.txt | 98 -
Documentation/devicetree/bindings/net/micrel.txt | 9 +
.../devicetree/bindings/net/microchip,lan95xx.yaml | 63 +
.../bindings/net/microchip,lan966x-switch.yaml | 8 +-
.../devicetree/bindings/net/mscc,miim.yaml | 61 +
.../devicetree/bindings/net/mscc-miim.txt | 26 -
.../devicetree/bindings/net/qcom,ipa.yaml | 7 +
.../devicetree/bindings/net/renesas,etheravb.yaml | 82 +-
.../devicetree/bindings/net/smsc,lan91c111.yaml | 61 +
.../devicetree/bindings/net/smsc-lan91c111.txt | 17 -
.../bindings/net/sunplus,sp7021-emac.yaml | 141 +
.../devicetree/bindings/net/ti,davinci-mdio.yaml | 1 +
.../devicetree/bindings/net/ti,k3-am654-cpts.yaml | 1 -
.../bindings/net/toshiba,visconti-dwmac.yaml | 3 +-
.../bindings/net/wireless/mediatek,mt76.yaml | 2 +-
.../bindings/net/wireless/qcom,ath11k.yaml | 363 +-
.../{staging => }/net/wireless/silabs,wfx.yaml | 3 +-
.../bindings/net/wireless/ti,wlcore.yaml | 2 +
.../devicetree/bindings/nvme/apple,nvme-ans.yaml | 110 +
.../devicetree/bindings/nvmem/apple,efuses.yaml | 50 +
.../bindings/nvmem/fsl,layerscape-sfp.yaml | 30 +-
.../devicetree/bindings/nvmem/snvs-lpgpr.yaml | 4 +
.../devicetree/bindings/opp/opp-v2-kryo-cpu.yaml | 56 +-
.../devicetree/bindings/pci/apple,pcie.yaml | 8 +-
.../devicetree/bindings/pci/layerscape-pci.txt | 65 +-
.../devicetree/bindings/pci/qcom,pcie.txt | 397 -
.../devicetree/bindings/pci/qcom,pcie.yaml | 714 +
.../devicetree/bindings/pci/rockchip-dw-pcie.yaml | 12 +-
.../devicetree/bindings/pci/snps,dw-pcie-ep.yaml | 6 +-
.../devicetree/bindings/pci/snps,dw-pcie.yaml | 2 +
.../bindings/pci/socionext,uniphier-pcie.yaml | 117 +
.../devicetree/bindings/pci/uniphier-pcie.txt | 82 -
.../devicetree/bindings/pci/xilinx-versal-cpm.yaml | 10 +-
.../devicetree/bindings/perf/arm,cmn.yaml | 2 +
.../devicetree/bindings/perf/spe-pmu.yaml | 40 +
.../phy/allwinner,sun6i-a31-mipi-dphy.yaml | 12 +
.../devicetree/bindings/phy/brcm,sata-phy.yaml | 10 +-
.../bindings/phy/marvell,armada-3700-utmi-phy.yaml | 2 +-
.../devicetree/bindings/phy/mixel,mipi-dsi-phy.txt | 29 -
.../bindings/phy/mixel,mipi-dsi-phy.yaml | 107 +
.../devicetree/bindings/phy/phy-stih407-usb.txt | 2 +-
.../devicetree/bindings/phy/qcom,qmp-phy.yaml | 4 +
.../bindings/phy/qcom,qmp-usb3-dp-phy.yaml | 2 +-
.../devicetree/bindings/phy/qcom,qusb2-phy.yaml | 2 +-
.../bindings/phy/qcom,usb-snps-femto-v2.yaml | 2 +-
.../devicetree/bindings/phy/renesas,usb2-phy.yaml | 1 +
.../bindings/phy/socionext,uniphier-ahci-phy.yaml | 91 +-
.../bindings/phy/socionext,uniphier-pcie-phy.yaml | 47 +-
.../bindings/phy/socionext,uniphier-usb2-phy.yaml | 3 +
.../phy/socionext,uniphier-usb3hs-phy.yaml | 89 +-
.../phy/socionext,uniphier-usb3ss-phy.yaml | 98 +-
.../bindings/pinctrl/aspeed,ast2500-pinctrl.yaml | 81 +-
.../bindings/pinctrl/aspeed,ast2600-pinctrl.yaml | 4 +-
.../bindings/pinctrl/canaan,k210-fpioa.yaml | 2 +
.../bindings/pinctrl/fsl,imx7d-pinctrl.txt | 87 -
.../bindings/pinctrl/fsl,imx7d-pinctrl.yaml | 113 +
.../devicetree/bindings/pinctrl/fsl,imxrt1170.yaml | 77 +
.../bindings/pinctrl/marvell,ac5-pinctrl.yaml | 72 +
.../bindings/pinctrl/mediatek,pinctrl-mt6795.yaml | 224 +
.../bindings/pinctrl/mscc,ocelot-pinctrl.txt | 42 -
.../bindings/pinctrl/mscc,ocelot-pinctrl.yaml | 116 +
.../devicetree/bindings/pinctrl/pincfg-node.yaml | 12 +-
.../bindings/pinctrl/pinctrl-mt8192.yaml | 155 +-
.../devicetree/bindings/pinctrl/pinctrl-rk805.txt | 2 +-
.../bindings/pinctrl/qcom,pmic-gpio.yaml | 287 +-
.../bindings/pinctrl/qcom,qcm2290-pinctrl.yaml | 3 +-
.../pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml | 115 +
.../bindings/pinctrl/qcom,sc7280-pinctrl.yaml | 3 +-
.../bindings/pinctrl/qcom,sm6115-pinctrl.yaml | 3 +-
...trl.yaml => qcom,sm8250-lpass-lpi-pinctrl.yaml} | 2 +-
.../bindings/pinctrl/qcom,sm8250-pinctrl.yaml | 3 +-
.../bindings/pinctrl/qcom,tlmm-common.yaml | 1 -
.../bindings/pinctrl/ralink,mt7620-pinctrl.yaml | 97 +
...2880-pinmux.yaml => ralink,mt7621-pinctrl.yaml} | 27 +-
.../bindings/pinctrl/ralink,rt2880-pinctrl.yaml | 68 +
.../bindings/pinctrl/ralink,rt305x-pinctrl.yaml | 89 +
.../bindings/pinctrl/ralink,rt3883-pinctrl.yaml | 71 +
.../bindings/pinctrl/renesas,rzg2l-pinctrl.yaml | 5 +-
.../bindings/pinctrl/rockchip,pinctrl.yaml | 4 +-
.../bindings/power/amlogic,meson-sec-pwrc.yaml | 1 -
.../devicetree/bindings/power/avs/qcom,cpr.yaml | 1 +
.../devicetree/bindings/power/qcom,rpmpd.yaml | 3 +
.../bindings/power/renesas,rcar-sysc.yaml | 16 +-
.../devicetree/bindings/power/supply/battery.yaml | 7 +-
.../bindings/power/supply/charger-manager.yaml | 1 +
.../bindings/power/supply/cw2015_battery.yaml | 1 -
.../bindings/power/supply/maxim,max77976.yaml | 2 +-
.../bindings/power/supply/power-supply.yaml | 1 -
.../bindings/power/supply/ti,lp8727.yaml | 1 -
.../bindings/power/supply/tps65217-charger.yaml | 2 +-
.../devicetree/bindings/powerpc/fsl/cache_sram.txt | 20 -
.../devicetree/bindings/powerpc/fsl/l2cache.txt | 6 -
.../devicetree/bindings/pwm/atmel,at91sam-pwm.yaml | 47 +
.../devicetree/bindings/pwm/atmel-pwm.txt | 35 -
.../bindings/pwm/google,cros-ec-pwm.yaml | 9 +-
.../devicetree/bindings/pwm/mediatek,pwm-disp.yaml | 75 +
.../devicetree/bindings/pwm/pwm-mediatek.txt | 1 +
.../devicetree/bindings/pwm/pwm-mtk-disp.txt | 45 -
.../devicetree/bindings/pwm/pwm-omap-dmtimer.txt | 2 +-
.../bindings/pwm/sunplus,sp7021-pwm.yaml | 42 +
.../bindings/regulator/mt6315-regulator.yaml | 6 +-
.../bindings/regulator/mt6358-regulator.txt | 22 +-
.../bindings/regulator/nxp,pca9450-regulator.yaml | 11 +
.../bindings/regulator/qcom,rpmh-regulator.yaml | 262 +-
.../bindings/regulator/qcom,smd-rpm-regulator.yaml | 5 +-
.../regulator/qcom,usb-vbus-regulator.yaml | 2 +-
.../regulator/richtek,rt4801-regulator.yaml | 21 +-
.../regulator/richtek,rt5759-regulator.yaml | 90 +
.../regulator/siliconmitus,sm5703-regulator.yaml | 49 +
.../regulator/socionext,uniphier-regulator.yaml | 58 +-
.../bindings/regulator/st,stm32-vrefbuf.yaml | 1 -
.../devicetree/bindings/regulator/vexpress.txt | 2 +-
.../bindings/remoteproc/fsl,imx-rproc.yaml | 9 +-
.../devicetree/bindings/remoteproc/mtk,scp.yaml | 57 +-
.../devicetree/bindings/remoteproc/qcom,adsp.yaml | 31 +
.../devicetree/bindings/remoteproc/qcom,q6v5.txt | 2 +-
.../bindings/remoteproc/qcom,wcnss-pil.txt | 2 +-
.../bindings/remoteproc/st,stm32-rproc.yaml | 16 +-
.../devicetree/bindings/reserved-memory/phram.yaml | 47 +
.../bindings/reserved-memory/ramoops.yaml | 1 -
.../devicetree/bindings/reset/altr,rst-mgr.yaml | 47 +
.../bindings/reset/amlogic,meson-axg-audio-arb.txt | 22 -
.../reset/amlogic,meson-axg-audio-arb.yaml | 56 +
.../bindings/reset/amlogic,meson-reset.yaml | 1 +
.../devicetree/bindings/reset/ath79-reset.txt | 20 -
.../devicetree/bindings/reset/berlin,reset.txt | 23 -
.../bindings/reset/bitmain,bm1880-reset.txt | 18 -
.../bindings/reset/bitmain,bm1880-reset.yaml | 36 +
.../bindings/reset/hisilicon,hi6220-reset.txt | 37 -
.../devicetree/bindings/reset/lantiq,reset.txt | 30 -
.../devicetree/bindings/reset/lantiq,reset.yaml | 49 +
.../bindings/reset/marvell,berlin2-reset.yaml | 38 +
.../devicetree/bindings/reset/microchip,rst.yaml | 1 -
.../bindings/reset/nuvoton,npcm-reset.txt | 32 -
.../bindings/reset/nuvoton,npcm750-reset.yaml | 50 +
.../bindings/reset/qca,ar7100-reset.yaml | 40 +
.../devicetree/bindings/reset/qcom,aoss-reset.yaml | 2 +-
.../devicetree/bindings/reset/qcom,pdc-global.yaml | 2 +-
.../devicetree/bindings/reset/renesas,rst.yaml | 1 +
.../bindings/reset/snps,axs10x-reset.txt | 33 -
.../bindings/reset/snps,axs10x-reset.yaml | 48 +
.../devicetree/bindings/reset/socfpga-reset.txt | 16 -
.../reset/socionext,uniphier-glue-reset.yaml | 52 +-
.../bindings/reset/st,sti-picophyreset.txt | 42 -
.../devicetree/bindings/reset/st,sti-powerdown.txt | 45 -
.../bindings/reset/st,stih407-picophyreset.yaml | 47 +
.../bindings/reset/st,stih407-powerdown.yaml | 49 +
.../devicetree/bindings/riscv/microchip.yaml | 2 +
.../devicetree/bindings/rng/intel,ixp46x-rng.yaml | 1 -
.../devicetree/bindings/rng/st,stm32-rng.yaml | 1 +
.../bindings/rtc/allwinner,sun6i-a31-rtc.yaml | 10 -
.../devicetree/bindings/rtc/nxp,pcf85063.txt | 1 +
.../devicetree/bindings/rtc/renesas,rzn1-rtc.yaml | 70 +
Documentation/devicetree/bindings/rtc/rtc.txt | 1 -
Documentation/devicetree/bindings/serial/8250.yaml | 1 +
.../devicetree/bindings/serial/fsl-lpuart.yaml | 4 +-
.../devicetree/bindings/serial/qcom,msm-uartdm.txt | 81 -
.../bindings/serial/qcom,msm-uartdm.yaml | 112 +
.../bindings/serial/qcom,serial-geni-qcom.yaml | 86 +
.../bindings/serial/renesas,em-uart.yaml | 37 +-
.../devicetree/bindings/serial/renesas,hscif.yaml | 9 +-
.../devicetree/bindings/serial/renesas,scif.yaml | 2 +-
.../devicetree/bindings/serial/rs485.yaml | 5 +
.../devicetree/bindings/serial/samsung_uart.yaml | 4 -
.../bindings/serial/socionext,uniphier-uart.yaml | 5 +-
.../devicetree/bindings/serial/sprd-uart.yaml | 2 +-
.../devicetree/bindings/serio/arm,pl050.yaml | 67 +
.../bindings/soc/amlogic/amlogic,canvas.yaml | 1 -
.../bindings/soc/fsl/fsl,layerscape-dcfg.yaml | 68 +
.../bindings/soc/fsl/fsl,layerscape-scfg.yaml | 58 +
.../bindings/soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 84 +
.../soc/imx/fsl,imx8mp-media-blk-ctrl.yaml | 104 +
.../bindings/soc/intel/intel,hps-copy-engine.yaml | 51 +
.../devicetree/bindings/soc/mediatek/pwrap.txt | 10 +-
.../devicetree/bindings/soc/qcom/qcom,geni-se.yaml | 102 +-
.../devicetree/bindings/soc/qcom/qcom,gsbi.txt | 87 -
.../devicetree/bindings/soc/qcom/qcom,gsbi.yaml | 132 +
.../bindings/soc/qcom/qcom,rpmh-rsc.yaml | 272 +
.../devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 12 +-
.../devicetree/bindings/soc/qcom/qcom,smd.txt | 98 -
.../devicetree/bindings/soc/qcom/qcom,smd.yaml | 135 +
.../devicetree/bindings/soc/qcom/qcom,smp2p.txt | 110 -
.../devicetree/bindings/soc/qcom/qcom,smp2p.yaml | 145 +
.../devicetree/bindings/soc/qcom/qcom,smsm.txt | 104 -
.../devicetree/bindings/soc/qcom/qcom,smsm.yaml | 138 +
.../devicetree/bindings/soc/qcom/qcom,wcnss.txt | 131 -
.../devicetree/bindings/soc/qcom/qcom,wcnss.yaml | 137 +
.../devicetree/bindings/soc/qcom/rpmh-rsc.txt | 137 -
.../{power => soc/renesas}/renesas,rzg2l-sysc.yaml | 7 +-
.../devicetree/bindings/soc/rockchip/grf.yaml | 3 +
.../bindings/soc/samsung/exynos-usi.yaml | 2 +-
.../devicetree/bindings/soc/ti/wkup-m3-ipc.yaml | 175 +
.../devicetree/bindings/soc/ti/wkup_m3_ipc.txt | 57 -
.../devicetree/bindings/sound/adi,adau1372.yaml | 1 -
.../devicetree/bindings/sound/adi,max98396.yaml | 79 +
.../bindings/sound/allwinner,sun4i-a10-i2s.yaml | 1 -
.../bindings/sound/amlogic,gx-sound-card.yaml | 1 -
.../devicetree/bindings/sound/arm,pl041.yaml | 62 +
.../bindings/sound/audio-graph-card2.yaml | 3 +
.../devicetree/bindings/sound/cirrus,cs35l41.yaml | 44 +-
.../devicetree/bindings/sound/cirrus,cs35l45.yaml | 75 +
.../devicetree/bindings/sound/fsl,micfil.txt | 1 +
.../devicetree/bindings/sound/imx-audio-hdmi.yaml | 3 +
.../devicetree/bindings/sound/maxim,max98390.yaml | 5 +
.../devicetree/bindings/sound/maxim,max98520.yaml | 1 -
.../devicetree/bindings/sound/mchp,spdifrx.yaml | 2 +-
.../devicetree/bindings/sound/mchp,spdiftx.yaml | 2 +-
.../sound/mt8192-mt6359-rt1015-rt5682.yaml | 32 +
.../sound/mt8195-mt6359-rt1011-rt5682.yaml | 51 -
...t6359-rt1019-rt5682.yaml => mt8195-mt6359.yaml} | 9 +-
.../bindings/sound/nvidia,tegra-audio-rt5640.yaml | 1 -
.../bindings/sound/nvidia,tegra186-asrc.yaml | 81 +
.../bindings/sound/nvidia,tegra210-ahub.yaml | 4 +
.../devicetree/bindings/sound/qcom,lpass-cpu.yaml | 17 +-
.../bindings/sound/qcom,lpass-rx-macro.yaml | 17 +-
.../bindings/sound/qcom,lpass-tx-macro.yaml | 17 +-
.../bindings/sound/qcom,lpass-va-macro.yaml | 11 +-
.../devicetree/bindings/sound/qcom,wcd938x.yaml | 3 +
.../devicetree/bindings/sound/realtek,rt1015p.yaml | 3 +
Documentation/devicetree/bindings/sound/rt5682.txt | 2 +
.../bindings/sound/samsung,aries-wm8994.yaml | 1 -
.../devicetree/bindings/sound/samsung,odroid.yaml | 1 -
.../devicetree/bindings/sound/serial-midi.yaml | 51 +
.../devicetree/bindings/sound/tas2562.yaml | 1 -
.../devicetree/bindings/sound/tas2770.yaml | 1 -
.../bindings/sound/{tas2764.yaml => tas27xx.yaml} | 17 +-
.../bindings/sound/ti,j721e-cpb-audio.yaml | 2 -
.../devicetree/bindings/sound/wlf,wm8731.yaml | 97 +
.../devicetree/bindings/sound/wlf,wm8940.yaml | 57 +
Documentation/devicetree/bindings/sound/wm8731.txt | 27 -
.../devicetree/bindings/soundwire/qcom,sdw.txt | 14 +
.../bindings/spi/allwinner,sun6i-a31-spi.yaml | 1 +
.../bindings/spi/amlogic,meson-gx-spicc.yaml | 1 -
.../bindings/spi/amlogic,meson6-spifc.yaml | 1 -
.../bindings/spi/aspeed,ast2600-fmc.yaml | 82 +
.../devicetree/bindings/spi/ingenic,spi.yaml | 3 +
.../bindings/spi/mediatek,spi-mt65xx.yaml | 4 +
.../bindings/spi/mediatek,spi-mtk-snfi.yaml | 88 +
.../devicetree/bindings/spi/qcom,spi-geni-qcom.txt | 39 -
.../bindings/spi/qcom,spi-geni-qcom.yaml | 116 +
.../bindings/spi/qcom,spi-qcom-qspi.yaml | 4 +-
.../devicetree/bindings/spi/qcom,spi-qup.txt | 103 -
.../devicetree/bindings/spi/qcom,spi-qup.yaml | 81 +
.../devicetree/bindings/spi/renesas,hspi.yaml | 1 -
.../devicetree/bindings/spi/renesas,rspi.yaml | 2 +
.../devicetree/bindings/spi/spi-davinci.txt | 2 +-
.../devicetree/bindings/spi/spi-pl022.yaml | 2 +-
.../bindings/spmi/qcom,spmi-pmic-arb.txt | 65 -
.../bindings/spmi/qcom,spmi-pmic-arb.yaml | 117 +
.../devicetree/bindings/thermal/qcom-lmh.yaml | 1 +
.../bindings/thermal/qcom-spmi-adc-tm5.yaml | 110 +-
.../devicetree/bindings/thermal/qcom-tsens.yaml | 6 +-
.../bindings/thermal/rcar-gen3-thermal.yaml | 1 -
.../devicetree/bindings/thermal/rzg2l-thermal.yaml | 2 +
.../bindings/thermal/ti,j72xx-thermal.yaml | 63 +
.../devicetree/bindings/timer/cdns,ttc.yaml | 1 -
.../devicetree/bindings/timer/hpe,gxp-timer.yaml | 47 +
.../bindings/timer/mediatek,mtk-timer.txt | 1 +
.../devicetree/bindings/timer/rda,8810pl-timer.txt | 20 -
.../bindings/timer/rda,8810pl-timer.yaml | 47 +
.../bindings/timer/renesas,16bit-timer.txt | 25 -
.../bindings/timer/renesas,8bit-timer.txt | 25 -
.../devicetree/bindings/timer/renesas,ostm.yaml | 2 +
.../bindings/timer/samsung,exynos4210-mct.yaml | 72 +-
.../devicetree/bindings/timer/ti,timer-dm.yaml | 152 +
.../devicetree/bindings/timer/ti,timer.txt | 44 -
.../devicetree/bindings/timer/xlnx,xps-timer.yaml | 92 +
.../timestamp/hardware-timestamps-common.yaml | 29 +
.../bindings/timestamp/hte-consumer.yaml | 39 +
.../bindings/timestamp/nvidia,tegra194-hte.yaml | 88 +
.../devicetree/bindings/trivial-devices.yaml | 12 +-
.../devicetree/bindings/ufs/cdns,ufshc.yaml | 3 +
.../devicetree/bindings/usb/am33xx-usb.txt | 7 +-
.../devicetree/bindings/usb/ci-hdrc-usb2.txt | 2 +-
.../devicetree/bindings/usb/da8xx-usb.txt | 5 +-
Documentation/devicetree/bindings/usb/dwc2.yaml | 11 +-
Documentation/devicetree/bindings/usb/dwc3-st.txt | 2 +-
.../devicetree/bindings/usb/dwc3-xilinx.yaml | 4 +
Documentation/devicetree/bindings/usb/ehci-st.txt | 2 +-
.../devicetree/bindings/usb/fcs,fsa4480.yaml | 72 +
.../devicetree/bindings/usb/generic-ehci.yaml | 1 +
.../devicetree/bindings/usb/generic-ohci.yaml | 1 +
.../bindings/usb/mediatek,mt6360-tcpc.yaml | 5 +
.../devicetree/bindings/usb/mediatek,mtu3.yaml | 1 +
Documentation/devicetree/bindings/usb/ohci-st.txt | 2 +-
.../devicetree/bindings/usb/qcom,dwc3.yaml | 229 +-
.../devicetree/bindings/usb/renesas,usbhs.yaml | 4 +
.../bindings/usb/samsung,exynos-usb2.yaml | 15 +-
.../devicetree/bindings/usb/smsc,usb3503.yaml | 3 +-
.../devicetree/bindings/usb/snps,dwc3.yaml | 2 +
.../devicetree/bindings/usb/ti,am62-usb.yaml | 103 +
.../devicetree/bindings/vendor-prefixes.yaml | 13 +
.../bindings/watchdog/allwinner,sun4i-a10-wdt.yaml | 25 +-
.../devicetree/bindings/watchdog/da9062-wdt.txt | 6 +
.../bindings/watchdog/faraday,ftwdt010.txt | 22 -
.../bindings/watchdog/faraday,ftwdt010.yaml | 67 +
.../bindings/watchdog/fsl-imx7ulp-wdt.yaml | 1 +
.../devicetree/bindings/watchdog/mtk-wdt.txt | 1 +
.../devicetree/bindings/watchdog/qcom-wdt.yaml | 39 +-
.../devicetree/bindings/watchdog/renesas,wdt.yaml | 12 +-
.../bindings/watchdog/socionext,uniphier-wdt.yaml | 2 +-
.../bindings/watchdog/sunplus,sp7021-wdt.yaml | 47 +
.../devicetree/bindings/writing-bindings.rst | 25 +
.../devicetree/bindings/writing-schema.rst | 8 +
Documentation/devicetree/overlay-notes.rst | 30 +-
Documentation/doc-guide/contributing.rst | 5 +-
Documentation/doc-guide/kernel-doc.rst | 2 +
Documentation/doc-guide/sphinx.rst | 5 +-
Documentation/dontdiff | 1 +
Documentation/driver-api/dmaengine/provider.rst | 8 +-
Documentation/driver-api/driver-model/devres.rst | 2 +-
Documentation/driver-api/firmware/fw_upload.rst | 126 +
Documentation/driver-api/firmware/index.rst | 1 +
Documentation/driver-api/gpio/driver.rst | 181 +-
Documentation/driver-api/hte/hte.rst | 79 +
Documentation/driver-api/hte/index.rst | 22 +
Documentation/driver-api/hte/tegra194-hte.rst | 49 +
Documentation/driver-api/index.rst | 2 +
Documentation/driver-api/libata.rst | 11 -
Documentation/driver-api/media/cec-core.rst | 13 +-
Documentation/driver-api/media/mc-core.rst | 13 +-
Documentation/driver-api/media/v4l2-subdev.rst | 69 +
Documentation/driver-api/pwm.rst | 6 +
Documentation/driver-api/serial/driver.rst | 2 +-
Documentation/driver-api/serial/index.rst | 2 -
Documentation/driver-api/serial/n_gsm.rst | 159 -
Documentation/driver-api/thermal/intel_dptf.rst | 2 +-
Documentation/{ => driver-api}/tty/index.rst | 22 +-
.../driver-api/{serial => tty}/moxa-smartio.rst | 0
Documentation/driver-api/tty/n_gsm.rst | 153 +
Documentation/{ => driver-api}/tty/n_tty.rst | 0
Documentation/{ => driver-api}/tty/tty_buffer.rst | 0
Documentation/{ => driver-api}/tty/tty_driver.rst | 0
.../{ => driver-api}/tty/tty_internals.rst | 0
Documentation/{ => driver-api}/tty/tty_ldisc.rst | 0
Documentation/{ => driver-api}/tty/tty_port.rst | 0
Documentation/{ => driver-api}/tty/tty_struct.rst | 0
Documentation/driver-api/vfio-mediated-device.rst | 31 +-
Documentation/fault-injection/fault-injection.rst | 14 +-
.../features/core/cBPF-JIT/arch-support.txt | 2 +-
.../features/core/eBPF-JIT/arch-support.txt | 2 +-
.../core/generic-idle-thread/arch-support.txt | 2 +-
.../features/core/jump-labels/arch-support.txt | 2 +-
.../core/thread-info-in-task/arch-support.txt | 2 +-
.../features/core/tracehook/arch-support.txt | 2 +-
.../features/debug/KASAN/arch-support.txt | 2 +-
.../debug/debug-vm-pgtable/arch-support.txt | 6 +-
.../debug/gcov-profile-all/arch-support.txt | 4 +-
Documentation/features/debug/kcov/arch-support.txt | 2 +-
Documentation/features/debug/kgdb/arch-support.txt | 2 +-
.../features/debug/kmemleak/arch-support.txt | 2 +-
.../debug/kprobes-on-ftrace/arch-support.txt | 2 +-
.../features/debug/kprobes/arch-support.txt | 2 +-
.../features/debug/kretprobes/arch-support.txt | 2 +-
.../features/debug/optprobes/arch-support.txt | 2 +-
.../features/debug/stackprotector/arch-support.txt | 2 +-
.../features/debug/uprobes/arch-support.txt | 2 +-
.../debug/user-ret-profiler/arch-support.txt | 2 +-
.../features/io/dma-contiguous/arch-support.txt | 2 +-
.../locking/cmpxchg-local/arch-support.txt | 2 +-
.../features/locking/lockdep/arch-support.txt | 2 +-
.../locking/queued-rwlocks/arch-support.txt | 4 +-
.../locking/queued-spinlocks/arch-support.txt | 2 +-
.../features/perf/kprobes-event/arch-support.txt | 4 +-
.../features/perf/perf-regs/arch-support.txt | 2 +-
.../features/perf/perf-stackdump/arch-support.txt | 2 +-
.../sched/membarrier-sync-core/arch-support.txt | 2 +-
.../features/sched/numa-balancing/arch-support.txt | 2 +-
.../seccomp/seccomp-filter/arch-support.txt | 2 +-
.../time/arch-tick-broadcast/arch-support.txt | 2 +-
.../features/time/clockevents/arch-support.txt | 2 +-
.../time/context-tracking/arch-support.txt | 4 +-
.../features/time/irq-time-acct/arch-support.txt | 2 +-
.../features/time/virt-cpuacct/arch-support.txt | 4 +-
.../features/vm/ELF-ASLR/arch-support.txt | 2 +-
.../features/vm/PG_uncached/arch-support.txt | 2 +-
Documentation/features/vm/THP/arch-support.txt | 2 +-
Documentation/features/vm/TLB/arch-support.txt | 2 +-
.../features/vm/huge-vmap/arch-support.txt | 2 +-
.../features/vm/ioremap_prot/arch-support.txt | 2 +-
.../features/vm/pte_special/arch-support.txt | 4 +-
Documentation/filesystems/caching/cachefiles.rst | 178 +
Documentation/filesystems/caching/netfs-api.rst | 4 +-
Documentation/filesystems/erofs.rst | 64 +-
Documentation/filesystems/fscrypt.rst | 2 +-
Documentation/filesystems/fsverity.rst | 37 +-
Documentation/filesystems/idmappings.rst | 5 +
Documentation/filesystems/locking.rst | 58 +-
Documentation/filesystems/netfs_library.rst | 75 +-
.../filesystems/nfs/client-identifier.rst | 216 +
Documentation/filesystems/nfs/index.rst | 2 +
Documentation/filesystems/porting.rst | 2 +-
Documentation/filesystems/proc.rst | 246 +-
Documentation/filesystems/vfs.rst | 103 +-
Documentation/filesystems/zonefs.rst | 52 +-
.../firmware-guide/acpi/chromeos-acpi-device.rst | 363 +
Documentation/firmware-guide/acpi/enumeration.rst | 28 +-
Documentation/firmware-guide/acpi/index.rst | 1 +
Documentation/fpga/dfl.rst | 5 +
Documentation/hwmon/aquacomputer_d5next.rst | 7 +-
Documentation/hwmon/asus_ec_sensors.rst | 25 +-
Documentation/hwmon/dell-smm-hwmon.rst | 9 +
Documentation/hwmon/hwmon-kernel-api.rst | 18 +-
Documentation/hwmon/index.rst | 2 +
Documentation/hwmon/lan966x.rst | 40 +
Documentation/hwmon/max16601.rst | 8 +
Documentation/hwmon/xdpe152c4.rst | 118 +
Documentation/i2c/writing-clients.rst | 13 +-
Documentation/ide/ChangeLog.ide-cd.1994-2004 | 268 -
Documentation/ide/ChangeLog.ide-floppy.1996-2002 | 63 -
Documentation/ide/ChangeLog.ide-tape.1995-2002 | 257 -
Documentation/ide/changelogs.rst | 17 -
Documentation/ide/ide-tape.rst | 68 -
Documentation/ide/ide.rst | 265 -
Documentation/ide/index.rst | 21 -
Documentation/ide/warm-plug-howto.rst | 18 -
Documentation/{ => images}/COPYING-logo | 8 +
Documentation/{ => images}/logo.gif | Bin
Documentation/images/logo.svg | 2040 +
Documentation/index.rst | 3 -
Documentation/input/devices/atarikbd.rst | 4 +-
Documentation/input/devices/ntrig.rst | 2 +-
Documentation/input/input-programming.rst | 6 +-
Documentation/kbuild/kconfig-language.rst | 6 +
Documentation/kbuild/reproducible-builds.rst | 8 +-
Documentation/kernel-hacking/hacking.rst | 36 +-
Documentation/kernel-hacking/locking.rst | 5 +-
Documentation/leds/leds-qcom-lpg.rst | 78 +
Documentation/loongarch/features.rst | 3 +
Documentation/loongarch/index.rst | 21 +
Documentation/loongarch/introduction.rst | 387 +
Documentation/loongarch/irq-chip-model.rst | 156 +
Documentation/misc-devices/index.rst | 1 +
Documentation/misc-devices/oxsemi-tornado.rst | 131 +
.../networking/device_drivers/appletalk/index.rst | 1 -
.../networking/device_drivers/appletalk/ltpc.rst | 144 -
.../device_drivers/can/ctu/ctucanfd-driver.rst | 639 +
.../device_drivers/can/ctu/fsm_txt_buffer_user.svg | 151 +
.../networking/device_drivers/can/index.rst | 1 +
.../device_drivers/ethernet/dec/de4x5.rst | 189 -
.../networking/device_drivers/ethernet/index.rst | 2 +-
.../device_drivers/ethernet/marvell/octeon_ep.rst | 35 +
Documentation/networking/device_drivers/index.rst | 1 -
.../networking/device_drivers/wan/index.rst | 18 -
.../networking/device_drivers/wan/z8530book.rst | 256 -
.../networking/device_drivers/wwan/index.rst | 1 +
.../networking/device_drivers/wwan/t7xx.rst | 120 +
.../networking/devlink/devlink-linecard.rst | 122 +
Documentation/networking/devlink/index.rst | 1 +
Documentation/networking/dsa/dsa.rst | 17 +
Documentation/networking/ethtool-netlink.rst | 8 +
Documentation/networking/index.rst | 5 +-
Documentation/networking/ip-sysctl.rst | 22 +
Documentation/networking/mptcp-sysctl.rst | 18 +
Documentation/networking/nf_conntrack-sysctl.rst | 5 +-
Documentation/networking/skbuff.rst | 37 +
Documentation/power/energy-model.rst | 24 +-
Documentation/powerpc/dawr-power9.rst | 26 +-
Documentation/powerpc/kasan.txt | 58 +
Documentation/process/3.Early-stage.rst | 9 +-
Documentation/process/changes.rst | 20 +-
.../process/embargoed-hardware-issues.rst | 7 +-
Documentation/process/maintainer-tip.rst | 14 +
Documentation/process/submitting-patches.rst | 14 +-
Documentation/riscv/vm-layout.rst | 36 +
Documentation/scheduler/sched-stats.rst | 8 +-
Documentation/security/IMA-templates.rst | 11 +-
Documentation/security/index.rst | 1 +
Documentation/security/keys/trusted-encrypted.rst | 60 +-
Documentation/security/landlock.rst | 17 +-
Documentation/security/secrets/coco.rst | 103 +
Documentation/security/secrets/index.rst | 9 +
Documentation/sound/alsa-configuration.rst | 4 +-
Documentation/sphinx/kerneldoc-preamble.sty | 14 +-
Documentation/tools/rtla/Makefile | 14 +-
Documentation/tools/rtla/common_appendix.rst | 3 +-
Documentation/trace/ftrace.rst | 12 +
Documentation/trace/timerlat-tracer.rst | 5 +-
Documentation/translations/ja_JP/SubmittingPatches | 36 +-
Documentation/translations/ja_JP/howto.rst | 44 +-
Documentation/translations/ja_JP/index.rst | 2 +-
.../zh_CN/admin-guide/mm/damon/reclaim.rst | 4 +-
.../zh_CN/admin-guide/mm/damon/usage.rst | 291 +-
.../zh_CN/dev-tools/gdb-kernel-debugging.rst | 167 +
.../translations/zh_CN/dev-tools/index.rst | 2 +-
.../translations/zh_CN/devicetree/usage-model.rst | 8 +-
Documentation/translations/zh_CN/index.rst | 3 +-
Documentation/translations/zh_CN/locking/index.rst | 42 +
.../translations/zh_CN/locking/spinlocks.rst | 149 +
.../translations/zh_CN/loongarch/features.rst | 8 +
.../translations/zh_CN/loongarch/index.rst | 26 +
.../translations/zh_CN/loongarch/introduction.rst | 351 +
.../zh_CN/loongarch/irq-chip-model.rst | 155 +
Documentation/translations/zh_CN/process/howto.rst | 2 +-
.../translations/zh_CN/scheduler/index.rst | 2 +
.../translations/zh_CN/scheduler/sched-debug.rst | 51 +
.../translations/zh_CN/scheduler/schedutil.rst | 165 +
.../translations/zh_CN/vm/damon/design.rst | 7 +-
Documentation/translations/zh_CN/vm/frontswap.rst | 196 +
Documentation/translations/zh_CN/vm/hmm.rst | 361 +
.../translations/zh_CN/vm/hugetlbfs_reserv.rst | 436 +
Documentation/translations/zh_CN/vm/hwpoison.rst | 166 +
Documentation/translations/zh_CN/vm/index.rst | 29 +-
.../translations/zh_CN/vm/memory-model.rst | 135 +
.../translations/zh_CN/vm/mmu_notifier.rst | 97 +
Documentation/translations/zh_CN/vm/numa.rst | 101 +
.../zh_CN/vm/overcommit-accounting.rst | 86 +
Documentation/translations/zh_CN/vm/page_frags.rst | 38 +
Documentation/translations/zh_CN/vm/page_owner.rst | 116 +
.../translations/zh_CN/vm/page_table_check.rst | 56 +
.../translations/zh_CN/vm/remap_file_pages.rst | 32 +
.../zh_CN/vm/split_page_table_lock.rst | 96 +
Documentation/translations/zh_CN/vm/z3fold.rst | 31 +
Documentation/translations/zh_CN/vm/zsmalloc.rst | 78 +
Documentation/usb/gadget-testing.rst | 1 +
Documentation/usb/usbmon.rst | 2 +-
Documentation/userspace-api/ioctl/cdrom.rst | 6 +
Documentation/userspace-api/landlock.rst | 180 +-
.../userspace-api/media/drivers/uvcvideo.rst | 2 +-
.../userspace-api/media/lirc.h.rst.exceptions | 2 +
.../media/mediactl/media-controller-model.rst | 6 +
.../userspace-api/media/mediactl/media-types.rst | 17 +-
.../userspace-api/media/v4l/dev-decoder.rst | 9 +-
.../media/v4l/ext-ctrls-codec-stateless.rst | 10 +-
.../userspace-api/media/v4l/ext-ctrls-codec.rst | 22 +
.../userspace-api/media/v4l/pixfmt-reserved.rst | 19 +
.../userspace-api/media/v4l/pixfmt-yuv-luma.rst | 14 +-
.../userspace-api/media/v4l/subdev-formats.rst | 156 +
.../userspace-api/media/v4l/vidioc-streamon.rst | 3 +-
Documentation/userspace-api/seccomp_filter.rst | 10 +
Documentation/virt/coco/sev-guest.rst | 155 +
Documentation/virt/index.rst | 1 +
Documentation/virt/kvm/api.rst | 254 +-
Documentation/virt/kvm/arm/hypercalls.rst | 138 +
Documentation/virt/kvm/arm/index.rst | 2 +-
Documentation/virt/kvm/arm/psci.rst | 77 -
Documentation/virt/kvm/x86/mmu.rst | 4 +
Documentation/vm/arch_pgtable_helpers.rst | 10 +-
Documentation/vm/bootmem.rst | 5 +
Documentation/vm/highmem.rst | 100 +-
Documentation/vm/index.rst | 41 +-
Documentation/vm/oom.rst | 5 +
Documentation/vm/page_allocation.rst | 5 +
Documentation/vm/page_cache.rst | 5 +
Documentation/vm/page_owner.rst | 45 +-
Documentation/vm/page_reclaim.rst | 5 +
Documentation/vm/page_tables.rst | 5 +
Documentation/vm/physical_memory.rst | 5 +
Documentation/vm/process_addrs.rst | 5 +
Documentation/vm/shmfs.rst | 5 +
Documentation/vm/slab.rst | 5 +
Documentation/vm/slub.rst | 64 +
Documentation/vm/swap.rst | 5 +
Documentation/vm/vmalloc.rst | 5 +
Documentation/vm/vmemmap_dedup.rst | 223 +
Documentation/w1/slaves/w1_therm.rst | 9 +-
Documentation/x86/cpuinfo.rst | 5 +-
Documentation/x86/exception-tables.rst | 23 +-
Documentation/x86/ifs.rst | 2 +
Documentation/x86/index.rst | 4 +-
Documentation/x86/intel-iommu.rst | 115 -
Documentation/x86/iommu.rst | 151 +
Documentation/x86/tdx.rst | 218 +
Documentation/x86/x86_64/boot-options.rst | 23 +-
Documentation/x86/zero-page.rst | 2 +
MAINTAINERS | 549 +-
Makefile | 31 +-
arch/Kconfig | 43 +-
arch/alpha/include/asm/page.h | 2 +-
arch/alpha/include/asm/timex.h | 1 +
arch/alpha/include/uapi/asm/socket.h | 2 +
arch/alpha/include/uapi/asm/termbits.h | 214 +-
arch/alpha/kernel/osf_sys.c | 1 +
arch/alpha/kernel/process.c | 15 +-
arch/alpha/lib/csum_partial_copy.c | 1 -
arch/arc/Kconfig | 2 +
arch/arc/include/asm/perf_event.h | 4 +
arch/arc/include/asm/ptrace.h | 27 +
arch/arc/include/asm/syscall.h | 2 +
arch/arc/include/asm/thread_info.h | 5 +-
arch/arc/include/uapi/asm/bpf_perf_event.h | 9 +
arch/arc/kernel/disasm.c | 64 +-
arch/arc/kernel/entry.S | 12 +-
arch/arc/kernel/process.c | 13 +-
arch/arc/kernel/ptrace.c | 140 +-
arch/arm/Kconfig | 136 +-
arch/arm/Kconfig.debug | 28 +-
arch/arm/Makefile | 14 +-
.../uncompress.h => boot/compressed/misc-ep93xx.h} | 70 +-
arch/arm/boot/compressed/misc.c | 4 +
arch/arm/boot/dts/Makefile | 57 +-
arch/arm/boot/dts/am335x-baltos.dtsi | 2 +-
arch/arm/boot/dts/am335x-bone-common.dtsi | 4 +
arch/arm/boot/dts/am335x-evm.dts | 4 +
arch/arm/boot/dts/am335x-evmsk.dts | 4 +
arch/arm/boot/dts/am335x-guardian.dts | 376 +-
arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi | 2 +-
arch/arm/boot/dts/am335x-moxa-uc-8100-common.dtsi | 2 +-
arch/arm/boot/dts/am335x-myirtech-myc.dtsi | 12 +-
arch/arm/boot/dts/am335x-myirtech-myd.dts | 20 +-
arch/arm/boot/dts/am335x-phycore-som.dtsi | 2 +-
arch/arm/boot/dts/am335x-sl50.dts | 2 +-
arch/arm/boot/dts/am33xx-clocks.dtsi | 373 +-
arch/arm/boot/dts/am33xx.dtsi | 3 +
arch/arm/boot/dts/am35xx-clocks.dtsi | 52 +-
arch/arm/boot/dts/am3874-iceboard.dts | 2 +-
arch/arm/boot/dts/am437x-cm-t43.dts | 2 +-
arch/arm/boot/dts/am437x-gp-evm.dts | 5 +
arch/arm/boot/dts/am437x-idk-evm.dts | 2 +-
arch/arm/boot/dts/am437x-sk-evm.dts | 6 +-
arch/arm/boot/dts/am43x-epos-evm.dts | 6 +-
arch/arm/boot/dts/am43xx-clocks.dtsi | 339 +-
arch/arm/boot/dts/am574x-idk.dts | 2 +-
arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 2 +-
arch/arm/boot/dts/am57xx-idk-common.dtsi | 2 +-
arch/arm/boot/dts/armada-370-db.dts | 2 +-
.../dts/armada-370-seagate-personal-cloud.dtsi | 2 +-
arch/arm/boot/dts/armada-370-synology-ds213j.dts | 2 +-
arch/arm/boot/dts/armada-375-db.dts | 2 +-
arch/arm/boot/dts/armada-381-netgear-gs110emx.dts | 2 +-
arch/arm/boot/dts/armada-385-atl-x530.dts | 2 +-
arch/arm/boot/dts/armada-385-clearfog-gtr.dtsi | 2 +-
arch/arm/boot/dts/armada-385-db-88f6820-amc.dts | 2 +-
arch/arm/boot/dts/armada-385-db-ap.dts | 2 +-
arch/arm/boot/dts/armada-385-synology-ds116.dts | 2 +-
arch/arm/boot/dts/armada-385-turris-omnia.dts | 8 +-
arch/arm/boot/dts/armada-388-db.dts | 2 +-
arch/arm/boot/dts/armada-388-gp.dts | 2 +-
arch/arm/boot/dts/armada-388-rd.dts | 2 +-
.../arm/boot/dts/armada-38x-solidrun-microsom.dtsi | 2 +-
arch/arm/boot/dts/armada-390-db.dts | 2 +-
arch/arm/boot/dts/armada-398-db.dts | 2 +-
arch/arm/boot/dts/armada-xp-axpwifiap.dts | 2 +-
arch/arm/boot/dts/armada-xp-crs305-1g-4s-bit.dts | 2 +-
arch/arm/boot/dts/armada-xp-crs305-1g-4s.dtsi | 2 +-
arch/arm/boot/dts/armada-xp-crs326-24g-2s-bit.dts | 2 +-
arch/arm/boot/dts/armada-xp-crs326-24g-2s.dtsi | 2 +-
.../boot/dts/armada-xp-crs328-4c-20s-4s-bit.dts | 2 +-
arch/arm/boot/dts/armada-xp-crs328-4c-20s-4s.dtsi | 2 +-
arch/arm/boot/dts/armada-xp-db-dxbc2.dts | 2 +-
arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts | 2 +-
arch/arm/boot/dts/armada-xp-db.dts | 2 +-
arch/arm/boot/dts/armada-xp-gp.dts | 2 +-
arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 2 +-
arch/arm/boot/dts/armada-xp-synology-ds414.dts | 2 +-
arch/arm/boot/dts/aspeed-ast2600-evb.dts | 39 +-
arch/arm/boot/dts/aspeed-bmc-asrock-romed8hm3.dts | 4 +-
.../arm/boot/dts/aspeed-bmc-facebook-bletchley.dts | 182 +-
arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts | 2 +-
arch/arm/boot/dts/aspeed-bmc-nuvia-dc-scm.dts | 190 +
arch/arm/boot/dts/aspeed-g4.dtsi | 16 +-
arch/arm/boot/dts/aspeed-g5.dtsi | 16 +-
arch/arm/boot/dts/aspeed-g6-pinctrl.dtsi | 10 +-
arch/arm/boot/dts/aspeed-g6.dtsi | 52 +-
arch/arm/boot/dts/at91-sama7g5ek.dts | 21 +-
arch/arm/boot/dts/at91sam9261ek.dts | 4 +
arch/arm/boot/dts/at91sam9263ek.dts | 4 +
arch/arm/boot/dts/at91sam9rlek.dts | 4 +
arch/arm/boot/dts/bcm-cygnus.dtsi | 12 +-
arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 21 +-
arch/arm/boot/dts/bcm2835-rpi-a.dts | 35 +-
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 19 +-
arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 35 +-
arch/arm/boot/dts/bcm2835-rpi-b.dts | 48 +-
arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts | 1 -
arch/arm/boot/dts/bcm2835-rpi-zero-w.dts | 25 +-
arch/arm/boot/dts/bcm2835-rpi-zero.dts | 29 +-
arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 3 +-
arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts | 1 -
arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 5 +-
arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 3 +-
arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts | 5 +-
arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi | 12 +-
arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi | 2 +-
arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi | 2 +-
.../dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi | 192 +
arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp.dts | 26 +
arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp2.dts | 26 +
arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts | 19 +-
arch/arm/boot/dts/bcm47622.dtsi | 126 +
arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 2 +-
arch/arm/boot/dts/bcm5301x.dtsi | 2 +-
arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts | 2 +-
arch/arm/boot/dts/bcm947622.dts | 30 +
arch/arm/boot/dts/bcm953012er.dts | 2 +-
arch/arm/boot/dts/bcm953012hr.dts | 2 +-
arch/arm/boot/dts/bcm953012k.dts | 2 +-
arch/arm/boot/dts/bcm958522er.dts | 2 +-
arch/arm/boot/dts/bcm958525er.dts | 2 +-
arch/arm/boot/dts/bcm958525xmc.dts | 2 +-
arch/arm/boot/dts/bcm958622hr.dts | 2 +-
arch/arm/boot/dts/bcm958623hr.dts | 2 +-
arch/arm/boot/dts/bcm958625hr.dts | 2 +-
arch/arm/boot/dts/bcm958625k.dts | 2 +-
arch/arm/boot/dts/bcm988312hr.dts | 2 +-
arch/arm/boot/dts/da850.dtsi | 2 +
arch/arm/boot/dts/dm814x.dtsi | 3 +
arch/arm/boot/dts/dm816x.dtsi | 3 +
arch/arm/boot/dts/dove-cubox.dts | 2 +-
arch/arm/boot/dts/dove-d2plug.dts | 2 +-
arch/arm/boot/dts/dove-d3plug.dts | 2 +-
arch/arm/boot/dts/dove-dove-db.dts | 2 +-
arch/arm/boot/dts/dra7-evm-common.dtsi | 2 +-
arch/arm/boot/dts/dra72-evm-common.dtsi | 2 +-
arch/arm/boot/dts/dra76-evm.dts | 2 +-
arch/arm/boot/dts/dra7xx-clocks.dtsi | 693 +-
arch/arm/boot/dts/exynos3250.dtsi | 7 +-
arch/arm/boot/dts/exynos4.dtsi | 10 +-
arch/arm/boot/dts/exynos4210-universal_c210.dts | 2 -
arch/arm/boot/dts/exynos4412-odroidu3.dts | 4 +-
arch/arm/boot/dts/exynos4412-odroidx.dts | 8 +-
arch/arm/boot/dts/exynos5250-smdk5250.dts | 4 +-
arch/arm/boot/dts/exynos5250.dtsi | 16 +-
arch/arm/boot/dts/exynos5260.dtsi | 3 +-
arch/arm/boot/dts/exynos5410-odroidxu.dts | 4 +-
arch/arm/boot/dts/exynos5410.dtsi | 4 -
arch/arm/boot/dts/exynos5420.dtsi | 10 -
arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 7 +-
arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts | 6 +-
arch/arm/boot/dts/exynos5422-odroidxu3.dts | 6 +-
arch/arm/boot/dts/exynos54xx.dtsi | 3 +-
arch/arm/boot/dts/hpe-bmc-dl360gen10.dts | 26 +
arch/arm/boot/dts/hpe-gxp.dtsi | 127 +
arch/arm/boot/dts/imx27.dtsi | 2 +-
arch/arm/boot/dts/imx28-evk.dts | 2 +-
arch/arm/boot/dts/imx28-m28evk.dts | 2 +-
arch/arm/boot/dts/imx28-sps1.dts | 2 +-
arch/arm/boot/dts/imx51-digi-connectcore-jsk.dts | 8 +
arch/arm/boot/dts/imx51-digi-connectcore-som.dtsi | 25 +-
arch/arm/boot/dts/imx51.dtsi | 6 +
arch/arm/boot/dts/imx6dl-colibri-aster.dts | 113 +
arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts | 110 +-
arch/arm/boot/dts/imx6dl-colibri-iris-v2.dts | 46 +
arch/arm/boot/dts/imx6dl-colibri-iris.dts | 152 +
arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts | 31 -
arch/arm/boot/dts/imx6dl-eckelmann-ci4x10.dts | 6 +-
arch/arm/boot/dts/imx6dl-plybas.dts | 2 +-
arch/arm/boot/dts/imx6dl-rex-basic.dts | 2 +-
arch/arm/boot/dts/imx6dl-victgo.dts | 657 +-
arch/arm/boot/dts/imx6dl-vicut1.dts | 1 +
arch/arm/boot/dts/imx6q-ba16.dtsi | 2 +-
arch/arm/boot/dts/imx6q-bosch-acc.dts | 779 +
arch/arm/boot/dts/imx6q-bx50v3.dtsi | 2 +-
arch/arm/boot/dts/imx6q-cm-fx6.dts | 2 +-
arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts | 2 +-
arch/arm/boot/dts/imx6q-dms-ba16.dts | 2 +-
arch/arm/boot/dts/imx6q-gw5400-a.dts | 2 +-
arch/arm/boot/dts/imx6q-marsboard.dts | 2 +-
arch/arm/boot/dts/imx6q-rex-pro.dts | 2 +-
arch/arm/boot/dts/imx6q-vicut1.dts | 5 +-
arch/arm/boot/dts/imx6qdl-aristainetos.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi | 44 -
arch/arm/boot/dts/imx6qdl-colibri.dtsi | 771 +-
arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi | 4 +-
arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-sabresd.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-sr-som.dtsi | 10 +
arch/arm/boot/dts/imx6qdl-tx6.dtsi | 5 -
arch/arm/boot/dts/imx6qdl-udoo.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl-vicut1-12inch.dtsi | 128 +
arch/arm/boot/dts/imx6qdl-vicut1.dtsi | 261 +-
arch/arm/boot/dts/imx6qp-vicutp.dts | 1 +
arch/arm/boot/dts/imx6sl-evk.dts | 2 +-
arch/arm/boot/dts/imx6sl.dtsi | 2 +-
arch/arm/boot/dts/imx6sx-nitrogen6sx.dts | 2 +-
arch/arm/boot/dts/imx6sx-sdb-reva.dts | 4 +-
arch/arm/boot/dts/imx6sx-sdb.dts | 4 +-
arch/arm/boot/dts/imx6ul-14x14-evk.dtsi | 2 +-
arch/arm/boot/dts/imx6ul-kontron-n6310-som.dtsi | 2 +-
arch/arm/boot/dts/imx6ul-kontron-n6311-som.dtsi | 2 +-
arch/arm/boot/dts/imx6ul-kontron-n6x1x-s.dtsi | 2 +-
.../boot/dts/imx6ul-kontron-n6x1x-som-common.dtsi | 2 +-
.../boot/dts/imx6ul-phytec-segin-peb-av-02.dtsi | 3 +-
arch/arm/boot/dts/imx6ul-tqma6ul-common.dtsi | 211 +
arch/arm/boot/dts/imx6ul-tqma6ul1-mba6ulx.dts | 55 +
arch/arm/boot/dts/imx6ul-tqma6ul1.dtsi | 37 +
arch/arm/boot/dts/imx6ul-tqma6ul2-mba6ulx.dts | 15 +
arch/arm/boot/dts/imx6ul-tqma6ul2.dtsi | 71 +
arch/arm/boot/dts/imx6ul-tqma6ul2l-mba6ulx.dts | 15 +
arch/arm/boot/dts/imx6ul-tqma6ul2l.dtsi | 71 +
arch/arm/boot/dts/imx6ul-tqma6ulx-common.dtsi | 43 +
arch/arm/boot/dts/imx6ul-tqma6ulxl-common.dtsi | 48 +
arch/arm/boot/dts/imx6ull-colibri-aster.dts | 20 +
arch/arm/boot/dts/imx6ull-colibri-aster.dtsi | 145 +
arch/arm/boot/dts/imx6ull-colibri-emmc-aster.dts | 17 +
arch/arm/boot/dts/imx6ull-colibri-emmc-iris-v2.dts | 17 +
arch/arm/boot/dts/imx6ull-colibri-emmc-iris.dts | 17 +
.../arm/boot/dts/imx6ull-colibri-emmc-nonwifi.dtsi | 8 +-
arch/arm/boot/dts/imx6ull-colibri-eval-v3.dts | 6 +-
arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi | 63 +-
arch/arm/boot/dts/imx6ull-colibri-iris-v2.dts | 65 +
arch/arm/boot/dts/imx6ull-colibri-iris-v2.dtsi | 27 +
arch/arm/boot/dts/imx6ull-colibri-iris.dts | 20 +
arch/arm/boot/dts/imx6ull-colibri-iris.dtsi | 132 +
arch/arm/boot/dts/imx6ull-colibri-nonwifi.dtsi | 145 +-
arch/arm/boot/dts/imx6ull-colibri-wifi-aster.dts | 20 +
arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dts | 4 +-
arch/arm/boot/dts/imx6ull-colibri-wifi-iris-v2.dts | 65 +
arch/arm/boot/dts/imx6ull-colibri-wifi-iris.dts | 20 +
arch/arm/boot/dts/imx6ull-colibri-wifi.dtsi | 144 +-
arch/arm/boot/dts/imx6ull-colibri.dtsi | 285 +-
arch/arm/boot/dts/imx6ull-kontron-n6411-som.dtsi | 2 +-
arch/arm/boot/dts/imx6ull-phytec-tauri-emmc.dts | 20 +
arch/arm/boot/dts/imx6ull-phytec-tauri-nand.dts | 20 +
arch/arm/boot/dts/imx6ull-phytec-tauri.dtsi | 588 +
arch/arm/boot/dts/imx6ull-tqma6ull2-mba6ulx.dts | 15 +
arch/arm/boot/dts/imx6ull-tqma6ull2.dtsi | 76 +
arch/arm/boot/dts/imx6ull-tqma6ull2l-mba6ulx.dts | 15 +
arch/arm/boot/dts/imx6ull-tqma6ull2l.dtsi | 76 +
arch/arm/boot/dts/imx7d-smegw01.dts | 469 +
arch/arm/boot/dts/imx7s.dtsi | 2 +-
arch/arm/boot/dts/imxrt1050-evk.dts | 72 +
arch/arm/boot/dts/imxrt1050.dtsi | 160 +
arch/arm/boot/dts/keystone-k2e-evm.dts | 4 +-
arch/arm/boot/dts/keystone-k2g-evm.dts | 2 +-
arch/arm/boot/dts/keystone-k2g-ice.dts | 2 +-
arch/arm/boot/dts/keystone-k2hk-evm.dts | 4 +-
arch/arm/boot/dts/keystone-k2l-evm.dts | 4 +-
arch/arm/boot/dts/kirkwood-dir665.dts | 2 +-
arch/arm/boot/dts/kirkwood-synology.dtsi | 2 +-
.../dts/lan966x-kontron-kswitch-d10-mmt-6g-2gs.dts | 94 +
.../dts/lan966x-kontron-kswitch-d10-mmt-8g.dts | 39 +
.../boot/dts/lan966x-kontron-kswitch-d10-mmt.dtsi | 190 +
arch/arm/boot/dts/lan966x-pcb8291.dts | 2 +-
arch/arm/boot/dts/lan966x.dtsi | 353 +-
arch/arm/boot/dts/logicpd-som-lv.dtsi | 10 +-
arch/arm/boot/dts/ls1021a-iot.dts | 227 +
arch/arm/boot/dts/ls1021a.dtsi | 6 +-
arch/arm/boot/dts/mba6ulx.dtsi | 569 +
arch/arm/boot/dts/meson8-minix-neo-x8.dts | 2 +-
arch/arm/boot/dts/mmp2.dtsi | 2 +
arch/arm/boot/dts/mt2701.dtsi | 2 -
arch/arm/boot/dts/mt7623n.dtsi | 5 -
arch/arm/boot/dts/nspire-classic.dtsi | 10 +-
arch/arm/boot/dts/nspire-cx.dts | 4 +-
arch/arm/boot/dts/nspire.dtsi | 60 +-
arch/arm/boot/dts/nuvoton-npcm730-gbs.dts | 6 +-
arch/arm/boot/dts/nuvoton-npcm730-gsj.dts | 2 +-
arch/arm/boot/dts/nuvoton-npcm730-kudo.dts | 6 +-
arch/arm/boot/dts/nuvoton-npcm750-evb.dts | 8 +-
.../boot/dts/nuvoton-npcm750-runbmc-olympus.dts | 6 +-
arch/arm/boot/dts/omap3-beagle-xm.dts | 2 +-
arch/arm/boot/dts/omap3430es1-clocks.dtsi | 184 +-
arch/arm/boot/dts/omap34xx-omap36xx-clocks.dtsi | 275 +-
.../omap36xx-am35xx-omap3430es2plus-clocks.dtsi | 79 +-
arch/arm/boot/dts/omap36xx-clocks.dtsi | 17 +-
.../boot/dts/omap36xx-omap3430es2plus-clocks.dtsi | 136 +-
arch/arm/boot/dts/omap3xxx-clocks.dtsi | 2044 +-
arch/arm/boot/dts/omap4-panda-common.dtsi | 2 +-
arch/arm/boot/dts/omap443x-clocks.dtsi | 1 +
arch/arm/boot/dts/omap446x-clocks.dtsi | 2 +
arch/arm/boot/dts/omap44xx-clocks.dtsi | 173 +-
arch/arm/boot/dts/omap5-igep0050.dts | 2 +-
arch/arm/boot/dts/omap5-uevm.dts | 2 +-
arch/arm/boot/dts/omap54xx-clocks.dtsi | 160 +-
arch/arm/boot/dts/ox820.dtsi | 2 +-
arch/arm/boot/dts/pxa25x.dtsi | 5 +-
arch/arm/boot/dts/pxa27x.dtsi | 5 +-
arch/arm/boot/dts/pxa3xx.dtsi | 5 +-
arch/arm/boot/dts/qcom-apq8026-asus-sparrow.dts | 294 +
...dts => qcom-apq8064-sony-xperia-lagan-yuga.dts} | 0
arch/arm/boot/dts/qcom-apq8064.dtsi | 16 +-
arch/arm/boot/dts/qcom-apq8074-dragonboard.dts | 582 +-
arch/arm/boot/dts/qcom-apq8084.dtsi | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi | 4 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c1.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1.dtsi | 4 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1.dtsi | 4 +-
arch/arm/boot/dts/qcom-ipq4019.dtsi | 44 +-
arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi | 2 +-
arch/arm/boot/dts/qcom-ipq8064.dtsi | 12 +-
arch/arm/boot/dts/qcom-mdm9615.dtsi | 4 +-
arch/arm/boot/dts/qcom-msm8226.dtsi | 9 +
arch/arm/boot/dts/qcom-msm8660.dtsi | 1 +
arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts | 409 -
.../dts/qcom-msm8974-lge-nexus5-hammerhead.dts | 1052 +-
arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts | 908 -
.../boot/dts/qcom-msm8974-sony-xperia-amami.dts | 435 -
.../boot/dts/qcom-msm8974-sony-xperia-castor.dts | 723 -
.../boot/dts/qcom-msm8974-sony-xperia-honami.dts | 484 -
.../dts/qcom-msm8974-sony-xperia-rhine-amami.dts | 13 +
.../dts/qcom-msm8974-sony-xperia-rhine-honami.dts | 7 +
.../boot/dts/qcom-msm8974-sony-xperia-rhine.dtsi | 457 +
arch/arm/boot/dts/qcom-msm8974.dtsi | 1916 +-
.../arm/boot/dts/qcom-msm8974pro-fairphone-fp2.dts | 432 +
arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts | 813 +
.../qcom-msm8974pro-sony-xperia-shinano-castor.dts | 608 +
arch/arm/boot/dts/qcom-msm8974pro.dtsi | 32 +-
arch/arm/boot/dts/qcom-pm8226.dtsi | 41 +
arch/arm/boot/dts/qcom-pm8941.dtsi | 2 +-
arch/arm/boot/dts/qcom-pmx65.dtsi | 32 +
arch/arm/boot/dts/qcom-sdx55.dtsi | 20 +-
arch/arm/boot/dts/qcom-sdx65-mtp.dts | 221 +
arch/arm/boot/dts/qcom-sdx65.dtsi | 193 +-
arch/arm/boot/dts/r8a7743.dtsi | 1 +
arch/arm/boot/dts/r8a7744.dtsi | 1 +
arch/arm/boot/dts/r8a7745.dtsi | 1 +
arch/arm/boot/dts/r8a77470.dtsi | 1 +
arch/arm/boot/dts/r8a7790.dtsi | 1 +
arch/arm/boot/dts/r8a7791.dtsi | 1 +
arch/arm/boot/dts/r8a7792.dtsi | 1 +
arch/arm/boot/dts/r8a7793.dtsi | 1 +
arch/arm/boot/dts/r8a7794.dtsi | 1 +
arch/arm/boot/dts/r9a06g032.dtsi | 113 +-
arch/arm/boot/dts/rk3036.dtsi | 6 +-
arch/arm/boot/dts/rk3066a.dtsi | 3 +-
arch/arm/boot/dts/rk3188-bqedison2qc.dts | 3 +-
arch/arm/boot/dts/rk3188.dtsi | 3 +-
arch/arm/boot/dts/rk322x.dtsi | 4 +-
arch/arm/boot/dts/rk3288.dtsi | 2 +
arch/arm/boot/dts/rv1108.dtsi | 31 +-
arch/arm/boot/dts/s5pv210-aquila.dts | 3 +-
arch/arm/boot/dts/s5pv210-aries.dtsi | 11 +-
arch/arm/boot/dts/s5pv210-goni.dts | 6 +-
arch/arm/boot/dts/s5pv210.dtsi | 46 +-
arch/arm/boot/dts/sam9x60.dtsi | 2 +-
arch/arm/boot/dts/sama7g5.dtsi | 27 +-
arch/arm/boot/dts/socfpga.dtsi | 4 +-
arch/arm/boot/dts/socfpga_arria10.dtsi | 4 +-
arch/arm/boot/dts/socfpga_arria10_socdk_qspi.dts | 2 +-
arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 2 +-
arch/arm/boot/dts/socfpga_cyclone5_sodia.dts | 2 +-
arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts | 4 +-
arch/arm/boot/dts/ste-dbx5x0.dtsi | 12 +-
arch/arm/boot/dts/ste-ux500-samsung-codina-tmo.dts | 785 +
arch/arm/boot/dts/ste-ux500-samsung-codina.dts | 80 +-
arch/arm/boot/dts/ste-ux500-samsung-gavini.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-golden.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-janice.dts | 44 +-
arch/arm/boot/dts/ste-ux500-samsung-kyle.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-skomer.dts | 35 +-
arch/arm/boot/dts/stm32f4-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/stm32f7-pinctrl.dtsi | 2 +-
arch/arm/boot/dts/stm32h743.dtsi | 2 +-
arch/arm/boot/dts/stm32mp131.dtsi | 19 +-
arch/arm/boot/dts/stm32mp135f-dk.dts | 29 +
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 64 +
arch/arm/boot/dts/stm32mp151.dtsi | 45 +-
arch/arm/boot/dts/stm32mp151a-prtt1a.dts | 52 +
arch/arm/boot/dts/stm32mp151a-prtt1c.dts | 304 +
arch/arm/boot/dts/stm32mp151a-prtt1l.dtsi | 229 +
arch/arm/boot/dts/stm32mp151a-prtt1s.dts | 63 +
arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts | 86 +
arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts | 95 +
arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts | 91 +
arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts | 100 +
arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi | 22 +-
arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi | 1 +
arch/arm/boot/dts/sun8i-h3-nanopi.dtsi | 1 -
arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts | 31 +
arch/arm/boot/dts/suniv-f1c100s.dtsi | 104 +-
arch/arm/boot/dts/zynq-7000.dtsi | 2 -
arch/arm/boot/install.sh | 21 -
arch/arm/common/locomo.c | 1 -
arch/arm/common/sa1111.c | 5 +-
arch/arm/configs/am200epdkit_defconfig | 1 +
arch/arm/configs/at91_dt_defconfig | 4 +-
arch/arm/configs/cm_x300_defconfig | 1 +
arch/arm/configs/colibri_pxa270_defconfig | 1 +
arch/arm/configs/colibri_pxa300_defconfig | 1 +
arch/arm/configs/corgi_defconfig | 1 +
arch/arm/configs/dove_defconfig | 2 +
arch/arm/configs/ep93xx_defconfig | 2 +
arch/arm/configs/eseries_pxa_defconfig | 1 +
arch/arm/configs/ezx_defconfig | 1 +
arch/arm/configs/h5000_defconfig | 1 +
arch/arm/configs/imx_v6_v7_defconfig | 1 +
arch/arm/configs/iop32x_defconfig | 1 +
arch/arm/configs/ixp4xx_defconfig | 88 +-
arch/arm/configs/lpc18xx_defconfig | 1 -
arch/arm/configs/lpd270_defconfig | 1 +
arch/arm/configs/lubbock_defconfig | 1 +
arch/arm/configs/magician_defconfig | 1 +
arch/arm/configs/mainstone_defconfig | 1 +
arch/arm/configs/mini2440_defconfig | 5 +-
arch/arm/configs/mps2_defconfig | 1 -
arch/arm/configs/multi_v5_defconfig | 3 +-
arch/arm/configs/multi_v7_defconfig | 23 +
arch/arm/configs/omap1_defconfig | 3 +
arch/arm/configs/omap2plus_defconfig | 3 +
arch/arm/configs/palmz72_defconfig | 1 +
arch/arm/configs/pcm027_defconfig | 1 +
arch/arm/configs/pxa255-idp_defconfig | 1 +
arch/arm/configs/pxa3xx_defconfig | 1 +
arch/arm/configs/pxa_defconfig | 1 +
arch/arm/configs/qcom_defconfig | 8 +
arch/arm/configs/s3c2410_defconfig | 5 +
arch/arm/configs/sama5_defconfig | 3 +-
arch/arm/configs/sama7_defconfig | 8 +
arch/arm/configs/shmobile_defconfig | 4 +-
arch/arm/configs/spitz_defconfig | 1 +
arch/arm/configs/stm32_defconfig | 1 -
arch/arm/configs/tct_hammer_defconfig | 2 +
arch/arm/configs/trizeps4_defconfig | 1 +
arch/arm/configs/vf610m4_defconfig | 1 -
arch/arm/configs/viper_defconfig | 1 +
arch/arm/configs/xcep_defconfig | 1 +
arch/arm/configs/zeus_defconfig | 1 +
arch/arm/include/asm/arch_gicv3.h | 7 +-
arch/arm/include/asm/assembler.h | 28 +-
arch/arm/include/asm/hardware/sa1111.h | 2 -
arch/arm/include/asm/io.h | 30 +-
arch/arm/include/asm/module.h | 17 +-
arch/arm/include/asm/timex.h | 1 +
arch/arm/include/asm/unwind.h | 1 +
.../include/asm/xen/{page-coherent.h => xen-ops.h} | 2 +-
arch/arm/kernel/crash_dump.c | 27 +-
arch/arm/kernel/entry-armv.S | 90 +-
arch/arm/kernel/entry-common.S | 12 +-
arch/arm/kernel/entry-header.S | 3 +-
arch/arm/kernel/ftrace.c | 6 +-
arch/arm/kernel/hw_breakpoint.c | 26 +
arch/arm/kernel/module.c | 78 +-
arch/arm/kernel/process.c | 12 +-
arch/arm/kernel/reboot.c | 4 +-
arch/arm/kernel/signal.c | 1 +
arch/arm/mach-asm9260/Kconfig | 1 +
arch/arm/mach-aspeed/Kconfig | 2 +-
arch/arm/mach-at91/Kconfig | 21 +-
arch/arm/mach-at91/Makefile | 2 +-
arch/arm/mach-at91/pm.c | 431 +-
arch/arm/mach-at91/sam_secure.c | 46 +
arch/arm/mach-at91/sam_secure.h | 18 +
arch/arm/mach-at91/sama5.c | 2 +
arch/arm/mach-bcm/Kconfig | 12 +
arch/arm/mach-bcm/platsmp-brcmstb.c | 2 +-
arch/arm/mach-clps711x/Kconfig | 1 +
arch/arm/mach-davinci/Kconfig | 1 +
arch/arm/mach-davinci/Makefile | 4 +-
arch/arm/mach-davinci/board-da830-evm.c | 10 +-
arch/arm/mach-davinci/board-da850-evm.c | 7 +-
arch/arm/mach-davinci/board-dm355-evm.c | 5 +-
arch/arm/mach-davinci/board-dm355-leopard.c | 5 +-
arch/arm/mach-davinci/board-dm365-evm.c | 6 +-
arch/arm/mach-davinci/board-dm644x-evm.c | 16 +-
arch/arm/mach-davinci/board-dm646x-evm.c | 9 +-
arch/arm/mach-davinci/board-mityomapl138.c | 8 +-
arch/arm/mach-davinci/board-neuros-osd2.c | 7 +-
arch/arm/mach-davinci/board-omapl138-hawk.c | 6 +-
arch/arm/mach-davinci/board-sffsdr.c | 6 +-
arch/arm/mach-davinci/common.c | 4 +-
arch/arm/mach-davinci/{include/mach => }/common.h | 0
arch/arm/mach-davinci/{include/mach => }/cputype.h | 2 +-
arch/arm/mach-davinci/da830.c | 11 +-
arch/arm/mach-davinci/da850.c | 12 +-
arch/arm/mach-davinci/da8xx-dt.c | 4 +-
arch/arm/mach-davinci/{include/mach => }/da8xx.h | 5 +-
arch/arm/mach-davinci/davinci.h | 3 +-
arch/arm/mach-davinci/devices-da8xx.c | 7 +-
arch/arm/mach-davinci/devices.c | 7 +-
arch/arm/mach-davinci/dm355.c | 12 +-
arch/arm/mach-davinci/dm365.c | 12 +-
arch/arm/mach-davinci/dm644x.c | 12 +-
arch/arm/mach-davinci/dm646x.c | 12 +-
.../arm/mach-davinci/{include/mach => }/hardware.h | 0
arch/arm/mach-davinci/include/mach/mux.h | 990 -
arch/arm/mach-davinci/include/mach/uncompress.h | 97 -
arch/arm/mach-davinci/mux.c | 4 +-
arch/arm/mach-davinci/mux.h | 969 +-
arch/arm/mach-davinci/pdata-quirks.c | 4 +-
arch/arm/mach-davinci/pm.c | 9 +-
arch/arm/mach-davinci/{include/mach => }/pm.h | 0
arch/arm/mach-davinci/serial.c | 4 +-
arch/arm/mach-davinci/{include/mach => }/serial.h | 2 +-
arch/arm/mach-davinci/sram.c | 2 +-
arch/arm/mach-davinci/usb-da8xx.c | 7 +-
arch/arm/mach-davinci/usb.c | 5 +-
arch/arm/mach-dove/Kconfig | 16 +-
arch/arm/mach-dove/Makefile | 2 +
arch/arm/mach-dove/include/mach/uncompress.h | 34 -
arch/arm/mach-ep93xx/Kconfig | 13 +
arch/arm/mach-ep93xx/adssphere.c | 1 +
arch/arm/mach-ep93xx/clock.c | 10 +-
arch/arm/mach-ep93xx/core.c | 5 +-
arch/arm/mach-ep93xx/edb93xx.c | 8 +
.../mach-ep93xx/{include/mach => }/ep93xx-regs.h | 4 -
arch/arm/mach-ep93xx/gesbc9312.c | 1 +
arch/arm/mach-ep93xx/gpio-ep93xx.h | 2 +-
arch/arm/mach-ep93xx/include/mach/irqs.h | 79 -
arch/arm/mach-ep93xx/irqs.h | 76 +
arch/arm/mach-ep93xx/micro9.c | 4 +
arch/arm/mach-ep93xx/simone.c | 1 +
arch/arm/mach-ep93xx/snappercl15.c | 1 +
arch/arm/mach-ep93xx/soc.h | 3 +-
arch/arm/mach-ep93xx/ts72xx.c | 5 +-
arch/arm/mach-ep93xx/vision_ep9307.c | 1 +
arch/arm/mach-exynos/Kconfig | 1 -
arch/arm/mach-gemini/Kconfig | 1 +
arch/arm/mach-highbank/Kconfig | 1 -
arch/arm/mach-hisi/Kconfig | 2 +-
arch/arm/mach-hisi/platsmp.c | 4 +
arch/arm/mach-hpe/Kconfig | 23 +
arch/arm/mach-hpe/Makefile | 1 +
arch/arm/mach-hpe/gxp.c | 16 +
arch/arm/mach-imx/Kconfig | 4 +-
arch/arm/mach-integrator/Kconfig | 125 -
arch/arm/mach-integrator/Makefile | 10 -
arch/arm/mach-iop32x/Kconfig | 18 +-
arch/arm/mach-iop32x/em7210.c | 1 +
arch/arm/mach-iop32x/glantank.c | 1 +
arch/arm/mach-iop32x/include/mach/irqs.h | 14 -
arch/arm/mach-iop32x/include/mach/uncompress.h | 25 -
arch/arm/mach-iop32x/iq31244.c | 1 +
arch/arm/mach-iop32x/iq80321.c | 1 +
arch/arm/mach-iop32x/irqs.h | 2 +
arch/arm/mach-iop32x/n2100.c | 1 +
arch/arm/mach-ixp4xx/Kconfig | 29 +-
arch/arm/mach-ixp4xx/Makefile.boot | 4 -
arch/arm/mach-ixp4xx/include/mach/uncompress.h | 54 -
arch/arm/mach-keystone/Kconfig | 1 -
arch/arm/mach-lpc32xx/Kconfig | 1 +
arch/arm/mach-mediatek/Kconfig | 1 +
arch/arm/mach-mmp/Kconfig | 12 +-
arch/arm/mach-mmp/Makefile | 3 -
arch/arm/mach-mmp/devices.c | 2 +-
arch/arm/mach-mmp/devices.h | 10 +-
arch/arm/mach-mmp/mfp.h | 2 +-
arch/arm/mach-mmp/mmp2.h | 48 +-
arch/arm/mach-mmp/pxa168.h | 60 +-
arch/arm/mach-mmp/pxa910.h | 38 +-
arch/arm/mach-mmp/tavorevb.c | 113 -
arch/arm/mach-mmp/ttc_dkb.c | 6 +-
arch/arm/mach-moxart/Kconfig | 1 +
arch/arm/mach-mv78xx0/Kconfig | 1 +
arch/arm/mach-mvebu/Kconfig | 3 +-
arch/arm/mach-mxs/Kconfig | 1 +
arch/arm/mach-nomadik/Kconfig | 2 +-
arch/arm/mach-npcm/Kconfig | 2 +-
arch/arm/mach-nspire/Kconfig | 1 +
arch/arm/mach-omap1/Kconfig | 73 +
arch/arm/mach-omap1/Makefile | 6 +-
arch/arm/mach-omap1/ams-delta-fiq-handler.S | 3 +-
arch/arm/mach-omap1/ams-delta-fiq.c | 2 +
arch/arm/mach-omap1/ams-delta-fiq.h | 2 +-
arch/arm/mach-omap1/board-ams-delta.c | 20 +-
arch/arm/mach-omap1/board-fsample.c | 10 +-
arch/arm/mach-omap1/board-generic.c | 8 +-
arch/arm/mach-omap1/board-h2.c | 14 +-
arch/arm/mach-omap1/board-h3.c | 16 +-
arch/arm/mach-omap1/board-htcherald.c | 12 +-
arch/arm/mach-omap1/board-innovator.c | 34 +-
arch/arm/mach-omap1/board-nokia770.c | 8 +-
arch/arm/mach-omap1/board-osk.c | 49 +-
arch/arm/mach-omap1/board-palmte.c | 14 +-
arch/arm/mach-omap1/board-palmtt.c | 14 +-
arch/arm/mach-omap1/board-palmz71.c | 14 +-
arch/arm/mach-omap1/board-perseus2.c | 15 +-
arch/arm/mach-omap1/board-sx1-mmc.c | 3 +-
arch/arm/mach-omap1/board-sx1.c | 12 +-
arch/arm/mach-omap1/clock.c | 797 +-
arch/arm/mach-omap1/clock.h | 191 +-
arch/arm/mach-omap1/clock_data.c | 510 +-
arch/arm/mach-omap1/common.h | 3 +-
arch/arm/mach-omap1/devices.c | 12 +-
arch/arm/mach-omap1/dma.c | 2 +-
arch/arm/mach-omap1/fb.c | 19 +-
arch/arm/mach-omap1/flash.c | 5 +-
arch/arm/mach-omap1/fpga.c | 3 +-
arch/arm/mach-omap1/gpio15xx.c | 3 +-
arch/arm/mach-omap1/gpio16xx.c | 5 +-
arch/arm/mach-omap1/gpio7xx.c | 3 +-
arch/arm/mach-omap1/{include/mach => }/hardware.h | 136 +-
arch/arm/mach-omap1/i2c.c | 4 +-
arch/arm/mach-omap1/id.c | 5 +-
arch/arm/mach-omap1/include/mach/io.h | 45 -
arch/arm/mach-omap1/include/mach/lcdc.h | 44 -
arch/arm/mach-omap1/include/mach/memory.h | 12 -
arch/arm/mach-omap1/include/mach/uncompress.h | 117 -
arch/arm/mach-omap1/io.c | 12 +-
arch/arm/mach-omap1/irq.c | 4 +-
arch/arm/mach-omap1/{include/mach => }/irqs.h | 2 -
arch/arm/mach-omap1/mcbsp.c | 17 +-
arch/arm/mach-omap1/{include/mach => }/mtd-xip.h | 3 +-
arch/arm/mach-omap1/mux.c | 6 +-
arch/arm/mach-omap1/mux.h | 144 +
arch/arm/mach-omap1/ocpi.c | 8 +-
.../arm/{plat-omap/dma.c => mach-omap1/omap-dma.c} | 269 +-
arch/arm/mach-omap1/{include/mach => }/omap1510.h | 0
arch/arm/mach-omap1/{include/mach => }/omap16xx.h | 0
arch/arm/mach-omap1/{include/mach => }/omap7xx.h | 0
arch/arm/mach-omap1/pm.c | 9 +-
arch/arm/mach-omap1/pm.h | 2 +
arch/arm/mach-omap1/reset.c | 3 +-
arch/arm/mach-omap1/serial.c | 10 +-
arch/arm/mach-omap1/{include/mach => }/serial.h | 0
arch/arm/mach-omap1/sleep.S | 2 +-
arch/arm/mach-omap1/soc.h | 6 +-
arch/arm/mach-omap1/sram-init.c | 91 +-
arch/arm/mach-omap1/sram.S | 4 +-
arch/arm/mach-omap1/sram.h | 4 +-
arch/arm/mach-omap1/{include/mach => }/tc.h | 2 -
arch/arm/mach-omap1/time.c | 7 +-
arch/arm/mach-omap1/timer.c | 1 +
arch/arm/mach-omap1/timer32k.c | 100 +-
arch/arm/mach-omap1/usb.c | 8 +-
arch/arm/mach-omap1/usb.h | 25 +
arch/arm/mach-omap2/Kconfig | 49 +
arch/arm/mach-omap2/Makefile | 3 -
arch/arm/mach-omap2/cm_common.c | 8 +-
arch/arm/mach-omap2/common.h | 13 +-
arch/arm/mach-omap2/control.c | 19 +-
arch/arm/mach-omap2/dma.c | 1 +
arch/arm/mach-omap2/include/mach/hardware.h | 3 -
arch/arm/mach-omap2/include/mach/irqs.h | 3 -
arch/arm/mach-omap2/include/mach/serial.h | 66 -
arch/arm/mach-omap2/omap-iommu.c | 1 +
arch/arm/mach-omap2/omap-secure.c | 2 +-
arch/arm/mach-omap2/omap-secure.h | 2 +-
arch/arm/mach-omap2/omap4-common.c | 2 +-
arch/arm/mach-omap2/omap_device.c | 20 -
arch/arm/mach-omap2/omap_device.h | 1 -
arch/arm/mach-omap2/pdata-quirks.c | 11 -
arch/arm/mach-omap2/prm_common.c | 8 +-
arch/arm/mach-omap2/serial.h | 67 +-
arch/arm/mach-omap2/sram.c | 91 +-
arch/arm/mach-omap2/sram.h | 5 +-
arch/arm/mach-orion5x/Kconfig | 1 +
arch/arm/mach-orion5x/dns323-setup.c | 4 +-
arch/arm/mach-oxnas/Kconfig | 2 +-
arch/arm/mach-pxa/Kconfig | 15 +
arch/arm/mach-pxa/Makefile | 18 +-
arch/arm/mach-pxa/{include/mach => }/addr-map.h | 0
arch/arm/mach-pxa/am300epd.c | 2 +-
.../arm/mach-pxa/balloon3-pcmcia.c | 4 +-
arch/arm/mach-pxa/balloon3.c | 4 +-
arch/arm/mach-pxa/{include/mach => }/balloon3.h | 0
arch/arm/mach-pxa/cm-x300.c | 12 +-
arch/arm/mach-pxa/colibri-evalboard.c | 1 -
.../arm/mach-pxa/colibri-pcmcia.c | 2 +-
arch/arm/mach-pxa/colibri-pxa270-income.c | 1 -
arch/arm/mach-pxa/colibri-pxa270.c | 2 +-
arch/arm/mach-pxa/colibri-pxa300.c | 3 +-
arch/arm/mach-pxa/colibri-pxa320.c | 2 +-
arch/arm/mach-pxa/colibri-pxa3xx.c | 3 +-
arch/arm/mach-pxa/colibri.h | 2 +-
arch/arm/mach-pxa/corgi.c | 23 +-
arch/arm/mach-pxa/{include/mach => }/corgi.h | 0
arch/arm/mach-pxa/corgi_pm.c | 5 +-
arch/arm/mach-pxa/csb726.c | 5 +-
arch/arm/mach-pxa/csb726.h | 2 +-
arch/arm/mach-pxa/devices.c | 17 +-
.../arm/mach-pxa/e740-pcmcia.c | 4 +-
.../arm/mach-pxa/{include/mach => }/eseries-gpio.h | 0
arch/arm/mach-pxa/eseries.c | 38 +-
arch/arm/mach-pxa/ezx.c | 1 -
arch/arm/mach-pxa/generic.c | 62 +-
arch/arm/mach-pxa/generic.h | 9 -
arch/arm/mach-pxa/gumstix.c | 1 -
arch/arm/mach-pxa/gumstix.h | 2 +-
arch/arm/mach-pxa/h5000.c | 2 +-
.../arm/mach-pxa/hx4700-pcmcia.c | 4 +-
arch/arm/mach-pxa/hx4700.c | 18 +-
arch/arm/mach-pxa/{include/mach => }/hx4700.h | 0
arch/arm/mach-pxa/idp.c | 2 -
arch/arm/mach-pxa/idp.h | 2 +-
arch/arm/mach-pxa/include/mach/bitfield.h | 114 -
arch/arm/mach-pxa/include/mach/dma.h | 17 -
arch/arm/mach-pxa/include/mach/generic.h | 1 -
arch/arm/mach-pxa/include/mach/mtd-xip.h | 36 -
arch/arm/mach-pxa/include/mach/uncompress.h | 70 -
arch/arm/mach-pxa/irq.c | 5 +-
arch/arm/mach-pxa/{include/mach => }/irqs.h | 0
arch/arm/mach-pxa/littleton.c | 1 -
arch/arm/mach-pxa/lpd270.c | 6 +-
arch/arm/mach-pxa/lubbock.c | 17 +-
arch/arm/mach-pxa/{include/mach => }/lubbock.h | 4 +-
arch/arm/mach-pxa/magician.c | 56 +-
arch/arm/mach-pxa/{include/mach => }/magician.h | 2 +-
arch/arm/mach-pxa/mainstone.c | 17 +-
arch/arm/mach-pxa/{include/mach => }/mainstone.h | 4 +-
arch/arm/mach-pxa/mfp-pxa2xx.c | 3 +-
arch/arm/mach-pxa/mfp-pxa2xx.h | 2 +-
arch/arm/mach-pxa/mfp-pxa3xx.c | 3 +-
arch/arm/mach-pxa/mfp-pxa3xx.h | 2 +-
arch/arm/mach-pxa/{include/mach => }/mfp.h | 2 +-
arch/arm/mach-pxa/mioa701.c | 4 +-
arch/arm/mach-pxa/mxm8x10.c | 8 +-
arch/arm/mach-pxa/palm27x.c | 2 +-
.../arm/mach-pxa/palmld-pcmcia.c | 5 +-
arch/arm/mach-pxa/palmld.c | 23 +-
arch/arm/mach-pxa/{include/mach => }/palmld.h | 0
arch/arm/mach-pxa/palmt5.c | 11 +-
arch/arm/mach-pxa/palmt5.h | 2 +-
.../arm/mach-pxa/palmtc-pcmcia.c | 4 +-
arch/arm/mach-pxa/palmtc.c | 4 +-
arch/arm/mach-pxa/{include/mach => }/palmtc.h | 0
arch/arm/mach-pxa/palmte2.c | 2 +-
arch/arm/mach-pxa/palmtreo.c | 4 +-
.../arm/mach-pxa/palmtx-pcmcia.c | 4 +-
arch/arm/mach-pxa/palmtx.c | 13 +-
arch/arm/mach-pxa/{include/mach => }/palmtx.h | 0
arch/arm/mach-pxa/palmz72.c | 2 +-
arch/arm/mach-pxa/pcm027.h | 2 +-
arch/arm/mach-pxa/pcm990-baseboard.c | 2 +-
arch/arm/mach-pxa/pcm990_baseboard.h | 2 +-
arch/arm/mach-pxa/poodle.c | 31 +-
arch/arm/mach-pxa/{include/mach => }/poodle.h | 2 -
arch/arm/mach-pxa/pxa-dt.c | 2 +-
arch/arm/mach-pxa/pxa-regs.h | 52 +
arch/arm/mach-pxa/pxa25x.c | 12 +-
arch/arm/mach-pxa/pxa25x.h | 6 +-
arch/arm/mach-pxa/pxa27x-udc.h | 2 +
arch/arm/mach-pxa/pxa27x.c | 12 +-
arch/arm/mach-pxa/pxa27x.h | 6 +-
arch/arm/mach-pxa/{include/mach => }/pxa2xx-regs.h | 47 +-
arch/arm/mach-pxa/pxa2xx.c | 32 +-
arch/arm/mach-pxa/pxa300.c | 1 +
arch/arm/mach-pxa/pxa320.c | 1 +
arch/arm/mach-pxa/{include/mach => }/pxa3xx-regs.h | 71 +-
arch/arm/mach-pxa/pxa3xx-ulpi.c | 2 +-
arch/arm/mach-pxa/pxa3xx.c | 19 +-
arch/arm/mach-pxa/pxa3xx.h | 6 +-
arch/arm/mach-pxa/pxa930.c | 1 +
arch/arm/mach-pxa/{include/mach => }/regs-ost.h | 4 +-
arch/arm/mach-pxa/regs-rtc.h | 2 +-
arch/arm/mach-pxa/regs-u2d.h | 2 -
arch/arm/mach-pxa/{include/mach => }/regs-uart.h | 2 +
arch/arm/mach-pxa/reset.c | 9 +-
arch/arm/mach-pxa/{include/mach => }/reset.h | 2 +-
arch/arm/mach-pxa/sharpsl_pm.c | 2 +-
arch/arm/mach-pxa/sleep.S | 9 +-
arch/arm/mach-pxa/smemc.c | 13 +-
arch/arm/mach-pxa/{include/mach => }/smemc.h | 0
arch/arm/mach-pxa/spitz.c | 37 +-
arch/arm/mach-pxa/{include/mach => }/spitz.h | 0
arch/arm/mach-pxa/spitz_pm.c | 3 +-
arch/arm/mach-pxa/standby.S | 3 +-
arch/arm/mach-pxa/tosa.c | 80 +-
arch/arm/mach-pxa/{include/mach => }/tosa.h | 18 -
.../arm/mach-pxa/trizeps4-pcmcia.c | 6 +-
arch/arm/mach-pxa/trizeps4.c | 6 +-
arch/arm/mach-pxa/{include/mach => }/trizeps4.h | 1 +
.../arm/mach-pxa/viper-pcmcia.c | 6 +-
.../arm/mach-pxa/viper-pcmcia.h | 0
arch/arm/mach-pxa/viper.c | 20 +-
.../arm/mach-pxa/vpac270-pcmcia.c | 4 +-
arch/arm/mach-pxa/vpac270.c | 4 +-
arch/arm/mach-pxa/{include/mach => }/vpac270.h | 0
arch/arm/mach-pxa/xcep.c | 4 +-
arch/arm/mach-pxa/z2.c | 13 +-
arch/arm/mach-pxa/{include/mach => }/z2.h | 0
arch/arm/mach-pxa/zeus.c | 20 +-
arch/arm/mach-pxa/zylonite.c | 34 +-
arch/arm/mach-pxa/zylonite.h | 2 +
arch/arm/mach-pxa/zylonite_pxa300.c | 1 +
arch/arm/mach-pxa/zylonite_pxa320.c | 1 +
arch/arm/mach-qcom/Kconfig | 1 -
arch/arm/mach-realview/Kconfig | 103 -
arch/arm/mach-realview/Makefile | 8 -
arch/arm/mach-rockchip/platsmp.c | 2 +-
arch/arm/mach-s3c/Kconfig | 8 -
arch/arm/mach-s3c/Kconfig.s3c24xx | 31 +-
arch/arm/mach-s3c/Kconfig.s3c64xx | 7 +-
arch/arm/mach-s3c/Makefile | 2 -
arch/arm/mach-s3c/Makefile.s3c64xx | 3 -
arch/arm/mach-s3c/bast-ide.c | 2 +-
arch/arm/mach-s3c/bast-irq.c | 2 +-
arch/arm/mach-s3c/cpu.c | 3 +-
arch/arm/mach-s3c/dev-audio-s3c64xx.c | 2 +-
arch/arm/mach-s3c/dev-uart-s3c64xx.c | 2 +-
arch/arm/mach-s3c/devs.c | 2 +-
arch/arm/mach-s3c/gpio-samsung.c | 2 +-
arch/arm/mach-s3c/include/mach/io-s3c24xx.h | 50 -
arch/arm/mach-s3c/include/mach/io.h | 8 -
arch/arm/mach-s3c/init.c | 2 +
arch/arm/mach-s3c/iotiming-s3c2410.c | 2 +-
arch/arm/mach-s3c/irq-pm-s3c24xx.c | 2 +-
arch/arm/mach-s3c/irq-s3c24xx.c | 2 +-
.../arm/mach-s3c/{include/mach => }/irqs-s3c24xx.h | 18 +-
.../arm/mach-s3c/{include/mach => }/irqs-s3c64xx.h | 0
arch/arm/mach-s3c/{include/mach => }/irqs.h | 0
arch/arm/mach-s3c/mach-amlm5900.c | 2 +
arch/arm/mach-s3c/mach-anubis.c | 6 +-
arch/arm/mach-s3c/mach-anw6410.c | 2 +-
arch/arm/mach-s3c/mach-at2440evb.c | 1 +
arch/arm/mach-s3c/mach-bast.c | 6 +-
arch/arm/mach-s3c/mach-crag6410-module.c | 2 +-
arch/arm/mach-s3c/mach-crag6410.c | 2 +-
arch/arm/mach-s3c/mach-gta02.c | 1 +
arch/arm/mach-s3c/mach-h1940.c | 1 +
arch/arm/mach-s3c/mach-hmt.c | 2 +-
arch/arm/mach-s3c/mach-jive.c | 2 +-
arch/arm/mach-s3c/mach-mini2440.c | 3 +-
arch/arm/mach-s3c/mach-mini6410.c | 2 +-
arch/arm/mach-s3c/mach-n30.c | 2 +
arch/arm/mach-s3c/mach-ncp.c | 2 +-
arch/arm/mach-s3c/mach-nexcoder.c | 1 +
arch/arm/mach-s3c/mach-osiris.c | 6 +-
arch/arm/mach-s3c/mach-otom.c | 1 +
arch/arm/mach-s3c/mach-qt2410.c | 1 +
arch/arm/mach-s3c/mach-real6410.c | 2 +-
arch/arm/mach-s3c/mach-rx1950.c | 1 +
arch/arm/mach-s3c/mach-rx3715.c | 7 +-
arch/arm/mach-s3c/mach-smartq5.c | 2 +-
arch/arm/mach-s3c/mach-smartq7.c | 2 +-
arch/arm/mach-s3c/mach-smdk2410.c | 1 +
arch/arm/mach-s3c/mach-smdk2413.c | 3 +
arch/arm/mach-s3c/mach-smdk2416.c | 11 +-
arch/arm/mach-s3c/mach-smdk2440.c | 11 +-
arch/arm/mach-s3c/mach-smdk2443.c | 12 +-
arch/arm/mach-s3c/mach-smdk6400.c | 2 +-
arch/arm/mach-s3c/mach-smdk6410.c | 2 +-
arch/arm/mach-s3c/mach-tct_hammer.c | 1 +
arch/arm/mach-s3c/mach-vr1000.c | 6 +-
arch/arm/mach-s3c/mach-vstms.c | 1 +
arch/arm/mach-s3c/{include/mach => }/map-base.h | 6 +
arch/arm/mach-s3c/map-s3c24xx.h | 2 +-
arch/arm/mach-s3c/map-s3c64xx.h | 2 +-
arch/arm/mach-s3c/pl080.c | 2 +-
arch/arm/mach-s3c/pm-core-s3c24xx.h | 2 +-
arch/arm/mach-s3c/pm-s3c2412.c | 2 +-
arch/arm/mach-s3c/pm-s3c64xx.c | 4 +-
arch/arm/mach-s3c/pm.c | 2 +-
arch/arm/mach-s3c/s3c2443.c | 2 +-
arch/arm/mach-s3c/s3c24xx.c | 9 +-
arch/arm/mach-s3c/s3c24xx.h | 2 +-
arch/arm/mach-s3c/s3c64xx.c | 9 +-
arch/arm/mach-s3c/simtec-usb.c | 2 +-
arch/arm/mach-sa1100/generic.c | 6 +-
arch/arm/mach-sa1100/include/mach/reset.h | 1 -
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 2 +-
arch/arm/mach-shmobile/setup-emev2.c | 2 +-
arch/arm/mach-shmobile/setup-r7s72100.c | 2 +-
arch/arm/mach-shmobile/setup-r7s9210.c | 2 +-
arch/arm/mach-shmobile/setup-r8a73a4.c | 2 +-
arch/arm/mach-shmobile/setup-r8a7740.c | 2 +-
arch/arm/mach-shmobile/setup-r8a7778.c | 2 +-
arch/arm/mach-shmobile/setup-r8a7779.c | 2 +-
arch/arm/mach-shmobile/setup-rcar-gen2.c | 4 +-
arch/arm/mach-shmobile/setup-sh73a0.c | 2 +-
arch/arm/mach-socfpga/Kconfig | 1 -
arch/arm/mach-spear/Kconfig | 2 +-
arch/arm/mach-spear/Makefile | 2 -
arch/arm/mach-spear/include/mach/irqs.h | 35 -
arch/arm/mach-spear/include/mach/uncompress.h | 42 -
arch/arm/mach-spear/{include/mach => }/misc_regs.h | 4 +-
arch/arm/mach-spear/pl080.c | 4 +-
arch/arm/mach-spear/platsmp.c | 2 +-
arch/arm/mach-spear/restart.c | 2 +-
arch/arm/mach-spear/{include/mach => }/spear.h | 0
arch/arm/mach-spear/spear1310.c | 2 +-
arch/arm/mach-spear/spear13xx.c | 2 +-
arch/arm/mach-spear/spear300.c | 2 +-
arch/arm/mach-spear/spear310.c | 2 +-
arch/arm/mach-spear/spear320.c | 2 +-
arch/arm/mach-spear/spear3xx.c | 4 +-
arch/arm/mach-spear/spear6xx.c | 4 +-
arch/arm/mach-sunxi/Kconfig | 15 +-
arch/arm/mach-tegra/platsmp.c | 2 +-
arch/arm/mach-versatile/Kconfig | 309 +
arch/arm/mach-versatile/Makefile | 32 +-
.../Makefile.boot | 0
arch/arm/{mach-vexpress => mach-versatile}/dcscb.c | 5 +-
.../dcscb_setup.S | 2 -
.../{plat-versatile => mach-versatile}/headsmp.S | 2 -
.../{plat-versatile => mach-versatile}/hotplug.c | 2 +-
.../cm.h => mach-versatile/integrator-cm.h} | 0
.../integrator-hardware.h} | 0
.../core.c => mach-versatile/integrator.c} | 8 +-
.../common.h => mach-versatile/integrator.h} | 0
.../integrator_ap.c | 13 +-
.../integrator_cp.c | 8 +-
.../platsmp-realview.c} | 2 +-
.../platsmp-vexpress.c} | 7 +-
.../{plat-versatile => mach-versatile}/platsmp.c | 4 +-
.../include/plat => mach-versatile}/platsmp.h | 2 -
.../realview-dt.c => mach-versatile/realview.c} | 0
arch/arm/{mach-vexpress => mach-versatile}/spc.c | 0
arch/arm/{mach-vexpress => mach-versatile}/spc.h | 0
.../arm/{mach-vexpress => mach-versatile}/tc2_pm.c | 2 -
.../{mach-vexpress => mach-versatile}/v2m-mps2.c | 0
arch/arm/{mach-vexpress => mach-versatile}/v2m.c | 2 +-
.../mach-versatile/{versatile_dt.c => versatile.c} | 0
.../core.h => mach-versatile/vexpress.h} | 0
arch/arm/mach-vexpress/Kconfig | 81 -
arch/arm/mach-vexpress/Makefile | 19 -
arch/arm/mach-vt8500/Kconfig | 1 +
arch/arm/mach-zynq/Kconfig | 1 -
arch/arm/mm/Kconfig | 28 +-
arch/arm/mm/cache-b15-rac.c | 2 +-
arch/arm/mm/copypage-xsc3.c | 2 +
arch/arm/mm/dma-mapping.c | 7 +-
arch/arm/mm/init.c | 6 +-
arch/arm/mm/ioremap.c | 10 +-
arch/arm/mm/proc-v7-bugs.c | 1 +
arch/arm/plat-omap/Kconfig | 119 -
arch/arm/plat-omap/Makefile | 13 -
arch/arm/plat-omap/counter_32k.c | 114 -
arch/arm/plat-omap/debug-leds.c | 171 -
arch/arm/plat-omap/include/plat/counter-32k.h | 1 -
arch/arm/plat-omap/include/plat/cpu.h | 21 -
arch/arm/plat-omap/include/plat/sram.h | 8 -
arch/arm/plat-omap/sram.c | 129 -
arch/arm/plat-versatile/Makefile | 5 -
arch/arm/vdso/Makefile | 2 +-
arch/arm/xen/enlighten.c | 2 +
arch/arm/xen/mm.c | 38 +-
arch/arm64/Kconfig | 126 +-
arch/arm64/Kconfig.platforms | 8 +-
arch/arm64/Makefile | 6 +-
.../boot/dts/allwinner/sun50i-a64-olinuxino.dts | 30 +
.../boot/dts/allwinner/sun50i-a64-teres-i.dts | 8 +
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi | 2 -
arch/arm64/boot/dts/amlogic/Makefile | 38 +-
.../dts/amlogic/meson-axg-jethome-jethub-j100.dts | 16 +-
.../boot/dts/amlogic/meson-gx-libretech-pc.dtsi | 2 +-
.../dts/amlogic/meson-gxl-s805x-libretech-ac.dts | 2 +-
.../amlogic/meson-gxl-s905w-jethome-jethub-j80.dts | 6 +
.../amlogic/meson-gxl-s905x-libretech-cc-v2.dts | 2 +-
.../boot/dts/amlogic/meson-gxm-khadas-vim2.dts | 2 +-
arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi | 2 +-
arch/arm64/boot/dts/amlogic/meson-s4.dtsi | 33 +
.../boot/dts/amlogic/meson-sm1-odroid-hc4.dts | 2 +-
arch/arm64/boot/dts/arm/Makefile | 1 +
arch/arm64/boot/dts/arm/corstone1000-fvp.dts | 51 +
arch/arm64/boot/dts/arm/corstone1000-mps3.dts | 32 +
arch/arm64/boot/dts/arm/corstone1000.dtsi | 164 +
arch/arm64/boot/dts/arm/foundation-v8.dtsi | 2 +-
arch/arm64/boot/dts/arm/fvp-base-revc.dts | 3 +-
arch/arm64/boot/dts/arm/juno-base.dtsi | 164 +-
arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi | 37 +-
arch/arm64/boot/dts/arm/juno-r1-scmi.dts | 8 +-
arch/arm64/boot/dts/arm/juno-r1.dts | 25 +
arch/arm64/boot/dts/arm/juno-r2-scmi.dts | 8 +-
arch/arm64/boot/dts/arm/juno-r2.dts | 25 +
arch/arm64/boot/dts/arm/juno-scmi.dtsi | 25 +
arch/arm64/boot/dts/arm/juno.dts | 25 +
.../boot/dts/arm/rtsm_ve-motherboard-rs2.dtsi | 11 +-
arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi | 4 +-
.../arm64/boot/dts/broadcom/northstar2/ns2-svk.dts | 2 +-
.../arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts | 2 +-
arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi | 2 -
.../boot/dts/broadcom/stingray/bcm958742k.dts | 4 +-
.../arm64/boot/dts/broadcom/stingray/stingray.dtsi | 2 -
arch/arm64/boot/dts/exynos/exynos5433.dtsi | 9 +-
arch/arm64/boot/dts/exynos/exynos7.dtsi | 4 -
arch/arm64/boot/dts/exynos/exynos850-e850-96.dts | 5 +
arch/arm64/boot/dts/exynos/exynos850.dtsi | 19 +-
arch/arm64/boot/dts/exynos/exynosautov9-sadk.dts | 4 +
arch/arm64/boot/dts/exynos/exynosautov9.dtsi | 116 +-
arch/arm64/boot/dts/freescale/Makefile | 9 +
.../dts/freescale/fsl-ls1028a-kontron-sl28.dts | 9 +
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 2 +
arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts | 2 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 2 -
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 6 +-
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 6 +-
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 6 +-
arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi | 10 +-
arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi | 2 +-
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 6 +-
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 6 +-
arch/arm64/boot/dts/freescale/imx8-ss-vpu.dtsi | 74 +
.../dts/freescale/imx8mm-beacon-baseboard.dtsi | 3 +
.../dts/freescale/imx8mm-data-modul-edm-sbc.dts | 997 +
arch/arm64/boot/dts/freescale/imx8mm-emcon.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi | 20 +
.../boot/dts/freescale/imx8mm-kontron-n801x-s.dts | 2 +-
.../dts/freescale/imx8mm-kontron-n801x-som.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8mm-mx8menlo.dts | 334 +
.../boot/dts/freescale/imx8mm-venice-gw71xx.dtsi | 1 +
.../boot/dts/freescale/imx8mm-venice-gw72xx.dtsi | 1 +
.../boot/dts/freescale/imx8mm-venice-gw73xx.dtsi | 2 +
.../boot/dts/freescale/imx8mm-venice-gw7901.dts | 16 +-
.../boot/dts/freescale/imx8mm-venice-gw7902.dts | 17 +-
.../boot/dts/freescale/imx8mm-venice-gw7903.dts | 1 +
.../boot/dts/freescale/imx8mm-verdin-dahlia.dtsi | 2 +-
.../boot/dts/freescale/imx8mm-verdin-wifi.dtsi | 26 +-
arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 411 +-
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 8 +-
.../dts/freescale/imx8mn-beacon-baseboard.dtsi | 3 +
.../boot/dts/freescale/imx8mn-bsh-smm-s2pro.dts | 90 +
arch/arm64/boot/dts/freescale/imx8mn-ddr3l-evk.dts | 114 +
arch/arm64/boot/dts/freescale/imx8mn-evk.dts | 54 +-
arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi | 45 +
.../boot/dts/freescale/imx8mn-venice-gw7902.dts | 8 +
arch/arm64/boot/dts/freescale/imx8mn.dtsi | 14 +-
.../dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts | 175 +
.../boot/dts/freescale/imx8mp-icore-mx8mp.dtsi | 186 +
.../boot/dts/freescale/imx8mp-venice-gw74xx.dts | 896 +
.../boot/dts/freescale/imx8mp-verdin-dahlia.dtsi | 129 +
.../boot/dts/freescale/imx8mp-verdin-dev.dtsi | 46 +
.../dts/freescale/imx8mp-verdin-nonwifi-dahlia.dts | 18 +
.../dts/freescale/imx8mp-verdin-nonwifi-dev.dts | 18 +
.../boot/dts/freescale/imx8mp-verdin-nonwifi.dtsi | 54 +
.../dts/freescale/imx8mp-verdin-wifi-dahlia.dts | 18 +
.../boot/dts/freescale/imx8mp-verdin-wifi-dev.dts | 18 +
.../boot/dts/freescale/imx8mp-verdin-wifi.dtsi | 82 +
arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 1380 +
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 247 +-
.../dts/freescale/imx8mq-kontron-pitx-imx8m.dts | 2 +-
.../boot/dts/freescale/imx8mq-librem5-devkit.dts | 2 +-
.../arm64/boot/dts/freescale/imx8mq-librem5-r4.dts | 4 +
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi | 15 +-
.../boot/dts/freescale/imx8mq-mnt-reform2.dts | 2 +-
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 15 +-
arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 25 +
arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 24 +
arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 4 +-
arch/arm64/boot/dts/hisilicon/hi3670.dtsi | 4 +-
arch/arm64/boot/dts/intel/Makefile | 3 +-
arch/arm64/boot/dts/intel/socfpga_agilex.dtsi | 2 -
arch/arm64/boot/dts/intel/socfpga_agilex_n6000.dts | 66 +
arch/arm64/boot/dts/marvell/armada-3720-db.dts | 2 +-
.../dts/marvell/armada-3720-espressobin-ultra.dts | 9 +-
.../boot/dts/marvell/armada-3720-turris-mox.dts | 14 +-
arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts | 21 +-
arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 4 +-
arch/arm64/boot/dts/marvell/armada-7040-db.dts | 4 +-
.../boot/dts/marvell/armada-7040-mochabin.dts | 2 +-
.../dts/marvell/armada-8040-clearfog-gt-8k.dts | 2 +-
arch/arm64/boot/dts/marvell/armada-8040-db.dts | 4 +-
arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi | 2 +-
.../boot/dts/marvell/armada-8040-puzzle-m801.dts | 2 +-
arch/arm64/boot/dts/marvell/armada-ap80x.dtsi | 2 +-
arch/arm64/boot/dts/marvell/armada-cp11x.dtsi | 2 +-
arch/arm64/boot/dts/marvell/cn9130-crb.dtsi | 2 +-
arch/arm64/boot/dts/marvell/cn9130-db.dtsi | 2 +-
arch/arm64/boot/dts/marvell/cn9131-db.dtsi | 2 +-
arch/arm64/boot/dts/mediatek/Makefile | 2 +
arch/arm64/boot/dts/mediatek/mt2712e.dtsi | 10 +-
arch/arm64/boot/dts/mediatek/mt6359.dtsi | 298 +
arch/arm64/boot/dts/mediatek/mt7622.dtsi | 52 +-
arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts | 74 +
arch/arm64/boot/dts/mediatek/mt7986a.dtsi | 39 +
arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts | 70 +
arch/arm64/boot/dts/mediatek/mt8167.dtsi | 2 +-
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 29 +-
.../boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi | 2 +-
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 2 +-
arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts | 2 +-
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 17 +-
arch/arm64/boot/dts/mediatek/mt8192-evb.dts | 1 +
arch/arm64/boot/dts/mediatek/mt8192.dtsi | 526 +-
arch/arm64/boot/dts/mediatek/mt8195-demo.dts | 450 +
arch/arm64/boot/dts/mediatek/mt8195-evb.dts | 181 +
arch/arm64/boot/dts/mediatek/mt8195.dtsi | 1045 +
arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi | 1 -
arch/arm64/boot/dts/microchip/sparx5_nand.dtsi | 2 +-
arch/arm64/boot/dts/microchip/sparx5_pcb125.dts | 4 +-
.../boot/dts/microchip/sparx5_pcb134_board.dtsi | 4 +-
.../boot/dts/microchip/sparx5_pcb135_board.dtsi | 4 +-
arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | 223 +
.../dts/nvidia/tegra186-p3509-0000+p3636-0001.dts | 2 +-
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 15 +-
arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts | 225 +-
.../arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi | 225 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 42 +-
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 2 +-
arch/arm64/boot/dts/nvidia/tegra210.dtsi | 5 +-
.../arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi | 12 +
.../dts/nvidia/tegra234-p3737-0000+p3701-0000.dts | 223 +
arch/arm64/boot/dts/nvidia/tegra234.dtsi | 67 +-
arch/arm64/boot/dts/qcom/Makefile | 5 +-
arch/arm64/boot/dts/qcom/apq8096-db820c.dts | 24 +-
arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts | 2 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 46 +-
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 2 +-
arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi | 2 +-
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 58 +-
arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts | 59 +-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 102 +-
arch/arm64/boot/dts/qcom/msm8953.dtsi | 63 +-
arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts | 36 +-
arch/arm64/boot/dts/qcom/msm8992.dtsi | 24 +-
.../dts/qcom/msm8994-huawei-angler-rev-101.dts | 21 +-
.../dts/qcom/msm8994-sony-xperia-kitakami.dtsi | 89 +-
arch/arm64/boot/dts/qcom/msm8994.dtsi | 133 +-
arch/arm64/boot/dts/qcom/msm8996-mtp.dts | 8 +-
.../boot/dts/qcom/msm8996-sony-xperia-tone.dtsi | 18 +-
.../arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi | 56 +-
arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts | 9 +
.../arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts | 9 +
arch/arm64/boot/dts/qcom/msm8996.dtsi | 273 +-
.../boot/dts/qcom/msm8998-oneplus-common.dtsi | 31 +
arch/arm64/boot/dts/qcom/msm8998.dtsi | 28 +-
arch/arm64/boot/dts/qcom/pm8350.dtsi | 31 +
arch/arm64/boot/dts/qcom/pm8350b.dtsi | 31 +
arch/arm64/boot/dts/qcom/pm8350c.dtsi | 41 +-
arch/arm64/boot/dts/qcom/pm8450.dtsi | 59 +
arch/arm64/boot/dts/qcom/pmr735a.dtsi | 32 +-
arch/arm64/boot/dts/qcom/pmr735b.dtsi | 31 +
arch/arm64/boot/dts/qcom/qcs404-evb.dtsi | 7 +-
arch/arm64/boot/dts/qcom/qcs404.dtsi | 102 +-
arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 2 +-
arch/arm64/boot/dts/qcom/sa8155p-adp.dts | 193 +
.../arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi | 11 +-
.../boot/dts/qcom/sc7180-trogdor-homestar-r2.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-homestar-r3.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-homestar-r4.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-homestar.dtsi | 7 -
.../qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dts | 2 +-
.../qcom/sc7180-trogdor-lazor-limozeen-nots-r9.dts | 4 +-
.../dts/qcom/sc7180-trogdor-lazor-limozeen-r4.dts | 2 +-
.../dts/qcom/sc7180-trogdor-lazor-limozeen-r9.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r0.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r1-lte.dts | 4 -
.../boot/dts/qcom/sc7180-trogdor-lazor-r1.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r3-kb.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r3-lte.dts | 6 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r3.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r9-kb.dts | 2 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r9-lte.dts | 6 +-
.../boot/dts/qcom/sc7180-trogdor-lazor-r9.dts | 2 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor.dtsi | 7 +-
.../arm64/boot/dts/qcom/sc7180-trogdor-pompom.dtsi | 9 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts | 9 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 9 +-
arch/arm64/boot/dts/qcom/sc7180.dtsi | 22 +-
.../dts/qcom/{sc7280-crd.dts => sc7280-crd-r3.dts} | 7 +-
arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts | 365 +
.../dts/qcom/sc7280-herobrine-herobrine-r0.dts | 1352 -
.../dts/qcom/sc7280-herobrine-herobrine-r1.dts | 38 +
.../boot/dts/qcom/sc7280-herobrine-villager-r0.dts | 304 +
arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 93 +-
arch/arm64/boot/dts/qcom/sc7280-idp.dts | 2 +-
arch/arm64/boot/dts/qcom/sc7280-idp.dtsi | 36 +-
arch/arm64/boot/dts/qcom/sc7280-idp2.dts | 4 +
arch/arm64/boot/dts/qcom/sc7280-qcard.dtsi | 73 +-
arch/arm64/boot/dts/qcom/sc7280.dtsi | 404 +-
arch/arm64/boot/dts/qcom/sdm630.dtsi | 16 +-
arch/arm64/boot/dts/qcom/sdm660.dtsi | 2 +-
arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 33 +
.../boot/dts/qcom/sdm845-xiaomi-beryllium.dts | 35 +-
arch/arm64/boot/dts/qcom/sdm845.dtsi | 60 +-
arch/arm64/boot/dts/qcom/sm6125.dtsi | 16 +-
arch/arm64/boot/dts/qcom/sm6350.dtsi | 252 +-
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 61 +-
arch/arm64/boot/dts/qcom/sm8150.dtsi | 352 +-
arch/arm64/boot/dts/qcom/sm8250-mtp.dts | 12 +
.../boot/dts/qcom/sm8250-sony-xperia-edo.dtsi | 30 +-
arch/arm64/boot/dts/qcom/sm8250.dtsi | 363 +-
arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 4 +
.../dts/qcom/sm8350-microsoft-surface-duo2.dts | 12 +
arch/arm64/boot/dts/qcom/sm8350.dtsi | 207 +-
arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 41 +
arch/arm64/boot/dts/qcom/sm8450-qrd.dts | 34 +
arch/arm64/boot/dts/qcom/sm8450.dtsi | 3780 +-
arch/arm64/boot/dts/renesas/Makefile | 6 +
.../boot/dts/renesas/beacon-renesom-baseboard.dtsi | 10 +-
arch/arm64/boot/dts/renesas/draak.dtsi | 60 +-
arch/arm64/boot/dts/renesas/ebisu.dtsi | 60 +-
arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774c0-cat874.dts | 2 +-
arch/arm64/boot/dts/renesas/r8a774c0.dtsi | 8 +-
arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 5 +-
arch/arm64/boot/dts/renesas/r8a77951.dtsi | 22 +-
arch/arm64/boot/dts/renesas/r8a77960.dtsi | 22 +-
arch/arm64/boot/dts/renesas/r8a77961.dtsi | 47 +-
arch/arm64/boot/dts/renesas/r8a77965.dtsi | 22 +-
arch/arm64/boot/dts/renesas/r8a77970.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77980.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77990.dtsi | 24 +-
arch/arm64/boot/dts/renesas/r8a77995.dtsi | 24 +-
.../boot/dts/renesas/r8a779a0-falcon-cpu.dtsi | 12 +-
arch/arm64/boot/dts/renesas/r8a779a0-falcon.dts | 24 +
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 131 +-
.../boot/dts/renesas/r8a779f0-spider-cpu.dtsi | 20 +
.../boot/dts/renesas/r8a779f0-spider-ethernet.dtsi | 15 +
arch/arm64/boot/dts/renesas/r8a779f0-spider.dts | 10 +
arch/arm64/boot/dts/renesas/r8a779f0.dtsi | 163 +
.../boot/dts/renesas/r8a779g0-white-hawk-cpu.dtsi | 45 +
.../arm64/boot/dts/renesas/r8a779g0-white-hawk.dts | 22 +
arch/arm64/boot/dts/renesas/r8a779g0.dtsi | 122 +
arch/arm64/boot/dts/renesas/r9a07g043.dtsi | 885 +
arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts | 21 +
arch/arm64/boot/dts/renesas/r9a07g044.dtsi | 8 +-
arch/arm64/boot/dts/renesas/r9a07g044c2-smarc.dts | 76 -
arch/arm64/boot/dts/renesas/r9a07g054.dtsi | 592 +-
arch/arm64/boot/dts/renesas/r9a07g054l2-smarc.dts | 8 -
arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dts | 44 +
arch/arm64/boot/dts/renesas/r9a09g011.dtsi | 93 +
arch/arm64/boot/dts/renesas/rz-smarc-common.dtsi | 24 -
arch/arm64/boot/dts/renesas/rzg2l-smarc.dtsi | 30 +
.../boot/dts/renesas/rzg2lc-smarc-pinfunction.dtsi | 64 +-
arch/arm64/boot/dts/renesas/rzg2lc-smarc-som.dtsi | 61 +
arch/arm64/boot/dts/renesas/rzg2lc-smarc.dtsi | 38 +
.../boot/dts/renesas/rzg2ul-smarc-pinfunction.dtsi | 119 +
arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi | 251 +
arch/arm64/boot/dts/renesas/rzg2ul-smarc.dtsi | 63 +
arch/arm64/boot/dts/renesas/salvator-common.dtsi | 51 +-
arch/arm64/boot/dts/renesas/ulcb-kf.dtsi | 10 +-
arch/arm64/boot/dts/renesas/ulcb.dtsi | 49 +
arch/arm64/boot/dts/rockchip/Makefile | 6 +-
arch/arm64/boot/dts/rockchip/rk3308.dtsi | 5 +-
arch/arm64/boot/dts/rockchip/rk3328.dtsi | 22 +-
arch/arm64/boot/dts/rockchip/rk3368.dtsi | 2 +
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 3 +-
.../boot/dts/rockchip/rk3399-gru-chromebook.dtsi | 7 +
.../boot/dts/rockchip/rk3399-gru-scarlet.dtsi | 12 +
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi | 28 +
arch/arm64/boot/dts/rockchip/rk3399-hugsun-x99.dts | 3 +-
.../boot/dts/rockchip/rk3399-khadas-edge.dtsi | 3 +-
arch/arm64/boot/dts/rockchip/rk3399-leez-p710.dts | 3 +-
arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi | 25 +
arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts | 3 +-
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi | 3 +-
arch/arm64/boot/dts/rockchip/rk3399.dtsi | 45 +-
arch/arm64/boot/dts/rockchip/rk3566-pinenote.dtsi | 80 +
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts | 41 +-
arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts | 615 +
arch/arm64/boot/dts/rockchip/rk3566-roc-pc.dts | 579 +
.../boot/dts/rockchip/rk3566-soquartz-cm4.dts | 177 +
arch/arm64/boot/dts/rockchip/rk3566-soquartz.dtsi | 616 +
arch/arm64/boot/dts/rockchip/rk3566.dtsi | 11 +
arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 142 +-
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 46 +
arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts | 562 +
arch/arm64/boot/dts/rockchip/rk3568.dtsi | 23 +
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 76 +-
arch/arm64/boot/dts/sprd/whale2.dtsi | 4 +
arch/arm64/boot/dts/synaptics/as370.dtsi | 173 -
arch/arm64/boot/dts/tesla/fsd.dtsi | 10 +-
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 307 +
arch/arm64/boot/dts/ti/k3-am62-mcu.dtsi | 48 +
arch/arm64/boot/dts/ti/k3-am62.dtsi | 1 +
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 289 +
arch/arm64/boot/dts/ti/k3-am64-mcu.dtsi | 2 -
arch/arm64/boot/dts/ti/k3-am642-sk.dts | 62 +
.../boot/dts/ti/k3-j721e-common-proc-board.dts | 77 +-
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 75 +-
arch/arm64/boot/dts/ti/k3-j721e-sk.dts | 139 +-
arch/arm64/boot/dts/toshiba/tmpv7708-rm-mbrc.dts | 9 -
.../boot/dts/toshiba/tmpv7708-visrobo-vrb.dts | 6 -
.../boot/dts/toshiba/tmpv7708-visrobo-vrc.dtsi | 4 -
arch/arm64/boot/dts/toshiba/tmpv7708.dtsi | 96 +-
arch/arm64/boot/install.sh | 21 -
arch/arm64/configs/defconfig | 33 +
arch/arm64/crypto/Kconfig | 16 +-
arch/arm64/crypto/Makefile | 8 +-
arch/arm64/crypto/sm4-ce-cipher-core.S | 36 +
arch/arm64/crypto/sm4-ce-cipher-glue.c | 82 +
arch/arm64/crypto/sm4-ce-core.S | 688 +-
arch/arm64/crypto/sm4-ce-glue.c | 386 +-
arch/arm64/crypto/sm4-neon-core.S | 487 +
arch/arm64/crypto/sm4-neon-glue.c | 442 +
arch/arm64/include/asm/Kbuild | 1 +
arch/arm64/include/asm/arch_gicv3.h | 6 -
arch/arm64/include/asm/archrandom.h | 2 +-
arch/arm64/include/asm/asm-bug.h | 4 +-
arch/arm64/include/asm/barrier.h | 4 +
arch/arm64/include/asm/cache.h | 17 +-
arch/arm64/include/asm/compat.h | 93 +-
arch/arm64/include/asm/compiler.h | 16 -
arch/arm64/include/asm/cpu.h | 4 +
arch/arm64/include/asm/cpufeature.h | 24 +
arch/arm64/include/asm/cputype.h | 10 +-
arch/arm64/include/asm/debug-monitors.h | 4 +-
arch/arm64/include/asm/el2_setup.h | 64 +-
arch/arm64/include/asm/esr.h | 29 +-
arch/arm64/include/asm/exception.h | 29 +-
arch/arm64/include/asm/fpsimd.h | 135 +-
arch/arm64/include/asm/fpsimdmacros.h | 87 +
arch/arm64/include/asm/ftrace.h | 7 +
arch/arm64/include/asm/hugetlb.h | 6 +-
arch/arm64/include/asm/hwcap.h | 9 +
arch/arm64/include/asm/insn.h | 9 +
arch/arm64/include/asm/io.h | 4 +
arch/arm64/include/asm/kvm_arm.h | 4 +-
arch/arm64/include/asm/kvm_asm.h | 1 +
arch/arm64/include/asm/kvm_emulate.h | 13 +-
arch/arm64/include/asm/kvm_host.h | 50 +-
arch/arm64/include/asm/kvm_mmu.h | 3 +
arch/arm64/include/asm/kvm_ras.h | 2 +-
arch/arm64/include/asm/mman.h | 24 -
arch/arm64/include/asm/mte-kasan.h | 1 +
arch/arm64/include/asm/mte.h | 1 +
arch/arm64/include/asm/percpu.h | 1 +
arch/arm64/include/asm/pgtable-hwdef.h | 4 +-
arch/arm64/include/asm/pgtable-prot.h | 1 +
arch/arm64/include/asm/pgtable.h | 94 +-
arch/arm64/include/asm/processor.h | 40 +-
arch/arm64/include/asm/stacktrace.h | 32 -
arch/arm64/include/asm/sysreg.h | 181 +-
arch/arm64/include/asm/system_misc.h | 4 +-
arch/arm64/include/asm/thread_info.h | 2 +
arch/arm64/include/asm/traps.h | 12 +-
arch/arm64/include/asm/uaccess.h | 15 +
arch/arm64/include/asm/unistd.h | 1 +
.../include/asm/xen/{page-coherent.h => xen-ops.h} | 2 +-
arch/arm64/include/uapi/asm/hwcap.h | 9 +
arch/arm64/include/uapi/asm/kvm.h | 36 +
arch/arm64/include/uapi/asm/ptrace.h | 69 +-
arch/arm64/include/uapi/asm/sigcontext.h | 55 +-
arch/arm64/kernel/Makefile | 4 +
arch/arm64/kernel/cpu_errata.c | 4 +-
arch/arm64/kernel/cpufeature.c | 195 +-
arch/arm64/kernel/cpuinfo.c | 14 +
arch/arm64/kernel/crash_dump.c | 29 +-
arch/arm64/kernel/debug-monitors.c | 12 +-
arch/arm64/kernel/entry-common.c | 25 +-
arch/arm64/kernel/entry-fpsimd.S | 36 +
arch/arm64/kernel/entry-ftrace.S | 17 -
arch/arm64/kernel/entry.S | 2 +-
arch/arm64/kernel/fpsimd.c | 667 +-
arch/arm64/kernel/ftrace.c | 17 +
arch/arm64/kernel/hibernate.c | 2 +-
arch/arm64/kernel/hw_breakpoint.c | 4 +-
arch/arm64/kernel/kgdb.c | 6 +-
arch/arm64/kernel/machine_kexec.c | 9 +-
arch/arm64/kernel/machine_kexec_file.c | 12 +-
arch/arm64/kernel/mte.c | 54 +-
arch/arm64/kernel/paravirt.c | 29 +-
arch/arm64/kernel/probes/kprobes.c | 4 +-
arch/arm64/kernel/probes/uprobes.c | 4 +-
arch/arm64/kernel/process.c | 59 +-
arch/arm64/kernel/ptrace.c | 366 +-
arch/arm64/kernel/relocate_kernel.S | 22 +-
arch/arm64/kernel/setup.c | 24 +-
arch/arm64/kernel/signal.c | 189 +-
arch/arm64/kernel/signal32.c | 1 +
arch/arm64/kernel/smp.c | 1 +
arch/arm64/kernel/stacktrace.c | 124 +-
arch/arm64/kernel/sys_compat.c | 2 +-
arch/arm64/kernel/syscall.c | 29 +-
arch/arm64/kernel/traps.c | 67 +-
arch/arm64/kernel/vdso/Makefile | 6 +-
arch/arm64/kernel/vdso32/Makefile | 3 -
arch/arm64/kernel/vmlinux.lds.S | 21 +-
arch/arm64/kvm/Makefile | 4 +-
arch/arm64/kvm/arch_timer.c | 47 +-
arch/arm64/kvm/arm.c | 168 +-
arch/arm64/kvm/fpsimd.c | 43 +-
arch/arm64/kvm/guest.c | 10 +-
arch/arm64/kvm/handle_exit.c | 65 +-
arch/arm64/kvm/hyp/include/hyp/switch.h | 2 +-
arch/arm64/kvm/hyp/include/nvhe/fixed_config.h | 28 +-
arch/arm64/kvm/hyp/include/nvhe/mm.h | 6 +-
arch/arm64/kvm/hyp/nvhe/host.S | 32 +-
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 18 +-
arch/arm64/kvm/hyp/nvhe/mm.c | 78 +-
arch/arm64/kvm/hyp/nvhe/setup.c | 31 +-
arch/arm64/kvm/hyp/nvhe/switch.c | 87 +-
arch/arm64/kvm/hyp/nvhe/sys_regs.c | 5 +-
arch/arm64/kvm/hyp/vgic-v3-sr.c | 4 +-
arch/arm64/kvm/hyp/vhe/switch.c | 11 +-
arch/arm64/kvm/hypercalls.c | 327 +-
arch/arm64/kvm/inject_fault.c | 4 +-
arch/arm64/kvm/mmu.c | 68 +-
arch/arm64/kvm/pmu-emul.c | 3 +-
arch/arm64/kvm/pmu.c | 40 +-
arch/arm64/kvm/psci.c | 248 +-
arch/arm64/kvm/sys_regs.c | 308 +-
arch/arm64/kvm/sys_regs.h | 9 +-
arch/arm64/kvm/vgic/vgic-init.c | 13 +-
arch/arm64/kvm/vgic/vgic-its.c | 160 +-
arch/arm64/kvm/vgic/vgic-mmio-v2.c | 18 +-
arch/arm64/kvm/vgic/vgic-mmio-v3.c | 125 +-
arch/arm64/kvm/vgic/vgic-v3.c | 4 +
arch/arm64/kvm/vgic/vgic.h | 10 +
arch/arm64/lib/delay.c | 12 +-
arch/arm64/lib/insn.c | 67 +-
arch/arm64/lib/mte.S | 4 +-
arch/arm64/mm/copypage.c | 4 +-
arch/arm64/mm/dma-mapping.c | 7 +-
arch/arm64/mm/fault.c | 73 +-
arch/arm64/mm/flush.c | 14 +
arch/arm64/mm/hugetlbpage.c | 61 +-
arch/arm64/mm/init.c | 77 +-
arch/arm64/mm/ioremap.c | 8 +
arch/arm64/mm/mmap.c | 25 +
arch/arm64/mm/trans_pgd.c | 2 +-
arch/arm64/net/bpf_jit.h | 17 +
arch/arm64/net/bpf_jit_comp.c | 256 +-
arch/arm64/tools/Makefile | 8 +-
arch/arm64/tools/cpucaps | 3 +
arch/arm64/tools/gen-sysreg.awk | 268 +
arch/arm64/tools/sysreg | 369 +
arch/csky/Kbuild | 2 +
arch/csky/Kconfig | 8 +
arch/csky/Makefile | 3 -
arch/csky/abiv1/Makefile | 2 -
arch/csky/abiv1/memcpy.S | 347 -
arch/csky/abiv1/strksyms.c | 6 -
arch/csky/abiv2/Makefile | 2 +
arch/csky/abiv2/strksyms.c | 4 +-
arch/csky/boot/Makefile | 1 -
arch/csky/include/asm/Kbuild | 3 +
arch/csky/include/asm/atomic.h | 237 +
arch/csky/include/asm/barrier.h | 11 +-
arch/csky/include/asm/cmpxchg.h | 64 +-
arch/csky/include/asm/io.h | 12 +-
arch/csky/include/asm/processor.h | 2 +-
arch/csky/include/asm/spinlock.h | 89 -
arch/csky/include/asm/spinlock_types.h | 27 -
arch/csky/kernel/Makefile | 2 +-
arch/csky/kernel/io.c | 91 +
arch/csky/kernel/module.c | 2 +-
arch/csky/kernel/power.c | 6 +-
arch/csky/kernel/probes/kprobes.c | 2 +-
arch/csky/kernel/probes/uprobes.c | 2 +-
arch/csky/kernel/process.c | 16 +-
arch/csky/lib/Makefile | 3 +
arch/csky/lib/string.c | 134 +
arch/csky/mm/dma-mapping.c | 1 -
arch/h8300/Kbuild | 5 -
arch/h8300/Kconfig | 49 -
arch/h8300/Kconfig.cpu | 99 -
arch/h8300/Makefile | 44 -
arch/h8300/boot/Makefile | 27 -
arch/h8300/boot/compressed/Makefile | 45 -
arch/h8300/boot/compressed/head.S | 49 -
arch/h8300/boot/compressed/misc.c | 76 -
arch/h8300/boot/compressed/vmlinux.lds | 35 -
arch/h8300/boot/compressed/vmlinux.scr | 9 -
arch/h8300/boot/dts/Makefile | 6 -
arch/h8300/boot/dts/edosk2674.dts | 108 -
arch/h8300/boot/dts/h8300h_sim.dts | 97 -
arch/h8300/boot/dts/h8s_sim.dts | 100 -
arch/h8300/configs/edosk2674_defconfig | 48 -
arch/h8300/configs/h8300h-sim_defconfig | 48 -
arch/h8300/configs/h8s-sim_defconfig | 48 -
arch/h8300/include/asm/Kbuild | 8 -
arch/h8300/include/asm/bitops.h | 179 -
arch/h8300/include/asm/bug.h | 13 -
arch/h8300/include/asm/byteorder.h | 7 -
arch/h8300/include/asm/cache.h | 12 -
arch/h8300/include/asm/elf.h | 102 -
arch/h8300/include/asm/flat.h | 36 -
arch/h8300/include/asm/hash.h | 54 -
arch/h8300/include/asm/io.h | 67 -
arch/h8300/include/asm/irq.h | 25 -
arch/h8300/include/asm/irqflags.h | 97 -
arch/h8300/include/asm/kgdb.h | 45 -
arch/h8300/include/asm/mmu_context.h | 6 -
arch/h8300/include/asm/page.h | 17 -
arch/h8300/include/asm/page_offset.h | 2 -
arch/h8300/include/asm/pgtable.h | 43 -
arch/h8300/include/asm/processor.h | 126 -
arch/h8300/include/asm/ptrace.h | 39 -
arch/h8300/include/asm/signal.h | 23 -
arch/h8300/include/asm/smp.h | 1 -
arch/h8300/include/asm/string.h | 18 -
arch/h8300/include/asm/switch_to.h | 52 -
arch/h8300/include/asm/syscall.h | 43 -
arch/h8300/include/asm/thread_info.h | 102 -
arch/h8300/include/asm/tlb.h | 7 -
arch/h8300/include/asm/traps.h | 41 -
arch/h8300/include/asm/user.h | 71 -
arch/h8300/include/asm/vmalloc.h | 4 -
arch/h8300/include/uapi/asm/byteorder.h | 7 -
arch/h8300/include/uapi/asm/posix_types.h | 13 -
arch/h8300/include/uapi/asm/ptrace.h | 43 -
arch/h8300/include/uapi/asm/sigcontext.h | 19 -
arch/h8300/include/uapi/asm/signal.h | 92 -
arch/h8300/include/uapi/asm/unistd.h | 8 -
arch/h8300/kernel/Makefile | 22 -
arch/h8300/kernel/asm-offsets.c | 70 -
arch/h8300/kernel/entry.S | 433 -
arch/h8300/kernel/h8300_ksyms.c | 35 -
arch/h8300/kernel/head_ram.S | 60 -
arch/h8300/kernel/head_rom.S | 111 -
arch/h8300/kernel/irq.c | 99 -
arch/h8300/kernel/kgdb.c | 135 -
arch/h8300/kernel/module.c | 71 -
arch/h8300/kernel/process.c | 173 -
arch/h8300/kernel/ptrace.c | 199 -
arch/h8300/kernel/ptrace_h.c | 256 -
arch/h8300/kernel/ptrace_s.c | 44 -
arch/h8300/kernel/setup.c | 213 -
arch/h8300/kernel/signal.c | 287 -
arch/h8300/kernel/sim-console.c | 31 -
arch/h8300/kernel/syscalls.c | 15 -
arch/h8300/kernel/traps.c | 156 -
arch/h8300/kernel/vmlinux.lds.S | 69 -
arch/h8300/lib/Makefile | 9 -
arch/h8300/lib/abs.S | 21 -
arch/h8300/lib/ashldi3.c | 25 -
arch/h8300/lib/ashrdi3.c | 25 -
arch/h8300/lib/delay.c | 41 -
arch/h8300/lib/libgcc.h | 78 -
arch/h8300/lib/lshrdi3.c | 24 -
arch/h8300/lib/memcpy.S | 86 -
arch/h8300/lib/memset.S | 70 -
arch/h8300/lib/moddivsi3.S | 73 -
arch/h8300/lib/modsi3.S | 73 -
arch/h8300/lib/muldi3.c | 45 -
arch/h8300/lib/mulsi3.S | 39 -
arch/h8300/lib/ucmpdi2.c | 18 -
arch/h8300/lib/udivsi3.S | 77 -
arch/h8300/mm/Makefile | 6 -
arch/h8300/mm/fault.c | 57 -
arch/h8300/mm/init.c | 95 -
arch/h8300/mm/memory.c | 52 -
arch/hexagon/kernel/process.c | 12 +-
arch/ia64/Makefile | 5 +-
arch/ia64/include/asm/hugetlb.h | 5 +-
arch/ia64/include/asm/iommu_table.h | 7 -
arch/ia64/include/asm/ptrace.h | 4 -
arch/ia64/include/asm/timex.h | 1 +
arch/ia64/install.sh | 10 -
arch/ia64/kernel/crash_dump.c | 32 +-
arch/ia64/kernel/kprobes.c | 64 +-
arch/ia64/kernel/mca.c | 1 -
arch/ia64/kernel/palinfo.c | 2 +-
arch/ia64/kernel/process.c | 19 +-
arch/ia64/kernel/ptrace.c | 59 +-
arch/ia64/kernel/setup.c | 2 +-
arch/ia64/kernel/smpboot.c | 4 -
arch/ia64/kernel/traps.c | 2 +-
arch/ia64/kernel/uncached.c | 2 +-
arch/ia64/mm/init.c | 6 +-
arch/ia64/mm/tlb.c | 4 +-
arch/loongarch/Kbuild | 6 +
arch/loongarch/Kconfig | 439 +
.../asm/fpu/internal.h => loongarch/Kconfig.debug} | 0
arch/loongarch/Makefile | 100 +
.../Kconfig.debug => loongarch/boot/.gitignore} | 2 +-
arch/loongarch/boot/Makefile | 16 +
arch/loongarch/boot/dts/Makefile | 4 +
arch/loongarch/configs/loongson3_defconfig | 771 +
arch/loongarch/include/asm/Kbuild | 30 +
arch/loongarch/include/asm/acenv.h | 18 +
arch/loongarch/include/asm/acpi.h | 38 +
arch/loongarch/include/asm/addrspace.h | 112 +
arch/loongarch/include/asm/asm-offsets.h | 5 +
arch/loongarch/include/asm/asm-prototypes.h | 7 +
arch/loongarch/include/asm/asm.h | 191 +
arch/loongarch/include/asm/asmmacro.h | 289 +
arch/loongarch/include/asm/atomic.h | 362 +
arch/loongarch/include/asm/barrier.h | 159 +
arch/loongarch/include/asm/bitops.h | 33 +
arch/loongarch/include/asm/bitrev.h | 34 +
arch/loongarch/include/asm/bootinfo.h | 43 +
arch/loongarch/include/asm/branch.h | 21 +
arch/loongarch/include/asm/bug.h | 23 +
arch/loongarch/include/asm/cache.h | 13 +
arch/loongarch/include/asm/cacheflush.h | 80 +
arch/loongarch/include/asm/cacheops.h | 37 +
arch/loongarch/include/asm/clocksource.h | 12 +
arch/loongarch/include/asm/cmpxchg.h | 123 +
arch/loongarch/include/asm/compiler.h | 15 +
arch/loongarch/include/asm/cpu-features.h | 73 +
arch/loongarch/include/asm/cpu-info.h | 116 +
arch/loongarch/include/asm/cpu.h | 127 +
arch/loongarch/include/asm/cpufeature.h | 24 +
arch/loongarch/include/asm/delay.h | 26 +
arch/loongarch/include/asm/dma-direct.h | 11 +
arch/loongarch/include/asm/dmi.h | 24 +
arch/loongarch/include/asm/efi.h | 41 +
arch/loongarch/include/asm/elf.h | 301 +
arch/loongarch/include/asm/entry-common.h | 13 +
arch/loongarch/include/asm/exec.h | 10 +
arch/loongarch/include/asm/fb.h | 23 +
arch/loongarch/include/asm/fixmap.h | 13 +
arch/loongarch/include/asm/fpregdef.h | 53 +
arch/loongarch/include/asm/fpu.h | 129 +
arch/loongarch/include/asm/futex.h | 108 +
arch/loongarch/include/asm/hardirq.h | 26 +
arch/loongarch/include/asm/hugetlb.h | 83 +
arch/loongarch/include/asm/hw_irq.h | 17 +
arch/loongarch/include/asm/idle.h | 9 +
arch/loongarch/include/asm/inst.h | 117 +
arch/loongarch/include/asm/io.h | 129 +
arch/loongarch/include/asm/irq.h | 132 +
arch/loongarch/include/asm/irq_regs.h | 27 +
arch/loongarch/include/asm/irqflags.h | 78 +
arch/loongarch/include/asm/kdebug.h | 23 +
arch/loongarch/include/asm/linkage.h | 36 +
arch/loongarch/include/asm/local.h | 138 +
arch/loongarch/include/asm/loongarch.h | 1516 +
arch/loongarch/include/asm/loongson.h | 153 +
arch/loongarch/include/asm/mmu.h | 16 +
arch/loongarch/include/asm/mmu_context.h | 152 +
arch/loongarch/include/asm/mmzone.h | 18 +
arch/loongarch/include/asm/module.h | 80 +
arch/loongarch/include/asm/module.lds.h | 7 +
arch/loongarch/include/asm/numa.h | 67 +
arch/loongarch/include/asm/page.h | 115 +
arch/loongarch/include/asm/percpu.h | 215 +
arch/loongarch/include/asm/perf_event.h | 10 +
arch/loongarch/include/asm/pgalloc.h | 103 +
arch/loongarch/include/asm/pgtable-bits.h | 131 +
arch/loongarch/include/asm/pgtable.h | 565 +
arch/loongarch/include/asm/prefetch.h | 29 +
arch/loongarch/include/asm/processor.h | 209 +
arch/loongarch/include/asm/ptrace.h | 152 +
arch/loongarch/include/asm/reboot.h | 10 +
arch/loongarch/include/asm/regdef.h | 41 +
arch/loongarch/include/asm/seccomp.h | 20 +
arch/loongarch/include/asm/serial.h | 11 +
arch/loongarch/include/asm/setup.h | 21 +
arch/loongarch/include/asm/shmparam.h | 12 +
arch/loongarch/include/asm/smp.h | 115 +
arch/loongarch/include/asm/sparsemem.h | 23 +
arch/loongarch/include/asm/stackframe.h | 219 +
arch/loongarch/include/asm/stacktrace.h | 74 +
arch/loongarch/include/asm/string.h | 12 +
arch/loongarch/include/asm/switch_to.h | 37 +
arch/loongarch/include/asm/syscall.h | 74 +
arch/loongarch/include/asm/thread_info.h | 106 +
arch/loongarch/include/asm/time.h | 50 +
arch/loongarch/include/asm/timex.h | 26 +
arch/loongarch/include/asm/tlb.h | 180 +
arch/loongarch/include/asm/tlbflush.h | 48 +
arch/loongarch/include/asm/topology.h | 41 +
arch/loongarch/include/asm/types.h | 19 +
arch/loongarch/include/asm/uaccess.h | 269 +
arch/loongarch/include/asm/unistd.h | 11 +
arch/loongarch/include/asm/vdso.h | 38 +
arch/loongarch/include/asm/vdso/clocksource.h | 8 +
arch/loongarch/include/asm/vdso/gettimeofday.h | 99 +
arch/loongarch/include/asm/vdso/processor.h | 14 +
arch/loongarch/include/asm/vdso/vdso.h | 30 +
arch/loongarch/include/asm/vdso/vsyscall.h | 27 +
arch/loongarch/include/asm/vermagic.h | 19 +
arch/loongarch/include/asm/vmalloc.h | 4 +
arch/{h8300 => loongarch}/include/uapi/asm/Kbuild | 2 +-
arch/loongarch/include/uapi/asm/auxvec.h | 17 +
arch/loongarch/include/uapi/asm/bitsperlong.h | 9 +
arch/loongarch/include/uapi/asm/break.h | 23 +
arch/loongarch/include/uapi/asm/byteorder.h | 13 +
arch/loongarch/include/uapi/asm/hwcap.h | 20 +
arch/loongarch/include/uapi/asm/ptrace.h | 52 +
arch/loongarch/include/uapi/asm/reg.h | 59 +
arch/loongarch/include/uapi/asm/sigcontext.h | 44 +
arch/loongarch/include/uapi/asm/signal.h | 13 +
arch/loongarch/include/uapi/asm/ucontext.h | 35 +
arch/loongarch/include/uapi/asm/unistd.h | 5 +
arch/{h8300 => loongarch}/kernel/.gitignore | 0
arch/loongarch/kernel/Makefile | 25 +
arch/loongarch/kernel/access-helper.h | 13 +
arch/loongarch/kernel/acpi.c | 337 +
arch/loongarch/kernel/asm-offsets.c | 264 +
arch/loongarch/kernel/cacheinfo.c | 123 +
arch/loongarch/kernel/cpu-probe.c | 292 +
arch/loongarch/kernel/dma.c | 40 +
arch/loongarch/kernel/efi.c | 72 +
arch/loongarch/kernel/elf.c | 30 +
arch/loongarch/kernel/entry.S | 89 +
arch/loongarch/kernel/env.c | 101 +
arch/loongarch/kernel/fpu.S | 261 +
arch/loongarch/kernel/genex.S | 95 +
arch/loongarch/kernel/head.S | 98 +
arch/loongarch/kernel/idle.c | 16 +
arch/loongarch/kernel/inst.c | 40 +
arch/loongarch/kernel/io.c | 94 +
arch/loongarch/kernel/irq.c | 93 +
arch/loongarch/kernel/mem.c | 64 +
arch/loongarch/kernel/module-sections.c | 121 +
arch/loongarch/kernel/module.c | 375 +
arch/loongarch/kernel/numa.c | 466 +
arch/loongarch/kernel/proc.c | 127 +
arch/loongarch/kernel/process.c | 269 +
arch/loongarch/kernel/ptrace.c | 431 +
arch/loongarch/kernel/reset.c | 102 +
arch/loongarch/kernel/setup.c | 373 +
arch/loongarch/kernel/signal.c | 566 +
arch/loongarch/kernel/smp.c | 749 +
arch/loongarch/kernel/switch.S | 35 +
arch/loongarch/kernel/syscall.c | 63 +
arch/loongarch/kernel/time.c | 214 +
arch/loongarch/kernel/topology.c | 52 +
arch/loongarch/kernel/traps.c | 725 +
arch/loongarch/kernel/vdso.c | 138 +
arch/loongarch/kernel/vmlinux.lds.S | 120 +
arch/loongarch/lib/Makefile | 6 +
arch/loongarch/lib/clear_user.S | 43 +
arch/loongarch/lib/copy_user.S | 47 +
arch/loongarch/lib/delay.c | 43 +
arch/loongarch/lib/dump_tlb.c | 111 +
arch/loongarch/mm/Makefile | 9 +
arch/loongarch/mm/cache.c | 141 +
arch/loongarch/mm/extable.c | 22 +
arch/loongarch/mm/fault.c | 261 +
arch/loongarch/mm/hugetlbpage.c | 87 +
arch/loongarch/mm/init.c | 178 +
arch/loongarch/mm/ioremap.c | 27 +
arch/loongarch/mm/maccess.c | 10 +
arch/loongarch/mm/mmap.c | 125 +
arch/loongarch/mm/page.S | 84 +
arch/loongarch/mm/pgtable.c | 130 +
arch/loongarch/mm/tlb.c | 305 +
arch/loongarch/mm/tlbex.S | 546 +
arch/loongarch/pci/Makefile | 7 +
.../boot/compressed => loongarch/vdso}/.gitignore | 4 +-
arch/loongarch/vdso/Makefile | 96 +
arch/loongarch/vdso/elf.S | 15 +
arch/loongarch/vdso/gen_vdso_offsets.sh | 13 +
arch/loongarch/vdso/sigreturn.S | 24 +
arch/loongarch/vdso/vdso.S | 22 +
arch/loongarch/vdso/vdso.lds.S | 72 +
arch/loongarch/vdso/vgettimeofday.c | 25 +
arch/m68k/Kbuild | 1 +
arch/m68k/Kconfig.bus | 10 -
arch/m68k/Kconfig.cpu | 4 +-
arch/m68k/Kconfig.machine | 18 +
arch/m68k/Makefile | 3 +-
arch/m68k/coldfire/Makefile | 2 +-
arch/m68k/coldfire/dma.c | 43 -
arch/m68k/coldfire/intc.c | 2 +-
arch/m68k/coldfire/m53xx.c | 2 +-
arch/m68k/coldfire/pci.c | 2 +-
arch/m68k/configs/amiga_defconfig | 5 +-
arch/m68k/configs/apollo_defconfig | 5 +-
arch/m68k/configs/atari_defconfig | 5 +-
arch/m68k/configs/bvme6000_defconfig | 5 +-
arch/m68k/configs/hp300_defconfig | 5 +-
arch/m68k/configs/mac_defconfig | 5 +-
arch/m68k/configs/multi_defconfig | 5 +-
arch/m68k/configs/mvme147_defconfig | 5 +-
arch/m68k/configs/mvme16x_defconfig | 5 +-
arch/m68k/configs/q40_defconfig | 5 +-
arch/m68k/configs/sun3_defconfig | 5 +-
arch/m68k/configs/sun3x_defconfig | 5 +-
arch/m68k/configs/virt_defconfig | 68 +
arch/m68k/emu/natfeat.c | 3 +-
arch/m68k/hp300/config.c | 7 -
arch/m68k/include/asm/Kbuild | 1 +
arch/m68k/include/asm/config.h | 2 +
arch/m68k/include/asm/dma.h | 483 -
arch/m68k/include/asm/elf.h | 9 +
arch/m68k/include/asm/export.h | 2 -
arch/m68k/include/asm/io.h | 3 +
arch/m68k/include/asm/irq.h | 3 +-
arch/m68k/include/asm/machdep.h | 2 -
arch/m68k/include/asm/mmu.h | 4 +-
arch/m68k/include/asm/pgtable_mm.h | 7 +
arch/m68k/include/asm/pgtable_no.h | 3 +-
arch/m68k/include/asm/raw_io.h | 6 +-
arch/m68k/include/asm/setup.h | 44 +-
arch/m68k/include/asm/timex.h | 2 +-
arch/m68k/include/asm/virt.h | 25 +
arch/m68k/include/uapi/asm/bootinfo-virt.h | 18 +
arch/m68k/include/uapi/asm/bootinfo.h | 1 +
arch/m68k/include/uapi/asm/ptrace.h | 5 +
arch/m68k/install.sh | 22 -
arch/m68k/kernel/Makefile | 1 +
arch/m68k/kernel/entry.S | 4 +-
arch/m68k/kernel/head.S | 31 +
arch/m68k/kernel/process.c | 17 +-
arch/m68k/kernel/ptrace.c | 65 +-
arch/m68k/kernel/setup_mm.c | 17 +-
arch/m68k/kernel/setup_no.c | 2 -
arch/m68k/kernel/signal.c | 1 +
arch/m68k/kernel/time.c | 9 +
arch/m68k/lib/checksum.c | 2 -
arch/m68k/mac/config.c | 4 +-
arch/m68k/math-emu/fp_arith.c | 2 +-
arch/m68k/mm/kmap.c | 21 +-
arch/m68k/mm/motorola.c | 1 -
arch/m68k/q40/config.c | 7 -
arch/m68k/virt/Makefile | 6 +
arch/m68k/virt/config.c | 132 +
arch/m68k/virt/ints.c | 155 +
arch/m68k/virt/platform.c | 72 +
arch/microblaze/include/asm/string.h | 2 +
arch/microblaze/kernel/kgdb.c | 2 +-
arch/microblaze/kernel/process.c | 12 +-
arch/microblaze/kernel/timer.c | 4 +
arch/microblaze/lib/memcpy.c | 18 +-
arch/microblaze/lib/memmove.c | 31 +-
arch/microblaze/lib/memset.c | 33 +-
arch/microblaze/mm/init.c | 5 +
arch/mips/Kconfig | 17 +-
arch/mips/alchemy/common/dbdma.c | 2 +-
arch/mips/alchemy/devboards/db1300.c | 9 -
arch/mips/bmips/dma.c | 1 +
arch/mips/boot/dts/brcm/bcm97358svmb.dts | 2 +-
arch/mips/boot/dts/brcm/bcm97360svmb.dts | 2 +-
arch/mips/boot/dts/brcm/bcm97425svmb.dts | 2 +-
arch/mips/boot/dts/ingenic/cu1000-neo.dts | 77 +-
arch/mips/boot/dts/ingenic/cu1830-neo.dts | 76 +-
arch/mips/boot/dts/ingenic/jz4780.dtsi | 2 +-
arch/mips/boot/dts/ingenic/x1000.dtsi | 34 +-
arch/mips/boot/dts/ingenic/x1830.dtsi | 55 +-
arch/mips/boot/dts/mscc/jaguar2_pcb110.dts | 10 +-
arch/mips/boot/dts/mscc/jaguar2_pcb111.dts | 10 +-
arch/mips/boot/dts/mscc/jaguar2_pcb118.dts | 6 +-
arch/mips/boot/dts/mscc/ocelot.dtsi | 4 +-
arch/mips/boot/dts/mscc/ocelot_pcb120.dts | 6 +-
arch/mips/boot/dts/mscc/serval_common.dtsi | 14 +-
.../dts/ralink/gardena_smart_gateway_mt7688.dts | 2 +-
arch/mips/boot/dts/ralink/mt7621-gnubee-gb-pc1.dts | 26 +-
arch/mips/boot/dts/ralink/mt7621-gnubee-gb-pc2.dts | 30 +-
arch/mips/boot/dts/ralink/mt7621.dtsi | 4 +-
arch/mips/boot/tools/relocs.c | 2 +-
arch/mips/cavium-octeon/dma-octeon.c | 15 +-
arch/mips/cavium-octeon/executive/cvmx-bootmem.c | 2 +-
.../cavium-octeon/executive/cvmx-helper-xaui.c | 5 +-
arch/mips/cavium-octeon/executive/cvmx-helper.c | 6 +
arch/mips/cavium-octeon/executive/cvmx-pko.c | 2 +-
arch/mips/cavium-octeon/octeon-irq.c | 2 +-
arch/mips/cavium-octeon/octeon-usb.c | 2 +-
arch/mips/configs/cu1000-neo_defconfig | 2 +-
arch/mips/configs/cu1830-neo_defconfig | 2 +-
arch/mips/configs/gpr_defconfig | 5 -
arch/mips/configs/mtx1_defconfig | 6 -
arch/mips/dec/ioasic-irq.c | 4 +-
arch/mips/dec/setup.c | 2 +-
arch/mips/fw/arc/memory.c | 2 +-
arch/mips/generic/board-ingenic.c | 26 -
arch/mips/include/asm/checksum.h | 79 +-
arch/mips/include/asm/compat.h | 41 +-
arch/mips/include/asm/cpu-features.h | 3 +
arch/mips/include/asm/hugetlb.h | 9 +-
.../include/asm/mach-ip27/cpu-feature-overrides.h | 1 -
.../include/asm/mach-ip30/cpu-feature-overrides.h | 1 -
arch/mips/include/asm/mach-ralink/spaces.h | 2 +
arch/mips/include/asm/octeon/cvmx-bootinfo.h | 2 +
arch/mips/include/asm/timex.h | 25 +-
arch/mips/include/asm/unistd.h | 2 +
arch/mips/include/uapi/asm/fcntl.h | 30 +-
arch/mips/include/uapi/asm/socket.h | 2 +
arch/mips/include/uapi/asm/stat.h | 20 +-
arch/mips/include/uapi/asm/termbits.h | 249 +-
arch/mips/jazz/irq.c | 2 +-
arch/mips/kernel/cmpxchg.c | 2 +-
arch/mips/kernel/cpu-probe.c | 2 +-
arch/mips/kernel/crash_dump.c | 27 +-
arch/mips/kernel/idle.c | 2 +-
arch/mips/kernel/kprobes.c | 36 +-
arch/mips/kernel/mips-cpc.c | 1 +
arch/mips/kernel/perf_event_mipsxx.c | 2 +-
arch/mips/kernel/process.c | 13 +-
arch/mips/kernel/reset.c | 3 +-
arch/mips/kernel/setup.c | 17 +-
arch/mips/kernel/smp.c | 6 +
arch/mips/kernel/time.c | 11 +-
arch/mips/kvm/tlb.c | 2 +-
arch/mips/loongson32/Kconfig | 2 +-
arch/mips/loongson64/dma.c | 2 +-
arch/mips/mm/fault.c | 6 +-
arch/mips/net/bpf_jit_comp32.c | 2 +-
arch/mips/pci/pci-octeon.c | 2 +-
arch/mips/pci/pcie-octeon.c | 4 +-
arch/mips/pic32/pic32mzda/config.c | 2 +-
arch/mips/sgi-ip22/ip22-reset.c | 11 +-
arch/mips/sgi-ip27/ip27-xtalk.c | 4 +
arch/mips/sgi-ip30/ip30-xtalk.c | 4 +
arch/mips/sibyte/bcm1480/setup.c | 4 +-
arch/mips/sibyte/common/dma.c | 2 +-
arch/mips/tools/loongson3-llsc-check.c | 2 +-
arch/mips/txx9/generic/pci.c | 2 +-
arch/mips/vr41xx/common/cmu.c | 2 -
arch/nios2/Makefile | 3 +-
arch/nios2/boot/install.sh | 22 -
arch/nios2/include/asm/timex.h | 3 +
arch/nios2/kernel/process.c | 12 +-
arch/openrisc/Kconfig | 54 +-
arch/openrisc/Makefile | 17 +
arch/openrisc/configs/or1klitex_defconfig | 32 +
arch/openrisc/include/asm/Kbuild | 5 +-
arch/openrisc/include/asm/spinlock.h | 27 -
arch/openrisc/include/asm/spinlock_types.h | 7 -
arch/openrisc/include/asm/timex.h | 1 +
arch/openrisc/kernel/entry.S | 20 +-
arch/openrisc/kernel/head.S | 377 +-
arch/openrisc/kernel/process.c | 31 +-
arch/openrisc/kernel/time.c | 3 +-
arch/openrisc/kernel/traps.c | 63 +-
arch/openrisc/lib/delay.c | 1 +
arch/openrisc/mm/fault.c | 9 +-
arch/openrisc/mm/tlb.c | 2 +-
arch/parisc/Kconfig | 5 +-
arch/parisc/Makefile | 12 +-
arch/parisc/configs/generic-32bit_defconfig | 4 +-
arch/parisc/configs/generic-64bit_defconfig | 3 +-
arch/parisc/include/asm/assembly.h | 12 +-
arch/parisc/include/asm/cache.h | 1 +
arch/parisc/include/asm/cacheflush.h | 31 +-
arch/parisc/include/asm/compat.h | 45 +-
arch/parisc/include/asm/fb.h | 4 +
arch/parisc/include/asm/fixmap.h | 25 +-
arch/parisc/include/asm/hugetlb.h | 5 +-
arch/parisc/include/asm/page.h | 6 +-
arch/parisc/include/asm/pgtable.h | 2 +-
arch/parisc/include/asm/timex.h | 3 +-
arch/parisc/include/asm/unistd.h | 3 +-
arch/parisc/include/uapi/asm/socket.h | 2 +
arch/parisc/include/uapi/asm/termbits.h | 241 +-
arch/parisc/install.sh | 28 -
arch/parisc/kernel/cache.c | 331 +-
arch/parisc/kernel/entry.S | 22 +-
arch/parisc/kernel/kprobes.c | 2 +-
arch/parisc/kernel/pacache.S | 94 +-
arch/parisc/kernel/process.c | 22 +-
arch/parisc/kernel/processor.c | 13 +-
arch/parisc/kernel/setup.c | 2 +
arch/parisc/kernel/time.c | 6 +-
arch/parisc/kernel/topology.c | 16 +-
arch/parisc/kernel/traps.c | 2 +-
arch/parisc/math-emu/dfadd.c | 2 +-
arch/parisc/math-emu/dfsub.c | 2 +-
arch/parisc/math-emu/sfadd.c | 2 +-
arch/parisc/math-emu/sfsub.c | 2 +-
arch/parisc/mm/fault.c | 6 +-
arch/parisc/mm/init.c | 6 +
arch/parisc/nm | 6 -
arch/powerpc/Kconfig | 35 +-
arch/powerpc/Kconfig.debug | 3 +-
arch/powerpc/Makefile | 15 +-
arch/powerpc/boot/Makefile | 14 +-
arch/powerpc/boot/crt0.S | 45 +-
arch/powerpc/boot/cuboot-hotfoot.c | 2 +-
arch/powerpc/boot/dts/fsl/p2020si-post.dtsi | 5 +
arch/powerpc/boot/dts/microwatt.dts | 2 +
arch/powerpc/boot/install.sh | 23 -
arch/powerpc/boot/ops.h | 6 -
arch/powerpc/boot/wrapper | 2 +-
arch/powerpc/configs/chrp32_defconfig | 1 -
arch/powerpc/configs/ppc6xx_defconfig | 1 -
arch/powerpc/crypto/aes-spe-glue.c | 2 +-
arch/powerpc/include/asm/book3s/64/hash.h | 4 +
arch/powerpc/include/asm/book3s/64/hugetlb.h | 4 -
arch/powerpc/include/asm/book3s/64/mmu-hash.h | 1 +
arch/powerpc/include/asm/book3s/64/mmu.h | 6 -
arch/powerpc/include/asm/book3s/64/pgtable.h | 34 +-
arch/powerpc/include/asm/book3s/64/radix.h | 12 +-
arch/powerpc/include/asm/book3s/64/slice.h | 26 +
arch/powerpc/include/asm/bug.h | 14 +-
arch/powerpc/include/asm/checksum.h | 26 +-
arch/powerpc/include/asm/code-patching.h | 67 +-
arch/powerpc/include/asm/compat.h | 50 +-
arch/powerpc/include/asm/cputable.h | 16 +-
arch/powerpc/include/asm/drmem.h | 3 +
arch/powerpc/include/asm/eeh.h | 6 -
arch/powerpc/include/asm/elf.h | 14 +-
arch/powerpc/include/asm/fadump-internal.h | 2 +-
arch/powerpc/include/asm/fsl_85xx_cache_sram.h | 35 -
arch/powerpc/include/asm/ftrace.h | 8 +-
arch/powerpc/include/asm/hugetlb.h | 11 +-
arch/powerpc/include/asm/inst.h | 13 +-
arch/powerpc/include/asm/interrupt.h | 52 +-
arch/powerpc/include/asm/io.h | 2 -
arch/powerpc/include/asm/iommu.h | 6 +-
arch/powerpc/include/asm/kasan.h | 22 +
arch/powerpc/include/asm/kup.h | 1 -
arch/powerpc/include/asm/kvm_book3s_asm.h | 3 -
arch/powerpc/include/asm/kvm_host.h | 10 +-
arch/powerpc/include/asm/kvm_ppc.h | 14 +-
arch/powerpc/include/asm/linkage.h | 2 +-
arch/powerpc/include/asm/livepatch.h | 10 +-
arch/powerpc/include/asm/mman.h | 12 -
arch/powerpc/include/asm/mmu_context.h | 5 -
arch/powerpc/include/asm/module.h | 2 -
arch/powerpc/include/asm/nohash/tlbflush.h | 12 +-
arch/powerpc/include/asm/paca.h | 8 +-
arch/powerpc/include/asm/page.h | 8 +-
arch/powerpc/include/asm/parport.h | 2 +-
arch/powerpc/include/asm/pci-bridge.h | 14 +-
arch/powerpc/include/asm/pnv-pci.h | 1 +
arch/powerpc/include/asm/ppc-opcode.h | 109 +-
arch/powerpc/include/asm/ppc_asm.h | 4 +-
arch/powerpc/include/asm/probes.h | 36 +
arch/powerpc/include/asm/processor.h | 2 -
arch/powerpc/include/asm/ptrace.h | 2 +-
arch/powerpc/include/asm/reg.h | 3 -
arch/powerpc/include/asm/signal.h | 5 +
arch/powerpc/include/asm/slice.h | 46 -
arch/powerpc/include/asm/smp.h | 2 -
arch/powerpc/include/asm/svm.h | 6 +-
arch/powerpc/include/asm/swiotlb.h | 1 +
arch/powerpc/include/asm/switch_to.h | 9 +
arch/powerpc/include/asm/task_size_64.h | 8 +
arch/powerpc/include/asm/thread_info.h | 10 +-
arch/powerpc/include/asm/time.h | 1 +
arch/powerpc/include/asm/timex.h | 1 +
arch/powerpc/include/asm/topology.h | 8 +-
arch/powerpc/include/asm/types.h | 8 -
arch/powerpc/include/asm/unistd.h | 1 +
arch/powerpc/include/asm/vas.h | 2 +-
arch/powerpc/include/uapi/asm/auxvec.h | 4 +-
arch/powerpc/include/uapi/asm/signal.h | 5 +
arch/powerpc/include/uapi/asm/stat.h | 10 +-
arch/powerpc/include/uapi/asm/termbits.h | 182 +-
arch/powerpc/kernel/Makefile | 15 +-
arch/powerpc/kernel/btext.c | 5 +-
arch/powerpc/kernel/cacheinfo.c | 1 -
arch/powerpc/kernel/cputable.c | 28 +-
arch/powerpc/kernel/crash_dump.c | 37 +-
arch/powerpc/kernel/dawr.c | 2 +-
arch/powerpc/kernel/dma-swiotlb.c | 1 +
arch/powerpc/kernel/dt_cpu_ftrs.c | 10 +-
arch/powerpc/kernel/eeh.c | 4 +-
arch/powerpc/kernel/eeh_driver.c | 1 -
arch/powerpc/kernel/eeh_event.c | 2 +-
arch/powerpc/kernel/eeh_pe.c | 3 +-
arch/powerpc/kernel/eeh_sysfs.c | 1 +
arch/powerpc/kernel/entry_32.S | 49 -
arch/powerpc/kernel/entry_64.S | 150 -
arch/powerpc/kernel/fadump.c | 54 +-
arch/powerpc/kernel/head_64.S | 4 +-
arch/powerpc/kernel/idle.c | 2 +-
arch/powerpc/kernel/interrupt_64.S | 12 +-
arch/powerpc/kernel/iommu.c | 5 +-
arch/powerpc/kernel/irq.c | 87 +-
arch/powerpc/kernel/isa-bridge.c | 2 +-
arch/powerpc/kernel/kprobes.c | 10 +-
arch/powerpc/kernel/legacy_serial.c | 2 +-
arch/powerpc/kernel/misc_64.S | 2 +-
arch/powerpc/kernel/module.c | 4 +-
arch/powerpc/kernel/module_32.c | 40 +-
arch/powerpc/kernel/module_64.c | 11 +-
arch/powerpc/kernel/nvram_64.c | 2 +-
arch/powerpc/kernel/paca.c | 5 -
arch/powerpc/kernel/pci-common.c | 6 +-
arch/powerpc/kernel/pci-hotplug.c | 1 +
arch/powerpc/kernel/pci_32.c | 1 -
arch/powerpc/kernel/pci_64.c | 11 +-
arch/powerpc/kernel/pci_dn.c | 2 +-
arch/powerpc/kernel/pci_of_scan.c | 4 +-
arch/powerpc/kernel/proc_powerpc.c | 2 +-
arch/powerpc/kernel/process.c | 65 +-
arch/powerpc/kernel/prom.c | 1 -
arch/powerpc/kernel/prom_init.c | 4 +-
arch/powerpc/kernel/ptrace/ptrace-fpu.c | 20 +-
arch/powerpc/kernel/ptrace/ptrace-view.c | 2 +-
arch/powerpc/kernel/ptrace/ptrace.c | 7 +-
arch/powerpc/kernel/rtas-proc.c | 9 +-
arch/powerpc/kernel/rtas-rtc.c | 1 -
arch/powerpc/kernel/rtas.c | 25 +-
arch/powerpc/kernel/rtas_entry.S | 172 +
arch/powerpc/kernel/rtas_flash.c | 2 +-
arch/powerpc/kernel/rtas_pci.c | 3 +-
arch/powerpc/kernel/rtasd.c | 1 -
arch/powerpc/kernel/setup-common.c | 83 +-
arch/powerpc/kernel/setup_32.c | 3 +-
arch/powerpc/kernel/setup_64.c | 5 +-
arch/powerpc/kernel/signal.c | 15 +
arch/powerpc/kernel/signal_32.c | 6 +
arch/powerpc/kernel/signal_64.c | 7 +-
arch/powerpc/kernel/smp.c | 27 +-
arch/powerpc/kernel/syscalls.c | 2 +-
arch/powerpc/kernel/sysfs.c | 2 +-
arch/powerpc/kernel/time.c | 15 +-
arch/powerpc/kernel/trace/Makefile | 5 +-
arch/powerpc/kernel/trace/ftrace.c | 383 +-
arch/powerpc/kernel/traps.c | 6 +-
arch/powerpc/kernel/uprobes.c | 5 +
arch/powerpc/kernel/vdso.c | 1 -
arch/powerpc/kernel/vdso/Makefile | 1 +
arch/powerpc/kernel/vdso/gettimeofday.S | 9 +-
arch/powerpc/kernel/vdso/vdso32.lds.S | 1 -
arch/powerpc/kernel/vdso/vdso64.lds.S | 1 -
arch/powerpc/kernel/watchdog.c | 2 +-
arch/powerpc/kexec/Makefile | 2 +
arch/powerpc/kexec/core.c | 1 -
arch/powerpc/kexec/core_64.c | 4 +-
arch/powerpc/kexec/crash.c | 3 +-
arch/powerpc/kvm/Makefile | 10 +-
arch/powerpc/kvm/book3s_32_sr.S | 26 +-
arch/powerpc/kvm/book3s_64_entry.S | 2 +-
arch/powerpc/kvm/book3s_64_mmu_hv.c | 42 +-
arch/powerpc/kvm/book3s_64_vio.c | 43 +
arch/powerpc/kvm/book3s_64_vio_hv.c | 672 -
arch/powerpc/kvm/book3s_emulate.c | 2 +-
arch/powerpc/kvm/book3s_hv.c | 74 +-
arch/powerpc/kvm/book3s_hv_builtin.c | 64 -
arch/powerpc/kvm/book3s_hv_nested.c | 137 +-
arch/powerpc/kvm/book3s_hv_p9_entry.c | 17 +-
arch/powerpc/kvm/book3s_hv_rm_xics.c | 7 +-
arch/powerpc/kvm/book3s_hv_rm_xive.c | 46 -
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 30 +-
arch/powerpc/kvm/book3s_hv_uvmem.c | 10 +-
arch/powerpc/kvm/book3s_interrupts.S | 2 +-
arch/powerpc/kvm/book3s_pr.c | 2 +-
arch/powerpc/kvm/book3s_pr_papr.c | 6 +
arch/powerpc/kvm/book3s_rmhandlers.S | 2 +-
arch/powerpc/kvm/book3s_xics.c | 2 +-
arch/powerpc/kvm/book3s_xive.c | 655 +-
arch/powerpc/kvm/book3s_xive.h | 7 -
arch/powerpc/kvm/book3s_xive_native.c | 2 +-
arch/powerpc/kvm/book3s_xive_template.c | 636 -
arch/powerpc/kvm/e500mc.c | 3 +-
arch/powerpc/kvm/powerpc.c | 31 +-
arch/powerpc/kvm/trace_hv.h | 8 +-
arch/powerpc/lib/Makefile | 3 +
arch/powerpc/lib/checksum_wrappers.c | 2 -
arch/powerpc/lib/code-patching.c | 61 +-
arch/powerpc/lib/feature-fixups.c | 2 +-
arch/powerpc/lib/sstep.c | 52 +-
arch/powerpc/mm/Makefile | 3 +-
arch/powerpc/mm/book3s32/mmu.c | 1 -
arch/powerpc/mm/book3s64/Makefile | 11 +-
arch/powerpc/mm/book3s64/hash_pgtable.c | 2 +-
arch/powerpc/mm/book3s64/hash_utils.c | 39 +-
arch/powerpc/mm/book3s64/iommu_api.c | 68 -
arch/powerpc/mm/book3s64/pgtable.c | 19 +-
arch/powerpc/mm/book3s64/radix_hugetlbpage.c | 55 -
arch/powerpc/mm/book3s64/radix_pgtable.c | 2 +-
arch/powerpc/mm/book3s64/radix_tlb.c | 2 +-
arch/powerpc/mm/book3s64/slb.c | 4 +-
arch/powerpc/mm/{ => book3s64}/slice.c | 71 +-
arch/powerpc/mm/cacheflush.c | 2 +-
arch/powerpc/mm/drmem.c | 2 +-
arch/powerpc/mm/hugetlbpage.c | 34 -
arch/powerpc/mm/init_32.c | 1 -
arch/powerpc/mm/init_64.c | 7 +-
arch/powerpc/mm/kasan/Makefile | 3 +-
.../mm/kasan/{kasan_init_32.c => init_32.c} | 0
arch/powerpc/mm/kasan/init_book3s_64.c | 102 +
arch/powerpc/mm/mem.c | 10 +-
arch/powerpc/mm/mmap.c | 256 -
arch/powerpc/mm/mmu_decl.h | 4 +
arch/powerpc/mm/nohash/40x.c | 1 -
arch/powerpc/mm/nohash/book3e_hugetlbpage.c | 2 +-
arch/powerpc/mm/nohash/fsl_book3e.c | 22 +-
arch/powerpc/mm/nohash/kaslr_booke.c | 13 +-
arch/powerpc/mm/nohash/mmu_context.c | 9 -
arch/powerpc/mm/nohash/tlb.c | 6 +-
arch/powerpc/mm/numa.c | 36 +-
arch/powerpc/mm/pageattr.c | 1 +
arch/powerpc/mm/pgtable-frag.c | 2 +-
arch/powerpc/mm/pgtable.c | 2 +-
arch/powerpc/mm/pgtable_64.c | 1 -
arch/powerpc/mm/ptdump/ptdump.c | 3 +-
arch/powerpc/net/bpf_jit.h | 4 +-
arch/powerpc/net/bpf_jit_comp.c | 2 +-
arch/powerpc/net/bpf_jit_comp64.c | 4 +-
arch/powerpc/perf/8xx-pmu.c | 2 +-
arch/powerpc/perf/core-book3s.c | 6 +-
arch/powerpc/perf/hv-24x7.c | 40 +-
arch/powerpc/perf/imc-pmu.c | 5 +-
arch/powerpc/perf/isa207-common.c | 18 +-
arch/powerpc/perf/power9-pmu.c | 4 +-
arch/powerpc/platforms/40x/ppc40x_simple.c | 1 -
arch/powerpc/platforms/44x/canyonlands.c | 1 +
arch/powerpc/platforms/44x/fsp2.c | 2 +-
arch/powerpc/platforms/44x/ppc44x_simple.c | 1 -
arch/powerpc/platforms/44x/ppc476.c | 2 +-
arch/powerpc/platforms/44x/sam440ep.c | 1 -
arch/powerpc/platforms/44x/warp.c | 3 +-
arch/powerpc/platforms/4xx/cpm.c | 2 +-
arch/powerpc/platforms/4xx/hsta_msi.c | 1 +
arch/powerpc/platforms/4xx/pci.c | 1 +
arch/powerpc/platforms/4xx/uic.c | 3 +-
arch/powerpc/platforms/512x/clock-commonclk.c | 2 +-
arch/powerpc/platforms/512x/mpc5121_ads.c | 1 -
arch/powerpc/platforms/512x/mpc5121_ads_cpld.c | 3 +-
arch/powerpc/platforms/512x/mpc512x_generic.c | 1 -
arch/powerpc/platforms/512x/mpc512x_shared.c | 4 +-
arch/powerpc/platforms/52xx/efika.c | 1 -
arch/powerpc/platforms/52xx/lite5200.c | 1 -
arch/powerpc/platforms/52xx/lite5200_pm.c | 2 +
arch/powerpc/platforms/52xx/media5200.c | 3 +-
arch/powerpc/platforms/52xx/mpc5200_simple.c | 2 +-
arch/powerpc/platforms/52xx/mpc52xx_common.c | 4 +-
arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 8 +-
arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c | 5 +-
arch/powerpc/platforms/52xx/mpc52xx_pci.c | 22 +-
arch/powerpc/platforms/52xx/mpc52xx_pic.c | 3 +-
arch/powerpc/platforms/52xx/mpc52xx_pm.c | 2 +
arch/powerpc/platforms/82xx/ep8248e.c | 1 -
arch/powerpc/platforms/82xx/km82xx.c | 1 -
arch/powerpc/platforms/82xx/pq2ads-pci-pic.c | 2 +-
arch/powerpc/platforms/83xx/km83xx.c | 1 -
arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c | 15 +-
arch/powerpc/platforms/83xx/mpc832x_mds.c | 1 -
arch/powerpc/platforms/83xx/mpc832x_rdb.c | 1 +
arch/powerpc/platforms/83xx/mpc834x_itx.c | 1 -
arch/powerpc/platforms/83xx/mpc834x_mds.c | 2 +-
arch/powerpc/platforms/83xx/mpc836x_mds.c | 1 -
arch/powerpc/platforms/83xx/mpc836x_rdk.c | 1 -
arch/powerpc/platforms/83xx/mpc837x_mds.c | 2 +-
arch/powerpc/platforms/83xx/suspend.c | 7 +-
arch/powerpc/platforms/83xx/usb.c | 2 +-
arch/powerpc/platforms/85xx/Kconfig | 9 -
arch/powerpc/platforms/85xx/corenet_generic.c | 1 -
arch/powerpc/platforms/85xx/ge_imp3a.c | 2 +-
arch/powerpc/platforms/85xx/ksi8560.c | 1 -
arch/powerpc/platforms/85xx/mpc8536_ds.c | 1 -
arch/powerpc/platforms/85xx/mpc85xx_cds.c | 5 +-
arch/powerpc/platforms/85xx/mpc85xx_ds.c | 2 +-
arch/powerpc/platforms/85xx/mpc85xx_mds.c | 1 -
arch/powerpc/platforms/85xx/mpc85xx_rdb.c | 1 -
arch/powerpc/platforms/85xx/p1010rdb.c | 1 -
arch/powerpc/platforms/85xx/p1022_ds.c | 1 +
arch/powerpc/platforms/85xx/p1022_rdk.c | 1 +
arch/powerpc/platforms/85xx/p1023_rdb.c | 2 +-
arch/powerpc/platforms/85xx/qemu_e500.c | 1 +
arch/powerpc/platforms/85xx/smp.c | 2 +-
arch/powerpc/platforms/85xx/socrates.c | 1 -
arch/powerpc/platforms/85xx/stx_gp3.c | 1 -
arch/powerpc/platforms/85xx/tqm85xx.c | 1 -
arch/powerpc/platforms/85xx/xes_mpc85xx.c | 2 +-
arch/powerpc/platforms/86xx/gef_ppc9a.c | 4 +-
arch/powerpc/platforms/86xx/gef_sbc310.c | 4 +-
arch/powerpc/platforms/86xx/gef_sbc610.c | 4 +-
arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 3 +-
arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 1 -
arch/powerpc/platforms/86xx/mvme7100.c | 1 +
arch/powerpc/platforms/8xx/Makefile | 2 +-
arch/powerpc/platforms/8xx/adder875.c | 4 +-
arch/powerpc/platforms/8xx/cpm1-ic.c | 188 +
arch/powerpc/platforms/8xx/cpm1.c | 142 +-
arch/powerpc/platforms/8xx/ep88xc.c | 3 +-
arch/powerpc/platforms/8xx/m8xx_setup.c | 31 +-
arch/powerpc/platforms/8xx/mpc86xads_setup.c | 3 +-
arch/powerpc/platforms/8xx/mpc885ads_setup.c | 3 +-
arch/powerpc/platforms/8xx/mpc8xx.h | 1 -
arch/powerpc/platforms/8xx/pic.c | 20 +-
arch/powerpc/platforms/8xx/pic.h | 2 +-
arch/powerpc/platforms/8xx/tqm8xx_setup.c | 3 +-
arch/powerpc/platforms/Kconfig.cputype | 11 +-
arch/powerpc/platforms/amigaone/setup.c | 1 +
arch/powerpc/platforms/book3s/vas-api.c | 2 +-
arch/powerpc/platforms/cell/axon_msi.c | 2 +-
arch/powerpc/platforms/cell/cbe_powerbutton.c | 2 +-
arch/powerpc/platforms/cell/cbe_regs.c | 4 +-
arch/powerpc/platforms/cell/cbe_thermal.c | 1 -
arch/powerpc/platforms/cell/interrupt.c | 3 +-
arch/powerpc/platforms/cell/iommu.c | 4 +-
arch/powerpc/platforms/cell/pervasive.c | 1 -
arch/powerpc/platforms/cell/ras.c | 2 +-
arch/powerpc/platforms/cell/setup.c | 1 -
arch/powerpc/platforms/cell/smp.c | 1 -
arch/powerpc/platforms/cell/spider-pci.c | 3 +-
arch/powerpc/platforms/cell/spider-pic.c | 3 +-
arch/powerpc/platforms/cell/spu_base.c | 1 -
arch/powerpc/platforms/cell/spu_manage.c | 5 +-
arch/powerpc/platforms/cell/spu_priv1_mmio.c | 1 -
arch/powerpc/platforms/cell/spufs/inode.c | 2 +-
arch/powerpc/platforms/chrp/nvram.c | 2 +-
arch/powerpc/platforms/chrp/pci.c | 2 +-
arch/powerpc/platforms/chrp/setup.c | 6 +-
arch/powerpc/platforms/chrp/smp.c | 1 -
arch/powerpc/platforms/chrp/time.c | 4 +-
arch/powerpc/platforms/embedded6xx/gamecube.c | 1 -
arch/powerpc/platforms/embedded6xx/holly.c | 3 +-
arch/powerpc/platforms/embedded6xx/linkstation.c | 1 -
arch/powerpc/platforms/embedded6xx/ls_uart.c | 2 +-
arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c | 2 +-
arch/powerpc/platforms/embedded6xx/mvme5100.c | 2 +-
arch/powerpc/platforms/embedded6xx/storcenter.c | 1 -
arch/powerpc/platforms/embedded6xx/usbgecko_udbg.c | 3 +-
arch/powerpc/platforms/embedded6xx/wii.c | 2 +-
arch/powerpc/platforms/fsl_uli1575.c | 1 +
arch/powerpc/platforms/maple/pci.c | 2 +-
arch/powerpc/platforms/maple/setup.c | 2 +-
arch/powerpc/platforms/maple/time.c | 2 +-
arch/powerpc/platforms/pasemi/dma_lib.c | 2 +
arch/powerpc/platforms/pasemi/iommu.c | 1 +
arch/powerpc/platforms/pasemi/misc.c | 1 +
arch/powerpc/platforms/pasemi/msi.c | 2 +-
arch/powerpc/platforms/pasemi/pci.c | 1 +
arch/powerpc/platforms/pasemi/setup.c | 2 +-
arch/powerpc/platforms/powermac/backlight.c | 1 -
arch/powerpc/platforms/powermac/bootx_init.c | 3 +-
arch/powerpc/platforms/powermac/feature.c | 1 -
arch/powerpc/platforms/powermac/low_i2c.c | 4 +-
arch/powerpc/platforms/powermac/nvram.c | 4 +-
arch/powerpc/platforms/powermac/pci.c | 3 +-
arch/powerpc/platforms/powermac/pfunc_core.c | 4 +-
arch/powerpc/platforms/powermac/pic.c | 6 +-
arch/powerpc/platforms/powermac/pmac.h | 2 +
arch/powerpc/platforms/powermac/setup.c | 5 -
arch/powerpc/platforms/powermac/smp.c | 4 +-
arch/powerpc/platforms/powermac/time.c | 2 +-
arch/powerpc/platforms/powermac/udbg_adb.c | 2 +-
arch/powerpc/platforms/powermac/udbg_scc.c | 2 +-
arch/powerpc/platforms/powernv/Makefile | 9 +
arch/powerpc/platforms/powernv/eeh-powernv.c | 29 +-
arch/powerpc/platforms/powernv/idle.c | 4 +-
arch/powerpc/platforms/powernv/ocxl.c | 2 +-
arch/powerpc/platforms/powernv/opal-core.c | 2 +-
arch/powerpc/platforms/powernv/opal-fadump.c | 102 +-
arch/powerpc/platforms/powernv/opal-fadump.h | 10 +-
arch/powerpc/platforms/powernv/opal-flash.c | 4 +
arch/powerpc/platforms/powernv/opal-imc.c | 2 +-
arch/powerpc/platforms/powernv/opal-lpc.c | 2 +-
.../powerpc/platforms/powernv/opal-memory-errors.c | 2 +-
arch/powerpc/platforms/powernv/pci-cxl.c | 1 +
arch/powerpc/platforms/powernv/pci-ioda-tce.c | 5 +-
arch/powerpc/platforms/powernv/pci-ioda.c | 51 +-
arch/powerpc/platforms/powernv/pci-sriov.c | 4 +-
arch/powerpc/platforms/powernv/pci.c | 1 -
arch/powerpc/platforms/powernv/pci.h | 3 +-
arch/powerpc/platforms/powernv/setup.c | 9 +
arch/powerpc/platforms/powernv/smp.c | 2 +-
arch/powerpc/platforms/powernv/ultravisor.c | 1 +
arch/powerpc/platforms/powernv/vas-fault.c | 2 +-
arch/powerpc/platforms/powernv/vas-window.c | 4 +-
arch/powerpc/platforms/powernv/vas.h | 2 +-
arch/powerpc/platforms/ps3/Kconfig | 2 +-
arch/powerpc/platforms/ps3/htab.c | 1 -
arch/powerpc/platforms/ps3/mm.c | 3 +-
arch/powerpc/platforms/ps3/os-area.c | 2 -
arch/powerpc/platforms/ps3/setup.c | 2 +-
arch/powerpc/platforms/ps3/system-bus.c | 2 +-
arch/powerpc/platforms/pseries/Makefile | 4 +
arch/powerpc/platforms/pseries/cmm.c | 4 +-
arch/powerpc/platforms/pseries/dlpar.c | 3 +-
arch/powerpc/platforms/pseries/eeh_pseries.c | 9 +-
arch/powerpc/platforms/pseries/hotplug-cpu.c | 2 +-
arch/powerpc/platforms/pseries/hotplug-memory.c | 1 -
arch/powerpc/platforms/pseries/iommu.c | 5 +-
arch/powerpc/platforms/pseries/kexec.c | 8 +
arch/powerpc/platforms/pseries/lpar.c | 1 -
arch/powerpc/platforms/pseries/lparcfg.c | 1 -
arch/powerpc/platforms/pseries/msi.c | 1 +
arch/powerpc/platforms/pseries/nvram.c | 2 +-
arch/powerpc/platforms/pseries/papr_scm.c | 54 +-
arch/powerpc/platforms/pseries/pci.c | 1 -
arch/powerpc/platforms/pseries/pmem.c | 1 -
arch/powerpc/platforms/pseries/pseries.h | 1 +
arch/powerpc/platforms/pseries/reconfig.c | 1 -
arch/powerpc/platforms/pseries/rtas-fadump.c | 17 +-
arch/powerpc/platforms/pseries/setup.c | 21 +-
arch/powerpc/platforms/pseries/smp.c | 1 -
arch/powerpc/platforms/pseries/svm.c | 26 +-
arch/powerpc/platforms/pseries/vas-sysfs.c | 37 +-
arch/powerpc/platforms/pseries/vas.c | 25 +-
arch/powerpc/platforms/pseries/vas.h | 2 +-
arch/powerpc/platforms/pseries/vio.c | 1 +
arch/powerpc/sysdev/Makefile | 1 -
arch/powerpc/sysdev/cpm2_pic.c | 2 +-
arch/powerpc/sysdev/dart_iommu.c | 8 +-
arch/powerpc/sysdev/dcr.c | 2 +-
arch/powerpc/sysdev/fsl_85xx_cache_ctlr.h | 88 -
arch/powerpc/sysdev/fsl_85xx_cache_sram.c | 147 -
arch/powerpc/sysdev/fsl_85xx_l2ctlr.c | 216 -
arch/powerpc/sysdev/fsl_lbc.c | 5 +-
arch/powerpc/sysdev/fsl_msi.c | 4 +-
arch/powerpc/sysdev/fsl_pci.c | 5 +-
arch/powerpc/sysdev/fsl_rio.c | 2 +
arch/powerpc/sysdev/fsl_soc.c | 1 -
arch/powerpc/sysdev/ge/ge_pic.c | 6 +-
arch/powerpc/sysdev/grackle.c | 2 +-
arch/powerpc/sysdev/i8259.c | 2 +-
arch/powerpc/sysdev/indirect_pci.c | 1 -
arch/powerpc/sysdev/ipic.c | 3 +-
arch/powerpc/sysdev/mmio_nvram.c | 2 +-
arch/powerpc/sysdev/mpic.c | 2 +
arch/powerpc/sysdev/mpic_msgr.c | 5 +-
arch/powerpc/sysdev/mpic_msi.c | 5 +-
arch/powerpc/sysdev/mpic_timer.c | 2 +-
arch/powerpc/sysdev/mpic_u3msi.c | 4 +-
arch/powerpc/sysdev/msi_bitmap.c | 1 +
arch/powerpc/sysdev/pmi.c | 3 +-
arch/powerpc/sysdev/rtc_cmos_setup.c | 2 +-
arch/powerpc/sysdev/tsi108_dev.c | 3 +-
arch/powerpc/sysdev/tsi108_pci.c | 3 +-
arch/powerpc/sysdev/xics/icp-native.c | 3 +-
arch/powerpc/sysdev/xics/icp-opal.c | 1 +
arch/powerpc/sysdev/xics/ics-native.c | 2 +-
arch/powerpc/sysdev/xics/ics-opal.c | 1 -
arch/powerpc/sysdev/xics/ics-rtas.c | 1 -
arch/powerpc/sysdev/xics/xics-common.c | 6 +-
arch/powerpc/sysdev/xive/common.c | 6 +-
arch/powerpc/sysdev/xive/native.c | 4 +-
arch/powerpc/sysdev/xive/spapr.c | 9 +-
arch/powerpc/xmon/ppc-opc.c | 2 +-
arch/powerpc/xmon/xmon.c | 19 +-
arch/riscv/Kbuild | 4 +
arch/riscv/Kconfig | 79 +-
arch/riscv/Kconfig.erratas | 34 +-
arch/riscv/Kconfig.socs | 1 -
arch/riscv/Makefile | 19 +-
arch/riscv/boot/.gitignore | 1 +
arch/riscv/boot/dts/microchip/Makefile | 3 +-
...pfs-fabric.dtsi => mpfs-icicle-kit-fabric.dtsi} | 2 +
...hip-mpfs-icicle-kit.dts => mpfs-icicle-kit.dts} | 105 +-
.../boot/dts/microchip/mpfs-polarberry-fabric.dtsi | 16 +
arch/riscv/boot/dts/microchip/mpfs-polarberry.dts | 99 +
.../microchip/{microchip-mpfs.dtsi => mpfs.dtsi} | 13 +-
arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 5 +-
arch/riscv/boot/install.sh | 21 -
arch/riscv/errata/Makefile | 2 +-
arch/riscv/errata/alternative.c | 75 -
arch/riscv/errata/sifive/errata.c | 20 +-
arch/riscv/errata/thead/Makefile | 11 +
arch/riscv/errata/thead/errata.c | 82 +
arch/riscv/include/asm/Kbuild | 4 +
arch/riscv/include/asm/alternative-macros.h | 133 +-
arch/riscv/include/asm/alternative.h | 25 +-
arch/riscv/include/asm/asm.h | 26 -
arch/riscv/include/asm/atomic.h | 102 +-
arch/riscv/include/asm/bug.h | 4 +-
arch/riscv/include/asm/cmpxchg.h | 12 -
arch/riscv/include/asm/compat.h | 129 +
arch/riscv/include/asm/csr.h | 8 +
arch/riscv/include/asm/elf.h | 50 +-
arch/riscv/include/asm/errata_list.h | 59 +
arch/riscv/include/asm/fixmap.h | 2 -
arch/riscv/include/asm/hwcap.h | 1 +
arch/riscv/include/asm/irq_work.h | 2 +-
arch/riscv/include/asm/kexec.h | 11 +
arch/riscv/include/asm/kvm_host.h | 124 +-
arch/riscv/include/asm/mmu.h | 1 +
arch/riscv/include/asm/pgtable-32.h | 17 +
arch/riscv/include/asm/pgtable-64.h | 84 +-
arch/riscv/include/asm/pgtable-bits.h | 10 -
arch/riscv/include/asm/pgtable.h | 134 +-
arch/riscv/include/asm/processor.h | 6 +-
arch/riscv/include/asm/signal32.h | 18 +
arch/riscv/include/asm/spinlock.h | 135 -
arch/riscv/include/asm/spinlock_types.h | 25 -
arch/riscv/include/asm/syscall.h | 1 +
arch/riscv/include/asm/thread_info.h | 1 +
arch/riscv/include/asm/timex.h | 2 +-
arch/riscv/include/asm/unistd.h | 12 +-
arch/riscv/include/asm/vdso.h | 9 +
arch/riscv/include/asm/vendorid_list.h | 1 +
arch/riscv/include/asm/xip_fixup.h | 31 +
arch/riscv/include/uapi/asm/kvm.h | 20 +
arch/riscv/include/uapi/asm/unistd.h | 3 +-
arch/riscv/kernel/Makefile | 19 +
arch/riscv/kernel/alternative.c | 118 +
arch/riscv/kernel/compat_signal.c | 243 +
arch/riscv/kernel/compat_syscall_table.c | 19 +
arch/riscv/kernel/compat_vdso/.gitignore | 2 +
arch/riscv/kernel/compat_vdso/Makefile | 78 +
arch/riscv/kernel/compat_vdso/compat_vdso.S | 8 +
arch/riscv/kernel/compat_vdso/compat_vdso.lds.S | 3 +
arch/riscv/kernel/compat_vdso/flush_icache.S | 3 +
.../kernel/compat_vdso/gen_compat_vdso_offsets.sh | 5 +
arch/riscv/kernel/compat_vdso/getcpu.S | 3 +
arch/riscv/kernel/compat_vdso/note.S | 3 +
arch/riscv/kernel/compat_vdso/rt_sigreturn.S | 3 +
arch/riscv/kernel/cpu.c | 5 +
arch/riscv/kernel/cpufeature.c | 87 +-
arch/riscv/kernel/crash_dump.c | 26 +-
arch/riscv/kernel/efi.c | 2 +-
arch/riscv/kernel/elf_kexec.c | 448 +
arch/riscv/kernel/entry.S | 18 +-
arch/riscv/kernel/ftrace.c | 6 +-
arch/riscv/kernel/head.S | 2 +
arch/riscv/kernel/machine_kexec.c | 4 +-
arch/riscv/kernel/machine_kexec_file.c | 14 +
arch/riscv/kernel/module.c | 29 +
arch/riscv/kernel/process.c | 49 +-
arch/riscv/kernel/ptrace.c | 87 +-
arch/riscv/kernel/reset.c | 12 +-
arch/riscv/kernel/setup.c | 6 +-
arch/riscv/kernel/signal.c | 7 +-
arch/riscv/kernel/smpboot.c | 4 -
arch/riscv/kernel/suspend_entry.S | 1 +
arch/riscv/kernel/sys_riscv.c | 6 +-
arch/riscv/kernel/traps.c | 2 +-
arch/riscv/kernel/vdso.c | 114 +-
arch/riscv/kernel/vdso/vdso.S | 6 +-
arch/riscv/kvm/main.c | 11 +-
arch/riscv/kvm/mmu.c | 264 +-
arch/riscv/kvm/tlb.S | 74 -
arch/riscv/kvm/tlb.c | 461 +
arch/riscv/kvm/vcpu.c | 144 +-
arch/riscv/kvm/vcpu_exit.c | 6 +-
arch/riscv/kvm/vcpu_sbi_replace.c | 40 +-
arch/riscv/kvm/vcpu_sbi_v01.c | 35 +-
arch/riscv/kvm/vm.c | 8 +-
arch/riscv/kvm/vmid.c | 30 +-
arch/riscv/mm/fault.c | 10 +-
arch/riscv/mm/init.c | 110 +-
arch/riscv/net/bpf_jit.h | 67 +
arch/riscv/net/bpf_jit_comp64.c | 110 +-
arch/riscv/purgatory/.gitignore | 4 +
arch/riscv/purgatory/Makefile | 95 +
arch/riscv/purgatory/entry.S | 47 +
arch/riscv/purgatory/purgatory.c | 45 +
arch/s390/Kconfig | 14 +-
arch/s390/Kconfig.debug | 12 +-
arch/s390/Makefile | 7 +-
arch/s390/boot/.gitignore | 3 +
arch/s390/boot/Makefile | 78 +-
arch/s390/boot/boot.h | 6 +-
arch/s390/boot/{compressed => }/clz_ctz.c | 0
arch/s390/boot/compressed/Makefile | 86 -
arch/s390/boot/{compressed => }/decompressor.c | 0
arch/s390/boot/{compressed => }/decompressor.h | 0
arch/s390/boot/head.S | 366 +-
arch/s390/boot/install.sh | 6 -
arch/s390/boot/ipl_data.c | 84 +
arch/s390/boot/ipl_parm.c | 7 +
arch/s390/boot/kaslr.c | 2 +-
arch/s390/boot/mem_detect.c | 2 +-
arch/s390/boot/startup.c | 2 +-
arch/s390/boot/{compressed => }/vmlinux.lds.S | 9 +
arch/s390/crypto/aes_s390.c | 4 +-
arch/s390/crypto/chacha-glue.c | 34 +-
arch/s390/crypto/des_s390.c | 2 +-
arch/s390/crypto/prng.c | 2 +-
arch/s390/hypfs/hypfs_vm.c | 2 +-
arch/s390/include/asm/alternative-asm.h | 76 +-
arch/s390/include/asm/alternative.h | 93 +-
arch/s390/include/asm/asm-extable.h | 91 +-
arch/s390/include/asm/barrier.h | 16 +-
arch/s390/include/asm/bug.h | 5 +-
arch/s390/include/asm/cio.h | 2 +-
arch/s390/include/asm/compat.h | 124 +-
arch/s390/include/asm/ctl_reg.h | 4 +-
arch/s390/include/asm/entry-common.h | 14 +-
arch/s390/include/asm/hugetlb.h | 26 +-
arch/s390/include/asm/ipl.h | 6 +
arch/s390/include/asm/kexec.h | 12 +-
arch/s390/include/asm/livepatch.h | 22 -
arch/s390/include/asm/lowcore.h | 5 +-
arch/s390/include/asm/nmi.h | 2 +-
arch/s390/include/asm/nospec-insn.h | 12 +-
arch/s390/include/asm/pai.h | 74 +
arch/s390/include/asm/pci_debug.h | 7 +-
arch/s390/include/asm/pgtable.h | 36 +-
arch/s390/include/asm/preempt.h | 15 +-
arch/s390/include/asm/processor.h | 14 +-
arch/s390/include/asm/ptrace.h | 29 +
arch/s390/include/asm/sclp.h | 1 +
arch/s390/include/asm/scsw.h | 83 +-
arch/s390/include/asm/spinlock.h | 3 +-
arch/s390/include/asm/stacktrace.h | 11 +-
arch/s390/include/asm/stp.h | 4 +-
arch/s390/include/asm/timex.h | 1 +
arch/s390/include/asm/uaccess.h | 217 +-
arch/s390/include/asm/unistd.h | 1 +
arch/s390/include/asm/uv.h | 23 +-
arch/s390/include/asm/vx-insn.h | 6 +-
arch/s390/include/uapi/asm/pkey.h | 2 +-
arch/s390/include/uapi/asm/uvdevice.h | 51 +
arch/s390/include/uapi/asm/zcrypt.h | 42 +-
arch/s390/kernel/Makefile | 3 +-
arch/s390/kernel/alternative.c | 61 +-
arch/s390/kernel/asm-offsets.c | 26 +-
arch/s390/kernel/compat_linux.h | 89 +-
arch/s390/kernel/crash_dump.c | 13 +-
arch/s390/kernel/early.c | 5 +-
arch/s390/kernel/{base.S => earlypgm.S} | 33 +-
arch/s390/kernel/entry.S | 63 +-
arch/s390/kernel/entry.h | 2 +
arch/s390/kernel/ftrace.c | 3 +-
arch/s390/kernel/irq.c | 4 +-
arch/s390/kernel/machine_kexec.c | 10 +-
arch/s390/kernel/nmi.c | 6 +-
arch/s390/kernel/perf_cpum_cf_events.c | 148 +
arch/s390/kernel/perf_event.c | 2 +-
arch/s390/kernel/perf_pai_crypto.c | 688 +
arch/s390/kernel/process.c | 12 +-
arch/s390/kernel/relocate_kernel.S | 3 +-
arch/s390/kernel/setup.c | 2 +-
arch/s390/kernel/time.c | 12 +-
arch/s390/kernel/vdso.c | 55 +-
arch/s390/kvm/gaccess.c | 22 +-
arch/s390/kvm/kvm-s390.c | 21 +-
arch/s390/kvm/priv.c | 1 -
arch/s390/lib/spinlock.c | 4 +-
arch/s390/mm/extable.c | 39 +-
arch/s390/mm/gmap.c | 21 +
arch/s390/mm/init.c | 16 +-
arch/s390/mm/mmap.c | 4 +-
arch/s390/mm/pgtable.c | 2 +-
arch/s390/net/bpf_jit_comp.c | 2 +-
arch/s390/pci/pci.c | 2 +-
arch/s390/pci/pci_clp.c | 2 +-
arch/s390/pci/pci_debug.c | 2 +-
arch/s390/pci/pci_event.c | 3 -
arch/s390/pci/pci_insn.c | 108 +-
arch/s390/purgatory/head.S | 30 +-
arch/sh/boards/board-sh7757lcr.c | 2 +-
arch/sh/boards/mach-ecovec24/setup.c | 2 +-
arch/sh/boot/romimage/mmcif-sh7724.c | 2 +-
arch/sh/configs/rsk7201_defconfig | 1 -
arch/sh/configs/rsk7203_defconfig | 1 -
arch/sh/configs/se7206_defconfig | 1 -
arch/sh/include/asm/hugetlb.h | 5 +-
arch/sh/kernel/crash_dump.c | 29 +-
arch/sh/kernel/process_32.c | 12 +-
arch/sh/kernel/reboot.c | 3 +-
arch/sparc/Kconfig | 6 +-
arch/sparc/Makefile | 3 +-
arch/sparc/boot/install.sh | 22 -
arch/sparc/include/asm/compat.h | 61 +-
arch/sparc/include/asm/hugetlb.h | 5 +-
arch/sparc/include/asm/mman.h | 6 -
arch/sparc/include/asm/timex_32.h | 4 +-
arch/sparc/include/asm/unistd.h | 1 +
arch/sparc/include/uapi/asm/socket.h | 1 +
arch/sparc/include/uapi/asm/stat.h | 12 +-
arch/sparc/include/uapi/asm/termbits.h | 223 +-
arch/sparc/kernel/process_32.c | 12 +-
arch/sparc/kernel/process_64.c | 12 +-
arch/sparc/kernel/signal32.c | 1 +
arch/sparc/kernel/signal_64.c | 1 +
arch/sparc/mm/init_64.c | 12 +
arch/sparc/vdso/Makefile | 3 +-
arch/um/Kconfig | 2 +-
arch/um/drivers/Kconfig | 15 +
arch/um/drivers/Makefile | 2 +
arch/um/drivers/chan_kern.c | 10 +-
arch/um/drivers/chan_user.c | 9 +-
arch/um/drivers/daemon_kern.c | 2 +-
arch/um/drivers/line.c | 22 +-
arch/um/drivers/line.h | 4 +-
arch/um/drivers/ssl.c | 2 -
arch/um/drivers/stdio_console.c | 2 -
arch/um/drivers/ubd_kern.c | 3 -
arch/um/drivers/vector_kern.c | 3 +-
arch/um/drivers/virt-pci.c | 7 +-
arch/um/drivers/virtio_uml.c | 33 +-
arch/um/drivers/xterm.c | 7 +-
arch/um/include/asm/Kbuild | 1 +
arch/um/include/asm/irq.h | 22 +-
arch/um/include/asm/thread_info.h | 2 +
arch/um/include/asm/timex.h | 9 +-
arch/um/kernel/exec.c | 2 +-
arch/um/kernel/process.c | 17 +-
arch/um/kernel/ptrace.c | 8 +-
arch/um/kernel/signal.c | 4 +-
arch/x86/Kconfig | 201 +-
arch/x86/Kconfig.debug | 31 +-
arch/x86/Makefile | 4 +-
arch/x86/boot/boot.h | 73 +-
arch/x86/boot/compressed/Makefile | 2 +
arch/x86/boot/compressed/acpi.c | 176 +-
arch/x86/boot/compressed/early_serial_console.c | 3 +-
arch/x86/boot/compressed/efi.c | 234 +
arch/x86/boot/compressed/efi.h | 126 +
arch/x86/boot/compressed/head_64.S | 64 +-
arch/x86/boot/compressed/ident_map_64.c | 39 +-
arch/x86/boot/compressed/idt_64.c | 18 +-
arch/x86/boot/compressed/kaslr.c | 3 +-
arch/x86/boot/compressed/mem_encrypt.S | 36 -
arch/x86/boot/compressed/misc.c | 17 +-
arch/x86/boot/compressed/misc.h | 60 +-
arch/x86/boot/compressed/pgtable.h | 2 +-
arch/x86/boot/compressed/pgtable_64.c | 3 +-
arch/x86/boot/compressed/sev.c | 263 +-
arch/x86/boot/compressed/tdcall.S | 3 +
arch/x86/boot/compressed/tdx.c | 77 +
arch/x86/boot/compressed/tdx.h | 13 +
arch/x86/boot/cpucheck.c | 30 +-
arch/x86/boot/cpuflags.c | 3 +-
arch/x86/boot/cpuflags.h | 1 +
arch/x86/boot/header.S | 4 +
arch/x86/boot/install.sh | 22 -
arch/x86/boot/io.h | 41 +
arch/x86/boot/main.c | 6 +-
arch/x86/boot/msr.h | 26 +
arch/x86/coco/Makefile | 2 +
arch/x86/coco/core.c | 25 +-
.../staging/vme => arch/x86/coco/tdx}/Makefile | 3 +-
arch/x86/coco/tdx/tdcall.S | 205 +
arch/x86/coco/tdx/tdx.c | 692 +
arch/x86/crypto/blowfish_glue.c | 8 +-
arch/x86/crypto/camellia_glue.c | 8 +-
arch/x86/crypto/serpent_avx2_glue.c | 8 +-
arch/x86/crypto/twofish_glue.c | 8 +-
arch/x86/crypto/twofish_glue_3way.c | 8 +-
arch/x86/entry/calling.h | 19 +-
arch/x86/entry/entry_64.S | 62 +-
arch/x86/entry/entry_64_compat.S | 111 +-
arch/x86/entry/vdso/Makefile | 3 +-
arch/x86/entry/vdso/vma.c | 2 +-
arch/x86/entry/vsyscall/vsyscall_64.c | 2 +-
arch/x86/events/Kconfig | 20 +-
arch/x86/events/amd/Makefile | 1 +
arch/x86/events/amd/brs.c | 367 +
arch/x86/events/amd/core.c | 505 +-
arch/x86/events/amd/ibs.c | 209 +-
arch/x86/events/core.c | 12 +-
arch/x86/events/intel/core.c | 4 +-
arch/x86/events/intel/cstate.c | 2 +
arch/x86/events/intel/lbr.c | 36 +-
arch/x86/events/intel/uncore.c | 2 +
arch/x86/events/intel/uncore_snb.c | 454 +-
arch/x86/events/msr.c | 2 +
arch/x86/events/perf_event.h | 125 +-
arch/x86/ia32/Makefile | 2 -
arch/x86/ia32/ia32_aout.c | 325 -
arch/x86/include/asm/acenv.h | 14 +-
arch/x86/include/asm/amd-ibs.h | 2 +-
arch/x86/include/asm/amd_nb.h | 1 -
arch/x86/include/asm/apic.h | 7 +
arch/x86/include/asm/apicdef.h | 6 -
arch/x86/include/asm/bootparam_utils.h | 1 +
arch/x86/include/asm/bug.h | 2 +-
arch/x86/include/asm/cmpxchg_32.h | 21 +
arch/x86/include/asm/cmpxchg_64.h | 6 +
arch/x86/include/asm/compat.h | 104 +-
arch/x86/include/asm/cpu.h | 22 +-
arch/x86/include/asm/cpu_entry_area.h | 2 +-
arch/x86/include/asm/cpufeature.h | 9 +-
arch/x86/include/asm/cpufeatures.h | 7 +-
arch/x86/include/asm/cpuid.h | 34 +
arch/x86/include/asm/disabled-features.h | 16 +-
arch/x86/include/asm/dma-mapping.h | 12 -
arch/x86/include/asm/e820/api.h | 5 +
arch/x86/include/asm/efi.h | 14 +
arch/x86/include/asm/elf.h | 15 +-
arch/x86/include/asm/entry-common.h | 4 +-
arch/x86/include/asm/extable.h | 8 +-
arch/x86/include/asm/fpu/api.h | 3 +-
arch/x86/include/asm/fpu/sched.h | 2 +-
arch/x86/include/asm/ftrace.h | 7 +
arch/x86/include/asm/gart.h | 5 +-
arch/x86/include/asm/highmem.h | 1 +
arch/x86/include/asm/idtentry.h | 4 +
arch/x86/include/asm/io.h | 42 +-
arch/x86/include/asm/iommu.h | 8 +
arch/x86/include/asm/iommu_table.h | 102 -
arch/x86/include/asm/irqflags.h | 8 -
arch/x86/include/asm/jump_label.h | 6 +-
arch/x86/include/asm/kexec.h | 8 +
arch/x86/include/asm/kvm-x86-ops.h | 1 +
arch/x86/include/asm/kvm-x86-pmu-ops.h | 31 +
arch/x86/include/asm/kvm_host.h | 96 +-
arch/x86/include/asm/kvm_para.h | 22 +
arch/x86/include/asm/livepatch.h | 20 -
arch/x86/include/asm/mem_encrypt.h | 6 +-
arch/x86/include/asm/mmu_context.h | 2 +-
arch/x86/include/asm/mmx.h | 0
arch/x86/include/asm/msr-index.h | 19 +
arch/x86/include/asm/msr.h | 11 +-
arch/x86/include/asm/nmi.h | 1 +
arch/x86/include/asm/page_64.h | 2 +-
arch/x86/include/asm/pci_x86.h | 11 +
arch/x86/include/asm/perf_event.h | 43 +
arch/x86/include/asm/pgtable.h | 54 +-
arch/x86/include/asm/pgtable_64.h | 4 +-
arch/x86/include/asm/pgtable_64_types.h | 5 +
arch/x86/include/asm/pgtable_types.h | 2 +
arch/x86/include/asm/pkeys.h | 8 -
arch/x86/include/asm/processor.h | 4 +-
arch/x86/include/asm/proto.h | 8 +-
arch/x86/include/asm/ptrace.h | 4 +
arch/x86/include/asm/realmode.h | 1 +
arch/x86/include/asm/segment.h | 12 -
arch/x86/include/asm/set_memory.h | 52 -
arch/x86/include/asm/setup.h | 31 +-
arch/x86/include/asm/sev-common.h | 82 +
arch/x86/include/asm/sev.h | 137 +-
arch/x86/include/asm/shared/io.h | 34 +
arch/x86/include/asm/shared/msr.h | 15 +
arch/x86/include/asm/shared/tdx.h | 40 +
arch/x86/include/asm/smap.h | 24 -
arch/x86/include/asm/special_insns.h | 7 +-
arch/x86/include/asm/suspend_32.h | 2 +-
arch/x86/include/asm/suspend_64.h | 12 +-
arch/x86/include/asm/svm.h | 179 +-
arch/x86/include/asm/swiotlb.h | 30 -
arch/x86/include/asm/switch_to.h | 8 +-
arch/x86/include/asm/tdx.h | 91 +
arch/x86/include/asm/text-patching.h | 1 +
arch/x86/include/asm/thread_info.h | 4 +-
arch/x86/include/asm/timex.h | 9 +
arch/x86/include/asm/tlbflush.h | 97 +
arch/x86/include/asm/topology.h | 23 +-
arch/x86/include/asm/traps.h | 2 +-
arch/x86/include/asm/tsc.h | 7 +-
arch/x86/include/asm/uaccess.h | 142 +
arch/x86/include/asm/unistd.h | 1 +
arch/x86/include/asm/vmx.h | 10 +-
arch/x86/include/asm/xen/page-coherent.h | 24 -
arch/x86/include/asm/xen/page.h | 8 -
arch/x86/include/asm/xen/swiotlb-xen.h | 8 +-
arch/x86/include/uapi/asm/amd_hsmp.h | 114 +-
arch/x86/include/uapi/asm/bootparam.h | 4 +-
arch/x86/include/uapi/asm/kvm.h | 11 +-
arch/x86/include/uapi/asm/mman.h | 14 -
arch/x86/include/uapi/asm/svm.h | 13 +
arch/x86/kernel/Makefile | 4 -
arch/x86/kernel/acpi/boot.c | 102 +-
arch/x86/kernel/acpi/cppc.c | 29 +-
arch/x86/kernel/alternative.c | 73 +-
arch/x86/kernel/amd_gart_64.c | 5 +-
arch/x86/kernel/amd_nb.c | 7 +-
arch/x86/kernel/aperture_64.c | 14 +-
arch/x86/kernel/apic/apic.c | 28 +-
arch/x86/kernel/apic/io_apic.c | 18 +-
arch/x86/kernel/apic/x2apic_uv_x.c | 16 +-
arch/x86/kernel/asm-offsets.c | 17 +
arch/x86/kernel/asm-offsets_64.c | 4 +-
arch/x86/kernel/cpu/aperfmperf.c | 480 +-
arch/x86/kernel/cpu/bugs.c | 7 +
arch/x86/kernel/cpu/common.c | 107 +-
arch/x86/kernel/cpu/intel.c | 110 +-
arch/x86/kernel/cpu/mce/amd.c | 32 +-
arch/x86/kernel/cpu/mce/apei.c | 8 +-
arch/x86/kernel/cpu/mce/core.c | 10 +-
arch/x86/kernel/cpu/mce/severity.c | 110 +-
arch/x86/kernel/cpu/microcode/core.c | 115 +-
arch/x86/kernel/cpu/microcode/intel.c | 59 +-
arch/x86/kernel/cpu/mshyperv.c | 10 +-
arch/x86/kernel/cpu/proc.c | 11 +-
arch/x86/kernel/cpu/resctrl/rdtgroup.c | 14 +-
arch/x86/kernel/cpu/scattered.c | 1 +
arch/x86/kernel/cpu/sgx/encl.c | 218 +-
arch/x86/kernel/cpu/sgx/encl.h | 9 +-
arch/x86/kernel/cpu/sgx/main.c | 22 +-
arch/x86/kernel/crash.c | 2 +-
arch/x86/kernel/crash_dump_32.c | 29 +-
arch/x86/kernel/crash_dump_64.c | 48 +-
arch/x86/kernel/early-quirks.c | 1 +
arch/x86/kernel/fpu/core.c | 88 +-
arch/x86/kernel/fpu/xstate.c | 65 +-
arch/x86/kernel/fpu/xstate.h | 14 +-
arch/x86/kernel/ftrace.c | 23 +-
arch/x86/kernel/head64.c | 36 +-
arch/x86/kernel/head_64.S | 65 +-
arch/x86/kernel/idt.c | 3 +
arch/x86/kernel/kvm.c | 118 +-
arch/x86/kernel/kvmclock.c | 2 +-
arch/x86/kernel/machine_kexec_64.c | 12 +-
arch/x86/kernel/nmi.c | 12 +-
arch/x86/kernel/pci-dma.c | 114 +-
arch/x86/kernel/pci-iommu_table.c | 77 -
arch/x86/kernel/pci-swiotlb.c | 77 -
arch/x86/kernel/probe_roms.c | 13 +-
arch/x86/kernel/process.c | 41 +-
arch/x86/kernel/process_32.c | 13 +-
arch/x86/kernel/process_64.c | 4 +-
arch/x86/kernel/ptrace.c | 6 +-
arch/x86/kernel/reboot.c | 4 +-
arch/x86/kernel/resource.c | 25 +-
arch/x86/kernel/setup.c | 34 +-
arch/x86/kernel/sev-shared.c | 534 +-
arch/x86/kernel/sev.c | 855 +-
arch/x86/kernel/signal.c | 8 +-
arch/x86/kernel/signal_compat.c | 2 +
arch/x86/kernel/smpboot.c | 373 +-
arch/x86/kernel/step.c | 3 +-
arch/x86/kernel/sys_x86_64.c | 7 +-
arch/x86/kernel/tboot.c | 1 -
arch/x86/kernel/tracepoint.c | 6 -
arch/x86/kernel/traps.c | 162 +-
arch/x86/kernel/vm86_32.c | 4 +-
arch/x86/kernel/vmlinux.lds.S | 12 -
arch/x86/kvm/cpuid.c | 24 +-
arch/x86/kvm/hyperv.c | 14 +-
arch/x86/kvm/i8259.c | 1 -
arch/x86/kvm/irq.c | 10 +-
arch/x86/kvm/irq_comm.c | 2 +-
arch/x86/kvm/lapic.c | 5 +-
arch/x86/kvm/lapic.h | 1 -
arch/x86/kvm/mmu.h | 109 +-
arch/x86/kvm/mmu/mmu.c | 649 +-
arch/x86/kvm/mmu/mmu_internal.h | 123 +-
arch/x86/kvm/mmu/mmutrace.h | 1 +
arch/x86/kvm/mmu/paging_tmpl.h | 71 +-
arch/x86/kvm/mmu/spte.c | 75 +-
arch/x86/kvm/mmu/spte.h | 20 +-
arch/x86/kvm/mmu/tdp_iter.c | 9 +
arch/x86/kvm/mmu/tdp_iter.h | 35 +-
arch/x86/kvm/mmu/tdp_mmu.c | 134 +-
arch/x86/kvm/pmu.c | 73 +-
arch/x86/kvm/pmu.h | 7 +-
arch/x86/kvm/svm/avic.c | 84 +-
arch/x86/kvm/svm/nested.c | 312 +-
arch/x86/kvm/svm/pmu.c | 30 +-
arch/x86/kvm/svm/sev.c | 92 +-
arch/x86/kvm/svm/svm.c | 257 +-
arch/x86/kvm/svm/svm.h | 61 +-
arch/x86/kvm/trace.h | 20 +
arch/x86/kvm/vmx/nested.c | 63 +-
arch/x86/kvm/vmx/pmu_intel.c | 2 +-
arch/x86/kvm/vmx/posted_intr.c | 11 +-
arch/x86/kvm/vmx/vmcs.h | 5 +
arch/x86/kvm/vmx/vmx.c | 50 +-
arch/x86/kvm/x86.c | 423 +-
arch/x86/kvm/xen.c | 1245 +-
arch/x86/kvm/xen.h | 68 +-
arch/x86/lib/csum-wrappers_64.c | 2 -
arch/x86/lib/delay.c | 4 +-
arch/x86/lib/insn-eval.c | 5 +-
arch/x86/lib/kaslr.c | 2 +-
arch/x86/lib/mmx_32.c | 0
arch/x86/math-emu/get_address.c | 2 +-
arch/x86/mm/Makefile | 3 +-
arch/x86/mm/amdtopology.c | 2 +-
arch/x86/mm/fault.c | 2 +-
arch/x86/mm/init_64.c | 16 +-
arch/x86/mm/ioremap.c | 5 +
arch/x86/mm/mem_encrypt.c | 20 +-
arch/x86/mm/mem_encrypt_amd.c | 78 +-
arch/x86/mm/mem_encrypt_identity.c | 8 +
arch/x86/mm/mmio-mod.c | 2 +-
arch/x86/mm/numa_emulation.c | 4 +-
arch/x86/mm/pat/memtype.c | 2 +-
arch/x86/mm/pat/set_memory.c | 49 +-
arch/x86/mm/pgprot.c | 35 +
arch/x86/mm/pgtable.c | 13 +-
arch/x86/mm/pti.c | 2 +-
arch/x86/mm/setup_nx.c | 62 -
arch/x86/net/bpf_jit_comp.c | 79 +-
arch/x86/pci/acpi.c | 93 +
arch/x86/pci/common.c | 8 +
arch/x86/pci/irq.c | 377 +-
arch/x86/pci/sta2x11-fixup.c | 2 +-
arch/x86/platform/efi/efi.c | 3 +
arch/x86/platform/efi/efi_thunk_64.S | 2 +-
arch/x86/platform/uv/uv_nmi.c | 23 +-
arch/x86/realmode/init.c | 2 +-
arch/x86/realmode/rm/header.S | 1 +
arch/x86/realmode/rm/trampoline_64.S | 57 +-
arch/x86/realmode/rm/trampoline_common.S | 12 +-
arch/x86/realmode/rm/wakemain.c | 4 +
arch/x86/um/ldt.c | 6 +-
arch/x86/virt/vmx/tdx/tdxcall.S | 96 +
arch/x86/xen/Makefile | 2 -
arch/x86/xen/enlighten_hvm.c | 2 +
arch/x86/xen/enlighten_pv.c | 8 +-
arch/x86/xen/mmu_pv.c | 1 +
arch/x86/xen/pci-swiotlb-xen.c | 96 -
arch/x86/xen/smp_pv.c | 5 +-
arch/xtensa/Kconfig | 18 +
arch/xtensa/boot/lib/Makefile | 1 +
arch/xtensa/include/asm/barrier.h | 12 +-
arch/xtensa/include/asm/bitops.h | 10 +-
arch/xtensa/include/asm/coprocessor.h | 11 +-
arch/xtensa/include/asm/processor.h | 7 +
arch/xtensa/include/asm/sections.h | 2 +-
arch/xtensa/include/asm/thread_info.h | 11 +-
arch/xtensa/include/asm/timex.h | 6 +-
arch/xtensa/include/asm/traps.h | 40 +-
arch/xtensa/kernel/Makefile | 1 +
arch/xtensa/kernel/asm-offsets.c | 19 +-
arch/xtensa/kernel/coprocessor.S | 230 +-
arch/xtensa/kernel/entry.S | 335 +-
arch/xtensa/kernel/hibernate.c | 25 +
arch/xtensa/kernel/process.c | 129 +-
arch/xtensa/kernel/ptrace.c | 7 +-
arch/xtensa/kernel/s32c1i_selftest.c | 7 +-
arch/xtensa/kernel/signal.c | 7 +-
arch/xtensa/kernel/smp.c | 7 +
arch/xtensa/kernel/traps.c | 143 +-
arch/xtensa/lib/Makefile | 2 +
arch/xtensa/lib/kcsan-stubs.c | 54 +
arch/xtensa/lib/memcopy.S | 20 +-
arch/xtensa/mm/Makefile | 3 +-
arch/xtensa/mm/fault.c | 112 +-
arch/xtensa/mm/mmu.c | 2 +
arch/xtensa/platforms/iss/network.c | 150 +-
arch/xtensa/platforms/iss/simdisk.c | 18 +-
arch/xtensa/platforms/xt2000/setup.c | 2 +-
block/Makefile | 1 +
block/badblocks.c | 2 -
block/bdev.c | 23 +-
block/bfq-cgroup.c | 111 +-
block/bfq-iosched.c | 95 +-
block/bfq-iosched.h | 11 +-
block/bio.c | 171 +-
block/blk-cgroup-fc-appid.c | 57 +
block/blk-cgroup.c | 176 +-
block/blk-cgroup.h | 140 +-
block/blk-core.c | 87 +-
block/blk-crypto-fallback.c | 15 +-
block/blk-ia-ranges.c | 7 +-
block/blk-iocost.c | 76 +-
block/blk-iolatency.c | 130 +-
block/blk-lib.c | 124 +-
block/blk-map.c | 47 +-
block/blk-mq-debugfs.c | 2 -
block/blk-mq-tag.c | 1 -
block/blk-mq.c | 154 +-
block/blk-settings.c | 74 +-
block/blk-throttle.c | 5 +-
block/blk.h | 21 -
block/bounce.c | 1 -
block/fops.c | 47 +-
block/genhd.c | 6 +-
block/ioctl.c | 48 +-
block/mq-deadline.c | 1 +
block/partitions/acorn.c | 4 +-
block/partitions/atari.c | 1 -
block/partitions/core.c | 14 +-
block/partitions/ldm.c | 15 +-
certs/.gitignore | 1 +
certs/Kconfig | 17 +-
certs/Makefile | 18 +-
certs/blacklist.c | 227 +-
certs/extract-cert.c | 7 +
crypto/Kconfig | 18 +-
crypto/Makefile | 6 +-
crypto/asymmetric_keys/x509_public_key.c | 3 +-
crypto/cryptd.c | 23 +-
crypto/crypto_engine.c | 1 +
crypto/ecrdsa.c | 8 +-
{lib/crypto => crypto}/sm3.c | 0
{lib/crypto => crypto}/sm4.c | 10 +-
crypto/testmgr.c | 75 +-
drivers/Kconfig | 6 +-
drivers/Makefile | 5 +-
drivers/accessibility/speakup/fakekey.c | 4 +-
drivers/accessibility/speakup/serialio.c | 2 +-
drivers/accessibility/speakup/speakup_acntpc.c | 2 +-
drivers/accessibility/speakup/speakup_acntsa.c | 2 +-
drivers/accessibility/speakup/speakup_apollo.c | 2 +-
drivers/accessibility/speakup/speakup_audptr.c | 2 +-
drivers/accessibility/speakup/speakup_bns.c | 2 +-
drivers/accessibility/speakup/speakup_decext.c | 2 +-
drivers/accessibility/speakup/speakup_dectlk.c | 2 +-
drivers/accessibility/speakup/speakup_dtlk.c | 2 +-
drivers/accessibility/speakup/speakup_dummy.c | 2 +-
drivers/accessibility/speakup/speakup_keypc.c | 2 +-
drivers/accessibility/speakup/speakup_ltlk.c | 2 +-
drivers/accessibility/speakup/speakup_soft.c | 3 +-
drivers/accessibility/speakup/speakup_spkout.c | 2 +-
drivers/accessibility/speakup/speakup_txprt.c | 2 +-
drivers/acpi/ac.c | 4 +-
drivers/acpi/acpi_pad.c | 7 +
drivers/acpi/acpi_video.c | 31 +-
drivers/acpi/acpica/acapps.h | 4 +-
drivers/acpi/acpica/accommon.h | 2 +-
drivers/acpi/acpica/acconvert.h | 2 +-
drivers/acpi/acpica/acdebug.h | 2 +-
drivers/acpi/acpica/acdispat.h | 2 +-
drivers/acpi/acpica/acevents.h | 2 +-
drivers/acpi/acpica/acglobal.h | 2 +-
drivers/acpi/acpica/achware.h | 2 +-
drivers/acpi/acpica/acinterp.h | 2 +-
drivers/acpi/acpica/aclocal.h | 2 +-
drivers/acpi/acpica/acmacros.h | 2 +-
drivers/acpi/acpica/acnamesp.h | 2 +-
drivers/acpi/acpica/acobject.h | 2 +-
drivers/acpi/acpica/acopcode.h | 2 +-
drivers/acpi/acpica/acparser.h | 2 +-
drivers/acpi/acpica/acpredef.h | 2 +-
drivers/acpi/acpica/acresrc.h | 2 +-
drivers/acpi/acpica/acstruct.h | 2 +-
drivers/acpi/acpica/actables.h | 2 +-
drivers/acpi/acpica/acutils.h | 2 +-
drivers/acpi/acpica/amlcode.h | 2 +-
drivers/acpi/acpica/amlresrc.h | 2 +-
drivers/acpi/acpica/dbhistry.c | 2 +-
drivers/acpi/acpica/dsargs.c | 2 +-
drivers/acpi/acpica/dscontrol.c | 2 +-
drivers/acpi/acpica/dsdebug.c | 2 +-
drivers/acpi/acpica/dsfield.c | 2 +-
drivers/acpi/acpica/dsinit.c | 2 +-
drivers/acpi/acpica/dsmethod.c | 2 +-
drivers/acpi/acpica/dsobject.c | 2 +-
drivers/acpi/acpica/dsopcode.c | 2 +-
drivers/acpi/acpica/dspkginit.c | 2 +-
drivers/acpi/acpica/dswexec.c | 4 +-
drivers/acpi/acpica/dswload.c | 2 +-
drivers/acpi/acpica/dswload2.c | 2 +-
drivers/acpi/acpica/dswscope.c | 2 +-
drivers/acpi/acpica/dswstate.c | 2 +-
drivers/acpi/acpica/evevent.c | 2 +-
drivers/acpi/acpica/evglock.c | 2 +-
drivers/acpi/acpica/evgpe.c | 2 +-
drivers/acpi/acpica/evgpeblk.c | 2 +-
drivers/acpi/acpica/evgpeinit.c | 2 +-
drivers/acpi/acpica/evgpeutil.c | 2 +-
drivers/acpi/acpica/evhandler.c | 2 +-
drivers/acpi/acpica/evmisc.c | 2 +-
drivers/acpi/acpica/evregion.c | 2 +-
drivers/acpi/acpica/evrgnini.c | 2 +-
drivers/acpi/acpica/evxface.c | 2 +-
drivers/acpi/acpica/evxfevnt.c | 2 +-
drivers/acpi/acpica/evxfgpe.c | 2 +-
drivers/acpi/acpica/evxfregn.c | 2 +-
drivers/acpi/acpica/exconcat.c | 2 +-
drivers/acpi/acpica/exconfig.c | 61 +-
drivers/acpi/acpica/exconvrt.c | 2 +-
drivers/acpi/acpica/excreate.c | 2 +-
drivers/acpi/acpica/exdebug.c | 2 +-
drivers/acpi/acpica/exdump.c | 2 +-
drivers/acpi/acpica/exfield.c | 2 +-
drivers/acpi/acpica/exfldio.c | 4 +-
drivers/acpi/acpica/exmisc.c | 2 +-
drivers/acpi/acpica/exmutex.c | 2 +-
drivers/acpi/acpica/exnames.c | 2 +-
drivers/acpi/acpica/exoparg1.c | 23 +-
drivers/acpi/acpica/exoparg2.c | 2 +-
drivers/acpi/acpica/exoparg3.c | 2 +-
drivers/acpi/acpica/exoparg6.c | 2 +-
drivers/acpi/acpica/exprep.c | 2 +-
drivers/acpi/acpica/exregion.c | 2 +-
drivers/acpi/acpica/exresnte.c | 2 +-
drivers/acpi/acpica/exresolv.c | 2 +-
drivers/acpi/acpica/exresop.c | 2 +-
drivers/acpi/acpica/exserial.c | 2 +-
drivers/acpi/acpica/exstore.c | 2 +-
drivers/acpi/acpica/exstoren.c | 2 +-
drivers/acpi/acpica/exstorob.c | 2 +-
drivers/acpi/acpica/exsystem.c | 29 +-
drivers/acpi/acpica/extrace.c | 2 +-
drivers/acpi/acpica/exutils.c | 2 +-
drivers/acpi/acpica/hwacpi.c | 2 +-
drivers/acpi/acpica/hwesleep.c | 2 +-
drivers/acpi/acpica/hwgpe.c | 2 +-
drivers/acpi/acpica/hwregs.c | 2 +-
drivers/acpi/acpica/hwsleep.c | 2 +-
drivers/acpi/acpica/hwtimer.c | 2 +-
drivers/acpi/acpica/hwvalid.c | 2 +-
drivers/acpi/acpica/hwxface.c | 2 +-
drivers/acpi/acpica/hwxfsleep.c | 2 +-
drivers/acpi/acpica/nsarguments.c | 2 +-
drivers/acpi/acpica/nsconvert.c | 2 +-
drivers/acpi/acpica/nsdump.c | 2 +-
drivers/acpi/acpica/nsdumpdv.c | 2 +-
drivers/acpi/acpica/nsinit.c | 2 +-
drivers/acpi/acpica/nsload.c | 2 +-
drivers/acpi/acpica/nsparse.c | 2 +-
drivers/acpi/acpica/nspredef.c | 2 +-
drivers/acpi/acpica/nsprepkg.c | 2 +-
drivers/acpi/acpica/nsrepair.c | 2 +-
drivers/acpi/acpica/nsrepair2.c | 2 +-
drivers/acpi/acpica/nsutils.c | 2 +-
drivers/acpi/acpica/nswalk.c | 2 +-
drivers/acpi/acpica/nsxfname.c | 2 +-
drivers/acpi/acpica/psargs.c | 2 +-
drivers/acpi/acpica/psloop.c | 2 +-
drivers/acpi/acpica/psobject.c | 2 +-
drivers/acpi/acpica/psopcode.c | 6 +-
drivers/acpi/acpica/psopinfo.c | 2 +-
drivers/acpi/acpica/psparse.c | 2 +-
drivers/acpi/acpica/psscope.c | 2 +-
drivers/acpi/acpica/pstree.c | 2 +-
drivers/acpi/acpica/psutils.c | 2 +-
drivers/acpi/acpica/pswalk.c | 2 +-
drivers/acpi/acpica/psxface.c | 2 +-
drivers/acpi/acpica/tbdata.c | 2 +-
drivers/acpi/acpica/tbfadt.c | 2 +-
drivers/acpi/acpica/tbfind.c | 2 +-
drivers/acpi/acpica/tbinstal.c | 2 +-
drivers/acpi/acpica/tbprint.c | 2 +-
drivers/acpi/acpica/tbutils.c | 2 +-
drivers/acpi/acpica/tbxface.c | 2 +-
drivers/acpi/acpica/tbxfload.c | 2 +-
drivers/acpi/acpica/tbxfroot.c | 2 +-
drivers/acpi/acpica/utaddress.c | 2 +-
drivers/acpi/acpica/utalloc.c | 2 +-
drivers/acpi/acpica/utascii.c | 2 +-
drivers/acpi/acpica/utbuffer.c | 2 +-
drivers/acpi/acpica/utcache.c | 2 +-
drivers/acpi/acpica/utcopy.c | 2 +-
drivers/acpi/acpica/utdebug.c | 2 +-
drivers/acpi/acpica/utdecode.c | 2 +-
drivers/acpi/acpica/uteval.c | 2 +-
drivers/acpi/acpica/utglobal.c | 2 +-
drivers/acpi/acpica/uthex.c | 2 +-
drivers/acpi/acpica/utids.c | 2 +-
drivers/acpi/acpica/utinit.c | 2 +-
drivers/acpi/acpica/utlock.c | 2 +-
drivers/acpi/acpica/utobject.c | 2 +-
drivers/acpi/acpica/utosi.c | 3 +-
drivers/acpi/acpica/utpredef.c | 2 +-
drivers/acpi/acpica/utprint.c | 2 +-
drivers/acpi/acpica/uttrack.c | 2 +-
drivers/acpi/acpica/utuuid.c | 2 +-
drivers/acpi/acpica/utxface.c | 2 +-
drivers/acpi/acpica/utxfinit.c | 2 +-
drivers/acpi/apei/einj.c | 3 +
drivers/acpi/apei/erst-dbg.c | 3 +-
drivers/acpi/apei/erst.c | 77 +-
drivers/acpi/arm64/agdi.c | 1 +
drivers/acpi/battery.c | 24 +-
drivers/acpi/bgrt.c | 2 +-
drivers/acpi/bus.c | 62 +-
drivers/acpi/cppc_acpi.c | 46 +-
drivers/acpi/device_pm.c | 83 +-
drivers/acpi/dptf/dptf_pch_fivr.c | 1 +
drivers/acpi/dptf/dptf_power.c | 11 +-
drivers/acpi/dptf/int340x_thermal.c | 6 +
drivers/acpi/fan.h | 1 +
drivers/acpi/glue.c | 16 +-
drivers/acpi/nfit/core.c | 30 +-
drivers/acpi/nfit/mce.c | 4 +-
drivers/acpi/nfit/nfit.h | 24 -
drivers/acpi/osl.c | 86 -
drivers/acpi/pci_root.c | 240 +-
drivers/acpi/processor_idle.c | 15 +-
drivers/acpi/property.c | 54 +-
drivers/acpi/sleep.c | 28 +-
drivers/acpi/spcr.c | 1 +
drivers/acpi/sysfs.c | 25 +-
drivers/acpi/utils.c | 2 +-
drivers/amba/bus.c | 202 +-
drivers/android/binder.c | 201 +-
drivers/android/binder_alloc.c | 22 +-
drivers/android/binder_internal.h | 5 +
drivers/android/binderfs.c | 8 +
drivers/ata/ahci.c | 5 +-
drivers/ata/ahci_brcm.c | 7 +-
drivers/ata/libata-core.c | 352 +-
drivers/ata/libata-sata.c | 25 -
drivers/ata/libata-scsi.c | 48 +-
drivers/ata/libata-transport.c | 2 +-
drivers/ata/libata.h | 13 -
drivers/ata/pata_ftide010.c | 7 +-
drivers/ata/pata_mpc52xx.c | 3 +-
drivers/ata/pata_octeon_cf.c | 3 +
drivers/ata/pata_palmld.c | 3 +-
drivers/ata/pata_sil680.c | 30 +-
drivers/ata/pata_via.c | 6 +-
drivers/ata/sata_gemini.c | 7 +-
drivers/atm/Kconfig | 79 -
drivers/atm/Makefile | 4 -
drivers/atm/ambassador.c | 2400 -
drivers/atm/ambassador.h | 648 -
drivers/atm/firestream.c | 2057 -
drivers/atm/firestream.h | 502 -
drivers/atm/horizon.c | 2853 -
drivers/atm/horizon.h | 492 -
drivers/atm/nicstarmac.c | 5 -
drivers/atm/uPD98401.h | 293 -
drivers/atm/uPD98402.c | 266 -
drivers/atm/uPD98402.h | 107 -
drivers/atm/zatm.c | 1652 -
drivers/atm/zatm.h | 104 -
drivers/base/Makefile | 1 +
drivers/base/arch_topology.c | 5 +
drivers/base/base.h | 1 +
drivers/base/bus.c | 4 +-
drivers/base/core.c | 18 +-
drivers/base/dd.c | 49 +-
drivers/base/driver.c | 70 +
drivers/base/firmware_loader/Kconfig | 43 +-
drivers/base/firmware_loader/Makefile | 2 +
drivers/base/firmware_loader/fallback.c | 430 -
drivers/base/firmware_loader/fallback.h | 46 +-
drivers/base/firmware_loader/firmware.h | 16 +
drivers/base/firmware_loader/main.c | 111 +-
drivers/base/firmware_loader/sysfs.c | 422 +
drivers/base/firmware_loader/sysfs.h | 117 +
drivers/base/firmware_loader/sysfs_upload.c | 397 +
drivers/base/firmware_loader/sysfs_upload.h | 41 +
drivers/base/memory.c | 5 +-
drivers/base/node.c | 1 +
drivers/base/physical_location.c | 143 +
drivers/base/physical_location.h | 16 +
drivers/base/platform.c | 55 +-
drivers/base/power/common.c | 8 +-
drivers/base/power/domain.c | 278 +-
drivers/base/power/domain_governor.c | 65 +-
drivers/base/power/runtime.c | 53 +-
drivers/base/power/wakeup.c | 1 +
drivers/base/property.c | 313 +-
drivers/base/regmap/internal.h | 4 +
drivers/base/regmap/regcache.c | 4 +-
drivers/base/regmap/regmap-i3c.c | 2 +-
drivers/base/regmap/regmap-sccb.c | 2 +-
drivers/base/regmap/regmap-sdw-mbq.c | 2 +-
drivers/base/regmap/regmap-sdw.c | 2 +-
drivers/base/regmap/regmap-slimbus.c | 2 +-
drivers/base/regmap/regmap-w1.c | 6 +-
drivers/base/regmap/regmap.c | 78 +-
drivers/bcma/driver_gpio.c | 7 +-
drivers/block/aoe/aoe.h | 2 +
drivers/block/aoe/aoeblk.c | 2 +-
drivers/block/aoe/aoecmd.c | 2 +-
drivers/block/aoe/aoedev.c | 4 +-
drivers/block/aoe/aoemain.c | 10 +-
drivers/block/ataflop.c | 10 +-
drivers/block/drbd/drbd_bitmap.c | 2 +-
drivers/block/drbd/drbd_main.c | 62 +-
drivers/block/drbd/drbd_nl.c | 127 +-
drivers/block/drbd/drbd_receiver.c | 28 +-
drivers/block/drbd/drbd_req.c | 2 +-
drivers/block/drbd/drbd_state.c | 3 +-
drivers/block/drbd/drbd_worker.c | 2 +-
drivers/block/floppy.c | 18 +-
drivers/block/loop.c | 405 +-
drivers/block/loop.h | 72 -
drivers/block/mtip32xx/mtip32xx.c | 2 +-
drivers/block/nbd.c | 151 +-
drivers/block/null_blk/main.c | 99 +-
drivers/block/null_blk/null_blk.h | 15 +-
drivers/block/null_blk/zoned.c | 13 +-
drivers/block/pktcdvd.c | 36 +-
drivers/block/rbd.c | 14 +-
drivers/block/rnbd/rnbd-clt.c | 20 +-
drivers/block/rnbd/rnbd-srv-dev.h | 10 +-
drivers/block/rnbd/rnbd-srv.c | 5 +-
drivers/block/sx8.c | 4 +-
drivers/block/virtio_blk.c | 229 +-
drivers/block/xen-blkback/blkback.c | 15 +-
drivers/block/xen-blkback/xenbus.c | 14 +-
drivers/block/xen-blkfront.c | 71 +-
drivers/block/zram/Kconfig | 3 +-
drivers/block/zram/zram_drv.c | 87 +-
drivers/block/zram/zram_drv.h | 1 -
drivers/bluetooth/btbcm.c | 53 +-
drivers/bluetooth/btintel.c | 2 +-
drivers/bluetooth/btmtksdio.c | 26 +-
drivers/bluetooth/btrtl.c | 13 +
drivers/bluetooth/btusb.c | 23 +-
drivers/bluetooth/hci_qca.c | 4 +-
drivers/bus/Kconfig | 11 +
drivers/bus/Makefile | 1 +
drivers/bus/brcmstb_gisb.c | 1 -
drivers/bus/fsl-mc/fsl-mc-bus.c | 49 +-
drivers/bus/mhi/Kconfig | 1 +
drivers/bus/mhi/Makefile | 3 +
drivers/bus/mhi/common.h | 22 +
drivers/bus/mhi/ep/Kconfig | 10 +
drivers/bus/mhi/ep/Makefile | 2 +
drivers/bus/mhi/ep/internal.h | 218 +
drivers/bus/mhi/ep/main.c | 1591 +
drivers/bus/mhi/ep/mmio.c | 273 +
drivers/bus/mhi/ep/ring.c | 207 +
drivers/bus/mhi/ep/sm.c | 148 +
drivers/bus/mhi/host/boot.c | 22 +-
drivers/bus/mhi/host/init.c | 89 +-
drivers/bus/mhi/host/internal.h | 7 +-
drivers/bus/mhi/host/main.c | 18 +-
drivers/bus/mhi/host/pci_generic.c | 133 +-
drivers/bus/mhi/host/pm.c | 24 +-
drivers/bus/qcom-ssc-block-bus.c | 389 +
drivers/bus/ti-sysc.c | 8 +-
drivers/cdrom/cdrom.c | 38 +-
drivers/char/Kconfig | 53 +-
drivers/char/agp/amd64-agp.c | 2 +-
drivers/char/hw_random/Kconfig | 15 +-
drivers/char/hw_random/Makefile | 1 +
drivers/char/hw_random/cn10k-rng.c | 31 +-
drivers/char/hw_random/mpfs-rng.c | 104 +
drivers/char/hw_random/omap3-rom-rng.c | 2 +-
drivers/char/hw_random/optee-rng.c | 2 +-
drivers/char/hw_random/virtio-rng.c | 2 +
drivers/char/ipmi/ipmb_dev_int.c | 5 +-
drivers/char/ipmi/ipmi_ipmb.c | 6 +-
drivers/char/ipmi/ipmi_msghandler.c | 118 +-
drivers/char/ipmi/ipmi_poweroff.c | 8 +-
drivers/char/ipmi/ipmi_si_intf.c | 22 +-
drivers/char/ipmi/ipmi_ssif.c | 33 +-
drivers/char/ipmi/ipmi_watchdog.c | 28 +-
drivers/char/mem.c | 2 +-
drivers/char/misc.c | 24 +-
drivers/char/pcmcia/synclink_cs.c | 10 +-
drivers/char/random.c | 1347 +-
drivers/char/tpm/tpm2-cmd.c | 17 +-
drivers/char/tpm/tpm_ftpm_tee.c | 2 +-
drivers/char/tpm/tpm_ibmvtpm.c | 1 +
drivers/char/tpm/tpm_tis.c | 67 +-
drivers/char/tpm/tpm_tis_core.h | 58 +-
drivers/char/tpm/tpm_tis_i2c_cr50.c | 11 +-
drivers/char/tpm/tpm_tis_spi.h | 4 -
drivers/char/tpm/tpm_tis_spi_cr50.c | 7 +-
drivers/char/tpm/tpm_tis_spi_main.c | 45 +-
drivers/char/tpm/tpm_tis_synquacer.c | 98 +-
drivers/char/tpm/xen-tpmfront.c | 18 +-
drivers/char/ttyprintk.c | 16 +
drivers/char/xillybus/xillybus_class.c | 26 +-
drivers/char/xillybus/xillyusb.c | 1 +
drivers/clk/Kconfig | 14 +
drivers/clk/Makefile | 3 +-
drivers/clk/actions/owl-pll.c | 2 +-
drivers/clk/at91/clk-generated.c | 4 +
drivers/clk/bcm/clk-bcm2835.c | 1 +
drivers/clk/bcm/clk-raspberrypi.c | 2 +-
drivers/clk/clk-cdce706.c | 5 +-
drivers/clk/clk-cdce925.c | 24 +-
drivers/clk/clk-cs2000-cp.c | 5 +-
drivers/clk/clk-en7523.c | 351 +
drivers/clk/clk-fixed-rate.c | 2 +-
drivers/clk/clk-max9485.c | 5 +-
drivers/clk/clk-mux.c | 4 +-
drivers/clk/clk-renesas-pcie.c | 4 +-
drivers/clk/clk-si514.c | 5 +-
drivers/clk/clk-si5341.c | 5 +-
drivers/clk/clk-si5351.c | 24 +-
drivers/clk/clk-si544.c | 22 +-
drivers/clk/clk-si570.c | 24 +-
drivers/clk/clk.c | 9 +-
drivers/clk/h8300/Makefile | 3 -
drivers/clk/h8300/clk-div.c | 57 -
drivers/clk/h8300/clk-h8s2678.c | 145 -
drivers/clk/imx/clk-composite-8m.c | 19 +-
drivers/clk/imx/clk-imx7d.c | 1 -
drivers/clk/imx/clk-imx8mm.c | 3 +-
drivers/clk/imx/clk-imx8mn.c | 41 +-
drivers/clk/imx/clk-imx8mp.c | 24 +-
drivers/clk/imx/clk-imx8mq.c | 5 +-
drivers/clk/imx/clk-scu.c | 13 +-
drivers/clk/imx/clk.c | 5 +
drivers/clk/imx/clk.h | 1 +
drivers/clk/ingenic/cgu.c | 2 +-
drivers/clk/ingenic/cgu.h | 3 +
drivers/clk/ingenic/jz4725b-cgu.c | 10 +
drivers/clk/ingenic/jz4740-cgu.c | 10 +
drivers/clk/ingenic/jz4760-cgu.c | 10 +
drivers/clk/ingenic/jz4770-cgu.c | 5 +
drivers/clk/ingenic/jz4780-cgu.c | 15 +
drivers/clk/ingenic/tcu.c | 35 +-
drivers/clk/ingenic/x1000-cgu.c | 15 +
drivers/clk/ingenic/x1830-cgu.c | 11 +
drivers/clk/keystone/syscon-clk.c | 11 +
drivers/clk/mediatek/Kconfig | 8 +
drivers/clk/mediatek/Makefile | 5 +
drivers/clk/mediatek/clk-apmixed.c | 12 +-
drivers/clk/mediatek/clk-cpumux.c | 50 +-
drivers/clk/mediatek/clk-cpumux.h | 6 +-
drivers/clk/mediatek/clk-gate.c | 52 +-
drivers/clk/mediatek/clk-gate.h | 8 +-
drivers/clk/mediatek/clk-mt2701-aud.c | 4 +-
drivers/clk/mediatek/clk-mt2701-bdp.c | 4 +-
drivers/clk/mediatek/clk-mt2701-eth.c | 4 +-
drivers/clk/mediatek/clk-mt2701-g3d.c | 4 +-
drivers/clk/mediatek/clk-mt2701-hif.c | 4 +-
drivers/clk/mediatek/clk-mt2701-img.c | 4 +-
drivers/clk/mediatek/clk-mt2701-mm.c | 4 +-
drivers/clk/mediatek/clk-mt2701-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt2701.c | 34 +-
drivers/clk/mediatek/clk-mt2712-bdp.c | 4 +-
drivers/clk/mediatek/clk-mt2712-img.c | 4 +-
drivers/clk/mediatek/clk-mt2712-jpgdec.c | 4 +-
drivers/clk/mediatek/clk-mt2712-mfg.c | 4 +-
drivers/clk/mediatek/clk-mt2712-mm.c | 4 +-
drivers/clk/mediatek/clk-mt2712-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt2712-venc.c | 4 +-
drivers/clk/mediatek/clk-mt2712.c | 58 +-
drivers/clk/mediatek/clk-mt6765-audio.c | 4 +-
drivers/clk/mediatek/clk-mt6765-cam.c | 4 +-
drivers/clk/mediatek/clk-mt6765-img.c | 4 +-
drivers/clk/mediatek/clk-mt6765-mipi0a.c | 4 +-
drivers/clk/mediatek/clk-mt6765-mm.c | 4 +-
drivers/clk/mediatek/clk-mt6765-vcodec.c | 4 +-
drivers/clk/mediatek/clk-mt6765.c | 32 +-
drivers/clk/mediatek/clk-mt6779-aud.c | 4 +-
drivers/clk/mediatek/clk-mt6779-cam.c | 4 +-
drivers/clk/mediatek/clk-mt6779-img.c | 4 +-
drivers/clk/mediatek/clk-mt6779-ipe.c | 4 +-
drivers/clk/mediatek/clk-mt6779-mfg.c | 4 +-
drivers/clk/mediatek/clk-mt6779-mm.c | 4 +-
drivers/clk/mediatek/clk-mt6779-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt6779-venc.c | 4 +-
drivers/clk/mediatek/clk-mt6779.c | 36 +-
drivers/clk/mediatek/clk-mt6797-img.c | 4 +-
drivers/clk/mediatek/clk-mt6797-mm.c | 4 +-
drivers/clk/mediatek/clk-mt6797-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt6797-venc.c | 4 +-
drivers/clk/mediatek/clk-mt6797.c | 42 +-
drivers/clk/mediatek/clk-mt7622-aud.c | 4 +-
drivers/clk/mediatek/clk-mt7622-eth.c | 8 +-
drivers/clk/mediatek/clk-mt7622-hif.c | 8 +-
drivers/clk/mediatek/clk-mt7622.c | 48 +-
drivers/clk/mediatek/clk-mt7629-eth.c | 8 +-
drivers/clk/mediatek/clk-mt7629-hif.c | 8 +-
drivers/clk/mediatek/clk-mt7629.c | 42 +-
drivers/clk/mediatek/clk-mt7986-apmixed.c | 22 +-
drivers/clk/mediatek/clk-mt7986-eth.c | 14 +-
drivers/clk/mediatek/clk-mt7986-infracfg.c | 4 +-
drivers/clk/mediatek/clk-mt7986-topckgen.c | 16 +-
drivers/clk/mediatek/clk-mt8135.c | 38 +-
drivers/clk/mediatek/clk-mt8167-aud.c | 4 +-
drivers/clk/mediatek/clk-mt8167-img.c | 4 +-
drivers/clk/mediatek/clk-mt8167-mfgcfg.c | 4 +-
drivers/clk/mediatek/clk-mt8167-mm.c | 4 +-
drivers/clk/mediatek/clk-mt8167-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt8167.c | 28 +-
drivers/clk/mediatek/clk-mt8173-mm.c | 4 +-
drivers/clk/mediatek/clk-mt8173.c | 97 +-
drivers/clk/mediatek/clk-mt8183-audio.c | 4 +-
drivers/clk/mediatek/clk-mt8183-cam.c | 4 +-
drivers/clk/mediatek/clk-mt8183-img.c | 4 +-
drivers/clk/mediatek/clk-mt8183-ipu0.c | 4 +-
drivers/clk/mediatek/clk-mt8183-ipu1.c | 4 +-
drivers/clk/mediatek/clk-mt8183-ipu_adl.c | 4 +-
drivers/clk/mediatek/clk-mt8183-ipu_conn.c | 4 +-
drivers/clk/mediatek/clk-mt8183-mfgcfg.c | 4 +-
drivers/clk/mediatek/clk-mt8183-mm.c | 4 +-
drivers/clk/mediatek/clk-mt8183-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt8183-venc.c | 4 +-
drivers/clk/mediatek/clk-mt8183.c | 47 +-
drivers/clk/mediatek/clk-mt8186-apmixedsys.c | 133 +
drivers/clk/mediatek/clk-mt8186-cam.c | 90 +
drivers/clk/mediatek/clk-mt8186-img.c | 68 +
drivers/clk/mediatek/clk-mt8186-imp_iic_wrap.c | 67 +
drivers/clk/mediatek/clk-mt8186-infra_ao.c | 216 +
drivers/clk/mediatek/clk-mt8186-ipe.c | 55 +
drivers/clk/mediatek/clk-mt8186-mcu.c | 108 +
drivers/clk/mediatek/clk-mt8186-mdp.c | 80 +
drivers/clk/mediatek/clk-mt8186-mfg.c | 48 +
drivers/clk/mediatek/clk-mt8186-mm.c | 111 +
drivers/clk/mediatek/clk-mt8186-topckgen.c | 780 +
drivers/clk/mediatek/clk-mt8186-vdec.c | 88 +
drivers/clk/mediatek/clk-mt8186-venc.c | 51 +
drivers/clk/mediatek/clk-mt8186-wpe.c | 51 +
drivers/clk/mediatek/clk-mt8192-aud.c | 4 +-
drivers/clk/mediatek/clk-mt8192-mm.c | 4 +-
drivers/clk/mediatek/clk-mt8192.c | 21 +-
drivers/clk/mediatek/clk-mt8195-apmixedsys.c | 6 +-
drivers/clk/mediatek/clk-mt8195-apusys_pll.c | 6 +-
drivers/clk/mediatek/clk-mt8195-topckgen.c | 6 +-
drivers/clk/mediatek/clk-mt8195-vdo0.c | 6 +-
drivers/clk/mediatek/clk-mt8195-vdo1.c | 6 +-
drivers/clk/mediatek/clk-mt8516-aud.c | 4 +-
drivers/clk/mediatek/clk-mt8516.c | 24 +-
drivers/clk/mediatek/clk-mtk.c | 173 +-
drivers/clk/mediatek/clk-mtk.h | 25 +-
drivers/clk/mediatek/clk-mux.c | 50 +-
drivers/clk/mediatek/clk-mux.h | 6 +-
drivers/clk/mediatek/clk-pll.c | 64 +-
drivers/clk/mediatek/clk-pll.h | 6 +-
drivers/clk/pxa/clk-pxa.c | 8 +-
drivers/clk/pxa/clk-pxa.h | 9 +-
drivers/clk/pxa/clk-pxa25x.c | 46 +-
drivers/clk/pxa/clk-pxa27x.c | 68 +-
drivers/clk/pxa/clk-pxa2xx.h | 58 +
drivers/clk/pxa/clk-pxa3xx.c | 139 +-
drivers/clk/qcom/Kconfig | 19 +
drivers/clk/qcom/Makefile | 2 +
drivers/clk/qcom/clk-rcg.h | 2 +
drivers/clk/qcom/clk-rcg2.c | 126 +-
drivers/clk/qcom/clk-smd-rpm.c | 8 +-
drivers/clk/qcom/gcc-msm8976.c | 7 +-
drivers/clk/qcom/gcc-msm8998.c | 56 +
drivers/clk/qcom/gcc-sc8280xp.c | 7488 +
drivers/clk/qcom/lpassaudiocc-sc7280.c | 838 +
drivers/clk/qcom/lpasscorecc-sc7280.c | 431 +
drivers/clk/renesas/Kconfig | 17 +-
drivers/clk/renesas/Makefile | 3 +
drivers/clk/renesas/r8a774a1-cpg-mssr.c | 9 +-
drivers/clk/renesas/r8a774b1-cpg-mssr.c | 9 +-
drivers/clk/renesas/r8a774c0-cpg-mssr.c | 8 +-
drivers/clk/renesas/r8a774e1-cpg-mssr.c | 9 +-
drivers/clk/renesas/r8a7795-cpg-mssr.c | 9 +-
drivers/clk/renesas/r8a7796-cpg-mssr.c | 9 +-
drivers/clk/renesas/r8a77965-cpg-mssr.c | 9 +-
drivers/clk/renesas/r8a77980-cpg-mssr.c | 10 +-
drivers/clk/renesas/r8a77990-cpg-mssr.c | 7 +
drivers/clk/renesas/r8a77995-cpg-mssr.c | 11 +-
drivers/clk/renesas/r8a779a0-cpg-mssr.c | 23 +-
drivers/clk/renesas/r8a779f0-cpg-mssr.c | 30 +-
drivers/clk/renesas/r8a779g0-cpg-mssr.c | 218 +
drivers/clk/renesas/r9a06g032-clocks.c | 42 +-
drivers/clk/renesas/r9a07g043-cpg.c | 320 +
drivers/clk/renesas/r9a07g044-cpg.c | 96 +-
drivers/clk/renesas/r9a09g011-cpg.c | 172 +
drivers/clk/renesas/rcar-gen3-cpg.h | 5 +-
drivers/clk/renesas/rcar-gen4-cpg.c | 5 +
drivers/clk/renesas/rcar-gen4-cpg.h | 3 +
drivers/clk/renesas/renesas-cpg-mssr.c | 6 +
drivers/clk/renesas/renesas-cpg-mssr.h | 1 +
drivers/clk/renesas/rzg2l-cpg.c | 464 +-
drivers/clk/renesas/rzg2l-cpg.h | 87 +-
drivers/clk/rockchip/clk-rk3568.c | 1 +
drivers/clk/samsung/Makefile | 1 +
drivers/clk/samsung/clk-exynosautov9.c | 1733 +
drivers/clk/stm32/Makefile | 1 +
drivers/clk/stm32/clk-stm32-core.c | 695 +
drivers/clk/stm32/clk-stm32-core.h | 188 +
drivers/clk/stm32/clk-stm32mp13.c | 1620 +
drivers/clk/stm32/reset-stm32.c | 122 +
drivers/clk/stm32/reset-stm32.h | 8 +
drivers/clk/stm32/stm32mp13_rcc.h | 1748 +
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c | 5 +
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.h | 2 +-
drivers/clk/sunxi-ng/ccu-sun50i-h616.c | 8 +
drivers/clk/sunxi-ng/ccu-sun50i-h616.h | 2 +-
drivers/clk/sunxi-ng/ccu-sun6i-rtc.c | 15 -
drivers/clk/tegra/clk-bpmp.c | 87 +-
drivers/clk/tegra/clk-dfll.c | 20 +-
drivers/clk/ti/clkctrl.c | 13 +-
drivers/clk/ti/composite.c | 2 +-
drivers/clk/ux500/clk-prcmu.c | 252 +-
drivers/clk/ux500/clk.h | 70 +-
drivers/clk/ux500/reset-prcc.c | 2 +-
drivers/clk/ux500/u8500_of_clk.c | 350 +-
drivers/clocksource/Kconfig | 37 +-
drivers/clocksource/Makefile | 5 +-
drivers/clocksource/bcm_kona_timer.c | 14 +-
drivers/clocksource/h8300_timer16.c | 192 -
drivers/clocksource/h8300_timer8.c | 211 -
drivers/clocksource/h8300_tpu.c | 158 -
drivers/clocksource/jcore-pit.c | 5 +-
drivers/clocksource/mips-gic-timer.c | 9 +-
drivers/clocksource/timer-armada-370-xp.c | 5 +-
drivers/clocksource/timer-digicolor.c | 5 +-
drivers/clocksource/timer-goldfish.c | 153 +
drivers/clocksource/timer-gxp.c | 209 +
drivers/clocksource/timer-ixp4xx.c | 25 -
drivers/clocksource/timer-lpc32xx.c | 6 +-
drivers/clocksource/timer-orion.c | 5 +-
drivers/clocksource/timer-oxnas-rps.c | 2 +-
drivers/clocksource/timer-pistachio.c | 5 +-
drivers/clocksource/timer-riscv.c | 2 +-
drivers/clocksource/timer-sp804.c | 10 +-
drivers/clocksource/timer-sun4i.c | 5 +-
drivers/clocksource/timer-sun5i.c | 5 +-
drivers/clocksource/timer-ti-dm.c | 5 +-
drivers/comedi/drivers.c | 2 +-
drivers/cpufreq/cppc_cpufreq.c | 217 +-
drivers/cpufreq/cpufreq.c | 112 +-
drivers/cpufreq/cpufreq_governor.c | 20 +-
drivers/cpufreq/cpufreq_governor.h | 1 +
drivers/cpufreq/intel_pstate.c | 2 +
drivers/cpufreq/mediatek-cpufreq-hw.c | 4 +-
drivers/cpufreq/mediatek-cpufreq.c | 636 +-
drivers/cpufreq/pasemi-cpufreq.c | 1 -
drivers/cpufreq/pmac32-cpufreq.c | 2 +-
drivers/cpufreq/pmac64-cpufreq.c | 2 +-
drivers/cpufreq/ppc_cbe_cpufreq.c | 1 -
drivers/cpufreq/ppc_cbe_cpufreq_pmi.c | 2 +-
drivers/cpufreq/pxa2xx-cpufreq.c | 6 +-
drivers/cpufreq/pxa3xx-cpufreq.c | 65 +-
drivers/cpufreq/scmi-cpufreq.c | 4 +-
drivers/cpufreq/tegra194-cpufreq.c | 246 +-
drivers/cpuidle/cpuidle-psci-domain.c | 4 +-
drivers/cpuidle/cpuidle-psci.c | 46 +
drivers/cpuidle/cpuidle-riscv-sbi.c | 4 +-
drivers/crypto/Kconfig | 4 +-
drivers/crypto/Makefile | 1 +
.../crypto/allwinner/sun4i-ss/sun4i-ss-cipher.c | 22 +-
drivers/crypto/allwinner/sun4i-ss/sun4i-ss.h | 1 +
.../crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c | 102 +-
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c | 54 +-
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c | 130 +-
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-prng.c | 6 +-
drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h | 19 +-
.../crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c | 180 +-
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c | 92 +-
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c | 385 +-
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-prng.c | 6 +-
drivers/crypto/allwinner/sun8i-ss/sun8i-ss.h | 33 +-
drivers/crypto/atmel-ecc.c | 2 +-
drivers/crypto/atmel-i2c.c | 30 +-
drivers/crypto/atmel-i2c.h | 1 +
drivers/crypto/atmel-sha204a.c | 11 +-
drivers/crypto/caam/Kconfig | 11 +
drivers/crypto/caam/Makefile | 2 +
drivers/crypto/caam/blob_gen.c | 182 +
drivers/crypto/caam/caamprng.c | 235 +
drivers/crypto/caam/ctrl.c | 35 +-
drivers/crypto/caam/intern.h | 16 +
drivers/crypto/caam/jr.c | 3 +-
drivers/crypto/caam/regs.h | 4 +-
drivers/crypto/cavium/nitrox/nitrox_main.c | 10 +-
drivers/crypto/ccp/psp-dev.c | 49 +-
drivers/crypto/ccp/psp-dev.h | 22 +
drivers/crypto/ccp/sev-dev.c | 32 +-
drivers/crypto/ccp/sp-pci.c | 62 +
drivers/crypto/ccree/cc_buffer_mgr.c | 27 +-
drivers/crypto/ccree/cc_driver.c | 24 +-
drivers/crypto/hisilicon/Kconfig | 1 +
drivers/crypto/hisilicon/hpre/hpre_main.c | 222 +-
drivers/crypto/hisilicon/qm.c | 282 +-
drivers/crypto/hisilicon/sec2/sec_crypto.c | 2 -
drivers/crypto/hisilicon/sec2/sec_main.c | 108 +-
drivers/crypto/hisilicon/sgl.c | 6 +-
drivers/crypto/hisilicon/zip/zip_crypto.c | 2 +-
drivers/crypto/hisilicon/zip/zip_main.c | 185 +-
drivers/crypto/inside-secure/safexcel.c | 9 +
drivers/crypto/keembay/keembay-ocs-aes-core.c | 9 +-
drivers/crypto/marvell/cesa/cipher.c | 1 -
drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.c | 7 +-
drivers/crypto/nx/nx-common-powernv.c | 2 +-
drivers/crypto/qat/qat_4xxx/adf_drv.c | 8 +-
drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c | 15 +-
drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.h | 4 -
drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c | 15 +-
drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.h | 4 -
drivers/crypto/qat/qat_common/Makefile | 1 +
drivers/crypto/qat/qat_common/adf_accel_devices.h | 6 +-
drivers/crypto/qat/qat_common/adf_common_drv.h | 18 +-
drivers/crypto/qat/qat_common/adf_gen2_hw_data.c | 13 +
drivers/crypto/qat/qat_common/adf_gen2_hw_data.h | 6 +
drivers/crypto/qat/qat_common/adf_gen2_pfvf.c | 78 +-
drivers/crypto/qat/qat_common/adf_gen4_pfvf.c | 61 +-
drivers/crypto/qat/qat_common/adf_isr.c | 21 +-
drivers/crypto/qat/qat_common/adf_pfvf_msg.h | 4 +-
drivers/crypto/qat/qat_common/adf_pfvf_pf_proto.c | 6 +-
drivers/crypto/qat/qat_common/adf_sriov.c | 16 +-
drivers/crypto/qat/qat_common/adf_transport.c | 11 +
drivers/crypto/qat/qat_common/adf_transport.h | 1 +
.../crypto/qat/qat_common/adf_transport_internal.h | 1 +
drivers/crypto/qat/qat_common/adf_vf_isr.c | 1 +
drivers/crypto/qat/qat_common/qat_algs.c | 153 +-
drivers/crypto/qat/qat_common/qat_algs_send.c | 86 +
drivers/crypto/qat/qat_common/qat_algs_send.h | 11 +
drivers/crypto/qat/qat_common/qat_asym_algs.c | 307 +-
drivers/crypto/qat/qat_common/qat_crypto.c | 10 +-
drivers/crypto/qat/qat_common/qat_crypto.h | 44 +
drivers/crypto/qat/qat_common/qat_hal.c | 1 +
drivers/crypto/qat/qat_common/qat_uclo.c | 3 +-
.../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 126 +-
.../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.h | 4 -
drivers/crypto/qcom-rng.c | 1 +
drivers/crypto/sa2ul.c | 1 +
drivers/crypto/talitos.c | 10 +-
drivers/crypto/ux500/hash/hash_core.c | 4 +-
.../crypto/virtio/virtio_crypto_akcipher_algs.c | 95 +-
drivers/crypto/virtio/virtio_crypto_common.h | 21 +-
drivers/crypto/virtio/virtio_crypto_core.c | 55 +-
.../crypto/virtio/virtio_crypto_skcipher_algs.c | 140 +-
drivers/crypto/vmx/Makefile | 17 +-
drivers/cxl/Kconfig | 4 +
drivers/cxl/Makefile | 2 +-
drivers/cxl/acpi.c | 13 +
drivers/cxl/core/Makefile | 1 +
drivers/cxl/core/mbox.c | 334 +-
drivers/cxl/core/memdev.c | 3 +
drivers/cxl/core/pci.c | 364 +
drivers/cxl/core/pmem.c | 10 +-
drivers/cxl/core/port.c | 68 +-
drivers/cxl/core/suspend.c | 24 +
drivers/cxl/cxl.h | 78 -
drivers/cxl/cxlmem.h | 75 +-
drivers/cxl/cxlpci.h | 2 +
drivers/cxl/mem.c | 148 +-
drivers/cxl/pci.c | 175 +-
drivers/cxl/pmem.c | 13 +-
drivers/cxl/port.c | 28 +-
drivers/dax/super.c | 14 +-
drivers/devfreq/devfreq.c | 20 +-
drivers/devfreq/governor.h | 27 +
drivers/devfreq/governor_passive.c | 403 +-
drivers/devfreq/rk3399_dmc.c | 312 +-
drivers/dio/dio.c | 5 +-
drivers/dma-buf/dma-buf.c | 16 +-
drivers/dma/Kconfig | 14 +-
drivers/dma/Makefile | 1 +
drivers/dma/amba-pl08x.c | 11 -
drivers/dma/at_hdmac.c | 10 +-
drivers/dma/at_xdmac.c | 9 +-
drivers/dma/bestcomm/bestcomm.c | 2 +
drivers/dma/dma-jz4780.c | 9 +
drivers/dma/dmaengine.c | 7 -
drivers/dma/dmatest.c | 13 +-
drivers/dma/dw/Kconfig | 9 +
drivers/dma/dw/Makefile | 2 +
drivers/dma/dw/platform.c | 1 +
drivers/dma/dw/rzn1-dmamux.c | 155 +
drivers/dma/ep93xx_dma.c | 2 +-
drivers/dma/idxd/cdev.c | 18 +-
drivers/dma/idxd/device.c | 151 +-
drivers/dma/idxd/dma.c | 65 +-
drivers/dma/idxd/idxd.h | 20 +-
drivers/dma/idxd/init.c | 30 +-
drivers/dma/idxd/registers.h | 1 +
drivers/dma/idxd/sysfs.c | 12 +-
drivers/dma/imx-dma.c | 2 +-
drivers/dma/imx-sdma.c | 76 +-
drivers/dma/mediatek/mtk-cqdma.c | 12 +-
drivers/dma/mediatek/mtk-hsdma.c | 13 +-
drivers/dma/mmp_pdma.c | 14 +-
drivers/dma/mv_xor_v2.c | 4 +-
drivers/dma/nbpfaxi.c | 14 +-
drivers/dma/plx_dma.c | 4 +-
drivers/dma/ptdma/ptdma-dev.c | 36 +-
drivers/dma/ptdma/ptdma-dmaengine.c | 16 +-
drivers/dma/ptdma/ptdma.h | 13 +
drivers/dma/pxa_dma.c | 13 +-
drivers/dma/qcom/gpi.c | 21 +-
drivers/dma/qcom/hidma.c | 13 +-
drivers/dma/sf-pdma/sf-pdma.c | 24 +-
drivers/dma/sf-pdma/sf-pdma.h | 8 +-
drivers/dma/sh/Kconfig | 2 +-
drivers/dma/sprd-dma.c | 6 +-
drivers/dma/stm32-dma.c | 311 +-
drivers/dma/stm32-dmamux.c | 2 +-
drivers/dma/stm32-mdma.c | 53 +-
drivers/dma/sun6i-dma.c | 92 +-
drivers/dma/tegra186-gpc-dma.c | 1498 +
drivers/dma/ti/cppi41.c | 6 +-
drivers/dma/ti/k3-psil-am62.c | 8 +-
drivers/dma/ti/omap-dma.c | 19 +-
drivers/dma/xilinx/zynqmp_dma.c | 17 +-
drivers/edac/Kconfig | 3 +-
drivers/edac/amd64_edac.c | 2 +-
drivers/edac/armada_xp_edac.c | 18 +-
drivers/edac/dmc520_edac.c | 2 +-
drivers/edac/edac_device.c | 130 +-
drivers/edac/edac_device.h | 14 +
drivers/edac/edac_device_sysfs.c | 5 +-
drivers/edac/edac_mc.c | 96 +-
drivers/edac/edac_module.h | 2 -
drivers/edac/edac_pci.c | 25 +-
drivers/edac/ghes_edac.c | 202 +-
drivers/edac/i5100_edac.c | 5 -
drivers/edac/mpc85xx_edac.c | 14 -
drivers/edac/synopsys_edac.c | 15 +-
drivers/edac/xgene_edac.c | 2 +-
drivers/extcon/Kconfig | 3 +-
drivers/extcon/extcon-axp288.c | 4 +-
drivers/extcon/extcon-intel-int3496.c | 54 +-
drivers/extcon/extcon-ptn5150.c | 36 +
drivers/extcon/extcon-sm5502.c | 2 +
drivers/extcon/extcon-usb-gpio.c | 15 -
drivers/extcon/extcon-usbc-cros-ec.c | 2 +-
drivers/extcon/extcon.c | 37 +-
drivers/firewire/core-card.c | 42 +
drivers/firewire/core-cdev.c | 10 +-
drivers/firewire/core-topology.c | 9 +-
drivers/firewire/core-transaction.c | 48 +-
drivers/firewire/sbp2.c | 13 +-
drivers/firmware/Kconfig | 9 +
drivers/firmware/Makefile | 4 +-
drivers/firmware/arm_ffa/driver.c | 24 +-
drivers/firmware/arm_scmi/Kconfig | 1 +
drivers/firmware/arm_scmi/base.c | 46 +-
drivers/firmware/arm_scmi/clock.c | 343 +-
drivers/firmware/arm_scmi/common.h | 225 +-
drivers/firmware/arm_scmi/driver.c | 168 +-
drivers/firmware/arm_scmi/optee.c | 144 +-
drivers/firmware/arm_scmi/perf.c | 162 +-
drivers/firmware/arm_scmi/power.c | 44 +-
drivers/firmware/arm_scmi/protocols.h | 318 +
drivers/firmware/arm_scmi/reset.c | 40 +-
drivers/firmware/arm_scmi/sensors.c | 645 +-
drivers/firmware/arm_scmi/system.c | 9 +-
drivers/firmware/arm_scmi/voltage.c | 218 +-
drivers/firmware/broadcom/tee_bnxt_fw.c | 2 +-
drivers/firmware/dmi-sysfs.c | 2 +-
drivers/firmware/edd.c | 3 +-
drivers/firmware/efi/Kconfig | 87 +-
drivers/firmware/efi/cper.c | 64 +-
drivers/firmware/efi/efi.c | 13 +-
drivers/firmware/efi/libstub/arm32-stub.c | 3 +-
drivers/firmware/efi/libstub/arm64-stub.c | 15 +-
drivers/firmware/efi/libstub/efi-stub.c | 2 +-
drivers/firmware/efi/libstub/efistub.h | 84 +-
drivers/firmware/efi/libstub/randomalloc.c | 11 +
drivers/firmware/efi/libstub/riscv-stub.c | 32 +-
drivers/firmware/efi/libstub/x86-stub.c | 119 +-
drivers/firmware/mtk-adsp-ipc.c | 157 +
drivers/firmware/qcom_scm.c | 4 +
drivers/firmware/smccc/kvm_guest.c | 1 +
drivers/firmware/stratix10-svc.c | 12 +-
drivers/firmware/ti_sci.c | 61 +-
drivers/firmware/xilinx/zynqmp.c | 131 +-
drivers/fpga/Makefile | 6 +-
drivers/fpga/dfl-pci.c | 9 +
drivers/fpga/dfl.c | 38 +-
drivers/fpga/dfl.h | 1 +
drivers/fpga/fpga-mgr.c | 13 +-
drivers/fpga/fpga-region.c | 6 +-
drivers/fpga/of-fpga-region.c | 22 +-
drivers/gpio/Kconfig | 7 +-
drivers/gpio/TODO | 19 +
drivers/gpio/gpio-104-dio-48e.c | 63 +-
drivers/gpio/gpio-104-idi-48.c | 27 +-
drivers/gpio/gpio-104-idio-16.c | 33 +-
drivers/gpio/gpio-adp5588.c | 19 -
drivers/gpio/gpio-amdpt.c | 10 +-
drivers/gpio/gpio-brcmstb.c | 12 +-
drivers/gpio/gpio-cadence.c | 12 +-
drivers/gpio/gpio-crystalcove.c | 70 +-
drivers/gpio/gpio-dln2.c | 23 +-
drivers/gpio/gpio-dwapb.c | 81 +-
drivers/gpio/gpio-ftgpio010.c | 8 +-
drivers/gpio/gpio-gpio-mm.c | 43 +-
drivers/gpio/gpio-grgpio.c | 30 +-
drivers/gpio/gpio-hlwd.c | 18 +-
drivers/gpio/gpio-idt3243x.c | 12 +-
drivers/gpio/gpio-ixp4xx.c | 49 +-
drivers/gpio/gpio-loongson1.c | 8 +-
drivers/gpio/gpio-max732x.c | 37 +-
drivers/gpio/gpio-max77620.c | 9 +-
drivers/gpio/gpio-menz127.c | 8 +-
drivers/gpio/gpio-merrifield.c | 22 +-
drivers/gpio/gpio-ml-ioh.c | 76 +-
drivers/gpio/gpio-mlxbf2.c | 18 +-
drivers/gpio/gpio-mmio.c | 22 +-
drivers/gpio/gpio-mvebu.c | 10 +-
drivers/gpio/gpio-pca953x.c | 60 +-
drivers/gpio/gpio-pcf857x.c | 49 +-
drivers/gpio/gpio-pl061.c | 32 +-
drivers/gpio/gpio-rcar.c | 38 +-
drivers/gpio/gpio-realtek-otto.c | 137 +-
drivers/gpio/gpio-rockchip.c | 29 +-
drivers/gpio/gpio-sch.c | 35 +-
drivers/gpio/gpio-sifive.c | 26 +-
drivers/gpio/gpio-sim.c | 4 +-
drivers/gpio/gpio-syscon.c | 49 +-
drivers/gpio/gpio-tb10x.c | 4 +-
drivers/gpio/gpio-tegra186.c | 113 +-
drivers/gpio/gpio-vf610.c | 8 +-
drivers/gpio/gpio-visconti.c | 7 +-
drivers/gpio/gpio-wcove.c | 10 +-
drivers/gpio/gpio-ws16c48.c | 65 +-
drivers/gpio/gpio-zevio.c | 25 +-
drivers/gpio/gpiolib-cdev.c | 318 +-
drivers/gpio/gpiolib-of.c | 10 +-
drivers/gpio/gpiolib-sysfs.c | 3 +-
drivers/gpio/gpiolib.c | 146 +-
drivers/gpio/gpiolib.h | 12 +-
drivers/gpu/Makefile | 3 +-
drivers/gpu/drm/amd/amdgpu/Makefile | 35 +-
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 44 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 14 +
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 15 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.c | 625 +
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 47 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 385 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 13 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 25 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 228 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.h | 23 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 80 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 424 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h | 4 -
drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell.h | 13 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 48 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 68 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 9 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 56 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 47 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 29 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 7 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_imu.h | 51 +
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 15 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c | 18 +
drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.h | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 22 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_lsdma.c | 91 +
drivers/gpu/drm/amd/amdgpu/amdgpu_lsdma.h | 46 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 1227 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 252 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mes_ctx.h | 121 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 5 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 634 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 30 +
drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c | 62 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.h | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 206 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 193 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 22 +
drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.h | 45 +
drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c | 28 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 259 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 74 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 45 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 29 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 15 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c | 6 +-
drivers/gpu/drm/amd/amdgpu/athub_v3_0.c | 98 +
drivers/gpu/drm/amd/amdgpu/athub_v3_0.h | 30 +
drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 12 +-
drivers/gpu/drm/amd/amdgpu/clearstate_gfx11.h | 988 +
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 493 +-
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 6442 +
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.h | 29 +
drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c | 62 +-
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 80 +-
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 50 +-
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 72 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c | 2 +
drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 2 +
drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c | 511 +
drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.h | 29 +
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 27 +-
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c | 982 +
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.h | 30 +
drivers/gpu/drm/amd/amdgpu/hdp_v5_2.c | 45 +
drivers/gpu/drm/amd/amdgpu/hdp_v5_2.h | 31 +
drivers/gpu/drm/amd/amdgpu/hdp_v6_0.c | 142 +
drivers/gpu/drm/amd/amdgpu/hdp_v6_0.h | 31 +
drivers/gpu/drm/amd/amdgpu/iceland_ih.c | 7 +-
drivers/gpu/drm/amd/amdgpu/ih_v6_0.c | 745 +
drivers/gpu/drm/amd/amdgpu/ih_v6_0.h | 28 +
drivers/gpu/drm/amd/amdgpu/imu_v11_0.c | 367 +
drivers/gpu/drm/amd/amdgpu/imu_v11_0.h | 30 +
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c | 10 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.h | 1 +
drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c | 20 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c | 609 +
drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.h | 29 +
drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c | 121 +
drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.h | 31 +
drivers/gpu/drm/amd/amdgpu/mes_v10_1.c | 630 +-
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c | 1186 +
drivers/gpu/drm/amd/amdgpu/mes_v11_0.h | 29 +
drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c | 2 +
drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c | 2 +
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.c | 661 +
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.h | 28 +
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.c | 571 +
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.h | 28 +
drivers/gpu/drm/amd/amdgpu/navi10_ih.c | 7 +-
drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c | 368 +
drivers/gpu/drm/amd/amdgpu/nbio_v4_3.h | 32 +
drivers/gpu/drm/amd/amdgpu/nbio_v7_7.c | 240 +
drivers/gpu/drm/amd/amdgpu/nbio_v7_7.h | 33 +
drivers/gpu/drm/amd/amdgpu/nv.c | 14 +-
drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h | 30 +
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 129 +-
drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 12 +-
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 24 +-
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 32 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 177 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 179 +-
drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c | 1689 +
drivers/gpu/drm/amd/amdgpu/sdma_v6_0.h | 30 +
drivers/gpu/drm/amd/amdgpu/sdma_v6_0_0_pkt_open.h | 5664 +
drivers/gpu/drm/amd/amdgpu/si_dma.c | 9 +-
drivers/gpu/drm/amd/amdgpu/smuio_v13_0_6.c | 41 +
drivers/gpu/drm/amd/amdgpu/smuio_v13_0_6.h | 30 +
drivers/gpu/drm/amd/amdgpu/soc15.c | 13 -
drivers/gpu/drm/amd/amdgpu/soc15_common.h | 8 +
drivers/gpu/drm/amd/amdgpu/soc21.c | 722 +
drivers/gpu/drm/amd/amdgpu/soc21.h | 30 +
drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/vcn_sw_ring.c | 86 +
drivers/gpu/drm/amd/amdgpu/vcn_sw_ring.h | 44 +
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 15 +-
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 24 +-
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 113 +-
drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 1874 +
drivers/gpu/drm/amd/amdgpu/vcn_v4_0.h | 29 +
drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 7 +-
drivers/gpu/drm/amd/amdgpu/vi.c | 17 +-
drivers/gpu/drm/amd/amdkfd/Makefile | 3 +
drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h | 2974 +-
.../gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx10.asm | 394 +-
.../gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx9.asm | 244 +-
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 7 +-
drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 86 +-
drivers/gpu/drm/amd/amdkfd/kfd_device.c | 92 +-
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 300 +-
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 5 +
.../drm/amd/amdkfd/kfd_device_queue_manager_v11.c | 81 +
drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c | 56 +-
drivers/gpu/drm/amd/amdkfd/kfd_events.c | 22 +-
drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c | 384 +
drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c | 41 +-
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 21 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c | 10 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c | 508 +
drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 16 +-
drivers/gpu/drm/amd/amdkfd/kfd_process.c | 29 +-
.../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 21 +
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 73 +-
drivers/gpu/drm/amd/amdkfd/kfd_svm.h | 1 +
drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 42 +-
drivers/gpu/drm/amd/amdkfd/soc15_int.h | 3 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 75 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 6 -
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 6 -
.../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 2 -
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 6 +-
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 2 -
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.h | 3 -
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c | 4 -
.../drm/amd/display/amdgpu_dm/amdgpu_dm_trace.h | 1 +
drivers/gpu/drm/amd/display/dc/Makefile | 2 -
.../amd/display/dc/bios/command_table_helper2.c | 3 +-
.../drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 2 +-
.../drm/amd/display/dc/clk_mgr/dcn301/dcn301_smu.c | 2 +
.../amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c | 13 +-
.../amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.h | 2 +
.../amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c | 124 +-
.../amd/display/dc/clk_mgr/dcn316/dcn316_clk_mgr.c | 6 +-
drivers/gpu/drm/amd/display/dc/core/dc.c | 56 +-
drivers/gpu/drm/amd/display/dc/core/dc_debug.c | 2 -
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 46 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 6 -
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 188 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_dpia.c | 21 +-
drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 31 +-
drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 12 -
drivers/gpu/drm/amd/display/dc/core/dc_surface.c | 2 +
drivers/gpu/drm/amd/display/dc/dc.h | 66 +-
drivers/gpu/drm/amd/display/dc/dc_hw_types.h | 19 +-
drivers/gpu/drm/amd/display/dc/dc_stream.h | 2 +-
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c | 3 +-
.../gpu/drm/amd/display/dc/dce/dce_clock_source.c | 24 +-
.../gpu/drm/amd/display/dc/dce/dce_clock_source.h | 12 +-
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c | 10 -
.../drm/amd/display/dc/dce/dce_stream_encoder.c | 21 +-
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c | 2 +-
.../amd/display/dc/dce110/dce110_hw_sequencer.c | 2 -
.../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 27 +-
.../amd/display/dc/dcn10/dcn10_stream_encoder.c | 1 +
.../amd/display/dc/dcn10/dcn10_stream_encoder.h | 8 +
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dsc.c | 11 +
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 18 +-
.../gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.c | 2 -
.../display/dc/dcn30/dcn30_dio_stream_encoder.h | 4 +
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.h | 5 -
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_optc.c | 10 +
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_optc.h | 2 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_resource.c | 516 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_resource.h | 5 +
.../drm/amd/display/dc/dcn301/dcn301_resource.c | 2 +
.../drm/amd/display/dc/dcn302/dcn302_resource.c | 2 +
.../drm/amd/display/dc/dcn303/dcn303_resource.c | 2 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.c | 68 +-
.../amd/display/dc/dcn31/dcn31_dio_link_encoder.c | 4 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 42 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.h | 9 +
.../drm/amd/display/dc/dcn315/dcn315_resource.c | 4 +-
.../drm/amd/display/dc/dcn316/dcn316_resource.c | 4 +-
drivers/gpu/drm/amd/display/dc/dm_helpers.h | 2 -
drivers/gpu/drm/amd/display/dc/dml/Makefile | 3 +-
.../gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.c | 617 +
.../gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.h | 67 +
.../gpu/drm/amd/display/dc/dml/dcn31/dcn31_fpu.c | 145 +-
drivers/gpu/drm/amd/display/dc/dml/dml_wrapper.c | 2 -
drivers/gpu/drm/amd/display/dc/gpio/Makefile | 3 +-
.../amd/display/dc/gpio/dcn30/hw_factory_dcn30.c | 2 -
.../amd/display/dc/gpio/dcn30/hw_factory_dcn30.h | 2 -
.../amd/display/dc/gpio/dcn30/hw_translate_dcn30.c | 2 -
.../amd/display/dc/gpio/dcn30/hw_translate_dcn30.h | 2 -
drivers/gpu/drm/amd/display/dc/gpio/hw_factory.c | 4 -
drivers/gpu/drm/amd/display/dc/gpio/hw_translate.c | 4 -
drivers/gpu/drm/amd/display/dc/inc/core_types.h | 24 +-
drivers/gpu/drm/amd/display/dc/inc/dc_link_dp.h | 4 +-
drivers/gpu/drm/amd/display/dc/inc/dc_link_dpia.h | 5 +
drivers/gpu/drm/amd/display/dc/inc/hw/clk_mgr.h | 2 +
drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h | 18 +-
drivers/gpu/drm/amd/display/dc/inc/hw/dsc.h | 1 +
drivers/gpu/drm/amd/display/dc/irq/Makefile | 3 +-
.../amd/display/dc/irq/dcn30/irq_service_dcn30.c | 3 -
.../amd/display/dc/irq/dcn30/irq_service_dcn30.h | 3 -
drivers/gpu/drm/amd/display/dc/irq/irq_service.c | 5 -
.../gpu/drm/amd/display/dc/link/link_hwss_hpo_dp.c | 19 +-
drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 1 +
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 36 +-
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.c | 12 +-
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.h | 3 +-
.../drm/amd/display/include/ddc_service_types.h | 4 +
drivers/gpu/drm/amd/include/amd_shared.h | 5 +
.../include/asic_reg/athub/athub_3_0_0_offset.h | 259 +
.../include/asic_reg/athub/athub_3_0_0_sh_mask.h | 1246 +
.../amd/include/asic_reg/dce/dce_10_0_sh_mask.h | 2 +
.../amd/include/asic_reg/dce/dce_11_0_sh_mask.h | 2 +
.../amd/include/asic_reg/dce/dce_11_2_sh_mask.h | 2 +
.../amd/include/asic_reg/dce/dce_12_0_sh_mask.h | 2 +
.../drm/amd/include/asic_reg/dce/dce_8_0_sh_mask.h | 2 +
.../drm/amd/include/asic_reg/dcn/dcn_1_0_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_2_0_0_sh_mask.h | 2 +
.../amd/include/asic_reg/dcn/dcn_2_0_3_sh_mask.h | 4 +-
.../amd/include/asic_reg/dcn/dcn_2_1_0_sh_mask.h | 2 +
.../amd/include/asic_reg/gc/gc_11_0_0_default.h | 6114 +
.../drm/amd/include/asic_reg/gc/gc_11_0_0_offset.h | 11670 ++
.../amd/include/asic_reg/gc/gc_11_0_0_sh_mask.h | 41635 +++++
.../amd/include/asic_reg/hdp/hdp_5_2_1_offset.h | 217 +
.../amd/include/asic_reg/hdp/hdp_5_2_1_sh_mask.h | 684 +
.../amd/include/asic_reg/hdp/hdp_6_0_0_offset.h | 209 +
.../amd/include/asic_reg/hdp/hdp_6_0_0_sh_mask.h | 646 +
.../include/asic_reg/lsdma/lsdma_6_0_0_offset.h | 391 +
.../include/asic_reg/lsdma/lsdma_6_0_0_sh_mask.h | 1439 +
.../include/asic_reg/mmhub/mmhub_3_0_0_offset.h | 1529 +
.../include/asic_reg/mmhub/mmhub_3_0_0_sh_mask.h | 7478 +
.../include/asic_reg/mmhub/mmhub_3_0_2_offset.h | 1425 +
.../include/asic_reg/mmhub/mmhub_3_0_2_sh_mask.h | 7228 +
.../drm/amd/include/asic_reg/mp/mp_13_0_0_offset.h | 461 +
.../amd/include/asic_reg/mp/mp_13_0_0_sh_mask.h | 682 +
.../drm/amd/include/asic_reg/mp/mp_13_0_2_offset.h | 48 +
.../amd/include/asic_reg/mp/mp_13_0_2_sh_mask.h | 72 +
.../amd/include/asic_reg/nbio/nbio_4_3_0_offset.h | 17379 ++
.../amd/include/asic_reg/nbio/nbio_4_3_0_sh_mask.h | 82049 ++++++++++
.../amd/include/asic_reg/nbio/nbio_7_7_0_offset.h | 29654 ++++
.../amd/include/asic_reg/nbio/nbio_7_7_0_sh_mask.h | 154403 ++++++++++++++++++
.../amd/include/asic_reg/oss/osssys_6_0_0_offset.h | 263 +
.../include/asic_reg/oss/osssys_6_0_0_sh_mask.h | 969 +
.../include/asic_reg/smuio/smuio_13_0_6_offset.h | 517 +
.../include/asic_reg/smuio/smuio_13_0_6_sh_mask.h | 1178 +
.../amd/include/asic_reg/vcn/vcn_4_0_0_offset.h | 1610 +
.../amd/include/asic_reg/vcn/vcn_4_0_0_sh_mask.h | 8055 +
drivers/gpu/drm/amd/include/atombios.h | 2 +-
drivers/gpu/drm/amd/include/atomfirmware.h | 204 +-
drivers/gpu/drm/amd/include/discovery.h | 114 +-
.../amd/include/ivsrcid/gfx/irqsrcs_gfx_11_0_0.h | 77 +
.../drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_2_0.h | 4 +
.../drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_4_0.h | 41 +
drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 1 +
drivers/gpu/drm/amd/include/kgd_pp_interface.h | 1 +
.../gpu/drm/amd/{amdgpu => include}/mes_api_def.h | 167 +-
drivers/gpu/drm/amd/include/mes_v11_api_def.h | 579 +
drivers/gpu/drm/amd/include/soc15_hw_ip.h | 1 +
drivers/gpu/drm/amd/include/soc15_ih_clientid.h | 27 +
drivers/gpu/drm/amd/include/soc21_enum.h | 22477 +++
drivers/gpu/drm/amd/include/v11_structs.h | 1189 +
drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 3 +
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 154 +-
drivers/gpu/drm/amd/pm/inc/smu_v13_0_0_pptable.h | 203 +
drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c | 14 +-
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 137 +-
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 18 +-
.../inc/pmfw_if/smu11_driver_if_sienna_cichlid.h | 63 +
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_0.h | 1542 +
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_4.h | 267 +
.../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h | 1562 +
.../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_0_ppsmc.h | 141 +
.../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_4_pmfw.h | 137 +
.../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_4_ppsmc.h | 138 +
.../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_7_ppsmc.h | 134 +
drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h | 28 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v11_0_7_pptable.h | 9 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v11_0_pptable.h | 9 +-
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h | 58 +-
.../gpu/drm/amd/pm/swsmu/inc/smu_v13_0_7_pptable.h | 203 +
.../gpu/drm/amd/pm/swsmu/inc/smu_v13_0_pptable.h | 10 +-
.../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 237 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 2 +-
drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c | 60 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/Makefile | 3 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 1 +
drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.h | 8 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 722 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 1652 +
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.h | 28 +
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c | 1042 +
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.h | 28 +
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 1597 +
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.h | 28 +
.../gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c | 65 +-
drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c | 24 +-
drivers/gpu/drm/amd/pm/swsmu/smu_cmn.h | 2 +
drivers/gpu/drm/amd/pm/swsmu/smu_internal.h | 1 +
drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c | 1 +
drivers/gpu/drm/arm/display/komeda/komeda_kms.h | 1 +
drivers/gpu/drm/arm/display/komeda/komeda_plane.c | 1 +
.../drm/arm/display/komeda/komeda_wb_connector.c | 5 +-
drivers/gpu/drm/arm/hdlcd_crtc.c | 1 +
drivers/gpu/drm/arm/malidp_crtc.c | 1 +
drivers/gpu/drm/arm/malidp_mw.c | 6 +-
drivers/gpu/drm/arm/malidp_planes.c | 2 +
drivers/gpu/drm/armada/armada_fb.h | 2 +
drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c | 1 +
drivers/gpu/drm/aspeed/aspeed_gfx_out.c | 1 +
drivers/gpu/drm/ast/ast_mode.c | 1 +
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 2 +
drivers/gpu/drm/bridge/Kconfig | 3 +
drivers/gpu/drm/bridge/Makefile | 1 +
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 43 +-
drivers/gpu/drm/bridge/analogix/anx7625.c | 8 +-
.../gpu/drm/bridge/cadence/cdns-mhdp8546-core.c | 1 +
drivers/gpu/drm/bridge/imx/Kconfig | 43 +
drivers/gpu/drm/bridge/imx/Makefile | 9 +
drivers/gpu/drm/bridge/imx/imx-ldb-helper.c | 220 +
drivers/gpu/drm/bridge/imx/imx-ldb-helper.h | 96 +
drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c | 587 +
drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c | 722 +
.../gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c | 448 +
drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c | 429 +
drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c | 487 +
drivers/gpu/drm/bridge/lontium-lt8912b.c | 1 +
drivers/gpu/drm/bridge/panel.c | 34 +
drivers/gpu/drm/bridge/parade-ps8640.c | 40 +-
drivers/gpu/drm/bridge/simple-bridge.c | 1 +
drivers/gpu/drm/bridge/tc358775.c | 3 +-
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 8 +-
drivers/gpu/drm/bridge/ti-tfp410.c | 1 +
drivers/gpu/drm/display/drm_dp_helper.c | 3 +-
drivers/gpu/drm/display/drm_dp_mst_topology.c | 27 +-
drivers/gpu/drm/drm_aperture.c | 26 +-
drivers/gpu/drm/drm_atomic.c | 2 +
drivers/gpu/drm/drm_atomic_helper.c | 18 +-
drivers/gpu/drm/drm_atomic_state_helper.c | 2 +
drivers/gpu/drm/drm_atomic_uapi.c | 1 +
drivers/gpu/drm/drm_bridge_connector.c | 8 +-
drivers/gpu/drm/drm_client_modeset.c | 1 +
drivers/gpu/drm/drm_connector.c | 31 +
drivers/gpu/drm/drm_crtc.c | 2 +
drivers/gpu/drm/drm_crtc_helper.c | 1 +
drivers/gpu/drm/drm_damage_helper.c | 1 +
drivers/gpu/drm/drm_fb_helper.c | 1 +
drivers/gpu/drm/drm_gem_atomic_helper.c | 1 +
drivers/gpu/drm/drm_ioctl.c | 2 +-
drivers/gpu/drm/drm_kms_helper_common.c | 1 +
drivers/gpu/drm/drm_mipi_dbi.c | 1 +
drivers/gpu/drm/drm_mode_config.c | 1 +
drivers/gpu/drm/drm_modes.c | 1 +
drivers/gpu/drm/drm_modeset_helper.c | 1 +
drivers/gpu/drm/drm_panel_orientation_quirks.c | 2 +-
drivers/gpu/drm/drm_prime.c | 2 +-
drivers/gpu/drm/drm_vm.c | 2 +-
drivers/gpu/drm/drm_writeback.c | 74 +-
drivers/gpu/drm/etnaviv/etnaviv_gem.c | 11 +-
drivers/gpu/drm/etnaviv/etnaviv_mmu.c | 54 +-
drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 2 +
drivers/gpu/drm/exynos/exynos7_drm_decon.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_fb.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +
drivers/gpu/drm/exynos/exynos_drm_ipp.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_plane.c | 2 +
drivers/gpu/drm/exynos/exynos_drm_scaler.c | 1 +
drivers/gpu/drm/exynos/exynos_drm_vidi.c | 1 +
drivers/gpu/drm/exynos/exynos_mixer.c | 3 +
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 1 +
drivers/gpu/drm/gma500/cdv_intel_dp.c | 1 +
drivers/gpu/drm/gma500/framebuffer.c | 1 +
drivers/gpu/drm/gma500/gma_display.c | 1 +
drivers/gpu/drm/gma500/oaktrail_crtc.c | 1 +
drivers/gpu/drm/gma500/oaktrail_hdmi.c | 1 +
drivers/gpu/drm/gma500/oaktrail_lvds.c | 1 +
drivers/gpu/drm/gma500/psb_intel_modes.c | 2 +
drivers/gpu/drm/gud/gud_connector.c | 1 +
drivers/gpu/drm/gud/gud_drv.c | 1 +
drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 1 +
drivers/gpu/drm/hyperv/hyperv_drm_modeset.c | 7 +-
drivers/gpu/drm/hyperv/hyperv_drm_proto.c | 23 +-
drivers/gpu/drm/i915/Kconfig | 36 +-
drivers/gpu/drm/i915/Makefile | 9 +-
drivers/gpu/drm/i915/display/g4x_dp.c | 3 +-
drivers/gpu/drm/i915/display/g4x_hdmi.c | 3 +-
drivers/gpu/drm/i915/display/i9xx_plane.c | 1 +
drivers/gpu/drm/i915/display/icl_dsi.c | 8 +-
drivers/gpu/drm/i915/display/intel_audio.c | 4 +-
drivers/gpu/drm/i915/display/intel_bios.c | 346 +-
drivers/gpu/drm/i915/display/intel_cursor.c | 1 +
drivers/gpu/drm/i915/display/intel_ddi.c | 6 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 4 +-
drivers/gpu/drm/i915/display/intel_display.c | 176 +-
drivers/gpu/drm/i915/display/intel_display.h | 4 +-
drivers/gpu/drm/i915/display/intel_display_power.c | 5283 +-
drivers/gpu/drm/i915/display/intel_display_power.h | 126 +-
.../gpu/drm/i915/display/intel_display_power_map.c | 1501 +
.../gpu/drm/i915/display/intel_display_power_map.h | 14 +
.../drm/i915/display/intel_display_power_well.c | 1813 +-
.../drm/i915/display/intel_display_power_well.h | 132 +-
drivers/gpu/drm/i915/display/intel_display_types.h | 1 +
drivers/gpu/drm/i915/display/intel_dmc.c | 44 +
drivers/gpu/drm/i915/display/intel_dmc_regs.h | 16 +
drivers/gpu/drm/i915/display/intel_dp.c | 1 +
.../gpu/drm/i915/display/intel_dp_link_training.c | 33 +-
drivers/gpu/drm/i915/display/intel_dpio_phy.c | 1 +
drivers/gpu/drm/i915/display/intel_dpll.c | 196 +-
drivers/gpu/drm/i915/display/intel_dpll.h | 6 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 268 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.h | 9 +-
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 33 +-
drivers/gpu/drm/i915/display/intel_fb.c | 1 +
drivers/gpu/drm/i915/display/intel_fbc.c | 18 +-
drivers/gpu/drm/i915/display/intel_lspcon.c | 1 +
drivers/gpu/drm/i915/display/intel_opregion.c | 2 +
drivers/gpu/drm/i915/display/intel_panel.c | 10 +-
drivers/gpu/drm/i915/display/intel_pps.c | 1 +
drivers/gpu/drm/i915/display/intel_psr.c | 3 +
drivers/gpu/drm/i915/display/intel_sprite.c | 1 +
drivers/gpu/drm/i915/display/intel_tc.c | 5 +-
drivers/gpu/drm/i915/display/intel_vbt_defs.h | 24 +-
drivers/gpu/drm/i915/display/skl_universal_plane.c | 1 +
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 6 +-
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 23 +-
drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 54 +
drivers/gpu/drm/i915/gt/gen8_engine_cs.h | 7 +
drivers/gpu/drm/i915/gt/intel_engine_regs.h | 2 +
drivers/gpu/drm/i915/gt/intel_engine_user.c | 2 +-
.../gpu/drm/i915/gt/intel_execlists_submission.c | 15 +-
drivers/gpu/drm/i915/gt/intel_gpu_commands.h | 2 +
drivers/gpu/drm/i915/gt/intel_gt.c | 1 +
drivers/gpu/drm/i915/gt/intel_gt_regs.h | 1 +
drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c | 23 +-
drivers/gpu/drm/i915/gt/intel_lrc.c | 75 +-
drivers/gpu/drm/i915/gt/intel_lrc.h | 5 +
drivers/gpu/drm/i915/gt/intel_migrate.c | 59 +-
drivers/gpu/drm/i915/gt/intel_reset.c | 2 +-
drivers/gpu/drm/i915/gt/intel_sseu.c | 2 -
drivers/gpu/drm/i915/gt/selftest_lrc.c | 53 +-
drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h | 2 +-
.../drm/i915/gt/uc/abi/guc_communication_ctb_abi.h | 2 +-
drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_guc.h | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 35 +-
drivers/gpu/drm/i915/gt/uc/intel_uc.c | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_uc.h | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 1 +
drivers/gpu/drm/i915/gvt/Makefile | 30 +-
drivers/gpu/drm/i915/gvt/cfg_space.c | 89 +-
drivers/gpu/drm/i915/gvt/cmd_parser.c | 4 +-
drivers/gpu/drm/i915/gvt/dmabuf.c | 36 +-
drivers/gpu/drm/i915/gvt/execlist.c | 12 +-
drivers/gpu/drm/i915/gvt/firmware.c | 25 +-
drivers/gpu/drm/i915/gvt/gtt.c | 55 +-
drivers/gpu/drm/i915/gvt/gvt.c | 340 -
drivers/gpu/drm/i915/gvt/gvt.h | 124 +-
drivers/gpu/drm/i915/gvt/handlers.c | 1035 +-
drivers/gpu/drm/i915/gvt/hypercall.h | 82 -
drivers/gpu/drm/i915/gvt/interrupt.c | 40 +-
drivers/gpu/drm/i915/gvt/kvmgt.c | 1108 +-
drivers/gpu/drm/i915/gvt/mmio.c | 4 +-
drivers/gpu/drm/i915/gvt/mmio.h | 1 -
drivers/gpu/drm/i915/gvt/mpt.h | 400 -
drivers/gpu/drm/i915/gvt/opregion.c | 148 +-
drivers/gpu/drm/i915/gvt/page_track.c | 8 +-
drivers/gpu/drm/i915/gvt/reg.h | 9 +-
drivers/gpu/drm/i915/gvt/scheduler.c | 37 +-
drivers/gpu/drm/i915/gvt/trace.h | 2 +-
drivers/gpu/drm/i915/gvt/vgpu.c | 22 +-
drivers/gpu/drm/i915/i915_driver.c | 7 -
drivers/gpu/drm/i915/i915_drm_client.c | 1 +
drivers/gpu/drm/i915/i915_drm_client.h | 2 +-
drivers/gpu/drm/i915/i915_drv.h | 10 +-
drivers/gpu/drm/i915/i915_pci.c | 30 +-
drivers/gpu/drm/i915/i915_perf.c | 4 +-
drivers/gpu/drm/i915/i915_perf_types.h | 2 +-
drivers/gpu/drm/i915/i915_pmu.c | 2 +-
drivers/gpu/drm/i915/i915_reg.h | 33 +-
drivers/gpu/drm/i915/i915_vma.c | 19 +-
drivers/gpu/drm/i915/i915_vma.h | 1 -
drivers/gpu/drm/i915/intel_device_info.c | 31 +-
drivers/gpu/drm/i915/intel_device_info.h | 12 +-
drivers/gpu/drm/i915/intel_gvt.c | 252 +-
drivers/gpu/drm/i915/intel_gvt.h | 32 +-
drivers/gpu/drm/i915/intel_gvt_mmio_table.c | 1292 +
drivers/gpu/drm/i915/intel_pm.c | 22 +-
drivers/gpu/drm/imx/dcss/dcss-plane.c | 2 +
drivers/gpu/drm/imx/imx-ldb.c | 1 +
drivers/gpu/drm/imx/imx-tve.c | 5 +-
drivers/gpu/drm/imx/ipuv3-crtc.c | 2 +-
drivers/gpu/drm/imx/ipuv3-plane.c | 10 +-
drivers/gpu/drm/imx/parallel-display.c | 1 +
drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 1 +
drivers/gpu/drm/ingenic/ingenic-ipu.c | 1 +
drivers/gpu/drm/kmb/kmb_plane.c | 2 +
drivers/gpu/drm/logicvc/logicvc_layer.c | 2 +
drivers/gpu/drm/mcde/mcde_display.c | 1 +
drivers/gpu/drm/mediatek/mtk_cec.c | 2 +-
drivers/gpu/drm/mediatek/mtk_disp_aal.c | 2 +-
drivers/gpu/drm/mediatek/mtk_disp_drv.h | 18 +-
drivers/gpu/drm/mediatek/mtk_disp_gamma.c | 34 +-
drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 24 +-
drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 22 +-
drivers/gpu/drm/mediatek/mtk_dpi.c | 4 +-
drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 17 +-
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 4 +
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 29 +-
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 31 +
drivers/gpu/drm/mediatek/mtk_drm_plane.c | 4 +-
drivers/gpu/drm/mediatek/mtk_dsi.c | 1 -
drivers/gpu/drm/meson/meson_overlay.c | 2 +
drivers/gpu/drm/meson/meson_plane.c | 2 +
drivers/gpu/drm/mgag200/mgag200_mode.c | 1 +
drivers/gpu/drm/msm/Kconfig | 51 +-
drivers/gpu/drm/msm/Makefile | 29 +-
drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 21 +-
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 2 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 18 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 68 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.h | 4 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.h | 32 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 14 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 593 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 32 +
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 97 +-
.../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 112 +-
.../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 79 +-
.../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 755 +
drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h | 22 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 157 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 95 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c | 94 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h | 23 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c | 215 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h | 80 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 161 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 12 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c | 62 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.h | 2 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h | 22 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c | 32 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h | 14 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h | 18 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c | 25 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h | 19 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c | 279 +
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.h | 115 +
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 254 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 13 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 260 -
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 172 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h | 2 +
drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 78 +
drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h | 13 +
drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 93 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c | 80 +
drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h | 31 +
drivers/gpu/drm/msm/disp/mdp4/mdp4_dsi_encoder.c | 3 +
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 64 +-
drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c | 1 +
drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c | 3 +
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 15 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 81 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_mdss.c | 252 -
drivers/gpu/drm/msm/disp/mdp5/mdp5_mixer.c | 15 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_mixer.h | 4 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c | 15 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.h | 2 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c | 24 +-
drivers/gpu/drm/msm/disp/mdp_format.c | 2 +
drivers/gpu/drm/msm/dp/dp_audio.c | 50 +-
drivers/gpu/drm/msm/dp/dp_aux.c | 21 +-
drivers/gpu/drm/msm/dp/dp_aux.h | 3 +-
drivers/gpu/drm/msm/dp/dp_catalog.c | 98 +-
drivers/gpu/drm/msm/dp/dp_catalog.h | 3 +
drivers/gpu/drm/msm/dp/dp_ctrl.c | 175 +-
drivers/gpu/drm/msm/dp/dp_ctrl.h | 2 +
drivers/gpu/drm/msm/dp/dp_debug.c | 2 -
drivers/gpu/drm/msm/dp/dp_display.c | 444 +-
drivers/gpu/drm/msm/dp/dp_display.h | 7 +-
drivers/gpu/drm/msm/dp/dp_drm.c | 215 +-
drivers/gpu/drm/msm/dp/dp_drm.h | 22 +-
drivers/gpu/drm/msm/dp/dp_link.c | 103 +-
drivers/gpu/drm/msm/dp/dp_panel.c | 60 +-
drivers/gpu/drm/msm/dp/dp_panel.h | 4 +-
drivers/gpu/drm/msm/dp/dp_parser.c | 25 +-
drivers/gpu/drm/msm/dp/dp_parser.h | 14 +-
drivers/gpu/drm/msm/dp/dp_power.c | 25 +-
drivers/gpu/drm/msm/dsi/dsi.c | 6 +-
drivers/gpu/drm/msm/dsi/dsi.h | 3 +
drivers/gpu/drm/msm/dsi/dsi.xml.h | 80 +
drivers/gpu/drm/msm/dsi/dsi_host.c | 300 +-
drivers/gpu/drm/msm/dsi/dsi_manager.c | 47 +-
drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c | 2 +-
drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 10 +-
drivers/gpu/drm/msm/edp/edp.h | 78 -
drivers/gpu/drm/msm/edp/edp_ctrl.c | 1374 -
drivers/gpu/drm/msm/hdmi/hdmi.c | 11 +-
drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 4 +
drivers/gpu/drm/msm/msm_debugfs.c | 1 +
drivers/gpu/drm/msm/msm_drv.c | 301 +-
drivers/gpu/drm/msm/msm_drv.h | 162 +-
drivers/gpu/drm/msm/msm_fb.c | 21 +-
drivers/gpu/drm/msm/msm_fbdev.c | 1 +
drivers/gpu/drm/msm/msm_fence.c | 6 +-
drivers/gpu/drm/msm/msm_fence.h | 3 +
drivers/gpu/drm/msm/msm_gem.c | 151 +-
drivers/gpu/drm/msm/msm_gem.h | 53 +-
drivers/gpu/drm/msm/msm_gem_prime.c | 2 +-
drivers/gpu/drm/msm/msm_gem_submit.c | 37 +-
drivers/gpu/drm/msm/msm_gem_vma.c | 61 +-
drivers/gpu/drm/msm/msm_gpu.c | 51 +-
drivers/gpu/drm/msm/msm_gpu.h | 25 +-
drivers/gpu/drm/msm/msm_gpu_devfreq.c | 97 +-
drivers/gpu/drm/msm/msm_kms.h | 22 +-
drivers/gpu/drm/msm/msm_mdss.c | 472 +
drivers/gpu/drm/msm/msm_rd.c | 5 +-
drivers/gpu/drm/msm/msm_ringbuffer.c | 15 +-
drivers/gpu/drm/msm/msm_ringbuffer.h | 1 -
drivers/gpu/drm/msm/msm_submitqueue.c | 2 +
drivers/gpu/drm/mxsfb/mxsfb_kms.c | 1 +
drivers/gpu/drm/nouveau/dispnv50/wndw.c | 1 +
drivers/gpu/drm/nouveau/nouveau_backlight.c | 9 +-
drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c | 2 +-
drivers/gpu/drm/omapdrm/dss/hdmi4.c | 1 +
drivers/gpu/drm/omapdrm/dss/hdmi5.c | 1 +
drivers/gpu/drm/omapdrm/omap_debugfs.c | 1 +
drivers/gpu/drm/omapdrm/omap_fb.c | 2 +
drivers/gpu/drm/omapdrm/omap_fbdev.c | 1 +
drivers/gpu/drm/omapdrm/omap_plane.c | 2 +
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 12 +
drivers/gpu/drm/panel/panel-edp.c | 47 +-
drivers/gpu/drm/panel/panel-elida-kd35t133.c | 12 +
drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 12 +
drivers/gpu/drm/panel/panel-lvds.c | 13 +
drivers/gpu/drm/panel/panel-samsung-atna33xc20.c | 51 +-
drivers/gpu/drm/panel/panel-simple.c | 14 +-
drivers/gpu/drm/panfrost/panfrost_drv.c | 5 +-
drivers/gpu/drm/panfrost/panfrost_job.c | 6 +-
drivers/gpu/drm/panfrost/panfrost_job.h | 2 +-
drivers/gpu/drm/pl111/pl111_display.c | 1 +
drivers/gpu/drm/pl111/pl111_drv.c | 1 +
drivers/gpu/drm/pl111/pl111_versatile.c | 2 +
drivers/gpu/drm/qxl/qxl_display.c | 2 +
drivers/gpu/drm/qxl/qxl_draw.c | 1 +
drivers/gpu/drm/radeon/Makefile | 2 +-
drivers/gpu/drm/radeon/atombios.h | 10 +-
drivers/gpu/drm/radeon/atombios_crtc.c | 1 +
drivers/gpu/drm/radeon/cik_blit_shaders.c | 246 -
drivers/gpu/drm/radeon/cik_blit_shaders.h | 219 +-
drivers/gpu/drm/radeon/evergreen.c | 1 +
drivers/gpu/drm/radeon/r100.c | 1 +
drivers/gpu/drm/radeon/radeon_connectors.c | 4 +
drivers/gpu/drm/radeon/radeon_device.c | 1 +
drivers/gpu/drm/radeon/radeon_display.c | 1 +
drivers/gpu/drm/radeon/radeon_fb.c | 1 +
drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 1 +
drivers/gpu/drm/radeon/rs600.c | 1 +
drivers/gpu/drm/radeon/rv770.c | 1 +
drivers/gpu/drm/radeon/si_dpm.c | 4 +-
drivers/gpu/drm/rcar-du/rcar_du_kms.c | 1 +
drivers/gpu/drm/rcar-du/rcar_du_plane.c | 2 +
drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 2 +
drivers/gpu/drm/rcar-du/rcar_du_writeback.c | 6 +-
drivers/gpu/drm/rockchip/rk3066_hdmi.c | 1 +
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 1 +
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 2 +
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 6 +-
drivers/gpu/drm/selftests/test-drm_damage_helper.c | 1 +
drivers/gpu/drm/selftests/test-drm_plane_helper.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_kms.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_plane.c | 1 +
drivers/gpu/drm/solomon/ssd130x.c | 2 +
drivers/gpu/drm/sprd/sprd_dpu.c | 2 +
drivers/gpu/drm/sti/sti_cursor.c | 1 +
drivers/gpu/drm/sti/sti_gdp.c | 1 +
drivers/gpu/drm/sti/sti_hqvdp.c | 1 +
drivers/gpu/drm/sti/sti_plane.c | 2 +
drivers/gpu/drm/stm/ltdc.c | 3 +
drivers/gpu/drm/sun4i/sun4i_backend.c | 2 +
drivers/gpu/drm/sun4i/sun4i_framebuffer.c | 1 +
drivers/gpu/drm/sun4i/sun4i_layer.c | 1 +
drivers/gpu/drm/sun4i/sun8i_mixer.c | 1 +
drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 2 +
drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 2 +
drivers/gpu/drm/tegra/dc.c | 2 +
drivers/gpu/drm/tegra/drm.c | 1 +
drivers/gpu/drm/tegra/fb.c | 1 +
drivers/gpu/drm/tegra/gem.c | 1 +
drivers/gpu/drm/tegra/hub.c | 2 +
drivers/gpu/drm/tegra/plane.c | 1 +
drivers/gpu/drm/tegra/vic.c | 5 +-
drivers/gpu/drm/tidss/tidss_dispc.c | 2 +
drivers/gpu/drm/tidss/tidss_plane.c | 2 +
drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 1 +
drivers/gpu/drm/tilcdc/tilcdc_plane.c | 1 +
drivers/gpu/drm/tiny/arcpgu.c | 2 +
drivers/gpu/drm/tiny/bochs.c | 2 +
drivers/gpu/drm/tiny/cirrus.c | 2 +
drivers/gpu/drm/tiny/gm12u320.c | 2 +
drivers/gpu/drm/tiny/ili9225.c | 1 +
drivers/gpu/drm/tiny/repaper.c | 1 +
drivers/gpu/drm/tiny/st7586.c | 1 +
drivers/gpu/drm/ttm/ttm_bo_vm.c | 2 +-
drivers/gpu/drm/ttm/ttm_module.c | 2 +-
drivers/gpu/drm/tve200/tve200_display.c | 1 +
drivers/gpu/drm/udl/udl_connector.c | 1 +
drivers/gpu/drm/vboxvideo/vbox_mode.c | 2 +
drivers/gpu/drm/vc4/vc4_bo.c | 2 +
drivers/gpu/drm/vc4/vc4_crtc.c | 1 +
drivers/gpu/drm/vc4/vc4_hdmi.c | 1 +
drivers/gpu/drm/vc4/vc4_kms.c | 1 +
drivers/gpu/drm/vc4/vc4_plane.c | 2 +
drivers/gpu/drm/vc4/vc4_regs.h | 2 +-
drivers/gpu/drm/vc4/vc4_txp.c | 4 +-
drivers/gpu/drm/virtio/virtgpu_display.c | 1 +
drivers/gpu/drm/virtio/virtgpu_drv.h | 1 +
drivers/gpu/drm/virtio/virtgpu_vq.c | 2 +
drivers/gpu/drm/vkms/vkms_drv.h | 1 +
drivers/gpu/drm/vkms/vkms_output.c | 1 +
drivers/gpu/drm/vkms/vkms_writeback.c | 5 +-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 +
drivers/gpu/drm/xen/xen_drm_front.h | 9 -
drivers/gpu/drm/xen/xen_drm_front_conn.c | 1 +
drivers/gpu/drm/xen/xen_drm_front_evtchnl.c | 43 +-
drivers/gpu/drm/xen/xen_drm_front_kms.c | 1 +
drivers/gpu/drm/xlnx/zynqmp_disp.c | 1 +
drivers/gpu/host1x/Kconfig | 5 +
drivers/gpu/host1x/Makefile | 1 +
drivers/gpu/host1x/context_bus.c | 31 +
drivers/gpu/host1x/debug.c | 11 +-
drivers/gpu/host1x/job.c | 4 +-
drivers/gpu/ipu-v3/ipu-dc.c | 5 +-
drivers/gpu/ipu-v3/ipu-image-convert.c | 9 +-
drivers/hid/Kconfig | 8 +
drivers/hid/Makefile | 1 +
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 45 +-
drivers/hid/amd-sfh-hid/amd_sfh_hid.c | 9 +-
drivers/hid/amd-sfh-hid/amd_sfh_hid.h | 1 -
drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 17 +-
drivers/hid/amd-sfh-hid/amd_sfh_pcie.h | 5 +
.../hid_descriptor/amd_sfh_hid_report_desc.h | 6 +-
drivers/hid/hid-apple.c | 22 +-
drivers/hid/hid-bigbenff.c | 6 +
drivers/hid/hid-core.c | 4 +
drivers/hid/hid-elan.c | 2 -
drivers/hid/hid-ids.h | 7 +
drivers/hid/hid-kye.c | 12 +-
drivers/hid/hid-led.c | 2 +-
drivers/hid/hid-lenovo.c | 174 +-
drivers/hid/hid-megaworld.c | 125 +
drivers/hid/hid-multitouch.c | 9 +
drivers/hid/hid-uclogic-core.c | 113 +-
drivers/hid/hid-uclogic-params.c | 288 +-
drivers/hid/hid-uclogic-params.h | 105 +-
drivers/hid/hid-uclogic-rdesc.c | 181 +-
drivers/hid/hid-uclogic-rdesc.h | 34 +-
drivers/hid/hid-viewsonic.c | 2 +-
drivers/hid/intel-ish-hid/ipc/hw-ish.h | 2 +
drivers/hid/intel-ish-hid/ipc/pci-ish.c | 2 +
drivers/hid/usbhid/hid-core.c | 2 +-
drivers/hid/usbhid/usbkbd.c | 2 +-
drivers/hid/usbhid/usbmouse.c | 2 +-
drivers/hid/wacom_sys.c | 2 +-
drivers/hid/wacom_wac.c | 43 +-
drivers/hid/wacom_wac.h | 5 +
drivers/hte/Kconfig | 33 +
drivers/hte/Makefile | 3 +
drivers/hte/hte-tegra194-test.c | 238 +
drivers/hte/hte-tegra194.c | 730 +
drivers/hte/hte.c | 947 +
drivers/hv/channel.c | 116 +-
drivers/hv/channel_mgmt.c | 40 +-
drivers/hv/connection.c | 6 +-
drivers/hv/hv_balloon.c | 21 +-
drivers/hv/hyperv_vmbus.h | 2 +-
drivers/hv/ring_buffer.c | 46 +-
drivers/hv/vmbus_drv.c | 88 +-
drivers/hwmon/Kconfig | 57 +-
drivers/hwmon/Makefile | 4 +
drivers/hwmon/acpi_power_meter.c | 17 +-
drivers/hwmon/adt7470.c | 4 +-
drivers/hwmon/adt7475.c | 119 +-
drivers/hwmon/aquacomputer_d5next.c | 466 +-
drivers/hwmon/as370-hwmon.c | 12 +-
drivers/hwmon/asus-ec-sensors.c | 414 +-
drivers/hwmon/asus_wmi_sensors.c | 2 +-
drivers/hwmon/bt1-pvt.c | 50 +-
drivers/hwmon/dell-smm-hwmon.c | 147 +-
drivers/hwmon/f71882fg.c | 5 +-
drivers/hwmon/hwmon.c | 100 +-
drivers/hwmon/ibmaem.c | 10 +-
drivers/hwmon/intel-m10-bmc-hwmon.c | 11 +-
drivers/hwmon/jc42.c | 8 +
drivers/hwmon/lan966x-hwmon.c | 418 +
drivers/hwmon/lm75.c | 14 +
drivers/hwmon/lm83.c | 2 -
drivers/hwmon/lm90.c | 4 +
drivers/hwmon/ltc2992.c | 86 +-
drivers/hwmon/mr75203.c | 12 +-
drivers/hwmon/{nct6775.c => nct6775-core.c} | 2445 +-
drivers/hwmon/nct6775-i2c.c | 195 +
drivers/hwmon/nct6775-platform.c | 1229 +
drivers/hwmon/nct6775.h | 252 +
drivers/hwmon/occ/common.c | 100 +-
drivers/hwmon/occ/common.h | 5 +-
drivers/hwmon/occ/p8_i2c.c | 2 +-
drivers/hwmon/occ/p9_sbe.c | 2 +-
drivers/hwmon/occ/sysfs.c | 137 +-
drivers/hwmon/peci/cputemp.c | 38 +-
drivers/hwmon/peci/dimmtemp.c | 33 +-
drivers/hwmon/pmbus/Kconfig | 13 +-
drivers/hwmon/pmbus/Makefile | 1 +
drivers/hwmon/pmbus/delta-ahe50dc-fan.c | 16 +
drivers/hwmon/pmbus/ltc2978.c | 12 +
drivers/hwmon/pmbus/max16601.c | 13 +-
drivers/hwmon/pmbus/pmbus.h | 2 +
drivers/hwmon/pmbus/pmbus_core.c | 230 +-
drivers/hwmon/pmbus/xdpe12284.c | 2 +-
drivers/hwmon/pmbus/xdpe152c4.c | 75 +
drivers/hwmon/pwm-fan.c | 12 +-
drivers/hwmon/sl28cpld-hwmon.c | 14 +-
drivers/hwmon/tmp401.c | 57 +-
drivers/hwtracing/coresight/coresight-core.c | 33 +-
drivers/hwtracing/coresight/coresight-cpu-debug.c | 7 +-
drivers/hwtracing/coresight/coresight-etm3x-core.c | 2 +-
.../hwtracing/coresight/coresight-etm3x-sysfs.c | 2 +-
drivers/hwtracing/coresight/coresight-etm4x-core.c | 136 +-
.../hwtracing/coresight/coresight-etm4x-sysfs.c | 180 +-
drivers/hwtracing/coresight/coresight-etm4x.h | 120 +-
drivers/i2c/busses/i2c-at91-master.c | 11 +
drivers/i2c/busses/i2c-cadence.c | 12 +-
drivers/i2c/busses/i2c-davinci.c | 12 +-
drivers/i2c/busses/i2c-designware-amdpsp.c | 4 +-
drivers/i2c/busses/i2c-designware-common.c | 2 +-
drivers/i2c/busses/i2c-ismt.c | 17 +
drivers/i2c/busses/i2c-meson.c | 115 +-
drivers/i2c/busses/i2c-mt65xx.c | 11 +-
drivers/i2c/busses/i2c-mt7621.c | 15 +-
drivers/i2c/busses/i2c-npcm7xx.c | 122 +-
drivers/i2c/busses/i2c-powermac.c | 2 +-
drivers/i2c/busses/i2c-qcom-geni.c | 6 +-
drivers/i2c/busses/i2c-rcar.c | 217 +-
drivers/i2c/busses/i2c-thunderx-pcidrv.c | 1 +
drivers/i2c/busses/i2c-xiic.c | 84 +-
drivers/i3c/master/mipi-i3c-hci/core.c | 7 +-
drivers/i3c/master/svc-i3c-master.c | 3 +-
drivers/idle/intel_idle.c | 165 +-
drivers/iio/accel/Kconfig | 1 -
drivers/iio/accel/adxl355_core.c | 7 +-
drivers/iio/accel/adxl367.c | 1 -
drivers/iio/accel/bmc150-accel-core.c | 4 +-
drivers/iio/accel/dmard09.c | 2 +-
drivers/iio/accel/fxls8962af-core.c | 1 -
drivers/iio/accel/kxsd9-spi.c | 4 +-
drivers/iio/accel/mma8452.c | 1 +
drivers/iio/accel/sca3000.c | 1 -
drivers/iio/accel/ssp_accel_sensor.c | 1 -
drivers/iio/accel/st_accel.h | 28 +-
drivers/iio/accel/st_accel_core.c | 14 +-
drivers/iio/accel/st_accel_i2c.c | 5 +
drivers/iio/accel/st_accel_spi.c | 5 +
drivers/iio/adc/Kconfig | 2 +-
drivers/iio/adc/ad7124.c | 86 +-
drivers/iio/adc/ad7192.c | 68 +-
drivers/iio/adc/ad7266.c | 44 +-
drivers/iio/adc/ad7280a.c | 2 +-
drivers/iio/adc/ad_sigma_delta.c | 143 +-
drivers/iio/adc/at91-sama5d2_adc.c | 4 +-
drivers/iio/adc/ina2xx-adc.c | 3 +-
drivers/iio/adc/palmas_gpadc.c | 3 +-
drivers/iio/adc/qcom-vadc-common.c | 11 +
drivers/iio/adc/sc27xx_adc.c | 470 +-
drivers/iio/adc/stm32-dfsdm-adc.c | 5 +-
drivers/iio/adc/stmpe-adc.c | 21 +-
drivers/iio/adc/ti-ads1015.c | 398 +-
drivers/iio/adc/ti-ads8688.c | 1 +
drivers/iio/adc/ti_am335x_adc.c | 4 +-
drivers/iio/afe/Kconfig | 1 -
drivers/iio/afe/iio-rescale.c | 5 +-
drivers/iio/buffer/kfifo_buf.c | 10 +-
drivers/iio/chemical/scd30.h | 5 +-
drivers/iio/chemical/scd30_core.c | 10 +-
drivers/iio/chemical/scd30_i2c.c | 3 +-
drivers/iio/chemical/scd30_serial.c | 3 +-
.../common/cros_ec_sensors/cros_ec_sensors_core.c | 5 +-
drivers/iio/common/scmi_sensors/scmi_iio.c | 1 -
drivers/iio/common/ssp_sensors/ssp_spi.c | 13 +-
drivers/iio/common/st_sensors/st_sensors_core.c | 50 +-
drivers/iio/dac/Kconfig | 4 +-
drivers/iio/dac/ad5064.c | 2 +-
drivers/iio/dac/ad5360.c | 2 +-
drivers/iio/dac/ad5380.c | 2 +-
drivers/iio/dac/ad5446.c | 2 +-
drivers/iio/dac/ad5504.c | 2 +-
drivers/iio/dac/ad5624r_spi.c | 2 +-
drivers/iio/dac/ad5686.c | 2 +-
drivers/iio/dac/ad5755.c | 2 +-
drivers/iio/dac/ad5791.c | 2 +-
drivers/iio/dac/ad7303.c | 2 +-
drivers/iio/dac/ltc2632.c | 8 +-
drivers/iio/dac/ltc2688.c | 19 +-
drivers/iio/dac/max5821.c | 2 +-
drivers/iio/dac/mcp4725.c | 4 +-
drivers/iio/dac/stm32-dac.c | 2 +-
drivers/iio/dac/ti-dac082s085.c | 2 +-
drivers/iio/dac/ti-dac5571.c | 2 +-
drivers/iio/dac/ti-dac7311.c | 2 +-
drivers/iio/dummy/iio_simple_dummy.c | 20 +-
drivers/iio/dummy/iio_simple_dummy_buffer.c | 48 +-
drivers/iio/frequency/ad9523.c | 2 +-
drivers/iio/gyro/fxas21002c_core.c | 8 +-
drivers/iio/gyro/mpu3050-core.c | 14 +-
drivers/iio/gyro/mpu3050-i2c.c | 4 +-
drivers/iio/gyro/mpu3050.h | 2 +-
drivers/iio/gyro/ssp_gyro_sensor.c | 1 -
drivers/iio/gyro/st_gyro_core.c | 15 +-
drivers/iio/health/max30100.c | 1 -
drivers/iio/health/max30102.c | 1 -
drivers/iio/imu/adis16480.c | 91 +-
drivers/iio/imu/bmi160/bmi160_core.c | 27 +-
drivers/iio/imu/bmi160/bmi160_i2c.c | 13 +-
drivers/iio/imu/bmi160/bmi160_spi.c | 18 +-
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c | 1 -
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c | 1 -
drivers/iio/imu/inv_mpu6050/Kconfig | 4 +-
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 9 +
drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 6 +
drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 2 +
drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | 5 +
drivers/iio/imu/st_lsm6dsx/Kconfig | 6 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 2 +
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c | 4 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 6 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 5 +
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 5 +
drivers/iio/industrialio-buffer.c | 42 +-
drivers/iio/industrialio-core.c | 46 +-
drivers/iio/industrialio-event.c | 2 +-
drivers/iio/industrialio-trigger.c | 2 +-
drivers/iio/light/Kconfig | 1 -
drivers/iio/light/apds9960.c | 1 -
drivers/iio/light/stk3310.c | 25 +
drivers/iio/light/tsl2772.c | 25 +-
drivers/iio/magnetometer/Kconfig | 1 -
drivers/iio/magnetometer/rm3100-core.c | 15 +-
drivers/iio/magnetometer/st_magn_core.c | 15 +-
drivers/iio/multiplexer/Kconfig | 1 -
drivers/iio/multiplexer/iio-mux.c | 49 +-
drivers/iio/pressure/st_pressure_core.c | 8 +-
drivers/iio/proximity/mb1232.c | 8 +-
drivers/iio/proximity/ping.c | 5 +-
drivers/iio/proximity/vl53l0x-i2c.c | 7 +-
drivers/iio/temperature/ltc2983.c | 236 +-
drivers/iio/temperature/max31856.c | 6 +-
drivers/iio/temperature/max31865.c | 4 +-
drivers/iio/trigger/iio-trig-sysfs.c | 11 +-
drivers/infiniband/core/device.c | 26 +-
drivers/infiniband/core/nldev.c | 2 +-
drivers/infiniband/core/sa_query.c | 16 +-
drivers/infiniband/core/umem_odp.c | 2 +-
drivers/infiniband/core/uverbs_cmd.c | 2 +-
.../infiniband/core/uverbs_std_types_flow_action.c | 383 +-
drivers/infiniband/core/verbs.c | 8 +-
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 2 +-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 1 -
drivers/infiniband/hw/cxgb4/provider.c | 8 +-
drivers/infiniband/hw/hfi1/common.h | 55 -
drivers/infiniband/hw/hfi1/driver.c | 6 -
drivers/infiniband/hw/hfi1/efivar.c | 2 +-
drivers/infiniband/hw/hfi1/file_ops.c | 4 +-
drivers/infiniband/hw/hfi1/init.c | 2 +-
drivers/infiniband/hw/hfi1/sdma.c | 12 +-
drivers/infiniband/hw/hfi1/verbs.c | 4 +-
drivers/infiniband/hw/hns/hns_roce_device.h | 32 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 451 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 326 +-
drivers/infiniband/hw/hns/hns_roce_main.c | 2 +-
drivers/infiniband/hw/hns/hns_roce_mr.c | 3 +-
drivers/infiniband/hw/hns/hns_roce_qp.c | 20 -
drivers/infiniband/hw/hns/hns_roce_restrack.c | 49 +-
drivers/infiniband/hw/irdma/cm.c | 33 +-
drivers/infiniband/hw/irdma/hw.c | 35 +-
drivers/infiniband/hw/irdma/main.h | 1 -
drivers/infiniband/hw/irdma/puda.c | 7 +-
drivers/infiniband/hw/irdma/utils.c | 168 +-
drivers/infiniband/hw/irdma/verbs.c | 64 +-
drivers/infiniband/hw/irdma/verbs.h | 13 +-
drivers/infiniband/hw/mlx4/cm.c | 29 +-
drivers/infiniband/hw/mlx4/main.c | 18 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 3 +
drivers/infiniband/hw/mlx5/Makefile | 1 +
drivers/infiniband/hw/mlx5/fs.c | 226 +-
drivers/infiniband/hw/mlx5/gsi.c | 2 +-
drivers/infiniband/hw/mlx5/main.c | 156 +-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 90 +-
drivers/infiniband/hw/mlx5/mr.c | 421 +-
drivers/infiniband/hw/mlx5/odp.c | 64 +-
drivers/infiniband/hw/mlx5/qp.c | 3 +-
drivers/infiniband/hw/mlx5/umr.c | 700 +
drivers/infiniband/hw/mlx5/umr.h | 97 +
drivers/infiniband/hw/mlx5/wr.c | 377 +-
drivers/infiniband/hw/mlx5/wr.h | 60 +
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 +-
drivers/infiniband/hw/qedr/main.c | 1 -
drivers/infiniband/hw/qedr/verbs.c | 3 +-
drivers/infiniband/hw/qib/qib.h | 2 +-
drivers/infiniband/hw/usnic/usnic_ib_main.c | 11 +-
drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 6 +-
drivers/infiniband/hw/usnic/usnic_uiom.c | 15 +-
drivers/infiniband/hw/usnic/usnic_uiom.h | 3 +-
drivers/infiniband/sw/rdmavt/qp.c | 6 +-
drivers/infiniband/sw/rxe/rxe.c | 1 +
drivers/infiniband/sw/rxe/rxe_comp.c | 3 +-
drivers/infiniband/sw/rxe/rxe_loc.h | 17 +-
drivers/infiniband/sw/rxe/rxe_mcast.c | 87 +-
drivers/infiniband/sw/rxe/rxe_mr.c | 10 +-
drivers/infiniband/sw/rxe/rxe_mw.c | 65 +-
drivers/infiniband/sw/rxe/rxe_opcode.c | 2 -
drivers/infiniband/sw/rxe/rxe_param.h | 2 -
drivers/infiniband/sw/rxe/rxe_pool.c | 11 +-
drivers/infiniband/sw/rxe/rxe_pool.h | 5 -
drivers/infiniband/sw/rxe/rxe_qp.c | 36 +-
drivers/infiniband/sw/rxe/rxe_recv.c | 1 -
drivers/infiniband/sw/rxe/rxe_req.c | 28 +-
drivers/infiniband/sw/rxe/rxe_resp.c | 43 +-
drivers/infiniband/sw/rxe/rxe_srq.c | 129 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 40 +-
drivers/infiniband/sw/rxe/rxe_verbs.h | 3 +-
drivers/infiniband/sw/siw/siw_cm.c | 7 +-
drivers/infiniband/sw/siw/siw_main.c | 5 +-
drivers/infiniband/sw/siw/siw_verbs.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib.h | 1 +
drivers/infiniband/ulp/ipoib/ipoib_main.c | 5 +-
drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 6 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 2 +-
drivers/infiniband/ulp/iser/iscsi_iser.h | 2 +-
drivers/infiniband/ulp/iser/iser_verbs.c | 8 +-
drivers/infiniband/ulp/isert/ib_isert.c | 131 +-
drivers/infiniband/ulp/isert/ib_isert.h | 4 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 2 +-
drivers/infiniband/ulp/srp/ib_srp.c | 8 +-
drivers/input/input.c | 4 +-
drivers/input/joystick/Kconfig | 12 +
drivers/input/joystick/Makefile | 1 +
drivers/input/joystick/sensehat-joystick.c | 137 +
drivers/input/keyboard/bcm-keypad.c | 3 +-
drivers/input/keyboard/clps711x-keypad.c | 3 +-
drivers/input/keyboard/cros_ec_keyb.c | 29 +-
drivers/input/keyboard/ep93xx_keypad.c | 7 +-
drivers/input/keyboard/gpio_keys.c | 2 +-
drivers/input/keyboard/mt6779-keypad.c | 10 +-
drivers/input/keyboard/omap-keypad.c | 1 +
drivers/input/keyboard/sun4i-lradc-keys.c | 63 +-
drivers/input/misc/Kconfig | 10 +
drivers/input/misc/Makefile | 1 +
drivers/input/misc/ati_remote2.c | 2 +-
drivers/input/misc/cm109.c | 2 +-
drivers/input/misc/iqs7222.c | 2446 +
drivers/input/misc/pm8941-pwrkey.c | 127 +-
drivers/input/misc/powermate.c | 2 +-
drivers/input/misc/soc_button_array.c | 4 +-
drivers/input/misc/sparcspkr.c | 1 +
drivers/input/misc/xen-kbdfront.c | 4 +-
drivers/input/misc/yealink.c | 2 +-
drivers/input/mouse/bcm5974.c | 7 +-
drivers/input/mouse/cypress_ps2.c | 2 +-
drivers/input/mouse/psmouse-smbus.c | 11 +-
drivers/input/mouse/pxa930_trkball.c | 1 -
drivers/input/mouse/vmmouse.c | 14 +
drivers/input/rmi4/rmi_f54.c | 1 -
drivers/input/tablet/acecad.c | 2 +-
drivers/input/tablet/aiptek.c | 3 +-
drivers/input/tablet/pegasus_notetaker.c | 2 +-
drivers/input/touchscreen/Kconfig | 2 +
drivers/input/touchscreen/ili210x.c | 20 +-
drivers/input/touchscreen/mainstone-wm97xx.c | 130 +-
drivers/input/touchscreen/stmfts.c | 16 +-
drivers/input/touchscreen/wm97xx-core.c | 42 +-
drivers/input/touchscreen/zylonite-wm97xx.c | 43 +-
drivers/interconnect/core.c | 8 +-
drivers/interconnect/qcom/Kconfig | 18 +
drivers/interconnect/qcom/Makefile | 4 +
drivers/interconnect/qcom/icc-rpm.c | 16 +-
drivers/interconnect/qcom/icc-rpm.h | 6 +-
drivers/interconnect/qcom/icc-rpmh.c | 2 +-
drivers/interconnect/qcom/icc-rpmh.h | 6 +-
drivers/interconnect/qcom/msm8916.c | 12 +-
drivers/interconnect/qcom/msm8939.c | 16 +-
drivers/interconnect/qcom/msm8974.c | 28 +-
drivers/interconnect/qcom/msm8996.c | 16 +-
drivers/interconnect/qcom/osm-l3.c | 16 +-
drivers/interconnect/qcom/qcm2290.c | 24 +-
drivers/interconnect/qcom/qcs404.c | 12 +-
drivers/interconnect/qcom/sc7180.c | 66 +-
drivers/interconnect/qcom/sc7280.c | 72 +-
drivers/interconnect/qcom/sc8180x.c | 1895 +-
drivers/interconnect/qcom/sc8180x.h | 7 +
drivers/interconnect/qcom/sc8280xp.c | 2438 +
drivers/interconnect/qcom/sc8280xp.h | 209 +
drivers/interconnect/qcom/sdm660.c | 24 +-
drivers/interconnect/qcom/sdm845.c | 32 +-
drivers/interconnect/qcom/sdx55.c | 12 +-
drivers/interconnect/qcom/sdx65.c | 231 +
drivers/interconnect/qcom/sdx65.h | 65 +
drivers/interconnect/qcom/sm8150.c | 66 +-
drivers/interconnect/qcom/sm8250.c | 66 +-
drivers/interconnect/qcom/sm8350.c | 60 +-
drivers/interconnect/qcom/sm8450.c | 68 +-
drivers/iommu/amd/amd_iommu_types.h | 4 +
drivers/iommu/amd/init.c | 14 +-
drivers/iommu/amd/iommu.c | 16 +-
drivers/iommu/amd/iommu_v2.c | 12 +-
drivers/iommu/apple-dart.c | 10 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 22 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 2 +
drivers/iommu/arm/arm-smmu/arm-smmu-impl.c | 3 +-
drivers/iommu/arm/arm-smmu/arm-smmu-nvidia.c | 30 +
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 1 +
drivers/iommu/arm/arm-smmu/arm-smmu.c | 8 +-
drivers/iommu/dma-iommu.c | 25 +-
drivers/iommu/fsl_pamu.c | 3 +
drivers/iommu/fsl_pamu_domain.c | 1 +
drivers/iommu/intel/dmar.c | 6 +-
drivers/iommu/intel/iommu.c | 243 +-
drivers/iommu/intel/pasid.c | 45 +-
drivers/iommu/intel/pasid.h | 2 +
drivers/iommu/intel/svm.c | 4 +
drivers/iommu/iommu.c | 363 +-
drivers/iommu/msm_iommu.c | 22 +-
drivers/iommu/mtk_iommu.c | 980 +-
drivers/iommu/mtk_iommu.h | 101 -
drivers/iommu/mtk_iommu_v1.c | 242 +-
drivers/iommu/s390-iommu.c | 15 +-
drivers/irqchip/Kconfig | 29 +-
drivers/irqchip/Makefile | 8 +-
drivers/irqchip/irq-armada-370-xp.c | 56 +-
drivers/irqchip/irq-aspeed-i2c-ic.c | 4 +-
drivers/irqchip/irq-aspeed-scu-ic.c | 4 +-
drivers/irqchip/irq-bcm6345-l1.c | 2 +-
drivers/irqchip/irq-csky-apb-intc.c | 4 +-
drivers/irqchip/irq-gic-v3-its.c | 2 +-
drivers/irqchip/irq-gic-v3.c | 256 +-
drivers/irqchip/irq-gic.c | 6 +-
drivers/irqchip/irq-imx-irqsteer.c | 16 +-
drivers/irqchip/irq-ixp4xx.c | 126 +-
drivers/irqchip/irq-loongson-liointc.c | 6 +-
drivers/irqchip/irq-renesas-h8300h.c | 94 -
drivers/irqchip/irq-renesas-h8s.c | 102 -
drivers/irqchip/irq-sni-exiu.c | 25 +-
drivers/irqchip/irq-sun6i-r.c | 6 +-
drivers/irqchip/irq-xtensa-mx.c | 18 +-
drivers/isdn/mISDN/socket.c | 2 +-
drivers/leds/Kconfig | 3 +
drivers/leds/Makefile | 3 +
drivers/leds/flash/leds-ktd2692.c | 15 +-
drivers/leds/leds-is31fl32xx.c | 8 +-
drivers/leds/leds-locomo.c | 1 -
drivers/leds/leds-lp50xx.c | 4 +-
drivers/leds/leds-pca9532.c | 11 +-
drivers/leds/leds-regulator.c | 47 +-
drivers/leds/rgb/Kconfig | 29 +
drivers/leds/rgb/Makefile | 4 +
drivers/leds/rgb/leds-pwm-multicolor.c | 186 +
drivers/leds/rgb/leds-qcom-lpg.c | 1451 +
drivers/macintosh/Kconfig | 6 +
drivers/macintosh/Makefile | 3 +-
drivers/macintosh/adb.c | 2 +-
drivers/macintosh/adbhid.c | 9 +-
drivers/macintosh/ams/ams-core.c | 2 +-
drivers/macintosh/ams/ams-i2c.c | 6 +-
drivers/macintosh/ans-lcd.c | 2 +-
drivers/macintosh/macio-adb.c | 5 +-
drivers/macintosh/macio_asic.c | 9 +-
drivers/macintosh/macio_sysfs.c | 2 +
drivers/macintosh/mediabay.c | 2 +-
drivers/macintosh/rack-meter.c | 1 -
drivers/macintosh/smu.c | 7 +-
drivers/macintosh/therm_adt746x.c | 1 -
drivers/macintosh/therm_windtunnel.c | 1 -
drivers/macintosh/via-cuda.c | 10 +-
drivers/macintosh/via-pmu-backlight.c | 1 -
drivers/macintosh/via-pmu-led.c | 2 +-
drivers/macintosh/via-pmu.c | 9 +-
drivers/macintosh/windfarm_ad7417_sensor.c | 2 +-
drivers/macintosh/windfarm_core.c | 2 -
drivers/macintosh/windfarm_cpufreq_clamp.c | 2 -
drivers/macintosh/windfarm_fcu_controls.c | 2 +-
drivers/macintosh/windfarm_lm75_sensor.c | 1 -
drivers/macintosh/windfarm_lm87_sensor.c | 2 +-
drivers/macintosh/windfarm_max6690_sensor.c | 2 +-
drivers/macintosh/windfarm_mpu.h | 2 +
drivers/macintosh/windfarm_pm112.c | 4 +-
drivers/macintosh/windfarm_pm121.c | 3 +-
drivers/macintosh/windfarm_pm72.c | 2 +-
drivers/macintosh/windfarm_pm81.c | 3 +-
drivers/macintosh/windfarm_pm91.c | 3 +-
drivers/macintosh/windfarm_rm31.c | 2 +-
drivers/macintosh/windfarm_smu_controls.c | 3 +-
drivers/macintosh/windfarm_smu_sat.c | 2 +-
drivers/macintosh/windfarm_smu_sensors.c | 3 +-
drivers/mailbox/arm_mhu_db.c | 2 +-
drivers/mailbox/arm_mhuv2.c | 3 +-
drivers/mailbox/imx-mailbox.c | 7 +-
drivers/mailbox/mailbox.c | 19 +-
drivers/mailbox/mtk-adsp-mailbox.c | 8 +
drivers/mailbox/omap-mailbox.c | 6 +-
drivers/mailbox/pcc.c | 2 +-
drivers/mailbox/qcom-ipcc.c | 26 +-
drivers/mailbox/tegra-hsp.c | 151 +-
drivers/md/bcache/alloc.c | 2 +-
drivers/md/bcache/bcache.h | 7 +
drivers/md/bcache/btree.c | 59 +-
drivers/md/bcache/btree.h | 2 +-
drivers/md/bcache/debug.c | 10 +-
drivers/md/bcache/journal.c | 31 +-
drivers/md/bcache/journal.h | 2 +
drivers/md/bcache/request.c | 10 +-
drivers/md/bcache/super.c | 4 +-
drivers/md/bcache/sysfs.c | 2 +-
drivers/md/bcache/writeback.c | 133 +-
drivers/md/bcache/writeback.h | 2 +-
drivers/md/dm-bufio.c | 9 +-
drivers/md/dm-cache-metadata.c | 3 +-
drivers/md/dm-cache-target.c | 9 +-
drivers/md/dm-clone-target.c | 9 +-
drivers/md/dm-core.h | 49 +-
drivers/md/dm-crypt.c | 14 +-
drivers/md/dm-delay.c | 3 +-
drivers/md/dm-flakey.c | 4 +-
drivers/md/dm-integrity.c | 2 -
drivers/md/dm-io.c | 2 +-
drivers/md/dm-linear.c | 26 +-
drivers/md/dm-log-writes.c | 18 +-
drivers/md/dm-mpath.c | 8 +-
drivers/md/dm-path-selector.h | 15 +
drivers/md/dm-ps-historical-service-time.c | 1 +
drivers/md/dm-raid.c | 11 +-
drivers/md/dm-rq.c | 2 +-
drivers/md/dm-stats.c | 11 +
drivers/md/dm-stripe.c | 15 +-
drivers/md/dm-table.c | 67 +-
drivers/md/dm-target.c | 4 +-
drivers/md/dm-thin.c | 15 +-
drivers/md/dm-verity-target.c | 1 +
drivers/md/dm-writecache.c | 7 +-
drivers/md/dm-zone.c | 10 -
drivers/md/dm-zoned-target.c | 2 +-
drivers/md/dm.c | 644 +-
drivers/md/dm.h | 6 +-
drivers/md/md-bitmap.c | 45 +-
drivers/md/md-cluster.c | 2 +-
drivers/md/md-linear.c | 16 +-
drivers/md/md-multipath.c | 15 +-
drivers/md/md.c | 252 +-
drivers/md/md.h | 64 +-
drivers/md/raid0.c | 67 +-
drivers/md/raid1.c | 97 +-
drivers/md/raid10.c | 135 +-
drivers/md/raid5-cache.c | 13 +-
drivers/md/raid5-ppl.c | 40 +-
drivers/md/raid5.c | 272 +-
drivers/md/raid5.h | 23 +-
drivers/media/cec/core/cec-adap.c | 294 +-
drivers/media/cec/core/cec-api.c | 24 +-
drivers/media/cec/core/cec-core.c | 18 +-
drivers/media/cec/core/cec-pin-priv.h | 11 +
drivers/media/cec/core/cec-pin.c | 72 +-
drivers/media/cec/core/cec-priv.h | 10 +
drivers/media/cec/platform/seco/seco-cec.c | 22 +-
drivers/media/common/saa7146/saa7146_video.c | 1 -
drivers/media/common/videobuf2/videobuf2-dma-sg.c | 3 +-
drivers/media/common/videobuf2/videobuf2-v4l2.c | 26 +-
drivers/media/i2c/Kconfig | 1 +
drivers/media/i2c/adv7180.c | 46 +
drivers/media/i2c/ccs/ccs-core.c | 43 +-
drivers/media/i2c/dw9714.c | 2 +-
drivers/media/i2c/dw9768.c | 6 -
drivers/media/i2c/dw9807-vcm.c | 2 +
drivers/media/i2c/imx412.c | 39 +-
drivers/media/i2c/max9286.c | 19 +-
drivers/media/i2c/ov5645.c | 8 +-
drivers/media/i2c/ov5648.c | 4 +-
drivers/media/i2c/ov5695.c | 2 +-
drivers/media/i2c/ov7251.c | 750 +-
drivers/media/i2c/ov7640.c | 33 +-
drivers/media/i2c/ov7670.c | 1 -
drivers/media/i2c/ov8856.c | 23 +-
drivers/media/i2c/rdacm20.c | 10 +-
drivers/media/i2c/rdacm21.c | 2 +-
drivers/media/i2c/s5k6a3.c | 4 +-
drivers/media/i2c/video-i2c.c | 61 +-
drivers/media/mc/mc-device.c | 21 +-
drivers/media/mc/mc-entity.c | 80 +-
drivers/media/pci/bt8xx/bttv-driver.c | 2 -
drivers/media/pci/cx18/cx18-ioctl.c | 2 -
drivers/media/pci/cx23885/cx23885-core.c | 6 +-
drivers/media/pci/cx25821/cx25821-alsa.c | 4 +-
drivers/media/pci/cx25821/cx25821-core.c | 2 +-
drivers/media/pci/cx88/cx88-blackbird.c | 1 -
drivers/media/pci/cx88/cx88-video.c | 1 -
drivers/media/pci/dt3155/dt3155.c | 3 -
drivers/media/pci/intel/ipu3/cio2-bridge.c | 2 +
drivers/media/pci/intel/ipu3/ipu3-cio2-main.c | 11 +-
drivers/media/pci/ivtv/ivtv-ioctl.c | 1 -
drivers/media/pci/meye/meye.c | 1 -
drivers/media/pci/saa7134/saa7134-video.c | 4 +-
drivers/media/pci/saa7164/saa7164-encoder.c | 1 -
drivers/media/pci/saa7164/saa7164-vbi.c | 1 -
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c | 3 -
drivers/media/pci/solo6x10/solo6x10-v4l2.c | 4 -
drivers/media/pci/sta2x11/sta2x11_vip.c | 4 -
drivers/media/pci/tw5864/tw5864-video.c | 1 -
drivers/media/pci/tw68/tw68-video.c | 3 -
drivers/media/pci/tw686x/tw686x-video.c | 2 -
drivers/media/platform/allegro-dvt/allegro-core.c | 5 -
drivers/media/platform/amphion/vdec.c | 84 +-
drivers/media/platform/amphion/venc.c | 59 +-
drivers/media/platform/amphion/vpu_dbg.c | 12 -
drivers/media/platform/amphion/vpu_defs.h | 2 +-
drivers/media/platform/amphion/vpu_malone.c | 4 +-
drivers/media/platform/amphion/vpu_msgs.c | 8 +
drivers/media/platform/amphion/vpu_v4l2.c | 68 +-
drivers/media/platform/amphion/vpu_v4l2.h | 3 +
drivers/media/platform/aspeed/aspeed-video.c | 4 +-
drivers/media/platform/atmel/atmel-isc-base.c | 34 +-
drivers/media/platform/atmel/atmel-isc.h | 8 +-
drivers/media/platform/atmel/atmel-sama5d2-isc.c | 58 +-
drivers/media/platform/atmel/atmel-sama7g5-isc.c | 61 +-
drivers/media/platform/atmel/microchip-csi2dc.c | 5 +
drivers/media/platform/cadence/cdns-csi2tx.c | 5 +-
drivers/media/platform/chips-media/coda-bit.c | 4 +-
drivers/media/platform/chips-media/coda-common.c | 155 +-
drivers/media/platform/chips-media/coda-jpeg.c | 24 +-
drivers/media/platform/chips-media/coda.h | 7 +
drivers/media/platform/marvell/cafe-driver.c | 1 -
.../media/platform/mediatek/jpeg/mtk_jpeg_core.c | 2 -
drivers/media/platform/mediatek/vcodec/Kconfig | 1 +
drivers/media/platform/mediatek/vcodec/Makefile | 4 +
.../platform/mediatek/vcodec/mtk_vcodec_dec.c | 75 +-
.../platform/mediatek/vcodec/mtk_vcodec_dec.h | 1 +
.../platform/mediatek/vcodec/mtk_vcodec_dec_drv.c | 15 +-
.../platform/mediatek/vcodec/mtk_vcodec_dec_pm.c | 166 +-
.../platform/mediatek/vcodec/mtk_vcodec_dec_pm.h | 6 +-
.../mediatek/vcodec/mtk_vcodec_dec_stateful.c | 19 +-
.../mediatek/vcodec/mtk_vcodec_dec_stateless.c | 276 +-
.../platform/mediatek/vcodec/mtk_vcodec_drv.h | 41 +-
.../platform/mediatek/vcodec/mtk_vcodec_enc_drv.c | 5 -
.../media/platform/mediatek/vcodec/mtk_vcodec_fw.c | 6 +
.../media/platform/mediatek/vcodec/mtk_vcodec_fw.h | 1 +
.../mediatek/vcodec/vdec/vdec_h264_req_common.c | 323 +
.../mediatek/vcodec/vdec/vdec_h264_req_common.h | 277 +
.../mediatek/vcodec/vdec/vdec_h264_req_if.c | 447 +-
.../mediatek/vcodec/vdec/vdec_h264_req_multi_if.c | 808 +
.../mediatek/vcodec/vdec/vdec_vp8_req_if.c | 437 +
.../mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c | 2030 +
.../media/platform/mediatek/vcodec/vdec_drv_if.c | 37 +-
.../media/platform/mediatek/vcodec/vdec_drv_if.h | 3 +
.../media/platform/mediatek/vcodec/vdec_ipi_msg.h | 36 +
.../platform/mediatek/vcodec/vdec_msg_queue.c | 2 +
.../platform/mediatek/vcodec/vdec_msg_queue.h | 2 +
.../media/platform/mediatek/vcodec/vdec_vpu_if.c | 53 +-
.../media/platform/mediatek/vcodec/vdec_vpu_if.h | 15 +
.../media/platform/mediatek/vcodec/venc_vpu_if.c | 2 +-
drivers/media/platform/nvidia/tegra-vde/h264.c | 19 +-
drivers/media/platform/nxp/Kconfig | 2 -
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h | 4 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c | 315 +-
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h | 6 +-
drivers/media/platform/nxp/imx-mipi-csis.c | 669 +-
drivers/media/platform/qcom/camss/camss-video.c | 4 -
drivers/media/platform/qcom/venus/core.h | 1 +
drivers/media/platform/qcom/venus/helpers.c | 85 +-
drivers/media/platform/qcom/venus/helpers.h | 1 +
drivers/media/platform/qcom/venus/hfi.c | 3 +
.../media/platform/qcom/venus/hfi_platform_v4.c | 4 +-
.../media/platform/qcom/venus/hfi_platform_v6.c | 4 +-
drivers/media/platform/qcom/venus/hfi_venus.c | 4 +-
drivers/media/platform/qcom/venus/vdec.c | 37 +-
drivers/media/platform/qcom/venus/venc.c | 6 +-
drivers/media/platform/qcom/venus/venc_ctrls.c | 8 +
.../media/platform/renesas/rcar-vin/rcar-core.c | 3 -
drivers/media/platform/renesas/rcar-vin/rcar-dma.c | 25 +
.../media/platform/renesas/rcar-vin/rcar-v4l2.c | 13 +-
drivers/media/platform/renesas/rcar_jpu.c | 2 -
drivers/media/platform/renesas/renesas-ceu.c | 8 +-
drivers/media/platform/renesas/vsp1/vsp1_drv.c | 2 -
drivers/media/platform/renesas/vsp1/vsp1_entity.c | 10 +-
drivers/media/platform/renesas/vsp1/vsp1_histo.c | 2 -
drivers/media/platform/renesas/vsp1/vsp1_rpf.c | 6 +-
drivers/media/platform/renesas/vsp1/vsp1_video.c | 16 +-
drivers/media/platform/rockchip/rga/rga.c | 6 +-
.../media/platform/rockchip/rkisp1/rkisp1-isp.c | 34 +-
.../media/platform/rockchip/rkisp1/rkisp1-regs.h | 11 -
.../media/platform/samsung/exynos-gsc/gsc-m2m.c | 5 -
drivers/media/platform/samsung/exynos4-is/common.c | 2 -
.../media/platform/samsung/exynos4-is/fimc-is.c | 6 +-
.../platform/samsung/exynos4-is/fimc-isp-video.h | 2 +-
.../media/platform/samsung/exynos4-is/fimc-lite.c | 4 -
.../media/platform/samsung/s5p-jpeg/jpeg-core.c | 2 -
.../media/platform/samsung/s5p-jpeg/jpeg-hw-s5p.c | 1 -
.../media/platform/samsung/s5p-mfc/s5p_mfc_dec.c | 2 -
.../media/platform/samsung/s5p-mfc/s5p_mfc_enc.c | 2 -
drivers/media/platform/st/sti/bdisp/bdisp-v4l2.c | 3 +-
.../platform/st/sti/c8sectpfe/c8sectpfe-common.h | 1 -
drivers/media/platform/st/sti/delta/delta-v4l2.c | 6 +-
drivers/media/platform/st/stm32/stm32-dcmi.c | 2 -
drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c | 2 -
.../media/platform/sunxi/sun4i-csi/sun4i_v4l2.c | 4 -
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c | 2 -
drivers/media/platform/ti/cal/cal-camerarx.c | 27 +
drivers/media/platform/ti/cal/cal-video.c | 4 -
drivers/media/platform/ti/cal/cal.c | 51 +-
drivers/media/platform/ti/cal/cal.h | 2 +
drivers/media/platform/ti/davinci/dm355_ccdc.c | 3 +-
drivers/media/platform/ti/davinci/dm644x_ccdc.c | 3 +-
drivers/media/platform/ti/davinci/isif.c | 3 +-
drivers/media/platform/ti/davinci/vpbe_display.c | 2 -
drivers/media/platform/ti/davinci/vpif_capture.c | 2 -
drivers/media/platform/ti/davinci/vpif_display.c | 5 +-
drivers/media/platform/ti/omap3isp/ispcsiphy.c | 3 +-
drivers/media/platform/video-mux.c | 4 +-
drivers/media/radio/Kconfig | 4 +-
drivers/media/radio/radio-maxiradio.c | 2 -
drivers/media/rc/ati_remote.c | 4 +-
drivers/media/rc/bpf-lirc.c | 8 +-
drivers/media/rc/gpio-ir-tx.c | 7 +-
drivers/media/rc/imon.c | 109 +-
drivers/media/rc/mceusb.c | 2 +-
drivers/media/rc/meson-ir-tx.c | 4 +-
drivers/media/rc/streamzap.c | 2 +-
drivers/media/rc/xbox_remote.c | 2 +-
drivers/media/usb/dvb-usb/a800.c | 18 +-
drivers/media/usb/dvb-usb/af9005.c | 19 +-
drivers/media/usb/dvb-usb/az6027.c | 45 +-
drivers/media/usb/dvb-usb/cinergyT2-core.c | 10 +-
drivers/media/usb/dvb-usb/cxusb.c | 88 +-
drivers/media/usb/dvb-usb/dib0700_devices.c | 428 +-
drivers/media/usb/dvb-usb/dibusb-mb.c | 165 +-
drivers/media/usb/dvb-usb/dibusb-mc.c | 88 +-
drivers/media/usb/dvb-usb/digitv.c | 13 +-
drivers/media/usb/dvb-usb/dtt200u.c | 56 +-
drivers/media/usb/dvb-usb/dtv5100.c | 11 +-
drivers/media/usb/dvb-usb/dw2102.c | 84 +-
drivers/media/usb/dvb-usb/gp8psk.c | 36 +-
drivers/media/usb/dvb-usb/m920x.c | 51 +-
drivers/media/usb/dvb-usb/nova-t-usb2.c | 18 +-
drivers/media/usb/dvb-usb/opera1.c | 15 +-
drivers/media/usb/dvb-usb/pctv452e.c | 22 +-
drivers/media/usb/dvb-usb/technisat-usb2.c | 11 +-
drivers/media/usb/dvb-usb/ttusb2.c | 36 +-
drivers/media/usb/dvb-usb/umt-010.c | 18 +-
drivers/media/usb/dvb-usb/vp702x.c | 23 +-
drivers/media/usb/dvb-usb/vp7045.c | 28 +-
drivers/media/usb/gspca/spca561.c | 2 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 7 +-
drivers/media/usb/stkwebcam/stk-webcam.c | 11 +-
drivers/media/usb/stkwebcam/stk-webcam.h | 2 +
drivers/media/usb/tm6000/tm6000-dvb.c | 2 +-
drivers/media/usb/tm6000/tm6000-input.c | 2 +-
drivers/media/usb/tm6000/tm6000-video.c | 2 +-
drivers/media/usb/uvc/uvc_ctrl.c | 10 +
drivers/media/usb/uvc/uvc_driver.c | 11 +-
drivers/media/usb/uvc/uvc_v4l2.c | 28 +-
drivers/media/usb/uvc/uvc_video.c | 16 +-
drivers/media/usb/uvc/uvcvideo.h | 4 +
drivers/media/v4l2-core/tuner-core.c | 4 +-
drivers/media/v4l2-core/v4l2-async.c | 33 +-
drivers/media/v4l2-core/v4l2-ctrls-core.c | 5 +-
drivers/media/v4l2-core/v4l2-ctrls-defs.c | 9 +
drivers/media/v4l2-core/v4l2-fwnode.c | 4 +
drivers/media/v4l2-core/v4l2-h264.c | 275 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 7 +
drivers/media/v4l2-core/v4l2-mem2mem.c | 9 +-
drivers/media/v4l2-core/v4l2-subdev.c | 219 +-
drivers/memory/Kconfig | 2 +-
drivers/memory/brcmstb_dpfe.c | 10 +-
drivers/memory/da8xx-ddrctl.c | 3 +-
drivers/memory/emif.c | 17 +-
drivers/memory/fsl-corenet-cf.c | 9 +-
drivers/memory/omap-gpmc.c | 43 +-
drivers/memory/renesas-rpc-if.c | 31 +-
drivers/memory/samsung/exynos5422-dmc.c | 5 +-
drivers/memory/tegra/Makefile | 2 +
drivers/memory/tegra/mc.c | 141 +-
drivers/memory/tegra/mc.h | 50 +-
drivers/memory/tegra/tegra186-emc.c | 3 +
drivers/memory/tegra/tegra186.c | 39 +
drivers/memory/tegra/tegra194.c | 9 +
drivers/memory/tegra/tegra234.c | 110 +
drivers/memory/ti-aemif.c | 4 +-
drivers/memory/ti-emif-pm.c | 6 +-
drivers/message/fusion/mptctl.c | 3 -
drivers/mfd/cros_ec_dev.c | 19 +
drivers/mfd/davinci_voicecodec.c | 6 +-
drivers/mfd/hi655x-pmic.c | 27 +-
drivers/mfd/intel-lpss-pci.c | 2 +
drivers/mfd/ipaq-micro.c | 2 +-
drivers/mfd/mt6397-core.c | 13 +
drivers/mfd/rt4831.c | 7 +-
drivers/mfd/sprd-sc27xx-spi.c | 3 +-
drivers/mfd/tc6393xb.c | 130 +-
drivers/mfd/twl-core.c | 8 +-
drivers/mfd/twl-core.h | 4 +-
drivers/mfd/twl4030-irq.c | 7 +-
drivers/mfd/twl6030-irq.c | 3 +-
drivers/misc/altera-stapl/altera.c | 56 +-
drivers/misc/bcm-vk/bcm_vk_msg.c | 29 +-
drivers/misc/cardreader/alcor_pci.c | 6 +-
drivers/misc/cardreader/rts5261.c | 115 +-
drivers/misc/cardreader/rtsx_usb.c | 1 +
drivers/misc/cxl/api.c | 1 +
drivers/misc/cxl/cxl.h | 2 +
drivers/misc/cxl/cxllib.c | 1 +
drivers/misc/cxl/flash.c | 1 +
drivers/misc/cxl/guest.c | 2 +
drivers/misc/cxl/irq.c | 1 +
drivers/misc/cxl/main.c | 1 +
drivers/misc/cxl/native.c | 1 +
drivers/misc/fastrpc.c | 18 +-
drivers/misc/habanalabs/common/Makefile | 2 +-
drivers/misc/habanalabs/common/command_buffer.c | 413 +-
.../misc/habanalabs/common/command_submission.c | 89 +-
drivers/misc/habanalabs/common/context.c | 4 +-
drivers/misc/habanalabs/common/debugfs.c | 304 +-
drivers/misc/habanalabs/common/device.c | 280 +-
drivers/misc/habanalabs/common/firmware_if.c | 86 +-
drivers/misc/habanalabs/common/habanalabs.h | 415 +-
drivers/misc/habanalabs/common/habanalabs_drv.c | 44 +-
drivers/misc/habanalabs/common/habanalabs_ioctl.c | 108 +-
drivers/misc/habanalabs/common/irq.c | 14 +-
drivers/misc/habanalabs/common/memory.c | 289 +-
drivers/misc/habanalabs/common/memory_mgr.c | 349 +
drivers/misc/habanalabs/common/mmu/mmu.c | 296 +-
drivers/misc/habanalabs/common/mmu/mmu_v1.c | 297 +-
drivers/misc/habanalabs/common/pci/pci.c | 10 +-
drivers/misc/habanalabs/gaudi/gaudi.c | 412 +-
drivers/misc/habanalabs/gaudi/gaudiP.h | 4 +-
drivers/misc/habanalabs/goya/goya.c | 363 +-
drivers/misc/habanalabs/include/common/cpucp_if.h | 70 +-
.../habanalabs/include/hw_ip/mmu/mmu_general.h | 10 +
drivers/misc/lkdtm/bugs.c | 96 +-
drivers/misc/lkdtm/cfi.c | 145 +-
drivers/misc/lkdtm/core.c | 138 +-
drivers/misc/lkdtm/fortify.c | 17 +-
drivers/misc/lkdtm/heap.c | 48 +-
drivers/misc/lkdtm/lkdtm.h | 142 +-
drivers/misc/lkdtm/perms.c | 47 +-
drivers/misc/lkdtm/powerpc.c | 11 +-
drivers/misc/lkdtm/refcount.c | 65 +-
drivers/misc/lkdtm/stackleak.c | 154 +-
drivers/misc/lkdtm/usercopy.c | 146 +-
drivers/misc/mei/hdcp/mei_hdcp.c | 2 +-
drivers/misc/mei/pxp/mei_pxp.c | 2 +-
drivers/misc/ocxl/afu_irq.c | 1 +
drivers/misc/ocxl/file.c | 2 +
drivers/misc/ocxl/link.c | 1 +
drivers/misc/pvpanic/pvpanic.c | 10 +-
drivers/misc/vmw_balloon.c | 4 +-
drivers/misc/vmw_vmci/Kconfig | 2 +-
drivers/misc/vmw_vmci/vmci_context.c | 15 +-
drivers/misc/vmw_vmci/vmci_guest.c | 4 +
drivers/misc/vmw_vmci/vmci_queue_pair.c | 12 +
drivers/mmc/core/block.c | 55 +-
drivers/mmc/core/core.c | 7 +-
drivers/mmc/core/mmc.c | 34 +-
drivers/mmc/core/mmc_ops.c | 2 +-
drivers/mmc/core/queue.c | 5 +-
drivers/mmc/core/sd.c | 7 +
drivers/mmc/host/Kconfig | 2 +-
drivers/mmc/host/atmel-mci.c | 9 +-
drivers/mmc/host/bcm2835.c | 2 +-
drivers/mmc/host/dw_mmc.c | 2 +-
drivers/mmc/host/jz4740_mmc.c | 20 +
drivers/mmc/host/meson-gx-mmc.c | 21 +-
drivers/mmc/host/meson-mx-sdhc-mmc.c | 2 +-
drivers/mmc/host/mmci.c | 6 +-
drivers/mmc/host/mmci_stm32_sdmmc.c | 88 +-
drivers/mmc/host/mtk-sd.c | 2 +-
drivers/mmc/host/mxcmmc.c | 2 +-
drivers/mmc/host/of_mmc_spi.c | 4 +
drivers/mmc/host/omap.c | 23 +-
drivers/mmc/host/pxamci.c | 2 +-
drivers/mmc/host/renesas_sdhi.h | 2 +
drivers/mmc/host/renesas_sdhi_core.c | 2 -
drivers/mmc/host/renesas_sdhi_internal_dmac.c | 76 +-
drivers/mmc/host/sdhci-brcmstb.c | 67 +-
drivers/mmc/host/sdhci-msm.c | 67 +
drivers/mmc/host/sdhci-of-arasan.c | 3 +
drivers/mmc/host/sdhci-omap.c | 9 +-
drivers/mmc/host/sdhci-pci-gli.c | 13 +
drivers/mmc/host/sdhci.c | 2 +-
drivers/mmc/host/sdhci_am654.c | 23 +-
drivers/mmc/host/sh_mmcif.c | 2 +-
drivers/mmc/host/sunxi-mmc.c | 7 +-
drivers/mmc/host/uniphier-sd.c | 2 +-
drivers/mtd/chips/cfi_cmdset_0002.c | 112 +-
drivers/mtd/devices/phram.c | 108 +-
drivers/mtd/devices/st_spi_fsm.c | 2 +
drivers/mtd/maps/Kconfig | 9 -
drivers/mtd/maps/Makefile | 1 -
drivers/mtd/maps/ixp4xx.c | 262 -
drivers/mtd/maps/pxa2xx-flash.c | 2 -
drivers/mtd/mtd_blkdevs.c | 1 -
drivers/mtd/mtdblock.c | 8 +-
drivers/mtd/mtdcore.c | 11 +-
drivers/mtd/mtdoops.c | 61 +-
drivers/mtd/mtdpart.c | 9 +
drivers/mtd/nand/Kconfig | 8 +
drivers/mtd/nand/Makefile | 1 +
drivers/mtd/nand/{raw/mtk_ecc.c => ecc-mtk.c} | 8 +-
drivers/mtd/nand/raw/Kconfig | 1 +
drivers/mtd/nand/raw/Makefile | 2 +-
drivers/mtd/nand/raw/cadence-nand-controller.c | 5 +-
drivers/mtd/nand/raw/cs553x_nand.c | 7 +-
drivers/mtd/nand/raw/davinci_nand.c | 2 +-
drivers/mtd/nand/raw/denali_pci.c | 15 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 296 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.h | 12 +-
drivers/mtd/nand/raw/intel-nand-controller.c | 2 +-
drivers/mtd/nand/raw/mpc5121_nfc.c | 3 +-
drivers/mtd/nand/raw/mtk_nand.c | 2 +-
drivers/mtd/nand/raw/nand_base.c | 9 +-
drivers/mtd/nand/raw/nand_ids.c | 6 +
drivers/mtd/nand/raw/nand_toshiba.c | 6 +-
drivers/mtd/nand/raw/omap_elm.c | 1 +
drivers/mtd/nand/raw/renesas-nand-controller.c | 51 +-
drivers/mtd/nand/raw/rockchip-nand-controller.c | 6 +-
drivers/mtd/nand/raw/tmio_nand.c | 3 +
drivers/mtd/nand/spi/Makefile | 2 +-
drivers/mtd/nand/spi/core.c | 1 +
drivers/mtd/nand/spi/gigadevice.c | 158 +-
drivers/mtd/nand/spi/xtx.c | 129 +
drivers/mtd/parsers/bcm47xxpart.c | 2 +-
drivers/mtd/spi-nor/Makefile | 1 +
drivers/mtd/spi-nor/controllers/Kconfig | 10 -
drivers/mtd/spi-nor/controllers/Makefile | 1 -
drivers/mtd/spi-nor/controllers/aspeed-smc.c | 921 -
drivers/mtd/spi-nor/core.c | 286 +-
drivers/mtd/spi-nor/core.h | 123 +-
drivers/mtd/spi-nor/debugfs.c | 249 +
drivers/mtd/spi-nor/eon.c | 3 +-
drivers/mtd/spi-nor/micron-st.c | 139 +-
drivers/mtd/spi-nor/spansion.c | 159 +-
drivers/mtd/spi-nor/winbond.c | 45 +-
drivers/mtd/spi-nor/xilinx.c | 12 +-
drivers/mtd/ubi/fastmap-wl.c | 121 +-
drivers/mtd/ubi/fastmap.c | 11 -
drivers/mtd/ubi/ubi.h | 4 +-
drivers/mtd/ubi/vmt.c | 1 -
drivers/mtd/ubi/wl.c | 33 +-
drivers/mtd/ubi/wl.h | 2 +
drivers/net/Space.c | 3 -
drivers/net/amt.c | 72 +-
drivers/net/appletalk/Kconfig | 11 -
drivers/net/appletalk/Makefile | 1 -
drivers/net/appletalk/ltpc.c | 1277 -
drivers/net/appletalk/ltpc.h | 74 -
drivers/net/bonding/bond_main.c | 31 +-
drivers/net/bonding/bond_netlink.c | 5 -
drivers/net/bonding/bond_options.c | 10 +-
drivers/net/bonding/bond_procfs.c | 15 +
drivers/net/caif/caif_virtio.c | 3 +-
drivers/net/can/Kconfig | 18 +-
drivers/net/can/Makefile | 1 +
drivers/net/can/at91_can.c | 12 +-
drivers/net/can/c_can/c_can_main.c | 19 +-
drivers/net/can/ctucanfd/Kconfig | 34 +
drivers/net/can/ctucanfd/Makefile | 10 +
drivers/net/can/ctucanfd/ctucanfd.h | 82 +
drivers/net/can/ctucanfd/ctucanfd_base.c | 1452 +
drivers/net/can/ctucanfd/ctucanfd_kframe.h | 77 +
drivers/net/can/ctucanfd/ctucanfd_kregs.h | 325 +
drivers/net/can/ctucanfd/ctucanfd_pci.c | 294 +
drivers/net/can/ctucanfd/ctucanfd_platform.c | 131 +
drivers/net/can/dev/Makefile | 2 -
drivers/net/can/dev/bittiming.c | 2 +-
drivers/net/can/dev/dev.c | 5 -
drivers/net/can/dev/rx-offload.c | 11 +-
drivers/net/can/flexcan/flexcan-core.c | 23 +-
drivers/net/can/grcan.c | 48 +-
drivers/net/can/ifi_canfd/ifi_canfd.c | 9 -
drivers/net/can/janz-ican3.c | 2 +-
drivers/net/can/led.c | 140 -
drivers/net/can/m_can/m_can.c | 46 +-
drivers/net/can/m_can/m_can.h | 4 -
drivers/net/can/m_can/m_can_pci.c | 48 +-
drivers/net/can/mscan/mpc5xxx_can.c | 2 +
drivers/net/can/mscan/mscan.c | 2 +-
drivers/net/can/pch_can.c | 2 +-
drivers/net/can/rcar/rcar_can.c | 12 +-
drivers/net/can/rcar/rcar_canfd.c | 11 +-
drivers/net/can/sja1000/Kconfig | 2 +-
drivers/net/can/sja1000/sja1000.c | 11 -
drivers/net/can/sja1000/tscan1.c | 7 +-
drivers/net/can/slcan.c | 4 +-
drivers/net/can/spi/hi311x.c | 8 -
drivers/net/can/spi/mcp251x.c | 10 -
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 25 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-rx.c | 2 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd.h | 14 +-
drivers/net/can/sun4i_can.c | 7 -
drivers/net/can/ti_hecc.c | 12 +-
drivers/net/can/usb/kvaser_usb/Makefile | 5 +
drivers/net/can/usb/mcba_usb.c | 8 -
drivers/net/can/usb/peak_usb/pcan_usb.c | 2 +-
drivers/net/can/usb/usb_8dev.c | 11 -
drivers/net/can/xilinx_can.c | 16 +-
drivers/net/dsa/Kconfig | 3 +-
drivers/net/dsa/b53/b53_common.c | 42 +-
drivers/net/dsa/b53/b53_priv.h | 24 +-
drivers/net/dsa/b53/b53_serdes.c | 74 +-
drivers/net/dsa/b53/b53_serdes.h | 9 +-
drivers/net/dsa/b53/b53_srab.c | 4 +-
drivers/net/dsa/bcm_sf2.c | 3 +
drivers/net/dsa/lantiq_gswip.c | 13 +-
drivers/net/dsa/microchip/ksz8795.c | 287 +-
drivers/net/dsa/microchip/ksz8795_reg.h | 3 -
drivers/net/dsa/microchip/ksz8795_spi.c | 35 +-
drivers/net/dsa/microchip/ksz8863_smi.c | 10 +-
drivers/net/dsa/microchip/ksz9477.c | 365 +-
drivers/net/dsa/microchip/ksz9477_i2c.c | 30 +-
drivers/net/dsa/microchip/ksz9477_reg.h | 4 -
drivers/net/dsa/microchip/ksz9477_spi.c | 30 +-
drivers/net/dsa/microchip/ksz_common.c | 621 +-
drivers/net/dsa/microchip/ksz_common.h | 89 +-
drivers/net/dsa/mt7530.c | 333 +-
drivers/net/dsa/mt7530.h | 26 +-
drivers/net/dsa/mv88e6xxx/chip.c | 79 +-
drivers/net/dsa/mv88e6xxx/serdes.c | 35 +-
drivers/net/dsa/ocelot/felix.c | 702 +-
drivers/net/dsa/ocelot/felix.h | 18 +-
drivers/net/dsa/ocelot/felix_vsc9959.c | 7 +-
drivers/net/dsa/ocelot/seville_vsc9953.c | 6 +-
drivers/net/dsa/qca8k.c | 145 +-
drivers/net/dsa/qca8k.h | 12 +-
drivers/net/dsa/realtek/rtl8365mb.c | 40 +-
drivers/net/dsa/realtek/rtl8366rb.c | 37 +-
drivers/net/dsa/sja1105/sja1105_main.c | 5 +-
drivers/net/eql.c | 3 +-
drivers/net/ethernet/3com/typhoon.c | 2 +-
drivers/net/ethernet/Kconfig | 1 +
drivers/net/ethernet/Makefile | 1 +
drivers/net/ethernet/adaptec/starfire.c | 2 +-
drivers/net/ethernet/alacritech/slic.h | 2 -
drivers/net/ethernet/alacritech/slicoss.c | 2 +-
drivers/net/ethernet/altera/altera_tse_main.c | 6 +-
drivers/net/ethernet/amazon/ena/ena_netdev.c | 4 +-
drivers/net/ethernet/amd/Kconfig | 10 -
drivers/net/ethernet/amd/Makefile | 1 -
drivers/net/ethernet/amd/amd8111e.c | 2 +-
drivers/net/ethernet/amd/au1000_eth.c | 22 +-
drivers/net/ethernet/amd/au1000_eth.h | 4 +-
drivers/net/ethernet/amd/ni65.c | 1251 -
drivers/net/ethernet/amd/ni65.h | 121 -
drivers/net/ethernet/amd/pcnet32.c | 3 +-
drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 2 +-
drivers/net/ethernet/amd/xgbe/xgbe.h | 3 +-
drivers/net/ethernet/apple/bmac.c | 1 -
drivers/net/ethernet/apple/mace.c | 1 -
drivers/net/ethernet/aquantia/atlantic/aq_cfg.h | 3 +-
.../net/ethernet/aquantia/atlantic/aq_ethtool.c | 9 +
drivers/net/ethernet/aquantia/atlantic/aq_main.c | 87 +
drivers/net/ethernet/aquantia/atlantic/aq_main.h | 2 +
drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 136 +
drivers/net/ethernet/aquantia/atlantic/aq_nic.h | 5 +
.../net/ethernet/aquantia/atlantic/aq_pci_func.c | 4 +-
drivers/net/ethernet/aquantia/atlantic/aq_ptp.c | 2 +-
drivers/net/ethernet/aquantia/atlantic/aq_ring.c | 429 +-
drivers/net/ethernet/aquantia/atlantic/aq_ring.h | 21 +-
drivers/net/ethernet/aquantia/atlantic/aq_vec.c | 25 +-
drivers/net/ethernet/aquantia/atlantic/aq_vec.h | 6 +
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c | 6 +-
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 17 +-
drivers/net/ethernet/arc/emac_main.c | 3 +-
drivers/net/ethernet/atheros/ag71xx.c | 3 +-
drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 2 +-
drivers/net/ethernet/broadcom/Makefile | 5 +
drivers/net/ethernet/broadcom/bcm4908_enet.c | 2 +-
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 4 +-
drivers/net/ethernet/broadcom/bcmsysport.c | 14 +-
drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c | 1 +
drivers/net/ethernet/broadcom/bgmac.c | 2 +-
drivers/net/ethernet/broadcom/bgmac.h | 2 -
drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h | 10 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 326 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 18 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 86 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 415 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 95 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h | 2 +
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 12 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h | 12 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 191 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.h | 16 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 7 +-
drivers/net/ethernet/broadcom/sb1250-mac.c | 9 +-
drivers/net/ethernet/brocade/bna/bnad.c | 3 +-
drivers/net/ethernet/cadence/macb.h | 6 +-
drivers/net/ethernet/cadence/macb_main.c | 355 +-
drivers/net/ethernet/cadence/macb_ptp.c | 4 +-
drivers/net/ethernet/calxeda/xgmac.c | 2 +-
drivers/net/ethernet/cavium/liquidio/lio_main.c | 2 +-
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 2 +-
drivers/net/ethernet/cavium/thunder/nic_main.c | 16 +-
drivers/net/ethernet/cavium/thunder/nicvf_main.c | 3 -
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 10 +-
.../chelsio/inline_crypto/ch_ktls/chcr_ktls.c | 2 +-
.../ethernet/chelsio/inline_crypto/chtls/chtls.h | 2 +-
.../chelsio/inline_crypto/chtls/chtls_io.c | 22 +-
drivers/net/ethernet/cirrus/cs89x0.c | 2 +-
drivers/net/ethernet/cortina/gemini.c | 4 +-
drivers/net/ethernet/dec/tulip/Kconfig | 15 -
drivers/net/ethernet/dec/tulip/Makefile | 1 -
drivers/net/ethernet/dec/tulip/de4x5.c | 5591 -
drivers/net/ethernet/dec/tulip/de4x5.h | 1017 -
drivers/net/ethernet/dec/tulip/eeprom.c | 7 +-
drivers/net/ethernet/dec/tulip/tulip_core.c | 61 +-
drivers/net/ethernet/dec/tulip/winbond-840.c | 2 -
drivers/net/ethernet/emulex/benet/be.h | 3 +-
drivers/net/ethernet/emulex/benet/be_main.c | 4 +-
drivers/net/ethernet/engleder/tsnep_hw.h | 9 +-
drivers/net/ethernet/engleder/tsnep_main.c | 36 +-
drivers/net/ethernet/engleder/tsnep_ptp.c | 28 +
drivers/net/ethernet/ezchip/nps_enet.c | 4 +-
drivers/net/ethernet/faraday/ftgmac100.c | 5 +
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 31 +-
drivers/net/ethernet/freescale/dpaa/dpaa_eth.h | 31 +-
.../net/ethernet/freescale/dpaa/dpaa_eth_sysfs.c | 32 +-
.../net/ethernet/freescale/dpaa/dpaa_eth_trace.h | 32 +-
drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c | 32 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 12 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c | 3 -
drivers/net/ethernet/freescale/enetc/enetc.c | 13 +-
drivers/net/ethernet/freescale/enetc/enetc.h | 2 +
.../net/ethernet/freescale/enetc/enetc_ethtool.c | 2 +
drivers/net/ethernet/freescale/enetc/enetc_hw.h | 1 +
.../net/ethernet/freescale/enetc/enetc_pci_mdio.c | 4 +-
drivers/net/ethernet/freescale/enetc/enetc_pf.c | 30 +-
drivers/net/ethernet/freescale/enetc/enetc_qos.c | 6 +
drivers/net/ethernet/freescale/fec_main.c | 20 +-
drivers/net/ethernet/freescale/fec_mpc52xx.c | 2 +
drivers/net/ethernet/freescale/fec_mpc52xx_phy.c | 1 +
.../net/ethernet/freescale/fs_enet/fs_enet-main.c | 3 +-
drivers/net/ethernet/freescale/gianfar.c | 6 +-
drivers/net/ethernet/freescale/gianfar.h | 3 -
.../net/ethernet/fungible/funeth/funeth_devlink.c | 8 +-
drivers/net/ethernet/fungible/funeth/funeth_main.c | 3 +-
drivers/net/ethernet/hisilicon/hisi_femac.c | 3 +-
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 4 +-
drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h | 73 +-
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 4 +
.../hisilicon/hns3/hns3_common/hclge_comm_cmd.c | 2 +
.../hisilicon/hns3/hns3_common/hclge_comm_cmd.h | 1 +
.../hisilicon/hns3/hns3_common/hclge_comm_rss.h | 2 +-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 5 +-
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 144 +-
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.h | 6 +
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c | 2 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 30 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 6 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 195 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_trace.h | 2 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 62 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 2 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c | 88 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h | 2 +-
drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c | 2 +
drivers/net/ethernet/huawei/hinic/hinic_hw_wq.c | 9 +-
drivers/net/ethernet/huawei/hinic/hinic_rx.c | 3 +-
drivers/net/ethernet/huawei/hinic/hinic_tx.c | 3 +-
drivers/net/ethernet/ibm/ehea/ehea.h | 1 +
drivers/net/ethernet/ibm/ehea/ehea_main.c | 2 +
drivers/net/ethernet/ibm/emac/mal.c | 4 +-
drivers/net/ethernet/ibm/ibmveth.c | 2 +-
drivers/net/ethernet/ibm/ibmvnic.c | 311 +-
drivers/net/ethernet/ibm/ibmvnic.h | 54 +-
drivers/net/ethernet/intel/e100.c | 2 +-
drivers/net/ethernet/intel/i40e/i40e.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_common.c | 1 +
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 5 +-
drivers/net/ethernet/intel/i40e/i40e_devids.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 2 +
drivers/net/ethernet/intel/i40e/i40e_main.c | 52 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 49 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_txrx_common.h | 1 +
drivers/net/ethernet/intel/i40e/i40e_xsk.c | 39 +-
drivers/net/ethernet/intel/ice/ice.h | 16 +
drivers/net/ethernet/intel/ice/ice_adminq_cmd.h | 58 +-
drivers/net/ethernet/intel/ice/ice_devlink.c | 27 +-
drivers/net/ethernet/intel/ice/ice_ethtool.c | 77 +-
drivers/net/ethernet/intel/ice/ice_gnss.c | 3 +-
drivers/net/ethernet/intel/ice/ice_idc.c | 40 +-
drivers/net/ethernet/intel/ice/ice_lib.c | 16 +-
drivers/net/ethernet/intel/ice/ice_main.c | 31 +-
drivers/net/ethernet/intel/ice/ice_ptp.c | 29 +-
drivers/net/ethernet/intel/ice/ice_repr.c | 8 +-
drivers/net/ethernet/intel/ice/ice_sriov.c | 32 +-
drivers/net/ethernet/intel/ice/ice_switch.c | 678 +-
drivers/net/ethernet/intel/ice/ice_switch.h | 15 +-
drivers/net/ethernet/intel/ice/ice_tc_lib.c | 1 -
drivers/net/ethernet/intel/ice/ice_txrx.c | 29 +-
drivers/net/ethernet/intel/ice/ice_txrx.h | 12 +-
drivers/net/ethernet/intel/ice/ice_vf_lib.c | 43 +-
drivers/net/ethernet/intel/ice/ice_vf_lib.h | 4 +-
drivers/net/ethernet/intel/ice/ice_virtchnl.c | 95 +-
drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c | 9 +-
drivers/net/ethernet/intel/ice/ice_xsk.c | 53 +-
drivers/net/ethernet/intel/igb/igb_ethtool.c | 4 +-
drivers/net/ethernet/intel/igb/igb_main.c | 3 +-
drivers/net/ethernet/intel/igc/igc.h | 1 -
drivers/net/ethernet/intel/igc/igc_base.c | 2 -
drivers/net/ethernet/intel/igc/igc_hw.h | 7 -
drivers/net/ethernet/intel/igc/igc_main.c | 50 -
drivers/net/ethernet/intel/igc/igc_phy.c | 16 +-
drivers/net/ethernet/intel/igc/igc_phy.h | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c | 9 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.h | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 107 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 8 +-
.../net/ethernet/intel/ixgbe/ixgbe_txrx_common.h | 1 +
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 53 +-
drivers/net/ethernet/intel/ixgbevf/ipsec.c | 6 +-
drivers/net/ethernet/intel/ixgbevf/ipsec.h | 2 +-
drivers/net/ethernet/jme.c | 2 +-
drivers/net/ethernet/jme.h | 2 -
drivers/net/ethernet/lantiq_etop.c | 8 +-
drivers/net/ethernet/lantiq_xrx200.c | 4 +-
drivers/net/ethernet/marvell/Kconfig | 2 +
drivers/net/ethernet/marvell/Makefile | 1 +
drivers/net/ethernet/marvell/mv643xx_eth.c | 2 +-
drivers/net/ethernet/marvell/mvneta.c | 22 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 4 +-
drivers/net/ethernet/marvell/octeon_ep/Kconfig | 20 +
drivers/net/ethernet/marvell/octeon_ep/Makefile | 9 +
.../net/ethernet/marvell/octeon_ep/octep_cn9k_pf.c | 737 +
.../net/ethernet/marvell/octeon_ep/octep_config.h | 204 +
.../ethernet/marvell/octeon_ep/octep_ctrl_mbox.c | 245 +
.../ethernet/marvell/octeon_ep/octep_ctrl_mbox.h | 170 +
.../ethernet/marvell/octeon_ep/octep_ctrl_net.c | 194 +
.../ethernet/marvell/octeon_ep/octep_ctrl_net.h | 299 +
.../net/ethernet/marvell/octeon_ep/octep_ethtool.c | 463 +
.../net/ethernet/marvell/octeon_ep/octep_main.c | 1181 +
.../net/ethernet/marvell/octeon_ep/octep_main.h | 357 +
.../marvell/octeon_ep/octep_regs_cn9k_pf.h | 367 +
drivers/net/ethernet/marvell/octeon_ep/octep_rx.c | 507 +
drivers/net/ethernet/marvell/octeon_ep/octep_rx.h | 199 +
drivers/net/ethernet/marvell/octeon_ep/octep_tx.c | 334 +
drivers/net/ethernet/marvell/octeon_ep/octep_tx.h | 284 +
drivers/net/ethernet/marvell/octeontx2/Kconfig | 1 +
.../net/ethernet/marvell/octeontx2/af/rvu_cpt.c | 2 +-
.../ethernet/marvell/octeontx2/af/rvu_debugfs.c | 4 +-
.../ethernet/marvell/octeontx2/nic/otx2_common.c | 5 -
.../ethernet/marvell/octeontx2/nic/otx2_common.h | 10 +
.../ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 45 +-
.../ethernet/marvell/octeontx2/nic/otx2_flows.c | 4 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 31 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_txrx.c | 23 +
.../net/ethernet/marvell/octeontx2/nic/otx2_txrx.h | 1 +
.../net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 2 +-
.../net/ethernet/marvell/prestera/prestera_acl.c | 42 +-
.../net/ethernet/marvell/prestera/prestera_acl.h | 12 +
.../ethernet/marvell/prestera/prestera_flower.c | 28 +
.../net/ethernet/marvell/prestera/prestera_hw.c | 81 +
.../net/ethernet/marvell/prestera/prestera_hw.h | 13 +
.../ethernet/marvell/prestera/prestera_router.c | 11 +-
.../net/ethernet/marvell/prestera/prestera_rxtx.c | 2 +-
drivers/net/ethernet/marvell/pxa168_eth.c | 3 +-
drivers/net/ethernet/marvell/skge.c | 3 +-
drivers/net/ethernet/marvell/sky2.c | 3 +-
drivers/net/ethernet/mediatek/Kconfig | 4 +
drivers/net/ethernet/mediatek/Makefile | 10 +
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 1086 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 360 +-
drivers/net/ethernet/mediatek/mtk_ppe.c | 371 +-
drivers/net/ethernet/mediatek/mtk_ppe.h | 89 +-
drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c | 1 -
drivers/net/ethernet/mediatek/mtk_ppe_offload.c | 191 +-
drivers/net/ethernet/mediatek/mtk_sgmii.c | 175 +-
drivers/net/ethernet/mediatek/mtk_star_emac.c | 3 +-
drivers/net/ethernet/mediatek/mtk_wed.c | 880 +
drivers/net/ethernet/mediatek/mtk_wed.h | 135 +
drivers/net/ethernet/mediatek/mtk_wed_debugfs.c | 175 +
drivers/net/ethernet/mediatek/mtk_wed_ops.c | 8 +
drivers/net/ethernet/mediatek/mtk_wed_regs.h | 251 +
drivers/net/ethernet/mellanox/mlx4/cmd.c | 23 +-
drivers/net/ethernet/mellanox/mlx4/en_cq.c | 3 +-
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 3 +
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 47 +-
drivers/net/ethernet/mellanox/mlx5/core/Kconfig | 58 +-
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 16 +-
.../net/ethernet/mellanox/mlx5/core/accel/accel.h | 36 -
.../net/ethernet/mellanox/mlx5/core/accel/ipsec.c | 179 -
.../net/ethernet/mellanox/mlx5/core/accel/ipsec.h | 96 -
.../mellanox/mlx5/core/accel/ipsec_offload.c | 385 -
.../mellanox/mlx5/core/accel/ipsec_offload.h | 38 -
.../net/ethernet/mellanox/mlx5/core/accel/tls.c | 125 -
.../net/ethernet/mellanox/mlx5/core/accel/tls.h | 156 -
drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 6 -
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/debugfs.c | 2 +
drivers/net/ethernet/mellanox/mlx5/core/dev.c | 55 +-
drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 24 +-
.../mellanox/mlx5/core/diag/fs_tracepoint.c | 3 +
.../ethernet/mellanox/mlx5/core/diag/fw_tracer.c | 7 +-
.../ethernet/mellanox/mlx5/core/diag/rsc_dump.c | 31 +-
drivers/net/ethernet/mellanox/mlx5/core/en.h | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/en/dcbnl.h | 2 -
drivers/net/ethernet/mellanox/mlx5/core/en/fs.h | 3 +-
.../net/ethernet/mellanox/mlx5/core/en/params.c | 19 +-
.../ethernet/mellanox/mlx5/core/en/port_buffer.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 1 +
.../ethernet/mellanox/mlx5/core/en/reporter_rx.c | 6 +
.../ethernet/mellanox/mlx5/core/en/tc/act/act.c | 3 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/act/ct.c | 34 +-
.../ethernet/mellanox/mlx5/core/en/tc/act/mirred.c | 14 +
.../ethernet/mellanox/mlx5/core/en/tc/ct_fs_smfs.c | 60 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/sample.c | 1 +
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c | 96 +-
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.h | 11 +
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 3 +-
drivers/net/ethernet/mellanox/mlx5/core/en/trap.c | 14 +-
.../net/ethernet/mellanox/mlx5/core/en/xsk/pool.c | 1 +
.../net/ethernet/mellanox/mlx5/core/en/xsk/rx.c | 6 -
.../net/ethernet/mellanox/mlx5/core/en/xsk/rx.h | 1 -
.../net/ethernet/mellanox/mlx5/core/en/xsk/setup.c | 5 +-
.../net/ethernet/mellanox/mlx5/core/en/xsk/tx.c | 2 +-
.../mellanox/mlx5/core/en_accel/en_accel.h | 11 +-
.../ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c | 2 +-
.../ethernet/mellanox/mlx5/core/en_accel/ipsec.c | 204 +-
.../ethernet/mellanox/mlx5/core/en_accel/ipsec.h | 110 +-
.../mellanox/mlx5/core/en_accel/ipsec_fs.c | 365 +-
.../mellanox/mlx5/core/en_accel/ipsec_fs.h | 11 +-
.../mellanox/mlx5/core/en_accel/ipsec_offload.c | 205 +
.../mellanox/mlx5/core/en_accel/ipsec_rxtx.c | 249 +-
.../mellanox/mlx5/core/en_accel/ipsec_rxtx.h | 3 -
.../mellanox/mlx5/core/en_accel/ipsec_stats.c | 65 +-
.../ethernet/mellanox/mlx5/core/en_accel/ktls.c | 71 +-
.../ethernet/mellanox/mlx5/core/en_accel/ktls.h | 86 +-
.../ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c | 2 +-
.../core/en_accel/{tls_stats.c => ktls_stats.c} | 51 +-
.../ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c | 20 +-
.../mellanox/mlx5/core/en_accel/ktls_txrx.h | 28 +-
.../mellanox/mlx5/core/en_accel/ktls_utils.h | 1 -
.../net/ethernet/mellanox/mlx5/core/en_accel/tls.c | 247 -
.../net/ethernet/mellanox/mlx5/core/en_accel/tls.h | 132 -
.../mellanox/mlx5/core/en_accel/tls_rxtx.c | 390 -
.../mellanox/mlx5/core/en_accel/tls_rxtx.h | 91 -
drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c | 19 +-
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 91 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 67 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 79 +-
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 9 +-
drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 1 -
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 77 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h | 7 +
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 105 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 28 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 8 -
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 14 +-
.../net/ethernet/mellanox/mlx5/core/fpga/core.h | 3 -
.../net/ethernet/mellanox/mlx5/core/fpga/ipsec.c | 1582 -
.../net/ethernet/mellanox/mlx5/core/fpga/ipsec.h | 62 -
drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c | 622 -
drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.h | 74 -
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 20 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 229 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/fw.c | 3 +-
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 87 +-
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.h | 1 +
.../ethernet/mellanox/mlx5/core/ipoib/ethtool.c | 14 +-
.../net/ethernet/mellanox/mlx5/core/lag/debugfs.c | 174 +
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 683 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 65 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c | 42 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/mp.h | 7 +-
.../net/ethernet/mellanox/mlx5/core/lag/mpesw.c | 101 +
.../net/ethernet/mellanox/mlx5/core/lag/mpesw.h | 26 +
.../net/ethernet/mellanox/mlx5/core/lag/port_sel.c | 131 +-
.../net/ethernet/mellanox/mlx5/core/lag/port_sel.h | 15 +-
.../net/ethernet/mellanox/mlx5/core/lib/devcom.c | 16 +-
.../net/ethernet/mellanox/mlx5/core/lib/devcom.h | 2 +
.../net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c | 2 +
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c | 1 +
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.h | 1 +
drivers/net/ethernet/mellanox/mlx5/core/main.c | 86 +-
.../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c | 8 +-
drivers/net/ethernet/mellanox/mlx5/core/sriov.c | 65 +-
.../mellanox/mlx5/core/steering/dr_action.c | 71 +-
.../ethernet/mellanox/mlx5/core/steering/dr_cmd.c | 21 +-
.../ethernet/mellanox/mlx5/core/steering/dr_fw.c | 4 +-
.../mellanox/mlx5/core/steering/dr_ste_v0.c | 4 +-
.../mellanox/mlx5/core/steering/dr_types.h | 3 +-
.../ethernet/mellanox/mlx5/core/steering/fs_dr.c | 13 +-
.../ethernet/mellanox/mlx5/core/steering/mlx5dr.h | 3 +-
drivers/net/ethernet/mellanox/mlx5/core/vport.c | 52 +-
.../net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h | 3 -
.../mellanox/mlxbf_gige/mlxbf_gige_ethtool.c | 8 +-
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_intr.c | 9 -
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c | 2 +-
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c | 6 +-
drivers/net/ethernet/mellanox/mlxsw/Makefile | 3 +-
drivers/net/ethernet/mellanox/mlxsw/core.c | 58 +-
drivers/net/ethernet/mellanox/mlxsw/core.h | 79 +-
drivers/net/ethernet/mellanox/mlxsw/core_env.c | 681 +-
drivers/net/ethernet/mellanox/mlxsw/core_env.h | 47 +-
drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c | 311 +-
.../net/ethernet/mellanox/mlxsw/core_linecards.c | 1142 +
drivers/net/ethernet/mellanox/mlxsw/core_thermal.c | 250 +-
drivers/net/ethernet/mellanox/mlxsw/minimal.c | 39 +-
drivers/net/ethernet/mellanox/mlxsw/reg.h | 465 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 348 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 27 +-
.../ethernet/mellanox/mlxsw/spectrum_acl_tcam.c | 5 +-
.../net/ethernet/mellanox/mlxsw/spectrum_buffers.c | 26 +
drivers/net/ethernet/mellanox/mlxsw/spectrum_dcb.c | 13 -
.../net/ethernet/mellanox/mlxsw/spectrum_ethtool.c | 35 +-
.../net/ethernet/mellanox/mlxsw/spectrum_ipip.c | 11 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.c | 201 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.h | 2 +
.../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 31 +-
.../net/ethernet/mellanox/mlxsw/spectrum_trap.c | 2 +-
drivers/net/ethernet/mellanox/mlxsw/trap.h | 6 +
drivers/net/ethernet/microchip/lan743x_main.c | 38 +-
drivers/net/ethernet/microchip/lan966x/Makefile | 2 +-
.../net/ethernet/microchip/lan966x/lan966x_fdma.c | 842 +
.../net/ethernet/microchip/lan966x/lan966x_main.c | 121 +-
.../net/ethernet/microchip/lan966x/lan966x_main.h | 121 +
.../net/ethernet/microchip/lan966x/lan966x_port.c | 3 +
.../net/ethernet/microchip/lan966x/lan966x_ptp.c | 276 +-
.../net/ethernet/microchip/lan966x/lan966x_regs.h | 146 +
.../net/ethernet/microchip/sparx5/sparx5_fdma.c | 3 +-
.../net/ethernet/microchip/sparx5/sparx5_port.c | 2 +-
.../ethernet/microchip/sparx5/sparx5_switchdev.c | 12 +
drivers/net/ethernet/microsoft/mana/mana_en.c | 4 +-
drivers/net/ethernet/moxa/moxart_ether.c | 2 +-
drivers/net/ethernet/mscc/ocelot.c | 255 +-
drivers/net/ethernet/mscc/ocelot.h | 1 -
drivers/net/ethernet/mscc/ocelot_fdma.c | 4 +-
drivers/net/ethernet/mscc/ocelot_flower.c | 25 +-
drivers/net/ethernet/mscc/ocelot_net.c | 79 +-
drivers/net/ethernet/mscc/ocelot_police.c | 26 +-
drivers/net/ethernet/mscc/ocelot_police.h | 2 +-
drivers/net/ethernet/mscc/ocelot_vcap.c | 51 +-
drivers/net/ethernet/mscc/ocelot_vsc7514.c | 2 +-
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 6 +-
drivers/net/ethernet/natsemi/natsemi.c | 2 -
drivers/net/ethernet/neterion/vxge/vxge-main.c | 13 +-
drivers/net/ethernet/neterion/vxge/vxge-main.h | 2 -
drivers/net/ethernet/netronome/nfp/crypto/tls.c | 2 +-
drivers/net/ethernet/netronome/nfp/flower/action.c | 3 +-
.../net/ethernet/netronome/nfp/flower/conntrack.c | 300 +-
.../net/ethernet/netronome/nfp/flower/lag_conf.c | 2 +-
drivers/net/ethernet/netronome/nfp/flower/main.h | 110 +-
drivers/net/ethernet/netronome/nfp/flower/match.c | 67 +-
.../net/ethernet/netronome/nfp/flower/metadata.c | 19 +-
.../net/ethernet/netronome/nfp/flower/offload.c | 86 +-
.../ethernet/netronome/nfp/flower/tunnel_conf.c | 515 +-
drivers/net/ethernet/netronome/nfp/nfdk/dp.c | 12 +-
drivers/net/ethernet/netronome/nfp/nfdk/nfdk.h | 3 +-
drivers/net/ethernet/netronome/nfp/nfp_main.c | 38 +-
drivers/net/ethernet/netronome/nfp/nfp_net.h | 11 +-
.../net/ethernet/netronome/nfp/nfp_net_common.c | 13 +-
.../net/ethernet/netronome/nfp/nfp_net_ethtool.c | 4 +-
drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 5 +-
drivers/net/ethernet/netronome/nfp/nfp_net_sriov.c | 111 +-
drivers/net/ethernet/netronome/nfp/nfp_net_sriov.h | 12 +
.../net/ethernet/netronome/nfp/nfp_netvf_main.c | 12 +-
.../ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c | 18 +-
.../net/ethernet/netronome/nfp/nfpcore/nfp_cpp.h | 26 +-
.../net/ethernet/netronome/nfp/nfpcore/nfp_dev.h | 8 +
drivers/net/ethernet/nvidia/forcedeth.c | 6 +-
drivers/net/ethernet/nxp/lpc_eth.c | 2 +-
.../net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 12 +-
.../net/ethernet/pensando/ionic/ionic_bus_pci.c | 3 +-
drivers/net/ethernet/qlogic/qed/Makefile | 3 +-
drivers/net/ethernet/qlogic/qed/qed_dbg_hsi.h | 2 +-
drivers/net/ethernet/qlogic/qed/qed_main.c | 1 -
.../ethernet/qlogic/qed/qed_nvmetcp_ip_services.c | 238 -
drivers/net/ethernet/qlogic/qed/qed_rdma.c | 45 +-
drivers/net/ethernet/qlogic/qed/qed_roce.c | 2 +-
drivers/net/ethernet/qlogic/qed/qed_vf.h | 2 +-
drivers/net/ethernet/qlogic/qede/qede_main.c | 1 -
drivers/net/ethernet/qlogic/qede/qede_ptp.c | 10 +-
drivers/net/ethernet/qlogic/qla3xxx.c | 3 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 9 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 3 +-
drivers/net/ethernet/realtek/8139cp.c | 2 +-
drivers/net/ethernet/realtek/atp.h | 4 -
drivers/net/ethernet/realtek/r8169_main.c | 8 +-
drivers/net/ethernet/renesas/ravb.h | 6 +
drivers/net/ethernet/renesas/ravb_main.c | 109 +-
drivers/net/ethernet/renesas/ravb_ptp.c | 6 +-
drivers/net/ethernet/rocker/rocker_main.c | 3 +-
drivers/net/ethernet/sfc/Kconfig | 15 +-
drivers/net/ethernet/sfc/Makefile | 5 +-
drivers/net/ethernet/sfc/ef10.c | 7 +-
drivers/net/ethernet/sfc/ef100.c | 27 +-
drivers/net/ethernet/sfc/ef100_nic.c | 18 +-
drivers/net/ethernet/sfc/ef100_sriov.c | 56 +
drivers/net/ethernet/sfc/ef100_sriov.h | 14 +
drivers/net/ethernet/sfc/efx.c | 19 +-
drivers/net/ethernet/sfc/efx.h | 1 -
drivers/net/ethernet/sfc/efx_channels.c | 72 +-
drivers/net/ethernet/sfc/efx_channels.h | 3 -
drivers/net/ethernet/sfc/efx_common.c | 4 +-
drivers/net/ethernet/sfc/falcon/efx.c | 10 +-
drivers/net/ethernet/sfc/falcon/rx.c | 4 +-
drivers/net/ethernet/sfc/falcon/tx.c | 3 +-
drivers/net/ethernet/sfc/mcdi_pcol.h | 4 +-
drivers/net/ethernet/sfc/net_driver.h | 7 +-
drivers/net/ethernet/sfc/nic.h | 4 -
drivers/net/ethernet/sfc/ptp.c | 14 +-
drivers/net/ethernet/sfc/ptp.h | 1 +
drivers/net/ethernet/sfc/siena/Kconfig | 46 +
drivers/net/ethernet/sfc/siena/Makefile | 11 +
drivers/net/ethernet/sfc/siena/bitfield.h | 614 +
drivers/net/ethernet/sfc/siena/efx.c | 1325 +
drivers/net/ethernet/sfc/siena/efx.h | 218 +
drivers/net/ethernet/sfc/siena/efx_channels.c | 1368 +
drivers/net/ethernet/sfc/siena/efx_channels.h | 45 +
drivers/net/ethernet/sfc/siena/efx_common.c | 1408 +
drivers/net/ethernet/sfc/siena/efx_common.h | 118 +
drivers/net/ethernet/sfc/siena/enum.h | 176 +
drivers/net/ethernet/sfc/siena/ethtool.c | 282 +
drivers/net/ethernet/sfc/siena/ethtool_common.c | 1340 +
drivers/net/ethernet/sfc/siena/ethtool_common.h | 60 +
drivers/net/ethernet/sfc/{ => siena}/farch.c | 77 +-
drivers/net/ethernet/sfc/siena/farch_regs.h | 2929 +
drivers/net/ethernet/sfc/siena/filter.h | 309 +
drivers/net/ethernet/sfc/siena/io.h | 310 +
drivers/net/ethernet/sfc/siena/mcdi.c | 2260 +
drivers/net/ethernet/sfc/siena/mcdi.h | 386 +
drivers/net/ethernet/sfc/siena/mcdi_mon.c | 531 +
drivers/net/ethernet/sfc/siena/mcdi_pcol.h | 17204 ++
drivers/net/ethernet/sfc/siena/mcdi_port.c | 110 +
drivers/net/ethernet/sfc/siena/mcdi_port.h | 17 +
drivers/net/ethernet/sfc/siena/mcdi_port_common.c | 1282 +
drivers/net/ethernet/sfc/siena/mcdi_port_common.h | 58 +
drivers/net/ethernet/sfc/siena/mtd.c | 124 +
drivers/net/ethernet/sfc/siena/net_driver.h | 1715 +
drivers/net/ethernet/sfc/siena/nic.c | 530 +
drivers/net/ethernet/sfc/siena/nic.h | 206 +
drivers/net/ethernet/sfc/siena/nic_common.h | 251 +
drivers/net/ethernet/sfc/siena/ptp.c | 2201 +
drivers/net/ethernet/sfc/siena/ptp.h | 45 +
drivers/net/ethernet/sfc/siena/rx.c | 400 +
drivers/net/ethernet/sfc/siena/rx_common.c | 1094 +
drivers/net/ethernet/sfc/siena/rx_common.h | 110 +
drivers/net/ethernet/sfc/siena/selftest.c | 807 +
drivers/net/ethernet/sfc/siena/selftest.h | 52 +
drivers/net/ethernet/sfc/{ => siena}/siena.c | 168 +-
drivers/net/ethernet/sfc/{ => siena}/siena_sriov.c | 35 +-
drivers/net/ethernet/sfc/{ => siena}/siena_sriov.h | 9 +-
drivers/net/ethernet/sfc/siena/sriov.h | 83 +
drivers/net/ethernet/sfc/siena/tx.c | 392 +
drivers/net/ethernet/sfc/siena/tx.h | 40 +
drivers/net/ethernet/sfc/siena/tx_common.c | 448 +
drivers/net/ethernet/sfc/siena/tx_common.h | 39 +
drivers/net/ethernet/sfc/siena/vfdi.h | 252 +
drivers/net/ethernet/sfc/siena/workarounds.h | 28 +
drivers/net/ethernet/sfc/tx.c | 3 +-
drivers/net/ethernet/sfc/tx_common.c | 3 +-
drivers/net/ethernet/smsc/Kconfig | 4 +-
drivers/net/ethernet/smsc/smc911x.c | 6 +-
drivers/net/ethernet/smsc/smc91x.h | 11 -
drivers/net/ethernet/smsc/smsc911x.c | 5 +-
drivers/net/ethernet/smsc/smsc9420.c | 2 +-
drivers/net/ethernet/smsc/smsc9420.h | 1 -
drivers/net/ethernet/socionext/sni_ave.c | 3 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c | 4 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 7 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 1 +
drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c | 6 -
.../net/ethernet/stmicro/stmmac/dwxgmac2_descs.c | 6 -
drivers/net/ethernet/stmicro/stmmac/enh_desc.c | 6 -
drivers/net/ethernet/stmicro/stmmac/hwif.h | 4 -
drivers/net/ethernet/stmicro/stmmac/norm_desc.c | 6 -
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 35 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 26 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c | 4 +-
.../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 13 +-
drivers/net/ethernet/sun/cassini.c | 4 +-
drivers/net/ethernet/sun/niu.c | 41 +-
drivers/net/ethernet/sun/sungem.c | 1 -
drivers/net/ethernet/sunplus/Kconfig | 32 +
drivers/net/ethernet/sunplus/Makefile | 6 +
drivers/net/ethernet/sunplus/spl2sw_define.h | 270 +
drivers/net/ethernet/sunplus/spl2sw_desc.c | 228 +
drivers/net/ethernet/sunplus/spl2sw_desc.h | 19 +
drivers/net/ethernet/sunplus/spl2sw_driver.c | 565 +
drivers/net/ethernet/sunplus/spl2sw_int.c | 273 +
drivers/net/ethernet/sunplus/spl2sw_int.h | 13 +
drivers/net/ethernet/sunplus/spl2sw_mac.c | 274 +
drivers/net/ethernet/sunplus/spl2sw_mac.h | 18 +
drivers/net/ethernet/sunplus/spl2sw_mdio.c | 131 +
drivers/net/ethernet/sunplus/spl2sw_mdio.h | 12 +
drivers/net/ethernet/sunplus/spl2sw_phy.c | 92 +
drivers/net/ethernet/sunplus/spl2sw_phy.h | 12 +
drivers/net/ethernet/sunplus/spl2sw_register.h | 86 +
drivers/net/ethernet/synopsys/dwc-xlgmac.h | 3 +-
drivers/net/ethernet/ti/Kconfig | 1 +
drivers/net/ethernet/ti/am65-cpsw-ethtool.c | 6 +-
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 45 +-
drivers/net/ethernet/ti/am65-cpsw-qos.c | 193 +-
drivers/net/ethernet/ti/am65-cpsw-qos.h | 8 +
drivers/net/ethernet/ti/cpsw.c | 45 +-
drivers/net/ethernet/ti/cpsw_ale.c | 66 +
drivers/net/ethernet/ti/cpsw_ale.h | 2 +
drivers/net/ethernet/ti/cpsw_new.c | 51 +-
drivers/net/ethernet/ti/cpsw_priv.c | 235 +-
drivers/net/ethernet/ti/cpsw_priv.h | 10 +-
drivers/net/ethernet/ti/davinci_emac.c | 12 +-
drivers/net/ethernet/ti/davinci_mdio.c | 18 +-
drivers/net/ethernet/ti/netcp_core.c | 5 +-
drivers/net/ethernet/toshiba/spider_net.c | 3 +-
drivers/net/ethernet/toshiba/spider_net.h | 1 -
drivers/net/ethernet/toshiba/tc35815.c | 2 +-
drivers/net/ethernet/via/via-velocity.c | 3 +-
drivers/net/ethernet/via/via-velocity.h | 1 -
drivers/net/ethernet/wiznet/w5100.c | 2 +-
drivers/net/ethernet/wiznet/w5300.c | 2 +-
drivers/net/ethernet/xilinx/ll_temac_main.c | 2 +-
drivers/net/ethernet/xilinx/xilinx_axienet.h | 54 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 168 +-
drivers/net/ethernet/xilinx/xilinx_emaclite.c | 85 +-
drivers/net/ethernet/xscale/ixp4xx_eth.c | 2 +-
drivers/net/ethernet/xscale/ptp_ixp46x.c | 2 +-
drivers/net/fddi/skfp/smt.c | 2 +-
drivers/net/geneve.c | 10 +-
drivers/net/hamradio/Kconfig | 34 -
drivers/net/hamradio/Makefile | 1 -
drivers/net/hamradio/dmascc.c | 1450 -
drivers/net/hyperv/hyperv_net.h | 69 +-
drivers/net/hyperv/netvsc.c | 16 +-
drivers/net/hyperv/netvsc_bpf.c | 101 +-
drivers/net/hyperv/netvsc_drv.c | 155 +-
drivers/net/hyperv/rndis_filter.c | 4 +-
drivers/net/ieee802154/Kconfig | 7 -
drivers/net/ieee802154/at86rf230.c | 163 +-
drivers/net/ieee802154/atusb.c | 37 +-
drivers/net/ieee802154/ca8210.c | 181 +-
drivers/net/ieee802154/mcr20a.c | 5 -
drivers/net/ipa/gsi.c | 26 +-
drivers/net/ipa/gsi.h | 1 -
drivers/net/ipa/gsi_reg.h | 2 +-
drivers/net/ipa/gsi_trans.c | 38 +-
drivers/net/ipa/gsi_trans.h | 24 +-
drivers/net/ipa/ipa.h | 2 +
drivers/net/ipa/ipa_cmd.c | 78 +-
drivers/net/ipa/ipa_cmd.h | 11 -
drivers/net/ipa/ipa_data-v3.1.c | 2 +
drivers/net/ipa/ipa_data-v3.5.1.c | 2 +
drivers/net/ipa/ipa_data-v4.11.c | 2 +
drivers/net/ipa/ipa_data-v4.2.c | 2 +
drivers/net/ipa/ipa_data-v4.5.c | 2 +
drivers/net/ipa/ipa_data-v4.9.c | 2 +
drivers/net/ipa/ipa_data.h | 70 +-
drivers/net/ipa/ipa_endpoint.c | 234 +-
drivers/net/ipa/ipa_endpoint.h | 85 +-
drivers/net/ipa/ipa_interrupt.c | 6 +-
drivers/net/ipa/ipa_modem.c | 13 +-
drivers/net/ipa/ipa_qmi.c | 2 +-
drivers/net/ipvlan/ipvlan_main.c | 6 +-
drivers/net/loopback.c | 2 +
drivers/net/macsec.c | 7 +
drivers/net/macvlan.c | 9 +-
drivers/net/mdio/mdio-aspeed.c | 138 +-
drivers/net/mdio/mdio-mscc-miim.c | 81 +-
drivers/net/mdio/mdio-mux-bcm6368.c | 2 +-
drivers/net/netdevsim/fib.c | 9 +-
drivers/net/netdevsim/ipsec.c | 2 +-
drivers/net/pcs/pcs-xpcs.c | 6 +-
drivers/net/phy/Kconfig | 13 +
drivers/net/phy/Makefile | 2 +
drivers/net/phy/adin.c | 40 +
drivers/net/phy/adin1100.c | 292 +
drivers/net/phy/at803x.c | 33 +-
drivers/net/phy/bcm87xx.c | 36 +-
drivers/net/phy/dp83822.c | 9 +-
drivers/net/phy/dp83867.c | 29 +
drivers/net/phy/dp83td510.c | 209 +
drivers/net/phy/fixed_phy.c | 6 +-
drivers/net/phy/marvell.c | 53 +-
drivers/net/phy/mdio_bus.c | 1 -
drivers/net/phy/micrel.c | 271 +-
drivers/net/phy/microchip.c | 10 +-
drivers/net/phy/microchip_t1.c | 50 +
drivers/net/phy/phy-c45.c | 297 +-
drivers/net/phy/phy-core.c | 3 +-
drivers/net/phy/phy.c | 25 +-
drivers/net/phy/phy_device.c | 10 +-
drivers/net/phy/phylink.c | 64 +-
drivers/net/phy/sfp.c | 12 +-
drivers/net/phy/smsc.c | 59 +-
drivers/net/ppp/pppoe.c | 4 +-
drivers/net/sungem_phy.c | 6 +-
drivers/net/tun.c | 3 +-
drivers/net/usb/aqc111.c | 2 +-
drivers/net/usb/asix_devices.c | 6 +-
drivers/net/usb/ax88179_178a.c | 2 +-
drivers/net/usb/cdc_ether.c | 3 +-
drivers/net/usb/cdc_ncm.c | 12 +-
drivers/net/usb/lan78xx.c | 10 +-
drivers/net/usb/qmi_wwan.c | 5 +-
drivers/net/usb/r8152.c | 41 +-
drivers/net/usb/rndis_host.c | 49 +-
drivers/net/usb/smsc95xx.c | 152 +-
drivers/net/usb/sr9800.h | 2 +-
drivers/net/usb/usbnet.c | 10 +-
drivers/net/veth.c | 6 +-
drivers/net/virtio_net.c | 9 +-
drivers/net/vmxnet3/vmxnet3_drv.c | 6 +
drivers/net/vxlan/vxlan_core.c | 43 +-
drivers/net/wan/Kconfig | 72 -
drivers/net/wan/Makefile | 5 -
drivers/net/wan/cosa.c | 2052 -
drivers/net/wan/cosa.h | 104 -
drivers/net/wan/fsl_ucc_hdlc.c | 2 +-
drivers/net/wan/hd64572.c | 3 +-
drivers/net/wan/hostess_sv11.c | 336 -
drivers/net/wan/ixp4xx_hss.c | 2 +-
drivers/net/wan/lapbether.c | 2 +-
drivers/net/wan/lmc/Makefile | 18 -
drivers/net/wan/lmc/lmc.h | 33 -
drivers/net/wan/lmc/lmc_debug.c | 65 -
drivers/net/wan/lmc/lmc_debug.h | 52 -
drivers/net/wan/lmc/lmc_ioctl.h | 255 -
drivers/net/wan/lmc/lmc_main.c | 2009 -
drivers/net/wan/lmc/lmc_media.c | 1206 -
drivers/net/wan/lmc/lmc_proto.c | 106 -
drivers/net/wan/lmc/lmc_proto.h | 18 -
drivers/net/wan/lmc/lmc_var.h | 468 -
drivers/net/wan/sealevel.c | 352 -
drivers/net/wan/z85230.c | 1641 -
drivers/net/wan/z85230.h | 407 -
drivers/net/wireless/Kconfig | 2 +
drivers/net/wireless/Makefile | 4 +-
drivers/net/wireless/ath/ar5523/ar5523.c | 7 +-
drivers/net/wireless/ath/ath10k/ahb.c | 9 +-
drivers/net/wireless/ath/ath10k/core.c | 38 +-
drivers/net/wireless/ath/ath10k/core.h | 3 -
drivers/net/wireless/ath/ath10k/hw.h | 2 +
drivers/net/wireless/ath/ath10k/mac.c | 106 +-
drivers/net/wireless/ath/ath10k/pci.c | 2 +-
drivers/net/wireless/ath/ath10k/sdio.c | 2 +-
drivers/net/wireless/ath/ath10k/snoc.c | 2 +-
drivers/net/wireless/ath/ath10k/usb.c | 27 +
drivers/net/wireless/ath/ath11k/Makefile | 3 +-
drivers/net/wireless/ath/ath11k/ahb.c | 331 +-
drivers/net/wireless/ath/ath11k/ahb.h | 9 +
drivers/net/wireless/ath/ath11k/ce.c | 4 +-
drivers/net/wireless/ath/ath11k/core.c | 580 +-
drivers/net/wireless/ath/ath11k/core.h | 168 +-
drivers/net/wireless/ath/ath11k/debugfs.c | 4 +
drivers/net/wireless/ath/ath11k/dp_tx.c | 8 +-
drivers/net/wireless/ath/ath11k/hal.c | 15 +-
drivers/net/wireless/ath/ath11k/hal.h | 17 +-
drivers/net/wireless/ath/ath11k/htc.c | 6 +
drivers/net/wireless/ath/ath11k/hw.c | 209 +-
drivers/net/wireless/ath/ath11k/hw.h | 45 +-
drivers/net/wireless/ath/ath11k/mac.c | 793 +-
drivers/net/wireless/ath/ath11k/mac.h | 7 +-
drivers/net/wireless/ath/ath11k/mhi.c | 285 +-
drivers/net/wireless/ath/ath11k/mhi.h | 17 +-
drivers/net/wireless/ath/ath11k/pci.c | 984 +-
drivers/net/wireless/ath/ath11k/pci.h | 28 +-
drivers/net/wireless/ath/ath11k/pcic.c | 748 +
drivers/net/wireless/ath/ath11k/pcic.h | 46 +
drivers/net/wireless/ath/ath11k/peer.c | 373 +-
drivers/net/wireless/ath/ath11k/peer.h | 10 +-
drivers/net/wireless/ath/ath11k/qmi.c | 286 +-
drivers/net/wireless/ath/ath11k/qmi.h | 28 +-
drivers/net/wireless/ath/ath11k/reg.c | 47 +-
drivers/net/wireless/ath/ath11k/reg.h | 2 +-
drivers/net/wireless/ath/ath11k/spectral.c | 17 +-
drivers/net/wireless/ath/ath11k/wmi.c | 872 +-
drivers/net/wireless/ath/ath11k/wmi.h | 448 +-
drivers/net/wireless/ath/ath11k/wow.c | 797 +
drivers/net/wireless/ath/ath11k/wow.h | 45 +
drivers/net/wireless/ath/ath6kl/Makefile | 5 +
drivers/net/wireless/ath/ath6kl/htc_mbox.c | 2 +-
drivers/net/wireless/ath/ath9k/Makefile | 5 +
drivers/net/wireless/ath/ath9k/ahb.c | 10 +-
drivers/net/wireless/ath/ath9k/ar9002_mac.c | 9 +-
drivers/net/wireless/ath/ath9k/ar9003_calib.c | 2 +-
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 85 +-
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h | 2 +
drivers/net/wireless/ath/ath9k/ar9003_mac.c | 9 +-
drivers/net/wireless/ath/ath9k/ar9003_paprd.c | 10 +-
drivers/net/wireless/ath/ath9k/ar9003_phy.c | 25 +-
drivers/net/wireless/ath/ath9k/ar9003_phy.h | 2 +-
drivers/net/wireless/ath/ath9k/debug_sta.c | 4 +-
drivers/net/wireless/ath/ath9k/hif_usb.c | 5 +-
drivers/net/wireless/ath/ath9k/htc_drv_main.c | 20 +-
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 8 +
drivers/net/wireless/ath/ath9k/mac.h | 6 +-
drivers/net/wireless/ath/ath9k/main.c | 2 +-
drivers/net/wireless/ath/ath9k/reg.h | 10 +-
drivers/net/wireless/ath/ath9k/xmit.c | 8 +-
drivers/net/wireless/ath/carl9170/Makefile | 5 +
drivers/net/wireless/ath/carl9170/main.c | 8 +-
drivers/net/wireless/ath/carl9170/tx.c | 8 +-
drivers/net/wireless/ath/wcn36xx/hal.h | 7 +-
drivers/net/wireless/ath/wcn36xx/main.c | 160 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 98 +-
drivers/net/wireless/ath/wcn36xx/smd.h | 2 +
drivers/net/wireless/ath/wcn36xx/txrx.c | 29 +
drivers/net/wireless/ath/wcn36xx/txrx.h | 1 +
drivers/net/wireless/ath/wil6210/cfg80211.c | 5 +-
drivers/net/wireless/ath/wil6210/debugfs.c | 14 -
drivers/net/wireless/ath/wil6210/netdev.c | 14 +-
drivers/net/wireless/ath/wil6210/pm.c | 5 +-
drivers/net/wireless/ath/wil6210/wil6210.h | 1 -
drivers/net/wireless/broadcom/b43/phy_n.c | 2 +-
drivers/net/wireless/broadcom/b43legacy/phy.c | 2 +-
.../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 39 +-
.../broadcom/brcm80211/brcmfmac/cfg80211.c | 3 +-
.../wireless/broadcom/brcm80211/brcmfmac/common.c | 23 +-
.../wireless/broadcom/brcm80211/brcmfmac/common.h | 1 +
.../wireless/broadcom/brcm80211/brcmfmac/core.c | 4 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/of.c | 3 +
.../broadcom/brcm80211/brcmsmac/mac80211_if.c | 2 +-
drivers/net/wireless/intel/ipw2x00/ipw2100.c | 64 +-
drivers/net/wireless/intel/ipw2x00/ipw2200.c | 119 +-
drivers/net/wireless/intel/ipw2x00/libipw_tx.c | 2 +-
drivers/net/wireless/intel/iwlegacy/3945-rs.c | 6 +-
drivers/net/wireless/intel/iwlegacy/4965-rs.c | 22 +-
drivers/net/wireless/intel/iwlegacy/common.c | 6 +-
drivers/net/wireless/intel/iwlwifi/dvm/rs.c | 22 +-
drivers/net/wireless/intel/iwlwifi/dvm/rxon.c | 2 +-
drivers/net/wireless/intel/iwlwifi/dvm/sta.c | 4 +-
drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 3 +
.../net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h | 4 +-
drivers/net/wireless/intel/iwlwifi/fw/api/debug.h | 4 +-
drivers/net/wireless/intel/iwlwifi/fw/api/filter.h | 2 +-
drivers/net/wireless/intel/iwlwifi/fw/api/scan.h | 4 +-
drivers/net/wireless/intel/iwlwifi/fw/api/sta.h | 2 +-
drivers/net/wireless/intel/iwlwifi/fw/api/tdls.h | 2 +-
drivers/net/wireless/intel/iwlwifi/fw/error-dump.h | 2 +-
drivers/net/wireless/intel/iwlwifi/fw/file.h | 10 +-
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 2 +-
drivers/net/wireless/intel/iwlwifi/iwl-prph.h | 2 +
drivers/net/wireless/intel/iwlwifi/mei/main.c | 3 +
drivers/net/wireless/intel/iwlwifi/mei/sap.h | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 24 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 15 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 32 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 55 +-
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 1 -
drivers/net/wireless/intel/iwlwifi/mvm/power.c | 3 +
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 38 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 35 +-
drivers/net/wireless/intel/iwlwifi/mvm/rx.c | 44 +-
drivers/net/wireless/intel/iwlwifi/mvm/sf.c | 8 +-
drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 33 +-
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 6 +-
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 48 +-
drivers/net/wireless/intersil/orinoco/airport.c | 1 +
drivers/net/wireless/mac80211_hwsim.c | 14 +-
drivers/net/wireless/marvell/libertas/cfg.c | 4 +-
drivers/net/wireless/marvell/libertas/host.h | 6 +-
drivers/net/wireless/marvell/mwifiex/11h.c | 2 +
drivers/net/wireless/marvell/mwifiex/sdio.c | 23 +-
drivers/net/wireless/marvell/mwifiex/sdio.h | 6 +
drivers/net/wireless/marvell/mwl8k.c | 48 +-
drivers/net/wireless/mediatek/mt76/agg-rx.c | 8 +-
drivers/net/wireless/mediatek/mt76/dma.c | 215 +-
drivers/net/wireless/mediatek/mt76/mac80211.c | 14 +-
drivers/net/wireless/mediatek/mt76/mcu.c | 8 +-
drivers/net/wireless/mediatek/mt76/mmio.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt76.h | 50 +-
drivers/net/wireless/mediatek/mt76/mt7603/beacon.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt7603/dma.c | 12 +-
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 16 +-
drivers/net/wireless/mediatek/mt76/mt7603/main.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt7615/dma.c | 10 +-
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt7615/mmio.c | 2 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.c | 90 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.h | 1 -
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 4 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 10 +-
.../net/wireless/mediatek/mt76/mt7915/debugfs.c | 205 +-
drivers/net/wireless/mediatek/mt76/mt7915/dma.c | 61 +-
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c | 2 +
drivers/net/wireless/mediatek/mt76/mt7915/init.c | 129 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 251 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.h | 2 +
drivers/net/wireless/mediatek/mt76/mt7915/main.c | 72 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 288 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 39 +-
drivers/net/wireless/mediatek/mt76/mt7915/mmio.c | 39 +-
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h | 26 +-
drivers/net/wireless/mediatek/mt76/mt7915/pci.c | 99 +-
drivers/net/wireless/mediatek/mt76/mt7915/regs.h | 61 +-
drivers/net/wireless/mediatek/mt76/mt7915/soc.c | 41 +-
drivers/net/wireless/mediatek/mt76/mt7921/dma.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt7921/init.c | 15 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 43 +-
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 155 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 122 +-
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 15 +-
drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 10 +-
drivers/net/wireless/mediatek/mt76/mt7921/regs.h | 5 +
drivers/net/wireless/mediatek/mt76/mt7921/usb.c | 62 +-
.../net/wireless/mediatek/mt76/mt7921/usb_mac.c | 7 +-
drivers/net/wireless/mediatek/mt76/tx.c | 53 +-
drivers/net/wireless/mediatek/mt76/usb.c | 2 +-
drivers/net/wireless/mediatek/mt7601u/mac.c | 2 +-
drivers/net/wireless/mediatek/mt7601u/tx.c | 4 +-
drivers/net/wireless/microchip/wilc1000/hif.h | 2 +-
drivers/net/wireless/microchip/wilc1000/mon.c | 4 +-
drivers/net/wireless/microchip/wilc1000/netdev.c | 3 +-
drivers/net/wireless/microchip/wilc1000/sdio.c | 2 +-
drivers/net/wireless/microchip/wilc1000/wlan.c | 7 +-
drivers/net/wireless/purelifi/Kconfig | 17 +
drivers/net/wireless/purelifi/Makefile | 2 +
drivers/net/wireless/purelifi/plfxlc/Kconfig | 14 +
drivers/net/wireless/purelifi/plfxlc/Makefile | 3 +
drivers/net/wireless/purelifi/plfxlc/chip.c | 98 +
drivers/net/wireless/purelifi/plfxlc/chip.h | 70 +
drivers/net/wireless/purelifi/plfxlc/firmware.c | 276 +
drivers/net/wireless/purelifi/plfxlc/intf.h | 52 +
drivers/net/wireless/purelifi/plfxlc/mac.c | 754 +
drivers/net/wireless/purelifi/plfxlc/mac.h | 184 +
drivers/net/wireless/purelifi/plfxlc/usb.c | 891 +
drivers/net/wireless/purelifi/plfxlc/usb.h | 198 +
.../wireless/quantenna/qtnfmac/pcie/pearl_pcie.c | 4 +-
.../wireless/quantenna/qtnfmac/pcie/topaz_pcie.c | 4 +-
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 8 +-
drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 2 +-
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c | 4 +-
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c | 8 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 146 +-
drivers/net/wireless/realtek/rtlwifi/base.c | 44 +-
.../realtek/rtlwifi/btcoexist/halbtc8821a1ant.c | 16 +-
drivers/net/wireless/realtek/rtlwifi/core.c | 40 +-
drivers/net/wireless/realtek/rtlwifi/pci.c | 15 +-
drivers/net/wireless/realtek/rtlwifi/rc.c | 20 +-
.../net/wireless/realtek/rtlwifi/rtl8188ee/hw.c | 26 +-
.../net/wireless/realtek/rtlwifi/rtl8188ee/trx.c | 8 +-
.../net/wireless/realtek/rtlwifi/rtl8192ce/hw.c | 26 +-
.../net/wireless/realtek/rtlwifi/rtl8192ce/trx.c | 6 +-
.../net/wireless/realtek/rtlwifi/rtl8192cu/hw.c | 30 +-
.../net/wireless/realtek/rtlwifi/rtl8192cu/trx.c | 2 +-
.../net/wireless/realtek/rtlwifi/rtl8192de/hw.c | 26 +-
.../net/wireless/realtek/rtlwifi/rtl8192de/phy.c | 5 +-
.../net/wireless/realtek/rtlwifi/rtl8192de/trx.c | 4 +-
.../net/wireless/realtek/rtlwifi/rtl8192ee/hw.c | 12 +-
.../net/wireless/realtek/rtlwifi/rtl8192ee/trx.c | 8 +-
.../net/wireless/realtek/rtlwifi/rtl8192se/hw.c | 26 +-
.../net/wireless/realtek/rtlwifi/rtl8192se/trx.c | 2 +-
.../net/wireless/realtek/rtlwifi/rtl8723ae/hw.c | 26 +-
.../net/wireless/realtek/rtlwifi/rtl8723ae/trx.c | 8 +-
.../net/wireless/realtek/rtlwifi/rtl8723be/hw.c | 12 +-
.../net/wireless/realtek/rtlwifi/rtl8723be/trx.c | 8 +-
.../net/wireless/realtek/rtlwifi/rtl8821ae/hw.c | 30 +-
.../net/wireless/realtek/rtlwifi/rtl8821ae/trx.c | 6 +-
drivers/net/wireless/realtek/rtlwifi/usb.c | 2 +-
drivers/net/wireless/realtek/rtw88/bf.c | 2 +-
drivers/net/wireless/realtek/rtw88/fw.c | 41 +-
drivers/net/wireless/realtek/rtw88/fw.h | 5 +-
drivers/net/wireless/realtek/rtw88/mac.c | 2 +-
drivers/net/wireless/realtek/rtw88/mac80211.c | 42 +-
drivers/net/wireless/realtek/rtw88/main.c | 75 +-
drivers/net/wireless/realtek/rtw88/main.h | 9 +-
drivers/net/wireless/realtek/rtw88/pci.c | 19 +-
drivers/net/wireless/realtek/rtw88/phy.c | 2 +-
drivers/net/wireless/realtek/rtw88/reg.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8723d.c | 1 +
drivers/net/wireless/realtek/rtw88/rtw8821c.c | 5 +
.../net/wireless/realtek/rtw88/rtw8821c_table.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8821ce.c | 4 +
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 1 +
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 1 +
drivers/net/wireless/realtek/rtw88/rx.c | 3 +-
drivers/net/wireless/realtek/rtw88/tx.c | 31 +-
drivers/net/wireless/realtek/rtw88/tx.h | 4 +
drivers/net/wireless/realtek/rtw89/Kconfig | 18 +-
drivers/net/wireless/realtek/rtw89/Makefile | 9 +
drivers/net/wireless/realtek/rtw89/cam.c | 57 +-
drivers/net/wireless/realtek/rtw89/cam.h | 4 +
drivers/net/wireless/realtek/rtw89/coex.c | 24 +-
drivers/net/wireless/realtek/rtw89/core.c | 193 +-
drivers/net/wireless/realtek/rtw89/core.h | 295 +-
drivers/net/wireless/realtek/rtw89/debug.c | 75 +-
drivers/net/wireless/realtek/rtw89/debug.h | 1 +
drivers/net/wireless/realtek/rtw89/fw.c | 301 +-
drivers/net/wireless/realtek/rtw89/fw.h | 388 +-
drivers/net/wireless/realtek/rtw89/mac.c | 736 +-
drivers/net/wireless/realtek/rtw89/mac.h | 82 +-
drivers/net/wireless/realtek/rtw89/mac80211.c | 16 +-
drivers/net/wireless/realtek/rtw89/pci.c | 954 +-
drivers/net/wireless/realtek/rtw89/pci.h | 389 +
drivers/net/wireless/realtek/rtw89/phy.c | 481 +-
drivers/net/wireless/realtek/rtw89/phy.h | 76 +-
drivers/net/wireless/realtek/rtw89/ps.c | 34 +-
drivers/net/wireless/realtek/rtw89/reg.h | 1907 +-
drivers/net/wireless/realtek/rtw89/regd.c | 513 +-
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 81 +-
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c | 16 +-
.../net/wireless/realtek/rtw89/rtw8852a_table.c | 605 +-
drivers/net/wireless/realtek/rtw89/rtw8852ae.c | 40 +
drivers/net/wireless/realtek/rtw89/rtw8852c.c | 2561 +-
drivers/net/wireless/realtek/rtw89/rtw8852c.h | 20 +-
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c | 4041 +
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h | 28 +
.../wireless/realtek/rtw89/rtw8852c_rfk_table.c | 781 +
.../wireless/realtek/rtw89/rtw8852c_rfk_table.h | 67 +
.../net/wireless/realtek/rtw89/rtw8852c_table.c | 19470 +++
.../net/wireless/realtek/rtw89/rtw8852c_table.h | 36 +
drivers/net/wireless/realtek/rtw89/rtw8852ce.c | 48 +
drivers/net/wireless/realtek/rtw89/ser.c | 250 +-
drivers/net/wireless/realtek/rtw89/txrx.h | 107 +
drivers/net/wireless/realtek/rtw89/util.h | 30 +
drivers/net/wireless/rsi/rsi_91x_mac80211.c | 12 +-
drivers/net/wireless/rsi/rsi_91x_mgmt.c | 8 +-
drivers/net/wireless/silabs/Kconfig | 18 +
drivers/net/wireless/silabs/Makefile | 3 +
.../{staging => net/wireless/silabs}/wfx/Kconfig | 0
.../{staging => net/wireless/silabs}/wfx/Makefile | 0
drivers/{staging => net/wireless/silabs}/wfx/bh.c | 6 +-
drivers/{staging => net/wireless/silabs}/wfx/bh.h | 0
drivers/{staging => net/wireless/silabs}/wfx/bus.h | 0
.../wireless/silabs}/wfx/bus_sdio.c | 0
.../{staging => net/wireless/silabs}/wfx/bus_spi.c | 0
.../{staging => net/wireless/silabs}/wfx/data_rx.c | 5 +-
.../{staging => net/wireless/silabs}/wfx/data_rx.h | 0
.../{staging => net/wireless/silabs}/wfx/data_tx.c | 3 +-
.../{staging => net/wireless/silabs}/wfx/data_tx.h | 0
.../{staging => net/wireless/silabs}/wfx/debug.c | 0
.../{staging => net/wireless/silabs}/wfx/debug.h | 0
.../{staging => net/wireless/silabs}/wfx/fwio.c | 0
.../{staging => net/wireless/silabs}/wfx/fwio.h | 0
.../wireless/silabs}/wfx/hif_api_cmd.h | 0
.../wireless/silabs}/wfx/hif_api_general.h | 0
.../wireless/silabs}/wfx/hif_api_mib.h | 0
.../{staging => net/wireless/silabs}/wfx/hif_rx.c | 0
.../{staging => net/wireless/silabs}/wfx/hif_rx.h | 0
.../{staging => net/wireless/silabs}/wfx/hif_tx.c | 12 +-
.../{staging => net/wireless/silabs}/wfx/hif_tx.h | 0
.../wireless/silabs}/wfx/hif_tx_mib.c | 0
.../wireless/silabs}/wfx/hif_tx_mib.h | 0
.../{staging => net/wireless/silabs}/wfx/hwio.c | 0
.../{staging => net/wireless/silabs}/wfx/hwio.h | 0
drivers/{staging => net/wireless/silabs}/wfx/key.c | 4 +-
drivers/{staging => net/wireless/silabs}/wfx/key.h | 0
.../{staging => net/wireless/silabs}/wfx/main.c | 8 +-
.../{staging => net/wireless/silabs}/wfx/main.h | 0
.../{staging => net/wireless/silabs}/wfx/queue.c | 3 +-
.../{staging => net/wireless/silabs}/wfx/queue.h | 0
.../{staging => net/wireless/silabs}/wfx/scan.c | 11 +-
.../{staging => net/wireless/silabs}/wfx/scan.h | 0
drivers/{staging => net/wireless/silabs}/wfx/sta.c | 104 +-
drivers/{staging => net/wireless/silabs}/wfx/sta.h | 0
.../{staging => net/wireless/silabs}/wfx/traces.h | 0
drivers/{staging => net/wireless/silabs}/wfx/wfx.h | 7 +-
drivers/net/wireless/st/cw1200/sta.c | 4 +-
drivers/net/wireless/ti/wl1251/event.c | 22 +-
drivers/net/wireless/ti/wl1251/io.c | 20 +-
drivers/net/wireless/ti/wl1251/tx.c | 15 +-
drivers/net/wireless/ti/wl18xx/debugfs.c | 18 +-
drivers/net/wireless/ti/wlcore/cmd.c | 14 +-
drivers/net/wireless/ti/wlcore/debugfs.c | 52 +-
drivers/net/wireless/ti/wlcore/main.c | 241 +-
drivers/net/wireless/ti/wlcore/scan.c | 6 +-
drivers/net/wireless/ti/wlcore/sdio.c | 3 +-
drivers/net/wireless/ti/wlcore/sysfs.c | 6 +-
drivers/net/wireless/ti/wlcore/testmode.c | 12 +-
drivers/net/wireless/ti/wlcore/tx.c | 6 +-
drivers/net/wireless/ti/wlcore/vendor_cmd.c | 18 +-
drivers/net/wwan/Kconfig | 14 +
drivers/net/wwan/Makefile | 1 +
drivers/net/wwan/iosm/iosm_ipc_coredump.h | 5 +-
drivers/net/wwan/iosm/iosm_ipc_protocol_ops.c | 10 -
drivers/net/wwan/t7xx/Makefile | 20 +
drivers/net/wwan/t7xx/t7xx_cldma.c | 281 +
drivers/net/wwan/t7xx/t7xx_cldma.h | 180 +
drivers/net/wwan/t7xx/t7xx_dpmaif.c | 1281 +
drivers/net/wwan/t7xx/t7xx_dpmaif.h | 179 +
drivers/net/wwan/t7xx/t7xx_hif_cldma.c | 1339 +
drivers/net/wwan/t7xx/t7xx_hif_cldma.h | 127 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif.c | 574 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif.h | 206 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c | 1243 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.h | 116 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c | 683 +
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.h | 78 +
drivers/net/wwan/t7xx/t7xx_mhccif.c | 122 +
drivers/net/wwan/t7xx/t7xx_mhccif.h | 37 +
drivers/net/wwan/t7xx/t7xx_modem_ops.c | 727 +
drivers/net/wwan/t7xx/t7xx_modem_ops.h | 88 +
drivers/net/wwan/t7xx/t7xx_netdev.c | 423 +
drivers/net/wwan/t7xx/t7xx_netdev.h | 55 +
drivers/net/wwan/t7xx/t7xx_pci.c | 761 +
drivers/net/wwan/t7xx/t7xx_pci.h | 120 +
drivers/net/wwan/t7xx/t7xx_pcie_mac.c | 262 +
drivers/net/wwan/t7xx/t7xx_pcie_mac.h | 31 +
drivers/net/wwan/t7xx/t7xx_port.h | 135 +
drivers/net/wwan/t7xx/t7xx_port_ctrl_msg.c | 273 +
drivers/net/wwan/t7xx/t7xx_port_proxy.c | 509 +
drivers/net/wwan/t7xx/t7xx_port_proxy.h | 98 +
drivers/net/wwan/t7xx/t7xx_port_wwan.c | 176 +
drivers/net/wwan/t7xx/t7xx_reg.h | 350 +
drivers/net/wwan/t7xx/t7xx_state_monitor.c | 550 +
drivers/net/wwan/t7xx/t7xx_state_monitor.h | 135 +
drivers/net/wwan/wwan_hwsim.c | 22 +-
drivers/net/xen-netback/interface.c | 3 +-
drivers/net/xen-netback/netback.c | 2 +-
drivers/net/xen-netfront.c | 92 +-
drivers/nfc/nfcmrvl/main.c | 2 +-
drivers/nfc/nfcmrvl/usb.c | 16 +-
drivers/nfc/pn533/pn533.c | 5 +-
drivers/nfc/st21nfca/se.c | 70 +-
drivers/nfc/st21nfca/st21nfca.h | 1 +
drivers/nvdimm/btt_devs.c | 23 +-
drivers/nvdimm/bus.c | 38 +-
drivers/nvdimm/core.c | 19 +-
drivers/nvdimm/dax_devs.c | 4 +-
drivers/nvdimm/dimm_devs.c | 12 +-
drivers/nvdimm/namespace_devs.c | 46 +-
drivers/nvdimm/nd-core.h | 68 +-
drivers/nvdimm/pfn_devs.c | 31 +-
drivers/nvdimm/pmem.c | 205 +-
drivers/nvdimm/pmem.h | 5 +-
drivers/nvdimm/region.c | 2 +-
drivers/nvdimm/region_devs.c | 20 +-
drivers/nvdimm/security.c | 5 -
drivers/nvme/host/Kconfig | 13 +
drivers/nvme/host/Makefile | 3 +
drivers/nvme/host/apple.c | 1593 +
drivers/nvme/host/constants.c | 5 +-
drivers/nvme/host/core.c | 124 +-
drivers/nvme/host/fabrics.h | 8 +
drivers/nvme/host/fc.c | 44 +-
drivers/nvme/host/ioctl.c | 279 +-
drivers/nvme/host/multipath.c | 1 +
drivers/nvme/host/nvme.h | 6 +
drivers/nvme/host/pci.c | 17 +-
drivers/nvme/host/rdma.c | 9 +-
drivers/nvme/host/tcp.c | 5 +-
drivers/nvme/target/io-cmd-bdev.c | 2 +-
drivers/nvme/target/passthru.c | 5 +-
drivers/nvme/target/rdma.c | 4 +-
drivers/nvme/target/zns.c | 3 +-
drivers/nvmem/Kconfig | 13 +
drivers/nvmem/Makefile | 2 +
drivers/nvmem/apple-efuses.c | 80 +
drivers/nvmem/bcm-ocotp.c | 2 +-
drivers/nvmem/brcm_nvram.c | 2 +
drivers/nvmem/core.c | 1 +
drivers/nvmem/layerscape-sfp.c | 36 +-
drivers/nvmem/qfprom.c | 3 +-
drivers/nvmem/sunplus-ocotp.c | 4 +-
drivers/of/fdt.c | 36 +-
drivers/of/irq.c | 15 +-
drivers/of/kexec.c | 9 +
drivers/of/overlay.c | 339 +-
drivers/of/platform.c | 15 +-
drivers/of/property.c | 39 +-
drivers/of/unittest-data/Makefile | 10 +
drivers/of/unittest-data/overlay_16.dts | 15 +
drivers/of/unittest-data/overlay_17.dts | 15 +
drivers/of/unittest-data/overlay_18.dts | 15 +
drivers/of/unittest-data/overlay_19.dts | 15 +
drivers/of/unittest-data/overlay_20.dts | 15 +
drivers/of/unittest.c | 201 +
drivers/opp/core.c | 339 +-
drivers/opp/debugfs.c | 10 +-
drivers/opp/of.c | 8 +-
drivers/pci/controller/cadence/pci-j721e.c | 3 +
drivers/pci/controller/cadence/pcie-cadence-ep.c | 21 +-
drivers/pci/controller/cadence/pcie-cadence-host.c | 10 +
drivers/pci/controller/cadence/pcie-cadence.h | 7 +
drivers/pci/controller/dwc/pci-imx6.c | 23 +-
drivers/pci/controller/dwc/pcie-designware-host.c | 3 +-
drivers/pci/controller/dwc/pcie-dw-rockchip.c | 119 +-
drivers/pci/controller/dwc/pcie-qcom-ep.c | 91 +-
drivers/pci/controller/dwc/pcie-qcom.c | 30 +-
drivers/pci/controller/dwc/pcie-tegra194.c | 9 -
drivers/pci/controller/pci-aardvark.c | 48 +-
drivers/pci/controller/pci-hyperv.c | 243 +-
drivers/pci/controller/pci-mvebu.c | 97 +-
drivers/pci/controller/pci-versatile.c | 3 +-
drivers/pci/controller/pcie-brcmstb.c | 257 +-
drivers/pci/controller/pcie-mediatek-gen3.c | 8 +
drivers/pci/controller/pcie-mediatek.c | 1 +
drivers/pci/controller/pcie-microchip-host.c | 18 +-
drivers/pci/controller/pcie-rockchip-ep.c | 3 +-
drivers/pci/controller/vmd.c | 7 +-
drivers/pci/hotplug/pnv_php.c | 1 +
drivers/pci/hotplug/rpadlpar_core.c | 1 +
drivers/pci/hotplug/rpaphp_core.c | 2 +
drivers/pci/hotplug/rpaphp_pci.c | 1 +
drivers/pci/hotplug/rpaphp_slot.c | 1 +
drivers/pci/of.c | 78 +-
drivers/pci/p2pdma.c | 25 +-
drivers/pci/pci-acpi.c | 44 +-
drivers/pci/pci-driver.c | 63 +-
drivers/pci/pci-stub.c | 1 +
drivers/pci/pci-sysfs.c | 28 +-
drivers/pci/pci.c | 365 +-
drivers/pci/pci.h | 15 +
drivers/pci/pcie/aer.c | 7 +-
drivers/pci/pcie/portdrv_pci.c | 2 +
drivers/pci/quirks.c | 47 +
drivers/pci/xen-pcifront.c | 19 +-
drivers/pcmcia/Kconfig | 5 +-
drivers/pcmcia/Makefile | 13 -
drivers/pcmcia/bcm63xx_pcmcia.c | 9 +-
drivers/pcmcia/omap_cf.c | 48 +-
drivers/pcmcia/pxa2xx_base.c | 48 +-
drivers/pcmcia/pxa2xx_sharpsl.c | 3 +-
drivers/pcmcia/rsrc_nonstatic.c | 2 +-
drivers/pcmcia/sa1111_generic.c | 1 -
drivers/pcmcia/sa1111_lubbock.c | 1 -
drivers/pcmcia/soc_common.c | 19 +-
drivers/pcmcia/soc_common.h | 120 +-
drivers/perf/arm-cmn.c | 609 +-
drivers/perf/arm_pmu_acpi.c | 4 +-
drivers/perf/arm_spe_pmu.c | 3 +
drivers/perf/hisilicon/Makefile | 2 +-
drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c | 409 +
drivers/perf/hisilicon/hisi_uncore_pa_pmu.c | 18 +-
drivers/perf/hisilicon/hisi_uncore_pmu.c | 4 +
drivers/perf/hisilicon/hisi_uncore_pmu.h | 1 +
drivers/perf/marvell_cn10k_tad_pmu.c | 6 +-
drivers/perf/riscv_pmu_sbi.c | 8 +-
drivers/phy/Kconfig | 1 +
drivers/phy/allwinner/phy-sun6i-mipi-dphy.c | 166 +-
drivers/phy/cadence/phy-cadence-sierra.c | 193 +-
drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c | 276 +-
drivers/phy/freescale/phy-fsl-imx8m-pcie.c | 10 +-
drivers/phy/mediatek/phy-mtk-hdmi.c | 50 +-
drivers/phy/mediatek/phy-mtk-mipi-dsi.c | 29 +-
drivers/phy/phy-can-transceiver.c | 24 +-
drivers/phy/phy-core.c | 44 +-
drivers/phy/qualcomm/phy-qcom-qmp.c | 124 +-
drivers/phy/rockchip/phy-rockchip-dphy-rx0.c | 7 +-
drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 129 +-
drivers/phy/rockchip/phy-rockchip-typec.c | 6 +-
drivers/pinctrl/aspeed/pinctrl-aspeed-g6.c | 17 +-
drivers/pinctrl/bcm/pinctrl-bcm2835.c | 18 +
drivers/pinctrl/berlin/berlin-bg4ct.c | 3 +-
drivers/pinctrl/freescale/Kconfig | 7 +
drivers/pinctrl/freescale/Makefile | 1 +
drivers/pinctrl/freescale/pinctrl-imxrt1170.c | 349 +
drivers/pinctrl/intel/pinctrl-baytrail.c | 42 +-
drivers/pinctrl/intel/pinctrl-broxton.c | 1 +
drivers/pinctrl/intel/pinctrl-cherryview.c | 66 +-
drivers/pinctrl/intel/pinctrl-intel.c | 45 +-
drivers/pinctrl/intel/pinctrl-intel.h | 2 -
drivers/pinctrl/intel/pinctrl-lynxpoint.c | 26 +-
drivers/pinctrl/mediatek/Kconfig | 8 +
drivers/pinctrl/mediatek/Makefile | 1 +
drivers/pinctrl/mediatek/pinctrl-mt6795.c | 623 +
drivers/pinctrl/mediatek/pinctrl-mt8365.c | 2 +-
drivers/pinctrl/mediatek/pinctrl-mtk-mt6795.h | 1698 +
drivers/pinctrl/meson/Kconfig | 2 +-
drivers/pinctrl/meson/pinctrl-meson-s4.c | 3 +-
drivers/pinctrl/meson/pinctrl-meson.c | 52 +-
drivers/pinctrl/meson/pinctrl-meson.h | 28 +-
drivers/pinctrl/mvebu/Kconfig | 4 +
drivers/pinctrl/mvebu/Makefile | 1 +
drivers/pinctrl/mvebu/pinctrl-ac5.c | 261 +
drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 36 +-
drivers/pinctrl/nomadik/pinctrl-nomadik-db8500.c | 7 +-
drivers/pinctrl/nomadik/pinctrl-nomadik.c | 2 +-
drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c | 150 +-
drivers/pinctrl/pinctrl-amd.c | 11 +-
drivers/pinctrl/pinctrl-apple-gpio.c | 31 +-
drivers/pinctrl/pinctrl-equilibrium.c | 11 +-
drivers/pinctrl/pinctrl-equilibrium.h | 10 +-
drivers/pinctrl/pinctrl-ingenic.c | 118 +-
drivers/pinctrl/pinctrl-max77620.c | 1 -
drivers/pinctrl/pinctrl-microchip-sgpio.c | 16 +-
drivers/pinctrl/pinctrl-ocelot.c | 26 +-
drivers/pinctrl/pinctrl-rockchip.c | 532 +-
drivers/pinctrl/pinctrl-rockchip.h | 177 +-
drivers/pinctrl/pinctrl-starfive.c | 11 +-
drivers/pinctrl/pinctrl-thunderbay.c | 7 +-
drivers/pinctrl/qcom/Kconfig | 19 +
drivers/pinctrl/qcom/Makefile | 2 +
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 309 +-
drivers/pinctrl/qcom/pinctrl-lpass-lpi.h | 86 +
drivers/pinctrl/qcom/pinctrl-msm.c | 53 +-
drivers/pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c | 167 +
drivers/pinctrl/qcom/pinctrl-sm8150.c | 22 +
drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c | 163 +
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 2 +
drivers/pinctrl/ralink/Kconfig | 28 +-
drivers/pinctrl/ralink/Makefile | 4 +-
drivers/pinctrl/ralink/pinctrl-mt7620.c | 302 +-
drivers/pinctrl/ralink/pinctrl-mt7621.c | 76 +-
drivers/pinctrl/ralink/pinctrl-ralink.c | 349 +
.../pinctrl/ralink/{pinmux.h => pinctrl-ralink.h} | 16 +-
drivers/pinctrl/ralink/pinctrl-rt2880.c | 381 +-
drivers/pinctrl/ralink/pinctrl-rt288x.c | 60 -
drivers/pinctrl/ralink/pinctrl-rt305x.c | 66 +-
drivers/pinctrl/ralink/pinctrl-rt3883.c | 50 +-
drivers/pinctrl/renesas/Kconfig | 7 +-
drivers/pinctrl/renesas/core.c | 117 +-
drivers/pinctrl/renesas/gpio.c | 1 -
drivers/pinctrl/renesas/pfc-emev2.c | 60 +-
drivers/pinctrl/renesas/pfc-r8a73a4.c | 58 +-
drivers/pinctrl/renesas/pfc-r8a7740.c | 74 +-
drivers/pinctrl/renesas/pfc-r8a77470.c | 176 +-
drivers/pinctrl/renesas/pfc-r8a7778.c | 98 +-
drivers/pinctrl/renesas/pfc-r8a7779.c | 82 +-
drivers/pinctrl/renesas/pfc-r8a7790.c | 110 +-
drivers/pinctrl/renesas/pfc-r8a7791.c | 111 +-
drivers/pinctrl/renesas/pfc-r8a7792.c | 231 +-
drivers/pinctrl/renesas/pfc-r8a7794.c | 97 +-
drivers/pinctrl/renesas/pfc-r8a77950.c | 170 +-
drivers/pinctrl/renesas/pfc-r8a77951.c | 169 +-
drivers/pinctrl/renesas/pfc-r8a7796.c | 166 +-
drivers/pinctrl/renesas/pfc-r8a77965.c | 166 +-
drivers/pinctrl/renesas/pfc-r8a77970.c | 136 +-
drivers/pinctrl/renesas/pfc-r8a77980.c | 107 +-
drivers/pinctrl/renesas/pfc-r8a77990.c | 252 +-
drivers/pinctrl/renesas/pfc-r8a77995.c | 229 +-
drivers/pinctrl/renesas/pfc-r8a779a0.c | 246 +-
drivers/pinctrl/renesas/pfc-r8a779f0.c | 121 +-
drivers/pinctrl/renesas/pfc-sh7203.c | 53 +-
drivers/pinctrl/renesas/pfc-sh7264.c | 104 +-
drivers/pinctrl/renesas/pfc-sh7269.c | 82 +-
drivers/pinctrl/renesas/pfc-sh73a0.c | 87 +-
drivers/pinctrl/renesas/pfc-sh7720.c | 57 +-
drivers/pinctrl/renesas/pfc-sh7722.c | 203 +-
drivers/pinctrl/renesas/pfc-sh7723.c | 71 +-
drivers/pinctrl/renesas/pfc-sh7724.c | 8 +-
drivers/pinctrl/renesas/pfc-sh7734.c | 116 +-
drivers/pinctrl/renesas/pfc-sh7757.c | 96 +-
drivers/pinctrl/renesas/pfc-sh7785.c | 61 +-
drivers/pinctrl/renesas/pfc-sh7786.c | 22 +-
drivers/pinctrl/renesas/pfc-shx3.c | 1 -
drivers/pinctrl/renesas/pinctrl-rza1.c | 47 +-
drivers/pinctrl/renesas/pinctrl-rzg2l.c | 200 +-
drivers/pinctrl/renesas/pinctrl-rzn1.c | 10 +-
drivers/pinctrl/renesas/pinctrl.c | 1 -
drivers/pinctrl/renesas/sh_pfc.h | 24 +-
drivers/pinctrl/samsung/pinctrl-exynos.c | 8 +-
drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 2 +-
drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 4 +-
drivers/pinctrl/samsung/pinctrl-samsung.c | 30 +-
drivers/pinctrl/samsung/pinctrl-samsung.h | 2 +-
drivers/pinctrl/stm32/pinctrl-stm32.c | 274 +-
drivers/pinctrl/stm32/pinctrl-stm32.h | 15 +-
drivers/pinctrl/stm32/pinctrl-stm32mp135.c | 3 +-
drivers/pinctrl/stm32/pinctrl-stm32mp157.c | 2 +-
drivers/pinctrl/sunxi/pinctrl-suniv-f1c100s.c | 4 +-
drivers/pinctrl/tegra/pinctrl-tegra194.c | 9 -
drivers/platform/chrome/Kconfig | 11 +
drivers/platform/chrome/Makefile | 1 +
drivers/platform/chrome/chromeos_acpi.c | 257 +
drivers/platform/chrome/cros_ec.c | 36 +-
drivers/platform/chrome/cros_ec_chardev.c | 2 +-
drivers/platform/chrome/cros_ec_i2c.c | 12 +-
drivers/platform/chrome/cros_ec_ishtp.c | 4 +-
drivers/platform/chrome/cros_ec_lpc.c | 49 +-
drivers/platform/chrome/cros_ec_proto.c | 63 +-
drivers/platform/chrome/cros_ec_rpmsg.c | 2 +
drivers/platform/chrome/cros_ec_spi.c | 15 +-
drivers/platform/chrome/cros_ec_typec.c | 3 +
drivers/platform/mellanox/Kconfig | 17 +
drivers/platform/mellanox/Makefile | 1 +
drivers/platform/mellanox/nvsw-sn2201.c | 1261 +
drivers/platform/mips/Kconfig | 2 +-
drivers/platform/mips/cpu_hwmon.c | 127 +-
drivers/platform/surface/aggregator/core.c | 2 +-
drivers/platform/surface/surface_gpe.c | 8 +
drivers/platform/x86/Kconfig | 8 +
drivers/platform/x86/Makefile | 3 +
drivers/platform/x86/amd-pmc.c | 147 +-
drivers/platform/x86/asus-nb-wmi.c | 1 +
drivers/platform/x86/asus-wmi.c | 4 +-
drivers/platform/x86/barco-p50-gpio.c | 5 +-
drivers/platform/x86/dell/dcdbas.c | 127 +-
drivers/platform/x86/dell/dcdbas.h | 9 +
drivers/platform/x86/dell/dell-smbios-smm.c | 14 +-
drivers/platform/x86/gigabyte-wmi.c | 4 +
drivers/platform/x86/hp-wmi.c | 37 +-
drivers/platform/x86/intel/Kconfig | 1 +
drivers/platform/x86/intel/Makefile | 1 +
drivers/platform/x86/intel/chtwc_int33fe.c | 2 +
drivers/platform/x86/intel/hid.c | 8 +-
drivers/platform/x86/intel/ifs/Kconfig | 13 +
drivers/platform/x86/intel/ifs/Makefile | 3 +
drivers/platform/x86/intel/ifs/core.c | 73 +
drivers/platform/x86/intel/ifs/ifs.h | 234 +
drivers/platform/x86/intel/ifs/load.c | 266 +
drivers/platform/x86/intel/ifs/runtest.c | 252 +
drivers/platform/x86/intel/ifs/sysfs.c | 149 +
drivers/platform/x86/intel/pmc/core.c | 3 +-
drivers/platform/x86/intel/pmt/crashlog.c | 2 +-
drivers/platform/x86/intel/pmt/telemetry.c | 2 +-
drivers/platform/x86/pmc_atom.c | 13 -
drivers/platform/x86/samsung-laptop.c | 2 +-
drivers/platform/x86/thinkpad_acpi.c | 175 +-
drivers/platform/x86/toshiba_acpi.c | 2 +-
drivers/platform/x86/winmate-fm07-keys.c | 189 +
drivers/platform/x86/wmi.c | 13 +-
drivers/power/supply/ab8500_fg.c | 19 +-
drivers/power/supply/axp288_charger.c | 17 +-
drivers/power/supply/axp288_fuel_gauge.c | 41 +-
drivers/power/supply/bq24190_charger.c | 63 +-
drivers/power/supply/bq27xxx_battery.c | 60 +-
drivers/power/supply/charger-manager.c | 7 +-
drivers/power/supply/max8997_charger.c | 8 +-
drivers/power/supply/power_supply_core.c | 2 +-
drivers/power/supply/tosa_battery.c | 172 +-
drivers/powercap/dtpm_cpu.c | 2 +-
drivers/powercap/intel_rapl_common.c | 4 +-
drivers/powercap/intel_rapl_msr.c | 1 +
drivers/ptp/ptp_clock.c | 31 +-
drivers/ptp/ptp_clockmatrix.c | 321 +-
drivers/ptp/ptp_clockmatrix.h | 7 +-
drivers/ptp/ptp_ocp.c | 623 +-
drivers/ptp/ptp_private.h | 11 +
drivers/ptp/ptp_sysfs.c | 11 +-
drivers/ptp/ptp_vclock.c | 82 +-
drivers/pwm/Kconfig | 25 +
drivers/pwm/Makefile | 2 +
drivers/pwm/pwm-atmel-tcb.c | 14 +-
drivers/pwm/pwm-clps711x.c | 68 +-
drivers/pwm/pwm-cros-ec.c | 82 +-
drivers/pwm/pwm-lp3943.c | 42 +-
drivers/pwm/pwm-lpc18xx-sct.c | 43 +-
drivers/pwm/pwm-lpc32xx.c | 29 +-
drivers/pwm/pwm-mediatek.c | 36 +-
drivers/pwm/pwm-raspberrypi-poe.c | 2 +-
drivers/pwm/pwm-renesas-tpu.c | 317 +-
drivers/pwm/pwm-samsung.c | 54 +-
drivers/pwm/pwm-sifive.c | 5 +-
drivers/pwm/pwm-sti.c | 29 +-
drivers/pwm/pwm-stmpe.c | 29 +-
drivers/pwm/pwm-sun4i.c | 18 +-
drivers/pwm/pwm-sunplus.c | 232 +
drivers/pwm/pwm-tegra.c | 40 +-
drivers/pwm/pwm-twl-led.c | 76 +-
drivers/pwm/pwm-xilinx.c | 321 +
drivers/rapidio/devices/rio_mport_cdev.c | 4 +-
drivers/regulator/Kconfig | 17 +
drivers/regulator/Makefile | 2 +
drivers/regulator/core.c | 93 +-
drivers/regulator/da9121-regulator.c | 2 +
drivers/regulator/fixed.c | 5 +-
drivers/regulator/mt6358-regulator.c | 213 +-
drivers/regulator/pca9450-regulator.c | 27 +-
drivers/regulator/pfuze100-regulator.c | 44 +-
drivers/regulator/qcom_smd-regulator.c | 35 +-
drivers/regulator/rpi-panel-attiny-regulator.c | 1 -
drivers/regulator/rt4801-regulator.c | 49 +-
drivers/regulator/rt5759-regulator.c | 369 +
drivers/regulator/scmi-regulator.c | 2 +-
drivers/regulator/sm5703-regulator.c | 167 +
drivers/regulator/stm32-vrefbuf.c | 30 +-
drivers/remoteproc/imx_dsp_rproc.c | 105 +-
drivers/remoteproc/imx_rproc.c | 36 +
drivers/remoteproc/mtk_common.h | 2 +
drivers/remoteproc/mtk_scp.c | 76 +-
drivers/remoteproc/qcom_q6v5_pas.c | 34 +
drivers/remoteproc/remoteproc_cdev.c | 11 -
drivers/remoteproc/remoteproc_core.c | 15 +-
drivers/remoteproc/remoteproc_debugfs.c | 17 +-
drivers/remoteproc/remoteproc_elf_loader.c | 2 +-
drivers/remoteproc/remoteproc_sysfs.c | 11 -
drivers/reset/Kconfig | 4 +-
drivers/reset/core.c | 15 +-
drivers/reset/reset-meson.c | 6 +
drivers/reset/reset-simple.c | 1 +
drivers/reset/reset-uniphier-glue.c | 75 +-
drivers/rpmsg/qcom_smd.c | 4 +-
drivers/rpmsg/rpmsg_core.c | 42 +-
drivers/rpmsg/rpmsg_internal.h | 5 +-
drivers/rpmsg/rpmsg_ns.c | 4 +-
drivers/rpmsg/virtio_rpmsg_bus.c | 9 +-
drivers/rtc/Kconfig | 7 +
drivers/rtc/Makefile | 1 +
drivers/rtc/rtc-ftrtc010.c | 34 +-
drivers/rtc/rtc-gamecube.c | 1 +
drivers/rtc/rtc-goldfish.c | 44 +-
drivers/rtc/rtc-meson.c | 2 +-
drivers/rtc/rtc-mt6397.c | 2 +
drivers/rtc/rtc-mxc.c | 2 +-
drivers/rtc/rtc-pcf85063.c | 2 +
drivers/rtc/rtc-pxa.c | 2 -
drivers/rtc/rtc-rx8025.c | 7 +-
drivers/rtc/rtc-rzn1.c | 418 +
drivers/rtc/rtc-sun6i.c | 59 +
drivers/s390/block/dasd.c | 18 +-
drivers/s390/block/dasd_eckd.c | 33 +-
drivers/s390/block/dasd_fba.c | 2 -
drivers/s390/block/dasd_int.h | 14 +
drivers/s390/block/dcssblk.c | 9 +-
drivers/s390/char/Kconfig | 11 +
drivers/s390/char/Makefile | 1 +
drivers/s390/char/con3215.c | 25 +-
drivers/s390/char/con3270.c | 31 +-
drivers/s390/char/raw3270.c | 15 +
drivers/s390/char/raw3270.h | 1 +
drivers/s390/char/sclp_con.c | 26 +-
drivers/s390/char/sclp_early.c | 4 +-
drivers/s390/char/sclp_vt220.c | 42 +-
drivers/s390/char/uvdevice.c | 257 +
drivers/s390/cio/chsc.c | 4 +-
drivers/s390/cio/cio.h | 6 +-
drivers/s390/cio/css.c | 28 +-
drivers/s390/cio/vfio_ccw_cp.c | 47 +-
drivers/s390/cio/vfio_ccw_cp.h | 4 +-
drivers/s390/cio/vfio_ccw_fsm.c | 3 +-
drivers/s390/cio/vfio_ccw_ops.c | 14 +-
drivers/s390/crypto/ap_bus.c | 96 +-
drivers/s390/crypto/ap_bus.h | 1 +
drivers/s390/crypto/ap_queue.c | 7 +-
drivers/s390/crypto/pkey_api.c | 149 +-
drivers/s390/crypto/vfio_ap_drv.c | 2 -
drivers/s390/crypto/vfio_ap_ops.c | 59 +-
drivers/s390/crypto/vfio_ap_private.h | 3 -
drivers/s390/crypto/zcrypt_api.c | 215 +-
drivers/s390/crypto/zcrypt_api.h | 4 +-
drivers/s390/crypto/zcrypt_card.c | 2 +-
drivers/s390/crypto/zcrypt_cca_key.h | 58 +-
drivers/s390/crypto/zcrypt_ccamisc.c | 272 +-
drivers/s390/crypto/zcrypt_ccamisc.h | 6 +
drivers/s390/crypto/zcrypt_cex2a.c | 11 +-
drivers/s390/crypto/zcrypt_cex2c.c | 10 +-
drivers/s390/crypto/zcrypt_cex4.c | 44 +-
drivers/s390/crypto/zcrypt_ep11misc.c | 168 +-
drivers/s390/crypto/zcrypt_ep11misc.h | 2 +-
drivers/s390/crypto/zcrypt_error.h | 3 +-
drivers/s390/crypto/zcrypt_msgtype50.c | 31 +-
drivers/s390/crypto/zcrypt_msgtype6.c | 340 +-
drivers/s390/crypto/zcrypt_msgtype6.h | 26 +-
drivers/s390/crypto/zcrypt_queue.c | 2 +-
drivers/s390/net/ctcm_mpc.c | 6 +-
drivers/s390/net/ctcm_sysfs.c | 5 +-
drivers/s390/net/lcs.c | 7 +-
drivers/s390/net/qeth_core.h | 2 -
drivers/s390/net/qeth_core_main.c | 3 +-
drivers/s390/net/qeth_l2_main.c | 4 +-
drivers/s390/net/qeth_l3_main.c | 4 +-
drivers/s390/virtio/virtio_ccw.c | 34 +
drivers/scsi/Kconfig | 1 -
drivers/scsi/Makefile | 1 -
drivers/scsi/aacraid/aacraid.h | 2 +-
drivers/scsi/aha1542.c | 20 +-
drivers/scsi/bfa/bfad_debugfs.c | 3 +-
drivers/scsi/bfa/bfad_im.c | 1 -
drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 22 +-
drivers/scsi/bnx2fc/bnx2fc_io.c | 17 +-
drivers/scsi/dc395x.c | 15 +-
drivers/scsi/device_handler/scsi_dh_alua.c | 3 +-
drivers/scsi/dpt_i2o.c | 1 -
drivers/scsi/elx/efct/efct_hw.c | 1 -
drivers/scsi/elx/efct/efct_io.c | 1 -
drivers/scsi/elx/efct/efct_lio.c | 3 -
drivers/scsi/esas2r/esas2r_flash.c | 2 +-
drivers/scsi/fcoe/fcoe.c | 46 +-
drivers/scsi/fcoe/fcoe_ctlr.c | 28 +-
drivers/scsi/fcoe/fcoe_transport.c | 6 +-
drivers/scsi/fnic/fnic.h | 2 +-
drivers/scsi/fnic/fnic_debugfs.c | 3 +-
drivers/scsi/fnic/fnic_main.c | 10 +-
drivers/scsi/hisi_sas/hisi_sas_main.c | 68 +-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 10 +-
drivers/scsi/hosts.c | 8 +-
drivers/scsi/ipr.c | 17 +-
drivers/scsi/isci/request.c | 2 +-
drivers/scsi/libfc/fc_exch.c | 3 +-
drivers/scsi/libfc/fc_fcp.c | 29 +-
drivers/scsi/libfc/fc_lport.c | 30 +-
drivers/scsi/libsas/sas_ata.c | 41 +-
drivers/scsi/lpfc/Makefile | 2 +-
drivers/scsi/lpfc/lpfc.h | 10 +-
drivers/scsi/lpfc/lpfc_attr.c | 55 +-
drivers/scsi/lpfc/lpfc_bsg.c | 81 +-
drivers/scsi/lpfc/lpfc_crtn.h | 12 +-
drivers/scsi/lpfc/lpfc_ct.c | 368 +-
drivers/scsi/lpfc/lpfc_els.c | 732 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 164 +-
drivers/scsi/lpfc/lpfc_hw.h | 97 +-
drivers/scsi/lpfc/lpfc_hw4.h | 20 +-
drivers/scsi/lpfc/lpfc_ids.h | 30 +
drivers/scsi/lpfc/lpfc_init.c | 365 +-
drivers/scsi/lpfc/lpfc_logmsg.h | 8 +-
drivers/scsi/lpfc/lpfc_mbox.c | 203 +-
drivers/scsi/lpfc/lpfc_nportdisc.c | 82 +-
drivers/scsi/lpfc/lpfc_nvme.c | 141 +-
drivers/scsi/lpfc/lpfc_nvmet.c | 73 +-
drivers/scsi/lpfc/lpfc_scsi.c | 327 +-
drivers/scsi/lpfc/lpfc_sli.c | 301 +-
drivers/scsi/lpfc/lpfc_sli.h | 34 +-
drivers/scsi/lpfc/lpfc_sli4.h | 3 +
drivers/scsi/lpfc/lpfc_version.h | 2 +-
drivers/scsi/lpfc/lpfc_vmid.c | 288 +
drivers/scsi/lpfc/lpfc_vport.c | 31 +-
drivers/scsi/mac53c94.c | 2 +-
drivers/scsi/megaraid.c | 2 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 2 -
drivers/scsi/megaraid/megaraid_sas_fusion.c | 2 -
drivers/scsi/mpi3mr/Kconfig | 1 +
drivers/scsi/mpi3mr/Makefile | 1 +
drivers/scsi/mpi3mr/mpi/mpi30_init.h | 53 -
drivers/scsi/mpi3mr/mpi/mpi30_ioc.h | 27 -
drivers/scsi/mpi3mr/mpi/mpi30_pci.h | 31 +-
drivers/scsi/mpi3mr/mpi3mr.h | 137 +-
drivers/scsi/mpi3mr/mpi3mr_app.c | 1860 +
drivers/scsi/mpi3mr/mpi3mr_debug.h | 37 +-
drivers/scsi/mpi3mr/mpi3mr_fw.c | 335 +-
drivers/scsi/mpi3mr/mpi3mr_os.c | 71 +-
drivers/scsi/mpt3sas/mpt3sas_base.c | 57 +-
drivers/scsi/mpt3sas/mpt3sas_base.h | 6 +-
drivers/scsi/mpt3sas/mpt3sas_ctl.c | 11 +-
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 24 +-
drivers/scsi/myrb.c | 11 +-
drivers/scsi/pmcraid.c | 6 +-
drivers/scsi/qedf/qedf_attr.c | 2 -
drivers/scsi/qedf/qedf_io.c | 5 +-
drivers/scsi/qedf/qedf_main.c | 13 +-
drivers/scsi/qla1280.c | 3 +-
drivers/scsi/qla2xxx/qla_edif.c | 3 +-
drivers/scsi/qla2xxx/qla_mid.c | 2 -
drivers/scsi/qla2xxx/qla_os.c | 1 -
drivers/scsi/qla2xxx/qla_target.c | 12 +-
drivers/scsi/qla2xxx/qla_target.h | 1 -
drivers/scsi/qla4xxx/ql4_os.c | 1 -
drivers/scsi/scsi.c | 116 +-
drivers/scsi/scsi_debug.c | 149 +-
drivers/scsi/scsi_error.c | 5 +-
drivers/scsi/scsi_lib.c | 4 +-
drivers/scsi/scsi_scan.c | 12 +-
drivers/scsi/scsi_sysfs.c | 29 +-
drivers/scsi/scsicam.c | 11 +-
drivers/scsi/sd.c | 202 +-
drivers/scsi/sd.h | 37 +-
drivers/scsi/sd_dif.c | 8 +-
drivers/scsi/sd_zbc.c | 262 +-
drivers/scsi/sg.c | 3 +-
drivers/scsi/smartpqi/smartpqi.h | 2 +-
drivers/scsi/sr.c | 14 +-
drivers/scsi/st.c | 3 +-
drivers/scsi/storvsc_drv.c | 193 +-
drivers/scsi/ufs/Kconfig | 211 -
drivers/scsi/vmw_pvscsi.c | 1 -
drivers/scsi/vmw_pvscsi.h | 4 +-
drivers/scsi/xen-scsifront.c | 199 +-
drivers/slimbus/qcom-ctrl.c | 6 +-
drivers/slimbus/qcom-ngd-ctrl.c | 23 +-
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 5 +-
drivers/soc/apple/Kconfig | 24 +
drivers/soc/apple/Makefile | 6 +
drivers/soc/apple/rtkit-crashlog.c | 154 +
drivers/soc/apple/rtkit-internal.h | 62 +
drivers/soc/apple/rtkit.c | 958 +
drivers/soc/apple/sart.c | 328 +
drivers/soc/bcm/bcm63xx/bcm-pmb.c | 3 +
drivers/soc/imx/Makefile | 1 +
drivers/soc/imx/gpcv2.c | 430 +-
drivers/soc/imx/imx8m-blk-ctrl.c | 124 +-
drivers/soc/imx/imx8mp-blk-ctrl.c | 696 +
drivers/soc/ixp4xx/ixp4xx-qmgr.c | 2 +-
drivers/soc/mediatek/mt8167-mmsys.h | 2 +-
drivers/soc/mediatek/mt8183-mmsys.h | 2 +-
drivers/soc/mediatek/mt8186-mmsys.h | 4 +-
drivers/soc/mediatek/mt8192-mmsys.h | 4 +-
drivers/soc/mediatek/mt8195-mmsys.h | 370 +
drivers/soc/mediatek/mt8365-mmsys.h | 4 +-
drivers/soc/mediatek/mtk-cmdq-helper.c | 25 +-
drivers/soc/mediatek/mtk-mmsys.c | 153 +-
drivers/soc/mediatek/mtk-mmsys.h | 6 +
drivers/soc/mediatek/mtk-mutex.c | 92 +-
{arch/arm/plat-pxa => drivers/soc/pxa}/Kconfig | 5 +-
{arch/arm/plat-pxa => drivers/soc/pxa}/Makefile | 4 -
{arch/arm/plat-pxa => drivers/soc/pxa}/mfp.c | 2 +-
{arch/arm/plat-pxa => drivers/soc/pxa}/ssp.c | 0
drivers/soc/qcom/llcc-qcom.c | 61 +
drivers/soc/qcom/pdr_interface.c | 11 +-
drivers/soc/qcom/pdr_internal.h | 20 +-
drivers/soc/qcom/rpmhpd.c | 73 +-
drivers/soc/qcom/smem.c | 305 +-
drivers/soc/qcom/smp2p.c | 1 +
drivers/soc/qcom/smsm.c | 1 +
drivers/soc/qcom/socinfo.c | 26 +-
drivers/soc/renesas/Kconfig | 26 +
drivers/soc/renesas/Makefile | 1 +
drivers/soc/renesas/r8a779g0-sysc.c | 62 +
drivers/soc/renesas/rcar-gen4-sysc.c | 3 +
drivers/soc/renesas/rcar-gen4-sysc.h | 1 +
drivers/soc/renesas/rcar-rst.c | 1 +
drivers/soc/renesas/renesas-soc.c | 23 +-
drivers/soc/rockchip/Kconfig | 24 +-
drivers/soc/rockchip/grf.c | 19 +
drivers/soc/rockchip/pm_domains.c | 128 +-
drivers/soc/tegra/Kconfig | 1 +
drivers/soc/tegra/fuse/fuse-tegra.c | 8 +-
drivers/soc/tegra/fuse/fuse-tegra30.c | 17 +-
drivers/soc/tegra/pmc.c | 122 +-
drivers/soc/ti/knav_dma.c | 29 +-
drivers/soc/ti/knav_qmss_queue.c | 21 +-
drivers/soc/ti/omap_prm.c | 7 +-
drivers/soc/ti/pm33xx.c | 6 +-
drivers/soc/ti/pruss.c | 3 +-
drivers/soc/ti/ti_sci_pm_domains.c | 2 +
drivers/soc/ti/wkup_m3_ipc.c | 210 +-
drivers/soc/xilinx/xlnx_event_manager.c | 203 +-
drivers/soc/xilinx/zynqmp_power.c | 7 +-
drivers/soundwire/bus.c | 27 +-
drivers/soundwire/cadence_master.c | 42 +-
drivers/soundwire/intel.c | 11 +-
drivers/soundwire/qcom.c | 22 +-
drivers/soundwire/stream.c | 1 +
drivers/spi/Kconfig | 28 +-
drivers/spi/Makefile | 2 +
drivers/spi/atmel-quadspi.c | 6 -
drivers/spi/spi-aspeed-smc.c | 1210 +
drivers/spi/spi-au1550.c | 4 +-
drivers/spi/spi-cadence-quadspi.c | 159 +-
drivers/spi/spi-cadence.c | 11 +-
drivers/spi/spi-clps711x.c | 5 +-
drivers/spi/spi-fsi.c | 12 +-
drivers/spi/spi-fsl-lpspi.c | 2 +-
drivers/spi/spi-fsl-qspi.c | 4 +
drivers/spi/spi-img-spfi.c | 2 +-
drivers/spi/spi-imx.c | 358 +-
drivers/spi/spi-ingenic.c | 47 +-
drivers/spi/spi-intel.c | 51 +-
drivers/spi/spi-mem.c | 13 +-
drivers/spi/spi-mpc52xx-psc.c | 1 +
drivers/spi/spi-mpc52xx.c | 3 +
drivers/spi/spi-mt65xx.c | 702 +-
drivers/spi/spi-mtk-snfi.c | 1472 +
drivers/spi/spi-mxs.c | 3 +-
drivers/spi/spi-omap-uwire.c | 15 +-
drivers/spi/spi-omap2-mcspi.c | 19 +-
drivers/spi/spi-rockchip.c | 8 +
drivers/spi/spi-rspi.c | 15 +-
drivers/spi/spi-sprd.c | 3 +-
drivers/spi/spi-stm32-qspi.c | 41 +-
drivers/spi/spi-stm32.c | 3 +-
drivers/spi/spi-sunplus-sp7021.c | 6 -
drivers/spi/spi-tegra114.c | 9 +-
drivers/spi/spi-tegra20-sflash.c | 6 +-
drivers/spi/spi-tegra20-slink.c | 6 +-
drivers/spi/spi-ti-qspi.c | 8 +-
drivers/spi/spi.c | 54 +-
drivers/spi/spidev.c | 104 +-
drivers/ssb/pci.c | 1 -
drivers/staging/Kconfig | 4 +-
drivers/staging/Makefile | 4 +-
drivers/staging/fieldbus/anybuss/host.c | 2 +-
drivers/staging/greybus/arche-apb-ctrl.c | 2 +-
drivers/staging/greybus/arche-platform.c | 2 +-
drivers/staging/greybus/audio_codec.c | 44 +-
drivers/staging/greybus/pwm.c | 1 -
drivers/staging/greybus/tools/loopback_test.c | 2 +-
drivers/staging/iio/cdc/ad7746.c | 2 +-
drivers/staging/iio/impedance-analyzer/ad5933.c | 1 -
drivers/staging/iio/resolver/ad2s1210.c | 1 -
drivers/staging/ks7010/ks_hostif.c | 19 +-
drivers/staging/ks7010/ks_wlan.h | 2 +-
.../media/atomisp/pci/runtime/rmgr/src/rmgr_vbuf.c | 4 +-
drivers/staging/media/av7110/av7110_av.c | 46 +-
drivers/staging/media/hantro/TODO | 8 +-
drivers/staging/media/hantro/hantro.h | 2 +
drivers/staging/media/hantro/hantro_drv.c | 18 +-
drivers/staging/media/hantro/hantro_g1_h264_dec.c | 38 +-
drivers/staging/media/hantro/hantro_g2_hevc_dec.c | 36 +-
drivers/staging/media/hantro/hantro_g2_regs.h | 6 +
drivers/staging/media/hantro/hantro_h264.c | 134 +-
drivers/staging/media/hantro/hantro_hevc.c | 46 +-
drivers/staging/media/hantro/hantro_hw.h | 21 +-
drivers/staging/media/hantro/hantro_postproc.c | 53 +-
drivers/staging/media/hantro/hantro_v4l2.c | 107 +-
.../media/hantro/rockchip_vpu2_hw_h264_dec.c | 98 +-
drivers/staging/media/hantro/rockchip_vpu_hw.c | 14 +
drivers/staging/media/ipu3/ipu3-css-fw.c | 4 +-
drivers/staging/media/ipu3/ipu3-css-fw.h | 4 +-
drivers/staging/media/ipu3/ipu3-css-params.c | 20 +
drivers/staging/media/ipu3/ipu3-v4l2.c | 1 +
drivers/staging/media/ipu3/ipu3.c | 25 +-
drivers/staging/media/rkvdec/TODO | 4 +-
drivers/staging/media/rkvdec/rkvdec-h264.c | 157 +-
drivers/staging/media/rkvdec/rkvdec.c | 35 +-
drivers/staging/media/rkvdec/rkvdec.h | 2 +
drivers/staging/media/tegra-video/vi.c | 10 +-
drivers/staging/most/dim2/dim2.c | 29 +-
drivers/staging/qlge/qlge.h | 1 +
drivers/staging/r8188eu/core/rtw_ap.c | 3 -
drivers/staging/r8188eu/core/rtw_br_ext.c | 76 +-
drivers/staging/r8188eu/core/rtw_cmd.c | 337 +-
drivers/staging/r8188eu/core/rtw_fw.c | 163 +-
drivers/staging/r8188eu/core/rtw_ieee80211.c | 45 +-
drivers/staging/r8188eu/core/rtw_ioctl_set.c | 4 +-
drivers/staging/r8188eu/core/rtw_iol.c | 4 +-
drivers/staging/r8188eu/core/rtw_led.c | 10 +-
drivers/staging/r8188eu/core/rtw_mlme.c | 321 +-
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 755 +-
drivers/staging/r8188eu/core/rtw_p2p.c | 70 +-
drivers/staging/r8188eu/core/rtw_pwrctrl.c | 109 +-
drivers/staging/r8188eu/core/rtw_recv.c | 319 +-
drivers/staging/r8188eu/core/rtw_security.c | 6 +-
drivers/staging/r8188eu/core/rtw_sta_mgt.c | 4 +-
drivers/staging/r8188eu/core/rtw_wlan_util.c | 135 +-
drivers/staging/r8188eu/core/rtw_xmit.c | 104 +-
drivers/staging/r8188eu/hal/HalHWImg8188E_BB.c | 6 +-
drivers/staging/r8188eu/hal/HalHWImg8188E_MAC.c | 2 +-
drivers/staging/r8188eu/hal/HalHWImg8188E_RF.c | 2 +-
drivers/staging/r8188eu/hal/HalPwrSeqCmd.c | 22 -
drivers/staging/r8188eu/hal/hal_com.c | 4 +-
drivers/staging/r8188eu/hal/odm_HWConfig.c | 8 +-
drivers/staging/r8188eu/hal/rtl8188e_cmd.c | 49 +-
drivers/staging/r8188eu/hal/rtl8188e_hal_init.c | 15 +-
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c | 8 +-
drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c | 7 +-
drivers/staging/r8188eu/hal/rtl8188eu_xmit.c | 8 +-
drivers/staging/r8188eu/hal/usb_halinit.c | 355 +-
drivers/staging/r8188eu/hal/usb_ops_linux.c | 10 +-
drivers/staging/r8188eu/include/HalVerDef.h | 5 +-
drivers/staging/r8188eu/include/basic_types.h | 73 +-
drivers/staging/r8188eu/include/drv_types.h | 7 +-
drivers/staging/r8188eu/include/hal_intf.h | 34 +-
drivers/staging/r8188eu/include/ieee80211.h | 63 -
drivers/staging/r8188eu/include/odm.h | 29 -
drivers/staging/r8188eu/include/osdep_service.h | 47 -
drivers/staging/r8188eu/include/rtl8188e_hal.h | 3 -
drivers/staging/r8188eu/include/rtl8188e_spec.h | 10 +-
drivers/staging/r8188eu/include/rtw_debug.h | 55 -
drivers/staging/r8188eu/include/rtw_eeprom.h | 3 -
drivers/staging/r8188eu/include/rtw_fw.h | 5 +
drivers/staging/r8188eu/include/rtw_ioctl.h | 79 -
drivers/staging/r8188eu/include/rtw_mlme.h | 11 +-
drivers/staging/r8188eu/include/rtw_mlme_ext.h | 62 +-
drivers/staging/r8188eu/include/rtw_pwrctrl.h | 23 +-
drivers/staging/r8188eu/include/rtw_recv.h | 3 -
drivers/staging/r8188eu/include/rtw_xmit.h | 4 +-
drivers/staging/r8188eu/include/sta_info.h | 2 -
drivers/staging/r8188eu/include/usb_ops.h | 22 +-
drivers/staging/r8188eu/include/usb_osintf.h | 4 -
drivers/staging/r8188eu/include/usb_vendor_req.h | 35 -
drivers/staging/r8188eu/include/wifi.h | 60 +-
drivers/staging/r8188eu/os_dep/ioctl_linux.c | 295 +-
drivers/staging/r8188eu/os_dep/mlme_linux.c | 1 -
drivers/staging/r8188eu/os_dep/os_intfs.c | 45 +-
drivers/staging/r8188eu/os_dep/osdep_service.c | 27 +-
drivers/staging/r8188eu/os_dep/usb_intf.c | 5 +-
drivers/staging/r8188eu/os_dep/usb_ops_linux.c | 19 +-
drivers/staging/r8188eu/os_dep/xmit_linux.c | 16 +-
drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 8 +-
drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 2 +-
drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 52 +-
.../staging/rtl8192e/rtl8192e/r8192E_firmware.c | 3 +-
drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 22 +-
drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 20 +-
drivers/staging/rtl8192e/rtl819x_BAProc.c | 5 +-
drivers/staging/rtl8192e/rtllib.h | 2 +-
drivers/staging/rtl8192e/rtllib_crypt_ccmp.c | 10 +-
drivers/staging/rtl8192e/rtllib_crypt_tkip.c | 38 +-
drivers/staging/rtl8192e/rtllib_rx.c | 22 +-
drivers/staging/rtl8192e/rtllib_softmac.c | 63 +-
drivers/staging/rtl8192e/rtllib_softmac_wx.c | 4 +-
drivers/staging/rtl8192e/rtllib_wx.c | 2 +-
drivers/staging/rtl8192u/ieee80211/ieee80211.h | 2 +-
.../rtl8192u/ieee80211/ieee80211_crypt_ccmp.c | 2 +-
.../rtl8192u/ieee80211/ieee80211_crypt_tkip.c | 2 +-
.../rtl8192u/ieee80211/ieee80211_crypt_wep.c | 2 +-
.../staging/rtl8192u/ieee80211/ieee80211_softmac.c | 30 +-
drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c | 8 +-
.../staging/rtl8192u/ieee80211/rtl819x_HTProc.c | 15 +-
drivers/staging/rtl8192u/r8192U_core.c | 2 +-
drivers/staging/rtl8712/drv_types.h | 3 +-
drivers/staging/rtl8712/ieee80211.c | 4 +-
drivers/staging/rtl8712/os_intfs.c | 1 -
drivers/staging/rtl8712/rtl8712_cmdctrl_bitdef.h | 1 -
drivers/staging/rtl8712/rtl8712_efuse.h | 4 +-
.../staging/rtl8712/rtl8712_macsetting_bitdef.h | 3 -
.../staging/rtl8712/rtl8712_macsetting_regdef.h | 2 -
drivers/staging/rtl8712/rtl8712_ratectrl_regdef.h | 1 -
drivers/staging/rtl8712/rtl8712_recv.c | 16 +-
drivers/staging/rtl8712/rtl8712_security_bitdef.h | 1 -
drivers/staging/rtl8712/rtl8712_spec.h | 3 -
drivers/staging/rtl8712/rtl8712_syscfg_bitdef.h | 4 -
drivers/staging/rtl8712/rtl8712_syscfg_regdef.h | 2 -
drivers/staging/rtl8712/rtl8712_timectrl_bitdef.h | 1 -
drivers/staging/rtl8712/rtl8712_wmac_bitdef.h | 1 -
drivers/staging/rtl8712/rtl871x_cmd.c | 4 +-
drivers/staging/rtl8712/rtl871x_cmd.h | 3 -
drivers/staging/rtl8712/rtl871x_ioctl.h | 1 -
drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 24 +-
drivers/staging/rtl8712/rtl871x_ioctl_rtl.c | 1 -
drivers/staging/rtl8712/rtl871x_ioctl_set.c | 3 +-
drivers/staging/rtl8712/rtl871x_mlme.c | 102 +-
drivers/staging/rtl8712/rtl871x_mp_ioctl.h | 1 -
drivers/staging/rtl8712/rtl871x_mp_phy_regdef.h | 3 -
drivers/staging/rtl8712/rtl871x_recv.c | 1 -
drivers/staging/rtl8712/rtl871x_security.c | 1 -
drivers/staging/rtl8712/sta_info.h | 1 -
drivers/staging/rtl8712/usb_intf.c | 14 +-
drivers/staging/rtl8712/usb_ops.c | 27 +-
drivers/staging/rtl8712/usb_ops_linux.c | 21 +-
drivers/staging/rtl8712/wifi.h | 1 -
drivers/staging/rtl8712/xmit_linux.c | 8 +-
drivers/staging/rtl8723bs/core/rtw_ap.c | 24 +-
drivers/staging/rtl8723bs/core/rtw_cmd.c | 12 +-
drivers/staging/rtl8723bs/core/rtw_efuse.c | 54 +-
drivers/staging/rtl8723bs/core/rtw_ieee80211.c | 44 +-
drivers/staging/rtl8723bs/core/rtw_mlme.c | 66 +-
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 194 +-
drivers/staging/rtl8723bs/core/rtw_rf.c | 56 +-
drivers/staging/rtl8723bs/hal/HalBtcOutSrc.h | 11 -
drivers/staging/rtl8723bs/hal/hal_btcoex.c | 8 -
drivers/staging/rtl8723bs/hal/sdio_ops.c | 15 +-
drivers/staging/rtl8723bs/include/HalVerDef.h | 10 -
drivers/staging/rtl8723bs/include/drv_types.h | 1 -
drivers/staging/rtl8723bs/include/hal_com_reg.h | 295 -
drivers/staging/rtl8723bs/include/rtw_ioctl.h | 72 -
drivers/staging/rtl8723bs/os_dep/os_intfs.c | 2 +-
drivers/staging/rts5208/rtsx_transport.c | 12 +-
drivers/staging/sm750fb/sm750_hw.c | 1 +
.../Documentation/ABI/sysfs-platform-visorchipset | 89 -
drivers/staging/unisys/Documentation/overview.txt | 337 -
drivers/staging/unisys/Kconfig | 16 -
drivers/staging/unisys/MAINTAINERS | 5 -
drivers/staging/unisys/Makefile | 7 -
drivers/staging/unisys/TODO | 16 -
drivers/staging/unisys/include/iochannel.h | 571 -
drivers/staging/unisys/visorhba/Kconfig | 15 -
drivers/staging/unisys/visorhba/Makefile | 10 -
drivers/staging/unisys/visorhba/visorhba_main.c | 1142 -
drivers/staging/unisys/visorinput/Kconfig | 16 -
drivers/staging/unisys/visorinput/Makefile | 7 -
drivers/staging/unisys/visorinput/visorinput.c | 788 -
drivers/staging/unisys/visornic/Kconfig | 16 -
drivers/staging/unisys/visornic/Makefile | 10 -
drivers/staging/unisys/visornic/visornic_main.c | 2148 -
drivers/staging/vc04_services/Kconfig | 1 +
.../staging/vc04_services/bcm2835-audio/Kconfig | 8 +-
drivers/staging/vc04_services/bcm2835-audio/TODO | 10 -
.../vc04_services/bcm2835-audio/bcm2835-ctl.c | 86 +-
.../vc04_services/bcm2835-audio/bcm2835-pcm.c | 5 +-
.../vc04_services/bcm2835-audio/bcm2835-vchiq.c | 2 +-
.../staging/vc04_services/bcm2835-audio/bcm2835.c | 33 +-
.../staging/vc04_services/bcm2835-audio/bcm2835.h | 2 +-
.../staging/vc04_services/bcm2835-camera/Kconfig | 4 +-
.../vc04_services/bcm2835-camera/bcm2835-camera.c | 24 +-
.../vc04_services/bcm2835-camera/controls.c | 33 +-
.../vc04_services/interface/vchiq_arm/vchiq_arm.c | 26 +-
.../vc04_services/interface/vchiq_arm/vchiq_core.h | 1 -
.../vc04_services/interface/vchiq_arm/vchiq_dev.c | 13 +-
.../vc04_services/vchiq-mmal/mmal-msg-common.h | 7 +-
.../vc04_services/vchiq-mmal/mmal-msg-format.h | 6 +-
.../vc04_services/vchiq-mmal/mmal-parameters.h | 15 +-
.../staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 11 +-
drivers/staging/{vme/devices => vme_user}/Kconfig | 2 +-
drivers/staging/{vme/devices => vme_user}/Makefile | 0
.../staging/{vme/devices => vme_user}/vme_user.c | 2 +-
.../staging/{vme/devices => vme_user}/vme_user.h | 0
drivers/staging/vt6655/baseband.c | 15 +-
drivers/staging/vt6655/card.c | 38 +-
drivers/staging/vt6655/card.h | 2 +-
drivers/staging/vt6655/channel.c | 6 +-
drivers/staging/vt6655/device_main.c | 37 +-
drivers/staging/vt6655/key.c | 1 -
drivers/staging/vt6655/mac.c | 1 -
drivers/staging/vt6655/mac.h | 271 +-
drivers/staging/vt6655/rf.c | 10 +-
drivers/staging/vt6655/rxtx.c | 6 +-
drivers/staging/vt6655/srom.c | 19 +-
drivers/staging/vt6655/tmacro.h | 43 -
drivers/staging/vt6655/upc.h | 25 -
drivers/staging/vt6656/channel.c | 1 -
drivers/staging/vt6656/rf.c | 1 -
drivers/staging/wfx/TODO | 6 -
drivers/staging/wlan-ng/cfg80211.c | 10 +-
drivers/staging/wlan-ng/hfa384x.h | 4 +-
drivers/staging/wlan-ng/hfa384x_usb.c | 34 +-
drivers/staging/wlan-ng/prism2usb.c | 8 +-
drivers/target/iscsi/cxgbit/cxgbit.h | 22 +-
drivers/target/iscsi/cxgbit/cxgbit_cm.c | 8 +-
drivers/target/iscsi/cxgbit/cxgbit_ddp.c | 4 +-
drivers/target/iscsi/cxgbit/cxgbit_main.c | 2 +-
drivers/target/iscsi/cxgbit/cxgbit_target.c | 72 +-
drivers/target/iscsi/iscsi_target.c | 304 +-
drivers/target/iscsi/iscsi_target.h | 30 +-
drivers/target/iscsi/iscsi_target_auth.c | 10 +-
drivers/target/iscsi/iscsi_target_auth.h | 4 +-
drivers/target/iscsi/iscsi_target_configfs.c | 58 +-
drivers/target/iscsi/iscsi_target_datain_values.c | 28 +-
drivers/target/iscsi/iscsi_target_datain_values.h | 12 +-
drivers/target/iscsi/iscsi_target_device.c | 4 +-
drivers/target/iscsi/iscsi_target_device.h | 8 +-
drivers/target/iscsi/iscsi_target_erl0.c | 68 +-
drivers/target/iscsi/iscsi_target_erl0.h | 24 +-
drivers/target/iscsi/iscsi_target_erl1.c | 92 +-
drivers/target/iscsi/iscsi_target_erl1.h | 40 +-
drivers/target/iscsi/iscsi_target_erl2.c | 48 +-
drivers/target/iscsi/iscsi_target_erl2.h | 26 +-
drivers/target/iscsi/iscsi_target_login.c | 78 +-
drivers/target/iscsi/iscsi_target_login.h | 22 +-
drivers/target/iscsi/iscsi_target_nego.c | 60 +-
drivers/target/iscsi/iscsi_target_nego.h | 12 +-
drivers/target/iscsi/iscsi_target_nodeattrib.c | 4 +-
drivers/target/iscsi/iscsi_target_parameters.c | 8 +-
drivers/target/iscsi/iscsi_target_parameters.h | 8 +-
drivers/target/iscsi/iscsi_target_seq_pdu_list.c | 44 +-
drivers/target/iscsi/iscsi_target_seq_pdu_list.h | 10 +-
drivers/target/iscsi/iscsi_target_stat.c | 16 +-
drivers/target/iscsi/iscsi_target_tmr.c | 72 +-
drivers/target/iscsi/iscsi_target_tmr.h | 16 +-
drivers/target/iscsi/iscsi_target_tpg.c | 2 +-
drivers/target/iscsi/iscsi_target_tpg.h | 4 +-
drivers/target/iscsi/iscsi_target_util.c | 164 +-
drivers/target/iscsi/iscsi_target_util.h | 102 +-
drivers/target/target_core_configfs.c | 47 +-
drivers/target/target_core_device.c | 20 +-
drivers/target/target_core_file.c | 10 +-
drivers/target/target_core_iblock.c | 17 +-
drivers/target/target_core_pscsi.c | 39 +-
drivers/target/target_core_spc.c | 2 +-
drivers/target/target_core_user.c | 50 +-
drivers/tee/Kconfig | 5 +-
drivers/tee/optee/call.c | 240 +-
drivers/tee/optee/core.c | 1 +
drivers/tee/optee/ffa_abi.c | 38 +-
drivers/tee/optee/optee_ffa.h | 12 +-
drivers/tee/optee/optee_private.h | 31 +-
drivers/tee/optee/optee_smc.h | 48 +-
drivers/tee/optee/smc_abi.c | 197 +-
drivers/tee/tee_core.c | 2 -
drivers/tee/tee_shm.c | 85 +-
drivers/thermal/Makefile | 2 +-
drivers/thermal/broadcom/bcm2711_thermal.c | 5 +-
drivers/thermal/broadcom/sr-thermal.c | 3 +
drivers/thermal/cpufreq_cooling.c | 2 +-
drivers/thermal/devfreq_cooling.c | 33 +-
drivers/thermal/hisi_thermal.c | 6 +-
drivers/thermal/imx_sc_thermal.c | 6 +-
.../intel/int340x_thermal/int3400_thermal.c | 73 +-
.../intel/int340x_thermal/int3403_thermal.c | 1 +
.../int340x_thermal/processor_thermal_device.h | 1 +
.../int340x_thermal/processor_thermal_device_pci.c | 1 +
drivers/thermal/intel/intel_hfi.c | 2 -
drivers/thermal/intel/intel_pch_thermal.c | 43 +-
drivers/thermal/k3_bandgap.c | 5 +
drivers/thermal/k3_j72xx_bandgap.c | 566 +
drivers/thermal/qcom/lmh.c | 1 +
drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 486 +-
drivers/thermal/qcom/tsens.c | 3 +
drivers/thermal/rcar_thermal.c | 17 +-
drivers/thermal/rzg2l_thermal.c | 10 +-
drivers/thermal/thermal_core.c | 1 +
drivers/thermal/thermal_hwmon.c | 6 +-
drivers/thermal/thermal_of.c | 14 +-
drivers/thunderbolt/ctl.c | 15 +-
drivers/thunderbolt/domain.c | 12 +-
drivers/thunderbolt/nhi.c | 46 +-
drivers/thunderbolt/path.c | 6 +
drivers/thunderbolt/switch.c | 109 +-
drivers/thunderbolt/tb.c | 25 +-
drivers/thunderbolt/tb.h | 6 +-
drivers/thunderbolt/tb_msgs.h | 39 +
drivers/thunderbolt/tb_regs.h | 5 +
drivers/thunderbolt/test.c | 242 +-
drivers/thunderbolt/tunnel.c | 18 +-
drivers/thunderbolt/tunnel.h | 4 +-
drivers/thunderbolt/usb4_port.c | 38 +
drivers/thunderbolt/xdomain.c | 609 +-
drivers/tty/amiserial.c | 2 -
drivers/tty/goldfish.c | 22 +-
drivers/tty/hvc/Kconfig | 19 +
drivers/tty/hvc/hvc_dcc.c | 194 +-
drivers/tty/hvc/hvc_opal.c | 6 +-
drivers/tty/hvc/hvc_vio.c | 2 +-
drivers/tty/hvc/hvc_xen.c | 2 +-
drivers/tty/hvc/hvcs.c | 5 +-
drivers/tty/hvc/hvsi.c | 2 +-
drivers/tty/mxser.c | 5 +-
drivers/tty/n_gsm.c | 57 +-
drivers/tty/n_tty.c | 73 +-
drivers/tty/serial/8250/8250.h | 42 +
drivers/tty/serial/8250/8250_aspeed_vuart.c | 2 +
drivers/tty/serial/8250/8250_core.c | 1 -
drivers/tty/serial/8250/8250_dma.c | 7 +-
drivers/tty/serial/8250/8250_dw.c | 229 +-
drivers/tty/serial/8250/8250_dwlib.c | 116 +-
drivers/tty/serial/8250/8250_dwlib.h | 51 +
drivers/tty/serial/8250/8250_fintek.c | 8 +-
drivers/tty/serial/8250/8250_mtk.c | 22 +-
drivers/tty/serial/8250/8250_of.c | 2 +
drivers/tty/serial/8250/8250_pci.c | 480 +-
drivers/tty/serial/8250/8250_port.c | 140 +-
drivers/tty/serial/8250/8250_pxa.c | 1 -
drivers/tty/serial/8250/Kconfig | 2 +-
drivers/tty/serial/Kconfig | 14 +-
drivers/tty/serial/altera_jtaguart.c | 6 +-
drivers/tty/serial/amba-pl011.c | 48 +-
drivers/tty/serial/amba-pl011.h | 35 -
drivers/tty/serial/atmel_serial.c | 4 +-
drivers/tty/serial/cpm_uart/cpm_uart.h | 2 +
drivers/tty/serial/cpm_uart/cpm_uart_core.c | 2 +-
drivers/tty/serial/cpm_uart/cpm_uart_cpm2.c | 1 -
drivers/tty/serial/digicolor-usart.c | 7 +-
drivers/tty/serial/fsl_lpuart.c | 84 +-
drivers/tty/serial/icom.c | 538 +-
drivers/tty/serial/icom.h | 274 -
drivers/tty/serial/imx.c | 4 +-
drivers/tty/serial/jsm/jsm_cls.c | 8 +-
drivers/tty/serial/jsm/jsm_neo.c | 8 +-
drivers/tty/serial/max310x.c | 1 -
drivers/tty/serial/men_z135_uart.c | 1 -
drivers/tty/serial/meson_uart.c | 40 +-
drivers/tty/serial/mpc52xx_uart.c | 5 +-
drivers/tty/serial/msm_serial.c | 5 +
drivers/tty/serial/omap-serial.c | 13 +-
drivers/tty/serial/owl-uart.c | 7 +-
drivers/tty/serial/pch_uart.c | 77 +-
drivers/tty/serial/pic32_uart.c | 159 +-
drivers/tty/serial/pic32_uart.h | 125 -
drivers/tty/serial/pmac_zilog.c | 69 +-
drivers/tty/serial/pmac_zilog.h | 11 -
drivers/tty/serial/qcom_geni_serial.c | 58 +-
drivers/tty/serial/rda-uart.c | 2 +
drivers/tty/serial/sa1100.c | 4 +-
drivers/tty/serial/samsung_tty.c | 13 +
drivers/tty/serial/sc16is7xx.c | 10 -
drivers/tty/serial/serial_core.c | 89 +-
drivers/tty/serial/serial_txx9.c | 2 +
drivers/tty/serial/sh-sci.c | 6 +-
drivers/tty/serial/sifive.c | 20 +-
drivers/tty/serial/st-asc.c | 4 +
drivers/tty/serial/stm32-usart.c | 225 +-
drivers/tty/serial/stm32-usart.h | 3 +
drivers/tty/serial/sunplus-uart.c | 2 +-
drivers/tty/serial/sunsu.c | 2 -
drivers/tty/serial/uartlite.c | 3 +-
drivers/tty/serial/xilinx_uartps.c | 46 +-
drivers/tty/serial/zs.c | 2 +-
drivers/tty/synclink_gt.c | 2 +
drivers/tty/sysrq.c | 29 +-
drivers/tty/tty_baudrate.c | 35 +-
drivers/tty/tty_buffer.c | 3 +-
drivers/tty/tty_ioctl.c | 2 -
drivers/tty/tty_jobctrl.c | 4 +-
drivers/ufs/Kconfig | 30 +
drivers/ufs/Makefile | 5 +
drivers/ufs/core/Kconfig | 60 +
drivers/ufs/core/Makefile | 10 +
drivers/{scsi/ufs => ufs/core}/ufs-debugfs.c | 3 +-
drivers/{scsi/ufs => ufs/core}/ufs-debugfs.h | 0
.../{scsi/ufs => ufs/core}/ufs-fault-injection.c | 0
.../{scsi/ufs => ufs/core}/ufs-fault-injection.h | 0
drivers/{scsi/ufs => ufs/core}/ufs-hwmon.c | 3 +-
drivers/{scsi/ufs => ufs/core}/ufs-sysfs.c | 3 +-
drivers/{scsi/ufs => ufs/core}/ufs-sysfs.h | 3 +-
drivers/{scsi/ufs => ufs/core}/ufs_bsg.c | 6 +
drivers/{scsi/ufs => ufs/core}/ufs_bsg.h | 7 +-
drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.c | 2 +-
drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.h | 7 +-
drivers/ufs/core/ufshcd-priv.h | 298 +
drivers/{scsi/ufs => ufs/core}/ufshcd.c | 256 +-
drivers/{scsi/ufs => ufs/core}/ufshpb.c | 230 +-
drivers/{scsi/ufs => ufs/core}/ufshpb.h | 16 +-
drivers/ufs/host/Kconfig | 114 +
drivers/{scsi/ufs => ufs/host}/Makefile | 12 -
drivers/{scsi/ufs => ufs/host}/cdns-pltfrm.c | 2 +-
drivers/{scsi/ufs => ufs/host}/tc-dwc-g210-pci.c | 3 +-
.../{scsi/ufs => ufs/host}/tc-dwc-g210-pltfrm.c | 1 +
drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.c | 6 +-
drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.h | 2 +
drivers/{scsi/ufs => ufs/host}/ti-j721e-ufs.c | 6 +-
drivers/{scsi/ufs => ufs/host}/ufs-exynos.c | 11 +-
drivers/{scsi/ufs => ufs/host}/ufs-exynos.h | 8 +-
drivers/{scsi/ufs => ufs/host}/ufs-hisi.c | 10 +-
drivers/{scsi/ufs => ufs/host}/ufs-hisi.h | 0
.../{scsi/ufs => ufs/host}/ufs-mediatek-trace.h | 2 +-
drivers/{scsi/ufs => ufs/host}/ufs-mediatek.c | 37 +-
drivers/{scsi/ufs => ufs/host}/ufs-mediatek.h | 0
drivers/{scsi/ufs => ufs/host}/ufs-qcom-ice.c | 2 +-
drivers/{scsi/ufs => ufs/host}/ufs-qcom.c | 81 +-
drivers/{scsi/ufs => ufs/host}/ufs-qcom.h | 6 +-
drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.c | 6 +-
drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.h | 2 +
drivers/{scsi/ufs => ufs/host}/ufshcd-pci.c | 6 +-
drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.c | 42 +-
drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.h | 2 +-
drivers/{scsi/ufs => ufs/host}/ufshci-dwc.h | 0
drivers/uio/uio_dfl.c | 2 +
drivers/usb/atm/usbatm.c | 2 +-
drivers/usb/c67x00/c67x00-drv.c | 6 +-
drivers/usb/c67x00/c67x00-sched.c | 4 +-
drivers/usb/cdns3/cdns3-gadget.c | 47 +-
drivers/usb/cdns3/cdns3-gadget.h | 9 +-
drivers/usb/class/cdc-acm.h | 8 -
drivers/usb/class/cdc-wdm.c | 1 +
drivers/usb/core/devices.c | 47 -
drivers/usb/core/driver.c | 25 +-
drivers/usb/core/hcd-pci.c | 5 +-
drivers/usb/core/hcd.c | 29 +-
drivers/usb/core/hub.c | 10 +-
drivers/usb/core/quirks.c | 3 +
drivers/usb/core/usb-acpi.c | 7 +-
drivers/usb/dwc2/core.c | 9 +
drivers/usb/dwc2/core.h | 5 +
drivers/usb/dwc2/gadget.c | 1 -
drivers/usb/dwc2/params.c | 50 +-
drivers/usb/dwc3/Kconfig | 9 +
drivers/usb/dwc3/Makefile | 1 +
drivers/usb/dwc3/core.c | 81 +-
drivers/usb/dwc3/core.h | 2 +
drivers/usb/dwc3/drd.c | 50 -
drivers/usb/dwc3/dwc3-am62.c | 332 +
drivers/usb/dwc3/dwc3-pci.c | 2 +-
drivers/usb/dwc3/dwc3-xilinx.c | 17 +
drivers/usb/dwc3/ep0.c | 14 +-
drivers/usb/dwc3/gadget.c | 190 +-
drivers/usb/dwc3/gadget.h | 2 +
drivers/usb/dwc3/host.c | 2 -
drivers/usb/gadget/composite.c | 2 +-
drivers/usb/gadget/configfs.c | 2 +-
drivers/usb/gadget/function/f_acm.c | 10 +
drivers/usb/gadget/function/f_uvc.c | 30 +-
drivers/usb/gadget/function/u_audio.c | 4 +-
drivers/usb/gadget/function/u_uvc.h | 1 +
drivers/usb/gadget/function/uvc.h | 3 +
drivers/usb/gadget/function/uvc_configfs.c | 189 +-
drivers/usb/gadget/function/uvc_configfs.h | 120 +-
drivers/usb/gadget/function/uvc_queue.c | 30 +-
drivers/usb/gadget/function/uvc_queue.h | 3 +-
drivers/usb/gadget/function/uvc_v4l2.c | 3 +-
drivers/usb/gadget/function/uvc_video.c | 17 +-
drivers/usb/gadget/legacy/dbgp.c | 2 +-
drivers/usb/gadget/legacy/inode.c | 2 +-
drivers/usb/gadget/legacy/raw_gadget.c | 6 +-
drivers/usb/gadget/udc/core.c | 289 +-
drivers/usb/gadget/udc/net2272.c | 6 +-
drivers/usb/gadget/udc/net2280.c | 14 +-
drivers/usb/gadget/udc/omap_udc.c | 21 +-
drivers/usb/gadget/udc/pxa25x_udc.c | 37 +-
drivers/usb/gadget/udc/pxa25x_udc.h | 7 +-
drivers/usb/gadget/udc/pxa27x_udc.h | 2 +-
drivers/usb/gadget/udc/s3c-hsudc.c | 4 +-
drivers/usb/gadget/udc/tegra-xudc.c | 4 +-
drivers/usb/gadget/udc/udc-xilinx.c | 2 +-
drivers/usb/host/Kconfig | 2 +-
drivers/usb/host/ehci-omap.c | 5 -
drivers/usb/host/ehci-platform.c | 1 +
drivers/usb/host/ehci-q.c | 4 +-
drivers/usb/host/ehci-xilinx-of.c | 12 +-
drivers/usb/host/fhci-hcd.c | 3 +-
drivers/usb/host/fotg210-hcd.c | 2 +-
drivers/usb/host/isp116x-hcd.c | 11 +-
drivers/usb/host/isp1362-hcd.c | 6 +-
drivers/usb/host/max3421-hcd.c | 6 +-
drivers/usb/host/ohci-hcd.c | 3 +-
drivers/usb/host/ohci-omap.c | 60 +-
drivers/usb/host/ohci-platform.c | 1 +
drivers/usb/host/ohci-ppc-of.c | 3 -
drivers/usb/host/ohci-pxa27x.c | 3 +-
drivers/usb/host/oxu210hp-hcd.c | 16 +-
drivers/usb/host/r8a66597-hcd.c | 3 +-
drivers/usb/host/sl811-hcd.c | 6 +-
drivers/usb/host/xen-hcd.c | 65 +-
drivers/usb/host/xhci-hub.c | 3 +-
drivers/usb/host/xhci-mem.c | 23 +-
drivers/usb/host/xhci-mtk-sch.c | 90 +-
drivers/usb/host/xhci-mtk.h | 2 -
drivers/usb/host/xhci-pci.c | 5 +-
drivers/usb/host/xhci-plat.c | 46 +-
drivers/usb/host/xhci-ring.c | 144 +-
drivers/usb/host/xhci.c | 175 +-
drivers/usb/host/xhci.h | 30 +-
drivers/usb/isp1760/isp1760-core.c | 8 +
drivers/usb/isp1760/isp1760-hcd.c | 6 +-
drivers/usb/misc/ftdi-elan.c | 15 +-
drivers/usb/misc/lvstest.c | 2 +-
drivers/usb/musb/mediatek.c | 73 +-
drivers/usb/musb/omap2430.c | 1 +
drivers/usb/phy/Kconfig | 3 +-
drivers/usb/phy/phy-isp1301-omap.c | 6 +-
drivers/usb/phy/phy-omap-otg.c | 4 +-
drivers/usb/serial/ark3116.c | 3 +-
drivers/usb/serial/ftdi_sio.c | 2 +-
drivers/usb/serial/option.c | 6 +
drivers/usb/serial/pl2303.c | 4 +
drivers/usb/serial/pl2303.h | 1 +
drivers/usb/serial/qcserial.c | 2 +
drivers/usb/serial/whiteheat.c | 4 -
drivers/usb/storage/alauda.c | 4 +-
drivers/usb/storage/isd200.c | 8 +-
drivers/usb/storage/karma.c | 15 +-
drivers/usb/storage/onetouch.c | 2 +-
drivers/usb/storage/shuttle_usbat.c | 28 +-
drivers/usb/storage/transport.c | 2 +-
drivers/usb/typec/bus.c | 2 +-
drivers/usb/typec/mux.c | 271 +-
drivers/usb/typec/mux.h | 12 +-
drivers/usb/typec/mux/Kconfig | 10 +
drivers/usb/typec/mux/Makefile | 1 +
drivers/usb/typec/mux/fsa4480.c | 218 +
drivers/usb/typec/mux/intel_pmc_mux.c | 29 +-
drivers/usb/typec/mux/pi3usb30532.c | 8 +-
drivers/usb/typec/tcpm/fusb302.c | 4 +-
drivers/usb/typec/tcpm/tcpci.c | 2 +-
drivers/usb/typec/tcpm/tcpci_mt6360.c | 26 +
drivers/usb/typec/tipd/core.c | 32 +-
drivers/usb/typec/ucsi/ucsi.c | 85 +-
drivers/usb/typec/ucsi/ucsi.h | 6 +-
drivers/usb/typec/ucsi/ucsi_acpi.c | 23 +-
drivers/usb/usbip/stub_dev.c | 2 +-
drivers/usb/usbip/stub_rx.c | 2 +
drivers/vdpa/alibaba/eni_vdpa.c | 2 +-
drivers/vdpa/ifcvf/ifcvf_main.c | 23 +-
drivers/vdpa/mlx5/core/mlx5_vdpa.h | 2 +
drivers/vdpa/mlx5/net/mlx5_vnet.c | 553 +-
drivers/vdpa/vdpa.c | 286 +-
drivers/vdpa/vdpa_sim/vdpa_sim.c | 105 +-
drivers/vdpa/vdpa_sim/vdpa_sim.h | 3 +
drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 169 +-
drivers/vdpa/vdpa_user/vduse_dev.c | 10 +-
drivers/vdpa/virtio_pci/vp_vdpa.c | 161 +-
drivers/vfio/fsl-mc/vfio_fsl_mc.c | 1 +
drivers/vfio/mdev/Makefile | 2 +-
drivers/vfio/mdev/mdev_core.c | 52 +-
drivers/vfio/mdev/mdev_driver.c | 10 -
drivers/vfio/mdev/mdev_private.h | 6 +-
drivers/vfio/mdev/mdev_sysfs.c | 37 +-
drivers/vfio/mdev/vfio_mdev.c | 152 -
drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c | 16 +-
drivers/vfio/pci/mlx5/cmd.c | 236 +-
drivers/vfio/pci/mlx5/cmd.h | 52 +-
drivers/vfio/pci/mlx5/main.c | 136 +-
drivers/vfio/pci/vfio_pci.c | 7 +-
drivers/vfio/pci/vfio_pci_config.c | 56 +-
drivers/vfio/pci/vfio_pci_core.c | 254 +-
drivers/vfio/platform/vfio_amba.c | 1 +
drivers/vfio/platform/vfio_platform.c | 1 +
drivers/vfio/vfio.c | 1013 +-
drivers/vfio/vfio_iommu_type1.c | 30 +-
drivers/vhost/iotlb.c | 23 +-
drivers/vhost/net.c | 26 +-
drivers/vhost/scsi.c | 4 +-
drivers/vhost/test.c | 14 +-
drivers/vhost/vdpa.c | 273 +-
drivers/vhost/vhost.c | 45 +-
drivers/vhost/vhost.h | 7 +-
drivers/vhost/vringh.c | 10 +-
drivers/vhost/vsock.c | 7 +-
drivers/video/backlight/Kconfig | 4 +-
drivers/video/backlight/omap1_bl.c | 4 +-
drivers/video/console/sticon.c | 5 +-
drivers/video/console/sticore.c | 53 +-
drivers/video/fbdev/Makefile | 2 +-
drivers/video/fbdev/amba-clcd.c | 5 +-
drivers/video/fbdev/core/fbcon.c | 12 +-
drivers/video/fbdev/core/fbmem.c | 47 -
drivers/video/fbdev/core/fbsysfs.c | 4 +
drivers/video/fbdev/efifb.c | 9 +-
drivers/video/fbdev/hyperv_fb.c | 42 +-
drivers/video/fbdev/mx3fb.c | 2 +-
drivers/video/fbdev/omap/Kconfig | 4 +-
drivers/video/fbdev/omap/Makefile | 5 +
drivers/video/fbdev/omap/lcd_ams_delta.c | 6 +-
.../video/fbdev/omap}/lcd_dma.c | 7 +-
.../mach => drivers/video/fbdev/omap}/lcd_dma.h | 2 -
drivers/video/fbdev/omap/lcd_inn1510.c | 9 +-
drivers/video/fbdev/omap/lcd_osk.c | 4 +-
drivers/video/fbdev/omap/lcdc.c | 10 +-
drivers/video/fbdev/omap/lcdc.h | 35 +
drivers/video/fbdev/omap/omapfb.h | 6 +
drivers/video/fbdev/omap/omapfb_main.c | 19 +-
drivers/video/fbdev/omap/sossi.c | 4 +-
.../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 7 +-
drivers/video/fbdev/omap2/omapfb/dss/hdmi_pll.c | 8 +-
drivers/video/fbdev/pxa3xx-gcu.c | 12 +-
.../video/fbdev/pxa3xx-regs.h | 24 +-
drivers/video/fbdev/pxafb.c | 4 +-
drivers/video/fbdev/simplefb.c | 8 +-
drivers/video/fbdev/sticore.h | 3 +
drivers/video/fbdev/stifb.c | 4 +-
drivers/video/fbdev/vesafb.c | 11 +-
drivers/video/fbdev/xen-fbfront.c | 1 -
drivers/virt/Kconfig | 5 +
drivers/virt/Makefile | 2 +
drivers/virt/acrn/acrn_drv.h | 10 +-
drivers/virt/acrn/mm.c | 9 +-
drivers/virt/coco/efi_secret/Kconfig | 16 +
drivers/virt/coco/efi_secret/Makefile | 2 +
drivers/virt/coco/efi_secret/efi_secret.c | 349 +
drivers/virt/coco/sev-guest/Kconfig | 14 +
drivers/virt/coco/sev-guest/Makefile | 2 +
drivers/virt/coco/sev-guest/sev-guest.c | 743 +
drivers/virt/coco/sev-guest/sev-guest.h | 63 +
drivers/virt/fsl_hypervisor.c | 3 +-
drivers/virtio/Kconfig | 6 -
drivers/virtio/virtio.c | 37 +-
drivers/virtio/virtio_balloon.c | 12 +-
drivers/virtio/virtio_mem.c | 6 +-
drivers/virtio/virtio_mmio.c | 28 +-
drivers/virtio/virtio_pci_common.c | 15 +-
drivers/virtio/virtio_pci_common.h | 10 +-
drivers/virtio/virtio_pci_legacy.c | 11 +-
drivers/virtio/virtio_pci_modern.c | 14 +-
drivers/virtio/virtio_pci_modern_dev.c | 6 +
drivers/virtio/virtio_ring.c | 55 +-
drivers/virtio/virtio_vdpa.c | 12 +-
drivers/visorbus/Kconfig | 15 -
drivers/visorbus/Makefile | 10 -
drivers/visorbus/controlvmchannel.h | 650 -
drivers/visorbus/vbuschannel.h | 95 -
drivers/visorbus/visorbus_main.c | 1234 -
drivers/visorbus/visorbus_private.h | 48 -
drivers/visorbus/visorchannel.c | 434 -
drivers/visorbus/visorchipset.c | 1691 -
drivers/vme/Kconfig | 2 -
drivers/w1/masters/ds2490.c | 124 +-
drivers/watchdog/Kconfig | 30 +
drivers/watchdog/Makefile | 3 +
drivers/watchdog/bcm7038_wdt.c | 1 +
drivers/watchdog/da9063_wdt.c | 36 +
drivers/watchdog/gxp-wdt.c | 174 +
drivers/watchdog/iTCO_wdt.c | 20 +-
drivers/watchdog/mtk_wdt.c | 12 +
drivers/watchdog/rti_wdt.c | 10 +-
drivers/watchdog/rzg2l_wdt.c | 83 +-
drivers/watchdog/rzn1_wdt.c | 203 +
drivers/watchdog/sa1100_wdt.c | 88 +-
drivers/watchdog/sp805_wdt.c | 1 +
drivers/watchdog/sunplus_wdt.c | 220 +
drivers/watchdog/ts4800_wdt.c | 5 +-
drivers/watchdog/wdat_wdt.c | 6 +-
drivers/xen/Kconfig | 20 +
drivers/xen/Makefile | 2 +
drivers/xen/gntalloc.c | 9 +-
drivers/xen/gntdev-dmabuf.c | 15 +-
drivers/xen/grant-dma-iommu.c | 78 +
drivers/xen/grant-dma-ops.c | 346 +
drivers/xen/grant-table.c | 269 +-
drivers/xen/pvcalls-front.c | 6 +-
drivers/xen/swiotlb-xen.c | 231 +-
drivers/xen/xen-front-pgdir-shbuf.c | 20 +-
drivers/xen/xen-scsiback.c | 82 +-
drivers/xen/xenbus/xenbus_client.c | 82 +-
drivers/xen/xenbus/xenbus_probe.c | 91 +-
drivers/xen/xlate_mmu.c | 1 -
fs/9p/cache.c | 4 +-
fs/9p/v9fs.c | 2 +-
fs/9p/v9fs.h | 10 +-
fs/9p/vfs_addr.c | 36 +-
fs/9p/vfs_inode.c | 5 +-
fs/Kconfig | 22 +-
fs/Kconfig.binfmt | 8 +-
fs/adfs/inode.c | 10 +-
fs/affs/file.c | 21 +-
fs/affs/symlink.c | 5 +-
fs/afs/callback.c | 2 +-
fs/afs/dir.c | 44 +-
fs/afs/dir_edit.c | 10 +-
fs/afs/dir_silly.c | 4 +-
fs/afs/dynroot.c | 2 +-
fs/afs/file.c | 38 +-
fs/afs/fs_operation.c | 6 +-
fs/afs/inode.c | 52 +-
fs/afs/internal.h | 27 +-
fs/afs/misc.c | 5 +-
fs/afs/rotate.c | 4 +
fs/afs/rxrpc.c | 8 +-
fs/afs/security.c | 3 +-
fs/afs/super.c | 6 +-
fs/afs/volume.c | 3 +-
fs/afs/write.c | 26 +-
fs/befs/linuxvfs.c | 17 +-
fs/bfs/file.c | 11 +-
fs/binfmt_flat.c | 239 +-
fs/btrfs/acl.c | 39 +-
fs/btrfs/async-thread.c | 122 +-
fs/btrfs/async-thread.h | 7 +-
fs/btrfs/block-group.c | 205 +-
fs/btrfs/block-group.h | 7 +-
fs/btrfs/btrfs_inode.h | 34 +-
fs/btrfs/check-integrity.c | 172 +-
fs/btrfs/check-integrity.h | 6 +-
fs/btrfs/compression.c | 60 +-
fs/btrfs/compression.h | 4 +-
fs/btrfs/ctree.c | 102 +-
fs/btrfs/ctree.h | 165 +-
fs/btrfs/delalloc-space.c | 9 +-
fs/btrfs/delayed-inode.c | 84 +-
fs/btrfs/delayed-ref.c | 4 +-
fs/btrfs/delayed-ref.h | 1 -
fs/btrfs/dev-replace.c | 52 +-
fs/btrfs/dir-item.c | 31 +-
fs/btrfs/disk-io.c | 344 +-
fs/btrfs/disk-io.h | 10 +-
fs/btrfs/extent-tree.c | 69 +-
fs/btrfs/extent_io.c | 634 +-
fs/btrfs/extent_io.h | 47 +-
fs/btrfs/file.c | 295 +-
fs/btrfs/free-space-cache.c | 11 +-
fs/btrfs/free-space-tree.c | 2 +-
fs/btrfs/inode.c | 1905 +-
fs/btrfs/ioctl.c | 289 +-
fs/btrfs/props.c | 99 +-
fs/btrfs/props.h | 8 +-
fs/btrfs/qgroup.c | 7 +-
fs/btrfs/qgroup.h | 12 +-
fs/btrfs/raid56.c | 809 +-
fs/btrfs/raid56.h | 9 +-
fs/btrfs/reflink.c | 23 +-
fs/btrfs/relocation.c | 32 +-
fs/btrfs/root-tree.c | 3 +-
fs/btrfs/scrub.c | 1889 +-
fs/btrfs/send.c | 402 +-
fs/btrfs/space-info.c | 11 +-
fs/btrfs/space-info.h | 8 +
fs/btrfs/subpage.c | 55 +-
fs/btrfs/subpage.h | 2 +
fs/btrfs/super.c | 9 +-
fs/btrfs/sysfs.c | 46 +-
fs/btrfs/tests/btrfs-tests.c | 24 +-
fs/btrfs/transaction.c | 116 +-
fs/btrfs/tree-checker.c | 55 +
fs/btrfs/tree-checker.h | 1 +
fs/btrfs/tree-log.c | 64 +-
fs/btrfs/volumes.c | 142 +-
fs/btrfs/volumes.h | 46 +-
fs/btrfs/xattr.c | 51 +-
fs/btrfs/zoned.c | 252 +-
fs/btrfs/zoned.h | 23 +-
fs/btrfs/zstd.c | 14 +-
fs/buffer.c | 214 +-
fs/cachefiles/Kconfig | 12 +
fs/cachefiles/Makefile | 1 +
fs/cachefiles/daemon.c | 117 +-
fs/cachefiles/interface.c | 2 +
fs/cachefiles/internal.h | 78 +
fs/cachefiles/io.c | 76 +-
fs/cachefiles/namei.c | 16 +-
fs/cachefiles/ondemand.c | 503 +
fs/ceph/addr.c | 99 +-
fs/ceph/cache.c | 4 +-
fs/ceph/cache.h | 2 +-
fs/ceph/caps.c | 179 +-
fs/ceph/file.c | 18 +-
fs/ceph/inode.c | 45 +-
fs/ceph/mds_client.c | 125 +-
fs/ceph/mds_client.h | 2 +-
fs/ceph/quota.c | 19 +-
fs/ceph/snap.c | 8 +-
fs/ceph/super.c | 3 +-
fs/ceph/super.h | 39 +-
fs/ceph/xattr.c | 24 +-
fs/cifs/Makefile | 4 +-
fs/cifs/cifs_debug.c | 11 +-
fs/cifs/cifs_swn.c | 4 +-
fs/cifs/cifsencrypt.c | 8 +-
fs/cifs/cifsfs.c | 22 +-
fs/cifs/cifsfs.h | 7 +-
fs/cifs/cifsglob.h | 160 +-
fs/cifs/cifsproto.h | 9 +
fs/cifs/cifssmb.c | 5 +-
fs/cifs/connect.c | 138 +-
fs/cifs/dfs_cache.c | 96 +-
fs/cifs/file.c | 59 +-
fs/cifs/fs_context.c | 33 +-
fs/cifs/fs_context.h | 4 +-
fs/cifs/fscache.c | 8 +-
fs/cifs/fscache.h | 10 +-
fs/cifs/inode.c | 4 +-
fs/cifs/misc.c | 42 +-
fs/cifs/readdir.c | 179 +-
fs/cifs/sess.c | 44 +-
fs/cifs/smb1ops.c | 6 +-
fs/cifs/smb2inode.c | 7 +-
fs/cifs/smb2misc.c | 12 +-
fs/cifs/smb2ops.c | 49 +-
fs/cifs/smb2pdu.c | 14 +-
fs/cifs/smb2pdu.h | 22 -
fs/cifs/smb2transport.c | 7 +-
fs/cifs/smbdirect.c | 8 +-
fs/cifs/trace.h | 2 +
fs/cifs/transport.c | 48 +-
fs/coda/symlink.c | 7 +-
fs/cramfs/README | 8 +-
fs/cramfs/inode.c | 7 +-
fs/crypto/crypto.c | 10 +-
fs/crypto/fname.c | 11 +-
fs/crypto/fscrypt_private.h | 10 +-
fs/crypto/inline_crypt.c | 33 +-
fs/crypto/keyring.c | 64 +-
fs/crypto/keysetup.c | 22 +-
fs/crypto/policy.c | 132 +-
fs/dax.c | 120 +-
fs/direct-io.c | 32 +-
fs/dlm/dir.c | 2 +-
fs/dlm/dlm_internal.h | 66 +-
fs/dlm/lock.c | 654 +-
fs/dlm/lockspace.c | 12 +
fs/dlm/lockspace.h | 1 +
fs/dlm/lowcomms.c | 12 +-
fs/dlm/member.c | 11 +-
fs/dlm/midcomms.c | 61 +-
fs/dlm/plock.c | 178 +-
fs/dlm/rcom.c | 120 +-
fs/dlm/recover.c | 49 +-
fs/dlm/requestqueue.c | 20 +-
fs/dlm/user.c | 16 +-
fs/dlm/util.c | 92 +-
fs/dlm/util.h | 8 +-
fs/ecryptfs/mmap.c | 15 +-
fs/efs/inode.c | 8 +-
fs/efs/symlink.c | 5 +-
fs/erofs/Kconfig | 10 +
fs/erofs/Makefile | 1 +
fs/erofs/data.c | 34 +-
fs/erofs/decompressor.c | 7 +-
fs/erofs/erofs_fs.h | 50 +-
fs/erofs/fscache.c | 520 +
fs/erofs/inode.c | 16 +-
fs/erofs/internal.h | 76 +-
fs/erofs/namei.c | 5 +-
fs/erofs/super.c | 237 +-
fs/erofs/sysfs.c | 4 +-
fs/erofs/zdata.c | 174 +-
fs/erofs/zdata.h | 50 +-
fs/exec.c | 14 +-
fs/exfat/balloc.c | 8 +-
fs/exfat/exfat_fs.h | 7 +
fs/exfat/fatent.c | 47 +-
fs/exfat/file.c | 5 +-
fs/exfat/inode.c | 10 +-
fs/exfat/misc.c | 10 +-
fs/exfat/namei.c | 27 +-
fs/exfat/super.c | 19 +-
fs/exportfs/expfs.c | 5 +-
fs/ext2/inode.c | 22 +-
fs/ext4/Makefile | 1 +
fs/ext4/crypto.c | 246 +
fs/ext4/dir.c | 6 +-
fs/ext4/ext4.h | 86 +-
fs/ext4/extents.c | 20 +-
fs/ext4/fast_commit.c | 13 +-
fs/ext4/file.c | 4 +-
fs/ext4/inline.c | 59 +-
fs/ext4/inode.c | 85 +-
fs/ext4/ioctl.c | 69 +-
fs/ext4/mballoc.c | 35 +-
fs/ext4/mmp.c | 2 +-
fs/ext4/move_extent.c | 17 +-
fs/ext4/namei.c | 214 +-
fs/ext4/readpage.c | 4 +-
fs/ext4/super.c | 227 +-
fs/ext4/symlink.c | 51 +-
fs/ext4/verity.c | 9 +-
fs/f2fs/checkpoint.c | 18 +-
fs/f2fs/compress.c | 2 +-
fs/f2fs/data.c | 249 +-
fs/f2fs/debug.c | 18 +-
fs/f2fs/dir.c | 3 +-
fs/f2fs/f2fs.h | 147 +-
fs/f2fs/file.c | 330 +-
fs/f2fs/gc.c | 186 +-
fs/f2fs/hash.c | 11 +-
fs/f2fs/inline.c | 29 +-
fs/f2fs/inode.c | 34 +-
fs/f2fs/namei.c | 38 +-
fs/f2fs/node.c | 31 +-
fs/f2fs/node.h | 1 -
fs/f2fs/segment.c | 468 +-
fs/f2fs/segment.h | 40 +-
fs/f2fs/super.c | 90 +-
fs/f2fs/verity.c | 11 +-
fs/fat/fat.h | 14 +-
fs/fat/fatent.c | 7 +-
fs/fat/file.c | 19 +-
fs/fat/inode.c | 39 +-
fs/fat/misc.c | 78 +-
fs/fat/namei_vfat.c | 4 -
fs/fcntl.c | 9 +-
fs/file.c | 113 +-
fs/file_table.c | 9 +-
fs/freevxfs/vxfs.h | 27 +-
fs/freevxfs/vxfs_bmap.c | 26 +-
fs/freevxfs/vxfs_dir.h | 27 +-
fs/freevxfs/vxfs_extern.h | 27 +-
fs/freevxfs/vxfs_fshead.c | 26 +-
fs/freevxfs/vxfs_fshead.h | 27 +-
fs/freevxfs/vxfs_immed.c | 41 +-
fs/freevxfs/vxfs_inode.c | 26 +-
fs/freevxfs/vxfs_inode.h | 27 +-
fs/freevxfs/vxfs_lookup.c | 26 +-
fs/freevxfs/vxfs_olt.c | 26 +-
fs/freevxfs/vxfs_olt.h | 27 +-
fs/freevxfs/vxfs_subr.c | 43 +-
fs/freevxfs/vxfs_super.c | 26 +-
fs/fs-writeback.c | 56 +-
fs/fsopen.c | 4 +-
fs/fuse/dax.c | 4 +-
fs/fuse/dir.c | 10 +-
fs/fuse/file.c | 12 +-
fs/fuse/virtio_fs.c | 6 +-
fs/gfs2/aops.c | 81 +-
fs/gfs2/bmap.c | 11 +-
fs/gfs2/file.c | 143 +-
fs/gfs2/glock.c | 35 +-
fs/gfs2/glock.h | 12 +-
fs/gfs2/inode.h | 2 +-
fs/gfs2/main.c | 10 +-
fs/gfs2/meta_io.c | 4 +-
fs/gfs2/meta_io.h | 8 +-
fs/gfs2/quota.c | 62 +-
fs/gfs2/recovery.c | 22 +-
fs/gfs2/rgrp.c | 11 +-
fs/hfs/extent.c | 6 +-
fs/hfs/hfs_fs.h | 2 +
fs/hfs/inode.c | 38 +-
fs/hfsplus/extents.c | 8 +-
fs/hfsplus/hfsplus_fs.h | 2 +
fs/hfsplus/inode.c | 38 +-
fs/hostfs/hostfs_kern.c | 9 +-
fs/hpfs/file.c | 10 +-
fs/hpfs/namei.c | 5 +-
fs/hugetlbfs/inode.c | 44 +-
fs/inode.c | 2 +-
fs/internal.h | 32 +-
fs/io-wq.c | 4 +-
fs/io-wq.h | 1 +
fs/io_uring.c | 3867 +-
fs/iomap/buffered-io.c | 44 +-
fs/iomap/direct-io.c | 35 +-
fs/iomap/trace.h | 2 +-
fs/isofs/compress.c | 5 +-
fs/isofs/inode.c | 6 +-
fs/isofs/rock.c | 7 +-
fs/jbd2/commit.c | 14 +-
fs/jbd2/journal.c | 9 +-
fs/jbd2/transaction.c | 14 +-
fs/jffs2/erase.c | 6 +-
fs/jffs2/file.c | 23 +-
fs/jffs2/fs.c | 3 +-
fs/jffs2/gc.c | 2 +-
fs/jffs2/os-linux.h | 2 +-
fs/jfs/Makefile | 2 -
fs/jfs/inode.c | 29 +-
fs/jfs/ioctl.c | 5 +-
fs/jfs/jfs_dmap.c | 71 +-
fs/jfs/jfs_dtree.c | 298 -
fs/jfs/jfs_extent.c | 255 -
fs/jfs/jfs_logmgr.c | 8 -
fs/jfs/jfs_metapage.c | 21 +-
fs/jfs/jfs_mount.c | 4 +-
fs/jfs/jfs_txnmgr.c | 34 -
fs/jfs/jfs_xtree.c | 961 -
fs/jfs/jfs_xtree.h | 4 -
fs/jfs/super.c | 8 +-
fs/kernfs/dir.c | 31 +-
fs/kernfs/file.c | 47 +-
fs/ksmbd/connection.c | 22 +-
fs/ksmbd/connection.h | 27 +-
fs/ksmbd/ksmbd_netlink.h | 3 +-
fs/ksmbd/misc.c | 10 +-
fs/ksmbd/smb2misc.c | 2 +-
fs/ksmbd/smb2pdu.c | 126 +-
fs/ksmbd/smb_common.c | 4 +-
fs/ksmbd/smbacl.c | 1 +
fs/ksmbd/transport_ipc.c | 3 +
fs/ksmbd/transport_rdma.c | 363 +-
fs/ksmbd/transport_rdma.h | 8 +
fs/libfs.c | 18 +-
fs/locks.c | 61 +-
fs/minix/inode.c | 11 +-
fs/mpage.c | 20 +-
fs/namei.c | 117 +-
fs/namespace.c | 7 +-
fs/netfs/buffered_read.c | 34 +-
fs/netfs/internal.h | 2 +-
fs/netfs/objects.c | 8 +-
fs/nfs/dir.c | 9 +-
fs/nfs/direct.c | 23 +-
fs/nfs/file.c | 119 +-
fs/nfs/filelayout/filelayout.c | 7 +-
fs/nfs/fs_context.c | 2 +-
fs/nfs/fscache.c | 7 +-
fs/nfs/fscache.h | 14 +-
fs/nfs/internal.h | 1 +
fs/nfs/nfs4file.c | 4 +-
fs/nfs/nfs4namespace.c | 9 +-
fs/nfs/nfs4proc.c | 194 +-
fs/nfs/nfs4state.c | 29 +-
fs/nfs/nfs4xdr.c | 99 +-
fs/nfs/pagelist.c | 3 +
fs/nfs/pnfs.c | 2 +
fs/nfs/read.c | 3 +-
fs/nfs/symlink.c | 16 +-
fs/nfs/unlink.c | 8 +
fs/nfs/write.c | 54 +-
fs/nfsd/filecache.c | 77 +-
fs/nfsd/filecache.h | 2 +
fs/nfsd/nfs3proc.c | 141 +-
fs/nfsd/nfs4proc.c | 264 +-
fs/nfsd/nfs4state.c | 353 +-
fs/nfsd/nfs4xdr.c | 2 +-
fs/nfsd/nfscache.c | 2 +-
fs/nfsd/nfsctl.c | 20 +-
fs/nfsd/nfsd.h | 5 +
fs/nfsd/state.h | 31 +
fs/nfsd/trace.h | 34 +-
fs/nfsd/vfs.c | 255 +-
fs/nfsd/vfs.h | 14 +-
fs/nfsd/xdr4.h | 1 +
fs/nilfs2/inode.c | 27 +-
fs/nilfs2/ioctl.c | 6 +-
fs/nilfs2/recovery.c | 2 +-
fs/nilfs2/sufile.c | 4 +-
fs/nilfs2/the_nilfs.c | 4 +-
fs/notify/dnotify/dnotify.c | 13 +-
fs/notify/fanotify/fanotify.c | 24 +-
fs/notify/fanotify/fanotify.h | 12 +
fs/notify/fanotify/fanotify_user.c | 117 +-
fs/notify/fdinfo.c | 21 +-
fs/notify/fsnotify.c | 89 +-
fs/notify/group.c | 32 +-
fs/notify/inotify/inotify.h | 19 +
fs/notify/inotify/inotify_fsnotify.c | 2 +-
fs/notify/inotify/inotify_user.c | 47 +-
fs/notify/mark.c | 112 +-
fs/ntfs/aops.c | 40 +-
fs/ntfs/aops.h | 6 +-
fs/ntfs/attrib.c | 2 +-
fs/ntfs/compress.c | 4 +-
fs/ntfs/file.c | 8 +-
fs/ntfs/inode.c | 4 +-
fs/ntfs/mft.h | 2 +-
fs/ntfs3/file.c | 25 +-
fs/ntfs3/frecord.c | 10 +-
fs/ntfs3/fslog.c | 12 +-
fs/ntfs3/inode.c | 36 +-
fs/ntfs3/ntfs_fs.h | 5 +
fs/ntfs3/super.c | 20 +-
fs/ntfs3/xattr.c | 136 +-
fs/ocfs2/alloc.c | 2 +-
fs/ocfs2/aops.c | 23 +-
fs/ocfs2/dlm/dlmdebug.c | 12 +-
fs/ocfs2/dlm/dlmunlock.c | 21 +-
fs/ocfs2/dlmfs/userdlm.c | 17 +-
fs/ocfs2/file.c | 2 +-
fs/ocfs2/inode.c | 4 +-
fs/ocfs2/ioctl.c | 5 +-
fs/ocfs2/journal.c | 33 +-
fs/ocfs2/journal.h | 2 +
fs/ocfs2/quota_local.c | 10 +-
fs/ocfs2/refcounttree.c | 6 +-
fs/ocfs2/reservations.c | 4 +-
fs/ocfs2/reservations.h | 9 +-
fs/ocfs2/super.c | 180 +-
fs/ocfs2/symlink.c | 5 +-
fs/omfs/file.c | 11 +-
fs/open.c | 75 +-
fs/orangefs/inode.c | 52 +-
fs/overlayfs/copy_up.c | 90 +-
fs/overlayfs/dir.c | 147 +-
fs/overlayfs/export.c | 5 +
fs/overlayfs/file.c | 56 +-
fs/overlayfs/inode.c | 68 +-
fs/overlayfs/namei.c | 53 +-
fs/overlayfs/overlayfs.h | 232 +-
fs/overlayfs/ovl_entry.h | 7 +-
fs/overlayfs/readdir.c | 48 +-
fs/overlayfs/super.c | 57 +-
fs/overlayfs/util.c | 103 +-
fs/pipe.c | 33 +-
fs/proc/base.c | 22 +
fs/proc/cpuinfo.c | 6 +-
fs/proc/fd.c | 23 +-
fs/proc/generic.c | 3 +
fs/proc/kcore.c | 14 +-
fs/proc/meminfo.c | 7 +
fs/proc/proc_net.c | 3 +
fs/proc/proc_sysctl.c | 93 +-
fs/proc/task_mmu.c | 9 +-
fs/proc/vmcore.c | 130 +-
fs/qnx4/inode.c | 7 +-
fs/qnx6/inode.c | 6 +-
fs/quota/dquot.c | 10 +
fs/read_write.c | 16 +
fs/reiserfs/file.c | 2 +-
fs/reiserfs/inode.c | 36 +-
fs/reiserfs/journal.c | 14 +-
fs/romfs/super.c | 9 +-
fs/seq_file.c | 32 +
fs/smbfs_common/smb2pdu.h | 108 +-
fs/smbfs_common/smbfsctl.h | 6 +
fs/squashfs/block.c | 20 +-
fs/squashfs/file.c | 5 +-
fs/squashfs/super.c | 2 +-
fs/squashfs/symlink.c | 5 +-
fs/stat.c | 2 +-
fs/super.c | 2 +-
fs/sync.c | 9 +
fs/sysv/itree.c | 10 +-
fs/sysv/super.c | 4 +-
fs/ubifs/budget.c | 7 +-
fs/ubifs/file.c | 41 +-
fs/ubifs/super.c | 2 +-
fs/ubifs/ubifs.h | 2 +-
fs/ubifs/xattr.c | 2 +-
fs/udf/file.c | 14 +-
fs/udf/inode.c | 10 +-
fs/udf/namei.c | 8 +-
fs/udf/symlink.c | 5 +-
fs/ufs/inode.c | 13 +-
fs/userfaultfd.c | 32 +-
fs/vboxsf/file.c | 5 +-
fs/verity/Kconfig | 1 +
fs/verity/enable.c | 33 +-
fs/verity/fsverity_private.h | 13 +-
fs/verity/measure.c | 43 +
fs/verity/open.c | 12 +-
fs/verity/read_metadata.c | 5 +-
fs/xattr.c | 143 +-
fs/xfs/Makefile | 1 +
fs/xfs/libxfs/xfs_ag.c | 3 +-
fs/xfs/libxfs/xfs_alloc.c | 12 +-
fs/xfs/libxfs/xfs_alloc.h | 2 +-
fs/xfs/libxfs/xfs_attr.c | 1676 +-
fs/xfs/libxfs/xfs_attr.h | 205 +-
fs/xfs/libxfs/xfs_attr_leaf.c | 64 +-
fs/xfs/libxfs/xfs_attr_remote.c | 37 +-
fs/xfs/libxfs/xfs_attr_remote.h | 6 +-
fs/xfs/libxfs/xfs_bmap.c | 167 +-
fs/xfs/libxfs/xfs_bmap.h | 58 +-
fs/xfs/libxfs/xfs_bmap_btree.c | 9 +-
fs/xfs/libxfs/xfs_btree.c | 185 +-
fs/xfs/libxfs/xfs_btree.h | 26 +-
fs/xfs/libxfs/xfs_da_btree.c | 15 +
fs/xfs/libxfs/xfs_da_btree.h | 26 +-
fs/xfs/libxfs/xfs_da_format.h | 9 +-
fs/xfs/libxfs/xfs_defer.c | 97 +-
fs/xfs/libxfs/xfs_defer.h | 3 +
fs/xfs/libxfs/xfs_dir2.c | 8 +
fs/xfs/libxfs/xfs_errortag.h | 8 +-
fs/xfs/libxfs/xfs_format.h | 189 +-
fs/xfs/libxfs/xfs_fs.h | 41 +-
fs/xfs/libxfs/xfs_ialloc.c | 8 +-
fs/xfs/libxfs/xfs_ialloc.h | 2 +-
fs/xfs/libxfs/xfs_inode_buf.c | 118 +-
fs/xfs/libxfs/xfs_inode_fork.c | 51 +-
fs/xfs/libxfs/xfs_inode_fork.h | 76 +-
fs/xfs/libxfs/xfs_log_format.h | 87 +-
fs/xfs/libxfs/xfs_log_recover.h | 16 +-
fs/xfs/libxfs/xfs_log_rlimit.c | 75 +-
fs/xfs/libxfs/xfs_quota_defs.h | 50 +-
fs/xfs/libxfs/xfs_refcount.c | 14 +-
fs/xfs/libxfs/xfs_refcount.h | 13 +-
fs/xfs/libxfs/xfs_rmap.c | 161 +-
fs/xfs/libxfs/xfs_rmap.h | 7 +-
fs/xfs/libxfs/xfs_rtbitmap.c | 9 +-
fs/xfs/libxfs/xfs_sb.c | 80 +-
fs/xfs/libxfs/xfs_shared.h | 24 +-
fs/xfs/libxfs/xfs_symlink_remote.c | 2 +-
fs/xfs/libxfs/xfs_trans_resv.c | 225 +-
fs/xfs/libxfs/xfs_trans_resv.h | 16 +-
fs/xfs/libxfs/xfs_types.h | 11 +-
fs/xfs/scrub/bmap.c | 26 +-
fs/xfs/scrub/common.c | 2 +
fs/xfs/scrub/inode.c | 20 +-
fs/xfs/scrub/rtbitmap.c | 9 +-
fs/xfs/scrub/scrub.c | 17 +-
fs/xfs/xfs_acl.c | 7 +-
fs/xfs/xfs_acl.h | 8 +-
fs/xfs/xfs_aops.c | 14 +-
fs/xfs/xfs_attr_item.c | 882 +
fs/xfs/xfs_attr_item.h | 54 +
fs/xfs/xfs_attr_list.c | 1 +
fs/xfs/xfs_bmap_item.c | 27 +-
fs/xfs/xfs_bmap_util.c | 27 +-
fs/xfs/xfs_buf_item.h | 24 +-
fs/xfs/xfs_buf_item_recover.c | 66 +
fs/xfs/xfs_discard.c | 8 +-
fs/xfs/xfs_dquot.c | 18 +-
fs/xfs/xfs_dquot.h | 8 -
fs/xfs/xfs_error.c | 9 +
fs/xfs/xfs_error.h | 20 +-
fs/xfs/xfs_extfree_item.c | 23 +-
fs/xfs/xfs_file.c | 32 +-
fs/xfs/xfs_filestream.c | 7 +-
fs/xfs/xfs_fsmap.c | 6 +-
fs/xfs/xfs_fsops.c | 14 +-
fs/xfs/xfs_globals.c | 1 +
fs/xfs/xfs_icache.c | 9 +-
fs/xfs/xfs_icreate_item.c | 1 +
fs/xfs/xfs_inode.c | 82 +-
fs/xfs/xfs_inode.h | 29 +-
fs/xfs/xfs_inode_item.c | 48 +-
fs/xfs/xfs_inode_item_recover.c | 145 +-
fs/xfs/xfs_ioctl.c | 10 +-
fs/xfs/xfs_ioctl32.c | 2 +
fs/xfs/xfs_iomap.c | 33 +-
fs/xfs/xfs_iops.c | 7 +-
fs/xfs/xfs_itable.c | 15 +-
fs/xfs/xfs_itable.h | 5 +-
fs/xfs/xfs_iwalk.h | 2 +-
fs/xfs/xfs_log.c | 766 +-
fs/xfs/xfs_log.h | 97 +-
fs/xfs/xfs_log_cil.c | 393 +-
fs/xfs/xfs_log_priv.h | 92 +-
fs/xfs/xfs_log_recover.c | 95 +-
fs/xfs/xfs_message.c | 58 +-
fs/xfs/xfs_message.h | 61 +-
fs/xfs/xfs_mount.c | 92 +-
fs/xfs/xfs_mount.h | 50 +-
fs/xfs/xfs_ondisk.h | 2 +
fs/xfs/xfs_qm.c | 18 +-
fs/xfs/xfs_qm.h | 5 -
fs/xfs/xfs_qm_syscalls.c | 26 +-
fs/xfs/xfs_quotaops.c | 8 +-
fs/xfs/xfs_refcount_item.c | 25 +-
fs/xfs/xfs_reflink.c | 100 +-
fs/xfs/xfs_rmap_item.c | 25 +-
fs/xfs/xfs_rtalloc.c | 41 +
fs/xfs/xfs_rtalloc.h | 9 +-
fs/xfs/xfs_super.c | 50 +-
fs/xfs/xfs_super.h | 1 -
fs/xfs/xfs_symlink.c | 5 -
fs/xfs/xfs_sysctl.h | 1 +
fs/xfs/xfs_sysfs.c | 24 +
fs/xfs/xfs_trace.h | 100 +-
fs/xfs/xfs_trans.c | 52 +-
fs/xfs/xfs_trans.h | 38 +-
fs/xfs/xfs_trans_dquot.c | 4 +-
fs/xfs/xfs_xattr.c | 81 +-
fs/xfs/xfs_xattr.h | 13 +
fs/zonefs/Makefile | 2 +-
fs/zonefs/super.c | 300 +-
fs/zonefs/sysfs.c | 139 +
fs/zonefs/zonefs.h | 18 +-
include/acpi/acbuffer.h | 2 +-
include/acpi/acconfig.h | 2 +-
include/acpi/acexcep.h | 2 +-
include/acpi/acnames.h | 2 +-
include/acpi/acoutput.h | 2 +-
include/acpi/acpi.h | 2 +-
include/acpi/acpi_bus.h | 15 +-
include/acpi/acpiosxf.h | 2 +-
include/acpi/acpixf.h | 4 +-
include/acpi/acrestyp.h | 2 +-
include/acpi/actbl.h | 2 +-
include/acpi/actbl1.h | 18 +-
include/acpi/actbl2.h | 175 +-
include/acpi/actbl3.h | 2 +-
include/acpi/actypes.h | 19 +-
include/acpi/acuuid.h | 2 +-
include/acpi/apei.h | 2 +
include/acpi/cppc_acpi.h | 5 +
include/acpi/platform/acenv.h | 2 +-
include/acpi/platform/acenvex.h | 2 +-
include/acpi/platform/acgcc.h | 2 +-
include/acpi/platform/acgccex.h | 2 +-
include/acpi/platform/acintel.h | 2 +-
include/acpi/platform/aclinux.h | 2 +-
include/acpi/platform/aclinuxex.h | 2 +-
include/asm-generic/Kbuild | 1 +
include/asm-generic/compat.h | 113 +
include/asm-generic/export.h | 22 +-
include/asm-generic/hugetlb.h | 28 +-
include/asm-generic/pgtable-nopmd.h | 2 +
include/asm-generic/platform-feature.h | 8 +
include/asm-generic/qrwlock.h | 32 +-
include/asm-generic/qrwlock_types.h | 2 +-
include/asm-generic/qspinlock.h | 29 +
include/asm-generic/spinlock.h | 94 +-
include/asm-generic/spinlock_types.h | 17 +
include/asm-generic/tlb.h | 14 +
include/asm-generic/vmlinux.lds.h | 12 +-
include/clocksource/timer-goldfish.h | 31 +
include/clocksource/timer-xilinx.h | 73 +
include/crypto/sm4.h | 4 +
include/drm/display/drm_dp_helper.h | 30 +
include/drm/drm_bridge.h | 14 +
include/drm/drm_cache.h | 8 +
include/drm/drm_connector.h | 4 +
include/drm/drm_crtc.h | 6 +-
include/drm/drm_edid.h | 6 +-
include/drm/drm_panel.h | 16 +
include/drm/drm_writeback.h | 11 +-
include/drm/i915_pciids.h | 31 +
include/dt-bindings/clock/en7523-clk.h | 17 +
include/dt-bindings/clock/imx8mn-clock.h | 16 +-
include/dt-bindings/clock/imx8mp-clock.h | 9 +-
include/dt-bindings/clock/mt8186-clk.h | 445 +
include/dt-bindings/clock/qcom,gcc-msm8976.h | 1 +
include/dt-bindings/clock/qcom,gcc-msm8998.h | 4 +
include/dt-bindings/clock/qcom,gcc-sc8280xp.h | 496 +
.../dt-bindings/clock/qcom,lpassaudiocc-sc7280.h | 43 +
.../dt-bindings/clock/qcom,lpasscorecc-sc7280.h | 26 +
include/dt-bindings/clock/r8a779g0-cpg-mssr.h | 90 +
include/dt-bindings/clock/r9a07g043-cpg.h | 184 +
include/dt-bindings/clock/r9a09g011-cpg.h | 352 +
include/dt-bindings/clock/samsung,exynosautov9.h | 299 +
include/dt-bindings/clock/ste-db8500-clkout.h | 17 +
include/dt-bindings/clock/stm32mp1-clks.h | 46 +-
include/dt-bindings/clock/stm32mp13-clks.h | 229 +
include/dt-bindings/clock/sun50i-h6-r-ccu.h | 1 +
include/dt-bindings/clock/sun50i-h616-ccu.h | 1 +
include/dt-bindings/clock/tegra234-clock.h | 8 +
include/dt-bindings/gce/mt8186-gce.h | 421 +
include/dt-bindings/interconnect/qcom,sc8180x.h | 7 +
include/dt-bindings/interconnect/qcom,sc8280xp.h | 232 +
include/dt-bindings/interconnect/qcom,sdx65.h | 67 +
include/dt-bindings/mailbox/tegra186-hsp.h | 5 +
include/dt-bindings/memory/mt8186-memory-port.h | 217 +
include/dt-bindings/memory/mt8195-memory-port.h | 408 +
include/dt-bindings/memory/mtk-memory-port.h | 2 +
include/dt-bindings/mfd/cros_ec.h | 18 +
include/dt-bindings/pinctrl/mt6795-pinfunc.h | 908 +
include/dt-bindings/power/imx8mp-power.h | 18 +
include/dt-bindings/power/qcom-rpmpd.h | 26 +
include/dt-bindings/power/r8a779g0-sysc.h | 45 +
include/dt-bindings/reset/amlogic,meson-s4-reset.h | 125 +
include/dt-bindings/reset/mt7986-resets.h | 55 +
include/dt-bindings/reset/mt8186-resets.h | 36 +
include/dt-bindings/reset/mt8192-resets.h | 3 +
include/dt-bindings/reset/stm32mp1-resets.h | 24 +-
include/dt-bindings/reset/stm32mp13-resets.h | 100 +
include/dt-bindings/reset/tegra234-reset.h | 2 +
include/dt-bindings/sound/cs35l45.h | 20 +
include/keys/system_keyring.h | 14 +-
include/keys/trusted-type.h | 2 +-
include/keys/trusted_caam.h | 11 +
include/kunit/resource.h | 406 +
include/kunit/test.h | 418 +-
include/kvm/arm_arch_timer.h | 2 -
include/kvm/arm_hypercalls.h | 8 +
include/kvm/arm_pmu.h | 34 +-
include/kvm/arm_psci.h | 7 -
include/kvm/arm_vgic.h | 8 +-
include/linux/acct.h | 1 -
include/linux/acpi.h | 47 +-
include/linux/amba/bus.h | 14 +-
include/linux/amba/mmci.h | 6 -
include/linux/arm_ffa.h | 7 +-
include/linux/atomic/atomic-arch-fallback.h | 72 +-
include/linux/atomic/atomic-instrumented.h | 40 +-
include/linux/audit.h | 2 +-
include/linux/backing-dev.h | 6 +-
include/linux/bio.h | 16 +-
include/linux/bitmap.h | 56 +-
include/linux/blk-cgroup.h | 258 +-
include/linux/blk-mq.h | 4 +-
include/linux/blk_types.h | 27 +-
include/linux/blkdev.h | 136 +-
include/linux/blktrace_api.h | 10 +-
include/linux/bootconfig.h | 10 +
include/linux/bpf-cgroup.h | 8 +-
include/linux/bpf.h | 353 +-
include/linux/bpf_local_storage.h | 4 +-
include/linux/bpf_types.h | 1 +
include/linux/bpf_verifier.h | 23 +-
include/linux/btf.h | 23 +
include/linux/btf_ids.h | 3 +-
include/linux/buffer_head.h | 14 +-
include/linux/can/dev.h | 10 -
include/linux/can/led.h | 51 -
include/linux/can/rx-offload.h | 4 +-
include/linux/cc_platform.h | 18 +
include/linux/cdrom.h | 1 -
include/linux/ceph/osd_client.h | 3 +
include/linux/clk/pxa.h | 16 +
include/linux/cma.h | 4 +-
include/linux/compaction.h | 5 +-
include/linux/compat.h | 69 +
include/linux/compiler-clang.h | 10 +
include/linux/compiler-gcc.h | 8 -
include/linux/compiler.h | 6 +-
include/linux/compiler_types.h | 14 +-
include/linux/console.h | 19 +
include/linux/context_tracking_state.h | 8 +-
include/linux/cper.h | 3 +
include/linux/cpufreq.h | 1 -
include/linux/cpuhotplug.h | 2 +
include/linux/crash_dump.h | 19 +-
include/linux/crc-itu-t.h | 2 +-
include/linux/damon.h | 14 +
include/linux/dax.h | 22 +-
include/linux/delayacct.h | 31 +-
include/linux/devfreq.h | 17 +-
include/linux/device-mapper.h | 13 +-
include/linux/device.h | 121 +-
include/linux/device/bus.h | 3 +
include/linux/device/driver.h | 2 +
.../{platform_data/dma-imx.h => dma/imx-dma.h} | 26 +-
include/linux/dmaengine.h | 9 +-
include/linux/dmar.h | 6 +-
include/linux/efi.h | 28 +
include/linux/elfcore.h | 9 -
include/linux/energy_model.h | 35 +-
include/linux/entry-common.h | 8 +-
include/linux/ethtool.h | 4 +
include/linux/export-internal.h | 17 +
include/linux/export.h | 37 +-
include/linux/extcon.h | 2 +-
include/linux/fanotify.h | 1 +
include/linux/fault-inject.h | 2 +
include/linux/fb.h | 1 -
include/linux/fdtable.h | 2 +-
include/linux/file.h | 2 -
include/linux/find.h | 6 +-
include/linux/firewire.h | 3 +
include/linux/firmware.h | 82 +
include/linux/firmware/cirrus/cs_dsp.h | 28 +-
include/linux/firmware/mediatek/mtk-adsp-ipc.h | 65 +
include/linux/firmware/xlnx-event-manager.h | 4 +-
include/linux/firmware/xlnx-zynqmp.h | 11 +
include/linux/fortify-string.h | 16 +
include/linux/fpga/fpga-region.h | 6 +-
include/linux/fs.h | 75 +-
include/linux/fscache.h | 1 +
include/linux/fscrypt.h | 51 +-
include/linux/fsl/mc.h | 14 +-
include/linux/fsnotify_backend.h | 98 +-
include/linux/fsverity.h | 18 +
include/linux/ftrace.h | 13 +-
include/linux/fwnode.h | 15 +-
include/linux/gfp.h | 20 +-
include/linux/goldfish.h | 15 +-
include/linux/gpio/consumer.h | 16 +-
include/linux/gpio/driver.h | 68 +-
include/linux/gpio/machine.h | 12 +
include/linux/highmem-internal.h | 28 +-
include/linux/highmem.h | 53 +-
include/linux/hisi_acc_qm.h | 23 +-
include/linux/host1x.h | 6 +
include/linux/host1x_context_bus.h | 15 +
include/linux/hte.h | 271 +
include/linux/huge_mm.h | 20 +-
include/linux/hugetlb.h | 47 +-
include/linux/hwmon.h | 6 +
include/linux/hyperv.h | 103 +-
include/linux/icmpv6.h | 11 +-
include/linux/ieee802154.h | 81 +-
include/linux/iio/adc/ad_sigma_delta.h | 38 +
include/linux/iio/adc/qcom-vadc-common.h | 2 +
include/linux/iio/common/st_sensors.h | 3 +
include/linux/iio/iio-opaque.h | 4 +
include/linux/iio/iio.h | 70 +-
include/linux/iio/kfifo_buf.h | 5 +-
include/linux/initrd.h | 2 -
include/linux/instrumentation.h | 6 +-
include/linux/intel-iommu.h | 3 +-
include/linux/intel-svm.h | 2 +-
include/linux/interrupt.h | 27 +-
include/linux/io_uring.h | 38 +
include/linux/iomap.h | 20 +-
include/linux/iommu.h | 69 +-
include/linux/ipc_namespace.h | 37 +-
include/linux/ipmi.h | 5 +
include/linux/ipmi_smi.h | 6 +
include/linux/ipv6.h | 6 +-
include/linux/irq.h | 2 +
include/linux/irqchip/arm-gic-v3.h | 2 +
include/linux/irqchip/irq-ixp4xx.h | 12 -
include/linux/irqflags.h | 4 +-
include/linux/jbd2.h | 2 +-
include/linux/jump_label.h | 4 +-
include/linux/kallsyms.h | 7 +-
include/linux/kasan.h | 8 +-
include/linux/kdb.h | 1 +
include/linux/kexec.h | 48 +-
include/linux/khugepaged.h | 44 +-
include/linux/kprobes.h | 2 +-
include/linux/ksm.h | 4 +-
include/linux/kthread.h | 4 -
include/linux/kvm_host.h | 6 +-
include/linux/latencytop.h | 3 -
include/linux/libata.h | 4 +-
include/linux/linkage.h | 15 +-
include/linux/list.h | 42 +-
include/linux/livepatch.h | 2 -
include/linux/lockdep.h | 10 +-
include/linux/lsm_audit.h | 2 +
include/linux/lsm_hook_defs.h | 2 +-
include/linux/lsm_hooks.h | 5 +-
include/linux/mailbox_controller.h | 1 +
include/linux/mdev.h | 82 +-
include/linux/mdio.h | 70 +
include/linux/memcontrol.h | 72 +-
include/linux/memory_hotplug.h | 14 +-
include/linux/mfd/hi655x-pmic.h | 4 +-
include/linux/mfd/idt8a340_reg.h | 12 +-
include/linux/mfd/mt6359/registers.h | 2 +
include/linux/mfd/tc6393xb.h | 3 -
include/linux/mfd/tps65218.h | 2 +-
include/linux/mhi_ep.h | 277 +
include/linux/migrate.h | 39 +-
include/linux/mlx5/accel.h | 156 -
include/linux/mlx5/driver.h | 29 +-
include/linux/mlx5/fs.h | 12 +
include/linux/mlx5/mlx5_ifc.h | 29 +-
include/linux/mlx5/mlx5_ifc_fpga.h | 211 -
include/linux/mlx5/mlx5_ifc_vdpa.h | 39 +
include/linux/mlx5/port.h | 2 +-
include/linux/mm.h | 80 +-
include/linux/mm_inline.h | 43 +
include/linux/mm_types.h | 25 +
include/linux/mman.h | 4 -
include/linux/mmc/core.h | 2 +-
include/linux/mmc/host.h | 2 +-
include/linux/mmzone.h | 5 +-
include/linux/mod_devicetable.h | 2 +
include/linux/module.h | 32 +-
include/linux/mount.h | 29 +-
include/linux/mpage.h | 2 +-
include/linux/mtd/cfi.h | 1 +
.../mtk_ecc.h => include/linux/mtd/nand-ecc-mtk.h | 0
include/linux/mtd/spi-nor.h | 4 +-
include/linux/mtd/spinand.h | 1 +
include/linux/namei.h | 6 +
include/linux/netdev_features.h | 4 +-
include/linux/netdevice.h | 380 +-
include/linux/netfs.h | 63 +-
include/linux/nfs4.h | 2 +
include/linux/nfs_fs.h | 4 +-
include/linux/nfs_fs_sb.h | 1 +
include/linux/nfs_xdr.h | 12 +-
include/linux/nodemask.h | 51 +-
include/linux/notifier.h | 7 +
include/linux/nvme-fc-driver.h | 14 +
include/linux/nvme.h | 46 +-
include/linux/nvmem-consumer.h | 1 +
include/linux/objtool.h | 10 +-
include/linux/of.h | 16 +-
include/linux/of_irq.h | 6 +-
include/linux/omap-dma.h | 35 +-
include/linux/oom.h | 4 -
include/linux/page-flags.h | 64 +-
include/linux/page-isolation.h | 6 +-
include/linux/pagemap.h | 79 +-
include/linux/panic.h | 6 -
include/linux/pci.h | 18 +-
include/linux/perf_event.h | 22 +
include/linux/pgtable.h | 84 +-
include/linux/phy.h | 8 +-
include/linux/phy/phy-lvds.h | 32 +
include/linux/phy/phy.h | 4 +
include/linux/phylink.h | 6 -
include/linux/pipe_fs_i.h | 2 +-
include/linux/platform-feature.h | 19 +
include/linux/platform_data/asoc-poodle.h | 16 +
.../linux/platform_data/asoc-pxa.h | 4 +-
include/linux/platform_data/cros_ec_commands.h | 10 +-
include/linux/platform_data/cros_ec_proto.h | 6 +-
include/linux/platform_data/max732x.h | 12 -
include/linux/platform_data/mlxreg.h | 4 +
include/linux/platform_data/pcf857x.h | 2 +-
include/linux/{mmc => platform_data}/sh_mmcif.h | 2 -
include/linux/platform_data/timer-ixp4xx.h | 11 -
include/linux/platform_data/usb-omap1.h | 2 +
include/linux/platform_data/video-pxafb.h | 22 +-
include/linux/platform_data/x86/pmc_atom.h | 1 -
include/linux/platform_device.h | 16 +-
include/linux/pm.h | 24 +-
include/linux/pm_domain.h | 24 +-
include/linux/pm_opp.h | 41 +-
include/linux/pm_runtime.h | 10 +-
include/linux/polynomial.h | 35 +
include/linux/prandom.h | 61 +-
include/linux/printk.h | 83 +-
include/linux/property.h | 17 +-
include/linux/ptp_classify.h | 3 +
include/linux/ptp_clock_kernel.h | 42 +-
include/linux/ptrace.h | 7 -
include/linux/qed/qed_fcoe_if.h | 4 +-
include/linux/qed/qed_iscsi_if.h | 4 +-
include/linux/qed/qed_nvmetcp_if.h | 2 +-
include/linux/qed/qed_nvmetcp_ip_services_if.h | 29 -
include/linux/random.h | 89 +-
include/linux/randomize_kstack.h | 27 +-
include/linux/rcupdate.h | 1 +
include/linux/reboot.h | 95 +-
include/linux/regmap.h | 12 +
include/linux/regulator/mt6358-regulator.h | 45 +
include/linux/regulator/pca9450.h | 7 +
include/linux/remoteproc/mtk_scp.h | 2 +
include/linux/rmap.h | 149 +-
include/linux/rpmsg.h | 14 +-
include/linux/rtnetlink.h | 1 +
include/linux/rtsx_pci.h | 3 +
include/linux/sched.h | 70 +-
include/linux/sched/coredump.h | 3 +-
include/linux/sched/jobctl.h | 8 +
include/linux/sched/mm.h | 11 +-
include/linux/sched/signal.h | 35 +-
include/linux/sched/sysctl.h | 41 -
include/linux/sched/task.h | 8 +-
include/linux/sched/task_stack.h | 2 +-
include/linux/scmi_protocol.h | 31 +-
include/linux/seccomp.h | 3 +-
include/linux/security.h | 2 +
include/linux/seq_file.h | 4 +
include/linux/serial_core.h | 1 +
include/linux/serial_s3c.h | 3 +
include/linux/set_memory.h | 10 +-
include/linux/shmem_fs.h | 6 +-
include/linux/signal.h | 3 +-
include/linux/siphash.h | 33 +-
include/linux/skbuff.h | 428 +-
include/linux/slab.h | 27 +-
include/linux/slub_def.h | 1 -
include/linux/soc/apple/rtkit.h | 155 +
include/linux/soc/apple/sart.h | 53 +
include/linux/soc/mediatek/mtk-cmdq.h | 5 +-
include/linux/soc/mediatek/mtk-mmsys.h | 12 +
include/linux/soc/mediatek/mtk_wed.h | 131 +
.../mach/hardware.h => include/linux/soc/pxa/cpu.h | 61 +-
.../include/plat => include/linux/soc/pxa}/mfp.h | 6 +-
include/linux/soc/pxa/smemc.h | 13 +
include/linux/soc/qcom/llcc-qcom.h | 2 +
include/linux/soc/renesas/r9a06g032-sysctrl.h | 11 +
include/linux/soc/ti/omap1-io.h | 143 +
.../mach/mux.h => include/linux/soc/ti/omap1-mux.h | 142 +-
.../mach/soc.h => include/linux/soc/ti/omap1-soc.h | 22 -
.../mach/usb.h => include/linux/soc/ti/omap1-usb.h | 28 +-
include/linux/socket.h | 7 +-
include/linux/spi/spi.h | 4 +
include/linux/srcutree.h | 32 +-
include/linux/stackdepot.h | 26 +-
include/linux/stackleak.h | 55 +-
include/linux/stmmac.h | 1 +
include/linux/stop_machine.h | 16 +
include/linux/string.h | 4 +
include/linux/sunrpc/cache.h | 8 +-
include/linux/sunrpc/clnt.h | 1 +
include/linux/sunrpc/svc.h | 4 +-
include/linux/sunrpc/xdr.h | 16 +-
include/linux/suspend.h | 44 +-
include/linux/swap.h | 196 +-
include/linux/swap_slots.h | 2 +-
include/linux/swapops.h | 134 +-
include/linux/swiotlb.h | 22 +-
include/linux/sysctl.h | 9 +-
include/linux/task_work.h | 1 +
include/linux/tee_drv.h | 18 -
include/linux/thermal.h | 3 +
include/linux/thunderbolt.h | 21 +-
include/linux/timekeeping.h | 1 +
include/linux/timer.h | 8 -
include/linux/timex.h | 8 +
include/linux/topology.h | 7 -
include/linux/torture.h | 2 +-
include/linux/uaccess.h | 22 +
include/linux/usb.h | 17 +-
include/linux/usb/gadget.h | 28 +-
include/linux/usb/hcd.h | 2 +
include/linux/usb/rndis_host.h | 1 +
include/linux/usb/typec_mux.h | 22 +-
include/linux/usb/usbnet.h | 1 +
include/linux/userfaultfd_k.h | 84 +
include/linux/vdpa.h | 66 +-
include/linux/vermagic.h | 10 +-
include/linux/vfio.h | 44 +-
include/linux/vfio_pci_core.h | 3 +-
include/linux/vhost_iotlb.h | 2 +
include/linux/virtio.h | 1 +
include/linux/virtio_config.h | 56 +-
include/linux/vm_event_item.h | 7 +
include/linux/wkup_m3_ipc.h | 13 +
include/linux/wm97xx.h | 4 -
include/linux/workqueue.h | 66 +-
include/linux/writeback.h | 22 +-
include/linux/xarray.h | 1 +
include/media/cec.h | 14 +
include/media/dvb-usb-ids.h | 632 +-
include/media/i2c/mt9t112.h | 2 +-
include/media/i2c/wm8775.h | 2 +-
include/media/media-device.h | 51 +-
include/media/media-entity.h | 21 +-
include/media/mipi-csi2.h | 1 +
include/media/v4l2-fwnode.h | 2 +
include/media/v4l2-h264.h | 31 +-
include/media/v4l2-mediabus.h | 2 +
include/media/v4l2-subdev.h | 279 +-
include/media/videobuf2-v4l2.h | 23 +-
include/net/act_api.h | 3 +-
include/net/amt.h | 2 +-
include/net/ax25.h | 1 +
include/net/bluetooth/hci.h | 10 +
include/net/bluetooth/hci_core.h | 28 +-
include/net/bonding.h | 6 +
include/net/cfg80211.h | 16 +-
include/net/cfg802154.h | 8 +-
include/net/devlink.h | 48 +
include/net/dsa.h | 25 +-
include/net/flow_dissector.h | 9 +
include/net/flow_offload.h | 1 +
include/net/if_inet6.h | 8 +
include/net/inet6_hashtables.h | 28 +-
include/net/inet_connection_sock.h | 5 +-
include/net/inet_hashtables.h | 145 +-
include/net/inet_sock.h | 5 +-
include/net/inet_timewait_sock.h | 3 +-
include/net/ip.h | 3 +-
include/net/ip_fib.h | 4 +-
include/net/ipv6.h | 48 +-
include/net/mac80211.h | 126 +-
include/net/mac802154.h | 19 +
include/net/mptcp.h | 11 +-
include/net/net_debug.h | 157 +
include/net/netfilter/nf_conntrack.h | 23 +-
include/net/netfilter/nf_conntrack_core.h | 9 +-
include/net/netfilter/nf_conntrack_count.h | 1 +
include/net/netfilter/nf_conntrack_ecache.h | 53 +-
include/net/netfilter/nf_conntrack_extend.h | 31 +-
include/net/netfilter/nf_conntrack_labels.h | 10 +-
include/net/netfilter/nf_conntrack_timeout.h | 8 -
include/net/netfilter/nf_reject.h | 21 +-
include/net/netfilter/nf_tables.h | 1 -
include/net/netfilter/nf_tables_offload.h | 2 +-
include/net/netns/conntrack.h | 8 +-
include/net/page_pool.h | 21 +
include/net/ping.h | 4 +-
include/net/pkt_cls.h | 6 +-
include/net/route.h | 36 +-
include/net/rtnetlink.h | 16 +-
include/net/sch_generic.h | 42 +-
include/net/sctp/sctp.h | 2 +-
include/net/secure_seq.h | 4 +-
include/net/sock.h | 64 +-
include/net/strparser.h | 4 +
include/net/tc_act/tc_gact.h | 15 +
include/net/tc_act/tc_pedit.h | 1 +
include/net/tc_act/tc_skbedit.h | 13 +
include/net/tcp.h | 45 +-
include/net/tls.h | 16 +-
include/net/udp.h | 8 +-
include/net/xfrm.h | 34 +-
include/pcmcia/soc_common.h | 125 +
include/ras/ras_event.h | 1 -
include/rdma/ib_verbs.h | 146 +-
include/rdma/opa_vnic.h | 3 +-
include/scsi/libfcoe.h | 5 +-
include/scsi/libiscsi.h | 6 +-
include/scsi/sas_ata.h | 7 +
include/scsi/scsi_device.h | 9 +-
include/scsi/scsi_proto.h | 9 +-
include/soc/fsl/caam-blob.h | 103 +
include/soc/mscc/ocelot.h | 42 +-
include/soc/mscc/ocelot_vcap.h | 4 +-
include/soc/rockchip/pm_domains.h | 25 +
include/soc/tegra/mc.h | 8 +-
include/sound/cs35l41.h | 137 +-
include/sound/cs42l42.h | 810 +
include/sound/hda_codec.h | 3 +
include/sound/intel-dsp-config.h | 3 +-
include/sound/intel-nhlt.h | 6 +-
include/sound/jack.h | 1 +
include/sound/pxa2xx-lib.h | 4 +
include/sound/soc-acpi.h | 2 +
include/sound/soc-card.h | 7 +-
include/sound/soc-component.h | 9 +
include/sound/soc-dpcm.h | 2 +
include/sound/soc.h | 27 +-
include/sound/sof.h | 23 +-
include/sound/sof/ext_manifest4.h | 119 +
include/sound/sof/ipc4/header.h | 460 +
include/sound/sof/stream.h | 3 +-
include/target/iscsi/iscsi_target_core.h | 52 +-
include/target/iscsi/iscsi_transport.h | 126 +-
include/target/target_core_backend.h | 4 +-
include/trace/events/btrfs.h | 34 +-
include/trace/events/cachefiles.h | 176 +
include/trace/events/compaction.h | 4 +-
include/trace/events/ext4.h | 21 +-
include/trace/events/f2fs.h | 153 +-
include/trace/events/intel_ifs.h | 41 +
include/trace/events/io_uring.h | 107 +-
include/trace/events/kmem.h | 26 +-
include/trace/events/lock.h | 63 +-
include/trace/events/mmflags.h | 84 +-
include/trace/events/mptcp.h | 6 +-
include/trace/events/percpu.h | 23 +-
include/trace/events/rxrpc.h | 265 +-
include/trace/events/sched.h | 6 +-
include/trace/events/skb.h | 21 +-
include/trace/events/sunrpc.h | 12 +-
include/trace/events/swiotlb.h | 29 +-
include/trace/events/tcp.h | 47 +-
include/trace/events/thermal_pressure.h | 29 +
include/trace/events/timer.h | 5 +-
include/trace/events/vmscan.h | 20 +-
include/trace/events/workqueue.h | 8 +-
include/uapi/asm-generic/fcntl.h | 23 +-
include/uapi/asm-generic/siginfo.h | 7 +
include/uapi/asm-generic/socket.h | 2 +
include/uapi/asm-generic/termbits-common.h | 65 +
include/uapi/asm-generic/termbits.h | 239 +-
include/uapi/asm-generic/unistd.h | 4 +-
include/uapi/drm/amdgpu_drm.h | 10 +
include/uapi/drm/drm_fourcc.h | 22 +
include/uapi/drm/i915_drm.h | 62 +-
include/uapi/drm/msm_drm.h | 7 +
include/uapi/linux/acct.h | 3 +-
include/uapi/linux/agpgart.h | 9 +-
include/uapi/linux/android/binder.h | 18 +-
include/uapi/linux/atm_zatm.h | 47 -
include/uapi/linux/audit.h | 2 +
include/uapi/linux/bpf.h | 125 +
include/uapi/linux/btf.h | 4 +-
include/uapi/linux/btrfs_tree.h | 13 -
include/uapi/linux/cachefiles.h | 68 +
include/uapi/linux/can/isotp.h | 25 +-
include/uapi/linux/cdrom.h | 2 +-
include/uapi/linux/cec.h | 20 +
include/uapi/linux/cxl_mem.h | 14 +-
include/uapi/linux/devlink.h | 23 +
include/uapi/linux/dma-buf.h | 4 +-
include/uapi/linux/elf-em.h | 1 +
include/uapi/linux/elf.h | 9 +-
include/uapi/linux/ethtool.h | 1 +
include/uapi/linux/ethtool_netlink.h | 1 +
include/uapi/linux/fanotify.h | 1 +
include/uapi/linux/gpio.h | 3 +
include/uapi/linux/idxd.h | 31 +-
include/uapi/linux/if_link.h | 7 +
include/uapi/linux/input.h | 1 +
include/uapi/linux/io_uring.h | 134 +-
include/uapi/linux/ipv6.h | 1 +
include/uapi/linux/kexec.h | 1 +
include/uapi/linux/kvm.h | 54 +-
include/uapi/linux/landlock.h | 36 +-
include/uapi/linux/lirc.h | 7 +
include/uapi/linux/loop.h | 7 +-
include/uapi/linux/mdio.h | 75 +
include/uapi/linux/media-bus-format.h | 6 +-
include/uapi/linux/media.h | 4 +-
include/uapi/linux/mptcp.h | 8 +
include/uapi/linux/neighbour.h | 2 +
include/uapi/linux/netlink.h | 1 +
include/uapi/linux/nl80211.h | 2 +
include/uapi/linux/nvme_ioctl.h | 28 +
include/uapi/linux/pci_regs.h | 1 +
include/uapi/linux/pkt_cls.h | 2 +
include/uapi/linux/prctl.h | 9 +
include/uapi/linux/rfkill.h | 2 +-
include/uapi/linux/seccomp.h | 2 +
include/uapi/linux/sev-guest.h | 80 +
include/uapi/linux/socket.h | 2 +-
include/uapi/linux/spi/spi.h | 3 +-
include/uapi/linux/taskstats.h | 28 +-
include/uapi/linux/tc_act/tc_skbedit.h | 2 +
include/uapi/linux/tee.h | 4 -
include/uapi/linux/tipc_config.h | 28 +-
include/uapi/linux/tls.h | 2 +
include/uapi/linux/types.h | 3 +
include/uapi/linux/userfaultfd.h | 10 +-
include/uapi/linux/v4l2-controls.h | 5 +
include/uapi/linux/vdpa.h | 6 +
include/uapi/linux/vfio.h | 4 +-
include/uapi/linux/vhost.h | 26 +-
include/uapi/linux/vhost_types.h | 11 +-
include/uapi/linux/videodev2.h | 5 +-
include/uapi/linux/virtio_ids.h | 14 +-
include/uapi/misc/habanalabs.h | 87 +-
include/uapi/rdma/ib_user_verbs.h | 42 +
include/uapi/scsi/scsi_bsg_mpi3mr.h | 582 +
include/uapi/sound/intel/avs/tokens.h | 126 +
include/uapi/sound/sof/abi.h | 4 +-
{drivers/scsi => include}/ufs/ufs.h | 35 -
{drivers/scsi => include}/ufs/ufs_quirks.h | 15 +-
{drivers/scsi => include}/ufs/ufshcd.h | 376 +-
{drivers/scsi => include}/ufs/ufshci.h | 2 +
{drivers/scsi => include}/ufs/unipro.h | 18 +-
include/video/radeon.h | 2 +-
include/xen/arm/page-coherent.h | 20 -
include/xen/arm/page.h | 4 -
include/xen/arm/xen-ops.h | 18 +
include/xen/grant_table.h | 12 +-
include/xen/interface/grant_table.h | 161 +-
include/xen/interface/io/ring.h | 19 +-
include/xen/interface/io/vscsiif.h | 133 +-
include/xen/interface/io/xs_wire.h | 37 +-
include/xen/swiotlb-xen.h | 2 -
include/xen/xen-ops.h | 20 +-
include/xen/xen.h | 8 +
include/xen/xenbus.h | 4 +-
init/Kconfig | 264 +-
init/do_mounts_initrd.c | 22 +-
init/initramfs.c | 78 +-
init/main.c | 53 +-
ipc/ipc_sysctl.c | 205 +-
ipc/mq_sysctl.c | 121 +-
ipc/mqueue.c | 24 +-
ipc/namespace.c | 10 +
ipc/sem.c | 25 +-
kernel/Makefile | 7 +-
kernel/acct.c | 22 +-
kernel/audit_fsnotify.c | 5 +-
kernel/audit_tree.c | 34 +-
kernel/audit_watch.c | 2 +-
kernel/auditsc.c | 6 +
kernel/bpf/Kconfig | 1 +
kernel/bpf/Makefile | 2 +-
kernel/bpf/arraymap.c | 61 +-
kernel/bpf/bloom_filter.c | 6 +-
kernel/bpf/bpf_inode_storage.c | 10 +-
kernel/bpf/bpf_iter.c | 32 +-
kernel/bpf/bpf_local_storage.c | 29 +-
kernel/bpf/bpf_lru_list.h | 1 +
kernel/bpf/bpf_lsm.c | 17 +
kernel/bpf/bpf_struct_ops.c | 81 +-
kernel/bpf/bpf_task_storage.c | 9 +-
kernel/bpf/btf.c | 641 +-
kernel/bpf/cgroup.c | 106 +-
kernel/bpf/core.c | 43 +-
kernel/bpf/cpumap.c | 6 +-
kernel/bpf/devmap.c | 10 +-
kernel/bpf/hashtab.c | 133 +-
kernel/bpf/helpers.c | 223 +-
kernel/bpf/link_iter.c | 107 +
kernel/bpf/local_storage.c | 7 +-
kernel/bpf/lpm_trie.c | 6 +-
kernel/bpf/map_in_map.c | 5 +-
kernel/bpf/queue_stack_maps.c | 10 +-
kernel/bpf/reuseport_array.c | 6 +-
kernel/bpf/ringbuf.c | 88 +-
kernel/bpf/stackmap.c | 7 +-
kernel/bpf/syscall.c | 500 +-
kernel/bpf/task_iter.c | 1 -
kernel/bpf/trampoline.c | 118 +-
kernel/bpf/verifier.c | 819 +-
kernel/cgroup/cgroup-internal.h | 1 -
kernel/cgroup/cgroup.c | 4 +-
kernel/cgroup/cpuset.c | 7 +-
kernel/configs/x86_debug.config | 18 +
kernel/cpu.c | 29 +-
kernel/crash_core.c | 6 +-
kernel/debug/debug_core.c | 24 +
kernel/debug/kdb/kdb_io.c | 1 -
kernel/debug/kdb/kdb_keyboard.c | 1 -
kernel/debug/kdb/kdb_main.c | 111 +-
kernel/debug/kdb/kdb_private.h | 4 -
kernel/debug/kdb/kdb_support.c | 1 -
kernel/delayacct.c | 38 +-
kernel/dma/debug.c | 4 +-
kernel/dma/direct.c | 31 +-
kernel/dma/direct.h | 2 +-
kernel/dma/swiotlb.c | 194 +-
kernel/entry/common.c | 8 +-
kernel/entry/kvm.c | 6 -
kernel/events/core.c | 19 +-
kernel/events/uprobes.c | 9 +-
kernel/fork.c | 57 +-
kernel/futex/pi.c | 2 +-
kernel/gen_kheaders.sh | 2 +-
kernel/hung_task.c | 13 +-
kernel/irq/affinity.c | 2 +-
kernel/irq/chip.c | 13 +-
kernel/irq/debugfs.c | 1 +
kernel/irq/internals.h | 2 +
kernel/irq/irq_sim.c | 2 +-
kernel/irq/irqdesc.c | 3 +-
kernel/irq/manage.c | 70 +-
kernel/irq/matrix.c | 2 +-
kernel/irq/msi.c | 15 +
kernel/kallsyms.c | 3 +-
kernel/kcov.c | 14 +-
kernel/kcsan/kcsan_test.c | 36 +-
kernel/kexec_core.c | 26 +-
kernel/kexec_file.c | 38 +-
kernel/kprobes.c | 144 +-
kernel/kthread.c | 1 -
kernel/latencytop.c | 41 +-
kernel/livepatch/patch.c | 2 +-
kernel/locking/lockdep.c | 58 +-
kernel/locking/mutex.c | 18 +-
kernel/locking/percpu-rwsem.c | 5 +
kernel/locking/qrwlock.c | 17 +-
kernel/locking/qspinlock.c | 5 +
kernel/locking/rtmutex.c | 11 +
kernel/locking/rwbase_rt.c | 7 +
kernel/locking/rwsem.c | 130 +-
kernel/locking/semaphore.c | 15 +-
kernel/module-internal.h | 50 -
kernel/module/Makefile | 21 +
kernel/module/debug_kmemleak.c | 30 +
.../{module_decompress.c => module/decompress.c} | 5 +-
kernel/module/internal.h | 302 +
kernel/module/kallsyms.c | 512 +
kernel/module/kdb.c | 62 +
kernel/module/livepatch.c | 74 +
kernel/{module.c => module/main.c} | 2081 +-
kernel/module/procfs.c | 146 +
kernel/module/signing.c | 125 +
kernel/module/strict_rwx.c | 143 +
kernel/module/sysfs.c | 436 +
kernel/module/tracking.c | 61 +
kernel/module/tree_lookup.c | 117 +
kernel/module/version.c | 101 +
kernel/module_signing.c | 45 -
kernel/notifier.c | 101 +-
kernel/panic.c | 32 +-
kernel/pid_namespace.c | 2 +-
kernel/platform-feature.c | 27 +
kernel/power/Makefile | 6 +-
kernel/power/energy_model.c | 65 +-
kernel/power/hibernate.c | 2 +-
kernel/power/main.c | 34 +-
kernel/power/process.c | 3 -
kernel/power/snapshot.c | 12 +-
kernel/power/suspend.c | 3 +-
kernel/printk/printk.c | 1203 +-
kernel/ptrace.c | 93 +-
kernel/rcu/Kconfig | 73 +-
kernel/rcu/Kconfig.debug | 23 +-
kernel/rcu/rcu.h | 15 +-
kernel/rcu/rcu_segcblist.c | 8 +-
kernel/rcu/rcuscale.c | 22 +-
kernel/rcu/rcutorture.c | 129 +-
kernel/rcu/refscale.c | 22 +-
kernel/rcu/srcutree.c | 639 +-
kernel/rcu/sync.c | 2 +-
kernel/rcu/tasks.h | 89 +-
kernel/rcu/tree.c | 146 +-
kernel/rcu/tree.h | 9 +-
kernel/rcu/tree_exp.h | 151 +-
kernel/rcu/tree_nocb.h | 39 +-
kernel/rcu/tree_plugin.h | 28 +-
kernel/rcu/tree_stall.h | 38 +-
kernel/rcu/update.c | 2 +
kernel/reboot.c | 433 +-
kernel/relay.c | 2 +-
kernel/scftorture.c | 5 +-
kernel/sched/autogroup.c | 2 +-
kernel/sched/build_policy.c | 2 +
kernel/sched/build_utility.c | 1 +
kernel/sched/clock.c | 4 +-
kernel/sched/core.c | 172 +-
kernel/sched/deadline.c | 57 +-
kernel/sched/fair.c | 326 +-
kernel/sched/idle.c | 4 +-
kernel/sched/pelt.h | 4 +-
kernel/sched/psi.c | 18 +-
kernel/sched/rt.c | 68 +-
kernel/sched/sched.h | 62 +-
kernel/sched/smp.h | 6 +
kernel/sched/topology.c | 25 +-
kernel/seccomp.c | 44 +-
kernel/signal.c | 158 +-
kernel/smp.c | 39 +-
kernel/smpboot.c | 7 +
kernel/softirq.c | 13 +
kernel/stackleak.c | 105 +-
kernel/stop_machine.c | 23 +-
kernel/sys.c | 12 +
kernel/sysctl.c | 390 -
kernel/task_work.c | 25 +-
kernel/taskstats.c | 24 +
kernel/time/clockevents.c | 9 +-
kernel/time/clocksource.c | 2 +-
kernel/time/posix-cpu-timers.c | 6 +-
kernel/time/sched_clock.c | 13 +-
kernel/time/tick-sched.c | 12 +-
kernel/time/timekeeping.c | 58 +-
kernel/time/timer.c | 90 +-
kernel/trace/Kconfig | 2 +
kernel/trace/Makefile | 4 +
kernel/trace/blktrace.c | 26 +-
kernel/trace/bpf_trace.c | 148 +-
kernel/trace/fgraph.c | 24 +-
kernel/trace/fprobe.c | 32 +-
kernel/trace/ftrace.c | 377 +-
kernel/trace/pid_list.c | 4 +-
kernel/trace/ring_buffer.c | 81 +-
kernel/trace/trace.c | 86 +-
kernel/trace/trace.h | 26 +-
kernel/trace/trace_boot.c | 2 +-
kernel/trace/trace_dynevent.c | 9 +-
kernel/trace/trace_eprobe.c | 24 +-
kernel/trace/trace_events.c | 77 +-
kernel/trace/trace_events_filter.c | 2 +-
kernel/trace/trace_events_hist.c | 191 +-
kernel/trace/trace_events_trigger.c | 324 +-
kernel/trace/trace_kprobe.c | 15 +-
kernel/trace/trace_osnoise.c | 26 +-
kernel/trace/trace_output.c | 25 +-
kernel/trace/trace_preemptirq.c | 4 +-
kernel/trace/trace_recursion_record.c | 7 +-
kernel/trace/trace_sched_switch.c | 4 +-
kernel/trace/trace_sched_wakeup.c | 4 +-
kernel/trace/trace_selftest.c | 3 +
kernel/trace/trace_syscalls.c | 35 +-
kernel/trace/tracing_map.c | 3 +-
kernel/tsacct.c | 10 +-
kernel/umh.c | 6 +-
kernel/usermode_driver.c | 4 +-
kernel/watchdog.c | 8 +-
kernel/watchdog_hld.c | 4 +
kernel/workqueue.c | 18 +-
lib/.gitignore | 1 +
lib/Kconfig | 3 +
lib/Kconfig.debug | 118 +-
lib/Kconfig.kasan | 168 +-
lib/Kconfig.kcsan | 4 +-
lib/Kconfig.ubsan | 2 +-
lib/Makefile | 12 +-
lib/assoc_array.c | 8 +
lib/bitmap.c | 117 +-
lib/bootconfig-data.S | 10 +
lib/bootconfig.c | 13 +
lib/bug.c | 15 +-
lib/crc-itu-t.c | 2 +-
lib/crypto/Kconfig | 6 -
lib/crypto/Makefile | 6 -
lib/debugobjects.c | 5 +-
lib/dim/net_dim.c | 44 +-
lib/dump_stack.c | 4 +-
lib/fault-inject.c | 3 +
lib/glob.c | 2 +-
lib/iov_iter.c | 20 +-
lib/irq_poll.c | 8 +-
lib/kstrtox.c | 6 +-
lib/kunit/Makefile | 1 +
lib/kunit/debugfs.c | 2 +-
lib/kunit/executor.c | 32 +-
lib/kunit/executor_test.c | 4 +-
lib/kunit/kunit-example-test.c | 16 +
lib/kunit/kunit-test.c | 37 +-
lib/kunit/resource.c | 79 +
lib/kunit/test.c | 145 +-
lib/list-test.c | 397 +-
lib/lockref.c | 9 +-
lib/nmi_backtrace.c | 4 +-
lib/nodemask.c | 4 +-
lib/percpu-refcount.c | 1 +
lib/polynomial.c | 108 +
lib/random32.c | 347 +-
lib/siphash.c | 37 +-
lib/slub_kunit.c | 10 +-
lib/stackdepot.c | 67 +-
lib/string.c | 25 +-
lib/string_helpers.c | 3 +
lib/test_bitmap.c | 25 +
lib/test_bpf.c | 315 +-
lib/test_firmware.c | 381 +
lib/test_kasan.c | 2 +-
lib/test_meminit.c | 12 +-
lib/test_siphash.c | 7 +-
lib/test_string.c | 33 +
lib/test_sysctl.c | 32 +
lib/vsprintf.c | 64 +-
lib/xarray.c | 5 +-
mm/Kconfig | 633 +-
mm/Kconfig.debug | 33 +
mm/Makefile | 2 +-
mm/backing-dev.c | 19 +-
mm/cma.c | 4 +-
mm/compaction.c | 93 +-
mm/damon/core-test.h | 36 +
mm/damon/core.c | 115 +-
mm/damon/ops-common.c | 3 +-
mm/damon/paddr.c | 2 +-
mm/damon/reclaim.c | 124 +-
mm/damon/sysfs.c | 406 +-
mm/damon/vaddr-test.h | 14 +-
mm/damon/vaddr.c | 90 +-
mm/debug_vm_pgtable.c | 46 +-
mm/fadvise.c | 11 +
mm/failslab.c | 3 +
mm/filemap.c | 113 +-
mm/folio-compat.c | 4 +-
mm/gup.c | 156 +-
mm/hmm.c | 2 +-
mm/huge_memory.c | 187 +-
mm/hugetlb.c | 445 +-
mm/hugetlb_vmemmap.c | 323 +-
mm/hugetlb_vmemmap.h | 24 +-
mm/hwpoison-inject.c | 1 +
mm/internal.h | 177 +-
mm/kasan/common.c | 12 +-
mm/kasan/generic.c | 6 +-
mm/kasan/kasan.h | 92 +-
mm/kasan/quarantine.c | 54 +-
mm/kasan/report.c | 2 +-
mm/kasan/report_generic.c | 8 +-
mm/kfence/.kunitconfig | 6 +
mm/kfence/core.c | 50 +-
mm/kfence/kfence_test.c | 36 +-
mm/khugepaged.c | 81 +-
mm/ksm.c | 35 +-
mm/madvise.c | 35 +-
mm/memcontrol.c | 329 +-
mm/memory-failure.c | 141 +-
mm/memory.c | 590 +-
mm/memory_hotplug.c | 35 +-
mm/mempolicy.c | 74 +-
mm/memremap.c | 12 +-
mm/migrate.c | 196 +-
mm/migrate_device.c | 23 +-
mm/mincore.c | 4 +-
mm/mmap.c | 102 +-
mm/mmu_gather.c | 16 +-
mm/mprotect.c | 176 +-
mm/mremap.c | 18 +-
mm/oom_kill.c | 38 +-
mm/page-writeback.c | 131 +-
mm/page_alloc.c | 403 +-
mm/page_ext.c | 2 +-
mm/page_idle.c | 7 +-
mm/page_io.c | 257 +-
mm/page_isolation.c | 405 +-
mm/page_owner.c | 13 +-
mm/page_table_check.c | 27 +-
mm/page_vma_mapped.c | 17 +-
mm/percpu-internal.h | 8 +-
mm/percpu.c | 5 +-
mm/pgtable-generic.c | 8 +
mm/readahead.c | 62 +-
mm/rmap.c | 409 +-
mm/secretmem.c | 8 +-
mm/shmem.c | 396 +-
mm/slab.c | 36 +-
mm/slab.h | 5 +-
mm/slab_common.c | 26 +-
mm/slob.c | 16 +-
mm/slub.c | 174 +-
mm/sparse-vmemmap.c | 176 +-
mm/sparse.c | 53 +-
mm/swap.c | 10 +-
mm/swap.h | 157 +
mm/swap_slots.c | 20 +-
mm/swap_state.c | 93 +-
mm/swapfile.c | 190 +-
mm/usercopy.c | 91 +-
mm/userfaultfd.c | 62 +-
mm/util.c | 35 +-
mm/vmalloc.c | 18 +-
mm/vmscan.c | 488 +-
mm/vmstat.c | 13 +-
mm/z3fold.c | 155 +-
mm/zsmalloc.c | 37 +-
mm/zswap.c | 52 +-
net/8021q/vlan.c | 3 +-
net/8021q/vlan_dev.c | 3 +-
net/9p/trans_xen.c | 8 +-
net/Kconfig.debug | 7 +
net/appletalk/ddp.c | 3 +-
net/atm/common.c | 4 +-
net/ax25/af_ax25.c | 30 +-
net/ax25/ax25_dev.c | 23 +-
net/ax25/ax25_subr.c | 2 +-
net/batman-adv/bridge_loop_avoidance.c | 4 +-
net/batman-adv/fragmentation.c | 11 +
net/batman-adv/hard-interface.c | 2 +
net/batman-adv/main.h | 2 +-
net/batman-adv/translation-table.c | 12 +-
net/bluetooth/af_bluetooth.c | 7 +-
net/bluetooth/eir.c | 31 +
net/bluetooth/eir.h | 4 +
net/bluetooth/hci_conn.c | 7 +-
net/bluetooth/hci_core.c | 12 +-
net/bluetooth/hci_event.c | 35 +-
net/bluetooth/hci_request.c | 6 +-
net/bluetooth/hci_sock.c | 3 +-
net/bluetooth/hci_sync.c | 94 +-
net/bluetooth/mgmt.c | 45 +-
net/bluetooth/mgmt_util.c | 2 +-
net/bluetooth/sco.c | 23 +-
net/bpf/bpf_dummy_struct_ops.c | 24 +-
net/bpf/test_run.c | 86 +-
net/bridge/br_device.c | 1 +
net/bridge/br_fdb.c | 160 +-
net/bridge/br_if.c | 12 +-
net/bridge/br_input.c | 7 +
net/bridge/br_mdb.c | 12 +-
net/bridge/br_netlink.c | 9 +-
net/bridge/br_private.h | 21 +-
net/bridge/br_switchdev.c | 3 +-
net/bridge/br_sysfs_br.c | 6 +-
net/caif/caif_socket.c | 2 +-
net/can/bcm.c | 7 +-
net/can/isotp.c | 153 +-
net/can/j1939/socket.c | 4 +-
net/can/raw.c | 20 +-
net/ceph/crush/mapper.c | 5 +-
net/ceph/osd_client.c | 311 +-
net/core/bpf_sk_storage.c | 11 +-
net/core/datagram.c | 7 +-
net/core/datagram.h | 15 -
net/core/dev.c | 237 +-
net/core/dev.h | 112 +
net/core/dev_addr_lists.c | 2 +
net/core/dev_ioctl.c | 2 +
net/core/devlink.c | 653 +-
net/core/drop_monitor.c | 2 +-
net/core/filter.c | 37 +-
net/core/flow_dissector.c | 20 +
net/core/flow_offload.c | 6 +
net/core/gro.c | 8 +
net/core/link_watch.c | 1 +
net/core/neighbour.c | 4 +-
net/core/net-procfs.c | 2 +
net/core/net-sysfs.c | 22 +-
net/core/page_pool.c | 83 +-
net/core/rtnetlink.c | 449 +-
net/core/secure_seq.c | 16 +-
net/core/skbuff.c | 71 +-
net/core/skmsg.c | 22 +-
net/core/sock.c | 126 +-
net/core/sock_map.c | 10 +-
net/core/sysctl_net_core.c | 29 +-
net/dccp/dccp.h | 4 +-
net/dccp/ipv4.c | 13 +-
net/dccp/ipv6.c | 12 +-
net/dccp/proto.c | 40 +-
net/decnet/dn_dev.c | 4 +-
net/decnet/dn_neigh.c | 3 +-
net/decnet/dn_route.c | 6 +-
net/dsa/dsa.c | 49 -
net/dsa/dsa2.c | 25 +-
net/dsa/dsa_priv.h | 29 +-
net/dsa/port.c | 137 +-
net/dsa/slave.c | 67 +-
net/dsa/switch.c | 198 +-
net/dsa/tag_8021q.c | 10 +-
net/ethernet/eth.c | 2 +-
net/ethtool/common.c | 3 +
net/ethtool/netlink.h | 2 +-
net/ethtool/rings.c | 54 +-
net/ieee802154/socket.c | 12 +-
net/ipv4/Kconfig | 1 -
net/ipv4/af_inet.c | 11 +-
net/ipv4/arp.c | 7 +-
net/ipv4/datagram.c | 7 +-
net/ipv4/devinet.c | 6 +-
net/ipv4/esp4.c | 6 -
net/ipv4/fib_frontend.c | 4 +-
net/ipv4/fib_rules.c | 2 +-
net/ipv4/fib_semantics.c | 4 +-
net/ipv4/fib_trie.c | 12 +-
net/ipv4/fou.c | 1 -
net/ipv4/icmp.c | 77 +-
net/ipv4/igmp.c | 13 +-
net/ipv4/inet_connection_sock.c | 245 +-
net/ipv4/inet_diag.c | 5 +-
net/ipv4/inet_fragment.c | 2 +-
net/ipv4/inet_hashtables.c | 373 +-
net/ipv4/inet_timewait_sock.c | 58 +-
net/ipv4/ip_forward.c | 13 +-
net/ipv4/ip_gre.c | 61 +-
net/ipv4/ip_input.c | 1 +
net/ipv4/ipmr.c | 2 +-
net/ipv4/netfilter.c | 3 +-
net/ipv4/netfilter/nf_reject_ipv4.c | 10 +-
net/ipv4/netfilter/nft_fib_ipv4.c | 4 +
net/ipv4/ping.c | 52 +-
net/ipv4/raw.c | 6 +-
net/ipv4/route.c | 75 +-
net/ipv4/sysctl_net_ipv4.c | 16 +-
net/ipv4/tcp.c | 83 +-
net/ipv4/tcp_bbr.c | 22 +-
net/ipv4/tcp_bic.c | 14 +-
net/ipv4/tcp_bpf.c | 15 +-
net/ipv4/tcp_cdg.c | 30 +-
net/ipv4/tcp_cong.c | 30 +-
net/ipv4/tcp_cubic.c | 26 +-
net/ipv4/tcp_dctcp.c | 11 +-
net/ipv4/tcp_highspeed.c | 18 +-
net/ipv4/tcp_htcp.c | 10 +-
net/ipv4/tcp_hybla.c | 18 +-
net/ipv4/tcp_illinois.c | 12 +-
net/ipv4/tcp_input.c | 182 +-
net/ipv4/tcp_ipv4.c | 36 +-
net/ipv4/tcp_lp.c | 6 +-
net/ipv4/tcp_metrics.c | 12 +-
net/ipv4/tcp_nv.c | 24 +-
net/ipv4/tcp_output.c | 50 +-
net/ipv4/tcp_rate.c | 2 +-
net/ipv4/tcp_recovery.c | 15 +-
net/ipv4/tcp_scalable.c | 4 +-
net/ipv4/tcp_vegas.c | 21 +-
net/ipv4/tcp_veno.c | 24 +-
net/ipv4/tcp_westwood.c | 3 +-
net/ipv4/tcp_yeah.c | 30 +-
net/ipv4/udp.c | 16 +-
net/ipv4/udp_bpf.c | 17 +-
net/ipv4/udp_impl.h | 4 +-
net/ipv4/xfrm4_protocol.c | 1 -
net/ipv6/addrconf.c | 53 +-
net/ipv6/af_inet6.c | 7 +-
net/ipv6/datagram.c | 10 +-
net/ipv6/esp6.c | 6 -
net/ipv6/exthdrs.c | 44 +-
net/ipv6/icmp.c | 31 +-
net/ipv6/inet6_hashtables.c | 15 +-
net/ipv6/ip6_gre.c | 34 +-
net/ipv6/ip6_input.c | 41 +-
net/ipv6/ip6_offload.c | 56 +-
net/ipv6/ip6_output.c | 62 +-
net/ipv6/ip6_tunnel.c | 2 -
net/ipv6/mcast.c | 8 +-
net/ipv6/ndisc.c | 30 +-
net/ipv6/netfilter.c | 3 +-
net/ipv6/netfilter/nf_reject_ipv6.c | 4 +-
net/ipv6/netfilter/nft_fib_ipv6.c | 4 +
net/ipv6/ping.c | 8 +-
net/ipv6/raw.c | 6 +-
net/ipv6/route.c | 6 +-
net/ipv6/seg6_hmac.c | 1 -
net/ipv6/seg6_local.c | 1 +
net/ipv6/sysctl_net_ipv6.c | 6 +-
net/ipv6/tcp_ipv6.c | 12 +-
net/ipv6/udp.c | 23 +-
net/ipv6/udp_impl.h | 4 +-
net/iucv/af_iucv.c | 3 +-
net/key/af_key.c | 14 +-
net/l2tp/l2tp_ip.c | 8 +-
net/l2tp/l2tp_ip6.c | 17 +-
net/l2tp/l2tp_ppp.c | 3 +-
net/mac80211/agg-rx.c | 12 +-
net/mac80211/agg-tx.c | 6 +-
net/mac80211/airtime.c | 4 +-
net/mac80211/cfg.c | 81 +-
net/mac80211/chan.c | 15 +-
net/mac80211/debugfs.c | 1 +
net/mac80211/debugfs_netdev.c | 2 +-
net/mac80211/debugfs_sta.c | 12 +-
net/mac80211/eht.c | 6 +-
net/mac80211/ethtool.c | 4 +-
net/mac80211/he.c | 8 +-
net/mac80211/ht.c | 8 +-
net/mac80211/ibss.c | 26 +-
net/mac80211/ieee80211_i.h | 12 +-
net/mac80211/key.c | 9 +-
net/mac80211/main.c | 4 +-
net/mac80211/mesh_hwmp.c | 2 +-
net/mac80211/mesh_plink.c | 24 +-
net/mac80211/mlme.c | 141 +-
net/mac80211/ocb.c | 2 +-
net/mac80211/offchannel.c | 2 +-
net/mac80211/rate.c | 8 +-
net/mac80211/rc80211_minstrel_ht.c | 177 +-
net/mac80211/rc80211_minstrel_ht.h | 2 +-
net/mac80211/rx.c | 134 +-
net/mac80211/s1g.c | 4 +-
net/mac80211/scan.c | 20 +
net/mac80211/sta_info.c | 110 +-
net/mac80211/sta_info.h | 155 +-
net/mac80211/status.c | 130 +-
net/mac80211/tdls.c | 26 +-
net/mac80211/trace.h | 4 +-
net/mac80211/tx.c | 28 +-
net/mac80211/util.c | 40 -
net/mac80211/vht.c | 78 +-
net/mac80211/wpa.c | 103 +-
net/mac802154/cfg.c | 1 +
net/mac802154/ieee802154_i.h | 2 +
net/mac802154/main.c | 54 +-
net/mac802154/util.c | 22 +-
net/mctp/af_mctp.c | 4 +-
net/mctp/test/route-test.c | 12 +-
net/mpls/af_mpls.c | 3 +-
net/mptcp/Makefile | 4 +-
net/mptcp/bpf.c | 21 +
net/mptcp/ctrl.c | 21 +
net/mptcp/mib.c | 5 +
net/mptcp/mib.h | 7 +
net/mptcp/mptcp_diag.c | 105 +-
net/mptcp/options.c | 103 +-
net/mptcp/pm.c | 111 +-
net/mptcp/pm_netlink.c | 266 +-
net/mptcp/pm_userspace.c | 429 +
net/mptcp/protocol.c | 123 +-
net/mptcp/protocol.h | 120 +-
net/mptcp/sockopt.c | 21 +-
net/mptcp/subflow.c | 105 +-
net/netfilter/ipvs/ip_vs_ctl.c | 4 +-
net/netfilter/nf_conncount.c | 11 +
net/netfilter/nf_conntrack_bpf.c | 22 +-
net/netfilter/nf_conntrack_core.c | 304 +-
net/netfilter/nf_conntrack_ecache.c | 178 +-
net/netfilter/nf_conntrack_extend.c | 32 +-
net/netfilter/nf_conntrack_helper.c | 5 -
net/netfilter/nf_conntrack_netlink.c | 152 +-
net/netfilter/nf_conntrack_proto.c | 10 +-
net/netfilter/nf_conntrack_proto_tcp.c | 52 +-
net/netfilter/nf_conntrack_standalone.c | 2 +-
net/netfilter/nf_conntrack_timeout.c | 7 +-
net/netfilter/nf_flow_table_core.c | 60 +-
net/netfilter/nf_flow_table_ip.c | 19 +
net/netfilter/nf_log_syslog.c | 136 +-
net/netfilter/nf_nat_masquerade.c | 5 +-
net/netfilter/nf_tables_api.c | 175 +-
net/netfilter/nf_tables_offload.c | 23 +-
net/netfilter/nfnetlink.c | 26 +-
net/netfilter/nfnetlink_cttimeout.c | 62 +-
net/netfilter/nft_bitwise.c | 13 +-
net/netfilter/nft_fib.c | 4 +
net/netfilter/nft_flow_offload.c | 38 +-
net/netfilter/nft_limit.c | 2 +
net/netfilter/nft_nat.c | 3 +-
net/netlink/af_netlink.c | 4 +-
net/netrom/af_netrom.c | 3 +-
net/nfc/core.c | 34 +-
net/nfc/llcp_sock.c | 3 +-
net/nfc/nci/data.c | 2 +-
net/nfc/nci/hci.c | 4 +-
net/nfc/netlink.c | 4 +-
net/nfc/rawsock.c | 3 +-
net/openvswitch/actions.c | 6 +
net/openvswitch/conntrack.c | 4 +-
net/packet/af_packet.c | 24 +-
net/phonet/datagram.c | 4 +-
net/phonet/pep.c | 7 +-
net/qrtr/af_qrtr.c | 3 +-
net/rds/ib.c | 4 +-
net/rds/tcp.c | 18 +-
net/rds/tcp.h | 2 +-
net/rds/tcp_connect.c | 5 +-
net/rds/tcp_listen.c | 5 +-
net/rose/af_rose.c | 3 +-
net/rose/rose_route.c | 25 +-
net/rxrpc/af_rxrpc.c | 2 +-
net/rxrpc/ar-internal.h | 38 +-
net/rxrpc/call_accept.c | 10 +-
net/rxrpc/call_event.c | 7 +-
net/rxrpc/call_object.c | 62 +-
net/rxrpc/conn_client.c | 30 +-
net/rxrpc/conn_object.c | 51 +-
net/rxrpc/conn_service.c | 8 +-
net/rxrpc/input.c | 62 +-
net/rxrpc/local_object.c | 71 +-
net/rxrpc/net_ns.c | 7 +-
net/rxrpc/output.c | 20 +-
net/rxrpc/peer_object.c | 40 +-
net/rxrpc/proc.c | 85 +-
net/rxrpc/recvmsg.c | 8 +-
net/rxrpc/sendmsg.c | 6 +
net/rxrpc/skbuff.c | 1 -
net/rxrpc/sysctl.c | 4 +-
net/sched/act_api.c | 4 +-
net/sched/act_csum.c | 3 +-
net/sched/act_ct.c | 5 +-
net/sched/act_gact.c | 13 +-
net/sched/act_gate.c | 3 +-
net/sched/act_mirred.c | 4 +-
net/sched/act_mpls.c | 10 +-
net/sched/act_pedit.c | 34 +-
net/sched/act_police.c | 20 +-
net/sched/act_sample.c | 3 +-
net/sched/act_skbedit.c | 65 +-
net/sched/act_tunnel_key.c | 4 +-
net/sched/act_vlan.c | 4 +-
net/sched/cls_api.c | 22 +-
net/sched/cls_flower.c | 104 +-
net/sched/cls_matchall.c | 19 +-
net/sched/em_meta.c | 7 +-
net/sched/sch_generic.c | 12 +-
net/sctp/input.c | 4 +-
net/sctp/ipv6.c | 4 +-
net/sctp/output.c | 3 +-
net/sctp/socket.c | 18 +-
net/sctp/stream_sched.c | 9 +-
net/sctp/ulpevent.c | 2 +-
net/smc/af_smc.c | 53 +-
net/smc/smc_cdc.c | 2 +-
net/smc/smc_ib.c | 1 +
net/smc/smc_rx.c | 4 +-
net/smc/smc_tx.c | 17 +-
net/smc/smc_wr.c | 5 +-
net/socket.c | 127 +-
net/sunrpc/auth_gss/gss_rpc_upcall.c | 1 +
net/sunrpc/auth_gss/svcauth_gss.c | 4 +-
net/sunrpc/cache.c | 18 +-
net/sunrpc/clnt.c | 44 +-
net/sunrpc/debugfs.c | 3 +
net/sunrpc/fail.h | 2 +-
net/sunrpc/svc.c | 24 +-
net/sunrpc/svc_xprt.c | 17 +-
net/sunrpc/svcsock.c | 21 +-
net/sunrpc/xdr.c | 37 +-
net/sunrpc/xprtrdma/frwr_ops.c | 2 +-
net/sunrpc/xprtrdma/rpc_rdma.c | 5 +
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 1 -
net/sunrpc/xprtrdma/svc_rdma_rw.c | 4 +-
net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 +-
net/sunrpc/xprtsock.c | 37 +-
net/tipc/bearer.c | 3 +-
net/tls/tls_device.c | 62 +-
net/tls/tls_main.c | 55 +
net/tls/tls_sw.c | 491 +-
net/unix/af_unix.c | 21 +-
net/unix/unix_bpf.c | 5 +-
net/vmw_vsock/hyperv_transport.c | 21 +-
net/vmw_vsock/virtio_transport.c | 197 +-
net/vmw_vsock/vmci_transport.c | 5 +-
net/wireless/chan.c | 93 +-
net/wireless/core.h | 14 +-
net/wireless/ibss.c | 4 +-
net/wireless/nl80211.c | 435 +-
net/wireless/reg.c | 4 +
net/wireless/scan.c | 2 +-
net/x25/af_x25.c | 3 +-
net/x25/x25_proc.c | 3 +-
net/xdp/xsk.c | 9 +-
net/xdp/xsk_queue.h | 12 +-
net/xdp/xskmap.c | 6 +-
net/xfrm/espintcp.c | 4 +-
net/xfrm/xfrm_device.c | 15 +-
net/xfrm/xfrm_output.c | 3 +-
net/xfrm/xfrm_policy.c | 2 +-
net/xfrm/xfrm_state.c | 4 +-
net/xfrm/xfrm_user.c | 5 +-
samples/bpf/Makefile | 19 +-
samples/bpf/cpustat_user.c | 1 -
samples/bpf/hbm.c | 5 +-
samples/bpf/ibumad_user.c | 1 -
samples/bpf/map_perf_test_user.c | 1 -
samples/bpf/offwaketime_user.c | 1 -
samples/bpf/sockex2_user.c | 1 -
samples/bpf/sockex3_user.c | 1 -
samples/bpf/spintest_user.c | 1 -
samples/bpf/syscall_tp_user.c | 4 +-
samples/bpf/task_fd_query_user.c | 1 -
samples/bpf/test_lru_dist.c | 1 -
samples/bpf/test_map_in_map_user.c | 1 -
samples/bpf/test_overhead_user.c | 1 -
samples/bpf/tracex2_user.c | 1 -
samples/bpf/tracex3_user.c | 1 -
samples/bpf/tracex4_user.c | 1 -
samples/bpf/tracex5_user.c | 1 -
samples/bpf/tracex6_user.c | 1 -
samples/bpf/xdp1_user.c | 3 +-
samples/bpf/xdp_adjust_tail_user.c | 1 -
samples/bpf/xdp_monitor_user.c | 1 -
samples/bpf/xdp_redirect_cpu_user.c | 1 -
samples/bpf/xdp_redirect_map_multi_user.c | 1 -
samples/bpf/xdp_redirect_user.c | 1 -
samples/bpf/xdp_router_ipv4.bpf.c | 180 +
samples/bpf/xdp_router_ipv4_kern.c | 186 -
samples/bpf/xdp_router_ipv4_user.c | 456 +-
samples/bpf/xdp_rxq_info_user.c | 23 +-
samples/bpf/xdp_sample_pkts_user.c | 1 -
samples/bpf/xdp_sample_user.c | 1 -
samples/bpf/xdp_tx_iptunnel_user.c | 1 -
samples/bpf/xdpsock_user.c | 9 +-
samples/bpf/xsk_fwd.c | 7 +-
samples/landlock/sandboxer.c | 132 +-
samples/trace_events/trace_custom_sched.h | 6 +-
samples/vfio-mdev/mbochs.c | 9 +-
samples/vfio-mdev/mdpy.c | 9 +-
samples/vfio-mdev/mtty.c | 39 +-
scripts/Kbuild.include | 10 +-
scripts/Makefile | 4 +-
scripts/Makefile.build | 226 +-
scripts/Makefile.clean | 8 +-
scripts/Makefile.extrawarn | 13 +-
scripts/Makefile.gcc-plugins | 22 +-
scripts/Makefile.lib | 37 +-
scripts/Makefile.modfinal | 5 +-
scripts/Makefile.modpost | 12 +-
scripts/Makefile.randstruct | 17 +
scripts/Makefile.vmlinux | 32 +
scripts/Makefile.vmlinux_o | 87 +
scripts/adjust_autoksyms.sh | 2 +-
scripts/atomic/gen-atomic-fallback.sh | 31 +-
scripts/atomic/gen-atomic-instrumented.sh | 2 +-
scripts/basic/.gitignore | 1 +
scripts/basic/Makefile | 11 +
scripts/bloat-o-meter | 1 +
scripts/bpf_doc.py | 4 +
scripts/check-blacklist-hashes.awk | 37 +
scripts/check-local-export | 71 +
scripts/checkpatch.pl | 8 +-
scripts/checksyscalls.sh | 2 +-
scripts/decode_stacktrace.sh | 27 +-
scripts/dtc/include-prefixes/h8300 | 1 -
.../Makefile.boot => scripts/dummy-tools/pahole | 3 +-
scripts/faddr2line | 150 +-
scripts/gcc-plugins/Kconfig | 38 -
scripts/gcc-plugins/Makefile | 24 +-
scripts/gcc-plugins/gen-random-seed.sh | 9 -
scripts/gcc-plugins/latent_entropy_plugin.c | 2 +-
scripts/gcc-plugins/randomize_layout_plugin.c | 89 +-
scripts/gcc-plugins/sancov_plugin.c | 2 +-
scripts/gcc-plugins/stackleak_plugin.c | 2 +-
scripts/gcc-plugins/structleak_plugin.c | 2 +-
scripts/gdb/linux/config.py | 6 +-
scripts/gen-randstruct-seed.sh | 7 +
scripts/gen_autoksyms.sh | 18 +-
scripts/genksyms/genksyms.c | 18 +-
scripts/get_abi.pl | 4 +-
scripts/get_maintainer.pl | 1 +
scripts/install.sh | 40 +
scripts/kallsyms.c | 5 +-
scripts/kconfig/gconf-cfg.sh | 12 +-
scripts/kconfig/mconf-cfg.sh | 16 +-
scripts/kconfig/nconf-cfg.sh | 16 +-
scripts/kconfig/nconf.c | 8 +-
scripts/kconfig/qconf-cfg.sh | 14 +-
scripts/link-vmlinux.sh | 148 +-
scripts/min-tool-version.sh | 3 +-
scripts/mod/file2alias.c | 12 +-
scripts/mod/list.h | 213 +
scripts/mod/modpost.c | 825 +-
scripts/mod/modpost.h | 34 +-
scripts/mod/sumversion.c | 19 +-
scripts/nsdeps | 5 +-
scripts/objdiff | 6 +-
scripts/objdump-func | 29 +
scripts/package/builddeb | 2 +-
scripts/prune-kernel | 6 +-
scripts/selinux/genheaders/genheaders.c | 75 +-
scripts/selinux/mdp/mdp.c | 4 +-
scripts/sign-file.c | 7 +
scripts/sorttable.c | 5 +
scripts/spdxcheck-test.sh | 2 +-
scripts/spdxcheck.py | 175 +-
scripts/spdxexclude | 18 +
scripts/subarch.include | 2 +-
scripts/tags.sh | 11 +-
security/Kconfig | 13 +-
security/Kconfig.hardening | 73 +
security/apparmor/lsm.c | 30 +-
security/apparmor/policy_unpack_test.c | 6 +-
security/integrity/digsig.c | 3 +-
security/integrity/evm/evm.h | 3 -
security/integrity/evm/evm_crypto.c | 2 +-
security/integrity/evm/evm_main.c | 2 +-
security/integrity/ima/Kconfig | 14 +-
security/integrity/ima/ima_api.c | 47 +-
security/integrity/ima/ima_appraise.c | 114 +-
security/integrity/ima/ima_main.c | 4 +-
security/integrity/ima/ima_policy.c | 82 +-
security/integrity/ima/ima_template.c | 4 +
security/integrity/ima/ima_template_lib.c | 94 +-
security/integrity/ima/ima_template_lib.h | 4 +
security/integrity/integrity.h | 27 +-
.../integrity/platform_certs/keyring_handler.c | 32 +-
.../integrity/platform_certs/keyring_handler.h | 8 +
security/integrity/platform_certs/load_uefi.c | 33 +
security/keys/Kconfig | 18 +-
security/keys/big_key.c | 73 +-
security/keys/trusted-keys/Kconfig | 38 +
security/keys/trusted-keys/Makefile | 10 +-
security/keys/trusted-keys/trusted_caam.c | 80 +
security/keys/trusted-keys/trusted_core.c | 45 +-
security/keys/trusted-keys/trusted_tpm2.c | 4 +-
security/landlock/cred.c | 4 +-
security/landlock/cred.h | 8 +-
security/landlock/fs.c | 815 +-
security/landlock/fs.h | 11 +-
security/landlock/limits.h | 10 +-
security/landlock/object.c | 6 +-
security/landlock/object.h | 6 +-
security/landlock/ptrace.c | 10 +-
security/landlock/ruleset.c | 84 +-
security/landlock/ruleset.h | 35 +-
security/landlock/syscalls.c | 95 +-
security/loadpin/loadpin.c | 5 +-
security/lsm_audit.c | 3 +
security/security.c | 22 +-
security/selinux/avc.c | 6 +-
security/selinux/hooks.c | 9 +-
security/selinux/include/audit.h | 5 +-
security/selinux/include/avc.h | 1 +
security/selinux/include/avc_ss.h | 4 +-
security/selinux/include/classmap.h | 2 +-
security/selinux/include/ibpkey.h | 2 +
security/selinux/include/initial_sid_to_string.h | 3 +-
security/selinux/include/netnode.h | 2 +
security/selinux/include/netport.h | 2 +
security/selinux/include/policycap.h | 2 +-
security/selinux/include/policycap_names.h | 2 +-
security/selinux/include/security.h | 4 +
security/selinux/include/xfrm.h | 2 +
security/selinux/nlmsgtab.c | 12 +-
security/selinux/selinuxfs.c | 8 +-
security/selinux/ss/avtab.c | 20 +-
security/selinux/ss/hashtab.c | 3 +-
security/selinux/ss/policydb.c | 36 +-
security/selinux/ss/services.c | 47 +-
security/smack/smackfs.c | 2 +-
security/tomoyo/tomoyo.c | 11 +-
sound/arm/pxa2xx-ac97-lib.c | 145 +-
.../regs-ac97.h => sound/arm/pxa2xx-ac97-regs.h | 42 +-
sound/arm/pxa2xx-ac97.c | 3 +-
sound/core/Makefile | 2 -
sound/core/jack.c | 34 +-
sound/core/pcm_memory.c | 3 +-
sound/core/seq/seq_ports.c | 2 +-
sound/drivers/Kconfig | 18 +
sound/drivers/Makefile | 2 +
sound/drivers/serial-generic.c | 374 +
sound/firewire/fireworks/fireworks_hwdep.c | 1 +
sound/hda/hdac_device.c | 1 +
sound/isa/Kconfig | 2 +-
sound/isa/wavefront/wavefront_synth.c | 3 +-
sound/pci/cs5535audio/cs5535audio_pcm.c | 2 +-
sound/pci/ctxfi/ctatc.c | 2 +
sound/pci/ctxfi/cthardware.h | 3 +-
sound/pci/ctxfi/cthw20k1.c | 2 +-
sound/pci/echoaudio/midi.c | 1 -
sound/pci/emu10k1/emu10k1_main.c | 5 +-
sound/pci/hda/Kconfig | 2 +
sound/pci/hda/cs35l41_hda.c | 438 +-
sound/pci/hda/cs35l41_hda.h | 31 +-
sound/pci/hda/cs35l41_hda_spi.c | 2 +-
sound/pci/hda/hda_codec.c | 11 +-
sound/pci/hda/hda_component.h | 2 -
sound/pci/hda/hda_intel.c | 3 +
sound/pci/hda/hda_tegra.c | 2 +
sound/pci/hda/patch_conexant.c | 8 +
sound/pci/hda/patch_cs8409-tables.c | 346 +-
sound/pci/hda/patch_cs8409.c | 361 +-
sound/pci/hda/patch_cs8409.h | 14 +-
sound/pci/hda/patch_hdmi.c | 1 +
sound/pci/hda/patch_realtek.c | 177 +-
sound/pci/hda/patch_via.c | 2 -
sound/pci/lola/lola_pcm.c | 3 +-
sound/pci/rme9652/hdsp.c | 2 +-
sound/soc/Kconfig | 9 +-
sound/soc/Makefile | 5 +
sound/soc/amd/acp-da7219-max98357a.c | 4 +-
sound/soc/amd/acp-rt5645.c | 2 +-
sound/soc/amd/acp/Kconfig | 6 +-
sound/soc/amd/acp/acp-legacy-mach.c | 22 +-
sound/soc/amd/acp/acp-mach-common.c | 29 +-
sound/soc/amd/acp/acp-mach.h | 9 +-
sound/soc/amd/acp/acp-pci.c | 1 +
sound/soc/amd/acp/acp-sof-mach.c | 22 +-
sound/soc/amd/acp3x-rt5682-max9836.c | 2 +-
sound/soc/amd/vangogh/acp5x-mach.c | 10 +-
sound/soc/amd/yc/acp6x-mach.c | 42 +-
sound/soc/amd/yc/pci-acp6x.c | 9 +-
sound/soc/atmel/Kconfig | 4 +-
sound/soc/atmel/atmel-classd.c | 1 -
sound/soc/atmel/atmel-pdmic.c | 1 -
sound/soc/atmel/mchp-pdmc.c | 1 +
sound/soc/atmel/sam9g20_wm8731.c | 16 +-
sound/soc/au1x/Kconfig | 2 +-
sound/soc/codecs/Kconfig | 67 +-
sound/soc/codecs/Makefile | 16 +
sound/soc/codecs/ad193x-i2c.c | 6 +-
sound/soc/codecs/adau1372-i2c.c | 4 +-
sound/soc/codecs/adau1372.c | 1 +
sound/soc/codecs/adau1373.c | 5 +-
sound/soc/codecs/adau1701.c | 5 +-
sound/soc/codecs/adau1761-i2c.c | 8 +-
sound/soc/codecs/adau1761.c | 86 +-
sound/soc/codecs/adau1781-i2c.c | 8 +-
sound/soc/codecs/adau17x1.c | 20 +-
sound/soc/codecs/adau17x1.h | 1 +
sound/soc/codecs/adau1977-i2c.c | 8 +-
sound/soc/codecs/adau7118-i2c.c | 5 +-
sound/soc/codecs/adav803.c | 5 +-
sound/soc/codecs/ak4118.c | 5 +-
sound/soc/codecs/ak4535.c | 5 +-
sound/soc/codecs/ak4613.c | 377 +-
sound/soc/codecs/ak4641.c | 5 +-
sound/soc/codecs/ak4642.c | 8 +-
sound/soc/codecs/ak4671.c | 5 +-
sound/soc/codecs/alc5623.c | 24 +-
sound/soc/codecs/alc5632.c | 20 +-
sound/soc/codecs/cros_ec_codec.c | 7 +-
sound/soc/codecs/cs35l32.c | 5 +-
sound/soc/codecs/cs35l33.c | 5 +-
sound/soc/codecs/cs35l34.c | 5 +-
sound/soc/codecs/cs35l35.c | 5 +-
sound/soc/codecs/cs35l36.c | 10 +-
sound/soc/codecs/cs35l41-i2c.c | 9 +-
sound/soc/codecs/cs35l41-lib.c | 319 +-
sound/soc/codecs/cs35l41-spi.c | 4 +-
sound/soc/codecs/cs35l41.c | 285 +-
sound/soc/codecs/cs35l41.h | 23 +-
sound/soc/codecs/cs35l45-i2c.c | 74 +
sound/soc/codecs/cs35l45-spi.c | 74 +
sound/soc/codecs/cs35l45-tables.c | 202 +
sound/soc/codecs/cs35l45.c | 690 +
sound/soc/codecs/cs35l45.h | 217 +
sound/soc/codecs/cs4234.c | 5 +-
sound/soc/codecs/cs4265.c | 5 +-
sound/soc/codecs/cs4270.c | 20 +-
sound/soc/codecs/cs4271-i2c.c | 5 +-
sound/soc/codecs/cs42l42.c | 5 +-
sound/soc/codecs/cs42l42.h | 826 +-
sound/soc/codecs/cs42l51-i2c.c | 5 +-
sound/soc/codecs/cs42l51.c | 9 +-
sound/soc/codecs/cs42l52.c | 13 +-
sound/soc/codecs/cs42l56.c | 11 +-
sound/soc/codecs/cs42l73.c | 5 +-
sound/soc/codecs/cs42xx8-i2c.c | 5 +-
sound/soc/codecs/cs43130.c | 23 +-
sound/soc/codecs/cs43130.h | 151 +-
sound/soc/codecs/cs4341.c | 5 +-
sound/soc/codecs/cs4349.c | 14 +-
sound/soc/codecs/cs53l30.c | 21 +-
sound/soc/codecs/cx2072x.c | 6 +-
sound/soc/codecs/da7210.c | 5 +-
sound/soc/codecs/da7213.c | 5 +-
sound/soc/codecs/da7218.c | 19 +-
sound/soc/codecs/da7219-aad.c | 18 +-
sound/soc/codecs/da7219.c | 19 +-
sound/soc/codecs/da732x.c | 5 +-
sound/soc/codecs/da9055.c | 5 +-
sound/soc/codecs/dmic.c | 5 +-
sound/soc/codecs/es8316.c | 5 +-
sound/soc/codecs/es8328-i2c.c | 5 +-
sound/soc/codecs/es8328.c | 5 +-
sound/soc/codecs/hdac_hda.c | 15 +-
sound/soc/codecs/hdmi-codec.c | 15 +-
sound/soc/codecs/isabelle.c | 5 +-
sound/soc/codecs/lm4857.c | 5 +-
sound/soc/codecs/lm49453.c | 5 +-
sound/soc/codecs/lochnagar-sc.c | 5 +-
sound/soc/codecs/lpass-macro-common.c | 35 +-
sound/soc/codecs/max9768.c | 5 +-
sound/soc/codecs/max98088.c | 21 +-
sound/soc/codecs/max98090.c | 34 +-
sound/soc/codecs/max98095.c | 19 +-
sound/soc/codecs/max98371.c | 5 +-
sound/soc/codecs/max98373-i2c.c | 5 +-
sound/soc/codecs/max98390.c | 17 +-
sound/soc/codecs/max98396.c | 1637 +
sound/soc/codecs/max98396.h | 305 +
sound/soc/codecs/max9850.c | 5 +-
sound/soc/codecs/max98504.c | 6 +-
sound/soc/codecs/max98520.c | 4 +-
sound/soc/codecs/max9867.c | 5 +-
sound/soc/codecs/max9877.c | 5 +-
sound/soc/codecs/max98925.c | 5 +-
sound/soc/codecs/max98926.c | 5 +-
sound/soc/codecs/max98927.c | 5 +-
sound/soc/codecs/ml26124.c | 5 +-
sound/soc/codecs/mt6351.c | 10 +-
sound/soc/codecs/mt6358.c | 10 +-
sound/soc/codecs/mt6359.c | 10 +-
sound/soc/codecs/mt6660.c | 6 +-
sound/soc/codecs/nau8540.c | 5 +-
sound/soc/codecs/nau8810.c | 5 +-
sound/soc/codecs/nau8821.c | 5 +-
sound/soc/codecs/nau8822.c | 9 +-
sound/soc/codecs/nau8822.h | 3 +
sound/soc/codecs/nau8824.c | 5 +-
sound/soc/codecs/nau8825.c | 5 +-
sound/soc/codecs/pcm1681.c | 5 +-
sound/soc/codecs/pcm1789-i2c.c | 9 +-
sound/soc/codecs/pcm1789.c | 4 +-
sound/soc/codecs/pcm1789.h | 2 +-
sound/soc/codecs/pcm179x-i2c.c | 5 +-
sound/soc/codecs/pcm186x-i2c.c | 24 +-
sound/soc/codecs/pcm186x.c | 7 +-
sound/soc/codecs/pcm3060-i2c.c | 5 +-
sound/soc/codecs/pcm3060.c | 1 +
sound/soc/codecs/pcm3168a-i2c.c | 5 +-
sound/soc/codecs/pcm512x-i2c.c | 5 +-
sound/soc/codecs/rk3328_codec.c | 2 +-
sound/soc/codecs/rt1011.c | 5 +-
sound/soc/codecs/rt1015.c | 5 +-
sound/soc/codecs/rt1016.c | 5 +-
sound/soc/codecs/rt1019.c | 8 +-
sound/soc/codecs/rt1305.c | 5 +-
sound/soc/codecs/rt1308-sdw.c | 1 +
sound/soc/codecs/rt1308-sdw.h | 1 +
sound/soc/codecs/rt1308.c | 5 +-
sound/soc/codecs/rt1316-sdw.c | 1 +
sound/soc/codecs/rt274.c | 5 +-
sound/soc/codecs/rt286.c | 5 +-
sound/soc/codecs/rt298.c | 5 +-
sound/soc/codecs/rt5514.c | 7 +-
sound/soc/codecs/rt5616.c | 5 +-
sound/soc/codecs/rt5631.c | 5 +-
sound/soc/codecs/rt5640.c | 16 +-
sound/soc/codecs/rt5640.h | 2 +
sound/soc/codecs/rt5645.c | 16 +-
sound/soc/codecs/rt5651.c | 5 +-
sound/soc/codecs/rt5659.c | 5 +-
sound/soc/codecs/rt5660.c | 5 +-
sound/soc/codecs/rt5663.c | 5 +-
sound/soc/codecs/rt5665.c | 5 +-
sound/soc/codecs/rt5668.c | 5 +-
sound/soc/codecs/rt5670.c | 5 +-
sound/soc/codecs/rt5682-i2c.c | 5 +-
sound/soc/codecs/rt5682s.c | 32 +-
sound/soc/codecs/rt5682s.h | 6 +-
sound/soc/codecs/rt700.c | 1 +
sound/soc/codecs/rt711-sdca.c | 1 +
sound/soc/codecs/rt711.c | 1 +
sound/soc/codecs/rt715-sdca-sdw.c | 2 -
sound/soc/codecs/rt715-sdca.c | 1 +
sound/soc/codecs/rt715.c | 1 +
sound/soc/codecs/rt9120.c | 115 +-
sound/soc/codecs/sdw-mockup.c | 1 +
sound/soc/codecs/sgtl5000.c | 5 +-
sound/soc/codecs/ssm2518.c | 5 +-
sound/soc/codecs/ssm2602-i2c.c | 8 +-
sound/soc/codecs/ssm4567.c | 5 +-
sound/soc/codecs/sta32x.c | 14 +-
sound/soc/codecs/sta350.c | 14 +-
sound/soc/codecs/sta529.c | 5 +-
sound/soc/codecs/tas2552.c | 5 +-
sound/soc/codecs/tas2562.c | 25 +-
sound/soc/codecs/tas2764.c | 5 +-
sound/soc/codecs/tas2770.c | 5 +-
sound/soc/codecs/tas5086.c | 5 +-
sound/soc/codecs/tas571x.c | 17 +-
sound/soc/codecs/tas5720.c | 21 +-
sound/soc/codecs/tas6424.c | 17 +-
sound/soc/codecs/tda7419.c | 5 +-
sound/soc/codecs/tlv320adc3xxx.c | 32 +-
sound/soc/codecs/tlv320adcx140.c | 16 +-
sound/soc/codecs/tlv320aic23-i2c.c | 5 +-
sound/soc/codecs/tlv320aic31xx.c | 32 +-
sound/soc/codecs/tlv320aic32x4-i2c.c | 11 +-
sound/soc/codecs/tlv320aic3x-i2c.c | 25 +-
sound/soc/codecs/tlv320dac33.c | 5 +-
sound/soc/codecs/tpa6130a2.c | 21 +-
sound/soc/codecs/ts3a227e.c | 5 +-
sound/soc/codecs/tscs42xx.c | 5 +-
sound/soc/codecs/tscs454.c | 17 +-
sound/soc/codecs/uda1380.c | 5 +-
sound/soc/codecs/wcd9335.c | 1 +
sound/soc/codecs/wcd934x.c | 1 +
sound/soc/codecs/wcd938x.c | 1 +
sound/soc/codecs/wm1250-ev1.c | 5 +-
sound/soc/codecs/wm2000.c | 12 +-
sound/soc/codecs/wm2200.c | 5 +-
sound/soc/codecs/wm5100.c | 5 +-
sound/soc/codecs/wm8510.c | 5 +-
sound/soc/codecs/wm8523.c | 5 +-
sound/soc/codecs/wm8580.c | 5 +-
sound/soc/codecs/wm8711.c | 5 +-
sound/soc/codecs/wm8728.c | 5 +-
sound/soc/codecs/wm8731-i2c.c | 68 +
sound/soc/codecs/wm8731-spi.c | 59 +
sound/soc/codecs/wm8731.c | 267 +-
sound/soc/codecs/wm8731.h | 27 +
sound/soc/codecs/wm8737.c | 5 +-
sound/soc/codecs/wm8741.c | 5 +-
sound/soc/codecs/wm8750.c | 5 +-
sound/soc/codecs/wm8753.c | 5 +-
sound/soc/codecs/wm8776.c | 5 +-
sound/soc/codecs/wm8804-i2c.c | 5 +-
sound/soc/codecs/wm8900.c | 5 +-
sound/soc/codecs/wm8903.c | 7 +-
sound/soc/codecs/wm8904.c | 9 +-
sound/soc/codecs/wm8940.c | 12 +-
sound/soc/codecs/wm8955.c | 5 +-
sound/soc/codecs/wm8958-dsp2.c | 8 +-
sound/soc/codecs/wm8960.c | 20 +-
sound/soc/codecs/wm8961.c | 5 +-
sound/soc/codecs/wm8962.c | 12 +-
sound/soc/codecs/wm8971.c | 5 +-
sound/soc/codecs/wm8974.c | 5 +-
sound/soc/codecs/wm8978.c | 5 +-
sound/soc/codecs/wm8983.c | 5 +-
sound/soc/codecs/wm8985.c | 8 +-
sound/soc/codecs/wm8988.c | 5 +-
sound/soc/codecs/wm8990.c | 5 +-
sound/soc/codecs/wm8991.c | 5 +-
sound/soc/codecs/wm8993.c | 5 +-
sound/soc/codecs/wm8995.c | 5 +-
sound/soc/codecs/wm8996.c | 5 +-
sound/soc/codecs/wm9081.c | 5 +-
sound/soc/codecs/wm9090.c | 6 +-
sound/soc/codecs/wm_adsp.c | 12 +-
sound/soc/codecs/wsa881x.c | 1 +
sound/soc/fsl/fsl_asrc.c | 8 +-
sound/soc/fsl/fsl_asrc_dma.c | 2 +-
sound/soc/fsl/fsl_easrc.h | 2 +-
sound/soc/fsl/fsl_esai.c | 6 +-
sound/soc/fsl/fsl_micfil.c | 382 +-
sound/soc/fsl/fsl_micfil.h | 269 +-
sound/soc/fsl/fsl_sai.c | 44 +-
sound/soc/fsl/fsl_sai.h | 5 +-
sound/soc/fsl/fsl_ssi.c | 34 +-
sound/soc/fsl/imx-es8328.c | 2 +-
sound/soc/fsl/imx-hdmi.c | 9 +-
sound/soc/fsl/imx-pcm.h | 2 +-
sound/soc/fsl/imx-sgtl5000.c | 14 +-
sound/soc/fsl/imx-ssi.h | 2 +-
sound/soc/generic/audio-graph-card2.c | 7 +-
sound/soc/generic/simple-card-utils.c | 7 +-
sound/soc/img/img-i2s-in.c | 6 +-
sound/soc/img/img-parallel-out.c | 6 +-
sound/soc/img/img-spdif-in.c | 6 +-
sound/soc/img/img-spdif-out.c | 6 +-
sound/soc/intel/Kconfig | 9 +-
sound/soc/intel/atom/sst/sst.c | 1 -
sound/soc/intel/atom/sst/sst_drv_interface.c | 15 +-
sound/soc/intel/avs/Makefile | 8 +-
sound/soc/intel/avs/apl.c | 250 +
sound/soc/intel/avs/avs.h | 102 +
sound/soc/intel/avs/board_selection.c | 502 +
sound/soc/intel/avs/core.c | 631 +
sound/soc/intel/avs/dsp.c | 27 +-
sound/soc/intel/avs/ipc.c | 253 +-
sound/soc/intel/avs/loader.c | 84 +
sound/soc/intel/avs/messages.c | 35 +-
sound/soc/intel/avs/messages.h | 51 +
sound/soc/intel/avs/path.c | 1005 +
sound/soc/intel/avs/path.h | 72 +
sound/soc/intel/avs/pcm.c | 1182 +
sound/soc/intel/avs/registers.h | 8 +
sound/soc/intel/avs/skl.c | 125 +
sound/soc/intel/avs/topology.c | 1598 +
sound/soc/intel/avs/topology.h | 194 +
sound/soc/intel/avs/trace.c | 33 +
sound/soc/intel/avs/trace.h | 154 +
sound/soc/intel/avs/utils.c | 23 +
sound/soc/intel/boards/bdw-rt5650.c | 6 +-
sound/soc/intel/boards/bdw-rt5677.c | 4 +-
sound/soc/intel/boards/broadwell.c | 2 +-
sound/soc/intel/boards/bxt_da7219_max98357a.c | 5 +-
sound/soc/intel/boards/bxt_rt298.c | 5 +-
sound/soc/intel/boards/bytcht_cx2072x.c | 10 +-
sound/soc/intel/boards/bytcht_es8316.c | 8 +-
sound/soc/intel/boards/bytcr_rt5640.c | 38 +-
sound/soc/intel/boards/bytcr_rt5651.c | 7 +-
sound/soc/intel/boards/bytcr_wm5102.c | 6 +-
sound/soc/intel/boards/cht_bsw_max98090_ti.c | 28 +-
sound/soc/intel/boards/cht_bsw_nau8824.c | 4 +-
sound/soc/intel/boards/cht_bsw_rt5645.c | 6 +-
sound/soc/intel/boards/cht_bsw_rt5672.c | 12 +-
sound/soc/intel/boards/cml_rt1011_rt5682.c | 5 +-
sound/soc/intel/boards/glk_rt5682_max98357a.c | 5 +-
sound/soc/intel/boards/kbl_da7219_max98357a.c | 5 +-
sound/soc/intel/boards/kbl_da7219_max98927.c | 5 +-
sound/soc/intel/boards/kbl_rt5660.c | 15 +-
sound/soc/intel/boards/kbl_rt5663_max98927.c | 7 +-
.../soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 7 +-
sound/soc/intel/boards/skl_hda_dsp_common.c | 8 +-
sound/soc/intel/boards/skl_nau88l25_max98357a.c | 6 +-
sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 6 +-
sound/soc/intel/boards/skl_rt286.c | 5 +-
sound/soc/intel/boards/sof_cirrus_common.c | 40 +-
sound/soc/intel/boards/sof_cs42l42.c | 5 +-
sound/soc/intel/boards/sof_da7219_max98373.c | 2 +-
sound/soc/intel/boards/sof_es8336.c | 8 +-
sound/soc/intel/boards/sof_nau8825.c | 2 +-
sound/soc/intel/boards/sof_realtek_common.c | 39 +
sound/soc/intel/boards/sof_realtek_common.h | 5 +
sound/soc/intel/boards/sof_rt5682.c | 18 +-
sound/soc/intel/boards/sof_sdw_rt5682.c | 14 +-
sound/soc/intel/boards/sof_sdw_rt700.c | 14 +-
sound/soc/intel/boards/sof_sdw_rt711.c | 14 +-
sound/soc/intel/boards/sof_sdw_rt711_sdca.c | 14 +-
sound/soc/intel/boards/sof_ssp_amp.c | 25 +-
sound/soc/intel/catpt/messages.h | 4 +-
sound/soc/intel/common/soc-acpi-intel-adl-match.c | 9 +-
sound/soc/mediatek/Kconfig | 27 +-
sound/soc/mediatek/mt2701/mt2701-wm8960.c | 9 +-
sound/soc/mediatek/mt8173/mt8173-max98090.c | 13 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 +-
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 4 +-
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 5 +-
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 5 +-
.../mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 203 +-
sound/soc/mediatek/mt8195/Makefile | 3 +-
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 8 +-
.../mediatek/mt8195/mt8195-mt6359-rt1011-rt5682.c | 1198 -
...8195-mt6359-rt1019-rt5682.c => mt8195-mt6359.c} | 871 +-
sound/soc/meson/aiu-acodec-ctrl.c | 2 +-
sound/soc/meson/aiu-codec-ctrl.c | 2 +-
sound/soc/meson/axg-card.c | 1 -
sound/soc/meson/axg-tdm-interface.c | 26 +-
sound/soc/meson/g12a-tohdmitx.c | 2 +-
sound/soc/mxs/mxs-saif.c | 1 +
sound/soc/pxa/Kconfig | 4 +-
sound/soc/pxa/corgi.c | 43 +-
sound/soc/pxa/e740_wm9705.c | 37 +-
sound/soc/pxa/e750_wm9705.c | 33 +-
sound/soc/pxa/e800_wm9712.c | 33 +-
sound/soc/pxa/em-x270.c | 2 +-
sound/soc/pxa/hx4700.c | 43 +-
sound/soc/pxa/magician.c | 141 +-
sound/soc/pxa/mioa701_wm9713.c | 2 +-
sound/soc/pxa/palm27x.c | 9 +-
sound/soc/pxa/poodle.c | 51 +-
sound/soc/pxa/pxa2xx-ac97.c | 24 +-
sound/soc/pxa/pxa2xx-i2s.c | 112 +-
sound/soc/pxa/spitz.c | 58 +-
sound/soc/pxa/tosa.c | 25 +-
sound/soc/pxa/ttc-dkb.c | 14 +-
sound/soc/pxa/z2.c | 15 +-
sound/soc/qcom/Kconfig | 2 +
sound/soc/qcom/apq8016_sbc.c | 2 +-
sound/soc/qcom/lpass-platform.c | 4 +-
sound/soc/qcom/sc7180.c | 4 +-
sound/soc/qcom/sc7280.c | 99 +-
sound/soc/qcom/sdm845.c | 2 +-
sound/soc/qcom/sm8250.c | 2 +-
sound/soc/rockchip/rk3288_hdmi_analog.c | 8 +-
sound/soc/rockchip/rk3399_gru_sound.c | 16 +-
sound/soc/rockchip/rockchip_max98090.c | 16 +-
sound/soc/rockchip/rockchip_rt5645.c | 2 +-
sound/soc/samsung/aries_wm8994.c | 6 +-
sound/soc/samsung/bells.c | 4 +-
sound/soc/samsung/h1940_uda1380.c | 3 +-
sound/soc/samsung/littlemill.c | 6 +-
sound/soc/samsung/lowland.c | 13 +-
sound/soc/samsung/midas_wm1811.c | 2 +-
sound/soc/samsung/rx1950_uda1380.c | 3 +-
sound/soc/samsung/smartq_wm8987.c | 8 +-
sound/soc/samsung/spdif.c | 3 +-
sound/soc/samsung/speyside.c | 14 +-
sound/soc/samsung/tobermory.c | 12 +-
sound/soc/sh/Kconfig | 2 +-
sound/soc/sh/rcar/core.c | 17 +-
sound/soc/sh/rcar/dma.c | 9 +-
sound/soc/sh/rcar/rsnd.h | 2 +-
sound/soc/sh/rcar/src.c | 7 +-
sound/soc/sh/rcar/ssi.c | 14 +-
sound/soc/sh/rcar/ssiu.c | 11 +-
sound/soc/sh/rz-ssi.c | 24 +-
sound/soc/soc-card.c | 56 +-
sound/soc/soc-component.c | 16 +-
sound/soc/soc-core.c | 98 +-
sound/soc/soc-dapm.c | 2 -
sound/soc/soc-generic-dmaengine-pcm.c | 57 +-
sound/soc/soc-jack.c | 2 +-
sound/soc/soc-ops.c | 20 +-
sound/soc/soc-pcm.c | 38 +-
sound/soc/soc-topology.c | 455 +-
sound/soc/soc-utils-test.c | 186 +
sound/soc/soc-utils.c | 45 +
sound/soc/sof/Makefile | 4 +-
sound/soc/sof/amd/acp-trace.c | 4 +-
sound/soc/sof/amd/acp.c | 66 +-
sound/soc/sof/amd/acp.h | 10 +-
sound/soc/sof/amd/pci-rn.c | 15 +-
sound/soc/sof/amd/renoir.c | 6 +-
sound/soc/sof/compress.c | 8 +-
sound/soc/sof/control.c | 36 +-
sound/soc/sof/core.c | 28 +-
sound/soc/sof/debug.c | 9 +-
sound/soc/sof/imx/imx8.c | 40 +-
sound/soc/sof/imx/imx8m.c | 20 +-
sound/soc/sof/intel/Kconfig | 2 +-
sound/soc/sof/intel/Makefile | 2 +-
sound/soc/sof/intel/apl.c | 143 +-
sound/soc/sof/intel/bdw.c | 21 +-
sound/soc/sof/intel/byt.c | 56 +-
sound/soc/sof/intel/cnl.c | 212 +-
sound/soc/sof/intel/hda-common-ops.c | 106 +
sound/soc/sof/intel/hda-dai.c | 434 +-
sound/soc/sof/intel/hda-dsp.c | 52 +-
sound/soc/sof/intel/hda-ipc.c | 82 +
sound/soc/sof/intel/hda-loader.c | 123 +-
sound/soc/sof/intel/hda-trace.c | 4 +-
sound/soc/sof/intel/hda.c | 40 +-
sound/soc/sof/intel/hda.h | 50 +-
sound/soc/sof/intel/icl.c | 121 +-
sound/soc/sof/intel/pci-apl.c | 36 +-
sound/soc/sof/intel/pci-cnl.c | 54 +-
sound/soc/sof/intel/pci-icl.c | 36 +-
sound/soc/sof/intel/pci-tgl.c | 97 +-
sound/soc/sof/intel/pci-tng.c | 27 +-
sound/soc/sof/intel/shim.h | 16 +-
sound/soc/sof/intel/tgl.c | 160 +-
sound/soc/sof/ipc.c | 969 +-
sound/soc/sof/ipc3-control.c | 155 +-
sound/soc/sof/ipc3-dtrace.c | 649 +
sound/soc/sof/ipc3-loader.c | 415 +
sound/soc/sof/ipc3-ops.h | 21 -
sound/soc/sof/ipc3-pcm.c | 10 +-
sound/soc/sof/ipc3-priv.h | 65 +
sound/soc/sof/ipc3-topology.c | 79 +-
sound/soc/sof/ipc3.c | 1040 +-
sound/soc/sof/ipc4-loader.c | 210 +
sound/soc/sof/ipc4-priv.h | 44 +
sound/soc/sof/ipc4.c | 606 +
sound/soc/sof/loader.c | 698 +-
sound/soc/sof/mediatek/Kconfig | 11 +
sound/soc/sof/mediatek/Makefile | 2 +
sound/soc/sof/mediatek/adsp_helper.h | 20 +-
sound/soc/sof/mediatek/mt8186/Makefile | 4 +
sound/soc/sof/mediatek/mt8186/mt8186-clk.c | 101 +
sound/soc/sof/mediatek/mt8186/mt8186-clk.h | 24 +
sound/soc/sof/mediatek/mt8186/mt8186-loader.c | 58 +
sound/soc/sof/mediatek/mt8186/mt8186.c | 554 +
sound/soc/sof/mediatek/mt8186/mt8186.h | 80 +
sound/soc/sof/mediatek/mt8195/mt8195.c | 192 +-
sound/soc/sof/mediatek/mtk-adsp-common.c | 84 +
sound/soc/sof/mediatek/mtk-adsp-common.h | 10 +
sound/soc/sof/ops.c | 2 +-
sound/soc/sof/ops.h | 34 +-
sound/soc/sof/pcm.c | 30 +-
sound/soc/sof/pm.c | 22 +-
sound/soc/sof/sof-acpi-dev.c | 6 +-
sound/soc/sof/sof-audio.c | 398 +-
sound/soc/sof/sof-audio.h | 80 +-
sound/soc/sof/sof-client-ipc-flood-test.c | 3 +-
sound/soc/sof/sof-client-ipc-msg-injector.c | 195 +-
sound/soc/sof/sof-client-probes.c | 14 +-
sound/soc/sof/sof-client.c | 66 +-
sound/soc/sof/sof-client.h | 2 +
sound/soc/sof/sof-of-dev.c | 12 +-
sound/soc/sof/sof-of-dev.h | 1 +
sound/soc/sof/sof-pci-dev.c | 101 +-
sound/soc/sof/sof-priv.h | 130 +-
sound/soc/sof/topology.c | 79 +-
sound/soc/sof/trace.c | 596 +-
sound/soc/tegra/Kconfig | 12 +
sound/soc/tegra/Makefile | 2 +
sound/soc/tegra/tegra186_asrc.c | 1046 +
sound/soc/tegra/tegra186_asrc.h | 112 +
sound/soc/tegra/tegra210_ahub.c | 82 +-
sound/soc/tegra/tegra_asoc_machine.c | 30 +-
sound/soc/tegra/tegra_wm8903.c | 10 +-
sound/soc/ti/ams-delta.c | 4 +-
sound/soc/ti/davinci-mcasp.c | 2 +
sound/soc/ti/j721e-evm.c | 44 +-
sound/soc/ti/omap-abe-twl6040.c | 8 +-
sound/soc/ti/omap-twl4030.c | 8 +-
sound/soc/ti/osk5912.c | 4 +-
sound/soc/ti/rx51.c | 2 +-
sound/soc/uniphier/aio-compress.c | 7 +-
sound/soc/ux500/mop500_ab8500.c | 9 +-
sound/usb/card.c | 1 +
sound/usb/card.h | 3 +-
sound/usb/clock.c | 11 +
sound/usb/endpoint.c | 90 +-
sound/usb/implicit.c | 10 +-
sound/usb/line6/pcm.c | 4 +-
sound/usb/midi.c | 7 +-
sound/usb/mixer_maps.c | 30 +
sound/usb/pcm.c | 22 +-
sound/usb/quirks-table.h | 19 +-
sound/usb/quirks.c | 8 +
sound/usb/usbaudio.h | 7 +
sound/usb/usx2y/usb_stream.c | 6 +-
sound/usb/usx2y/usbusx2yaudio.c | 2 +-
sound/usb/usx2y/usx2yhwdeppcm.c | 2 +-
sound/xen/xen_snd_front_evtchnl.c | 44 +-
sound/xen/xen_snd_front_evtchnl.h | 9 -
tools/Makefile | 40 +-
tools/accounting/.gitignore | 1 +
tools/accounting/Makefile | 2 +-
tools/accounting/getdelays.c | 8 +-
tools/accounting/procacct.c | 417 +
tools/arch/arm64/include/uapi/asm/perf_regs.h | 7 +-
tools/arch/h8300/include/asm/bitsperlong.h | 15 -
tools/arch/h8300/include/uapi/asm/mman.h | 7 -
tools/arch/x86/include/asm/amd-ibs.h | 2 +-
tools/arch/x86/include/asm/disabled-features.h | 8 +-
tools/arch/x86/include/asm/msr-index.h | 19 +
tools/bpf/bpftool/btf.c | 62 +-
tools/bpf/bpftool/common.c | 8 -
tools/bpf/bpftool/feature.c | 26 +-
tools/bpf/bpftool/gen.c | 5 +-
tools/bpf/bpftool/link.c | 4 +
tools/bpf/bpftool/main.c | 6 +-
tools/bpf/bpftool/main.h | 2 -
tools/bpf/bpftool/map.c | 2 -
tools/bpf/bpftool/perf.c | 112 +-
tools/bpf/bpftool/pids.c | 1 -
tools/bpf/bpftool/prog.c | 4 +-
tools/bpf/bpftool/struct_ops.c | 2 -
tools/bpf/bpftool/tracelog.c | 2 +-
tools/bpf/runqslower/runqslower.c | 18 +-
tools/build/Makefile.feature | 5 +
tools/build/feature/Makefile | 24 +
tools/build/feature/test-libbpf-bpf_map_create.c | 8 +
.../feature/test-libbpf-bpf_object__next_map.c | 8 +
.../feature/test-libbpf-bpf_object__next_program.c | 8 +
tools/build/feature/test-libbpf-bpf_prog_load.c | 9 +
.../test-libbpf-btf__load_from_kernel_by_id.c | 8 +
tools/build/feature/test-libbpf-btf__raw_data.c | 8 +
tools/certs/print-cert-tbs-hash.sh | 91 +
tools/gpio/gpio-event-mon.c | 6 +-
tools/include/linux/arm-smccc.h | 193 +
tools/include/linux/bitmap.h | 17 +-
tools/include/linux/objtool.h | 10 +-
tools/include/nolibc/Makefile | 42 +
tools/include/nolibc/arch-aarch64.h | 199 +
tools/include/nolibc/arch-arm.h | 204 +
tools/include/nolibc/arch-i386.h | 219 +
tools/include/nolibc/arch-mips.h | 215 +
tools/include/nolibc/arch-riscv.h | 204 +
tools/include/nolibc/arch-x86_64.h | 215 +
tools/include/nolibc/arch.h | 32 +
tools/include/nolibc/ctype.h | 99 +
tools/include/nolibc/errno.h | 27 +
tools/include/nolibc/nolibc.h | 2540 +-
tools/include/nolibc/signal.h | 22 +
tools/include/nolibc/std.h | 49 +
tools/include/nolibc/stdio.h | 306 +
tools/include/nolibc/stdlib.h | 423 +
tools/include/nolibc/string.h | 285 +
tools/include/nolibc/sys.h | 1247 +
tools/include/nolibc/time.h | 28 +
tools/include/nolibc/types.h | 205 +
tools/include/nolibc/unistd.h | 54 +
tools/include/uapi/asm-generic/fcntl.h | 21 +-
tools/include/uapi/asm-generic/socket.h | 2 +
tools/include/uapi/asm-generic/unistd.h | 4 +-
tools/include/uapi/asm/bitsperlong.h | 2 +
tools/include/uapi/asm/bpf_perf_event.h | 2 +
tools/include/uapi/linux/bpf.h | 125 +
tools/include/uapi/linux/btf.h | 4 +-
tools/include/uapi/linux/if_link.h | 2 +
tools/include/uapi/linux/kvm.h | 10 +-
tools/lib/bitmap.c | 20 +-
tools/lib/bpf/Build | 3 +-
tools/lib/bpf/Makefile | 4 +-
tools/lib/bpf/bpf.c | 136 +-
tools/lib/bpf/bpf.h | 46 +-
tools/lib/bpf/bpf_core_read.h | 37 +-
tools/lib/bpf/bpf_helpers.h | 26 +
tools/lib/bpf/bpf_tracing.h | 23 +
tools/lib/bpf/btf.c | 15 +-
tools/lib/bpf/libbpf.c | 1273 +-
tools/lib/bpf/libbpf.h | 279 +-
tools/lib/bpf/libbpf.map | 17 +-
tools/lib/bpf/libbpf_internal.h | 37 +
tools/lib/bpf/libbpf_version.h | 4 +-
tools/lib/bpf/relo_core.c | 104 +-
tools/lib/bpf/relo_core.h | 6 +
tools/lib/bpf/usdt.bpf.h | 259 +
tools/lib/bpf/usdt.c | 1518 +
tools/lib/perf/evlist.c | 84 +-
tools/lib/perf/evsel.c | 34 +-
tools/lib/perf/include/internal/evlist.h | 3 +-
tools/lib/perf/include/internal/evsel.h | 11 +
tools/lib/perf/include/internal/lib.h | 2 +
tools/lib/perf/include/perf/cpumap.h | 3 +
tools/lib/perf/include/perf/evsel.h | 1 +
tools/lib/perf/lib.c | 20 +
tools/lib/subcmd/parse-options.c | 17 +-
tools/lib/thermal/.gitignore | 2 +
tools/lib/thermal/Build | 5 +
tools/lib/thermal/Makefile | 165 +
tools/lib/thermal/commands.c | 349 +
tools/lib/thermal/events.c | 164 +
tools/lib/thermal/include/thermal.h | 142 +
tools/lib/thermal/libthermal.map | 25 +
tools/lib/thermal/libthermal.pc.template | 12 +
tools/lib/thermal/sampling.c | 75 +
tools/lib/thermal/thermal.c | 135 +
tools/lib/thermal/thermal_nl.c | 215 +
tools/lib/thermal/thermal_nl.h | 46 +
tools/memory-model/README | 3 +-
tools/objtool/Build | 12 +-
.../{stack-validation.txt => objtool.txt} | 122 +-
tools/objtool/Makefile | 14 +-
tools/objtool/arch/x86/decode.c | 2 +-
tools/objtool/arch/x86/special.c | 2 +-
tools/objtool/builtin-check.c | 156 +-
tools/objtool/builtin-orc.c | 73 -
tools/objtool/check.c | 467 +-
tools/objtool/elf.c | 211 +-
tools/objtool/include/objtool/builtin.h | 34 +-
tools/objtool/include/objtool/elf.h | 16 +-
tools/objtool/include/objtool/warn.h | 35 +-
tools/objtool/objtool.c | 103 +-
tools/objtool/weak.c | 9 +-
tools/perf/.gitignore | 1 -
tools/perf/Documentation/perf-annotate.txt | 5 +
tools/perf/Documentation/perf-arm-spe.txt | 218 +
tools/perf/Documentation/perf-c2c.txt | 8 +-
tools/perf/Documentation/perf-intel-pt.txt | 165 +
tools/perf/Documentation/perf-kvm.txt | 3 +
tools/perf/Documentation/perf-lock.txt | 21 +
tools/perf/Documentation/perf-record.txt | 12 +-
tools/perf/Documentation/perf-script.txt | 4 +
tools/perf/Documentation/perf-stat.txt | 12 +-
tools/perf/Documentation/perf-top.txt | 2 +-
tools/perf/Documentation/perf.txt | 2 +-
tools/perf/Makefile.config | 74 +-
tools/perf/Makefile.perf | 6 +-
tools/perf/arch/arm/util/cs-etm.c | 1 +
tools/perf/arch/arm64/util/arm-spe.c | 1 +
tools/perf/arch/arm64/util/mem-events.c | 6 +-
tools/perf/arch/arm64/util/perf_regs.c | 38 +
tools/perf/arch/arm64/util/unwind-libunwind.c | 73 +-
tools/perf/arch/riscv/Makefile | 1 +
tools/perf/arch/s390/util/auxtrace.c | 1 +
tools/perf/arch/x86/util/evlist.c | 7 +-
tools/perf/arch/x86/util/evsel.c | 32 +
tools/perf/arch/x86/util/evsel.h | 7 +
tools/perf/arch/x86/util/intel-bts.c | 1 +
tools/perf/arch/x86/util/intel-pt.c | 32 +-
tools/perf/arch/x86/util/perf_regs.c | 12 +
tools/perf/arch/x86/util/topdown.c | 46 +-
tools/perf/arch/x86/util/topdown.h | 7 +
tools/perf/bench/Build | 1 +
tools/perf/bench/bench.h | 2 +
tools/perf/bench/breakpoint.c | 244 +
tools/perf/bench/numa.c | 4 +-
tools/perf/builtin-annotate.c | 24 +
tools/perf/builtin-bench.c | 8 +
tools/perf/builtin-c2c.c | 90 +-
tools/perf/builtin-inject.c | 162 +-
tools/perf/builtin-kvm.c | 2 +
tools/perf/builtin-lock.c | 94 +-
tools/perf/builtin-record.c | 77 +-
tools/perf/builtin-script.c | 37 +-
tools/perf/builtin-stat.c | 76 +-
tools/perf/builtin-version.c | 1 +
tools/perf/perf-with-kcore.sh | 247 -
.../arch/arm64/arm/cortex-a34/branch.json | 11 +
.../pmu-events/arch/arm64/arm/cortex-a34/bus.json | 17 +
.../arch/arm64/arm/cortex-a34/cache.json | 32 +
.../arch/arm64/arm/cortex-a34/exception.json | 14 +
.../arch/arm64/arm/cortex-a34/instruction.json | 29 +
.../arch/arm64/arm/cortex-a34/memory.json | 8 +
.../arch/arm64/arm/cortex-a35/branch.json | 11 +
.../pmu-events/arch/arm64/arm/cortex-a35/bus.json | 17 +
.../arch/arm64/arm/cortex-a35/cache.json | 32 +
.../arch/arm64/arm/cortex-a35/exception.json | 14 +
.../arch/arm64/arm/cortex-a35/instruction.json | 44 +
.../arch/arm64/arm/cortex-a35/memory.json | 8 +
.../arch/arm64/arm/cortex-a510/branch.json | 59 +
.../pmu-events/arch/arm64/arm/cortex-a510/bus.json | 17 +
.../arch/arm64/arm/cortex-a510/cache.json | 182 +
.../arch/arm64/arm/cortex-a510/exception.json | 14 +
.../arch/arm64/arm/cortex-a510/instruction.json | 95 +
.../arch/arm64/arm/cortex-a510/memory.json | 32 +
.../arch/arm64/arm/cortex-a510/pipeline.json | 107 +
.../pmu-events/arch/arm64/arm/cortex-a510/pmu.json | 8 +
.../arch/arm64/arm/cortex-a510/trace.json | 32 +
.../arch/arm64/arm/cortex-a55/branch.json | 59 +
.../pmu-events/arch/arm64/arm/cortex-a55/bus.json | 17 +
.../arch/arm64/arm/cortex-a55/cache.json | 188 +
.../arch/arm64/arm/cortex-a55/exception.json | 20 +
.../arch/arm64/arm/cortex-a55/instruction.json | 65 +
.../arch/arm64/arm/cortex-a55/memory.json | 17 +
.../arch/arm64/arm/cortex-a55/pipeline.json | 80 +
.../arch/arm64/arm/cortex-a57-a72/branch.json | 17 +
.../arch/arm64/arm/cortex-a57-a72/bus.json | 29 +
.../arch/arm64/arm/cortex-a57-a72/cache.json | 80 +
.../arm64/arm/cortex-a57-a72/core-imp-def.json | 179 -
.../arch/arm64/arm/cortex-a57-a72/exception.json | 47 +
.../arch/arm64/arm/cortex-a57-a72/instruction.json | 68 +
.../arch/arm64/arm/cortex-a57-a72/memory.json | 20 +
.../arch/arm64/arm/cortex-a65/branch.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-a65/bus.json | 17 +
.../arch/arm64/arm/cortex-a65/cache.json | 236 +
.../pmu-events/arch/arm64/arm/cortex-a65/dpu.json | 32 +
.../arch/arm64/arm/cortex-a65/exception.json | 14 +
.../pmu-events/arch/arm64/arm/cortex-a65/ifu.json | 122 +
.../arch/arm64/arm/cortex-a65/instruction.json | 71 +
.../arch/arm64/arm/cortex-a65/memory.json | 35 +
.../arch/arm64/arm/cortex-a65/pipeline.json | 8 +
.../arch/arm64/arm/cortex-a710/branch.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-a710/bus.json | 20 +
.../arch/arm64/arm/cortex-a710/cache.json | 155 +
.../arch/arm64/arm/cortex-a710/exception.json | 47 +
.../arch/arm64/arm/cortex-a710/instruction.json | 134 +
.../arch/arm64/arm/cortex-a710/memory.json | 41 +
.../arch/arm64/arm/cortex-a710/pipeline.json | 23 +
.../arch/arm64/arm/cortex-a710/trace.json | 29 +
.../arch/arm64/arm/cortex-a73/branch.json | 11 +
.../pmu-events/arch/arm64/arm/cortex-a73/bus.json | 23 +
.../arch/arm64/arm/cortex-a73/cache.json | 107 +
.../pmu-events/arch/arm64/arm/cortex-a73/etm.json | 14 +
.../arch/arm64/arm/cortex-a73/exception.json | 14 +
.../arch/arm64/arm/cortex-a73/instruction.json | 65 +
.../arch/arm64/arm/cortex-a73/memory.json | 14 +
.../pmu-events/arch/arm64/arm/cortex-a73/mmu.json | 44 +
.../arch/arm64/arm/cortex-a73/pipeline.json | 38 +
.../arch/arm64/arm/cortex-a75/branch.json | 11 +
.../pmu-events/arch/arm64/arm/cortex-a75/bus.json | 17 +
.../arch/arm64/arm/cortex-a75/cache.json | 164 +
.../pmu-events/arch/arm64/arm/cortex-a75/etm.json | 14 +
.../arch/arm64/arm/cortex-a75/exception.json | 17 +
.../arch/arm64/arm/cortex-a75/instruction.json | 74 +
.../arch/arm64/arm/cortex-a75/memory.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-a75/mmu.json | 44 +
.../arch/arm64/arm/cortex-a75/pipeline.json | 44 +
.../arch/arm64/arm/cortex-a77/branch.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-a77/bus.json | 17 +
.../arch/arm64/arm/cortex-a77/cache.json | 143 +
.../arch/arm64/arm/cortex-a77/exception.json | 47 +
.../arch/arm64/arm/cortex-a77/instruction.json | 77 +
.../arch/arm64/arm/cortex-a77/memory.json | 23 +
.../arch/arm64/arm/cortex-a77/pipeline.json | 8 +
.../arch/arm64/arm/cortex-a78/branch.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-a78/bus.json | 20 +
.../arch/arm64/arm/cortex-a78/cache.json | 155 +
.../arch/arm64/arm/cortex-a78/exception.json | 47 +
.../arch/arm64/arm/cortex-a78/instruction.json | 80 +
.../arch/arm64/arm/cortex-a78/memory.json | 23 +
.../arch/arm64/arm/cortex-a78/pipeline.json | 23 +
.../arch/arm64/arm/cortex-x1/branch.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-x1/bus.json | 20 +
.../pmu-events/arch/arm64/arm/cortex-x1/cache.json | 155 +
.../arch/arm64/arm/cortex-x1/exception.json | 47 +
.../arch/arm64/arm/cortex-x1/instruction.json | 80 +
.../arch/arm64/arm/cortex-x1/memory.json | 23 +
.../arch/arm64/arm/cortex-x1/pipeline.json | 23 +
.../arch/arm64/arm/cortex-x2/branch.json | 17 +
.../pmu-events/arch/arm64/arm/cortex-x2/bus.json | 20 +
.../pmu-events/arch/arm64/arm/cortex-x2/cache.json | 155 +
.../arch/arm64/arm/cortex-x2/exception.json | 47 +
.../arch/arm64/arm/cortex-x2/instruction.json | 134 +
.../arch/arm64/arm/cortex-x2/memory.json | 41 +
.../arch/arm64/arm/cortex-x2/pipeline.json | 23 +
.../pmu-events/arch/arm64/arm/cortex-x2/trace.json | 29 +
.../arch/arm64/arm/neoverse-e1/branch.json | 17 +
.../pmu-events/arch/arm64/arm/neoverse-e1/bus.json | 17 +
.../arch/arm64/arm/neoverse-e1/cache.json | 107 +
.../arch/arm64/arm/neoverse-e1/exception.json | 14 +
.../arch/arm64/arm/neoverse-e1/instruction.json | 65 +
.../arch/arm64/arm/neoverse-e1/memory.json | 23 +
.../arch/arm64/arm/neoverse-e1/pipeline.json | 8 +
.../pmu-events/arch/arm64/arm/neoverse-e1/spe.json | 14 +
.../arch/arm64/common-and-microarch.json | 66 +
tools/perf/pmu-events/arch/arm64/mapfile.csv | 13 +
tools/perf/pmu-events/arch/s390/cf_z10/basic.json | 48 +-
tools/perf/pmu-events/arch/s390/cf_z10/crypto.json | 64 +-
.../perf/pmu-events/arch/s390/cf_z10/extended.json | 36 +-
tools/perf/pmu-events/arch/s390/cf_z13/basic.json | 48 +-
tools/perf/pmu-events/arch/s390/cf_z13/crypto.json | 64 +-
.../perf/pmu-events/arch/s390/cf_z13/extended.json | 100 +-
tools/perf/pmu-events/arch/s390/cf_z14/basic.json | 32 +-
tools/perf/pmu-events/arch/s390/cf_z14/crypto.json | 64 +-
.../perf/pmu-events/arch/s390/cf_z14/extended.json | 102 +-
tools/perf/pmu-events/arch/s390/cf_z15/basic.json | 32 +-
tools/perf/pmu-events/arch/s390/cf_z15/crypto.json | 114 -
.../perf/pmu-events/arch/s390/cf_z15/crypto6.json | 112 +
.../perf/pmu-events/arch/s390/cf_z15/extended.json | 108 +-
tools/perf/pmu-events/arch/s390/cf_z16/basic.json | 58 +
.../perf/pmu-events/arch/s390/cf_z16/crypto6.json | 142 +
.../perf/pmu-events/arch/s390/cf_z16/extended.json | 492 +
.../pmu-events/arch/s390/cf_z16/transaction.json | 7 +
tools/perf/pmu-events/arch/s390/cf_z196/basic.json | 48 +-
.../perf/pmu-events/arch/s390/cf_z196/crypto.json | 64 +-
.../pmu-events/arch/s390/cf_z196/extended.json | 44 +-
.../perf/pmu-events/arch/s390/cf_zec12/basic.json | 48 +-
.../perf/pmu-events/arch/s390/cf_zec12/crypto.json | 64 +-
.../pmu-events/arch/s390/cf_zec12/extended.json | 66 +-
tools/perf/pmu-events/arch/s390/mapfile.csv | 1 +
.../pmu-events/arch/x86/alderlake/adl-metrics.json | 792 +
.../pmu-events/arch/x86/cascadelakex/cache.json | 1164 +-
.../pmu-events/arch/x86/cascadelakex/memory.json | 702 +-
.../pmu-events/arch/x86/cascadelakex/other.json | 156 +-
.../pmu-events/arch/x86/cascadelakex/pipeline.json | 14 +-
.../arch/x86/cascadelakex/uncore-memory.json | 61 +
.../arch/x86/cascadelakex/uncore-other.json | 96 +-
.../pmu-events/arch/x86/elkhartlake/other.json | 13 +-
.../pmu-events/arch/x86/elkhartlake/pipeline.json | 13 +-
tools/perf/pmu-events/arch/x86/goldmont/other.json | 31 +-
.../pmu-events/arch/x86/goldmont/pipeline.json | 31 +-
.../pmu-events/arch/x86/goldmontplus/other.json | 37 +-
.../pmu-events/arch/x86/goldmontplus/pipeline.json | 37 +-
tools/perf/pmu-events/arch/x86/icelake/cache.json | 41 +-
.../pmu-events/arch/x86/icelake/icl-metrics.json | 36 +-
tools/perf/pmu-events/arch/x86/icelake/memory.json | 10 +-
tools/perf/pmu-events/arch/x86/icelake/other.json | 38 +-
.../perf/pmu-events/arch/x86/icelake/pipeline.json | 26 +-
tools/perf/pmu-events/arch/x86/icelakex/cache.json | 31 +-
.../pmu-events/arch/x86/icelakex/icx-metrics.json | 24 +-
.../perf/pmu-events/arch/x86/icelakex/memory.json | 21 +-
tools/perf/pmu-events/arch/x86/icelakex/other.json | 70 +-
.../pmu-events/arch/x86/icelakex/pipeline.json | 14 +-
.../perf/pmu-events/arch/x86/ivytown/pipeline.json | 4 +-
.../pmu-events/arch/x86/ivytown/uncore-memory.json | 3 +-
tools/perf/pmu-events/arch/x86/mapfile.csv | 1 +
.../perf/pmu-events/arch/x86/nehalemep/other.json | 66 +-
.../pmu-events/arch/x86/nehalemep/pipeline.json | 66 +-
.../pmu-events/arch/x86/sapphirerapids/cache.json | 1083 +
.../arch/x86/sapphirerapids/floating-point.json | 218 +
.../arch/x86/sapphirerapids/frontend.json | 471 +
.../pmu-events/arch/x86/sapphirerapids/memory.json | 415 +
.../pmu-events/arch/x86/sapphirerapids/other.json | 362 +
.../arch/x86/sapphirerapids/pipeline.json | 1283 +
.../arch/x86/sapphirerapids/spr-metrics.json | 530 +
.../arch/x86/sapphirerapids/uncore-memory.json | 499 +
.../arch/x86/sapphirerapids/uncore-other.json | 5150 +
.../arch/x86/sapphirerapids/uncore-power.json | 12 +
.../arch/x86/sapphirerapids/virtual-memory.json | 225 +
tools/perf/pmu-events/arch/x86/skylake/cache.json | 174 +-
tools/perf/pmu-events/arch/x86/skylake/memory.json | 90 +-
.../perf/pmu-events/arch/x86/skylake/pipeline.json | 14 +-
tools/perf/pmu-events/arch/x86/skylakex/cache.json | 74 +-
.../perf/pmu-events/arch/x86/skylakex/memory.json | 74 +-
.../pmu-events/arch/x86/skylakex/pipeline.json | 14 +-
.../arch/x86/skylakex/uncore-memory.json | 20 +
.../pmu-events/arch/x86/skylakex/uncore-other.json | 96 +-
.../perf/pmu-events/arch/x86/tigerlake/other.json | 13 +-
.../pmu-events/arch/x86/tigerlake/pipeline.json | 13 +-
tools/perf/pmu-events/arch/x86/tremontx/other.json | 13 +-
.../pmu-events/arch/x86/tremontx/pipeline.json | 13 +-
.../arch/x86/tremontx/uncore-memory.json | 22 +
.../pmu-events/arch/x86/tremontx/uncore-other.json | 94 +
.../pmu-events/arch/x86/westmereep-dp/other.json | 66 +-
.../arch/x86/westmereep-dp/pipeline.json | 66 +-
.../pmu-events/arch/x86/westmereep-sp/cache.json | 14 +-
.../pmu-events/arch/x86/westmereep-sp/memory.json | 6 +-
.../pmu-events/arch/x86/westmereep-sp/other.json | 66 +-
.../arch/x86/westmereep-sp/pipeline.json | 66 +-
.../perf/pmu-events/arch/x86/westmereex/cache.json | 14 +-
.../pmu-events/arch/x86/westmereex/memory.json | 6 +-
.../perf/pmu-events/arch/x86/westmereex/other.json | 66 +-
.../pmu-events/arch/x86/westmereex/pipeline.json | 66 +-
tools/perf/pmu-events/jevents.c | 92 +-
tools/perf/scripts/python/arm-cs-trace-disasm.py | 272 +
tools/perf/scripts/python/intel-pt-events.py | 8 +-
tools/perf/tests/bpf.c | 10 +-
tools/perf/tests/builtin-test.c | 18 +-
tools/perf/tests/evsel-roundtrip-name.c | 2 +-
tools/perf/tests/mmap-basic.c | 18 +-
tools/perf/tests/openat-syscall-all-cpus.c | 23 +-
tools/perf/tests/openat-syscall.c | 20 +-
tools/perf/tests/parse-events.c | 492 +-
tools/perf/tests/perf-record.c | 18 +-
tools/perf/tests/pmu-events.c | 30 +-
tools/perf/tests/shell/lib/perf_csv_output_lint.py | 48 +
tools/perf/tests/shell/record.sh | 80 +
tools/perf/tests/shell/record_offcpu.sh | 60 +
tools/perf/tests/shell/stat+csv_output.sh | 147 +
tools/perf/tests/shell/stat.sh | 80 +
tools/perf/tests/shell/stat_all_pmu.sh | 10 +
tools/perf/tests/shell/test_arm_coresight.sh | 1 -
tools/perf/tests/shell/test_arm_spe_fork.sh | 92 +
tools/perf/tests/shell/test_intel_pt.sh | 71 +
tools/perf/tests/topology.c | 11 +
tools/perf/tests/vmlinux-kallsyms.c | 12 +-
tools/perf/util/Build | 1 +
tools/perf/util/auxtrace.c | 31 +-
tools/perf/util/auxtrace.h | 13 +-
tools/perf/util/bpf-event.c | 30 +-
tools/perf/util/bpf-loader.c | 27 +-
tools/perf/util/bpf_counter.c | 67 +-
tools/perf/util/bpf_counter_cgroup.c | 42 +-
tools/perf/util/bpf_off_cpu.c | 338 +
tools/perf/util/bpf_skel/off_cpu.bpf.c | 229 +
tools/perf/util/data.c | 14 +
tools/perf/util/data.h | 2 +
tools/perf/util/dso.h | 2 +
tools/perf/util/event.c | 7 +-
tools/perf/util/evlist.c | 123 +-
tools/perf/util/evlist.h | 7 +-
tools/perf/util/evsel.c | 84 +-
tools/perf/util/evsel.h | 29 +-
tools/perf/util/genelf.h | 3 +
tools/perf/util/header.c | 62 +-
tools/perf/util/header.h | 15 +
.../perf/util/intel-pt-decoder/intel-pt-decoder.c | 99 +-
.../perf/util/intel-pt-decoder/intel-pt-decoder.h | 1 +
.../util/intel-pt-decoder/intel-pt-insn-decoder.c | 1 +
.../util/intel-pt-decoder/intel-pt-insn-decoder.h | 1 +
tools/perf/util/intel-pt.c | 57 +-
tools/perf/util/libunwind/arm64.c | 2 +-
tools/perf/util/machine.c | 101 +-
tools/perf/util/machine.h | 5 +-
tools/perf/util/mem-events.c | 32 +-
tools/perf/util/mem-events.h | 1 +
tools/perf/util/metricgroup.c | 124 +-
tools/perf/util/mmap.c | 4 +-
tools/perf/util/off_cpu.h | 29 +
tools/perf/util/parse-events.c | 48 +-
tools/perf/util/parse-events.l | 2 +
tools/perf/util/path.c | 14 +-
tools/perf/util/path.h | 1 +
tools/perf/util/perf_regs.c | 2 +
tools/perf/util/python-ext-sources | 1 +
.../util/scripting-engines/trace-event-python.c | 70 +-
tools/perf/util/session.c | 33 +-
tools/perf/util/stat-display.c | 46 +-
tools/perf/util/stat-shadow.c | 29 +-
tools/perf/util/stat.c | 31 +-
tools/perf/util/stat.h | 22 +
tools/perf/util/symbol_conf.h | 3 +-
tools/perf/util/topdown.c | 17 +-
tools/perf/util/topdown.h | 3 +-
tools/perf/util/unwind-libunwind-local.c | 105 +-
tools/perf/util/util.c | 5 +
tools/power/acpi/common/cmfsize.c | 2 +-
tools/power/acpi/common/getopt.c | 2 +-
.../acpi/os_specific/service_layers/oslinuxtbl.c | 2 +-
.../acpi/os_specific/service_layers/osunixdir.c | 2 +-
.../acpi/os_specific/service_layers/osunixmap.c | 2 +-
.../acpi/os_specific/service_layers/osunixxf.c | 2 +-
tools/power/acpi/tools/acpidump/acpidump.h | 2 +-
tools/power/acpi/tools/acpidump/apdump.c | 2 +-
tools/power/acpi/tools/acpidump/apfiles.c | 2 +-
tools/power/acpi/tools/acpidump/apmain.c | 2 +-
tools/power/x86/intel-speed-select/hfi-events.c | 2 +-
tools/power/x86/intel-speed-select/isst-config.c | 6 +
tools/power/x86/turbostat/Makefile | 2 +-
tools/power/x86/turbostat/turbostat.8 | 2 +-
tools/power/x86/turbostat/turbostat.c | 594 +-
tools/testing/crypto/chacha20-s390/Makefile | 12 +
tools/testing/crypto/chacha20-s390/run-tests.sh | 34 +
tools/testing/crypto/chacha20-s390/test-cipher.c | 372 +
tools/testing/cxl/Kbuild | 3 +-
tools/testing/cxl/mock_mem.c | 10 -
tools/testing/cxl/test/mem.c | 17 -
tools/testing/cxl/test/mock.c | 29 +
tools/testing/kunit/configs/all_tests_uml.config | 37 +
tools/testing/kunit/kunit.py | 63 +-
tools/testing/kunit/kunit_config.py | 21 +-
tools/testing/kunit/kunit_json.py | 66 +-
tools/testing/kunit/kunit_kernel.py | 81 +-
tools/testing/kunit/kunit_parser.py | 154 +-
tools/testing/kunit/kunit_tool_test.py | 44 +-
tools/testing/kunit/qemu_config.py | 17 +-
tools/testing/kunit/qemu_configs/alpha.py | 2 +-
tools/testing/kunit/qemu_configs/arm.py | 2 +-
tools/testing/kunit/qemu_configs/arm64.py | 2 +-
tools/testing/kunit/qemu_configs/i386.py | 4 +-
tools/testing/kunit/qemu_configs/powerpc.py | 2 +-
tools/testing/kunit/qemu_configs/riscv.py | 7 +-
tools/testing/kunit/qemu_configs/s390.py | 4 +-
tools/testing/kunit/qemu_configs/sparc.py | 2 +-
tools/testing/kunit/qemu_configs/x86_64.py | 2 +-
tools/testing/kunit/run_checks.py | 2 +-
.../kunit/test_data/test_is_test_passed-crash.log | 70 -
.../test_is_test_passed-no_tests_no_plan.log | 2 +-
tools/testing/memblock/TODO | 3 -
tools/testing/memblock/tests/basic_api.c | 392 +-
tools/testing/nvdimm/pmem-dax.c | 4 +-
tools/testing/nvdimm/test/iomap.c | 18 +-
tools/testing/nvdimm/test/nfit.c | 3 -
tools/testing/selftests/Makefile | 3 +
tools/testing/selftests/alsa/Makefile | 3 +
tools/testing/selftests/alsa/mixer-test.c | 41 +-
tools/testing/selftests/arm64/Makefile | 11 +-
tools/testing/selftests/arm64/abi/.gitignore | 1 +
tools/testing/selftests/arm64/abi/Makefile | 9 +-
.../testing/selftests/arm64/abi/syscall-abi-asm.S | 79 +-
tools/testing/selftests/arm64/abi/syscall-abi.c | 204 +-
tools/testing/selftests/arm64/abi/syscall-abi.h | 15 +
tools/testing/selftests/arm64/abi/tpidr2.c | 298 +
tools/testing/selftests/arm64/bti/Makefile | 6 +-
tools/testing/selftests/arm64/fp/.gitignore | 5 +
tools/testing/selftests/arm64/fp/Makefile | 46 +-
tools/testing/selftests/arm64/fp/rdvl-sme.c | 14 +
tools/testing/selftests/arm64/fp/rdvl.S | 10 +
tools/testing/selftests/arm64/fp/rdvl.h | 1 +
tools/testing/selftests/arm64/fp/sme-inst.h | 51 +
tools/testing/selftests/arm64/fp/ssve-stress | 59 +
tools/testing/selftests/arm64/fp/sve-ptrace.c | 175 +-
tools/testing/selftests/arm64/fp/sve-test.S | 20 +
tools/testing/selftests/arm64/fp/vec-syscfg.c | 10 +
tools/testing/selftests/arm64/fp/vlset.c | 10 +-
tools/testing/selftests/arm64/fp/za-fork-asm.S | 61 +
tools/testing/selftests/arm64/fp/za-fork.c | 156 +
tools/testing/selftests/arm64/fp/za-ptrace.c | 356 +
tools/testing/selftests/arm64/fp/za-stress | 59 +
tools/testing/selftests/arm64/fp/za-test.S | 388 +
tools/testing/selftests/arm64/mte/.gitignore | 1 +
.../selftests/arm64/mte/check_child_memory.c | 8 +-
tools/testing/selftests/arm64/mte/check_prctl.c | 119 +
.../selftests/arm64/mte/check_tags_inclusion.c | 54 +-
.../testing/selftests/arm64/mte/mte_common_util.c | 42 +-
.../testing/selftests/arm64/mte/mte_common_util.h | 15 +-
tools/testing/selftests/arm64/signal/.gitignore | 3 +
.../testing/selftests/arm64/signal/test_signals.h | 4 +
.../selftests/arm64/signal/test_signals_utils.c | 6 +
.../testcases/fake_sigreturn_sme_change_vl.c | 92 +
.../testcases/fake_sigreturn_sve_change_vl.c | 2 +
.../arm64/signal/testcases/sme_trap_no_sm.c | 38 +
.../signal/testcases/sme_trap_non_streaming.c | 45 +
.../selftests/arm64/signal/testcases/sme_trap_za.c | 36 +
.../selftests/arm64/signal/testcases/sme_vl.c | 68 +
.../selftests/arm64/signal/testcases/ssve_regs.c | 135 +
.../selftests/arm64/signal/testcases/testcases.c | 36 +
.../selftests/arm64/signal/testcases/testcases.h | 3 +-
.../selftests/arm64/signal/testcases/za_regs.c | 128 +
tools/testing/selftests/bpf/Makefile | 39 +-
tools/testing/selftests/bpf/bench.c | 1 -
tools/testing/selftests/bpf/bpf_rlimit.h | 28 -
tools/testing/selftests/bpf/bpf_tcp_helpers.h | 13 +
tools/testing/selftests/bpf/config | 4 +
tools/testing/selftests/bpf/flow_dissector_load.c | 6 +-
tools/testing/selftests/bpf/get_cgroup_id_user.c | 4 +-
.../selftests/bpf/map_tests/map_in_map_batch_ops.c | 252 +
tools/testing/selftests/bpf/network_helpers.c | 40 +-
tools/testing/selftests/bpf/network_helpers.h | 2 +
.../testing/selftests/bpf/prog_tests/arg_parsing.c | 107 +
.../selftests/bpf/prog_tests/attach_probe.c | 95 +-
.../testing/selftests/bpf/prog_tests/bpf_cookie.c | 89 +
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 265 +-
.../selftests/bpf/prog_tests/bpf_mod_race.c | 4 +-
.../testing/selftests/bpf/prog_tests/bpf_tcp_ca.c | 6 +-
tools/testing/selftests/bpf/prog_tests/btf.c | 100 +-
.../selftests/bpf/prog_tests/core_autosize.c | 2 +-
.../testing/selftests/bpf/prog_tests/core_reloc.c | 13 +-
.../testing/selftests/bpf/prog_tests/core_retro.c | 17 +-
tools/testing/selftests/bpf/prog_tests/dynptr.c | 137 +
.../selftests/bpf/prog_tests/fexit_bpf2bpf.c | 14 +
.../selftests/bpf/prog_tests/fexit_stress.c | 4 +-
tools/testing/selftests/bpf/prog_tests/for_each.c | 42 +-
.../selftests/bpf/prog_tests/helper_restricted.c | 10 +-
.../selftests/bpf/prog_tests/kprobe_multi_test.c | 159 +-
tools/testing/selftests/bpf/prog_tests/ksyms_btf.c | 17 +-
.../selftests/bpf/prog_tests/linked_funcs.c | 6 +
tools/testing/selftests/bpf/prog_tests/log_fixup.c | 149 +
.../selftests/bpf/prog_tests/lookup_and_delete.c | 15 +-
tools/testing/selftests/bpf/prog_tests/map_kptr.c | 148 +
.../bpf/prog_tests/map_lookup_percpu_elem.c | 58 +
tools/testing/selftests/bpf/prog_tests/mptcp.c | 174 +
tools/testing/selftests/bpf/prog_tests/netcnt.c | 2 +-
.../bpf/prog_tests/prog_tests_framework.c | 56 +
.../selftests/bpf/prog_tests/reference_tracking.c | 23 +-
.../selftests/bpf/prog_tests/ringbuf_multi.c | 12 -
.../selftests/bpf/prog_tests/skb_load_bytes.c | 45 +
tools/testing/selftests/bpf/prog_tests/snprintf.c | 4 +-
.../selftests/bpf/prog_tests/stacktrace_build_id.c | 8 +-
.../bpf/prog_tests/stacktrace_build_id_nmi.c | 11 +-
.../testing/selftests/bpf/prog_tests/tc_redirect.c | 1 -
.../selftests/bpf/prog_tests/test_global_funcs.c | 1 +
.../selftests/bpf/prog_tests/test_strncmp.c | 25 +-
.../testing/selftests/bpf/prog_tests/test_tunnel.c | 423 +
tools/testing/selftests/bpf/prog_tests/timer_mim.c | 2 +-
.../selftests/bpf/prog_tests/trampoline_count.c | 134 +-
.../selftests/bpf/prog_tests/unpriv_bpf_disabled.c | 312 +
.../selftests/bpf/prog_tests/uprobe_autoattach.c | 50 +
tools/testing/selftests/bpf/prog_tests/usdt.c | 419 +
tools/testing/selftests/bpf/progs/bpf_iter.h | 7 +
.../selftests/bpf/progs/bpf_iter_bpf_link.c | 21 +
.../bpf/progs/btf__core_reloc_size___diff_offs.c | 3 +
.../bpf/progs/btf_dump_test_case_syntax.c | 2 +-
.../testing/selftests/bpf/progs/core_reloc_types.h | 18 +
tools/testing/selftests/bpf/progs/dynptr_fail.c | 588 +
tools/testing/selftests/bpf/progs/dynptr_success.c | 164 +
tools/testing/selftests/bpf/progs/exhandler_kern.c | 13 +-
.../bpf/progs/for_each_map_elem_write_key.c | 27 +
.../selftests/bpf/progs/freplace_global_func.c | 18 +
tools/testing/selftests/bpf/progs/kprobe_multi.c | 14 +
.../selftests/bpf/progs/kprobe_multi_empty.c | 12 +
tools/testing/selftests/bpf/progs/linked_funcs1.c | 15 +-
tools/testing/selftests/bpf/progs/linked_funcs2.c | 15 +-
tools/testing/selftests/bpf/progs/loop5.c | 1 -
tools/testing/selftests/bpf/progs/map_kptr.c | 292 +
tools/testing/selftests/bpf/progs/map_kptr_fail.c | 418 +
tools/testing/selftests/bpf/progs/mptcp_sock.c | 88 +
.../selftests/bpf/progs/perf_event_stackmap.c | 4 +-
tools/testing/selftests/bpf/progs/profiler.inc.h | 5 +-
tools/testing/selftests/bpf/progs/profiler1.c | 1 -
tools/testing/selftests/bpf/progs/pyperf.h | 6 +-
tools/testing/selftests/bpf/progs/pyperf600.c | 11 +-
tools/testing/selftests/bpf/progs/skb_load_bytes.c | 19 +
tools/testing/selftests/bpf/progs/strncmp_test.c | 8 +-
.../selftests/bpf/progs/test_attach_probe.c | 64 +-
.../testing/selftests/bpf/progs/test_bpf_cookie.c | 56 +-
.../bpf/progs/test_core_reloc_existence.c | 11 +-
.../selftests/bpf/progs/test_core_reloc_size.c | 31 +-
.../selftests/bpf/progs/test_global_func17.c | 16 +
.../selftests/bpf/progs/test_helper_restricted.c | 16 +-
.../bpf/progs/test_ksyms_btf_write_check.c | 18 +-
.../selftests/bpf/progs/test_l4lb_noinline.c | 2 +-
tools/testing/selftests/bpf/progs/test_log_fixup.c | 64 +
.../bpf/progs/test_map_lookup_percpu_elem.c | 76 +
.../selftests/bpf/progs/test_module_attach.c | 2 +-
.../testing/selftests/bpf/progs/test_pkt_access.c | 2 -
.../selftests/bpf/progs/test_ringbuf_multi.c | 2 +
tools/testing/selftests/bpf/progs/test_sk_assign.c | 4 +-
.../selftests/bpf/progs/test_sk_lookup_kern.c | 18 +-
.../selftests/bpf/progs/test_stacktrace_build_id.c | 2 +-
tools/testing/selftests/bpf/progs/test_subprogs.c | 8 +
.../selftests/bpf/progs/test_task_pt_regs.c | 2 +-
.../selftests/bpf/progs/test_trampoline_count.c | 16 +-
.../testing/selftests/bpf/progs/test_tunnel_kern.c | 371 +-
.../selftests/bpf/progs/test_unpriv_bpf_disabled.c | 83 +
.../selftests/bpf/progs/test_uprobe_autoattach.c | 73 +
.../selftests/bpf/progs/test_urandom_usdt.c | 70 +
tools/testing/selftests/bpf/progs/test_usdt.c | 96 +
.../selftests/bpf/progs/test_usdt_multispec.c | 32 +
.../selftests/bpf/progs/test_xdp_noinline.c | 12 +-
tools/testing/selftests/bpf/progs/trigger_bench.c | 2 +-
tools/testing/selftests/bpf/sdt-config.h | 6 +
tools/testing/selftests/bpf/sdt.h | 513 +
.../selftests/bpf/test_bpftool_synctypes.py | 2 +-
tools/testing/selftests/bpf/test_cgroup_storage.c | 7 +-
tools/testing/selftests/bpf/test_dev_cgroup.c | 4 +-
tools/testing/selftests/bpf/test_lpm_map.c | 43 +-
tools/testing/selftests/bpf/test_lru_map.c | 70 +-
tools/testing/selftests/bpf/test_offload.py | 2 +-
tools/testing/selftests/bpf/test_progs.c | 1006 +-
tools/testing/selftests/bpf/test_progs.h | 89 +-
.../selftests/bpf/test_skb_cgroup_id_user.c | 4 +-
tools/testing/selftests/bpf/test_sock.c | 6 +-
tools/testing/selftests/bpf/test_sock_addr.c | 4 +-
tools/testing/selftests/bpf/test_sockmap.c | 5 +-
tools/testing/selftests/bpf/test_sysctl.c | 6 +-
tools/testing/selftests/bpf/test_tag.c | 4 +-
.../selftests/bpf/test_tcp_check_syncookie_user.c | 4 +-
tools/testing/selftests/bpf/test_tcpnotify_user.c | 1 -
tools/testing/selftests/bpf/test_tunnel.sh | 124 +-
tools/testing/selftests/bpf/test_verifier.c | 55 +-
tools/testing/selftests/bpf/test_verifier_log.c | 5 +-
tools/testing/selftests/bpf/test_xsk.sh | 53 +-
tools/testing/selftests/bpf/testing_helpers.c | 91 +-
tools/testing/selftests/bpf/testing_helpers.h | 8 +
tools/testing/selftests/bpf/trace_helpers.c | 9 +-
tools/testing/selftests/bpf/urandom_read.c | 63 +-
tools/testing/selftests/bpf/urandom_read_aux.c | 9 +
tools/testing/selftests/bpf/urandom_read_lib1.c | 13 +
tools/testing/selftests/bpf/urandom_read_lib2.c | 8 +
tools/testing/selftests/bpf/verifier/calls.c | 20 +
tools/testing/selftests/bpf/verifier/map_kptr.c | 469 +
.../testing/selftests/bpf/verifier/ref_tracking.c | 2 +-
tools/testing/selftests/bpf/verifier/sock.c | 6 +-
tools/testing/selftests/bpf/xdp_redirect_multi.c | 1 -
tools/testing/selftests/bpf/xdping.c | 8 +-
tools/testing/selftests/bpf/xdpxceiver.c | 553 +-
tools/testing/selftests/bpf/xdpxceiver.h | 42 +-
tools/testing/selftests/bpf/xsk_prereqs.sh | 47 +-
tools/testing/selftests/cgroup/.gitignore | 1 +
tools/testing/selftests/cgroup/Makefile | 2 +
tools/testing/selftests/cgroup/cgroup_util.c | 64 +-
tools/testing/selftests/cgroup/cgroup_util.h | 5 +
tools/testing/selftests/cgroup/config | 8 +
tools/testing/selftests/cgroup/memcg_protection.m | 89 +
tools/testing/selftests/cgroup/test_cpu.c | 726 +
tools/testing/selftests/cgroup/test_memcontrol.c | 392 +-
tools/testing/selftests/cgroup/test_stress.sh | 2 +-
tools/testing/selftests/damon/sysfs.sh | 1 +
tools/testing/selftests/drivers/.gitignore | 1 +
.../drivers/net/dsa/bridge_locked_port.sh | 1 +
.../selftests/drivers/net/dsa/bridge_mdb.sh | 1 +
.../selftests/drivers/net/dsa/bridge_mld.sh | 1 +
.../selftests/drivers/net/dsa/bridge_vlan_aware.sh | 1 +
.../selftests/drivers/net/dsa/bridge_vlan_mcast.sh | 1 +
.../drivers/net/dsa/bridge_vlan_unaware.sh | 1 +
.../selftests/drivers/net/dsa/forwarding.config | 2 +
tools/testing/selftests/drivers/net/dsa/lib.sh | 1 +
.../selftests/drivers/net/dsa/local_termination.sh | 1 +
.../selftests/drivers/net/dsa/no_forwarding.sh | 1 +
.../drivers/net/mlxsw/devlink_linecard.sh | 280 +
.../selftests/drivers/net/mlxsw/qos_burst.sh | 480 +
.../selftests/drivers/net/mlxsw/qos_headroom.sh | 4 +-
.../testing/selftests/drivers/net/mlxsw/qos_pfc.sh | 4 +-
.../selftests/drivers/net/mlxsw/sch_red_ets.sh | 5 +-
.../selftests/drivers/net/mlxsw/sch_red_root.sh | 5 +-
.../selftests/drivers/net/netdevsim/hw_stats_l3.sh | 4 +-
.../selftests/drivers/net/ocelot/basic_qos.sh | 253 +
tools/testing/selftests/drivers/net/ocelot/psfp.sh | 327 +
.../drivers/net/ocelot/tc_flower_chains.sh | 204 +-
.../selftests/drivers/s390x/uvdevice/Makefile | 22 +
.../selftests/drivers/s390x/uvdevice/config | 1 +
.../drivers/s390x/uvdevice/test_uvdevice.c | 276 +
.../selftests/filesystems/binderfs/binderfs_test.c | 4 +-
tools/testing/selftests/firmware/Makefile | 2 +-
tools/testing/selftests/firmware/config | 1 +
tools/testing/selftests/firmware/fw_filesystem.sh | 170 +-
tools/testing/selftests/firmware/fw_lib.sh | 19 +-
tools/testing/selftests/firmware/fw_run_tests.sh | 4 +
tools/testing/selftests/firmware/fw_upload.sh | 214 +
.../ftrace/test.d/kprobe/kprobe_args_string.tc | 3 +
.../ftrace/test.d/kprobe/kprobe_args_syntax.tc | 4 +
.../ftrace/test.d/kprobe/multiple_kprobes.tc | 2 +
tools/testing/selftests/ir/ir_loopback.sh | 2 +-
tools/testing/selftests/kselftest.h | 15 +
tools/testing/selftests/kvm/.gitignore | 6 +-
tools/testing/selftests/kvm/Makefile | 7 +-
tools/testing/selftests/kvm/aarch64/get-reg-list.c | 8 +
tools/testing/selftests/kvm/aarch64/hypercalls.c | 336 +
.../selftests/kvm/aarch64/psci_cpu_on_test.c | 121 -
tools/testing/selftests/kvm/aarch64/psci_test.c | 213 +
.../selftests/kvm/include/aarch64/processor.h | 22 +
.../selftests/kvm/include/riscv/processor.h | 8 +-
.../testing/selftests/kvm/lib/aarch64/processor.c | 25 +
tools/testing/selftests/kvm/lib/riscv/processor.c | 11 +-
tools/testing/selftests/kvm/lib/riscv/ucall.c | 31 +-
tools/testing/selftests/kvm/s390x/memop.c | 46 +-
tools/testing/selftests/kvm/steal_time.c | 13 +-
.../selftests/kvm/x86_64/fix_hypercall_test.c | 170 +
tools/testing/selftests/kvm/x86_64/hyperv_clock.c | 10 +-
.../selftests/kvm/x86_64/pmu_event_filter_test.c | 37 +-
.../selftests/kvm/x86_64/tsc_scaling_sync.c | 119 +
.../{vmx_pmu_msrs_test.c => vmx_pmu_caps_test.c} | 18 +-
.../testing/selftests/kvm/x86_64/xen_shinfo_test.c | 366 +-
tools/testing/selftests/landlock/base_test.c | 179 +-
tools/testing/selftests/landlock/common.h | 66 +-
tools/testing/selftests/landlock/fs_test.c | 1619 +-
tools/testing/selftests/landlock/ptrace_test.c | 40 +-
tools/testing/selftests/lkdtm/config | 4 +
tools/testing/selftests/lkdtm/tests.txt | 9 +-
tools/testing/selftests/mqueue/mq_perf_tests.c | 4 +-
tools/testing/selftests/net/.gitignore | 2 +
tools/testing/selftests/net/Makefile | 11 +-
tools/testing/selftests/net/bind_bhash_test.c | 119 +
tools/testing/selftests/net/bpf/Makefile | 14 +
tools/testing/selftests/net/bpf/nat6to4.c | 285 +
tools/testing/selftests/net/fcnal-test.sh | 12 +
tools/testing/selftests/net/fib_nexthops.sh | 53 +-
tools/testing/selftests/net/fib_rule_tests.sh | 12 +-
tools/testing/selftests/net/forwarding/Makefile | 35 +
.../testing/selftests/net/forwarding/bridge_mdb.sh | 103 +
.../selftests/net/forwarding/hw_stats_l3.sh | 16 +-
.../selftests/net/forwarding/hw_stats_l3_gre.sh | 109 +
tools/testing/selftests/net/forwarding/lib.sh | 144 +-
.../selftests/net/forwarding/local_termination.sh | 299 +
.../net/forwarding/mirror_gre_bridge_1q.sh | 3 +
.../selftests/net/forwarding/no_forwarding.sh | 261 +
tools/testing/selftests/net/forwarding/router.sh | 18 +
.../selftests/net/forwarding/router_vid_1.sh | 27 +-
.../testing/selftests/net/forwarding/tc_actions.sh | 2 +-
tools/testing/selftests/net/forwarding/tsn_lib.sh | 235 +
tools/testing/selftests/net/mptcp/config | 8 +
tools/testing/selftests/net/mptcp/diag.sh | 38 +
tools/testing/selftests/net/mptcp/mptcp_join.sh | 291 +-
tools/testing/selftests/net/mptcp/pm_nl_ctl.c | 645 +-
tools/testing/selftests/net/mptcp/userspace_pm.sh | 779 +
.../selftests/net/ndisc_unsolicited_na_test.sh | 254 +
tools/testing/selftests/net/psock_snd.c | 2 +
tools/testing/selftests/net/so_txtime.c | 4 +-
.../selftests/net/stress_reuseport_listen.c | 105 +
.../selftests/net/stress_reuseport_listen.sh | 25 +
tools/testing/selftests/net/udpgro_frglist.sh | 101 +
.../testing/selftests/net/vrf_strict_mode_test.sh | 48 +-
tools/testing/selftests/netfilter/nft_fib.sh | 50 +
tools/testing/selftests/netfilter/nft_nat.sh | 43 +
tools/testing/selftests/powerpc/include/utils.h | 5 +
tools/testing/selftests/powerpc/math/Makefile | 4 +-
tools/testing/selftests/powerpc/math/mma.S | 33 +
tools/testing/selftests/powerpc/math/mma.c | 48 +
tools/testing/selftests/powerpc/mm/.gitignore | 1 +
tools/testing/selftests/powerpc/mm/Makefile | 4 +-
.../selftests/powerpc/mm/large_vm_gpr_corruption.c | 156 +
.../powerpc/pmu/ebb/fixed_instruction_loop.S | 43 -
.../selftests/powerpc/pmu/sampling_tests/misc.c | 2 +-
.../selftests/powerpc/security/spectre_v2.c | 32 +-
.../testing/selftests/rcutorture/bin/functions.sh | 2 +-
.../selftests/rcutorture/bin/kvm-find-errors.sh | 2 +-
.../selftests/rcutorture/bin/kvm-recheck.sh | 7 +-
.../testing/selftests/rcutorture/bin/kvm-remote.sh | 14 +-
tools/testing/selftests/rcutorture/bin/kvm.sh | 10 +-
tools/testing/selftests/rcutorture/bin/torture.sh | 29 +-
.../selftests/rcutorture/configs/rcu/RUDE01 | 2 +
.../selftests/rcutorture/configs/rcu/SRCU-N | 2 +
.../selftests/rcutorture/configs/rcu/TASKS01 | 1 +
.../selftests/rcutorture/configs/rcu/TASKS02 | 4 +
.../selftests/rcutorture/configs/rcu/TASKS02.boot | 1 +
.../selftests/rcutorture/configs/rcu/TASKS03 | 2 +
.../selftests/rcutorture/configs/rcu/TRACE01 | 3 +
.../selftests/rcutorture/configs/rcu/TRACE02 | 2 +
.../selftests/rcutorture/configs/rcu/TREE04 | 5 +-
.../selftests/rcutorture/configs/rcu/TREE07 | 1 +
.../selftests/rcutorture/configs/rcu/TREE09 | 2 +
.../selftests/rcutorture/configs/rcu/TREE10 | 1 +
.../rcutorture/configs/rcu/ver_functions.sh | 16 +-
.../selftests/rcutorture/configs/rcuscale/CFcommon | 7 +-
.../selftests/rcutorture/configs/rcuscale/TREE | 2 +
.../selftests/rcutorture/configs/refscale/CFcommon | 4 +
.../rcutorture/configs/refscale/NOPREEMPT | 2 +
.../selftests/rcutorture/configs/scf/NOPREEMPT | 2 +
.../selftests/rcutorture/configs/scf/PREEMPT | 1 +
.../rcutorture/configs/scf/ver_functions.sh | 3 +-
tools/testing/selftests/resctrl/Makefile | 19 +-
tools/testing/selftests/resctrl/README | 39 +-
tools/testing/selftests/resctrl/cat_test.c | 2 +-
tools/testing/selftests/resctrl/fill_buf.c | 4 +-
tools/testing/selftests/resctrl/resctrl.h | 5 +-
tools/testing/selftests/resctrl/resctrl_tests.c | 49 +-
tools/testing/selftests/resctrl/resctrl_val.c | 1 +
tools/testing/selftests/resctrl/resctrlfs.c | 2 +-
tools/testing/selftests/resctrl/settings | 3 +
tools/testing/selftests/seccomp/Makefile | 1 +
tools/testing/selftests/seccomp/seccomp_bpf.c | 437 +-
tools/testing/selftests/sysctl/sysctl.sh | 23 +
tools/testing/selftests/vm/.gitignore | 3 +
tools/testing/selftests/vm/Makefile | 24 +-
tools/testing/selftests/vm/config | 2 +
tools/testing/selftests/vm/gup_test.c | 24 +-
tools/testing/selftests/vm/hugepage-mremap.c | 6 +
tools/testing/selftests/vm/ksm_tests.c | 9 +-
tools/testing/selftests/vm/madv_populate.c | 34 +-
tools/testing/selftests/vm/migration.c | 193 +
tools/testing/selftests/vm/mrelease_test.c | 200 +
tools/testing/selftests/vm/pkey-x86.h | 21 +-
tools/testing/selftests/vm/protection_keys.c | 2 +-
tools/testing/selftests/vm/run_vmtests.sh | 525 +-
tools/testing/selftests/vm/settings | 1 +
tools/testing/selftests/vm/soft-dirty.c | 145 +
tools/testing/selftests/vm/split_huge_page_test.c | 79 +-
tools/testing/selftests/vm/userfaultfd.c | 13 +-
tools/testing/selftests/vm/vm_util.c | 108 +
tools/testing/selftests/vm/vm_util.h | 9 +
tools/testing/selftests/wireguard/netns.sh | 34 +-
tools/testing/selftests/wireguard/qemu/.gitignore | 1 +
tools/testing/selftests/wireguard/qemu/Makefile | 229 +-
.../selftests/wireguard/qemu/arch/aarch64.config | 5 +-
.../wireguard/qemu/arch/aarch64_be.config | 5 +-
.../selftests/wireguard/qemu/arch/arm.config | 5 +-
.../selftests/wireguard/qemu/arch/armeb.config | 5 +-
.../selftests/wireguard/qemu/arch/i686.config | 2 +-
.../selftests/wireguard/qemu/arch/m68k.config | 2 +-
.../selftests/wireguard/qemu/arch/mips.config | 2 +-
.../selftests/wireguard/qemu/arch/mips64.config | 2 +-
.../selftests/wireguard/qemu/arch/mips64el.config | 2 +-
.../selftests/wireguard/qemu/arch/mipsel.config | 2 +-
.../selftests/wireguard/qemu/arch/powerpc.config | 2 +-
.../selftests/wireguard/qemu/arch/powerpc64.config | 13 +
.../wireguard/qemu/arch/powerpc64le.config | 2 +-
.../selftests/wireguard/qemu/arch/riscv32.config | 12 +
.../selftests/wireguard/qemu/arch/riscv64.config | 12 +
.../selftests/wireguard/qemu/arch/s390x.config | 6 +
.../selftests/wireguard/qemu/arch/x86_64.config | 2 +-
tools/testing/selftests/wireguard/qemu/init.c | 9 +-
.../testing/selftests/wireguard/qemu/kernel.config | 3 +
tools/testing/selftests/x86/amx.c | 24 +-
.../testing/selftests/x86/corrupt_xstate_header.c | 16 +-
tools/thermal/lib/Build | 3 +
tools/thermal/lib/Makefile | 158 +
tools/thermal/lib/libthermal_tools.pc.template | 12 +
tools/thermal/lib/log.c | 77 +
tools/thermal/lib/log.h | 31 +
tools/thermal/lib/mainloop.c | 120 +
tools/thermal/lib/mainloop.h | 15 +
tools/thermal/lib/thermal-tools.h | 10 +
tools/thermal/lib/uptimeofday.c | 40 +
tools/thermal/lib/uptimeofday.h | 12 +
tools/thermal/thermal-engine/Build | 1 +
tools/thermal/thermal-engine/Makefile | 28 +
tools/thermal/thermal-engine/thermal-engine.c | 341 +
tools/thermal/thermometer/Build | 1 +
tools/thermal/thermometer/Makefile | 26 +
tools/thermal/thermometer/thermometer.8 | 92 +
tools/thermal/thermometer/thermometer.c | 572 +
tools/thermal/thermometer/thermometer.conf | 5 +
tools/tracing/rtla/Makefile | 40 +-
tools/tracing/rtla/README.txt | 13 +-
tools/tracing/rtla/src/osnoise_hist.c | 5 +-
tools/tracing/rtla/src/osnoise_top.c | 9 +-
tools/tracing/rtla/src/timerlat_hist.c | 11 +-
tools/tracing/rtla/src/timerlat_top.c | 11 +-
tools/tracing/rtla/src/utils.c | 108 +-
tools/tracing/rtla/src/utils.h | 3 +-
tools/usb/testusb.c | 2 +-
tools/vm/page-types.c | 8 +-
tools/vm/page_owner_sort.c | 386 +-
usr/dummy-include/stdbool.h | 7 +
usr/dummy-include/stdlib.h | 7 +
usr/gen_init_cpio.c | 92 +-
usr/include/Makefile | 14 +-
virt/kvm/eventfd.c | 3 +-
virt/kvm/kvm_main.c | 10 +-
virt/kvm/vfio.c | 329 +-
12668 files changed, 1024288 insertions(+), 243821 deletions(-)
create mode 100644 Documentation/ABI/testing/securityfs-secrets-coco
create mode 100644 Documentation/ABI/testing/sysfs-class-firmware
create mode 100644 Documentation/ABI/testing/sysfs-devices-physical_location
create mode 100644 Documentation/ABI/testing/sysfs-driver-ccp
create mode 100644 Documentation/ABI/testing/sysfs-driver-chromeos-acpi
create mode 100644 Documentation/ABI/testing/sysfs-platform-intel-ifs
create mode 100644 Documentation/arm64/sme.rst
delete mode 100644 Documentation/cdrom/ide-cd.rst
create mode 100644 Documentation/core-api/printk-index.rst
rename Documentation/{ => core-api}/watch_queue.rst (100%)
create mode 100644 Documentation/dev-tools/kunit/api/resource.rst
create mode 100644 Documentation/devicetree/bindings/arm/arm,corstone1000.yaml
create mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-dcfg.txt
delete mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-scfg.txt
create mode 100644 Documentation/devicetree/bindings/arm/hpe,gxp.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
delete mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.yaml
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-pcie-mirror.yaml
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt8186-clock.yaml
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt8186-sys-clock.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
delete mode 100644 Documentation/devicetree/bindings/arm/sp810.txt
create mode 100644 Documentation/devicetree/bindings/arm/sp810.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/spe-pmu.txt
create mode 100644 Documentation/devicetree/bindings/arm/tegra/nvidia,tegra-ccplex-cluster.yaml
create mode 100644 Documentation/devicetree/bindings/arm/vexpress-config.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/vexpress-sysreg.txt
create mode 100644 Documentation/devicetree/bindings/arm/vexpress-sysreg.yaml
create mode 100644 Documentation/devicetree/bindings/bus/qcom,ssc-block-bus.yaml
create mode 100644 Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml
create mode 100644 Documentation/devicetree/bindings/clock/mediatek,apmixedsys.yaml
create mode 100644 Documentation/devicetree/bindings/clock/mediatek,topckgen.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-apq8084.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-sc8280xp.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/qcom,rpmcc.txt
create mode 100644 Documentation/devicetree/bindings/clock/qcom,rpmcc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscorecc.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/renesas,h8300-div-clock.txt
delete mode 100644 Documentation/devicetree/bindings/clock/renesas,h8s2678-pll-clock.txt
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,px30-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,px30-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3036-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3036-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3188-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3188-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3228-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3228-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3288-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3288-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3308-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3308-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3368-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rk3368-cru.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/rockchip,rv1108-cru.txt
create mode 100644 Documentation/devicetree/bindings/clock/rockchip,rv1108-cru.yaml
create mode 100644 Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml
delete mode 100644 Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt
delete mode 100644 Documentation/devicetree/bindings/display/arm,hdlcd.txt
create mode 100644 Documentation/devicetree/bindings/display/arm,hdlcd.yaml
delete mode 100644 Documentation/devicetree/bindings/display/arm,komeda.txt
create mode 100644 Documentation/devicetree/bindings/display/arm,komeda.yaml
delete mode 100644 Documentation/devicetree/bindings/display/arm,malidp.txt
create mode 100644 Documentation/devicetree/bindings/display/arm,malidp.yaml
delete mode 100644 Documentation/devicetree/bindings/display/arm,pl11x.txt
create mode 100644 Documentation/devicetree/bindings/display/arm,pl11x.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-ldb.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pixel-combiner.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pixel-link.yaml
create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pxl2dpi.yaml
create mode 100644 Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml
create mode 100644 Documentation/devicetree/bindings/dma/renesas,rzn1-dmamux.yaml
create mode 100644 Documentation/devicetree/bindings/dsp/mediatek,mt8195-dsp.yaml
delete mode 100644 Documentation/devicetree/bindings/eeprom/at24.txt
create mode 100644 Documentation/devicetree/bindings/gnss/brcm,bcm4751.yaml
delete mode 100644 Documentation/devicetree/bindings/gnss/mediatek.txt
create mode 100644 Documentation/devicetree/bindings/gnss/mediatek.yaml
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-consumer-common.yaml
delete mode 100644 Documentation/devicetree/bindings/h8300/cpu.txt
create mode 100644 Documentation/devicetree/bindings/hwmon/microchip,lan966x.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/nuvoton,nct6775.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/ti,tmp401.yaml
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-mt65xx.txt
create mode 100644 Documentation/devicetree/bindings/i2c/i2c-mt65xx.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml
delete mode 100644 Documentation/devicetree/bindings/i2c/qcom,i2c-qup.txt
create mode 100644 Documentation/devicetree/bindings/i2c/qcom,i2c-qup.yaml
delete mode 100644 Documentation/devicetree/bindings/i3c/cdns,i3c-master.txt
create mode 100644 Documentation/devicetree/bindings/i3c/cdns,i3c-master.yaml
delete mode 100644 Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.txt
create mode 100644 Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml
create mode 100644 Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml
delete mode 100644 Documentation/devicetree/bindings/input/ilitek,ili2xxx.txt
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,h8300h-intc.txt
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,h8s-intc.txt
create mode 100644 Documentation/devicetree/bindings/iommu/apple,sart.yaml
create mode 100644 Documentation/devicetree/bindings/iommu/xen,grant-dma.yaml
create mode 100644 Documentation/devicetree/bindings/leds/kinetic,ktd2692.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/leds-ktd2692.txt
create mode 100644 Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml
create mode 100644 Documentation/devicetree/bindings/leds/leds-qcom-lpg.yaml
create mode 100644 Documentation/devicetree/bindings/leds/regulator-led.yaml
delete mode 100644 Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt
create mode 100644 Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.yaml
delete mode 100644 Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.txt
create mode 100644 Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-peripherals.yaml
delete mode 100644 Documentation/devicetree/bindings/memory-controllers/renesas,h8300-bsc.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/rockchip,rk3399-dmc.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/fsl,imx8qxp-csr.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/mediatek,mt6360.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/rk808.txt
create mode 100644 Documentation/devicetree/bindings/mfd/rockchip,rk805.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/rockchip,rk809.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/rockchip,rk817.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/rockchip,rk818.yaml
create mode 100644 Documentation/devicetree/bindings/mmc/marvell,dove-sdhci.yaml
create mode 100644 Documentation/devicetree/bindings/mmc/marvell,orion-sdio.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.txt
create mode 100644 Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/orion-sdio.txt
delete mode 100644 Documentation/devicetree/bindings/mmc/sdhci-dove.txt
delete mode 100644 Documentation/devicetree/bindings/mmc/sdhci-msm.txt
create mode 100644 Documentation/devicetree/bindings/mmc/sdhci-msm.yaml
delete mode 100644 Documentation/devicetree/bindings/mtd/aspeed-smc.txt
delete mode 100644 Documentation/devicetree/bindings/mtd/common.txt
delete mode 100644 Documentation/devicetree/bindings/mtd/elm.txt
create mode 100644 Documentation/devicetree/bindings/mtd/ti,elm.yaml
create mode 100644 Documentation/devicetree/bindings/net/asix,ax88178.yaml
create mode 100644 Documentation/devicetree/bindings/net/can/ctu,ctucanfd.yaml
create mode 100644 Documentation/devicetree/bindings/net/marvell,orion-mdio.yaml
delete mode 100644 Documentation/devicetree/bindings/net/marvell-orion-mdio.txt
create mode 100644 Documentation/devicetree/bindings/net/mediatek,net.yaml
delete mode 100644 Documentation/devicetree/bindings/net/mediatek-net.txt
create mode 100644 Documentation/devicetree/bindings/net/microchip,lan95xx.yaml
create mode 100644 Documentation/devicetree/bindings/net/mscc,miim.yaml
delete mode 100644 Documentation/devicetree/bindings/net/mscc-miim.txt
create mode 100644 Documentation/devicetree/bindings/net/smsc,lan91c111.yaml
delete mode 100644 Documentation/devicetree/bindings/net/smsc-lan91c111.txt
create mode 100644 Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml
rename Documentation/devicetree/bindings/{staging => }/net/wireless/silabs,wfx.yaml (97%)
create mode 100644 Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml
create mode 100644 Documentation/devicetree/bindings/nvmem/apple,efuses.yaml
delete mode 100644 Documentation/devicetree/bindings/pci/qcom,pcie.txt
create mode 100644 Documentation/devicetree/bindings/pci/qcom,pcie.yaml
create mode 100644 Documentation/devicetree/bindings/pci/socionext,uniphier-pcie.yaml
delete mode 100644 Documentation/devicetree/bindings/pci/uniphier-pcie.txt
create mode 100644 Documentation/devicetree/bindings/perf/spe-pmu.yaml
delete mode 100644 Documentation/devicetree/bindings/phy/mixel,mipi-dsi-phy.txt
create mode 100644 Documentation/devicetree/bindings/phy/mixel,mipi-dsi-phy.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,imx7d-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,imx7d-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/fsl,imxrt1170.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/marvell,ac5-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/mediatek,pinctrl-mt6795.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{qcom,lpass-lpi-pinctrl.yaml => qcom,sm8250-lpass-lpi-pinctrl.yaml} (97%)
create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,mt7620-pinctrl.yaml
rename Documentation/devicetree/bindings/pinctrl/{ralink,rt2880-pinmux.yaml => ralink,mt7621-pinctrl.yaml} (63%)
create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt305x-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/ralink,rt3883-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/powerpc/fsl/cache_sram.txt
create mode 100644 Documentation/devicetree/bindings/pwm/atmel,at91sam-pwm.yaml
delete mode 100644 Documentation/devicetree/bindings/pwm/atmel-pwm.txt
create mode 100644 Documentation/devicetree/bindings/pwm/mediatek,pwm-disp.yaml
delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-mtk-disp.txt
create mode 100644 Documentation/devicetree/bindings/pwm/sunplus,sp7021-pwm.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/richtek,rt5759-regulator.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/siliconmitus,sm5703-regulator.yaml
create mode 100644 Documentation/devicetree/bindings/reserved-memory/phram.yaml
create mode 100644 Documentation/devicetree/bindings/reset/altr,rst-mgr.yaml
delete mode 100644 Documentation/devicetree/bindings/reset/amlogic,meson-axg-audio-arb.txt
create mode 100644 Documentation/devicetree/bindings/reset/amlogic,meson-axg-audio-arb.yaml
delete mode 100644 Documentation/devicetree/bindings/reset/ath79-reset.txt
delete mode 100644 Documentation/devicetree/bindings/reset/berlin,reset.txt
delete mode 100644 Documentation/devicetree/bindings/reset/bitmain,bm1880-reset.txt
create mode 100644 Documentation/devicetree/bindings/reset/bitmain,bm1880-reset.yaml
delete mode 100644 Documentation/devicetree/bindings/reset/hisilicon,hi6220-reset.txt
delete mode 100644 Documentation/devicetree/bindings/reset/lantiq,reset.txt
create mode 100644 Documentation/devicetree/bindings/reset/lantiq,reset.yaml
create mode 100644 Documentation/devicetree/bindings/reset/marvell,berlin2-reset.yaml
delete mode 100644 Documentation/devicetree/bindings/reset/nuvoton,npcm-reset.txt
create mode 100644 Documentation/devicetree/bindings/reset/nuvoton,npcm750-reset.yaml
create mode 100644 Documentation/devicetree/bindings/reset/qca,ar7100-reset.yaml
delete mode 100644 Documentation/devicetree/bindings/reset/snps,axs10x-reset.txt
create mode 100644 Documentation/devicetree/bindings/reset/snps,axs10x-reset.yaml
delete mode 100644 Documentation/devicetree/bindings/reset/socfpga-reset.txt
delete mode 100644 Documentation/devicetree/bindings/reset/st,sti-picophyreset.txt
delete mode 100644 Documentation/devicetree/bindings/reset/st,sti-powerdown.txt
create mode 100644 Documentation/devicetree/bindings/reset/st,stih407-picophyreset.yaml
create mode 100644 Documentation/devicetree/bindings/reset/st,stih407-powerdown.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/renesas,rzn1-rtc.yaml
delete mode 100644 Documentation/devicetree/bindings/rtc/rtc.txt
delete mode 100644 Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt
create mode 100644 Documentation/devicetree/bindings/serial/qcom,msm-uartdm.yaml
create mode 100644 Documentation/devicetree/bindings/serial/qcom,serial-geni-qcom.yaml
create mode 100644 Documentation/devicetree/bindings/serio/arm,pl050.yaml
create mode 100644 Documentation/devicetree/bindings/soc/fsl/fsl,layerscape-dcfg.yaml
create mode 100644 Documentation/devicetree/bindings/soc/fsl/fsl,layerscape-scfg.yaml
create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml
create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-media-blk-ctrl.yaml
create mode 100644 Documentation/devicetree/bindings/soc/intel/intel,hps-copy-engine.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.txt
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.yaml
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,rpmh-rsc.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smsm.txt
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,smsm.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/qcom/rpmh-rsc.txt
rename Documentation/devicetree/bindings/{power => soc/renesas}/renesas,rzg2l-sysc.yaml (87%)
create mode 100644 Documentation/devicetree/bindings/soc/ti/wkup-m3-ipc.yaml
delete mode 100644 Documentation/devicetree/bindings/soc/ti/wkup_m3_ipc.txt
create mode 100644 Documentation/devicetree/bindings/sound/adi,max98396.yaml
create mode 100644 Documentation/devicetree/bindings/sound/arm,pl041.yaml
create mode 100644 Documentation/devicetree/bindings/sound/cirrus,cs35l45.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/mt8195-mt6359-rt1011-rt5682.yaml
rename Documentation/devicetree/bindings/sound/{mt8195-mt6359-rt1019-rt5682.yaml => mt8195-mt6359.yaml} (84%)
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra186-asrc.yaml
create mode 100644 Documentation/devicetree/bindings/sound/serial-midi.yaml
rename Documentation/devicetree/bindings/sound/{tas2764.yaml => tas27xx.yaml} (73%)
create mode 100644 Documentation/devicetree/bindings/sound/wlf,wm8731.yaml
create mode 100644 Documentation/devicetree/bindings/sound/wlf,wm8940.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/wm8731.txt
create mode 100644 Documentation/devicetree/bindings/spi/aspeed,ast2600-fmc.yaml
create mode 100644 Documentation/devicetree/bindings/spi/mediatek,spi-mtk-snfi.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.txt
create mode 100644 Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/qcom,spi-qup.txt
create mode 100644 Documentation/devicetree/bindings/spi/qcom,spi-qup.yaml
delete mode 100644 Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.txt
create mode 100644 Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.yaml
create mode 100644 Documentation/devicetree/bindings/thermal/ti,j72xx-thermal.yaml
create mode 100644 Documentation/devicetree/bindings/timer/hpe,gxp-timer.yaml
delete mode 100644 Documentation/devicetree/bindings/timer/rda,8810pl-timer.txt
create mode 100644 Documentation/devicetree/bindings/timer/rda,8810pl-timer.yaml
delete mode 100644 Documentation/devicetree/bindings/timer/renesas,16bit-timer.txt
delete mode 100644 Documentation/devicetree/bindings/timer/renesas,8bit-timer.txt
create mode 100644 Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
delete mode 100644 Documentation/devicetree/bindings/timer/ti,timer.txt
create mode 100644 Documentation/devicetree/bindings/timer/xlnx,xps-timer.yaml
create mode 100644 Documentation/devicetree/bindings/timestamp/hardware-timestamps-common.yaml
create mode 100644 Documentation/devicetree/bindings/timestamp/hte-consumer.yaml
create mode 100644 Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml
create mode 100644 Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml
create mode 100644 Documentation/devicetree/bindings/usb/ti,am62-usb.yaml
delete mode 100644 Documentation/devicetree/bindings/watchdog/faraday,ftwdt010.txt
create mode 100644 Documentation/devicetree/bindings/watchdog/faraday,ftwdt010.yaml
create mode 100644 Documentation/devicetree/bindings/watchdog/sunplus,sp7021-wdt.yaml
create mode 100644 Documentation/driver-api/firmware/fw_upload.rst
create mode 100644 Documentation/driver-api/hte/hte.rst
create mode 100644 Documentation/driver-api/hte/index.rst
create mode 100644 Documentation/driver-api/hte/tegra194-hte.rst
delete mode 100644 Documentation/driver-api/serial/n_gsm.rst
rename Documentation/{ => driver-api}/tty/index.rst (81%)
rename Documentation/driver-api/{serial => tty}/moxa-smartio.rst (100%)
create mode 100644 Documentation/driver-api/tty/n_gsm.rst
rename Documentation/{ => driver-api}/tty/n_tty.rst (100%)
rename Documentation/{ => driver-api}/tty/tty_buffer.rst (100%)
rename Documentation/{ => driver-api}/tty/tty_driver.rst (100%)
rename Documentation/{ => driver-api}/tty/tty_internals.rst (100%)
rename Documentation/{ => driver-api}/tty/tty_ldisc.rst (100%)
rename Documentation/{ => driver-api}/tty/tty_port.rst (100%)
rename Documentation/{ => driver-api}/tty/tty_struct.rst (100%)
create mode 100644 Documentation/filesystems/nfs/client-identifier.rst
create mode 100644 Documentation/firmware-guide/acpi/chromeos-acpi-device.rst
create mode 100644 Documentation/hwmon/lan966x.rst
create mode 100644 Documentation/hwmon/xdpe152c4.rst
delete mode 100644 Documentation/ide/ChangeLog.ide-cd.1994-2004
delete mode 100644 Documentation/ide/ChangeLog.ide-floppy.1996-2002
delete mode 100644 Documentation/ide/ChangeLog.ide-tape.1995-2002
delete mode 100644 Documentation/ide/changelogs.rst
delete mode 100644 Documentation/ide/ide-tape.rst
delete mode 100644 Documentation/ide/ide.rst
delete mode 100644 Documentation/ide/index.rst
delete mode 100644 Documentation/ide/warm-plug-howto.rst
rename Documentation/{ => images}/COPYING-logo (64%)
rename Documentation/{ => images}/logo.gif (100%)
create mode 100644 Documentation/images/logo.svg
create mode 100644 Documentation/leds/leds-qcom-lpg.rst
create mode 100644 Documentation/loongarch/features.rst
create mode 100644 Documentation/loongarch/index.rst
create mode 100644 Documentation/loongarch/introduction.rst
create mode 100644 Documentation/loongarch/irq-chip-model.rst
create mode 100644 Documentation/misc-devices/oxsemi-tornado.rst
delete mode 100644 Documentation/networking/device_drivers/appletalk/ltpc.rst
create mode 100644 Documentation/networking/device_drivers/can/ctu/ctucanfd-driver.rst
create mode 100644 Documentation/networking/device_drivers/can/ctu/fsm_txt_buffer_user.svg
delete mode 100644 Documentation/networking/device_drivers/ethernet/dec/de4x5.rst
create mode 100644 Documentation/networking/device_drivers/ethernet/marvell/octeon_ep.rst
delete mode 100644 Documentation/networking/device_drivers/wan/index.rst
delete mode 100644 Documentation/networking/device_drivers/wan/z8530book.rst
create mode 100644 Documentation/networking/device_drivers/wwan/t7xx.rst
create mode 100644 Documentation/networking/devlink/devlink-linecard.rst
create mode 100644 Documentation/networking/skbuff.rst
create mode 100644 Documentation/powerpc/kasan.txt
create mode 100644 Documentation/security/secrets/coco.rst
create mode 100644 Documentation/security/secrets/index.rst
create mode 100644 Documentation/translations/zh_CN/dev-tools/gdb-kernel-debugging.rst
create mode 100644 Documentation/translations/zh_CN/locking/index.rst
create mode 100644 Documentation/translations/zh_CN/locking/spinlocks.rst
create mode 100644 Documentation/translations/zh_CN/loongarch/features.rst
create mode 100644 Documentation/translations/zh_CN/loongarch/index.rst
create mode 100644 Documentation/translations/zh_CN/loongarch/introduction.rst
create mode 100644 Documentation/translations/zh_CN/loongarch/irq-chip-model.rst
create mode 100644 Documentation/translations/zh_CN/scheduler/sched-debug.rst
create mode 100644 Documentation/translations/zh_CN/scheduler/schedutil.rst
create mode 100644 Documentation/translations/zh_CN/vm/frontswap.rst
create mode 100644 Documentation/translations/zh_CN/vm/hmm.rst
create mode 100644 Documentation/translations/zh_CN/vm/hugetlbfs_reserv.rst
create mode 100644 Documentation/translations/zh_CN/vm/hwpoison.rst
create mode 100644 Documentation/translations/zh_CN/vm/memory-model.rst
create mode 100644 Documentation/translations/zh_CN/vm/mmu_notifier.rst
create mode 100644 Documentation/translations/zh_CN/vm/numa.rst
create mode 100644 Documentation/translations/zh_CN/vm/overcommit-accounting.rst
create mode 100644 Documentation/translations/zh_CN/vm/page_frags.rst
create mode 100644 Documentation/translations/zh_CN/vm/page_owner.rst
create mode 100644 Documentation/translations/zh_CN/vm/page_table_check.rst
create mode 100644 Documentation/translations/zh_CN/vm/remap_file_pages.rst
create mode 100644 Documentation/translations/zh_CN/vm/split_page_table_lock.rst
create mode 100644 Documentation/translations/zh_CN/vm/z3fold.rst
create mode 100644 Documentation/translations/zh_CN/vm/zsmalloc.rst
create mode 100644 Documentation/virt/coco/sev-guest.rst
create mode 100644 Documentation/virt/kvm/arm/hypercalls.rst
delete mode 100644 Documentation/virt/kvm/arm/psci.rst
create mode 100644 Documentation/vm/bootmem.rst
create mode 100644 Documentation/vm/oom.rst
create mode 100644 Documentation/vm/page_allocation.rst
create mode 100644 Documentation/vm/page_cache.rst
create mode 100644 Documentation/vm/page_reclaim.rst
create mode 100644 Documentation/vm/page_tables.rst
create mode 100644 Documentation/vm/physical_memory.rst
create mode 100644 Documentation/vm/process_addrs.rst
create mode 100644 Documentation/vm/shmfs.rst
create mode 100644 Documentation/vm/slab.rst
create mode 100644 Documentation/vm/swap.rst
create mode 100644 Documentation/vm/vmalloc.rst
create mode 100644 Documentation/vm/vmemmap_dedup.rst
create mode 100644 Documentation/x86/ifs.rst
delete mode 100644 Documentation/x86/intel-iommu.rst
create mode 100644 Documentation/x86/iommu.rst
create mode 100644 Documentation/x86/tdx.rst
create mode 100644 arch/arc/include/uapi/asm/bpf_perf_event.h
rename arch/arm/{mach-ep93xx/include/mach/uncompress.h => boot/compressed/misc-ep93xx.h} (51%)
create mode 100644 arch/arm/boot/dts/aspeed-bmc-nuvia-dc-scm.dts
create mode 100644 arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
create mode 100644 arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp.dts
create mode 100644 arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp2.dts
create mode 100644 arch/arm/boot/dts/bcm47622.dtsi
create mode 100644 arch/arm/boot/dts/bcm947622.dts
create mode 100644 arch/arm/boot/dts/hpe-bmc-dl360gen10.dts
create mode 100644 arch/arm/boot/dts/hpe-gxp.dtsi
create mode 100644 arch/arm/boot/dts/imx6dl-colibri-aster.dts
create mode 100644 arch/arm/boot/dts/imx6dl-colibri-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx6dl-colibri-iris.dts
delete mode 100644 arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts
create mode 100644 arch/arm/boot/dts/imx6q-bosch-acc.dts
delete mode 100644 arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi
create mode 100644 arch/arm/boot/dts/imx6qdl-vicut1-12inch.dtsi
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul-common.dtsi
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul1-mba6ulx.dts
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul1.dtsi
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul2-mba6ulx.dts
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul2.dtsi
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul2l-mba6ulx.dts
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ul2l.dtsi
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ulx-common.dtsi
create mode 100644 arch/arm/boot/dts/imx6ul-tqma6ulxl-common.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-aster.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-aster.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-emmc-aster.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-emmc-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-emmc-iris.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-iris-v2.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-iris.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-iris.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-wifi-aster.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-wifi-iris-v2.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-wifi-iris.dts
create mode 100644 arch/arm/boot/dts/imx6ull-phytec-tauri-emmc.dts
create mode 100644 arch/arm/boot/dts/imx6ull-phytec-tauri-nand.dts
create mode 100644 arch/arm/boot/dts/imx6ull-phytec-tauri.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-tqma6ull2-mba6ulx.dts
create mode 100644 arch/arm/boot/dts/imx6ull-tqma6ull2.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-tqma6ull2l-mba6ulx.dts
create mode 100644 arch/arm/boot/dts/imx6ull-tqma6ull2l.dtsi
create mode 100644 arch/arm/boot/dts/imx7d-smegw01.dts
create mode 100644 arch/arm/boot/dts/imxrt1050-evk.dts
create mode 100644 arch/arm/boot/dts/imxrt1050.dtsi
create mode 100644 arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-6g-2gs.dts
create mode 100644 arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-8g.dts
create mode 100644 arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt.dtsi
create mode 100644 arch/arm/boot/dts/ls1021a-iot.dts
create mode 100644 arch/arm/boot/dts/mba6ulx.dtsi
create mode 100644 arch/arm/boot/dts/qcom-apq8026-asus-sparrow.dts
rename arch/arm/boot/dts/{qcom-apq8064-sony-xperia-yuga.dts => qcom-apq8064-sony-xperia-lagan-yuga.dts} (100%)
delete mode 100644 arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts
delete mode 100644 arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
delete mode 100644 arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dts
delete mode 100644 arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts
delete mode 100644 arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine-amami.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine-honami.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine.dtsi
create mode 100644 arch/arm/boot/dts/qcom-msm8974pro-fairphone-fp2.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8974pro-sony-xperia-shinano-castor.dts
create mode 100644 arch/arm/boot/dts/qcom-pmx65.dtsi
create mode 100644 arch/arm/boot/dts/ste-ux500-samsung-codina-tmo.dts
create mode 100644 arch/arm/boot/dts/stm32mp151a-prtt1a.dts
create mode 100644 arch/arm/boot/dts/stm32mp151a-prtt1c.dts
create mode 100644 arch/arm/boot/dts/stm32mp151a-prtt1l.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp151a-prtt1s.dts
create mode 100644 arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts
create mode 100644 arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts
create mode 100644 arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts
create mode 100644 arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts
mode change 100644 => 100755 arch/arm/boot/install.sh
rename arch/arm/include/asm/xen/{page-coherent.h => xen-ops.h} (52%)
create mode 100644 arch/arm/mach-at91/sam_secure.c
create mode 100644 arch/arm/mach-at91/sam_secure.h
rename arch/arm/mach-davinci/{include/mach => }/common.h (100%)
rename arch/arm/mach-davinci/{include/mach => }/cputype.h (98%)
rename arch/arm/mach-davinci/{include/mach => }/da8xx.h (99%)
rename arch/arm/mach-davinci/{include/mach => }/hardware.h (100%)
delete mode 100644 arch/arm/mach-davinci/include/mach/mux.h
delete mode 100644 arch/arm/mach-davinci/include/mach/uncompress.h
rename arch/arm/mach-davinci/{include/mach => }/pm.h (100%)
rename arch/arm/mach-davinci/{include/mach => }/serial.h (97%)
delete mode 100644 arch/arm/mach-dove/include/mach/uncompress.h
rename arch/arm/mach-ep93xx/{include/mach => }/ep93xx-regs.h (94%)
delete mode 100644 arch/arm/mach-ep93xx/include/mach/irqs.h
create mode 100644 arch/arm/mach-ep93xx/irqs.h
create mode 100644 arch/arm/mach-hpe/Kconfig
create mode 100644 arch/arm/mach-hpe/Makefile
create mode 100644 arch/arm/mach-hpe/gxp.c
delete mode 100644 arch/arm/mach-integrator/Kconfig
delete mode 100644 arch/arm/mach-integrator/Makefile
delete mode 100644 arch/arm/mach-iop32x/include/mach/irqs.h
delete mode 100644 arch/arm/mach-iop32x/include/mach/uncompress.h
delete mode 100644 arch/arm/mach-ixp4xx/Makefile.boot
delete mode 100644 arch/arm/mach-ixp4xx/include/mach/uncompress.h
delete mode 100644 arch/arm/mach-mmp/tavorevb.c
rename arch/arm/mach-omap1/{include/mach => }/hardware.h (59%)
delete mode 100644 arch/arm/mach-omap1/include/mach/io.h
delete mode 100644 arch/arm/mach-omap1/include/mach/lcdc.h
delete mode 100644 arch/arm/mach-omap1/include/mach/memory.h
delete mode 100644 arch/arm/mach-omap1/include/mach/uncompress.h
rename arch/arm/mach-omap1/{include/mach => }/irqs.h (99%)
rename arch/arm/mach-omap1/{include/mach => }/mtd-xip.h (97%)
create mode 100644 arch/arm/mach-omap1/mux.h
rename arch/arm/{plat-omap/dma.c => mach-omap1/omap-dma.c} (83%)
rename arch/arm/mach-omap1/{include/mach => }/omap1510.h (100%)
rename arch/arm/mach-omap1/{include/mach => }/omap16xx.h (100%)
rename arch/arm/mach-omap1/{include/mach => }/omap7xx.h (100%)
rename arch/arm/mach-omap1/{include/mach => }/serial.h (100%)
rename arch/arm/mach-omap1/{include/mach => }/tc.h (98%)
create mode 100644 arch/arm/mach-omap1/usb.h
delete mode 100644 arch/arm/mach-omap2/include/mach/hardware.h
delete mode 100644 arch/arm/mach-omap2/include/mach/irqs.h
delete mode 100644 arch/arm/mach-omap2/include/mach/serial.h
rename arch/arm/mach-pxa/{include/mach => }/addr-map.h (100%)
rename drivers/pcmcia/pxa2xx_balloon3.c => arch/arm/mach-pxa/balloon3-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/balloon3.h (100%)
rename drivers/pcmcia/pxa2xx_colibri.c => arch/arm/mach-pxa/colibri-pcmcia.c (99%)
rename arch/arm/mach-pxa/{include/mach => }/corgi.h (100%)
rename drivers/pcmcia/pxa2xx_e740.c => arch/arm/mach-pxa/e740-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/eseries-gpio.h (100%)
rename drivers/pcmcia/pxa2xx_hx4700.c => arch/arm/mach-pxa/hx4700-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/hx4700.h (100%)
delete mode 100644 arch/arm/mach-pxa/include/mach/bitfield.h
delete mode 100644 arch/arm/mach-pxa/include/mach/dma.h
delete mode 100644 arch/arm/mach-pxa/include/mach/generic.h
delete mode 100644 arch/arm/mach-pxa/include/mach/mtd-xip.h
delete mode 100644 arch/arm/mach-pxa/include/mach/uncompress.h
rename arch/arm/mach-pxa/{include/mach => }/irqs.h (100%)
rename arch/arm/mach-pxa/{include/mach => }/lubbock.h (95%)
rename arch/arm/mach-pxa/{include/mach => }/magician.h (99%)
rename arch/arm/mach-pxa/{include/mach => }/mainstone.h (98%)
rename arch/arm/mach-pxa/{include/mach => }/mfp.h (91%)
rename drivers/pcmcia/pxa2xx_palmld.c => arch/arm/mach-pxa/palmld-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/palmld.h (100%)
rename drivers/pcmcia/pxa2xx_palmtc.c => arch/arm/mach-pxa/palmtc-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/palmtc.h (100%)
rename drivers/pcmcia/pxa2xx_palmtx.c => arch/arm/mach-pxa/palmtx-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/palmtx.h (100%)
rename arch/arm/mach-pxa/{include/mach => }/poodle.h (98%)
create mode 100644 arch/arm/mach-pxa/pxa-regs.h
rename arch/arm/mach-pxa/{include/mach => }/pxa2xx-regs.h (76%)
rename arch/arm/mach-pxa/{include/mach => }/pxa3xx-regs.h (61%)
rename arch/arm/mach-pxa/{include/mach => }/regs-ost.h (94%)
rename arch/arm/mach-pxa/{include/mach => }/regs-uart.h (99%)
rename arch/arm/mach-pxa/{include/mach => }/reset.h (92%)
rename arch/arm/mach-pxa/{include/mach => }/smemc.h (100%)
rename arch/arm/mach-pxa/{include/mach => }/spitz.h (100%)
rename arch/arm/mach-pxa/{include/mach => }/tosa.h (88%)
rename drivers/pcmcia/pxa2xx_trizeps4.c => arch/arm/mach-pxa/trizeps4-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/trizeps4.h (99%)
rename drivers/pcmcia/pxa2xx_viper.c => arch/arm/mach-pxa/viper-pcmcia.c (97%)
rename include/linux/platform_data/pcmcia-pxa2xx_viper.h => arch/arm/mach-pxa/viper-pcmcia.h (100%)
rename drivers/pcmcia/pxa2xx_vpac270.c => arch/arm/mach-pxa/vpac270-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/vpac270.h (100%)
rename arch/arm/mach-pxa/{include/mach => }/z2.h (100%)
delete mode 100644 arch/arm/mach-realview/Kconfig
delete mode 100644 arch/arm/mach-realview/Makefile
delete mode 100644 arch/arm/mach-s3c/include/mach/io-s3c24xx.h
delete mode 100644 arch/arm/mach-s3c/include/mach/io.h
rename arch/arm/mach-s3c/{include/mach => }/irqs-s3c24xx.h (95%)
rename arch/arm/mach-s3c/{include/mach => }/irqs-s3c64xx.h (100%)
rename arch/arm/mach-s3c/{include/mach => }/irqs.h (100%)
rename arch/arm/mach-s3c/{include/mach => }/map-base.h (87%)
delete mode 100644 arch/arm/mach-spear/include/mach/irqs.h
delete mode 100644 arch/arm/mach-spear/include/mach/uncompress.h
rename arch/arm/mach-spear/{include/mach => }/misc_regs.h (87%)
rename arch/arm/mach-spear/{include/mach => }/spear.h (100%)
rename arch/arm/{mach-vexpress => mach-versatile}/Makefile.boot (100%)
rename arch/arm/{mach-vexpress => mach-versatile}/dcscb.c (97%)
rename arch/arm/{mach-vexpress => mach-versatile}/dcscb_setup.S (95%)
rename arch/arm/{plat-versatile => mach-versatile}/headsmp.S (94%)
rename arch/arm/{plat-versatile => mach-versatile}/hotplug.c (98%)
rename arch/arm/{mach-integrator/cm.h => mach-versatile/integrator-cm.h} (100%)
rename arch/arm/{mach-integrator/hardware.h => mach-versatile/integrator-hardware.h} (100%)
rename arch/arm/{mach-integrator/core.c => mach-versatile/integrator.c} (95%)
rename arch/arm/{mach-integrator/common.h => mach-versatile/integrator.h} (100%)
rename arch/arm/{mach-integrator => mach-versatile}/integrator_ap.c (95%)
rename arch/arm/{mach-integrator => mach-versatile}/integrator_cp.c (96%)
rename arch/arm/{mach-realview/platsmp-dt.c => mach-versatile/platsmp-realview.c} (98%)
rename arch/arm/{mach-vexpress/platsmp.c => mach-versatile/platsmp-vexpress.c} (96%)
rename arch/arm/{plat-versatile => mach-versatile}/platsmp.c (97%)
rename arch/arm/{plat-versatile/include/plat => mach-versatile}/platsmp.h (87%)
rename arch/arm/{mach-realview/realview-dt.c => mach-versatile/realview.c} (100%)
rename arch/arm/{mach-vexpress => mach-versatile}/spc.c (100%)
rename arch/arm/{mach-vexpress => mach-versatile}/spc.h (100%)
rename arch/arm/{mach-vexpress => mach-versatile}/tc2_pm.c (99%)
rename arch/arm/{mach-vexpress => mach-versatile}/v2m-mps2.c (100%)
rename arch/arm/{mach-vexpress => mach-versatile}/v2m.c (97%)
rename arch/arm/mach-versatile/{versatile_dt.c => versatile.c} (100%)
rename arch/arm/{mach-vexpress/core.h => mach-versatile/vexpress.h} (100%)
delete mode 100644 arch/arm/mach-vexpress/Kconfig
delete mode 100644 arch/arm/mach-vexpress/Makefile
delete mode 100644 arch/arm/plat-omap/Kconfig
delete mode 100644 arch/arm/plat-omap/Makefile
delete mode 100644 arch/arm/plat-omap/counter_32k.c
delete mode 100644 arch/arm/plat-omap/debug-leds.c
delete mode 100644 arch/arm/plat-omap/include/plat/counter-32k.h
delete mode 100644 arch/arm/plat-omap/include/plat/cpu.h
delete mode 100644 arch/arm/plat-omap/include/plat/sram.h
delete mode 100644 arch/arm/plat-omap/sram.c
delete mode 100644 arch/arm/plat-versatile/Makefile
create mode 100644 arch/arm64/boot/dts/arm/corstone1000-fvp.dts
create mode 100644 arch/arm64/boot/dts/arm/corstone1000-mps3.dts
create mode 100644 arch/arm64/boot/dts/arm/corstone1000.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8-ss-vpu.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-data-modul-edm-sbc.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-mx8menlo.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mn-ddr3l-evk.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-dahlia.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dahlia.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dev.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dahlia.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dev.dts
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi
create mode 100644 arch/arm64/boot/dts/intel/socfpga_agilex_n6000.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt6359.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195-demo.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195-evb.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8195.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/pm8450.dtsi
rename arch/arm64/boot/dts/qcom/{sc7280-crd.dts => sc7280-crd-r3.dts} (88%)
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts
delete mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-herobrine-r0.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r0.dts
create mode 100644 arch/arm64/boot/dts/renesas/r8a779f0-spider-ethernet.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g0-white-hawk-cpu.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g0-white-hawk.dts
create mode 100644 arch/arm64/boot/dts/renesas/r8a779g0.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r9a07g043.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts
create mode 100644 arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dts
create mode 100644 arch/arm64/boot/dts/renesas/r9a09g011.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/rzg2ul-smarc-pinfunction.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/rzg2ul-smarc.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-roc-pc.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-soquartz-cm4.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-soquartz.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts
delete mode 100644 arch/arm64/boot/dts/synaptics/as370.dtsi
mode change 100644 => 100755 arch/arm64/boot/install.sh
create mode 100644 arch/arm64/crypto/sm4-ce-cipher-core.S
create mode 100644 arch/arm64/crypto/sm4-ce-cipher-glue.c
create mode 100644 arch/arm64/crypto/sm4-neon-core.S
create mode 100644 arch/arm64/crypto/sm4-neon-glue.c
rename arch/arm64/include/asm/xen/{page-coherent.h => xen-ops.h} (52%)
create mode 100755 arch/arm64/tools/gen-sysreg.awk
create mode 100644 arch/arm64/tools/sysreg
delete mode 100644 arch/csky/abiv1/memcpy.S
delete mode 100644 arch/csky/abiv1/strksyms.c
create mode 100644 arch/csky/include/asm/atomic.h
delete mode 100644 arch/csky/include/asm/spinlock.h
delete mode 100644 arch/csky/include/asm/spinlock_types.h
create mode 100644 arch/csky/kernel/io.c
create mode 100644 arch/csky/lib/string.c
delete mode 100644 arch/h8300/Kbuild
delete mode 100644 arch/h8300/Kconfig
delete mode 100644 arch/h8300/Kconfig.cpu
delete mode 100644 arch/h8300/Makefile
delete mode 100644 arch/h8300/boot/Makefile
delete mode 100644 arch/h8300/boot/compressed/Makefile
delete mode 100644 arch/h8300/boot/compressed/head.S
delete mode 100644 arch/h8300/boot/compressed/misc.c
delete mode 100644 arch/h8300/boot/compressed/vmlinux.lds
delete mode 100644 arch/h8300/boot/compressed/vmlinux.scr
delete mode 100644 arch/h8300/boot/dts/Makefile
delete mode 100644 arch/h8300/boot/dts/edosk2674.dts
delete mode 100644 arch/h8300/boot/dts/h8300h_sim.dts
delete mode 100644 arch/h8300/boot/dts/h8s_sim.dts
delete mode 100644 arch/h8300/configs/edosk2674_defconfig
delete mode 100644 arch/h8300/configs/h8300h-sim_defconfig
delete mode 100644 arch/h8300/configs/h8s-sim_defconfig
delete mode 100644 arch/h8300/include/asm/Kbuild
delete mode 100644 arch/h8300/include/asm/bitops.h
delete mode 100644 arch/h8300/include/asm/bug.h
delete mode 100644 arch/h8300/include/asm/byteorder.h
delete mode 100644 arch/h8300/include/asm/cache.h
delete mode 100644 arch/h8300/include/asm/elf.h
delete mode 100644 arch/h8300/include/asm/flat.h
delete mode 100644 arch/h8300/include/asm/hash.h
delete mode 100644 arch/h8300/include/asm/io.h
delete mode 100644 arch/h8300/include/asm/irq.h
delete mode 100644 arch/h8300/include/asm/irqflags.h
delete mode 100644 arch/h8300/include/asm/kgdb.h
delete mode 100644 arch/h8300/include/asm/mmu_context.h
delete mode 100644 arch/h8300/include/asm/page.h
delete mode 100644 arch/h8300/include/asm/page_offset.h
delete mode 100644 arch/h8300/include/asm/pgtable.h
delete mode 100644 arch/h8300/include/asm/processor.h
delete mode 100644 arch/h8300/include/asm/ptrace.h
delete mode 100644 arch/h8300/include/asm/signal.h
delete mode 100644 arch/h8300/include/asm/smp.h
delete mode 100644 arch/h8300/include/asm/string.h
delete mode 100644 arch/h8300/include/asm/switch_to.h
delete mode 100644 arch/h8300/include/asm/syscall.h
delete mode 100644 arch/h8300/include/asm/thread_info.h
delete mode 100644 arch/h8300/include/asm/tlb.h
delete mode 100644 arch/h8300/include/asm/traps.h
delete mode 100644 arch/h8300/include/asm/user.h
delete mode 100644 arch/h8300/include/asm/vmalloc.h
delete mode 100644 arch/h8300/include/uapi/asm/byteorder.h
delete mode 100644 arch/h8300/include/uapi/asm/posix_types.h
delete mode 100644 arch/h8300/include/uapi/asm/ptrace.h
delete mode 100644 arch/h8300/include/uapi/asm/sigcontext.h
delete mode 100644 arch/h8300/include/uapi/asm/signal.h
delete mode 100644 arch/h8300/include/uapi/asm/unistd.h
delete mode 100644 arch/h8300/kernel/Makefile
delete mode 100644 arch/h8300/kernel/asm-offsets.c
delete mode 100644 arch/h8300/kernel/entry.S
delete mode 100644 arch/h8300/kernel/h8300_ksyms.c
delete mode 100644 arch/h8300/kernel/head_ram.S
delete mode 100644 arch/h8300/kernel/head_rom.S
delete mode 100644 arch/h8300/kernel/irq.c
delete mode 100644 arch/h8300/kernel/kgdb.c
delete mode 100644 arch/h8300/kernel/module.c
delete mode 100644 arch/h8300/kernel/process.c
delete mode 100644 arch/h8300/kernel/ptrace.c
delete mode 100644 arch/h8300/kernel/ptrace_h.c
delete mode 100644 arch/h8300/kernel/ptrace_s.c
delete mode 100644 arch/h8300/kernel/setup.c
delete mode 100644 arch/h8300/kernel/signal.c
delete mode 100644 arch/h8300/kernel/sim-console.c
delete mode 100644 arch/h8300/kernel/syscalls.c
delete mode 100644 arch/h8300/kernel/traps.c
delete mode 100644 arch/h8300/kernel/vmlinux.lds.S
delete mode 100644 arch/h8300/lib/Makefile
delete mode 100644 arch/h8300/lib/abs.S
delete mode 100644 arch/h8300/lib/ashldi3.c
delete mode 100644 arch/h8300/lib/ashrdi3.c
delete mode 100644 arch/h8300/lib/delay.c
delete mode 100644 arch/h8300/lib/libgcc.h
delete mode 100644 arch/h8300/lib/lshrdi3.c
delete mode 100644 arch/h8300/lib/memcpy.S
delete mode 100644 arch/h8300/lib/memset.S
delete mode 100644 arch/h8300/lib/moddivsi3.S
delete mode 100644 arch/h8300/lib/modsi3.S
delete mode 100644 arch/h8300/lib/muldi3.c
delete mode 100644 arch/h8300/lib/mulsi3.S
delete mode 100644 arch/h8300/lib/ucmpdi2.c
delete mode 100644 arch/h8300/lib/udivsi3.S
delete mode 100644 arch/h8300/mm/Makefile
delete mode 100644 arch/h8300/mm/fault.c
delete mode 100644 arch/h8300/mm/init.c
delete mode 100644 arch/h8300/mm/memory.c
delete mode 100644 arch/ia64/include/asm/iommu_table.h
mode change 100644 => 100755 arch/ia64/install.sh
create mode 100644 arch/loongarch/Kbuild
create mode 100644 arch/loongarch/Kconfig
rename arch/{x86/include/asm/fpu/internal.h => loongarch/Kconfig.debug} (100%)
create mode 100644 arch/loongarch/Makefile
rename arch/{h8300/Kconfig.debug => loongarch/boot/.gitignore} (58%)
create mode 100644 arch/loongarch/boot/Makefile
create mode 100644 arch/loongarch/boot/dts/Makefile
create mode 100644 arch/loongarch/configs/loongson3_defconfig
create mode 100644 arch/loongarch/include/asm/Kbuild
create mode 100644 arch/loongarch/include/asm/acenv.h
create mode 100644 arch/loongarch/include/asm/acpi.h
create mode 100644 arch/loongarch/include/asm/addrspace.h
create mode 100644 arch/loongarch/include/asm/asm-offsets.h
create mode 100644 arch/loongarch/include/asm/asm-prototypes.h
create mode 100644 arch/loongarch/include/asm/asm.h
create mode 100644 arch/loongarch/include/asm/asmmacro.h
create mode 100644 arch/loongarch/include/asm/atomic.h
create mode 100644 arch/loongarch/include/asm/barrier.h
create mode 100644 arch/loongarch/include/asm/bitops.h
create mode 100644 arch/loongarch/include/asm/bitrev.h
create mode 100644 arch/loongarch/include/asm/bootinfo.h
create mode 100644 arch/loongarch/include/asm/branch.h
create mode 100644 arch/loongarch/include/asm/bug.h
create mode 100644 arch/loongarch/include/asm/cache.h
create mode 100644 arch/loongarch/include/asm/cacheflush.h
create mode 100644 arch/loongarch/include/asm/cacheops.h
create mode 100644 arch/loongarch/include/asm/clocksource.h
create mode 100644 arch/loongarch/include/asm/cmpxchg.h
create mode 100644 arch/loongarch/include/asm/compiler.h
create mode 100644 arch/loongarch/include/asm/cpu-features.h
create mode 100644 arch/loongarch/include/asm/cpu-info.h
create mode 100644 arch/loongarch/include/asm/cpu.h
create mode 100644 arch/loongarch/include/asm/cpufeature.h
create mode 100644 arch/loongarch/include/asm/delay.h
create mode 100644 arch/loongarch/include/asm/dma-direct.h
create mode 100644 arch/loongarch/include/asm/dmi.h
create mode 100644 arch/loongarch/include/asm/efi.h
create mode 100644 arch/loongarch/include/asm/elf.h
create mode 100644 arch/loongarch/include/asm/entry-common.h
create mode 100644 arch/loongarch/include/asm/exec.h
create mode 100644 arch/loongarch/include/asm/fb.h
create mode 100644 arch/loongarch/include/asm/fixmap.h
create mode 100644 arch/loongarch/include/asm/fpregdef.h
create mode 100644 arch/loongarch/include/asm/fpu.h
create mode 100644 arch/loongarch/include/asm/futex.h
create mode 100644 arch/loongarch/include/asm/hardirq.h
create mode 100644 arch/loongarch/include/asm/hugetlb.h
create mode 100644 arch/loongarch/include/asm/hw_irq.h
create mode 100644 arch/loongarch/include/asm/idle.h
create mode 100644 arch/loongarch/include/asm/inst.h
create mode 100644 arch/loongarch/include/asm/io.h
create mode 100644 arch/loongarch/include/asm/irq.h
create mode 100644 arch/loongarch/include/asm/irq_regs.h
create mode 100644 arch/loongarch/include/asm/irqflags.h
create mode 100644 arch/loongarch/include/asm/kdebug.h
create mode 100644 arch/loongarch/include/asm/linkage.h
create mode 100644 arch/loongarch/include/asm/local.h
create mode 100644 arch/loongarch/include/asm/loongarch.h
create mode 100644 arch/loongarch/include/asm/loongson.h
create mode 100644 arch/loongarch/include/asm/mmu.h
create mode 100644 arch/loongarch/include/asm/mmu_context.h
create mode 100644 arch/loongarch/include/asm/mmzone.h
create mode 100644 arch/loongarch/include/asm/module.h
create mode 100644 arch/loongarch/include/asm/module.lds.h
create mode 100644 arch/loongarch/include/asm/numa.h
create mode 100644 arch/loongarch/include/asm/page.h
create mode 100644 arch/loongarch/include/asm/percpu.h
create mode 100644 arch/loongarch/include/asm/perf_event.h
create mode 100644 arch/loongarch/include/asm/pgalloc.h
create mode 100644 arch/loongarch/include/asm/pgtable-bits.h
create mode 100644 arch/loongarch/include/asm/pgtable.h
create mode 100644 arch/loongarch/include/asm/prefetch.h
create mode 100644 arch/loongarch/include/asm/processor.h
create mode 100644 arch/loongarch/include/asm/ptrace.h
create mode 100644 arch/loongarch/include/asm/reboot.h
create mode 100644 arch/loongarch/include/asm/regdef.h
create mode 100644 arch/loongarch/include/asm/seccomp.h
create mode 100644 arch/loongarch/include/asm/serial.h
create mode 100644 arch/loongarch/include/asm/setup.h
create mode 100644 arch/loongarch/include/asm/shmparam.h
create mode 100644 arch/loongarch/include/asm/smp.h
create mode 100644 arch/loongarch/include/asm/sparsemem.h
create mode 100644 arch/loongarch/include/asm/stackframe.h
create mode 100644 arch/loongarch/include/asm/stacktrace.h
create mode 100644 arch/loongarch/include/asm/string.h
create mode 100644 arch/loongarch/include/asm/switch_to.h
create mode 100644 arch/loongarch/include/asm/syscall.h
create mode 100644 arch/loongarch/include/asm/thread_info.h
create mode 100644 arch/loongarch/include/asm/time.h
create mode 100644 arch/loongarch/include/asm/timex.h
create mode 100644 arch/loongarch/include/asm/tlb.h
create mode 100644 arch/loongarch/include/asm/tlbflush.h
create mode 100644 arch/loongarch/include/asm/topology.h
create mode 100644 arch/loongarch/include/asm/types.h
create mode 100644 arch/loongarch/include/asm/uaccess.h
create mode 100644 arch/loongarch/include/asm/unistd.h
create mode 100644 arch/loongarch/include/asm/vdso.h
create mode 100644 arch/loongarch/include/asm/vdso/clocksource.h
create mode 100644 arch/loongarch/include/asm/vdso/gettimeofday.h
create mode 100644 arch/loongarch/include/asm/vdso/processor.h
create mode 100644 arch/loongarch/include/asm/vdso/vdso.h
create mode 100644 arch/loongarch/include/asm/vdso/vsyscall.h
create mode 100644 arch/loongarch/include/asm/vermagic.h
create mode 100644 arch/loongarch/include/asm/vmalloc.h
rename arch/{h8300 => loongarch}/include/uapi/asm/Kbuild (59%)
create mode 100644 arch/loongarch/include/uapi/asm/auxvec.h
create mode 100644 arch/loongarch/include/uapi/asm/bitsperlong.h
create mode 100644 arch/loongarch/include/uapi/asm/break.h
create mode 100644 arch/loongarch/include/uapi/asm/byteorder.h
create mode 100644 arch/loongarch/include/uapi/asm/hwcap.h
create mode 100644 arch/loongarch/include/uapi/asm/ptrace.h
create mode 100644 arch/loongarch/include/uapi/asm/reg.h
create mode 100644 arch/loongarch/include/uapi/asm/sigcontext.h
create mode 100644 arch/loongarch/include/uapi/asm/signal.h
create mode 100644 arch/loongarch/include/uapi/asm/ucontext.h
create mode 100644 arch/loongarch/include/uapi/asm/unistd.h
rename arch/{h8300 => loongarch}/kernel/.gitignore (100%)
create mode 100644 arch/loongarch/kernel/Makefile
create mode 100644 arch/loongarch/kernel/access-helper.h
create mode 100644 arch/loongarch/kernel/acpi.c
create mode 100644 arch/loongarch/kernel/asm-offsets.c
create mode 100644 arch/loongarch/kernel/cacheinfo.c
create mode 100644 arch/loongarch/kernel/cpu-probe.c
create mode 100644 arch/loongarch/kernel/dma.c
create mode 100644 arch/loongarch/kernel/efi.c
create mode 100644 arch/loongarch/kernel/elf.c
create mode 100644 arch/loongarch/kernel/entry.S
create mode 100644 arch/loongarch/kernel/env.c
create mode 100644 arch/loongarch/kernel/fpu.S
create mode 100644 arch/loongarch/kernel/genex.S
create mode 100644 arch/loongarch/kernel/head.S
create mode 100644 arch/loongarch/kernel/idle.c
create mode 100644 arch/loongarch/kernel/inst.c
create mode 100644 arch/loongarch/kernel/io.c
create mode 100644 arch/loongarch/kernel/irq.c
create mode 100644 arch/loongarch/kernel/mem.c
create mode 100644 arch/loongarch/kernel/module-sections.c
create mode 100644 arch/loongarch/kernel/module.c
create mode 100644 arch/loongarch/kernel/numa.c
create mode 100644 arch/loongarch/kernel/proc.c
create mode 100644 arch/loongarch/kernel/process.c
create mode 100644 arch/loongarch/kernel/ptrace.c
create mode 100644 arch/loongarch/kernel/reset.c
create mode 100644 arch/loongarch/kernel/setup.c
create mode 100644 arch/loongarch/kernel/signal.c
create mode 100644 arch/loongarch/kernel/smp.c
create mode 100644 arch/loongarch/kernel/switch.S
create mode 100644 arch/loongarch/kernel/syscall.c
create mode 100644 arch/loongarch/kernel/time.c
create mode 100644 arch/loongarch/kernel/topology.c
create mode 100644 arch/loongarch/kernel/traps.c
create mode 100644 arch/loongarch/kernel/vdso.c
create mode 100644 arch/loongarch/kernel/vmlinux.lds.S
create mode 100644 arch/loongarch/lib/Makefile
create mode 100644 arch/loongarch/lib/clear_user.S
create mode 100644 arch/loongarch/lib/copy_user.S
create mode 100644 arch/loongarch/lib/delay.c
create mode 100644 arch/loongarch/lib/dump_tlb.c
create mode 100644 arch/loongarch/mm/Makefile
create mode 100644 arch/loongarch/mm/cache.c
create mode 100644 arch/loongarch/mm/extable.c
create mode 100644 arch/loongarch/mm/fault.c
create mode 100644 arch/loongarch/mm/hugetlbpage.c
create mode 100644 arch/loongarch/mm/init.c
create mode 100644 arch/loongarch/mm/ioremap.c
create mode 100644 arch/loongarch/mm/maccess.c
create mode 100644 arch/loongarch/mm/mmap.c
create mode 100644 arch/loongarch/mm/page.S
create mode 100644 arch/loongarch/mm/pgtable.c
create mode 100644 arch/loongarch/mm/tlb.c
create mode 100644 arch/loongarch/mm/tlbex.S
create mode 100644 arch/loongarch/pci/Makefile
rename arch/{s390/boot/compressed => loongarch/vdso}/.gitignore (54%)
create mode 100644 arch/loongarch/vdso/Makefile
create mode 100644 arch/loongarch/vdso/elf.S
create mode 100755 arch/loongarch/vdso/gen_vdso_offsets.sh
create mode 100644 arch/loongarch/vdso/sigreturn.S
create mode 100644 arch/loongarch/vdso/vdso.S
create mode 100644 arch/loongarch/vdso/vdso.lds.S
create mode 100644 arch/loongarch/vdso/vgettimeofday.c
delete mode 100644 arch/m68k/coldfire/dma.c
create mode 100644 arch/m68k/configs/virt_defconfig
delete mode 100644 arch/m68k/include/asm/export.h
create mode 100644 arch/m68k/include/asm/virt.h
create mode 100644 arch/m68k/include/uapi/asm/bootinfo-virt.h
mode change 100644 => 100755 arch/m68k/install.sh
create mode 100644 arch/m68k/virt/Makefile
create mode 100644 arch/m68k/virt/config.c
create mode 100644 arch/m68k/virt/ints.c
create mode 100644 arch/m68k/virt/platform.c
mode change 100644 => 100755 arch/nios2/boot/install.sh
delete mode 100644 arch/openrisc/include/asm/spinlock.h
delete mode 100644 arch/openrisc/include/asm/spinlock_types.h
mode change 100644 => 100755 arch/parisc/install.sh
delete mode 100644 arch/parisc/nm
mode change 100644 => 100755 arch/powerpc/boot/install.sh
delete mode 100644 arch/powerpc/include/asm/fsl_85xx_cache_sram.h
delete mode 100644 arch/powerpc/include/asm/slice.h
create mode 100644 arch/powerpc/kernel/rtas_entry.S
delete mode 100644 arch/powerpc/kvm/book3s_64_vio_hv.c
delete mode 100644 arch/powerpc/kvm/book3s_hv_rm_xive.c
delete mode 100644 arch/powerpc/kvm/book3s_xive_template.c
rename arch/powerpc/mm/{ => book3s64}/slice.c (91%)
rename arch/powerpc/mm/kasan/{kasan_init_32.c => init_32.c} (100%)
create mode 100644 arch/powerpc/mm/kasan/init_book3s_64.c
delete mode 100644 arch/powerpc/mm/mmap.c
create mode 100644 arch/powerpc/platforms/8xx/cpm1-ic.c
delete mode 100644 arch/powerpc/sysdev/fsl_85xx_cache_ctlr.h
delete mode 100644 arch/powerpc/sysdev/fsl_85xx_cache_sram.c
delete mode 100644 arch/powerpc/sysdev/fsl_85xx_l2ctlr.c
rename arch/riscv/boot/dts/microchip/{microchip-mpfs-fabric.dtsi => mpfs-icicle-kit-fabric.dtsi} (91%)
rename arch/riscv/boot/dts/microchip/{microchip-mpfs-icicle-kit.dts => mpfs-icicle-kit.dts} (95%)
create mode 100644 arch/riscv/boot/dts/microchip/mpfs-polarberry-fabric.dtsi
create mode 100644 arch/riscv/boot/dts/microchip/mpfs-polarberry.dts
rename arch/riscv/boot/dts/microchip/{microchip-mpfs.dtsi => mpfs.dtsi} (98%)
mode change 100644 => 100755 arch/riscv/boot/install.sh
delete mode 100644 arch/riscv/errata/alternative.c
create mode 100644 arch/riscv/errata/thead/Makefile
create mode 100644 arch/riscv/errata/thead/errata.c
create mode 100644 arch/riscv/include/asm/compat.h
create mode 100644 arch/riscv/include/asm/signal32.h
delete mode 100644 arch/riscv/include/asm/spinlock.h
delete mode 100644 arch/riscv/include/asm/spinlock_types.h
create mode 100644 arch/riscv/include/asm/xip_fixup.h
create mode 100644 arch/riscv/kernel/alternative.c
create mode 100644 arch/riscv/kernel/compat_signal.c
create mode 100644 arch/riscv/kernel/compat_syscall_table.c
create mode 100644 arch/riscv/kernel/compat_vdso/.gitignore
create mode 100644 arch/riscv/kernel/compat_vdso/Makefile
create mode 100644 arch/riscv/kernel/compat_vdso/compat_vdso.S
create mode 100644 arch/riscv/kernel/compat_vdso/compat_vdso.lds.S
create mode 100644 arch/riscv/kernel/compat_vdso/flush_icache.S
create mode 100755 arch/riscv/kernel/compat_vdso/gen_compat_vdso_offsets.sh
create mode 100644 arch/riscv/kernel/compat_vdso/getcpu.S
create mode 100644 arch/riscv/kernel/compat_vdso/note.S
create mode 100644 arch/riscv/kernel/compat_vdso/rt_sigreturn.S
create mode 100644 arch/riscv/kernel/elf_kexec.c
create mode 100644 arch/riscv/kernel/machine_kexec_file.c
delete mode 100644 arch/riscv/kvm/tlb.S
create mode 100644 arch/riscv/kvm/tlb.c
create mode 100644 arch/riscv/purgatory/.gitignore
create mode 100644 arch/riscv/purgatory/Makefile
create mode 100644 arch/riscv/purgatory/entry.S
create mode 100644 arch/riscv/purgatory/purgatory.c
rename arch/s390/boot/{compressed => }/clz_ctz.c (100%)
delete mode 100644 arch/s390/boot/compressed/Makefile
rename arch/s390/boot/{compressed => }/decompressor.c (100%)
rename arch/s390/boot/{compressed => }/decompressor.h (100%)
mode change 100644 => 100755 arch/s390/boot/install.sh
create mode 100644 arch/s390/boot/ipl_data.c
rename arch/s390/boot/{compressed => }/vmlinux.lds.S (94%)
delete mode 100644 arch/s390/include/asm/livepatch.h
create mode 100644 arch/s390/include/asm/pai.h
create mode 100644 arch/s390/include/uapi/asm/uvdevice.h
rename arch/s390/kernel/{base.S => earlypgm.S} (52%)
create mode 100644 arch/s390/kernel/perf_pai_crypto.c
mode change 100644 => 100755 arch/sparc/boot/install.sh
create mode 100644 arch/x86/boot/compressed/efi.c
create mode 100644 arch/x86/boot/compressed/efi.h
create mode 100644 arch/x86/boot/compressed/tdcall.S
create mode 100644 arch/x86/boot/compressed/tdx.c
create mode 100644 arch/x86/boot/compressed/tdx.h
mode change 100644 => 100755 arch/x86/boot/install.sh
create mode 100644 arch/x86/boot/io.h
create mode 100644 arch/x86/boot/msr.h
rename {drivers/staging/vme => arch/x86/coco/tdx}/Makefile (58%)
create mode 100644 arch/x86/coco/tdx/tdcall.S
create mode 100644 arch/x86/coco/tdx/tdx.c
create mode 100644 arch/x86/events/amd/brs.c
delete mode 100644 arch/x86/ia32/ia32_aout.c
create mode 100644 arch/x86/include/asm/cpuid.h
delete mode 100644 arch/x86/include/asm/iommu_table.h
create mode 100644 arch/x86/include/asm/kvm-x86-pmu-ops.h
delete mode 100644 arch/x86/include/asm/livepatch.h
delete mode 100644 arch/x86/include/asm/mmx.h
create mode 100644 arch/x86/include/asm/shared/io.h
create mode 100644 arch/x86/include/asm/shared/msr.h
create mode 100644 arch/x86/include/asm/shared/tdx.h
delete mode 100644 arch/x86/include/asm/swiotlb.h
create mode 100644 arch/x86/include/asm/tdx.h
delete mode 100644 arch/x86/include/asm/xen/page-coherent.h
delete mode 100644 arch/x86/kernel/pci-iommu_table.c
delete mode 100644 arch/x86/kernel/pci-swiotlb.c
delete mode 100644 arch/x86/lib/mmx_32.c
create mode 100644 arch/x86/mm/pgprot.c
delete mode 100644 arch/x86/mm/setup_nx.c
create mode 100644 arch/x86/virt/vmx/tdx/tdxcall.S
delete mode 100644 arch/x86/xen/pci-swiotlb-xen.c
create mode 100644 arch/xtensa/kernel/hibernate.c
create mode 100644 arch/xtensa/lib/kcsan-stubs.c
create mode 100644 block/blk-cgroup-fc-appid.c
rename {lib/crypto => crypto}/sm3.c (100%)
rename {lib/crypto => crypto}/sm4.c (94%)
delete mode 100644 drivers/atm/ambassador.c
delete mode 100644 drivers/atm/ambassador.h
delete mode 100644 drivers/atm/firestream.c
delete mode 100644 drivers/atm/firestream.h
delete mode 100644 drivers/atm/horizon.c
delete mode 100644 drivers/atm/horizon.h
delete mode 100644 drivers/atm/uPD98401.h
delete mode 100644 drivers/atm/uPD98402.c
delete mode 100644 drivers/atm/uPD98402.h
delete mode 100644 drivers/atm/zatm.c
delete mode 100644 drivers/atm/zatm.h
create mode 100644 drivers/base/firmware_loader/sysfs.c
create mode 100644 drivers/base/firmware_loader/sysfs.h
create mode 100644 drivers/base/firmware_loader/sysfs_upload.c
create mode 100644 drivers/base/firmware_loader/sysfs_upload.h
create mode 100644 drivers/base/physical_location.c
create mode 100644 drivers/base/physical_location.h
delete mode 100644 drivers/block/loop.h
create mode 100644 drivers/bus/mhi/ep/Kconfig
create mode 100644 drivers/bus/mhi/ep/Makefile
create mode 100644 drivers/bus/mhi/ep/internal.h
create mode 100644 drivers/bus/mhi/ep/main.c
create mode 100644 drivers/bus/mhi/ep/mmio.c
create mode 100644 drivers/bus/mhi/ep/ring.c
create mode 100644 drivers/bus/mhi/ep/sm.c
create mode 100644 drivers/bus/qcom-ssc-block-bus.c
create mode 100644 drivers/char/hw_random/mpfs-rng.c
create mode 100644 drivers/clk/clk-en7523.c
delete mode 100644 drivers/clk/h8300/Makefile
delete mode 100644 drivers/clk/h8300/clk-div.c
delete mode 100644 drivers/clk/h8300/clk-h8s2678.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-apmixedsys.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-cam.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-img.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-imp_iic_wrap.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-infra_ao.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-ipe.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-mcu.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-mdp.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-mfg.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-mm.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-topckgen.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-vdec.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-venc.c
create mode 100644 drivers/clk/mediatek/clk-mt8186-wpe.c
create mode 100644 drivers/clk/pxa/clk-pxa2xx.h
create mode 100644 drivers/clk/qcom/gcc-sc8280xp.c
create mode 100644 drivers/clk/qcom/lpassaudiocc-sc7280.c
create mode 100644 drivers/clk/qcom/lpasscorecc-sc7280.c
create mode 100644 drivers/clk/renesas/r8a779g0-cpg-mssr.c
create mode 100644 drivers/clk/renesas/r9a07g043-cpg.c
create mode 100644 drivers/clk/renesas/r9a09g011-cpg.c
create mode 100644 drivers/clk/samsung/clk-exynosautov9.c
create mode 100644 drivers/clk/stm32/Makefile
create mode 100644 drivers/clk/stm32/clk-stm32-core.c
create mode 100644 drivers/clk/stm32/clk-stm32-core.h
create mode 100644 drivers/clk/stm32/clk-stm32mp13.c
create mode 100644 drivers/clk/stm32/reset-stm32.c
create mode 100644 drivers/clk/stm32/reset-stm32.h
create mode 100644 drivers/clk/stm32/stm32mp13_rcc.h
delete mode 100644 drivers/clocksource/h8300_timer16.c
delete mode 100644 drivers/clocksource/h8300_timer8.c
delete mode 100644 drivers/clocksource/h8300_tpu.c
create mode 100644 drivers/clocksource/timer-goldfish.c
create mode 100644 drivers/clocksource/timer-gxp.c
create mode 100644 drivers/crypto/caam/blob_gen.c
create mode 100644 drivers/crypto/caam/caamprng.c
create mode 100644 drivers/crypto/qat/qat_common/qat_algs_send.c
create mode 100644 drivers/crypto/qat/qat_common/qat_algs_send.h
create mode 100644 drivers/cxl/core/suspend.c
create mode 100644 drivers/dma/dw/rzn1-dmamux.c
create mode 100644 drivers/dma/tegra186-gpc-dma.c
create mode 100644 drivers/firmware/arm_scmi/protocols.h
create mode 100644 drivers/firmware/mtk-adsp-ipc.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_imu.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_lsdma.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_lsdma.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_mes_ctx.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/athub_v3_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/athub_v3_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/clearstate_gfx11.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/gmc_v11_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/hdp_v5_2.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/hdp_v5_2.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/hdp_v6_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/hdp_v6_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/ih_v6_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/imu_v11_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/imu_v11_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/mes_v11_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/nbio_v4_3.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/nbio_v7_7.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/nbio_v7_7.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/sdma_v6_0.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/sdma_v6_0_0_pkt_open.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/smuio_v13_0_6.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/smuio_v13_0_6.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/soc21.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/soc21.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/vcn_sw_ring.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/vcn_sw_ring.h
create mode 100644 drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/vcn_v4_0.h
create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_v11.c
create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c
create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn30/dcn30_fpu.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/athub/athub_3_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/athub/athub_3_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/gc/gc_11_0_0_default.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/gc/gc_11_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/gc/gc_11_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_5_2_1_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_5_2_1_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_6_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_6_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/lsdma/lsdma_6_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/lsdma/lsdma_6_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_3_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_3_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_3_0_2_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_3_0_2_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_13_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_13_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/nbio/nbio_4_3_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/nbio/nbio_4_3_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/nbio/nbio_7_7_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/nbio/nbio_7_7_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/oss/osssys_6_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/oss/osssys_6_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/smuio/smuio_13_0_6_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/smuio/smuio_13_0_6_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/vcn/vcn_4_0_0_offset.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/vcn/vcn_4_0_0_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/ivsrcid/gfx/irqsrcs_gfx_11_0_0.h
create mode 100644 drivers/gpu/drm/amd/include/ivsrcid/vcn/irqsrcs_vcn_4_0.h
rename drivers/gpu/drm/amd/{amdgpu => include}/mes_api_def.h (68%)
create mode 100644 drivers/gpu/drm/amd/include/mes_v11_api_def.h
create mode 100644 drivers/gpu/drm/amd/include/soc21_enum.h
create mode 100644 drivers/gpu/drm/amd/include/v11_structs.h
create mode 100644 drivers/gpu/drm/amd/pm/inc/smu_v13_0_0_pptable.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_0.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_4.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_0_ppsmc.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_4_pmfw.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_4_ppsmc.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_7_ppsmc.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0_7_pptable.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.h
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c
create mode 100644 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.h
create mode 100644 drivers/gpu/drm/bridge/imx/Kconfig
create mode 100644 drivers/gpu/drm/bridge/imx/Makefile
create mode 100644 drivers/gpu/drm/bridge/imx/imx-ldb-helper.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx-ldb-helper.h
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c
create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c
create mode 100644 drivers/gpu/drm/i915/display/intel_display_power_map.c
create mode 100644 drivers/gpu/drm/i915/display/intel_display_power_map.h
delete mode 100644 drivers/gpu/drm/i915/gvt/gvt.c
delete mode 100644 drivers/gpu/drm/i915/gvt/hypercall.h
delete mode 100644 drivers/gpu/drm/i915/gvt/mpt.h
create mode 100644 drivers/gpu/drm/i915/intel_gvt_mmio_table.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.h
delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h
delete mode 100644 drivers/gpu/drm/msm/disp/mdp5/mdp5_mdss.c
delete mode 100644 drivers/gpu/drm/msm/edp/edp.h
delete mode 100644 drivers/gpu/drm/msm/edp/edp_ctrl.c
create mode 100644 drivers/gpu/drm/msm/msm_mdss.c
delete mode 100644 drivers/gpu/drm/radeon/cik_blit_shaders.c
create mode 100644 drivers/gpu/host1x/context_bus.c
create mode 100644 drivers/hid/hid-megaworld.c
create mode 100644 drivers/hte/Kconfig
create mode 100644 drivers/hte/Makefile
create mode 100644 drivers/hte/hte-tegra194-test.c
create mode 100644 drivers/hte/hte-tegra194.c
create mode 100644 drivers/hte/hte.c
create mode 100644 drivers/hwmon/lan966x-hwmon.c
rename drivers/hwmon/{nct6775.c => nct6775-core.c} (66%)
create mode 100644 drivers/hwmon/nct6775-i2c.c
create mode 100644 drivers/hwmon/nct6775-platform.c
create mode 100644 drivers/hwmon/nct6775.h
create mode 100644 drivers/hwmon/pmbus/xdpe152c4.c
create mode 100644 drivers/infiniband/hw/mlx5/umr.c
create mode 100644 drivers/infiniband/hw/mlx5/umr.h
create mode 100644 drivers/input/joystick/sensehat-joystick.c
create mode 100644 drivers/input/misc/iqs7222.c
create mode 100644 drivers/interconnect/qcom/sc8280xp.c
create mode 100644 drivers/interconnect/qcom/sc8280xp.h
create mode 100644 drivers/interconnect/qcom/sdx65.c
create mode 100644 drivers/interconnect/qcom/sdx65.h
delete mode 100644 drivers/iommu/mtk_iommu.h
delete mode 100644 drivers/irqchip/irq-renesas-h8300h.c
delete mode 100644 drivers/irqchip/irq-renesas-h8s.c
create mode 100644 drivers/leds/rgb/Kconfig
create mode 100644 drivers/leds/rgb/Makefile
create mode 100644 drivers/leds/rgb/leds-pwm-multicolor.c
create mode 100644 drivers/leds/rgb/leds-qcom-lpg.c
create mode 100644 drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_common.c
create mode 100644 drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_common.h
create mode 100644 drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_multi_if.c
create mode 100644 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp8_req_if.c
create mode 100644 drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c
create mode 100644 drivers/memory/tegra/tegra234.c
create mode 100644 drivers/misc/habanalabs/common/memory_mgr.c
delete mode 100644 drivers/mtd/maps/ixp4xx.c
rename drivers/mtd/nand/{raw/mtk_ecc.c => ecc-mtk.c} (98%)
create mode 100644 drivers/mtd/nand/spi/xtx.c
delete mode 100644 drivers/mtd/spi-nor/controllers/aspeed-smc.c
create mode 100644 drivers/mtd/spi-nor/debugfs.c
delete mode 100644 drivers/net/appletalk/ltpc.c
delete mode 100644 drivers/net/appletalk/ltpc.h
create mode 100644 drivers/net/can/ctucanfd/Kconfig
create mode 100644 drivers/net/can/ctucanfd/Makefile
create mode 100644 drivers/net/can/ctucanfd/ctucanfd.h
create mode 100644 drivers/net/can/ctucanfd/ctucanfd_base.c
create mode 100644 drivers/net/can/ctucanfd/ctucanfd_kframe.h
create mode 100644 drivers/net/can/ctucanfd/ctucanfd_kregs.h
create mode 100644 drivers/net/can/ctucanfd/ctucanfd_pci.c
create mode 100644 drivers/net/can/ctucanfd/ctucanfd_platform.c
delete mode 100644 drivers/net/can/led.c
delete mode 100644 drivers/net/ethernet/amd/ni65.c
delete mode 100644 drivers/net/ethernet/amd/ni65.h
delete mode 100644 drivers/net/ethernet/dec/tulip/de4x5.c
delete mode 100644 drivers/net/ethernet/dec/tulip/de4x5.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/Kconfig
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/Makefile
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_cn9k_pf.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_config.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_mbox.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_mbox.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_ethtool.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_main.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_main.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_regs_cn9k_pf.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_rx.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_rx.h
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_tx.c
create mode 100644 drivers/net/ethernet/marvell/octeon_ep/octep_tx.h
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed.c
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed.h
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed_debugfs.c
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed_ops.c
create mode 100644 drivers/net/ethernet/mediatek/mtk_wed_regs.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/accel.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec_offload.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec_offload.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/tls.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/accel/tls.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.c
rename drivers/net/ethernet/mellanox/mlx5/core/en_accel/{tls_stats.c => ktls_stats.c} (63%)
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/debugfs.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.h
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/core_linecards.c
create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c
delete mode 100644 drivers/net/ethernet/qlogic/qed/qed_nvmetcp_ip_services.c
create mode 100644 drivers/net/ethernet/sfc/ef100_sriov.c
create mode 100644 drivers/net/ethernet/sfc/ef100_sriov.h
create mode 100644 drivers/net/ethernet/sfc/siena/Kconfig
create mode 100644 drivers/net/ethernet/sfc/siena/Makefile
create mode 100644 drivers/net/ethernet/sfc/siena/bitfield.h
create mode 100644 drivers/net/ethernet/sfc/siena/efx.c
create mode 100644 drivers/net/ethernet/sfc/siena/efx.h
create mode 100644 drivers/net/ethernet/sfc/siena/efx_channels.c
create mode 100644 drivers/net/ethernet/sfc/siena/efx_channels.h
create mode 100644 drivers/net/ethernet/sfc/siena/efx_common.c
create mode 100644 drivers/net/ethernet/sfc/siena/efx_common.h
create mode 100644 drivers/net/ethernet/sfc/siena/enum.h
create mode 100644 drivers/net/ethernet/sfc/siena/ethtool.c
create mode 100644 drivers/net/ethernet/sfc/siena/ethtool_common.c
create mode 100644 drivers/net/ethernet/sfc/siena/ethtool_common.h
rename drivers/net/ethernet/sfc/{ => siena}/farch.c (97%)
create mode 100644 drivers/net/ethernet/sfc/siena/farch_regs.h
create mode 100644 drivers/net/ethernet/sfc/siena/filter.h
create mode 100644 drivers/net/ethernet/sfc/siena/io.h
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi.c
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi.h
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_mon.c
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_pcol.h
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_port.c
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_port.h
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_port_common.c
create mode 100644 drivers/net/ethernet/sfc/siena/mcdi_port_common.h
create mode 100644 drivers/net/ethernet/sfc/siena/mtd.c
create mode 100644 drivers/net/ethernet/sfc/siena/net_driver.h
create mode 100644 drivers/net/ethernet/sfc/siena/nic.c
create mode 100644 drivers/net/ethernet/sfc/siena/nic.h
create mode 100644 drivers/net/ethernet/sfc/siena/nic_common.h
create mode 100644 drivers/net/ethernet/sfc/siena/ptp.c
create mode 100644 drivers/net/ethernet/sfc/siena/ptp.h
create mode 100644 drivers/net/ethernet/sfc/siena/rx.c
create mode 100644 drivers/net/ethernet/sfc/siena/rx_common.c
create mode 100644 drivers/net/ethernet/sfc/siena/rx_common.h
create mode 100644 drivers/net/ethernet/sfc/siena/selftest.c
create mode 100644 drivers/net/ethernet/sfc/siena/selftest.h
rename drivers/net/ethernet/sfc/{ => siena}/siena.c (89%)
rename drivers/net/ethernet/sfc/{ => siena}/siena_sriov.c (98%)
rename drivers/net/ethernet/sfc/{ => siena}/siena_sriov.h (94%)
create mode 100644 drivers/net/ethernet/sfc/siena/sriov.h
create mode 100644 drivers/net/ethernet/sfc/siena/tx.c
create mode 100644 drivers/net/ethernet/sfc/siena/tx.h
create mode 100644 drivers/net/ethernet/sfc/siena/tx_common.c
create mode 100644 drivers/net/ethernet/sfc/siena/tx_common.h
create mode 100644 drivers/net/ethernet/sfc/siena/vfdi.h
create mode 100644 drivers/net/ethernet/sfc/siena/workarounds.h
create mode 100644 drivers/net/ethernet/sunplus/Kconfig
create mode 100644 drivers/net/ethernet/sunplus/Makefile
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_define.h
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_desc.c
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_desc.h
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_driver.c
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_int.c
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_int.h
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_mac.c
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_mac.h
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_mdio.c
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_mdio.h
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_phy.c
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_phy.h
create mode 100644 drivers/net/ethernet/sunplus/spl2sw_register.h
delete mode 100644 drivers/net/hamradio/dmascc.c
create mode 100644 drivers/net/phy/adin1100.c
create mode 100644 drivers/net/phy/dp83td510.c
delete mode 100644 drivers/net/wan/cosa.c
delete mode 100644 drivers/net/wan/cosa.h
delete mode 100644 drivers/net/wan/hostess_sv11.c
delete mode 100644 drivers/net/wan/lmc/Makefile
delete mode 100644 drivers/net/wan/lmc/lmc.h
delete mode 100644 drivers/net/wan/lmc/lmc_debug.c
delete mode 100644 drivers/net/wan/lmc/lmc_debug.h
delete mode 100644 drivers/net/wan/lmc/lmc_ioctl.h
delete mode 100644 drivers/net/wan/lmc/lmc_main.c
delete mode 100644 drivers/net/wan/lmc/lmc_media.c
delete mode 100644 drivers/net/wan/lmc/lmc_proto.c
delete mode 100644 drivers/net/wan/lmc/lmc_proto.h
delete mode 100644 drivers/net/wan/lmc/lmc_var.h
delete mode 100644 drivers/net/wan/sealevel.c
delete mode 100644 drivers/net/wan/z85230.c
delete mode 100644 drivers/net/wan/z85230.h
create mode 100644 drivers/net/wireless/ath/ath11k/pcic.c
create mode 100644 drivers/net/wireless/ath/ath11k/pcic.h
create mode 100644 drivers/net/wireless/purelifi/Kconfig
create mode 100644 drivers/net/wireless/purelifi/Makefile
create mode 100644 drivers/net/wireless/purelifi/plfxlc/Kconfig
create mode 100644 drivers/net/wireless/purelifi/plfxlc/Makefile
create mode 100644 drivers/net/wireless/purelifi/plfxlc/chip.c
create mode 100644 drivers/net/wireless/purelifi/plfxlc/chip.h
create mode 100644 drivers/net/wireless/purelifi/plfxlc/firmware.c
create mode 100644 drivers/net/wireless/purelifi/plfxlc/intf.h
create mode 100644 drivers/net/wireless/purelifi/plfxlc/mac.c
create mode 100644 drivers/net/wireless/purelifi/plfxlc/mac.h
create mode 100644 drivers/net/wireless/purelifi/plfxlc/usb.c
create mode 100644 drivers/net/wireless/purelifi/plfxlc/usb.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852c_rfk_table.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852c_rfk_table.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852c_table.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852c_table.h
create mode 100644 drivers/net/wireless/silabs/Kconfig
create mode 100644 drivers/net/wireless/silabs/Makefile
rename drivers/{staging => net/wireless/silabs}/wfx/Kconfig (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/Makefile (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/bh.c (98%)
rename drivers/{staging => net/wireless/silabs}/wfx/bh.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/bus.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/bus_sdio.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/bus_spi.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/data_rx.c (93%)
rename drivers/{staging => net/wireless/silabs}/wfx/data_rx.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/data_tx.c (99%)
rename drivers/{staging => net/wireless/silabs}/wfx/data_tx.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/debug.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/debug.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/fwio.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/fwio.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_api_cmd.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_api_general.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_api_mib.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_rx.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_rx.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_tx.c (97%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_tx.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_tx_mib.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hif_tx_mib.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hwio.c (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/hwio.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/key.c (99%)
rename drivers/{staging => net/wireless/silabs}/wfx/key.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/main.c (98%)
rename drivers/{staging => net/wireless/silabs}/wfx/main.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/queue.c (98%)
rename drivers/{staging => net/wireless/silabs}/wfx/queue.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/scan.c (92%)
rename drivers/{staging => net/wireless/silabs}/wfx/scan.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/sta.c (89%)
rename drivers/{staging => net/wireless/silabs}/wfx/sta.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/traces.h (100%)
rename drivers/{staging => net/wireless/silabs}/wfx/wfx.h (95%)
create mode 100644 drivers/net/wwan/t7xx/Makefile
create mode 100644 drivers/net/wwan/t7xx/t7xx_cldma.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_cldma.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_dpmaif.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_dpmaif.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_cldma.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_cldma.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_mhccif.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_mhccif.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_modem_ops.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_modem_ops.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_netdev.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_netdev.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_pci.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_pci.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_pcie_mac.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_pcie_mac.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_port.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_port_ctrl_msg.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_port_proxy.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_port_proxy.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_port_wwan.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_reg.h
create mode 100644 drivers/net/wwan/t7xx/t7xx_state_monitor.c
create mode 100644 drivers/net/wwan/t7xx/t7xx_state_monitor.h
create mode 100644 drivers/nvme/host/apple.c
create mode 100644 drivers/nvmem/apple-efuses.c
create mode 100644 drivers/of/unittest-data/overlay_16.dts
create mode 100644 drivers/of/unittest-data/overlay_17.dts
create mode 100644 drivers/of/unittest-data/overlay_18.dts
create mode 100644 drivers/of/unittest-data/overlay_19.dts
create mode 100644 drivers/of/unittest-data/overlay_20.dts
create mode 100644 drivers/perf/hisilicon/hisi_uncore_cpa_pmu.c
create mode 100644 drivers/pinctrl/freescale/pinctrl-imxrt1170.c
create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt6795.c
create mode 100644 drivers/pinctrl/mediatek/pinctrl-mtk-mt6795.h
create mode 100644 drivers/pinctrl/mvebu/pinctrl-ac5.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-lpass-lpi.h
create mode 100644 drivers/pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c
create mode 100644 drivers/pinctrl/ralink/pinctrl-ralink.c
rename drivers/pinctrl/ralink/{pinmux.h => pinctrl-ralink.h} (75%)
delete mode 100644 drivers/pinctrl/ralink/pinctrl-rt288x.c
create mode 100644 drivers/platform/chrome/chromeos_acpi.c
create mode 100644 drivers/platform/mellanox/nvsw-sn2201.c
create mode 100644 drivers/platform/x86/intel/ifs/Kconfig
create mode 100644 drivers/platform/x86/intel/ifs/Makefile
create mode 100644 drivers/platform/x86/intel/ifs/core.c
create mode 100644 drivers/platform/x86/intel/ifs/ifs.h
create mode 100644 drivers/platform/x86/intel/ifs/load.c
create mode 100644 drivers/platform/x86/intel/ifs/runtest.c
create mode 100644 drivers/platform/x86/intel/ifs/sysfs.c
create mode 100644 drivers/platform/x86/winmate-fm07-keys.c
create mode 100644 drivers/pwm/pwm-sunplus.c
create mode 100644 drivers/pwm/pwm-xilinx.c
create mode 100644 drivers/regulator/rt5759-regulator.c
create mode 100644 drivers/regulator/sm5703-regulator.c
create mode 100644 drivers/rtc/rtc-rzn1.c
create mode 100644 drivers/s390/char/uvdevice.c
create mode 100644 drivers/scsi/lpfc/lpfc_vmid.c
create mode 100644 drivers/scsi/mpi3mr/mpi3mr_app.c
delete mode 100644 drivers/scsi/ufs/Kconfig
create mode 100644 drivers/soc/apple/rtkit-crashlog.c
create mode 100644 drivers/soc/apple/rtkit-internal.h
create mode 100644 drivers/soc/apple/rtkit.c
create mode 100644 drivers/soc/apple/sart.c
create mode 100644 drivers/soc/imx/imx8mp-blk-ctrl.c
create mode 100644 drivers/soc/mediatek/mt8195-mmsys.h
rename {arch/arm/plat-pxa => drivers/soc/pxa}/Kconfig (83%)
rename {arch/arm/plat-pxa => drivers/soc/pxa}/Makefile (51%)
rename {arch/arm/plat-pxa => drivers/soc/pxa}/mfp.c (99%)
rename {arch/arm/plat-pxa => drivers/soc/pxa}/ssp.c (100%)
create mode 100644 drivers/soc/renesas/r8a779g0-sysc.c
create mode 100644 drivers/spi/spi-aspeed-smc.c
create mode 100644 drivers/spi/spi-mtk-snfi.c
delete mode 100644 drivers/staging/r8188eu/include/rtw_debug.h
delete mode 100644 drivers/staging/r8188eu/include/usb_vendor_req.h
delete mode 100644 drivers/staging/rtl8723bs/include/rtw_ioctl.h
delete mode 100644 drivers/staging/unisys/Documentation/ABI/sysfs-platform-visorchipset
delete mode 100644 drivers/staging/unisys/Documentation/overview.txt
delete mode 100644 drivers/staging/unisys/Kconfig
delete mode 100644 drivers/staging/unisys/MAINTAINERS
delete mode 100644 drivers/staging/unisys/Makefile
delete mode 100644 drivers/staging/unisys/TODO
delete mode 100644 drivers/staging/unisys/include/iochannel.h
delete mode 100644 drivers/staging/unisys/visorhba/Kconfig
delete mode 100644 drivers/staging/unisys/visorhba/Makefile
delete mode 100644 drivers/staging/unisys/visorhba/visorhba_main.c
delete mode 100644 drivers/staging/unisys/visorinput/Kconfig
delete mode 100644 drivers/staging/unisys/visorinput/Makefile
delete mode 100644 drivers/staging/unisys/visorinput/visorinput.c
delete mode 100644 drivers/staging/unisys/visornic/Kconfig
delete mode 100644 drivers/staging/unisys/visornic/Makefile
delete mode 100644 drivers/staging/unisys/visornic/visornic_main.c
delete mode 100644 drivers/staging/vc04_services/bcm2835-audio/TODO
rename drivers/staging/{vme/devices => vme_user}/Kconfig (93%)
rename drivers/staging/{vme/devices => vme_user}/Makefile (100%)
rename drivers/staging/{vme/devices => vme_user}/vme_user.c (99%)
rename drivers/staging/{vme/devices => vme_user}/vme_user.h (100%)
delete mode 100644 drivers/staging/vt6655/tmacro.h
delete mode 100644 drivers/staging/wfx/TODO
create mode 100644 drivers/thermal/k3_j72xx_bandgap.c
delete mode 100644 drivers/tty/serial/amba-pl011.h
delete mode 100644 drivers/tty/serial/icom.h
delete mode 100644 drivers/tty/serial/pic32_uart.h
create mode 100644 drivers/ufs/Kconfig
create mode 100644 drivers/ufs/Makefile
create mode 100644 drivers/ufs/core/Kconfig
create mode 100644 drivers/ufs/core/Makefile
rename drivers/{scsi/ufs => ufs/core}/ufs-debugfs.c (99%)
rename drivers/{scsi/ufs => ufs/core}/ufs-debugfs.h (100%)
rename drivers/{scsi/ufs => ufs/core}/ufs-fault-injection.c (100%)
rename drivers/{scsi/ufs => ufs/core}/ufs-fault-injection.h (100%)
rename drivers/{scsi/ufs => ufs/core}/ufs-hwmon.c (98%)
rename drivers/{scsi/ufs => ufs/core}/ufs-sysfs.c (99%)
rename drivers/{scsi/ufs => ufs/core}/ufs-sysfs.h (95%)
rename drivers/{scsi/ufs => ufs/core}/ufs_bsg.c (97%)
rename drivers/{scsi/ufs => ufs/core}/ufs_bsg.h (77%)
rename drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.c (99%)
rename drivers/{scsi/ufs => ufs/core}/ufshcd-crypto.h (94%)
create mode 100644 drivers/ufs/core/ufshcd-priv.h
rename drivers/{scsi/ufs => ufs/core}/ufshcd.c (98%)
rename drivers/{scsi/ufs => ufs/core}/ufshpb.c (94%)
rename drivers/{scsi/ufs => ufs/core}/ufshpb.h (96%)
create mode 100644 drivers/ufs/host/Kconfig
rename drivers/{scsi/ufs => ufs/host}/Makefile (56%)
rename drivers/{scsi/ufs => ufs/host}/cdns-pltfrm.c (99%)
rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210-pci.c (98%)
rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210-pltfrm.c (98%)
rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.c (99%)
rename drivers/{scsi/ufs => ufs/host}/tc-dwc-g210.h (95%)
rename drivers/{scsi/ufs => ufs/host}/ti-j721e-ufs.c (96%)
rename drivers/{scsi/ufs => ufs/host}/ufs-exynos.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufs-exynos.h (97%)
rename drivers/{scsi/ufs => ufs/host}/ufs-hisi.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufs-hisi.h (100%)
rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek-trace.h (93%)
rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek.c (97%)
rename drivers/{scsi/ufs => ufs/host}/ufs-mediatek.h (100%)
rename drivers/{scsi/ufs => ufs/host}/ufs-qcom-ice.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufs-qcom.c (96%)
rename drivers/{scsi/ufs => ufs/host}/ufs-qcom.h (98%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.c (98%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-dwc.h (95%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-pci.c (99%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.c (92%)
rename drivers/{scsi/ufs => ufs/host}/ufshcd-pltfrm.h (98%)
rename drivers/{scsi/ufs => ufs/host}/ufshci-dwc.h (100%)
create mode 100644 drivers/usb/dwc3/dwc3-am62.c
create mode 100644 drivers/usb/typec/mux/fsa4480.c
delete mode 100644 drivers/vfio/mdev/vfio_mdev.c
rename {arch/arm/mach-omap1 => drivers/video/fbdev/omap}/lcd_dma.c (98%)
rename {arch/arm/mach-omap1/include/mach => drivers/video/fbdev/omap}/lcd_dma.h (98%)
rename arch/arm/mach-pxa/include/mach/regs-lcd.h => drivers/video/fbdev/pxa3xx-regs.h (90%)
create mode 100644 drivers/virt/coco/efi_secret/Kconfig
create mode 100644 drivers/virt/coco/efi_secret/Makefile
create mode 100644 drivers/virt/coco/efi_secret/efi_secret.c
create mode 100644 drivers/virt/coco/sev-guest/Kconfig
create mode 100644 drivers/virt/coco/sev-guest/Makefile
create mode 100644 drivers/virt/coco/sev-guest/sev-guest.c
create mode 100644 drivers/virt/coco/sev-guest/sev-guest.h
delete mode 100644 drivers/visorbus/Kconfig
delete mode 100644 drivers/visorbus/Makefile
delete mode 100644 drivers/visorbus/controlvmchannel.h
delete mode 100644 drivers/visorbus/vbuschannel.h
delete mode 100644 drivers/visorbus/visorbus_main.c
delete mode 100644 drivers/visorbus/visorbus_private.h
delete mode 100644 drivers/visorbus/visorchannel.c
delete mode 100644 drivers/visorbus/visorchipset.c
create mode 100644 drivers/watchdog/gxp-wdt.c
create mode 100644 drivers/watchdog/rzn1_wdt.c
create mode 100644 drivers/watchdog/sunplus_wdt.c
create mode 100644 drivers/xen/grant-dma-iommu.c
create mode 100644 drivers/xen/grant-dma-ops.c
create mode 100644 fs/cachefiles/ondemand.c
create mode 100644 fs/erofs/fscache.c
create mode 100644 fs/ext4/crypto.c
create mode 100644 fs/xfs/xfs_attr_item.c
create mode 100644 fs/xfs/xfs_attr_item.h
create mode 100644 fs/xfs/xfs_xattr.h
create mode 100644 fs/zonefs/sysfs.c
create mode 100644 include/asm-generic/platform-feature.h
create mode 100644 include/asm-generic/spinlock_types.h
create mode 100644 include/clocksource/timer-goldfish.h
create mode 100644 include/clocksource/timer-xilinx.h
create mode 100644 include/dt-bindings/clock/en7523-clk.h
create mode 100644 include/dt-bindings/clock/mt8186-clk.h
create mode 100644 include/dt-bindings/clock/qcom,gcc-sc8280xp.h
create mode 100644 include/dt-bindings/clock/qcom,lpassaudiocc-sc7280.h
create mode 100644 include/dt-bindings/clock/qcom,lpasscorecc-sc7280.h
create mode 100644 include/dt-bindings/clock/r8a779g0-cpg-mssr.h
create mode 100644 include/dt-bindings/clock/r9a07g043-cpg.h
create mode 100644 include/dt-bindings/clock/r9a09g011-cpg.h
create mode 100644 include/dt-bindings/clock/samsung,exynosautov9.h
create mode 100644 include/dt-bindings/clock/ste-db8500-clkout.h
create mode 100644 include/dt-bindings/clock/stm32mp13-clks.h
create mode 100644 include/dt-bindings/gce/mt8186-gce.h
create mode 100644 include/dt-bindings/interconnect/qcom,sc8280xp.h
create mode 100644 include/dt-bindings/interconnect/qcom,sdx65.h
create mode 100644 include/dt-bindings/memory/mt8186-memory-port.h
create mode 100644 include/dt-bindings/memory/mt8195-memory-port.h
create mode 100644 include/dt-bindings/mfd/cros_ec.h
create mode 100644 include/dt-bindings/pinctrl/mt6795-pinfunc.h
create mode 100644 include/dt-bindings/power/r8a779g0-sysc.h
create mode 100644 include/dt-bindings/reset/amlogic,meson-s4-reset.h
create mode 100644 include/dt-bindings/reset/mt7986-resets.h
create mode 100644 include/dt-bindings/reset/mt8186-resets.h
create mode 100644 include/dt-bindings/reset/stm32mp13-resets.h
create mode 100644 include/dt-bindings/sound/cs35l45.h
create mode 100644 include/keys/trusted_caam.h
create mode 100644 include/kunit/resource.h
delete mode 100644 include/linux/can/led.h
create mode 100644 include/linux/clk/pxa.h
rename include/linux/{platform_data/dma-imx.h => dma/imx-dma.h} (67%)
create mode 100644 include/linux/export-internal.h
create mode 100644 include/linux/firmware/mediatek/mtk-adsp-ipc.h
create mode 100644 include/linux/host1x_context_bus.h
create mode 100644 include/linux/hte.h
delete mode 100644 include/linux/irqchip/irq-ixp4xx.h
create mode 100644 include/linux/mhi_ep.h
delete mode 100644 include/linux/mlx5/accel.h
rename drivers/mtd/nand/raw/mtk_ecc.h => include/linux/mtd/nand-ecc-mtk.h (100%)
create mode 100644 include/linux/phy/phy-lvds.h
create mode 100644 include/linux/platform-feature.h
create mode 100644 include/linux/platform_data/asoc-poodle.h
rename arch/arm/mach-pxa/include/mach/audio.h => include/linux/platform_data/asoc-pxa.h (93%)
rename include/linux/{mmc => platform_data}/sh_mmcif.h (99%)
delete mode 100644 include/linux/platform_data/timer-ixp4xx.h
create mode 100644 include/linux/polynomial.h
delete mode 100644 include/linux/qed/qed_nvmetcp_ip_services_if.h
create mode 100644 include/linux/soc/apple/rtkit.h
create mode 100644 include/linux/soc/apple/sart.h
create mode 100644 include/linux/soc/mediatek/mtk_wed.h
rename arch/arm/mach-pxa/include/mach/hardware.h => include/linux/soc/pxa/cpu.h (75%)
rename {arch/arm/plat-pxa/include/plat => include/linux/soc/pxa}/mfp.h (98%)
create mode 100644 include/linux/soc/pxa/smemc.h
create mode 100644 include/linux/soc/renesas/r9a06g032-sysctrl.h
create mode 100644 include/linux/soc/ti/omap1-io.h
rename arch/arm/mach-omap1/include/mach/mux.h => include/linux/soc/ti/omap1-mux.h (53%)
rename arch/arm/mach-omap1/include/mach/soc.h => include/linux/soc/ti/omap1-soc.h (90%)
rename arch/arm/mach-omap1/include/mach/usb.h => include/linux/soc/ti/omap1-usb.h (86%)
create mode 100644 include/net/net_debug.h
create mode 100644 include/pcmcia/soc_common.h
create mode 100644 include/soc/fsl/caam-blob.h
create mode 100644 include/soc/rockchip/pm_domains.h
create mode 100644 include/sound/cs42l42.h
create mode 100644 include/sound/sof/ext_manifest4.h
create mode 100644 include/sound/sof/ipc4/header.h
create mode 100644 include/trace/events/intel_ifs.h
create mode 100644 include/trace/events/thermal_pressure.h
create mode 100644 include/uapi/asm-generic/termbits-common.h
delete mode 100644 include/uapi/linux/atm_zatm.h
create mode 100644 include/uapi/linux/cachefiles.h
create mode 100644 include/uapi/linux/sev-guest.h
create mode 100644 include/uapi/scsi/scsi_bsg_mpi3mr.h
create mode 100644 include/uapi/sound/intel/avs/tokens.h
rename {drivers/scsi => include}/ufs/ufs.h (93%)
rename {drivers/scsi => include}/ufs/ufs_quirks.h (94%)
rename {drivers/scsi => include}/ufs/ufshcd.h (81%)
rename {drivers/scsi => include}/ufs/ufshci.h (99%)
rename {drivers/scsi => include}/ufs/unipro.h (98%)
delete mode 100644 include/xen/arm/page-coherent.h
create mode 100644 include/xen/arm/xen-ops.h
create mode 100644 kernel/bpf/link_iter.c
create mode 100644 kernel/configs/x86_debug.config
delete mode 100644 kernel/module-internal.h
create mode 100644 kernel/module/Makefile
create mode 100644 kernel/module/debug_kmemleak.c
rename kernel/{module_decompress.c => module/decompress.c} (99%)
create mode 100644 kernel/module/internal.h
create mode 100644 kernel/module/kallsyms.c
create mode 100644 kernel/module/kdb.c
create mode 100644 kernel/module/livepatch.c
rename kernel/{module.c => module/main.c} (61%)
create mode 100644 kernel/module/procfs.c
create mode 100644 kernel/module/signing.c
create mode 100644 kernel/module/strict_rwx.c
create mode 100644 kernel/module/sysfs.c
create mode 100644 kernel/module/tracking.c
create mode 100644 kernel/module/tree_lookup.c
create mode 100644 kernel/module/version.c
delete mode 100644 kernel/module_signing.c
create mode 100644 kernel/platform-feature.c
create mode 100644 lib/bootconfig-data.S
create mode 100644 lib/kunit/resource.c
create mode 100644 lib/polynomial.c
create mode 100644 mm/kfence/.kunitconfig
create mode 100644 mm/swap.h
delete mode 100644 net/core/datagram.h
create mode 100644 net/core/dev.h
create mode 100644 net/mptcp/bpf.c
create mode 100644 net/mptcp/pm_userspace.c
create mode 100644 samples/bpf/xdp_router_ipv4.bpf.c
delete mode 100644 samples/bpf/xdp_router_ipv4_kern.c
create mode 100644 scripts/Makefile.randstruct
create mode 100644 scripts/Makefile.vmlinux
create mode 100644 scripts/Makefile.vmlinux_o
create mode 100755 scripts/check-blacklist-hashes.awk
create mode 100755 scripts/check-local-export
delete mode 120000 scripts/dtc/include-prefixes/h8300
rename arch/arm/mach-pxa/Makefile.boot => scripts/dummy-tools/pahole (59%)
mode change 100644 => 100755
delete mode 100755 scripts/gcc-plugins/gen-random-seed.sh
create mode 100755 scripts/gen-randstruct-seed.sh
create mode 100755 scripts/install.sh
create mode 100644 scripts/mod/list.h
create mode 100755 scripts/objdump-func
create mode 100644 scripts/spdxexclude
create mode 100644 security/keys/trusted-keys/Kconfig
create mode 100644 security/keys/trusted-keys/trusted_caam.c
rename arch/arm/mach-pxa/include/mach/regs-ac97.h => sound/arm/pxa2xx-ac97-regs.h (71%)
create mode 100644 sound/drivers/serial-generic.c
create mode 100644 sound/soc/codecs/cs35l45-i2c.c
create mode 100644 sound/soc/codecs/cs35l45-spi.c
create mode 100644 sound/soc/codecs/cs35l45-tables.c
create mode 100644 sound/soc/codecs/cs35l45.c
create mode 100644 sound/soc/codecs/cs35l45.h
create mode 100644 sound/soc/codecs/max98396.c
create mode 100644 sound/soc/codecs/max98396.h
create mode 100644 sound/soc/codecs/wm8731-i2c.c
create mode 100644 sound/soc/codecs/wm8731-spi.c
create mode 100644 sound/soc/intel/avs/apl.c
create mode 100644 sound/soc/intel/avs/board_selection.c
create mode 100644 sound/soc/intel/avs/path.c
create mode 100644 sound/soc/intel/avs/path.h
create mode 100644 sound/soc/intel/avs/pcm.c
create mode 100644 sound/soc/intel/avs/skl.c
create mode 100644 sound/soc/intel/avs/topology.c
create mode 100644 sound/soc/intel/avs/topology.h
create mode 100644 sound/soc/intel/avs/trace.c
create mode 100644 sound/soc/intel/avs/trace.h
delete mode 100644 sound/soc/mediatek/mt8195/mt8195-mt6359-rt1011-rt5682.c
rename sound/soc/mediatek/mt8195/{mt8195-mt6359-rt1019-rt5682.c => mt8195-mt6359.c} (78%)
create mode 100644 sound/soc/soc-utils-test.c
create mode 100644 sound/soc/sof/intel/hda-common-ops.c
create mode 100644 sound/soc/sof/ipc3-dtrace.c
create mode 100644 sound/soc/sof/ipc3-loader.c
delete mode 100644 sound/soc/sof/ipc3-ops.h
create mode 100644 sound/soc/sof/ipc3-priv.h
create mode 100644 sound/soc/sof/ipc4-loader.c
create mode 100644 sound/soc/sof/ipc4-priv.h
create mode 100644 sound/soc/sof/ipc4.c
create mode 100644 sound/soc/sof/mediatek/mt8186/Makefile
create mode 100644 sound/soc/sof/mediatek/mt8186/mt8186-clk.c
create mode 100644 sound/soc/sof/mediatek/mt8186/mt8186-clk.h
create mode 100644 sound/soc/sof/mediatek/mt8186/mt8186-loader.c
create mode 100644 sound/soc/sof/mediatek/mt8186/mt8186.c
create mode 100644 sound/soc/sof/mediatek/mt8186/mt8186.h
create mode 100644 sound/soc/sof/mediatek/mtk-adsp-common.c
create mode 100644 sound/soc/sof/mediatek/mtk-adsp-common.h
create mode 100644 sound/soc/tegra/tegra186_asrc.c
create mode 100644 sound/soc/tegra/tegra186_asrc.h
create mode 100644 tools/accounting/procacct.c
delete mode 100644 tools/arch/h8300/include/asm/bitsperlong.h
delete mode 100644 tools/arch/h8300/include/uapi/asm/mman.h
create mode 100644 tools/build/feature/test-libbpf-bpf_map_create.c
create mode 100644 tools/build/feature/test-libbpf-bpf_object__next_map.c
create mode 100644 tools/build/feature/test-libbpf-bpf_object__next_program.c
create mode 100644 tools/build/feature/test-libbpf-bpf_prog_load.c
create mode 100644 tools/build/feature/test-libbpf-btf__load_from_kernel_by_id.c
create mode 100644 tools/build/feature/test-libbpf-btf__raw_data.c
create mode 100755 tools/certs/print-cert-tbs-hash.sh
create mode 100644 tools/include/linux/arm-smccc.h
create mode 100644 tools/include/nolibc/Makefile
create mode 100644 tools/include/nolibc/arch-aarch64.h
create mode 100644 tools/include/nolibc/arch-arm.h
create mode 100644 tools/include/nolibc/arch-i386.h
create mode 100644 tools/include/nolibc/arch-mips.h
create mode 100644 tools/include/nolibc/arch-riscv.h
create mode 100644 tools/include/nolibc/arch-x86_64.h
create mode 100644 tools/include/nolibc/arch.h
create mode 100644 tools/include/nolibc/ctype.h
create mode 100644 tools/include/nolibc/errno.h
create mode 100644 tools/include/nolibc/signal.h
create mode 100644 tools/include/nolibc/std.h
create mode 100644 tools/include/nolibc/stdio.h
create mode 100644 tools/include/nolibc/stdlib.h
create mode 100644 tools/include/nolibc/string.h
create mode 100644 tools/include/nolibc/sys.h
create mode 100644 tools/include/nolibc/time.h
create mode 100644 tools/include/nolibc/types.h
create mode 100644 tools/include/nolibc/unistd.h
create mode 100644 tools/lib/bpf/usdt.bpf.h
create mode 100644 tools/lib/bpf/usdt.c
create mode 100644 tools/lib/thermal/.gitignore
create mode 100644 tools/lib/thermal/Build
create mode 100644 tools/lib/thermal/Makefile
create mode 100644 tools/lib/thermal/commands.c
create mode 100644 tools/lib/thermal/events.c
create mode 100644 tools/lib/thermal/include/thermal.h
create mode 100644 tools/lib/thermal/libthermal.map
create mode 100644 tools/lib/thermal/libthermal.pc.template
create mode 100644 tools/lib/thermal/sampling.c
create mode 100644 tools/lib/thermal/thermal.c
create mode 100644 tools/lib/thermal/thermal_nl.c
create mode 100644 tools/lib/thermal/thermal_nl.h
rename tools/objtool/Documentation/{stack-validation.txt => objtool.txt} (80%)
delete mode 100644 tools/objtool/builtin-orc.c
create mode 100644 tools/perf/Documentation/perf-arm-spe.txt
create mode 100644 tools/perf/arch/x86/util/evsel.h
create mode 100644 tools/perf/arch/x86/util/topdown.h
create mode 100644 tools/perf/bench/breakpoint.c
delete mode 100644 tools/perf/perf-with-kcore.sh
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a34/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a34/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a34/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a34/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a34/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a34/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a35/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a35/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a35/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a35/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a35/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a35/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/pmu.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a510/trace.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a55/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/cache.json
delete mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/core-imp-def.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/dpu.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/ifu.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a65/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a710/trace.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/etm.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/mmu.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a73/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/etm.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/mmu.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a75/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a77/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-a78/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x1/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cortex-x2/trace.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-e1/spe.json
delete mode 100644 tools/perf/pmu-events/arch/s390/cf_z15/crypto.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z16/basic.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z16/crypto6.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z16/extended.json
create mode 100644 tools/perf/pmu-events/arch/s390/cf_z16/transaction.json
create mode 100644 tools/perf/pmu-events/arch/x86/alderlake/adl-metrics.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/cache.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/floating-point.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/frontend.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/other.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/spr-metrics.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/uncore-memory.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/uncore-other.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/uncore-power.json
create mode 100644 tools/perf/pmu-events/arch/x86/sapphirerapids/virtual-memory.json
create mode 100755 tools/perf/scripts/python/arm-cs-trace-disasm.py
create mode 100644 tools/perf/tests/shell/lib/perf_csv_output_lint.py
create mode 100755 tools/perf/tests/shell/record.sh
create mode 100755 tools/perf/tests/shell/record_offcpu.sh
create mode 100755 tools/perf/tests/shell/stat+csv_output.sh
create mode 100755 tools/perf/tests/shell/stat.sh
create mode 100755 tools/perf/tests/shell/test_arm_spe_fork.sh
create mode 100755 tools/perf/tests/shell/test_intel_pt.sh
create mode 100644 tools/perf/util/bpf_off_cpu.c
create mode 100644 tools/perf/util/bpf_skel/off_cpu.bpf.c
create mode 100644 tools/perf/util/off_cpu.h
create mode 100644 tools/testing/crypto/chacha20-s390/Makefile
create mode 100644 tools/testing/crypto/chacha20-s390/run-tests.sh
create mode 100644 tools/testing/crypto/chacha20-s390/test-cipher.c
delete mode 100644 tools/testing/cxl/mock_mem.c
create mode 100644 tools/testing/kunit/configs/all_tests_uml.config
delete mode 100644 tools/testing/kunit/test_data/test_is_test_passed-crash.log
create mode 100644 tools/testing/selftests/arm64/abi/syscall-abi.h
create mode 100644 tools/testing/selftests/arm64/abi/tpidr2.c
create mode 100644 tools/testing/selftests/arm64/fp/rdvl-sme.c
create mode 100644 tools/testing/selftests/arm64/fp/sme-inst.h
create mode 100644 tools/testing/selftests/arm64/fp/ssve-stress
create mode 100644 tools/testing/selftests/arm64/fp/za-fork-asm.S
create mode 100644 tools/testing/selftests/arm64/fp/za-fork.c
create mode 100644 tools/testing/selftests/arm64/fp/za-ptrace.c
create mode 100644 tools/testing/selftests/arm64/fp/za-stress
create mode 100644 tools/testing/selftests/arm64/fp/za-test.S
create mode 100644 tools/testing/selftests/arm64/mte/check_prctl.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_sme_change_vl.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/sme_trap_no_sm.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/sme_trap_non_streaming.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/sme_trap_za.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/sme_vl.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/ssve_regs.c
create mode 100644 tools/testing/selftests/arm64/signal/testcases/za_regs.c
delete mode 100644 tools/testing/selftests/bpf/bpf_rlimit.h
create mode 100644 tools/testing/selftests/bpf/map_tests/map_in_map_batch_ops.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/arg_parsing.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/dynptr.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/log_fixup.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/map_kptr.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/map_lookup_percpu_elem.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/mptcp.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/prog_tests_framework.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/skb_load_bytes.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/test_tunnel.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/unpriv_bpf_disabled.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/uprobe_autoattach.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/usdt.c
create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_bpf_link.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_size___diff_offs.c
create mode 100644 tools/testing/selftests/bpf/progs/dynptr_fail.c
create mode 100644 tools/testing/selftests/bpf/progs/dynptr_success.c
create mode 100644 tools/testing/selftests/bpf/progs/for_each_map_elem_write_key.c
create mode 100644 tools/testing/selftests/bpf/progs/freplace_global_func.c
create mode 100644 tools/testing/selftests/bpf/progs/kprobe_multi_empty.c
create mode 100644 tools/testing/selftests/bpf/progs/map_kptr.c
create mode 100644 tools/testing/selftests/bpf/progs/map_kptr_fail.c
create mode 100644 tools/testing/selftests/bpf/progs/mptcp_sock.c
create mode 100644 tools/testing/selftests/bpf/progs/skb_load_bytes.c
create mode 100644 tools/testing/selftests/bpf/progs/test_global_func17.c
create mode 100644 tools/testing/selftests/bpf/progs/test_log_fixup.c
create mode 100644 tools/testing/selftests/bpf/progs/test_map_lookup_percpu_elem.c
create mode 100644 tools/testing/selftests/bpf/progs/test_unpriv_bpf_disabled.c
create mode 100644 tools/testing/selftests/bpf/progs/test_uprobe_autoattach.c
create mode 100644 tools/testing/selftests/bpf/progs/test_urandom_usdt.c
create mode 100644 tools/testing/selftests/bpf/progs/test_usdt.c
create mode 100644 tools/testing/selftests/bpf/progs/test_usdt_multispec.c
create mode 100644 tools/testing/selftests/bpf/sdt-config.h
create mode 100644 tools/testing/selftests/bpf/sdt.h
create mode 100644 tools/testing/selftests/bpf/urandom_read_aux.c
create mode 100644 tools/testing/selftests/bpf/urandom_read_lib1.c
create mode 100644 tools/testing/selftests/bpf/urandom_read_lib2.c
create mode 100644 tools/testing/selftests/bpf/verifier/map_kptr.c
create mode 100644 tools/testing/selftests/cgroup/config
create mode 100644 tools/testing/selftests/cgroup/memcg_protection.m
create mode 100644 tools/testing/selftests/cgroup/test_cpu.c
create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_locked_port.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_mdb.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_mld.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_vlan_aware.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_vlan_mcast.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/bridge_vlan_unaware.sh
create mode 100644 tools/testing/selftests/drivers/net/dsa/forwarding.config
create mode 120000 tools/testing/selftests/drivers/net/dsa/lib.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/local_termination.sh
create mode 120000 tools/testing/selftests/drivers/net/dsa/no_forwarding.sh
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/devlink_linecard.sh
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/qos_burst.sh
create mode 100755 tools/testing/selftests/drivers/net/ocelot/basic_qos.sh
create mode 100755 tools/testing/selftests/drivers/net/ocelot/psfp.sh
create mode 100644 tools/testing/selftests/drivers/s390x/uvdevice/Makefile
create mode 100644 tools/testing/selftests/drivers/s390x/uvdevice/config
create mode 100644 tools/testing/selftests/drivers/s390x/uvdevice/test_uvdevice.c
create mode 100755 tools/testing/selftests/firmware/fw_upload.sh
create mode 100644 tools/testing/selftests/kvm/aarch64/hypercalls.c
delete mode 100644 tools/testing/selftests/kvm/aarch64/psci_cpu_on_test.c
create mode 100644 tools/testing/selftests/kvm/aarch64/psci_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/fix_hypercall_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/tsc_scaling_sync.c
rename tools/testing/selftests/kvm/x86_64/{vmx_pmu_msrs_test.c => vmx_pmu_caps_test.c} (83%)
create mode 100644 tools/testing/selftests/net/bind_bhash_test.c
create mode 100644 tools/testing/selftests/net/bpf/Makefile
create mode 100644 tools/testing/selftests/net/bpf/nat6to4.c
create mode 100755 tools/testing/selftests/net/forwarding/bridge_mdb.sh
create mode 100755 tools/testing/selftests/net/forwarding/hw_stats_l3_gre.sh
mode change 100644 => 100755 tools/testing/selftests/net/forwarding/lib.sh
create mode 100755 tools/testing/selftests/net/forwarding/local_termination.sh
create mode 100755 tools/testing/selftests/net/forwarding/no_forwarding.sh
create mode 100644 tools/testing/selftests/net/forwarding/tsn_lib.sh
create mode 100755 tools/testing/selftests/net/mptcp/userspace_pm.sh
create mode 100755 tools/testing/selftests/net/ndisc_unsolicited_na_test.sh
create mode 100644 tools/testing/selftests/net/stress_reuseport_listen.c
create mode 100755 tools/testing/selftests/net/stress_reuseport_listen.sh
create mode 100755 tools/testing/selftests/net/udpgro_frglist.sh
create mode 100644 tools/testing/selftests/powerpc/math/mma.S
create mode 100644 tools/testing/selftests/powerpc/math/mma.c
create mode 100644 tools/testing/selftests/powerpc/mm/large_vm_gpr_corruption.c
delete mode 100644 tools/testing/selftests/powerpc/pmu/ebb/fixed_instruction_loop.S
create mode 100644 tools/testing/selftests/resctrl/settings
create mode 100644 tools/testing/selftests/vm/migration.c
create mode 100644 tools/testing/selftests/vm/mrelease_test.c
create mode 100644 tools/testing/selftests/vm/settings
create mode 100644 tools/testing/selftests/vm/soft-dirty.c
create mode 100644 tools/testing/selftests/vm/vm_util.c
create mode 100644 tools/testing/selftests/vm/vm_util.h
create mode 100644 tools/testing/selftests/wireguard/qemu/arch/powerpc64.config
create mode 100644 tools/testing/selftests/wireguard/qemu/arch/riscv32.config
create mode 100644 tools/testing/selftests/wireguard/qemu/arch/riscv64.config
create mode 100644 tools/testing/selftests/wireguard/qemu/arch/s390x.config
create mode 100644 tools/thermal/lib/Build
create mode 100644 tools/thermal/lib/Makefile
create mode 100644 tools/thermal/lib/libthermal_tools.pc.template
create mode 100644 tools/thermal/lib/log.c
create mode 100644 tools/thermal/lib/log.h
create mode 100644 tools/thermal/lib/mainloop.c
create mode 100644 tools/thermal/lib/mainloop.h
create mode 100644 tools/thermal/lib/thermal-tools.h
create mode 100644 tools/thermal/lib/uptimeofday.c
create mode 100644 tools/thermal/lib/uptimeofday.h
create mode 100644 tools/thermal/thermal-engine/Build
create mode 100644 tools/thermal/thermal-engine/Makefile
create mode 100644 tools/thermal/thermal-engine/thermal-engine.c
create mode 100644 tools/thermal/thermometer/Build
create mode 100644 tools/thermal/thermometer/Makefile
create mode 100644 tools/thermal/thermometer/thermometer.8
create mode 100644 tools/thermal/thermometer/thermometer.c
create mode 100644 tools/thermal/thermometer/thermometer.conf
create mode 100644 usr/dummy-include/stdbool.h
create mode 100644 usr/dummy-include/stdlib.h
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer
^ permalink raw reply [relevance 1%]
* [GIT PULL] Documentation fixes for 5.19
@ 2022-06-10 17:31 4% Jonathan Corbet
0 siblings, 0 replies; 200+ results
From: Jonathan Corbet @ 2022-06-10 17:31 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-doc, linux-kernel
The following changes since commit f2906aa863381afb0015a9eb7fefad885d4e5a56:
Linux 5.19-rc1 (2022-06-05 17:18:54 -0700)
are available in the Git repository at:
git://git.lwn.net/linux.git tags/docs-5.19-3
for you to fetch changes up to 387c67afccbb271707cbe6de2817f4e4c76287ad:
docs: arm: tcm: Fix typo in description of TCM and MMU usage (2022-06-09 12:56:33 -0600)
----------------------------------------------------------------
A few documentation fixes for 5.19, including moving the new HTE docs to a
more suitable location, adding loongarch to the features lists, and a
couple of typo fixes.
----------------------------------------------------------------
Jonathan Corbet (1):
docs: Move the HTE documentation to driver-api/
Justin Swartz (1):
docs: usb: fix literal block marker in usbmon verification example
Simon Horman (1):
docs: arm: tcm: Fix typo in description of TCM and MMU usage
Zheng Zengkai (1):
Documentation/features: Update the arch support status files
Documentation/arm/tcm.rst | 2 +-
Documentation/{ => driver-api}/hte/hte.rst | 0
Documentation/{ => driver-api}/hte/index.rst | 0
Documentation/{ => driver-api}/hte/tegra194-hte.rst | 0
Documentation/driver-api/index.rst | 1 +
Documentation/features/core/cBPF-JIT/arch-support.txt | 1 +
Documentation/features/core/eBPF-JIT/arch-support.txt | 1 +
Documentation/features/core/generic-idle-thread/arch-support.txt | 1 +
Documentation/features/core/jump-labels/arch-support.txt | 1 +
Documentation/features/core/thread-info-in-task/arch-support.txt | 1 +
Documentation/features/core/tracehook/arch-support.txt | 1 +
Documentation/features/debug/KASAN/arch-support.txt | 1 +
Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 3 ++-
Documentation/features/debug/gcov-profile-all/arch-support.txt | 3 ++-
Documentation/features/debug/kcov/arch-support.txt | 1 +
Documentation/features/debug/kgdb/arch-support.txt | 1 +
Documentation/features/debug/kmemleak/arch-support.txt | 1 +
Documentation/features/debug/kprobes-on-ftrace/arch-support.txt | 1 +
Documentation/features/debug/kprobes/arch-support.txt | 1 +
Documentation/features/debug/kretprobes/arch-support.txt | 1 +
Documentation/features/debug/optprobes/arch-support.txt | 1 +
Documentation/features/debug/stackprotector/arch-support.txt | 1 +
Documentation/features/debug/uprobes/arch-support.txt | 1 +
Documentation/features/debug/user-ret-profiler/arch-support.txt | 1 +
Documentation/features/io/dma-contiguous/arch-support.txt | 1 +
Documentation/features/locking/cmpxchg-local/arch-support.txt | 1 +
Documentation/features/locking/lockdep/arch-support.txt | 1 +
Documentation/features/locking/queued-rwlocks/arch-support.txt | 3 ++-
Documentation/features/locking/queued-spinlocks/arch-support.txt | 1 +
Documentation/features/perf/kprobes-event/arch-support.txt | 3 ++-
Documentation/features/perf/perf-regs/arch-support.txt | 1 +
Documentation/features/perf/perf-stackdump/arch-support.txt | 1 +
Documentation/features/sched/membarrier-sync-core/arch-support.txt | 1 +
Documentation/features/sched/numa-balancing/arch-support.txt | 1 +
Documentation/features/seccomp/seccomp-filter/arch-support.txt | 1 +
Documentation/features/time/arch-tick-broadcast/arch-support.txt | 1 +
Documentation/features/time/clockevents/arch-support.txt | 1 +
Documentation/features/time/context-tracking/arch-support.txt | 1 +
Documentation/features/time/irq-time-acct/arch-support.txt | 1 +
Documentation/features/time/virt-cpuacct/arch-support.txt | 1 +
Documentation/features/vm/ELF-ASLR/arch-support.txt | 1 +
Documentation/features/vm/PG_uncached/arch-support.txt | 1 +
Documentation/features/vm/THP/arch-support.txt | 1 +
Documentation/features/vm/TLB/arch-support.txt | 1 +
Documentation/features/vm/huge-vmap/arch-support.txt | 1 +
Documentation/features/vm/ioremap_prot/arch-support.txt | 1 +
Documentation/features/vm/pte_special/arch-support.txt | 3 ++-
Documentation/index.rst | 1 -
Documentation/usb/usbmon.rst | 2 +-
MAINTAINERS | 2 +-
50 files changed, 51 insertions(+), 9 deletions(-)
rename Documentation/{ => driver-api}/hte/hte.rst (100%)
rename Documentation/{ => driver-api}/hte/index.rst (100%)
rename Documentation/{ => driver-api}/hte/tegra194-hte.rst (100%)
^ permalink raw reply [relevance 4%]
* [PATCH] Documentation/features: Update the arch support status files
@ 2022-06-09 2:56 7% ` Zheng Zengkai
0 siblings, 0 replies; 200+ results
From: Zheng Zengkai @ 2022-06-09 2:56 UTC (permalink / raw)
To: corbet
Cc: chenhuacai, kernel, deller, linux-parisc, vincent.whitchurch,
richard, linux-um, palmer, linux-riscv, vgupta,
sergey.matyukevich, linux-snps-arc, linux-kernel, liwei391,
zhengzengkai
The arch support status files don't match reality as of v5.19-rc1,
use the features-refresh.sh to refresh all the arch-support.txt files
in place.
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
---
Documentation/features/core/cBPF-JIT/arch-support.txt | 1 +
Documentation/features/core/eBPF-JIT/arch-support.txt | 1 +
.../features/core/generic-idle-thread/arch-support.txt | 1 +
Documentation/features/core/jump-labels/arch-support.txt | 1 +
.../features/core/thread-info-in-task/arch-support.txt | 1 +
Documentation/features/core/tracehook/arch-support.txt | 1 +
Documentation/features/debug/KASAN/arch-support.txt | 1 +
Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 3 ++-
Documentation/features/debug/gcov-profile-all/arch-support.txt | 3 ++-
Documentation/features/debug/kcov/arch-support.txt | 1 +
Documentation/features/debug/kgdb/arch-support.txt | 1 +
Documentation/features/debug/kmemleak/arch-support.txt | 1 +
.../features/debug/kprobes-on-ftrace/arch-support.txt | 1 +
Documentation/features/debug/kprobes/arch-support.txt | 1 +
Documentation/features/debug/kretprobes/arch-support.txt | 1 +
Documentation/features/debug/optprobes/arch-support.txt | 1 +
Documentation/features/debug/stackprotector/arch-support.txt | 1 +
Documentation/features/debug/uprobes/arch-support.txt | 1 +
.../features/debug/user-ret-profiler/arch-support.txt | 1 +
Documentation/features/io/dma-contiguous/arch-support.txt | 1 +
Documentation/features/locking/cmpxchg-local/arch-support.txt | 1 +
Documentation/features/locking/lockdep/arch-support.txt | 1 +
Documentation/features/locking/queued-rwlocks/arch-support.txt | 3 ++-
.../features/locking/queued-spinlocks/arch-support.txt | 1 +
Documentation/features/perf/kprobes-event/arch-support.txt | 3 ++-
Documentation/features/perf/perf-regs/arch-support.txt | 1 +
Documentation/features/perf/perf-stackdump/arch-support.txt | 1 +
.../features/sched/membarrier-sync-core/arch-support.txt | 1 +
Documentation/features/sched/numa-balancing/arch-support.txt | 1 +
Documentation/features/seccomp/seccomp-filter/arch-support.txt | 1 +
.../features/time/arch-tick-broadcast/arch-support.txt | 1 +
Documentation/features/time/clockevents/arch-support.txt | 1 +
Documentation/features/time/context-tracking/arch-support.txt | 1 +
Documentation/features/time/irq-time-acct/arch-support.txt | 1 +
Documentation/features/time/virt-cpuacct/arch-support.txt | 1 +
Documentation/features/vm/ELF-ASLR/arch-support.txt | 1 +
Documentation/features/vm/PG_uncached/arch-support.txt | 1 +
Documentation/features/vm/THP/arch-support.txt | 1 +
Documentation/features/vm/TLB/arch-support.txt | 1 +
Documentation/features/vm/huge-vmap/arch-support.txt | 1 +
Documentation/features/vm/ioremap_prot/arch-support.txt | 1 +
Documentation/features/vm/pte_special/arch-support.txt | 3 ++-
42 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/Documentation/features/core/cBPF-JIT/arch-support.txt b/Documentation/features/core/cBPF-JIT/arch-support.txt
index 10482dee8703..a053667a7a8c 100644
--- a/Documentation/features/core/cBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/cBPF-JIT/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/eBPF-JIT/arch-support.txt b/Documentation/features/core/eBPF-JIT/arch-support.txt
index bcefb5afc7d6..c0bb9c92937f 100644
--- a/Documentation/features/core/eBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/eBPF-JIT/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/generic-idle-thread/arch-support.txt b/Documentation/features/core/generic-idle-thread/arch-support.txt
index d80d99449ac1..c9bfff292816 100644
--- a/Documentation/features/core/generic-idle-thread/arch-support.txt
+++ b/Documentation/features/core/generic-idle-thread/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | ok |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/jump-labels/arch-support.txt b/Documentation/features/core/jump-labels/arch-support.txt
index 53eab154925d..35e2a44b1448 100644
--- a/Documentation/features/core/jump-labels/arch-support.txt
+++ b/Documentation/features/core/jump-labels/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/thread-info-in-task/arch-support.txt b/Documentation/features/core/thread-info-in-task/arch-support.txt
index 94926451afb9..9b3e2ce12b44 100644
--- a/Documentation/features/core/thread-info-in-task/arch-support.txt
+++ b/Documentation/features/core/thread-info-in-task/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/core/tracehook/arch-support.txt b/Documentation/features/core/tracehook/arch-support.txt
index b4274b8141b6..9c7ffec5d51d 100644
--- a/Documentation/features/core/tracehook/arch-support.txt
+++ b/Documentation/features/core/tracehook/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | ok |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/KASAN/arch-support.txt b/Documentation/features/debug/KASAN/arch-support.txt
index c15bb4b21b6f..2fd5fb6f5f23 100644
--- a/Documentation/features/debug/KASAN/arch-support.txt
+++ b/Documentation/features/debug/KASAN/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
index 4c31fc92a312..c45711e55c7b 100644
--- a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
+++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
@@ -13,12 +13,13 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
- | parisc: | TODO |
+ | parisc: | ok |
| powerpc: | ok |
| riscv: | ok |
| s390: | ok |
diff --git a/Documentation/features/debug/gcov-profile-all/arch-support.txt b/Documentation/features/debug/gcov-profile-all/arch-support.txt
index d7a5ac4bc1fe..502c1d409648 100644
--- a/Documentation/features/debug/gcov-profile-all/arch-support.txt
+++ b/Documentation/features/debug/gcov-profile-all/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
@@ -24,7 +25,7 @@
| s390: | ok |
| sh: | ok |
| sparc: | TODO |
- | um: | TODO |
+ | um: | ok |
| x86: | ok |
| xtensa: | TODO |
-----------------------
diff --git a/Documentation/features/debug/kcov/arch-support.txt b/Documentation/features/debug/kcov/arch-support.txt
index 136e14c2b603..afb90bebded2 100644
--- a/Documentation/features/debug/kcov/arch-support.txt
+++ b/Documentation/features/debug/kcov/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/kgdb/arch-support.txt b/Documentation/features/debug/kgdb/arch-support.txt
index 5b3f3d8ae462..04120d278c22 100644
--- a/Documentation/features/debug/kgdb/arch-support.txt
+++ b/Documentation/features/debug/kgdb/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/debug/kmemleak/arch-support.txt b/Documentation/features/debug/kmemleak/arch-support.txt
index 7a2eab4fdf9d..e487c356ab20 100644
--- a/Documentation/features/debug/kmemleak/arch-support.txt
+++ b/Documentation/features/debug/kmemleak/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
index db02ab194138..b3697f4c806e 100644
--- a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
+++ b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/kprobes/arch-support.txt b/Documentation/features/debug/kprobes/arch-support.txt
index ec186e7deebc..452385ac9e06 100644
--- a/Documentation/features/debug/kprobes/arch-support.txt
+++ b/Documentation/features/debug/kprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/kretprobes/arch-support.txt b/Documentation/features/debug/kretprobes/arch-support.txt
index 4b7865e693f6..daecf046e72b 100644
--- a/Documentation/features/debug/kretprobes/arch-support.txt
+++ b/Documentation/features/debug/kretprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/optprobes/arch-support.txt b/Documentation/features/debug/optprobes/arch-support.txt
index 5d9befa041c7..adb1bd055bfd 100644
--- a/Documentation/features/debug/optprobes/arch-support.txt
+++ b/Documentation/features/debug/optprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/stackprotector/arch-support.txt b/Documentation/features/debug/stackprotector/arch-support.txt
index d97fd38460e6..ddcd7161d14c 100644
--- a/Documentation/features/debug/stackprotector/arch-support.txt
+++ b/Documentation/features/debug/stackprotector/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/uprobes/arch-support.txt b/Documentation/features/debug/uprobes/arch-support.txt
index d30e3475904e..25121200f9f9 100644
--- a/Documentation/features/debug/uprobes/arch-support.txt
+++ b/Documentation/features/debug/uprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/user-ret-profiler/arch-support.txt b/Documentation/features/debug/user-ret-profiler/arch-support.txt
index 9ae1fa2eb27c..f2fcff8e77b7 100644
--- a/Documentation/features/debug/user-ret-profiler/arch-support.txt
+++ b/Documentation/features/debug/user-ret-profiler/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/io/dma-contiguous/arch-support.txt b/Documentation/features/io/dma-contiguous/arch-support.txt
index 9e09988eb654..95e485c87e36 100644
--- a/Documentation/features/io/dma-contiguous/arch-support.txt
+++ b/Documentation/features/io/dma-contiguous/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/locking/cmpxchg-local/arch-support.txt b/Documentation/features/locking/cmpxchg-local/arch-support.txt
index 5c4ec316dbac..8b1a8d9e1c79 100644
--- a/Documentation/features/locking/cmpxchg-local/arch-support.txt
+++ b/Documentation/features/locking/cmpxchg-local/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/locking/lockdep/arch-support.txt b/Documentation/features/locking/lockdep/arch-support.txt
index 65007c1ac44f..ab69e8f56a37 100644
--- a/Documentation/features/locking/lockdep/arch-support.txt
+++ b/Documentation/features/locking/lockdep/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/locking/queued-rwlocks/arch-support.txt b/Documentation/features/locking/queued-rwlocks/arch-support.txt
index 20056670fb09..0bfb72a08d82 100644
--- a/Documentation/features/locking/queued-rwlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-rwlocks/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
@@ -20,7 +21,7 @@
| openrisc: | ok |
| parisc: | TODO |
| powerpc: | ok |
- | riscv: | TODO |
+ | riscv: | ok |
| s390: | TODO |
| sh: | TODO |
| sparc: | ok |
diff --git a/Documentation/features/locking/queued-spinlocks/arch-support.txt b/Documentation/features/locking/queued-spinlocks/arch-support.txt
index 707514faac7b..d2f2201febc8 100644
--- a/Documentation/features/locking/queued-spinlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-spinlocks/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/kprobes-event/arch-support.txt b/Documentation/features/perf/kprobes-event/arch-support.txt
index 9f31ce9b9f2a..0d0647b06762 100644
--- a/Documentation/features/perf/kprobes-event/arch-support.txt
+++ b/Documentation/features/perf/kprobes-event/arch-support.txt
@@ -7,12 +7,13 @@
| arch |status|
-----------------------
| alpha: | TODO |
- | arc: | TODO |
+ | arc: | ok |
| arm: | ok |
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/perf-regs/arch-support.txt b/Documentation/features/perf/perf-regs/arch-support.txt
index f148c4329c7a..13c297bbf05c 100644
--- a/Documentation/features/perf/perf-regs/arch-support.txt
+++ b/Documentation/features/perf/perf-regs/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/perf-stackdump/arch-support.txt b/Documentation/features/perf/perf-stackdump/arch-support.txt
index 32c88b6a910c..931687eec671 100644
--- a/Documentation/features/perf/perf-stackdump/arch-support.txt
+++ b/Documentation/features/perf/perf-stackdump/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/sched/membarrier-sync-core/arch-support.txt b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
index d82a1f0cdc91..336d728b8a45 100644
--- a/Documentation/features/sched/membarrier-sync-core/arch-support.txt
+++ b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
@@ -36,6 +36,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/sched/numa-balancing/arch-support.txt b/Documentation/features/sched/numa-balancing/arch-support.txt
index 2687564e5fa8..76d012118372 100644
--- a/Documentation/features/sched/numa-balancing/arch-support.txt
+++ b/Documentation/features/sched/numa-balancing/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | .. |
| hexagon: | .. |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
diff --git a/Documentation/features/seccomp/seccomp-filter/arch-support.txt b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
index 1b4109199e9d..a86b8b1f3d10 100644
--- a/Documentation/features/seccomp/seccomp-filter/arch-support.txt
+++ b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/arch-tick-broadcast/arch-support.txt b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
index 27327256bd05..364169f00ee2 100644
--- a/Documentation/features/time/arch-tick-broadcast/arch-support.txt
+++ b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/clockevents/arch-support.txt b/Documentation/features/time/clockevents/arch-support.txt
index b9a4bda2c8f5..6ea274790e47 100644
--- a/Documentation/features/time/clockevents/arch-support.txt
+++ b/Documentation/features/time/clockevents/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/time/context-tracking/arch-support.txt b/Documentation/features/time/context-tracking/arch-support.txt
index 4aa51c9fa32b..c9e0a16290e6 100644
--- a/Documentation/features/time/context-tracking/arch-support.txt
+++ b/Documentation/features/time/context-tracking/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/irq-time-acct/arch-support.txt b/Documentation/features/time/irq-time-acct/arch-support.txt
index 0306ece41faa..fd17d8de5ef1 100644
--- a/Documentation/features/time/irq-time-acct/arch-support.txt
+++ b/Documentation/features/time/irq-time-acct/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | .. |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/virt-cpuacct/arch-support.txt b/Documentation/features/time/virt-cpuacct/arch-support.txt
index 5d64e40c0092..1a859ac05e9e 100644
--- a/Documentation/features/time/virt-cpuacct/arch-support.txt
+++ b/Documentation/features/time/virt-cpuacct/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/ELF-ASLR/arch-support.txt b/Documentation/features/vm/ELF-ASLR/arch-support.txt
index 92c9db24a6a3..b1229953391b 100644
--- a/Documentation/features/vm/ELF-ASLR/arch-support.txt
+++ b/Documentation/features/vm/ELF-ASLR/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/PG_uncached/arch-support.txt b/Documentation/features/vm/PG_uncached/arch-support.txt
index 7424fea37614..02f325fbfcd0 100644
--- a/Documentation/features/vm/PG_uncached/arch-support.txt
+++ b/Documentation/features/vm/PG_uncached/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/vm/THP/arch-support.txt b/Documentation/features/vm/THP/arch-support.txt
index 60985067626b..9bfff977ef55 100644
--- a/Documentation/features/vm/THP/arch-support.txt
+++ b/Documentation/features/vm/THP/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | .. |
| hexagon: | .. |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | .. |
| microblaze: | .. |
| mips: | ok |
diff --git a/Documentation/features/vm/TLB/arch-support.txt b/Documentation/features/vm/TLB/arch-support.txt
index f2dcbec6020e..039e4e91ada3 100644
--- a/Documentation/features/vm/TLB/arch-support.txt
+++ b/Documentation/features/vm/TLB/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index 680090df03e1..13b4940e0c3a 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/vm/ioremap_prot/arch-support.txt b/Documentation/features/vm/ioremap_prot/arch-support.txt
index 205a90e82050..b01bf7bca3e6 100644
--- a/Documentation/features/vm/ioremap_prot/arch-support.txt
+++ b/Documentation/features/vm/ioremap_prot/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/pte_special/arch-support.txt b/Documentation/features/vm/pte_special/arch-support.txt
index 9f16d6e4e11e..fc3687b5e89b 100644
--- a/Documentation/features/vm/pte_special/arch-support.txt
+++ b/Documentation/features/vm/pte_special/arch-support.txt
@@ -13,12 +13,13 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
| nios2: | TODO |
| openrisc: | TODO |
- | parisc: | TODO |
+ | parisc: | ok |
| powerpc: | ok |
| riscv: | ok |
| s390: | ok |
--
2.20.1
_______________________________________________
linux-um mailing list
linux-um@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-um
^ permalink raw reply related [relevance 7%]
* [PATCH] Documentation/features: Update the arch support status files
@ 2022-06-09 2:56 7% ` Zheng Zengkai
0 siblings, 0 replies; 200+ results
From: Zheng Zengkai @ 2022-06-09 2:56 UTC (permalink / raw)
To: corbet
Cc: chenhuacai, kernel, deller, linux-parisc, vincent.whitchurch,
richard, linux-um, palmer, linux-riscv, vgupta,
sergey.matyukevich, linux-snps-arc, linux-kernel, liwei391,
zhengzengkai
The arch support status files don't match reality as of v5.19-rc1,
use the features-refresh.sh to refresh all the arch-support.txt files
in place.
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
---
Documentation/features/core/cBPF-JIT/arch-support.txt | 1 +
Documentation/features/core/eBPF-JIT/arch-support.txt | 1 +
.../features/core/generic-idle-thread/arch-support.txt | 1 +
Documentation/features/core/jump-labels/arch-support.txt | 1 +
.../features/core/thread-info-in-task/arch-support.txt | 1 +
Documentation/features/core/tracehook/arch-support.txt | 1 +
Documentation/features/debug/KASAN/arch-support.txt | 1 +
Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 3 ++-
Documentation/features/debug/gcov-profile-all/arch-support.txt | 3 ++-
Documentation/features/debug/kcov/arch-support.txt | 1 +
Documentation/features/debug/kgdb/arch-support.txt | 1 +
Documentation/features/debug/kmemleak/arch-support.txt | 1 +
.../features/debug/kprobes-on-ftrace/arch-support.txt | 1 +
Documentation/features/debug/kprobes/arch-support.txt | 1 +
Documentation/features/debug/kretprobes/arch-support.txt | 1 +
Documentation/features/debug/optprobes/arch-support.txt | 1 +
Documentation/features/debug/stackprotector/arch-support.txt | 1 +
Documentation/features/debug/uprobes/arch-support.txt | 1 +
.../features/debug/user-ret-profiler/arch-support.txt | 1 +
Documentation/features/io/dma-contiguous/arch-support.txt | 1 +
Documentation/features/locking/cmpxchg-local/arch-support.txt | 1 +
Documentation/features/locking/lockdep/arch-support.txt | 1 +
Documentation/features/locking/queued-rwlocks/arch-support.txt | 3 ++-
.../features/locking/queued-spinlocks/arch-support.txt | 1 +
Documentation/features/perf/kprobes-event/arch-support.txt | 3 ++-
Documentation/features/perf/perf-regs/arch-support.txt | 1 +
Documentation/features/perf/perf-stackdump/arch-support.txt | 1 +
.../features/sched/membarrier-sync-core/arch-support.txt | 1 +
Documentation/features/sched/numa-balancing/arch-support.txt | 1 +
Documentation/features/seccomp/seccomp-filter/arch-support.txt | 1 +
.../features/time/arch-tick-broadcast/arch-support.txt | 1 +
Documentation/features/time/clockevents/arch-support.txt | 1 +
Documentation/features/time/context-tracking/arch-support.txt | 1 +
Documentation/features/time/irq-time-acct/arch-support.txt | 1 +
Documentation/features/time/virt-cpuacct/arch-support.txt | 1 +
Documentation/features/vm/ELF-ASLR/arch-support.txt | 1 +
Documentation/features/vm/PG_uncached/arch-support.txt | 1 +
Documentation/features/vm/THP/arch-support.txt | 1 +
Documentation/features/vm/TLB/arch-support.txt | 1 +
Documentation/features/vm/huge-vmap/arch-support.txt | 1 +
Documentation/features/vm/ioremap_prot/arch-support.txt | 1 +
Documentation/features/vm/pte_special/arch-support.txt | 3 ++-
42 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/Documentation/features/core/cBPF-JIT/arch-support.txt b/Documentation/features/core/cBPF-JIT/arch-support.txt
index 10482dee8703..a053667a7a8c 100644
--- a/Documentation/features/core/cBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/cBPF-JIT/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/eBPF-JIT/arch-support.txt b/Documentation/features/core/eBPF-JIT/arch-support.txt
index bcefb5afc7d6..c0bb9c92937f 100644
--- a/Documentation/features/core/eBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/eBPF-JIT/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/generic-idle-thread/arch-support.txt b/Documentation/features/core/generic-idle-thread/arch-support.txt
index d80d99449ac1..c9bfff292816 100644
--- a/Documentation/features/core/generic-idle-thread/arch-support.txt
+++ b/Documentation/features/core/generic-idle-thread/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | ok |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/jump-labels/arch-support.txt b/Documentation/features/core/jump-labels/arch-support.txt
index 53eab154925d..35e2a44b1448 100644
--- a/Documentation/features/core/jump-labels/arch-support.txt
+++ b/Documentation/features/core/jump-labels/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/thread-info-in-task/arch-support.txt b/Documentation/features/core/thread-info-in-task/arch-support.txt
index 94926451afb9..9b3e2ce12b44 100644
--- a/Documentation/features/core/thread-info-in-task/arch-support.txt
+++ b/Documentation/features/core/thread-info-in-task/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/core/tracehook/arch-support.txt b/Documentation/features/core/tracehook/arch-support.txt
index b4274b8141b6..9c7ffec5d51d 100644
--- a/Documentation/features/core/tracehook/arch-support.txt
+++ b/Documentation/features/core/tracehook/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | ok |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/KASAN/arch-support.txt b/Documentation/features/debug/KASAN/arch-support.txt
index c15bb4b21b6f..2fd5fb6f5f23 100644
--- a/Documentation/features/debug/KASAN/arch-support.txt
+++ b/Documentation/features/debug/KASAN/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
index 4c31fc92a312..c45711e55c7b 100644
--- a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
+++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
@@ -13,12 +13,13 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
- | parisc: | TODO |
+ | parisc: | ok |
| powerpc: | ok |
| riscv: | ok |
| s390: | ok |
diff --git a/Documentation/features/debug/gcov-profile-all/arch-support.txt b/Documentation/features/debug/gcov-profile-all/arch-support.txt
index d7a5ac4bc1fe..502c1d409648 100644
--- a/Documentation/features/debug/gcov-profile-all/arch-support.txt
+++ b/Documentation/features/debug/gcov-profile-all/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
@@ -24,7 +25,7 @@
| s390: | ok |
| sh: | ok |
| sparc: | TODO |
- | um: | TODO |
+ | um: | ok |
| x86: | ok |
| xtensa: | TODO |
-----------------------
diff --git a/Documentation/features/debug/kcov/arch-support.txt b/Documentation/features/debug/kcov/arch-support.txt
index 136e14c2b603..afb90bebded2 100644
--- a/Documentation/features/debug/kcov/arch-support.txt
+++ b/Documentation/features/debug/kcov/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/kgdb/arch-support.txt b/Documentation/features/debug/kgdb/arch-support.txt
index 5b3f3d8ae462..04120d278c22 100644
--- a/Documentation/features/debug/kgdb/arch-support.txt
+++ b/Documentation/features/debug/kgdb/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/debug/kmemleak/arch-support.txt b/Documentation/features/debug/kmemleak/arch-support.txt
index 7a2eab4fdf9d..e487c356ab20 100644
--- a/Documentation/features/debug/kmemleak/arch-support.txt
+++ b/Documentation/features/debug/kmemleak/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
index db02ab194138..b3697f4c806e 100644
--- a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
+++ b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/kprobes/arch-support.txt b/Documentation/features/debug/kprobes/arch-support.txt
index ec186e7deebc..452385ac9e06 100644
--- a/Documentation/features/debug/kprobes/arch-support.txt
+++ b/Documentation/features/debug/kprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/kretprobes/arch-support.txt b/Documentation/features/debug/kretprobes/arch-support.txt
index 4b7865e693f6..daecf046e72b 100644
--- a/Documentation/features/debug/kretprobes/arch-support.txt
+++ b/Documentation/features/debug/kretprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/optprobes/arch-support.txt b/Documentation/features/debug/optprobes/arch-support.txt
index 5d9befa041c7..adb1bd055bfd 100644
--- a/Documentation/features/debug/optprobes/arch-support.txt
+++ b/Documentation/features/debug/optprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/stackprotector/arch-support.txt b/Documentation/features/debug/stackprotector/arch-support.txt
index d97fd38460e6..ddcd7161d14c 100644
--- a/Documentation/features/debug/stackprotector/arch-support.txt
+++ b/Documentation/features/debug/stackprotector/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/uprobes/arch-support.txt b/Documentation/features/debug/uprobes/arch-support.txt
index d30e3475904e..25121200f9f9 100644
--- a/Documentation/features/debug/uprobes/arch-support.txt
+++ b/Documentation/features/debug/uprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/user-ret-profiler/arch-support.txt b/Documentation/features/debug/user-ret-profiler/arch-support.txt
index 9ae1fa2eb27c..f2fcff8e77b7 100644
--- a/Documentation/features/debug/user-ret-profiler/arch-support.txt
+++ b/Documentation/features/debug/user-ret-profiler/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/io/dma-contiguous/arch-support.txt b/Documentation/features/io/dma-contiguous/arch-support.txt
index 9e09988eb654..95e485c87e36 100644
--- a/Documentation/features/io/dma-contiguous/arch-support.txt
+++ b/Documentation/features/io/dma-contiguous/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/locking/cmpxchg-local/arch-support.txt b/Documentation/features/locking/cmpxchg-local/arch-support.txt
index 5c4ec316dbac..8b1a8d9e1c79 100644
--- a/Documentation/features/locking/cmpxchg-local/arch-support.txt
+++ b/Documentation/features/locking/cmpxchg-local/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/locking/lockdep/arch-support.txt b/Documentation/features/locking/lockdep/arch-support.txt
index 65007c1ac44f..ab69e8f56a37 100644
--- a/Documentation/features/locking/lockdep/arch-support.txt
+++ b/Documentation/features/locking/lockdep/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/locking/queued-rwlocks/arch-support.txt b/Documentation/features/locking/queued-rwlocks/arch-support.txt
index 20056670fb09..0bfb72a08d82 100644
--- a/Documentation/features/locking/queued-rwlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-rwlocks/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
@@ -20,7 +21,7 @@
| openrisc: | ok |
| parisc: | TODO |
| powerpc: | ok |
- | riscv: | TODO |
+ | riscv: | ok |
| s390: | TODO |
| sh: | TODO |
| sparc: | ok |
diff --git a/Documentation/features/locking/queued-spinlocks/arch-support.txt b/Documentation/features/locking/queued-spinlocks/arch-support.txt
index 707514faac7b..d2f2201febc8 100644
--- a/Documentation/features/locking/queued-spinlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-spinlocks/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/kprobes-event/arch-support.txt b/Documentation/features/perf/kprobes-event/arch-support.txt
index 9f31ce9b9f2a..0d0647b06762 100644
--- a/Documentation/features/perf/kprobes-event/arch-support.txt
+++ b/Documentation/features/perf/kprobes-event/arch-support.txt
@@ -7,12 +7,13 @@
| arch |status|
-----------------------
| alpha: | TODO |
- | arc: | TODO |
+ | arc: | ok |
| arm: | ok |
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/perf-regs/arch-support.txt b/Documentation/features/perf/perf-regs/arch-support.txt
index f148c4329c7a..13c297bbf05c 100644
--- a/Documentation/features/perf/perf-regs/arch-support.txt
+++ b/Documentation/features/perf/perf-regs/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/perf-stackdump/arch-support.txt b/Documentation/features/perf/perf-stackdump/arch-support.txt
index 32c88b6a910c..931687eec671 100644
--- a/Documentation/features/perf/perf-stackdump/arch-support.txt
+++ b/Documentation/features/perf/perf-stackdump/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/sched/membarrier-sync-core/arch-support.txt b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
index d82a1f0cdc91..336d728b8a45 100644
--- a/Documentation/features/sched/membarrier-sync-core/arch-support.txt
+++ b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
@@ -36,6 +36,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/sched/numa-balancing/arch-support.txt b/Documentation/features/sched/numa-balancing/arch-support.txt
index 2687564e5fa8..76d012118372 100644
--- a/Documentation/features/sched/numa-balancing/arch-support.txt
+++ b/Documentation/features/sched/numa-balancing/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | .. |
| hexagon: | .. |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
diff --git a/Documentation/features/seccomp/seccomp-filter/arch-support.txt b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
index 1b4109199e9d..a86b8b1f3d10 100644
--- a/Documentation/features/seccomp/seccomp-filter/arch-support.txt
+++ b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/arch-tick-broadcast/arch-support.txt b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
index 27327256bd05..364169f00ee2 100644
--- a/Documentation/features/time/arch-tick-broadcast/arch-support.txt
+++ b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/clockevents/arch-support.txt b/Documentation/features/time/clockevents/arch-support.txt
index b9a4bda2c8f5..6ea274790e47 100644
--- a/Documentation/features/time/clockevents/arch-support.txt
+++ b/Documentation/features/time/clockevents/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/time/context-tracking/arch-support.txt b/Documentation/features/time/context-tracking/arch-support.txt
index 4aa51c9fa32b..c9e0a16290e6 100644
--- a/Documentation/features/time/context-tracking/arch-support.txt
+++ b/Documentation/features/time/context-tracking/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/irq-time-acct/arch-support.txt b/Documentation/features/time/irq-time-acct/arch-support.txt
index 0306ece41faa..fd17d8de5ef1 100644
--- a/Documentation/features/time/irq-time-acct/arch-support.txt
+++ b/Documentation/features/time/irq-time-acct/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | .. |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/virt-cpuacct/arch-support.txt b/Documentation/features/time/virt-cpuacct/arch-support.txt
index 5d64e40c0092..1a859ac05e9e 100644
--- a/Documentation/features/time/virt-cpuacct/arch-support.txt
+++ b/Documentation/features/time/virt-cpuacct/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/ELF-ASLR/arch-support.txt b/Documentation/features/vm/ELF-ASLR/arch-support.txt
index 92c9db24a6a3..b1229953391b 100644
--- a/Documentation/features/vm/ELF-ASLR/arch-support.txt
+++ b/Documentation/features/vm/ELF-ASLR/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/PG_uncached/arch-support.txt b/Documentation/features/vm/PG_uncached/arch-support.txt
index 7424fea37614..02f325fbfcd0 100644
--- a/Documentation/features/vm/PG_uncached/arch-support.txt
+++ b/Documentation/features/vm/PG_uncached/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/vm/THP/arch-support.txt b/Documentation/features/vm/THP/arch-support.txt
index 60985067626b..9bfff977ef55 100644
--- a/Documentation/features/vm/THP/arch-support.txt
+++ b/Documentation/features/vm/THP/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | .. |
| hexagon: | .. |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | .. |
| microblaze: | .. |
| mips: | ok |
diff --git a/Documentation/features/vm/TLB/arch-support.txt b/Documentation/features/vm/TLB/arch-support.txt
index f2dcbec6020e..039e4e91ada3 100644
--- a/Documentation/features/vm/TLB/arch-support.txt
+++ b/Documentation/features/vm/TLB/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index 680090df03e1..13b4940e0c3a 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/vm/ioremap_prot/arch-support.txt b/Documentation/features/vm/ioremap_prot/arch-support.txt
index 205a90e82050..b01bf7bca3e6 100644
--- a/Documentation/features/vm/ioremap_prot/arch-support.txt
+++ b/Documentation/features/vm/ioremap_prot/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/pte_special/arch-support.txt b/Documentation/features/vm/pte_special/arch-support.txt
index 9f16d6e4e11e..fc3687b5e89b 100644
--- a/Documentation/features/vm/pte_special/arch-support.txt
+++ b/Documentation/features/vm/pte_special/arch-support.txt
@@ -13,12 +13,13 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
| nios2: | TODO |
| openrisc: | TODO |
- | parisc: | TODO |
+ | parisc: | ok |
| powerpc: | ok |
| riscv: | ok |
| s390: | ok |
--
2.20.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 7%]
* [PATCH] Documentation/features: Update the arch support status files
@ 2022-06-09 2:56 7% ` Zheng Zengkai
0 siblings, 0 replies; 200+ results
From: Zheng Zengkai @ 2022-06-09 2:56 UTC (permalink / raw)
To: corbet
Cc: chenhuacai, kernel, deller, linux-parisc, vincent.whitchurch,
richard, linux-um, palmer, linux-riscv, vgupta,
sergey.matyukevich, linux-snps-arc, linux-kernel, liwei391,
zhengzengkai
The arch support status files don't match reality as of v5.19-rc1,
use the features-refresh.sh to refresh all the arch-support.txt files
in place.
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
---
Documentation/features/core/cBPF-JIT/arch-support.txt | 1 +
Documentation/features/core/eBPF-JIT/arch-support.txt | 1 +
.../features/core/generic-idle-thread/arch-support.txt | 1 +
Documentation/features/core/jump-labels/arch-support.txt | 1 +
.../features/core/thread-info-in-task/arch-support.txt | 1 +
Documentation/features/core/tracehook/arch-support.txt | 1 +
Documentation/features/debug/KASAN/arch-support.txt | 1 +
Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 3 ++-
Documentation/features/debug/gcov-profile-all/arch-support.txt | 3 ++-
Documentation/features/debug/kcov/arch-support.txt | 1 +
Documentation/features/debug/kgdb/arch-support.txt | 1 +
Documentation/features/debug/kmemleak/arch-support.txt | 1 +
.../features/debug/kprobes-on-ftrace/arch-support.txt | 1 +
Documentation/features/debug/kprobes/arch-support.txt | 1 +
Documentation/features/debug/kretprobes/arch-support.txt | 1 +
Documentation/features/debug/optprobes/arch-support.txt | 1 +
Documentation/features/debug/stackprotector/arch-support.txt | 1 +
Documentation/features/debug/uprobes/arch-support.txt | 1 +
.../features/debug/user-ret-profiler/arch-support.txt | 1 +
Documentation/features/io/dma-contiguous/arch-support.txt | 1 +
Documentation/features/locking/cmpxchg-local/arch-support.txt | 1 +
Documentation/features/locking/lockdep/arch-support.txt | 1 +
Documentation/features/locking/queued-rwlocks/arch-support.txt | 3 ++-
.../features/locking/queued-spinlocks/arch-support.txt | 1 +
Documentation/features/perf/kprobes-event/arch-support.txt | 3 ++-
Documentation/features/perf/perf-regs/arch-support.txt | 1 +
Documentation/features/perf/perf-stackdump/arch-support.txt | 1 +
.../features/sched/membarrier-sync-core/arch-support.txt | 1 +
Documentation/features/sched/numa-balancing/arch-support.txt | 1 +
Documentation/features/seccomp/seccomp-filter/arch-support.txt | 1 +
.../features/time/arch-tick-broadcast/arch-support.txt | 1 +
Documentation/features/time/clockevents/arch-support.txt | 1 +
Documentation/features/time/context-tracking/arch-support.txt | 1 +
Documentation/features/time/irq-time-acct/arch-support.txt | 1 +
Documentation/features/time/virt-cpuacct/arch-support.txt | 1 +
Documentation/features/vm/ELF-ASLR/arch-support.txt | 1 +
Documentation/features/vm/PG_uncached/arch-support.txt | 1 +
Documentation/features/vm/THP/arch-support.txt | 1 +
Documentation/features/vm/TLB/arch-support.txt | 1 +
Documentation/features/vm/huge-vmap/arch-support.txt | 1 +
Documentation/features/vm/ioremap_prot/arch-support.txt | 1 +
Documentation/features/vm/pte_special/arch-support.txt | 3 ++-
42 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/Documentation/features/core/cBPF-JIT/arch-support.txt b/Documentation/features/core/cBPF-JIT/arch-support.txt
index 10482dee8703..a053667a7a8c 100644
--- a/Documentation/features/core/cBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/cBPF-JIT/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/eBPF-JIT/arch-support.txt b/Documentation/features/core/eBPF-JIT/arch-support.txt
index bcefb5afc7d6..c0bb9c92937f 100644
--- a/Documentation/features/core/eBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/eBPF-JIT/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/generic-idle-thread/arch-support.txt b/Documentation/features/core/generic-idle-thread/arch-support.txt
index d80d99449ac1..c9bfff292816 100644
--- a/Documentation/features/core/generic-idle-thread/arch-support.txt
+++ b/Documentation/features/core/generic-idle-thread/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | ok |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/jump-labels/arch-support.txt b/Documentation/features/core/jump-labels/arch-support.txt
index 53eab154925d..35e2a44b1448 100644
--- a/Documentation/features/core/jump-labels/arch-support.txt
+++ b/Documentation/features/core/jump-labels/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/thread-info-in-task/arch-support.txt b/Documentation/features/core/thread-info-in-task/arch-support.txt
index 94926451afb9..9b3e2ce12b44 100644
--- a/Documentation/features/core/thread-info-in-task/arch-support.txt
+++ b/Documentation/features/core/thread-info-in-task/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/core/tracehook/arch-support.txt b/Documentation/features/core/tracehook/arch-support.txt
index b4274b8141b6..9c7ffec5d51d 100644
--- a/Documentation/features/core/tracehook/arch-support.txt
+++ b/Documentation/features/core/tracehook/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | ok |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/KASAN/arch-support.txt b/Documentation/features/debug/KASAN/arch-support.txt
index c15bb4b21b6f..2fd5fb6f5f23 100644
--- a/Documentation/features/debug/KASAN/arch-support.txt
+++ b/Documentation/features/debug/KASAN/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
index 4c31fc92a312..c45711e55c7b 100644
--- a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
+++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
@@ -13,12 +13,13 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
- | parisc: | TODO |
+ | parisc: | ok |
| powerpc: | ok |
| riscv: | ok |
| s390: | ok |
diff --git a/Documentation/features/debug/gcov-profile-all/arch-support.txt b/Documentation/features/debug/gcov-profile-all/arch-support.txt
index d7a5ac4bc1fe..502c1d409648 100644
--- a/Documentation/features/debug/gcov-profile-all/arch-support.txt
+++ b/Documentation/features/debug/gcov-profile-all/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
@@ -24,7 +25,7 @@
| s390: | ok |
| sh: | ok |
| sparc: | TODO |
- | um: | TODO |
+ | um: | ok |
| x86: | ok |
| xtensa: | TODO |
-----------------------
diff --git a/Documentation/features/debug/kcov/arch-support.txt b/Documentation/features/debug/kcov/arch-support.txt
index 136e14c2b603..afb90bebded2 100644
--- a/Documentation/features/debug/kcov/arch-support.txt
+++ b/Documentation/features/debug/kcov/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/kgdb/arch-support.txt b/Documentation/features/debug/kgdb/arch-support.txt
index 5b3f3d8ae462..04120d278c22 100644
--- a/Documentation/features/debug/kgdb/arch-support.txt
+++ b/Documentation/features/debug/kgdb/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/debug/kmemleak/arch-support.txt b/Documentation/features/debug/kmemleak/arch-support.txt
index 7a2eab4fdf9d..e487c356ab20 100644
--- a/Documentation/features/debug/kmemleak/arch-support.txt
+++ b/Documentation/features/debug/kmemleak/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
index db02ab194138..b3697f4c806e 100644
--- a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
+++ b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/kprobes/arch-support.txt b/Documentation/features/debug/kprobes/arch-support.txt
index ec186e7deebc..452385ac9e06 100644
--- a/Documentation/features/debug/kprobes/arch-support.txt
+++ b/Documentation/features/debug/kprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/kretprobes/arch-support.txt b/Documentation/features/debug/kretprobes/arch-support.txt
index 4b7865e693f6..daecf046e72b 100644
--- a/Documentation/features/debug/kretprobes/arch-support.txt
+++ b/Documentation/features/debug/kretprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/optprobes/arch-support.txt b/Documentation/features/debug/optprobes/arch-support.txt
index 5d9befa041c7..adb1bd055bfd 100644
--- a/Documentation/features/debug/optprobes/arch-support.txt
+++ b/Documentation/features/debug/optprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/stackprotector/arch-support.txt b/Documentation/features/debug/stackprotector/arch-support.txt
index d97fd38460e6..ddcd7161d14c 100644
--- a/Documentation/features/debug/stackprotector/arch-support.txt
+++ b/Documentation/features/debug/stackprotector/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/uprobes/arch-support.txt b/Documentation/features/debug/uprobes/arch-support.txt
index d30e3475904e..25121200f9f9 100644
--- a/Documentation/features/debug/uprobes/arch-support.txt
+++ b/Documentation/features/debug/uprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/user-ret-profiler/arch-support.txt b/Documentation/features/debug/user-ret-profiler/arch-support.txt
index 9ae1fa2eb27c..f2fcff8e77b7 100644
--- a/Documentation/features/debug/user-ret-profiler/arch-support.txt
+++ b/Documentation/features/debug/user-ret-profiler/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/io/dma-contiguous/arch-support.txt b/Documentation/features/io/dma-contiguous/arch-support.txt
index 9e09988eb654..95e485c87e36 100644
--- a/Documentation/features/io/dma-contiguous/arch-support.txt
+++ b/Documentation/features/io/dma-contiguous/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/locking/cmpxchg-local/arch-support.txt b/Documentation/features/locking/cmpxchg-local/arch-support.txt
index 5c4ec316dbac..8b1a8d9e1c79 100644
--- a/Documentation/features/locking/cmpxchg-local/arch-support.txt
+++ b/Documentation/features/locking/cmpxchg-local/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/locking/lockdep/arch-support.txt b/Documentation/features/locking/lockdep/arch-support.txt
index 65007c1ac44f..ab69e8f56a37 100644
--- a/Documentation/features/locking/lockdep/arch-support.txt
+++ b/Documentation/features/locking/lockdep/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/locking/queued-rwlocks/arch-support.txt b/Documentation/features/locking/queued-rwlocks/arch-support.txt
index 20056670fb09..0bfb72a08d82 100644
--- a/Documentation/features/locking/queued-rwlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-rwlocks/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
@@ -20,7 +21,7 @@
| openrisc: | ok |
| parisc: | TODO |
| powerpc: | ok |
- | riscv: | TODO |
+ | riscv: | ok |
| s390: | TODO |
| sh: | TODO |
| sparc: | ok |
diff --git a/Documentation/features/locking/queued-spinlocks/arch-support.txt b/Documentation/features/locking/queued-spinlocks/arch-support.txt
index 707514faac7b..d2f2201febc8 100644
--- a/Documentation/features/locking/queued-spinlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-spinlocks/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/kprobes-event/arch-support.txt b/Documentation/features/perf/kprobes-event/arch-support.txt
index 9f31ce9b9f2a..0d0647b06762 100644
--- a/Documentation/features/perf/kprobes-event/arch-support.txt
+++ b/Documentation/features/perf/kprobes-event/arch-support.txt
@@ -7,12 +7,13 @@
| arch |status|
-----------------------
| alpha: | TODO |
- | arc: | TODO |
+ | arc: | ok |
| arm: | ok |
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/perf-regs/arch-support.txt b/Documentation/features/perf/perf-regs/arch-support.txt
index f148c4329c7a..13c297bbf05c 100644
--- a/Documentation/features/perf/perf-regs/arch-support.txt
+++ b/Documentation/features/perf/perf-regs/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/perf-stackdump/arch-support.txt b/Documentation/features/perf/perf-stackdump/arch-support.txt
index 32c88b6a910c..931687eec671 100644
--- a/Documentation/features/perf/perf-stackdump/arch-support.txt
+++ b/Documentation/features/perf/perf-stackdump/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/sched/membarrier-sync-core/arch-support.txt b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
index d82a1f0cdc91..336d728b8a45 100644
--- a/Documentation/features/sched/membarrier-sync-core/arch-support.txt
+++ b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
@@ -36,6 +36,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/sched/numa-balancing/arch-support.txt b/Documentation/features/sched/numa-balancing/arch-support.txt
index 2687564e5fa8..76d012118372 100644
--- a/Documentation/features/sched/numa-balancing/arch-support.txt
+++ b/Documentation/features/sched/numa-balancing/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | .. |
| hexagon: | .. |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
diff --git a/Documentation/features/seccomp/seccomp-filter/arch-support.txt b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
index 1b4109199e9d..a86b8b1f3d10 100644
--- a/Documentation/features/seccomp/seccomp-filter/arch-support.txt
+++ b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/arch-tick-broadcast/arch-support.txt b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
index 27327256bd05..364169f00ee2 100644
--- a/Documentation/features/time/arch-tick-broadcast/arch-support.txt
+++ b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/clockevents/arch-support.txt b/Documentation/features/time/clockevents/arch-support.txt
index b9a4bda2c8f5..6ea274790e47 100644
--- a/Documentation/features/time/clockevents/arch-support.txt
+++ b/Documentation/features/time/clockevents/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/time/context-tracking/arch-support.txt b/Documentation/features/time/context-tracking/arch-support.txt
index 4aa51c9fa32b..c9e0a16290e6 100644
--- a/Documentation/features/time/context-tracking/arch-support.txt
+++ b/Documentation/features/time/context-tracking/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/irq-time-acct/arch-support.txt b/Documentation/features/time/irq-time-acct/arch-support.txt
index 0306ece41faa..fd17d8de5ef1 100644
--- a/Documentation/features/time/irq-time-acct/arch-support.txt
+++ b/Documentation/features/time/irq-time-acct/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | .. |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/virt-cpuacct/arch-support.txt b/Documentation/features/time/virt-cpuacct/arch-support.txt
index 5d64e40c0092..1a859ac05e9e 100644
--- a/Documentation/features/time/virt-cpuacct/arch-support.txt
+++ b/Documentation/features/time/virt-cpuacct/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/ELF-ASLR/arch-support.txt b/Documentation/features/vm/ELF-ASLR/arch-support.txt
index 92c9db24a6a3..b1229953391b 100644
--- a/Documentation/features/vm/ELF-ASLR/arch-support.txt
+++ b/Documentation/features/vm/ELF-ASLR/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/PG_uncached/arch-support.txt b/Documentation/features/vm/PG_uncached/arch-support.txt
index 7424fea37614..02f325fbfcd0 100644
--- a/Documentation/features/vm/PG_uncached/arch-support.txt
+++ b/Documentation/features/vm/PG_uncached/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/vm/THP/arch-support.txt b/Documentation/features/vm/THP/arch-support.txt
index 60985067626b..9bfff977ef55 100644
--- a/Documentation/features/vm/THP/arch-support.txt
+++ b/Documentation/features/vm/THP/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | .. |
| hexagon: | .. |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | .. |
| microblaze: | .. |
| mips: | ok |
diff --git a/Documentation/features/vm/TLB/arch-support.txt b/Documentation/features/vm/TLB/arch-support.txt
index f2dcbec6020e..039e4e91ada3 100644
--- a/Documentation/features/vm/TLB/arch-support.txt
+++ b/Documentation/features/vm/TLB/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index 680090df03e1..13b4940e0c3a 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/vm/ioremap_prot/arch-support.txt b/Documentation/features/vm/ioremap_prot/arch-support.txt
index 205a90e82050..b01bf7bca3e6 100644
--- a/Documentation/features/vm/ioremap_prot/arch-support.txt
+++ b/Documentation/features/vm/ioremap_prot/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/pte_special/arch-support.txt b/Documentation/features/vm/pte_special/arch-support.txt
index 9f16d6e4e11e..fc3687b5e89b 100644
--- a/Documentation/features/vm/pte_special/arch-support.txt
+++ b/Documentation/features/vm/pte_special/arch-support.txt
@@ -13,12 +13,13 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
| nios2: | TODO |
| openrisc: | TODO |
- | parisc: | TODO |
+ | parisc: | ok |
| powerpc: | ok |
| riscv: | ok |
| s390: | ok |
--
2.20.1
_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc
^ permalink raw reply related [relevance 7%]
* [PATCH] Documentation/features: Update the arch support status files
@ 2022-06-09 2:56 7% ` Zheng Zengkai
0 siblings, 0 replies; 200+ results
From: Zheng Zengkai @ 2022-06-09 2:56 UTC (permalink / raw)
To: corbet
Cc: chenhuacai, kernel, deller, linux-parisc, vincent.whitchurch,
richard, linux-um, palmer, linux-riscv, vgupta,
sergey.matyukevich, linux-snps-arc, linux-kernel, liwei391,
zhengzengkai
The arch support status files don't match reality as of v5.19-rc1,
use the features-refresh.sh to refresh all the arch-support.txt files
in place.
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
---
Documentation/features/core/cBPF-JIT/arch-support.txt | 1 +
Documentation/features/core/eBPF-JIT/arch-support.txt | 1 +
.../features/core/generic-idle-thread/arch-support.txt | 1 +
Documentation/features/core/jump-labels/arch-support.txt | 1 +
.../features/core/thread-info-in-task/arch-support.txt | 1 +
Documentation/features/core/tracehook/arch-support.txt | 1 +
Documentation/features/debug/KASAN/arch-support.txt | 1 +
Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 3 ++-
Documentation/features/debug/gcov-profile-all/arch-support.txt | 3 ++-
Documentation/features/debug/kcov/arch-support.txt | 1 +
Documentation/features/debug/kgdb/arch-support.txt | 1 +
Documentation/features/debug/kmemleak/arch-support.txt | 1 +
.../features/debug/kprobes-on-ftrace/arch-support.txt | 1 +
Documentation/features/debug/kprobes/arch-support.txt | 1 +
Documentation/features/debug/kretprobes/arch-support.txt | 1 +
Documentation/features/debug/optprobes/arch-support.txt | 1 +
Documentation/features/debug/stackprotector/arch-support.txt | 1 +
Documentation/features/debug/uprobes/arch-support.txt | 1 +
.../features/debug/user-ret-profiler/arch-support.txt | 1 +
Documentation/features/io/dma-contiguous/arch-support.txt | 1 +
Documentation/features/locking/cmpxchg-local/arch-support.txt | 1 +
Documentation/features/locking/lockdep/arch-support.txt | 1 +
Documentation/features/locking/queued-rwlocks/arch-support.txt | 3 ++-
.../features/locking/queued-spinlocks/arch-support.txt | 1 +
Documentation/features/perf/kprobes-event/arch-support.txt | 3 ++-
Documentation/features/perf/perf-regs/arch-support.txt | 1 +
Documentation/features/perf/perf-stackdump/arch-support.txt | 1 +
.../features/sched/membarrier-sync-core/arch-support.txt | 1 +
Documentation/features/sched/numa-balancing/arch-support.txt | 1 +
Documentation/features/seccomp/seccomp-filter/arch-support.txt | 1 +
.../features/time/arch-tick-broadcast/arch-support.txt | 1 +
Documentation/features/time/clockevents/arch-support.txt | 1 +
Documentation/features/time/context-tracking/arch-support.txt | 1 +
Documentation/features/time/irq-time-acct/arch-support.txt | 1 +
Documentation/features/time/virt-cpuacct/arch-support.txt | 1 +
Documentation/features/vm/ELF-ASLR/arch-support.txt | 1 +
Documentation/features/vm/PG_uncached/arch-support.txt | 1 +
Documentation/features/vm/THP/arch-support.txt | 1 +
Documentation/features/vm/TLB/arch-support.txt | 1 +
Documentation/features/vm/huge-vmap/arch-support.txt | 1 +
Documentation/features/vm/ioremap_prot/arch-support.txt | 1 +
Documentation/features/vm/pte_special/arch-support.txt | 3 ++-
42 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/Documentation/features/core/cBPF-JIT/arch-support.txt b/Documentation/features/core/cBPF-JIT/arch-support.txt
index 10482dee8703..a053667a7a8c 100644
--- a/Documentation/features/core/cBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/cBPF-JIT/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/eBPF-JIT/arch-support.txt b/Documentation/features/core/eBPF-JIT/arch-support.txt
index bcefb5afc7d6..c0bb9c92937f 100644
--- a/Documentation/features/core/eBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/eBPF-JIT/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/generic-idle-thread/arch-support.txt b/Documentation/features/core/generic-idle-thread/arch-support.txt
index d80d99449ac1..c9bfff292816 100644
--- a/Documentation/features/core/generic-idle-thread/arch-support.txt
+++ b/Documentation/features/core/generic-idle-thread/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | ok |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/jump-labels/arch-support.txt b/Documentation/features/core/jump-labels/arch-support.txt
index 53eab154925d..35e2a44b1448 100644
--- a/Documentation/features/core/jump-labels/arch-support.txt
+++ b/Documentation/features/core/jump-labels/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/core/thread-info-in-task/arch-support.txt b/Documentation/features/core/thread-info-in-task/arch-support.txt
index 94926451afb9..9b3e2ce12b44 100644
--- a/Documentation/features/core/thread-info-in-task/arch-support.txt
+++ b/Documentation/features/core/thread-info-in-task/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/core/tracehook/arch-support.txt b/Documentation/features/core/tracehook/arch-support.txt
index b4274b8141b6..9c7ffec5d51d 100644
--- a/Documentation/features/core/tracehook/arch-support.txt
+++ b/Documentation/features/core/tracehook/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | ok |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/KASAN/arch-support.txt b/Documentation/features/debug/KASAN/arch-support.txt
index c15bb4b21b6f..2fd5fb6f5f23 100644
--- a/Documentation/features/debug/KASAN/arch-support.txt
+++ b/Documentation/features/debug/KASAN/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
index 4c31fc92a312..c45711e55c7b 100644
--- a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
+++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
@@ -13,12 +13,13 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
- | parisc: | TODO |
+ | parisc: | ok |
| powerpc: | ok |
| riscv: | ok |
| s390: | ok |
diff --git a/Documentation/features/debug/gcov-profile-all/arch-support.txt b/Documentation/features/debug/gcov-profile-all/arch-support.txt
index d7a5ac4bc1fe..502c1d409648 100644
--- a/Documentation/features/debug/gcov-profile-all/arch-support.txt
+++ b/Documentation/features/debug/gcov-profile-all/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
@@ -24,7 +25,7 @@
| s390: | ok |
| sh: | ok |
| sparc: | TODO |
- | um: | TODO |
+ | um: | ok |
| x86: | ok |
| xtensa: | TODO |
-----------------------
diff --git a/Documentation/features/debug/kcov/arch-support.txt b/Documentation/features/debug/kcov/arch-support.txt
index 136e14c2b603..afb90bebded2 100644
--- a/Documentation/features/debug/kcov/arch-support.txt
+++ b/Documentation/features/debug/kcov/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/kgdb/arch-support.txt b/Documentation/features/debug/kgdb/arch-support.txt
index 5b3f3d8ae462..04120d278c22 100644
--- a/Documentation/features/debug/kgdb/arch-support.txt
+++ b/Documentation/features/debug/kgdb/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/debug/kmemleak/arch-support.txt b/Documentation/features/debug/kmemleak/arch-support.txt
index 7a2eab4fdf9d..e487c356ab20 100644
--- a/Documentation/features/debug/kmemleak/arch-support.txt
+++ b/Documentation/features/debug/kmemleak/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
index db02ab194138..b3697f4c806e 100644
--- a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
+++ b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/kprobes/arch-support.txt b/Documentation/features/debug/kprobes/arch-support.txt
index ec186e7deebc..452385ac9e06 100644
--- a/Documentation/features/debug/kprobes/arch-support.txt
+++ b/Documentation/features/debug/kprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/kretprobes/arch-support.txt b/Documentation/features/debug/kretprobes/arch-support.txt
index 4b7865e693f6..daecf046e72b 100644
--- a/Documentation/features/debug/kretprobes/arch-support.txt
+++ b/Documentation/features/debug/kretprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/optprobes/arch-support.txt b/Documentation/features/debug/optprobes/arch-support.txt
index 5d9befa041c7..adb1bd055bfd 100644
--- a/Documentation/features/debug/optprobes/arch-support.txt
+++ b/Documentation/features/debug/optprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/debug/stackprotector/arch-support.txt b/Documentation/features/debug/stackprotector/arch-support.txt
index d97fd38460e6..ddcd7161d14c 100644
--- a/Documentation/features/debug/stackprotector/arch-support.txt
+++ b/Documentation/features/debug/stackprotector/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/uprobes/arch-support.txt b/Documentation/features/debug/uprobes/arch-support.txt
index d30e3475904e..25121200f9f9 100644
--- a/Documentation/features/debug/uprobes/arch-support.txt
+++ b/Documentation/features/debug/uprobes/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/debug/user-ret-profiler/arch-support.txt b/Documentation/features/debug/user-ret-profiler/arch-support.txt
index 9ae1fa2eb27c..f2fcff8e77b7 100644
--- a/Documentation/features/debug/user-ret-profiler/arch-support.txt
+++ b/Documentation/features/debug/user-ret-profiler/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/io/dma-contiguous/arch-support.txt b/Documentation/features/io/dma-contiguous/arch-support.txt
index 9e09988eb654..95e485c87e36 100644
--- a/Documentation/features/io/dma-contiguous/arch-support.txt
+++ b/Documentation/features/io/dma-contiguous/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/locking/cmpxchg-local/arch-support.txt b/Documentation/features/locking/cmpxchg-local/arch-support.txt
index 5c4ec316dbac..8b1a8d9e1c79 100644
--- a/Documentation/features/locking/cmpxchg-local/arch-support.txt
+++ b/Documentation/features/locking/cmpxchg-local/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/locking/lockdep/arch-support.txt b/Documentation/features/locking/lockdep/arch-support.txt
index 65007c1ac44f..ab69e8f56a37 100644
--- a/Documentation/features/locking/lockdep/arch-support.txt
+++ b/Documentation/features/locking/lockdep/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/locking/queued-rwlocks/arch-support.txt b/Documentation/features/locking/queued-rwlocks/arch-support.txt
index 20056670fb09..0bfb72a08d82 100644
--- a/Documentation/features/locking/queued-rwlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-rwlocks/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
@@ -20,7 +21,7 @@
| openrisc: | ok |
| parisc: | TODO |
| powerpc: | ok |
- | riscv: | TODO |
+ | riscv: | ok |
| s390: | TODO |
| sh: | TODO |
| sparc: | ok |
diff --git a/Documentation/features/locking/queued-spinlocks/arch-support.txt b/Documentation/features/locking/queued-spinlocks/arch-support.txt
index 707514faac7b..d2f2201febc8 100644
--- a/Documentation/features/locking/queued-spinlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-spinlocks/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/kprobes-event/arch-support.txt b/Documentation/features/perf/kprobes-event/arch-support.txt
index 9f31ce9b9f2a..0d0647b06762 100644
--- a/Documentation/features/perf/kprobes-event/arch-support.txt
+++ b/Documentation/features/perf/kprobes-event/arch-support.txt
@@ -7,12 +7,13 @@
| arch |status|
-----------------------
| alpha: | TODO |
- | arc: | TODO |
+ | arc: | ok |
| arm: | ok |
| arm64: | ok |
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/perf-regs/arch-support.txt b/Documentation/features/perf/perf-regs/arch-support.txt
index f148c4329c7a..13c297bbf05c 100644
--- a/Documentation/features/perf/perf-regs/arch-support.txt
+++ b/Documentation/features/perf/perf-regs/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/perf/perf-stackdump/arch-support.txt b/Documentation/features/perf/perf-stackdump/arch-support.txt
index 32c88b6a910c..931687eec671 100644
--- a/Documentation/features/perf/perf-stackdump/arch-support.txt
+++ b/Documentation/features/perf/perf-stackdump/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/sched/membarrier-sync-core/arch-support.txt b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
index d82a1f0cdc91..336d728b8a45 100644
--- a/Documentation/features/sched/membarrier-sync-core/arch-support.txt
+++ b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
@@ -36,6 +36,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/sched/numa-balancing/arch-support.txt b/Documentation/features/sched/numa-balancing/arch-support.txt
index 2687564e5fa8..76d012118372 100644
--- a/Documentation/features/sched/numa-balancing/arch-support.txt
+++ b/Documentation/features/sched/numa-balancing/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | .. |
| hexagon: | .. |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
diff --git a/Documentation/features/seccomp/seccomp-filter/arch-support.txt b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
index 1b4109199e9d..a86b8b1f3d10 100644
--- a/Documentation/features/seccomp/seccomp-filter/arch-support.txt
+++ b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/arch-tick-broadcast/arch-support.txt b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
index 27327256bd05..364169f00ee2 100644
--- a/Documentation/features/time/arch-tick-broadcast/arch-support.txt
+++ b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/clockevents/arch-support.txt b/Documentation/features/time/clockevents/arch-support.txt
index b9a4bda2c8f5..6ea274790e47 100644
--- a/Documentation/features/time/clockevents/arch-support.txt
+++ b/Documentation/features/time/clockevents/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | ok |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
diff --git a/Documentation/features/time/context-tracking/arch-support.txt b/Documentation/features/time/context-tracking/arch-support.txt
index 4aa51c9fa32b..c9e0a16290e6 100644
--- a/Documentation/features/time/context-tracking/arch-support.txt
+++ b/Documentation/features/time/context-tracking/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/irq-time-acct/arch-support.txt b/Documentation/features/time/irq-time-acct/arch-support.txt
index 0306ece41faa..fd17d8de5ef1 100644
--- a/Documentation/features/time/irq-time-acct/arch-support.txt
+++ b/Documentation/features/time/irq-time-acct/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | .. |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/time/virt-cpuacct/arch-support.txt b/Documentation/features/time/virt-cpuacct/arch-support.txt
index 5d64e40c0092..1a859ac05e9e 100644
--- a/Documentation/features/time/virt-cpuacct/arch-support.txt
+++ b/Documentation/features/time/virt-cpuacct/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | ok |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/ELF-ASLR/arch-support.txt b/Documentation/features/vm/ELF-ASLR/arch-support.txt
index 92c9db24a6a3..b1229953391b 100644
--- a/Documentation/features/vm/ELF-ASLR/arch-support.txt
+++ b/Documentation/features/vm/ELF-ASLR/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/PG_uncached/arch-support.txt b/Documentation/features/vm/PG_uncached/arch-support.txt
index 7424fea37614..02f325fbfcd0 100644
--- a/Documentation/features/vm/PG_uncached/arch-support.txt
+++ b/Documentation/features/vm/PG_uncached/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | ok |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/vm/THP/arch-support.txt b/Documentation/features/vm/THP/arch-support.txt
index 60985067626b..9bfff977ef55 100644
--- a/Documentation/features/vm/THP/arch-support.txt
+++ b/Documentation/features/vm/THP/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | .. |
| hexagon: | .. |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | .. |
| microblaze: | .. |
| mips: | ok |
diff --git a/Documentation/features/vm/TLB/arch-support.txt b/Documentation/features/vm/TLB/arch-support.txt
index f2dcbec6020e..039e4e91ada3 100644
--- a/Documentation/features/vm/TLB/arch-support.txt
+++ b/Documentation/features/vm/TLB/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index 680090df03e1..13b4940e0c3a 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | TODO |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
diff --git a/Documentation/features/vm/ioremap_prot/arch-support.txt b/Documentation/features/vm/ioremap_prot/arch-support.txt
index 205a90e82050..b01bf7bca3e6 100644
--- a/Documentation/features/vm/ioremap_prot/arch-support.txt
+++ b/Documentation/features/vm/ioremap_prot/arch-support.txt
@@ -13,6 +13,7 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
diff --git a/Documentation/features/vm/pte_special/arch-support.txt b/Documentation/features/vm/pte_special/arch-support.txt
index 9f16d6e4e11e..fc3687b5e89b 100644
--- a/Documentation/features/vm/pte_special/arch-support.txt
+++ b/Documentation/features/vm/pte_special/arch-support.txt
@@ -13,12 +13,13 @@
| csky: | TODO |
| hexagon: | TODO |
| ia64: | TODO |
+ | loong: | ok |
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
| nios2: | TODO |
| openrisc: | TODO |
- | parisc: | TODO |
+ | parisc: | ok |
| powerpc: | ok |
| riscv: | ok |
| s390: | ok |
--
2.20.1
^ permalink raw reply related [relevance 7%]
* [GIT PULL] asm-generic changes for 5.19
@ 2022-05-26 15:00 2% Arnd Bergmann
0 siblings, 0 replies; 200+ results
From: Arnd Bergmann @ 2022-05-26 15:00 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-arch, Linux Kernel Mailing List, Yoshinori Sato,
Palmer Dabbelt, Masahiro Yamada, Peter Zijlstra
The following changes since commit 3123109284176b1532874591f7c81f3837bbdc17:
Linux 5.18-rc1 (2022-04-03 14:08:21 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git
tags/asm-generic-5.19
for you to fetch changes up to b2441b3bdce6c02cb96278d98c620d7ba1d41b7b:
h8300: remove stale bindings and symlink (2022-05-20 22:40:56 +0200)
----------------------------------------------------------------
asm-generic changes for 5.19
The asm-generic tree contains three separate changes for linux-5.19:
- The h8300 architecture is retired after it has been effectively
unmaintained for a number of years. This is the last architecture we
supported that has no MMU implementation, but there are still a few
architectures (arm, m68k, riscv, sh and xtensa) that support CPUs with
and without an MMU.
- A series to add a generic ticket spinlock that can be shared by most
architectures with a working cmpxchg or ll/sc type atomic, including
the conversion of riscv, csky and openrisc. This series is also a
prerequisite for the loongarch64 architecture port that will come as
a separate pull request.
- A cleanup of some exported uapi header files to ensure they can be
included from user space without relying on other kernel headers.
----------------------------------------------------------------
Arnd Bergmann (4):
Merge branch 'remove-h8300' of
git://git.infradead.org/users/hch/misc into asm-generic
Merge tag 'generic-ticket-spinlocks-v6' of
git://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux into
asm-generic
Merge branch 'asm-generic-headers-cleanup' into asm-generic
h8300: remove stale bindings and symlink
Christoph Hellwig (1):
remove the h8300 architecture
Guo Ren (1):
csky: Move to generic ticket-spinlock
Masahiro Yamada (6):
agpgart.h: do not include <stdlib.h> from exported header
kbuild: prevent exported headers from including <stdlib.h>, <stdbool.h>
riscv: add linux/bpf_perf_event.h to UAPI compile-test coverage
mips: add asm/stat.h to UAPI compile-test coverage
powerpc: add asm/stat.h to UAPI compile-test coverage
sparc: add asm/stat.h to UAPI compile-test coverage
Palmer Dabbelt (3):
asm-generic: qrwlock: Document the spinlock fairness requirements
RISC-V: Move to generic spinlocks
RISC-V: Move to queued RW locks
Peter Zijlstra (3):
asm-generic: ticket-lock: New generic ticket-based spinlock
asm-generic: qspinlock: Indicate the use of mixed-size atomics
openrisc: Move to ticket-spinlock
.../bindings/clock/renesas,h8300-div-clock.txt | 24 --
.../bindings/clock/renesas,h8s2678-pll-clock.txt | 23 --
Documentation/devicetree/bindings/h8300/cpu.txt | 13 -
.../interrupt-controller/renesas,h8300h-intc.txt | 22 --
.../interrupt-controller/renesas,h8s-intc.txt | 22 --
.../memory-controllers/renesas,h8300-bsc.yaml | 35 --
.../bindings/timer/renesas,16bit-timer.txt | 25 --
.../bindings/timer/renesas,8bit-timer.txt | 25 --
.../features/core/cBPF-JIT/arch-support.txt | 1 -
.../features/core/eBPF-JIT/arch-support.txt | 1 -
.../core/generic-idle-thread/arch-support.txt | 1 -
.../features/core/jump-labels/arch-support.txt | 1 -
.../core/thread-info-in-task/arch-support.txt | 1 -
.../features/core/tracehook/arch-support.txt | 1 -
.../features/debug/KASAN/arch-support.txt | 1 -
.../debug/debug-vm-pgtable/arch-support.txt | 1 -
.../debug/gcov-profile-all/arch-support.txt | 1 -
Documentation/features/debug/kcov/arch-support.txt | 1 -
Documentation/features/debug/kgdb/arch-support.txt | 1 -
.../features/debug/kmemleak/arch-support.txt | 1 -
.../debug/kprobes-on-ftrace/arch-support.txt | 1 -
.../features/debug/kprobes/arch-support.txt | 1 -
.../features/debug/kretprobes/arch-support.txt | 1 -
.../features/debug/optprobes/arch-support.txt | 1 -
.../features/debug/stackprotector/arch-support.txt | 1 -
.../features/debug/uprobes/arch-support.txt | 1 -
.../debug/user-ret-profiler/arch-support.txt | 1 -
.../features/io/dma-contiguous/arch-support.txt | 1 -
.../locking/cmpxchg-local/arch-support.txt | 1 -
.../features/locking/lockdep/arch-support.txt | 1 -
.../locking/queued-rwlocks/arch-support.txt | 1 -
.../locking/queued-spinlocks/arch-support.txt | 1 -
.../features/perf/kprobes-event/arch-support.txt | 1 -
.../features/perf/perf-regs/arch-support.txt | 1 -
.../features/perf/perf-stackdump/arch-support.txt | 1 -
.../sched/membarrier-sync-core/arch-support.txt | 1 -
.../features/sched/numa-balancing/arch-support.txt | 1 -
.../seccomp/seccomp-filter/arch-support.txt | 1 -
.../time/arch-tick-broadcast/arch-support.txt | 1 -
.../features/time/clockevents/arch-support.txt | 1 -
.../time/context-tracking/arch-support.txt | 1 -
.../features/time/irq-time-acct/arch-support.txt | 1 -
.../features/time/virt-cpuacct/arch-support.txt | 1 -
.../features/vm/ELF-ASLR/arch-support.txt | 1 -
.../features/vm/PG_uncached/arch-support.txt | 1 -
Documentation/features/vm/THP/arch-support.txt | 1 -
Documentation/features/vm/TLB/arch-support.txt | 1 -
.../features/vm/huge-vmap/arch-support.txt | 1 -
.../features/vm/ioremap_prot/arch-support.txt | 1 -
.../features/vm/pte_special/arch-support.txt | 1 -
MAINTAINERS | 11 -
arch/csky/include/asm/Kbuild | 3 +
arch/csky/include/asm/spinlock.h | 89 -----
arch/csky/include/asm/spinlock_types.h | 27 --
arch/h8300/Kbuild | 5 -
arch/h8300/Kconfig | 49 ---
arch/h8300/Kconfig.cpu | 99 -----
arch/h8300/Kconfig.debug | 2 -
arch/h8300/Makefile | 44 ---
arch/h8300/boot/Makefile | 27 --
arch/h8300/boot/compressed/Makefile | 45 ---
arch/h8300/boot/compressed/head.S | 49 ---
arch/h8300/boot/compressed/misc.c | 76 ----
arch/h8300/boot/compressed/vmlinux.lds | 35 --
arch/h8300/boot/compressed/vmlinux.scr | 9 -
arch/h8300/boot/dts/Makefile | 6 -
arch/h8300/boot/dts/edosk2674.dts | 108 -----
arch/h8300/boot/dts/h8300h_sim.dts | 97 -----
arch/h8300/boot/dts/h8s_sim.dts | 100 -----
arch/h8300/configs/edosk2674_defconfig | 48 ---
arch/h8300/configs/h8300h-sim_defconfig | 48 ---
arch/h8300/configs/h8s-sim_defconfig | 48 ---
arch/h8300/include/asm/Kbuild | 8 -
arch/h8300/include/asm/bitops.h | 179 ---------
arch/h8300/include/asm/bug.h | 13 -
arch/h8300/include/asm/byteorder.h | 7 -
arch/h8300/include/asm/cache.h | 12 -
arch/h8300/include/asm/elf.h | 102 -----
arch/h8300/include/asm/flat.h | 36 --
arch/h8300/include/asm/hash.h | 54 ---
arch/h8300/include/asm/io.h | 67 ----
arch/h8300/include/asm/irq.h | 25 --
arch/h8300/include/asm/irqflags.h | 97 -----
arch/h8300/include/asm/kgdb.h | 45 ---
arch/h8300/include/asm/mmu_context.h | 6 -
arch/h8300/include/asm/page.h | 17 -
arch/h8300/include/asm/page_offset.h | 2 -
arch/h8300/include/asm/pgtable.h | 43 --
arch/h8300/include/asm/processor.h | 126 ------
arch/h8300/include/asm/ptrace.h | 39 --
arch/h8300/include/asm/signal.h | 23 --
arch/h8300/include/asm/smp.h | 1 -
arch/h8300/include/asm/string.h | 18 -
arch/h8300/include/asm/switch_to.h | 52 ---
arch/h8300/include/asm/syscall.h | 43 --
arch/h8300/include/asm/thread_info.h | 102 -----
arch/h8300/include/asm/tlb.h | 7 -
arch/h8300/include/asm/traps.h | 41 --
arch/h8300/include/asm/user.h | 71 ----
arch/h8300/include/asm/vmalloc.h | 4 -
arch/h8300/include/uapi/asm/Kbuild | 2 -
arch/h8300/include/uapi/asm/byteorder.h | 7 -
arch/h8300/include/uapi/asm/posix_types.h | 13 -
arch/h8300/include/uapi/asm/ptrace.h | 43 --
arch/h8300/include/uapi/asm/sigcontext.h | 19 -
arch/h8300/include/uapi/asm/signal.h | 92 -----
arch/h8300/include/uapi/asm/unistd.h | 8 -
arch/h8300/kernel/.gitignore | 2 -
arch/h8300/kernel/Makefile | 22 --
arch/h8300/kernel/asm-offsets.c | 70 ----
arch/h8300/kernel/entry.S | 433 ---------------------
arch/h8300/kernel/h8300_ksyms.c | 35 --
arch/h8300/kernel/head_ram.S | 60 ---
arch/h8300/kernel/head_rom.S | 111 ------
arch/h8300/kernel/irq.c | 99 -----
arch/h8300/kernel/kgdb.c | 135 -------
arch/h8300/kernel/module.c | 71 ----
arch/h8300/kernel/process.c | 173 --------
arch/h8300/kernel/ptrace.c | 199 ----------
arch/h8300/kernel/ptrace_h.c | 256 ------------
arch/h8300/kernel/ptrace_s.c | 44 ---
arch/h8300/kernel/setup.c | 213 ----------
arch/h8300/kernel/signal.c | 287 --------------
arch/h8300/kernel/sim-console.c | 31 --
arch/h8300/kernel/syscalls.c | 15 -
arch/h8300/kernel/traps.c | 156 --------
arch/h8300/kernel/vmlinux.lds.S | 69 ----
arch/h8300/lib/Makefile | 9 -
arch/h8300/lib/abs.S | 21 -
arch/h8300/lib/ashldi3.c | 25 --
arch/h8300/lib/ashrdi3.c | 25 --
arch/h8300/lib/delay.c | 41 --
arch/h8300/lib/libgcc.h | 78 ----
arch/h8300/lib/lshrdi3.c | 24 --
arch/h8300/lib/memcpy.S | 86 ----
arch/h8300/lib/memset.S | 70 ----
arch/h8300/lib/moddivsi3.S | 73 ----
arch/h8300/lib/modsi3.S | 73 ----
arch/h8300/lib/muldi3.c | 45 ---
arch/h8300/lib/mulsi3.S | 39 --
arch/h8300/lib/ucmpdi2.c | 18 -
arch/h8300/lib/udivsi3.S | 77 ----
arch/h8300/mm/Makefile | 6 -
arch/h8300/mm/fault.c | 57 ---
arch/h8300/mm/init.c | 95 -----
arch/h8300/mm/memory.c | 52 ---
arch/mips/include/uapi/asm/stat.h | 20 +-
arch/openrisc/Kconfig | 1 -
arch/openrisc/include/asm/Kbuild | 5 +-
arch/openrisc/include/asm/spinlock.h | 27 --
arch/openrisc/include/asm/spinlock_types.h | 7 -
arch/powerpc/include/uapi/asm/stat.h | 10 +-
arch/riscv/Kconfig | 1 +
arch/riscv/include/asm/Kbuild | 4 +
arch/riscv/include/asm/spinlock.h | 135 -------
arch/riscv/include/asm/spinlock_types.h | 25 --
arch/sparc/include/uapi/asm/stat.h | 12 +-
drivers/clk/Makefile | 1 -
drivers/clk/h8300/Makefile | 3 -
drivers/clk/h8300/clk-div.c | 57 ---
drivers/clk/h8300/clk-h8s2678.c | 145 -------
drivers/clocksource/Kconfig | 20 -
drivers/clocksource/Makefile | 3 -
drivers/clocksource/h8300_timer16.c | 192 ---------
drivers/clocksource/h8300_timer8.c | 211 ----------
drivers/clocksource/h8300_tpu.c | 158 --------
drivers/irqchip/Kconfig | 11 -
drivers/irqchip/Makefile | 2 -
drivers/irqchip/irq-renesas-h8300h.c | 94 -----
drivers/irqchip/irq-renesas-h8s.c | 102 -----
drivers/net/ethernet/smsc/Kconfig | 4 +-
drivers/net/ethernet/smsc/smc91x.h | 11 -
drivers/tty/serial/Kconfig | 5 +-
include/asm-generic/qrwlock.h | 4 +
include/asm-generic/qspinlock.h | 29 ++
include/asm-generic/spinlock.h | 94 ++++-
include/asm-generic/spinlock_types.h | 17 +
include/uapi/linux/agpgart.h | 9 +-
init/Kconfig | 3 +-
scripts/dtc/include-prefixes/h8300 | 1 -
tools/arch/h8300/include/asm/bitsperlong.h | 15 -
tools/arch/h8300/include/uapi/asm/mman.h | 7 -
usr/dummy-include/stdbool.h | 7 +
usr/dummy-include/stdlib.h | 7 +
usr/include/Makefile | 12 +-
185 files changed, 192 insertions(+), 7354 deletions(-)
delete mode 100644
Documentation/devicetree/bindings/clock/renesas,h8300-div-clock.txt
delete mode 100644
Documentation/devicetree/bindings/clock/renesas,h8s2678-pll-clock.txt
delete mode 100644 Documentation/devicetree/bindings/h8300/cpu.txt
delete mode 100644
Documentation/devicetree/bindings/interrupt-controller/renesas,h8300h-intc.txt
delete mode 100644
Documentation/devicetree/bindings/interrupt-controller/renesas,h8s-intc.txt
delete mode 100644
Documentation/devicetree/bindings/memory-controllers/renesas,h8300-bsc.yaml
delete mode 100644
Documentation/devicetree/bindings/timer/renesas,16bit-timer.txt
delete mode 100644
Documentation/devicetree/bindings/timer/renesas,8bit-timer.txt
delete mode 100644 arch/csky/include/asm/spinlock.h
delete mode 100644 arch/csky/include/asm/spinlock_types.h
delete mode 100644 arch/h8300/Kbuild
delete mode 100644 arch/h8300/Kconfig
delete mode 100644 arch/h8300/Kconfig.cpu
delete mode 100644 arch/h8300/Kconfig.debug
delete mode 100644 arch/h8300/Makefile
delete mode 100644 arch/h8300/boot/Makefile
delete mode 100644 arch/h8300/boot/compressed/Makefile
delete mode 100644 arch/h8300/boot/compressed/head.S
delete mode 100644 arch/h8300/boot/compressed/misc.c
delete mode 100644 arch/h8300/boot/compressed/vmlinux.lds
delete mode 100644 arch/h8300/boot/compressed/vmlinux.scr
delete mode 100644 arch/h8300/boot/dts/Makefile
delete mode 100644 arch/h8300/boot/dts/edosk2674.dts
delete mode 100644 arch/h8300/boot/dts/h8300h_sim.dts
delete mode 100644 arch/h8300/boot/dts/h8s_sim.dts
delete mode 100644 arch/h8300/configs/edosk2674_defconfig
delete mode 100644 arch/h8300/configs/h8300h-sim_defconfig
delete mode 100644 arch/h8300/configs/h8s-sim_defconfig
delete mode 100644 arch/h8300/include/asm/Kbuild
delete mode 100644 arch/h8300/include/asm/bitops.h
delete mode 100644 arch/h8300/include/asm/bug.h
delete mode 100644 arch/h8300/include/asm/byteorder.h
delete mode 100644 arch/h8300/include/asm/cache.h
delete mode 100644 arch/h8300/include/asm/elf.h
delete mode 100644 arch/h8300/include/asm/flat.h
delete mode 100644 arch/h8300/include/asm/hash.h
delete mode 100644 arch/h8300/include/asm/io.h
delete mode 100644 arch/h8300/include/asm/irq.h
delete mode 100644 arch/h8300/include/asm/irqflags.h
delete mode 100644 arch/h8300/include/asm/kgdb.h
delete mode 100644 arch/h8300/include/asm/mmu_context.h
delete mode 100644 arch/h8300/include/asm/page.h
delete mode 100644 arch/h8300/include/asm/page_offset.h
delete mode 100644 arch/h8300/include/asm/pgtable.h
delete mode 100644 arch/h8300/include/asm/processor.h
delete mode 100644 arch/h8300/include/asm/ptrace.h
delete mode 100644 arch/h8300/include/asm/signal.h
delete mode 100644 arch/h8300/include/asm/smp.h
delete mode 100644 arch/h8300/include/asm/string.h
delete mode 100644 arch/h8300/include/asm/switch_to.h
delete mode 100644 arch/h8300/include/asm/syscall.h
delete mode 100644 arch/h8300/include/asm/thread_info.h
delete mode 100644 arch/h8300/include/asm/tlb.h
delete mode 100644 arch/h8300/include/asm/traps.h
delete mode 100644 arch/h8300/include/asm/user.h
delete mode 100644 arch/h8300/include/asm/vmalloc.h
delete mode 100644 arch/h8300/include/uapi/asm/Kbuild
delete mode 100644 arch/h8300/include/uapi/asm/byteorder.h
delete mode 100644 arch/h8300/include/uapi/asm/posix_types.h
delete mode 100644 arch/h8300/include/uapi/asm/ptrace.h
delete mode 100644 arch/h8300/include/uapi/asm/sigcontext.h
delete mode 100644 arch/h8300/include/uapi/asm/signal.h
delete mode 100644 arch/h8300/include/uapi/asm/unistd.h
delete mode 100644 arch/h8300/kernel/.gitignore
delete mode 100644 arch/h8300/kernel/Makefile
delete mode 100644 arch/h8300/kernel/asm-offsets.c
delete mode 100644 arch/h8300/kernel/entry.S
delete mode 100644 arch/h8300/kernel/h8300_ksyms.c
delete mode 100644 arch/h8300/kernel/head_ram.S
delete mode 100644 arch/h8300/kernel/head_rom.S
delete mode 100644 arch/h8300/kernel/irq.c
delete mode 100644 arch/h8300/kernel/kgdb.c
delete mode 100644 arch/h8300/kernel/module.c
delete mode 100644 arch/h8300/kernel/process.c
delete mode 100644 arch/h8300/kernel/ptrace.c
delete mode 100644 arch/h8300/kernel/ptrace_h.c
delete mode 100644 arch/h8300/kernel/ptrace_s.c
delete mode 100644 arch/h8300/kernel/setup.c
delete mode 100644 arch/h8300/kernel/signal.c
delete mode 100644 arch/h8300/kernel/sim-console.c
delete mode 100644 arch/h8300/kernel/syscalls.c
delete mode 100644 arch/h8300/kernel/traps.c
delete mode 100644 arch/h8300/kernel/vmlinux.lds.S
delete mode 100644 arch/h8300/lib/Makefile
delete mode 100644 arch/h8300/lib/abs.S
delete mode 100644 arch/h8300/lib/ashldi3.c
delete mode 100644 arch/h8300/lib/ashrdi3.c
delete mode 100644 arch/h8300/lib/delay.c
delete mode 100644 arch/h8300/lib/libgcc.h
delete mode 100644 arch/h8300/lib/lshrdi3.c
delete mode 100644 arch/h8300/lib/memcpy.S
delete mode 100644 arch/h8300/lib/memset.S
delete mode 100644 arch/h8300/lib/moddivsi3.S
delete mode 100644 arch/h8300/lib/modsi3.S
delete mode 100644 arch/h8300/lib/muldi3.c
delete mode 100644 arch/h8300/lib/mulsi3.S
delete mode 100644 arch/h8300/lib/ucmpdi2.c
delete mode 100644 arch/h8300/lib/udivsi3.S
delete mode 100644 arch/h8300/mm/Makefile
delete mode 100644 arch/h8300/mm/fault.c
delete mode 100644 arch/h8300/mm/init.c
delete mode 100644 arch/h8300/mm/memory.c
delete mode 100644 arch/openrisc/include/asm/spinlock.h
delete mode 100644 arch/openrisc/include/asm/spinlock_types.h
delete mode 100644 arch/riscv/include/asm/spinlock.h
delete mode 100644 arch/riscv/include/asm/spinlock_types.h
delete mode 100644 drivers/clk/h8300/Makefile
delete mode 100644 drivers/clk/h8300/clk-div.c
delete mode 100644 drivers/clk/h8300/clk-h8s2678.c
delete mode 100644 drivers/clocksource/h8300_timer16.c
delete mode 100644 drivers/clocksource/h8300_timer8.c
delete mode 100644 drivers/clocksource/h8300_tpu.c
delete mode 100644 drivers/irqchip/irq-renesas-h8300h.c
delete mode 100644 drivers/irqchip/irq-renesas-h8s.c
create mode 100644 include/asm-generic/spinlock_types.h
delete mode 120000 scripts/dtc/include-prefixes/h8300
delete mode 100644 tools/arch/h8300/include/asm/bitsperlong.h
delete mode 100644 tools/arch/h8300/include/uapi/asm/mman.h
create mode 100644 usr/dummy-include/stdbool.h
create mode 100644 usr/dummy-include/stdlib.h
^ permalink raw reply [relevance 2%]
* Re: [PATCH v1 0/4] riscv: mm: add Svnapot support
2022-04-11 14:15 4% [PATCH v1 0/4] riscv: mm: add Svnapot support panqinglin2020
2022-04-11 14:15 10% ` [PATCH v1 4/4] mm: support Svnapot in huge vmap panqinglin2020
@ 2022-05-20 17:10 0% ` Palmer Dabbelt
1 sibling, 0 replies; 200+ results
From: Palmer Dabbelt @ 2022-05-20 17:10 UTC (permalink / raw)
To: panqinglin2020
Cc: Paul Walmsley, aou, linux-riscv, jeff, xuyinan, panqinglin2020
On Mon, 11 Apr 2022 07:15:32 PDT (-0700), panqinglin2020@iscas.ac.cn wrote:
> From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
>
> Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
> page. This patch set is for using Svnapot in Linux Kernel's boot process
> and hugetlb fs.
>
> Since Svnapot is just stable recently, and there seems no official way to
> determine if the CPU supports Svnapot at runtime. This patchset adds a Kconfig
> item for using Svnapot in "Platform type"->"Svnapot support". Its default value
> is off, and people can set it on when their CPU supports Svnapot.
>
> Qemu support for Svnapot has been accepted but still not merged into master.
> So the qemu which we use to test this patchset is current in this repo (it
> contains qemu Svnapot patchset):
> https://github.com/plctlab/plct-qemu/tree/plct-virtmem-dev
>
> Tested on:
> - qemu rv64 with "Svnapot support" off.
> - plct-qemu rv64 with "Svnapot support" on.
>
>
> Qinglin Pan (4):
> mm: modify pte format for Svnapot
> mm: support Svnapot in physical page linear-mapping
> mm: support Svnapot in hugetlb page
> mm: support Svnapot in huge vmap
>
> arch/riscv/Kconfig | 10 +-
> arch/riscv/include/asm/hugetlb.h | 31 +++-
> arch/riscv/include/asm/page.h | 2 +-
> arch/riscv/include/asm/pgtable-bits.h | 31 ++++
> arch/riscv/include/asm/pgtable.h | 68 ++++++++
> arch/riscv/include/asm/vmalloc.h | 20 +++
> arch/riscv/mm/hugetlbpage.c | 236 +++++++++++++++++++++++++-
> arch/riscv/mm/init.c | 29 +++-
> 8 files changed, 416 insertions(+), 11 deletions(-)
Sorry for being slow here, I got pretty buried this round.
This generally looks OK, but we definately need dynamic detection. It
should be super easy to do that with the new framework, as we essentialy
just need to check for Svnapot on allocation.
Aside from that, just a minor comment: it feels like Svnapot is simple
enough that we should be able to fit it into the generic mapping code.
No big deal if it doesn't work and I haven't tried to do so, but I think
it's worth a shot.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 0%]
* Re: [PATCH v4 bpf 0/4] vmalloc: bpf: introduce VM_ALLOW_HUGE_VMAP
@ 2022-04-21 8:57 5% ` Nicholas Piggin
0 siblings, 0 replies; 200+ results
From: Nicholas Piggin @ 2022-04-21 8:57 UTC (permalink / raw)
To: Linus Torvalds
Cc: akpm, ast, bp, bpf, daniel, dborkman, edumazet, hch, hpa,
imbrenda, Kernel Team, linux-kernel, linux-mm, mbenes, mcgrof,
pmladek, Edgecombe, Rick P, Mike Rapoport, song, Song Liu
Excerpts from Linus Torvalds's message of April 21, 2022 3:48 pm:
> On Wed, Apr 20, 2022 at 8:25 PM Nicholas Piggin <npiggin@gmail.com> wrote:
>>
>> Why not just revert fac54e2bfb5b ?
>
> That would be stupid, with no sane way forward.
>
> The fact is, HUGE_VMALLOC was badly misdesigned, and enabling it on
> x86 only ended up showing the problems.
>
> It wasn't fac54e2bfb5b that was the fundamental issue. It was the
> whole "oh, we should never have done it that way to begin with".
>
> The whole initial notion that HAVE_ARCH_HUGE_VMALLOC means that there
> must be no PAGE_SIZE pte assumptions was simply broken.
It didn't have that requirement so much as required it to be
accounted for if the arch enabled it.
> There were
> actual real cases that had those assumptions, and the whole "let's
> just change vmalloc behavior by default and then people who don't like
> it can opt out" was just fundamentally a really bad idea.
>
> Power had that random "oh, we don't want to do this for module_alloc",
> which you had a comment about "more testing" for.
>
> And s390 had a case of hardware limitations where it didn't work for some cases.
>
> And then enabling it on x86 turned up more issues.
Those were (AFAIKS) all in arch code though. The patch was the
fundamental issue for x86 because it had bugs. I don't quite see
what your objection is to power and s390's working implementations.
Some parts of the arch code could not cope with hue PTEs so they
used small.
Switching the API around to expect non-arch code to know whether or
not it can use huge mappings is much worse. How is
alloc_large_system_hash expected to know whether it may use huge
pages on any given half-broken arch like x86?
It's the same like we have huge iomap for a long time. No driver
should be expect to have to understand that.
> So yes, commit fac54e2bfb5b _exposed_ things to a much larger
> audience. But all it just made clear was that your original notion of
> "let's change behavior and randomly disable it as things turn up" was
> just broken.
>
> Including "small" details like the fact that apparently
> VM_FLUSH_RESET_PERMS didn't work correctly any more for this, which
> caused issues for bpf, and that [PATCH 4/4].
Which is another arch detail.
> And yes, there was a
> half-arsed comment ("may require extra work") to that effect in the
> powerpc __module_alloc() function, but it had been left to others to
> notice separately.
It had a comment in arch/Kconfig about it. Combing through the
details of every arch is left to others who choose to opt-in though.
> So no. We're not going back to that completely broken model. The
> lagepage thing needs to be opt-in, and needs a lot more care.
I don't think it should be opt-in at the caller level (at least not
outside arch/). As I said earlier maybe we end up finding fragmentation
to be a problem that can't be solved with simple heuristics tweaking
so we could think about adding something to give size/speed hint
tradeoff, but as for "can this caller use huge vmap backed memory",
it should not be something drivers or core code has to think about.
Thanks,
Nick
^ permalink raw reply [relevance 5%]
* Re: [PATCH v4 bpf 0/4] vmalloc: bpf: introduce VM_ALLOW_HUGE_VMAP
@ 2022-04-21 3:19 5% ` Nicholas Piggin
1 sibling, 0 replies; 200+ results
From: Nicholas Piggin @ 2022-04-21 3:19 UTC (permalink / raw)
To: Christoph Hellwig, Luis Chamberlain
Cc: akpm, ast, bpf, daniel, imbrenda, kernel-team, linux-kernel,
linux-mm, rick.p.edgecombe, Song Liu
Excerpts from Christoph Hellwig's message of April 16, 2022 3:08 pm:
> On Fri, Apr 15, 2022 at 12:05:42PM -0700, Luis Chamberlain wrote:
>> Looks good except for that I think this should just wait for v5.19. The
>> fixes are so large I can't see why this needs to be rushed in other than
>> the first assumptions of the optimizations had some flaws addressed here.
>
> Patches 1 and 2 are bug fixes for regressions caused by using huge page
> backed vmalloc by default. So I think we do need it for 5.18.
No, the huge vmap patch should just be reverted because that caused
the regression, rather than adding another hack on top of it. All the
breakage is in arch/x86/, it doesn't make sense to change this code
and APIs outside x86 to work around it.
And once they are fixed these shouldn't be needed.
Thanks,
Nick
^ permalink raw reply [relevance 5%]
* [PATCH v1 0/4] riscv: mm: add Svnapot support
@ 2022-04-11 14:15 4% panqinglin2020
2022-04-11 14:15 10% ` [PATCH v1 4/4] mm: support Svnapot in huge vmap panqinglin2020
2022-05-20 17:10 0% ` [PATCH v1 0/4] riscv: mm: add Svnapot support Palmer Dabbelt
0 siblings, 2 replies; 200+ results
From: panqinglin2020 @ 2022-04-11 14:15 UTC (permalink / raw)
To: paul.walmsley, palmer, aou, linux-riscv; +Cc: jeff, xuyinan, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
Svnapot is a RISC-V extension for marking contiguous 4K pages as a non-4K
page. This patch set is for using Svnapot in Linux Kernel's boot process
and hugetlb fs.
Since Svnapot is just stable recently, and there seems no official way to
determine if the CPU supports Svnapot at runtime. This patchset adds a Kconfig
item for using Svnapot in "Platform type"->"Svnapot support". Its default value
is off, and people can set it on when their CPU supports Svnapot.
Qemu support for Svnapot has been accepted but still not merged into master.
So the qemu which we use to test this patchset is current in this repo (it
contains qemu Svnapot patchset):
https://github.com/plctlab/plct-qemu/tree/plct-virtmem-dev
Tested on:
- qemu rv64 with "Svnapot support" off.
- plct-qemu rv64 with "Svnapot support" on.
Qinglin Pan (4):
mm: modify pte format for Svnapot
mm: support Svnapot in physical page linear-mapping
mm: support Svnapot in hugetlb page
mm: support Svnapot in huge vmap
arch/riscv/Kconfig | 10 +-
arch/riscv/include/asm/hugetlb.h | 31 +++-
arch/riscv/include/asm/page.h | 2 +-
arch/riscv/include/asm/pgtable-bits.h | 31 ++++
arch/riscv/include/asm/pgtable.h | 68 ++++++++
arch/riscv/include/asm/vmalloc.h | 20 +++
arch/riscv/mm/hugetlbpage.c | 236 +++++++++++++++++++++++++-
arch/riscv/mm/init.c | 29 +++-
8 files changed, 416 insertions(+), 11 deletions(-)
--
2.35.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [relevance 4%]
* [PATCH v1 4/4] mm: support Svnapot in huge vmap
2022-04-11 14:15 4% [PATCH v1 0/4] riscv: mm: add Svnapot support panqinglin2020
@ 2022-04-11 14:15 10% ` panqinglin2020
2022-05-20 17:10 0% ` [PATCH v1 0/4] riscv: mm: add Svnapot support Palmer Dabbelt
1 sibling, 0 replies; 200+ results
From: panqinglin2020 @ 2022-04-11 14:15 UTC (permalink / raw)
To: paul.walmsley, palmer, aou, linux-riscv; +Cc: jeff, xuyinan, Qinglin Pan
From: Qinglin Pan <panqinglin2020@iscas.ac.cn>
The HAVE_ARCH_HUGE_VMAP option can be used to help implement arch
special huge vmap size. This patch selects this option by default and
re-writes the arch_vmap_pte_range_map_size for Svnapot 64KB size.
It can be tested when booting kernel in qemu with pci device, which
will make the kernel to call pci driver using ioremap, and the
re-written function will be called.
Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn>
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 490d52228997..c38b5920a0a8 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -68,6 +68,7 @@ config RISCV
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
select HAVE_ARCH_AUDITSYSCALL
+ select HAVE_ARCH_HUGE_VMAP
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL
select HAVE_ARCH_KASAN if MMU && 64BIT
diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
index f72cdb64f427..510cce799a8a 100644
--- a/arch/riscv/include/asm/pgtable.h
+++ b/arch/riscv/include/asm/pgtable.h
@@ -680,6 +680,46 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma,
}
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
+static inline int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+static inline int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
+{
+ return 0;
+}
+
+static inline int p4d_clear_huge(p4d_t *p4d)
+{
+ return 0;
+}
+
+static inline int pud_clear_huge(pud_t *pud)
+{
+ return 0;
+}
+
+static inline int pmd_clear_huge(pmd_t *pmd)
+{
+ return 0;
+}
+
+static inline int p4d_free_pud_page(p4d_t *p4d, unsigned long addr)
+{
+ return 0;
+}
+
+static inline int pud_free_pmd_page(pud_t *pud, unsigned long addr)
+{
+ return 0;
+}
+
+static inline int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
+{
+ return 0;
+}
+
/*
* Encode and decode a swap entry
*
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index ff9abc00d139..2c1a41c5ca8d 100644
--- a/arch/riscv/include/asm/vmalloc.h
+++ b/arch/riscv/include/asm/vmalloc.h
@@ -1,4 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _ASM_RISCV_VMALLOC_H
#define _ASM_RISCV_VMALLOC_H
+#include <asm/pgtable-bits.h>
+
+#ifdef CONFIG_SVNAPOT
+#define arch_vmap_pte_range_map_size arch_vmap_pte_range_map_size
+static inline unsigned long arch_vmap_pte_range_map_size(unsigned long addr, unsigned long end,
+ u64 pfn, unsigned int max_page_shift)
+{
+ bool is_napot_addr = !(addr & NAPOT_CONT64KB_MASK);
+ bool pfn_align_napot = !(pfn & (NAPOT_64KB_PTE_NUM - 1UL));
+ bool space_enough = ((end - addr) >= NAPOT_CONT64KB_SIZE);
+
+ if (is_napot_addr && pfn_align_napot && space_enough
+ && max_page_shift >= NAPOT_CONT64KB_SHIFT)
+ return NAPOT_CONT64KB_SIZE;
+
+ return PAGE_SIZE;
+}
+#endif /*CONFIG_SVNAPOT*/
+
#endif /* _ASM_RISCV_VMALLOC_H */
--
2.35.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [relevance 10%]
* [GIT PULL] asm-generic updates for 5.18
@ 2022-03-23 22:15 1% Arnd Bergmann
0 siblings, 0 replies; 200+ results
From: Arnd Bergmann @ 2022-03-23 22:15 UTC (permalink / raw)
To: Linus Torvalds
Cc: Linux Kernel Mailing List, linux-arch, Alan Kao, Greentime Hu,
Masahiro Yamada
The following changes since commit dfd42facf1e4ada021b939b4e19c935dcdd55566:
Linux 5.17-rc3 (2022-02-06 12:20:50 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git
tags/asm-generic-5.18
for you to fetch changes up to aec499c75cf8e0b599be4d559e6922b613085f8f:
nds32: Remove the architecture (2022-03-07 13:54:59 +0100)
----------------------------------------------------------------
asm-generic updates for 5.18
There are three sets of updates for 5.18 in the asm-generic tree:
- The set_fs()/get_fs() infrastructure gets removed for good. This
was already gone from all major architectures, but now we can
finally remove it everywhere, which loses some particularly
tricky and error-prone code.
There is a small merge conflict against a parisc cleanup, the
solution is to use their new version.
- The nds32 architecture ends its tenure in the Linux kernel. The
hardware is still used and the code is in reasonable shape, but
the mainline port is not actively maintained any more, as all
remaining users are thought to run vendor kernels that would never
be updated to a future release.
There are some obvious conflicts against changes to the removed
files.
- A series from Masahiro Yamada cleans up some of the uapi header
files to pass the compile-time checks.
----------------------------------------------------------------
Alan Kao (1):
nds32: Remove the architecture
Arnd Bergmann (21):
uaccess: fix integer overflow on access_ok()
Merge branch 'asm-generic-compile-test' into asm-generic
sparc64: fix building assembly files
uaccess: fix nios2 and microblaze get_user_8()
nds32: fix access_ok() checks in get/put_user
sparc64: add __{get,put}_kernel_nofault()
x86: remove __range_not_ok()
x86: use more conventional access_ok() definition
nios2: drop access_ok() check from __put_user()
uaccess: add generic __{get,put}_kernel_nofault
MIPS: use simpler access_ok()
m68k: fix access_ok for coldfire
arm64: simplify access_ok()
uaccess: fix type mismatch warnings from access_ok()
uaccess: generalize access_ok()
lib/test_lockup: fix kernel pointer check for separate address spaces
sparc64: remove CONFIG_SET_FS support
sh: remove CONFIG_SET_FS support
ia64: remove CONFIG_SET_FS support
uaccess: remove CONFIG_SET_FS
Merge branch 'set_fs-4' of
git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic into
asm-generic
Masahiro Yamada (6):
signal.h: add linux/signal.h and asm/signal.h to UAPI
compile-test coverage
shmbuf.h: add asm/shmbuf.h to UAPI compile-test coverage
android/binder.h: add linux/android/binder(fs).h to UAPI
compile-test coverage
fsmap.h: add linux/fsmap.h to UAPI compile-test coverage
kexec.h: add linux/kexec.h to UAPI compile-test coverage
reiserfs_xattr.h: add linux/reiserfs_xattr.h to UAPI compile-test coverage
Thomas Bogendoerfer (1):
MIPS: Handle address errors for accesses above CPU max virtual
user address
.../interrupt-controller/andestech,ativic32.txt | 19 -
.../devicetree/bindings/nds32/andestech-boards | 40 -
Documentation/devicetree/bindings/nds32/atl2c.txt | 28 -
Documentation/devicetree/bindings/nds32/cpus.txt | 38 -
.../devicetree/bindings/perf/nds32v3-pmu.txt | 17 -
.../bindings/timer/andestech,atcpit100-timer.txt | 33 -
.../features/core/cBPF-JIT/arch-support.txt | 1 -
.../features/core/eBPF-JIT/arch-support.txt | 1 -
.../core/generic-idle-thread/arch-support.txt | 1 -
.../features/core/jump-labels/arch-support.txt | 1 -
.../core/thread-info-in-task/arch-support.txt | 1 -
.../features/core/tracehook/arch-support.txt | 1 -
.../features/debug/KASAN/arch-support.txt | 1 -
.../debug/debug-vm-pgtable/arch-support.txt | 1 -
.../debug/gcov-profile-all/arch-support.txt | 1 -
Documentation/features/debug/kcov/arch-support.txt | 1 -
Documentation/features/debug/kgdb/arch-support.txt | 1 -
.../features/debug/kmemleak/arch-support.txt | 1 -
.../debug/kprobes-on-ftrace/arch-support.txt | 1 -
.../features/debug/kprobes/arch-support.txt | 1 -
.../features/debug/kretprobes/arch-support.txt | 1 -
.../features/debug/optprobes/arch-support.txt | 1 -
.../features/debug/stackprotector/arch-support.txt | 1 -
.../features/debug/uprobes/arch-support.txt | 1 -
.../debug/user-ret-profiler/arch-support.txt | 1 -
.../features/io/dma-contiguous/arch-support.txt | 1 -
.../locking/cmpxchg-local/arch-support.txt | 1 -
.../features/locking/lockdep/arch-support.txt | 1 -
.../locking/queued-rwlocks/arch-support.txt | 1 -
.../locking/queued-spinlocks/arch-support.txt | 1 -
.../features/perf/kprobes-event/arch-support.txt | 1 -
.../features/perf/perf-regs/arch-support.txt | 1 -
.../features/perf/perf-stackdump/arch-support.txt | 1 -
.../sched/membarrier-sync-core/arch-support.txt | 1 -
.../features/sched/numa-balancing/arch-support.txt | 1 -
.../seccomp/seccomp-filter/arch-support.txt | 1 -
.../time/arch-tick-broadcast/arch-support.txt | 1 -
.../features/time/clockevents/arch-support.txt | 1 -
.../time/context-tracking/arch-support.txt | 1 -
.../features/time/irq-time-acct/arch-support.txt | 1 -
.../features/time/virt-cpuacct/arch-support.txt | 1 -
.../features/vm/ELF-ASLR/arch-support.txt | 1 -
.../features/vm/PG_uncached/arch-support.txt | 1 -
Documentation/features/vm/THP/arch-support.txt | 1 -
Documentation/features/vm/TLB/arch-support.txt | 1 -
.../features/vm/huge-vmap/arch-support.txt | 1 -
.../features/vm/ioremap_prot/arch-support.txt | 1 -
.../features/vm/pte_special/arch-support.txt | 1 -
MAINTAINERS | 12 -
arch/Kconfig | 10 +-
arch/alpha/Kconfig | 1 -
arch/alpha/include/asm/processor.h | 4 -
arch/alpha/include/asm/thread_info.h | 2 -
arch/alpha/include/asm/uaccess.h | 53 +-
arch/alpha/include/uapi/asm/signal.h | 2 +-
arch/arc/Kconfig | 1 -
arch/arc/include/asm/segment.h | 20 -
arch/arc/include/asm/thread_info.h | 3 -
arch/arc/include/asm/uaccess.h | 30 -
arch/arc/kernel/process.c | 2 +-
arch/arm/include/asm/uaccess.h | 22 +-
arch/arm/include/uapi/asm/signal.h | 2 +-
arch/arm/kernel/swp_emulate.c | 2 +-
arch/arm/kernel/traps.c | 2 +-
arch/arm/lib/uaccess_with_memcpy.c | 10 -
arch/arm64/include/asm/uaccess.h | 29 +-
arch/arm64/kernel/traps.c | 2 +-
arch/csky/Kconfig | 1 -
arch/csky/include/asm/processor.h | 2 -
arch/csky/include/asm/segment.h | 10 -
arch/csky/include/asm/thread_info.h | 2 -
arch/csky/include/asm/uaccess.h | 12 -
arch/csky/kernel/asm-offsets.c | 1 -
arch/csky/kernel/perf_callchain.c | 2 +-
arch/csky/kernel/signal.c | 2 +-
arch/h8300/Kconfig | 1 -
arch/h8300/include/asm/processor.h | 1 -
arch/h8300/include/asm/segment.h | 40 -
arch/h8300/include/asm/thread_info.h | 3 -
arch/h8300/include/uapi/asm/signal.h | 2 +-
arch/h8300/kernel/entry.S | 1 -
arch/h8300/kernel/head_ram.S | 1 -
arch/h8300/mm/init.c | 6 -
arch/h8300/mm/memory.c | 1 -
arch/hexagon/Kconfig | 1 -
arch/hexagon/include/asm/thread_info.h | 6 -
arch/hexagon/include/asm/uaccess.h | 25 -
arch/hexagon/kernel/process.c | 1 -
arch/ia64/Kconfig | 1 -
arch/ia64/include/asm/processor.h | 4 -
arch/ia64/include/asm/thread_info.h | 2 -
arch/ia64/include/asm/uaccess.h | 26 +-
arch/ia64/include/uapi/asm/signal.h | 2 +-
arch/ia64/kernel/unaligned.c | 60 +-
arch/m68k/Kconfig.cpu | 1 +
arch/m68k/include/asm/uaccess.h | 14 +-
arch/m68k/include/uapi/asm/signal.h | 2 +-
arch/microblaze/Kconfig | 1 -
arch/microblaze/include/asm/thread_info.h | 6 -
arch/microblaze/include/asm/uaccess.h | 61 +-
arch/microblaze/kernel/asm-offsets.c | 1 -
arch/microblaze/kernel/process.c | 1 -
arch/mips/include/asm/uaccess.h | 49 +-
arch/mips/include/uapi/asm/shmbuf.h | 7 +-
arch/mips/include/uapi/asm/signal.h | 2 +-
arch/mips/kernel/unaligned.c | 17 +
arch/nds32/Kbuild | 4 -
arch/nds32/Kconfig | 102 --
arch/nds32/Kconfig.cpu | 218 ---
arch/nds32/Kconfig.debug | 2 -
arch/nds32/Makefile | 63 -
arch/nds32/boot/.gitignore | 2 -
arch/nds32/boot/Makefile | 16 -
arch/nds32/boot/dts/Makefile | 2 -
arch/nds32/boot/dts/ae3xx.dts | 90 --
arch/nds32/configs/defconfig | 104 --
arch/nds32/include/asm/Kbuild | 8 -
arch/nds32/include/asm/assembler.h | 39 -
arch/nds32/include/asm/barrier.h | 15 -
arch/nds32/include/asm/bitfield.h | 985 -------------
arch/nds32/include/asm/cache.h | 12 -
arch/nds32/include/asm/cache_info.h | 13 -
arch/nds32/include/asm/cacheflush.h | 53 -
arch/nds32/include/asm/current.h | 12 -
arch/nds32/include/asm/delay.h | 39 -
arch/nds32/include/asm/elf.h | 180 ---
arch/nds32/include/asm/fixmap.h | 29 -
arch/nds32/include/asm/fpu.h | 126 --
arch/nds32/include/asm/fpuemu.h | 44 -
arch/nds32/include/asm/ftrace.h | 46 -
arch/nds32/include/asm/futex.h | 101 --
arch/nds32/include/asm/highmem.h | 65 -
arch/nds32/include/asm/io.h | 84 --
arch/nds32/include/asm/irqflags.h | 41 -
arch/nds32/include/asm/l2_cache.h | 137 --
arch/nds32/include/asm/linkage.h | 11 -
arch/nds32/include/asm/memory.h | 91 --
arch/nds32/include/asm/mmu.h | 12 -
arch/nds32/include/asm/mmu_context.h | 62 -
arch/nds32/include/asm/nds32.h | 82 --
arch/nds32/include/asm/nds32_fpu_inst.h | 109 --
arch/nds32/include/asm/page.h | 64 -
arch/nds32/include/asm/perf_event.h | 16 -
arch/nds32/include/asm/pgalloc.h | 62 -
arch/nds32/include/asm/pgtable.h | 377 -----
arch/nds32/include/asm/pmu.h | 386 -----
arch/nds32/include/asm/proc-fns.h | 44 -
arch/nds32/include/asm/processor.h | 104 --
arch/nds32/include/asm/ptrace.h | 77 -
arch/nds32/include/asm/sfp-machine.h | 158 ---
arch/nds32/include/asm/shmparam.h | 19 -
arch/nds32/include/asm/stacktrace.h | 39 -
arch/nds32/include/asm/string.h | 17 -
arch/nds32/include/asm/suspend.h | 11 -
arch/nds32/include/asm/swab.h | 35 -
arch/nds32/include/asm/syscall.h | 142 --
arch/nds32/include/asm/syscalls.h | 14 -
arch/nds32/include/asm/thread_info.h | 76 -
arch/nds32/include/asm/tlb.h | 11 -
arch/nds32/include/asm/tlbflush.h | 46 -
arch/nds32/include/asm/uaccess.h | 286 ----
arch/nds32/include/asm/unistd.h | 6 -
arch/nds32/include/asm/vdso.h | 24 -
arch/nds32/include/asm/vdso_datapage.h | 37 -
arch/nds32/include/asm/vdso_timer_info.h | 14 -
arch/nds32/include/asm/vermagic.h | 9 -
arch/nds32/include/asm/vmalloc.h | 4 -
arch/nds32/include/uapi/asm/Kbuild | 2 -
arch/nds32/include/uapi/asm/auxvec.h | 19 -
arch/nds32/include/uapi/asm/byteorder.h | 13 -
arch/nds32/include/uapi/asm/cachectl.h | 14 -
arch/nds32/include/uapi/asm/fp_udfiex_crtl.h | 16 -
arch/nds32/include/uapi/asm/param.h | 11 -
arch/nds32/include/uapi/asm/ptrace.h | 25 -
arch/nds32/include/uapi/asm/sigcontext.h | 84 --
arch/nds32/include/uapi/asm/unistd.h | 16 -
arch/nds32/kernel/.gitignore | 2 -
arch/nds32/kernel/Makefile | 33 -
arch/nds32/kernel/asm-offsets.c | 28 -
arch/nds32/kernel/atl2c.c | 65 -
arch/nds32/kernel/cacheinfo.c | 49 -
arch/nds32/kernel/devtree.c | 19 -
arch/nds32/kernel/dma.c | 82 --
arch/nds32/kernel/ex-entry.S | 177 ---
arch/nds32/kernel/ex-exit.S | 193 ---
arch/nds32/kernel/ex-scall.S | 100 --
arch/nds32/kernel/fpu.c | 266 ----
arch/nds32/kernel/ftrace.c | 278 ----
arch/nds32/kernel/head.S | 197 ---
arch/nds32/kernel/irq.c | 9 -
arch/nds32/kernel/module.c | 278 ----
arch/nds32/kernel/nds32_ksyms.c | 25 -
arch/nds32/kernel/perf_event_cpu.c | 1500 --------------------
arch/nds32/kernel/pm.c | 80 --
arch/nds32/kernel/process.c | 257 ----
arch/nds32/kernel/ptrace.c | 118 --
arch/nds32/kernel/setup.c | 369 -----
arch/nds32/kernel/signal.c | 384 -----
arch/nds32/kernel/sleep.S | 131 --
arch/nds32/kernel/stacktrace.c | 53 -
arch/nds32/kernel/sys_nds32.c | 84 --
arch/nds32/kernel/syscall_table.c | 17 -
arch/nds32/kernel/time.c | 11 -
arch/nds32/kernel/traps.c | 354 -----
arch/nds32/kernel/vdso.c | 231 ---
arch/nds32/kernel/vdso/.gitignore | 2 -
arch/nds32/kernel/vdso/Makefile | 79 --
arch/nds32/kernel/vdso/datapage.S | 21 -
arch/nds32/kernel/vdso/gen_vdso_offsets.sh | 15 -
arch/nds32/kernel/vdso/gettimeofday.c | 269 ----
arch/nds32/kernel/vdso/note.S | 11 -
arch/nds32/kernel/vdso/sigreturn.S | 19 -
arch/nds32/kernel/vdso/vdso.S | 18 -
arch/nds32/kernel/vdso/vdso.lds.S | 75 -
arch/nds32/kernel/vmlinux.lds.S | 70 -
arch/nds32/lib/Makefile | 4 -
arch/nds32/lib/clear_user.S | 42 -
arch/nds32/lib/copy_from_user.S | 45 -
arch/nds32/lib/copy_page.S | 40 -
arch/nds32/lib/copy_template.S | 69 -
arch/nds32/lib/copy_to_user.S | 45 -
arch/nds32/lib/memcpy.S | 30 -
arch/nds32/lib/memmove.S | 70 -
arch/nds32/lib/memset.S | 33 -
arch/nds32/lib/memzero.S | 18 -
arch/nds32/math-emu/Makefile | 10 -
arch/nds32/math-emu/faddd.c | 24 -
arch/nds32/math-emu/fadds.c | 24 -
arch/nds32/math-emu/fcmpd.c | 24 -
arch/nds32/math-emu/fcmps.c | 24 -
arch/nds32/math-emu/fd2s.c | 22 -
arch/nds32/math-emu/fd2si.c | 30 -
arch/nds32/math-emu/fd2siz.c | 30 -
arch/nds32/math-emu/fd2ui.c | 30 -
arch/nds32/math-emu/fd2uiz.c | 30 -
arch/nds32/math-emu/fdivd.c | 27 -
arch/nds32/math-emu/fdivs.c | 26 -
arch/nds32/math-emu/fmuld.c | 23 -
arch/nds32/math-emu/fmuls.c | 23 -
arch/nds32/math-emu/fnegd.c | 21 -
arch/nds32/math-emu/fnegs.c | 21 -
arch/nds32/math-emu/fpuemu.c | 406 ------
arch/nds32/math-emu/fs2d.c | 23 -
arch/nds32/math-emu/fs2si.c | 29 -
arch/nds32/math-emu/fs2siz.c | 29 -
arch/nds32/math-emu/fs2ui.c | 29 -
arch/nds32/math-emu/fs2uiz.c | 30 -
arch/nds32/math-emu/fsi2d.c | 22 -
arch/nds32/math-emu/fsi2s.c | 22 -
arch/nds32/math-emu/fsqrtd.c | 21 -
arch/nds32/math-emu/fsqrts.c | 21 -
arch/nds32/math-emu/fsubd.c | 27 -
arch/nds32/math-emu/fsubs.c | 27 -
arch/nds32/math-emu/fui2d.c | 22 -
arch/nds32/math-emu/fui2s.c | 22 -
arch/nds32/mm/Makefile | 10 -
arch/nds32/mm/alignment.c | 578 --------
arch/nds32/mm/cacheflush.c | 338 -----
arch/nds32/mm/extable.c | 16 -
arch/nds32/mm/fault.c | 396 ------
arch/nds32/mm/init.c | 263 ----
arch/nds32/mm/mm-nds32.c | 96 --
arch/nds32/mm/mmap.c | 73 -
arch/nds32/mm/proc.c | 536 -------
arch/nds32/mm/tlb.c | 50 -
arch/nios2/Kconfig | 1 -
arch/nios2/include/asm/thread_info.h | 9 -
arch/nios2/include/asm/uaccess.h | 105 +-
arch/nios2/kernel/signal.c | 20 +-
arch/openrisc/Kconfig | 1 -
arch/openrisc/include/asm/thread_info.h | 7 -
arch/openrisc/include/asm/uaccess.h | 42 +-
arch/parisc/Kconfig | 1 +
arch/parisc/include/asm/futex.h | 6 -
arch/parisc/include/asm/uaccess.h | 13 +-
arch/parisc/include/uapi/asm/shmbuf.h | 2 +
arch/parisc/include/uapi/asm/signal.h | 2 +-
arch/parisc/kernel/signal.c | 4 +-
arch/parisc/lib/memcpy.c | 2 +-
arch/powerpc/include/asm/uaccess.h | 13 +-
arch/powerpc/include/uapi/asm/shmbuf.h | 5 +-
arch/powerpc/include/uapi/asm/signal.h | 2 +-
arch/powerpc/lib/sstep.c | 4 +-
arch/riscv/include/asm/uaccess.h | 33 +-
arch/riscv/kernel/perf_callchain.c | 4 +-
arch/s390/Kconfig | 1 +
arch/s390/include/asm/uaccess.h | 16 +-
arch/s390/include/uapi/asm/signal.h | 2 +-
arch/sh/Kconfig | 1 -
arch/sh/include/asm/processor.h | 1 -
arch/sh/include/asm/segment.h | 33 -
arch/sh/include/asm/thread_info.h | 2 -
arch/sh/include/asm/uaccess.h | 24 +-
arch/sh/kernel/io_trapped.c | 9 +-
arch/sh/kernel/process_32.c | 2 -
arch/sh/kernel/traps_32.c | 30 +-
arch/sparc/Kconfig | 2 +-
arch/sparc/include/asm/processor_32.h | 6 -
arch/sparc/include/asm/processor_64.h | 4 -
arch/sparc/include/asm/switch_to_64.h | 4 +-
arch/sparc/include/asm/thread_info_64.h | 4 +-
arch/sparc/include/asm/uaccess.h | 3 -
arch/sparc/include/asm/uaccess_32.h | 31 +-
arch/sparc/include/asm/uaccess_64.h | 106 +-
arch/sparc/include/uapi/asm/shmbuf.h | 5 +-
arch/sparc/include/uapi/asm/signal.h | 3 +-
arch/sparc/kernel/process_32.c | 2 -
arch/sparc/kernel/process_64.c | 12 -
arch/sparc/kernel/signal_32.c | 2 +-
arch/sparc/kernel/traps_64.c | 2 -
arch/sparc/lib/NGmemcpy.S | 3 +-
arch/sparc/mm/init_64.c | 7 +-
arch/um/include/asm/uaccess.h | 7 +-
arch/x86/events/core.c | 2 +-
arch/x86/include/asm/uaccess.h | 35 +-
arch/x86/include/uapi/asm/shmbuf.h | 6 +-
arch/x86/include/uapi/asm/signal.h | 2 +-
arch/x86/kernel/dumpstack.c | 6 -
arch/x86/kernel/stacktrace.c | 2 +-
arch/x86/lib/usercopy.c | 2 +-
arch/xtensa/Kconfig | 1 -
arch/xtensa/include/asm/asm-uaccess.h | 71 -
arch/xtensa/include/asm/processor.h | 7 -
arch/xtensa/include/asm/thread_info.h | 3 -
arch/xtensa/include/asm/uaccess.h | 26 +-
arch/xtensa/include/uapi/asm/shmbuf.h | 5 +-
arch/xtensa/include/uapi/asm/signal.h | 2 +-
arch/xtensa/kernel/asm-offsets.c | 3 -
drivers/clocksource/Kconfig | 9 -
drivers/clocksource/Makefile | 1 -
drivers/clocksource/timer-atcpit100.c | 266 ----
drivers/hid/uhid.c | 2 +-
drivers/irqchip/Makefile | 1 -
drivers/irqchip/irq-ativic32.c | 156 --
drivers/net/ethernet/faraday/Kconfig | 12 +-
drivers/scsi/sg.c | 5 -
drivers/video/console/Kconfig | 2 +-
fs/exec.c | 6 -
include/asm-generic/access_ok.h | 48 +
include/asm-generic/uaccess.h | 46 +-
include/linux/syscalls.h | 4 -
include/linux/uaccess.h | 59 +-
include/rdma/ib.h | 2 +-
include/uapi/asm-generic/shmbuf.h | 4 +-
include/uapi/asm-generic/signal.h | 2 +-
include/uapi/linux/android/binder.h | 4 +-
include/uapi/linux/fsmap.h | 2 +-
include/uapi/linux/kexec.h | 4 +-
include/uapi/linux/reiserfs_xattr.h | 2 +-
kernel/events/callchain.c | 4 -
kernel/events/core.c | 3 -
kernel/exit.c | 14 -
kernel/kthread.c | 5 -
kernel/stacktrace.c | 3 -
kernel/trace/bpf_trace.c | 4 -
lib/strncpy_from_user.c | 2 +-
lib/strnlen_user.c | 2 +-
lib/test_lockup.c | 11 +-
mm/maccess.c | 119 --
mm/memory.c | 8 -
net/bpfilter/bpfilter_kern.c | 2 +-
scripts/recordmcount.pl | 3 -
tools/include/asm/barrier.h | 2 -
tools/perf/arch/nds32/Build | 1 -
tools/perf/arch/nds32/util/Build | 1 -
tools/perf/arch/nds32/util/header.c | 29 -
tools/testing/selftests/vDSO/vdso_config.h | 4 -
usr/include/Makefile | 8 -
368 files changed, 436 insertions(+), 17120 deletions(-)
delete mode 100644
Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt
delete mode 100644 Documentation/devicetree/bindings/nds32/andestech-boards
delete mode 100644 Documentation/devicetree/bindings/nds32/atl2c.txt
delete mode 100644 Documentation/devicetree/bindings/nds32/cpus.txt
delete mode 100644 Documentation/devicetree/bindings/perf/nds32v3-pmu.txt
delete mode 100644
Documentation/devicetree/bindings/timer/andestech,atcpit100-timer.txt
delete mode 100644 arch/arc/include/asm/segment.h
delete mode 100644 arch/csky/include/asm/segment.h
delete mode 100644 arch/h8300/include/asm/segment.h
delete mode 100644 arch/nds32/Kbuild
delete mode 100644 arch/nds32/Kconfig
delete mode 100644 arch/nds32/Kconfig.cpu
delete mode 100644 arch/nds32/Kconfig.debug
delete mode 100644 arch/nds32/Makefile
delete mode 100644 arch/nds32/boot/.gitignore
delete mode 100644 arch/nds32/boot/Makefile
delete mode 100644 arch/nds32/boot/dts/Makefile
delete mode 100644 arch/nds32/boot/dts/ae3xx.dts
delete mode 100644 arch/nds32/configs/defconfig
delete mode 100644 arch/nds32/include/asm/Kbuild
delete mode 100644 arch/nds32/include/asm/assembler.h
delete mode 100644 arch/nds32/include/asm/barrier.h
delete mode 100644 arch/nds32/include/asm/bitfield.h
delete mode 100644 arch/nds32/include/asm/cache.h
delete mode 100644 arch/nds32/include/asm/cache_info.h
delete mode 100644 arch/nds32/include/asm/cacheflush.h
delete mode 100644 arch/nds32/include/asm/current.h
delete mode 100644 arch/nds32/include/asm/delay.h
delete mode 100644 arch/nds32/include/asm/elf.h
delete mode 100644 arch/nds32/include/asm/fixmap.h
delete mode 100644 arch/nds32/include/asm/fpu.h
delete mode 100644 arch/nds32/include/asm/fpuemu.h
delete mode 100644 arch/nds32/include/asm/ftrace.h
delete mode 100644 arch/nds32/include/asm/futex.h
delete mode 100644 arch/nds32/include/asm/highmem.h
delete mode 100644 arch/nds32/include/asm/io.h
delete mode 100644 arch/nds32/include/asm/irqflags.h
delete mode 100644 arch/nds32/include/asm/l2_cache.h
delete mode 100644 arch/nds32/include/asm/linkage.h
delete mode 100644 arch/nds32/include/asm/memory.h
delete mode 100644 arch/nds32/include/asm/mmu.h
delete mode 100644 arch/nds32/include/asm/mmu_context.h
delete mode 100644 arch/nds32/include/asm/nds32.h
delete mode 100644 arch/nds32/include/asm/nds32_fpu_inst.h
delete mode 100644 arch/nds32/include/asm/page.h
delete mode 100644 arch/nds32/include/asm/perf_event.h
delete mode 100644 arch/nds32/include/asm/pgalloc.h
delete mode 100644 arch/nds32/include/asm/pgtable.h
delete mode 100644 arch/nds32/include/asm/pmu.h
delete mode 100644 arch/nds32/include/asm/proc-fns.h
delete mode 100644 arch/nds32/include/asm/processor.h
delete mode 100644 arch/nds32/include/asm/ptrace.h
delete mode 100644 arch/nds32/include/asm/sfp-machine.h
delete mode 100644 arch/nds32/include/asm/shmparam.h
delete mode 100644 arch/nds32/include/asm/stacktrace.h
delete mode 100644 arch/nds32/include/asm/string.h
delete mode 100644 arch/nds32/include/asm/suspend.h
delete mode 100644 arch/nds32/include/asm/swab.h
delete mode 100644 arch/nds32/include/asm/syscall.h
delete mode 100644 arch/nds32/include/asm/syscalls.h
delete mode 100644 arch/nds32/include/asm/thread_info.h
delete mode 100644 arch/nds32/include/asm/tlb.h
delete mode 100644 arch/nds32/include/asm/tlbflush.h
delete mode 100644 arch/nds32/include/asm/uaccess.h
delete mode 100644 arch/nds32/include/asm/unistd.h
delete mode 100644 arch/nds32/include/asm/vdso.h
delete mode 100644 arch/nds32/include/asm/vdso_datapage.h
delete mode 100644 arch/nds32/include/asm/vdso_timer_info.h
delete mode 100644 arch/nds32/include/asm/vermagic.h
delete mode 100644 arch/nds32/include/asm/vmalloc.h
delete mode 100644 arch/nds32/include/uapi/asm/Kbuild
delete mode 100644 arch/nds32/include/uapi/asm/auxvec.h
delete mode 100644 arch/nds32/include/uapi/asm/byteorder.h
delete mode 100644 arch/nds32/include/uapi/asm/cachectl.h
delete mode 100644 arch/nds32/include/uapi/asm/fp_udfiex_crtl.h
delete mode 100644 arch/nds32/include/uapi/asm/param.h
delete mode 100644 arch/nds32/include/uapi/asm/ptrace.h
delete mode 100644 arch/nds32/include/uapi/asm/sigcontext.h
delete mode 100644 arch/nds32/include/uapi/asm/unistd.h
delete mode 100644 arch/nds32/kernel/.gitignore
delete mode 100644 arch/nds32/kernel/Makefile
delete mode 100644 arch/nds32/kernel/asm-offsets.c
delete mode 100644 arch/nds32/kernel/atl2c.c
delete mode 100644 arch/nds32/kernel/cacheinfo.c
delete mode 100644 arch/nds32/kernel/devtree.c
delete mode 100644 arch/nds32/kernel/dma.c
delete mode 100644 arch/nds32/kernel/ex-entry.S
delete mode 100644 arch/nds32/kernel/ex-exit.S
delete mode 100644 arch/nds32/kernel/ex-scall.S
delete mode 100644 arch/nds32/kernel/fpu.c
delete mode 100644 arch/nds32/kernel/ftrace.c
delete mode 100644 arch/nds32/kernel/head.S
delete mode 100644 arch/nds32/kernel/irq.c
delete mode 100644 arch/nds32/kernel/module.c
delete mode 100644 arch/nds32/kernel/nds32_ksyms.c
delete mode 100644 arch/nds32/kernel/perf_event_cpu.c
delete mode 100644 arch/nds32/kernel/pm.c
delete mode 100644 arch/nds32/kernel/process.c
delete mode 100644 arch/nds32/kernel/ptrace.c
delete mode 100644 arch/nds32/kernel/setup.c
delete mode 100644 arch/nds32/kernel/signal.c
delete mode 100644 arch/nds32/kernel/sleep.S
delete mode 100644 arch/nds32/kernel/stacktrace.c
delete mode 100644 arch/nds32/kernel/sys_nds32.c
delete mode 100644 arch/nds32/kernel/syscall_table.c
delete mode 100644 arch/nds32/kernel/time.c
delete mode 100644 arch/nds32/kernel/traps.c
delete mode 100644 arch/nds32/kernel/vdso.c
delete mode 100644 arch/nds32/kernel/vdso/.gitignore
delete mode 100644 arch/nds32/kernel/vdso/Makefile
delete mode 100644 arch/nds32/kernel/vdso/datapage.S
delete mode 100755 arch/nds32/kernel/vdso/gen_vdso_offsets.sh
delete mode 100644 arch/nds32/kernel/vdso/gettimeofday.c
delete mode 100644 arch/nds32/kernel/vdso/note.S
delete mode 100644 arch/nds32/kernel/vdso/sigreturn.S
delete mode 100644 arch/nds32/kernel/vdso/vdso.S
delete mode 100644 arch/nds32/kernel/vdso/vdso.lds.S
delete mode 100644 arch/nds32/kernel/vmlinux.lds.S
delete mode 100644 arch/nds32/lib/Makefile
delete mode 100644 arch/nds32/lib/clear_user.S
delete mode 100644 arch/nds32/lib/copy_from_user.S
delete mode 100644 arch/nds32/lib/copy_page.S
delete mode 100644 arch/nds32/lib/copy_template.S
delete mode 100644 arch/nds32/lib/copy_to_user.S
delete mode 100644 arch/nds32/lib/memcpy.S
delete mode 100644 arch/nds32/lib/memmove.S
delete mode 100644 arch/nds32/lib/memset.S
delete mode 100644 arch/nds32/lib/memzero.S
delete mode 100644 arch/nds32/math-emu/Makefile
delete mode 100644 arch/nds32/math-emu/faddd.c
delete mode 100644 arch/nds32/math-emu/fadds.c
delete mode 100644 arch/nds32/math-emu/fcmpd.c
delete mode 100644 arch/nds32/math-emu/fcmps.c
delete mode 100644 arch/nds32/math-emu/fd2s.c
delete mode 100644 arch/nds32/math-emu/fd2si.c
delete mode 100644 arch/nds32/math-emu/fd2siz.c
delete mode 100644 arch/nds32/math-emu/fd2ui.c
delete mode 100644 arch/nds32/math-emu/fd2uiz.c
delete mode 100644 arch/nds32/math-emu/fdivd.c
delete mode 100644 arch/nds32/math-emu/fdivs.c
delete mode 100644 arch/nds32/math-emu/fmuld.c
delete mode 100644 arch/nds32/math-emu/fmuls.c
delete mode 100644 arch/nds32/math-emu/fnegd.c
delete mode 100644 arch/nds32/math-emu/fnegs.c
delete mode 100644 arch/nds32/math-emu/fpuemu.c
delete mode 100644 arch/nds32/math-emu/fs2d.c
delete mode 100644 arch/nds32/math-emu/fs2si.c
delete mode 100644 arch/nds32/math-emu/fs2siz.c
delete mode 100644 arch/nds32/math-emu/fs2ui.c
delete mode 100644 arch/nds32/math-emu/fs2uiz.c
delete mode 100644 arch/nds32/math-emu/fsi2d.c
delete mode 100644 arch/nds32/math-emu/fsi2s.c
delete mode 100644 arch/nds32/math-emu/fsqrtd.c
delete mode 100644 arch/nds32/math-emu/fsqrts.c
delete mode 100644 arch/nds32/math-emu/fsubd.c
delete mode 100644 arch/nds32/math-emu/fsubs.c
delete mode 100644 arch/nds32/math-emu/fui2d.c
delete mode 100644 arch/nds32/math-emu/fui2s.c
delete mode 100644 arch/nds32/mm/Makefile
delete mode 100644 arch/nds32/mm/alignment.c
delete mode 100644 arch/nds32/mm/cacheflush.c
delete mode 100644 arch/nds32/mm/extable.c
delete mode 100644 arch/nds32/mm/fault.c
delete mode 100644 arch/nds32/mm/init.c
delete mode 100644 arch/nds32/mm/mm-nds32.c
delete mode 100644 arch/nds32/mm/mmap.c
delete mode 100644 arch/nds32/mm/proc.c
delete mode 100644 arch/nds32/mm/tlb.c
delete mode 100644 arch/sh/include/asm/segment.h
delete mode 100644 drivers/clocksource/timer-atcpit100.c
delete mode 100644 drivers/irqchip/irq-ativic32.c
create mode 100644 include/asm-generic/access_ok.h
delete mode 100644 tools/perf/arch/nds32/Build
delete mode 100644 tools/perf/arch/nds32/util/Build
delete mode 100644 tools/perf/arch/nds32/util/header.c
^ permalink raw reply [relevance 1%]
* [RFC PULL] remove arch/h8300
@ 2022-03-08 6:52 2% Christoph Hellwig
0 siblings, 0 replies; 200+ results
From: Christoph Hellwig @ 2022-03-08 6:52 UTC (permalink / raw)
To: Linus Torvalds, Arnd Bergmann, Yoshinori Sato
Cc: linux-kernel, linux-arch, uclinux-h8-devel
Hi all,
h8300 hasn't been maintained for quite a while, with even years old
pull request lingering in the old repo. Given that it always was
rather fringe to start with I'd suggest to go ahead and remove the
port:
The following changes since commit 5c1ee569660d4a205dced9cb4d0306b907fb7599:
Merge branch 'for-5.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup (2022-02-22 16:14:35 -0800)
are available in the Git repository at:
git://git.infradead.org/users/hch/misc.git remove-h8300
for you to fetch changes up to 1c4b5ecb7ea190fa3e9f9d6891e6c90b60e04f24:
remove the h8300 architecture (2022-02-23 08:52:50 +0100)
----------------------------------------------------------------
Christoph Hellwig (1):
remove the h8300 architecture
.../bindings/clock/renesas,h8300-div-clock.txt | 24 --
Documentation/devicetree/bindings/h8300/cpu.txt | 13 -
.../interrupt-controller/renesas,h8300h-intc.txt | 22 --
.../interrupt-controller/renesas,h8s-intc.txt | 22 --
.../memory-controllers/renesas,h8300-bsc.yaml | 35 --
.../features/core/cBPF-JIT/arch-support.txt | 1 -
.../features/core/eBPF-JIT/arch-support.txt | 1 -
.../core/generic-idle-thread/arch-support.txt | 1 -
.../features/core/jump-labels/arch-support.txt | 1 -
.../core/thread-info-in-task/arch-support.txt | 1 -
.../features/core/tracehook/arch-support.txt | 1 -
.../features/debug/KASAN/arch-support.txt | 1 -
.../debug/debug-vm-pgtable/arch-support.txt | 1 -
.../debug/gcov-profile-all/arch-support.txt | 1 -
Documentation/features/debug/kcov/arch-support.txt | 1 -
Documentation/features/debug/kgdb/arch-support.txt | 1 -
.../features/debug/kmemleak/arch-support.txt | 1 -
.../debug/kprobes-on-ftrace/arch-support.txt | 1 -
.../features/debug/kprobes/arch-support.txt | 1 -
.../features/debug/kretprobes/arch-support.txt | 1 -
.../features/debug/optprobes/arch-support.txt | 1 -
.../features/debug/stackprotector/arch-support.txt | 1 -
.../features/debug/uprobes/arch-support.txt | 1 -
.../debug/user-ret-profiler/arch-support.txt | 1 -
.../features/io/dma-contiguous/arch-support.txt | 1 -
.../locking/cmpxchg-local/arch-support.txt | 1 -
.../features/locking/lockdep/arch-support.txt | 1 -
.../locking/queued-rwlocks/arch-support.txt | 1 -
.../locking/queued-spinlocks/arch-support.txt | 1 -
.../features/perf/kprobes-event/arch-support.txt | 1 -
.../features/perf/perf-regs/arch-support.txt | 1 -
.../features/perf/perf-stackdump/arch-support.txt | 1 -
.../sched/membarrier-sync-core/arch-support.txt | 1 -
.../features/sched/numa-balancing/arch-support.txt | 1 -
.../seccomp/seccomp-filter/arch-support.txt | 1 -
.../time/arch-tick-broadcast/arch-support.txt | 1 -
.../features/time/clockevents/arch-support.txt | 1 -
.../time/context-tracking/arch-support.txt | 1 -
.../features/time/irq-time-acct/arch-support.txt | 1 -
.../features/time/virt-cpuacct/arch-support.txt | 1 -
.../features/vm/ELF-ASLR/arch-support.txt | 1 -
.../features/vm/PG_uncached/arch-support.txt | 1 -
Documentation/features/vm/THP/arch-support.txt | 1 -
Documentation/features/vm/TLB/arch-support.txt | 1 -
.../features/vm/huge-vmap/arch-support.txt | 1 -
.../features/vm/ioremap_prot/arch-support.txt | 1 -
.../features/vm/pte_special/arch-support.txt | 1 -
MAINTAINERS | 11 -
arch/h8300/Kbuild | 5 -
arch/h8300/Kconfig | 50 ---
arch/h8300/Kconfig.cpu | 99 -----
arch/h8300/Kconfig.debug | 2 -
arch/h8300/Makefile | 44 ---
arch/h8300/boot/Makefile | 27 --
arch/h8300/boot/compressed/Makefile | 45 ---
arch/h8300/boot/compressed/head.S | 49 ---
arch/h8300/boot/compressed/misc.c | 76 ----
arch/h8300/boot/compressed/vmlinux.lds | 35 --
arch/h8300/boot/compressed/vmlinux.scr | 9 -
arch/h8300/boot/dts/Makefile | 6 -
arch/h8300/boot/dts/edosk2674.dts | 108 -----
arch/h8300/boot/dts/h8300h_sim.dts | 97 -----
arch/h8300/boot/dts/h8s_sim.dts | 100 -----
arch/h8300/configs/edosk2674_defconfig | 48 ---
arch/h8300/configs/h8300h-sim_defconfig | 48 ---
arch/h8300/configs/h8s-sim_defconfig | 48 ---
arch/h8300/include/asm/Kbuild | 8 -
arch/h8300/include/asm/bitops.h | 179 ---------
arch/h8300/include/asm/bug.h | 13 -
arch/h8300/include/asm/byteorder.h | 7 -
arch/h8300/include/asm/cache.h | 12 -
arch/h8300/include/asm/elf.h | 102 -----
arch/h8300/include/asm/flat.h | 36 --
arch/h8300/include/asm/hash.h | 54 ---
arch/h8300/include/asm/io.h | 67 ----
arch/h8300/include/asm/irq.h | 25 --
arch/h8300/include/asm/irqflags.h | 97 -----
arch/h8300/include/asm/kgdb.h | 45 ---
arch/h8300/include/asm/mmu_context.h | 6 -
arch/h8300/include/asm/page.h | 17 -
arch/h8300/include/asm/page_offset.h | 2 -
arch/h8300/include/asm/pgtable.h | 43 --
arch/h8300/include/asm/processor.h | 127 ------
arch/h8300/include/asm/ptrace.h | 39 --
arch/h8300/include/asm/segment.h | 40 --
arch/h8300/include/asm/signal.h | 23 --
arch/h8300/include/asm/smp.h | 1 -
arch/h8300/include/asm/string.h | 18 -
arch/h8300/include/asm/switch_to.h | 52 ---
arch/h8300/include/asm/syscall.h | 43 --
arch/h8300/include/asm/thread_info.h | 105 -----
arch/h8300/include/asm/tlb.h | 7 -
arch/h8300/include/asm/traps.h | 41 --
arch/h8300/include/asm/user.h | 75 ----
arch/h8300/include/asm/vmalloc.h | 4 -
arch/h8300/include/uapi/asm/Kbuild | 2 -
arch/h8300/include/uapi/asm/byteorder.h | 7 -
arch/h8300/include/uapi/asm/posix_types.h | 13 -
arch/h8300/include/uapi/asm/ptrace.h | 43 --
arch/h8300/include/uapi/asm/sigcontext.h | 19 -
arch/h8300/include/uapi/asm/signal.h | 92 -----
arch/h8300/include/uapi/asm/unistd.h | 8 -
arch/h8300/kernel/.gitignore | 2 -
arch/h8300/kernel/Makefile | 22 --
arch/h8300/kernel/asm-offsets.c | 70 ----
arch/h8300/kernel/entry.S | 434 ---------------------
arch/h8300/kernel/h8300_ksyms.c | 35 --
arch/h8300/kernel/head_ram.S | 61 ---
arch/h8300/kernel/head_rom.S | 111 ------
arch/h8300/kernel/irq.c | 99 -----
arch/h8300/kernel/kgdb.c | 135 -------
arch/h8300/kernel/module.c | 71 ----
arch/h8300/kernel/process.c | 173 --------
arch/h8300/kernel/ptrace.c | 200 ----------
arch/h8300/kernel/ptrace_h.c | 256 ------------
arch/h8300/kernel/ptrace_s.c | 44 ---
arch/h8300/kernel/setup.c | 213 ----------
arch/h8300/kernel/signal.c | 287 --------------
arch/h8300/kernel/sim-console.c | 31 --
arch/h8300/kernel/syscalls.c | 15 -
arch/h8300/kernel/traps.c | 156 --------
arch/h8300/kernel/vmlinux.lds.S | 69 ----
arch/h8300/lib/Makefile | 9 -
arch/h8300/lib/abs.S | 21 -
arch/h8300/lib/ashldi3.c | 25 --
arch/h8300/lib/ashrdi3.c | 25 --
arch/h8300/lib/delay.c | 41 --
arch/h8300/lib/libgcc.h | 78 ----
arch/h8300/lib/lshrdi3.c | 24 --
arch/h8300/lib/memcpy.S | 86 ----
arch/h8300/lib/memset.S | 70 ----
arch/h8300/lib/moddivsi3.S | 73 ----
arch/h8300/lib/modsi3.S | 73 ----
arch/h8300/lib/muldi3.c | 45 ---
arch/h8300/lib/mulsi3.S | 39 --
arch/h8300/lib/ucmpdi2.c | 18 -
arch/h8300/lib/udivsi3.S | 77 ----
arch/h8300/mm/Makefile | 6 -
arch/h8300/mm/fault.c | 57 ---
arch/h8300/mm/init.c | 101 -----
arch/h8300/mm/memory.c | 53 ---
drivers/clk/Makefile | 1 -
drivers/clk/h8300/Makefile | 3 -
drivers/clk/h8300/clk-div.c | 57 ---
drivers/clk/h8300/clk-h8s2678.c | 145 -------
drivers/clocksource/Kconfig | 20 -
drivers/clocksource/Makefile | 3 -
drivers/clocksource/h8300_timer16.c | 192 ---------
drivers/clocksource/h8300_timer8.c | 211 ----------
drivers/clocksource/h8300_tpu.c | 158 --------
drivers/irqchip/Kconfig | 11 -
drivers/irqchip/Makefile | 2 -
drivers/irqchip/irq-renesas-h8300h.c | 94 -----
drivers/irqchip/irq-renesas-h8s.c | 102 -----
drivers/net/ethernet/smsc/Kconfig | 4 +-
drivers/net/ethernet/smsc/smc91x.h | 11 -
drivers/tty/serial/Kconfig | 5 +-
init/Kconfig | 3 +-
tools/arch/h8300/include/asm/bitsperlong.h | 15 -
tools/arch/h8300/include/uapi/asm/mman.h | 7 -
160 files changed, 5 insertions(+), 6981 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/clock/renesas,h8300-div-clock.txt
delete mode 100644 Documentation/devicetree/bindings/h8300/cpu.txt
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,h8300h-intc.txt
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/renesas,h8s-intc.txt
delete mode 100644 Documentation/devicetree/bindings/memory-controllers/renesas,h8300-bsc.yaml
delete mode 100644 arch/h8300/Kbuild
delete mode 100644 arch/h8300/Kconfig
delete mode 100644 arch/h8300/Kconfig.cpu
delete mode 100644 arch/h8300/Kconfig.debug
delete mode 100644 arch/h8300/Makefile
delete mode 100644 arch/h8300/boot/Makefile
delete mode 100644 arch/h8300/boot/compressed/Makefile
delete mode 100644 arch/h8300/boot/compressed/head.S
delete mode 100644 arch/h8300/boot/compressed/misc.c
delete mode 100644 arch/h8300/boot/compressed/vmlinux.lds
delete mode 100644 arch/h8300/boot/compressed/vmlinux.scr
delete mode 100644 arch/h8300/boot/dts/Makefile
delete mode 100644 arch/h8300/boot/dts/edosk2674.dts
delete mode 100644 arch/h8300/boot/dts/h8300h_sim.dts
delete mode 100644 arch/h8300/boot/dts/h8s_sim.dts
delete mode 100644 arch/h8300/configs/edosk2674_defconfig
delete mode 100644 arch/h8300/configs/h8300h-sim_defconfig
delete mode 100644 arch/h8300/configs/h8s-sim_defconfig
delete mode 100644 arch/h8300/include/asm/Kbuild
delete mode 100644 arch/h8300/include/asm/bitops.h
delete mode 100644 arch/h8300/include/asm/bug.h
delete mode 100644 arch/h8300/include/asm/byteorder.h
delete mode 100644 arch/h8300/include/asm/cache.h
delete mode 100644 arch/h8300/include/asm/elf.h
delete mode 100644 arch/h8300/include/asm/flat.h
delete mode 100644 arch/h8300/include/asm/hash.h
delete mode 100644 arch/h8300/include/asm/io.h
delete mode 100644 arch/h8300/include/asm/irq.h
delete mode 100644 arch/h8300/include/asm/irqflags.h
delete mode 100644 arch/h8300/include/asm/kgdb.h
delete mode 100644 arch/h8300/include/asm/mmu_context.h
delete mode 100644 arch/h8300/include/asm/page.h
delete mode 100644 arch/h8300/include/asm/page_offset.h
delete mode 100644 arch/h8300/include/asm/pgtable.h
delete mode 100644 arch/h8300/include/asm/processor.h
delete mode 100644 arch/h8300/include/asm/ptrace.h
delete mode 100644 arch/h8300/include/asm/segment.h
delete mode 100644 arch/h8300/include/asm/signal.h
delete mode 100644 arch/h8300/include/asm/smp.h
delete mode 100644 arch/h8300/include/asm/string.h
delete mode 100644 arch/h8300/include/asm/switch_to.h
delete mode 100644 arch/h8300/include/asm/syscall.h
delete mode 100644 arch/h8300/include/asm/thread_info.h
delete mode 100644 arch/h8300/include/asm/tlb.h
delete mode 100644 arch/h8300/include/asm/traps.h
delete mode 100644 arch/h8300/include/asm/user.h
delete mode 100644 arch/h8300/include/asm/vmalloc.h
delete mode 100644 arch/h8300/include/uapi/asm/Kbuild
delete mode 100644 arch/h8300/include/uapi/asm/byteorder.h
delete mode 100644 arch/h8300/include/uapi/asm/posix_types.h
delete mode 100644 arch/h8300/include/uapi/asm/ptrace.h
delete mode 100644 arch/h8300/include/uapi/asm/sigcontext.h
delete mode 100644 arch/h8300/include/uapi/asm/signal.h
delete mode 100644 arch/h8300/include/uapi/asm/unistd.h
delete mode 100644 arch/h8300/kernel/.gitignore
delete mode 100644 arch/h8300/kernel/Makefile
delete mode 100644 arch/h8300/kernel/asm-offsets.c
delete mode 100644 arch/h8300/kernel/entry.S
delete mode 100644 arch/h8300/kernel/h8300_ksyms.c
delete mode 100644 arch/h8300/kernel/head_ram.S
delete mode 100644 arch/h8300/kernel/head_rom.S
delete mode 100644 arch/h8300/kernel/irq.c
delete mode 100644 arch/h8300/kernel/kgdb.c
delete mode 100644 arch/h8300/kernel/module.c
delete mode 100644 arch/h8300/kernel/process.c
delete mode 100644 arch/h8300/kernel/ptrace.c
delete mode 100644 arch/h8300/kernel/ptrace_h.c
delete mode 100644 arch/h8300/kernel/ptrace_s.c
delete mode 100644 arch/h8300/kernel/setup.c
delete mode 100644 arch/h8300/kernel/signal.c
delete mode 100644 arch/h8300/kernel/sim-console.c
delete mode 100644 arch/h8300/kernel/syscalls.c
delete mode 100644 arch/h8300/kernel/traps.c
delete mode 100644 arch/h8300/kernel/vmlinux.lds.S
delete mode 100644 arch/h8300/lib/Makefile
delete mode 100644 arch/h8300/lib/abs.S
delete mode 100644 arch/h8300/lib/ashldi3.c
delete mode 100644 arch/h8300/lib/ashrdi3.c
delete mode 100644 arch/h8300/lib/delay.c
delete mode 100644 arch/h8300/lib/libgcc.h
delete mode 100644 arch/h8300/lib/lshrdi3.c
delete mode 100644 arch/h8300/lib/memcpy.S
delete mode 100644 arch/h8300/lib/memset.S
delete mode 100644 arch/h8300/lib/moddivsi3.S
delete mode 100644 arch/h8300/lib/modsi3.S
delete mode 100644 arch/h8300/lib/muldi3.c
delete mode 100644 arch/h8300/lib/mulsi3.S
delete mode 100644 arch/h8300/lib/ucmpdi2.c
delete mode 100644 arch/h8300/lib/udivsi3.S
delete mode 100644 arch/h8300/mm/Makefile
delete mode 100644 arch/h8300/mm/fault.c
delete mode 100644 arch/h8300/mm/init.c
delete mode 100644 arch/h8300/mm/memory.c
delete mode 100644 drivers/clk/h8300/Makefile
delete mode 100644 drivers/clk/h8300/clk-div.c
delete mode 100644 drivers/clk/h8300/clk-h8s2678.c
delete mode 100644 drivers/clocksource/h8300_timer16.c
delete mode 100644 drivers/clocksource/h8300_timer8.c
delete mode 100644 drivers/clocksource/h8300_tpu.c
delete mode 100644 drivers/irqchip/irq-renesas-h8300h.c
delete mode 100644 drivers/irqchip/irq-renesas-h8s.c
delete mode 100644 tools/arch/h8300/include/asm/bitsperlong.h
delete mode 100644 tools/arch/h8300/include/uapi/asm/mman.h
^ permalink raw reply [relevance 2%]
* [PATCH] nds32: Remove the architecture
@ 2022-03-02 7:42 1% Alan Kao
0 siblings, 0 replies; 200+ results
From: Alan Kao @ 2022-03-02 7:42 UTC (permalink / raw)
To: Arnd Bergmann, linux-kernel, Greentime Hu; +Cc: Alan Kao
Previous discussion is here:
https://www.spinics.net/lists/linux-mm/msg286280.html
Signed-off-by: Alan Kao <alankao@andestech.com>
---
.../andestech,ativic32.txt | 19 -
.../bindings/nds32/andestech-boards | 40 -
.../devicetree/bindings/nds32/atl2c.txt | 28 -
.../devicetree/bindings/nds32/cpus.txt | 38 -
.../devicetree/bindings/perf/nds32v3-pmu.txt | 17 -
.../timer/andestech,atcpit100-timer.txt | 33 -
.../features/core/cBPF-JIT/arch-support.txt | 1 -
.../features/core/eBPF-JIT/arch-support.txt | 1 -
.../core/generic-idle-thread/arch-support.txt | 1 -
.../core/jump-labels/arch-support.txt | 1 -
.../core/thread-info-in-task/arch-support.txt | 1 -
.../features/core/tracehook/arch-support.txt | 1 -
.../features/debug/KASAN/arch-support.txt | 1 -
.../debug/debug-vm-pgtable/arch-support.txt | 1 -
.../debug/gcov-profile-all/arch-support.txt | 1 -
.../features/debug/kcov/arch-support.txt | 1 -
.../features/debug/kgdb/arch-support.txt | 1 -
.../features/debug/kmemleak/arch-support.txt | 1 -
.../debug/kprobes-on-ftrace/arch-support.txt | 1 -
.../features/debug/kprobes/arch-support.txt | 1 -
.../debug/kretprobes/arch-support.txt | 1 -
.../features/debug/optprobes/arch-support.txt | 1 -
.../debug/stackprotector/arch-support.txt | 1 -
.../features/debug/uprobes/arch-support.txt | 1 -
.../debug/user-ret-profiler/arch-support.txt | 1 -
.../io/dma-contiguous/arch-support.txt | 1 -
.../locking/cmpxchg-local/arch-support.txt | 1 -
.../features/locking/lockdep/arch-support.txt | 1 -
.../locking/queued-rwlocks/arch-support.txt | 1 -
.../locking/queued-spinlocks/arch-support.txt | 1 -
.../perf/kprobes-event/arch-support.txt | 1 -
.../features/perf/perf-regs/arch-support.txt | 1 -
.../perf/perf-stackdump/arch-support.txt | 1 -
.../membarrier-sync-core/arch-support.txt | 1 -
.../sched/numa-balancing/arch-support.txt | 1 -
.../seccomp/seccomp-filter/arch-support.txt | 1 -
.../time/arch-tick-broadcast/arch-support.txt | 1 -
.../time/clockevents/arch-support.txt | 1 -
.../time/context-tracking/arch-support.txt | 1 -
.../time/irq-time-acct/arch-support.txt | 1 -
.../time/virt-cpuacct/arch-support.txt | 1 -
.../features/vm/ELF-ASLR/arch-support.txt | 1 -
.../features/vm/PG_uncached/arch-support.txt | 1 -
.../features/vm/THP/arch-support.txt | 1 -
.../features/vm/TLB/arch-support.txt | 1 -
.../features/vm/huge-vmap/arch-support.txt | 1 -
.../features/vm/ioremap_prot/arch-support.txt | 1 -
.../features/vm/pte_special/arch-support.txt | 1 -
MAINTAINERS | 12 -
arch/nds32/Kbuild | 4 -
arch/nds32/Kconfig | 102 --
arch/nds32/Kconfig.cpu | 218 ---
arch/nds32/Kconfig.debug | 2 -
arch/nds32/Makefile | 63 -
arch/nds32/boot/.gitignore | 2 -
arch/nds32/boot/Makefile | 16 -
arch/nds32/boot/dts/Makefile | 2 -
arch/nds32/boot/dts/ae3xx.dts | 90 -
arch/nds32/configs/defconfig | 104 --
arch/nds32/include/asm/Kbuild | 8 -
arch/nds32/include/asm/assembler.h | 39 -
arch/nds32/include/asm/barrier.h | 15 -
arch/nds32/include/asm/bitfield.h | 985 -----------
arch/nds32/include/asm/cache.h | 12 -
arch/nds32/include/asm/cache_info.h | 13 -
arch/nds32/include/asm/cacheflush.h | 53 -
arch/nds32/include/asm/current.h | 12 -
arch/nds32/include/asm/delay.h | 39 -
arch/nds32/include/asm/elf.h | 180 --
arch/nds32/include/asm/fixmap.h | 29 -
arch/nds32/include/asm/fpu.h | 126 --
arch/nds32/include/asm/fpuemu.h | 44 -
arch/nds32/include/asm/ftrace.h | 46 -
arch/nds32/include/asm/futex.h | 101 --
arch/nds32/include/asm/highmem.h | 65 -
arch/nds32/include/asm/io.h | 84 -
arch/nds32/include/asm/irqflags.h | 41 -
arch/nds32/include/asm/l2_cache.h | 137 --
arch/nds32/include/asm/linkage.h | 11 -
arch/nds32/include/asm/memory.h | 91 -
arch/nds32/include/asm/mmu.h | 12 -
arch/nds32/include/asm/mmu_context.h | 62 -
arch/nds32/include/asm/nds32.h | 82 -
arch/nds32/include/asm/nds32_fpu_inst.h | 109 --
arch/nds32/include/asm/page.h | 64 -
arch/nds32/include/asm/perf_event.h | 16 -
arch/nds32/include/asm/pgalloc.h | 62 -
arch/nds32/include/asm/pgtable.h | 377 -----
arch/nds32/include/asm/pmu.h | 386 -----
arch/nds32/include/asm/proc-fns.h | 44 -
arch/nds32/include/asm/processor.h | 104 --
arch/nds32/include/asm/ptrace.h | 77 -
arch/nds32/include/asm/sfp-machine.h | 158 --
arch/nds32/include/asm/shmparam.h | 19 -
arch/nds32/include/asm/stacktrace.h | 39 -
arch/nds32/include/asm/string.h | 17 -
arch/nds32/include/asm/suspend.h | 11 -
arch/nds32/include/asm/swab.h | 35 -
arch/nds32/include/asm/syscall.h | 142 --
arch/nds32/include/asm/syscalls.h | 14 -
arch/nds32/include/asm/thread_info.h | 76 -
arch/nds32/include/asm/tlb.h | 11 -
arch/nds32/include/asm/tlbflush.h | 46 -
arch/nds32/include/asm/uaccess.h | 286 ----
arch/nds32/include/asm/unistd.h | 6 -
arch/nds32/include/asm/vdso.h | 24 -
arch/nds32/include/asm/vdso_datapage.h | 37 -
arch/nds32/include/asm/vdso_timer_info.h | 14 -
arch/nds32/include/asm/vermagic.h | 9 -
arch/nds32/include/asm/vmalloc.h | 4 -
arch/nds32/include/uapi/asm/Kbuild | 2 -
arch/nds32/include/uapi/asm/auxvec.h | 19 -
arch/nds32/include/uapi/asm/byteorder.h | 13 -
arch/nds32/include/uapi/asm/cachectl.h | 14 -
arch/nds32/include/uapi/asm/fp_udfiex_crtl.h | 16 -
arch/nds32/include/uapi/asm/param.h | 11 -
arch/nds32/include/uapi/asm/ptrace.h | 25 -
arch/nds32/include/uapi/asm/sigcontext.h | 84 -
arch/nds32/include/uapi/asm/unistd.h | 16 -
arch/nds32/kernel/.gitignore | 2 -
arch/nds32/kernel/Makefile | 33 -
arch/nds32/kernel/asm-offsets.c | 28 -
arch/nds32/kernel/atl2c.c | 65 -
arch/nds32/kernel/cacheinfo.c | 49 -
arch/nds32/kernel/devtree.c | 19 -
arch/nds32/kernel/dma.c | 82 -
arch/nds32/kernel/ex-entry.S | 177 --
arch/nds32/kernel/ex-exit.S | 193 ---
arch/nds32/kernel/ex-scall.S | 100 --
arch/nds32/kernel/fpu.c | 266 ---
arch/nds32/kernel/ftrace.c | 278 ---
arch/nds32/kernel/head.S | 197 ---
arch/nds32/kernel/irq.c | 9 -
arch/nds32/kernel/module.c | 278 ---
arch/nds32/kernel/nds32_ksyms.c | 25 -
arch/nds32/kernel/perf_event_cpu.c | 1500 -----------------
arch/nds32/kernel/pm.c | 80 -
arch/nds32/kernel/process.c | 257 ---
arch/nds32/kernel/ptrace.c | 118 --
arch/nds32/kernel/setup.c | 369 ----
arch/nds32/kernel/signal.c | 384 -----
arch/nds32/kernel/sleep.S | 131 --
arch/nds32/kernel/stacktrace.c | 53 -
arch/nds32/kernel/sys_nds32.c | 84 -
arch/nds32/kernel/syscall_table.c | 17 -
arch/nds32/kernel/time.c | 11 -
arch/nds32/kernel/traps.c | 354 ----
arch/nds32/kernel/vdso.c | 231 ---
arch/nds32/kernel/vdso/.gitignore | 2 -
arch/nds32/kernel/vdso/Makefile | 79 -
arch/nds32/kernel/vdso/datapage.S | 21 -
arch/nds32/kernel/vdso/gen_vdso_offsets.sh | 15 -
arch/nds32/kernel/vdso/gettimeofday.c | 269 ---
arch/nds32/kernel/vdso/note.S | 11 -
arch/nds32/kernel/vdso/sigreturn.S | 19 -
arch/nds32/kernel/vdso/vdso.S | 18 -
arch/nds32/kernel/vdso/vdso.lds.S | 75 -
arch/nds32/kernel/vmlinux.lds.S | 70 -
arch/nds32/lib/Makefile | 4 -
arch/nds32/lib/clear_user.S | 42 -
arch/nds32/lib/copy_from_user.S | 45 -
arch/nds32/lib/copy_page.S | 40 -
arch/nds32/lib/copy_template.S | 69 -
arch/nds32/lib/copy_to_user.S | 45 -
arch/nds32/lib/memcpy.S | 30 -
arch/nds32/lib/memmove.S | 70 -
arch/nds32/lib/memset.S | 33 -
arch/nds32/lib/memzero.S | 18 -
arch/nds32/math-emu/Makefile | 10 -
arch/nds32/math-emu/faddd.c | 24 -
arch/nds32/math-emu/fadds.c | 24 -
arch/nds32/math-emu/fcmpd.c | 24 -
arch/nds32/math-emu/fcmps.c | 24 -
arch/nds32/math-emu/fd2s.c | 22 -
arch/nds32/math-emu/fd2si.c | 30 -
arch/nds32/math-emu/fd2siz.c | 30 -
arch/nds32/math-emu/fd2ui.c | 30 -
arch/nds32/math-emu/fd2uiz.c | 30 -
arch/nds32/math-emu/fdivd.c | 27 -
arch/nds32/math-emu/fdivs.c | 26 -
arch/nds32/math-emu/fmuld.c | 23 -
arch/nds32/math-emu/fmuls.c | 23 -
arch/nds32/math-emu/fnegd.c | 21 -
arch/nds32/math-emu/fnegs.c | 21 -
arch/nds32/math-emu/fpuemu.c | 406 -----
arch/nds32/math-emu/fs2d.c | 23 -
arch/nds32/math-emu/fs2si.c | 29 -
arch/nds32/math-emu/fs2siz.c | 29 -
arch/nds32/math-emu/fs2ui.c | 29 -
arch/nds32/math-emu/fs2uiz.c | 30 -
arch/nds32/math-emu/fsi2d.c | 22 -
arch/nds32/math-emu/fsi2s.c | 22 -
arch/nds32/math-emu/fsqrtd.c | 21 -
arch/nds32/math-emu/fsqrts.c | 21 -
arch/nds32/math-emu/fsubd.c | 27 -
arch/nds32/math-emu/fsubs.c | 27 -
arch/nds32/math-emu/fui2d.c | 22 -
arch/nds32/math-emu/fui2s.c | 22 -
arch/nds32/mm/Makefile | 10 -
arch/nds32/mm/alignment.c | 578 -------
arch/nds32/mm/cacheflush.c | 338 ----
arch/nds32/mm/extable.c | 16 -
arch/nds32/mm/fault.c | 396 -----
arch/nds32/mm/init.c | 263 ---
arch/nds32/mm/mm-nds32.c | 96 --
arch/nds32/mm/mmap.c | 73 -
arch/nds32/mm/proc.c | 536 ------
arch/nds32/mm/tlb.c | 50 -
drivers/clocksource/Kconfig | 9 -
drivers/clocksource/timer-atcpit100.c | 266 ---
drivers/irqchip/Makefile | 1 -
drivers/irqchip/irq-ativic32.c | 156 --
drivers/net/ethernet/faraday/Kconfig | 12 +-
drivers/video/console/Kconfig | 2 +-
scripts/recordmcount.pl | 3 -
tools/include/asm/barrier.h | 2 -
tools/perf/arch/nds32/Build | 1 -
tools/perf/arch/nds32/util/Build | 1 -
tools/perf/arch/nds32/util/header.c | 29 -
tools/testing/selftests/vDSO/vdso_config.h | 4 -
220 files changed, 6 insertions(+), 15826 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt
delete mode 100644 Documentation/devicetree/bindings/nds32/andestech-boards
delete mode 100644 Documentation/devicetree/bindings/nds32/atl2c.txt
delete mode 100644 Documentation/devicetree/bindings/nds32/cpus.txt
delete mode 100644 Documentation/devicetree/bindings/perf/nds32v3-pmu.txt
delete mode 100644 Documentation/devicetree/bindings/timer/andestech,atcpit100-timer.txt
delete mode 100644 arch/nds32/Kbuild
delete mode 100644 arch/nds32/Kconfig
delete mode 100644 arch/nds32/Kconfig.cpu
delete mode 100644 arch/nds32/Kconfig.debug
delete mode 100644 arch/nds32/Makefile
delete mode 100644 arch/nds32/boot/.gitignore
delete mode 100644 arch/nds32/boot/Makefile
delete mode 100644 arch/nds32/boot/dts/Makefile
delete mode 100644 arch/nds32/boot/dts/ae3xx.dts
delete mode 100644 arch/nds32/configs/defconfig
delete mode 100644 arch/nds32/include/asm/Kbuild
delete mode 100644 arch/nds32/include/asm/assembler.h
delete mode 100644 arch/nds32/include/asm/barrier.h
delete mode 100644 arch/nds32/include/asm/bitfield.h
delete mode 100644 arch/nds32/include/asm/cache.h
delete mode 100644 arch/nds32/include/asm/cache_info.h
delete mode 100644 arch/nds32/include/asm/cacheflush.h
delete mode 100644 arch/nds32/include/asm/current.h
delete mode 100644 arch/nds32/include/asm/delay.h
delete mode 100644 arch/nds32/include/asm/elf.h
delete mode 100644 arch/nds32/include/asm/fixmap.h
delete mode 100644 arch/nds32/include/asm/fpu.h
delete mode 100644 arch/nds32/include/asm/fpuemu.h
delete mode 100644 arch/nds32/include/asm/ftrace.h
delete mode 100644 arch/nds32/include/asm/futex.h
delete mode 100644 arch/nds32/include/asm/highmem.h
delete mode 100644 arch/nds32/include/asm/io.h
delete mode 100644 arch/nds32/include/asm/irqflags.h
delete mode 100644 arch/nds32/include/asm/l2_cache.h
delete mode 100644 arch/nds32/include/asm/linkage.h
delete mode 100644 arch/nds32/include/asm/memory.h
delete mode 100644 arch/nds32/include/asm/mmu.h
delete mode 100644 arch/nds32/include/asm/mmu_context.h
delete mode 100644 arch/nds32/include/asm/nds32.h
delete mode 100644 arch/nds32/include/asm/nds32_fpu_inst.h
delete mode 100644 arch/nds32/include/asm/page.h
delete mode 100644 arch/nds32/include/asm/perf_event.h
delete mode 100644 arch/nds32/include/asm/pgalloc.h
delete mode 100644 arch/nds32/include/asm/pgtable.h
delete mode 100644 arch/nds32/include/asm/pmu.h
delete mode 100644 arch/nds32/include/asm/proc-fns.h
delete mode 100644 arch/nds32/include/asm/processor.h
delete mode 100644 arch/nds32/include/asm/ptrace.h
delete mode 100644 arch/nds32/include/asm/sfp-machine.h
delete mode 100644 arch/nds32/include/asm/shmparam.h
delete mode 100644 arch/nds32/include/asm/stacktrace.h
delete mode 100644 arch/nds32/include/asm/string.h
delete mode 100644 arch/nds32/include/asm/suspend.h
delete mode 100644 arch/nds32/include/asm/swab.h
delete mode 100644 arch/nds32/include/asm/syscall.h
delete mode 100644 arch/nds32/include/asm/syscalls.h
delete mode 100644 arch/nds32/include/asm/thread_info.h
delete mode 100644 arch/nds32/include/asm/tlb.h
delete mode 100644 arch/nds32/include/asm/tlbflush.h
delete mode 100644 arch/nds32/include/asm/uaccess.h
delete mode 100644 arch/nds32/include/asm/unistd.h
delete mode 100644 arch/nds32/include/asm/vdso.h
delete mode 100644 arch/nds32/include/asm/vdso_datapage.h
delete mode 100644 arch/nds32/include/asm/vdso_timer_info.h
delete mode 100644 arch/nds32/include/asm/vermagic.h
delete mode 100644 arch/nds32/include/asm/vmalloc.h
delete mode 100644 arch/nds32/include/uapi/asm/Kbuild
delete mode 100644 arch/nds32/include/uapi/asm/auxvec.h
delete mode 100644 arch/nds32/include/uapi/asm/byteorder.h
delete mode 100644 arch/nds32/include/uapi/asm/cachectl.h
delete mode 100644 arch/nds32/include/uapi/asm/fp_udfiex_crtl.h
delete mode 100644 arch/nds32/include/uapi/asm/param.h
delete mode 100644 arch/nds32/include/uapi/asm/ptrace.h
delete mode 100644 arch/nds32/include/uapi/asm/sigcontext.h
delete mode 100644 arch/nds32/include/uapi/asm/unistd.h
delete mode 100644 arch/nds32/kernel/.gitignore
delete mode 100644 arch/nds32/kernel/Makefile
delete mode 100644 arch/nds32/kernel/asm-offsets.c
delete mode 100644 arch/nds32/kernel/atl2c.c
delete mode 100644 arch/nds32/kernel/cacheinfo.c
delete mode 100644 arch/nds32/kernel/devtree.c
delete mode 100644 arch/nds32/kernel/dma.c
delete mode 100644 arch/nds32/kernel/ex-entry.S
delete mode 100644 arch/nds32/kernel/ex-exit.S
delete mode 100644 arch/nds32/kernel/ex-scall.S
delete mode 100644 arch/nds32/kernel/fpu.c
delete mode 100644 arch/nds32/kernel/ftrace.c
delete mode 100644 arch/nds32/kernel/head.S
delete mode 100644 arch/nds32/kernel/irq.c
delete mode 100644 arch/nds32/kernel/module.c
delete mode 100644 arch/nds32/kernel/nds32_ksyms.c
delete mode 100644 arch/nds32/kernel/perf_event_cpu.c
delete mode 100644 arch/nds32/kernel/pm.c
delete mode 100644 arch/nds32/kernel/process.c
delete mode 100644 arch/nds32/kernel/ptrace.c
delete mode 100644 arch/nds32/kernel/setup.c
delete mode 100644 arch/nds32/kernel/signal.c
delete mode 100644 arch/nds32/kernel/sleep.S
delete mode 100644 arch/nds32/kernel/stacktrace.c
delete mode 100644 arch/nds32/kernel/sys_nds32.c
delete mode 100644 arch/nds32/kernel/syscall_table.c
delete mode 100644 arch/nds32/kernel/time.c
delete mode 100644 arch/nds32/kernel/traps.c
delete mode 100644 arch/nds32/kernel/vdso.c
delete mode 100644 arch/nds32/kernel/vdso/.gitignore
delete mode 100644 arch/nds32/kernel/vdso/Makefile
delete mode 100644 arch/nds32/kernel/vdso/datapage.S
delete mode 100755 arch/nds32/kernel/vdso/gen_vdso_offsets.sh
delete mode 100644 arch/nds32/kernel/vdso/gettimeofday.c
delete mode 100644 arch/nds32/kernel/vdso/note.S
delete mode 100644 arch/nds32/kernel/vdso/sigreturn.S
delete mode 100644 arch/nds32/kernel/vdso/vdso.S
delete mode 100644 arch/nds32/kernel/vdso/vdso.lds.S
delete mode 100644 arch/nds32/kernel/vmlinux.lds.S
delete mode 100644 arch/nds32/lib/Makefile
delete mode 100644 arch/nds32/lib/clear_user.S
delete mode 100644 arch/nds32/lib/copy_from_user.S
delete mode 100644 arch/nds32/lib/copy_page.S
delete mode 100644 arch/nds32/lib/copy_template.S
delete mode 100644 arch/nds32/lib/copy_to_user.S
delete mode 100644 arch/nds32/lib/memcpy.S
delete mode 100644 arch/nds32/lib/memmove.S
delete mode 100644 arch/nds32/lib/memset.S
delete mode 100644 arch/nds32/lib/memzero.S
delete mode 100644 arch/nds32/math-emu/Makefile
delete mode 100644 arch/nds32/math-emu/faddd.c
delete mode 100644 arch/nds32/math-emu/fadds.c
delete mode 100644 arch/nds32/math-emu/fcmpd.c
delete mode 100644 arch/nds32/math-emu/fcmps.c
delete mode 100644 arch/nds32/math-emu/fd2s.c
delete mode 100644 arch/nds32/math-emu/fd2si.c
delete mode 100644 arch/nds32/math-emu/fd2siz.c
delete mode 100644 arch/nds32/math-emu/fd2ui.c
delete mode 100644 arch/nds32/math-emu/fd2uiz.c
delete mode 100644 arch/nds32/math-emu/fdivd.c
delete mode 100644 arch/nds32/math-emu/fdivs.c
delete mode 100644 arch/nds32/math-emu/fmuld.c
delete mode 100644 arch/nds32/math-emu/fmuls.c
delete mode 100644 arch/nds32/math-emu/fnegd.c
delete mode 100644 arch/nds32/math-emu/fnegs.c
delete mode 100644 arch/nds32/math-emu/fpuemu.c
delete mode 100644 arch/nds32/math-emu/fs2d.c
delete mode 100644 arch/nds32/math-emu/fs2si.c
delete mode 100644 arch/nds32/math-emu/fs2siz.c
delete mode 100644 arch/nds32/math-emu/fs2ui.c
delete mode 100644 arch/nds32/math-emu/fs2uiz.c
delete mode 100644 arch/nds32/math-emu/fsi2d.c
delete mode 100644 arch/nds32/math-emu/fsi2s.c
delete mode 100644 arch/nds32/math-emu/fsqrtd.c
delete mode 100644 arch/nds32/math-emu/fsqrts.c
delete mode 100644 arch/nds32/math-emu/fsubd.c
delete mode 100644 arch/nds32/math-emu/fsubs.c
delete mode 100644 arch/nds32/math-emu/fui2d.c
delete mode 100644 arch/nds32/math-emu/fui2s.c
delete mode 100644 arch/nds32/mm/Makefile
delete mode 100644 arch/nds32/mm/alignment.c
delete mode 100644 arch/nds32/mm/cacheflush.c
delete mode 100644 arch/nds32/mm/extable.c
delete mode 100644 arch/nds32/mm/fault.c
delete mode 100644 arch/nds32/mm/init.c
delete mode 100644 arch/nds32/mm/mm-nds32.c
delete mode 100644 arch/nds32/mm/mmap.c
delete mode 100644 arch/nds32/mm/proc.c
delete mode 100644 arch/nds32/mm/tlb.c
delete mode 100644 drivers/clocksource/timer-atcpit100.c
delete mode 100644 drivers/irqchip/irq-ativic32.c
delete mode 100644 tools/perf/arch/nds32/Build
delete mode 100644 tools/perf/arch/nds32/util/Build
delete mode 100644 tools/perf/arch/nds32/util/header.c
diff --git a/Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt b/Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt
deleted file mode 100644
index f4b4193d830e..000000000000
--- a/Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-* Andestech Internal Vector Interrupt Controller
-
-The Internal Vector Interrupt Controller (IVIC) is a basic interrupt controller
-suitable for a simpler SoC platform not requiring a more sophisticated and
-bigger External Vector Interrupt Controller.
-
-
-Main node required properties:
-
-- compatible : should at least contain "andestech,ativic32".
-- interrupt-controller : Identifies the node as an interrupt controller
-- #interrupt-cells: 1 cells and refer to interrupt-controller/interrupts
-
-Examples:
- intc: interrupt-controller {
- compatible = "andestech,ativic32";
- #interrupt-cells = <1>;
- interrupt-controller;
- };
diff --git a/Documentation/devicetree/bindings/nds32/andestech-boards b/Documentation/devicetree/bindings/nds32/andestech-boards
deleted file mode 100644
index f5d75693e3c7..000000000000
--- a/Documentation/devicetree/bindings/nds32/andestech-boards
+++ /dev/null
@@ -1,40 +0,0 @@
-Andestech(nds32) AE3XX Platform
------------------------------------------------------------------------------
-The AE3XX prototype demonstrates the AE3XX example platform on the FPGA. It
-is composed of one Andestech(nds32) processor and AE3XX.
-
-Required properties (in root node):
-- compatible = "andestech,ae3xx";
-
-Example:
-/dts-v1/;
-/ {
- compatible = "andestech,ae3xx";
- #address-cells = <1>;
- #size-cells = <1>;
- interrupt-parent = <&intc>;
-};
-
-Andestech(nds32) AG101P Platform
------------------------------------------------------------------------------
-AG101P is a generic SoC Platform IP that works with any of Andestech(nds32)
-processors to provide a cost-effective and high performance solution for
-majority of embedded systems in variety of application domains. Users may
-simply attach their IP on one of the system buses together with certain glue
-logics to complete a SoC solution for a specific application. With
-comprehensive simulation and design environments, users may evaluate the
-system performance of their applications and track bugs of their designs
-efficiently. The optional hardware development platform further provides real
-system environment for early prototyping and software/hardware co-development.
-
-Required properties (in root node):
- compatible = "andestech,ag101p";
-
-Example:
-/dts-v1/;
-/ {
- compatible = "andestech,ag101p";
- #address-cells = <1>;
- #size-cells = <1>;
- interrupt-parent = <&intc>;
-};
diff --git a/Documentation/devicetree/bindings/nds32/atl2c.txt b/Documentation/devicetree/bindings/nds32/atl2c.txt
deleted file mode 100644
index da8ab8e7ae9b..000000000000
--- a/Documentation/devicetree/bindings/nds32/atl2c.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-* Andestech L2 cache Controller
-
-The level-2 cache controller plays an important role in reducing memory latency
-for high performance systems, such as thoese designs with AndesCore processors.
-Level-2 cache controller in general enhances overall system performance
-signigicantly and the system power consumption might be reduced as well by
-reducing DRAM accesses.
-
-This binding specifies what properties must be available in the device tree
-representation of an Andestech L2 cache controller.
-
-Required properties:
- - compatible:
- Usage: required
- Value type: <string>
- Definition: "andestech,atl2c"
- - reg : Physical base address and size of cache controller's memory mapped
- - cache-unified : Specifies the cache is a unified cache.
- - cache-level : Should be set to 2 for a level 2 cache.
-
-* Example
-
- cache-controller@e0500000 {
- compatible = "andestech,atl2c";
- reg = <0xe0500000 0x1000>;
- cache-unified;
- cache-level = <2>;
- };
diff --git a/Documentation/devicetree/bindings/nds32/cpus.txt b/Documentation/devicetree/bindings/nds32/cpus.txt
deleted file mode 100644
index 6f9e311b6589..000000000000
--- a/Documentation/devicetree/bindings/nds32/cpus.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-* Andestech Processor Binding
-
-This binding specifies what properties must be available in the device tree
-representation of a Andestech Processor Core, which is the root node in the
-tree.
-
-Required properties:
-
- - compatible:
- Usage: required
- Value type: <string>
- Definition: Should be "andestech,<core_name>", "andestech,nds32v3" as fallback.
- Must contain "andestech,nds32v3" as the most generic value, in addition to
- one of the following identifiers for a particular CPU core:
- "andestech,n13"
- "andestech,n15"
- "andestech,d15"
- "andestech,n10"
- "andestech,d10"
- - device_type
- Usage: required
- Value type: <string>
- Definition: must be "cpu"
- - reg: Contains CPU index.
- - clock-frequency: Contains the clock frequency for CPU, in Hz.
-
-* Examples
-
-/ {
- cpus {
- cpu@0 {
- device_type = "cpu";
- compatible = "andestech,n13", "andestech,nds32v3";
- reg = <0x0>;
- clock-frequency = <60000000>
- };
- };
-};
diff --git a/Documentation/devicetree/bindings/perf/nds32v3-pmu.txt b/Documentation/devicetree/bindings/perf/nds32v3-pmu.txt
deleted file mode 100644
index 1bd15785b4ae..000000000000
--- a/Documentation/devicetree/bindings/perf/nds32v3-pmu.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-* NDS32 Performance Monitor Units
-
-NDS32 core have a PMU for counting cpu and cache events like cache misses.
-The NDS32 PMU representation in the device tree should be done as under:
-
-Required properties:
-
-- compatible :
- "andestech,nds32v3-pmu"
-
-- interrupts : The interrupt number for NDS32 PMU is 13.
-
-Example:
-pmu{
- compatible = "andestech,nds32v3-pmu";
- interrupts = <13>;
-}
diff --git a/Documentation/devicetree/bindings/timer/andestech,atcpit100-timer.txt b/Documentation/devicetree/bindings/timer/andestech,atcpit100-timer.txt
deleted file mode 100644
index 4c9ea5989e35..000000000000
--- a/Documentation/devicetree/bindings/timer/andestech,atcpit100-timer.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-Andestech ATCPIT100 timer
-------------------------------------------------------------------
-ATCPIT100 is a generic IP block from Andes Technology, embedded in
-Andestech AE3XX platforms and other designs.
-
-This timer is a set of compact multi-function timers, which can be
-used as pulse width modulators (PWM) as well as simple timers.
-
-It supports up to 4 PIT channels. Each PIT channel is a
-multi-function timer and provide the following usage scenarios:
-One 32-bit timer
-Two 16-bit timers
-Four 8-bit timers
-One 16-bit PWM
-One 16-bit timer and one 8-bit PWM
-Two 8-bit timer and one 8-bit PWM
-
-Required properties:
-- compatible : Should be "andestech,atcpit100"
-- reg : Address and length of the register set
-- interrupts : Reference to the timer interrupt
-- clocks : a clock to provide the tick rate for "andestech,atcpit100"
-- clock-names : should be "PCLK" for the peripheral clock source.
-
-Examples:
-
-timer0: timer@f0400000 {
- compatible = "andestech,atcpit100";
- reg = <0xf0400000 0x1000>;
- interrupts = <2>;
- clocks = <&apb>;
- clock-names = "PCLK";
-};
diff --git a/Documentation/features/core/cBPF-JIT/arch-support.txt b/Documentation/features/core/cBPF-JIT/arch-support.txt
index e59b5215402d..77bd6974dd6d 100644
--- a/Documentation/features/core/cBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/cBPF-JIT/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/core/eBPF-JIT/arch-support.txt b/Documentation/features/core/eBPF-JIT/arch-support.txt
index dcbd8679f514..d5ab547b2be6 100644
--- a/Documentation/features/core/eBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/eBPF-JIT/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/core/generic-idle-thread/arch-support.txt b/Documentation/features/core/generic-idle-thread/arch-support.txt
index 4efcba7b5239..ddb3762ca7f5 100644
--- a/Documentation/features/core/generic-idle-thread/arch-support.txt
+++ b/Documentation/features/core/generic-idle-thread/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | ok |
| parisc: | ok |
diff --git a/Documentation/features/core/jump-labels/arch-support.txt b/Documentation/features/core/jump-labels/arch-support.txt
index 0c801d1bd2da..d5380ef68713 100644
--- a/Documentation/features/core/jump-labels/arch-support.txt
+++ b/Documentation/features/core/jump-labels/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/core/thread-info-in-task/arch-support.txt b/Documentation/features/core/thread-info-in-task/arch-support.txt
index bc74d8beea72..0654ba3a42ff 100644
--- a/Documentation/features/core/thread-info-in-task/arch-support.txt
+++ b/Documentation/features/core/thread-info-in-task/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | ok |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/core/tracehook/arch-support.txt b/Documentation/features/core/tracehook/arch-support.txt
index af34308fce7f..8e95dc0c7b90 100644
--- a/Documentation/features/core/tracehook/arch-support.txt
+++ b/Documentation/features/core/tracehook/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | ok |
| nios2: | ok |
| openrisc: | ok |
| parisc: | ok |
diff --git a/Documentation/features/debug/KASAN/arch-support.txt b/Documentation/features/debug/KASAN/arch-support.txt
index c244ac7eee26..407ca1d91242 100644
--- a/Documentation/features/debug/KASAN/arch-support.txt
+++ b/Documentation/features/debug/KASAN/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
index fa83403b4aec..83eafe1a7f68 100644
--- a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
+++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/gcov-profile-all/arch-support.txt b/Documentation/features/debug/gcov-profile-all/arch-support.txt
index b39c1a5de3f3..49e0dda11227 100644
--- a/Documentation/features/debug/gcov-profile-all/arch-support.txt
+++ b/Documentation/features/debug/gcov-profile-all/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/kcov/arch-support.txt b/Documentation/features/debug/kcov/arch-support.txt
index 7e44013cc320..3d34b724ddae 100644
--- a/Documentation/features/debug/kcov/arch-support.txt
+++ b/Documentation/features/debug/kcov/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/kgdb/arch-support.txt b/Documentation/features/debug/kgdb/arch-support.txt
index 2cb0576f9180..7aa073d908c5 100644
--- a/Documentation/features/debug/kgdb/arch-support.txt
+++ b/Documentation/features/debug/kgdb/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
- | nds32: | TODO |
| nios2: | ok |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/debug/kmemleak/arch-support.txt b/Documentation/features/debug/kmemleak/arch-support.txt
index e9ac415f8aec..5c784ff9768a 100644
--- a/Documentation/features/debug/kmemleak/arch-support.txt
+++ b/Documentation/features/debug/kmemleak/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
- | nds32: | ok |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
index 96156e8802a7..a1f6e98c6b1f 100644
--- a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
+++ b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/debug/kprobes/arch-support.txt b/Documentation/features/debug/kprobes/arch-support.txt
index ee95ed61909a..e7e7015175e7 100644
--- a/Documentation/features/debug/kprobes/arch-support.txt
+++ b/Documentation/features/debug/kprobes/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/debug/kretprobes/arch-support.txt b/Documentation/features/debug/kretprobes/arch-support.txt
index 612cb97d47b8..838eb53a6fa5 100644
--- a/Documentation/features/debug/kretprobes/arch-support.txt
+++ b/Documentation/features/debug/kretprobes/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/debug/optprobes/arch-support.txt b/Documentation/features/debug/optprobes/arch-support.txt
index d6ff141a6122..6358b00b1723 100644
--- a/Documentation/features/debug/optprobes/arch-support.txt
+++ b/Documentation/features/debug/optprobes/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/stackprotector/arch-support.txt b/Documentation/features/debug/stackprotector/arch-support.txt
index ad4de22a71ab..f6cdf781305f 100644
--- a/Documentation/features/debug/stackprotector/arch-support.txt
+++ b/Documentation/features/debug/stackprotector/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/uprobes/arch-support.txt b/Documentation/features/debug/uprobes/arch-support.txt
index 8bd5548a4485..0b871e797d24 100644
--- a/Documentation/features/debug/uprobes/arch-support.txt
+++ b/Documentation/features/debug/uprobes/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/user-ret-profiler/arch-support.txt b/Documentation/features/debug/user-ret-profiler/arch-support.txt
index 2a3fe812a5fa..a2feda7adff1 100644
--- a/Documentation/features/debug/user-ret-profiler/arch-support.txt
+++ b/Documentation/features/debug/user-ret-profiler/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/io/dma-contiguous/arch-support.txt b/Documentation/features/io/dma-contiguous/arch-support.txt
index bece89586efa..9b407f26d45e 100644
--- a/Documentation/features/io/dma-contiguous/arch-support.txt
+++ b/Documentation/features/io/dma-contiguous/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/locking/cmpxchg-local/arch-support.txt b/Documentation/features/locking/cmpxchg-local/arch-support.txt
index 52bdda004f5c..090520b0e02d 100644
--- a/Documentation/features/locking/cmpxchg-local/arch-support.txt
+++ b/Documentation/features/locking/cmpxchg-local/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/locking/lockdep/arch-support.txt b/Documentation/features/locking/lockdep/arch-support.txt
index a8cd163c8b7e..6d840b103537 100644
--- a/Documentation/features/locking/lockdep/arch-support.txt
+++ b/Documentation/features/locking/lockdep/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
- | nds32: | ok |
| nios2: | TODO |
| openrisc: | ok |
| parisc: | TODO |
diff --git a/Documentation/features/locking/queued-rwlocks/arch-support.txt b/Documentation/features/locking/queued-rwlocks/arch-support.txt
index 8c85949752b3..de586be05d64 100644
--- a/Documentation/features/locking/queued-rwlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-rwlocks/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | ok |
| parisc: | TODO |
diff --git a/Documentation/features/locking/queued-spinlocks/arch-support.txt b/Documentation/features/locking/queued-spinlocks/arch-support.txt
index 5f4e1b3841af..29d0c8b7b1c5 100644
--- a/Documentation/features/locking/queued-spinlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-spinlocks/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | ok |
| parisc: | TODO |
diff --git a/Documentation/features/perf/kprobes-event/arch-support.txt b/Documentation/features/perf/kprobes-event/arch-support.txt
index 78f3fe080f0e..881a8a50e41e 100644
--- a/Documentation/features/perf/kprobes-event/arch-support.txt
+++ b/Documentation/features/perf/kprobes-event/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | ok |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/perf/perf-regs/arch-support.txt b/Documentation/features/perf/perf-regs/arch-support.txt
index 5bf3b1854a1f..7639a796a8e1 100644
--- a/Documentation/features/perf/perf-regs/arch-support.txt
+++ b/Documentation/features/perf/perf-regs/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/perf/perf-stackdump/arch-support.txt b/Documentation/features/perf/perf-stackdump/arch-support.txt
index d88659bb4fc1..df1a4c679a45 100644
--- a/Documentation/features/perf/perf-stackdump/arch-support.txt
+++ b/Documentation/features/perf/perf-stackdump/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/sched/membarrier-sync-core/arch-support.txt b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
index 883d33b265d6..51b7afc937f1 100644
--- a/Documentation/features/sched/membarrier-sync-core/arch-support.txt
+++ b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
@@ -40,7 +40,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/sched/numa-balancing/arch-support.txt b/Documentation/features/sched/numa-balancing/arch-support.txt
index 9affb7c2c500..d0e308135434 100644
--- a/Documentation/features/sched/numa-balancing/arch-support.txt
+++ b/Documentation/features/sched/numa-balancing/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | .. |
| openrisc: | .. |
| parisc: | .. |
diff --git a/Documentation/features/seccomp/seccomp-filter/arch-support.txt b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
index 26eec58ab819..05613c5ff560 100644
--- a/Documentation/features/seccomp/seccomp-filter/arch-support.txt
+++ b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/time/arch-tick-broadcast/arch-support.txt b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
index 8dcaab070c7b..b4c96ebab7e3 100644
--- a/Documentation/features/time/arch-tick-broadcast/arch-support.txt
+++ b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/time/clockevents/arch-support.txt b/Documentation/features/time/clockevents/arch-support.txt
index 9a81cb03b1fd..3f6976052e2a 100644
--- a/Documentation/features/time/clockevents/arch-support.txt
+++ b/Documentation/features/time/clockevents/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
- | nds32: | ok |
| nios2: | ok |
| openrisc: | ok |
| parisc: | TODO |
diff --git a/Documentation/features/time/context-tracking/arch-support.txt b/Documentation/features/time/context-tracking/arch-support.txt
index 4ed116c2ec39..bb1c1801553e 100644
--- a/Documentation/features/time/context-tracking/arch-support.txt
+++ b/Documentation/features/time/context-tracking/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/time/irq-time-acct/arch-support.txt b/Documentation/features/time/irq-time-acct/arch-support.txt
index bc30c15557c7..3cea25b80c8c 100644
--- a/Documentation/features/time/irq-time-acct/arch-support.txt
+++ b/Documentation/features/time/irq-time-acct/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | .. |
diff --git a/Documentation/features/time/virt-cpuacct/arch-support.txt b/Documentation/features/time/virt-cpuacct/arch-support.txt
index 050de43bbbb9..5163a60a1c1e 100644
--- a/Documentation/features/time/virt-cpuacct/arch-support.txt
+++ b/Documentation/features/time/virt-cpuacct/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/vm/ELF-ASLR/arch-support.txt b/Documentation/features/vm/ELF-ASLR/arch-support.txt
index 2949c99fbb2f..73ec761f1e27 100644
--- a/Documentation/features/vm/ELF-ASLR/arch-support.txt
+++ b/Documentation/features/vm/ELF-ASLR/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/vm/PG_uncached/arch-support.txt b/Documentation/features/vm/PG_uncached/arch-support.txt
index 6cde38458596..9066a90b38d9 100644
--- a/Documentation/features/vm/PG_uncached/arch-support.txt
+++ b/Documentation/features/vm/PG_uncached/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/vm/THP/arch-support.txt b/Documentation/features/vm/THP/arch-support.txt
index 7dbd6967b37e..f717ab792e5a 100644
--- a/Documentation/features/vm/THP/arch-support.txt
+++ b/Documentation/features/vm/THP/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | .. |
| microblaze: | .. |
| mips: | ok |
- | nds32: | TODO |
| nios2: | .. |
| openrisc: | .. |
| parisc: | TODO |
diff --git a/Documentation/features/vm/TLB/arch-support.txt b/Documentation/features/vm/TLB/arch-support.txt
index e1c3a4c4d107..6fa76a37f299 100644
--- a/Documentation/features/vm/TLB/arch-support.txt
+++ b/Documentation/features/vm/TLB/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | .. |
| openrisc: | .. |
| parisc: | TODO |
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index bc53905a0306..6e1792ee37fe 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/vm/ioremap_prot/arch-support.txt b/Documentation/features/vm/ioremap_prot/arch-support.txt
index 9a0c8783b84d..a6dcbe5f47b6 100644
--- a/Documentation/features/vm/ioremap_prot/arch-support.txt
+++ b/Documentation/features/vm/ioremap_prot/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/vm/pte_special/arch-support.txt b/Documentation/features/vm/pte_special/arch-support.txt
index 40b969f3a6bb..376477749c42 100644
--- a/Documentation/features/vm/pte_special/arch-support.txt
+++ b/Documentation/features/vm/pte_special/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/MAINTAINERS b/MAINTAINERS
index 1ba1e4af2cbc..41992140b155 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1229,18 +1229,6 @@ S: Supported
F: drivers/clk/analogbits/*
F: include/linux/clk/analogbits*
-ANDES ARCHITECTURE
-M: Nick Hu <nickhu@andestech.com>
-M: Greentime Hu <green.hu@gmail.com>
-M: Vincent Chen <deanbo422@gmail.com>
-S: Supported
-T: git https://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux.git
-F: Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt
-F: Documentation/devicetree/bindings/nds32/
-F: arch/nds32/
-N: nds32
-K: nds32
-
ANDROID CONFIG FRAGMENTS
M: Rob Herring <robh@kernel.org>
S: Supported
diff --git a/arch/nds32/Kbuild b/arch/nds32/Kbuild
deleted file mode 100644
index 4e39f7abdeb6..000000000000
--- a/arch/nds32/Kbuild
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-
-# for cleaning
-subdir- += boot
diff --git a/arch/nds32/Kconfig b/arch/nds32/Kconfig
deleted file mode 100644
index 4d1421b18734..000000000000
--- a/arch/nds32/Kconfig
+++ /dev/null
@@ -1,102 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.rst.
-#
-
-config NDS32
- def_bool y
- select ARCH_32BIT_OFF_T
- select ARCH_HAS_DMA_PREP_COHERENT
- select ARCH_HAS_SYNC_DMA_FOR_CPU
- select ARCH_HAS_SYNC_DMA_FOR_DEVICE
- select ARCH_WANT_FRAME_POINTERS if FTRACE
- select CLKSRC_MMIO
- select CLONE_BACKWARDS
- select COMMON_CLK
- select DMA_DIRECT_REMAP
- select GENERIC_ATOMIC64
- select GENERIC_CPU_DEVICES
- select GENERIC_IRQ_CHIP
- select GENERIC_IRQ_SHOW
- select GENERIC_IOREMAP
- select GENERIC_LIB_ASHLDI3
- select GENERIC_LIB_ASHRDI3
- select GENERIC_LIB_CMPDI2
- select GENERIC_LIB_LSHRDI3
- select GENERIC_LIB_MULDI3
- select GENERIC_LIB_UCMPDI2
- select GENERIC_TIME_VSYSCALL
- select HAVE_ARCH_TRACEHOOK
- select HAVE_DEBUG_KMEMLEAK
- select HAVE_EXIT_THREAD
- select HAVE_REGS_AND_STACK_ACCESS_API
- select HAVE_PERF_EVENTS
- select IRQ_DOMAIN
- select LOCKDEP_SUPPORT
- select MODULES_USE_ELF_RELA
- select OF
- select OF_EARLY_FLATTREE
- select NO_IOPORT_MAP
- select RTC_LIB
- select THREAD_INFO_IN_TASK
- select HAVE_FUNCTION_TRACER
- select HAVE_FUNCTION_GRAPH_TRACER
- select HAVE_FTRACE_MCOUNT_RECORD
- select HAVE_DYNAMIC_FTRACE
- select SET_FS
- select TRACE_IRQFLAGS_SUPPORT
- help
- Andes(nds32) Linux support.
-
-config GENERIC_CALIBRATE_DELAY
- def_bool y
-
-config GENERIC_CSUM
- def_bool y
-
-config GENERIC_HWEIGHT
- def_bool y
-
-config GENERIC_LOCKBREAK
- def_bool y
- depends on PREEMPTION
-
-config STACKTRACE_SUPPORT
- def_bool y
-
-config FIX_EARLYCON_MEM
- def_bool y
-
-config PGTABLE_LEVELS
- default 2
-
-menu "System Type"
-source "arch/nds32/Kconfig.cpu"
-config NR_CPUS
- int
- default 1
-
-config MMU
- def_bool y
-
-config NDS32_BUILTIN_DTB
- string "Builtin DTB"
- default ""
- help
- User can use it to specify the dts of the SoC
-endmenu
-
-menu "Kernel Features"
-source "kernel/Kconfig.hz"
-endmenu
-
-menu "Power management options"
-config SYS_SUPPORTS_APM_EMULATION
- bool
-
-config ARCH_SUSPEND_POSSIBLE
- def_bool y
-
-source "kernel/power/Kconfig"
-endmenu
diff --git a/arch/nds32/Kconfig.cpu b/arch/nds32/Kconfig.cpu
deleted file mode 100644
index c10759952485..000000000000
--- a/arch/nds32/Kconfig.cpu
+++ /dev/null
@@ -1,218 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-comment "Processor Features"
-
-config CPU_BIG_ENDIAN
- def_bool !CPU_LITTLE_ENDIAN
-
-config CPU_LITTLE_ENDIAN
- bool "Little endian"
- default y
-
-config FPU
- bool "FPU support"
- default n
- help
- If FPU ISA is used in user space, this configuration shall be Y to
- enable required support in kernel such as fpu context switch and
- fpu exception handler.
-
- If no FPU ISA is used in user space, say N.
-
-config LAZY_FPU
- bool "lazy FPU support"
- depends on FPU
- default y
- help
- Say Y here to enable the lazy FPU scheme. The lazy FPU scheme can
- enhance system performance by reducing the context switch
- frequency of the FPU register.
-
- For normal case, say Y.
-
-config SUPPORT_DENORMAL_ARITHMETIC
- bool "Denormal arithmetic support"
- depends on FPU
- default n
- help
- Say Y here to enable arithmetic of denormalized number. Enabling
- this feature can enhance the precision for tininess number.
- However, performance loss in float point calculations is
- possibly significant due to additional FPU exception.
-
- If the calculated tolerance for tininess number is not critical,
- say N to prevent performance loss.
-
-config HWZOL
- bool "hardware zero overhead loop support"
- depends on CPU_D10 || CPU_D15
- default n
- help
- A set of Zero-Overhead Loop mechanism is provided to reduce the
- instruction fetch and execution overhead of loop-control instructions.
- It will save 3 registers($LB, $LC, $LE) for context saving if say Y.
- You don't need to save these registers if you can make sure your user
- program doesn't use these registers.
-
- If unsure, say N.
-
-config CPU_CACHE_ALIASING
- bool "Aliasing cache"
- depends on CPU_N10 || CPU_D10 || CPU_N13 || CPU_V3
- default y
- help
- If this CPU is using VIPT data cache and its cache way size is larger
- than page size, say Y. If it is using PIPT data cache, say N.
-
- If unsure, say Y.
-
-choice
- prompt "minimum CPU type"
- default CPU_V3
- help
- The data cache of N15/D15 is implemented as PIPT and it will not cause
- the cache aliasing issue. The rest cpus(N13, N10 and D10) are
- implemented as VIPT data cache. It may cause the cache aliasing issue
- if its cache way size is larger than page size. You can specify the
- CPU type directly or choose CPU_V3 if unsure.
-
- A kernel built for N10 is able to run on N15, D15, N13, N10 or D10.
- A kernel built for N15 is able to run on N15 or D15.
- A kernel built for D10 is able to run on D10 or D15.
- A kernel built for D15 is able to run on D15.
- A kernel built for N13 is able to run on N15, N13 or D15.
-
-config CPU_N15
- bool "AndesCore N15"
-config CPU_N13
- bool "AndesCore N13"
- select CPU_CACHE_ALIASING if ANDES_PAGE_SIZE_4KB
-config CPU_N10
- bool "AndesCore N10"
- select CPU_CACHE_ALIASING
-config CPU_D15
- bool "AndesCore D15"
-config CPU_D10
- bool "AndesCore D10"
- select CPU_CACHE_ALIASING
-config CPU_V3
- bool "AndesCore v3 compatible"
- select CPU_CACHE_ALIASING
-endchoice
-choice
- prompt "Paging -- page size "
- default ANDES_PAGE_SIZE_4KB
-config ANDES_PAGE_SIZE_4KB
- bool "use 4KB page size"
-config ANDES_PAGE_SIZE_8KB
- bool "use 8KB page size"
-endchoice
-
-config CPU_ICACHE_DISABLE
- bool "Disable I-Cache"
- help
- Say Y here to disable the processor instruction cache. Unless
- you have a reason not to or are unsure, say N.
-
-config CPU_DCACHE_DISABLE
- bool "Disable D-Cache"
- help
- Say Y here to disable the processor data cache. Unless
- you have a reason not to or are unsure, say N.
-
-config CPU_DCACHE_WRITETHROUGH
- bool "Force write through D-cache"
- depends on !CPU_DCACHE_DISABLE
- help
- Say Y here to use the data cache in writethrough mode. Unless you
- specifically require this or are unsure, say N.
-
-config WBNA
- bool "WBNA"
- default n
- help
- Say Y here to enable write-back memory with no-write-allocation policy.
-
-config ALIGNMENT_TRAP
- bool "Kernel support unaligned access handling by sw"
- depends on PROC_FS
- default n
- help
- Andes processors cannot load/store information which is not
- naturally aligned on the bus, i.e., a 4 byte load must start at an
- address divisible by 4. On 32-bit Andes processors, these non-aligned
- load/store instructions will be emulated in software if you say Y
- here, which has a severe performance impact. With an IP-only
- configuration it is safe to say N, otherwise say Y.
-
-config HW_SUPPORT_UNALIGNMENT_ACCESS
- bool "Kernel support unaligned access handling by hw"
- depends on !ALIGNMENT_TRAP
- default n
- help
- Andes processors load/store world/half-word instructions can access
- unaligned memory locations without generating the Data Alignment
- Check exceptions. With an IP-only configuration it is safe to say N,
- otherwise say Y.
-
-config HIGHMEM
- bool "High Memory Support"
- depends on MMU && !CPU_CACHE_ALIASING
- select KMAP_LOCAL
- help
- The address space of Andes processors is only 4 Gigabytes large
- and it has to accommodate user address space, kernel address
- space as well as some memory mapped IO. That means that, if you
- have a large amount of physical memory and/or IO, not all of the
- memory can be "permanently mapped" by the kernel. The physical
- memory that is not permanently mapped is called "high memory".
-
- Depending on the selected kernel/user memory split, minimum
- vmalloc space and actual amount of RAM, you may not need this
- option which should result in a slightly faster kernel.
-
- If unsure, say N.
-
-config CACHE_L2
- bool "Support L2 cache"
- default y
- help
- Say Y here to enable L2 cache if your SoC are integrated with L2CC.
- If unsure, say N.
-
-config HW_PRE
- bool "Enable hardware prefetcher"
- default y
- help
- Say Y here to enable hardware prefetcher feature.
- Only when CPU_VER.REV >= 0x09 can support.
-
-menu "Memory configuration"
-
-choice
- prompt "Memory split"
- depends on MMU
- default VMSPLIT_3G_OPT
- help
- Select the desired split between kernel and user memory.
-
- If you are not absolutely sure what you are doing, leave this
- option alone!
-
- config VMSPLIT_3G
- bool "3G/1G user/kernel split"
- config VMSPLIT_3G_OPT
- bool "3G/1G user/kernel split (for full 1G low memory)"
- config VMSPLIT_2G
- bool "2G/2G user/kernel split"
- config VMSPLIT_1G
- bool "1G/3G user/kernel split"
-endchoice
-
-config PAGE_OFFSET
- hex
- default 0x40000000 if VMSPLIT_1G
- default 0x80000000 if VMSPLIT_2G
- default 0xB0000000 if VMSPLIT_3G_OPT
- default 0xC0000000
-
-endmenu
diff --git a/arch/nds32/Kconfig.debug b/arch/nds32/Kconfig.debug
deleted file mode 100644
index 295942fe3fd5..000000000000
--- a/arch/nds32/Kconfig.debug
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-# dummy file, do not delete
diff --git a/arch/nds32/Makefile b/arch/nds32/Makefile
deleted file mode 100644
index b33d5d81b6ae..000000000000
--- a/arch/nds32/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-LDFLAGS_vmlinux := --no-undefined -X
-OBJCOPYFLAGS := -O binary -R .note -R .note.gnu.build-id -R .comment -S
-
-ifdef CONFIG_FUNCTION_TRACER
-arch-y += -malways-save-lp -mno-relax
-endif
-
-# Avoid generating FPU instructions
-arch-y += -mno-ext-fpu-sp -mno-ext-fpu-dp -mfloat-abi=soft
-
-# Enable <nds32_intrinsic.h>
-KBUILD_CFLAGS += -isystem $(shell $(CC) -print-file-name=include)
-KBUILD_CFLAGS += $(call cc-option, -mno-sched-prolog-epilog)
-KBUILD_CFLAGS += -mcmodel=large
-
-KBUILD_CFLAGS +=$(arch-y) $(tune-y)
-KBUILD_AFLAGS +=$(arch-y) $(tune-y)
-
-#Default value
-head-y := arch/nds32/kernel/head.o
-textaddr-y := $(CONFIG_PAGE_OFFSET)+0xc000
-
-TEXTADDR := $(textaddr-y)
-
-export TEXTADDR
-
-
-# If we have a machine-specific directory, then include it in the build.
-core-y += arch/nds32/kernel/ arch/nds32/mm/
-core-$(CONFIG_FPU) += arch/nds32/math-emu/
-libs-y += arch/nds32/lib/
-
-ifdef CONFIG_CPU_LITTLE_ENDIAN
-KBUILD_CFLAGS += $(call cc-option, -EL)
-KBUILD_AFLAGS += $(call cc-option, -EL)
-KBUILD_LDFLAGS += $(call cc-option, -EL)
-CHECKFLAGS += -D__NDS32_EL__
-else
-KBUILD_CFLAGS += $(call cc-option, -EB)
-KBUILD_AFLAGS += $(call cc-option, -EB)
-KBUILD_LDFLAGS += $(call cc-option, -EB)
-CHECKFLAGS += -D__NDS32_EB__
-endif
-
-boot := arch/nds32/boot
-core-y += $(boot)/dts/
-
-Image: vmlinux
- $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
-
-
-PHONY += vdso_install
-vdso_install:
- $(Q)$(MAKE) $(build)=arch/nds32/kernel/vdso $@
-
-prepare: vdso_prepare
-vdso_prepare: prepare0
- $(Q)$(MAKE) $(build)=arch/nds32/kernel/vdso include/generated/vdso-offsets.h
-
-define archhelp
- echo ' Image - kernel image (arch/$(ARCH)/boot/Image)'
-endef
diff --git a/arch/nds32/boot/.gitignore b/arch/nds32/boot/.gitignore
deleted file mode 100644
index 9182a3a1ea0a..000000000000
--- a/arch/nds32/boot/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-/Image
diff --git a/arch/nds32/boot/Makefile b/arch/nds32/boot/Makefile
deleted file mode 100644
index c4cc0c2689f7..000000000000
--- a/arch/nds32/boot/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-targets := Image Image.gz
-
-$(obj)/Image: vmlinux FORCE
- $(call if_changed,objcopy)
-
-$(obj)/Image.gz: $(obj)/Image FORCE
- $(call if_changed,gzip)
-
-install: $(obj)/Image
- $(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
- $(obj)/Image System.map "$(INSTALL_PATH)"
-
-zinstall: $(obj)/Image.gz
- $(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
- $(obj)/Image.gz System.map "$(INSTALL_PATH)"
diff --git a/arch/nds32/boot/dts/Makefile b/arch/nds32/boot/dts/Makefile
deleted file mode 100644
index 4fc69562eae8..000000000000
--- a/arch/nds32/boot/dts/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-obj-$(CONFIG_OF) += $(addsuffix .dtb.o, $(CONFIG_NDS32_BUILTIN_DTB))
diff --git a/arch/nds32/boot/dts/ae3xx.dts b/arch/nds32/boot/dts/ae3xx.dts
deleted file mode 100644
index 16a9f54a805e..000000000000
--- a/arch/nds32/boot/dts/ae3xx.dts
+++ /dev/null
@@ -1,90 +0,0 @@
-/dts-v1/;
-/ {
- compatible = "andestech,ae3xx";
- #address-cells = <1>;
- #size-cells = <1>;
- interrupt-parent = <&intc>;
-
- chosen {
- stdout-path = &serial0;
- };
-
- memory@0 {
- device_type = "memory";
- reg = <0x00000000 0x40000000>;
- };
-
- cpus {
- #address-cells = <1>;
- #size-cells = <0>;
- cpu@0 {
- device_type = "cpu";
- compatible = "andestech,n13", "andestech,nds32v3";
- reg = <0>;
- clock-frequency = <60000000>;
- next-level-cache = <&L2>;
- };
- };
-
- intc: interrupt-controller {
- compatible = "andestech,ativic32";
- #interrupt-cells = <1>;
- interrupt-controller;
- };
-
- clock: clk {
- #clock-cells = <0>;
- compatible = "fixed-clock";
- clock-frequency = <30000000>;
- };
-
- apb {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
-
- serial0: serial@f0300000 {
- compatible = "andestech,uart16550", "ns16550a";
- reg = <0xf0300000 0x1000>;
- interrupts = <8>;
- clock-frequency = <14745600>;
- reg-shift = <2>;
- reg-offset = <32>;
- no-loopback-test = <1>;
- };
-
- timer0: timer@f0400000 {
- compatible = "andestech,atcpit100";
- reg = <0xf0400000 0x1000>;
- interrupts = <2>;
- clocks = <&clock>;
- clock-names = "PCLK";
- };
- };
-
- ahb {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
-
- L2: cache-controller@e0500000 {
- compatible = "andestech,atl2c";
- reg = <0xe0500000 0x1000>;
- cache-unified;
- cache-level = <2>;
- };
-
- mac0: ethernet@e0100000 {
- compatible = "andestech,atmac100";
- reg = <0xe0100000 0x1000>;
- interrupts = <18>;
- };
- };
-
- pmu {
- compatible = "andestech,nds32v3-pmu";
- interrupts= <13>;
- };
-};
diff --git a/arch/nds32/configs/defconfig b/arch/nds32/configs/defconfig
deleted file mode 100644
index f9a89cf00aa6..000000000000
--- a/arch/nds32/configs/defconfig
+++ /dev/null
@@ -1,104 +0,0 @@
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_USER_NS=y
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_PROFILING=y
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_CACHE_L2 is not set
-CONFIG_PREEMPT=y
-# CONFIG_COMPACTION is not set
-CONFIG_HZ_100=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_DIAG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_BLK_DEV is not set
-CONFIG_NETDEVICES=y
-# CONFIG_NET_CADENCE is not set
-# CONFIG_NET_VENDOR_BROADCOM is not set
-CONFIG_FTMAC100=y
-# CONFIG_NET_VENDOR_INTEL is not set
-# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_NATSEMI is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-# CONFIG_NET_VENDOR_STMICRO is not set
-# CONFIG_NET_VENDOR_WIZNET is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_SERIO is not set
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_SERIAL_8250=y
-# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=3
-CONFIG_SERIAL_8250_RUNTIME_UARTS=3
-CONFIG_SERIAL_OF_PLATFORM=y
-# CONFIG_HW_RANDOM is not set
-# CONFIG_HWMON is not set
-# CONFIG_HID_A4TECH is not set
-# CONFIG_HID_APPLE is not set
-# CONFIG_HID_BELKIN is not set
-# CONFIG_HID_CHERRY is not set
-# CONFIG_HID_CHICONY is not set
-# CONFIG_HID_CYPRESS is not set
-# CONFIG_HID_EZKEY is not set
-# CONFIG_HID_ITE is not set
-# CONFIG_HID_KENSINGTON is not set
-# CONFIG_HID_LOGITECH is not set
-# CONFIG_HID_MICROSOFT is not set
-# CONFIG_HID_MONTEREY is not set
-# CONFIG_USB_SUPPORT is not set
-CONFIG_GENERIC_PHY=y
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-CONFIG_FS_ENCRYPTION=y
-CONFIG_FUSE_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_USE_LEGACY_DNS=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_DEBUG_INFO=y
-CONFIG_DEBUG_INFO_DWARF4=y
-CONFIG_GDB_SCRIPTS=y
-CONFIG_READABLE_ASM=y
-CONFIG_HEADERS_INSTALL=y
-CONFIG_HEADERS_CHECK=y
-CONFIG_DEBUG_SECTION_MISMATCH=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_KERNEL=y
-CONFIG_PANIC_ON_OOPS=y
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_DEBUG_PREEMPT is not set
-CONFIG_STACKTRACE=y
-CONFIG_RCU_CPU_STALL_TIMEOUT=300
-# CONFIG_CRYPTO_HW is not set
diff --git a/arch/nds32/include/asm/Kbuild b/arch/nds32/include/asm/Kbuild
deleted file mode 100644
index 82a4453c9c2d..000000000000
--- a/arch/nds32/include/asm/Kbuild
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-generic-y += asm-offsets.h
-generic-y += cmpxchg.h
-generic-y += export.h
-generic-y += gpio.h
-generic-y += kvm_para.h
-generic-y += parport.h
-generic-y += user.h
diff --git a/arch/nds32/include/asm/assembler.h b/arch/nds32/include/asm/assembler.h
deleted file mode 100644
index 5e7c56926049..000000000000
--- a/arch/nds32/include/asm/assembler.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_ASSEMBLER_H__
-#define __NDS32_ASSEMBLER_H__
-
-.macro gie_disable
- setgie.d
- dsb
-.endm
-
-.macro gie_enable
- setgie.e
- dsb
-.endm
-
-.macro gie_save oldpsw
- mfsr \oldpsw, $ir0
- setgie.d
- dsb
-.endm
-
-.macro gie_restore oldpsw
- andi \oldpsw, \oldpsw, #0x1
- beqz \oldpsw, 7001f
- setgie.e
- dsb
-7001:
-.endm
-
-
-#define USER(insn, reg, addr, opr) \
-9999: insn reg, addr, opr; \
- .section __ex_table,"a"; \
- .align 3; \
- .long 9999b, 9001f; \
- .previous
-
-#endif /* __NDS32_ASSEMBLER_H__ */
diff --git a/arch/nds32/include/asm/barrier.h b/arch/nds32/include/asm/barrier.h
deleted file mode 100644
index 16413172fd50..000000000000
--- a/arch/nds32/include/asm/barrier.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_ASM_BARRIER_H
-#define __NDS32_ASM_BARRIER_H
-
-#ifndef __ASSEMBLY__
-#define mb() asm volatile("msync all":::"memory")
-#define rmb() asm volatile("msync all":::"memory")
-#define wmb() asm volatile("msync store":::"memory")
-#include <asm-generic/barrier.h>
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* __NDS32_ASM_BARRIER_H */
diff --git a/arch/nds32/include/asm/bitfield.h b/arch/nds32/include/asm/bitfield.h
deleted file mode 100644
index b02a58e71f80..000000000000
--- a/arch/nds32/include/asm/bitfield.h
+++ /dev/null
@@ -1,985 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_BITFIELD_H__
-#define __NDS32_BITFIELD_H__
-/******************************************************************************
- * cr0: CPU_VER (CPU Version Register)
- *****************************************************************************/
-#define CPU_VER_offCFGID 0 /* Minor configuration */
-#define CPU_VER_offREV 16 /* Revision of the CPU version */
-#define CPU_VER_offCPUID 24 /* Major CPU versions */
-
-#define CPU_VER_mskCFGID ( 0xFFFF << CPU_VER_offCFGID )
-#define CPU_VER_mskREV ( 0xFF << CPU_VER_offREV )
-#define CPU_VER_mskCPUID ( 0xFF << CPU_VER_offCPUID )
-
-/******************************************************************************
- * cr1: ICM_CFG (Instruction Cache/Memory Configuration Register)
- *****************************************************************************/
-#define ICM_CFG_offISET 0 /* I-cache sets (# of cache lines) per way */
-#define ICM_CFG_offIWAY 3 /* I-cache ways */
-#define ICM_CFG_offISZ 6 /* I-cache line size */
-#define ICM_CFG_offILCK 9 /* I-cache locking support */
-#define ICM_CFG_offILMB 10 /* On-chip ILM banks */
-#define ICM_CFG_offBSAV 13 /* ILM base register alignment version */
-/* bit 15:31 reserved */
-
-#define ICM_CFG_mskISET ( 0x7 << ICM_CFG_offISET )
-#define ICM_CFG_mskIWAY ( 0x7 << ICM_CFG_offIWAY )
-#define ICM_CFG_mskISZ ( 0x7 << ICM_CFG_offISZ )
-#define ICM_CFG_mskILCK ( 0x1 << ICM_CFG_offILCK )
-#define ICM_CFG_mskILMB ( 0x7 << ICM_CFG_offILMB )
-#define ICM_CFG_mskBSAV ( 0x3 << ICM_CFG_offBSAV )
-
-/******************************************************************************
- * cr2: DCM_CFG (Data Cache/Memory Configuration Register)
- *****************************************************************************/
-#define DCM_CFG_offDSET 0 /* D-cache sets (# of cache lines) per way */
-#define DCM_CFG_offDWAY 3 /* D-cache ways */
-#define DCM_CFG_offDSZ 6 /* D-cache line size */
-#define DCM_CFG_offDLCK 9 /* D-cache locking support */
-#define DCM_CFG_offDLMB 10 /* On-chip DLM banks */
-#define DCM_CFG_offBSAV 13 /* DLM base register alignment version */
-/* bit 15:31 reserved */
-
-#define DCM_CFG_mskDSET ( 0x7 << DCM_CFG_offDSET )
-#define DCM_CFG_mskDWAY ( 0x7 << DCM_CFG_offDWAY )
-#define DCM_CFG_mskDSZ ( 0x7 << DCM_CFG_offDSZ )
-#define DCM_CFG_mskDLCK ( 0x1 << DCM_CFG_offDLCK )
-#define DCM_CFG_mskDLMB ( 0x7 << DCM_CFG_offDLMB )
-#define DCM_CFG_mskBSAV ( 0x3 << DCM_CFG_offBSAV )
-
-/******************************************************************************
- * cr3: MMU_CFG (MMU Configuration Register)
- *****************************************************************************/
-#define MMU_CFG_offMMPS 0 /* Memory management protection scheme */
-#define MMU_CFG_offMMPV 2 /* Memory management protection version number */
-#define MMU_CFG_offFATB 7 /* Fully-associative or non-fully-associative TLB */
-
-#define MMU_CFG_offTBW 8 /* TLB ways(non-associative) TBS */
-#define MMU_CFG_offTBS 11 /* TLB sets per way(non-associative) TBS */
-/* bit 14:14 reserved */
-
-#define MMU_CFG_offEP8MIN4 15 /* 8KB page supported while minimum page is 4KB */
-#define MMU_CFG_offfEPSZ 16 /* Extra page size supported */
-#define MMU_CFG_offTLBLCK 24 /* TLB locking support */
-#define MMU_CFG_offHPTWK 25 /* Hardware Page Table Walker implemented */
-#define MMU_CFG_offDE 26 /* Default endian */
-#define MMU_CFG_offNTPT 27 /* Partitions for non-translated attributes */
-#define MMU_CFG_offIVTB 28 /* Invisible TLB */
-#define MMU_CFG_offVLPT 29 /* VLPT for fast TLB fill handling implemented */
-#define MMU_CFG_offNTME 30 /* Non-translated VA to PA mapping */
-/* bit 31 reserved */
-
-#define MMU_CFG_mskMMPS ( 0x3 << MMU_CFG_offMMPS )
-#define MMU_CFG_mskMMPV ( 0x1F << MMU_CFG_offMMPV )
-#define MMU_CFG_mskFATB ( 0x1 << MMU_CFG_offFATB )
-#define MMU_CFG_mskTBW ( 0x7 << MMU_CFG_offTBW )
-#define MMU_CFG_mskTBS ( 0x7 << MMU_CFG_offTBS )
-#define MMU_CFG_mskEP8MIN4 ( 0x1 << MMU_CFG_offEP8MIN4 )
-#define MMU_CFG_mskfEPSZ ( 0xFF << MMU_CFG_offfEPSZ )
-#define MMU_CFG_mskTLBLCK ( 0x1 << MMU_CFG_offTLBLCK )
-#define MMU_CFG_mskHPTWK ( 0x1 << MMU_CFG_offHPTWK )
-#define MMU_CFG_mskDE ( 0x1 << MMU_CFG_offDE )
-#define MMU_CFG_mskNTPT ( 0x1 << MMU_CFG_offNTPT )
-#define MMU_CFG_mskIVTB ( 0x1 << MMU_CFG_offIVTB )
-#define MMU_CFG_mskVLPT ( 0x1 << MMU_CFG_offVLPT )
-#define MMU_CFG_mskNTME ( 0x1 << MMU_CFG_offNTME )
-
-/******************************************************************************
- * cr4: MSC_CFG (Misc Configuration Register)
- *****************************************************************************/
-#define MSC_CFG_offEDM 0
-#define MSC_CFG_offLMDMA 1
-#define MSC_CFG_offPFM 2
-#define MSC_CFG_offHSMP 3
-#define MSC_CFG_offTRACE 4
-#define MSC_CFG_offDIV 5
-#define MSC_CFG_offMAC 6
-#define MSC_CFG_offAUDIO 7
-#define MSC_CFG_offL2C 9
-#define MSC_CFG_offRDREG 10
-#define MSC_CFG_offADR24 11
-#define MSC_CFG_offINTLC 12
-#define MSC_CFG_offBASEV 13
-#define MSC_CFG_offNOD 16
-/* bit 13:31 reserved */
-
-#define MSC_CFG_mskEDM ( 0x1 << MSC_CFG_offEDM )
-#define MSC_CFG_mskLMDMA ( 0x1 << MSC_CFG_offLMDMA )
-#define MSC_CFG_mskPFM ( 0x1 << MSC_CFG_offPFM )
-#define MSC_CFG_mskHSMP ( 0x1 << MSC_CFG_offHSMP )
-#define MSC_CFG_mskTRACE ( 0x1 << MSC_CFG_offTRACE )
-#define MSC_CFG_mskDIV ( 0x1 << MSC_CFG_offDIV )
-#define MSC_CFG_mskMAC ( 0x1 << MSC_CFG_offMAC )
-#define MSC_CFG_mskAUDIO ( 0x3 << MSC_CFG_offAUDIO )
-#define MSC_CFG_mskL2C ( 0x1 << MSC_CFG_offL2C )
-#define MSC_CFG_mskRDREG ( 0x1 << MSC_CFG_offRDREG )
-#define MSC_CFG_mskADR24 ( 0x1 << MSC_CFG_offADR24 )
-#define MSC_CFG_mskINTLC ( 0x1 << MSC_CFG_offINTLC )
-#define MSC_CFG_mskBASEV ( 0x7 << MSC_CFG_offBASEV )
-#define MSC_CFG_mskNOD ( 0x1 << MSC_CFG_offNOD )
-
-/******************************************************************************
- * cr5: CORE_CFG (Core Identification Register)
- *****************************************************************************/
-#define CORE_ID_offCOREID 0
-/* bit 4:31 reserved */
-
-#define CORE_ID_mskCOREID ( 0xF << CORE_ID_offCOREID )
-
-/******************************************************************************
- * cr6: FUCOP_EXIST (FPU and Coprocessor Existence Configuration Register)
- *****************************************************************************/
-#define FUCOP_EXIST_offCP0EX 0
-#define FUCOP_EXIST_offCP1EX 1
-#define FUCOP_EXIST_offCP2EX 2
-#define FUCOP_EXIST_offCP3EX 3
-#define FUCOP_EXIST_offCP0ISFPU 31
-
-#define FUCOP_EXIST_mskCP0EX ( 0x1 << FUCOP_EXIST_offCP0EX )
-#define FUCOP_EXIST_mskCP1EX ( 0x1 << FUCOP_EXIST_offCP1EX )
-#define FUCOP_EXIST_mskCP2EX ( 0x1 << FUCOP_EXIST_offCP2EX )
-#define FUCOP_EXIST_mskCP3EX ( 0x1 << FUCOP_EXIST_offCP3EX )
-#define FUCOP_EXIST_mskCP0ISFPU ( 0x1 << FUCOP_EXIST_offCP0ISFPU )
-
-/******************************************************************************
- * ir0: PSW (Processor Status Word Register)
- * ir1: IPSW (Interruption PSW Register)
- * ir2: P_IPSW (Previous IPSW Register)
- *****************************************************************************/
-#define PSW_offGIE 0 /* Global Interrupt Enable */
-#define PSW_offINTL 1 /* Interruption Stack Level */
-#define PSW_offPOM 3 /* Processor Operation Mode, User/Superuser */
-#define PSW_offBE 5 /* Endianness for data memory access, 1:MSB, 0:LSB */
-#define PSW_offIT 6 /* Enable instruction address translation */
-#define PSW_offDT 7 /* Enable data address translation */
-#define PSW_offIME 8 /* Instruction Machine Error flag */
-#define PSW_offDME 9 /* Data Machine Error flag */
-#define PSW_offDEX 10 /* Debug Exception */
-#define PSW_offHSS 11 /* Hardware Single Stepping */
-#define PSW_offDRBE 12 /* Device Register Endian Mode */
-#define PSW_offAEN 13 /* Audio ISA special feature */
-#define PSW_offWBNA 14 /* Write Back Non-Allocate */
-#define PSW_offIFCON 15 /* IFC On */
-#define PSW_offCPL 16 /* Current Priority Level */
-/* bit 19:31 reserved */
-
-#define PSW_mskGIE ( 0x1 << PSW_offGIE )
-#define PSW_mskINTL ( 0x3 << PSW_offINTL )
-#define PSW_mskPOM ( 0x3 << PSW_offPOM )
-#define PSW_mskBE ( 0x1 << PSW_offBE )
-#define PSW_mskIT ( 0x1 << PSW_offIT )
-#define PSW_mskDT ( 0x1 << PSW_offDT )
-#define PSW_mskIME ( 0x1 << PSW_offIME )
-#define PSW_mskDME ( 0x1 << PSW_offDME )
-#define PSW_mskDEX ( 0x1 << PSW_offDEX )
-#define PSW_mskHSS ( 0x1 << PSW_offHSS )
-#define PSW_mskDRBE ( 0x1 << PSW_offDRBE )
-#define PSW_mskAEN ( 0x1 << PSW_offAEN )
-#define PSW_mskWBNA ( 0x1 << PSW_offWBNA )
-#define PSW_mskIFCON ( 0x1 << PSW_offIFCON )
-#define PSW_mskCPL ( 0x7 << PSW_offCPL )
-
-#define PSW_SYSTEM ( 1 << PSW_offPOM )
-#define PSW_INTL_1 ( 1 << PSW_offINTL )
-#define PSW_CPL_NO ( 0 << PSW_offCPL )
-#define PSW_CPL_ANY ( 7 << PSW_offCPL )
-
-#define PSW_clr (PSW_mskGIE|PSW_mskINTL|PSW_mskPOM|PSW_mskIT|PSW_mskDT|PSW_mskIME|PSW_mskWBNA)
-#ifdef __NDS32_EB__
-#ifdef CONFIG_WBNA
-#define PSW_init (PSW_mskWBNA|(1<<PSW_offINTL)|(1<<PSW_offPOM)|PSW_mskIT|PSW_mskDT|PSW_mskBE)
-#else
-#define PSW_init ((1<<PSW_offINTL)|(1<<PSW_offPOM)|PSW_mskIT|PSW_mskDT|PSW_mskBE)
-#endif
-#else
-#ifdef CONFIG_WBNA
-#define PSW_init (PSW_mskWBNA|(1<<PSW_offINTL)|(1<<PSW_offPOM)|PSW_mskIT|PSW_mskDT)
-#else
-#define PSW_init ((1<<PSW_offINTL)|(1<<PSW_offPOM)|PSW_mskIT|PSW_mskDT)
-#endif
-#endif
-/******************************************************************************
- * ir3: IVB (Interruption Vector Base Register)
- *****************************************************************************/
-/* bit 0:12 reserved */
-#define IVB_offNIVIC 1 /* Number of input for IVIC Controller */
-#define IVB_offIVIC_VER 11 /* IVIC Version */
-#define IVB_offEVIC 13 /* External Vector Interrupt Controller mode */
-#define IVB_offESZ 14 /* Size of each vector entry */
-#define IVB_offIVBASE 16 /* BasePA of interrupt vector table */
-
-#define IVB_mskNIVIC ( 0x7 << IVB_offNIVIC )
-#define IVB_mskIVIC_VER ( 0x3 << IVB_offIVIC_VER )
-#define IVB_mskEVIC ( 0x1 << IVB_offEVIC )
-#define IVB_mskESZ ( 0x3 << IVB_offESZ )
-#define IVB_mskIVBASE ( 0xFFFF << IVB_offIVBASE )
-
-#define IVB_valESZ4 0
-#define IVB_valESZ16 1
-#define IVB_valESZ64 2
-#define IVB_valESZ256 3
-/******************************************************************************
- * ir4: EVA (Exception Virtual Address Register)
- * ir5: P_EVA (Previous EVA Register)
- *****************************************************************************/
-
- /* This register contains the VA that causes the exception */
-
-/******************************************************************************
- * ir6: ITYPE (Interruption Type Register)
- * ir7: P_ITYPE (Previous ITYPE Register)
- *****************************************************************************/
-#define ITYPE_offETYPE 0 /* Exception Type */
-#define ITYPE_offINST 4 /* Exception caused by insn fetch or data access */
-/* bit 5:15 reserved */
-#define ITYPE_offVECTOR 5 /* Vector */
-#define ITYPE_offSWID 16 /* SWID of debugging exception */
-/* bit 31:31 reserved */
-
-#define ITYPE_mskETYPE ( 0xF << ITYPE_offETYPE )
-#define ITYPE_mskINST ( 0x1 << ITYPE_offINST )
-#define ITYPE_mskVECTOR ( 0x7F << ITYPE_offVECTOR )
-#define ITYPE_mskSWID ( 0x7FFF << ITYPE_offSWID )
-
-/* Additional definitions for ITYPE register */
-#define ITYPE_offSTYPE 16 /* Arithmetic Sub Type */
-#define ITYPE_offCPID 20 /* Co-Processor ID which generate the exception */
-
-#define ITYPE_mskSTYPE ( 0xF << ITYPE_offSTYPE )
-#define ITYPE_mskCPID ( 0x3 << ITYPE_offCPID )
-
-/* Additional definitions of ITYPE register for FPU */
-#define FPU_DISABLE_EXCEPTION (0x1 << ITYPE_offSTYPE)
-#define FPU_EXCEPTION (0x2 << ITYPE_offSTYPE)
-#define FPU_CPID 0 /* FPU Co-Processor ID is 0 */
-
-#define NDS32_VECTOR_mskNONEXCEPTION 0x78
-#define NDS32_VECTOR_offEXCEPTION 8
-#define NDS32_VECTOR_offINTERRUPT 9
-
-/* Interrupt vector entry */
-#define ENTRY_RESET_NMI 0
-#define ENTRY_TLB_FILL 1
-#define ENTRY_PTE_NOT_PRESENT 2
-#define ENTRY_TLB_MISC 3
-#define ENTRY_TLB_VLPT_MISS 4
-#define ENTRY_MACHINE_ERROR 5
-#define ENTRY_DEBUG_RELATED 6
-#define ENTRY_GENERAL_EXCPETION 7
-#define ENTRY_SYSCALL 8
-
-/* PTE not present exception definition */
-#define ETYPE_NON_LEAF_PTE_NOT_PRESENT 0
-#define ETYPE_LEAF_PTE_NOT_PRESENT 1
-
-/* General exception ETYPE definition */
-#define ETYPE_ALIGNMENT_CHECK 0
-#define ETYPE_RESERVED_INSTRUCTION 1
-#define ETYPE_TRAP 2
-#define ETYPE_ARITHMETIC 3
-#define ETYPE_PRECISE_BUS_ERROR 4
-#define ETYPE_IMPRECISE_BUS_ERROR 5
-#define ETYPE_COPROCESSOR 6
-#define ETYPE_RESERVED_VALUE 7
-#define ETYPE_NONEXISTENT_MEM_ADDRESS 8
-#define ETYPE_MPZIU_CONTROL 9
-#define ETYPE_NEXT_PRECISE_STACK_OFL 10
-
-/* Kerenl reserves software ID */
-#define SWID_RAISE_INTERRUPT_LEVEL 0x1a /* SWID_RAISE_INTERRUPT_LEVEL is used to
- * raise interrupt level for debug exception
- */
-
-/******************************************************************************
- * ir8: MERR (Machine Error Log Register)
- *****************************************************************************/
-/* bit 0:30 reserved */
-#define MERR_offBUSERR 31 /* Bus error caused by a load insn */
-
-#define MERR_mskBUSERR ( 0x1 << MERR_offBUSERR )
-
-/******************************************************************************
- * ir9: IPC (Interruption Program Counter Register)
- * ir10: P_IPC (Previous IPC Register)
- * ir11: OIPC (Overflow Interruption Program Counter Register)
- *****************************************************************************/
-
- /* This is the shadow stack register of the Program Counter */
-
-/******************************************************************************
- * ir12: P_P0 (Previous P0 Register)
- * ir13: P_P1 (Previous P1 Register)
- *****************************************************************************/
-
- /* These are shadow registers of $p0 and $p1 */
-
-/******************************************************************************
- * ir14: INT_MASK (Interruption Masking Register)
- *****************************************************************************/
-#define INT_MASK_offH0IM 0 /* Hardware Interrupt 0 Mask bit */
-#define INT_MASK_offH1IM 1 /* Hardware Interrupt 1 Mask bit */
-#define INT_MASK_offH2IM 2 /* Hardware Interrupt 2 Mask bit */
-#define INT_MASK_offH3IM 3 /* Hardware Interrupt 3 Mask bit */
-#define INT_MASK_offH4IM 4 /* Hardware Interrupt 4 Mask bit */
-#define INT_MASK_offH5IM 5 /* Hardware Interrupt 5 Mask bit */
-/* bit 6:15 reserved */
-#define INT_MASK_offSIM 16 /* Software Interrupt Mask bit */
-/* bit 17:29 reserved */
-#define INT_MASK_offIDIVZE 30 /* Enable detection for Divide-By-Zero */
-#define INT_MASK_offDSSIM 31 /* Default Single Stepping Interruption Mask */
-
-#define INT_MASK_mskH0IM ( 0x1 << INT_MASK_offH0IM )
-#define INT_MASK_mskH1IM ( 0x1 << INT_MASK_offH1IM )
-#define INT_MASK_mskH2IM ( 0x1 << INT_MASK_offH2IM )
-#define INT_MASK_mskH3IM ( 0x1 << INT_MASK_offH3IM )
-#define INT_MASK_mskH4IM ( 0x1 << INT_MASK_offH4IM )
-#define INT_MASK_mskH5IM ( 0x1 << INT_MASK_offH5IM )
-#define INT_MASK_mskSIM ( 0x1 << INT_MASK_offSIM )
-#define INT_MASK_mskIDIVZE ( 0x1 << INT_MASK_offIDIVZE )
-#define INT_MASK_mskDSSIM ( 0x1 << INT_MASK_offDSSIM )
-
-#define INT_MASK_INITAIAL_VAL (INT_MASK_mskDSSIM|INT_MASK_mskIDIVZE)
-
-/******************************************************************************
- * ir15: INT_PEND (Interrupt Pending Register)
- *****************************************************************************/
-#define INT_PEND_offH0I 0 /* Hardware Interrupt 0 pending bit */
-#define INT_PEND_offH1I 1 /* Hardware Interrupt 1 pending bit */
-#define INT_PEND_offH2I 2 /* Hardware Interrupt 2 pending bit */
-#define INT_PEND_offH3I 3 /* Hardware Interrupt 3 pending bit */
-#define INT_PEND_offH4I 4 /* Hardware Interrupt 4 pending bit */
-#define INT_PEND_offH5I 5 /* Hardware Interrupt 5 pending bit */
-
-#define INT_PEND_offCIPL 0 /* Current Interrupt Priority Level */
-
-/* bit 6:15 reserved */
-#define INT_PEND_offSWI 16 /* Software Interrupt pending bit */
-/* bit 17:31 reserved */
-
-#define INT_PEND_mskH0I ( 0x1 << INT_PEND_offH0I )
-#define INT_PEND_mskH1I ( 0x1 << INT_PEND_offH1I )
-#define INT_PEND_mskH2I ( 0x1 << INT_PEND_offH2I )
-#define INT_PEND_mskH3I ( 0x1 << INT_PEND_offH3I )
-#define INT_PEND_mskH4I ( 0x1 << INT_PEND_offH4I )
-#define INT_PEND_mskH5I ( 0x1 << INT_PEND_offH5I )
-#define INT_PEND_mskCIPL ( 0x1 << INT_PEND_offCIPL )
-#define INT_PEND_mskSWI ( 0x1 << INT_PEND_offSWI )
-
-/******************************************************************************
- * mr0: MMU_CTL (MMU Control Register)
- *****************************************************************************/
-#define MMU_CTL_offD 0 /* Default minimum page size */
-#define MMU_CTL_offNTC0 1 /* Non-Translated Cachebility of partition 0 */
-#define MMU_CTL_offNTC1 3 /* Non-Translated Cachebility of partition 1 */
-#define MMU_CTL_offNTC2 5 /* Non-Translated Cachebility of partition 2 */
-#define MMU_CTL_offNTC3 7 /* Non-Translated Cachebility of partition 3 */
-#define MMU_CTL_offTBALCK 9 /* TLB all-lock resolution scheme */
-#define MMU_CTL_offMPZIU 10 /* Multiple Page Size In Use bit */
-#define MMU_CTL_offNTM0 11 /* Non-Translated VA to PA of partition 0 */
-#define MMU_CTL_offNTM1 13 /* Non-Translated VA to PA of partition 1 */
-#define MMU_CTL_offNTM2 15 /* Non-Translated VA to PA of partition 2 */
-#define MMU_CTL_offNTM3 17 /* Non-Translated VA to PA of partition 3 */
-#define MMU_CTL_offUNA 23 /* Unaligned access */
-/* bit 24:31 reserved */
-
-#define MMU_CTL_mskD ( 0x1 << MMU_CTL_offD )
-#define MMU_CTL_mskNTC0 ( 0x3 << MMU_CTL_offNTC0 )
-#define MMU_CTL_mskNTC1 ( 0x3 << MMU_CTL_offNTC1 )
-#define MMU_CTL_mskNTC2 ( 0x3 << MMU_CTL_offNTC2 )
-#define MMU_CTL_mskNTC3 ( 0x3 << MMU_CTL_offNTC3 )
-#define MMU_CTL_mskTBALCK ( 0x1 << MMU_CTL_offTBALCK )
-#define MMU_CTL_mskMPZIU ( 0x1 << MMU_CTL_offMPZIU )
-#define MMU_CTL_mskNTM0 ( 0x3 << MMU_CTL_offNTM0 )
-#define MMU_CTL_mskNTM1 ( 0x3 << MMU_CTL_offNTM1 )
-#define MMU_CTL_mskNTM2 ( 0x3 << MMU_CTL_offNTM2 )
-#define MMU_CTL_mskNTM3 ( 0x3 << MMU_CTL_offNTM3 )
-
-#define MMU_CTL_D4KB 0
-#define MMU_CTL_D8KB 1
-#define MMU_CTL_UNA ( 0x1 << MMU_CTL_offUNA )
-
-#define MMU_CTL_CACHEABLE_NON 0
-#define MMU_CTL_CACHEABLE_WB 2
-#define MMU_CTL_CACHEABLE_WT 3
-
-/******************************************************************************
- * mr1: L1_PPTB (L1 Physical Page Table Base Register)
- *****************************************************************************/
-#define L1_PPTB_offNV 0 /* Enable Hardware Page Table Walker (HPTWK) */
-/* bit 1:11 reserved */
-#define L1_PPTB_offBASE 12 /* First level physical page table base address */
-
-#define L1_PPTB_mskNV ( 0x1 << L1_PPTB_offNV )
-#define L1_PPTB_mskBASE ( 0xFFFFF << L1_PPTB_offBASE )
-
-/******************************************************************************
- * mr2: TLB_VPN (TLB Access VPN Register)
- *****************************************************************************/
-/* bit 0:11 reserved */
-#define TLB_VPN_offVPN 12 /* Virtual Page Number */
-
-#define TLB_VPN_mskVPN ( 0xFFFFF << TLB_VPN_offVPN )
-
-/******************************************************************************
- * mr3: TLB_DATA (TLB Access Data Register)
- *****************************************************************************/
-#define TLB_DATA_offV 0 /* PTE is valid and present */
-#define TLB_DATA_offM 1 /* Page read/write access privilege */
-#define TLB_DATA_offD 4 /* Dirty bit */
-#define TLB_DATA_offX 5 /* Executable bit */
-#define TLB_DATA_offA 6 /* Access bit */
-#define TLB_DATA_offG 7 /* Global page (shared across contexts) */
-#define TLB_DATA_offC 8 /* Cacheability atribute */
-/* bit 11:11 reserved */
-#define TLB_DATA_offPPN 12 /* Phisical Page Number */
-
-#define TLB_DATA_mskV ( 0x1 << TLB_DATA_offV )
-#define TLB_DATA_mskM ( 0x7 << TLB_DATA_offM )
-#define TLB_DATA_mskD ( 0x1 << TLB_DATA_offD )
-#define TLB_DATA_mskX ( 0x1 << TLB_DATA_offX )
-#define TLB_DATA_mskA ( 0x1 << TLB_DATA_offA )
-#define TLB_DATA_mskG ( 0x1 << TLB_DATA_offG )
-#define TLB_DATA_mskC ( 0x7 << TLB_DATA_offC )
-#define TLB_DATA_mskPPN ( 0xFFFFF << TLB_DATA_offPPN )
-
-#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
-#define TLB_DATA_kernel_text_attr (TLB_DATA_mskV|TLB_DATA_mskM|TLB_DATA_mskD|TLB_DATA_mskX|TLB_DATA_mskG|TLB_DATA_mskC)
-#else
-#define TLB_DATA_kernel_text_attr (TLB_DATA_mskV|TLB_DATA_mskM|TLB_DATA_mskD|TLB_DATA_mskX|TLB_DATA_mskG|(0x6 << TLB_DATA_offC))
-#endif
-
-/******************************************************************************
- * mr4: TLB_MISC (TLB Access Misc Register)
- *****************************************************************************/
-#define TLB_MISC_offACC_PSZ 0 /* Page size of a PTE entry */
-#define TLB_MISC_offCID 4 /* Context id */
-/* bit 13:31 reserved */
-
-#define TLB_MISC_mskACC_PSZ ( 0xF << TLB_MISC_offACC_PSZ )
-#define TLB_MISC_mskCID ( 0x1FF << TLB_MISC_offCID )
-
-/******************************************************************************
- * mr5: VLPT_IDX (Virtual Linear Page Table Index Register)
- *****************************************************************************/
-#define VLPT_IDX_offZERO 0 /* Always 0 */
-#define VLPT_IDX_offEVPN 2 /* Exception Virtual Page Number */
-#define VLPT_IDX_offVLPTB 22 /* Base VA of VLPT */
-
-#define VLPT_IDX_mskZERO ( 0x3 << VLPT_IDX_offZERO )
-#define VLPT_IDX_mskEVPN ( 0xFFFFF << VLPT_IDX_offEVPN )
-#define VLPT_IDX_mskVLPTB ( 0x3FF << VLPT_IDX_offVLPTB )
-
-/******************************************************************************
- * mr6: ILMB (Instruction Local Memory Base Register)
- *****************************************************************************/
-#define ILMB_offIEN 0 /* Enable ILM */
-#define ILMB_offILMSZ 1 /* Size of ILM */
-/* bit 5:19 reserved */
-#define ILMB_offIBPA 20 /* Base PA of ILM */
-
-#define ILMB_mskIEN ( 0x1 << ILMB_offIEN )
-#define ILMB_mskILMSZ ( 0xF << ILMB_offILMSZ )
-#define ILMB_mskIBPA ( 0xFFF << ILMB_offIBPA )
-
-/******************************************************************************
- * mr7: DLMB (Data Local Memory Base Register)
- *****************************************************************************/
-#define DLMB_offDEN 0 /* Enable DLM */
-#define DLMB_offDLMSZ 1 /* Size of DLM */
-#define DLMB_offDBM 5 /* Enable Double-Buffer Mode for DLM */
-#define DLMB_offDBB 6 /* Double-buffer bank which can be accessed by the processor */
-/* bit 7:19 reserved */
-#define DLMB_offDBPA 20 /* Base PA of DLM */
-
-#define DLMB_mskDEN ( 0x1 << DLMB_offDEN )
-#define DLMB_mskDLMSZ ( 0xF << DLMB_offDLMSZ )
-#define DLMB_mskDBM ( 0x1 << DLMB_offDBM )
-#define DLMB_mskDBB ( 0x1 << DLMB_offDBB )
-#define DLMB_mskDBPA ( 0xFFF << DLMB_offDBPA )
-
-/******************************************************************************
- * mr8: CACHE_CTL (Cache Control Register)
- *****************************************************************************/
-#define CACHE_CTL_offIC_EN 0 /* Enable I-cache */
-#define CACHE_CTL_offDC_EN 1 /* Enable D-cache */
-#define CACHE_CTL_offICALCK 2 /* I-cache all-lock resolution scheme */
-#define CACHE_CTL_offDCALCK 3 /* D-cache all-lock resolution scheme */
-#define CACHE_CTL_offDCCWF 4 /* Enable D-cache Critical Word Forwarding */
-#define CACHE_CTL_offDCPMW 5 /* Enable D-cache concurrent miss and write-back processing */
-/* bit 6:31 reserved */
-
-#define CACHE_CTL_mskIC_EN ( 0x1 << CACHE_CTL_offIC_EN )
-#define CACHE_CTL_mskDC_EN ( 0x1 << CACHE_CTL_offDC_EN )
-#define CACHE_CTL_mskICALCK ( 0x1 << CACHE_CTL_offICALCK )
-#define CACHE_CTL_mskDCALCK ( 0x1 << CACHE_CTL_offDCALCK )
-#define CACHE_CTL_mskDCCWF ( 0x1 << CACHE_CTL_offDCCWF )
-#define CACHE_CTL_mskDCPMW ( 0x1 << CACHE_CTL_offDCPMW )
-
-/******************************************************************************
- * mr9: HSMP_SADDR (High Speed Memory Port Starting Address)
- *****************************************************************************/
-#define HSMP_SADDR_offEN 0 /* Enable control bit for the High Speed Memory port */
-/* bit 1:19 reserved */
-
-#define HSMP_SADDR_offRANGE 1 /* Denote the address range (only defined in HSMP v2 ) */
-#define HSMP_SADDR_offSADDR 20 /* Starting base PA of the High Speed Memory Port region */
-
-#define HSMP_SADDR_mskEN ( 0x1 << HSMP_SADDR_offEN )
-#define HSMP_SADDR_mskRANGE ( 0xFFF << HSMP_SADDR_offRANGE )
-#define HSMP_SADDR_mskSADDR ( 0xFFF << HSMP_SADDR_offSADDR )
-
-/******************************************************************************
- * mr10: HSMP_EADDR (High Speed Memory Port Ending Address)
- *****************************************************************************/
-/* bit 0:19 reserved */
-#define HSMP_EADDR_offEADDR 20
-
-#define HSMP_EADDR_mskEADDR ( 0xFFF << HSMP_EADDR_offEADDR )
-
-/******************************************************************************
- * dr0+(n*5): BPCn (n=0-7) (Breakpoint Control Register)
- *****************************************************************************/
-#define BPC_offWP 0 /* Configuration of BPAn */
-#define BPC_offEL 1 /* Enable BPAn */
-#define BPC_offS 2 /* Data address comparison for a store instruction */
-#define BPC_offP 3 /* Compared data address is PA */
-#define BPC_offC 4 /* CID value is compared with the BPCIDn register */
-#define BPC_offBE0 5 /* Enable byte mask for the comparison with register */
-#define BPC_offBE1 6 /* Enable byte mask for the comparison with register */
-#define BPC_offBE2 7 /* Enable byte mask for the comparison with register */
-#define BPC_offBE3 8 /* Enable byte mask for the comparison with register */
-#define BPC_offT 9 /* Enable breakpoint Embedded Tracer triggering operation */
-
-#define BPC_mskWP ( 0x1 << BPC_offWP )
-#define BPC_mskEL ( 0x1 << BPC_offEL )
-#define BPC_mskS ( 0x1 << BPC_offS )
-#define BPC_mskP ( 0x1 << BPC_offP )
-#define BPC_mskC ( 0x1 << BPC_offC )
-#define BPC_mskBE0 ( 0x1 << BPC_offBE0 )
-#define BPC_mskBE1 ( 0x1 << BPC_offBE1 )
-#define BPC_mskBE2 ( 0x1 << BPC_offBE2 )
-#define BPC_mskBE3 ( 0x1 << BPC_offBE3 )
-#define BPC_mskT ( 0x1 << BPC_offT )
-
-/******************************************************************************
- * dr1+(n*5): BPAn (n=0-7) (Breakpoint Address Register)
- *****************************************************************************/
-
- /* These registers contain break point address */
-
-/******************************************************************************
- * dr2+(n*5): BPAMn (n=0-7) (Breakpoint Address Mask Register)
- *****************************************************************************/
-
- /* These registerd contain the address comparison mask for the BPAn register */
-
-/******************************************************************************
- * dr3+(n*5): BPVn (n=0-7) Breakpoint Data Value Register
- *****************************************************************************/
-
- /* The BPVn register contains the data value that will be compared with the
- * incoming load/store data value */
-
-/******************************************************************************
- * dr4+(n*5): BPCIDn (n=0-7) (Breakpoint Context ID Register)
- *****************************************************************************/
-#define BPCID_offCID 0 /* CID that will be compared with a process's CID */
-/* bit 9:31 reserved */
-
-#define BPCID_mskCID ( 0x1FF << BPCID_offCID )
-
-/******************************************************************************
- * dr40: EDM_CFG (EDM Configuration Register)
- *****************************************************************************/
-#define EDM_CFG_offBC 0 /* Number of hardware breakpoint sets implemented */
-#define EDM_CFG_offDIMU 3 /* Debug Instruction Memory Unit exists */
-/* bit 4:15 reserved */
-#define EDM_CFG_offVER 16 /* EDM version */
-
-#define EDM_CFG_mskBC ( 0x7 << EDM_CFG_offBC )
-#define EDM_CFG_mskDIMU ( 0x1 << EDM_CFG_offDIMU )
-#define EDM_CFG_mskVER ( 0xFFFF << EDM_CFG_offVER )
-
-/******************************************************************************
- * dr41: EDMSW (EDM Status Word)
- *****************************************************************************/
-#define EDMSW_offWV 0 /* Write Valid */
-#define EDMSW_offRV 1 /* Read Valid */
-#define EDMSW_offDE 2 /* Debug exception has occurred for this core */
-/* bit 3:31 reserved */
-
-#define EDMSW_mskWV ( 0x1 << EDMSW_offWV )
-#define EDMSW_mskRV ( 0x1 << EDMSW_offRV )
-#define EDMSW_mskDE ( 0x1 << EDMSW_offDE )
-
-/******************************************************************************
- * dr42: EDM_CTL (EDM Control Register)
- *****************************************************************************/
-/* bit 0:30 reserved */
-#define EDM_CTL_offV3_EDM_MODE 6 /* EDM compatibility control bit */
-#define EDM_CTL_offDEH_SEL 31 /* Controls where debug exception is directed to */
-
-#define EDM_CTL_mskV3_EDM_MODE ( 0x1 << EDM_CTL_offV3_EDM_MODE )
-#define EDM_CTL_mskDEH_SEL ( 0x1 << EDM_CTL_offDEH_SEL )
-
-/******************************************************************************
- * dr43: EDM_DTR (EDM Data Transfer Register)
- *****************************************************************************/
-
- /* This is used to exchange data between the embedded EDM logic
- * and the processor core */
-
-/******************************************************************************
- * dr44: BPMTC (Breakpoint Match Trigger Counter Register)
- *****************************************************************************/
-#define BPMTC_offBPMTC 0 /* Breakpoint match trigger counter value */
-/* bit 16:31 reserved */
-
-#define BPMTC_mskBPMTC ( 0xFFFF << BPMTC_offBPMTC )
-
-/******************************************************************************
- * dr45: DIMBR (Debug Instruction Memory Base Register)
- *****************************************************************************/
-/* bit 0:11 reserved */
-#define DIMBR_offDIMB 12 /* Base address of the Debug Instruction Memory (DIM) */
-#define DIMBR_mskDIMB ( 0xFFFFF << DIMBR_offDIMB )
-
-/******************************************************************************
- * dr46: TECR0(Trigger Event Control register 0)
- * dr47: TECR1 (Trigger Event Control register 1)
- *****************************************************************************/
-#define TECR_offBP 0 /* Controld which BP is used as a trigger source */
-#define TECR_offNMI 8 /* Use NMI as a trigger source */
-#define TECR_offHWINT 9 /* Corresponding interrupt is used as a trigger source */
-#define TECR_offEVIC 15 /* Enable HWINT as a trigger source in EVIC mode */
-#define TECR_offSYS 16 /* Enable SYSCALL instruction as a trigger source */
-#define TECR_offDBG 17 /* Enable debug exception as a trigger source */
-#define TECR_offMRE 18 /* Enable MMU related exception as a trigger source */
-#define TECR_offE 19 /* An exception is used as a trigger source */
-/* bit 20:30 reserved */
-#define TECR_offL 31 /* Link/Cascade TECR0 trigger event to TECR1 trigger event */
-
-#define TECR_mskBP ( 0xFF << TECR_offBP )
-#define TECR_mskNMI ( 0x1 << TECR_offBNMI )
-#define TECR_mskHWINT ( 0x3F << TECR_offBHWINT )
-#define TECR_mskEVIC ( 0x1 << TECR_offBEVIC )
-#define TECR_mskSYS ( 0x1 << TECR_offBSYS )
-#define TECR_mskDBG ( 0x1 << TECR_offBDBG )
-#define TECR_mskMRE ( 0x1 << TECR_offBMRE )
-#define TECR_mskE ( 0x1 << TECR_offE )
-#define TECR_mskL ( 0x1 << TECR_offL )
-
-/******************************************************************************
- * pfr0-2: PFMC0-2 (Performance Counter Register 0-2)
- *****************************************************************************/
-
- /* These registers contains performance event count */
-
-/******************************************************************************
- * pfr3: PFM_CTL (Performance Counter Control Register)
- *****************************************************************************/
-#define PFM_CTL_offEN0 0 /* Enable PFMC0 */
-#define PFM_CTL_offEN1 1 /* Enable PFMC1 */
-#define PFM_CTL_offEN2 2 /* Enable PFMC2 */
-#define PFM_CTL_offIE0 3 /* Enable interrupt for PFMC0 */
-#define PFM_CTL_offIE1 4 /* Enable interrupt for PFMC1 */
-#define PFM_CTL_offIE2 5 /* Enable interrupt for PFMC2 */
-#define PFM_CTL_offOVF0 6 /* Overflow bit of PFMC0 */
-#define PFM_CTL_offOVF1 7 /* Overflow bit of PFMC1 */
-#define PFM_CTL_offOVF2 8 /* Overflow bit of PFMC2 */
-#define PFM_CTL_offKS0 9 /* Enable superuser mode event counting for PFMC0 */
-#define PFM_CTL_offKS1 10 /* Enable superuser mode event counting for PFMC1 */
-#define PFM_CTL_offKS2 11 /* Enable superuser mode event counting for PFMC2 */
-#define PFM_CTL_offKU0 12 /* Enable user mode event counting for PFMC0 */
-#define PFM_CTL_offKU1 13 /* Enable user mode event counting for PFMC1 */
-#define PFM_CTL_offKU2 14 /* Enable user mode event counting for PFMC2 */
-#define PFM_CTL_offSEL0 15 /* The event selection for PFMC0 */
-#define PFM_CTL_offSEL1 16 /* The event selection for PFMC1 */
-#define PFM_CTL_offSEL2 22 /* The event selection for PFMC2 */
-/* bit 28:31 reserved */
-
-#define PFM_CTL_mskEN0 ( 0x01 << PFM_CTL_offEN0 )
-#define PFM_CTL_mskEN1 ( 0x01 << PFM_CTL_offEN1 )
-#define PFM_CTL_mskEN2 ( 0x01 << PFM_CTL_offEN2 )
-#define PFM_CTL_mskIE0 ( 0x01 << PFM_CTL_offIE0 )
-#define PFM_CTL_mskIE1 ( 0x01 << PFM_CTL_offIE1 )
-#define PFM_CTL_mskIE2 ( 0x01 << PFM_CTL_offIE2 )
-#define PFM_CTL_mskOVF0 ( 0x01 << PFM_CTL_offOVF0 )
-#define PFM_CTL_mskOVF1 ( 0x01 << PFM_CTL_offOVF1 )
-#define PFM_CTL_mskOVF2 ( 0x01 << PFM_CTL_offOVF2 )
-#define PFM_CTL_mskKS0 ( 0x01 << PFM_CTL_offKS0 )
-#define PFM_CTL_mskKS1 ( 0x01 << PFM_CTL_offKS1 )
-#define PFM_CTL_mskKS2 ( 0x01 << PFM_CTL_offKS2 )
-#define PFM_CTL_mskKU0 ( 0x01 << PFM_CTL_offKU0 )
-#define PFM_CTL_mskKU1 ( 0x01 << PFM_CTL_offKU1 )
-#define PFM_CTL_mskKU2 ( 0x01 << PFM_CTL_offKU2 )
-#define PFM_CTL_mskSEL0 ( 0x01 << PFM_CTL_offSEL0 )
-#define PFM_CTL_mskSEL1 ( 0x3F << PFM_CTL_offSEL1 )
-#define PFM_CTL_mskSEL2 ( 0x3F << PFM_CTL_offSEL2 )
-
-/******************************************************************************
- * SDZ_CTL (Structure Downsizing Control Register)
- *****************************************************************************/
-#define SDZ_CTL_offICDZ 0 /* I-cache downsizing control */
-#define SDZ_CTL_offDCDZ 3 /* D-cache downsizing control */
-#define SDZ_CTL_offMTBDZ 6 /* MTLB downsizing control */
-#define SDZ_CTL_offBTBDZ 9 /* Branch Target Table downsizing control */
-/* bit 12:31 reserved */
-#define SDZ_CTL_mskICDZ ( 0x07 << SDZ_CTL_offICDZ )
-#define SDZ_CTL_mskDCDZ ( 0x07 << SDZ_CTL_offDCDZ )
-#define SDZ_CTL_mskMTBDZ ( 0x07 << SDZ_CTL_offMTBDZ )
-#define SDZ_CTL_mskBTBDZ ( 0x07 << SDZ_CTL_offBTBDZ )
-
-/******************************************************************************
- * N13MISC_CTL (N13 Miscellaneous Control Register)
- *****************************************************************************/
-#define N13MISC_CTL_offBTB 0 /* Disable Branch Target Buffer */
-#define N13MISC_CTL_offRTP 1 /* Disable Return Target Predictor */
-#define N13MISC_CTL_offPTEPF 2 /* Disable HPTWK L2 PTE pefetch */
-#define N13MISC_CTL_offSP_SHADOW_EN 4 /* Enable shadow stack pointers */
-#define MISC_CTL_offHWPRE 11 /* Enable HardWare PREFETCH */
-/* bit 6, 9:31 reserved */
-
-#define N13MISC_CTL_makBTB ( 0x1 << N13MISC_CTL_offBTB )
-#define N13MISC_CTL_makRTP ( 0x1 << N13MISC_CTL_offRTP )
-#define N13MISC_CTL_makPTEPF ( 0x1 << N13MISC_CTL_offPTEPF )
-#define N13MISC_CTL_makSP_SHADOW_EN ( 0x1 << N13MISC_CTL_offSP_SHADOW_EN )
-#define MISC_CTL_makHWPRE_EN ( 0x1 << MISC_CTL_offHWPRE )
-
-#ifdef CONFIG_HW_PRE
-#define MISC_init (N13MISC_CTL_makBTB|N13MISC_CTL_makRTP|N13MISC_CTL_makSP_SHADOW_EN|MISC_CTL_makHWPRE_EN)
-#else
-#define MISC_init (N13MISC_CTL_makBTB|N13MISC_CTL_makRTP|N13MISC_CTL_makSP_SHADOW_EN)
-#endif
-
-/******************************************************************************
- * PRUSR_ACC_CTL (Privileged Resource User Access Control Registers)
- *****************************************************************************/
-#define PRUSR_ACC_CTL_offDMA_EN 0 /* Allow user mode access of DMA registers */
-#define PRUSR_ACC_CTL_offPFM_EN 1 /* Allow user mode access of PFM registers */
-
-#define PRUSR_ACC_CTL_mskDMA_EN ( 0x1 << PRUSR_ACC_CTL_offDMA_EN )
-#define PRUSR_ACC_CTL_mskPFM_EN ( 0x1 << PRUSR_ACC_CTL_offPFM_EN )
-
-/******************************************************************************
- * dmar0: DMA_CFG (DMA Configuration Register)
- *****************************************************************************/
-#define DMA_CFG_offNCHN 0 /* The number of DMA channels implemented */
-#define DMA_CFG_offUNEA 2 /* Un-aligned External Address transfer feature */
-#define DMA_CFG_off2DET 3 /* 2-D Element Transfer feature */
-/* bit 4:15 reserved */
-#define DMA_CFG_offVER 16 /* DMA architecture and implementation version */
-
-#define DMA_CFG_mskNCHN ( 0x3 << DMA_CFG_offNCHN )
-#define DMA_CFG_mskUNEA ( 0x1 << DMA_CFG_offUNEA )
-#define DMA_CFG_msk2DET ( 0x1 << DMA_CFG_off2DET )
-#define DMA_CFG_mskVER ( 0xFFFF << DMA_CFG_offVER )
-
-/******************************************************************************
- * dmar1: DMA_GCSW (DMA Global Control and Status Word Register)
- *****************************************************************************/
-#define DMA_GCSW_offC0STAT 0 /* DMA channel 0 state */
-#define DMA_GCSW_offC1STAT 3 /* DMA channel 1 state */
-/* bit 6:11 reserved */
-#define DMA_GCSW_offC0INT 12 /* DMA channel 0 generate interrupt */
-#define DMA_GCSW_offC1INT 13 /* DMA channel 1 generate interrupt */
-/* bit 14:30 reserved */
-#define DMA_GCSW_offEN 31 /* Enable DMA engine */
-
-#define DMA_GCSW_mskC0STAT ( 0x7 << DMA_GCSW_offC0STAT )
-#define DMA_GCSW_mskC1STAT ( 0x7 << DMA_GCSW_offC1STAT )
-#define DMA_GCSW_mskC0INT ( 0x1 << DMA_GCSW_offC0INT )
-#define DMA_GCSW_mskC1INT ( 0x1 << DMA_GCSW_offC1INT )
-#define DMA_GCSW_mskEN ( 0x1 << DMA_GCSW_offEN )
-
-/******************************************************************************
- * dmar2: DMA_CHNSEL (DMA Channel Selection Register)
- *****************************************************************************/
-#define DMA_CHNSEL_offCHAN 0 /* Selected channel number */
-/* bit 2:31 reserved */
-
-#define DMA_CHNSEL_mskCHAN ( 0x3 << DMA_CHNSEL_offCHAN )
-
-/******************************************************************************
- * dmar3: DMA_ACT (DMA Action Register)
- *****************************************************************************/
-#define DMA_ACT_offACMD 0 /* DMA Action Command */
-/* bit 2:31 reserved */
-#define DMA_ACT_mskACMD ( 0x3 << DMA_ACT_offACMD )
-
-/******************************************************************************
- * dmar4: DMA_SETUP (DMA Setup Register)
- *****************************************************************************/
-#define DMA_SETUP_offLM 0 /* Local Memory Selection */
-#define DMA_SETUP_offTDIR 1 /* Transfer Direction */
-#define DMA_SETUP_offTES 2 /* Transfer Element Size */
-#define DMA_SETUP_offESTR 4 /* External memory transfer Stride */
-#define DMA_SETUP_offCIE 16 /* Interrupt Enable on Completion */
-#define DMA_SETUP_offSIE 17 /* Interrupt Enable on explicit Stop */
-#define DMA_SETUP_offEIE 18 /* Interrupt Enable on Error */
-#define DMA_SETUP_offUE 19 /* Enable the Un-aligned External Address */
-#define DMA_SETUP_off2DE 20 /* Enable the 2-D External Transfer */
-#define DMA_SETUP_offCOA 21 /* Transfer Coalescable */
-/* bit 22:31 reserved */
-
-#define DMA_SETUP_mskLM ( 0x1 << DMA_SETUP_offLM )
-#define DMA_SETUP_mskTDIR ( 0x1 << DMA_SETUP_offTDIR )
-#define DMA_SETUP_mskTES ( 0x3 << DMA_SETUP_offTES )
-#define DMA_SETUP_mskESTR ( 0xFFF << DMA_SETUP_offESTR )
-#define DMA_SETUP_mskCIE ( 0x1 << DMA_SETUP_offCIE )
-#define DMA_SETUP_mskSIE ( 0x1 << DMA_SETUP_offSIE )
-#define DMA_SETUP_mskEIE ( 0x1 << DMA_SETUP_offEIE )
-#define DMA_SETUP_mskUE ( 0x1 << DMA_SETUP_offUE )
-#define DMA_SETUP_msk2DE ( 0x1 << DMA_SETUP_off2DE )
-#define DMA_SETUP_mskCOA ( 0x1 << DMA_SETUP_offCOA )
-
-/******************************************************************************
- * dmar5: DMA_ISADDR (DMA Internal Start Address Register)
- *****************************************************************************/
-#define DMA_ISADDR_offISADDR 0 /* Internal Start Address */
-/* bit 20:31 reserved */
-#define DMA_ISADDR_mskISADDR ( 0xFFFFF << DMA_ISADDR_offISADDR )
-
-/******************************************************************************
- * dmar6: DMA_ESADDR (DMA External Start Address Register)
- *****************************************************************************/
-/* This register holds External Start Address */
-
-/******************************************************************************
- * dmar7: DMA_TCNT (DMA Transfer Element Count Register)
- *****************************************************************************/
-#define DMA_TCNT_offTCNT 0 /* DMA transfer element count */
-/* bit 18:31 reserved */
-#define DMA_TCNT_mskTCNT ( 0x3FFFF << DMA_TCNT_offTCNT )
-
-/******************************************************************************
- * dmar8: DMA_STATUS (DMA Status Register)
- *****************************************************************************/
-#define DMA_STATUS_offSTAT 0 /* DMA channel state */
-#define DMA_STATUS_offSTUNA 3 /* Un-aligned error on External Stride value */
-#define DMA_STATUS_offDERR 4 /* DMA Transfer Disruption Error */
-#define DMA_STATUS_offEUNA 5 /* Un-aligned error on the External address */
-#define DMA_STATUS_offIUNA 6 /* Un-aligned error on the Internal address */
-#define DMA_STATUS_offIOOR 7 /* Out-Of-Range error on the Internal address */
-#define DMA_STATUS_offEBUS 8 /* Bus Error on an External DMA transfer */
-#define DMA_STATUS_offESUP 9 /* DMA setup error */
-/* bit 10:31 reserved */
-
-#define DMA_STATUS_mskSTAT ( 0x7 << DMA_STATUS_offSTAT )
-#define DMA_STATUS_mskSTUNA ( 0x1 << DMDMA_STATUS_offSTUNA )
-#define DMA_STATUS_mskDERR ( 0x1 << DMDMA_STATUS_offDERR )
-#define DMA_STATUS_mskEUNA ( 0x1 << DMDMA_STATUS_offEUNA )
-#define DMA_STATUS_mskIUNA ( 0x1 << DMDMA_STATUS_offIUNA )
-#define DMA_STATUS_mskIOOR ( 0x1 << DMDMA_STATUS_offIOOR )
-#define DMA_STATUS_mskEBUS ( 0x1 << DMDMA_STATUS_offEBUS )
-#define DMA_STATUS_mskESUP ( 0x1 << DMDMA_STATUS_offESUP )
-
-/******************************************************************************
- * dmar9: DMA_2DSET (DMA 2D Setup Register)
- *****************************************************************************/
-#define DMA_2DSET_offWECNT 0 /* The Width Element Count for a 2-D region */
-#define DMA_2DSET_offHTSTR 16 /* The Height Stride for a 2-D region */
-
-#define DMA_2DSET_mskHTSTR ( 0xFFFF << DMA_2DSET_offHTSTR )
-#define DMA_2DSET_mskWECNT ( 0xFFFF << DMA_2DSET_offWECNT )
-
-/******************************************************************************
- * dmar10: DMA_2DSCTL (DMA 2D Startup Control Register)
- *****************************************************************************/
-#define DMA_2DSCTL_offSTWECNT 0 /* Startup Width Element Count for a 2-D region */
-/* bit 16:31 reserved */
-
-#define DMA_2DSCTL_mskSTWECNT ( 0xFFFF << DMA_2DSCTL_offSTWECNT )
-
-/******************************************************************************
- * fpcsr: FPCSR (Floating-Point Control Status Register)
- *****************************************************************************/
-#define FPCSR_offRM 0
-#define FPCSR_offIVO 2
-#define FPCSR_offDBZ 3
-#define FPCSR_offOVF 4
-#define FPCSR_offUDF 5
-#define FPCSR_offIEX 6
-#define FPCSR_offIVOE 7
-#define FPCSR_offDBZE 8
-#define FPCSR_offOVFE 9
-#define FPCSR_offUDFE 10
-#define FPCSR_offIEXE 11
-#define FPCSR_offDNZ 12
-#define FPCSR_offIVOT 13
-#define FPCSR_offDBZT 14
-#define FPCSR_offOVFT 15
-#define FPCSR_offUDFT 16
-#define FPCSR_offIEXT 17
-#define FPCSR_offDNIT 18
-#define FPCSR_offRIT 19
-
-#define FPCSR_mskRM ( 0x3 << FPCSR_offRM )
-#define FPCSR_mskIVO ( 0x1 << FPCSR_offIVO )
-#define FPCSR_mskDBZ ( 0x1 << FPCSR_offDBZ )
-#define FPCSR_mskOVF ( 0x1 << FPCSR_offOVF )
-#define FPCSR_mskUDF ( 0x1 << FPCSR_offUDF )
-#define FPCSR_mskIEX ( 0x1 << FPCSR_offIEX )
-#define FPCSR_mskIVOE ( 0x1 << FPCSR_offIVOE )
-#define FPCSR_mskDBZE ( 0x1 << FPCSR_offDBZE )
-#define FPCSR_mskOVFE ( 0x1 << FPCSR_offOVFE )
-#define FPCSR_mskUDFE ( 0x1 << FPCSR_offUDFE )
-#define FPCSR_mskIEXE ( 0x1 << FPCSR_offIEXE )
-#define FPCSR_mskDNZ ( 0x1 << FPCSR_offDNZ )
-#define FPCSR_mskIVOT ( 0x1 << FPCSR_offIVOT )
-#define FPCSR_mskDBZT ( 0x1 << FPCSR_offDBZT )
-#define FPCSR_mskOVFT ( 0x1 << FPCSR_offOVFT )
-#define FPCSR_mskUDFT ( 0x1 << FPCSR_offUDFT )
-#define FPCSR_mskIEXT ( 0x1 << FPCSR_offIEXT )
-#define FPCSR_mskDNIT ( 0x1 << FPCSR_offDNIT )
-#define FPCSR_mskRIT ( 0x1 << FPCSR_offRIT )
-#define FPCSR_mskALL (FPCSR_mskIVO | FPCSR_mskDBZ | FPCSR_mskOVF | FPCSR_mskUDF | FPCSR_mskIEX)
-#define FPCSR_mskALLE_NO_UDF_IEXE (FPCSR_mskIVOE | FPCSR_mskDBZE | FPCSR_mskOVFE)
-#define FPCSR_mskALLE (FPCSR_mskIVOE | FPCSR_mskDBZE | FPCSR_mskOVFE | FPCSR_mskUDFE | FPCSR_mskIEXE)
-#define FPCSR_mskALLT (FPCSR_mskIVOT | FPCSR_mskDBZT | FPCSR_mskOVFT | FPCSR_mskUDFT | FPCSR_mskIEXT |FPCSR_mskDNIT | FPCSR_mskRIT)
-
-/******************************************************************************
- * fpcfg: FPCFG (Floating-Point Configuration Register)
- *****************************************************************************/
-#define FPCFG_offSP 0
-#define FPCFG_offDP 1
-#define FPCFG_offFREG 2
-#define FPCFG_offFMA 4
-#define FPCFG_offIMVER 22
-#define FPCFG_offAVER 27
-
-#define FPCFG_mskSP ( 0x1 << FPCFG_offSP )
-#define FPCFG_mskDP ( 0x1 << FPCFG_offDP )
-#define FPCFG_mskFREG ( 0x3 << FPCFG_offFREG )
-#define FPCFG_mskFMA ( 0x1 << FPCFG_offFMA )
-#define FPCFG_mskIMVER ( 0x1F << FPCFG_offIMVER )
-#define FPCFG_mskAVER ( 0x1F << FPCFG_offAVER )
-
-/* 8 Single precision or 4 double precision registers are available */
-#define SP8_DP4_reg 0
-/* 16 Single precision or 8 double precision registers are available */
-#define SP16_DP8_reg 1
-/* 32 Single precision or 16 double precision registers are available */
-#define SP32_DP16_reg 2
-/* 32 Single precision or 32 double precision registers are available */
-#define SP32_DP32_reg 3
-
-/******************************************************************************
- * fucpr: FUCOP_CTL (FPU and Coprocessor Enable Control Register)
- *****************************************************************************/
-#define FUCOP_CTL_offCP0EN 0
-#define FUCOP_CTL_offCP1EN 1
-#define FUCOP_CTL_offCP2EN 2
-#define FUCOP_CTL_offCP3EN 3
-#define FUCOP_CTL_offAUEN 31
-
-#define FUCOP_CTL_mskCP0EN ( 0x1 << FUCOP_CTL_offCP0EN )
-#define FUCOP_CTL_mskCP1EN ( 0x1 << FUCOP_CTL_offCP1EN )
-#define FUCOP_CTL_mskCP2EN ( 0x1 << FUCOP_CTL_offCP2EN )
-#define FUCOP_CTL_mskCP3EN ( 0x1 << FUCOP_CTL_offCP3EN )
-#define FUCOP_CTL_mskAUEN ( 0x1 << FUCOP_CTL_offAUEN )
-
-#endif /* __NDS32_BITFIELD_H__ */
diff --git a/arch/nds32/include/asm/cache.h b/arch/nds32/include/asm/cache.h
deleted file mode 100644
index fc3c41b59169..000000000000
--- a/arch/nds32/include/asm/cache.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_CACHE_H__
-#define __NDS32_CACHE_H__
-
-#define L1_CACHE_BYTES 32
-#define L1_CACHE_SHIFT 5
-
-#define ARCH_DMA_MINALIGN L1_CACHE_BYTES
-
-#endif /* __NDS32_CACHE_H__ */
diff --git a/arch/nds32/include/asm/cache_info.h b/arch/nds32/include/asm/cache_info.h
deleted file mode 100644
index e89d8078f3a6..000000000000
--- a/arch/nds32/include/asm/cache_info.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-struct cache_info {
- unsigned char ways;
- unsigned char line_size;
- unsigned short sets;
- unsigned short size;
-#if defined(CONFIG_CPU_CACHE_ALIASING)
- unsigned short aliasing_num;
- unsigned int aliasing_mask;
-#endif
-};
diff --git a/arch/nds32/include/asm/cacheflush.h b/arch/nds32/include/asm/cacheflush.h
deleted file mode 100644
index c2a222ebfa2a..000000000000
--- a/arch/nds32/include/asm/cacheflush.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_CACHEFLUSH_H__
-#define __NDS32_CACHEFLUSH_H__
-
-#include <linux/mm.h>
-
-#define PG_dcache_dirty PG_arch_1
-
-void flush_icache_range(unsigned long start, unsigned long end);
-#define flush_icache_range flush_icache_range
-
-void flush_icache_page(struct vm_area_struct *vma, struct page *page);
-#define flush_icache_page flush_icache_page
-
-#ifdef CONFIG_CPU_CACHE_ALIASING
-void flush_cache_mm(struct mm_struct *mm);
-void flush_cache_dup_mm(struct mm_struct *mm);
-void flush_cache_range(struct vm_area_struct *vma,
- unsigned long start, unsigned long end);
-void flush_cache_page(struct vm_area_struct *vma,
- unsigned long addr, unsigned long pfn);
-void flush_cache_kmaps(void);
-void flush_cache_vmap(unsigned long start, unsigned long end);
-void flush_cache_vunmap(unsigned long start, unsigned long end);
-
-#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
-void flush_dcache_page(struct page *page);
-void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
- unsigned long vaddr, void *dst, void *src, int len);
-void copy_from_user_page(struct vm_area_struct *vma, struct page *page,
- unsigned long vaddr, void *dst, void *src, int len);
-
-#define ARCH_HAS_FLUSH_ANON_PAGE
-void flush_anon_page(struct vm_area_struct *vma,
- struct page *page, unsigned long vaddr);
-
-#define ARCH_IMPLEMENTS_FLUSH_KERNEL_VMAP_RANGE 1
-void flush_kernel_vmap_range(void *addr, int size);
-void invalidate_kernel_vmap_range(void *addr, int size);
-#define flush_dcache_mmap_lock(mapping) xa_lock_irq(&(mapping)->i_pages)
-#define flush_dcache_mmap_unlock(mapping) xa_unlock_irq(&(mapping)->i_pages)
-
-#else
-void flush_icache_user_page(struct vm_area_struct *vma, struct page *page,
- unsigned long addr, int len);
-#define flush_icache_user_page flush_icache_user_page
-
-#include <asm-generic/cacheflush.h>
-#endif
-
-#endif /* __NDS32_CACHEFLUSH_H__ */
diff --git a/arch/nds32/include/asm/current.h b/arch/nds32/include/asm/current.h
deleted file mode 100644
index 65d30096142b..000000000000
--- a/arch/nds32/include/asm/current.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASM_NDS32_CURRENT_H
-#define _ASM_NDS32_CURRENT_H
-
-#ifndef __ASSEMBLY__
-register struct task_struct *current asm("$r25");
-#endif /* __ASSEMBLY__ */
-#define tsk $r25
-
-#endif /* _ASM_NDS32_CURRENT_H */
diff --git a/arch/nds32/include/asm/delay.h b/arch/nds32/include/asm/delay.h
deleted file mode 100644
index 56ea3894f8f8..000000000000
--- a/arch/nds32/include/asm/delay.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_DELAY_H__
-#define __NDS32_DELAY_H__
-
-#include <asm/param.h>
-
-/* There is no clocksource cycle counter in the CPU. */
-static inline void __delay(unsigned long loops)
-{
- __asm__ __volatile__(".align 2\n"
- "1:\n"
- "\taddi\t%0, %0, -1\n"
- "\tbgtz\t%0, 1b\n"
- :"=r"(loops)
- :"0"(loops));
-}
-
-static inline void __udelay(unsigned long usecs, unsigned long lpj)
-{
- usecs *= (unsigned long)(((0x8000000000000000ULL / (500000 / HZ)) +
- 0x80000000ULL) >> 32);
- usecs = (unsigned long)(((unsigned long long)usecs * lpj) >> 32);
- __delay(usecs);
-}
-
-#define udelay(usecs) __udelay((usecs), loops_per_jiffy)
-
-/* make sure "usecs *= ..." in udelay do not overflow. */
-#if HZ >= 1000
-#define MAX_UDELAY_MS 1
-#elif HZ <= 200
-#define MAX_UDELAY_MS 5
-#else
-#define MAX_UDELAY_MS (1000 / HZ)
-#endif
-
-#endif
diff --git a/arch/nds32/include/asm/elf.h b/arch/nds32/include/asm/elf.h
deleted file mode 100644
index 1853dc89b8ac..000000000000
--- a/arch/nds32/include/asm/elf.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASMNDS32_ELF_H
-#define __ASMNDS32_ELF_H
-
-/*
- * ELF register definitions..
- */
-
-#include <asm/ptrace.h>
-#include <asm/fpu.h>
-#include <linux/elf-em.h>
-
-typedef unsigned long elf_greg_t;
-typedef unsigned long elf_freg_t[3];
-
-extern unsigned int elf_hwcap;
-
-#define R_NDS32_NONE 0
-#define R_NDS32_16_RELA 19
-#define R_NDS32_32_RELA 20
-#define R_NDS32_9_PCREL_RELA 22
-#define R_NDS32_15_PCREL_RELA 23
-#define R_NDS32_17_PCREL_RELA 24
-#define R_NDS32_25_PCREL_RELA 25
-#define R_NDS32_HI20_RELA 26
-#define R_NDS32_LO12S3_RELA 27
-#define R_NDS32_LO12S2_RELA 28
-#define R_NDS32_LO12S1_RELA 29
-#define R_NDS32_LO12S0_RELA 30
-#define R_NDS32_SDA15S3_RELA 31
-#define R_NDS32_SDA15S2_RELA 32
-#define R_NDS32_SDA15S1_RELA 33
-#define R_NDS32_SDA15S0_RELA 34
-#define R_NDS32_GOT20 37
-#define R_NDS32_25_PLTREL 38
-#define R_NDS32_COPY 39
-#define R_NDS32_GLOB_DAT 40
-#define R_NDS32_JMP_SLOT 41
-#define R_NDS32_RELATIVE 42
-#define R_NDS32_GOTOFF 43
-#define R_NDS32_GOTPC20 44
-#define R_NDS32_GOT_HI20 45
-#define R_NDS32_GOT_LO12 46
-#define R_NDS32_GOTPC_HI20 47
-#define R_NDS32_GOTPC_LO12 48
-#define R_NDS32_GOTOFF_HI20 49
-#define R_NDS32_GOTOFF_LO12 50
-#define R_NDS32_INSN16 51
-#define R_NDS32_LABEL 52
-#define R_NDS32_LONGCALL1 53
-#define R_NDS32_LONGCALL2 54
-#define R_NDS32_LONGCALL3 55
-#define R_NDS32_LONGJUMP1 56
-#define R_NDS32_LONGJUMP2 57
-#define R_NDS32_LONGJUMP3 58
-#define R_NDS32_LOADSTORE 59
-#define R_NDS32_9_FIXED_RELA 60
-#define R_NDS32_15_FIXED_RELA 61
-#define R_NDS32_17_FIXED_RELA 62
-#define R_NDS32_25_FIXED_RELA 63
-#define R_NDS32_PLTREL_HI20 64
-#define R_NDS32_PLTREL_LO12 65
-#define R_NDS32_PLT_GOTREL_HI20 66
-#define R_NDS32_PLT_GOTREL_LO12 67
-#define R_NDS32_LO12S0_ORI_RELA 72
-#define R_NDS32_DWARF2_OP1_RELA 77
-#define R_NDS32_DWARF2_OP2_RELA 78
-#define R_NDS32_DWARF2_LEB_RELA 79
-#define R_NDS32_WORD_9_PCREL_RELA 94
-#define R_NDS32_LONGCALL4 107
-#define R_NDS32_RELA_NOP_MIX 192
-#define R_NDS32_RELA_NOP_MAX 255
-
-#define ELF_NGREG (sizeof (struct user_pt_regs) / sizeof(elf_greg_t))
-#define ELF_CORE_COPY_REGS(dest, regs) \
- *(struct user_pt_regs *)&(dest) = (regs)->user_regs;
-
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-/* Core file format: The core file is written in such a way that gdb
- can understand it and provide useful information to the user (under
- linux we use the 'trad-core' bfd). There are quite a number of
- obstacles to being able to view the contents of the floating point
- registers, and until these are solved you will not be able to view the
- contents of them. Actually, you can read in the core file and look at
- the contents of the user struct to find out what the floating point
- registers contain.
- The actual file contents are as follows:
- UPAGE: 1 page consisting of a user struct that tells gdb what is present
- in the file. Directly after this is a copy of the task_struct, which
- is currently not used by gdb, but it may come in useful at some point.
- All of the registers are stored as part of the upage. The upage should
- always be only one page.
- DATA: The data area is stored. We use current->end_text to
- current->brk to pick up all of the user variables, plus any memory
- that may have been malloced. No attempt is made to determine if a page
- is demand-zero or if a page is totally unused, we just cover the entire
- range. All of the addresses are rounded in such a way that an integral
- number of pages is written.
- STACK: We need the stack information in order to get a meaningful
- backtrace. We need to write the data from (esp) to
- current->start_stack, so we round each of these off in order to be able
- to write an integer number of pages.
- The minimum core file size is 3 pages, or 12288 bytes.
-*/
-
-struct user_fp {
- unsigned long long fd_regs[32];
- unsigned long fpcsr;
-};
-
-typedef struct user_fp elf_fpregset_t;
-
-struct elf32_hdr;
-#define elf_check_arch(x) ((x)->e_machine == EM_NDS32)
-
-/*
- * These are used to set parameters in the core dumps.
- */
-#define ELF_CLASS ELFCLASS32
-#ifdef __NDS32_EB__
-#define ELF_DATA ELFDATA2MSB
-#else
-#define ELF_DATA ELFDATA2LSB
-#endif
-#define ELF_ARCH EM_NDS32
-#define ELF_EXEC_PAGESIZE PAGE_SIZE
-
-/* This is the location that an ET_DYN program is loaded if exec'ed. Typical
- use of this is to invoke "./ld.so someprog" to test out a new version of
- the loader. We need to make sure that it is out of the way of the program
- that it will "exec", and that there is sufficient room for the brk. */
-
-#define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3)
-
-/* When the program starts, a1 contains a pointer to a function to be
- registered with atexit, as per the SVR4 ABI. A value of 0 means we
- have no such handler. */
-#define ELF_PLAT_INIT(_r, load_addr) (_r)->uregs[0] = 0
-
-/* This yields a mask that user programs can use to figure out what
- instruction set this cpu supports. */
-
-#define ELF_HWCAP (elf_hwcap)
-
-#ifdef __KERNEL__
-
-#define ELF_PLATFORM (NULL)
-
-/* Old NetWinder binaries were compiled in such a way that the iBCS
- heuristic always trips on them. Until these binaries become uncommon
- enough not to care, don't trust the `ibcs' flag here. In any case
- there is no other ELF system currently supported by iBCS.
- @@ Could print a warning message to encourage users to upgrade. */
-#define SET_PERSONALITY(ex) set_personality(PER_LINUX)
-
-#endif
-
-
-#if IS_ENABLED(CONFIG_FPU)
-#define FPU_AUX_ENT NEW_AUX_ENT(AT_FPUCW, FPCSR_INIT)
-#else
-#define FPU_AUX_ENT NEW_AUX_ENT(AT_IGNORE, 0)
-#endif
-
-#define ARCH_DLINFO \
-do { \
- /* Optional FPU initialization */ \
- FPU_AUX_ENT; \
- \
- NEW_AUX_ENT(AT_SYSINFO_EHDR, \
- (elf_addr_t)current->mm->context.vdso); \
-} while (0)
-#define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
-struct linux_binprm;
-int arch_setup_additional_pages(struct linux_binprm *, int);
-
-#endif
diff --git a/arch/nds32/include/asm/fixmap.h b/arch/nds32/include/asm/fixmap.h
deleted file mode 100644
index 2fa09a2de428..000000000000
--- a/arch/nds32/include/asm/fixmap.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_FIXMAP_H
-#define __ASM_NDS32_FIXMAP_H
-
-#ifdef CONFIG_HIGHMEM
-#include <linux/threads.h>
-#include <asm/kmap_size.h>
-#endif
-
-enum fixed_addresses {
- FIX_HOLE,
- FIX_KMAP_RESERVED,
- FIX_KMAP_BEGIN,
-#ifdef CONFIG_HIGHMEM
- FIX_KMAP_END = FIX_KMAP_BEGIN + (KM_MAX_IDX * NR_CPUS) - 1,
-#endif
- FIX_EARLYCON_MEM_BASE,
- __end_of_fixed_addresses
-};
-#define FIXADDR_TOP ((unsigned long) (-(16 * PAGE_SIZE)))
-#define FIXADDR_SIZE ((__end_of_fixed_addresses) << PAGE_SHIFT)
-#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
-#define FIXMAP_PAGE_IO __pgprot(PAGE_DEVICE)
-void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot);
-
-#include <asm-generic/fixmap.h>
-#endif /* __ASM_NDS32_FIXMAP_H */
diff --git a/arch/nds32/include/asm/fpu.h b/arch/nds32/include/asm/fpu.h
deleted file mode 100644
index 8294ed4aaa2c..000000000000
--- a/arch/nds32/include/asm/fpu.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2005-2018 Andes Technology Corporation */
-
-#ifndef __ASM_NDS32_FPU_H
-#define __ASM_NDS32_FPU_H
-
-#if IS_ENABLED(CONFIG_FPU)
-#ifndef __ASSEMBLY__
-#include <linux/sched/task_stack.h>
-#include <linux/preempt.h>
-#include <asm/ptrace.h>
-
-extern bool has_fpu;
-
-extern void save_fpu(struct task_struct *__tsk);
-extern void load_fpu(const struct fpu_struct *fpregs);
-extern bool do_fpu_exception(unsigned int subtype, struct pt_regs *regs);
-extern int do_fpuemu(struct pt_regs *regs, struct fpu_struct *fpu);
-
-#define test_tsk_fpu(regs) (regs->fucop_ctl & FUCOP_CTL_mskCP0EN)
-
-/*
- * Initially load the FPU with signalling NANS. This bit pattern
- * has the property that no matter whether considered as single or as
- * double precision, it still represents a signalling NAN.
- */
-
-#define sNAN64 0xFFFFFFFFFFFFFFFFULL
-#define sNAN32 0xFFFFFFFFUL
-
-#if IS_ENABLED(CONFIG_SUPPORT_DENORMAL_ARITHMETIC)
-/*
- * Denormalized number is unsupported by nds32 FPU. Hence the operation
- * is treated as underflow cases when the final result is a denormalized
- * number. To enhance precision, underflow exception trap should be
- * enabled by default and kerenl will re-execute it by fpu emulator
- * when getting underflow exception.
- */
-#define FPCSR_INIT (FPCSR_mskUDFE | FPCSR_mskIEXE)
-#else
-#define FPCSR_INIT 0x0UL
-#endif
-
-extern const struct fpu_struct init_fpuregs;
-
-static inline void disable_ptreg_fpu(struct pt_regs *regs)
-{
- regs->fucop_ctl &= ~FUCOP_CTL_mskCP0EN;
-}
-
-static inline void enable_ptreg_fpu(struct pt_regs *regs)
-{
- regs->fucop_ctl |= FUCOP_CTL_mskCP0EN;
-}
-
-static inline void enable_fpu(void)
-{
- unsigned long fucop_ctl;
-
- fucop_ctl = __nds32__mfsr(NDS32_SR_FUCOP_CTL) | FUCOP_CTL_mskCP0EN;
- __nds32__mtsr(fucop_ctl, NDS32_SR_FUCOP_CTL);
- __nds32__isb();
-}
-
-static inline void disable_fpu(void)
-{
- unsigned long fucop_ctl;
-
- fucop_ctl = __nds32__mfsr(NDS32_SR_FUCOP_CTL) & ~FUCOP_CTL_mskCP0EN;
- __nds32__mtsr(fucop_ctl, NDS32_SR_FUCOP_CTL);
- __nds32__isb();
-}
-
-static inline void lose_fpu(void)
-{
- preempt_disable();
-#if IS_ENABLED(CONFIG_LAZY_FPU)
- if (last_task_used_math == current) {
- last_task_used_math = NULL;
-#else
- if (test_tsk_fpu(task_pt_regs(current))) {
-#endif
- save_fpu(current);
- }
- disable_ptreg_fpu(task_pt_regs(current));
- preempt_enable();
-}
-
-static inline void own_fpu(void)
-{
- preempt_disable();
-#if IS_ENABLED(CONFIG_LAZY_FPU)
- if (last_task_used_math != current) {
- if (last_task_used_math != NULL)
- save_fpu(last_task_used_math);
- load_fpu(¤t->thread.fpu);
- last_task_used_math = current;
- }
-#else
- if (!test_tsk_fpu(task_pt_regs(current))) {
- load_fpu(¤t->thread.fpu);
- }
-#endif
- enable_ptreg_fpu(task_pt_regs(current));
- preempt_enable();
-}
-
-#if !IS_ENABLED(CONFIG_LAZY_FPU)
-static inline void unlazy_fpu(struct task_struct *tsk)
-{
- preempt_disable();
- if (test_tsk_fpu(task_pt_regs(tsk)))
- save_fpu(tsk);
- preempt_enable();
-}
-#endif /* !CONFIG_LAZY_FPU */
-static inline void clear_fpu(struct pt_regs *regs)
-{
- preempt_disable();
- if (test_tsk_fpu(regs))
- disable_ptreg_fpu(regs);
- preempt_enable();
-}
-#endif /* CONFIG_FPU */
-#endif /* __ASSEMBLY__ */
-#endif /* __ASM_NDS32_FPU_H */
diff --git a/arch/nds32/include/asm/fpuemu.h b/arch/nds32/include/asm/fpuemu.h
deleted file mode 100644
index 63e7ef5f7969..000000000000
--- a/arch/nds32/include/asm/fpuemu.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2005-2018 Andes Technology Corporation */
-
-#ifndef __ARCH_NDS32_FPUEMU_H
-#define __ARCH_NDS32_FPUEMU_H
-
-/*
- * single precision
- */
-
-void fadds(void *ft, void *fa, void *fb);
-void fsubs(void *ft, void *fa, void *fb);
-void fmuls(void *ft, void *fa, void *fb);
-void fdivs(void *ft, void *fa, void *fb);
-void fs2d(void *ft, void *fa);
-void fs2si(void *ft, void *fa);
-void fs2si_z(void *ft, void *fa);
-void fs2ui(void *ft, void *fa);
-void fs2ui_z(void *ft, void *fa);
-void fsi2s(void *ft, void *fa);
-void fui2s(void *ft, void *fa);
-void fsqrts(void *ft, void *fa);
-void fnegs(void *ft, void *fa);
-int fcmps(void *ft, void *fa, void *fb, int cop);
-
-/*
- * double precision
- */
-void faddd(void *ft, void *fa, void *fb);
-void fsubd(void *ft, void *fa, void *fb);
-void fmuld(void *ft, void *fa, void *fb);
-void fdivd(void *ft, void *fa, void *fb);
-void fsqrtd(void *ft, void *fa);
-void fd2s(void *ft, void *fa);
-void fd2si(void *ft, void *fa);
-void fd2si_z(void *ft, void *fa);
-void fd2ui(void *ft, void *fa);
-void fd2ui_z(void *ft, void *fa);
-void fsi2d(void *ft, void *fa);
-void fui2d(void *ft, void *fa);
-void fnegd(void *ft, void *fa);
-int fcmpd(void *ft, void *fa, void *fb, int cop);
-
-#endif /* __ARCH_NDS32_FPUEMU_H */
diff --git a/arch/nds32/include/asm/ftrace.h b/arch/nds32/include/asm/ftrace.h
deleted file mode 100644
index 2f96cc96aa35..000000000000
--- a/arch/nds32/include/asm/ftrace.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-
-#ifndef __ASM_NDS32_FTRACE_H
-#define __ASM_NDS32_FTRACE_H
-
-#ifdef CONFIG_FUNCTION_TRACER
-
-#define HAVE_FUNCTION_GRAPH_FP_TEST
-
-#define MCOUNT_ADDR ((unsigned long)(_mcount))
-/* mcount call is composed of three instructions:
- * sethi + ori + jral
- */
-#define MCOUNT_INSN_SIZE 12
-
-extern void _mcount(unsigned long parent_ip);
-
-#ifdef CONFIG_DYNAMIC_FTRACE
-
-#define FTRACE_ADDR ((unsigned long)_ftrace_caller)
-
-#ifdef __NDS32_EL__
-#define INSN_NOP 0x09000040
-#define INSN_SIZE(insn) (((insn & 0x00000080) == 0) ? 4 : 2)
-#define IS_SETHI(insn) ((insn & 0x000000fe) == 0x00000046)
-#define ENDIAN_CONVERT(insn) be32_to_cpu(insn)
-#else /* __NDS32_EB__ */
-#define INSN_NOP 0x40000009
-#define INSN_SIZE(insn) (((insn & 0x80000000) == 0) ? 4 : 2)
-#define IS_SETHI(insn) ((insn & 0xfe000000) == 0x46000000)
-#define ENDIAN_CONVERT(insn) (insn)
-#endif
-
-extern void _ftrace_caller(unsigned long parent_ip);
-static inline unsigned long ftrace_call_adjust(unsigned long addr)
-{
- return addr;
-}
-struct dyn_arch_ftrace {
-};
-
-#endif /* CONFIG_DYNAMIC_FTRACE */
-
-#endif /* CONFIG_FUNCTION_TRACER */
-
-#endif /* __ASM_NDS32_FTRACE_H */
diff --git a/arch/nds32/include/asm/futex.h b/arch/nds32/include/asm/futex.h
deleted file mode 100644
index 4223f473bd36..000000000000
--- a/arch/nds32/include/asm/futex.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_FUTEX_H__
-#define __NDS32_FUTEX_H__
-
-#include <linux/futex.h>
-#include <linux/uaccess.h>
-#include <asm/errno.h>
-
-#define __futex_atomic_ex_table(err_reg) \
- " .pushsection __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 4f\n" \
- " .long 2b, 4f\n" \
- " .popsection\n" \
- " .pushsection .fixup,\"ax\"\n" \
- "4: move %0, " err_reg "\n" \
- " b 3b\n" \
- " .popsection"
-
-#define __futex_atomic_op(insn, ret, oldval, tmp, uaddr, oparg) \
- smp_mb(); \
- asm volatile( \
- " movi $ta, #0\n" \
- "1: llw %1, [%2+$ta]\n" \
- " " insn "\n" \
- "2: scw %0, [%2+$ta]\n" \
- " beqz %0, 1b\n" \
- " movi %0, #0\n" \
- "3:\n" \
- __futex_atomic_ex_table("%4") \
- : "=&r" (ret), "=&r" (oldval) \
- : "r" (uaddr), "r" (oparg), "i" (-EFAULT) \
- : "cc", "memory")
-static inline int
-futex_atomic_cmpxchg_inatomic(u32 * uval, u32 __user * uaddr,
- u32 oldval, u32 newval)
-{
- int ret = 0;
- u32 val, tmp, flags;
-
- if (!access_ok(uaddr, sizeof(u32)))
- return -EFAULT;
-
- smp_mb();
- asm volatile (" movi $ta, #0\n"
- "1: llw %1, [%6 + $ta]\n"
- " sub %3, %1, %4\n"
- " cmovz %2, %5, %3\n"
- " cmovn %2, %1, %3\n"
- "2: scw %2, [%6 + $ta]\n"
- " beqz %2, 1b\n"
- "3:\n " __futex_atomic_ex_table("%7")
- :"+&r"(ret), "=&r"(val), "=&r"(tmp), "=&r"(flags)
- :"r"(oldval), "r"(newval), "r"(uaddr), "i"(-EFAULT)
- :"$ta", "memory");
- smp_mb();
-
- *uval = val;
- return ret;
-}
-
-static inline int
-arch_futex_atomic_op_inuser(int op, int oparg, int *oval, u32 __user *uaddr)
-{
- int oldval = 0, ret;
-
- if (!access_ok(uaddr, sizeof(u32)))
- return -EFAULT;
- switch (op) {
- case FUTEX_OP_SET:
- __futex_atomic_op("move %0, %3", ret, oldval, tmp, uaddr,
- oparg);
- break;
- case FUTEX_OP_ADD:
- __futex_atomic_op("add %0, %1, %3", ret, oldval, tmp, uaddr,
- oparg);
- break;
- case FUTEX_OP_OR:
- __futex_atomic_op("or %0, %1, %3", ret, oldval, tmp, uaddr,
- oparg);
- break;
- case FUTEX_OP_ANDN:
- __futex_atomic_op("and %0, %1, %3", ret, oldval, tmp, uaddr,
- ~oparg);
- break;
- case FUTEX_OP_XOR:
- __futex_atomic_op("xor %0, %1, %3", ret, oldval, tmp, uaddr,
- oparg);
- break;
- default:
- ret = -ENOSYS;
- }
-
- if (!ret)
- *oval = oldval;
-
- return ret;
-}
-#endif /* __NDS32_FUTEX_H__ */
diff --git a/arch/nds32/include/asm/highmem.h b/arch/nds32/include/asm/highmem.h
deleted file mode 100644
index 16159a8716f2..000000000000
--- a/arch/nds32/include/asm/highmem.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASM_HIGHMEM_H
-#define _ASM_HIGHMEM_H
-
-#include <asm/proc-fns.h>
-#include <asm/fixmap.h>
-
-/*
- * Right now we initialize only a single pte table. It can be extended
- * easily, subsequent pte tables have to be allocated in one physical
- * chunk of RAM.
- */
-/*
- * Ordering is (from lower to higher memory addresses):
- *
- * high_memory
- * Persistent kmap area
- * PKMAP_BASE
- * fixed_addresses
- * FIXADDR_START
- * FIXADDR_TOP
- * Vmalloc area
- * VMALLOC_START
- * VMALLOC_END
- */
-#define PKMAP_BASE ((FIXADDR_START - PGDIR_SIZE) & (PGDIR_MASK))
-#define LAST_PKMAP PTRS_PER_PTE
-#define LAST_PKMAP_MASK (LAST_PKMAP - 1)
-#define PKMAP_NR(virt) (((virt) - (PKMAP_BASE)) >> PAGE_SHIFT)
-#define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT))
-
-static inline void flush_cache_kmaps(void)
-{
- cpu_dcache_wbinval_all();
-}
-
-/* declarations for highmem.c */
-extern unsigned long highstart_pfn, highend_pfn;
-
-extern pte_t *pkmap_page_table;
-
-extern void kmap_init(void);
-
-/*
- * FIXME: The below looks broken vs. a kmap_atomic() in task context which
- * is interupted and another kmap_atomic() happens in interrupt context.
- * But what do I know about nds32. -- tglx
- */
-#define arch_kmap_local_post_map(vaddr, pteval) \
- do { \
- __nds32__tlbop_inv(vaddr); \
- __nds32__mtsr_dsb(vaddr, NDS32_SR_TLB_VPN); \
- __nds32__tlbop_rwr(pteval); \
- __nds32__isb(); \
- } while (0)
-
-#define arch_kmap_local_pre_unmap(vaddr) \
- do { \
- __nds32__tlbop_inv(vaddr); \
- __nds32__isb(); \
- } while (0)
-
-#endif
diff --git a/arch/nds32/include/asm/io.h b/arch/nds32/include/asm/io.h
deleted file mode 100644
index e57378d04006..000000000000
--- a/arch/nds32/include/asm/io.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_IO_H
-#define __ASM_NDS32_IO_H
-
-#include <linux/types.h>
-
-#define __raw_writeb __raw_writeb
-static inline void __raw_writeb(u8 val, volatile void __iomem *addr)
-{
- asm volatile("sbi %0, [%1]" : : "r" (val), "r" (addr));
-}
-
-#define __raw_writew __raw_writew
-static inline void __raw_writew(u16 val, volatile void __iomem *addr)
-{
- asm volatile("shi %0, [%1]" : : "r" (val), "r" (addr));
-}
-
-#define __raw_writel __raw_writel
-static inline void __raw_writel(u32 val, volatile void __iomem *addr)
-{
- asm volatile("swi %0, [%1]" : : "r" (val), "r" (addr));
-}
-
-#define __raw_readb __raw_readb
-static inline u8 __raw_readb(const volatile void __iomem *addr)
-{
- u8 val;
-
- asm volatile("lbi %0, [%1]" : "=r" (val) : "r" (addr));
- return val;
-}
-
-#define __raw_readw __raw_readw
-static inline u16 __raw_readw(const volatile void __iomem *addr)
-{
- u16 val;
-
- asm volatile("lhi %0, [%1]" : "=r" (val) : "r" (addr));
- return val;
-}
-
-#define __raw_readl __raw_readl
-static inline u32 __raw_readl(const volatile void __iomem *addr)
-{
- u32 val;
-
- asm volatile("lwi %0, [%1]" : "=r" (val) : "r" (addr));
- return val;
-}
-
-#define __iormb() rmb()
-#define __iowmb() wmb()
-
-/*
- * {read,write}{b,w,l,q}_relaxed() are like the regular version, but
- * are not guaranteed to provide ordering against spinlocks or memory
- * accesses.
- */
-
-#define readb_relaxed(c) ({ u8 __v = __raw_readb(c); __v; })
-#define readw_relaxed(c) ({ u16 __v = le16_to_cpu((__force __le16)__raw_readw(c)); __v; })
-#define readl_relaxed(c) ({ u32 __v = le32_to_cpu((__force __le32)__raw_readl(c)); __v; })
-#define writeb_relaxed(v,c) ((void)__raw_writeb((v),(c)))
-#define writew_relaxed(v,c) ((void)__raw_writew((__force u16)cpu_to_le16(v),(c)))
-#define writel_relaxed(v,c) ((void)__raw_writel((__force u32)cpu_to_le32(v),(c)))
-
-/*
- * {read,write}{b,w,l,q}() access little endian memory and return result in
- * native endianness.
- */
-#define readb(c) ({ u8 __v = readb_relaxed(c); __iormb(); __v; })
-#define readw(c) ({ u16 __v = readw_relaxed(c); __iormb(); __v; })
-#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
-
-#define writeb(v,c) ({ __iowmb(); writeb_relaxed((v),(c)); })
-#define writew(v,c) ({ __iowmb(); writew_relaxed((v),(c)); })
-#define writel(v,c) ({ __iowmb(); writel_relaxed((v),(c)); })
-
-#include <asm-generic/io.h>
-
-#endif /* __ASM_NDS32_IO_H */
diff --git a/arch/nds32/include/asm/irqflags.h b/arch/nds32/include/asm/irqflags.h
deleted file mode 100644
index 51ef800bb301..000000000000
--- a/arch/nds32/include/asm/irqflags.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <asm/nds32.h>
-#include <nds32_intrinsic.h>
-
-#define arch_local_irq_disable() \
- GIE_DISABLE();
-
-#define arch_local_irq_enable() \
- GIE_ENABLE();
-static inline unsigned long arch_local_irq_save(void)
-{
- unsigned long flags;
- flags = __nds32__mfsr(NDS32_SR_PSW) & PSW_mskGIE;
- GIE_DISABLE();
- return flags;
-}
-
-static inline unsigned long arch_local_save_flags(void)
-{
- unsigned long flags;
- flags = __nds32__mfsr(NDS32_SR_PSW) & PSW_mskGIE;
- return flags;
-}
-
-static inline void arch_local_irq_restore(unsigned long flags)
-{
- if(flags)
- GIE_ENABLE();
-}
-
-static inline int arch_irqs_disabled_flags(unsigned long flags)
-{
- return !flags;
-}
-
-static inline int arch_irqs_disabled(void)
-{
- return arch_irqs_disabled_flags(arch_local_save_flags());
-}
diff --git a/arch/nds32/include/asm/l2_cache.h b/arch/nds32/include/asm/l2_cache.h
deleted file mode 100644
index 3ea48e19e6de..000000000000
--- a/arch/nds32/include/asm/l2_cache.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef L2_CACHE_H
-#define L2_CACHE_H
-
-/* CCTL_CMD_OP */
-#define L2_CA_CONF_OFF 0x0
-#define L2_IF_CONF_OFF 0x4
-#define L2CC_SETUP_OFF 0x8
-#define L2CC_PROT_OFF 0xC
-#define L2CC_CTRL_OFF 0x10
-#define L2_INT_EN_OFF 0x20
-#define L2_STA_OFF 0x24
-#define RDERR_ADDR_OFF 0x28
-#define WRERR_ADDR_OFF 0x2c
-#define EVDPTERR_ADDR_OFF 0x30
-#define IMPL3ERR_ADDR_OFF 0x34
-#define L2_CNT0_CTRL_OFF 0x40
-#define L2_EVNT_CNT0_OFF 0x44
-#define L2_CNT1_CTRL_OFF 0x48
-#define L2_EVNT_CNT1_OFF 0x4c
-#define L2_CCTL_CMD_OFF 0x60
-#define L2_CCTL_STATUS_OFF 0x64
-#define L2_LINE_TAG_OFF 0x68
-#define L2_LINE_DPT_OFF 0x70
-
-#define CCTL_CMD_L2_IX_INVAL 0x0
-#define CCTL_CMD_L2_PA_INVAL 0x1
-#define CCTL_CMD_L2_IX_WB 0x2
-#define CCTL_CMD_L2_PA_WB 0x3
-#define CCTL_CMD_L2_PA_WBINVAL 0x5
-#define CCTL_CMD_L2_SYNC 0xa
-
-/* CCTL_CMD_TYPE */
-#define CCTL_SINGLE_CMD 0
-#define CCTL_BLOCK_CMD 0x10
-#define CCTL_ALL_CMD 0x10
-
-/******************************************************************************
- * L2_CA_CONF (Cache architecture configuration)
- *****************************************************************************/
-#define L2_CA_CONF_offL2SET 0
-#define L2_CA_CONF_offL2WAY 4
-#define L2_CA_CONF_offL2CLSZ 8
-#define L2_CA_CONF_offL2DW 11
-#define L2_CA_CONF_offL2PT 14
-#define L2_CA_CONF_offL2VER 16
-
-#define L2_CA_CONF_mskL2SET (0xFUL << L2_CA_CONF_offL2SET)
-#define L2_CA_CONF_mskL2WAY (0xFUL << L2_CA_CONF_offL2WAY)
-#define L2_CA_CONF_mskL2CLSZ (0x7UL << L2_CA_CONF_offL2CLSZ)
-#define L2_CA_CONF_mskL2DW (0x7UL << L2_CA_CONF_offL2DW)
-#define L2_CA_CONF_mskL2PT (0x3UL << L2_CA_CONF_offL2PT)
-#define L2_CA_CONF_mskL2VER (0xFFFFUL << L2_CA_CONF_offL2VER)
-
-/******************************************************************************
- * L2CC_SETUP (L2CC Setup register)
- *****************************************************************************/
-#define L2CC_SETUP_offPART 0
-#define L2CC_SETUP_mskPART (0x3UL << L2CC_SETUP_offPART)
-#define L2CC_SETUP_offDDLATC 4
-#define L2CC_SETUP_mskDDLATC (0x3UL << L2CC_SETUP_offDDLATC)
-#define L2CC_SETUP_offTDLATC 8
-#define L2CC_SETUP_mskTDLATC (0x3UL << L2CC_SETUP_offTDLATC)
-
-/******************************************************************************
- * L2CC_PROT (L2CC Protect register)
- *****************************************************************************/
-#define L2CC_PROT_offMRWEN 31
-#define L2CC_PROT_mskMRWEN (0x1UL << L2CC_PROT_offMRWEN)
-
-/******************************************************************************
- * L2_CCTL_STATUS_Mn (The L2CCTL command working status for Master n)
- *****************************************************************************/
-#define L2CC_CTRL_offEN 31
-#define L2CC_CTRL_mskEN (0x1UL << L2CC_CTRL_offEN)
-
-/******************************************************************************
- * L2_CCTL_STATUS_Mn (The L2CCTL command working status for Master n)
- *****************************************************************************/
-#define L2_CCTL_STATUS_offCMD_COMP 31
-#define L2_CCTL_STATUS_mskCMD_COMP (0x1 << L2_CCTL_STATUS_offCMD_COMP)
-
-extern void __iomem *atl2c_base;
-#include <linux/smp.h>
-#include <asm/io.h>
-#include <asm/bitfield.h>
-
-#define L2C_R_REG(offset) readl(atl2c_base + offset)
-#define L2C_W_REG(offset, value) writel(value, atl2c_base + offset)
-
-#define L2_CMD_RDY() \
- do{;}while((L2C_R_REG(L2_CCTL_STATUS_OFF) & L2_CCTL_STATUS_mskCMD_COMP) == 0)
-
-static inline unsigned long L2_CACHE_SET(void)
-{
- return 64 << ((L2C_R_REG(L2_CA_CONF_OFF) & L2_CA_CONF_mskL2SET) >>
- L2_CA_CONF_offL2SET);
-}
-
-static inline unsigned long L2_CACHE_WAY(void)
-{
- return 1 +
- ((L2C_R_REG(L2_CA_CONF_OFF) & L2_CA_CONF_mskL2WAY) >>
- L2_CA_CONF_offL2WAY);
-}
-
-static inline unsigned long L2_CACHE_LINE_SIZE(void)
-{
-
- return 4 << ((L2C_R_REG(L2_CA_CONF_OFF) & L2_CA_CONF_mskL2CLSZ) >>
- L2_CA_CONF_offL2CLSZ);
-}
-
-static inline unsigned long GET_L2CC_CTRL_CPU(unsigned long cpu)
-{
- if (cpu == smp_processor_id())
- return L2C_R_REG(L2CC_CTRL_OFF);
- return L2C_R_REG(L2CC_CTRL_OFF + (cpu << 8));
-}
-
-static inline void SET_L2CC_CTRL_CPU(unsigned long cpu, unsigned long val)
-{
- if (cpu == smp_processor_id())
- L2C_W_REG(L2CC_CTRL_OFF, val);
- else
- L2C_W_REG(L2CC_CTRL_OFF + (cpu << 8), val);
-}
-
-static inline unsigned long GET_L2CC_STATUS_CPU(unsigned long cpu)
-{
- if (cpu == smp_processor_id())
- return L2C_R_REG(L2_CCTL_STATUS_OFF);
- return L2C_R_REG(L2_CCTL_STATUS_OFF + (cpu << 8));
-}
-#endif
diff --git a/arch/nds32/include/asm/linkage.h b/arch/nds32/include/asm/linkage.h
deleted file mode 100644
index a696469abb70..000000000000
--- a/arch/nds32/include/asm/linkage.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_LINKAGE_H
-#define __ASM_LINKAGE_H
-
-/* This file is required by include/linux/linkage.h */
-#define __ALIGN .align 2
-#define __ALIGN_STR ".align 2"
-
-#endif
diff --git a/arch/nds32/include/asm/memory.h b/arch/nds32/include/asm/memory.h
deleted file mode 100644
index 62faafbc28e4..000000000000
--- a/arch/nds32/include/asm/memory.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_MEMORY_H
-#define __ASM_NDS32_MEMORY_H
-
-#include <linux/compiler.h>
-#include <linux/sizes.h>
-
-#ifndef __ASSEMBLY__
-#include <asm/page.h>
-#endif
-
-#ifndef PHYS_OFFSET
-#define PHYS_OFFSET (0x0)
-#endif
-
-/*
- * TASK_SIZE - the maximum size of a user space task.
- * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area
- */
-#define TASK_SIZE ((CONFIG_PAGE_OFFSET) - (SZ_32M))
-#define TASK_UNMAPPED_BASE ALIGN(TASK_SIZE / 3, SZ_32M)
-#define PAGE_OFFSET (CONFIG_PAGE_OFFSET)
-
-/*
- * Physical vs virtual RAM address space conversion. These are
- * private definitions which should NOT be used outside memory.h
- * files. Use virt_to_phys/phys_to_virt/__pa/__va instead.
- */
-#ifndef __virt_to_phys
-#define __virt_to_phys(x) ((x) - PAGE_OFFSET + PHYS_OFFSET)
-#define __phys_to_virt(x) ((x) - PHYS_OFFSET + PAGE_OFFSET)
-#endif
-
-/*
- * The module space lives between the addresses given by TASK_SIZE
- * and PAGE_OFFSET - it must be within 32MB of the kernel text.
- */
-#define MODULES_END (PAGE_OFFSET)
-#define MODULES_VADDR (MODULES_END - SZ_32M)
-
-#if TASK_SIZE > MODULES_VADDR
-#error Top of user space clashes with start of module space
-#endif
-
-#ifndef __ASSEMBLY__
-
-/*
- * PFNs are used to describe any physical page; this means
- * PFN 0 == physical address 0.
- *
- * This is the PFN of the first RAM page in the kernel
- * direct-mapped view. We assume this is the first page
- * of RAM in the mem_map as well.
- */
-#define PHYS_PFN_OFFSET (PHYS_OFFSET >> PAGE_SHIFT)
-
-/*
- * Drivers should NOT use these either.
- */
-#define __pa(x) __virt_to_phys((unsigned long)(x))
-#define __va(x) ((void *)__phys_to_virt((unsigned long)(x)))
-
-/*
- * Conversion between a struct page and a physical address.
- *
- * Note: when converting an unknown physical address to a
- * struct page, the resulting pointer must be validated
- * using VALID_PAGE(). It must return an invalid struct page
- * for any physical address not corresponding to a system
- * RAM address.
- *
- * pfn_valid(pfn) indicates whether a PFN number is valid
- *
- * virt_to_page(k) convert a _valid_ virtual address to struct page *
- * virt_addr_valid(k) indicates whether a virtual address is valid
- */
-#define ARCH_PFN_OFFSET PHYS_PFN_OFFSET
-#define pfn_valid(pfn) ((pfn) >= PHYS_PFN_OFFSET && (pfn) < (PHYS_PFN_OFFSET + max_mapnr))
-
-#define virt_to_page(kaddr) (pfn_to_page(__pa(kaddr) >> PAGE_SHIFT))
-#define virt_addr_valid(kaddr) ((unsigned long)(kaddr) >= PAGE_OFFSET && (unsigned long)(kaddr) < (unsigned long)high_memory)
-
-#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
-
-#endif
-
-#include <asm-generic/memory_model.h>
-
-#endif
diff --git a/arch/nds32/include/asm/mmu.h b/arch/nds32/include/asm/mmu.h
deleted file mode 100644
index 89d63afee455..000000000000
--- a/arch/nds32/include/asm/mmu.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_MMU_H
-#define __NDS32_MMU_H
-
-typedef struct {
- unsigned int id;
- void *vdso;
-} mm_context_t;
-
-#endif
diff --git a/arch/nds32/include/asm/mmu_context.h b/arch/nds32/include/asm/mmu_context.h
deleted file mode 100644
index c651bc8cacdc..000000000000
--- a/arch/nds32/include/asm/mmu_context.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_MMU_CONTEXT_H
-#define __ASM_NDS32_MMU_CONTEXT_H
-
-#include <linux/spinlock.h>
-#include <asm/tlbflush.h>
-#include <asm/proc-fns.h>
-#include <asm-generic/mm_hooks.h>
-
-#define init_new_context init_new_context
-static inline int
-init_new_context(struct task_struct *tsk, struct mm_struct *mm)
-{
- mm->context.id = 0;
- return 0;
-}
-
-#define CID_BITS 9
-extern spinlock_t cid_lock;
-extern unsigned int cpu_last_cid;
-
-static inline void __new_context(struct mm_struct *mm)
-{
- unsigned int cid;
- unsigned long flags;
-
- spin_lock_irqsave(&cid_lock, flags);
- cid = cpu_last_cid;
- cpu_last_cid += 1 << TLB_MISC_offCID;
- if (cpu_last_cid == 0)
- cpu_last_cid = 1 << TLB_MISC_offCID << CID_BITS;
-
- if ((cid & TLB_MISC_mskCID) == 0)
- flush_tlb_all();
- spin_unlock_irqrestore(&cid_lock, flags);
-
- mm->context.id = cid;
-}
-
-static inline void check_context(struct mm_struct *mm)
-{
- if (unlikely
- ((mm->context.id ^ cpu_last_cid) >> TLB_MISC_offCID >> CID_BITS))
- __new_context(mm);
-}
-
-static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
- struct task_struct *tsk)
-{
- unsigned int cpu = smp_processor_id();
-
- if (!cpumask_test_and_set_cpu(cpu, mm_cpumask(next)) || prev != next) {
- check_context(next);
- cpu_switch_mm(next);
- }
-}
-
-#include <asm-generic/mmu_context.h>
-
-#endif
diff --git a/arch/nds32/include/asm/nds32.h b/arch/nds32/include/asm/nds32.h
deleted file mode 100644
index 4994f6a9e0a0..000000000000
--- a/arch/nds32/include/asm/nds32.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASM_NDS32_NDS32_H_
-#define _ASM_NDS32_NDS32_H_
-
-#include <asm/bitfield.h>
-#include <asm/cachectl.h>
-
-#ifndef __ASSEMBLY__
-#include <linux/init.h>
-#include <asm/barrier.h>
-#include <nds32_intrinsic.h>
-
-#ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
-#define FP_OFFSET (-3)
-#else
-#define FP_OFFSET (-2)
-#endif
-#define LP_OFFSET (-1)
-
-extern void __init early_trap_init(void);
-static inline void GIE_ENABLE(void)
-{
- mb();
- __nds32__gie_en();
-}
-
-static inline void GIE_DISABLE(void)
-{
- mb();
- __nds32__gie_dis();
-}
-
-static inline unsigned long CACHE_SET(unsigned char cache)
-{
-
- if (cache == ICACHE)
- return 64 << ((__nds32__mfsr(NDS32_SR_ICM_CFG) & ICM_CFG_mskISET) >>
- ICM_CFG_offISET);
- else
- return 64 << ((__nds32__mfsr(NDS32_SR_DCM_CFG) & DCM_CFG_mskDSET) >>
- DCM_CFG_offDSET);
-}
-
-static inline unsigned long CACHE_WAY(unsigned char cache)
-{
-
- if (cache == ICACHE)
- return 1 +
- ((__nds32__mfsr(NDS32_SR_ICM_CFG) & ICM_CFG_mskIWAY) >> ICM_CFG_offIWAY);
- else
- return 1 +
- ((__nds32__mfsr(NDS32_SR_DCM_CFG) & DCM_CFG_mskDWAY) >> DCM_CFG_offDWAY);
-}
-
-static inline unsigned long CACHE_LINE_SIZE(unsigned char cache)
-{
-
- if (cache == ICACHE)
- return 8 <<
- (((__nds32__mfsr(NDS32_SR_ICM_CFG) & ICM_CFG_mskISZ) >> ICM_CFG_offISZ) - 1);
- else
- return 8 <<
- (((__nds32__mfsr(NDS32_SR_DCM_CFG) & DCM_CFG_mskDSZ) >> DCM_CFG_offDSZ) - 1);
-}
-
-#endif /* __ASSEMBLY__ */
-
-#define IVB_BASE PHYS_OFFSET /* in user space for intr/exc/trap/break table base, 64KB aligned
- * We defined at the start of the physical memory */
-
-/* dispatched sub-entry exception handler numbering */
-#define RD_PROT 0 /* read protrection */
-#define WRT_PROT 1 /* write protection */
-#define NOEXEC 2 /* non executable */
-#define PAGE_MODIFY 3 /* page modified */
-#define ACC_BIT 4 /* access bit */
-#define RESVED_PTE 5 /* reserved PTE attribute */
-/* reserved 6 ~ 16 */
-
-#endif /* _ASM_NDS32_NDS32_H_ */
diff --git a/arch/nds32/include/asm/nds32_fpu_inst.h b/arch/nds32/include/asm/nds32_fpu_inst.h
deleted file mode 100644
index 1e4b86a90a48..000000000000
--- a/arch/nds32/include/asm/nds32_fpu_inst.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2005-2018 Andes Technology Corporation */
-
-#ifndef __NDS32_FPU_INST_H
-#define __NDS32_FPU_INST_H
-
-#define cop0_op 0x35
-
-/*
- * COP0 field of opcodes.
- */
-#define fs1_op 0x0
-#define fs2_op 0x4
-#define fd1_op 0x8
-#define fd2_op 0xc
-
-/*
- * FS1 opcode.
- */
-enum fs1 {
- fadds_op, fsubs_op, fcpynss_op, fcpyss_op,
- fmadds_op, fmsubs_op, fcmovns_op, fcmovzs_op,
- fnmadds_op, fnmsubs_op,
- fmuls_op = 0xc, fdivs_op,
- fs1_f2op_op = 0xf
-};
-
-/*
- * FS1/F2OP opcode.
- */
-enum fs1_f2 {
- fs2d_op, fsqrts_op,
- fui2s_op = 0x8, fsi2s_op = 0xc,
- fs2ui_op = 0x10, fs2ui_z_op = 0x14,
- fs2si_op = 0x18, fs2si_z_op = 0x1c
-};
-
-/*
- * FS2 opcode.
- */
-enum fs2 {
- fcmpeqs_op, fcmpeqs_e_op, fcmplts_op, fcmplts_e_op,
- fcmples_op, fcmples_e_op, fcmpuns_op, fcmpuns_e_op
-};
-
-/*
- * FD1 opcode.
- */
-enum fd1 {
- faddd_op, fsubd_op, fcpynsd_op, fcpysd_op,
- fmaddd_op, fmsubd_op, fcmovnd_op, fcmovzd_op,
- fnmaddd_op, fnmsubd_op,
- fmuld_op = 0xc, fdivd_op, fd1_f2op_op = 0xf
-};
-
-/*
- * FD1/F2OP opcode.
- */
-enum fd1_f2 {
- fd2s_op, fsqrtd_op,
- fui2d_op = 0x8, fsi2d_op = 0xc,
- fd2ui_op = 0x10, fd2ui_z_op = 0x14,
- fd2si_op = 0x18, fd2si_z_op = 0x1c
-};
-
-/*
- * FD2 opcode.
- */
-enum fd2 {
- fcmpeqd_op, fcmpeqd_e_op, fcmpltd_op, fcmpltd_e_op,
- fcmpled_op, fcmpled_e_op, fcmpund_op, fcmpund_e_op
-};
-
-#define NDS32Insn(x) x
-
-#define I_OPCODE_off 25
-#define NDS32Insn_OPCODE(x) (NDS32Insn(x) >> I_OPCODE_off)
-
-#define I_OPCODE_offRt 20
-#define I_OPCODE_mskRt (0x1fUL << I_OPCODE_offRt)
-#define NDS32Insn_OPCODE_Rt(x) \
- ((NDS32Insn(x) & I_OPCODE_mskRt) >> I_OPCODE_offRt)
-
-#define I_OPCODE_offRa 15
-#define I_OPCODE_mskRa (0x1fUL << I_OPCODE_offRa)
-#define NDS32Insn_OPCODE_Ra(x) \
- ((NDS32Insn(x) & I_OPCODE_mskRa) >> I_OPCODE_offRa)
-
-#define I_OPCODE_offRb 10
-#define I_OPCODE_mskRb (0x1fUL << I_OPCODE_offRb)
-#define NDS32Insn_OPCODE_Rb(x) \
- ((NDS32Insn(x) & I_OPCODE_mskRb) >> I_OPCODE_offRb)
-
-#define I_OPCODE_offbit1014 10
-#define I_OPCODE_mskbit1014 (0x1fUL << I_OPCODE_offbit1014)
-#define NDS32Insn_OPCODE_BIT1014(x) \
- ((NDS32Insn(x) & I_OPCODE_mskbit1014) >> I_OPCODE_offbit1014)
-
-#define I_OPCODE_offbit69 6
-#define I_OPCODE_mskbit69 (0xfUL << I_OPCODE_offbit69)
-#define NDS32Insn_OPCODE_BIT69(x) \
- ((NDS32Insn(x) & I_OPCODE_mskbit69) >> I_OPCODE_offbit69)
-
-#define I_OPCODE_offCOP0 0
-#define I_OPCODE_mskCOP0 (0x3fUL << I_OPCODE_offCOP0)
-#define NDS32Insn_OPCODE_COP0(x) \
- ((NDS32Insn(x) & I_OPCODE_mskCOP0) >> I_OPCODE_offCOP0)
-
-#endif /* __NDS32_FPU_INST_H */
diff --git a/arch/nds32/include/asm/page.h b/arch/nds32/include/asm/page.h
deleted file mode 100644
index add33a7f02c8..000000000000
--- a/arch/nds32/include/asm/page.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2005-2017 Andes Technology Corporation
- */
-
-#ifndef _ASMNDS32_PAGE_H
-#define _ASMNDS32_PAGE_H
-
-#ifdef CONFIG_ANDES_PAGE_SIZE_4KB
-#define PAGE_SHIFT 12
-#endif
-#ifdef CONFIG_ANDES_PAGE_SIZE_8KB
-#define PAGE_SHIFT 13
-#endif
-#include <linux/const.h>
-#define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
-#define PAGE_MASK (~(PAGE_SIZE-1))
-
-#ifdef __KERNEL__
-
-#ifndef __ASSEMBLY__
-
-struct page;
-struct vm_area_struct;
-#ifdef CONFIG_CPU_CACHE_ALIASING
-extern void copy_user_highpage(struct page *to, struct page *from,
- unsigned long vaddr, struct vm_area_struct *vma);
-extern void clear_user_highpage(struct page *page, unsigned long vaddr);
-
-void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
- struct page *to);
-void clear_user_page(void *addr, unsigned long vaddr, struct page *page);
-#define __HAVE_ARCH_COPY_USER_HIGHPAGE
-#define clear_user_highpage clear_user_highpage
-#else
-#define clear_user_page(page, vaddr, pg) clear_page(page)
-#define copy_user_page(to, from, vaddr, pg) copy_page(to, from)
-#endif
-
-void clear_page(void *page);
-void copy_page(void *to, void *from);
-
-typedef unsigned long pte_t;
-typedef unsigned long pgd_t;
-typedef unsigned long pgprot_t;
-
-#define pte_val(x) (x)
-#define pgd_val(x) (x)
-#define pgprot_val(x) (x)
-
-#define __pte(x) (x)
-#define __pgd(x) (x)
-#define __pgprot(x) (x)
-
-typedef struct page *pgtable_t;
-
-#include <asm/memory.h>
-#include <asm-generic/getorder.h>
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/arch/nds32/include/asm/perf_event.h b/arch/nds32/include/asm/perf_event.h
deleted file mode 100644
index fcdff02acc14..000000000000
--- a/arch/nds32/include/asm/perf_event.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2008-2018 Andes Technology Corporation */
-
-#ifndef __ASM_PERF_EVENT_H
-#define __ASM_PERF_EVENT_H
-
-/*
- * This file is request by Perf,
- * please refer to tools/perf/design.txt for more details
- */
-struct pt_regs;
-unsigned long perf_instruction_pointer(struct pt_regs *regs);
-unsigned long perf_misc_flags(struct pt_regs *regs);
-#define perf_misc_flags(regs) perf_misc_flags(regs)
-
-#endif
diff --git a/arch/nds32/include/asm/pgalloc.h b/arch/nds32/include/asm/pgalloc.h
deleted file mode 100644
index a08e1ebca70e..000000000000
--- a/arch/nds32/include/asm/pgalloc.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASMNDS32_PGALLOC_H
-#define _ASMNDS32_PGALLOC_H
-
-#include <asm/processor.h>
-#include <asm/cacheflush.h>
-#include <asm/tlbflush.h>
-#include <asm/proc-fns.h>
-
-#define __HAVE_ARCH_PTE_ALLOC_ONE
-#include <asm-generic/pgalloc.h> /* for pte_{alloc,free}_one */
-
-extern pgd_t *pgd_alloc(struct mm_struct *mm);
-extern void pgd_free(struct mm_struct *mm, pgd_t * pgd);
-
-static inline pgtable_t pte_alloc_one(struct mm_struct *mm)
-{
- pgtable_t pte;
-
- pte = __pte_alloc_one(mm, GFP_PGTABLE_USER);
- if (pte)
- cpu_dcache_wb_page((unsigned long)page_address(pte));
-
- return pte;
-}
-
-/*
- * Populate the pmdp entry with a pointer to the pte. This pmd is part
- * of the mm address space.
- *
- * Ensure that we always set both PMD entries.
- */
-static inline void
-pmd_populate_kernel(struct mm_struct *mm, pmd_t * pmdp, pte_t * ptep)
-{
- unsigned long pte_ptr = (unsigned long)ptep;
- unsigned long pmdval;
-
- BUG_ON(mm != &init_mm);
-
- /*
- * The pmd must be loaded with the physical
- * address of the PTE table
- */
- pmdval = __pa(pte_ptr) | _PAGE_KERNEL_TABLE;
- set_pmd(pmdp, __pmd(pmdval));
-}
-
-static inline void
-pmd_populate(struct mm_struct *mm, pmd_t * pmdp, pgtable_t ptep)
-{
- unsigned long pmdval;
-
- BUG_ON(mm == &init_mm);
-
- pmdval = page_to_pfn(ptep) << PAGE_SHIFT | _PAGE_USER_TABLE;
- set_pmd(pmdp, __pmd(pmdval));
-}
-
-#endif
diff --git a/arch/nds32/include/asm/pgtable.h b/arch/nds32/include/asm/pgtable.h
deleted file mode 100644
index 419f984eef70..000000000000
--- a/arch/nds32/include/asm/pgtable.h
+++ /dev/null
@@ -1,377 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASMNDS32_PGTABLE_H
-#define _ASMNDS32_PGTABLE_H
-
-#include <asm-generic/pgtable-nopmd.h>
-#include <linux/sizes.h>
-
-#include <asm/memory.h>
-#include <asm/nds32.h>
-#ifndef __ASSEMBLY__
-#include <asm/fixmap.h>
-#include <nds32_intrinsic.h>
-#endif
-
-#ifdef CONFIG_ANDES_PAGE_SIZE_4KB
-#define PGDIR_SHIFT 22
-#define PTRS_PER_PGD 1024
-#define PTRS_PER_PTE 1024
-#endif
-
-#ifdef CONFIG_ANDES_PAGE_SIZE_8KB
-#define PGDIR_SHIFT 24
-#define PTRS_PER_PGD 256
-#define PTRS_PER_PTE 2048
-#endif
-
-#ifndef __ASSEMBLY__
-extern void __pte_error(const char *file, int line, unsigned long val);
-extern void __pgd_error(const char *file, int line, unsigned long val);
-
-#define pte_ERROR(pte) __pte_error(__FILE__, __LINE__, pte_val(pte))
-#define pgd_ERROR(pgd) __pgd_error(__FILE__, __LINE__, pgd_val(pgd))
-#endif /* !__ASSEMBLY__ */
-
-#define PMD_SIZE (1UL << PMD_SHIFT)
-#define PMD_MASK (~(PMD_SIZE-1))
-#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
-#define PGDIR_MASK (~(PGDIR_SIZE-1))
-
-/*
- * This is the lowest virtual address we can permit any user space
- * mapping to be mapped at. This is particularly important for
- * non-high vector CPUs.
- */
-#define FIRST_USER_ADDRESS 0x8000
-
-#ifdef CONFIG_HIGHMEM
-#define CONSISTENT_BASE ((PKMAP_BASE) - (SZ_2M))
-#define CONSISTENT_END (PKMAP_BASE)
-#else
-#define CONSISTENT_BASE (FIXADDR_START - SZ_2M)
-#define CONSISTENT_END (FIXADDR_START)
-#endif
-#define CONSISTENT_OFFSET(x) (((unsigned long)(x) - CONSISTENT_BASE) >> PAGE_SHIFT)
-
-#ifdef CONFIG_HIGHMEM
-#ifndef __ASSEMBLY__
-#include <asm/highmem.h>
-#endif
-#endif
-
-#define VMALLOC_RESERVE SZ_128M
-#define VMALLOC_END (CONSISTENT_BASE - PAGE_SIZE)
-#define VMALLOC_START ((VMALLOC_END) - VMALLOC_RESERVE)
-#define VMALLOC_VMADDR(x) ((unsigned long)(x))
-#define MAXMEM __pa(VMALLOC_START)
-#define MAXMEM_PFN PFN_DOWN(MAXMEM)
-
-#define FIRST_USER_PGD_NR 0
-#define USER_PTRS_PER_PGD ((TASK_SIZE/PGDIR_SIZE) + FIRST_USER_PGD_NR)
-
-/* L2 PTE */
-#define _PAGE_V (1UL << 0)
-
-#define _PAGE_M_XKRW (0UL << 1)
-#define _PAGE_M_UR_KR (1UL << 1)
-#define _PAGE_M_UR_KRW (2UL << 1)
-#define _PAGE_M_URW_KRW (3UL << 1)
-#define _PAGE_M_KR (5UL << 1)
-#define _PAGE_M_KRW (7UL << 1)
-
-#define _PAGE_D (1UL << 4)
-#define _PAGE_E (1UL << 5)
-#define _PAGE_A (1UL << 6)
-#define _PAGE_G (1UL << 7)
-
-#define _PAGE_C_DEV (0UL << 8)
-#define _PAGE_C_DEV_WB (1UL << 8)
-#define _PAGE_C_MEM (2UL << 8)
-#define _PAGE_C_MEM_SHRD_WB (4UL << 8)
-#define _PAGE_C_MEM_SHRD_WT (5UL << 8)
-#define _PAGE_C_MEM_WB (6UL << 8)
-#define _PAGE_C_MEM_WT (7UL << 8)
-
-#define _PAGE_L (1UL << 11)
-
-#define _HAVE_PAGE_L (_PAGE_L)
-#define _PAGE_FILE (1UL << 1)
-#define _PAGE_YOUNG 0
-#define _PAGE_M_MASK _PAGE_M_KRW
-#define _PAGE_C_MASK _PAGE_C_MEM_WT
-
-#ifdef CONFIG_SMP
-#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
-#define _PAGE_CACHE_SHRD _PAGE_C_MEM_SHRD_WT
-#else
-#define _PAGE_CACHE_SHRD _PAGE_C_MEM_SHRD_WB
-#endif
-#else
-#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
-#define _PAGE_CACHE_SHRD _PAGE_C_MEM_WT
-#else
-#define _PAGE_CACHE_SHRD _PAGE_C_MEM_WB
-#endif
-#endif
-
-#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
-#define _PAGE_CACHE _PAGE_C_MEM_WT
-#else
-#define _PAGE_CACHE _PAGE_C_MEM_WB
-#endif
-
-#define _PAGE_IOREMAP \
- (_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_G | _PAGE_C_DEV)
-
-/*
- * + Level 1 descriptor (PMD)
- */
-#define PMD_TYPE_TABLE 0
-
-#ifndef __ASSEMBLY__
-
-#define _PAGE_USER_TABLE PMD_TYPE_TABLE
-#define _PAGE_KERNEL_TABLE PMD_TYPE_TABLE
-
-#define PAGE_EXEC __pgprot(_PAGE_V | _PAGE_M_XKRW | _PAGE_E)
-#define PAGE_NONE __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_A)
-#define PAGE_READ __pgprot(_PAGE_V | _PAGE_M_UR_KR)
-#define PAGE_RDWR __pgprot(_PAGE_V | _PAGE_M_URW_KRW | _PAGE_D)
-#define PAGE_COPY __pgprot(_PAGE_V | _PAGE_M_UR_KR)
-
-#define PAGE_UXKRWX_V1 __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_E | _PAGE_G | _PAGE_CACHE_SHRD)
-#define PAGE_UXKRWX_V2 __pgprot(_PAGE_V | _PAGE_M_XKRW | _PAGE_D | _PAGE_E | _PAGE_G | _PAGE_CACHE_SHRD)
-#define PAGE_URXKRWX_V2 __pgprot(_PAGE_V | _PAGE_M_UR_KRW | _PAGE_D | _PAGE_E | _PAGE_G | _PAGE_CACHE_SHRD)
-#define PAGE_CACHE_L1 __pgprot(_HAVE_PAGE_L | _PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_E | _PAGE_G | _PAGE_CACHE)
-#define PAGE_MEMORY __pgprot(_HAVE_PAGE_L | _PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_E | _PAGE_G | _PAGE_CACHE_SHRD)
-#define PAGE_KERNEL __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_E | _PAGE_G | _PAGE_CACHE_SHRD)
-#define PAGE_SHARED __pgprot(_PAGE_V | _PAGE_M_URW_KRW | _PAGE_D | _PAGE_CACHE_SHRD)
-#define PAGE_DEVICE __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_G | _PAGE_C_DEV)
-#endif /* __ASSEMBLY__ */
-
-/* xwr */
-#define __P000 (PAGE_NONE | _PAGE_CACHE_SHRD)
-#define __P001 (PAGE_READ | _PAGE_CACHE_SHRD)
-#define __P010 (PAGE_COPY | _PAGE_CACHE_SHRD)
-#define __P011 (PAGE_COPY | _PAGE_CACHE_SHRD)
-#define __P100 (PAGE_EXEC | _PAGE_CACHE_SHRD)
-#define __P101 (PAGE_READ | _PAGE_E | _PAGE_CACHE_SHRD)
-#define __P110 (PAGE_COPY | _PAGE_E | _PAGE_CACHE_SHRD)
-#define __P111 (PAGE_COPY | _PAGE_E | _PAGE_CACHE_SHRD)
-
-#define __S000 (PAGE_NONE | _PAGE_CACHE_SHRD)
-#define __S001 (PAGE_READ | _PAGE_CACHE_SHRD)
-#define __S010 (PAGE_RDWR | _PAGE_CACHE_SHRD)
-#define __S011 (PAGE_RDWR | _PAGE_CACHE_SHRD)
-#define __S100 (PAGE_EXEC | _PAGE_CACHE_SHRD)
-#define __S101 (PAGE_READ | _PAGE_E | _PAGE_CACHE_SHRD)
-#define __S110 (PAGE_RDWR | _PAGE_E | _PAGE_CACHE_SHRD)
-#define __S111 (PAGE_RDWR | _PAGE_E | _PAGE_CACHE_SHRD)
-
-#ifndef __ASSEMBLY__
-/*
- * ZERO_PAGE is a global shared page that is always zero: used
- * for zero-mapped memory areas etc..
- */
-extern struct page *empty_zero_page;
-extern void paging_init(void);
-#define ZERO_PAGE(vaddr) (empty_zero_page)
-
-#define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT)
-#define pfn_pte(pfn,prot) (__pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot)))
-
-#define pte_none(pte) !(pte_val(pte))
-#define pte_clear(mm,addr,ptep) set_pte_at((mm),(addr),(ptep), __pte(0))
-#define pte_page(pte) (pfn_to_page(pte_pfn(pte)))
-
-static unsigned long pmd_page_vaddr(pmd_t pmd)
-{
- return ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK));
-}
-
-#define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)
-/*
- * Set a level 1 translation table entry, and clean it out of
- * any caches such that the MMUs can load it correctly.
- */
-static inline void set_pmd(pmd_t * pmdp, pmd_t pmd)
-{
-
- *pmdp = pmd;
-#if !defined(CONFIG_CPU_DCACHE_DISABLE) && !defined(CONFIG_CPU_DCACHE_WRITETHROUGH)
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (pmdp):"memory");
- __nds32__msync_all();
- __nds32__dsb();
-#endif
-}
-
-/*
- * Set a PTE and flush it out
- */
-static inline void set_pte(pte_t * ptep, pte_t pte)
-{
-
- *ptep = pte;
-#if !defined(CONFIG_CPU_DCACHE_DISABLE) && !defined(CONFIG_CPU_DCACHE_WRITETHROUGH)
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (ptep):"memory");
- __nds32__msync_all();
- __nds32__dsb();
-#endif
-}
-
-/*
- * The following only work if pte_present() is true.
- * Undefined behaviour if not..
- */
-
-/*
- * pte_write: this page is writeable for user mode
- * pte_read: this page is readable for user mode
- * pte_kernel_write: this page is writeable for kernel mode
- *
- * We don't have pte_kernel_read because kernel always can read.
- *
- * */
-
-#define pte_present(pte) (pte_val(pte) & _PAGE_V)
-#define pte_write(pte) ((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_URW_KRW)
-#define pte_read(pte) (((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_UR_KR) || \
- ((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_UR_KRW) || \
- ((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_URW_KRW))
-#define pte_kernel_write(pte) (((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_URW_KRW) || \
- ((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_UR_KRW) || \
- ((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_KRW) || \
- (((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_XKRW) && pte_exec(pte)))
-#define pte_exec(pte) (pte_val(pte) & _PAGE_E)
-#define pte_dirty(pte) (pte_val(pte) & _PAGE_D)
-#define pte_young(pte) (pte_val(pte) & _PAGE_YOUNG)
-
-/*
- * The following only works if pte_present() is not true.
- */
-#define pte_file(pte) (pte_val(pte) & _PAGE_FILE)
-#define pte_to_pgoff(x) (pte_val(x) >> 2)
-#define pgoff_to_pte(x) __pte(((x) << 2) | _PAGE_FILE)
-
-#define PTE_FILE_MAX_BITS 29
-
-#define PTE_BIT_FUNC(fn,op) \
-static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; }
-
-static inline pte_t pte_wrprotect(pte_t pte)
-{
- pte_val(pte) = pte_val(pte) & ~_PAGE_M_MASK;
- pte_val(pte) = pte_val(pte) | _PAGE_M_UR_KR;
- return pte;
-}
-
-static inline pte_t pte_mkwrite(pte_t pte)
-{
- pte_val(pte) = pte_val(pte) & ~_PAGE_M_MASK;
- pte_val(pte) = pte_val(pte) | _PAGE_M_URW_KRW;
- return pte;
-}
-
-PTE_BIT_FUNC(exprotect, &=~_PAGE_E);
-PTE_BIT_FUNC(mkexec, |=_PAGE_E);
-PTE_BIT_FUNC(mkclean, &=~_PAGE_D);
-PTE_BIT_FUNC(mkdirty, |=_PAGE_D);
-PTE_BIT_FUNC(mkold, &=~_PAGE_YOUNG);
-PTE_BIT_FUNC(mkyoung, |=_PAGE_YOUNG);
-
-/*
- * Mark the prot value as uncacheable and unbufferable.
- */
-#define pgprot_noncached(prot) __pgprot((pgprot_val(prot)&~_PAGE_C_MASK) | _PAGE_C_DEV)
-#define pgprot_writecombine(prot) __pgprot((pgprot_val(prot)&~_PAGE_C_MASK) | _PAGE_C_DEV_WB)
-
-#define pmd_none(pmd) (pmd_val(pmd)&0x1)
-#define pmd_present(pmd) (!pmd_none(pmd))
-#define pmd_bad(pmd) pmd_none(pmd)
-
-#define copy_pmd(pmdpd,pmdps) set_pmd((pmdpd), *(pmdps))
-#define pmd_clear(pmdp) set_pmd((pmdp), __pmd(1))
-
-static inline pmd_t __mk_pmd(pte_t * ptep, unsigned long prot)
-{
- unsigned long ptr = (unsigned long)ptep;
- pmd_t pmd;
-
- /*
- * The pmd must be loaded with the physical
- * address of the PTE table
- */
-
- pmd_val(pmd) = __virt_to_phys(ptr) | prot;
- return pmd;
-}
-
-#define pmd_page(pmd) virt_to_page(__va(pmd_val(pmd)))
-
-/*
- * Permanent address of a page. We never have highmem, so this is trivial.
- */
-#define pages_to_mb(x) ((x) >> (20 - PAGE_SHIFT))
-
-/*
- * Conversion functions: convert a page and protection to a page entry,
- * and a page entry and page directory to the page they refer to.
- */
-#define mk_pte(page,prot) pfn_pte(page_to_pfn(page),prot)
-
-/*
- * The "pgd_xxx()" functions here are trivial for a folded two-level
- * setup: the pgd is never bad, and a pmd always exists (as it's folded
- * into the pgd entry)
- */
-#define pgd_none(pgd) (0)
-#define pgd_bad(pgd) (0)
-#define pgd_present(pgd) (1)
-#define pgd_clear(pgdp) do { } while (0)
-
-#define page_pte_prot(page,prot) mk_pte(page, prot)
-#define page_pte(page) mk_pte(page, __pgprot(0))
-/*
- * L1PTE = $mr1 + ((virt >> PMD_SHIFT) << 2);
- * L2PTE = (((virt >> PAGE_SHIFT) & (PTRS_PER_PTE -1 )) << 2);
- * PPN = (phys & 0xfffff000);
- *
-*/
-
-static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
-{
- const unsigned long mask = 0xfff;
- pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask);
- return pte;
-}
-
-extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
-
-/* Encode and decode a swap entry.
- *
- * We support up to 32GB of swap on 4k machines
- */
-#define __swp_type(x) (((x).val >> 2) & 0x7f)
-#define __swp_offset(x) ((x).val >> 9)
-#define __swp_entry(type,offset) ((swp_entry_t) { ((type) << 2) | ((offset) << 9) })
-#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
-#define __swp_entry_to_pte(swp) ((pte_t) { (swp).val })
-
-/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
-#define kern_addr_valid(addr) (1)
-
-/*
- * We provide our own arch_get_unmapped_area to cope with VIPT caches.
- */
-#define HAVE_ARCH_UNMAPPED_AREA
-
-/*
- * remap a physical address `phys' of size `size' with page protection `prot'
- * into virtual address `from'
- */
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* _ASMNDS32_PGTABLE_H */
diff --git a/arch/nds32/include/asm/pmu.h b/arch/nds32/include/asm/pmu.h
deleted file mode 100644
index e1ac0b0b8bcf..000000000000
--- a/arch/nds32/include/asm/pmu.h
+++ /dev/null
@@ -1,386 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2008-2018 Andes Technology Corporation */
-
-#ifndef __ASM_PMU_H
-#define __ASM_PMU_H
-
-#include <linux/interrupt.h>
-#include <linux/perf_event.h>
-#include <asm/unistd.h>
-#include <asm/bitfield.h>
-
-/* Has special meaning for perf core implementation */
-#define HW_OP_UNSUPPORTED 0x0
-#define C(_x) PERF_COUNT_HW_CACHE_##_x
-#define CACHE_OP_UNSUPPORTED 0x0
-
-/* Enough for both software and hardware defined events */
-#define SOFTWARE_EVENT_MASK 0xFF
-
-#define PFM_OFFSET_MAGIC_0 2 /* DO NOT START FROM 0 */
-#define PFM_OFFSET_MAGIC_1 (PFM_OFFSET_MAGIC_0 + 36)
-#define PFM_OFFSET_MAGIC_2 (PFM_OFFSET_MAGIC_1 + 36)
-
-enum { PFMC0, PFMC1, PFMC2, MAX_COUNTERS };
-
-u32 PFM_CTL_OVF[3] = { PFM_CTL_mskOVF0, PFM_CTL_mskOVF1,
- PFM_CTL_mskOVF2 };
-u32 PFM_CTL_EN[3] = { PFM_CTL_mskEN0, PFM_CTL_mskEN1,
- PFM_CTL_mskEN2 };
-u32 PFM_CTL_OFFSEL[3] = { PFM_CTL_offSEL0, PFM_CTL_offSEL1,
- PFM_CTL_offSEL2 };
-u32 PFM_CTL_IE[3] = { PFM_CTL_mskIE0, PFM_CTL_mskIE1, PFM_CTL_mskIE2 };
-u32 PFM_CTL_KS[3] = { PFM_CTL_mskKS0, PFM_CTL_mskKS1, PFM_CTL_mskKS2 };
-u32 PFM_CTL_KU[3] = { PFM_CTL_mskKU0, PFM_CTL_mskKU1, PFM_CTL_mskKU2 };
-u32 PFM_CTL_SEL[3] = { PFM_CTL_mskSEL0, PFM_CTL_mskSEL1, PFM_CTL_mskSEL2 };
-/*
- * Perf Events' indices
- */
-#define NDS32_IDX_CYCLE_COUNTER 0
-#define NDS32_IDX_COUNTER0 1
-#define NDS32_IDX_COUNTER1 2
-
-/* The events for a given PMU register set. */
-struct pmu_hw_events {
- /*
- * The events that are active on the PMU for the given index.
- */
- struct perf_event *events[MAX_COUNTERS];
-
- /*
- * A 1 bit for an index indicates that the counter is being used for
- * an event. A 0 means that the counter can be used.
- */
- unsigned long used_mask[BITS_TO_LONGS(MAX_COUNTERS)];
-
- /*
- * Hardware lock to serialize accesses to PMU registers. Needed for the
- * read/modify/write sequences.
- */
- raw_spinlock_t pmu_lock;
-};
-
-struct nds32_pmu {
- struct pmu pmu;
- cpumask_t active_irqs;
- char *name;
- irqreturn_t (*handle_irq)(int irq_num, void *dev);
- void (*enable)(struct perf_event *event);
- void (*disable)(struct perf_event *event);
- int (*get_event_idx)(struct pmu_hw_events *hw_events,
- struct perf_event *event);
- int (*set_event_filter)(struct hw_perf_event *evt,
- struct perf_event_attr *attr);
- u32 (*read_counter)(struct perf_event *event);
- void (*write_counter)(struct perf_event *event, u32 val);
- void (*start)(struct nds32_pmu *nds32_pmu);
- void (*stop)(struct nds32_pmu *nds32_pmu);
- void (*reset)(void *data);
- int (*request_irq)(struct nds32_pmu *nds32_pmu, irq_handler_t handler);
- void (*free_irq)(struct nds32_pmu *nds32_pmu);
- int (*map_event)(struct perf_event *event);
- int num_events;
- atomic_t active_events;
- u64 max_period;
- struct platform_device *plat_device;
- struct pmu_hw_events *(*get_hw_events)(void);
-};
-
-#define to_nds32_pmu(p) (container_of(p, struct nds32_pmu, pmu))
-
-int nds32_pmu_register(struct nds32_pmu *nds32_pmu, int type);
-
-u64 nds32_pmu_event_update(struct perf_event *event);
-
-int nds32_pmu_event_set_period(struct perf_event *event);
-
-/*
- * Common NDS32 SPAv3 event types
- *
- * Note: An implementation may not be able to count all of these events
- * but the encodings are considered to be `reserved' in the case that
- * they are not available.
- *
- * SEL_TOTAL_CYCLES will add an offset is due to ZERO is defined as
- * NOT_SUPPORTED EVENT mapping in generic perf code.
- * You will need to deal it in the event writing implementation.
- */
-enum spav3_counter_0_perf_types {
- SPAV3_0_SEL_BASE = -1 + PFM_OFFSET_MAGIC_0, /* counting symbol */
- SPAV3_0_SEL_TOTAL_CYCLES = 0 + PFM_OFFSET_MAGIC_0,
- SPAV3_0_SEL_COMPLETED_INSTRUCTION = 1 + PFM_OFFSET_MAGIC_0,
- SPAV3_0_SEL_LAST /* counting symbol */
-};
-
-enum spav3_counter_1_perf_types {
- SPAV3_1_SEL_BASE = -1 + PFM_OFFSET_MAGIC_1, /* counting symbol */
- SPAV3_1_SEL_TOTAL_CYCLES = 0 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_COMPLETED_INSTRUCTION = 1 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_CONDITIONAL_BRANCH = 2 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_TAKEN_CONDITIONAL_BRANCH = 3 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_PREFETCH_INSTRUCTION = 4 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_RET_INST = 5 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_JR_INST = 6 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_JAL_JRAL_INST = 7 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_NOP_INST = 8 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_SCW_INST = 9 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_ISB_DSB_INST = 10 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_CCTL_INST = 11 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_TAKEN_INTERRUPTS = 12 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_LOADS_COMPLETED = 13 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_UITLB_ACCESS = 14 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_UDTLB_ACCESS = 15 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_MTLB_ACCESS = 16 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_CODE_CACHE_ACCESS = 17 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_DATA_DEPENDENCY_STALL_CYCLES = 18 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_DATA_CACHE_MISS_STALL_CYCLES = 19 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_DATA_CACHE_ACCESS = 20 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_DATA_CACHE_MISS = 21 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_LOAD_DATA_CACHE_ACCESS = 22 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_STORE_DATA_CACHE_ACCESS = 23 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_ILM_ACCESS = 24 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_LSU_BIU_CYCLES = 25 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_HPTWK_BIU_CYCLES = 26 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_DMA_BIU_CYCLES = 27 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_CODE_CACHE_FILL_BIU_CYCLES = 28 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_LEGAL_UNALIGN_DCACHE_ACCESS = 29 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_PUSH25 = 30 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_SYSCALLS_INST = 31 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_LAST /* counting symbol */
-};
-
-enum spav3_counter_2_perf_types {
- SPAV3_2_SEL_BASE = -1 + PFM_OFFSET_MAGIC_2, /* counting symbol */
- SPAV3_2_SEL_TOTAL_CYCLES = 0 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_COMPLETED_INSTRUCTION = 1 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_CONDITIONAL_BRANCH_MISPREDICT = 2 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_TAKEN_CONDITIONAL_BRANCH_MISPREDICT =
- 3 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_PREFETCH_INSTRUCTION_CACHE_HIT = 4 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_RET_MISPREDICT = 5 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_IMMEDIATE_J_INST = 6 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_MULTIPLY_INST = 7 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_16_BIT_INST = 8 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_FAILED_SCW_INST = 9 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_LD_AFTER_ST_CONFLICT_REPLAYS = 10 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_TAKEN_EXCEPTIONS = 12 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_STORES_COMPLETED = 13 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_UITLB_MISS = 14 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_UDTLB_MISS = 15 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_MTLB_MISS = 16 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_CODE_CACHE_MISS = 17 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_EMPTY_INST_QUEUE_STALL_CYCLES = 18 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_DATA_WRITE_BACK = 19 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_DATA_CACHE_MISS = 21 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_LOAD_DATA_CACHE_MISS = 22 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_STORE_DATA_CACHE_MISS = 23 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_DLM_ACCESS = 24 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_LSU_BIU_REQUEST = 25 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_HPTWK_BIU_REQUEST = 26 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_DMA_BIU_REQUEST = 27 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_CODE_CACHE_FILL_BIU_REQUEST = 28 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_EXTERNAL_EVENTS = 29 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_POP25 = 30 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_LAST /* counting symbol */
-};
-
-/* Get converted event counter index */
-static inline int get_converted_event_idx(unsigned long event)
-{
- int idx;
-
- if ((event) > SPAV3_0_SEL_BASE && event < SPAV3_0_SEL_LAST) {
- idx = 0;
- } else if ((event) > SPAV3_1_SEL_BASE && event < SPAV3_1_SEL_LAST) {
- idx = 1;
- } else if ((event) > SPAV3_2_SEL_BASE && event < SPAV3_2_SEL_LAST) {
- idx = 2;
- } else {
- pr_err("GET_CONVERTED_EVENT_IDX PFM counter range error\n");
- return -EPERM;
- }
-
- return idx;
-}
-
-/* Get converted hardware event number */
-static inline u32 get_converted_evet_hw_num(u32 event)
-{
- if (event > SPAV3_0_SEL_BASE && event < SPAV3_0_SEL_LAST)
- event -= PFM_OFFSET_MAGIC_0;
- else if (event > SPAV3_1_SEL_BASE && event < SPAV3_1_SEL_LAST)
- event -= PFM_OFFSET_MAGIC_1;
- else if (event > SPAV3_2_SEL_BASE && event < SPAV3_2_SEL_LAST)
- event -= PFM_OFFSET_MAGIC_2;
- else if (event != 0)
- pr_err("GET_CONVERTED_EVENT_HW_NUM PFM counter range error\n");
-
- return event;
-}
-
-/*
- * NDS32 HW events mapping
- *
- * The hardware events that we support. We do support cache operations but
- * we have harvard caches and no way to combine instruction and data
- * accesses/misses in hardware.
- */
-static const unsigned int nds32_pfm_perf_map[PERF_COUNT_HW_MAX] = {
- [PERF_COUNT_HW_CPU_CYCLES] = SPAV3_0_SEL_TOTAL_CYCLES,
- [PERF_COUNT_HW_INSTRUCTIONS] = SPAV3_1_SEL_COMPLETED_INSTRUCTION,
- [PERF_COUNT_HW_CACHE_REFERENCES] = SPAV3_1_SEL_DATA_CACHE_ACCESS,
- [PERF_COUNT_HW_CACHE_MISSES] = SPAV3_2_SEL_DATA_CACHE_MISS,
- [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = HW_OP_UNSUPPORTED,
- [PERF_COUNT_HW_BRANCH_MISSES] = HW_OP_UNSUPPORTED,
- [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,
- [PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] = HW_OP_UNSUPPORTED,
- [PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = HW_OP_UNSUPPORTED,
- [PERF_COUNT_HW_REF_CPU_CYCLES] = HW_OP_UNSUPPORTED
-};
-
-static const unsigned int nds32_pfm_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
- [PERF_COUNT_HW_CACHE_OP_MAX]
- [PERF_COUNT_HW_CACHE_RESULT_MAX] = {
- [C(L1D)] = {
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] =
- SPAV3_1_SEL_LOAD_DATA_CACHE_ACCESS,
- [C(RESULT_MISS)] =
- SPAV3_2_SEL_LOAD_DATA_CACHE_MISS,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] =
- SPAV3_1_SEL_STORE_DATA_CACHE_ACCESS,
- [C(RESULT_MISS)] =
- SPAV3_2_SEL_STORE_DATA_CACHE_MISS,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- },
- [C(L1I)] = {
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] =
- SPAV3_1_SEL_CODE_CACHE_ACCESS,
- [C(RESULT_MISS)] =
- SPAV3_2_SEL_CODE_CACHE_MISS,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] =
- SPAV3_1_SEL_CODE_CACHE_ACCESS,
- [C(RESULT_MISS)] =
- SPAV3_2_SEL_CODE_CACHE_MISS,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- },
- /* TODO: L2CC */
- [C(LL)] = {
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- },
- /* NDS32 PMU does not support TLB read/write hit/miss,
- * However, it can count access/miss, which mixed with read and write.
- * Therefore, only READ counter will use it.
- * We do as possible as we can.
- */
- [C(DTLB)] = {
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] =
- SPAV3_1_SEL_UDTLB_ACCESS,
- [C(RESULT_MISS)] =
- SPAV3_2_SEL_UDTLB_MISS,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- },
- [C(ITLB)] = {
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] =
- SPAV3_1_SEL_UITLB_ACCESS,
- [C(RESULT_MISS)] =
- SPAV3_2_SEL_UITLB_MISS,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- },
- [C(BPU)] = { /* What is BPU? */
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- },
- [C(NODE)] = { /* What is NODE? */
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- },
-};
-
-int nds32_pmu_map_event(struct perf_event *event,
- const unsigned int (*event_map)[PERF_COUNT_HW_MAX],
- const unsigned int (*cache_map)[PERF_COUNT_HW_CACHE_MAX]
- [PERF_COUNT_HW_CACHE_OP_MAX]
- [PERF_COUNT_HW_CACHE_RESULT_MAX], u32 raw_event_mask);
-
-#endif /* __ASM_PMU_H */
diff --git a/arch/nds32/include/asm/proc-fns.h b/arch/nds32/include/asm/proc-fns.h
deleted file mode 100644
index 27c617fa77af..000000000000
--- a/arch/nds32/include/asm/proc-fns.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_PROCFNS_H__
-#define __NDS32_PROCFNS_H__
-
-#ifdef __KERNEL__
-#include <asm/page.h>
-
-struct mm_struct;
-struct vm_area_struct;
-extern void cpu_proc_init(void);
-extern void cpu_proc_fin(void);
-extern void cpu_do_idle(void);
-extern void cpu_reset(unsigned long reset);
-extern void cpu_switch_mm(struct mm_struct *mm);
-
-extern void cpu_dcache_inval_all(void);
-extern void cpu_dcache_wbinval_all(void);
-extern void cpu_dcache_inval_page(unsigned long page);
-extern void cpu_dcache_wb_page(unsigned long page);
-extern void cpu_dcache_wbinval_page(unsigned long page);
-extern void cpu_dcache_inval_range(unsigned long start, unsigned long end);
-extern void cpu_dcache_wb_range(unsigned long start, unsigned long end);
-extern void cpu_dcache_wbinval_range(unsigned long start, unsigned long end);
-
-extern void cpu_icache_inval_all(void);
-extern void cpu_icache_inval_page(unsigned long page);
-extern void cpu_icache_inval_range(unsigned long start, unsigned long end);
-
-extern void cpu_cache_wbinval_page(unsigned long page, int flushi);
-extern void cpu_cache_wbinval_range(unsigned long start,
- unsigned long end, int flushi);
-extern void cpu_cache_wbinval_range_check(struct vm_area_struct *vma,
- unsigned long start,
- unsigned long end, bool flushi,
- bool wbd);
-
-extern void cpu_dma_wb_range(unsigned long start, unsigned long end);
-extern void cpu_dma_inval_range(unsigned long start, unsigned long end);
-extern void cpu_dma_wbinval_range(unsigned long start, unsigned long end);
-
-#endif /* __KERNEL__ */
-#endif /* __NDS32_PROCFNS_H__ */
diff --git a/arch/nds32/include/asm/processor.h b/arch/nds32/include/asm/processor.h
deleted file mode 100644
index e6bfc74972bb..000000000000
--- a/arch/nds32/include/asm/processor.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_PROCESSOR_H
-#define __ASM_NDS32_PROCESSOR_H
-
-#ifdef __KERNEL__
-
-#include <asm/ptrace.h>
-#include <asm/types.h>
-#include <asm/sigcontext.h>
-
-#define KERNEL_STACK_SIZE PAGE_SIZE
-#define STACK_TOP TASK_SIZE
-#define STACK_TOP_MAX TASK_SIZE
-
-struct cpu_context {
- unsigned long r6;
- unsigned long r7;
- unsigned long r8;
- unsigned long r9;
- unsigned long r10;
- unsigned long r11;
- unsigned long r12;
- unsigned long r13;
- unsigned long r14;
- unsigned long fp;
- unsigned long pc;
- unsigned long sp;
-};
-
-struct thread_struct {
- struct cpu_context cpu_context; /* cpu context */
- /* fault info */
- unsigned long address;
- unsigned long trap_no;
- unsigned long error_code;
-
- struct fpu_struct fpu;
-};
-
-#define INIT_THREAD { }
-
-#ifdef __NDS32_EB__
-#define PSW_DE PSW_mskBE
-#else
-#define PSW_DE 0x0
-#endif
-
-#ifdef CONFIG_WBNA
-#define PSW_valWBNA PSW_mskWBNA
-#else
-#define PSW_valWBNA 0x0
-#endif
-
-#ifdef CONFIG_HWZOL
-#define PSW_valINIT (PSW_CPL_ANY | PSW_mskAEN | PSW_valWBNA | PSW_mskDT | PSW_mskIT | PSW_DE | PSW_mskGIE)
-#else
-#define PSW_valINIT (PSW_CPL_ANY | PSW_valWBNA | PSW_mskDT | PSW_mskIT | PSW_DE | PSW_mskGIE)
-#endif
-
-#define start_thread(regs,pc,stack) \
-({ \
- memzero(regs, sizeof(struct pt_regs)); \
- forget_syscall(regs); \
- regs->ipsw = PSW_valINIT; \
- regs->ir0 = (PSW_CPL_ANY | PSW_valWBNA | PSW_mskDT | PSW_mskIT | PSW_DE | PSW_SYSTEM | PSW_INTL_1); \
- regs->ipc = pc; \
- regs->sp = stack; \
-})
-
-/* Forward declaration, a strange C thing */
-struct task_struct;
-
-/* Free all resources held by a thread. */
-#define release_thread(thread) do { } while(0)
-#if IS_ENABLED(CONFIG_FPU)
-#if !IS_ENABLED(CONFIG_UNLAZU_FPU)
-extern struct task_struct *last_task_used_math;
-#endif
-#endif
-
-/* Prepare to copy thread state - unlazy all lazy status */
-#define prepare_to_copy(tsk) do { } while (0)
-
-unsigned long __get_wchan(struct task_struct *p);
-
-#define cpu_relax() barrier()
-
-#define task_pt_regs(task) \
- ((struct pt_regs *) (task_stack_page(task) + THREAD_SIZE \
- - 8) - 1)
-
-/*
- * Create a new kernel thread
- */
-extern int kernel_thread(int (*fn) (void *), void *arg, unsigned long flags);
-
-#define KSTK_EIP(tsk) instruction_pointer(task_pt_regs(tsk))
-#define KSTK_ESP(tsk) user_stack_pointer(task_pt_regs(tsk))
-
-#endif
-
-#endif /* __ASM_NDS32_PROCESSOR_H */
diff --git a/arch/nds32/include/asm/ptrace.h b/arch/nds32/include/asm/ptrace.h
deleted file mode 100644
index 919ee223620c..000000000000
--- a/arch/nds32/include/asm/ptrace.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_PTRACE_H
-#define __ASM_NDS32_PTRACE_H
-
-#include <uapi/asm/ptrace.h>
-
-/*
- * If pt_regs.syscallno == NO_SYSCALL, then the thread is not executing
- * a syscall -- i.e., its most recent entry into the kernel from
- * userspace was not via syscall, or otherwise a tracer cancelled the
- * syscall.
- *
- * This must have the value -1, for ABI compatibility with ptrace etc.
- */
-#define NO_SYSCALL (-1)
-#ifndef __ASSEMBLY__
-#include <linux/types.h>
-
-struct pt_regs {
- union {
- struct user_pt_regs user_regs;
- struct {
- long uregs[26];
- long fp;
- long gp;
- long lp;
- long sp;
- long ipc;
-#if defined(CONFIG_HWZOL)
- long lb;
- long le;
- long lc;
-#else
- long dummy[3];
-#endif
- long syscallno;
- };
- };
- long orig_r0;
- long ir0;
- long ipsw;
- long pipsw;
- long pipc;
- long pp0;
- long pp1;
- long fucop_ctl;
- long osp;
-};
-
-static inline bool in_syscall(struct pt_regs const *regs)
-{
- return regs->syscallno != NO_SYSCALL;
-}
-
-static inline void forget_syscall(struct pt_regs *regs)
-{
- regs->syscallno = NO_SYSCALL;
-}
-static inline unsigned long regs_return_value(struct pt_regs *regs)
-{
- return regs->uregs[0];
-}
-extern void show_regs(struct pt_regs *);
-/* Avoid circular header include via sched.h */
-struct task_struct;
-
-#define arch_has_single_step() (1)
-#define user_mode(regs) (((regs)->ipsw & PSW_mskPOM) == 0)
-#define interrupts_enabled(regs) (!!((regs)->ipsw & PSW_mskGIE))
-#define user_stack_pointer(regs) ((regs)->sp)
-#define instruction_pointer(regs) ((regs)->ipc)
-#define profile_pc(regs) instruction_pointer(regs)
-
-#endif /* __ASSEMBLY__ */
-#endif
diff --git a/arch/nds32/include/asm/sfp-machine.h b/arch/nds32/include/asm/sfp-machine.h
deleted file mode 100644
index b1a5caa332b5..000000000000
--- a/arch/nds32/include/asm/sfp-machine.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2005-2018 Andes Technology Corporation */
-
-#include <asm/bitfield.h>
-
-#define _FP_W_TYPE_SIZE 32
-#define _FP_W_TYPE unsigned long
-#define _FP_WS_TYPE signed long
-#define _FP_I_TYPE long
-
-#define __ll_B ((UWtype) 1 << (W_TYPE_SIZE / 2))
-#define __ll_lowpart(t) ((UWtype) (t) & (__ll_B - 1))
-#define __ll_highpart(t) ((UWtype) (t) >> (W_TYPE_SIZE / 2))
-
-#define _FP_MUL_MEAT_S(R, X, Y) \
- _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S, R, X, Y, umul_ppmm)
-#define _FP_MUL_MEAT_D(R, X, Y) \
- _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D, R, X, Y, umul_ppmm)
-#define _FP_MUL_MEAT_Q(R, X, Y) \
- _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q, R, X, Y, umul_ppmm)
-
-#define _FP_MUL_MEAT_DW_S(R, X, Y) \
- _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S, R, X, Y, umul_ppmm)
-#define _FP_MUL_MEAT_DW_D(R, X, Y) \
- _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D, R, X, Y, umul_ppmm)
-
-#define _FP_DIV_MEAT_S(R, X, Y) _FP_DIV_MEAT_1_udiv_norm(S, R, X, Y)
-#define _FP_DIV_MEAT_D(R, X, Y) _FP_DIV_MEAT_2_udiv(D, R, X, Y)
-
-#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
-#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
-#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
-#define _FP_NANSIGN_S 0
-#define _FP_NANSIGN_D 0
-#define _FP_NANSIGN_Q 0
-
-#define _FP_KEEPNANFRACP 1
-#define _FP_QNANNEGATEDP 0
-
-#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
-do { \
- if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
- && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) { \
- R##_s = Y##_s; \
- _FP_FRAC_COPY_##wc(R, Y); \
- } else { \
- R##_s = X##_s; \
- _FP_FRAC_COPY_##wc(R, X); \
- } \
- R##_c = FP_CLS_NAN; \
-} while (0)
-
-#define __FPU_FPCSR (current->thread.fpu.fpcsr)
-
-/* Obtain the current rounding mode. */
-#define FP_ROUNDMODE \
-({ \
- __FPU_FPCSR & FPCSR_mskRM; \
-})
-
-#define FP_RND_NEAREST 0
-#define FP_RND_PINF 1
-#define FP_RND_MINF 2
-#define FP_RND_ZERO 3
-
-#define FP_EX_INVALID FPCSR_mskIVO
-#define FP_EX_DIVZERO FPCSR_mskDBZ
-#define FP_EX_OVERFLOW FPCSR_mskOVF
-#define FP_EX_UNDERFLOW FPCSR_mskUDF
-#define FP_EX_INEXACT FPCSR_mskIEX
-
-#define SF_CEQ 2
-#define SF_CLT 1
-#define SF_CGT 3
-#define SF_CUN 4
-
-#include <asm/byteorder.h>
-
-#ifdef __BIG_ENDIAN__
-#define __BYTE_ORDER __BIG_ENDIAN
-#define __LITTLE_ENDIAN 0
-#else
-#define __BYTE_ORDER __LITTLE_ENDIAN
-#define __BIG_ENDIAN 0
-#endif
-
-#define abort() do { } while (0)
-#define umul_ppmm(w1, w0, u, v) \
-do { \
- UWtype __x0, __x1, __x2, __x3; \
- UHWtype __ul, __vl, __uh, __vh; \
- \
- __ul = __ll_lowpart(u); \
- __uh = __ll_highpart(u); \
- __vl = __ll_lowpart(v); \
- __vh = __ll_highpart(v); \
- \
- __x0 = (UWtype) __ul * __vl; \
- __x1 = (UWtype) __ul * __vh; \
- __x2 = (UWtype) __uh * __vl; \
- __x3 = (UWtype) __uh * __vh; \
- \
- __x1 += __ll_highpart(__x0); \
- __x1 += __x2; \
- if (__x1 < __x2) \
- __x3 += __ll_B; \
- \
- (w1) = __x3 + __ll_highpart(__x1); \
- (w0) = __ll_lowpart(__x1) * __ll_B + __ll_lowpart(__x0); \
-} while (0)
-
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
-do { \
- UWtype __x; \
- __x = (al) + (bl); \
- (sh) = (ah) + (bh) + (__x < (al)); \
- (sl) = __x; \
-} while (0)
-
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
-do { \
- UWtype __x; \
- __x = (al) - (bl); \
- (sh) = (ah) - (bh) - (__x > (al)); \
- (sl) = __x; \
-} while (0)
-
-#define udiv_qrnnd(q, r, n1, n0, d) \
-do { \
- UWtype __d1, __d0, __q1, __q0, __r1, __r0, __m; \
- __d1 = __ll_highpart(d); \
- __d0 = __ll_lowpart(d); \
- \
- __r1 = (n1) % __d1; \
- __q1 = (n1) / __d1; \
- __m = (UWtype) __q1 * __d0; \
- __r1 = __r1 * __ll_B | __ll_highpart(n0); \
- if (__r1 < __m) { \
- __q1--, __r1 += (d); \
- if (__r1 >= (d)) \
- if (__r1 < __m) \
- __q1--, __r1 += (d); \
- } \
- __r1 -= __m; \
- __r0 = __r1 % __d1; \
- __q0 = __r1 / __d1; \
- __m = (UWtype) __q0 * __d0; \
- __r0 = __r0 * __ll_B | __ll_lowpart(n0); \
- if (__r0 < __m) { \
- __q0--, __r0 += (d); \
- if (__r0 >= (d)) \
- if (__r0 < __m) \
- __q0--, __r0 += (d); \
- } \
- __r0 -= __m; \
- (q) = (UWtype) __q1 * __ll_B | __q0; \
- (r) = __r0; \
-} while (0)
diff --git a/arch/nds32/include/asm/shmparam.h b/arch/nds32/include/asm/shmparam.h
deleted file mode 100644
index 3aeee946973d..000000000000
--- a/arch/nds32/include/asm/shmparam.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASMNDS32_SHMPARAM_H
-#define _ASMNDS32_SHMPARAM_H
-
-/*
- * This should be the size of the virtually indexed cache/ways,
- * whichever is greater since the cache aliases every size/ways
- * bytes.
- */
-#define SHMLBA (4 * SZ_8K) /* attach addr a multiple of this */
-
-/*
- * Enforce SHMLBA in shmat
- */
-#define __ARCH_FORCE_SHMLBA
-
-#endif /* _ASMNDS32_SHMPARAM_H */
diff --git a/arch/nds32/include/asm/stacktrace.h b/arch/nds32/include/asm/stacktrace.h
deleted file mode 100644
index 6bf7c777bda4..000000000000
--- a/arch/nds32/include/asm/stacktrace.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2008-2018 Andes Technology Corporation */
-
-#ifndef __ASM_STACKTRACE_H
-#define __ASM_STACKTRACE_H
-
-/* Kernel callchain */
-struct stackframe {
- unsigned long fp;
- unsigned long sp;
- unsigned long lp;
-};
-
-/*
- * struct frame_tail: User callchain
- * IMPORTANT:
- * This struct is used for call-stack walking,
- * the order and types matters.
- * Do not use array, it only stores sizeof(pointer)
- *
- * The details can refer to arch/arm/kernel/perf_event.c
- */
-struct frame_tail {
- unsigned long stack_fp;
- unsigned long stack_lp;
-};
-
-/* For User callchain with optimize for size */
-struct frame_tail_opt_size {
- unsigned long stack_r6;
- unsigned long stack_fp;
- unsigned long stack_gp;
- unsigned long stack_lp;
-};
-
-extern void
-get_real_ret_addr(unsigned long *addr, struct task_struct *tsk, int *graph);
-
-#endif /* __ASM_STACKTRACE_H */
diff --git a/arch/nds32/include/asm/string.h b/arch/nds32/include/asm/string.h
deleted file mode 100644
index cae8fe16de98..000000000000
--- a/arch/nds32/include/asm/string.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_STRING_H
-#define __ASM_NDS32_STRING_H
-
-#define __HAVE_ARCH_MEMCPY
-extern void *memcpy(void *, const void *, __kernel_size_t);
-
-#define __HAVE_ARCH_MEMMOVE
-extern void *memmove(void *, const void *, __kernel_size_t);
-
-#define __HAVE_ARCH_MEMSET
-extern void *memset(void *, int, __kernel_size_t);
-
-extern void *memzero(void *ptr, __kernel_size_t n);
-#endif
diff --git a/arch/nds32/include/asm/suspend.h b/arch/nds32/include/asm/suspend.h
deleted file mode 100644
index 6ed2418af1ac..000000000000
--- a/arch/nds32/include/asm/suspend.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2008-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_SUSPEND_H
-#define __ASM_NDS32_SUSPEND_H
-
-extern void suspend2ram(void);
-extern void cpu_resume(void);
-extern unsigned long wake_mask;
-
-#endif
diff --git a/arch/nds32/include/asm/swab.h b/arch/nds32/include/asm/swab.h
deleted file mode 100644
index 362a466f2976..000000000000
--- a/arch/nds32/include/asm/swab.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_SWAB_H__
-#define __NDS32_SWAB_H__
-
-#include <linux/types.h>
-#include <linux/compiler.h>
-
-static __inline__ __attribute_const__ __u32 ___arch__swab32(__u32 x)
-{
- __asm__("wsbh %0, %0\n\t" /* word swap byte within halfword */
- "rotri %0, %0, #16\n"
- :"=r"(x)
- :"0"(x));
- return x;
-}
-
-static __inline__ __attribute_const__ __u16 ___arch__swab16(__u16 x)
-{
- __asm__("wsbh %0, %0\n" /* word swap byte within halfword */
- :"=r"(x)
- :"0"(x));
- return x;
-}
-
-#define __arch_swab32(x) ___arch__swab32(x)
-#define __arch_swab16(x) ___arch__swab16(x)
-
-#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
-#define __BYTEORDER_HAS_U64__
-#define __SWAB_64_THRU_32__
-#endif
-
-#endif /* __NDS32_SWAB_H__ */
diff --git a/arch/nds32/include/asm/syscall.h b/arch/nds32/include/asm/syscall.h
deleted file mode 100644
index 90aa56c94af1..000000000000
--- a/arch/nds32/include/asm/syscall.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2008-2009 Red Hat, Inc. All rights reserved.
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASM_NDS32_SYSCALL_H
-#define _ASM_NDS32_SYSCALL_H 1
-
-#include <uapi/linux/audit.h>
-#include <linux/err.h>
-struct task_struct;
-struct pt_regs;
-
-/**
- * syscall_get_nr - find what system call a task is executing
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- *
- * If @task is executing a system call or is at system call
- * tracing about to attempt one, returns the system call number.
- * If @task is not executing a system call, i.e. it's blocked
- * inside the kernel for a fault or signal, returns -1.
- *
- * Note this returns int even on 64-bit machines. Only 32 bits of
- * system call number can be meaningful. If the actual arch value
- * is 64 bits, this truncates to 32 bits so 0xffffffff means -1.
- *
- * It's only valid to call this when @task is known to be blocked.
- */
-static inline int
-syscall_get_nr(struct task_struct *task, struct pt_regs *regs)
-{
- return regs->syscallno;
-}
-
-/**
- * syscall_rollback - roll back registers after an aborted system call
- * @task: task of interest, must be in system call exit tracing
- * @regs: task_pt_regs() of @task
- *
- * It's only valid to call this when @task is stopped for system
- * call exit tracing (due to TIF_SYSCALL_TRACE or TIF_SYSCALL_AUDIT),
- * after tracehook_report_syscall_entry() returned nonzero to prevent
- * the system call from taking place.
- *
- * This rolls back the register state in @regs so it's as if the
- * system call instruction was a no-op. The registers containing
- * the system call number and arguments are as they were before the
- * system call instruction. This may not be the same as what the
- * register state looked like at system call entry tracing.
- */
-static inline void
-syscall_rollback(struct task_struct *task, struct pt_regs *regs)
-{
- regs->uregs[0] = regs->orig_r0;
-}
-
-/**
- * syscall_get_error - check result of traced system call
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- *
- * Returns 0 if the system call succeeded, or -ERRORCODE if it failed.
- *
- * It's only valid to call this when @task is stopped for tracing on exit
- * from a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT.
- */
-static inline long
-syscall_get_error(struct task_struct *task, struct pt_regs *regs)
-{
- unsigned long error = regs->uregs[0];
- return IS_ERR_VALUE(error) ? error : 0;
-}
-
-/**
- * syscall_get_return_value - get the return value of a traced system call
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- *
- * Returns the return value of the successful system call.
- * This value is meaningless if syscall_get_error() returned nonzero.
- *
- * It's only valid to call this when @task is stopped for tracing on exit
- * from a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT.
- */
-static inline long
-syscall_get_return_value(struct task_struct *task, struct pt_regs *regs)
-{
- return regs->uregs[0];
-}
-
-/**
- * syscall_set_return_value - change the return value of a traced system call
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- * @error: negative error code, or zero to indicate success
- * @val: user return value if @error is zero
- *
- * This changes the results of the system call that user mode will see.
- * If @error is zero, the user sees a successful system call with a
- * return value of @val. If @error is nonzero, it's a negated errno
- * code; the user sees a failed system call with this errno code.
- *
- * It's only valid to call this when @task is stopped for tracing on exit
- * from a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT.
- */
-static inline void
-syscall_set_return_value(struct task_struct *task, struct pt_regs *regs,
- int error, long val)
-{
- regs->uregs[0] = (long)error ? error : val;
-}
-
-/**
- * syscall_get_arguments - extract system call parameter values
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- * @args: array filled with argument values
- *
- * Fetches 6 arguments to the system call (from 0 through 5). The first
- * argument is stored in @args[0], and so on.
- *
- * It's only valid to call this when @task is stopped for tracing on
- * entry to a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT.
- */
-#define SYSCALL_MAX_ARGS 6
-static inline void
-syscall_get_arguments(struct task_struct *task, struct pt_regs *regs,
- unsigned long *args)
-{
- args[0] = regs->orig_r0;
- args++;
- memcpy(args, ®s->uregs[0] + 1, 5 * sizeof(args[0]));
-}
-
-static inline int
-syscall_get_arch(struct task_struct *task)
-{
- return IS_ENABLED(CONFIG_CPU_BIG_ENDIAN)
- ? AUDIT_ARCH_NDS32BE : AUDIT_ARCH_NDS32;
-}
-
-#endif /* _ASM_NDS32_SYSCALL_H */
diff --git a/arch/nds32/include/asm/syscalls.h b/arch/nds32/include/asm/syscalls.h
deleted file mode 100644
index 4e7216082a67..000000000000
--- a/arch/nds32/include/asm/syscalls.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_SYSCALLS_H
-#define __ASM_NDS32_SYSCALLS_H
-
-asmlinkage long sys_cacheflush(unsigned long addr, unsigned long len, unsigned int op);
-asmlinkage long sys_fadvise64_64_wrapper(int fd, int advice, loff_t offset, loff_t len);
-asmlinkage long sys_rt_sigreturn_wrapper(void);
-asmlinkage long sys_fp_udfiex_crtl(int cmd, int act);
-
-#include <asm-generic/syscalls.h>
-
-#endif /* __ASM_NDS32_SYSCALLS_H */
diff --git a/arch/nds32/include/asm/thread_info.h b/arch/nds32/include/asm/thread_info.h
deleted file mode 100644
index d3967ad184f0..000000000000
--- a/arch/nds32/include/asm/thread_info.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_THREAD_INFO_H
-#define __ASM_NDS32_THREAD_INFO_H
-
-#ifdef __KERNEL__
-
-#define THREAD_SIZE_ORDER (1)
-#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER)
-
-#ifndef __ASSEMBLY__
-
-struct task_struct;
-
-#include <asm/ptrace.h>
-#include <asm/types.h>
-
-typedef unsigned long mm_segment_t;
-
-/*
- * low level task data that entry.S needs immediate access to.
- * __switch_to() assumes cpu_context follows immediately after cpu_domain.
- */
-struct thread_info {
- unsigned long flags; /* low level flags */
- __s32 preempt_count; /* 0 => preemptable, <0 => bug */
- mm_segment_t addr_limit; /* address limit */
-};
-#define INIT_THREAD_INFO(tsk) \
-{ \
- .preempt_count = INIT_PREEMPT_COUNT, \
- .addr_limit = KERNEL_DS, \
-}
-#define thread_saved_pc(tsk) ((unsigned long)(tsk->thread.cpu_context.pc))
-#define thread_saved_fp(tsk) ((unsigned long)(tsk->thread.cpu_context.fp))
-#endif
-
-/*
- * thread information flags:
- * TIF_SYSCALL_TRACE - syscall trace active
- * TIF_SIGPENDING - signal pending
- * TIF_NEED_RESCHED - rescheduling necessary
- * TIF_NOTIFY_RESUME - callback before returning to user
- * TIF_POLLING_NRFLAG - true if poll_idle() is polling TIF_NEED_RESCHED
- */
-#define TIF_SIGPENDING 1
-#define TIF_NEED_RESCHED 2
-#define TIF_SINGLESTEP 3
-#define TIF_NOTIFY_RESUME 4 /* callback before returning to user */
-#define TIF_NOTIFY_SIGNAL 5 /* signal notifications exist */
-#define TIF_SYSCALL_TRACE 8
-#define TIF_POLLING_NRFLAG 17
-#define TIF_MEMDIE 18
-#define TIF_FREEZE 19
-#define TIF_RESTORE_SIGMASK 20
-
-#define _TIF_SIGPENDING (1 << TIF_SIGPENDING)
-#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
-#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
-#define _TIF_NOTIFY_SIGNAL (1 << TIF_NOTIFY_SIGNAL)
-#define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP)
-#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
-#define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG)
-#define _TIF_FREEZE (1 << TIF_FREEZE)
-#define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK)
-
-/*
- * Change these and you break ASM code in entry-common.S
- */
-#define _TIF_WORK_MASK 0x000000ff
-#define _TIF_WORK_SYSCALL_ENTRY (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP)
-#define _TIF_WORK_SYSCALL_LEAVE (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP)
-
-#endif /* __KERNEL__ */
-#endif /* __ASM_NDS32_THREAD_INFO_H */
diff --git a/arch/nds32/include/asm/tlb.h b/arch/nds32/include/asm/tlb.h
deleted file mode 100644
index 672603804a3b..000000000000
--- a/arch/nds32/include/asm/tlb.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASMNDS32_TLB_H
-#define __ASMNDS32_TLB_H
-
-#include <asm-generic/tlb.h>
-
-#define __pte_free_tlb(tlb, pte, addr) pte_free((tlb)->mm, pte)
-
-#endif
diff --git a/arch/nds32/include/asm/tlbflush.h b/arch/nds32/include/asm/tlbflush.h
deleted file mode 100644
index 97155366ea01..000000000000
--- a/arch/nds32/include/asm/tlbflush.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASMNDS32_TLBFLUSH_H
-#define _ASMNDS32_TLBFLUSH_H
-
-#include <linux/spinlock.h>
-#include <linux/mm.h>
-#include <nds32_intrinsic.h>
-
-static inline void local_flush_tlb_all(void)
-{
- __nds32__tlbop_flua();
- __nds32__isb();
-}
-
-static inline void local_flush_tlb_mm(struct mm_struct *mm)
-{
- __nds32__tlbop_flua();
- __nds32__isb();
-}
-
-static inline void local_flush_tlb_kernel_range(unsigned long start,
- unsigned long end)
-{
- while (start < end) {
- __nds32__tlbop_inv(start);
- __nds32__isb();
- start += PAGE_SIZE;
- }
-}
-
-void local_flush_tlb_range(struct vm_area_struct *vma,
- unsigned long start, unsigned long end);
-void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long addr);
-
-#define flush_tlb_all local_flush_tlb_all
-#define flush_tlb_mm local_flush_tlb_mm
-#define flush_tlb_range local_flush_tlb_range
-#define flush_tlb_page local_flush_tlb_page
-#define flush_tlb_kernel_range local_flush_tlb_kernel_range
-
-void update_mmu_cache(struct vm_area_struct *vma,
- unsigned long address, pte_t * pte);
-
-#endif
diff --git a/arch/nds32/include/asm/uaccess.h b/arch/nds32/include/asm/uaccess.h
deleted file mode 100644
index d4cbf069dc22..000000000000
--- a/arch/nds32/include/asm/uaccess.h
+++ /dev/null
@@ -1,286 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASMANDES_UACCESS_H
-#define _ASMANDES_UACCESS_H
-
-/*
- * User space memory access functions
- */
-#include <linux/sched.h>
-#include <asm/errno.h>
-#include <asm/memory.h>
-#include <asm/types.h>
-
-#define __asmeq(x, y) ".ifnc " x "," y " ; .err ; .endif\n\t"
-
-/*
- * The exception table consists of pairs of addresses: the first is the
- * address of an instruction that is allowed to fault, and the second is
- * the address at which the program should continue. No registers are
- * modified, so it is entirely up to the continuation code to figure out
- * what to do.
- *
- * All the routines below use bits of fixup code that are out of line
- * with the main instruction path. This means when everything is well,
- * we don't even have to jump over them. Further, they do not intrude
- * on our cache or tlb entries.
- */
-
-struct exception_table_entry {
- unsigned long insn, fixup;
-};
-
-extern int fixup_exception(struct pt_regs *regs);
-
-#define KERNEL_DS ((mm_segment_t) { ~0UL })
-#define USER_DS ((mm_segment_t) {TASK_SIZE - 1})
-
-#define get_fs() (current_thread_info()->addr_limit)
-#define user_addr_max get_fs
-
-static inline void set_fs(mm_segment_t fs)
-{
- current_thread_info()->addr_limit = fs;
-}
-
-#define uaccess_kernel() (get_fs() == KERNEL_DS)
-
-#define __range_ok(addr, size) (size <= get_fs() && addr <= (get_fs() -size))
-
-#define access_ok(addr, size) \
- __range_ok((unsigned long)addr, (unsigned long)size)
-/*
- * Single-value transfer routines. They automatically use the right
- * size if we just have the right pointer type. Note that the functions
- * which read from user space (*get_*) need to take care not to leak
- * kernel data even if the calling code is buggy and fails to check
- * the return value. This means zeroing out the destination variable
- * or buffer on error. Normally this is done out of line by the
- * fixup code, but there are a few places where it intrudes on the
- * main code path. When we only write to user space, there is no
- * problem.
- *
- * The "__xxx" versions of the user access functions do not verify the
- * address space - it must have been done previously with a separate
- * "access_ok()" call.
- *
- * The "xxx_error" versions set the third argument to EFAULT if an
- * error occurs, and leave it unchanged on success. Note that these
- * versions are void (ie, don't return a value as such).
- */
-
-#define get_user __get_user \
-
-#define __get_user(x, ptr) \
-({ \
- long __gu_err = 0; \
- __get_user_check((x), (ptr), __gu_err); \
- __gu_err; \
-})
-
-#define __get_user_error(x, ptr, err) \
-({ \
- __get_user_check((x), (ptr), (err)); \
- (void)0; \
-})
-
-#define __get_user_check(x, ptr, err) \
-({ \
- const __typeof__(*(ptr)) __user *__p = (ptr); \
- might_fault(); \
- if (access_ok(__p, sizeof(*__p))) { \
- __get_user_err((x), __p, (err)); \
- } else { \
- (x) = 0; (err) = -EFAULT; \
- } \
-})
-
-#define __get_user_err(x, ptr, err) \
-do { \
- unsigned long __gu_val; \
- __chk_user_ptr(ptr); \
- switch (sizeof(*(ptr))) { \
- case 1: \
- __get_user_asm("lbi", __gu_val, (ptr), (err)); \
- break; \
- case 2: \
- __get_user_asm("lhi", __gu_val, (ptr), (err)); \
- break; \
- case 4: \
- __get_user_asm("lwi", __gu_val, (ptr), (err)); \
- break; \
- case 8: \
- __get_user_asm_dword(__gu_val, (ptr), (err)); \
- break; \
- default: \
- BUILD_BUG(); \
- break; \
- } \
- (x) = (__force __typeof__(*(ptr)))__gu_val; \
-} while (0)
-
-#define __get_user_asm(inst, x, addr, err) \
- __asm__ __volatile__ ( \
- "1: "inst" %1,[%2]\n" \
- "2:\n" \
- " .section .fixup,\"ax\"\n" \
- " .align 2\n" \
- "3: move %0, %3\n" \
- " move %1, #0\n" \
- " b 2b\n" \
- " .previous\n" \
- " .section __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 3b\n" \
- " .previous" \
- : "+r" (err), "=&r" (x) \
- : "r" (addr), "i" (-EFAULT) \
- : "cc")
-
-#ifdef __NDS32_EB__
-#define __gu_reg_oper0 "%H1"
-#define __gu_reg_oper1 "%L1"
-#else
-#define __gu_reg_oper0 "%L1"
-#define __gu_reg_oper1 "%H1"
-#endif
-
-#define __get_user_asm_dword(x, addr, err) \
- __asm__ __volatile__ ( \
- "\n1:\tlwi " __gu_reg_oper0 ",[%2]\n" \
- "\n2:\tlwi " __gu_reg_oper1 ",[%2+4]\n" \
- "3:\n" \
- " .section .fixup,\"ax\"\n" \
- " .align 2\n" \
- "4: move %0, %3\n" \
- " b 3b\n" \
- " .previous\n" \
- " .section __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 4b\n" \
- " .long 2b, 4b\n" \
- " .previous" \
- : "+r"(err), "=&r"(x) \
- : "r"(addr), "i"(-EFAULT) \
- : "cc")
-
-#define put_user __put_user \
-
-#define __put_user(x, ptr) \
-({ \
- long __pu_err = 0; \
- __put_user_err((x), (ptr), __pu_err); \
- __pu_err; \
-})
-
-#define __put_user_error(x, ptr, err) \
-({ \
- __put_user_err((x), (ptr), (err)); \
- (void)0; \
-})
-
-#define __put_user_check(x, ptr, err) \
-({ \
- __typeof__(*(ptr)) __user *__p = (ptr); \
- might_fault(); \
- if (access_ok(__p, sizeof(*__p))) { \
- __put_user_err((x), __p, (err)); \
- } else { \
- (err) = -EFAULT; \
- } \
-})
-
-#define __put_user_err(x, ptr, err) \
-do { \
- __typeof__(*(ptr)) __pu_val = (x); \
- __chk_user_ptr(ptr); \
- switch (sizeof(*(ptr))) { \
- case 1: \
- __put_user_asm("sbi", __pu_val, (ptr), (err)); \
- break; \
- case 2: \
- __put_user_asm("shi", __pu_val, (ptr), (err)); \
- break; \
- case 4: \
- __put_user_asm("swi", __pu_val, (ptr), (err)); \
- break; \
- case 8: \
- __put_user_asm_dword(__pu_val, (ptr), (err)); \
- break; \
- default: \
- BUILD_BUG(); \
- break; \
- } \
-} while (0)
-
-#define __put_user_asm(inst, x, addr, err) \
- __asm__ __volatile__ ( \
- "1: "inst" %1,[%2]\n" \
- "2:\n" \
- " .section .fixup,\"ax\"\n" \
- " .align 2\n" \
- "3: move %0, %3\n" \
- " b 2b\n" \
- " .previous\n" \
- " .section __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 3b\n" \
- " .previous" \
- : "+r" (err) \
- : "r" (x), "r" (addr), "i" (-EFAULT) \
- : "cc")
-
-#ifdef __NDS32_EB__
-#define __pu_reg_oper0 "%H2"
-#define __pu_reg_oper1 "%L2"
-#else
-#define __pu_reg_oper0 "%L2"
-#define __pu_reg_oper1 "%H2"
-#endif
-
-#define __put_user_asm_dword(x, addr, err) \
- __asm__ __volatile__ ( \
- "\n1:\tswi " __pu_reg_oper0 ",[%1]\n" \
- "\n2:\tswi " __pu_reg_oper1 ",[%1+4]\n" \
- "3:\n" \
- " .section .fixup,\"ax\"\n" \
- " .align 2\n" \
- "4: move %0, %3\n" \
- " b 3b\n" \
- " .previous\n" \
- " .section __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 4b\n" \
- " .long 2b, 4b\n" \
- " .previous" \
- : "+r"(err) \
- : "r"(addr), "r"(x), "i"(-EFAULT) \
- : "cc")
-
-extern unsigned long __arch_clear_user(void __user * addr, unsigned long n);
-extern long strncpy_from_user(char *dest, const char __user * src, long count);
-extern __must_check long strnlen_user(const char __user * str, long n);
-extern unsigned long __arch_copy_from_user(void *to, const void __user * from,
- unsigned long n);
-extern unsigned long __arch_copy_to_user(void __user * to, const void *from,
- unsigned long n);
-
-#define raw_copy_from_user __arch_copy_from_user
-#define raw_copy_to_user __arch_copy_to_user
-
-#define INLINE_COPY_FROM_USER
-#define INLINE_COPY_TO_USER
-static inline unsigned long clear_user(void __user * to, unsigned long n)
-{
- if (access_ok(to, n))
- n = __arch_clear_user(to, n);
- return n;
-}
-
-static inline unsigned long __clear_user(void __user * to, unsigned long n)
-{
- return __arch_clear_user(to, n);
-}
-
-#endif /* _ASMNDS32_UACCESS_H */
diff --git a/arch/nds32/include/asm/unistd.h b/arch/nds32/include/asm/unistd.h
deleted file mode 100644
index bf5e2d440913..000000000000
--- a/arch/nds32/include/asm/unistd.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#define __ARCH_WANT_SYS_CLONE
-
-#include <uapi/asm/unistd.h>
diff --git a/arch/nds32/include/asm/vdso.h b/arch/nds32/include/asm/vdso.h
deleted file mode 100644
index 89b113ffc3dc..000000000000
--- a/arch/nds32/include/asm/vdso.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2005-2017 Andes Technology Corporation
- */
-
-#ifndef __ASM_VDSO_H
-#define __ASM_VDSO_H
-
-#ifdef __KERNEL__
-
-#ifndef __ASSEMBLY__
-
-#include <generated/vdso-offsets.h>
-
-#define VDSO_SYMBOL(base, name) \
-({ \
- (unsigned long)(vdso_offset_##name + (unsigned long)(base)); \
-})
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* __KERNEL__ */
-
-#endif /* __ASM_VDSO_H */
diff --git a/arch/nds32/include/asm/vdso_datapage.h b/arch/nds32/include/asm/vdso_datapage.h
deleted file mode 100644
index 74c68802021e..000000000000
--- a/arch/nds32/include/asm/vdso_datapage.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2012 ARM Limited
-// Copyright (C) 2005-2017 Andes Technology Corporation
-#ifndef __ASM_VDSO_DATAPAGE_H
-#define __ASM_VDSO_DATAPAGE_H
-
-#ifdef __KERNEL__
-
-#ifndef __ASSEMBLY__
-
-struct vdso_data {
- bool cycle_count_down; /* timer cyclye counter is decrease with time */
- u32 cycle_count_offset; /* offset of timer cycle counter register */
- u32 seq_count; /* sequence count - odd during updates */
- u32 xtime_coarse_sec; /* coarse time */
- u32 xtime_coarse_nsec;
-
- u32 wtm_clock_sec; /* wall to monotonic offset */
- u32 wtm_clock_nsec;
- u32 xtime_clock_sec; /* CLOCK_REALTIME - seconds */
- u32 cs_mult; /* clocksource multiplier */
- u32 cs_shift; /* Cycle to nanosecond divisor (power of two) */
- u32 hrtimer_res; /* hrtimer resolution */
-
- u64 cs_cycle_last; /* last cycle value */
- u64 cs_mask; /* clocksource mask */
-
- u64 xtime_clock_nsec; /* CLOCK_REALTIME sub-ns base */
- u32 tz_minuteswest; /* timezone info for gettimeofday(2) */
- u32 tz_dsttime;
-};
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* __KERNEL__ */
-
-#endif /* __ASM_VDSO_DATAPAGE_H */
diff --git a/arch/nds32/include/asm/vdso_timer_info.h b/arch/nds32/include/asm/vdso_timer_info.h
deleted file mode 100644
index 328439ce37db..000000000000
--- a/arch/nds32/include/asm/vdso_timer_info.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-extern struct timer_info_t timer_info;
-#define EMPTY_VALUE ~(0UL)
-#define EMPTY_TIMER_MAPPING EMPTY_VALUE
-#define EMPTY_REG_OFFSET EMPTY_VALUE
-
-struct timer_info_t
-{
- bool cycle_count_down;
- unsigned long mapping_base;
- unsigned long cycle_count_reg_offset;
-};
diff --git a/arch/nds32/include/asm/vermagic.h b/arch/nds32/include/asm/vermagic.h
deleted file mode 100644
index f772e7ba33f1..000000000000
--- a/arch/nds32/include/asm/vermagic.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASM_VERMAGIC_H
-#define _ASM_VERMAGIC_H
-
-#define MODULE_ARCH_VERMAGIC "NDS32v3"
-
-#endif /* _ASM_VERMAGIC_H */
diff --git a/arch/nds32/include/asm/vmalloc.h b/arch/nds32/include/asm/vmalloc.h
deleted file mode 100644
index caeed3898419..000000000000
--- a/arch/nds32/include/asm/vmalloc.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef _ASM_NDS32_VMALLOC_H
-#define _ASM_NDS32_VMALLOC_H
-
-#endif /* _ASM_NDS32_VMALLOC_H */
diff --git a/arch/nds32/include/uapi/asm/Kbuild b/arch/nds32/include/uapi/asm/Kbuild
deleted file mode 100644
index e78470141932..000000000000
--- a/arch/nds32/include/uapi/asm/Kbuild
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-generic-y += ucontext.h
diff --git a/arch/nds32/include/uapi/asm/auxvec.h b/arch/nds32/include/uapi/asm/auxvec.h
deleted file mode 100644
index bc0b92ab8c15..000000000000
--- a/arch/nds32/include/uapi/asm/auxvec.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_AUXVEC_H
-#define __ASM_AUXVEC_H
-
-/*
- * This entry gives some information about the FPU initialization
- * performed by the kernel.
- */
-#define AT_FPUCW 18 /* Used FPU control word. */
-
-
-/* VDSO location */
-#define AT_SYSINFO_EHDR 33
-
-#define AT_VECTOR_SIZE_ARCH 1
-
-#endif
diff --git a/arch/nds32/include/uapi/asm/byteorder.h b/arch/nds32/include/uapi/asm/byteorder.h
deleted file mode 100644
index c264ef12c49c..000000000000
--- a/arch/nds32/include/uapi/asm/byteorder.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_BYTEORDER_H__
-#define __NDS32_BYTEORDER_H__
-
-#ifdef __NDS32_EB__
-#include <linux/byteorder/big_endian.h>
-#else
-#include <linux/byteorder/little_endian.h>
-#endif
-
-#endif /* __NDS32_BYTEORDER_H__ */
diff --git a/arch/nds32/include/uapi/asm/cachectl.h b/arch/nds32/include/uapi/asm/cachectl.h
deleted file mode 100644
index 31b9b439d819..000000000000
--- a/arch/nds32/include/uapi/asm/cachectl.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 1994, 1995, 1996 by Ralf Baechle
-// Copyright (C) 2005-2017 Andes Technology Corporation
-#ifndef _ASM_CACHECTL
-#define _ASM_CACHECTL
-
-/*
- * Options for cacheflush system call
- */
-#define ICACHE 0 /* flush instruction cache */
-#define DCACHE 1 /* writeback and flush data cache */
-#define BCACHE 2 /* flush instruction cache + writeback and flush data cache */
-
-#endif /* _ASM_CACHECTL */
diff --git a/arch/nds32/include/uapi/asm/fp_udfiex_crtl.h b/arch/nds32/include/uapi/asm/fp_udfiex_crtl.h
deleted file mode 100644
index f17396db16ec..000000000000
--- a/arch/nds32/include/uapi/asm/fp_udfiex_crtl.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/* Copyright (C) 2005-2019 Andes Technology Corporation */
-#ifndef _FP_UDF_IEX_CRTL_H
-#define _FP_UDF_IEX_CRTL_H
-
-/*
- * The cmd list of sys_fp_udfiex_crtl()
- */
-/* Disable UDF or IEX trap based on the content of parameter act */
-#define DISABLE_UDF_IEX_TRAP 0
-/* Enable UDF or IEX trap based on the content of parameter act */
-#define ENABLE_UDF_IEX_TRAP 1
-/* Get current status of UDF and IEX trap */
-#define GET_UDF_IEX_TRAP 2
-
-#endif /* _FP_UDF_IEX_CRTL_H */
diff --git a/arch/nds32/include/uapi/asm/param.h b/arch/nds32/include/uapi/asm/param.h
deleted file mode 100644
index 48d00328d328..000000000000
--- a/arch/nds32/include/uapi/asm/param.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_PARAM_H
-#define __ASM_NDS32_PARAM_H
-
-#define EXEC_PAGESIZE 8192
-
-#include <asm-generic/param.h>
-
-#endif /* __ASM_NDS32_PARAM_H */
diff --git a/arch/nds32/include/uapi/asm/ptrace.h b/arch/nds32/include/uapi/asm/ptrace.h
deleted file mode 100644
index d76217c7c010..000000000000
--- a/arch/nds32/include/uapi/asm/ptrace.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __UAPI_ASM_NDS32_PTRACE_H
-#define __UAPI_ASM_NDS32_PTRACE_H
-
-#ifndef __ASSEMBLY__
-
-/*
- * User structures for general purpose register.
- */
-struct user_pt_regs {
- long uregs[26];
- long fp;
- long gp;
- long lp;
- long sp;
- long ipc;
- long lb;
- long le;
- long lc;
- long syscallno;
-};
-#endif
-#endif
diff --git a/arch/nds32/include/uapi/asm/sigcontext.h b/arch/nds32/include/uapi/asm/sigcontext.h
deleted file mode 100644
index 6c1e6648878f..000000000000
--- a/arch/nds32/include/uapi/asm/sigcontext.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASMNDS32_SIGCONTEXT_H
-#define _ASMNDS32_SIGCONTEXT_H
-
-/*
- * Signal context structure - contains all info to do with the state
- * before the signal handler was invoked. Note: only add new entries
- * to the end of the structure.
- */
-struct fpu_struct {
- unsigned long long fd_regs[32];
- unsigned long fpcsr;
- /*
- * When CONFIG_SUPPORT_DENORMAL_ARITHMETIC is defined, kernel prevents
- * hardware from treating the denormalized output as an underflow case
- * and rounding it to a normal number. Hence kernel enables the UDF and
- * IEX trap in the fpcsr register to step in the calculation.
- * However, the UDF and IEX trap enable bit in $fpcsr also lose
- * their use.
- *
- * UDF_IEX_trap replaces the feature of UDF and IEX trap enable bit in
- * $fpcsr to control the trap of underflow and inexact. The bit filed
- * of UDF_IEX_trap is the same as $fpcsr, 10th bit is used to enable UDF
- * exception trapping and 11th bit is used to enable IEX exception
- * trapping.
- *
- * UDF_IEX_trap is only modified through fp_udfiex_crtl syscall.
- * Therefore, UDF_IEX_trap needn't be saved and restored in each
- * context switch.
- */
- unsigned long UDF_IEX_trap;
-};
-
-struct zol_struct {
- unsigned long nds32_lc; /* $LC */
- unsigned long nds32_le; /* $LE */
- unsigned long nds32_lb; /* $LB */
-};
-
-struct sigcontext {
- unsigned long trap_no;
- unsigned long error_code;
- unsigned long oldmask;
- unsigned long nds32_r0;
- unsigned long nds32_r1;
- unsigned long nds32_r2;
- unsigned long nds32_r3;
- unsigned long nds32_r4;
- unsigned long nds32_r5;
- unsigned long nds32_r6;
- unsigned long nds32_r7;
- unsigned long nds32_r8;
- unsigned long nds32_r9;
- unsigned long nds32_r10;
- unsigned long nds32_r11;
- unsigned long nds32_r12;
- unsigned long nds32_r13;
- unsigned long nds32_r14;
- unsigned long nds32_r15;
- unsigned long nds32_r16;
- unsigned long nds32_r17;
- unsigned long nds32_r18;
- unsigned long nds32_r19;
- unsigned long nds32_r20;
- unsigned long nds32_r21;
- unsigned long nds32_r22;
- unsigned long nds32_r23;
- unsigned long nds32_r24;
- unsigned long nds32_r25;
- unsigned long nds32_fp; /* $r28 */
- unsigned long nds32_gp; /* $r29 */
- unsigned long nds32_lp; /* $r30 */
- unsigned long nds32_sp; /* $r31 */
- unsigned long nds32_ipc;
- unsigned long fault_address;
- unsigned long used_math_flag;
- /* FPU Registers */
- struct fpu_struct fpu;
- struct zol_struct zol;
-};
-
-#endif
diff --git a/arch/nds32/include/uapi/asm/unistd.h b/arch/nds32/include/uapi/asm/unistd.h
deleted file mode 100644
index 410795e280fe..000000000000
--- a/arch/nds32/include/uapi/asm/unistd.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#define __ARCH_WANT_STAT64
-#define __ARCH_WANT_SYNC_FILE_RANGE2
-#define __ARCH_WANT_SET_GET_RLIMIT
-#define __ARCH_WANT_TIME32_SYSCALLS
-
-/* Use the standard ABI for syscalls */
-#include <asm-generic/unistd.h>
-
-/* Additional NDS32 specific syscalls. */
-#define __NR_cacheflush (__NR_arch_specific_syscall)
-#define __NR_fp_udfiex_crtl (__NR_arch_specific_syscall + 1)
-__SYSCALL(__NR_cacheflush, sys_cacheflush)
-__SYSCALL(__NR_fp_udfiex_crtl, sys_fp_udfiex_crtl)
diff --git a/arch/nds32/kernel/.gitignore b/arch/nds32/kernel/.gitignore
deleted file mode 100644
index bbb90f92d051..000000000000
--- a/arch/nds32/kernel/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-vmlinux.lds
diff --git a/arch/nds32/kernel/Makefile b/arch/nds32/kernel/Makefile
deleted file mode 100644
index 394df3f6442c..000000000000
--- a/arch/nds32/kernel/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# Makefile for the linux kernel.
-#
-
-CPPFLAGS_vmlinux.lds := -DTEXTADDR=$(TEXTADDR)
-AFLAGS_head.o := -DTEXTADDR=$(TEXTADDR)
-# Object file lists.
-
-obj-y := ex-entry.o ex-exit.o ex-scall.o irq.o \
- process.o ptrace.o setup.o signal.o \
- sys_nds32.o time.o traps.o cacheinfo.o \
- dma.o syscall_table.o vdso.o
-
-obj-$(CONFIG_MODULES) += nds32_ksyms.o module.o
-obj-$(CONFIG_STACKTRACE) += stacktrace.o
-obj-$(CONFIG_FPU) += fpu.o
-obj-$(CONFIG_OF) += devtree.o
-obj-$(CONFIG_CACHE_L2) += atl2c.o
-obj-$(CONFIG_PERF_EVENTS) += perf_event_cpu.o
-obj-$(CONFIG_PM) += pm.o sleep.o
-extra-y := head.o vmlinux.lds
-
-CFLAGS_fpu.o += -mext-fpu-sp -mext-fpu-dp
-
-
-obj-y += vdso/
-
-obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o
-
-ifdef CONFIG_FUNCTION_TRACER
-CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE)
-endif
diff --git a/arch/nds32/kernel/asm-offsets.c b/arch/nds32/kernel/asm-offsets.c
deleted file mode 100644
index 3541d5981de7..000000000000
--- a/arch/nds32/kernel/asm-offsets.c
+++ /dev/null
@@ -1,28 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/sched.h>
-#include <linux/sched/task_stack.h>
-#include <linux/kbuild.h>
-#include <asm/thread_info.h>
-#include <asm/ptrace.h>
-
-int main(void)
-{
- DEFINE(TSK_TI_FLAGS, offsetof(struct task_struct, thread_info.flags));
- DEFINE(TSK_TI_PREEMPT,
- offsetof(struct task_struct, thread_info.preempt_count));
- DEFINE(THREAD_CPU_CONTEXT,
- offsetof(struct task_struct, thread.cpu_context));
- DEFINE(OSP_OFFSET, offsetof(struct pt_regs, osp));
- DEFINE(SP_OFFSET, offsetof(struct pt_regs, sp));
- DEFINE(FUCOP_CTL_OFFSET, offsetof(struct pt_regs, fucop_ctl));
- DEFINE(IPSW_OFFSET, offsetof(struct pt_regs, ipsw));
- DEFINE(SYSCALLNO_OFFSET, offsetof(struct pt_regs, syscallno));
- DEFINE(IPC_OFFSET, offsetof(struct pt_regs, ipc));
- DEFINE(R0_OFFSET, offsetof(struct pt_regs, uregs[0]));
- DEFINE(R15_OFFSET, offsetof(struct pt_regs, uregs[15]));
- DEFINE(CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC);
- DEFINE(CLOCK_COARSE_RES, LOW_RES_NSEC);
- return 0;
-}
diff --git a/arch/nds32/kernel/atl2c.c b/arch/nds32/kernel/atl2c.c
deleted file mode 100644
index 0c5386e72098..000000000000
--- a/arch/nds32/kernel/atl2c.c
+++ /dev/null
@@ -1,65 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/compiler.h>
-#include <linux/of_address.h>
-#include <linux/of_fdt.h>
-#include <linux/of_platform.h>
-#include <asm/l2_cache.h>
-
-void __iomem *atl2c_base;
-static const struct of_device_id atl2c_ids[] __initconst = {
- {.compatible = "andestech,atl2c",},
- {}
-};
-
-static int __init atl2c_of_init(void)
-{
- struct device_node *np;
- struct resource res;
- unsigned long tmp = 0;
- unsigned long l2set, l2way, l2clsz;
-
- if (!(__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskL2C))
- return -ENODEV;
-
- np = of_find_matching_node(NULL, atl2c_ids);
- if (!np)
- return -ENODEV;
-
- if (of_address_to_resource(np, 0, &res))
- return -ENODEV;
-
- atl2c_base = ioremap(res.start, resource_size(&res));
- if (!atl2c_base)
- return -ENOMEM;
-
- l2set =
- 64 << ((L2C_R_REG(L2_CA_CONF_OFF) & L2_CA_CONF_mskL2SET) >>
- L2_CA_CONF_offL2SET);
- l2way =
- 1 +
- ((L2C_R_REG(L2_CA_CONF_OFF) & L2_CA_CONF_mskL2WAY) >>
- L2_CA_CONF_offL2WAY);
- l2clsz =
- 4 << ((L2C_R_REG(L2_CA_CONF_OFF) & L2_CA_CONF_mskL2CLSZ) >>
- L2_CA_CONF_offL2CLSZ);
- pr_info("L2:%luKB/%luS/%luW/%luB\n",
- l2set * l2way * l2clsz / 1024, l2set, l2way, l2clsz);
-
- tmp = L2C_R_REG(L2CC_PROT_OFF);
- tmp &= ~L2CC_PROT_mskMRWEN;
- L2C_W_REG(L2CC_PROT_OFF, tmp);
-
- tmp = L2C_R_REG(L2CC_SETUP_OFF);
- tmp &= ~L2CC_SETUP_mskPART;
- L2C_W_REG(L2CC_SETUP_OFF, tmp);
-
- tmp = L2C_R_REG(L2CC_CTRL_OFF);
- tmp |= L2CC_CTRL_mskEN;
- L2C_W_REG(L2CC_CTRL_OFF, tmp);
-
- return 0;
-}
-
-subsys_initcall(atl2c_of_init);
diff --git a/arch/nds32/kernel/cacheinfo.c b/arch/nds32/kernel/cacheinfo.c
deleted file mode 100644
index aab98e447feb..000000000000
--- a/arch/nds32/kernel/cacheinfo.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/bitops.h>
-#include <linux/cacheinfo.h>
-#include <linux/cpu.h>
-
-static void ci_leaf_init(struct cacheinfo *this_leaf,
- enum cache_type type, unsigned int level)
-{
- char cache_type = (type & CACHE_TYPE_INST ? ICACHE : DCACHE);
-
- this_leaf->level = level;
- this_leaf->type = type;
- this_leaf->coherency_line_size = CACHE_LINE_SIZE(cache_type);
- this_leaf->number_of_sets = CACHE_SET(cache_type);
- this_leaf->ways_of_associativity = CACHE_WAY(cache_type);
- this_leaf->size = this_leaf->number_of_sets *
- this_leaf->coherency_line_size * this_leaf->ways_of_associativity;
-#if defined(CONFIG_CPU_DCACHE_WRITETHROUGH)
- this_leaf->attributes = CACHE_WRITE_THROUGH;
-#else
- this_leaf->attributes = CACHE_WRITE_BACK;
-#endif
-}
-
-int init_cache_level(unsigned int cpu)
-{
- struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
-
- /* Only 1 level and I/D cache seperate. */
- this_cpu_ci->num_levels = 1;
- this_cpu_ci->num_leaves = 2;
- return 0;
-}
-
-int populate_cache_leaves(unsigned int cpu)
-{
- unsigned int level, idx;
- struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
- struct cacheinfo *this_leaf = this_cpu_ci->info_list;
-
- for (idx = 0, level = 1; level <= this_cpu_ci->num_levels &&
- idx < this_cpu_ci->num_leaves; idx++, level++) {
- ci_leaf_init(this_leaf++, CACHE_TYPE_DATA, level);
- ci_leaf_init(this_leaf++, CACHE_TYPE_INST, level);
- }
- return 0;
-}
diff --git a/arch/nds32/kernel/devtree.c b/arch/nds32/kernel/devtree.c
deleted file mode 100644
index bdce0fe5af9f..000000000000
--- a/arch/nds32/kernel/devtree.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/bug.h>
-#include <linux/printk.h>
-#include <linux/of_fdt.h>
-
-void __init early_init_devtree(void *params)
-{
- if (!params || !early_init_dt_scan(params)) {
- pr_crit("\n"
- "Error: invalid device tree blob at (virtual address 0x%p)\n"
- "\nPlease check your bootloader.", params);
-
- BUG_ON(1);
- }
-
- dump_stack_set_arch_desc("%s (DT)", of_flat_dt_get_machine_name());
-}
diff --git a/arch/nds32/kernel/dma.c b/arch/nds32/kernel/dma.c
deleted file mode 100644
index 2ac8e6c82a61..000000000000
--- a/arch/nds32/kernel/dma.c
+++ /dev/null
@@ -1,82 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/types.h>
-#include <linux/mm.h>
-#include <linux/dma-map-ops.h>
-#include <linux/cache.h>
-#include <linux/highmem.h>
-#include <asm/cacheflush.h>
-#include <asm/tlbflush.h>
-#include <asm/proc-fns.h>
-
-static inline void cache_op(phys_addr_t paddr, size_t size,
- void (*fn)(unsigned long start, unsigned long end))
-{
- struct page *page = pfn_to_page(paddr >> PAGE_SHIFT);
- unsigned offset = paddr & ~PAGE_MASK;
- size_t left = size;
- unsigned long start;
-
- do {
- size_t len = left;
-
- if (PageHighMem(page)) {
- void *addr;
-
- if (offset + len > PAGE_SIZE) {
- if (offset >= PAGE_SIZE) {
- page += offset >> PAGE_SHIFT;
- offset &= ~PAGE_MASK;
- }
- len = PAGE_SIZE - offset;
- }
-
- addr = kmap_atomic(page);
- start = (unsigned long)(addr + offset);
- fn(start, start + len);
- kunmap_atomic(addr);
- } else {
- start = (unsigned long)phys_to_virt(paddr);
- fn(start, start + size);
- }
- offset = 0;
- page++;
- left -= len;
- } while (left);
-}
-
-void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
- enum dma_data_direction dir)
-{
- switch (dir) {
- case DMA_FROM_DEVICE:
- break;
- case DMA_TO_DEVICE:
- case DMA_BIDIRECTIONAL:
- cache_op(paddr, size, cpu_dma_wb_range);
- break;
- default:
- BUG();
- }
-}
-
-void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
- enum dma_data_direction dir)
-{
- switch (dir) {
- case DMA_TO_DEVICE:
- break;
- case DMA_FROM_DEVICE:
- case DMA_BIDIRECTIONAL:
- cache_op(paddr, size, cpu_dma_inval_range);
- break;
- default:
- BUG();
- }
-}
-
-void arch_dma_prep_coherent(struct page *page, size_t size)
-{
- cache_op(page_to_phys(page), size, cpu_dma_wbinval_range);
-}
diff --git a/arch/nds32/kernel/ex-entry.S b/arch/nds32/kernel/ex-entry.S
deleted file mode 100644
index 107d98a1d1b8..000000000000
--- a/arch/nds32/kernel/ex-entry.S
+++ /dev/null
@@ -1,177 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/memory.h>
-#include <asm/nds32.h>
-#include <asm/errno.h>
-#include <asm/asm-offsets.h>
-#include <asm/page.h>
-#include <asm/fpu.h>
-
-#ifdef CONFIG_HWZOL
- .macro push_zol
- mfusr $r14, $LB
- mfusr $r15, $LE
- mfusr $r16, $LC
- .endm
-#endif
- .macro skip_save_fucop_ctl
-#if defined(CONFIG_FPU)
-skip_fucop_ctl:
- smw.adm $p0, [$sp], $p0, #0x1
- j fucop_ctl_done
-#endif
- .endm
-
- .macro save_user_regs
-#if defined(CONFIG_FPU)
- sethi $p0, hi20(has_fpu)
- lbsi $p0, [$p0+lo12(has_fpu)]
- beqz $p0, skip_fucop_ctl
- mfsr $p0, $FUCOP_CTL
- smw.adm $p0, [$sp], $p0, #0x1
- bclr $p0, $p0, #FUCOP_CTL_offCP0EN
- mtsr $p0, $FUCOP_CTL
-fucop_ctl_done:
- /* move $SP to the bottom of pt_regs */
- addi $sp, $sp, -FUCOP_CTL_OFFSET
-#else
- smw.adm $sp, [$sp], $sp, #0x1
- /* move $SP to the bottom of pt_regs */
- addi $sp, $sp, -OSP_OFFSET
-#endif
-
- /* push $r0 ~ $r25 */
- smw.bim $r0, [$sp], $r25
- /* push $fp, $gp, $lp */
- smw.bim $sp, [$sp], $sp, #0xe
-
- mfsr $r12, $SP_USR
- mfsr $r13, $IPC
-#ifdef CONFIG_HWZOL
- push_zol
-#endif
- movi $r17, -1
- move $r18, $r0
- mfsr $r19, $PSW
- mfsr $r20, $IPSW
- mfsr $r21, $P_IPSW
- mfsr $r22, $P_IPC
- mfsr $r23, $P_P0
- mfsr $r24, $P_P1
- smw.bim $r12, [$sp], $r24, #0
- addi $sp, $sp, -FUCOP_CTL_OFFSET
-
- /* Initialize kernel space $fp */
- andi $p0, $r20, #PSW_mskPOM
- movi $p1, #0x0
- cmovz $fp, $p1, $p0
-
- andi $r16, $r19, #PSW_mskINTL
- slti $r17, $r16, #4
- bnez $r17, 1f
- addi $r17, $r19, #-2
- mtsr $r17, $PSW
- isb
-1:
- /* If it was superuser mode, we don't need to update $r25 */
- bnez $p0, 2f
- la $p0, __entry_task
- lw $r25, [$p0]
-2:
- .endm
-
- .text
-
-/*
- * Exception Vector
- */
-exception_handlers:
- .long unhandled_exceptions !Reset/NMI
- .long unhandled_exceptions !TLB fill
- .long do_page_fault !PTE not present
- .long do_dispatch_tlb_misc !TLB misc
- .long unhandled_exceptions !TLB VLPT
- .long unhandled_exceptions !Machine Error
- .long do_debug_trap !Debug related
- .long do_dispatch_general !General exception
- .long eh_syscall !Syscall
- .long asm_do_IRQ !IRQ
-
- skip_save_fucop_ctl
-common_exception_handler:
- save_user_regs
- mfsr $p0, $ITYPE
- andi $p0, $p0, #ITYPE_mskVECTOR
- srli $p0, $p0, #ITYPE_offVECTOR
- andi $p1, $p0, #NDS32_VECTOR_mskNONEXCEPTION
- bnez $p1, 1f
- sethi $lp, hi20(ret_from_exception)
- ori $lp, $lp, lo12(ret_from_exception)
- sethi $p1, hi20(exception_handlers)
- ori $p1, $p1, lo12(exception_handlers)
- lw $p1, [$p1+$p0<<2]
- move $r0, $p0
- mfsr $r1, $EVA
- mfsr $r2, $ITYPE
- move $r3, $sp
- mfsr $r4, $OIPC
- /* enable gie if it is enabled in IPSW. */
- mfsr $r21, $PSW
- andi $r20, $r20, #PSW_mskGIE /* r20 is $IPSW*/
- or $r21, $r21, $r20
- mtsr $r21, $PSW
- dsb
- jr $p1
- /* syscall */
-1:
- addi $p1, $p0, #-NDS32_VECTOR_offEXCEPTION
- bnez $p1, 2f
- sethi $lp, hi20(ret_from_exception)
- ori $lp, $lp, lo12(ret_from_exception)
- sethi $p1, hi20(exception_handlers)
- ori $p1, $p1, lo12(exception_handlers)
- lwi $p1, [$p1+#NDS32_VECTOR_offEXCEPTION<<2]
- jr $p1
-
- /* interrupt */
-2:
-#ifdef CONFIG_TRACE_IRQFLAGS
- jal __trace_hardirqs_off
-#endif
- move $r0, $sp
- sethi $lp, hi20(ret_from_intr)
- ori $lp, $lp, lo12(ret_from_intr)
- sethi $p0, hi20(exception_handlers)
- ori $p0, $p0, lo12(exception_handlers)
- lwi $p0, [$p0+#NDS32_VECTOR_offINTERRUPT<<2]
- jr $p0
-
- .macro EXCEPTION_VECTOR_DEBUG
- .align 4
- mfsr $p0, $EDM_CTL
- andi $p0, $p0, EDM_CTL_mskV3_EDM_MODE
- tnez $p0, SWID_RAISE_INTERRUPT_LEVEL
- .endm
-
- .macro EXCEPTION_VECTOR
- .align 4
- sethi $p0, hi20(common_exception_handler)
- ori $p0, $p0, lo12(common_exception_handler)
- jral.ton $p0, $p0
- .endm
-
- .section ".text.init", #alloc, #execinstr
- .global exception_vector
-exception_vector:
-.rept 6
- EXCEPTION_VECTOR
-.endr
- EXCEPTION_VECTOR_DEBUG
-.rept 121
- EXCEPTION_VECTOR
-.endr
- .align 4
- .global exception_vector_end
-exception_vector_end:
diff --git a/arch/nds32/kernel/ex-exit.S b/arch/nds32/kernel/ex-exit.S
deleted file mode 100644
index b30699911b81..000000000000
--- a/arch/nds32/kernel/ex-exit.S
+++ /dev/null
@@ -1,193 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/unistd.h>
-#include <asm/assembler.h>
-#include <asm/nds32.h>
-#include <asm/asm-offsets.h>
-#include <asm/thread_info.h>
-#include <asm/current.h>
-#include <asm/fpu.h>
-
-
-
-#ifdef CONFIG_HWZOL
- .macro pop_zol
- mtusr $r14, $LB
- mtusr $r15, $LE
- mtusr $r16, $LC
- .endm
-#endif
-
- .macro restore_user_regs_first
- setgie.d
- isb
-#if defined(CONFIG_FPU)
- addi $sp, $sp, OSP_OFFSET
- lmw.adm $r12, [$sp], $r25, #0x0
- sethi $p0, hi20(has_fpu)
- lbsi $p0, [$p0+lo12(has_fpu)]
- beqz $p0, 2f
- mtsr $r25, $FUCOP_CTL
-2:
-#else
- addi $sp, $sp, FUCOP_CTL_OFFSET
- lmw.adm $r12, [$sp], $r24, #0x0
-#endif
- mtsr $r12, $SP_USR
- mtsr $r13, $IPC
-#ifdef CONFIG_HWZOL
- pop_zol
-#endif
- mtsr $r19, $PSW
- mtsr $r20, $IPSW
- mtsr $r21, $P_IPSW
- mtsr $r22, $P_IPC
- mtsr $r23, $P_P0
- mtsr $r24, $P_P1
- lmw.adm $sp, [$sp], $sp, #0xe
- .endm
-
- .macro restore_user_regs_last
- pop $p0
- cmovn $sp, $p0, $p0
-
- iret
- nop
-
- .endm
-
- .macro restore_user_regs
- restore_user_regs_first
- lmw.adm $r0, [$sp], $r25, #0x0
- addi $sp, $sp, OSP_OFFSET
- restore_user_regs_last
- .endm
-
- .macro fast_restore_user_regs
- restore_user_regs_first
- lmw.adm $r1, [$sp], $r25, #0x0
- addi $sp, $sp, OSP_OFFSET-4
- restore_user_regs_last
- .endm
-
-#ifdef CONFIG_PREEMPTION
- .macro preempt_stop
- .endm
-#else
- .macro preempt_stop
- setgie.d
- isb
- .endm
-#define resume_kernel no_work_pending
-#endif
-
-ENTRY(ret_from_exception)
- preempt_stop
-ENTRY(ret_from_intr)
-
-/*
- * judge Kernel or user mode
- *
- */
- lwi $p0, [$sp+(#IPSW_OFFSET)] ! Check if in nested interrupt
- andi $p0, $p0, #PSW_mskINTL
- bnez $p0, resume_kernel ! done with iret
- j resume_userspace
-
-
-/*
- * This is the fast syscall return path. We do as little as
- * possible here, and this includes saving $r0 back into the SVC
- * stack.
- * fixed: tsk - $r25, syscall # - $r7, syscall table pointer - $r8
- */
-ENTRY(ret_fast_syscall)
- gie_disable
- lwi $r1, [tsk+#TSK_TI_FLAGS]
- andi $p1, $r1, #_TIF_WORK_MASK
- bnez $p1, fast_work_pending
- fast_restore_user_regs ! iret
-
-/*
- * Ok, we need to do extra processing,
- * enter the slow path returning from syscall, while pending work.
- */
-fast_work_pending:
- swi $r0, [$sp+(#R0_OFFSET)] ! what is different from ret_from_exception
-work_pending:
- andi $p1, $r1, #_TIF_NEED_RESCHED
- bnez $p1, work_resched
-
- andi $p1, $r1, #_TIF_SIGPENDING|#_TIF_NOTIFY_RESUME|#_TIF_NOTIFY_SIGNAL
- beqz $p1, no_work_pending
-
- move $r0, $sp ! 'regs'
- gie_enable
- bal do_notify_resume
- b ret_slow_syscall
-work_resched:
- bal schedule ! path, return to user mode
-
-/*
- * "slow" syscall return path.
- */
-ENTRY(resume_userspace)
-ENTRY(ret_slow_syscall)
- gie_disable
- lwi $p0, [$sp+(#IPSW_OFFSET)] ! Check if in nested interrupt
- andi $p0, $p0, #PSW_mskINTL
- bnez $p0, no_work_pending ! done with iret
- lwi $r1, [tsk+#TSK_TI_FLAGS]
- andi $p1, $r1, #_TIF_WORK_MASK
- bnez $p1, work_pending ! handle work_resched, sig_pend
-
-no_work_pending:
-#ifdef CONFIG_TRACE_IRQFLAGS
- lwi $p0, [$sp+(#IPSW_OFFSET)]
- andi $p0, $p0, #0x1
- la $r10, __trace_hardirqs_off
- la $r9, __trace_hardirqs_on
- cmovz $r9, $p0, $r10
- jral $r9
-#endif
- restore_user_regs ! return from iret
-
-
-/*
- * preemptive kernel
- */
-#ifdef CONFIG_PREEMPTION
-resume_kernel:
- gie_disable
- lwi $t0, [tsk+#TSK_TI_PREEMPT]
- bnez $t0, no_work_pending
-
- lwi $t0, [tsk+#TSK_TI_FLAGS]
- andi $p1, $t0, #_TIF_NEED_RESCHED
- beqz $p1, no_work_pending
-
- lwi $t0, [$sp+(#IPSW_OFFSET)] ! Interrupts off?
- andi $t0, $t0, #1
- beqz $t0, no_work_pending
-
- jal preempt_schedule_irq
- b no_work_pending
-#endif
-
-/*
- * This is how we return from a fork.
- */
-ENTRY(ret_from_fork)
- bal schedule_tail
- beqz $r6, 1f ! r6 stores fn for kernel thread
- move $r0, $r7 ! prepare kernel thread arg
- jral $r6
-1:
- lwi $r1, [tsk+#TSK_TI_FLAGS] ! check for syscall tracing
- andi $p1, $r1, #_TIF_WORK_SYSCALL_LEAVE ! are we tracing syscalls?
- beqz $p1, ret_slow_syscall
- move $r0, $sp
- bal syscall_trace_leave
- b ret_slow_syscall
diff --git a/arch/nds32/kernel/ex-scall.S b/arch/nds32/kernel/ex-scall.S
deleted file mode 100644
index 270050f1b7b1..000000000000
--- a/arch/nds32/kernel/ex-scall.S
+++ /dev/null
@@ -1,100 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/unistd.h>
-#include <asm/assembler.h>
-#include <asm/nds32.h>
-#include <asm/asm-offsets.h>
-#include <asm/thread_info.h>
-#include <asm/current.h>
-
-/*
- * $r0 = previous task_struct,
- * $r1 = next task_struct,
- * previous and next are guaranteed not to be the same.
- */
-
-ENTRY(__switch_to)
-
- la $p0, __entry_task
- sw $r1, [$p0]
- addi $p1, $r0, #THREAD_CPU_CONTEXT
- smw.bi $r6, [$p1], $r14, #0xb ! push r6~r14, fp, lp, sp
- move $r25, $r1
-#if defined(CONFIG_FPU)
- call _switch_fpu
-#endif
- addi $r1, $r25, #THREAD_CPU_CONTEXT
- lmw.bi $r6, [$r1], $r14, #0xb ! pop r6~r14, fp, lp, sp
- ret
-
-
-#define tbl $r8
-
-/*
- * $r7 will be writen as syscall nr
- */
- .macro get_scno
- lwi $r7, [$sp + R15_OFFSET]
- swi $r7, [$sp + SYSCALLNO_OFFSET]
- .endm
-
- .macro updateipc
- addi $r17, $r13, #4 ! $r13 is $IPC
- swi $r17, [$sp + IPC_OFFSET]
- .endm
-
-ENTRY(eh_syscall)
- updateipc
-
- get_scno
- gie_enable
-
- lwi $p0, [tsk+#TSK_TI_FLAGS] ! check for syscall tracing
-
- andi $p1, $p0, #_TIF_WORK_SYSCALL_ENTRY ! are we tracing syscalls?
- bnez $p1, __sys_trace
-
- la $lp, ret_fast_syscall ! return address
-jmp_systbl:
- addi $p1, $r7, #-__NR_syscalls ! syscall number of syscall instruction is guarded by addembler
- bgez $p1, _SCNO_EXCEED ! call sys_* routine
- la tbl, sys_call_table ! load syscall table pointer
- slli $p1, $r7, #2
- add $p1, tbl, $p1
- lwi $p1, [$p1]
- jr $p1 ! no return
-
-_SCNO_EXCEED:
- ori $r0, $r7, #0
- ori $r1, $sp, #0
- b bad_syscall
-
-/*
- * This is the really slow path. We're going to be doing
- * context switches, and waiting for our parent to respond.
- */
-__sys_trace:
- move $r0, $sp
- bal syscall_trace_enter
- move $r7, $r0
- la $lp, __sys_trace_return ! return address
-
- addi $p1, $r7, #1
- beqz $p1, ret_slow_syscall ! fatal signal is pending
-
- addi $p1, $sp, #R0_OFFSET ! pointer to regs
- lmw.bi $r0, [$p1], $r5 ! have to reload $r0 - $r5
- b jmp_systbl
-
-__sys_trace_return:
- swi $r0, [$sp+#R0_OFFSET] ! T: save returned $r0
- move $r0, $sp ! set pt_regs for syscall_trace_leave
- bal syscall_trace_leave
- b ret_slow_syscall
-
-ENTRY(sys_rt_sigreturn_wrapper)
- addi $r0, $sp, #0
- b sys_rt_sigreturn
-ENDPROC(sys_rt_sigreturn_wrapper)
diff --git a/arch/nds32/kernel/fpu.c b/arch/nds32/kernel/fpu.c
deleted file mode 100644
index 701c09a668de..000000000000
--- a/arch/nds32/kernel/fpu.c
+++ /dev/null
@@ -1,266 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-
-#include <linux/sched.h>
-#include <linux/signal.h>
-#include <linux/sched/signal.h>
-#include <asm/processor.h>
-#include <asm/user.h>
-#include <asm/io.h>
-#include <asm/bitfield.h>
-#include <asm/fpu.h>
-
-const struct fpu_struct init_fpuregs = {
- .fd_regs = {[0 ... 31] = sNAN64},
- .fpcsr = FPCSR_INIT,
-#if IS_ENABLED(CONFIG_SUPPORT_DENORMAL_ARITHMETIC)
- .UDF_IEX_trap = 0
-#endif
-};
-
-void save_fpu(struct task_struct *tsk)
-{
- unsigned int fpcfg, fpcsr;
-
- enable_fpu();
- fpcfg = ((__nds32__fmfcfg() & FPCFG_mskFREG) >> FPCFG_offFREG);
- switch (fpcfg) {
- case SP32_DP32_reg:
- asm volatile ("fsdi $fd31, [%0+0xf8]\n\t"
- "fsdi $fd30, [%0+0xf0]\n\t"
- "fsdi $fd29, [%0+0xe8]\n\t"
- "fsdi $fd28, [%0+0xe0]\n\t"
- "fsdi $fd27, [%0+0xd8]\n\t"
- "fsdi $fd26, [%0+0xd0]\n\t"
- "fsdi $fd25, [%0+0xc8]\n\t"
- "fsdi $fd24, [%0+0xc0]\n\t"
- "fsdi $fd23, [%0+0xb8]\n\t"
- "fsdi $fd22, [%0+0xb0]\n\t"
- "fsdi $fd21, [%0+0xa8]\n\t"
- "fsdi $fd20, [%0+0xa0]\n\t"
- "fsdi $fd19, [%0+0x98]\n\t"
- "fsdi $fd18, [%0+0x90]\n\t"
- "fsdi $fd17, [%0+0x88]\n\t"
- "fsdi $fd16, [%0+0x80]\n\t"
- : /* no output */
- : "r" (&tsk->thread.fpu)
- : "memory");
- fallthrough;
- case SP32_DP16_reg:
- asm volatile ("fsdi $fd15, [%0+0x78]\n\t"
- "fsdi $fd14, [%0+0x70]\n\t"
- "fsdi $fd13, [%0+0x68]\n\t"
- "fsdi $fd12, [%0+0x60]\n\t"
- "fsdi $fd11, [%0+0x58]\n\t"
- "fsdi $fd10, [%0+0x50]\n\t"
- "fsdi $fd9, [%0+0x48]\n\t"
- "fsdi $fd8, [%0+0x40]\n\t"
- : /* no output */
- : "r" (&tsk->thread.fpu)
- : "memory");
- fallthrough;
- case SP16_DP8_reg:
- asm volatile ("fsdi $fd7, [%0+0x38]\n\t"
- "fsdi $fd6, [%0+0x30]\n\t"
- "fsdi $fd5, [%0+0x28]\n\t"
- "fsdi $fd4, [%0+0x20]\n\t"
- : /* no output */
- : "r" (&tsk->thread.fpu)
- : "memory");
- fallthrough;
- case SP8_DP4_reg:
- asm volatile ("fsdi $fd3, [%1+0x18]\n\t"
- "fsdi $fd2, [%1+0x10]\n\t"
- "fsdi $fd1, [%1+0x8]\n\t"
- "fsdi $fd0, [%1+0x0]\n\t"
- "fmfcsr %0\n\t"
- "swi %0, [%1+0x100]\n\t"
- : "=&r" (fpcsr)
- : "r"(&tsk->thread.fpu)
- : "memory");
- }
- disable_fpu();
-}
-
-void load_fpu(const struct fpu_struct *fpregs)
-{
- unsigned int fpcfg, fpcsr;
-
- enable_fpu();
- fpcfg = ((__nds32__fmfcfg() & FPCFG_mskFREG) >> FPCFG_offFREG);
- switch (fpcfg) {
- case SP32_DP32_reg:
- asm volatile ("fldi $fd31, [%0+0xf8]\n\t"
- "fldi $fd30, [%0+0xf0]\n\t"
- "fldi $fd29, [%0+0xe8]\n\t"
- "fldi $fd28, [%0+0xe0]\n\t"
- "fldi $fd27, [%0+0xd8]\n\t"
- "fldi $fd26, [%0+0xd0]\n\t"
- "fldi $fd25, [%0+0xc8]\n\t"
- "fldi $fd24, [%0+0xc0]\n\t"
- "fldi $fd23, [%0+0xb8]\n\t"
- "fldi $fd22, [%0+0xb0]\n\t"
- "fldi $fd21, [%0+0xa8]\n\t"
- "fldi $fd20, [%0+0xa0]\n\t"
- "fldi $fd19, [%0+0x98]\n\t"
- "fldi $fd18, [%0+0x90]\n\t"
- "fldi $fd17, [%0+0x88]\n\t"
- "fldi $fd16, [%0+0x80]\n\t"
- : /* no output */
- : "r" (fpregs));
- fallthrough;
- case SP32_DP16_reg:
- asm volatile ("fldi $fd15, [%0+0x78]\n\t"
- "fldi $fd14, [%0+0x70]\n\t"
- "fldi $fd13, [%0+0x68]\n\t"
- "fldi $fd12, [%0+0x60]\n\t"
- "fldi $fd11, [%0+0x58]\n\t"
- "fldi $fd10, [%0+0x50]\n\t"
- "fldi $fd9, [%0+0x48]\n\t"
- "fldi $fd8, [%0+0x40]\n\t"
- : /* no output */
- : "r" (fpregs));
- fallthrough;
- case SP16_DP8_reg:
- asm volatile ("fldi $fd7, [%0+0x38]\n\t"
- "fldi $fd6, [%0+0x30]\n\t"
- "fldi $fd5, [%0+0x28]\n\t"
- "fldi $fd4, [%0+0x20]\n\t"
- : /* no output */
- : "r" (fpregs));
- fallthrough;
- case SP8_DP4_reg:
- asm volatile ("fldi $fd3, [%1+0x18]\n\t"
- "fldi $fd2, [%1+0x10]\n\t"
- "fldi $fd1, [%1+0x8]\n\t"
- "fldi $fd0, [%1+0x0]\n\t"
- "lwi %0, [%1+0x100]\n\t"
- "fmtcsr %0\n\t":"=&r" (fpcsr)
- : "r"(fpregs));
- }
- disable_fpu();
-}
-void store_fpu_for_suspend(void)
-{
-#ifdef CONFIG_LAZY_FPU
- if (last_task_used_math != NULL)
- save_fpu(last_task_used_math);
- last_task_used_math = NULL;
-#else
- if (!used_math())
- return;
- unlazy_fpu(current);
-#endif
- clear_fpu(task_pt_regs(current));
-}
-inline void do_fpu_context_switch(struct pt_regs *regs)
-{
- /* Enable to use FPU. */
-
- if (!user_mode(regs)) {
- pr_err("BUG: FPU is used in kernel mode.\n");
- BUG();
- return;
- }
-
- enable_ptreg_fpu(regs);
-#ifdef CONFIG_LAZY_FPU //Lazy FPU is used
- if (last_task_used_math == current)
- return;
- if (last_task_used_math != NULL)
- /* Other processes fpu state, save away */
- save_fpu(last_task_used_math);
- last_task_used_math = current;
-#endif
- if (used_math()) {
- load_fpu(¤t->thread.fpu);
- } else {
- /* First time FPU user. */
- load_fpu(&init_fpuregs);
-#if IS_ENABLED(CONFIG_SUPPORT_DENORMAL_ARITHMETIC)
- current->thread.fpu.UDF_IEX_trap = init_fpuregs.UDF_IEX_trap;
-#endif
- set_used_math();
- }
-
-}
-
-inline void fill_sigfpe_signo(unsigned int fpcsr, int *signo)
-{
- if (fpcsr & FPCSR_mskOVFT)
- *signo = FPE_FLTOVF;
-#ifndef CONFIG_SUPPORT_DENORMAL_ARITHMETIC
- else if (fpcsr & FPCSR_mskUDFT)
- *signo = FPE_FLTUND;
-#endif
- else if (fpcsr & FPCSR_mskIVOT)
- *signo = FPE_FLTINV;
- else if (fpcsr & FPCSR_mskDBZT)
- *signo = FPE_FLTDIV;
- else if (fpcsr & FPCSR_mskIEXT)
- *signo = FPE_FLTRES;
-}
-
-inline void handle_fpu_exception(struct pt_regs *regs)
-{
- unsigned int fpcsr;
- int si_code = 0, si_signo = SIGFPE;
-#if IS_ENABLED(CONFIG_SUPPORT_DENORMAL_ARITHMETIC)
- unsigned long redo_except = FPCSR_mskDNIT|FPCSR_mskUDFT|FPCSR_mskIEXT;
-#else
- unsigned long redo_except = FPCSR_mskDNIT;
-#endif
-
- lose_fpu();
- fpcsr = current->thread.fpu.fpcsr;
-
- if (fpcsr & redo_except) {
- si_signo = do_fpuemu(regs, ¤t->thread.fpu);
- fpcsr = current->thread.fpu.fpcsr;
- if (!si_signo) {
- current->thread.fpu.fpcsr &= ~(redo_except);
- goto done;
- }
- } else if (fpcsr & FPCSR_mskRIT) {
- if (!user_mode(regs))
- make_task_dead(SIGILL);
- si_signo = SIGILL;
- }
-
- switch (si_signo) {
- case SIGFPE:
- fill_sigfpe_signo(fpcsr, &si_code);
- break;
- case SIGILL:
- show_regs(regs);
- si_code = ILL_COPROC;
- break;
- case SIGBUS:
- si_code = BUS_ADRERR;
- break;
- default:
- break;
- }
-
- force_sig_fault(si_signo, si_code,
- (void __user *)instruction_pointer(regs));
-done:
- own_fpu();
-}
-
-bool do_fpu_exception(unsigned int subtype, struct pt_regs *regs)
-{
- int done = true;
- /* Coprocessor disabled exception */
- if (subtype == FPU_DISABLE_EXCEPTION) {
- preempt_disable();
- do_fpu_context_switch(regs);
- preempt_enable();
- }
- /* Coprocessor exception such as underflow and overflow */
- else if (subtype == FPU_EXCEPTION)
- handle_fpu_exception(regs);
- else
- done = false;
- return done;
-}
diff --git a/arch/nds32/kernel/ftrace.c b/arch/nds32/kernel/ftrace.c
deleted file mode 100644
index 711bc8cd186d..000000000000
--- a/arch/nds32/kernel/ftrace.c
+++ /dev/null
@@ -1,278 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-
-#include <linux/ftrace.h>
-#include <linux/uaccess.h>
-#include <asm/cacheflush.h>
-
-#ifndef CONFIG_DYNAMIC_FTRACE
-extern void (*ftrace_trace_function)(unsigned long, unsigned long,
- struct ftrace_ops*, struct ftrace_regs*);
-extern void ftrace_graph_caller(void);
-
-noinline void __naked ftrace_stub(unsigned long ip, unsigned long parent_ip,
- struct ftrace_ops *op, struct ftrace_regs *fregs)
-{
- __asm__ (""); /* avoid to optimize as pure function */
-}
-
-noinline void _mcount(unsigned long parent_ip)
-{
- /* save all state by the compiler prologue */
-
- unsigned long ip = (unsigned long)__builtin_return_address(0);
-
- if (ftrace_trace_function != ftrace_stub)
- ftrace_trace_function(ip - MCOUNT_INSN_SIZE, parent_ip,
- NULL, NULL);
-
-#ifdef CONFIG_FUNCTION_GRAPH_TRACER
- if (ftrace_graph_return != (trace_func_graph_ret_t)ftrace_stub
- || ftrace_graph_entry != ftrace_graph_entry_stub)
- ftrace_graph_caller();
-#endif
-
- /* restore all state by the compiler epilogue */
-}
-EXPORT_SYMBOL(_mcount);
-
-#else /* CONFIG_DYNAMIC_FTRACE */
-
-noinline void __naked ftrace_stub(unsigned long ip, unsigned long parent_ip,
- struct ftrace_ops *op, struct ftrace_regs *fregs)
-{
- __asm__ (""); /* avoid to optimize as pure function */
-}
-
-noinline void __naked _mcount(unsigned long parent_ip)
-{
- __asm__ (""); /* avoid to optimize as pure function */
-}
-EXPORT_SYMBOL(_mcount);
-
-#define XSTR(s) STR(s)
-#define STR(s) #s
-void _ftrace_caller(unsigned long parent_ip)
-{
- /* save all state needed by the compiler prologue */
-
- /*
- * prepare arguments for real tracing function
- * first arg : __builtin_return_address(0) - MCOUNT_INSN_SIZE
- * second arg : parent_ip
- */
- __asm__ __volatile__ (
- "move $r1, %0 \n\t"
- "addi $r0, %1, #-" XSTR(MCOUNT_INSN_SIZE) "\n\t"
- :
- : "r" (parent_ip), "r" (__builtin_return_address(0)));
-
- /* a placeholder for the call to a real tracing function */
- __asm__ __volatile__ (
- "ftrace_call: \n\t"
- "nop \n\t"
- "nop \n\t"
- "nop \n\t");
-
-#ifdef CONFIG_FUNCTION_GRAPH_TRACER
- /* a placeholder for the call to ftrace_graph_caller */
- __asm__ __volatile__ (
- "ftrace_graph_call: \n\t"
- "nop \n\t"
- "nop \n\t"
- "nop \n\t");
-#endif
- /* restore all state needed by the compiler epilogue */
-}
-
-static unsigned long gen_sethi_insn(unsigned long addr)
-{
- unsigned long opcode = 0x46000000;
- unsigned long imm = addr >> 12;
- unsigned long rt_num = 0xf << 20;
-
- return ENDIAN_CONVERT(opcode | rt_num | imm);
-}
-
-static unsigned long gen_ori_insn(unsigned long addr)
-{
- unsigned long opcode = 0x58000000;
- unsigned long imm = addr & 0x0000fff;
- unsigned long rt_num = 0xf << 20;
- unsigned long ra_num = 0xf << 15;
-
- return ENDIAN_CONVERT(opcode | rt_num | ra_num | imm);
-}
-
-static unsigned long gen_jral_insn(unsigned long addr)
-{
- unsigned long opcode = 0x4a000001;
- unsigned long rt_num = 0x1e << 20;
- unsigned long rb_num = 0xf << 10;
-
- return ENDIAN_CONVERT(opcode | rt_num | rb_num);
-}
-
-static void ftrace_gen_call_insn(unsigned long *call_insns,
- unsigned long addr)
-{
- call_insns[0] = gen_sethi_insn(addr); /* sethi $r15, imm20u */
- call_insns[1] = gen_ori_insn(addr); /* ori $r15, $r15, imm15u */
- call_insns[2] = gen_jral_insn(addr); /* jral $lp, $r15 */
-}
-
-static int __ftrace_modify_code(unsigned long pc, unsigned long *old_insn,
- unsigned long *new_insn, bool validate)
-{
- unsigned long orig_insn[3];
-
- if (validate) {
- if (copy_from_kernel_nofault(orig_insn, (void *)pc,
- MCOUNT_INSN_SIZE))
- return -EFAULT;
- if (memcmp(orig_insn, old_insn, MCOUNT_INSN_SIZE))
- return -EINVAL;
- }
-
- if (copy_to_kernel_nofault((void *)pc, new_insn, MCOUNT_INSN_SIZE))
- return -EPERM;
-
- return 0;
-}
-
-static int ftrace_modify_code(unsigned long pc, unsigned long *old_insn,
- unsigned long *new_insn, bool validate)
-{
- int ret;
-
- ret = __ftrace_modify_code(pc, old_insn, new_insn, validate);
- if (ret)
- return ret;
-
- flush_icache_range(pc, pc + MCOUNT_INSN_SIZE);
-
- return ret;
-}
-
-int ftrace_update_ftrace_func(ftrace_func_t func)
-{
- unsigned long pc = (unsigned long)&ftrace_call;
- unsigned long old_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
- unsigned long new_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
-
- if (func != ftrace_stub)
- ftrace_gen_call_insn(new_insn, (unsigned long)func);
-
- return ftrace_modify_code(pc, old_insn, new_insn, false);
-}
-
-int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
-{
- unsigned long pc = rec->ip;
- unsigned long nop_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
- unsigned long call_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
-
- ftrace_gen_call_insn(call_insn, addr);
-
- return ftrace_modify_code(pc, nop_insn, call_insn, true);
-}
-
-int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec,
- unsigned long addr)
-{
- unsigned long pc = rec->ip;
- unsigned long nop_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
- unsigned long call_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
-
- ftrace_gen_call_insn(call_insn, addr);
-
- return ftrace_modify_code(pc, call_insn, nop_insn, true);
-}
-#endif /* CONFIG_DYNAMIC_FTRACE */
-
-#ifdef CONFIG_FUNCTION_GRAPH_TRACER
-void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr,
- unsigned long frame_pointer)
-{
- unsigned long return_hooker = (unsigned long)&return_to_handler;
- unsigned long old;
-
- if (unlikely(atomic_read(¤t->tracing_graph_pause)))
- return;
-
- old = *parent;
-
- if (!function_graph_enter(old, self_addr, frame_pointer, NULL))
- *parent = return_hooker;
-}
-
-noinline void ftrace_graph_caller(void)
-{
- unsigned long *parent_ip =
- (unsigned long *)(__builtin_frame_address(2) - 4);
-
- unsigned long selfpc =
- (unsigned long)(__builtin_return_address(1) - MCOUNT_INSN_SIZE);
-
- unsigned long frame_pointer =
- (unsigned long)__builtin_frame_address(3);
-
- prepare_ftrace_return(parent_ip, selfpc, frame_pointer);
-}
-
-extern unsigned long ftrace_return_to_handler(unsigned long frame_pointer);
-void __naked return_to_handler(void)
-{
- __asm__ __volatile__ (
- /* save state needed by the ABI */
- "smw.adm $r0,[$sp],$r1,#0x0 \n\t"
-
- /* get original return address */
- "move $r0, $fp \n\t"
- "bal ftrace_return_to_handler\n\t"
- "move $lp, $r0 \n\t"
-
- /* restore state needed by the ABI */
- "lmw.bim $r0,[$sp],$r1,#0x0 \n\t");
-}
-
-#ifdef CONFIG_DYNAMIC_FTRACE
-extern unsigned long ftrace_graph_call;
-
-static int ftrace_modify_graph_caller(bool enable)
-{
- unsigned long pc = (unsigned long)&ftrace_graph_call;
- unsigned long nop_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
- unsigned long call_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
-
- ftrace_gen_call_insn(call_insn, (unsigned long)ftrace_graph_caller);
-
- if (enable)
- return ftrace_modify_code(pc, nop_insn, call_insn, true);
- else
- return ftrace_modify_code(pc, call_insn, nop_insn, true);
-}
-
-int ftrace_enable_ftrace_graph_caller(void)
-{
- return ftrace_modify_graph_caller(true);
-}
-
-int ftrace_disable_ftrace_graph_caller(void)
-{
- return ftrace_modify_graph_caller(false);
-}
-#endif /* CONFIG_DYNAMIC_FTRACE */
-
-#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
-
-
-#ifdef CONFIG_TRACE_IRQFLAGS
-noinline void __trace_hardirqs_off(void)
-{
- trace_hardirqs_off();
-}
-noinline void __trace_hardirqs_on(void)
-{
- trace_hardirqs_on();
-}
-#endif /* CONFIG_TRACE_IRQFLAGS */
diff --git a/arch/nds32/kernel/head.S b/arch/nds32/kernel/head.S
deleted file mode 100644
index 7347f00451a9..000000000000
--- a/arch/nds32/kernel/head.S
+++ /dev/null
@@ -1,197 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <linux/init.h>
-#include <linux/pgtable.h>
-#include <asm/ptrace.h>
-#include <asm/asm-offsets.h>
-#include <asm/page.h>
-#include <linux/sizes.h>
-#include <asm/thread_info.h>
-
-#ifdef CONFIG_CPU_BIG_ENDIAN
-#define OF_DT_MAGIC 0xd00dfeed
-#else
-#define OF_DT_MAGIC 0xedfe0dd0
-#endif
-
- .globl swapper_pg_dir
- .equ swapper_pg_dir, TEXTADDR - 0x4000
-
-/*
- * Kernel startup entry point.
- */
- .section ".head.text", "ax"
- .type _stext, %function
-ENTRY(_stext)
- setgie.d ! Disable interrupt
- isb
-/*
- * Disable I/D-cache and enable it at a proper time
- */
- mfsr $r0, $mr8
- li $r1, #~(CACHE_CTL_mskIC_EN|CACHE_CTL_mskDC_EN)
- and $r0, $r0, $r1
- mtsr $r0, $mr8
-
-/*
- * Process device tree blob
- */
- andi $r0,$r2,#0x3
- li $r10, 0
- bne $r0, $r10, _nodtb
- lwi $r0, [$r2]
- li $r1, OF_DT_MAGIC
- bne $r0, $r1, _nodtb
- move $r10, $r2
-_nodtb:
-
-/*
- * Create a temporary mapping area for booting, before start_kernel
- */
- sethi $r4, hi20(swapper_pg_dir)
- li $p0, (PAGE_OFFSET - PHYS_OFFSET)
- sub $r4, $r4, $p0
- tlbop FlushAll ! invalidate TLB\n"
- isb
- mtsr $r4, $L1_PPTB ! load page table pointer\n"
-
-#ifdef CONFIG_CPU_DCACHE_DISABLE
- #define MMU_CTL_NTCC MMU_CTL_CACHEABLE_NON
-#else
- #ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
- #define MMU_CTL_NTCC MMU_CTL_CACHEABLE_WT
- #else
- #define MMU_CTL_NTCC MMU_CTL_CACHEABLE_WB
- #endif
-#endif
-
-/* set NTC cacheability, mutliple page size in use */
- mfsr $r3, $MMU_CTL
-#if CONFIG_MEMORY_START >= 0xc0000000
- ori $r3, $r3, (MMU_CTL_NTCC << MMU_CTL_offNTC3)
-#elif CONFIG_MEMORY_START >= 0x80000000
- ori $r3, $r3, (MMU_CTL_NTCC << MMU_CTL_offNTC2)
-#elif CONFIG_MEMORY_START >= 0x40000000
- ori $r3, $r3, (MMU_CTL_NTCC << MMU_CTL_offNTC1)
-#else
- ori $r3, $r3, (MMU_CTL_NTCC << MMU_CTL_offNTC0)
-#endif
-
-#ifdef CONFIG_ANDES_PAGE_SIZE_4KB
- ori $r3, $r3, #(MMU_CTL_mskMPZIU)
-#else
- ori $r3, $r3, #(MMU_CTL_mskMPZIU|MMU_CTL_D8KB)
-#endif
-#ifdef CONFIG_HW_SUPPORT_UNALIGNMENT_ACCESS
- li $r0, #MMU_CTL_UNA
- or $r3, $r3, $r0
-#endif
- mtsr $r3, $MMU_CTL
- isb
-
-/* set page size and size of kernel image */
- mfsr $r0, $MMU_CFG
- srli $r3, $r0, MMU_CFG_offfEPSZ
- zeb $r3, $r3
- bnez $r3, _extra_page_size_support
-#ifdef CONFIG_ANDES_PAGE_SIZE_4KB
- li $r5, #SZ_4K ! Use 4KB page size
-#else
- li $r5, #SZ_8K ! Use 8KB page size
- li $r3, #1
-#endif
- mtsr $r3, $TLB_MISC
- b _image_size_check
-
-_extra_page_size_support: ! Use epzs pages size
- clz $r6, $r3
- subri $r2, $r6, #31
- li $r3, #1
- sll $r3, $r3, $r2
- /* MMU_CFG.EPSZ value -> meaning */
- mul $r5, $r3, $r3
- slli $r5, $r5, #14
- /* MMU_CFG.EPSZ -> TLB_MISC.ACC_PSZ */
- addi $r3, $r2, #0x2
- mtsr $r3, $TLB_MISC
-
-_image_size_check:
- /* calculate the image maximum size accepted by TLB config */
- andi $r6, $r0, MMU_CFG_mskTBW
- andi $r0, $r0, MMU_CFG_mskTBS
- srli $r6, $r6, MMU_CFG_offTBW
- srli $r0, $r0, MMU_CFG_offTBS
- addi $r6, $r6, #0x1 ! MMU_CFG.TBW value -> meaning
- addi $r0, $r0, #0x2 ! MMU_CFG.TBS value -> meaning
- sll $r0, $r6, $r0 ! entries = k-way * n-set
- mul $r6, $r0, $r5 ! max size = entries * page size
- /* check kernel image size */
- la $r3, (_end - PAGE_OFFSET)
- bgt $r3, $r6, __error
-
- li $r2, #(PHYS_OFFSET + TLB_DATA_kernel_text_attr)
- li $r3, PAGE_OFFSET
- add $r6, $r6, $r3
-
-_tlb:
- mtsr $r3, $TLB_VPN
- dsb
- tlbop $r2, RWR
- isb
- add $r3, $r3, $r5
- add $r2, $r2, $r5
- bgt $r6, $r3, _tlb
- mfsr $r3, $TLB_MISC ! setup access page size
- li $r2, #~0xf
- and $r3, $r3, $r2
-#ifdef CONFIG_ANDES_PAGE_SIZE_8KB
- ori $r3, $r3, #0x1
-#endif
- mtsr $r3, $TLB_MISC
-
- mfsr $r0, $MISC_CTL ! Enable BTB, RTP, shadow sp, and HW_PRE
- ori $r0, $r0, #MISC_init
- mtsr $r0, $MISC_CTL
-
- mfsr $p1, $PSW
- li $r15, #~PSW_clr ! clear WBNA|DME|IME|DT|IT|POM|INTL|GIE
- and $p1, $p1, $r15
- ori $p1, $p1, #PSW_init
- mtsr $p1, $IPSW ! when iret, it will automatically enable MMU
- la $lp, __mmap_switched
- mtsr $lp, $IPC
- iret
- nop
-
- .type __switch_data, %object
-__switch_data:
- .long __bss_start ! $r6
- .long _end ! $r7
- .long __atags_pointer ! $atag_pointer
- .long init_task ! $r9, move to $r25
- .long init_thread_union + THREAD_SIZE ! $sp
-
-
-/*
- * The following fragment of code is executed with the MMU on in MMU mode,
- * and uses absolute addresses; this is not position independent.
- */
- .align
- .type __mmap_switched, %function
-__mmap_switched:
- la $r3, __switch_data
- lmw.bim $r6, [$r3], $r9, #0b0001
- move $r25, $r9
- move $fp, #0 ! Clear BSS (and zero $fp)
- beq $r7, $r6, _RRT
-1: swi.bi $fp, [$r6], #4
- bne $r7, $r6, 1b
- swi $r10, [$r8]
-
-_RRT:
- b start_kernel
-
-__error:
- b __error
diff --git a/arch/nds32/kernel/irq.c b/arch/nds32/kernel/irq.c
deleted file mode 100644
index 6ff5a672be27..000000000000
--- a/arch/nds32/kernel/irq.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/irqchip.h>
-
-void __init init_IRQ(void)
-{
- irqchip_init();
-}
diff --git a/arch/nds32/kernel/module.c b/arch/nds32/kernel/module.c
deleted file mode 100644
index 3897fd14a21d..000000000000
--- a/arch/nds32/kernel/module.c
+++ /dev/null
@@ -1,278 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/module.h>
-#include <linux/elf.h>
-#include <linux/vmalloc.h>
-#include <linux/moduleloader.h>
-#include <linux/pgtable.h>
-
-void *module_alloc(unsigned long size)
-{
- return __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
- GFP_KERNEL, PAGE_KERNEL, 0, NUMA_NO_NODE,
- __builtin_return_address(0));
-}
-
-void module_free(struct module *module, void *region)
-{
- vfree(region);
-}
-
-int module_frob_arch_sections(Elf_Ehdr * hdr,
- Elf_Shdr * sechdrs,
- char *secstrings, struct module *mod)
-{
- return 0;
-}
-
-void do_reloc16(unsigned int val, unsigned int *loc, unsigned int val_mask,
- unsigned int val_shift, unsigned int loc_mask,
- unsigned int partial_in_place, unsigned int swap)
-{
- unsigned int tmp = 0, tmp2 = 0;
-
- __asm__ __volatile__("\tlhi.bi\t%0, [%2], 0\n"
- "\tbeqz\t%3, 1f\n"
- "\twsbh\t%0, %1\n"
- "1:\n":"=r"(tmp):"0"(tmp), "r"(loc), "r"(swap)
- );
-
- tmp2 = tmp & loc_mask;
- if (partial_in_place) {
- tmp &= (~loc_mask);
- tmp =
- tmp2 | ((tmp + ((val & val_mask) >> val_shift)) & val_mask);
- } else {
- tmp = tmp2 | ((val & val_mask) >> val_shift);
- }
-
- __asm__ __volatile__("\tbeqz\t%3, 2f\n"
- "\twsbh\t%0, %1\n"
- "2:\n"
- "\tshi.bi\t%0, [%2], 0\n":"=r"(tmp):"0"(tmp),
- "r"(loc), "r"(swap)
- );
-}
-
-void do_reloc32(unsigned int val, unsigned int *loc, unsigned int val_mask,
- unsigned int val_shift, unsigned int loc_mask,
- unsigned int partial_in_place, unsigned int swap)
-{
- unsigned int tmp = 0, tmp2 = 0;
-
- __asm__ __volatile__("\tlmw.bi\t%0, [%2], %0, 0\n"
- "\tbeqz\t%3, 1f\n"
- "\twsbh\t%0, %1\n"
- "\trotri\t%0, %1, 16\n"
- "1:\n":"=r"(tmp):"0"(tmp), "r"(loc), "r"(swap)
- );
-
- tmp2 = tmp & loc_mask;
- if (partial_in_place) {
- tmp &= (~loc_mask);
- tmp =
- tmp2 | ((tmp + ((val & val_mask) >> val_shift)) & val_mask);
- } else {
- tmp = tmp2 | ((val & val_mask) >> val_shift);
- }
-
- __asm__ __volatile__("\tbeqz\t%3, 2f\n"
- "\twsbh\t%0, %1\n"
- "\trotri\t%0, %1, 16\n"
- "2:\n"
- "\tsmw.bi\t%0, [%2], %0, 0\n":"=r"(tmp):"0"(tmp),
- "r"(loc), "r"(swap)
- );
-}
-
-static inline int exceed_limit(int offset, unsigned int val_mask,
- struct module *module, Elf32_Rela * rel,
- unsigned int relindex, unsigned int reloc_order)
-{
- int abs_off = offset < 0 ? ~offset : offset;
-
- if (abs_off & (~val_mask)) {
- pr_err("\n%s: relocation type %d out of range.\n"
- "please rebuild the kernel module with gcc option \"-Wa,-mno-small-text\".\n",
- module->name, ELF32_R_TYPE(rel->r_info));
- pr_err("section %d reloc %d offset 0x%x relative 0x%x.\n",
- relindex, reloc_order, rel->r_offset, offset);
- return true;
- }
- return false;
-}
-
-#ifdef __NDS32_EL__
-#define NEED_SWAP 1
-#else
-#define NEED_SWAP 0
-#endif
-
-int
-apply_relocate_add(Elf32_Shdr * sechdrs, const char *strtab,
- unsigned int symindex, unsigned int relindex,
- struct module *module)
-{
- Elf32_Shdr *symsec = sechdrs + symindex;
- Elf32_Shdr *relsec = sechdrs + relindex;
- Elf32_Shdr *dstsec = sechdrs + relsec->sh_info;
- Elf32_Rela *rel = (void *)relsec->sh_addr;
- unsigned int i;
-
- for (i = 0; i < relsec->sh_size / sizeof(Elf32_Rela); i++, rel++) {
- Elf32_Addr *loc;
- Elf32_Sym *sym;
- Elf32_Addr v;
- s32 offset;
-
- offset = ELF32_R_SYM(rel->r_info);
- if (offset < 0
- || offset > (symsec->sh_size / sizeof(Elf32_Sym))) {
- pr_err("%s: bad relocation\n", module->name);
- pr_err("section %d reloc %d\n", relindex, i);
- return -ENOEXEC;
- }
-
- sym = ((Elf32_Sym *) symsec->sh_addr) + offset;
-
- if (rel->r_offset < 0
- || rel->r_offset > dstsec->sh_size - sizeof(u16)) {
- pr_err("%s: out of bounds relocation\n", module->name);
- pr_err("section %d reloc %d offset 0x%0x size %d\n",
- relindex, i, rel->r_offset, dstsec->sh_size);
- return -ENOEXEC;
- }
-
- loc = (Elf32_Addr *) (dstsec->sh_addr + rel->r_offset);
- v = sym->st_value + rel->r_addend;
-
- switch (ELF32_R_TYPE(rel->r_info)) {
- case R_NDS32_NONE:
- case R_NDS32_INSN16:
- case R_NDS32_LABEL:
- case R_NDS32_LONGCALL1:
- case R_NDS32_LONGCALL2:
- case R_NDS32_LONGCALL3:
- case R_NDS32_LONGCALL4:
- case R_NDS32_LONGJUMP1:
- case R_NDS32_LONGJUMP2:
- case R_NDS32_LONGJUMP3:
- case R_NDS32_9_FIXED_RELA:
- case R_NDS32_15_FIXED_RELA:
- case R_NDS32_17_FIXED_RELA:
- case R_NDS32_25_FIXED_RELA:
- case R_NDS32_LOADSTORE:
- case R_NDS32_DWARF2_OP1_RELA:
- case R_NDS32_DWARF2_OP2_RELA:
- case R_NDS32_DWARF2_LEB_RELA:
- case R_NDS32_RELA_NOP_MIX ... R_NDS32_RELA_NOP_MAX:
- break;
-
- case R_NDS32_32_RELA:
- do_reloc32(v, loc, 0xffffffff, 0, 0, 0, 0);
- break;
-
- case R_NDS32_HI20_RELA:
- do_reloc32(v, loc, 0xfffff000, 12, 0xfff00000, 0,
- NEED_SWAP);
- break;
-
- case R_NDS32_LO12S3_RELA:
- do_reloc32(v, loc, 0x00000fff, 3, 0xfffff000, 0,
- NEED_SWAP);
- break;
-
- case R_NDS32_LO12S2_RELA:
- do_reloc32(v, loc, 0x00000fff, 2, 0xfffff000, 0,
- NEED_SWAP);
- break;
-
- case R_NDS32_LO12S1_RELA:
- do_reloc32(v, loc, 0x00000fff, 1, 0xfffff000, 0,
- NEED_SWAP);
- break;
-
- case R_NDS32_LO12S0_RELA:
- case R_NDS32_LO12S0_ORI_RELA:
- do_reloc32(v, loc, 0x00000fff, 0, 0xfffff000, 0,
- NEED_SWAP);
- break;
-
- case R_NDS32_9_PCREL_RELA:
- if (exceed_limit
- ((v - (Elf32_Addr) loc), 0x000000ff, module, rel,
- relindex, i))
- return -ENOEXEC;
- do_reloc16(v - (Elf32_Addr) loc, loc, 0x000001ff, 1,
- 0xffffff00, 0, NEED_SWAP);
- break;
-
- case R_NDS32_15_PCREL_RELA:
- if (exceed_limit
- ((v - (Elf32_Addr) loc), 0x00003fff, module, rel,
- relindex, i))
- return -ENOEXEC;
- do_reloc32(v - (Elf32_Addr) loc, loc, 0x00007fff, 1,
- 0xffffc000, 0, NEED_SWAP);
- break;
-
- case R_NDS32_17_PCREL_RELA:
- if (exceed_limit
- ((v - (Elf32_Addr) loc), 0x0000ffff, module, rel,
- relindex, i))
- return -ENOEXEC;
- do_reloc32(v - (Elf32_Addr) loc, loc, 0x0001ffff, 1,
- 0xffff0000, 0, NEED_SWAP);
- break;
-
- case R_NDS32_25_PCREL_RELA:
- if (exceed_limit
- ((v - (Elf32_Addr) loc), 0x00ffffff, module, rel,
- relindex, i))
- return -ENOEXEC;
- do_reloc32(v - (Elf32_Addr) loc, loc, 0x01ffffff, 1,
- 0xff000000, 0, NEED_SWAP);
- break;
- case R_NDS32_WORD_9_PCREL_RELA:
- if (exceed_limit
- ((v - (Elf32_Addr) loc), 0x000000ff, module, rel,
- relindex, i))
- return -ENOEXEC;
- do_reloc32(v - (Elf32_Addr) loc, loc, 0x000001ff, 1,
- 0xffffff00, 0, NEED_SWAP);
- break;
-
- case R_NDS32_SDA15S3_RELA:
- case R_NDS32_SDA15S2_RELA:
- case R_NDS32_SDA15S1_RELA:
- case R_NDS32_SDA15S0_RELA:
- pr_err("%s: unsupported relocation type %d.\n",
- module->name, ELF32_R_TYPE(rel->r_info));
- pr_err
- ("Small data section access doesn't work in the kernel space; "
- "please rebuild the kernel module with gcc option -mcmodel=large.\n");
- pr_err("section %d reloc %d offset 0x%x size %d\n",
- relindex, i, rel->r_offset, dstsec->sh_size);
- break;
-
- default:
- pr_err("%s: unsupported relocation type %d.\n",
- module->name, ELF32_R_TYPE(rel->r_info));
- pr_err("section %d reloc %d offset 0x%x size %d\n",
- relindex, i, rel->r_offset, dstsec->sh_size);
- }
- }
- return 0;
-}
-
-int
-module_finalize(const Elf32_Ehdr * hdr, const Elf_Shdr * sechdrs,
- struct module *module)
-{
- return 0;
-}
-
-void module_arch_cleanup(struct module *mod)
-{
-}
diff --git a/arch/nds32/kernel/nds32_ksyms.c b/arch/nds32/kernel/nds32_ksyms.c
deleted file mode 100644
index 20719e42ae36..000000000000
--- a/arch/nds32/kernel/nds32_ksyms.c
+++ /dev/null
@@ -1,25 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/module.h>
-#include <linux/string.h>
-#include <linux/delay.h>
-#include <linux/in6.h>
-#include <linux/syscalls.h>
-#include <linux/uaccess.h>
-
-#include <asm/checksum.h>
-#include <asm/io.h>
-#include <asm/ftrace.h>
-#include <asm/proc-fns.h>
-
-/* mem functions */
-EXPORT_SYMBOL(memset);
-EXPORT_SYMBOL(memcpy);
-EXPORT_SYMBOL(memmove);
-EXPORT_SYMBOL(memzero);
-
-/* user mem (segment) */
-EXPORT_SYMBOL(__arch_copy_from_user);
-EXPORT_SYMBOL(__arch_copy_to_user);
-EXPORT_SYMBOL(__arch_clear_user);
diff --git a/arch/nds32/kernel/perf_event_cpu.c b/arch/nds32/kernel/perf_event_cpu.c
deleted file mode 100644
index a78a879e7ef1..000000000000
--- a/arch/nds32/kernel/perf_event_cpu.c
+++ /dev/null
@@ -1,1500 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Copyright (C) 2008-2017 Andes Technology Corporation
- *
- * Reference ARMv7: Jean Pihet <jpihet@mvista.com>
- * 2010 (c) MontaVista Software, LLC.
- */
-
-#include <linux/perf_event.h>
-#include <linux/bitmap.h>
-#include <linux/export.h>
-#include <linux/kernel.h>
-#include <linux/of.h>
-#include <linux/platform_device.h>
-#include <linux/slab.h>
-#include <linux/spinlock.h>
-#include <linux/pm_runtime.h>
-#include <linux/ftrace.h>
-#include <linux/uaccess.h>
-#include <linux/sched/clock.h>
-#include <linux/percpu-defs.h>
-
-#include <asm/pmu.h>
-#include <asm/irq_regs.h>
-#include <asm/nds32.h>
-#include <asm/stacktrace.h>
-#include <asm/perf_event.h>
-#include <nds32_intrinsic.h>
-
-/* Set at runtime when we know what CPU type we are. */
-static struct nds32_pmu *cpu_pmu;
-
-static DEFINE_PER_CPU(struct pmu_hw_events, cpu_hw_events);
-static void nds32_pmu_start(struct nds32_pmu *cpu_pmu);
-static void nds32_pmu_stop(struct nds32_pmu *cpu_pmu);
-static struct platform_device_id cpu_pmu_plat_device_ids[] = {
- {.name = "nds32-pfm"},
- {},
-};
-
-static int nds32_pmu_map_cache_event(const unsigned int (*cache_map)
- [PERF_COUNT_HW_CACHE_MAX]
- [PERF_COUNT_HW_CACHE_OP_MAX]
- [PERF_COUNT_HW_CACHE_RESULT_MAX], u64 config)
-{
- unsigned int cache_type, cache_op, cache_result, ret;
-
- cache_type = (config >> 0) & 0xff;
- if (cache_type >= PERF_COUNT_HW_CACHE_MAX)
- return -EINVAL;
-
- cache_op = (config >> 8) & 0xff;
- if (cache_op >= PERF_COUNT_HW_CACHE_OP_MAX)
- return -EINVAL;
-
- cache_result = (config >> 16) & 0xff;
- if (cache_result >= PERF_COUNT_HW_CACHE_RESULT_MAX)
- return -EINVAL;
-
- ret = (int)(*cache_map)[cache_type][cache_op][cache_result];
-
- if (ret == CACHE_OP_UNSUPPORTED)
- return -ENOENT;
-
- return ret;
-}
-
-static int
-nds32_pmu_map_hw_event(const unsigned int (*event_map)[PERF_COUNT_HW_MAX],
- u64 config)
-{
- int mapping;
-
- if (config >= PERF_COUNT_HW_MAX)
- return -ENOENT;
-
- mapping = (*event_map)[config];
- return mapping == HW_OP_UNSUPPORTED ? -ENOENT : mapping;
-}
-
-static int nds32_pmu_map_raw_event(u32 raw_event_mask, u64 config)
-{
- int ev_type = (int)(config & raw_event_mask);
- int idx = config >> 8;
-
- switch (idx) {
- case 0:
- ev_type = PFM_OFFSET_MAGIC_0 + ev_type;
- if (ev_type >= SPAV3_0_SEL_LAST || ev_type <= SPAV3_0_SEL_BASE)
- return -ENOENT;
- break;
- case 1:
- ev_type = PFM_OFFSET_MAGIC_1 + ev_type;
- if (ev_type >= SPAV3_1_SEL_LAST || ev_type <= SPAV3_1_SEL_BASE)
- return -ENOENT;
- break;
- case 2:
- ev_type = PFM_OFFSET_MAGIC_2 + ev_type;
- if (ev_type >= SPAV3_2_SEL_LAST || ev_type <= SPAV3_2_SEL_BASE)
- return -ENOENT;
- break;
- default:
- return -ENOENT;
- }
-
- return ev_type;
-}
-
-int
-nds32_pmu_map_event(struct perf_event *event,
- const unsigned int (*event_map)[PERF_COUNT_HW_MAX],
- const unsigned int (*cache_map)
- [PERF_COUNT_HW_CACHE_MAX]
- [PERF_COUNT_HW_CACHE_OP_MAX]
- [PERF_COUNT_HW_CACHE_RESULT_MAX], u32 raw_event_mask)
-{
- u64 config = event->attr.config;
-
- switch (event->attr.type) {
- case PERF_TYPE_HARDWARE:
- return nds32_pmu_map_hw_event(event_map, config);
- case PERF_TYPE_HW_CACHE:
- return nds32_pmu_map_cache_event(cache_map, config);
- case PERF_TYPE_RAW:
- return nds32_pmu_map_raw_event(raw_event_mask, config);
- }
-
- return -ENOENT;
-}
-
-static int nds32_spav3_map_event(struct perf_event *event)
-{
- return nds32_pmu_map_event(event, &nds32_pfm_perf_map,
- &nds32_pfm_perf_cache_map, SOFTWARE_EVENT_MASK);
-}
-
-static inline u32 nds32_pfm_getreset_flags(void)
-{
- /* Read overflow status */
- u32 val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- u32 old_val = val;
-
- /* Write overflow bit to clear status, and others keep it 0 */
- u32 ov_flag = PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2];
-
- __nds32__mtsr(val | ov_flag, NDS32_SR_PFM_CTL);
-
- return old_val;
-}
-
-static inline int nds32_pfm_has_overflowed(u32 pfm)
-{
- u32 ov_flag = PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2];
-
- return pfm & ov_flag;
-}
-
-static inline int nds32_pfm_counter_has_overflowed(u32 pfm, int idx)
-{
- u32 mask = 0;
-
- switch (idx) {
- case 0:
- mask = PFM_CTL_OVF[0];
- break;
- case 1:
- mask = PFM_CTL_OVF[1];
- break;
- case 2:
- mask = PFM_CTL_OVF[2];
- break;
- default:
- pr_err("%s index wrong\n", __func__);
- break;
- }
- return pfm & mask;
-}
-
-/*
- * Set the next IRQ period, based on the hwc->period_left value.
- * To be called with the event disabled in hw:
- */
-int nds32_pmu_event_set_period(struct perf_event *event)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- s64 left = local64_read(&hwc->period_left);
- s64 period = hwc->sample_period;
- int ret = 0;
-
- /* The period may have been changed by PERF_EVENT_IOC_PERIOD */
- if (unlikely(period != hwc->last_period))
- left = period - (hwc->last_period - left);
-
- if (unlikely(left <= -period)) {
- left = period;
- local64_set(&hwc->period_left, left);
- hwc->last_period = period;
- ret = 1;
- }
-
- if (unlikely(left <= 0)) {
- left += period;
- local64_set(&hwc->period_left, left);
- hwc->last_period = period;
- ret = 1;
- }
-
- if (left > (s64)nds32_pmu->max_period)
- left = nds32_pmu->max_period;
-
- /*
- * The hw event starts counting from this event offset,
- * mark it to be able to extract future "deltas":
- */
- local64_set(&hwc->prev_count, (u64)(-left));
-
- nds32_pmu->write_counter(event, (u64)(-left) & nds32_pmu->max_period);
-
- perf_event_update_userpage(event);
-
- return ret;
-}
-
-static irqreturn_t nds32_pmu_handle_irq(int irq_num, void *dev)
-{
- u32 pfm;
- struct perf_sample_data data;
- struct nds32_pmu *cpu_pmu = (struct nds32_pmu *)dev;
- struct pmu_hw_events *cpuc = cpu_pmu->get_hw_events();
- struct pt_regs *regs;
- int idx;
- /*
- * Get and reset the IRQ flags
- */
- pfm = nds32_pfm_getreset_flags();
-
- /*
- * Did an overflow occur?
- */
- if (!nds32_pfm_has_overflowed(pfm))
- return IRQ_NONE;
-
- /*
- * Handle the counter(s) overflow(s)
- */
- regs = get_irq_regs();
-
- nds32_pmu_stop(cpu_pmu);
- for (idx = 0; idx < cpu_pmu->num_events; ++idx) {
- struct perf_event *event = cpuc->events[idx];
- struct hw_perf_event *hwc;
-
- /* Ignore if we don't have an event. */
- if (!event)
- continue;
-
- /*
- * We have a single interrupt for all counters. Check that
- * each counter has overflowed before we process it.
- */
- if (!nds32_pfm_counter_has_overflowed(pfm, idx))
- continue;
-
- hwc = &event->hw;
- nds32_pmu_event_update(event);
- perf_sample_data_init(&data, 0, hwc->last_period);
- if (!nds32_pmu_event_set_period(event))
- continue;
-
- if (perf_event_overflow(event, &data, regs))
- cpu_pmu->disable(event);
- }
- nds32_pmu_start(cpu_pmu);
- /*
- * Handle the pending perf events.
- *
- * Note: this call *must* be run with interrupts disabled. For
- * platforms that can have the PMU interrupts raised as an NMI, this
- * will not work.
- */
- irq_work_run();
-
- return IRQ_HANDLED;
-}
-
-static inline int nds32_pfm_counter_valid(struct nds32_pmu *cpu_pmu, int idx)
-{
- return ((idx >= 0) && (idx < cpu_pmu->num_events));
-}
-
-static inline int nds32_pfm_disable_counter(int idx)
-{
- unsigned int val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- u32 mask = 0;
-
- mask = PFM_CTL_EN[idx];
- val &= ~mask;
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
- return idx;
-}
-
-/*
- * Add an event filter to a given event.
- */
-static int nds32_pmu_set_event_filter(struct hw_perf_event *event,
- struct perf_event_attr *attr)
-{
- unsigned long config_base = 0;
- int idx = event->idx;
- unsigned long no_kernel_tracing = 0;
- unsigned long no_user_tracing = 0;
- /* If index is -1, do not do anything */
- if (idx == -1)
- return 0;
-
- no_kernel_tracing = PFM_CTL_KS[idx];
- no_user_tracing = PFM_CTL_KU[idx];
- /*
- * Default: enable both kernel and user mode tracing.
- */
- if (attr->exclude_user)
- config_base |= no_user_tracing;
-
- if (attr->exclude_kernel)
- config_base |= no_kernel_tracing;
-
- /*
- * Install the filter into config_base as this is used to
- * construct the event type.
- */
- event->config_base |= config_base;
- return 0;
-}
-
-static inline void nds32_pfm_write_evtsel(int idx, u32 evnum)
-{
- u32 offset = 0;
- u32 ori_val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- u32 ev_mask = 0;
- u32 no_kernel_mask = 0;
- u32 no_user_mask = 0;
- u32 val;
-
- offset = PFM_CTL_OFFSEL[idx];
- /* Clear previous mode selection, and write new one */
- no_kernel_mask = PFM_CTL_KS[idx];
- no_user_mask = PFM_CTL_KU[idx];
- ori_val &= ~no_kernel_mask;
- ori_val &= ~no_user_mask;
- if (evnum & no_kernel_mask)
- ori_val |= no_kernel_mask;
-
- if (evnum & no_user_mask)
- ori_val |= no_user_mask;
-
- /* Clear previous event selection */
- ev_mask = PFM_CTL_SEL[idx];
- ori_val &= ~ev_mask;
- evnum &= SOFTWARE_EVENT_MASK;
-
- /* undo the linear mapping */
- evnum = get_converted_evet_hw_num(evnum);
- val = ori_val | (evnum << offset);
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
-}
-
-static inline int nds32_pfm_enable_counter(int idx)
-{
- unsigned int val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- u32 mask = 0;
-
- mask = PFM_CTL_EN[idx];
- val |= mask;
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
- return idx;
-}
-
-static inline int nds32_pfm_enable_intens(int idx)
-{
- unsigned int val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- u32 mask = 0;
-
- mask = PFM_CTL_IE[idx];
- val |= mask;
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
- return idx;
-}
-
-static inline int nds32_pfm_disable_intens(int idx)
-{
- unsigned int val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- u32 mask = 0;
-
- mask = PFM_CTL_IE[idx];
- val &= ~mask;
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
- return idx;
-}
-
-static int event_requires_mode_exclusion(struct perf_event_attr *attr)
-{
- /* Other modes NDS32 does not support */
- return attr->exclude_user || attr->exclude_kernel;
-}
-
-static void nds32_pmu_enable_event(struct perf_event *event)
-{
- unsigned long flags;
- unsigned int evnum = 0;
- struct hw_perf_event *hwc = &event->hw;
- struct nds32_pmu *cpu_pmu = to_nds32_pmu(event->pmu);
- struct pmu_hw_events *events = cpu_pmu->get_hw_events();
- int idx = hwc->idx;
-
- if (!nds32_pfm_counter_valid(cpu_pmu, idx)) {
- pr_err("CPU enabling wrong pfm counter IRQ enable\n");
- return;
- }
-
- /*
- * Enable counter and interrupt, and set the counter to count
- * the event that we're interested in.
- */
- raw_spin_lock_irqsave(&events->pmu_lock, flags);
-
- /*
- * Disable counter
- */
- nds32_pfm_disable_counter(idx);
-
- /*
- * Check whether we need to exclude the counter from certain modes.
- */
- if ((!cpu_pmu->set_event_filter ||
- cpu_pmu->set_event_filter(hwc, &event->attr)) &&
- event_requires_mode_exclusion(&event->attr)) {
- pr_notice
- ("NDS32 performance counters do not support mode exclusion\n");
- hwc->config_base = 0;
- }
- /* Write event */
- evnum = hwc->config_base;
- nds32_pfm_write_evtsel(idx, evnum);
-
- /*
- * Enable interrupt for this counter
- */
- nds32_pfm_enable_intens(idx);
-
- /*
- * Enable counter
- */
- nds32_pfm_enable_counter(idx);
-
- raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
-}
-
-static void nds32_pmu_disable_event(struct perf_event *event)
-{
- unsigned long flags;
- struct hw_perf_event *hwc = &event->hw;
- struct nds32_pmu *cpu_pmu = to_nds32_pmu(event->pmu);
- struct pmu_hw_events *events = cpu_pmu->get_hw_events();
- int idx = hwc->idx;
-
- if (!nds32_pfm_counter_valid(cpu_pmu, idx)) {
- pr_err("CPU disabling wrong pfm counter IRQ enable %d\n", idx);
- return;
- }
-
- /*
- * Disable counter and interrupt
- */
- raw_spin_lock_irqsave(&events->pmu_lock, flags);
-
- /*
- * Disable counter
- */
- nds32_pfm_disable_counter(idx);
-
- /*
- * Disable interrupt for this counter
- */
- nds32_pfm_disable_intens(idx);
-
- raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
-}
-
-static inline u32 nds32_pmu_read_counter(struct perf_event *event)
-{
- struct nds32_pmu *cpu_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- int idx = hwc->idx;
- u32 count = 0;
-
- if (!nds32_pfm_counter_valid(cpu_pmu, idx)) {
- pr_err("CPU reading wrong counter %d\n", idx);
- } else {
- switch (idx) {
- case PFMC0:
- count = __nds32__mfsr(NDS32_SR_PFMC0);
- break;
- case PFMC1:
- count = __nds32__mfsr(NDS32_SR_PFMC1);
- break;
- case PFMC2:
- count = __nds32__mfsr(NDS32_SR_PFMC2);
- break;
- default:
- pr_err
- ("%s: CPU has no performance counters %d\n",
- __func__, idx);
- }
- }
- return count;
-}
-
-static inline void nds32_pmu_write_counter(struct perf_event *event, u32 value)
-{
- struct nds32_pmu *cpu_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- int idx = hwc->idx;
-
- if (!nds32_pfm_counter_valid(cpu_pmu, idx)) {
- pr_err("CPU writing wrong counter %d\n", idx);
- } else {
- switch (idx) {
- case PFMC0:
- __nds32__mtsr_isb(value, NDS32_SR_PFMC0);
- break;
- case PFMC1:
- __nds32__mtsr_isb(value, NDS32_SR_PFMC1);
- break;
- case PFMC2:
- __nds32__mtsr_isb(value, NDS32_SR_PFMC2);
- break;
- default:
- pr_err
- ("%s: CPU has no performance counters %d\n",
- __func__, idx);
- }
- }
-}
-
-static int nds32_pmu_get_event_idx(struct pmu_hw_events *cpuc,
- struct perf_event *event)
-{
- int idx;
- struct hw_perf_event *hwc = &event->hw;
- /*
- * Current implementation maps cycles, instruction count and cache-miss
- * to specific counter.
- * However, multiple of the 3 counters are able to count these events.
- *
- *
- * SOFTWARE_EVENT_MASK mask for getting event num ,
- * This is defined by Jia-Rung, you can change the polocies.
- * However, do not exceed 8 bits. This is hardware specific.
- * The last number is SPAv3_2_SEL_LAST.
- */
- unsigned long evtype = hwc->config_base & SOFTWARE_EVENT_MASK;
-
- idx = get_converted_event_idx(evtype);
- /*
- * Try to get the counter for correpsonding event
- */
- if (evtype == SPAV3_0_SEL_TOTAL_CYCLES) {
- if (!test_and_set_bit(idx, cpuc->used_mask))
- return idx;
- if (!test_and_set_bit(NDS32_IDX_COUNTER0, cpuc->used_mask))
- return NDS32_IDX_COUNTER0;
- if (!test_and_set_bit(NDS32_IDX_COUNTER1, cpuc->used_mask))
- return NDS32_IDX_COUNTER1;
- } else if (evtype == SPAV3_1_SEL_COMPLETED_INSTRUCTION) {
- if (!test_and_set_bit(idx, cpuc->used_mask))
- return idx;
- else if (!test_and_set_bit(NDS32_IDX_COUNTER1, cpuc->used_mask))
- return NDS32_IDX_COUNTER1;
- else if (!test_and_set_bit
- (NDS32_IDX_CYCLE_COUNTER, cpuc->used_mask))
- return NDS32_IDX_CYCLE_COUNTER;
- } else {
- if (!test_and_set_bit(idx, cpuc->used_mask))
- return idx;
- }
- return -EAGAIN;
-}
-
-static void nds32_pmu_start(struct nds32_pmu *cpu_pmu)
-{
- unsigned long flags;
- unsigned int val;
- struct pmu_hw_events *events = cpu_pmu->get_hw_events();
-
- raw_spin_lock_irqsave(&events->pmu_lock, flags);
-
- /* Enable all counters , NDS PFM has 3 counters */
- val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- val |= (PFM_CTL_EN[0] | PFM_CTL_EN[1] | PFM_CTL_EN[2]);
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
-
- raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
-}
-
-static void nds32_pmu_stop(struct nds32_pmu *cpu_pmu)
-{
- unsigned long flags;
- unsigned int val;
- struct pmu_hw_events *events = cpu_pmu->get_hw_events();
-
- raw_spin_lock_irqsave(&events->pmu_lock, flags);
-
- /* Disable all counters , NDS PFM has 3 counters */
- val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- val &= ~(PFM_CTL_EN[0] | PFM_CTL_EN[1] | PFM_CTL_EN[2]);
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
-
- raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
-}
-
-static void nds32_pmu_reset(void *info)
-{
- u32 val = 0;
-
- val |= (PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr(val, NDS32_SR_PFM_CTL);
- __nds32__mtsr(0, NDS32_SR_PFM_CTL);
- __nds32__mtsr(0, NDS32_SR_PFMC0);
- __nds32__mtsr(0, NDS32_SR_PFMC1);
- __nds32__mtsr(0, NDS32_SR_PFMC2);
-}
-
-static void nds32_pmu_init(struct nds32_pmu *cpu_pmu)
-{
- cpu_pmu->handle_irq = nds32_pmu_handle_irq;
- cpu_pmu->enable = nds32_pmu_enable_event;
- cpu_pmu->disable = nds32_pmu_disable_event;
- cpu_pmu->read_counter = nds32_pmu_read_counter;
- cpu_pmu->write_counter = nds32_pmu_write_counter;
- cpu_pmu->get_event_idx = nds32_pmu_get_event_idx;
- cpu_pmu->start = nds32_pmu_start;
- cpu_pmu->stop = nds32_pmu_stop;
- cpu_pmu->reset = nds32_pmu_reset;
- cpu_pmu->max_period = 0xFFFFFFFF; /* Maximum counts */
-};
-
-static u32 nds32_read_num_pfm_events(void)
-{
- /* NDS32 SPAv3 PMU support 3 counter */
- return 3;
-}
-
-static int device_pmu_init(struct nds32_pmu *cpu_pmu)
-{
- nds32_pmu_init(cpu_pmu);
- /*
- * This name should be devive-specific name, whatever you like :)
- * I think "PMU" will be a good generic name.
- */
- cpu_pmu->name = "nds32v3-pmu";
- cpu_pmu->map_event = nds32_spav3_map_event;
- cpu_pmu->num_events = nds32_read_num_pfm_events();
- cpu_pmu->set_event_filter = nds32_pmu_set_event_filter;
- return 0;
-}
-
-/*
- * CPU PMU identification and probing.
- */
-static int probe_current_pmu(struct nds32_pmu *pmu)
-{
- int ret;
-
- get_cpu();
- ret = -ENODEV;
- /*
- * If ther are various CPU types with its own PMU, initialize with
- *
- * the corresponding one
- */
- device_pmu_init(pmu);
- put_cpu();
- return ret;
-}
-
-static void nds32_pmu_enable(struct pmu *pmu)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(pmu);
- struct pmu_hw_events *hw_events = nds32_pmu->get_hw_events();
- int enabled = bitmap_weight(hw_events->used_mask,
- nds32_pmu->num_events);
-
- if (enabled)
- nds32_pmu->start(nds32_pmu);
-}
-
-static void nds32_pmu_disable(struct pmu *pmu)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(pmu);
-
- nds32_pmu->stop(nds32_pmu);
-}
-
-static void nds32_pmu_release_hardware(struct nds32_pmu *nds32_pmu)
-{
- nds32_pmu->free_irq(nds32_pmu);
- pm_runtime_put_sync(&nds32_pmu->plat_device->dev);
-}
-
-static irqreturn_t nds32_pmu_dispatch_irq(int irq, void *dev)
-{
- struct nds32_pmu *nds32_pmu = (struct nds32_pmu *)dev;
- int ret;
- u64 start_clock, finish_clock;
-
- start_clock = local_clock();
- ret = nds32_pmu->handle_irq(irq, dev);
- finish_clock = local_clock();
-
- perf_sample_event_took(finish_clock - start_clock);
- return ret;
-}
-
-static int nds32_pmu_reserve_hardware(struct nds32_pmu *nds32_pmu)
-{
- int err;
- struct platform_device *pmu_device = nds32_pmu->plat_device;
-
- if (!pmu_device)
- return -ENODEV;
-
- pm_runtime_get_sync(&pmu_device->dev);
- err = nds32_pmu->request_irq(nds32_pmu, nds32_pmu_dispatch_irq);
- if (err) {
- nds32_pmu_release_hardware(nds32_pmu);
- return err;
- }
-
- return 0;
-}
-
-static int
-validate_event(struct pmu *pmu, struct pmu_hw_events *hw_events,
- struct perf_event *event)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
-
- if (is_software_event(event))
- return 1;
-
- if (event->pmu != pmu)
- return 0;
-
- if (event->state < PERF_EVENT_STATE_OFF)
- return 1;
-
- if (event->state == PERF_EVENT_STATE_OFF && !event->attr.enable_on_exec)
- return 1;
-
- return nds32_pmu->get_event_idx(hw_events, event) >= 0;
-}
-
-static int validate_group(struct perf_event *event)
-{
- struct perf_event *sibling, *leader = event->group_leader;
- struct pmu_hw_events fake_pmu;
- DECLARE_BITMAP(fake_used_mask, MAX_COUNTERS);
- /*
- * Initialize the fake PMU. We only need to populate the
- * used_mask for the purposes of validation.
- */
- memset(fake_used_mask, 0, sizeof(fake_used_mask));
-
- if (!validate_event(event->pmu, &fake_pmu, leader))
- return -EINVAL;
-
- for_each_sibling_event(sibling, leader) {
- if (!validate_event(event->pmu, &fake_pmu, sibling))
- return -EINVAL;
- }
-
- if (!validate_event(event->pmu, &fake_pmu, event))
- return -EINVAL;
-
- return 0;
-}
-
-static int __hw_perf_event_init(struct perf_event *event)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- int mapping;
-
- mapping = nds32_pmu->map_event(event);
-
- if (mapping < 0) {
- pr_debug("event %x:%llx not supported\n", event->attr.type,
- event->attr.config);
- return mapping;
- }
-
- /*
- * We don't assign an index until we actually place the event onto
- * hardware. Use -1 to signify that we haven't decided where to put it
- * yet. For SMP systems, each core has it's own PMU so we can't do any
- * clever allocation or constraints checking at this point.
- */
- hwc->idx = -1;
- hwc->config_base = 0;
- hwc->config = 0;
- hwc->event_base = 0;
-
- /*
- * Check whether we need to exclude the counter from certain modes.
- */
- if ((!nds32_pmu->set_event_filter ||
- nds32_pmu->set_event_filter(hwc, &event->attr)) &&
- event_requires_mode_exclusion(&event->attr)) {
- pr_debug
- ("NDS performance counters do not support mode exclusion\n");
- return -EOPNOTSUPP;
- }
-
- /*
- * Store the event encoding into the config_base field.
- */
- hwc->config_base |= (unsigned long)mapping;
-
- if (!hwc->sample_period) {
- /*
- * For non-sampling runs, limit the sample_period to half
- * of the counter width. That way, the new counter value
- * is far less likely to overtake the previous one unless
- * you have some serious IRQ latency issues.
- */
- hwc->sample_period = nds32_pmu->max_period >> 1;
- hwc->last_period = hwc->sample_period;
- local64_set(&hwc->period_left, hwc->sample_period);
- }
-
- if (event->group_leader != event) {
- if (validate_group(event) != 0)
- return -EINVAL;
- }
-
- return 0;
-}
-
-static int nds32_pmu_event_init(struct perf_event *event)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- int err = 0;
- atomic_t *active_events = &nds32_pmu->active_events;
-
- /* does not support taken branch sampling */
- if (has_branch_stack(event))
- return -EOPNOTSUPP;
-
- if (nds32_pmu->map_event(event) == -ENOENT)
- return -ENOENT;
-
- if (!atomic_inc_not_zero(active_events)) {
- if (atomic_read(active_events) == 0) {
- /* Register irq handler */
- err = nds32_pmu_reserve_hardware(nds32_pmu);
- }
-
- if (!err)
- atomic_inc(active_events);
- }
-
- if (err)
- return err;
-
- err = __hw_perf_event_init(event);
-
- return err;
-}
-
-static void nds32_start(struct perf_event *event, int flags)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- /*
- * NDS pmu always has to reprogram the period, so ignore
- * PERF_EF_RELOAD, see the comment below.
- */
- if (flags & PERF_EF_RELOAD)
- WARN_ON_ONCE(!(hwc->state & PERF_HES_UPTODATE));
-
- hwc->state = 0;
- /* Set the period for the event. */
- nds32_pmu_event_set_period(event);
-
- nds32_pmu->enable(event);
-}
-
-static int nds32_pmu_add(struct perf_event *event, int flags)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct pmu_hw_events *hw_events = nds32_pmu->get_hw_events();
- struct hw_perf_event *hwc = &event->hw;
- int idx;
- int err = 0;
-
- perf_pmu_disable(event->pmu);
-
- /* If we don't have a space for the counter then finish early. */
- idx = nds32_pmu->get_event_idx(hw_events, event);
- if (idx < 0) {
- err = idx;
- goto out;
- }
-
- /*
- * If there is an event in the counter we are going to use then make
- * sure it is disabled.
- */
- event->hw.idx = idx;
- nds32_pmu->disable(event);
- hw_events->events[idx] = event;
-
- hwc->state = PERF_HES_STOPPED | PERF_HES_UPTODATE;
- if (flags & PERF_EF_START)
- nds32_start(event, PERF_EF_RELOAD);
-
- /* Propagate our changes to the userspace mapping. */
- perf_event_update_userpage(event);
-
-out:
- perf_pmu_enable(event->pmu);
- return err;
-}
-
-u64 nds32_pmu_event_update(struct perf_event *event)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- u64 delta, prev_raw_count, new_raw_count;
-
-again:
- prev_raw_count = local64_read(&hwc->prev_count);
- new_raw_count = nds32_pmu->read_counter(event);
-
- if (local64_cmpxchg(&hwc->prev_count, prev_raw_count,
- new_raw_count) != prev_raw_count) {
- goto again;
- }
- /*
- * Whether overflow or not, "unsigned substraction"
- * will always get their delta
- */
- delta = (new_raw_count - prev_raw_count) & nds32_pmu->max_period;
-
- local64_add(delta, &event->count);
- local64_sub(delta, &hwc->period_left);
-
- return new_raw_count;
-}
-
-static void nds32_stop(struct perf_event *event, int flags)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- /*
- * NDS pmu always has to update the counter, so ignore
- * PERF_EF_UPDATE, see comments in nds32_start().
- */
- if (!(hwc->state & PERF_HES_STOPPED)) {
- nds32_pmu->disable(event);
- nds32_pmu_event_update(event);
- hwc->state |= PERF_HES_STOPPED | PERF_HES_UPTODATE;
- }
-}
-
-static void nds32_pmu_del(struct perf_event *event, int flags)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct pmu_hw_events *hw_events = nds32_pmu->get_hw_events();
- struct hw_perf_event *hwc = &event->hw;
- int idx = hwc->idx;
-
- nds32_stop(event, PERF_EF_UPDATE);
- hw_events->events[idx] = NULL;
- clear_bit(idx, hw_events->used_mask);
-
- perf_event_update_userpage(event);
-}
-
-static void nds32_pmu_read(struct perf_event *event)
-{
- nds32_pmu_event_update(event);
-}
-
-/* Please refer to SPAv3 for more hardware specific details */
-PMU_FORMAT_ATTR(event, "config:0-63");
-
-static struct attribute *nds32_arch_formats_attr[] = {
- &format_attr_event.attr,
- NULL,
-};
-
-static struct attribute_group nds32_pmu_format_group = {
- .name = "format",
- .attrs = nds32_arch_formats_attr,
-};
-
-static ssize_t nds32_pmu_cpumask_show(struct device *dev,
- struct device_attribute *attr,
- char *buf)
-{
- return 0;
-}
-
-static DEVICE_ATTR(cpus, 0444, nds32_pmu_cpumask_show, NULL);
-
-static struct attribute *nds32_pmu_common_attrs[] = {
- &dev_attr_cpus.attr,
- NULL,
-};
-
-static struct attribute_group nds32_pmu_common_group = {
- .attrs = nds32_pmu_common_attrs,
-};
-
-static const struct attribute_group *nds32_pmu_attr_groups[] = {
- &nds32_pmu_format_group,
- &nds32_pmu_common_group,
- NULL,
-};
-
-static void nds32_init(struct nds32_pmu *nds32_pmu)
-{
- atomic_set(&nds32_pmu->active_events, 0);
-
- nds32_pmu->pmu = (struct pmu) {
- .pmu_enable = nds32_pmu_enable,
- .pmu_disable = nds32_pmu_disable,
- .attr_groups = nds32_pmu_attr_groups,
- .event_init = nds32_pmu_event_init,
- .add = nds32_pmu_add,
- .del = nds32_pmu_del,
- .start = nds32_start,
- .stop = nds32_stop,
- .read = nds32_pmu_read,
- };
-}
-
-int nds32_pmu_register(struct nds32_pmu *nds32_pmu, int type)
-{
- nds32_init(nds32_pmu);
- pm_runtime_enable(&nds32_pmu->plat_device->dev);
- pr_info("enabled with %s PMU driver, %d counters available\n",
- nds32_pmu->name, nds32_pmu->num_events);
- return perf_pmu_register(&nds32_pmu->pmu, nds32_pmu->name, type);
-}
-
-static struct pmu_hw_events *cpu_pmu_get_cpu_events(void)
-{
- return this_cpu_ptr(&cpu_hw_events);
-}
-
-static int cpu_pmu_request_irq(struct nds32_pmu *cpu_pmu, irq_handler_t handler)
-{
- int err, irq, irqs;
- struct platform_device *pmu_device = cpu_pmu->plat_device;
-
- if (!pmu_device)
- return -ENODEV;
-
- irqs = min(pmu_device->num_resources, num_possible_cpus());
- if (irqs < 1) {
- pr_err("no irqs for PMUs defined\n");
- return -ENODEV;
- }
-
- irq = platform_get_irq(pmu_device, 0);
- err = request_irq(irq, handler, IRQF_NOBALANCING, "nds32-pfm",
- cpu_pmu);
- if (err) {
- pr_err("unable to request IRQ%d for NDS PMU counters\n",
- irq);
- return err;
- }
- return 0;
-}
-
-static void cpu_pmu_free_irq(struct nds32_pmu *cpu_pmu)
-{
- int irq;
- struct platform_device *pmu_device = cpu_pmu->plat_device;
-
- irq = platform_get_irq(pmu_device, 0);
- if (irq >= 0)
- free_irq(irq, cpu_pmu);
-}
-
-static void cpu_pmu_init(struct nds32_pmu *cpu_pmu)
-{
- int cpu;
- struct pmu_hw_events *events = &per_cpu(cpu_hw_events, cpu);
-
- raw_spin_lock_init(&events->pmu_lock);
-
- cpu_pmu->get_hw_events = cpu_pmu_get_cpu_events;
- cpu_pmu->request_irq = cpu_pmu_request_irq;
- cpu_pmu->free_irq = cpu_pmu_free_irq;
-
- /* Ensure the PMU has sane values out of reset. */
- if (cpu_pmu->reset)
- on_each_cpu(cpu_pmu->reset, cpu_pmu, 1);
-}
-
-static const struct of_device_id cpu_pmu_of_device_ids[] = {
- {.compatible = "andestech,nds32v3-pmu",
- .data = device_pmu_init},
- {},
-};
-
-static int cpu_pmu_device_probe(struct platform_device *pdev)
-{
- const struct of_device_id *of_id;
- int (*init_fn)(struct nds32_pmu *nds32_pmu);
- struct device_node *node = pdev->dev.of_node;
- struct nds32_pmu *pmu;
- int ret = -ENODEV;
-
- if (cpu_pmu) {
- pr_notice("[perf] attempt to register multiple PMU devices!\n");
- return -ENOSPC;
- }
-
- pmu = kzalloc(sizeof(*pmu), GFP_KERNEL);
- if (!pmu)
- return -ENOMEM;
-
- of_id = of_match_node(cpu_pmu_of_device_ids, pdev->dev.of_node);
- if (node && of_id) {
- init_fn = of_id->data;
- ret = init_fn(pmu);
- } else {
- ret = probe_current_pmu(pmu);
- }
-
- if (ret) {
- pr_notice("[perf] failed to probe PMU!\n");
- goto out_free;
- }
-
- cpu_pmu = pmu;
- cpu_pmu->plat_device = pdev;
- cpu_pmu_init(cpu_pmu);
- ret = nds32_pmu_register(cpu_pmu, PERF_TYPE_RAW);
-
- if (!ret)
- return 0;
-
-out_free:
- pr_notice("[perf] failed to register PMU devices!\n");
- kfree(pmu);
- return ret;
-}
-
-static struct platform_driver cpu_pmu_driver = {
- .driver = {
- .name = "nds32-pfm",
- .of_match_table = cpu_pmu_of_device_ids,
- },
- .probe = cpu_pmu_device_probe,
- .id_table = cpu_pmu_plat_device_ids,
-};
-
-static int __init register_pmu_driver(void)
-{
- int err = 0;
-
- err = platform_driver_register(&cpu_pmu_driver);
- if (err)
- pr_notice("[perf] PMU initialization failed\n");
- else
- pr_notice("[perf] PMU initialization done\n");
-
- return err;
-}
-
-device_initcall(register_pmu_driver);
-
-/*
- * References: arch/nds32/kernel/traps.c:__dump()
- * You will need to know the NDS ABI first.
- */
-static int unwind_frame_kernel(struct stackframe *frame)
-{
- int graph = 0;
-#ifdef CONFIG_FRAME_POINTER
- /* 0x3 means misalignment */
- if (!kstack_end((void *)frame->fp) &&
- !((unsigned long)frame->fp & 0x3) &&
- ((unsigned long)frame->fp >= TASK_SIZE)) {
- /*
- * The array index is based on the ABI, the below graph
- * illustrate the reasons.
- * Function call procedure: "smw" and "lmw" will always
- * update SP and FP for you automatically.
- *
- * Stack Relative Address
- * | | 0
- * ----
- * |LP| <-- SP(before smw) <-- FP(after smw) -1
- * ----
- * |FP| -2
- * ----
- * | | <-- SP(after smw) -3
- */
- frame->lp = ((unsigned long *)frame->fp)[-1];
- frame->fp = ((unsigned long *)frame->fp)[FP_OFFSET];
- /* make sure CONFIG_FUNCTION_GRAPH_TRACER is turned on */
- if (__kernel_text_address(frame->lp))
- frame->lp = ftrace_graph_ret_addr
- (NULL, &graph, frame->lp, NULL);
-
- return 0;
- } else {
- return -EPERM;
- }
-#else
- /*
- * You can refer to arch/nds32/kernel/traps.c:__dump()
- * Treat "sp" as "fp", but the "sp" is one frame ahead of "fp".
- * And, the "sp" is not always correct.
- *
- * Stack Relative Address
- * | | 0
- * ----
- * |LP| <-- SP(before smw) -1
- * ----
- * | | <-- SP(after smw) -2
- * ----
- */
- if (!kstack_end((void *)frame->sp)) {
- frame->lp = ((unsigned long *)frame->sp)[1];
- /* TODO: How to deal with the value in first
- * "sp" is not correct?
- */
- if (__kernel_text_address(frame->lp))
- frame->lp = ftrace_graph_ret_addr
- (tsk, &graph, frame->lp, NULL);
-
- frame->sp = ((unsigned long *)frame->sp) + 1;
-
- return 0;
- } else {
- return -EPERM;
- }
-#endif
-}
-
-static void notrace
-walk_stackframe(struct stackframe *frame,
- int (*fn_record)(struct stackframe *, void *),
- void *data)
-{
- while (1) {
- int ret;
-
- if (fn_record(frame, data))
- break;
-
- ret = unwind_frame_kernel(frame);
- if (ret < 0)
- break;
- }
-}
-
-/*
- * Gets called by walk_stackframe() for every stackframe. This will be called
- * whist unwinding the stackframe and is like a subroutine return so we use
- * the PC.
- */
-static int callchain_trace(struct stackframe *fr, void *data)
-{
- struct perf_callchain_entry_ctx *entry = data;
-
- perf_callchain_store(entry, fr->lp);
- return 0;
-}
-
-/*
- * Get the return address for a single stackframe and return a pointer to the
- * next frame tail.
- */
-static unsigned long
-user_backtrace(struct perf_callchain_entry_ctx *entry, unsigned long fp)
-{
- struct frame_tail buftail;
- unsigned long lp = 0;
- unsigned long *user_frame_tail =
- (unsigned long *)(fp - (unsigned long)sizeof(buftail));
-
- /* Check accessibility of one struct frame_tail beyond */
- if (!access_ok(user_frame_tail, sizeof(buftail)))
- return 0;
- if (__copy_from_user_inatomic
- (&buftail, user_frame_tail, sizeof(buftail)))
- return 0;
-
- /*
- * Refer to unwind_frame_kernel() for more illurstration
- */
- lp = buftail.stack_lp; /* ((unsigned long *)fp)[-1] */
- fp = buftail.stack_fp; /* ((unsigned long *)fp)[FP_OFFSET] */
- perf_callchain_store(entry, lp);
- return fp;
-}
-
-static unsigned long
-user_backtrace_opt_size(struct perf_callchain_entry_ctx *entry,
- unsigned long fp)
-{
- struct frame_tail_opt_size buftail;
- unsigned long lp = 0;
-
- unsigned long *user_frame_tail =
- (unsigned long *)(fp - (unsigned long)sizeof(buftail));
-
- /* Check accessibility of one struct frame_tail beyond */
- if (!access_ok(user_frame_tail, sizeof(buftail)))
- return 0;
- if (__copy_from_user_inatomic
- (&buftail, user_frame_tail, sizeof(buftail)))
- return 0;
-
- /*
- * Refer to unwind_frame_kernel() for more illurstration
- */
- lp = buftail.stack_lp; /* ((unsigned long *)fp)[-1] */
- fp = buftail.stack_fp; /* ((unsigned long *)fp)[FP_OFFSET] */
-
- perf_callchain_store(entry, lp);
- return fp;
-}
-
-/*
- * This will be called when the target is in user mode
- * This function will only be called when we use
- * "PERF_SAMPLE_CALLCHAIN" in
- * kernel/events/core.c:perf_prepare_sample()
- *
- * How to trigger perf_callchain_[user/kernel] :
- * $ perf record -e cpu-clock --call-graph fp ./program
- * $ perf report --call-graph
- */
-unsigned long leaf_fp;
-void
-perf_callchain_user(struct perf_callchain_entry_ctx *entry,
- struct pt_regs *regs)
-{
- unsigned long fp = 0;
- unsigned long gp = 0;
- unsigned long lp = 0;
- unsigned long sp = 0;
- unsigned long *user_frame_tail;
-
- leaf_fp = 0;
-
- perf_callchain_store(entry, regs->ipc);
- fp = regs->fp;
- gp = regs->gp;
- lp = regs->lp;
- sp = regs->sp;
- if (entry->nr < PERF_MAX_STACK_DEPTH &&
- (unsigned long)fp && !((unsigned long)fp & 0x7) && fp > sp) {
- user_frame_tail =
- (unsigned long *)(fp - (unsigned long)sizeof(fp));
-
- if (!access_ok(user_frame_tail, sizeof(fp)))
- return;
-
- if (__copy_from_user_inatomic
- (&leaf_fp, user_frame_tail, sizeof(fp)))
- return;
-
- if (leaf_fp == lp) {
- /*
- * Maybe this is non leaf function
- * with optimize for size,
- * or maybe this is the function
- * with optimize for size
- */
- struct frame_tail buftail;
-
- user_frame_tail =
- (unsigned long *)(fp -
- (unsigned long)sizeof(buftail));
-
- if (!access_ok(user_frame_tail, sizeof(buftail)))
- return;
-
- if (__copy_from_user_inatomic
- (&buftail, user_frame_tail, sizeof(buftail)))
- return;
-
- if (buftail.stack_fp == gp) {
- /* non leaf function with optimize
- * for size condition
- */
- struct frame_tail_opt_size buftail_opt_size;
-
- user_frame_tail =
- (unsigned long *)(fp - (unsigned long)
- sizeof(buftail_opt_size));
-
- if (!access_ok(user_frame_tail,
- sizeof(buftail_opt_size)))
- return;
-
- if (__copy_from_user_inatomic
- (&buftail_opt_size, user_frame_tail,
- sizeof(buftail_opt_size)))
- return;
-
- perf_callchain_store(entry, lp);
- fp = buftail_opt_size.stack_fp;
-
- while ((entry->nr < PERF_MAX_STACK_DEPTH) &&
- (unsigned long)fp &&
- !((unsigned long)fp & 0x7) &&
- fp > sp) {
- sp = fp;
- fp = user_backtrace_opt_size(entry, fp);
- }
-
- } else {
- /* this is the function
- * without optimize for size
- */
- fp = buftail.stack_fp;
- perf_callchain_store(entry, lp);
- while ((entry->nr < PERF_MAX_STACK_DEPTH) &&
- (unsigned long)fp &&
- !((unsigned long)fp & 0x7) &&
- fp > sp) {
- sp = fp;
- fp = user_backtrace(entry, fp);
- }
- }
- } else {
- /* this is leaf function */
- fp = leaf_fp;
- perf_callchain_store(entry, lp);
-
- /* previous function callcahin */
- while ((entry->nr < PERF_MAX_STACK_DEPTH) &&
- (unsigned long)fp &&
- !((unsigned long)fp & 0x7) && fp > sp) {
- sp = fp;
- fp = user_backtrace(entry, fp);
- }
- }
- return;
- }
-}
-
-/* This will be called when the target is in kernel mode */
-void
-perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
- struct pt_regs *regs)
-{
- struct stackframe fr;
-
- fr.fp = regs->fp;
- fr.lp = regs->lp;
- fr.sp = regs->sp;
- walk_stackframe(&fr, callchain_trace, entry);
-}
-
-unsigned long perf_instruction_pointer(struct pt_regs *regs)
-{
- return instruction_pointer(regs);
-}
-
-unsigned long perf_misc_flags(struct pt_regs *regs)
-{
- int misc = 0;
-
- if (user_mode(regs))
- misc |= PERF_RECORD_MISC_USER;
- else
- misc |= PERF_RECORD_MISC_KERNEL;
-
- return misc;
-}
diff --git a/arch/nds32/kernel/pm.c b/arch/nds32/kernel/pm.c
deleted file mode 100644
index e25700e125d8..000000000000
--- a/arch/nds32/kernel/pm.c
+++ /dev/null
@@ -1,80 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2008-2017 Andes Technology Corporation
-
-#include <linux/init.h>
-#include <linux/suspend.h>
-#include <linux/device.h>
-#include <linux/printk.h>
-#include <asm/suspend.h>
-#include <nds32_intrinsic.h>
-
-unsigned int resume_addr;
-unsigned int *phy_addr_sp_tmp;
-
-static void nds32_suspend2ram(void)
-{
- pgd_t *pgdv;
- p4d_t *p4dv;
- pud_t *pudv;
- pmd_t *pmdv;
- pte_t *ptev;
-
- pgdv = (pgd_t *)__va((__nds32__mfsr(NDS32_SR_L1_PPTB) &
- L1_PPTB_mskBASE)) + pgd_index((unsigned int)cpu_resume);
-
- p4dv = p4d_offset(pgdv, (unsigned int)cpu_resume);
- pudv = pud_offset(p4dv, (unsigned int)cpu_resume);
- pmdv = pmd_offset(pudv, (unsigned int)cpu_resume);
- ptev = pte_offset_map(pmdv, (unsigned int)cpu_resume);
-
- resume_addr = ((*ptev) & TLB_DATA_mskPPN)
- | ((unsigned int)cpu_resume & 0x00000fff);
-
- suspend2ram();
-}
-
-static void nds32_suspend_cpu(void)
-{
- while (!(__nds32__mfsr(NDS32_SR_INT_PEND) & wake_mask))
- __asm__ volatile ("standby no_wake_grant\n\t");
-}
-
-static int nds32_pm_valid(suspend_state_t state)
-{
- switch (state) {
- case PM_SUSPEND_ON:
- case PM_SUSPEND_STANDBY:
- case PM_SUSPEND_MEM:
- return 1;
- default:
- return 0;
- }
-}
-
-static int nds32_pm_enter(suspend_state_t state)
-{
- pr_debug("%s:state:%d\n", __func__, state);
- switch (state) {
- case PM_SUSPEND_STANDBY:
- nds32_suspend_cpu();
- return 0;
- case PM_SUSPEND_MEM:
- nds32_suspend2ram();
- return 0;
- default:
- return -EINVAL;
- }
-}
-
-static const struct platform_suspend_ops nds32_pm_ops = {
- .valid = nds32_pm_valid,
- .enter = nds32_pm_enter,
-};
-
-static int __init nds32_pm_init(void)
-{
- pr_debug("Enter %s\n", __func__);
- suspend_set_ops(&nds32_pm_ops);
- return 0;
-}
-late_initcall(nds32_pm_init);
diff --git a/arch/nds32/kernel/process.c b/arch/nds32/kernel/process.c
deleted file mode 100644
index 49fab9e39cbf..000000000000
--- a/arch/nds32/kernel/process.c
+++ /dev/null
@@ -1,257 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/sched.h>
-#include <linux/sched/debug.h>
-#include <linux/sched/task_stack.h>
-#include <linux/delay.h>
-#include <linux/kallsyms.h>
-#include <linux/uaccess.h>
-#include <asm/elf.h>
-#include <asm/proc-fns.h>
-#include <asm/fpu.h>
-#include <linux/ptrace.h>
-#include <linux/reboot.h>
-
-#if IS_ENABLED(CONFIG_LAZY_FPU)
-struct task_struct *last_task_used_math;
-#endif
-
-extern void setup_mm_for_reboot(char mode);
-
-extern inline void arch_reset(char mode)
-{
- if (mode == 's') {
- /* Use cpu handler, jump to 0 */
- cpu_reset(0);
- }
-}
-
-void (*pm_power_off) (void);
-EXPORT_SYMBOL(pm_power_off);
-
-static char reboot_mode_nds32 = 'h';
-
-int __init reboot_setup(char *str)
-{
- reboot_mode_nds32 = str[0];
- return 1;
-}
-
-static int cpub_pwroff(void)
-{
- return 0;
-}
-
-__setup("reboot=", reboot_setup);
-
-void machine_halt(void)
-{
- cpub_pwroff();
-}
-
-EXPORT_SYMBOL(machine_halt);
-
-void machine_power_off(void)
-{
- if (pm_power_off)
- pm_power_off();
-}
-
-EXPORT_SYMBOL(machine_power_off);
-
-void machine_restart(char *cmd)
-{
- /*
- * Clean and disable cache, and turn off interrupts
- */
- cpu_proc_fin();
-
- /*
- * Tell the mm system that we are going to reboot -
- * we may need it to insert some 1:1 mappings so that
- * soft boot works.
- */
- setup_mm_for_reboot(reboot_mode_nds32);
-
- /* Execute kernel restart handler call chain */
- do_kernel_restart(cmd);
-
- /*
- * Now call the architecture specific reboot code.
- */
- arch_reset(reboot_mode_nds32);
-
- /*
- * Whoops - the architecture was unable to reboot.
- * Tell the user!
- */
- mdelay(1000);
- pr_info("Reboot failed -- System halted\n");
- while (1) ;
-}
-
-EXPORT_SYMBOL(machine_restart);
-
-void show_regs(struct pt_regs *regs)
-{
- printk("PC is at %pS\n", (void *)instruction_pointer(regs));
- printk("LP is at %pS\n", (void *)regs->lp);
- pr_info("pc : [<%08lx>] lp : [<%08lx>] %s\n"
- "sp : %08lx fp : %08lx gp : %08lx\n",
- instruction_pointer(regs),
- regs->lp, print_tainted(), regs->sp, regs->fp, regs->gp);
- pr_info("r25: %08lx r24: %08lx\n", regs->uregs[25], regs->uregs[24]);
-
- pr_info("r23: %08lx r22: %08lx r21: %08lx r20: %08lx\n",
- regs->uregs[23], regs->uregs[22],
- regs->uregs[21], regs->uregs[20]);
- pr_info("r19: %08lx r18: %08lx r17: %08lx r16: %08lx\n",
- regs->uregs[19], regs->uregs[18],
- regs->uregs[17], regs->uregs[16]);
- pr_info("r15: %08lx r14: %08lx r13: %08lx r12: %08lx\n",
- regs->uregs[15], regs->uregs[14],
- regs->uregs[13], regs->uregs[12]);
- pr_info("r11: %08lx r10: %08lx r9 : %08lx r8 : %08lx\n",
- regs->uregs[11], regs->uregs[10],
- regs->uregs[9], regs->uregs[8]);
- pr_info("r7 : %08lx r6 : %08lx r5 : %08lx r4 : %08lx\n",
- regs->uregs[7], regs->uregs[6], regs->uregs[5], regs->uregs[4]);
- pr_info("r3 : %08lx r2 : %08lx r1 : %08lx r0 : %08lx\n",
- regs->uregs[3], regs->uregs[2], regs->uregs[1], regs->uregs[0]);
- pr_info(" IRQs o%s Segment %s\n",
- interrupts_enabled(regs) ? "n" : "ff",
- uaccess_kernel() ? "kernel" : "user");
-}
-
-EXPORT_SYMBOL(show_regs);
-
-void exit_thread(struct task_struct *tsk)
-{
-#if defined(CONFIG_FPU) && defined(CONFIG_LAZY_FPU)
- if (last_task_used_math == tsk)
- last_task_used_math = NULL;
-#endif
-}
-
-void flush_thread(void)
-{
-#if defined(CONFIG_FPU)
- clear_fpu(task_pt_regs(current));
- clear_used_math();
-# ifdef CONFIG_LAZY_FPU
- if (last_task_used_math == current)
- last_task_used_math = NULL;
-# endif
-#endif
-}
-
-DEFINE_PER_CPU(struct task_struct *, __entry_task);
-
-asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
-int copy_thread(unsigned long clone_flags, unsigned long stack_start,
- unsigned long stk_sz, struct task_struct *p, unsigned long tls)
-{
- struct pt_regs *childregs = task_pt_regs(p);
-
- memset(&p->thread.cpu_context, 0, sizeof(struct cpu_context));
-
- if (unlikely(p->flags & (PF_KTHREAD | PF_IO_WORKER))) {
- memset(childregs, 0, sizeof(struct pt_regs));
- /* kernel thread fn */
- p->thread.cpu_context.r6 = stack_start;
- /* kernel thread argument */
- p->thread.cpu_context.r7 = stk_sz;
- } else {
- *childregs = *current_pt_regs();
- if (stack_start)
- childregs->sp = stack_start;
- /* child get zero as ret. */
- childregs->uregs[0] = 0;
- childregs->osp = 0;
- if (clone_flags & CLONE_SETTLS)
- childregs->uregs[25] = tls;
- }
- /* cpu context switching */
- p->thread.cpu_context.pc = (unsigned long)ret_from_fork;
- p->thread.cpu_context.sp = (unsigned long)childregs;
-
-#if IS_ENABLED(CONFIG_FPU)
- if (used_math()) {
-# if !IS_ENABLED(CONFIG_LAZY_FPU)
- unlazy_fpu(current);
-# else
- preempt_disable();
- if (last_task_used_math == current)
- save_fpu(current);
- preempt_enable();
-# endif
- p->thread.fpu = current->thread.fpu;
- clear_fpu(task_pt_regs(p));
- set_stopped_child_used_math(p);
- }
-#endif
-
-#ifdef CONFIG_HWZOL
- childregs->lb = 0;
- childregs->le = 0;
- childregs->lc = 0;
-#endif
-
- return 0;
-}
-
-#if IS_ENABLED(CONFIG_FPU)
-struct task_struct *_switch_fpu(struct task_struct *prev, struct task_struct *next)
-{
-#if !IS_ENABLED(CONFIG_LAZY_FPU)
- unlazy_fpu(prev);
-#endif
- if (!(next->flags & PF_KTHREAD))
- clear_fpu(task_pt_regs(next));
- return prev;
-}
-#endif
-
-/*
- * fill in the fpe structure for a core dump...
- */
-int dump_fpu(struct pt_regs *regs, elf_fpregset_t * fpu)
-{
- int fpvalid = 0;
-#if IS_ENABLED(CONFIG_FPU)
- struct task_struct *tsk = current;
-
- fpvalid = tsk_used_math(tsk);
- if (fpvalid) {
- lose_fpu();
- memcpy(fpu, &tsk->thread.fpu, sizeof(*fpu));
- }
-#endif
- return fpvalid;
-}
-
-EXPORT_SYMBOL(dump_fpu);
-
-unsigned long __get_wchan(struct task_struct *p)
-{
- unsigned long fp, lr;
- unsigned long stack_start, stack_end;
- int count = 0;
-
- if (IS_ENABLED(CONFIG_FRAME_POINTER)) {
- stack_start = (unsigned long)end_of_stack(p);
- stack_end = (unsigned long)task_stack_page(p) + THREAD_SIZE;
-
- fp = thread_saved_fp(p);
- do {
- if (fp < stack_start || fp > stack_end)
- return 0;
- lr = ((unsigned long *)fp)[0];
- if (!in_sched_functions(lr))
- return lr;
- fp = *(unsigned long *)(fp + 4);
- } while (count++ < 16);
- }
- return 0;
-}
diff --git a/arch/nds32/kernel/ptrace.c b/arch/nds32/kernel/ptrace.c
deleted file mode 100644
index d0eda870fbc2..000000000000
--- a/arch/nds32/kernel/ptrace.c
+++ /dev/null
@@ -1,118 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/ptrace.h>
-#include <linux/regset.h>
-#include <linux/tracehook.h>
-#include <linux/elf.h>
-#include <linux/sched/task_stack.h>
-
-enum nds32_regset {
- REGSET_GPR,
-};
-
-static int gpr_get(struct task_struct *target,
- const struct user_regset *regset,
- struct membuf to)
-{
- return membuf_write(&to, &task_pt_regs(target)->user_regs,
- sizeof(struct user_pt_regs));
-}
-
-static int gpr_set(struct task_struct *target, const struct user_regset *regset,
- unsigned int pos, unsigned int count,
- const void *kbuf, const void __user * ubuf)
-{
- int err;
- struct user_pt_regs newregs = task_pt_regs(target)->user_regs;
-
- err = user_regset_copyin(&pos, &count, &kbuf, &ubuf, &newregs, 0, -1);
- if (err)
- return err;
-
- task_pt_regs(target)->user_regs = newregs;
- return 0;
-}
-
-static const struct user_regset nds32_regsets[] = {
- [REGSET_GPR] = {
- .core_note_type = NT_PRSTATUS,
- .n = sizeof(struct user_pt_regs) / sizeof(u32),
- .size = sizeof(elf_greg_t),
- .align = sizeof(elf_greg_t),
- .regset_get = gpr_get,
- .set = gpr_set}
-};
-
-static const struct user_regset_view nds32_user_view = {
- .name = "nds32",
- .e_machine = EM_NDS32,
- .regsets = nds32_regsets,
- .n = ARRAY_SIZE(nds32_regsets)
-};
-
-const struct user_regset_view *task_user_regset_view(struct task_struct *task)
-{
- return &nds32_user_view;
-}
-
-void ptrace_disable(struct task_struct *child)
-{
- user_disable_single_step(child);
-}
-
-/* do_ptrace()
- *
- * Provide ptrace defined service.
- */
-long arch_ptrace(struct task_struct *child, long request, unsigned long addr,
- unsigned long data)
-{
- int ret = -EIO;
-
- switch (request) {
- default:
- ret = ptrace_request(child, request, addr, data);
- break;
- }
-
- return ret;
-}
-
-void user_enable_single_step(struct task_struct *child)
-{
- struct pt_regs *regs;
- regs = task_pt_regs(child);
- regs->ipsw |= PSW_mskHSS;
- set_tsk_thread_flag(child, TIF_SINGLESTEP);
-}
-
-void user_disable_single_step(struct task_struct *child)
-{
- struct pt_regs *regs;
- regs = task_pt_regs(child);
- regs->ipsw &= ~PSW_mskHSS;
- clear_tsk_thread_flag(child, TIF_SINGLESTEP);
-}
-
-/* sys_trace()
- *
- * syscall trace handler.
- */
-
-asmlinkage int syscall_trace_enter(struct pt_regs *regs)
-{
- if (test_thread_flag(TIF_SYSCALL_TRACE)) {
- if (tracehook_report_syscall_entry(regs))
- forget_syscall(regs);
- }
- return regs->syscallno;
-}
-
-asmlinkage void syscall_trace_leave(struct pt_regs *regs)
-{
- int step = test_thread_flag(TIF_SINGLESTEP);
- if (step || test_thread_flag(TIF_SYSCALL_TRACE))
- tracehook_report_syscall_exit(regs, step);
-
-}
diff --git a/arch/nds32/kernel/setup.c b/arch/nds32/kernel/setup.c
deleted file mode 100644
index b3d34d646652..000000000000
--- a/arch/nds32/kernel/setup.c
+++ /dev/null
@@ -1,369 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/cpu.h>
-#include <linux/memblock.h>
-#include <linux/seq_file.h>
-#include <linux/console.h>
-#include <linux/screen_info.h>
-#include <linux/delay.h>
-#include <linux/dma-mapping.h>
-#include <linux/of_fdt.h>
-#include <linux/of_platform.h>
-#include <asm/setup.h>
-#include <asm/sections.h>
-#include <asm/proc-fns.h>
-#include <asm/cache_info.h>
-#include <asm/elf.h>
-#include <asm/fpu.h>
-#include <nds32_intrinsic.h>
-
-#define HWCAP_MFUSR_PC 0x000001
-#define HWCAP_EXT 0x000002
-#define HWCAP_EXT2 0x000004
-#define HWCAP_FPU 0x000008
-#define HWCAP_AUDIO 0x000010
-#define HWCAP_BASE16 0x000020
-#define HWCAP_STRING 0x000040
-#define HWCAP_REDUCED_REGS 0x000080
-#define HWCAP_VIDEO 0x000100
-#define HWCAP_ENCRYPT 0x000200
-#define HWCAP_EDM 0x000400
-#define HWCAP_LMDMA 0x000800
-#define HWCAP_PFM 0x001000
-#define HWCAP_HSMP 0x002000
-#define HWCAP_TRACE 0x004000
-#define HWCAP_DIV 0x008000
-#define HWCAP_MAC 0x010000
-#define HWCAP_L2C 0x020000
-#define HWCAP_FPU_DP 0x040000
-#define HWCAP_V2 0x080000
-#define HWCAP_DX_REGS 0x100000
-#define HWCAP_HWPRE 0x200000
-
-unsigned long cpu_id, cpu_rev, cpu_cfgid;
-bool has_fpu = false;
-char cpu_series;
-char *endianness = NULL;
-
-unsigned int __atags_pointer __initdata;
-unsigned int elf_hwcap;
-EXPORT_SYMBOL(elf_hwcap);
-
-/*
- * The following string table, must sync with HWCAP_xx bitmask,
- * which is defined above
- */
-static const char *hwcap_str[] = {
- "mfusr_pc",
- "perf1",
- "perf2",
- "fpu",
- "audio",
- "16b",
- "string",
- "reduced_regs",
- "video",
- "encrypt",
- "edm",
- "lmdma",
- "pfm",
- "hsmp",
- "trace",
- "div",
- "mac",
- "l2c",
- "fpu_dp",
- "v2",
- "dx_regs",
- "hw_pre",
- NULL,
-};
-
-#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
-#define WRITE_METHOD "write through"
-#else
-#define WRITE_METHOD "write back"
-#endif
-
-struct cache_info L1_cache_info[2];
-static void __init dump_cpu_info(int cpu)
-{
- int i, p = 0;
- char str[sizeof(hwcap_str) + 16];
-
- for (i = 0; hwcap_str[i]; i++) {
- if (elf_hwcap & (1 << i)) {
- sprintf(str + p, "%s ", hwcap_str[i]);
- p += strlen(hwcap_str[i]) + 1;
- }
- }
-
- pr_info("CPU%d Features: %s\n", cpu, str);
-
- L1_cache_info[ICACHE].ways = CACHE_WAY(ICACHE);
- L1_cache_info[ICACHE].line_size = CACHE_LINE_SIZE(ICACHE);
- L1_cache_info[ICACHE].sets = CACHE_SET(ICACHE);
- L1_cache_info[ICACHE].size =
- L1_cache_info[ICACHE].ways * L1_cache_info[ICACHE].line_size *
- L1_cache_info[ICACHE].sets / 1024;
- pr_info("L1I:%dKB/%dS/%dW/%dB\n", L1_cache_info[ICACHE].size,
- L1_cache_info[ICACHE].sets, L1_cache_info[ICACHE].ways,
- L1_cache_info[ICACHE].line_size);
- L1_cache_info[DCACHE].ways = CACHE_WAY(DCACHE);
- L1_cache_info[DCACHE].line_size = CACHE_LINE_SIZE(DCACHE);
- L1_cache_info[DCACHE].sets = CACHE_SET(DCACHE);
- L1_cache_info[DCACHE].size =
- L1_cache_info[DCACHE].ways * L1_cache_info[DCACHE].line_size *
- L1_cache_info[DCACHE].sets / 1024;
- pr_info("L1D:%dKB/%dS/%dW/%dB\n", L1_cache_info[DCACHE].size,
- L1_cache_info[DCACHE].sets, L1_cache_info[DCACHE].ways,
- L1_cache_info[DCACHE].line_size);
- pr_info("L1 D-Cache is %s\n", WRITE_METHOD);
- if (L1_cache_info[DCACHE].size != L1_CACHE_BYTES)
- pr_crit
- ("The cache line size(%d) of this processor is not the same as L1_CACHE_BYTES(%d).\n",
- L1_cache_info[DCACHE].size, L1_CACHE_BYTES);
-#ifdef CONFIG_CPU_CACHE_ALIASING
- {
- int aliasing_num;
- aliasing_num =
- L1_cache_info[ICACHE].size * 1024 / PAGE_SIZE /
- L1_cache_info[ICACHE].ways;
- L1_cache_info[ICACHE].aliasing_num = aliasing_num;
- L1_cache_info[ICACHE].aliasing_mask =
- (aliasing_num - 1) << PAGE_SHIFT;
- aliasing_num =
- L1_cache_info[DCACHE].size * 1024 / PAGE_SIZE /
- L1_cache_info[DCACHE].ways;
- L1_cache_info[DCACHE].aliasing_num = aliasing_num;
- L1_cache_info[DCACHE].aliasing_mask =
- (aliasing_num - 1) << PAGE_SHIFT;
- }
-#endif
-#ifdef CONFIG_FPU
- /* Disable fpu and enable when it is used. */
- if (has_fpu)
- disable_fpu();
-#endif
-}
-
-static void __init setup_cpuinfo(void)
-{
- unsigned long tmp = 0, cpu_name;
-
- cpu_dcache_inval_all();
- cpu_icache_inval_all();
- __nds32__isb();
-
- cpu_id = (__nds32__mfsr(NDS32_SR_CPU_VER) & CPU_VER_mskCPUID) >> CPU_VER_offCPUID;
- cpu_name = ((cpu_id) & 0xf0) >> 4;
- cpu_series = cpu_name ? cpu_name - 10 + 'A' : 'N';
- cpu_id = cpu_id & 0xf;
- cpu_rev = (__nds32__mfsr(NDS32_SR_CPU_VER) & CPU_VER_mskREV) >> CPU_VER_offREV;
- cpu_cfgid = (__nds32__mfsr(NDS32_SR_CPU_VER) & CPU_VER_mskCFGID) >> CPU_VER_offCFGID;
-
- pr_info("CPU:%c%ld, CPU_VER 0x%08x(id %lu, rev %lu, cfg %lu)\n",
- cpu_series, cpu_id, __nds32__mfsr(NDS32_SR_CPU_VER), cpu_id, cpu_rev, cpu_cfgid);
-
- elf_hwcap |= HWCAP_MFUSR_PC;
-
- if (((__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskBASEV) >> MSC_CFG_offBASEV) == 0) {
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskDIV)
- elf_hwcap |= HWCAP_DIV;
-
- if ((__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskMAC)
- || (cpu_id == 12 && cpu_rev < 4))
- elf_hwcap |= HWCAP_MAC;
- } else {
- elf_hwcap |= HWCAP_V2;
- elf_hwcap |= HWCAP_DIV;
- elf_hwcap |= HWCAP_MAC;
- }
-
- if (cpu_cfgid & 0x0001)
- elf_hwcap |= HWCAP_EXT;
-
- if (cpu_cfgid & 0x0002)
- elf_hwcap |= HWCAP_BASE16;
-
- if (cpu_cfgid & 0x0004)
- elf_hwcap |= HWCAP_EXT2;
-
- if (cpu_cfgid & 0x0008) {
- elf_hwcap |= HWCAP_FPU;
- has_fpu = true;
- }
- if (cpu_cfgid & 0x0010)
- elf_hwcap |= HWCAP_STRING;
-
- if (__nds32__mfsr(NDS32_SR_MMU_CFG) & MMU_CFG_mskDE)
- endianness = "MSB";
- else
- endianness = "LSB";
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskEDM)
- elf_hwcap |= HWCAP_EDM;
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskLMDMA)
- elf_hwcap |= HWCAP_LMDMA;
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskPFM)
- elf_hwcap |= HWCAP_PFM;
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskHSMP)
- elf_hwcap |= HWCAP_HSMP;
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskTRACE)
- elf_hwcap |= HWCAP_TRACE;
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskAUDIO)
- elf_hwcap |= HWCAP_AUDIO;
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskL2C)
- elf_hwcap |= HWCAP_L2C;
-
-#ifdef CONFIG_HW_PRE
- if (__nds32__mfsr(NDS32_SR_MISC_CTL) & MISC_CTL_makHWPRE_EN)
- elf_hwcap |= HWCAP_HWPRE;
-#endif
-
- tmp = __nds32__mfsr(NDS32_SR_CACHE_CTL);
- if (!IS_ENABLED(CONFIG_CPU_DCACHE_DISABLE))
- tmp |= CACHE_CTL_mskDC_EN;
-
- if (!IS_ENABLED(CONFIG_CPU_ICACHE_DISABLE))
- tmp |= CACHE_CTL_mskIC_EN;
- __nds32__mtsr_isb(tmp, NDS32_SR_CACHE_CTL);
-
- dump_cpu_info(smp_processor_id());
-}
-
-static void __init setup_memory(void)
-{
- unsigned long ram_start_pfn;
- unsigned long free_ram_start_pfn;
- phys_addr_t memory_start, memory_end;
-
- memory_end = memory_start = 0;
-
- /* Find main memory where is the kernel */
- memory_start = memblock_start_of_DRAM();
- memory_end = memblock_end_of_DRAM();
-
- if (!memory_end) {
- panic("No memory!");
- }
-
- ram_start_pfn = PFN_UP(memblock_start_of_DRAM());
- /* free_ram_start_pfn is first page after kernel */
- free_ram_start_pfn = PFN_UP(__pa(&_end));
- max_pfn = PFN_DOWN(memblock_end_of_DRAM());
- /* it could update max_pfn */
- if (max_pfn - ram_start_pfn <= MAXMEM_PFN)
- max_low_pfn = max_pfn;
- else {
- max_low_pfn = MAXMEM_PFN + ram_start_pfn;
- if (!IS_ENABLED(CONFIG_HIGHMEM))
- max_pfn = MAXMEM_PFN + ram_start_pfn;
- }
- /* high_memory is related with VMALLOC */
- high_memory = (void *)__va(max_low_pfn * PAGE_SIZE);
- min_low_pfn = free_ram_start_pfn;
-
- /*
- * initialize the boot-time allocator (with low memory only).
- *
- * This makes the memory from the end of the kernel to the end of
- * RAM usable.
- */
- memblock_set_bottom_up(true);
- memblock_reserve(PFN_PHYS(ram_start_pfn), PFN_PHYS(free_ram_start_pfn - ram_start_pfn));
-
- early_init_fdt_reserve_self();
- early_init_fdt_scan_reserved_mem();
-
- memblock_dump_all();
-}
-
-void __init setup_arch(char **cmdline_p)
-{
- early_init_devtree(__atags_pointer ? \
- phys_to_virt(__atags_pointer) : __dtb_start);
-
- setup_cpuinfo();
-
- setup_initial_init_mm(_stext, _etext, _edata, _end);
-
- /* setup bootmem allocator */
- setup_memory();
-
- /* paging_init() sets up the MMU and marks all pages as reserved */
- paging_init();
-
- /* invalidate all TLB entries because the new mapping is created */
- __nds32__tlbop_flua();
-
- /* use generic way to parse */
- parse_early_param();
-
- unflatten_and_copy_device_tree();
-
- *cmdline_p = boot_command_line;
- early_trap_init();
-}
-
-static int c_show(struct seq_file *m, void *v)
-{
- int i;
-
- seq_printf(m, "Processor\t: %c%ld (id %lu, rev %lu, cfg %lu)\n",
- cpu_series, cpu_id, cpu_id, cpu_rev, cpu_cfgid);
-
- seq_printf(m, "L1I\t\t: %luKB/%luS/%luW/%luB\n",
- CACHE_SET(ICACHE) * CACHE_WAY(ICACHE) *
- CACHE_LINE_SIZE(ICACHE) / 1024, CACHE_SET(ICACHE),
- CACHE_WAY(ICACHE), CACHE_LINE_SIZE(ICACHE));
-
- seq_printf(m, "L1D\t\t: %luKB/%luS/%luW/%luB\n",
- CACHE_SET(DCACHE) * CACHE_WAY(DCACHE) *
- CACHE_LINE_SIZE(DCACHE) / 1024, CACHE_SET(DCACHE),
- CACHE_WAY(DCACHE), CACHE_LINE_SIZE(DCACHE));
-
- seq_printf(m, "BogoMIPS\t: %lu.%02lu\n",
- loops_per_jiffy / (500000 / HZ),
- (loops_per_jiffy / (5000 / HZ)) % 100);
-
- /* dump out the processor features */
- seq_puts(m, "Features\t: ");
-
- for (i = 0; hwcap_str[i]; i++)
- if (elf_hwcap & (1 << i))
- seq_printf(m, "%s ", hwcap_str[i]);
-
- seq_puts(m, "\n\n");
-
- return 0;
-}
-
-static void *c_start(struct seq_file *m, loff_t * pos)
-{
- return *pos < 1 ? (void *)1 : NULL;
-}
-
-static void *c_next(struct seq_file *m, void *v, loff_t * pos)
-{
- ++*pos;
- return NULL;
-}
-
-static void c_stop(struct seq_file *m, void *v)
-{
-}
-
-struct seq_operations cpuinfo_op = {
- .start = c_start,
- .next = c_next,
- .stop = c_stop,
- .show = c_show
-};
diff --git a/arch/nds32/kernel/signal.c b/arch/nds32/kernel/signal.c
deleted file mode 100644
index 7e3ca430a223..000000000000
--- a/arch/nds32/kernel/signal.c
+++ /dev/null
@@ -1,384 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/errno.h>
-#include <linux/signal.h>
-#include <linux/ptrace.h>
-#include <linux/personality.h>
-#include <linux/freezer.h>
-#include <linux/tracehook.h>
-#include <linux/uaccess.h>
-
-#include <asm/cacheflush.h>
-#include <asm/ucontext.h>
-#include <asm/unistd.h>
-#include <asm/fpu.h>
-
-#include <asm/ptrace.h>
-#include <asm/vdso.h>
-
-struct rt_sigframe {
- struct siginfo info;
- struct ucontext uc;
-};
-#if IS_ENABLED(CONFIG_FPU)
-static inline int restore_sigcontext_fpu(struct pt_regs *regs,
- struct sigcontext __user *sc)
-{
- struct task_struct *tsk = current;
- unsigned long used_math_flag;
- int ret = 0;
-
- clear_used_math();
- __get_user_error(used_math_flag, &sc->used_math_flag, ret);
-
- if (!used_math_flag)
- return 0;
- set_used_math();
-
-#if IS_ENABLED(CONFIG_LAZY_FPU)
- preempt_disable();
- if (current == last_task_used_math) {
- last_task_used_math = NULL;
- disable_ptreg_fpu(regs);
- }
- preempt_enable();
-#else
- clear_fpu(regs);
-#endif
-
- return __copy_from_user(&tsk->thread.fpu, &sc->fpu,
- sizeof(struct fpu_struct));
-}
-
-static inline int setup_sigcontext_fpu(struct pt_regs *regs,
- struct sigcontext __user *sc)
-{
- struct task_struct *tsk = current;
- int ret = 0;
-
- __put_user_error(used_math(), &sc->used_math_flag, ret);
-
- if (!used_math())
- return ret;
-
- preempt_disable();
-#if IS_ENABLED(CONFIG_LAZY_FPU)
- if (last_task_used_math == tsk)
- save_fpu(last_task_used_math);
-#else
- unlazy_fpu(tsk);
-#endif
- ret = __copy_to_user(&sc->fpu, &tsk->thread.fpu,
- sizeof(struct fpu_struct));
- preempt_enable();
- return ret;
-}
-#endif
-
-static int restore_sigframe(struct pt_regs *regs,
- struct rt_sigframe __user * sf)
-{
- sigset_t set;
- int err;
-
- err = __copy_from_user(&set, &sf->uc.uc_sigmask, sizeof(set));
- if (err == 0) {
- set_current_blocked(&set);
- }
-
- __get_user_error(regs->uregs[0], &sf->uc.uc_mcontext.nds32_r0, err);
- __get_user_error(regs->uregs[1], &sf->uc.uc_mcontext.nds32_r1, err);
- __get_user_error(regs->uregs[2], &sf->uc.uc_mcontext.nds32_r2, err);
- __get_user_error(regs->uregs[3], &sf->uc.uc_mcontext.nds32_r3, err);
- __get_user_error(regs->uregs[4], &sf->uc.uc_mcontext.nds32_r4, err);
- __get_user_error(regs->uregs[5], &sf->uc.uc_mcontext.nds32_r5, err);
- __get_user_error(regs->uregs[6], &sf->uc.uc_mcontext.nds32_r6, err);
- __get_user_error(regs->uregs[7], &sf->uc.uc_mcontext.nds32_r7, err);
- __get_user_error(regs->uregs[8], &sf->uc.uc_mcontext.nds32_r8, err);
- __get_user_error(regs->uregs[9], &sf->uc.uc_mcontext.nds32_r9, err);
- __get_user_error(regs->uregs[10], &sf->uc.uc_mcontext.nds32_r10, err);
- __get_user_error(regs->uregs[11], &sf->uc.uc_mcontext.nds32_r11, err);
- __get_user_error(regs->uregs[12], &sf->uc.uc_mcontext.nds32_r12, err);
- __get_user_error(regs->uregs[13], &sf->uc.uc_mcontext.nds32_r13, err);
- __get_user_error(regs->uregs[14], &sf->uc.uc_mcontext.nds32_r14, err);
- __get_user_error(regs->uregs[15], &sf->uc.uc_mcontext.nds32_r15, err);
- __get_user_error(regs->uregs[16], &sf->uc.uc_mcontext.nds32_r16, err);
- __get_user_error(regs->uregs[17], &sf->uc.uc_mcontext.nds32_r17, err);
- __get_user_error(regs->uregs[18], &sf->uc.uc_mcontext.nds32_r18, err);
- __get_user_error(regs->uregs[19], &sf->uc.uc_mcontext.nds32_r19, err);
- __get_user_error(regs->uregs[20], &sf->uc.uc_mcontext.nds32_r20, err);
- __get_user_error(regs->uregs[21], &sf->uc.uc_mcontext.nds32_r21, err);
- __get_user_error(regs->uregs[22], &sf->uc.uc_mcontext.nds32_r22, err);
- __get_user_error(regs->uregs[23], &sf->uc.uc_mcontext.nds32_r23, err);
- __get_user_error(regs->uregs[24], &sf->uc.uc_mcontext.nds32_r24, err);
- __get_user_error(regs->uregs[25], &sf->uc.uc_mcontext.nds32_r25, err);
-
- __get_user_error(regs->fp, &sf->uc.uc_mcontext.nds32_fp, err);
- __get_user_error(regs->gp, &sf->uc.uc_mcontext.nds32_gp, err);
- __get_user_error(regs->lp, &sf->uc.uc_mcontext.nds32_lp, err);
- __get_user_error(regs->sp, &sf->uc.uc_mcontext.nds32_sp, err);
- __get_user_error(regs->ipc, &sf->uc.uc_mcontext.nds32_ipc, err);
-#if defined(CONFIG_HWZOL)
- __get_user_error(regs->lc, &sf->uc.uc_mcontext.zol.nds32_lc, err);
- __get_user_error(regs->le, &sf->uc.uc_mcontext.zol.nds32_le, err);
- __get_user_error(regs->lb, &sf->uc.uc_mcontext.zol.nds32_lb, err);
-#endif
-#if IS_ENABLED(CONFIG_FPU)
- err |= restore_sigcontext_fpu(regs, &sf->uc.uc_mcontext);
-#endif
- /*
- * Avoid sys_rt_sigreturn() restarting.
- */
- forget_syscall(regs);
- return err;
-}
-
-asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
-{
- struct rt_sigframe __user *frame;
-
- /* Always make any pending restarted system calls return -EINTR */
- current->restart_block.fn = do_no_restart_syscall;
-
- /*
- * Since we stacked the signal on a 64-bit boundary,
- * then 'sp' should be two-word aligned here. If it's
- * not, then the user is trying to mess with us.
- */
- if (regs->sp & 7)
- goto badframe;
-
- frame = (struct rt_sigframe __user *)regs->sp;
-
- if (!access_ok(frame, sizeof(*frame)))
- goto badframe;
-
- if (restore_sigframe(regs, frame))
- goto badframe;
-
- if (restore_altstack(&frame->uc.uc_stack))
- goto badframe;
-
- return regs->uregs[0];
-
-badframe:
- force_sig(SIGSEGV);
- return 0;
-}
-
-static int
-setup_sigframe(struct rt_sigframe __user * sf, struct pt_regs *regs,
- sigset_t * set)
-{
- int err = 0;
-
- __put_user_error(regs->uregs[0], &sf->uc.uc_mcontext.nds32_r0, err);
- __put_user_error(regs->uregs[1], &sf->uc.uc_mcontext.nds32_r1, err);
- __put_user_error(regs->uregs[2], &sf->uc.uc_mcontext.nds32_r2, err);
- __put_user_error(regs->uregs[3], &sf->uc.uc_mcontext.nds32_r3, err);
- __put_user_error(regs->uregs[4], &sf->uc.uc_mcontext.nds32_r4, err);
- __put_user_error(regs->uregs[5], &sf->uc.uc_mcontext.nds32_r5, err);
- __put_user_error(regs->uregs[6], &sf->uc.uc_mcontext.nds32_r6, err);
- __put_user_error(regs->uregs[7], &sf->uc.uc_mcontext.nds32_r7, err);
- __put_user_error(regs->uregs[8], &sf->uc.uc_mcontext.nds32_r8, err);
- __put_user_error(regs->uregs[9], &sf->uc.uc_mcontext.nds32_r9, err);
- __put_user_error(regs->uregs[10], &sf->uc.uc_mcontext.nds32_r10, err);
- __put_user_error(regs->uregs[11], &sf->uc.uc_mcontext.nds32_r11, err);
- __put_user_error(regs->uregs[12], &sf->uc.uc_mcontext.nds32_r12, err);
- __put_user_error(regs->uregs[13], &sf->uc.uc_mcontext.nds32_r13, err);
- __put_user_error(regs->uregs[14], &sf->uc.uc_mcontext.nds32_r14, err);
- __put_user_error(regs->uregs[15], &sf->uc.uc_mcontext.nds32_r15, err);
- __put_user_error(regs->uregs[16], &sf->uc.uc_mcontext.nds32_r16, err);
- __put_user_error(regs->uregs[17], &sf->uc.uc_mcontext.nds32_r17, err);
- __put_user_error(regs->uregs[18], &sf->uc.uc_mcontext.nds32_r18, err);
- __put_user_error(regs->uregs[19], &sf->uc.uc_mcontext.nds32_r19, err);
- __put_user_error(regs->uregs[20], &sf->uc.uc_mcontext.nds32_r20, err);
-
- __put_user_error(regs->uregs[21], &sf->uc.uc_mcontext.nds32_r21, err);
- __put_user_error(regs->uregs[22], &sf->uc.uc_mcontext.nds32_r22, err);
- __put_user_error(regs->uregs[23], &sf->uc.uc_mcontext.nds32_r23, err);
- __put_user_error(regs->uregs[24], &sf->uc.uc_mcontext.nds32_r24, err);
- __put_user_error(regs->uregs[25], &sf->uc.uc_mcontext.nds32_r25, err);
- __put_user_error(regs->fp, &sf->uc.uc_mcontext.nds32_fp, err);
- __put_user_error(regs->gp, &sf->uc.uc_mcontext.nds32_gp, err);
- __put_user_error(regs->lp, &sf->uc.uc_mcontext.nds32_lp, err);
- __put_user_error(regs->sp, &sf->uc.uc_mcontext.nds32_sp, err);
- __put_user_error(regs->ipc, &sf->uc.uc_mcontext.nds32_ipc, err);
-#if defined(CONFIG_HWZOL)
- __put_user_error(regs->lc, &sf->uc.uc_mcontext.zol.nds32_lc, err);
- __put_user_error(regs->le, &sf->uc.uc_mcontext.zol.nds32_le, err);
- __put_user_error(regs->lb, &sf->uc.uc_mcontext.zol.nds32_lb, err);
-#endif
-#if IS_ENABLED(CONFIG_FPU)
- err |= setup_sigcontext_fpu(regs, &sf->uc.uc_mcontext);
-#endif
-
- __put_user_error(current->thread.trap_no, &sf->uc.uc_mcontext.trap_no,
- err);
- __put_user_error(current->thread.error_code,
- &sf->uc.uc_mcontext.error_code, err);
- __put_user_error(current->thread.address,
- &sf->uc.uc_mcontext.fault_address, err);
- __put_user_error(set->sig[0], &sf->uc.uc_mcontext.oldmask, err);
-
- err |= __copy_to_user(&sf->uc.uc_sigmask, set, sizeof(*set));
-
- return err;
-}
-
-static inline void __user *get_sigframe(struct ksignal *ksig,
- struct pt_regs *regs, int framesize)
-{
- unsigned long sp;
-
- /* Default to using normal stack */
- sp = regs->sp;
-
- /*
- * If we are on the alternate signal stack and would overflow it, don't.
- * Return an always-bogus address instead so we will die with SIGSEGV.
- */
- if (on_sig_stack(sp) && !likely(on_sig_stack(sp - framesize)))
- return (void __user __force *)(-1UL);
-
- /* This is the X/Open sanctioned signal stack switching. */
- sp = (sigsp(sp, ksig) - framesize);
-
- /*
- * nds32 mandates 8-byte alignment
- */
- sp &= ~0x7UL;
-
- return (void __user *)sp;
-}
-
-static int
-setup_return(struct pt_regs *regs, struct ksignal *ksig, void __user * frame)
-{
- unsigned long handler = (unsigned long)ksig->ka.sa.sa_handler;
- unsigned long retcode;
-
- retcode = VDSO_SYMBOL(current->mm->context.vdso, rt_sigtramp);
- regs->uregs[0] = ksig->sig;
- regs->sp = (unsigned long)frame;
- regs->lp = retcode;
- regs->ipc = handler;
-
- return 0;
-}
-
-static int
-setup_rt_frame(struct ksignal *ksig, sigset_t * set, struct pt_regs *regs)
-{
- struct rt_sigframe __user *frame =
- get_sigframe(ksig, regs, sizeof(*frame));
- int err = 0;
-
- if (!access_ok(frame, sizeof(*frame)))
- return -EFAULT;
-
- __put_user_error(0, &frame->uc.uc_flags, err);
- __put_user_error(NULL, &frame->uc.uc_link, err);
-
- err |= __save_altstack(&frame->uc.uc_stack, regs->sp);
- err |= setup_sigframe(frame, regs, set);
- if (err == 0) {
- setup_return(regs, ksig, frame);
- if (ksig->ka.sa.sa_flags & SA_SIGINFO) {
- err |= copy_siginfo_to_user(&frame->info, &ksig->info);
- regs->uregs[1] = (unsigned long)&frame->info;
- regs->uregs[2] = (unsigned long)&frame->uc;
- }
- }
- return err;
-}
-
-/*
- * OK, we're invoking a handler
- */
-static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
-{
- int ret;
- sigset_t *oldset = sigmask_to_save();
-
- if (in_syscall(regs)) {
- /* Avoid additional syscall restarting via ret_slow_syscall. */
- forget_syscall(regs);
-
- switch (regs->uregs[0]) {
- case -ERESTART_RESTARTBLOCK:
- case -ERESTARTNOHAND:
- regs->uregs[0] = -EINTR;
- break;
- case -ERESTARTSYS:
- if (!(ksig->ka.sa.sa_flags & SA_RESTART)) {
- regs->uregs[0] = -EINTR;
- break;
- }
- fallthrough;
- case -ERESTARTNOINTR:
- regs->uregs[0] = regs->orig_r0;
- regs->ipc -= 4;
- break;
- }
- }
- /*
- * Set up the stack frame
- */
- ret = setup_rt_frame(ksig, oldset, regs);
-
- signal_setup_done(ret, ksig, 0);
-}
-
-/*
- * Note that 'init' is a special process: it doesn't get signals it doesn't
- * want to handle. Thus you cannot kill init even with a SIGKILL even by
- * mistake.
- *
- * Note that we go through the signals twice: once to check the signals that
- * the kernel can handle, and then we build all the user-level signal handling
- * stack-frames in one go after that.
- */
-static void do_signal(struct pt_regs *regs)
-{
- struct ksignal ksig;
-
- if (get_signal(&ksig)) {
- handle_signal(&ksig, regs);
- return;
- }
-
- /*
- * If we were from a system call, check for system call restarting...
- */
- if (in_syscall(regs)) {
- /* Restart the system call - no handlers present */
-
- /* Avoid additional syscall restarting via ret_slow_syscall. */
- forget_syscall(regs);
-
- switch (regs->uregs[0]) {
- case -ERESTART_RESTARTBLOCK:
- regs->uregs[15] = __NR_restart_syscall;
- fallthrough;
- case -ERESTARTNOHAND:
- case -ERESTARTSYS:
- case -ERESTARTNOINTR:
- regs->uregs[0] = regs->orig_r0;
- regs->ipc -= 0x4;
- break;
- }
- }
- restore_saved_sigmask();
-}
-
-asmlinkage void
-do_notify_resume(struct pt_regs *regs, unsigned int thread_flags)
-{
- if (thread_flags & (_TIF_SIGPENDING | _TIF_NOTIFY_SIGNAL))
- do_signal(regs);
-
- if (thread_flags & _TIF_NOTIFY_RESUME)
- tracehook_notify_resume(regs);
-}
diff --git a/arch/nds32/kernel/sleep.S b/arch/nds32/kernel/sleep.S
deleted file mode 100644
index ca4e61f3656f..000000000000
--- a/arch/nds32/kernel/sleep.S
+++ /dev/null
@@ -1,131 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2017 Andes Technology Corporation */
-
-#include <asm/memory.h>
-
-.data
-.global sp_tmp
-sp_tmp:
-.long
-
-.text
-.globl suspend2ram
-.globl cpu_resume
-
-suspend2ram:
- pushm $r0, $r31
-#if defined(CONFIG_HWZOL)
- mfusr $r0, $lc
- mfusr $r1, $le
- mfusr $r2, $lb
-#endif
- mfsr $r3, $mr0
- mfsr $r4, $mr1
- mfsr $r5, $mr4
- mfsr $r6, $mr6
- mfsr $r7, $mr7
- mfsr $r8, $mr8
- mfsr $r9, $ir0
- mfsr $r10, $ir1
- mfsr $r11, $ir2
- mfsr $r12, $ir3
- mfsr $r13, $ir9
- mfsr $r14, $ir10
- mfsr $r15, $ir12
- mfsr $r16, $ir13
- mfsr $r17, $ir14
- mfsr $r18, $ir15
- pushm $r0, $r19
-#if defined(CONFIG_FPU)
- jal store_fpu_for_suspend
-#endif
- tlbop FlushAll
- isb
-
- // transfer $sp from va to pa
- sethi $r0, hi20(PAGE_OFFSET)
- ori $r0, $r0, lo12(PAGE_OFFSET)
- movi $r2, PHYS_OFFSET
- sub $r1, $sp, $r0
- add $r2, $r1, $r2
-
- // store pa($sp) to sp_tmp
- sethi $r1, hi20(sp_tmp)
- swi $r2, [$r1 + lo12(sp_tmp)]
-
- pushm $r16, $r25
- pushm $r29, $r30
-#ifdef CONFIG_CACHE_L2
- jal dcache_wb_all_level
-#else
- jal cpu_dcache_wb_all
-#endif
- popm $r29, $r30
- popm $r16, $r25
-
- // get wake_mask and loop in standby
- la $r1, wake_mask
- lwi $r1, [$r1]
-self_loop:
- standby wake_grant
- mfsr $r2, $ir15
- and $r2, $r1, $r2
- beqz $r2, self_loop
-
- // set ipc to resume address
- la $r1, resume_addr
- lwi $r1, [$r1]
- mtsr $r1, $ipc
- isb
-
- // reset psw, turn off the address translation
- li $r2, 0x7000a
- mtsr $r2, $ipsw
- isb
-
- iret
-cpu_resume:
- // translate the address of sp_tmp variable to pa
- la $r1, sp_tmp
- sethi $r0, hi20(PAGE_OFFSET)
- ori $r0, $r0, lo12(PAGE_OFFSET)
- movi $r2, PHYS_OFFSET
- sub $r1, $r1, $r0
- add $r1, $r1, $r2
-
- // access the sp_tmp to get stack pointer
- lwi $sp, [$r1]
-
- popm $r0, $r19
-#if defined(CONFIG_HWZOL)
- mtusr $r0, $lb
- mtusr $r1, $lc
- mtusr $r2, $le
-#endif
- mtsr $r3, $mr0
- mtsr $r4, $mr1
- mtsr $r5, $mr4
- mtsr $r6, $mr6
- mtsr $r7, $mr7
- mtsr $r8, $mr8
- // set original psw to ipsw
- mtsr $r9, $ir1
-
- mtsr $r11, $ir2
- mtsr $r12, $ir3
-
- // set ipc to RR
- la $r13, RR
- mtsr $r13, $ir9
-
- mtsr $r14, $ir10
- mtsr $r15, $ir12
- mtsr $r16, $ir13
- mtsr $r17, $ir14
- mtsr $r18, $ir15
- popm $r0, $r31
-
- isb
- iret
-RR:
- ret
diff --git a/arch/nds32/kernel/stacktrace.c b/arch/nds32/kernel/stacktrace.c
deleted file mode 100644
index d974c0c1c65f..000000000000
--- a/arch/nds32/kernel/stacktrace.c
+++ /dev/null
@@ -1,53 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/sched/debug.h>
-#include <linux/sched/task_stack.h>
-#include <linux/stacktrace.h>
-#include <linux/ftrace.h>
-
-void save_stack_trace(struct stack_trace *trace)
-{
- save_stack_trace_tsk(current, trace);
-}
-EXPORT_SYMBOL_GPL(save_stack_trace);
-
-void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
-{
- unsigned long *fpn;
- int skip = trace->skip;
- int savesched;
- int graph_idx = 0;
-
- if (tsk == current) {
- __asm__ __volatile__("\tori\t%0, $fp, #0\n":"=r"(fpn));
- savesched = 1;
- } else {
- fpn = (unsigned long *)thread_saved_fp(tsk);
- savesched = 0;
- }
-
- while (!kstack_end(fpn) && !((unsigned long)fpn & 0x3)
- && (fpn >= (unsigned long *)TASK_SIZE)) {
- unsigned long lpp, fpp;
-
- lpp = fpn[LP_OFFSET];
- fpp = fpn[FP_OFFSET];
- if (!__kernel_text_address(lpp))
- break;
- else
- lpp = ftrace_graph_ret_addr(tsk, &graph_idx, lpp, NULL);
-
- if (savesched || !in_sched_functions(lpp)) {
- if (skip) {
- skip--;
- } else {
- trace->entries[trace->nr_entries++] = lpp;
- if (trace->nr_entries >= trace->max_entries)
- break;
- }
- }
- fpn = (unsigned long *)fpp;
- }
-}
-EXPORT_SYMBOL_GPL(save_stack_trace_tsk);
diff --git a/arch/nds32/kernel/sys_nds32.c b/arch/nds32/kernel/sys_nds32.c
deleted file mode 100644
index cb2d1e219bb3..000000000000
--- a/arch/nds32/kernel/sys_nds32.c
+++ /dev/null
@@ -1,84 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/syscalls.h>
-#include <linux/uaccess.h>
-
-#include <asm/cachectl.h>
-#include <asm/proc-fns.h>
-#include <asm/fpu.h>
-#include <asm/fp_udfiex_crtl.h>
-
-SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len,
- unsigned long, prot, unsigned long, flags,
- unsigned long, fd, unsigned long, pgoff)
-{
- if (pgoff & (~PAGE_MASK >> 12))
- return -EINVAL;
-
- return sys_mmap_pgoff(addr, len, prot, flags, fd,
- pgoff >> (PAGE_SHIFT - 12));
-}
-
-SYSCALL_DEFINE4(fadvise64_64_wrapper,int, fd, int, advice, loff_t, offset,
- loff_t, len)
-{
- return sys_fadvise64_64(fd, offset, len, advice);
-}
-
-SYSCALL_DEFINE3(cacheflush, unsigned int, start, unsigned int, end, int, cache)
-{
- struct vm_area_struct *vma;
- bool flushi = true, wbd = true;
-
- vma = find_vma(current->mm, start);
- if (!vma)
- return -EFAULT;
- switch (cache) {
- case ICACHE:
- wbd = false;
- break;
- case DCACHE:
- flushi = false;
- break;
- case BCACHE:
- break;
- default:
- return -EINVAL;
- }
- cpu_cache_wbinval_range_check(vma, start, end, flushi, wbd);
-
- return 0;
-}
-
-SYSCALL_DEFINE2(fp_udfiex_crtl, unsigned int, cmd, unsigned int, act)
-{
-#if IS_ENABLED(CONFIG_SUPPORT_DENORMAL_ARITHMETIC)
- int old_udf_iex;
-
- if (!used_math()) {
- load_fpu(&init_fpuregs);
- current->thread.fpu.UDF_IEX_trap = init_fpuregs.UDF_IEX_trap;
- set_used_math();
- }
-
- old_udf_iex = current->thread.fpu.UDF_IEX_trap;
- act &= (FPCSR_mskUDFE | FPCSR_mskIEXE);
-
- switch (cmd) {
- case DISABLE_UDF_IEX_TRAP:
- current->thread.fpu.UDF_IEX_trap &= ~act;
- break;
- case ENABLE_UDF_IEX_TRAP:
- current->thread.fpu.UDF_IEX_trap |= act;
- break;
- case GET_UDF_IEX_TRAP:
- break;
- default:
- return -EINVAL;
- }
- return old_udf_iex;
-#else
- return -ENOTSUPP;
-#endif
-}
diff --git a/arch/nds32/kernel/syscall_table.c b/arch/nds32/kernel/syscall_table.c
deleted file mode 100644
index 7879c061b87f..000000000000
--- a/arch/nds32/kernel/syscall_table.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/syscalls.h>
-#include <linux/signal.h>
-#include <linux/unistd.h>
-#include <asm/syscalls.h>
-
-#undef __SYSCALL
-#define __SYSCALL(nr, call) [nr] = (call),
-
-#define sys_rt_sigreturn sys_rt_sigreturn_wrapper
-#define sys_fadvise64_64 sys_fadvise64_64_wrapper
-void *sys_call_table[__NR_syscalls] __aligned(8192) = {
- [0 ... __NR_syscalls - 1] = sys_ni_syscall,
-#include <asm/unistd.h>
-};
diff --git a/arch/nds32/kernel/time.c b/arch/nds32/kernel/time.c
deleted file mode 100644
index 574a3d0a8539..000000000000
--- a/arch/nds32/kernel/time.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/clocksource.h>
-#include <linux/of_clk.h>
-
-void __init time_init(void)
-{
- of_clk_init(NULL);
- timer_probe();
-}
diff --git a/arch/nds32/kernel/traps.c b/arch/nds32/kernel/traps.c
deleted file mode 100644
index c0a8f3344fb9..000000000000
--- a/arch/nds32/kernel/traps.c
+++ /dev/null
@@ -1,354 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/module.h>
-#include <linux/personality.h>
-#include <linux/kallsyms.h>
-#include <linux/hardirq.h>
-#include <linux/kdebug.h>
-#include <linux/sched/task_stack.h>
-#include <linux/uaccess.h>
-#include <linux/ftrace.h>
-
-#include <asm/proc-fns.h>
-#include <asm/unistd.h>
-#include <asm/fpu.h>
-
-#include <linux/ptrace.h>
-#include <nds32_intrinsic.h>
-
-extern void show_pte(struct mm_struct *mm, unsigned long addr);
-
-/*
- * Dump out the contents of some memory nicely...
- */
-void dump_mem(const char *lvl, unsigned long bottom, unsigned long top)
-{
- unsigned long first;
- int i;
-
- pr_emerg("%s(0x%08lx to 0x%08lx)\n", lvl, bottom, top);
-
- for (first = bottom & ~31; first < top; first += 32) {
- unsigned long p;
- char str[sizeof(" 12345678") * 8 + 1];
-
- memset(str, ' ', sizeof(str));
- str[sizeof(str) - 1] = '\0';
-
- for (p = first, i = 0; i < 8 && p < top; i++, p += 4) {
- if (p >= bottom && p < top) {
- unsigned long val;
-
- if (get_kernel_nofault(val,
- (unsigned long *)p) == 0)
- sprintf(str + i * 9, " %08lx", val);
- else
- sprintf(str + i * 9, " ????????");
- }
- }
- pr_emerg("%s%04lx:%s\n", lvl, first & 0xffff, str);
- }
-}
-
-EXPORT_SYMBOL(dump_mem);
-
-#define LOOP_TIMES (100)
-static void __dump(struct task_struct *tsk, unsigned long *base_reg,
- const char *loglvl)
-{
- unsigned long ret_addr;
- int cnt = LOOP_TIMES, graph = 0;
- printk("%sCall Trace:\n", loglvl);
- if (!IS_ENABLED(CONFIG_FRAME_POINTER)) {
- while (!kstack_end(base_reg)) {
- ret_addr = *base_reg++;
- if (__kernel_text_address(ret_addr)) {
- ret_addr = ftrace_graph_ret_addr(
- tsk, &graph, ret_addr, NULL);
- print_ip_sym(loglvl, ret_addr);
- }
- if (--cnt < 0)
- break;
- }
- } else {
- while (!kstack_end((void *)base_reg) &&
- !((unsigned long)base_reg & 0x3) &&
- ((unsigned long)base_reg >= TASK_SIZE)) {
- unsigned long next_fp;
- ret_addr = base_reg[LP_OFFSET];
- next_fp = base_reg[FP_OFFSET];
- if (__kernel_text_address(ret_addr)) {
-
- ret_addr = ftrace_graph_ret_addr(
- tsk, &graph, ret_addr, NULL);
- print_ip_sym(loglvl, ret_addr);
- }
- if (--cnt < 0)
- break;
- base_reg = (unsigned long *)next_fp;
- }
- }
- printk("%s\n", loglvl);
-}
-
-void show_stack(struct task_struct *tsk, unsigned long *sp, const char *loglvl)
-{
- unsigned long *base_reg;
-
- if (!tsk)
- tsk = current;
- if (!IS_ENABLED(CONFIG_FRAME_POINTER)) {
- if (tsk != current)
- base_reg = (unsigned long *)(tsk->thread.cpu_context.sp);
- else
- __asm__ __volatile__("\tori\t%0, $sp, #0\n":"=r"(base_reg));
- } else {
- if (tsk != current)
- base_reg = (unsigned long *)(tsk->thread.cpu_context.fp);
- else
- __asm__ __volatile__("\tori\t%0, $fp, #0\n":"=r"(base_reg));
- }
- __dump(tsk, base_reg, loglvl);
- barrier();
-}
-
-DEFINE_SPINLOCK(die_lock);
-
-/*
- * This function is protected against re-entrancy.
- */
-void __noreturn die(const char *str, struct pt_regs *regs, int err)
-{
- struct task_struct *tsk = current;
- static int die_counter;
-
- console_verbose();
- spin_lock_irq(&die_lock);
- bust_spinlocks(1);
-
- pr_emerg("Internal error: %s: %x [#%d]\n", str, err, ++die_counter);
- print_modules();
- pr_emerg("CPU: %i\n", smp_processor_id());
- show_regs(regs);
- pr_emerg("Process %s (pid: %d, stack limit = 0x%p)\n",
- tsk->comm, tsk->pid, end_of_stack(tsk));
-
- if (!user_mode(regs) || in_interrupt()) {
- dump_mem("Stack: ", regs->sp, (regs->sp + PAGE_SIZE) & PAGE_MASK);
- dump_stack();
- }
-
- bust_spinlocks(0);
- spin_unlock_irq(&die_lock);
- make_task_dead(SIGSEGV);
-}
-
-EXPORT_SYMBOL(die);
-
-void die_if_kernel(const char *str, struct pt_regs *regs, int err)
-{
- if (user_mode(regs))
- return;
-
- die(str, regs, err);
-}
-
-int bad_syscall(int n, struct pt_regs *regs)
-{
- if (current->personality != PER_LINUX) {
- send_sig(SIGSEGV, current, 1);
- return regs->uregs[0];
- }
-
- force_sig_fault(SIGILL, ILL_ILLTRP,
- (void __user *)instruction_pointer(regs) - 4);
- die_if_kernel("Oops - bad syscall", regs, n);
- return regs->uregs[0];
-}
-
-void __pte_error(const char *file, int line, unsigned long val)
-{
- pr_emerg("%s:%d: bad pte %08lx.\n", file, line, val);
-}
-
-void __pmd_error(const char *file, int line, unsigned long val)
-{
- pr_emerg("%s:%d: bad pmd %08lx.\n", file, line, val);
-}
-
-void __pgd_error(const char *file, int line, unsigned long val)
-{
- pr_emerg("%s:%d: bad pgd %08lx.\n", file, line, val);
-}
-
-extern char *exception_vector, *exception_vector_end;
-void __init early_trap_init(void)
-{
- unsigned long ivb = 0;
- unsigned long base = PAGE_OFFSET;
-
- memcpy((unsigned long *)base, (unsigned long *)&exception_vector,
- ((unsigned long)&exception_vector_end -
- (unsigned long)&exception_vector));
- ivb = __nds32__mfsr(NDS32_SR_IVB);
- /* Check platform support. */
- if (((ivb & IVB_mskNIVIC) >> IVB_offNIVIC) < 2)
- panic
- ("IVIC mode is not allowed on the platform with interrupt controller\n");
- __nds32__mtsr((ivb & ~IVB_mskESZ) | (IVB_valESZ16 << IVB_offESZ) |
- IVB_BASE, NDS32_SR_IVB);
- __nds32__mtsr(INT_MASK_INITAIAL_VAL, NDS32_SR_INT_MASK);
-
- /*
- * 0x800 = 128 vectors * 16byte.
- * It should be enough to flush a page.
- */
- cpu_cache_wbinval_page(base, true);
-}
-
-static void send_sigtrap(struct pt_regs *regs, int error_code, int si_code)
-{
- struct task_struct *tsk = current;
-
- tsk->thread.trap_no = ENTRY_DEBUG_RELATED;
- tsk->thread.error_code = error_code;
-
- force_sig_fault(SIGTRAP, si_code,
- (void __user *)instruction_pointer(regs));
-}
-
-void do_debug_trap(unsigned long entry, unsigned long addr,
- unsigned long type, struct pt_regs *regs)
-{
- if (notify_die(DIE_OOPS, "Oops", regs, addr, type, SIGTRAP)
- == NOTIFY_STOP)
- return;
-
- if (user_mode(regs)) {
- /* trap_signal */
- send_sigtrap(regs, 0, TRAP_BRKPT);
- } else {
- /* kernel_trap */
- if (!fixup_exception(regs))
- die("unexpected kernel_trap", regs, 0);
- }
-}
-
-void unhandled_interruption(struct pt_regs *regs)
-{
- pr_emerg("unhandled_interruption\n");
- show_regs(regs);
- if (!user_mode(regs))
- make_task_dead(SIGKILL);
- force_sig(SIGKILL);
-}
-
-void unhandled_exceptions(unsigned long entry, unsigned long addr,
- unsigned long type, struct pt_regs *regs)
-{
- pr_emerg("Unhandled Exception: entry: %lx addr:%lx itype:%lx\n", entry,
- addr, type);
- show_regs(regs);
- if (!user_mode(regs))
- make_task_dead(SIGKILL);
- force_sig(SIGKILL);
-}
-
-extern int do_page_fault(unsigned long entry, unsigned long addr,
- unsigned int error_code, struct pt_regs *regs);
-
-/*
- * 2:DEF dispatch for TLB MISC exception handler
-*/
-
-void do_dispatch_tlb_misc(unsigned long entry, unsigned long addr,
- unsigned long type, struct pt_regs *regs)
-{
- type = type & (ITYPE_mskINST | ITYPE_mskETYPE);
- if ((type & ITYPE_mskETYPE) < 5) {
- /* Permission exceptions */
- do_page_fault(entry, addr, type, regs);
- } else
- unhandled_exceptions(entry, addr, type, regs);
-}
-
-void do_revinsn(struct pt_regs *regs)
-{
- pr_emerg("Reserved Instruction\n");
- show_regs(regs);
- if (!user_mode(regs))
- make_task_dead(SIGILL);
- force_sig(SIGILL);
-}
-
-#ifdef CONFIG_ALIGNMENT_TRAP
-extern int unalign_access_mode;
-extern int do_unaligned_access(unsigned long addr, struct pt_regs *regs);
-#endif
-void do_dispatch_general(unsigned long entry, unsigned long addr,
- unsigned long itype, struct pt_regs *regs,
- unsigned long oipc)
-{
- unsigned int swid = itype >> ITYPE_offSWID;
- unsigned long type = itype & (ITYPE_mskINST | ITYPE_mskETYPE);
- if (type == ETYPE_ALIGNMENT_CHECK) {
-#ifdef CONFIG_ALIGNMENT_TRAP
- /* Alignment check */
- if (user_mode(regs) && unalign_access_mode) {
- int ret;
- ret = do_unaligned_access(addr, regs);
-
- if (ret == 0)
- return;
-
- if (ret == -EFAULT)
- pr_emerg
- ("Unhandled unaligned access exception\n");
- }
-#endif
- do_page_fault(entry, addr, type, regs);
- } else if (type == ETYPE_RESERVED_INSTRUCTION) {
- /* Reserved instruction */
- do_revinsn(regs);
- } else if (type == ETYPE_COPROCESSOR) {
- /* Coprocessor */
-#if IS_ENABLED(CONFIG_FPU)
- unsigned int fucop_exist = __nds32__mfsr(NDS32_SR_FUCOP_EXIST);
- unsigned int cpid = ((itype & ITYPE_mskCPID) >> ITYPE_offCPID);
-
- if ((cpid == FPU_CPID) &&
- (fucop_exist & FUCOP_EXIST_mskCP0ISFPU)) {
- unsigned int subtype = (itype & ITYPE_mskSTYPE);
-
- if (true == do_fpu_exception(subtype, regs))
- return;
- }
-#endif
- unhandled_exceptions(entry, addr, type, regs);
- } else if (type == ETYPE_TRAP && swid == SWID_RAISE_INTERRUPT_LEVEL) {
- /* trap, used on v3 EDM target debugging workaround */
- /*
- * DIPC(OIPC) is passed as parameter before
- * interrupt is enabled, so the DIPC will not be corrupted
- * even though interrupts are coming in
- */
- /*
- * 1. update ipc
- * 2. update pt_regs ipc with oipc
- * 3. update pt_regs ipsw (clear DEX)
- */
- __asm__ volatile ("mtsr %0, $IPC\n\t"::"r" (oipc));
- regs->ipc = oipc;
- if (regs->pipsw & PSW_mskDEX) {
- pr_emerg
- ("Nested Debug exception is possibly happened\n");
- pr_emerg("ipc:%08x pipc:%08x\n",
- (unsigned int)regs->ipc,
- (unsigned int)regs->pipc);
- }
- do_debug_trap(entry, addr, itype, regs);
- regs->ipsw &= ~PSW_mskDEX;
- } else
- unhandled_exceptions(entry, addr, type, regs);
-}
diff --git a/arch/nds32/kernel/vdso.c b/arch/nds32/kernel/vdso.c
deleted file mode 100644
index e16009a07971..000000000000
--- a/arch/nds32/kernel/vdso.c
+++ /dev/null
@@ -1,231 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2012 ARM Limited
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/cache.h>
-#include <linux/clocksource.h>
-#include <linux/elf.h>
-#include <linux/err.h>
-#include <linux/errno.h>
-#include <linux/gfp.h>
-#include <linux/kernel.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/signal.h>
-#include <linux/slab.h>
-#include <linux/timekeeper_internal.h>
-#include <linux/vmalloc.h>
-#include <linux/random.h>
-
-#include <asm/cacheflush.h>
-#include <asm/vdso.h>
-#include <asm/vdso_datapage.h>
-#include <asm/vdso_timer_info.h>
-#include <asm/cache_info.h>
-extern struct cache_info L1_cache_info[2];
-extern char vdso_start[], vdso_end[];
-static unsigned long vdso_pages __ro_after_init;
-static unsigned long timer_mapping_base;
-
-struct timer_info_t timer_info = {
- .cycle_count_down = true,
- .mapping_base = EMPTY_TIMER_MAPPING,
- .cycle_count_reg_offset = EMPTY_REG_OFFSET
-};
-/*
- * The vDSO data page.
- */
-static struct page *no_pages[] = { NULL };
-
-static union {
- struct vdso_data data;
- u8 page[PAGE_SIZE];
-} vdso_data_store __page_aligned_data;
-struct vdso_data *vdso_data = &vdso_data_store.data;
-static struct vm_special_mapping vdso_spec[2] __ro_after_init = {
- {
- .name = "[vvar]",
- .pages = no_pages,
- },
- {
- .name = "[vdso]",
- },
-};
-
-static void get_timer_node_info(void)
-{
- timer_mapping_base = timer_info.mapping_base;
- vdso_data->cycle_count_offset =
- timer_info.cycle_count_reg_offset;
- vdso_data->cycle_count_down =
- timer_info.cycle_count_down;
-}
-
-static int __init vdso_init(void)
-{
- int i;
- struct page **vdso_pagelist;
-
- if (memcmp(vdso_start, "\177ELF", 4)) {
- pr_err("vDSO is not a valid ELF object!\n");
- return -EINVAL;
- }
- /* Creat a timer io mapping to get clock cycles counter */
- get_timer_node_info();
-
- vdso_pages = (vdso_end - vdso_start) >> PAGE_SHIFT;
- pr_info("vdso: %ld pages (%ld code @ %p, %ld data @ %p)\n",
- vdso_pages + 1, vdso_pages, vdso_start, 1L, vdso_data);
-
- /* Allocate the vDSO pagelist */
- vdso_pagelist = kcalloc(vdso_pages, sizeof(struct page *), GFP_KERNEL);
- if (vdso_pagelist == NULL)
- return -ENOMEM;
-
- for (i = 0; i < vdso_pages; i++)
- vdso_pagelist[i] = virt_to_page(vdso_start + i * PAGE_SIZE);
- vdso_spec[1].pages = &vdso_pagelist[0];
-
- return 0;
-}
-
-arch_initcall(vdso_init);
-
-unsigned long inline vdso_random_addr(unsigned long vdso_mapping_len)
-{
- unsigned long start = current->mm->mmap_base, end, offset, addr;
- start = PAGE_ALIGN(start);
-
- /* Round the lowest possible end address up to a PMD boundary. */
- end = (start + vdso_mapping_len + PMD_SIZE - 1) & PMD_MASK;
- if (end >= TASK_SIZE)
- end = TASK_SIZE;
- end -= vdso_mapping_len;
-
- if (end > start) {
- offset = get_random_int() % (((end - start) >> PAGE_SHIFT) + 1);
- addr = start + (offset << PAGE_SHIFT);
- } else {
- addr = start;
- }
- return addr;
-}
-
-int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
-{
- struct mm_struct *mm = current->mm;
- unsigned long vdso_base, vdso_text_len, vdso_mapping_len;
- struct vm_area_struct *vma;
- unsigned long addr = 0;
- pgprot_t prot;
- int ret, vvar_page_num = 2;
-
- vdso_text_len = vdso_pages << PAGE_SHIFT;
-
- if(timer_mapping_base == EMPTY_VALUE)
- vvar_page_num = 1;
- /* Be sure to map the data page */
- vdso_mapping_len = vdso_text_len + vvar_page_num * PAGE_SIZE;
-#ifdef CONFIG_CPU_CACHE_ALIASING
- vdso_mapping_len += L1_cache_info[DCACHE].aliasing_num - 1;
-#endif
-
- if (mmap_write_lock_killable(mm))
- return -EINTR;
-
- addr = vdso_random_addr(vdso_mapping_len);
- vdso_base = get_unmapped_area(NULL, addr, vdso_mapping_len, 0, 0);
- if (IS_ERR_VALUE(vdso_base)) {
- ret = vdso_base;
- goto up_fail;
- }
-
-#ifdef CONFIG_CPU_CACHE_ALIASING
- {
- unsigned int aliasing_mask =
- L1_cache_info[DCACHE].aliasing_mask;
- unsigned int page_colour_ofs;
- page_colour_ofs = ((unsigned int)vdso_data & aliasing_mask) -
- (vdso_base & aliasing_mask);
- vdso_base += page_colour_ofs & aliasing_mask;
- }
-#endif
-
- vma = _install_special_mapping(mm, vdso_base, vvar_page_num * PAGE_SIZE,
- VM_READ | VM_MAYREAD, &vdso_spec[0]);
- if (IS_ERR(vma)) {
- ret = PTR_ERR(vma);
- goto up_fail;
- }
-
- /*Map vdata to user space */
- ret = io_remap_pfn_range(vma, vdso_base,
- virt_to_phys(vdso_data) >> PAGE_SHIFT,
- PAGE_SIZE, vma->vm_page_prot);
- if (ret)
- goto up_fail;
-
- /*Map timer to user space */
- vdso_base += PAGE_SIZE;
- prot = __pgprot(_PAGE_V | _PAGE_M_UR_KR | _PAGE_D | _PAGE_C_DEV);
- ret = io_remap_pfn_range(vma, vdso_base, timer_mapping_base >> PAGE_SHIFT,
- PAGE_SIZE, prot);
- if (ret)
- goto up_fail;
-
- /*Map vdso to user space */
- vdso_base += PAGE_SIZE;
- mm->context.vdso = (void *)vdso_base;
- vma = _install_special_mapping(mm, vdso_base, vdso_text_len,
- VM_READ | VM_EXEC |
- VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC,
- &vdso_spec[1]);
- if (IS_ERR(vma)) {
- ret = PTR_ERR(vma);
- goto up_fail;
- }
-
- mmap_write_unlock(mm);
- return 0;
-
-up_fail:
- mm->context.vdso = NULL;
- mmap_write_unlock(mm);
- return ret;
-}
-
-static void vdso_write_begin(struct vdso_data *vdata)
-{
- ++vdso_data->seq_count;
- smp_wmb(); /* Pairs with smp_rmb in vdso_read_retry */
-}
-
-static void vdso_write_end(struct vdso_data *vdata)
-{
- smp_wmb(); /* Pairs with smp_rmb in vdso_read_begin */
- ++vdso_data->seq_count;
-}
-
-void update_vsyscall(struct timekeeper *tk)
-{
- vdso_write_begin(vdso_data);
- vdso_data->cs_mask = tk->tkr_mono.mask;
- vdso_data->cs_mult = tk->tkr_mono.mult;
- vdso_data->cs_shift = tk->tkr_mono.shift;
- vdso_data->cs_cycle_last = tk->tkr_mono.cycle_last;
- vdso_data->wtm_clock_sec = tk->wall_to_monotonic.tv_sec;
- vdso_data->wtm_clock_nsec = tk->wall_to_monotonic.tv_nsec;
- vdso_data->xtime_clock_sec = tk->xtime_sec;
- vdso_data->xtime_clock_nsec = tk->tkr_mono.xtime_nsec;
- vdso_data->xtime_coarse_sec = tk->xtime_sec;
- vdso_data->xtime_coarse_nsec = tk->tkr_mono.xtime_nsec >>
- tk->tkr_mono.shift;
- vdso_data->hrtimer_res = hrtimer_resolution;
- vdso_write_end(vdso_data);
-}
-
-void update_vsyscall_tz(void)
-{
- vdso_data->tz_minuteswest = sys_tz.tz_minuteswest;
- vdso_data->tz_dsttime = sys_tz.tz_dsttime;
-}
diff --git a/arch/nds32/kernel/vdso/.gitignore b/arch/nds32/kernel/vdso/.gitignore
deleted file mode 100644
index 652e31d82582..000000000000
--- a/arch/nds32/kernel/vdso/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-vdso.lds
diff --git a/arch/nds32/kernel/vdso/Makefile b/arch/nds32/kernel/vdso/Makefile
deleted file mode 100644
index 55df25ef0057..000000000000
--- a/arch/nds32/kernel/vdso/Makefile
+++ /dev/null
@@ -1,79 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# Building a vDSO image for AArch64.
-#
-# Author: Will Deacon <will.deacon@arm.com>
-# Heavily based on the vDSO Makefiles for other archs.
-#
-
-obj-vdso := note.o datapage.o sigreturn.o gettimeofday.o
-
-# Build rules
-targets := $(obj-vdso) vdso.so vdso.so.dbg
-obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
-
-ccflags-y := -shared -fno-common -fno-builtin -nostdlib -fPIC -Wl,-shared -g \
- -Wl,-soname=linux-vdso.so.1 -Wl,--hash-style=sysv
-
-# Disable gcov profiling for VDSO code
-GCOV_PROFILE := n
-
-
-obj-y += vdso.o
-targets += vdso.lds
-CPPFLAGS_vdso.lds += -P -C -U$(ARCH)
-
-# Force dependency
-$(obj)/vdso.o : $(obj)/vdso.so
-
-# Link rule for the .so file, .lds has to be first
-$(obj)/vdso.so.dbg: $(obj)/vdso.lds $(obj-vdso) FORCE
- $(call if_changed,vdsold)
-
-
-# Strip rule for the .so file
-$(obj)/%.so: OBJCOPYFLAGS := -S
-$(obj)/%.so: $(obj)/%.so.dbg FORCE
- $(call if_changed,objcopy)
-
-# Generate VDSO offsets using helper script
-gen-vdsosym := $(srctree)/$(src)/gen_vdso_offsets.sh
-quiet_cmd_vdsosym = VDSOSYM $@
- cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
-
-include/generated/vdso-offsets.h: $(obj)/vdso.so.dbg FORCE
- $(call if_changed,vdsosym)
-
-
-
-# Assembly rules for the .S files
-
-sigreturn.o : sigreturn.S
- $(call if_changed_dep,vdsoas)
-
-note.o : note.S
- $(call if_changed_dep,vdsoas)
-
-datapage.o : datapage.S
- $(call if_changed_dep,vdsoas)
-
-gettimeofday.o : gettimeofday.c FORCE
- $(call if_changed_dep,vdsocc)
-
-# Actual build commands
-quiet_cmd_vdsold = VDSOL $@
- cmd_vdsold = $(CC) $(c_flags) -Wl,-n -Wl,-T $(real-prereqs) -o $@
-quiet_cmd_vdsoas = VDSOA $@
- cmd_vdsoas = $(CC) $(a_flags) -c -o $@ $<
-quiet_cmd_vdsocc = VDSOA $@
- cmd_vdsocc = $(CC) $(c_flags) -c -o $@ $<
-
-# Install commands for the unstripped file
-quiet_cmd_vdso_install = INSTALL $@
- cmd_vdso_install = cp $(obj)/$@.dbg $(MODLIB)/vdso/$@
-
-vdso.so: $(obj)/vdso.so.dbg
- @mkdir -p $(MODLIB)/vdso
- $(call cmd,vdso_install)
-
-vdso_install: vdso.so
diff --git a/arch/nds32/kernel/vdso/datapage.S b/arch/nds32/kernel/vdso/datapage.S
deleted file mode 100644
index 4a62c3cab1c8..000000000000
--- a/arch/nds32/kernel/vdso/datapage.S
+++ /dev/null
@@ -1,21 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/page.h>
-
-ENTRY(__get_timerpage)
- sethi $r0, hi20(. + PAGE_SIZE + 8)
- ori $r0, $r0, lo12(. + PAGE_SIZE + 4)
- mfusr $r1, $pc
- sub $r0, $r1, $r0
- ret
-ENDPROC(__get_timerpage)
-
-ENTRY(__get_datapage)
- sethi $r0, hi20(. + 2*PAGE_SIZE + 8)
- ori $r0, $r0, lo12(. + 2*PAGE_SIZE + 4)
- mfusr $r1, $pc
- sub $r0, $r1, $r0
- ret
-ENDPROC(__get_datapage)
diff --git a/arch/nds32/kernel/vdso/gen_vdso_offsets.sh b/arch/nds32/kernel/vdso/gen_vdso_offsets.sh
deleted file mode 100755
index 01924ff071ad..000000000000
--- a/arch/nds32/kernel/vdso/gen_vdso_offsets.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-#
-# Match symbols in the DSO that look like VDSO_*; produce a header file
-# of constant offsets into the shared object.
-#
-# Doing this inside the Makefile will break the $(filter-out) function,
-# causing Kbuild to rebuild the vdso-offsets header file every time.
-#
-# Author: Will Deacon <will.deacon@arm.com
-#
-
-LC_ALL=C
-sed -n -e 's/^00*/0/' -e \
-'s/^\([0-9a-fA-F]*\) . VDSO_\([a-zA-Z0-9_]*\)$/\#define vdso_offset_\2\t0x\1/p'
diff --git a/arch/nds32/kernel/vdso/gettimeofday.c b/arch/nds32/kernel/vdso/gettimeofday.c
deleted file mode 100644
index 9ec03cf0ec54..000000000000
--- a/arch/nds32/kernel/vdso/gettimeofday.c
+++ /dev/null
@@ -1,269 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/compiler.h>
-#include <linux/hrtimer.h>
-#include <linux/time.h>
-#include <asm/io.h>
-#include <asm/barrier.h>
-#include <asm/bug.h>
-#include <asm/page.h>
-#include <asm/unistd.h>
-#include <asm/vdso_datapage.h>
-#include <asm/vdso_timer_info.h>
-#include <asm/asm-offsets.h>
-
-#define X(x) #x
-#define Y(x) X(x)
-
-extern struct vdso_data *__get_datapage(void);
-extern struct vdso_data *__get_timerpage(void);
-
-static notrace unsigned int __vdso_read_begin(const struct vdso_data *vdata)
-{
- u32 seq;
-repeat:
- seq = READ_ONCE(vdata->seq_count);
- if (seq & 1) {
- cpu_relax();
- goto repeat;
- }
- return seq;
-}
-
-static notrace unsigned int vdso_read_begin(const struct vdso_data *vdata)
-{
- unsigned int seq;
-
- seq = __vdso_read_begin(vdata);
-
- smp_rmb(); /* Pairs with smp_wmb in vdso_write_end */
- return seq;
-}
-
-static notrace int vdso_read_retry(const struct vdso_data *vdata, u32 start)
-{
- smp_rmb(); /* Pairs with smp_wmb in vdso_write_begin */
- return vdata->seq_count != start;
-}
-
-static notrace long clock_gettime_fallback(clockid_t _clkid,
- struct __kernel_old_timespec *_ts)
-{
- register struct __kernel_old_timespec *ts asm("$r1") = _ts;
- register clockid_t clkid asm("$r0") = _clkid;
- register long ret asm("$r0");
-
- asm volatile ("movi $r15, %3\n"
- "syscall 0x0\n"
- :"=r" (ret)
- :"r"(clkid), "r"(ts), "i"(__NR_clock_gettime)
- :"$r15", "memory");
-
- return ret;
-}
-
-static notrace int do_realtime_coarse(struct __kernel_old_timespec *ts,
- struct vdso_data *vdata)
-{
- u32 seq;
-
- do {
- seq = vdso_read_begin(vdata);
-
- ts->tv_sec = vdata->xtime_coarse_sec;
- ts->tv_nsec = vdata->xtime_coarse_nsec;
-
- } while (vdso_read_retry(vdata, seq));
- return 0;
-}
-
-static notrace int do_monotonic_coarse(struct __kernel_old_timespec *ts,
- struct vdso_data *vdata)
-{
- u32 seq;
- u64 ns;
-
- do {
- seq = vdso_read_begin(vdata);
-
- ts->tv_sec = vdata->xtime_coarse_sec + vdata->wtm_clock_sec;
- ns = vdata->xtime_coarse_nsec + vdata->wtm_clock_nsec;
-
- } while (vdso_read_retry(vdata, seq));
-
- ts->tv_sec += __iter_div_u64_rem(ns, NSEC_PER_SEC, &ns);
- ts->tv_nsec = ns;
-
- return 0;
-}
-
-static notrace inline u64 vgetsns(struct vdso_data *vdso)
-{
- u32 cycle_now;
- u32 cycle_delta;
- u32 *timer_cycle_base;
-
- timer_cycle_base =
- (u32 *) ((char *)__get_timerpage() + vdso->cycle_count_offset);
- cycle_now = readl_relaxed(timer_cycle_base);
- if (true == vdso->cycle_count_down)
- cycle_now = ~(*timer_cycle_base);
- cycle_delta = cycle_now - (u32) vdso->cs_cycle_last;
- return ((u64) cycle_delta & vdso->cs_mask) * vdso->cs_mult;
-}
-
-static notrace int do_realtime(struct __kernel_old_timespec *ts, struct vdso_data *vdata)
-{
- unsigned count;
- u64 ns;
- do {
- count = vdso_read_begin(vdata);
- ts->tv_sec = vdata->xtime_clock_sec;
- ns = vdata->xtime_clock_nsec;
- ns += vgetsns(vdata);
- ns >>= vdata->cs_shift;
- } while (vdso_read_retry(vdata, count));
-
- ts->tv_sec += __iter_div_u64_rem(ns, NSEC_PER_SEC, &ns);
- ts->tv_nsec = ns;
-
- return 0;
-}
-
-static notrace int do_monotonic(struct __kernel_old_timespec *ts, struct vdso_data *vdata)
-{
- u64 ns;
- u32 seq;
-
- do {
- seq = vdso_read_begin(vdata);
-
- ts->tv_sec = vdata->xtime_clock_sec;
- ns = vdata->xtime_clock_nsec;
- ns += vgetsns(vdata);
- ns >>= vdata->cs_shift;
-
- ts->tv_sec += vdata->wtm_clock_sec;
- ns += vdata->wtm_clock_nsec;
-
- } while (vdso_read_retry(vdata, seq));
-
- ts->tv_sec += __iter_div_u64_rem(ns, NSEC_PER_SEC, &ns);
- ts->tv_nsec = ns;
-
- return 0;
-}
-
-notrace int __vdso_clock_gettime(clockid_t clkid, struct __kernel_old_timespec *ts)
-{
- struct vdso_data *vdata;
- int ret = -1;
-
- vdata = __get_datapage();
- if (vdata->cycle_count_offset == EMPTY_REG_OFFSET)
- return clock_gettime_fallback(clkid, ts);
-
- switch (clkid) {
- case CLOCK_REALTIME_COARSE:
- ret = do_realtime_coarse(ts, vdata);
- break;
- case CLOCK_MONOTONIC_COARSE:
- ret = do_monotonic_coarse(ts, vdata);
- break;
- case CLOCK_REALTIME:
- ret = do_realtime(ts, vdata);
- break;
- case CLOCK_MONOTONIC:
- ret = do_monotonic(ts, vdata);
- break;
- default:
- break;
- }
-
- if (ret)
- ret = clock_gettime_fallback(clkid, ts);
-
- return ret;
-}
-
-static notrace int clock_getres_fallback(clockid_t _clk_id,
- struct __kernel_old_timespec *_res)
-{
- register clockid_t clk_id asm("$r0") = _clk_id;
- register struct __kernel_old_timespec *res asm("$r1") = _res;
- register int ret asm("$r0");
-
- asm volatile ("movi $r15, %3\n"
- "syscall 0x0\n"
- :"=r" (ret)
- :"r"(clk_id), "r"(res), "i"(__NR_clock_getres)
- :"$r15", "memory");
-
- return ret;
-}
-
-notrace int __vdso_clock_getres(clockid_t clk_id, struct __kernel_old_timespec *res)
-{
- struct vdso_data *vdata = __get_datapage();
-
- if (res == NULL)
- return 0;
- switch (clk_id) {
- case CLOCK_REALTIME:
- case CLOCK_MONOTONIC:
- case CLOCK_MONOTONIC_RAW:
- res->tv_sec = 0;
- res->tv_nsec = vdata->hrtimer_res;
- break;
- case CLOCK_REALTIME_COARSE:
- case CLOCK_MONOTONIC_COARSE:
- res->tv_sec = 0;
- res->tv_nsec = CLOCK_COARSE_RES;
- break;
- default:
- return clock_getres_fallback(clk_id, res);
- }
- return 0;
-}
-
-static notrace inline int gettimeofday_fallback(struct __kernel_old_timeval *_tv,
- struct timezone *_tz)
-{
- register struct __kernel_old_timeval *tv asm("$r0") = _tv;
- register struct timezone *tz asm("$r1") = _tz;
- register int ret asm("$r0");
-
- asm volatile ("movi $r15, %3\n"
- "syscall 0x0\n"
- :"=r" (ret)
- :"r"(tv), "r"(tz), "i"(__NR_gettimeofday)
- :"$r15", "memory");
-
- return ret;
-}
-
-notrace int __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz)
-{
- struct __kernel_old_timespec ts;
- struct vdso_data *vdata;
- int ret;
-
- vdata = __get_datapage();
-
- if (vdata->cycle_count_offset == EMPTY_REG_OFFSET)
- return gettimeofday_fallback(tv, tz);
-
- ret = do_realtime(&ts, vdata);
-
- if (tv) {
- tv->tv_sec = ts.tv_sec;
- tv->tv_usec = ts.tv_nsec / 1000;
- }
- if (tz) {
- tz->tz_minuteswest = vdata->tz_minuteswest;
- tz->tz_dsttime = vdata->tz_dsttime;
- }
-
- return ret;
-}
diff --git a/arch/nds32/kernel/vdso/note.S b/arch/nds32/kernel/vdso/note.S
deleted file mode 100644
index 0aeaa19b05f0..000000000000
--- a/arch/nds32/kernel/vdso/note.S
+++ /dev/null
@@ -1,11 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2012 ARM Limited
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/uts.h>
-#include <linux/version.h>
-#include <linux/elfnote.h>
-
-ELFNOTE_START(Linux, 0, "a")
- .long LINUX_VERSION_CODE
-ELFNOTE_END
diff --git a/arch/nds32/kernel/vdso/sigreturn.S b/arch/nds32/kernel/vdso/sigreturn.S
deleted file mode 100644
index 67e4d1d1612a..000000000000
--- a/arch/nds32/kernel/vdso/sigreturn.S
+++ /dev/null
@@ -1,19 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2012 ARM Limited
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/unistd.h>
-
- .text
-
-ENTRY(__kernel_rt_sigreturn)
- .cfi_startproc
- movi $r15, __NR_rt_sigreturn
- /*
- * The SWID of syscall should be __NR_rt_sigreturn to synchronize
- * the unwinding scheme in gcc
- */
- syscall __NR_rt_sigreturn
- .cfi_endproc
-ENDPROC(__kernel_rt_sigreturn)
diff --git a/arch/nds32/kernel/vdso/vdso.S b/arch/nds32/kernel/vdso/vdso.S
deleted file mode 100644
index 16737c11e55b..000000000000
--- a/arch/nds32/kernel/vdso/vdso.S
+++ /dev/null
@@ -1,18 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2012 ARM Limited
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/init.h>
-#include <linux/linkage.h>
-#include <linux/const.h>
-#include <asm/page.h>
-
- .globl vdso_start, vdso_end
- .section .rodata
- .balign PAGE_SIZE
-vdso_start:
- .incbin "arch/nds32/kernel/vdso/vdso.so"
- .balign PAGE_SIZE
-vdso_end:
-
- .previous
diff --git a/arch/nds32/kernel/vdso/vdso.lds.S b/arch/nds32/kernel/vdso/vdso.lds.S
deleted file mode 100644
index 1f2b16004594..000000000000
--- a/arch/nds32/kernel/vdso/vdso.lds.S
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * SPDX-License-Identifier: GPL-2.0
- * Copyright (C) 2005-2017 Andes Technology Corporation
- */
-
-
-#include <linux/const.h>
-#include <asm/page.h>
-#include <asm/vdso.h>
-
-OUTPUT_ARCH(nds32)
-
-SECTIONS
-{
- . = SIZEOF_HEADERS;
-
- .hash : { *(.hash) } :text
- .gnu.hash : { *(.gnu.hash) }
- .dynsym : { *(.dynsym) }
- .dynstr : { *(.dynstr) }
- .gnu.version : { *(.gnu.version) }
- .gnu.version_d : { *(.gnu.version_d) }
- .gnu.version_r : { *(.gnu.version_r) }
-
- .note : { *(.note.*) } :text :note
-
-
- .text : { *(.text*) } :text
-
- .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr
- .eh_frame : { KEEP (*(.eh_frame)) } :text
-
- .dynamic : { *(.dynamic) } :text :dynamic
-
- .rodata : { *(.rodata*) } :text
-
-
- /DISCARD/ : {
- *(.note.GNU-stack)
- *(.data .data.* .gnu.linkonce.d.* .sdata*)
- *(.bss .sbss .dynbss .dynsbss)
- }
-}
-
-/*
- * We must supply the ELF program headers explicitly to get just one
- * PT_LOAD segment, and set the flags explicitly to make segments read-only.
- */
-PHDRS
-{
- text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */
- dynamic PT_DYNAMIC FLAGS(4); /* PF_R */
- note PT_NOTE FLAGS(4); /* PF_R */
- eh_frame_hdr PT_GNU_EH_FRAME;
-}
-
-/*
- * This controls what symbols we export from the DSO.
- */
-VERSION
-{
- LINUX_4 {
- global:
- __kernel_rt_sigreturn;
- __vdso_gettimeofday;
- __vdso_clock_getres;
- __vdso_clock_gettime;
- local: *;
- };
-}
-
-/*
- * Make the rt_sigreturn code visible to the kernel.
- */
-VDSO_rt_sigtramp = __kernel_rt_sigreturn;
diff --git a/arch/nds32/kernel/vmlinux.lds.S b/arch/nds32/kernel/vmlinux.lds.S
deleted file mode 100644
index 6a91b965fb1e..000000000000
--- a/arch/nds32/kernel/vmlinux.lds.S
+++ /dev/null
@@ -1,70 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <asm/page.h>
-#include <asm/thread_info.h>
-#include <asm/cache.h>
-#include <asm/memory.h>
-
-#define LOAD_OFFSET (PAGE_OFFSET - PHYS_OFFSET)
-#include <asm-generic/vmlinux.lds.h>
-
-OUTPUT_ARCH(nds32)
-ENTRY(_stext_lma)
-jiffies = jiffies_64;
-
-#if defined(CONFIG_GCOV_KERNEL)
-#define NDS32_EXIT_KEEP(x) x
-#else
-#define NDS32_EXIT_KEEP(x)
-#endif
-
-SECTIONS
-{
- _stext_lma = TEXTADDR - LOAD_OFFSET;
- . = TEXTADDR;
- __init_begin = .;
- HEAD_TEXT_SECTION
- .exit.text : {
- NDS32_EXIT_KEEP(EXIT_TEXT)
- }
- INIT_TEXT_SECTION(PAGE_SIZE)
- INIT_DATA_SECTION(16)
- .exit.data : {
- NDS32_EXIT_KEEP(EXIT_DATA)
- }
- PERCPU_SECTION(L1_CACHE_BYTES)
- __init_end = .;
-
- . = ALIGN(PAGE_SIZE);
- _stext = .;
- /* Real text segment */
- .text : AT(ADDR(.text) - LOAD_OFFSET) {
- _text = .; /* Text and read-only data */
- TEXT_TEXT
- SCHED_TEXT
- CPUIDLE_TEXT
- LOCK_TEXT
- KPROBES_TEXT
- IRQENTRY_TEXT
- SOFTIRQENTRY_TEXT
- *(.fixup)
- }
-
- _etext = .; /* End of text and rodata section */
-
- _sdata = .;
- RO_DATA(PAGE_SIZE)
- RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
- _edata = .;
-
- EXCEPTION_TABLE(16)
- BSS_SECTION(4, 4, 4)
- _end = .;
-
- STABS_DEBUG
- DWARF_DEBUG
- ELF_DETAILS
-
- DISCARDS
-}
diff --git a/arch/nds32/lib/Makefile b/arch/nds32/lib/Makefile
deleted file mode 100644
index dddbc15d6b37..000000000000
--- a/arch/nds32/lib/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-lib-y := copy_page.o memcpy.o memmove.o \
- memset.o memzero.o \
- copy_from_user.o copy_to_user.o clear_user.o
diff --git a/arch/nds32/lib/clear_user.S b/arch/nds32/lib/clear_user.S
deleted file mode 100644
index 805dfcd25bf8..000000000000
--- a/arch/nds32/lib/clear_user.S
+++ /dev/null
@@ -1,42 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/assembler.h>
-#include <asm/errno.h>
-
-/* Prototype: int __arch_clear_user(void *addr, size_t sz)
- * Purpose : clear some user memory
- * Params : addr - user memory address to clear
- * : sz - number of bytes to clear
- * Returns : number of bytes NOT cleared
- */
- .text
- .align 5
-ENTRY(__arch_clear_user)
- add $r5, $r0, $r1
- beqz $r1, clear_exit
- xor $p1, $p1, $p1 ! Use $p1=0 to clear mem
- srli $p0, $r1, #2 ! $p0 = number of word to clear
- andi $r1, $r1, #3 ! Bytes less than a word to copy
- beqz $p0, byte_clear ! Only less than a word to clear
-word_clear:
-USER( smw.bim,$p1, [$r0], $p1) ! Clear the word
- addi $p0, $p0, #-1 ! Decrease word count
- bnez $p0, word_clear ! Continue looping to clear all words
- beqz $r1, clear_exit ! No left bytes to copy
-byte_clear:
-USER( sbi.bi, $p1, [$r0], #1) ! Clear the byte
- addi $r1, $r1, #-1 ! Decrease byte count
- bnez $r1, byte_clear ! Continue looping to clear all left bytes
-clear_exit:
- move $r0, $r1 ! Set return value
- ret
-
- .section .fixup,"ax"
- .align 0
-9001:
- sub $r0, $r5, $r0 ! Bytes left to copy
- ret
- .previous
-ENDPROC(__arch_clear_user)
diff --git a/arch/nds32/lib/copy_from_user.S b/arch/nds32/lib/copy_from_user.S
deleted file mode 100644
index ad1857b20067..000000000000
--- a/arch/nds32/lib/copy_from_user.S
+++ /dev/null
@@ -1,45 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/assembler.h>
-#include <asm/errno.h>
-
-.macro lbi1 dst, addr, adj
-USER( lbi.bi, \dst, [\addr], \adj)
-.endm
-
-.macro sbi1 src, addr, adj
-sbi.bi \src, [\addr], \adj
-.endm
-
-.macro lmw1 start_reg, addr, end_reg
-USER( lmw.bim, \start_reg, [\addr], \end_reg)
-.endm
-
-.macro smw1 start_reg, addr, end_reg
-smw.bim \start_reg, [\addr], \end_reg
-.endm
-
-
-/* Prototype: int __arch_copy_from_user(void *to, const char *from, size_t n)
- * Purpose : copy a block from user memory to kernel memory
- * Params : to - kernel memory
- * : from - user memory
- * : n - number of bytes to copy
- * Returns : Number of bytes NOT copied.
- */
-
-.text
-ENTRY(__arch_copy_from_user)
- add $r5, $r0, $r2
-#include "copy_template.S"
- move $r0, $r2
- ret
-.section .fixup,"ax"
-.align 2
-9001:
- sub $r0, $r5, $r0
- ret
-.previous
-ENDPROC(__arch_copy_from_user)
diff --git a/arch/nds32/lib/copy_page.S b/arch/nds32/lib/copy_page.S
deleted file mode 100644
index f8701ed161a8..000000000000
--- a/arch/nds32/lib/copy_page.S
+++ /dev/null
@@ -1,40 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/export.h>
-#include <asm/page.h>
-
- .text
-ENTRY(copy_page)
- pushm $r2, $r10
- movi $r2, PAGE_SIZE >> 5
-.Lcopy_loop:
- lmw.bim $r3, [$r1], $r10
- smw.bim $r3, [$r0], $r10
- subi45 $r2, #1
- bnez38 $r2, .Lcopy_loop
- popm $r2, $r10
- ret
-ENDPROC(copy_page)
-EXPORT_SYMBOL(copy_page)
-
-ENTRY(clear_page)
- pushm $r1, $r9
- movi $r1, PAGE_SIZE >> 5
- movi55 $r2, #0
- movi55 $r3, #0
- movi55 $r4, #0
- movi55 $r5, #0
- movi55 $r6, #0
- movi55 $r7, #0
- movi55 $r8, #0
- movi55 $r9, #0
-.Lclear_loop:
- smw.bim $r2, [$r0], $r9
- subi45 $r1, #1
- bnez38 $r1, .Lclear_loop
- popm $r1, $r9
- ret
-ENDPROC(clear_page)
-EXPORT_SYMBOL(clear_page)
diff --git a/arch/nds32/lib/copy_template.S b/arch/nds32/lib/copy_template.S
deleted file mode 100644
index 3a9a2de468c2..000000000000
--- a/arch/nds32/lib/copy_template.S
+++ /dev/null
@@ -1,69 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-
- beq $r1, $r0, quit_memcpy
- beqz $r2, quit_memcpy
- srli $r3, $r2, #5 ! check if len < cache-line size 32
- beqz $r3, word_copy_entry
- andi $r4, $r0, #0x3 ! check byte-align
- beqz $r4, unalign_word_copy_entry
-
- addi $r4, $r4,#-4
- abs $r4, $r4 ! check how many un-align byte to copy
- sub $r2, $r2, $r4 ! update $R2
-
-unalign_byte_copy:
- lbi1 $r3, $r1, #1
- addi $r4, $r4, #-1
- sbi1 $r3, $r0, #1
- bnez $r4, unalign_byte_copy
- beqz $r2, quit_memcpy
-
-unalign_word_copy_entry:
- andi $r3, $r0, 0x1f ! check cache-line unaligncount
- beqz $r3, cache_copy
-
- addi $r3, $r3, #-32
- abs $r3, $r3
- sub $r2, $r2, $r3 ! update $R2
-
-unalign_word_copy:
- lmw1 $r4, $r1, $r4
- addi $r3, $r3, #-4
- smw1 $r4, $r0, $r4
- bnez $r3, unalign_word_copy
- beqz $r2, quit_memcpy
-
- addi $r3, $r2, #-32 ! to check $r2< cache_line , than go to word_copy
- bltz $r3, word_copy_entry
-cache_copy:
- srli $r3, $r2, #5
- beqz $r3, word_copy_entry
-3:
- lmw1 $r17, $r1, $r24
- addi $r3, $r3, #-1
- smw1 $r17, $r0, $r24
- bnez $r3, 3b
-
-word_copy_entry:
- andi $r2, $r2, #31
-
- beqz $r2, quit_memcpy
-5:
- srli $r3, $r2, #2
- beqz $r3, byte_copy
-word_copy:
- lmw1 $r4, $r1, $r4
- addi $r3, $r3, #-1
- smw1 $r4, $r0, $r4
- bnez $r3, word_copy
- andi $r2, $r2, #3
- beqz $r2, quit_memcpy
-byte_copy:
- lbi1 $r3, $r1, #1
- addi $r2, $r2, #-1
-
- sbi1 $r3, $r0, #1
- bnez $r2, byte_copy
-quit_memcpy:
diff --git a/arch/nds32/lib/copy_to_user.S b/arch/nds32/lib/copy_to_user.S
deleted file mode 100644
index 3230044dcfb8..000000000000
--- a/arch/nds32/lib/copy_to_user.S
+++ /dev/null
@@ -1,45 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/assembler.h>
-#include <asm/errno.h>
-
-.macro lbi1 dst, addr, adj
-lbi.bi \dst, [\addr], \adj
-.endm
-
-.macro sbi1 src, addr, adj
-USER( sbi.bi, \src, [\addr], \adj)
-.endm
-
-.macro lmw1 start_reg, addr, end_reg
-lmw.bim \start_reg, [\addr], \end_reg
-.endm
-
-.macro smw1 start_reg, addr, end_reg
-USER( smw.bim, \start_reg, [\addr], \end_reg)
-.endm
-
-
-/* Prototype: int __arch_copy_to_user(void *to, const char *from, size_t n)
- * Purpose : copy a block to user memory from kernel memory
- * Params : to - user memory
- * : from - kernel memory
- * : n - number of bytes to copy
- * Returns : Number of bytes NOT copied.
- */
-
-.text
-ENTRY(__arch_copy_to_user)
- add $r5, $r0, $r2
-#include "copy_template.S"
- move $r0, $r2
- ret
-.section .fixup,"ax"
-.align 2
-9001:
- sub $r0, $r5, $r0
- ret
-.previous
-ENDPROC(__arch_copy_to_user)
diff --git a/arch/nds32/lib/memcpy.S b/arch/nds32/lib/memcpy.S
deleted file mode 100644
index a2345ea721e4..000000000000
--- a/arch/nds32/lib/memcpy.S
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-
-
-.macro lbi1 dst, addr, adj
-lbi.bi \dst, [\addr], \adj
-.endm
-
-.macro sbi1 src, addr, adj
-sbi.bi \src, [\addr], \adj
-.endm
-
-.macro lmw1 start_reg, addr, end_reg
-lmw.bim \start_reg, [\addr], \end_reg
-.endm
-
-.macro smw1 start_reg, addr, end_reg
-smw.bim \start_reg, [\addr], \end_reg
-.endm
-
-.text
-ENTRY(memcpy)
- move $r5, $r0
-#include "copy_template.S"
- move $r0, $r5
- ret
-
-ENDPROC(memcpy)
diff --git a/arch/nds32/lib/memmove.S b/arch/nds32/lib/memmove.S
deleted file mode 100644
index c823aada2271..000000000000
--- a/arch/nds32/lib/memmove.S
+++ /dev/null
@@ -1,70 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-
-/*
- void *memmove(void *dst, const void *src, int n);
-
- dst: $r0
- src: $r1
- n : $r2
- ret: $r0 - pointer to the memory area dst.
-*/
- .text
-
-ENTRY(memmove)
- move $r5, $r0 ! Set return value = det
- beq $r0, $r1, exit_memcpy ! Exit when det = src
- beqz $r2, exit_memcpy ! Exit when n = 0
- pushm $t0, $t1 ! Save reg
- srli $p1, $r2, #2 ! $p1 is how many words to copy
-
- ! Avoid data lost when memory overlap
- ! Copy data reversely when src < dst
- slt $p0, $r0, $r1 ! check if $r0 < $r1
- beqz $p0, do_reverse ! branch if dst > src
-
- ! No reverse, dst < src
- andi $r2, $r2, #3 ! How many bytes are less than a word
- li $t0, #1 ! Determining copy direction in byte_cpy
- beqz $p1, byte_cpy ! When n is less than a word
-
-word_cpy:
- lmw.bim $p0, [$r1], $p0 ! Read a word from src
- addi $p1, $p1, #-1 ! How many words left to copy
- smw.bim $p0, [$r0], $p0 ! Copy the word to det
- bnez $p1, word_cpy ! If remained words > 0
- beqz $r2, end_memcpy ! No left bytes to copy
- b byte_cpy
-
-do_reverse:
- add $r0, $r0, $r2 ! Start with the end of $r0
- add $r1, $r1, $r2 ! Start with the end of $r1
- andi $r2, $r2, #3 ! How many bytes are less than a word
- li $t0, #-1 ! Determining copy direction in byte_cpy
- beqz $p1, reverse_byte_cpy ! When n is less than a word
-
-reverse_word_cpy:
- lmw.adm $p0, [$r1], $p0 ! Read a word from src
- addi $p1, $p1, #-1 ! How many words left to copy
- smw.adm $p0, [$r0], $p0 ! Copy the word to det
- bnez $p1, reverse_word_cpy ! If remained words > 0
- beqz $r2, end_memcpy ! No left bytes to copy
-
-reverse_byte_cpy:
- addi $r0, $r0, #-1
- addi $r1, $r1, #-1
-byte_cpy: ! Less than 4 bytes to copy now
- lb.bi $p0, [$r1], $t0 ! Read a byte from src
- addi $r2, $r2, #-1 ! How many bytes left to copy
- sb.bi $p0, [$r0], $t0 ! copy the byte to det
- bnez $r2, byte_cpy ! If remained bytes > 0
-
-end_memcpy:
- popm $t0, $t1
-exit_memcpy:
- move $r0, $r5
- ret
-
-ENDPROC(memmove)
diff --git a/arch/nds32/lib/memset.S b/arch/nds32/lib/memset.S
deleted file mode 100644
index 193cb6ce21a9..000000000000
--- a/arch/nds32/lib/memset.S
+++ /dev/null
@@ -1,33 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-
- .text
-ENTRY(memset)
- move $r5, $r0 ! Return value
- beqz $r2, end_memset ! Exit when len = 0
- srli $p1, $r2, 2 ! $p1 is how many words to copy
- andi $r2, $r2, 3 ! How many bytes are less than a word
- beqz $p1, byte_set ! When n is less than a word
-
- ! set $r1 from ??????ab to abababab
- andi $r1, $r1, #0x00ff ! $r1 = 000000ab
- slli $p0, $r1, #8 ! $p0 = 0000ab00
- or $r1, $r1, $p0 ! $r1 = 0000abab
- slli $p0, $r1, #16 ! $p0 = abab0000
- or $r1, $r1, $p0 ! $r1 = abababab
-word_set:
- addi $p1, $p1, #-1 ! How many words left to copy
- smw.bim $r1, [$r0], $r1 ! Copy the word to det
- bnez $p1, word_set ! Still words to set, continue looping
- beqz $r2, end_memset ! No left byte to set
-byte_set: ! Less than 4 bytes left to set
- addi $r2, $r2, #-1 ! Decrease len by 1
- sbi.bi $r1, [$r0], #1 ! Set data of the next byte to $r1
- bnez $r2, byte_set ! Still bytes left to set
-end_memset:
- move $r0, $r5
- ret
-
-ENDPROC(memset)
diff --git a/arch/nds32/lib/memzero.S b/arch/nds32/lib/memzero.S
deleted file mode 100644
index f055972c9343..000000000000
--- a/arch/nds32/lib/memzero.S
+++ /dev/null
@@ -1,18 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-
- .text
-ENTRY(memzero)
- beqz $r1, 1f
- push $lp
- move $r2, $r1
- move $r1, #0
- push $r0
- bal memset
- pop $r0
- pop $lp
-1:
- ret
-ENDPROC(memzero)
diff --git a/arch/nds32/math-emu/Makefile b/arch/nds32/math-emu/Makefile
deleted file mode 100644
index 3bed7e5d5d05..000000000000
--- a/arch/nds32/math-emu/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# Makefile for the Linux/nds32 kernel FPU emulation.
-#
-
-obj-y := fpuemu.o \
- fdivd.o fmuld.o fsubd.o faddd.o fs2d.o fsqrtd.o fcmpd.o fnegs.o \
- fd2si.o fd2ui.o fd2siz.o fd2uiz.o fsi2d.o fui2d.o \
- fdivs.o fmuls.o fsubs.o fadds.o fd2s.o fsqrts.o fcmps.o fnegd.o \
- fs2si.o fs2ui.o fs2siz.o fs2uiz.o fsi2s.o fui2s.o
diff --git a/arch/nds32/math-emu/faddd.c b/arch/nds32/math-emu/faddd.c
deleted file mode 100644
index f7fd4e3c3904..000000000000
--- a/arch/nds32/math-emu/faddd.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-void faddd(void *ft, void *fa, void *fb)
-{
- FP_DECL_D(A);
- FP_DECL_D(B);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
- FP_UNPACK_DP(B, fb);
-
- FP_ADD_D(R, A, B);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-
-}
diff --git a/arch/nds32/math-emu/fadds.c b/arch/nds32/math-emu/fadds.c
deleted file mode 100644
index f5af6ca8cca5..000000000000
--- a/arch/nds32/math-emu/fadds.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-void fadds(void *ft, void *fa, void *fb)
-{
- FP_DECL_S(A);
- FP_DECL_S(B);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
- FP_UNPACK_SP(B, fb);
-
- FP_ADD_S(R, A, B);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-
-}
diff --git a/arch/nds32/math-emu/fcmpd.c b/arch/nds32/math-emu/fcmpd.c
deleted file mode 100644
index 0ea225abe880..000000000000
--- a/arch/nds32/math-emu/fcmpd.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-int fcmpd(void *ft, void *fa, void *fb, int cmpop)
-{
- FP_DECL_D(A);
- FP_DECL_D(B);
- FP_DECL_EX;
- long cmp;
-
- FP_UNPACK_DP(A, fa);
- FP_UNPACK_DP(B, fb);
-
- FP_CMP_D(cmp, A, B, SF_CUN);
- cmp += 2;
- if (cmp == SF_CGT)
- *(long *)ft = 0;
- else
- *(long *)ft = (cmp & cmpop) ? 1 : 0;
-
- return 0;
-}
diff --git a/arch/nds32/math-emu/fcmps.c b/arch/nds32/math-emu/fcmps.c
deleted file mode 100644
index 681480758213..000000000000
--- a/arch/nds32/math-emu/fcmps.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-int fcmps(void *ft, void *fa, void *fb, int cmpop)
-{
- FP_DECL_S(A);
- FP_DECL_S(B);
- FP_DECL_EX;
- long cmp;
-
- FP_UNPACK_SP(A, fa);
- FP_UNPACK_SP(B, fb);
-
- FP_CMP_S(cmp, A, B, SF_CUN);
- cmp += 2;
- if (cmp == SF_CGT)
- *(int *)ft = 0x0;
- else
- *(int *)ft = (cmp & cmpop) ? 0x1 : 0x0;
-
- return 0;
-}
diff --git a/arch/nds32/math-emu/fd2s.c b/arch/nds32/math-emu/fd2s.c
deleted file mode 100644
index 1328371e8170..000000000000
--- a/arch/nds32/math-emu/fd2s.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/double.h>
-#include <math-emu/single.h>
-#include <math-emu/soft-fp.h>
-void fd2s(void *ft, void *fa)
-{
- FP_DECL_D(A);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- FP_CONV(S, D, 1, 2, R, A);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fd2si.c b/arch/nds32/math-emu/fd2si.c
deleted file mode 100644
index fae3e16a0a10..000000000000
--- a/arch/nds32/math-emu/fd2si.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fd2si(void *ft, void *fa)
-{
- int r;
-
- FP_DECL_D(A);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(int *)ft = (A_s == 0) ? 0x7fffffff : 0x80000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_ROUND_D(r, A, 32, 1);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(int *)ft = r;
- }
-
-}
diff --git a/arch/nds32/math-emu/fd2siz.c b/arch/nds32/math-emu/fd2siz.c
deleted file mode 100644
index 92fe6774f112..000000000000
--- a/arch/nds32/math-emu/fd2siz.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fd2si_z(void *ft, void *fa)
-{
- int r;
-
- FP_DECL_D(A);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(int *)ft = (A_s == 0) ? 0x7fffffff : 0x80000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_D(r, A, 32, 1);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(int *)ft = r;
- }
-
-}
diff --git a/arch/nds32/math-emu/fd2ui.c b/arch/nds32/math-emu/fd2ui.c
deleted file mode 100644
index a0423b699aa4..000000000000
--- a/arch/nds32/math-emu/fd2ui.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fd2ui(void *ft, void *fa)
-{
- unsigned int r;
-
- FP_DECL_D(A);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(unsigned int *)ft = (A_s == 0) ? 0xffffffff : 0x00000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(unsigned int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_ROUND_D(r, A, 32, 0);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(unsigned int *)ft = r;
- }
-
-}
diff --git a/arch/nds32/math-emu/fd2uiz.c b/arch/nds32/math-emu/fd2uiz.c
deleted file mode 100644
index 8ae17cfce90d..000000000000
--- a/arch/nds32/math-emu/fd2uiz.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fd2ui_z(void *ft, void *fa)
-{
- unsigned int r;
-
- FP_DECL_D(A);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(unsigned int *)ft = (A_s == 0) ? 0xffffffff : 0x00000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(unsigned int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_D(r, A, 32, 0);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(unsigned int *)ft = r;
- }
-
-}
diff --git a/arch/nds32/math-emu/fdivd.c b/arch/nds32/math-emu/fdivd.c
deleted file mode 100644
index 458e7e98b08e..000000000000
--- a/arch/nds32/math-emu/fdivd.c
+++ /dev/null
@@ -1,27 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-
-#include <linux/uaccess.h>
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fdivd(void *ft, void *fa, void *fb)
-{
- FP_DECL_D(A);
- FP_DECL_D(B);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
- FP_UNPACK_DP(B, fb);
-
- if (B_c == FP_CLS_ZERO && A_c != FP_CLS_ZERO)
- FP_SET_EXCEPTION(FP_EX_DIVZERO);
-
- FP_DIV_D(R, A, B);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fdivs.c b/arch/nds32/math-emu/fdivs.c
deleted file mode 100644
index c7d202159ce2..000000000000
--- a/arch/nds32/math-emu/fdivs.c
+++ /dev/null
@@ -1,26 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-void fdivs(void *ft, void *fa, void *fb)
-{
- FP_DECL_S(A);
- FP_DECL_S(B);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
- FP_UNPACK_SP(B, fb);
-
- if (B_c == FP_CLS_ZERO && A_c != FP_CLS_ZERO)
- FP_SET_EXCEPTION(FP_EX_DIVZERO);
-
- FP_DIV_S(R, A, B);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fmuld.c b/arch/nds32/math-emu/fmuld.c
deleted file mode 100644
index f3c77a45ddc2..000000000000
--- a/arch/nds32/math-emu/fmuld.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-void fmuld(void *ft, void *fa, void *fb)
-{
- FP_DECL_D(A);
- FP_DECL_D(B);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
- FP_UNPACK_DP(B, fb);
-
- FP_MUL_D(R, A, B);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fmuls.c b/arch/nds32/math-emu/fmuls.c
deleted file mode 100644
index cf150df938f9..000000000000
--- a/arch/nds32/math-emu/fmuls.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-void fmuls(void *ft, void *fa, void *fb)
-{
- FP_DECL_S(A);
- FP_DECL_S(B);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
- FP_UNPACK_SP(B, fb);
-
- FP_MUL_S(R, A, B);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fnegd.c b/arch/nds32/math-emu/fnegd.c
deleted file mode 100644
index de7ea6a0873e..000000000000
--- a/arch/nds32/math-emu/fnegd.c
+++ /dev/null
@@ -1,21 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-void fnegd(void *ft, void *fa)
-{
- FP_DECL_D(A);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- FP_NEG_D(R, A);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fnegs.c b/arch/nds32/math-emu/fnegs.c
deleted file mode 100644
index 07270b326a77..000000000000
--- a/arch/nds32/math-emu/fnegs.c
+++ /dev/null
@@ -1,21 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-void fnegs(void *ft, void *fa)
-{
- FP_DECL_S(A);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- FP_NEG_S(R, A);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fpuemu.c b/arch/nds32/math-emu/fpuemu.c
deleted file mode 100644
index 46558a15c0dc..000000000000
--- a/arch/nds32/math-emu/fpuemu.c
+++ /dev/null
@@ -1,406 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-
-#include <asm/bitfield.h>
-#include <asm/uaccess.h>
-#include <asm/sfp-machine.h>
-#include <asm/fpuemu.h>
-#include <asm/nds32_fpu_inst.h>
-
-#define DPFROMREG(dp, x) (dp = (void *)((unsigned long *)fpu_reg + 2*x))
-#ifdef __NDS32_EL__
-#define SPFROMREG(sp, x)\
- ((sp) = (void *)((unsigned long *)fpu_reg + (x^1)))
-#else
-#define SPFROMREG(sp, x) ((sp) = (void *)((unsigned long *)fpu_reg + x))
-#endif
-
-#define DEF3OP(name, p, f1, f2) \
-void fpemu_##name##p(void *ft, void *fa, void *fb) \
-{ \
- f1(fa, fa, fb); \
- f2(ft, ft, fa); \
-}
-
-#define DEF3OPNEG(name, p, f1, f2, f3) \
-void fpemu_##name##p(void *ft, void *fa, void *fb) \
-{ \
- f1(fa, fa, fb); \
- f2(ft, ft, fa); \
- f3(ft, ft); \
-}
-DEF3OP(fmadd, s, fmuls, fadds);
-DEF3OP(fmsub, s, fmuls, fsubs);
-DEF3OP(fmadd, d, fmuld, faddd);
-DEF3OP(fmsub, d, fmuld, fsubd);
-DEF3OPNEG(fnmadd, s, fmuls, fadds, fnegs);
-DEF3OPNEG(fnmsub, s, fmuls, fsubs, fnegs);
-DEF3OPNEG(fnmadd, d, fmuld, faddd, fnegd);
-DEF3OPNEG(fnmsub, d, fmuld, fsubd, fnegd);
-
-static const unsigned char cmptab[8] = {
- SF_CEQ,
- SF_CEQ,
- SF_CLT,
- SF_CLT,
- SF_CLT | SF_CEQ,
- SF_CLT | SF_CEQ,
- SF_CUN,
- SF_CUN
-};
-
-enum ARGTYPE {
- S1S = 1,
- S2S,
- S1D,
- CS,
- D1D,
- D2D,
- D1S,
- CD
-};
-union func_t {
- void (*t)(void *ft, void *fa, void *fb);
- void (*b)(void *ft, void *fa);
-};
-/*
- * Emulate a single FPU arithmetic instruction.
- */
-static int fpu_emu(struct fpu_struct *fpu_reg, unsigned long insn)
-{
- int rfmt; /* resulting format */
- union func_t func;
- int ftype = 0;
-
- switch (rfmt = NDS32Insn_OPCODE_COP0(insn)) {
- case fs1_op:{
- switch (NDS32Insn_OPCODE_BIT69(insn)) {
- case fadds_op:
- func.t = fadds;
- ftype = S2S;
- break;
- case fsubs_op:
- func.t = fsubs;
- ftype = S2S;
- break;
- case fmadds_op:
- func.t = fpemu_fmadds;
- ftype = S2S;
- break;
- case fmsubs_op:
- func.t = fpemu_fmsubs;
- ftype = S2S;
- break;
- case fnmadds_op:
- func.t = fpemu_fnmadds;
- ftype = S2S;
- break;
- case fnmsubs_op:
- func.t = fpemu_fnmsubs;
- ftype = S2S;
- break;
- case fmuls_op:
- func.t = fmuls;
- ftype = S2S;
- break;
- case fdivs_op:
- func.t = fdivs;
- ftype = S2S;
- break;
- case fs1_f2op_op:
- switch (NDS32Insn_OPCODE_BIT1014(insn)) {
- case fs2d_op:
- func.b = fs2d;
- ftype = S1D;
- break;
- case fs2si_op:
- func.b = fs2si;
- ftype = S1S;
- break;
- case fs2si_z_op:
- func.b = fs2si_z;
- ftype = S1S;
- break;
- case fs2ui_op:
- func.b = fs2ui;
- ftype = S1S;
- break;
- case fs2ui_z_op:
- func.b = fs2ui_z;
- ftype = S1S;
- break;
- case fsi2s_op:
- func.b = fsi2s;
- ftype = S1S;
- break;
- case fui2s_op:
- func.b = fui2s;
- ftype = S1S;
- break;
- case fsqrts_op:
- func.b = fsqrts;
- ftype = S1S;
- break;
- default:
- return SIGILL;
- }
- break;
- default:
- return SIGILL;
- }
- break;
- }
- case fs2_op:
- switch (NDS32Insn_OPCODE_BIT69(insn)) {
- case fcmpeqs_op:
- case fcmpeqs_e_op:
- case fcmplts_op:
- case fcmplts_e_op:
- case fcmples_op:
- case fcmples_e_op:
- case fcmpuns_op:
- case fcmpuns_e_op:
- ftype = CS;
- break;
- default:
- return SIGILL;
- }
- break;
- case fd1_op:{
- switch (NDS32Insn_OPCODE_BIT69(insn)) {
- case faddd_op:
- func.t = faddd;
- ftype = D2D;
- break;
- case fsubd_op:
- func.t = fsubd;
- ftype = D2D;
- break;
- case fmaddd_op:
- func.t = fpemu_fmaddd;
- ftype = D2D;
- break;
- case fmsubd_op:
- func.t = fpemu_fmsubd;
- ftype = D2D;
- break;
- case fnmaddd_op:
- func.t = fpemu_fnmaddd;
- ftype = D2D;
- break;
- case fnmsubd_op:
- func.t = fpemu_fnmsubd;
- ftype = D2D;
- break;
- case fmuld_op:
- func.t = fmuld;
- ftype = D2D;
- break;
- case fdivd_op:
- func.t = fdivd;
- ftype = D2D;
- break;
- case fd1_f2op_op:
- switch (NDS32Insn_OPCODE_BIT1014(insn)) {
- case fd2s_op:
- func.b = fd2s;
- ftype = D1S;
- break;
- case fd2si_op:
- func.b = fd2si;
- ftype = D1S;
- break;
- case fd2si_z_op:
- func.b = fd2si_z;
- ftype = D1S;
- break;
- case fd2ui_op:
- func.b = fd2ui;
- ftype = D1S;
- break;
- case fd2ui_z_op:
- func.b = fd2ui_z;
- ftype = D1S;
- break;
- case fsi2d_op:
- func.b = fsi2d;
- ftype = D1S;
- break;
- case fui2d_op:
- func.b = fui2d;
- ftype = D1S;
- break;
- case fsqrtd_op:
- func.b = fsqrtd;
- ftype = D1D;
- break;
- default:
- return SIGILL;
- }
- break;
- default:
- return SIGILL;
-
- }
- break;
- }
-
- case fd2_op:
- switch (NDS32Insn_OPCODE_BIT69(insn)) {
- case fcmpeqd_op:
- case fcmpeqd_e_op:
- case fcmpltd_op:
- case fcmpltd_e_op:
- case fcmpled_op:
- case fcmpled_e_op:
- case fcmpund_op:
- case fcmpund_e_op:
- ftype = CD;
- break;
- default:
- return SIGILL;
- }
- break;
-
- default:
- return SIGILL;
- }
-
- switch (ftype) {
- case S1S:{
- void *ft, *fa;
-
- SPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- SPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- func.b(ft, fa);
- break;
- }
- case S2S:{
- void *ft, *fa, *fb;
-
- SPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- SPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- SPFROMREG(fb, NDS32Insn_OPCODE_Rb(insn));
- func.t(ft, fa, fb);
- break;
- }
- case S1D:{
- void *ft, *fa;
-
- DPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- SPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- func.b(ft, fa);
- break;
- }
- case CS:{
- unsigned int cmpop = NDS32Insn_OPCODE_BIT69(insn);
- void *ft, *fa, *fb;
-
- SPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- SPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- SPFROMREG(fb, NDS32Insn_OPCODE_Rb(insn));
- if (cmpop < 0x8) {
- cmpop = cmptab[cmpop];
- fcmps(ft, fa, fb, cmpop);
- } else
- return SIGILL;
- break;
- }
- case D1D:{
- void *ft, *fa;
-
- DPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- DPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- func.b(ft, fa);
- break;
- }
- case D2D:{
- void *ft, *fa, *fb;
-
- DPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- DPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- DPFROMREG(fb, NDS32Insn_OPCODE_Rb(insn));
- func.t(ft, fa, fb);
- break;
- }
- case D1S:{
- void *ft, *fa;
-
- SPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- DPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- func.b(ft, fa);
- break;
- }
- case CD:{
- unsigned int cmpop = NDS32Insn_OPCODE_BIT69(insn);
- void *ft, *fa, *fb;
-
- SPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- DPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- DPFROMREG(fb, NDS32Insn_OPCODE_Rb(insn));
- if (cmpop < 0x8) {
- cmpop = cmptab[cmpop];
- fcmpd(ft, fa, fb, cmpop);
- } else
- return SIGILL;
- break;
- }
- default:
- return SIGILL;
- }
-
- /*
- * If an exception is required, generate a tidy SIGFPE exception.
- */
-#if IS_ENABLED(CONFIG_SUPPORT_DENORMAL_ARITHMETIC)
- if (((fpu_reg->fpcsr << 5) & fpu_reg->fpcsr & FPCSR_mskALLE_NO_UDF_IEXE)
- || ((fpu_reg->fpcsr << 5) & (fpu_reg->UDF_IEX_trap))) {
-#else
- if ((fpu_reg->fpcsr << 5) & fpu_reg->fpcsr & FPCSR_mskALLE) {
-#endif
- return SIGFPE;
- }
- return 0;
-}
-
-int do_fpuemu(struct pt_regs *regs, struct fpu_struct *fpu)
-{
- unsigned long insn = 0, addr = regs->ipc;
- unsigned long emulpc, contpc;
- unsigned char *pc = (void *)&insn;
- char c;
- int i = 0, ret;
-
- for (i = 0; i < 4; i++) {
- if (__get_user(c, (unsigned char *)addr++))
- return SIGBUS;
- *pc++ = c;
- }
-
- insn = be32_to_cpu(insn);
-
- emulpc = regs->ipc;
- contpc = regs->ipc + 4;
-
- if (NDS32Insn_OPCODE(insn) != cop0_op)
- return SIGILL;
-
- switch (NDS32Insn_OPCODE_COP0(insn)) {
- case fs1_op:
- case fs2_op:
- case fd1_op:
- case fd2_op:
- {
- /* a real fpu computation instruction */
- ret = fpu_emu(fpu, insn);
- if (!ret)
- regs->ipc = contpc;
- }
- break;
-
- default:
- return SIGILL;
- }
-
- return ret;
-}
diff --git a/arch/nds32/math-emu/fs2d.c b/arch/nds32/math-emu/fs2d.c
deleted file mode 100644
index 0e8db9035631..000000000000
--- a/arch/nds32/math-emu/fs2d.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-
-#include <linux/uaccess.h>
-#include <asm/sfp-machine.h>
-#include <math-emu/double.h>
-#include <math-emu/single.h>
-#include <math-emu/soft-fp.h>
-
-void fs2d(void *ft, void *fa)
-{
- FP_DECL_S(A);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- FP_CONV(D, S, 2, 1, R, A);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fs2si.c b/arch/nds32/math-emu/fs2si.c
deleted file mode 100644
index b4931d60980e..000000000000
--- a/arch/nds32/math-emu/fs2si.c
+++ /dev/null
@@ -1,29 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-
-void fs2si(void *ft, void *fa)
-{
- int r;
-
- FP_DECL_S(A);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(int *)ft = (A_s == 0) ? 0x7fffffff : 0x80000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_ROUND_S(r, A, 32, 1);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(int *)ft = r;
- }
-}
diff --git a/arch/nds32/math-emu/fs2siz.c b/arch/nds32/math-emu/fs2siz.c
deleted file mode 100644
index 1c2b99ce3e38..000000000000
--- a/arch/nds32/math-emu/fs2siz.c
+++ /dev/null
@@ -1,29 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-
-void fs2si_z(void *ft, void *fa)
-{
- int r;
-
- FP_DECL_S(A);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(int *)ft = (A_s == 0) ? 0x7fffffff : 0x80000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_S(r, A, 32, 1);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(int *)ft = r;
- }
-}
diff --git a/arch/nds32/math-emu/fs2ui.c b/arch/nds32/math-emu/fs2ui.c
deleted file mode 100644
index c337f0384d06..000000000000
--- a/arch/nds32/math-emu/fs2ui.c
+++ /dev/null
@@ -1,29 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-
-void fs2ui(void *ft, void *fa)
-{
- unsigned int r;
-
- FP_DECL_S(A);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(unsigned int *)ft = (A_s == 0) ? 0xffffffff : 0x00000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(unsigned int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_ROUND_S(r, A, 32, 0);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(unsigned int *)ft = r;
- }
-}
diff --git a/arch/nds32/math-emu/fs2uiz.c b/arch/nds32/math-emu/fs2uiz.c
deleted file mode 100644
index 22c5e4768044..000000000000
--- a/arch/nds32/math-emu/fs2uiz.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-
-void fs2ui_z(void *ft, void *fa)
-{
- unsigned int r;
-
- FP_DECL_S(A);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(unsigned int *)ft = (A_s == 0) ? 0xffffffff : 0x00000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(unsigned int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_S(r, A, 32, 0);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(unsigned int *)ft = r;
- }
-
-}
diff --git a/arch/nds32/math-emu/fsi2d.c b/arch/nds32/math-emu/fsi2d.c
deleted file mode 100644
index 6b04cec0c5c5..000000000000
--- a/arch/nds32/math-emu/fsi2d.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fsi2d(void *ft, void *fa)
-{
- int a = *(int *)fa;
-
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_FROM_INT_D(R, a, 32, int);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-
-}
diff --git a/arch/nds32/math-emu/fsi2s.c b/arch/nds32/math-emu/fsi2s.c
deleted file mode 100644
index 689864a5df90..000000000000
--- a/arch/nds32/math-emu/fsi2s.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-
-void fsi2s(void *ft, void *fa)
-{
- int a = *(int *)fa;
-
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_FROM_INT_S(R, a, 32, int);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-
-}
diff --git a/arch/nds32/math-emu/fsqrtd.c b/arch/nds32/math-emu/fsqrtd.c
deleted file mode 100644
index c3a8dbd81d4e..000000000000
--- a/arch/nds32/math-emu/fsqrtd.c
+++ /dev/null
@@ -1,21 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-
-#include <linux/uaccess.h>
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-void fsqrtd(void *ft, void *fa)
-{
- FP_DECL_D(A);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- FP_SQRT_D(R, A);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fsqrts.c b/arch/nds32/math-emu/fsqrts.c
deleted file mode 100644
index 4c6f94b27328..000000000000
--- a/arch/nds32/math-emu/fsqrts.c
+++ /dev/null
@@ -1,21 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-
-#include <linux/uaccess.h>
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-void fsqrts(void *ft, void *fa)
-{
- FP_DECL_S(A);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- FP_SQRT_S(R, A);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fsubd.c b/arch/nds32/math-emu/fsubd.c
deleted file mode 100644
index 81b6a0d02a1f..000000000000
--- a/arch/nds32/math-emu/fsubd.c
+++ /dev/null
@@ -1,27 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-void fsubd(void *ft, void *fa, void *fb)
-{
-
- FP_DECL_D(A);
- FP_DECL_D(B);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
- FP_UNPACK_DP(B, fb);
-
- if (B_c != FP_CLS_NAN)
- B_s ^= 1;
-
- FP_ADD_D(R, A, B);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fsubs.c b/arch/nds32/math-emu/fsubs.c
deleted file mode 100644
index 61ddd9708465..000000000000
--- a/arch/nds32/math-emu/fsubs.c
+++ /dev/null
@@ -1,27 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-void fsubs(void *ft, void *fa, void *fb)
-{
-
- FP_DECL_S(A);
- FP_DECL_S(B);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
- FP_UNPACK_SP(B, fb);
-
- if (B_c != FP_CLS_NAN)
- B_s ^= 1;
-
- FP_ADD_S(R, A, B);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fui2d.c b/arch/nds32/math-emu/fui2d.c
deleted file mode 100644
index 9689d33a8d50..000000000000
--- a/arch/nds32/math-emu/fui2d.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fui2d(void *ft, void *fa)
-{
- unsigned int a = *(unsigned int *)fa;
-
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_FROM_INT_D(R, a, 32, int);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-
-}
diff --git a/arch/nds32/math-emu/fui2s.c b/arch/nds32/math-emu/fui2s.c
deleted file mode 100644
index f70f0762547d..000000000000
--- a/arch/nds32/math-emu/fui2s.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-
-void fui2s(void *ft, void *fa)
-{
- unsigned int a = *(unsigned int *)fa;
-
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_FROM_INT_S(R, a, 32, int);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-
-}
diff --git a/arch/nds32/mm/Makefile b/arch/nds32/mm/Makefile
deleted file mode 100644
index 14fb2e8eb036..000000000000
--- a/arch/nds32/mm/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-obj-y := extable.o tlb.o fault.o init.o mmap.o \
- mm-nds32.o cacheflush.o proc.o
-
-obj-$(CONFIG_ALIGNMENT_TRAP) += alignment.o
-
-ifdef CONFIG_FUNCTION_TRACER
-CFLAGS_REMOVE_proc.o = $(CC_FLAGS_FTRACE)
-endif
-CFLAGS_proc.o += -fomit-frame-pointer
diff --git a/arch/nds32/mm/alignment.c b/arch/nds32/mm/alignment.c
deleted file mode 100644
index 1eb7ded6992b..000000000000
--- a/arch/nds32/mm/alignment.c
+++ /dev/null
@@ -1,578 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/proc_fs.h>
-#include <linux/uaccess.h>
-#include <linux/sysctl.h>
-#include <asm/unaligned.h>
-
-#define DEBUG(enable, tagged, ...) \
- do{ \
- if (enable) { \
- if (tagged) \
- pr_warn("[ %30s() ] ", __func__); \
- pr_warn(__VA_ARGS__); \
- } \
- } while (0)
-
-#define RT(inst) (((inst) >> 20) & 0x1FUL)
-#define RA(inst) (((inst) >> 15) & 0x1FUL)
-#define RB(inst) (((inst) >> 10) & 0x1FUL)
-#define SV(inst) (((inst) >> 8) & 0x3UL)
-#define IMM(inst) (((inst) >> 0) & 0x7FFFUL)
-
-#define RA3(inst) (((inst) >> 3) & 0x7UL)
-#define RT3(inst) (((inst) >> 6) & 0x7UL)
-#define IMM3U(inst) (((inst) >> 0) & 0x7UL)
-
-#define RA5(inst) (((inst) >> 0) & 0x1FUL)
-#define RT4(inst) (((inst) >> 5) & 0xFUL)
-
-#define GET_IMMSVAL(imm_value) \
- (((imm_value >> 14) & 0x1) ? (imm_value - 0x8000) : imm_value)
-
-#define __get8_data(val,addr,err) \
- __asm__( \
- "1: lbi.bi %1, [%2], #1\n" \
- "2:\n" \
- " .pushsection .text.fixup,\"ax\"\n" \
- " .align 2\n" \
- "3: movi %0, #1\n" \
- " j 2b\n" \
- " .popsection\n" \
- " .pushsection __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 3b\n" \
- " .popsection\n" \
- : "=r" (err), "=&r" (val), "=r" (addr) \
- : "0" (err), "2" (addr))
-
-#define get16_data(addr, val_ptr) \
- do { \
- unsigned int err = 0, v, a = addr; \
- __get8_data(v,a,err); \
- *val_ptr = v << 0; \
- __get8_data(v,a,err); \
- *val_ptr |= v << 8; \
- if (err) \
- goto fault; \
- *val_ptr = le16_to_cpu(*val_ptr); \
- } while(0)
-
-#define get32_data(addr, val_ptr) \
- do { \
- unsigned int err = 0, v, a = addr; \
- __get8_data(v,a,err); \
- *val_ptr = v << 0; \
- __get8_data(v,a,err); \
- *val_ptr |= v << 8; \
- __get8_data(v,a,err); \
- *val_ptr |= v << 16; \
- __get8_data(v,a,err); \
- *val_ptr |= v << 24; \
- if (err) \
- goto fault; \
- *val_ptr = le32_to_cpu(*val_ptr); \
- } while(0)
-
-#define get_data(addr, val_ptr, len) \
- if (len == 2) \
- get16_data(addr, val_ptr); \
- else \
- get32_data(addr, val_ptr);
-
-#define set16_data(addr, val) \
- do { \
- unsigned int err = 0, *ptr = addr ; \
- val = le32_to_cpu(val); \
- __asm__( \
- "1: sbi.bi %2, [%1], #1\n" \
- " srli %2, %2, #8\n" \
- "2: sbi %2, [%1]\n" \
- "3:\n" \
- " .pushsection .text.fixup,\"ax\"\n" \
- " .align 2\n" \
- "4: movi %0, #1\n" \
- " j 3b\n" \
- " .popsection\n" \
- " .pushsection __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 4b\n" \
- " .long 2b, 4b\n" \
- " .popsection\n" \
- : "=r" (err), "+r" (ptr), "+r" (val) \
- : "0" (err) \
- ); \
- if (err) \
- goto fault; \
- } while(0)
-
-#define set32_data(addr, val) \
- do { \
- unsigned int err = 0, *ptr = addr ; \
- val = le32_to_cpu(val); \
- __asm__( \
- "1: sbi.bi %2, [%1], #1\n" \
- " srli %2, %2, #8\n" \
- "2: sbi.bi %2, [%1], #1\n" \
- " srli %2, %2, #8\n" \
- "3: sbi.bi %2, [%1], #1\n" \
- " srli %2, %2, #8\n" \
- "4: sbi %2, [%1]\n" \
- "5:\n" \
- " .pushsection .text.fixup,\"ax\"\n" \
- " .align 2\n" \
- "6: movi %0, #1\n" \
- " j 5b\n" \
- " .popsection\n" \
- " .pushsection __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 6b\n" \
- " .long 2b, 6b\n" \
- " .long 3b, 6b\n" \
- " .long 4b, 6b\n" \
- " .popsection\n" \
- : "=r" (err), "+r" (ptr), "+r" (val) \
- : "0" (err) \
- ); \
- if (err) \
- goto fault; \
- } while(0)
-#define set_data(addr, val, len) \
- if (len == 2) \
- set16_data(addr, val); \
- else \
- set32_data(addr, val);
-#define NDS32_16BIT_INSTRUCTION 0x80000000
-
-extern pte_t va_present(struct mm_struct *mm, unsigned long addr);
-extern pte_t va_kernel_present(unsigned long addr);
-extern int va_readable(struct pt_regs *regs, unsigned long addr);
-extern int va_writable(struct pt_regs *regs, unsigned long addr);
-
-int unalign_access_mode = 0, unalign_access_debug = 0;
-
-static inline unsigned long *idx_to_addr(struct pt_regs *regs, int idx)
-{
- /* this should be consistent with ptrace.h */
- if (idx >= 0 && idx <= 25) /* R0-R25 */
- return ®s->uregs[0] + idx;
- else if (idx >= 28 && idx <= 30) /* FP, GP, LP */
- return ®s->fp + (idx - 28);
- else if (idx == 31) /* SP */
- return ®s->sp;
- else
- return NULL; /* cause a segfault */
-}
-
-static inline unsigned long get_inst(unsigned long addr)
-{
- return be32_to_cpu(get_unaligned((u32 *) addr));
-}
-
-static inline unsigned long sign_extend(unsigned long val, int len)
-{
- unsigned long ret = 0;
- unsigned char *s, *t;
- int i = 0;
-
- val = cpu_to_le32(val);
-
- s = (void *)&val;
- t = (void *)&ret;
-
- while (i++ < len)
- *t++ = *s++;
-
- if (((*(t - 1)) & 0x80) && (i < 4)) {
-
- while (i++ <= 4)
- *t++ = 0xff;
- }
-
- return le32_to_cpu(ret);
-}
-
-static inline int do_16(unsigned long inst, struct pt_regs *regs)
-{
- int imm, regular, load, len, addr_mode, idx_mode;
- unsigned long unaligned_addr, target_val, source_idx, target_idx,
- shift = 0;
- switch ((inst >> 9) & 0x3F) {
-
- case 0x12: /* LHI333 */
- imm = 1;
- regular = 1;
- load = 1;
- len = 2;
- addr_mode = 3;
- idx_mode = 3;
- break;
- case 0x10: /* LWI333 */
- imm = 1;
- regular = 1;
- load = 1;
- len = 4;
- addr_mode = 3;
- idx_mode = 3;
- break;
- case 0x11: /* LWI333.bi */
- imm = 1;
- regular = 0;
- load = 1;
- len = 4;
- addr_mode = 3;
- idx_mode = 3;
- break;
- case 0x1A: /* LWI450 */
- imm = 0;
- regular = 1;
- load = 1;
- len = 4;
- addr_mode = 5;
- idx_mode = 4;
- break;
- case 0x16: /* SHI333 */
- imm = 1;
- regular = 1;
- load = 0;
- len = 2;
- addr_mode = 3;
- idx_mode = 3;
- break;
- case 0x14: /* SWI333 */
- imm = 1;
- regular = 1;
- load = 0;
- len = 4;
- addr_mode = 3;
- idx_mode = 3;
- break;
- case 0x15: /* SWI333.bi */
- imm = 1;
- regular = 0;
- load = 0;
- len = 4;
- addr_mode = 3;
- idx_mode = 3;
- break;
- case 0x1B: /* SWI450 */
- imm = 0;
- regular = 1;
- load = 0;
- len = 4;
- addr_mode = 5;
- idx_mode = 4;
- break;
-
- default:
- return -EFAULT;
- }
-
- if (addr_mode == 3) {
- unaligned_addr = *idx_to_addr(regs, RA3(inst));
- source_idx = RA3(inst);
- } else {
- unaligned_addr = *idx_to_addr(regs, RA5(inst));
- source_idx = RA5(inst);
- }
-
- if (idx_mode == 3)
- target_idx = RT3(inst);
- else
- target_idx = RT4(inst);
-
- if (imm)
- shift = IMM3U(inst) * len;
-
- if (regular)
- unaligned_addr += shift;
-
- if (load) {
- if (!access_ok((void *)unaligned_addr, len))
- return -EACCES;
-
- get_data(unaligned_addr, &target_val, len);
- *idx_to_addr(regs, target_idx) = target_val;
- } else {
- if (!access_ok((void *)unaligned_addr, len))
- return -EACCES;
- target_val = *idx_to_addr(regs, target_idx);
- set_data((void *)unaligned_addr, target_val, len);
- }
-
- if (!regular)
- *idx_to_addr(regs, source_idx) = unaligned_addr + shift;
- regs->ipc += 2;
-
- return 0;
-fault:
- return -EACCES;
-}
-
-static inline int do_32(unsigned long inst, struct pt_regs *regs)
-{
- int imm, regular, load, len, sign_ext;
- unsigned long unaligned_addr, target_val, shift;
-
- unaligned_addr = *idx_to_addr(regs, RA(inst));
-
- switch ((inst >> 25) << 1) {
-
- case 0x02: /* LHI */
- imm = 1;
- regular = 1;
- load = 1;
- len = 2;
- sign_ext = 0;
- break;
- case 0x0A: /* LHI.bi */
- imm = 1;
- regular = 0;
- load = 1;
- len = 2;
- sign_ext = 0;
- break;
- case 0x22: /* LHSI */
- imm = 1;
- regular = 1;
- load = 1;
- len = 2;
- sign_ext = 1;
- break;
- case 0x2A: /* LHSI.bi */
- imm = 1;
- regular = 0;
- load = 1;
- len = 2;
- sign_ext = 1;
- break;
- case 0x04: /* LWI */
- imm = 1;
- regular = 1;
- load = 1;
- len = 4;
- sign_ext = 0;
- break;
- case 0x0C: /* LWI.bi */
- imm = 1;
- regular = 0;
- load = 1;
- len = 4;
- sign_ext = 0;
- break;
- case 0x12: /* SHI */
- imm = 1;
- regular = 1;
- load = 0;
- len = 2;
- sign_ext = 0;
- break;
- case 0x1A: /* SHI.bi */
- imm = 1;
- regular = 0;
- load = 0;
- len = 2;
- sign_ext = 0;
- break;
- case 0x14: /* SWI */
- imm = 1;
- regular = 1;
- load = 0;
- len = 4;
- sign_ext = 0;
- break;
- case 0x1C: /* SWI.bi */
- imm = 1;
- regular = 0;
- load = 0;
- len = 4;
- sign_ext = 0;
- break;
-
- default:
- switch (inst & 0xff) {
-
- case 0x01: /* LH */
- imm = 0;
- regular = 1;
- load = 1;
- len = 2;
- sign_ext = 0;
- break;
- case 0x05: /* LH.bi */
- imm = 0;
- regular = 0;
- load = 1;
- len = 2;
- sign_ext = 0;
- break;
- case 0x11: /* LHS */
- imm = 0;
- regular = 1;
- load = 1;
- len = 2;
- sign_ext = 1;
- break;
- case 0x15: /* LHS.bi */
- imm = 0;
- regular = 0;
- load = 1;
- len = 2;
- sign_ext = 1;
- break;
- case 0x02: /* LW */
- imm = 0;
- regular = 1;
- load = 1;
- len = 4;
- sign_ext = 0;
- break;
- case 0x06: /* LW.bi */
- imm = 0;
- regular = 0;
- load = 1;
- len = 4;
- sign_ext = 0;
- break;
- case 0x09: /* SH */
- imm = 0;
- regular = 1;
- load = 0;
- len = 2;
- sign_ext = 0;
- break;
- case 0x0D: /* SH.bi */
- imm = 0;
- regular = 0;
- load = 0;
- len = 2;
- sign_ext = 0;
- break;
- case 0x0A: /* SW */
- imm = 0;
- regular = 1;
- load = 0;
- len = 4;
- sign_ext = 0;
- break;
- case 0x0E: /* SW.bi */
- imm = 0;
- regular = 0;
- load = 0;
- len = 4;
- sign_ext = 0;
- break;
-
- default:
- return -EFAULT;
- }
- }
-
- if (imm)
- shift = GET_IMMSVAL(IMM(inst)) * len;
- else
- shift = *idx_to_addr(regs, RB(inst)) << SV(inst);
-
- if (regular)
- unaligned_addr += shift;
-
- if (load) {
-
- if (!access_ok((void *)unaligned_addr, len))
- return -EACCES;
-
- get_data(unaligned_addr, &target_val, len);
-
- if (sign_ext)
- *idx_to_addr(regs, RT(inst)) =
- sign_extend(target_val, len);
- else
- *idx_to_addr(regs, RT(inst)) = target_val;
- } else {
-
- if (!access_ok((void *)unaligned_addr, len))
- return -EACCES;
-
- target_val = *idx_to_addr(regs, RT(inst));
- set_data((void *)unaligned_addr, target_val, len);
- }
-
- if (!regular)
- *idx_to_addr(regs, RA(inst)) = unaligned_addr + shift;
-
- regs->ipc += 4;
-
- return 0;
-fault:
- return -EACCES;
-}
-
-int do_unaligned_access(unsigned long addr, struct pt_regs *regs)
-{
- unsigned long inst;
- int ret = -EFAULT;
- mm_segment_t seg;
-
- inst = get_inst(regs->ipc);
-
- DEBUG((unalign_access_debug > 0), 1,
- "Faulting addr: 0x%08lx, pc: 0x%08lx [inst: 0x%08lx ]\n", addr,
- regs->ipc, inst);
-
- seg = force_uaccess_begin();
- if (inst & NDS32_16BIT_INSTRUCTION)
- ret = do_16((inst >> 16) & 0xffff, regs);
- else
- ret = do_32(inst, regs);
- force_uaccess_end(seg);
-
- return ret;
-}
-
-#ifdef CONFIG_PROC_FS
-
-static struct ctl_table alignment_tbl[3] = {
- {
- .procname = "enable",
- .data = &unalign_access_mode,
- .maxlen = sizeof(unalign_access_mode),
- .mode = 0666,
- .proc_handler = &proc_dointvec
- }
- ,
- {
- .procname = "debug_info",
- .data = &unalign_access_debug,
- .maxlen = sizeof(unalign_access_debug),
- .mode = 0644,
- .proc_handler = &proc_dointvec
- }
- ,
- {}
-};
-
-static struct ctl_table nds32_sysctl_table[2] = {
- {
- .procname = "unaligned_access",
- .mode = 0555,
- .child = alignment_tbl},
- {}
-};
-
-static struct ctl_path nds32_path[2] = {
- {.procname = "nds32"},
- {}
-};
-
-/*
- * Initialize nds32 alignment-correction interface
- */
-static int __init nds32_sysctl_init(void)
-{
- register_sysctl_paths(nds32_path, nds32_sysctl_table);
- return 0;
-}
-
-__initcall(nds32_sysctl_init);
-#endif /* CONFIG_PROC_FS */
diff --git a/arch/nds32/mm/cacheflush.c b/arch/nds32/mm/cacheflush.c
deleted file mode 100644
index 07aac65d1cab..000000000000
--- a/arch/nds32/mm/cacheflush.c
+++ /dev/null
@@ -1,338 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/fs.h>
-#include <linux/pagemap.h>
-#include <linux/module.h>
-#include <asm/cacheflush.h>
-#include <asm/proc-fns.h>
-#include <asm/shmparam.h>
-#include <asm/cache_info.h>
-
-extern struct cache_info L1_cache_info[2];
-
-void flush_icache_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size, flags;
- line_size = L1_cache_info[DCACHE].line_size;
- start = start & ~(line_size - 1);
- end = (end + line_size - 1) & ~(line_size - 1);
- local_irq_save(flags);
- cpu_cache_wbinval_range(start, end, 1);
- local_irq_restore(flags);
-}
-EXPORT_SYMBOL(flush_icache_range);
-
-void flush_icache_page(struct vm_area_struct *vma, struct page *page)
-{
- unsigned long flags;
- unsigned long kaddr;
- local_irq_save(flags);
- kaddr = (unsigned long)kmap_atomic(page);
- cpu_cache_wbinval_page(kaddr, vma->vm_flags & VM_EXEC);
- kunmap_atomic((void *)kaddr);
- local_irq_restore(flags);
-}
-
-void flush_icache_user_page(struct vm_area_struct *vma, struct page *page,
- unsigned long addr, int len)
-{
- unsigned long kaddr;
- kaddr = (unsigned long)kmap_atomic(page) + (addr & ~PAGE_MASK);
- flush_icache_range(kaddr, kaddr + len);
- kunmap_atomic((void *)kaddr);
-}
-
-void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr,
- pte_t * pte)
-{
- struct page *page;
- unsigned long pfn = pte_pfn(*pte);
- unsigned long flags;
-
- if (!pfn_valid(pfn))
- return;
-
- if (vma->vm_mm == current->active_mm) {
- local_irq_save(flags);
- __nds32__mtsr_dsb(addr, NDS32_SR_TLB_VPN);
- __nds32__tlbop_rwr(*pte);
- __nds32__isb();
- local_irq_restore(flags);
- }
- page = pfn_to_page(pfn);
-
- if ((test_and_clear_bit(PG_dcache_dirty, &page->flags)) ||
- (vma->vm_flags & VM_EXEC)) {
- unsigned long kaddr;
- local_irq_save(flags);
- kaddr = (unsigned long)kmap_atomic(page);
- cpu_cache_wbinval_page(kaddr, vma->vm_flags & VM_EXEC);
- kunmap_atomic((void *)kaddr);
- local_irq_restore(flags);
- }
-}
-#ifdef CONFIG_CPU_CACHE_ALIASING
-extern pte_t va_present(struct mm_struct *mm, unsigned long addr);
-
-static inline unsigned long aliasing(unsigned long addr, unsigned long page)
-{
- return ((addr & PAGE_MASK) ^ page) & (SHMLBA - 1);
-}
-
-static inline unsigned long kremap0(unsigned long uaddr, unsigned long pa)
-{
- unsigned long kaddr, pte;
-
-#define BASE_ADDR0 0xffffc000
- kaddr = BASE_ADDR0 | (uaddr & L1_cache_info[DCACHE].aliasing_mask);
- pte = (pa | PAGE_KERNEL);
- __nds32__mtsr_dsb(kaddr, NDS32_SR_TLB_VPN);
- __nds32__tlbop_rwlk(pte);
- __nds32__isb();
- return kaddr;
-}
-
-static inline void kunmap01(unsigned long kaddr)
-{
- __nds32__tlbop_unlk(kaddr);
- __nds32__tlbop_inv(kaddr);
- __nds32__isb();
-}
-
-static inline unsigned long kremap1(unsigned long uaddr, unsigned long pa)
-{
- unsigned long kaddr, pte;
-
-#define BASE_ADDR1 0xffff8000
- kaddr = BASE_ADDR1 | (uaddr & L1_cache_info[DCACHE].aliasing_mask);
- pte = (pa | PAGE_KERNEL);
- __nds32__mtsr_dsb(kaddr, NDS32_SR_TLB_VPN);
- __nds32__tlbop_rwlk(pte);
- __nds32__isb();
- return kaddr;
-}
-
-void flush_cache_mm(struct mm_struct *mm)
-{
- unsigned long flags;
-
- local_irq_save(flags);
- cpu_dcache_wbinval_all();
- cpu_icache_inval_all();
- local_irq_restore(flags);
-}
-
-void flush_cache_dup_mm(struct mm_struct *mm)
-{
-}
-
-void flush_cache_range(struct vm_area_struct *vma,
- unsigned long start, unsigned long end)
-{
- unsigned long flags;
-
- if ((end - start) > 8 * PAGE_SIZE) {
- cpu_dcache_wbinval_all();
- if (vma->vm_flags & VM_EXEC)
- cpu_icache_inval_all();
- return;
- }
- local_irq_save(flags);
- while (start < end) {
- if (va_present(vma->vm_mm, start))
- cpu_cache_wbinval_page(start, vma->vm_flags & VM_EXEC);
- start += PAGE_SIZE;
- }
- local_irq_restore(flags);
- return;
-}
-
-void flush_cache_page(struct vm_area_struct *vma,
- unsigned long addr, unsigned long pfn)
-{
- unsigned long vto, flags;
-
- local_irq_save(flags);
- vto = kremap0(addr, pfn << PAGE_SHIFT);
- cpu_cache_wbinval_page(vto, vma->vm_flags & VM_EXEC);
- kunmap01(vto);
- local_irq_restore(flags);
-}
-
-void flush_cache_vmap(unsigned long start, unsigned long end)
-{
- cpu_dcache_wbinval_all();
- cpu_icache_inval_all();
-}
-
-void flush_cache_vunmap(unsigned long start, unsigned long end)
-{
- cpu_dcache_wbinval_all();
- cpu_icache_inval_all();
-}
-
-void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
- struct page *to)
-{
- cpu_dcache_wbinval_page((unsigned long)vaddr);
- cpu_icache_inval_page((unsigned long)vaddr);
- copy_page(vto, vfrom);
- cpu_dcache_wbinval_page((unsigned long)vto);
- cpu_icache_inval_page((unsigned long)vto);
-}
-
-void clear_user_page(void *addr, unsigned long vaddr, struct page *page)
-{
- cpu_dcache_wbinval_page((unsigned long)vaddr);
- cpu_icache_inval_page((unsigned long)vaddr);
- clear_page(addr);
- cpu_dcache_wbinval_page((unsigned long)addr);
- cpu_icache_inval_page((unsigned long)addr);
-}
-
-void copy_user_highpage(struct page *to, struct page *from,
- unsigned long vaddr, struct vm_area_struct *vma)
-{
- unsigned long vto, vfrom, flags, kto, kfrom, pfrom, pto;
- kto = ((unsigned long)page_address(to) & PAGE_MASK);
- kfrom = ((unsigned long)page_address(from) & PAGE_MASK);
- pto = page_to_phys(to);
- pfrom = page_to_phys(from);
-
- local_irq_save(flags);
- if (aliasing(vaddr, (unsigned long)kfrom))
- cpu_dcache_wb_page((unsigned long)kfrom);
- vto = kremap0(vaddr, pto);
- vfrom = kremap1(vaddr, pfrom);
- copy_page((void *)vto, (void *)vfrom);
- kunmap01(vfrom);
- kunmap01(vto);
- local_irq_restore(flags);
-}
-
-EXPORT_SYMBOL(copy_user_highpage);
-
-void clear_user_highpage(struct page *page, unsigned long vaddr)
-{
- unsigned long vto, flags, kto;
-
- kto = ((unsigned long)page_address(page) & PAGE_MASK);
-
- local_irq_save(flags);
- if (aliasing(kto, vaddr) && kto != 0) {
- cpu_dcache_inval_page(kto);
- cpu_icache_inval_page(kto);
- }
- vto = kremap0(vaddr, page_to_phys(page));
- clear_page((void *)vto);
- kunmap01(vto);
- local_irq_restore(flags);
-}
-
-EXPORT_SYMBOL(clear_user_highpage);
-
-void flush_dcache_page(struct page *page)
-{
- struct address_space *mapping;
-
- mapping = page_mapping_file(page);
- if (mapping && !mapping_mapped(mapping))
- set_bit(PG_dcache_dirty, &page->flags);
- else {
- unsigned long kaddr, flags;
-
- kaddr = (unsigned long)page_address(page);
- local_irq_save(flags);
- cpu_dcache_wbinval_page(kaddr);
- if (mapping) {
- unsigned long vaddr, kto;
-
- vaddr = page->index << PAGE_SHIFT;
- if (aliasing(vaddr, kaddr)) {
- kto = kremap0(vaddr, page_to_phys(page));
- cpu_dcache_wbinval_page(kto);
- kunmap01(kto);
- }
- }
- local_irq_restore(flags);
- }
-}
-EXPORT_SYMBOL(flush_dcache_page);
-
-void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
- unsigned long vaddr, void *dst, void *src, int len)
-{
- unsigned long line_size, start, end, vto, flags;
-
- local_irq_save(flags);
- vto = kremap0(vaddr, page_to_phys(page));
- dst = (void *)(vto | (vaddr & (PAGE_SIZE - 1)));
- memcpy(dst, src, len);
- if (vma->vm_flags & VM_EXEC) {
- line_size = L1_cache_info[DCACHE].line_size;
- start = (unsigned long)dst & ~(line_size - 1);
- end =
- ((unsigned long)dst + len + line_size - 1) & ~(line_size -
- 1);
- cpu_cache_wbinval_range(start, end, 1);
- }
- kunmap01(vto);
- local_irq_restore(flags);
-}
-
-void copy_from_user_page(struct vm_area_struct *vma, struct page *page,
- unsigned long vaddr, void *dst, void *src, int len)
-{
- unsigned long vto, flags;
-
- local_irq_save(flags);
- vto = kremap0(vaddr, page_to_phys(page));
- src = (void *)(vto | (vaddr & (PAGE_SIZE - 1)));
- memcpy(dst, src, len);
- kunmap01(vto);
- local_irq_restore(flags);
-}
-
-void flush_anon_page(struct vm_area_struct *vma,
- struct page *page, unsigned long vaddr)
-{
- unsigned long kaddr, flags, ktmp;
- if (!PageAnon(page))
- return;
-
- if (vma->vm_mm != current->active_mm)
- return;
-
- local_irq_save(flags);
- if (vma->vm_flags & VM_EXEC)
- cpu_icache_inval_page(vaddr & PAGE_MASK);
- kaddr = (unsigned long)page_address(page);
- if (aliasing(vaddr, kaddr)) {
- ktmp = kremap0(vaddr, page_to_phys(page));
- cpu_dcache_wbinval_page(ktmp);
- kunmap01(ktmp);
- }
- local_irq_restore(flags);
-}
-
-void flush_kernel_vmap_range(void *addr, int size)
-{
- unsigned long flags;
- local_irq_save(flags);
- cpu_dcache_wb_range((unsigned long)addr, (unsigned long)addr + size);
- local_irq_restore(flags);
-}
-EXPORT_SYMBOL(flush_kernel_vmap_range);
-
-void invalidate_kernel_vmap_range(void *addr, int size)
-{
- unsigned long flags;
- local_irq_save(flags);
- cpu_dcache_inval_range((unsigned long)addr, (unsigned long)addr + size);
- local_irq_restore(flags);
-}
-EXPORT_SYMBOL(invalidate_kernel_vmap_range);
-#endif
diff --git a/arch/nds32/mm/extable.c b/arch/nds32/mm/extable.c
deleted file mode 100644
index db7f0a7c8966..000000000000
--- a/arch/nds32/mm/extable.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/extable.h>
-#include <linux/uaccess.h>
-
-int fixup_exception(struct pt_regs *regs)
-{
- const struct exception_table_entry *fixup;
-
- fixup = search_exception_tables(instruction_pointer(regs));
- if (fixup)
- regs->ipc = fixup->fixup;
-
- return fixup != NULL;
-}
diff --git a/arch/nds32/mm/fault.c b/arch/nds32/mm/fault.c
deleted file mode 100644
index 636977a1c8b9..000000000000
--- a/arch/nds32/mm/fault.c
+++ /dev/null
@@ -1,396 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/extable.h>
-#include <linux/module.h>
-#include <linux/signal.h>
-#include <linux/ptrace.h>
-#include <linux/mm.h>
-#include <linux/init.h>
-#include <linux/hardirq.h>
-#include <linux/uaccess.h>
-#include <linux/perf_event.h>
-
-#include <asm/tlbflush.h>
-
-extern void __noreturn die(const char *str, struct pt_regs *regs, long err);
-
-/*
- * This is useful to dump out the page tables associated with
- * 'addr' in mm 'mm'.
- */
-void show_pte(struct mm_struct *mm, unsigned long addr)
-{
- pgd_t *pgd;
- if (!mm)
- mm = &init_mm;
-
- pr_alert("pgd = %p\n", mm->pgd);
- pgd = pgd_offset(mm, addr);
- pr_alert("[%08lx] *pgd=%08lx", addr, pgd_val(*pgd));
-
- do {
- p4d_t *p4d;
- pud_t *pud;
- pmd_t *pmd;
-
- if (pgd_none(*pgd))
- break;
-
- if (pgd_bad(*pgd)) {
- pr_alert("(bad)");
- break;
- }
-
- p4d = p4d_offset(pgd, addr);
- pud = pud_offset(p4d, addr);
- pmd = pmd_offset(pud, addr);
-#if PTRS_PER_PMD != 1
- pr_alert(", *pmd=%08lx", pmd_val(*pmd));
-#endif
-
- if (pmd_none(*pmd))
- break;
-
- if (pmd_bad(*pmd)) {
- pr_alert("(bad)");
- break;
- }
-
- if (IS_ENABLED(CONFIG_HIGHMEM))
- {
- pte_t *pte;
- /* We must not map this if we have highmem enabled */
- pte = pte_offset_map(pmd, addr);
- pr_alert(", *pte=%08lx", pte_val(*pte));
- pte_unmap(pte);
- }
- } while (0);
-
- pr_alert("\n");
-}
-
-void do_page_fault(unsigned long entry, unsigned long addr,
- unsigned int error_code, struct pt_regs *regs)
-{
- struct task_struct *tsk;
- struct mm_struct *mm;
- struct vm_area_struct *vma;
- int si_code;
- vm_fault_t fault;
- unsigned int mask = VM_ACCESS_FLAGS;
- unsigned int flags = FAULT_FLAG_DEFAULT;
-
- error_code = error_code & (ITYPE_mskINST | ITYPE_mskETYPE);
- tsk = current;
- mm = tsk->mm;
- si_code = SEGV_MAPERR;
- /*
- * We fault-in kernel-space virtual memory on-demand. The
- * 'reference' page table is init_mm.pgd.
- *
- * NOTE! We MUST NOT take any locks for this case. We may
- * be in an interrupt or a critical region, and should
- * only copy the information from the master page table,
- * nothing more.
- */
- if (addr >= TASK_SIZE) {
- if (user_mode(regs))
- goto bad_area_nosemaphore;
-
- if (addr >= TASK_SIZE && addr < VMALLOC_END
- && (entry == ENTRY_PTE_NOT_PRESENT))
- goto vmalloc_fault;
- else
- goto no_context;
- }
-
- /* Send a signal to the task for handling the unalignment access. */
- if (entry == ENTRY_GENERAL_EXCPETION
- && error_code == ETYPE_ALIGNMENT_CHECK) {
- if (user_mode(regs))
- goto bad_area_nosemaphore;
- else
- goto no_context;
- }
-
- /*
- * If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
- if (unlikely(faulthandler_disabled() || !mm))
- goto no_context;
-
- perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, addr);
-
- /*
- * As per x86, we may deadlock here. However, since the kernel only
- * validly references user space from well defined areas of the code,
- * we can bug out early if this is from code which shouldn't.
- */
- if (unlikely(!mmap_read_trylock(mm))) {
- if (!user_mode(regs) &&
- !search_exception_tables(instruction_pointer(regs)))
- goto no_context;
-retry:
- mmap_read_lock(mm);
- } else {
- /*
- * The above down_read_trylock() might have succeeded in which
- * case, we'll have missed the might_sleep() from down_read().
- */
- might_sleep();
- if (IS_ENABLED(CONFIG_DEBUG_VM)) {
- if (!user_mode(regs) &&
- !search_exception_tables(instruction_pointer(regs)))
- goto no_context;
- }
- }
-
- vma = find_vma(mm, addr);
-
- if (unlikely(!vma))
- goto bad_area;
-
- if (vma->vm_start <= addr)
- goto good_area;
-
- if (unlikely(!(vma->vm_flags & VM_GROWSDOWN)))
- goto bad_area;
-
- if (unlikely(expand_stack(vma, addr)))
- goto bad_area;
-
- /*
- * Ok, we have a good vm_area for this memory access, so
- * we can handle it..
- */
-
-good_area:
- si_code = SEGV_ACCERR;
-
- /* first do some preliminary protection checks */
- if (entry == ENTRY_PTE_NOT_PRESENT) {
- if (error_code & ITYPE_mskINST)
- mask = VM_EXEC;
- else {
- mask = VM_READ | VM_WRITE;
- }
- } else if (entry == ENTRY_TLB_MISC) {
- switch (error_code & ITYPE_mskETYPE) {
- case RD_PROT:
- mask = VM_READ;
- break;
- case WRT_PROT:
- mask = VM_WRITE;
- flags |= FAULT_FLAG_WRITE;
- break;
- case NOEXEC:
- mask = VM_EXEC;
- break;
- case PAGE_MODIFY:
- mask = VM_WRITE;
- flags |= FAULT_FLAG_WRITE;
- break;
- case ACC_BIT:
- BUG();
- default:
- break;
- }
-
- }
- if (!(vma->vm_flags & mask))
- goto bad_area;
-
- /*
- * If for any reason at all we couldn't handle the fault,
- * make sure we exit gracefully rather than endlessly redo
- * the fault.
- */
-
- fault = handle_mm_fault(vma, addr, flags, regs);
-
- /*
- * If we need to retry but a fatal signal is pending, handle the
- * signal first. We do not need to release the mmap_lock because it
- * would already be released in __lock_page_or_retry in mm/filemap.c.
- */
- if (fault_signal_pending(fault, regs)) {
- if (!user_mode(regs))
- goto no_context;
- return;
- }
-
- if (unlikely(fault & VM_FAULT_ERROR)) {
- if (fault & VM_FAULT_OOM)
- goto out_of_memory;
- else if (fault & VM_FAULT_SIGBUS)
- goto do_sigbus;
- else
- goto bad_area;
- }
-
- if (fault & VM_FAULT_RETRY) {
- flags |= FAULT_FLAG_TRIED;
-
- /* No need to mmap_read_unlock(mm) as we would
- * have already released it in __lock_page_or_retry
- * in mm/filemap.c.
- */
- goto retry;
- }
-
- mmap_read_unlock(mm);
- return;
-
- /*
- * Something tried to access memory that isn't in our memory map..
- * Fix it, but check if it's kernel or user first..
- */
-bad_area:
- mmap_read_unlock(mm);
-
-bad_area_nosemaphore:
-
- /* User mode accesses just cause a SIGSEGV */
-
- if (user_mode(regs)) {
- tsk->thread.address = addr;
- tsk->thread.error_code = error_code;
- tsk->thread.trap_no = entry;
- force_sig_fault(SIGSEGV, si_code, (void __user *)addr);
- return;
- }
-
-no_context:
-
- /* Are we prepared to handle this kernel fault?
- *
- * (The kernel has valid exception-points in the source
- * when it acesses user-memory. When it fails in one
- * of those points, we find it in a table and do a jump
- * to some fixup code that loads an appropriate error
- * code)
- */
-
- {
- const struct exception_table_entry *entry;
-
- if ((entry =
- search_exception_tables(instruction_pointer(regs))) !=
- NULL) {
- /* Adjust the instruction pointer in the stackframe */
- instruction_pointer(regs) = entry->fixup;
- return;
- }
- }
-
- /*
- * Oops. The kernel tried to access some bad page. We'll have to
- * terminate things with extreme prejudice.
- */
-
- bust_spinlocks(1);
- pr_alert("Unable to handle kernel %s at virtual address %08lx\n",
- (addr < PAGE_SIZE) ? "NULL pointer dereference" :
- "paging request", addr);
-
- show_pte(mm, addr);
- die("Oops", regs, error_code);
-
- /*
- * We ran out of memory, or some other thing happened to us that made
- * us unable to handle the page fault gracefully.
- */
-
-out_of_memory:
- mmap_read_unlock(mm);
- if (!user_mode(regs))
- goto no_context;
- pagefault_out_of_memory();
- return;
-
-do_sigbus:
- mmap_read_unlock(mm);
-
- /* Kernel mode? Handle exceptions or die */
- if (!user_mode(regs))
- goto no_context;
-
- /*
- * Send a sigbus
- */
- tsk->thread.address = addr;
- tsk->thread.error_code = error_code;
- tsk->thread.trap_no = entry;
- force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)addr);
-
- return;
-
-vmalloc_fault:
- {
- /*
- * Synchronize this task's top level page-table
- * with the 'reference' page table.
- *
- * Use current_pgd instead of tsk->active_mm->pgd
- * since the latter might be unavailable if this
- * code is executed in a misfortunately run irq
- * (like inside schedule() between switch_mm and
- * switch_to...).
- */
-
- unsigned int index = pgd_index(addr);
- pgd_t *pgd, *pgd_k;
- p4d_t *p4d, *p4d_k;
- pud_t *pud, *pud_k;
- pmd_t *pmd, *pmd_k;
- pte_t *pte_k;
-
- pgd = (pgd_t *) __va(__nds32__mfsr(NDS32_SR_L1_PPTB)) + index;
- pgd_k = init_mm.pgd + index;
-
- if (!pgd_present(*pgd_k))
- goto no_context;
-
- p4d = p4d_offset(pgd, addr);
- p4d_k = p4d_offset(pgd_k, addr);
- if (!p4d_present(*p4d_k))
- goto no_context;
-
- pud = pud_offset(p4d, addr);
- pud_k = pud_offset(p4d_k, addr);
- if (!pud_present(*pud_k))
- goto no_context;
-
- pmd = pmd_offset(pud, addr);
- pmd_k = pmd_offset(pud_k, addr);
- if (!pmd_present(*pmd_k))
- goto no_context;
-
- if (!pmd_present(*pmd))
- set_pmd(pmd, *pmd_k);
- else
- BUG_ON(pmd_page(*pmd) != pmd_page(*pmd_k));
-
- /*
- * Since the vmalloc area is global, we don't
- * need to copy individual PTE's, it is enough to
- * copy the pgd pointer into the pte page of the
- * root task. If that is there, we'll find our pte if
- * it exists.
- */
-
- /* Make sure the actual PTE exists as well to
- * catch kernel vmalloc-area accesses to non-mapped
- * addres. If we don't do this, this will just
- * silently loop forever.
- */
-
- pte_k = pte_offset_kernel(pmd_k, addr);
- if (!pte_present(*pte_k))
- goto no_context;
-
- return;
- }
-}
diff --git a/arch/nds32/mm/init.c b/arch/nds32/mm/init.c
deleted file mode 100644
index f63f839738c4..000000000000
--- a/arch/nds32/mm/init.c
+++ /dev/null
@@ -1,263 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 1995-2005 Russell King
-// Copyright (C) 2012 ARM Ltd.
-// Copyright (C) 2013-2017 Andes Technology Corporation
-
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/swap.h>
-#include <linux/init.h>
-#include <linux/memblock.h>
-#include <linux/mman.h>
-#include <linux/nodemask.h>
-#include <linux/initrd.h>
-#include <linux/highmem.h>
-
-#include <asm/sections.h>
-#include <asm/setup.h>
-#include <asm/tlb.h>
-#include <asm/page.h>
-
-DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
-DEFINE_SPINLOCK(anon_alias_lock);
-extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
-
-/*
- * empty_zero_page is a special page that is used for
- * zero-initialized data and COW.
- */
-struct page *empty_zero_page;
-EXPORT_SYMBOL(empty_zero_page);
-
-static void __init zone_sizes_init(void)
-{
- unsigned long max_zone_pfn[MAX_NR_ZONES] = { 0 };
-
- max_zone_pfn[ZONE_NORMAL] = max_low_pfn;
-#ifdef CONFIG_HIGHMEM
- max_zone_pfn[ZONE_HIGHMEM] = max_pfn;
-#endif
- free_area_init(max_zone_pfn);
-
-}
-
-/*
- * Map all physical memory under high_memory into kernel's address space.
- *
- * This is explicitly coded for two-level page tables, so if you need
- * something else then this needs to change.
- */
-static void __init map_ram(void)
-{
- unsigned long v, p, e;
- pgd_t *pge;
- p4d_t *p4e;
- pud_t *pue;
- pmd_t *pme;
- pte_t *pte;
- /* These mark extents of read-only kernel pages...
- * ...from vmlinux.lds.S
- */
-
- p = (u32) memblock_start_of_DRAM() & PAGE_MASK;
- e = min((u32) memblock_end_of_DRAM(), (u32) __pa(high_memory));
-
- v = (u32) __va(p);
- pge = pgd_offset_k(v);
-
- while (p < e) {
- int j;
- p4e = p4d_offset(pge, v);
- pue = pud_offset(p4e, v);
- pme = pmd_offset(pue, v);
-
- if ((u32) pue != (u32) pge || (u32) pme != (u32) pge) {
- panic("%s: Kernel hardcoded for "
- "two-level page tables", __func__);
- }
-
- /* Alloc one page for holding PTE's... */
- pte = memblock_alloc(PAGE_SIZE, PAGE_SIZE);
- if (!pte)
- panic("%s: Failed to allocate %lu bytes align=0x%lx\n",
- __func__, PAGE_SIZE, PAGE_SIZE);
- set_pmd(pme, __pmd(__pa(pte) + _PAGE_KERNEL_TABLE));
-
- /* Fill the newly allocated page with PTE'S */
- for (j = 0; p < e && j < PTRS_PER_PTE;
- v += PAGE_SIZE, p += PAGE_SIZE, j++, pte++) {
- /* Create mapping between p and v. */
- /* TODO: more fine grant for page access permission */
- set_pte(pte, __pte(p + pgprot_val(PAGE_KERNEL)));
- }
-
- pge++;
- }
-}
-static pmd_t *fixmap_pmd_p;
-static void __init fixedrange_init(void)
-{
- unsigned long vaddr;
- pmd_t *pmd;
-#ifdef CONFIG_HIGHMEM
- pte_t *pte;
-#endif /* CONFIG_HIGHMEM */
-
- /*
- * Fixed mappings:
- */
- vaddr = __fix_to_virt(__end_of_fixed_addresses - 1);
- pmd = pmd_off_k(vaddr);
- fixmap_pmd_p = memblock_alloc(PAGE_SIZE, PAGE_SIZE);
- if (!fixmap_pmd_p)
- panic("%s: Failed to allocate %lu bytes align=0x%lx\n",
- __func__, PAGE_SIZE, PAGE_SIZE);
- set_pmd(pmd, __pmd(__pa(fixmap_pmd_p) + _PAGE_KERNEL_TABLE));
-
-#ifdef CONFIG_HIGHMEM
- /*
- * Permanent kmaps:
- */
- vaddr = PKMAP_BASE;
-
- pmd = pmd_off_k(vaddr);
- pte = memblock_alloc(PAGE_SIZE, PAGE_SIZE);
- if (!pte)
- panic("%s: Failed to allocate %lu bytes align=0x%lx\n",
- __func__, PAGE_SIZE, PAGE_SIZE);
- set_pmd(pmd, __pmd(__pa(pte) + _PAGE_KERNEL_TABLE));
- pkmap_page_table = pte;
-#endif /* CONFIG_HIGHMEM */
-}
-
-/*
- * paging_init() sets up the page tables, initialises the zone memory
- * maps, and sets up the zero page, bad page and bad page tables.
- */
-void __init paging_init(void)
-{
- int i;
- void *zero_page;
-
- pr_info("Setting up paging and PTEs.\n");
- /* clear out the init_mm.pgd that will contain the kernel's mappings */
- for (i = 0; i < PTRS_PER_PGD; i++)
- swapper_pg_dir[i] = __pgd(1);
-
- map_ram();
-
- fixedrange_init();
-
- /* allocate space for empty_zero_page */
- zero_page = memblock_alloc(PAGE_SIZE, PAGE_SIZE);
- if (!zero_page)
- panic("%s: Failed to allocate %lu bytes align=0x%lx\n",
- __func__, PAGE_SIZE, PAGE_SIZE);
- zone_sizes_init();
-
- empty_zero_page = virt_to_page(zero_page);
- flush_dcache_page(empty_zero_page);
-}
-
-static inline void __init free_highmem(void)
-{
-#ifdef CONFIG_HIGHMEM
- unsigned long pfn;
- for (pfn = PFN_UP(__pa(high_memory)); pfn < max_pfn; pfn++) {
- phys_addr_t paddr = (phys_addr_t) pfn << PAGE_SHIFT;
- if (!memblock_is_reserved(paddr))
- free_highmem_page(pfn_to_page(pfn));
- }
-#endif
-}
-
-static void __init set_max_mapnr_init(void)
-{
- max_mapnr = max_pfn;
-}
-
-/*
- * mem_init() marks the free areas in the mem_map and tells us how much
- * memory is free. This is done after various parts of the system have
- * claimed their memory after the kernel image.
- */
-void __init mem_init(void)
-{
- phys_addr_t memory_start = memblock_start_of_DRAM();
- BUG_ON(!mem_map);
- set_max_mapnr_init();
-
- free_highmem();
-
- /* this will put all low memory onto the freelists */
- memblock_free_all();
-
- pr_info("virtual kernel memory layout:\n"
- " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n"
-#ifdef CONFIG_HIGHMEM
- " pkmap : 0x%08lx - 0x%08lx (%4ld kB)\n"
-#endif
- " consist : 0x%08lx - 0x%08lx (%4ld MB)\n"
- " vmalloc : 0x%08lx - 0x%08lx (%4ld MB)\n"
- " lowmem : 0x%08lx - 0x%08lx (%4ld MB)\n"
- " .init : 0x%08lx - 0x%08lx (%4ld kB)\n"
- " .data : 0x%08lx - 0x%08lx (%4ld kB)\n"
- " .text : 0x%08lx - 0x%08lx (%4ld kB)\n",
- FIXADDR_START, FIXADDR_TOP, (FIXADDR_TOP - FIXADDR_START) >> 10,
-#ifdef CONFIG_HIGHMEM
- PKMAP_BASE, PKMAP_BASE + LAST_PKMAP * PAGE_SIZE,
- (LAST_PKMAP * PAGE_SIZE) >> 10,
-#endif
- CONSISTENT_BASE, CONSISTENT_END,
- ((CONSISTENT_END) - (CONSISTENT_BASE)) >> 20, VMALLOC_START,
- (unsigned long)VMALLOC_END, (VMALLOC_END - VMALLOC_START) >> 20,
- (unsigned long)__va(memory_start), (unsigned long)high_memory,
- ((unsigned long)high_memory -
- (unsigned long)__va(memory_start)) >> 20,
- (unsigned long)&__init_begin, (unsigned long)&__init_end,
- ((unsigned long)&__init_end -
- (unsigned long)&__init_begin) >> 10, (unsigned long)&_etext,
- (unsigned long)&_edata,
- ((unsigned long)&_edata - (unsigned long)&_etext) >> 10,
- (unsigned long)&_text, (unsigned long)&_etext,
- ((unsigned long)&_etext - (unsigned long)&_text) >> 10);
-
- /*
- * Check boundaries twice: Some fundamental inconsistencies can
- * be detected at build time already.
- */
-#ifdef CONFIG_HIGHMEM
- BUILD_BUG_ON(PKMAP_BASE + LAST_PKMAP * PAGE_SIZE > FIXADDR_START);
- BUILD_BUG_ON((CONSISTENT_END) > PKMAP_BASE);
-#endif
- BUILD_BUG_ON(VMALLOC_END > CONSISTENT_BASE);
- BUILD_BUG_ON(VMALLOC_START >= VMALLOC_END);
-
-#ifdef CONFIG_HIGHMEM
- BUG_ON(PKMAP_BASE + LAST_PKMAP * PAGE_SIZE > FIXADDR_START);
- BUG_ON(CONSISTENT_END > PKMAP_BASE);
-#endif
- BUG_ON(VMALLOC_END > CONSISTENT_BASE);
- BUG_ON(VMALLOC_START >= VMALLOC_END);
- BUG_ON((unsigned long)high_memory > VMALLOC_START);
-
- return;
-}
-
-void __set_fixmap(enum fixed_addresses idx,
- phys_addr_t phys, pgprot_t flags)
-{
- unsigned long addr = __fix_to_virt(idx);
- pte_t *pte;
-
- BUG_ON(idx <= FIX_HOLE || idx >= __end_of_fixed_addresses);
-
- pte = (pte_t *)&fixmap_pmd_p[pte_index(addr)];
-
- if (pgprot_val(flags)) {
- set_pte(pte, pfn_pte(phys >> PAGE_SHIFT, flags));
- } else {
- pte_clear(&init_mm, addr, pte);
- flush_tlb_kernel_range(addr, addr + PAGE_SIZE);
- }
-}
diff --git a/arch/nds32/mm/mm-nds32.c b/arch/nds32/mm/mm-nds32.c
deleted file mode 100644
index f2778f2b39f6..000000000000
--- a/arch/nds32/mm/mm-nds32.c
+++ /dev/null
@@ -1,96 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/init_task.h>
-
-#define __HAVE_ARCH_PGD_FREE
-#include <asm/pgalloc.h>
-
-#define FIRST_KERNEL_PGD_NR (USER_PTRS_PER_PGD)
-
-/*
- * need to get a page for level 1
- */
-
-pgd_t *pgd_alloc(struct mm_struct *mm)
-{
- pgd_t *new_pgd, *init_pgd;
- int i;
-
- new_pgd = (pgd_t *) __get_free_pages(GFP_KERNEL, 0);
- if (!new_pgd)
- return NULL;
- for (i = 0; i < PTRS_PER_PGD; i++) {
- (*new_pgd) = 1;
- new_pgd++;
- }
- new_pgd -= PTRS_PER_PGD;
-
- init_pgd = pgd_offset_k(0);
-
- memcpy(new_pgd + FIRST_KERNEL_PGD_NR, init_pgd + FIRST_KERNEL_PGD_NR,
- (PTRS_PER_PGD - FIRST_KERNEL_PGD_NR) * sizeof(pgd_t));
-
- cpu_dcache_wb_range((unsigned long)new_pgd,
- (unsigned long)new_pgd +
- PTRS_PER_PGD * sizeof(pgd_t));
- inc_lruvec_page_state(virt_to_page((unsigned long *)new_pgd),
- NR_PAGETABLE);
-
- return new_pgd;
-}
-
-void pgd_free(struct mm_struct *mm, pgd_t * pgd)
-{
- pmd_t *pmd;
- struct page *pte;
-
- if (!pgd)
- return;
-
- pmd = (pmd_t *) pgd;
- if (pmd_none(*pmd))
- goto free;
- if (pmd_bad(*pmd)) {
- pmd_ERROR(*pmd);
- pmd_clear(pmd);
- goto free;
- }
-
- pte = pmd_page(*pmd);
- pmd_clear(pmd);
- dec_lruvec_page_state(virt_to_page((unsigned long *)pgd), NR_PAGETABLE);
- pte_free(mm, pte);
- mm_dec_nr_ptes(mm);
- pmd_free(mm, pmd);
-free:
- free_pages((unsigned long)pgd, 0);
-}
-
-/*
- * In order to soft-boot, we need to insert a 1:1 mapping in place of
- * the user-mode pages. This will then ensure that we have predictable
- * results when turning the mmu off
- */
-void setup_mm_for_reboot(char mode)
-{
- unsigned long pmdval;
- pgd_t *pgd;
- p4d_t *p4d;
- pud_t *pud;
- pmd_t *pmd;
- int i;
-
- if (current->mm && current->mm->pgd)
- pgd = current->mm->pgd;
- else
- pgd = init_mm.pgd;
-
- for (i = 0; i < USER_PTRS_PER_PGD; i++) {
- pmdval = (i << PGDIR_SHIFT);
- p4d = p4d_offset(pgd, i << PGDIR_SHIFT);
- pud = pud_offset(p4d, i << PGDIR_SHIFT);
- pmd = pmd_offset(pud + i, i << PGDIR_SHIFT);
- set_pmd(pmd, __pmd(pmdval));
- }
-}
diff --git a/arch/nds32/mm/mmap.c b/arch/nds32/mm/mmap.c
deleted file mode 100644
index 1bdf5e7d1b43..000000000000
--- a/arch/nds32/mm/mmap.c
+++ /dev/null
@@ -1,73 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/sched.h>
-#include <linux/mman.h>
-#include <linux/shm.h>
-
-#define COLOUR_ALIGN(addr,pgoff) \
- ((((addr)+SHMLBA-1)&~(SHMLBA-1)) + \
- (((pgoff)<<PAGE_SHIFT) & (SHMLBA-1)))
-
-/*
- * We need to ensure that shared mappings are correctly aligned to
- * avoid aliasing issues with VIPT caches. We need to ensure that
- * a specific page of an object is always mapped at a multiple of
- * SHMLBA bytes.
- *
- * We unconditionally provide this function for all cases, however
- * in the VIVT case, we optimise out the alignment rules.
- */
-unsigned long
-arch_get_unmapped_area(struct file *filp, unsigned long addr,
- unsigned long len, unsigned long pgoff,
- unsigned long flags)
-{
- struct mm_struct *mm = current->mm;
- struct vm_area_struct *vma;
- int do_align = 0;
- struct vm_unmapped_area_info info;
- int aliasing = 0;
- if(IS_ENABLED(CONFIG_CPU_CACHE_ALIASING))
- aliasing = 1;
-
- /*
- * We only need to do colour alignment if either the I or D
- * caches alias.
- */
- if (aliasing)
- do_align = filp || (flags & MAP_SHARED);
-
- /*
- * We enforce the MAP_FIXED case.
- */
- if (flags & MAP_FIXED) {
- if (aliasing && flags & MAP_SHARED &&
- (addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1))
- return -EINVAL;
- return addr;
- }
-
- if (len > TASK_SIZE)
- return -ENOMEM;
-
- if (addr) {
- if (do_align)
- addr = COLOUR_ALIGN(addr, pgoff);
- else
- addr = PAGE_ALIGN(addr);
-
- vma = find_vma(mm, addr);
- if (TASK_SIZE - len >= addr &&
- (!vma || addr + len <= vm_start_gap(vma)))
- return addr;
- }
-
- info.flags = 0;
- info.length = len;
- info.low_limit = mm->mmap_base;
- info.high_limit = TASK_SIZE;
- info.align_mask = do_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
- info.align_offset = pgoff << PAGE_SHIFT;
- return vm_unmapped_area(&info);
-}
diff --git a/arch/nds32/mm/proc.c b/arch/nds32/mm/proc.c
deleted file mode 100644
index 848c845f5f33..000000000000
--- a/arch/nds32/mm/proc.c
+++ /dev/null
@@ -1,536 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/mm.h>
-#include <asm/nds32.h>
-#include <asm/tlbflush.h>
-#include <asm/cacheflush.h>
-#include <asm/l2_cache.h>
-#include <nds32_intrinsic.h>
-
-#include <asm/cache_info.h>
-extern struct cache_info L1_cache_info[2];
-
-int va_kernel_present(unsigned long addr)
-{
- pmd_t *pmd;
- pte_t *ptep, pte;
-
- pmd = pmd_off_k(addr);
- if (!pmd_none(*pmd)) {
- ptep = pte_offset_map(pmd, addr);
- pte = *ptep;
- if (pte_present(pte))
- return pte;
- }
- return 0;
-}
-
-pte_t va_present(struct mm_struct * mm, unsigned long addr)
-{
- pgd_t *pgd;
- p4d_t *p4d;
- pud_t *pud;
- pmd_t *pmd;
- pte_t *ptep, pte;
-
- pgd = pgd_offset(mm, addr);
- if (!pgd_none(*pgd)) {
- p4d = p4d_offset(pgd, addr);
- if (!p4d_none(*p4d)) {
- pud = pud_offset(p4d, addr);
- if (!pud_none(*pud)) {
- pmd = pmd_offset(pud, addr);
- if (!pmd_none(*pmd)) {
- ptep = pte_offset_map(pmd, addr);
- pte = *ptep;
- if (pte_present(pte))
- return pte;
- }
- }
- }
- }
- return 0;
-
-}
-
-int va_readable(struct pt_regs *regs, unsigned long addr)
-{
- struct mm_struct *mm = current->mm;
- pte_t pte;
- int ret = 0;
-
- if (user_mode(regs)) {
- /* user mode */
- pte = va_present(mm, addr);
- if (!pte && pte_read(pte))
- ret = 1;
- } else {
- /* superuser mode is always readable, so we can only
- * check it is present or not*/
- return (! !va_kernel_present(addr));
- }
- return ret;
-}
-
-int va_writable(struct pt_regs *regs, unsigned long addr)
-{
- struct mm_struct *mm = current->mm;
- pte_t pte;
- int ret = 0;
-
- if (user_mode(regs)) {
- /* user mode */
- pte = va_present(mm, addr);
- if (!pte && pte_write(pte))
- ret = 1;
- } else {
- /* superuser mode */
- pte = va_kernel_present(addr);
- if (!pte && pte_kernel_write(pte))
- ret = 1;
- }
- return ret;
-}
-
-/*
- * All
- */
-void cpu_icache_inval_all(void)
-{
- unsigned long end, line_size;
-
- line_size = L1_cache_info[ICACHE].line_size;
- end =
- line_size * L1_cache_info[ICACHE].ways * L1_cache_info[ICACHE].sets;
-
- do {
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_IX_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_IX_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_IX_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_IX_INVAL"::"r" (end));
- } while (end > 0);
- __nds32__isb();
-}
-
-void cpu_dcache_inval_all(void)
-{
- __nds32__cctl_l1d_invalall();
-}
-
-#ifdef CONFIG_CACHE_L2
-void dcache_wb_all_level(void)
-{
- unsigned long flags, cmd;
- local_irq_save(flags);
- __nds32__cctl_l1d_wball_alvl();
- /* Section 1: Ensure the section 2 & 3 program code execution after */
- __nds32__cctlidx_read(NDS32_CCTL_L1D_IX_RWD,0);
-
- /* Section 2: Confirm the writeback all level is done in CPU and L2C */
- cmd = CCTL_CMD_L2_SYNC;
- L2_CMD_RDY();
- L2C_W_REG(L2_CCTL_CMD_OFF, cmd);
- L2_CMD_RDY();
-
- /* Section 3: Writeback whole L2 cache */
- cmd = CCTL_ALL_CMD | CCTL_CMD_L2_IX_WB;
- L2_CMD_RDY();
- L2C_W_REG(L2_CCTL_CMD_OFF, cmd);
- L2_CMD_RDY();
- __nds32__msync_all();
- local_irq_restore(flags);
-}
-EXPORT_SYMBOL(dcache_wb_all_level);
-#endif
-
-void cpu_dcache_wb_all(void)
-{
- __nds32__cctl_l1d_wball_one_lvl();
- __nds32__cctlidx_read(NDS32_CCTL_L1D_IX_RWD,0);
-}
-
-void cpu_dcache_wbinval_all(void)
-{
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- unsigned long flags;
- local_irq_save(flags);
-#endif
- cpu_dcache_wb_all();
- cpu_dcache_inval_all();
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- local_irq_restore(flags);
-#endif
-}
-
-/*
- * Page
- */
-void cpu_icache_inval_page(unsigned long start)
-{
- unsigned long line_size, end;
-
- line_size = L1_cache_info[ICACHE].line_size;
- end = start + PAGE_SIZE;
-
- do {
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_VA_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_VA_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_VA_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_VA_INVAL"::"r" (end));
- } while (end != start);
- __nds32__isb();
-}
-
-void cpu_dcache_inval_page(unsigned long start)
-{
- unsigned long line_size, end;
-
- line_size = L1_cache_info[DCACHE].line_size;
- end = start + PAGE_SIZE;
-
- do {
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- } while (end != start);
-}
-
-void cpu_dcache_wb_page(unsigned long start)
-{
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- unsigned long line_size, end;
-
- line_size = L1_cache_info[DCACHE].line_size;
- end = start + PAGE_SIZE;
-
- do {
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
- } while (end != start);
- __nds32__cctlidx_read(NDS32_CCTL_L1D_IX_RWD,0);
-#endif
-}
-
-void cpu_dcache_wbinval_page(unsigned long start)
-{
- unsigned long line_size, end;
-
- line_size = L1_cache_info[DCACHE].line_size;
- end = start + PAGE_SIZE;
-
- do {
- end -= line_size;
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
-#endif
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- end -= line_size;
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
-#endif
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- end -= line_size;
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
-#endif
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- end -= line_size;
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
-#endif
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- } while (end != start);
- __nds32__cctlidx_read(NDS32_CCTL_L1D_IX_RWD,0);
-}
-
-void cpu_cache_wbinval_page(unsigned long page, int flushi)
-{
- cpu_dcache_wbinval_page(page);
- if (flushi)
- cpu_icache_inval_page(page);
-}
-
-/*
- * Range
- */
-void cpu_icache_inval_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size;
-
- line_size = L1_cache_info[ICACHE].line_size;
-
- while (end > start) {
- __asm__ volatile ("\n\tcctl %0, L1I_VA_INVAL"::"r" (start));
- start += line_size;
- }
- __nds32__isb();
-}
-
-void cpu_dcache_inval_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size;
-
- line_size = L1_cache_info[DCACHE].line_size;
-
- while (end > start) {
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (start));
- start += line_size;
- }
-}
-
-void cpu_dcache_wb_range(unsigned long start, unsigned long end)
-{
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- unsigned long line_size;
-
- line_size = L1_cache_info[DCACHE].line_size;
-
- while (end > start) {
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (start));
- start += line_size;
- }
- __nds32__cctlidx_read(NDS32_CCTL_L1D_IX_RWD,0);
-#endif
-}
-
-void cpu_dcache_wbinval_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size;
-
- line_size = L1_cache_info[DCACHE].line_size;
-
- while (end > start) {
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (start));
-#endif
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (start));
- start += line_size;
- }
- __nds32__cctlidx_read(NDS32_CCTL_L1D_IX_RWD,0);
-}
-
-void cpu_cache_wbinval_range(unsigned long start, unsigned long end, int flushi)
-{
- unsigned long line_size, align_start, align_end;
-
- line_size = L1_cache_info[DCACHE].line_size;
- align_start = start & ~(line_size - 1);
- align_end = (end + line_size - 1) & ~(line_size - 1);
- cpu_dcache_wbinval_range(align_start, align_end);
-
- if (flushi) {
- line_size = L1_cache_info[ICACHE].line_size;
- align_start = start & ~(line_size - 1);
- align_end = (end + line_size - 1) & ~(line_size - 1);
- cpu_icache_inval_range(align_start, align_end);
- }
-}
-
-void cpu_cache_wbinval_range_check(struct vm_area_struct *vma,
- unsigned long start, unsigned long end,
- bool flushi, bool wbd)
-{
- unsigned long line_size, t_start, t_end;
-
- if (!flushi && !wbd)
- return;
- line_size = L1_cache_info[DCACHE].line_size;
- start = start & ~(line_size - 1);
- end = (end + line_size - 1) & ~(line_size - 1);
-
- if ((end - start) > (8 * PAGE_SIZE)) {
- if (wbd)
- cpu_dcache_wbinval_all();
- if (flushi)
- cpu_icache_inval_all();
- return;
- }
-
- t_start = (start + PAGE_SIZE) & PAGE_MASK;
- t_end = ((end - 1) & PAGE_MASK);
-
- if ((start & PAGE_MASK) == t_end) {
- if (va_present(vma->vm_mm, start)) {
- if (wbd)
- cpu_dcache_wbinval_range(start, end);
- if (flushi)
- cpu_icache_inval_range(start, end);
- }
- return;
- }
-
- if (va_present(vma->vm_mm, start)) {
- if (wbd)
- cpu_dcache_wbinval_range(start, t_start);
- if (flushi)
- cpu_icache_inval_range(start, t_start);
- }
-
- if (va_present(vma->vm_mm, end - 1)) {
- if (wbd)
- cpu_dcache_wbinval_range(t_end, end);
- if (flushi)
- cpu_icache_inval_range(t_end, end);
- }
-
- while (t_start < t_end) {
- if (va_present(vma->vm_mm, t_start)) {
- if (wbd)
- cpu_dcache_wbinval_page(t_start);
- if (flushi)
- cpu_icache_inval_page(t_start);
- }
- t_start += PAGE_SIZE;
- }
-}
-
-#ifdef CONFIG_CACHE_L2
-static inline void cpu_l2cache_op(unsigned long start, unsigned long end, unsigned long op)
-{
- if (atl2c_base) {
- unsigned long p_start = __pa(start);
- unsigned long p_end = __pa(end);
- unsigned long cmd;
- unsigned long line_size;
- /* TODO Can Use PAGE Mode to optimize if range large than PAGE_SIZE */
- line_size = L2_CACHE_LINE_SIZE();
- p_start = p_start & (~(line_size - 1));
- p_end = (p_end + line_size - 1) & (~(line_size - 1));
- cmd =
- (p_start & ~(line_size - 1)) | op |
- CCTL_SINGLE_CMD;
- do {
- L2_CMD_RDY();
- L2C_W_REG(L2_CCTL_CMD_OFF, cmd);
- cmd += line_size;
- p_start += line_size;
- } while (p_end > p_start);
- cmd = CCTL_CMD_L2_SYNC;
- L2_CMD_RDY();
- L2C_W_REG(L2_CCTL_CMD_OFF, cmd);
- L2_CMD_RDY();
- }
-}
-#else
-#define cpu_l2cache_op(start,end,op) do { } while (0)
-#endif
-/*
- * DMA
- */
-void cpu_dma_wb_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size;
- unsigned long flags;
- line_size = L1_cache_info[DCACHE].line_size;
- start = start & (~(line_size - 1));
- end = (end + line_size - 1) & (~(line_size - 1));
- if (unlikely(start == end))
- return;
-
- local_irq_save(flags);
- cpu_dcache_wb_range(start, end);
- cpu_l2cache_op(start, end, CCTL_CMD_L2_PA_WB);
- __nds32__msync_all();
- local_irq_restore(flags);
-}
-
-void cpu_dma_inval_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size;
- unsigned long old_start = start;
- unsigned long old_end = end;
- unsigned long flags;
- line_size = L1_cache_info[DCACHE].line_size;
- start = start & (~(line_size - 1));
- end = (end + line_size - 1) & (~(line_size - 1));
- if (unlikely(start == end))
- return;
- local_irq_save(flags);
- if (start != old_start) {
- cpu_dcache_wbinval_range(start, start + line_size);
- cpu_l2cache_op(start, start + line_size, CCTL_CMD_L2_PA_WBINVAL);
- }
- if (end != old_end) {
- cpu_dcache_wbinval_range(end - line_size, end);
- cpu_l2cache_op(end - line_size, end, CCTL_CMD_L2_PA_WBINVAL);
- }
- cpu_dcache_inval_range(start, end);
- cpu_l2cache_op(start, end, CCTL_CMD_L2_PA_INVAL);
- __nds32__msync_all();
- local_irq_restore(flags);
-
-}
-
-void cpu_dma_wbinval_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size;
- unsigned long flags;
- line_size = L1_cache_info[DCACHE].line_size;
- start = start & (~(line_size - 1));
- end = (end + line_size - 1) & (~(line_size - 1));
- if (unlikely(start == end))
- return;
-
- local_irq_save(flags);
- cpu_dcache_wbinval_range(start, end);
- cpu_l2cache_op(start, end, CCTL_CMD_L2_PA_WBINVAL);
- __nds32__msync_all();
- local_irq_restore(flags);
-}
-
-void cpu_proc_init(void)
-{
-}
-
-void cpu_proc_fin(void)
-{
-}
-
-void cpu_do_idle(void)
-{
- __nds32__standby_no_wake_grant();
-}
-
-void cpu_reset(unsigned long reset)
-{
- u32 tmp;
- GIE_DISABLE();
- tmp = __nds32__mfsr(NDS32_SR_CACHE_CTL);
- tmp &= ~(CACHE_CTL_mskIC_EN | CACHE_CTL_mskDC_EN);
- __nds32__mtsr_isb(tmp, NDS32_SR_CACHE_CTL);
- cpu_dcache_wbinval_all();
- cpu_icache_inval_all();
-
- __asm__ __volatile__("jr.toff %0\n\t"::"r"(reset));
-}
-
-void cpu_switch_mm(struct mm_struct *mm)
-{
- unsigned long cid;
- cid = __nds32__mfsr(NDS32_SR_TLB_MISC);
- cid = (cid & ~TLB_MISC_mskCID) | mm->context.id;
- __nds32__mtsr_dsb(cid, NDS32_SR_TLB_MISC);
- __nds32__mtsr_isb(__pa(mm->pgd), NDS32_SR_L1_PPTB);
-}
diff --git a/arch/nds32/mm/tlb.c b/arch/nds32/mm/tlb.c
deleted file mode 100644
index dd41f5e0712f..000000000000
--- a/arch/nds32/mm/tlb.c
+++ /dev/null
@@ -1,50 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/spinlock_types.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <asm/nds32.h>
-#include <nds32_intrinsic.h>
-
-unsigned int cpu_last_cid = { TLB_MISC_mskCID + (2 << TLB_MISC_offCID) };
-
-DEFINE_SPINLOCK(cid_lock);
-
-void local_flush_tlb_range(struct vm_area_struct *vma,
- unsigned long start, unsigned long end)
-{
- unsigned long flags, ocid, ncid;
-
- if ((end - start) > 0x400000) {
- __nds32__tlbop_flua();
- __nds32__isb();
- return;
- }
-
- spin_lock_irqsave(&cid_lock, flags);
- ocid = __nds32__mfsr(NDS32_SR_TLB_MISC);
- ncid = (ocid & ~TLB_MISC_mskCID) | vma->vm_mm->context.id;
- __nds32__mtsr_dsb(ncid, NDS32_SR_TLB_MISC);
- while (start < end) {
- __nds32__tlbop_inv(start);
- __nds32__isb();
- start += PAGE_SIZE;
- }
- __nds32__mtsr_dsb(ocid, NDS32_SR_TLB_MISC);
- spin_unlock_irqrestore(&cid_lock, flags);
-}
-
-void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long addr)
-{
- unsigned long flags, ocid, ncid;
-
- spin_lock_irqsave(&cid_lock, flags);
- ocid = __nds32__mfsr(NDS32_SR_TLB_MISC);
- ncid = (ocid & ~TLB_MISC_mskCID) | vma->vm_mm->context.id;
- __nds32__mtsr_dsb(ncid, NDS32_SR_TLB_MISC);
- __nds32__tlbop_inv(addr);
- __nds32__isb();
- __nds32__mtsr_dsb(ocid, NDS32_SR_TLB_MISC);
- spin_unlock_irqrestore(&cid_lock, flags);
-}
diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
index cfb8ea0df3b1..ae95d06a4a8f 100644
--- a/drivers/clocksource/Kconfig
+++ b/drivers/clocksource/Kconfig
@@ -617,15 +617,6 @@ config CLKSRC_ST_LPC
Enable this option to use the Low Power controller timer
as clocksource.
-config ATCPIT100_TIMER
- bool "ATCPIT100 timer driver"
- depends on NDS32 || COMPILE_TEST
- depends on HAS_IOMEM
- select TIMER_OF
- default NDS32
- help
- This option enables support for the Andestech ATCPIT100 timers.
-
config RISCV_TIMER
bool "Timer for the RISC-V platform" if COMPILE_TEST
depends on GENERIC_SCHED_CLOCK && RISCV && RISCV_SBI
diff --git a/drivers/clocksource/timer-atcpit100.c b/drivers/clocksource/timer-atcpit100.c
deleted file mode 100644
index b4bd2f5b801d..000000000000
--- a/drivers/clocksource/timer-atcpit100.c
+++ /dev/null
@@ -1,266 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-/*
- * Andestech ATCPIT100 Timer Device Driver Implementation
- * Rick Chen, Andes Technology Corporation <rick@andestech.com>
- *
- */
-
-#include <linux/irq.h>
-#include <linux/clocksource.h>
-#include <linux/clockchips.h>
-#include <linux/interrupt.h>
-#include <linux/ioport.h>
-#include <linux/cpufreq.h>
-#include <linux/sched.h>
-#include <linux/sched_clock.h>
-#include <linux/of_address.h>
-#include <linux/of_irq.h>
-#include <linux/of_platform.h>
-#include "timer-of.h"
-#ifdef CONFIG_NDS32
-#include <asm/vdso_timer_info.h>
-#endif
-
-/*
- * Definition of register offsets
- */
-
-/* ID and Revision Register */
-#define ID_REV 0x0
-
-/* Configuration Register */
-#define CFG 0x10
-
-/* Interrupt Enable Register */
-#define INT_EN 0x14
-#define CH_INT_EN(c, i) ((1<<i)<<(4*c))
-#define CH0INT0EN 0x01
-
-/* Interrupt Status Register */
-#define INT_STA 0x18
-#define CH0INT0 0x01
-
-/* Channel Enable Register */
-#define CH_EN 0x1C
-#define CH0TMR0EN 0x1
-#define CH1TMR0EN 0x10
-
-/* Channel 0 , 1 Control Register */
-#define CH0_CTL (0x20)
-#define CH1_CTL (0x20 + 0x10)
-
-/* Channel clock source , bit 3 , 0:External clock , 1:APB clock */
-#define APB_CLK BIT(3)
-
-/* Channel mode , bit 0~2 */
-#define TMR_32 0x1
-#define TMR_16 0x2
-#define TMR_8 0x3
-
-/* Channel 0 , 1 Reload Register */
-#define CH0_REL (0x24)
-#define CH1_REL (0x24 + 0x10)
-
-/* Channel 0 , 1 Counter Register */
-#define CH0_CNT (0x28)
-#define CH1_CNT (0x28 + 0x10)
-
-#define TIMER_SYNC_TICKS 3
-
-static void atcpit100_ch1_tmr0_en(void __iomem *base)
-{
- writel(~0, base + CH1_REL);
- writel(APB_CLK|TMR_32, base + CH1_CTL);
-}
-
-static void atcpit100_ch0_tmr0_en(void __iomem *base)
-{
- writel(APB_CLK|TMR_32, base + CH0_CTL);
-}
-
-static void atcpit100_clkevt_time_setup(void __iomem *base, unsigned long delay)
-{
- writel(delay, base + CH0_CNT);
- writel(delay, base + CH0_REL);
-}
-
-static void atcpit100_timer_clear_interrupt(void __iomem *base)
-{
- u32 val;
-
- val = readl(base + INT_STA);
- writel(val | CH0INT0, base + INT_STA);
-}
-
-static void atcpit100_clocksource_start(void __iomem *base)
-{
- u32 val;
-
- val = readl(base + CH_EN);
- writel(val | CH1TMR0EN, base + CH_EN);
-}
-
-static void atcpit100_clkevt_time_start(void __iomem *base)
-{
- u32 val;
-
- val = readl(base + CH_EN);
- writel(val | CH0TMR0EN, base + CH_EN);
-}
-
-static void atcpit100_clkevt_time_stop(void __iomem *base)
-{
- u32 val;
-
- atcpit100_timer_clear_interrupt(base);
- val = readl(base + CH_EN);
- writel(val & ~CH0TMR0EN, base + CH_EN);
-}
-
-static int atcpit100_clkevt_next_event(unsigned long evt,
- struct clock_event_device *clkevt)
-{
- u32 val;
- struct timer_of *to = to_timer_of(clkevt);
-
- val = readl(timer_of_base(to) + CH_EN);
- writel(val & ~CH0TMR0EN, timer_of_base(to) + CH_EN);
- writel(evt, timer_of_base(to) + CH0_REL);
- writel(val | CH0TMR0EN, timer_of_base(to) + CH_EN);
-
- return 0;
-}
-
-static int atcpit100_clkevt_set_periodic(struct clock_event_device *evt)
-{
- struct timer_of *to = to_timer_of(evt);
-
- atcpit100_clkevt_time_setup(timer_of_base(to), timer_of_period(to));
- atcpit100_clkevt_time_start(timer_of_base(to));
-
- return 0;
-}
-static int atcpit100_clkevt_shutdown(struct clock_event_device *evt)
-{
- struct timer_of *to = to_timer_of(evt);
-
- atcpit100_clkevt_time_stop(timer_of_base(to));
-
- return 0;
-}
-static int atcpit100_clkevt_set_oneshot(struct clock_event_device *evt)
-{
- struct timer_of *to = to_timer_of(evt);
- u32 val;
-
- writel(~0x0, timer_of_base(to) + CH0_REL);
- val = readl(timer_of_base(to) + CH_EN);
- writel(val | CH0TMR0EN, timer_of_base(to) + CH_EN);
-
- return 0;
-}
-
-static irqreturn_t atcpit100_timer_interrupt(int irq, void *dev_id)
-{
- struct clock_event_device *evt = (struct clock_event_device *)dev_id;
- struct timer_of *to = to_timer_of(evt);
-
- atcpit100_timer_clear_interrupt(timer_of_base(to));
-
- evt->event_handler(evt);
-
- return IRQ_HANDLED;
-}
-
-static struct timer_of to = {
- .flags = TIMER_OF_IRQ | TIMER_OF_CLOCK | TIMER_OF_BASE,
-
- .clkevt = {
- .name = "atcpit100_tick",
- .rating = 300,
- .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
- .set_state_shutdown = atcpit100_clkevt_shutdown,
- .set_state_periodic = atcpit100_clkevt_set_periodic,
- .set_state_oneshot = atcpit100_clkevt_set_oneshot,
- .tick_resume = atcpit100_clkevt_shutdown,
- .set_next_event = atcpit100_clkevt_next_event,
- .cpumask = cpu_possible_mask,
- },
-
- .of_irq = {
- .handler = atcpit100_timer_interrupt,
- .flags = IRQF_TIMER | IRQF_IRQPOLL,
- },
-
- /*
- * FIXME: we currently only support clocking using PCLK
- * and using EXTCLK is not supported in the driver.
- */
- .of_clk = {
- .name = "PCLK",
- }
-};
-
-static u64 notrace atcpit100_timer_sched_read(void)
-{
- return ~readl(timer_of_base(&to) + CH1_CNT);
-}
-
-#ifdef CONFIG_NDS32
-static void fill_vdso_need_info(struct device_node *node)
-{
- struct resource timer_res;
- of_address_to_resource(node, 0, &timer_res);
- timer_info.mapping_base = (unsigned long)timer_res.start;
- timer_info.cycle_count_down = true;
- timer_info.cycle_count_reg_offset = CH1_CNT;
-}
-#endif
-
-static int __init atcpit100_timer_init(struct device_node *node)
-{
- int ret;
- u32 val;
- void __iomem *base;
-
- ret = timer_of_init(node, &to);
- if (ret)
- return ret;
-
- base = timer_of_base(&to);
-
- sched_clock_register(atcpit100_timer_sched_read, 32,
- timer_of_rate(&to));
-
- ret = clocksource_mmio_init(base + CH1_CNT,
- node->name, timer_of_rate(&to), 300, 32,
- clocksource_mmio_readl_down);
-
- if (ret) {
- pr_err("Failed to register clocksource\n");
- return ret;
- }
-
- /* clear channel 0 timer0 interrupt */
- atcpit100_timer_clear_interrupt(base);
-
- clockevents_config_and_register(&to.clkevt, timer_of_rate(&to),
- TIMER_SYNC_TICKS, 0xffffffff);
- atcpit100_ch0_tmr0_en(base);
- atcpit100_ch1_tmr0_en(base);
- atcpit100_clocksource_start(base);
- atcpit100_clkevt_time_start(base);
-
- /* Enable channel 0 timer0 interrupt */
- val = readl(base + INT_EN);
- writel(val | CH0INT0EN, base + INT_EN);
-
-#ifdef CONFIG_NDS32
- fill_vdso_need_info(node);
-#endif
-
- return ret;
-}
-
-TIMER_OF_DECLARE(atcpit100, "andestech,atcpit100", atcpit100_timer_init);
diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile
index c1f611cbfbf8..c6161b0b0cb6 100644
--- a/drivers/irqchip/Makefile
+++ b/drivers/irqchip/Makefile
@@ -92,7 +92,6 @@ obj-$(CONFIG_IRQ_UNIPHIER_AIDET) += irq-uniphier-aidet.o
obj-$(CONFIG_ARCH_SYNQUACER) += irq-sni-exiu.o
obj-$(CONFIG_MESON_IRQ_GPIO) += irq-meson-gpio.o
obj-$(CONFIG_GOLDFISH_PIC) += irq-goldfish-pic.o
-obj-$(CONFIG_NDS32) += irq-ativic32.o
obj-$(CONFIG_QCOM_PDC) += qcom-pdc.o
obj-$(CONFIG_CSKY_MPINTC) += irq-csky-mpintc.o
obj-$(CONFIG_CSKY_APB_INTC) += irq-csky-apb-intc.o
diff --git a/drivers/irqchip/irq-ativic32.c b/drivers/irqchip/irq-ativic32.c
deleted file mode 100644
index 223dd2f97d28..000000000000
--- a/drivers/irqchip/irq-ativic32.c
+++ /dev/null
@@ -1,156 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/irq.h>
-#include <linux/of.h>
-#include <linux/of_irq.h>
-#include <linux/of_address.h>
-#include <linux/hardirq.h>
-#include <linux/interrupt.h>
-#include <linux/irqdomain.h>
-#include <linux/irqchip.h>
-#include <nds32_intrinsic.h>
-
-#include <asm/irq_regs.h>
-
-unsigned long wake_mask;
-
-static void ativic32_ack_irq(struct irq_data *data)
-{
- __nds32__mtsr_dsb(BIT(data->hwirq), NDS32_SR_INT_PEND2);
-}
-
-static void ativic32_mask_irq(struct irq_data *data)
-{
- unsigned long int_mask2 = __nds32__mfsr(NDS32_SR_INT_MASK2);
- __nds32__mtsr_dsb(int_mask2 & (~(BIT(data->hwirq))), NDS32_SR_INT_MASK2);
-}
-
-static void ativic32_unmask_irq(struct irq_data *data)
-{
- unsigned long int_mask2 = __nds32__mfsr(NDS32_SR_INT_MASK2);
- __nds32__mtsr_dsb(int_mask2 | (BIT(data->hwirq)), NDS32_SR_INT_MASK2);
-}
-
-static int nointc_set_wake(struct irq_data *data, unsigned int on)
-{
- unsigned long int_mask = __nds32__mfsr(NDS32_SR_INT_MASK);
- static unsigned long irq_orig_bit;
- u32 bit = 1 << data->hwirq;
-
- if (on) {
- if (int_mask & bit)
- __assign_bit(data->hwirq, &irq_orig_bit, true);
- else
- __assign_bit(data->hwirq, &irq_orig_bit, false);
-
- __assign_bit(data->hwirq, &int_mask, true);
- __assign_bit(data->hwirq, &wake_mask, true);
-
- } else {
- if (!(irq_orig_bit & bit))
- __assign_bit(data->hwirq, &int_mask, false);
-
- __assign_bit(data->hwirq, &wake_mask, false);
- __assign_bit(data->hwirq, &irq_orig_bit, false);
- }
-
- __nds32__mtsr_dsb(int_mask, NDS32_SR_INT_MASK);
-
- return 0;
-}
-
-static struct irq_chip ativic32_chip = {
- .name = "ativic32",
- .irq_ack = ativic32_ack_irq,
- .irq_mask = ativic32_mask_irq,
- .irq_unmask = ativic32_unmask_irq,
- .irq_set_wake = nointc_set_wake,
-};
-
-static unsigned int __initdata nivic_map[6] = { 6, 2, 10, 16, 24, 32 };
-
-static struct irq_domain *root_domain;
-static int ativic32_irq_domain_map(struct irq_domain *id, unsigned int virq,
- irq_hw_number_t hw)
-{
-
- unsigned long int_trigger_type;
- u32 type;
- struct irq_data *irq_data;
- int_trigger_type = __nds32__mfsr(NDS32_SR_INT_TRIGGER);
- irq_data = irq_get_irq_data(virq);
- if (!irq_data)
- return -EINVAL;
-
- if (int_trigger_type & (BIT(hw))) {
- irq_set_chip_and_handler(virq, &ativic32_chip, handle_edge_irq);
- type = IRQ_TYPE_EDGE_RISING;
- } else {
- irq_set_chip_and_handler(virq, &ativic32_chip, handle_level_irq);
- type = IRQ_TYPE_LEVEL_HIGH;
- }
-
- irqd_set_trigger_type(irq_data, type);
- return 0;
-}
-
-static const struct irq_domain_ops ativic32_ops = {
- .map = ativic32_irq_domain_map,
- .xlate = irq_domain_xlate_onecell
-};
-
-static irq_hw_number_t get_intr_src(void)
-{
- return ((__nds32__mfsr(NDS32_SR_ITYPE) & ITYPE_mskVECTOR) >> ITYPE_offVECTOR)
- - NDS32_VECTOR_offINTERRUPT;
-}
-
-static void ativic32_handle_irq(struct pt_regs *regs)
-{
- irq_hw_number_t hwirq = get_intr_src();
- generic_handle_domain_irq(root_domain, hwirq);
-}
-
-/*
- * TODO: convert nds32 to GENERIC_IRQ_MULTI_HANDLER so that this entry logic
- * can live in arch code.
- */
-asmlinkage void asm_do_IRQ(struct pt_regs *regs)
-{
- struct pt_regs *old_regs;
-
- irq_enter();
- old_regs = set_irq_regs(regs);
- ativic32_handle_irq(regs);
- set_irq_regs(old_regs);
- irq_exit();
-}
-
-int __init ativic32_init_irq(struct device_node *node, struct device_node *parent)
-{
- unsigned long int_vec_base, nivic, nr_ints;
-
- if (WARN(parent, "non-root ativic32 are not supported"))
- return -EINVAL;
-
- int_vec_base = __nds32__mfsr(NDS32_SR_IVB);
-
- if (((int_vec_base & IVB_mskIVIC_VER) >> IVB_offIVIC_VER) == 0)
- panic("Unable to use atcivic32 for this cpu.\n");
-
- nivic = (int_vec_base & IVB_mskNIVIC) >> IVB_offNIVIC;
- if (nivic >= ARRAY_SIZE(nivic_map))
- panic("The number of input for ativic32 is not supported.\n");
-
- nr_ints = nivic_map[nivic];
-
- root_domain = irq_domain_add_linear(node, nr_ints,
- &ativic32_ops, NULL);
-
- if (!root_domain)
- panic("%s: unable to create IRQ domain\n", node->full_name);
-
- return 0;
-}
-IRQCHIP_DECLARE(ativic32, "andestech,ativic32", ativic32_init_irq);
diff --git a/drivers/net/ethernet/faraday/Kconfig b/drivers/net/ethernet/faraday/Kconfig
index 3d1e9a302148..c699bd6bcbb9 100644
--- a/drivers/net/ethernet/faraday/Kconfig
+++ b/drivers/net/ethernet/faraday/Kconfig
@@ -6,7 +6,7 @@
config NET_VENDOR_FARADAY
bool "Faraday devices"
default y
- depends on ARM || NDS32 || COMPILE_TEST
+ depends on ARM || COMPILE_TEST
help
If you have a network (Ethernet) card belonging to this class, say Y.
@@ -19,24 +19,22 @@ if NET_VENDOR_FARADAY
config FTMAC100
tristate "Faraday FTMAC100 10/100 Ethernet support"
- depends on ARM || NDS32 || COMPILE_TEST
+ depends on ARM || COMPILE_TEST
depends on !64BIT || BROKEN
select MII
help
This driver supports the FTMAC100 10/100 Ethernet controller
- from Faraday. It is used on Faraday A320, Andes AG101 and some
- other ARM/NDS32 SoC's.
+ from Faraday. It is used on Faraday A320 and some other ARM SoC's.
config FTGMAC100
tristate "Faraday FTGMAC100 Gigabit Ethernet support"
- depends on ARM || NDS32 || COMPILE_TEST
+ depends on ARM || COMPILE_TEST
depends on !64BIT || BROKEN
select PHYLIB
select MDIO_ASPEED if MACH_ASPEED_G6
select CRC32
help
This driver supports the FTGMAC100 Gigabit Ethernet controller
- from Faraday. It is used on Faraday A369, Andes AG102 and some
- other ARM/NDS32 SoC's.
+ from Faraday. It is used on Faraday A369 and some other ARM SoC's.
endif # NET_VENDOR_FARADAY
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
index fcc46380e7c9..40c50fa2dd70 100644
--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -9,7 +9,7 @@ config VGA_CONSOLE
bool "VGA text console" if EXPERT || !X86
depends on !4xx && !PPC_8xx && !SPARC && !M68K && !PARISC && !SUPERH && \
(!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) && \
- !ARM64 && !ARC && !MICROBLAZE && !OPENRISC && !NDS32 && !S390 && !UML
+ !ARM64 && !ARC && !MICROBLAZE && !OPENRISC && !S390 && !UML
default y
help
Saying Y here will allow you to use Linux in text mode through a
diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
index 3ccb2c70add4..6a4645a57976 100755
--- a/scripts/recordmcount.pl
+++ b/scripts/recordmcount.pl
@@ -362,9 +362,6 @@ if ($arch eq "x86_64") {
$mcount_regex = "^\\s*([0-9a-fA-F]+):\\sR_RISCV_CALL(_PLT)?\\s_?mcount\$";
$type = ".quad";
$alignment = 2;
-} elsif ($arch eq "nds32") {
- $mcount_regex = "^\\s*([0-9a-fA-F]+):\\s*R_NDS32_HI20_RELA\\s+_mcount\$";
- $alignment = 2;
} elsif ($arch eq "csky") {
$mcount_regex = "^\\s*([0-9a-fA-F]+):\\s*R_CKCORE_PCREL_JSR_IMM26BY2\\s+_mcount\$";
$alignment = 2;
diff --git a/tools/include/asm/barrier.h b/tools/include/asm/barrier.h
index dc696c151e1c..8d378c57cb01 100644
--- a/tools/include/asm/barrier.h
+++ b/tools/include/asm/barrier.h
@@ -24,8 +24,6 @@
#include "../../arch/ia64/include/asm/barrier.h"
#elif defined(__xtensa__)
#include "../../arch/xtensa/include/asm/barrier.h"
-#elif defined(__nds32__)
-#include "../../arch/nds32/include/asm/barrier.h"
#else
#include <asm-generic/barrier.h>
#endif
diff --git a/tools/perf/arch/nds32/Build b/tools/perf/arch/nds32/Build
deleted file mode 100644
index e4e5f33c84d8..000000000000
--- a/tools/perf/arch/nds32/Build
+++ /dev/null
@@ -1 +0,0 @@
-perf-y += util/
diff --git a/tools/perf/arch/nds32/util/Build b/tools/perf/arch/nds32/util/Build
deleted file mode 100644
index d0bc205fe49a..000000000000
--- a/tools/perf/arch/nds32/util/Build
+++ /dev/null
@@ -1 +0,0 @@
-perf-y += header.o
diff --git a/tools/perf/arch/nds32/util/header.c b/tools/perf/arch/nds32/util/header.c
deleted file mode 100644
index ef9dbdbe7968..000000000000
--- a/tools/perf/arch/nds32/util/header.c
+++ /dev/null
@@ -1,29 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <api/fs/fs.h>
-#include "header.h"
-
-#define STR_LEN 1024
-
-char *get_cpuid_str(struct perf_pmu *pmu)
-{
- /* In nds32, we only have one cpu */
- char *buf = NULL;
- struct cpu_map *cpus;
- const char *sysfs = sysfs__mountpoint();
-
- if (!sysfs || !pmu || !pmu->cpus)
- return NULL;
-
- buf = malloc(STR_LEN);
- if (!buf)
- return NULL;
-
- cpus = cpu_map__get(pmu->cpus);
- sprintf(buf, "0x%x", cpus->nr - 1);
- cpu_map__put(cpus);
- return buf;
-}
diff --git a/tools/testing/selftests/vDSO/vdso_config.h b/tools/testing/selftests/vDSO/vdso_config.h
index 6188b16827d1..cdfed403ba13 100644
--- a/tools/testing/selftests/vDSO/vdso_config.h
+++ b/tools/testing/selftests/vDSO/vdso_config.h
@@ -53,10 +53,6 @@
#if __riscv_xlen == 32
#define VDSO_32BIT 1
#endif
-#else /* nds32 */
-#define VDSO_VERSION 4
-#define VDSO_NAMES 1
-#define VDSO_32BIT 1
#endif
static const char *versions[6] = {
--
2.25.1
^ permalink raw reply related [relevance 1%]
* [PATCH] nds32: Remove the architecture
@ 2022-03-02 6:52 1% Alan Kao
0 siblings, 0 replies; 200+ results
From: Alan Kao @ 2022-03-02 6:52 UTC (permalink / raw)
To: Arnd Bergmann, linux-kernel, Greentime Hu; +Cc: Alan Kao
Previous discussion is here:
https://www.spinics.net/lists/linux-mm/msg286280.html
Signed-off-by: Alan Kao <alankao@andestech.com>
---
.../andestech,ativic32.txt | 19 -
.../bindings/nds32/andestech-boards | 40 -
.../devicetree/bindings/nds32/atl2c.txt | 28 -
.../devicetree/bindings/nds32/cpus.txt | 38 -
.../devicetree/bindings/perf/nds32v3-pmu.txt | 17 -
.../timer/andestech,atcpit100-timer.txt | 33 -
.../features/core/cBPF-JIT/arch-support.txt | 1 -
.../features/core/eBPF-JIT/arch-support.txt | 1 -
.../core/generic-idle-thread/arch-support.txt | 1 -
.../core/jump-labels/arch-support.txt | 1 -
.../core/thread-info-in-task/arch-support.txt | 1 -
.../features/core/tracehook/arch-support.txt | 1 -
.../features/debug/KASAN/arch-support.txt | 1 -
.../debug/debug-vm-pgtable/arch-support.txt | 1 -
.../debug/gcov-profile-all/arch-support.txt | 1 -
.../features/debug/kcov/arch-support.txt | 1 -
.../features/debug/kgdb/arch-support.txt | 1 -
.../features/debug/kmemleak/arch-support.txt | 1 -
.../debug/kprobes-on-ftrace/arch-support.txt | 1 -
.../features/debug/kprobes/arch-support.txt | 1 -
.../debug/kretprobes/arch-support.txt | 1 -
.../features/debug/optprobes/arch-support.txt | 1 -
.../debug/stackprotector/arch-support.txt | 1 -
.../features/debug/uprobes/arch-support.txt | 1 -
.../debug/user-ret-profiler/arch-support.txt | 1 -
.../io/dma-contiguous/arch-support.txt | 1 -
.../locking/cmpxchg-local/arch-support.txt | 1 -
.../features/locking/lockdep/arch-support.txt | 1 -
.../locking/queued-rwlocks/arch-support.txt | 1 -
.../locking/queued-spinlocks/arch-support.txt | 1 -
.../perf/kprobes-event/arch-support.txt | 1 -
.../features/perf/perf-regs/arch-support.txt | 1 -
.../perf/perf-stackdump/arch-support.txt | 1 -
.../membarrier-sync-core/arch-support.txt | 1 -
.../sched/numa-balancing/arch-support.txt | 1 -
.../seccomp/seccomp-filter/arch-support.txt | 1 -
.../time/arch-tick-broadcast/arch-support.txt | 1 -
.../time/clockevents/arch-support.txt | 1 -
.../time/context-tracking/arch-support.txt | 1 -
.../time/irq-time-acct/arch-support.txt | 1 -
.../time/virt-cpuacct/arch-support.txt | 1 -
.../features/vm/ELF-ASLR/arch-support.txt | 1 -
.../features/vm/PG_uncached/arch-support.txt | 1 -
.../features/vm/THP/arch-support.txt | 1 -
.../features/vm/TLB/arch-support.txt | 1 -
.../features/vm/huge-vmap/arch-support.txt | 1 -
.../features/vm/ioremap_prot/arch-support.txt | 1 -
.../features/vm/pte_special/arch-support.txt | 1 -
MAINTAINERS | 12 -
arch/nds32/Kbuild | 4 -
arch/nds32/Kconfig | 102 --
arch/nds32/Kconfig.cpu | 218 ---
arch/nds32/Kconfig.debug | 2 -
arch/nds32/Makefile | 63 -
arch/nds32/boot/.gitignore | 2 -
arch/nds32/boot/Makefile | 16 -
arch/nds32/boot/dts/Makefile | 2 -
arch/nds32/boot/dts/ae3xx.dts | 90 -
arch/nds32/configs/defconfig | 104 --
arch/nds32/include/asm/Kbuild | 8 -
arch/nds32/include/asm/assembler.h | 39 -
arch/nds32/include/asm/barrier.h | 15 -
arch/nds32/include/asm/bitfield.h | 985 -----------
arch/nds32/include/asm/cache.h | 12 -
arch/nds32/include/asm/cache_info.h | 13 -
arch/nds32/include/asm/cacheflush.h | 53 -
arch/nds32/include/asm/current.h | 12 -
arch/nds32/include/asm/delay.h | 39 -
arch/nds32/include/asm/elf.h | 180 --
arch/nds32/include/asm/fixmap.h | 29 -
arch/nds32/include/asm/fpu.h | 126 --
arch/nds32/include/asm/fpuemu.h | 44 -
arch/nds32/include/asm/ftrace.h | 46 -
arch/nds32/include/asm/futex.h | 101 --
arch/nds32/include/asm/highmem.h | 65 -
arch/nds32/include/asm/io.h | 84 -
arch/nds32/include/asm/irqflags.h | 41 -
arch/nds32/include/asm/l2_cache.h | 137 --
arch/nds32/include/asm/linkage.h | 11 -
arch/nds32/include/asm/memory.h | 91 -
arch/nds32/include/asm/mmu.h | 12 -
arch/nds32/include/asm/mmu_context.h | 62 -
arch/nds32/include/asm/nds32.h | 82 -
arch/nds32/include/asm/nds32_fpu_inst.h | 109 --
arch/nds32/include/asm/page.h | 64 -
arch/nds32/include/asm/perf_event.h | 16 -
arch/nds32/include/asm/pgalloc.h | 62 -
arch/nds32/include/asm/pgtable.h | 377 -----
arch/nds32/include/asm/pmu.h | 386 -----
arch/nds32/include/asm/proc-fns.h | 44 -
arch/nds32/include/asm/processor.h | 104 --
arch/nds32/include/asm/ptrace.h | 77 -
arch/nds32/include/asm/sfp-machine.h | 158 --
arch/nds32/include/asm/shmparam.h | 19 -
arch/nds32/include/asm/stacktrace.h | 39 -
arch/nds32/include/asm/string.h | 17 -
arch/nds32/include/asm/suspend.h | 11 -
arch/nds32/include/asm/swab.h | 35 -
arch/nds32/include/asm/syscall.h | 142 --
arch/nds32/include/asm/syscalls.h | 14 -
arch/nds32/include/asm/thread_info.h | 76 -
arch/nds32/include/asm/tlb.h | 11 -
arch/nds32/include/asm/tlbflush.h | 46 -
arch/nds32/include/asm/uaccess.h | 286 ----
arch/nds32/include/asm/unistd.h | 6 -
arch/nds32/include/asm/vdso.h | 24 -
arch/nds32/include/asm/vdso_datapage.h | 37 -
arch/nds32/include/asm/vdso_timer_info.h | 14 -
arch/nds32/include/asm/vermagic.h | 9 -
arch/nds32/include/asm/vmalloc.h | 4 -
arch/nds32/include/uapi/asm/Kbuild | 2 -
arch/nds32/include/uapi/asm/auxvec.h | 19 -
arch/nds32/include/uapi/asm/byteorder.h | 13 -
arch/nds32/include/uapi/asm/cachectl.h | 14 -
arch/nds32/include/uapi/asm/fp_udfiex_crtl.h | 16 -
arch/nds32/include/uapi/asm/param.h | 11 -
arch/nds32/include/uapi/asm/ptrace.h | 25 -
arch/nds32/include/uapi/asm/sigcontext.h | 84 -
arch/nds32/include/uapi/asm/unistd.h | 16 -
arch/nds32/kernel/.gitignore | 2 -
arch/nds32/kernel/Makefile | 33 -
arch/nds32/kernel/asm-offsets.c | 28 -
arch/nds32/kernel/atl2c.c | 65 -
arch/nds32/kernel/cacheinfo.c | 49 -
arch/nds32/kernel/devtree.c | 19 -
arch/nds32/kernel/dma.c | 82 -
arch/nds32/kernel/ex-entry.S | 177 --
arch/nds32/kernel/ex-exit.S | 193 ---
arch/nds32/kernel/ex-scall.S | 100 --
arch/nds32/kernel/fpu.c | 266 ---
arch/nds32/kernel/ftrace.c | 278 ---
arch/nds32/kernel/head.S | 197 ---
arch/nds32/kernel/irq.c | 9 -
arch/nds32/kernel/module.c | 278 ---
arch/nds32/kernel/nds32_ksyms.c | 25 -
arch/nds32/kernel/perf_event_cpu.c | 1500 -----------------
arch/nds32/kernel/pm.c | 80 -
arch/nds32/kernel/process.c | 257 ---
arch/nds32/kernel/ptrace.c | 118 --
arch/nds32/kernel/setup.c | 369 ----
arch/nds32/kernel/signal.c | 384 -----
arch/nds32/kernel/sleep.S | 131 --
arch/nds32/kernel/stacktrace.c | 53 -
arch/nds32/kernel/sys_nds32.c | 84 -
arch/nds32/kernel/syscall_table.c | 17 -
arch/nds32/kernel/time.c | 11 -
arch/nds32/kernel/traps.c | 354 ----
arch/nds32/kernel/vdso.c | 231 ---
arch/nds32/kernel/vdso/.gitignore | 2 -
arch/nds32/kernel/vdso/Makefile | 79 -
arch/nds32/kernel/vdso/datapage.S | 21 -
arch/nds32/kernel/vdso/gen_vdso_offsets.sh | 15 -
arch/nds32/kernel/vdso/gettimeofday.c | 269 ---
arch/nds32/kernel/vdso/note.S | 11 -
arch/nds32/kernel/vdso/sigreturn.S | 19 -
arch/nds32/kernel/vdso/vdso.S | 18 -
arch/nds32/kernel/vdso/vdso.lds.S | 75 -
arch/nds32/kernel/vmlinux.lds.S | 70 -
arch/nds32/lib/Makefile | 4 -
arch/nds32/lib/clear_user.S | 42 -
arch/nds32/lib/copy_from_user.S | 45 -
arch/nds32/lib/copy_page.S | 40 -
arch/nds32/lib/copy_template.S | 69 -
arch/nds32/lib/copy_to_user.S | 45 -
arch/nds32/lib/memcpy.S | 30 -
arch/nds32/lib/memmove.S | 70 -
arch/nds32/lib/memset.S | 33 -
arch/nds32/lib/memzero.S | 18 -
arch/nds32/math-emu/Makefile | 10 -
arch/nds32/math-emu/faddd.c | 24 -
arch/nds32/math-emu/fadds.c | 24 -
arch/nds32/math-emu/fcmpd.c | 24 -
arch/nds32/math-emu/fcmps.c | 24 -
arch/nds32/math-emu/fd2s.c | 22 -
arch/nds32/math-emu/fd2si.c | 30 -
arch/nds32/math-emu/fd2siz.c | 30 -
arch/nds32/math-emu/fd2ui.c | 30 -
arch/nds32/math-emu/fd2uiz.c | 30 -
arch/nds32/math-emu/fdivd.c | 27 -
arch/nds32/math-emu/fdivs.c | 26 -
arch/nds32/math-emu/fmuld.c | 23 -
arch/nds32/math-emu/fmuls.c | 23 -
arch/nds32/math-emu/fnegd.c | 21 -
arch/nds32/math-emu/fnegs.c | 21 -
arch/nds32/math-emu/fpuemu.c | 406 -----
arch/nds32/math-emu/fs2d.c | 23 -
arch/nds32/math-emu/fs2si.c | 29 -
arch/nds32/math-emu/fs2siz.c | 29 -
arch/nds32/math-emu/fs2ui.c | 29 -
arch/nds32/math-emu/fs2uiz.c | 30 -
arch/nds32/math-emu/fsi2d.c | 22 -
arch/nds32/math-emu/fsi2s.c | 22 -
arch/nds32/math-emu/fsqrtd.c | 21 -
arch/nds32/math-emu/fsqrts.c | 21 -
arch/nds32/math-emu/fsubd.c | 27 -
arch/nds32/math-emu/fsubs.c | 27 -
arch/nds32/math-emu/fui2d.c | 22 -
arch/nds32/math-emu/fui2s.c | 22 -
arch/nds32/mm/Makefile | 10 -
arch/nds32/mm/alignment.c | 578 -------
arch/nds32/mm/cacheflush.c | 338 ----
arch/nds32/mm/extable.c | 16 -
arch/nds32/mm/fault.c | 396 -----
arch/nds32/mm/init.c | 263 ---
arch/nds32/mm/mm-nds32.c | 96 --
arch/nds32/mm/mmap.c | 73 -
arch/nds32/mm/proc.c | 536 ------
arch/nds32/mm/tlb.c | 50 -
drivers/clocksource/Kconfig | 9 -
drivers/clocksource/timer-atcpit100.c | 266 ---
drivers/irqchip/Makefile | 1 -
drivers/irqchip/irq-ativic32.c | 156 --
drivers/net/ethernet/faraday/Kconfig | 12 +-
drivers/video/console/Kconfig | 2 +-
scripts/recordmcount.pl | 3 -
tools/include/asm/barrier.h | 2 -
tools/perf/arch/nds32/Build | 1 -
tools/perf/arch/nds32/util/Build | 1 -
tools/perf/arch/nds32/util/header.c | 29 -
tools/testing/selftests/vDSO/vdso_config.h | 4 -
220 files changed, 6 insertions(+), 15826 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt
delete mode 100644 Documentation/devicetree/bindings/nds32/andestech-boards
delete mode 100644 Documentation/devicetree/bindings/nds32/atl2c.txt
delete mode 100644 Documentation/devicetree/bindings/nds32/cpus.txt
delete mode 100644 Documentation/devicetree/bindings/perf/nds32v3-pmu.txt
delete mode 100644 Documentation/devicetree/bindings/timer/andestech,atcpit100-timer.txt
delete mode 100644 arch/nds32/Kbuild
delete mode 100644 arch/nds32/Kconfig
delete mode 100644 arch/nds32/Kconfig.cpu
delete mode 100644 arch/nds32/Kconfig.debug
delete mode 100644 arch/nds32/Makefile
delete mode 100644 arch/nds32/boot/.gitignore
delete mode 100644 arch/nds32/boot/Makefile
delete mode 100644 arch/nds32/boot/dts/Makefile
delete mode 100644 arch/nds32/boot/dts/ae3xx.dts
delete mode 100644 arch/nds32/configs/defconfig
delete mode 100644 arch/nds32/include/asm/Kbuild
delete mode 100644 arch/nds32/include/asm/assembler.h
delete mode 100644 arch/nds32/include/asm/barrier.h
delete mode 100644 arch/nds32/include/asm/bitfield.h
delete mode 100644 arch/nds32/include/asm/cache.h
delete mode 100644 arch/nds32/include/asm/cache_info.h
delete mode 100644 arch/nds32/include/asm/cacheflush.h
delete mode 100644 arch/nds32/include/asm/current.h
delete mode 100644 arch/nds32/include/asm/delay.h
delete mode 100644 arch/nds32/include/asm/elf.h
delete mode 100644 arch/nds32/include/asm/fixmap.h
delete mode 100644 arch/nds32/include/asm/fpu.h
delete mode 100644 arch/nds32/include/asm/fpuemu.h
delete mode 100644 arch/nds32/include/asm/ftrace.h
delete mode 100644 arch/nds32/include/asm/futex.h
delete mode 100644 arch/nds32/include/asm/highmem.h
delete mode 100644 arch/nds32/include/asm/io.h
delete mode 100644 arch/nds32/include/asm/irqflags.h
delete mode 100644 arch/nds32/include/asm/l2_cache.h
delete mode 100644 arch/nds32/include/asm/linkage.h
delete mode 100644 arch/nds32/include/asm/memory.h
delete mode 100644 arch/nds32/include/asm/mmu.h
delete mode 100644 arch/nds32/include/asm/mmu_context.h
delete mode 100644 arch/nds32/include/asm/nds32.h
delete mode 100644 arch/nds32/include/asm/nds32_fpu_inst.h
delete mode 100644 arch/nds32/include/asm/page.h
delete mode 100644 arch/nds32/include/asm/perf_event.h
delete mode 100644 arch/nds32/include/asm/pgalloc.h
delete mode 100644 arch/nds32/include/asm/pgtable.h
delete mode 100644 arch/nds32/include/asm/pmu.h
delete mode 100644 arch/nds32/include/asm/proc-fns.h
delete mode 100644 arch/nds32/include/asm/processor.h
delete mode 100644 arch/nds32/include/asm/ptrace.h
delete mode 100644 arch/nds32/include/asm/sfp-machine.h
delete mode 100644 arch/nds32/include/asm/shmparam.h
delete mode 100644 arch/nds32/include/asm/stacktrace.h
delete mode 100644 arch/nds32/include/asm/string.h
delete mode 100644 arch/nds32/include/asm/suspend.h
delete mode 100644 arch/nds32/include/asm/swab.h
delete mode 100644 arch/nds32/include/asm/syscall.h
delete mode 100644 arch/nds32/include/asm/syscalls.h
delete mode 100644 arch/nds32/include/asm/thread_info.h
delete mode 100644 arch/nds32/include/asm/tlb.h
delete mode 100644 arch/nds32/include/asm/tlbflush.h
delete mode 100644 arch/nds32/include/asm/uaccess.h
delete mode 100644 arch/nds32/include/asm/unistd.h
delete mode 100644 arch/nds32/include/asm/vdso.h
delete mode 100644 arch/nds32/include/asm/vdso_datapage.h
delete mode 100644 arch/nds32/include/asm/vdso_timer_info.h
delete mode 100644 arch/nds32/include/asm/vermagic.h
delete mode 100644 arch/nds32/include/asm/vmalloc.h
delete mode 100644 arch/nds32/include/uapi/asm/Kbuild
delete mode 100644 arch/nds32/include/uapi/asm/auxvec.h
delete mode 100644 arch/nds32/include/uapi/asm/byteorder.h
delete mode 100644 arch/nds32/include/uapi/asm/cachectl.h
delete mode 100644 arch/nds32/include/uapi/asm/fp_udfiex_crtl.h
delete mode 100644 arch/nds32/include/uapi/asm/param.h
delete mode 100644 arch/nds32/include/uapi/asm/ptrace.h
delete mode 100644 arch/nds32/include/uapi/asm/sigcontext.h
delete mode 100644 arch/nds32/include/uapi/asm/unistd.h
delete mode 100644 arch/nds32/kernel/.gitignore
delete mode 100644 arch/nds32/kernel/Makefile
delete mode 100644 arch/nds32/kernel/asm-offsets.c
delete mode 100644 arch/nds32/kernel/atl2c.c
delete mode 100644 arch/nds32/kernel/cacheinfo.c
delete mode 100644 arch/nds32/kernel/devtree.c
delete mode 100644 arch/nds32/kernel/dma.c
delete mode 100644 arch/nds32/kernel/ex-entry.S
delete mode 100644 arch/nds32/kernel/ex-exit.S
delete mode 100644 arch/nds32/kernel/ex-scall.S
delete mode 100644 arch/nds32/kernel/fpu.c
delete mode 100644 arch/nds32/kernel/ftrace.c
delete mode 100644 arch/nds32/kernel/head.S
delete mode 100644 arch/nds32/kernel/irq.c
delete mode 100644 arch/nds32/kernel/module.c
delete mode 100644 arch/nds32/kernel/nds32_ksyms.c
delete mode 100644 arch/nds32/kernel/perf_event_cpu.c
delete mode 100644 arch/nds32/kernel/pm.c
delete mode 100644 arch/nds32/kernel/process.c
delete mode 100644 arch/nds32/kernel/ptrace.c
delete mode 100644 arch/nds32/kernel/setup.c
delete mode 100644 arch/nds32/kernel/signal.c
delete mode 100644 arch/nds32/kernel/sleep.S
delete mode 100644 arch/nds32/kernel/stacktrace.c
delete mode 100644 arch/nds32/kernel/sys_nds32.c
delete mode 100644 arch/nds32/kernel/syscall_table.c
delete mode 100644 arch/nds32/kernel/time.c
delete mode 100644 arch/nds32/kernel/traps.c
delete mode 100644 arch/nds32/kernel/vdso.c
delete mode 100644 arch/nds32/kernel/vdso/.gitignore
delete mode 100644 arch/nds32/kernel/vdso/Makefile
delete mode 100644 arch/nds32/kernel/vdso/datapage.S
delete mode 100755 arch/nds32/kernel/vdso/gen_vdso_offsets.sh
delete mode 100644 arch/nds32/kernel/vdso/gettimeofday.c
delete mode 100644 arch/nds32/kernel/vdso/note.S
delete mode 100644 arch/nds32/kernel/vdso/sigreturn.S
delete mode 100644 arch/nds32/kernel/vdso/vdso.S
delete mode 100644 arch/nds32/kernel/vdso/vdso.lds.S
delete mode 100644 arch/nds32/kernel/vmlinux.lds.S
delete mode 100644 arch/nds32/lib/Makefile
delete mode 100644 arch/nds32/lib/clear_user.S
delete mode 100644 arch/nds32/lib/copy_from_user.S
delete mode 100644 arch/nds32/lib/copy_page.S
delete mode 100644 arch/nds32/lib/copy_template.S
delete mode 100644 arch/nds32/lib/copy_to_user.S
delete mode 100644 arch/nds32/lib/memcpy.S
delete mode 100644 arch/nds32/lib/memmove.S
delete mode 100644 arch/nds32/lib/memset.S
delete mode 100644 arch/nds32/lib/memzero.S
delete mode 100644 arch/nds32/math-emu/Makefile
delete mode 100644 arch/nds32/math-emu/faddd.c
delete mode 100644 arch/nds32/math-emu/fadds.c
delete mode 100644 arch/nds32/math-emu/fcmpd.c
delete mode 100644 arch/nds32/math-emu/fcmps.c
delete mode 100644 arch/nds32/math-emu/fd2s.c
delete mode 100644 arch/nds32/math-emu/fd2si.c
delete mode 100644 arch/nds32/math-emu/fd2siz.c
delete mode 100644 arch/nds32/math-emu/fd2ui.c
delete mode 100644 arch/nds32/math-emu/fd2uiz.c
delete mode 100644 arch/nds32/math-emu/fdivd.c
delete mode 100644 arch/nds32/math-emu/fdivs.c
delete mode 100644 arch/nds32/math-emu/fmuld.c
delete mode 100644 arch/nds32/math-emu/fmuls.c
delete mode 100644 arch/nds32/math-emu/fnegd.c
delete mode 100644 arch/nds32/math-emu/fnegs.c
delete mode 100644 arch/nds32/math-emu/fpuemu.c
delete mode 100644 arch/nds32/math-emu/fs2d.c
delete mode 100644 arch/nds32/math-emu/fs2si.c
delete mode 100644 arch/nds32/math-emu/fs2siz.c
delete mode 100644 arch/nds32/math-emu/fs2ui.c
delete mode 100644 arch/nds32/math-emu/fs2uiz.c
delete mode 100644 arch/nds32/math-emu/fsi2d.c
delete mode 100644 arch/nds32/math-emu/fsi2s.c
delete mode 100644 arch/nds32/math-emu/fsqrtd.c
delete mode 100644 arch/nds32/math-emu/fsqrts.c
delete mode 100644 arch/nds32/math-emu/fsubd.c
delete mode 100644 arch/nds32/math-emu/fsubs.c
delete mode 100644 arch/nds32/math-emu/fui2d.c
delete mode 100644 arch/nds32/math-emu/fui2s.c
delete mode 100644 arch/nds32/mm/Makefile
delete mode 100644 arch/nds32/mm/alignment.c
delete mode 100644 arch/nds32/mm/cacheflush.c
delete mode 100644 arch/nds32/mm/extable.c
delete mode 100644 arch/nds32/mm/fault.c
delete mode 100644 arch/nds32/mm/init.c
delete mode 100644 arch/nds32/mm/mm-nds32.c
delete mode 100644 arch/nds32/mm/mmap.c
delete mode 100644 arch/nds32/mm/proc.c
delete mode 100644 arch/nds32/mm/tlb.c
delete mode 100644 drivers/clocksource/timer-atcpit100.c
delete mode 100644 drivers/irqchip/irq-ativic32.c
delete mode 100644 tools/perf/arch/nds32/Build
delete mode 100644 tools/perf/arch/nds32/util/Build
delete mode 100644 tools/perf/arch/nds32/util/header.c
diff --git a/Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt b/Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt
deleted file mode 100644
index f4b4193d830e..000000000000
--- a/Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-* Andestech Internal Vector Interrupt Controller
-
-The Internal Vector Interrupt Controller (IVIC) is a basic interrupt controller
-suitable for a simpler SoC platform not requiring a more sophisticated and
-bigger External Vector Interrupt Controller.
-
-
-Main node required properties:
-
-- compatible : should at least contain "andestech,ativic32".
-- interrupt-controller : Identifies the node as an interrupt controller
-- #interrupt-cells: 1 cells and refer to interrupt-controller/interrupts
-
-Examples:
- intc: interrupt-controller {
- compatible = "andestech,ativic32";
- #interrupt-cells = <1>;
- interrupt-controller;
- };
diff --git a/Documentation/devicetree/bindings/nds32/andestech-boards b/Documentation/devicetree/bindings/nds32/andestech-boards
deleted file mode 100644
index f5d75693e3c7..000000000000
--- a/Documentation/devicetree/bindings/nds32/andestech-boards
+++ /dev/null
@@ -1,40 +0,0 @@
-Andestech(nds32) AE3XX Platform
------------------------------------------------------------------------------
-The AE3XX prototype demonstrates the AE3XX example platform on the FPGA. It
-is composed of one Andestech(nds32) processor and AE3XX.
-
-Required properties (in root node):
-- compatible = "andestech,ae3xx";
-
-Example:
-/dts-v1/;
-/ {
- compatible = "andestech,ae3xx";
- #address-cells = <1>;
- #size-cells = <1>;
- interrupt-parent = <&intc>;
-};
-
-Andestech(nds32) AG101P Platform
------------------------------------------------------------------------------
-AG101P is a generic SoC Platform IP that works with any of Andestech(nds32)
-processors to provide a cost-effective and high performance solution for
-majority of embedded systems in variety of application domains. Users may
-simply attach their IP on one of the system buses together with certain glue
-logics to complete a SoC solution for a specific application. With
-comprehensive simulation and design environments, users may evaluate the
-system performance of their applications and track bugs of their designs
-efficiently. The optional hardware development platform further provides real
-system environment for early prototyping and software/hardware co-development.
-
-Required properties (in root node):
- compatible = "andestech,ag101p";
-
-Example:
-/dts-v1/;
-/ {
- compatible = "andestech,ag101p";
- #address-cells = <1>;
- #size-cells = <1>;
- interrupt-parent = <&intc>;
-};
diff --git a/Documentation/devicetree/bindings/nds32/atl2c.txt b/Documentation/devicetree/bindings/nds32/atl2c.txt
deleted file mode 100644
index da8ab8e7ae9b..000000000000
--- a/Documentation/devicetree/bindings/nds32/atl2c.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-* Andestech L2 cache Controller
-
-The level-2 cache controller plays an important role in reducing memory latency
-for high performance systems, such as thoese designs with AndesCore processors.
-Level-2 cache controller in general enhances overall system performance
-signigicantly and the system power consumption might be reduced as well by
-reducing DRAM accesses.
-
-This binding specifies what properties must be available in the device tree
-representation of an Andestech L2 cache controller.
-
-Required properties:
- - compatible:
- Usage: required
- Value type: <string>
- Definition: "andestech,atl2c"
- - reg : Physical base address and size of cache controller's memory mapped
- - cache-unified : Specifies the cache is a unified cache.
- - cache-level : Should be set to 2 for a level 2 cache.
-
-* Example
-
- cache-controller@e0500000 {
- compatible = "andestech,atl2c";
- reg = <0xe0500000 0x1000>;
- cache-unified;
- cache-level = <2>;
- };
diff --git a/Documentation/devicetree/bindings/nds32/cpus.txt b/Documentation/devicetree/bindings/nds32/cpus.txt
deleted file mode 100644
index 6f9e311b6589..000000000000
--- a/Documentation/devicetree/bindings/nds32/cpus.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-* Andestech Processor Binding
-
-This binding specifies what properties must be available in the device tree
-representation of a Andestech Processor Core, which is the root node in the
-tree.
-
-Required properties:
-
- - compatible:
- Usage: required
- Value type: <string>
- Definition: Should be "andestech,<core_name>", "andestech,nds32v3" as fallback.
- Must contain "andestech,nds32v3" as the most generic value, in addition to
- one of the following identifiers for a particular CPU core:
- "andestech,n13"
- "andestech,n15"
- "andestech,d15"
- "andestech,n10"
- "andestech,d10"
- - device_type
- Usage: required
- Value type: <string>
- Definition: must be "cpu"
- - reg: Contains CPU index.
- - clock-frequency: Contains the clock frequency for CPU, in Hz.
-
-* Examples
-
-/ {
- cpus {
- cpu@0 {
- device_type = "cpu";
- compatible = "andestech,n13", "andestech,nds32v3";
- reg = <0x0>;
- clock-frequency = <60000000>
- };
- };
-};
diff --git a/Documentation/devicetree/bindings/perf/nds32v3-pmu.txt b/Documentation/devicetree/bindings/perf/nds32v3-pmu.txt
deleted file mode 100644
index 1bd15785b4ae..000000000000
--- a/Documentation/devicetree/bindings/perf/nds32v3-pmu.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-* NDS32 Performance Monitor Units
-
-NDS32 core have a PMU for counting cpu and cache events like cache misses.
-The NDS32 PMU representation in the device tree should be done as under:
-
-Required properties:
-
-- compatible :
- "andestech,nds32v3-pmu"
-
-- interrupts : The interrupt number for NDS32 PMU is 13.
-
-Example:
-pmu{
- compatible = "andestech,nds32v3-pmu";
- interrupts = <13>;
-}
diff --git a/Documentation/devicetree/bindings/timer/andestech,atcpit100-timer.txt b/Documentation/devicetree/bindings/timer/andestech,atcpit100-timer.txt
deleted file mode 100644
index 4c9ea5989e35..000000000000
--- a/Documentation/devicetree/bindings/timer/andestech,atcpit100-timer.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-Andestech ATCPIT100 timer
-------------------------------------------------------------------
-ATCPIT100 is a generic IP block from Andes Technology, embedded in
-Andestech AE3XX platforms and other designs.
-
-This timer is a set of compact multi-function timers, which can be
-used as pulse width modulators (PWM) as well as simple timers.
-
-It supports up to 4 PIT channels. Each PIT channel is a
-multi-function timer and provide the following usage scenarios:
-One 32-bit timer
-Two 16-bit timers
-Four 8-bit timers
-One 16-bit PWM
-One 16-bit timer and one 8-bit PWM
-Two 8-bit timer and one 8-bit PWM
-
-Required properties:
-- compatible : Should be "andestech,atcpit100"
-- reg : Address and length of the register set
-- interrupts : Reference to the timer interrupt
-- clocks : a clock to provide the tick rate for "andestech,atcpit100"
-- clock-names : should be "PCLK" for the peripheral clock source.
-
-Examples:
-
-timer0: timer@f0400000 {
- compatible = "andestech,atcpit100";
- reg = <0xf0400000 0x1000>;
- interrupts = <2>;
- clocks = <&apb>;
- clock-names = "PCLK";
-};
diff --git a/Documentation/features/core/cBPF-JIT/arch-support.txt b/Documentation/features/core/cBPF-JIT/arch-support.txt
index e59b5215402d..77bd6974dd6d 100644
--- a/Documentation/features/core/cBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/cBPF-JIT/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/core/eBPF-JIT/arch-support.txt b/Documentation/features/core/eBPF-JIT/arch-support.txt
index dcbd8679f514..d5ab547b2be6 100644
--- a/Documentation/features/core/eBPF-JIT/arch-support.txt
+++ b/Documentation/features/core/eBPF-JIT/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/core/generic-idle-thread/arch-support.txt b/Documentation/features/core/generic-idle-thread/arch-support.txt
index 4efcba7b5239..ddb3762ca7f5 100644
--- a/Documentation/features/core/generic-idle-thread/arch-support.txt
+++ b/Documentation/features/core/generic-idle-thread/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | ok |
| parisc: | ok |
diff --git a/Documentation/features/core/jump-labels/arch-support.txt b/Documentation/features/core/jump-labels/arch-support.txt
index 0c801d1bd2da..d5380ef68713 100644
--- a/Documentation/features/core/jump-labels/arch-support.txt
+++ b/Documentation/features/core/jump-labels/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/core/thread-info-in-task/arch-support.txt b/Documentation/features/core/thread-info-in-task/arch-support.txt
index bc74d8beea72..0654ba3a42ff 100644
--- a/Documentation/features/core/thread-info-in-task/arch-support.txt
+++ b/Documentation/features/core/thread-info-in-task/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | ok |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/core/tracehook/arch-support.txt b/Documentation/features/core/tracehook/arch-support.txt
index af34308fce7f..8e95dc0c7b90 100644
--- a/Documentation/features/core/tracehook/arch-support.txt
+++ b/Documentation/features/core/tracehook/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | ok |
| nios2: | ok |
| openrisc: | ok |
| parisc: | ok |
diff --git a/Documentation/features/debug/KASAN/arch-support.txt b/Documentation/features/debug/KASAN/arch-support.txt
index c244ac7eee26..407ca1d91242 100644
--- a/Documentation/features/debug/KASAN/arch-support.txt
+++ b/Documentation/features/debug/KASAN/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
index fa83403b4aec..83eafe1a7f68 100644
--- a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
+++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/gcov-profile-all/arch-support.txt b/Documentation/features/debug/gcov-profile-all/arch-support.txt
index b39c1a5de3f3..49e0dda11227 100644
--- a/Documentation/features/debug/gcov-profile-all/arch-support.txt
+++ b/Documentation/features/debug/gcov-profile-all/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/kcov/arch-support.txt b/Documentation/features/debug/kcov/arch-support.txt
index 7e44013cc320..3d34b724ddae 100644
--- a/Documentation/features/debug/kcov/arch-support.txt
+++ b/Documentation/features/debug/kcov/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/kgdb/arch-support.txt b/Documentation/features/debug/kgdb/arch-support.txt
index 2cb0576f9180..7aa073d908c5 100644
--- a/Documentation/features/debug/kgdb/arch-support.txt
+++ b/Documentation/features/debug/kgdb/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
- | nds32: | TODO |
| nios2: | ok |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/debug/kmemleak/arch-support.txt b/Documentation/features/debug/kmemleak/arch-support.txt
index e9ac415f8aec..5c784ff9768a 100644
--- a/Documentation/features/debug/kmemleak/arch-support.txt
+++ b/Documentation/features/debug/kmemleak/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
- | nds32: | ok |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
index 96156e8802a7..a1f6e98c6b1f 100644
--- a/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
+++ b/Documentation/features/debug/kprobes-on-ftrace/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/debug/kprobes/arch-support.txt b/Documentation/features/debug/kprobes/arch-support.txt
index ee95ed61909a..e7e7015175e7 100644
--- a/Documentation/features/debug/kprobes/arch-support.txt
+++ b/Documentation/features/debug/kprobes/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/debug/kretprobes/arch-support.txt b/Documentation/features/debug/kretprobes/arch-support.txt
index 612cb97d47b8..838eb53a6fa5 100644
--- a/Documentation/features/debug/kretprobes/arch-support.txt
+++ b/Documentation/features/debug/kretprobes/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/debug/optprobes/arch-support.txt b/Documentation/features/debug/optprobes/arch-support.txt
index d6ff141a6122..6358b00b1723 100644
--- a/Documentation/features/debug/optprobes/arch-support.txt
+++ b/Documentation/features/debug/optprobes/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/stackprotector/arch-support.txt b/Documentation/features/debug/stackprotector/arch-support.txt
index ad4de22a71ab..f6cdf781305f 100644
--- a/Documentation/features/debug/stackprotector/arch-support.txt
+++ b/Documentation/features/debug/stackprotector/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/uprobes/arch-support.txt b/Documentation/features/debug/uprobes/arch-support.txt
index 8bd5548a4485..0b871e797d24 100644
--- a/Documentation/features/debug/uprobes/arch-support.txt
+++ b/Documentation/features/debug/uprobes/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/debug/user-ret-profiler/arch-support.txt b/Documentation/features/debug/user-ret-profiler/arch-support.txt
index 2a3fe812a5fa..a2feda7adff1 100644
--- a/Documentation/features/debug/user-ret-profiler/arch-support.txt
+++ b/Documentation/features/debug/user-ret-profiler/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/io/dma-contiguous/arch-support.txt b/Documentation/features/io/dma-contiguous/arch-support.txt
index bece89586efa..9b407f26d45e 100644
--- a/Documentation/features/io/dma-contiguous/arch-support.txt
+++ b/Documentation/features/io/dma-contiguous/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/locking/cmpxchg-local/arch-support.txt b/Documentation/features/locking/cmpxchg-local/arch-support.txt
index 52bdda004f5c..090520b0e02d 100644
--- a/Documentation/features/locking/cmpxchg-local/arch-support.txt
+++ b/Documentation/features/locking/cmpxchg-local/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/locking/lockdep/arch-support.txt b/Documentation/features/locking/lockdep/arch-support.txt
index a8cd163c8b7e..6d840b103537 100644
--- a/Documentation/features/locking/lockdep/arch-support.txt
+++ b/Documentation/features/locking/lockdep/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
- | nds32: | ok |
| nios2: | TODO |
| openrisc: | ok |
| parisc: | TODO |
diff --git a/Documentation/features/locking/queued-rwlocks/arch-support.txt b/Documentation/features/locking/queued-rwlocks/arch-support.txt
index 8c85949752b3..de586be05d64 100644
--- a/Documentation/features/locking/queued-rwlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-rwlocks/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | ok |
| parisc: | TODO |
diff --git a/Documentation/features/locking/queued-spinlocks/arch-support.txt b/Documentation/features/locking/queued-spinlocks/arch-support.txt
index 5f4e1b3841af..29d0c8b7b1c5 100644
--- a/Documentation/features/locking/queued-spinlocks/arch-support.txt
+++ b/Documentation/features/locking/queued-spinlocks/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | ok |
| parisc: | TODO |
diff --git a/Documentation/features/perf/kprobes-event/arch-support.txt b/Documentation/features/perf/kprobes-event/arch-support.txt
index 78f3fe080f0e..881a8a50e41e 100644
--- a/Documentation/features/perf/kprobes-event/arch-support.txt
+++ b/Documentation/features/perf/kprobes-event/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | ok |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/perf/perf-regs/arch-support.txt b/Documentation/features/perf/perf-regs/arch-support.txt
index 5bf3b1854a1f..7639a796a8e1 100644
--- a/Documentation/features/perf/perf-regs/arch-support.txt
+++ b/Documentation/features/perf/perf-regs/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/perf/perf-stackdump/arch-support.txt b/Documentation/features/perf/perf-stackdump/arch-support.txt
index d88659bb4fc1..df1a4c679a45 100644
--- a/Documentation/features/perf/perf-stackdump/arch-support.txt
+++ b/Documentation/features/perf/perf-stackdump/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/sched/membarrier-sync-core/arch-support.txt b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
index 883d33b265d6..51b7afc937f1 100644
--- a/Documentation/features/sched/membarrier-sync-core/arch-support.txt
+++ b/Documentation/features/sched/membarrier-sync-core/arch-support.txt
@@ -40,7 +40,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/sched/numa-balancing/arch-support.txt b/Documentation/features/sched/numa-balancing/arch-support.txt
index 9affb7c2c500..d0e308135434 100644
--- a/Documentation/features/sched/numa-balancing/arch-support.txt
+++ b/Documentation/features/sched/numa-balancing/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | .. |
| openrisc: | .. |
| parisc: | .. |
diff --git a/Documentation/features/seccomp/seccomp-filter/arch-support.txt b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
index 26eec58ab819..05613c5ff560 100644
--- a/Documentation/features/seccomp/seccomp-filter/arch-support.txt
+++ b/Documentation/features/seccomp/seccomp-filter/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/time/arch-tick-broadcast/arch-support.txt b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
index 8dcaab070c7b..b4c96ebab7e3 100644
--- a/Documentation/features/time/arch-tick-broadcast/arch-support.txt
+++ b/Documentation/features/time/arch-tick-broadcast/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/time/clockevents/arch-support.txt b/Documentation/features/time/clockevents/arch-support.txt
index 9a81cb03b1fd..3f6976052e2a 100644
--- a/Documentation/features/time/clockevents/arch-support.txt
+++ b/Documentation/features/time/clockevents/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | ok |
| mips: | ok |
- | nds32: | ok |
| nios2: | ok |
| openrisc: | ok |
| parisc: | TODO |
diff --git a/Documentation/features/time/context-tracking/arch-support.txt b/Documentation/features/time/context-tracking/arch-support.txt
index 4ed116c2ec39..bb1c1801553e 100644
--- a/Documentation/features/time/context-tracking/arch-support.txt
+++ b/Documentation/features/time/context-tracking/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/time/irq-time-acct/arch-support.txt b/Documentation/features/time/irq-time-acct/arch-support.txt
index bc30c15557c7..3cea25b80c8c 100644
--- a/Documentation/features/time/irq-time-acct/arch-support.txt
+++ b/Documentation/features/time/irq-time-acct/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | .. |
diff --git a/Documentation/features/time/virt-cpuacct/arch-support.txt b/Documentation/features/time/virt-cpuacct/arch-support.txt
index 050de43bbbb9..5163a60a1c1e 100644
--- a/Documentation/features/time/virt-cpuacct/arch-support.txt
+++ b/Documentation/features/time/virt-cpuacct/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/vm/ELF-ASLR/arch-support.txt b/Documentation/features/vm/ELF-ASLR/arch-support.txt
index 2949c99fbb2f..73ec761f1e27 100644
--- a/Documentation/features/vm/ELF-ASLR/arch-support.txt
+++ b/Documentation/features/vm/ELF-ASLR/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | ok |
diff --git a/Documentation/features/vm/PG_uncached/arch-support.txt b/Documentation/features/vm/PG_uncached/arch-support.txt
index 6cde38458596..9066a90b38d9 100644
--- a/Documentation/features/vm/PG_uncached/arch-support.txt
+++ b/Documentation/features/vm/PG_uncached/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/vm/THP/arch-support.txt b/Documentation/features/vm/THP/arch-support.txt
index 7dbd6967b37e..f717ab792e5a 100644
--- a/Documentation/features/vm/THP/arch-support.txt
+++ b/Documentation/features/vm/THP/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | .. |
| microblaze: | .. |
| mips: | ok |
- | nds32: | TODO |
| nios2: | .. |
| openrisc: | .. |
| parisc: | TODO |
diff --git a/Documentation/features/vm/TLB/arch-support.txt b/Documentation/features/vm/TLB/arch-support.txt
index e1c3a4c4d107..6fa76a37f299 100644
--- a/Documentation/features/vm/TLB/arch-support.txt
+++ b/Documentation/features/vm/TLB/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | .. |
| microblaze: | .. |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | .. |
| openrisc: | .. |
| parisc: | TODO |
diff --git a/Documentation/features/vm/huge-vmap/arch-support.txt b/Documentation/features/vm/huge-vmap/arch-support.txt
index bc53905a0306..6e1792ee37fe 100644
--- a/Documentation/features/vm/huge-vmap/arch-support.txt
+++ b/Documentation/features/vm/huge-vmap/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | TODO |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/vm/ioremap_prot/arch-support.txt b/Documentation/features/vm/ioremap_prot/arch-support.txt
index 9a0c8783b84d..a6dcbe5f47b6 100644
--- a/Documentation/features/vm/ioremap_prot/arch-support.txt
+++ b/Documentation/features/vm/ioremap_prot/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/Documentation/features/vm/pte_special/arch-support.txt b/Documentation/features/vm/pte_special/arch-support.txt
index 40b969f3a6bb..376477749c42 100644
--- a/Documentation/features/vm/pte_special/arch-support.txt
+++ b/Documentation/features/vm/pte_special/arch-support.txt
@@ -17,7 +17,6 @@
| m68k: | TODO |
| microblaze: | TODO |
| mips: | ok |
- | nds32: | TODO |
| nios2: | TODO |
| openrisc: | TODO |
| parisc: | TODO |
diff --git a/MAINTAINERS b/MAINTAINERS
index 1ba1e4af2cbc..41992140b155 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1229,18 +1229,6 @@ S: Supported
F: drivers/clk/analogbits/*
F: include/linux/clk/analogbits*
-ANDES ARCHITECTURE
-M: Nick Hu <nickhu@andestech.com>
-M: Greentime Hu <green.hu@gmail.com>
-M: Vincent Chen <deanbo422@gmail.com>
-S: Supported
-T: git https://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux.git
-F: Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt
-F: Documentation/devicetree/bindings/nds32/
-F: arch/nds32/
-N: nds32
-K: nds32
-
ANDROID CONFIG FRAGMENTS
M: Rob Herring <robh@kernel.org>
S: Supported
diff --git a/arch/nds32/Kbuild b/arch/nds32/Kbuild
deleted file mode 100644
index 4e39f7abdeb6..000000000000
--- a/arch/nds32/Kbuild
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-
-# for cleaning
-subdir- += boot
diff --git a/arch/nds32/Kconfig b/arch/nds32/Kconfig
deleted file mode 100644
index 4d1421b18734..000000000000
--- a/arch/nds32/Kconfig
+++ /dev/null
@@ -1,102 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.rst.
-#
-
-config NDS32
- def_bool y
- select ARCH_32BIT_OFF_T
- select ARCH_HAS_DMA_PREP_COHERENT
- select ARCH_HAS_SYNC_DMA_FOR_CPU
- select ARCH_HAS_SYNC_DMA_FOR_DEVICE
- select ARCH_WANT_FRAME_POINTERS if FTRACE
- select CLKSRC_MMIO
- select CLONE_BACKWARDS
- select COMMON_CLK
- select DMA_DIRECT_REMAP
- select GENERIC_ATOMIC64
- select GENERIC_CPU_DEVICES
- select GENERIC_IRQ_CHIP
- select GENERIC_IRQ_SHOW
- select GENERIC_IOREMAP
- select GENERIC_LIB_ASHLDI3
- select GENERIC_LIB_ASHRDI3
- select GENERIC_LIB_CMPDI2
- select GENERIC_LIB_LSHRDI3
- select GENERIC_LIB_MULDI3
- select GENERIC_LIB_UCMPDI2
- select GENERIC_TIME_VSYSCALL
- select HAVE_ARCH_TRACEHOOK
- select HAVE_DEBUG_KMEMLEAK
- select HAVE_EXIT_THREAD
- select HAVE_REGS_AND_STACK_ACCESS_API
- select HAVE_PERF_EVENTS
- select IRQ_DOMAIN
- select LOCKDEP_SUPPORT
- select MODULES_USE_ELF_RELA
- select OF
- select OF_EARLY_FLATTREE
- select NO_IOPORT_MAP
- select RTC_LIB
- select THREAD_INFO_IN_TASK
- select HAVE_FUNCTION_TRACER
- select HAVE_FUNCTION_GRAPH_TRACER
- select HAVE_FTRACE_MCOUNT_RECORD
- select HAVE_DYNAMIC_FTRACE
- select SET_FS
- select TRACE_IRQFLAGS_SUPPORT
- help
- Andes(nds32) Linux support.
-
-config GENERIC_CALIBRATE_DELAY
- def_bool y
-
-config GENERIC_CSUM
- def_bool y
-
-config GENERIC_HWEIGHT
- def_bool y
-
-config GENERIC_LOCKBREAK
- def_bool y
- depends on PREEMPTION
-
-config STACKTRACE_SUPPORT
- def_bool y
-
-config FIX_EARLYCON_MEM
- def_bool y
-
-config PGTABLE_LEVELS
- default 2
-
-menu "System Type"
-source "arch/nds32/Kconfig.cpu"
-config NR_CPUS
- int
- default 1
-
-config MMU
- def_bool y
-
-config NDS32_BUILTIN_DTB
- string "Builtin DTB"
- default ""
- help
- User can use it to specify the dts of the SoC
-endmenu
-
-menu "Kernel Features"
-source "kernel/Kconfig.hz"
-endmenu
-
-menu "Power management options"
-config SYS_SUPPORTS_APM_EMULATION
- bool
-
-config ARCH_SUSPEND_POSSIBLE
- def_bool y
-
-source "kernel/power/Kconfig"
-endmenu
diff --git a/arch/nds32/Kconfig.cpu b/arch/nds32/Kconfig.cpu
deleted file mode 100644
index c10759952485..000000000000
--- a/arch/nds32/Kconfig.cpu
+++ /dev/null
@@ -1,218 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-comment "Processor Features"
-
-config CPU_BIG_ENDIAN
- def_bool !CPU_LITTLE_ENDIAN
-
-config CPU_LITTLE_ENDIAN
- bool "Little endian"
- default y
-
-config FPU
- bool "FPU support"
- default n
- help
- If FPU ISA is used in user space, this configuration shall be Y to
- enable required support in kernel such as fpu context switch and
- fpu exception handler.
-
- If no FPU ISA is used in user space, say N.
-
-config LAZY_FPU
- bool "lazy FPU support"
- depends on FPU
- default y
- help
- Say Y here to enable the lazy FPU scheme. The lazy FPU scheme can
- enhance system performance by reducing the context switch
- frequency of the FPU register.
-
- For normal case, say Y.
-
-config SUPPORT_DENORMAL_ARITHMETIC
- bool "Denormal arithmetic support"
- depends on FPU
- default n
- help
- Say Y here to enable arithmetic of denormalized number. Enabling
- this feature can enhance the precision for tininess number.
- However, performance loss in float point calculations is
- possibly significant due to additional FPU exception.
-
- If the calculated tolerance for tininess number is not critical,
- say N to prevent performance loss.
-
-config HWZOL
- bool "hardware zero overhead loop support"
- depends on CPU_D10 || CPU_D15
- default n
- help
- A set of Zero-Overhead Loop mechanism is provided to reduce the
- instruction fetch and execution overhead of loop-control instructions.
- It will save 3 registers($LB, $LC, $LE) for context saving if say Y.
- You don't need to save these registers if you can make sure your user
- program doesn't use these registers.
-
- If unsure, say N.
-
-config CPU_CACHE_ALIASING
- bool "Aliasing cache"
- depends on CPU_N10 || CPU_D10 || CPU_N13 || CPU_V3
- default y
- help
- If this CPU is using VIPT data cache and its cache way size is larger
- than page size, say Y. If it is using PIPT data cache, say N.
-
- If unsure, say Y.
-
-choice
- prompt "minimum CPU type"
- default CPU_V3
- help
- The data cache of N15/D15 is implemented as PIPT and it will not cause
- the cache aliasing issue. The rest cpus(N13, N10 and D10) are
- implemented as VIPT data cache. It may cause the cache aliasing issue
- if its cache way size is larger than page size. You can specify the
- CPU type directly or choose CPU_V3 if unsure.
-
- A kernel built for N10 is able to run on N15, D15, N13, N10 or D10.
- A kernel built for N15 is able to run on N15 or D15.
- A kernel built for D10 is able to run on D10 or D15.
- A kernel built for D15 is able to run on D15.
- A kernel built for N13 is able to run on N15, N13 or D15.
-
-config CPU_N15
- bool "AndesCore N15"
-config CPU_N13
- bool "AndesCore N13"
- select CPU_CACHE_ALIASING if ANDES_PAGE_SIZE_4KB
-config CPU_N10
- bool "AndesCore N10"
- select CPU_CACHE_ALIASING
-config CPU_D15
- bool "AndesCore D15"
-config CPU_D10
- bool "AndesCore D10"
- select CPU_CACHE_ALIASING
-config CPU_V3
- bool "AndesCore v3 compatible"
- select CPU_CACHE_ALIASING
-endchoice
-choice
- prompt "Paging -- page size "
- default ANDES_PAGE_SIZE_4KB
-config ANDES_PAGE_SIZE_4KB
- bool "use 4KB page size"
-config ANDES_PAGE_SIZE_8KB
- bool "use 8KB page size"
-endchoice
-
-config CPU_ICACHE_DISABLE
- bool "Disable I-Cache"
- help
- Say Y here to disable the processor instruction cache. Unless
- you have a reason not to or are unsure, say N.
-
-config CPU_DCACHE_DISABLE
- bool "Disable D-Cache"
- help
- Say Y here to disable the processor data cache. Unless
- you have a reason not to or are unsure, say N.
-
-config CPU_DCACHE_WRITETHROUGH
- bool "Force write through D-cache"
- depends on !CPU_DCACHE_DISABLE
- help
- Say Y here to use the data cache in writethrough mode. Unless you
- specifically require this or are unsure, say N.
-
-config WBNA
- bool "WBNA"
- default n
- help
- Say Y here to enable write-back memory with no-write-allocation policy.
-
-config ALIGNMENT_TRAP
- bool "Kernel support unaligned access handling by sw"
- depends on PROC_FS
- default n
- help
- Andes processors cannot load/store information which is not
- naturally aligned on the bus, i.e., a 4 byte load must start at an
- address divisible by 4. On 32-bit Andes processors, these non-aligned
- load/store instructions will be emulated in software if you say Y
- here, which has a severe performance impact. With an IP-only
- configuration it is safe to say N, otherwise say Y.
-
-config HW_SUPPORT_UNALIGNMENT_ACCESS
- bool "Kernel support unaligned access handling by hw"
- depends on !ALIGNMENT_TRAP
- default n
- help
- Andes processors load/store world/half-word instructions can access
- unaligned memory locations without generating the Data Alignment
- Check exceptions. With an IP-only configuration it is safe to say N,
- otherwise say Y.
-
-config HIGHMEM
- bool "High Memory Support"
- depends on MMU && !CPU_CACHE_ALIASING
- select KMAP_LOCAL
- help
- The address space of Andes processors is only 4 Gigabytes large
- and it has to accommodate user address space, kernel address
- space as well as some memory mapped IO. That means that, if you
- have a large amount of physical memory and/or IO, not all of the
- memory can be "permanently mapped" by the kernel. The physical
- memory that is not permanently mapped is called "high memory".
-
- Depending on the selected kernel/user memory split, minimum
- vmalloc space and actual amount of RAM, you may not need this
- option which should result in a slightly faster kernel.
-
- If unsure, say N.
-
-config CACHE_L2
- bool "Support L2 cache"
- default y
- help
- Say Y here to enable L2 cache if your SoC are integrated with L2CC.
- If unsure, say N.
-
-config HW_PRE
- bool "Enable hardware prefetcher"
- default y
- help
- Say Y here to enable hardware prefetcher feature.
- Only when CPU_VER.REV >= 0x09 can support.
-
-menu "Memory configuration"
-
-choice
- prompt "Memory split"
- depends on MMU
- default VMSPLIT_3G_OPT
- help
- Select the desired split between kernel and user memory.
-
- If you are not absolutely sure what you are doing, leave this
- option alone!
-
- config VMSPLIT_3G
- bool "3G/1G user/kernel split"
- config VMSPLIT_3G_OPT
- bool "3G/1G user/kernel split (for full 1G low memory)"
- config VMSPLIT_2G
- bool "2G/2G user/kernel split"
- config VMSPLIT_1G
- bool "1G/3G user/kernel split"
-endchoice
-
-config PAGE_OFFSET
- hex
- default 0x40000000 if VMSPLIT_1G
- default 0x80000000 if VMSPLIT_2G
- default 0xB0000000 if VMSPLIT_3G_OPT
- default 0xC0000000
-
-endmenu
diff --git a/arch/nds32/Kconfig.debug b/arch/nds32/Kconfig.debug
deleted file mode 100644
index 295942fe3fd5..000000000000
--- a/arch/nds32/Kconfig.debug
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-# dummy file, do not delete
diff --git a/arch/nds32/Makefile b/arch/nds32/Makefile
deleted file mode 100644
index b33d5d81b6ae..000000000000
--- a/arch/nds32/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-LDFLAGS_vmlinux := --no-undefined -X
-OBJCOPYFLAGS := -O binary -R .note -R .note.gnu.build-id -R .comment -S
-
-ifdef CONFIG_FUNCTION_TRACER
-arch-y += -malways-save-lp -mno-relax
-endif
-
-# Avoid generating FPU instructions
-arch-y += -mno-ext-fpu-sp -mno-ext-fpu-dp -mfloat-abi=soft
-
-# Enable <nds32_intrinsic.h>
-KBUILD_CFLAGS += -isystem $(shell $(CC) -print-file-name=include)
-KBUILD_CFLAGS += $(call cc-option, -mno-sched-prolog-epilog)
-KBUILD_CFLAGS += -mcmodel=large
-
-KBUILD_CFLAGS +=$(arch-y) $(tune-y)
-KBUILD_AFLAGS +=$(arch-y) $(tune-y)
-
-#Default value
-head-y := arch/nds32/kernel/head.o
-textaddr-y := $(CONFIG_PAGE_OFFSET)+0xc000
-
-TEXTADDR := $(textaddr-y)
-
-export TEXTADDR
-
-
-# If we have a machine-specific directory, then include it in the build.
-core-y += arch/nds32/kernel/ arch/nds32/mm/
-core-$(CONFIG_FPU) += arch/nds32/math-emu/
-libs-y += arch/nds32/lib/
-
-ifdef CONFIG_CPU_LITTLE_ENDIAN
-KBUILD_CFLAGS += $(call cc-option, -EL)
-KBUILD_AFLAGS += $(call cc-option, -EL)
-KBUILD_LDFLAGS += $(call cc-option, -EL)
-CHECKFLAGS += -D__NDS32_EL__
-else
-KBUILD_CFLAGS += $(call cc-option, -EB)
-KBUILD_AFLAGS += $(call cc-option, -EB)
-KBUILD_LDFLAGS += $(call cc-option, -EB)
-CHECKFLAGS += -D__NDS32_EB__
-endif
-
-boot := arch/nds32/boot
-core-y += $(boot)/dts/
-
-Image: vmlinux
- $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
-
-
-PHONY += vdso_install
-vdso_install:
- $(Q)$(MAKE) $(build)=arch/nds32/kernel/vdso $@
-
-prepare: vdso_prepare
-vdso_prepare: prepare0
- $(Q)$(MAKE) $(build)=arch/nds32/kernel/vdso include/generated/vdso-offsets.h
-
-define archhelp
- echo ' Image - kernel image (arch/$(ARCH)/boot/Image)'
-endef
diff --git a/arch/nds32/boot/.gitignore b/arch/nds32/boot/.gitignore
deleted file mode 100644
index 9182a3a1ea0a..000000000000
--- a/arch/nds32/boot/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-/Image
diff --git a/arch/nds32/boot/Makefile b/arch/nds32/boot/Makefile
deleted file mode 100644
index c4cc0c2689f7..000000000000
--- a/arch/nds32/boot/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-targets := Image Image.gz
-
-$(obj)/Image: vmlinux FORCE
- $(call if_changed,objcopy)
-
-$(obj)/Image.gz: $(obj)/Image FORCE
- $(call if_changed,gzip)
-
-install: $(obj)/Image
- $(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
- $(obj)/Image System.map "$(INSTALL_PATH)"
-
-zinstall: $(obj)/Image.gz
- $(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
- $(obj)/Image.gz System.map "$(INSTALL_PATH)"
diff --git a/arch/nds32/boot/dts/Makefile b/arch/nds32/boot/dts/Makefile
deleted file mode 100644
index 4fc69562eae8..000000000000
--- a/arch/nds32/boot/dts/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-obj-$(CONFIG_OF) += $(addsuffix .dtb.o, $(CONFIG_NDS32_BUILTIN_DTB))
diff --git a/arch/nds32/boot/dts/ae3xx.dts b/arch/nds32/boot/dts/ae3xx.dts
deleted file mode 100644
index 16a9f54a805e..000000000000
--- a/arch/nds32/boot/dts/ae3xx.dts
+++ /dev/null
@@ -1,90 +0,0 @@
-/dts-v1/;
-/ {
- compatible = "andestech,ae3xx";
- #address-cells = <1>;
- #size-cells = <1>;
- interrupt-parent = <&intc>;
-
- chosen {
- stdout-path = &serial0;
- };
-
- memory@0 {
- device_type = "memory";
- reg = <0x00000000 0x40000000>;
- };
-
- cpus {
- #address-cells = <1>;
- #size-cells = <0>;
- cpu@0 {
- device_type = "cpu";
- compatible = "andestech,n13", "andestech,nds32v3";
- reg = <0>;
- clock-frequency = <60000000>;
- next-level-cache = <&L2>;
- };
- };
-
- intc: interrupt-controller {
- compatible = "andestech,ativic32";
- #interrupt-cells = <1>;
- interrupt-controller;
- };
-
- clock: clk {
- #clock-cells = <0>;
- compatible = "fixed-clock";
- clock-frequency = <30000000>;
- };
-
- apb {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
-
- serial0: serial@f0300000 {
- compatible = "andestech,uart16550", "ns16550a";
- reg = <0xf0300000 0x1000>;
- interrupts = <8>;
- clock-frequency = <14745600>;
- reg-shift = <2>;
- reg-offset = <32>;
- no-loopback-test = <1>;
- };
-
- timer0: timer@f0400000 {
- compatible = "andestech,atcpit100";
- reg = <0xf0400000 0x1000>;
- interrupts = <2>;
- clocks = <&clock>;
- clock-names = "PCLK";
- };
- };
-
- ahb {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
-
- L2: cache-controller@e0500000 {
- compatible = "andestech,atl2c";
- reg = <0xe0500000 0x1000>;
- cache-unified;
- cache-level = <2>;
- };
-
- mac0: ethernet@e0100000 {
- compatible = "andestech,atmac100";
- reg = <0xe0100000 0x1000>;
- interrupts = <18>;
- };
- };
-
- pmu {
- compatible = "andestech,nds32v3-pmu";
- interrupts= <13>;
- };
-};
diff --git a/arch/nds32/configs/defconfig b/arch/nds32/configs/defconfig
deleted file mode 100644
index f9a89cf00aa6..000000000000
--- a/arch/nds32/configs/defconfig
+++ /dev/null
@@ -1,104 +0,0 @@
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_USER_NS=y
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_PROFILING=y
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_CACHE_L2 is not set
-CONFIG_PREEMPT=y
-# CONFIG_COMPACTION is not set
-CONFIG_HZ_100=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_DIAG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_BLK_DEV is not set
-CONFIG_NETDEVICES=y
-# CONFIG_NET_CADENCE is not set
-# CONFIG_NET_VENDOR_BROADCOM is not set
-CONFIG_FTMAC100=y
-# CONFIG_NET_VENDOR_INTEL is not set
-# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_NATSEMI is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-# CONFIG_NET_VENDOR_STMICRO is not set
-# CONFIG_NET_VENDOR_WIZNET is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_SERIO is not set
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_SERIAL_8250=y
-# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=3
-CONFIG_SERIAL_8250_RUNTIME_UARTS=3
-CONFIG_SERIAL_OF_PLATFORM=y
-# CONFIG_HW_RANDOM is not set
-# CONFIG_HWMON is not set
-# CONFIG_HID_A4TECH is not set
-# CONFIG_HID_APPLE is not set
-# CONFIG_HID_BELKIN is not set
-# CONFIG_HID_CHERRY is not set
-# CONFIG_HID_CHICONY is not set
-# CONFIG_HID_CYPRESS is not set
-# CONFIG_HID_EZKEY is not set
-# CONFIG_HID_ITE is not set
-# CONFIG_HID_KENSINGTON is not set
-# CONFIG_HID_LOGITECH is not set
-# CONFIG_HID_MICROSOFT is not set
-# CONFIG_HID_MONTEREY is not set
-# CONFIG_USB_SUPPORT is not set
-CONFIG_GENERIC_PHY=y
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-CONFIG_FS_ENCRYPTION=y
-CONFIG_FUSE_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_USE_LEGACY_DNS=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_DEBUG_INFO=y
-CONFIG_DEBUG_INFO_DWARF4=y
-CONFIG_GDB_SCRIPTS=y
-CONFIG_READABLE_ASM=y
-CONFIG_HEADERS_INSTALL=y
-CONFIG_HEADERS_CHECK=y
-CONFIG_DEBUG_SECTION_MISMATCH=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_KERNEL=y
-CONFIG_PANIC_ON_OOPS=y
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_DEBUG_PREEMPT is not set
-CONFIG_STACKTRACE=y
-CONFIG_RCU_CPU_STALL_TIMEOUT=300
-# CONFIG_CRYPTO_HW is not set
diff --git a/arch/nds32/include/asm/Kbuild b/arch/nds32/include/asm/Kbuild
deleted file mode 100644
index 82a4453c9c2d..000000000000
--- a/arch/nds32/include/asm/Kbuild
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-generic-y += asm-offsets.h
-generic-y += cmpxchg.h
-generic-y += export.h
-generic-y += gpio.h
-generic-y += kvm_para.h
-generic-y += parport.h
-generic-y += user.h
diff --git a/arch/nds32/include/asm/assembler.h b/arch/nds32/include/asm/assembler.h
deleted file mode 100644
index 5e7c56926049..000000000000
--- a/arch/nds32/include/asm/assembler.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_ASSEMBLER_H__
-#define __NDS32_ASSEMBLER_H__
-
-.macro gie_disable
- setgie.d
- dsb
-.endm
-
-.macro gie_enable
- setgie.e
- dsb
-.endm
-
-.macro gie_save oldpsw
- mfsr \oldpsw, $ir0
- setgie.d
- dsb
-.endm
-
-.macro gie_restore oldpsw
- andi \oldpsw, \oldpsw, #0x1
- beqz \oldpsw, 7001f
- setgie.e
- dsb
-7001:
-.endm
-
-
-#define USER(insn, reg, addr, opr) \
-9999: insn reg, addr, opr; \
- .section __ex_table,"a"; \
- .align 3; \
- .long 9999b, 9001f; \
- .previous
-
-#endif /* __NDS32_ASSEMBLER_H__ */
diff --git a/arch/nds32/include/asm/barrier.h b/arch/nds32/include/asm/barrier.h
deleted file mode 100644
index 16413172fd50..000000000000
--- a/arch/nds32/include/asm/barrier.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_ASM_BARRIER_H
-#define __NDS32_ASM_BARRIER_H
-
-#ifndef __ASSEMBLY__
-#define mb() asm volatile("msync all":::"memory")
-#define rmb() asm volatile("msync all":::"memory")
-#define wmb() asm volatile("msync store":::"memory")
-#include <asm-generic/barrier.h>
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* __NDS32_ASM_BARRIER_H */
diff --git a/arch/nds32/include/asm/bitfield.h b/arch/nds32/include/asm/bitfield.h
deleted file mode 100644
index b02a58e71f80..000000000000
--- a/arch/nds32/include/asm/bitfield.h
+++ /dev/null
@@ -1,985 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_BITFIELD_H__
-#define __NDS32_BITFIELD_H__
-/******************************************************************************
- * cr0: CPU_VER (CPU Version Register)
- *****************************************************************************/
-#define CPU_VER_offCFGID 0 /* Minor configuration */
-#define CPU_VER_offREV 16 /* Revision of the CPU version */
-#define CPU_VER_offCPUID 24 /* Major CPU versions */
-
-#define CPU_VER_mskCFGID ( 0xFFFF << CPU_VER_offCFGID )
-#define CPU_VER_mskREV ( 0xFF << CPU_VER_offREV )
-#define CPU_VER_mskCPUID ( 0xFF << CPU_VER_offCPUID )
-
-/******************************************************************************
- * cr1: ICM_CFG (Instruction Cache/Memory Configuration Register)
- *****************************************************************************/
-#define ICM_CFG_offISET 0 /* I-cache sets (# of cache lines) per way */
-#define ICM_CFG_offIWAY 3 /* I-cache ways */
-#define ICM_CFG_offISZ 6 /* I-cache line size */
-#define ICM_CFG_offILCK 9 /* I-cache locking support */
-#define ICM_CFG_offILMB 10 /* On-chip ILM banks */
-#define ICM_CFG_offBSAV 13 /* ILM base register alignment version */
-/* bit 15:31 reserved */
-
-#define ICM_CFG_mskISET ( 0x7 << ICM_CFG_offISET )
-#define ICM_CFG_mskIWAY ( 0x7 << ICM_CFG_offIWAY )
-#define ICM_CFG_mskISZ ( 0x7 << ICM_CFG_offISZ )
-#define ICM_CFG_mskILCK ( 0x1 << ICM_CFG_offILCK )
-#define ICM_CFG_mskILMB ( 0x7 << ICM_CFG_offILMB )
-#define ICM_CFG_mskBSAV ( 0x3 << ICM_CFG_offBSAV )
-
-/******************************************************************************
- * cr2: DCM_CFG (Data Cache/Memory Configuration Register)
- *****************************************************************************/
-#define DCM_CFG_offDSET 0 /* D-cache sets (# of cache lines) per way */
-#define DCM_CFG_offDWAY 3 /* D-cache ways */
-#define DCM_CFG_offDSZ 6 /* D-cache line size */
-#define DCM_CFG_offDLCK 9 /* D-cache locking support */
-#define DCM_CFG_offDLMB 10 /* On-chip DLM banks */
-#define DCM_CFG_offBSAV 13 /* DLM base register alignment version */
-/* bit 15:31 reserved */
-
-#define DCM_CFG_mskDSET ( 0x7 << DCM_CFG_offDSET )
-#define DCM_CFG_mskDWAY ( 0x7 << DCM_CFG_offDWAY )
-#define DCM_CFG_mskDSZ ( 0x7 << DCM_CFG_offDSZ )
-#define DCM_CFG_mskDLCK ( 0x1 << DCM_CFG_offDLCK )
-#define DCM_CFG_mskDLMB ( 0x7 << DCM_CFG_offDLMB )
-#define DCM_CFG_mskBSAV ( 0x3 << DCM_CFG_offBSAV )
-
-/******************************************************************************
- * cr3: MMU_CFG (MMU Configuration Register)
- *****************************************************************************/
-#define MMU_CFG_offMMPS 0 /* Memory management protection scheme */
-#define MMU_CFG_offMMPV 2 /* Memory management protection version number */
-#define MMU_CFG_offFATB 7 /* Fully-associative or non-fully-associative TLB */
-
-#define MMU_CFG_offTBW 8 /* TLB ways(non-associative) TBS */
-#define MMU_CFG_offTBS 11 /* TLB sets per way(non-associative) TBS */
-/* bit 14:14 reserved */
-
-#define MMU_CFG_offEP8MIN4 15 /* 8KB page supported while minimum page is 4KB */
-#define MMU_CFG_offfEPSZ 16 /* Extra page size supported */
-#define MMU_CFG_offTLBLCK 24 /* TLB locking support */
-#define MMU_CFG_offHPTWK 25 /* Hardware Page Table Walker implemented */
-#define MMU_CFG_offDE 26 /* Default endian */
-#define MMU_CFG_offNTPT 27 /* Partitions for non-translated attributes */
-#define MMU_CFG_offIVTB 28 /* Invisible TLB */
-#define MMU_CFG_offVLPT 29 /* VLPT for fast TLB fill handling implemented */
-#define MMU_CFG_offNTME 30 /* Non-translated VA to PA mapping */
-/* bit 31 reserved */
-
-#define MMU_CFG_mskMMPS ( 0x3 << MMU_CFG_offMMPS )
-#define MMU_CFG_mskMMPV ( 0x1F << MMU_CFG_offMMPV )
-#define MMU_CFG_mskFATB ( 0x1 << MMU_CFG_offFATB )
-#define MMU_CFG_mskTBW ( 0x7 << MMU_CFG_offTBW )
-#define MMU_CFG_mskTBS ( 0x7 << MMU_CFG_offTBS )
-#define MMU_CFG_mskEP8MIN4 ( 0x1 << MMU_CFG_offEP8MIN4 )
-#define MMU_CFG_mskfEPSZ ( 0xFF << MMU_CFG_offfEPSZ )
-#define MMU_CFG_mskTLBLCK ( 0x1 << MMU_CFG_offTLBLCK )
-#define MMU_CFG_mskHPTWK ( 0x1 << MMU_CFG_offHPTWK )
-#define MMU_CFG_mskDE ( 0x1 << MMU_CFG_offDE )
-#define MMU_CFG_mskNTPT ( 0x1 << MMU_CFG_offNTPT )
-#define MMU_CFG_mskIVTB ( 0x1 << MMU_CFG_offIVTB )
-#define MMU_CFG_mskVLPT ( 0x1 << MMU_CFG_offVLPT )
-#define MMU_CFG_mskNTME ( 0x1 << MMU_CFG_offNTME )
-
-/******************************************************************************
- * cr4: MSC_CFG (Misc Configuration Register)
- *****************************************************************************/
-#define MSC_CFG_offEDM 0
-#define MSC_CFG_offLMDMA 1
-#define MSC_CFG_offPFM 2
-#define MSC_CFG_offHSMP 3
-#define MSC_CFG_offTRACE 4
-#define MSC_CFG_offDIV 5
-#define MSC_CFG_offMAC 6
-#define MSC_CFG_offAUDIO 7
-#define MSC_CFG_offL2C 9
-#define MSC_CFG_offRDREG 10
-#define MSC_CFG_offADR24 11
-#define MSC_CFG_offINTLC 12
-#define MSC_CFG_offBASEV 13
-#define MSC_CFG_offNOD 16
-/* bit 13:31 reserved */
-
-#define MSC_CFG_mskEDM ( 0x1 << MSC_CFG_offEDM )
-#define MSC_CFG_mskLMDMA ( 0x1 << MSC_CFG_offLMDMA )
-#define MSC_CFG_mskPFM ( 0x1 << MSC_CFG_offPFM )
-#define MSC_CFG_mskHSMP ( 0x1 << MSC_CFG_offHSMP )
-#define MSC_CFG_mskTRACE ( 0x1 << MSC_CFG_offTRACE )
-#define MSC_CFG_mskDIV ( 0x1 << MSC_CFG_offDIV )
-#define MSC_CFG_mskMAC ( 0x1 << MSC_CFG_offMAC )
-#define MSC_CFG_mskAUDIO ( 0x3 << MSC_CFG_offAUDIO )
-#define MSC_CFG_mskL2C ( 0x1 << MSC_CFG_offL2C )
-#define MSC_CFG_mskRDREG ( 0x1 << MSC_CFG_offRDREG )
-#define MSC_CFG_mskADR24 ( 0x1 << MSC_CFG_offADR24 )
-#define MSC_CFG_mskINTLC ( 0x1 << MSC_CFG_offINTLC )
-#define MSC_CFG_mskBASEV ( 0x7 << MSC_CFG_offBASEV )
-#define MSC_CFG_mskNOD ( 0x1 << MSC_CFG_offNOD )
-
-/******************************************************************************
- * cr5: CORE_CFG (Core Identification Register)
- *****************************************************************************/
-#define CORE_ID_offCOREID 0
-/* bit 4:31 reserved */
-
-#define CORE_ID_mskCOREID ( 0xF << CORE_ID_offCOREID )
-
-/******************************************************************************
- * cr6: FUCOP_EXIST (FPU and Coprocessor Existence Configuration Register)
- *****************************************************************************/
-#define FUCOP_EXIST_offCP0EX 0
-#define FUCOP_EXIST_offCP1EX 1
-#define FUCOP_EXIST_offCP2EX 2
-#define FUCOP_EXIST_offCP3EX 3
-#define FUCOP_EXIST_offCP0ISFPU 31
-
-#define FUCOP_EXIST_mskCP0EX ( 0x1 << FUCOP_EXIST_offCP0EX )
-#define FUCOP_EXIST_mskCP1EX ( 0x1 << FUCOP_EXIST_offCP1EX )
-#define FUCOP_EXIST_mskCP2EX ( 0x1 << FUCOP_EXIST_offCP2EX )
-#define FUCOP_EXIST_mskCP3EX ( 0x1 << FUCOP_EXIST_offCP3EX )
-#define FUCOP_EXIST_mskCP0ISFPU ( 0x1 << FUCOP_EXIST_offCP0ISFPU )
-
-/******************************************************************************
- * ir0: PSW (Processor Status Word Register)
- * ir1: IPSW (Interruption PSW Register)
- * ir2: P_IPSW (Previous IPSW Register)
- *****************************************************************************/
-#define PSW_offGIE 0 /* Global Interrupt Enable */
-#define PSW_offINTL 1 /* Interruption Stack Level */
-#define PSW_offPOM 3 /* Processor Operation Mode, User/Superuser */
-#define PSW_offBE 5 /* Endianness for data memory access, 1:MSB, 0:LSB */
-#define PSW_offIT 6 /* Enable instruction address translation */
-#define PSW_offDT 7 /* Enable data address translation */
-#define PSW_offIME 8 /* Instruction Machine Error flag */
-#define PSW_offDME 9 /* Data Machine Error flag */
-#define PSW_offDEX 10 /* Debug Exception */
-#define PSW_offHSS 11 /* Hardware Single Stepping */
-#define PSW_offDRBE 12 /* Device Register Endian Mode */
-#define PSW_offAEN 13 /* Audio ISA special feature */
-#define PSW_offWBNA 14 /* Write Back Non-Allocate */
-#define PSW_offIFCON 15 /* IFC On */
-#define PSW_offCPL 16 /* Current Priority Level */
-/* bit 19:31 reserved */
-
-#define PSW_mskGIE ( 0x1 << PSW_offGIE )
-#define PSW_mskINTL ( 0x3 << PSW_offINTL )
-#define PSW_mskPOM ( 0x3 << PSW_offPOM )
-#define PSW_mskBE ( 0x1 << PSW_offBE )
-#define PSW_mskIT ( 0x1 << PSW_offIT )
-#define PSW_mskDT ( 0x1 << PSW_offDT )
-#define PSW_mskIME ( 0x1 << PSW_offIME )
-#define PSW_mskDME ( 0x1 << PSW_offDME )
-#define PSW_mskDEX ( 0x1 << PSW_offDEX )
-#define PSW_mskHSS ( 0x1 << PSW_offHSS )
-#define PSW_mskDRBE ( 0x1 << PSW_offDRBE )
-#define PSW_mskAEN ( 0x1 << PSW_offAEN )
-#define PSW_mskWBNA ( 0x1 << PSW_offWBNA )
-#define PSW_mskIFCON ( 0x1 << PSW_offIFCON )
-#define PSW_mskCPL ( 0x7 << PSW_offCPL )
-
-#define PSW_SYSTEM ( 1 << PSW_offPOM )
-#define PSW_INTL_1 ( 1 << PSW_offINTL )
-#define PSW_CPL_NO ( 0 << PSW_offCPL )
-#define PSW_CPL_ANY ( 7 << PSW_offCPL )
-
-#define PSW_clr (PSW_mskGIE|PSW_mskINTL|PSW_mskPOM|PSW_mskIT|PSW_mskDT|PSW_mskIME|PSW_mskWBNA)
-#ifdef __NDS32_EB__
-#ifdef CONFIG_WBNA
-#define PSW_init (PSW_mskWBNA|(1<<PSW_offINTL)|(1<<PSW_offPOM)|PSW_mskIT|PSW_mskDT|PSW_mskBE)
-#else
-#define PSW_init ((1<<PSW_offINTL)|(1<<PSW_offPOM)|PSW_mskIT|PSW_mskDT|PSW_mskBE)
-#endif
-#else
-#ifdef CONFIG_WBNA
-#define PSW_init (PSW_mskWBNA|(1<<PSW_offINTL)|(1<<PSW_offPOM)|PSW_mskIT|PSW_mskDT)
-#else
-#define PSW_init ((1<<PSW_offINTL)|(1<<PSW_offPOM)|PSW_mskIT|PSW_mskDT)
-#endif
-#endif
-/******************************************************************************
- * ir3: IVB (Interruption Vector Base Register)
- *****************************************************************************/
-/* bit 0:12 reserved */
-#define IVB_offNIVIC 1 /* Number of input for IVIC Controller */
-#define IVB_offIVIC_VER 11 /* IVIC Version */
-#define IVB_offEVIC 13 /* External Vector Interrupt Controller mode */
-#define IVB_offESZ 14 /* Size of each vector entry */
-#define IVB_offIVBASE 16 /* BasePA of interrupt vector table */
-
-#define IVB_mskNIVIC ( 0x7 << IVB_offNIVIC )
-#define IVB_mskIVIC_VER ( 0x3 << IVB_offIVIC_VER )
-#define IVB_mskEVIC ( 0x1 << IVB_offEVIC )
-#define IVB_mskESZ ( 0x3 << IVB_offESZ )
-#define IVB_mskIVBASE ( 0xFFFF << IVB_offIVBASE )
-
-#define IVB_valESZ4 0
-#define IVB_valESZ16 1
-#define IVB_valESZ64 2
-#define IVB_valESZ256 3
-/******************************************************************************
- * ir4: EVA (Exception Virtual Address Register)
- * ir5: P_EVA (Previous EVA Register)
- *****************************************************************************/
-
- /* This register contains the VA that causes the exception */
-
-/******************************************************************************
- * ir6: ITYPE (Interruption Type Register)
- * ir7: P_ITYPE (Previous ITYPE Register)
- *****************************************************************************/
-#define ITYPE_offETYPE 0 /* Exception Type */
-#define ITYPE_offINST 4 /* Exception caused by insn fetch or data access */
-/* bit 5:15 reserved */
-#define ITYPE_offVECTOR 5 /* Vector */
-#define ITYPE_offSWID 16 /* SWID of debugging exception */
-/* bit 31:31 reserved */
-
-#define ITYPE_mskETYPE ( 0xF << ITYPE_offETYPE )
-#define ITYPE_mskINST ( 0x1 << ITYPE_offINST )
-#define ITYPE_mskVECTOR ( 0x7F << ITYPE_offVECTOR )
-#define ITYPE_mskSWID ( 0x7FFF << ITYPE_offSWID )
-
-/* Additional definitions for ITYPE register */
-#define ITYPE_offSTYPE 16 /* Arithmetic Sub Type */
-#define ITYPE_offCPID 20 /* Co-Processor ID which generate the exception */
-
-#define ITYPE_mskSTYPE ( 0xF << ITYPE_offSTYPE )
-#define ITYPE_mskCPID ( 0x3 << ITYPE_offCPID )
-
-/* Additional definitions of ITYPE register for FPU */
-#define FPU_DISABLE_EXCEPTION (0x1 << ITYPE_offSTYPE)
-#define FPU_EXCEPTION (0x2 << ITYPE_offSTYPE)
-#define FPU_CPID 0 /* FPU Co-Processor ID is 0 */
-
-#define NDS32_VECTOR_mskNONEXCEPTION 0x78
-#define NDS32_VECTOR_offEXCEPTION 8
-#define NDS32_VECTOR_offINTERRUPT 9
-
-/* Interrupt vector entry */
-#define ENTRY_RESET_NMI 0
-#define ENTRY_TLB_FILL 1
-#define ENTRY_PTE_NOT_PRESENT 2
-#define ENTRY_TLB_MISC 3
-#define ENTRY_TLB_VLPT_MISS 4
-#define ENTRY_MACHINE_ERROR 5
-#define ENTRY_DEBUG_RELATED 6
-#define ENTRY_GENERAL_EXCPETION 7
-#define ENTRY_SYSCALL 8
-
-/* PTE not present exception definition */
-#define ETYPE_NON_LEAF_PTE_NOT_PRESENT 0
-#define ETYPE_LEAF_PTE_NOT_PRESENT 1
-
-/* General exception ETYPE definition */
-#define ETYPE_ALIGNMENT_CHECK 0
-#define ETYPE_RESERVED_INSTRUCTION 1
-#define ETYPE_TRAP 2
-#define ETYPE_ARITHMETIC 3
-#define ETYPE_PRECISE_BUS_ERROR 4
-#define ETYPE_IMPRECISE_BUS_ERROR 5
-#define ETYPE_COPROCESSOR 6
-#define ETYPE_RESERVED_VALUE 7
-#define ETYPE_NONEXISTENT_MEM_ADDRESS 8
-#define ETYPE_MPZIU_CONTROL 9
-#define ETYPE_NEXT_PRECISE_STACK_OFL 10
-
-/* Kerenl reserves software ID */
-#define SWID_RAISE_INTERRUPT_LEVEL 0x1a /* SWID_RAISE_INTERRUPT_LEVEL is used to
- * raise interrupt level for debug exception
- */
-
-/******************************************************************************
- * ir8: MERR (Machine Error Log Register)
- *****************************************************************************/
-/* bit 0:30 reserved */
-#define MERR_offBUSERR 31 /* Bus error caused by a load insn */
-
-#define MERR_mskBUSERR ( 0x1 << MERR_offBUSERR )
-
-/******************************************************************************
- * ir9: IPC (Interruption Program Counter Register)
- * ir10: P_IPC (Previous IPC Register)
- * ir11: OIPC (Overflow Interruption Program Counter Register)
- *****************************************************************************/
-
- /* This is the shadow stack register of the Program Counter */
-
-/******************************************************************************
- * ir12: P_P0 (Previous P0 Register)
- * ir13: P_P1 (Previous P1 Register)
- *****************************************************************************/
-
- /* These are shadow registers of $p0 and $p1 */
-
-/******************************************************************************
- * ir14: INT_MASK (Interruption Masking Register)
- *****************************************************************************/
-#define INT_MASK_offH0IM 0 /* Hardware Interrupt 0 Mask bit */
-#define INT_MASK_offH1IM 1 /* Hardware Interrupt 1 Mask bit */
-#define INT_MASK_offH2IM 2 /* Hardware Interrupt 2 Mask bit */
-#define INT_MASK_offH3IM 3 /* Hardware Interrupt 3 Mask bit */
-#define INT_MASK_offH4IM 4 /* Hardware Interrupt 4 Mask bit */
-#define INT_MASK_offH5IM 5 /* Hardware Interrupt 5 Mask bit */
-/* bit 6:15 reserved */
-#define INT_MASK_offSIM 16 /* Software Interrupt Mask bit */
-/* bit 17:29 reserved */
-#define INT_MASK_offIDIVZE 30 /* Enable detection for Divide-By-Zero */
-#define INT_MASK_offDSSIM 31 /* Default Single Stepping Interruption Mask */
-
-#define INT_MASK_mskH0IM ( 0x1 << INT_MASK_offH0IM )
-#define INT_MASK_mskH1IM ( 0x1 << INT_MASK_offH1IM )
-#define INT_MASK_mskH2IM ( 0x1 << INT_MASK_offH2IM )
-#define INT_MASK_mskH3IM ( 0x1 << INT_MASK_offH3IM )
-#define INT_MASK_mskH4IM ( 0x1 << INT_MASK_offH4IM )
-#define INT_MASK_mskH5IM ( 0x1 << INT_MASK_offH5IM )
-#define INT_MASK_mskSIM ( 0x1 << INT_MASK_offSIM )
-#define INT_MASK_mskIDIVZE ( 0x1 << INT_MASK_offIDIVZE )
-#define INT_MASK_mskDSSIM ( 0x1 << INT_MASK_offDSSIM )
-
-#define INT_MASK_INITAIAL_VAL (INT_MASK_mskDSSIM|INT_MASK_mskIDIVZE)
-
-/******************************************************************************
- * ir15: INT_PEND (Interrupt Pending Register)
- *****************************************************************************/
-#define INT_PEND_offH0I 0 /* Hardware Interrupt 0 pending bit */
-#define INT_PEND_offH1I 1 /* Hardware Interrupt 1 pending bit */
-#define INT_PEND_offH2I 2 /* Hardware Interrupt 2 pending bit */
-#define INT_PEND_offH3I 3 /* Hardware Interrupt 3 pending bit */
-#define INT_PEND_offH4I 4 /* Hardware Interrupt 4 pending bit */
-#define INT_PEND_offH5I 5 /* Hardware Interrupt 5 pending bit */
-
-#define INT_PEND_offCIPL 0 /* Current Interrupt Priority Level */
-
-/* bit 6:15 reserved */
-#define INT_PEND_offSWI 16 /* Software Interrupt pending bit */
-/* bit 17:31 reserved */
-
-#define INT_PEND_mskH0I ( 0x1 << INT_PEND_offH0I )
-#define INT_PEND_mskH1I ( 0x1 << INT_PEND_offH1I )
-#define INT_PEND_mskH2I ( 0x1 << INT_PEND_offH2I )
-#define INT_PEND_mskH3I ( 0x1 << INT_PEND_offH3I )
-#define INT_PEND_mskH4I ( 0x1 << INT_PEND_offH4I )
-#define INT_PEND_mskH5I ( 0x1 << INT_PEND_offH5I )
-#define INT_PEND_mskCIPL ( 0x1 << INT_PEND_offCIPL )
-#define INT_PEND_mskSWI ( 0x1 << INT_PEND_offSWI )
-
-/******************************************************************************
- * mr0: MMU_CTL (MMU Control Register)
- *****************************************************************************/
-#define MMU_CTL_offD 0 /* Default minimum page size */
-#define MMU_CTL_offNTC0 1 /* Non-Translated Cachebility of partition 0 */
-#define MMU_CTL_offNTC1 3 /* Non-Translated Cachebility of partition 1 */
-#define MMU_CTL_offNTC2 5 /* Non-Translated Cachebility of partition 2 */
-#define MMU_CTL_offNTC3 7 /* Non-Translated Cachebility of partition 3 */
-#define MMU_CTL_offTBALCK 9 /* TLB all-lock resolution scheme */
-#define MMU_CTL_offMPZIU 10 /* Multiple Page Size In Use bit */
-#define MMU_CTL_offNTM0 11 /* Non-Translated VA to PA of partition 0 */
-#define MMU_CTL_offNTM1 13 /* Non-Translated VA to PA of partition 1 */
-#define MMU_CTL_offNTM2 15 /* Non-Translated VA to PA of partition 2 */
-#define MMU_CTL_offNTM3 17 /* Non-Translated VA to PA of partition 3 */
-#define MMU_CTL_offUNA 23 /* Unaligned access */
-/* bit 24:31 reserved */
-
-#define MMU_CTL_mskD ( 0x1 << MMU_CTL_offD )
-#define MMU_CTL_mskNTC0 ( 0x3 << MMU_CTL_offNTC0 )
-#define MMU_CTL_mskNTC1 ( 0x3 << MMU_CTL_offNTC1 )
-#define MMU_CTL_mskNTC2 ( 0x3 << MMU_CTL_offNTC2 )
-#define MMU_CTL_mskNTC3 ( 0x3 << MMU_CTL_offNTC3 )
-#define MMU_CTL_mskTBALCK ( 0x1 << MMU_CTL_offTBALCK )
-#define MMU_CTL_mskMPZIU ( 0x1 << MMU_CTL_offMPZIU )
-#define MMU_CTL_mskNTM0 ( 0x3 << MMU_CTL_offNTM0 )
-#define MMU_CTL_mskNTM1 ( 0x3 << MMU_CTL_offNTM1 )
-#define MMU_CTL_mskNTM2 ( 0x3 << MMU_CTL_offNTM2 )
-#define MMU_CTL_mskNTM3 ( 0x3 << MMU_CTL_offNTM3 )
-
-#define MMU_CTL_D4KB 0
-#define MMU_CTL_D8KB 1
-#define MMU_CTL_UNA ( 0x1 << MMU_CTL_offUNA )
-
-#define MMU_CTL_CACHEABLE_NON 0
-#define MMU_CTL_CACHEABLE_WB 2
-#define MMU_CTL_CACHEABLE_WT 3
-
-/******************************************************************************
- * mr1: L1_PPTB (L1 Physical Page Table Base Register)
- *****************************************************************************/
-#define L1_PPTB_offNV 0 /* Enable Hardware Page Table Walker (HPTWK) */
-/* bit 1:11 reserved */
-#define L1_PPTB_offBASE 12 /* First level physical page table base address */
-
-#define L1_PPTB_mskNV ( 0x1 << L1_PPTB_offNV )
-#define L1_PPTB_mskBASE ( 0xFFFFF << L1_PPTB_offBASE )
-
-/******************************************************************************
- * mr2: TLB_VPN (TLB Access VPN Register)
- *****************************************************************************/
-/* bit 0:11 reserved */
-#define TLB_VPN_offVPN 12 /* Virtual Page Number */
-
-#define TLB_VPN_mskVPN ( 0xFFFFF << TLB_VPN_offVPN )
-
-/******************************************************************************
- * mr3: TLB_DATA (TLB Access Data Register)
- *****************************************************************************/
-#define TLB_DATA_offV 0 /* PTE is valid and present */
-#define TLB_DATA_offM 1 /* Page read/write access privilege */
-#define TLB_DATA_offD 4 /* Dirty bit */
-#define TLB_DATA_offX 5 /* Executable bit */
-#define TLB_DATA_offA 6 /* Access bit */
-#define TLB_DATA_offG 7 /* Global page (shared across contexts) */
-#define TLB_DATA_offC 8 /* Cacheability atribute */
-/* bit 11:11 reserved */
-#define TLB_DATA_offPPN 12 /* Phisical Page Number */
-
-#define TLB_DATA_mskV ( 0x1 << TLB_DATA_offV )
-#define TLB_DATA_mskM ( 0x7 << TLB_DATA_offM )
-#define TLB_DATA_mskD ( 0x1 << TLB_DATA_offD )
-#define TLB_DATA_mskX ( 0x1 << TLB_DATA_offX )
-#define TLB_DATA_mskA ( 0x1 << TLB_DATA_offA )
-#define TLB_DATA_mskG ( 0x1 << TLB_DATA_offG )
-#define TLB_DATA_mskC ( 0x7 << TLB_DATA_offC )
-#define TLB_DATA_mskPPN ( 0xFFFFF << TLB_DATA_offPPN )
-
-#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
-#define TLB_DATA_kernel_text_attr (TLB_DATA_mskV|TLB_DATA_mskM|TLB_DATA_mskD|TLB_DATA_mskX|TLB_DATA_mskG|TLB_DATA_mskC)
-#else
-#define TLB_DATA_kernel_text_attr (TLB_DATA_mskV|TLB_DATA_mskM|TLB_DATA_mskD|TLB_DATA_mskX|TLB_DATA_mskG|(0x6 << TLB_DATA_offC))
-#endif
-
-/******************************************************************************
- * mr4: TLB_MISC (TLB Access Misc Register)
- *****************************************************************************/
-#define TLB_MISC_offACC_PSZ 0 /* Page size of a PTE entry */
-#define TLB_MISC_offCID 4 /* Context id */
-/* bit 13:31 reserved */
-
-#define TLB_MISC_mskACC_PSZ ( 0xF << TLB_MISC_offACC_PSZ )
-#define TLB_MISC_mskCID ( 0x1FF << TLB_MISC_offCID )
-
-/******************************************************************************
- * mr5: VLPT_IDX (Virtual Linear Page Table Index Register)
- *****************************************************************************/
-#define VLPT_IDX_offZERO 0 /* Always 0 */
-#define VLPT_IDX_offEVPN 2 /* Exception Virtual Page Number */
-#define VLPT_IDX_offVLPTB 22 /* Base VA of VLPT */
-
-#define VLPT_IDX_mskZERO ( 0x3 << VLPT_IDX_offZERO )
-#define VLPT_IDX_mskEVPN ( 0xFFFFF << VLPT_IDX_offEVPN )
-#define VLPT_IDX_mskVLPTB ( 0x3FF << VLPT_IDX_offVLPTB )
-
-/******************************************************************************
- * mr6: ILMB (Instruction Local Memory Base Register)
- *****************************************************************************/
-#define ILMB_offIEN 0 /* Enable ILM */
-#define ILMB_offILMSZ 1 /* Size of ILM */
-/* bit 5:19 reserved */
-#define ILMB_offIBPA 20 /* Base PA of ILM */
-
-#define ILMB_mskIEN ( 0x1 << ILMB_offIEN )
-#define ILMB_mskILMSZ ( 0xF << ILMB_offILMSZ )
-#define ILMB_mskIBPA ( 0xFFF << ILMB_offIBPA )
-
-/******************************************************************************
- * mr7: DLMB (Data Local Memory Base Register)
- *****************************************************************************/
-#define DLMB_offDEN 0 /* Enable DLM */
-#define DLMB_offDLMSZ 1 /* Size of DLM */
-#define DLMB_offDBM 5 /* Enable Double-Buffer Mode for DLM */
-#define DLMB_offDBB 6 /* Double-buffer bank which can be accessed by the processor */
-/* bit 7:19 reserved */
-#define DLMB_offDBPA 20 /* Base PA of DLM */
-
-#define DLMB_mskDEN ( 0x1 << DLMB_offDEN )
-#define DLMB_mskDLMSZ ( 0xF << DLMB_offDLMSZ )
-#define DLMB_mskDBM ( 0x1 << DLMB_offDBM )
-#define DLMB_mskDBB ( 0x1 << DLMB_offDBB )
-#define DLMB_mskDBPA ( 0xFFF << DLMB_offDBPA )
-
-/******************************************************************************
- * mr8: CACHE_CTL (Cache Control Register)
- *****************************************************************************/
-#define CACHE_CTL_offIC_EN 0 /* Enable I-cache */
-#define CACHE_CTL_offDC_EN 1 /* Enable D-cache */
-#define CACHE_CTL_offICALCK 2 /* I-cache all-lock resolution scheme */
-#define CACHE_CTL_offDCALCK 3 /* D-cache all-lock resolution scheme */
-#define CACHE_CTL_offDCCWF 4 /* Enable D-cache Critical Word Forwarding */
-#define CACHE_CTL_offDCPMW 5 /* Enable D-cache concurrent miss and write-back processing */
-/* bit 6:31 reserved */
-
-#define CACHE_CTL_mskIC_EN ( 0x1 << CACHE_CTL_offIC_EN )
-#define CACHE_CTL_mskDC_EN ( 0x1 << CACHE_CTL_offDC_EN )
-#define CACHE_CTL_mskICALCK ( 0x1 << CACHE_CTL_offICALCK )
-#define CACHE_CTL_mskDCALCK ( 0x1 << CACHE_CTL_offDCALCK )
-#define CACHE_CTL_mskDCCWF ( 0x1 << CACHE_CTL_offDCCWF )
-#define CACHE_CTL_mskDCPMW ( 0x1 << CACHE_CTL_offDCPMW )
-
-/******************************************************************************
- * mr9: HSMP_SADDR (High Speed Memory Port Starting Address)
- *****************************************************************************/
-#define HSMP_SADDR_offEN 0 /* Enable control bit for the High Speed Memory port */
-/* bit 1:19 reserved */
-
-#define HSMP_SADDR_offRANGE 1 /* Denote the address range (only defined in HSMP v2 ) */
-#define HSMP_SADDR_offSADDR 20 /* Starting base PA of the High Speed Memory Port region */
-
-#define HSMP_SADDR_mskEN ( 0x1 << HSMP_SADDR_offEN )
-#define HSMP_SADDR_mskRANGE ( 0xFFF << HSMP_SADDR_offRANGE )
-#define HSMP_SADDR_mskSADDR ( 0xFFF << HSMP_SADDR_offSADDR )
-
-/******************************************************************************
- * mr10: HSMP_EADDR (High Speed Memory Port Ending Address)
- *****************************************************************************/
-/* bit 0:19 reserved */
-#define HSMP_EADDR_offEADDR 20
-
-#define HSMP_EADDR_mskEADDR ( 0xFFF << HSMP_EADDR_offEADDR )
-
-/******************************************************************************
- * dr0+(n*5): BPCn (n=0-7) (Breakpoint Control Register)
- *****************************************************************************/
-#define BPC_offWP 0 /* Configuration of BPAn */
-#define BPC_offEL 1 /* Enable BPAn */
-#define BPC_offS 2 /* Data address comparison for a store instruction */
-#define BPC_offP 3 /* Compared data address is PA */
-#define BPC_offC 4 /* CID value is compared with the BPCIDn register */
-#define BPC_offBE0 5 /* Enable byte mask for the comparison with register */
-#define BPC_offBE1 6 /* Enable byte mask for the comparison with register */
-#define BPC_offBE2 7 /* Enable byte mask for the comparison with register */
-#define BPC_offBE3 8 /* Enable byte mask for the comparison with register */
-#define BPC_offT 9 /* Enable breakpoint Embedded Tracer triggering operation */
-
-#define BPC_mskWP ( 0x1 << BPC_offWP )
-#define BPC_mskEL ( 0x1 << BPC_offEL )
-#define BPC_mskS ( 0x1 << BPC_offS )
-#define BPC_mskP ( 0x1 << BPC_offP )
-#define BPC_mskC ( 0x1 << BPC_offC )
-#define BPC_mskBE0 ( 0x1 << BPC_offBE0 )
-#define BPC_mskBE1 ( 0x1 << BPC_offBE1 )
-#define BPC_mskBE2 ( 0x1 << BPC_offBE2 )
-#define BPC_mskBE3 ( 0x1 << BPC_offBE3 )
-#define BPC_mskT ( 0x1 << BPC_offT )
-
-/******************************************************************************
- * dr1+(n*5): BPAn (n=0-7) (Breakpoint Address Register)
- *****************************************************************************/
-
- /* These registers contain break point address */
-
-/******************************************************************************
- * dr2+(n*5): BPAMn (n=0-7) (Breakpoint Address Mask Register)
- *****************************************************************************/
-
- /* These registerd contain the address comparison mask for the BPAn register */
-
-/******************************************************************************
- * dr3+(n*5): BPVn (n=0-7) Breakpoint Data Value Register
- *****************************************************************************/
-
- /* The BPVn register contains the data value that will be compared with the
- * incoming load/store data value */
-
-/******************************************************************************
- * dr4+(n*5): BPCIDn (n=0-7) (Breakpoint Context ID Register)
- *****************************************************************************/
-#define BPCID_offCID 0 /* CID that will be compared with a process's CID */
-/* bit 9:31 reserved */
-
-#define BPCID_mskCID ( 0x1FF << BPCID_offCID )
-
-/******************************************************************************
- * dr40: EDM_CFG (EDM Configuration Register)
- *****************************************************************************/
-#define EDM_CFG_offBC 0 /* Number of hardware breakpoint sets implemented */
-#define EDM_CFG_offDIMU 3 /* Debug Instruction Memory Unit exists */
-/* bit 4:15 reserved */
-#define EDM_CFG_offVER 16 /* EDM version */
-
-#define EDM_CFG_mskBC ( 0x7 << EDM_CFG_offBC )
-#define EDM_CFG_mskDIMU ( 0x1 << EDM_CFG_offDIMU )
-#define EDM_CFG_mskVER ( 0xFFFF << EDM_CFG_offVER )
-
-/******************************************************************************
- * dr41: EDMSW (EDM Status Word)
- *****************************************************************************/
-#define EDMSW_offWV 0 /* Write Valid */
-#define EDMSW_offRV 1 /* Read Valid */
-#define EDMSW_offDE 2 /* Debug exception has occurred for this core */
-/* bit 3:31 reserved */
-
-#define EDMSW_mskWV ( 0x1 << EDMSW_offWV )
-#define EDMSW_mskRV ( 0x1 << EDMSW_offRV )
-#define EDMSW_mskDE ( 0x1 << EDMSW_offDE )
-
-/******************************************************************************
- * dr42: EDM_CTL (EDM Control Register)
- *****************************************************************************/
-/* bit 0:30 reserved */
-#define EDM_CTL_offV3_EDM_MODE 6 /* EDM compatibility control bit */
-#define EDM_CTL_offDEH_SEL 31 /* Controls where debug exception is directed to */
-
-#define EDM_CTL_mskV3_EDM_MODE ( 0x1 << EDM_CTL_offV3_EDM_MODE )
-#define EDM_CTL_mskDEH_SEL ( 0x1 << EDM_CTL_offDEH_SEL )
-
-/******************************************************************************
- * dr43: EDM_DTR (EDM Data Transfer Register)
- *****************************************************************************/
-
- /* This is used to exchange data between the embedded EDM logic
- * and the processor core */
-
-/******************************************************************************
- * dr44: BPMTC (Breakpoint Match Trigger Counter Register)
- *****************************************************************************/
-#define BPMTC_offBPMTC 0 /* Breakpoint match trigger counter value */
-/* bit 16:31 reserved */
-
-#define BPMTC_mskBPMTC ( 0xFFFF << BPMTC_offBPMTC )
-
-/******************************************************************************
- * dr45: DIMBR (Debug Instruction Memory Base Register)
- *****************************************************************************/
-/* bit 0:11 reserved */
-#define DIMBR_offDIMB 12 /* Base address of the Debug Instruction Memory (DIM) */
-#define DIMBR_mskDIMB ( 0xFFFFF << DIMBR_offDIMB )
-
-/******************************************************************************
- * dr46: TECR0(Trigger Event Control register 0)
- * dr47: TECR1 (Trigger Event Control register 1)
- *****************************************************************************/
-#define TECR_offBP 0 /* Controld which BP is used as a trigger source */
-#define TECR_offNMI 8 /* Use NMI as a trigger source */
-#define TECR_offHWINT 9 /* Corresponding interrupt is used as a trigger source */
-#define TECR_offEVIC 15 /* Enable HWINT as a trigger source in EVIC mode */
-#define TECR_offSYS 16 /* Enable SYSCALL instruction as a trigger source */
-#define TECR_offDBG 17 /* Enable debug exception as a trigger source */
-#define TECR_offMRE 18 /* Enable MMU related exception as a trigger source */
-#define TECR_offE 19 /* An exception is used as a trigger source */
-/* bit 20:30 reserved */
-#define TECR_offL 31 /* Link/Cascade TECR0 trigger event to TECR1 trigger event */
-
-#define TECR_mskBP ( 0xFF << TECR_offBP )
-#define TECR_mskNMI ( 0x1 << TECR_offBNMI )
-#define TECR_mskHWINT ( 0x3F << TECR_offBHWINT )
-#define TECR_mskEVIC ( 0x1 << TECR_offBEVIC )
-#define TECR_mskSYS ( 0x1 << TECR_offBSYS )
-#define TECR_mskDBG ( 0x1 << TECR_offBDBG )
-#define TECR_mskMRE ( 0x1 << TECR_offBMRE )
-#define TECR_mskE ( 0x1 << TECR_offE )
-#define TECR_mskL ( 0x1 << TECR_offL )
-
-/******************************************************************************
- * pfr0-2: PFMC0-2 (Performance Counter Register 0-2)
- *****************************************************************************/
-
- /* These registers contains performance event count */
-
-/******************************************************************************
- * pfr3: PFM_CTL (Performance Counter Control Register)
- *****************************************************************************/
-#define PFM_CTL_offEN0 0 /* Enable PFMC0 */
-#define PFM_CTL_offEN1 1 /* Enable PFMC1 */
-#define PFM_CTL_offEN2 2 /* Enable PFMC2 */
-#define PFM_CTL_offIE0 3 /* Enable interrupt for PFMC0 */
-#define PFM_CTL_offIE1 4 /* Enable interrupt for PFMC1 */
-#define PFM_CTL_offIE2 5 /* Enable interrupt for PFMC2 */
-#define PFM_CTL_offOVF0 6 /* Overflow bit of PFMC0 */
-#define PFM_CTL_offOVF1 7 /* Overflow bit of PFMC1 */
-#define PFM_CTL_offOVF2 8 /* Overflow bit of PFMC2 */
-#define PFM_CTL_offKS0 9 /* Enable superuser mode event counting for PFMC0 */
-#define PFM_CTL_offKS1 10 /* Enable superuser mode event counting for PFMC1 */
-#define PFM_CTL_offKS2 11 /* Enable superuser mode event counting for PFMC2 */
-#define PFM_CTL_offKU0 12 /* Enable user mode event counting for PFMC0 */
-#define PFM_CTL_offKU1 13 /* Enable user mode event counting for PFMC1 */
-#define PFM_CTL_offKU2 14 /* Enable user mode event counting for PFMC2 */
-#define PFM_CTL_offSEL0 15 /* The event selection for PFMC0 */
-#define PFM_CTL_offSEL1 16 /* The event selection for PFMC1 */
-#define PFM_CTL_offSEL2 22 /* The event selection for PFMC2 */
-/* bit 28:31 reserved */
-
-#define PFM_CTL_mskEN0 ( 0x01 << PFM_CTL_offEN0 )
-#define PFM_CTL_mskEN1 ( 0x01 << PFM_CTL_offEN1 )
-#define PFM_CTL_mskEN2 ( 0x01 << PFM_CTL_offEN2 )
-#define PFM_CTL_mskIE0 ( 0x01 << PFM_CTL_offIE0 )
-#define PFM_CTL_mskIE1 ( 0x01 << PFM_CTL_offIE1 )
-#define PFM_CTL_mskIE2 ( 0x01 << PFM_CTL_offIE2 )
-#define PFM_CTL_mskOVF0 ( 0x01 << PFM_CTL_offOVF0 )
-#define PFM_CTL_mskOVF1 ( 0x01 << PFM_CTL_offOVF1 )
-#define PFM_CTL_mskOVF2 ( 0x01 << PFM_CTL_offOVF2 )
-#define PFM_CTL_mskKS0 ( 0x01 << PFM_CTL_offKS0 )
-#define PFM_CTL_mskKS1 ( 0x01 << PFM_CTL_offKS1 )
-#define PFM_CTL_mskKS2 ( 0x01 << PFM_CTL_offKS2 )
-#define PFM_CTL_mskKU0 ( 0x01 << PFM_CTL_offKU0 )
-#define PFM_CTL_mskKU1 ( 0x01 << PFM_CTL_offKU1 )
-#define PFM_CTL_mskKU2 ( 0x01 << PFM_CTL_offKU2 )
-#define PFM_CTL_mskSEL0 ( 0x01 << PFM_CTL_offSEL0 )
-#define PFM_CTL_mskSEL1 ( 0x3F << PFM_CTL_offSEL1 )
-#define PFM_CTL_mskSEL2 ( 0x3F << PFM_CTL_offSEL2 )
-
-/******************************************************************************
- * SDZ_CTL (Structure Downsizing Control Register)
- *****************************************************************************/
-#define SDZ_CTL_offICDZ 0 /* I-cache downsizing control */
-#define SDZ_CTL_offDCDZ 3 /* D-cache downsizing control */
-#define SDZ_CTL_offMTBDZ 6 /* MTLB downsizing control */
-#define SDZ_CTL_offBTBDZ 9 /* Branch Target Table downsizing control */
-/* bit 12:31 reserved */
-#define SDZ_CTL_mskICDZ ( 0x07 << SDZ_CTL_offICDZ )
-#define SDZ_CTL_mskDCDZ ( 0x07 << SDZ_CTL_offDCDZ )
-#define SDZ_CTL_mskMTBDZ ( 0x07 << SDZ_CTL_offMTBDZ )
-#define SDZ_CTL_mskBTBDZ ( 0x07 << SDZ_CTL_offBTBDZ )
-
-/******************************************************************************
- * N13MISC_CTL (N13 Miscellaneous Control Register)
- *****************************************************************************/
-#define N13MISC_CTL_offBTB 0 /* Disable Branch Target Buffer */
-#define N13MISC_CTL_offRTP 1 /* Disable Return Target Predictor */
-#define N13MISC_CTL_offPTEPF 2 /* Disable HPTWK L2 PTE pefetch */
-#define N13MISC_CTL_offSP_SHADOW_EN 4 /* Enable shadow stack pointers */
-#define MISC_CTL_offHWPRE 11 /* Enable HardWare PREFETCH */
-/* bit 6, 9:31 reserved */
-
-#define N13MISC_CTL_makBTB ( 0x1 << N13MISC_CTL_offBTB )
-#define N13MISC_CTL_makRTP ( 0x1 << N13MISC_CTL_offRTP )
-#define N13MISC_CTL_makPTEPF ( 0x1 << N13MISC_CTL_offPTEPF )
-#define N13MISC_CTL_makSP_SHADOW_EN ( 0x1 << N13MISC_CTL_offSP_SHADOW_EN )
-#define MISC_CTL_makHWPRE_EN ( 0x1 << MISC_CTL_offHWPRE )
-
-#ifdef CONFIG_HW_PRE
-#define MISC_init (N13MISC_CTL_makBTB|N13MISC_CTL_makRTP|N13MISC_CTL_makSP_SHADOW_EN|MISC_CTL_makHWPRE_EN)
-#else
-#define MISC_init (N13MISC_CTL_makBTB|N13MISC_CTL_makRTP|N13MISC_CTL_makSP_SHADOW_EN)
-#endif
-
-/******************************************************************************
- * PRUSR_ACC_CTL (Privileged Resource User Access Control Registers)
- *****************************************************************************/
-#define PRUSR_ACC_CTL_offDMA_EN 0 /* Allow user mode access of DMA registers */
-#define PRUSR_ACC_CTL_offPFM_EN 1 /* Allow user mode access of PFM registers */
-
-#define PRUSR_ACC_CTL_mskDMA_EN ( 0x1 << PRUSR_ACC_CTL_offDMA_EN )
-#define PRUSR_ACC_CTL_mskPFM_EN ( 0x1 << PRUSR_ACC_CTL_offPFM_EN )
-
-/******************************************************************************
- * dmar0: DMA_CFG (DMA Configuration Register)
- *****************************************************************************/
-#define DMA_CFG_offNCHN 0 /* The number of DMA channels implemented */
-#define DMA_CFG_offUNEA 2 /* Un-aligned External Address transfer feature */
-#define DMA_CFG_off2DET 3 /* 2-D Element Transfer feature */
-/* bit 4:15 reserved */
-#define DMA_CFG_offVER 16 /* DMA architecture and implementation version */
-
-#define DMA_CFG_mskNCHN ( 0x3 << DMA_CFG_offNCHN )
-#define DMA_CFG_mskUNEA ( 0x1 << DMA_CFG_offUNEA )
-#define DMA_CFG_msk2DET ( 0x1 << DMA_CFG_off2DET )
-#define DMA_CFG_mskVER ( 0xFFFF << DMA_CFG_offVER )
-
-/******************************************************************************
- * dmar1: DMA_GCSW (DMA Global Control and Status Word Register)
- *****************************************************************************/
-#define DMA_GCSW_offC0STAT 0 /* DMA channel 0 state */
-#define DMA_GCSW_offC1STAT 3 /* DMA channel 1 state */
-/* bit 6:11 reserved */
-#define DMA_GCSW_offC0INT 12 /* DMA channel 0 generate interrupt */
-#define DMA_GCSW_offC1INT 13 /* DMA channel 1 generate interrupt */
-/* bit 14:30 reserved */
-#define DMA_GCSW_offEN 31 /* Enable DMA engine */
-
-#define DMA_GCSW_mskC0STAT ( 0x7 << DMA_GCSW_offC0STAT )
-#define DMA_GCSW_mskC1STAT ( 0x7 << DMA_GCSW_offC1STAT )
-#define DMA_GCSW_mskC0INT ( 0x1 << DMA_GCSW_offC0INT )
-#define DMA_GCSW_mskC1INT ( 0x1 << DMA_GCSW_offC1INT )
-#define DMA_GCSW_mskEN ( 0x1 << DMA_GCSW_offEN )
-
-/******************************************************************************
- * dmar2: DMA_CHNSEL (DMA Channel Selection Register)
- *****************************************************************************/
-#define DMA_CHNSEL_offCHAN 0 /* Selected channel number */
-/* bit 2:31 reserved */
-
-#define DMA_CHNSEL_mskCHAN ( 0x3 << DMA_CHNSEL_offCHAN )
-
-/******************************************************************************
- * dmar3: DMA_ACT (DMA Action Register)
- *****************************************************************************/
-#define DMA_ACT_offACMD 0 /* DMA Action Command */
-/* bit 2:31 reserved */
-#define DMA_ACT_mskACMD ( 0x3 << DMA_ACT_offACMD )
-
-/******************************************************************************
- * dmar4: DMA_SETUP (DMA Setup Register)
- *****************************************************************************/
-#define DMA_SETUP_offLM 0 /* Local Memory Selection */
-#define DMA_SETUP_offTDIR 1 /* Transfer Direction */
-#define DMA_SETUP_offTES 2 /* Transfer Element Size */
-#define DMA_SETUP_offESTR 4 /* External memory transfer Stride */
-#define DMA_SETUP_offCIE 16 /* Interrupt Enable on Completion */
-#define DMA_SETUP_offSIE 17 /* Interrupt Enable on explicit Stop */
-#define DMA_SETUP_offEIE 18 /* Interrupt Enable on Error */
-#define DMA_SETUP_offUE 19 /* Enable the Un-aligned External Address */
-#define DMA_SETUP_off2DE 20 /* Enable the 2-D External Transfer */
-#define DMA_SETUP_offCOA 21 /* Transfer Coalescable */
-/* bit 22:31 reserved */
-
-#define DMA_SETUP_mskLM ( 0x1 << DMA_SETUP_offLM )
-#define DMA_SETUP_mskTDIR ( 0x1 << DMA_SETUP_offTDIR )
-#define DMA_SETUP_mskTES ( 0x3 << DMA_SETUP_offTES )
-#define DMA_SETUP_mskESTR ( 0xFFF << DMA_SETUP_offESTR )
-#define DMA_SETUP_mskCIE ( 0x1 << DMA_SETUP_offCIE )
-#define DMA_SETUP_mskSIE ( 0x1 << DMA_SETUP_offSIE )
-#define DMA_SETUP_mskEIE ( 0x1 << DMA_SETUP_offEIE )
-#define DMA_SETUP_mskUE ( 0x1 << DMA_SETUP_offUE )
-#define DMA_SETUP_msk2DE ( 0x1 << DMA_SETUP_off2DE )
-#define DMA_SETUP_mskCOA ( 0x1 << DMA_SETUP_offCOA )
-
-/******************************************************************************
- * dmar5: DMA_ISADDR (DMA Internal Start Address Register)
- *****************************************************************************/
-#define DMA_ISADDR_offISADDR 0 /* Internal Start Address */
-/* bit 20:31 reserved */
-#define DMA_ISADDR_mskISADDR ( 0xFFFFF << DMA_ISADDR_offISADDR )
-
-/******************************************************************************
- * dmar6: DMA_ESADDR (DMA External Start Address Register)
- *****************************************************************************/
-/* This register holds External Start Address */
-
-/******************************************************************************
- * dmar7: DMA_TCNT (DMA Transfer Element Count Register)
- *****************************************************************************/
-#define DMA_TCNT_offTCNT 0 /* DMA transfer element count */
-/* bit 18:31 reserved */
-#define DMA_TCNT_mskTCNT ( 0x3FFFF << DMA_TCNT_offTCNT )
-
-/******************************************************************************
- * dmar8: DMA_STATUS (DMA Status Register)
- *****************************************************************************/
-#define DMA_STATUS_offSTAT 0 /* DMA channel state */
-#define DMA_STATUS_offSTUNA 3 /* Un-aligned error on External Stride value */
-#define DMA_STATUS_offDERR 4 /* DMA Transfer Disruption Error */
-#define DMA_STATUS_offEUNA 5 /* Un-aligned error on the External address */
-#define DMA_STATUS_offIUNA 6 /* Un-aligned error on the Internal address */
-#define DMA_STATUS_offIOOR 7 /* Out-Of-Range error on the Internal address */
-#define DMA_STATUS_offEBUS 8 /* Bus Error on an External DMA transfer */
-#define DMA_STATUS_offESUP 9 /* DMA setup error */
-/* bit 10:31 reserved */
-
-#define DMA_STATUS_mskSTAT ( 0x7 << DMA_STATUS_offSTAT )
-#define DMA_STATUS_mskSTUNA ( 0x1 << DMDMA_STATUS_offSTUNA )
-#define DMA_STATUS_mskDERR ( 0x1 << DMDMA_STATUS_offDERR )
-#define DMA_STATUS_mskEUNA ( 0x1 << DMDMA_STATUS_offEUNA )
-#define DMA_STATUS_mskIUNA ( 0x1 << DMDMA_STATUS_offIUNA )
-#define DMA_STATUS_mskIOOR ( 0x1 << DMDMA_STATUS_offIOOR )
-#define DMA_STATUS_mskEBUS ( 0x1 << DMDMA_STATUS_offEBUS )
-#define DMA_STATUS_mskESUP ( 0x1 << DMDMA_STATUS_offESUP )
-
-/******************************************************************************
- * dmar9: DMA_2DSET (DMA 2D Setup Register)
- *****************************************************************************/
-#define DMA_2DSET_offWECNT 0 /* The Width Element Count for a 2-D region */
-#define DMA_2DSET_offHTSTR 16 /* The Height Stride for a 2-D region */
-
-#define DMA_2DSET_mskHTSTR ( 0xFFFF << DMA_2DSET_offHTSTR )
-#define DMA_2DSET_mskWECNT ( 0xFFFF << DMA_2DSET_offWECNT )
-
-/******************************************************************************
- * dmar10: DMA_2DSCTL (DMA 2D Startup Control Register)
- *****************************************************************************/
-#define DMA_2DSCTL_offSTWECNT 0 /* Startup Width Element Count for a 2-D region */
-/* bit 16:31 reserved */
-
-#define DMA_2DSCTL_mskSTWECNT ( 0xFFFF << DMA_2DSCTL_offSTWECNT )
-
-/******************************************************************************
- * fpcsr: FPCSR (Floating-Point Control Status Register)
- *****************************************************************************/
-#define FPCSR_offRM 0
-#define FPCSR_offIVO 2
-#define FPCSR_offDBZ 3
-#define FPCSR_offOVF 4
-#define FPCSR_offUDF 5
-#define FPCSR_offIEX 6
-#define FPCSR_offIVOE 7
-#define FPCSR_offDBZE 8
-#define FPCSR_offOVFE 9
-#define FPCSR_offUDFE 10
-#define FPCSR_offIEXE 11
-#define FPCSR_offDNZ 12
-#define FPCSR_offIVOT 13
-#define FPCSR_offDBZT 14
-#define FPCSR_offOVFT 15
-#define FPCSR_offUDFT 16
-#define FPCSR_offIEXT 17
-#define FPCSR_offDNIT 18
-#define FPCSR_offRIT 19
-
-#define FPCSR_mskRM ( 0x3 << FPCSR_offRM )
-#define FPCSR_mskIVO ( 0x1 << FPCSR_offIVO )
-#define FPCSR_mskDBZ ( 0x1 << FPCSR_offDBZ )
-#define FPCSR_mskOVF ( 0x1 << FPCSR_offOVF )
-#define FPCSR_mskUDF ( 0x1 << FPCSR_offUDF )
-#define FPCSR_mskIEX ( 0x1 << FPCSR_offIEX )
-#define FPCSR_mskIVOE ( 0x1 << FPCSR_offIVOE )
-#define FPCSR_mskDBZE ( 0x1 << FPCSR_offDBZE )
-#define FPCSR_mskOVFE ( 0x1 << FPCSR_offOVFE )
-#define FPCSR_mskUDFE ( 0x1 << FPCSR_offUDFE )
-#define FPCSR_mskIEXE ( 0x1 << FPCSR_offIEXE )
-#define FPCSR_mskDNZ ( 0x1 << FPCSR_offDNZ )
-#define FPCSR_mskIVOT ( 0x1 << FPCSR_offIVOT )
-#define FPCSR_mskDBZT ( 0x1 << FPCSR_offDBZT )
-#define FPCSR_mskOVFT ( 0x1 << FPCSR_offOVFT )
-#define FPCSR_mskUDFT ( 0x1 << FPCSR_offUDFT )
-#define FPCSR_mskIEXT ( 0x1 << FPCSR_offIEXT )
-#define FPCSR_mskDNIT ( 0x1 << FPCSR_offDNIT )
-#define FPCSR_mskRIT ( 0x1 << FPCSR_offRIT )
-#define FPCSR_mskALL (FPCSR_mskIVO | FPCSR_mskDBZ | FPCSR_mskOVF | FPCSR_mskUDF | FPCSR_mskIEX)
-#define FPCSR_mskALLE_NO_UDF_IEXE (FPCSR_mskIVOE | FPCSR_mskDBZE | FPCSR_mskOVFE)
-#define FPCSR_mskALLE (FPCSR_mskIVOE | FPCSR_mskDBZE | FPCSR_mskOVFE | FPCSR_mskUDFE | FPCSR_mskIEXE)
-#define FPCSR_mskALLT (FPCSR_mskIVOT | FPCSR_mskDBZT | FPCSR_mskOVFT | FPCSR_mskUDFT | FPCSR_mskIEXT |FPCSR_mskDNIT | FPCSR_mskRIT)
-
-/******************************************************************************
- * fpcfg: FPCFG (Floating-Point Configuration Register)
- *****************************************************************************/
-#define FPCFG_offSP 0
-#define FPCFG_offDP 1
-#define FPCFG_offFREG 2
-#define FPCFG_offFMA 4
-#define FPCFG_offIMVER 22
-#define FPCFG_offAVER 27
-
-#define FPCFG_mskSP ( 0x1 << FPCFG_offSP )
-#define FPCFG_mskDP ( 0x1 << FPCFG_offDP )
-#define FPCFG_mskFREG ( 0x3 << FPCFG_offFREG )
-#define FPCFG_mskFMA ( 0x1 << FPCFG_offFMA )
-#define FPCFG_mskIMVER ( 0x1F << FPCFG_offIMVER )
-#define FPCFG_mskAVER ( 0x1F << FPCFG_offAVER )
-
-/* 8 Single precision or 4 double precision registers are available */
-#define SP8_DP4_reg 0
-/* 16 Single precision or 8 double precision registers are available */
-#define SP16_DP8_reg 1
-/* 32 Single precision or 16 double precision registers are available */
-#define SP32_DP16_reg 2
-/* 32 Single precision or 32 double precision registers are available */
-#define SP32_DP32_reg 3
-
-/******************************************************************************
- * fucpr: FUCOP_CTL (FPU and Coprocessor Enable Control Register)
- *****************************************************************************/
-#define FUCOP_CTL_offCP0EN 0
-#define FUCOP_CTL_offCP1EN 1
-#define FUCOP_CTL_offCP2EN 2
-#define FUCOP_CTL_offCP3EN 3
-#define FUCOP_CTL_offAUEN 31
-
-#define FUCOP_CTL_mskCP0EN ( 0x1 << FUCOP_CTL_offCP0EN )
-#define FUCOP_CTL_mskCP1EN ( 0x1 << FUCOP_CTL_offCP1EN )
-#define FUCOP_CTL_mskCP2EN ( 0x1 << FUCOP_CTL_offCP2EN )
-#define FUCOP_CTL_mskCP3EN ( 0x1 << FUCOP_CTL_offCP3EN )
-#define FUCOP_CTL_mskAUEN ( 0x1 << FUCOP_CTL_offAUEN )
-
-#endif /* __NDS32_BITFIELD_H__ */
diff --git a/arch/nds32/include/asm/cache.h b/arch/nds32/include/asm/cache.h
deleted file mode 100644
index fc3c41b59169..000000000000
--- a/arch/nds32/include/asm/cache.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_CACHE_H__
-#define __NDS32_CACHE_H__
-
-#define L1_CACHE_BYTES 32
-#define L1_CACHE_SHIFT 5
-
-#define ARCH_DMA_MINALIGN L1_CACHE_BYTES
-
-#endif /* __NDS32_CACHE_H__ */
diff --git a/arch/nds32/include/asm/cache_info.h b/arch/nds32/include/asm/cache_info.h
deleted file mode 100644
index e89d8078f3a6..000000000000
--- a/arch/nds32/include/asm/cache_info.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-struct cache_info {
- unsigned char ways;
- unsigned char line_size;
- unsigned short sets;
- unsigned short size;
-#if defined(CONFIG_CPU_CACHE_ALIASING)
- unsigned short aliasing_num;
- unsigned int aliasing_mask;
-#endif
-};
diff --git a/arch/nds32/include/asm/cacheflush.h b/arch/nds32/include/asm/cacheflush.h
deleted file mode 100644
index c2a222ebfa2a..000000000000
--- a/arch/nds32/include/asm/cacheflush.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_CACHEFLUSH_H__
-#define __NDS32_CACHEFLUSH_H__
-
-#include <linux/mm.h>
-
-#define PG_dcache_dirty PG_arch_1
-
-void flush_icache_range(unsigned long start, unsigned long end);
-#define flush_icache_range flush_icache_range
-
-void flush_icache_page(struct vm_area_struct *vma, struct page *page);
-#define flush_icache_page flush_icache_page
-
-#ifdef CONFIG_CPU_CACHE_ALIASING
-void flush_cache_mm(struct mm_struct *mm);
-void flush_cache_dup_mm(struct mm_struct *mm);
-void flush_cache_range(struct vm_area_struct *vma,
- unsigned long start, unsigned long end);
-void flush_cache_page(struct vm_area_struct *vma,
- unsigned long addr, unsigned long pfn);
-void flush_cache_kmaps(void);
-void flush_cache_vmap(unsigned long start, unsigned long end);
-void flush_cache_vunmap(unsigned long start, unsigned long end);
-
-#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
-void flush_dcache_page(struct page *page);
-void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
- unsigned long vaddr, void *dst, void *src, int len);
-void copy_from_user_page(struct vm_area_struct *vma, struct page *page,
- unsigned long vaddr, void *dst, void *src, int len);
-
-#define ARCH_HAS_FLUSH_ANON_PAGE
-void flush_anon_page(struct vm_area_struct *vma,
- struct page *page, unsigned long vaddr);
-
-#define ARCH_IMPLEMENTS_FLUSH_KERNEL_VMAP_RANGE 1
-void flush_kernel_vmap_range(void *addr, int size);
-void invalidate_kernel_vmap_range(void *addr, int size);
-#define flush_dcache_mmap_lock(mapping) xa_lock_irq(&(mapping)->i_pages)
-#define flush_dcache_mmap_unlock(mapping) xa_unlock_irq(&(mapping)->i_pages)
-
-#else
-void flush_icache_user_page(struct vm_area_struct *vma, struct page *page,
- unsigned long addr, int len);
-#define flush_icache_user_page flush_icache_user_page
-
-#include <asm-generic/cacheflush.h>
-#endif
-
-#endif /* __NDS32_CACHEFLUSH_H__ */
diff --git a/arch/nds32/include/asm/current.h b/arch/nds32/include/asm/current.h
deleted file mode 100644
index 65d30096142b..000000000000
--- a/arch/nds32/include/asm/current.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASM_NDS32_CURRENT_H
-#define _ASM_NDS32_CURRENT_H
-
-#ifndef __ASSEMBLY__
-register struct task_struct *current asm("$r25");
-#endif /* __ASSEMBLY__ */
-#define tsk $r25
-
-#endif /* _ASM_NDS32_CURRENT_H */
diff --git a/arch/nds32/include/asm/delay.h b/arch/nds32/include/asm/delay.h
deleted file mode 100644
index 56ea3894f8f8..000000000000
--- a/arch/nds32/include/asm/delay.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_DELAY_H__
-#define __NDS32_DELAY_H__
-
-#include <asm/param.h>
-
-/* There is no clocksource cycle counter in the CPU. */
-static inline void __delay(unsigned long loops)
-{
- __asm__ __volatile__(".align 2\n"
- "1:\n"
- "\taddi\t%0, %0, -1\n"
- "\tbgtz\t%0, 1b\n"
- :"=r"(loops)
- :"0"(loops));
-}
-
-static inline void __udelay(unsigned long usecs, unsigned long lpj)
-{
- usecs *= (unsigned long)(((0x8000000000000000ULL / (500000 / HZ)) +
- 0x80000000ULL) >> 32);
- usecs = (unsigned long)(((unsigned long long)usecs * lpj) >> 32);
- __delay(usecs);
-}
-
-#define udelay(usecs) __udelay((usecs), loops_per_jiffy)
-
-/* make sure "usecs *= ..." in udelay do not overflow. */
-#if HZ >= 1000
-#define MAX_UDELAY_MS 1
-#elif HZ <= 200
-#define MAX_UDELAY_MS 5
-#else
-#define MAX_UDELAY_MS (1000 / HZ)
-#endif
-
-#endif
diff --git a/arch/nds32/include/asm/elf.h b/arch/nds32/include/asm/elf.h
deleted file mode 100644
index 1853dc89b8ac..000000000000
--- a/arch/nds32/include/asm/elf.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASMNDS32_ELF_H
-#define __ASMNDS32_ELF_H
-
-/*
- * ELF register definitions..
- */
-
-#include <asm/ptrace.h>
-#include <asm/fpu.h>
-#include <linux/elf-em.h>
-
-typedef unsigned long elf_greg_t;
-typedef unsigned long elf_freg_t[3];
-
-extern unsigned int elf_hwcap;
-
-#define R_NDS32_NONE 0
-#define R_NDS32_16_RELA 19
-#define R_NDS32_32_RELA 20
-#define R_NDS32_9_PCREL_RELA 22
-#define R_NDS32_15_PCREL_RELA 23
-#define R_NDS32_17_PCREL_RELA 24
-#define R_NDS32_25_PCREL_RELA 25
-#define R_NDS32_HI20_RELA 26
-#define R_NDS32_LO12S3_RELA 27
-#define R_NDS32_LO12S2_RELA 28
-#define R_NDS32_LO12S1_RELA 29
-#define R_NDS32_LO12S0_RELA 30
-#define R_NDS32_SDA15S3_RELA 31
-#define R_NDS32_SDA15S2_RELA 32
-#define R_NDS32_SDA15S1_RELA 33
-#define R_NDS32_SDA15S0_RELA 34
-#define R_NDS32_GOT20 37
-#define R_NDS32_25_PLTREL 38
-#define R_NDS32_COPY 39
-#define R_NDS32_GLOB_DAT 40
-#define R_NDS32_JMP_SLOT 41
-#define R_NDS32_RELATIVE 42
-#define R_NDS32_GOTOFF 43
-#define R_NDS32_GOTPC20 44
-#define R_NDS32_GOT_HI20 45
-#define R_NDS32_GOT_LO12 46
-#define R_NDS32_GOTPC_HI20 47
-#define R_NDS32_GOTPC_LO12 48
-#define R_NDS32_GOTOFF_HI20 49
-#define R_NDS32_GOTOFF_LO12 50
-#define R_NDS32_INSN16 51
-#define R_NDS32_LABEL 52
-#define R_NDS32_LONGCALL1 53
-#define R_NDS32_LONGCALL2 54
-#define R_NDS32_LONGCALL3 55
-#define R_NDS32_LONGJUMP1 56
-#define R_NDS32_LONGJUMP2 57
-#define R_NDS32_LONGJUMP3 58
-#define R_NDS32_LOADSTORE 59
-#define R_NDS32_9_FIXED_RELA 60
-#define R_NDS32_15_FIXED_RELA 61
-#define R_NDS32_17_FIXED_RELA 62
-#define R_NDS32_25_FIXED_RELA 63
-#define R_NDS32_PLTREL_HI20 64
-#define R_NDS32_PLTREL_LO12 65
-#define R_NDS32_PLT_GOTREL_HI20 66
-#define R_NDS32_PLT_GOTREL_LO12 67
-#define R_NDS32_LO12S0_ORI_RELA 72
-#define R_NDS32_DWARF2_OP1_RELA 77
-#define R_NDS32_DWARF2_OP2_RELA 78
-#define R_NDS32_DWARF2_LEB_RELA 79
-#define R_NDS32_WORD_9_PCREL_RELA 94
-#define R_NDS32_LONGCALL4 107
-#define R_NDS32_RELA_NOP_MIX 192
-#define R_NDS32_RELA_NOP_MAX 255
-
-#define ELF_NGREG (sizeof (struct user_pt_regs) / sizeof(elf_greg_t))
-#define ELF_CORE_COPY_REGS(dest, regs) \
- *(struct user_pt_regs *)&(dest) = (regs)->user_regs;
-
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-/* Core file format: The core file is written in such a way that gdb
- can understand it and provide useful information to the user (under
- linux we use the 'trad-core' bfd). There are quite a number of
- obstacles to being able to view the contents of the floating point
- registers, and until these are solved you will not be able to view the
- contents of them. Actually, you can read in the core file and look at
- the contents of the user struct to find out what the floating point
- registers contain.
- The actual file contents are as follows:
- UPAGE: 1 page consisting of a user struct that tells gdb what is present
- in the file. Directly after this is a copy of the task_struct, which
- is currently not used by gdb, but it may come in useful at some point.
- All of the registers are stored as part of the upage. The upage should
- always be only one page.
- DATA: The data area is stored. We use current->end_text to
- current->brk to pick up all of the user variables, plus any memory
- that may have been malloced. No attempt is made to determine if a page
- is demand-zero or if a page is totally unused, we just cover the entire
- range. All of the addresses are rounded in such a way that an integral
- number of pages is written.
- STACK: We need the stack information in order to get a meaningful
- backtrace. We need to write the data from (esp) to
- current->start_stack, so we round each of these off in order to be able
- to write an integer number of pages.
- The minimum core file size is 3 pages, or 12288 bytes.
-*/
-
-struct user_fp {
- unsigned long long fd_regs[32];
- unsigned long fpcsr;
-};
-
-typedef struct user_fp elf_fpregset_t;
-
-struct elf32_hdr;
-#define elf_check_arch(x) ((x)->e_machine == EM_NDS32)
-
-/*
- * These are used to set parameters in the core dumps.
- */
-#define ELF_CLASS ELFCLASS32
-#ifdef __NDS32_EB__
-#define ELF_DATA ELFDATA2MSB
-#else
-#define ELF_DATA ELFDATA2LSB
-#endif
-#define ELF_ARCH EM_NDS32
-#define ELF_EXEC_PAGESIZE PAGE_SIZE
-
-/* This is the location that an ET_DYN program is loaded if exec'ed. Typical
- use of this is to invoke "./ld.so someprog" to test out a new version of
- the loader. We need to make sure that it is out of the way of the program
- that it will "exec", and that there is sufficient room for the brk. */
-
-#define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3)
-
-/* When the program starts, a1 contains a pointer to a function to be
- registered with atexit, as per the SVR4 ABI. A value of 0 means we
- have no such handler. */
-#define ELF_PLAT_INIT(_r, load_addr) (_r)->uregs[0] = 0
-
-/* This yields a mask that user programs can use to figure out what
- instruction set this cpu supports. */
-
-#define ELF_HWCAP (elf_hwcap)
-
-#ifdef __KERNEL__
-
-#define ELF_PLATFORM (NULL)
-
-/* Old NetWinder binaries were compiled in such a way that the iBCS
- heuristic always trips on them. Until these binaries become uncommon
- enough not to care, don't trust the `ibcs' flag here. In any case
- there is no other ELF system currently supported by iBCS.
- @@ Could print a warning message to encourage users to upgrade. */
-#define SET_PERSONALITY(ex) set_personality(PER_LINUX)
-
-#endif
-
-
-#if IS_ENABLED(CONFIG_FPU)
-#define FPU_AUX_ENT NEW_AUX_ENT(AT_FPUCW, FPCSR_INIT)
-#else
-#define FPU_AUX_ENT NEW_AUX_ENT(AT_IGNORE, 0)
-#endif
-
-#define ARCH_DLINFO \
-do { \
- /* Optional FPU initialization */ \
- FPU_AUX_ENT; \
- \
- NEW_AUX_ENT(AT_SYSINFO_EHDR, \
- (elf_addr_t)current->mm->context.vdso); \
-} while (0)
-#define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
-struct linux_binprm;
-int arch_setup_additional_pages(struct linux_binprm *, int);
-
-#endif
diff --git a/arch/nds32/include/asm/fixmap.h b/arch/nds32/include/asm/fixmap.h
deleted file mode 100644
index 2fa09a2de428..000000000000
--- a/arch/nds32/include/asm/fixmap.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_FIXMAP_H
-#define __ASM_NDS32_FIXMAP_H
-
-#ifdef CONFIG_HIGHMEM
-#include <linux/threads.h>
-#include <asm/kmap_size.h>
-#endif
-
-enum fixed_addresses {
- FIX_HOLE,
- FIX_KMAP_RESERVED,
- FIX_KMAP_BEGIN,
-#ifdef CONFIG_HIGHMEM
- FIX_KMAP_END = FIX_KMAP_BEGIN + (KM_MAX_IDX * NR_CPUS) - 1,
-#endif
- FIX_EARLYCON_MEM_BASE,
- __end_of_fixed_addresses
-};
-#define FIXADDR_TOP ((unsigned long) (-(16 * PAGE_SIZE)))
-#define FIXADDR_SIZE ((__end_of_fixed_addresses) << PAGE_SHIFT)
-#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
-#define FIXMAP_PAGE_IO __pgprot(PAGE_DEVICE)
-void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot);
-
-#include <asm-generic/fixmap.h>
-#endif /* __ASM_NDS32_FIXMAP_H */
diff --git a/arch/nds32/include/asm/fpu.h b/arch/nds32/include/asm/fpu.h
deleted file mode 100644
index 8294ed4aaa2c..000000000000
--- a/arch/nds32/include/asm/fpu.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2005-2018 Andes Technology Corporation */
-
-#ifndef __ASM_NDS32_FPU_H
-#define __ASM_NDS32_FPU_H
-
-#if IS_ENABLED(CONFIG_FPU)
-#ifndef __ASSEMBLY__
-#include <linux/sched/task_stack.h>
-#include <linux/preempt.h>
-#include <asm/ptrace.h>
-
-extern bool has_fpu;
-
-extern void save_fpu(struct task_struct *__tsk);
-extern void load_fpu(const struct fpu_struct *fpregs);
-extern bool do_fpu_exception(unsigned int subtype, struct pt_regs *regs);
-extern int do_fpuemu(struct pt_regs *regs, struct fpu_struct *fpu);
-
-#define test_tsk_fpu(regs) (regs->fucop_ctl & FUCOP_CTL_mskCP0EN)
-
-/*
- * Initially load the FPU with signalling NANS. This bit pattern
- * has the property that no matter whether considered as single or as
- * double precision, it still represents a signalling NAN.
- */
-
-#define sNAN64 0xFFFFFFFFFFFFFFFFULL
-#define sNAN32 0xFFFFFFFFUL
-
-#if IS_ENABLED(CONFIG_SUPPORT_DENORMAL_ARITHMETIC)
-/*
- * Denormalized number is unsupported by nds32 FPU. Hence the operation
- * is treated as underflow cases when the final result is a denormalized
- * number. To enhance precision, underflow exception trap should be
- * enabled by default and kerenl will re-execute it by fpu emulator
- * when getting underflow exception.
- */
-#define FPCSR_INIT (FPCSR_mskUDFE | FPCSR_mskIEXE)
-#else
-#define FPCSR_INIT 0x0UL
-#endif
-
-extern const struct fpu_struct init_fpuregs;
-
-static inline void disable_ptreg_fpu(struct pt_regs *regs)
-{
- regs->fucop_ctl &= ~FUCOP_CTL_mskCP0EN;
-}
-
-static inline void enable_ptreg_fpu(struct pt_regs *regs)
-{
- regs->fucop_ctl |= FUCOP_CTL_mskCP0EN;
-}
-
-static inline void enable_fpu(void)
-{
- unsigned long fucop_ctl;
-
- fucop_ctl = __nds32__mfsr(NDS32_SR_FUCOP_CTL) | FUCOP_CTL_mskCP0EN;
- __nds32__mtsr(fucop_ctl, NDS32_SR_FUCOP_CTL);
- __nds32__isb();
-}
-
-static inline void disable_fpu(void)
-{
- unsigned long fucop_ctl;
-
- fucop_ctl = __nds32__mfsr(NDS32_SR_FUCOP_CTL) & ~FUCOP_CTL_mskCP0EN;
- __nds32__mtsr(fucop_ctl, NDS32_SR_FUCOP_CTL);
- __nds32__isb();
-}
-
-static inline void lose_fpu(void)
-{
- preempt_disable();
-#if IS_ENABLED(CONFIG_LAZY_FPU)
- if (last_task_used_math == current) {
- last_task_used_math = NULL;
-#else
- if (test_tsk_fpu(task_pt_regs(current))) {
-#endif
- save_fpu(current);
- }
- disable_ptreg_fpu(task_pt_regs(current));
- preempt_enable();
-}
-
-static inline void own_fpu(void)
-{
- preempt_disable();
-#if IS_ENABLED(CONFIG_LAZY_FPU)
- if (last_task_used_math != current) {
- if (last_task_used_math != NULL)
- save_fpu(last_task_used_math);
- load_fpu(¤t->thread.fpu);
- last_task_used_math = current;
- }
-#else
- if (!test_tsk_fpu(task_pt_regs(current))) {
- load_fpu(¤t->thread.fpu);
- }
-#endif
- enable_ptreg_fpu(task_pt_regs(current));
- preempt_enable();
-}
-
-#if !IS_ENABLED(CONFIG_LAZY_FPU)
-static inline void unlazy_fpu(struct task_struct *tsk)
-{
- preempt_disable();
- if (test_tsk_fpu(task_pt_regs(tsk)))
- save_fpu(tsk);
- preempt_enable();
-}
-#endif /* !CONFIG_LAZY_FPU */
-static inline void clear_fpu(struct pt_regs *regs)
-{
- preempt_disable();
- if (test_tsk_fpu(regs))
- disable_ptreg_fpu(regs);
- preempt_enable();
-}
-#endif /* CONFIG_FPU */
-#endif /* __ASSEMBLY__ */
-#endif /* __ASM_NDS32_FPU_H */
diff --git a/arch/nds32/include/asm/fpuemu.h b/arch/nds32/include/asm/fpuemu.h
deleted file mode 100644
index 63e7ef5f7969..000000000000
--- a/arch/nds32/include/asm/fpuemu.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2005-2018 Andes Technology Corporation */
-
-#ifndef __ARCH_NDS32_FPUEMU_H
-#define __ARCH_NDS32_FPUEMU_H
-
-/*
- * single precision
- */
-
-void fadds(void *ft, void *fa, void *fb);
-void fsubs(void *ft, void *fa, void *fb);
-void fmuls(void *ft, void *fa, void *fb);
-void fdivs(void *ft, void *fa, void *fb);
-void fs2d(void *ft, void *fa);
-void fs2si(void *ft, void *fa);
-void fs2si_z(void *ft, void *fa);
-void fs2ui(void *ft, void *fa);
-void fs2ui_z(void *ft, void *fa);
-void fsi2s(void *ft, void *fa);
-void fui2s(void *ft, void *fa);
-void fsqrts(void *ft, void *fa);
-void fnegs(void *ft, void *fa);
-int fcmps(void *ft, void *fa, void *fb, int cop);
-
-/*
- * double precision
- */
-void faddd(void *ft, void *fa, void *fb);
-void fsubd(void *ft, void *fa, void *fb);
-void fmuld(void *ft, void *fa, void *fb);
-void fdivd(void *ft, void *fa, void *fb);
-void fsqrtd(void *ft, void *fa);
-void fd2s(void *ft, void *fa);
-void fd2si(void *ft, void *fa);
-void fd2si_z(void *ft, void *fa);
-void fd2ui(void *ft, void *fa);
-void fd2ui_z(void *ft, void *fa);
-void fsi2d(void *ft, void *fa);
-void fui2d(void *ft, void *fa);
-void fnegd(void *ft, void *fa);
-int fcmpd(void *ft, void *fa, void *fb, int cop);
-
-#endif /* __ARCH_NDS32_FPUEMU_H */
diff --git a/arch/nds32/include/asm/ftrace.h b/arch/nds32/include/asm/ftrace.h
deleted file mode 100644
index 2f96cc96aa35..000000000000
--- a/arch/nds32/include/asm/ftrace.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-
-#ifndef __ASM_NDS32_FTRACE_H
-#define __ASM_NDS32_FTRACE_H
-
-#ifdef CONFIG_FUNCTION_TRACER
-
-#define HAVE_FUNCTION_GRAPH_FP_TEST
-
-#define MCOUNT_ADDR ((unsigned long)(_mcount))
-/* mcount call is composed of three instructions:
- * sethi + ori + jral
- */
-#define MCOUNT_INSN_SIZE 12
-
-extern void _mcount(unsigned long parent_ip);
-
-#ifdef CONFIG_DYNAMIC_FTRACE
-
-#define FTRACE_ADDR ((unsigned long)_ftrace_caller)
-
-#ifdef __NDS32_EL__
-#define INSN_NOP 0x09000040
-#define INSN_SIZE(insn) (((insn & 0x00000080) == 0) ? 4 : 2)
-#define IS_SETHI(insn) ((insn & 0x000000fe) == 0x00000046)
-#define ENDIAN_CONVERT(insn) be32_to_cpu(insn)
-#else /* __NDS32_EB__ */
-#define INSN_NOP 0x40000009
-#define INSN_SIZE(insn) (((insn & 0x80000000) == 0) ? 4 : 2)
-#define IS_SETHI(insn) ((insn & 0xfe000000) == 0x46000000)
-#define ENDIAN_CONVERT(insn) (insn)
-#endif
-
-extern void _ftrace_caller(unsigned long parent_ip);
-static inline unsigned long ftrace_call_adjust(unsigned long addr)
-{
- return addr;
-}
-struct dyn_arch_ftrace {
-};
-
-#endif /* CONFIG_DYNAMIC_FTRACE */
-
-#endif /* CONFIG_FUNCTION_TRACER */
-
-#endif /* __ASM_NDS32_FTRACE_H */
diff --git a/arch/nds32/include/asm/futex.h b/arch/nds32/include/asm/futex.h
deleted file mode 100644
index 4223f473bd36..000000000000
--- a/arch/nds32/include/asm/futex.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_FUTEX_H__
-#define __NDS32_FUTEX_H__
-
-#include <linux/futex.h>
-#include <linux/uaccess.h>
-#include <asm/errno.h>
-
-#define __futex_atomic_ex_table(err_reg) \
- " .pushsection __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 4f\n" \
- " .long 2b, 4f\n" \
- " .popsection\n" \
- " .pushsection .fixup,\"ax\"\n" \
- "4: move %0, " err_reg "\n" \
- " b 3b\n" \
- " .popsection"
-
-#define __futex_atomic_op(insn, ret, oldval, tmp, uaddr, oparg) \
- smp_mb(); \
- asm volatile( \
- " movi $ta, #0\n" \
- "1: llw %1, [%2+$ta]\n" \
- " " insn "\n" \
- "2: scw %0, [%2+$ta]\n" \
- " beqz %0, 1b\n" \
- " movi %0, #0\n" \
- "3:\n" \
- __futex_atomic_ex_table("%4") \
- : "=&r" (ret), "=&r" (oldval) \
- : "r" (uaddr), "r" (oparg), "i" (-EFAULT) \
- : "cc", "memory")
-static inline int
-futex_atomic_cmpxchg_inatomic(u32 * uval, u32 __user * uaddr,
- u32 oldval, u32 newval)
-{
- int ret = 0;
- u32 val, tmp, flags;
-
- if (!access_ok(uaddr, sizeof(u32)))
- return -EFAULT;
-
- smp_mb();
- asm volatile (" movi $ta, #0\n"
- "1: llw %1, [%6 + $ta]\n"
- " sub %3, %1, %4\n"
- " cmovz %2, %5, %3\n"
- " cmovn %2, %1, %3\n"
- "2: scw %2, [%6 + $ta]\n"
- " beqz %2, 1b\n"
- "3:\n " __futex_atomic_ex_table("%7")
- :"+&r"(ret), "=&r"(val), "=&r"(tmp), "=&r"(flags)
- :"r"(oldval), "r"(newval), "r"(uaddr), "i"(-EFAULT)
- :"$ta", "memory");
- smp_mb();
-
- *uval = val;
- return ret;
-}
-
-static inline int
-arch_futex_atomic_op_inuser(int op, int oparg, int *oval, u32 __user *uaddr)
-{
- int oldval = 0, ret;
-
- if (!access_ok(uaddr, sizeof(u32)))
- return -EFAULT;
- switch (op) {
- case FUTEX_OP_SET:
- __futex_atomic_op("move %0, %3", ret, oldval, tmp, uaddr,
- oparg);
- break;
- case FUTEX_OP_ADD:
- __futex_atomic_op("add %0, %1, %3", ret, oldval, tmp, uaddr,
- oparg);
- break;
- case FUTEX_OP_OR:
- __futex_atomic_op("or %0, %1, %3", ret, oldval, tmp, uaddr,
- oparg);
- break;
- case FUTEX_OP_ANDN:
- __futex_atomic_op("and %0, %1, %3", ret, oldval, tmp, uaddr,
- ~oparg);
- break;
- case FUTEX_OP_XOR:
- __futex_atomic_op("xor %0, %1, %3", ret, oldval, tmp, uaddr,
- oparg);
- break;
- default:
- ret = -ENOSYS;
- }
-
- if (!ret)
- *oval = oldval;
-
- return ret;
-}
-#endif /* __NDS32_FUTEX_H__ */
diff --git a/arch/nds32/include/asm/highmem.h b/arch/nds32/include/asm/highmem.h
deleted file mode 100644
index 16159a8716f2..000000000000
--- a/arch/nds32/include/asm/highmem.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASM_HIGHMEM_H
-#define _ASM_HIGHMEM_H
-
-#include <asm/proc-fns.h>
-#include <asm/fixmap.h>
-
-/*
- * Right now we initialize only a single pte table. It can be extended
- * easily, subsequent pte tables have to be allocated in one physical
- * chunk of RAM.
- */
-/*
- * Ordering is (from lower to higher memory addresses):
- *
- * high_memory
- * Persistent kmap area
- * PKMAP_BASE
- * fixed_addresses
- * FIXADDR_START
- * FIXADDR_TOP
- * Vmalloc area
- * VMALLOC_START
- * VMALLOC_END
- */
-#define PKMAP_BASE ((FIXADDR_START - PGDIR_SIZE) & (PGDIR_MASK))
-#define LAST_PKMAP PTRS_PER_PTE
-#define LAST_PKMAP_MASK (LAST_PKMAP - 1)
-#define PKMAP_NR(virt) (((virt) - (PKMAP_BASE)) >> PAGE_SHIFT)
-#define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT))
-
-static inline void flush_cache_kmaps(void)
-{
- cpu_dcache_wbinval_all();
-}
-
-/* declarations for highmem.c */
-extern unsigned long highstart_pfn, highend_pfn;
-
-extern pte_t *pkmap_page_table;
-
-extern void kmap_init(void);
-
-/*
- * FIXME: The below looks broken vs. a kmap_atomic() in task context which
- * is interupted and another kmap_atomic() happens in interrupt context.
- * But what do I know about nds32. -- tglx
- */
-#define arch_kmap_local_post_map(vaddr, pteval) \
- do { \
- __nds32__tlbop_inv(vaddr); \
- __nds32__mtsr_dsb(vaddr, NDS32_SR_TLB_VPN); \
- __nds32__tlbop_rwr(pteval); \
- __nds32__isb(); \
- } while (0)
-
-#define arch_kmap_local_pre_unmap(vaddr) \
- do { \
- __nds32__tlbop_inv(vaddr); \
- __nds32__isb(); \
- } while (0)
-
-#endif
diff --git a/arch/nds32/include/asm/io.h b/arch/nds32/include/asm/io.h
deleted file mode 100644
index e57378d04006..000000000000
--- a/arch/nds32/include/asm/io.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_IO_H
-#define __ASM_NDS32_IO_H
-
-#include <linux/types.h>
-
-#define __raw_writeb __raw_writeb
-static inline void __raw_writeb(u8 val, volatile void __iomem *addr)
-{
- asm volatile("sbi %0, [%1]" : : "r" (val), "r" (addr));
-}
-
-#define __raw_writew __raw_writew
-static inline void __raw_writew(u16 val, volatile void __iomem *addr)
-{
- asm volatile("shi %0, [%1]" : : "r" (val), "r" (addr));
-}
-
-#define __raw_writel __raw_writel
-static inline void __raw_writel(u32 val, volatile void __iomem *addr)
-{
- asm volatile("swi %0, [%1]" : : "r" (val), "r" (addr));
-}
-
-#define __raw_readb __raw_readb
-static inline u8 __raw_readb(const volatile void __iomem *addr)
-{
- u8 val;
-
- asm volatile("lbi %0, [%1]" : "=r" (val) : "r" (addr));
- return val;
-}
-
-#define __raw_readw __raw_readw
-static inline u16 __raw_readw(const volatile void __iomem *addr)
-{
- u16 val;
-
- asm volatile("lhi %0, [%1]" : "=r" (val) : "r" (addr));
- return val;
-}
-
-#define __raw_readl __raw_readl
-static inline u32 __raw_readl(const volatile void __iomem *addr)
-{
- u32 val;
-
- asm volatile("lwi %0, [%1]" : "=r" (val) : "r" (addr));
- return val;
-}
-
-#define __iormb() rmb()
-#define __iowmb() wmb()
-
-/*
- * {read,write}{b,w,l,q}_relaxed() are like the regular version, but
- * are not guaranteed to provide ordering against spinlocks or memory
- * accesses.
- */
-
-#define readb_relaxed(c) ({ u8 __v = __raw_readb(c); __v; })
-#define readw_relaxed(c) ({ u16 __v = le16_to_cpu((__force __le16)__raw_readw(c)); __v; })
-#define readl_relaxed(c) ({ u32 __v = le32_to_cpu((__force __le32)__raw_readl(c)); __v; })
-#define writeb_relaxed(v,c) ((void)__raw_writeb((v),(c)))
-#define writew_relaxed(v,c) ((void)__raw_writew((__force u16)cpu_to_le16(v),(c)))
-#define writel_relaxed(v,c) ((void)__raw_writel((__force u32)cpu_to_le32(v),(c)))
-
-/*
- * {read,write}{b,w,l,q}() access little endian memory and return result in
- * native endianness.
- */
-#define readb(c) ({ u8 __v = readb_relaxed(c); __iormb(); __v; })
-#define readw(c) ({ u16 __v = readw_relaxed(c); __iormb(); __v; })
-#define readl(c) ({ u32 __v = readl_relaxed(c); __iormb(); __v; })
-
-#define writeb(v,c) ({ __iowmb(); writeb_relaxed((v),(c)); })
-#define writew(v,c) ({ __iowmb(); writew_relaxed((v),(c)); })
-#define writel(v,c) ({ __iowmb(); writel_relaxed((v),(c)); })
-
-#include <asm-generic/io.h>
-
-#endif /* __ASM_NDS32_IO_H */
diff --git a/arch/nds32/include/asm/irqflags.h b/arch/nds32/include/asm/irqflags.h
deleted file mode 100644
index 51ef800bb301..000000000000
--- a/arch/nds32/include/asm/irqflags.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <asm/nds32.h>
-#include <nds32_intrinsic.h>
-
-#define arch_local_irq_disable() \
- GIE_DISABLE();
-
-#define arch_local_irq_enable() \
- GIE_ENABLE();
-static inline unsigned long arch_local_irq_save(void)
-{
- unsigned long flags;
- flags = __nds32__mfsr(NDS32_SR_PSW) & PSW_mskGIE;
- GIE_DISABLE();
- return flags;
-}
-
-static inline unsigned long arch_local_save_flags(void)
-{
- unsigned long flags;
- flags = __nds32__mfsr(NDS32_SR_PSW) & PSW_mskGIE;
- return flags;
-}
-
-static inline void arch_local_irq_restore(unsigned long flags)
-{
- if(flags)
- GIE_ENABLE();
-}
-
-static inline int arch_irqs_disabled_flags(unsigned long flags)
-{
- return !flags;
-}
-
-static inline int arch_irqs_disabled(void)
-{
- return arch_irqs_disabled_flags(arch_local_save_flags());
-}
diff --git a/arch/nds32/include/asm/l2_cache.h b/arch/nds32/include/asm/l2_cache.h
deleted file mode 100644
index 3ea48e19e6de..000000000000
--- a/arch/nds32/include/asm/l2_cache.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef L2_CACHE_H
-#define L2_CACHE_H
-
-/* CCTL_CMD_OP */
-#define L2_CA_CONF_OFF 0x0
-#define L2_IF_CONF_OFF 0x4
-#define L2CC_SETUP_OFF 0x8
-#define L2CC_PROT_OFF 0xC
-#define L2CC_CTRL_OFF 0x10
-#define L2_INT_EN_OFF 0x20
-#define L2_STA_OFF 0x24
-#define RDERR_ADDR_OFF 0x28
-#define WRERR_ADDR_OFF 0x2c
-#define EVDPTERR_ADDR_OFF 0x30
-#define IMPL3ERR_ADDR_OFF 0x34
-#define L2_CNT0_CTRL_OFF 0x40
-#define L2_EVNT_CNT0_OFF 0x44
-#define L2_CNT1_CTRL_OFF 0x48
-#define L2_EVNT_CNT1_OFF 0x4c
-#define L2_CCTL_CMD_OFF 0x60
-#define L2_CCTL_STATUS_OFF 0x64
-#define L2_LINE_TAG_OFF 0x68
-#define L2_LINE_DPT_OFF 0x70
-
-#define CCTL_CMD_L2_IX_INVAL 0x0
-#define CCTL_CMD_L2_PA_INVAL 0x1
-#define CCTL_CMD_L2_IX_WB 0x2
-#define CCTL_CMD_L2_PA_WB 0x3
-#define CCTL_CMD_L2_PA_WBINVAL 0x5
-#define CCTL_CMD_L2_SYNC 0xa
-
-/* CCTL_CMD_TYPE */
-#define CCTL_SINGLE_CMD 0
-#define CCTL_BLOCK_CMD 0x10
-#define CCTL_ALL_CMD 0x10
-
-/******************************************************************************
- * L2_CA_CONF (Cache architecture configuration)
- *****************************************************************************/
-#define L2_CA_CONF_offL2SET 0
-#define L2_CA_CONF_offL2WAY 4
-#define L2_CA_CONF_offL2CLSZ 8
-#define L2_CA_CONF_offL2DW 11
-#define L2_CA_CONF_offL2PT 14
-#define L2_CA_CONF_offL2VER 16
-
-#define L2_CA_CONF_mskL2SET (0xFUL << L2_CA_CONF_offL2SET)
-#define L2_CA_CONF_mskL2WAY (0xFUL << L2_CA_CONF_offL2WAY)
-#define L2_CA_CONF_mskL2CLSZ (0x7UL << L2_CA_CONF_offL2CLSZ)
-#define L2_CA_CONF_mskL2DW (0x7UL << L2_CA_CONF_offL2DW)
-#define L2_CA_CONF_mskL2PT (0x3UL << L2_CA_CONF_offL2PT)
-#define L2_CA_CONF_mskL2VER (0xFFFFUL << L2_CA_CONF_offL2VER)
-
-/******************************************************************************
- * L2CC_SETUP (L2CC Setup register)
- *****************************************************************************/
-#define L2CC_SETUP_offPART 0
-#define L2CC_SETUP_mskPART (0x3UL << L2CC_SETUP_offPART)
-#define L2CC_SETUP_offDDLATC 4
-#define L2CC_SETUP_mskDDLATC (0x3UL << L2CC_SETUP_offDDLATC)
-#define L2CC_SETUP_offTDLATC 8
-#define L2CC_SETUP_mskTDLATC (0x3UL << L2CC_SETUP_offTDLATC)
-
-/******************************************************************************
- * L2CC_PROT (L2CC Protect register)
- *****************************************************************************/
-#define L2CC_PROT_offMRWEN 31
-#define L2CC_PROT_mskMRWEN (0x1UL << L2CC_PROT_offMRWEN)
-
-/******************************************************************************
- * L2_CCTL_STATUS_Mn (The L2CCTL command working status for Master n)
- *****************************************************************************/
-#define L2CC_CTRL_offEN 31
-#define L2CC_CTRL_mskEN (0x1UL << L2CC_CTRL_offEN)
-
-/******************************************************************************
- * L2_CCTL_STATUS_Mn (The L2CCTL command working status for Master n)
- *****************************************************************************/
-#define L2_CCTL_STATUS_offCMD_COMP 31
-#define L2_CCTL_STATUS_mskCMD_COMP (0x1 << L2_CCTL_STATUS_offCMD_COMP)
-
-extern void __iomem *atl2c_base;
-#include <linux/smp.h>
-#include <asm/io.h>
-#include <asm/bitfield.h>
-
-#define L2C_R_REG(offset) readl(atl2c_base + offset)
-#define L2C_W_REG(offset, value) writel(value, atl2c_base + offset)
-
-#define L2_CMD_RDY() \
- do{;}while((L2C_R_REG(L2_CCTL_STATUS_OFF) & L2_CCTL_STATUS_mskCMD_COMP) == 0)
-
-static inline unsigned long L2_CACHE_SET(void)
-{
- return 64 << ((L2C_R_REG(L2_CA_CONF_OFF) & L2_CA_CONF_mskL2SET) >>
- L2_CA_CONF_offL2SET);
-}
-
-static inline unsigned long L2_CACHE_WAY(void)
-{
- return 1 +
- ((L2C_R_REG(L2_CA_CONF_OFF) & L2_CA_CONF_mskL2WAY) >>
- L2_CA_CONF_offL2WAY);
-}
-
-static inline unsigned long L2_CACHE_LINE_SIZE(void)
-{
-
- return 4 << ((L2C_R_REG(L2_CA_CONF_OFF) & L2_CA_CONF_mskL2CLSZ) >>
- L2_CA_CONF_offL2CLSZ);
-}
-
-static inline unsigned long GET_L2CC_CTRL_CPU(unsigned long cpu)
-{
- if (cpu == smp_processor_id())
- return L2C_R_REG(L2CC_CTRL_OFF);
- return L2C_R_REG(L2CC_CTRL_OFF + (cpu << 8));
-}
-
-static inline void SET_L2CC_CTRL_CPU(unsigned long cpu, unsigned long val)
-{
- if (cpu == smp_processor_id())
- L2C_W_REG(L2CC_CTRL_OFF, val);
- else
- L2C_W_REG(L2CC_CTRL_OFF + (cpu << 8), val);
-}
-
-static inline unsigned long GET_L2CC_STATUS_CPU(unsigned long cpu)
-{
- if (cpu == smp_processor_id())
- return L2C_R_REG(L2_CCTL_STATUS_OFF);
- return L2C_R_REG(L2_CCTL_STATUS_OFF + (cpu << 8));
-}
-#endif
diff --git a/arch/nds32/include/asm/linkage.h b/arch/nds32/include/asm/linkage.h
deleted file mode 100644
index a696469abb70..000000000000
--- a/arch/nds32/include/asm/linkage.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_LINKAGE_H
-#define __ASM_LINKAGE_H
-
-/* This file is required by include/linux/linkage.h */
-#define __ALIGN .align 2
-#define __ALIGN_STR ".align 2"
-
-#endif
diff --git a/arch/nds32/include/asm/memory.h b/arch/nds32/include/asm/memory.h
deleted file mode 100644
index 62faafbc28e4..000000000000
--- a/arch/nds32/include/asm/memory.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_MEMORY_H
-#define __ASM_NDS32_MEMORY_H
-
-#include <linux/compiler.h>
-#include <linux/sizes.h>
-
-#ifndef __ASSEMBLY__
-#include <asm/page.h>
-#endif
-
-#ifndef PHYS_OFFSET
-#define PHYS_OFFSET (0x0)
-#endif
-
-/*
- * TASK_SIZE - the maximum size of a user space task.
- * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area
- */
-#define TASK_SIZE ((CONFIG_PAGE_OFFSET) - (SZ_32M))
-#define TASK_UNMAPPED_BASE ALIGN(TASK_SIZE / 3, SZ_32M)
-#define PAGE_OFFSET (CONFIG_PAGE_OFFSET)
-
-/*
- * Physical vs virtual RAM address space conversion. These are
- * private definitions which should NOT be used outside memory.h
- * files. Use virt_to_phys/phys_to_virt/__pa/__va instead.
- */
-#ifndef __virt_to_phys
-#define __virt_to_phys(x) ((x) - PAGE_OFFSET + PHYS_OFFSET)
-#define __phys_to_virt(x) ((x) - PHYS_OFFSET + PAGE_OFFSET)
-#endif
-
-/*
- * The module space lives between the addresses given by TASK_SIZE
- * and PAGE_OFFSET - it must be within 32MB of the kernel text.
- */
-#define MODULES_END (PAGE_OFFSET)
-#define MODULES_VADDR (MODULES_END - SZ_32M)
-
-#if TASK_SIZE > MODULES_VADDR
-#error Top of user space clashes with start of module space
-#endif
-
-#ifndef __ASSEMBLY__
-
-/*
- * PFNs are used to describe any physical page; this means
- * PFN 0 == physical address 0.
- *
- * This is the PFN of the first RAM page in the kernel
- * direct-mapped view. We assume this is the first page
- * of RAM in the mem_map as well.
- */
-#define PHYS_PFN_OFFSET (PHYS_OFFSET >> PAGE_SHIFT)
-
-/*
- * Drivers should NOT use these either.
- */
-#define __pa(x) __virt_to_phys((unsigned long)(x))
-#define __va(x) ((void *)__phys_to_virt((unsigned long)(x)))
-
-/*
- * Conversion between a struct page and a physical address.
- *
- * Note: when converting an unknown physical address to a
- * struct page, the resulting pointer must be validated
- * using VALID_PAGE(). It must return an invalid struct page
- * for any physical address not corresponding to a system
- * RAM address.
- *
- * pfn_valid(pfn) indicates whether a PFN number is valid
- *
- * virt_to_page(k) convert a _valid_ virtual address to struct page *
- * virt_addr_valid(k) indicates whether a virtual address is valid
- */
-#define ARCH_PFN_OFFSET PHYS_PFN_OFFSET
-#define pfn_valid(pfn) ((pfn) >= PHYS_PFN_OFFSET && (pfn) < (PHYS_PFN_OFFSET + max_mapnr))
-
-#define virt_to_page(kaddr) (pfn_to_page(__pa(kaddr) >> PAGE_SHIFT))
-#define virt_addr_valid(kaddr) ((unsigned long)(kaddr) >= PAGE_OFFSET && (unsigned long)(kaddr) < (unsigned long)high_memory)
-
-#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
-
-#endif
-
-#include <asm-generic/memory_model.h>
-
-#endif
diff --git a/arch/nds32/include/asm/mmu.h b/arch/nds32/include/asm/mmu.h
deleted file mode 100644
index 89d63afee455..000000000000
--- a/arch/nds32/include/asm/mmu.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_MMU_H
-#define __NDS32_MMU_H
-
-typedef struct {
- unsigned int id;
- void *vdso;
-} mm_context_t;
-
-#endif
diff --git a/arch/nds32/include/asm/mmu_context.h b/arch/nds32/include/asm/mmu_context.h
deleted file mode 100644
index c651bc8cacdc..000000000000
--- a/arch/nds32/include/asm/mmu_context.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_MMU_CONTEXT_H
-#define __ASM_NDS32_MMU_CONTEXT_H
-
-#include <linux/spinlock.h>
-#include <asm/tlbflush.h>
-#include <asm/proc-fns.h>
-#include <asm-generic/mm_hooks.h>
-
-#define init_new_context init_new_context
-static inline int
-init_new_context(struct task_struct *tsk, struct mm_struct *mm)
-{
- mm->context.id = 0;
- return 0;
-}
-
-#define CID_BITS 9
-extern spinlock_t cid_lock;
-extern unsigned int cpu_last_cid;
-
-static inline void __new_context(struct mm_struct *mm)
-{
- unsigned int cid;
- unsigned long flags;
-
- spin_lock_irqsave(&cid_lock, flags);
- cid = cpu_last_cid;
- cpu_last_cid += 1 << TLB_MISC_offCID;
- if (cpu_last_cid == 0)
- cpu_last_cid = 1 << TLB_MISC_offCID << CID_BITS;
-
- if ((cid & TLB_MISC_mskCID) == 0)
- flush_tlb_all();
- spin_unlock_irqrestore(&cid_lock, flags);
-
- mm->context.id = cid;
-}
-
-static inline void check_context(struct mm_struct *mm)
-{
- if (unlikely
- ((mm->context.id ^ cpu_last_cid) >> TLB_MISC_offCID >> CID_BITS))
- __new_context(mm);
-}
-
-static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
- struct task_struct *tsk)
-{
- unsigned int cpu = smp_processor_id();
-
- if (!cpumask_test_and_set_cpu(cpu, mm_cpumask(next)) || prev != next) {
- check_context(next);
- cpu_switch_mm(next);
- }
-}
-
-#include <asm-generic/mmu_context.h>
-
-#endif
diff --git a/arch/nds32/include/asm/nds32.h b/arch/nds32/include/asm/nds32.h
deleted file mode 100644
index 4994f6a9e0a0..000000000000
--- a/arch/nds32/include/asm/nds32.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASM_NDS32_NDS32_H_
-#define _ASM_NDS32_NDS32_H_
-
-#include <asm/bitfield.h>
-#include <asm/cachectl.h>
-
-#ifndef __ASSEMBLY__
-#include <linux/init.h>
-#include <asm/barrier.h>
-#include <nds32_intrinsic.h>
-
-#ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
-#define FP_OFFSET (-3)
-#else
-#define FP_OFFSET (-2)
-#endif
-#define LP_OFFSET (-1)
-
-extern void __init early_trap_init(void);
-static inline void GIE_ENABLE(void)
-{
- mb();
- __nds32__gie_en();
-}
-
-static inline void GIE_DISABLE(void)
-{
- mb();
- __nds32__gie_dis();
-}
-
-static inline unsigned long CACHE_SET(unsigned char cache)
-{
-
- if (cache == ICACHE)
- return 64 << ((__nds32__mfsr(NDS32_SR_ICM_CFG) & ICM_CFG_mskISET) >>
- ICM_CFG_offISET);
- else
- return 64 << ((__nds32__mfsr(NDS32_SR_DCM_CFG) & DCM_CFG_mskDSET) >>
- DCM_CFG_offDSET);
-}
-
-static inline unsigned long CACHE_WAY(unsigned char cache)
-{
-
- if (cache == ICACHE)
- return 1 +
- ((__nds32__mfsr(NDS32_SR_ICM_CFG) & ICM_CFG_mskIWAY) >> ICM_CFG_offIWAY);
- else
- return 1 +
- ((__nds32__mfsr(NDS32_SR_DCM_CFG) & DCM_CFG_mskDWAY) >> DCM_CFG_offDWAY);
-}
-
-static inline unsigned long CACHE_LINE_SIZE(unsigned char cache)
-{
-
- if (cache == ICACHE)
- return 8 <<
- (((__nds32__mfsr(NDS32_SR_ICM_CFG) & ICM_CFG_mskISZ) >> ICM_CFG_offISZ) - 1);
- else
- return 8 <<
- (((__nds32__mfsr(NDS32_SR_DCM_CFG) & DCM_CFG_mskDSZ) >> DCM_CFG_offDSZ) - 1);
-}
-
-#endif /* __ASSEMBLY__ */
-
-#define IVB_BASE PHYS_OFFSET /* in user space for intr/exc/trap/break table base, 64KB aligned
- * We defined at the start of the physical memory */
-
-/* dispatched sub-entry exception handler numbering */
-#define RD_PROT 0 /* read protrection */
-#define WRT_PROT 1 /* write protection */
-#define NOEXEC 2 /* non executable */
-#define PAGE_MODIFY 3 /* page modified */
-#define ACC_BIT 4 /* access bit */
-#define RESVED_PTE 5 /* reserved PTE attribute */
-/* reserved 6 ~ 16 */
-
-#endif /* _ASM_NDS32_NDS32_H_ */
diff --git a/arch/nds32/include/asm/nds32_fpu_inst.h b/arch/nds32/include/asm/nds32_fpu_inst.h
deleted file mode 100644
index 1e4b86a90a48..000000000000
--- a/arch/nds32/include/asm/nds32_fpu_inst.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2005-2018 Andes Technology Corporation */
-
-#ifndef __NDS32_FPU_INST_H
-#define __NDS32_FPU_INST_H
-
-#define cop0_op 0x35
-
-/*
- * COP0 field of opcodes.
- */
-#define fs1_op 0x0
-#define fs2_op 0x4
-#define fd1_op 0x8
-#define fd2_op 0xc
-
-/*
- * FS1 opcode.
- */
-enum fs1 {
- fadds_op, fsubs_op, fcpynss_op, fcpyss_op,
- fmadds_op, fmsubs_op, fcmovns_op, fcmovzs_op,
- fnmadds_op, fnmsubs_op,
- fmuls_op = 0xc, fdivs_op,
- fs1_f2op_op = 0xf
-};
-
-/*
- * FS1/F2OP opcode.
- */
-enum fs1_f2 {
- fs2d_op, fsqrts_op,
- fui2s_op = 0x8, fsi2s_op = 0xc,
- fs2ui_op = 0x10, fs2ui_z_op = 0x14,
- fs2si_op = 0x18, fs2si_z_op = 0x1c
-};
-
-/*
- * FS2 opcode.
- */
-enum fs2 {
- fcmpeqs_op, fcmpeqs_e_op, fcmplts_op, fcmplts_e_op,
- fcmples_op, fcmples_e_op, fcmpuns_op, fcmpuns_e_op
-};
-
-/*
- * FD1 opcode.
- */
-enum fd1 {
- faddd_op, fsubd_op, fcpynsd_op, fcpysd_op,
- fmaddd_op, fmsubd_op, fcmovnd_op, fcmovzd_op,
- fnmaddd_op, fnmsubd_op,
- fmuld_op = 0xc, fdivd_op, fd1_f2op_op = 0xf
-};
-
-/*
- * FD1/F2OP opcode.
- */
-enum fd1_f2 {
- fd2s_op, fsqrtd_op,
- fui2d_op = 0x8, fsi2d_op = 0xc,
- fd2ui_op = 0x10, fd2ui_z_op = 0x14,
- fd2si_op = 0x18, fd2si_z_op = 0x1c
-};
-
-/*
- * FD2 opcode.
- */
-enum fd2 {
- fcmpeqd_op, fcmpeqd_e_op, fcmpltd_op, fcmpltd_e_op,
- fcmpled_op, fcmpled_e_op, fcmpund_op, fcmpund_e_op
-};
-
-#define NDS32Insn(x) x
-
-#define I_OPCODE_off 25
-#define NDS32Insn_OPCODE(x) (NDS32Insn(x) >> I_OPCODE_off)
-
-#define I_OPCODE_offRt 20
-#define I_OPCODE_mskRt (0x1fUL << I_OPCODE_offRt)
-#define NDS32Insn_OPCODE_Rt(x) \
- ((NDS32Insn(x) & I_OPCODE_mskRt) >> I_OPCODE_offRt)
-
-#define I_OPCODE_offRa 15
-#define I_OPCODE_mskRa (0x1fUL << I_OPCODE_offRa)
-#define NDS32Insn_OPCODE_Ra(x) \
- ((NDS32Insn(x) & I_OPCODE_mskRa) >> I_OPCODE_offRa)
-
-#define I_OPCODE_offRb 10
-#define I_OPCODE_mskRb (0x1fUL << I_OPCODE_offRb)
-#define NDS32Insn_OPCODE_Rb(x) \
- ((NDS32Insn(x) & I_OPCODE_mskRb) >> I_OPCODE_offRb)
-
-#define I_OPCODE_offbit1014 10
-#define I_OPCODE_mskbit1014 (0x1fUL << I_OPCODE_offbit1014)
-#define NDS32Insn_OPCODE_BIT1014(x) \
- ((NDS32Insn(x) & I_OPCODE_mskbit1014) >> I_OPCODE_offbit1014)
-
-#define I_OPCODE_offbit69 6
-#define I_OPCODE_mskbit69 (0xfUL << I_OPCODE_offbit69)
-#define NDS32Insn_OPCODE_BIT69(x) \
- ((NDS32Insn(x) & I_OPCODE_mskbit69) >> I_OPCODE_offbit69)
-
-#define I_OPCODE_offCOP0 0
-#define I_OPCODE_mskCOP0 (0x3fUL << I_OPCODE_offCOP0)
-#define NDS32Insn_OPCODE_COP0(x) \
- ((NDS32Insn(x) & I_OPCODE_mskCOP0) >> I_OPCODE_offCOP0)
-
-#endif /* __NDS32_FPU_INST_H */
diff --git a/arch/nds32/include/asm/page.h b/arch/nds32/include/asm/page.h
deleted file mode 100644
index add33a7f02c8..000000000000
--- a/arch/nds32/include/asm/page.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2005-2017 Andes Technology Corporation
- */
-
-#ifndef _ASMNDS32_PAGE_H
-#define _ASMNDS32_PAGE_H
-
-#ifdef CONFIG_ANDES_PAGE_SIZE_4KB
-#define PAGE_SHIFT 12
-#endif
-#ifdef CONFIG_ANDES_PAGE_SIZE_8KB
-#define PAGE_SHIFT 13
-#endif
-#include <linux/const.h>
-#define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
-#define PAGE_MASK (~(PAGE_SIZE-1))
-
-#ifdef __KERNEL__
-
-#ifndef __ASSEMBLY__
-
-struct page;
-struct vm_area_struct;
-#ifdef CONFIG_CPU_CACHE_ALIASING
-extern void copy_user_highpage(struct page *to, struct page *from,
- unsigned long vaddr, struct vm_area_struct *vma);
-extern void clear_user_highpage(struct page *page, unsigned long vaddr);
-
-void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
- struct page *to);
-void clear_user_page(void *addr, unsigned long vaddr, struct page *page);
-#define __HAVE_ARCH_COPY_USER_HIGHPAGE
-#define clear_user_highpage clear_user_highpage
-#else
-#define clear_user_page(page, vaddr, pg) clear_page(page)
-#define copy_user_page(to, from, vaddr, pg) copy_page(to, from)
-#endif
-
-void clear_page(void *page);
-void copy_page(void *to, void *from);
-
-typedef unsigned long pte_t;
-typedef unsigned long pgd_t;
-typedef unsigned long pgprot_t;
-
-#define pte_val(x) (x)
-#define pgd_val(x) (x)
-#define pgprot_val(x) (x)
-
-#define __pte(x) (x)
-#define __pgd(x) (x)
-#define __pgprot(x) (x)
-
-typedef struct page *pgtable_t;
-
-#include <asm/memory.h>
-#include <asm-generic/getorder.h>
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/arch/nds32/include/asm/perf_event.h b/arch/nds32/include/asm/perf_event.h
deleted file mode 100644
index fcdff02acc14..000000000000
--- a/arch/nds32/include/asm/perf_event.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2008-2018 Andes Technology Corporation */
-
-#ifndef __ASM_PERF_EVENT_H
-#define __ASM_PERF_EVENT_H
-
-/*
- * This file is request by Perf,
- * please refer to tools/perf/design.txt for more details
- */
-struct pt_regs;
-unsigned long perf_instruction_pointer(struct pt_regs *regs);
-unsigned long perf_misc_flags(struct pt_regs *regs);
-#define perf_misc_flags(regs) perf_misc_flags(regs)
-
-#endif
diff --git a/arch/nds32/include/asm/pgalloc.h b/arch/nds32/include/asm/pgalloc.h
deleted file mode 100644
index a08e1ebca70e..000000000000
--- a/arch/nds32/include/asm/pgalloc.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASMNDS32_PGALLOC_H
-#define _ASMNDS32_PGALLOC_H
-
-#include <asm/processor.h>
-#include <asm/cacheflush.h>
-#include <asm/tlbflush.h>
-#include <asm/proc-fns.h>
-
-#define __HAVE_ARCH_PTE_ALLOC_ONE
-#include <asm-generic/pgalloc.h> /* for pte_{alloc,free}_one */
-
-extern pgd_t *pgd_alloc(struct mm_struct *mm);
-extern void pgd_free(struct mm_struct *mm, pgd_t * pgd);
-
-static inline pgtable_t pte_alloc_one(struct mm_struct *mm)
-{
- pgtable_t pte;
-
- pte = __pte_alloc_one(mm, GFP_PGTABLE_USER);
- if (pte)
- cpu_dcache_wb_page((unsigned long)page_address(pte));
-
- return pte;
-}
-
-/*
- * Populate the pmdp entry with a pointer to the pte. This pmd is part
- * of the mm address space.
- *
- * Ensure that we always set both PMD entries.
- */
-static inline void
-pmd_populate_kernel(struct mm_struct *mm, pmd_t * pmdp, pte_t * ptep)
-{
- unsigned long pte_ptr = (unsigned long)ptep;
- unsigned long pmdval;
-
- BUG_ON(mm != &init_mm);
-
- /*
- * The pmd must be loaded with the physical
- * address of the PTE table
- */
- pmdval = __pa(pte_ptr) | _PAGE_KERNEL_TABLE;
- set_pmd(pmdp, __pmd(pmdval));
-}
-
-static inline void
-pmd_populate(struct mm_struct *mm, pmd_t * pmdp, pgtable_t ptep)
-{
- unsigned long pmdval;
-
- BUG_ON(mm == &init_mm);
-
- pmdval = page_to_pfn(ptep) << PAGE_SHIFT | _PAGE_USER_TABLE;
- set_pmd(pmdp, __pmd(pmdval));
-}
-
-#endif
diff --git a/arch/nds32/include/asm/pgtable.h b/arch/nds32/include/asm/pgtable.h
deleted file mode 100644
index 419f984eef70..000000000000
--- a/arch/nds32/include/asm/pgtable.h
+++ /dev/null
@@ -1,377 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASMNDS32_PGTABLE_H
-#define _ASMNDS32_PGTABLE_H
-
-#include <asm-generic/pgtable-nopmd.h>
-#include <linux/sizes.h>
-
-#include <asm/memory.h>
-#include <asm/nds32.h>
-#ifndef __ASSEMBLY__
-#include <asm/fixmap.h>
-#include <nds32_intrinsic.h>
-#endif
-
-#ifdef CONFIG_ANDES_PAGE_SIZE_4KB
-#define PGDIR_SHIFT 22
-#define PTRS_PER_PGD 1024
-#define PTRS_PER_PTE 1024
-#endif
-
-#ifdef CONFIG_ANDES_PAGE_SIZE_8KB
-#define PGDIR_SHIFT 24
-#define PTRS_PER_PGD 256
-#define PTRS_PER_PTE 2048
-#endif
-
-#ifndef __ASSEMBLY__
-extern void __pte_error(const char *file, int line, unsigned long val);
-extern void __pgd_error(const char *file, int line, unsigned long val);
-
-#define pte_ERROR(pte) __pte_error(__FILE__, __LINE__, pte_val(pte))
-#define pgd_ERROR(pgd) __pgd_error(__FILE__, __LINE__, pgd_val(pgd))
-#endif /* !__ASSEMBLY__ */
-
-#define PMD_SIZE (1UL << PMD_SHIFT)
-#define PMD_MASK (~(PMD_SIZE-1))
-#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
-#define PGDIR_MASK (~(PGDIR_SIZE-1))
-
-/*
- * This is the lowest virtual address we can permit any user space
- * mapping to be mapped at. This is particularly important for
- * non-high vector CPUs.
- */
-#define FIRST_USER_ADDRESS 0x8000
-
-#ifdef CONFIG_HIGHMEM
-#define CONSISTENT_BASE ((PKMAP_BASE) - (SZ_2M))
-#define CONSISTENT_END (PKMAP_BASE)
-#else
-#define CONSISTENT_BASE (FIXADDR_START - SZ_2M)
-#define CONSISTENT_END (FIXADDR_START)
-#endif
-#define CONSISTENT_OFFSET(x) (((unsigned long)(x) - CONSISTENT_BASE) >> PAGE_SHIFT)
-
-#ifdef CONFIG_HIGHMEM
-#ifndef __ASSEMBLY__
-#include <asm/highmem.h>
-#endif
-#endif
-
-#define VMALLOC_RESERVE SZ_128M
-#define VMALLOC_END (CONSISTENT_BASE - PAGE_SIZE)
-#define VMALLOC_START ((VMALLOC_END) - VMALLOC_RESERVE)
-#define VMALLOC_VMADDR(x) ((unsigned long)(x))
-#define MAXMEM __pa(VMALLOC_START)
-#define MAXMEM_PFN PFN_DOWN(MAXMEM)
-
-#define FIRST_USER_PGD_NR 0
-#define USER_PTRS_PER_PGD ((TASK_SIZE/PGDIR_SIZE) + FIRST_USER_PGD_NR)
-
-/* L2 PTE */
-#define _PAGE_V (1UL << 0)
-
-#define _PAGE_M_XKRW (0UL << 1)
-#define _PAGE_M_UR_KR (1UL << 1)
-#define _PAGE_M_UR_KRW (2UL << 1)
-#define _PAGE_M_URW_KRW (3UL << 1)
-#define _PAGE_M_KR (5UL << 1)
-#define _PAGE_M_KRW (7UL << 1)
-
-#define _PAGE_D (1UL << 4)
-#define _PAGE_E (1UL << 5)
-#define _PAGE_A (1UL << 6)
-#define _PAGE_G (1UL << 7)
-
-#define _PAGE_C_DEV (0UL << 8)
-#define _PAGE_C_DEV_WB (1UL << 8)
-#define _PAGE_C_MEM (2UL << 8)
-#define _PAGE_C_MEM_SHRD_WB (4UL << 8)
-#define _PAGE_C_MEM_SHRD_WT (5UL << 8)
-#define _PAGE_C_MEM_WB (6UL << 8)
-#define _PAGE_C_MEM_WT (7UL << 8)
-
-#define _PAGE_L (1UL << 11)
-
-#define _HAVE_PAGE_L (_PAGE_L)
-#define _PAGE_FILE (1UL << 1)
-#define _PAGE_YOUNG 0
-#define _PAGE_M_MASK _PAGE_M_KRW
-#define _PAGE_C_MASK _PAGE_C_MEM_WT
-
-#ifdef CONFIG_SMP
-#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
-#define _PAGE_CACHE_SHRD _PAGE_C_MEM_SHRD_WT
-#else
-#define _PAGE_CACHE_SHRD _PAGE_C_MEM_SHRD_WB
-#endif
-#else
-#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
-#define _PAGE_CACHE_SHRD _PAGE_C_MEM_WT
-#else
-#define _PAGE_CACHE_SHRD _PAGE_C_MEM_WB
-#endif
-#endif
-
-#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
-#define _PAGE_CACHE _PAGE_C_MEM_WT
-#else
-#define _PAGE_CACHE _PAGE_C_MEM_WB
-#endif
-
-#define _PAGE_IOREMAP \
- (_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_G | _PAGE_C_DEV)
-
-/*
- * + Level 1 descriptor (PMD)
- */
-#define PMD_TYPE_TABLE 0
-
-#ifndef __ASSEMBLY__
-
-#define _PAGE_USER_TABLE PMD_TYPE_TABLE
-#define _PAGE_KERNEL_TABLE PMD_TYPE_TABLE
-
-#define PAGE_EXEC __pgprot(_PAGE_V | _PAGE_M_XKRW | _PAGE_E)
-#define PAGE_NONE __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_A)
-#define PAGE_READ __pgprot(_PAGE_V | _PAGE_M_UR_KR)
-#define PAGE_RDWR __pgprot(_PAGE_V | _PAGE_M_URW_KRW | _PAGE_D)
-#define PAGE_COPY __pgprot(_PAGE_V | _PAGE_M_UR_KR)
-
-#define PAGE_UXKRWX_V1 __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_E | _PAGE_G | _PAGE_CACHE_SHRD)
-#define PAGE_UXKRWX_V2 __pgprot(_PAGE_V | _PAGE_M_XKRW | _PAGE_D | _PAGE_E | _PAGE_G | _PAGE_CACHE_SHRD)
-#define PAGE_URXKRWX_V2 __pgprot(_PAGE_V | _PAGE_M_UR_KRW | _PAGE_D | _PAGE_E | _PAGE_G | _PAGE_CACHE_SHRD)
-#define PAGE_CACHE_L1 __pgprot(_HAVE_PAGE_L | _PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_E | _PAGE_G | _PAGE_CACHE)
-#define PAGE_MEMORY __pgprot(_HAVE_PAGE_L | _PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_E | _PAGE_G | _PAGE_CACHE_SHRD)
-#define PAGE_KERNEL __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_E | _PAGE_G | _PAGE_CACHE_SHRD)
-#define PAGE_SHARED __pgprot(_PAGE_V | _PAGE_M_URW_KRW | _PAGE_D | _PAGE_CACHE_SHRD)
-#define PAGE_DEVICE __pgprot(_PAGE_V | _PAGE_M_KRW | _PAGE_D | _PAGE_G | _PAGE_C_DEV)
-#endif /* __ASSEMBLY__ */
-
-/* xwr */
-#define __P000 (PAGE_NONE | _PAGE_CACHE_SHRD)
-#define __P001 (PAGE_READ | _PAGE_CACHE_SHRD)
-#define __P010 (PAGE_COPY | _PAGE_CACHE_SHRD)
-#define __P011 (PAGE_COPY | _PAGE_CACHE_SHRD)
-#define __P100 (PAGE_EXEC | _PAGE_CACHE_SHRD)
-#define __P101 (PAGE_READ | _PAGE_E | _PAGE_CACHE_SHRD)
-#define __P110 (PAGE_COPY | _PAGE_E | _PAGE_CACHE_SHRD)
-#define __P111 (PAGE_COPY | _PAGE_E | _PAGE_CACHE_SHRD)
-
-#define __S000 (PAGE_NONE | _PAGE_CACHE_SHRD)
-#define __S001 (PAGE_READ | _PAGE_CACHE_SHRD)
-#define __S010 (PAGE_RDWR | _PAGE_CACHE_SHRD)
-#define __S011 (PAGE_RDWR | _PAGE_CACHE_SHRD)
-#define __S100 (PAGE_EXEC | _PAGE_CACHE_SHRD)
-#define __S101 (PAGE_READ | _PAGE_E | _PAGE_CACHE_SHRD)
-#define __S110 (PAGE_RDWR | _PAGE_E | _PAGE_CACHE_SHRD)
-#define __S111 (PAGE_RDWR | _PAGE_E | _PAGE_CACHE_SHRD)
-
-#ifndef __ASSEMBLY__
-/*
- * ZERO_PAGE is a global shared page that is always zero: used
- * for zero-mapped memory areas etc..
- */
-extern struct page *empty_zero_page;
-extern void paging_init(void);
-#define ZERO_PAGE(vaddr) (empty_zero_page)
-
-#define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT)
-#define pfn_pte(pfn,prot) (__pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot)))
-
-#define pte_none(pte) !(pte_val(pte))
-#define pte_clear(mm,addr,ptep) set_pte_at((mm),(addr),(ptep), __pte(0))
-#define pte_page(pte) (pfn_to_page(pte_pfn(pte)))
-
-static unsigned long pmd_page_vaddr(pmd_t pmd)
-{
- return ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK));
-}
-
-#define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)
-/*
- * Set a level 1 translation table entry, and clean it out of
- * any caches such that the MMUs can load it correctly.
- */
-static inline void set_pmd(pmd_t * pmdp, pmd_t pmd)
-{
-
- *pmdp = pmd;
-#if !defined(CONFIG_CPU_DCACHE_DISABLE) && !defined(CONFIG_CPU_DCACHE_WRITETHROUGH)
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (pmdp):"memory");
- __nds32__msync_all();
- __nds32__dsb();
-#endif
-}
-
-/*
- * Set a PTE and flush it out
- */
-static inline void set_pte(pte_t * ptep, pte_t pte)
-{
-
- *ptep = pte;
-#if !defined(CONFIG_CPU_DCACHE_DISABLE) && !defined(CONFIG_CPU_DCACHE_WRITETHROUGH)
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (ptep):"memory");
- __nds32__msync_all();
- __nds32__dsb();
-#endif
-}
-
-/*
- * The following only work if pte_present() is true.
- * Undefined behaviour if not..
- */
-
-/*
- * pte_write: this page is writeable for user mode
- * pte_read: this page is readable for user mode
- * pte_kernel_write: this page is writeable for kernel mode
- *
- * We don't have pte_kernel_read because kernel always can read.
- *
- * */
-
-#define pte_present(pte) (pte_val(pte) & _PAGE_V)
-#define pte_write(pte) ((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_URW_KRW)
-#define pte_read(pte) (((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_UR_KR) || \
- ((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_UR_KRW) || \
- ((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_URW_KRW))
-#define pte_kernel_write(pte) (((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_URW_KRW) || \
- ((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_UR_KRW) || \
- ((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_KRW) || \
- (((pte_val(pte) & _PAGE_M_MASK) == _PAGE_M_XKRW) && pte_exec(pte)))
-#define pte_exec(pte) (pte_val(pte) & _PAGE_E)
-#define pte_dirty(pte) (pte_val(pte) & _PAGE_D)
-#define pte_young(pte) (pte_val(pte) & _PAGE_YOUNG)
-
-/*
- * The following only works if pte_present() is not true.
- */
-#define pte_file(pte) (pte_val(pte) & _PAGE_FILE)
-#define pte_to_pgoff(x) (pte_val(x) >> 2)
-#define pgoff_to_pte(x) __pte(((x) << 2) | _PAGE_FILE)
-
-#define PTE_FILE_MAX_BITS 29
-
-#define PTE_BIT_FUNC(fn,op) \
-static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; }
-
-static inline pte_t pte_wrprotect(pte_t pte)
-{
- pte_val(pte) = pte_val(pte) & ~_PAGE_M_MASK;
- pte_val(pte) = pte_val(pte) | _PAGE_M_UR_KR;
- return pte;
-}
-
-static inline pte_t pte_mkwrite(pte_t pte)
-{
- pte_val(pte) = pte_val(pte) & ~_PAGE_M_MASK;
- pte_val(pte) = pte_val(pte) | _PAGE_M_URW_KRW;
- return pte;
-}
-
-PTE_BIT_FUNC(exprotect, &=~_PAGE_E);
-PTE_BIT_FUNC(mkexec, |=_PAGE_E);
-PTE_BIT_FUNC(mkclean, &=~_PAGE_D);
-PTE_BIT_FUNC(mkdirty, |=_PAGE_D);
-PTE_BIT_FUNC(mkold, &=~_PAGE_YOUNG);
-PTE_BIT_FUNC(mkyoung, |=_PAGE_YOUNG);
-
-/*
- * Mark the prot value as uncacheable and unbufferable.
- */
-#define pgprot_noncached(prot) __pgprot((pgprot_val(prot)&~_PAGE_C_MASK) | _PAGE_C_DEV)
-#define pgprot_writecombine(prot) __pgprot((pgprot_val(prot)&~_PAGE_C_MASK) | _PAGE_C_DEV_WB)
-
-#define pmd_none(pmd) (pmd_val(pmd)&0x1)
-#define pmd_present(pmd) (!pmd_none(pmd))
-#define pmd_bad(pmd) pmd_none(pmd)
-
-#define copy_pmd(pmdpd,pmdps) set_pmd((pmdpd), *(pmdps))
-#define pmd_clear(pmdp) set_pmd((pmdp), __pmd(1))
-
-static inline pmd_t __mk_pmd(pte_t * ptep, unsigned long prot)
-{
- unsigned long ptr = (unsigned long)ptep;
- pmd_t pmd;
-
- /*
- * The pmd must be loaded with the physical
- * address of the PTE table
- */
-
- pmd_val(pmd) = __virt_to_phys(ptr) | prot;
- return pmd;
-}
-
-#define pmd_page(pmd) virt_to_page(__va(pmd_val(pmd)))
-
-/*
- * Permanent address of a page. We never have highmem, so this is trivial.
- */
-#define pages_to_mb(x) ((x) >> (20 - PAGE_SHIFT))
-
-/*
- * Conversion functions: convert a page and protection to a page entry,
- * and a page entry and page directory to the page they refer to.
- */
-#define mk_pte(page,prot) pfn_pte(page_to_pfn(page),prot)
-
-/*
- * The "pgd_xxx()" functions here are trivial for a folded two-level
- * setup: the pgd is never bad, and a pmd always exists (as it's folded
- * into the pgd entry)
- */
-#define pgd_none(pgd) (0)
-#define pgd_bad(pgd) (0)
-#define pgd_present(pgd) (1)
-#define pgd_clear(pgdp) do { } while (0)
-
-#define page_pte_prot(page,prot) mk_pte(page, prot)
-#define page_pte(page) mk_pte(page, __pgprot(0))
-/*
- * L1PTE = $mr1 + ((virt >> PMD_SHIFT) << 2);
- * L2PTE = (((virt >> PAGE_SHIFT) & (PTRS_PER_PTE -1 )) << 2);
- * PPN = (phys & 0xfffff000);
- *
-*/
-
-static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
-{
- const unsigned long mask = 0xfff;
- pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask);
- return pte;
-}
-
-extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
-
-/* Encode and decode a swap entry.
- *
- * We support up to 32GB of swap on 4k machines
- */
-#define __swp_type(x) (((x).val >> 2) & 0x7f)
-#define __swp_offset(x) ((x).val >> 9)
-#define __swp_entry(type,offset) ((swp_entry_t) { ((type) << 2) | ((offset) << 9) })
-#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
-#define __swp_entry_to_pte(swp) ((pte_t) { (swp).val })
-
-/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
-#define kern_addr_valid(addr) (1)
-
-/*
- * We provide our own arch_get_unmapped_area to cope with VIPT caches.
- */
-#define HAVE_ARCH_UNMAPPED_AREA
-
-/*
- * remap a physical address `phys' of size `size' with page protection `prot'
- * into virtual address `from'
- */
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* _ASMNDS32_PGTABLE_H */
diff --git a/arch/nds32/include/asm/pmu.h b/arch/nds32/include/asm/pmu.h
deleted file mode 100644
index e1ac0b0b8bcf..000000000000
--- a/arch/nds32/include/asm/pmu.h
+++ /dev/null
@@ -1,386 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2008-2018 Andes Technology Corporation */
-
-#ifndef __ASM_PMU_H
-#define __ASM_PMU_H
-
-#include <linux/interrupt.h>
-#include <linux/perf_event.h>
-#include <asm/unistd.h>
-#include <asm/bitfield.h>
-
-/* Has special meaning for perf core implementation */
-#define HW_OP_UNSUPPORTED 0x0
-#define C(_x) PERF_COUNT_HW_CACHE_##_x
-#define CACHE_OP_UNSUPPORTED 0x0
-
-/* Enough for both software and hardware defined events */
-#define SOFTWARE_EVENT_MASK 0xFF
-
-#define PFM_OFFSET_MAGIC_0 2 /* DO NOT START FROM 0 */
-#define PFM_OFFSET_MAGIC_1 (PFM_OFFSET_MAGIC_0 + 36)
-#define PFM_OFFSET_MAGIC_2 (PFM_OFFSET_MAGIC_1 + 36)
-
-enum { PFMC0, PFMC1, PFMC2, MAX_COUNTERS };
-
-u32 PFM_CTL_OVF[3] = { PFM_CTL_mskOVF0, PFM_CTL_mskOVF1,
- PFM_CTL_mskOVF2 };
-u32 PFM_CTL_EN[3] = { PFM_CTL_mskEN0, PFM_CTL_mskEN1,
- PFM_CTL_mskEN2 };
-u32 PFM_CTL_OFFSEL[3] = { PFM_CTL_offSEL0, PFM_CTL_offSEL1,
- PFM_CTL_offSEL2 };
-u32 PFM_CTL_IE[3] = { PFM_CTL_mskIE0, PFM_CTL_mskIE1, PFM_CTL_mskIE2 };
-u32 PFM_CTL_KS[3] = { PFM_CTL_mskKS0, PFM_CTL_mskKS1, PFM_CTL_mskKS2 };
-u32 PFM_CTL_KU[3] = { PFM_CTL_mskKU0, PFM_CTL_mskKU1, PFM_CTL_mskKU2 };
-u32 PFM_CTL_SEL[3] = { PFM_CTL_mskSEL0, PFM_CTL_mskSEL1, PFM_CTL_mskSEL2 };
-/*
- * Perf Events' indices
- */
-#define NDS32_IDX_CYCLE_COUNTER 0
-#define NDS32_IDX_COUNTER0 1
-#define NDS32_IDX_COUNTER1 2
-
-/* The events for a given PMU register set. */
-struct pmu_hw_events {
- /*
- * The events that are active on the PMU for the given index.
- */
- struct perf_event *events[MAX_COUNTERS];
-
- /*
- * A 1 bit for an index indicates that the counter is being used for
- * an event. A 0 means that the counter can be used.
- */
- unsigned long used_mask[BITS_TO_LONGS(MAX_COUNTERS)];
-
- /*
- * Hardware lock to serialize accesses to PMU registers. Needed for the
- * read/modify/write sequences.
- */
- raw_spinlock_t pmu_lock;
-};
-
-struct nds32_pmu {
- struct pmu pmu;
- cpumask_t active_irqs;
- char *name;
- irqreturn_t (*handle_irq)(int irq_num, void *dev);
- void (*enable)(struct perf_event *event);
- void (*disable)(struct perf_event *event);
- int (*get_event_idx)(struct pmu_hw_events *hw_events,
- struct perf_event *event);
- int (*set_event_filter)(struct hw_perf_event *evt,
- struct perf_event_attr *attr);
- u32 (*read_counter)(struct perf_event *event);
- void (*write_counter)(struct perf_event *event, u32 val);
- void (*start)(struct nds32_pmu *nds32_pmu);
- void (*stop)(struct nds32_pmu *nds32_pmu);
- void (*reset)(void *data);
- int (*request_irq)(struct nds32_pmu *nds32_pmu, irq_handler_t handler);
- void (*free_irq)(struct nds32_pmu *nds32_pmu);
- int (*map_event)(struct perf_event *event);
- int num_events;
- atomic_t active_events;
- u64 max_period;
- struct platform_device *plat_device;
- struct pmu_hw_events *(*get_hw_events)(void);
-};
-
-#define to_nds32_pmu(p) (container_of(p, struct nds32_pmu, pmu))
-
-int nds32_pmu_register(struct nds32_pmu *nds32_pmu, int type);
-
-u64 nds32_pmu_event_update(struct perf_event *event);
-
-int nds32_pmu_event_set_period(struct perf_event *event);
-
-/*
- * Common NDS32 SPAv3 event types
- *
- * Note: An implementation may not be able to count all of these events
- * but the encodings are considered to be `reserved' in the case that
- * they are not available.
- *
- * SEL_TOTAL_CYCLES will add an offset is due to ZERO is defined as
- * NOT_SUPPORTED EVENT mapping in generic perf code.
- * You will need to deal it in the event writing implementation.
- */
-enum spav3_counter_0_perf_types {
- SPAV3_0_SEL_BASE = -1 + PFM_OFFSET_MAGIC_0, /* counting symbol */
- SPAV3_0_SEL_TOTAL_CYCLES = 0 + PFM_OFFSET_MAGIC_0,
- SPAV3_0_SEL_COMPLETED_INSTRUCTION = 1 + PFM_OFFSET_MAGIC_0,
- SPAV3_0_SEL_LAST /* counting symbol */
-};
-
-enum spav3_counter_1_perf_types {
- SPAV3_1_SEL_BASE = -1 + PFM_OFFSET_MAGIC_1, /* counting symbol */
- SPAV3_1_SEL_TOTAL_CYCLES = 0 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_COMPLETED_INSTRUCTION = 1 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_CONDITIONAL_BRANCH = 2 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_TAKEN_CONDITIONAL_BRANCH = 3 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_PREFETCH_INSTRUCTION = 4 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_RET_INST = 5 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_JR_INST = 6 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_JAL_JRAL_INST = 7 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_NOP_INST = 8 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_SCW_INST = 9 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_ISB_DSB_INST = 10 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_CCTL_INST = 11 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_TAKEN_INTERRUPTS = 12 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_LOADS_COMPLETED = 13 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_UITLB_ACCESS = 14 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_UDTLB_ACCESS = 15 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_MTLB_ACCESS = 16 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_CODE_CACHE_ACCESS = 17 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_DATA_DEPENDENCY_STALL_CYCLES = 18 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_DATA_CACHE_MISS_STALL_CYCLES = 19 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_DATA_CACHE_ACCESS = 20 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_DATA_CACHE_MISS = 21 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_LOAD_DATA_CACHE_ACCESS = 22 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_STORE_DATA_CACHE_ACCESS = 23 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_ILM_ACCESS = 24 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_LSU_BIU_CYCLES = 25 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_HPTWK_BIU_CYCLES = 26 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_DMA_BIU_CYCLES = 27 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_CODE_CACHE_FILL_BIU_CYCLES = 28 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_LEGAL_UNALIGN_DCACHE_ACCESS = 29 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_PUSH25 = 30 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_SYSCALLS_INST = 31 + PFM_OFFSET_MAGIC_1,
- SPAV3_1_SEL_LAST /* counting symbol */
-};
-
-enum spav3_counter_2_perf_types {
- SPAV3_2_SEL_BASE = -1 + PFM_OFFSET_MAGIC_2, /* counting symbol */
- SPAV3_2_SEL_TOTAL_CYCLES = 0 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_COMPLETED_INSTRUCTION = 1 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_CONDITIONAL_BRANCH_MISPREDICT = 2 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_TAKEN_CONDITIONAL_BRANCH_MISPREDICT =
- 3 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_PREFETCH_INSTRUCTION_CACHE_HIT = 4 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_RET_MISPREDICT = 5 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_IMMEDIATE_J_INST = 6 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_MULTIPLY_INST = 7 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_16_BIT_INST = 8 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_FAILED_SCW_INST = 9 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_LD_AFTER_ST_CONFLICT_REPLAYS = 10 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_TAKEN_EXCEPTIONS = 12 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_STORES_COMPLETED = 13 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_UITLB_MISS = 14 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_UDTLB_MISS = 15 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_MTLB_MISS = 16 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_CODE_CACHE_MISS = 17 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_EMPTY_INST_QUEUE_STALL_CYCLES = 18 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_DATA_WRITE_BACK = 19 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_DATA_CACHE_MISS = 21 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_LOAD_DATA_CACHE_MISS = 22 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_STORE_DATA_CACHE_MISS = 23 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_DLM_ACCESS = 24 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_LSU_BIU_REQUEST = 25 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_HPTWK_BIU_REQUEST = 26 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_DMA_BIU_REQUEST = 27 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_CODE_CACHE_FILL_BIU_REQUEST = 28 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_EXTERNAL_EVENTS = 29 + PFM_OFFSET_MAGIC_2,
- SPAV3_1_SEL_POP25 = 30 + PFM_OFFSET_MAGIC_2,
- SPAV3_2_SEL_LAST /* counting symbol */
-};
-
-/* Get converted event counter index */
-static inline int get_converted_event_idx(unsigned long event)
-{
- int idx;
-
- if ((event) > SPAV3_0_SEL_BASE && event < SPAV3_0_SEL_LAST) {
- idx = 0;
- } else if ((event) > SPAV3_1_SEL_BASE && event < SPAV3_1_SEL_LAST) {
- idx = 1;
- } else if ((event) > SPAV3_2_SEL_BASE && event < SPAV3_2_SEL_LAST) {
- idx = 2;
- } else {
- pr_err("GET_CONVERTED_EVENT_IDX PFM counter range error\n");
- return -EPERM;
- }
-
- return idx;
-}
-
-/* Get converted hardware event number */
-static inline u32 get_converted_evet_hw_num(u32 event)
-{
- if (event > SPAV3_0_SEL_BASE && event < SPAV3_0_SEL_LAST)
- event -= PFM_OFFSET_MAGIC_0;
- else if (event > SPAV3_1_SEL_BASE && event < SPAV3_1_SEL_LAST)
- event -= PFM_OFFSET_MAGIC_1;
- else if (event > SPAV3_2_SEL_BASE && event < SPAV3_2_SEL_LAST)
- event -= PFM_OFFSET_MAGIC_2;
- else if (event != 0)
- pr_err("GET_CONVERTED_EVENT_HW_NUM PFM counter range error\n");
-
- return event;
-}
-
-/*
- * NDS32 HW events mapping
- *
- * The hardware events that we support. We do support cache operations but
- * we have harvard caches and no way to combine instruction and data
- * accesses/misses in hardware.
- */
-static const unsigned int nds32_pfm_perf_map[PERF_COUNT_HW_MAX] = {
- [PERF_COUNT_HW_CPU_CYCLES] = SPAV3_0_SEL_TOTAL_CYCLES,
- [PERF_COUNT_HW_INSTRUCTIONS] = SPAV3_1_SEL_COMPLETED_INSTRUCTION,
- [PERF_COUNT_HW_CACHE_REFERENCES] = SPAV3_1_SEL_DATA_CACHE_ACCESS,
- [PERF_COUNT_HW_CACHE_MISSES] = SPAV3_2_SEL_DATA_CACHE_MISS,
- [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = HW_OP_UNSUPPORTED,
- [PERF_COUNT_HW_BRANCH_MISSES] = HW_OP_UNSUPPORTED,
- [PERF_COUNT_HW_BUS_CYCLES] = HW_OP_UNSUPPORTED,
- [PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] = HW_OP_UNSUPPORTED,
- [PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = HW_OP_UNSUPPORTED,
- [PERF_COUNT_HW_REF_CPU_CYCLES] = HW_OP_UNSUPPORTED
-};
-
-static const unsigned int nds32_pfm_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
- [PERF_COUNT_HW_CACHE_OP_MAX]
- [PERF_COUNT_HW_CACHE_RESULT_MAX] = {
- [C(L1D)] = {
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] =
- SPAV3_1_SEL_LOAD_DATA_CACHE_ACCESS,
- [C(RESULT_MISS)] =
- SPAV3_2_SEL_LOAD_DATA_CACHE_MISS,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] =
- SPAV3_1_SEL_STORE_DATA_CACHE_ACCESS,
- [C(RESULT_MISS)] =
- SPAV3_2_SEL_STORE_DATA_CACHE_MISS,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- },
- [C(L1I)] = {
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] =
- SPAV3_1_SEL_CODE_CACHE_ACCESS,
- [C(RESULT_MISS)] =
- SPAV3_2_SEL_CODE_CACHE_MISS,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] =
- SPAV3_1_SEL_CODE_CACHE_ACCESS,
- [C(RESULT_MISS)] =
- SPAV3_2_SEL_CODE_CACHE_MISS,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- },
- /* TODO: L2CC */
- [C(LL)] = {
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- },
- /* NDS32 PMU does not support TLB read/write hit/miss,
- * However, it can count access/miss, which mixed with read and write.
- * Therefore, only READ counter will use it.
- * We do as possible as we can.
- */
- [C(DTLB)] = {
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] =
- SPAV3_1_SEL_UDTLB_ACCESS,
- [C(RESULT_MISS)] =
- SPAV3_2_SEL_UDTLB_MISS,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- },
- [C(ITLB)] = {
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] =
- SPAV3_1_SEL_UITLB_ACCESS,
- [C(RESULT_MISS)] =
- SPAV3_2_SEL_UITLB_MISS,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- },
- [C(BPU)] = { /* What is BPU? */
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- },
- [C(NODE)] = { /* What is NODE? */
- [C(OP_READ)] = {
- [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- [C(OP_WRITE)] = {
- [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
- },
- [C(OP_PREFETCH)] = {
- [C(RESULT_ACCESS)] =
- CACHE_OP_UNSUPPORTED,
- [C(RESULT_MISS)] =
- CACHE_OP_UNSUPPORTED,
- },
- },
-};
-
-int nds32_pmu_map_event(struct perf_event *event,
- const unsigned int (*event_map)[PERF_COUNT_HW_MAX],
- const unsigned int (*cache_map)[PERF_COUNT_HW_CACHE_MAX]
- [PERF_COUNT_HW_CACHE_OP_MAX]
- [PERF_COUNT_HW_CACHE_RESULT_MAX], u32 raw_event_mask);
-
-#endif /* __ASM_PMU_H */
diff --git a/arch/nds32/include/asm/proc-fns.h b/arch/nds32/include/asm/proc-fns.h
deleted file mode 100644
index 27c617fa77af..000000000000
--- a/arch/nds32/include/asm/proc-fns.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_PROCFNS_H__
-#define __NDS32_PROCFNS_H__
-
-#ifdef __KERNEL__
-#include <asm/page.h>
-
-struct mm_struct;
-struct vm_area_struct;
-extern void cpu_proc_init(void);
-extern void cpu_proc_fin(void);
-extern void cpu_do_idle(void);
-extern void cpu_reset(unsigned long reset);
-extern void cpu_switch_mm(struct mm_struct *mm);
-
-extern void cpu_dcache_inval_all(void);
-extern void cpu_dcache_wbinval_all(void);
-extern void cpu_dcache_inval_page(unsigned long page);
-extern void cpu_dcache_wb_page(unsigned long page);
-extern void cpu_dcache_wbinval_page(unsigned long page);
-extern void cpu_dcache_inval_range(unsigned long start, unsigned long end);
-extern void cpu_dcache_wb_range(unsigned long start, unsigned long end);
-extern void cpu_dcache_wbinval_range(unsigned long start, unsigned long end);
-
-extern void cpu_icache_inval_all(void);
-extern void cpu_icache_inval_page(unsigned long page);
-extern void cpu_icache_inval_range(unsigned long start, unsigned long end);
-
-extern void cpu_cache_wbinval_page(unsigned long page, int flushi);
-extern void cpu_cache_wbinval_range(unsigned long start,
- unsigned long end, int flushi);
-extern void cpu_cache_wbinval_range_check(struct vm_area_struct *vma,
- unsigned long start,
- unsigned long end, bool flushi,
- bool wbd);
-
-extern void cpu_dma_wb_range(unsigned long start, unsigned long end);
-extern void cpu_dma_inval_range(unsigned long start, unsigned long end);
-extern void cpu_dma_wbinval_range(unsigned long start, unsigned long end);
-
-#endif /* __KERNEL__ */
-#endif /* __NDS32_PROCFNS_H__ */
diff --git a/arch/nds32/include/asm/processor.h b/arch/nds32/include/asm/processor.h
deleted file mode 100644
index e6bfc74972bb..000000000000
--- a/arch/nds32/include/asm/processor.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_PROCESSOR_H
-#define __ASM_NDS32_PROCESSOR_H
-
-#ifdef __KERNEL__
-
-#include <asm/ptrace.h>
-#include <asm/types.h>
-#include <asm/sigcontext.h>
-
-#define KERNEL_STACK_SIZE PAGE_SIZE
-#define STACK_TOP TASK_SIZE
-#define STACK_TOP_MAX TASK_SIZE
-
-struct cpu_context {
- unsigned long r6;
- unsigned long r7;
- unsigned long r8;
- unsigned long r9;
- unsigned long r10;
- unsigned long r11;
- unsigned long r12;
- unsigned long r13;
- unsigned long r14;
- unsigned long fp;
- unsigned long pc;
- unsigned long sp;
-};
-
-struct thread_struct {
- struct cpu_context cpu_context; /* cpu context */
- /* fault info */
- unsigned long address;
- unsigned long trap_no;
- unsigned long error_code;
-
- struct fpu_struct fpu;
-};
-
-#define INIT_THREAD { }
-
-#ifdef __NDS32_EB__
-#define PSW_DE PSW_mskBE
-#else
-#define PSW_DE 0x0
-#endif
-
-#ifdef CONFIG_WBNA
-#define PSW_valWBNA PSW_mskWBNA
-#else
-#define PSW_valWBNA 0x0
-#endif
-
-#ifdef CONFIG_HWZOL
-#define PSW_valINIT (PSW_CPL_ANY | PSW_mskAEN | PSW_valWBNA | PSW_mskDT | PSW_mskIT | PSW_DE | PSW_mskGIE)
-#else
-#define PSW_valINIT (PSW_CPL_ANY | PSW_valWBNA | PSW_mskDT | PSW_mskIT | PSW_DE | PSW_mskGIE)
-#endif
-
-#define start_thread(regs,pc,stack) \
-({ \
- memzero(regs, sizeof(struct pt_regs)); \
- forget_syscall(regs); \
- regs->ipsw = PSW_valINIT; \
- regs->ir0 = (PSW_CPL_ANY | PSW_valWBNA | PSW_mskDT | PSW_mskIT | PSW_DE | PSW_SYSTEM | PSW_INTL_1); \
- regs->ipc = pc; \
- regs->sp = stack; \
-})
-
-/* Forward declaration, a strange C thing */
-struct task_struct;
-
-/* Free all resources held by a thread. */
-#define release_thread(thread) do { } while(0)
-#if IS_ENABLED(CONFIG_FPU)
-#if !IS_ENABLED(CONFIG_UNLAZU_FPU)
-extern struct task_struct *last_task_used_math;
-#endif
-#endif
-
-/* Prepare to copy thread state - unlazy all lazy status */
-#define prepare_to_copy(tsk) do { } while (0)
-
-unsigned long __get_wchan(struct task_struct *p);
-
-#define cpu_relax() barrier()
-
-#define task_pt_regs(task) \
- ((struct pt_regs *) (task_stack_page(task) + THREAD_SIZE \
- - 8) - 1)
-
-/*
- * Create a new kernel thread
- */
-extern int kernel_thread(int (*fn) (void *), void *arg, unsigned long flags);
-
-#define KSTK_EIP(tsk) instruction_pointer(task_pt_regs(tsk))
-#define KSTK_ESP(tsk) user_stack_pointer(task_pt_regs(tsk))
-
-#endif
-
-#endif /* __ASM_NDS32_PROCESSOR_H */
diff --git a/arch/nds32/include/asm/ptrace.h b/arch/nds32/include/asm/ptrace.h
deleted file mode 100644
index 919ee223620c..000000000000
--- a/arch/nds32/include/asm/ptrace.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_PTRACE_H
-#define __ASM_NDS32_PTRACE_H
-
-#include <uapi/asm/ptrace.h>
-
-/*
- * If pt_regs.syscallno == NO_SYSCALL, then the thread is not executing
- * a syscall -- i.e., its most recent entry into the kernel from
- * userspace was not via syscall, or otherwise a tracer cancelled the
- * syscall.
- *
- * This must have the value -1, for ABI compatibility with ptrace etc.
- */
-#define NO_SYSCALL (-1)
-#ifndef __ASSEMBLY__
-#include <linux/types.h>
-
-struct pt_regs {
- union {
- struct user_pt_regs user_regs;
- struct {
- long uregs[26];
- long fp;
- long gp;
- long lp;
- long sp;
- long ipc;
-#if defined(CONFIG_HWZOL)
- long lb;
- long le;
- long lc;
-#else
- long dummy[3];
-#endif
- long syscallno;
- };
- };
- long orig_r0;
- long ir0;
- long ipsw;
- long pipsw;
- long pipc;
- long pp0;
- long pp1;
- long fucop_ctl;
- long osp;
-};
-
-static inline bool in_syscall(struct pt_regs const *regs)
-{
- return regs->syscallno != NO_SYSCALL;
-}
-
-static inline void forget_syscall(struct pt_regs *regs)
-{
- regs->syscallno = NO_SYSCALL;
-}
-static inline unsigned long regs_return_value(struct pt_regs *regs)
-{
- return regs->uregs[0];
-}
-extern void show_regs(struct pt_regs *);
-/* Avoid circular header include via sched.h */
-struct task_struct;
-
-#define arch_has_single_step() (1)
-#define user_mode(regs) (((regs)->ipsw & PSW_mskPOM) == 0)
-#define interrupts_enabled(regs) (!!((regs)->ipsw & PSW_mskGIE))
-#define user_stack_pointer(regs) ((regs)->sp)
-#define instruction_pointer(regs) ((regs)->ipc)
-#define profile_pc(regs) instruction_pointer(regs)
-
-#endif /* __ASSEMBLY__ */
-#endif
diff --git a/arch/nds32/include/asm/sfp-machine.h b/arch/nds32/include/asm/sfp-machine.h
deleted file mode 100644
index b1a5caa332b5..000000000000
--- a/arch/nds32/include/asm/sfp-machine.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2005-2018 Andes Technology Corporation */
-
-#include <asm/bitfield.h>
-
-#define _FP_W_TYPE_SIZE 32
-#define _FP_W_TYPE unsigned long
-#define _FP_WS_TYPE signed long
-#define _FP_I_TYPE long
-
-#define __ll_B ((UWtype) 1 << (W_TYPE_SIZE / 2))
-#define __ll_lowpart(t) ((UWtype) (t) & (__ll_B - 1))
-#define __ll_highpart(t) ((UWtype) (t) >> (W_TYPE_SIZE / 2))
-
-#define _FP_MUL_MEAT_S(R, X, Y) \
- _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S, R, X, Y, umul_ppmm)
-#define _FP_MUL_MEAT_D(R, X, Y) \
- _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D, R, X, Y, umul_ppmm)
-#define _FP_MUL_MEAT_Q(R, X, Y) \
- _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q, R, X, Y, umul_ppmm)
-
-#define _FP_MUL_MEAT_DW_S(R, X, Y) \
- _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S, R, X, Y, umul_ppmm)
-#define _FP_MUL_MEAT_DW_D(R, X, Y) \
- _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D, R, X, Y, umul_ppmm)
-
-#define _FP_DIV_MEAT_S(R, X, Y) _FP_DIV_MEAT_1_udiv_norm(S, R, X, Y)
-#define _FP_DIV_MEAT_D(R, X, Y) _FP_DIV_MEAT_2_udiv(D, R, X, Y)
-
-#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
-#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
-#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
-#define _FP_NANSIGN_S 0
-#define _FP_NANSIGN_D 0
-#define _FP_NANSIGN_Q 0
-
-#define _FP_KEEPNANFRACP 1
-#define _FP_QNANNEGATEDP 0
-
-#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
-do { \
- if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
- && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) { \
- R##_s = Y##_s; \
- _FP_FRAC_COPY_##wc(R, Y); \
- } else { \
- R##_s = X##_s; \
- _FP_FRAC_COPY_##wc(R, X); \
- } \
- R##_c = FP_CLS_NAN; \
-} while (0)
-
-#define __FPU_FPCSR (current->thread.fpu.fpcsr)
-
-/* Obtain the current rounding mode. */
-#define FP_ROUNDMODE \
-({ \
- __FPU_FPCSR & FPCSR_mskRM; \
-})
-
-#define FP_RND_NEAREST 0
-#define FP_RND_PINF 1
-#define FP_RND_MINF 2
-#define FP_RND_ZERO 3
-
-#define FP_EX_INVALID FPCSR_mskIVO
-#define FP_EX_DIVZERO FPCSR_mskDBZ
-#define FP_EX_OVERFLOW FPCSR_mskOVF
-#define FP_EX_UNDERFLOW FPCSR_mskUDF
-#define FP_EX_INEXACT FPCSR_mskIEX
-
-#define SF_CEQ 2
-#define SF_CLT 1
-#define SF_CGT 3
-#define SF_CUN 4
-
-#include <asm/byteorder.h>
-
-#ifdef __BIG_ENDIAN__
-#define __BYTE_ORDER __BIG_ENDIAN
-#define __LITTLE_ENDIAN 0
-#else
-#define __BYTE_ORDER __LITTLE_ENDIAN
-#define __BIG_ENDIAN 0
-#endif
-
-#define abort() do { } while (0)
-#define umul_ppmm(w1, w0, u, v) \
-do { \
- UWtype __x0, __x1, __x2, __x3; \
- UHWtype __ul, __vl, __uh, __vh; \
- \
- __ul = __ll_lowpart(u); \
- __uh = __ll_highpart(u); \
- __vl = __ll_lowpart(v); \
- __vh = __ll_highpart(v); \
- \
- __x0 = (UWtype) __ul * __vl; \
- __x1 = (UWtype) __ul * __vh; \
- __x2 = (UWtype) __uh * __vl; \
- __x3 = (UWtype) __uh * __vh; \
- \
- __x1 += __ll_highpart(__x0); \
- __x1 += __x2; \
- if (__x1 < __x2) \
- __x3 += __ll_B; \
- \
- (w1) = __x3 + __ll_highpart(__x1); \
- (w0) = __ll_lowpart(__x1) * __ll_B + __ll_lowpart(__x0); \
-} while (0)
-
-#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
-do { \
- UWtype __x; \
- __x = (al) + (bl); \
- (sh) = (ah) + (bh) + (__x < (al)); \
- (sl) = __x; \
-} while (0)
-
-#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
-do { \
- UWtype __x; \
- __x = (al) - (bl); \
- (sh) = (ah) - (bh) - (__x > (al)); \
- (sl) = __x; \
-} while (0)
-
-#define udiv_qrnnd(q, r, n1, n0, d) \
-do { \
- UWtype __d1, __d0, __q1, __q0, __r1, __r0, __m; \
- __d1 = __ll_highpart(d); \
- __d0 = __ll_lowpart(d); \
- \
- __r1 = (n1) % __d1; \
- __q1 = (n1) / __d1; \
- __m = (UWtype) __q1 * __d0; \
- __r1 = __r1 * __ll_B | __ll_highpart(n0); \
- if (__r1 < __m) { \
- __q1--, __r1 += (d); \
- if (__r1 >= (d)) \
- if (__r1 < __m) \
- __q1--, __r1 += (d); \
- } \
- __r1 -= __m; \
- __r0 = __r1 % __d1; \
- __q0 = __r1 / __d1; \
- __m = (UWtype) __q0 * __d0; \
- __r0 = __r0 * __ll_B | __ll_lowpart(n0); \
- if (__r0 < __m) { \
- __q0--, __r0 += (d); \
- if (__r0 >= (d)) \
- if (__r0 < __m) \
- __q0--, __r0 += (d); \
- } \
- __r0 -= __m; \
- (q) = (UWtype) __q1 * __ll_B | __q0; \
- (r) = __r0; \
-} while (0)
diff --git a/arch/nds32/include/asm/shmparam.h b/arch/nds32/include/asm/shmparam.h
deleted file mode 100644
index 3aeee946973d..000000000000
--- a/arch/nds32/include/asm/shmparam.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASMNDS32_SHMPARAM_H
-#define _ASMNDS32_SHMPARAM_H
-
-/*
- * This should be the size of the virtually indexed cache/ways,
- * whichever is greater since the cache aliases every size/ways
- * bytes.
- */
-#define SHMLBA (4 * SZ_8K) /* attach addr a multiple of this */
-
-/*
- * Enforce SHMLBA in shmat
- */
-#define __ARCH_FORCE_SHMLBA
-
-#endif /* _ASMNDS32_SHMPARAM_H */
diff --git a/arch/nds32/include/asm/stacktrace.h b/arch/nds32/include/asm/stacktrace.h
deleted file mode 100644
index 6bf7c777bda4..000000000000
--- a/arch/nds32/include/asm/stacktrace.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2008-2018 Andes Technology Corporation */
-
-#ifndef __ASM_STACKTRACE_H
-#define __ASM_STACKTRACE_H
-
-/* Kernel callchain */
-struct stackframe {
- unsigned long fp;
- unsigned long sp;
- unsigned long lp;
-};
-
-/*
- * struct frame_tail: User callchain
- * IMPORTANT:
- * This struct is used for call-stack walking,
- * the order and types matters.
- * Do not use array, it only stores sizeof(pointer)
- *
- * The details can refer to arch/arm/kernel/perf_event.c
- */
-struct frame_tail {
- unsigned long stack_fp;
- unsigned long stack_lp;
-};
-
-/* For User callchain with optimize for size */
-struct frame_tail_opt_size {
- unsigned long stack_r6;
- unsigned long stack_fp;
- unsigned long stack_gp;
- unsigned long stack_lp;
-};
-
-extern void
-get_real_ret_addr(unsigned long *addr, struct task_struct *tsk, int *graph);
-
-#endif /* __ASM_STACKTRACE_H */
diff --git a/arch/nds32/include/asm/string.h b/arch/nds32/include/asm/string.h
deleted file mode 100644
index cae8fe16de98..000000000000
--- a/arch/nds32/include/asm/string.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_STRING_H
-#define __ASM_NDS32_STRING_H
-
-#define __HAVE_ARCH_MEMCPY
-extern void *memcpy(void *, const void *, __kernel_size_t);
-
-#define __HAVE_ARCH_MEMMOVE
-extern void *memmove(void *, const void *, __kernel_size_t);
-
-#define __HAVE_ARCH_MEMSET
-extern void *memset(void *, int, __kernel_size_t);
-
-extern void *memzero(void *ptr, __kernel_size_t n);
-#endif
diff --git a/arch/nds32/include/asm/suspend.h b/arch/nds32/include/asm/suspend.h
deleted file mode 100644
index 6ed2418af1ac..000000000000
--- a/arch/nds32/include/asm/suspend.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2008-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_SUSPEND_H
-#define __ASM_NDS32_SUSPEND_H
-
-extern void suspend2ram(void);
-extern void cpu_resume(void);
-extern unsigned long wake_mask;
-
-#endif
diff --git a/arch/nds32/include/asm/swab.h b/arch/nds32/include/asm/swab.h
deleted file mode 100644
index 362a466f2976..000000000000
--- a/arch/nds32/include/asm/swab.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_SWAB_H__
-#define __NDS32_SWAB_H__
-
-#include <linux/types.h>
-#include <linux/compiler.h>
-
-static __inline__ __attribute_const__ __u32 ___arch__swab32(__u32 x)
-{
- __asm__("wsbh %0, %0\n\t" /* word swap byte within halfword */
- "rotri %0, %0, #16\n"
- :"=r"(x)
- :"0"(x));
- return x;
-}
-
-static __inline__ __attribute_const__ __u16 ___arch__swab16(__u16 x)
-{
- __asm__("wsbh %0, %0\n" /* word swap byte within halfword */
- :"=r"(x)
- :"0"(x));
- return x;
-}
-
-#define __arch_swab32(x) ___arch__swab32(x)
-#define __arch_swab16(x) ___arch__swab16(x)
-
-#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
-#define __BYTEORDER_HAS_U64__
-#define __SWAB_64_THRU_32__
-#endif
-
-#endif /* __NDS32_SWAB_H__ */
diff --git a/arch/nds32/include/asm/syscall.h b/arch/nds32/include/asm/syscall.h
deleted file mode 100644
index 90aa56c94af1..000000000000
--- a/arch/nds32/include/asm/syscall.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2008-2009 Red Hat, Inc. All rights reserved.
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASM_NDS32_SYSCALL_H
-#define _ASM_NDS32_SYSCALL_H 1
-
-#include <uapi/linux/audit.h>
-#include <linux/err.h>
-struct task_struct;
-struct pt_regs;
-
-/**
- * syscall_get_nr - find what system call a task is executing
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- *
- * If @task is executing a system call or is at system call
- * tracing about to attempt one, returns the system call number.
- * If @task is not executing a system call, i.e. it's blocked
- * inside the kernel for a fault or signal, returns -1.
- *
- * Note this returns int even on 64-bit machines. Only 32 bits of
- * system call number can be meaningful. If the actual arch value
- * is 64 bits, this truncates to 32 bits so 0xffffffff means -1.
- *
- * It's only valid to call this when @task is known to be blocked.
- */
-static inline int
-syscall_get_nr(struct task_struct *task, struct pt_regs *regs)
-{
- return regs->syscallno;
-}
-
-/**
- * syscall_rollback - roll back registers after an aborted system call
- * @task: task of interest, must be in system call exit tracing
- * @regs: task_pt_regs() of @task
- *
- * It's only valid to call this when @task is stopped for system
- * call exit tracing (due to TIF_SYSCALL_TRACE or TIF_SYSCALL_AUDIT),
- * after tracehook_report_syscall_entry() returned nonzero to prevent
- * the system call from taking place.
- *
- * This rolls back the register state in @regs so it's as if the
- * system call instruction was a no-op. The registers containing
- * the system call number and arguments are as they were before the
- * system call instruction. This may not be the same as what the
- * register state looked like at system call entry tracing.
- */
-static inline void
-syscall_rollback(struct task_struct *task, struct pt_regs *regs)
-{
- regs->uregs[0] = regs->orig_r0;
-}
-
-/**
- * syscall_get_error - check result of traced system call
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- *
- * Returns 0 if the system call succeeded, or -ERRORCODE if it failed.
- *
- * It's only valid to call this when @task is stopped for tracing on exit
- * from a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT.
- */
-static inline long
-syscall_get_error(struct task_struct *task, struct pt_regs *regs)
-{
- unsigned long error = regs->uregs[0];
- return IS_ERR_VALUE(error) ? error : 0;
-}
-
-/**
- * syscall_get_return_value - get the return value of a traced system call
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- *
- * Returns the return value of the successful system call.
- * This value is meaningless if syscall_get_error() returned nonzero.
- *
- * It's only valid to call this when @task is stopped for tracing on exit
- * from a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT.
- */
-static inline long
-syscall_get_return_value(struct task_struct *task, struct pt_regs *regs)
-{
- return regs->uregs[0];
-}
-
-/**
- * syscall_set_return_value - change the return value of a traced system call
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- * @error: negative error code, or zero to indicate success
- * @val: user return value if @error is zero
- *
- * This changes the results of the system call that user mode will see.
- * If @error is zero, the user sees a successful system call with a
- * return value of @val. If @error is nonzero, it's a negated errno
- * code; the user sees a failed system call with this errno code.
- *
- * It's only valid to call this when @task is stopped for tracing on exit
- * from a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT.
- */
-static inline void
-syscall_set_return_value(struct task_struct *task, struct pt_regs *regs,
- int error, long val)
-{
- regs->uregs[0] = (long)error ? error : val;
-}
-
-/**
- * syscall_get_arguments - extract system call parameter values
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- * @args: array filled with argument values
- *
- * Fetches 6 arguments to the system call (from 0 through 5). The first
- * argument is stored in @args[0], and so on.
- *
- * It's only valid to call this when @task is stopped for tracing on
- * entry to a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT.
- */
-#define SYSCALL_MAX_ARGS 6
-static inline void
-syscall_get_arguments(struct task_struct *task, struct pt_regs *regs,
- unsigned long *args)
-{
- args[0] = regs->orig_r0;
- args++;
- memcpy(args, ®s->uregs[0] + 1, 5 * sizeof(args[0]));
-}
-
-static inline int
-syscall_get_arch(struct task_struct *task)
-{
- return IS_ENABLED(CONFIG_CPU_BIG_ENDIAN)
- ? AUDIT_ARCH_NDS32BE : AUDIT_ARCH_NDS32;
-}
-
-#endif /* _ASM_NDS32_SYSCALL_H */
diff --git a/arch/nds32/include/asm/syscalls.h b/arch/nds32/include/asm/syscalls.h
deleted file mode 100644
index 4e7216082a67..000000000000
--- a/arch/nds32/include/asm/syscalls.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_SYSCALLS_H
-#define __ASM_NDS32_SYSCALLS_H
-
-asmlinkage long sys_cacheflush(unsigned long addr, unsigned long len, unsigned int op);
-asmlinkage long sys_fadvise64_64_wrapper(int fd, int advice, loff_t offset, loff_t len);
-asmlinkage long sys_rt_sigreturn_wrapper(void);
-asmlinkage long sys_fp_udfiex_crtl(int cmd, int act);
-
-#include <asm-generic/syscalls.h>
-
-#endif /* __ASM_NDS32_SYSCALLS_H */
diff --git a/arch/nds32/include/asm/thread_info.h b/arch/nds32/include/asm/thread_info.h
deleted file mode 100644
index d3967ad184f0..000000000000
--- a/arch/nds32/include/asm/thread_info.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_THREAD_INFO_H
-#define __ASM_NDS32_THREAD_INFO_H
-
-#ifdef __KERNEL__
-
-#define THREAD_SIZE_ORDER (1)
-#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER)
-
-#ifndef __ASSEMBLY__
-
-struct task_struct;
-
-#include <asm/ptrace.h>
-#include <asm/types.h>
-
-typedef unsigned long mm_segment_t;
-
-/*
- * low level task data that entry.S needs immediate access to.
- * __switch_to() assumes cpu_context follows immediately after cpu_domain.
- */
-struct thread_info {
- unsigned long flags; /* low level flags */
- __s32 preempt_count; /* 0 => preemptable, <0 => bug */
- mm_segment_t addr_limit; /* address limit */
-};
-#define INIT_THREAD_INFO(tsk) \
-{ \
- .preempt_count = INIT_PREEMPT_COUNT, \
- .addr_limit = KERNEL_DS, \
-}
-#define thread_saved_pc(tsk) ((unsigned long)(tsk->thread.cpu_context.pc))
-#define thread_saved_fp(tsk) ((unsigned long)(tsk->thread.cpu_context.fp))
-#endif
-
-/*
- * thread information flags:
- * TIF_SYSCALL_TRACE - syscall trace active
- * TIF_SIGPENDING - signal pending
- * TIF_NEED_RESCHED - rescheduling necessary
- * TIF_NOTIFY_RESUME - callback before returning to user
- * TIF_POLLING_NRFLAG - true if poll_idle() is polling TIF_NEED_RESCHED
- */
-#define TIF_SIGPENDING 1
-#define TIF_NEED_RESCHED 2
-#define TIF_SINGLESTEP 3
-#define TIF_NOTIFY_RESUME 4 /* callback before returning to user */
-#define TIF_NOTIFY_SIGNAL 5 /* signal notifications exist */
-#define TIF_SYSCALL_TRACE 8
-#define TIF_POLLING_NRFLAG 17
-#define TIF_MEMDIE 18
-#define TIF_FREEZE 19
-#define TIF_RESTORE_SIGMASK 20
-
-#define _TIF_SIGPENDING (1 << TIF_SIGPENDING)
-#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
-#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
-#define _TIF_NOTIFY_SIGNAL (1 << TIF_NOTIFY_SIGNAL)
-#define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP)
-#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
-#define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG)
-#define _TIF_FREEZE (1 << TIF_FREEZE)
-#define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK)
-
-/*
- * Change these and you break ASM code in entry-common.S
- */
-#define _TIF_WORK_MASK 0x000000ff
-#define _TIF_WORK_SYSCALL_ENTRY (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP)
-#define _TIF_WORK_SYSCALL_LEAVE (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP)
-
-#endif /* __KERNEL__ */
-#endif /* __ASM_NDS32_THREAD_INFO_H */
diff --git a/arch/nds32/include/asm/tlb.h b/arch/nds32/include/asm/tlb.h
deleted file mode 100644
index 672603804a3b..000000000000
--- a/arch/nds32/include/asm/tlb.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASMNDS32_TLB_H
-#define __ASMNDS32_TLB_H
-
-#include <asm-generic/tlb.h>
-
-#define __pte_free_tlb(tlb, pte, addr) pte_free((tlb)->mm, pte)
-
-#endif
diff --git a/arch/nds32/include/asm/tlbflush.h b/arch/nds32/include/asm/tlbflush.h
deleted file mode 100644
index 97155366ea01..000000000000
--- a/arch/nds32/include/asm/tlbflush.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASMNDS32_TLBFLUSH_H
-#define _ASMNDS32_TLBFLUSH_H
-
-#include <linux/spinlock.h>
-#include <linux/mm.h>
-#include <nds32_intrinsic.h>
-
-static inline void local_flush_tlb_all(void)
-{
- __nds32__tlbop_flua();
- __nds32__isb();
-}
-
-static inline void local_flush_tlb_mm(struct mm_struct *mm)
-{
- __nds32__tlbop_flua();
- __nds32__isb();
-}
-
-static inline void local_flush_tlb_kernel_range(unsigned long start,
- unsigned long end)
-{
- while (start < end) {
- __nds32__tlbop_inv(start);
- __nds32__isb();
- start += PAGE_SIZE;
- }
-}
-
-void local_flush_tlb_range(struct vm_area_struct *vma,
- unsigned long start, unsigned long end);
-void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long addr);
-
-#define flush_tlb_all local_flush_tlb_all
-#define flush_tlb_mm local_flush_tlb_mm
-#define flush_tlb_range local_flush_tlb_range
-#define flush_tlb_page local_flush_tlb_page
-#define flush_tlb_kernel_range local_flush_tlb_kernel_range
-
-void update_mmu_cache(struct vm_area_struct *vma,
- unsigned long address, pte_t * pte);
-
-#endif
diff --git a/arch/nds32/include/asm/uaccess.h b/arch/nds32/include/asm/uaccess.h
deleted file mode 100644
index d4cbf069dc22..000000000000
--- a/arch/nds32/include/asm/uaccess.h
+++ /dev/null
@@ -1,286 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASMANDES_UACCESS_H
-#define _ASMANDES_UACCESS_H
-
-/*
- * User space memory access functions
- */
-#include <linux/sched.h>
-#include <asm/errno.h>
-#include <asm/memory.h>
-#include <asm/types.h>
-
-#define __asmeq(x, y) ".ifnc " x "," y " ; .err ; .endif\n\t"
-
-/*
- * The exception table consists of pairs of addresses: the first is the
- * address of an instruction that is allowed to fault, and the second is
- * the address at which the program should continue. No registers are
- * modified, so it is entirely up to the continuation code to figure out
- * what to do.
- *
- * All the routines below use bits of fixup code that are out of line
- * with the main instruction path. This means when everything is well,
- * we don't even have to jump over them. Further, they do not intrude
- * on our cache or tlb entries.
- */
-
-struct exception_table_entry {
- unsigned long insn, fixup;
-};
-
-extern int fixup_exception(struct pt_regs *regs);
-
-#define KERNEL_DS ((mm_segment_t) { ~0UL })
-#define USER_DS ((mm_segment_t) {TASK_SIZE - 1})
-
-#define get_fs() (current_thread_info()->addr_limit)
-#define user_addr_max get_fs
-
-static inline void set_fs(mm_segment_t fs)
-{
- current_thread_info()->addr_limit = fs;
-}
-
-#define uaccess_kernel() (get_fs() == KERNEL_DS)
-
-#define __range_ok(addr, size) (size <= get_fs() && addr <= (get_fs() -size))
-
-#define access_ok(addr, size) \
- __range_ok((unsigned long)addr, (unsigned long)size)
-/*
- * Single-value transfer routines. They automatically use the right
- * size if we just have the right pointer type. Note that the functions
- * which read from user space (*get_*) need to take care not to leak
- * kernel data even if the calling code is buggy and fails to check
- * the return value. This means zeroing out the destination variable
- * or buffer on error. Normally this is done out of line by the
- * fixup code, but there are a few places where it intrudes on the
- * main code path. When we only write to user space, there is no
- * problem.
- *
- * The "__xxx" versions of the user access functions do not verify the
- * address space - it must have been done previously with a separate
- * "access_ok()" call.
- *
- * The "xxx_error" versions set the third argument to EFAULT if an
- * error occurs, and leave it unchanged on success. Note that these
- * versions are void (ie, don't return a value as such).
- */
-
-#define get_user __get_user \
-
-#define __get_user(x, ptr) \
-({ \
- long __gu_err = 0; \
- __get_user_check((x), (ptr), __gu_err); \
- __gu_err; \
-})
-
-#define __get_user_error(x, ptr, err) \
-({ \
- __get_user_check((x), (ptr), (err)); \
- (void)0; \
-})
-
-#define __get_user_check(x, ptr, err) \
-({ \
- const __typeof__(*(ptr)) __user *__p = (ptr); \
- might_fault(); \
- if (access_ok(__p, sizeof(*__p))) { \
- __get_user_err((x), __p, (err)); \
- } else { \
- (x) = 0; (err) = -EFAULT; \
- } \
-})
-
-#define __get_user_err(x, ptr, err) \
-do { \
- unsigned long __gu_val; \
- __chk_user_ptr(ptr); \
- switch (sizeof(*(ptr))) { \
- case 1: \
- __get_user_asm("lbi", __gu_val, (ptr), (err)); \
- break; \
- case 2: \
- __get_user_asm("lhi", __gu_val, (ptr), (err)); \
- break; \
- case 4: \
- __get_user_asm("lwi", __gu_val, (ptr), (err)); \
- break; \
- case 8: \
- __get_user_asm_dword(__gu_val, (ptr), (err)); \
- break; \
- default: \
- BUILD_BUG(); \
- break; \
- } \
- (x) = (__force __typeof__(*(ptr)))__gu_val; \
-} while (0)
-
-#define __get_user_asm(inst, x, addr, err) \
- __asm__ __volatile__ ( \
- "1: "inst" %1,[%2]\n" \
- "2:\n" \
- " .section .fixup,\"ax\"\n" \
- " .align 2\n" \
- "3: move %0, %3\n" \
- " move %1, #0\n" \
- " b 2b\n" \
- " .previous\n" \
- " .section __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 3b\n" \
- " .previous" \
- : "+r" (err), "=&r" (x) \
- : "r" (addr), "i" (-EFAULT) \
- : "cc")
-
-#ifdef __NDS32_EB__
-#define __gu_reg_oper0 "%H1"
-#define __gu_reg_oper1 "%L1"
-#else
-#define __gu_reg_oper0 "%L1"
-#define __gu_reg_oper1 "%H1"
-#endif
-
-#define __get_user_asm_dword(x, addr, err) \
- __asm__ __volatile__ ( \
- "\n1:\tlwi " __gu_reg_oper0 ",[%2]\n" \
- "\n2:\tlwi " __gu_reg_oper1 ",[%2+4]\n" \
- "3:\n" \
- " .section .fixup,\"ax\"\n" \
- " .align 2\n" \
- "4: move %0, %3\n" \
- " b 3b\n" \
- " .previous\n" \
- " .section __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 4b\n" \
- " .long 2b, 4b\n" \
- " .previous" \
- : "+r"(err), "=&r"(x) \
- : "r"(addr), "i"(-EFAULT) \
- : "cc")
-
-#define put_user __put_user \
-
-#define __put_user(x, ptr) \
-({ \
- long __pu_err = 0; \
- __put_user_err((x), (ptr), __pu_err); \
- __pu_err; \
-})
-
-#define __put_user_error(x, ptr, err) \
-({ \
- __put_user_err((x), (ptr), (err)); \
- (void)0; \
-})
-
-#define __put_user_check(x, ptr, err) \
-({ \
- __typeof__(*(ptr)) __user *__p = (ptr); \
- might_fault(); \
- if (access_ok(__p, sizeof(*__p))) { \
- __put_user_err((x), __p, (err)); \
- } else { \
- (err) = -EFAULT; \
- } \
-})
-
-#define __put_user_err(x, ptr, err) \
-do { \
- __typeof__(*(ptr)) __pu_val = (x); \
- __chk_user_ptr(ptr); \
- switch (sizeof(*(ptr))) { \
- case 1: \
- __put_user_asm("sbi", __pu_val, (ptr), (err)); \
- break; \
- case 2: \
- __put_user_asm("shi", __pu_val, (ptr), (err)); \
- break; \
- case 4: \
- __put_user_asm("swi", __pu_val, (ptr), (err)); \
- break; \
- case 8: \
- __put_user_asm_dword(__pu_val, (ptr), (err)); \
- break; \
- default: \
- BUILD_BUG(); \
- break; \
- } \
-} while (0)
-
-#define __put_user_asm(inst, x, addr, err) \
- __asm__ __volatile__ ( \
- "1: "inst" %1,[%2]\n" \
- "2:\n" \
- " .section .fixup,\"ax\"\n" \
- " .align 2\n" \
- "3: move %0, %3\n" \
- " b 2b\n" \
- " .previous\n" \
- " .section __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 3b\n" \
- " .previous" \
- : "+r" (err) \
- : "r" (x), "r" (addr), "i" (-EFAULT) \
- : "cc")
-
-#ifdef __NDS32_EB__
-#define __pu_reg_oper0 "%H2"
-#define __pu_reg_oper1 "%L2"
-#else
-#define __pu_reg_oper0 "%L2"
-#define __pu_reg_oper1 "%H2"
-#endif
-
-#define __put_user_asm_dword(x, addr, err) \
- __asm__ __volatile__ ( \
- "\n1:\tswi " __pu_reg_oper0 ",[%1]\n" \
- "\n2:\tswi " __pu_reg_oper1 ",[%1+4]\n" \
- "3:\n" \
- " .section .fixup,\"ax\"\n" \
- " .align 2\n" \
- "4: move %0, %3\n" \
- " b 3b\n" \
- " .previous\n" \
- " .section __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 4b\n" \
- " .long 2b, 4b\n" \
- " .previous" \
- : "+r"(err) \
- : "r"(addr), "r"(x), "i"(-EFAULT) \
- : "cc")
-
-extern unsigned long __arch_clear_user(void __user * addr, unsigned long n);
-extern long strncpy_from_user(char *dest, const char __user * src, long count);
-extern __must_check long strnlen_user(const char __user * str, long n);
-extern unsigned long __arch_copy_from_user(void *to, const void __user * from,
- unsigned long n);
-extern unsigned long __arch_copy_to_user(void __user * to, const void *from,
- unsigned long n);
-
-#define raw_copy_from_user __arch_copy_from_user
-#define raw_copy_to_user __arch_copy_to_user
-
-#define INLINE_COPY_FROM_USER
-#define INLINE_COPY_TO_USER
-static inline unsigned long clear_user(void __user * to, unsigned long n)
-{
- if (access_ok(to, n))
- n = __arch_clear_user(to, n);
- return n;
-}
-
-static inline unsigned long __clear_user(void __user * to, unsigned long n)
-{
- return __arch_clear_user(to, n);
-}
-
-#endif /* _ASMNDS32_UACCESS_H */
diff --git a/arch/nds32/include/asm/unistd.h b/arch/nds32/include/asm/unistd.h
deleted file mode 100644
index bf5e2d440913..000000000000
--- a/arch/nds32/include/asm/unistd.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#define __ARCH_WANT_SYS_CLONE
-
-#include <uapi/asm/unistd.h>
diff --git a/arch/nds32/include/asm/vdso.h b/arch/nds32/include/asm/vdso.h
deleted file mode 100644
index 89b113ffc3dc..000000000000
--- a/arch/nds32/include/asm/vdso.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (C) 2005-2017 Andes Technology Corporation
- */
-
-#ifndef __ASM_VDSO_H
-#define __ASM_VDSO_H
-
-#ifdef __KERNEL__
-
-#ifndef __ASSEMBLY__
-
-#include <generated/vdso-offsets.h>
-
-#define VDSO_SYMBOL(base, name) \
-({ \
- (unsigned long)(vdso_offset_##name + (unsigned long)(base)); \
-})
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* __KERNEL__ */
-
-#endif /* __ASM_VDSO_H */
diff --git a/arch/nds32/include/asm/vdso_datapage.h b/arch/nds32/include/asm/vdso_datapage.h
deleted file mode 100644
index 74c68802021e..000000000000
--- a/arch/nds32/include/asm/vdso_datapage.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2012 ARM Limited
-// Copyright (C) 2005-2017 Andes Technology Corporation
-#ifndef __ASM_VDSO_DATAPAGE_H
-#define __ASM_VDSO_DATAPAGE_H
-
-#ifdef __KERNEL__
-
-#ifndef __ASSEMBLY__
-
-struct vdso_data {
- bool cycle_count_down; /* timer cyclye counter is decrease with time */
- u32 cycle_count_offset; /* offset of timer cycle counter register */
- u32 seq_count; /* sequence count - odd during updates */
- u32 xtime_coarse_sec; /* coarse time */
- u32 xtime_coarse_nsec;
-
- u32 wtm_clock_sec; /* wall to monotonic offset */
- u32 wtm_clock_nsec;
- u32 xtime_clock_sec; /* CLOCK_REALTIME - seconds */
- u32 cs_mult; /* clocksource multiplier */
- u32 cs_shift; /* Cycle to nanosecond divisor (power of two) */
- u32 hrtimer_res; /* hrtimer resolution */
-
- u64 cs_cycle_last; /* last cycle value */
- u64 cs_mask; /* clocksource mask */
-
- u64 xtime_clock_nsec; /* CLOCK_REALTIME sub-ns base */
- u32 tz_minuteswest; /* timezone info for gettimeofday(2) */
- u32 tz_dsttime;
-};
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* __KERNEL__ */
-
-#endif /* __ASM_VDSO_DATAPAGE_H */
diff --git a/arch/nds32/include/asm/vdso_timer_info.h b/arch/nds32/include/asm/vdso_timer_info.h
deleted file mode 100644
index 328439ce37db..000000000000
--- a/arch/nds32/include/asm/vdso_timer_info.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-extern struct timer_info_t timer_info;
-#define EMPTY_VALUE ~(0UL)
-#define EMPTY_TIMER_MAPPING EMPTY_VALUE
-#define EMPTY_REG_OFFSET EMPTY_VALUE
-
-struct timer_info_t
-{
- bool cycle_count_down;
- unsigned long mapping_base;
- unsigned long cycle_count_reg_offset;
-};
diff --git a/arch/nds32/include/asm/vermagic.h b/arch/nds32/include/asm/vermagic.h
deleted file mode 100644
index f772e7ba33f1..000000000000
--- a/arch/nds32/include/asm/vermagic.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASM_VERMAGIC_H
-#define _ASM_VERMAGIC_H
-
-#define MODULE_ARCH_VERMAGIC "NDS32v3"
-
-#endif /* _ASM_VERMAGIC_H */
diff --git a/arch/nds32/include/asm/vmalloc.h b/arch/nds32/include/asm/vmalloc.h
deleted file mode 100644
index caeed3898419..000000000000
--- a/arch/nds32/include/asm/vmalloc.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef _ASM_NDS32_VMALLOC_H
-#define _ASM_NDS32_VMALLOC_H
-
-#endif /* _ASM_NDS32_VMALLOC_H */
diff --git a/arch/nds32/include/uapi/asm/Kbuild b/arch/nds32/include/uapi/asm/Kbuild
deleted file mode 100644
index e78470141932..000000000000
--- a/arch/nds32/include/uapi/asm/Kbuild
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-generic-y += ucontext.h
diff --git a/arch/nds32/include/uapi/asm/auxvec.h b/arch/nds32/include/uapi/asm/auxvec.h
deleted file mode 100644
index bc0b92ab8c15..000000000000
--- a/arch/nds32/include/uapi/asm/auxvec.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_AUXVEC_H
-#define __ASM_AUXVEC_H
-
-/*
- * This entry gives some information about the FPU initialization
- * performed by the kernel.
- */
-#define AT_FPUCW 18 /* Used FPU control word. */
-
-
-/* VDSO location */
-#define AT_SYSINFO_EHDR 33
-
-#define AT_VECTOR_SIZE_ARCH 1
-
-#endif
diff --git a/arch/nds32/include/uapi/asm/byteorder.h b/arch/nds32/include/uapi/asm/byteorder.h
deleted file mode 100644
index c264ef12c49c..000000000000
--- a/arch/nds32/include/uapi/asm/byteorder.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __NDS32_BYTEORDER_H__
-#define __NDS32_BYTEORDER_H__
-
-#ifdef __NDS32_EB__
-#include <linux/byteorder/big_endian.h>
-#else
-#include <linux/byteorder/little_endian.h>
-#endif
-
-#endif /* __NDS32_BYTEORDER_H__ */
diff --git a/arch/nds32/include/uapi/asm/cachectl.h b/arch/nds32/include/uapi/asm/cachectl.h
deleted file mode 100644
index 31b9b439d819..000000000000
--- a/arch/nds32/include/uapi/asm/cachectl.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 1994, 1995, 1996 by Ralf Baechle
-// Copyright (C) 2005-2017 Andes Technology Corporation
-#ifndef _ASM_CACHECTL
-#define _ASM_CACHECTL
-
-/*
- * Options for cacheflush system call
- */
-#define ICACHE 0 /* flush instruction cache */
-#define DCACHE 1 /* writeback and flush data cache */
-#define BCACHE 2 /* flush instruction cache + writeback and flush data cache */
-
-#endif /* _ASM_CACHECTL */
diff --git a/arch/nds32/include/uapi/asm/fp_udfiex_crtl.h b/arch/nds32/include/uapi/asm/fp_udfiex_crtl.h
deleted file mode 100644
index f17396db16ec..000000000000
--- a/arch/nds32/include/uapi/asm/fp_udfiex_crtl.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/* Copyright (C) 2005-2019 Andes Technology Corporation */
-#ifndef _FP_UDF_IEX_CRTL_H
-#define _FP_UDF_IEX_CRTL_H
-
-/*
- * The cmd list of sys_fp_udfiex_crtl()
- */
-/* Disable UDF or IEX trap based on the content of parameter act */
-#define DISABLE_UDF_IEX_TRAP 0
-/* Enable UDF or IEX trap based on the content of parameter act */
-#define ENABLE_UDF_IEX_TRAP 1
-/* Get current status of UDF and IEX trap */
-#define GET_UDF_IEX_TRAP 2
-
-#endif /* _FP_UDF_IEX_CRTL_H */
diff --git a/arch/nds32/include/uapi/asm/param.h b/arch/nds32/include/uapi/asm/param.h
deleted file mode 100644
index 48d00328d328..000000000000
--- a/arch/nds32/include/uapi/asm/param.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __ASM_NDS32_PARAM_H
-#define __ASM_NDS32_PARAM_H
-
-#define EXEC_PAGESIZE 8192
-
-#include <asm-generic/param.h>
-
-#endif /* __ASM_NDS32_PARAM_H */
diff --git a/arch/nds32/include/uapi/asm/ptrace.h b/arch/nds32/include/uapi/asm/ptrace.h
deleted file mode 100644
index d76217c7c010..000000000000
--- a/arch/nds32/include/uapi/asm/ptrace.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef __UAPI_ASM_NDS32_PTRACE_H
-#define __UAPI_ASM_NDS32_PTRACE_H
-
-#ifndef __ASSEMBLY__
-
-/*
- * User structures for general purpose register.
- */
-struct user_pt_regs {
- long uregs[26];
- long fp;
- long gp;
- long lp;
- long sp;
- long ipc;
- long lb;
- long le;
- long lc;
- long syscallno;
-};
-#endif
-#endif
diff --git a/arch/nds32/include/uapi/asm/sigcontext.h b/arch/nds32/include/uapi/asm/sigcontext.h
deleted file mode 100644
index 6c1e6648878f..000000000000
--- a/arch/nds32/include/uapi/asm/sigcontext.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#ifndef _ASMNDS32_SIGCONTEXT_H
-#define _ASMNDS32_SIGCONTEXT_H
-
-/*
- * Signal context structure - contains all info to do with the state
- * before the signal handler was invoked. Note: only add new entries
- * to the end of the structure.
- */
-struct fpu_struct {
- unsigned long long fd_regs[32];
- unsigned long fpcsr;
- /*
- * When CONFIG_SUPPORT_DENORMAL_ARITHMETIC is defined, kernel prevents
- * hardware from treating the denormalized output as an underflow case
- * and rounding it to a normal number. Hence kernel enables the UDF and
- * IEX trap in the fpcsr register to step in the calculation.
- * However, the UDF and IEX trap enable bit in $fpcsr also lose
- * their use.
- *
- * UDF_IEX_trap replaces the feature of UDF and IEX trap enable bit in
- * $fpcsr to control the trap of underflow and inexact. The bit filed
- * of UDF_IEX_trap is the same as $fpcsr, 10th bit is used to enable UDF
- * exception trapping and 11th bit is used to enable IEX exception
- * trapping.
- *
- * UDF_IEX_trap is only modified through fp_udfiex_crtl syscall.
- * Therefore, UDF_IEX_trap needn't be saved and restored in each
- * context switch.
- */
- unsigned long UDF_IEX_trap;
-};
-
-struct zol_struct {
- unsigned long nds32_lc; /* $LC */
- unsigned long nds32_le; /* $LE */
- unsigned long nds32_lb; /* $LB */
-};
-
-struct sigcontext {
- unsigned long trap_no;
- unsigned long error_code;
- unsigned long oldmask;
- unsigned long nds32_r0;
- unsigned long nds32_r1;
- unsigned long nds32_r2;
- unsigned long nds32_r3;
- unsigned long nds32_r4;
- unsigned long nds32_r5;
- unsigned long nds32_r6;
- unsigned long nds32_r7;
- unsigned long nds32_r8;
- unsigned long nds32_r9;
- unsigned long nds32_r10;
- unsigned long nds32_r11;
- unsigned long nds32_r12;
- unsigned long nds32_r13;
- unsigned long nds32_r14;
- unsigned long nds32_r15;
- unsigned long nds32_r16;
- unsigned long nds32_r17;
- unsigned long nds32_r18;
- unsigned long nds32_r19;
- unsigned long nds32_r20;
- unsigned long nds32_r21;
- unsigned long nds32_r22;
- unsigned long nds32_r23;
- unsigned long nds32_r24;
- unsigned long nds32_r25;
- unsigned long nds32_fp; /* $r28 */
- unsigned long nds32_gp; /* $r29 */
- unsigned long nds32_lp; /* $r30 */
- unsigned long nds32_sp; /* $r31 */
- unsigned long nds32_ipc;
- unsigned long fault_address;
- unsigned long used_math_flag;
- /* FPU Registers */
- struct fpu_struct fpu;
- struct zol_struct zol;
-};
-
-#endif
diff --git a/arch/nds32/include/uapi/asm/unistd.h b/arch/nds32/include/uapi/asm/unistd.h
deleted file mode 100644
index 410795e280fe..000000000000
--- a/arch/nds32/include/uapi/asm/unistd.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#define __ARCH_WANT_STAT64
-#define __ARCH_WANT_SYNC_FILE_RANGE2
-#define __ARCH_WANT_SET_GET_RLIMIT
-#define __ARCH_WANT_TIME32_SYSCALLS
-
-/* Use the standard ABI for syscalls */
-#include <asm-generic/unistd.h>
-
-/* Additional NDS32 specific syscalls. */
-#define __NR_cacheflush (__NR_arch_specific_syscall)
-#define __NR_fp_udfiex_crtl (__NR_arch_specific_syscall + 1)
-__SYSCALL(__NR_cacheflush, sys_cacheflush)
-__SYSCALL(__NR_fp_udfiex_crtl, sys_fp_udfiex_crtl)
diff --git a/arch/nds32/kernel/.gitignore b/arch/nds32/kernel/.gitignore
deleted file mode 100644
index bbb90f92d051..000000000000
--- a/arch/nds32/kernel/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-vmlinux.lds
diff --git a/arch/nds32/kernel/Makefile b/arch/nds32/kernel/Makefile
deleted file mode 100644
index 394df3f6442c..000000000000
--- a/arch/nds32/kernel/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# Makefile for the linux kernel.
-#
-
-CPPFLAGS_vmlinux.lds := -DTEXTADDR=$(TEXTADDR)
-AFLAGS_head.o := -DTEXTADDR=$(TEXTADDR)
-# Object file lists.
-
-obj-y := ex-entry.o ex-exit.o ex-scall.o irq.o \
- process.o ptrace.o setup.o signal.o \
- sys_nds32.o time.o traps.o cacheinfo.o \
- dma.o syscall_table.o vdso.o
-
-obj-$(CONFIG_MODULES) += nds32_ksyms.o module.o
-obj-$(CONFIG_STACKTRACE) += stacktrace.o
-obj-$(CONFIG_FPU) += fpu.o
-obj-$(CONFIG_OF) += devtree.o
-obj-$(CONFIG_CACHE_L2) += atl2c.o
-obj-$(CONFIG_PERF_EVENTS) += perf_event_cpu.o
-obj-$(CONFIG_PM) += pm.o sleep.o
-extra-y := head.o vmlinux.lds
-
-CFLAGS_fpu.o += -mext-fpu-sp -mext-fpu-dp
-
-
-obj-y += vdso/
-
-obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o
-
-ifdef CONFIG_FUNCTION_TRACER
-CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE)
-endif
diff --git a/arch/nds32/kernel/asm-offsets.c b/arch/nds32/kernel/asm-offsets.c
deleted file mode 100644
index 3541d5981de7..000000000000
--- a/arch/nds32/kernel/asm-offsets.c
+++ /dev/null
@@ -1,28 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/sched.h>
-#include <linux/sched/task_stack.h>
-#include <linux/kbuild.h>
-#include <asm/thread_info.h>
-#include <asm/ptrace.h>
-
-int main(void)
-{
- DEFINE(TSK_TI_FLAGS, offsetof(struct task_struct, thread_info.flags));
- DEFINE(TSK_TI_PREEMPT,
- offsetof(struct task_struct, thread_info.preempt_count));
- DEFINE(THREAD_CPU_CONTEXT,
- offsetof(struct task_struct, thread.cpu_context));
- DEFINE(OSP_OFFSET, offsetof(struct pt_regs, osp));
- DEFINE(SP_OFFSET, offsetof(struct pt_regs, sp));
- DEFINE(FUCOP_CTL_OFFSET, offsetof(struct pt_regs, fucop_ctl));
- DEFINE(IPSW_OFFSET, offsetof(struct pt_regs, ipsw));
- DEFINE(SYSCALLNO_OFFSET, offsetof(struct pt_regs, syscallno));
- DEFINE(IPC_OFFSET, offsetof(struct pt_regs, ipc));
- DEFINE(R0_OFFSET, offsetof(struct pt_regs, uregs[0]));
- DEFINE(R15_OFFSET, offsetof(struct pt_regs, uregs[15]));
- DEFINE(CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC);
- DEFINE(CLOCK_COARSE_RES, LOW_RES_NSEC);
- return 0;
-}
diff --git a/arch/nds32/kernel/atl2c.c b/arch/nds32/kernel/atl2c.c
deleted file mode 100644
index 0c5386e72098..000000000000
--- a/arch/nds32/kernel/atl2c.c
+++ /dev/null
@@ -1,65 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/compiler.h>
-#include <linux/of_address.h>
-#include <linux/of_fdt.h>
-#include <linux/of_platform.h>
-#include <asm/l2_cache.h>
-
-void __iomem *atl2c_base;
-static const struct of_device_id atl2c_ids[] __initconst = {
- {.compatible = "andestech,atl2c",},
- {}
-};
-
-static int __init atl2c_of_init(void)
-{
- struct device_node *np;
- struct resource res;
- unsigned long tmp = 0;
- unsigned long l2set, l2way, l2clsz;
-
- if (!(__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskL2C))
- return -ENODEV;
-
- np = of_find_matching_node(NULL, atl2c_ids);
- if (!np)
- return -ENODEV;
-
- if (of_address_to_resource(np, 0, &res))
- return -ENODEV;
-
- atl2c_base = ioremap(res.start, resource_size(&res));
- if (!atl2c_base)
- return -ENOMEM;
-
- l2set =
- 64 << ((L2C_R_REG(L2_CA_CONF_OFF) & L2_CA_CONF_mskL2SET) >>
- L2_CA_CONF_offL2SET);
- l2way =
- 1 +
- ((L2C_R_REG(L2_CA_CONF_OFF) & L2_CA_CONF_mskL2WAY) >>
- L2_CA_CONF_offL2WAY);
- l2clsz =
- 4 << ((L2C_R_REG(L2_CA_CONF_OFF) & L2_CA_CONF_mskL2CLSZ) >>
- L2_CA_CONF_offL2CLSZ);
- pr_info("L2:%luKB/%luS/%luW/%luB\n",
- l2set * l2way * l2clsz / 1024, l2set, l2way, l2clsz);
-
- tmp = L2C_R_REG(L2CC_PROT_OFF);
- tmp &= ~L2CC_PROT_mskMRWEN;
- L2C_W_REG(L2CC_PROT_OFF, tmp);
-
- tmp = L2C_R_REG(L2CC_SETUP_OFF);
- tmp &= ~L2CC_SETUP_mskPART;
- L2C_W_REG(L2CC_SETUP_OFF, tmp);
-
- tmp = L2C_R_REG(L2CC_CTRL_OFF);
- tmp |= L2CC_CTRL_mskEN;
- L2C_W_REG(L2CC_CTRL_OFF, tmp);
-
- return 0;
-}
-
-subsys_initcall(atl2c_of_init);
diff --git a/arch/nds32/kernel/cacheinfo.c b/arch/nds32/kernel/cacheinfo.c
deleted file mode 100644
index aab98e447feb..000000000000
--- a/arch/nds32/kernel/cacheinfo.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/bitops.h>
-#include <linux/cacheinfo.h>
-#include <linux/cpu.h>
-
-static void ci_leaf_init(struct cacheinfo *this_leaf,
- enum cache_type type, unsigned int level)
-{
- char cache_type = (type & CACHE_TYPE_INST ? ICACHE : DCACHE);
-
- this_leaf->level = level;
- this_leaf->type = type;
- this_leaf->coherency_line_size = CACHE_LINE_SIZE(cache_type);
- this_leaf->number_of_sets = CACHE_SET(cache_type);
- this_leaf->ways_of_associativity = CACHE_WAY(cache_type);
- this_leaf->size = this_leaf->number_of_sets *
- this_leaf->coherency_line_size * this_leaf->ways_of_associativity;
-#if defined(CONFIG_CPU_DCACHE_WRITETHROUGH)
- this_leaf->attributes = CACHE_WRITE_THROUGH;
-#else
- this_leaf->attributes = CACHE_WRITE_BACK;
-#endif
-}
-
-int init_cache_level(unsigned int cpu)
-{
- struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
-
- /* Only 1 level and I/D cache seperate. */
- this_cpu_ci->num_levels = 1;
- this_cpu_ci->num_leaves = 2;
- return 0;
-}
-
-int populate_cache_leaves(unsigned int cpu)
-{
- unsigned int level, idx;
- struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
- struct cacheinfo *this_leaf = this_cpu_ci->info_list;
-
- for (idx = 0, level = 1; level <= this_cpu_ci->num_levels &&
- idx < this_cpu_ci->num_leaves; idx++, level++) {
- ci_leaf_init(this_leaf++, CACHE_TYPE_DATA, level);
- ci_leaf_init(this_leaf++, CACHE_TYPE_INST, level);
- }
- return 0;
-}
diff --git a/arch/nds32/kernel/devtree.c b/arch/nds32/kernel/devtree.c
deleted file mode 100644
index bdce0fe5af9f..000000000000
--- a/arch/nds32/kernel/devtree.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/bug.h>
-#include <linux/printk.h>
-#include <linux/of_fdt.h>
-
-void __init early_init_devtree(void *params)
-{
- if (!params || !early_init_dt_scan(params)) {
- pr_crit("\n"
- "Error: invalid device tree blob at (virtual address 0x%p)\n"
- "\nPlease check your bootloader.", params);
-
- BUG_ON(1);
- }
-
- dump_stack_set_arch_desc("%s (DT)", of_flat_dt_get_machine_name());
-}
diff --git a/arch/nds32/kernel/dma.c b/arch/nds32/kernel/dma.c
deleted file mode 100644
index 2ac8e6c82a61..000000000000
--- a/arch/nds32/kernel/dma.c
+++ /dev/null
@@ -1,82 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/types.h>
-#include <linux/mm.h>
-#include <linux/dma-map-ops.h>
-#include <linux/cache.h>
-#include <linux/highmem.h>
-#include <asm/cacheflush.h>
-#include <asm/tlbflush.h>
-#include <asm/proc-fns.h>
-
-static inline void cache_op(phys_addr_t paddr, size_t size,
- void (*fn)(unsigned long start, unsigned long end))
-{
- struct page *page = pfn_to_page(paddr >> PAGE_SHIFT);
- unsigned offset = paddr & ~PAGE_MASK;
- size_t left = size;
- unsigned long start;
-
- do {
- size_t len = left;
-
- if (PageHighMem(page)) {
- void *addr;
-
- if (offset + len > PAGE_SIZE) {
- if (offset >= PAGE_SIZE) {
- page += offset >> PAGE_SHIFT;
- offset &= ~PAGE_MASK;
- }
- len = PAGE_SIZE - offset;
- }
-
- addr = kmap_atomic(page);
- start = (unsigned long)(addr + offset);
- fn(start, start + len);
- kunmap_atomic(addr);
- } else {
- start = (unsigned long)phys_to_virt(paddr);
- fn(start, start + size);
- }
- offset = 0;
- page++;
- left -= len;
- } while (left);
-}
-
-void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
- enum dma_data_direction dir)
-{
- switch (dir) {
- case DMA_FROM_DEVICE:
- break;
- case DMA_TO_DEVICE:
- case DMA_BIDIRECTIONAL:
- cache_op(paddr, size, cpu_dma_wb_range);
- break;
- default:
- BUG();
- }
-}
-
-void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
- enum dma_data_direction dir)
-{
- switch (dir) {
- case DMA_TO_DEVICE:
- break;
- case DMA_FROM_DEVICE:
- case DMA_BIDIRECTIONAL:
- cache_op(paddr, size, cpu_dma_inval_range);
- break;
- default:
- BUG();
- }
-}
-
-void arch_dma_prep_coherent(struct page *page, size_t size)
-{
- cache_op(page_to_phys(page), size, cpu_dma_wbinval_range);
-}
diff --git a/arch/nds32/kernel/ex-entry.S b/arch/nds32/kernel/ex-entry.S
deleted file mode 100644
index 107d98a1d1b8..000000000000
--- a/arch/nds32/kernel/ex-entry.S
+++ /dev/null
@@ -1,177 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/memory.h>
-#include <asm/nds32.h>
-#include <asm/errno.h>
-#include <asm/asm-offsets.h>
-#include <asm/page.h>
-#include <asm/fpu.h>
-
-#ifdef CONFIG_HWZOL
- .macro push_zol
- mfusr $r14, $LB
- mfusr $r15, $LE
- mfusr $r16, $LC
- .endm
-#endif
- .macro skip_save_fucop_ctl
-#if defined(CONFIG_FPU)
-skip_fucop_ctl:
- smw.adm $p0, [$sp], $p0, #0x1
- j fucop_ctl_done
-#endif
- .endm
-
- .macro save_user_regs
-#if defined(CONFIG_FPU)
- sethi $p0, hi20(has_fpu)
- lbsi $p0, [$p0+lo12(has_fpu)]
- beqz $p0, skip_fucop_ctl
- mfsr $p0, $FUCOP_CTL
- smw.adm $p0, [$sp], $p0, #0x1
- bclr $p0, $p0, #FUCOP_CTL_offCP0EN
- mtsr $p0, $FUCOP_CTL
-fucop_ctl_done:
- /* move $SP to the bottom of pt_regs */
- addi $sp, $sp, -FUCOP_CTL_OFFSET
-#else
- smw.adm $sp, [$sp], $sp, #0x1
- /* move $SP to the bottom of pt_regs */
- addi $sp, $sp, -OSP_OFFSET
-#endif
-
- /* push $r0 ~ $r25 */
- smw.bim $r0, [$sp], $r25
- /* push $fp, $gp, $lp */
- smw.bim $sp, [$sp], $sp, #0xe
-
- mfsr $r12, $SP_USR
- mfsr $r13, $IPC
-#ifdef CONFIG_HWZOL
- push_zol
-#endif
- movi $r17, -1
- move $r18, $r0
- mfsr $r19, $PSW
- mfsr $r20, $IPSW
- mfsr $r21, $P_IPSW
- mfsr $r22, $P_IPC
- mfsr $r23, $P_P0
- mfsr $r24, $P_P1
- smw.bim $r12, [$sp], $r24, #0
- addi $sp, $sp, -FUCOP_CTL_OFFSET
-
- /* Initialize kernel space $fp */
- andi $p0, $r20, #PSW_mskPOM
- movi $p1, #0x0
- cmovz $fp, $p1, $p0
-
- andi $r16, $r19, #PSW_mskINTL
- slti $r17, $r16, #4
- bnez $r17, 1f
- addi $r17, $r19, #-2
- mtsr $r17, $PSW
- isb
-1:
- /* If it was superuser mode, we don't need to update $r25 */
- bnez $p0, 2f
- la $p0, __entry_task
- lw $r25, [$p0]
-2:
- .endm
-
- .text
-
-/*
- * Exception Vector
- */
-exception_handlers:
- .long unhandled_exceptions !Reset/NMI
- .long unhandled_exceptions !TLB fill
- .long do_page_fault !PTE not present
- .long do_dispatch_tlb_misc !TLB misc
- .long unhandled_exceptions !TLB VLPT
- .long unhandled_exceptions !Machine Error
- .long do_debug_trap !Debug related
- .long do_dispatch_general !General exception
- .long eh_syscall !Syscall
- .long asm_do_IRQ !IRQ
-
- skip_save_fucop_ctl
-common_exception_handler:
- save_user_regs
- mfsr $p0, $ITYPE
- andi $p0, $p0, #ITYPE_mskVECTOR
- srli $p0, $p0, #ITYPE_offVECTOR
- andi $p1, $p0, #NDS32_VECTOR_mskNONEXCEPTION
- bnez $p1, 1f
- sethi $lp, hi20(ret_from_exception)
- ori $lp, $lp, lo12(ret_from_exception)
- sethi $p1, hi20(exception_handlers)
- ori $p1, $p1, lo12(exception_handlers)
- lw $p1, [$p1+$p0<<2]
- move $r0, $p0
- mfsr $r1, $EVA
- mfsr $r2, $ITYPE
- move $r3, $sp
- mfsr $r4, $OIPC
- /* enable gie if it is enabled in IPSW. */
- mfsr $r21, $PSW
- andi $r20, $r20, #PSW_mskGIE /* r20 is $IPSW*/
- or $r21, $r21, $r20
- mtsr $r21, $PSW
- dsb
- jr $p1
- /* syscall */
-1:
- addi $p1, $p0, #-NDS32_VECTOR_offEXCEPTION
- bnez $p1, 2f
- sethi $lp, hi20(ret_from_exception)
- ori $lp, $lp, lo12(ret_from_exception)
- sethi $p1, hi20(exception_handlers)
- ori $p1, $p1, lo12(exception_handlers)
- lwi $p1, [$p1+#NDS32_VECTOR_offEXCEPTION<<2]
- jr $p1
-
- /* interrupt */
-2:
-#ifdef CONFIG_TRACE_IRQFLAGS
- jal __trace_hardirqs_off
-#endif
- move $r0, $sp
- sethi $lp, hi20(ret_from_intr)
- ori $lp, $lp, lo12(ret_from_intr)
- sethi $p0, hi20(exception_handlers)
- ori $p0, $p0, lo12(exception_handlers)
- lwi $p0, [$p0+#NDS32_VECTOR_offINTERRUPT<<2]
- jr $p0
-
- .macro EXCEPTION_VECTOR_DEBUG
- .align 4
- mfsr $p0, $EDM_CTL
- andi $p0, $p0, EDM_CTL_mskV3_EDM_MODE
- tnez $p0, SWID_RAISE_INTERRUPT_LEVEL
- .endm
-
- .macro EXCEPTION_VECTOR
- .align 4
- sethi $p0, hi20(common_exception_handler)
- ori $p0, $p0, lo12(common_exception_handler)
- jral.ton $p0, $p0
- .endm
-
- .section ".text.init", #alloc, #execinstr
- .global exception_vector
-exception_vector:
-.rept 6
- EXCEPTION_VECTOR
-.endr
- EXCEPTION_VECTOR_DEBUG
-.rept 121
- EXCEPTION_VECTOR
-.endr
- .align 4
- .global exception_vector_end
-exception_vector_end:
diff --git a/arch/nds32/kernel/ex-exit.S b/arch/nds32/kernel/ex-exit.S
deleted file mode 100644
index b30699911b81..000000000000
--- a/arch/nds32/kernel/ex-exit.S
+++ /dev/null
@@ -1,193 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/unistd.h>
-#include <asm/assembler.h>
-#include <asm/nds32.h>
-#include <asm/asm-offsets.h>
-#include <asm/thread_info.h>
-#include <asm/current.h>
-#include <asm/fpu.h>
-
-
-
-#ifdef CONFIG_HWZOL
- .macro pop_zol
- mtusr $r14, $LB
- mtusr $r15, $LE
- mtusr $r16, $LC
- .endm
-#endif
-
- .macro restore_user_regs_first
- setgie.d
- isb
-#if defined(CONFIG_FPU)
- addi $sp, $sp, OSP_OFFSET
- lmw.adm $r12, [$sp], $r25, #0x0
- sethi $p0, hi20(has_fpu)
- lbsi $p0, [$p0+lo12(has_fpu)]
- beqz $p0, 2f
- mtsr $r25, $FUCOP_CTL
-2:
-#else
- addi $sp, $sp, FUCOP_CTL_OFFSET
- lmw.adm $r12, [$sp], $r24, #0x0
-#endif
- mtsr $r12, $SP_USR
- mtsr $r13, $IPC
-#ifdef CONFIG_HWZOL
- pop_zol
-#endif
- mtsr $r19, $PSW
- mtsr $r20, $IPSW
- mtsr $r21, $P_IPSW
- mtsr $r22, $P_IPC
- mtsr $r23, $P_P0
- mtsr $r24, $P_P1
- lmw.adm $sp, [$sp], $sp, #0xe
- .endm
-
- .macro restore_user_regs_last
- pop $p0
- cmovn $sp, $p0, $p0
-
- iret
- nop
-
- .endm
-
- .macro restore_user_regs
- restore_user_regs_first
- lmw.adm $r0, [$sp], $r25, #0x0
- addi $sp, $sp, OSP_OFFSET
- restore_user_regs_last
- .endm
-
- .macro fast_restore_user_regs
- restore_user_regs_first
- lmw.adm $r1, [$sp], $r25, #0x0
- addi $sp, $sp, OSP_OFFSET-4
- restore_user_regs_last
- .endm
-
-#ifdef CONFIG_PREEMPTION
- .macro preempt_stop
- .endm
-#else
- .macro preempt_stop
- setgie.d
- isb
- .endm
-#define resume_kernel no_work_pending
-#endif
-
-ENTRY(ret_from_exception)
- preempt_stop
-ENTRY(ret_from_intr)
-
-/*
- * judge Kernel or user mode
- *
- */
- lwi $p0, [$sp+(#IPSW_OFFSET)] ! Check if in nested interrupt
- andi $p0, $p0, #PSW_mskINTL
- bnez $p0, resume_kernel ! done with iret
- j resume_userspace
-
-
-/*
- * This is the fast syscall return path. We do as little as
- * possible here, and this includes saving $r0 back into the SVC
- * stack.
- * fixed: tsk - $r25, syscall # - $r7, syscall table pointer - $r8
- */
-ENTRY(ret_fast_syscall)
- gie_disable
- lwi $r1, [tsk+#TSK_TI_FLAGS]
- andi $p1, $r1, #_TIF_WORK_MASK
- bnez $p1, fast_work_pending
- fast_restore_user_regs ! iret
-
-/*
- * Ok, we need to do extra processing,
- * enter the slow path returning from syscall, while pending work.
- */
-fast_work_pending:
- swi $r0, [$sp+(#R0_OFFSET)] ! what is different from ret_from_exception
-work_pending:
- andi $p1, $r1, #_TIF_NEED_RESCHED
- bnez $p1, work_resched
-
- andi $p1, $r1, #_TIF_SIGPENDING|#_TIF_NOTIFY_RESUME|#_TIF_NOTIFY_SIGNAL
- beqz $p1, no_work_pending
-
- move $r0, $sp ! 'regs'
- gie_enable
- bal do_notify_resume
- b ret_slow_syscall
-work_resched:
- bal schedule ! path, return to user mode
-
-/*
- * "slow" syscall return path.
- */
-ENTRY(resume_userspace)
-ENTRY(ret_slow_syscall)
- gie_disable
- lwi $p0, [$sp+(#IPSW_OFFSET)] ! Check if in nested interrupt
- andi $p0, $p0, #PSW_mskINTL
- bnez $p0, no_work_pending ! done with iret
- lwi $r1, [tsk+#TSK_TI_FLAGS]
- andi $p1, $r1, #_TIF_WORK_MASK
- bnez $p1, work_pending ! handle work_resched, sig_pend
-
-no_work_pending:
-#ifdef CONFIG_TRACE_IRQFLAGS
- lwi $p0, [$sp+(#IPSW_OFFSET)]
- andi $p0, $p0, #0x1
- la $r10, __trace_hardirqs_off
- la $r9, __trace_hardirqs_on
- cmovz $r9, $p0, $r10
- jral $r9
-#endif
- restore_user_regs ! return from iret
-
-
-/*
- * preemptive kernel
- */
-#ifdef CONFIG_PREEMPTION
-resume_kernel:
- gie_disable
- lwi $t0, [tsk+#TSK_TI_PREEMPT]
- bnez $t0, no_work_pending
-
- lwi $t0, [tsk+#TSK_TI_FLAGS]
- andi $p1, $t0, #_TIF_NEED_RESCHED
- beqz $p1, no_work_pending
-
- lwi $t0, [$sp+(#IPSW_OFFSET)] ! Interrupts off?
- andi $t0, $t0, #1
- beqz $t0, no_work_pending
-
- jal preempt_schedule_irq
- b no_work_pending
-#endif
-
-/*
- * This is how we return from a fork.
- */
-ENTRY(ret_from_fork)
- bal schedule_tail
- beqz $r6, 1f ! r6 stores fn for kernel thread
- move $r0, $r7 ! prepare kernel thread arg
- jral $r6
-1:
- lwi $r1, [tsk+#TSK_TI_FLAGS] ! check for syscall tracing
- andi $p1, $r1, #_TIF_WORK_SYSCALL_LEAVE ! are we tracing syscalls?
- beqz $p1, ret_slow_syscall
- move $r0, $sp
- bal syscall_trace_leave
- b ret_slow_syscall
diff --git a/arch/nds32/kernel/ex-scall.S b/arch/nds32/kernel/ex-scall.S
deleted file mode 100644
index 270050f1b7b1..000000000000
--- a/arch/nds32/kernel/ex-scall.S
+++ /dev/null
@@ -1,100 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/unistd.h>
-#include <asm/assembler.h>
-#include <asm/nds32.h>
-#include <asm/asm-offsets.h>
-#include <asm/thread_info.h>
-#include <asm/current.h>
-
-/*
- * $r0 = previous task_struct,
- * $r1 = next task_struct,
- * previous and next are guaranteed not to be the same.
- */
-
-ENTRY(__switch_to)
-
- la $p0, __entry_task
- sw $r1, [$p0]
- addi $p1, $r0, #THREAD_CPU_CONTEXT
- smw.bi $r6, [$p1], $r14, #0xb ! push r6~r14, fp, lp, sp
- move $r25, $r1
-#if defined(CONFIG_FPU)
- call _switch_fpu
-#endif
- addi $r1, $r25, #THREAD_CPU_CONTEXT
- lmw.bi $r6, [$r1], $r14, #0xb ! pop r6~r14, fp, lp, sp
- ret
-
-
-#define tbl $r8
-
-/*
- * $r7 will be writen as syscall nr
- */
- .macro get_scno
- lwi $r7, [$sp + R15_OFFSET]
- swi $r7, [$sp + SYSCALLNO_OFFSET]
- .endm
-
- .macro updateipc
- addi $r17, $r13, #4 ! $r13 is $IPC
- swi $r17, [$sp + IPC_OFFSET]
- .endm
-
-ENTRY(eh_syscall)
- updateipc
-
- get_scno
- gie_enable
-
- lwi $p0, [tsk+#TSK_TI_FLAGS] ! check for syscall tracing
-
- andi $p1, $p0, #_TIF_WORK_SYSCALL_ENTRY ! are we tracing syscalls?
- bnez $p1, __sys_trace
-
- la $lp, ret_fast_syscall ! return address
-jmp_systbl:
- addi $p1, $r7, #-__NR_syscalls ! syscall number of syscall instruction is guarded by addembler
- bgez $p1, _SCNO_EXCEED ! call sys_* routine
- la tbl, sys_call_table ! load syscall table pointer
- slli $p1, $r7, #2
- add $p1, tbl, $p1
- lwi $p1, [$p1]
- jr $p1 ! no return
-
-_SCNO_EXCEED:
- ori $r0, $r7, #0
- ori $r1, $sp, #0
- b bad_syscall
-
-/*
- * This is the really slow path. We're going to be doing
- * context switches, and waiting for our parent to respond.
- */
-__sys_trace:
- move $r0, $sp
- bal syscall_trace_enter
- move $r7, $r0
- la $lp, __sys_trace_return ! return address
-
- addi $p1, $r7, #1
- beqz $p1, ret_slow_syscall ! fatal signal is pending
-
- addi $p1, $sp, #R0_OFFSET ! pointer to regs
- lmw.bi $r0, [$p1], $r5 ! have to reload $r0 - $r5
- b jmp_systbl
-
-__sys_trace_return:
- swi $r0, [$sp+#R0_OFFSET] ! T: save returned $r0
- move $r0, $sp ! set pt_regs for syscall_trace_leave
- bal syscall_trace_leave
- b ret_slow_syscall
-
-ENTRY(sys_rt_sigreturn_wrapper)
- addi $r0, $sp, #0
- b sys_rt_sigreturn
-ENDPROC(sys_rt_sigreturn_wrapper)
diff --git a/arch/nds32/kernel/fpu.c b/arch/nds32/kernel/fpu.c
deleted file mode 100644
index 701c09a668de..000000000000
--- a/arch/nds32/kernel/fpu.c
+++ /dev/null
@@ -1,266 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-
-#include <linux/sched.h>
-#include <linux/signal.h>
-#include <linux/sched/signal.h>
-#include <asm/processor.h>
-#include <asm/user.h>
-#include <asm/io.h>
-#include <asm/bitfield.h>
-#include <asm/fpu.h>
-
-const struct fpu_struct init_fpuregs = {
- .fd_regs = {[0 ... 31] = sNAN64},
- .fpcsr = FPCSR_INIT,
-#if IS_ENABLED(CONFIG_SUPPORT_DENORMAL_ARITHMETIC)
- .UDF_IEX_trap = 0
-#endif
-};
-
-void save_fpu(struct task_struct *tsk)
-{
- unsigned int fpcfg, fpcsr;
-
- enable_fpu();
- fpcfg = ((__nds32__fmfcfg() & FPCFG_mskFREG) >> FPCFG_offFREG);
- switch (fpcfg) {
- case SP32_DP32_reg:
- asm volatile ("fsdi $fd31, [%0+0xf8]\n\t"
- "fsdi $fd30, [%0+0xf0]\n\t"
- "fsdi $fd29, [%0+0xe8]\n\t"
- "fsdi $fd28, [%0+0xe0]\n\t"
- "fsdi $fd27, [%0+0xd8]\n\t"
- "fsdi $fd26, [%0+0xd0]\n\t"
- "fsdi $fd25, [%0+0xc8]\n\t"
- "fsdi $fd24, [%0+0xc0]\n\t"
- "fsdi $fd23, [%0+0xb8]\n\t"
- "fsdi $fd22, [%0+0xb0]\n\t"
- "fsdi $fd21, [%0+0xa8]\n\t"
- "fsdi $fd20, [%0+0xa0]\n\t"
- "fsdi $fd19, [%0+0x98]\n\t"
- "fsdi $fd18, [%0+0x90]\n\t"
- "fsdi $fd17, [%0+0x88]\n\t"
- "fsdi $fd16, [%0+0x80]\n\t"
- : /* no output */
- : "r" (&tsk->thread.fpu)
- : "memory");
- fallthrough;
- case SP32_DP16_reg:
- asm volatile ("fsdi $fd15, [%0+0x78]\n\t"
- "fsdi $fd14, [%0+0x70]\n\t"
- "fsdi $fd13, [%0+0x68]\n\t"
- "fsdi $fd12, [%0+0x60]\n\t"
- "fsdi $fd11, [%0+0x58]\n\t"
- "fsdi $fd10, [%0+0x50]\n\t"
- "fsdi $fd9, [%0+0x48]\n\t"
- "fsdi $fd8, [%0+0x40]\n\t"
- : /* no output */
- : "r" (&tsk->thread.fpu)
- : "memory");
- fallthrough;
- case SP16_DP8_reg:
- asm volatile ("fsdi $fd7, [%0+0x38]\n\t"
- "fsdi $fd6, [%0+0x30]\n\t"
- "fsdi $fd5, [%0+0x28]\n\t"
- "fsdi $fd4, [%0+0x20]\n\t"
- : /* no output */
- : "r" (&tsk->thread.fpu)
- : "memory");
- fallthrough;
- case SP8_DP4_reg:
- asm volatile ("fsdi $fd3, [%1+0x18]\n\t"
- "fsdi $fd2, [%1+0x10]\n\t"
- "fsdi $fd1, [%1+0x8]\n\t"
- "fsdi $fd0, [%1+0x0]\n\t"
- "fmfcsr %0\n\t"
- "swi %0, [%1+0x100]\n\t"
- : "=&r" (fpcsr)
- : "r"(&tsk->thread.fpu)
- : "memory");
- }
- disable_fpu();
-}
-
-void load_fpu(const struct fpu_struct *fpregs)
-{
- unsigned int fpcfg, fpcsr;
-
- enable_fpu();
- fpcfg = ((__nds32__fmfcfg() & FPCFG_mskFREG) >> FPCFG_offFREG);
- switch (fpcfg) {
- case SP32_DP32_reg:
- asm volatile ("fldi $fd31, [%0+0xf8]\n\t"
- "fldi $fd30, [%0+0xf0]\n\t"
- "fldi $fd29, [%0+0xe8]\n\t"
- "fldi $fd28, [%0+0xe0]\n\t"
- "fldi $fd27, [%0+0xd8]\n\t"
- "fldi $fd26, [%0+0xd0]\n\t"
- "fldi $fd25, [%0+0xc8]\n\t"
- "fldi $fd24, [%0+0xc0]\n\t"
- "fldi $fd23, [%0+0xb8]\n\t"
- "fldi $fd22, [%0+0xb0]\n\t"
- "fldi $fd21, [%0+0xa8]\n\t"
- "fldi $fd20, [%0+0xa0]\n\t"
- "fldi $fd19, [%0+0x98]\n\t"
- "fldi $fd18, [%0+0x90]\n\t"
- "fldi $fd17, [%0+0x88]\n\t"
- "fldi $fd16, [%0+0x80]\n\t"
- : /* no output */
- : "r" (fpregs));
- fallthrough;
- case SP32_DP16_reg:
- asm volatile ("fldi $fd15, [%0+0x78]\n\t"
- "fldi $fd14, [%0+0x70]\n\t"
- "fldi $fd13, [%0+0x68]\n\t"
- "fldi $fd12, [%0+0x60]\n\t"
- "fldi $fd11, [%0+0x58]\n\t"
- "fldi $fd10, [%0+0x50]\n\t"
- "fldi $fd9, [%0+0x48]\n\t"
- "fldi $fd8, [%0+0x40]\n\t"
- : /* no output */
- : "r" (fpregs));
- fallthrough;
- case SP16_DP8_reg:
- asm volatile ("fldi $fd7, [%0+0x38]\n\t"
- "fldi $fd6, [%0+0x30]\n\t"
- "fldi $fd5, [%0+0x28]\n\t"
- "fldi $fd4, [%0+0x20]\n\t"
- : /* no output */
- : "r" (fpregs));
- fallthrough;
- case SP8_DP4_reg:
- asm volatile ("fldi $fd3, [%1+0x18]\n\t"
- "fldi $fd2, [%1+0x10]\n\t"
- "fldi $fd1, [%1+0x8]\n\t"
- "fldi $fd0, [%1+0x0]\n\t"
- "lwi %0, [%1+0x100]\n\t"
- "fmtcsr %0\n\t":"=&r" (fpcsr)
- : "r"(fpregs));
- }
- disable_fpu();
-}
-void store_fpu_for_suspend(void)
-{
-#ifdef CONFIG_LAZY_FPU
- if (last_task_used_math != NULL)
- save_fpu(last_task_used_math);
- last_task_used_math = NULL;
-#else
- if (!used_math())
- return;
- unlazy_fpu(current);
-#endif
- clear_fpu(task_pt_regs(current));
-}
-inline void do_fpu_context_switch(struct pt_regs *regs)
-{
- /* Enable to use FPU. */
-
- if (!user_mode(regs)) {
- pr_err("BUG: FPU is used in kernel mode.\n");
- BUG();
- return;
- }
-
- enable_ptreg_fpu(regs);
-#ifdef CONFIG_LAZY_FPU //Lazy FPU is used
- if (last_task_used_math == current)
- return;
- if (last_task_used_math != NULL)
- /* Other processes fpu state, save away */
- save_fpu(last_task_used_math);
- last_task_used_math = current;
-#endif
- if (used_math()) {
- load_fpu(¤t->thread.fpu);
- } else {
- /* First time FPU user. */
- load_fpu(&init_fpuregs);
-#if IS_ENABLED(CONFIG_SUPPORT_DENORMAL_ARITHMETIC)
- current->thread.fpu.UDF_IEX_trap = init_fpuregs.UDF_IEX_trap;
-#endif
- set_used_math();
- }
-
-}
-
-inline void fill_sigfpe_signo(unsigned int fpcsr, int *signo)
-{
- if (fpcsr & FPCSR_mskOVFT)
- *signo = FPE_FLTOVF;
-#ifndef CONFIG_SUPPORT_DENORMAL_ARITHMETIC
- else if (fpcsr & FPCSR_mskUDFT)
- *signo = FPE_FLTUND;
-#endif
- else if (fpcsr & FPCSR_mskIVOT)
- *signo = FPE_FLTINV;
- else if (fpcsr & FPCSR_mskDBZT)
- *signo = FPE_FLTDIV;
- else if (fpcsr & FPCSR_mskIEXT)
- *signo = FPE_FLTRES;
-}
-
-inline void handle_fpu_exception(struct pt_regs *regs)
-{
- unsigned int fpcsr;
- int si_code = 0, si_signo = SIGFPE;
-#if IS_ENABLED(CONFIG_SUPPORT_DENORMAL_ARITHMETIC)
- unsigned long redo_except = FPCSR_mskDNIT|FPCSR_mskUDFT|FPCSR_mskIEXT;
-#else
- unsigned long redo_except = FPCSR_mskDNIT;
-#endif
-
- lose_fpu();
- fpcsr = current->thread.fpu.fpcsr;
-
- if (fpcsr & redo_except) {
- si_signo = do_fpuemu(regs, ¤t->thread.fpu);
- fpcsr = current->thread.fpu.fpcsr;
- if (!si_signo) {
- current->thread.fpu.fpcsr &= ~(redo_except);
- goto done;
- }
- } else if (fpcsr & FPCSR_mskRIT) {
- if (!user_mode(regs))
- make_task_dead(SIGILL);
- si_signo = SIGILL;
- }
-
- switch (si_signo) {
- case SIGFPE:
- fill_sigfpe_signo(fpcsr, &si_code);
- break;
- case SIGILL:
- show_regs(regs);
- si_code = ILL_COPROC;
- break;
- case SIGBUS:
- si_code = BUS_ADRERR;
- break;
- default:
- break;
- }
-
- force_sig_fault(si_signo, si_code,
- (void __user *)instruction_pointer(regs));
-done:
- own_fpu();
-}
-
-bool do_fpu_exception(unsigned int subtype, struct pt_regs *regs)
-{
- int done = true;
- /* Coprocessor disabled exception */
- if (subtype == FPU_DISABLE_EXCEPTION) {
- preempt_disable();
- do_fpu_context_switch(regs);
- preempt_enable();
- }
- /* Coprocessor exception such as underflow and overflow */
- else if (subtype == FPU_EXCEPTION)
- handle_fpu_exception(regs);
- else
- done = false;
- return done;
-}
diff --git a/arch/nds32/kernel/ftrace.c b/arch/nds32/kernel/ftrace.c
deleted file mode 100644
index 711bc8cd186d..000000000000
--- a/arch/nds32/kernel/ftrace.c
+++ /dev/null
@@ -1,278 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-
-#include <linux/ftrace.h>
-#include <linux/uaccess.h>
-#include <asm/cacheflush.h>
-
-#ifndef CONFIG_DYNAMIC_FTRACE
-extern void (*ftrace_trace_function)(unsigned long, unsigned long,
- struct ftrace_ops*, struct ftrace_regs*);
-extern void ftrace_graph_caller(void);
-
-noinline void __naked ftrace_stub(unsigned long ip, unsigned long parent_ip,
- struct ftrace_ops *op, struct ftrace_regs *fregs)
-{
- __asm__ (""); /* avoid to optimize as pure function */
-}
-
-noinline void _mcount(unsigned long parent_ip)
-{
- /* save all state by the compiler prologue */
-
- unsigned long ip = (unsigned long)__builtin_return_address(0);
-
- if (ftrace_trace_function != ftrace_stub)
- ftrace_trace_function(ip - MCOUNT_INSN_SIZE, parent_ip,
- NULL, NULL);
-
-#ifdef CONFIG_FUNCTION_GRAPH_TRACER
- if (ftrace_graph_return != (trace_func_graph_ret_t)ftrace_stub
- || ftrace_graph_entry != ftrace_graph_entry_stub)
- ftrace_graph_caller();
-#endif
-
- /* restore all state by the compiler epilogue */
-}
-EXPORT_SYMBOL(_mcount);
-
-#else /* CONFIG_DYNAMIC_FTRACE */
-
-noinline void __naked ftrace_stub(unsigned long ip, unsigned long parent_ip,
- struct ftrace_ops *op, struct ftrace_regs *fregs)
-{
- __asm__ (""); /* avoid to optimize as pure function */
-}
-
-noinline void __naked _mcount(unsigned long parent_ip)
-{
- __asm__ (""); /* avoid to optimize as pure function */
-}
-EXPORT_SYMBOL(_mcount);
-
-#define XSTR(s) STR(s)
-#define STR(s) #s
-void _ftrace_caller(unsigned long parent_ip)
-{
- /* save all state needed by the compiler prologue */
-
- /*
- * prepare arguments for real tracing function
- * first arg : __builtin_return_address(0) - MCOUNT_INSN_SIZE
- * second arg : parent_ip
- */
- __asm__ __volatile__ (
- "move $r1, %0 \n\t"
- "addi $r0, %1, #-" XSTR(MCOUNT_INSN_SIZE) "\n\t"
- :
- : "r" (parent_ip), "r" (__builtin_return_address(0)));
-
- /* a placeholder for the call to a real tracing function */
- __asm__ __volatile__ (
- "ftrace_call: \n\t"
- "nop \n\t"
- "nop \n\t"
- "nop \n\t");
-
-#ifdef CONFIG_FUNCTION_GRAPH_TRACER
- /* a placeholder for the call to ftrace_graph_caller */
- __asm__ __volatile__ (
- "ftrace_graph_call: \n\t"
- "nop \n\t"
- "nop \n\t"
- "nop \n\t");
-#endif
- /* restore all state needed by the compiler epilogue */
-}
-
-static unsigned long gen_sethi_insn(unsigned long addr)
-{
- unsigned long opcode = 0x46000000;
- unsigned long imm = addr >> 12;
- unsigned long rt_num = 0xf << 20;
-
- return ENDIAN_CONVERT(opcode | rt_num | imm);
-}
-
-static unsigned long gen_ori_insn(unsigned long addr)
-{
- unsigned long opcode = 0x58000000;
- unsigned long imm = addr & 0x0000fff;
- unsigned long rt_num = 0xf << 20;
- unsigned long ra_num = 0xf << 15;
-
- return ENDIAN_CONVERT(opcode | rt_num | ra_num | imm);
-}
-
-static unsigned long gen_jral_insn(unsigned long addr)
-{
- unsigned long opcode = 0x4a000001;
- unsigned long rt_num = 0x1e << 20;
- unsigned long rb_num = 0xf << 10;
-
- return ENDIAN_CONVERT(opcode | rt_num | rb_num);
-}
-
-static void ftrace_gen_call_insn(unsigned long *call_insns,
- unsigned long addr)
-{
- call_insns[0] = gen_sethi_insn(addr); /* sethi $r15, imm20u */
- call_insns[1] = gen_ori_insn(addr); /* ori $r15, $r15, imm15u */
- call_insns[2] = gen_jral_insn(addr); /* jral $lp, $r15 */
-}
-
-static int __ftrace_modify_code(unsigned long pc, unsigned long *old_insn,
- unsigned long *new_insn, bool validate)
-{
- unsigned long orig_insn[3];
-
- if (validate) {
- if (copy_from_kernel_nofault(orig_insn, (void *)pc,
- MCOUNT_INSN_SIZE))
- return -EFAULT;
- if (memcmp(orig_insn, old_insn, MCOUNT_INSN_SIZE))
- return -EINVAL;
- }
-
- if (copy_to_kernel_nofault((void *)pc, new_insn, MCOUNT_INSN_SIZE))
- return -EPERM;
-
- return 0;
-}
-
-static int ftrace_modify_code(unsigned long pc, unsigned long *old_insn,
- unsigned long *new_insn, bool validate)
-{
- int ret;
-
- ret = __ftrace_modify_code(pc, old_insn, new_insn, validate);
- if (ret)
- return ret;
-
- flush_icache_range(pc, pc + MCOUNT_INSN_SIZE);
-
- return ret;
-}
-
-int ftrace_update_ftrace_func(ftrace_func_t func)
-{
- unsigned long pc = (unsigned long)&ftrace_call;
- unsigned long old_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
- unsigned long new_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
-
- if (func != ftrace_stub)
- ftrace_gen_call_insn(new_insn, (unsigned long)func);
-
- return ftrace_modify_code(pc, old_insn, new_insn, false);
-}
-
-int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
-{
- unsigned long pc = rec->ip;
- unsigned long nop_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
- unsigned long call_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
-
- ftrace_gen_call_insn(call_insn, addr);
-
- return ftrace_modify_code(pc, nop_insn, call_insn, true);
-}
-
-int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec,
- unsigned long addr)
-{
- unsigned long pc = rec->ip;
- unsigned long nop_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
- unsigned long call_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
-
- ftrace_gen_call_insn(call_insn, addr);
-
- return ftrace_modify_code(pc, call_insn, nop_insn, true);
-}
-#endif /* CONFIG_DYNAMIC_FTRACE */
-
-#ifdef CONFIG_FUNCTION_GRAPH_TRACER
-void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr,
- unsigned long frame_pointer)
-{
- unsigned long return_hooker = (unsigned long)&return_to_handler;
- unsigned long old;
-
- if (unlikely(atomic_read(¤t->tracing_graph_pause)))
- return;
-
- old = *parent;
-
- if (!function_graph_enter(old, self_addr, frame_pointer, NULL))
- *parent = return_hooker;
-}
-
-noinline void ftrace_graph_caller(void)
-{
- unsigned long *parent_ip =
- (unsigned long *)(__builtin_frame_address(2) - 4);
-
- unsigned long selfpc =
- (unsigned long)(__builtin_return_address(1) - MCOUNT_INSN_SIZE);
-
- unsigned long frame_pointer =
- (unsigned long)__builtin_frame_address(3);
-
- prepare_ftrace_return(parent_ip, selfpc, frame_pointer);
-}
-
-extern unsigned long ftrace_return_to_handler(unsigned long frame_pointer);
-void __naked return_to_handler(void)
-{
- __asm__ __volatile__ (
- /* save state needed by the ABI */
- "smw.adm $r0,[$sp],$r1,#0x0 \n\t"
-
- /* get original return address */
- "move $r0, $fp \n\t"
- "bal ftrace_return_to_handler\n\t"
- "move $lp, $r0 \n\t"
-
- /* restore state needed by the ABI */
- "lmw.bim $r0,[$sp],$r1,#0x0 \n\t");
-}
-
-#ifdef CONFIG_DYNAMIC_FTRACE
-extern unsigned long ftrace_graph_call;
-
-static int ftrace_modify_graph_caller(bool enable)
-{
- unsigned long pc = (unsigned long)&ftrace_graph_call;
- unsigned long nop_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
- unsigned long call_insn[3] = {INSN_NOP, INSN_NOP, INSN_NOP};
-
- ftrace_gen_call_insn(call_insn, (unsigned long)ftrace_graph_caller);
-
- if (enable)
- return ftrace_modify_code(pc, nop_insn, call_insn, true);
- else
- return ftrace_modify_code(pc, call_insn, nop_insn, true);
-}
-
-int ftrace_enable_ftrace_graph_caller(void)
-{
- return ftrace_modify_graph_caller(true);
-}
-
-int ftrace_disable_ftrace_graph_caller(void)
-{
- return ftrace_modify_graph_caller(false);
-}
-#endif /* CONFIG_DYNAMIC_FTRACE */
-
-#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
-
-
-#ifdef CONFIG_TRACE_IRQFLAGS
-noinline void __trace_hardirqs_off(void)
-{
- trace_hardirqs_off();
-}
-noinline void __trace_hardirqs_on(void)
-{
- trace_hardirqs_on();
-}
-#endif /* CONFIG_TRACE_IRQFLAGS */
diff --git a/arch/nds32/kernel/head.S b/arch/nds32/kernel/head.S
deleted file mode 100644
index 7347f00451a9..000000000000
--- a/arch/nds32/kernel/head.S
+++ /dev/null
@@ -1,197 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <linux/init.h>
-#include <linux/pgtable.h>
-#include <asm/ptrace.h>
-#include <asm/asm-offsets.h>
-#include <asm/page.h>
-#include <linux/sizes.h>
-#include <asm/thread_info.h>
-
-#ifdef CONFIG_CPU_BIG_ENDIAN
-#define OF_DT_MAGIC 0xd00dfeed
-#else
-#define OF_DT_MAGIC 0xedfe0dd0
-#endif
-
- .globl swapper_pg_dir
- .equ swapper_pg_dir, TEXTADDR - 0x4000
-
-/*
- * Kernel startup entry point.
- */
- .section ".head.text", "ax"
- .type _stext, %function
-ENTRY(_stext)
- setgie.d ! Disable interrupt
- isb
-/*
- * Disable I/D-cache and enable it at a proper time
- */
- mfsr $r0, $mr8
- li $r1, #~(CACHE_CTL_mskIC_EN|CACHE_CTL_mskDC_EN)
- and $r0, $r0, $r1
- mtsr $r0, $mr8
-
-/*
- * Process device tree blob
- */
- andi $r0,$r2,#0x3
- li $r10, 0
- bne $r0, $r10, _nodtb
- lwi $r0, [$r2]
- li $r1, OF_DT_MAGIC
- bne $r0, $r1, _nodtb
- move $r10, $r2
-_nodtb:
-
-/*
- * Create a temporary mapping area for booting, before start_kernel
- */
- sethi $r4, hi20(swapper_pg_dir)
- li $p0, (PAGE_OFFSET - PHYS_OFFSET)
- sub $r4, $r4, $p0
- tlbop FlushAll ! invalidate TLB\n"
- isb
- mtsr $r4, $L1_PPTB ! load page table pointer\n"
-
-#ifdef CONFIG_CPU_DCACHE_DISABLE
- #define MMU_CTL_NTCC MMU_CTL_CACHEABLE_NON
-#else
- #ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
- #define MMU_CTL_NTCC MMU_CTL_CACHEABLE_WT
- #else
- #define MMU_CTL_NTCC MMU_CTL_CACHEABLE_WB
- #endif
-#endif
-
-/* set NTC cacheability, mutliple page size in use */
- mfsr $r3, $MMU_CTL
-#if CONFIG_MEMORY_START >= 0xc0000000
- ori $r3, $r3, (MMU_CTL_NTCC << MMU_CTL_offNTC3)
-#elif CONFIG_MEMORY_START >= 0x80000000
- ori $r3, $r3, (MMU_CTL_NTCC << MMU_CTL_offNTC2)
-#elif CONFIG_MEMORY_START >= 0x40000000
- ori $r3, $r3, (MMU_CTL_NTCC << MMU_CTL_offNTC1)
-#else
- ori $r3, $r3, (MMU_CTL_NTCC << MMU_CTL_offNTC0)
-#endif
-
-#ifdef CONFIG_ANDES_PAGE_SIZE_4KB
- ori $r3, $r3, #(MMU_CTL_mskMPZIU)
-#else
- ori $r3, $r3, #(MMU_CTL_mskMPZIU|MMU_CTL_D8KB)
-#endif
-#ifdef CONFIG_HW_SUPPORT_UNALIGNMENT_ACCESS
- li $r0, #MMU_CTL_UNA
- or $r3, $r3, $r0
-#endif
- mtsr $r3, $MMU_CTL
- isb
-
-/* set page size and size of kernel image */
- mfsr $r0, $MMU_CFG
- srli $r3, $r0, MMU_CFG_offfEPSZ
- zeb $r3, $r3
- bnez $r3, _extra_page_size_support
-#ifdef CONFIG_ANDES_PAGE_SIZE_4KB
- li $r5, #SZ_4K ! Use 4KB page size
-#else
- li $r5, #SZ_8K ! Use 8KB page size
- li $r3, #1
-#endif
- mtsr $r3, $TLB_MISC
- b _image_size_check
-
-_extra_page_size_support: ! Use epzs pages size
- clz $r6, $r3
- subri $r2, $r6, #31
- li $r3, #1
- sll $r3, $r3, $r2
- /* MMU_CFG.EPSZ value -> meaning */
- mul $r5, $r3, $r3
- slli $r5, $r5, #14
- /* MMU_CFG.EPSZ -> TLB_MISC.ACC_PSZ */
- addi $r3, $r2, #0x2
- mtsr $r3, $TLB_MISC
-
-_image_size_check:
- /* calculate the image maximum size accepted by TLB config */
- andi $r6, $r0, MMU_CFG_mskTBW
- andi $r0, $r0, MMU_CFG_mskTBS
- srli $r6, $r6, MMU_CFG_offTBW
- srli $r0, $r0, MMU_CFG_offTBS
- addi $r6, $r6, #0x1 ! MMU_CFG.TBW value -> meaning
- addi $r0, $r0, #0x2 ! MMU_CFG.TBS value -> meaning
- sll $r0, $r6, $r0 ! entries = k-way * n-set
- mul $r6, $r0, $r5 ! max size = entries * page size
- /* check kernel image size */
- la $r3, (_end - PAGE_OFFSET)
- bgt $r3, $r6, __error
-
- li $r2, #(PHYS_OFFSET + TLB_DATA_kernel_text_attr)
- li $r3, PAGE_OFFSET
- add $r6, $r6, $r3
-
-_tlb:
- mtsr $r3, $TLB_VPN
- dsb
- tlbop $r2, RWR
- isb
- add $r3, $r3, $r5
- add $r2, $r2, $r5
- bgt $r6, $r3, _tlb
- mfsr $r3, $TLB_MISC ! setup access page size
- li $r2, #~0xf
- and $r3, $r3, $r2
-#ifdef CONFIG_ANDES_PAGE_SIZE_8KB
- ori $r3, $r3, #0x1
-#endif
- mtsr $r3, $TLB_MISC
-
- mfsr $r0, $MISC_CTL ! Enable BTB, RTP, shadow sp, and HW_PRE
- ori $r0, $r0, #MISC_init
- mtsr $r0, $MISC_CTL
-
- mfsr $p1, $PSW
- li $r15, #~PSW_clr ! clear WBNA|DME|IME|DT|IT|POM|INTL|GIE
- and $p1, $p1, $r15
- ori $p1, $p1, #PSW_init
- mtsr $p1, $IPSW ! when iret, it will automatically enable MMU
- la $lp, __mmap_switched
- mtsr $lp, $IPC
- iret
- nop
-
- .type __switch_data, %object
-__switch_data:
- .long __bss_start ! $r6
- .long _end ! $r7
- .long __atags_pointer ! $atag_pointer
- .long init_task ! $r9, move to $r25
- .long init_thread_union + THREAD_SIZE ! $sp
-
-
-/*
- * The following fragment of code is executed with the MMU on in MMU mode,
- * and uses absolute addresses; this is not position independent.
- */
- .align
- .type __mmap_switched, %function
-__mmap_switched:
- la $r3, __switch_data
- lmw.bim $r6, [$r3], $r9, #0b0001
- move $r25, $r9
- move $fp, #0 ! Clear BSS (and zero $fp)
- beq $r7, $r6, _RRT
-1: swi.bi $fp, [$r6], #4
- bne $r7, $r6, 1b
- swi $r10, [$r8]
-
-_RRT:
- b start_kernel
-
-__error:
- b __error
diff --git a/arch/nds32/kernel/irq.c b/arch/nds32/kernel/irq.c
deleted file mode 100644
index 6ff5a672be27..000000000000
--- a/arch/nds32/kernel/irq.c
+++ /dev/null
@@ -1,9 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/irqchip.h>
-
-void __init init_IRQ(void)
-{
- irqchip_init();
-}
diff --git a/arch/nds32/kernel/module.c b/arch/nds32/kernel/module.c
deleted file mode 100644
index 3897fd14a21d..000000000000
--- a/arch/nds32/kernel/module.c
+++ /dev/null
@@ -1,278 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/module.h>
-#include <linux/elf.h>
-#include <linux/vmalloc.h>
-#include <linux/moduleloader.h>
-#include <linux/pgtable.h>
-
-void *module_alloc(unsigned long size)
-{
- return __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
- GFP_KERNEL, PAGE_KERNEL, 0, NUMA_NO_NODE,
- __builtin_return_address(0));
-}
-
-void module_free(struct module *module, void *region)
-{
- vfree(region);
-}
-
-int module_frob_arch_sections(Elf_Ehdr * hdr,
- Elf_Shdr * sechdrs,
- char *secstrings, struct module *mod)
-{
- return 0;
-}
-
-void do_reloc16(unsigned int val, unsigned int *loc, unsigned int val_mask,
- unsigned int val_shift, unsigned int loc_mask,
- unsigned int partial_in_place, unsigned int swap)
-{
- unsigned int tmp = 0, tmp2 = 0;
-
- __asm__ __volatile__("\tlhi.bi\t%0, [%2], 0\n"
- "\tbeqz\t%3, 1f\n"
- "\twsbh\t%0, %1\n"
- "1:\n":"=r"(tmp):"0"(tmp), "r"(loc), "r"(swap)
- );
-
- tmp2 = tmp & loc_mask;
- if (partial_in_place) {
- tmp &= (~loc_mask);
- tmp =
- tmp2 | ((tmp + ((val & val_mask) >> val_shift)) & val_mask);
- } else {
- tmp = tmp2 | ((val & val_mask) >> val_shift);
- }
-
- __asm__ __volatile__("\tbeqz\t%3, 2f\n"
- "\twsbh\t%0, %1\n"
- "2:\n"
- "\tshi.bi\t%0, [%2], 0\n":"=r"(tmp):"0"(tmp),
- "r"(loc), "r"(swap)
- );
-}
-
-void do_reloc32(unsigned int val, unsigned int *loc, unsigned int val_mask,
- unsigned int val_shift, unsigned int loc_mask,
- unsigned int partial_in_place, unsigned int swap)
-{
- unsigned int tmp = 0, tmp2 = 0;
-
- __asm__ __volatile__("\tlmw.bi\t%0, [%2], %0, 0\n"
- "\tbeqz\t%3, 1f\n"
- "\twsbh\t%0, %1\n"
- "\trotri\t%0, %1, 16\n"
- "1:\n":"=r"(tmp):"0"(tmp), "r"(loc), "r"(swap)
- );
-
- tmp2 = tmp & loc_mask;
- if (partial_in_place) {
- tmp &= (~loc_mask);
- tmp =
- tmp2 | ((tmp + ((val & val_mask) >> val_shift)) & val_mask);
- } else {
- tmp = tmp2 | ((val & val_mask) >> val_shift);
- }
-
- __asm__ __volatile__("\tbeqz\t%3, 2f\n"
- "\twsbh\t%0, %1\n"
- "\trotri\t%0, %1, 16\n"
- "2:\n"
- "\tsmw.bi\t%0, [%2], %0, 0\n":"=r"(tmp):"0"(tmp),
- "r"(loc), "r"(swap)
- );
-}
-
-static inline int exceed_limit(int offset, unsigned int val_mask,
- struct module *module, Elf32_Rela * rel,
- unsigned int relindex, unsigned int reloc_order)
-{
- int abs_off = offset < 0 ? ~offset : offset;
-
- if (abs_off & (~val_mask)) {
- pr_err("\n%s: relocation type %d out of range.\n"
- "please rebuild the kernel module with gcc option \"-Wa,-mno-small-text\".\n",
- module->name, ELF32_R_TYPE(rel->r_info));
- pr_err("section %d reloc %d offset 0x%x relative 0x%x.\n",
- relindex, reloc_order, rel->r_offset, offset);
- return true;
- }
- return false;
-}
-
-#ifdef __NDS32_EL__
-#define NEED_SWAP 1
-#else
-#define NEED_SWAP 0
-#endif
-
-int
-apply_relocate_add(Elf32_Shdr * sechdrs, const char *strtab,
- unsigned int symindex, unsigned int relindex,
- struct module *module)
-{
- Elf32_Shdr *symsec = sechdrs + symindex;
- Elf32_Shdr *relsec = sechdrs + relindex;
- Elf32_Shdr *dstsec = sechdrs + relsec->sh_info;
- Elf32_Rela *rel = (void *)relsec->sh_addr;
- unsigned int i;
-
- for (i = 0; i < relsec->sh_size / sizeof(Elf32_Rela); i++, rel++) {
- Elf32_Addr *loc;
- Elf32_Sym *sym;
- Elf32_Addr v;
- s32 offset;
-
- offset = ELF32_R_SYM(rel->r_info);
- if (offset < 0
- || offset > (symsec->sh_size / sizeof(Elf32_Sym))) {
- pr_err("%s: bad relocation\n", module->name);
- pr_err("section %d reloc %d\n", relindex, i);
- return -ENOEXEC;
- }
-
- sym = ((Elf32_Sym *) symsec->sh_addr) + offset;
-
- if (rel->r_offset < 0
- || rel->r_offset > dstsec->sh_size - sizeof(u16)) {
- pr_err("%s: out of bounds relocation\n", module->name);
- pr_err("section %d reloc %d offset 0x%0x size %d\n",
- relindex, i, rel->r_offset, dstsec->sh_size);
- return -ENOEXEC;
- }
-
- loc = (Elf32_Addr *) (dstsec->sh_addr + rel->r_offset);
- v = sym->st_value + rel->r_addend;
-
- switch (ELF32_R_TYPE(rel->r_info)) {
- case R_NDS32_NONE:
- case R_NDS32_INSN16:
- case R_NDS32_LABEL:
- case R_NDS32_LONGCALL1:
- case R_NDS32_LONGCALL2:
- case R_NDS32_LONGCALL3:
- case R_NDS32_LONGCALL4:
- case R_NDS32_LONGJUMP1:
- case R_NDS32_LONGJUMP2:
- case R_NDS32_LONGJUMP3:
- case R_NDS32_9_FIXED_RELA:
- case R_NDS32_15_FIXED_RELA:
- case R_NDS32_17_FIXED_RELA:
- case R_NDS32_25_FIXED_RELA:
- case R_NDS32_LOADSTORE:
- case R_NDS32_DWARF2_OP1_RELA:
- case R_NDS32_DWARF2_OP2_RELA:
- case R_NDS32_DWARF2_LEB_RELA:
- case R_NDS32_RELA_NOP_MIX ... R_NDS32_RELA_NOP_MAX:
- break;
-
- case R_NDS32_32_RELA:
- do_reloc32(v, loc, 0xffffffff, 0, 0, 0, 0);
- break;
-
- case R_NDS32_HI20_RELA:
- do_reloc32(v, loc, 0xfffff000, 12, 0xfff00000, 0,
- NEED_SWAP);
- break;
-
- case R_NDS32_LO12S3_RELA:
- do_reloc32(v, loc, 0x00000fff, 3, 0xfffff000, 0,
- NEED_SWAP);
- break;
-
- case R_NDS32_LO12S2_RELA:
- do_reloc32(v, loc, 0x00000fff, 2, 0xfffff000, 0,
- NEED_SWAP);
- break;
-
- case R_NDS32_LO12S1_RELA:
- do_reloc32(v, loc, 0x00000fff, 1, 0xfffff000, 0,
- NEED_SWAP);
- break;
-
- case R_NDS32_LO12S0_RELA:
- case R_NDS32_LO12S0_ORI_RELA:
- do_reloc32(v, loc, 0x00000fff, 0, 0xfffff000, 0,
- NEED_SWAP);
- break;
-
- case R_NDS32_9_PCREL_RELA:
- if (exceed_limit
- ((v - (Elf32_Addr) loc), 0x000000ff, module, rel,
- relindex, i))
- return -ENOEXEC;
- do_reloc16(v - (Elf32_Addr) loc, loc, 0x000001ff, 1,
- 0xffffff00, 0, NEED_SWAP);
- break;
-
- case R_NDS32_15_PCREL_RELA:
- if (exceed_limit
- ((v - (Elf32_Addr) loc), 0x00003fff, module, rel,
- relindex, i))
- return -ENOEXEC;
- do_reloc32(v - (Elf32_Addr) loc, loc, 0x00007fff, 1,
- 0xffffc000, 0, NEED_SWAP);
- break;
-
- case R_NDS32_17_PCREL_RELA:
- if (exceed_limit
- ((v - (Elf32_Addr) loc), 0x0000ffff, module, rel,
- relindex, i))
- return -ENOEXEC;
- do_reloc32(v - (Elf32_Addr) loc, loc, 0x0001ffff, 1,
- 0xffff0000, 0, NEED_SWAP);
- break;
-
- case R_NDS32_25_PCREL_RELA:
- if (exceed_limit
- ((v - (Elf32_Addr) loc), 0x00ffffff, module, rel,
- relindex, i))
- return -ENOEXEC;
- do_reloc32(v - (Elf32_Addr) loc, loc, 0x01ffffff, 1,
- 0xff000000, 0, NEED_SWAP);
- break;
- case R_NDS32_WORD_9_PCREL_RELA:
- if (exceed_limit
- ((v - (Elf32_Addr) loc), 0x000000ff, module, rel,
- relindex, i))
- return -ENOEXEC;
- do_reloc32(v - (Elf32_Addr) loc, loc, 0x000001ff, 1,
- 0xffffff00, 0, NEED_SWAP);
- break;
-
- case R_NDS32_SDA15S3_RELA:
- case R_NDS32_SDA15S2_RELA:
- case R_NDS32_SDA15S1_RELA:
- case R_NDS32_SDA15S0_RELA:
- pr_err("%s: unsupported relocation type %d.\n",
- module->name, ELF32_R_TYPE(rel->r_info));
- pr_err
- ("Small data section access doesn't work in the kernel space; "
- "please rebuild the kernel module with gcc option -mcmodel=large.\n");
- pr_err("section %d reloc %d offset 0x%x size %d\n",
- relindex, i, rel->r_offset, dstsec->sh_size);
- break;
-
- default:
- pr_err("%s: unsupported relocation type %d.\n",
- module->name, ELF32_R_TYPE(rel->r_info));
- pr_err("section %d reloc %d offset 0x%x size %d\n",
- relindex, i, rel->r_offset, dstsec->sh_size);
- }
- }
- return 0;
-}
-
-int
-module_finalize(const Elf32_Ehdr * hdr, const Elf_Shdr * sechdrs,
- struct module *module)
-{
- return 0;
-}
-
-void module_arch_cleanup(struct module *mod)
-{
-}
diff --git a/arch/nds32/kernel/nds32_ksyms.c b/arch/nds32/kernel/nds32_ksyms.c
deleted file mode 100644
index 20719e42ae36..000000000000
--- a/arch/nds32/kernel/nds32_ksyms.c
+++ /dev/null
@@ -1,25 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/module.h>
-#include <linux/string.h>
-#include <linux/delay.h>
-#include <linux/in6.h>
-#include <linux/syscalls.h>
-#include <linux/uaccess.h>
-
-#include <asm/checksum.h>
-#include <asm/io.h>
-#include <asm/ftrace.h>
-#include <asm/proc-fns.h>
-
-/* mem functions */
-EXPORT_SYMBOL(memset);
-EXPORT_SYMBOL(memcpy);
-EXPORT_SYMBOL(memmove);
-EXPORT_SYMBOL(memzero);
-
-/* user mem (segment) */
-EXPORT_SYMBOL(__arch_copy_from_user);
-EXPORT_SYMBOL(__arch_copy_to_user);
-EXPORT_SYMBOL(__arch_clear_user);
diff --git a/arch/nds32/kernel/perf_event_cpu.c b/arch/nds32/kernel/perf_event_cpu.c
deleted file mode 100644
index a78a879e7ef1..000000000000
--- a/arch/nds32/kernel/perf_event_cpu.c
+++ /dev/null
@@ -1,1500 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Copyright (C) 2008-2017 Andes Technology Corporation
- *
- * Reference ARMv7: Jean Pihet <jpihet@mvista.com>
- * 2010 (c) MontaVista Software, LLC.
- */
-
-#include <linux/perf_event.h>
-#include <linux/bitmap.h>
-#include <linux/export.h>
-#include <linux/kernel.h>
-#include <linux/of.h>
-#include <linux/platform_device.h>
-#include <linux/slab.h>
-#include <linux/spinlock.h>
-#include <linux/pm_runtime.h>
-#include <linux/ftrace.h>
-#include <linux/uaccess.h>
-#include <linux/sched/clock.h>
-#include <linux/percpu-defs.h>
-
-#include <asm/pmu.h>
-#include <asm/irq_regs.h>
-#include <asm/nds32.h>
-#include <asm/stacktrace.h>
-#include <asm/perf_event.h>
-#include <nds32_intrinsic.h>
-
-/* Set at runtime when we know what CPU type we are. */
-static struct nds32_pmu *cpu_pmu;
-
-static DEFINE_PER_CPU(struct pmu_hw_events, cpu_hw_events);
-static void nds32_pmu_start(struct nds32_pmu *cpu_pmu);
-static void nds32_pmu_stop(struct nds32_pmu *cpu_pmu);
-static struct platform_device_id cpu_pmu_plat_device_ids[] = {
- {.name = "nds32-pfm"},
- {},
-};
-
-static int nds32_pmu_map_cache_event(const unsigned int (*cache_map)
- [PERF_COUNT_HW_CACHE_MAX]
- [PERF_COUNT_HW_CACHE_OP_MAX]
- [PERF_COUNT_HW_CACHE_RESULT_MAX], u64 config)
-{
- unsigned int cache_type, cache_op, cache_result, ret;
-
- cache_type = (config >> 0) & 0xff;
- if (cache_type >= PERF_COUNT_HW_CACHE_MAX)
- return -EINVAL;
-
- cache_op = (config >> 8) & 0xff;
- if (cache_op >= PERF_COUNT_HW_CACHE_OP_MAX)
- return -EINVAL;
-
- cache_result = (config >> 16) & 0xff;
- if (cache_result >= PERF_COUNT_HW_CACHE_RESULT_MAX)
- return -EINVAL;
-
- ret = (int)(*cache_map)[cache_type][cache_op][cache_result];
-
- if (ret == CACHE_OP_UNSUPPORTED)
- return -ENOENT;
-
- return ret;
-}
-
-static int
-nds32_pmu_map_hw_event(const unsigned int (*event_map)[PERF_COUNT_HW_MAX],
- u64 config)
-{
- int mapping;
-
- if (config >= PERF_COUNT_HW_MAX)
- return -ENOENT;
-
- mapping = (*event_map)[config];
- return mapping == HW_OP_UNSUPPORTED ? -ENOENT : mapping;
-}
-
-static int nds32_pmu_map_raw_event(u32 raw_event_mask, u64 config)
-{
- int ev_type = (int)(config & raw_event_mask);
- int idx = config >> 8;
-
- switch (idx) {
- case 0:
- ev_type = PFM_OFFSET_MAGIC_0 + ev_type;
- if (ev_type >= SPAV3_0_SEL_LAST || ev_type <= SPAV3_0_SEL_BASE)
- return -ENOENT;
- break;
- case 1:
- ev_type = PFM_OFFSET_MAGIC_1 + ev_type;
- if (ev_type >= SPAV3_1_SEL_LAST || ev_type <= SPAV3_1_SEL_BASE)
- return -ENOENT;
- break;
- case 2:
- ev_type = PFM_OFFSET_MAGIC_2 + ev_type;
- if (ev_type >= SPAV3_2_SEL_LAST || ev_type <= SPAV3_2_SEL_BASE)
- return -ENOENT;
- break;
- default:
- return -ENOENT;
- }
-
- return ev_type;
-}
-
-int
-nds32_pmu_map_event(struct perf_event *event,
- const unsigned int (*event_map)[PERF_COUNT_HW_MAX],
- const unsigned int (*cache_map)
- [PERF_COUNT_HW_CACHE_MAX]
- [PERF_COUNT_HW_CACHE_OP_MAX]
- [PERF_COUNT_HW_CACHE_RESULT_MAX], u32 raw_event_mask)
-{
- u64 config = event->attr.config;
-
- switch (event->attr.type) {
- case PERF_TYPE_HARDWARE:
- return nds32_pmu_map_hw_event(event_map, config);
- case PERF_TYPE_HW_CACHE:
- return nds32_pmu_map_cache_event(cache_map, config);
- case PERF_TYPE_RAW:
- return nds32_pmu_map_raw_event(raw_event_mask, config);
- }
-
- return -ENOENT;
-}
-
-static int nds32_spav3_map_event(struct perf_event *event)
-{
- return nds32_pmu_map_event(event, &nds32_pfm_perf_map,
- &nds32_pfm_perf_cache_map, SOFTWARE_EVENT_MASK);
-}
-
-static inline u32 nds32_pfm_getreset_flags(void)
-{
- /* Read overflow status */
- u32 val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- u32 old_val = val;
-
- /* Write overflow bit to clear status, and others keep it 0 */
- u32 ov_flag = PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2];
-
- __nds32__mtsr(val | ov_flag, NDS32_SR_PFM_CTL);
-
- return old_val;
-}
-
-static inline int nds32_pfm_has_overflowed(u32 pfm)
-{
- u32 ov_flag = PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2];
-
- return pfm & ov_flag;
-}
-
-static inline int nds32_pfm_counter_has_overflowed(u32 pfm, int idx)
-{
- u32 mask = 0;
-
- switch (idx) {
- case 0:
- mask = PFM_CTL_OVF[0];
- break;
- case 1:
- mask = PFM_CTL_OVF[1];
- break;
- case 2:
- mask = PFM_CTL_OVF[2];
- break;
- default:
- pr_err("%s index wrong\n", __func__);
- break;
- }
- return pfm & mask;
-}
-
-/*
- * Set the next IRQ period, based on the hwc->period_left value.
- * To be called with the event disabled in hw:
- */
-int nds32_pmu_event_set_period(struct perf_event *event)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- s64 left = local64_read(&hwc->period_left);
- s64 period = hwc->sample_period;
- int ret = 0;
-
- /* The period may have been changed by PERF_EVENT_IOC_PERIOD */
- if (unlikely(period != hwc->last_period))
- left = period - (hwc->last_period - left);
-
- if (unlikely(left <= -period)) {
- left = period;
- local64_set(&hwc->period_left, left);
- hwc->last_period = period;
- ret = 1;
- }
-
- if (unlikely(left <= 0)) {
- left += period;
- local64_set(&hwc->period_left, left);
- hwc->last_period = period;
- ret = 1;
- }
-
- if (left > (s64)nds32_pmu->max_period)
- left = nds32_pmu->max_period;
-
- /*
- * The hw event starts counting from this event offset,
- * mark it to be able to extract future "deltas":
- */
- local64_set(&hwc->prev_count, (u64)(-left));
-
- nds32_pmu->write_counter(event, (u64)(-left) & nds32_pmu->max_period);
-
- perf_event_update_userpage(event);
-
- return ret;
-}
-
-static irqreturn_t nds32_pmu_handle_irq(int irq_num, void *dev)
-{
- u32 pfm;
- struct perf_sample_data data;
- struct nds32_pmu *cpu_pmu = (struct nds32_pmu *)dev;
- struct pmu_hw_events *cpuc = cpu_pmu->get_hw_events();
- struct pt_regs *regs;
- int idx;
- /*
- * Get and reset the IRQ flags
- */
- pfm = nds32_pfm_getreset_flags();
-
- /*
- * Did an overflow occur?
- */
- if (!nds32_pfm_has_overflowed(pfm))
- return IRQ_NONE;
-
- /*
- * Handle the counter(s) overflow(s)
- */
- regs = get_irq_regs();
-
- nds32_pmu_stop(cpu_pmu);
- for (idx = 0; idx < cpu_pmu->num_events; ++idx) {
- struct perf_event *event = cpuc->events[idx];
- struct hw_perf_event *hwc;
-
- /* Ignore if we don't have an event. */
- if (!event)
- continue;
-
- /*
- * We have a single interrupt for all counters. Check that
- * each counter has overflowed before we process it.
- */
- if (!nds32_pfm_counter_has_overflowed(pfm, idx))
- continue;
-
- hwc = &event->hw;
- nds32_pmu_event_update(event);
- perf_sample_data_init(&data, 0, hwc->last_period);
- if (!nds32_pmu_event_set_period(event))
- continue;
-
- if (perf_event_overflow(event, &data, regs))
- cpu_pmu->disable(event);
- }
- nds32_pmu_start(cpu_pmu);
- /*
- * Handle the pending perf events.
- *
- * Note: this call *must* be run with interrupts disabled. For
- * platforms that can have the PMU interrupts raised as an NMI, this
- * will not work.
- */
- irq_work_run();
-
- return IRQ_HANDLED;
-}
-
-static inline int nds32_pfm_counter_valid(struct nds32_pmu *cpu_pmu, int idx)
-{
- return ((idx >= 0) && (idx < cpu_pmu->num_events));
-}
-
-static inline int nds32_pfm_disable_counter(int idx)
-{
- unsigned int val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- u32 mask = 0;
-
- mask = PFM_CTL_EN[idx];
- val &= ~mask;
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
- return idx;
-}
-
-/*
- * Add an event filter to a given event.
- */
-static int nds32_pmu_set_event_filter(struct hw_perf_event *event,
- struct perf_event_attr *attr)
-{
- unsigned long config_base = 0;
- int idx = event->idx;
- unsigned long no_kernel_tracing = 0;
- unsigned long no_user_tracing = 0;
- /* If index is -1, do not do anything */
- if (idx == -1)
- return 0;
-
- no_kernel_tracing = PFM_CTL_KS[idx];
- no_user_tracing = PFM_CTL_KU[idx];
- /*
- * Default: enable both kernel and user mode tracing.
- */
- if (attr->exclude_user)
- config_base |= no_user_tracing;
-
- if (attr->exclude_kernel)
- config_base |= no_kernel_tracing;
-
- /*
- * Install the filter into config_base as this is used to
- * construct the event type.
- */
- event->config_base |= config_base;
- return 0;
-}
-
-static inline void nds32_pfm_write_evtsel(int idx, u32 evnum)
-{
- u32 offset = 0;
- u32 ori_val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- u32 ev_mask = 0;
- u32 no_kernel_mask = 0;
- u32 no_user_mask = 0;
- u32 val;
-
- offset = PFM_CTL_OFFSEL[idx];
- /* Clear previous mode selection, and write new one */
- no_kernel_mask = PFM_CTL_KS[idx];
- no_user_mask = PFM_CTL_KU[idx];
- ori_val &= ~no_kernel_mask;
- ori_val &= ~no_user_mask;
- if (evnum & no_kernel_mask)
- ori_val |= no_kernel_mask;
-
- if (evnum & no_user_mask)
- ori_val |= no_user_mask;
-
- /* Clear previous event selection */
- ev_mask = PFM_CTL_SEL[idx];
- ori_val &= ~ev_mask;
- evnum &= SOFTWARE_EVENT_MASK;
-
- /* undo the linear mapping */
- evnum = get_converted_evet_hw_num(evnum);
- val = ori_val | (evnum << offset);
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
-}
-
-static inline int nds32_pfm_enable_counter(int idx)
-{
- unsigned int val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- u32 mask = 0;
-
- mask = PFM_CTL_EN[idx];
- val |= mask;
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
- return idx;
-}
-
-static inline int nds32_pfm_enable_intens(int idx)
-{
- unsigned int val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- u32 mask = 0;
-
- mask = PFM_CTL_IE[idx];
- val |= mask;
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
- return idx;
-}
-
-static inline int nds32_pfm_disable_intens(int idx)
-{
- unsigned int val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- u32 mask = 0;
-
- mask = PFM_CTL_IE[idx];
- val &= ~mask;
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
- return idx;
-}
-
-static int event_requires_mode_exclusion(struct perf_event_attr *attr)
-{
- /* Other modes NDS32 does not support */
- return attr->exclude_user || attr->exclude_kernel;
-}
-
-static void nds32_pmu_enable_event(struct perf_event *event)
-{
- unsigned long flags;
- unsigned int evnum = 0;
- struct hw_perf_event *hwc = &event->hw;
- struct nds32_pmu *cpu_pmu = to_nds32_pmu(event->pmu);
- struct pmu_hw_events *events = cpu_pmu->get_hw_events();
- int idx = hwc->idx;
-
- if (!nds32_pfm_counter_valid(cpu_pmu, idx)) {
- pr_err("CPU enabling wrong pfm counter IRQ enable\n");
- return;
- }
-
- /*
- * Enable counter and interrupt, and set the counter to count
- * the event that we're interested in.
- */
- raw_spin_lock_irqsave(&events->pmu_lock, flags);
-
- /*
- * Disable counter
- */
- nds32_pfm_disable_counter(idx);
-
- /*
- * Check whether we need to exclude the counter from certain modes.
- */
- if ((!cpu_pmu->set_event_filter ||
- cpu_pmu->set_event_filter(hwc, &event->attr)) &&
- event_requires_mode_exclusion(&event->attr)) {
- pr_notice
- ("NDS32 performance counters do not support mode exclusion\n");
- hwc->config_base = 0;
- }
- /* Write event */
- evnum = hwc->config_base;
- nds32_pfm_write_evtsel(idx, evnum);
-
- /*
- * Enable interrupt for this counter
- */
- nds32_pfm_enable_intens(idx);
-
- /*
- * Enable counter
- */
- nds32_pfm_enable_counter(idx);
-
- raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
-}
-
-static void nds32_pmu_disable_event(struct perf_event *event)
-{
- unsigned long flags;
- struct hw_perf_event *hwc = &event->hw;
- struct nds32_pmu *cpu_pmu = to_nds32_pmu(event->pmu);
- struct pmu_hw_events *events = cpu_pmu->get_hw_events();
- int idx = hwc->idx;
-
- if (!nds32_pfm_counter_valid(cpu_pmu, idx)) {
- pr_err("CPU disabling wrong pfm counter IRQ enable %d\n", idx);
- return;
- }
-
- /*
- * Disable counter and interrupt
- */
- raw_spin_lock_irqsave(&events->pmu_lock, flags);
-
- /*
- * Disable counter
- */
- nds32_pfm_disable_counter(idx);
-
- /*
- * Disable interrupt for this counter
- */
- nds32_pfm_disable_intens(idx);
-
- raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
-}
-
-static inline u32 nds32_pmu_read_counter(struct perf_event *event)
-{
- struct nds32_pmu *cpu_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- int idx = hwc->idx;
- u32 count = 0;
-
- if (!nds32_pfm_counter_valid(cpu_pmu, idx)) {
- pr_err("CPU reading wrong counter %d\n", idx);
- } else {
- switch (idx) {
- case PFMC0:
- count = __nds32__mfsr(NDS32_SR_PFMC0);
- break;
- case PFMC1:
- count = __nds32__mfsr(NDS32_SR_PFMC1);
- break;
- case PFMC2:
- count = __nds32__mfsr(NDS32_SR_PFMC2);
- break;
- default:
- pr_err
- ("%s: CPU has no performance counters %d\n",
- __func__, idx);
- }
- }
- return count;
-}
-
-static inline void nds32_pmu_write_counter(struct perf_event *event, u32 value)
-{
- struct nds32_pmu *cpu_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- int idx = hwc->idx;
-
- if (!nds32_pfm_counter_valid(cpu_pmu, idx)) {
- pr_err("CPU writing wrong counter %d\n", idx);
- } else {
- switch (idx) {
- case PFMC0:
- __nds32__mtsr_isb(value, NDS32_SR_PFMC0);
- break;
- case PFMC1:
- __nds32__mtsr_isb(value, NDS32_SR_PFMC1);
- break;
- case PFMC2:
- __nds32__mtsr_isb(value, NDS32_SR_PFMC2);
- break;
- default:
- pr_err
- ("%s: CPU has no performance counters %d\n",
- __func__, idx);
- }
- }
-}
-
-static int nds32_pmu_get_event_idx(struct pmu_hw_events *cpuc,
- struct perf_event *event)
-{
- int idx;
- struct hw_perf_event *hwc = &event->hw;
- /*
- * Current implementation maps cycles, instruction count and cache-miss
- * to specific counter.
- * However, multiple of the 3 counters are able to count these events.
- *
- *
- * SOFTWARE_EVENT_MASK mask for getting event num ,
- * This is defined by Jia-Rung, you can change the polocies.
- * However, do not exceed 8 bits. This is hardware specific.
- * The last number is SPAv3_2_SEL_LAST.
- */
- unsigned long evtype = hwc->config_base & SOFTWARE_EVENT_MASK;
-
- idx = get_converted_event_idx(evtype);
- /*
- * Try to get the counter for correpsonding event
- */
- if (evtype == SPAV3_0_SEL_TOTAL_CYCLES) {
- if (!test_and_set_bit(idx, cpuc->used_mask))
- return idx;
- if (!test_and_set_bit(NDS32_IDX_COUNTER0, cpuc->used_mask))
- return NDS32_IDX_COUNTER0;
- if (!test_and_set_bit(NDS32_IDX_COUNTER1, cpuc->used_mask))
- return NDS32_IDX_COUNTER1;
- } else if (evtype == SPAV3_1_SEL_COMPLETED_INSTRUCTION) {
- if (!test_and_set_bit(idx, cpuc->used_mask))
- return idx;
- else if (!test_and_set_bit(NDS32_IDX_COUNTER1, cpuc->used_mask))
- return NDS32_IDX_COUNTER1;
- else if (!test_and_set_bit
- (NDS32_IDX_CYCLE_COUNTER, cpuc->used_mask))
- return NDS32_IDX_CYCLE_COUNTER;
- } else {
- if (!test_and_set_bit(idx, cpuc->used_mask))
- return idx;
- }
- return -EAGAIN;
-}
-
-static void nds32_pmu_start(struct nds32_pmu *cpu_pmu)
-{
- unsigned long flags;
- unsigned int val;
- struct pmu_hw_events *events = cpu_pmu->get_hw_events();
-
- raw_spin_lock_irqsave(&events->pmu_lock, flags);
-
- /* Enable all counters , NDS PFM has 3 counters */
- val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- val |= (PFM_CTL_EN[0] | PFM_CTL_EN[1] | PFM_CTL_EN[2]);
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
-
- raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
-}
-
-static void nds32_pmu_stop(struct nds32_pmu *cpu_pmu)
-{
- unsigned long flags;
- unsigned int val;
- struct pmu_hw_events *events = cpu_pmu->get_hw_events();
-
- raw_spin_lock_irqsave(&events->pmu_lock, flags);
-
- /* Disable all counters , NDS PFM has 3 counters */
- val = __nds32__mfsr(NDS32_SR_PFM_CTL);
- val &= ~(PFM_CTL_EN[0] | PFM_CTL_EN[1] | PFM_CTL_EN[2]);
- val &= ~(PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr_isb(val, NDS32_SR_PFM_CTL);
-
- raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
-}
-
-static void nds32_pmu_reset(void *info)
-{
- u32 val = 0;
-
- val |= (PFM_CTL_OVF[0] | PFM_CTL_OVF[1] | PFM_CTL_OVF[2]);
- __nds32__mtsr(val, NDS32_SR_PFM_CTL);
- __nds32__mtsr(0, NDS32_SR_PFM_CTL);
- __nds32__mtsr(0, NDS32_SR_PFMC0);
- __nds32__mtsr(0, NDS32_SR_PFMC1);
- __nds32__mtsr(0, NDS32_SR_PFMC2);
-}
-
-static void nds32_pmu_init(struct nds32_pmu *cpu_pmu)
-{
- cpu_pmu->handle_irq = nds32_pmu_handle_irq;
- cpu_pmu->enable = nds32_pmu_enable_event;
- cpu_pmu->disable = nds32_pmu_disable_event;
- cpu_pmu->read_counter = nds32_pmu_read_counter;
- cpu_pmu->write_counter = nds32_pmu_write_counter;
- cpu_pmu->get_event_idx = nds32_pmu_get_event_idx;
- cpu_pmu->start = nds32_pmu_start;
- cpu_pmu->stop = nds32_pmu_stop;
- cpu_pmu->reset = nds32_pmu_reset;
- cpu_pmu->max_period = 0xFFFFFFFF; /* Maximum counts */
-};
-
-static u32 nds32_read_num_pfm_events(void)
-{
- /* NDS32 SPAv3 PMU support 3 counter */
- return 3;
-}
-
-static int device_pmu_init(struct nds32_pmu *cpu_pmu)
-{
- nds32_pmu_init(cpu_pmu);
- /*
- * This name should be devive-specific name, whatever you like :)
- * I think "PMU" will be a good generic name.
- */
- cpu_pmu->name = "nds32v3-pmu";
- cpu_pmu->map_event = nds32_spav3_map_event;
- cpu_pmu->num_events = nds32_read_num_pfm_events();
- cpu_pmu->set_event_filter = nds32_pmu_set_event_filter;
- return 0;
-}
-
-/*
- * CPU PMU identification and probing.
- */
-static int probe_current_pmu(struct nds32_pmu *pmu)
-{
- int ret;
-
- get_cpu();
- ret = -ENODEV;
- /*
- * If ther are various CPU types with its own PMU, initialize with
- *
- * the corresponding one
- */
- device_pmu_init(pmu);
- put_cpu();
- return ret;
-}
-
-static void nds32_pmu_enable(struct pmu *pmu)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(pmu);
- struct pmu_hw_events *hw_events = nds32_pmu->get_hw_events();
- int enabled = bitmap_weight(hw_events->used_mask,
- nds32_pmu->num_events);
-
- if (enabled)
- nds32_pmu->start(nds32_pmu);
-}
-
-static void nds32_pmu_disable(struct pmu *pmu)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(pmu);
-
- nds32_pmu->stop(nds32_pmu);
-}
-
-static void nds32_pmu_release_hardware(struct nds32_pmu *nds32_pmu)
-{
- nds32_pmu->free_irq(nds32_pmu);
- pm_runtime_put_sync(&nds32_pmu->plat_device->dev);
-}
-
-static irqreturn_t nds32_pmu_dispatch_irq(int irq, void *dev)
-{
- struct nds32_pmu *nds32_pmu = (struct nds32_pmu *)dev;
- int ret;
- u64 start_clock, finish_clock;
-
- start_clock = local_clock();
- ret = nds32_pmu->handle_irq(irq, dev);
- finish_clock = local_clock();
-
- perf_sample_event_took(finish_clock - start_clock);
- return ret;
-}
-
-static int nds32_pmu_reserve_hardware(struct nds32_pmu *nds32_pmu)
-{
- int err;
- struct platform_device *pmu_device = nds32_pmu->plat_device;
-
- if (!pmu_device)
- return -ENODEV;
-
- pm_runtime_get_sync(&pmu_device->dev);
- err = nds32_pmu->request_irq(nds32_pmu, nds32_pmu_dispatch_irq);
- if (err) {
- nds32_pmu_release_hardware(nds32_pmu);
- return err;
- }
-
- return 0;
-}
-
-static int
-validate_event(struct pmu *pmu, struct pmu_hw_events *hw_events,
- struct perf_event *event)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
-
- if (is_software_event(event))
- return 1;
-
- if (event->pmu != pmu)
- return 0;
-
- if (event->state < PERF_EVENT_STATE_OFF)
- return 1;
-
- if (event->state == PERF_EVENT_STATE_OFF && !event->attr.enable_on_exec)
- return 1;
-
- return nds32_pmu->get_event_idx(hw_events, event) >= 0;
-}
-
-static int validate_group(struct perf_event *event)
-{
- struct perf_event *sibling, *leader = event->group_leader;
- struct pmu_hw_events fake_pmu;
- DECLARE_BITMAP(fake_used_mask, MAX_COUNTERS);
- /*
- * Initialize the fake PMU. We only need to populate the
- * used_mask for the purposes of validation.
- */
- memset(fake_used_mask, 0, sizeof(fake_used_mask));
-
- if (!validate_event(event->pmu, &fake_pmu, leader))
- return -EINVAL;
-
- for_each_sibling_event(sibling, leader) {
- if (!validate_event(event->pmu, &fake_pmu, sibling))
- return -EINVAL;
- }
-
- if (!validate_event(event->pmu, &fake_pmu, event))
- return -EINVAL;
-
- return 0;
-}
-
-static int __hw_perf_event_init(struct perf_event *event)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- int mapping;
-
- mapping = nds32_pmu->map_event(event);
-
- if (mapping < 0) {
- pr_debug("event %x:%llx not supported\n", event->attr.type,
- event->attr.config);
- return mapping;
- }
-
- /*
- * We don't assign an index until we actually place the event onto
- * hardware. Use -1 to signify that we haven't decided where to put it
- * yet. For SMP systems, each core has it's own PMU so we can't do any
- * clever allocation or constraints checking at this point.
- */
- hwc->idx = -1;
- hwc->config_base = 0;
- hwc->config = 0;
- hwc->event_base = 0;
-
- /*
- * Check whether we need to exclude the counter from certain modes.
- */
- if ((!nds32_pmu->set_event_filter ||
- nds32_pmu->set_event_filter(hwc, &event->attr)) &&
- event_requires_mode_exclusion(&event->attr)) {
- pr_debug
- ("NDS performance counters do not support mode exclusion\n");
- return -EOPNOTSUPP;
- }
-
- /*
- * Store the event encoding into the config_base field.
- */
- hwc->config_base |= (unsigned long)mapping;
-
- if (!hwc->sample_period) {
- /*
- * For non-sampling runs, limit the sample_period to half
- * of the counter width. That way, the new counter value
- * is far less likely to overtake the previous one unless
- * you have some serious IRQ latency issues.
- */
- hwc->sample_period = nds32_pmu->max_period >> 1;
- hwc->last_period = hwc->sample_period;
- local64_set(&hwc->period_left, hwc->sample_period);
- }
-
- if (event->group_leader != event) {
- if (validate_group(event) != 0)
- return -EINVAL;
- }
-
- return 0;
-}
-
-static int nds32_pmu_event_init(struct perf_event *event)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- int err = 0;
- atomic_t *active_events = &nds32_pmu->active_events;
-
- /* does not support taken branch sampling */
- if (has_branch_stack(event))
- return -EOPNOTSUPP;
-
- if (nds32_pmu->map_event(event) == -ENOENT)
- return -ENOENT;
-
- if (!atomic_inc_not_zero(active_events)) {
- if (atomic_read(active_events) == 0) {
- /* Register irq handler */
- err = nds32_pmu_reserve_hardware(nds32_pmu);
- }
-
- if (!err)
- atomic_inc(active_events);
- }
-
- if (err)
- return err;
-
- err = __hw_perf_event_init(event);
-
- return err;
-}
-
-static void nds32_start(struct perf_event *event, int flags)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- /*
- * NDS pmu always has to reprogram the period, so ignore
- * PERF_EF_RELOAD, see the comment below.
- */
- if (flags & PERF_EF_RELOAD)
- WARN_ON_ONCE(!(hwc->state & PERF_HES_UPTODATE));
-
- hwc->state = 0;
- /* Set the period for the event. */
- nds32_pmu_event_set_period(event);
-
- nds32_pmu->enable(event);
-}
-
-static int nds32_pmu_add(struct perf_event *event, int flags)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct pmu_hw_events *hw_events = nds32_pmu->get_hw_events();
- struct hw_perf_event *hwc = &event->hw;
- int idx;
- int err = 0;
-
- perf_pmu_disable(event->pmu);
-
- /* If we don't have a space for the counter then finish early. */
- idx = nds32_pmu->get_event_idx(hw_events, event);
- if (idx < 0) {
- err = idx;
- goto out;
- }
-
- /*
- * If there is an event in the counter we are going to use then make
- * sure it is disabled.
- */
- event->hw.idx = idx;
- nds32_pmu->disable(event);
- hw_events->events[idx] = event;
-
- hwc->state = PERF_HES_STOPPED | PERF_HES_UPTODATE;
- if (flags & PERF_EF_START)
- nds32_start(event, PERF_EF_RELOAD);
-
- /* Propagate our changes to the userspace mapping. */
- perf_event_update_userpage(event);
-
-out:
- perf_pmu_enable(event->pmu);
- return err;
-}
-
-u64 nds32_pmu_event_update(struct perf_event *event)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- u64 delta, prev_raw_count, new_raw_count;
-
-again:
- prev_raw_count = local64_read(&hwc->prev_count);
- new_raw_count = nds32_pmu->read_counter(event);
-
- if (local64_cmpxchg(&hwc->prev_count, prev_raw_count,
- new_raw_count) != prev_raw_count) {
- goto again;
- }
- /*
- * Whether overflow or not, "unsigned substraction"
- * will always get their delta
- */
- delta = (new_raw_count - prev_raw_count) & nds32_pmu->max_period;
-
- local64_add(delta, &event->count);
- local64_sub(delta, &hwc->period_left);
-
- return new_raw_count;
-}
-
-static void nds32_stop(struct perf_event *event, int flags)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct hw_perf_event *hwc = &event->hw;
- /*
- * NDS pmu always has to update the counter, so ignore
- * PERF_EF_UPDATE, see comments in nds32_start().
- */
- if (!(hwc->state & PERF_HES_STOPPED)) {
- nds32_pmu->disable(event);
- nds32_pmu_event_update(event);
- hwc->state |= PERF_HES_STOPPED | PERF_HES_UPTODATE;
- }
-}
-
-static void nds32_pmu_del(struct perf_event *event, int flags)
-{
- struct nds32_pmu *nds32_pmu = to_nds32_pmu(event->pmu);
- struct pmu_hw_events *hw_events = nds32_pmu->get_hw_events();
- struct hw_perf_event *hwc = &event->hw;
- int idx = hwc->idx;
-
- nds32_stop(event, PERF_EF_UPDATE);
- hw_events->events[idx] = NULL;
- clear_bit(idx, hw_events->used_mask);
-
- perf_event_update_userpage(event);
-}
-
-static void nds32_pmu_read(struct perf_event *event)
-{
- nds32_pmu_event_update(event);
-}
-
-/* Please refer to SPAv3 for more hardware specific details */
-PMU_FORMAT_ATTR(event, "config:0-63");
-
-static struct attribute *nds32_arch_formats_attr[] = {
- &format_attr_event.attr,
- NULL,
-};
-
-static struct attribute_group nds32_pmu_format_group = {
- .name = "format",
- .attrs = nds32_arch_formats_attr,
-};
-
-static ssize_t nds32_pmu_cpumask_show(struct device *dev,
- struct device_attribute *attr,
- char *buf)
-{
- return 0;
-}
-
-static DEVICE_ATTR(cpus, 0444, nds32_pmu_cpumask_show, NULL);
-
-static struct attribute *nds32_pmu_common_attrs[] = {
- &dev_attr_cpus.attr,
- NULL,
-};
-
-static struct attribute_group nds32_pmu_common_group = {
- .attrs = nds32_pmu_common_attrs,
-};
-
-static const struct attribute_group *nds32_pmu_attr_groups[] = {
- &nds32_pmu_format_group,
- &nds32_pmu_common_group,
- NULL,
-};
-
-static void nds32_init(struct nds32_pmu *nds32_pmu)
-{
- atomic_set(&nds32_pmu->active_events, 0);
-
- nds32_pmu->pmu = (struct pmu) {
- .pmu_enable = nds32_pmu_enable,
- .pmu_disable = nds32_pmu_disable,
- .attr_groups = nds32_pmu_attr_groups,
- .event_init = nds32_pmu_event_init,
- .add = nds32_pmu_add,
- .del = nds32_pmu_del,
- .start = nds32_start,
- .stop = nds32_stop,
- .read = nds32_pmu_read,
- };
-}
-
-int nds32_pmu_register(struct nds32_pmu *nds32_pmu, int type)
-{
- nds32_init(nds32_pmu);
- pm_runtime_enable(&nds32_pmu->plat_device->dev);
- pr_info("enabled with %s PMU driver, %d counters available\n",
- nds32_pmu->name, nds32_pmu->num_events);
- return perf_pmu_register(&nds32_pmu->pmu, nds32_pmu->name, type);
-}
-
-static struct pmu_hw_events *cpu_pmu_get_cpu_events(void)
-{
- return this_cpu_ptr(&cpu_hw_events);
-}
-
-static int cpu_pmu_request_irq(struct nds32_pmu *cpu_pmu, irq_handler_t handler)
-{
- int err, irq, irqs;
- struct platform_device *pmu_device = cpu_pmu->plat_device;
-
- if (!pmu_device)
- return -ENODEV;
-
- irqs = min(pmu_device->num_resources, num_possible_cpus());
- if (irqs < 1) {
- pr_err("no irqs for PMUs defined\n");
- return -ENODEV;
- }
-
- irq = platform_get_irq(pmu_device, 0);
- err = request_irq(irq, handler, IRQF_NOBALANCING, "nds32-pfm",
- cpu_pmu);
- if (err) {
- pr_err("unable to request IRQ%d for NDS PMU counters\n",
- irq);
- return err;
- }
- return 0;
-}
-
-static void cpu_pmu_free_irq(struct nds32_pmu *cpu_pmu)
-{
- int irq;
- struct platform_device *pmu_device = cpu_pmu->plat_device;
-
- irq = platform_get_irq(pmu_device, 0);
- if (irq >= 0)
- free_irq(irq, cpu_pmu);
-}
-
-static void cpu_pmu_init(struct nds32_pmu *cpu_pmu)
-{
- int cpu;
- struct pmu_hw_events *events = &per_cpu(cpu_hw_events, cpu);
-
- raw_spin_lock_init(&events->pmu_lock);
-
- cpu_pmu->get_hw_events = cpu_pmu_get_cpu_events;
- cpu_pmu->request_irq = cpu_pmu_request_irq;
- cpu_pmu->free_irq = cpu_pmu_free_irq;
-
- /* Ensure the PMU has sane values out of reset. */
- if (cpu_pmu->reset)
- on_each_cpu(cpu_pmu->reset, cpu_pmu, 1);
-}
-
-static const struct of_device_id cpu_pmu_of_device_ids[] = {
- {.compatible = "andestech,nds32v3-pmu",
- .data = device_pmu_init},
- {},
-};
-
-static int cpu_pmu_device_probe(struct platform_device *pdev)
-{
- const struct of_device_id *of_id;
- int (*init_fn)(struct nds32_pmu *nds32_pmu);
- struct device_node *node = pdev->dev.of_node;
- struct nds32_pmu *pmu;
- int ret = -ENODEV;
-
- if (cpu_pmu) {
- pr_notice("[perf] attempt to register multiple PMU devices!\n");
- return -ENOSPC;
- }
-
- pmu = kzalloc(sizeof(*pmu), GFP_KERNEL);
- if (!pmu)
- return -ENOMEM;
-
- of_id = of_match_node(cpu_pmu_of_device_ids, pdev->dev.of_node);
- if (node && of_id) {
- init_fn = of_id->data;
- ret = init_fn(pmu);
- } else {
- ret = probe_current_pmu(pmu);
- }
-
- if (ret) {
- pr_notice("[perf] failed to probe PMU!\n");
- goto out_free;
- }
-
- cpu_pmu = pmu;
- cpu_pmu->plat_device = pdev;
- cpu_pmu_init(cpu_pmu);
- ret = nds32_pmu_register(cpu_pmu, PERF_TYPE_RAW);
-
- if (!ret)
- return 0;
-
-out_free:
- pr_notice("[perf] failed to register PMU devices!\n");
- kfree(pmu);
- return ret;
-}
-
-static struct platform_driver cpu_pmu_driver = {
- .driver = {
- .name = "nds32-pfm",
- .of_match_table = cpu_pmu_of_device_ids,
- },
- .probe = cpu_pmu_device_probe,
- .id_table = cpu_pmu_plat_device_ids,
-};
-
-static int __init register_pmu_driver(void)
-{
- int err = 0;
-
- err = platform_driver_register(&cpu_pmu_driver);
- if (err)
- pr_notice("[perf] PMU initialization failed\n");
- else
- pr_notice("[perf] PMU initialization done\n");
-
- return err;
-}
-
-device_initcall(register_pmu_driver);
-
-/*
- * References: arch/nds32/kernel/traps.c:__dump()
- * You will need to know the NDS ABI first.
- */
-static int unwind_frame_kernel(struct stackframe *frame)
-{
- int graph = 0;
-#ifdef CONFIG_FRAME_POINTER
- /* 0x3 means misalignment */
- if (!kstack_end((void *)frame->fp) &&
- !((unsigned long)frame->fp & 0x3) &&
- ((unsigned long)frame->fp >= TASK_SIZE)) {
- /*
- * The array index is based on the ABI, the below graph
- * illustrate the reasons.
- * Function call procedure: "smw" and "lmw" will always
- * update SP and FP for you automatically.
- *
- * Stack Relative Address
- * | | 0
- * ----
- * |LP| <-- SP(before smw) <-- FP(after smw) -1
- * ----
- * |FP| -2
- * ----
- * | | <-- SP(after smw) -3
- */
- frame->lp = ((unsigned long *)frame->fp)[-1];
- frame->fp = ((unsigned long *)frame->fp)[FP_OFFSET];
- /* make sure CONFIG_FUNCTION_GRAPH_TRACER is turned on */
- if (__kernel_text_address(frame->lp))
- frame->lp = ftrace_graph_ret_addr
- (NULL, &graph, frame->lp, NULL);
-
- return 0;
- } else {
- return -EPERM;
- }
-#else
- /*
- * You can refer to arch/nds32/kernel/traps.c:__dump()
- * Treat "sp" as "fp", but the "sp" is one frame ahead of "fp".
- * And, the "sp" is not always correct.
- *
- * Stack Relative Address
- * | | 0
- * ----
- * |LP| <-- SP(before smw) -1
- * ----
- * | | <-- SP(after smw) -2
- * ----
- */
- if (!kstack_end((void *)frame->sp)) {
- frame->lp = ((unsigned long *)frame->sp)[1];
- /* TODO: How to deal with the value in first
- * "sp" is not correct?
- */
- if (__kernel_text_address(frame->lp))
- frame->lp = ftrace_graph_ret_addr
- (tsk, &graph, frame->lp, NULL);
-
- frame->sp = ((unsigned long *)frame->sp) + 1;
-
- return 0;
- } else {
- return -EPERM;
- }
-#endif
-}
-
-static void notrace
-walk_stackframe(struct stackframe *frame,
- int (*fn_record)(struct stackframe *, void *),
- void *data)
-{
- while (1) {
- int ret;
-
- if (fn_record(frame, data))
- break;
-
- ret = unwind_frame_kernel(frame);
- if (ret < 0)
- break;
- }
-}
-
-/*
- * Gets called by walk_stackframe() for every stackframe. This will be called
- * whist unwinding the stackframe and is like a subroutine return so we use
- * the PC.
- */
-static int callchain_trace(struct stackframe *fr, void *data)
-{
- struct perf_callchain_entry_ctx *entry = data;
-
- perf_callchain_store(entry, fr->lp);
- return 0;
-}
-
-/*
- * Get the return address for a single stackframe and return a pointer to the
- * next frame tail.
- */
-static unsigned long
-user_backtrace(struct perf_callchain_entry_ctx *entry, unsigned long fp)
-{
- struct frame_tail buftail;
- unsigned long lp = 0;
- unsigned long *user_frame_tail =
- (unsigned long *)(fp - (unsigned long)sizeof(buftail));
-
- /* Check accessibility of one struct frame_tail beyond */
- if (!access_ok(user_frame_tail, sizeof(buftail)))
- return 0;
- if (__copy_from_user_inatomic
- (&buftail, user_frame_tail, sizeof(buftail)))
- return 0;
-
- /*
- * Refer to unwind_frame_kernel() for more illurstration
- */
- lp = buftail.stack_lp; /* ((unsigned long *)fp)[-1] */
- fp = buftail.stack_fp; /* ((unsigned long *)fp)[FP_OFFSET] */
- perf_callchain_store(entry, lp);
- return fp;
-}
-
-static unsigned long
-user_backtrace_opt_size(struct perf_callchain_entry_ctx *entry,
- unsigned long fp)
-{
- struct frame_tail_opt_size buftail;
- unsigned long lp = 0;
-
- unsigned long *user_frame_tail =
- (unsigned long *)(fp - (unsigned long)sizeof(buftail));
-
- /* Check accessibility of one struct frame_tail beyond */
- if (!access_ok(user_frame_tail, sizeof(buftail)))
- return 0;
- if (__copy_from_user_inatomic
- (&buftail, user_frame_tail, sizeof(buftail)))
- return 0;
-
- /*
- * Refer to unwind_frame_kernel() for more illurstration
- */
- lp = buftail.stack_lp; /* ((unsigned long *)fp)[-1] */
- fp = buftail.stack_fp; /* ((unsigned long *)fp)[FP_OFFSET] */
-
- perf_callchain_store(entry, lp);
- return fp;
-}
-
-/*
- * This will be called when the target is in user mode
- * This function will only be called when we use
- * "PERF_SAMPLE_CALLCHAIN" in
- * kernel/events/core.c:perf_prepare_sample()
- *
- * How to trigger perf_callchain_[user/kernel] :
- * $ perf record -e cpu-clock --call-graph fp ./program
- * $ perf report --call-graph
- */
-unsigned long leaf_fp;
-void
-perf_callchain_user(struct perf_callchain_entry_ctx *entry,
- struct pt_regs *regs)
-{
- unsigned long fp = 0;
- unsigned long gp = 0;
- unsigned long lp = 0;
- unsigned long sp = 0;
- unsigned long *user_frame_tail;
-
- leaf_fp = 0;
-
- perf_callchain_store(entry, regs->ipc);
- fp = regs->fp;
- gp = regs->gp;
- lp = regs->lp;
- sp = regs->sp;
- if (entry->nr < PERF_MAX_STACK_DEPTH &&
- (unsigned long)fp && !((unsigned long)fp & 0x7) && fp > sp) {
- user_frame_tail =
- (unsigned long *)(fp - (unsigned long)sizeof(fp));
-
- if (!access_ok(user_frame_tail, sizeof(fp)))
- return;
-
- if (__copy_from_user_inatomic
- (&leaf_fp, user_frame_tail, sizeof(fp)))
- return;
-
- if (leaf_fp == lp) {
- /*
- * Maybe this is non leaf function
- * with optimize for size,
- * or maybe this is the function
- * with optimize for size
- */
- struct frame_tail buftail;
-
- user_frame_tail =
- (unsigned long *)(fp -
- (unsigned long)sizeof(buftail));
-
- if (!access_ok(user_frame_tail, sizeof(buftail)))
- return;
-
- if (__copy_from_user_inatomic
- (&buftail, user_frame_tail, sizeof(buftail)))
- return;
-
- if (buftail.stack_fp == gp) {
- /* non leaf function with optimize
- * for size condition
- */
- struct frame_tail_opt_size buftail_opt_size;
-
- user_frame_tail =
- (unsigned long *)(fp - (unsigned long)
- sizeof(buftail_opt_size));
-
- if (!access_ok(user_frame_tail,
- sizeof(buftail_opt_size)))
- return;
-
- if (__copy_from_user_inatomic
- (&buftail_opt_size, user_frame_tail,
- sizeof(buftail_opt_size)))
- return;
-
- perf_callchain_store(entry, lp);
- fp = buftail_opt_size.stack_fp;
-
- while ((entry->nr < PERF_MAX_STACK_DEPTH) &&
- (unsigned long)fp &&
- !((unsigned long)fp & 0x7) &&
- fp > sp) {
- sp = fp;
- fp = user_backtrace_opt_size(entry, fp);
- }
-
- } else {
- /* this is the function
- * without optimize for size
- */
- fp = buftail.stack_fp;
- perf_callchain_store(entry, lp);
- while ((entry->nr < PERF_MAX_STACK_DEPTH) &&
- (unsigned long)fp &&
- !((unsigned long)fp & 0x7) &&
- fp > sp) {
- sp = fp;
- fp = user_backtrace(entry, fp);
- }
- }
- } else {
- /* this is leaf function */
- fp = leaf_fp;
- perf_callchain_store(entry, lp);
-
- /* previous function callcahin */
- while ((entry->nr < PERF_MAX_STACK_DEPTH) &&
- (unsigned long)fp &&
- !((unsigned long)fp & 0x7) && fp > sp) {
- sp = fp;
- fp = user_backtrace(entry, fp);
- }
- }
- return;
- }
-}
-
-/* This will be called when the target is in kernel mode */
-void
-perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
- struct pt_regs *regs)
-{
- struct stackframe fr;
-
- fr.fp = regs->fp;
- fr.lp = regs->lp;
- fr.sp = regs->sp;
- walk_stackframe(&fr, callchain_trace, entry);
-}
-
-unsigned long perf_instruction_pointer(struct pt_regs *regs)
-{
- return instruction_pointer(regs);
-}
-
-unsigned long perf_misc_flags(struct pt_regs *regs)
-{
- int misc = 0;
-
- if (user_mode(regs))
- misc |= PERF_RECORD_MISC_USER;
- else
- misc |= PERF_RECORD_MISC_KERNEL;
-
- return misc;
-}
diff --git a/arch/nds32/kernel/pm.c b/arch/nds32/kernel/pm.c
deleted file mode 100644
index e25700e125d8..000000000000
--- a/arch/nds32/kernel/pm.c
+++ /dev/null
@@ -1,80 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2008-2017 Andes Technology Corporation
-
-#include <linux/init.h>
-#include <linux/suspend.h>
-#include <linux/device.h>
-#include <linux/printk.h>
-#include <asm/suspend.h>
-#include <nds32_intrinsic.h>
-
-unsigned int resume_addr;
-unsigned int *phy_addr_sp_tmp;
-
-static void nds32_suspend2ram(void)
-{
- pgd_t *pgdv;
- p4d_t *p4dv;
- pud_t *pudv;
- pmd_t *pmdv;
- pte_t *ptev;
-
- pgdv = (pgd_t *)__va((__nds32__mfsr(NDS32_SR_L1_PPTB) &
- L1_PPTB_mskBASE)) + pgd_index((unsigned int)cpu_resume);
-
- p4dv = p4d_offset(pgdv, (unsigned int)cpu_resume);
- pudv = pud_offset(p4dv, (unsigned int)cpu_resume);
- pmdv = pmd_offset(pudv, (unsigned int)cpu_resume);
- ptev = pte_offset_map(pmdv, (unsigned int)cpu_resume);
-
- resume_addr = ((*ptev) & TLB_DATA_mskPPN)
- | ((unsigned int)cpu_resume & 0x00000fff);
-
- suspend2ram();
-}
-
-static void nds32_suspend_cpu(void)
-{
- while (!(__nds32__mfsr(NDS32_SR_INT_PEND) & wake_mask))
- __asm__ volatile ("standby no_wake_grant\n\t");
-}
-
-static int nds32_pm_valid(suspend_state_t state)
-{
- switch (state) {
- case PM_SUSPEND_ON:
- case PM_SUSPEND_STANDBY:
- case PM_SUSPEND_MEM:
- return 1;
- default:
- return 0;
- }
-}
-
-static int nds32_pm_enter(suspend_state_t state)
-{
- pr_debug("%s:state:%d\n", __func__, state);
- switch (state) {
- case PM_SUSPEND_STANDBY:
- nds32_suspend_cpu();
- return 0;
- case PM_SUSPEND_MEM:
- nds32_suspend2ram();
- return 0;
- default:
- return -EINVAL;
- }
-}
-
-static const struct platform_suspend_ops nds32_pm_ops = {
- .valid = nds32_pm_valid,
- .enter = nds32_pm_enter,
-};
-
-static int __init nds32_pm_init(void)
-{
- pr_debug("Enter %s\n", __func__);
- suspend_set_ops(&nds32_pm_ops);
- return 0;
-}
-late_initcall(nds32_pm_init);
diff --git a/arch/nds32/kernel/process.c b/arch/nds32/kernel/process.c
deleted file mode 100644
index 49fab9e39cbf..000000000000
--- a/arch/nds32/kernel/process.c
+++ /dev/null
@@ -1,257 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/sched.h>
-#include <linux/sched/debug.h>
-#include <linux/sched/task_stack.h>
-#include <linux/delay.h>
-#include <linux/kallsyms.h>
-#include <linux/uaccess.h>
-#include <asm/elf.h>
-#include <asm/proc-fns.h>
-#include <asm/fpu.h>
-#include <linux/ptrace.h>
-#include <linux/reboot.h>
-
-#if IS_ENABLED(CONFIG_LAZY_FPU)
-struct task_struct *last_task_used_math;
-#endif
-
-extern void setup_mm_for_reboot(char mode);
-
-extern inline void arch_reset(char mode)
-{
- if (mode == 's') {
- /* Use cpu handler, jump to 0 */
- cpu_reset(0);
- }
-}
-
-void (*pm_power_off) (void);
-EXPORT_SYMBOL(pm_power_off);
-
-static char reboot_mode_nds32 = 'h';
-
-int __init reboot_setup(char *str)
-{
- reboot_mode_nds32 = str[0];
- return 1;
-}
-
-static int cpub_pwroff(void)
-{
- return 0;
-}
-
-__setup("reboot=", reboot_setup);
-
-void machine_halt(void)
-{
- cpub_pwroff();
-}
-
-EXPORT_SYMBOL(machine_halt);
-
-void machine_power_off(void)
-{
- if (pm_power_off)
- pm_power_off();
-}
-
-EXPORT_SYMBOL(machine_power_off);
-
-void machine_restart(char *cmd)
-{
- /*
- * Clean and disable cache, and turn off interrupts
- */
- cpu_proc_fin();
-
- /*
- * Tell the mm system that we are going to reboot -
- * we may need it to insert some 1:1 mappings so that
- * soft boot works.
- */
- setup_mm_for_reboot(reboot_mode_nds32);
-
- /* Execute kernel restart handler call chain */
- do_kernel_restart(cmd);
-
- /*
- * Now call the architecture specific reboot code.
- */
- arch_reset(reboot_mode_nds32);
-
- /*
- * Whoops - the architecture was unable to reboot.
- * Tell the user!
- */
- mdelay(1000);
- pr_info("Reboot failed -- System halted\n");
- while (1) ;
-}
-
-EXPORT_SYMBOL(machine_restart);
-
-void show_regs(struct pt_regs *regs)
-{
- printk("PC is at %pS\n", (void *)instruction_pointer(regs));
- printk("LP is at %pS\n", (void *)regs->lp);
- pr_info("pc : [<%08lx>] lp : [<%08lx>] %s\n"
- "sp : %08lx fp : %08lx gp : %08lx\n",
- instruction_pointer(regs),
- regs->lp, print_tainted(), regs->sp, regs->fp, regs->gp);
- pr_info("r25: %08lx r24: %08lx\n", regs->uregs[25], regs->uregs[24]);
-
- pr_info("r23: %08lx r22: %08lx r21: %08lx r20: %08lx\n",
- regs->uregs[23], regs->uregs[22],
- regs->uregs[21], regs->uregs[20]);
- pr_info("r19: %08lx r18: %08lx r17: %08lx r16: %08lx\n",
- regs->uregs[19], regs->uregs[18],
- regs->uregs[17], regs->uregs[16]);
- pr_info("r15: %08lx r14: %08lx r13: %08lx r12: %08lx\n",
- regs->uregs[15], regs->uregs[14],
- regs->uregs[13], regs->uregs[12]);
- pr_info("r11: %08lx r10: %08lx r9 : %08lx r8 : %08lx\n",
- regs->uregs[11], regs->uregs[10],
- regs->uregs[9], regs->uregs[8]);
- pr_info("r7 : %08lx r6 : %08lx r5 : %08lx r4 : %08lx\n",
- regs->uregs[7], regs->uregs[6], regs->uregs[5], regs->uregs[4]);
- pr_info("r3 : %08lx r2 : %08lx r1 : %08lx r0 : %08lx\n",
- regs->uregs[3], regs->uregs[2], regs->uregs[1], regs->uregs[0]);
- pr_info(" IRQs o%s Segment %s\n",
- interrupts_enabled(regs) ? "n" : "ff",
- uaccess_kernel() ? "kernel" : "user");
-}
-
-EXPORT_SYMBOL(show_regs);
-
-void exit_thread(struct task_struct *tsk)
-{
-#if defined(CONFIG_FPU) && defined(CONFIG_LAZY_FPU)
- if (last_task_used_math == tsk)
- last_task_used_math = NULL;
-#endif
-}
-
-void flush_thread(void)
-{
-#if defined(CONFIG_FPU)
- clear_fpu(task_pt_regs(current));
- clear_used_math();
-# ifdef CONFIG_LAZY_FPU
- if (last_task_used_math == current)
- last_task_used_math = NULL;
-# endif
-#endif
-}
-
-DEFINE_PER_CPU(struct task_struct *, __entry_task);
-
-asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
-int copy_thread(unsigned long clone_flags, unsigned long stack_start,
- unsigned long stk_sz, struct task_struct *p, unsigned long tls)
-{
- struct pt_regs *childregs = task_pt_regs(p);
-
- memset(&p->thread.cpu_context, 0, sizeof(struct cpu_context));
-
- if (unlikely(p->flags & (PF_KTHREAD | PF_IO_WORKER))) {
- memset(childregs, 0, sizeof(struct pt_regs));
- /* kernel thread fn */
- p->thread.cpu_context.r6 = stack_start;
- /* kernel thread argument */
- p->thread.cpu_context.r7 = stk_sz;
- } else {
- *childregs = *current_pt_regs();
- if (stack_start)
- childregs->sp = stack_start;
- /* child get zero as ret. */
- childregs->uregs[0] = 0;
- childregs->osp = 0;
- if (clone_flags & CLONE_SETTLS)
- childregs->uregs[25] = tls;
- }
- /* cpu context switching */
- p->thread.cpu_context.pc = (unsigned long)ret_from_fork;
- p->thread.cpu_context.sp = (unsigned long)childregs;
-
-#if IS_ENABLED(CONFIG_FPU)
- if (used_math()) {
-# if !IS_ENABLED(CONFIG_LAZY_FPU)
- unlazy_fpu(current);
-# else
- preempt_disable();
- if (last_task_used_math == current)
- save_fpu(current);
- preempt_enable();
-# endif
- p->thread.fpu = current->thread.fpu;
- clear_fpu(task_pt_regs(p));
- set_stopped_child_used_math(p);
- }
-#endif
-
-#ifdef CONFIG_HWZOL
- childregs->lb = 0;
- childregs->le = 0;
- childregs->lc = 0;
-#endif
-
- return 0;
-}
-
-#if IS_ENABLED(CONFIG_FPU)
-struct task_struct *_switch_fpu(struct task_struct *prev, struct task_struct *next)
-{
-#if !IS_ENABLED(CONFIG_LAZY_FPU)
- unlazy_fpu(prev);
-#endif
- if (!(next->flags & PF_KTHREAD))
- clear_fpu(task_pt_regs(next));
- return prev;
-}
-#endif
-
-/*
- * fill in the fpe structure for a core dump...
- */
-int dump_fpu(struct pt_regs *regs, elf_fpregset_t * fpu)
-{
- int fpvalid = 0;
-#if IS_ENABLED(CONFIG_FPU)
- struct task_struct *tsk = current;
-
- fpvalid = tsk_used_math(tsk);
- if (fpvalid) {
- lose_fpu();
- memcpy(fpu, &tsk->thread.fpu, sizeof(*fpu));
- }
-#endif
- return fpvalid;
-}
-
-EXPORT_SYMBOL(dump_fpu);
-
-unsigned long __get_wchan(struct task_struct *p)
-{
- unsigned long fp, lr;
- unsigned long stack_start, stack_end;
- int count = 0;
-
- if (IS_ENABLED(CONFIG_FRAME_POINTER)) {
- stack_start = (unsigned long)end_of_stack(p);
- stack_end = (unsigned long)task_stack_page(p) + THREAD_SIZE;
-
- fp = thread_saved_fp(p);
- do {
- if (fp < stack_start || fp > stack_end)
- return 0;
- lr = ((unsigned long *)fp)[0];
- if (!in_sched_functions(lr))
- return lr;
- fp = *(unsigned long *)(fp + 4);
- } while (count++ < 16);
- }
- return 0;
-}
diff --git a/arch/nds32/kernel/ptrace.c b/arch/nds32/kernel/ptrace.c
deleted file mode 100644
index d0eda870fbc2..000000000000
--- a/arch/nds32/kernel/ptrace.c
+++ /dev/null
@@ -1,118 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/ptrace.h>
-#include <linux/regset.h>
-#include <linux/tracehook.h>
-#include <linux/elf.h>
-#include <linux/sched/task_stack.h>
-
-enum nds32_regset {
- REGSET_GPR,
-};
-
-static int gpr_get(struct task_struct *target,
- const struct user_regset *regset,
- struct membuf to)
-{
- return membuf_write(&to, &task_pt_regs(target)->user_regs,
- sizeof(struct user_pt_regs));
-}
-
-static int gpr_set(struct task_struct *target, const struct user_regset *regset,
- unsigned int pos, unsigned int count,
- const void *kbuf, const void __user * ubuf)
-{
- int err;
- struct user_pt_regs newregs = task_pt_regs(target)->user_regs;
-
- err = user_regset_copyin(&pos, &count, &kbuf, &ubuf, &newregs, 0, -1);
- if (err)
- return err;
-
- task_pt_regs(target)->user_regs = newregs;
- return 0;
-}
-
-static const struct user_regset nds32_regsets[] = {
- [REGSET_GPR] = {
- .core_note_type = NT_PRSTATUS,
- .n = sizeof(struct user_pt_regs) / sizeof(u32),
- .size = sizeof(elf_greg_t),
- .align = sizeof(elf_greg_t),
- .regset_get = gpr_get,
- .set = gpr_set}
-};
-
-static const struct user_regset_view nds32_user_view = {
- .name = "nds32",
- .e_machine = EM_NDS32,
- .regsets = nds32_regsets,
- .n = ARRAY_SIZE(nds32_regsets)
-};
-
-const struct user_regset_view *task_user_regset_view(struct task_struct *task)
-{
- return &nds32_user_view;
-}
-
-void ptrace_disable(struct task_struct *child)
-{
- user_disable_single_step(child);
-}
-
-/* do_ptrace()
- *
- * Provide ptrace defined service.
- */
-long arch_ptrace(struct task_struct *child, long request, unsigned long addr,
- unsigned long data)
-{
- int ret = -EIO;
-
- switch (request) {
- default:
- ret = ptrace_request(child, request, addr, data);
- break;
- }
-
- return ret;
-}
-
-void user_enable_single_step(struct task_struct *child)
-{
- struct pt_regs *regs;
- regs = task_pt_regs(child);
- regs->ipsw |= PSW_mskHSS;
- set_tsk_thread_flag(child, TIF_SINGLESTEP);
-}
-
-void user_disable_single_step(struct task_struct *child)
-{
- struct pt_regs *regs;
- regs = task_pt_regs(child);
- regs->ipsw &= ~PSW_mskHSS;
- clear_tsk_thread_flag(child, TIF_SINGLESTEP);
-}
-
-/* sys_trace()
- *
- * syscall trace handler.
- */
-
-asmlinkage int syscall_trace_enter(struct pt_regs *regs)
-{
- if (test_thread_flag(TIF_SYSCALL_TRACE)) {
- if (tracehook_report_syscall_entry(regs))
- forget_syscall(regs);
- }
- return regs->syscallno;
-}
-
-asmlinkage void syscall_trace_leave(struct pt_regs *regs)
-{
- int step = test_thread_flag(TIF_SINGLESTEP);
- if (step || test_thread_flag(TIF_SYSCALL_TRACE))
- tracehook_report_syscall_exit(regs, step);
-
-}
diff --git a/arch/nds32/kernel/setup.c b/arch/nds32/kernel/setup.c
deleted file mode 100644
index b3d34d646652..000000000000
--- a/arch/nds32/kernel/setup.c
+++ /dev/null
@@ -1,369 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/cpu.h>
-#include <linux/memblock.h>
-#include <linux/seq_file.h>
-#include <linux/console.h>
-#include <linux/screen_info.h>
-#include <linux/delay.h>
-#include <linux/dma-mapping.h>
-#include <linux/of_fdt.h>
-#include <linux/of_platform.h>
-#include <asm/setup.h>
-#include <asm/sections.h>
-#include <asm/proc-fns.h>
-#include <asm/cache_info.h>
-#include <asm/elf.h>
-#include <asm/fpu.h>
-#include <nds32_intrinsic.h>
-
-#define HWCAP_MFUSR_PC 0x000001
-#define HWCAP_EXT 0x000002
-#define HWCAP_EXT2 0x000004
-#define HWCAP_FPU 0x000008
-#define HWCAP_AUDIO 0x000010
-#define HWCAP_BASE16 0x000020
-#define HWCAP_STRING 0x000040
-#define HWCAP_REDUCED_REGS 0x000080
-#define HWCAP_VIDEO 0x000100
-#define HWCAP_ENCRYPT 0x000200
-#define HWCAP_EDM 0x000400
-#define HWCAP_LMDMA 0x000800
-#define HWCAP_PFM 0x001000
-#define HWCAP_HSMP 0x002000
-#define HWCAP_TRACE 0x004000
-#define HWCAP_DIV 0x008000
-#define HWCAP_MAC 0x010000
-#define HWCAP_L2C 0x020000
-#define HWCAP_FPU_DP 0x040000
-#define HWCAP_V2 0x080000
-#define HWCAP_DX_REGS 0x100000
-#define HWCAP_HWPRE 0x200000
-
-unsigned long cpu_id, cpu_rev, cpu_cfgid;
-bool has_fpu = false;
-char cpu_series;
-char *endianness = NULL;
-
-unsigned int __atags_pointer __initdata;
-unsigned int elf_hwcap;
-EXPORT_SYMBOL(elf_hwcap);
-
-/*
- * The following string table, must sync with HWCAP_xx bitmask,
- * which is defined above
- */
-static const char *hwcap_str[] = {
- "mfusr_pc",
- "perf1",
- "perf2",
- "fpu",
- "audio",
- "16b",
- "string",
- "reduced_regs",
- "video",
- "encrypt",
- "edm",
- "lmdma",
- "pfm",
- "hsmp",
- "trace",
- "div",
- "mac",
- "l2c",
- "fpu_dp",
- "v2",
- "dx_regs",
- "hw_pre",
- NULL,
-};
-
-#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
-#define WRITE_METHOD "write through"
-#else
-#define WRITE_METHOD "write back"
-#endif
-
-struct cache_info L1_cache_info[2];
-static void __init dump_cpu_info(int cpu)
-{
- int i, p = 0;
- char str[sizeof(hwcap_str) + 16];
-
- for (i = 0; hwcap_str[i]; i++) {
- if (elf_hwcap & (1 << i)) {
- sprintf(str + p, "%s ", hwcap_str[i]);
- p += strlen(hwcap_str[i]) + 1;
- }
- }
-
- pr_info("CPU%d Features: %s\n", cpu, str);
-
- L1_cache_info[ICACHE].ways = CACHE_WAY(ICACHE);
- L1_cache_info[ICACHE].line_size = CACHE_LINE_SIZE(ICACHE);
- L1_cache_info[ICACHE].sets = CACHE_SET(ICACHE);
- L1_cache_info[ICACHE].size =
- L1_cache_info[ICACHE].ways * L1_cache_info[ICACHE].line_size *
- L1_cache_info[ICACHE].sets / 1024;
- pr_info("L1I:%dKB/%dS/%dW/%dB\n", L1_cache_info[ICACHE].size,
- L1_cache_info[ICACHE].sets, L1_cache_info[ICACHE].ways,
- L1_cache_info[ICACHE].line_size);
- L1_cache_info[DCACHE].ways = CACHE_WAY(DCACHE);
- L1_cache_info[DCACHE].line_size = CACHE_LINE_SIZE(DCACHE);
- L1_cache_info[DCACHE].sets = CACHE_SET(DCACHE);
- L1_cache_info[DCACHE].size =
- L1_cache_info[DCACHE].ways * L1_cache_info[DCACHE].line_size *
- L1_cache_info[DCACHE].sets / 1024;
- pr_info("L1D:%dKB/%dS/%dW/%dB\n", L1_cache_info[DCACHE].size,
- L1_cache_info[DCACHE].sets, L1_cache_info[DCACHE].ways,
- L1_cache_info[DCACHE].line_size);
- pr_info("L1 D-Cache is %s\n", WRITE_METHOD);
- if (L1_cache_info[DCACHE].size != L1_CACHE_BYTES)
- pr_crit
- ("The cache line size(%d) of this processor is not the same as L1_CACHE_BYTES(%d).\n",
- L1_cache_info[DCACHE].size, L1_CACHE_BYTES);
-#ifdef CONFIG_CPU_CACHE_ALIASING
- {
- int aliasing_num;
- aliasing_num =
- L1_cache_info[ICACHE].size * 1024 / PAGE_SIZE /
- L1_cache_info[ICACHE].ways;
- L1_cache_info[ICACHE].aliasing_num = aliasing_num;
- L1_cache_info[ICACHE].aliasing_mask =
- (aliasing_num - 1) << PAGE_SHIFT;
- aliasing_num =
- L1_cache_info[DCACHE].size * 1024 / PAGE_SIZE /
- L1_cache_info[DCACHE].ways;
- L1_cache_info[DCACHE].aliasing_num = aliasing_num;
- L1_cache_info[DCACHE].aliasing_mask =
- (aliasing_num - 1) << PAGE_SHIFT;
- }
-#endif
-#ifdef CONFIG_FPU
- /* Disable fpu and enable when it is used. */
- if (has_fpu)
- disable_fpu();
-#endif
-}
-
-static void __init setup_cpuinfo(void)
-{
- unsigned long tmp = 0, cpu_name;
-
- cpu_dcache_inval_all();
- cpu_icache_inval_all();
- __nds32__isb();
-
- cpu_id = (__nds32__mfsr(NDS32_SR_CPU_VER) & CPU_VER_mskCPUID) >> CPU_VER_offCPUID;
- cpu_name = ((cpu_id) & 0xf0) >> 4;
- cpu_series = cpu_name ? cpu_name - 10 + 'A' : 'N';
- cpu_id = cpu_id & 0xf;
- cpu_rev = (__nds32__mfsr(NDS32_SR_CPU_VER) & CPU_VER_mskREV) >> CPU_VER_offREV;
- cpu_cfgid = (__nds32__mfsr(NDS32_SR_CPU_VER) & CPU_VER_mskCFGID) >> CPU_VER_offCFGID;
-
- pr_info("CPU:%c%ld, CPU_VER 0x%08x(id %lu, rev %lu, cfg %lu)\n",
- cpu_series, cpu_id, __nds32__mfsr(NDS32_SR_CPU_VER), cpu_id, cpu_rev, cpu_cfgid);
-
- elf_hwcap |= HWCAP_MFUSR_PC;
-
- if (((__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskBASEV) >> MSC_CFG_offBASEV) == 0) {
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskDIV)
- elf_hwcap |= HWCAP_DIV;
-
- if ((__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskMAC)
- || (cpu_id == 12 && cpu_rev < 4))
- elf_hwcap |= HWCAP_MAC;
- } else {
- elf_hwcap |= HWCAP_V2;
- elf_hwcap |= HWCAP_DIV;
- elf_hwcap |= HWCAP_MAC;
- }
-
- if (cpu_cfgid & 0x0001)
- elf_hwcap |= HWCAP_EXT;
-
- if (cpu_cfgid & 0x0002)
- elf_hwcap |= HWCAP_BASE16;
-
- if (cpu_cfgid & 0x0004)
- elf_hwcap |= HWCAP_EXT2;
-
- if (cpu_cfgid & 0x0008) {
- elf_hwcap |= HWCAP_FPU;
- has_fpu = true;
- }
- if (cpu_cfgid & 0x0010)
- elf_hwcap |= HWCAP_STRING;
-
- if (__nds32__mfsr(NDS32_SR_MMU_CFG) & MMU_CFG_mskDE)
- endianness = "MSB";
- else
- endianness = "LSB";
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskEDM)
- elf_hwcap |= HWCAP_EDM;
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskLMDMA)
- elf_hwcap |= HWCAP_LMDMA;
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskPFM)
- elf_hwcap |= HWCAP_PFM;
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskHSMP)
- elf_hwcap |= HWCAP_HSMP;
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskTRACE)
- elf_hwcap |= HWCAP_TRACE;
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskAUDIO)
- elf_hwcap |= HWCAP_AUDIO;
-
- if (__nds32__mfsr(NDS32_SR_MSC_CFG) & MSC_CFG_mskL2C)
- elf_hwcap |= HWCAP_L2C;
-
-#ifdef CONFIG_HW_PRE
- if (__nds32__mfsr(NDS32_SR_MISC_CTL) & MISC_CTL_makHWPRE_EN)
- elf_hwcap |= HWCAP_HWPRE;
-#endif
-
- tmp = __nds32__mfsr(NDS32_SR_CACHE_CTL);
- if (!IS_ENABLED(CONFIG_CPU_DCACHE_DISABLE))
- tmp |= CACHE_CTL_mskDC_EN;
-
- if (!IS_ENABLED(CONFIG_CPU_ICACHE_DISABLE))
- tmp |= CACHE_CTL_mskIC_EN;
- __nds32__mtsr_isb(tmp, NDS32_SR_CACHE_CTL);
-
- dump_cpu_info(smp_processor_id());
-}
-
-static void __init setup_memory(void)
-{
- unsigned long ram_start_pfn;
- unsigned long free_ram_start_pfn;
- phys_addr_t memory_start, memory_end;
-
- memory_end = memory_start = 0;
-
- /* Find main memory where is the kernel */
- memory_start = memblock_start_of_DRAM();
- memory_end = memblock_end_of_DRAM();
-
- if (!memory_end) {
- panic("No memory!");
- }
-
- ram_start_pfn = PFN_UP(memblock_start_of_DRAM());
- /* free_ram_start_pfn is first page after kernel */
- free_ram_start_pfn = PFN_UP(__pa(&_end));
- max_pfn = PFN_DOWN(memblock_end_of_DRAM());
- /* it could update max_pfn */
- if (max_pfn - ram_start_pfn <= MAXMEM_PFN)
- max_low_pfn = max_pfn;
- else {
- max_low_pfn = MAXMEM_PFN + ram_start_pfn;
- if (!IS_ENABLED(CONFIG_HIGHMEM))
- max_pfn = MAXMEM_PFN + ram_start_pfn;
- }
- /* high_memory is related with VMALLOC */
- high_memory = (void *)__va(max_low_pfn * PAGE_SIZE);
- min_low_pfn = free_ram_start_pfn;
-
- /*
- * initialize the boot-time allocator (with low memory only).
- *
- * This makes the memory from the end of the kernel to the end of
- * RAM usable.
- */
- memblock_set_bottom_up(true);
- memblock_reserve(PFN_PHYS(ram_start_pfn), PFN_PHYS(free_ram_start_pfn - ram_start_pfn));
-
- early_init_fdt_reserve_self();
- early_init_fdt_scan_reserved_mem();
-
- memblock_dump_all();
-}
-
-void __init setup_arch(char **cmdline_p)
-{
- early_init_devtree(__atags_pointer ? \
- phys_to_virt(__atags_pointer) : __dtb_start);
-
- setup_cpuinfo();
-
- setup_initial_init_mm(_stext, _etext, _edata, _end);
-
- /* setup bootmem allocator */
- setup_memory();
-
- /* paging_init() sets up the MMU and marks all pages as reserved */
- paging_init();
-
- /* invalidate all TLB entries because the new mapping is created */
- __nds32__tlbop_flua();
-
- /* use generic way to parse */
- parse_early_param();
-
- unflatten_and_copy_device_tree();
-
- *cmdline_p = boot_command_line;
- early_trap_init();
-}
-
-static int c_show(struct seq_file *m, void *v)
-{
- int i;
-
- seq_printf(m, "Processor\t: %c%ld (id %lu, rev %lu, cfg %lu)\n",
- cpu_series, cpu_id, cpu_id, cpu_rev, cpu_cfgid);
-
- seq_printf(m, "L1I\t\t: %luKB/%luS/%luW/%luB\n",
- CACHE_SET(ICACHE) * CACHE_WAY(ICACHE) *
- CACHE_LINE_SIZE(ICACHE) / 1024, CACHE_SET(ICACHE),
- CACHE_WAY(ICACHE), CACHE_LINE_SIZE(ICACHE));
-
- seq_printf(m, "L1D\t\t: %luKB/%luS/%luW/%luB\n",
- CACHE_SET(DCACHE) * CACHE_WAY(DCACHE) *
- CACHE_LINE_SIZE(DCACHE) / 1024, CACHE_SET(DCACHE),
- CACHE_WAY(DCACHE), CACHE_LINE_SIZE(DCACHE));
-
- seq_printf(m, "BogoMIPS\t: %lu.%02lu\n",
- loops_per_jiffy / (500000 / HZ),
- (loops_per_jiffy / (5000 / HZ)) % 100);
-
- /* dump out the processor features */
- seq_puts(m, "Features\t: ");
-
- for (i = 0; hwcap_str[i]; i++)
- if (elf_hwcap & (1 << i))
- seq_printf(m, "%s ", hwcap_str[i]);
-
- seq_puts(m, "\n\n");
-
- return 0;
-}
-
-static void *c_start(struct seq_file *m, loff_t * pos)
-{
- return *pos < 1 ? (void *)1 : NULL;
-}
-
-static void *c_next(struct seq_file *m, void *v, loff_t * pos)
-{
- ++*pos;
- return NULL;
-}
-
-static void c_stop(struct seq_file *m, void *v)
-{
-}
-
-struct seq_operations cpuinfo_op = {
- .start = c_start,
- .next = c_next,
- .stop = c_stop,
- .show = c_show
-};
diff --git a/arch/nds32/kernel/signal.c b/arch/nds32/kernel/signal.c
deleted file mode 100644
index 7e3ca430a223..000000000000
--- a/arch/nds32/kernel/signal.c
+++ /dev/null
@@ -1,384 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/errno.h>
-#include <linux/signal.h>
-#include <linux/ptrace.h>
-#include <linux/personality.h>
-#include <linux/freezer.h>
-#include <linux/tracehook.h>
-#include <linux/uaccess.h>
-
-#include <asm/cacheflush.h>
-#include <asm/ucontext.h>
-#include <asm/unistd.h>
-#include <asm/fpu.h>
-
-#include <asm/ptrace.h>
-#include <asm/vdso.h>
-
-struct rt_sigframe {
- struct siginfo info;
- struct ucontext uc;
-};
-#if IS_ENABLED(CONFIG_FPU)
-static inline int restore_sigcontext_fpu(struct pt_regs *regs,
- struct sigcontext __user *sc)
-{
- struct task_struct *tsk = current;
- unsigned long used_math_flag;
- int ret = 0;
-
- clear_used_math();
- __get_user_error(used_math_flag, &sc->used_math_flag, ret);
-
- if (!used_math_flag)
- return 0;
- set_used_math();
-
-#if IS_ENABLED(CONFIG_LAZY_FPU)
- preempt_disable();
- if (current == last_task_used_math) {
- last_task_used_math = NULL;
- disable_ptreg_fpu(regs);
- }
- preempt_enable();
-#else
- clear_fpu(regs);
-#endif
-
- return __copy_from_user(&tsk->thread.fpu, &sc->fpu,
- sizeof(struct fpu_struct));
-}
-
-static inline int setup_sigcontext_fpu(struct pt_regs *regs,
- struct sigcontext __user *sc)
-{
- struct task_struct *tsk = current;
- int ret = 0;
-
- __put_user_error(used_math(), &sc->used_math_flag, ret);
-
- if (!used_math())
- return ret;
-
- preempt_disable();
-#if IS_ENABLED(CONFIG_LAZY_FPU)
- if (last_task_used_math == tsk)
- save_fpu(last_task_used_math);
-#else
- unlazy_fpu(tsk);
-#endif
- ret = __copy_to_user(&sc->fpu, &tsk->thread.fpu,
- sizeof(struct fpu_struct));
- preempt_enable();
- return ret;
-}
-#endif
-
-static int restore_sigframe(struct pt_regs *regs,
- struct rt_sigframe __user * sf)
-{
- sigset_t set;
- int err;
-
- err = __copy_from_user(&set, &sf->uc.uc_sigmask, sizeof(set));
- if (err == 0) {
- set_current_blocked(&set);
- }
-
- __get_user_error(regs->uregs[0], &sf->uc.uc_mcontext.nds32_r0, err);
- __get_user_error(regs->uregs[1], &sf->uc.uc_mcontext.nds32_r1, err);
- __get_user_error(regs->uregs[2], &sf->uc.uc_mcontext.nds32_r2, err);
- __get_user_error(regs->uregs[3], &sf->uc.uc_mcontext.nds32_r3, err);
- __get_user_error(regs->uregs[4], &sf->uc.uc_mcontext.nds32_r4, err);
- __get_user_error(regs->uregs[5], &sf->uc.uc_mcontext.nds32_r5, err);
- __get_user_error(regs->uregs[6], &sf->uc.uc_mcontext.nds32_r6, err);
- __get_user_error(regs->uregs[7], &sf->uc.uc_mcontext.nds32_r7, err);
- __get_user_error(regs->uregs[8], &sf->uc.uc_mcontext.nds32_r8, err);
- __get_user_error(regs->uregs[9], &sf->uc.uc_mcontext.nds32_r9, err);
- __get_user_error(regs->uregs[10], &sf->uc.uc_mcontext.nds32_r10, err);
- __get_user_error(regs->uregs[11], &sf->uc.uc_mcontext.nds32_r11, err);
- __get_user_error(regs->uregs[12], &sf->uc.uc_mcontext.nds32_r12, err);
- __get_user_error(regs->uregs[13], &sf->uc.uc_mcontext.nds32_r13, err);
- __get_user_error(regs->uregs[14], &sf->uc.uc_mcontext.nds32_r14, err);
- __get_user_error(regs->uregs[15], &sf->uc.uc_mcontext.nds32_r15, err);
- __get_user_error(regs->uregs[16], &sf->uc.uc_mcontext.nds32_r16, err);
- __get_user_error(regs->uregs[17], &sf->uc.uc_mcontext.nds32_r17, err);
- __get_user_error(regs->uregs[18], &sf->uc.uc_mcontext.nds32_r18, err);
- __get_user_error(regs->uregs[19], &sf->uc.uc_mcontext.nds32_r19, err);
- __get_user_error(regs->uregs[20], &sf->uc.uc_mcontext.nds32_r20, err);
- __get_user_error(regs->uregs[21], &sf->uc.uc_mcontext.nds32_r21, err);
- __get_user_error(regs->uregs[22], &sf->uc.uc_mcontext.nds32_r22, err);
- __get_user_error(regs->uregs[23], &sf->uc.uc_mcontext.nds32_r23, err);
- __get_user_error(regs->uregs[24], &sf->uc.uc_mcontext.nds32_r24, err);
- __get_user_error(regs->uregs[25], &sf->uc.uc_mcontext.nds32_r25, err);
-
- __get_user_error(regs->fp, &sf->uc.uc_mcontext.nds32_fp, err);
- __get_user_error(regs->gp, &sf->uc.uc_mcontext.nds32_gp, err);
- __get_user_error(regs->lp, &sf->uc.uc_mcontext.nds32_lp, err);
- __get_user_error(regs->sp, &sf->uc.uc_mcontext.nds32_sp, err);
- __get_user_error(regs->ipc, &sf->uc.uc_mcontext.nds32_ipc, err);
-#if defined(CONFIG_HWZOL)
- __get_user_error(regs->lc, &sf->uc.uc_mcontext.zol.nds32_lc, err);
- __get_user_error(regs->le, &sf->uc.uc_mcontext.zol.nds32_le, err);
- __get_user_error(regs->lb, &sf->uc.uc_mcontext.zol.nds32_lb, err);
-#endif
-#if IS_ENABLED(CONFIG_FPU)
- err |= restore_sigcontext_fpu(regs, &sf->uc.uc_mcontext);
-#endif
- /*
- * Avoid sys_rt_sigreturn() restarting.
- */
- forget_syscall(regs);
- return err;
-}
-
-asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
-{
- struct rt_sigframe __user *frame;
-
- /* Always make any pending restarted system calls return -EINTR */
- current->restart_block.fn = do_no_restart_syscall;
-
- /*
- * Since we stacked the signal on a 64-bit boundary,
- * then 'sp' should be two-word aligned here. If it's
- * not, then the user is trying to mess with us.
- */
- if (regs->sp & 7)
- goto badframe;
-
- frame = (struct rt_sigframe __user *)regs->sp;
-
- if (!access_ok(frame, sizeof(*frame)))
- goto badframe;
-
- if (restore_sigframe(regs, frame))
- goto badframe;
-
- if (restore_altstack(&frame->uc.uc_stack))
- goto badframe;
-
- return regs->uregs[0];
-
-badframe:
- force_sig(SIGSEGV);
- return 0;
-}
-
-static int
-setup_sigframe(struct rt_sigframe __user * sf, struct pt_regs *regs,
- sigset_t * set)
-{
- int err = 0;
-
- __put_user_error(regs->uregs[0], &sf->uc.uc_mcontext.nds32_r0, err);
- __put_user_error(regs->uregs[1], &sf->uc.uc_mcontext.nds32_r1, err);
- __put_user_error(regs->uregs[2], &sf->uc.uc_mcontext.nds32_r2, err);
- __put_user_error(regs->uregs[3], &sf->uc.uc_mcontext.nds32_r3, err);
- __put_user_error(regs->uregs[4], &sf->uc.uc_mcontext.nds32_r4, err);
- __put_user_error(regs->uregs[5], &sf->uc.uc_mcontext.nds32_r5, err);
- __put_user_error(regs->uregs[6], &sf->uc.uc_mcontext.nds32_r6, err);
- __put_user_error(regs->uregs[7], &sf->uc.uc_mcontext.nds32_r7, err);
- __put_user_error(regs->uregs[8], &sf->uc.uc_mcontext.nds32_r8, err);
- __put_user_error(regs->uregs[9], &sf->uc.uc_mcontext.nds32_r9, err);
- __put_user_error(regs->uregs[10], &sf->uc.uc_mcontext.nds32_r10, err);
- __put_user_error(regs->uregs[11], &sf->uc.uc_mcontext.nds32_r11, err);
- __put_user_error(regs->uregs[12], &sf->uc.uc_mcontext.nds32_r12, err);
- __put_user_error(regs->uregs[13], &sf->uc.uc_mcontext.nds32_r13, err);
- __put_user_error(regs->uregs[14], &sf->uc.uc_mcontext.nds32_r14, err);
- __put_user_error(regs->uregs[15], &sf->uc.uc_mcontext.nds32_r15, err);
- __put_user_error(regs->uregs[16], &sf->uc.uc_mcontext.nds32_r16, err);
- __put_user_error(regs->uregs[17], &sf->uc.uc_mcontext.nds32_r17, err);
- __put_user_error(regs->uregs[18], &sf->uc.uc_mcontext.nds32_r18, err);
- __put_user_error(regs->uregs[19], &sf->uc.uc_mcontext.nds32_r19, err);
- __put_user_error(regs->uregs[20], &sf->uc.uc_mcontext.nds32_r20, err);
-
- __put_user_error(regs->uregs[21], &sf->uc.uc_mcontext.nds32_r21, err);
- __put_user_error(regs->uregs[22], &sf->uc.uc_mcontext.nds32_r22, err);
- __put_user_error(regs->uregs[23], &sf->uc.uc_mcontext.nds32_r23, err);
- __put_user_error(regs->uregs[24], &sf->uc.uc_mcontext.nds32_r24, err);
- __put_user_error(regs->uregs[25], &sf->uc.uc_mcontext.nds32_r25, err);
- __put_user_error(regs->fp, &sf->uc.uc_mcontext.nds32_fp, err);
- __put_user_error(regs->gp, &sf->uc.uc_mcontext.nds32_gp, err);
- __put_user_error(regs->lp, &sf->uc.uc_mcontext.nds32_lp, err);
- __put_user_error(regs->sp, &sf->uc.uc_mcontext.nds32_sp, err);
- __put_user_error(regs->ipc, &sf->uc.uc_mcontext.nds32_ipc, err);
-#if defined(CONFIG_HWZOL)
- __put_user_error(regs->lc, &sf->uc.uc_mcontext.zol.nds32_lc, err);
- __put_user_error(regs->le, &sf->uc.uc_mcontext.zol.nds32_le, err);
- __put_user_error(regs->lb, &sf->uc.uc_mcontext.zol.nds32_lb, err);
-#endif
-#if IS_ENABLED(CONFIG_FPU)
- err |= setup_sigcontext_fpu(regs, &sf->uc.uc_mcontext);
-#endif
-
- __put_user_error(current->thread.trap_no, &sf->uc.uc_mcontext.trap_no,
- err);
- __put_user_error(current->thread.error_code,
- &sf->uc.uc_mcontext.error_code, err);
- __put_user_error(current->thread.address,
- &sf->uc.uc_mcontext.fault_address, err);
- __put_user_error(set->sig[0], &sf->uc.uc_mcontext.oldmask, err);
-
- err |= __copy_to_user(&sf->uc.uc_sigmask, set, sizeof(*set));
-
- return err;
-}
-
-static inline void __user *get_sigframe(struct ksignal *ksig,
- struct pt_regs *regs, int framesize)
-{
- unsigned long sp;
-
- /* Default to using normal stack */
- sp = regs->sp;
-
- /*
- * If we are on the alternate signal stack and would overflow it, don't.
- * Return an always-bogus address instead so we will die with SIGSEGV.
- */
- if (on_sig_stack(sp) && !likely(on_sig_stack(sp - framesize)))
- return (void __user __force *)(-1UL);
-
- /* This is the X/Open sanctioned signal stack switching. */
- sp = (sigsp(sp, ksig) - framesize);
-
- /*
- * nds32 mandates 8-byte alignment
- */
- sp &= ~0x7UL;
-
- return (void __user *)sp;
-}
-
-static int
-setup_return(struct pt_regs *regs, struct ksignal *ksig, void __user * frame)
-{
- unsigned long handler = (unsigned long)ksig->ka.sa.sa_handler;
- unsigned long retcode;
-
- retcode = VDSO_SYMBOL(current->mm->context.vdso, rt_sigtramp);
- regs->uregs[0] = ksig->sig;
- regs->sp = (unsigned long)frame;
- regs->lp = retcode;
- regs->ipc = handler;
-
- return 0;
-}
-
-static int
-setup_rt_frame(struct ksignal *ksig, sigset_t * set, struct pt_regs *regs)
-{
- struct rt_sigframe __user *frame =
- get_sigframe(ksig, regs, sizeof(*frame));
- int err = 0;
-
- if (!access_ok(frame, sizeof(*frame)))
- return -EFAULT;
-
- __put_user_error(0, &frame->uc.uc_flags, err);
- __put_user_error(NULL, &frame->uc.uc_link, err);
-
- err |= __save_altstack(&frame->uc.uc_stack, regs->sp);
- err |= setup_sigframe(frame, regs, set);
- if (err == 0) {
- setup_return(regs, ksig, frame);
- if (ksig->ka.sa.sa_flags & SA_SIGINFO) {
- err |= copy_siginfo_to_user(&frame->info, &ksig->info);
- regs->uregs[1] = (unsigned long)&frame->info;
- regs->uregs[2] = (unsigned long)&frame->uc;
- }
- }
- return err;
-}
-
-/*
- * OK, we're invoking a handler
- */
-static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
-{
- int ret;
- sigset_t *oldset = sigmask_to_save();
-
- if (in_syscall(regs)) {
- /* Avoid additional syscall restarting via ret_slow_syscall. */
- forget_syscall(regs);
-
- switch (regs->uregs[0]) {
- case -ERESTART_RESTARTBLOCK:
- case -ERESTARTNOHAND:
- regs->uregs[0] = -EINTR;
- break;
- case -ERESTARTSYS:
- if (!(ksig->ka.sa.sa_flags & SA_RESTART)) {
- regs->uregs[0] = -EINTR;
- break;
- }
- fallthrough;
- case -ERESTARTNOINTR:
- regs->uregs[0] = regs->orig_r0;
- regs->ipc -= 4;
- break;
- }
- }
- /*
- * Set up the stack frame
- */
- ret = setup_rt_frame(ksig, oldset, regs);
-
- signal_setup_done(ret, ksig, 0);
-}
-
-/*
- * Note that 'init' is a special process: it doesn't get signals it doesn't
- * want to handle. Thus you cannot kill init even with a SIGKILL even by
- * mistake.
- *
- * Note that we go through the signals twice: once to check the signals that
- * the kernel can handle, and then we build all the user-level signal handling
- * stack-frames in one go after that.
- */
-static void do_signal(struct pt_regs *regs)
-{
- struct ksignal ksig;
-
- if (get_signal(&ksig)) {
- handle_signal(&ksig, regs);
- return;
- }
-
- /*
- * If we were from a system call, check for system call restarting...
- */
- if (in_syscall(regs)) {
- /* Restart the system call - no handlers present */
-
- /* Avoid additional syscall restarting via ret_slow_syscall. */
- forget_syscall(regs);
-
- switch (regs->uregs[0]) {
- case -ERESTART_RESTARTBLOCK:
- regs->uregs[15] = __NR_restart_syscall;
- fallthrough;
- case -ERESTARTNOHAND:
- case -ERESTARTSYS:
- case -ERESTARTNOINTR:
- regs->uregs[0] = regs->orig_r0;
- regs->ipc -= 0x4;
- break;
- }
- }
- restore_saved_sigmask();
-}
-
-asmlinkage void
-do_notify_resume(struct pt_regs *regs, unsigned int thread_flags)
-{
- if (thread_flags & (_TIF_SIGPENDING | _TIF_NOTIFY_SIGNAL))
- do_signal(regs);
-
- if (thread_flags & _TIF_NOTIFY_RESUME)
- tracehook_notify_resume(regs);
-}
diff --git a/arch/nds32/kernel/sleep.S b/arch/nds32/kernel/sleep.S
deleted file mode 100644
index ca4e61f3656f..000000000000
--- a/arch/nds32/kernel/sleep.S
+++ /dev/null
@@ -1,131 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (C) 2017 Andes Technology Corporation */
-
-#include <asm/memory.h>
-
-.data
-.global sp_tmp
-sp_tmp:
-.long
-
-.text
-.globl suspend2ram
-.globl cpu_resume
-
-suspend2ram:
- pushm $r0, $r31
-#if defined(CONFIG_HWZOL)
- mfusr $r0, $lc
- mfusr $r1, $le
- mfusr $r2, $lb
-#endif
- mfsr $r3, $mr0
- mfsr $r4, $mr1
- mfsr $r5, $mr4
- mfsr $r6, $mr6
- mfsr $r7, $mr7
- mfsr $r8, $mr8
- mfsr $r9, $ir0
- mfsr $r10, $ir1
- mfsr $r11, $ir2
- mfsr $r12, $ir3
- mfsr $r13, $ir9
- mfsr $r14, $ir10
- mfsr $r15, $ir12
- mfsr $r16, $ir13
- mfsr $r17, $ir14
- mfsr $r18, $ir15
- pushm $r0, $r19
-#if defined(CONFIG_FPU)
- jal store_fpu_for_suspend
-#endif
- tlbop FlushAll
- isb
-
- // transfer $sp from va to pa
- sethi $r0, hi20(PAGE_OFFSET)
- ori $r0, $r0, lo12(PAGE_OFFSET)
- movi $r2, PHYS_OFFSET
- sub $r1, $sp, $r0
- add $r2, $r1, $r2
-
- // store pa($sp) to sp_tmp
- sethi $r1, hi20(sp_tmp)
- swi $r2, [$r1 + lo12(sp_tmp)]
-
- pushm $r16, $r25
- pushm $r29, $r30
-#ifdef CONFIG_CACHE_L2
- jal dcache_wb_all_level
-#else
- jal cpu_dcache_wb_all
-#endif
- popm $r29, $r30
- popm $r16, $r25
-
- // get wake_mask and loop in standby
- la $r1, wake_mask
- lwi $r1, [$r1]
-self_loop:
- standby wake_grant
- mfsr $r2, $ir15
- and $r2, $r1, $r2
- beqz $r2, self_loop
-
- // set ipc to resume address
- la $r1, resume_addr
- lwi $r1, [$r1]
- mtsr $r1, $ipc
- isb
-
- // reset psw, turn off the address translation
- li $r2, 0x7000a
- mtsr $r2, $ipsw
- isb
-
- iret
-cpu_resume:
- // translate the address of sp_tmp variable to pa
- la $r1, sp_tmp
- sethi $r0, hi20(PAGE_OFFSET)
- ori $r0, $r0, lo12(PAGE_OFFSET)
- movi $r2, PHYS_OFFSET
- sub $r1, $r1, $r0
- add $r1, $r1, $r2
-
- // access the sp_tmp to get stack pointer
- lwi $sp, [$r1]
-
- popm $r0, $r19
-#if defined(CONFIG_HWZOL)
- mtusr $r0, $lb
- mtusr $r1, $lc
- mtusr $r2, $le
-#endif
- mtsr $r3, $mr0
- mtsr $r4, $mr1
- mtsr $r5, $mr4
- mtsr $r6, $mr6
- mtsr $r7, $mr7
- mtsr $r8, $mr8
- // set original psw to ipsw
- mtsr $r9, $ir1
-
- mtsr $r11, $ir2
- mtsr $r12, $ir3
-
- // set ipc to RR
- la $r13, RR
- mtsr $r13, $ir9
-
- mtsr $r14, $ir10
- mtsr $r15, $ir12
- mtsr $r16, $ir13
- mtsr $r17, $ir14
- mtsr $r18, $ir15
- popm $r0, $r31
-
- isb
- iret
-RR:
- ret
diff --git a/arch/nds32/kernel/stacktrace.c b/arch/nds32/kernel/stacktrace.c
deleted file mode 100644
index d974c0c1c65f..000000000000
--- a/arch/nds32/kernel/stacktrace.c
+++ /dev/null
@@ -1,53 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/sched/debug.h>
-#include <linux/sched/task_stack.h>
-#include <linux/stacktrace.h>
-#include <linux/ftrace.h>
-
-void save_stack_trace(struct stack_trace *trace)
-{
- save_stack_trace_tsk(current, trace);
-}
-EXPORT_SYMBOL_GPL(save_stack_trace);
-
-void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
-{
- unsigned long *fpn;
- int skip = trace->skip;
- int savesched;
- int graph_idx = 0;
-
- if (tsk == current) {
- __asm__ __volatile__("\tori\t%0, $fp, #0\n":"=r"(fpn));
- savesched = 1;
- } else {
- fpn = (unsigned long *)thread_saved_fp(tsk);
- savesched = 0;
- }
-
- while (!kstack_end(fpn) && !((unsigned long)fpn & 0x3)
- && (fpn >= (unsigned long *)TASK_SIZE)) {
- unsigned long lpp, fpp;
-
- lpp = fpn[LP_OFFSET];
- fpp = fpn[FP_OFFSET];
- if (!__kernel_text_address(lpp))
- break;
- else
- lpp = ftrace_graph_ret_addr(tsk, &graph_idx, lpp, NULL);
-
- if (savesched || !in_sched_functions(lpp)) {
- if (skip) {
- skip--;
- } else {
- trace->entries[trace->nr_entries++] = lpp;
- if (trace->nr_entries >= trace->max_entries)
- break;
- }
- }
- fpn = (unsigned long *)fpp;
- }
-}
-EXPORT_SYMBOL_GPL(save_stack_trace_tsk);
diff --git a/arch/nds32/kernel/sys_nds32.c b/arch/nds32/kernel/sys_nds32.c
deleted file mode 100644
index cb2d1e219bb3..000000000000
--- a/arch/nds32/kernel/sys_nds32.c
+++ /dev/null
@@ -1,84 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/syscalls.h>
-#include <linux/uaccess.h>
-
-#include <asm/cachectl.h>
-#include <asm/proc-fns.h>
-#include <asm/fpu.h>
-#include <asm/fp_udfiex_crtl.h>
-
-SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len,
- unsigned long, prot, unsigned long, flags,
- unsigned long, fd, unsigned long, pgoff)
-{
- if (pgoff & (~PAGE_MASK >> 12))
- return -EINVAL;
-
- return sys_mmap_pgoff(addr, len, prot, flags, fd,
- pgoff >> (PAGE_SHIFT - 12));
-}
-
-SYSCALL_DEFINE4(fadvise64_64_wrapper,int, fd, int, advice, loff_t, offset,
- loff_t, len)
-{
- return sys_fadvise64_64(fd, offset, len, advice);
-}
-
-SYSCALL_DEFINE3(cacheflush, unsigned int, start, unsigned int, end, int, cache)
-{
- struct vm_area_struct *vma;
- bool flushi = true, wbd = true;
-
- vma = find_vma(current->mm, start);
- if (!vma)
- return -EFAULT;
- switch (cache) {
- case ICACHE:
- wbd = false;
- break;
- case DCACHE:
- flushi = false;
- break;
- case BCACHE:
- break;
- default:
- return -EINVAL;
- }
- cpu_cache_wbinval_range_check(vma, start, end, flushi, wbd);
-
- return 0;
-}
-
-SYSCALL_DEFINE2(fp_udfiex_crtl, unsigned int, cmd, unsigned int, act)
-{
-#if IS_ENABLED(CONFIG_SUPPORT_DENORMAL_ARITHMETIC)
- int old_udf_iex;
-
- if (!used_math()) {
- load_fpu(&init_fpuregs);
- current->thread.fpu.UDF_IEX_trap = init_fpuregs.UDF_IEX_trap;
- set_used_math();
- }
-
- old_udf_iex = current->thread.fpu.UDF_IEX_trap;
- act &= (FPCSR_mskUDFE | FPCSR_mskIEXE);
-
- switch (cmd) {
- case DISABLE_UDF_IEX_TRAP:
- current->thread.fpu.UDF_IEX_trap &= ~act;
- break;
- case ENABLE_UDF_IEX_TRAP:
- current->thread.fpu.UDF_IEX_trap |= act;
- break;
- case GET_UDF_IEX_TRAP:
- break;
- default:
- return -EINVAL;
- }
- return old_udf_iex;
-#else
- return -ENOTSUPP;
-#endif
-}
diff --git a/arch/nds32/kernel/syscall_table.c b/arch/nds32/kernel/syscall_table.c
deleted file mode 100644
index 7879c061b87f..000000000000
--- a/arch/nds32/kernel/syscall_table.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/syscalls.h>
-#include <linux/signal.h>
-#include <linux/unistd.h>
-#include <asm/syscalls.h>
-
-#undef __SYSCALL
-#define __SYSCALL(nr, call) [nr] = (call),
-
-#define sys_rt_sigreturn sys_rt_sigreturn_wrapper
-#define sys_fadvise64_64 sys_fadvise64_64_wrapper
-void *sys_call_table[__NR_syscalls] __aligned(8192) = {
- [0 ... __NR_syscalls - 1] = sys_ni_syscall,
-#include <asm/unistd.h>
-};
diff --git a/arch/nds32/kernel/time.c b/arch/nds32/kernel/time.c
deleted file mode 100644
index 574a3d0a8539..000000000000
--- a/arch/nds32/kernel/time.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/clocksource.h>
-#include <linux/of_clk.h>
-
-void __init time_init(void)
-{
- of_clk_init(NULL);
- timer_probe();
-}
diff --git a/arch/nds32/kernel/traps.c b/arch/nds32/kernel/traps.c
deleted file mode 100644
index c0a8f3344fb9..000000000000
--- a/arch/nds32/kernel/traps.c
+++ /dev/null
@@ -1,354 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/module.h>
-#include <linux/personality.h>
-#include <linux/kallsyms.h>
-#include <linux/hardirq.h>
-#include <linux/kdebug.h>
-#include <linux/sched/task_stack.h>
-#include <linux/uaccess.h>
-#include <linux/ftrace.h>
-
-#include <asm/proc-fns.h>
-#include <asm/unistd.h>
-#include <asm/fpu.h>
-
-#include <linux/ptrace.h>
-#include <nds32_intrinsic.h>
-
-extern void show_pte(struct mm_struct *mm, unsigned long addr);
-
-/*
- * Dump out the contents of some memory nicely...
- */
-void dump_mem(const char *lvl, unsigned long bottom, unsigned long top)
-{
- unsigned long first;
- int i;
-
- pr_emerg("%s(0x%08lx to 0x%08lx)\n", lvl, bottom, top);
-
- for (first = bottom & ~31; first < top; first += 32) {
- unsigned long p;
- char str[sizeof(" 12345678") * 8 + 1];
-
- memset(str, ' ', sizeof(str));
- str[sizeof(str) - 1] = '\0';
-
- for (p = first, i = 0; i < 8 && p < top; i++, p += 4) {
- if (p >= bottom && p < top) {
- unsigned long val;
-
- if (get_kernel_nofault(val,
- (unsigned long *)p) == 0)
- sprintf(str + i * 9, " %08lx", val);
- else
- sprintf(str + i * 9, " ????????");
- }
- }
- pr_emerg("%s%04lx:%s\n", lvl, first & 0xffff, str);
- }
-}
-
-EXPORT_SYMBOL(dump_mem);
-
-#define LOOP_TIMES (100)
-static void __dump(struct task_struct *tsk, unsigned long *base_reg,
- const char *loglvl)
-{
- unsigned long ret_addr;
- int cnt = LOOP_TIMES, graph = 0;
- printk("%sCall Trace:\n", loglvl);
- if (!IS_ENABLED(CONFIG_FRAME_POINTER)) {
- while (!kstack_end(base_reg)) {
- ret_addr = *base_reg++;
- if (__kernel_text_address(ret_addr)) {
- ret_addr = ftrace_graph_ret_addr(
- tsk, &graph, ret_addr, NULL);
- print_ip_sym(loglvl, ret_addr);
- }
- if (--cnt < 0)
- break;
- }
- } else {
- while (!kstack_end((void *)base_reg) &&
- !((unsigned long)base_reg & 0x3) &&
- ((unsigned long)base_reg >= TASK_SIZE)) {
- unsigned long next_fp;
- ret_addr = base_reg[LP_OFFSET];
- next_fp = base_reg[FP_OFFSET];
- if (__kernel_text_address(ret_addr)) {
-
- ret_addr = ftrace_graph_ret_addr(
- tsk, &graph, ret_addr, NULL);
- print_ip_sym(loglvl, ret_addr);
- }
- if (--cnt < 0)
- break;
- base_reg = (unsigned long *)next_fp;
- }
- }
- printk("%s\n", loglvl);
-}
-
-void show_stack(struct task_struct *tsk, unsigned long *sp, const char *loglvl)
-{
- unsigned long *base_reg;
-
- if (!tsk)
- tsk = current;
- if (!IS_ENABLED(CONFIG_FRAME_POINTER)) {
- if (tsk != current)
- base_reg = (unsigned long *)(tsk->thread.cpu_context.sp);
- else
- __asm__ __volatile__("\tori\t%0, $sp, #0\n":"=r"(base_reg));
- } else {
- if (tsk != current)
- base_reg = (unsigned long *)(tsk->thread.cpu_context.fp);
- else
- __asm__ __volatile__("\tori\t%0, $fp, #0\n":"=r"(base_reg));
- }
- __dump(tsk, base_reg, loglvl);
- barrier();
-}
-
-DEFINE_SPINLOCK(die_lock);
-
-/*
- * This function is protected against re-entrancy.
- */
-void __noreturn die(const char *str, struct pt_regs *regs, int err)
-{
- struct task_struct *tsk = current;
- static int die_counter;
-
- console_verbose();
- spin_lock_irq(&die_lock);
- bust_spinlocks(1);
-
- pr_emerg("Internal error: %s: %x [#%d]\n", str, err, ++die_counter);
- print_modules();
- pr_emerg("CPU: %i\n", smp_processor_id());
- show_regs(regs);
- pr_emerg("Process %s (pid: %d, stack limit = 0x%p)\n",
- tsk->comm, tsk->pid, end_of_stack(tsk));
-
- if (!user_mode(regs) || in_interrupt()) {
- dump_mem("Stack: ", regs->sp, (regs->sp + PAGE_SIZE) & PAGE_MASK);
- dump_stack();
- }
-
- bust_spinlocks(0);
- spin_unlock_irq(&die_lock);
- make_task_dead(SIGSEGV);
-}
-
-EXPORT_SYMBOL(die);
-
-void die_if_kernel(const char *str, struct pt_regs *regs, int err)
-{
- if (user_mode(regs))
- return;
-
- die(str, regs, err);
-}
-
-int bad_syscall(int n, struct pt_regs *regs)
-{
- if (current->personality != PER_LINUX) {
- send_sig(SIGSEGV, current, 1);
- return regs->uregs[0];
- }
-
- force_sig_fault(SIGILL, ILL_ILLTRP,
- (void __user *)instruction_pointer(regs) - 4);
- die_if_kernel("Oops - bad syscall", regs, n);
- return regs->uregs[0];
-}
-
-void __pte_error(const char *file, int line, unsigned long val)
-{
- pr_emerg("%s:%d: bad pte %08lx.\n", file, line, val);
-}
-
-void __pmd_error(const char *file, int line, unsigned long val)
-{
- pr_emerg("%s:%d: bad pmd %08lx.\n", file, line, val);
-}
-
-void __pgd_error(const char *file, int line, unsigned long val)
-{
- pr_emerg("%s:%d: bad pgd %08lx.\n", file, line, val);
-}
-
-extern char *exception_vector, *exception_vector_end;
-void __init early_trap_init(void)
-{
- unsigned long ivb = 0;
- unsigned long base = PAGE_OFFSET;
-
- memcpy((unsigned long *)base, (unsigned long *)&exception_vector,
- ((unsigned long)&exception_vector_end -
- (unsigned long)&exception_vector));
- ivb = __nds32__mfsr(NDS32_SR_IVB);
- /* Check platform support. */
- if (((ivb & IVB_mskNIVIC) >> IVB_offNIVIC) < 2)
- panic
- ("IVIC mode is not allowed on the platform with interrupt controller\n");
- __nds32__mtsr((ivb & ~IVB_mskESZ) | (IVB_valESZ16 << IVB_offESZ) |
- IVB_BASE, NDS32_SR_IVB);
- __nds32__mtsr(INT_MASK_INITAIAL_VAL, NDS32_SR_INT_MASK);
-
- /*
- * 0x800 = 128 vectors * 16byte.
- * It should be enough to flush a page.
- */
- cpu_cache_wbinval_page(base, true);
-}
-
-static void send_sigtrap(struct pt_regs *regs, int error_code, int si_code)
-{
- struct task_struct *tsk = current;
-
- tsk->thread.trap_no = ENTRY_DEBUG_RELATED;
- tsk->thread.error_code = error_code;
-
- force_sig_fault(SIGTRAP, si_code,
- (void __user *)instruction_pointer(regs));
-}
-
-void do_debug_trap(unsigned long entry, unsigned long addr,
- unsigned long type, struct pt_regs *regs)
-{
- if (notify_die(DIE_OOPS, "Oops", regs, addr, type, SIGTRAP)
- == NOTIFY_STOP)
- return;
-
- if (user_mode(regs)) {
- /* trap_signal */
- send_sigtrap(regs, 0, TRAP_BRKPT);
- } else {
- /* kernel_trap */
- if (!fixup_exception(regs))
- die("unexpected kernel_trap", regs, 0);
- }
-}
-
-void unhandled_interruption(struct pt_regs *regs)
-{
- pr_emerg("unhandled_interruption\n");
- show_regs(regs);
- if (!user_mode(regs))
- make_task_dead(SIGKILL);
- force_sig(SIGKILL);
-}
-
-void unhandled_exceptions(unsigned long entry, unsigned long addr,
- unsigned long type, struct pt_regs *regs)
-{
- pr_emerg("Unhandled Exception: entry: %lx addr:%lx itype:%lx\n", entry,
- addr, type);
- show_regs(regs);
- if (!user_mode(regs))
- make_task_dead(SIGKILL);
- force_sig(SIGKILL);
-}
-
-extern int do_page_fault(unsigned long entry, unsigned long addr,
- unsigned int error_code, struct pt_regs *regs);
-
-/*
- * 2:DEF dispatch for TLB MISC exception handler
-*/
-
-void do_dispatch_tlb_misc(unsigned long entry, unsigned long addr,
- unsigned long type, struct pt_regs *regs)
-{
- type = type & (ITYPE_mskINST | ITYPE_mskETYPE);
- if ((type & ITYPE_mskETYPE) < 5) {
- /* Permission exceptions */
- do_page_fault(entry, addr, type, regs);
- } else
- unhandled_exceptions(entry, addr, type, regs);
-}
-
-void do_revinsn(struct pt_regs *regs)
-{
- pr_emerg("Reserved Instruction\n");
- show_regs(regs);
- if (!user_mode(regs))
- make_task_dead(SIGILL);
- force_sig(SIGILL);
-}
-
-#ifdef CONFIG_ALIGNMENT_TRAP
-extern int unalign_access_mode;
-extern int do_unaligned_access(unsigned long addr, struct pt_regs *regs);
-#endif
-void do_dispatch_general(unsigned long entry, unsigned long addr,
- unsigned long itype, struct pt_regs *regs,
- unsigned long oipc)
-{
- unsigned int swid = itype >> ITYPE_offSWID;
- unsigned long type = itype & (ITYPE_mskINST | ITYPE_mskETYPE);
- if (type == ETYPE_ALIGNMENT_CHECK) {
-#ifdef CONFIG_ALIGNMENT_TRAP
- /* Alignment check */
- if (user_mode(regs) && unalign_access_mode) {
- int ret;
- ret = do_unaligned_access(addr, regs);
-
- if (ret == 0)
- return;
-
- if (ret == -EFAULT)
- pr_emerg
- ("Unhandled unaligned access exception\n");
- }
-#endif
- do_page_fault(entry, addr, type, regs);
- } else if (type == ETYPE_RESERVED_INSTRUCTION) {
- /* Reserved instruction */
- do_revinsn(regs);
- } else if (type == ETYPE_COPROCESSOR) {
- /* Coprocessor */
-#if IS_ENABLED(CONFIG_FPU)
- unsigned int fucop_exist = __nds32__mfsr(NDS32_SR_FUCOP_EXIST);
- unsigned int cpid = ((itype & ITYPE_mskCPID) >> ITYPE_offCPID);
-
- if ((cpid == FPU_CPID) &&
- (fucop_exist & FUCOP_EXIST_mskCP0ISFPU)) {
- unsigned int subtype = (itype & ITYPE_mskSTYPE);
-
- if (true == do_fpu_exception(subtype, regs))
- return;
- }
-#endif
- unhandled_exceptions(entry, addr, type, regs);
- } else if (type == ETYPE_TRAP && swid == SWID_RAISE_INTERRUPT_LEVEL) {
- /* trap, used on v3 EDM target debugging workaround */
- /*
- * DIPC(OIPC) is passed as parameter before
- * interrupt is enabled, so the DIPC will not be corrupted
- * even though interrupts are coming in
- */
- /*
- * 1. update ipc
- * 2. update pt_regs ipc with oipc
- * 3. update pt_regs ipsw (clear DEX)
- */
- __asm__ volatile ("mtsr %0, $IPC\n\t"::"r" (oipc));
- regs->ipc = oipc;
- if (regs->pipsw & PSW_mskDEX) {
- pr_emerg
- ("Nested Debug exception is possibly happened\n");
- pr_emerg("ipc:%08x pipc:%08x\n",
- (unsigned int)regs->ipc,
- (unsigned int)regs->pipc);
- }
- do_debug_trap(entry, addr, itype, regs);
- regs->ipsw &= ~PSW_mskDEX;
- } else
- unhandled_exceptions(entry, addr, type, regs);
-}
diff --git a/arch/nds32/kernel/vdso.c b/arch/nds32/kernel/vdso.c
deleted file mode 100644
index e16009a07971..000000000000
--- a/arch/nds32/kernel/vdso.c
+++ /dev/null
@@ -1,231 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2012 ARM Limited
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/cache.h>
-#include <linux/clocksource.h>
-#include <linux/elf.h>
-#include <linux/err.h>
-#include <linux/errno.h>
-#include <linux/gfp.h>
-#include <linux/kernel.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/signal.h>
-#include <linux/slab.h>
-#include <linux/timekeeper_internal.h>
-#include <linux/vmalloc.h>
-#include <linux/random.h>
-
-#include <asm/cacheflush.h>
-#include <asm/vdso.h>
-#include <asm/vdso_datapage.h>
-#include <asm/vdso_timer_info.h>
-#include <asm/cache_info.h>
-extern struct cache_info L1_cache_info[2];
-extern char vdso_start[], vdso_end[];
-static unsigned long vdso_pages __ro_after_init;
-static unsigned long timer_mapping_base;
-
-struct timer_info_t timer_info = {
- .cycle_count_down = true,
- .mapping_base = EMPTY_TIMER_MAPPING,
- .cycle_count_reg_offset = EMPTY_REG_OFFSET
-};
-/*
- * The vDSO data page.
- */
-static struct page *no_pages[] = { NULL };
-
-static union {
- struct vdso_data data;
- u8 page[PAGE_SIZE];
-} vdso_data_store __page_aligned_data;
-struct vdso_data *vdso_data = &vdso_data_store.data;
-static struct vm_special_mapping vdso_spec[2] __ro_after_init = {
- {
- .name = "[vvar]",
- .pages = no_pages,
- },
- {
- .name = "[vdso]",
- },
-};
-
-static void get_timer_node_info(void)
-{
- timer_mapping_base = timer_info.mapping_base;
- vdso_data->cycle_count_offset =
- timer_info.cycle_count_reg_offset;
- vdso_data->cycle_count_down =
- timer_info.cycle_count_down;
-}
-
-static int __init vdso_init(void)
-{
- int i;
- struct page **vdso_pagelist;
-
- if (memcmp(vdso_start, "\177ELF", 4)) {
- pr_err("vDSO is not a valid ELF object!\n");
- return -EINVAL;
- }
- /* Creat a timer io mapping to get clock cycles counter */
- get_timer_node_info();
-
- vdso_pages = (vdso_end - vdso_start) >> PAGE_SHIFT;
- pr_info("vdso: %ld pages (%ld code @ %p, %ld data @ %p)\n",
- vdso_pages + 1, vdso_pages, vdso_start, 1L, vdso_data);
-
- /* Allocate the vDSO pagelist */
- vdso_pagelist = kcalloc(vdso_pages, sizeof(struct page *), GFP_KERNEL);
- if (vdso_pagelist == NULL)
- return -ENOMEM;
-
- for (i = 0; i < vdso_pages; i++)
- vdso_pagelist[i] = virt_to_page(vdso_start + i * PAGE_SIZE);
- vdso_spec[1].pages = &vdso_pagelist[0];
-
- return 0;
-}
-
-arch_initcall(vdso_init);
-
-unsigned long inline vdso_random_addr(unsigned long vdso_mapping_len)
-{
- unsigned long start = current->mm->mmap_base, end, offset, addr;
- start = PAGE_ALIGN(start);
-
- /* Round the lowest possible end address up to a PMD boundary. */
- end = (start + vdso_mapping_len + PMD_SIZE - 1) & PMD_MASK;
- if (end >= TASK_SIZE)
- end = TASK_SIZE;
- end -= vdso_mapping_len;
-
- if (end > start) {
- offset = get_random_int() % (((end - start) >> PAGE_SHIFT) + 1);
- addr = start + (offset << PAGE_SHIFT);
- } else {
- addr = start;
- }
- return addr;
-}
-
-int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
-{
- struct mm_struct *mm = current->mm;
- unsigned long vdso_base, vdso_text_len, vdso_mapping_len;
- struct vm_area_struct *vma;
- unsigned long addr = 0;
- pgprot_t prot;
- int ret, vvar_page_num = 2;
-
- vdso_text_len = vdso_pages << PAGE_SHIFT;
-
- if(timer_mapping_base == EMPTY_VALUE)
- vvar_page_num = 1;
- /* Be sure to map the data page */
- vdso_mapping_len = vdso_text_len + vvar_page_num * PAGE_SIZE;
-#ifdef CONFIG_CPU_CACHE_ALIASING
- vdso_mapping_len += L1_cache_info[DCACHE].aliasing_num - 1;
-#endif
-
- if (mmap_write_lock_killable(mm))
- return -EINTR;
-
- addr = vdso_random_addr(vdso_mapping_len);
- vdso_base = get_unmapped_area(NULL, addr, vdso_mapping_len, 0, 0);
- if (IS_ERR_VALUE(vdso_base)) {
- ret = vdso_base;
- goto up_fail;
- }
-
-#ifdef CONFIG_CPU_CACHE_ALIASING
- {
- unsigned int aliasing_mask =
- L1_cache_info[DCACHE].aliasing_mask;
- unsigned int page_colour_ofs;
- page_colour_ofs = ((unsigned int)vdso_data & aliasing_mask) -
- (vdso_base & aliasing_mask);
- vdso_base += page_colour_ofs & aliasing_mask;
- }
-#endif
-
- vma = _install_special_mapping(mm, vdso_base, vvar_page_num * PAGE_SIZE,
- VM_READ | VM_MAYREAD, &vdso_spec[0]);
- if (IS_ERR(vma)) {
- ret = PTR_ERR(vma);
- goto up_fail;
- }
-
- /*Map vdata to user space */
- ret = io_remap_pfn_range(vma, vdso_base,
- virt_to_phys(vdso_data) >> PAGE_SHIFT,
- PAGE_SIZE, vma->vm_page_prot);
- if (ret)
- goto up_fail;
-
- /*Map timer to user space */
- vdso_base += PAGE_SIZE;
- prot = __pgprot(_PAGE_V | _PAGE_M_UR_KR | _PAGE_D | _PAGE_C_DEV);
- ret = io_remap_pfn_range(vma, vdso_base, timer_mapping_base >> PAGE_SHIFT,
- PAGE_SIZE, prot);
- if (ret)
- goto up_fail;
-
- /*Map vdso to user space */
- vdso_base += PAGE_SIZE;
- mm->context.vdso = (void *)vdso_base;
- vma = _install_special_mapping(mm, vdso_base, vdso_text_len,
- VM_READ | VM_EXEC |
- VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC,
- &vdso_spec[1]);
- if (IS_ERR(vma)) {
- ret = PTR_ERR(vma);
- goto up_fail;
- }
-
- mmap_write_unlock(mm);
- return 0;
-
-up_fail:
- mm->context.vdso = NULL;
- mmap_write_unlock(mm);
- return ret;
-}
-
-static void vdso_write_begin(struct vdso_data *vdata)
-{
- ++vdso_data->seq_count;
- smp_wmb(); /* Pairs with smp_rmb in vdso_read_retry */
-}
-
-static void vdso_write_end(struct vdso_data *vdata)
-{
- smp_wmb(); /* Pairs with smp_rmb in vdso_read_begin */
- ++vdso_data->seq_count;
-}
-
-void update_vsyscall(struct timekeeper *tk)
-{
- vdso_write_begin(vdso_data);
- vdso_data->cs_mask = tk->tkr_mono.mask;
- vdso_data->cs_mult = tk->tkr_mono.mult;
- vdso_data->cs_shift = tk->tkr_mono.shift;
- vdso_data->cs_cycle_last = tk->tkr_mono.cycle_last;
- vdso_data->wtm_clock_sec = tk->wall_to_monotonic.tv_sec;
- vdso_data->wtm_clock_nsec = tk->wall_to_monotonic.tv_nsec;
- vdso_data->xtime_clock_sec = tk->xtime_sec;
- vdso_data->xtime_clock_nsec = tk->tkr_mono.xtime_nsec;
- vdso_data->xtime_coarse_sec = tk->xtime_sec;
- vdso_data->xtime_coarse_nsec = tk->tkr_mono.xtime_nsec >>
- tk->tkr_mono.shift;
- vdso_data->hrtimer_res = hrtimer_resolution;
- vdso_write_end(vdso_data);
-}
-
-void update_vsyscall_tz(void)
-{
- vdso_data->tz_minuteswest = sys_tz.tz_minuteswest;
- vdso_data->tz_dsttime = sys_tz.tz_dsttime;
-}
diff --git a/arch/nds32/kernel/vdso/.gitignore b/arch/nds32/kernel/vdso/.gitignore
deleted file mode 100644
index 652e31d82582..000000000000
--- a/arch/nds32/kernel/vdso/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-vdso.lds
diff --git a/arch/nds32/kernel/vdso/Makefile b/arch/nds32/kernel/vdso/Makefile
deleted file mode 100644
index 55df25ef0057..000000000000
--- a/arch/nds32/kernel/vdso/Makefile
+++ /dev/null
@@ -1,79 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# Building a vDSO image for AArch64.
-#
-# Author: Will Deacon <will.deacon@arm.com>
-# Heavily based on the vDSO Makefiles for other archs.
-#
-
-obj-vdso := note.o datapage.o sigreturn.o gettimeofday.o
-
-# Build rules
-targets := $(obj-vdso) vdso.so vdso.so.dbg
-obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
-
-ccflags-y := -shared -fno-common -fno-builtin -nostdlib -fPIC -Wl,-shared -g \
- -Wl,-soname=linux-vdso.so.1 -Wl,--hash-style=sysv
-
-# Disable gcov profiling for VDSO code
-GCOV_PROFILE := n
-
-
-obj-y += vdso.o
-targets += vdso.lds
-CPPFLAGS_vdso.lds += -P -C -U$(ARCH)
-
-# Force dependency
-$(obj)/vdso.o : $(obj)/vdso.so
-
-# Link rule for the .so file, .lds has to be first
-$(obj)/vdso.so.dbg: $(obj)/vdso.lds $(obj-vdso) FORCE
- $(call if_changed,vdsold)
-
-
-# Strip rule for the .so file
-$(obj)/%.so: OBJCOPYFLAGS := -S
-$(obj)/%.so: $(obj)/%.so.dbg FORCE
- $(call if_changed,objcopy)
-
-# Generate VDSO offsets using helper script
-gen-vdsosym := $(srctree)/$(src)/gen_vdso_offsets.sh
-quiet_cmd_vdsosym = VDSOSYM $@
- cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
-
-include/generated/vdso-offsets.h: $(obj)/vdso.so.dbg FORCE
- $(call if_changed,vdsosym)
-
-
-
-# Assembly rules for the .S files
-
-sigreturn.o : sigreturn.S
- $(call if_changed_dep,vdsoas)
-
-note.o : note.S
- $(call if_changed_dep,vdsoas)
-
-datapage.o : datapage.S
- $(call if_changed_dep,vdsoas)
-
-gettimeofday.o : gettimeofday.c FORCE
- $(call if_changed_dep,vdsocc)
-
-# Actual build commands
-quiet_cmd_vdsold = VDSOL $@
- cmd_vdsold = $(CC) $(c_flags) -Wl,-n -Wl,-T $(real-prereqs) -o $@
-quiet_cmd_vdsoas = VDSOA $@
- cmd_vdsoas = $(CC) $(a_flags) -c -o $@ $<
-quiet_cmd_vdsocc = VDSOA $@
- cmd_vdsocc = $(CC) $(c_flags) -c -o $@ $<
-
-# Install commands for the unstripped file
-quiet_cmd_vdso_install = INSTALL $@
- cmd_vdso_install = cp $(obj)/$@.dbg $(MODLIB)/vdso/$@
-
-vdso.so: $(obj)/vdso.so.dbg
- @mkdir -p $(MODLIB)/vdso
- $(call cmd,vdso_install)
-
-vdso_install: vdso.so
diff --git a/arch/nds32/kernel/vdso/datapage.S b/arch/nds32/kernel/vdso/datapage.S
deleted file mode 100644
index 4a62c3cab1c8..000000000000
--- a/arch/nds32/kernel/vdso/datapage.S
+++ /dev/null
@@ -1,21 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/page.h>
-
-ENTRY(__get_timerpage)
- sethi $r0, hi20(. + PAGE_SIZE + 8)
- ori $r0, $r0, lo12(. + PAGE_SIZE + 4)
- mfusr $r1, $pc
- sub $r0, $r1, $r0
- ret
-ENDPROC(__get_timerpage)
-
-ENTRY(__get_datapage)
- sethi $r0, hi20(. + 2*PAGE_SIZE + 8)
- ori $r0, $r0, lo12(. + 2*PAGE_SIZE + 4)
- mfusr $r1, $pc
- sub $r0, $r1, $r0
- ret
-ENDPROC(__get_datapage)
diff --git a/arch/nds32/kernel/vdso/gen_vdso_offsets.sh b/arch/nds32/kernel/vdso/gen_vdso_offsets.sh
deleted file mode 100755
index 01924ff071ad..000000000000
--- a/arch/nds32/kernel/vdso/gen_vdso_offsets.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-#
-# Match symbols in the DSO that look like VDSO_*; produce a header file
-# of constant offsets into the shared object.
-#
-# Doing this inside the Makefile will break the $(filter-out) function,
-# causing Kbuild to rebuild the vdso-offsets header file every time.
-#
-# Author: Will Deacon <will.deacon@arm.com
-#
-
-LC_ALL=C
-sed -n -e 's/^00*/0/' -e \
-'s/^\([0-9a-fA-F]*\) . VDSO_\([a-zA-Z0-9_]*\)$/\#define vdso_offset_\2\t0x\1/p'
diff --git a/arch/nds32/kernel/vdso/gettimeofday.c b/arch/nds32/kernel/vdso/gettimeofday.c
deleted file mode 100644
index 9ec03cf0ec54..000000000000
--- a/arch/nds32/kernel/vdso/gettimeofday.c
+++ /dev/null
@@ -1,269 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/compiler.h>
-#include <linux/hrtimer.h>
-#include <linux/time.h>
-#include <asm/io.h>
-#include <asm/barrier.h>
-#include <asm/bug.h>
-#include <asm/page.h>
-#include <asm/unistd.h>
-#include <asm/vdso_datapage.h>
-#include <asm/vdso_timer_info.h>
-#include <asm/asm-offsets.h>
-
-#define X(x) #x
-#define Y(x) X(x)
-
-extern struct vdso_data *__get_datapage(void);
-extern struct vdso_data *__get_timerpage(void);
-
-static notrace unsigned int __vdso_read_begin(const struct vdso_data *vdata)
-{
- u32 seq;
-repeat:
- seq = READ_ONCE(vdata->seq_count);
- if (seq & 1) {
- cpu_relax();
- goto repeat;
- }
- return seq;
-}
-
-static notrace unsigned int vdso_read_begin(const struct vdso_data *vdata)
-{
- unsigned int seq;
-
- seq = __vdso_read_begin(vdata);
-
- smp_rmb(); /* Pairs with smp_wmb in vdso_write_end */
- return seq;
-}
-
-static notrace int vdso_read_retry(const struct vdso_data *vdata, u32 start)
-{
- smp_rmb(); /* Pairs with smp_wmb in vdso_write_begin */
- return vdata->seq_count != start;
-}
-
-static notrace long clock_gettime_fallback(clockid_t _clkid,
- struct __kernel_old_timespec *_ts)
-{
- register struct __kernel_old_timespec *ts asm("$r1") = _ts;
- register clockid_t clkid asm("$r0") = _clkid;
- register long ret asm("$r0");
-
- asm volatile ("movi $r15, %3\n"
- "syscall 0x0\n"
- :"=r" (ret)
- :"r"(clkid), "r"(ts), "i"(__NR_clock_gettime)
- :"$r15", "memory");
-
- return ret;
-}
-
-static notrace int do_realtime_coarse(struct __kernel_old_timespec *ts,
- struct vdso_data *vdata)
-{
- u32 seq;
-
- do {
- seq = vdso_read_begin(vdata);
-
- ts->tv_sec = vdata->xtime_coarse_sec;
- ts->tv_nsec = vdata->xtime_coarse_nsec;
-
- } while (vdso_read_retry(vdata, seq));
- return 0;
-}
-
-static notrace int do_monotonic_coarse(struct __kernel_old_timespec *ts,
- struct vdso_data *vdata)
-{
- u32 seq;
- u64 ns;
-
- do {
- seq = vdso_read_begin(vdata);
-
- ts->tv_sec = vdata->xtime_coarse_sec + vdata->wtm_clock_sec;
- ns = vdata->xtime_coarse_nsec + vdata->wtm_clock_nsec;
-
- } while (vdso_read_retry(vdata, seq));
-
- ts->tv_sec += __iter_div_u64_rem(ns, NSEC_PER_SEC, &ns);
- ts->tv_nsec = ns;
-
- return 0;
-}
-
-static notrace inline u64 vgetsns(struct vdso_data *vdso)
-{
- u32 cycle_now;
- u32 cycle_delta;
- u32 *timer_cycle_base;
-
- timer_cycle_base =
- (u32 *) ((char *)__get_timerpage() + vdso->cycle_count_offset);
- cycle_now = readl_relaxed(timer_cycle_base);
- if (true == vdso->cycle_count_down)
- cycle_now = ~(*timer_cycle_base);
- cycle_delta = cycle_now - (u32) vdso->cs_cycle_last;
- return ((u64) cycle_delta & vdso->cs_mask) * vdso->cs_mult;
-}
-
-static notrace int do_realtime(struct __kernel_old_timespec *ts, struct vdso_data *vdata)
-{
- unsigned count;
- u64 ns;
- do {
- count = vdso_read_begin(vdata);
- ts->tv_sec = vdata->xtime_clock_sec;
- ns = vdata->xtime_clock_nsec;
- ns += vgetsns(vdata);
- ns >>= vdata->cs_shift;
- } while (vdso_read_retry(vdata, count));
-
- ts->tv_sec += __iter_div_u64_rem(ns, NSEC_PER_SEC, &ns);
- ts->tv_nsec = ns;
-
- return 0;
-}
-
-static notrace int do_monotonic(struct __kernel_old_timespec *ts, struct vdso_data *vdata)
-{
- u64 ns;
- u32 seq;
-
- do {
- seq = vdso_read_begin(vdata);
-
- ts->tv_sec = vdata->xtime_clock_sec;
- ns = vdata->xtime_clock_nsec;
- ns += vgetsns(vdata);
- ns >>= vdata->cs_shift;
-
- ts->tv_sec += vdata->wtm_clock_sec;
- ns += vdata->wtm_clock_nsec;
-
- } while (vdso_read_retry(vdata, seq));
-
- ts->tv_sec += __iter_div_u64_rem(ns, NSEC_PER_SEC, &ns);
- ts->tv_nsec = ns;
-
- return 0;
-}
-
-notrace int __vdso_clock_gettime(clockid_t clkid, struct __kernel_old_timespec *ts)
-{
- struct vdso_data *vdata;
- int ret = -1;
-
- vdata = __get_datapage();
- if (vdata->cycle_count_offset == EMPTY_REG_OFFSET)
- return clock_gettime_fallback(clkid, ts);
-
- switch (clkid) {
- case CLOCK_REALTIME_COARSE:
- ret = do_realtime_coarse(ts, vdata);
- break;
- case CLOCK_MONOTONIC_COARSE:
- ret = do_monotonic_coarse(ts, vdata);
- break;
- case CLOCK_REALTIME:
- ret = do_realtime(ts, vdata);
- break;
- case CLOCK_MONOTONIC:
- ret = do_monotonic(ts, vdata);
- break;
- default:
- break;
- }
-
- if (ret)
- ret = clock_gettime_fallback(clkid, ts);
-
- return ret;
-}
-
-static notrace int clock_getres_fallback(clockid_t _clk_id,
- struct __kernel_old_timespec *_res)
-{
- register clockid_t clk_id asm("$r0") = _clk_id;
- register struct __kernel_old_timespec *res asm("$r1") = _res;
- register int ret asm("$r0");
-
- asm volatile ("movi $r15, %3\n"
- "syscall 0x0\n"
- :"=r" (ret)
- :"r"(clk_id), "r"(res), "i"(__NR_clock_getres)
- :"$r15", "memory");
-
- return ret;
-}
-
-notrace int __vdso_clock_getres(clockid_t clk_id, struct __kernel_old_timespec *res)
-{
- struct vdso_data *vdata = __get_datapage();
-
- if (res == NULL)
- return 0;
- switch (clk_id) {
- case CLOCK_REALTIME:
- case CLOCK_MONOTONIC:
- case CLOCK_MONOTONIC_RAW:
- res->tv_sec = 0;
- res->tv_nsec = vdata->hrtimer_res;
- break;
- case CLOCK_REALTIME_COARSE:
- case CLOCK_MONOTONIC_COARSE:
- res->tv_sec = 0;
- res->tv_nsec = CLOCK_COARSE_RES;
- break;
- default:
- return clock_getres_fallback(clk_id, res);
- }
- return 0;
-}
-
-static notrace inline int gettimeofday_fallback(struct __kernel_old_timeval *_tv,
- struct timezone *_tz)
-{
- register struct __kernel_old_timeval *tv asm("$r0") = _tv;
- register struct timezone *tz asm("$r1") = _tz;
- register int ret asm("$r0");
-
- asm volatile ("movi $r15, %3\n"
- "syscall 0x0\n"
- :"=r" (ret)
- :"r"(tv), "r"(tz), "i"(__NR_gettimeofday)
- :"$r15", "memory");
-
- return ret;
-}
-
-notrace int __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz)
-{
- struct __kernel_old_timespec ts;
- struct vdso_data *vdata;
- int ret;
-
- vdata = __get_datapage();
-
- if (vdata->cycle_count_offset == EMPTY_REG_OFFSET)
- return gettimeofday_fallback(tv, tz);
-
- ret = do_realtime(&ts, vdata);
-
- if (tv) {
- tv->tv_sec = ts.tv_sec;
- tv->tv_usec = ts.tv_nsec / 1000;
- }
- if (tz) {
- tz->tz_minuteswest = vdata->tz_minuteswest;
- tz->tz_dsttime = vdata->tz_dsttime;
- }
-
- return ret;
-}
diff --git a/arch/nds32/kernel/vdso/note.S b/arch/nds32/kernel/vdso/note.S
deleted file mode 100644
index 0aeaa19b05f0..000000000000
--- a/arch/nds32/kernel/vdso/note.S
+++ /dev/null
@@ -1,11 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2012 ARM Limited
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/uts.h>
-#include <linux/version.h>
-#include <linux/elfnote.h>
-
-ELFNOTE_START(Linux, 0, "a")
- .long LINUX_VERSION_CODE
-ELFNOTE_END
diff --git a/arch/nds32/kernel/vdso/sigreturn.S b/arch/nds32/kernel/vdso/sigreturn.S
deleted file mode 100644
index 67e4d1d1612a..000000000000
--- a/arch/nds32/kernel/vdso/sigreturn.S
+++ /dev/null
@@ -1,19 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2012 ARM Limited
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/unistd.h>
-
- .text
-
-ENTRY(__kernel_rt_sigreturn)
- .cfi_startproc
- movi $r15, __NR_rt_sigreturn
- /*
- * The SWID of syscall should be __NR_rt_sigreturn to synchronize
- * the unwinding scheme in gcc
- */
- syscall __NR_rt_sigreturn
- .cfi_endproc
-ENDPROC(__kernel_rt_sigreturn)
diff --git a/arch/nds32/kernel/vdso/vdso.S b/arch/nds32/kernel/vdso/vdso.S
deleted file mode 100644
index 16737c11e55b..000000000000
--- a/arch/nds32/kernel/vdso/vdso.S
+++ /dev/null
@@ -1,18 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2012 ARM Limited
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/init.h>
-#include <linux/linkage.h>
-#include <linux/const.h>
-#include <asm/page.h>
-
- .globl vdso_start, vdso_end
- .section .rodata
- .balign PAGE_SIZE
-vdso_start:
- .incbin "arch/nds32/kernel/vdso/vdso.so"
- .balign PAGE_SIZE
-vdso_end:
-
- .previous
diff --git a/arch/nds32/kernel/vdso/vdso.lds.S b/arch/nds32/kernel/vdso/vdso.lds.S
deleted file mode 100644
index 1f2b16004594..000000000000
--- a/arch/nds32/kernel/vdso/vdso.lds.S
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * SPDX-License-Identifier: GPL-2.0
- * Copyright (C) 2005-2017 Andes Technology Corporation
- */
-
-
-#include <linux/const.h>
-#include <asm/page.h>
-#include <asm/vdso.h>
-
-OUTPUT_ARCH(nds32)
-
-SECTIONS
-{
- . = SIZEOF_HEADERS;
-
- .hash : { *(.hash) } :text
- .gnu.hash : { *(.gnu.hash) }
- .dynsym : { *(.dynsym) }
- .dynstr : { *(.dynstr) }
- .gnu.version : { *(.gnu.version) }
- .gnu.version_d : { *(.gnu.version_d) }
- .gnu.version_r : { *(.gnu.version_r) }
-
- .note : { *(.note.*) } :text :note
-
-
- .text : { *(.text*) } :text
-
- .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr
- .eh_frame : { KEEP (*(.eh_frame)) } :text
-
- .dynamic : { *(.dynamic) } :text :dynamic
-
- .rodata : { *(.rodata*) } :text
-
-
- /DISCARD/ : {
- *(.note.GNU-stack)
- *(.data .data.* .gnu.linkonce.d.* .sdata*)
- *(.bss .sbss .dynbss .dynsbss)
- }
-}
-
-/*
- * We must supply the ELF program headers explicitly to get just one
- * PT_LOAD segment, and set the flags explicitly to make segments read-only.
- */
-PHDRS
-{
- text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */
- dynamic PT_DYNAMIC FLAGS(4); /* PF_R */
- note PT_NOTE FLAGS(4); /* PF_R */
- eh_frame_hdr PT_GNU_EH_FRAME;
-}
-
-/*
- * This controls what symbols we export from the DSO.
- */
-VERSION
-{
- LINUX_4 {
- global:
- __kernel_rt_sigreturn;
- __vdso_gettimeofday;
- __vdso_clock_getres;
- __vdso_clock_gettime;
- local: *;
- };
-}
-
-/*
- * Make the rt_sigreturn code visible to the kernel.
- */
-VDSO_rt_sigtramp = __kernel_rt_sigreturn;
diff --git a/arch/nds32/kernel/vmlinux.lds.S b/arch/nds32/kernel/vmlinux.lds.S
deleted file mode 100644
index 6a91b965fb1e..000000000000
--- a/arch/nds32/kernel/vmlinux.lds.S
+++ /dev/null
@@ -1,70 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <asm/page.h>
-#include <asm/thread_info.h>
-#include <asm/cache.h>
-#include <asm/memory.h>
-
-#define LOAD_OFFSET (PAGE_OFFSET - PHYS_OFFSET)
-#include <asm-generic/vmlinux.lds.h>
-
-OUTPUT_ARCH(nds32)
-ENTRY(_stext_lma)
-jiffies = jiffies_64;
-
-#if defined(CONFIG_GCOV_KERNEL)
-#define NDS32_EXIT_KEEP(x) x
-#else
-#define NDS32_EXIT_KEEP(x)
-#endif
-
-SECTIONS
-{
- _stext_lma = TEXTADDR - LOAD_OFFSET;
- . = TEXTADDR;
- __init_begin = .;
- HEAD_TEXT_SECTION
- .exit.text : {
- NDS32_EXIT_KEEP(EXIT_TEXT)
- }
- INIT_TEXT_SECTION(PAGE_SIZE)
- INIT_DATA_SECTION(16)
- .exit.data : {
- NDS32_EXIT_KEEP(EXIT_DATA)
- }
- PERCPU_SECTION(L1_CACHE_BYTES)
- __init_end = .;
-
- . = ALIGN(PAGE_SIZE);
- _stext = .;
- /* Real text segment */
- .text : AT(ADDR(.text) - LOAD_OFFSET) {
- _text = .; /* Text and read-only data */
- TEXT_TEXT
- SCHED_TEXT
- CPUIDLE_TEXT
- LOCK_TEXT
- KPROBES_TEXT
- IRQENTRY_TEXT
- SOFTIRQENTRY_TEXT
- *(.fixup)
- }
-
- _etext = .; /* End of text and rodata section */
-
- _sdata = .;
- RO_DATA(PAGE_SIZE)
- RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
- _edata = .;
-
- EXCEPTION_TABLE(16)
- BSS_SECTION(4, 4, 4)
- _end = .;
-
- STABS_DEBUG
- DWARF_DEBUG
- ELF_DETAILS
-
- DISCARDS
-}
diff --git a/arch/nds32/lib/Makefile b/arch/nds32/lib/Makefile
deleted file mode 100644
index dddbc15d6b37..000000000000
--- a/arch/nds32/lib/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-lib-y := copy_page.o memcpy.o memmove.o \
- memset.o memzero.o \
- copy_from_user.o copy_to_user.o clear_user.o
diff --git a/arch/nds32/lib/clear_user.S b/arch/nds32/lib/clear_user.S
deleted file mode 100644
index 805dfcd25bf8..000000000000
--- a/arch/nds32/lib/clear_user.S
+++ /dev/null
@@ -1,42 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/assembler.h>
-#include <asm/errno.h>
-
-/* Prototype: int __arch_clear_user(void *addr, size_t sz)
- * Purpose : clear some user memory
- * Params : addr - user memory address to clear
- * : sz - number of bytes to clear
- * Returns : number of bytes NOT cleared
- */
- .text
- .align 5
-ENTRY(__arch_clear_user)
- add $r5, $r0, $r1
- beqz $r1, clear_exit
- xor $p1, $p1, $p1 ! Use $p1=0 to clear mem
- srli $p0, $r1, #2 ! $p0 = number of word to clear
- andi $r1, $r1, #3 ! Bytes less than a word to copy
- beqz $p0, byte_clear ! Only less than a word to clear
-word_clear:
-USER( smw.bim,$p1, [$r0], $p1) ! Clear the word
- addi $p0, $p0, #-1 ! Decrease word count
- bnez $p0, word_clear ! Continue looping to clear all words
- beqz $r1, clear_exit ! No left bytes to copy
-byte_clear:
-USER( sbi.bi, $p1, [$r0], #1) ! Clear the byte
- addi $r1, $r1, #-1 ! Decrease byte count
- bnez $r1, byte_clear ! Continue looping to clear all left bytes
-clear_exit:
- move $r0, $r1 ! Set return value
- ret
-
- .section .fixup,"ax"
- .align 0
-9001:
- sub $r0, $r5, $r0 ! Bytes left to copy
- ret
- .previous
-ENDPROC(__arch_clear_user)
diff --git a/arch/nds32/lib/copy_from_user.S b/arch/nds32/lib/copy_from_user.S
deleted file mode 100644
index ad1857b20067..000000000000
--- a/arch/nds32/lib/copy_from_user.S
+++ /dev/null
@@ -1,45 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/assembler.h>
-#include <asm/errno.h>
-
-.macro lbi1 dst, addr, adj
-USER( lbi.bi, \dst, [\addr], \adj)
-.endm
-
-.macro sbi1 src, addr, adj
-sbi.bi \src, [\addr], \adj
-.endm
-
-.macro lmw1 start_reg, addr, end_reg
-USER( lmw.bim, \start_reg, [\addr], \end_reg)
-.endm
-
-.macro smw1 start_reg, addr, end_reg
-smw.bim \start_reg, [\addr], \end_reg
-.endm
-
-
-/* Prototype: int __arch_copy_from_user(void *to, const char *from, size_t n)
- * Purpose : copy a block from user memory to kernel memory
- * Params : to - kernel memory
- * : from - user memory
- * : n - number of bytes to copy
- * Returns : Number of bytes NOT copied.
- */
-
-.text
-ENTRY(__arch_copy_from_user)
- add $r5, $r0, $r2
-#include "copy_template.S"
- move $r0, $r2
- ret
-.section .fixup,"ax"
-.align 2
-9001:
- sub $r0, $r5, $r0
- ret
-.previous
-ENDPROC(__arch_copy_from_user)
diff --git a/arch/nds32/lib/copy_page.S b/arch/nds32/lib/copy_page.S
deleted file mode 100644
index f8701ed161a8..000000000000
--- a/arch/nds32/lib/copy_page.S
+++ /dev/null
@@ -1,40 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/export.h>
-#include <asm/page.h>
-
- .text
-ENTRY(copy_page)
- pushm $r2, $r10
- movi $r2, PAGE_SIZE >> 5
-.Lcopy_loop:
- lmw.bim $r3, [$r1], $r10
- smw.bim $r3, [$r0], $r10
- subi45 $r2, #1
- bnez38 $r2, .Lcopy_loop
- popm $r2, $r10
- ret
-ENDPROC(copy_page)
-EXPORT_SYMBOL(copy_page)
-
-ENTRY(clear_page)
- pushm $r1, $r9
- movi $r1, PAGE_SIZE >> 5
- movi55 $r2, #0
- movi55 $r3, #0
- movi55 $r4, #0
- movi55 $r5, #0
- movi55 $r6, #0
- movi55 $r7, #0
- movi55 $r8, #0
- movi55 $r9, #0
-.Lclear_loop:
- smw.bim $r2, [$r0], $r9
- subi45 $r1, #1
- bnez38 $r1, .Lclear_loop
- popm $r1, $r9
- ret
-ENDPROC(clear_page)
-EXPORT_SYMBOL(clear_page)
diff --git a/arch/nds32/lib/copy_template.S b/arch/nds32/lib/copy_template.S
deleted file mode 100644
index 3a9a2de468c2..000000000000
--- a/arch/nds32/lib/copy_template.S
+++ /dev/null
@@ -1,69 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-
- beq $r1, $r0, quit_memcpy
- beqz $r2, quit_memcpy
- srli $r3, $r2, #5 ! check if len < cache-line size 32
- beqz $r3, word_copy_entry
- andi $r4, $r0, #0x3 ! check byte-align
- beqz $r4, unalign_word_copy_entry
-
- addi $r4, $r4,#-4
- abs $r4, $r4 ! check how many un-align byte to copy
- sub $r2, $r2, $r4 ! update $R2
-
-unalign_byte_copy:
- lbi1 $r3, $r1, #1
- addi $r4, $r4, #-1
- sbi1 $r3, $r0, #1
- bnez $r4, unalign_byte_copy
- beqz $r2, quit_memcpy
-
-unalign_word_copy_entry:
- andi $r3, $r0, 0x1f ! check cache-line unaligncount
- beqz $r3, cache_copy
-
- addi $r3, $r3, #-32
- abs $r3, $r3
- sub $r2, $r2, $r3 ! update $R2
-
-unalign_word_copy:
- lmw1 $r4, $r1, $r4
- addi $r3, $r3, #-4
- smw1 $r4, $r0, $r4
- bnez $r3, unalign_word_copy
- beqz $r2, quit_memcpy
-
- addi $r3, $r2, #-32 ! to check $r2< cache_line , than go to word_copy
- bltz $r3, word_copy_entry
-cache_copy:
- srli $r3, $r2, #5
- beqz $r3, word_copy_entry
-3:
- lmw1 $r17, $r1, $r24
- addi $r3, $r3, #-1
- smw1 $r17, $r0, $r24
- bnez $r3, 3b
-
-word_copy_entry:
- andi $r2, $r2, #31
-
- beqz $r2, quit_memcpy
-5:
- srli $r3, $r2, #2
- beqz $r3, byte_copy
-word_copy:
- lmw1 $r4, $r1, $r4
- addi $r3, $r3, #-1
- smw1 $r4, $r0, $r4
- bnez $r3, word_copy
- andi $r2, $r2, #3
- beqz $r2, quit_memcpy
-byte_copy:
- lbi1 $r3, $r1, #1
- addi $r2, $r2, #-1
-
- sbi1 $r3, $r0, #1
- bnez $r2, byte_copy
-quit_memcpy:
diff --git a/arch/nds32/lib/copy_to_user.S b/arch/nds32/lib/copy_to_user.S
deleted file mode 100644
index 3230044dcfb8..000000000000
--- a/arch/nds32/lib/copy_to_user.S
+++ /dev/null
@@ -1,45 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-#include <asm/assembler.h>
-#include <asm/errno.h>
-
-.macro lbi1 dst, addr, adj
-lbi.bi \dst, [\addr], \adj
-.endm
-
-.macro sbi1 src, addr, adj
-USER( sbi.bi, \src, [\addr], \adj)
-.endm
-
-.macro lmw1 start_reg, addr, end_reg
-lmw.bim \start_reg, [\addr], \end_reg
-.endm
-
-.macro smw1 start_reg, addr, end_reg
-USER( smw.bim, \start_reg, [\addr], \end_reg)
-.endm
-
-
-/* Prototype: int __arch_copy_to_user(void *to, const char *from, size_t n)
- * Purpose : copy a block to user memory from kernel memory
- * Params : to - user memory
- * : from - kernel memory
- * : n - number of bytes to copy
- * Returns : Number of bytes NOT copied.
- */
-
-.text
-ENTRY(__arch_copy_to_user)
- add $r5, $r0, $r2
-#include "copy_template.S"
- move $r0, $r2
- ret
-.section .fixup,"ax"
-.align 2
-9001:
- sub $r0, $r5, $r0
- ret
-.previous
-ENDPROC(__arch_copy_to_user)
diff --git a/arch/nds32/lib/memcpy.S b/arch/nds32/lib/memcpy.S
deleted file mode 100644
index a2345ea721e4..000000000000
--- a/arch/nds32/lib/memcpy.S
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-
-
-.macro lbi1 dst, addr, adj
-lbi.bi \dst, [\addr], \adj
-.endm
-
-.macro sbi1 src, addr, adj
-sbi.bi \src, [\addr], \adj
-.endm
-
-.macro lmw1 start_reg, addr, end_reg
-lmw.bim \start_reg, [\addr], \end_reg
-.endm
-
-.macro smw1 start_reg, addr, end_reg
-smw.bim \start_reg, [\addr], \end_reg
-.endm
-
-.text
-ENTRY(memcpy)
- move $r5, $r0
-#include "copy_template.S"
- move $r0, $r5
- ret
-
-ENDPROC(memcpy)
diff --git a/arch/nds32/lib/memmove.S b/arch/nds32/lib/memmove.S
deleted file mode 100644
index c823aada2271..000000000000
--- a/arch/nds32/lib/memmove.S
+++ /dev/null
@@ -1,70 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-
-/*
- void *memmove(void *dst, const void *src, int n);
-
- dst: $r0
- src: $r1
- n : $r2
- ret: $r0 - pointer to the memory area dst.
-*/
- .text
-
-ENTRY(memmove)
- move $r5, $r0 ! Set return value = det
- beq $r0, $r1, exit_memcpy ! Exit when det = src
- beqz $r2, exit_memcpy ! Exit when n = 0
- pushm $t0, $t1 ! Save reg
- srli $p1, $r2, #2 ! $p1 is how many words to copy
-
- ! Avoid data lost when memory overlap
- ! Copy data reversely when src < dst
- slt $p0, $r0, $r1 ! check if $r0 < $r1
- beqz $p0, do_reverse ! branch if dst > src
-
- ! No reverse, dst < src
- andi $r2, $r2, #3 ! How many bytes are less than a word
- li $t0, #1 ! Determining copy direction in byte_cpy
- beqz $p1, byte_cpy ! When n is less than a word
-
-word_cpy:
- lmw.bim $p0, [$r1], $p0 ! Read a word from src
- addi $p1, $p1, #-1 ! How many words left to copy
- smw.bim $p0, [$r0], $p0 ! Copy the word to det
- bnez $p1, word_cpy ! If remained words > 0
- beqz $r2, end_memcpy ! No left bytes to copy
- b byte_cpy
-
-do_reverse:
- add $r0, $r0, $r2 ! Start with the end of $r0
- add $r1, $r1, $r2 ! Start with the end of $r1
- andi $r2, $r2, #3 ! How many bytes are less than a word
- li $t0, #-1 ! Determining copy direction in byte_cpy
- beqz $p1, reverse_byte_cpy ! When n is less than a word
-
-reverse_word_cpy:
- lmw.adm $p0, [$r1], $p0 ! Read a word from src
- addi $p1, $p1, #-1 ! How many words left to copy
- smw.adm $p0, [$r0], $p0 ! Copy the word to det
- bnez $p1, reverse_word_cpy ! If remained words > 0
- beqz $r2, end_memcpy ! No left bytes to copy
-
-reverse_byte_cpy:
- addi $r0, $r0, #-1
- addi $r1, $r1, #-1
-byte_cpy: ! Less than 4 bytes to copy now
- lb.bi $p0, [$r1], $t0 ! Read a byte from src
- addi $r2, $r2, #-1 ! How many bytes left to copy
- sb.bi $p0, [$r0], $t0 ! copy the byte to det
- bnez $r2, byte_cpy ! If remained bytes > 0
-
-end_memcpy:
- popm $t0, $t1
-exit_memcpy:
- move $r0, $r5
- ret
-
-ENDPROC(memmove)
diff --git a/arch/nds32/lib/memset.S b/arch/nds32/lib/memset.S
deleted file mode 100644
index 193cb6ce21a9..000000000000
--- a/arch/nds32/lib/memset.S
+++ /dev/null
@@ -1,33 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-
- .text
-ENTRY(memset)
- move $r5, $r0 ! Return value
- beqz $r2, end_memset ! Exit when len = 0
- srli $p1, $r2, 2 ! $p1 is how many words to copy
- andi $r2, $r2, 3 ! How many bytes are less than a word
- beqz $p1, byte_set ! When n is less than a word
-
- ! set $r1 from ??????ab to abababab
- andi $r1, $r1, #0x00ff ! $r1 = 000000ab
- slli $p0, $r1, #8 ! $p0 = 0000ab00
- or $r1, $r1, $p0 ! $r1 = 0000abab
- slli $p0, $r1, #16 ! $p0 = abab0000
- or $r1, $r1, $p0 ! $r1 = abababab
-word_set:
- addi $p1, $p1, #-1 ! How many words left to copy
- smw.bim $r1, [$r0], $r1 ! Copy the word to det
- bnez $p1, word_set ! Still words to set, continue looping
- beqz $r2, end_memset ! No left byte to set
-byte_set: ! Less than 4 bytes left to set
- addi $r2, $r2, #-1 ! Decrease len by 1
- sbi.bi $r1, [$r0], #1 ! Set data of the next byte to $r1
- bnez $r2, byte_set ! Still bytes left to set
-end_memset:
- move $r0, $r5
- ret
-
-ENDPROC(memset)
diff --git a/arch/nds32/lib/memzero.S b/arch/nds32/lib/memzero.S
deleted file mode 100644
index f055972c9343..000000000000
--- a/arch/nds32/lib/memzero.S
+++ /dev/null
@@ -1,18 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/linkage.h>
-
- .text
-ENTRY(memzero)
- beqz $r1, 1f
- push $lp
- move $r2, $r1
- move $r1, #0
- push $r0
- bal memset
- pop $r0
- pop $lp
-1:
- ret
-ENDPROC(memzero)
diff --git a/arch/nds32/math-emu/Makefile b/arch/nds32/math-emu/Makefile
deleted file mode 100644
index 3bed7e5d5d05..000000000000
--- a/arch/nds32/math-emu/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-#
-# Makefile for the Linux/nds32 kernel FPU emulation.
-#
-
-obj-y := fpuemu.o \
- fdivd.o fmuld.o fsubd.o faddd.o fs2d.o fsqrtd.o fcmpd.o fnegs.o \
- fd2si.o fd2ui.o fd2siz.o fd2uiz.o fsi2d.o fui2d.o \
- fdivs.o fmuls.o fsubs.o fadds.o fd2s.o fsqrts.o fcmps.o fnegd.o \
- fs2si.o fs2ui.o fs2siz.o fs2uiz.o fsi2s.o fui2s.o
diff --git a/arch/nds32/math-emu/faddd.c b/arch/nds32/math-emu/faddd.c
deleted file mode 100644
index f7fd4e3c3904..000000000000
--- a/arch/nds32/math-emu/faddd.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-void faddd(void *ft, void *fa, void *fb)
-{
- FP_DECL_D(A);
- FP_DECL_D(B);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
- FP_UNPACK_DP(B, fb);
-
- FP_ADD_D(R, A, B);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-
-}
diff --git a/arch/nds32/math-emu/fadds.c b/arch/nds32/math-emu/fadds.c
deleted file mode 100644
index f5af6ca8cca5..000000000000
--- a/arch/nds32/math-emu/fadds.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-void fadds(void *ft, void *fa, void *fb)
-{
- FP_DECL_S(A);
- FP_DECL_S(B);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
- FP_UNPACK_SP(B, fb);
-
- FP_ADD_S(R, A, B);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-
-}
diff --git a/arch/nds32/math-emu/fcmpd.c b/arch/nds32/math-emu/fcmpd.c
deleted file mode 100644
index 0ea225abe880..000000000000
--- a/arch/nds32/math-emu/fcmpd.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-int fcmpd(void *ft, void *fa, void *fb, int cmpop)
-{
- FP_DECL_D(A);
- FP_DECL_D(B);
- FP_DECL_EX;
- long cmp;
-
- FP_UNPACK_DP(A, fa);
- FP_UNPACK_DP(B, fb);
-
- FP_CMP_D(cmp, A, B, SF_CUN);
- cmp += 2;
- if (cmp == SF_CGT)
- *(long *)ft = 0;
- else
- *(long *)ft = (cmp & cmpop) ? 1 : 0;
-
- return 0;
-}
diff --git a/arch/nds32/math-emu/fcmps.c b/arch/nds32/math-emu/fcmps.c
deleted file mode 100644
index 681480758213..000000000000
--- a/arch/nds32/math-emu/fcmps.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-int fcmps(void *ft, void *fa, void *fb, int cmpop)
-{
- FP_DECL_S(A);
- FP_DECL_S(B);
- FP_DECL_EX;
- long cmp;
-
- FP_UNPACK_SP(A, fa);
- FP_UNPACK_SP(B, fb);
-
- FP_CMP_S(cmp, A, B, SF_CUN);
- cmp += 2;
- if (cmp == SF_CGT)
- *(int *)ft = 0x0;
- else
- *(int *)ft = (cmp & cmpop) ? 0x1 : 0x0;
-
- return 0;
-}
diff --git a/arch/nds32/math-emu/fd2s.c b/arch/nds32/math-emu/fd2s.c
deleted file mode 100644
index 1328371e8170..000000000000
--- a/arch/nds32/math-emu/fd2s.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/double.h>
-#include <math-emu/single.h>
-#include <math-emu/soft-fp.h>
-void fd2s(void *ft, void *fa)
-{
- FP_DECL_D(A);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- FP_CONV(S, D, 1, 2, R, A);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fd2si.c b/arch/nds32/math-emu/fd2si.c
deleted file mode 100644
index fae3e16a0a10..000000000000
--- a/arch/nds32/math-emu/fd2si.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fd2si(void *ft, void *fa)
-{
- int r;
-
- FP_DECL_D(A);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(int *)ft = (A_s == 0) ? 0x7fffffff : 0x80000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_ROUND_D(r, A, 32, 1);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(int *)ft = r;
- }
-
-}
diff --git a/arch/nds32/math-emu/fd2siz.c b/arch/nds32/math-emu/fd2siz.c
deleted file mode 100644
index 92fe6774f112..000000000000
--- a/arch/nds32/math-emu/fd2siz.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fd2si_z(void *ft, void *fa)
-{
- int r;
-
- FP_DECL_D(A);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(int *)ft = (A_s == 0) ? 0x7fffffff : 0x80000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_D(r, A, 32, 1);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(int *)ft = r;
- }
-
-}
diff --git a/arch/nds32/math-emu/fd2ui.c b/arch/nds32/math-emu/fd2ui.c
deleted file mode 100644
index a0423b699aa4..000000000000
--- a/arch/nds32/math-emu/fd2ui.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fd2ui(void *ft, void *fa)
-{
- unsigned int r;
-
- FP_DECL_D(A);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(unsigned int *)ft = (A_s == 0) ? 0xffffffff : 0x00000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(unsigned int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_ROUND_D(r, A, 32, 0);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(unsigned int *)ft = r;
- }
-
-}
diff --git a/arch/nds32/math-emu/fd2uiz.c b/arch/nds32/math-emu/fd2uiz.c
deleted file mode 100644
index 8ae17cfce90d..000000000000
--- a/arch/nds32/math-emu/fd2uiz.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fd2ui_z(void *ft, void *fa)
-{
- unsigned int r;
-
- FP_DECL_D(A);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(unsigned int *)ft = (A_s == 0) ? 0xffffffff : 0x00000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(unsigned int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_D(r, A, 32, 0);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(unsigned int *)ft = r;
- }
-
-}
diff --git a/arch/nds32/math-emu/fdivd.c b/arch/nds32/math-emu/fdivd.c
deleted file mode 100644
index 458e7e98b08e..000000000000
--- a/arch/nds32/math-emu/fdivd.c
+++ /dev/null
@@ -1,27 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-
-#include <linux/uaccess.h>
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fdivd(void *ft, void *fa, void *fb)
-{
- FP_DECL_D(A);
- FP_DECL_D(B);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
- FP_UNPACK_DP(B, fb);
-
- if (B_c == FP_CLS_ZERO && A_c != FP_CLS_ZERO)
- FP_SET_EXCEPTION(FP_EX_DIVZERO);
-
- FP_DIV_D(R, A, B);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fdivs.c b/arch/nds32/math-emu/fdivs.c
deleted file mode 100644
index c7d202159ce2..000000000000
--- a/arch/nds32/math-emu/fdivs.c
+++ /dev/null
@@ -1,26 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-void fdivs(void *ft, void *fa, void *fb)
-{
- FP_DECL_S(A);
- FP_DECL_S(B);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
- FP_UNPACK_SP(B, fb);
-
- if (B_c == FP_CLS_ZERO && A_c != FP_CLS_ZERO)
- FP_SET_EXCEPTION(FP_EX_DIVZERO);
-
- FP_DIV_S(R, A, B);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fmuld.c b/arch/nds32/math-emu/fmuld.c
deleted file mode 100644
index f3c77a45ddc2..000000000000
--- a/arch/nds32/math-emu/fmuld.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-void fmuld(void *ft, void *fa, void *fb)
-{
- FP_DECL_D(A);
- FP_DECL_D(B);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
- FP_UNPACK_DP(B, fb);
-
- FP_MUL_D(R, A, B);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fmuls.c b/arch/nds32/math-emu/fmuls.c
deleted file mode 100644
index cf150df938f9..000000000000
--- a/arch/nds32/math-emu/fmuls.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-void fmuls(void *ft, void *fa, void *fb)
-{
- FP_DECL_S(A);
- FP_DECL_S(B);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
- FP_UNPACK_SP(B, fb);
-
- FP_MUL_S(R, A, B);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fnegd.c b/arch/nds32/math-emu/fnegd.c
deleted file mode 100644
index de7ea6a0873e..000000000000
--- a/arch/nds32/math-emu/fnegd.c
+++ /dev/null
@@ -1,21 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-void fnegd(void *ft, void *fa)
-{
- FP_DECL_D(A);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- FP_NEG_D(R, A);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fnegs.c b/arch/nds32/math-emu/fnegs.c
deleted file mode 100644
index 07270b326a77..000000000000
--- a/arch/nds32/math-emu/fnegs.c
+++ /dev/null
@@ -1,21 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-void fnegs(void *ft, void *fa)
-{
- FP_DECL_S(A);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- FP_NEG_S(R, A);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fpuemu.c b/arch/nds32/math-emu/fpuemu.c
deleted file mode 100644
index 46558a15c0dc..000000000000
--- a/arch/nds32/math-emu/fpuemu.c
+++ /dev/null
@@ -1,406 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-
-#include <asm/bitfield.h>
-#include <asm/uaccess.h>
-#include <asm/sfp-machine.h>
-#include <asm/fpuemu.h>
-#include <asm/nds32_fpu_inst.h>
-
-#define DPFROMREG(dp, x) (dp = (void *)((unsigned long *)fpu_reg + 2*x))
-#ifdef __NDS32_EL__
-#define SPFROMREG(sp, x)\
- ((sp) = (void *)((unsigned long *)fpu_reg + (x^1)))
-#else
-#define SPFROMREG(sp, x) ((sp) = (void *)((unsigned long *)fpu_reg + x))
-#endif
-
-#define DEF3OP(name, p, f1, f2) \
-void fpemu_##name##p(void *ft, void *fa, void *fb) \
-{ \
- f1(fa, fa, fb); \
- f2(ft, ft, fa); \
-}
-
-#define DEF3OPNEG(name, p, f1, f2, f3) \
-void fpemu_##name##p(void *ft, void *fa, void *fb) \
-{ \
- f1(fa, fa, fb); \
- f2(ft, ft, fa); \
- f3(ft, ft); \
-}
-DEF3OP(fmadd, s, fmuls, fadds);
-DEF3OP(fmsub, s, fmuls, fsubs);
-DEF3OP(fmadd, d, fmuld, faddd);
-DEF3OP(fmsub, d, fmuld, fsubd);
-DEF3OPNEG(fnmadd, s, fmuls, fadds, fnegs);
-DEF3OPNEG(fnmsub, s, fmuls, fsubs, fnegs);
-DEF3OPNEG(fnmadd, d, fmuld, faddd, fnegd);
-DEF3OPNEG(fnmsub, d, fmuld, fsubd, fnegd);
-
-static const unsigned char cmptab[8] = {
- SF_CEQ,
- SF_CEQ,
- SF_CLT,
- SF_CLT,
- SF_CLT | SF_CEQ,
- SF_CLT | SF_CEQ,
- SF_CUN,
- SF_CUN
-};
-
-enum ARGTYPE {
- S1S = 1,
- S2S,
- S1D,
- CS,
- D1D,
- D2D,
- D1S,
- CD
-};
-union func_t {
- void (*t)(void *ft, void *fa, void *fb);
- void (*b)(void *ft, void *fa);
-};
-/*
- * Emulate a single FPU arithmetic instruction.
- */
-static int fpu_emu(struct fpu_struct *fpu_reg, unsigned long insn)
-{
- int rfmt; /* resulting format */
- union func_t func;
- int ftype = 0;
-
- switch (rfmt = NDS32Insn_OPCODE_COP0(insn)) {
- case fs1_op:{
- switch (NDS32Insn_OPCODE_BIT69(insn)) {
- case fadds_op:
- func.t = fadds;
- ftype = S2S;
- break;
- case fsubs_op:
- func.t = fsubs;
- ftype = S2S;
- break;
- case fmadds_op:
- func.t = fpemu_fmadds;
- ftype = S2S;
- break;
- case fmsubs_op:
- func.t = fpemu_fmsubs;
- ftype = S2S;
- break;
- case fnmadds_op:
- func.t = fpemu_fnmadds;
- ftype = S2S;
- break;
- case fnmsubs_op:
- func.t = fpemu_fnmsubs;
- ftype = S2S;
- break;
- case fmuls_op:
- func.t = fmuls;
- ftype = S2S;
- break;
- case fdivs_op:
- func.t = fdivs;
- ftype = S2S;
- break;
- case fs1_f2op_op:
- switch (NDS32Insn_OPCODE_BIT1014(insn)) {
- case fs2d_op:
- func.b = fs2d;
- ftype = S1D;
- break;
- case fs2si_op:
- func.b = fs2si;
- ftype = S1S;
- break;
- case fs2si_z_op:
- func.b = fs2si_z;
- ftype = S1S;
- break;
- case fs2ui_op:
- func.b = fs2ui;
- ftype = S1S;
- break;
- case fs2ui_z_op:
- func.b = fs2ui_z;
- ftype = S1S;
- break;
- case fsi2s_op:
- func.b = fsi2s;
- ftype = S1S;
- break;
- case fui2s_op:
- func.b = fui2s;
- ftype = S1S;
- break;
- case fsqrts_op:
- func.b = fsqrts;
- ftype = S1S;
- break;
- default:
- return SIGILL;
- }
- break;
- default:
- return SIGILL;
- }
- break;
- }
- case fs2_op:
- switch (NDS32Insn_OPCODE_BIT69(insn)) {
- case fcmpeqs_op:
- case fcmpeqs_e_op:
- case fcmplts_op:
- case fcmplts_e_op:
- case fcmples_op:
- case fcmples_e_op:
- case fcmpuns_op:
- case fcmpuns_e_op:
- ftype = CS;
- break;
- default:
- return SIGILL;
- }
- break;
- case fd1_op:{
- switch (NDS32Insn_OPCODE_BIT69(insn)) {
- case faddd_op:
- func.t = faddd;
- ftype = D2D;
- break;
- case fsubd_op:
- func.t = fsubd;
- ftype = D2D;
- break;
- case fmaddd_op:
- func.t = fpemu_fmaddd;
- ftype = D2D;
- break;
- case fmsubd_op:
- func.t = fpemu_fmsubd;
- ftype = D2D;
- break;
- case fnmaddd_op:
- func.t = fpemu_fnmaddd;
- ftype = D2D;
- break;
- case fnmsubd_op:
- func.t = fpemu_fnmsubd;
- ftype = D2D;
- break;
- case fmuld_op:
- func.t = fmuld;
- ftype = D2D;
- break;
- case fdivd_op:
- func.t = fdivd;
- ftype = D2D;
- break;
- case fd1_f2op_op:
- switch (NDS32Insn_OPCODE_BIT1014(insn)) {
- case fd2s_op:
- func.b = fd2s;
- ftype = D1S;
- break;
- case fd2si_op:
- func.b = fd2si;
- ftype = D1S;
- break;
- case fd2si_z_op:
- func.b = fd2si_z;
- ftype = D1S;
- break;
- case fd2ui_op:
- func.b = fd2ui;
- ftype = D1S;
- break;
- case fd2ui_z_op:
- func.b = fd2ui_z;
- ftype = D1S;
- break;
- case fsi2d_op:
- func.b = fsi2d;
- ftype = D1S;
- break;
- case fui2d_op:
- func.b = fui2d;
- ftype = D1S;
- break;
- case fsqrtd_op:
- func.b = fsqrtd;
- ftype = D1D;
- break;
- default:
- return SIGILL;
- }
- break;
- default:
- return SIGILL;
-
- }
- break;
- }
-
- case fd2_op:
- switch (NDS32Insn_OPCODE_BIT69(insn)) {
- case fcmpeqd_op:
- case fcmpeqd_e_op:
- case fcmpltd_op:
- case fcmpltd_e_op:
- case fcmpled_op:
- case fcmpled_e_op:
- case fcmpund_op:
- case fcmpund_e_op:
- ftype = CD;
- break;
- default:
- return SIGILL;
- }
- break;
-
- default:
- return SIGILL;
- }
-
- switch (ftype) {
- case S1S:{
- void *ft, *fa;
-
- SPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- SPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- func.b(ft, fa);
- break;
- }
- case S2S:{
- void *ft, *fa, *fb;
-
- SPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- SPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- SPFROMREG(fb, NDS32Insn_OPCODE_Rb(insn));
- func.t(ft, fa, fb);
- break;
- }
- case S1D:{
- void *ft, *fa;
-
- DPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- SPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- func.b(ft, fa);
- break;
- }
- case CS:{
- unsigned int cmpop = NDS32Insn_OPCODE_BIT69(insn);
- void *ft, *fa, *fb;
-
- SPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- SPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- SPFROMREG(fb, NDS32Insn_OPCODE_Rb(insn));
- if (cmpop < 0x8) {
- cmpop = cmptab[cmpop];
- fcmps(ft, fa, fb, cmpop);
- } else
- return SIGILL;
- break;
- }
- case D1D:{
- void *ft, *fa;
-
- DPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- DPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- func.b(ft, fa);
- break;
- }
- case D2D:{
- void *ft, *fa, *fb;
-
- DPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- DPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- DPFROMREG(fb, NDS32Insn_OPCODE_Rb(insn));
- func.t(ft, fa, fb);
- break;
- }
- case D1S:{
- void *ft, *fa;
-
- SPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- DPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- func.b(ft, fa);
- break;
- }
- case CD:{
- unsigned int cmpop = NDS32Insn_OPCODE_BIT69(insn);
- void *ft, *fa, *fb;
-
- SPFROMREG(ft, NDS32Insn_OPCODE_Rt(insn));
- DPFROMREG(fa, NDS32Insn_OPCODE_Ra(insn));
- DPFROMREG(fb, NDS32Insn_OPCODE_Rb(insn));
- if (cmpop < 0x8) {
- cmpop = cmptab[cmpop];
- fcmpd(ft, fa, fb, cmpop);
- } else
- return SIGILL;
- break;
- }
- default:
- return SIGILL;
- }
-
- /*
- * If an exception is required, generate a tidy SIGFPE exception.
- */
-#if IS_ENABLED(CONFIG_SUPPORT_DENORMAL_ARITHMETIC)
- if (((fpu_reg->fpcsr << 5) & fpu_reg->fpcsr & FPCSR_mskALLE_NO_UDF_IEXE)
- || ((fpu_reg->fpcsr << 5) & (fpu_reg->UDF_IEX_trap))) {
-#else
- if ((fpu_reg->fpcsr << 5) & fpu_reg->fpcsr & FPCSR_mskALLE) {
-#endif
- return SIGFPE;
- }
- return 0;
-}
-
-int do_fpuemu(struct pt_regs *regs, struct fpu_struct *fpu)
-{
- unsigned long insn = 0, addr = regs->ipc;
- unsigned long emulpc, contpc;
- unsigned char *pc = (void *)&insn;
- char c;
- int i = 0, ret;
-
- for (i = 0; i < 4; i++) {
- if (__get_user(c, (unsigned char *)addr++))
- return SIGBUS;
- *pc++ = c;
- }
-
- insn = be32_to_cpu(insn);
-
- emulpc = regs->ipc;
- contpc = regs->ipc + 4;
-
- if (NDS32Insn_OPCODE(insn) != cop0_op)
- return SIGILL;
-
- switch (NDS32Insn_OPCODE_COP0(insn)) {
- case fs1_op:
- case fs2_op:
- case fd1_op:
- case fd2_op:
- {
- /* a real fpu computation instruction */
- ret = fpu_emu(fpu, insn);
- if (!ret)
- regs->ipc = contpc;
- }
- break;
-
- default:
- return SIGILL;
- }
-
- return ret;
-}
diff --git a/arch/nds32/math-emu/fs2d.c b/arch/nds32/math-emu/fs2d.c
deleted file mode 100644
index 0e8db9035631..000000000000
--- a/arch/nds32/math-emu/fs2d.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-
-#include <linux/uaccess.h>
-#include <asm/sfp-machine.h>
-#include <math-emu/double.h>
-#include <math-emu/single.h>
-#include <math-emu/soft-fp.h>
-
-void fs2d(void *ft, void *fa)
-{
- FP_DECL_S(A);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- FP_CONV(D, S, 2, 1, R, A);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fs2si.c b/arch/nds32/math-emu/fs2si.c
deleted file mode 100644
index b4931d60980e..000000000000
--- a/arch/nds32/math-emu/fs2si.c
+++ /dev/null
@@ -1,29 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-
-void fs2si(void *ft, void *fa)
-{
- int r;
-
- FP_DECL_S(A);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(int *)ft = (A_s == 0) ? 0x7fffffff : 0x80000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_ROUND_S(r, A, 32, 1);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(int *)ft = r;
- }
-}
diff --git a/arch/nds32/math-emu/fs2siz.c b/arch/nds32/math-emu/fs2siz.c
deleted file mode 100644
index 1c2b99ce3e38..000000000000
--- a/arch/nds32/math-emu/fs2siz.c
+++ /dev/null
@@ -1,29 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-
-void fs2si_z(void *ft, void *fa)
-{
- int r;
-
- FP_DECL_S(A);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(int *)ft = (A_s == 0) ? 0x7fffffff : 0x80000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_S(r, A, 32, 1);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(int *)ft = r;
- }
-}
diff --git a/arch/nds32/math-emu/fs2ui.c b/arch/nds32/math-emu/fs2ui.c
deleted file mode 100644
index c337f0384d06..000000000000
--- a/arch/nds32/math-emu/fs2ui.c
+++ /dev/null
@@ -1,29 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-
-void fs2ui(void *ft, void *fa)
-{
- unsigned int r;
-
- FP_DECL_S(A);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(unsigned int *)ft = (A_s == 0) ? 0xffffffff : 0x00000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(unsigned int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_ROUND_S(r, A, 32, 0);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(unsigned int *)ft = r;
- }
-}
diff --git a/arch/nds32/math-emu/fs2uiz.c b/arch/nds32/math-emu/fs2uiz.c
deleted file mode 100644
index 22c5e4768044..000000000000
--- a/arch/nds32/math-emu/fs2uiz.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-
-void fs2ui_z(void *ft, void *fa)
-{
- unsigned int r;
-
- FP_DECL_S(A);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- if (A_c == FP_CLS_INF) {
- *(unsigned int *)ft = (A_s == 0) ? 0xffffffff : 0x00000000;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else if (A_c == FP_CLS_NAN) {
- *(unsigned int *)ft = 0xffffffff;
- __FPU_FPCSR |= FP_EX_INVALID;
- } else {
- FP_TO_INT_S(r, A, 32, 0);
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
- *(unsigned int *)ft = r;
- }
-
-}
diff --git a/arch/nds32/math-emu/fsi2d.c b/arch/nds32/math-emu/fsi2d.c
deleted file mode 100644
index 6b04cec0c5c5..000000000000
--- a/arch/nds32/math-emu/fsi2d.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fsi2d(void *ft, void *fa)
-{
- int a = *(int *)fa;
-
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_FROM_INT_D(R, a, 32, int);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-
-}
diff --git a/arch/nds32/math-emu/fsi2s.c b/arch/nds32/math-emu/fsi2s.c
deleted file mode 100644
index 689864a5df90..000000000000
--- a/arch/nds32/math-emu/fsi2s.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-
-void fsi2s(void *ft, void *fa)
-{
- int a = *(int *)fa;
-
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_FROM_INT_S(R, a, 32, int);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-
-}
diff --git a/arch/nds32/math-emu/fsqrtd.c b/arch/nds32/math-emu/fsqrtd.c
deleted file mode 100644
index c3a8dbd81d4e..000000000000
--- a/arch/nds32/math-emu/fsqrtd.c
+++ /dev/null
@@ -1,21 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-
-#include <linux/uaccess.h>
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-void fsqrtd(void *ft, void *fa)
-{
- FP_DECL_D(A);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
-
- FP_SQRT_D(R, A);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fsqrts.c b/arch/nds32/math-emu/fsqrts.c
deleted file mode 100644
index 4c6f94b27328..000000000000
--- a/arch/nds32/math-emu/fsqrts.c
+++ /dev/null
@@ -1,21 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-
-#include <linux/uaccess.h>
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-void fsqrts(void *ft, void *fa)
-{
- FP_DECL_S(A);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
-
- FP_SQRT_S(R, A);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fsubd.c b/arch/nds32/math-emu/fsubd.c
deleted file mode 100644
index 81b6a0d02a1f..000000000000
--- a/arch/nds32/math-emu/fsubd.c
+++ /dev/null
@@ -1,27 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-void fsubd(void *ft, void *fa, void *fb)
-{
-
- FP_DECL_D(A);
- FP_DECL_D(B);
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_UNPACK_DP(A, fa);
- FP_UNPACK_DP(B, fb);
-
- if (B_c != FP_CLS_NAN)
- B_s ^= 1;
-
- FP_ADD_D(R, A, B);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fsubs.c b/arch/nds32/math-emu/fsubs.c
deleted file mode 100644
index 61ddd9708465..000000000000
--- a/arch/nds32/math-emu/fsubs.c
+++ /dev/null
@@ -1,27 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2018 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-void fsubs(void *ft, void *fa, void *fb)
-{
-
- FP_DECL_S(A);
- FP_DECL_S(B);
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_UNPACK_SP(A, fa);
- FP_UNPACK_SP(B, fb);
-
- if (B_c != FP_CLS_NAN)
- B_s ^= 1;
-
- FP_ADD_S(R, A, B);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-}
diff --git a/arch/nds32/math-emu/fui2d.c b/arch/nds32/math-emu/fui2d.c
deleted file mode 100644
index 9689d33a8d50..000000000000
--- a/arch/nds32/math-emu/fui2d.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/double.h>
-
-void fui2d(void *ft, void *fa)
-{
- unsigned int a = *(unsigned int *)fa;
-
- FP_DECL_D(R);
- FP_DECL_EX;
-
- FP_FROM_INT_D(R, a, 32, int);
-
- FP_PACK_DP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-
-}
diff --git a/arch/nds32/math-emu/fui2s.c b/arch/nds32/math-emu/fui2s.c
deleted file mode 100644
index f70f0762547d..000000000000
--- a/arch/nds32/math-emu/fui2s.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2019 Andes Technology Corporation
-#include <linux/uaccess.h>
-
-#include <asm/sfp-machine.h>
-#include <math-emu/soft-fp.h>
-#include <math-emu/single.h>
-
-void fui2s(void *ft, void *fa)
-{
- unsigned int a = *(unsigned int *)fa;
-
- FP_DECL_S(R);
- FP_DECL_EX;
-
- FP_FROM_INT_S(R, a, 32, int);
-
- FP_PACK_SP(ft, R);
-
- __FPU_FPCSR |= FP_CUR_EXCEPTIONS;
-
-}
diff --git a/arch/nds32/mm/Makefile b/arch/nds32/mm/Makefile
deleted file mode 100644
index 14fb2e8eb036..000000000000
--- a/arch/nds32/mm/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-obj-y := extable.o tlb.o fault.o init.o mmap.o \
- mm-nds32.o cacheflush.o proc.o
-
-obj-$(CONFIG_ALIGNMENT_TRAP) += alignment.o
-
-ifdef CONFIG_FUNCTION_TRACER
-CFLAGS_REMOVE_proc.o = $(CC_FLAGS_FTRACE)
-endif
-CFLAGS_proc.o += -fomit-frame-pointer
diff --git a/arch/nds32/mm/alignment.c b/arch/nds32/mm/alignment.c
deleted file mode 100644
index 1eb7ded6992b..000000000000
--- a/arch/nds32/mm/alignment.c
+++ /dev/null
@@ -1,578 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/proc_fs.h>
-#include <linux/uaccess.h>
-#include <linux/sysctl.h>
-#include <asm/unaligned.h>
-
-#define DEBUG(enable, tagged, ...) \
- do{ \
- if (enable) { \
- if (tagged) \
- pr_warn("[ %30s() ] ", __func__); \
- pr_warn(__VA_ARGS__); \
- } \
- } while (0)
-
-#define RT(inst) (((inst) >> 20) & 0x1FUL)
-#define RA(inst) (((inst) >> 15) & 0x1FUL)
-#define RB(inst) (((inst) >> 10) & 0x1FUL)
-#define SV(inst) (((inst) >> 8) & 0x3UL)
-#define IMM(inst) (((inst) >> 0) & 0x7FFFUL)
-
-#define RA3(inst) (((inst) >> 3) & 0x7UL)
-#define RT3(inst) (((inst) >> 6) & 0x7UL)
-#define IMM3U(inst) (((inst) >> 0) & 0x7UL)
-
-#define RA5(inst) (((inst) >> 0) & 0x1FUL)
-#define RT4(inst) (((inst) >> 5) & 0xFUL)
-
-#define GET_IMMSVAL(imm_value) \
- (((imm_value >> 14) & 0x1) ? (imm_value - 0x8000) : imm_value)
-
-#define __get8_data(val,addr,err) \
- __asm__( \
- "1: lbi.bi %1, [%2], #1\n" \
- "2:\n" \
- " .pushsection .text.fixup,\"ax\"\n" \
- " .align 2\n" \
- "3: movi %0, #1\n" \
- " j 2b\n" \
- " .popsection\n" \
- " .pushsection __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 3b\n" \
- " .popsection\n" \
- : "=r" (err), "=&r" (val), "=r" (addr) \
- : "0" (err), "2" (addr))
-
-#define get16_data(addr, val_ptr) \
- do { \
- unsigned int err = 0, v, a = addr; \
- __get8_data(v,a,err); \
- *val_ptr = v << 0; \
- __get8_data(v,a,err); \
- *val_ptr |= v << 8; \
- if (err) \
- goto fault; \
- *val_ptr = le16_to_cpu(*val_ptr); \
- } while(0)
-
-#define get32_data(addr, val_ptr) \
- do { \
- unsigned int err = 0, v, a = addr; \
- __get8_data(v,a,err); \
- *val_ptr = v << 0; \
- __get8_data(v,a,err); \
- *val_ptr |= v << 8; \
- __get8_data(v,a,err); \
- *val_ptr |= v << 16; \
- __get8_data(v,a,err); \
- *val_ptr |= v << 24; \
- if (err) \
- goto fault; \
- *val_ptr = le32_to_cpu(*val_ptr); \
- } while(0)
-
-#define get_data(addr, val_ptr, len) \
- if (len == 2) \
- get16_data(addr, val_ptr); \
- else \
- get32_data(addr, val_ptr);
-
-#define set16_data(addr, val) \
- do { \
- unsigned int err = 0, *ptr = addr ; \
- val = le32_to_cpu(val); \
- __asm__( \
- "1: sbi.bi %2, [%1], #1\n" \
- " srli %2, %2, #8\n" \
- "2: sbi %2, [%1]\n" \
- "3:\n" \
- " .pushsection .text.fixup,\"ax\"\n" \
- " .align 2\n" \
- "4: movi %0, #1\n" \
- " j 3b\n" \
- " .popsection\n" \
- " .pushsection __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 4b\n" \
- " .long 2b, 4b\n" \
- " .popsection\n" \
- : "=r" (err), "+r" (ptr), "+r" (val) \
- : "0" (err) \
- ); \
- if (err) \
- goto fault; \
- } while(0)
-
-#define set32_data(addr, val) \
- do { \
- unsigned int err = 0, *ptr = addr ; \
- val = le32_to_cpu(val); \
- __asm__( \
- "1: sbi.bi %2, [%1], #1\n" \
- " srli %2, %2, #8\n" \
- "2: sbi.bi %2, [%1], #1\n" \
- " srli %2, %2, #8\n" \
- "3: sbi.bi %2, [%1], #1\n" \
- " srli %2, %2, #8\n" \
- "4: sbi %2, [%1]\n" \
- "5:\n" \
- " .pushsection .text.fixup,\"ax\"\n" \
- " .align 2\n" \
- "6: movi %0, #1\n" \
- " j 5b\n" \
- " .popsection\n" \
- " .pushsection __ex_table,\"a\"\n" \
- " .align 3\n" \
- " .long 1b, 6b\n" \
- " .long 2b, 6b\n" \
- " .long 3b, 6b\n" \
- " .long 4b, 6b\n" \
- " .popsection\n" \
- : "=r" (err), "+r" (ptr), "+r" (val) \
- : "0" (err) \
- ); \
- if (err) \
- goto fault; \
- } while(0)
-#define set_data(addr, val, len) \
- if (len == 2) \
- set16_data(addr, val); \
- else \
- set32_data(addr, val);
-#define NDS32_16BIT_INSTRUCTION 0x80000000
-
-extern pte_t va_present(struct mm_struct *mm, unsigned long addr);
-extern pte_t va_kernel_present(unsigned long addr);
-extern int va_readable(struct pt_regs *regs, unsigned long addr);
-extern int va_writable(struct pt_regs *regs, unsigned long addr);
-
-int unalign_access_mode = 0, unalign_access_debug = 0;
-
-static inline unsigned long *idx_to_addr(struct pt_regs *regs, int idx)
-{
- /* this should be consistent with ptrace.h */
- if (idx >= 0 && idx <= 25) /* R0-R25 */
- return ®s->uregs[0] + idx;
- else if (idx >= 28 && idx <= 30) /* FP, GP, LP */
- return ®s->fp + (idx - 28);
- else if (idx == 31) /* SP */
- return ®s->sp;
- else
- return NULL; /* cause a segfault */
-}
-
-static inline unsigned long get_inst(unsigned long addr)
-{
- return be32_to_cpu(get_unaligned((u32 *) addr));
-}
-
-static inline unsigned long sign_extend(unsigned long val, int len)
-{
- unsigned long ret = 0;
- unsigned char *s, *t;
- int i = 0;
-
- val = cpu_to_le32(val);
-
- s = (void *)&val;
- t = (void *)&ret;
-
- while (i++ < len)
- *t++ = *s++;
-
- if (((*(t - 1)) & 0x80) && (i < 4)) {
-
- while (i++ <= 4)
- *t++ = 0xff;
- }
-
- return le32_to_cpu(ret);
-}
-
-static inline int do_16(unsigned long inst, struct pt_regs *regs)
-{
- int imm, regular, load, len, addr_mode, idx_mode;
- unsigned long unaligned_addr, target_val, source_idx, target_idx,
- shift = 0;
- switch ((inst >> 9) & 0x3F) {
-
- case 0x12: /* LHI333 */
- imm = 1;
- regular = 1;
- load = 1;
- len = 2;
- addr_mode = 3;
- idx_mode = 3;
- break;
- case 0x10: /* LWI333 */
- imm = 1;
- regular = 1;
- load = 1;
- len = 4;
- addr_mode = 3;
- idx_mode = 3;
- break;
- case 0x11: /* LWI333.bi */
- imm = 1;
- regular = 0;
- load = 1;
- len = 4;
- addr_mode = 3;
- idx_mode = 3;
- break;
- case 0x1A: /* LWI450 */
- imm = 0;
- regular = 1;
- load = 1;
- len = 4;
- addr_mode = 5;
- idx_mode = 4;
- break;
- case 0x16: /* SHI333 */
- imm = 1;
- regular = 1;
- load = 0;
- len = 2;
- addr_mode = 3;
- idx_mode = 3;
- break;
- case 0x14: /* SWI333 */
- imm = 1;
- regular = 1;
- load = 0;
- len = 4;
- addr_mode = 3;
- idx_mode = 3;
- break;
- case 0x15: /* SWI333.bi */
- imm = 1;
- regular = 0;
- load = 0;
- len = 4;
- addr_mode = 3;
- idx_mode = 3;
- break;
- case 0x1B: /* SWI450 */
- imm = 0;
- regular = 1;
- load = 0;
- len = 4;
- addr_mode = 5;
- idx_mode = 4;
- break;
-
- default:
- return -EFAULT;
- }
-
- if (addr_mode == 3) {
- unaligned_addr = *idx_to_addr(regs, RA3(inst));
- source_idx = RA3(inst);
- } else {
- unaligned_addr = *idx_to_addr(regs, RA5(inst));
- source_idx = RA5(inst);
- }
-
- if (idx_mode == 3)
- target_idx = RT3(inst);
- else
- target_idx = RT4(inst);
-
- if (imm)
- shift = IMM3U(inst) * len;
-
- if (regular)
- unaligned_addr += shift;
-
- if (load) {
- if (!access_ok((void *)unaligned_addr, len))
- return -EACCES;
-
- get_data(unaligned_addr, &target_val, len);
- *idx_to_addr(regs, target_idx) = target_val;
- } else {
- if (!access_ok((void *)unaligned_addr, len))
- return -EACCES;
- target_val = *idx_to_addr(regs, target_idx);
- set_data((void *)unaligned_addr, target_val, len);
- }
-
- if (!regular)
- *idx_to_addr(regs, source_idx) = unaligned_addr + shift;
- regs->ipc += 2;
-
- return 0;
-fault:
- return -EACCES;
-}
-
-static inline int do_32(unsigned long inst, struct pt_regs *regs)
-{
- int imm, regular, load, len, sign_ext;
- unsigned long unaligned_addr, target_val, shift;
-
- unaligned_addr = *idx_to_addr(regs, RA(inst));
-
- switch ((inst >> 25) << 1) {
-
- case 0x02: /* LHI */
- imm = 1;
- regular = 1;
- load = 1;
- len = 2;
- sign_ext = 0;
- break;
- case 0x0A: /* LHI.bi */
- imm = 1;
- regular = 0;
- load = 1;
- len = 2;
- sign_ext = 0;
- break;
- case 0x22: /* LHSI */
- imm = 1;
- regular = 1;
- load = 1;
- len = 2;
- sign_ext = 1;
- break;
- case 0x2A: /* LHSI.bi */
- imm = 1;
- regular = 0;
- load = 1;
- len = 2;
- sign_ext = 1;
- break;
- case 0x04: /* LWI */
- imm = 1;
- regular = 1;
- load = 1;
- len = 4;
- sign_ext = 0;
- break;
- case 0x0C: /* LWI.bi */
- imm = 1;
- regular = 0;
- load = 1;
- len = 4;
- sign_ext = 0;
- break;
- case 0x12: /* SHI */
- imm = 1;
- regular = 1;
- load = 0;
- len = 2;
- sign_ext = 0;
- break;
- case 0x1A: /* SHI.bi */
- imm = 1;
- regular = 0;
- load = 0;
- len = 2;
- sign_ext = 0;
- break;
- case 0x14: /* SWI */
- imm = 1;
- regular = 1;
- load = 0;
- len = 4;
- sign_ext = 0;
- break;
- case 0x1C: /* SWI.bi */
- imm = 1;
- regular = 0;
- load = 0;
- len = 4;
- sign_ext = 0;
- break;
-
- default:
- switch (inst & 0xff) {
-
- case 0x01: /* LH */
- imm = 0;
- regular = 1;
- load = 1;
- len = 2;
- sign_ext = 0;
- break;
- case 0x05: /* LH.bi */
- imm = 0;
- regular = 0;
- load = 1;
- len = 2;
- sign_ext = 0;
- break;
- case 0x11: /* LHS */
- imm = 0;
- regular = 1;
- load = 1;
- len = 2;
- sign_ext = 1;
- break;
- case 0x15: /* LHS.bi */
- imm = 0;
- regular = 0;
- load = 1;
- len = 2;
- sign_ext = 1;
- break;
- case 0x02: /* LW */
- imm = 0;
- regular = 1;
- load = 1;
- len = 4;
- sign_ext = 0;
- break;
- case 0x06: /* LW.bi */
- imm = 0;
- regular = 0;
- load = 1;
- len = 4;
- sign_ext = 0;
- break;
- case 0x09: /* SH */
- imm = 0;
- regular = 1;
- load = 0;
- len = 2;
- sign_ext = 0;
- break;
- case 0x0D: /* SH.bi */
- imm = 0;
- regular = 0;
- load = 0;
- len = 2;
- sign_ext = 0;
- break;
- case 0x0A: /* SW */
- imm = 0;
- regular = 1;
- load = 0;
- len = 4;
- sign_ext = 0;
- break;
- case 0x0E: /* SW.bi */
- imm = 0;
- regular = 0;
- load = 0;
- len = 4;
- sign_ext = 0;
- break;
-
- default:
- return -EFAULT;
- }
- }
-
- if (imm)
- shift = GET_IMMSVAL(IMM(inst)) * len;
- else
- shift = *idx_to_addr(regs, RB(inst)) << SV(inst);
-
- if (regular)
- unaligned_addr += shift;
-
- if (load) {
-
- if (!access_ok((void *)unaligned_addr, len))
- return -EACCES;
-
- get_data(unaligned_addr, &target_val, len);
-
- if (sign_ext)
- *idx_to_addr(regs, RT(inst)) =
- sign_extend(target_val, len);
- else
- *idx_to_addr(regs, RT(inst)) = target_val;
- } else {
-
- if (!access_ok((void *)unaligned_addr, len))
- return -EACCES;
-
- target_val = *idx_to_addr(regs, RT(inst));
- set_data((void *)unaligned_addr, target_val, len);
- }
-
- if (!regular)
- *idx_to_addr(regs, RA(inst)) = unaligned_addr + shift;
-
- regs->ipc += 4;
-
- return 0;
-fault:
- return -EACCES;
-}
-
-int do_unaligned_access(unsigned long addr, struct pt_regs *regs)
-{
- unsigned long inst;
- int ret = -EFAULT;
- mm_segment_t seg;
-
- inst = get_inst(regs->ipc);
-
- DEBUG((unalign_access_debug > 0), 1,
- "Faulting addr: 0x%08lx, pc: 0x%08lx [inst: 0x%08lx ]\n", addr,
- regs->ipc, inst);
-
- seg = force_uaccess_begin();
- if (inst & NDS32_16BIT_INSTRUCTION)
- ret = do_16((inst >> 16) & 0xffff, regs);
- else
- ret = do_32(inst, regs);
- force_uaccess_end(seg);
-
- return ret;
-}
-
-#ifdef CONFIG_PROC_FS
-
-static struct ctl_table alignment_tbl[3] = {
- {
- .procname = "enable",
- .data = &unalign_access_mode,
- .maxlen = sizeof(unalign_access_mode),
- .mode = 0666,
- .proc_handler = &proc_dointvec
- }
- ,
- {
- .procname = "debug_info",
- .data = &unalign_access_debug,
- .maxlen = sizeof(unalign_access_debug),
- .mode = 0644,
- .proc_handler = &proc_dointvec
- }
- ,
- {}
-};
-
-static struct ctl_table nds32_sysctl_table[2] = {
- {
- .procname = "unaligned_access",
- .mode = 0555,
- .child = alignment_tbl},
- {}
-};
-
-static struct ctl_path nds32_path[2] = {
- {.procname = "nds32"},
- {}
-};
-
-/*
- * Initialize nds32 alignment-correction interface
- */
-static int __init nds32_sysctl_init(void)
-{
- register_sysctl_paths(nds32_path, nds32_sysctl_table);
- return 0;
-}
-
-__initcall(nds32_sysctl_init);
-#endif /* CONFIG_PROC_FS */
diff --git a/arch/nds32/mm/cacheflush.c b/arch/nds32/mm/cacheflush.c
deleted file mode 100644
index 07aac65d1cab..000000000000
--- a/arch/nds32/mm/cacheflush.c
+++ /dev/null
@@ -1,338 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/fs.h>
-#include <linux/pagemap.h>
-#include <linux/module.h>
-#include <asm/cacheflush.h>
-#include <asm/proc-fns.h>
-#include <asm/shmparam.h>
-#include <asm/cache_info.h>
-
-extern struct cache_info L1_cache_info[2];
-
-void flush_icache_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size, flags;
- line_size = L1_cache_info[DCACHE].line_size;
- start = start & ~(line_size - 1);
- end = (end + line_size - 1) & ~(line_size - 1);
- local_irq_save(flags);
- cpu_cache_wbinval_range(start, end, 1);
- local_irq_restore(flags);
-}
-EXPORT_SYMBOL(flush_icache_range);
-
-void flush_icache_page(struct vm_area_struct *vma, struct page *page)
-{
- unsigned long flags;
- unsigned long kaddr;
- local_irq_save(flags);
- kaddr = (unsigned long)kmap_atomic(page);
- cpu_cache_wbinval_page(kaddr, vma->vm_flags & VM_EXEC);
- kunmap_atomic((void *)kaddr);
- local_irq_restore(flags);
-}
-
-void flush_icache_user_page(struct vm_area_struct *vma, struct page *page,
- unsigned long addr, int len)
-{
- unsigned long kaddr;
- kaddr = (unsigned long)kmap_atomic(page) + (addr & ~PAGE_MASK);
- flush_icache_range(kaddr, kaddr + len);
- kunmap_atomic((void *)kaddr);
-}
-
-void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr,
- pte_t * pte)
-{
- struct page *page;
- unsigned long pfn = pte_pfn(*pte);
- unsigned long flags;
-
- if (!pfn_valid(pfn))
- return;
-
- if (vma->vm_mm == current->active_mm) {
- local_irq_save(flags);
- __nds32__mtsr_dsb(addr, NDS32_SR_TLB_VPN);
- __nds32__tlbop_rwr(*pte);
- __nds32__isb();
- local_irq_restore(flags);
- }
- page = pfn_to_page(pfn);
-
- if ((test_and_clear_bit(PG_dcache_dirty, &page->flags)) ||
- (vma->vm_flags & VM_EXEC)) {
- unsigned long kaddr;
- local_irq_save(flags);
- kaddr = (unsigned long)kmap_atomic(page);
- cpu_cache_wbinval_page(kaddr, vma->vm_flags & VM_EXEC);
- kunmap_atomic((void *)kaddr);
- local_irq_restore(flags);
- }
-}
-#ifdef CONFIG_CPU_CACHE_ALIASING
-extern pte_t va_present(struct mm_struct *mm, unsigned long addr);
-
-static inline unsigned long aliasing(unsigned long addr, unsigned long page)
-{
- return ((addr & PAGE_MASK) ^ page) & (SHMLBA - 1);
-}
-
-static inline unsigned long kremap0(unsigned long uaddr, unsigned long pa)
-{
- unsigned long kaddr, pte;
-
-#define BASE_ADDR0 0xffffc000
- kaddr = BASE_ADDR0 | (uaddr & L1_cache_info[DCACHE].aliasing_mask);
- pte = (pa | PAGE_KERNEL);
- __nds32__mtsr_dsb(kaddr, NDS32_SR_TLB_VPN);
- __nds32__tlbop_rwlk(pte);
- __nds32__isb();
- return kaddr;
-}
-
-static inline void kunmap01(unsigned long kaddr)
-{
- __nds32__tlbop_unlk(kaddr);
- __nds32__tlbop_inv(kaddr);
- __nds32__isb();
-}
-
-static inline unsigned long kremap1(unsigned long uaddr, unsigned long pa)
-{
- unsigned long kaddr, pte;
-
-#define BASE_ADDR1 0xffff8000
- kaddr = BASE_ADDR1 | (uaddr & L1_cache_info[DCACHE].aliasing_mask);
- pte = (pa | PAGE_KERNEL);
- __nds32__mtsr_dsb(kaddr, NDS32_SR_TLB_VPN);
- __nds32__tlbop_rwlk(pte);
- __nds32__isb();
- return kaddr;
-}
-
-void flush_cache_mm(struct mm_struct *mm)
-{
- unsigned long flags;
-
- local_irq_save(flags);
- cpu_dcache_wbinval_all();
- cpu_icache_inval_all();
- local_irq_restore(flags);
-}
-
-void flush_cache_dup_mm(struct mm_struct *mm)
-{
-}
-
-void flush_cache_range(struct vm_area_struct *vma,
- unsigned long start, unsigned long end)
-{
- unsigned long flags;
-
- if ((end - start) > 8 * PAGE_SIZE) {
- cpu_dcache_wbinval_all();
- if (vma->vm_flags & VM_EXEC)
- cpu_icache_inval_all();
- return;
- }
- local_irq_save(flags);
- while (start < end) {
- if (va_present(vma->vm_mm, start))
- cpu_cache_wbinval_page(start, vma->vm_flags & VM_EXEC);
- start += PAGE_SIZE;
- }
- local_irq_restore(flags);
- return;
-}
-
-void flush_cache_page(struct vm_area_struct *vma,
- unsigned long addr, unsigned long pfn)
-{
- unsigned long vto, flags;
-
- local_irq_save(flags);
- vto = kremap0(addr, pfn << PAGE_SHIFT);
- cpu_cache_wbinval_page(vto, vma->vm_flags & VM_EXEC);
- kunmap01(vto);
- local_irq_restore(flags);
-}
-
-void flush_cache_vmap(unsigned long start, unsigned long end)
-{
- cpu_dcache_wbinval_all();
- cpu_icache_inval_all();
-}
-
-void flush_cache_vunmap(unsigned long start, unsigned long end)
-{
- cpu_dcache_wbinval_all();
- cpu_icache_inval_all();
-}
-
-void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
- struct page *to)
-{
- cpu_dcache_wbinval_page((unsigned long)vaddr);
- cpu_icache_inval_page((unsigned long)vaddr);
- copy_page(vto, vfrom);
- cpu_dcache_wbinval_page((unsigned long)vto);
- cpu_icache_inval_page((unsigned long)vto);
-}
-
-void clear_user_page(void *addr, unsigned long vaddr, struct page *page)
-{
- cpu_dcache_wbinval_page((unsigned long)vaddr);
- cpu_icache_inval_page((unsigned long)vaddr);
- clear_page(addr);
- cpu_dcache_wbinval_page((unsigned long)addr);
- cpu_icache_inval_page((unsigned long)addr);
-}
-
-void copy_user_highpage(struct page *to, struct page *from,
- unsigned long vaddr, struct vm_area_struct *vma)
-{
- unsigned long vto, vfrom, flags, kto, kfrom, pfrom, pto;
- kto = ((unsigned long)page_address(to) & PAGE_MASK);
- kfrom = ((unsigned long)page_address(from) & PAGE_MASK);
- pto = page_to_phys(to);
- pfrom = page_to_phys(from);
-
- local_irq_save(flags);
- if (aliasing(vaddr, (unsigned long)kfrom))
- cpu_dcache_wb_page((unsigned long)kfrom);
- vto = kremap0(vaddr, pto);
- vfrom = kremap1(vaddr, pfrom);
- copy_page((void *)vto, (void *)vfrom);
- kunmap01(vfrom);
- kunmap01(vto);
- local_irq_restore(flags);
-}
-
-EXPORT_SYMBOL(copy_user_highpage);
-
-void clear_user_highpage(struct page *page, unsigned long vaddr)
-{
- unsigned long vto, flags, kto;
-
- kto = ((unsigned long)page_address(page) & PAGE_MASK);
-
- local_irq_save(flags);
- if (aliasing(kto, vaddr) && kto != 0) {
- cpu_dcache_inval_page(kto);
- cpu_icache_inval_page(kto);
- }
- vto = kremap0(vaddr, page_to_phys(page));
- clear_page((void *)vto);
- kunmap01(vto);
- local_irq_restore(flags);
-}
-
-EXPORT_SYMBOL(clear_user_highpage);
-
-void flush_dcache_page(struct page *page)
-{
- struct address_space *mapping;
-
- mapping = page_mapping_file(page);
- if (mapping && !mapping_mapped(mapping))
- set_bit(PG_dcache_dirty, &page->flags);
- else {
- unsigned long kaddr, flags;
-
- kaddr = (unsigned long)page_address(page);
- local_irq_save(flags);
- cpu_dcache_wbinval_page(kaddr);
- if (mapping) {
- unsigned long vaddr, kto;
-
- vaddr = page->index << PAGE_SHIFT;
- if (aliasing(vaddr, kaddr)) {
- kto = kremap0(vaddr, page_to_phys(page));
- cpu_dcache_wbinval_page(kto);
- kunmap01(kto);
- }
- }
- local_irq_restore(flags);
- }
-}
-EXPORT_SYMBOL(flush_dcache_page);
-
-void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
- unsigned long vaddr, void *dst, void *src, int len)
-{
- unsigned long line_size, start, end, vto, flags;
-
- local_irq_save(flags);
- vto = kremap0(vaddr, page_to_phys(page));
- dst = (void *)(vto | (vaddr & (PAGE_SIZE - 1)));
- memcpy(dst, src, len);
- if (vma->vm_flags & VM_EXEC) {
- line_size = L1_cache_info[DCACHE].line_size;
- start = (unsigned long)dst & ~(line_size - 1);
- end =
- ((unsigned long)dst + len + line_size - 1) & ~(line_size -
- 1);
- cpu_cache_wbinval_range(start, end, 1);
- }
- kunmap01(vto);
- local_irq_restore(flags);
-}
-
-void copy_from_user_page(struct vm_area_struct *vma, struct page *page,
- unsigned long vaddr, void *dst, void *src, int len)
-{
- unsigned long vto, flags;
-
- local_irq_save(flags);
- vto = kremap0(vaddr, page_to_phys(page));
- src = (void *)(vto | (vaddr & (PAGE_SIZE - 1)));
- memcpy(dst, src, len);
- kunmap01(vto);
- local_irq_restore(flags);
-}
-
-void flush_anon_page(struct vm_area_struct *vma,
- struct page *page, unsigned long vaddr)
-{
- unsigned long kaddr, flags, ktmp;
- if (!PageAnon(page))
- return;
-
- if (vma->vm_mm != current->active_mm)
- return;
-
- local_irq_save(flags);
- if (vma->vm_flags & VM_EXEC)
- cpu_icache_inval_page(vaddr & PAGE_MASK);
- kaddr = (unsigned long)page_address(page);
- if (aliasing(vaddr, kaddr)) {
- ktmp = kremap0(vaddr, page_to_phys(page));
- cpu_dcache_wbinval_page(ktmp);
- kunmap01(ktmp);
- }
- local_irq_restore(flags);
-}
-
-void flush_kernel_vmap_range(void *addr, int size)
-{
- unsigned long flags;
- local_irq_save(flags);
- cpu_dcache_wb_range((unsigned long)addr, (unsigned long)addr + size);
- local_irq_restore(flags);
-}
-EXPORT_SYMBOL(flush_kernel_vmap_range);
-
-void invalidate_kernel_vmap_range(void *addr, int size)
-{
- unsigned long flags;
- local_irq_save(flags);
- cpu_dcache_inval_range((unsigned long)addr, (unsigned long)addr + size);
- local_irq_restore(flags);
-}
-EXPORT_SYMBOL(invalidate_kernel_vmap_range);
-#endif
diff --git a/arch/nds32/mm/extable.c b/arch/nds32/mm/extable.c
deleted file mode 100644
index db7f0a7c8966..000000000000
--- a/arch/nds32/mm/extable.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/extable.h>
-#include <linux/uaccess.h>
-
-int fixup_exception(struct pt_regs *regs)
-{
- const struct exception_table_entry *fixup;
-
- fixup = search_exception_tables(instruction_pointer(regs));
- if (fixup)
- regs->ipc = fixup->fixup;
-
- return fixup != NULL;
-}
diff --git a/arch/nds32/mm/fault.c b/arch/nds32/mm/fault.c
deleted file mode 100644
index 636977a1c8b9..000000000000
--- a/arch/nds32/mm/fault.c
+++ /dev/null
@@ -1,396 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/extable.h>
-#include <linux/module.h>
-#include <linux/signal.h>
-#include <linux/ptrace.h>
-#include <linux/mm.h>
-#include <linux/init.h>
-#include <linux/hardirq.h>
-#include <linux/uaccess.h>
-#include <linux/perf_event.h>
-
-#include <asm/tlbflush.h>
-
-extern void __noreturn die(const char *str, struct pt_regs *regs, long err);
-
-/*
- * This is useful to dump out the page tables associated with
- * 'addr' in mm 'mm'.
- */
-void show_pte(struct mm_struct *mm, unsigned long addr)
-{
- pgd_t *pgd;
- if (!mm)
- mm = &init_mm;
-
- pr_alert("pgd = %p\n", mm->pgd);
- pgd = pgd_offset(mm, addr);
- pr_alert("[%08lx] *pgd=%08lx", addr, pgd_val(*pgd));
-
- do {
- p4d_t *p4d;
- pud_t *pud;
- pmd_t *pmd;
-
- if (pgd_none(*pgd))
- break;
-
- if (pgd_bad(*pgd)) {
- pr_alert("(bad)");
- break;
- }
-
- p4d = p4d_offset(pgd, addr);
- pud = pud_offset(p4d, addr);
- pmd = pmd_offset(pud, addr);
-#if PTRS_PER_PMD != 1
- pr_alert(", *pmd=%08lx", pmd_val(*pmd));
-#endif
-
- if (pmd_none(*pmd))
- break;
-
- if (pmd_bad(*pmd)) {
- pr_alert("(bad)");
- break;
- }
-
- if (IS_ENABLED(CONFIG_HIGHMEM))
- {
- pte_t *pte;
- /* We must not map this if we have highmem enabled */
- pte = pte_offset_map(pmd, addr);
- pr_alert(", *pte=%08lx", pte_val(*pte));
- pte_unmap(pte);
- }
- } while (0);
-
- pr_alert("\n");
-}
-
-void do_page_fault(unsigned long entry, unsigned long addr,
- unsigned int error_code, struct pt_regs *regs)
-{
- struct task_struct *tsk;
- struct mm_struct *mm;
- struct vm_area_struct *vma;
- int si_code;
- vm_fault_t fault;
- unsigned int mask = VM_ACCESS_FLAGS;
- unsigned int flags = FAULT_FLAG_DEFAULT;
-
- error_code = error_code & (ITYPE_mskINST | ITYPE_mskETYPE);
- tsk = current;
- mm = tsk->mm;
- si_code = SEGV_MAPERR;
- /*
- * We fault-in kernel-space virtual memory on-demand. The
- * 'reference' page table is init_mm.pgd.
- *
- * NOTE! We MUST NOT take any locks for this case. We may
- * be in an interrupt or a critical region, and should
- * only copy the information from the master page table,
- * nothing more.
- */
- if (addr >= TASK_SIZE) {
- if (user_mode(regs))
- goto bad_area_nosemaphore;
-
- if (addr >= TASK_SIZE && addr < VMALLOC_END
- && (entry == ENTRY_PTE_NOT_PRESENT))
- goto vmalloc_fault;
- else
- goto no_context;
- }
-
- /* Send a signal to the task for handling the unalignment access. */
- if (entry == ENTRY_GENERAL_EXCPETION
- && error_code == ETYPE_ALIGNMENT_CHECK) {
- if (user_mode(regs))
- goto bad_area_nosemaphore;
- else
- goto no_context;
- }
-
- /*
- * If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
- if (unlikely(faulthandler_disabled() || !mm))
- goto no_context;
-
- perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, addr);
-
- /*
- * As per x86, we may deadlock here. However, since the kernel only
- * validly references user space from well defined areas of the code,
- * we can bug out early if this is from code which shouldn't.
- */
- if (unlikely(!mmap_read_trylock(mm))) {
- if (!user_mode(regs) &&
- !search_exception_tables(instruction_pointer(regs)))
- goto no_context;
-retry:
- mmap_read_lock(mm);
- } else {
- /*
- * The above down_read_trylock() might have succeeded in which
- * case, we'll have missed the might_sleep() from down_read().
- */
- might_sleep();
- if (IS_ENABLED(CONFIG_DEBUG_VM)) {
- if (!user_mode(regs) &&
- !search_exception_tables(instruction_pointer(regs)))
- goto no_context;
- }
- }
-
- vma = find_vma(mm, addr);
-
- if (unlikely(!vma))
- goto bad_area;
-
- if (vma->vm_start <= addr)
- goto good_area;
-
- if (unlikely(!(vma->vm_flags & VM_GROWSDOWN)))
- goto bad_area;
-
- if (unlikely(expand_stack(vma, addr)))
- goto bad_area;
-
- /*
- * Ok, we have a good vm_area for this memory access, so
- * we can handle it..
- */
-
-good_area:
- si_code = SEGV_ACCERR;
-
- /* first do some preliminary protection checks */
- if (entry == ENTRY_PTE_NOT_PRESENT) {
- if (error_code & ITYPE_mskINST)
- mask = VM_EXEC;
- else {
- mask = VM_READ | VM_WRITE;
- }
- } else if (entry == ENTRY_TLB_MISC) {
- switch (error_code & ITYPE_mskETYPE) {
- case RD_PROT:
- mask = VM_READ;
- break;
- case WRT_PROT:
- mask = VM_WRITE;
- flags |= FAULT_FLAG_WRITE;
- break;
- case NOEXEC:
- mask = VM_EXEC;
- break;
- case PAGE_MODIFY:
- mask = VM_WRITE;
- flags |= FAULT_FLAG_WRITE;
- break;
- case ACC_BIT:
- BUG();
- default:
- break;
- }
-
- }
- if (!(vma->vm_flags & mask))
- goto bad_area;
-
- /*
- * If for any reason at all we couldn't handle the fault,
- * make sure we exit gracefully rather than endlessly redo
- * the fault.
- */
-
- fault = handle_mm_fault(vma, addr, flags, regs);
-
- /*
- * If we need to retry but a fatal signal is pending, handle the
- * signal first. We do not need to release the mmap_lock because it
- * would already be released in __lock_page_or_retry in mm/filemap.c.
- */
- if (fault_signal_pending(fault, regs)) {
- if (!user_mode(regs))
- goto no_context;
- return;
- }
-
- if (unlikely(fault & VM_FAULT_ERROR)) {
- if (fault & VM_FAULT_OOM)
- goto out_of_memory;
- else if (fault & VM_FAULT_SIGBUS)
- goto do_sigbus;
- else
- goto bad_area;
- }
-
- if (fault & VM_FAULT_RETRY) {
- flags |= FAULT_FLAG_TRIED;
-
- /* No need to mmap_read_unlock(mm) as we would
- * have already released it in __lock_page_or_retry
- * in mm/filemap.c.
- */
- goto retry;
- }
-
- mmap_read_unlock(mm);
- return;
-
- /*
- * Something tried to access memory that isn't in our memory map..
- * Fix it, but check if it's kernel or user first..
- */
-bad_area:
- mmap_read_unlock(mm);
-
-bad_area_nosemaphore:
-
- /* User mode accesses just cause a SIGSEGV */
-
- if (user_mode(regs)) {
- tsk->thread.address = addr;
- tsk->thread.error_code = error_code;
- tsk->thread.trap_no = entry;
- force_sig_fault(SIGSEGV, si_code, (void __user *)addr);
- return;
- }
-
-no_context:
-
- /* Are we prepared to handle this kernel fault?
- *
- * (The kernel has valid exception-points in the source
- * when it acesses user-memory. When it fails in one
- * of those points, we find it in a table and do a jump
- * to some fixup code that loads an appropriate error
- * code)
- */
-
- {
- const struct exception_table_entry *entry;
-
- if ((entry =
- search_exception_tables(instruction_pointer(regs))) !=
- NULL) {
- /* Adjust the instruction pointer in the stackframe */
- instruction_pointer(regs) = entry->fixup;
- return;
- }
- }
-
- /*
- * Oops. The kernel tried to access some bad page. We'll have to
- * terminate things with extreme prejudice.
- */
-
- bust_spinlocks(1);
- pr_alert("Unable to handle kernel %s at virtual address %08lx\n",
- (addr < PAGE_SIZE) ? "NULL pointer dereference" :
- "paging request", addr);
-
- show_pte(mm, addr);
- die("Oops", regs, error_code);
-
- /*
- * We ran out of memory, or some other thing happened to us that made
- * us unable to handle the page fault gracefully.
- */
-
-out_of_memory:
- mmap_read_unlock(mm);
- if (!user_mode(regs))
- goto no_context;
- pagefault_out_of_memory();
- return;
-
-do_sigbus:
- mmap_read_unlock(mm);
-
- /* Kernel mode? Handle exceptions or die */
- if (!user_mode(regs))
- goto no_context;
-
- /*
- * Send a sigbus
- */
- tsk->thread.address = addr;
- tsk->thread.error_code = error_code;
- tsk->thread.trap_no = entry;
- force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)addr);
-
- return;
-
-vmalloc_fault:
- {
- /*
- * Synchronize this task's top level page-table
- * with the 'reference' page table.
- *
- * Use current_pgd instead of tsk->active_mm->pgd
- * since the latter might be unavailable if this
- * code is executed in a misfortunately run irq
- * (like inside schedule() between switch_mm and
- * switch_to...).
- */
-
- unsigned int index = pgd_index(addr);
- pgd_t *pgd, *pgd_k;
- p4d_t *p4d, *p4d_k;
- pud_t *pud, *pud_k;
- pmd_t *pmd, *pmd_k;
- pte_t *pte_k;
-
- pgd = (pgd_t *) __va(__nds32__mfsr(NDS32_SR_L1_PPTB)) + index;
- pgd_k = init_mm.pgd + index;
-
- if (!pgd_present(*pgd_k))
- goto no_context;
-
- p4d = p4d_offset(pgd, addr);
- p4d_k = p4d_offset(pgd_k, addr);
- if (!p4d_present(*p4d_k))
- goto no_context;
-
- pud = pud_offset(p4d, addr);
- pud_k = pud_offset(p4d_k, addr);
- if (!pud_present(*pud_k))
- goto no_context;
-
- pmd = pmd_offset(pud, addr);
- pmd_k = pmd_offset(pud_k, addr);
- if (!pmd_present(*pmd_k))
- goto no_context;
-
- if (!pmd_present(*pmd))
- set_pmd(pmd, *pmd_k);
- else
- BUG_ON(pmd_page(*pmd) != pmd_page(*pmd_k));
-
- /*
- * Since the vmalloc area is global, we don't
- * need to copy individual PTE's, it is enough to
- * copy the pgd pointer into the pte page of the
- * root task. If that is there, we'll find our pte if
- * it exists.
- */
-
- /* Make sure the actual PTE exists as well to
- * catch kernel vmalloc-area accesses to non-mapped
- * addres. If we don't do this, this will just
- * silently loop forever.
- */
-
- pte_k = pte_offset_kernel(pmd_k, addr);
- if (!pte_present(*pte_k))
- goto no_context;
-
- return;
- }
-}
diff --git a/arch/nds32/mm/init.c b/arch/nds32/mm/init.c
deleted file mode 100644
index f63f839738c4..000000000000
--- a/arch/nds32/mm/init.c
+++ /dev/null
@@ -1,263 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 1995-2005 Russell King
-// Copyright (C) 2012 ARM Ltd.
-// Copyright (C) 2013-2017 Andes Technology Corporation
-
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/swap.h>
-#include <linux/init.h>
-#include <linux/memblock.h>
-#include <linux/mman.h>
-#include <linux/nodemask.h>
-#include <linux/initrd.h>
-#include <linux/highmem.h>
-
-#include <asm/sections.h>
-#include <asm/setup.h>
-#include <asm/tlb.h>
-#include <asm/page.h>
-
-DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
-DEFINE_SPINLOCK(anon_alias_lock);
-extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
-
-/*
- * empty_zero_page is a special page that is used for
- * zero-initialized data and COW.
- */
-struct page *empty_zero_page;
-EXPORT_SYMBOL(empty_zero_page);
-
-static void __init zone_sizes_init(void)
-{
- unsigned long max_zone_pfn[MAX_NR_ZONES] = { 0 };
-
- max_zone_pfn[ZONE_NORMAL] = max_low_pfn;
-#ifdef CONFIG_HIGHMEM
- max_zone_pfn[ZONE_HIGHMEM] = max_pfn;
-#endif
- free_area_init(max_zone_pfn);
-
-}
-
-/*
- * Map all physical memory under high_memory into kernel's address space.
- *
- * This is explicitly coded for two-level page tables, so if you need
- * something else then this needs to change.
- */
-static void __init map_ram(void)
-{
- unsigned long v, p, e;
- pgd_t *pge;
- p4d_t *p4e;
- pud_t *pue;
- pmd_t *pme;
- pte_t *pte;
- /* These mark extents of read-only kernel pages...
- * ...from vmlinux.lds.S
- */
-
- p = (u32) memblock_start_of_DRAM() & PAGE_MASK;
- e = min((u32) memblock_end_of_DRAM(), (u32) __pa(high_memory));
-
- v = (u32) __va(p);
- pge = pgd_offset_k(v);
-
- while (p < e) {
- int j;
- p4e = p4d_offset(pge, v);
- pue = pud_offset(p4e, v);
- pme = pmd_offset(pue, v);
-
- if ((u32) pue != (u32) pge || (u32) pme != (u32) pge) {
- panic("%s: Kernel hardcoded for "
- "two-level page tables", __func__);
- }
-
- /* Alloc one page for holding PTE's... */
- pte = memblock_alloc(PAGE_SIZE, PAGE_SIZE);
- if (!pte)
- panic("%s: Failed to allocate %lu bytes align=0x%lx\n",
- __func__, PAGE_SIZE, PAGE_SIZE);
- set_pmd(pme, __pmd(__pa(pte) + _PAGE_KERNEL_TABLE));
-
- /* Fill the newly allocated page with PTE'S */
- for (j = 0; p < e && j < PTRS_PER_PTE;
- v += PAGE_SIZE, p += PAGE_SIZE, j++, pte++) {
- /* Create mapping between p and v. */
- /* TODO: more fine grant for page access permission */
- set_pte(pte, __pte(p + pgprot_val(PAGE_KERNEL)));
- }
-
- pge++;
- }
-}
-static pmd_t *fixmap_pmd_p;
-static void __init fixedrange_init(void)
-{
- unsigned long vaddr;
- pmd_t *pmd;
-#ifdef CONFIG_HIGHMEM
- pte_t *pte;
-#endif /* CONFIG_HIGHMEM */
-
- /*
- * Fixed mappings:
- */
- vaddr = __fix_to_virt(__end_of_fixed_addresses - 1);
- pmd = pmd_off_k(vaddr);
- fixmap_pmd_p = memblock_alloc(PAGE_SIZE, PAGE_SIZE);
- if (!fixmap_pmd_p)
- panic("%s: Failed to allocate %lu bytes align=0x%lx\n",
- __func__, PAGE_SIZE, PAGE_SIZE);
- set_pmd(pmd, __pmd(__pa(fixmap_pmd_p) + _PAGE_KERNEL_TABLE));
-
-#ifdef CONFIG_HIGHMEM
- /*
- * Permanent kmaps:
- */
- vaddr = PKMAP_BASE;
-
- pmd = pmd_off_k(vaddr);
- pte = memblock_alloc(PAGE_SIZE, PAGE_SIZE);
- if (!pte)
- panic("%s: Failed to allocate %lu bytes align=0x%lx\n",
- __func__, PAGE_SIZE, PAGE_SIZE);
- set_pmd(pmd, __pmd(__pa(pte) + _PAGE_KERNEL_TABLE));
- pkmap_page_table = pte;
-#endif /* CONFIG_HIGHMEM */
-}
-
-/*
- * paging_init() sets up the page tables, initialises the zone memory
- * maps, and sets up the zero page, bad page and bad page tables.
- */
-void __init paging_init(void)
-{
- int i;
- void *zero_page;
-
- pr_info("Setting up paging and PTEs.\n");
- /* clear out the init_mm.pgd that will contain the kernel's mappings */
- for (i = 0; i < PTRS_PER_PGD; i++)
- swapper_pg_dir[i] = __pgd(1);
-
- map_ram();
-
- fixedrange_init();
-
- /* allocate space for empty_zero_page */
- zero_page = memblock_alloc(PAGE_SIZE, PAGE_SIZE);
- if (!zero_page)
- panic("%s: Failed to allocate %lu bytes align=0x%lx\n",
- __func__, PAGE_SIZE, PAGE_SIZE);
- zone_sizes_init();
-
- empty_zero_page = virt_to_page(zero_page);
- flush_dcache_page(empty_zero_page);
-}
-
-static inline void __init free_highmem(void)
-{
-#ifdef CONFIG_HIGHMEM
- unsigned long pfn;
- for (pfn = PFN_UP(__pa(high_memory)); pfn < max_pfn; pfn++) {
- phys_addr_t paddr = (phys_addr_t) pfn << PAGE_SHIFT;
- if (!memblock_is_reserved(paddr))
- free_highmem_page(pfn_to_page(pfn));
- }
-#endif
-}
-
-static void __init set_max_mapnr_init(void)
-{
- max_mapnr = max_pfn;
-}
-
-/*
- * mem_init() marks the free areas in the mem_map and tells us how much
- * memory is free. This is done after various parts of the system have
- * claimed their memory after the kernel image.
- */
-void __init mem_init(void)
-{
- phys_addr_t memory_start = memblock_start_of_DRAM();
- BUG_ON(!mem_map);
- set_max_mapnr_init();
-
- free_highmem();
-
- /* this will put all low memory onto the freelists */
- memblock_free_all();
-
- pr_info("virtual kernel memory layout:\n"
- " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n"
-#ifdef CONFIG_HIGHMEM
- " pkmap : 0x%08lx - 0x%08lx (%4ld kB)\n"
-#endif
- " consist : 0x%08lx - 0x%08lx (%4ld MB)\n"
- " vmalloc : 0x%08lx - 0x%08lx (%4ld MB)\n"
- " lowmem : 0x%08lx - 0x%08lx (%4ld MB)\n"
- " .init : 0x%08lx - 0x%08lx (%4ld kB)\n"
- " .data : 0x%08lx - 0x%08lx (%4ld kB)\n"
- " .text : 0x%08lx - 0x%08lx (%4ld kB)\n",
- FIXADDR_START, FIXADDR_TOP, (FIXADDR_TOP - FIXADDR_START) >> 10,
-#ifdef CONFIG_HIGHMEM
- PKMAP_BASE, PKMAP_BASE + LAST_PKMAP * PAGE_SIZE,
- (LAST_PKMAP * PAGE_SIZE) >> 10,
-#endif
- CONSISTENT_BASE, CONSISTENT_END,
- ((CONSISTENT_END) - (CONSISTENT_BASE)) >> 20, VMALLOC_START,
- (unsigned long)VMALLOC_END, (VMALLOC_END - VMALLOC_START) >> 20,
- (unsigned long)__va(memory_start), (unsigned long)high_memory,
- ((unsigned long)high_memory -
- (unsigned long)__va(memory_start)) >> 20,
- (unsigned long)&__init_begin, (unsigned long)&__init_end,
- ((unsigned long)&__init_end -
- (unsigned long)&__init_begin) >> 10, (unsigned long)&_etext,
- (unsigned long)&_edata,
- ((unsigned long)&_edata - (unsigned long)&_etext) >> 10,
- (unsigned long)&_text, (unsigned long)&_etext,
- ((unsigned long)&_etext - (unsigned long)&_text) >> 10);
-
- /*
- * Check boundaries twice: Some fundamental inconsistencies can
- * be detected at build time already.
- */
-#ifdef CONFIG_HIGHMEM
- BUILD_BUG_ON(PKMAP_BASE + LAST_PKMAP * PAGE_SIZE > FIXADDR_START);
- BUILD_BUG_ON((CONSISTENT_END) > PKMAP_BASE);
-#endif
- BUILD_BUG_ON(VMALLOC_END > CONSISTENT_BASE);
- BUILD_BUG_ON(VMALLOC_START >= VMALLOC_END);
-
-#ifdef CONFIG_HIGHMEM
- BUG_ON(PKMAP_BASE + LAST_PKMAP * PAGE_SIZE > FIXADDR_START);
- BUG_ON(CONSISTENT_END > PKMAP_BASE);
-#endif
- BUG_ON(VMALLOC_END > CONSISTENT_BASE);
- BUG_ON(VMALLOC_START >= VMALLOC_END);
- BUG_ON((unsigned long)high_memory > VMALLOC_START);
-
- return;
-}
-
-void __set_fixmap(enum fixed_addresses idx,
- phys_addr_t phys, pgprot_t flags)
-{
- unsigned long addr = __fix_to_virt(idx);
- pte_t *pte;
-
- BUG_ON(idx <= FIX_HOLE || idx >= __end_of_fixed_addresses);
-
- pte = (pte_t *)&fixmap_pmd_p[pte_index(addr)];
-
- if (pgprot_val(flags)) {
- set_pte(pte, pfn_pte(phys >> PAGE_SHIFT, flags));
- } else {
- pte_clear(&init_mm, addr, pte);
- flush_tlb_kernel_range(addr, addr + PAGE_SIZE);
- }
-}
diff --git a/arch/nds32/mm/mm-nds32.c b/arch/nds32/mm/mm-nds32.c
deleted file mode 100644
index f2778f2b39f6..000000000000
--- a/arch/nds32/mm/mm-nds32.c
+++ /dev/null
@@ -1,96 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/init_task.h>
-
-#define __HAVE_ARCH_PGD_FREE
-#include <asm/pgalloc.h>
-
-#define FIRST_KERNEL_PGD_NR (USER_PTRS_PER_PGD)
-
-/*
- * need to get a page for level 1
- */
-
-pgd_t *pgd_alloc(struct mm_struct *mm)
-{
- pgd_t *new_pgd, *init_pgd;
- int i;
-
- new_pgd = (pgd_t *) __get_free_pages(GFP_KERNEL, 0);
- if (!new_pgd)
- return NULL;
- for (i = 0; i < PTRS_PER_PGD; i++) {
- (*new_pgd) = 1;
- new_pgd++;
- }
- new_pgd -= PTRS_PER_PGD;
-
- init_pgd = pgd_offset_k(0);
-
- memcpy(new_pgd + FIRST_KERNEL_PGD_NR, init_pgd + FIRST_KERNEL_PGD_NR,
- (PTRS_PER_PGD - FIRST_KERNEL_PGD_NR) * sizeof(pgd_t));
-
- cpu_dcache_wb_range((unsigned long)new_pgd,
- (unsigned long)new_pgd +
- PTRS_PER_PGD * sizeof(pgd_t));
- inc_lruvec_page_state(virt_to_page((unsigned long *)new_pgd),
- NR_PAGETABLE);
-
- return new_pgd;
-}
-
-void pgd_free(struct mm_struct *mm, pgd_t * pgd)
-{
- pmd_t *pmd;
- struct page *pte;
-
- if (!pgd)
- return;
-
- pmd = (pmd_t *) pgd;
- if (pmd_none(*pmd))
- goto free;
- if (pmd_bad(*pmd)) {
- pmd_ERROR(*pmd);
- pmd_clear(pmd);
- goto free;
- }
-
- pte = pmd_page(*pmd);
- pmd_clear(pmd);
- dec_lruvec_page_state(virt_to_page((unsigned long *)pgd), NR_PAGETABLE);
- pte_free(mm, pte);
- mm_dec_nr_ptes(mm);
- pmd_free(mm, pmd);
-free:
- free_pages((unsigned long)pgd, 0);
-}
-
-/*
- * In order to soft-boot, we need to insert a 1:1 mapping in place of
- * the user-mode pages. This will then ensure that we have predictable
- * results when turning the mmu off
- */
-void setup_mm_for_reboot(char mode)
-{
- unsigned long pmdval;
- pgd_t *pgd;
- p4d_t *p4d;
- pud_t *pud;
- pmd_t *pmd;
- int i;
-
- if (current->mm && current->mm->pgd)
- pgd = current->mm->pgd;
- else
- pgd = init_mm.pgd;
-
- for (i = 0; i < USER_PTRS_PER_PGD; i++) {
- pmdval = (i << PGDIR_SHIFT);
- p4d = p4d_offset(pgd, i << PGDIR_SHIFT);
- pud = pud_offset(p4d, i << PGDIR_SHIFT);
- pmd = pmd_offset(pud + i, i << PGDIR_SHIFT);
- set_pmd(pmd, __pmd(pmdval));
- }
-}
diff --git a/arch/nds32/mm/mmap.c b/arch/nds32/mm/mmap.c
deleted file mode 100644
index 1bdf5e7d1b43..000000000000
--- a/arch/nds32/mm/mmap.c
+++ /dev/null
@@ -1,73 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/sched.h>
-#include <linux/mman.h>
-#include <linux/shm.h>
-
-#define COLOUR_ALIGN(addr,pgoff) \
- ((((addr)+SHMLBA-1)&~(SHMLBA-1)) + \
- (((pgoff)<<PAGE_SHIFT) & (SHMLBA-1)))
-
-/*
- * We need to ensure that shared mappings are correctly aligned to
- * avoid aliasing issues with VIPT caches. We need to ensure that
- * a specific page of an object is always mapped at a multiple of
- * SHMLBA bytes.
- *
- * We unconditionally provide this function for all cases, however
- * in the VIVT case, we optimise out the alignment rules.
- */
-unsigned long
-arch_get_unmapped_area(struct file *filp, unsigned long addr,
- unsigned long len, unsigned long pgoff,
- unsigned long flags)
-{
- struct mm_struct *mm = current->mm;
- struct vm_area_struct *vma;
- int do_align = 0;
- struct vm_unmapped_area_info info;
- int aliasing = 0;
- if(IS_ENABLED(CONFIG_CPU_CACHE_ALIASING))
- aliasing = 1;
-
- /*
- * We only need to do colour alignment if either the I or D
- * caches alias.
- */
- if (aliasing)
- do_align = filp || (flags & MAP_SHARED);
-
- /*
- * We enforce the MAP_FIXED case.
- */
- if (flags & MAP_FIXED) {
- if (aliasing && flags & MAP_SHARED &&
- (addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1))
- return -EINVAL;
- return addr;
- }
-
- if (len > TASK_SIZE)
- return -ENOMEM;
-
- if (addr) {
- if (do_align)
- addr = COLOUR_ALIGN(addr, pgoff);
- else
- addr = PAGE_ALIGN(addr);
-
- vma = find_vma(mm, addr);
- if (TASK_SIZE - len >= addr &&
- (!vma || addr + len <= vm_start_gap(vma)))
- return addr;
- }
-
- info.flags = 0;
- info.length = len;
- info.low_limit = mm->mmap_base;
- info.high_limit = TASK_SIZE;
- info.align_mask = do_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
- info.align_offset = pgoff << PAGE_SHIFT;
- return vm_unmapped_area(&info);
-}
diff --git a/arch/nds32/mm/proc.c b/arch/nds32/mm/proc.c
deleted file mode 100644
index 848c845f5f33..000000000000
--- a/arch/nds32/mm/proc.c
+++ /dev/null
@@ -1,536 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/mm.h>
-#include <asm/nds32.h>
-#include <asm/tlbflush.h>
-#include <asm/cacheflush.h>
-#include <asm/l2_cache.h>
-#include <nds32_intrinsic.h>
-
-#include <asm/cache_info.h>
-extern struct cache_info L1_cache_info[2];
-
-int va_kernel_present(unsigned long addr)
-{
- pmd_t *pmd;
- pte_t *ptep, pte;
-
- pmd = pmd_off_k(addr);
- if (!pmd_none(*pmd)) {
- ptep = pte_offset_map(pmd, addr);
- pte = *ptep;
- if (pte_present(pte))
- return pte;
- }
- return 0;
-}
-
-pte_t va_present(struct mm_struct * mm, unsigned long addr)
-{
- pgd_t *pgd;
- p4d_t *p4d;
- pud_t *pud;
- pmd_t *pmd;
- pte_t *ptep, pte;
-
- pgd = pgd_offset(mm, addr);
- if (!pgd_none(*pgd)) {
- p4d = p4d_offset(pgd, addr);
- if (!p4d_none(*p4d)) {
- pud = pud_offset(p4d, addr);
- if (!pud_none(*pud)) {
- pmd = pmd_offset(pud, addr);
- if (!pmd_none(*pmd)) {
- ptep = pte_offset_map(pmd, addr);
- pte = *ptep;
- if (pte_present(pte))
- return pte;
- }
- }
- }
- }
- return 0;
-
-}
-
-int va_readable(struct pt_regs *regs, unsigned long addr)
-{
- struct mm_struct *mm = current->mm;
- pte_t pte;
- int ret = 0;
-
- if (user_mode(regs)) {
- /* user mode */
- pte = va_present(mm, addr);
- if (!pte && pte_read(pte))
- ret = 1;
- } else {
- /* superuser mode is always readable, so we can only
- * check it is present or not*/
- return (! !va_kernel_present(addr));
- }
- return ret;
-}
-
-int va_writable(struct pt_regs *regs, unsigned long addr)
-{
- struct mm_struct *mm = current->mm;
- pte_t pte;
- int ret = 0;
-
- if (user_mode(regs)) {
- /* user mode */
- pte = va_present(mm, addr);
- if (!pte && pte_write(pte))
- ret = 1;
- } else {
- /* superuser mode */
- pte = va_kernel_present(addr);
- if (!pte && pte_kernel_write(pte))
- ret = 1;
- }
- return ret;
-}
-
-/*
- * All
- */
-void cpu_icache_inval_all(void)
-{
- unsigned long end, line_size;
-
- line_size = L1_cache_info[ICACHE].line_size;
- end =
- line_size * L1_cache_info[ICACHE].ways * L1_cache_info[ICACHE].sets;
-
- do {
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_IX_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_IX_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_IX_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_IX_INVAL"::"r" (end));
- } while (end > 0);
- __nds32__isb();
-}
-
-void cpu_dcache_inval_all(void)
-{
- __nds32__cctl_l1d_invalall();
-}
-
-#ifdef CONFIG_CACHE_L2
-void dcache_wb_all_level(void)
-{
- unsigned long flags, cmd;
- local_irq_save(flags);
- __nds32__cctl_l1d_wball_alvl();
- /* Section 1: Ensure the section 2 & 3 program code execution after */
- __nds32__cctlidx_read(NDS32_CCTL_L1D_IX_RWD,0);
-
- /* Section 2: Confirm the writeback all level is done in CPU and L2C */
- cmd = CCTL_CMD_L2_SYNC;
- L2_CMD_RDY();
- L2C_W_REG(L2_CCTL_CMD_OFF, cmd);
- L2_CMD_RDY();
-
- /* Section 3: Writeback whole L2 cache */
- cmd = CCTL_ALL_CMD | CCTL_CMD_L2_IX_WB;
- L2_CMD_RDY();
- L2C_W_REG(L2_CCTL_CMD_OFF, cmd);
- L2_CMD_RDY();
- __nds32__msync_all();
- local_irq_restore(flags);
-}
-EXPORT_SYMBOL(dcache_wb_all_level);
-#endif
-
-void cpu_dcache_wb_all(void)
-{
- __nds32__cctl_l1d_wball_one_lvl();
- __nds32__cctlidx_read(NDS32_CCTL_L1D_IX_RWD,0);
-}
-
-void cpu_dcache_wbinval_all(void)
-{
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- unsigned long flags;
- local_irq_save(flags);
-#endif
- cpu_dcache_wb_all();
- cpu_dcache_inval_all();
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- local_irq_restore(flags);
-#endif
-}
-
-/*
- * Page
- */
-void cpu_icache_inval_page(unsigned long start)
-{
- unsigned long line_size, end;
-
- line_size = L1_cache_info[ICACHE].line_size;
- end = start + PAGE_SIZE;
-
- do {
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_VA_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_VA_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_VA_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1I_VA_INVAL"::"r" (end));
- } while (end != start);
- __nds32__isb();
-}
-
-void cpu_dcache_inval_page(unsigned long start)
-{
- unsigned long line_size, end;
-
- line_size = L1_cache_info[DCACHE].line_size;
- end = start + PAGE_SIZE;
-
- do {
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- } while (end != start);
-}
-
-void cpu_dcache_wb_page(unsigned long start)
-{
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- unsigned long line_size, end;
-
- line_size = L1_cache_info[DCACHE].line_size;
- end = start + PAGE_SIZE;
-
- do {
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
- end -= line_size;
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
- } while (end != start);
- __nds32__cctlidx_read(NDS32_CCTL_L1D_IX_RWD,0);
-#endif
-}
-
-void cpu_dcache_wbinval_page(unsigned long start)
-{
- unsigned long line_size, end;
-
- line_size = L1_cache_info[DCACHE].line_size;
- end = start + PAGE_SIZE;
-
- do {
- end -= line_size;
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
-#endif
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- end -= line_size;
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
-#endif
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- end -= line_size;
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
-#endif
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- end -= line_size;
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (end));
-#endif
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (end));
- } while (end != start);
- __nds32__cctlidx_read(NDS32_CCTL_L1D_IX_RWD,0);
-}
-
-void cpu_cache_wbinval_page(unsigned long page, int flushi)
-{
- cpu_dcache_wbinval_page(page);
- if (flushi)
- cpu_icache_inval_page(page);
-}
-
-/*
- * Range
- */
-void cpu_icache_inval_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size;
-
- line_size = L1_cache_info[ICACHE].line_size;
-
- while (end > start) {
- __asm__ volatile ("\n\tcctl %0, L1I_VA_INVAL"::"r" (start));
- start += line_size;
- }
- __nds32__isb();
-}
-
-void cpu_dcache_inval_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size;
-
- line_size = L1_cache_info[DCACHE].line_size;
-
- while (end > start) {
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (start));
- start += line_size;
- }
-}
-
-void cpu_dcache_wb_range(unsigned long start, unsigned long end)
-{
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- unsigned long line_size;
-
- line_size = L1_cache_info[DCACHE].line_size;
-
- while (end > start) {
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (start));
- start += line_size;
- }
- __nds32__cctlidx_read(NDS32_CCTL_L1D_IX_RWD,0);
-#endif
-}
-
-void cpu_dcache_wbinval_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size;
-
- line_size = L1_cache_info[DCACHE].line_size;
-
- while (end > start) {
-#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
- __asm__ volatile ("\n\tcctl %0, L1D_VA_WB"::"r" (start));
-#endif
- __asm__ volatile ("\n\tcctl %0, L1D_VA_INVAL"::"r" (start));
- start += line_size;
- }
- __nds32__cctlidx_read(NDS32_CCTL_L1D_IX_RWD,0);
-}
-
-void cpu_cache_wbinval_range(unsigned long start, unsigned long end, int flushi)
-{
- unsigned long line_size, align_start, align_end;
-
- line_size = L1_cache_info[DCACHE].line_size;
- align_start = start & ~(line_size - 1);
- align_end = (end + line_size - 1) & ~(line_size - 1);
- cpu_dcache_wbinval_range(align_start, align_end);
-
- if (flushi) {
- line_size = L1_cache_info[ICACHE].line_size;
- align_start = start & ~(line_size - 1);
- align_end = (end + line_size - 1) & ~(line_size - 1);
- cpu_icache_inval_range(align_start, align_end);
- }
-}
-
-void cpu_cache_wbinval_range_check(struct vm_area_struct *vma,
- unsigned long start, unsigned long end,
- bool flushi, bool wbd)
-{
- unsigned long line_size, t_start, t_end;
-
- if (!flushi && !wbd)
- return;
- line_size = L1_cache_info[DCACHE].line_size;
- start = start & ~(line_size - 1);
- end = (end + line_size - 1) & ~(line_size - 1);
-
- if ((end - start) > (8 * PAGE_SIZE)) {
- if (wbd)
- cpu_dcache_wbinval_all();
- if (flushi)
- cpu_icache_inval_all();
- return;
- }
-
- t_start = (start + PAGE_SIZE) & PAGE_MASK;
- t_end = ((end - 1) & PAGE_MASK);
-
- if ((start & PAGE_MASK) == t_end) {
- if (va_present(vma->vm_mm, start)) {
- if (wbd)
- cpu_dcache_wbinval_range(start, end);
- if (flushi)
- cpu_icache_inval_range(start, end);
- }
- return;
- }
-
- if (va_present(vma->vm_mm, start)) {
- if (wbd)
- cpu_dcache_wbinval_range(start, t_start);
- if (flushi)
- cpu_icache_inval_range(start, t_start);
- }
-
- if (va_present(vma->vm_mm, end - 1)) {
- if (wbd)
- cpu_dcache_wbinval_range(t_end, end);
- if (flushi)
- cpu_icache_inval_range(t_end, end);
- }
-
- while (t_start < t_end) {
- if (va_present(vma->vm_mm, t_start)) {
- if (wbd)
- cpu_dcache_wbinval_page(t_start);
- if (flushi)
- cpu_icache_inval_page(t_start);
- }
- t_start += PAGE_SIZE;
- }
-}
-
-#ifdef CONFIG_CACHE_L2
-static inline void cpu_l2cache_op(unsigned long start, unsigned long end, unsigned long op)
-{
- if (atl2c_base) {
- unsigned long p_start = __pa(start);
- unsigned long p_end = __pa(end);
- unsigned long cmd;
- unsigned long line_size;
- /* TODO Can Use PAGE Mode to optimize if range large than PAGE_SIZE */
- line_size = L2_CACHE_LINE_SIZE();
- p_start = p_start & (~(line_size - 1));
- p_end = (p_end + line_size - 1) & (~(line_size - 1));
- cmd =
- (p_start & ~(line_size - 1)) | op |
- CCTL_SINGLE_CMD;
- do {
- L2_CMD_RDY();
- L2C_W_REG(L2_CCTL_CMD_OFF, cmd);
- cmd += line_size;
- p_start += line_size;
- } while (p_end > p_start);
- cmd = CCTL_CMD_L2_SYNC;
- L2_CMD_RDY();
- L2C_W_REG(L2_CCTL_CMD_OFF, cmd);
- L2_CMD_RDY();
- }
-}
-#else
-#define cpu_l2cache_op(start,end,op) do { } while (0)
-#endif
-/*
- * DMA
- */
-void cpu_dma_wb_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size;
- unsigned long flags;
- line_size = L1_cache_info[DCACHE].line_size;
- start = start & (~(line_size - 1));
- end = (end + line_size - 1) & (~(line_size - 1));
- if (unlikely(start == end))
- return;
-
- local_irq_save(flags);
- cpu_dcache_wb_range(start, end);
- cpu_l2cache_op(start, end, CCTL_CMD_L2_PA_WB);
- __nds32__msync_all();
- local_irq_restore(flags);
-}
-
-void cpu_dma_inval_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size;
- unsigned long old_start = start;
- unsigned long old_end = end;
- unsigned long flags;
- line_size = L1_cache_info[DCACHE].line_size;
- start = start & (~(line_size - 1));
- end = (end + line_size - 1) & (~(line_size - 1));
- if (unlikely(start == end))
- return;
- local_irq_save(flags);
- if (start != old_start) {
- cpu_dcache_wbinval_range(start, start + line_size);
- cpu_l2cache_op(start, start + line_size, CCTL_CMD_L2_PA_WBINVAL);
- }
- if (end != old_end) {
- cpu_dcache_wbinval_range(end - line_size, end);
- cpu_l2cache_op(end - line_size, end, CCTL_CMD_L2_PA_WBINVAL);
- }
- cpu_dcache_inval_range(start, end);
- cpu_l2cache_op(start, end, CCTL_CMD_L2_PA_INVAL);
- __nds32__msync_all();
- local_irq_restore(flags);
-
-}
-
-void cpu_dma_wbinval_range(unsigned long start, unsigned long end)
-{
- unsigned long line_size;
- unsigned long flags;
- line_size = L1_cache_info[DCACHE].line_size;
- start = start & (~(line_size - 1));
- end = (end + line_size - 1) & (~(line_size - 1));
- if (unlikely(start == end))
- return;
-
- local_irq_save(flags);
- cpu_dcache_wbinval_range(start, end);
- cpu_l2cache_op(start, end, CCTL_CMD_L2_PA_WBINVAL);
- __nds32__msync_all();
- local_irq_restore(flags);
-}
-
-void cpu_proc_init(void)
-{
-}
-
-void cpu_proc_fin(void)
-{
-}
-
-void cpu_do_idle(void)
-{
- __nds32__standby_no_wake_grant();
-}
-
-void cpu_reset(unsigned long reset)
-{
- u32 tmp;
- GIE_DISABLE();
- tmp = __nds32__mfsr(NDS32_SR_CACHE_CTL);
- tmp &= ~(CACHE_CTL_mskIC_EN | CACHE_CTL_mskDC_EN);
- __nds32__mtsr_isb(tmp, NDS32_SR_CACHE_CTL);
- cpu_dcache_wbinval_all();
- cpu_icache_inval_all();
-
- __asm__ __volatile__("jr.toff %0\n\t"::"r"(reset));
-}
-
-void cpu_switch_mm(struct mm_struct *mm)
-{
- unsigned long cid;
- cid = __nds32__mfsr(NDS32_SR_TLB_MISC);
- cid = (cid & ~TLB_MISC_mskCID) | mm->context.id;
- __nds32__mtsr_dsb(cid, NDS32_SR_TLB_MISC);
- __nds32__mtsr_isb(__pa(mm->pgd), NDS32_SR_L1_PPTB);
-}
diff --git a/arch/nds32/mm/tlb.c b/arch/nds32/mm/tlb.c
deleted file mode 100644
index dd41f5e0712f..000000000000
--- a/arch/nds32/mm/tlb.c
+++ /dev/null
@@ -1,50 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/spinlock_types.h>
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <asm/nds32.h>
-#include <nds32_intrinsic.h>
-
-unsigned int cpu_last_cid = { TLB_MISC_mskCID + (2 << TLB_MISC_offCID) };
-
-DEFINE_SPINLOCK(cid_lock);
-
-void local_flush_tlb_range(struct vm_area_struct *vma,
- unsigned long start, unsigned long end)
-{
- unsigned long flags, ocid, ncid;
-
- if ((end - start) > 0x400000) {
- __nds32__tlbop_flua();
- __nds32__isb();
- return;
- }
-
- spin_lock_irqsave(&cid_lock, flags);
- ocid = __nds32__mfsr(NDS32_SR_TLB_MISC);
- ncid = (ocid & ~TLB_MISC_mskCID) | vma->vm_mm->context.id;
- __nds32__mtsr_dsb(ncid, NDS32_SR_TLB_MISC);
- while (start < end) {
- __nds32__tlbop_inv(start);
- __nds32__isb();
- start += PAGE_SIZE;
- }
- __nds32__mtsr_dsb(ocid, NDS32_SR_TLB_MISC);
- spin_unlock_irqrestore(&cid_lock, flags);
-}
-
-void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long addr)
-{
- unsigned long flags, ocid, ncid;
-
- spin_lock_irqsave(&cid_lock, flags);
- ocid = __nds32__mfsr(NDS32_SR_TLB_MISC);
- ncid = (ocid & ~TLB_MISC_mskCID) | vma->vm_mm->context.id;
- __nds32__mtsr_dsb(ncid, NDS32_SR_TLB_MISC);
- __nds32__tlbop_inv(addr);
- __nds32__isb();
- __nds32__mtsr_dsb(ocid, NDS32_SR_TLB_MISC);
- spin_unlock_irqrestore(&cid_lock, flags);
-}
diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
index cfb8ea0df3b1..ae95d06a4a8f 100644
--- a/drivers/clocksource/Kconfig
+++ b/drivers/clocksource/Kconfig
@@ -617,15 +617,6 @@ config CLKSRC_ST_LPC
Enable this option to use the Low Power controller timer
as clocksource.
-config ATCPIT100_TIMER
- bool "ATCPIT100 timer driver"
- depends on NDS32 || COMPILE_TEST
- depends on HAS_IOMEM
- select TIMER_OF
- default NDS32
- help
- This option enables support for the Andestech ATCPIT100 timers.
-
config RISCV_TIMER
bool "Timer for the RISC-V platform" if COMPILE_TEST
depends on GENERIC_SCHED_CLOCK && RISCV && RISCV_SBI
diff --git a/drivers/clocksource/timer-atcpit100.c b/drivers/clocksource/timer-atcpit100.c
deleted file mode 100644
index b4bd2f5b801d..000000000000
--- a/drivers/clocksource/timer-atcpit100.c
+++ /dev/null
@@ -1,266 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-/*
- * Andestech ATCPIT100 Timer Device Driver Implementation
- * Rick Chen, Andes Technology Corporation <rick@andestech.com>
- *
- */
-
-#include <linux/irq.h>
-#include <linux/clocksource.h>
-#include <linux/clockchips.h>
-#include <linux/interrupt.h>
-#include <linux/ioport.h>
-#include <linux/cpufreq.h>
-#include <linux/sched.h>
-#include <linux/sched_clock.h>
-#include <linux/of_address.h>
-#include <linux/of_irq.h>
-#include <linux/of_platform.h>
-#include "timer-of.h"
-#ifdef CONFIG_NDS32
-#include <asm/vdso_timer_info.h>
-#endif
-
-/*
- * Definition of register offsets
- */
-
-/* ID and Revision Register */
-#define ID_REV 0x0
-
-/* Configuration Register */
-#define CFG 0x10
-
-/* Interrupt Enable Register */
-#define INT_EN 0x14
-#define CH_INT_EN(c, i) ((1<<i)<<(4*c))
-#define CH0INT0EN 0x01
-
-/* Interrupt Status Register */
-#define INT_STA 0x18
-#define CH0INT0 0x01
-
-/* Channel Enable Register */
-#define CH_EN 0x1C
-#define CH0TMR0EN 0x1
-#define CH1TMR0EN 0x10
-
-/* Channel 0 , 1 Control Register */
-#define CH0_CTL (0x20)
-#define CH1_CTL (0x20 + 0x10)
-
-/* Channel clock source , bit 3 , 0:External clock , 1:APB clock */
-#define APB_CLK BIT(3)
-
-/* Channel mode , bit 0~2 */
-#define TMR_32 0x1
-#define TMR_16 0x2
-#define TMR_8 0x3
-
-/* Channel 0 , 1 Reload Register */
-#define CH0_REL (0x24)
-#define CH1_REL (0x24 + 0x10)
-
-/* Channel 0 , 1 Counter Register */
-#define CH0_CNT (0x28)
-#define CH1_CNT (0x28 + 0x10)
-
-#define TIMER_SYNC_TICKS 3
-
-static void atcpit100_ch1_tmr0_en(void __iomem *base)
-{
- writel(~0, base + CH1_REL);
- writel(APB_CLK|TMR_32, base + CH1_CTL);
-}
-
-static void atcpit100_ch0_tmr0_en(void __iomem *base)
-{
- writel(APB_CLK|TMR_32, base + CH0_CTL);
-}
-
-static void atcpit100_clkevt_time_setup(void __iomem *base, unsigned long delay)
-{
- writel(delay, base + CH0_CNT);
- writel(delay, base + CH0_REL);
-}
-
-static void atcpit100_timer_clear_interrupt(void __iomem *base)
-{
- u32 val;
-
- val = readl(base + INT_STA);
- writel(val | CH0INT0, base + INT_STA);
-}
-
-static void atcpit100_clocksource_start(void __iomem *base)
-{
- u32 val;
-
- val = readl(base + CH_EN);
- writel(val | CH1TMR0EN, base + CH_EN);
-}
-
-static void atcpit100_clkevt_time_start(void __iomem *base)
-{
- u32 val;
-
- val = readl(base + CH_EN);
- writel(val | CH0TMR0EN, base + CH_EN);
-}
-
-static void atcpit100_clkevt_time_stop(void __iomem *base)
-{
- u32 val;
-
- atcpit100_timer_clear_interrupt(base);
- val = readl(base + CH_EN);
- writel(val & ~CH0TMR0EN, base + CH_EN);
-}
-
-static int atcpit100_clkevt_next_event(unsigned long evt,
- struct clock_event_device *clkevt)
-{
- u32 val;
- struct timer_of *to = to_timer_of(clkevt);
-
- val = readl(timer_of_base(to) + CH_EN);
- writel(val & ~CH0TMR0EN, timer_of_base(to) + CH_EN);
- writel(evt, timer_of_base(to) + CH0_REL);
- writel(val | CH0TMR0EN, timer_of_base(to) + CH_EN);
-
- return 0;
-}
-
-static int atcpit100_clkevt_set_periodic(struct clock_event_device *evt)
-{
- struct timer_of *to = to_timer_of(evt);
-
- atcpit100_clkevt_time_setup(timer_of_base(to), timer_of_period(to));
- atcpit100_clkevt_time_start(timer_of_base(to));
-
- return 0;
-}
-static int atcpit100_clkevt_shutdown(struct clock_event_device *evt)
-{
- struct timer_of *to = to_timer_of(evt);
-
- atcpit100_clkevt_time_stop(timer_of_base(to));
-
- return 0;
-}
-static int atcpit100_clkevt_set_oneshot(struct clock_event_device *evt)
-{
- struct timer_of *to = to_timer_of(evt);
- u32 val;
-
- writel(~0x0, timer_of_base(to) + CH0_REL);
- val = readl(timer_of_base(to) + CH_EN);
- writel(val | CH0TMR0EN, timer_of_base(to) + CH_EN);
-
- return 0;
-}
-
-static irqreturn_t atcpit100_timer_interrupt(int irq, void *dev_id)
-{
- struct clock_event_device *evt = (struct clock_event_device *)dev_id;
- struct timer_of *to = to_timer_of(evt);
-
- atcpit100_timer_clear_interrupt(timer_of_base(to));
-
- evt->event_handler(evt);
-
- return IRQ_HANDLED;
-}
-
-static struct timer_of to = {
- .flags = TIMER_OF_IRQ | TIMER_OF_CLOCK | TIMER_OF_BASE,
-
- .clkevt = {
- .name = "atcpit100_tick",
- .rating = 300,
- .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
- .set_state_shutdown = atcpit100_clkevt_shutdown,
- .set_state_periodic = atcpit100_clkevt_set_periodic,
- .set_state_oneshot = atcpit100_clkevt_set_oneshot,
- .tick_resume = atcpit100_clkevt_shutdown,
- .set_next_event = atcpit100_clkevt_next_event,
- .cpumask = cpu_possible_mask,
- },
-
- .of_irq = {
- .handler = atcpit100_timer_interrupt,
- .flags = IRQF_TIMER | IRQF_IRQPOLL,
- },
-
- /*
- * FIXME: we currently only support clocking using PCLK
- * and using EXTCLK is not supported in the driver.
- */
- .of_clk = {
- .name = "PCLK",
- }
-};
-
-static u64 notrace atcpit100_timer_sched_read(void)
-{
- return ~readl(timer_of_base(&to) + CH1_CNT);
-}
-
-#ifdef CONFIG_NDS32
-static void fill_vdso_need_info(struct device_node *node)
-{
- struct resource timer_res;
- of_address_to_resource(node, 0, &timer_res);
- timer_info.mapping_base = (unsigned long)timer_res.start;
- timer_info.cycle_count_down = true;
- timer_info.cycle_count_reg_offset = CH1_CNT;
-}
-#endif
-
-static int __init atcpit100_timer_init(struct device_node *node)
-{
- int ret;
- u32 val;
- void __iomem *base;
-
- ret = timer_of_init(node, &to);
- if (ret)
- return ret;
-
- base = timer_of_base(&to);
-
- sched_clock_register(atcpit100_timer_sched_read, 32,
- timer_of_rate(&to));
-
- ret = clocksource_mmio_init(base + CH1_CNT,
- node->name, timer_of_rate(&to), 300, 32,
- clocksource_mmio_readl_down);
-
- if (ret) {
- pr_err("Failed to register clocksource\n");
- return ret;
- }
-
- /* clear channel 0 timer0 interrupt */
- atcpit100_timer_clear_interrupt(base);
-
- clockevents_config_and_register(&to.clkevt, timer_of_rate(&to),
- TIMER_SYNC_TICKS, 0xffffffff);
- atcpit100_ch0_tmr0_en(base);
- atcpit100_ch1_tmr0_en(base);
- atcpit100_clocksource_start(base);
- atcpit100_clkevt_time_start(base);
-
- /* Enable channel 0 timer0 interrupt */
- val = readl(base + INT_EN);
- writel(val | CH0INT0EN, base + INT_EN);
-
-#ifdef CONFIG_NDS32
- fill_vdso_need_info(node);
-#endif
-
- return ret;
-}
-
-TIMER_OF_DECLARE(atcpit100, "andestech,atcpit100", atcpit100_timer_init);
diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile
index c1f611cbfbf8..c6161b0b0cb6 100644
--- a/drivers/irqchip/Makefile
+++ b/drivers/irqchip/Makefile
@@ -92,7 +92,6 @@ obj-$(CONFIG_IRQ_UNIPHIER_AIDET) += irq-uniphier-aidet.o
obj-$(CONFIG_ARCH_SYNQUACER) += irq-sni-exiu.o
obj-$(CONFIG_MESON_IRQ_GPIO) += irq-meson-gpio.o
obj-$(CONFIG_GOLDFISH_PIC) += irq-goldfish-pic.o
-obj-$(CONFIG_NDS32) += irq-ativic32.o
obj-$(CONFIG_QCOM_PDC) += qcom-pdc.o
obj-$(CONFIG_CSKY_MPINTC) += irq-csky-mpintc.o
obj-$(CONFIG_CSKY_APB_INTC) += irq-csky-apb-intc.o
diff --git a/drivers/irqchip/irq-ativic32.c b/drivers/irqchip/irq-ativic32.c
deleted file mode 100644
index 223dd2f97d28..000000000000
--- a/drivers/irqchip/irq-ativic32.c
+++ /dev/null
@@ -1,156 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <linux/irq.h>
-#include <linux/of.h>
-#include <linux/of_irq.h>
-#include <linux/of_address.h>
-#include <linux/hardirq.h>
-#include <linux/interrupt.h>
-#include <linux/irqdomain.h>
-#include <linux/irqchip.h>
-#include <nds32_intrinsic.h>
-
-#include <asm/irq_regs.h>
-
-unsigned long wake_mask;
-
-static void ativic32_ack_irq(struct irq_data *data)
-{
- __nds32__mtsr_dsb(BIT(data->hwirq), NDS32_SR_INT_PEND2);
-}
-
-static void ativic32_mask_irq(struct irq_data *data)
-{
- unsigned long int_mask2 = __nds32__mfsr(NDS32_SR_INT_MASK2);
- __nds32__mtsr_dsb(int_mask2 & (~(BIT(data->hwirq))), NDS32_SR_INT_MASK2);
-}
-
-static void ativic32_unmask_irq(struct irq_data *data)
-{
- unsigned long int_mask2 = __nds32__mfsr(NDS32_SR_INT_MASK2);
- __nds32__mtsr_dsb(int_mask2 | (BIT(data->hwirq)), NDS32_SR_INT_MASK2);
-}
-
-static int nointc_set_wake(struct irq_data *data, unsigned int on)
-{
- unsigned long int_mask = __nds32__mfsr(NDS32_SR_INT_MASK);
- static unsigned long irq_orig_bit;
- u32 bit = 1 << data->hwirq;
-
- if (on) {
- if (int_mask & bit)
- __assign_bit(data->hwirq, &irq_orig_bit, true);
- else
- __assign_bit(data->hwirq, &irq_orig_bit, false);
-
- __assign_bit(data->hwirq, &int_mask, true);
- __assign_bit(data->hwirq, &wake_mask, true);
-
- } else {
- if (!(irq_orig_bit & bit))
- __assign_bit(data->hwirq, &int_mask, false);
-
- __assign_bit(data->hwirq, &wake_mask, false);
- __assign_bit(data->hwirq, &irq_orig_bit, false);
- }
-
- __nds32__mtsr_dsb(int_mask, NDS32_SR_INT_MASK);
-
- return 0;
-}
-
-static struct irq_chip ativic32_chip = {
- .name = "ativic32",
- .irq_ack = ativic32_ack_irq,
- .irq_mask = ativic32_mask_irq,
- .irq_unmask = ativic32_unmask_irq,
- .irq_set_wake = nointc_set_wake,
-};
-
-static unsigned int __initdata nivic_map[6] = { 6, 2, 10, 16, 24, 32 };
-
-static struct irq_domain *root_domain;
-static int ativic32_irq_domain_map(struct irq_domain *id, unsigned int virq,
- irq_hw_number_t hw)
-{
-
- unsigned long int_trigger_type;
- u32 type;
- struct irq_data *irq_data;
- int_trigger_type = __nds32__mfsr(NDS32_SR_INT_TRIGGER);
- irq_data = irq_get_irq_data(virq);
- if (!irq_data)
- return -EINVAL;
-
- if (int_trigger_type & (BIT(hw))) {
- irq_set_chip_and_handler(virq, &ativic32_chip, handle_edge_irq);
- type = IRQ_TYPE_EDGE_RISING;
- } else {
- irq_set_chip_and_handler(virq, &ativic32_chip, handle_level_irq);
- type = IRQ_TYPE_LEVEL_HIGH;
- }
-
- irqd_set_trigger_type(irq_data, type);
- return 0;
-}
-
-static const struct irq_domain_ops ativic32_ops = {
- .map = ativic32_irq_domain_map,
- .xlate = irq_domain_xlate_onecell
-};
-
-static irq_hw_number_t get_intr_src(void)
-{
- return ((__nds32__mfsr(NDS32_SR_ITYPE) & ITYPE_mskVECTOR) >> ITYPE_offVECTOR)
- - NDS32_VECTOR_offINTERRUPT;
-}
-
-static void ativic32_handle_irq(struct pt_regs *regs)
-{
- irq_hw_number_t hwirq = get_intr_src();
- generic_handle_domain_irq(root_domain, hwirq);
-}
-
-/*
- * TODO: convert nds32 to GENERIC_IRQ_MULTI_HANDLER so that this entry logic
- * can live in arch code.
- */
-asmlinkage void asm_do_IRQ(struct pt_regs *regs)
-{
- struct pt_regs *old_regs;
-
- irq_enter();
- old_regs = set_irq_regs(regs);
- ativic32_handle_irq(regs);
- set_irq_regs(old_regs);
- irq_exit();
-}
-
-int __init ativic32_init_irq(struct device_node *node, struct device_node *parent)
-{
- unsigned long int_vec_base, nivic, nr_ints;
-
- if (WARN(parent, "non-root ativic32 are not supported"))
- return -EINVAL;
-
- int_vec_base = __nds32__mfsr(NDS32_SR_IVB);
-
- if (((int_vec_base & IVB_mskIVIC_VER) >> IVB_offIVIC_VER) == 0)
- panic("Unable to use atcivic32 for this cpu.\n");
-
- nivic = (int_vec_base & IVB_mskNIVIC) >> IVB_offNIVIC;
- if (nivic >= ARRAY_SIZE(nivic_map))
- panic("The number of input for ativic32 is not supported.\n");
-
- nr_ints = nivic_map[nivic];
-
- root_domain = irq_domain_add_linear(node, nr_ints,
- &ativic32_ops, NULL);
-
- if (!root_domain)
- panic("%s: unable to create IRQ domain\n", node->full_name);
-
- return 0;
-}
-IRQCHIP_DECLARE(ativic32, "andestech,ativic32", ativic32_init_irq);
diff --git a/drivers/net/ethernet/faraday/Kconfig b/drivers/net/ethernet/faraday/Kconfig
index 3d1e9a302148..c699bd6bcbb9 100644
--- a/drivers/net/ethernet/faraday/Kconfig
+++ b/drivers/net/ethernet/faraday/Kconfig
@@ -6,7 +6,7 @@
config NET_VENDOR_FARADAY
bool "Faraday devices"
default y
- depends on ARM || NDS32 || COMPILE_TEST
+ depends on ARM || COMPILE_TEST
help
If you have a network (Ethernet) card belonging to this class, say Y.
@@ -19,24 +19,22 @@ if NET_VENDOR_FARADAY
config FTMAC100
tristate "Faraday FTMAC100 10/100 Ethernet support"
- depends on ARM || NDS32 || COMPILE_TEST
+ depends on ARM || COMPILE_TEST
depends on !64BIT || BROKEN
select MII
help
This driver supports the FTMAC100 10/100 Ethernet controller
- from Faraday. It is used on Faraday A320, Andes AG101 and some
- other ARM/NDS32 SoC's.
+ from Faraday. It is used on Faraday A320 and some other ARM SoC's.
config FTGMAC100
tristate "Faraday FTGMAC100 Gigabit Ethernet support"
- depends on ARM || NDS32 || COMPILE_TEST
+ depends on ARM || COMPILE_TEST
depends on !64BIT || BROKEN
select PHYLIB
select MDIO_ASPEED if MACH_ASPEED_G6
select CRC32
help
This driver supports the FTGMAC100 Gigabit Ethernet controller
- from Faraday. It is used on Faraday A369, Andes AG102 and some
- other ARM/NDS32 SoC's.
+ from Faraday. It is used on Faraday A369 and some other ARM SoC's.
endif # NET_VENDOR_FARADAY
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
index fcc46380e7c9..40c50fa2dd70 100644
--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -9,7 +9,7 @@ config VGA_CONSOLE
bool "VGA text console" if EXPERT || !X86
depends on !4xx && !PPC_8xx && !SPARC && !M68K && !PARISC && !SUPERH && \
(!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) && \
- !ARM64 && !ARC && !MICROBLAZE && !OPENRISC && !NDS32 && !S390 && !UML
+ !ARM64 && !ARC && !MICROBLAZE && !OPENRISC && !S390 && !UML
default y
help
Saying Y here will allow you to use Linux in text mode through a
diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
index 3ccb2c70add4..6a4645a57976 100755
--- a/scripts/recordmcount.pl
+++ b/scripts/recordmcount.pl
@@ -362,9 +362,6 @@ if ($arch eq "x86_64") {
$mcount_regex = "^\\s*([0-9a-fA-F]+):\\sR_RISCV_CALL(_PLT)?\\s_?mcount\$";
$type = ".quad";
$alignment = 2;
-} elsif ($arch eq "nds32") {
- $mcount_regex = "^\\s*([0-9a-fA-F]+):\\s*R_NDS32_HI20_RELA\\s+_mcount\$";
- $alignment = 2;
} elsif ($arch eq "csky") {
$mcount_regex = "^\\s*([0-9a-fA-F]+):\\s*R_CKCORE_PCREL_JSR_IMM26BY2\\s+_mcount\$";
$alignment = 2;
diff --git a/tools/include/asm/barrier.h b/tools/include/asm/barrier.h
index dc696c151e1c..8d378c57cb01 100644
--- a/tools/include/asm/barrier.h
+++ b/tools/include/asm/barrier.h
@@ -24,8 +24,6 @@
#include "../../arch/ia64/include/asm/barrier.h"
#elif defined(__xtensa__)
#include "../../arch/xtensa/include/asm/barrier.h"
-#elif defined(__nds32__)
-#include "../../arch/nds32/include/asm/barrier.h"
#else
#include <asm-generic/barrier.h>
#endif
diff --git a/tools/perf/arch/nds32/Build b/tools/perf/arch/nds32/Build
deleted file mode 100644
index e4e5f33c84d8..000000000000
--- a/tools/perf/arch/nds32/Build
+++ /dev/null
@@ -1 +0,0 @@
-perf-y += util/
diff --git a/tools/perf/arch/nds32/util/Build b/tools/perf/arch/nds32/util/Build
deleted file mode 100644
index d0bc205fe49a..000000000000
--- a/tools/perf/arch/nds32/util/Build
+++ /dev/null
@@ -1 +0,0 @@
-perf-y += header.o
diff --git a/tools/perf/arch/nds32/util/header.c b/tools/perf/arch/nds32/util/header.c
deleted file mode 100644
index ef9dbdbe7968..000000000000
--- a/tools/perf/arch/nds32/util/header.c
+++ /dev/null
@@ -1,29 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-// Copyright (C) 2005-2017 Andes Technology Corporation
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <api/fs/fs.h>
-#include "header.h"
-
-#define STR_LEN 1024
-
-char *get_cpuid_str(struct perf_pmu *pmu)
-{
- /* In nds32, we only have one cpu */
- char *buf = NULL;
- struct cpu_map *cpus;
- const char *sysfs = sysfs__mountpoint();
-
- if (!sysfs || !pmu || !pmu->cpus)
- return NULL;
-
- buf = malloc(STR_LEN);
- if (!buf)
- return NULL;
-
- cpus = cpu_map__get(pmu->cpus);
- sprintf(buf, "0x%x", cpus->nr - 1);
- cpu_map__put(cpus);
- return buf;
-}
diff --git a/tools/testing/selftests/vDSO/vdso_config.h b/tools/testing/selftests/vDSO/vdso_config.h
index 6188b16827d1..cdfed403ba13 100644
--- a/tools/testing/selftests/vDSO/vdso_config.h
+++ b/tools/testing/selftests/vDSO/vdso_config.h
@@ -53,10 +53,6 @@
#if __riscv_xlen == 32
#define VDSO_32BIT 1
#endif
-#else /* nds32 */
-#define VDSO_VERSION 4
-#define VDSO_NAMES 1
-#define VDSO_32BIT 1
#endif
static const char *versions[6] = {
--
2.25.1
^ permalink raw reply related [relevance 1%]
* [honister][PATCH 21/38] linux-yocto/5.10: update to v5.10.96
@ 2022-02-22 15:07 1% ` Anuj Mittal
0 siblings, 0 replies; 200+ results
From: Anuj Mittal @ 2022-02-22 15:07 UTC (permalink / raw)
To: openembedded-core
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:
f255ac9e8776 Linux 5.10.96
b43e9d2f6fc7 mtd: rawnand: mpc5121: Remove unused variable in ads5121_select_chip()
b63e120189fd block: Fix wrong offset in bio_truncate()
0b4e82403c84 fsnotify: invalidate dcache before IN_DELETE event
8bae6db29c7f usr/include/Makefile: add linux/nfc.h to the compile-test coverage
f36554de7897 dt-bindings: can: tcan4x5x: fix mram-cfg RX FIFO config
446ff1fc37c7 net: bridge: vlan: fix memory leak in __allowed_ingress
bc58a5bb9e6c ipv4: remove sparse error in ip_neigh_gw4()
ebc5b8e471e5 ipv4: tcp: send zero IPID in SYNACK messages
58f72918f942 ipv4: raw: lock the socket in raw_bind()
9ffc94a81b0f net: bridge: vlan: fix single net device option dumping
869f1704f1c2 Revert "ipv6: Honor all IPv6 PIO Valid Lifetime values"
699eef4ed910 net: hns3: handle empty unknown interrupt for VF
c9c81b393c74 net: cpsw: Properly initialise struct page_pool_params
729e54636b3e yam: fix a memory leak in yam_siocdevprivate()
93a6e920d8cc drm/msm/dpu: invalid parameter check in dpu_setup_dspp_pcc
0b7d8db87d0b drm/msm/hdmi: Fix missing put_device() call in msm_hdmi_get_phy
d1d4616d3e75 video: hyperv_fb: Fix validation of screen resolution
0a60d04abc62 ibmvnic: don't spin in tasklet
55258b505996 ibmvnic: init ->running_cap_crqs early
b469cf91fb63 ipv4: fix ip option filtering for locally generated fragments
9b4444197252 net: ipv4: Fix the warning for dereference
2f56c4845df9 net: ipv4: Move ip_options_fragment() out of loop
55402a461872 powerpc/perf: Fix power_pmu_disable to call clear_pmi_irq_pending only if PMI is pending
0bdbf93ee253 hwmon: (lm90) Mark alert as broken for MAX6654
c534287a57dc efi/libstub: arm64: Fix image check alignment at entry
3572205b194c rxrpc: Adjust retransmission backoff
5067f5699de7 octeontx2-pf: Forward error codes to VF
bd024e36f681 phylib: fix potential use-after-free
a839a79f4d6b net: phy: broadcom: hook up soft_reset for BCM54616S
57b2f3632b2f sched/pelt: Relax the sync of util_sum with util_avg
91b04e83c710 perf: Fix perf_event_read_local() time
cffed7e631b5 kernel: delete repeated words in comments
1af995c98b81 netfilter: conntrack: don't increment invalid counter on NF_REPEAT
129c71829d7f powerpc64/bpf: Limit 'ldbrx' to processors compliant with ISA v2.06
7a32824f7a9c NFS: Ensure the server has an up to date ctime before renaming
666f6ab882ea NFS: Ensure the server has an up to date ctime before hardlinking
4cd0ef621509 ipv6: annotate accesses to fn->fn_sernum
79c0b5287ded drm/msm/dsi: invalid parameter check in msm_dsi_phy_enable
3ab44a408bba drm/msm/dsi: Fix missing put_device() call in dsi_get_phy
82c310d04b0f drm/msm: Fix wrong size calculation
f57a99c9a55c net-procfs: show net devices bound packet types
87880e3803ce NFSv4: nfs_atomic_open() can race when looking up a non-regular file
ce8c552b88ca NFSv4: Handle case where the lookup of a directory fails
b48a05cee2c0 hwmon: (lm90) Reduce maximum conversion rate for G781
b26fed25e67b ipv4: avoid using shared IP generator for connected sockets
283aa5a5afbc ping: fix the sk_bound_dev_if match in ping_lookup
7bcb0c19abf4 hwmon: (lm90) Mark alert as broken for MAX6680
925cbd596aa2 hwmon: (lm90) Mark alert as broken for MAX6646/6647/6649
db044d97460e net: fix information leakage in /proc/net/ptype
feb770cc00a8 ipv6_tunnel: Rate limit warning messages
00849de10f79 scsi: bnx2fc: Flush destroy_work queue before calling bnx2fc_interface_put()
fcaf94c49a84 rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev
1dbb206730f3 rpmsg: char: Fix race between the release of rpmsg_ctrldev and cdev
20f667582189 usb: roles: fix include/linux/usb/role.h compile issue
6aeff8a7c742 i40e: fix unsigned stat widths
d2ed5997a94b i40e: Fix for failed to init adminq while VF reset
768eb705e638 i40e: Fix queues reservation for XDP
39896710f732 i40e: Fix issue when maximum queues is exceeded
9068bcb2195b i40e: Increase delay to 1 s after global EMP reset
b4c9b6afa3a7 powerpc/32: Fix boot failure with GCC latent entropy plugin
50f5d0a8bd0e powerpc/32s: Fix kasan_init_region() for KASAN
5d3af1dfdf0f powerpc/32s: Allocate one 256k IBAT instead of two consecutives 128k IBATs
08f090bb9b69 x86/MCE/AMD: Allow thresholding interface updates after init
791e5d5daa2c sched/membarrier: Fix membarrier-rseq fence command missing from query bitmask
afbde455ebf4 ocfs2: fix a deadlock when commit trans
97f75e7d4c30 jbd2: export jbd2_journal_[grab|put]_journal_head
3921d081c9c3 ucsi_ccg: Check DEV_INT bit only when starting CCG4
598a884c772c usb: typec: tcpm: Do not disconnect while receiving VBUS off
e3b131e30e61 USB: core: Fix hang in usb_kill_urb by adding memory barriers
3ca928c82427 usb: gadget: f_sourcesink: Fix isoc transfer for USB_SPEED_SUPER_PLUS
053274bc6baa usb: common: ulpi: Fix crash in ulpi_match()
20c51a4c5220 usb: xhci-plat: fix crash when suspend if remote wake enable
38d1bf67a310 usb-storage: Add unusual-devs entry for VL817 USB-SATA bridge
e0fcae7bd72b tty: Add support for Brainboxes UC cards.
7079283d32a2 tty: n_gsm: fix SW flow control encoding/handling
2683b0d5d7d5 serial: stm32: fix software flow control transfer
4628b26df51c serial: 8250: of: Fix mapped region size when using reg-offset property
94b23988c305 netfilter: nft_payload: do not update layer 4 checksum when mangling fragments
bf0d4ae5c6c2 arm64: errata: Fix exec handling in erratum 1418040 workaround
e92cac1dd803 KVM: x86: Update vCPU's runtime CPUID on write to MSR_IA32_XSS
6b55af102b39 drm/etnaviv: relax submit size limits
7a32d17fb73a perf/x86/intel/uncore: Fix CAS_COUNT_WRITE issue for ICX
a2c8e1d9e41b Revert "KVM: SVM: avoid infinite loop on NPF from bad address"
abae88fb37bf fsnotify: fix fsnotify hooks in pseudo filesystems
6ceac38e9b0c ceph: set pool_ns in new inode layout for async creates
e7be12ca7d39 ceph: properly put ceph_string reference after async create attempt
39986696fef5 tracing: Don't inc err_log entry count if entry allocation fails
d71b06aa9950 tracing/histogram: Fix a potential memory leak for kstrdup()
561a22d44acc PM: wakeup: simplify the output logic of pm_show_wakelocks()
b0f1cc093bc2 efi: runtime: avoid EFIv2 runtime services on Apple x86 machines
de7cc8bcca90 udf: Fix NULL ptr deref when converting from inline format
0a3cfd258923 udf: Restore i_lenAlloc when inode expansion fails
f08801252d26 scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP devices
ff6bdc205fd0 bpf: Guard against accessing NULL pt_regs in bpf_get_task_stack()
6520fedfcebb s390/hypfs: include z/VM guests with access control group set
c10e0627c71c s390/module: fix loading modules with a lot of relocations
ba7c71a777c1 net: stmmac: skip only stmmac_ptp_register when resume from suspend
11191406f2f1 net: sfp: ignore disabled SFP node
e651772adced media: venus: core: Drop second v4l2 device unregister
83d5196b65d1 Bluetooth: refactor malicious adv data check
77656fde3c01 Linux 5.10.95
ae2b20f27732 drm/vmwgfx: Fix stale file descriptors on failed usercopy
11ba2c6dfb90 select: Fix indefinitely sleeping task in poll_schedule_timeout()
a447d7f786ec KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU
12d3389b7af6 rcu: Tighten rcu_advance_cbs_nowake() checks
4d63363c88e3 bnx2x: Invalidate fastpath HSI version for VFs
fdcfabd0952d bnx2x: Utilize firmware 7.13.21.0
6a6acf927895 drm/i915: Flush TLBs before releasing backing store
c525532e4f87 Linux 5.10.94
c76c132444df scripts: sphinx-pre-install: Fix ctex support on Debian
133cef0b6154 scripts: sphinx-pre-install: add required ctex dependency
15ce9329a532 ath10k: Fix the MTU size on QCA9377 SDIO
25b1a6d33039 mtd: nand: bbt: Fix corner case in bad block table handling
8104e589fa4a lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
629250370052 mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
33bb7f027b06 lib82596: Fix IRQ check in sni_82596_probe
078b5a4498e0 scripts/dtc: dtx_diff: remove broken example from help text
21513c461557 dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
23bcf3615be7 dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
66467cc87a35 dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
4496e4a427a0 net: mscc: ocelot: fix using match before it is set
ee64479c9ce6 net: sfp: fix high power modules without diagnostic monitoring
819e76bc572e net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
4691c9f047a8 bcmgenet: add WOL IRQ check
6973b38b9dba net_sched: restore "mpu xxx" handling
20949c381646 net: bonding: fix bond_xmit_broadcast return value error bug
799730d182d1 arm64: dts: qcom: msm8996: drop not documented adreno properties
f6d4c0e017ec devlink: Remove misleading internal_flags from health reporter dump
2e51a761b7ab perf probe: Fix ppc64 'perf probe add events failed' case
59b44f77601d dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
0078f053714d dmaengine: at_xdmac: Fix lld view setting
7ab120636d4e dmaengine: at_xdmac: Fix concurrency over xfers_list
b5b27c5e3315 dmaengine: at_xdmac: Print debug message after realeasing the lock
c536b351a75f dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
cd22e22e8eac dmaengine: at_xdmac: Don't start transactions at tx_submit level
68a83051c8b1 perf script: Fix hex dump character output
7b9d40e9f60d libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
cd5c24d2230f gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
7f2ca96bd266 xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
2b1415c60b2e netns: add schedule point in ops_exit_list()
edc09548ffc5 inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
69e7e979ed66 taskstats: Cleanup the use of task->exit_code
56daa21414e9 virtio_ring: mark ring unused on error
0c4ebcb00d88 vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
c736ec01a2fc rtc: pxa: fix null pointer dereference
8b8ff4c793ee HID: vivaldi: fix handling devices not using numbered reports
d7544cf6939c net: axienet: increase default TX ring size to 128
557829d42d1f net: axienet: fix for TX busy handling
41831d496772 net: axienet: fix number of TX ring slots for available check
6301f3566aef net: axienet: Fix TX ring slot available check
7a3d3d7f6d7b net: axienet: limit minimum TX ring size
2f548489d64d net: axienet: add missing memory barriers
bcc5d57e6091 net: axienet: reset core on initialization prior to MDIO access
46c0ccaff285 net: axienet: Wait for PhyRstCmplt after core reset
34942a228aec net: axienet: increase reset timeout
a66b9bccf732 net/smc: Fix hung_task when removing SMC-R devices
51b52cf35485 clk: si5341: Fix clock HW provider cleanup
fe40f7aef387 clk: Emit a stern warning with writable debugfs enabled
38221afa03af af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
a49e402f2309 f2fs: fix to reserve space for IO align feature
39ad0581176d f2fs: compress: fix potential deadlock of compress file
e1840365ed4f parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
d806eb5f4e23 net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
38c798384b90 net/fsl: xgmac_mdio: Add workaround for erratum A-009885
734f4b0f831e ipv4: avoid quadratic behavior in netns dismantle
86f0587f7432 ipv4: update fib_info_cnt under spinlock protection
10e99ae9b5da perf evsel: Override attr->sample_period for non-libpfm4 events
58fa3e900255 xdp: check prog type before updating BPF link
38ee417f59c8 bpftool: Remove inclusion of utilities.mak from Makefiles
2bcab471a26f block: Fix fsync always failed if once failed
5e59f885353e powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
19aaef651948 powerpc/cell: Fix clang -Wimplicit-fallthrough warning
4cb7aba1e086 Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
78cf5f63a3a9 dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
16ad0aa917c9 RDMA/rxe: Fix a typo in opcode name
885860717c29 RDMA/hns: Modify the mapping attribute of doorbell to device
57cd8597c3ef dmaengine: uniphier-xdmac: Fix type of address variables
4fe77b7cd272 scsi: core: Show SCMD_LAST in text form
b30240911da4 Bluetooth: hci_sync: Fix not setting adv set duration
55698d11c8da Documentation: fix firewire.rst ABI file path error
5d38cbf66dd7 Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization
abecf9d74836 Documentation: ACPI: Fix data node reference documentation
d1e85fcd73b5 Documentation: dmaengine: Correctly describe dmatest with channel unset
f6736bd81db4 media: correct MEDIA_TEST_SUPPORT help text
55b10b88ac86 drm/vc4: hdmi: Make sure the device is powered with CEC
81ac08a800b0 media: rcar-csi2: Optimize the selection PHTW register
0baa3729d2eb can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
f62bf6ee4fa3 firmware: Update Kconfig help text for Google firmware
12224c0d19f3 of: base: Improve argument length mismatch error
7bb99c7e13f8 drm/radeon: fix error handling in radeon_driver_open_kms
0ca7ec6db20c ext4: don't use the orphan list when migrating an inode
679fb065326b ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
d60e9daba29e ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
f26b24b4c115 ext4: fast commit may miss tracking unwritten range during ftruncate
04b562730677 ext4: use ext4_ext_remove_space() for fast commit replay delete range
53998b3f6dcd ext4: Fix BUG_ON in ext4_bread when write quota data
da364ab35892 ext4: set csum seed in tmp inode while migrating to extents
e4221629d5e1 ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
720508dd118d ext4: initialize err_blk before calling __ext4_get_inode_loc
f9ed0ea0a9fc ext4: fix a possible ABBA deadlock due to busy PA
115b762b48ab ext4: make sure quota gets properly shutdown on error
762e4c33e9e5 ext4: make sure to reset inode lockdep class when quota enabling fails
f8c3ec2e21b9 btrfs: respect the max size in the header when activating swap file
e7764bccae77 btrfs: check the root node for uptodate before returning it
09e0ef287e93 btrfs: fix deadlock between quota enable and other quota operations
56f974d583fc xfrm: fix policy lookup for ipv6 gre packets
84166c1177f3 PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
7aeeb9fe9ca0 PCI: pci-bridge-emul: Correctly set PCIe capabilities
af1d0acdaca7 PCI: pci-bridge-emul: Fix definitions of reserved bits
0f2ae6691e73 PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
2a0d437d8a76 PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
def2825b09ec PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
6cbe8f8deb62 PCI: xgene: Fix IB window setup
e09f47e77b6e powerpc/64s/radix: Fix huge vmap false positive
eb44b1386af5 parisc: Fix lpa and lpa_user defines
9b78ee2341d4 drm/bridge: analogix_dp: Make PSR-exit block less
8cbbf4a6f1ac drm/nouveau/kms/nv04: use vzalloc for nv04_display
605583fcccb5 drm/etnaviv: limit submit sizes
6c1e3d8b1bff device property: Fix fwnode_graph_devcon_match() fwnode leak
ecb71f7bd584 s390/mm: fix 2KB pgtable release race
798754ba48b7 iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
c524f4cfb3e5 tracing/kprobes: 'nmissed' not showed correctly for kretprobe
b72075e395b3 cputime, cpuacct: Include guest time in user time in cpuacct.stat
13518f058fde serial: Fix incorrect rs485 polarity on uart open
9668cf9e4af0 fuse: Pass correct lend value to filemap_write_and_wait_range()
9fbaddd783fd xen/gntdev: fix unmap notification order
67b078d996f7 spi: uniphier: Fix a bug that doesn't point to private data correctly
05026c4e94c9 tpm: fix NPE on probe for missing device
76006d33f1c8 ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
4f0762ac32b5 crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
9e6ff2d5725b crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
2031e0246e45 crypto: omap-aes - Fix broken pm_runtime_and_get() usage
43e94431c313 rpmsg: core: Clean up resources on announce_create failure.
082ff9e12b4a phy: mediatek: Fix missing check in mtk_mipi_tx_probe
ff08cf1e34a1 ASoC: mediatek: mt8183: fix device_node leak
f28672eef4a9 ASoC: mediatek: mt8173: fix device_node leak
0df51040089d scsi: sr: Don't use GFP_DMA
de9a936b04c5 MIPS: Octeon: Fix build errors using clang
da7df943e254 i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
f09f7ccb28bb irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
bc2d961d821b MIPS: OCTEON: add put_device() after of_find_device_by_node()
ce34b03a71b6 udf: Fix error handling in udf_new_inode()
15be042e7fd9 powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
f2e658d9bda2 powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
044164b4198e selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
21125e011620 powerpc/40x: Map 32Mbytes of memory at startup
c330442f46ea MIPS: Loongson64: Use three arguments for slti
af8d07735083 ALSA: seq: Set upper limit of processed events
297210783a7a scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
dfde7afed711 dm: fix alloc_dax error handling in alloc_dev
2e2086f49e08 nvmem: core: set size for sysfs bin file
4a273a94bda8 w1: Misuse of get_user()/put_user() reported by sparse
87e91d6c6a5e KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
23bb3f01ceb5 KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
03c1595a181c powerpc/powermac: Add missing lockdep_register_key()
df29c01b9fbe clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
30d35a1abd9e i2c: mpc: Correct I2C reset procedure
4b25aad655c9 powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
25714ad6bf5e i2c: i801: Don't silently correct invalid transfer size
75e2cfa5fae9 powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
a83639521a4f powerpc/btext: add missing of_node_put
fc10d8f00a89 powerpc/cell: add missing of_node_put
297ff7d5f157 powerpc/powernv: add missing of_node_put
c83ba875d7be powerpc/6xx: add missing of_node_put
d240b08d8ac4 x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
3681e9f3f0f7 parisc: Avoid calling faulthandler_disabled() twice
f2a27dd7a2de random: do not throw away excess input to crng_fast_load
f8fdebfb4b37 serial: core: Keep mctrl register state and cached copy in sync
a03fd1b19891 serial: pl010: Drop CR register reset on set_termios
40ac33892630 regulator: qcom_smd: Align probe function with rpmh-regulator
3dc751213fe9 net: gemini: allow any RGMII interface mode
1063de897563 net: phy: marvell: configure RGMII delays for 88E1118
00580670b98b mlxsw: pci: Avoid flow control for EMAD packets
eaf8cffcf5d5 dm space map common: add bounds check to sm_ll_lookup_bitmap()
5850bef8e955 dm btree: add a defensive bounds check to insert_at()
754b663ea916 mac80211: allow non-standard VHT MCS-10/11
e8da60b3a629 net: mdio: Demote probed message to debug print
6b22c9824ddb btrfs: remove BUG_ON(!eie) in find_parent_nodes
623c65bc7336 btrfs: remove BUG_ON() in find_parent_nodes()
44cbd2a16a07 ACPI: battery: Add the ThinkPad "Not Charging" quirk
7b6dc07c6e69 amdgpu/pm: Make sysfs pm attributes as read-only for VFs
516e332d6fce drm/amdgpu: fixup bad vram size on gmc v8
ee88ff140de2 ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
8544074762e2 ACPICA: Fix wrong interpretation of PCC address
e70be176961d ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
8ea9216d20b7 ACPICA: Utilities: Avoid deleting the same object twice in a row
fcfd8282c5d2 ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
e3a51d6c90a8 jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
e35cb5b122fc drm/etnaviv: consider completed fence seqno in hang check
a0b13335a342 xfrm: rate limit SA mapping change message to user space
0b7beb2fea8f Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
6ac117edac18 ath11k: Fix napi related hang
756a7188b277 um: registers: Rename function names to avoid conflicts and build problems
d817d10f7a00 iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
f266e1c5bf88 iwlwifi: mvm: Fix calculation of frame length
6e44b600543c iwlwifi: remove module loading failure message
febab6b60d61 iwlwifi: fix leaks/bad data after failed firmware load
81d2e96ababb PM: AVS: qcom-cpr: Use div64_ul instead of do_div
c0a1d844e3e7 rtw88: 8822c: update rx settings to prevent potential hw deadlock
3ef25f3122c0 ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
e10de3105547 usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
282286c632a2 cpufreq: Fix initialization of min and max frequency QoS requests
37b25de3af10 PM: runtime: Add safety net to supplier device release
5dfc6fa0b8c2 arm64: tegra: Adjust length of CCPLEX cluster MMIO region
b68c56a149e4 arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
b6f7f0ad5af5 audit: ensure userspace is penalized the same as the kernel when under pressure
5d54ed155031 mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
51a5156bb779 media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()
f6bc6b178ce1 media: igorplugusb: receiver overflow should be reported
d698e024be2e HID: quirks: Allow inverting the absolute X/Y values
59f03633463f bpf: Do not WARN in bpf_warn_invalid_xdp_action()
0e8805f73b69 net: bonding: debug: avoid printing debug logs when bond is not notifying peers
8c72de32ff13 x86/mce: Mark mce_read_aux() noinstr
1ad3e60f1fec x86/mce: Mark mce_end() noinstr
f21ca973b43f x86/mce: Mark mce_panic() noinstr
de360d944386 x86/mce: Allow instrumentation during task work queueing
af371e0abb6c ath11k: Avoid false DEADLOCK warning reported by lockdep
aec69e2f33b4 selftests/ftrace: make kprobe profile testcase description unique
07ecabf15ad3 gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
7e09f9d15e43 net: phy: prefer 1000baseT over 1000baseKX
443133330a5d net-sysfs: update the queue counts in the unregistration path
58b4c1ce8328 ath10k: Fix tx hanging
fcba0bce3357 ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
93a108d466f8 iwlwifi: mvm: avoid clearing a just saved session protection id
ec01e0fe2184 iwlwifi: mvm: synchronize with FW after multicast commands
c1976a424807 thunderbolt: Runtime PM activate both ends of the device link
830e5d1b4344 media: m920x: don't use stack on USB reads
c33f0f22bfea media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
526b6c9b4521 media: rcar-vin: Update format alignment constraints
74e60c1dce06 media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
d0e3ab637de1 drm: rcar-du: Fix CRTC timings when CMM is used
e61aa46d0f27 x86/mm: Flush global TLB when switching to trampoline page-table
0946fdd9290a floppy: Add max size check for user space request
409d45bcd381 usb: uhci: add aspeed ast2600 uhci support
d0aec428c072 arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
fcb45ac39f90 ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win
b8b2e74a8751 ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
cda755506df4 ACPI: Change acpi_device_always_present() into acpi_device_override_status()
b029625063c1 ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
cf3b1a160dc2 media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions
adbe14867277 ath11k: Avoid NULL ptr access during mgmt tx cleanup
ab523ea096ef rsi: Fix out-of-bounds read in rsi_read_pkt()
752587675068 rsi: Fix use-after-free in rsi_rx_done_handler()
6036500fdf77 mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
8a6371d84c5f crypto: jitter - consider 32 LSB for APT
240cf5d3cb5e HSI: core: Fix return freed object in hsi_new_client
f4295b7dca87 gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
f0653cd4da66 tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
b8d10f601f22 drm/bridge: megachips: Ensure both bridges are probed before registration
43fc9e267e2e mlxsw: pci: Add shutdown method in PCI driver
b2e921fa9219 soc: ti: pruss: fix referenced node in error message
07fbbc4dc79d drm/amdgpu/display: set vblank_disable_immediate for DC
019fe9723a83 drm/amd/display: check top_pipe_to_program pointer
3c3c0b6c4ae9 ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
f54d8cd831be EDAC/synopsys: Use the quirk for version instead of ddr version
0b85d73fdbc8 media: b2c2: Add missing check in flexcop_pci_isr:
c978d39a8b14 HID: apple: Do not reset quirks when the Fn key is not found
2df002e3276b drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
5aa57672c66c usb: gadget: f_fs: Use stream_open() for endpoint files
129e8faaee97 ath11k: Fix crash caused by uninitialized TX ring
e8b271f2aadd media: atomisp: handle errors at sh_css_create_isp_params()
ebe9c978d9e7 batman-adv: allow netlink usage in unprivileged containers
ff452db96163 ARM: shmobile: rcar-gen2: Add missing of_node_put()
ff2138d6c2a3 media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
51ef6582a218 media: atomisp: set per-device's default mode
ac08140677c0 media: atomisp: fix try_fmt logic
518e059789f6 drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
e3ba02b043f2 drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
2f13f10fddf4 ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
a9d2ccfc7d2c selftests/bpf: Fix bpf_object leak in skb_ctx selftest
b207356933f4 drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
db1e878373bf fs: dlm: filter user dlm messages for kernel locks
f9c9a46efd94 Bluetooth: Fix debugfs entry leak in hci_register_dev()
852d7d436fd1 ARM: dts: omap3-n900: Fix lp5523 for multi color
b5793aff11d7 of: base: Fix phandle argument length mismatch error message
e16e836d510c clk: bm1880: remove kfrees on static allocations
36d46e21c9c4 ASoC: fsl_asrc: refine the check of available clock divider
5a6864e2e6ab RDMA/cxgb4: Set queue pair state when being queried
80524c8cdf29 ASoC: fsl_mqs: fix MODULE_ALIAS
74988d017dd1 powerpc/xive: Add missing null check after calling kmalloc
588e0b81ce38 mips: bcm63xx: add support for clk_set_parent()
e3de89d010c0 mips: lantiq: add support for clk_set_parent()
8f8468a089b0 arm64: tegra: Remove non existent Tegra194 reset
702902fc7fb0 arm64: tegra: Fix Tegra194 HDA {clock,reset}-names ordering
24b047d72c77 counter: stm32-lptimer-cnt: remove iio counter abi
a39460610452 misc: lattice-ecp3-config: Fix task hung when firmware load failed
696a50abbc7c ASoC: samsung: idma: Check of ioremap return value
d491a2c2cf96 ASoC: mediatek: Check for error clk pointer
c73ccdd62d21 phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
d781f4cd8c71 scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
6e2a16954459 iommu/iova: Fix race between FQ timeout and teardown
57bc8985753c ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
676049a3d2c6 iommu/amd: Restore GA log/tail pointer on host resume
c2bd7c31de1a iommu/amd: Remove iommu_init_ga()
62ea255f2bde dmaengine: pxa/mmp: stop referencing config->slave_id
0be9ae1e532e mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
88d78b25db1f mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
51b8e814bcef clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell
dff359e04260 of: unittest: 64 bit dma address test requires arch support
918105df78b7 of: unittest: fix warning on PowerPC frame size warning
0e04518b1dd9 ASoC: rt5663: Handle device_property_read_u32_array error codes
7c0d9c815ce8 RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
2432d325f946 RDMA/core: Let ib_find_gid() continue search even after empty entry
d77916df161b powerpc/powermac: Add additional missing lockdep_register_key()
8b3783e517f6 PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
7be2a0bcaf8e RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
e19469468b7b scsi: ufs: Fix race conditions related to driver data
ed43b2e048fe iommu/io-pgtable-arm: Fix table descriptor paddr formatting
e9e4d1fb4590 openrisc: Add clone3 ABI wrapper
551a785c26f6 binder: fix handling of error during copy
88ddf033a5e4 char/mwave: Adjust io port register size
8937aee4c0fa ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
bcd533417fd0 ALSA: oss: fix compile error when OSS_DEBUG is enabled
fd99aeb97845 clocksource: Avoid accidental unstable marking of clocksources
cacc6c30e3eb clocksource: Reduce clocksource-skew threshold
86ad478c99d2 powerpc/32s: Fix shift-out-of-bounds in KASAN init
ef798cd035f3 powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC
58014442a9e8 powerpc/irq: Add helper to set regs->softe
c9ffa84a3bd1 powerpc/perf: move perf irq/nmi handling details into traps.c
a0758b3be46d powerpc/perf: MMCR0 control for PMU registers under PMCC=00
f4df6db5b0b8 powerpc/64s: Convert some cpu_setup() and cpu_restore() functions to C
a9c9d2ff6423 dt-bindings: thermal: Fix definition of cooling-maps contribution property
2bd8d937957f ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
5a821af769bb powerpc/prom_init: Fix improper check of prom_getprop()
9ca761ef946d clk: imx8mn: Fix imx8mn_clko1_sels
999528d8a749 scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
c5f414d69ac9 RDMA/hns: Validate the pkey index
04a032ea2498 RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"
84cd5c029d48 ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
180e9d7384c6 ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
49d76154ba8d ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
f871cd8ee0f0 ext4: avoid trim error on fs with small groups
99590e820feb net: mcs7830: handle usb read errors properly
2b948524ae65 iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
04ce9e2aeda7 pcmcia: fix setting of kthread task states
5064bfe046b0 can: xilinx_can: xcan_probe(): check for error irq
b6dd1577bc92 can: softing: softing_startstop(): fix set but not used variable warning
b9ac866c23bb tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
fb46223c9f94 tpm: add request_locality before write TPM_INT_ENABLE
20edf903a3a5 can: mcp251xfd: add missing newline to printed strings
d71fca5d0167 regmap: Call regmap_debugfs_exit() prior to _init()
838acddcdf75 netrom: fix api breakage in nr_setsockopt()
0d04479857bc ax25: uninitialized variable in ax25_setsockopt()
27e9910c4516 spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
9d6350cf8e5a Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
9defd7d4c084 lib/mpi: Add the return value check of kcalloc()
e801f81cee3c net/mlx5: Set command entry semaphore up once got index free
d2b9ce705d79 Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
67e1a449a165 net/mlx5e: Don't block routes with nexthop objects in SW
cc40fa05c0a6 net/mlx5e: Fix page DMA map/unmap attributes
b3dda01d1d47 debugfs: lockdown: Allow reading debugfs files that are not world readable
b9b5da3e187e HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
541c3a044b46 HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
c47f842e0c3c HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
cf5ad827ee69 HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
94177fcecc35 usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
4579954bf4cc Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
f6bf3d66393b Bluetooth: hci_bcm: Check for error irq
f5e4f68d57d6 fsl/fman: Check for null pointer after calling devm_ioremap
60aca6fdc167 staging: greybus: audio: Check null pointer
a1068bfee47a rocker: fix a sleeping in atomic bug
2db344725e17 ppp: ensure minimum packet size in ppp_write()
45643b1b6ce1 netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
8772700a9f1e bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
342332fb0be6 bpf: Don't promote bogus looking registers after null check.
0036c78c492a netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
2e718389b986 power: reset: mt6397: Check for null res pointer
4210c35fe81b pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
2dee347f356d pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
0f03132191ba ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
595e1ec55b30 x86/mce/inject: Avoid out-of-bounds write when setting flags
df1268181928 hwmon: (mr75203) fix wrong power-up delay value
aea5302d9ddc x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
70eec71f32eb Bluetooth: hci_qca: Stop IBS timer during BT OFF
1d4e722b62d2 software node: fix wrong node passed to find nargs_prop
f8f3c1720d77 backlight: qcom-wled: Respect enabled-strings in set_brightness
de79bcbfaf4d backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
c79f9b8d8e26 backlight: qcom-wled: Override default length with qcom,enabled-strings
bf4daf6153c9 backlight: qcom-wled: Fix off-by-one maximum with default num_strings
09aed85e8c98 backlight: qcom-wled: Pass number of elements to read to read_u32_array
f4ed4fc504fd backlight: qcom-wled: Validate enabled string indices in DT
e668ac6506d3 bpftool: Enable line buffering for stdout
009bb7ee1577 Bluetooth: L2CAP: Fix using wrong mode
1a2241ad400b um: virtio_uml: Fix time-travel external time propagation
8411722e5652 um: fix ndelay/udelay defines
b2b1b490bd29 selinux: fix potential memleak in selinux_add_opt()
3253cf091464 mmc: meson-mx-sdio: add IRQ check
decb2099549d mmc: meson-mx-sdhc: add IRQ check
bdc6c9fc5f78 iwlwifi: mvm: test roc running status bits before removing the sta
a750fcd604a6 iwlwifi: mvm: fix 32-bit build in FTM
86b0122d2682 ARM: dts: armada-38x: Add generic compatible to UART nodes
1f5428e43806 arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
874b97e86278 arm64: dts: marvell: cn9130: add GPIO and SPI aliases
407ef1db4036 usb: ftdi-elan: fix memory leak on device disconnect
2a65da5a1ea3 ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
47dd693c94bf xfrm: state and policy should fail if XFRMA_IF_ID 0
db369047e3b3 xfrm: interface with if_id 0 should return error
37441ddadc1e media: hantro: Fix probe func error path
3849ec830bf7 drm/tegra: vic: Fix DMA API misuse
b230114bc57a drm/bridge: ti-sn65dsi86: Set max register for regmap
db97fc2c4425 drm/msm/dpu: fix safe status debugfs file
3580055d1fca arm64: dts: qcom: ipq6018: Fix gpio-ranges property
6f20a5a98a90 arm64: dts: qcom: c630: Fix soundcard setup
394ee480aa3e ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
f6e4a6cbdb6f media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
1a8869de328a media: msi001: fix possible null-ptr-deref in msi001_probe()
a79327bb0191 media: dw2102: Fix use after free
958a8819d414 ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
3e51460638a6 ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
b35263f000a5 crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
1f5b81874f27 crypto: stm32/cryp - fix bugs and crash in tests
1f6151b0774b crypto: stm32/cryp - fix lrw chaining mode
2bd40e3a3aa2 crypto: stm32/cryp - fix double pm exit
533af1621d1c crypto: stm32/cryp - check early input data
5deb24e50372 crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
e9e0dd5da8ca crypto: stm32/cryp - fix CTR counter carry
c40b1bc851e0 crypto: stm32 - Fix last sparse warning in stm32_cryp_check_ctr_counter
93033bbbdc25 selftests: harness: avoid false negatives if test has no ASSERTs
f568fd97d751 selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
d21b47c60737 x86/uaccess: Move variable into switch case statement
3e801ea43c4b xfrm: fix a small bug in xfrm_sa_len()
b87034d7a2a8 mwifiex: Fix possible ABBA deadlock
0836f9404017 rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
027165c491e4 drm/msm/dp: displayPort driver need algorithm rational
268f35245650 sched/rt: Try to restart rt period timer when rt runtime exceeded
bb0579ab5077 wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
b4b911b1648c media: si2157: Fix "warm" tuner state detection
7009a5fbc589 media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
df79d2bf95e0 media: dib8000: Fix a memleak in dib8000_init()
f0cb43a2c674 arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
88ed31aab481 arm64: lib: Annotate {clear, copy}_page() as position-independent
69e402a98541 bpf: Remove config check to enable bpf support for branch records
924886fa2246 bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
218d952160f7 bpf: Adjust BTF log size limit.
b77ef5b4ead6 sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
d7d5b3bc5263 sched/fair: Fix detection of per-CPU kthreads waking a task
ec121517ac8d Bluetooth: btmtksdio: fix resume failure
2a7edcb3ef72 staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
49f5cd2b7c41 staging: rtl8192e: return error code from rtllib_softmac_init()
04fdd426cef2 floppy: Fix hang in watchdog when disk is ejected
45bbe008013f serial: amba-pl011: do not request memory region twice
8409d2394cca tty: serial: uartlite: allow 64 bit address
a001a15ab374 arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
75919207c16a arm64: dts: ti: k3-j721e: Fix the L2 cache sets
2dcfa3c76596 arm64: dts: ti: k3-j7200: Fix the L2 cache sets
f277978d6c46 drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
3ca1b3b82fe7 drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode()
96e05d2d9370 thermal/drivers/imx8mm: Enable ADC when enabling monitor
ef72449e2d79 ACPI: EC: Rework flushing of EC work while suspended to idle
c0acd5a09796 cgroup: Trace event cgroup id fields should be u64
e7e178e26418 arm64: dts: qcom: msm8916: fix MMC controller aliases
894d91c6334b netfilter: bridge: add support for pppoe filtering
13f64bbe4255 thermal/drivers/imx: Implement runtime PM support
c3a59f34e87c media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'
50c4244906d6 media: venus: core: Fix a potential NULL pointer dereference in an error handling path
eeefa2eae8fc media: venus: core, venc, vdec: Fix probe dependency error
53f65afc260f media: venus: pm_helpers: Control core power domain manually
89f518b153d1 media: coda: fix CODA960 JPEG encoder buffer overflow
1da628d351a9 media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
2028fb832da6 media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
e8d78f924f02 media: imx-pxp: Initialize the spinlock prior to using it
621e8ce75d66 media: rcar-csi2: Correct the selection of hsfreqrange
ad52b9890b83 mfd: atmel-flexcom: Use .resume_noirq
46d6a2311409 mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
f93c9aa1d36f tty: serial: atmel: Call dma_async_issue_pending()
755a6c873b9c tty: serial: atmel: Check return code of dmaengine_submit()
bd85b2e77aa9 arm64: dts: ti: k3-j721e: correct cache-sets info
32e9947e6639 ath11k: Use host CE parameters for CE interrupts configuration
6a49acfacab5 crypto: qat - fix undetected PFVF timeout in ACK loop
475ac5c5653f crypto: qat - make pfvf send message direction agnostic
ee1c74c3c9c2 crypto: qat - remove unnecessary collision prevention step in PFVF
472f76835200 crypto: qat - fix spelling mistake: "messge" -> "message"
ae766527e6b7 ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco
eab4204588a0 mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
867d4ace48da crypto: qce - fix uaf on qce_skcipher_register_one
e19b3c1b5768 crypto: qce - fix uaf on qce_ahash_register_one
5de640f59f99 media: dmxdev: fix UAF when dvb_register_device() fails
1d64e2bd2222 arm64: dts: renesas: cat875: Add rx/tx delays
a33eef23a658 drm/vboxvideo: fix a NULL vs IS_ERR() check
43220a61e7b8 fs: dlm: fix build with CONFIG_IPV6 disabled
0d7c5d10e7db tee: fix put order in teedev_close_context()
097e601eb887 ath11k: reset RSN/WPA present state for open BSS
fa51addd391d ath11k: clear the keys properly via DISABLE_KEY
df94b37e902b ath11k: Fix ETSI regd with weather radar overlap
ffc9019bd991 Bluetooth: stop proccessing malicious adv data
3273541fed60 memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
55917db35976 fs: dlm: don't call kernel_getpeername() in error_report()
98923ebb034b fs: dlm: use sk->sk_socket instead of con->sock
6edd1bd8e3d8 arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
eb1f75fa2458 arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
6f012f2c445b arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
96d710b1c6ff arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
0b57480ed51a media: aspeed: Update signal status immediately to ensure sane hw state
0ff0ae69d27c media: em28xx: fix memory leak in em28xx_init_dev
b441d9428735 media: aspeed: fix mode-detect always time out at 2nd run
8d132d9dd8ba media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
fc2b95e7aeae media: atomisp: fix enum formats logic
6e5353238c55 media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
6cbabad304c4 media: staging: media: atomisp: pci: Balance braces around conditional statements in file atomisp_cmd.c
22b0b68f7d9f media: atomisp: fix ifdefs in sh_css.c
0bf5e8af6eb6 media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid()
3cb3e66f583c media: atomisp: do not use err var when checking port validity for ISP2400
08e43223fb4e media: atomisp: fix inverted logic in buffers_needed()
fb370f6dc7d5 media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
1daacf9bb69a media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities()
e1da9301cf54 media: videobuf2: Fix the size printk format
90807ab437e8 mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
9bfed11dcf59 ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
2fe056d9791a wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
22406ed4e389 wcn36xx: populate band before determining rate on RX
92fea7bd5af3 wcn36xx: Put DXE block into reset before freeing memory
0d53c47f6ab5 wcn36xx: Release DMA channel descriptor allocations
1850195a852d wcn36xx: Fix DMA channel enable/disable cycle
38a7842889f5 wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
fcb267bb9577 wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
e53ff4dd7095 drm/vc4: hdmi: Set a default HSM rate
b9c2343373f6 clk: bcm-2835: Remove rounding up the dividers
836dd37fe2bb clk: bcm-2835: Pick the closest clock rate
88f1b613c37f Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
9ddfa1c19191 drm/rockchip: dsi: Reconfigure hardware on resume()
58904ed18628 drm/rockchip: dsi: Disable PLL clock on bind error
6215cde02085 drm/rockchip: dsi: Hold pm-runtime across bind/unbind
8ccaafa1caf0 drm/rockchip: dsi: Fix unbalanced clock on probe error
9bc19022aa08 drm/panel: innolux-p079zca: Delete panel on attach() failure
b01b7b868479 drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
0499c863a8db drm: fix null-ptr-deref in drm_dev_init_release()
7798757013ec drm/bridge: display-connector: fix an uninitialized pointer in probe()
cb5813b0e591 Bluetooth: L2CAP: Fix not initializing sk_peer_pid
ed0b1fd3ec6e drm/ttm: Put BO in its memory manager's lru list
7b9fa915a58d shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
6c6f86bb618b mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages
e04b1dfe15ce dma/pool: create dma atomic pool only if dma zone has managed pages
d2e572411738 mm_zone: add function to check if managed dma zone exists
2142a7e9bd1f PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
45c74f4f54db dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
191a24ceae75 gpu: host1x: Add back arm_iommu_detach_device()
068067453690 iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
3dae11f8e381 lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
e4a2c924a17e iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
256302cb2f86 can: softing_cs: softingcs_probe(): fix memleak on registration failure
aa57725e2d2a media: cec-pin: fix interrupt en/disable handling
2e566cacc321 media: stk1160: fix control-message timeouts
1a0ca711dff6 media: pvrusb2: fix control-message timeouts
2dbf430ead59 media: redrat3: fix control-message timeouts
6e9c120bf956 media: dib0700: fix undefined behavior in tuner shutdown
5e98ac260de6 media: s2255: fix control-message timeouts
09b0b918a69b media: cpia2: fix control-message timeouts
d90833106c09 media: em28xx: fix control-message timeouts
2182575c83f9 media: mceusb: fix control-message timeouts
460525acc953 media: flexcop-usb: fix control-message timeouts
7cac8a562427 media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
1da0b1cd4212 rtc: cmos: take rtc_lock while reading from CMOS
14f6cfe0d790 tools/nolibc: fix incorrect truncation of exit code
5e258640ba54 tools/nolibc: i386: fix initial stack alignment
06f7528d641b tools/nolibc: x86-64: Fix startup code bug
98259dd54e8e x86/gpu: Reserve stolen memory for first integrated Intel GPU
e2a17dcad56e mtd: rawnand: davinci: Rewrite function description
8933138a6660 mtd: rawnand: davinci: Avoid duplicated page read
677764634b42 mtd: rawnand: davinci: Don't calculate ECC when reading page
a8a607b0049d mtd: Fixed breaking list in __mtd_del_partition.
ff10cd7bb295 mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
538a5e208e7d mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
777a700ccfa6 nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()
08283b076f4e f2fs: fix to do sanity check in is_alive()
57cfc965e375 HID: wacom: Avoid using stale array indicies to read contact count
7fd22c99bbed HID: wacom: Ignore the confidence flag when a touch is removed
9a4800e0f6a5 HID: wacom: Reset expected and received contact counts at the same time
c2e39d5df028 HID: uhid: Fix worker destroying device without any protection
aa1346113c75 KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9bebdb447d39b9bca340f087bff6a008f199f34b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
---
.../linux/linux-yocto-rt_5.10.bb | 6 ++---
.../linux/linux-yocto-tiny_5.10.bb | 8 +++----
meta/recipes-kernel/linux/linux-yocto_5.10.bb | 24 +++++++++----------
3 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
index a8e8e604a3..eb357917fc 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
@@ -11,13 +11,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "ba47a407fe04203adb0ab5e164597c958cd9e334"
-SRCREV_meta ?= "7df27e6d296dfa16f289883c0661eed45059360c"
+SRCREV_machine ?= "8aebbbd41d16fc564ff99709d4f01a116d07e7a4"
+SRCREV_meta ?= "0db3f511b2a553a5ea31ac45249a42f084fc287c"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}"
-LINUX_VERSION ?= "5.10.93"
+LINUX_VERSION ?= "5.10.96"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
index 32e42cbda4..b2cd6887ee 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
@@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "5.10.93"
+LINUX_VERSION ?= "5.10.96"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine:qemuarm ?= "ceb1f194e59c9dd3bdd83d51bb0994f3db23bf61"
-SRCREV_machine ?= "878e5c1469550bb0f8778d16d4adbe7d48b0b28d"
-SRCREV_meta ?= "7df27e6d296dfa16f289883c0661eed45059360c"
+SRCREV_machine:qemuarm ?= "ca361e2633ab577333303359eb2f7b0040647e5e"
+SRCREV_machine ?= "36f032fc87112de000ca01b6e8a41313d418dcd9"
+SRCREV_meta ?= "0db3f511b2a553a5ea31ac45249a42f084fc287c"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/meta/recipes-kernel/linux/linux-yocto_5.10.bb b/meta/recipes-kernel/linux/linux-yocto_5.10.bb
index 3a0a43bc0b..649d712fda 100644
--- a/meta/recipes-kernel/linux/linux-yocto_5.10.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_5.10.bb
@@ -13,17 +13,17 @@ KBRANCH:qemux86 ?= "v5.10/standard/base"
KBRANCH:qemux86-64 ?= "v5.10/standard/base"
KBRANCH:qemumips64 ?= "v5.10/standard/mti-malta64"
-SRCREV_machine:qemuarm ?= "50c0e06718fb2b264619ce8d82608877d1e62a81"
-SRCREV_machine:qemuarm64 ?= "7907c5eb81e9a51307b5269d546999ebf47d9d59"
-SRCREV_machine:qemumips ?= "e9c51de36554662082afc08c6e54599b310c7951"
-SRCREV_machine:qemuppc ?= "77f361ea5eb293dcfe122ecb65f33ba32fd12501"
-SRCREV_machine:qemuriscv64 ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_machine:qemuriscv32 ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_machine:qemux86 ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_machine:qemux86-64 ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_machine:qemumips64 ?= "b668a352c94a8c29e585608e8302cacb1350f5ed"
-SRCREV_machine ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_meta ?= "7df27e6d296dfa16f289883c0661eed45059360c"
+SRCREV_machine:qemuarm ?= "7ad48434f8e0e848f7fe4891ee7ba670700c36fc"
+SRCREV_machine:qemuarm64 ?= "932cd0e7a66273eba2da54b4ac67e3c6e384e614"
+SRCREV_machine:qemumips ?= "27d7f99a1211d8eca210a84c88a9058772a751a5"
+SRCREV_machine:qemuppc ?= "914396443522268b332c8efe83b3b0306befd1cb"
+SRCREV_machine:qemuriscv64 ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_machine:qemuriscv32 ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_machine:qemux86 ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_machine:qemux86-64 ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_machine:qemumips64 ?= "ba30b538c1750a9fe5db275260862c99a5ed356a"
+SRCREV_machine ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_meta ?= "0db3f511b2a553a5ea31ac45249a42f084fc287c"
# remap qemuarm to qemuarma15 for the 5.8 kernel
# KMACHINE:qemuarm ?= "qemuarma15"
@@ -32,7 +32,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "5.10.93"
+LINUX_VERSION ?= "5.10.96"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
--
2.35.1
^ permalink raw reply related [relevance 1%]
* [hardknott][PATCH 06/14] linux-yocto/5.10: update to v5.10.96
@ 2022-02-17 14:18 1% ` Anuj Mittal
0 siblings, 0 replies; 200+ results
From: Anuj Mittal @ 2022-02-17 14:18 UTC (permalink / raw)
To: openembedded-core
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:
f255ac9e8776 Linux 5.10.96
b43e9d2f6fc7 mtd: rawnand: mpc5121: Remove unused variable in ads5121_select_chip()
b63e120189fd block: Fix wrong offset in bio_truncate()
0b4e82403c84 fsnotify: invalidate dcache before IN_DELETE event
8bae6db29c7f usr/include/Makefile: add linux/nfc.h to the compile-test coverage
f36554de7897 dt-bindings: can: tcan4x5x: fix mram-cfg RX FIFO config
446ff1fc37c7 net: bridge: vlan: fix memory leak in __allowed_ingress
bc58a5bb9e6c ipv4: remove sparse error in ip_neigh_gw4()
ebc5b8e471e5 ipv4: tcp: send zero IPID in SYNACK messages
58f72918f942 ipv4: raw: lock the socket in raw_bind()
9ffc94a81b0f net: bridge: vlan: fix single net device option dumping
869f1704f1c2 Revert "ipv6: Honor all IPv6 PIO Valid Lifetime values"
699eef4ed910 net: hns3: handle empty unknown interrupt for VF
c9c81b393c74 net: cpsw: Properly initialise struct page_pool_params
729e54636b3e yam: fix a memory leak in yam_siocdevprivate()
93a6e920d8cc drm/msm/dpu: invalid parameter check in dpu_setup_dspp_pcc
0b7d8db87d0b drm/msm/hdmi: Fix missing put_device() call in msm_hdmi_get_phy
d1d4616d3e75 video: hyperv_fb: Fix validation of screen resolution
0a60d04abc62 ibmvnic: don't spin in tasklet
55258b505996 ibmvnic: init ->running_cap_crqs early
b469cf91fb63 ipv4: fix ip option filtering for locally generated fragments
9b4444197252 net: ipv4: Fix the warning for dereference
2f56c4845df9 net: ipv4: Move ip_options_fragment() out of loop
55402a461872 powerpc/perf: Fix power_pmu_disable to call clear_pmi_irq_pending only if PMI is pending
0bdbf93ee253 hwmon: (lm90) Mark alert as broken for MAX6654
c534287a57dc efi/libstub: arm64: Fix image check alignment at entry
3572205b194c rxrpc: Adjust retransmission backoff
5067f5699de7 octeontx2-pf: Forward error codes to VF
bd024e36f681 phylib: fix potential use-after-free
a839a79f4d6b net: phy: broadcom: hook up soft_reset for BCM54616S
57b2f3632b2f sched/pelt: Relax the sync of util_sum with util_avg
91b04e83c710 perf: Fix perf_event_read_local() time
cffed7e631b5 kernel: delete repeated words in comments
1af995c98b81 netfilter: conntrack: don't increment invalid counter on NF_REPEAT
129c71829d7f powerpc64/bpf: Limit 'ldbrx' to processors compliant with ISA v2.06
7a32824f7a9c NFS: Ensure the server has an up to date ctime before renaming
666f6ab882ea NFS: Ensure the server has an up to date ctime before hardlinking
4cd0ef621509 ipv6: annotate accesses to fn->fn_sernum
79c0b5287ded drm/msm/dsi: invalid parameter check in msm_dsi_phy_enable
3ab44a408bba drm/msm/dsi: Fix missing put_device() call in dsi_get_phy
82c310d04b0f drm/msm: Fix wrong size calculation
f57a99c9a55c net-procfs: show net devices bound packet types
87880e3803ce NFSv4: nfs_atomic_open() can race when looking up a non-regular file
ce8c552b88ca NFSv4: Handle case where the lookup of a directory fails
b48a05cee2c0 hwmon: (lm90) Reduce maximum conversion rate for G781
b26fed25e67b ipv4: avoid using shared IP generator for connected sockets
283aa5a5afbc ping: fix the sk_bound_dev_if match in ping_lookup
7bcb0c19abf4 hwmon: (lm90) Mark alert as broken for MAX6680
925cbd596aa2 hwmon: (lm90) Mark alert as broken for MAX6646/6647/6649
db044d97460e net: fix information leakage in /proc/net/ptype
feb770cc00a8 ipv6_tunnel: Rate limit warning messages
00849de10f79 scsi: bnx2fc: Flush destroy_work queue before calling bnx2fc_interface_put()
fcaf94c49a84 rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev
1dbb206730f3 rpmsg: char: Fix race between the release of rpmsg_ctrldev and cdev
20f667582189 usb: roles: fix include/linux/usb/role.h compile issue
6aeff8a7c742 i40e: fix unsigned stat widths
d2ed5997a94b i40e: Fix for failed to init adminq while VF reset
768eb705e638 i40e: Fix queues reservation for XDP
39896710f732 i40e: Fix issue when maximum queues is exceeded
9068bcb2195b i40e: Increase delay to 1 s after global EMP reset
b4c9b6afa3a7 powerpc/32: Fix boot failure with GCC latent entropy plugin
50f5d0a8bd0e powerpc/32s: Fix kasan_init_region() for KASAN
5d3af1dfdf0f powerpc/32s: Allocate one 256k IBAT instead of two consecutives 128k IBATs
08f090bb9b69 x86/MCE/AMD: Allow thresholding interface updates after init
791e5d5daa2c sched/membarrier: Fix membarrier-rseq fence command missing from query bitmask
afbde455ebf4 ocfs2: fix a deadlock when commit trans
97f75e7d4c30 jbd2: export jbd2_journal_[grab|put]_journal_head
3921d081c9c3 ucsi_ccg: Check DEV_INT bit only when starting CCG4
598a884c772c usb: typec: tcpm: Do not disconnect while receiving VBUS off
e3b131e30e61 USB: core: Fix hang in usb_kill_urb by adding memory barriers
3ca928c82427 usb: gadget: f_sourcesink: Fix isoc transfer for USB_SPEED_SUPER_PLUS
053274bc6baa usb: common: ulpi: Fix crash in ulpi_match()
20c51a4c5220 usb: xhci-plat: fix crash when suspend if remote wake enable
38d1bf67a310 usb-storage: Add unusual-devs entry for VL817 USB-SATA bridge
e0fcae7bd72b tty: Add support for Brainboxes UC cards.
7079283d32a2 tty: n_gsm: fix SW flow control encoding/handling
2683b0d5d7d5 serial: stm32: fix software flow control transfer
4628b26df51c serial: 8250: of: Fix mapped region size when using reg-offset property
94b23988c305 netfilter: nft_payload: do not update layer 4 checksum when mangling fragments
bf0d4ae5c6c2 arm64: errata: Fix exec handling in erratum 1418040 workaround
e92cac1dd803 KVM: x86: Update vCPU's runtime CPUID on write to MSR_IA32_XSS
6b55af102b39 drm/etnaviv: relax submit size limits
7a32d17fb73a perf/x86/intel/uncore: Fix CAS_COUNT_WRITE issue for ICX
a2c8e1d9e41b Revert "KVM: SVM: avoid infinite loop on NPF from bad address"
abae88fb37bf fsnotify: fix fsnotify hooks in pseudo filesystems
6ceac38e9b0c ceph: set pool_ns in new inode layout for async creates
e7be12ca7d39 ceph: properly put ceph_string reference after async create attempt
39986696fef5 tracing: Don't inc err_log entry count if entry allocation fails
d71b06aa9950 tracing/histogram: Fix a potential memory leak for kstrdup()
561a22d44acc PM: wakeup: simplify the output logic of pm_show_wakelocks()
b0f1cc093bc2 efi: runtime: avoid EFIv2 runtime services on Apple x86 machines
de7cc8bcca90 udf: Fix NULL ptr deref when converting from inline format
0a3cfd258923 udf: Restore i_lenAlloc when inode expansion fails
f08801252d26 scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP devices
ff6bdc205fd0 bpf: Guard against accessing NULL pt_regs in bpf_get_task_stack()
6520fedfcebb s390/hypfs: include z/VM guests with access control group set
c10e0627c71c s390/module: fix loading modules with a lot of relocations
ba7c71a777c1 net: stmmac: skip only stmmac_ptp_register when resume from suspend
11191406f2f1 net: sfp: ignore disabled SFP node
e651772adced media: venus: core: Drop second v4l2 device unregister
83d5196b65d1 Bluetooth: refactor malicious adv data check
77656fde3c01 Linux 5.10.95
ae2b20f27732 drm/vmwgfx: Fix stale file descriptors on failed usercopy
11ba2c6dfb90 select: Fix indefinitely sleeping task in poll_schedule_timeout()
a447d7f786ec KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU
12d3389b7af6 rcu: Tighten rcu_advance_cbs_nowake() checks
4d63363c88e3 bnx2x: Invalidate fastpath HSI version for VFs
fdcfabd0952d bnx2x: Utilize firmware 7.13.21.0
6a6acf927895 drm/i915: Flush TLBs before releasing backing store
c525532e4f87 Linux 5.10.94
c76c132444df scripts: sphinx-pre-install: Fix ctex support on Debian
133cef0b6154 scripts: sphinx-pre-install: add required ctex dependency
15ce9329a532 ath10k: Fix the MTU size on QCA9377 SDIO
25b1a6d33039 mtd: nand: bbt: Fix corner case in bad block table handling
8104e589fa4a lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
629250370052 mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
33bb7f027b06 lib82596: Fix IRQ check in sni_82596_probe
078b5a4498e0 scripts/dtc: dtx_diff: remove broken example from help text
21513c461557 dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
23bcf3615be7 dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
66467cc87a35 dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
4496e4a427a0 net: mscc: ocelot: fix using match before it is set
ee64479c9ce6 net: sfp: fix high power modules without diagnostic monitoring
819e76bc572e net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
4691c9f047a8 bcmgenet: add WOL IRQ check
6973b38b9dba net_sched: restore "mpu xxx" handling
20949c381646 net: bonding: fix bond_xmit_broadcast return value error bug
799730d182d1 arm64: dts: qcom: msm8996: drop not documented adreno properties
f6d4c0e017ec devlink: Remove misleading internal_flags from health reporter dump
2e51a761b7ab perf probe: Fix ppc64 'perf probe add events failed' case
59b44f77601d dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
0078f053714d dmaengine: at_xdmac: Fix lld view setting
7ab120636d4e dmaengine: at_xdmac: Fix concurrency over xfers_list
b5b27c5e3315 dmaengine: at_xdmac: Print debug message after realeasing the lock
c536b351a75f dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
cd22e22e8eac dmaengine: at_xdmac: Don't start transactions at tx_submit level
68a83051c8b1 perf script: Fix hex dump character output
7b9d40e9f60d libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
cd5c24d2230f gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
7f2ca96bd266 xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
2b1415c60b2e netns: add schedule point in ops_exit_list()
edc09548ffc5 inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
69e7e979ed66 taskstats: Cleanup the use of task->exit_code
56daa21414e9 virtio_ring: mark ring unused on error
0c4ebcb00d88 vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
c736ec01a2fc rtc: pxa: fix null pointer dereference
8b8ff4c793ee HID: vivaldi: fix handling devices not using numbered reports
d7544cf6939c net: axienet: increase default TX ring size to 128
557829d42d1f net: axienet: fix for TX busy handling
41831d496772 net: axienet: fix number of TX ring slots for available check
6301f3566aef net: axienet: Fix TX ring slot available check
7a3d3d7f6d7b net: axienet: limit minimum TX ring size
2f548489d64d net: axienet: add missing memory barriers
bcc5d57e6091 net: axienet: reset core on initialization prior to MDIO access
46c0ccaff285 net: axienet: Wait for PhyRstCmplt after core reset
34942a228aec net: axienet: increase reset timeout
a66b9bccf732 net/smc: Fix hung_task when removing SMC-R devices
51b52cf35485 clk: si5341: Fix clock HW provider cleanup
fe40f7aef387 clk: Emit a stern warning with writable debugfs enabled
38221afa03af af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
a49e402f2309 f2fs: fix to reserve space for IO align feature
39ad0581176d f2fs: compress: fix potential deadlock of compress file
e1840365ed4f parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
d806eb5f4e23 net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
38c798384b90 net/fsl: xgmac_mdio: Add workaround for erratum A-009885
734f4b0f831e ipv4: avoid quadratic behavior in netns dismantle
86f0587f7432 ipv4: update fib_info_cnt under spinlock protection
10e99ae9b5da perf evsel: Override attr->sample_period for non-libpfm4 events
58fa3e900255 xdp: check prog type before updating BPF link
38ee417f59c8 bpftool: Remove inclusion of utilities.mak from Makefiles
2bcab471a26f block: Fix fsync always failed if once failed
5e59f885353e powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
19aaef651948 powerpc/cell: Fix clang -Wimplicit-fallthrough warning
4cb7aba1e086 Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
78cf5f63a3a9 dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
16ad0aa917c9 RDMA/rxe: Fix a typo in opcode name
885860717c29 RDMA/hns: Modify the mapping attribute of doorbell to device
57cd8597c3ef dmaengine: uniphier-xdmac: Fix type of address variables
4fe77b7cd272 scsi: core: Show SCMD_LAST in text form
b30240911da4 Bluetooth: hci_sync: Fix not setting adv set duration
55698d11c8da Documentation: fix firewire.rst ABI file path error
5d38cbf66dd7 Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization
abecf9d74836 Documentation: ACPI: Fix data node reference documentation
d1e85fcd73b5 Documentation: dmaengine: Correctly describe dmatest with channel unset
f6736bd81db4 media: correct MEDIA_TEST_SUPPORT help text
55b10b88ac86 drm/vc4: hdmi: Make sure the device is powered with CEC
81ac08a800b0 media: rcar-csi2: Optimize the selection PHTW register
0baa3729d2eb can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
f62bf6ee4fa3 firmware: Update Kconfig help text for Google firmware
12224c0d19f3 of: base: Improve argument length mismatch error
7bb99c7e13f8 drm/radeon: fix error handling in radeon_driver_open_kms
0ca7ec6db20c ext4: don't use the orphan list when migrating an inode
679fb065326b ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
d60e9daba29e ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
f26b24b4c115 ext4: fast commit may miss tracking unwritten range during ftruncate
04b562730677 ext4: use ext4_ext_remove_space() for fast commit replay delete range
53998b3f6dcd ext4: Fix BUG_ON in ext4_bread when write quota data
da364ab35892 ext4: set csum seed in tmp inode while migrating to extents
e4221629d5e1 ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
720508dd118d ext4: initialize err_blk before calling __ext4_get_inode_loc
f9ed0ea0a9fc ext4: fix a possible ABBA deadlock due to busy PA
115b762b48ab ext4: make sure quota gets properly shutdown on error
762e4c33e9e5 ext4: make sure to reset inode lockdep class when quota enabling fails
f8c3ec2e21b9 btrfs: respect the max size in the header when activating swap file
e7764bccae77 btrfs: check the root node for uptodate before returning it
09e0ef287e93 btrfs: fix deadlock between quota enable and other quota operations
56f974d583fc xfrm: fix policy lookup for ipv6 gre packets
84166c1177f3 PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
7aeeb9fe9ca0 PCI: pci-bridge-emul: Correctly set PCIe capabilities
af1d0acdaca7 PCI: pci-bridge-emul: Fix definitions of reserved bits
0f2ae6691e73 PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
2a0d437d8a76 PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
def2825b09ec PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
6cbe8f8deb62 PCI: xgene: Fix IB window setup
e09f47e77b6e powerpc/64s/radix: Fix huge vmap false positive
eb44b1386af5 parisc: Fix lpa and lpa_user defines
9b78ee2341d4 drm/bridge: analogix_dp: Make PSR-exit block less
8cbbf4a6f1ac drm/nouveau/kms/nv04: use vzalloc for nv04_display
605583fcccb5 drm/etnaviv: limit submit sizes
6c1e3d8b1bff device property: Fix fwnode_graph_devcon_match() fwnode leak
ecb71f7bd584 s390/mm: fix 2KB pgtable release race
798754ba48b7 iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
c524f4cfb3e5 tracing/kprobes: 'nmissed' not showed correctly for kretprobe
b72075e395b3 cputime, cpuacct: Include guest time in user time in cpuacct.stat
13518f058fde serial: Fix incorrect rs485 polarity on uart open
9668cf9e4af0 fuse: Pass correct lend value to filemap_write_and_wait_range()
9fbaddd783fd xen/gntdev: fix unmap notification order
67b078d996f7 spi: uniphier: Fix a bug that doesn't point to private data correctly
05026c4e94c9 tpm: fix NPE on probe for missing device
76006d33f1c8 ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
4f0762ac32b5 crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
9e6ff2d5725b crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
2031e0246e45 crypto: omap-aes - Fix broken pm_runtime_and_get() usage
43e94431c313 rpmsg: core: Clean up resources on announce_create failure.
082ff9e12b4a phy: mediatek: Fix missing check in mtk_mipi_tx_probe
ff08cf1e34a1 ASoC: mediatek: mt8183: fix device_node leak
f28672eef4a9 ASoC: mediatek: mt8173: fix device_node leak
0df51040089d scsi: sr: Don't use GFP_DMA
de9a936b04c5 MIPS: Octeon: Fix build errors using clang
da7df943e254 i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
f09f7ccb28bb irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
bc2d961d821b MIPS: OCTEON: add put_device() after of_find_device_by_node()
ce34b03a71b6 udf: Fix error handling in udf_new_inode()
15be042e7fd9 powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
f2e658d9bda2 powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
044164b4198e selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
21125e011620 powerpc/40x: Map 32Mbytes of memory at startup
c330442f46ea MIPS: Loongson64: Use three arguments for slti
af8d07735083 ALSA: seq: Set upper limit of processed events
297210783a7a scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
dfde7afed711 dm: fix alloc_dax error handling in alloc_dev
2e2086f49e08 nvmem: core: set size for sysfs bin file
4a273a94bda8 w1: Misuse of get_user()/put_user() reported by sparse
87e91d6c6a5e KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
23bb3f01ceb5 KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
03c1595a181c powerpc/powermac: Add missing lockdep_register_key()
df29c01b9fbe clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
30d35a1abd9e i2c: mpc: Correct I2C reset procedure
4b25aad655c9 powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
25714ad6bf5e i2c: i801: Don't silently correct invalid transfer size
75e2cfa5fae9 powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
a83639521a4f powerpc/btext: add missing of_node_put
fc10d8f00a89 powerpc/cell: add missing of_node_put
297ff7d5f157 powerpc/powernv: add missing of_node_put
c83ba875d7be powerpc/6xx: add missing of_node_put
d240b08d8ac4 x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
3681e9f3f0f7 parisc: Avoid calling faulthandler_disabled() twice
f2a27dd7a2de random: do not throw away excess input to crng_fast_load
f8fdebfb4b37 serial: core: Keep mctrl register state and cached copy in sync
a03fd1b19891 serial: pl010: Drop CR register reset on set_termios
40ac33892630 regulator: qcom_smd: Align probe function with rpmh-regulator
3dc751213fe9 net: gemini: allow any RGMII interface mode
1063de897563 net: phy: marvell: configure RGMII delays for 88E1118
00580670b98b mlxsw: pci: Avoid flow control for EMAD packets
eaf8cffcf5d5 dm space map common: add bounds check to sm_ll_lookup_bitmap()
5850bef8e955 dm btree: add a defensive bounds check to insert_at()
754b663ea916 mac80211: allow non-standard VHT MCS-10/11
e8da60b3a629 net: mdio: Demote probed message to debug print
6b22c9824ddb btrfs: remove BUG_ON(!eie) in find_parent_nodes
623c65bc7336 btrfs: remove BUG_ON() in find_parent_nodes()
44cbd2a16a07 ACPI: battery: Add the ThinkPad "Not Charging" quirk
7b6dc07c6e69 amdgpu/pm: Make sysfs pm attributes as read-only for VFs
516e332d6fce drm/amdgpu: fixup bad vram size on gmc v8
ee88ff140de2 ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
8544074762e2 ACPICA: Fix wrong interpretation of PCC address
e70be176961d ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
8ea9216d20b7 ACPICA: Utilities: Avoid deleting the same object twice in a row
fcfd8282c5d2 ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
e3a51d6c90a8 jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
e35cb5b122fc drm/etnaviv: consider completed fence seqno in hang check
a0b13335a342 xfrm: rate limit SA mapping change message to user space
0b7beb2fea8f Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
6ac117edac18 ath11k: Fix napi related hang
756a7188b277 um: registers: Rename function names to avoid conflicts and build problems
d817d10f7a00 iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
f266e1c5bf88 iwlwifi: mvm: Fix calculation of frame length
6e44b600543c iwlwifi: remove module loading failure message
febab6b60d61 iwlwifi: fix leaks/bad data after failed firmware load
81d2e96ababb PM: AVS: qcom-cpr: Use div64_ul instead of do_div
c0a1d844e3e7 rtw88: 8822c: update rx settings to prevent potential hw deadlock
3ef25f3122c0 ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
e10de3105547 usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
282286c632a2 cpufreq: Fix initialization of min and max frequency QoS requests
37b25de3af10 PM: runtime: Add safety net to supplier device release
5dfc6fa0b8c2 arm64: tegra: Adjust length of CCPLEX cluster MMIO region
b68c56a149e4 arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
b6f7f0ad5af5 audit: ensure userspace is penalized the same as the kernel when under pressure
5d54ed155031 mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
51a5156bb779 media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()
f6bc6b178ce1 media: igorplugusb: receiver overflow should be reported
d698e024be2e HID: quirks: Allow inverting the absolute X/Y values
59f03633463f bpf: Do not WARN in bpf_warn_invalid_xdp_action()
0e8805f73b69 net: bonding: debug: avoid printing debug logs when bond is not notifying peers
8c72de32ff13 x86/mce: Mark mce_read_aux() noinstr
1ad3e60f1fec x86/mce: Mark mce_end() noinstr
f21ca973b43f x86/mce: Mark mce_panic() noinstr
de360d944386 x86/mce: Allow instrumentation during task work queueing
af371e0abb6c ath11k: Avoid false DEADLOCK warning reported by lockdep
aec69e2f33b4 selftests/ftrace: make kprobe profile testcase description unique
07ecabf15ad3 gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
7e09f9d15e43 net: phy: prefer 1000baseT over 1000baseKX
443133330a5d net-sysfs: update the queue counts in the unregistration path
58b4c1ce8328 ath10k: Fix tx hanging
fcba0bce3357 ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
93a108d466f8 iwlwifi: mvm: avoid clearing a just saved session protection id
ec01e0fe2184 iwlwifi: mvm: synchronize with FW after multicast commands
c1976a424807 thunderbolt: Runtime PM activate both ends of the device link
830e5d1b4344 media: m920x: don't use stack on USB reads
c33f0f22bfea media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
526b6c9b4521 media: rcar-vin: Update format alignment constraints
74e60c1dce06 media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
d0e3ab637de1 drm: rcar-du: Fix CRTC timings when CMM is used
e61aa46d0f27 x86/mm: Flush global TLB when switching to trampoline page-table
0946fdd9290a floppy: Add max size check for user space request
409d45bcd381 usb: uhci: add aspeed ast2600 uhci support
d0aec428c072 arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
fcb45ac39f90 ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win
b8b2e74a8751 ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
cda755506df4 ACPI: Change acpi_device_always_present() into acpi_device_override_status()
b029625063c1 ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
cf3b1a160dc2 media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions
adbe14867277 ath11k: Avoid NULL ptr access during mgmt tx cleanup
ab523ea096ef rsi: Fix out-of-bounds read in rsi_read_pkt()
752587675068 rsi: Fix use-after-free in rsi_rx_done_handler()
6036500fdf77 mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
8a6371d84c5f crypto: jitter - consider 32 LSB for APT
240cf5d3cb5e HSI: core: Fix return freed object in hsi_new_client
f4295b7dca87 gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
f0653cd4da66 tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
b8d10f601f22 drm/bridge: megachips: Ensure both bridges are probed before registration
43fc9e267e2e mlxsw: pci: Add shutdown method in PCI driver
b2e921fa9219 soc: ti: pruss: fix referenced node in error message
07fbbc4dc79d drm/amdgpu/display: set vblank_disable_immediate for DC
019fe9723a83 drm/amd/display: check top_pipe_to_program pointer
3c3c0b6c4ae9 ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
f54d8cd831be EDAC/synopsys: Use the quirk for version instead of ddr version
0b85d73fdbc8 media: b2c2: Add missing check in flexcop_pci_isr:
c978d39a8b14 HID: apple: Do not reset quirks when the Fn key is not found
2df002e3276b drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
5aa57672c66c usb: gadget: f_fs: Use stream_open() for endpoint files
129e8faaee97 ath11k: Fix crash caused by uninitialized TX ring
e8b271f2aadd media: atomisp: handle errors at sh_css_create_isp_params()
ebe9c978d9e7 batman-adv: allow netlink usage in unprivileged containers
ff452db96163 ARM: shmobile: rcar-gen2: Add missing of_node_put()
ff2138d6c2a3 media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
51ef6582a218 media: atomisp: set per-device's default mode
ac08140677c0 media: atomisp: fix try_fmt logic
518e059789f6 drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
e3ba02b043f2 drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
2f13f10fddf4 ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
a9d2ccfc7d2c selftests/bpf: Fix bpf_object leak in skb_ctx selftest
b207356933f4 drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
db1e878373bf fs: dlm: filter user dlm messages for kernel locks
f9c9a46efd94 Bluetooth: Fix debugfs entry leak in hci_register_dev()
852d7d436fd1 ARM: dts: omap3-n900: Fix lp5523 for multi color
b5793aff11d7 of: base: Fix phandle argument length mismatch error message
e16e836d510c clk: bm1880: remove kfrees on static allocations
36d46e21c9c4 ASoC: fsl_asrc: refine the check of available clock divider
5a6864e2e6ab RDMA/cxgb4: Set queue pair state when being queried
80524c8cdf29 ASoC: fsl_mqs: fix MODULE_ALIAS
74988d017dd1 powerpc/xive: Add missing null check after calling kmalloc
588e0b81ce38 mips: bcm63xx: add support for clk_set_parent()
e3de89d010c0 mips: lantiq: add support for clk_set_parent()
8f8468a089b0 arm64: tegra: Remove non existent Tegra194 reset
702902fc7fb0 arm64: tegra: Fix Tegra194 HDA {clock,reset}-names ordering
24b047d72c77 counter: stm32-lptimer-cnt: remove iio counter abi
a39460610452 misc: lattice-ecp3-config: Fix task hung when firmware load failed
696a50abbc7c ASoC: samsung: idma: Check of ioremap return value
d491a2c2cf96 ASoC: mediatek: Check for error clk pointer
c73ccdd62d21 phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
d781f4cd8c71 scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
6e2a16954459 iommu/iova: Fix race between FQ timeout and teardown
57bc8985753c ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
676049a3d2c6 iommu/amd: Restore GA log/tail pointer on host resume
c2bd7c31de1a iommu/amd: Remove iommu_init_ga()
62ea255f2bde dmaengine: pxa/mmp: stop referencing config->slave_id
0be9ae1e532e mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
88d78b25db1f mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
51b8e814bcef clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell
dff359e04260 of: unittest: 64 bit dma address test requires arch support
918105df78b7 of: unittest: fix warning on PowerPC frame size warning
0e04518b1dd9 ASoC: rt5663: Handle device_property_read_u32_array error codes
7c0d9c815ce8 RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
2432d325f946 RDMA/core: Let ib_find_gid() continue search even after empty entry
d77916df161b powerpc/powermac: Add additional missing lockdep_register_key()
8b3783e517f6 PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
7be2a0bcaf8e RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
e19469468b7b scsi: ufs: Fix race conditions related to driver data
ed43b2e048fe iommu/io-pgtable-arm: Fix table descriptor paddr formatting
e9e4d1fb4590 openrisc: Add clone3 ABI wrapper
551a785c26f6 binder: fix handling of error during copy
88ddf033a5e4 char/mwave: Adjust io port register size
8937aee4c0fa ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
bcd533417fd0 ALSA: oss: fix compile error when OSS_DEBUG is enabled
fd99aeb97845 clocksource: Avoid accidental unstable marking of clocksources
cacc6c30e3eb clocksource: Reduce clocksource-skew threshold
86ad478c99d2 powerpc/32s: Fix shift-out-of-bounds in KASAN init
ef798cd035f3 powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC
58014442a9e8 powerpc/irq: Add helper to set regs->softe
c9ffa84a3bd1 powerpc/perf: move perf irq/nmi handling details into traps.c
a0758b3be46d powerpc/perf: MMCR0 control for PMU registers under PMCC=00
f4df6db5b0b8 powerpc/64s: Convert some cpu_setup() and cpu_restore() functions to C
a9c9d2ff6423 dt-bindings: thermal: Fix definition of cooling-maps contribution property
2bd8d937957f ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
5a821af769bb powerpc/prom_init: Fix improper check of prom_getprop()
9ca761ef946d clk: imx8mn: Fix imx8mn_clko1_sels
999528d8a749 scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
c5f414d69ac9 RDMA/hns: Validate the pkey index
04a032ea2498 RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"
84cd5c029d48 ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
180e9d7384c6 ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
49d76154ba8d ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
f871cd8ee0f0 ext4: avoid trim error on fs with small groups
99590e820feb net: mcs7830: handle usb read errors properly
2b948524ae65 iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
04ce9e2aeda7 pcmcia: fix setting of kthread task states
5064bfe046b0 can: xilinx_can: xcan_probe(): check for error irq
b6dd1577bc92 can: softing: softing_startstop(): fix set but not used variable warning
b9ac866c23bb tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
fb46223c9f94 tpm: add request_locality before write TPM_INT_ENABLE
20edf903a3a5 can: mcp251xfd: add missing newline to printed strings
d71fca5d0167 regmap: Call regmap_debugfs_exit() prior to _init()
838acddcdf75 netrom: fix api breakage in nr_setsockopt()
0d04479857bc ax25: uninitialized variable in ax25_setsockopt()
27e9910c4516 spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
9d6350cf8e5a Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
9defd7d4c084 lib/mpi: Add the return value check of kcalloc()
e801f81cee3c net/mlx5: Set command entry semaphore up once got index free
d2b9ce705d79 Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
67e1a449a165 net/mlx5e: Don't block routes with nexthop objects in SW
cc40fa05c0a6 net/mlx5e: Fix page DMA map/unmap attributes
b3dda01d1d47 debugfs: lockdown: Allow reading debugfs files that are not world readable
b9b5da3e187e HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
541c3a044b46 HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
c47f842e0c3c HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
cf5ad827ee69 HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
94177fcecc35 usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
4579954bf4cc Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
f6bf3d66393b Bluetooth: hci_bcm: Check for error irq
f5e4f68d57d6 fsl/fman: Check for null pointer after calling devm_ioremap
60aca6fdc167 staging: greybus: audio: Check null pointer
a1068bfee47a rocker: fix a sleeping in atomic bug
2db344725e17 ppp: ensure minimum packet size in ppp_write()
45643b1b6ce1 netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
8772700a9f1e bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
342332fb0be6 bpf: Don't promote bogus looking registers after null check.
0036c78c492a netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
2e718389b986 power: reset: mt6397: Check for null res pointer
4210c35fe81b pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
2dee347f356d pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
0f03132191ba ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
595e1ec55b30 x86/mce/inject: Avoid out-of-bounds write when setting flags
df1268181928 hwmon: (mr75203) fix wrong power-up delay value
aea5302d9ddc x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
70eec71f32eb Bluetooth: hci_qca: Stop IBS timer during BT OFF
1d4e722b62d2 software node: fix wrong node passed to find nargs_prop
f8f3c1720d77 backlight: qcom-wled: Respect enabled-strings in set_brightness
de79bcbfaf4d backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
c79f9b8d8e26 backlight: qcom-wled: Override default length with qcom,enabled-strings
bf4daf6153c9 backlight: qcom-wled: Fix off-by-one maximum with default num_strings
09aed85e8c98 backlight: qcom-wled: Pass number of elements to read to read_u32_array
f4ed4fc504fd backlight: qcom-wled: Validate enabled string indices in DT
e668ac6506d3 bpftool: Enable line buffering for stdout
009bb7ee1577 Bluetooth: L2CAP: Fix using wrong mode
1a2241ad400b um: virtio_uml: Fix time-travel external time propagation
8411722e5652 um: fix ndelay/udelay defines
b2b1b490bd29 selinux: fix potential memleak in selinux_add_opt()
3253cf091464 mmc: meson-mx-sdio: add IRQ check
decb2099549d mmc: meson-mx-sdhc: add IRQ check
bdc6c9fc5f78 iwlwifi: mvm: test roc running status bits before removing the sta
a750fcd604a6 iwlwifi: mvm: fix 32-bit build in FTM
86b0122d2682 ARM: dts: armada-38x: Add generic compatible to UART nodes
1f5428e43806 arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
874b97e86278 arm64: dts: marvell: cn9130: add GPIO and SPI aliases
407ef1db4036 usb: ftdi-elan: fix memory leak on device disconnect
2a65da5a1ea3 ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
47dd693c94bf xfrm: state and policy should fail if XFRMA_IF_ID 0
db369047e3b3 xfrm: interface with if_id 0 should return error
37441ddadc1e media: hantro: Fix probe func error path
3849ec830bf7 drm/tegra: vic: Fix DMA API misuse
b230114bc57a drm/bridge: ti-sn65dsi86: Set max register for regmap
db97fc2c4425 drm/msm/dpu: fix safe status debugfs file
3580055d1fca arm64: dts: qcom: ipq6018: Fix gpio-ranges property
6f20a5a98a90 arm64: dts: qcom: c630: Fix soundcard setup
394ee480aa3e ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
f6e4a6cbdb6f media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
1a8869de328a media: msi001: fix possible null-ptr-deref in msi001_probe()
a79327bb0191 media: dw2102: Fix use after free
958a8819d414 ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
3e51460638a6 ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
b35263f000a5 crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
1f5b81874f27 crypto: stm32/cryp - fix bugs and crash in tests
1f6151b0774b crypto: stm32/cryp - fix lrw chaining mode
2bd40e3a3aa2 crypto: stm32/cryp - fix double pm exit
533af1621d1c crypto: stm32/cryp - check early input data
5deb24e50372 crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
e9e0dd5da8ca crypto: stm32/cryp - fix CTR counter carry
c40b1bc851e0 crypto: stm32 - Fix last sparse warning in stm32_cryp_check_ctr_counter
93033bbbdc25 selftests: harness: avoid false negatives if test has no ASSERTs
f568fd97d751 selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
d21b47c60737 x86/uaccess: Move variable into switch case statement
3e801ea43c4b xfrm: fix a small bug in xfrm_sa_len()
b87034d7a2a8 mwifiex: Fix possible ABBA deadlock
0836f9404017 rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
027165c491e4 drm/msm/dp: displayPort driver need algorithm rational
268f35245650 sched/rt: Try to restart rt period timer when rt runtime exceeded
bb0579ab5077 wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
b4b911b1648c media: si2157: Fix "warm" tuner state detection
7009a5fbc589 media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
df79d2bf95e0 media: dib8000: Fix a memleak in dib8000_init()
f0cb43a2c674 arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
88ed31aab481 arm64: lib: Annotate {clear, copy}_page() as position-independent
69e402a98541 bpf: Remove config check to enable bpf support for branch records
924886fa2246 bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
218d952160f7 bpf: Adjust BTF log size limit.
b77ef5b4ead6 sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
d7d5b3bc5263 sched/fair: Fix detection of per-CPU kthreads waking a task
ec121517ac8d Bluetooth: btmtksdio: fix resume failure
2a7edcb3ef72 staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
49f5cd2b7c41 staging: rtl8192e: return error code from rtllib_softmac_init()
04fdd426cef2 floppy: Fix hang in watchdog when disk is ejected
45bbe008013f serial: amba-pl011: do not request memory region twice
8409d2394cca tty: serial: uartlite: allow 64 bit address
a001a15ab374 arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
75919207c16a arm64: dts: ti: k3-j721e: Fix the L2 cache sets
2dcfa3c76596 arm64: dts: ti: k3-j7200: Fix the L2 cache sets
f277978d6c46 drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
3ca1b3b82fe7 drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode()
96e05d2d9370 thermal/drivers/imx8mm: Enable ADC when enabling monitor
ef72449e2d79 ACPI: EC: Rework flushing of EC work while suspended to idle
c0acd5a09796 cgroup: Trace event cgroup id fields should be u64
e7e178e26418 arm64: dts: qcom: msm8916: fix MMC controller aliases
894d91c6334b netfilter: bridge: add support for pppoe filtering
13f64bbe4255 thermal/drivers/imx: Implement runtime PM support
c3a59f34e87c media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'
50c4244906d6 media: venus: core: Fix a potential NULL pointer dereference in an error handling path
eeefa2eae8fc media: venus: core, venc, vdec: Fix probe dependency error
53f65afc260f media: venus: pm_helpers: Control core power domain manually
89f518b153d1 media: coda: fix CODA960 JPEG encoder buffer overflow
1da628d351a9 media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
2028fb832da6 media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
e8d78f924f02 media: imx-pxp: Initialize the spinlock prior to using it
621e8ce75d66 media: rcar-csi2: Correct the selection of hsfreqrange
ad52b9890b83 mfd: atmel-flexcom: Use .resume_noirq
46d6a2311409 mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
f93c9aa1d36f tty: serial: atmel: Call dma_async_issue_pending()
755a6c873b9c tty: serial: atmel: Check return code of dmaengine_submit()
bd85b2e77aa9 arm64: dts: ti: k3-j721e: correct cache-sets info
32e9947e6639 ath11k: Use host CE parameters for CE interrupts configuration
6a49acfacab5 crypto: qat - fix undetected PFVF timeout in ACK loop
475ac5c5653f crypto: qat - make pfvf send message direction agnostic
ee1c74c3c9c2 crypto: qat - remove unnecessary collision prevention step in PFVF
472f76835200 crypto: qat - fix spelling mistake: "messge" -> "message"
ae766527e6b7 ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco
eab4204588a0 mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
867d4ace48da crypto: qce - fix uaf on qce_skcipher_register_one
e19b3c1b5768 crypto: qce - fix uaf on qce_ahash_register_one
5de640f59f99 media: dmxdev: fix UAF when dvb_register_device() fails
1d64e2bd2222 arm64: dts: renesas: cat875: Add rx/tx delays
a33eef23a658 drm/vboxvideo: fix a NULL vs IS_ERR() check
43220a61e7b8 fs: dlm: fix build with CONFIG_IPV6 disabled
0d7c5d10e7db tee: fix put order in teedev_close_context()
097e601eb887 ath11k: reset RSN/WPA present state for open BSS
fa51addd391d ath11k: clear the keys properly via DISABLE_KEY
df94b37e902b ath11k: Fix ETSI regd with weather radar overlap
ffc9019bd991 Bluetooth: stop proccessing malicious adv data
3273541fed60 memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
55917db35976 fs: dlm: don't call kernel_getpeername() in error_report()
98923ebb034b fs: dlm: use sk->sk_socket instead of con->sock
6edd1bd8e3d8 arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
eb1f75fa2458 arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
6f012f2c445b arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
96d710b1c6ff arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
0b57480ed51a media: aspeed: Update signal status immediately to ensure sane hw state
0ff0ae69d27c media: em28xx: fix memory leak in em28xx_init_dev
b441d9428735 media: aspeed: fix mode-detect always time out at 2nd run
8d132d9dd8ba media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
fc2b95e7aeae media: atomisp: fix enum formats logic
6e5353238c55 media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
6cbabad304c4 media: staging: media: atomisp: pci: Balance braces around conditional statements in file atomisp_cmd.c
22b0b68f7d9f media: atomisp: fix ifdefs in sh_css.c
0bf5e8af6eb6 media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid()
3cb3e66f583c media: atomisp: do not use err var when checking port validity for ISP2400
08e43223fb4e media: atomisp: fix inverted logic in buffers_needed()
fb370f6dc7d5 media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
1daacf9bb69a media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities()
e1da9301cf54 media: videobuf2: Fix the size printk format
90807ab437e8 mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
9bfed11dcf59 ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
2fe056d9791a wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
22406ed4e389 wcn36xx: populate band before determining rate on RX
92fea7bd5af3 wcn36xx: Put DXE block into reset before freeing memory
0d53c47f6ab5 wcn36xx: Release DMA channel descriptor allocations
1850195a852d wcn36xx: Fix DMA channel enable/disable cycle
38a7842889f5 wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
fcb267bb9577 wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
e53ff4dd7095 drm/vc4: hdmi: Set a default HSM rate
b9c2343373f6 clk: bcm-2835: Remove rounding up the dividers
836dd37fe2bb clk: bcm-2835: Pick the closest clock rate
88f1b613c37f Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
9ddfa1c19191 drm/rockchip: dsi: Reconfigure hardware on resume()
58904ed18628 drm/rockchip: dsi: Disable PLL clock on bind error
6215cde02085 drm/rockchip: dsi: Hold pm-runtime across bind/unbind
8ccaafa1caf0 drm/rockchip: dsi: Fix unbalanced clock on probe error
9bc19022aa08 drm/panel: innolux-p079zca: Delete panel on attach() failure
b01b7b868479 drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
0499c863a8db drm: fix null-ptr-deref in drm_dev_init_release()
7798757013ec drm/bridge: display-connector: fix an uninitialized pointer in probe()
cb5813b0e591 Bluetooth: L2CAP: Fix not initializing sk_peer_pid
ed0b1fd3ec6e drm/ttm: Put BO in its memory manager's lru list
7b9fa915a58d shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
6c6f86bb618b mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages
e04b1dfe15ce dma/pool: create dma atomic pool only if dma zone has managed pages
d2e572411738 mm_zone: add function to check if managed dma zone exists
2142a7e9bd1f PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
45c74f4f54db dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
191a24ceae75 gpu: host1x: Add back arm_iommu_detach_device()
068067453690 iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
3dae11f8e381 lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
e4a2c924a17e iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
256302cb2f86 can: softing_cs: softingcs_probe(): fix memleak on registration failure
aa57725e2d2a media: cec-pin: fix interrupt en/disable handling
2e566cacc321 media: stk1160: fix control-message timeouts
1a0ca711dff6 media: pvrusb2: fix control-message timeouts
2dbf430ead59 media: redrat3: fix control-message timeouts
6e9c120bf956 media: dib0700: fix undefined behavior in tuner shutdown
5e98ac260de6 media: s2255: fix control-message timeouts
09b0b918a69b media: cpia2: fix control-message timeouts
d90833106c09 media: em28xx: fix control-message timeouts
2182575c83f9 media: mceusb: fix control-message timeouts
460525acc953 media: flexcop-usb: fix control-message timeouts
7cac8a562427 media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
1da0b1cd4212 rtc: cmos: take rtc_lock while reading from CMOS
14f6cfe0d790 tools/nolibc: fix incorrect truncation of exit code
5e258640ba54 tools/nolibc: i386: fix initial stack alignment
06f7528d641b tools/nolibc: x86-64: Fix startup code bug
98259dd54e8e x86/gpu: Reserve stolen memory for first integrated Intel GPU
e2a17dcad56e mtd: rawnand: davinci: Rewrite function description
8933138a6660 mtd: rawnand: davinci: Avoid duplicated page read
677764634b42 mtd: rawnand: davinci: Don't calculate ECC when reading page
a8a607b0049d mtd: Fixed breaking list in __mtd_del_partition.
ff10cd7bb295 mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
538a5e208e7d mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
777a700ccfa6 nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()
08283b076f4e f2fs: fix to do sanity check in is_alive()
57cfc965e375 HID: wacom: Avoid using stale array indicies to read contact count
7fd22c99bbed HID: wacom: Ignore the confidence flag when a touch is removed
9a4800e0f6a5 HID: wacom: Reset expected and received contact counts at the same time
c2e39d5df028 HID: uhid: Fix worker destroying device without any protection
aa1346113c75 KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9bebdb447d39b9bca340f087bff6a008f199f34b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
---
.../linux/linux-yocto-rt_5.10.bb | 6 ++---
.../linux/linux-yocto-tiny_5.10.bb | 8 +++----
meta/recipes-kernel/linux/linux-yocto_5.10.bb | 24 +++++++++----------
3 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
index 48d2694995..4ee93cdd8b 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
@@ -11,13 +11,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "ba47a407fe04203adb0ab5e164597c958cd9e334"
-SRCREV_meta ?= "7df27e6d296dfa16f289883c0661eed45059360c"
+SRCREV_machine ?= "8aebbbd41d16fc564ff99709d4f01a116d07e7a4"
+SRCREV_meta ?= "0db3f511b2a553a5ea31ac45249a42f084fc287c"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}"
-LINUX_VERSION ?= "5.10.93"
+LINUX_VERSION ?= "5.10.96"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
index eb42c407fa..0bde6e5c7f 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
@@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "5.10.93"
+LINUX_VERSION ?= "5.10.96"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine_qemuarm ?= "ceb1f194e59c9dd3bdd83d51bb0994f3db23bf61"
-SRCREV_machine ?= "878e5c1469550bb0f8778d16d4adbe7d48b0b28d"
-SRCREV_meta ?= "7df27e6d296dfa16f289883c0661eed45059360c"
+SRCREV_machine_qemuarm ?= "ca361e2633ab577333303359eb2f7b0040647e5e"
+SRCREV_machine ?= "36f032fc87112de000ca01b6e8a41313d418dcd9"
+SRCREV_meta ?= "0db3f511b2a553a5ea31ac45249a42f084fc287c"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/meta/recipes-kernel/linux/linux-yocto_5.10.bb b/meta/recipes-kernel/linux/linux-yocto_5.10.bb
index e67bf54c98..64b4ab5879 100644
--- a/meta/recipes-kernel/linux/linux-yocto_5.10.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_5.10.bb
@@ -13,17 +13,17 @@ KBRANCH_qemux86 ?= "v5.10/standard/base"
KBRANCH_qemux86-64 ?= "v5.10/standard/base"
KBRANCH_qemumips64 ?= "v5.10/standard/mti-malta64"
-SRCREV_machine_qemuarm ?= "50c0e06718fb2b264619ce8d82608877d1e62a81"
-SRCREV_machine_qemuarm64 ?= "7907c5eb81e9a51307b5269d546999ebf47d9d59"
-SRCREV_machine_qemumips ?= "e9c51de36554662082afc08c6e54599b310c7951"
-SRCREV_machine_qemuppc ?= "77f361ea5eb293dcfe122ecb65f33ba32fd12501"
-SRCREV_machine_qemuriscv64 ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_machine_qemuriscv32 ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_machine_qemux86 ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_machine_qemux86-64 ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_machine_qemumips64 ?= "b668a352c94a8c29e585608e8302cacb1350f5ed"
-SRCREV_machine ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_meta ?= "7df27e6d296dfa16f289883c0661eed45059360c"
+SRCREV_machine_qemuarm ?= "7ad48434f8e0e848f7fe4891ee7ba670700c36fc"
+SRCREV_machine_qemuarm64 ?= "932cd0e7a66273eba2da54b4ac67e3c6e384e614"
+SRCREV_machine_qemumips ?= "27d7f99a1211d8eca210a84c88a9058772a751a5"
+SRCREV_machine_qemuppc ?= "914396443522268b332c8efe83b3b0306befd1cb"
+SRCREV_machine_qemuriscv64 ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_machine_qemuriscv32 ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_machine_qemux86 ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_machine_qemux86-64 ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_machine_qemumips64 ?= "ba30b538c1750a9fe5db275260862c99a5ed356a"
+SRCREV_machine ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_meta ?= "0db3f511b2a553a5ea31ac45249a42f084fc287c"
# remap qemuarm to qemuarma15 for the 5.8 kernel
# KMACHINE_qemuarm ?= "qemuarma15"
@@ -32,7 +32,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "5.10.93"
+LINUX_VERSION ?= "5.10.96"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
--
2.35.1
^ permalink raw reply related [relevance 1%]
* [PATCH 3/6] linux-yocto/5.10: update to v5.10.96
2022-02-04 4:16 1% ` [PATCH 2/6] linux-yocto/5.15: update to v5.15.19 bruce.ashfield
@ 2022-02-04 4:16 1% ` bruce.ashfield
1 sibling, 0 replies; 200+ results
From: bruce.ashfield @ 2022-02-04 4:16 UTC (permalink / raw)
To: richard.purdie; +Cc: openembedded-core
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:
f255ac9e8776 Linux 5.10.96
b43e9d2f6fc7 mtd: rawnand: mpc5121: Remove unused variable in ads5121_select_chip()
b63e120189fd block: Fix wrong offset in bio_truncate()
0b4e82403c84 fsnotify: invalidate dcache before IN_DELETE event
8bae6db29c7f usr/include/Makefile: add linux/nfc.h to the compile-test coverage
f36554de7897 dt-bindings: can: tcan4x5x: fix mram-cfg RX FIFO config
446ff1fc37c7 net: bridge: vlan: fix memory leak in __allowed_ingress
bc58a5bb9e6c ipv4: remove sparse error in ip_neigh_gw4()
ebc5b8e471e5 ipv4: tcp: send zero IPID in SYNACK messages
58f72918f942 ipv4: raw: lock the socket in raw_bind()
9ffc94a81b0f net: bridge: vlan: fix single net device option dumping
869f1704f1c2 Revert "ipv6: Honor all IPv6 PIO Valid Lifetime values"
699eef4ed910 net: hns3: handle empty unknown interrupt for VF
c9c81b393c74 net: cpsw: Properly initialise struct page_pool_params
729e54636b3e yam: fix a memory leak in yam_siocdevprivate()
93a6e920d8cc drm/msm/dpu: invalid parameter check in dpu_setup_dspp_pcc
0b7d8db87d0b drm/msm/hdmi: Fix missing put_device() call in msm_hdmi_get_phy
d1d4616d3e75 video: hyperv_fb: Fix validation of screen resolution
0a60d04abc62 ibmvnic: don't spin in tasklet
55258b505996 ibmvnic: init ->running_cap_crqs early
b469cf91fb63 ipv4: fix ip option filtering for locally generated fragments
9b4444197252 net: ipv4: Fix the warning for dereference
2f56c4845df9 net: ipv4: Move ip_options_fragment() out of loop
55402a461872 powerpc/perf: Fix power_pmu_disable to call clear_pmi_irq_pending only if PMI is pending
0bdbf93ee253 hwmon: (lm90) Mark alert as broken for MAX6654
c534287a57dc efi/libstub: arm64: Fix image check alignment at entry
3572205b194c rxrpc: Adjust retransmission backoff
5067f5699de7 octeontx2-pf: Forward error codes to VF
bd024e36f681 phylib: fix potential use-after-free
a839a79f4d6b net: phy: broadcom: hook up soft_reset for BCM54616S
57b2f3632b2f sched/pelt: Relax the sync of util_sum with util_avg
91b04e83c710 perf: Fix perf_event_read_local() time
cffed7e631b5 kernel: delete repeated words in comments
1af995c98b81 netfilter: conntrack: don't increment invalid counter on NF_REPEAT
129c71829d7f powerpc64/bpf: Limit 'ldbrx' to processors compliant with ISA v2.06
7a32824f7a9c NFS: Ensure the server has an up to date ctime before renaming
666f6ab882ea NFS: Ensure the server has an up to date ctime before hardlinking
4cd0ef621509 ipv6: annotate accesses to fn->fn_sernum
79c0b5287ded drm/msm/dsi: invalid parameter check in msm_dsi_phy_enable
3ab44a408bba drm/msm/dsi: Fix missing put_device() call in dsi_get_phy
82c310d04b0f drm/msm: Fix wrong size calculation
f57a99c9a55c net-procfs: show net devices bound packet types
87880e3803ce NFSv4: nfs_atomic_open() can race when looking up a non-regular file
ce8c552b88ca NFSv4: Handle case where the lookup of a directory fails
b48a05cee2c0 hwmon: (lm90) Reduce maximum conversion rate for G781
b26fed25e67b ipv4: avoid using shared IP generator for connected sockets
283aa5a5afbc ping: fix the sk_bound_dev_if match in ping_lookup
7bcb0c19abf4 hwmon: (lm90) Mark alert as broken for MAX6680
925cbd596aa2 hwmon: (lm90) Mark alert as broken for MAX6646/6647/6649
db044d97460e net: fix information leakage in /proc/net/ptype
feb770cc00a8 ipv6_tunnel: Rate limit warning messages
00849de10f79 scsi: bnx2fc: Flush destroy_work queue before calling bnx2fc_interface_put()
fcaf94c49a84 rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev
1dbb206730f3 rpmsg: char: Fix race between the release of rpmsg_ctrldev and cdev
20f667582189 usb: roles: fix include/linux/usb/role.h compile issue
6aeff8a7c742 i40e: fix unsigned stat widths
d2ed5997a94b i40e: Fix for failed to init adminq while VF reset
768eb705e638 i40e: Fix queues reservation for XDP
39896710f732 i40e: Fix issue when maximum queues is exceeded
9068bcb2195b i40e: Increase delay to 1 s after global EMP reset
b4c9b6afa3a7 powerpc/32: Fix boot failure with GCC latent entropy plugin
50f5d0a8bd0e powerpc/32s: Fix kasan_init_region() for KASAN
5d3af1dfdf0f powerpc/32s: Allocate one 256k IBAT instead of two consecutives 128k IBATs
08f090bb9b69 x86/MCE/AMD: Allow thresholding interface updates after init
791e5d5daa2c sched/membarrier: Fix membarrier-rseq fence command missing from query bitmask
afbde455ebf4 ocfs2: fix a deadlock when commit trans
97f75e7d4c30 jbd2: export jbd2_journal_[grab|put]_journal_head
3921d081c9c3 ucsi_ccg: Check DEV_INT bit only when starting CCG4
598a884c772c usb: typec: tcpm: Do not disconnect while receiving VBUS off
e3b131e30e61 USB: core: Fix hang in usb_kill_urb by adding memory barriers
3ca928c82427 usb: gadget: f_sourcesink: Fix isoc transfer for USB_SPEED_SUPER_PLUS
053274bc6baa usb: common: ulpi: Fix crash in ulpi_match()
20c51a4c5220 usb: xhci-plat: fix crash when suspend if remote wake enable
38d1bf67a310 usb-storage: Add unusual-devs entry for VL817 USB-SATA bridge
e0fcae7bd72b tty: Add support for Brainboxes UC cards.
7079283d32a2 tty: n_gsm: fix SW flow control encoding/handling
2683b0d5d7d5 serial: stm32: fix software flow control transfer
4628b26df51c serial: 8250: of: Fix mapped region size when using reg-offset property
94b23988c305 netfilter: nft_payload: do not update layer 4 checksum when mangling fragments
bf0d4ae5c6c2 arm64: errata: Fix exec handling in erratum 1418040 workaround
e92cac1dd803 KVM: x86: Update vCPU's runtime CPUID on write to MSR_IA32_XSS
6b55af102b39 drm/etnaviv: relax submit size limits
7a32d17fb73a perf/x86/intel/uncore: Fix CAS_COUNT_WRITE issue for ICX
a2c8e1d9e41b Revert "KVM: SVM: avoid infinite loop on NPF from bad address"
abae88fb37bf fsnotify: fix fsnotify hooks in pseudo filesystems
6ceac38e9b0c ceph: set pool_ns in new inode layout for async creates
e7be12ca7d39 ceph: properly put ceph_string reference after async create attempt
39986696fef5 tracing: Don't inc err_log entry count if entry allocation fails
d71b06aa9950 tracing/histogram: Fix a potential memory leak for kstrdup()
561a22d44acc PM: wakeup: simplify the output logic of pm_show_wakelocks()
b0f1cc093bc2 efi: runtime: avoid EFIv2 runtime services on Apple x86 machines
de7cc8bcca90 udf: Fix NULL ptr deref when converting from inline format
0a3cfd258923 udf: Restore i_lenAlloc when inode expansion fails
f08801252d26 scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP devices
ff6bdc205fd0 bpf: Guard against accessing NULL pt_regs in bpf_get_task_stack()
6520fedfcebb s390/hypfs: include z/VM guests with access control group set
c10e0627c71c s390/module: fix loading modules with a lot of relocations
ba7c71a777c1 net: stmmac: skip only stmmac_ptp_register when resume from suspend
11191406f2f1 net: sfp: ignore disabled SFP node
e651772adced media: venus: core: Drop second v4l2 device unregister
83d5196b65d1 Bluetooth: refactor malicious adv data check
77656fde3c01 Linux 5.10.95
ae2b20f27732 drm/vmwgfx: Fix stale file descriptors on failed usercopy
11ba2c6dfb90 select: Fix indefinitely sleeping task in poll_schedule_timeout()
a447d7f786ec KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU
12d3389b7af6 rcu: Tighten rcu_advance_cbs_nowake() checks
4d63363c88e3 bnx2x: Invalidate fastpath HSI version for VFs
fdcfabd0952d bnx2x: Utilize firmware 7.13.21.0
6a6acf927895 drm/i915: Flush TLBs before releasing backing store
c525532e4f87 Linux 5.10.94
c76c132444df scripts: sphinx-pre-install: Fix ctex support on Debian
133cef0b6154 scripts: sphinx-pre-install: add required ctex dependency
15ce9329a532 ath10k: Fix the MTU size on QCA9377 SDIO
25b1a6d33039 mtd: nand: bbt: Fix corner case in bad block table handling
8104e589fa4a lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
629250370052 mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
33bb7f027b06 lib82596: Fix IRQ check in sni_82596_probe
078b5a4498e0 scripts/dtc: dtx_diff: remove broken example from help text
21513c461557 dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
23bcf3615be7 dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
66467cc87a35 dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
4496e4a427a0 net: mscc: ocelot: fix using match before it is set
ee64479c9ce6 net: sfp: fix high power modules without diagnostic monitoring
819e76bc572e net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
4691c9f047a8 bcmgenet: add WOL IRQ check
6973b38b9dba net_sched: restore "mpu xxx" handling
20949c381646 net: bonding: fix bond_xmit_broadcast return value error bug
799730d182d1 arm64: dts: qcom: msm8996: drop not documented adreno properties
f6d4c0e017ec devlink: Remove misleading internal_flags from health reporter dump
2e51a761b7ab perf probe: Fix ppc64 'perf probe add events failed' case
59b44f77601d dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
0078f053714d dmaengine: at_xdmac: Fix lld view setting
7ab120636d4e dmaengine: at_xdmac: Fix concurrency over xfers_list
b5b27c5e3315 dmaengine: at_xdmac: Print debug message after realeasing the lock
c536b351a75f dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
cd22e22e8eac dmaengine: at_xdmac: Don't start transactions at tx_submit level
68a83051c8b1 perf script: Fix hex dump character output
7b9d40e9f60d libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
cd5c24d2230f gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
7f2ca96bd266 xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
2b1415c60b2e netns: add schedule point in ops_exit_list()
edc09548ffc5 inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
69e7e979ed66 taskstats: Cleanup the use of task->exit_code
56daa21414e9 virtio_ring: mark ring unused on error
0c4ebcb00d88 vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
c736ec01a2fc rtc: pxa: fix null pointer dereference
8b8ff4c793ee HID: vivaldi: fix handling devices not using numbered reports
d7544cf6939c net: axienet: increase default TX ring size to 128
557829d42d1f net: axienet: fix for TX busy handling
41831d496772 net: axienet: fix number of TX ring slots for available check
6301f3566aef net: axienet: Fix TX ring slot available check
7a3d3d7f6d7b net: axienet: limit minimum TX ring size
2f548489d64d net: axienet: add missing memory barriers
bcc5d57e6091 net: axienet: reset core on initialization prior to MDIO access
46c0ccaff285 net: axienet: Wait for PhyRstCmplt after core reset
34942a228aec net: axienet: increase reset timeout
a66b9bccf732 net/smc: Fix hung_task when removing SMC-R devices
51b52cf35485 clk: si5341: Fix clock HW provider cleanup
fe40f7aef387 clk: Emit a stern warning with writable debugfs enabled
38221afa03af af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
a49e402f2309 f2fs: fix to reserve space for IO align feature
39ad0581176d f2fs: compress: fix potential deadlock of compress file
e1840365ed4f parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
d806eb5f4e23 net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
38c798384b90 net/fsl: xgmac_mdio: Add workaround for erratum A-009885
734f4b0f831e ipv4: avoid quadratic behavior in netns dismantle
86f0587f7432 ipv4: update fib_info_cnt under spinlock protection
10e99ae9b5da perf evsel: Override attr->sample_period for non-libpfm4 events
58fa3e900255 xdp: check prog type before updating BPF link
38ee417f59c8 bpftool: Remove inclusion of utilities.mak from Makefiles
2bcab471a26f block: Fix fsync always failed if once failed
5e59f885353e powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
19aaef651948 powerpc/cell: Fix clang -Wimplicit-fallthrough warning
4cb7aba1e086 Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
78cf5f63a3a9 dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
16ad0aa917c9 RDMA/rxe: Fix a typo in opcode name
885860717c29 RDMA/hns: Modify the mapping attribute of doorbell to device
57cd8597c3ef dmaengine: uniphier-xdmac: Fix type of address variables
4fe77b7cd272 scsi: core: Show SCMD_LAST in text form
b30240911da4 Bluetooth: hci_sync: Fix not setting adv set duration
55698d11c8da Documentation: fix firewire.rst ABI file path error
5d38cbf66dd7 Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization
abecf9d74836 Documentation: ACPI: Fix data node reference documentation
d1e85fcd73b5 Documentation: dmaengine: Correctly describe dmatest with channel unset
f6736bd81db4 media: correct MEDIA_TEST_SUPPORT help text
55b10b88ac86 drm/vc4: hdmi: Make sure the device is powered with CEC
81ac08a800b0 media: rcar-csi2: Optimize the selection PHTW register
0baa3729d2eb can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
f62bf6ee4fa3 firmware: Update Kconfig help text for Google firmware
12224c0d19f3 of: base: Improve argument length mismatch error
7bb99c7e13f8 drm/radeon: fix error handling in radeon_driver_open_kms
0ca7ec6db20c ext4: don't use the orphan list when migrating an inode
679fb065326b ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
d60e9daba29e ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
f26b24b4c115 ext4: fast commit may miss tracking unwritten range during ftruncate
04b562730677 ext4: use ext4_ext_remove_space() for fast commit replay delete range
53998b3f6dcd ext4: Fix BUG_ON in ext4_bread when write quota data
da364ab35892 ext4: set csum seed in tmp inode while migrating to extents
e4221629d5e1 ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
720508dd118d ext4: initialize err_blk before calling __ext4_get_inode_loc
f9ed0ea0a9fc ext4: fix a possible ABBA deadlock due to busy PA
115b762b48ab ext4: make sure quota gets properly shutdown on error
762e4c33e9e5 ext4: make sure to reset inode lockdep class when quota enabling fails
f8c3ec2e21b9 btrfs: respect the max size in the header when activating swap file
e7764bccae77 btrfs: check the root node for uptodate before returning it
09e0ef287e93 btrfs: fix deadlock between quota enable and other quota operations
56f974d583fc xfrm: fix policy lookup for ipv6 gre packets
84166c1177f3 PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
7aeeb9fe9ca0 PCI: pci-bridge-emul: Correctly set PCIe capabilities
af1d0acdaca7 PCI: pci-bridge-emul: Fix definitions of reserved bits
0f2ae6691e73 PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
2a0d437d8a76 PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
def2825b09ec PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
6cbe8f8deb62 PCI: xgene: Fix IB window setup
e09f47e77b6e powerpc/64s/radix: Fix huge vmap false positive
eb44b1386af5 parisc: Fix lpa and lpa_user defines
9b78ee2341d4 drm/bridge: analogix_dp: Make PSR-exit block less
8cbbf4a6f1ac drm/nouveau/kms/nv04: use vzalloc for nv04_display
605583fcccb5 drm/etnaviv: limit submit sizes
6c1e3d8b1bff device property: Fix fwnode_graph_devcon_match() fwnode leak
ecb71f7bd584 s390/mm: fix 2KB pgtable release race
798754ba48b7 iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
c524f4cfb3e5 tracing/kprobes: 'nmissed' not showed correctly for kretprobe
b72075e395b3 cputime, cpuacct: Include guest time in user time in cpuacct.stat
13518f058fde serial: Fix incorrect rs485 polarity on uart open
9668cf9e4af0 fuse: Pass correct lend value to filemap_write_and_wait_range()
9fbaddd783fd xen/gntdev: fix unmap notification order
67b078d996f7 spi: uniphier: Fix a bug that doesn't point to private data correctly
05026c4e94c9 tpm: fix NPE on probe for missing device
76006d33f1c8 ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
4f0762ac32b5 crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
9e6ff2d5725b crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
2031e0246e45 crypto: omap-aes - Fix broken pm_runtime_and_get() usage
43e94431c313 rpmsg: core: Clean up resources on announce_create failure.
082ff9e12b4a phy: mediatek: Fix missing check in mtk_mipi_tx_probe
ff08cf1e34a1 ASoC: mediatek: mt8183: fix device_node leak
f28672eef4a9 ASoC: mediatek: mt8173: fix device_node leak
0df51040089d scsi: sr: Don't use GFP_DMA
de9a936b04c5 MIPS: Octeon: Fix build errors using clang
da7df943e254 i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
f09f7ccb28bb irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
bc2d961d821b MIPS: OCTEON: add put_device() after of_find_device_by_node()
ce34b03a71b6 udf: Fix error handling in udf_new_inode()
15be042e7fd9 powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
f2e658d9bda2 powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
044164b4198e selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
21125e011620 powerpc/40x: Map 32Mbytes of memory at startup
c330442f46ea MIPS: Loongson64: Use three arguments for slti
af8d07735083 ALSA: seq: Set upper limit of processed events
297210783a7a scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
dfde7afed711 dm: fix alloc_dax error handling in alloc_dev
2e2086f49e08 nvmem: core: set size for sysfs bin file
4a273a94bda8 w1: Misuse of get_user()/put_user() reported by sparse
87e91d6c6a5e KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
23bb3f01ceb5 KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
03c1595a181c powerpc/powermac: Add missing lockdep_register_key()
df29c01b9fbe clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
30d35a1abd9e i2c: mpc: Correct I2C reset procedure
4b25aad655c9 powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
25714ad6bf5e i2c: i801: Don't silently correct invalid transfer size
75e2cfa5fae9 powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
a83639521a4f powerpc/btext: add missing of_node_put
fc10d8f00a89 powerpc/cell: add missing of_node_put
297ff7d5f157 powerpc/powernv: add missing of_node_put
c83ba875d7be powerpc/6xx: add missing of_node_put
d240b08d8ac4 x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
3681e9f3f0f7 parisc: Avoid calling faulthandler_disabled() twice
f2a27dd7a2de random: do not throw away excess input to crng_fast_load
f8fdebfb4b37 serial: core: Keep mctrl register state and cached copy in sync
a03fd1b19891 serial: pl010: Drop CR register reset on set_termios
40ac33892630 regulator: qcom_smd: Align probe function with rpmh-regulator
3dc751213fe9 net: gemini: allow any RGMII interface mode
1063de897563 net: phy: marvell: configure RGMII delays for 88E1118
00580670b98b mlxsw: pci: Avoid flow control for EMAD packets
eaf8cffcf5d5 dm space map common: add bounds check to sm_ll_lookup_bitmap()
5850bef8e955 dm btree: add a defensive bounds check to insert_at()
754b663ea916 mac80211: allow non-standard VHT MCS-10/11
e8da60b3a629 net: mdio: Demote probed message to debug print
6b22c9824ddb btrfs: remove BUG_ON(!eie) in find_parent_nodes
623c65bc7336 btrfs: remove BUG_ON() in find_parent_nodes()
44cbd2a16a07 ACPI: battery: Add the ThinkPad "Not Charging" quirk
7b6dc07c6e69 amdgpu/pm: Make sysfs pm attributes as read-only for VFs
516e332d6fce drm/amdgpu: fixup bad vram size on gmc v8
ee88ff140de2 ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
8544074762e2 ACPICA: Fix wrong interpretation of PCC address
e70be176961d ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
8ea9216d20b7 ACPICA: Utilities: Avoid deleting the same object twice in a row
fcfd8282c5d2 ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
e3a51d6c90a8 jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
e35cb5b122fc drm/etnaviv: consider completed fence seqno in hang check
a0b13335a342 xfrm: rate limit SA mapping change message to user space
0b7beb2fea8f Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
6ac117edac18 ath11k: Fix napi related hang
756a7188b277 um: registers: Rename function names to avoid conflicts and build problems
d817d10f7a00 iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
f266e1c5bf88 iwlwifi: mvm: Fix calculation of frame length
6e44b600543c iwlwifi: remove module loading failure message
febab6b60d61 iwlwifi: fix leaks/bad data after failed firmware load
81d2e96ababb PM: AVS: qcom-cpr: Use div64_ul instead of do_div
c0a1d844e3e7 rtw88: 8822c: update rx settings to prevent potential hw deadlock
3ef25f3122c0 ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
e10de3105547 usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
282286c632a2 cpufreq: Fix initialization of min and max frequency QoS requests
37b25de3af10 PM: runtime: Add safety net to supplier device release
5dfc6fa0b8c2 arm64: tegra: Adjust length of CCPLEX cluster MMIO region
b68c56a149e4 arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
b6f7f0ad5af5 audit: ensure userspace is penalized the same as the kernel when under pressure
5d54ed155031 mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
51a5156bb779 media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()
f6bc6b178ce1 media: igorplugusb: receiver overflow should be reported
d698e024be2e HID: quirks: Allow inverting the absolute X/Y values
59f03633463f bpf: Do not WARN in bpf_warn_invalid_xdp_action()
0e8805f73b69 net: bonding: debug: avoid printing debug logs when bond is not notifying peers
8c72de32ff13 x86/mce: Mark mce_read_aux() noinstr
1ad3e60f1fec x86/mce: Mark mce_end() noinstr
f21ca973b43f x86/mce: Mark mce_panic() noinstr
de360d944386 x86/mce: Allow instrumentation during task work queueing
af371e0abb6c ath11k: Avoid false DEADLOCK warning reported by lockdep
aec69e2f33b4 selftests/ftrace: make kprobe profile testcase description unique
07ecabf15ad3 gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
7e09f9d15e43 net: phy: prefer 1000baseT over 1000baseKX
443133330a5d net-sysfs: update the queue counts in the unregistration path
58b4c1ce8328 ath10k: Fix tx hanging
fcba0bce3357 ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
93a108d466f8 iwlwifi: mvm: avoid clearing a just saved session protection id
ec01e0fe2184 iwlwifi: mvm: synchronize with FW after multicast commands
c1976a424807 thunderbolt: Runtime PM activate both ends of the device link
830e5d1b4344 media: m920x: don't use stack on USB reads
c33f0f22bfea media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
526b6c9b4521 media: rcar-vin: Update format alignment constraints
74e60c1dce06 media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
d0e3ab637de1 drm: rcar-du: Fix CRTC timings when CMM is used
e61aa46d0f27 x86/mm: Flush global TLB when switching to trampoline page-table
0946fdd9290a floppy: Add max size check for user space request
409d45bcd381 usb: uhci: add aspeed ast2600 uhci support
d0aec428c072 arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
fcb45ac39f90 ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win
b8b2e74a8751 ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
cda755506df4 ACPI: Change acpi_device_always_present() into acpi_device_override_status()
b029625063c1 ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
cf3b1a160dc2 media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions
adbe14867277 ath11k: Avoid NULL ptr access during mgmt tx cleanup
ab523ea096ef rsi: Fix out-of-bounds read in rsi_read_pkt()
752587675068 rsi: Fix use-after-free in rsi_rx_done_handler()
6036500fdf77 mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
8a6371d84c5f crypto: jitter - consider 32 LSB for APT
240cf5d3cb5e HSI: core: Fix return freed object in hsi_new_client
f4295b7dca87 gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
f0653cd4da66 tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
b8d10f601f22 drm/bridge: megachips: Ensure both bridges are probed before registration
43fc9e267e2e mlxsw: pci: Add shutdown method in PCI driver
b2e921fa9219 soc: ti: pruss: fix referenced node in error message
07fbbc4dc79d drm/amdgpu/display: set vblank_disable_immediate for DC
019fe9723a83 drm/amd/display: check top_pipe_to_program pointer
3c3c0b6c4ae9 ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
f54d8cd831be EDAC/synopsys: Use the quirk for version instead of ddr version
0b85d73fdbc8 media: b2c2: Add missing check in flexcop_pci_isr:
c978d39a8b14 HID: apple: Do not reset quirks when the Fn key is not found
2df002e3276b drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
5aa57672c66c usb: gadget: f_fs: Use stream_open() for endpoint files
129e8faaee97 ath11k: Fix crash caused by uninitialized TX ring
e8b271f2aadd media: atomisp: handle errors at sh_css_create_isp_params()
ebe9c978d9e7 batman-adv: allow netlink usage in unprivileged containers
ff452db96163 ARM: shmobile: rcar-gen2: Add missing of_node_put()
ff2138d6c2a3 media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
51ef6582a218 media: atomisp: set per-device's default mode
ac08140677c0 media: atomisp: fix try_fmt logic
518e059789f6 drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
e3ba02b043f2 drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
2f13f10fddf4 ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
a9d2ccfc7d2c selftests/bpf: Fix bpf_object leak in skb_ctx selftest
b207356933f4 drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
db1e878373bf fs: dlm: filter user dlm messages for kernel locks
f9c9a46efd94 Bluetooth: Fix debugfs entry leak in hci_register_dev()
852d7d436fd1 ARM: dts: omap3-n900: Fix lp5523 for multi color
b5793aff11d7 of: base: Fix phandle argument length mismatch error message
e16e836d510c clk: bm1880: remove kfrees on static allocations
36d46e21c9c4 ASoC: fsl_asrc: refine the check of available clock divider
5a6864e2e6ab RDMA/cxgb4: Set queue pair state when being queried
80524c8cdf29 ASoC: fsl_mqs: fix MODULE_ALIAS
74988d017dd1 powerpc/xive: Add missing null check after calling kmalloc
588e0b81ce38 mips: bcm63xx: add support for clk_set_parent()
e3de89d010c0 mips: lantiq: add support for clk_set_parent()
8f8468a089b0 arm64: tegra: Remove non existent Tegra194 reset
702902fc7fb0 arm64: tegra: Fix Tegra194 HDA {clock,reset}-names ordering
24b047d72c77 counter: stm32-lptimer-cnt: remove iio counter abi
a39460610452 misc: lattice-ecp3-config: Fix task hung when firmware load failed
696a50abbc7c ASoC: samsung: idma: Check of ioremap return value
d491a2c2cf96 ASoC: mediatek: Check for error clk pointer
c73ccdd62d21 phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
d781f4cd8c71 scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
6e2a16954459 iommu/iova: Fix race between FQ timeout and teardown
57bc8985753c ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
676049a3d2c6 iommu/amd: Restore GA log/tail pointer on host resume
c2bd7c31de1a iommu/amd: Remove iommu_init_ga()
62ea255f2bde dmaengine: pxa/mmp: stop referencing config->slave_id
0be9ae1e532e mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
88d78b25db1f mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
51b8e814bcef clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell
dff359e04260 of: unittest: 64 bit dma address test requires arch support
918105df78b7 of: unittest: fix warning on PowerPC frame size warning
0e04518b1dd9 ASoC: rt5663: Handle device_property_read_u32_array error codes
7c0d9c815ce8 RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
2432d325f946 RDMA/core: Let ib_find_gid() continue search even after empty entry
d77916df161b powerpc/powermac: Add additional missing lockdep_register_key()
8b3783e517f6 PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
7be2a0bcaf8e RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
e19469468b7b scsi: ufs: Fix race conditions related to driver data
ed43b2e048fe iommu/io-pgtable-arm: Fix table descriptor paddr formatting
e9e4d1fb4590 openrisc: Add clone3 ABI wrapper
551a785c26f6 binder: fix handling of error during copy
88ddf033a5e4 char/mwave: Adjust io port register size
8937aee4c0fa ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
bcd533417fd0 ALSA: oss: fix compile error when OSS_DEBUG is enabled
fd99aeb97845 clocksource: Avoid accidental unstable marking of clocksources
cacc6c30e3eb clocksource: Reduce clocksource-skew threshold
86ad478c99d2 powerpc/32s: Fix shift-out-of-bounds in KASAN init
ef798cd035f3 powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC
58014442a9e8 powerpc/irq: Add helper to set regs->softe
c9ffa84a3bd1 powerpc/perf: move perf irq/nmi handling details into traps.c
a0758b3be46d powerpc/perf: MMCR0 control for PMU registers under PMCC=00
f4df6db5b0b8 powerpc/64s: Convert some cpu_setup() and cpu_restore() functions to C
a9c9d2ff6423 dt-bindings: thermal: Fix definition of cooling-maps contribution property
2bd8d937957f ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
5a821af769bb powerpc/prom_init: Fix improper check of prom_getprop()
9ca761ef946d clk: imx8mn: Fix imx8mn_clko1_sels
999528d8a749 scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
c5f414d69ac9 RDMA/hns: Validate the pkey index
04a032ea2498 RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"
84cd5c029d48 ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
180e9d7384c6 ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
49d76154ba8d ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
f871cd8ee0f0 ext4: avoid trim error on fs with small groups
99590e820feb net: mcs7830: handle usb read errors properly
2b948524ae65 iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
04ce9e2aeda7 pcmcia: fix setting of kthread task states
5064bfe046b0 can: xilinx_can: xcan_probe(): check for error irq
b6dd1577bc92 can: softing: softing_startstop(): fix set but not used variable warning
b9ac866c23bb tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
fb46223c9f94 tpm: add request_locality before write TPM_INT_ENABLE
20edf903a3a5 can: mcp251xfd: add missing newline to printed strings
d71fca5d0167 regmap: Call regmap_debugfs_exit() prior to _init()
838acddcdf75 netrom: fix api breakage in nr_setsockopt()
0d04479857bc ax25: uninitialized variable in ax25_setsockopt()
27e9910c4516 spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
9d6350cf8e5a Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
9defd7d4c084 lib/mpi: Add the return value check of kcalloc()
e801f81cee3c net/mlx5: Set command entry semaphore up once got index free
d2b9ce705d79 Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
67e1a449a165 net/mlx5e: Don't block routes with nexthop objects in SW
cc40fa05c0a6 net/mlx5e: Fix page DMA map/unmap attributes
b3dda01d1d47 debugfs: lockdown: Allow reading debugfs files that are not world readable
b9b5da3e187e HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
541c3a044b46 HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
c47f842e0c3c HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
cf5ad827ee69 HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
94177fcecc35 usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
4579954bf4cc Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
f6bf3d66393b Bluetooth: hci_bcm: Check for error irq
f5e4f68d57d6 fsl/fman: Check for null pointer after calling devm_ioremap
60aca6fdc167 staging: greybus: audio: Check null pointer
a1068bfee47a rocker: fix a sleeping in atomic bug
2db344725e17 ppp: ensure minimum packet size in ppp_write()
45643b1b6ce1 netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
8772700a9f1e bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
342332fb0be6 bpf: Don't promote bogus looking registers after null check.
0036c78c492a netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
2e718389b986 power: reset: mt6397: Check for null res pointer
4210c35fe81b pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
2dee347f356d pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
0f03132191ba ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
595e1ec55b30 x86/mce/inject: Avoid out-of-bounds write when setting flags
df1268181928 hwmon: (mr75203) fix wrong power-up delay value
aea5302d9ddc x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
70eec71f32eb Bluetooth: hci_qca: Stop IBS timer during BT OFF
1d4e722b62d2 software node: fix wrong node passed to find nargs_prop
f8f3c1720d77 backlight: qcom-wled: Respect enabled-strings in set_brightness
de79bcbfaf4d backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
c79f9b8d8e26 backlight: qcom-wled: Override default length with qcom,enabled-strings
bf4daf6153c9 backlight: qcom-wled: Fix off-by-one maximum with default num_strings
09aed85e8c98 backlight: qcom-wled: Pass number of elements to read to read_u32_array
f4ed4fc504fd backlight: qcom-wled: Validate enabled string indices in DT
e668ac6506d3 bpftool: Enable line buffering for stdout
009bb7ee1577 Bluetooth: L2CAP: Fix using wrong mode
1a2241ad400b um: virtio_uml: Fix time-travel external time propagation
8411722e5652 um: fix ndelay/udelay defines
b2b1b490bd29 selinux: fix potential memleak in selinux_add_opt()
3253cf091464 mmc: meson-mx-sdio: add IRQ check
decb2099549d mmc: meson-mx-sdhc: add IRQ check
bdc6c9fc5f78 iwlwifi: mvm: test roc running status bits before removing the sta
a750fcd604a6 iwlwifi: mvm: fix 32-bit build in FTM
86b0122d2682 ARM: dts: armada-38x: Add generic compatible to UART nodes
1f5428e43806 arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
874b97e86278 arm64: dts: marvell: cn9130: add GPIO and SPI aliases
407ef1db4036 usb: ftdi-elan: fix memory leak on device disconnect
2a65da5a1ea3 ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
47dd693c94bf xfrm: state and policy should fail if XFRMA_IF_ID 0
db369047e3b3 xfrm: interface with if_id 0 should return error
37441ddadc1e media: hantro: Fix probe func error path
3849ec830bf7 drm/tegra: vic: Fix DMA API misuse
b230114bc57a drm/bridge: ti-sn65dsi86: Set max register for regmap
db97fc2c4425 drm/msm/dpu: fix safe status debugfs file
3580055d1fca arm64: dts: qcom: ipq6018: Fix gpio-ranges property
6f20a5a98a90 arm64: dts: qcom: c630: Fix soundcard setup
394ee480aa3e ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
f6e4a6cbdb6f media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
1a8869de328a media: msi001: fix possible null-ptr-deref in msi001_probe()
a79327bb0191 media: dw2102: Fix use after free
958a8819d414 ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
3e51460638a6 ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
b35263f000a5 crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
1f5b81874f27 crypto: stm32/cryp - fix bugs and crash in tests
1f6151b0774b crypto: stm32/cryp - fix lrw chaining mode
2bd40e3a3aa2 crypto: stm32/cryp - fix double pm exit
533af1621d1c crypto: stm32/cryp - check early input data
5deb24e50372 crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
e9e0dd5da8ca crypto: stm32/cryp - fix CTR counter carry
c40b1bc851e0 crypto: stm32 - Fix last sparse warning in stm32_cryp_check_ctr_counter
93033bbbdc25 selftests: harness: avoid false negatives if test has no ASSERTs
f568fd97d751 selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
d21b47c60737 x86/uaccess: Move variable into switch case statement
3e801ea43c4b xfrm: fix a small bug in xfrm_sa_len()
b87034d7a2a8 mwifiex: Fix possible ABBA deadlock
0836f9404017 rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
027165c491e4 drm/msm/dp: displayPort driver need algorithm rational
268f35245650 sched/rt: Try to restart rt period timer when rt runtime exceeded
bb0579ab5077 wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
b4b911b1648c media: si2157: Fix "warm" tuner state detection
7009a5fbc589 media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
df79d2bf95e0 media: dib8000: Fix a memleak in dib8000_init()
f0cb43a2c674 arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
88ed31aab481 arm64: lib: Annotate {clear, copy}_page() as position-independent
69e402a98541 bpf: Remove config check to enable bpf support for branch records
924886fa2246 bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
218d952160f7 bpf: Adjust BTF log size limit.
b77ef5b4ead6 sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
d7d5b3bc5263 sched/fair: Fix detection of per-CPU kthreads waking a task
ec121517ac8d Bluetooth: btmtksdio: fix resume failure
2a7edcb3ef72 staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
49f5cd2b7c41 staging: rtl8192e: return error code from rtllib_softmac_init()
04fdd426cef2 floppy: Fix hang in watchdog when disk is ejected
45bbe008013f serial: amba-pl011: do not request memory region twice
8409d2394cca tty: serial: uartlite: allow 64 bit address
a001a15ab374 arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
75919207c16a arm64: dts: ti: k3-j721e: Fix the L2 cache sets
2dcfa3c76596 arm64: dts: ti: k3-j7200: Fix the L2 cache sets
f277978d6c46 drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
3ca1b3b82fe7 drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode()
96e05d2d9370 thermal/drivers/imx8mm: Enable ADC when enabling monitor
ef72449e2d79 ACPI: EC: Rework flushing of EC work while suspended to idle
c0acd5a09796 cgroup: Trace event cgroup id fields should be u64
e7e178e26418 arm64: dts: qcom: msm8916: fix MMC controller aliases
894d91c6334b netfilter: bridge: add support for pppoe filtering
13f64bbe4255 thermal/drivers/imx: Implement runtime PM support
c3a59f34e87c media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'
50c4244906d6 media: venus: core: Fix a potential NULL pointer dereference in an error handling path
eeefa2eae8fc media: venus: core, venc, vdec: Fix probe dependency error
53f65afc260f media: venus: pm_helpers: Control core power domain manually
89f518b153d1 media: coda: fix CODA960 JPEG encoder buffer overflow
1da628d351a9 media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
2028fb832da6 media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
e8d78f924f02 media: imx-pxp: Initialize the spinlock prior to using it
621e8ce75d66 media: rcar-csi2: Correct the selection of hsfreqrange
ad52b9890b83 mfd: atmel-flexcom: Use .resume_noirq
46d6a2311409 mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
f93c9aa1d36f tty: serial: atmel: Call dma_async_issue_pending()
755a6c873b9c tty: serial: atmel: Check return code of dmaengine_submit()
bd85b2e77aa9 arm64: dts: ti: k3-j721e: correct cache-sets info
32e9947e6639 ath11k: Use host CE parameters for CE interrupts configuration
6a49acfacab5 crypto: qat - fix undetected PFVF timeout in ACK loop
475ac5c5653f crypto: qat - make pfvf send message direction agnostic
ee1c74c3c9c2 crypto: qat - remove unnecessary collision prevention step in PFVF
472f76835200 crypto: qat - fix spelling mistake: "messge" -> "message"
ae766527e6b7 ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco
eab4204588a0 mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
867d4ace48da crypto: qce - fix uaf on qce_skcipher_register_one
e19b3c1b5768 crypto: qce - fix uaf on qce_ahash_register_one
5de640f59f99 media: dmxdev: fix UAF when dvb_register_device() fails
1d64e2bd2222 arm64: dts: renesas: cat875: Add rx/tx delays
a33eef23a658 drm/vboxvideo: fix a NULL vs IS_ERR() check
43220a61e7b8 fs: dlm: fix build with CONFIG_IPV6 disabled
0d7c5d10e7db tee: fix put order in teedev_close_context()
097e601eb887 ath11k: reset RSN/WPA present state for open BSS
fa51addd391d ath11k: clear the keys properly via DISABLE_KEY
df94b37e902b ath11k: Fix ETSI regd with weather radar overlap
ffc9019bd991 Bluetooth: stop proccessing malicious adv data
3273541fed60 memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
55917db35976 fs: dlm: don't call kernel_getpeername() in error_report()
98923ebb034b fs: dlm: use sk->sk_socket instead of con->sock
6edd1bd8e3d8 arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
eb1f75fa2458 arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
6f012f2c445b arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
96d710b1c6ff arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
0b57480ed51a media: aspeed: Update signal status immediately to ensure sane hw state
0ff0ae69d27c media: em28xx: fix memory leak in em28xx_init_dev
b441d9428735 media: aspeed: fix mode-detect always time out at 2nd run
8d132d9dd8ba media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
fc2b95e7aeae media: atomisp: fix enum formats logic
6e5353238c55 media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
6cbabad304c4 media: staging: media: atomisp: pci: Balance braces around conditional statements in file atomisp_cmd.c
22b0b68f7d9f media: atomisp: fix ifdefs in sh_css.c
0bf5e8af6eb6 media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid()
3cb3e66f583c media: atomisp: do not use err var when checking port validity for ISP2400
08e43223fb4e media: atomisp: fix inverted logic in buffers_needed()
fb370f6dc7d5 media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
1daacf9bb69a media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities()
e1da9301cf54 media: videobuf2: Fix the size printk format
90807ab437e8 mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
9bfed11dcf59 ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
2fe056d9791a wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
22406ed4e389 wcn36xx: populate band before determining rate on RX
92fea7bd5af3 wcn36xx: Put DXE block into reset before freeing memory
0d53c47f6ab5 wcn36xx: Release DMA channel descriptor allocations
1850195a852d wcn36xx: Fix DMA channel enable/disable cycle
38a7842889f5 wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
fcb267bb9577 wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
e53ff4dd7095 drm/vc4: hdmi: Set a default HSM rate
b9c2343373f6 clk: bcm-2835: Remove rounding up the dividers
836dd37fe2bb clk: bcm-2835: Pick the closest clock rate
88f1b613c37f Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
9ddfa1c19191 drm/rockchip: dsi: Reconfigure hardware on resume()
58904ed18628 drm/rockchip: dsi: Disable PLL clock on bind error
6215cde02085 drm/rockchip: dsi: Hold pm-runtime across bind/unbind
8ccaafa1caf0 drm/rockchip: dsi: Fix unbalanced clock on probe error
9bc19022aa08 drm/panel: innolux-p079zca: Delete panel on attach() failure
b01b7b868479 drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
0499c863a8db drm: fix null-ptr-deref in drm_dev_init_release()
7798757013ec drm/bridge: display-connector: fix an uninitialized pointer in probe()
cb5813b0e591 Bluetooth: L2CAP: Fix not initializing sk_peer_pid
ed0b1fd3ec6e drm/ttm: Put BO in its memory manager's lru list
7b9fa915a58d shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
6c6f86bb618b mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages
e04b1dfe15ce dma/pool: create dma atomic pool only if dma zone has managed pages
d2e572411738 mm_zone: add function to check if managed dma zone exists
2142a7e9bd1f PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
45c74f4f54db dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
191a24ceae75 gpu: host1x: Add back arm_iommu_detach_device()
068067453690 iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
3dae11f8e381 lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
e4a2c924a17e iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
256302cb2f86 can: softing_cs: softingcs_probe(): fix memleak on registration failure
aa57725e2d2a media: cec-pin: fix interrupt en/disable handling
2e566cacc321 media: stk1160: fix control-message timeouts
1a0ca711dff6 media: pvrusb2: fix control-message timeouts
2dbf430ead59 media: redrat3: fix control-message timeouts
6e9c120bf956 media: dib0700: fix undefined behavior in tuner shutdown
5e98ac260de6 media: s2255: fix control-message timeouts
09b0b918a69b media: cpia2: fix control-message timeouts
d90833106c09 media: em28xx: fix control-message timeouts
2182575c83f9 media: mceusb: fix control-message timeouts
460525acc953 media: flexcop-usb: fix control-message timeouts
7cac8a562427 media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
1da0b1cd4212 rtc: cmos: take rtc_lock while reading from CMOS
14f6cfe0d790 tools/nolibc: fix incorrect truncation of exit code
5e258640ba54 tools/nolibc: i386: fix initial stack alignment
06f7528d641b tools/nolibc: x86-64: Fix startup code bug
98259dd54e8e x86/gpu: Reserve stolen memory for first integrated Intel GPU
e2a17dcad56e mtd: rawnand: davinci: Rewrite function description
8933138a6660 mtd: rawnand: davinci: Avoid duplicated page read
677764634b42 mtd: rawnand: davinci: Don't calculate ECC when reading page
a8a607b0049d mtd: Fixed breaking list in __mtd_del_partition.
ff10cd7bb295 mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
538a5e208e7d mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
777a700ccfa6 nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()
08283b076f4e f2fs: fix to do sanity check in is_alive()
57cfc965e375 HID: wacom: Avoid using stale array indicies to read contact count
7fd22c99bbed HID: wacom: Ignore the confidence flag when a touch is removed
9a4800e0f6a5 HID: wacom: Reset expected and received contact counts at the same time
c2e39d5df028 HID: uhid: Fix worker destroying device without any protection
aa1346113c75 KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
.../linux/linux-yocto-rt_5.10.bb | 6 ++---
.../linux/linux-yocto-tiny_5.10.bb | 8 +++----
meta/recipes-kernel/linux/linux-yocto_5.10.bb | 24 +++++++++----------
3 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
index a8e8e604a3..eb357917fc 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
@@ -11,13 +11,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "ba47a407fe04203adb0ab5e164597c958cd9e334"
-SRCREV_meta ?= "7df27e6d296dfa16f289883c0661eed45059360c"
+SRCREV_machine ?= "8aebbbd41d16fc564ff99709d4f01a116d07e7a4"
+SRCREV_meta ?= "0db3f511b2a553a5ea31ac45249a42f084fc287c"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}"
-LINUX_VERSION ?= "5.10.93"
+LINUX_VERSION ?= "5.10.96"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
index 32e42cbda4..b2cd6887ee 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
@@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "5.10.93"
+LINUX_VERSION ?= "5.10.96"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine:qemuarm ?= "ceb1f194e59c9dd3bdd83d51bb0994f3db23bf61"
-SRCREV_machine ?= "878e5c1469550bb0f8778d16d4adbe7d48b0b28d"
-SRCREV_meta ?= "7df27e6d296dfa16f289883c0661eed45059360c"
+SRCREV_machine:qemuarm ?= "ca361e2633ab577333303359eb2f7b0040647e5e"
+SRCREV_machine ?= "36f032fc87112de000ca01b6e8a41313d418dcd9"
+SRCREV_meta ?= "0db3f511b2a553a5ea31ac45249a42f084fc287c"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/meta/recipes-kernel/linux/linux-yocto_5.10.bb b/meta/recipes-kernel/linux/linux-yocto_5.10.bb
index 3a0a43bc0b..649d712fda 100644
--- a/meta/recipes-kernel/linux/linux-yocto_5.10.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_5.10.bb
@@ -13,17 +13,17 @@ KBRANCH:qemux86 ?= "v5.10/standard/base"
KBRANCH:qemux86-64 ?= "v5.10/standard/base"
KBRANCH:qemumips64 ?= "v5.10/standard/mti-malta64"
-SRCREV_machine:qemuarm ?= "50c0e06718fb2b264619ce8d82608877d1e62a81"
-SRCREV_machine:qemuarm64 ?= "7907c5eb81e9a51307b5269d546999ebf47d9d59"
-SRCREV_machine:qemumips ?= "e9c51de36554662082afc08c6e54599b310c7951"
-SRCREV_machine:qemuppc ?= "77f361ea5eb293dcfe122ecb65f33ba32fd12501"
-SRCREV_machine:qemuriscv64 ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_machine:qemuriscv32 ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_machine:qemux86 ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_machine:qemux86-64 ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_machine:qemumips64 ?= "b668a352c94a8c29e585608e8302cacb1350f5ed"
-SRCREV_machine ?= "a1bbb29fe30c94c21309aa8b8c0d06fa12f3368d"
-SRCREV_meta ?= "7df27e6d296dfa16f289883c0661eed45059360c"
+SRCREV_machine:qemuarm ?= "7ad48434f8e0e848f7fe4891ee7ba670700c36fc"
+SRCREV_machine:qemuarm64 ?= "932cd0e7a66273eba2da54b4ac67e3c6e384e614"
+SRCREV_machine:qemumips ?= "27d7f99a1211d8eca210a84c88a9058772a751a5"
+SRCREV_machine:qemuppc ?= "914396443522268b332c8efe83b3b0306befd1cb"
+SRCREV_machine:qemuriscv64 ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_machine:qemuriscv32 ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_machine:qemux86 ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_machine:qemux86-64 ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_machine:qemumips64 ?= "ba30b538c1750a9fe5db275260862c99a5ed356a"
+SRCREV_machine ?= "74244dd30b3a2415a785d2228ab5abdef4536f03"
+SRCREV_meta ?= "0db3f511b2a553a5ea31ac45249a42f084fc287c"
# remap qemuarm to qemuarma15 for the 5.8 kernel
# KMACHINE:qemuarm ?= "qemuarma15"
@@ -32,7 +32,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "5.10.93"
+LINUX_VERSION ?= "5.10.96"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
--
2.19.1
^ permalink raw reply related [relevance 1%]
* [PATCH 2/6] linux-yocto/5.15: update to v5.15.19
@ 2022-02-04 4:16 1% ` bruce.ashfield
2022-02-04 4:16 1% ` [PATCH 3/6] linux-yocto/5.10: update to v5.10.96 bruce.ashfield
1 sibling, 0 replies; 200+ results
From: bruce.ashfield @ 2022-02-04 4:16 UTC (permalink / raw)
To: richard.purdie; +Cc: openembedded-core
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Updating linux-yocto/5.15 to the latest korg -stable release that comprises
the following commits:
47cccb1eb2fe Linux 5.15.19
a9739362c7b5 mtd: rawnand: mpc5121: Remove unused variable in ads5121_select_chip()
4633a79ff8bc block: Fix wrong offset in bio_truncate()
3d7b7272ce9d fsnotify: invalidate dcache before IN_DELETE event
e8421a9d7bb3 usr/include/Makefile: add linux/nfc.h to the compile-test coverage
c571505aa0fc usb: dwc3: xilinx: fix uninitialized return value
442414e8c474 psi: fix "defined but not used" warnings when CONFIG_PROC_FS=n
949c4c188955 psi: fix "no previous prototype" warnings when CONFIG_CGROUPS=n
fd26531855e6 perf/core: Fix cgroup event list management
cba7bdc04720 dt-bindings: can: tcan4x5x: fix mram-cfg RX FIFO config
e905e1b65ce9 irqchip/realtek-rtl: Fix off-by-one in routing
f67594cbf3c8 irqchip/realtek-rtl: Map control data to virq
bcea886771c3 Bluetooth: refactor malicious adv data check
c5e216e880fa net: bridge: vlan: fix memory leak in __allowed_ingress
8861857ccc9d ipv4: remove sparse error in ip_neigh_gw4()
d887a33724ec ipv4: tcp: send zero IPID in SYNACK messages
4d0bd948ee86 ipv4: raw: lock the socket in raw_bind()
2387357199a0 net: bridge: vlan: fix single net device option dumping
e406345f8a26 Revert "ipv6: Honor all IPv6 PIO Valid Lifetime values"
1ac025f24b89 gve: Fix GFP flags when allocing pages
35b092d3b57f ceph: put the requests/sessions when it fails to alloc memory
0536379e9d9d KVM: selftests: Don't skip L2's VMCALL in SMM test for SVM guest
9b6be5b1a053 Revert "drm/ast: Support 1600x900 with 108MHz PCLK"
1714199af7ec sch_htb: Fail on unsupported parameters when offload is requested
3e662ceb3e6d net: hns3: handle empty unknown interrupt for VF
925181ea76b5 net: cpsw: Properly initialise struct page_pool_params
0690c3943ed0 yam: fix a memory leak in yam_siocdevprivate()
4d5c2dfbc120 drm/msm/a6xx: Add missing suspend_count increment
8f069f6dde51 drm/msm/dpu: invalid parameter check in dpu_setup_dspp_pcc
13bd31390cae drm/msm/hdmi: Fix missing put_device() call in msm_hdmi_get_phy
03a91f9fa93b can: tcan4x5x: regmap: fix max register value
d0a56e4ebc6b video: hyperv_fb: Fix validation of screen resolution
38f0bdd548fd net/smc: Transitional solution for clcsock race issue
fdcdc94b3d35 ibmvnic: don't spin in tasklet
d4435164be13 ibmvnic: init ->running_cap_crqs early
aa6ae2341a8f ibmvnic: Allow extra failures before disabling
9ae4cd5de2a5 ipv4: fix ip option filtering for locally generated fragments
28aaed966e76 powerpc/perf: Fix power_pmu_disable to call clear_pmi_irq_pending only if PMI is pending
b9dc12e481c0 hwmon: (adt7470) Prevent divide by zero in adt7470_fan_write()
774a6ef81458 hwmon: (lm90) Fix sysfs and udev notifications
f4a61d7989d5 hwmon: (lm90) Mark alert as broken for MAX6654
ccdf90878b8b hwmon: (lm90) Re-enable interrupts after alert clears
da20522eba44 Drivers: hv: balloon: account for vmbus packet header in max_pkt_size
82cc3382e34e io_uring: fix bug in slow unregistering of nodes
fa005a5c5d4d efi/libstub: arm64: Fix image check alignment at entry
42ff00c23b16 rxrpc: Adjust retransmission backoff
437b6b3bd88c octeontx2-pf: Forward error codes to VF
689620df2080 octeontx2-af: cn10k: Do not enable RPM loopback for LPC interfaces
35dd0b7e5a13 octeontx2-af: Increase link credit restore polling timeout
f13bf41cbe2d octeontx2-af: verify CQ context updates
4070cf004da3 octeontx2-pf: cn10k: Ensure valid pointers are freed to aura
a332a1050ac6 octeontx2-af: Retry until RVU block reset complete
b578044bf4de octeontx2-af: Fix LBK backpressure id count
77c5abff9330 octeontx2-af: Do not fixup all VF action entries
aefaccd19379 phylib: fix potential use-after-free
82688a07cc02 net: stmmac: dwmac-visconti: Fix clock configuration for RMII mode
27e249cafa4f net: stmmac: dwmac-visconti: Fix bit definitions for ETHER_CLK_SEL
36c7e4f4a3ec net: phy: broadcom: hook up soft_reset for BCM54616S
58e81159b4f7 sched/pelt: Relax the sync of util_sum with util_avg
767060539ac4 perf: Fix perf_event_read_local() time
498e6604a3ae powerpc/64s: Mask SRR0 before checking against the masked NIP
3dc90add0ca9 netfilter: conntrack: don't increment invalid counter on NF_REPEAT
3bfbc00587dc powerpc64/bpf: Limit 'ldbrx' to processors compliant with ISA v2.06
d66377ed9a20 SUNRPC: Don't dereference xprt->snd_task if it's a cookie
8ea839e3a59e SUNRPC: Use BIT() macro in rpc_show_xprt_state()
19d4d09c2f16 KVM: arm64: pkvm: Use the mm_ops indirection for cache maintenance
ee062665fbae NFS: Ensure the server has an up to date ctime before renaming
7a784c2eaae8 NFS: Ensure the server has an up to date ctime before hardlinking
fe36a67e82c8 ipv6: annotate accesses to fn->fn_sernum
56480fb10b97 drm/msm/dsi: invalid parameter check in msm_dsi_phy_enable
0069c2331be0 drm/msm/dsi: Fix missing put_device() call in dsi_get_phy
971754f4681c drm/msm: Fix wrong size calculation
d70d2aa49ace net-procfs: show net devices bound packet types
d7396948cf38 NFSv4: nfs_atomic_open() can race when looking up a non-regular file
4c36ca387af4 NFSv4: Handle case where the lookup of a directory fails
72edb228b420 hwmon: (lm90) Reduce maximum conversion rate for G781
dee686cbfdd1 ipv4: avoid using shared IP generator for connected sockets
eeb0c916b0f8 ping: fix the sk_bound_dev_if match in ping_lookup
4d647a2b6074 hwmon: (lm90) Mark alert as broken for MAX6680
38cfdc0ef474 hwmon: (lm90) Mark alert as broken for MAX6646/6647/6649
e43669c77cb3 net: fix information leakage in /proc/net/ptype
1515e72aae80 ARM: 9170/1: fix panic when kasan and kprobe are enabled
88e32f7b37a0 ipv6_tunnel: Rate limit warning messages
b11e34f7bab2 scsi: bnx2fc: Flush destroy_work queue before calling bnx2fc_interface_put()
9c2ece4852a6 scsi: elx: efct: Don't use GFP_KERNEL under spin lock
daf9ac79e75b rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev
85aba11a8ea9 rpmsg: char: Fix race between the release of rpmsg_ctrldev and cdev
a1f7aa8d60bf usb: roles: fix include/linux/usb/role.h compile issue
d22045c80283 i40e: fix unsigned stat widths
d49582860d33 i40e: Fix for failed to init adminq while VF reset
00eddb0e4ea1 i40e: Fix queues reservation for XDP
98b70add7576 i40e: Fix issue when maximum queues is exceeded
d12f5a7c48a9 i40e: Increase delay to 1 s after global EMP reset
c894d2f9fd53 powerpc/32: Fix boot failure with GCC latent entropy plugin
db37befafa53 powerpc/32s: Fix kasan_init_region() for KASAN
569c81c077eb powerpc/32s: Allocate one 256k IBAT instead of two consecutives 128k IBATs
190753f63fc0 x86/cpu: Add Xeon Icelake-D to list of CPUs that support PPIN
98ccfec9eae6 x86/MCE/AMD: Allow thresholding interface updates after init
74e88eceb0af PCI/sysfs: Find shadow ROM before static attribute initialization
cef9335c465d sched/membarrier: Fix membarrier-rseq fence command missing from query bitmask
61296272db59 ocfs2: fix a deadlock when commit trans
9f71d68fa813 jbd2: export jbd2_journal_[grab|put]_journal_head
4ca8a0bc8354 mm, kasan: use compare-exchange operation to set KASAN page tag
28b346571edd ucsi_ccg: Check DEV_INT bit only when starting CCG4
3cdaeb85ed1e usb: typec: tcpm: Do not disconnect when receiving VSAFE0V
6b71fad7c868 usb: typec: tcpm: Do not disconnect while receiving VBUS off
a1399fe6d3ba usb: typec: tcpci: don't touch CC line if it's Vconn source
9340226388c6 USB: core: Fix hang in usb_kill_urb by adding memory barriers
1cd3a86107f6 usb: dwc3: xilinx: Fix error handling when getting USB3 PHY
72d338bc467f usb: dwc3: xilinx: Skip resets and USB3 register settings for USB2.0 mode
897d462d4d15 usb: cdnsp: Fix segmentation fault in cdns_lost_power function
279804632560 usb: gadget: f_sourcesink: Fix isoc transfer for USB_SPEED_SUPER_PLUS
42865e5544da usb: common: ulpi: Fix crash in ulpi_match()
d5755832a1e4 usb: xhci-plat: fix crash when suspend if remote wake enable
a93284827cb2 usb-storage: Add unusual-devs entry for VL817 USB-SATA bridge
209a523dea93 kbuild: remove include/linux/cyclades.h from header file check
fa5180351abe tty: Add support for Brainboxes UC cards.
b51afdc797fe tty: Partially revert the removal of the Cyclades public API
ff79be505ad8 tty: n_gsm: fix SW flow control encoding/handling
775fcd69038a serial: stm32: fix software flow control transfer
f79903783db1 serial: 8250: of: Fix mapped region size when using reg-offset property
f0cb78064e1c serial: pl011: Fix incorrect rs485 RTS polarity on set_mctrl
965bc27251f0 dm: properly fix redundant bio-based IO accounting
4cca3e3ef21d block: add bio_start_io_acct_time() to control start_time
86125006d88d dm: revert partial fix for redundant bio-based IO accounting
c0af639c1adc KVM: PPC: Book3S HV Nested: Fix nested HFSCR being clobbered with multiple vCPUs
e668b527a259 KVM: x86: Sync the states size with the XCR0/IA32_XSS at, any time
096779d44087 KVM: x86: Update vCPU's runtime CPUID on write to MSR_IA32_XSS
5afeafcc59bb KVM: x86: Keep MSR_IA32_XSS unchanged for INIT
e302786233e6 KVM: x86: Forcibly leave nested virt when SMM state is toggled
6f3e157e21b2 KVM: x86: nSVM: skip eax alignment check for non-SVM instructions
575656560897 KVM: SVM: Don't intercept #GP for SEV guests
3470722fac22 KVM: SVM: Never reject emulation due to SMAP errata for !SEV guests
54b3439c8e70 KVM: LAPIC: Also cancel preemption timer during SET_LAPIC
548f20b39ec9 drm/amd/display: Fix FP start/end for dcn30_internal_validate_bw.
73740f948252 drm/atomic: Add the crtc to affected crtc only if uapi.enable = true
473aed10d16d drm/etnaviv: relax submit size limits
b7bfc2c6cdd2 perf/x86/intel: Add a quirk for the calculation of the number of counters on Alder Lake
1b4abcd997ad perf/x86/intel/uncore: Fix CAS_COUNT_WRITE issue for ICX
b8140d7733e0 powerpc/audit: Fix syscall_get_arch()
d3e4c61e143e psi: Fix uaf issue when psi trigger is destroyed while being polled
b17cb93dda1d Revert "KVM: SVM: avoid infinite loop on NPF from bad address"
e6023ab8c729 fsnotify: fix fsnotify hooks in pseudo filesystems
2aac1eda4638 ceph: set pool_ns in new inode layout for async creates
36d433ae3242 ceph: properly put ceph_string reference after async create attempt
4e5dcbedd48d tracing: Don't inc err_log entry count if entry allocation fails
e33fa4a46ee2 tracing/histogram: Fix a potential memory leak for kstrdup()
fb9b60bbda55 PM: wakeup: simplify the output logic of pm_show_wakelocks()
3df524489788 efi: runtime: avoid EFIv2 runtime services on Apple x86 machines
cbf96c58e28b udf: Fix NULL ptr deref when converting from inline format
2ea17d25be51 udf: Restore i_lenAlloc when inode expansion fails
172aa3b81182 scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP devices
348a8501e602 ucount: Make get_ucount a safe get_user replacement
2dc0a8e0129f powerpc/bpf: Update ldimm64 instructions during extra pass
2f262cadff57 powerpc32/bpf: Fix codegen for bpf-to-bpf calls
0bcd484587b3 bpf: Guard against accessing NULL pt_regs in bpf_get_task_stack()
cfd2a7f8deaa s390/nmi: handle vector validity failures for KVM guests
c058e1ae9dd5 s390/nmi: handle guarded storage validity failures for KVM guests
4abcb06fdcb2 s390/hypfs: include z/VM guests with access control group set
2025d5cb381e s390/module: fix loading modules with a lot of relocations
a3aa4850b37b KVM: arm64: Use shadow SPSR_EL1 when injecting exceptions on !VHE
d9505958e1ee ARM: 9180/1: Thumb2: align ALT_UP() sections in modules sufficiently
cbab3cac94c6 ARM: 9179/1: uaccess: avoid alignment faults in copy_[from|to]_kernel_nofault
e826ab185717 net: stmmac: skip only stmmac_ptp_register when resume from suspend
9ef5a86d447a net: stmmac: configure PTP clock source prior to PTP initialization
30705f1f012c net: sfp: ignore disabled SFP node
5e32b05c3861 can: m_can: m_can_fifo_{read,write}: don't read or write from/to FIFO if length is 0
9c43548a7fb8 Linux 5.15.18
6066977961fc drm/vmwgfx: Fix stale file descriptors on failed usercopy
9c82ce593626 arm64/bpf: Remove 128MB limit for BPF JIT programs
7b6577cf9fe4 drm/amdgpu: Use correct VIEWPORT_DIMENSION for DCN2
145407e54fd1 select: Fix indefinitely sleeping task in poll_schedule_timeout()
c3156dbd5082 rcu: Tighten rcu_advance_cbs_nowake() checks
6ebe994b54a6 memcg: better bounds on the memcg stats updates
6c8076660d9c memcg: unify memcg stat flushing
7182935bd5ae memcg: flush stats only if updated
2691be41fede bnx2x: Invalidate fastpath HSI version for VFs
66e1791cbeed bnx2x: Utilize firmware 7.13.21.0
b168b1a0397e io_uring: fix not released cached task refs
f71c91ed1d4b drm/amd/display: reset dcn31 SMU mailbox on failures
8a17a077e7e9 drm/i915: Flush TLBs before releasing backing store
e8a2995c6076 Linux 5.15.17
4ea9b8ed6459 scripts: sphinx-pre-install: Fix ctex support on Debian
21c9a4d2cdd4 scripts: sphinx-pre-install: add required ctex dependency
ffd8fd2faf47 lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
8d8f479e08a3 bonding: Fix extraction of ports from the packet headers
52b66f818916 mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
42de0446a142 lib82596: Fix IRQ check in sni_82596_probe
8d1e3f319160 scripts/dtc: dtx_diff: remove broken example from help text
46210f505189 sch_api: Don't skip qdisc attach on ingress
814527dbc101 dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
34aa30c8ff90 dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
3f219ebc9f63 dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
e829e487f193 net: mscc: ocelot: fix using match before it is set
f864b6130498 net: phy: micrel: use kszphy_suspend()/kszphy_resume for irq aware devices
ed27539e5a4b net: cpsw: avoid alignment faults by taking NET_IP_ALIGN into account
d1a29a4e334b net: sfp: fix high power modules without diagnostic monitoring
a2faa4a27262 net: ocelot: Fix the call to switchdev_bridge_port_offload
f8df88d6d10c net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
c2d55304dba8 net: wwan: Fix MRU mismatch issue which may lead to data connection lost
5715614a9da8 bcmgenet: add WOL IRQ check
784ea1478f4d net: mscc: ocelot: don't let phylink re-enable TX PAUSE on the NPI port
b4e6455d7ffc net_sched: restore "mpu xxx" handling
75a09b8d0208 net: ipa: fix atomic update in ipa_endpoint_replenish()
f1d206181f19 net: bonding: fix bond_xmit_broadcast return value error bug
62009fa50c1a net: fix sock_timestamping_bind_phc() to release device
55d613f5d4c2 arm64: dts: qcom: msm8996: drop not documented adreno properties
795ad139ed91 devlink: Remove misleading internal_flags from health reporter dump
228a7024ed8a perf probe: Fix ppc64 'perf probe add events failed' case
115b85125624 perf tools: Drop requirement for libstdc++.so for libopencsd check
e73f737a6e71 dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
b81e898073c2 dmaengine: at_xdmac: Fix lld view setting
fb8f0e827af2 dmaengine: at_xdmac: Fix concurrency over xfers_list
5a8547fc3c21 dmaengine: at_xdmac: Print debug message after realeasing the lock
da1875fd4c25 dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
45e0d5185031 dmaengine: at_xdmac: Don't start transactions at tx_submit level
e127c17af30e perf script: Fix hex dump character output
48a46df6d542 libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
09c0535c768d gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
63bc14d6e261 vdpa/mlx5: Restore cur_num_vqs in case of failure in change_num_qps()
786e608e97b9 xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
6dc6e9f9d94d iwlwifi: fix Bz NMI behaviour
31428796ca4b netns: add schedule point in ops_exit_list()
958cbb139ec4 inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
0288b85d750e taskstats: Cleanup the use of task->exit_code
be82a92c46bc virtio_ring: mark ring unused on error
0d3334c47a2e vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
087d45cd0f1a rtc: pxa: fix null pointer dereference
4c979e88b658 HID: vivaldi: fix handling devices not using numbered reports
b81f33f1fc38 um: gitignore: Add kernel/capflags.c
fe17064738ad bitops: protect find_first_{,zero}_bit properly
6ad2daa516de net: axienet: increase default TX ring size to 128
4928dd5990ea net: axienet: fix for TX busy handling
a530eb5ac606 net: axienet: fix number of TX ring slots for available check
6342bde86b5a net: axienet: Fix TX ring slot available check
b9d67f0a6dc0 net: axienet: limit minimum TX ring size
e8893b1f8899 net: axienet: add missing memory barriers
07a6ec97c1ef net: axienet: reset core on initialization prior to MDIO access
9b7f3e6adc15 net: axienet: Wait for PhyRstCmplt after core reset
712224b86247 net: axienet: increase reset timeout
25b1d0df9483 net/smc: Fix hung_task when removing SMC-R devices
405d639ac411 gpio: idt3243x: Fix IRQ check in idt_gpio_probe
4928241698e1 gpio: mpc8xxx: Fix IRQ check in mpc8xxx_probe
e7525b3b9eda pinctrl/rockchip: fix gpio device creation
8fc3bd2c347b clk: si5341: Fix clock HW provider cleanup
4919c0737806 clk: Emit a stern warning with writable debugfs enabled
3872d146f2b0 af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
cb697a36f415 crypto: octeontx2 - uninitialized variable in kvf_limits_store()
2d7d3b6da85e f2fs: fix to check available space of CP area correctly in update_ckpt_flags()
0789b9b34922 f2fs: fix to reserve space for IO align feature
56dabe87c4aa f2fs: compress: fix potential deadlock of compress file
b653ee5c4136 f2fs: fix to avoid panic in is_alive() if metadata is inconsistent
92804f969524 f2fs: fix remove page failed in invalidate compress pages
28e36db0617c drm/vmwgfx: Remove unused compile options
f468282f3de0 drm/vmwgfx: Remove explicit transparent hugepages support
42b777c6aef9 riscv: dts: microchip: mpfs: Drop empty chosen node
fc1d427d15aa parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
911b5ba7c54f net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
fa456d92c4b7 net/fsl: xgmac_mdio: Add workaround for erratum A-009885
0cba6beb9645 mlx5: Don't accidentally set RTO_ONLINK before mlx5e_route_lookup_ipv4_get()
6c923b0f74ae ipv4: avoid quadratic behavior in netns dismantle
4bcc304e4255 ipv4: update fib_info_cnt under spinlock protection
c2a957a6f252 perf evsel: Override attr->sample_period for non-libpfm4 events
95429d6b64b1 bpf: Mark PTR_TO_FUNC register initially with zero offset
20ceec871b66 bpf: Fix mount source show for bpffs
b87b59633e35 xdp: check prog type before updating BPF link
b46b0ef69d07 bpftool: Fix indent in option lists in the documentation
220ee6f3b460 bpftool: Remove inclusion of utilities.mak from Makefiles
adb344f551d6 drm/vc4: crtc: Copy assigned channel to the CRTC
d26a90d362d9 drm/vc4: Fix non-blocking commit getting stuck forever
d2cbb24cf66e drm/vc4: crtc: Drop feed_txp from state
b157f4bf1fc6 block: Fix fsync always failed if once failed
269fbc268633 block: fix async_depth sysfs interface for mq-deadline
1e95e6dab0d1 powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
696733774b2f powerpc/cell: Fix clang -Wimplicit-fallthrough warning
3feb292a03d1 Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
b8b4a083ab94 dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
7de812fc6be4 RDMA/rxe: Fix a typo in opcode name
779ff1e23450 RDMA/hns: Modify the mapping attribute of doorbell to device
dcb7718a8073 dmaengine: idxd: fix wq settings post wq disable
d87eb22b94f6 dmaengine: uniphier-xdmac: Fix type of address variables
60390c2242d6 RDMA/cma: Remove open coding of overflow checking for private_data_len
0dc4db8abccf scsi: ufs: ufs-mediatek: Fix error checking in ufs_mtk_init_va09_pwr_ctrl()
46f6dda2a6fc scsi: core: Show SCMD_LAST in text form
53b2ad98d2bb Bluetooth: hci_sync: Fix not setting adv set duration
7055782bc722 net: usb: Correct reset handling of smsc95xx
a15a5eabae41 Bluetooth: btusb: Return error code when getting patch status failed
9e2d8d9c0e33 Documentation: fix firewire.rst ABI file path error
b791ffcb23c9 Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization
63e9fdd76cca Documentation, arch: Remove leftovers from CIFS_WEAK_PW_HASH
2644d43268da Documentation, arch: Remove leftovers from raw device
6bcac3149e94 Documentation: ACPI: Fix data node reference documentation
d4aa8cd70b3f Documentation: dmaengine: Correctly describe dmatest with channel unset
1d4f0d707d35 Documentation: coresight: Fix documentation issue
aceb8d70f7aa media: correct MEDIA_TEST_SUPPORT help text
fbe1e801bc1f drm/vc4: hdmi: Make sure the device is powered with CEC
31a5bdbe4a68 media: rcar-csi2: Optimize the selection PHTW register
c8e0c2cf2dd4 can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
1844b8ae85ac firmware: Update Kconfig help text for Google firmware
3252ca8b6673 of: base: Improve argument length mismatch error
f22f67b43775 drm/radeon: fix error handling in radeon_driver_open_kms
16c436fa4f74 ath11k: qmi: avoid error messages when dma allocation fails
cb77c81d3479 tracing/osnoise: Properly unhook events if start_per_cpu_kthreads() fails
0d99b0a7c329 ext4: don't use the orphan list when migrating an inode
e58742f46afc ext4: fix an use-after-free issue about data=journal writeback mode
0a3624bfdc00 ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
c857769622f3 ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
95fb4c496a7a ext4: fast commit may miss tracking unwritten range during ftruncate
82034851e93b ext4: use ext4_ext_remove_space() for fast commit replay delete range
efbb6fcced2d ext4: Fix BUG_ON in ext4_bread when write quota data
fd86fd7119fb ext4: set csum seed in tmp inode while migrating to extents
50bc43bc1ce0 ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
85cc4554eea8 ext4: initialize err_blk before calling __ext4_get_inode_loc
2d221d9b17fa ext4: fix a possible ABBA deadlock due to busy PA
bca8a2bfbdd0 ext4: make sure quota gets properly shutdown on error
8ffe9ad9f5ef ext4: make sure to reset inode lockdep class when quota enabling fails
5237c93d58c3 btrfs: respect the max size in the header when activating swap file
724d9fa55cbe btrfs: check the root node for uptodate before returning it
ef383621b125 btrfs: fix deadlock between quota enable and other quota operations
9c1154f395cb xfrm: fix dflt policy check when there is no policy configured
491c3ae9fbb6 xfrm: fix policy lookup for ipv6 gre packets
9473abe5b5bf PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
d4e0d674b42d PCI: pci-bridge-emul: Correctly set PCIe capabilities
9624d1eb4d1f PCI: pci-bridge-emul: Fix definitions of reserved bits
b1445d865b05 PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
15cf508331ef PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
c2451a37174c PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
0a04b6a0f7f4 PCI: xgene: Fix IB window setup
077fe9d86560 drm/i915/display/ehl: Update voltage swing table
c3a9e0e701df drm/amdgpu: don't do resets on APUs which don't support it
99d41076c260 scsi: lpfc: Fix lpfc_force_rscn ndlp kref imbalance
56fc6cb5d59a powerpc/64s/radix: Fix huge vmap false positive
46df3013a5c2 parisc: Fix lpa and lpa_user defines
95df03b471d9 drm/bridge: analogix_dp: Make PSR-exit block less
d2a6d606e6d3 drm/nouveau/kms/nv04: use vzalloc for nv04_display
3bf997ec299c drm/amd/display: Fix the uninitialized variable in enable_stream_features()
2de6ce583651 drm/etnaviv: limit submit sizes
a04da77f444a drm/tegra: submit: Add missing pm_runtime_mark_last_busy()
b8902d5ab431 device property: Fix fwnode_graph_devcon_match() fwnode leak
9d2867101704 s390/mm: fix 2KB pgtable release race
b5498bbba0d3 iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
9e87229ff651 remoteproc: imx_rproc: Fix a resource leak in the remove function
74c0c6483b63 tracing: Have syscall trace events use trace_event_buffer_lock_reserve()
40022b3682d5 tracing/kprobes: 'nmissed' not showed correctly for kretprobe
95c7ba00353f sched/cpuacct: Fix user/system in shown cpuacct.usage*
b48450843f57 cputime, cpuacct: Include guest time in user time in cpuacct.stat
6f52d2531f30 serial: Fix incorrect rs485 polarity on uart open
3ec632bc0a4a fuse: Pass correct lend value to filemap_write_and_wait_range()
2884aac07874 HID: magicmouse: Fix an error handling path in magicmouse_probe()
00e3d58f50a8 md: Move alloc/free acct bioset in to personality
c77edcd242b4 xen/gntdev: fix unmap notification order
0d9b780cb385 spi: uniphier: Fix a bug that doesn't point to private data correctly
e53802534cd2 mfd: tps65910: Set PWR_OFF bit during driver probe
e6b11d8fc548 tpm: fix NPE on probe for missing device
c90732a58cd1 tpm: fix potential NULL pointer access in tpm_del_char_device
277c60c9e9eb ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
d6b6324c3c17 crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
5c91102702f7 crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
7f429ce71edb crypto: omap-aes - Fix broken pm_runtime_and_get() usage
8b6d58859e8f ifcvf/vDPA: fix misuse virtio-net device config size for blk dev
e2b53845a939 rpmsg: core: Clean up resources on announce_create failure.
591a1e2ef0f1 udp6: Use Segment Routing Header for dest address if present
af58dbc08ea3 icmp: ICMPV6: Examine invoking packet for Segment Route Headers.
85b3b307471e seg6: export get_srh() for ICMP handling
bcb86df40f96 mailbox: change mailbox-mpfs compatible string
d543ba3a61d7 phy: mediatek: Fix missing check in mtk_mipi_tx_probe
5895474d2182 habanalabs: skip read fw errors if dynamic descriptor invalid
8f23743e1978 ASoC: mediatek: mt8183: fix device_node leak
61274c00d8e8 ASoC: mediatek: mt8173: fix device_node leak
ab23ed0a7c8c phy: phy-mtk-tphy: add support efuse setting
286c6f7b28fa ASoC: mediatek: mt8192-mt6359: fix device_node leak
5b03322abb61 scsi: mpi3mr: Fixes around reply request queues
f325446b5a18 scsi: sr: Don't use GFP_DMA
6af33b200b7f MIPS: Octeon: Fix build errors using clang
843fff4287a5 selftests/powerpc: Add a test of sigreturning to the kernel
845a5a4a8fd9 i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
23606176a3b4 irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
e8ffc355c7d6 MIPS: OCTEON: add put_device() after of_find_device_by_node()
9de7569942cc udf: Fix error handling in udf_new_inode()
625be247e812 powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
953cacfaf36a powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
6a0a06c9b193 selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
e7dd8ba6fc84 powerpc/40x: Map 32Mbytes of memory at startup
7e6c8ff5c21c MIPS: Loongson64: Use three arguments for slti
8774f9824c2c ALSA: seq: Set upper limit of processed events
b693e737e080 scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
5b91e80b631c scsi: lpfc: Fix leaked lpfc_dmabuf mbox allocations with NPIV
ef9e3ecacb75 scsi: ufs: Fix a kernel crash during shutdown
d90d496a999e interconnect: qcom: rpm: Prevent integer overflow in rate
efd507bed1b4 dm: fix alloc_dax error handling in alloc_dev
78d56d075464 nvmem: core: set size for sysfs bin file
fea0e4b49dd2 w1: Misuse of get_user()/put_user() reported by sparse
d58837197d20 KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
a0a4d7a23d18 KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
9170beaeffe4 powerpc/powermac: Add missing lockdep_register_key()
af0e9677f6e6 clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
95abac60d96d i2c: mpc: Correct I2C reset procedure
f374976a7e4d powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
be9313f755a7 i2c: i801: Don't silently correct invalid transfer size
b8526a5003d6 ASoC: imx-hdmi: add put_device() after of_find_device_by_node()
52ce10c1878c powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
aa8c27014529 powerpc/btext: add missing of_node_put
efe379f92d5f powerpc/cell: add missing of_node_put
179ecdf5c089 powerpc/powernv: add missing of_node_put
5203c7027fdd powerpc/6xx: add missing of_node_put
992a9eafb1ec x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
67de7d5ae29b can: flexcan: add more quirks to describe RX path capabilities
cf0649500913 can: flexcan: rename RX modes
e719eeb50885 can: flexcan: allow to change quirks at runtime
b9d50e591133 parisc: Avoid calling faulthandler_disabled() twice
4e2e5a033e93 net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager
d24e3a126b2e net/mlx5: Update log_max_qp value to FW max capability
8c751aac0b64 random: do not throw away excess input to crng_fast_load
0e7d8e930aba serial: core: Keep mctrl register state and cached copy in sync
5b452507d5e7 serial: pl011: Drop CR register reset on set_termios
9201e1dd5aee serial: pl010: Drop CR register reset on set_termios
7828830235cb regulator: qcom_smd: Align probe function with rpmh-regulator
59caf131b18c net: gemini: allow any RGMII interface mode
00bf5ce4bf9a net: phy: marvell: configure RGMII delays for 88E1118
5b2fd3370e7f mlxsw: pci: Avoid flow control for EMAD packets
0415b84eee93 bpf/selftests: Fix namespace mount setup in tc_redirect
1674124a8855 dm space map common: add bounds check to sm_ll_lookup_bitmap()
b5aee20b5316 dm btree: add a defensive bounds check to insert_at()
3c3417b013cf mac80211: allow non-standard VHT MCS-10/11
2d1c1df9c899 net: mdio: Demote probed message to debug print
a3fdfe36c36a btrfs: remove BUG_ON(!eie) in find_parent_nodes
b667d77ca70c btrfs: remove BUG_ON() in find_parent_nodes()
d70ce75d1d28 ACPI: CPPC: Check present CPUs for determining _CPC is valid
dd7c1a930252 ACPI: battery: Add the ThinkPad "Not Charging" quirk
e4066c05d332 amdgpu/pm: Make sysfs pm attributes as read-only for VFs
493b87970061 drm/amdgpu: fixup bad vram size on gmc v8
1ee70b4c5406 mmc: mtk-sd: Use readl_poll_timeout instead of open-coded polling
dcedcbe17739 ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
a4c7a12027f2 ACPICA: Fix wrong interpretation of PCC address
2718d4a8d632 ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
3c3b033d170d ACPICA: Utilities: Avoid deleting the same object twice in a row
78cc8a75303f ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
8c641409536d jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
46241ec22925 drm/etnaviv: consider completed fence seqno in hang check
2b68b42a5d05 xfrm: rate limit SA mapping change message to user space
74f1c807c679 Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
e6e03a16eba4 Bluetooth: btintel: Add missing quirks and msft ext for legacy bootloader
0863e7e0ceb5 ath11k: Fix napi related hang
617a9e6da974 um: registers: Rename function names to avoid conflicts and build problems
f75868e020a1 block: check minor range in device_add_disk()
892805138cb4 mmc: sdhci-pci-gli: GL9755: Support for CD/WP inversion on OF platforms
0c3f9c13796e iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
ec53a638c18e iwlwifi: mvm: fix AUX ROC removal
abce9e05089e iwlwifi: mvm: Fix calculation of frame length
58d53fe49a5d iwlwifi: remove module loading failure message
e23f075d7798 iwlwifi: fix leaks/bad data after failed firmware load
73a32ee6daef PM: AVS: qcom-cpr: Use div64_ul instead of do_div
9a9669e75735 rtw88: 8822c: update rx settings to prevent potential hw deadlock
38d8d8a88274 ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
735aefae7b68 ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet()
6eedec710840 ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep()
243ab93501e6 mt76: mt7615: improve wmm index allocation
9d39145c49d0 mt76: do not pass the received frame with decryption error
3a1ef2b12338 mt76: mt7615: fix possible deadlock while mt7615_register_ext_phy()
a09dc6c4638f usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
79235edc66cb cpufreq: Fix initialization of min and max frequency QoS requests
fddbdd20c8e0 PM: runtime: Add safety net to supplier device release
4586d164c319 crypto: hisilicon/hpre - fix memory leak in hpre_curve25519_src_init()
c0713b3017a8 crypto: ccp - Move SEV_INIT retry for corrupted data
a8186a100978 arm64: tegra: Adjust length of CCPLEX cluster MMIO region
77e5d1974a1b arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
d978295bb551 audit: ensure userspace is penalized the same as the kernel when under pressure
305f07b93d34 drm/amd/amdgpu: fix gmc bo pin count leak in SRIOV
8662d0c6a368 drm/amd/amdgpu: fix psp tmr bo pin count leak in SRIOV
29d6a92af56d mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
384a5e27a44f mmc: tmio: reinit card irqs in reset routine
c3d14b3585b7 media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()
84155d2b0606 media: rockchip: rkisp1: use device name for debugfs subdir name
87d0b8170234 media: igorplugusb: receiver overflow should be reported
26d516434d1c HID: i2c-hid-of: Expose the touchscreen-inverted properties
bc13af2535e5 HID: quirks: Allow inverting the absolute X/Y values
4a635b9d5ba5 drm/amdkfd: Fix error handling in svm_range_add
684815ff760b bpf: Do not WARN in bpf_warn_invalid_xdp_action()
451ee28aed9d kunit: Don't crash if no parameters are generated
584d9e3e7459 net: bonding: debug: avoid printing debug logs when bond is not notifying peers
0f962554d016 x86/mce: Mark mce_read_aux() noinstr
b26d3a8f826d x86/mce: Mark mce_end() noinstr
f166c0b3ac1c x86/mce: Mark mce_panic() noinstr
f2bde2aeb1ae x86/mce: Allow instrumentation during task work queueing
3903e6279530 ARM: dts: qcom: sdx55: fix IPA interconnect definitions
f6d165a8fa04 ath11k: Avoid false DEADLOCK warning reported by lockdep
271842c326bb selftests/ftrace: make kprobe profile testcase description unique
8bb1290e9050 gpio: aspeed-sgpio: Convert aspeed_sgpio.lock to raw_spinlock
d9332eab2338 gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
3c2a24aa3412 net: phy: prefer 1000baseT over 1000baseKX
0abd3f9903fa net-sysfs: update the queue counts in the unregistration path
f7bae4d4595d ath10k: Fix tx hanging
21b07b470a40 ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
bcf404b305f4 rcutorture: Avoid soft lockup during cpu stall
d63ddcee9ff3 iwlwifi: mvm: avoid clearing a just saved session protection id
59b49457fbd8 iwlwifi: mvm: synchronize with FW after multicast commands
b52954c7798e arm64: dts: renesas: Fix thermal bindings
2f804823b5b7 thunderbolt: Runtime PM activate both ends of the device link
0c044e39d52a media: m920x: don't use stack on USB reads
6aaff2d7c9d5 media: atomisp: fix "variable dereferenced before check 'asd'"
a2e962b2d8b0 media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
d747b4831d5f media: rcar-vin: Update format alignment constraints
1c9bbda87cdc media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
4d6a98ce80f6 drm: rcar-du: Fix CRTC timings when CMM is used
30bd6733ef96 x86/mm: Flush global TLB when switching to trampoline page-table
1b4422befeba floppy: Add max size check for user space request
eeefb3436d42 usb: uhci: add aspeed ast2600 uhci support
750f28d69b99 arm64: dts: ti: j721e-main: Fix 'dtbs_check' in serdes_ln_ctrl node
e785275d780e arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
94168f47f9b1 ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win
10f2c10c0e20 ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
91f918b7885f ACPI: Change acpi_device_always_present() into acpi_device_override_status()
1fd897834b77 ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
2518f943a18e drm/vmwgfx: Introduce a new placement for MOB page tables
ff74a49da07b drm/vmwgfx: Release ttm memory if probe fails
f168858f6096 regulator: da9121: Prevent current limit change when enabled
34b1e259b1f5 media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions
371a75dfaadb ath11k: Avoid NULL ptr access during mgmt tx cleanup
dbba81756c1b rsi: Fix out-of-bounds read in rsi_read_pkt()
bac512a0f3fe rsi: Fix use-after-free in rsi_rx_done_handler()
b2762757f4e4 mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
bed51dafd544 crypto: jitter - consider 32 LSB for APT
0c3df095fab6 HSI: core: Fix return freed object in hsi_new_client
8c124608bf46 gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
c6d9c77a19d0 tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
93306292b776 mxser: keep only !tty test in ISR
405856460d3e drm/bridge: megachips: Ensure both bridges are probed before registration
58d33532664c drm/amd/display: add else to avoid double destroy clk_mgr
ae93accee317 mlxsw: pci: Add shutdown method in PCI driver
b019927f1c4a soc: ti: pruss: fix referenced node in error message
f94cf1cb1796 drm/amdgpu/display: set vblank_disable_immediate for DC
1fffa8ffd62f drm/amd/display: check top_pipe_to_program pointer
5e0f1c68da1e ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
b16e928b6a30 soc: imx: gpcv2: Synchronously suspend MIX domains
f573eda00b39 arm64: dts: qcom: sm8350: Shorten camera-thermal-bottom name
c41c4bc61db2 EDAC/synopsys: Use the quirk for version instead of ddr version
342aa207c9da ethernet: renesas: Use div64_ul instead of do_div
a111f8e113c7 libbpf: Accommodate DWARF/compiler bug with duplicated structs
299951bd1ef9 media: b2c2: Add missing check in flexcop_pci_isr:
3396b7cf1478 HID: apple: Do not reset quirks when the Fn key is not found
e6ad399596bd HID: magicmouse: Report battery level over USB
c350fcc74035 drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
d168123f1388 psi: Fix PSI_MEM_FULL state when tasks are in memstall and doing reclaim
07888a4fbcf2 usb: gadget: f_fs: Use stream_open() for endpoint files
7171e60715a6 USB: ehci_brcm_hub_control: Improve port index sanitizing
432acc8ad244 usb: dwc3: meson-g12a: fix shared reset control use
79a3d8f1882d ath11k: Fix crash caused by uninitialized TX ring
f1d85deaf343 media: atomisp: handle errors at sh_css_create_isp_params()
bab93d536617 batman-adv: allow netlink usage in unprivileged containers
5a47ca7f7894 ARM: shmobile: rcar-gen2: Add missing of_node_put()
75272f75eddf media: atomisp: check before deference asd variable
8335807ce313 media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
f04b8bdddf7a media: atomisp: set per-device's default mode
d4c0cb23e5b3 media: atomisp: fix try_fmt logic
7be59e8a6660 drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
0dedaf16ca43 drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
fbcd1e9f8a43 ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
1f1161c9bb47 selftests/bpf: Fix bpf_object leak in skb_ctx selftest
57d3ec1106fc selftests/bpf: Destroy XDP link correctly
7ffd2af8085c selftests/bpf: Fix memory leaks in btf_type_c_dump() helper
9c46c1f1d2ac drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
5dc41e6caecc fs: dlm: filter user dlm messages for kernel locks
41966cae91f1 Bluetooth: Fix removing adv when processing cmd complete
57347363de0b drm/panel: Delete panel on mipi_dsi_attach() failure
493c7d56ac22 Bluetooth: Fix memory leak of hci device
d86db46b5cf5 Bluetooth: Fix debugfs entry leak in hci_register_dev()
b03b18f0d1e9 leds: lp55xx: initialise output direction from dts
bc8c07fcb492 ARM: dts: omap3-n900: Fix lp5523 for multi color
55f8559ba8d3 mailbox: fix gce_num of mt8192 driver data
38e9447399ff MIPS: compressed: Fix build with ZSTD compression
925b35b54583 MIPS: boot/compressed/: add __ashldi3 to target for ZSTD compression
c19b9b755482 of/fdt: Don't worry about non-memory region overlap for no-map
dc4e2dbe6171 of: base: Fix phandle argument length mismatch error message
91dcfc658d38 clk: bm1880: remove kfrees on static allocations
8f5e866cbb97 ASoC: fsl_asrc: refine the check of available clock divider
0cd1ef3f7b89 ASoC: imx-card: improve the sound quality for low rate
edc07df0df20 ASoC: imx-card: Fix mclk calculation issue for akcodec
6bedc3b3d130 ASoC: imx-card: Need special setting for ak4497 on i.MX8MQ
35816546936d clk: qcom: gcc-sc7280: Mark gcc_cfg_noc_lpass_clk always enabled
60037a56e08b RDMA/cxgb4: Set queue pair state when being queried
32faa4c17a56 ALSA: hda/cs8409: Fix Jack detection after resume
b624b5b2fe02 ALSA: hda/cs8409: Increase delay during jack detection
65b517f4e0c6 ASoC: fsl_mqs: fix MODULE_ALIAS
ef9893bb73e7 powerpc/xive: Add missing null check after calling kmalloc
f1750bf32690 mips: bcm63xx: add support for clk_set_parent()
b88fea46621d mips: lantiq: add support for clk_set_parent()
a92e8b510fb4 arm64: tegra: Remove non existent Tegra194 reset
78926da03360 ASoC: mediatek: mt8195: correct pcmif BE dai control flow
1cf0a19e33ad misc: lattice-ecp3-config: Fix task hung when firmware load failed
a17f93a1f0a5 ASoC: samsung: idma: Check of ioremap return value
8b5d69613b12 phy: cadence: Sierra: Fix to get correct parent for mux clocks
fca58a434425 powerpc/64s: Use EMIT_WARN_ENTRY for SRR debug warnings
5bb2d955e81b powerpc/64s: Mask NIP before checking against SRR0
38accfd85e41 ASoC: mediatek: Check for error clk pointer
799b2c6cd7b6 phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
af8cab36bfb8 scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
e421973fbe6e efi: apply memblock cap after memblock_add()
77d37071811b of: fdt: Aggregate the processing of "linux,usable-memory-range"
073d9a2237b1 ASoC: mediatek: mt8195: correct default value
ef0af09d4113 iommu/iova: Fix race between FQ timeout and teardown
56c3b7238594 ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
9bc6d3abccbf iommu/amd: Remove useless irq affinity notifier
7e7e12092a66 iommu/amd: X2apic mode: mask/unmask interrupts on suspend/resume
88c62a000be5 iommu/amd: X2apic mode: setup the INTX registers on mask/unmask
0210cbc1efa3 iommu/amd: X2apic mode: re-enable after resume
fd77922c94e4 iommu/amd: Restore GA log/tail pointer on host resume
86bcde384570 dmaengine: pxa/mmp: stop referencing config->slave_id
b1f659597761 mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
f345281019b2 mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
cfb6756aea7e clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell
e7962a878b38 of: unittest: 64 bit dma address test requires arch support
d00393b2c354 of: unittest: fix warning on PowerPC frame size warning
e91edc3b443c ASoC: rt5663: Handle device_property_read_u32_array error codes
45f4e3c75877 RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
8d76d0e4880d RDMA/core: Let ib_find_gid() continue search even after empty entry
b77f233986b3 iommu/arm-smmu-qcom: Fix TTBR0 read
2b78e026b455 powerpc/powermac: Add additional missing lockdep_register_key()
db3e0d59f1c8 PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
1526f0ae4949 RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
f10876654e82 scsi: ufs: Fix race conditions related to driver data
c9f350ade563 scsi: core: Fix scsi_device_max_queue_depth()
3db62f98b49f iommu/io-pgtable-arm: Fix table descriptor paddr formatting
004d84063fa2 iommu: Extend mutex lock scope in iommu_probe_device()
37fb3dec665c openrisc: Add clone3 ABI wrapper
7a9ad4aceb02 binder: avoid potential data leakage when copying txn
f9848823d4e8 binder: fix handling of error during copy
695ca3e0e24b char/mwave: Adjust io port register size
356b4ed3ea70 misc: at25: Make driver OF independent again
ee22462a419b ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
6f90ccd96226 ALSA: oss: fix compile error when OSS_DEBUG is enabled
cf9b8de20168 clocksource: Avoid accidental unstable marking of clocksources
e3e6b74fad2d powerpc/32s: Fix shift-out-of-bounds in KASAN init
2d17ab8874bc powerpc/modules: Don't WARN on first module allocation attempt
fadcafa39592 powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC
c15d1468f339 dt-bindings: thermal: Fix definition of cooling-maps contribution property
9de9858d7bf0 ALSA: hda: Make proper use of timecounter
a2e525d61801 RDMA/rtrs-clt: Fix the initial value of min_latency
278df2c08602 ASoC: codecs: wcd938x: add SND_SOC_WCD938_SDW to codec list instead
dc2400567312 ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
49a237c73a78 powerpc/prom_init: Fix improper check of prom_getprop()
e459a89df303 clk: imx8mn: Fix imx8mn_clko1_sels
6b0335e66b51 clk: renesas: rzg2l: propagate return value of_genpd_add_provider_simple()
02beeed3928f clk: renesas: rzg2l: Check return value of pm_genpd_init()
a0b4447677dd scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
4a1723367f5e RDMA/hns: Validate the pkey index
8fe8161c50f4 RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"
ec085da3437b ALSA: hda: Fix potential deadlock at codec unbinding
1b378f59bc86 ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
9b9f32c0c744 ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
19eebde28fc6 ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
03c2fbca8973 ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible
4846b55a2cd9 ext4: avoid trim error on fs with small groups
0d3bbe7eb15e net: mcs7830: handle usb read errors properly
86971970aeed bnxt_en: use firmware provided max timeout for messages
e685851f0456 bnxt_en: move coredump functions into dedicated file
a2037e7e4d02 bnxt_en: Refactor coredump functions
57214d92a69f iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
cf2ce93a7afa net: openvswitch: Fix ct_state nat flags for conns arriving from tc
e7b33ff6439a net: openvswitch: Fix matching zone id for invalid conns arriving from tc
a006c8482463 net/sched: flow_dissector: Fix matching on zone id for invalid conns
3a4ecdfc0cf4 pcmcia: fix setting of kthread task states
4a71828b2738 can: rcar_canfd: rcar_canfd_channel_probe(): make sure we free CAN network device
61970e8b5d78 can: xilinx_can: xcan_probe(): check for error irq
b8609cb64101 can: softing: softing_startstop(): fix set but not used variable warning
deb81894f56e tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
ea1fd8364c9f tpm: add request_locality before write TPM_INT_ENABLE
8609525ee0ee can: mcp251xfd: add missing newline to printed strings
f5b7e80e25c4 net: mscc: ocelot: fix incorrect balancing with down LAG ports
5aff6ae24b39 regmap: Call regmap_debugfs_exit() prior to _init()
af5dcf968ebe netrom: fix api breakage in nr_setsockopt()
7b9986a0425a ax25: uninitialized variable in ax25_setsockopt()
c48c7678739d octeontx2-af: Increment ptp refcount before use
aac0b364904f spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
e1652f70e896 mptcp: fix a DSS option writing error
72aba03ba836 mptcp: fix opt size when sending DSS + MP_FAIL
c310df0eabe5 mptcp: fix per socket endpoint accounting
abe4b2c214ea Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
b918c668d295 lib/mpi: Add the return value check of kcalloc()
d73d81447c66 net/mlx5: Set command entry semaphore up once got index free
266e6a36546f net/mlx5e: Sync VXLAN udp ports during uplink representor profile change
fbe5f19824ba net/mlx5: Fix access to sf_dev_table on allocation failure
7c1f9797e1b5 net/mlx5e: Fix matching on modified inner ip_ecn bits
46a8a5a42984 Revert "net/mlx5e: Block offload of outer header csum for GRE tunnel"
a8176f18ab5f Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
44008999815b net/mlx5e: Don't block routes with nexthop objects in SW
360cbb1c3ec7 net/mlx5e: Fix wrong usage of fib_info_nh when routes with nexthop objects are used
423bf4c1ea8a net/mlx5e: Fix page DMA map/unmap attributes
6d818695065d x86, sched: Fix undefined reference to init_freq_invariance_cppc() build error
f7e2f374799f serial: stm32: move tx dma terminate DMA to shutdown
8209b0b395aa serial: liteuart: fix MODULE_ALIAS
71db96193317 drivers/firmware: Add missing platform_device_put() in sysfb_create_simplefb
1850a403bd0b debugfs: lockdown: Allow reading debugfs files that are not world readable
0fc97f944245 HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
fc8a47ed624b HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
964e6a78cb1d HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
621aade97324 HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
78e8660e9d90 usb: gadget: u_audio: Subdevice 0 for capture ctls
e3e610612234 usb: dwc2: gadget: initialize max_speed from params
85a75d45f715 usb: dwc2: do not gate off the hardware if it does not support clock gating
5157828d3975 usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
db7d1a2e0609 net/smc: Reset conn->lgr when link group registration fails
9186e6ba52af Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
ede559376794 Bluetooth: hci_bcm: Check for error irq
3983254b43c2 fsl/fman: Check for null pointer after calling devm_ioremap
c154574b84a5 staging: greybus: audio: Check null pointer
4a308769df64 rocker: fix a sleeping in atomic bug
5f54a0355802 ppp: ensure minimum packet size in ppp_write()
ff53c861e97e net: fix SOF_TIMESTAMPING_BIND_PHC to work with multiple sockets
29a0827b7491 netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
500193142a20 netfilter: nft_payload: do not update layer 4 checksum when mangling fragments
2db60bb56405 bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
2fbd46695272 bpf: Fix verifier support for validation of async callbacks
a65df848dbe0 bpf: Don't promote bogus looking registers after null check.
073f7fb020b5 bpf, sockmap: Fix double bpf_prog_put on error case in map_link
f26349213d97 bpf, sockmap: Fix return codes from tcp_bpf_recvmsg_parser()
a1c2d9a513e5 netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
21bdddc9648b net: dsa: fix incorrect function pointer check for MRP ring roles
6dab20da69f9 net: ethernet: mtk_eth_soc: fix return values and refactor MDIO ops
10f849d3e563 net/xfrm: IPsec tunnel mode fix inner_ipproto setting in sec_path
4849eca4fc6f power: reset: mt6397: Check for null res pointer
a3b31433147b pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
7756cb45dbfe pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
5d2fd6fff8e4 ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
0a9b1fb2a778 serial: 8250_bcm7271: Propagate error codes from brcmuart_probe()
deb0c71e0b26 io_uring: remove double poll on poll update
8d3d1c365a89 x86/mce/inject: Avoid out-of-bounds write when setting flags
4f1096828ece hwmon: (mr75203) fix wrong power-up delay value
a96546df99ea regulator: qcom-labibb: OCP interrupts are not a failure while disabled
78cafdf7d219 crypto: octeontx2 - prevent underflow in get_cores_bmap()
910e5e8ac5de x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
5639dcfc6889 Bluetooth: hci_qca: Stop IBS timer during BT OFF
03dae5e3362e software node: fix wrong node passed to find nargs_prop
7a4e6e087813 backlight: qcom-wled: Respect enabled-strings in set_brightness
7abe05ef6648 backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
18a8dd081b81 backlight: qcom-wled: Override default length with qcom,enabled-strings
37b61692f27b backlight: qcom-wled: Fix off-by-one maximum with default num_strings
219c7d18be5a backlight: qcom-wled: Pass number of elements to read to read_u32_array
f2bc76de2847 backlight: qcom-wled: Validate enabled string indices in DT
77c5e99644af bpftool: Enable line buffering for stdout
79d6a406df00 Bluetooth: L2CAP: Fix using wrong mode
a3641f64a9d9 um: virtio_uml: Fix time-travel external time propagation
4e71908ba7cb lib/logic_iomem: Fix operation on 32-bit
6c72a5bc4df4 lib/logic_iomem: Fix 32-bit build
b53c2307b18c um: virt-pci: Fix 32-bit compile
c3d5f267696d um: rename set_signals() to um_set_signals()
2a2f4f3aeafd um: fix ndelay/udelay defines
3a45c4703491 selinux: fix potential memleak in selinux_add_opt()
7be5c25e3155 block: fix error unwinding in device_add_disk
6c1d0447bf0d mmc: meson-mx-sdio: add IRQ check
0d840e7e2e6c mmc: meson-mx-sdhc: add IRQ check
525c2a0763ee iwlwifi: mvm: set protected flag only for NDP ranging
39cb224bf651 iwlwifi: mvm: perform 6GHz passive scan after suspend
e895cfb085c6 iwlwifi: mvm: test roc running status bits before removing the sta
48338cf56eaa iwlwifi: mvm: fix 32-bit build in FTM
617339466fda rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE
9b6b5f07702f rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC
b14e931c386f wilc1000: fix double free error in probe()
1a25b9c4ce2a mt76: mt7921: drop offload_flags overwritten
e64a3ea17c19 ARM: dts: armada-38x: Add generic compatible to UART nodes
4518f459c2c0 arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
864ac5f6bfbe arm64: dts: marvell: cn9130: add GPIO and SPI aliases
6d88a6849617 usb: ftdi-elan: fix memory leak on device disconnect
826501a17e98 ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
851b00b47832 xfrm: state and policy should fail if XFRMA_IF_ID 0
eab7928527b5 xfrm: interface with if_id 0 should return error
afd9ebd40bda media: hantro: Fix probe func error path
3ca9f14fe279 drm/tegra: vic: Fix DMA API misuse
0dbb2617c713 drm/tegra: gr2d: Explicitly control module reset
3b90135b03f3 gpu: host1x: select CONFIG_DMA_SHARED_BUFFER
c0dc02dcfe6b drm/bridge: ti-sn65dsi86: Set max register for regmap
602662de5f82 drm/msm/dpu: fix safe status debugfs file
be12d15a817b arm64: dts: qcom: ipq6018: Fix gpio-ranges property
0c7ec53598a3 arm64: dts: qcom: c630: Fix soundcard setup
c9fadfaf7b44 net: dsa: hellcreek: Add missing PTP via UDP rules
ae914fe9310e net: dsa: hellcreek: Allow PTP P2P measurements on blocked ports
c2be5908dd7c net: dsa: hellcreek: Add STP forwarding rule
06baf7c33cf3 net: dsa: hellcreek: Fix insertion of static FDB entries
307ac652e9fb ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
e935a4dd37e4 media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
f0fc76d6cc80 media: msi001: fix possible null-ptr-deref in msi001_probe()
48225919434f media: dw2102: Fix use after free
f99f6ea71b55 perf/arm-cmn: Fix CPU hotplug unregistration
70bf180fef83 ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
3d3fbbf05fe8 spi: Fix incorrect cs_setup delay handling
5d0933a65bbd ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
8b2b88054961 crypto: hisilicon/qm - fix incorrect return value of hisi_qm_resume()
5367147cb4f8 crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
2383a52088b6 crypto: stm32/cryp - fix bugs and crash in tests
4e3043d247e6 crypto: stm32/cryp - fix lrw chaining mode
0ba9b34ec6e5 crypto: stm32/cryp - fix double pm exit
ef416e0614af crypto: stm32/cryp - check early input data
4a62c2b32c41 crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
4671521de277 crypto: stm32/cryp - fix CTR counter carry
f857f6cc5fbf selftests: harness: avoid false negatives if test has no ASSERTs
c0dbfef7e63f selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
fa8db0f53fc1 x86/uaccess: Move variable into switch case statement
097d4aeea0fc xfrm: fix a small bug in xfrm_sa_len()
7a95f5d9b80f mwifiex: Fix possible ABBA deadlock
4e6ad76d340f drm/msm/dsi: fix initialization in the bonded DSI case
5c2eaa606feb wcn36xx: Fix max channels retrieval
ef93cc02cafb rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
87472bebedbb drm/msm/dp: displayPort driver need algorithm rational
e5d61c5b9c9c drm/msm/gpu: Don't allow zero fence_id
89166801f80d drm/amd/display: Fix out of bounds access on DNC31 stream encoder regs
6dcc6706dab1 drm/amd/display: Fix bug in debugfs crc_win_update entry
d41946e82718 Bluetooth: btusb: Handle download_firmware failure cases
006157d575d1 Bluetooth: MGMT: Use hci_dev_test_and_{set,clear}_flag
749fc99daa13 Bluetooth: refactor set_exp_feature with a feature table
d3f45f4ee17f ath10k: Fix the MTU size on QCA9377 SDIO
378723bd01b2 sched/rt: Try to restart rt period timer when rt runtime exceeded
9a664557effe wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
643af6932580 media: si2157: Fix "warm" tuner state detection
d8904d2f6283 media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
6f2d3249b98d media: dib8000: Fix a memleak in dib8000_init()
1a51d9d60325 samples: bpf: Fix 'unknown warning group' build warning on Clang
d891664e39ad samples: bpf: Fix xdp_sample_user.o linking with Clang
c7d36c19cf30 samples/bpf: Clean up samples/bpf build failes
7b4a30bbf8ca samples/bpf: Install libbpf headers when building
c7f0c087d483 arm64: mte: DC {GVA,GZVA} shouldn't be used when DCZID_EL0.DZP == 1
338c297e0885 arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
33fcd00e0aa0 bpf: Remove config check to enable bpf support for branch records
832d478ccd06 bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
2571173d3e11 bpf: Adjust BTF log size limit.
d3c4b3c801c0 sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
00c10519538f sched/fair: Fix detection of per-CPU kthreads waking a task
48419bc90e43 bpf: Fix the test_task_vma selftest to support output shorter than 1 kB
35a89caf518e Bluetooth: btmtksdio: fix resume failure
0cad9c0c81be staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
90d96a14c558 staging: rtl8192e: return error code from rtllib_softmac_init()
ff732e9bf68b floppy: Fix hang in watchdog when disk is ejected
31d60f528238 mtd: core: provide unique name for nvmem device
aee7ef0305b1 serial: amba-pl011: do not request memory region twice
7b54c975798d tty: serial: uartlite: allow 64 bit address
aca61190ec82 arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
1e2847f9d910 arm64: dts: ti: k3-j721e: Fix the L2 cache sets
f1f0039956fb arm64: dts: ti: k3-j7200: Fix the L2 cache sets
10d3b165877f arm64: dts: ti: k3-am642: Fix the L2 cache sets
2efa4dd4600d crypto: caam - save caam memory to support crypto engine retry mechanism.
db3c2121d191 libbpf: Clean gen_loader's attach kind.
e833ef0b545e drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
1e22b51876fa drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode()
4c12feec2dfd thermal/drivers/imx8mm: Enable ADC when enabling monitor
68bf3b2f95ee ACPI: EC: Rework flushing of EC work while suspended to idle
1fb3838db45c cgroup: Trace event cgroup id fields should be u64
2d93f960dc7e drm/vmwgfx: Fail to initialize on broken configs
a6f53731f3bb drm/vmwgfx: Remove the deprecated lower mem limit
4aa40bf38f71 arm64: dts: qcom: msm8916: fix MMC controller aliases
0c1cf578a882 powerpc: Avoid discarding flags in system_call_exception()
f38d669aab33 netfilter: bridge: add support for pppoe filtering
3f32b8ca8e26 igc: AF_XDP zero-copy metadata adjust breaks SKBs on XDP_PASS
94821ce188c2 thermal/drivers/imx: Implement runtime PM support
b588858c09a5 net: stmmac: Add platform level debug register dump feature
0bc65fcb2b89 media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'
4a8a8ff65293 media: venus: core: Fix a potential NULL pointer dereference in an error handling path
e0d8c693a9d2 media: venus: correct low power frequency calculation for encoder
64bfc5673415 media: coda: fix CODA960 JPEG encoder buffer overflow
b85906f919ea media: hantro: Hook up RK3399 JPEG encoder output
a49171d86d5e media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
893a766ac8fe media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
b38f3570f909 media: imx-pxp: Initialize the spinlock prior to using it
92cb150c3ec8 media: rcar-csi2: Correct the selection of hsfreqrange
842a24066653 media: i2c: ov8865: Fix lockdep error
9a11fe9e4467 media: i2c: Re-order runtime pm initialisation
adf57b861e7f media: i2c: imx274: fix s_frame_interval runtime resume not requested
300b973af40f libbpf: Silence uninitialized warning/error in btf_dump_dump_type_data
162bc7bd73a1 bfq: Do not let waker requests skip proper accounting
6b6e7150c18b mfd: atmel-flexcom: Use .resume_noirq
8aa5209e54aa mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
1b1620dd224b tty: serial: atmel: Call dma_async_issue_pending()
d249a70251ce tty: serial: atmel: Check return code of dmaengine_submit()
32307d1b94ae arm64: dts: ti: k3-j721e: correct cache-sets info
920e0e6f0e39 ath11k: Use host CE parameters for CE interrupts configuration
72b905fb39f0 crypto: qat - fix undetected PFVF timeout in ACK loop
348210fd7765 crypto: qat - make pfvf send message direction agnostic
6c58dd967389 crypto: qat - remove unnecessary collision prevention step in PFVF
ef89212783a2 libbpf: Fix using invalidated memory in bpf_linker
9b616ae0bf98 libbpf: Fix glob_syms memory leak in bpf_linker
f8ca67f3fc9e libbpf: Fix potential misaligned memory access in btf_ext__new()
ae38d3144324 ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco
9f670292c080 cpufreq: qcom-hw: Fix probable nested interrupt handling
929205dc3a0f cpufreq: qcom-cpufreq-hw: Update offline CPUs per-cpu thermal pressure
5d39cd2059ba mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
869eee39b330 arm64: dts: qcom: sc7280: Fix incorrect clock name
38a721f60926 crypto: qce - fix uaf on qce_skcipher_register_one
561030c55120 crypto: qce - fix uaf on qce_ahash_register_one
cf984b11cdec crypto: qce - fix uaf on qce_aead_register_one
cb353b688464 crypto: atmel-aes - Reestablish the correct tfm context at dequeue
4d6a558bde10 media: dmxdev: fix UAF when dvb_register_device() fails
87a413e3d8c9 arm64: dts: renesas: cat875: Add rx/tx delays
7bce20277784 drm/vboxvideo: fix a NULL vs IS_ERR() check
56339a5546a7 drm/dp: Don't read back backlight mode in drm_edp_backlight_enable()
25f2b49f65c6 fs: dlm: fix build with CONFIG_IPV6 disabled
815570353f6b tee: fix put order in teedev_close_context()
d46f937233b1 spi: hisi-kunpeng: Fix the debugfs directory name incorrect
50dab89c25dd ath11k: reset RSN/WPA present state for open BSS
4ca3ffff349f ath11k: clear the keys properly via DISABLE_KEY
dff606fc5068 ath11k: Fix ETSI regd with weather radar overlap
2de0e6a71ceb Bluetooth: stop proccessing malicious adv data
63811bf4f572 memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
dba0aea5727c fs: dlm: don't call kernel_getpeername() in error_report()
ba43bd2be16b arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
0a7dd2ec89b2 arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
74ad053d7338 arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
3cebbcbf9198 arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
82515555873e media: aspeed: Update signal status immediately to ensure sane hw state
85d5345bd861 media: em28xx: fix memory leak in em28xx_init_dev
c4f0f1608727 media: aspeed: fix mode-detect always time out at 2nd run
7fd4b0e18903 media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
37d7ebf0179b media: atomisp: fix enum formats logic
a030bcd96ef4 media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
124fd314c5fe media: atomisp: fix ifdefs in sh_css.c
0224641992e1 media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid()
4de485f6d5fe media: atomisp: do not use err var when checking port validity for ISP2400
b7033740e367 media: atomisp: fix inverted logic in buffers_needed()
bb8ac1ec5a82 media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
6c3547e103e4 media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities()
26e8cd84d7d2 media: videobuf2: Fix the size printk format
6b3a83a450dd mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
77d19bad301f bpftool: Fix memory leak in prog_dump()
9f3cbc3ba5ad ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
26b9d4ac42ab wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
3913db56e471 wcn36xx: populate band before determining rate on RX
d97aa008ebc0 wcn36xx: Put DXE block into reset before freeing memory
514c1df9dfa9 wcn36xx: Release DMA channel descriptor allocations
8da7a0e26c4a wcn36xx: Fix DMA channel enable/disable cycle
a3ec2b9456eb libbpf: Free up resources used by inner map definition
620a2ee55059 drm/vc4: hdmi: Enable the scrambler on reconnection
23d2c4eb76d6 wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
a33fc07affe5 wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
8c3830446ccc drm/vc4: crtc: Make sure the HDMI controller is powered when disabling
2bba39feaa3e drm/vc4: hdmi: Rework the pre_crtc_configure error handling
a26aa0f3982f drm/vc4: hdmi: Make sure the controller is powered up during bind
e3e8f46f36e0 drm/vc4: hdmi: Make sure the controller is powered in detect
b9b1fbe61ff1 drm/vc4: hdmi: Move the HSM clock enable to runtime_pm
2d717d822675 drm/vc4: hdmi: Set a default HSM rate
49b570f5d2e4 clk: bcm-2835: Remove rounding up the dividers
2ff7b32f6b3e clk: bcm-2835: Pick the closest clock rate
d2e7a4d20f7c Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
1f2270e161f9 Bluetooth: virtio_bt: fix memory leak in virtbt_rx_handle()
f28d819f17d3 drm/rockchip: dsi: Reconfigure hardware on resume()
506bae94333b drm/rockchip: dsi: Disable PLL clock on bind error
4f005cef1d5a drm/rockchip: dsi: Hold pm-runtime across bind/unbind
dd0ed218c0bf drm/rockchip: dsi: Fix unbalanced clock on probe error
1a943d8ad9c0 drm/panel: innolux-p079zca: Delete panel on attach() failure
92082e300373 drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
52e1bf49e3e2 drm: fix null-ptr-deref in drm_dev_init_release()
11182d953e64 drm/bridge: display-connector: fix an uninitialized pointer in probe()
6c1ad4aeeab4 Bluetooth: L2CAP: Fix not initializing sk_peer_pid
0da09030aae4 drm/ttm: Put BO in its memory manager's lru list
19f76690fe68 shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
6292bd6f654e ath11k: add string type to search board data in board-2.bin for WCN6855
e363ab335751 mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages
bcf64fb327c8 dma/pool: create dma atomic pool only if dma zone has managed pages
240e8d331a9b mm_zone: add function to check if managed dma zone exists
55bd26fd08da PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
484654a6f6ed dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
03e964ad35ac virtio/virtio_mem: handle a possible NULL as a memcpy parameter
b9a524d6ec03 drm/tegra: Add back arm_iommu_detach_device()
3ff8942bb8ab gpu: host1x: Add back arm_iommu_detach_device()
03c8e18f3c14 iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
bed344b54daa ARM: dts: at91: update alternate function of signal PD20
c77a4529ca38 arm64: errata: Fix exec handling in erratum 1418040 workaround
181c78d6c12d cxl/pmem: Fix reference counting for delayed work
bc95dbf5502c bus: mhi: core: Fix race while handling SYS_ERR at power up
c8aa11642478 bus: mhi: core: Fix reading wake_capable channel configuration
2075d9f4fdc5 bus: mhi: pci_generic: Graceful shutdown on freeze
acb5a8bee27b lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
a18aeac73c0f iio: trigger: Fix a scheduling whilst atomic issue seen on tsc2046
5c397420c0e2 iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
702c89045230 mei: hbm: fix client dma reply status
697c41375739 can: softing_cs: softingcs_probe(): fix memleak on registration failure
61eb4ad9ae46 media: cec-pin: fix interrupt en/disable handling
1baebfdf19b0 media: stk1160: fix control-message timeouts
b208a386572a media: pvrusb2: fix control-message timeouts
8b8dbc22b9f7 media: redrat3: fix control-message timeouts
821e5abd2198 media: dib0700: fix undefined behavior in tuner shutdown
4e56a231210f media: s2255: fix control-message timeouts
15955a24fa8e media: cpia2: fix control-message timeouts
198e0c619f46 media: em28xx: fix control-message timeouts
2516fab22e65 media: mceusb: fix control-message timeouts
a16e2eff80fa media: flexcop-usb: fix control-message timeouts
1bde26972360 media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
9aaf99b4a8b0 media: ov8865: Disable only enabled regulators on error path
a0d6e64b3413 media: cec: fix a deadlock situation
8202aa60f077 ksmbd: add reserved room in ipc request/response
d7004f0cc4a7 ksmbd: limits exceeding the maximum allowable outstanding requests
0aadd32bebc9 ksmbd: move credit charge deduction under processing request
40fc68aeeb24 ksmbd: add support for smb2 max credit parameter
0a8347db70a6 ksmbd: fix guest connection failure with nautilus
bbba4a0b8efa ksmbd: uninitialized variable in create_socket()
893dfb14cac1 net: phy: marvell: add Marvell specific PHY loopback
e428c89717ff rtc: cmos: take rtc_lock while reading from CMOS
9899cea59121 tools/nolibc: fix incorrect truncation of exit code
72191715afee tools/nolibc: i386: fix initial stack alignment
9dc4c4e19084 crypto: x86/aesni - don't require alignment of data
132cb7f64697 tools/nolibc: x86-64: Fix startup code bug
850bc1262a2b x86/gpu: Reserve stolen memory for first integrated Intel GPU
07c1c8e3202e riscv: mm: fix wrong phys_ram_base value for RV64
a2389e4f54e5 riscv: use hart id instead of cpu id on machine_kexec
b9f3e769ecf5 riscv: Don't use va_pa_offset on kdump
9550c6f0b2a6 riscv: try to allocate crashkern region from 32bit addressible memory
1402857bf15f RISC-V: Use common riscv_cpuid_to_hartid_mask() for both SMP=y and SMP=n
6250ecf5ba42 riscv: Get rid of MAXPHYSMEM configs
cee8830146cf mtd: rawnand: ingenic: JZ4740 needs 'oob_first' read page function
abf8c8712b6d mtd: rawnand: Export nand_read_page_hwecc_oob_first()
26aa92a7f931 mtd: rawnand: davinci: Rewrite function description
3f5eb2d89032 mtd: rawnand: davinci: Avoid duplicated page read
eebc910e09d4 mtd: rawnand: davinci: Don't calculate ECC when reading page
5794c37d2a98 mtd: Fixed breaking list in __mtd_del_partition.
bb969ffe1d0e mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
0fe08bf9909f mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
f4dfc52a1eab nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()
c9cd02cb7a26 f2fs: avoid EINVAL by SBI_NEED_FSCK when pinning a file
dd88a805d2d0 f2fs: fix to do sanity check in is_alive()
0ddbdc0b7f0c f2fs: fix to do sanity check on inode type during garbage collection
7f6e3cbbd600 ALSA: core: Fix SSID quirk lookup for subvendor=0
8877331177de HID: wacom: Avoid using stale array indicies to read contact count
c965ad71a05d HID: wacom: Ignore the confidence flag when a touch is removed
f9f16383d596 HID: wacom: Reset expected and received contact counts at the same time
6a4ec6f2429e HID: uhid: Fix worker destroying device without any protection
47b5c189d6a4 HID: Ignore battery for Elan touchscreen on HP Envy X360 15t-dr100
91b7cbea9efc KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
a88ebc49c633 KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
.../linux/linux-yocto-rt_5.15.bb | 6 ++---
.../linux/linux-yocto-tiny_5.15.bb | 8 +++---
meta/recipes-kernel/linux/linux-yocto_5.15.bb | 26 +++++++++----------
3 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb
index 161b418293..e686770248 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb
@@ -11,13 +11,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "3500b1673d3c5cdab46d497c5d492e81cc0a6a13"
-SRCREV_meta ?= "cf716c58bea8a4c0daba70740803b5074766f2fd"
+SRCREV_machine ?= "8cee5455f1da9a04453db35f13497067fcc1da86"
+SRCREV_meta ?= "287299fba9a8435f470eaf0fa218041b9a716a71"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.15;destsuffix=${KMETA}"
-LINUX_VERSION ?= "5.15.16"
+LINUX_VERSION ?= "5.15.19"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb
index c2ba73fc81..9905bc1925 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb
@@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "5.15.16"
+LINUX_VERSION ?= "5.15.19"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine:qemuarm ?= "67b4c868eafbd63c437d0e79523c3bdc5f3aa834"
-SRCREV_machine ?= "f46816a75d738acbe4b1211153badf2f8e412780"
-SRCREV_meta ?= "cf716c58bea8a4c0daba70740803b5074766f2fd"
+SRCREV_machine:qemuarm ?= "35fb6c4d167cb1231aef234a06a66f577aa1391b"
+SRCREV_machine ?= "e5cd0b75a56725559a57e91a1e3139ed6618e181"
+SRCREV_meta ?= "287299fba9a8435f470eaf0fa218041b9a716a71"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/meta/recipes-kernel/linux/linux-yocto_5.15.bb b/meta/recipes-kernel/linux/linux-yocto_5.15.bb
index 8356e6d16c..6b877ae7cf 100644
--- a/meta/recipes-kernel/linux/linux-yocto_5.15.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_5.15.bb
@@ -13,17 +13,17 @@ KBRANCH:qemux86 ?= "v5.15/standard/base"
KBRANCH:qemux86-64 ?= "v5.15/standard/base"
KBRANCH:qemumips64 ?= "v5.15/standard/mti-malta64"
-SRCREV_machine:qemuarm ?= "453d02534c0a02adf3c45d10c3654ff4b8fef05c"
-SRCREV_machine:qemuarm64 ?= "f46816a75d738acbe4b1211153badf2f8e412780"
-SRCREV_machine:qemumips ?= "df874c475e84e375b21c1f71ad7c3ab5cab22218"
-SRCREV_machine:qemuppc ?= "f46816a75d738acbe4b1211153badf2f8e412780"
-SRCREV_machine:qemuriscv64 ?= "f46816a75d738acbe4b1211153badf2f8e412780"
-SRCREV_machine:qemuriscv32 ?= "f46816a75d738acbe4b1211153badf2f8e412780"
-SRCREV_machine:qemux86 ?= "f46816a75d738acbe4b1211153badf2f8e412780"
-SRCREV_machine:qemux86-64 ?= "f46816a75d738acbe4b1211153badf2f8e412780"
-SRCREV_machine:qemumips64 ?= "6f4bc07807d1e17fde099baadf60752fca51fee8"
-SRCREV_machine ?= "f46816a75d738acbe4b1211153badf2f8e412780"
-SRCREV_meta ?= "cf716c58bea8a4c0daba70740803b5074766f2fd"
+SRCREV_machine:qemuarm ?= "4f846cfafc6eaeb7c0bdfc59aef1fb22163564b6"
+SRCREV_machine:qemuarm64 ?= "e5cd0b75a56725559a57e91a1e3139ed6618e181"
+SRCREV_machine:qemumips ?= "cfe801db227a60eda2090ffeafb472c7d1bd2b32"
+SRCREV_machine:qemuppc ?= "e5cd0b75a56725559a57e91a1e3139ed6618e181"
+SRCREV_machine:qemuriscv64 ?= "e5cd0b75a56725559a57e91a1e3139ed6618e181"
+SRCREV_machine:qemuriscv32 ?= "e5cd0b75a56725559a57e91a1e3139ed6618e181"
+SRCREV_machine:qemux86 ?= "e5cd0b75a56725559a57e91a1e3139ed6618e181"
+SRCREV_machine:qemux86-64 ?= "e5cd0b75a56725559a57e91a1e3139ed6618e181"
+SRCREV_machine:qemumips64 ?= "eca2bcfe39044e9d4611a98493f7e8135cb5fdcf"
+SRCREV_machine ?= "e5cd0b75a56725559a57e91a1e3139ed6618e181"
+SRCREV_meta ?= "287299fba9a8435f470eaf0fa218041b9a716a71"
# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
# get the <version>/base branch, which is pure upstream -stable, and the same
@@ -31,7 +31,7 @@ SRCREV_meta ?= "cf716c58bea8a4c0daba70740803b5074766f2fd"
# normal PREFERRED_VERSION settings.
BBCLASSEXTEND = "devupstream:target"
DEFAULT_PREFERENCE:class-devupstream = "-1"
-SRCREV_machine:class-devupstream ?= "63dcc388662c3562de94d69bfa771ae4cd29b79f"
+SRCREV_machine:class-devupstream ?= "e8a2995c6076721d496d9458e13142caa7ba8753"
PN:class-devupstream = "linux-yocto-upstream"
KBRANCH:class-devupstream = "v5.15/base"
@@ -42,7 +42,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.15;destsuffix=${KMETA}"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "5.15.16"
+LINUX_VERSION ?= "5.15.19"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
--
2.19.1
^ permalink raw reply related [relevance 1%]
* [ANNOUNCE] 5.15.18-rt28
@ 2022-01-30 21:02 1% Clark Williams
0 siblings, 0 replies; 200+ results
From: Clark Williams @ 2022-01-30 21:02 UTC (permalink / raw)
To: LKML, linux-rt-users, Steven Rostedt, Thomas Gleixner,
Carsten Emde, John Kacur, Sebastian Andrzej Siewior,
Daniel Wagner, Tom Zanussi, Clark Williams, Pavel Machek
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 127661 bytes --]
Hello RT-list!
I'm pleased to announce the 5.15.18-rt28 stable release.
You can get this release via the git tree at:
git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git
branch: v5.15-rt
Head SHA1: 62a9fa1bad289c27d3975321b83aaf2f91d466a1
Or to build 5.15.18-rt28 directly, the following patches should be applied:
https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.15.tar.xz
https://www.kernel.org/pub/linux/kernel/v5.x/patch-5.15.18.xz
https://www.kernel.org/pub/linux/kernel/projects/rt/5.15/patch-5.15.18-rt28.patch.xz
You can also build from 5.15.14-rt27 by applying the incremental patch:
https://www.kernel.org/pub/linux/kernel/projects/rt/5.15/incr/patch-5.15.14-rt27-rt28.patch.xz
Enjoy!
Clark
Changes from v5.15.14-rt27:
---
Aaron Ma (3):
Bluetooth: btusb: Add support for Foxconn MT7922A
Bluetooth: btusb: Add support for Foxconn QCA 0xe0d0
ath11k: qmi: avoid error messages when dma allocation fails
Adam Ford (1):
clk: imx8mn: Fix imx8mn_clko1_sels
Adam Ward (1):
regulator: da9121: Prevent current limit change when enabled
Aditya Garg (3):
Bluetooth: add quirk disabling LE Read Transmit Power
Bluetooth: btbcm: disable read tx power for some Macs with the T2 Security chip
Bluetooth: btbcm: disable read tx power for MacBook Air 8,1 and 8,2
Adrian Hunter (2):
mmc: sdhci-pci: Add PCI ID for Intel ADL
perf script: Fix hex dump character output
Alan Maguire (1):
libbpf: Silence uninitialized warning/error in btf_dump_dump_type_data
Alan Stern (3):
USB: core: Fix bug in resuming hub's handling of wakeup requests
USB: Fix "slab-out-of-bounds Write" bug in usb_hcd_poll_rh_status
scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
Alex Deucher (2):
drm/amdgpu/display: set vblank_disable_immediate for DC
drm/amdgpu: don't do resets on APUs which don't support it
Alex Elder (2):
ARM: dts: qcom: sdx55: fix IPA interconnect definitions
net: ipa: fix atomic update in ipa_endpoint_replenish()
Alex Hung (1):
platform/x86/intel: hid: add quirk to support Surface Go 3
Alexander Aring (3):
fs: dlm: don't call kernel_getpeername() in error_report()
fs: dlm: fix build with CONFIG_IPV6 disabled
fs: dlm: filter user dlm messages for kernel locks
Alexander Egorenkov (1):
s390/kexec: handle R_390_PLT32DBL rela in arch_kexec_apply_relocations_add()
Alexander Gordeev (1):
s390/mm: fix 2KB pgtable release race
Alexander Lobakin (2):
samples: bpf: Fix xdp_sample_user.o linking with Clang
samples: bpf: Fix 'unknown warning group' build warning on Clang
Alexander Stein (4):
arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
Alexander Usyskin (1):
mei: hbm: fix client dma reply status
Alexandre Ghiti (3):
riscv: Get rid of MAXPHYSMEM configs
Documentation, arch: Remove leftovers from raw device
Documentation, arch: Remove leftovers from CIFS_WEAK_PW_HASH
Alexei Starovoitov (2):
libbpf: Clean gen_loader's attach kind.
bpf: Adjust BTF log size limit.
Alexey Kardashevskiy (2):
KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
Alistair Francis (2):
HID: quirks: Allow inverting the absolute X/Y values
HID: i2c-hid-of: Expose the touchscreen-inverted properties
Alistair Popple (1):
mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
Alyssa Ross (2):
serial: liteuart: fix MODULE_ALIAS
ASoC: fsl_mqs: fix MODULE_ALIAS
Amelie Delaunay (1):
dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
Amjad Ouled-Ameur (1):
usb: dwc3: meson-g12a: fix shared reset control use
Ammar Faizi (2):
tools/nolibc: x86-64: Fix startup code bug
powerpc/xive: Add missing null check after calling kmalloc
Anders Roxell (2):
selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
powerpc/cell: Fix clang -Wimplicit-fallthrough warning
Andre Przywara (1):
ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
Andreas Oetken (1):
mtd: Fixed breaking list in __mtd_del_partition.
Andrew Lunn (3):
seg6: export get_srh() for ICMP handling
icmp: ICMPV6: Examine invoking packet for Segment Route Headers.
udp6: Use Segment Routing Header for dest address if present
Andrey Konovalov (1):
lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
Andrey Ryabinin (2):
cputime, cpuacct: Include guest time in user time in cpuacct.stat
sched/cpuacct: Fix user/system in shown cpuacct.usage*
Andrii Nakryiko (9):
libbpf: Free up resources used by inner map definition
libbpf: Fix potential misaligned memory access in btf_ext__new()
libbpf: Fix glob_syms memory leak in bpf_linker
libbpf: Fix using invalidated memory in bpf_linker
samples/bpf: Clean up samples/bpf build failes
selftests/bpf: Fix memory leaks in btf_type_c_dump() helper
selftests/bpf: Destroy XDP link correctly
selftests/bpf: Fix bpf_object leak in skb_ctx selftest
libbpf: Accommodate DWARF/compiler bug with duplicated structs
Andy Shevchenko (2):
mfd: intel-lpss: Fix too early PM enablement in the ACPI ->probe()
misc: at25: Make driver OF independent again
AngeloGioacchino Del Regno (1):
mmc: mtk-sd: Use readl_poll_timeout instead of open-coded polling
Anilkumar Kolli (1):
ath11k: Use host CE parameters for CE interrupts configuration
Antoine Tenart (1):
net-sysfs: update the queue counts in the unregistration path
Anton Vasilyev (1):
media: dw2102: Fix use after free
Antony Antony (3):
xfrm: interface with if_id 0 should return error
xfrm: state and policy should fail if XFRMA_IF_ID 0
xfrm: rate limit SA mapping change message to user space
Archie Pusaka (1):
Bluetooth: Fix removing adv when processing cmd complete
Ard Biesheuvel (1):
net: cpsw: avoid alignment faults by taking NET_IP_ALIGN into account
Arie Geiger (1):
ALSA: hda/realtek: Add speaker fixup for some Yoga 15ITL5 devices
Arnaud Pouliquen (1):
rpmsg: core: Clean up resources on announce_create failure.
Arnd Bergmann (4):
staging: greybus: fix stack size warning with UBSAN
mtd: fixup CFI on ixp4xx
gpu: host1x: select CONFIG_DMA_SHARED_BUFFER
dmaengine: pxa/mmp: stop referencing config->slave_id
Arseny Demidov (1):
hwmon: (mr75203) fix wrong power-up delay value
Athira Rajeev (1):
powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC
Avihai Horon (2):
RDMA/core: Let ib_find_gid() continue search even after empty entry
RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
Avraham Stern (3):
iwlwifi: mvm: perform 6GHz passive scan after suspend
iwlwifi: mvm: set protected flag only for NDP ranging
iwlwifi: mvm: fix AUX ROC removal
Aya Levin (3):
net/mlx5e: Fix page DMA map/unmap attributes
Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
Revert "net/mlx5e: Block offload of outer header csum for GRE tunnel"
Baochen Qiang (2):
ath11k: Fix crash caused by uninitialized TX ring
ath11k: Avoid false DEADLOCK warning reported by lockdep
Baole Fang (1):
ALSA: hda/realtek: Add quirk for Legion Y9000X 2020
Baoquan He (3):
mm_zone: add function to check if managed dma zone exists
dma/pool: create dma atomic pool only if dma zone has managed pages
mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages
Bart Kroon (1):
ALSA: hda: ALC287: Add Lenovo IdeaPad Slim 9i 14ITL5 speaker quirk
Bart Van Assche (4):
scsi: core: Fix scsi_device_max_queue_depth()
scsi: ufs: Fix race conditions related to driver data
scsi: ufs: Fix a kernel crash during shutdown
scsi: core: Show SCMD_LAST in text form
Baruch Siach (3):
arm64: dts: qcom: ipq6018: Fix gpio-ranges property
of: base: Fix phandle argument length mismatch error message
of: base: Improve argument length mismatch error
Ben Greear (1):
ath11k: Fix napi related hang
Ben Hutchings (1):
firmware: Update Kconfig help text for Google firmware
Ben Skeggs (1):
drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
Benjamin Li (3):
wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
wcn36xx: populate band before determining rate on RX
wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
Bernard Zhao (1):
selinux: fix potential memleak in selinux_add_opt()
Bhaumik Bhatt (1):
bus: mhi: core: Fix reading wake_capable channel configuration
Bhupesh Sharma (1):
net: stmmac: Add platform level debug register dump feature
Biju Das (2):
arm64: dts: renesas: cat875: Add rx/tx delays
mmc: tmio: reinit card irqs in reset routine
Biwen Li (1):
arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
Bixuan Cui (1):
ALSA: oss: fix compile error when OSS_DEBUG is enabled
Borislav Petkov (4):
x86/mce: Allow instrumentation during task work queueing
x86/mce: Mark mce_panic() noinstr
x86/mce: Mark mce_end() noinstr
x86/mce: Mark mce_read_aux() noinstr
Brian Chen (1):
psi: Fix PSI_MEM_FULL state when tasks are in memstall and doing reclaim
Brian Norris (9):
drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
drm/panel: innolux-p079zca: Delete panel on attach() failure
drm/rockchip: dsi: Fix unbalanced clock on probe error
drm/rockchip: dsi: Hold pm-runtime across bind/unbind
drm/rockchip: dsi: Disable PLL clock on bind error
drm/rockchip: dsi: Reconfigure hardware on resume()
mwifiex: Fix possible ABBA deadlock
drm/panel: Delete panel on mipi_dsi_attach() failure
drm/bridge: analogix_dp: Make PSR-exit block less
Brian Silverman (1):
can: gs_usb: gs_can_start_xmit(): zero-initialize hf->{flags,reserved}
Bryan O'Donoghue (4):
wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
wcn36xx: Fix DMA channel enable/disable cycle
wcn36xx: Release DMA channel descriptor allocations
wcn36xx: Put DXE block into reset before freeing memory
Cezary Rojewski (1):
ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
Changcheng Deng (1):
PM: AVS: qcom-cpr: Use div64_ul instead of do_div
Chao Yu (5):
f2fs: fix to do sanity check on inode type during garbage collection
f2fs: fix to do sanity check in is_alive()
f2fs: fix to avoid panic in is_alive() if metadata is inconsistent
f2fs: fix to reserve space for IO align feature
f2fs: fix to check available space of CP area correctly in update_ckpt_flags()
Chen Jun (1):
tpm: add request_locality before write TPM_INT_ENABLE
Chen-Yu Tsai (1):
media: hantro: Hook up RK3399 JPEG encoder output
Chengfeng Ye (4):
crypto: qce - fix uaf on qce_aead_register_one
crypto: qce - fix uaf on qce_ahash_register_one
crypto: qce - fix uaf on qce_skcipher_register_one
HSI: core: Fix return freed object in hsi_new_client
Chengguang Xu (1):
RDMA/rxe: Fix a typo in opcode name
Christian A. Ehrhardt (2):
ALSA: hda/cs8409: Increase delay during jack detection
ALSA: hda/cs8409: Fix Jack detection after resume
Christian Brauner (1):
9p: only copy valid iattrs in 9P2000.L setattr implementation
Christian Eggers (1):
mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
Christian Hewitt (2):
arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
Christian König (1):
drm/radeon: fix error handling in radeon_driver_open_kms
Christian Lachner (1):
ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master after reboot from Windows
Christian Lamparter (1):
ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
Christoph Hellwig (3):
block: fix error unwinding in device_add_disk
dm: fix alloc_dax error handling in alloc_dev
scsi: sr: Don't use GFP_DMA
Christophe JAILLET (6):
orangefs: Fix the size of a memory allocation in orangefs_bufmap_alloc()
media: venus: core: Fix a potential NULL pointer dereference in an error handling path
media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'
RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"
HID: magicmouse: Fix an error handling path in magicmouse_probe()
remoteproc: imx_rproc: Fix a resource leak in the remove function
Christophe Jaillet (1):
tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
Christophe Leroy (7):
lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
powerpc/modules: Don't WARN on first module allocation attempt
powerpc/32s: Fix shift-out-of-bounds in KASAN init
powerpc/powermac: Add additional missing lockdep_register_key()
powerpc/powermac: Add missing lockdep_register_key()
w1: Misuse of get_user()/put_user() reported by sparse
powerpc/40x: Map 32Mbytes of memory at startup
Chunfeng Yun (1):
phy: phy-mtk-tphy: add support efuse setting
Chunguang Xu (1):
ext4: fix a possible ABBA deadlock due to busy PA
Clark Williams (2):
Merge tag 'v5.15.18' into v5.15-rt
Linux 5.15.18-rt28
Claudiu Beznea (3):
mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
mfd: atmel-flexcom: Use .resume_noirq
net: phy: micrel: use kszphy_suspend()/kszphy_resume for irq aware devices
Clément Léger (1):
software node: fix wrong node passed to find nargs_prop
Conor Dooley (2):
clk: bm1880: remove kfrees on static allocations
mailbox: change mailbox-mpfs compatible string
D Scott Phillips (1):
arm64: errata: Fix exec handling in erratum 1418040 workaround
Dafna Hirschfeld (1):
media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
Dan Carpenter (11):
ksmbd: uninitialized variable in create_socket()
drm/bridge: display-connector: fix an uninitialized pointer in probe()
media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
drm/vboxvideo: fix a NULL vs IS_ERR() check
wilc1000: fix double free error in probe()
crypto: octeontx2 - prevent underflow in get_cores_bmap()
rocker: fix a sleeping in atomic bug
Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
ax25: uninitialized variable in ax25_setsockopt()
netrom: fix api breakage in nr_setsockopt()
crypto: octeontx2 - uninitialized variable in kvf_limits_store()
Dan Williams (1):
cxl/pmem: Fix reference counting for delayed work
Daniel Borkmann (4):
bpf: Fix out of bounds access from invalid *_or_null type verification
veth: Do not record rx queue hint in veth_xmit
bpf: Don't promote bogus looking registers after null check.
bpf: Mark PTR_TO_FUNC register initially with zero offset
Daniel Golle (1):
net: ethernet: mtk_eth_soc: fix return values and refactor MDIO ops
Daniel Scally (1):
media: i2c: Re-order runtime pm initialisation
Daniel Thompson (1):
Documentation: dmaengine: Correctly describe dmatest with channel unset
Danielle Ratson (2):
mlxsw: pci: Add shutdown method in PCI driver
mlxsw: pci: Avoid flow control for EMAD packets
Dario Binacchi (1):
can: flexcan: allow to change quirks at runtime
Dario Petrillo (1):
perf annotate: Avoid TUI crash when navigating in the annotation of recursive functions
Dave Jiang (1):
dmaengine: idxd: fix wq settings post wq disable
David Gow (1):
kunit: Don't crash if no parameters are generated
David Heidelberg (1):
arm64: dts: qcom: msm8996: drop not documented adreno properties
David Matlack (1):
KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU
Dillon Min (3):
media: videobuf2: Fix the size printk format
ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco
clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell
Dinh Nguyen (2):
usb: dwc2: do not gate off the hardware if it does not support clock gating
EDAC/synopsys: Use the quirk for version instead of ddr version
Dmitry Baryshkov (3):
arm64: dts: qcom: msm8916: fix MMC controller aliases
drm/msm/dsi: fix initialization in the bonded DSI case
drm/msm/dpu: fix safe status debugfs file
Dmitry Osipenko (4):
gpu: host1x: Add back arm_iommu_detach_device()
drm/tegra: Add back arm_iommu_detach_device()
mfd: tps65910: Set PWR_OFF bit during driver probe
drm/tegra: submit: Add missing pm_runtime_mark_last_busy()
Dmitry Torokhov (1):
HID: vivaldi: fix handling devices not using numbered reports
Dominik Brodowski (2):
random: fix crash on multiple early calls to add_bootloader_randomness()
pcmcia: fix setting of kthread task states
Dongliang Mu (1):
media: em28xx: fix memory leak in em28xx_init_dev
Edwin Peer (3):
bnxt_en: Refactor coredump functions
bnxt_en: move coredump functions into dedicated file
bnxt_en: use firmware provided max timeout for messages
Eli Cohen (2):
vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
vdpa/mlx5: Restore cur_num_vqs in case of failure in change_num_qps()
Eric Biggers (2):
random: fix data race on crng_node_pool
random: fix data race on crng init time
Eric Dumazet (7):
xfrm: fix a small bug in xfrm_sa_len()
ppp: ensure minimum packet size in ppp_write()
ipv4: update fib_info_cnt under spinlock protection
ipv4: avoid quadratic behavior in netns dismantle
af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
netns: add schedule point in ops_exit_list()
Eric Farman (1):
KVM: s390: Clarify SIGP orders versus STOP/RESTART
Eric W. Biederman (1):
taskstats: Cleanup the use of task->exit_code
Eugen Hristev (1):
media: i2c: imx274: fix s_frame_interval runtime resume not requested
Fabio Estevam (3):
media: imx-pxp: Initialize the spinlock prior to using it
ath10k: Fix the MTU size on QCA9377 SDIO
regmap: Call regmap_debugfs_exit() prior to _init()
Felix Fietkau (1):
mt76: mt7615: improve wmm index allocation
Felix Kuehling (1):
drm/amdkfd: Fix error handling in svm_range_add
Fengnan Chang (1):
f2fs: fix remove page failed in invalidate compress pages
Filipe Manana (2):
btrfs: fix deadlock between quota enable and other quota operations
btrfs: respect the max size in the header when activating swap file
Florian Fainelli (1):
net: mdio: Demote probed message to debug print
Florian Westphal (2):
netfilter: bridge: add support for pppoe filtering
netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
Frank Rowand (1):
of: unittest: 64 bit dma address test requires arch support
Frederic Weisbecker (2):
workqueue: Fix unbind_workers() VS wq_worker_running() race
rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
Fugang Duan (1):
tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
Gang Li (1):
shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
Gaurav Jain (1):
crypto: caam - save caam memory to support crypto engine retry mechanism.
Geert Uytterhoeven (1):
riscv: dts: microchip: mpfs: Drop empty chosen node
Geliang Tang (1):
mptcp: fix a DSS option writing error
George G. Davis (1):
mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
German Gomez (1):
perf evsel: Override attr->sample_period for non-libpfm4 events
Ghalem Boudour (1):
xfrm: fix policy lookup for ipv6 gre packets
Giovanni Cabiddu (1):
crypto: qat - fix undetected PFVF timeout in ACK loop
Greg Kroah-Hartman (4):
Linux 5.15.15
Linux 5.15.16
Linux 5.15.17
Linux 5.15.18
Guillaume Nault (4):
mlx5: Don't accidentally set RTO_ONLINK before mlx5e_route_lookup_ipv4_get()
xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
Haimin Zhang (1):
USB: ehci_brcm_hub_control: Improve port index sanitizing
Hans Verkuil (3):
media: cec: fix a deadlock situation
media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
media: cec-pin: fix interrupt en/disable handling
Hans de Goede (10):
media: i2c: ov8865: Fix lockdep error
ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
ACPI: Change acpi_device_always_present() into acpi_device_override_status()
ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win
PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
Hari Bathini (2):
powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
Hari Prasath (1):
ARM: dts: at91: update alternate function of signal PD20
Harry Wentland (1):
drm/amdgpu: Use correct VIEWPORT_DIMENSION for DCN2
Harshad Shirwadkar (1):
ext4: initialize err_blk before calling __ext4_get_inode_loc
Hector Martin (3):
spi: Fix incorrect cs_setup delay handling
iommu/io-pgtable-arm: Fix table descriptor paddr formatting
mmc: sdhci-pci-gli: GL9755: Support for CD/WP inversion on OF platforms
Heiko Carstens (1):
selftests/ftrace: make kprobe profile testcase description unique
Heiner Kallweit (2):
i2c: i801: Don't silently correct invalid transfer size
crypto: omap-aes - Fix broken pm_runtime_and_get() usage
Herbert Xu (1):
crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
Horatiu Vultur (1):
net: ocelot: Fix the call to switchdev_bridge_port_offload
Hou Tao (1):
bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
Huang Rui (1):
x86, sched: Fix undefined reference to init_freq_invariance_cppc() build error
Hyeong-Jun Kim (1):
f2fs: compress: fix potential deadlock of compress file
Håkon Bugge (1):
RDMA/cma: Remove open coding of overflow checking for private_data_len
Igor Pylypiv (1):
scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
Ilan Peer (2):
iwlwifi: mvm: Fix calculation of frame length
iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
Ilia Mirkin (1):
drm/nouveau/kms/nv04: use vzalloc for nv04_display
Ingo Molnar (1):
x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
Iwona Winiarska (2):
gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
gpio: aspeed-sgpio: Convert aspeed_sgpio.lock to raw_spinlock
Jack Wang (1):
RDMA/rtrs-clt: Fix the initial value of min_latency
Jackie Liu (1):
drm/msm/dp: displayPort driver need algorithm rational
Jaegeuk Kim (1):
f2fs: avoid EINVAL by SBI_NEED_FSCK when pinning a file
Jakub Kicinski (2):
crypto: x86/aesni - don't require alignment of data
selftests: harness: avoid false negatives if test has no ASSERTs
James Hilliard (1):
media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
James Smart (3):
scsi: lpfc: Fix leaked lpfc_dmabuf mbox allocations with NPIV
scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
scsi: lpfc: Fix lpfc_force_rscn ndlp kref imbalance
Jamie Hill-Daniel (1):
vfs: fs_context: fix up param length parsing in legacy_parse_param
Jammy Huang (2):
media: aspeed: fix mode-detect always time out at 2nd run
media: aspeed: Update signal status immediately to ensure sane hw state
Jan Kara (6):
bfq: Do not let waker requests skip proper accounting
ext4: avoid trim error on fs with small groups
udf: Fix error handling in udf_new_inode()
ext4: make sure to reset inode lockdep class when quota enabling fails
ext4: make sure quota gets properly shutdown on error
select: Fix indefinitely sleeping task in poll_schedule_timeout()
Jan Kiszka (1):
soc: ti: pruss: fix referenced node in error message
Jann Horn (1):
HID: uhid: Fix worker destroying device without any protection
Jason A. Donenfeld (1):
random: do not throw away excess input to crng_fast_load
Jason Gerecke (3):
HID: wacom: Reset expected and received contact counts at the same time
HID: wacom: Ignore the confidence flag when a touch is removed
HID: wacom: Avoid using stale array indicies to read contact count
Javier Martinez Canillas (1):
video: vga16fb: Only probe for EGA and VGA 16 color graphic cards
Jens Axboe (1):
block: fix async_depth sysfs interface for mq-deadline
Jens Wiklander (1):
tee: fix put order in teedev_close_context()
Jernej Skrabec (1):
media: hantro: Fix probe func error path
Jesper Dangaard Brouer (1):
igc: AF_XDP zero-copy metadata adjust breaks SKBs on XDP_PASS
Jiasheng Jiang (9):
media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
power: reset: mt6397: Check for null res pointer
staging: greybus: audio: Check null pointer
fsl/fman: Check for null pointer after calling devm_ioremap
Bluetooth: hci_bcm: Check for error irq
can: xilinx_can: xcan_probe(): check for error irq
ASoC: rt5663: Handle device_property_read_u32_array error codes
ASoC: mediatek: Check for error clk pointer
ASoC: samsung: idma: Check of ioremap return value
Jie Wang (1):
net: bonding: fix bond_xmit_broadcast return value error bug
Jim Quinlan (1):
of: unittest: fix warning on PowerPC frame size warning
Jingwen Chen (2):
drm/amd/amdgpu: fix psp tmr bo pin count leak in SRIOV
drm/amd/amdgpu: fix gmc bo pin count leak in SRIOV
Jiri Olsa (1):
bpf/selftests: Fix namespace mount setup in tc_redirect
Jiri Slaby (1):
mxser: keep only !tty test in ISR
Jisheng Zhang (1):
riscv: mm: fix wrong phys_ram_base value for RV64
Joakim Tjernlund (1):
i2c: mpc: Correct I2C reset procedure
Joe Thornber (2):
dm btree: add a defensive bounds check to insert_at()
dm space map common: add bounds check to sm_ll_lookup_bitmap()
Joerg Roedel (1):
x86/mm: Flush global TLB when switching to trampoline page-table
Johan Hovold (14):
Bluetooth: bfusb: fix division by zero in send path
media: uvcvideo: fix division by zero at stream start
firmware: qemu_fw_cfg: fix sysfs information leak
firmware: qemu_fw_cfg: fix NULL-pointer deref on duplicate entries
firmware: qemu_fw_cfg: fix kobject leak in probe error path
media: flexcop-usb: fix control-message timeouts
media: mceusb: fix control-message timeouts
media: em28xx: fix control-message timeouts
media: cpia2: fix control-message timeouts
media: s2255: fix control-message timeouts
media: redrat3: fix control-message timeouts
media: pvrusb2: fix control-message timeouts
media: stk1160: fix control-message timeouts
can: softing_cs: softingcs_probe(): fix memleak on registration failure
Johannes Berg (12):
iwlwifi: mvm: fix 32-bit build in FTM
um: fix ndelay/udelay defines
um: rename set_signals() to um_set_signals()
um: virt-pci: Fix 32-bit compile
lib/logic_iomem: Fix 32-bit build
lib/logic_iomem: Fix operation on 32-bit
um: virtio_uml: Fix time-travel external time propagation
iwlwifi: mvm: synchronize with FW after multicast commands
iwlwifi: fix leaks/bad data after failed firmware load
iwlwifi: remove module loading failure message
um: gitignore: Add kernel/capflags.c
iwlwifi: fix Bz NMI behaviour
John David Anglin (2):
parisc: Avoid calling faulthandler_disabled() twice
parisc: Fix lpa and lpa_user defines
John Fastabend (2):
bpf, sockmap: Fix return codes from tcp_bpf_recvmsg_parser()
bpf, sockmap: Fix double bpf_prog_put on error case in map_link
John Keeping (2):
usb: dwc2: gadget: initialize max_speed from params
pinctrl/rockchip: fix gpio device creation
Jonathan Cameron (2):
iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
iio: trigger: Fix a scheduling whilst atomic issue seen on tsc2046
Josef Bacik (3):
btrfs: remove BUG_ON() in find_parent_nodes()
btrfs: remove BUG_ON(!eie) in find_parent_nodes
btrfs: check the root node for uptodate before returning it
Joseph Hwang (1):
Bluetooth: refactor set_exp_feature with a feature table
José Expósito (6):
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
HID: magicmouse: Report battery level over USB
HID: apple: Do not reset quirks when the Fn key is not found
José Roberto de Souza (1):
drm/i915/display/ehl: Update voltage swing table
Julia Lawall (4):
powerpc/6xx: add missing of_node_put
powerpc/powernv: add missing of_node_put
powerpc/cell: add missing of_node_put
powerpc/btext: add missing of_node_put
Kai-Heng Feng (3):
ALSA: hda/realtek: Use ALC285_FIXUP_HP_GPIO_LED on another HP laptop
rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE
usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
Kajol Jain (1):
bpf: Remove config check to enable bpf support for branch records
Kamal Heib (3):
RDMA/hns: Validate the pkey index
RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
RDMA/cxgb4: Set queue pair state when being queried
Karl Kurbjun (1):
HID: Ignore battery for Elan touchscreen on HP Envy X360 15t-dr100
Karthikeyan Kathirvel (2):
ath11k: clear the keys properly via DISABLE_KEY
ath11k: reset RSN/WPA present state for open BSS
Kees Cook (2):
x86/uaccess: Move variable into switch case statement
char/mwave: Adjust io port register size
Kevin Bracey (1):
net_sched: restore "mpu xxx" handling
Kieran Bingham (1):
arm64: dts: renesas: Fix thermal bindings
Kirill A. Shutemov (1):
ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
Kishon Vijay Abraham I (2):
arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
arm64: dts: ti: j721e-main: Fix 'dtbs_check' in serdes_ln_ctrl node
Konrad Dybcio (2):
arm64: dts: qcom: sm8350: Shorten camera-thermal-bottom name
regulator: qcom_smd: Align probe function with rpmh-regulator
Kris Van Hees (1):
bpf: Fix verifier support for validation of async callbacks
Krzysztof Kozlowski (1):
nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()
Kunihiko Hayashi (2):
spi: uniphier: Fix a bug that doesn't point to private data correctly
dmaengine: uniphier-xdmac: Fix type of address variables
Kuniyuki Iwashima (1):
bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
Kurt Kanzenbach (4):
net: dsa: hellcreek: Fix insertion of static FDB entries
net: dsa: hellcreek: Add STP forwarding rule
net: dsa: hellcreek: Allow PTP P2P measurements on blocked ports
net: dsa: hellcreek: Add missing PTP via UDP rules
Kyeong Yoo (1):
jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
Lad Prabhakar (6):
mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
serial: 8250_bcm7271: Propagate error codes from brcmuart_probe()
can: rcar_canfd: rcar_canfd_channel_probe(): make sure we free CAN network device
clk: renesas: rzg2l: Check return value of pm_genpd_init()
clk: renesas: rzg2l: propagate return value of_genpd_add_provider_simple()
Lakshmi Sowjanya D (1):
i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
Larry Finger (3):
Bbluetooth: btusb: Add another Bluetooth part for Realtek 8852AE
Bluetooth: btusb: Add one more Bluetooth part for the Realtek RTL8852AE
rtlwifi: rtl8192cu: Fix WARNING when calling local_irq_restore() with interrupts enabled
Laurence de Bruxelles (1):
rtc: pxa: fix null pointer dereference
Laurent Pinchart (1):
drm: rcar-du: Fix CRTC timings when CMM is used
Leon Romanovsky (1):
devlink: Remove misleading internal_flags from health reporter dump
Li Hua (1):
sched/rt: Try to restart rt period timer when rt runtime exceeded
Li RongQing (1):
KVM: x86: don't print when fail to read/write pv eoi memory
Lino Sanfilippo (2):
serial: amba-pl011: do not request memory region twice
tpm: fix potential NULL pointer access in tpm_del_char_device
Linus Lüssing (1):
batman-adv: allow netlink usage in unprivileged containers
Linus Torvalds (1):
fget: clarify and improve __fget_files() implementation
Lizhi Hou (1):
tty: serial: uartlite: allow 64 bit address
Loic Poulain (2):
bus: mhi: pci_generic: Graceful shutdown on freeze
wcn36xx: Fix max channels retrieval
Lu Baolu (1):
iommu: Extend mutex lock scope in iommu_probe_device()
Luca Coelho (1):
iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
Lucas De Marchi (1):
x86/gpu: Reserve stolen memory for first integrated Intel GPU
Lucas Stach (2):
drm/etnaviv: consider completed fence seqno in hang check
drm/etnaviv: limit submit sizes
Luiz Augusto von Dentz (5):
Bluetooth: L2CAP: Fix not initializing sk_peer_pid
Bluetooth: MGMT: Use hci_dev_test_and_{set,clear}_flag
Bluetooth: L2CAP: Fix using wrong mode
Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
Bluetooth: hci_sync: Fix not setting adv set duration
Lukas Bulwahn (6):
ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
ASoC: codecs: wcd938x: add SND_SOC_WCD938_SDW to codec list instead
mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization
Lukas Wunner (4):
serial: pl010: Drop CR register reset on set_termios
serial: pl011: Drop CR register reset on set_termios
serial: core: Keep mctrl register state and cached copy in sync
serial: Fix incorrect rs485 polarity on uart open
Lukasz Luba (1):
cpufreq: qcom-cpufreq-hw: Update offline CPUs per-cpu thermal pressure
Luís Henriques (1):
ext4: set csum seed in tmp inode while migrating to extents
Lv Yunlong (1):
wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
Lyude Paul (1):
drm/dp: Don't read back backlight mode in drm_edp_backlight_enable()
Maher Sanalla (1):
net/mlx5: Update log_max_qp value to FW max capability
Manish Chopra (2):
bnx2x: Utilize firmware 7.13.21.0
bnx2x: Invalidate fastpath HSI version for VFs
Manivannan Sadhasivam (1):
bus: mhi: core: Fix race while handling SYS_ERR at power up
Mansur Alisha Shaik (2):
media: venus: correct low power frequency calculation for encoder
media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions
Maor Dickman (4):
net/mlx5e: Fix wrong usage of fib_info_nh when routes with nexthop objects are used
net/mlx5e: Don't block routes with nexthop objects in SW
net/mlx5e: Sync VXLAN udp ports during uplink representor profile change
net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager
Marc Kleine-Budde (7):
can: gs_usb: fix use of uninitialized variable, detach device on reception of invalid USB data
can: isotp: convert struct tpcon::{idx,len} to unsigned int
can: mcp251xfd: add missing newline to printed strings
can: softing: softing_startstop(): fix set but not used variable warning
can: flexcan: rename RX modes
can: flexcan: add more quirks to describe RX path capabilities
can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
Marc Zyngier (1):
irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
Marcelo Tosatti (1):
KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
Marco Chiappero (2):
crypto: qat - remove unnecessary collision prevention step in PFVF
crypto: qat - make pfvf send message direction agnostic
Marek Behún (1):
ARM: dts: armada-38x: Add generic compatible to UART nodes
Marek Vasut (2):
soc: imx: gpcv2: Synchronously suspend MIX domains
crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
Marijn Suijten (7):
backlight: qcom-wled: Validate enabled string indices in DT
backlight: qcom-wled: Pass number of elements to read to read_u32_array
backlight: qcom-wled: Fix off-by-one maximum with default num_strings
backlight: qcom-wled: Override default length with qcom,enabled-strings
backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
backlight: qcom-wled: Respect enabled-strings in set_brightness
regulator: qcom-labibb: OCP interrupts are not a failure while disabled
Marina Nikolic (1):
amdgpu/pm: Make sysfs pm attributes as read-only for VFs
Mario Limonciello (3):
drm/amd/display: explicitly set is_dsc_supported to false before use
ACPI: CPPC: Check present CPUs for determining _CPC is valid
drm/amd/display: reset dcn31 SMU mailbox on failures
Mark Chen (2):
Bluetooth: btusb: Handle download_firmware failure cases
Bluetooth: btusb: Return error code when getting patch status failed
Mark Langsdorf (1):
ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
Mark Rutland (1):
powerpc: Avoid discarding flags in system_call_exception()
Mark-YW.Chen (1):
Bluetooth: btusb: fix memory leak in btusb_mtk_submit_wmt_recv_urb()
Markus Reichl (1):
net: usb: Correct reset handling of smsc95xx
Martin Blumenstingl (1):
clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
Martin Kaiser (1):
staging: r8188eu: switch the led off during deinit
Martin Leung (1):
drm/amd/display: add else to avoid double destroy clk_mgr
Martyn Welch (1):
drm/bridge: megachips: Ensure both bridges are probed before registration
Mateusz Jończyk (1):
rtc: cmos: take rtc_lock while reading from CMOS
Mathias Krause (1):
drm/vmwgfx: Fix stale file descriptors on failed usercopy
Matthias Schiffer (1):
scripts/dtc: dtx_diff: remove broken example from help text
Matthieu Baerts (1):
mptcp: fix opt size when sending DSS + MP_FAIL
Mauro Carvalho Chehab (8):
media: atomisp: fix enum formats logic
media: atomisp: fix try_fmt logic
media: atomisp: set per-device's default mode
media: atomisp: check before deference asd variable
media: atomisp: handle errors at sh_css_create_isp_params()
media: m920x: don't use stack on USB reads
scripts: sphinx-pre-install: add required ctex dependency
scripts: sphinx-pre-install: Fix ctex support on Debian
Max Chou (1):
Bluetooth: btusb: Add the new support ID for Realtek RTL8852A
Maxim Levitsky (5):
iommu/amd: Restore GA log/tail pointer on host resume
iommu/amd: X2apic mode: re-enable after resume
iommu/amd: X2apic mode: setup the INTX registers on mask/unmask
iommu/amd: X2apic mode: mask/unmask interrupts on suspend/resume
iommu/amd: Remove useless irq affinity notifier
Maxim Mikityanskiy (2):
bpf: Fix the test_task_vma selftest to support output shorter than 1 kB
sch_api: Don't skip qdisc attach on ingress
Maxime Ripard (13):
clk: bcm-2835: Pick the closest clock rate
clk: bcm-2835: Remove rounding up the dividers
drm/vc4: hdmi: Set a default HSM rate
drm/vc4: hdmi: Move the HSM clock enable to runtime_pm
drm/vc4: hdmi: Make sure the controller is powered in detect
drm/vc4: hdmi: Make sure the controller is powered up during bind
drm/vc4: hdmi: Rework the pre_crtc_configure error handling
drm/vc4: crtc: Make sure the HDMI controller is powered when disabling
drm/vc4: hdmi: Enable the scrambler on reconnection
drm/vc4: hdmi: Make sure the device is powered with CEC
drm/vc4: crtc: Drop feed_txp from state
drm/vc4: Fix non-blocking commit getting stuck forever
drm/vc4: crtc: Copy assigned channel to the CRTC
Meng Li (1):
crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
Merlijn Wajer (1):
leds: lp55xx: initialise output direction from dts
Miaoqian Lin (10):
Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
drivers/firmware: Add missing platform_device_put() in sysfb_create_simplefb
spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
phy: mediatek: Fix missing check in mtk_mipi_tx_probe
scsi: ufs: ufs-mediatek: Fix error checking in ufs_mtk_init_va09_pwr_ctrl()
parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
gpio: mpc8xxx: Fix IRQ check in mpc8xxx_probe
gpio: idt3243x: Fix IRQ check in idt_gpio_probe
lib82596: Fix IRQ check in sni_82596_probe
Michael Ellerman (4):
powerpc/64s: Mask NIP before checking against SRR0
powerpc/64s: Use EMIT_WARN_ENTRY for SRR debug warnings
powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
selftests/powerpc: Add a test of sigreturning to the kernel
Michael Kuron (1):
media: dib0700: fix undefined behavior in tuner shutdown
Michael S. Tsirkin (1):
virtio_ring: mark ring unused on error
Michael Walle (1):
mtd: core: provide unique name for nvmem device
Michal Suchanek (1):
debugfs: lockdown: Allow reading debugfs files that are not world readable
Mika Westerberg (1):
thunderbolt: Runtime PM activate both ends of the device link
Mike Leach (1):
Documentation: coresight: Fix documentation issue
Mikhail Rudenko (1):
media: rockchip: rkisp1: use device name for debugfs subdir name
Miroslav Lichvar (2):
net: fix SOF_TIMESTAMPING_BIND_PHC to work with multiple sockets
net: fix sock_timestamping_bind_phc() to release device
Mohammad Athari Bin Ismail (1):
net: phy: marvell: add Marvell specific PHY loopback
Moshe Shemesh (2):
net/mlx5: Set command entry semaphore up once got index free
Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
Moshe Tal (1):
bonding: Fix extraction of ports from the packet headers
Namjae Jeon (5):
ksmbd: fix guest connection failure with nautilus
ksmbd: add support for smb2 max credit parameter
ksmbd: move credit charge deduction under processing request
ksmbd: limits exceeding the maximum allowable outstanding requests
ksmbd: add reserved room in ipc request/response
Nathan Chancellor (5):
staging: wlan-ng: Avoid bitwise vs logical OR warning in hfa384x_usb_throttlefn()
drm/i915: Avoid bitwise vs logical OR warning in snb_wm_latency_quirk()
x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
MIPS: Loongson64: Use three arguments for slti
Nathan Errera (1):
iwlwifi: mvm: test roc running status bits before removing the sta
Neal Liu (1):
usb: uhci: add aspeed ast2600 uhci support
Neil Armstrong (1):
drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
NeilBrown (1):
devtmpfs regression fix: reconfigure on each mount
Nicholas Kazlauskas (1):
drm/amd/display: Fix out of bounds access on DNC31 stream encoder regs
Nicholas Piggin (2):
powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
powerpc/64s/radix: Fix huge vmap false positive
Nick Kossifidis (3):
riscv: try to allocate crashkern region from 32bit addressible memory
riscv: Don't use va_pa_offset on kdump
riscv: use hart id instead of cpu id on machine_kexec
Nicolas Dichtel (1):
xfrm: fix dflt policy check when there is no policy configured
Nicolas Toromanoff (6):
crypto: stm32/cryp - fix CTR counter carry
crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
crypto: stm32/cryp - check early input data
crypto: stm32/cryp - fix double pm exit
crypto: stm32/cryp - fix lrw chaining mode
crypto: stm32/cryp - fix bugs and crash in tests
Nikita Yushchenko (1):
tracing/osnoise: Properly unhook events if start_per_cpu_kthreads() fails
Niklas Söderlund (2):
dt-bindings: thermal: Fix definition of cooling-maps contribution property
media: rcar-vin: Update format alignment constraints
Nishanth Menon (4):
arm64: dts: ti: k3-am642: Fix the L2 cache sets
arm64: dts: ti: k3-j7200: Fix the L2 cache sets
arm64: dts: ti: k3-j721e: Fix the L2 cache sets
arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
Ohad Sharabi (1):
habanalabs: skip read fw errors if dynamic descriptor invalid
Oleksandr Andrushchenko (1):
xen/gntdev: fix unmap notification order
Oleksij Rempel (1):
thermal/drivers/imx: Implement runtime PM support
Pablo Neira Ayuso (1):
netfilter: nft_payload: do not update layer 4 checksum when mangling fragments
Pali Rohár (5):
PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
PCI: pci-bridge-emul: Fix definitions of reserved bits
PCI: pci-bridge-emul: Correctly set PCIe capabilities
PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
Panicker Harish (1):
Bluetooth: hci_qca: Stop IBS timer during BT OFF
Paolo Abeni (2):
mptcp: fix per socket endpoint accounting
bpf: Do not WARN in bpf_warn_invalid_xdp_action()
Patrick Williams (1):
tpm: fix NPE on probe for missing device
Paul Blakey (4):
net/mlx5e: Fix matching on modified inner ip_ecn bits
net/sched: flow_dissector: Fix matching on zone id for invalid conns
net: openvswitch: Fix matching zone id for invalid conns arriving from tc
net: openvswitch: Fix ct_state nat flags for conns arriving from tc
Paul Cercueil (8):
ARM: dts: exynos: Fix BCM4330 Bluetooth reset polarity in I9100
mtd: rawnand: davinci: Don't calculate ECC when reading page
mtd: rawnand: davinci: Avoid duplicated page read
mtd: rawnand: davinci: Rewrite function description
mtd: rawnand: Export nand_read_page_hwecc_oob_first()
mtd: rawnand: ingenic: JZ4740 needs 'oob_first' read page function
MIPS: boot/compressed/: add __ashldi3 to target for ZSTD compression
MIPS: compressed: Fix build with ZSTD compression
Paul Chaignon (1):
bpftool: Enable line buffering for stdout
Paul E. McKenney (1):
rcu: Tighten rcu_advance_cbs_nowake() checks
Paul Gerber (1):
thermal/drivers/imx8mm: Enable ADC when enabling monitor
Paul Moore (1):
audit: ensure userspace is penalized the same as the kernel when under pressure
Pavankumar Kondeti (1):
usb: gadget: f_fs: Use stream_open() for endpoint files
Pavel Begunkov (2):
io_uring: remove double poll on poll update
io_uring: fix not released cached task refs
Pavel Hofman (1):
usb: gadget: u_audio: Subdevice 0 for capture ctls
Pavel Skripkin (2):
Bluetooth: stop proccessing malicious adv data
net: mcs7830: handle usb read errors properly
Peiwei Hu (1):
powerpc/prom_init: Fix improper check of prom_getprop()
Peng Fan (1):
arm64: dts: ti: k3-j721e: correct cache-sets info
Peng Hao (1):
virtio/virtio_mem: handle a possible NULL as a memcpy parameter
Peter Chiu (1):
mt76: mt7615: fix possible deadlock while mt7615_register_ext_phy()
Peter Gonda (1):
crypto: ccp - Move SEV_INIT retry for corrupted data
Petr Cvachoucek (1):
ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
Philipp Zabel (1):
media: coda: fix CODA960 JPEG encoder buffer overflow
Pierre-Louis Bossart (1):
ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible
Ping-Ke Shih (2):
rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC
mac80211: allow non-standard VHT MCS-10/11
Pingfan Liu (1):
efi: apply memblock cap after memblock_add()
Po-Hao Huang (1):
rtw88: 8822c: update rx settings to prevent potential hw deadlock
Prasad Malisetty (1):
arm64: dts: qcom: sc7280: Fix incorrect clock name
Qiang Yu (1):
drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
Quentin Monnet (4):
bpftool: Fix memory leak in prog_dump()
samples/bpf: Install libbpf headers when building
bpftool: Remove inclusion of utilities.mak from Makefiles
bpftool: Fix indent in option lists in the documentation
Raed Salem (1):
net/xfrm: IPsec tunnel mode fix inner_ipproto setting in sec_path
Rafael J. Wysocki (5):
ACPI: EC: Rework flushing of EC work while suspended to idle
PM: runtime: Add safety net to supplier device release
cpufreq: Fix initialization of min and max frequency QoS requests
ACPICA: Utilities: Avoid deleting the same object twice in a row
ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
Rameshkumar Sundaram (2):
ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
Randy Dunlap (5):
mips: lantiq: add support for clk_set_parent()
mips: bcm63xx: add support for clk_set_parent()
um: registers: Rename function names to avoid conflicts and build problems
media: correct MEDIA_TEST_SUPPORT help text
Documentation: fix firewire.rst ABI file path error
Reiji Watanabe (2):
arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
arm64: mte: DC {GVA,GZVA} shouldn't be used when DCZID_EL0.DZP == 1
Ricardo Ribalda (1):
media: Revert "media: uvcvideo: Set unique vdev name based in type"
Rob Clark (2):
drm/msm/gpu: Don't allow zero fence_id
iommu/arm-smmu-qcom: Fix TTBR0 read
Rob Herring (1):
PCI: xgene: Fix IB window setup
Robert Hancock (10):
clk: si5341: Fix clock HW provider cleanup
net: axienet: increase reset timeout
net: axienet: Wait for PhyRstCmplt after core reset
net: axienet: reset core on initialization prior to MDIO access
net: axienet: add missing memory barriers
net: axienet: limit minimum TX ring size
net: axienet: Fix TX ring slot available check
net: axienet: fix number of TX ring slots for available check
net: axienet: fix for TX busy handling
net: axienet: increase default TX ring size to 128
Robert Marko (2):
arm64: dts: marvell: cn9130: add GPIO and SPI aliases
arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
Robert Schlabbach (1):
media: si2157: Fix "warm" tuner state detection
Robin Murphy (2):
perf/arm-cmn: Fix CPU hotplug unregistration
drm/tegra: vic: Fix DMA API misuse
Russell King (1):
arm64/bpf: Remove 128MB limit for BPF JIT programs
Russell King (Oracle) (4):
net: phy: prefer 1000baseT over 1000baseKX
net: phy: marvell: configure RGMII delays for 88E1118
net: gemini: allow any RGMII interface mode
net: sfp: fix high power modules without diagnostic monitoring
Ryuta NAKANISHI (1):
phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
Sakari Ailus (3):
media: ov8865: Disable only enabled regulators on error path
device property: Fix fwnode_graph_devcon_match() fwnode leak
Documentation: ACPI: Fix data node reference documentation
Sam Protsenko (1):
dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
Sameer Pujar (2):
ALSA: hda/tegra: Fix Tegra194 HDA reset failure
arm64: tegra: Remove non existent Tegra194 reset
Sean Christopherson (4):
perf: Protect perf_guest_cbs with RCU
KVM: x86: Register perf callbacks after calling vendor's hardware_setup()
KVM: x86: Register Processor Trace interrupt hook iff PT enabled in guest
RISC-V: Use common riscv_cpuid_to_hartid_mask() for both SMP=y and SMP=n
Sean Wang (2):
Bluetooth: btmtksdio: fix resume failure
mt76: mt7921: drop offload_flags overwritten
Sean Young (1):
media: igorplugusb: receiver overflow should be reported
Sebastian Andrzej Siewior (1):
ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
Sebastian Gottschall (1):
ath10k: Fix tx hanging
Sergey Shtylyov (3):
mmc: meson-mx-sdhc: add IRQ check
mmc: meson-mx-sdio: add IRQ check
bcmgenet: add WOL IRQ check
Shakeel Butt (3):
memcg: flush stats only if updated
memcg: unify memcg stat flushing
memcg: better bounds on the memcg stats updates
Shaul Triebitz (1):
iwlwifi: mvm: avoid clearing a just saved session protection id
Shay Drory (1):
net/mlx5: Fix access to sf_dev_table on allocation failure
Shengjiu Wang (4):
ASoC: imx-card: Need special setting for ak4497 on i.MX8MQ
ASoC: imx-card: Fix mclk calculation issue for akcodec
ASoC: imx-card: improve the sound quality for low rate
ASoC: fsl_asrc: refine the check of available clock divider
Sibi Sankar (1):
remoteproc: qcom: pas: Add missing power-domain "mxc" for CDSP
Sicelo A. Mhlongo (1):
ARM: dts: omap3-n900: Fix lp5523 for multi color
Slark Xiao (1):
net: wwan: Fix MRU mismatch issue which may lead to data connection lost
Soenke Huster (1):
Bluetooth: virtio_bt: fix memory leak in virtbt_rx_handle()
Sreekanth Reddy (1):
scsi: mpi3mr: Fixes around reply request queues
Srinivas Kandagatla (2):
arm64: dts: qcom: c630: Fix soundcard setup
nvmem: core: set size for sysfs bin file
Sriram R (1):
ath11k: Avoid NULL ptr access during mgmt tx cleanup
Stafford Horne (1):
openrisc: Add clone3 ABI wrapper
Stefan Riedmueller (1):
mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
Stephan Gerhold (1):
interconnect: qcom: rpm: Prevent integer overflow in rate
Stephan Müller (1):
crypto: jitter - consider 32 LSB for APT
Stephen Boyd (4):
remoteproc: qcom: pil_info: Don't memcpy_toio more than is provided
drm/bridge: ti-sn65dsi86: Set max register for regmap
of/fdt: Don't worry about non-memory region overlap for no-map
clk: Emit a stern warning with writable debugfs enabled
Steven Rostedt (1):
tracing: Have syscall trace events use trace_event_buffer_lock_reserve()
Subbaraya Sundeep (1):
octeontx2-af: Increment ptp refcount before use
Sudeep Holla (1):
ACPICA: Fix wrong interpretation of PCC address
Suresh Kumar (1):
net: bonding: debug: avoid printing debug logs when bond is not notifying peers
Suresh Udipi (2):
media: rcar-csi2: Correct the selection of hsfreqrange
media: rcar-csi2: Optimize the selection PHTW register
Sven Eckelmann (2):
ath11k: Fix buffer overflow when scanning with extraie
ath11k: Fix ETSI regd with weather radar overlap
Swapnil Jakhade (1):
phy: cadence: Sierra: Fix to get correct parent for mux clocks
Takashi Iwai (8):
ALSA: hda/realtek: Re-order quirk entries for Lenovo
ALSA: core: Fix SSID quirk lookup for subvendor=0
ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
ALSA: hda: Fix potential deadlock at codec unbinding
ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
ALSA: seq: Set upper limit of processed events
Taniya Das (1):
clk: qcom: gcc-sc7280: Mark gcc_cfg_noc_lpass_clk always enabled
Tasos Sahanidis (1):
floppy: Fix hang in watchdog when disk is ejected
Tedd Ho-Jeong An (2):
Bluetooth: btintel: Fix broken LED quirk for legacy ROM devices
Bluetooth: btintel: Add missing quirks and msft ext for legacy bootloader
Tetsuo Handa (3):
ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep()
ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet()
block: check minor range in device_add_disk()
Thadeu Lima de Souza Cascardo (1):
selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
Theodore Ts'o (1):
ext4: don't use the orphan list when migrating an inode
Thierry Reding (2):
drm/tegra: gr2d: Explicitly control module reset
arm64: tegra: Adjust length of CCPLEX cluster MMIO region
Thomas Gleixner (2):
ALSA: hda: Make proper use of timecounter
PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
Thomas Hellström (1):
dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
Thomas Weißschuh (1):
ACPI: battery: Add the ThinkPad "Not Charging" quirk
Tianjia Zhang (1):
MIPS: Octeon: Fix build errors using clang
Tobias Waldekranz (3):
powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
net/fsl: xgmac_mdio: Add workaround for erratum A-009885
net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
Todd Kjos (2):
binder: fix handling of error during copy
binder: avoid potential data leakage when copying txn
Toke Høiland-Jørgensen (1):
xdp: check prog type before updating BPF link
Tom Rix (2):
net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
net: mscc: ocelot: fix using match before it is set
Trevor Wu (2):
ASoC: mediatek: mt8195: correct default value
ASoC: mediatek: mt8195: correct pcmif BE dai control flow
Tsuchiya Yuto (8):
media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities()
media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
media: atomisp: fix inverted logic in buffers_needed()
media: atomisp: do not use err var when checking port validity for ISP2400
media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid()
media: atomisp: fix ifdefs in sh_css.c
media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
media: atomisp: fix "variable dereferenced before check 'asd'"
Tudor Ambarus (9):
crypto: atmel-aes - Reestablish the correct tfm context at dequeue
tty: serial: atmel: Check return code of dmaengine_submit()
tty: serial: atmel: Call dma_async_issue_pending()
dmaengine: at_xdmac: Don't start transactions at tx_submit level
dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
dmaengine: at_xdmac: Print debug message after realeasing the lock
dmaengine: at_xdmac: Fix concurrency over xfers_list
dmaengine: at_xdmac: Fix lld view setting
dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
Tvrtko Ursulin (1):
drm/i915: Flush TLBs before releasing backing store
Tzung-Bi Shih (3):
ASoC: mediatek: mt8192-mt6359: fix device_node leak
ASoC: mediatek: mt8173: fix device_node leak
ASoC: mediatek: mt8183: fix device_node leak
Ulf Hansson (1):
mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
Uwe Kleine-König (1):
perf tools: Drop requirement for libstdc++.so for libopencsd check
Valentin Caron (1):
serial: stm32: move tx dma terminate DMA to shutdown
Vincent Donnefort (2):
sched/fair: Fix detection of per-CPU kthreads waking a task
sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
Vladimir Oltean (3):
net: dsa: fix incorrect function pointer check for MRP ring roles
net: mscc: ocelot: fix incorrect balancing with down LAG ports
net: mscc: ocelot: don't let phylink re-enable TX PAUSE on the NPI port
Vladimir Zapolskiy (1):
cpufreq: qcom-hw: Fix probable nested interrupt handling
Waiman Long (1):
clocksource: Avoid accidental unstable marking of clocksources
Wan Jiabing (1):
ARM: shmobile: rcar-gen2: Add missing of_node_put()
Wander Lairson Costa (1):
rcutorture: Avoid soft lockup during cpu stall
Wang Hai (4):
drm: fix null-ptr-deref in drm_dev_init_release()
Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
media: dmxdev: fix UAF when dvb_register_device() fails
media: msi001: fix possible null-ptr-deref in msi001_probe()
Wayne Lin (1):
drm/amd/display: Fix bug in debugfs crc_win_update entry
Wei Wang (1):
KVM: x86: remove PMU FIXED_CTR3 from msrs_to_save_all
Wei Yongjun (4):
usb: ftdi-elan: fix memory leak on device disconnect
misc: lattice-ecp3-config: Fix task hung when firmware load failed
Bluetooth: Fix debugfs entry leak in hci_register_dev()
Bluetooth: Fix memory leak of hci device
Weili Qian (2):
crypto: hisilicon/qm - fix incorrect return value of hisi_qm_resume()
crypto: hisilicon/hpre - fix memory leak in hpre_curve25519_src_init()
Wen Gong (2):
ath11k: add string type to search board data in board-2.bin for WCN6855
ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
Wen Gu (2):
net/smc: Reset conn->lgr when link group registration fails
net/smc: Fix hung_task when removing SMC-R devices
William Kucharski (1):
cgroup: Trace event cgroup id fields should be u64
Willy Tarreau (2):
tools/nolibc: i386: fix initial stack alignment
tools/nolibc: fix incorrect truncation of exit code
Xiangyang Zhang (1):
tracing/kprobes: 'nmissed' not showed correctly for kretprobe
Xiao Ni (1):
md: Move alloc/free acct bioset in to personality
Xie Yongji (1):
fuse: Pass correct lend value to filemap_write_and_wait_range()
Xin Xiong (1):
netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
Xin Yin (3):
ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
ext4: use ext4_ext_remove_space() for fast commit replay delete range
ext4: fast commit may miss tracking unwritten range during ftruncate
Xing Song (1):
mt76: do not pass the received frame with decryption error
Xiongfeng Wang (1):
iommu/iova: Fix race between FQ timeout and teardown
Xiongwei Song (1):
floppy: Add max size check for user space request
Yafang Shao (1):
bpf: Fix mount source show for bpffs
Yang Li (2):
ethernet: renesas: Use div64_ul instead of do_div
drm/amd/display: check top_pipe_to_program pointer
Yang Yingliang (3):
media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
staging: rtl8192e: return error code from rtllib_softmac_init()
staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
Ye Bin (3):
ext4: Fix BUG_ON in ext4_bread when write quota data
ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
block: Fix fsync always failed if once failed
Ye Guojin (2):
ASoC: imx-hdmi: add put_device() after of_find_device_by_node()
MIPS: OCTEON: add put_device() after of_find_device_by_node()
Yifeng Li (1):
PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
Yixing Liu (1):
RDMA/hns: Modify the mapping attribute of doorbell to device
Yizhuo Zhai (1):
drm/amd/display: Fix the uninitialized variable in enable_stream_features()
Yunfei Wang (1):
iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
Yury Norov (1):
bitops: protect find_first_{,zero}_bit properly
Zack Rusin (6):
drm/vmwgfx: Remove the deprecated lower mem limit
drm/vmwgfx: Fail to initialize on broken configs
drm/vmwgfx: Release ttm memory if probe fails
drm/vmwgfx: Introduce a new placement for MOB page tables
drm/vmwgfx: Remove explicit transparent hugepages support
drm/vmwgfx: Remove unused compile options
Zechuan Chen (1):
perf probe: Fix ppc64 'perf probe add events failed' case
Zekun Shen (5):
ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
rsi: Fix use-after-free in rsi_rx_done_handler()
rsi: Fix out-of-bounds read in rsi_read_pkt()
ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
Zhang Yi (1):
ext4: fix an use-after-free issue about data=journal writeback mode
Zhang Zixun (1):
x86/mce/inject: Avoid out-of-bounds write when setting flags
Zhen Lei (1):
of: fdt: Aggregate the processing of "linux,usable-memory-range"
Zheyu Ma (1):
media: b2c2: Add missing check in flexcop_pci_isr:
Zhou Qingyang (9):
drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode()
drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
media: dib8000: Fix a memleak in dib8000_init()
media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()
Zhu Lingshan (1):
ifcvf/vDPA: fix misuse virtio-net device config size for blk dev
Zijun Hu (2):
Bluetooth: btusb: Add one more Bluetooth part for WCN6855
Bluetooth: btusb: Add two more Bluetooth parts for WCN6855
Zizhuang Deng (1):
lib/mpi: Add the return value check of kcalloc()
Zongmin Zhou (1):
drm/amdgpu: fixup bad vram size on gmc v8
jason-jh.lin (1):
mailbox: fix gce_num of mt8192 driver data
mark-yw.chen (3):
Bluetooth: btusb: Add protocol for MediaTek bluetooth devices(MT7922)
Bluetooth: btusb: Add support for IMC Networks Mediatek Chip(MT7921)
Bluetooth: btusb: enable Mediatek to support AOSP extension
oujiefeng (1):
spi: hisi-kunpeng: Fix the debugfs directory name incorrect
tjiang@codeaurora.org (1):
Bluetooth: btusb: Add the new support IDs for WCN6855
xinhui pan (1):
drm/ttm: Put BO in its memory manager's lru list
---
Documentation/admin-guide/cifs/usage.rst | 7 +-
Documentation/admin-guide/devices.txt | 8 +-
Documentation/admin-guide/hw-vuln/spectre.rst | 2 +-
.../bindings/display/amlogic,meson-dw-hdmi.yaml | 5 +
.../bindings/display/amlogic,meson-vpu.yaml | 6 +
.../devicetree/bindings/input/hid-over-i2c.txt | 2 +
.../devicetree/bindings/thermal/thermal-zones.yaml | 9 +-
.../devicetree/bindings/watchdog/samsung-wdt.yaml | 5 +-
Documentation/driver-api/dmaengine/dmatest.rst | 7 +-
Documentation/driver-api/firewire.rst | 4 +-
.../acpi/dsd/data-node-references.rst | 10 +-
Documentation/trace/coresight/coresight-config.rst | 16 +-
Makefile | 2 +-
arch/arm/Kconfig.debug | 14 +-
arch/arm/boot/compressed/efi-header.S | 22 +-
arch/arm/boot/compressed/head.S | 3 +-
arch/arm/boot/dts/armada-38x.dtsi | 4 +-
arch/arm/boot/dts/exynos4210-i9100.dts | 2 +-
arch/arm/boot/dts/gemini-nas4220b.dts | 2 +-
arch/arm/boot/dts/omap3-n900.dts | 50 +-
arch/arm/boot/dts/qcom-sdx55.dtsi | 6 +-
arch/arm/boot/dts/sama7g5-pinfunc.h | 2 +-
arch/arm/boot/dts/stm32f429-disco.dts | 2 +-
arch/arm/configs/cm_x300_defconfig | 1 -
arch/arm/configs/ezx_defconfig | 1 -
arch/arm/configs/imote2_defconfig | 1 -
arch/arm/configs/nhk8815_defconfig | 1 -
arch/arm/configs/pxa_defconfig | 1 -
arch/arm/configs/spear13xx_defconfig | 1 -
arch/arm/configs/spear3xx_defconfig | 1 -
arch/arm/configs/spear6xx_defconfig | 1 -
arch/arm/include/debug/imx-uart.h | 18 +-
arch/arm/kernel/perf_callchain.c | 17 +-
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5 +-
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 2 +-
.../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 +-
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 3 +
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 14 +-
arch/arm64/boot/dts/marvell/cn9130.dtsi | 15 +
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 2 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 5 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2 +-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 4 +-
arch/arm64/boot/dts/qcom/msm8996.dtsi | 3 -
arch/arm64/boot/dts/qcom/sc7280.dtsi | 2 +-
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 27 +
arch/arm64/boot/dts/qcom/sm8350.dtsi | 2 +-
arch/arm64/boot/dts/renesas/cat875.dtsi | 1 +
arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77951.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77960.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77961.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77965.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77980.dtsi | 4 +-
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 10 +-
arch/arm64/boot/dts/ti/k3-am642.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j7200.dtsi | 6 +-
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j721e.dtsi | 6 +-
arch/arm64/include/asm/extable.h | 9 -
arch/arm64/include/asm/memory.h | 5 +-
arch/arm64/include/asm/mte-kasan.h | 8 +-
arch/arm64/kernel/perf_callchain.c | 18 +-
arch/arm64/kernel/process.c | 39 +-
arch/arm64/kernel/traps.c | 2 +-
arch/arm64/lib/clear_page.S | 10 +
arch/arm64/lib/mte.S | 8 +-
arch/arm64/mm/extable.c | 13 +-
arch/arm64/mm/ptdump.c | 2 -
arch/arm64/net/bpf_jit_comp.c | 7 +-
arch/csky/kernel/perf_callchain.c | 6 +-
arch/mips/Kconfig | 6 +-
arch/mips/bcm63xx/clk.c | 6 +
arch/mips/boot/compressed/Makefile | 2 +-
arch/mips/boot/compressed/clz_ctz.c | 2 +
arch/mips/cavium-octeon/octeon-platform.c | 2 +
arch/mips/cavium-octeon/octeon-usb.c | 1 +
arch/mips/configs/fuloong2e_defconfig | 1 -
arch/mips/configs/malta_qemu_32r6_defconfig | 1 -
arch/mips/configs/maltaaprp_defconfig | 1 -
arch/mips/configs/maltasmvp_defconfig | 1 -
arch/mips/configs/maltasmvp_eva_defconfig | 1 -
arch/mips/configs/maltaup_defconfig | 1 -
.../asm/mach-loongson64/kernel-entry-init.h | 4 +-
arch/mips/include/asm/octeon/cvmx-bootinfo.h | 4 +-
arch/mips/lantiq/clk.c | 6 +
arch/nds32/kernel/perf_event_cpu.c | 17 +-
arch/openrisc/include/asm/syscalls.h | 2 +
arch/openrisc/kernel/entry.S | 5 +
arch/parisc/include/asm/special_insns.h | 44 +-
arch/parisc/kernel/traps.c | 2 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi | 2 +
arch/powerpc/configs/ppc6xx_defconfig | 1 -
arch/powerpc/configs/pseries_defconfig | 1 -
arch/powerpc/include/asm/hw_irq.h | 40 +
arch/powerpc/kernel/btext.c | 4 +-
arch/powerpc/kernel/fadump.c | 8 +
arch/powerpc/kernel/head_40x.S | 9 +-
arch/powerpc/kernel/interrupt.c | 2 +-
arch/powerpc/kernel/interrupt_64.S | 10 +-
arch/powerpc/kernel/module.c | 11 +-
arch/powerpc/kernel/prom_init.c | 2 +-
arch/powerpc/kernel/smp.c | 42 +
arch/powerpc/kernel/watchdog.c | 41 +-
arch/powerpc/kvm/book3s_hv.c | 8 +-
arch/powerpc/kvm/book3s_hv_nested.c | 2 +-
arch/powerpc/mm/book3s64/radix_pgtable.c | 4 +-
arch/powerpc/mm/kasan/book3s_32.c | 3 +-
arch/powerpc/mm/pgtable_64.c | 14 +-
arch/powerpc/perf/core-book3s.c | 58 +-
arch/powerpc/platforms/cell/iommu.c | 1 +
arch/powerpc/platforms/cell/pervasive.c | 1 +
arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 1 +
arch/powerpc/platforms/powermac/low_i2c.c | 3 +
arch/powerpc/platforms/powernv/opal-lpc.c | 1 +
arch/powerpc/sysdev/xive/spapr.c | 3 +
arch/riscv/Kconfig | 23 +-
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi | 3 -
arch/riscv/configs/nommu_k210_defconfig | 2 -
arch/riscv/configs/nommu_k210_sdcard_defconfig | 2 -
arch/riscv/configs/nommu_virt_defconfig | 1 -
arch/riscv/include/asm/smp.h | 10 +-
arch/riscv/kernel/kexec_relocate.S | 20 +-
arch/riscv/kernel/machine_kexec.c | 3 +-
arch/riscv/kernel/perf_callchain.c | 7 +-
arch/riscv/kernel/setup.c | 10 +
arch/riscv/kernel/smp.c | 10 -
arch/riscv/mm/init.c | 19 +-
arch/s390/kernel/machine_kexec_file.c | 4 +
arch/s390/kvm/interrupt.c | 7 +
arch/s390/kvm/kvm-s390.c | 9 +-
arch/s390/kvm/kvm-s390.h | 1 +
arch/s390/kvm/sigp.c | 28 +
arch/s390/mm/pgalloc.c | 4 +-
arch/sh/configs/titan_defconfig | 1 -
arch/um/.gitignore | 1 +
arch/um/drivers/virt-pci.c | 8 +-
arch/um/drivers/virtio_uml.c | 4 +
arch/um/include/asm/delay.h | 4 +-
arch/um/include/asm/irqflags.h | 4 +-
arch/um/include/shared/longjmp.h | 2 +-
arch/um/include/shared/os.h | 4 +-
arch/um/include/shared/registers.h | 4 +-
arch/um/kernel/ksyms.c | 2 +-
arch/um/os-Linux/registers.c | 4 +-
arch/um/os-Linux/sigio.c | 6 +-
arch/um/os-Linux/signal.c | 8 +-
arch/um/os-Linux/start_up.c | 2 +-
arch/x86/boot/compressed/Makefile | 7 +-
arch/x86/configs/i386_defconfig | 1 +
arch/x86/configs/x86_64_defconfig | 1 +
arch/x86/crypto/aesni-intel_glue.c | 4 +-
arch/x86/events/core.c | 17 +-
arch/x86/events/intel/core.c | 9 +-
arch/x86/include/asm/kvm_host.h | 1 +
arch/x86/include/asm/realmode.h | 1 +
arch/x86/include/asm/topology.h | 2 +-
arch/x86/include/asm/uaccess.h | 5 +-
arch/x86/kernel/cpu/mce/core.c | 42 +-
arch/x86/kernel/cpu/mce/inject.c | 2 +-
arch/x86/kernel/early-quirks.c | 10 +-
arch/x86/kernel/reboot.c | 12 +-
arch/x86/kvm/lapic.c | 18 +-
arch/x86/kvm/mmu/tdp_mmu.c | 6 +-
arch/x86/kvm/vmx/posted_intr.c | 16 +-
arch/x86/kvm/vmx/vmx.c | 1 +
arch/x86/kvm/x86.c | 14 +-
arch/x86/realmode/init.c | 26 +
arch/x86/um/syscalls_64.c | 3 +-
block/bfq-iosched.c | 44 +-
block/blk-flush.c | 4 +-
block/blk-pm.c | 22 +-
block/genhd.c | 15 +-
block/mq-deadline.c | 4 +-
crypto/jitterentropy.c | 3 +-
drivers/acpi/acpica/exfield.c | 7 +-
drivers/acpi/acpica/exoparg1.c | 3 +-
drivers/acpi/acpica/hwesleep.c | 4 +-
drivers/acpi/acpica/hwsleep.c | 4 +-
drivers/acpi/acpica/hwxfsleep.c | 2 -
drivers/acpi/acpica/utdelete.c | 1 +
drivers/acpi/battery.c | 22 +
drivers/acpi/bus.c | 4 +-
drivers/acpi/cppc_acpi.c | 2 +-
drivers/acpi/ec.c | 57 +-
drivers/acpi/internal.h | 2 +
drivers/acpi/scan.c | 13 +-
drivers/acpi/x86/utils.c | 116 ++-
drivers/android/binder.c | 98 ++-
drivers/base/core.c | 3 +-
drivers/base/devtmpfs.c | 7 +
drivers/base/power/runtime.c | 41 +-
drivers/base/property.c | 4 +-
drivers/base/regmap/regmap.c | 1 +
drivers/base/swnode.c | 2 +-
drivers/block/floppy.c | 6 +-
drivers/bluetooth/bfusb.c | 3 +
drivers/bluetooth/btbcm.c | 51 ++
drivers/bluetooth/btintel.c | 46 +-
drivers/bluetooth/btintel.h | 2 +-
drivers/bluetooth/btmtksdio.c | 2 +
drivers/bluetooth/btusb.c | 66 +-
drivers/bluetooth/hci_bcm.c | 7 +-
drivers/bluetooth/hci_qca.c | 9 +-
drivers/bluetooth/hci_vhci.c | 2 +
drivers/bluetooth/virtio_bt.c | 3 +
drivers/bus/mhi/core/init.c | 1 +
drivers/bus/mhi/core/pm.c | 35 +-
drivers/bus/mhi/pci_generic.c | 2 +-
drivers/char/mwave/3780i.h | 2 +-
drivers/char/random.c | 136 +--
drivers/char/tpm/tpm-chip.c | 18 +-
drivers/char/tpm/tpm_tis_core.c | 14 +-
drivers/clk/bcm/clk-bcm2835.c | 13 +-
drivers/clk/clk-bm1880.c | 20 +-
drivers/clk/clk-si5341.c | 2 +-
drivers/clk/clk-stm32f4.c | 4 -
drivers/clk/clk.c | 18 +
drivers/clk/imx/clk-imx8mn.c | 6 +-
drivers/clk/meson/gxbb.c | 44 +-
drivers/clk/qcom/gcc-sc7280.c | 2 +-
drivers/clk/renesas/rzg2l-cpg.c | 17 +-
drivers/cpufreq/cpufreq.c | 4 +-
drivers/cpufreq/qcom-cpufreq-hw.c | 7 +-
drivers/crypto/atmel-aes.c | 6 +-
drivers/crypto/caam/caamalg.c | 6 +
drivers/crypto/caam/caamalg_qi2.c | 2 +-
drivers/crypto/caam/caamhash.c | 3 +
drivers/crypto/caam/caampkc.c | 3 +
drivers/crypto/ccp/sev-dev.c | 30 +-
drivers/crypto/hisilicon/hpre/hpre_crypto.c | 2 +-
drivers/crypto/hisilicon/qm.c | 2 +-
drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c | 9 +-
.../crypto/marvell/octeontx2/otx2_cptpf_ucode.c | 3 +-
drivers/crypto/omap-aes.c | 2 +-
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 45 +-
drivers/crypto/qce/aead.c | 2 +-
drivers/crypto/qce/sha.c | 2 +-
drivers/crypto/qce/skcipher.c | 2 +-
drivers/crypto/stm32/stm32-crc32.c | 4 +-
drivers/crypto/stm32/stm32-cryp.c | 938 ++++++++-------------
drivers/crypto/stm32/stm32-hash.c | 6 +-
drivers/cxl/pmem.c | 17 +-
drivers/dma-buf/dma-fence-array.c | 6 +-
drivers/dma/at_xdmac.c | 57 +-
drivers/dma/idxd/device.c | 12 +-
drivers/dma/mmp_pdma.c | 6 -
drivers/dma/pxa_dma.c | 7 -
drivers/dma/stm32-mdma.c | 2 +-
drivers/dma/uniphier-xdmac.c | 5 +-
drivers/edac/synopsys_edac.c | 3 +-
drivers/firmware/efi/efi-init.c | 5 +
drivers/firmware/google/Kconfig | 6 +-
drivers/firmware/qemu_fw_cfg.c | 20 +-
drivers/firmware/sysfb_simplefb.c | 8 +-
drivers/gpio/gpio-aspeed-sgpio.c | 32 +-
drivers/gpio/gpio-aspeed.c | 52 +-
drivers/gpio/gpio-idt3243x.c | 4 +-
drivers/gpio/gpio-mpc8xxx.c | 4 +-
drivers/gpio/gpiolib-acpi.c | 15 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 4 +
drivers/gpu/drm/amd/amdgpu/cik.c | 4 +
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 13 +-
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 18 +-
drivers/gpu/drm/amd/amdgpu/vi.c | 4 +
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 138 ++-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 +
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 5 +-
drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 3 +-
.../drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c | 6 +
drivers/gpu/drm/amd/display/dc/core/dc.c | 3 +-
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 2 +
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 3 +-
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 6 +
drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 14 +-
drivers/gpu/drm/bridge/display-connector.c | 2 +-
.../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 40 +-
.../gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 10 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 4 +-
.../gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 9 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 12 +-
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 +
drivers/gpu/drm/drm_dp_helper.c | 40 +-
drivers/gpu/drm/drm_drv.c | 9 +-
drivers/gpu/drm/drm_panel_orientation_quirks.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 1 +
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 10 +-
drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 1 +
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 10 +
drivers/gpu/drm/i915/gt/intel_gt.c | 102 +++
drivers/gpu/drm/i915/gt/intel_gt.h | 2 +
drivers/gpu/drm/i915/gt/intel_gt_types.h | 2 +
drivers/gpu/drm/i915/i915_reg.h | 11 +
drivers/gpu/drm/i915/i915_vma.c | 3 +
drivers/gpu/drm/i915/intel_pm.c | 6 +-
drivers/gpu/drm/i915/intel_uncore.c | 26 +-
drivers/gpu/drm/i915/intel_uncore.h | 2 +
drivers/gpu/drm/lima/lima_device.c | 1 +
drivers/gpu/drm/msm/Kconfig | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4 +-
drivers/gpu/drm/msm/dsi/dsi.c | 10 +-
drivers/gpu/drm/msm/dsi/dsi.h | 1 -
drivers/gpu/drm/msm/dsi/dsi_manager.c | 17 -
drivers/gpu/drm/msm/msm_gem_submit.c | 2 +-
drivers/gpu/drm/nouveau/dispnv04/disp.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 37 +-
.../gpu/drm/panel/panel-feiyang-fy07024di26a30d.c | 8 +-
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 10 +-
drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 8 +-
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 8 +-
drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 8 +-
.../gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 8 +-
drivers/gpu/drm/panel/panel-ronbo-rb070d30.c | 8 +-
.../drm/panel/panel-samsung-s6e88a0-ams452ef01.c | 1 +
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 1 +
drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 8 +-
drivers/gpu/drm/radeon/radeon_kms.c | 42 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 20 +-
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 82 +-
drivers/gpu/drm/tegra/drm.c | 15 +
drivers/gpu/drm/tegra/gr2d.c | 33 +-
drivers/gpu/drm/tegra/submit.c | 4 +-
drivers/gpu/drm/tegra/vic.c | 7 +-
drivers/gpu/drm/ttm/ttm_bo.c | 2 +
drivers/gpu/drm/vboxvideo/vbox_main.c | 4 +-
drivers/gpu/drm/vc4/vc4_crtc.c | 31 +-
drivers/gpu/drm/vc4/vc4_drv.h | 29 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 136 ++-
drivers/gpu/drm/vc4/vc4_hvs.c | 26 +-
drivers/gpu/drm/vc4/vc4_kms.c | 3 +-
drivers/gpu/drm/vc4/vc4_txp.c | 4 +-
drivers/gpu/drm/vmwgfx/Makefile | 3 +-
drivers/gpu/drm/vmwgfx/ttm_memory.c | 99 +--
drivers/gpu/drm/vmwgfx/ttm_memory.h | 6 +-
drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c | 7 +
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 48 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 25 +-
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 33 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 12 +-
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 4 +-
drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c | 90 ++
drivers/gpu/drm/vmwgfx/vmwgfx_thp.c | 184 ----
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 58 +-
drivers/gpu/host1x/Kconfig | 1 +
drivers/gpu/host1x/dev.c | 15 +
drivers/hid/hid-apple.c | 2 +-
drivers/hid/hid-ids.h | 1 +
drivers/hid/hid-input.c | 8 +
drivers/hid/hid-magicmouse.c | 95 ++-
drivers/hid/hid-uclogic-params.c | 31 +-
drivers/hid/hid-vivaldi.c | 34 +-
drivers/hid/i2c-hid/i2c-hid-acpi.c | 2 +-
drivers/hid/i2c-hid/i2c-hid-core.c | 4 +-
drivers/hid/i2c-hid/i2c-hid-of-goodix.c | 2 +-
drivers/hid/i2c-hid/i2c-hid-of.c | 10 +-
drivers/hid/i2c-hid/i2c-hid.h | 2 +-
drivers/hid/uhid.c | 29 +-
drivers/hid/wacom_wac.c | 39 +-
drivers/hsi/hsi_core.c | 1 +
drivers/hwmon/mr75203.c | 2 +-
drivers/i2c/busses/i2c-designware-pcidrv.c | 8 +-
drivers/i2c/busses/i2c-i801.c | 15 +-
drivers/i2c/busses/i2c-mpc.c | 23 +-
drivers/iio/adc/ti-adc081c.c | 22 +-
drivers/iio/industrialio-trigger.c | 36 +-
drivers/infiniband/core/cma.c | 18 +-
drivers/infiniband/core/device.c | 3 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1 -
drivers/infiniband/hw/cxgb4/qp.c | 1 +
drivers/infiniband/hw/hns/hns_roce_main.c | 5 +-
drivers/infiniband/hw/qedr/verbs.c | 2 +
drivers/infiniband/sw/rxe/rxe_opcode.c | 2 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 2 +-
drivers/interconnect/qcom/icc-rpm.c | 1 +
drivers/iommu/amd/amd_iommu_types.h | 2 -
drivers/iommu/amd/init.c | 107 +--
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 2 +-
drivers/iommu/io-pgtable-arm-v7s.c | 6 +-
drivers/iommu/io-pgtable-arm.c | 9 +-
drivers/iommu/iommu.c | 3 +-
drivers/iommu/iova.c | 3 +-
drivers/irqchip/irq-gic-v3.c | 16 +
drivers/leds/leds-lp55xx-common.c | 4 +-
drivers/mailbox/mailbox-mpfs.c | 2 +-
drivers/mailbox/mtk-cmdq-mailbox.c | 2 +-
drivers/md/dm.c | 4 +-
drivers/md/md.c | 27 +-
drivers/md/md.h | 2 +
drivers/md/persistent-data/dm-btree.c | 8 +-
drivers/md/persistent-data/dm-space-map-common.c | 5 +
drivers/md/raid0.c | 38 +-
drivers/md/raid5.c | 41 +-
drivers/media/Kconfig | 8 +-
drivers/media/cec/core/cec-adap.c | 38 +-
drivers/media/cec/core/cec-api.c | 6 +
drivers/media/cec/core/cec-core.c | 3 +
drivers/media/cec/core/cec-pin.c | 31 +-
drivers/media/common/saa7146/saa7146_fops.c | 2 +-
.../media/common/videobuf2/videobuf2-dma-contig.c | 8 +-
drivers/media/dvb-core/dmxdev.c | 18 +-
drivers/media/dvb-frontends/dib8000.c | 4 +-
drivers/media/i2c/imx274.c | 5 +
drivers/media/i2c/ov8865.c | 16 +-
drivers/media/pci/b2c2/flexcop-pci.c | 3 +
drivers/media/pci/saa7146/hexium_gemini.c | 7 +-
drivers/media/pci/saa7146/hexium_orion.c | 8 +-
drivers/media/pci/saa7146/mxb.c | 8 +-
drivers/media/platform/aspeed-video.c | 14 +-
drivers/media/platform/coda/coda-common.c | 8 +-
drivers/media/platform/coda/coda-jpeg.c | 21 +-
drivers/media/platform/coda/imx-vdoa.c | 6 +-
drivers/media/platform/imx-pxp.c | 4 +-
.../media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 2 +-
drivers/media/platform/qcom/venus/core.c | 11 +-
drivers/media/platform/qcom/venus/pm_helpers.c | 32 +-
drivers/media/platform/rcar-vin/rcar-csi2.c | 18 +-
drivers/media/platform/rcar-vin/rcar-v4l2.c | 15 +-
.../media/platform/rockchip/rkisp1/rkisp1-dev.c | 2 +-
drivers/media/radio/si470x/radio-si470x-i2c.c | 3 +-
drivers/media/rc/igorplugusb.c | 4 +-
drivers/media/rc/mceusb.c | 8 +-
drivers/media/rc/redrat3.c | 22 +-
drivers/media/tuners/msi001.c | 7 +
drivers/media/tuners/si2157.c | 2 +-
drivers/media/usb/b2c2/flexcop-usb.c | 10 +-
drivers/media/usb/b2c2/flexcop-usb.h | 12 +-
drivers/media/usb/cpia2/cpia2_usb.c | 4 +-
drivers/media/usb/dvb-usb/dib0700_core.c | 2 -
drivers/media/usb/dvb-usb/dw2102.c | 338 +++++---
drivers/media/usb/dvb-usb/m920x.c | 12 +-
drivers/media/usb/em28xx/em28xx-cards.c | 18 +-
drivers/media/usb/em28xx/em28xx-core.c | 4 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 8 +-
drivers/media/usb/s2255/s2255drv.c | 4 +-
drivers/media/usb/stk1160/stk1160-core.c | 4 +-
drivers/media/usb/uvc/uvc_driver.c | 7 +-
drivers/media/usb/uvc/uvc_video.c | 4 +
drivers/media/usb/uvc/uvcvideo.h | 2 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 4 +-
drivers/memory/renesas-rpc-if.c | 2 +-
drivers/mfd/atmel-flexcom.c | 11 +-
drivers/mfd/intel-lpss-acpi.c | 7 +-
drivers/mfd/tps65910.c | 22 +-
drivers/misc/eeprom/at25.c | 13 +-
drivers/misc/habanalabs/common/firmware_if.c | 17 +-
drivers/misc/habanalabs/common/habanalabs.h | 2 +
drivers/misc/lattice-ecp3-config.c | 12 +-
drivers/misc/lkdtm/Makefile | 2 +-
drivers/misc/mei/hbm.c | 20 +-
drivers/mmc/core/sdio.c | 4 +-
drivers/mmc/host/meson-mx-sdhc-mmc.c | 5 +
drivers/mmc/host/meson-mx-sdio.c | 5 +
drivers/mmc/host/mtk-sd.c | 64 +-
drivers/mmc/host/sdhci-pci-core.c | 1 +
drivers/mmc/host/sdhci-pci-gli.c | 11 +
drivers/mmc/host/sdhci-pci.h | 1 +
drivers/mmc/host/tmio_mmc_core.c | 15 +-
drivers/mtd/chips/Kconfig | 2 +
drivers/mtd/hyperbus/rpc-if.c | 8 +-
drivers/mtd/maps/Kconfig | 2 +-
drivers/mtd/mtdcore.c | 4 +-
drivers/mtd/mtdpart.c | 2 +-
drivers/mtd/nand/raw/davinci_nand.c | 73 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 37 +-
drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c | 5 +
drivers/mtd/nand/raw/nand_base.c | 67 ++
drivers/net/bonding/bond_main.c | 40 +-
drivers/net/can/flexcan.c | 150 ++--
drivers/net/can/rcar/rcar_canfd.c | 5 +-
drivers/net/can/softing/softing_cs.c | 2 +-
drivers/net/can/softing/softing_fw.c | 11 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 6 +-
drivers/net/can/usb/gs_usb.c | 5 +-
drivers/net/can/xilinx_can.c | 7 +-
drivers/net/dsa/hirschmann/hellcreek.c | 87 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 11 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 6 +-
.../net/ethernet/broadcom/bnx2x/bnx2x_fw_defs.h | 2 +
drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 3 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 75 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 13 +-
drivers/net/ethernet/broadcom/bnxt/Makefile | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 +
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c | 372 ++++++++
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h | 51 ++
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 355 +-------
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h | 43 -
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h | 3 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 10 +-
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c | 3 +-
drivers/net/ethernet/cortina/gemini.c | 9 +-
drivers/net/ethernet/freescale/fman/mac.c | 21 +-
drivers/net/ethernet/freescale/xgmac_mdio.c | 28 +-
drivers/net/ethernet/i825xx/sni_82596.c | 3 +-
drivers/net/ethernet/intel/igc/igc_main.c | 4 +-
drivers/net/ethernet/marvell/octeontx2/af/ptp.c | 2 +
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 55 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 16 +-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 36 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 5 +-
.../ethernet/mellanox/mlx5/core/en/tc_tun_encap.c | 2 +
.../net/ethernet/mellanox/mlx5/core/en/xsk/pool.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 19 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 3 +
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 120 ++-
.../net/ethernet/mellanox/mlx5/core/esw/legacy.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 8 +-
.../net/ethernet/mellanox/mlx5/core/sf/dev/dev.c | 5 +-
drivers/net/ethernet/mellanox/mlxsw/cmd.h | 12 +
drivers/net/ethernet/mellanox/mlxsw/pci.c | 7 +-
drivers/net/ethernet/mscc/ocelot.c | 31 +-
drivers/net/ethernet/mscc/ocelot_flower.c | 15 +-
drivers/net/ethernet/mscc/ocelot_net.c | 6 +-
drivers/net/ethernet/renesas/ravb_main.c | 6 +-
drivers/net/ethernet/rocker/rocker_ofdpa.c | 3 +-
.../ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 7 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 +
drivers/net/ethernet/ti/cpsw.c | 6 +-
drivers/net/ethernet/ti/cpsw_new.c | 6 +-
drivers/net/ethernet/ti/cpsw_priv.c | 2 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 135 +--
drivers/net/ipa/ipa_endpoint.c | 7 +-
drivers/net/phy/marvell.c | 62 +-
drivers/net/phy/mdio_bus.c | 2 +-
drivers/net/phy/micrel.c | 36 +-
drivers/net/phy/phy-core.c | 2 +-
drivers/net/phy/sfp.c | 25 +-
drivers/net/ppp/ppp_generic.c | 7 +-
drivers/net/usb/mcs7830.c | 12 +-
drivers/net/usb/smsc95xx.c | 3 +-
drivers/net/veth.c | 1 -
drivers/net/wireless/ath/ar5523/ar5523.c | 4 +
drivers/net/wireless/ath/ath10k/core.c | 19 +-
drivers/net/wireless/ath/ath10k/htt_tx.c | 3 +
drivers/net/wireless/ath/ath10k/hw.h | 3 +
drivers/net/wireless/ath/ath10k/txrx.c | 2 -
drivers/net/wireless/ath/ath11k/ahb.c | 28 +-
drivers/net/wireless/ath/ath11k/core.c | 27 +-
drivers/net/wireless/ath/ath11k/core.h | 15 +-
drivers/net/wireless/ath/ath11k/dp.h | 3 +-
drivers/net/wireless/ath/ath11k/dp_tx.c | 2 +-
drivers/net/wireless/ath/ath11k/hal.c | 22 +
drivers/net/wireless/ath/ath11k/hal.h | 2 +
drivers/net/wireless/ath/ath11k/hw.c | 2 -
drivers/net/wireless/ath/ath11k/mac.c | 52 +-
drivers/net/wireless/ath/ath11k/pci.c | 22 +-
drivers/net/wireless/ath/ath11k/qmi.c | 2 +-
drivers/net/wireless/ath/ath11k/reg.c | 103 +--
drivers/net/wireless/ath/ath11k/wmi.c | 11 +-
drivers/net/wireless/ath/ath9k/hif_usb.c | 7 +
drivers/net/wireless/ath/ath9k/htc.h | 2 +
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 13 +
drivers/net/wireless/ath/ath9k/wmi.c | 4 +
drivers/net/wireless/ath/wcn36xx/dxe.c | 49 +-
drivers/net/wireless/ath/wcn36xx/main.c | 34 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 10 +-
drivers/net/wireless/ath/wcn36xx/txrx.c | 41 +-
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 +
drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 5 +-
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 17 +-
drivers/net/wireless/intel/iwlwifi/iwl-io.c | 2 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 17 +
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 27 +
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 23 +-
.../net/wireless/intel/iwlwifi/mvm/time-event.c | 36 +-
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 7 +-
drivers/net/wireless/intel/iwlwifi/queue/tx.c | 1 +
drivers/net/wireless/marvell/mwifiex/sta_event.c | 8 +-
drivers/net/wireless/marvell/mwifiex/usb.c | 3 +-
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 4 +
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 8 +-
.../net/wireless/mediatek/mt76/mt7615/pci_init.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 6 -
drivers/net/wireless/microchip/wilc1000/netdev.c | 1 -
drivers/net/wireless/microchip/wilc1000/sdio.c | 2 +
drivers/net/wireless/microchip/wilc1000/spi.c | 2 +
.../net/wireless/realtek/rtlwifi/rtl8192cu/hw.c | 1 +
drivers/net/wireless/realtek/rtw88/main.c | 2 +-
drivers/net/wireless/realtek/rtw88/pci.c | 61 +-
drivers/net/wireless/realtek/rtw88/pci.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
drivers/net/wireless/rsi/rsi_91x_main.c | 4 +
drivers/net/wireless/rsi/rsi_91x_usb.c | 9 +-
drivers/net/wireless/rsi/rsi_usb.h | 2 +
drivers/net/wwan/mhi_wwan_mbim.c | 4 +-
drivers/nvmem/core.c | 2 +
drivers/of/base.c | 11 +-
drivers/of/fdt.c | 25 +-
drivers/of/unittest.c | 21 +-
drivers/parisc/pdc_stable.c | 4 +-
drivers/pci/controller/pci-aardvark.c | 4 +-
drivers/pci/controller/pci-mvebu.c | 8 +
drivers/pci/controller/pci-xgene.c | 2 +-
drivers/pci/hotplug/pciehp.h | 3 +
drivers/pci/hotplug/pciehp_core.c | 2 +-
drivers/pci/hotplug/pciehp_hpc.c | 21 +-
drivers/pci/msi.c | 26 +-
drivers/pci/pci-bridge-emul.c | 70 +-
drivers/pci/quirks.c | 3 +
drivers/pcmcia/cs.c | 8 +-
drivers/pcmcia/rsrc_nonstatic.c | 6 +
drivers/perf/arm-cmn.c | 5 +-
drivers/phy/cadence/phy-cadence-sierra.c | 31 +-
drivers/phy/mediatek/phy-mtk-mipi-dsi.c | 2 +
drivers/phy/mediatek/phy-mtk-tphy.c | 162 ++++
drivers/phy/socionext/phy-uniphier-usb3ss.c | 10 +-
drivers/pinctrl/pinctrl-rockchip.c | 2 +-
drivers/platform/x86/intel/hid.c | 7 +
drivers/power/reset/mt6323-poweroff.c | 3 +
drivers/ptp/ptp_vclock.c | 10 +-
drivers/regulator/da9121-regulator.c | 5 +
drivers/regulator/qcom-labibb-regulator.c | 2 +-
drivers/regulator/qcom_smd-regulator.c | 100 ++-
drivers/remoteproc/imx_rproc.c | 1 +
drivers/remoteproc/qcom_pil_info.c | 2 +-
drivers/remoteproc/qcom_q6v5_pas.c | 1 +
drivers/rpmsg/rpmsg_core.c | 20 +-
drivers/rtc/rtc-cmos.c | 3 +
drivers/rtc/rtc-pxa.c | 4 +
drivers/scsi/lpfc/lpfc.h | 2 +-
drivers/scsi/lpfc/lpfc_attr.c | 62 +-
drivers/scsi/lpfc/lpfc_els.c | 11 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 8 +-
drivers/scsi/lpfc/lpfc_init.c | 8 +-
drivers/scsi/lpfc/lpfc_nportdisc.c | 6 +
drivers/scsi/lpfc/lpfc_sli.c | 6 -
drivers/scsi/mpi3mr/mpi3mr.h | 3 +-
drivers/scsi/mpi3mr/mpi3mr_fw.c | 4 +-
drivers/scsi/pm8001/pm8001_hwi.c | 4 +-
drivers/scsi/scsi.c | 4 +-
drivers/scsi/scsi_debugfs.c | 1 +
drivers/scsi/scsi_pm.c | 2 +-
drivers/scsi/sr.c | 2 +-
drivers/scsi/sr_vendor.c | 4 +-
drivers/scsi/ufs/tc-dwc-g210-pci.c | 1 -
drivers/scsi/ufs/ufs-mediatek.c | 2 +-
drivers/scsi/ufs/ufshcd-pci.c | 2 -
drivers/scsi/ufs/ufshcd-pltfrm.c | 2 -
drivers/scsi/ufs/ufshcd.c | 22 +-
drivers/soc/imx/gpcv2.c | 2 +-
drivers/soc/mediatek/mtk-scpsys.c | 15 +-
drivers/soc/qcom/cpr.c | 2 +-
drivers/soc/ti/pruss.c | 2 +-
drivers/spi/spi-hisi-kunpeng.c | 15 +-
drivers/spi/spi-meson-spifc.c | 1 +
drivers/spi/spi-uniphier.c | 11 +-
drivers/spi/spi.c | 13 +-
drivers/staging/greybus/audio_topology.c | 107 +--
drivers/staging/media/atomisp/i2c/ov2680.h | 24 -
drivers/staging/media/atomisp/pci/atomisp_cmd.c | 82 +-
drivers/staging/media/atomisp/pci/atomisp_fops.c | 11 +
.../media/atomisp/pci/atomisp_gmin_platform.c | 2 +-
drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 188 ++++-
drivers/staging/media/atomisp/pci/atomisp_subdev.c | 15 +-
drivers/staging/media/atomisp/pci/atomisp_subdev.h | 3 +
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 13 +-
drivers/staging/media/atomisp/pci/atomisp_v4l2.h | 3 +-
drivers/staging/media/atomisp/pci/sh_css.c | 27 +-
drivers/staging/media/atomisp/pci/sh_css_mipi.c | 41 +-
drivers/staging/media/atomisp/pci/sh_css_params.c | 8 +-
drivers/staging/media/hantro/hantro_drv.c | 3 +-
drivers/staging/media/hantro/hantro_h1_jpeg_enc.c | 2 +-
drivers/staging/media/hantro/hantro_hw.h | 3 +-
.../media/hantro/rockchip_vpu2_hw_jpeg_enc.c | 17 +
drivers/staging/media/hantro/rockchip_vpu_hw.c | 5 +-
drivers/staging/r8188eu/core/rtw_led.c | 1 +
drivers/staging/rtl8192e/rtllib.h | 2 +-
drivers/staging/rtl8192e/rtllib_module.c | 16 +-
drivers/staging/rtl8192e/rtllib_softmac.c | 6 +-
drivers/staging/wlan-ng/hfa384x_usb.c | 22 +-
drivers/tee/tee_core.c | 4 +-
drivers/thermal/imx8mm_thermal.c | 3 +
drivers/thermal/imx_thermal.c | 145 ++--
drivers/thunderbolt/acpi.c | 13 +
drivers/tty/mxser.c | 5 +-
drivers/tty/serial/8250/8250_bcm7271.c | 11 +-
drivers/tty/serial/amba-pl010.c | 3 -
drivers/tty/serial/amba-pl011.c | 29 +-
drivers/tty/serial/atmel_serial.c | 14 +
drivers/tty/serial/imx.c | 7 +-
drivers/tty/serial/liteuart.c | 2 +-
drivers/tty/serial/serial_core.c | 7 +-
drivers/tty/serial/stm32-usart.c | 6 +-
drivers/tty/serial/uartlite.c | 2 +-
drivers/usb/core/hcd.c | 9 +-
drivers/usb/core/hub.c | 7 +-
drivers/usb/dwc2/gadget.c | 13 +-
drivers/usb/dwc2/hcd.c | 7 +-
drivers/usb/dwc3/dwc3-meson-g12a.c | 17 +-
drivers/usb/dwc3/dwc3-qcom.c | 7 +-
drivers/usb/gadget/function/f_fs.c | 4 +-
drivers/usb/gadget/function/u_audio.c | 4 +-
drivers/usb/host/ehci-brcm.c | 6 +-
drivers/usb/host/uhci-platform.c | 3 +-
drivers/usb/misc/ftdi-elan.c | 1 +
drivers/vdpa/ifcvf/ifcvf_base.c | 41 +-
drivers/vdpa/ifcvf/ifcvf_base.h | 9 +-
drivers/vdpa/ifcvf/ifcvf_main.c | 24 +-
drivers/vdpa/mlx5/net/mlx5_vnet.c | 6 +-
drivers/video/backlight/qcom-wled.c | 122 +--
drivers/video/fbdev/vga16fb.c | 24 +
drivers/virtio/virtio_mem.c | 2 +-
drivers/virtio/virtio_ring.c | 4 +-
drivers/w1/slaves/w1_ds28e04.c | 26 +-
drivers/xen/gntdev.c | 6 +-
fs/9p/vfs_inode_dotl.c | 29 +-
fs/btrfs/backref.c | 21 +-
fs/btrfs/ctree.c | 19 +-
fs/btrfs/inode.c | 11 +
fs/btrfs/qgroup.c | 19 +
fs/debugfs/file.c | 2 +-
fs/dlm/lock.c | 9 +
fs/dlm/lowcomms.c | 44 +-
fs/ext4/ext4.h | 1 +
fs/ext4/ext4_jbd2.c | 2 +
fs/ext4/extents.c | 2 -
fs/ext4/fast_commit.c | 18 +-
fs/ext4/inode.c | 51 +-
fs/ext4/ioctl.c | 2 -
fs/ext4/mballoc.c | 48 +-
fs/ext4/migrate.c | 23 +-
fs/ext4/super.c | 27 +-
fs/f2fs/checkpoint.c | 4 +-
fs/f2fs/compress.c | 50 +-
fs/f2fs/data.c | 7 +-
fs/f2fs/f2fs.h | 11 +
fs/f2fs/file.c | 10 +-
fs/f2fs/gc.c | 8 +-
fs/f2fs/inode.c | 5 +
fs/f2fs/segment.h | 3 +-
fs/f2fs/super.c | 44 +
fs/f2fs/sysfs.c | 4 +-
fs/file.c | 72 +-
fs/fs_context.c | 2 +-
fs/fuse/file.c | 2 +-
fs/io_uring.c | 35 +-
fs/jffs2/file.c | 40 +-
fs/ksmbd/connection.c | 1 +
fs/ksmbd/connection.h | 4 +-
fs/ksmbd/ksmbd_netlink.h | 12 +-
fs/ksmbd/smb2misc.c | 18 +-
fs/ksmbd/smb2ops.c | 16 +-
fs/ksmbd/smb2pdu.c | 87 +-
fs/ksmbd/smb2pdu.h | 1 +
fs/ksmbd/smb_common.h | 1 +
fs/ksmbd/transport_ipc.c | 2 +
fs/ksmbd/transport_tcp.c | 3 +-
fs/orangefs/orangefs-bufmap.c | 7 +-
fs/select.c | 63 +-
fs/super.c | 4 +-
fs/ubifs/super.c | 1 -
fs/udf/ialloc.c | 2 +
include/acpi/acpi_bus.h | 5 +-
include/acpi/actypes.h | 10 +-
include/asm-generic/bitops/find.h | 5 +
include/linux/blk-pm.h | 2 +-
include/linux/bpf_verifier.h | 7 +
include/linux/fs_context.h | 2 +
include/linux/hid.h | 2 +
include/linux/iio/trigger.h | 2 +
include/linux/ipv6.h | 2 +
include/linux/mmzone.h | 9 +
include/linux/mtd/rawnand.h | 2 +
include/linux/of_fdt.h | 2 +
include/linux/perf_event.h | 13 +-
include/linux/pm_runtime.h | 3 +
include/linux/psi_types.h | 13 +-
include/linux/ptp_clock_kernel.h | 12 +-
include/linux/skbuff.h | 7 +-
include/linux/stmmac.h | 1 +
include/media/cec.h | 11 +-
include/net/bluetooth/hci.h | 9 +
include/net/inet_frag.h | 11 +-
include/net/ipv6_frag.h | 3 +-
include/net/pkt_sched.h | 5 +-
include/net/sch_generic.h | 5 +
include/net/seg6.h | 21 +
include/net/xfrm.h | 7 +-
include/sound/hda_codec.h | 8 +-
include/trace/events/cgroup.h | 12 +-
include/uapi/linux/xfrm.h | 1 +
kernel/audit.c | 18 +-
kernel/bpf/btf.c | 3 +-
kernel/bpf/inode.c | 14 +-
kernel/bpf/verifier.c | 34 +-
kernel/dma/pool.c | 4 +-
kernel/events/core.c | 13 +-
kernel/rcu/rcutorture.c | 5 +
kernel/rcu/tree.c | 7 +-
kernel/rcu/tree_exp.h | 1 +
kernel/sched/cpuacct.c | 79 +-
kernel/sched/cputime.c | 4 +-
kernel/sched/fair.c | 4 +-
kernel/sched/psi.c | 40 +-
kernel/sched/rt.c | 23 +-
kernel/sched/stats.h | 5 +-
kernel/time/clocksource.c | 50 +-
kernel/trace/bpf_trace.c | 6 +-
kernel/trace/trace_kprobe.c | 5 +-
kernel/trace/trace_osnoise.c | 20 +-
kernel/trace/trace_syscalls.c | 6 +-
kernel/tsacct.c | 7 +-
kernel/workqueue.c | 9 +
lib/kunit/test.c | 18 +-
lib/logic_iomem.c | 19 +-
lib/mpi/mpi-mod.c | 2 +
lib/test_hmm.c | 24 +
lib/test_meminit.c | 1 +
localversion-rt | 2 +-
mm/hmm.c | 5 +-
mm/memcontrol.c | 99 ++-
mm/page_alloc.c | 19 +-
mm/shmem.c | 37 +-
net/ax25/af_ax25.c | 10 +-
net/batman-adv/netlink.c | 30 +-
net/bluetooth/cmtp/core.c | 4 +-
net/bluetooth/hci_core.c | 4 +-
net/bluetooth/hci_event.c | 14 +-
net/bluetooth/hci_request.c | 2 +-
net/bluetooth/hci_sysfs.c | 2 +
net/bluetooth/l2cap_sock.c | 45 +-
net/bluetooth/mgmt.c | 248 +++---
net/bridge/br_netfilter_hooks.c | 7 +-
net/can/isotp.c | 4 +-
net/core/dev.c | 6 +
net/core/devlink.c | 2 -
net/core/filter.c | 8 +-
net/core/flow_dissector.c | 3 +-
net/core/net-sysfs.c | 3 +
net/core/net_namespace.c | 4 +-
net/core/sock.c | 2 +
net/core/sock_map.c | 21 +-
net/dsa/switch.c | 4 +-
net/ipv4/fib_semantics.c | 47 +-
net/ipv4/inet_fragment.c | 8 +-
net/ipv4/ip_fragment.c | 3 +-
net/ipv4/ip_gre.c | 5 +-
net/ipv4/netfilter/ipt_CLUSTERIP.c | 5 +-
net/ipv4/tcp_bpf.c | 27 +
net/ipv6/icmp.c | 6 +-
net/ipv6/ip6_gre.c | 5 +-
net/ipv6/seg6.c | 59 ++
net/ipv6/seg6_local.c | 33 +-
net/ipv6/udp.c | 3 +-
net/mac80211/rx.c | 2 +-
net/mptcp/options.c | 10 +-
net/mptcp/pm_netlink.c | 18 +-
net/netfilter/nft_payload.c | 3 +
net/netfilter/nft_set_pipapo.c | 8 +
net/netrom/af_netrom.c | 12 +-
net/nfc/llcp_sock.c | 5 +
net/openvswitch/flow.c | 20 +-
net/sched/act_ct.c | 7 +
net/sched/cls_api.c | 3 +
net/sched/cls_flower.c | 3 +-
net/sched/sch_api.c | 2 +-
net/sched/sch_generic.c | 1 +
net/smc/af_smc.c | 8 +-
net/smc/smc_core.c | 29 +-
net/smc/smc_core.h | 2 +-
net/socket.c | 9 +-
net/unix/garbage.c | 14 +-
net/unix/scm.c | 6 +-
net/xfrm/xfrm_compat.c | 6 +-
net/xfrm/xfrm_interface.c | 14 +-
net/xfrm/xfrm_output.c | 30 +-
net/xfrm/xfrm_policy.c | 24 +-
net/xfrm/xfrm_state.c | 23 +-
net/xfrm/xfrm_user.c | 41 +-
samples/bpf/Makefile | 56 +-
samples/bpf/Makefile.target | 11 -
samples/bpf/hbm_kern.h | 2 -
samples/bpf/lwt_len_hist_kern.c | 7 -
samples/bpf/xdp_sample_user.h | 2 +
scripts/dtc/dtx_diff | 8 +-
scripts/sphinx-pre-install | 4 +
security/selinux/hooks.c | 12 +-
sound/core/jack.c | 3 +
sound/core/misc.c | 2 +-
sound/core/oss/pcm_oss.c | 2 +-
sound/core/pcm.c | 6 +-
sound/core/seq/seq_queue.c | 14 +-
sound/hda/hdac_stream.c | 14 +-
sound/pci/hda/hda_bind.c | 5 +
sound/pci/hda/hda_codec.c | 45 +-
sound/pci/hda/hda_controller.c | 1 -
sound/pci/hda/hda_local.h | 1 +
sound/pci/hda/hda_tegra.c | 43 +-
sound/pci/hda/patch_cs8409-tables.c | 3 +
sound/pci/hda/patch_cs8409.c | 9 +-
sound/pci/hda/patch_cs8409.h | 1 +
sound/pci/hda/patch_realtek.c | 52 +-
sound/soc/codecs/Kconfig | 3 +-
sound/soc/codecs/rt5663.c | 12 +-
sound/soc/fsl/fsl_asrc.c | 69 +-
sound/soc/fsl/fsl_mqs.c | 2 +-
sound/soc/fsl/imx-card.c | 32 +-
sound/soc/fsl/imx-hdmi.c | 2 +
sound/soc/intel/boards/sof_sdw.c | 2 +-
sound/soc/intel/catpt/dsp.c | 14 +-
sound/soc/intel/skylake/skl-pcm.c | 1 -
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 +
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 +
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 +
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 6 +-
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 7 +-
.../mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 6 +-
sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 2 +-
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 73 +-
sound/soc/mediatek/mt8195/mt8195-reg.h | 1 +
sound/soc/samsung/idma.c | 2 +
sound/soc/uniphier/Kconfig | 2 -
sound/usb/format.c | 2 +-
sound/usb/mixer_quirks.c | 2 +-
sound/usb/quirks.c | 2 +-
tools/bpf/bpftool/Documentation/Makefile | 1 -
tools/bpf/bpftool/Documentation/bpftool-btf.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-gen.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-link.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-map.rst | 6 +-
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 8 +-
tools/bpf/bpftool/Documentation/bpftool.rst | 6 +-
tools/bpf/bpftool/Makefile | 1 -
tools/bpf/bpftool/main.c | 2 +
tools/bpf/bpftool/prog.c | 15 +-
tools/include/nolibc/nolibc.h | 33 +-
tools/lib/bpf/btf.c | 55 +-
tools/lib/bpf/btf.h | 2 +-
tools/lib/bpf/btf_dump.c | 2 +-
tools/lib/bpf/gen_loader.c | 4 +-
tools/lib/bpf/libbpf.c | 5 +-
tools/lib/bpf/linker.c | 6 +-
tools/perf/Makefile.config | 5 +-
tools/perf/ui/browsers/annotate.c | 23 +-
tools/perf/util/debug.c | 2 +-
tools/perf/util/evsel.c | 25 +-
tools/perf/util/probe-event.c | 3 +
tools/testing/selftests/bpf/btf_helpers.c | 9 +-
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 5 +-
.../selftests/bpf/prog_tests/migrate_reuseport.c | 4 +-
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 2 +
.../testing/selftests/bpf/prog_tests/tc_redirect.c | 7 +
tools/testing/selftests/clone3/clone3.c | 6 +
.../selftests/ftrace/test.d/kprobe/profile.tc | 2 +-
tools/testing/selftests/kselftest_harness.h | 2 +-
.../selftests/powerpc/security/spectre_v2.c | 2 +-
tools/testing/selftests/powerpc/signal/.gitignore | 1 +
tools/testing/selftests/powerpc/signal/Makefile | 1 +
.../selftests/powerpc/signal/sigreturn_kernel.c | 132 +++
tools/testing/selftests/vm/hmm-tests.c | 42 +
973 files changed, 10099 insertions(+), 5513 deletions(-)
---
^ permalink raw reply [relevance 1%]
* Re: Linux 5.16.3
2022-01-27 13:32 1% Linux 5.16.3 Greg Kroah-Hartman
@ 2022-01-27 13:32 1% ` Greg Kroah-Hartman
0 siblings, 0 replies; 200+ results
From: Greg Kroah-Hartman @ 2022-01-27 13:32 UTC (permalink / raw)
To: linux-kernel, akpm, torvalds, stable; +Cc: lwn, jslaby, Greg Kroah-Hartman
diff --git a/Documentation/admin-guide/cifs/usage.rst b/Documentation/admin-guide/cifs/usage.rst
index f170d8820258..3766bf8a1c20 100644
--- a/Documentation/admin-guide/cifs/usage.rst
+++ b/Documentation/admin-guide/cifs/usage.rst
@@ -734,10 +734,9 @@ SecurityFlags Flags which control security negotiation and
using weaker password hashes is 0x37037 (lanman,
plaintext, ntlm, ntlmv2, signing allowed). Some
SecurityFlags require the corresponding menuconfig
- options to be enabled (lanman and plaintext require
- CONFIG_CIFS_WEAK_PW_HASH for example). Enabling
- plaintext authentication currently requires also
- enabling lanman authentication in the security flags
+ options to be enabled. Enabling plaintext
+ authentication currently requires also enabling
+ lanman authentication in the security flags
because the cifs module only supports sending
laintext passwords using the older lanman dialect
form of the session setup SMB. (e.g. for authentication
diff --git a/Documentation/admin-guide/devices.txt b/Documentation/admin-guide/devices.txt
index 922c23bb4372..c07dc0ee860e 100644
--- a/Documentation/admin-guide/devices.txt
+++ b/Documentation/admin-guide/devices.txt
@@ -2339,13 +2339,7 @@
disks (see major number 3) except that the limit on
partitions is 31.
- 162 char Raw block device interface
- 0 = /dev/rawctl Raw I/O control device
- 1 = /dev/raw/raw1 First raw I/O device
- 2 = /dev/raw/raw2 Second raw I/O device
- ...
- max minor number of raw device is set by kernel config
- MAX_RAW_DEVS or raw module parameter 'max_raw_devs'
+ 162 char Used for (now removed) raw block device interface
163 char
diff --git a/Documentation/admin-guide/hw-vuln/spectre.rst b/Documentation/admin-guide/hw-vuln/spectre.rst
index ab7d402c1677..a2b22d5640ec 100644
--- a/Documentation/admin-guide/hw-vuln/spectre.rst
+++ b/Documentation/admin-guide/hw-vuln/spectre.rst
@@ -468,7 +468,7 @@ Spectre variant 2
before invoking any firmware code to prevent Spectre variant 2 exploits
using the firmware.
- Using kernel address space randomization (CONFIG_RANDOMIZE_SLAB=y
+ Using kernel address space randomization (CONFIG_RANDOMIZE_BASE=y
and CONFIG_SLAB_FREELIST_RANDOM=y in the kernel configuration) makes
attacks on the kernel generally more difficult.
diff --git a/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml b/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
index cf5a208f2f10..343598c9f473 100644
--- a/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
+++ b/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
@@ -10,6 +10,9 @@ title: Amlogic specific extensions to the Synopsys Designware HDMI Controller
maintainers:
- Neil Armstrong <narmstrong@baylibre.com>
+allOf:
+ - $ref: /schemas/sound/name-prefix.yaml#
+
description: |
The Amlogic Meson Synopsys Designware Integration is composed of
- A Synopsys DesignWare HDMI Controller IP
@@ -99,6 +102,8 @@ properties:
"#sound-dai-cells":
const: 0
+ sound-name-prefix: true
+
required:
- compatible
- reg
diff --git a/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml b/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
index 851cb0781217..047fd69e0377 100644
--- a/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
+++ b/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
@@ -78,6 +78,10 @@ properties:
interrupts:
maxItems: 1
+ amlogic,canvas:
+ description: should point to a canvas provider node
+ $ref: /schemas/types.yaml#/definitions/phandle
+
power-domains:
maxItems: 1
description: phandle to the associated power domain
@@ -106,6 +110,7 @@ required:
- port@1
- "#address-cells"
- "#size-cells"
+ - amlogic,canvas
additionalProperties: false
@@ -118,6 +123,7 @@ examples:
interrupts = <3>;
#address-cells = <1>;
#size-cells = <0>;
+ amlogic,canvas = <&canvas>;
/* CVBS VDAC output port */
port@0 {
diff --git a/Documentation/devicetree/bindings/input/hid-over-i2c.txt b/Documentation/devicetree/bindings/input/hid-over-i2c.txt
index c76bafaf98d2..34c43d3bddfd 100644
--- a/Documentation/devicetree/bindings/input/hid-over-i2c.txt
+++ b/Documentation/devicetree/bindings/input/hid-over-i2c.txt
@@ -32,6 +32,8 @@ device-specific compatible properties, which should be used in addition to the
- vdd-supply: phandle of the regulator that provides the supply voltage.
- post-power-on-delay-ms: time required by the device after enabling its regulators
or powering it on, before it is ready for communication.
+- touchscreen-inverted-x: See touchscreen.txt
+- touchscreen-inverted-y: See touchscreen.txt
Example:
diff --git a/Documentation/devicetree/bindings/thermal/thermal-zones.yaml b/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
index a07de5ed0ca6..2d34f3ccb257 100644
--- a/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
+++ b/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
@@ -199,12 +199,11 @@ patternProperties:
contribution:
$ref: /schemas/types.yaml#/definitions/uint32
- minimum: 0
- maximum: 100
description:
- The percentage contribution of the cooling devices at the
- specific trip temperature referenced in this map
- to this thermal zone
+ The cooling contribution to the thermal zone of the referred
+ cooling device at the referred trip point. The contribution is
+ a ratio of the sum of all cooling contributions within a
+ thermal zone.
required:
- trip
diff --git a/Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml b/Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml
index 76cb9586ee00..93cd77a6e92c 100644
--- a/Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml
+++ b/Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml
@@ -39,8 +39,8 @@ properties:
samsung,syscon-phandle:
$ref: /schemas/types.yaml#/definitions/phandle
description:
- Phandle to the PMU system controller node (in case of Exynos5250
- and Exynos5420).
+ Phandle to the PMU system controller node (in case of Exynos5250,
+ Exynos5420 and Exynos7).
required:
- compatible
@@ -58,6 +58,7 @@ allOf:
enum:
- samsung,exynos5250-wdt
- samsung,exynos5420-wdt
+ - samsung,exynos7-wdt
then:
required:
- samsung,syscon-phandle
diff --git a/Documentation/driver-api/dmaengine/dmatest.rst b/Documentation/driver-api/dmaengine/dmatest.rst
index ee268d445d38..d2e1d8b58e7d 100644
--- a/Documentation/driver-api/dmaengine/dmatest.rst
+++ b/Documentation/driver-api/dmaengine/dmatest.rst
@@ -143,13 +143,14 @@ Part 5 - Handling channel allocation
Allocating Channels
-------------------
-Channels are required to be configured prior to starting the test run.
-Attempting to run the test without configuring the channels will fail.
+Channels do not need to be configured prior to starting a test run. Attempting
+to run the test without configuring the channels will result in testing any
+channels that are available.
Example::
% echo 1 > /sys/module/dmatest/parameters/run
- dmatest: Could not start test, no channels configured
+ dmatest: No channels configured, continue with any
Channels are registered using the "channel" parameter. Channels can be requested by their
name, once requested, the channel is registered and a pending thread is added to the test list.
diff --git a/Documentation/driver-api/firewire.rst b/Documentation/driver-api/firewire.rst
index 94a2d7f01d99..d3cfa73cbb2b 100644
--- a/Documentation/driver-api/firewire.rst
+++ b/Documentation/driver-api/firewire.rst
@@ -19,7 +19,7 @@ of kernel interfaces is available via exported symbols in `firewire-core` module
Firewire char device data structures
====================================
-.. include:: /ABI/stable/firewire-cdev
+.. include:: ../ABI/stable/firewire-cdev
:literal:
.. kernel-doc:: include/uapi/linux/firewire-cdev.h
@@ -28,7 +28,7 @@ Firewire char device data structures
Firewire device probing and sysfs interfaces
============================================
-.. include:: /ABI/stable/sysfs-bus-firewire
+.. include:: ../ABI/stable/sysfs-bus-firewire
:literal:
.. kernel-doc:: drivers/firewire/core-device.c
diff --git a/Documentation/firmware-guide/acpi/dsd/data-node-references.rst b/Documentation/firmware-guide/acpi/dsd/data-node-references.rst
index b7ad47df49de..8b65b32e6e40 100644
--- a/Documentation/firmware-guide/acpi/dsd/data-node-references.rst
+++ b/Documentation/firmware-guide/acpi/dsd/data-node-references.rst
@@ -5,7 +5,7 @@
Referencing hierarchical data nodes
===================================
-:Copyright: |copy| 2018 Intel Corporation
+:Copyright: |copy| 2018, 2021 Intel Corporation
:Author: Sakari Ailus <sakari.ailus@linux.intel.com>
ACPI in general allows referring to device objects in the tree only.
@@ -52,12 +52,14 @@ the ANOD object which is also the final target node of the reference.
Name (NOD0, Package() {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
+ Package () { "reg", 0 },
Package () { "random-property", 3 },
}
})
Name (NOD1, Package() {
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () {
+ Package () { "reg", 1 },
Package () { "anothernode", "ANOD" },
}
})
@@ -74,7 +76,11 @@ the ANOD object which is also the final target node of the reference.
Name (_DSD, Package () {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
- Package () { "reference", ^DEV0, "node@1", "anothernode" },
+ Package () {
+ "reference", Package () {
+ ^DEV0, "node@1", "anothernode"
+ }
+ },
}
})
}
diff --git a/Documentation/trace/coresight/coresight-config.rst b/Documentation/trace/coresight/coresight-config.rst
index a4e3ef295240..6ed13398ca2c 100644
--- a/Documentation/trace/coresight/coresight-config.rst
+++ b/Documentation/trace/coresight/coresight-config.rst
@@ -211,19 +211,13 @@ also declared in the perf 'cs_etm' event infrastructure so that they can
be selected when running trace under perf::
$ ls /sys/devices/cs_etm
- configurations format perf_event_mux_interval_ms sinks type
- events nr_addr_filters power
+ cpu0 cpu2 events nr_addr_filters power subsystem uevent
+ cpu1 cpu3 format perf_event_mux_interval_ms sinks type
-Key directories here are 'configurations' - which lists the loaded
-configurations, and 'events' - a generic perf directory which allows
-selection on the perf command line.::
+The key directory here is 'events' - a generic perf directory which allows
+selection on the perf command line. As with the sinks entries, this provides
+a hash of the configuration name.
- $ ls configurations/
- autofdo
- $ cat configurations/autofdo
- 0xa7c3dddd
-
-As with the sinks entries, this provides a hash of the configuration name.
The entry in the 'events' directory uses perfs built in syntax generator
to substitute the syntax for the name when evaluating the command::
diff --git a/Makefile b/Makefile
index dd98debc2604..acb8ffee65dc 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 16
-SUBLEVEL = 2
+SUBLEVEL = 3
EXTRAVERSION =
NAME = Gobble Gobble
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 98436702e0c7..644875d73ba1 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -410,12 +410,12 @@ choice
Say Y here if you want kernel low-level debugging support
on i.MX25.
- config DEBUG_IMX21_IMX27_UART
- bool "i.MX21 and i.MX27 Debug UART"
- depends on SOC_IMX21 || SOC_IMX27
+ config DEBUG_IMX27_UART
+ bool "i.MX27 Debug UART"
+ depends on SOC_IMX27
help
Say Y here if you want kernel low-level debugging support
- on i.MX21 or i.MX27.
+ on i.MX27.
config DEBUG_IMX28_UART
bool "i.MX28 Debug UART"
@@ -1481,7 +1481,7 @@ config DEBUG_IMX_UART_PORT
int "i.MX Debug UART Port Selection"
depends on DEBUG_IMX1_UART || \
DEBUG_IMX25_UART || \
- DEBUG_IMX21_IMX27_UART || \
+ DEBUG_IMX27_UART || \
DEBUG_IMX31_UART || \
DEBUG_IMX35_UART || \
DEBUG_IMX50_UART || \
@@ -1540,12 +1540,12 @@ config DEBUG_LL_INCLUDE
default "debug/icedcc.S" if DEBUG_ICEDCC
default "debug/imx.S" if DEBUG_IMX1_UART || \
DEBUG_IMX25_UART || \
- DEBUG_IMX21_IMX27_UART || \
+ DEBUG_IMX27_UART || \
DEBUG_IMX31_UART || \
DEBUG_IMX35_UART || \
DEBUG_IMX50_UART || \
DEBUG_IMX51_UART || \
- DEBUG_IMX53_UART ||\
+ DEBUG_IMX53_UART || \
DEBUG_IMX6Q_UART || \
DEBUG_IMX6SL_UART || \
DEBUG_IMX6SX_UART || \
diff --git a/arch/arm/boot/compressed/efi-header.S b/arch/arm/boot/compressed/efi-header.S
index c0e7a745103e..230030c13085 100644
--- a/arch/arm/boot/compressed/efi-header.S
+++ b/arch/arm/boot/compressed/efi-header.S
@@ -9,16 +9,22 @@
#include <linux/sizes.h>
.macro __nop
-#ifdef CONFIG_EFI_STUB
- @ This is almost but not quite a NOP, since it does clobber the
- @ condition flags. But it is the best we can do for EFI, since
- @ PE/COFF expects the magic string "MZ" at offset 0, while the
- @ ARM/Linux boot protocol expects an executable instruction
- @ there.
- .inst MZ_MAGIC | (0x1310 << 16) @ tstne r0, #0x4d000
-#else
AR_CLASS( mov r0, r0 )
M_CLASS( nop.w )
+ .endm
+
+ .macro __initial_nops
+#ifdef CONFIG_EFI_STUB
+ @ This is a two-instruction NOP, which happens to bear the
+ @ PE/COFF signature "MZ" in the first two bytes, so the kernel
+ @ is accepted as an EFI binary. Booting via the UEFI stub
+ @ will not execute those instructions, but the ARM/Linux
+ @ boot protocol does, so we need some NOPs here.
+ .inst MZ_MAGIC | (0xe225 << 16) @ eor r5, r5, 0x4d000
+ eor r5, r5, 0x4d000 @ undo previous insn
+#else
+ __nop
+ __nop
#endif
.endm
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index b1cb1972361b..bf79f2f78d23 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -203,7 +203,8 @@ start:
* were patching the initial instructions of the kernel, i.e
* had started to exploit this "patch area".
*/
- .rept 7
+ __initial_nops
+ .rept 5
__nop
.endr
#ifndef CONFIG_THUMB2_KERNEL
diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
index 9b1a24cc5e91..df3c8d1d8f64 100644
--- a/arch/arm/boot/dts/armada-38x.dtsi
+++ b/arch/arm/boot/dts/armada-38x.dtsi
@@ -168,7 +168,7 @@ i2c1: i2c@11100 {
};
uart0: serial@12000 {
- compatible = "marvell,armada-38x-uart";
+ compatible = "marvell,armada-38x-uart", "ns16550a";
reg = <0x12000 0x100>;
reg-shift = <2>;
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
@@ -178,7 +178,7 @@ uart0: serial@12000 {
};
uart1: serial@12100 {
- compatible = "marvell,armada-38x-uart";
+ compatible = "marvell,armada-38x-uart", "ns16550a";
reg = <0x12100 0x100>;
reg-shift = <2>;
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/gemini-nas4220b.dts b/arch/arm/boot/dts/gemini-nas4220b.dts
index 13112a8a5dd8..6544c730340f 100644
--- a/arch/arm/boot/dts/gemini-nas4220b.dts
+++ b/arch/arm/boot/dts/gemini-nas4220b.dts
@@ -84,7 +84,7 @@ flash@30000000 {
partitions {
compatible = "redboot-fis";
/* Eraseblock at 0xfe0000 */
- fis-index-block = <0x1fc>;
+ fis-index-block = <0x7f>;
};
};
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
index 32335d4ce478..d40c3d2c4914 100644
--- a/arch/arm/boot/dts/omap3-n900.dts
+++ b/arch/arm/boot/dts/omap3-n900.dts
@@ -8,6 +8,7 @@
#include "omap34xx.dtsi"
#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
/*
* Default secure signed bootloader (Nokia X-Loader) does not enable L3 firewall
@@ -630,63 +631,92 @@ indicator {
};
lp5523: lp5523@32 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "national,lp5523";
reg = <0x32>;
clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
- enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
+ enable-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
- chan0 {
+ led@0 {
+ reg = <0>;
chan-name = "lp5523:kb1";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan1 {
+ led@1 {
+ reg = <1>;
chan-name = "lp5523:kb2";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan2 {
+ led@2 {
+ reg = <2>;
chan-name = "lp5523:kb3";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan3 {
+ led@3 {
+ reg = <3>;
chan-name = "lp5523:kb4";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan4 {
+ led@4 {
+ reg = <4>;
chan-name = "lp5523:b";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_BLUE>;
+ function = LED_FUNCTION_STATUS;
};
- chan5 {
+ led@5 {
+ reg = <5>;
chan-name = "lp5523:g";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_STATUS;
};
- chan6 {
+ led@6 {
+ reg = <6>;
chan-name = "lp5523:r";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_RED>;
+ function = LED_FUNCTION_STATUS;
};
- chan7 {
+ led@7 {
+ reg = <7>;
chan-name = "lp5523:kb5";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan8 {
+ led@8 {
+ reg = <8>;
chan-name = "lp5523:kb6";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
};
diff --git a/arch/arm/boot/dts/qcom-sdx55.dtsi b/arch/arm/boot/dts/qcom-sdx55.dtsi
index 44526ad9d210..eee2f63b9bba 100644
--- a/arch/arm/boot/dts/qcom-sdx55.dtsi
+++ b/arch/arm/boot/dts/qcom-sdx55.dtsi
@@ -333,12 +333,10 @@ ipa: ipa@1e40000 {
clocks = <&rpmhcc RPMH_IPA_CLK>;
clock-names = "core";
- interconnects = <&system_noc MASTER_IPA &system_noc SLAVE_SNOC_MEM_NOC_GC>,
- <&mem_noc MASTER_SNOC_GC_MEM_NOC &mc_virt SLAVE_EBI_CH0>,
+ interconnects = <&system_noc MASTER_IPA &mc_virt SLAVE_EBI_CH0>,
<&system_noc MASTER_IPA &system_noc SLAVE_OCIMEM>,
<&mem_noc MASTER_AMPSS_M0 &system_noc SLAVE_IPA_CFG>;
- interconnect-names = "memory-a",
- "memory-b",
+ interconnect-names = "memory",
"imem",
"config";
diff --git a/arch/arm/boot/dts/sama7g5-pinfunc.h b/arch/arm/boot/dts/sama7g5-pinfunc.h
index 22fe9e522a97..4eb30445d205 100644
--- a/arch/arm/boot/dts/sama7g5-pinfunc.h
+++ b/arch/arm/boot/dts/sama7g5-pinfunc.h
@@ -765,7 +765,7 @@
#define PIN_PD20__PCK0 PINMUX_PIN(PIN_PD20, 1, 3)
#define PIN_PD20__FLEXCOM2_IO3 PINMUX_PIN(PIN_PD20, 2, 2)
#define PIN_PD20__PWMH3 PINMUX_PIN(PIN_PD20, 3, 4)
-#define PIN_PD20__CANTX4 PINMUX_PIN(PIN_PD20, 5, 2)
+#define PIN_PD20__CANTX4 PINMUX_PIN(PIN_PD20, 4, 2)
#define PIN_PD20__FLEXCOM5_IO0 PINMUX_PIN(PIN_PD20, 6, 5)
#define PIN_PD21 117
#define PIN_PD21__GPIO PINMUX_PIN(PIN_PD21, 0, 0)
diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts
index 075ac57d0bf4..6435e099c632 100644
--- a/arch/arm/boot/dts/stm32f429-disco.dts
+++ b/arch/arm/boot/dts/stm32f429-disco.dts
@@ -192,7 +192,7 @@ l3gd20: l3gd20@0 {
display: display@1{
/* Connect panel-ilitek-9341 to ltdc */
- compatible = "st,sf-tc240t-9370-t";
+ compatible = "st,sf-tc240t-9370-t", "ilitek,ili9341";
reg = <1>;
spi-3wire;
spi-max-frequency = <10000000>;
diff --git a/arch/arm/configs/cm_x300_defconfig b/arch/arm/configs/cm_x300_defconfig
index 502a9d870ca4..45769d0ddd4e 100644
--- a/arch/arm/configs/cm_x300_defconfig
+++ b/arch/arm/configs/cm_x300_defconfig
@@ -146,7 +146,6 @@ CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_ISO8859_1=m
diff --git a/arch/arm/configs/ezx_defconfig b/arch/arm/configs/ezx_defconfig
index a49e699e52de..ec84d80096b1 100644
--- a/arch/arm/configs/ezx_defconfig
+++ b/arch/arm/configs/ezx_defconfig
@@ -314,7 +314,6 @@ CONFIG_NFSD_V3_ACL=y
CONFIG_SMB_FS=m
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/arm/configs/imote2_defconfig b/arch/arm/configs/imote2_defconfig
index 118c4c927f26..6db871d4e077 100644
--- a/arch/arm/configs/imote2_defconfig
+++ b/arch/arm/configs/imote2_defconfig
@@ -288,7 +288,6 @@ CONFIG_NFSD_V3_ACL=y
CONFIG_SMB_FS=m
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/arm/configs/nhk8815_defconfig b/arch/arm/configs/nhk8815_defconfig
index 23595fc5a29a..907d6512821a 100644
--- a/arch/arm/configs/nhk8815_defconfig
+++ b/arch/arm/configs/nhk8815_defconfig
@@ -127,7 +127,6 @@ CONFIG_NFS_FS=y
CONFIG_NFS_V3_ACL=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
diff --git a/arch/arm/configs/pxa_defconfig b/arch/arm/configs/pxa_defconfig
index 58f4834289e6..dedaaae3d0d8 100644
--- a/arch/arm/configs/pxa_defconfig
+++ b/arch/arm/configs/pxa_defconfig
@@ -699,7 +699,6 @@ CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_DEFAULT="utf8"
diff --git a/arch/arm/configs/spear13xx_defconfig b/arch/arm/configs/spear13xx_defconfig
index 3b206a31902f..065553326b39 100644
--- a/arch/arm/configs/spear13xx_defconfig
+++ b/arch/arm/configs/spear13xx_defconfig
@@ -61,7 +61,6 @@ CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_RAW_DRIVER=y
-CONFIG_MAX_RAW_DEVS=8192
CONFIG_I2C=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SPI=y
diff --git a/arch/arm/configs/spear3xx_defconfig b/arch/arm/configs/spear3xx_defconfig
index fc5f71c765ed..afca722d6605 100644
--- a/arch/arm/configs/spear3xx_defconfig
+++ b/arch/arm/configs/spear3xx_defconfig
@@ -41,7 +41,6 @@ CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_RAW_DRIVER=y
-CONFIG_MAX_RAW_DEVS=8192
CONFIG_I2C=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SPI=y
diff --git a/arch/arm/configs/spear6xx_defconfig b/arch/arm/configs/spear6xx_defconfig
index 52a56b8ce6a7..bc32c02cb86b 100644
--- a/arch/arm/configs/spear6xx_defconfig
+++ b/arch/arm/configs/spear6xx_defconfig
@@ -36,7 +36,6 @@ CONFIG_INPUT_FF_MEMLESS=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_RAW_DRIVER=y
-CONFIG_MAX_RAW_DEVS=8192
CONFIG_I2C=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SPI=y
diff --git a/arch/arm/include/debug/imx-uart.h b/arch/arm/include/debug/imx-uart.h
index c8eb83d4b896..3edbb3c5b42b 100644
--- a/arch/arm/include/debug/imx-uart.h
+++ b/arch/arm/include/debug/imx-uart.h
@@ -11,13 +11,6 @@
#define IMX1_UART_BASE_ADDR(n) IMX1_UART##n##_BASE_ADDR
#define IMX1_UART_BASE(n) IMX1_UART_BASE_ADDR(n)
-#define IMX21_UART1_BASE_ADDR 0x1000a000
-#define IMX21_UART2_BASE_ADDR 0x1000b000
-#define IMX21_UART3_BASE_ADDR 0x1000c000
-#define IMX21_UART4_BASE_ADDR 0x1000d000
-#define IMX21_UART_BASE_ADDR(n) IMX21_UART##n##_BASE_ADDR
-#define IMX21_UART_BASE(n) IMX21_UART_BASE_ADDR(n)
-
#define IMX25_UART1_BASE_ADDR 0x43f90000
#define IMX25_UART2_BASE_ADDR 0x43f94000
#define IMX25_UART3_BASE_ADDR 0x5000c000
@@ -26,6 +19,13 @@
#define IMX25_UART_BASE_ADDR(n) IMX25_UART##n##_BASE_ADDR
#define IMX25_UART_BASE(n) IMX25_UART_BASE_ADDR(n)
+#define IMX27_UART1_BASE_ADDR 0x1000a000
+#define IMX27_UART2_BASE_ADDR 0x1000b000
+#define IMX27_UART3_BASE_ADDR 0x1000c000
+#define IMX27_UART4_BASE_ADDR 0x1000d000
+#define IMX27_UART_BASE_ADDR(n) IMX27_UART##n##_BASE_ADDR
+#define IMX27_UART_BASE(n) IMX27_UART_BASE_ADDR(n)
+
#define IMX31_UART1_BASE_ADDR 0x43f90000
#define IMX31_UART2_BASE_ADDR 0x43f94000
#define IMX31_UART3_BASE_ADDR 0x5000c000
@@ -112,10 +112,10 @@
#ifdef CONFIG_DEBUG_IMX1_UART
#define UART_PADDR IMX_DEBUG_UART_BASE(IMX1)
-#elif defined(CONFIG_DEBUG_IMX21_IMX27_UART)
-#define UART_PADDR IMX_DEBUG_UART_BASE(IMX21)
#elif defined(CONFIG_DEBUG_IMX25_UART)
#define UART_PADDR IMX_DEBUG_UART_BASE(IMX25)
+#elif defined(CONFIG_DEBUG_IMX27_UART)
+#define UART_PADDR IMX_DEBUG_UART_BASE(IMX27)
#elif defined(CONFIG_DEBUG_IMX31_UART)
#define UART_PADDR IMX_DEBUG_UART_BASE(IMX31)
#elif defined(CONFIG_DEBUG_IMX35_UART)
diff --git a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
index ee949255ced3..09ef73b99dd8 100644
--- a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
+++ b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
@@ -154,8 +154,10 @@ static int __init rcar_gen2_regulator_quirk(void)
return -ENODEV;
for_each_matching_node_and_match(np, rcar_gen2_quirk_match, &id) {
- if (!of_device_is_available(np))
+ if (!of_device_is_available(np)) {
+ of_node_put(np);
break;
+ }
ret = of_property_read_u32(np, "reg", &addr);
if (ret) /* Skip invalid entry and continue */
@@ -164,6 +166,7 @@ static int __init rcar_gen2_regulator_quirk(void)
quirk = kzalloc(sizeof(*quirk), GFP_KERNEL);
if (!quirk) {
ret = -ENOMEM;
+ of_node_put(np);
goto err_mem;
}
diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
index eeb6dc0ecf46..e59b41e9ab0c 100644
--- a/arch/arm/net/bpf_jit_32.c
+++ b/arch/arm/net/bpf_jit_32.c
@@ -1199,7 +1199,8 @@ static int emit_bpf_tail_call(struct jit_ctx *ctx)
/* tmp2[0] = array, tmp2[1] = index */
- /* if (tail_call_cnt > MAX_TAIL_CALL_CNT)
+ /*
+ * if (tail_call_cnt >= MAX_TAIL_CALL_CNT)
* goto out;
* tail_call_cnt++;
*/
@@ -1208,7 +1209,7 @@ static int emit_bpf_tail_call(struct jit_ctx *ctx)
tc = arm_bpf_get_reg64(tcc, tmp, ctx);
emit(ARM_CMP_I(tc[0], hi), ctx);
_emit(ARM_COND_EQ, ARM_CMP_I(tc[1], lo), ctx);
- _emit(ARM_COND_HI, ARM_B(jmp_offset), ctx);
+ _emit(ARM_COND_CS, ARM_B(jmp_offset), ctx);
emit(ARM_ADDS_I(tc[1], tc[1], 1), ctx);
emit(ARM_ADC_I(tc[0], tc[0], 0), ctx);
arm_bpf_put_reg64(tcc, tmp, ctx);
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
index 00c6f53290d4..428449d98c0a 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -58,7 +58,7 @@ efuse: efuse {
secure-monitor = <&sm>;
};
- gpu_opp_table: gpu-opp-table {
+ gpu_opp_table: opp-table-gpu {
compatible = "operating-points-v2";
opp-124999998 {
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
index e8a00a2f8812..3e968b244191 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
@@ -609,7 +609,7 @@ &spifc {
pinctrl-0 = <&nor_pins>;
pinctrl-names = "default";
- mx25u64: spi-flash@0 {
+ mx25u64: flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "mxicy,mx25u6435f", "jedec,spi-nor";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
index a350fee1264d..a4d34398da35 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
@@ -6,6 +6,7 @@
*/
#include "meson-gxbb.dtsi"
+#include <dt-bindings/gpio/gpio.h>
/ {
aliases {
@@ -64,6 +65,7 @@ vddio_ao18: regulator-vddio_ao18 {
regulator-name = "VDDIO_AO18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-always-on;
};
vcc_3v3: regulator-vcc_3v3 {
@@ -161,6 +163,7 @@ &hdmi_tx {
status = "okay";
pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
pinctrl-names = "default";
+ hdmi-supply = <&vddio_ao18>;
};
&hdmi_tx_tmds_port {
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
index 6e2a1da662fb..4597848598df 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
@@ -272,11 +272,6 @@ temperature-sensor@4c {
vcc-supply = <&sb_3v3>;
};
- rtc@51 {
- compatible = "nxp,pcf2129";
- reg = <0x51>;
- };
-
eeprom@56 {
compatible = "atmel,24c512";
reg = <0x56>;
@@ -318,6 +313,15 @@ mux: mux-controller {
};
+&i2c1 {
+ status = "okay";
+
+ rtc@51 {
+ compatible = "nxp,pcf2129";
+ reg = <0x51>;
+ };
+};
+
&enetc_port1 {
phy-handle = <&qds_phy1>;
phy-mode = "rgmii-id";
diff --git a/arch/arm64/boot/dts/marvell/cn9130.dtsi b/arch/arm64/boot/dts/marvell/cn9130.dtsi
index a2b7e5ec979d..327b04134134 100644
--- a/arch/arm64/boot/dts/marvell/cn9130.dtsi
+++ b/arch/arm64/boot/dts/marvell/cn9130.dtsi
@@ -11,6 +11,13 @@ / {
model = "Marvell Armada CN9130 SoC";
compatible = "marvell,cn9130", "marvell,armada-ap807-quad",
"marvell,armada-ap807";
+
+ aliases {
+ gpio1 = &cp0_gpio1;
+ gpio2 = &cp0_gpio2;
+ spi1 = &cp0_spi0;
+ spi2 = &cp0_spi1;
+ };
};
/*
@@ -35,3 +42,11 @@ / {
#undef CP11X_PCIE0_BASE
#undef CP11X_PCIE1_BASE
#undef CP11X_PCIE2_BASE
+
+&cp0_gpio1 {
+ status = "okay";
+};
+
+&cp0_gpio2 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/nvidia/tegra186.dtsi b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
index 9ac4f0140700..8ab83b4ac037 100644
--- a/arch/arm64/boot/dts/nvidia/tegra186.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
@@ -1199,7 +1199,7 @@ sdmmc3_1v8: sdmmc3-1v8 {
ccplex@e000000 {
compatible = "nvidia,tegra186-ccplex-cluster";
- reg = <0x0 0x0e000000 0x0 0x3fffff>;
+ reg = <0x0 0x0e000000 0x0 0x400000>;
nvidia,bpmp = <&bpmp>;
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
index 851e049b3519..dcc0e55d6bdb 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
@@ -976,9 +976,8 @@ hda@3510000 {
<&bpmp TEGRA194_CLK_HDA2CODEC_2X>;
clock-names = "hda", "hda2hdmi", "hda2codec_2x";
resets = <&bpmp TEGRA194_RESET_HDA>,
- <&bpmp TEGRA194_RESET_HDA2HDMICODEC>,
- <&bpmp TEGRA194_RESET_HDA2CODEC_2X>;
- reset-names = "hda", "hda2hdmi", "hda2codec_2x";
+ <&bpmp TEGRA194_RESET_HDA2HDMICODEC>;
+ reset-names = "hda", "hda2hdmi";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
interconnects = <&mc TEGRA194_MEMORY_CLIENT_HDAR &emc>,
<&mc TEGRA194_MEMORY_CLIENT_HDAW &emc>;
diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
index 933b56103a46..66ec5615651d 100644
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
@@ -220,7 +220,7 @@ tlmm: pinctrl@1000000 {
interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
- gpio-ranges = <&tlmm 0 80>;
+ gpio-ranges = <&tlmm 0 0 80>;
interrupt-controller;
#interrupt-cells = <2>;
diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
index c1c42f26b61e..8be601275e9b 100644
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -19,8 +19,8 @@ / {
#size-cells = <2>;
aliases {
- sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
- sdhc2 = &sdhc_2; /* SDC2 SD card slot */
+ mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+ mmc1 = &sdhc_2; /* SDC2 SD card slot */
};
chosen { };
diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index bccc2d0b35a8..1ac78d9909ab 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -987,9 +987,6 @@ gpu: gpu@b00000 {
nvmem-cells = <&speedbin_efuse>;
nvmem-cell-names = "speed_bin";
- qcom,gpu-quirk-two-pass-use-wfi;
- qcom,gpu-quirk-fault-detect-mask;
-
operating-points-v2 = <&gpu_opp_table>;
status = "disabled";
diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index 365a2e04e285..6e27a1beaa33 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -576,7 +576,7 @@ gcc: clock-controller@100000 {
<&rpmhcc RPMH_CXO_CLK_A>, <&sleep_clk>,
<0>, <0>, <0>, <0>, <0>, <0>;
clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk",
- "pcie_0_pipe_clk", "pcie_1_pipe-clk",
+ "pcie_0_pipe_clk", "pcie_1_pipe_clk",
"ufs_phy_rx_symbol_0_clk", "ufs_phy_rx_symbol_1_clk",
"ufs_phy_tx_symbol_0_clk",
"usb3_phy_wrapper_gcc_usb30_pipe_clk";
@@ -1592,10 +1592,10 @@ pcie1: pci@1c08000 {
interrupt-names = "msi";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0x7>;
- interrupt-map = <0 0 0 1 &intc 0 434 IRQ_TYPE_LEVEL_HIGH>,
- <0 0 0 2 &intc 0 435 IRQ_TYPE_LEVEL_HIGH>,
- <0 0 0 3 &intc 0 438 IRQ_TYPE_LEVEL_HIGH>,
- <0 0 0 4 &intc 0 439 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-map = <0 0 0 1 &intc 0 0 0 434 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 2 &intc 0 0 0 435 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 3 &intc 0 0 0 438 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 4 &intc 0 0 0 439 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_PCIE_1_PIPE_CLK>,
<&gcc GCC_PCIE_1_PIPE_CLK_SRC>,
diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
index d6b2ba4396f6..2e882a977e2c 100644
--- a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
+++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
@@ -523,6 +523,10 @@ dai@0 {
dai@1 {
reg = <1>;
};
+
+ dai@2 {
+ reg = <2>;
+ };
};
&sound {
@@ -535,6 +539,7 @@ &sound {
"SpkrLeft IN", "SPK1 OUT",
"SpkrRight IN", "SPK2 OUT",
"MM_DL1", "MultiMedia1 Playback",
+ "MM_DL3", "MultiMedia3 Playback",
"MultiMedia2 Capture", "MM_UL2";
mm1-dai-link {
@@ -551,6 +556,13 @@ cpu {
};
};
+ mm3-dai-link {
+ link-name = "MultiMedia3";
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
+ };
+ };
+
slim-dai-link {
link-name = "SLIM Playback";
cpu {
@@ -580,6 +592,21 @@ codec {
sound-dai = <&wcd9340 1>;
};
};
+
+ slim-wcd-dai-link {
+ link-name = "SLIM WCD Playback";
+ cpu {
+ sound-dai = <&q6afedai SLIMBUS_1_RX>;
+ };
+
+ platform {
+ sound-dai = <&q6routing>;
+ };
+
+ codec {
+ sound-dai = <&wcd9340 2>;
+ };
+ };
};
&tlmm {
diff --git a/arch/arm64/boot/dts/qcom/sm6350.dtsi b/arch/arm64/boot/dts/qcom/sm6350.dtsi
index 973e18fe3b67..cd55797facf6 100644
--- a/arch/arm64/boot/dts/qcom/sm6350.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm6350.dtsi
@@ -631,7 +631,7 @@ tsens0: thermal-sensor@c263000 {
reg = <0 0x0c263000 0 0x1ff>, /* TM */
<0 0x0c222000 0 0x8>; /* SROT */
#qcom,sensors = <16>;
- interrupts = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
+ interrupts-extended = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
<&pdc 28 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "uplow", "critical";
#thermal-sensor-cells = <1>;
@@ -642,7 +642,7 @@ tsens1: thermal-sensor@c265000 {
reg = <0 0x0c265000 0 0x1ff>, /* TM */
<0 0x0c223000 0 0x8>; /* SROT */
#qcom,sensors = <16>;
- interrupts = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
+ interrupts-extended = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
<&pdc 29 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "uplow", "critical";
#thermal-sensor-cells = <1>;
diff --git a/arch/arm64/boot/dts/qcom/sm8350.dtsi b/arch/arm64/boot/dts/qcom/sm8350.dtsi
index d134280e2939..c13858cf50dd 100644
--- a/arch/arm64/boot/dts/qcom/sm8350.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8350.dtsi
@@ -910,7 +910,7 @@ tsens0: thermal-sensor@c263000 {
reg = <0 0x0c263000 0 0x1ff>, /* TM */
<0 0x0c222000 0 0x8>; /* SROT */
#qcom,sensors = <15>;
- interrupts = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
+ interrupts-extended = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
<&pdc 28 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "uplow", "critical";
#thermal-sensor-cells = <1>;
@@ -921,7 +921,7 @@ tsens1: thermal-sensor@c265000 {
reg = <0 0x0c265000 0 0x1ff>, /* TM */
<0 0x0c223000 0 0x8>; /* SROT */
#qcom,sensors = <14>;
- interrupts = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
+ interrupts-extended = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
<&pdc 29 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "uplow", "critical";
#thermal-sensor-cells = <1>;
@@ -2447,7 +2447,7 @@ camera1_alert0: trip-point0 {
};
};
- camera-thermal-bottom {
+ cam-thermal-bottom {
polling-delay-passive = <250>;
polling-delay = <1000>;
diff --git a/arch/arm64/boot/dts/renesas/cat875.dtsi b/arch/arm64/boot/dts/renesas/cat875.dtsi
index a69d24e9c61d..8c9da8b4bd60 100644
--- a/arch/arm64/boot/dts/renesas/cat875.dtsi
+++ b/arch/arm64/boot/dts/renesas/cat875.dtsi
@@ -18,6 +18,7 @@ &avb {
pinctrl-names = "default";
renesas,no-ether-link;
phy-handle = <&phy0>;
+ phy-mode = "rgmii-id";
status = "okay";
phy0: ethernet-phy@0 {
diff --git a/arch/arm64/boot/dts/renesas/r8a774a1.dtsi b/arch/arm64/boot/dts/renesas/r8a774a1.dtsi
index 6f4fffacfca2..e70aa5a08740 100644
--- a/arch/arm64/boot/dts/renesas/r8a774a1.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a774a1.dtsi
@@ -2784,7 +2784,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -2799,7 +2799,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -2814,7 +2814,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a774b1.dtsi b/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
index 0f7bdfc90a0d..6c5694fa6690 100644
--- a/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
@@ -2629,7 +2629,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -2644,7 +2644,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -2659,7 +2659,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a774e1.dtsi b/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
index 379a1300272b..62209ab6deb9 100644
--- a/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
@@ -2904,7 +2904,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -2919,7 +2919,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -2934,7 +2934,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77951.dtsi b/arch/arm64/boot/dts/renesas/r8a77951.dtsi
index 1768a3e6bb8d..193d81be40fc 100644
--- a/arch/arm64/boot/dts/renesas/r8a77951.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77951.dtsi
@@ -3375,7 +3375,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -3390,7 +3390,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -3405,7 +3405,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77960.dtsi b/arch/arm64/boot/dts/renesas/r8a77960.dtsi
index 2bd8169735d3..b526e4f0ee6a 100644
--- a/arch/arm64/boot/dts/renesas/r8a77960.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77960.dtsi
@@ -2972,7 +2972,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -2987,7 +2987,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -3002,7 +3002,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77961.dtsi b/arch/arm64/boot/dts/renesas/r8a77961.dtsi
index 86d59e7e1a87..b1a00f5df431 100644
--- a/arch/arm64/boot/dts/renesas/r8a77961.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77961.dtsi
@@ -2730,7 +2730,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -2745,7 +2745,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -2760,7 +2760,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77965.dtsi b/arch/arm64/boot/dts/renesas/r8a77965.dtsi
index 08df75606430..f9679a4dd85f 100644
--- a/arch/arm64/boot/dts/renesas/r8a77965.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77965.dtsi
@@ -2784,7 +2784,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -2799,7 +2799,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -2814,7 +2814,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77980.dtsi b/arch/arm64/boot/dts/renesas/r8a77980.dtsi
index 6347d15e66b6..21fe602bd25a 100644
--- a/arch/arm64/boot/dts/renesas/r8a77980.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77980.dtsi
@@ -1580,7 +1580,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- thermal-sensor-1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -1599,7 +1599,7 @@ sensor1-critical {
};
};
- thermal-sensor-2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
diff --git a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi b/arch/arm64/boot/dts/renesas/r8a779a0.dtsi
index 43bf2cbfbd8f..770a23b769d8 100644
--- a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a779a0.dtsi
@@ -2607,7 +2607,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -2621,7 +2621,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -2635,7 +2635,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
@@ -2649,7 +2649,7 @@ sensor3_crit: sensor3-crit {
};
};
- sensor_thermal4: sensor-thermal4 {
+ sensor4_thermal: sensor4-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 3>;
@@ -2663,7 +2663,7 @@ sensor4_crit: sensor4-crit {
};
};
- sensor_thermal5: sensor-thermal5 {
+ sensor5_thermal: sensor5-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 4>;
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b-plus.dts b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b-plus.dts
index dfad13d2ab24..5bd2b8db3d51 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b-plus.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b-plus.dts
@@ -35,13 +35,16 @@ &uart0 {
status = "okay";
bluetooth {
- compatible = "brcm,bcm43438-bt";
+ compatible = "brcm,bcm4345c5";
clocks = <&rk808 1>;
- clock-names = "ext_clock";
+ clock-names = "lpo";
device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
+ max-speed = <1500000>;
pinctrl-names = "default";
pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
+ vbat-supply = <&vcc3v3_sys>;
+ vddio-supply = <&vcc_1v8>;
};
};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts
index 6c63e617063c..cf48746a3ad8 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts
@@ -34,13 +34,16 @@ &uart0 {
status = "okay";
bluetooth {
- compatible = "brcm,bcm43438-bt";
+ compatible = "brcm,bcm4345c5";
clocks = <&rk808 1>;
- clock-names = "ext_clock";
+ clock-names = "lpo";
device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
+ max-speed = <1500000>;
pinctrl-names = "default";
pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
+ vbat-supply = <&vcc3v3_sys>;
+ vddio-supply = <&vcc_1v8>;
};
};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts
index 99169bcd51c0..57ddf55ee693 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts
@@ -35,14 +35,17 @@ &uart0 {
status = "okay";
bluetooth {
- compatible = "brcm,bcm43438-bt";
+ compatible = "brcm,bcm4345c5";
clocks = <&rk808 1>;
- clock-names = "ext_clock";
+ clock-names = "lpo";
device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
+ max-speed = <1500000>;
pinctrl-names = "default";
pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
+ vbat-supply = <&vcc3v3_sys>;
+ vddio-supply = <&vcc_1v8>;
};
};
diff --git a/arch/arm64/boot/dts/ti/k3-am642.dtsi b/arch/arm64/boot/dts/ti/k3-am642.dtsi
index e2b397c88401..8a76f4821b11 100644
--- a/arch/arm64/boot/dts/ti/k3-am642.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am642.dtsi
@@ -60,6 +60,6 @@ L2_0: l2-cache0 {
cache-level = <2>;
cache-size = <0x40000>;
cache-line-size = <64>;
- cache-sets = <512>;
+ cache-sets = <256>;
};
};
diff --git a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
index d60ef4f7dd0b..05a627ad6cdc 100644
--- a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
@@ -32,7 +32,7 @@ scm_conf: scm-conf@100000 {
#size-cells = <1>;
ranges = <0x00 0x00 0x00100000 0x1c000>;
- serdes_ln_ctrl: serdes-ln-ctrl@4080 {
+ serdes_ln_ctrl: mux-controller@4080 {
compatible = "mmio-mux";
#mux-control-cells = <1>;
mux-reg-masks = <0x4080 0x3>, <0x4084 0x3>, /* SERDES0 lane0/1 select */
diff --git a/arch/arm64/boot/dts/ti/k3-j7200.dtsi b/arch/arm64/boot/dts/ti/k3-j7200.dtsi
index 47567cb260c2..64fef4e67d76 100644
--- a/arch/arm64/boot/dts/ti/k3-j7200.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j7200.dtsi
@@ -62,7 +62,7 @@ cpu0: cpu@0 {
i-cache-sets = <256>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
- d-cache-sets = <128>;
+ d-cache-sets = <256>;
next-level-cache = <&L2_0>;
};
@@ -76,7 +76,7 @@ cpu1: cpu@1 {
i-cache-sets = <256>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
- d-cache-sets = <128>;
+ d-cache-sets = <256>;
next-level-cache = <&L2_0>;
};
};
@@ -86,7 +86,7 @@ L2_0: l2-cache0 {
cache-level = <2>;
cache-size = <0x100000>;
cache-line-size = <64>;
- cache-sets = <2048>;
+ cache-sets = <1024>;
next-level-cache = <&msmc_l3>;
};
diff --git a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
index 08c8d1b47dcd..e85c89eebfa3 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
@@ -42,7 +42,7 @@ scm_conf: scm-conf@100000 {
#size-cells = <1>;
ranges = <0x0 0x0 0x00100000 0x1c000>;
- serdes_ln_ctrl: mux@4080 {
+ serdes_ln_ctrl: mux-controller@4080 {
compatible = "mmio-mux";
reg = <0x00004080 0x50>;
#mux-control-cells = <1>;
diff --git a/arch/arm64/boot/dts/ti/k3-j721e.dtsi b/arch/arm64/boot/dts/ti/k3-j721e.dtsi
index 214359e7288b..4a3872fce533 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e.dtsi
@@ -64,7 +64,7 @@ cpu0: cpu@0 {
i-cache-sets = <256>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
- d-cache-sets = <128>;
+ d-cache-sets = <256>;
next-level-cache = <&L2_0>;
};
@@ -78,7 +78,7 @@ cpu1: cpu@1 {
i-cache-sets = <256>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
- d-cache-sets = <128>;
+ d-cache-sets = <256>;
next-level-cache = <&L2_0>;
};
};
@@ -88,7 +88,7 @@ L2_0: l2-cache0 {
cache-level = <2>;
cache-size = <0x100000>;
cache-line-size = <64>;
- cache-sets = <2048>;
+ cache-sets = <1024>;
next-level-cache = <&msmc_l3>;
};
diff --git a/arch/arm64/include/asm/mte-kasan.h b/arch/arm64/include/asm/mte-kasan.h
index 478b9bcf69ad..e4704a403237 100644
--- a/arch/arm64/include/asm/mte-kasan.h
+++ b/arch/arm64/include/asm/mte-kasan.h
@@ -84,10 +84,12 @@ static inline void __dc_gzva(u64 p)
static inline void mte_set_mem_tag_range(void *addr, size_t size, u8 tag,
bool init)
{
- u64 curr, mask, dczid_bs, end1, end2, end3;
+ u64 curr, mask, dczid, dczid_bs, dczid_dzp, end1, end2, end3;
/* Read DC G(Z)VA block size from the system register. */
- dczid_bs = 4ul << (read_cpuid(DCZID_EL0) & 0xf);
+ dczid = read_cpuid(DCZID_EL0);
+ dczid_bs = 4ul << (dczid & 0xf);
+ dczid_dzp = (dczid >> 4) & 1;
curr = (u64)__tag_set(addr, tag);
mask = dczid_bs - 1;
@@ -106,7 +108,7 @@ static inline void mte_set_mem_tag_range(void *addr, size_t size, u8 tag,
*/
#define SET_MEMTAG_RANGE(stg_post, dc_gva) \
do { \
- if (size >= 2 * dczid_bs) { \
+ if (!dczid_dzp && size >= 2 * dczid_bs) {\
do { \
curr = stg_post(curr); \
} while (curr < end1); \
diff --git a/arch/arm64/kernel/module.c b/arch/arm64/kernel/module.c
index b5ec010c481f..309a27553c87 100644
--- a/arch/arm64/kernel/module.c
+++ b/arch/arm64/kernel/module.c
@@ -36,7 +36,7 @@ void *module_alloc(unsigned long size)
module_alloc_end = MODULES_END;
p = __vmalloc_node_range(size, MODULE_ALIGN, module_alloc_base,
- module_alloc_end, gfp_mask, PAGE_KERNEL, 0,
+ module_alloc_end, gfp_mask, PAGE_KERNEL, VM_DEFER_KMEMLEAK,
NUMA_NO_NODE, __builtin_return_address(0));
if (!p && IS_ENABLED(CONFIG_ARM64_MODULE_PLTS) &&
@@ -58,7 +58,7 @@ void *module_alloc(unsigned long size)
PAGE_KERNEL, 0, NUMA_NO_NODE,
__builtin_return_address(0));
- if (p && (kasan_module_alloc(p, size) < 0)) {
+ if (p && (kasan_module_alloc(p, size, gfp_mask) < 0)) {
vfree(p);
return NULL;
}
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index aacf2f5559a8..271d4bbf468e 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -439,34 +439,26 @@ static void entry_task_switch(struct task_struct *next)
/*
* ARM erratum 1418040 handling, affecting the 32bit view of CNTVCT.
- * Assuming the virtual counter is enabled at the beginning of times:
- *
- * - disable access when switching from a 64bit task to a 32bit task
- * - enable access when switching from a 32bit task to a 64bit task
+ * Ensure access is disabled when switching to a 32bit task, ensure
+ * access is enabled when switching to a 64bit task.
*/
-static void erratum_1418040_thread_switch(struct task_struct *prev,
- struct task_struct *next)
+static void erratum_1418040_thread_switch(struct task_struct *next)
{
- bool prev32, next32;
- u64 val;
-
- if (!IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040))
- return;
-
- prev32 = is_compat_thread(task_thread_info(prev));
- next32 = is_compat_thread(task_thread_info(next));
-
- if (prev32 == next32 || !this_cpu_has_cap(ARM64_WORKAROUND_1418040))
+ if (!IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040) ||
+ !this_cpu_has_cap(ARM64_WORKAROUND_1418040))
return;
- val = read_sysreg(cntkctl_el1);
-
- if (!next32)
- val |= ARCH_TIMER_USR_VCT_ACCESS_EN;
+ if (is_compat_thread(task_thread_info(next)))
+ sysreg_clear_set(cntkctl_el1, ARCH_TIMER_USR_VCT_ACCESS_EN, 0);
else
- val &= ~ARCH_TIMER_USR_VCT_ACCESS_EN;
+ sysreg_clear_set(cntkctl_el1, 0, ARCH_TIMER_USR_VCT_ACCESS_EN);
+}
- write_sysreg(val, cntkctl_el1);
+static void erratum_1418040_new_exec(void)
+{
+ preempt_disable();
+ erratum_1418040_thread_switch(current);
+ preempt_enable();
}
/*
@@ -501,7 +493,7 @@ __notrace_funcgraph struct task_struct *__switch_to(struct task_struct *prev,
contextidr_thread_switch(next);
entry_task_switch(next);
ssbs_thread_switch(next);
- erratum_1418040_thread_switch(prev, next);
+ erratum_1418040_thread_switch(next);
ptrauth_thread_switch_user(next);
/*
@@ -611,6 +603,7 @@ void arch_setup_new_exec(void)
current->mm->context.flags = mmflags;
ptrauth_thread_init_user();
mte_thread_init_user();
+ erratum_1418040_new_exec();
if (task_spec_ssb_noexec(current)) {
arch_prctl_spec_ctrl_set(current, PR_SPEC_STORE_BYPASS,
diff --git a/arch/arm64/lib/clear_page.S b/arch/arm64/lib/clear_page.S
index b84b179edba3..1fd5d790ab80 100644
--- a/arch/arm64/lib/clear_page.S
+++ b/arch/arm64/lib/clear_page.S
@@ -16,6 +16,7 @@
*/
SYM_FUNC_START_PI(clear_page)
mrs x1, dczid_el0
+ tbnz x1, #4, 2f /* Branch if DC ZVA is prohibited */
and w1, w1, #0xf
mov x2, #4
lsl x1, x2, x1
@@ -25,5 +26,14 @@ SYM_FUNC_START_PI(clear_page)
tst x0, #(PAGE_SIZE - 1)
b.ne 1b
ret
+
+2: stnp xzr, xzr, [x0]
+ stnp xzr, xzr, [x0, #16]
+ stnp xzr, xzr, [x0, #32]
+ stnp xzr, xzr, [x0, #48]
+ add x0, x0, #64
+ tst x0, #(PAGE_SIZE - 1)
+ b.ne 2b
+ ret
SYM_FUNC_END_PI(clear_page)
EXPORT_SYMBOL(clear_page)
diff --git a/arch/arm64/lib/mte.S b/arch/arm64/lib/mte.S
index e83643b3995f..f531dcb95174 100644
--- a/arch/arm64/lib/mte.S
+++ b/arch/arm64/lib/mte.S
@@ -43,17 +43,23 @@ SYM_FUNC_END(mte_clear_page_tags)
* x0 - address to the beginning of the page
*/
SYM_FUNC_START(mte_zero_clear_page_tags)
+ and x0, x0, #(1 << MTE_TAG_SHIFT) - 1 // clear the tag
mrs x1, dczid_el0
+ tbnz x1, #4, 2f // Branch if DC GZVA is prohibited
and w1, w1, #0xf
mov x2, #4
lsl x1, x2, x1
- and x0, x0, #(1 << MTE_TAG_SHIFT) - 1 // clear the tag
1: dc gzva, x0
add x0, x0, x1
tst x0, #(PAGE_SIZE - 1)
b.ne 1b
ret
+
+2: stz2g x0, [x0], #(MTE_GRANULE_SIZE * 2)
+ tst x0, #(PAGE_SIZE - 1)
+ b.ne 2b
+ ret
SYM_FUNC_END(mte_zero_clear_page_tags)
/*
diff --git a/arch/arm64/net/bpf_jit_comp.c b/arch/arm64/net/bpf_jit_comp.c
index 3a8a7140a9bf..1090a957b3ab 100644
--- a/arch/arm64/net/bpf_jit_comp.c
+++ b/arch/arm64/net/bpf_jit_comp.c
@@ -287,13 +287,14 @@ static int emit_bpf_tail_call(struct jit_ctx *ctx)
emit(A64_CMP(0, r3, tmp), ctx);
emit(A64_B_(A64_COND_CS, jmp_offset), ctx);
- /* if (tail_call_cnt > MAX_TAIL_CALL_CNT)
+ /*
+ * if (tail_call_cnt >= MAX_TAIL_CALL_CNT)
* goto out;
* tail_call_cnt++;
*/
emit_a64_mov_i64(tmp, MAX_TAIL_CALL_CNT, ctx);
emit(A64_CMP(1, tcc, tmp), ctx);
- emit(A64_B_(A64_COND_HI, jmp_offset), ctx);
+ emit(A64_B_(A64_COND_CS, jmp_offset), ctx);
emit(A64_ADD_I(1, tcc, tcc, 1), ctx);
/* prog = array->ptrs[index];
@@ -791,7 +792,10 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx,
u64 imm64;
imm64 = (u64)insn1.imm << 32 | (u32)imm;
- emit_a64_mov_i64(dst, imm64, ctx);
+ if (bpf_pseudo_func(insn))
+ emit_addr_mov_i64(dst, imm64, ctx);
+ else
+ emit_a64_mov_i64(dst, imm64, ctx);
return 1;
}
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 0215dc1529e9..c5826236d913 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1907,6 +1907,10 @@ config SYS_HAS_CPU_MIPS64_R1
config SYS_HAS_CPU_MIPS64_R2
bool
+config SYS_HAS_CPU_MIPS64_R5
+ bool
+ select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
+
config SYS_HAS_CPU_MIPS64_R6
bool
select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
@@ -2065,7 +2069,7 @@ config CPU_SUPPORTS_ADDRWINCFG
bool
config CPU_SUPPORTS_HUGEPAGES
bool
- depends on !(32BIT && (ARCH_PHYS_ADDR_T_64BIT || EVA))
+ depends on !(32BIT && (PHYS_ADDR_T_64BIT || EVA))
config MIPS_PGD_C0_CONTEXT
bool
depends on 64BIT
diff --git a/arch/mips/bcm63xx/clk.c b/arch/mips/bcm63xx/clk.c
index 1c91064cb448..6e6756e8fa0a 100644
--- a/arch/mips/bcm63xx/clk.c
+++ b/arch/mips/bcm63xx/clk.c
@@ -387,6 +387,12 @@ struct clk *clk_get_parent(struct clk *clk)
}
EXPORT_SYMBOL(clk_get_parent);
+int clk_set_parent(struct clk *clk, struct clk *parent)
+{
+ return 0;
+}
+EXPORT_SYMBOL(clk_set_parent);
+
unsigned long clk_get_rate(struct clk *clk)
{
if (!clk)
diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile
index f27cf31b4140..38e233f7fd7a 100644
--- a/arch/mips/boot/compressed/Makefile
+++ b/arch/mips/boot/compressed/Makefile
@@ -52,7 +52,7 @@ endif
vmlinuzobjs-$(CONFIG_KERNEL_XZ) += $(obj)/ashldi3.o
-vmlinuzobjs-$(CONFIG_KERNEL_ZSTD) += $(obj)/bswapdi.o $(obj)/ashldi3.o
+vmlinuzobjs-$(CONFIG_KERNEL_ZSTD) += $(obj)/bswapdi.o $(obj)/ashldi3.o $(obj)/clz_ctz.o
targets := $(notdir $(vmlinuzobjs-y))
diff --git a/arch/mips/boot/compressed/clz_ctz.c b/arch/mips/boot/compressed/clz_ctz.c
new file mode 100644
index 000000000000..b4a1b6eb2f8a
--- /dev/null
+++ b/arch/mips/boot/compressed/clz_ctz.c
@@ -0,0 +1,2 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include "../../../../lib/clz_ctz.c"
diff --git a/arch/mips/cavium-octeon/octeon-platform.c b/arch/mips/cavium-octeon/octeon-platform.c
index d56e9b9d2e43..a994022e32c9 100644
--- a/arch/mips/cavium-octeon/octeon-platform.c
+++ b/arch/mips/cavium-octeon/octeon-platform.c
@@ -328,6 +328,7 @@ static int __init octeon_ehci_device_init(void)
pd->dev.platform_data = &octeon_ehci_pdata;
octeon_ehci_hw_start(&pd->dev);
+ put_device(&pd->dev);
return ret;
}
@@ -391,6 +392,7 @@ static int __init octeon_ohci_device_init(void)
pd->dev.platform_data = &octeon_ohci_pdata;
octeon_ohci_hw_start(&pd->dev);
+ put_device(&pd->dev);
return ret;
}
diff --git a/arch/mips/cavium-octeon/octeon-usb.c b/arch/mips/cavium-octeon/octeon-usb.c
index 6e4d3619137a..4df919d26b08 100644
--- a/arch/mips/cavium-octeon/octeon-usb.c
+++ b/arch/mips/cavium-octeon/octeon-usb.c
@@ -537,6 +537,7 @@ static int __init dwc3_octeon_device_init(void)
devm_iounmap(&pdev->dev, base);
devm_release_mem_region(&pdev->dev, res->start,
resource_size(res));
+ put_device(&pdev->dev);
}
} while (node != NULL);
diff --git a/arch/mips/configs/fuloong2e_defconfig b/arch/mips/configs/fuloong2e_defconfig
index 5c24ac7fdf56..ba47c5e929b7 100644
--- a/arch/mips/configs/fuloong2e_defconfig
+++ b/arch/mips/configs/fuloong2e_defconfig
@@ -206,7 +206,6 @@ CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_CIFS=m
CONFIG_CIFS_STATS2=y
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_DEBUG2=y
diff --git a/arch/mips/configs/malta_qemu_32r6_defconfig b/arch/mips/configs/malta_qemu_32r6_defconfig
index 614af02d83e6..6fb9bc29f4a0 100644
--- a/arch/mips/configs/malta_qemu_32r6_defconfig
+++ b/arch/mips/configs/malta_qemu_32r6_defconfig
@@ -165,7 +165,6 @@ CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/mips/configs/maltaaprp_defconfig b/arch/mips/configs/maltaaprp_defconfig
index 9c051f8fd330..eb72df528243 100644
--- a/arch/mips/configs/maltaaprp_defconfig
+++ b/arch/mips/configs/maltaaprp_defconfig
@@ -166,7 +166,6 @@ CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/mips/configs/maltasmvp_defconfig b/arch/mips/configs/maltasmvp_defconfig
index 2e90d97551d6..1fb40d310f49 100644
--- a/arch/mips/configs/maltasmvp_defconfig
+++ b/arch/mips/configs/maltasmvp_defconfig
@@ -167,7 +167,6 @@ CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/mips/configs/maltasmvp_eva_defconfig b/arch/mips/configs/maltasmvp_eva_defconfig
index d1f7fdb27284..75cb778c6149 100644
--- a/arch/mips/configs/maltasmvp_eva_defconfig
+++ b/arch/mips/configs/maltasmvp_eva_defconfig
@@ -169,7 +169,6 @@ CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/mips/configs/maltaup_defconfig b/arch/mips/configs/maltaup_defconfig
index 48e5bd492452..7b4f247dc60c 100644
--- a/arch/mips/configs/maltaup_defconfig
+++ b/arch/mips/configs/maltaup_defconfig
@@ -165,7 +165,6 @@ CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/mips/include/asm/local.h b/arch/mips/include/asm/local.h
index ecda7295ddcd..3fa634090388 100644
--- a/arch/mips/include/asm/local.h
+++ b/arch/mips/include/asm/local.h
@@ -5,6 +5,7 @@
#include <linux/percpu.h>
#include <linux/bitops.h>
#include <linux/atomic.h>
+#include <asm/asm.h>
#include <asm/cmpxchg.h>
#include <asm/compiler.h>
#include <asm/war.h>
@@ -39,7 +40,7 @@ static __inline__ long local_add_return(long i, local_t * l)
" .set arch=r4000 \n"
__SYNC(full, loongson3_war) " \n"
"1:" __LL "%1, %2 # local_add_return \n"
- " addu %0, %1, %3 \n"
+ __stringify(LONG_ADDU) " %0, %1, %3 \n"
__SC "%0, %2 \n"
" beqzl %0, 1b \n"
" addu %0, %1, %3 \n"
@@ -55,7 +56,7 @@ static __inline__ long local_add_return(long i, local_t * l)
" .set "MIPS_ISA_ARCH_LEVEL" \n"
__SYNC(full, loongson3_war) " \n"
"1:" __LL "%1, %2 # local_add_return \n"
- " addu %0, %1, %3 \n"
+ __stringify(LONG_ADDU) " %0, %1, %3 \n"
__SC "%0, %2 \n"
" beqz %0, 1b \n"
" addu %0, %1, %3 \n"
@@ -88,7 +89,7 @@ static __inline__ long local_sub_return(long i, local_t * l)
" .set arch=r4000 \n"
__SYNC(full, loongson3_war) " \n"
"1:" __LL "%1, %2 # local_sub_return \n"
- " subu %0, %1, %3 \n"
+ __stringify(LONG_SUBU) " %0, %1, %3 \n"
__SC "%0, %2 \n"
" beqzl %0, 1b \n"
" subu %0, %1, %3 \n"
@@ -104,7 +105,7 @@ static __inline__ long local_sub_return(long i, local_t * l)
" .set "MIPS_ISA_ARCH_LEVEL" \n"
__SYNC(full, loongson3_war) " \n"
"1:" __LL "%1, %2 # local_sub_return \n"
- " subu %0, %1, %3 \n"
+ __stringify(LONG_SUBU) " %0, %1, %3 \n"
__SC "%0, %2 \n"
" beqz %0, 1b \n"
" subu %0, %1, %3 \n"
diff --git a/arch/mips/include/asm/mach-loongson64/kernel-entry-init.h b/arch/mips/include/asm/mach-loongson64/kernel-entry-init.h
index 13373c5144f8..efb41b351974 100644
--- a/arch/mips/include/asm/mach-loongson64/kernel-entry-init.h
+++ b/arch/mips/include/asm/mach-loongson64/kernel-entry-init.h
@@ -32,7 +32,7 @@
nop
/* Loongson-3A R2/R3 */
andi t0, (PRID_IMP_MASK | PRID_REV_MASK)
- slti t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
+ slti t0, t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
bnez t0, 2f
nop
1:
@@ -63,7 +63,7 @@
nop
/* Loongson-3A R2/R3 */
andi t0, (PRID_IMP_MASK | PRID_REV_MASK)
- slti t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
+ slti t0, t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
bnez t0, 2f
nop
1:
diff --git a/arch/mips/include/asm/octeon/cvmx-bootinfo.h b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
index 0e6bf220db61..6c61e0a63924 100644
--- a/arch/mips/include/asm/octeon/cvmx-bootinfo.h
+++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
@@ -318,7 +318,7 @@ enum cvmx_chip_types_enum {
/* Functions to return string based on type */
#define ENUM_BRD_TYPE_CASE(x) \
- case x: return(#x + 16); /* Skip CVMX_BOARD_TYPE_ */
+ case x: return (&#x[16]); /* Skip CVMX_BOARD_TYPE_ */
static inline const char *cvmx_board_type_to_string(enum
cvmx_board_types_enum type)
{
@@ -410,7 +410,7 @@ static inline const char *cvmx_board_type_to_string(enum
}
#define ENUM_CHIP_TYPE_CASE(x) \
- case x: return(#x + 15); /* Skip CVMX_CHIP_TYPE */
+ case x: return (&#x[15]); /* Skip CVMX_CHIP_TYPE */
static inline const char *cvmx_chip_type_to_string(enum
cvmx_chip_types_enum type)
{
diff --git a/arch/mips/lantiq/clk.c b/arch/mips/lantiq/clk.c
index 4916cccf378f..7a623684d9b5 100644
--- a/arch/mips/lantiq/clk.c
+++ b/arch/mips/lantiq/clk.c
@@ -164,6 +164,12 @@ struct clk *clk_get_parent(struct clk *clk)
}
EXPORT_SYMBOL(clk_get_parent);
+int clk_set_parent(struct clk *clk, struct clk *parent)
+{
+ return 0;
+}
+EXPORT_SYMBOL(clk_set_parent);
+
static inline u32 get_counter_resolution(void)
{
u32 res;
diff --git a/arch/mips/net/bpf_jit_comp32.c b/arch/mips/net/bpf_jit_comp32.c
index bd996ede12f8..044b11b65bca 100644
--- a/arch/mips/net/bpf_jit_comp32.c
+++ b/arch/mips/net/bpf_jit_comp32.c
@@ -1381,8 +1381,7 @@ void build_prologue(struct jit_context *ctx)
* 16-byte area in the parent's stack frame. On a tail call, the
* calling function jumps into the prologue after these instructions.
*/
- emit(ctx, ori, MIPS_R_T9, MIPS_R_ZERO,
- min(MAX_TAIL_CALL_CNT + 1, 0xffff));
+ emit(ctx, ori, MIPS_R_T9, MIPS_R_ZERO, min(MAX_TAIL_CALL_CNT, 0xffff));
emit(ctx, sw, MIPS_R_T9, 0, MIPS_R_SP);
/*
diff --git a/arch/mips/net/bpf_jit_comp64.c b/arch/mips/net/bpf_jit_comp64.c
index 815ade724227..6475828ffb36 100644
--- a/arch/mips/net/bpf_jit_comp64.c
+++ b/arch/mips/net/bpf_jit_comp64.c
@@ -552,7 +552,7 @@ void build_prologue(struct jit_context *ctx)
* On a tail call, the calling function jumps into the prologue
* after this instruction.
*/
- emit(ctx, addiu, tc, MIPS_R_ZERO, min(MAX_TAIL_CALL_CNT + 1, 0xffff));
+ emit(ctx, ori, tc, MIPS_R_ZERO, min(MAX_TAIL_CALL_CNT, 0xffff));
/* === Entry-point for tail calls === */
diff --git a/arch/openrisc/include/asm/syscalls.h b/arch/openrisc/include/asm/syscalls.h
index 3a7eeae6f56a..aa1c7e98722e 100644
--- a/arch/openrisc/include/asm/syscalls.h
+++ b/arch/openrisc/include/asm/syscalls.h
@@ -22,9 +22,11 @@ asmlinkage long sys_or1k_atomic(unsigned long type, unsigned long *v1,
asmlinkage long __sys_clone(unsigned long clone_flags, unsigned long newsp,
void __user *parent_tid, void __user *child_tid, int tls);
+asmlinkage long __sys_clone3(struct clone_args __user *uargs, size_t size);
asmlinkage long __sys_fork(void);
#define sys_clone __sys_clone
+#define sys_clone3 __sys_clone3
#define sys_fork __sys_fork
#endif /* __ASM_OPENRISC_SYSCALLS_H */
diff --git a/arch/openrisc/kernel/entry.S b/arch/openrisc/kernel/entry.S
index 59c6d3aa7081..dc5b45e9e72b 100644
--- a/arch/openrisc/kernel/entry.S
+++ b/arch/openrisc/kernel/entry.S
@@ -1170,6 +1170,11 @@ ENTRY(__sys_clone)
l.j _fork_save_extra_regs_and_call
l.nop
+ENTRY(__sys_clone3)
+ l.movhi r29,hi(sys_clone3)
+ l.j _fork_save_extra_regs_and_call
+ l.ori r29,r29,lo(sys_clone3)
+
ENTRY(__sys_fork)
l.movhi r29,hi(sys_fork)
l.ori r29,r29,lo(sys_fork)
diff --git a/arch/parisc/include/asm/special_insns.h b/arch/parisc/include/asm/special_insns.h
index a303ae9a77f4..16ee41e77174 100644
--- a/arch/parisc/include/asm/special_insns.h
+++ b/arch/parisc/include/asm/special_insns.h
@@ -2,28 +2,32 @@
#ifndef __PARISC_SPECIAL_INSNS_H
#define __PARISC_SPECIAL_INSNS_H
-#define lpa(va) ({ \
- unsigned long pa; \
- __asm__ __volatile__( \
- "copy %%r0,%0\n\t" \
- "lpa %%r0(%1),%0" \
- : "=r" (pa) \
- : "r" (va) \
- : "memory" \
- ); \
- pa; \
+#define lpa(va) ({ \
+ unsigned long pa; \
+ __asm__ __volatile__( \
+ "copy %%r0,%0\n" \
+ "8:\tlpa %%r0(%1),%0\n" \
+ "9:\n" \
+ ASM_EXCEPTIONTABLE_ENTRY(8b, 9b) \
+ : "=&r" (pa) \
+ : "r" (va) \
+ : "memory" \
+ ); \
+ pa; \
})
-#define lpa_user(va) ({ \
- unsigned long pa; \
- __asm__ __volatile__( \
- "copy %%r0,%0\n\t" \
- "lpa %%r0(%%sr3,%1),%0" \
- : "=r" (pa) \
- : "r" (va) \
- : "memory" \
- ); \
- pa; \
+#define lpa_user(va) ({ \
+ unsigned long pa; \
+ __asm__ __volatile__( \
+ "copy %%r0,%0\n" \
+ "8:\tlpa %%r0(%%sr3,%1),%0\n" \
+ "9:\n" \
+ ASM_EXCEPTIONTABLE_ENTRY(8b, 9b) \
+ : "=&r" (pa) \
+ : "r" (va) \
+ : "memory" \
+ ); \
+ pa; \
})
#define mfctl(reg) ({ \
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
index 892b7fc8f3c4..eb41fece1910 100644
--- a/arch/parisc/kernel/traps.c
+++ b/arch/parisc/kernel/traps.c
@@ -785,7 +785,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
* unless pagefault_disable() was called before.
*/
- if (fault_space == 0 && !faulthandler_disabled())
+ if (faulthandler_disabled() || fault_space == 0)
{
/* Clean up and return if in exception table. */
if (fixup_exception(regs))
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
index c90702b04a53..48e5cd61599c 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
@@ -79,6 +79,7 @@ mdio0: mdio@fc000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xfc000 0x1000>;
+ fsl,erratum-a009885;
};
xmdio0: mdio@fd000 {
@@ -86,6 +87,7 @@ xmdio0: mdio@fd000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xfd000 0x1000>;
+ fsl,erratum-a009885;
};
};
diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/ppc6xx_defconfig
index 6697c5e6682f..bb549cb1c3e3 100644
--- a/arch/powerpc/configs/ppc6xx_defconfig
+++ b/arch/powerpc/configs/ppc6xx_defconfig
@@ -1022,7 +1022,6 @@ CONFIG_NFSD=m
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_UPCALL=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index de7641adb899..e64f2242abe1 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -189,7 +189,6 @@ CONFIG_HVCS=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_IBM_BSR=m
CONFIG_RAW_DRIVER=y
-CONFIG_MAX_RAW_DEVS=1024
CONFIG_I2C_CHARDEV=y
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h
index 21cc571ea9c2..5c98a950eca0 100644
--- a/arch/powerpc/include/asm/hw_irq.h
+++ b/arch/powerpc/include/asm/hw_irq.h
@@ -224,6 +224,42 @@ static inline bool arch_irqs_disabled(void)
return arch_irqs_disabled_flags(arch_local_save_flags());
}
+static inline void set_pmi_irq_pending(void)
+{
+ /*
+ * Invoked from PMU callback functions to set PMI bit in the paca.
+ * This has to be called with irq's disabled (via hard_irq_disable()).
+ */
+ if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG))
+ WARN_ON_ONCE(mfmsr() & MSR_EE);
+
+ get_paca()->irq_happened |= PACA_IRQ_PMI;
+}
+
+static inline void clear_pmi_irq_pending(void)
+{
+ /*
+ * Invoked from PMU callback functions to clear the pending PMI bit
+ * in the paca.
+ */
+ if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG))
+ WARN_ON_ONCE(mfmsr() & MSR_EE);
+
+ get_paca()->irq_happened &= ~PACA_IRQ_PMI;
+}
+
+static inline bool pmi_irq_pending(void)
+{
+ /*
+ * Invoked from PMU callback functions to check if there is a pending
+ * PMI bit in the paca.
+ */
+ if (get_paca()->irq_happened & PACA_IRQ_PMI)
+ return true;
+
+ return false;
+}
+
#ifdef CONFIG_PPC_BOOK3S
/*
* To support disabling and enabling of irq with PMI, set of
@@ -408,6 +444,10 @@ static inline void do_hard_irq_enable(void)
BUILD_BUG();
}
+static inline void clear_pmi_irq_pending(void) { }
+static inline void set_pmi_irq_pending(void) { }
+static inline bool pmi_irq_pending(void) { return false; }
+
static inline void irq_soft_mask_regs_set_state(struct pt_regs *regs, unsigned long val)
{
}
diff --git a/arch/powerpc/kernel/btext.c b/arch/powerpc/kernel/btext.c
index 803c2a45b22a..1cffb5e7c38d 100644
--- a/arch/powerpc/kernel/btext.c
+++ b/arch/powerpc/kernel/btext.c
@@ -241,8 +241,10 @@ int __init btext_find_display(int allow_nonstdout)
rc = btext_initialize(np);
printk("result: %d\n", rc);
}
- if (rc == 0)
+ if (rc == 0) {
+ of_node_put(np);
break;
+ }
}
return rc;
}
diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index b7ceb041743c..60f5fc14aa23 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -1641,6 +1641,14 @@ int __init setup_fadump(void)
else if (fw_dump.reserve_dump_area_size)
fw_dump.ops->fadump_init_mem_struct(&fw_dump);
+ /*
+ * In case of panic, fadump is triggered via ppc_panic_event()
+ * panic notifier. Setting crash_kexec_post_notifiers to 'true'
+ * lets panic() function take crash friendly path before panic
+ * notifiers are invoked.
+ */
+ crash_kexec_post_notifiers = true;
+
return 1;
}
subsys_initcall(setup_fadump);
diff --git a/arch/powerpc/kernel/head_40x.S b/arch/powerpc/kernel/head_40x.S
index 7d72ee5ab387..e783860bea83 100644
--- a/arch/powerpc/kernel/head_40x.S
+++ b/arch/powerpc/kernel/head_40x.S
@@ -27,6 +27,7 @@
#include <linux/init.h>
#include <linux/pgtable.h>
+#include <linux/sizes.h>
#include <asm/processor.h>
#include <asm/page.h>
#include <asm/mmu.h>
@@ -650,7 +651,7 @@ start_here:
b . /* prevent prefetch past rfi */
/* Set up the initial MMU state so we can do the first level of
- * kernel initialization. This maps the first 16 MBytes of memory 1:1
+ * kernel initialization. This maps the first 32 MBytes of memory 1:1
* virtual to physical and more importantly sets the cache mode.
*/
initial_mmu:
@@ -687,6 +688,12 @@ initial_mmu:
tlbwe r4,r0,TLB_DATA /* Load the data portion of the entry */
tlbwe r3,r0,TLB_TAG /* Load the tag portion of the entry */
+ li r0,62 /* TLB slot 62 */
+ addis r4,r4,SZ_16M@h
+ addis r3,r3,SZ_16M@h
+ tlbwe r4,r0,TLB_DATA /* Load the data portion of the entry */
+ tlbwe r3,r0,TLB_TAG /* Load the tag portion of the entry */
+
isync
/* Establish the exception vector base
diff --git a/arch/powerpc/kernel/interrupt.c b/arch/powerpc/kernel/interrupt.c
index 835b626cd476..df048e331cbf 100644
--- a/arch/powerpc/kernel/interrupt.c
+++ b/arch/powerpc/kernel/interrupt.c
@@ -148,7 +148,7 @@ notrace long system_call_exception(long r3, long r4, long r5,
*/
if (IS_ENABLED(CONFIG_PPC_TRANSACTIONAL_MEM) &&
unlikely(MSR_TM_TRANSACTIONAL(regs->msr)))
- current_thread_info()->flags |= _TIF_RESTOREALL;
+ set_bits(_TIF_RESTOREALL, ¤t_thread_info()->flags);
/*
* If the system call was made with a transaction active, doom it and
diff --git a/arch/powerpc/kernel/interrupt_64.S b/arch/powerpc/kernel/interrupt_64.S
index ec950b08a8dc..4b1ff94e67eb 100644
--- a/arch/powerpc/kernel/interrupt_64.S
+++ b/arch/powerpc/kernel/interrupt_64.S
@@ -30,21 +30,23 @@ COMPAT_SYS_CALL_TABLE:
.ifc \srr,srr
mfspr r11,SPRN_SRR0
ld r12,_NIP(r1)
+ clrrdi r12,r12,2
100: tdne r11,r12
- EMIT_BUG_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
+ EMIT_WARN_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
mfspr r11,SPRN_SRR1
ld r12,_MSR(r1)
100: tdne r11,r12
- EMIT_BUG_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
+ EMIT_WARN_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
.else
mfspr r11,SPRN_HSRR0
ld r12,_NIP(r1)
+ clrrdi r12,r12,2
100: tdne r11,r12
- EMIT_BUG_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
+ EMIT_WARN_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
mfspr r11,SPRN_HSRR1
ld r12,_MSR(r1)
100: tdne r11,r12
- EMIT_BUG_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
+ EMIT_WARN_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
.endif
#endif
.endm
diff --git a/arch/powerpc/kernel/module.c b/arch/powerpc/kernel/module.c
index ed04a3ba66fe..40a583e9d3c7 100644
--- a/arch/powerpc/kernel/module.c
+++ b/arch/powerpc/kernel/module.c
@@ -90,16 +90,17 @@ int module_finalize(const Elf_Ehdr *hdr,
}
static __always_inline void *
-__module_alloc(unsigned long size, unsigned long start, unsigned long end)
+__module_alloc(unsigned long size, unsigned long start, unsigned long end, bool nowarn)
{
pgprot_t prot = strict_module_rwx_enabled() ? PAGE_KERNEL : PAGE_KERNEL_EXEC;
+ gfp_t gfp = GFP_KERNEL | (nowarn ? __GFP_NOWARN : 0);
/*
* Don't do huge page allocations for modules yet until more testing
* is done. STRICT_MODULE_RWX may require extra work to support this
* too.
*/
- return __vmalloc_node_range(size, 1, start, end, GFP_KERNEL, prot,
+ return __vmalloc_node_range(size, 1, start, end, gfp, prot,
VM_FLUSH_RESET_PERMS | VM_NO_HUGE_VMAP,
NUMA_NO_NODE, __builtin_return_address(0));
}
@@ -114,13 +115,13 @@ void *module_alloc(unsigned long size)
/* First try within 32M limit from _etext to avoid branch trampolines */
if (MODULES_VADDR < PAGE_OFFSET && MODULES_END > limit)
- ptr = __module_alloc(size, limit, MODULES_END);
+ ptr = __module_alloc(size, limit, MODULES_END, true);
if (!ptr)
- ptr = __module_alloc(size, MODULES_VADDR, MODULES_END);
+ ptr = __module_alloc(size, MODULES_VADDR, MODULES_END, false);
return ptr;
#else
- return __module_alloc(size, VMALLOC_START, VMALLOC_END);
+ return __module_alloc(size, VMALLOC_START, VMALLOC_END, false);
#endif
}
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index 18b04b08b983..f845065c860e 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -2991,7 +2991,7 @@ static void __init fixup_device_tree_efika_add_phy(void)
/* Check if the phy-handle property exists - bail if it does */
rv = prom_getprop(node, "phy-handle", prop, sizeof(prop));
- if (!rv)
+ if (rv <= 0)
return;
/*
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index c23ee842c4c3..c338f9d8ab37 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -61,6 +61,7 @@
#include <asm/cpu_has_feature.h>
#include <asm/ftrace.h>
#include <asm/kup.h>
+#include <asm/fadump.h>
#ifdef DEBUG
#include <asm/udbg.h>
@@ -620,6 +621,45 @@ void crash_send_ipi(void (*crash_ipi_callback)(struct pt_regs *))
}
#endif
+#ifdef CONFIG_NMI_IPI
+static void crash_stop_this_cpu(struct pt_regs *regs)
+#else
+static void crash_stop_this_cpu(void *dummy)
+#endif
+{
+ /*
+ * Just busy wait here and avoid marking CPU as offline to ensure
+ * register data is captured appropriately.
+ */
+ while (1)
+ cpu_relax();
+}
+
+void crash_smp_send_stop(void)
+{
+ static bool stopped = false;
+
+ /*
+ * In case of fadump, register data for all CPUs is captured by f/w
+ * on ibm,os-term rtas call. Skip IPI callbacks to other CPUs before
+ * this rtas call to avoid tricky post processing of those CPUs'
+ * backtraces.
+ */
+ if (should_fadump_crash())
+ return;
+
+ if (stopped)
+ return;
+
+ stopped = true;
+
+#ifdef CONFIG_NMI_IPI
+ smp_send_nmi_ipi(NMI_IPI_ALL_OTHERS, crash_stop_this_cpu, 1000000);
+#else
+ smp_call_function(crash_stop_this_cpu, NULL, 0);
+#endif /* CONFIG_NMI_IPI */
+}
+
#ifdef CONFIG_NMI_IPI
static void nmi_stop_this_cpu(struct pt_regs *regs)
{
@@ -1635,10 +1675,12 @@ void start_secondary(void *unused)
BUG();
}
+#ifdef CONFIG_PROFILING
int setup_profiling_timer(unsigned int multiplier)
{
return 0;
}
+#endif
static void fixup_topology(void)
{
diff --git a/arch/powerpc/kernel/watchdog.c b/arch/powerpc/kernel/watchdog.c
index 3fa6d240bade..ad94a2c6b733 100644
--- a/arch/powerpc/kernel/watchdog.c
+++ b/arch/powerpc/kernel/watchdog.c
@@ -135,6 +135,10 @@ static void set_cpumask_stuck(const struct cpumask *cpumask, u64 tb)
{
cpumask_or(&wd_smp_cpus_stuck, &wd_smp_cpus_stuck, cpumask);
cpumask_andnot(&wd_smp_cpus_pending, &wd_smp_cpus_pending, cpumask);
+ /*
+ * See wd_smp_clear_cpu_pending()
+ */
+ smp_mb();
if (cpumask_empty(&wd_smp_cpus_pending)) {
wd_smp_last_reset_tb = tb;
cpumask_andnot(&wd_smp_cpus_pending,
@@ -221,13 +225,44 @@ static void wd_smp_clear_cpu_pending(int cpu, u64 tb)
cpumask_clear_cpu(cpu, &wd_smp_cpus_stuck);
wd_smp_unlock(&flags);
+ } else {
+ /*
+ * The last CPU to clear pending should have reset the
+ * watchdog so we generally should not find it empty
+ * here if our CPU was clear. However it could happen
+ * due to a rare race with another CPU taking the
+ * last CPU out of the mask concurrently.
+ *
+ * We can't add a warning for it. But just in case
+ * there is a problem with the watchdog that is causing
+ * the mask to not be reset, try to kick it along here.
+ */
+ if (unlikely(cpumask_empty(&wd_smp_cpus_pending)))
+ goto none_pending;
}
return;
}
+
cpumask_clear_cpu(cpu, &wd_smp_cpus_pending);
+
+ /*
+ * Order the store to clear pending with the load(s) to check all
+ * words in the pending mask to check they are all empty. This orders
+ * with the same barrier on another CPU. This prevents two CPUs
+ * clearing the last 2 pending bits, but neither seeing the other's
+ * store when checking if the mask is empty, and missing an empty
+ * mask, which ends with a false positive.
+ */
+ smp_mb();
if (cpumask_empty(&wd_smp_cpus_pending)) {
unsigned long flags;
+none_pending:
+ /*
+ * Double check under lock because more than one CPU could see
+ * a clear mask with the lockless check after clearing their
+ * pending bits.
+ */
wd_smp_lock(&flags);
if (cpumask_empty(&wd_smp_cpus_pending)) {
wd_smp_last_reset_tb = tb;
@@ -318,8 +353,12 @@ void arch_touch_nmi_watchdog(void)
{
unsigned long ticks = tb_ticks_per_usec * wd_timer_period_ms * 1000;
int cpu = smp_processor_id();
- u64 tb = get_tb();
+ u64 tb;
+ if (!cpumask_test_cpu(cpu, &watchdog_cpumask))
+ return;
+
+ tb = get_tb();
if (tb - per_cpu(wd_timer_tb, cpu) >= ticks) {
per_cpu(wd_timer_tb, cpu) = tb;
wd_smp_clear_cpu_pending(cpu, tb);
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 7b74fc0a986b..94da0d25eb12 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -4861,8 +4861,12 @@ static int kvmppc_core_prepare_memory_region_hv(struct kvm *kvm,
unsigned long npages = mem->memory_size >> PAGE_SHIFT;
if (change == KVM_MR_CREATE) {
- slot->arch.rmap = vzalloc(array_size(npages,
- sizeof(*slot->arch.rmap)));
+ unsigned long size = array_size(npages, sizeof(*slot->arch.rmap));
+
+ if ((size >> PAGE_SHIFT) > totalram_pages())
+ return -ENOMEM;
+
+ slot->arch.rmap = vzalloc(size);
if (!slot->arch.rmap)
return -ENOMEM;
}
diff --git a/arch/powerpc/kvm/book3s_hv_nested.c b/arch/powerpc/kvm/book3s_hv_nested.c
index ed8a2c9f5629..89295b52a97c 100644
--- a/arch/powerpc/kvm/book3s_hv_nested.c
+++ b/arch/powerpc/kvm/book3s_hv_nested.c
@@ -582,7 +582,7 @@ long kvmhv_copy_tofrom_guest_nested(struct kvm_vcpu *vcpu)
if (eaddr & (0xFFFUL << 52))
return H_PARAMETER;
- buf = kzalloc(n, GFP_KERNEL);
+ buf = kzalloc(n, GFP_KERNEL | __GFP_NOWARN);
if (!buf)
return H_NO_MEM;
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index 3a600bd7fbc6..2a3d5fb8201c 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -1100,7 +1100,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_huge(*pud)) {
+ if (pud_is_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1147,7 +1147,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_huge(*pmd)) {
+ if (pmd_is_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/kasan/book3s_32.c b/arch/powerpc/mm/kasan/book3s_32.c
index 202bd260a009..35b287b0a8da 100644
--- a/arch/powerpc/mm/kasan/book3s_32.c
+++ b/arch/powerpc/mm/kasan/book3s_32.c
@@ -19,7 +19,8 @@ int __init kasan_init_region(void *start, size_t size)
block = memblock_alloc(k_size, k_size_base);
if (block && k_size_base >= SZ_128K && k_start == ALIGN(k_start, k_size_base)) {
- int k_size_more = 1 << (ffs(k_size - k_size_base) - 1);
+ int shift = ffs(k_size - k_size_base);
+ int k_size_more = shift ? 1 << (shift - 1) : 0;
setbat(-1, k_start, __pa(block), k_size_base, PAGE_KERNEL);
if (k_size_more >= SZ_128K)
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 78c8cf01db5f..175aabf101e8 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -102,7 +102,8 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
struct page *p4d_page(p4d_t p4d)
{
if (p4d_is_leaf(p4d)) {
- VM_WARN_ON(!p4d_huge(p4d));
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
}
return virt_to_page(p4d_pgtable(p4d));
@@ -112,7 +113,8 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
if (pud_is_leaf(pud)) {
- VM_WARN_ON(!pud_huge(pud));
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
}
return virt_to_page(pud_pgtable(pud));
@@ -125,7 +127,13 @@ struct page *pud_page(pud_t pud)
struct page *pmd_page(pmd_t pmd)
{
if (pmd_is_leaf(pmd)) {
- VM_WARN_ON(!(pmd_large(pmd) || pmd_huge(pmd)));
+ /*
+ * vmalloc_to_page may be called on any vmap address (not only
+ * vmalloc), and it uses pmd_page() etc., when huge vmap is
+ * enabled so these checks can't be used.
+ */
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!(pmd_large(pmd) || pmd_huge(pmd)));
return pte_page(pmd_pte(pmd));
}
return virt_to_page(pmd_page_vaddr(pmd));
diff --git a/arch/powerpc/net/bpf_jit_comp32.c b/arch/powerpc/net/bpf_jit_comp32.c
index 0da31d41d413..8a4faa05f9e4 100644
--- a/arch/powerpc/net/bpf_jit_comp32.c
+++ b/arch/powerpc/net/bpf_jit_comp32.c
@@ -221,13 +221,13 @@ static int bpf_jit_emit_tail_call(u32 *image, struct codegen_context *ctx, u32 o
PPC_BCC(COND_GE, out);
/*
- * if (tail_call_cnt > MAX_TAIL_CALL_CNT)
+ * if (tail_call_cnt >= MAX_TAIL_CALL_CNT)
* goto out;
*/
EMIT(PPC_RAW_CMPLWI(_R0, MAX_TAIL_CALL_CNT));
/* tail_call_cnt++; */
EMIT(PPC_RAW_ADDIC(_R0, _R0, 1));
- PPC_BCC(COND_GT, out);
+ PPC_BCC(COND_GE, out);
/* prog = array->ptrs[index]; */
EMIT(PPC_RAW_RLWINM(_R3, b2p_index, 2, 0, 29));
diff --git a/arch/powerpc/net/bpf_jit_comp64.c b/arch/powerpc/net/bpf_jit_comp64.c
index 8b5157ccfeba..8571aafcc9e1 100644
--- a/arch/powerpc/net/bpf_jit_comp64.c
+++ b/arch/powerpc/net/bpf_jit_comp64.c
@@ -228,12 +228,12 @@ static int bpf_jit_emit_tail_call(u32 *image, struct codegen_context *ctx, u32 o
PPC_BCC(COND_GE, out);
/*
- * if (tail_call_cnt > MAX_TAIL_CALL_CNT)
+ * if (tail_call_cnt >= MAX_TAIL_CALL_CNT)
* goto out;
*/
PPC_BPF_LL(b2p[TMP_REG_1], 1, bpf_jit_stack_tailcallcnt(ctx));
EMIT(PPC_RAW_CMPLWI(b2p[TMP_REG_1], MAX_TAIL_CALL_CNT));
- PPC_BCC(COND_GT, out);
+ PPC_BCC(COND_GE, out);
/*
* tail_call_cnt++;
diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c
index 73e62e9b179b..bef6b1abce70 100644
--- a/arch/powerpc/perf/core-book3s.c
+++ b/arch/powerpc/perf/core-book3s.c
@@ -857,6 +857,19 @@ static void write_pmc(int idx, unsigned long val)
}
}
+static int any_pmc_overflown(struct cpu_hw_events *cpuhw)
+{
+ int i, idx;
+
+ for (i = 0; i < cpuhw->n_events; i++) {
+ idx = cpuhw->event[i]->hw.idx;
+ if ((idx) && ((int)read_pmc(idx) < 0))
+ return idx;
+ }
+
+ return 0;
+}
+
/* Called from sysrq_handle_showregs() */
void perf_event_print_debug(void)
{
@@ -1281,11 +1294,13 @@ static void power_pmu_disable(struct pmu *pmu)
/*
* Set the 'freeze counters' bit, clear EBE/BHRBA/PMCC/PMAO/FC56
+ * Also clear PMXE to disable PMI's getting triggered in some
+ * corner cases during PMU disable.
*/
val = mmcr0 = mfspr(SPRN_MMCR0);
val |= MMCR0_FC;
val &= ~(MMCR0_EBE | MMCR0_BHRBA | MMCR0_PMCC | MMCR0_PMAO |
- MMCR0_FC56);
+ MMCR0_PMXE | MMCR0_FC56);
/* Set mmcr0 PMCCEXT for p10 */
if (ppmu->flags & PPMU_ARCH_31)
val |= MMCR0_PMCCEXT;
@@ -1299,6 +1314,23 @@ static void power_pmu_disable(struct pmu *pmu)
mb();
isync();
+ /*
+ * Some corner cases could clear the PMU counter overflow
+ * while a masked PMI is pending. One such case is when
+ * a PMI happens during interrupt replay and perf counter
+ * values are cleared by PMU callbacks before replay.
+ *
+ * If any PMC corresponding to the active PMU events are
+ * overflown, disable the interrupt by clearing the paca
+ * bit for PMI since we are disabling the PMU now.
+ * Otherwise provide a warning if there is PMI pending, but
+ * no counter is found overflown.
+ */
+ if (any_pmc_overflown(cpuhw))
+ clear_pmi_irq_pending();
+ else
+ WARN_ON(pmi_irq_pending());
+
val = mmcra = cpuhw->mmcr.mmcra;
/*
@@ -1390,6 +1422,15 @@ static void power_pmu_enable(struct pmu *pmu)
* (possibly updated for removal of events).
*/
if (!cpuhw->n_added) {
+ /*
+ * If there is any active event with an overflown PMC
+ * value, set back PACA_IRQ_PMI which would have been
+ * cleared in power_pmu_disable().
+ */
+ hard_irq_disable();
+ if (any_pmc_overflown(cpuhw))
+ set_pmi_irq_pending();
+
mtspr(SPRN_MMCRA, cpuhw->mmcr.mmcra & ~MMCRA_SAMPLE_ENABLE);
mtspr(SPRN_MMCR1, cpuhw->mmcr.mmcr1);
if (ppmu->flags & PPMU_ARCH_31)
@@ -2337,6 +2378,14 @@ static void __perf_event_interrupt(struct pt_regs *regs)
break;
}
}
+
+ /*
+ * Clear PACA_IRQ_PMI in case it was set by
+ * set_pmi_irq_pending() when PMU was enabled
+ * after accounting for interrupts.
+ */
+ clear_pmi_irq_pending();
+
if (!active)
/* reset non active counters that have overflowed */
write_pmc(i + 1, 0);
@@ -2356,6 +2405,13 @@ static void __perf_event_interrupt(struct pt_regs *regs)
}
}
}
+
+ /*
+ * During system wide profling or while specific CPU is monitored for an
+ * event, some corner cases could cause PMC to overflow in idle path. This
+ * will trigger a PMI after waking up from idle. Since counter values are _not_
+ * saved/restored in idle path, can lead to below "Can't find PMC" message.
+ */
if (unlikely(!found) && !arch_irq_disabled_regs(regs))
printk_ratelimited(KERN_WARNING "Can't find PMC that caused IRQ\n");
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c
index fa08699aedeb..d32f24de8479 100644
--- a/arch/powerpc/platforms/cell/iommu.c
+++ b/arch/powerpc/platforms/cell/iommu.c
@@ -977,6 +977,7 @@ static int __init cell_iommu_fixed_mapping_init(void)
if (hbase < dbase || (hend > (dbase + dsize))) {
pr_debug("iommu: hash window doesn't fit in"
"real DMA window\n");
+ of_node_put(np);
return -1;
}
}
diff --git a/arch/powerpc/platforms/cell/pervasive.c b/arch/powerpc/platforms/cell/pervasive.c
index 5b9a7e9f144b..dff8d5e7ab82 100644
--- a/arch/powerpc/platforms/cell/pervasive.c
+++ b/arch/powerpc/platforms/cell/pervasive.c
@@ -78,6 +78,7 @@ static int cbe_system_reset_exception(struct pt_regs *regs)
switch (regs->msr & SRR1_WAKEMASK) {
case SRR1_WAKEDEC:
set_dec(1);
+ break;
case SRR1_WAKEEE:
/*
* Handle these when interrupts get re-enabled and we take
diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
index 15396333a90b..a4b020e4b6af 100644
--- a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
+++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
@@ -214,6 +214,7 @@ void hlwd_pic_probe(void)
irq_set_chained_handler(cascade_virq,
hlwd_pic_irq_cascade);
hlwd_irq_host = host;
+ of_node_put(np);
break;
}
}
diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c
index f77a59b5c2e1..df89d916236d 100644
--- a/arch/powerpc/platforms/powermac/low_i2c.c
+++ b/arch/powerpc/platforms/powermac/low_i2c.c
@@ -582,6 +582,7 @@ static void __init kw_i2c_add(struct pmac_i2c_host_kw *host,
bus->close = kw_i2c_close;
bus->xfer = kw_i2c_xfer;
mutex_init(&bus->mutex);
+ lockdep_register_key(&bus->lock_key);
lockdep_set_class(&bus->mutex, &bus->lock_key);
if (controller == busnode)
bus->flags = pmac_i2c_multibus;
@@ -810,6 +811,7 @@ static void __init pmu_i2c_probe(void)
bus->hostdata = bus + 1;
bus->xfer = pmu_i2c_xfer;
mutex_init(&bus->mutex);
+ lockdep_register_key(&bus->lock_key);
lockdep_set_class(&bus->mutex, &bus->lock_key);
bus->flags = pmac_i2c_multibus;
list_add(&bus->link, &pmac_i2c_busses);
@@ -933,6 +935,7 @@ static void __init smu_i2c_probe(void)
bus->hostdata = bus + 1;
bus->xfer = smu_i2c_xfer;
mutex_init(&bus->mutex);
+ lockdep_register_key(&bus->lock_key);
lockdep_set_class(&bus->mutex, &bus->lock_key);
bus->flags = 0;
list_add(&bus->link, &pmac_i2c_busses);
diff --git a/arch/powerpc/platforms/powernv/opal-lpc.c b/arch/powerpc/platforms/powernv/opal-lpc.c
index 1e5d51db40f8..5390c888db16 100644
--- a/arch/powerpc/platforms/powernv/opal-lpc.c
+++ b/arch/powerpc/platforms/powernv/opal-lpc.c
@@ -396,6 +396,7 @@ void __init opal_lpc_init(void)
if (!of_get_property(np, "primary", NULL))
continue;
opal_lpc_chip_id = of_get_ibm_chip_id(np);
+ of_node_put(np);
break;
}
if (opal_lpc_chip_id < 0)
diff --git a/arch/powerpc/sysdev/xive/spapr.c b/arch/powerpc/sysdev/xive/spapr.c
index f143b6f111ac..1179632560b8 100644
--- a/arch/powerpc/sysdev/xive/spapr.c
+++ b/arch/powerpc/sysdev/xive/spapr.c
@@ -653,6 +653,9 @@ static int xive_spapr_debug_show(struct seq_file *m, void *private)
struct xive_irq_bitmap *xibm;
char *buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
+ if (!buf)
+ return -ENOMEM;
+
list_for_each_entry(xibm, &xive_irq_bitmaps, list) {
memset(buf, 0, PAGE_SIZE);
bitmap_print_to_pagebuf(true, buf, xibm->bitmap, xibm->count);
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 821252b65f89..7a68a4106e5a 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -158,10 +158,9 @@ config PA_BITS
config PAGE_OFFSET
hex
- default 0xC0000000 if 32BIT && MAXPHYSMEM_1GB
+ default 0xC0000000 if 32BIT
default 0x80000000 if 64BIT && !MMU
- default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
- default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
+ default 0xffffffe000000000 if 64BIT
config KASAN_SHADOW_OFFSET
hex
@@ -270,24 +269,6 @@ config MODULE_SECTIONS
bool
select HAVE_MOD_ARCH_SPECIFIC
-choice
- prompt "Maximum Physical Memory"
- default MAXPHYSMEM_1GB if 32BIT
- default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
- default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
-
- config MAXPHYSMEM_1GB
- depends on 32BIT
- bool "1GiB"
- config MAXPHYSMEM_2GB
- depends on 64BIT && CMODEL_MEDLOW
- bool "2GiB"
- config MAXPHYSMEM_128GB
- depends on 64BIT && CMODEL_MEDANY
- bool "128GiB"
-endchoice
-
-
config SMP
bool "Symmetric Multi-Processing"
help
diff --git a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
index c9f6d205d2ba..794da883acb1 100644
--- a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
+++ b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
@@ -9,9 +9,6 @@ / {
model = "Microchip PolarFire SoC";
compatible = "microchip,mpfs";
- chosen {
- };
-
cpus {
#address-cells = <1>;
#size-cells = <0>;
diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
index ef473e2f503b..11de2ab9ed6e 100644
--- a/arch/riscv/configs/defconfig
+++ b/arch/riscv/configs/defconfig
@@ -78,6 +78,7 @@ CONFIG_DRM=m
CONFIG_DRM_RADEON=m
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_VIRTIO_GPU=m
+CONFIG_FB=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
diff --git a/arch/riscv/configs/nommu_k210_defconfig b/arch/riscv/configs/nommu_k210_defconfig
index b16a2a12c82a..3b9f83221f9c 100644
--- a/arch/riscv/configs/nommu_k210_defconfig
+++ b/arch/riscv/configs/nommu_k210_defconfig
@@ -29,8 +29,6 @@ CONFIG_EMBEDDED=y
CONFIG_SLOB=y
# CONFIG_MMU is not set
CONFIG_SOC_CANAAN=y
-CONFIG_SOC_CANAAN_K210_DTB_SOURCE="k210_generic"
-CONFIG_MAXPHYSMEM_2GB=y
CONFIG_SMP=y
CONFIG_NR_CPUS=2
CONFIG_CMDLINE="earlycon console=ttySIF0"
diff --git a/arch/riscv/configs/nommu_k210_sdcard_defconfig b/arch/riscv/configs/nommu_k210_sdcard_defconfig
index 61f887f65419..d68b743d580f 100644
--- a/arch/riscv/configs/nommu_k210_sdcard_defconfig
+++ b/arch/riscv/configs/nommu_k210_sdcard_defconfig
@@ -21,8 +21,6 @@ CONFIG_EMBEDDED=y
CONFIG_SLOB=y
# CONFIG_MMU is not set
CONFIG_SOC_CANAAN=y
-CONFIG_SOC_CANAAN_K210_DTB_SOURCE="k210_generic"
-CONFIG_MAXPHYSMEM_2GB=y
CONFIG_SMP=y
CONFIG_NR_CPUS=2
CONFIG_CMDLINE="earlycon console=ttySIF0 rootdelay=2 root=/dev/mmcblk0p1 ro"
diff --git a/arch/riscv/configs/nommu_virt_defconfig b/arch/riscv/configs/nommu_virt_defconfig
index e046a0babde4..f224be697785 100644
--- a/arch/riscv/configs/nommu_virt_defconfig
+++ b/arch/riscv/configs/nommu_virt_defconfig
@@ -27,7 +27,6 @@ CONFIG_SLOB=y
# CONFIG_SLAB_MERGE_DEFAULT is not set
# CONFIG_MMU is not set
CONFIG_SOC_VIRT=y
-CONFIG_MAXPHYSMEM_2GB=y
CONFIG_SMP=y
CONFIG_CMDLINE="root=/dev/vda rw earlycon=uart8250,mmio,0x10000000,115200n8 console=ttyS0"
CONFIG_CMDLINE_FORCE=y
diff --git a/arch/riscv/configs/rv32_defconfig b/arch/riscv/configs/rv32_defconfig
index 6e9f12ff968a..05b6f17adbc1 100644
--- a/arch/riscv/configs/rv32_defconfig
+++ b/arch/riscv/configs/rv32_defconfig
@@ -73,6 +73,7 @@ CONFIG_POWER_RESET=y
CONFIG_DRM=y
CONFIG_DRM_RADEON=y
CONFIG_DRM_VIRTIO_GPU=y
+CONFIG_FB=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
diff --git a/arch/riscv/include/asm/smp.h b/arch/riscv/include/asm/smp.h
index a7d2811f3536..62d0e6e61da8 100644
--- a/arch/riscv/include/asm/smp.h
+++ b/arch/riscv/include/asm/smp.h
@@ -43,7 +43,6 @@ void arch_send_call_function_ipi_mask(struct cpumask *mask);
void arch_send_call_function_single_ipi(int cpu);
int riscv_hartid_to_cpuid(int hartid);
-void riscv_cpuid_to_hartid_mask(const struct cpumask *in, struct cpumask *out);
/* Set custom IPI operations */
void riscv_set_ipi_ops(const struct riscv_ipi_ops *ops);
@@ -85,13 +84,6 @@ static inline unsigned long cpuid_to_hartid_map(int cpu)
return boot_cpu_hartid;
}
-static inline void riscv_cpuid_to_hartid_mask(const struct cpumask *in,
- struct cpumask *out)
-{
- cpumask_clear(out);
- cpumask_set_cpu(boot_cpu_hartid, out);
-}
-
static inline void riscv_set_ipi_ops(const struct riscv_ipi_ops *ops)
{
}
@@ -102,6 +94,8 @@ static inline void riscv_clear_ipi(void)
#endif /* CONFIG_SMP */
+void riscv_cpuid_to_hartid_mask(const struct cpumask *in, struct cpumask *out);
+
#if defined(CONFIG_HOTPLUG_CPU) && (CONFIG_SMP)
bool cpu_has_hotplug(unsigned int cpu);
#else
diff --git a/arch/riscv/kernel/kexec_relocate.S b/arch/riscv/kernel/kexec_relocate.S
index a80b52a74f58..059c5e216ae7 100644
--- a/arch/riscv/kernel/kexec_relocate.S
+++ b/arch/riscv/kernel/kexec_relocate.S
@@ -159,25 +159,15 @@ SYM_CODE_START(riscv_kexec_norelocate)
* s0: (const) Phys address to jump to
* s1: (const) Phys address of the FDT image
* s2: (const) The hartid of the current hart
- * s3: (const) kernel_map.va_pa_offset, used when switching MMU off
*/
mv s0, a1
mv s1, a2
mv s2, a3
- mv s3, a4
/* Disable / cleanup interrupts */
csrw CSR_SIE, zero
csrw CSR_SIP, zero
- /* Switch to physical addressing */
- la s4, 1f
- sub s4, s4, s3
- csrw CSR_STVEC, s4
- csrw CSR_SATP, zero
-
-.align 2
-1:
/* Pass the arguments to the next kernel / Cleanup*/
mv a0, s2
mv a1, s1
@@ -214,7 +204,15 @@ SYM_CODE_START(riscv_kexec_norelocate)
csrw CSR_SCAUSE, zero
csrw CSR_SSCRATCH, zero
- jalr zero, a2, 0
+ /*
+ * Switch to physical addressing
+ * This will also trigger a jump to CSR_STVEC
+ * which in this case is the address of the new
+ * kernel.
+ */
+ csrw CSR_STVEC, a2
+ csrw CSR_SATP, zero
+
SYM_CODE_END(riscv_kexec_norelocate)
.section ".rodata"
diff --git a/arch/riscv/kernel/machine_kexec.c b/arch/riscv/kernel/machine_kexec.c
index e6eca271a4d6..cbef0fc73afa 100644
--- a/arch/riscv/kernel/machine_kexec.c
+++ b/arch/riscv/kernel/machine_kexec.c
@@ -169,7 +169,8 @@ machine_kexec(struct kimage *image)
struct kimage_arch *internal = &image->arch;
unsigned long jump_addr = (unsigned long) image->start;
unsigned long first_ind_entry = (unsigned long) &image->head;
- unsigned long this_hart_id = raw_smp_processor_id();
+ unsigned long this_cpu_id = smp_processor_id();
+ unsigned long this_hart_id = cpuid_to_hartid_map(this_cpu_id);
unsigned long fdt_addr = internal->fdt_addr;
void *control_code_buffer = page_address(image->control_code_page);
riscv_kexec_method kexec_method = NULL;
diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c
index b42bfdc67482..63241abe84eb 100644
--- a/arch/riscv/kernel/setup.c
+++ b/arch/riscv/kernel/setup.c
@@ -59,6 +59,16 @@ atomic_t hart_lottery __section(".sdata")
unsigned long boot_cpu_hartid;
static DEFINE_PER_CPU(struct cpu, cpu_devices);
+void riscv_cpuid_to_hartid_mask(const struct cpumask *in, struct cpumask *out)
+{
+ int cpu;
+
+ cpumask_clear(out);
+ for_each_cpu(cpu, in)
+ cpumask_set_cpu(cpuid_to_hartid_map(cpu), out);
+}
+EXPORT_SYMBOL_GPL(riscv_cpuid_to_hartid_mask);
+
/*
* Place kernel memory regions on the resource tree so that
* kexec-tools can retrieve them from /proc/iomem. While there
diff --git a/arch/riscv/kernel/smp.c b/arch/riscv/kernel/smp.c
index 2f6da845c9ae..b5d30ea92292 100644
--- a/arch/riscv/kernel/smp.c
+++ b/arch/riscv/kernel/smp.c
@@ -59,16 +59,6 @@ int riscv_hartid_to_cpuid(int hartid)
return -ENOENT;
}
-void riscv_cpuid_to_hartid_mask(const struct cpumask *in, struct cpumask *out)
-{
- int cpu;
-
- cpumask_clear(out);
- for_each_cpu(cpu, in)
- cpumask_set_cpu(cpuid_to_hartid_map(cpu), out);
-}
-EXPORT_SYMBOL_GPL(riscv_cpuid_to_hartid_mask);
-
bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
{
return phys_id == cpuid_to_hartid_map(cpu);
diff --git a/arch/riscv/kvm/main.c b/arch/riscv/kvm/main.c
index 421ecf4e6360..2e5ca43c8c49 100644
--- a/arch/riscv/kvm/main.c
+++ b/arch/riscv/kvm/main.c
@@ -58,6 +58,14 @@ int kvm_arch_hardware_enable(void)
void kvm_arch_hardware_disable(void)
{
+ /*
+ * After clearing the hideleg CSR, the host kernel will receive
+ * spurious interrupts if hvip CSR has pending interrupts and the
+ * corresponding enable bits in vsie CSR are asserted. To avoid it,
+ * hvip CSR and vsie CSR must be cleared before clearing hideleg CSR.
+ */
+ csr_write(CSR_VSIE, 0);
+ csr_write(CSR_HVIP, 0);
csr_write(CSR_HEDELEG, 0);
csr_write(CSR_HIDELEG, 0);
}
diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
index 24b2b8044602..6fd7532aeab9 100644
--- a/arch/riscv/mm/init.c
+++ b/arch/riscv/mm/init.c
@@ -187,10 +187,10 @@ static void __init setup_bootmem(void)
phys_ram_end = memblock_end_of_DRAM();
-#ifndef CONFIG_64BIT
#ifndef CONFIG_XIP_KERNEL
phys_ram_base = memblock_start_of_DRAM();
#endif
+#ifndef CONFIG_64BIT
/*
* memblock allocator is not aware of the fact that last 4K bytes of
* the addressable memory can not be mapped because of IS_ERR_VALUE
@@ -812,13 +812,22 @@ static void __init reserve_crashkernel(void)
/*
* Current riscv boot protocol requires 2MB alignment for
* RV64 and 4MB alignment for RV32 (hugepage size)
+ *
+ * Try to alloc from 32bit addressible physical memory so that
+ * swiotlb can work on the crash kernel.
*/
crash_base = memblock_phys_alloc_range(crash_size, PMD_SIZE,
- search_start, search_end);
+ search_start,
+ min(search_end, (unsigned long) SZ_4G));
if (crash_base == 0) {
- pr_warn("crashkernel: couldn't allocate %lldKB\n",
- crash_size >> 10);
- return;
+ /* Try again without restricting region to 32bit addressible memory */
+ crash_base = memblock_phys_alloc_range(crash_size, PMD_SIZE,
+ search_start, search_end);
+ if (crash_base == 0) {
+ pr_warn("crashkernel: couldn't allocate %lldKB\n",
+ crash_size >> 10);
+ return;
+ }
}
pr_info("crashkernel: reserved 0x%016llx - 0x%016llx (%lld MB)\n",
diff --git a/arch/riscv/net/bpf_jit_comp32.c b/arch/riscv/net/bpf_jit_comp32.c
index e6497424cbf6..529a83b85c1c 100644
--- a/arch/riscv/net/bpf_jit_comp32.c
+++ b/arch/riscv/net/bpf_jit_comp32.c
@@ -799,11 +799,10 @@ static int emit_bpf_tail_call(int insn, struct rv_jit_context *ctx)
emit_bcc(BPF_JGE, lo(idx_reg), RV_REG_T1, off, ctx);
/*
- * temp_tcc = tcc - 1;
- * if (tcc < 0)
+ * if (--tcc < 0)
* goto out;
*/
- emit(rv_addi(RV_REG_T1, RV_REG_TCC, -1), ctx);
+ emit(rv_addi(RV_REG_TCC, RV_REG_TCC, -1), ctx);
off = ninsns_rvoff(tc_ninsn - (ctx->ninsns - start_insn));
emit_bcc(BPF_JSLT, RV_REG_TCC, RV_REG_ZERO, off, ctx);
@@ -829,7 +828,6 @@ static int emit_bpf_tail_call(int insn, struct rv_jit_context *ctx)
if (is_12b_check(off, insn))
return -1;
emit(rv_lw(RV_REG_T0, off, RV_REG_T0), ctx);
- emit(rv_addi(RV_REG_TCC, RV_REG_T1, 0), ctx);
/* Epilogue jumps to *(t0 + 4). */
__build_epilogue(true, ctx);
return 0;
diff --git a/arch/riscv/net/bpf_jit_comp64.c b/arch/riscv/net/bpf_jit_comp64.c
index f2a779c7e225..603630b6f3c5 100644
--- a/arch/riscv/net/bpf_jit_comp64.c
+++ b/arch/riscv/net/bpf_jit_comp64.c
@@ -327,12 +327,12 @@ static int emit_bpf_tail_call(int insn, struct rv_jit_context *ctx)
off = ninsns_rvoff(tc_ninsn - (ctx->ninsns - start_insn));
emit_branch(BPF_JGE, RV_REG_A2, RV_REG_T1, off, ctx);
- /* if (TCC-- < 0)
+ /* if (--TCC < 0)
* goto out;
*/
- emit_addi(RV_REG_T1, tcc, -1, ctx);
+ emit_addi(RV_REG_TCC, tcc, -1, ctx);
off = ninsns_rvoff(tc_ninsn - (ctx->ninsns - start_insn));
- emit_branch(BPF_JSLT, tcc, RV_REG_ZERO, off, ctx);
+ emit_branch(BPF_JSLT, RV_REG_TCC, RV_REG_ZERO, off, ctx);
/* prog = array->ptrs[index];
* if (!prog)
@@ -352,7 +352,6 @@ static int emit_bpf_tail_call(int insn, struct rv_jit_context *ctx)
if (is_12b_check(off, insn))
return -1;
emit_ld(RV_REG_T3, off, RV_REG_T2, ctx);
- emit_mv(RV_REG_TCC, RV_REG_T1, ctx);
__build_epilogue(true, ctx);
return 0;
}
diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
index b01ba460b7ca..d52d85367bf7 100644
--- a/arch/s390/kernel/module.c
+++ b/arch/s390/kernel/module.c
@@ -37,14 +37,15 @@
void *module_alloc(unsigned long size)
{
+ gfp_t gfp_mask = GFP_KERNEL;
void *p;
if (PAGE_ALIGN(size) > MODULES_LEN)
return NULL;
p = __vmalloc_node_range(size, MODULE_ALIGN, MODULES_VADDR, MODULES_END,
- GFP_KERNEL, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
+ gfp_mask, PAGE_KERNEL_EXEC, VM_DEFER_KMEMLEAK, NUMA_NO_NODE,
__builtin_return_address(0));
- if (p && (kasan_module_alloc(p, size) < 0)) {
+ if (p && (kasan_module_alloc(p, size, gfp_mask) < 0)) {
vfree(p);
return NULL;
}
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index ef299aad4009..8fc9c79c899b 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -3449,7 +3449,7 @@ bool kvm_arch_no_poll(struct kvm_vcpu *vcpu)
{
/* do not poll with more than halt_poll_max_steal percent of steal time */
if (S390_lowcore.avg_steal_timer * 100 / (TICK_USEC << 12) >=
- halt_poll_max_steal) {
+ READ_ONCE(halt_poll_max_steal)) {
vcpu->stat.halt_no_poll_steal++;
return true;
}
diff --git a/arch/s390/mm/pgalloc.c b/arch/s390/mm/pgalloc.c
index 781965f7210e..91e478e09b54 100644
--- a/arch/s390/mm/pgalloc.c
+++ b/arch/s390/mm/pgalloc.c
@@ -244,13 +244,15 @@ void page_table_free(struct mm_struct *mm, unsigned long *table)
/* Free 2K page table fragment of a 4K page */
bit = ((unsigned long) table & ~PAGE_MASK)/(PTRS_PER_PTE*sizeof(pte_t));
spin_lock_bh(&mm->context.lock);
- mask = atomic_xor_bits(&page->_refcount, 1U << (bit + 24));
+ mask = atomic_xor_bits(&page->_refcount, 0x11U << (bit + 24));
mask >>= 24;
if (mask & 3)
list_add(&page->lru, &mm->context.pgtable_list);
else
list_del(&page->lru);
spin_unlock_bh(&mm->context.lock);
+ mask = atomic_xor_bits(&page->_refcount, 0x10U << (bit + 24));
+ mask >>= 24;
if (mask != 0)
return;
} else {
diff --git a/arch/s390/net/bpf_jit_comp.c b/arch/s390/net/bpf_jit_comp.c
index 233cc9bcd652..9ff2bd83aad7 100644
--- a/arch/s390/net/bpf_jit_comp.c
+++ b/arch/s390/net/bpf_jit_comp.c
@@ -1369,7 +1369,7 @@ static noinline int bpf_jit_insn(struct bpf_jit *jit, struct bpf_prog *fp,
jit->prg);
/*
- * if (tail_call_cnt++ > MAX_TAIL_CALL_CNT)
+ * if (tail_call_cnt++ >= MAX_TAIL_CALL_CNT)
* goto out;
*/
@@ -1381,9 +1381,9 @@ static noinline int bpf_jit_insn(struct bpf_jit *jit, struct bpf_prog *fp,
EMIT4_IMM(0xa7080000, REG_W0, 1);
/* laal %w1,%w0,off(%r15) */
EMIT6_DISP_LH(0xeb000000, 0x00fa, REG_W1, REG_W0, REG_15, off);
- /* clij %w1,MAX_TAIL_CALL_CNT,0x2,out */
+ /* clij %w1,MAX_TAIL_CALL_CNT-1,0x2,out */
patch_2_clij = jit->prg;
- EMIT6_PCREL_RIEC(0xec000000, 0x007f, REG_W1, MAX_TAIL_CALL_CNT,
+ EMIT6_PCREL_RIEC(0xec000000, 0x007f, REG_W1, MAX_TAIL_CALL_CNT - 1,
2, jit->prg);
/*
diff --git a/arch/sh/configs/titan_defconfig b/arch/sh/configs/titan_defconfig
index ba887f1351be..cd5c58916c65 100644
--- a/arch/sh/configs/titan_defconfig
+++ b/arch/sh/configs/titan_defconfig
@@ -242,7 +242,6 @@ CONFIG_NFSD=y
CONFIG_NFSD_V3=y
CONFIG_SMB_FS=m
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_ASCII=m
diff --git a/arch/sparc/net/bpf_jit_comp_64.c b/arch/sparc/net/bpf_jit_comp_64.c
index 9a2f20cbd48b..0bfe1c72a0c9 100644
--- a/arch/sparc/net/bpf_jit_comp_64.c
+++ b/arch/sparc/net/bpf_jit_comp_64.c
@@ -867,7 +867,7 @@ static void emit_tail_call(struct jit_ctx *ctx)
emit(LD32 | IMMED | RS1(SP) | S13(off) | RD(tmp), ctx);
emit_cmpi(tmp, MAX_TAIL_CALL_CNT, ctx);
#define OFFSET2 13
- emit_branch(BGU, ctx->idx, ctx->idx + OFFSET2, ctx);
+ emit_branch(BGEU, ctx->idx, ctx->idx + OFFSET2, ctx);
emit_nop(ctx);
emit_alu_K(ADD, tmp, 1, ctx);
diff --git a/arch/um/.gitignore b/arch/um/.gitignore
index 6323e5571887..d69ea5b562ce 100644
--- a/arch/um/.gitignore
+++ b/arch/um/.gitignore
@@ -2,3 +2,4 @@
kernel/config.c
kernel/config.tmp
kernel/vmlinux.lds
+kernel/capflags.c
diff --git a/arch/um/drivers/virt-pci.c b/arch/um/drivers/virt-pci.c
index c08066633023..0ab58016db22 100644
--- a/arch/um/drivers/virt-pci.c
+++ b/arch/um/drivers/virt-pci.c
@@ -181,15 +181,15 @@ static unsigned long um_pci_cfgspace_read(void *priv, unsigned int offset,
/* buf->data is maximum size - we may only use parts of it */
struct um_pci_message_buffer *buf;
u8 *data;
- unsigned long ret = ~0ULL;
+ unsigned long ret = ULONG_MAX;
if (!dev)
- return ~0ULL;
+ return ULONG_MAX;
buf = get_cpu_var(um_pci_msg_bufs);
data = buf->data;
- memset(data, 0xff, sizeof(data));
+ memset(buf->data, 0xff, sizeof(buf->data));
switch (size) {
case 1:
@@ -304,7 +304,7 @@ static unsigned long um_pci_bar_read(void *priv, unsigned int offset,
/* buf->data is maximum size - we may only use parts of it */
struct um_pci_message_buffer *buf;
u8 *data;
- unsigned long ret = ~0ULL;
+ unsigned long ret = ULONG_MAX;
buf = get_cpu_var(um_pci_msg_bufs);
data = buf->data;
diff --git a/arch/um/drivers/virtio_uml.c b/arch/um/drivers/virtio_uml.c
index d51e445df797..7755cb4ff9fc 100644
--- a/arch/um/drivers/virtio_uml.c
+++ b/arch/um/drivers/virtio_uml.c
@@ -1090,6 +1090,8 @@ static void virtio_uml_release_dev(struct device *d)
container_of(d, struct virtio_device, dev);
struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
+ time_travel_propagate_time();
+
/* might not have been opened due to not negotiating the feature */
if (vu_dev->req_fd >= 0) {
um_free_irq(vu_dev->irq, vu_dev);
@@ -1136,6 +1138,8 @@ static int virtio_uml_probe(struct platform_device *pdev)
vu_dev->pdev = pdev;
vu_dev->req_fd = -1;
+ time_travel_propagate_time();
+
do {
rc = os_connect_socket(pdata->socket_path);
} while (rc == -EINTR);
diff --git a/arch/um/include/asm/delay.h b/arch/um/include/asm/delay.h
index 56fc2b8f2dd0..e79b2ab6f40c 100644
--- a/arch/um/include/asm/delay.h
+++ b/arch/um/include/asm/delay.h
@@ -14,7 +14,7 @@ static inline void um_ndelay(unsigned long nsecs)
ndelay(nsecs);
}
#undef ndelay
-#define ndelay um_ndelay
+#define ndelay(n) um_ndelay(n)
static inline void um_udelay(unsigned long usecs)
{
@@ -26,5 +26,5 @@ static inline void um_udelay(unsigned long usecs)
udelay(usecs);
}
#undef udelay
-#define udelay um_udelay
+#define udelay(n) um_udelay(n)
#endif /* __UM_DELAY_H */
diff --git a/arch/um/include/asm/irqflags.h b/arch/um/include/asm/irqflags.h
index dab5744e9253..1e69ef5bc35e 100644
--- a/arch/um/include/asm/irqflags.h
+++ b/arch/um/include/asm/irqflags.h
@@ -3,7 +3,7 @@
#define __UM_IRQFLAGS_H
extern int signals_enabled;
-int set_signals(int enable);
+int um_set_signals(int enable);
void block_signals(void);
void unblock_signals(void);
@@ -16,7 +16,7 @@ static inline unsigned long arch_local_save_flags(void)
#define arch_local_irq_restore arch_local_irq_restore
static inline void arch_local_irq_restore(unsigned long flags)
{
- set_signals(flags);
+ um_set_signals(flags);
}
#define arch_local_irq_enable arch_local_irq_enable
diff --git a/arch/um/include/shared/longjmp.h b/arch/um/include/shared/longjmp.h
index bdb2869b72b3..8863319039f3 100644
--- a/arch/um/include/shared/longjmp.h
+++ b/arch/um/include/shared/longjmp.h
@@ -18,7 +18,7 @@ extern void longjmp(jmp_buf, int);
enable = *(volatile int *)&signals_enabled; \
n = setjmp(*buf); \
if(n != 0) \
- set_signals_trace(enable); \
+ um_set_signals_trace(enable); \
n; })
#endif
diff --git a/arch/um/include/shared/os.h b/arch/um/include/shared/os.h
index 96d400387c93..03ffbdddcc48 100644
--- a/arch/um/include/shared/os.h
+++ b/arch/um/include/shared/os.h
@@ -238,8 +238,8 @@ extern void send_sigio_to_self(void);
extern int change_sig(int signal, int on);
extern void block_signals(void);
extern void unblock_signals(void);
-extern int set_signals(int enable);
-extern int set_signals_trace(int enable);
+extern int um_set_signals(int enable);
+extern int um_set_signals_trace(int enable);
extern int os_is_signal_stack(void);
extern void deliver_alarm(void);
extern void register_pm_wake_signal(void);
diff --git a/arch/um/include/shared/registers.h b/arch/um/include/shared/registers.h
index 0c50fa6e8a55..fbb709a22283 100644
--- a/arch/um/include/shared/registers.h
+++ b/arch/um/include/shared/registers.h
@@ -16,8 +16,8 @@ extern int restore_fp_registers(int pid, unsigned long *fp_regs);
extern int save_fpx_registers(int pid, unsigned long *fp_regs);
extern int restore_fpx_registers(int pid, unsigned long *fp_regs);
extern int save_registers(int pid, struct uml_pt_regs *regs);
-extern int restore_registers(int pid, struct uml_pt_regs *regs);
-extern int init_registers(int pid);
+extern int restore_pid_registers(int pid, struct uml_pt_regs *regs);
+extern int init_pid_registers(int pid);
extern void get_safe_registers(unsigned long *regs, unsigned long *fp_regs);
extern unsigned long get_thread_reg(int reg, jmp_buf *buf);
extern int get_fp_registers(int pid, unsigned long *regs);
diff --git a/arch/um/kernel/ksyms.c b/arch/um/kernel/ksyms.c
index b1e5634398d0..3a85bde3e173 100644
--- a/arch/um/kernel/ksyms.c
+++ b/arch/um/kernel/ksyms.c
@@ -6,7 +6,7 @@
#include <linux/module.h>
#include <os.h>
-EXPORT_SYMBOL(set_signals);
+EXPORT_SYMBOL(um_set_signals);
EXPORT_SYMBOL(signals_enabled);
EXPORT_SYMBOL(os_stat_fd);
diff --git a/arch/um/os-Linux/registers.c b/arch/um/os-Linux/registers.c
index 2d9270508e15..b123955be7ac 100644
--- a/arch/um/os-Linux/registers.c
+++ b/arch/um/os-Linux/registers.c
@@ -21,7 +21,7 @@ int save_registers(int pid, struct uml_pt_regs *regs)
return 0;
}
-int restore_registers(int pid, struct uml_pt_regs *regs)
+int restore_pid_registers(int pid, struct uml_pt_regs *regs)
{
int err;
@@ -36,7 +36,7 @@ int restore_registers(int pid, struct uml_pt_regs *regs)
static unsigned long exec_regs[MAX_REG_NR];
static unsigned long exec_fp_regs[FP_SIZE];
-int init_registers(int pid)
+int init_pid_registers(int pid)
{
int err;
diff --git a/arch/um/os-Linux/sigio.c b/arch/um/os-Linux/sigio.c
index 6597ea1986ff..9e71794839e8 100644
--- a/arch/um/os-Linux/sigio.c
+++ b/arch/um/os-Linux/sigio.c
@@ -132,7 +132,7 @@ static void update_thread(void)
int n;
char c;
- flags = set_signals_trace(0);
+ flags = um_set_signals_trace(0);
CATCH_EINTR(n = write(sigio_private[0], &c, sizeof(c)));
if (n != sizeof(c)) {
printk(UM_KERN_ERR "update_thread : write failed, err = %d\n",
@@ -147,7 +147,7 @@ static void update_thread(void)
goto fail;
}
- set_signals_trace(flags);
+ um_set_signals_trace(flags);
return;
fail:
/* Critical section start */
@@ -161,7 +161,7 @@ static void update_thread(void)
close(write_sigio_fds[0]);
close(write_sigio_fds[1]);
/* Critical section end */
- set_signals_trace(flags);
+ um_set_signals_trace(flags);
}
int __add_sigio_fd(int fd)
diff --git a/arch/um/os-Linux/signal.c b/arch/um/os-Linux/signal.c
index 6cf098c23a39..24a403a70a02 100644
--- a/arch/um/os-Linux/signal.c
+++ b/arch/um/os-Linux/signal.c
@@ -94,7 +94,7 @@ void sig_handler(int sig, struct siginfo *si, mcontext_t *mc)
sig_handler_common(sig, si, mc);
- set_signals_trace(enabled);
+ um_set_signals_trace(enabled);
}
static void timer_real_alarm_handler(mcontext_t *mc)
@@ -126,7 +126,7 @@ void timer_alarm_handler(int sig, struct siginfo *unused_si, mcontext_t *mc)
signals_active &= ~SIGALRM_MASK;
- set_signals_trace(enabled);
+ um_set_signals_trace(enabled);
}
void deliver_alarm(void) {
@@ -348,7 +348,7 @@ void unblock_signals(void)
}
}
-int set_signals(int enable)
+int um_set_signals(int enable)
{
int ret;
if (signals_enabled == enable)
@@ -362,7 +362,7 @@ int set_signals(int enable)
return ret;
}
-int set_signals_trace(int enable)
+int um_set_signals_trace(int enable)
{
int ret;
if (signals_enabled == enable)
diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c
index 8a72c99994eb..e3ee4db58b40 100644
--- a/arch/um/os-Linux/start_up.c
+++ b/arch/um/os-Linux/start_up.c
@@ -368,7 +368,7 @@ void __init os_early_checks(void)
check_tmpexec();
pid = start_ptraced_child();
- if (init_registers(pid))
+ if (init_pid_registers(pid))
fatal("Failed to initialize default registers");
stop_ptraced_child(pid, 1, 1);
}
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
index 431bf7f846c3..e11813646051 100644
--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -28,7 +28,11 @@ KCOV_INSTRUMENT := n
targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
vmlinux.bin.xz vmlinux.bin.lzo vmlinux.bin.lz4 vmlinux.bin.zst
-KBUILD_CFLAGS := -m$(BITS) -O2
+# CLANG_FLAGS must come before any cc-disable-warning or cc-option calls in
+# case of cross compiling, as it has the '--target=' flag, which is needed to
+# avoid errors with '-march=i386', and future flags may depend on the target to
+# be valid.
+KBUILD_CFLAGS := -m$(BITS) -O2 $(CLANG_FLAGS)
KBUILD_CFLAGS += -fno-strict-aliasing -fPIE
KBUILD_CFLAGS += -Wundef
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
@@ -47,7 +51,6 @@ KBUILD_CFLAGS += -D__DISABLE_EXPORTS
# Disable relocation relaxation in case the link is not PIE.
KBUILD_CFLAGS += $(call as-option,-Wa$(comma)-mrelax-relocations=no)
KBUILD_CFLAGS += -include $(srctree)/include/linux/hidden.h
-KBUILD_CFLAGS += $(CLANG_FLAGS)
# sev.c indirectly inludes inat-table.h which is generated during
# compilation and stored in $(objtree). Add the directory to the includes so
diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig
index e81885384f60..99398cbdae43 100644
--- a/arch/x86/configs/i386_defconfig
+++ b/arch/x86/configs/i386_defconfig
@@ -262,3 +262,4 @@ CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_DEBUG_BOOT_PARAMS=y
+CONFIG_KALLSYMS_ALL=y
diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig
index e8a7a0af2bda..d7298b104a45 100644
--- a/arch/x86/configs/x86_64_defconfig
+++ b/arch/x86/configs/x86_64_defconfig
@@ -258,3 +258,4 @@ CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_DEBUG_BOOT_PARAMS=y
+CONFIG_KALLSYMS_ALL=y
diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c
index e09f4672dd38..41901ba9d3a2 100644
--- a/arch/x86/crypto/aesni-intel_glue.c
+++ b/arch/x86/crypto/aesni-intel_glue.c
@@ -1107,7 +1107,7 @@ static struct aead_alg aesni_aeads[] = { {
.cra_flags = CRYPTO_ALG_INTERNAL,
.cra_blocksize = 1,
.cra_ctxsize = sizeof(struct aesni_rfc4106_gcm_ctx),
- .cra_alignmask = AESNI_ALIGN - 1,
+ .cra_alignmask = 0,
.cra_module = THIS_MODULE,
},
}, {
@@ -1124,7 +1124,7 @@ static struct aead_alg aesni_aeads[] = { {
.cra_flags = CRYPTO_ALG_INTERNAL,
.cra_blocksize = 1,
.cra_ctxsize = sizeof(struct generic_gcmaes_ctx),
- .cra_alignmask = AESNI_ALIGN - 1,
+ .cra_alignmask = 0,
.cra_module = THIS_MODULE,
},
} };
diff --git a/arch/x86/hyperv/mmu.c b/arch/x86/hyperv/mmu.c
index bd13736d0c05..0ad2378fe6ad 100644
--- a/arch/x86/hyperv/mmu.c
+++ b/arch/x86/hyperv/mmu.c
@@ -68,15 +68,6 @@ static void hyperv_flush_tlb_multi(const struct cpumask *cpus,
local_irq_save(flags);
- /*
- * Only check the mask _after_ interrupt has been disabled to avoid the
- * mask changing under our feet.
- */
- if (cpumask_empty(cpus)) {
- local_irq_restore(flags);
- return;
- }
-
flush_pcpu = (struct hv_tlb_flush **)
this_cpu_ptr(hyperv_pcpu_input_arg);
@@ -115,7 +106,9 @@ static void hyperv_flush_tlb_multi(const struct cpumask *cpus,
* must. We will also check all VP numbers when walking the
* supplied CPU set to remain correct in all cases.
*/
- if (hv_cpu_number_to_vp_number(cpumask_last(cpus)) >= 64)
+ cpu = cpumask_last(cpus);
+
+ if (cpu < nr_cpumask_bits && hv_cpu_number_to_vp_number(cpu) >= 64)
goto do_ex_hypercall;
for_each_cpu(cpu, cpus) {
@@ -131,6 +124,12 @@ static void hyperv_flush_tlb_multi(const struct cpumask *cpus,
__set_bit(vcpu, (unsigned long *)
&flush->processor_mask);
}
+
+ /* nothing to flush if 'processor_mask' ends up being empty */
+ if (!flush->processor_mask) {
+ local_irq_restore(flags);
+ return;
+ }
}
/*
diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h
index 5db5d083c873..331474b150f1 100644
--- a/arch/x86/include/asm/realmode.h
+++ b/arch/x86/include/asm/realmode.h
@@ -89,6 +89,7 @@ static inline void set_real_mode_mem(phys_addr_t mem)
}
void reserve_real_mode(void);
+void load_trampoline_pgtable(void);
#endif /* __ASSEMBLY__ */
diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h
index cc164777e661..2f0b6be8eaab 100644
--- a/arch/x86/include/asm/topology.h
+++ b/arch/x86/include/asm/topology.h
@@ -221,7 +221,7 @@ static inline void arch_set_max_freq_ratio(bool turbo_disabled)
}
#endif
-#ifdef CONFIG_ACPI_CPPC_LIB
+#if defined(CONFIG_ACPI_CPPC_LIB) && defined(CONFIG_SMP)
void init_freq_invariance_cppc(void);
#define init_freq_invariance_cppc init_freq_invariance_cppc
#endif
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index 33a68407def3..8ab9e79abb2b 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -314,11 +314,12 @@ do { \
do { \
__chk_user_ptr(ptr); \
switch (size) { \
- unsigned char x_u8__; \
- case 1: \
+ case 1: { \
+ unsigned char x_u8__; \
__get_user_asm(x_u8__, ptr, "b", "=q", label); \
(x) = x_u8__; \
break; \
+ } \
case 2: \
__get_user_asm(x, ptr, "w", "=r", label); \
break; \
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 6ed365337a3b..69fd51a29278 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -267,11 +267,17 @@ static void wait_for_panic(void)
panic("Panicing machine check CPU died");
}
-static void mce_panic(const char *msg, struct mce *final, char *exp)
+static noinstr void mce_panic(const char *msg, struct mce *final, char *exp)
{
- int apei_err = 0;
struct llist_node *pending;
struct mce_evt_llist *l;
+ int apei_err = 0;
+
+ /*
+ * Allow instrumentation around external facilities usage. Not that it
+ * matters a whole lot since the machine is going to panic anyway.
+ */
+ instrumentation_begin();
if (!fake_panic) {
/*
@@ -286,7 +292,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
} else {
/* Don't log too much for fake panic */
if (atomic_inc_return(&mce_fake_panicked) > 1)
- return;
+ goto out;
}
pending = mce_gen_pool_prepare_records();
/* First print corrected ones that are still unlogged */
@@ -324,6 +330,9 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
panic(msg);
} else
pr_emerg(HW_ERR "Fake kernel panic: %s\n", msg);
+
+out:
+ instrumentation_end();
}
/* Support code for software error injection */
@@ -636,7 +645,7 @@ static struct notifier_block mce_default_nb = {
/*
* Read ADDR and MISC registers.
*/
-static void mce_read_aux(struct mce *m, int i)
+static noinstr void mce_read_aux(struct mce *m, int i)
{
if (m->status & MCI_STATUS_MISCV)
m->misc = mce_rdmsrl(mca_msr_reg(i, MCA_MISC));
@@ -1054,10 +1063,13 @@ static int mce_start(int *no_way_out)
* Synchronize between CPUs after main scanning loop.
* This invokes the bulk of the Monarch processing.
*/
-static int mce_end(int order)
+static noinstr int mce_end(int order)
{
- int ret = -1;
u64 timeout = (u64)mca_cfg.monarch_timeout * NSEC_PER_USEC;
+ int ret = -1;
+
+ /* Allow instrumentation around external facilities. */
+ instrumentation_begin();
if (!timeout)
goto reset;
@@ -1101,7 +1113,8 @@ static int mce_end(int order)
/*
* Don't reset anything. That's done by the Monarch.
*/
- return 0;
+ ret = 0;
+ goto out;
}
/*
@@ -1117,6 +1130,10 @@ static int mce_end(int order)
* Let others run again.
*/
atomic_set(&mce_executing, 0);
+
+out:
+ instrumentation_end();
+
return ret;
}
@@ -1454,6 +1471,14 @@ noinstr void do_machine_check(struct pt_regs *regs)
if (worst != MCE_AR_SEVERITY && !kill_current_task)
goto out;
+ /*
+ * Enable instrumentation around the external facilities like
+ * task_work_add() (via queue_task_work()), fixup_exception() etc.
+ * For now, that is. Fixing this properly would need a lot more involved
+ * reorganization.
+ */
+ instrumentation_begin();
+
/* Fault was in user mode and we need to take some action */
if ((m.cs & 3) == 3) {
/* If this triggers there is no way to recover. Die hard. */
@@ -1482,6 +1507,9 @@ noinstr void do_machine_check(struct pt_regs *regs)
if (m.kflags & MCE_IN_KERNEL_COPYIN)
queue_task_work(&m, msg, kill_me_never);
}
+
+ instrumentation_end();
+
out:
mce_wrmsrl(MSR_IA32_MCG_STATUS, 0);
}
diff --git a/arch/x86/kernel/cpu/mce/inject.c b/arch/x86/kernel/cpu/mce/inject.c
index 0bfc14041bbb..b63b548497c1 100644
--- a/arch/x86/kernel/cpu/mce/inject.c
+++ b/arch/x86/kernel/cpu/mce/inject.c
@@ -350,7 +350,7 @@ static ssize_t flags_write(struct file *filp, const char __user *ubuf,
char buf[MAX_FLAG_OPT_SIZE], *__buf;
int err;
- if (cnt > MAX_FLAG_OPT_SIZE)
+ if (!cnt || cnt > MAX_FLAG_OPT_SIZE)
return -EINVAL;
if (copy_from_user(&buf, ubuf, cnt))
diff --git a/arch/x86/kernel/cpu/mce/severity.c b/arch/x86/kernel/cpu/mce/severity.c
index bb019a594a2c..09a8cad0c44f 100644
--- a/arch/x86/kernel/cpu/mce/severity.c
+++ b/arch/x86/kernel/cpu/mce/severity.c
@@ -222,6 +222,9 @@ static bool is_copy_from_user(struct pt_regs *regs)
struct insn insn;
int ret;
+ if (!regs)
+ return false;
+
if (copy_from_kernel_nofault(insn_buf, (void *)regs->ip, MAX_INSN_SIZE))
return false;
@@ -263,24 +266,36 @@ static bool is_copy_from_user(struct pt_regs *regs)
* distinguish an exception taken in user from from one
* taken in the kernel.
*/
-static int error_context(struct mce *m, struct pt_regs *regs)
+static noinstr int error_context(struct mce *m, struct pt_regs *regs)
{
+ int fixup_type;
+ bool copy_user;
+
if ((m->cs & 3) == 3)
return IN_USER;
+
if (!mc_recoverable(m->mcgstatus))
return IN_KERNEL;
- switch (ex_get_fixup_type(m->ip)) {
+ /* Allow instrumentation around external facilities usage. */
+ instrumentation_begin();
+ fixup_type = ex_get_fixup_type(m->ip);
+ copy_user = is_copy_from_user(regs);
+ instrumentation_end();
+
+ switch (fixup_type) {
case EX_TYPE_UACCESS:
case EX_TYPE_COPY:
- if (!regs || !is_copy_from_user(regs))
+ if (!copy_user)
return IN_KERNEL;
m->kflags |= MCE_IN_KERNEL_COPYIN;
fallthrough;
+
case EX_TYPE_FAULT_MCE_SAFE:
case EX_TYPE_DEFAULT_MCE_SAFE:
m->kflags |= MCE_IN_KERNEL_RECOV;
return IN_KERNEL_RECOV;
+
default:
return IN_KERNEL;
}
@@ -317,8 +332,8 @@ static int mce_severity_amd_smca(struct mce *m, enum context err_ctx)
* See AMD Error Scope Hierarchy table in a newer BKDG. For example
* 49125_15h_Models_30h-3Fh_BKDG.pdf, section "RAS Features"
*/
-static int mce_severity_amd(struct mce *m, struct pt_regs *regs, int tolerant,
- char **msg, bool is_excp)
+static noinstr int mce_severity_amd(struct mce *m, struct pt_regs *regs, int tolerant,
+ char **msg, bool is_excp)
{
enum context ctx = error_context(m, regs);
@@ -370,8 +385,8 @@ static int mce_severity_amd(struct mce *m, struct pt_regs *regs, int tolerant,
return MCE_KEEP_SEVERITY;
}
-static int mce_severity_intel(struct mce *m, struct pt_regs *regs,
- int tolerant, char **msg, bool is_excp)
+static noinstr int mce_severity_intel(struct mce *m, struct pt_regs *regs,
+ int tolerant, char **msg, bool is_excp)
{
enum exception excp = (is_excp ? EXCP_CONTEXT : NO_EXCP);
enum context ctx = error_context(m, regs);
@@ -407,8 +422,8 @@ static int mce_severity_intel(struct mce *m, struct pt_regs *regs,
}
}
-int mce_severity(struct mce *m, struct pt_regs *regs, int tolerant, char **msg,
- bool is_excp)
+int noinstr mce_severity(struct mce *m, struct pt_regs *regs, int tolerant, char **msg,
+ bool is_excp)
{
if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c
index 391a4e2b8604..8690fab95ae4 100644
--- a/arch/x86/kernel/early-quirks.c
+++ b/arch/x86/kernel/early-quirks.c
@@ -515,6 +515,7 @@ static const struct intel_early_ops gen11_early_ops __initconst = {
.stolen_size = gen9_stolen_size,
};
+/* Intel integrated GPUs for which we need to reserve "stolen memory" */
static const struct pci_device_id intel_early_ids[] __initconst = {
INTEL_I830_IDS(&i830_early_ops),
INTEL_I845G_IDS(&i845_early_ops),
@@ -591,6 +592,13 @@ static void __init intel_graphics_quirks(int num, int slot, int func)
u16 device;
int i;
+ /*
+ * Reserve "stolen memory" for an integrated GPU. If we've already
+ * found one, there's nothing to do for other (discrete) GPUs.
+ */
+ if (resource_size(&intel_graphics_stolen_res))
+ return;
+
device = read_pci_config_16(num, slot, func, PCI_DEVICE_ID);
for (i = 0; i < ARRAY_SIZE(intel_early_ids); i++) {
@@ -703,7 +711,7 @@ static struct chipset early_qrk[] __initdata = {
{ PCI_VENDOR_ID_INTEL, 0x3406, PCI_CLASS_BRIDGE_HOST,
PCI_BASE_CLASS_BRIDGE, 0, intel_remapping_check },
{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA, PCI_ANY_ID,
- QFLAG_APPLY_ONCE, intel_graphics_quirks },
+ 0, intel_graphics_quirks },
/*
* HPET on the current version of the Baytrail platform has accuracy
* problems: it will halt in deep idle state - so we disable it.
diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
index 169fb6f4cd2e..95fa745e310a 100644
--- a/arch/x86/kernel/module.c
+++ b/arch/x86/kernel/module.c
@@ -67,6 +67,7 @@ static unsigned long int get_module_load_offset(void)
void *module_alloc(unsigned long size)
{
+ gfp_t gfp_mask = GFP_KERNEL;
void *p;
if (PAGE_ALIGN(size) > MODULES_LEN)
@@ -74,10 +75,10 @@ void *module_alloc(unsigned long size)
p = __vmalloc_node_range(size, MODULE_ALIGN,
MODULES_VADDR + get_module_load_offset(),
- MODULES_END, GFP_KERNEL,
- PAGE_KERNEL, 0, NUMA_NO_NODE,
+ MODULES_END, gfp_mask,
+ PAGE_KERNEL, VM_DEFER_KMEMLEAK, NUMA_NO_NODE,
__builtin_return_address(0));
- if (p && (kasan_module_alloc(p, size) < 0)) {
+ if (p && (kasan_module_alloc(p, size, gfp_mask) < 0)) {
vfree(p);
return NULL;
}
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 0a40df66a40d..fa700b46588e 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -113,17 +113,9 @@ void __noreturn machine_real_restart(unsigned int type)
spin_unlock(&rtc_lock);
/*
- * Switch back to the initial page table.
+ * Switch to the trampoline page table.
*/
-#ifdef CONFIG_X86_32
- load_cr3(initial_page_table);
-#else
- write_cr3(real_mode_header->trampoline_pgd);
-
- /* Exiting long mode will fail if CR4.PCIDE is set. */
- if (boot_cpu_has(X86_FEATURE_PCID))
- cr4_clear_bits(X86_CR4_PCIDE);
-#endif
+ load_trampoline_pgtable();
/* Jump to the identity-mapped low memory code */
#ifdef CONFIG_X86_32
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index 07e9215e911d..e5e597fc3c86 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -99,6 +99,28 @@ static int kvm_check_cpuid(struct kvm_cpuid_entry2 *entries, int nent)
return 0;
}
+/* Check whether the supplied CPUID data is equal to what is already set for the vCPU. */
+static int kvm_cpuid_check_equal(struct kvm_vcpu *vcpu, struct kvm_cpuid_entry2 *e2,
+ int nent)
+{
+ struct kvm_cpuid_entry2 *orig;
+ int i;
+
+ if (nent != vcpu->arch.cpuid_nent)
+ return -EINVAL;
+
+ for (i = 0; i < nent; i++) {
+ orig = &vcpu->arch.cpuid_entries[i];
+ if (e2[i].function != orig->function ||
+ e2[i].index != orig->index ||
+ e2[i].eax != orig->eax || e2[i].ebx != orig->ebx ||
+ e2[i].ecx != orig->ecx || e2[i].edx != orig->edx)
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
static void kvm_update_kvm_cpuid_base(struct kvm_vcpu *vcpu)
{
u32 function;
@@ -125,14 +147,21 @@ static void kvm_update_kvm_cpuid_base(struct kvm_vcpu *vcpu)
}
}
-static struct kvm_cpuid_entry2 *kvm_find_kvm_cpuid_features(struct kvm_vcpu *vcpu)
+static struct kvm_cpuid_entry2 *__kvm_find_kvm_cpuid_features(struct kvm_vcpu *vcpu,
+ struct kvm_cpuid_entry2 *entries, int nent)
{
u32 base = vcpu->arch.kvm_cpuid_base;
if (!base)
return NULL;
- return kvm_find_cpuid_entry(vcpu, base | KVM_CPUID_FEATURES, 0);
+ return cpuid_entry2_find(entries, nent, base | KVM_CPUID_FEATURES, 0);
+}
+
+static struct kvm_cpuid_entry2 *kvm_find_kvm_cpuid_features(struct kvm_vcpu *vcpu)
+{
+ return __kvm_find_kvm_cpuid_features(vcpu, vcpu->arch.cpuid_entries,
+ vcpu->arch.cpuid_nent);
}
void kvm_update_pv_runtime(struct kvm_vcpu *vcpu)
@@ -147,11 +176,12 @@ void kvm_update_pv_runtime(struct kvm_vcpu *vcpu)
vcpu->arch.pv_cpuid.features = best->eax;
}
-void kvm_update_cpuid_runtime(struct kvm_vcpu *vcpu)
+static void __kvm_update_cpuid_runtime(struct kvm_vcpu *vcpu, struct kvm_cpuid_entry2 *entries,
+ int nent)
{
struct kvm_cpuid_entry2 *best;
- best = kvm_find_cpuid_entry(vcpu, 1, 0);
+ best = cpuid_entry2_find(entries, nent, 1, 0);
if (best) {
/* Update OSXSAVE bit */
if (boot_cpu_has(X86_FEATURE_XSAVE))
@@ -162,33 +192,38 @@ void kvm_update_cpuid_runtime(struct kvm_vcpu *vcpu)
vcpu->arch.apic_base & MSR_IA32_APICBASE_ENABLE);
}
- best = kvm_find_cpuid_entry(vcpu, 7, 0);
+ best = cpuid_entry2_find(entries, nent, 7, 0);
if (best && boot_cpu_has(X86_FEATURE_PKU) && best->function == 0x7)
cpuid_entry_change(best, X86_FEATURE_OSPKE,
kvm_read_cr4_bits(vcpu, X86_CR4_PKE));
- best = kvm_find_cpuid_entry(vcpu, 0xD, 0);
+ best = cpuid_entry2_find(entries, nent, 0xD, 0);
if (best)
best->ebx = xstate_required_size(vcpu->arch.xcr0, false);
- best = kvm_find_cpuid_entry(vcpu, 0xD, 1);
+ best = cpuid_entry2_find(entries, nent, 0xD, 1);
if (best && (cpuid_entry_has(best, X86_FEATURE_XSAVES) ||
cpuid_entry_has(best, X86_FEATURE_XSAVEC)))
best->ebx = xstate_required_size(vcpu->arch.xcr0, true);
- best = kvm_find_kvm_cpuid_features(vcpu);
+ best = __kvm_find_kvm_cpuid_features(vcpu, entries, nent);
if (kvm_hlt_in_guest(vcpu->kvm) && best &&
(best->eax & (1 << KVM_FEATURE_PV_UNHALT)))
best->eax &= ~(1 << KVM_FEATURE_PV_UNHALT);
if (!kvm_check_has_quirk(vcpu->kvm, KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT)) {
- best = kvm_find_cpuid_entry(vcpu, 0x1, 0);
+ best = cpuid_entry2_find(entries, nent, 0x1, 0);
if (best)
cpuid_entry_change(best, X86_FEATURE_MWAIT,
vcpu->arch.ia32_misc_enable_msr &
MSR_IA32_MISC_ENABLE_MWAIT);
}
}
+
+void kvm_update_cpuid_runtime(struct kvm_vcpu *vcpu)
+{
+ __kvm_update_cpuid_runtime(vcpu, vcpu->arch.cpuid_entries, vcpu->arch.cpuid_nent);
+}
EXPORT_SYMBOL_GPL(kvm_update_cpuid_runtime);
static void kvm_vcpu_after_set_cpuid(struct kvm_vcpu *vcpu)
@@ -276,21 +311,36 @@ u64 kvm_vcpu_reserved_gpa_bits_raw(struct kvm_vcpu *vcpu)
static int kvm_set_cpuid(struct kvm_vcpu *vcpu, struct kvm_cpuid_entry2 *e2,
int nent)
{
- int r;
+ int r;
+
+ __kvm_update_cpuid_runtime(vcpu, e2, nent);
+
+ /*
+ * KVM does not correctly handle changing guest CPUID after KVM_RUN, as
+ * MAXPHYADDR, GBPAGES support, AMD reserved bit behavior, etc.. aren't
+ * tracked in kvm_mmu_page_role. As a result, KVM may miss guest page
+ * faults due to reusing SPs/SPTEs. In practice no sane VMM mucks with
+ * the core vCPU model on the fly. It would've been better to forbid any
+ * KVM_SET_CPUID{,2} calls after KVM_RUN altogether but unfortunately
+ * some VMMs (e.g. QEMU) reuse vCPU fds for CPU hotplug/unplug and do
+ * KVM_SET_CPUID{,2} again. To support this legacy behavior, check
+ * whether the supplied CPUID data is equal to what's already set.
+ */
+ if (vcpu->arch.last_vmentry_cpu != -1)
+ return kvm_cpuid_check_equal(vcpu, e2, nent);
- r = kvm_check_cpuid(e2, nent);
- if (r)
- return r;
+ r = kvm_check_cpuid(e2, nent);
+ if (r)
+ return r;
- kvfree(vcpu->arch.cpuid_entries);
- vcpu->arch.cpuid_entries = e2;
- vcpu->arch.cpuid_nent = nent;
+ kvfree(vcpu->arch.cpuid_entries);
+ vcpu->arch.cpuid_entries = e2;
+ vcpu->arch.cpuid_nent = nent;
- kvm_update_kvm_cpuid_base(vcpu);
- kvm_update_cpuid_runtime(vcpu);
- kvm_vcpu_after_set_cpuid(vcpu);
+ kvm_update_kvm_cpuid_base(vcpu);
+ kvm_vcpu_after_set_cpuid(vcpu);
- return 0;
+ return 0;
}
/* when an old userspace process fills a new kernel module */
diff --git a/arch/x86/kvm/mmu/tdp_mmu.c b/arch/x86/kvm/mmu/tdp_mmu.c
index 1beb4ca90560..095b5cb4e3c9 100644
--- a/arch/x86/kvm/mmu/tdp_mmu.c
+++ b/arch/x86/kvm/mmu/tdp_mmu.c
@@ -1442,12 +1442,12 @@ static bool write_protect_gfn(struct kvm *kvm, struct kvm_mmu_page *root,
!is_last_spte(iter.old_spte, iter.level))
continue;
- if (!is_writable_pte(iter.old_spte))
- break;
-
new_spte = iter.old_spte &
~(PT_WRITABLE_MASK | shadow_mmu_writable_mask);
+ if (new_spte == iter.old_spte)
+ break;
+
tdp_mmu_set_spte(kvm, &iter, new_spte);
spte_set = true;
}
diff --git a/arch/x86/kvm/vmx/posted_intr.c b/arch/x86/kvm/vmx/posted_intr.c
index 1c94783b5a54..46fb83d6a286 100644
--- a/arch/x86/kvm/vmx/posted_intr.c
+++ b/arch/x86/kvm/vmx/posted_intr.c
@@ -15,7 +15,7 @@
* can find which vCPU should be waken up.
*/
static DEFINE_PER_CPU(struct list_head, blocked_vcpu_on_cpu);
-static DEFINE_PER_CPU(spinlock_t, blocked_vcpu_on_cpu_lock);
+static DEFINE_PER_CPU(raw_spinlock_t, blocked_vcpu_on_cpu_lock);
static inline struct pi_desc *vcpu_to_pi_desc(struct kvm_vcpu *vcpu)
{
@@ -51,7 +51,7 @@ void vmx_vcpu_pi_load(struct kvm_vcpu *vcpu, int cpu)
/* The full case. */
do {
- old.control = new.control = pi_desc->control;
+ old.control = new.control = READ_ONCE(pi_desc->control);
dest = cpu_physical_id(cpu);
@@ -104,7 +104,7 @@ static void __pi_post_block(struct kvm_vcpu *vcpu)
unsigned int dest;
do {
- old.control = new.control = pi_desc->control;
+ old.control = new.control = READ_ONCE(pi_desc->control);
WARN(old.nv != POSTED_INTR_WAKEUP_VECTOR,
"Wakeup handler not enabled while the VCPU is blocked\n");
@@ -121,9 +121,9 @@ static void __pi_post_block(struct kvm_vcpu *vcpu)
new.control) != old.control);
if (!WARN_ON_ONCE(vcpu->pre_pcpu == -1)) {
- spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
+ raw_spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
list_del(&vcpu->blocked_vcpu_list);
- spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
+ raw_spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
vcpu->pre_pcpu = -1;
}
}
@@ -147,22 +147,23 @@ int pi_pre_block(struct kvm_vcpu *vcpu)
struct pi_desc old, new;
struct pi_desc *pi_desc = vcpu_to_pi_desc(vcpu);
- if (!vmx_can_use_vtd_pi(vcpu->kvm))
+ if (!vmx_can_use_vtd_pi(vcpu->kvm) ||
+ vmx_interrupt_blocked(vcpu))
return 0;
WARN_ON(irqs_disabled());
local_irq_disable();
if (!WARN_ON_ONCE(vcpu->pre_pcpu != -1)) {
vcpu->pre_pcpu = vcpu->cpu;
- spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
+ raw_spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
list_add_tail(&vcpu->blocked_vcpu_list,
&per_cpu(blocked_vcpu_on_cpu,
vcpu->pre_pcpu));
- spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
+ raw_spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
}
do {
- old.control = new.control = pi_desc->control;
+ old.control = new.control = READ_ONCE(pi_desc->control);
WARN((pi_desc->sn == 1),
"Warning: SN field of posted-interrupts "
@@ -215,7 +216,7 @@ void pi_wakeup_handler(void)
struct kvm_vcpu *vcpu;
int cpu = smp_processor_id();
- spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
+ raw_spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
list_for_each_entry(vcpu, &per_cpu(blocked_vcpu_on_cpu, cpu),
blocked_vcpu_list) {
struct pi_desc *pi_desc = vcpu_to_pi_desc(vcpu);
@@ -223,13 +224,13 @@ void pi_wakeup_handler(void)
if (pi_test_on(pi_desc) == 1)
kvm_vcpu_kick(vcpu);
}
- spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
+ raw_spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
}
void __init pi_init_cpu(int cpu)
{
INIT_LIST_HEAD(&per_cpu(blocked_vcpu_on_cpu, cpu));
- spin_lock_init(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
+ raw_spin_lock_init(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
}
bool pi_has_pending_interrupt(struct kvm_vcpu *vcpu)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 0b5c61bb24a1..4acf43111e9c 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -830,6 +830,7 @@ int load_pdptrs(struct kvm_vcpu *vcpu, struct kvm_mmu *mmu, unsigned long cr3)
memcpy(mmu->pdptrs, pdpte, sizeof(mmu->pdptrs));
kvm_register_mark_dirty(vcpu, VCPU_EXREG_PDPTR);
+ kvm_make_request(KVM_REQ_LOAD_MMU_PGD, vcpu);
vcpu->arch.pdptrs_from_userspace = false;
return 1;
@@ -5148,17 +5149,6 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
struct kvm_cpuid __user *cpuid_arg = argp;
struct kvm_cpuid cpuid;
- /*
- * KVM does not correctly handle changing guest CPUID after KVM_RUN, as
- * MAXPHYADDR, GBPAGES support, AMD reserved bit behavior, etc.. aren't
- * tracked in kvm_mmu_page_role. As a result, KVM may miss guest page
- * faults due to reusing SPs/SPTEs. In practice no sane VMM mucks with
- * the core vCPU model on the fly, so fail.
- */
- r = -EINVAL;
- if (vcpu->arch.last_vmentry_cpu != -1)
- goto out;
-
r = -EFAULT;
if (copy_from_user(&cpuid, cpuid_arg, sizeof(cpuid)))
goto out;
@@ -5169,14 +5159,6 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
struct kvm_cpuid2 __user *cpuid_arg = argp;
struct kvm_cpuid2 cpuid;
- /*
- * KVM_SET_CPUID{,2} after KVM_RUN is forbidded, see the comment in
- * KVM_SET_CPUID case above.
- */
- r = -EINVAL;
- if (vcpu->arch.last_vmentry_cpu != -1)
- goto out;
-
r = -EFAULT;
if (copy_from_user(&cpuid, cpuid_arg, sizeof(cpuid)))
goto out;
@@ -8133,7 +8115,12 @@ int x86_emulate_instruction(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
* updating interruptibility state and injecting single-step #DBs.
*/
if (emulation_type & EMULTYPE_SKIP) {
- kvm_rip_write(vcpu, ctxt->_eip);
+ if (ctxt->mode != X86EMUL_MODE_PROT64)
+ ctxt->eip = (u32)ctxt->_eip;
+ else
+ ctxt->eip = ctxt->_eip;
+
+ kvm_rip_write(vcpu, ctxt->eip);
if (ctxt->eflags & X86_EFLAGS_RF)
kvm_set_rflags(vcpu, ctxt->eflags & ~X86_EFLAGS_RF);
return 1;
@@ -8197,6 +8184,9 @@ int x86_emulate_instruction(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
writeback = false;
r = 0;
vcpu->arch.complete_userspace_io = complete_emulated_mmio;
+ } else if (vcpu->arch.complete_userspace_io) {
+ writeback = false;
+ r = 0;
} else if (r == EMULATION_RESTART)
goto restart;
else
diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
index bafe36e69227..b87d98efd224 100644
--- a/arch/x86/net/bpf_jit_comp.c
+++ b/arch/x86/net/bpf_jit_comp.c
@@ -412,7 +412,7 @@ static void emit_indirect_jump(u8 **pprog, int reg, u8 *ip)
* ... bpf_tail_call(void *ctx, struct bpf_array *array, u64 index) ...
* if (index >= array->map.max_entries)
* goto out;
- * if (++tail_call_cnt > MAX_TAIL_CALL_CNT)
+ * if (tail_call_cnt++ >= MAX_TAIL_CALL_CNT)
* goto out;
* prog = array->ptrs[index];
* if (prog == NULL)
@@ -446,14 +446,14 @@ static void emit_bpf_tail_call_indirect(u8 **pprog, bool *callee_regs_used,
EMIT2(X86_JBE, offset); /* jbe out */
/*
- * if (tail_call_cnt > MAX_TAIL_CALL_CNT)
+ * if (tail_call_cnt++ >= MAX_TAIL_CALL_CNT)
* goto out;
*/
EMIT2_off32(0x8B, 0x85, tcc_off); /* mov eax, dword ptr [rbp - tcc_off] */
EMIT3(0x83, 0xF8, MAX_TAIL_CALL_CNT); /* cmp eax, MAX_TAIL_CALL_CNT */
offset = ctx->tail_call_indirect_label - (prog + 2 - start);
- EMIT2(X86_JA, offset); /* ja out */
+ EMIT2(X86_JAE, offset); /* jae out */
EMIT3(0x83, 0xC0, 0x01); /* add eax, 1 */
EMIT2_off32(0x89, 0x85, tcc_off); /* mov dword ptr [rbp - tcc_off], eax */
@@ -504,14 +504,14 @@ static void emit_bpf_tail_call_direct(struct bpf_jit_poke_descriptor *poke,
int offset;
/*
- * if (tail_call_cnt > MAX_TAIL_CALL_CNT)
+ * if (tail_call_cnt++ >= MAX_TAIL_CALL_CNT)
* goto out;
*/
EMIT2_off32(0x8B, 0x85, tcc_off); /* mov eax, dword ptr [rbp - tcc_off] */
EMIT3(0x83, 0xF8, MAX_TAIL_CALL_CNT); /* cmp eax, MAX_TAIL_CALL_CNT */
offset = ctx->tail_call_direct_label - (prog + 2 - start);
- EMIT2(X86_JA, offset); /* ja out */
+ EMIT2(X86_JAE, offset); /* jae out */
EMIT3(0x83, 0xC0, 0x01); /* add eax, 1 */
EMIT2_off32(0x89, 0x85, tcc_off); /* mov dword ptr [rbp - tcc_off], eax */
diff --git a/arch/x86/net/bpf_jit_comp32.c b/arch/x86/net/bpf_jit_comp32.c
index da9b7cfa4632..429a89c5468b 100644
--- a/arch/x86/net/bpf_jit_comp32.c
+++ b/arch/x86/net/bpf_jit_comp32.c
@@ -1323,7 +1323,7 @@ static void emit_bpf_tail_call(u8 **pprog, u8 *ip)
EMIT2(IA32_JBE, jmp_label(jmp_label1, 2));
/*
- * if (tail_call_cnt > MAX_TAIL_CALL_CNT)
+ * if (tail_call_cnt++ >= MAX_TAIL_CALL_CNT)
* goto out;
*/
lo = (u32)MAX_TAIL_CALL_CNT;
@@ -1337,7 +1337,7 @@ static void emit_bpf_tail_call(u8 **pprog, u8 *ip)
/* cmp ecx,lo */
EMIT3(0x83, add_1reg(0xF8, IA32_ECX), lo);
- /* ja out */
+ /* jae out */
EMIT2(IA32_JAE, jmp_label(jmp_label1, 2));
/* add eax,0x1 */
diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c
index 38d24d2ab38b..c5e29db02a46 100644
--- a/arch/x86/realmode/init.c
+++ b/arch/x86/realmode/init.c
@@ -17,6 +17,32 @@ u32 *trampoline_cr4_features;
/* Hold the pgd entry used on booting additional CPUs */
pgd_t trampoline_pgd_entry;
+void load_trampoline_pgtable(void)
+{
+#ifdef CONFIG_X86_32
+ load_cr3(initial_page_table);
+#else
+ /*
+ * This function is called before exiting to real-mode and that will
+ * fail with CR4.PCIDE still set.
+ */
+ if (boot_cpu_has(X86_FEATURE_PCID))
+ cr4_clear_bits(X86_CR4_PCIDE);
+
+ write_cr3(real_mode_header->trampoline_pgd);
+#endif
+
+ /*
+ * The CR3 write above will not flush global TLB entries.
+ * Stale, global entries from previous page tables may still be
+ * present. Flush those stale entries.
+ *
+ * This ensures that memory accessed while running with
+ * trampoline_pgd is *actually* mapped into trampoline_pgd.
+ */
+ __flush_tlb_all();
+}
+
void __init reserve_real_mode(void)
{
phys_addr_t mem;
diff --git a/arch/x86/um/syscalls_64.c b/arch/x86/um/syscalls_64.c
index 58f51667e2e4..8249685b4096 100644
--- a/arch/x86/um/syscalls_64.c
+++ b/arch/x86/um/syscalls_64.c
@@ -11,6 +11,7 @@
#include <linux/uaccess.h>
#include <asm/prctl.h> /* XXX This should get the constants from libc */
#include <os.h>
+#include <registers.h>
long arch_prctl(struct task_struct *task, int option,
unsigned long __user *arg2)
@@ -35,7 +36,7 @@ long arch_prctl(struct task_struct *task, int option,
switch (option) {
case ARCH_SET_FS:
case ARCH_SET_GS:
- ret = restore_registers(pid, ¤t->thread.regs.regs);
+ ret = restore_pid_registers(pid, ¤t->thread.regs.regs);
if (ret)
return ret;
break;
diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index fec18118dc30..30918b0e81c0 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -5991,48 +5991,7 @@ static void bfq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
spin_lock_irq(&bfqd->lock);
bfqq = bfq_init_rq(rq);
-
- /*
- * Reqs with at_head or passthrough flags set are to be put
- * directly into dispatch list. Additional case for putting rq
- * directly into the dispatch queue: the only active
- * bfq_queues are bfqq and either its waker bfq_queue or one
- * of its woken bfq_queues. The rationale behind this
- * additional condition is as follows:
- * - consider a bfq_queue, say Q1, detected as a waker of
- * another bfq_queue, say Q2
- * - by definition of a waker, Q1 blocks the I/O of Q2, i.e.,
- * some I/O of Q1 needs to be completed for new I/O of Q2
- * to arrive. A notable example of waker is journald
- * - so, Q1 and Q2 are in any respect the queues of two
- * cooperating processes (or of two cooperating sets of
- * processes): the goal of Q1's I/O is doing what needs to
- * be done so that new Q2's I/O can finally be
- * issued. Therefore, if the service of Q1's I/O is delayed,
- * then Q2's I/O is delayed too. Conversely, if Q2's I/O is
- * delayed, the goal of Q1's I/O is hindered.
- * - as a consequence, if some I/O of Q1/Q2 arrives while
- * Q2/Q1 is the only queue in service, there is absolutely
- * no point in delaying the service of such an I/O. The
- * only possible result is a throughput loss
- * - so, when the above condition holds, the best option is to
- * have the new I/O dispatched as soon as possible
- * - the most effective and efficient way to attain the above
- * goal is to put the new I/O directly in the dispatch
- * list
- * - as an additional restriction, Q1 and Q2 must be the only
- * busy queues for this commit to put the I/O of Q2/Q1 in
- * the dispatch list. This is necessary, because, if also
- * other queues are waiting for service, then putting new
- * I/O directly in the dispatch list may evidently cause a
- * violation of service guarantees for the other queues
- */
- if (!bfqq ||
- (bfqq != bfqd->in_service_queue &&
- bfqd->in_service_queue != NULL &&
- bfq_tot_busy_queues(bfqd) == 1 + bfq_bfqq_busy(bfqq) &&
- (bfqq->waker_bfqq == bfqd->in_service_queue ||
- bfqd->in_service_queue->waker_bfqq == bfqq)) || at_head) {
+ if (!bfqq || at_head) {
if (at_head)
list_add(&rq->queuelist, &bfqd->dispatch);
else
@@ -6059,7 +6018,6 @@ static void bfq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
* merge).
*/
cmd_flags = rq->cmd_flags;
-
spin_unlock_irq(&bfqd->lock);
bfq_update_insert_stats(q, bfqq, idle_timer_disabled,
diff --git a/block/blk-flush.c b/block/blk-flush.c
index 1fce6d16e6d3..b5b4a26ef092 100644
--- a/block/blk-flush.c
+++ b/block/blk-flush.c
@@ -235,8 +235,10 @@ static void flush_end_io(struct request *flush_rq, blk_status_t error)
* avoiding use-after-free.
*/
WRITE_ONCE(flush_rq->state, MQ_RQ_IDLE);
- if (fq->rq_status != BLK_STS_OK)
+ if (fq->rq_status != BLK_STS_OK) {
error = fq->rq_status;
+ fq->rq_status = BLK_STS_OK;
+ }
if (!q->elevator) {
flush_rq->tag = BLK_MQ_NO_TAG;
diff --git a/block/blk-pm.c b/block/blk-pm.c
index 17bd020268d4..2dad62cc1572 100644
--- a/block/blk-pm.c
+++ b/block/blk-pm.c
@@ -163,27 +163,19 @@ EXPORT_SYMBOL(blk_pre_runtime_resume);
/**
* blk_post_runtime_resume - Post runtime resume processing
* @q: the queue of the device
- * @err: return value of the device's runtime_resume function
*
* Description:
- * Update the queue's runtime status according to the return value of the
- * device's runtime_resume function. If the resume was successful, call
- * blk_set_runtime_active() to do the real work of restarting the queue.
+ * For historical reasons, this routine merely calls blk_set_runtime_active()
+ * to do the real work of restarting the queue. It does this regardless of
+ * whether the device's runtime-resume succeeded; even if it failed the
+ * driver or error handler will need to communicate with the device.
*
* This function should be called near the end of the device's
* runtime_resume callback.
*/
-void blk_post_runtime_resume(struct request_queue *q, int err)
+void blk_post_runtime_resume(struct request_queue *q)
{
- if (!q->dev)
- return;
- if (!err) {
- blk_set_runtime_active(q);
- } else {
- spin_lock_irq(&q->queue_lock);
- q->rpm_status = RPM_SUSPENDED;
- spin_unlock_irq(&q->queue_lock);
- }
+ blk_set_runtime_active(q);
}
EXPORT_SYMBOL(blk_post_runtime_resume);
@@ -201,7 +193,7 @@ EXPORT_SYMBOL(blk_post_runtime_resume);
* runtime PM status and re-enable peeking requests from the queue. It
* should be called before first request is added to the queue.
*
- * This function is also called by blk_post_runtime_resume() for successful
+ * This function is also called by blk_post_runtime_resume() for
* runtime resumes. It does everything necessary to restart the queue.
*/
void blk_set_runtime_active(struct request_queue *q)
diff --git a/block/genhd.c b/block/genhd.c
index 30362aeacac4..5308e0920fa6 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -425,6 +425,8 @@ int __must_check device_add_disk(struct device *parent, struct gendisk *disk,
DISK_MAX_PARTS);
disk->minors = DISK_MAX_PARTS;
}
+ if (disk->first_minor + disk->minors > MINORMASK + 1)
+ return -EINVAL;
} else {
if (WARN_ON(disk->minors))
return -EINVAL;
@@ -437,10 +439,6 @@ int __must_check device_add_disk(struct device *parent, struct gendisk *disk,
disk->flags |= GENHD_FL_EXT_DEVT;
}
- ret = disk_alloc_events(disk);
- if (ret)
- goto out_free_ext_minor;
-
/* delay uevents, until we scanned partition table */
dev_set_uevent_suppress(ddev, 1);
@@ -451,7 +449,12 @@ int __must_check device_add_disk(struct device *parent, struct gendisk *disk,
ddev->devt = MKDEV(disk->major, disk->first_minor);
ret = device_add(ddev);
if (ret)
- goto out_disk_release_events;
+ goto out_free_ext_minor;
+
+ ret = disk_alloc_events(disk);
+ if (ret)
+ goto out_device_del;
+
if (!sysfs_deprecated) {
ret = sysfs_create_link(block_depr, &ddev->kobj,
kobject_name(&ddev->kobj));
@@ -539,8 +542,6 @@ int __must_check device_add_disk(struct device *parent, struct gendisk *disk,
sysfs_remove_link(block_depr, dev_name(ddev));
out_device_del:
device_del(ddev);
-out_disk_release_events:
- disk_release_events(disk);
out_free_ext_minor:
if (disk->major == BLOCK_EXT_MAJOR)
blk_free_ext_minor(disk->first_minor);
diff --git a/block/mq-deadline.c b/block/mq-deadline.c
index 85d919bf60c7..3ed5eaf3446a 100644
--- a/block/mq-deadline.c
+++ b/block/mq-deadline.c
@@ -865,7 +865,7 @@ SHOW_JIFFIES(deadline_write_expire_show, dd->fifo_expire[DD_WRITE]);
SHOW_JIFFIES(deadline_prio_aging_expire_show, dd->prio_aging_expire);
SHOW_INT(deadline_writes_starved_show, dd->writes_starved);
SHOW_INT(deadline_front_merges_show, dd->front_merges);
-SHOW_INT(deadline_async_depth_show, dd->front_merges);
+SHOW_INT(deadline_async_depth_show, dd->async_depth);
SHOW_INT(deadline_fifo_batch_show, dd->fifo_batch);
#undef SHOW_INT
#undef SHOW_JIFFIES
@@ -895,7 +895,7 @@ STORE_JIFFIES(deadline_write_expire_store, &dd->fifo_expire[DD_WRITE], 0, INT_MA
STORE_JIFFIES(deadline_prio_aging_expire_store, &dd->prio_aging_expire, 0, INT_MAX);
STORE_INT(deadline_writes_starved_store, &dd->writes_starved, INT_MIN, INT_MAX);
STORE_INT(deadline_front_merges_store, &dd->front_merges, 0, 1);
-STORE_INT(deadline_async_depth_store, &dd->front_merges, 1, INT_MAX);
+STORE_INT(deadline_async_depth_store, &dd->async_depth, 1, INT_MAX);
STORE_INT(deadline_fifo_batch_store, &dd->fifo_batch, 0, INT_MAX);
#undef STORE_FUNCTION
#undef STORE_INT
diff --git a/crypto/jitterentropy.c b/crypto/jitterentropy.c
index 4dc2261cdeef..788d90749715 100644
--- a/crypto/jitterentropy.c
+++ b/crypto/jitterentropy.c
@@ -265,7 +265,6 @@ static int jent_stuck(struct rand_data *ec, __u64 current_delta)
{
__u64 delta2 = jent_delta(ec->last_delta, current_delta);
__u64 delta3 = jent_delta(ec->last_delta2, delta2);
- unsigned int delta_masked = current_delta & JENT_APT_WORD_MASK;
ec->last_delta = current_delta;
ec->last_delta2 = delta2;
@@ -274,7 +273,7 @@ static int jent_stuck(struct rand_data *ec, __u64 current_delta)
* Insert the result of the comparison of two back-to-back time
* deltas.
*/
- jent_apt_insert(ec, delta_masked);
+ jent_apt_insert(ec, current_delta);
if (!current_delta || !delta2 || !delta3) {
/* RCT with a stuck bit */
diff --git a/drivers/acpi/acpica/exfield.c b/drivers/acpi/acpica/exfield.c
index 06f3c9df1e22..8618500f23b3 100644
--- a/drivers/acpi/acpica/exfield.c
+++ b/drivers/acpi/acpica/exfield.c
@@ -330,12 +330,7 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc,
obj_desc->field.base_byte_offset,
source_desc->buffer.pointer, data_length);
- if ((obj_desc->field.region_obj->region.address ==
- PCC_MASTER_SUBSPACE
- && MASTER_SUBSPACE_COMMAND(obj_desc->field.
- base_byte_offset))
- || GENERIC_SUBSPACE_COMMAND(obj_desc->field.
- base_byte_offset)) {
+ if (MASTER_SUBSPACE_COMMAND(obj_desc->field.base_byte_offset)) {
/* Perform the write */
diff --git a/drivers/acpi/acpica/exoparg1.c b/drivers/acpi/acpica/exoparg1.c
index b639e930d642..44b7c350ed5c 100644
--- a/drivers/acpi/acpica/exoparg1.c
+++ b/drivers/acpi/acpica/exoparg1.c
@@ -1007,7 +1007,8 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)
(walk_state, return_desc,
&temp_desc);
if (ACPI_FAILURE(status)) {
- goto cleanup;
+ return_ACPI_STATUS
+ (status);
}
return_desc = temp_desc;
diff --git a/drivers/acpi/acpica/hwesleep.c b/drivers/acpi/acpica/hwesleep.c
index 808fdf54aeeb..7ee2939c08cd 100644
--- a/drivers/acpi/acpica/hwesleep.c
+++ b/drivers/acpi/acpica/hwesleep.c
@@ -104,7 +104,9 @@ acpi_status acpi_hw_extended_sleep(u8 sleep_state)
/* Flush caches, as per ACPI specification */
- ACPI_FLUSH_CPU_CACHE();
+ if (sleep_state < ACPI_STATE_S4) {
+ ACPI_FLUSH_CPU_CACHE();
+ }
status = acpi_os_enter_sleep(sleep_state, sleep_control, 0);
if (status == AE_CTRL_TERMINATE) {
diff --git a/drivers/acpi/acpica/hwsleep.c b/drivers/acpi/acpica/hwsleep.c
index 34a3825f25d3..5efa3d8e483e 100644
--- a/drivers/acpi/acpica/hwsleep.c
+++ b/drivers/acpi/acpica/hwsleep.c
@@ -110,7 +110,9 @@ acpi_status acpi_hw_legacy_sleep(u8 sleep_state)
/* Flush caches, as per ACPI specification */
- ACPI_FLUSH_CPU_CACHE();
+ if (sleep_state < ACPI_STATE_S4) {
+ ACPI_FLUSH_CPU_CACHE();
+ }
status = acpi_os_enter_sleep(sleep_state, pm1a_control, pm1b_control);
if (status == AE_CTRL_TERMINATE) {
diff --git a/drivers/acpi/acpica/hwxfsleep.c b/drivers/acpi/acpica/hwxfsleep.c
index e4cde23a2906..ba77598ee43e 100644
--- a/drivers/acpi/acpica/hwxfsleep.c
+++ b/drivers/acpi/acpica/hwxfsleep.c
@@ -162,8 +162,6 @@ acpi_status acpi_enter_sleep_state_s4bios(void)
return_ACPI_STATUS(status);
}
- ACPI_FLUSH_CPU_CACHE();
-
status = acpi_hw_write_port(acpi_gbl_FADT.smi_command,
(u32)acpi_gbl_FADT.s4_bios_request, 8);
if (ACPI_FAILURE(status)) {
diff --git a/drivers/acpi/acpica/utdelete.c b/drivers/acpi/acpica/utdelete.c
index e5ba9795ec69..8d7736d2d269 100644
--- a/drivers/acpi/acpica/utdelete.c
+++ b/drivers/acpi/acpica/utdelete.c
@@ -422,6 +422,7 @@ acpi_ut_update_ref_count(union acpi_operand_object *object, u32 action)
ACPI_WARNING((AE_INFO,
"Obj %p, Reference Count is already zero, cannot decrement\n",
object));
+ return;
}
ACPI_DEBUG_PRINT_RAW((ACPI_DB_ALLOCATIONS,
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index 8afa85d6eb6a..ead0114f27c9 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -53,6 +53,7 @@ static int battery_bix_broken_package;
static int battery_notification_delay_ms;
static int battery_ac_is_broken;
static int battery_check_pmic = 1;
+static int battery_quirk_notcharging;
static unsigned int cache_time = 1000;
module_param(cache_time, uint, 0644);
MODULE_PARM_DESC(cache_time, "cache time in milliseconds");
@@ -217,6 +218,8 @@ static int acpi_battery_get_property(struct power_supply *psy,
val->intval = POWER_SUPPLY_STATUS_CHARGING;
else if (acpi_battery_is_charged(battery))
val->intval = POWER_SUPPLY_STATUS_FULL;
+ else if (battery_quirk_notcharging)
+ val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
else
val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
break;
@@ -1111,6 +1114,12 @@ battery_do_not_check_pmic_quirk(const struct dmi_system_id *d)
return 0;
}
+static int __init battery_quirk_not_charging(const struct dmi_system_id *d)
+{
+ battery_quirk_notcharging = 1;
+ return 0;
+}
+
static const struct dmi_system_id bat_dmi_table[] __initconst = {
{
/* NEC LZ750/LS */
@@ -1155,6 +1164,19 @@ static const struct dmi_system_id bat_dmi_table[] __initconst = {
DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo MIIX 320-10ICR"),
},
},
+ {
+ /*
+ * On Lenovo ThinkPads the BIOS specification defines
+ * a state when the bits for charging and discharging
+ * are both set to 0. That state is "Not Charging".
+ */
+ .callback = battery_quirk_not_charging,
+ .ident = "Lenovo ThinkPad",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad"),
+ },
+ },
{},
};
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index fa923a929224..dd535b4b9a16 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -98,8 +98,8 @@ int acpi_bus_get_status(struct acpi_device *device)
acpi_status status;
unsigned long long sta;
- if (acpi_device_always_present(device)) {
- acpi_set_device_status(device, ACPI_STA_DEFAULT);
+ if (acpi_device_override_status(device, &sta)) {
+ acpi_set_device_status(device, sta);
return 0;
}
diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
index b62c87b8ce4a..12a156d8283e 100644
--- a/drivers/acpi/cppc_acpi.c
+++ b/drivers/acpi/cppc_acpi.c
@@ -411,7 +411,7 @@ bool acpi_cpc_valid(void)
struct cpc_desc *cpc_ptr;
int cpu;
- for_each_possible_cpu(cpu) {
+ for_each_present_cpu(cpu) {
cpc_ptr = per_cpu(cpc_desc_ptr, cpu);
if (!cpc_ptr)
return false;
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index a6366d3f0c78..b9c44e6c5e40 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -166,6 +166,7 @@ struct acpi_ec_query {
struct transaction transaction;
struct work_struct work;
struct acpi_ec_query_handler *handler;
+ struct acpi_ec *ec;
};
static int acpi_ec_query(struct acpi_ec *ec, u8 *data);
@@ -452,6 +453,7 @@ static void acpi_ec_submit_query(struct acpi_ec *ec)
ec_dbg_evt("Command(%s) submitted/blocked",
acpi_ec_cmd_string(ACPI_EC_COMMAND_QUERY));
ec->nr_pending_queries++;
+ ec->events_in_progress++;
queue_work(ec_wq, &ec->work);
}
}
@@ -518,7 +520,7 @@ static void acpi_ec_enable_event(struct acpi_ec *ec)
#ifdef CONFIG_PM_SLEEP
static void __acpi_ec_flush_work(void)
{
- drain_workqueue(ec_wq); /* flush ec->work */
+ flush_workqueue(ec_wq); /* flush ec->work */
flush_workqueue(ec_query_wq); /* flush queries */
}
@@ -1103,7 +1105,7 @@ void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit)
}
EXPORT_SYMBOL_GPL(acpi_ec_remove_query_handler);
-static struct acpi_ec_query *acpi_ec_create_query(u8 *pval)
+static struct acpi_ec_query *acpi_ec_create_query(struct acpi_ec *ec, u8 *pval)
{
struct acpi_ec_query *q;
struct transaction *t;
@@ -1111,11 +1113,13 @@ static struct acpi_ec_query *acpi_ec_create_query(u8 *pval)
q = kzalloc(sizeof (struct acpi_ec_query), GFP_KERNEL);
if (!q)
return NULL;
+
INIT_WORK(&q->work, acpi_ec_event_processor);
t = &q->transaction;
t->command = ACPI_EC_COMMAND_QUERY;
t->rdata = pval;
t->rlen = 1;
+ q->ec = ec;
return q;
}
@@ -1132,13 +1136,21 @@ static void acpi_ec_event_processor(struct work_struct *work)
{
struct acpi_ec_query *q = container_of(work, struct acpi_ec_query, work);
struct acpi_ec_query_handler *handler = q->handler;
+ struct acpi_ec *ec = q->ec;
ec_dbg_evt("Query(0x%02x) started", handler->query_bit);
+
if (handler->func)
handler->func(handler->data);
else if (handler->handle)
acpi_evaluate_object(handler->handle, NULL, NULL, NULL);
+
ec_dbg_evt("Query(0x%02x) stopped", handler->query_bit);
+
+ spin_lock_irq(&ec->lock);
+ ec->queries_in_progress--;
+ spin_unlock_irq(&ec->lock);
+
acpi_ec_delete_query(q);
}
@@ -1148,7 +1160,7 @@ static int acpi_ec_query(struct acpi_ec *ec, u8 *data)
int result;
struct acpi_ec_query *q;
- q = acpi_ec_create_query(&value);
+ q = acpi_ec_create_query(ec, &value);
if (!q)
return -ENOMEM;
@@ -1170,19 +1182,20 @@ static int acpi_ec_query(struct acpi_ec *ec, u8 *data)
}
/*
- * It is reported that _Qxx are evaluated in a parallel way on
- * Windows:
+ * It is reported that _Qxx are evaluated in a parallel way on Windows:
* https://bugzilla.kernel.org/show_bug.cgi?id=94411
*
- * Put this log entry before schedule_work() in order to make
- * it appearing before any other log entries occurred during the
- * work queue execution.
+ * Put this log entry before queue_work() to make it appear in the log
+ * before any other messages emitted during workqueue handling.
*/
ec_dbg_evt("Query(0x%02x) scheduled", value);
- if (!queue_work(ec_query_wq, &q->work)) {
- ec_dbg_evt("Query(0x%02x) overlapped", value);
- result = -EBUSY;
- }
+
+ spin_lock_irq(&ec->lock);
+
+ ec->queries_in_progress++;
+ queue_work(ec_query_wq, &q->work);
+
+ spin_unlock_irq(&ec->lock);
err_exit:
if (result)
@@ -1240,6 +1253,10 @@ static void acpi_ec_event_handler(struct work_struct *work)
ec_dbg_evt("Event stopped");
acpi_ec_check_event(ec);
+
+ spin_lock_irqsave(&ec->lock, flags);
+ ec->events_in_progress--;
+ spin_unlock_irqrestore(&ec->lock, flags);
}
static void acpi_ec_handle_interrupt(struct acpi_ec *ec)
@@ -2021,6 +2038,7 @@ void acpi_ec_set_gpe_wake_mask(u8 action)
bool acpi_ec_dispatch_gpe(void)
{
+ bool work_in_progress;
u32 ret;
if (!first_ec)
@@ -2041,8 +2059,19 @@ bool acpi_ec_dispatch_gpe(void)
if (ret == ACPI_INTERRUPT_HANDLED)
pm_pr_dbg("ACPI EC GPE dispatched\n");
- /* Flush the event and query workqueues. */
- acpi_ec_flush_work();
+ /* Drain EC work. */
+ do {
+ acpi_ec_flush_work();
+
+ pm_pr_dbg("ACPI EC work flushed\n");
+
+ spin_lock_irq(&first_ec->lock);
+
+ work_in_progress = first_ec->events_in_progress +
+ first_ec->queries_in_progress > 0;
+
+ spin_unlock_irq(&first_ec->lock);
+ } while (work_in_progress && !pm_wakeup_pending());
return false;
}
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
index d91b560e8867..54b2be94d23d 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -183,6 +183,8 @@ struct acpi_ec {
struct work_struct work;
unsigned long timestamp;
unsigned long nr_pending_queries;
+ unsigned int events_in_progress;
+ unsigned int queries_in_progress;
bool busy_polling;
unsigned int polling_guard;
};
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index 2c80765670bc..25d9f04f1995 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -1695,6 +1695,7 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
{
struct list_head resource_list;
bool is_serial_bus_slave = false;
+ static const struct acpi_device_id ignore_serial_bus_ids[] = {
/*
* These devices have multiple I2cSerialBus resources and an i2c-client
* must be instantiated for each, each with its own i2c_device_id.
@@ -1703,11 +1704,18 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
* drivers/platform/x86/i2c-multi-instantiate.c driver, which knows
* which i2c_device_id to use for each resource.
*/
- static const struct acpi_device_id i2c_multi_instantiate_ids[] = {
{"BSG1160", },
{"BSG2150", },
{"INT33FE", },
{"INT3515", },
+ /*
+ * HIDs of device with an UartSerialBusV2 resource for which userspace
+ * expects a regular tty cdev to be created (instead of the in kernel
+ * serdev) and which have a kernel driver which expects a platform_dev
+ * such as the rfkill-gpio driver.
+ */
+ {"BCM4752", },
+ {"LNV4752", },
{}
};
@@ -1721,8 +1729,7 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
fwnode_property_present(&device->fwnode, "baud")))
return true;
- /* Instantiate a pdev for the i2c-multi-instantiate drv to bind to */
- if (!acpi_match_device_ids(device, i2c_multi_instantiate_ids))
+ if (!acpi_match_device_ids(device, ignore_serial_bus_ids))
return false;
INIT_LIST_HEAD(&resource_list);
diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c
index f22f23933063..b3fb428461c6 100644
--- a/drivers/acpi/x86/utils.c
+++ b/drivers/acpi/x86/utils.c
@@ -22,58 +22,71 @@
* Some BIOS-es (temporarily) hide specific APCI devices to work around Windows
* driver bugs. We use DMI matching to match known cases of this.
*
- * We work around this by always reporting ACPI_STA_DEFAULT for these
- * devices. Note this MUST only be done for devices where this is safe.
+ * Likewise sometimes some not-actually present devices are sometimes
+ * reported as present, which may cause issues.
*
- * This forcing of devices to be present is limited to specific CPU (SoC)
- * models both to avoid potentially causing trouble on other models and
- * because some HIDs are re-used on different SoCs for completely
- * different devices.
+ * We work around this by using the below quirk list to override the status
+ * reported by the _STA method with a fixed value (ACPI_STA_DEFAULT or 0).
+ * Note this MUST only be done for devices where this is safe.
+ *
+ * This status overriding is limited to specific CPU (SoC) models both to
+ * avoid potentially causing trouble on other models and because some HIDs
+ * are re-used on different SoCs for completely different devices.
*/
-struct always_present_id {
+struct override_status_id {
struct acpi_device_id hid[2];
struct x86_cpu_id cpu_ids[2];
struct dmi_system_id dmi_ids[2]; /* Optional */
const char *uid;
+ const char *path;
+ unsigned long long status;
};
-#define X86_MATCH(model) X86_MATCH_INTEL_FAM6_MODEL(model, NULL)
-
-#define ENTRY(hid, uid, cpu_models, dmi...) { \
+#define ENTRY(status, hid, uid, path, cpu_model, dmi...) { \
{ { hid, }, {} }, \
- { cpu_models, {} }, \
+ { X86_MATCH_INTEL_FAM6_MODEL(cpu_model, NULL), {} }, \
{ { .matches = dmi }, {} }, \
uid, \
+ path, \
+ status, \
}
-static const struct always_present_id always_present_ids[] = {
+#define PRESENT_ENTRY_HID(hid, uid, cpu_model, dmi...) \
+ ENTRY(ACPI_STA_DEFAULT, hid, uid, NULL, cpu_model, dmi)
+
+#define NOT_PRESENT_ENTRY_HID(hid, uid, cpu_model, dmi...) \
+ ENTRY(0, hid, uid, NULL, cpu_model, dmi)
+
+#define PRESENT_ENTRY_PATH(path, cpu_model, dmi...) \
+ ENTRY(ACPI_STA_DEFAULT, "", NULL, path, cpu_model, dmi)
+
+#define NOT_PRESENT_ENTRY_PATH(path, cpu_model, dmi...) \
+ ENTRY(0, "", NULL, path, cpu_model, dmi)
+
+static const struct override_status_id override_status_ids[] = {
/*
* Bay / Cherry Trail PWM directly poked by GPU driver in win10,
* but Linux uses a separate PWM driver, harmless if not used.
*/
- ENTRY("80860F09", "1", X86_MATCH(ATOM_SILVERMONT), {}),
- ENTRY("80862288", "1", X86_MATCH(ATOM_AIRMONT), {}),
+ PRESENT_ENTRY_HID("80860F09", "1", ATOM_SILVERMONT, {}),
+ PRESENT_ENTRY_HID("80862288", "1", ATOM_AIRMONT, {}),
- /* Lenovo Yoga Book uses PWM2 for keyboard backlight control */
- ENTRY("80862289", "2", X86_MATCH(ATOM_AIRMONT), {
- DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X9"),
- }),
/*
* The INT0002 device is necessary to clear wakeup interrupt sources
* on Cherry Trail devices, without it we get nobody cared IRQ msgs.
*/
- ENTRY("INT0002", "1", X86_MATCH(ATOM_AIRMONT), {}),
+ PRESENT_ENTRY_HID("INT0002", "1", ATOM_AIRMONT, {}),
/*
* On the Dell Venue 11 Pro 7130 and 7139, the DSDT hides
* the touchscreen ACPI device until a certain time
* after _SB.PCI0.GFX0.LCD.LCD1._ON gets called has passed
* *and* _STA has been called at least 3 times since.
*/
- ENTRY("SYNA7500", "1", X86_MATCH(HASWELL_L), {
+ PRESENT_ENTRY_HID("SYNA7500", "1", HASWELL_L, {
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7130"),
}),
- ENTRY("SYNA7500", "1", X86_MATCH(HASWELL_L), {
+ PRESENT_ENTRY_HID("SYNA7500", "1", HASWELL_L, {
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7139"),
}),
@@ -81,54 +94,83 @@ static const struct always_present_id always_present_ids[] = {
/*
* The GPD win BIOS dated 20170221 has disabled the accelerometer, the
* drivers sometimes cause crashes under Windows and this is how the
- * manufacturer has solved this :| Note that the the DMI data is less
- * generic then it seems, a board_vendor of "AMI Corporation" is quite
- * rare and a board_name of "Default String" also is rare.
+ * manufacturer has solved this :| The DMI match may not seem unique,
+ * but it is. In the 67000+ DMI decode dumps from linux-hardware.org
+ * only 116 have board_vendor set to "AMI Corporation" and of those 116
+ * only the GPD win and pocket entries' board_name is "Default string".
*
* Unfortunately the GPD pocket also uses these strings and its BIOS
* was copy-pasted from the GPD win, so it has a disabled KIOX000A
* node which we should not enable, thus we also check the BIOS date.
*/
- ENTRY("KIOX000A", "1", X86_MATCH(ATOM_AIRMONT), {
+ PRESENT_ENTRY_HID("KIOX000A", "1", ATOM_AIRMONT, {
DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
DMI_MATCH(DMI_BOARD_NAME, "Default string"),
DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
DMI_MATCH(DMI_BIOS_DATE, "02/21/2017")
}),
- ENTRY("KIOX000A", "1", X86_MATCH(ATOM_AIRMONT), {
+ PRESENT_ENTRY_HID("KIOX000A", "1", ATOM_AIRMONT, {
DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
DMI_MATCH(DMI_BOARD_NAME, "Default string"),
DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
DMI_MATCH(DMI_BIOS_DATE, "03/20/2017")
}),
- ENTRY("KIOX000A", "1", X86_MATCH(ATOM_AIRMONT), {
+ PRESENT_ENTRY_HID("KIOX000A", "1", ATOM_AIRMONT, {
DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
DMI_MATCH(DMI_BOARD_NAME, "Default string"),
DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
DMI_MATCH(DMI_BIOS_DATE, "05/25/2017")
}),
+
+ /*
+ * The GPD win/pocket have a PCI wifi card, but its DSDT has the SDIO
+ * mmc controller enabled and that has a child-device which _PS3
+ * method sets a GPIO causing the PCI wifi card to turn off.
+ * See above remark about uniqueness of the DMI match.
+ */
+ NOT_PRESENT_ENTRY_PATH("\\_SB_.PCI0.SDHB.BRC1", ATOM_AIRMONT, {
+ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"),
+ DMI_EXACT_MATCH(DMI_BOARD_SERIAL, "Default string"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"),
+ }),
};
-bool acpi_device_always_present(struct acpi_device *adev)
+bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *status)
{
bool ret = false;
unsigned int i;
- for (i = 0; i < ARRAY_SIZE(always_present_ids); i++) {
- if (acpi_match_device_ids(adev, always_present_ids[i].hid))
+ for (i = 0; i < ARRAY_SIZE(override_status_ids); i++) {
+ if (!x86_match_cpu(override_status_ids[i].cpu_ids))
continue;
- if (!adev->pnp.unique_id ||
- strcmp(adev->pnp.unique_id, always_present_ids[i].uid))
+ if (override_status_ids[i].dmi_ids[0].matches[0].slot &&
+ !dmi_check_system(override_status_ids[i].dmi_ids))
continue;
- if (!x86_match_cpu(always_present_ids[i].cpu_ids))
- continue;
+ if (override_status_ids[i].path) {
+ struct acpi_buffer path = { ACPI_ALLOCATE_BUFFER, NULL };
+ bool match;
- if (always_present_ids[i].dmi_ids[0].matches[0].slot &&
- !dmi_check_system(always_present_ids[i].dmi_ids))
- continue;
+ if (acpi_get_name(adev->handle, ACPI_FULL_PATHNAME, &path))
+ continue;
+
+ match = strcmp((char *)path.pointer, override_status_ids[i].path) == 0;
+ kfree(path.pointer);
+
+ if (!match)
+ continue;
+ } else {
+ if (acpi_match_device_ids(adev, override_status_ids[i].hid))
+ continue;
+
+ if (!adev->pnp.unique_id ||
+ strcmp(adev->pnp.unique_id, override_status_ids[i].uid))
+ continue;
+ }
+ *status = override_status_ids[i].status;
ret = true;
break;
}
diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index c75fb600740c..99ae919255f4 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -1608,15 +1608,21 @@ static void binder_cleanup_transaction(struct binder_transaction *t,
/**
* binder_get_object() - gets object and checks for valid metadata
* @proc: binder_proc owning the buffer
+ * @u: sender's user pointer to base of buffer
* @buffer: binder_buffer that we're parsing.
* @offset: offset in the @buffer at which to validate an object.
* @object: struct binder_object to read into
*
- * Return: If there's a valid metadata object at @offset in @buffer, the
+ * Copy the binder object at the given offset into @object. If @u is
+ * provided then the copy is from the sender's buffer. If not, then
+ * it is copied from the target's @buffer.
+ *
+ * Return: If there's a valid metadata object at @offset, the
* size of that object. Otherwise, it returns zero. The object
* is read into the struct binder_object pointed to by @object.
*/
static size_t binder_get_object(struct binder_proc *proc,
+ const void __user *u,
struct binder_buffer *buffer,
unsigned long offset,
struct binder_object *object)
@@ -1626,10 +1632,16 @@ static size_t binder_get_object(struct binder_proc *proc,
size_t object_size = 0;
read_size = min_t(size_t, sizeof(*object), buffer->data_size - offset);
- if (offset > buffer->data_size || read_size < sizeof(*hdr) ||
- binder_alloc_copy_from_buffer(&proc->alloc, object, buffer,
- offset, read_size))
+ if (offset > buffer->data_size || read_size < sizeof(*hdr))
return 0;
+ if (u) {
+ if (copy_from_user(object, u + offset, read_size))
+ return 0;
+ } else {
+ if (binder_alloc_copy_from_buffer(&proc->alloc, object, buffer,
+ offset, read_size))
+ return 0;
+ }
/* Ok, now see if we read a complete object. */
hdr = &object->hdr;
@@ -1702,7 +1714,7 @@ static struct binder_buffer_object *binder_validate_ptr(
b, buffer_offset,
sizeof(object_offset)))
return NULL;
- object_size = binder_get_object(proc, b, object_offset, object);
+ object_size = binder_get_object(proc, NULL, b, object_offset, object);
if (!object_size || object->hdr.type != BINDER_TYPE_PTR)
return NULL;
if (object_offsetp)
@@ -1767,7 +1779,8 @@ static bool binder_validate_fixup(struct binder_proc *proc,
unsigned long buffer_offset;
struct binder_object last_object;
struct binder_buffer_object *last_bbo;
- size_t object_size = binder_get_object(proc, b, last_obj_offset,
+ size_t object_size = binder_get_object(proc, NULL, b,
+ last_obj_offset,
&last_object);
if (object_size != sizeof(*last_bbo))
return false;
@@ -1882,7 +1895,7 @@ static void binder_transaction_buffer_release(struct binder_proc *proc,
if (!binder_alloc_copy_from_buffer(&proc->alloc, &object_offset,
buffer, buffer_offset,
sizeof(object_offset)))
- object_size = binder_get_object(proc, buffer,
+ object_size = binder_get_object(proc, NULL, buffer,
object_offset, &object);
if (object_size == 0) {
pr_err("transaction release %d bad object at offset %lld, size %zd\n",
@@ -2269,8 +2282,8 @@ static int binder_translate_fd_array(struct binder_fd_array_object *fda,
if (!ret)
ret = binder_translate_fd(fd, offset, t, thread,
in_reply_to);
- if (ret < 0)
- return ret;
+ if (ret)
+ return ret > 0 ? -EINVAL : ret;
}
return 0;
}
@@ -2455,6 +2468,7 @@ static void binder_transaction(struct binder_proc *proc,
binder_size_t off_start_offset, off_end_offset;
binder_size_t off_min;
binder_size_t sg_buf_offset, sg_buf_end_offset;
+ binder_size_t user_offset = 0;
struct binder_proc *target_proc = NULL;
struct binder_thread *target_thread = NULL;
struct binder_node *target_node = NULL;
@@ -2469,6 +2483,8 @@ static void binder_transaction(struct binder_proc *proc,
int t_debug_id = atomic_inc_return(&binder_last_id);
char *secctx = NULL;
u32 secctx_sz = 0;
+ const void __user *user_buffer = (const void __user *)
+ (uintptr_t)tr->data.ptr.buffer;
e = binder_transaction_log_add(&binder_transaction_log);
e->debug_id = t_debug_id;
@@ -2780,19 +2796,6 @@ static void binder_transaction(struct binder_proc *proc,
t->buffer->clear_on_free = !!(t->flags & TF_CLEAR_BUF);
trace_binder_transaction_alloc_buf(t->buffer);
- if (binder_alloc_copy_user_to_buffer(
- &target_proc->alloc,
- t->buffer, 0,
- (const void __user *)
- (uintptr_t)tr->data.ptr.buffer,
- tr->data_size)) {
- binder_user_error("%d:%d got transaction with invalid data ptr\n",
- proc->pid, thread->pid);
- return_error = BR_FAILED_REPLY;
- return_error_param = -EFAULT;
- return_error_line = __LINE__;
- goto err_copy_data_failed;
- }
if (binder_alloc_copy_user_to_buffer(
&target_proc->alloc,
t->buffer,
@@ -2837,6 +2840,7 @@ static void binder_transaction(struct binder_proc *proc,
size_t object_size;
struct binder_object object;
binder_size_t object_offset;
+ binder_size_t copy_size;
if (binder_alloc_copy_from_buffer(&target_proc->alloc,
&object_offset,
@@ -2848,8 +2852,27 @@ static void binder_transaction(struct binder_proc *proc,
return_error_line = __LINE__;
goto err_bad_offset;
}
- object_size = binder_get_object(target_proc, t->buffer,
- object_offset, &object);
+
+ /*
+ * Copy the source user buffer up to the next object
+ * that will be processed.
+ */
+ copy_size = object_offset - user_offset;
+ if (copy_size && (user_offset > object_offset ||
+ binder_alloc_copy_user_to_buffer(
+ &target_proc->alloc,
+ t->buffer, user_offset,
+ user_buffer + user_offset,
+ copy_size))) {
+ binder_user_error("%d:%d got transaction with invalid data ptr\n",
+ proc->pid, thread->pid);
+ return_error = BR_FAILED_REPLY;
+ return_error_param = -EFAULT;
+ return_error_line = __LINE__;
+ goto err_copy_data_failed;
+ }
+ object_size = binder_get_object(target_proc, user_buffer,
+ t->buffer, object_offset, &object);
if (object_size == 0 || object_offset < off_min) {
binder_user_error("%d:%d got transaction with invalid offset (%lld, min %lld max %lld) or object.\n",
proc->pid, thread->pid,
@@ -2861,6 +2884,11 @@ static void binder_transaction(struct binder_proc *proc,
return_error_line = __LINE__;
goto err_bad_offset;
}
+ /*
+ * Set offset to the next buffer fragment to be
+ * copied
+ */
+ user_offset = object_offset + object_size;
hdr = &object.hdr;
off_min = object_offset + object_size;
@@ -2956,9 +2984,14 @@ static void binder_transaction(struct binder_proc *proc,
}
ret = binder_translate_fd_array(fda, parent, t, thread,
in_reply_to);
- if (ret < 0) {
+ if (!ret)
+ ret = binder_alloc_copy_to_buffer(&target_proc->alloc,
+ t->buffer,
+ object_offset,
+ fda, sizeof(*fda));
+ if (ret) {
return_error = BR_FAILED_REPLY;
- return_error_param = ret;
+ return_error_param = ret > 0 ? -EINVAL : ret;
return_error_line = __LINE__;
goto err_translate_failed;
}
@@ -3028,6 +3061,19 @@ static void binder_transaction(struct binder_proc *proc,
goto err_bad_object_type;
}
}
+ /* Done processing objects, copy the rest of the buffer */
+ if (binder_alloc_copy_user_to_buffer(
+ &target_proc->alloc,
+ t->buffer, user_offset,
+ user_buffer + user_offset,
+ tr->data_size - user_offset)) {
+ binder_user_error("%d:%d got transaction with invalid data ptr\n",
+ proc->pid, thread->pid);
+ return_error = BR_FAILED_REPLY;
+ return_error_param = -EFAULT;
+ return_error_line = __LINE__;
+ goto err_copy_data_failed;
+ }
if (t->buffer->oneway_spam_suspect)
tcomplete->type = BINDER_WORK_TRANSACTION_ONEWAY_SPAM_SUSPECT;
else
diff --git a/drivers/base/core.c b/drivers/base/core.c
index fd034d742447..b191bd17de89 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -485,8 +485,7 @@ static void device_link_release_fn(struct work_struct *work)
/* Ensure that all references to the link object have been dropped. */
device_link_synchronize_removal();
- while (refcount_dec_not_one(&link->rpm_active))
- pm_runtime_put(link->supplier);
+ pm_runtime_release_supplier(link, true);
put_device(link->consumer);
put_device(link->supplier);
diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c
index d504cd4ab3cb..38c2e1892a00 100644
--- a/drivers/base/power/runtime.c
+++ b/drivers/base/power/runtime.c
@@ -305,19 +305,40 @@ static int rpm_get_suppliers(struct device *dev)
return 0;
}
+/**
+ * pm_runtime_release_supplier - Drop references to device link's supplier.
+ * @link: Target device link.
+ * @check_idle: Whether or not to check if the supplier device is idle.
+ *
+ * Drop all runtime PM references associated with @link to its supplier device
+ * and if @check_idle is set, check if that device is idle (and so it can be
+ * suspended).
+ */
+void pm_runtime_release_supplier(struct device_link *link, bool check_idle)
+{
+ struct device *supplier = link->supplier;
+
+ /*
+ * The additional power.usage_count check is a safety net in case
+ * the rpm_active refcount becomes saturated, in which case
+ * refcount_dec_not_one() would return true forever, but it is not
+ * strictly necessary.
+ */
+ while (refcount_dec_not_one(&link->rpm_active) &&
+ atomic_read(&supplier->power.usage_count) > 0)
+ pm_runtime_put_noidle(supplier);
+
+ if (check_idle)
+ pm_request_idle(supplier);
+}
+
static void __rpm_put_suppliers(struct device *dev, bool try_to_suspend)
{
struct device_link *link;
list_for_each_entry_rcu(link, &dev->links.suppliers, c_node,
- device_links_read_lock_held()) {
-
- while (refcount_dec_not_one(&link->rpm_active))
- pm_runtime_put_noidle(link->supplier);
-
- if (try_to_suspend)
- pm_request_idle(link->supplier);
- }
+ device_links_read_lock_held())
+ pm_runtime_release_supplier(link, try_to_suspend);
}
static void rpm_put_suppliers(struct device *dev)
@@ -1772,9 +1793,7 @@ void pm_runtime_drop_link(struct device_link *link)
return;
pm_runtime_drop_link_count(link->consumer);
-
- while (refcount_dec_not_one(&link->rpm_active))
- pm_runtime_put(link->supplier);
+ pm_runtime_release_supplier(link, true);
}
static bool pm_runtime_need_not_resume(struct device *dev)
diff --git a/drivers/base/property.c b/drivers/base/property.c
index f1f35b48ab8b..6df99e526ab0 100644
--- a/drivers/base/property.c
+++ b/drivers/base/property.c
@@ -1206,8 +1206,10 @@ fwnode_graph_devcon_match(struct fwnode_handle *fwnode, const char *con_id,
fwnode_graph_for_each_endpoint(fwnode, ep) {
node = fwnode_graph_get_remote_port_parent(ep);
- if (!fwnode_device_is_available(node))
+ if (!fwnode_device_is_available(node)) {
+ fwnode_handle_put(node);
continue;
+ }
ret = match(node, con_id, data);
fwnode_handle_put(node);
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
index 21a0c2562ec0..f7811641ed5a 100644
--- a/drivers/base/regmap/regmap.c
+++ b/drivers/base/regmap/regmap.c
@@ -647,6 +647,7 @@ int regmap_attach_dev(struct device *dev, struct regmap *map,
if (ret)
return ret;
+ regmap_debugfs_exit(map);
regmap_debugfs_init(map);
/* Add a devres resource for dev_get_regmap() */
diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c
index 4debcea4fb12..0a482212c7e8 100644
--- a/drivers/base/swnode.c
+++ b/drivers/base/swnode.c
@@ -529,7 +529,7 @@ software_node_get_reference_args(const struct fwnode_handle *fwnode,
return -ENOENT;
if (nargs_prop) {
- error = property_entry_read_int_array(swnode->node->properties,
+ error = property_entry_read_int_array(ref->node->properties,
nargs_prop, sizeof(u32),
&nargs_prop_val, 1);
if (error)
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index c4267da716fe..8026125037ae 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -1015,7 +1015,7 @@ static DECLARE_DELAYED_WORK(fd_timer, fd_timer_workfn);
static void cancel_activity(void)
{
do_floppy = NULL;
- cancel_delayed_work_sync(&fd_timer);
+ cancel_delayed_work(&fd_timer);
cancel_work_sync(&floppy_work);
}
@@ -3081,6 +3081,8 @@ static void raw_cmd_free(struct floppy_raw_cmd **ptr)
}
}
+#define MAX_LEN (1UL << MAX_ORDER << PAGE_SHIFT)
+
static int raw_cmd_copyin(int cmd, void __user *param,
struct floppy_raw_cmd **rcmd)
{
@@ -3108,7 +3110,7 @@ static int raw_cmd_copyin(int cmd, void __user *param,
ptr->resultcode = 0;
if (ptr->flags & (FD_RAW_READ | FD_RAW_WRITE)) {
- if (ptr->length <= 0)
+ if (ptr->length <= 0 || ptr->length >= MAX_LEN)
return -EINVAL;
ptr->kernel_data = (char *)fd_dma_mem_alloc(ptr->length);
fallback_on_nodma_alloc(&ptr->kernel_data, ptr->length);
diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
index 323af5c9c802..e23aac1a83f7 100644
--- a/drivers/block/null_blk/main.c
+++ b/drivers/block/null_blk/main.c
@@ -340,9 +340,9 @@ static int nullb_update_nr_hw_queues(struct nullb_device *dev,
return 0;
/*
- * Make sure at least one queue exists for each of submit and poll.
+ * Make sure at least one submit queue exists.
*/
- if (!submit_queues || !poll_queues)
+ if (!submit_queues)
return -EINVAL;
/*
@@ -1891,7 +1891,7 @@ static int null_init_tag_set(struct nullb *nullb, struct blk_mq_tag_set *set)
if (g_shared_tag_bitmap)
set->flags |= BLK_MQ_F_TAG_HCTX_SHARED;
set->driver_data = nullb;
- if (g_poll_queues)
+ if (poll_queues)
set->nr_maps = 3;
else
set->nr_maps = 1;
@@ -1918,8 +1918,6 @@ static int null_validate_conf(struct nullb_device *dev)
if (dev->poll_queues > g_poll_queues)
dev->poll_queues = g_poll_queues;
- else if (dev->poll_queues == 0)
- dev->poll_queues = 1;
dev->prev_poll_queues = dev->poll_queues;
dev->queue_mode = min_t(unsigned int, dev->queue_mode, NULL_Q_MQ);
diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
index b11567b0fd9a..851a0c9b8fae 100644
--- a/drivers/bluetooth/btintel.c
+++ b/drivers/bluetooth/btintel.c
@@ -2493,10 +2493,14 @@ static int btintel_setup_combined(struct hci_dev *hdev)
case 0x12: /* ThP */
case 0x13: /* HrP */
case 0x14: /* CcP */
- /* Some legacy bootloader devices from JfP supports both old
- * and TLV based HCI_Intel_Read_Version command. But we don't
- * want to use the TLV based setup routines for those legacy
- * bootloader device.
+ /* Some legacy bootloader devices starting from JfP,
+ * the operational firmware supports both old and TLV based
+ * HCI_Intel_Read_Version command based on the command
+ * parameter.
+ *
+ * For upgrading firmware case, the TLV based version cannot
+ * be used because the firmware filename for legacy bootloader
+ * is based on the old format.
*
* Also, it is not easy to convert TLV based version from the
* legacy version format.
@@ -2508,6 +2512,20 @@ static int btintel_setup_combined(struct hci_dev *hdev)
err = btintel_read_version(hdev, &ver);
if (err)
return err;
+
+ /* Apply the device specific HCI quirks
+ *
+ * All Legacy bootloader devices support WBS
+ */
+ set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks);
+
+ /* Valid LE States quirk for JfP/ThP familiy */
+ if (ver.hw_variant == 0x11 || ver.hw_variant == 0x12)
+ set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
+
+ /* Setup MSFT Extension support */
+ btintel_set_msft_opcode(hdev, ver.hw_variant);
+
err = btintel_bootloader_setup(hdev, &ver);
break;
case 0x17:
diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c
index 9872ef18f9fe..1cbdeca1fdc4 100644
--- a/drivers/bluetooth/btmtksdio.c
+++ b/drivers/bluetooth/btmtksdio.c
@@ -1042,6 +1042,8 @@ static int btmtksdio_runtime_suspend(struct device *dev)
if (!bdev)
return 0;
+ sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER);
+
sdio_claim_host(bdev->func);
sdio_writel(bdev->func, C_FW_OWN_REQ_SET, MTK_REG_CHLPCR, &err);
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index c923c38658ba..ea72afb7abea 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -2600,6 +2600,7 @@ static int btusb_mtk_setup_firmware_79xx(struct hci_dev *hdev, const char *fwnam
} else {
bt_dev_err(hdev, "Failed wmt patch dwnld status (%d)",
status);
+ err = -EIO;
goto err_release_fw;
}
}
@@ -2895,6 +2896,10 @@ static int btusb_mtk_setup(struct hci_dev *hdev)
"mediatek/BT_RAM_CODE_MT%04x_1_%x_hdr.bin",
dev_id & 0xffff, (fw_version & 0xff) + 1);
err = btusb_mtk_setup_firmware_79xx(hdev, fw_bin_name);
+ if (err < 0) {
+ bt_dev_err(hdev, "Failed to set up firmware (%d)", err);
+ return err;
+ }
/* It's Device EndPoint Reset Option Register */
btusb_mtk_uhw_reg_write(data, MTK_EP_RST_OPT, MTK_EP_RST_IN_OUT_OPT);
diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c
index ef54afa29357..7abf99f0ee39 100644
--- a/drivers/bluetooth/hci_bcm.c
+++ b/drivers/bluetooth/hci_bcm.c
@@ -1188,7 +1188,12 @@ static int bcm_probe(struct platform_device *pdev)
return -ENOMEM;
dev->dev = &pdev->dev;
- dev->irq = platform_get_irq(pdev, 0);
+
+ ret = platform_get_irq(pdev, 0);
+ if (ret < 0)
+ return ret;
+
+ dev->irq = ret;
/* Initialize routing field to an unused value */
dev->pcm_int_params[0] = 0xff;
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index dd768a8ed7cb..f6e91fb432a3 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -1928,6 +1928,9 @@ static int qca_power_off(struct hci_dev *hdev)
hu->hdev->hw_error = NULL;
hu->hdev->cmd_timeout = NULL;
+ del_timer_sync(&qca->wake_retrans_timer);
+ del_timer_sync(&qca->tx_idle_timer);
+
/* Stop sending shutdown command if soc crashes. */
if (soc_type != QCA_ROME
&& qca->memdump_state == QCA_MEMDUMP_IDLE) {
@@ -2056,14 +2059,14 @@ static int qca_serdev_probe(struct serdev_device *serdev)
qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable",
GPIOD_OUT_LOW);
- if (!qcadev->bt_en && data->soc_type == QCA_WCN6750) {
+ if (IS_ERR_OR_NULL(qcadev->bt_en) && data->soc_type == QCA_WCN6750) {
dev_err(&serdev->dev, "failed to acquire BT_EN gpio\n");
power_ctrl_enabled = false;
}
qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl",
GPIOD_IN);
- if (!qcadev->sw_ctrl && data->soc_type == QCA_WCN6750)
+ if (IS_ERR_OR_NULL(qcadev->sw_ctrl) && data->soc_type == QCA_WCN6750)
dev_warn(&serdev->dev, "failed to acquire SW_CTRL gpio\n");
qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL);
@@ -2085,7 +2088,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable",
GPIOD_OUT_LOW);
- if (!qcadev->bt_en) {
+ if (IS_ERR_OR_NULL(qcadev->bt_en)) {
dev_warn(&serdev->dev, "failed to acquire enable gpio\n");
power_ctrl_enabled = false;
}
diff --git a/drivers/bluetooth/hci_vhci.c b/drivers/bluetooth/hci_vhci.c
index b45db0db347c..95af01bdd02a 100644
--- a/drivers/bluetooth/hci_vhci.c
+++ b/drivers/bluetooth/hci_vhci.c
@@ -176,6 +176,8 @@ static ssize_t force_wakeup_write(struct file *file,
if (data->wakeup == enable)
return -EALREADY;
+ data->wakeup = enable;
+
return count;
}
@@ -237,6 +239,8 @@ static int __vhci_create_device(struct vhci_data *data, __u8 opcode)
if (opcode & 0x80)
set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks);
+ set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
+
if (hci_register_dev(hdev) < 0) {
BT_ERR("Can't register HCI device");
hci_free_dev(hdev);
diff --git a/drivers/bluetooth/virtio_bt.c b/drivers/bluetooth/virtio_bt.c
index 57908ce4fae8..076e4942a3f0 100644
--- a/drivers/bluetooth/virtio_bt.c
+++ b/drivers/bluetooth/virtio_bt.c
@@ -202,6 +202,9 @@ static void virtbt_rx_handle(struct virtio_bluetooth *vbt, struct sk_buff *skb)
hci_skb_pkt_type(skb) = pkt_type;
hci_recv_frame(vbt->hdev, skb);
break;
+ default:
+ kfree_skb(skb);
+ break;
}
}
diff --git a/drivers/bus/mhi/core/init.c b/drivers/bus/mhi/core/init.c
index 5aaca6d0f52b..f1ec34417592 100644
--- a/drivers/bus/mhi/core/init.c
+++ b/drivers/bus/mhi/core/init.c
@@ -788,6 +788,7 @@ static int parse_ch_cfg(struct mhi_controller *mhi_cntrl,
mhi_chan->offload_ch = ch_cfg->offload_channel;
mhi_chan->db_cfg.reset_req = ch_cfg->doorbell_mode_switch;
mhi_chan->pre_alloc = ch_cfg->auto_queue;
+ mhi_chan->wake_capable = ch_cfg->wake_capable;
/*
* If MHI host allocates buffers, then the channel direction
diff --git a/drivers/bus/mhi/core/pm.c b/drivers/bus/mhi/core/pm.c
index 547e6e769546..bb9a2043f3a2 100644
--- a/drivers/bus/mhi/core/pm.c
+++ b/drivers/bus/mhi/core/pm.c
@@ -1053,7 +1053,7 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
enum mhi_ee_type current_ee;
enum dev_st_transition next_state;
struct device *dev = &mhi_cntrl->mhi_dev->dev;
- u32 val;
+ u32 interval_us = 25000; /* poll register field every 25 milliseconds */
int ret;
dev_info(dev, "Requested to power ON\n");
@@ -1070,10 +1070,6 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
mutex_lock(&mhi_cntrl->pm_mutex);
mhi_cntrl->pm_state = MHI_PM_DISABLE;
- ret = mhi_init_irq_setup(mhi_cntrl);
- if (ret)
- goto error_setup_irq;
-
/* Setup BHI INTVEC */
write_lock_irq(&mhi_cntrl->pm_lock);
mhi_write_reg(mhi_cntrl, mhi_cntrl->bhi, BHI_INTVEC, 0);
@@ -1087,7 +1083,7 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
dev_err(dev, "%s is not a valid EE for power on\n",
TO_MHI_EXEC_STR(current_ee));
ret = -EIO;
- goto error_async_power_up;
+ goto error_exit;
}
state = mhi_get_mhi_state(mhi_cntrl);
@@ -1096,20 +1092,12 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
if (state == MHI_STATE_SYS_ERR) {
mhi_set_mhi_state(mhi_cntrl, MHI_STATE_RESET);
- ret = wait_event_timeout(mhi_cntrl->state_event,
- MHI_PM_IN_FATAL_STATE(mhi_cntrl->pm_state) ||
- mhi_read_reg_field(mhi_cntrl,
- mhi_cntrl->regs,
- MHICTRL,
- MHICTRL_RESET_MASK,
- MHICTRL_RESET_SHIFT,
- &val) ||
- !val,
- msecs_to_jiffies(mhi_cntrl->timeout_ms));
- if (!ret) {
- ret = -EIO;
+ ret = mhi_poll_reg_field(mhi_cntrl, mhi_cntrl->regs, MHICTRL,
+ MHICTRL_RESET_MASK, MHICTRL_RESET_SHIFT, 0,
+ interval_us);
+ if (ret) {
dev_info(dev, "Failed to reset MHI due to syserr state\n");
- goto error_async_power_up;
+ goto error_exit;
}
/*
@@ -1119,6 +1107,10 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
mhi_write_reg(mhi_cntrl, mhi_cntrl->bhi, BHI_INTVEC, 0);
}
+ ret = mhi_init_irq_setup(mhi_cntrl);
+ if (ret)
+ goto error_exit;
+
/* Transition to next state */
next_state = MHI_IN_PBL(current_ee) ?
DEV_ST_TRANSITION_PBL : DEV_ST_TRANSITION_READY;
@@ -1131,10 +1123,7 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
return 0;
-error_async_power_up:
- mhi_deinit_free_irq(mhi_cntrl);
-
-error_setup_irq:
+error_exit:
mhi_cntrl->pm_state = MHI_PM_DISABLE;
mutex_unlock(&mhi_cntrl->pm_mutex);
diff --git a/drivers/bus/mhi/pci_generic.c b/drivers/bus/mhi/pci_generic.c
index 4c577a731709..b8b2811c7c0a 100644
--- a/drivers/bus/mhi/pci_generic.c
+++ b/drivers/bus/mhi/pci_generic.c
@@ -1018,7 +1018,7 @@ static int __maybe_unused mhi_pci_freeze(struct device *dev)
* context.
*/
if (test_and_clear_bit(MHI_PCI_DEV_STARTED, &mhi_pdev->status)) {
- mhi_power_down(mhi_cntrl, false);
+ mhi_power_down(mhi_cntrl, true);
mhi_unprepare_after_power_down(mhi_cntrl);
}
diff --git a/drivers/char/mwave/3780i.h b/drivers/char/mwave/3780i.h
index 9ccb6b270b07..95164246afd1 100644
--- a/drivers/char/mwave/3780i.h
+++ b/drivers/char/mwave/3780i.h
@@ -68,7 +68,7 @@ typedef struct {
unsigned char ClockControl:1; /* RW: Clock control: 0=normal, 1=stop 3780i clocks */
unsigned char SoftReset:1; /* RW: Soft reset 0=normal, 1=soft reset active */
unsigned char ConfigMode:1; /* RW: Configuration mode, 0=normal, 1=config mode */
- unsigned char Reserved:5; /* 0: Reserved */
+ unsigned short Reserved:13; /* 0: Reserved */
} DSP_ISA_SLAVE_CONTROL;
diff --git a/drivers/char/random.c b/drivers/char/random.c
index 7470ee24db2f..a27ae3999ff3 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -912,12 +912,14 @@ static struct crng_state *select_crng(void)
/*
* crng_fast_load() can be called by code in the interrupt service
- * path. So we can't afford to dilly-dally.
+ * path. So we can't afford to dilly-dally. Returns the number of
+ * bytes processed from cp.
*/
-static int crng_fast_load(const char *cp, size_t len)
+static size_t crng_fast_load(const char *cp, size_t len)
{
unsigned long flags;
char *p;
+ size_t ret = 0;
if (!spin_trylock_irqsave(&primary_crng.lock, flags))
return 0;
@@ -928,7 +930,7 @@ static int crng_fast_load(const char *cp, size_t len)
p = (unsigned char *) &primary_crng.state[4];
while (len > 0 && crng_init_cnt < CRNG_INIT_CNT_THRESH) {
p[crng_init_cnt % CHACHA_KEY_SIZE] ^= *cp;
- cp++; crng_init_cnt++; len--;
+ cp++; crng_init_cnt++; len--; ret++;
}
spin_unlock_irqrestore(&primary_crng.lock, flags);
if (crng_init_cnt >= CRNG_INIT_CNT_THRESH) {
@@ -936,7 +938,7 @@ static int crng_fast_load(const char *cp, size_t len)
crng_init = 1;
pr_notice("fast init done\n");
}
- return 1;
+ return ret;
}
/*
@@ -1287,7 +1289,7 @@ void add_interrupt_randomness(int irq, int irq_flags)
if (unlikely(crng_init == 0)) {
if ((fast_pool->count >= 64) &&
crng_fast_load((char *) fast_pool->pool,
- sizeof(fast_pool->pool))) {
+ sizeof(fast_pool->pool)) > 0) {
fast_pool->count = 0;
fast_pool->last = now;
}
@@ -2295,8 +2297,11 @@ void add_hwgenerator_randomness(const char *buffer, size_t count,
struct entropy_store *poolp = &input_pool;
if (unlikely(crng_init == 0)) {
- crng_fast_load(buffer, count);
- return;
+ size_t ret = crng_fast_load(buffer, count);
+ count -= ret;
+ buffer += ret;
+ if (!count || crng_init == 0)
+ return;
}
/* Suspend writing if we're above the trickle threshold.
diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
index ddaeceb7e109..df37e7b6a10a 100644
--- a/drivers/char/tpm/tpm-chip.c
+++ b/drivers/char/tpm/tpm-chip.c
@@ -474,13 +474,21 @@ static void tpm_del_char_device(struct tpm_chip *chip)
/* Make the driver uncallable. */
down_write(&chip->ops_sem);
- if (chip->flags & TPM_CHIP_FLAG_TPM2) {
- if (!tpm_chip_start(chip)) {
- tpm2_shutdown(chip, TPM2_SU_CLEAR);
- tpm_chip_stop(chip);
+
+ /*
+ * Check if chip->ops is still valid: In case that the controller
+ * drivers shutdown handler unregisters the controller in its
+ * shutdown handler we are called twice and chip->ops to NULL.
+ */
+ if (chip->ops) {
+ if (chip->flags & TPM_CHIP_FLAG_TPM2) {
+ if (!tpm_chip_start(chip)) {
+ tpm2_shutdown(chip, TPM2_SU_CLEAR);
+ tpm_chip_stop(chip);
+ }
}
+ chip->ops = NULL;
}
- chip->ops = NULL;
up_write(&chip->ops_sem);
}
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
index b2659a4c4016..dc56b976d816 100644
--- a/drivers/char/tpm/tpm_tis_core.c
+++ b/drivers/char/tpm/tpm_tis_core.c
@@ -950,9 +950,11 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
priv->timeout_max = TPM_TIMEOUT_USECS_MAX;
priv->phy_ops = phy_ops;
+ dev_set_drvdata(&chip->dev, priv);
+
rc = tpm_tis_read32(priv, TPM_DID_VID(0), &vendor);
if (rc < 0)
- goto out_err;
+ return rc;
priv->manufacturer_id = vendor;
@@ -962,8 +964,6 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
priv->timeout_max = TIS_TIMEOUT_MAX_ATML;
}
- dev_set_drvdata(&chip->dev, priv);
-
if (is_bsw()) {
priv->ilb_base_addr = ioremap(INTEL_LEGACY_BLK_BASE_ADDR,
ILB_REMAP_SIZE);
@@ -994,7 +994,15 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
intmask |= TPM_INTF_CMD_READY_INT | TPM_INTF_LOCALITY_CHANGE_INT |
TPM_INTF_DATA_AVAIL_INT | TPM_INTF_STS_VALID_INT;
intmask &= ~TPM_GLOBAL_INT_ENABLE;
+
+ rc = request_locality(chip, 0);
+ if (rc < 0) {
+ rc = -ENODEV;
+ goto out_err;
+ }
+
tpm_tis_write32(priv, TPM_INT_ENABLE(priv->locality), intmask);
+ release_locality(chip, 0);
rc = tpm_chip_start(chip);
if (rc)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index a254512965eb..3667b4d731e7 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -932,8 +932,7 @@ static int bcm2835_clock_is_on(struct clk_hw *hw)
static u32 bcm2835_clock_choose_div(struct clk_hw *hw,
unsigned long rate,
- unsigned long parent_rate,
- bool round_up)
+ unsigned long parent_rate)
{
struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
const struct bcm2835_clock_data *data = clock->data;
@@ -945,10 +944,6 @@ static u32 bcm2835_clock_choose_div(struct clk_hw *hw,
rem = do_div(temp, rate);
div = temp;
-
- /* Round up and mask off the unused bits */
- if (round_up && ((div & unused_frac_mask) != 0 || rem != 0))
- div += unused_frac_mask + 1;
div &= ~unused_frac_mask;
/* different clamping limits apply for a mash clock */
@@ -1079,7 +1074,7 @@ static int bcm2835_clock_set_rate(struct clk_hw *hw,
struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
struct bcm2835_cprman *cprman = clock->cprman;
const struct bcm2835_clock_data *data = clock->data;
- u32 div = bcm2835_clock_choose_div(hw, rate, parent_rate, false);
+ u32 div = bcm2835_clock_choose_div(hw, rate, parent_rate);
u32 ctl;
spin_lock(&cprman->regs_lock);
@@ -1130,7 +1125,7 @@ static unsigned long bcm2835_clock_choose_div_and_prate(struct clk_hw *hw,
if (!(BIT(parent_idx) & data->set_rate_parent)) {
*prate = clk_hw_get_rate(parent);
- *div = bcm2835_clock_choose_div(hw, rate, *prate, true);
+ *div = bcm2835_clock_choose_div(hw, rate, *prate);
*avgrate = bcm2835_clock_rate_from_divisor(clock, *prate, *div);
@@ -1216,7 +1211,7 @@ static int bcm2835_clock_determine_rate(struct clk_hw *hw,
rate = bcm2835_clock_choose_div_and_prate(hw, i, req->rate,
&div, &prate,
&avgrate);
- if (rate > best_rate && rate <= req->rate) {
+ if (abs(req->rate - rate) < abs(req->rate - best_rate)) {
best_parent = parent;
best_prate = prate;
best_rate = rate;
diff --git a/drivers/clk/clk-bm1880.c b/drivers/clk/clk-bm1880.c
index e6d6599d310a..fad78a22218e 100644
--- a/drivers/clk/clk-bm1880.c
+++ b/drivers/clk/clk-bm1880.c
@@ -522,14 +522,6 @@ static struct clk_hw *bm1880_clk_register_pll(struct bm1880_pll_hw_clock *pll_cl
return hw;
}
-static void bm1880_clk_unregister_pll(struct clk_hw *hw)
-{
- struct bm1880_pll_hw_clock *pll_hw = to_bm1880_pll_clk(hw);
-
- clk_hw_unregister(hw);
- kfree(pll_hw);
-}
-
static int bm1880_clk_register_plls(struct bm1880_pll_hw_clock *clks,
int num_clks,
struct bm1880_clock_data *data)
@@ -555,7 +547,7 @@ static int bm1880_clk_register_plls(struct bm1880_pll_hw_clock *clks,
err_clk:
while (i--)
- bm1880_clk_unregister_pll(data->hw_data.hws[clks[i].pll.id]);
+ clk_hw_unregister(data->hw_data.hws[clks[i].pll.id]);
return PTR_ERR(hw);
}
@@ -695,14 +687,6 @@ static struct clk_hw *bm1880_clk_register_div(struct bm1880_div_hw_clock *div_cl
return hw;
}
-static void bm1880_clk_unregister_div(struct clk_hw *hw)
-{
- struct bm1880_div_hw_clock *div_hw = to_bm1880_div_clk(hw);
-
- clk_hw_unregister(hw);
- kfree(div_hw);
-}
-
static int bm1880_clk_register_divs(struct bm1880_div_hw_clock *clks,
int num_clks,
struct bm1880_clock_data *data)
@@ -729,7 +713,7 @@ static int bm1880_clk_register_divs(struct bm1880_div_hw_clock *clks,
err_clk:
while (i--)
- bm1880_clk_unregister_div(data->hw_data.hws[clks[i].div.id]);
+ clk_hw_unregister(data->hw_data.hws[clks[i].div.id]);
return PTR_ERR(hw);
}
diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c
index 57ae183982d8..f7b41366666e 100644
--- a/drivers/clk/clk-si5341.c
+++ b/drivers/clk/clk-si5341.c
@@ -1740,7 +1740,7 @@ static int si5341_probe(struct i2c_client *client,
clk_prepare(data->clk[i].hw.clk);
}
- err = of_clk_add_hw_provider(client->dev.of_node, of_clk_si5341_get,
+ err = devm_of_clk_add_hw_provider(&client->dev, of_clk_si5341_get,
data);
if (err) {
dev_err(&client->dev, "unable to add clk provider\n");
diff --git a/drivers/clk/clk-stm32f4.c b/drivers/clk/clk-stm32f4.c
index af46176ad053..473dfe632cc5 100644
--- a/drivers/clk/clk-stm32f4.c
+++ b/drivers/clk/clk-stm32f4.c
@@ -129,7 +129,6 @@ static const struct stm32f4_gate_data stm32f429_gates[] __initconst = {
{ STM32F4_RCC_APB2ENR, 20, "spi5", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 21, "spi6", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 22, "sai1", "apb2_div" },
- { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div" },
};
static const struct stm32f4_gate_data stm32f469_gates[] __initconst = {
@@ -211,7 +210,6 @@ static const struct stm32f4_gate_data stm32f469_gates[] __initconst = {
{ STM32F4_RCC_APB2ENR, 20, "spi5", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 21, "spi6", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 22, "sai1", "apb2_div" },
- { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div" },
};
static const struct stm32f4_gate_data stm32f746_gates[] __initconst = {
@@ -286,7 +284,6 @@ static const struct stm32f4_gate_data stm32f746_gates[] __initconst = {
{ STM32F4_RCC_APB2ENR, 21, "spi6", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 22, "sai1", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 23, "sai2", "apb2_div" },
- { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div" },
};
static const struct stm32f4_gate_data stm32f769_gates[] __initconst = {
@@ -364,7 +361,6 @@ static const struct stm32f4_gate_data stm32f769_gates[] __initconst = {
{ STM32F4_RCC_APB2ENR, 21, "spi6", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 22, "sai1", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 23, "sai2", "apb2_div" },
- { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 30, "mdio", "apb2_div" },
};
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 566ee2c78709..21b17d6ced6d 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -3343,6 +3343,24 @@ static int __init clk_debug_init(void)
{
struct clk_core *core;
+#ifdef CLOCK_ALLOW_WRITE_DEBUGFS
+ pr_warn("\n");
+ pr_warn("********************************************************************\n");
+ pr_warn("** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **\n");
+ pr_warn("** **\n");
+ pr_warn("** WRITEABLE clk DebugFS SUPPORT HAS BEEN ENABLED IN THIS KERNEL **\n");
+ pr_warn("** **\n");
+ pr_warn("** This means that this kernel is built to expose clk operations **\n");
+ pr_warn("** such as parent or rate setting, enabling, disabling, etc. **\n");
+ pr_warn("** to userspace, which may compromise security on your system. **\n");
+ pr_warn("** **\n");
+ pr_warn("** If you see this message and you are not debugging the **\n");
+ pr_warn("** kernel, report this immediately to your vendor! **\n");
+ pr_warn("** **\n");
+ pr_warn("** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **\n");
+ pr_warn("********************************************************************\n");
+#endif
+
rootdir = debugfs_create_dir("clk", NULL);
debugfs_create_file("clk_summary", 0444, rootdir, &all_lists,
diff --git a/drivers/clk/imx/clk-imx8mn.c b/drivers/clk/imx/clk-imx8mn.c
index c55577604e16..021355a24708 100644
--- a/drivers/clk/imx/clk-imx8mn.c
+++ b/drivers/clk/imx/clk-imx8mn.c
@@ -277,9 +277,9 @@ static const char * const imx8mn_pdm_sels[] = {"osc_24m", "sys_pll2_100m", "audi
static const char * const imx8mn_dram_core_sels[] = {"dram_pll_out", "dram_alt_root", };
-static const char * const imx8mn_clko1_sels[] = {"osc_24m", "sys_pll1_800m", "osc_27m",
- "sys_pll1_200m", "audio_pll2_out", "vpu_pll",
- "sys_pll1_80m", };
+static const char * const imx8mn_clko1_sels[] = {"osc_24m", "sys_pll1_800m", "dummy",
+ "sys_pll1_200m", "audio_pll2_out", "sys_pll2_500m",
+ "dummy", "sys_pll1_80m", };
static const char * const imx8mn_clko2_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_400m",
"sys_pll2_166m", "sys_pll3_out", "audio_pll1_out",
"video_pll1_out", "osc_32k", };
diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c
index d6eed760327d..608e0e8ca49a 100644
--- a/drivers/clk/meson/gxbb.c
+++ b/drivers/clk/meson/gxbb.c
@@ -713,6 +713,35 @@ static struct clk_regmap gxbb_mpll_prediv = {
};
static struct clk_regmap gxbb_mpll0_div = {
+ .data = &(struct meson_clk_mpll_data){
+ .sdm = {
+ .reg_off = HHI_MPLL_CNTL7,
+ .shift = 0,
+ .width = 14,
+ },
+ .sdm_en = {
+ .reg_off = HHI_MPLL_CNTL,
+ .shift = 25,
+ .width = 1,
+ },
+ .n2 = {
+ .reg_off = HHI_MPLL_CNTL7,
+ .shift = 16,
+ .width = 9,
+ },
+ .lock = &meson_clk_lock,
+ },
+ .hw.init = &(struct clk_init_data){
+ .name = "mpll0_div",
+ .ops = &meson_clk_mpll_ops,
+ .parent_hws = (const struct clk_hw *[]) {
+ &gxbb_mpll_prediv.hw
+ },
+ .num_parents = 1,
+ },
+};
+
+static struct clk_regmap gxl_mpll0_div = {
.data = &(struct meson_clk_mpll_data){
.sdm = {
.reg_off = HHI_MPLL_CNTL7,
@@ -749,7 +778,16 @@ static struct clk_regmap gxbb_mpll0 = {
.hw.init = &(struct clk_init_data){
.name = "mpll0",
.ops = &clk_regmap_gate_ops,
- .parent_hws = (const struct clk_hw *[]) { &gxbb_mpll0_div.hw },
+ .parent_data = &(const struct clk_parent_data) {
+ /*
+ * Note:
+ * GXL and GXBB have different SDM_EN registers. We
+ * fallback to the global naming string mechanism so
+ * mpll0_div picks up the appropriate one.
+ */
+ .name = "mpll0_div",
+ .index = -1,
+ },
.num_parents = 1,
.flags = CLK_SET_RATE_PARENT,
},
@@ -3044,7 +3082,7 @@ static struct clk_hw_onecell_data gxl_hw_onecell_data = {
[CLKID_VAPB_1] = &gxbb_vapb_1.hw,
[CLKID_VAPB_SEL] = &gxbb_vapb_sel.hw,
[CLKID_VAPB] = &gxbb_vapb.hw,
- [CLKID_MPLL0_DIV] = &gxbb_mpll0_div.hw,
+ [CLKID_MPLL0_DIV] = &gxl_mpll0_div.hw,
[CLKID_MPLL1_DIV] = &gxbb_mpll1_div.hw,
[CLKID_MPLL2_DIV] = &gxbb_mpll2_div.hw,
[CLKID_MPLL_PREDIV] = &gxbb_mpll_prediv.hw,
@@ -3439,7 +3477,7 @@ static struct clk_regmap *const gxl_clk_regmaps[] = {
&gxbb_mpll0,
&gxbb_mpll1,
&gxbb_mpll2,
- &gxbb_mpll0_div,
+ &gxl_mpll0_div,
&gxbb_mpll1_div,
&gxbb_mpll2_div,
&gxbb_cts_amclk_div,
diff --git a/drivers/clk/qcom/gcc-sc7280.c b/drivers/clk/qcom/gcc-sc7280.c
index 8fb6bd69f240..423627d49719 100644
--- a/drivers/clk/qcom/gcc-sc7280.c
+++ b/drivers/clk/qcom/gcc-sc7280.c
@@ -2917,7 +2917,7 @@ static struct clk_branch gcc_cfg_noc_lpass_clk = {
.enable_mask = BIT(0),
.hw.init = &(struct clk_init_data){
.name = "gcc_cfg_noc_lpass_clk",
- .ops = &clk_branch2_ops,
+ .ops = &clk_branch2_aon_ops,
},
},
};
diff --git a/drivers/clk/renesas/rzg2l-cpg.c b/drivers/clk/renesas/rzg2l-cpg.c
index 4021f6cabda4..aafd1879ff56 100644
--- a/drivers/clk/renesas/rzg2l-cpg.c
+++ b/drivers/clk/renesas/rzg2l-cpg.c
@@ -850,10 +850,16 @@ static void rzg2l_cpg_detach_dev(struct generic_pm_domain *unused, struct device
pm_clk_destroy(dev);
}
+static void rzg2l_cpg_genpd_remove(void *data)
+{
+ pm_genpd_remove(data);
+}
+
static int __init rzg2l_cpg_add_clk_domain(struct device *dev)
{
struct device_node *np = dev->of_node;
struct generic_pm_domain *genpd;
+ int ret;
genpd = devm_kzalloc(dev, sizeof(*genpd), GFP_KERNEL);
if (!genpd)
@@ -864,10 +870,15 @@ static int __init rzg2l_cpg_add_clk_domain(struct device *dev)
GENPD_FLAG_ACTIVE_WAKEUP;
genpd->attach_dev = rzg2l_cpg_attach_dev;
genpd->detach_dev = rzg2l_cpg_detach_dev;
- pm_genpd_init(genpd, &pm_domain_always_on_gov, false);
+ ret = pm_genpd_init(genpd, &pm_domain_always_on_gov, false);
+ if (ret)
+ return ret;
- of_genpd_add_provider_simple(np, genpd);
- return 0;
+ ret = devm_add_action_or_reset(dev, rzg2l_cpg_genpd_remove, genpd);
+ if (ret)
+ return ret;
+
+ return of_genpd_add_provider_simple(np, genpd);
}
static int __init rzg2l_cpg_probe(struct platform_device *pdev)
diff --git a/drivers/clk/samsung/clk-exynos850.c b/drivers/clk/samsung/clk-exynos850.c
index 2294989e244c..79cce8ba8883 100644
--- a/drivers/clk/samsung/clk-exynos850.c
+++ b/drivers/clk/samsung/clk-exynos850.c
@@ -60,6 +60,43 @@ static void __init exynos850_init_clocks(struct device_node *np,
iounmap(reg_base);
}
+/**
+ * exynos850_register_cmu - Register specified Exynos850 CMU domain
+ * @dev: Device object; may be NULL if this function is not being
+ * called from platform driver probe function
+ * @np: CMU device tree node
+ * @cmu: CMU data
+ *
+ * Register specified CMU domain, which includes next steps:
+ *
+ * 1. Enable parent clock of @cmu CMU
+ * 2. Set initial registers configuration for @cmu CMU clocks
+ * 3. Register @cmu CMU clocks using Samsung clock framework API
+ */
+static void __init exynos850_register_cmu(struct device *dev,
+ struct device_node *np, const struct samsung_cmu_info *cmu)
+{
+ /* Keep CMU parent clock running (needed for CMU registers access) */
+ if (cmu->clk_name) {
+ struct clk *parent_clk;
+
+ if (dev)
+ parent_clk = clk_get(dev, cmu->clk_name);
+ else
+ parent_clk = of_clk_get_by_name(np, cmu->clk_name);
+
+ if (IS_ERR(parent_clk)) {
+ pr_err("%s: could not find bus clock %s; err = %ld\n",
+ __func__, cmu->clk_name, PTR_ERR(parent_clk));
+ } else {
+ clk_prepare_enable(parent_clk);
+ }
+ }
+
+ exynos850_init_clocks(np, cmu->clk_regs, cmu->nr_clk_regs);
+ samsung_cmu_register_one(np, cmu);
+}
+
/* ---- CMU_TOP ------------------------------------------------------------- */
/* Register Offset definitions for CMU_TOP (0x120e0000) */
@@ -347,10 +384,10 @@ static const struct samsung_cmu_info top_cmu_info __initconst = {
static void __init exynos850_cmu_top_init(struct device_node *np)
{
- exynos850_init_clocks(np, top_clk_regs, ARRAY_SIZE(top_clk_regs));
- samsung_cmu_register_one(np, &top_cmu_info);
+ exynos850_register_cmu(NULL, np, &top_cmu_info);
}
+/* Register CMU_TOP early, as it's a dependency for other early domains */
CLK_OF_DECLARE(exynos850_cmu_top, "samsung,exynos850-cmu-top",
exynos850_cmu_top_init);
@@ -615,6 +652,15 @@ static const struct samsung_cmu_info peri_cmu_info __initconst = {
.clk_name = "dout_peri_bus",
};
+static void __init exynos850_cmu_peri_init(struct device_node *np)
+{
+ exynos850_register_cmu(NULL, np, &peri_cmu_info);
+}
+
+/* Register CMU_PERI early, as it's needed for MCT timer */
+CLK_OF_DECLARE(exynos850_cmu_peri, "samsung,exynos850-cmu-peri",
+ exynos850_cmu_peri_init);
+
/* ---- CMU_CORE ------------------------------------------------------------ */
/* Register Offset definitions for CMU_CORE (0x12000000) */
@@ -779,24 +825,9 @@ static int __init exynos850_cmu_probe(struct platform_device *pdev)
{
const struct samsung_cmu_info *info;
struct device *dev = &pdev->dev;
- struct device_node *np = dev->of_node;
info = of_device_get_match_data(dev);
- exynos850_init_clocks(np, info->clk_regs, info->nr_clk_regs);
- samsung_cmu_register_one(np, info);
-
- /* Keep bus clock running, so it's possible to access CMU registers */
- if (info->clk_name) {
- struct clk *bus_clk;
-
- bus_clk = clk_get(dev, info->clk_name);
- if (IS_ERR(bus_clk)) {
- pr_err("%s: could not find bus clock %s; err = %ld\n",
- __func__, info->clk_name, PTR_ERR(bus_clk));
- } else {
- clk_prepare_enable(bus_clk);
- }
- }
+ exynos850_register_cmu(dev, dev->of_node, info);
return 0;
}
@@ -806,9 +837,6 @@ static const struct of_device_id exynos850_cmu_of_match[] = {
{
.compatible = "samsung,exynos850-cmu-hsi",
.data = &hsi_cmu_info,
- }, {
- .compatible = "samsung,exynos850-cmu-peri",
- .data = &peri_cmu_info,
}, {
.compatible = "samsung,exynos850-cmu-core",
.data = &core_cmu_info,
diff --git a/drivers/counter/104-quad-8.c b/drivers/counter/104-quad-8.c
index 1cbd60aaed69..a97027db0446 100644
--- a/drivers/counter/104-quad-8.c
+++ b/drivers/counter/104-quad-8.c
@@ -14,6 +14,7 @@
#include <linux/interrupt.h>
#include <linux/isa.h>
#include <linux/kernel.h>
+#include <linux/list.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/types.h>
@@ -44,7 +45,6 @@ MODULE_PARM_DESC(irq, "ACCES 104-QUAD-8 interrupt line numbers");
* @ab_enable: array of A and B inputs enable configurations
* @preset_enable: array of set_to_preset_on_index attribute configurations
* @irq_trigger: array of current IRQ trigger function configurations
- * @next_irq_trigger: array of next IRQ trigger function configurations
* @synchronous_mode: array of index function synchronous mode configurations
* @index_polarity: array of index function polarity configurations
* @cable_fault_enable: differential encoder cable status enable configurations
@@ -61,7 +61,6 @@ struct quad8 {
unsigned int ab_enable[QUAD8_NUM_COUNTERS];
unsigned int preset_enable[QUAD8_NUM_COUNTERS];
unsigned int irq_trigger[QUAD8_NUM_COUNTERS];
- unsigned int next_irq_trigger[QUAD8_NUM_COUNTERS];
unsigned int synchronous_mode[QUAD8_NUM_COUNTERS];
unsigned int index_polarity[QUAD8_NUM_COUNTERS];
unsigned int cable_fault_enable;
@@ -390,7 +389,6 @@ static int quad8_action_read(struct counter_device *counter,
}
enum {
- QUAD8_EVENT_NONE = -1,
QUAD8_EVENT_CARRY = 0,
QUAD8_EVENT_COMPARE = 1,
QUAD8_EVENT_CARRY_BORROW = 2,
@@ -402,34 +400,49 @@ static int quad8_events_configure(struct counter_device *counter)
struct quad8 *const priv = counter->priv;
unsigned long irq_enabled = 0;
unsigned long irqflags;
- size_t channel;
+ struct counter_event_node *event_node;
+ unsigned int next_irq_trigger;
unsigned long ior_cfg;
unsigned long base_offset;
spin_lock_irqsave(&priv->lock, irqflags);
- /* Enable interrupts for the requested channels, disable for the rest */
- for (channel = 0; channel < QUAD8_NUM_COUNTERS; channel++) {
- if (priv->next_irq_trigger[channel] == QUAD8_EVENT_NONE)
- continue;
+ list_for_each_entry(event_node, &counter->events_list, l) {
+ switch (event_node->event) {
+ case COUNTER_EVENT_OVERFLOW:
+ next_irq_trigger = QUAD8_EVENT_CARRY;
+ break;
+ case COUNTER_EVENT_THRESHOLD:
+ next_irq_trigger = QUAD8_EVENT_COMPARE;
+ break;
+ case COUNTER_EVENT_OVERFLOW_UNDERFLOW:
+ next_irq_trigger = QUAD8_EVENT_CARRY_BORROW;
+ break;
+ case COUNTER_EVENT_INDEX:
+ next_irq_trigger = QUAD8_EVENT_INDEX;
+ break;
+ default:
+ /* should never reach this path */
+ spin_unlock_irqrestore(&priv->lock, irqflags);
+ return -EINVAL;
+ }
- if (priv->irq_trigger[channel] != priv->next_irq_trigger[channel]) {
- /* Save new IRQ function configuration */
- priv->irq_trigger[channel] = priv->next_irq_trigger[channel];
+ /* Skip configuration if it is the same as previously set */
+ if (priv->irq_trigger[event_node->channel] == next_irq_trigger)
+ continue;
- /* Load configuration to I/O Control Register */
- ior_cfg = priv->ab_enable[channel] |
- priv->preset_enable[channel] << 1 |
- priv->irq_trigger[channel] << 3;
- base_offset = priv->base + 2 * channel + 1;
- outb(QUAD8_CTR_IOR | ior_cfg, base_offset);
- }
+ /* Save new IRQ function configuration */
+ priv->irq_trigger[event_node->channel] = next_irq_trigger;
- /* Reset next IRQ trigger function configuration */
- priv->next_irq_trigger[channel] = QUAD8_EVENT_NONE;
+ /* Load configuration to I/O Control Register */
+ ior_cfg = priv->ab_enable[event_node->channel] |
+ priv->preset_enable[event_node->channel] << 1 |
+ priv->irq_trigger[event_node->channel] << 3;
+ base_offset = priv->base + 2 * event_node->channel + 1;
+ outb(QUAD8_CTR_IOR | ior_cfg, base_offset);
/* Enable IRQ line */
- irq_enabled |= BIT(channel);
+ irq_enabled |= BIT(event_node->channel);
}
outb(irq_enabled, priv->base + QUAD8_REG_INDEX_INTERRUPT);
@@ -442,35 +455,20 @@ static int quad8_events_configure(struct counter_device *counter)
static int quad8_watch_validate(struct counter_device *counter,
const struct counter_watch *watch)
{
- struct quad8 *const priv = counter->priv;
+ struct counter_event_node *event_node;
if (watch->channel > QUAD8_NUM_COUNTERS - 1)
return -EINVAL;
switch (watch->event) {
case COUNTER_EVENT_OVERFLOW:
- if (priv->next_irq_trigger[watch->channel] == QUAD8_EVENT_NONE)
- priv->next_irq_trigger[watch->channel] = QUAD8_EVENT_CARRY;
- else if (priv->next_irq_trigger[watch->channel] != QUAD8_EVENT_CARRY)
- return -EINVAL;
- return 0;
case COUNTER_EVENT_THRESHOLD:
- if (priv->next_irq_trigger[watch->channel] == QUAD8_EVENT_NONE)
- priv->next_irq_trigger[watch->channel] = QUAD8_EVENT_COMPARE;
- else if (priv->next_irq_trigger[watch->channel] != QUAD8_EVENT_COMPARE)
- return -EINVAL;
- return 0;
case COUNTER_EVENT_OVERFLOW_UNDERFLOW:
- if (priv->next_irq_trigger[watch->channel] == QUAD8_EVENT_NONE)
- priv->next_irq_trigger[watch->channel] = QUAD8_EVENT_CARRY_BORROW;
- else if (priv->next_irq_trigger[watch->channel] != QUAD8_EVENT_CARRY_BORROW)
- return -EINVAL;
- return 0;
case COUNTER_EVENT_INDEX:
- if (priv->next_irq_trigger[watch->channel] == QUAD8_EVENT_NONE)
- priv->next_irq_trigger[watch->channel] = QUAD8_EVENT_INDEX;
- else if (priv->next_irq_trigger[watch->channel] != QUAD8_EVENT_INDEX)
- return -EINVAL;
+ list_for_each_entry(event_node, &counter->next_events_list, l)
+ if (watch->channel == event_node->channel &&
+ watch->event != event_node->event)
+ return -EINVAL;
return 0;
default:
return -EINVAL;
@@ -1183,8 +1181,6 @@ static int quad8_probe(struct device *dev, unsigned int id)
outb(QUAD8_CTR_IOR, base_offset + 1);
/* Disable index function; negative index polarity */
outb(QUAD8_CTR_IDR, base_offset + 1);
- /* Initialize next IRQ trigger function configuration */
- priv->next_irq_trigger[i] = QUAD8_EVENT_NONE;
}
/* Disable Differential Encoder Cable Status for all channels */
outb(0xFF, base[id] + QUAD8_DIFF_ENCODER_CABLE_STATUS);
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 096c3848fa41..76ffdaf8c8b5 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1403,7 +1403,7 @@ static int cpufreq_online(unsigned int cpu)
ret = freq_qos_add_request(&policy->constraints,
policy->min_freq_req, FREQ_QOS_MIN,
- policy->min);
+ FREQ_QOS_MIN_DEFAULT_VALUE);
if (ret < 0) {
/*
* So we don't call freq_qos_remove_request() for an
@@ -1423,7 +1423,7 @@ static int cpufreq_online(unsigned int cpu)
ret = freq_qos_add_request(&policy->constraints,
policy->max_freq_req, FREQ_QOS_MAX,
- policy->max);
+ FREQ_QOS_MAX_DEFAULT_VALUE);
if (ret < 0) {
policy->max_freq_req = NULL;
goto out_destroy_policy;
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index dec2a5649ac1..676edc580fd4 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -1124,19 +1124,22 @@ static void intel_pstate_update_policies(void)
cpufreq_update_policy(cpu);
}
+static void __intel_pstate_update_max_freq(struct cpudata *cpudata,
+ struct cpufreq_policy *policy)
+{
+ policy->cpuinfo.max_freq = global.turbo_disabled_mf ?
+ cpudata->pstate.max_freq : cpudata->pstate.turbo_freq;
+ refresh_frequency_limits(policy);
+}
+
static void intel_pstate_update_max_freq(unsigned int cpu)
{
struct cpufreq_policy *policy = cpufreq_cpu_acquire(cpu);
- struct cpudata *cpudata;
if (!policy)
return;
- cpudata = all_cpu_data[cpu];
- policy->cpuinfo.max_freq = global.turbo_disabled_mf ?
- cpudata->pstate.max_freq : cpudata->pstate.turbo_freq;
-
- refresh_frequency_limits(policy);
+ __intel_pstate_update_max_freq(all_cpu_data[cpu], policy);
cpufreq_cpu_release(policy);
}
@@ -1584,8 +1587,15 @@ static void intel_pstate_notify_work(struct work_struct *work)
{
struct cpudata *cpudata =
container_of(to_delayed_work(work), struct cpudata, hwp_notify_work);
+ struct cpufreq_policy *policy = cpufreq_cpu_acquire(cpudata->cpu);
+
+ if (policy) {
+ intel_pstate_get_hwp_cap(cpudata);
+ __intel_pstate_update_max_freq(cpudata, policy);
+
+ cpufreq_cpu_release(policy);
+ }
- cpufreq_update_policy(cpudata->cpu);
wrmsrl_on_cpu(cpudata->cpu, MSR_HWP_STATUS, 0);
}
diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c
index a2be0df7e174..35d93361fda1 100644
--- a/drivers/cpufreq/qcom-cpufreq-hw.c
+++ b/drivers/cpufreq/qcom-cpufreq-hw.c
@@ -304,7 +304,8 @@ static void qcom_lmh_dcvs_notify(struct qcom_cpufreq_data *data)
if (capacity > max_capacity)
capacity = max_capacity;
- arch_set_thermal_pressure(policy->cpus, max_capacity - capacity);
+ arch_set_thermal_pressure(policy->related_cpus,
+ max_capacity - capacity);
/*
* In the unlikely case policy is unregistered do not enable
@@ -342,9 +343,9 @@ static irqreturn_t qcom_lmh_dcvs_handle_irq(int irq, void *data)
/* Disable interrupt and enable polling */
disable_irq_nosync(c_data->throttle_irq);
- qcom_lmh_dcvs_notify(c_data);
+ schedule_delayed_work(&c_data->throttle_work, 0);
- return 0;
+ return IRQ_HANDLED;
}
static const struct qcom_cpufreq_soc_data qcom_soc_data = {
diff --git a/drivers/crypto/atmel-aes.c b/drivers/crypto/atmel-aes.c
index 9391ccc03382..fe0558403191 100644
--- a/drivers/crypto/atmel-aes.c
+++ b/drivers/crypto/atmel-aes.c
@@ -960,6 +960,7 @@ static int atmel_aes_handle_queue(struct atmel_aes_dev *dd,
ctx = crypto_tfm_ctx(areq->tfm);
dd->areq = areq;
+ dd->ctx = ctx;
start_async = (areq != new_areq);
dd->is_async = start_async;
@@ -1274,7 +1275,6 @@ static int atmel_aes_init_tfm(struct crypto_skcipher *tfm)
crypto_skcipher_set_reqsize(tfm, sizeof(struct atmel_aes_reqctx));
ctx->base.dd = dd;
- ctx->base.dd->ctx = &ctx->base;
ctx->base.start = atmel_aes_start;
return 0;
@@ -1291,7 +1291,6 @@ static int atmel_aes_ctr_init_tfm(struct crypto_skcipher *tfm)
crypto_skcipher_set_reqsize(tfm, sizeof(struct atmel_aes_reqctx));
ctx->base.dd = dd;
- ctx->base.dd->ctx = &ctx->base;
ctx->base.start = atmel_aes_ctr_start;
return 0;
@@ -1783,7 +1782,6 @@ static int atmel_aes_gcm_init(struct crypto_aead *tfm)
crypto_aead_set_reqsize(tfm, sizeof(struct atmel_aes_reqctx));
ctx->base.dd = dd;
- ctx->base.dd->ctx = &ctx->base;
ctx->base.start = atmel_aes_gcm_start;
return 0;
@@ -1927,7 +1925,6 @@ static int atmel_aes_xts_init_tfm(struct crypto_skcipher *tfm)
crypto_skcipher_set_reqsize(tfm, sizeof(struct atmel_aes_reqctx) +
crypto_skcipher_reqsize(ctx->fallback_tfm));
ctx->base.dd = dd;
- ctx->base.dd->ctx = &ctx->base;
ctx->base.start = atmel_aes_xts_start;
return 0;
@@ -2154,7 +2151,6 @@ static int atmel_aes_authenc_init_tfm(struct crypto_aead *tfm,
crypto_aead_set_reqsize(tfm, (sizeof(struct atmel_aes_authenc_reqctx) +
auth_reqsize));
ctx->base.dd = dd;
- ctx->base.dd->ctx = &ctx->base;
ctx->base.start = atmel_aes_authenc_start;
return 0;
diff --git a/drivers/crypto/caam/caamalg.c b/drivers/crypto/caam/caamalg.c
index 8697ae53b063..d3d8bb0a6990 100644
--- a/drivers/crypto/caam/caamalg.c
+++ b/drivers/crypto/caam/caamalg.c
@@ -1533,6 +1533,9 @@ static int aead_do_one_req(struct crypto_engine *engine, void *areq)
ret = caam_jr_enqueue(ctx->jrdev, desc, aead_crypt_done, req);
+ if (ret == -ENOSPC && engine->retry_support)
+ return ret;
+
if (ret != -EINPROGRESS) {
aead_unmap(ctx->jrdev, rctx->edesc, req);
kfree(rctx->edesc);
@@ -1762,6 +1765,9 @@ static int skcipher_do_one_req(struct crypto_engine *engine, void *areq)
ret = caam_jr_enqueue(ctx->jrdev, desc, skcipher_crypt_done, req);
+ if (ret == -ENOSPC && engine->retry_support)
+ return ret;
+
if (ret != -EINPROGRESS) {
skcipher_unmap(ctx->jrdev, rctx->edesc, req);
kfree(rctx->edesc);
diff --git a/drivers/crypto/caam/caamalg_qi2.c b/drivers/crypto/caam/caamalg_qi2.c
index 8b8ed77d8715..6753f0e6e55d 100644
--- a/drivers/crypto/caam/caamalg_qi2.c
+++ b/drivers/crypto/caam/caamalg_qi2.c
@@ -5470,7 +5470,7 @@ int dpaa2_caam_enqueue(struct device *dev, struct caam_request *req)
dpaa2_fd_set_len(&fd, dpaa2_fl_get_len(&req->fd_flt[1]));
dpaa2_fd_set_flc(&fd, req->flc_dma);
- ppriv = this_cpu_ptr(priv->ppriv);
+ ppriv = raw_cpu_ptr(priv->ppriv);
for (i = 0; i < (priv->dpseci_attr.num_tx_queues << 1); i++) {
err = dpaa2_io_service_enqueue_fq(ppriv->dpio, ppriv->req_fqid,
&fd);
diff --git a/drivers/crypto/caam/caamhash.c b/drivers/crypto/caam/caamhash.c
index e8a6d8bc43b5..36ef738e4a18 100644
--- a/drivers/crypto/caam/caamhash.c
+++ b/drivers/crypto/caam/caamhash.c
@@ -765,6 +765,9 @@ static int ahash_do_one_req(struct crypto_engine *engine, void *areq)
ret = caam_jr_enqueue(jrdev, desc, state->ahash_op_done, req);
+ if (ret == -ENOSPC && engine->retry_support)
+ return ret;
+
if (ret != -EINPROGRESS) {
ahash_unmap(jrdev, state->edesc, req, 0);
kfree(state->edesc);
diff --git a/drivers/crypto/caam/caampkc.c b/drivers/crypto/caam/caampkc.c
index bf6275ffc4aa..886727576710 100644
--- a/drivers/crypto/caam/caampkc.c
+++ b/drivers/crypto/caam/caampkc.c
@@ -380,6 +380,9 @@ static int akcipher_do_one_req(struct crypto_engine *engine, void *areq)
ret = caam_jr_enqueue(jrdev, desc, req_ctx->akcipher_op_done, req);
+ if (ret == -ENOSPC && engine->retry_support)
+ return ret;
+
if (ret != -EINPROGRESS) {
rsa_pub_unmap(jrdev, req_ctx->edesc, req);
rsa_io_unmap(jrdev, req_ctx->edesc, req);
diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c
index e09925d86bf3..581a1b13d5c3 100644
--- a/drivers/crypto/ccp/sev-dev.c
+++ b/drivers/crypto/ccp/sev-dev.c
@@ -241,7 +241,7 @@ static int __sev_platform_init_locked(int *error)
struct psp_device *psp = psp_master;
struct sev_data_init data;
struct sev_device *sev;
- int rc = 0;
+ int psp_ret, rc = 0;
if (!psp || !psp->sev_data)
return -ENODEV;
@@ -266,7 +266,21 @@ static int __sev_platform_init_locked(int *error)
data.tmr_len = SEV_ES_TMR_SIZE;
}
- rc = __sev_do_cmd_locked(SEV_CMD_INIT, &data, error);
+ rc = __sev_do_cmd_locked(SEV_CMD_INIT, &data, &psp_ret);
+ if (rc && psp_ret == SEV_RET_SECURE_DATA_INVALID) {
+ /*
+ * Initialization command returned an integrity check failure
+ * status code, meaning that firmware load and validation of SEV
+ * related persistent data has failed. Retrying the
+ * initialization function should succeed by replacing the state
+ * with a reset state.
+ */
+ dev_dbg(sev->dev, "SEV: retrying INIT command");
+ rc = __sev_do_cmd_locked(SEV_CMD_INIT, &data, &psp_ret);
+ }
+ if (error)
+ *error = psp_ret;
+
if (rc)
return rc;
@@ -1091,18 +1105,6 @@ void sev_pci_init(void)
/* Initialize the platform */
rc = sev_platform_init(&error);
- if (rc && (error == SEV_RET_SECURE_DATA_INVALID)) {
- /*
- * INIT command returned an integrity check failure
- * status code, meaning that firmware load and
- * validation of SEV related persistent data has
- * failed and persistent state has been erased.
- * Retrying INIT command here should succeed.
- */
- dev_dbg(sev->dev, "SEV: retrying INIT command");
- rc = sev_platform_init(&error);
- }
-
if (rc) {
dev_err(sev->dev, "SEV: failed to INIT error %#x\n", error);
return;
diff --git a/drivers/crypto/hisilicon/hpre/hpre_crypto.c b/drivers/crypto/hisilicon/hpre/hpre_crypto.c
index a032c192ef1d..7ba7641723a0 100644
--- a/drivers/crypto/hisilicon/hpre/hpre_crypto.c
+++ b/drivers/crypto/hisilicon/hpre/hpre_crypto.c
@@ -1865,7 +1865,7 @@ static int hpre_curve25519_src_init(struct hpre_asym_request *hpre_req,
*/
if (memcmp(ptr, p, ctx->key_sz) == 0) {
dev_err(dev, "gx is p!\n");
- return -EINVAL;
+ goto err;
} else if (memcmp(ptr, p, ctx->key_sz) > 0) {
hpre_curve25519_src_modulo_p(ptr);
}
diff --git a/drivers/crypto/hisilicon/qm.c b/drivers/crypto/hisilicon/qm.c
index 52d6cca6262e..1dc6a27ba0e0 100644
--- a/drivers/crypto/hisilicon/qm.c
+++ b/drivers/crypto/hisilicon/qm.c
@@ -3399,6 +3399,7 @@ void hisi_qm_uninit(struct hisi_qm *qm)
dma_free_coherent(dev, qm->qdma.size,
qm->qdma.va, qm->qdma.dma);
}
+ up_write(&qm->qps_lock);
qm_irq_unregister(qm);
hisi_qm_pci_uninit(qm);
@@ -3406,8 +3407,6 @@ void hisi_qm_uninit(struct hisi_qm *qm)
uacce_remove(qm->uacce);
qm->uacce = NULL;
}
-
- up_write(&qm->qps_lock);
}
EXPORT_SYMBOL_GPL(hisi_qm_uninit);
@@ -6038,7 +6037,7 @@ int hisi_qm_resume(struct device *dev)
if (ret)
pci_err(pdev, "failed to start qm(%d)\n", ret);
- return 0;
+ return ret;
}
EXPORT_SYMBOL_GPL(hisi_qm_resume);
diff --git a/drivers/crypto/keembay/keembay-ocs-ecc.c b/drivers/crypto/keembay/keembay-ocs-ecc.c
index 679e6ae295e0..5d0785d3f1b5 100644
--- a/drivers/crypto/keembay/keembay-ocs-ecc.c
+++ b/drivers/crypto/keembay/keembay-ocs-ecc.c
@@ -930,6 +930,7 @@ static int kmb_ocs_ecc_probe(struct platform_device *pdev)
ecc_dev->engine = crypto_engine_alloc_init(dev, 1);
if (!ecc_dev->engine) {
dev_err(dev, "Could not allocate crypto engine\n");
+ rc = -ENOMEM;
goto list_del;
}
diff --git a/drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c b/drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c
index 146a55ac4b9b..be1ad55a208f 100644
--- a/drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c
+++ b/drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c
@@ -494,12 +494,11 @@ static ssize_t kvf_limits_store(struct device *dev,
{
struct otx2_cptpf_dev *cptpf = dev_get_drvdata(dev);
int lfs_num;
+ int ret;
- if (kstrtoint(buf, 0, &lfs_num)) {
- dev_err(dev, "lfs count %d must be in range [1 - %d]\n",
- lfs_num, num_online_cpus());
- return -EINVAL;
- }
+ ret = kstrtoint(buf, 0, &lfs_num);
+ if (ret)
+ return ret;
if (lfs_num < 1 || lfs_num > num_online_cpus()) {
dev_err(dev, "lfs count %d must be in range [1 - %d]\n",
lfs_num, num_online_cpus());
diff --git a/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c b/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c
index dff34b3ec09e..7c1b92aaab39 100644
--- a/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c
+++ b/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c
@@ -29,7 +29,8 @@ static struct otx2_cpt_bitmap get_cores_bmap(struct device *dev,
bool found = false;
int i;
- if (eng_grp->g->engs_num > OTX2_CPT_MAX_ENGINES) {
+ if (eng_grp->g->engs_num < 0 ||
+ eng_grp->g->engs_num > OTX2_CPT_MAX_ENGINES) {
dev_err(dev, "unsupported number of engines %d on octeontx2\n",
eng_grp->g->engs_num);
return bmap;
diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c
index 9b968ac4ee7b..a196bb8b1701 100644
--- a/drivers/crypto/omap-aes.c
+++ b/drivers/crypto/omap-aes.c
@@ -1302,7 +1302,7 @@ static int omap_aes_suspend(struct device *dev)
static int omap_aes_resume(struct device *dev)
{
- pm_runtime_resume_and_get(dev);
+ pm_runtime_get_sync(dev);
return 0;
}
#endif
diff --git a/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c b/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
index 59860bdaedb6..99ee17c3d06b 100644
--- a/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
+++ b/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
@@ -107,6 +107,12 @@ static int __adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
val = ADF_CSR_RD(pmisc_bar_addr, pf2vf_offset);
} while ((val & int_bit) && (count++ < ADF_PFVF_MSG_ACK_MAX_RETRY));
+ if (val & int_bit) {
+ dev_dbg(&GET_DEV(accel_dev), "ACK not received from remote\n");
+ val &= ~int_bit;
+ ret = -EIO;
+ }
+
if (val != msg) {
dev_dbg(&GET_DEV(accel_dev),
"Collision - PFVF CSR overwritten by remote function\n");
@@ -114,12 +120,6 @@ static int __adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
goto out;
}
- if (val & int_bit) {
- dev_dbg(&GET_DEV(accel_dev), "ACK not received from remote\n");
- val &= ~int_bit;
- ret = -EIO;
- }
-
/* Finished with the PFVF CSR; relinquish it and leave msg in CSR */
ADF_CSR_WR(pmisc_bar_addr, pf2vf_offset, val & ~local_in_use_mask);
out:
diff --git a/drivers/crypto/qce/aead.c b/drivers/crypto/qce/aead.c
index 290e2446a2f3..97a530171f07 100644
--- a/drivers/crypto/qce/aead.c
+++ b/drivers/crypto/qce/aead.c
@@ -802,8 +802,8 @@ static int qce_aead_register_one(const struct qce_aead_def *def, struct qce_devi
ret = crypto_register_aead(alg);
if (ret) {
- kfree(tmpl);
dev_err(qce->dev, "%s registration failed\n", alg->base.cra_name);
+ kfree(tmpl);
return ret;
}
diff --git a/drivers/crypto/qce/sha.c b/drivers/crypto/qce/sha.c
index 8e6fcf2c21cc..59159f5e64e5 100644
--- a/drivers/crypto/qce/sha.c
+++ b/drivers/crypto/qce/sha.c
@@ -498,8 +498,8 @@ static int qce_ahash_register_one(const struct qce_ahash_def *def,
ret = crypto_register_ahash(alg);
if (ret) {
- kfree(tmpl);
dev_err(qce->dev, "%s registration failed\n", base->cra_name);
+ kfree(tmpl);
return ret;
}
diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c
index 8ff10928f581..3d27cd5210ef 100644
--- a/drivers/crypto/qce/skcipher.c
+++ b/drivers/crypto/qce/skcipher.c
@@ -484,8 +484,8 @@ static int qce_skcipher_register_one(const struct qce_skcipher_def *def,
ret = crypto_register_skcipher(alg);
if (ret) {
- kfree(tmpl);
dev_err(qce->dev, "%s registration failed\n", alg->base.cra_name);
+ kfree(tmpl);
return ret;
}
diff --git a/drivers/crypto/stm32/stm32-crc32.c b/drivers/crypto/stm32/stm32-crc32.c
index 75867c0b0017..be1bf39a317d 100644
--- a/drivers/crypto/stm32/stm32-crc32.c
+++ b/drivers/crypto/stm32/stm32-crc32.c
@@ -279,7 +279,7 @@ static struct shash_alg algs[] = {
.digestsize = CHKSUM_DIGEST_SIZE,
.base = {
.cra_name = "crc32",
- .cra_driver_name = DRIVER_NAME,
+ .cra_driver_name = "stm32-crc32-crc32",
.cra_priority = 200,
.cra_flags = CRYPTO_ALG_OPTIONAL_KEY,
.cra_blocksize = CHKSUM_BLOCK_SIZE,
@@ -301,7 +301,7 @@ static struct shash_alg algs[] = {
.digestsize = CHKSUM_DIGEST_SIZE,
.base = {
.cra_name = "crc32c",
- .cra_driver_name = DRIVER_NAME,
+ .cra_driver_name = "stm32-crc32-crc32c",
.cra_priority = 200,
.cra_flags = CRYPTO_ALG_OPTIONAL_KEY,
.cra_blocksize = CHKSUM_BLOCK_SIZE,
diff --git a/drivers/crypto/stm32/stm32-cryp.c b/drivers/crypto/stm32/stm32-cryp.c
index 7389a0536ff0..81eb136b6c11 100644
--- a/drivers/crypto/stm32/stm32-cryp.c
+++ b/drivers/crypto/stm32/stm32-cryp.c
@@ -37,7 +37,6 @@
/* Mode mask = bits [15..0] */
#define FLG_MODE_MASK GENMASK(15, 0)
/* Bit [31..16] status */
-#define FLG_CCM_PADDED_WA BIT(16)
/* Registers */
#define CRYP_CR 0x00000000
@@ -105,8 +104,6 @@
/* Misc */
#define AES_BLOCK_32 (AES_BLOCK_SIZE / sizeof(u32))
#define GCM_CTR_INIT 2
-#define _walked_in (cryp->in_walk.offset - cryp->in_sg->offset)
-#define _walked_out (cryp->out_walk.offset - cryp->out_sg->offset)
#define CRYP_AUTOSUSPEND_DELAY 50
struct stm32_cryp_caps {
@@ -144,26 +141,16 @@ struct stm32_cryp {
size_t authsize;
size_t hw_blocksize;
- size_t total_in;
- size_t total_in_save;
- size_t total_out;
- size_t total_out_save;
+ size_t payload_in;
+ size_t header_in;
+ size_t payload_out;
- struct scatterlist *in_sg;
struct scatterlist *out_sg;
- struct scatterlist *out_sg_save;
-
- struct scatterlist in_sgl;
- struct scatterlist out_sgl;
- bool sgs_copied;
-
- int in_sg_len;
- int out_sg_len;
struct scatter_walk in_walk;
struct scatter_walk out_walk;
- u32 last_ctr[4];
+ __be32 last_ctr[4];
u32 gcm_ctr;
};
@@ -262,6 +249,7 @@ static inline int stm32_cryp_wait_output(struct stm32_cryp *cryp)
}
static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp);
+static void stm32_cryp_finish_req(struct stm32_cryp *cryp, int err);
static struct stm32_cryp *stm32_cryp_find_dev(struct stm32_cryp_ctx *ctx)
{
@@ -283,103 +271,6 @@ static struct stm32_cryp *stm32_cryp_find_dev(struct stm32_cryp_ctx *ctx)
return cryp;
}
-static int stm32_cryp_check_aligned(struct scatterlist *sg, size_t total,
- size_t align)
-{
- int len = 0;
-
- if (!total)
- return 0;
-
- if (!IS_ALIGNED(total, align))
- return -EINVAL;
-
- while (sg) {
- if (!IS_ALIGNED(sg->offset, sizeof(u32)))
- return -EINVAL;
-
- if (!IS_ALIGNED(sg->length, align))
- return -EINVAL;
-
- len += sg->length;
- sg = sg_next(sg);
- }
-
- if (len != total)
- return -EINVAL;
-
- return 0;
-}
-
-static int stm32_cryp_check_io_aligned(struct stm32_cryp *cryp)
-{
- int ret;
-
- ret = stm32_cryp_check_aligned(cryp->in_sg, cryp->total_in,
- cryp->hw_blocksize);
- if (ret)
- return ret;
-
- ret = stm32_cryp_check_aligned(cryp->out_sg, cryp->total_out,
- cryp->hw_blocksize);
-
- return ret;
-}
-
-static void sg_copy_buf(void *buf, struct scatterlist *sg,
- unsigned int start, unsigned int nbytes, int out)
-{
- struct scatter_walk walk;
-
- if (!nbytes)
- return;
-
- scatterwalk_start(&walk, sg);
- scatterwalk_advance(&walk, start);
- scatterwalk_copychunks(buf, &walk, nbytes, out);
- scatterwalk_done(&walk, out, 0);
-}
-
-static int stm32_cryp_copy_sgs(struct stm32_cryp *cryp)
-{
- void *buf_in, *buf_out;
- int pages, total_in, total_out;
-
- if (!stm32_cryp_check_io_aligned(cryp)) {
- cryp->sgs_copied = 0;
- return 0;
- }
-
- total_in = ALIGN(cryp->total_in, cryp->hw_blocksize);
- pages = total_in ? get_order(total_in) : 1;
- buf_in = (void *)__get_free_pages(GFP_ATOMIC, pages);
-
- total_out = ALIGN(cryp->total_out, cryp->hw_blocksize);
- pages = total_out ? get_order(total_out) : 1;
- buf_out = (void *)__get_free_pages(GFP_ATOMIC, pages);
-
- if (!buf_in || !buf_out) {
- dev_err(cryp->dev, "Can't allocate pages when unaligned\n");
- cryp->sgs_copied = 0;
- return -EFAULT;
- }
-
- sg_copy_buf(buf_in, cryp->in_sg, 0, cryp->total_in, 0);
-
- sg_init_one(&cryp->in_sgl, buf_in, total_in);
- cryp->in_sg = &cryp->in_sgl;
- cryp->in_sg_len = 1;
-
- sg_init_one(&cryp->out_sgl, buf_out, total_out);
- cryp->out_sg_save = cryp->out_sg;
- cryp->out_sg = &cryp->out_sgl;
- cryp->out_sg_len = 1;
-
- cryp->sgs_copied = 1;
-
- return 0;
-}
-
static void stm32_cryp_hw_write_iv(struct stm32_cryp *cryp, __be32 *iv)
{
if (!iv)
@@ -481,16 +372,99 @@ static int stm32_cryp_gcm_init(struct stm32_cryp *cryp, u32 cfg)
/* Wait for end of processing */
ret = stm32_cryp_wait_enable(cryp);
- if (ret)
+ if (ret) {
dev_err(cryp->dev, "Timeout (gcm init)\n");
+ return ret;
+ }
- return ret;
+ /* Prepare next phase */
+ if (cryp->areq->assoclen) {
+ cfg |= CR_PH_HEADER;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+ } else if (stm32_cryp_get_input_text_len(cryp)) {
+ cfg |= CR_PH_PAYLOAD;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+ }
+
+ return 0;
+}
+
+static void stm32_crypt_gcmccm_end_header(struct stm32_cryp *cryp)
+{
+ u32 cfg;
+ int err;
+
+ /* Check if whole header written */
+ if (!cryp->header_in) {
+ /* Wait for completion */
+ err = stm32_cryp_wait_busy(cryp);
+ if (err) {
+ dev_err(cryp->dev, "Timeout (gcm/ccm header)\n");
+ stm32_cryp_write(cryp, CRYP_IMSCR, 0);
+ stm32_cryp_finish_req(cryp, err);
+ return;
+ }
+
+ if (stm32_cryp_get_input_text_len(cryp)) {
+ /* Phase 3 : payload */
+ cfg = stm32_cryp_read(cryp, CRYP_CR);
+ cfg &= ~CR_CRYPEN;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+
+ cfg &= ~CR_PH_MASK;
+ cfg |= CR_PH_PAYLOAD | CR_CRYPEN;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+ } else {
+ /*
+ * Phase 4 : tag.
+ * Nothing to read, nothing to write, caller have to
+ * end request
+ */
+ }
+ }
+}
+
+static void stm32_cryp_write_ccm_first_header(struct stm32_cryp *cryp)
+{
+ unsigned int i;
+ size_t written;
+ size_t len;
+ u32 alen = cryp->areq->assoclen;
+ u32 block[AES_BLOCK_32] = {0};
+ u8 *b8 = (u8 *)block;
+
+ if (alen <= 65280) {
+ /* Write first u32 of B1 */
+ b8[0] = (alen >> 8) & 0xFF;
+ b8[1] = alen & 0xFF;
+ len = 2;
+ } else {
+ /* Build the two first u32 of B1 */
+ b8[0] = 0xFF;
+ b8[1] = 0xFE;
+ b8[2] = (alen & 0xFF000000) >> 24;
+ b8[3] = (alen & 0x00FF0000) >> 16;
+ b8[4] = (alen & 0x0000FF00) >> 8;
+ b8[5] = alen & 0x000000FF;
+ len = 6;
+ }
+
+ written = min_t(size_t, AES_BLOCK_SIZE - len, alen);
+
+ scatterwalk_copychunks((char *)block + len, &cryp->in_walk, written, 0);
+ for (i = 0; i < AES_BLOCK_32; i++)
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
+
+ cryp->header_in -= written;
+
+ stm32_crypt_gcmccm_end_header(cryp);
}
static int stm32_cryp_ccm_init(struct stm32_cryp *cryp, u32 cfg)
{
int ret;
- u8 iv[AES_BLOCK_SIZE], b0[AES_BLOCK_SIZE];
+ u32 iv_32[AES_BLOCK_32], b0_32[AES_BLOCK_32];
+ u8 *iv = (u8 *)iv_32, *b0 = (u8 *)b0_32;
__be32 *bd;
u32 *d;
unsigned int i, textlen;
@@ -531,10 +505,24 @@ static int stm32_cryp_ccm_init(struct stm32_cryp *cryp, u32 cfg)
/* Wait for end of processing */
ret = stm32_cryp_wait_enable(cryp);
- if (ret)
+ if (ret) {
dev_err(cryp->dev, "Timeout (ccm init)\n");
+ return ret;
+ }
- return ret;
+ /* Prepare next phase */
+ if (cryp->areq->assoclen) {
+ cfg |= CR_PH_HEADER | CR_CRYPEN;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+
+ /* Write first (special) block (may move to next phase [payload]) */
+ stm32_cryp_write_ccm_first_header(cryp);
+ } else if (stm32_cryp_get_input_text_len(cryp)) {
+ cfg |= CR_PH_PAYLOAD;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+ }
+
+ return 0;
}
static int stm32_cryp_hw_init(struct stm32_cryp *cryp)
@@ -542,7 +530,7 @@ static int stm32_cryp_hw_init(struct stm32_cryp *cryp)
int ret;
u32 cfg, hw_mode;
- pm_runtime_resume_and_get(cryp->dev);
+ pm_runtime_get_sync(cryp->dev);
/* Disable interrupt */
stm32_cryp_write(cryp, CRYP_IMSCR, 0);
@@ -605,16 +593,6 @@ static int stm32_cryp_hw_init(struct stm32_cryp *cryp)
if (ret)
return ret;
- /* Phase 2 : header (authenticated data) */
- if (cryp->areq->assoclen) {
- cfg |= CR_PH_HEADER;
- } else if (stm32_cryp_get_input_text_len(cryp)) {
- cfg |= CR_PH_PAYLOAD;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
- } else {
- cfg |= CR_PH_INIT;
- }
-
break;
case CR_DES_CBC:
@@ -633,8 +611,6 @@ static int stm32_cryp_hw_init(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_CR, cfg);
- cryp->flags &= ~FLG_CCM_PADDED_WA;
-
return 0;
}
@@ -644,28 +620,9 @@ static void stm32_cryp_finish_req(struct stm32_cryp *cryp, int err)
/* Phase 4 : output tag */
err = stm32_cryp_read_auth_tag(cryp);
- if (!err && (!(is_gcm(cryp) || is_ccm(cryp))))
+ if (!err && (!(is_gcm(cryp) || is_ccm(cryp) || is_ecb(cryp))))
stm32_cryp_get_iv(cryp);
- if (cryp->sgs_copied) {
- void *buf_in, *buf_out;
- int pages, len;
-
- buf_in = sg_virt(&cryp->in_sgl);
- buf_out = sg_virt(&cryp->out_sgl);
-
- sg_copy_buf(buf_out, cryp->out_sg_save, 0,
- cryp->total_out_save, 1);
-
- len = ALIGN(cryp->total_in_save, cryp->hw_blocksize);
- pages = len ? get_order(len) : 1;
- free_pages((unsigned long)buf_in, pages);
-
- len = ALIGN(cryp->total_out_save, cryp->hw_blocksize);
- pages = len ? get_order(len) : 1;
- free_pages((unsigned long)buf_out, pages);
- }
-
pm_runtime_mark_last_busy(cryp->dev);
pm_runtime_put_autosuspend(cryp->dev);
@@ -674,8 +631,6 @@ static void stm32_cryp_finish_req(struct stm32_cryp *cryp, int err)
else
crypto_finalize_skcipher_request(cryp->engine, cryp->req,
err);
-
- memset(cryp->ctx->key, 0, cryp->ctx->keylen);
}
static int stm32_cryp_cpu_start(struct stm32_cryp *cryp)
@@ -801,7 +756,20 @@ static int stm32_cryp_aes_aead_setkey(struct crypto_aead *tfm, const u8 *key,
static int stm32_cryp_aes_gcm_setauthsize(struct crypto_aead *tfm,
unsigned int authsize)
{
- return authsize == AES_BLOCK_SIZE ? 0 : -EINVAL;
+ switch (authsize) {
+ case 4:
+ case 8:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
}
static int stm32_cryp_aes_ccm_setauthsize(struct crypto_aead *tfm,
@@ -825,31 +793,61 @@ static int stm32_cryp_aes_ccm_setauthsize(struct crypto_aead *tfm,
static int stm32_cryp_aes_ecb_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % AES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_ECB | FLG_ENCRYPT);
}
static int stm32_cryp_aes_ecb_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % AES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_ECB);
}
static int stm32_cryp_aes_cbc_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % AES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_CBC | FLG_ENCRYPT);
}
static int stm32_cryp_aes_cbc_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % AES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_CBC);
}
static int stm32_cryp_aes_ctr_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_CTR | FLG_ENCRYPT);
}
static int stm32_cryp_aes_ctr_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_CTR);
}
@@ -863,53 +861,122 @@ static int stm32_cryp_aes_gcm_decrypt(struct aead_request *req)
return stm32_cryp_aead_crypt(req, FLG_AES | FLG_GCM);
}
+static inline int crypto_ccm_check_iv(const u8 *iv)
+{
+ /* 2 <= L <= 8, so 1 <= L' <= 7. */
+ if (iv[0] < 1 || iv[0] > 7)
+ return -EINVAL;
+
+ return 0;
+}
+
static int stm32_cryp_aes_ccm_encrypt(struct aead_request *req)
{
+ int err;
+
+ err = crypto_ccm_check_iv(req->iv);
+ if (err)
+ return err;
+
return stm32_cryp_aead_crypt(req, FLG_AES | FLG_CCM | FLG_ENCRYPT);
}
static int stm32_cryp_aes_ccm_decrypt(struct aead_request *req)
{
+ int err;
+
+ err = crypto_ccm_check_iv(req->iv);
+ if (err)
+ return err;
+
return stm32_cryp_aead_crypt(req, FLG_AES | FLG_CCM);
}
static int stm32_cryp_des_ecb_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_DES | FLG_ECB | FLG_ENCRYPT);
}
static int stm32_cryp_des_ecb_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_DES | FLG_ECB);
}
static int stm32_cryp_des_cbc_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_DES | FLG_CBC | FLG_ENCRYPT);
}
static int stm32_cryp_des_cbc_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_DES | FLG_CBC);
}
static int stm32_cryp_tdes_ecb_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_TDES | FLG_ECB | FLG_ENCRYPT);
}
static int stm32_cryp_tdes_ecb_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_TDES | FLG_ECB);
}
static int stm32_cryp_tdes_cbc_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_TDES | FLG_CBC | FLG_ENCRYPT);
}
static int stm32_cryp_tdes_cbc_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_TDES | FLG_CBC);
}
@@ -919,6 +986,7 @@ static int stm32_cryp_prepare_req(struct skcipher_request *req,
struct stm32_cryp_ctx *ctx;
struct stm32_cryp *cryp;
struct stm32_cryp_reqctx *rctx;
+ struct scatterlist *in_sg;
int ret;
if (!req && !areq)
@@ -944,76 +1012,55 @@ static int stm32_cryp_prepare_req(struct skcipher_request *req,
if (req) {
cryp->req = req;
cryp->areq = NULL;
- cryp->total_in = req->cryptlen;
- cryp->total_out = cryp->total_in;
+ cryp->header_in = 0;
+ cryp->payload_in = req->cryptlen;
+ cryp->payload_out = req->cryptlen;
+ cryp->authsize = 0;
} else {
/*
* Length of input and output data:
* Encryption case:
- * INPUT = AssocData || PlainText
+ * INPUT = AssocData || PlainText
* <- assoclen -> <- cryptlen ->
- * <------- total_in ----------->
*
- * OUTPUT = AssocData || CipherText || AuthTag
- * <- assoclen -> <- cryptlen -> <- authsize ->
- * <---------------- total_out ----------------->
+ * OUTPUT = AssocData || CipherText || AuthTag
+ * <- assoclen -> <-- cryptlen --> <- authsize ->
*
* Decryption case:
- * INPUT = AssocData || CipherText || AuthTag
- * <- assoclen -> <--------- cryptlen --------->
- * <- authsize ->
- * <---------------- total_in ------------------>
+ * INPUT = AssocData || CipherTex || AuthTag
+ * <- assoclen ---> <---------- cryptlen ---------->
*
- * OUTPUT = AssocData || PlainText
- * <- assoclen -> <- crypten - authsize ->
- * <---------- total_out ----------------->
+ * OUTPUT = AssocData || PlainText
+ * <- assoclen -> <- cryptlen - authsize ->
*/
cryp->areq = areq;
cryp->req = NULL;
cryp->authsize = crypto_aead_authsize(crypto_aead_reqtfm(areq));
- cryp->total_in = areq->assoclen + areq->cryptlen;
- if (is_encrypt(cryp))
- /* Append auth tag to output */
- cryp->total_out = cryp->total_in + cryp->authsize;
- else
- /* No auth tag in output */
- cryp->total_out = cryp->total_in - cryp->authsize;
+ if (is_encrypt(cryp)) {
+ cryp->payload_in = areq->cryptlen;
+ cryp->header_in = areq->assoclen;
+ cryp->payload_out = areq->cryptlen;
+ } else {
+ cryp->payload_in = areq->cryptlen - cryp->authsize;
+ cryp->header_in = areq->assoclen;
+ cryp->payload_out = cryp->payload_in;
+ }
}
- cryp->total_in_save = cryp->total_in;
- cryp->total_out_save = cryp->total_out;
+ in_sg = req ? req->src : areq->src;
+ scatterwalk_start(&cryp->in_walk, in_sg);
- cryp->in_sg = req ? req->src : areq->src;
cryp->out_sg = req ? req->dst : areq->dst;
- cryp->out_sg_save = cryp->out_sg;
-
- cryp->in_sg_len = sg_nents_for_len(cryp->in_sg, cryp->total_in);
- if (cryp->in_sg_len < 0) {
- dev_err(cryp->dev, "Cannot get in_sg_len\n");
- ret = cryp->in_sg_len;
- return ret;
- }
-
- cryp->out_sg_len = sg_nents_for_len(cryp->out_sg, cryp->total_out);
- if (cryp->out_sg_len < 0) {
- dev_err(cryp->dev, "Cannot get out_sg_len\n");
- ret = cryp->out_sg_len;
- return ret;
- }
-
- ret = stm32_cryp_copy_sgs(cryp);
- if (ret)
- return ret;
-
- scatterwalk_start(&cryp->in_walk, cryp->in_sg);
scatterwalk_start(&cryp->out_walk, cryp->out_sg);
if (is_gcm(cryp) || is_ccm(cryp)) {
/* In output, jump after assoc data */
- scatterwalk_advance(&cryp->out_walk, cryp->areq->assoclen);
- cryp->total_out -= cryp->areq->assoclen;
+ scatterwalk_copychunks(NULL, &cryp->out_walk, cryp->areq->assoclen, 2);
}
+ if (is_ctr(cryp))
+ memset(cryp->last_ctr, 0, sizeof(cryp->last_ctr));
+
ret = stm32_cryp_hw_init(cryp);
return ret;
}
@@ -1061,8 +1108,7 @@ static int stm32_cryp_aead_one_req(struct crypto_engine *engine, void *areq)
if (!cryp)
return -ENODEV;
- if (unlikely(!cryp->areq->assoclen &&
- !stm32_cryp_get_input_text_len(cryp))) {
+ if (unlikely(!cryp->payload_in && !cryp->header_in)) {
/* No input data to process: get tag and finish */
stm32_cryp_finish_req(cryp, 0);
return 0;
@@ -1071,43 +1117,10 @@ static int stm32_cryp_aead_one_req(struct crypto_engine *engine, void *areq)
return stm32_cryp_cpu_start(cryp);
}
-static u32 *stm32_cryp_next_out(struct stm32_cryp *cryp, u32 *dst,
- unsigned int n)
-{
- scatterwalk_advance(&cryp->out_walk, n);
-
- if (unlikely(cryp->out_sg->length == _walked_out)) {
- cryp->out_sg = sg_next(cryp->out_sg);
- if (cryp->out_sg) {
- scatterwalk_start(&cryp->out_walk, cryp->out_sg);
- return (sg_virt(cryp->out_sg) + _walked_out);
- }
- }
-
- return (u32 *)((u8 *)dst + n);
-}
-
-static u32 *stm32_cryp_next_in(struct stm32_cryp *cryp, u32 *src,
- unsigned int n)
-{
- scatterwalk_advance(&cryp->in_walk, n);
-
- if (unlikely(cryp->in_sg->length == _walked_in)) {
- cryp->in_sg = sg_next(cryp->in_sg);
- if (cryp->in_sg) {
- scatterwalk_start(&cryp->in_walk, cryp->in_sg);
- return (sg_virt(cryp->in_sg) + _walked_in);
- }
- }
-
- return (u32 *)((u8 *)src + n);
-}
-
static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp)
{
- u32 cfg, size_bit, *dst, d32;
- u8 *d8;
- unsigned int i, j;
+ u32 cfg, size_bit;
+ unsigned int i;
int ret = 0;
/* Update Config */
@@ -1130,7 +1143,7 @@ static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_DIN, size_bit);
size_bit = is_encrypt(cryp) ? cryp->areq->cryptlen :
- cryp->areq->cryptlen - AES_BLOCK_SIZE;
+ cryp->areq->cryptlen - cryp->authsize;
size_bit *= 8;
if (cryp->caps->swap_final)
size_bit = (__force u32)cpu_to_be32(size_bit);
@@ -1139,11 +1152,9 @@ static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_DIN, size_bit);
} else {
/* CCM: write CTR0 */
- u8 iv[AES_BLOCK_SIZE];
- u32 *iv32 = (u32 *)iv;
- __be32 *biv;
-
- biv = (void *)iv;
+ u32 iv32[AES_BLOCK_32];
+ u8 *iv = (u8 *)iv32;
+ __be32 *biv = (__be32 *)iv32;
memcpy(iv, cryp->areq->iv, AES_BLOCK_SIZE);
memset(iv + AES_BLOCK_SIZE - 1 - iv[0], 0, iv[0] + 1);
@@ -1165,39 +1176,18 @@ static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp)
}
if (is_encrypt(cryp)) {
+ u32 out_tag[AES_BLOCK_32];
+
/* Get and write tag */
- dst = sg_virt(cryp->out_sg) + _walked_out;
+ for (i = 0; i < AES_BLOCK_32; i++)
+ out_tag[i] = stm32_cryp_read(cryp, CRYP_DOUT);
- for (i = 0; i < AES_BLOCK_32; i++) {
- if (cryp->total_out >= sizeof(u32)) {
- /* Read a full u32 */
- *dst = stm32_cryp_read(cryp, CRYP_DOUT);
-
- dst = stm32_cryp_next_out(cryp, dst,
- sizeof(u32));
- cryp->total_out -= sizeof(u32);
- } else if (!cryp->total_out) {
- /* Empty fifo out (data from input padding) */
- stm32_cryp_read(cryp, CRYP_DOUT);
- } else {
- /* Read less than an u32 */
- d32 = stm32_cryp_read(cryp, CRYP_DOUT);
- d8 = (u8 *)&d32;
-
- for (j = 0; j < cryp->total_out; j++) {
- *((u8 *)dst) = *(d8++);
- dst = stm32_cryp_next_out(cryp, dst, 1);
- }
- cryp->total_out = 0;
- }
- }
+ scatterwalk_copychunks(out_tag, &cryp->out_walk, cryp->authsize, 1);
} else {
/* Get and check tag */
u32 in_tag[AES_BLOCK_32], out_tag[AES_BLOCK_32];
- scatterwalk_map_and_copy(in_tag, cryp->in_sg,
- cryp->total_in_save - cryp->authsize,
- cryp->authsize, 0);
+ scatterwalk_copychunks(in_tag, &cryp->in_walk, cryp->authsize, 0);
for (i = 0; i < AES_BLOCK_32; i++)
out_tag[i] = stm32_cryp_read(cryp, CRYP_DOUT);
@@ -1217,115 +1207,59 @@ static void stm32_cryp_check_ctr_counter(struct stm32_cryp *cryp)
{
u32 cr;
- if (unlikely(cryp->last_ctr[3] == 0xFFFFFFFF)) {
- cryp->last_ctr[3] = 0;
- cryp->last_ctr[2]++;
- if (!cryp->last_ctr[2]) {
- cryp->last_ctr[1]++;
- if (!cryp->last_ctr[1])
- cryp->last_ctr[0]++;
- }
+ if (unlikely(cryp->last_ctr[3] == cpu_to_be32(0xFFFFFFFF))) {
+ /*
+ * In this case, we need to increment manually the ctr counter,
+ * as HW doesn't handle the U32 carry.
+ */
+ crypto_inc((u8 *)cryp->last_ctr, sizeof(cryp->last_ctr));
cr = stm32_cryp_read(cryp, CRYP_CR);
stm32_cryp_write(cryp, CRYP_CR, cr & ~CR_CRYPEN);
- stm32_cryp_hw_write_iv(cryp, (__be32 *)cryp->last_ctr);
+ stm32_cryp_hw_write_iv(cryp, cryp->last_ctr);
stm32_cryp_write(cryp, CRYP_CR, cr);
}
- cryp->last_ctr[0] = stm32_cryp_read(cryp, CRYP_IV0LR);
- cryp->last_ctr[1] = stm32_cryp_read(cryp, CRYP_IV0RR);
- cryp->last_ctr[2] = stm32_cryp_read(cryp, CRYP_IV1LR);
- cryp->last_ctr[3] = stm32_cryp_read(cryp, CRYP_IV1RR);
+ /* The IV registers are BE */
+ cryp->last_ctr[0] = cpu_to_be32(stm32_cryp_read(cryp, CRYP_IV0LR));
+ cryp->last_ctr[1] = cpu_to_be32(stm32_cryp_read(cryp, CRYP_IV0RR));
+ cryp->last_ctr[2] = cpu_to_be32(stm32_cryp_read(cryp, CRYP_IV1LR));
+ cryp->last_ctr[3] = cpu_to_be32(stm32_cryp_read(cryp, CRYP_IV1RR));
}
-static bool stm32_cryp_irq_read_data(struct stm32_cryp *cryp)
+static void stm32_cryp_irq_read_data(struct stm32_cryp *cryp)
{
- unsigned int i, j;
- u32 d32, *dst;
- u8 *d8;
- size_t tag_size;
-
- /* Do no read tag now (if any) */
- if (is_encrypt(cryp) && (is_gcm(cryp) || is_ccm(cryp)))
- tag_size = cryp->authsize;
- else
- tag_size = 0;
-
- dst = sg_virt(cryp->out_sg) + _walked_out;
+ unsigned int i;
+ u32 block[AES_BLOCK_32];
- for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++) {
- if (likely(cryp->total_out - tag_size >= sizeof(u32))) {
- /* Read a full u32 */
- *dst = stm32_cryp_read(cryp, CRYP_DOUT);
+ for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++)
+ block[i] = stm32_cryp_read(cryp, CRYP_DOUT);
- dst = stm32_cryp_next_out(cryp, dst, sizeof(u32));
- cryp->total_out -= sizeof(u32);
- } else if (cryp->total_out == tag_size) {
- /* Empty fifo out (data from input padding) */
- d32 = stm32_cryp_read(cryp, CRYP_DOUT);
- } else {
- /* Read less than an u32 */
- d32 = stm32_cryp_read(cryp, CRYP_DOUT);
- d8 = (u8 *)&d32;
-
- for (j = 0; j < cryp->total_out - tag_size; j++) {
- *((u8 *)dst) = *(d8++);
- dst = stm32_cryp_next_out(cryp, dst, 1);
- }
- cryp->total_out = tag_size;
- }
- }
-
- return !(cryp->total_out - tag_size) || !cryp->total_in;
+ scatterwalk_copychunks(block, &cryp->out_walk, min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out), 1);
+ cryp->payload_out -= min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out);
}
static void stm32_cryp_irq_write_block(struct stm32_cryp *cryp)
{
- unsigned int i, j;
- u32 *src;
- u8 d8[4];
- size_t tag_size;
-
- /* Do no write tag (if any) */
- if (is_decrypt(cryp) && (is_gcm(cryp) || is_ccm(cryp)))
- tag_size = cryp->authsize;
- else
- tag_size = 0;
-
- src = sg_virt(cryp->in_sg) + _walked_in;
+ unsigned int i;
+ u32 block[AES_BLOCK_32] = {0};
- for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++) {
- if (likely(cryp->total_in - tag_size >= sizeof(u32))) {
- /* Write a full u32 */
- stm32_cryp_write(cryp, CRYP_DIN, *src);
+ scatterwalk_copychunks(block, &cryp->in_walk, min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_in), 0);
+ for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++)
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
- src = stm32_cryp_next_in(cryp, src, sizeof(u32));
- cryp->total_in -= sizeof(u32);
- } else if (cryp->total_in == tag_size) {
- /* Write padding data */
- stm32_cryp_write(cryp, CRYP_DIN, 0);
- } else {
- /* Write less than an u32 */
- memset(d8, 0, sizeof(u32));
- for (j = 0; j < cryp->total_in - tag_size; j++) {
- d8[j] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
- }
-
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
- cryp->total_in = tag_size;
- }
- }
+ cryp->payload_in -= min_t(size_t, cryp->hw_blocksize, cryp->payload_in);
}
static void stm32_cryp_irq_write_gcm_padded_data(struct stm32_cryp *cryp)
{
int err;
- u32 cfg, tmp[AES_BLOCK_32];
- size_t total_in_ori = cryp->total_in;
- struct scatterlist *out_sg_ori = cryp->out_sg;
+ u32 cfg, block[AES_BLOCK_32] = {0};
unsigned int i;
/* 'Special workaround' procedure described in the datasheet */
@@ -1350,18 +1284,25 @@ static void stm32_cryp_irq_write_gcm_padded_data(struct stm32_cryp *cryp)
/* b) pad and write the last block */
stm32_cryp_irq_write_block(cryp);
- cryp->total_in = total_in_ori;
+ /* wait end of process */
err = stm32_cryp_wait_output(cryp);
if (err) {
- dev_err(cryp->dev, "Timeout (write gcm header)\n");
+ dev_err(cryp->dev, "Timeout (write gcm last data)\n");
return stm32_cryp_finish_req(cryp, err);
}
/* c) get and store encrypted data */
- stm32_cryp_irq_read_data(cryp);
- scatterwalk_map_and_copy(tmp, out_sg_ori,
- cryp->total_in_save - total_in_ori,
- total_in_ori, 0);
+ /*
+ * Same code as stm32_cryp_irq_read_data(), but we want to store
+ * block value
+ */
+ for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++)
+ block[i] = stm32_cryp_read(cryp, CRYP_DOUT);
+
+ scatterwalk_copychunks(block, &cryp->out_walk, min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out), 1);
+ cryp->payload_out -= min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out);
/* d) change mode back to AES GCM */
cfg &= ~CR_ALGO_MASK;
@@ -1374,19 +1315,13 @@ static void stm32_cryp_irq_write_gcm_padded_data(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_CR, cfg);
/* f) write padded data */
- for (i = 0; i < AES_BLOCK_32; i++) {
- if (cryp->total_in)
- stm32_cryp_write(cryp, CRYP_DIN, tmp[i]);
- else
- stm32_cryp_write(cryp, CRYP_DIN, 0);
-
- cryp->total_in -= min_t(size_t, sizeof(u32), cryp->total_in);
- }
+ for (i = 0; i < AES_BLOCK_32; i++)
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
/* g) Empty fifo out */
err = stm32_cryp_wait_output(cryp);
if (err) {
- dev_err(cryp->dev, "Timeout (write gcm header)\n");
+ dev_err(cryp->dev, "Timeout (write gcm padded data)\n");
return stm32_cryp_finish_req(cryp, err);
}
@@ -1399,16 +1334,14 @@ static void stm32_cryp_irq_write_gcm_padded_data(struct stm32_cryp *cryp)
static void stm32_cryp_irq_set_npblb(struct stm32_cryp *cryp)
{
- u32 cfg, payload_bytes;
+ u32 cfg;
/* disable ip, set NPBLB and reneable ip */
cfg = stm32_cryp_read(cryp, CRYP_CR);
cfg &= ~CR_CRYPEN;
stm32_cryp_write(cryp, CRYP_CR, cfg);
- payload_bytes = is_decrypt(cryp) ? cryp->total_in - cryp->authsize :
- cryp->total_in;
- cfg |= (cryp->hw_blocksize - payload_bytes) << CR_NBPBL_SHIFT;
+ cfg |= (cryp->hw_blocksize - cryp->payload_in) << CR_NBPBL_SHIFT;
cfg |= CR_CRYPEN;
stm32_cryp_write(cryp, CRYP_CR, cfg);
}
@@ -1417,13 +1350,11 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
{
int err = 0;
u32 cfg, iv1tmp;
- u32 cstmp1[AES_BLOCK_32], cstmp2[AES_BLOCK_32], tmp[AES_BLOCK_32];
- size_t last_total_out, total_in_ori = cryp->total_in;
- struct scatterlist *out_sg_ori = cryp->out_sg;
+ u32 cstmp1[AES_BLOCK_32], cstmp2[AES_BLOCK_32];
+ u32 block[AES_BLOCK_32] = {0};
unsigned int i;
/* 'Special workaround' procedure described in the datasheet */
- cryp->flags |= FLG_CCM_PADDED_WA;
/* a) disable ip */
stm32_cryp_write(cryp, CRYP_IMSCR, 0);
@@ -1453,7 +1384,7 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
/* b) pad and write the last block */
stm32_cryp_irq_write_block(cryp);
- cryp->total_in = total_in_ori;
+ /* wait end of process */
err = stm32_cryp_wait_output(cryp);
if (err) {
dev_err(cryp->dev, "Timeout (wite ccm padded data)\n");
@@ -1461,13 +1392,16 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
}
/* c) get and store decrypted data */
- last_total_out = cryp->total_out;
- stm32_cryp_irq_read_data(cryp);
+ /*
+ * Same code as stm32_cryp_irq_read_data(), but we want to store
+ * block value
+ */
+ for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++)
+ block[i] = stm32_cryp_read(cryp, CRYP_DOUT);
- memset(tmp, 0, sizeof(tmp));
- scatterwalk_map_and_copy(tmp, out_sg_ori,
- cryp->total_out_save - last_total_out,
- last_total_out, 0);
+ scatterwalk_copychunks(block, &cryp->out_walk, min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out), 1);
+ cryp->payload_out -= min_t(size_t, cryp->hw_blocksize, cryp->payload_out);
/* d) Load again CRYP_CSGCMCCMxR */
for (i = 0; i < ARRAY_SIZE(cstmp2); i++)
@@ -1484,10 +1418,10 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_CR, cfg);
/* g) XOR and write padded data */
- for (i = 0; i < ARRAY_SIZE(tmp); i++) {
- tmp[i] ^= cstmp1[i];
- tmp[i] ^= cstmp2[i];
- stm32_cryp_write(cryp, CRYP_DIN, tmp[i]);
+ for (i = 0; i < ARRAY_SIZE(block); i++) {
+ block[i] ^= cstmp1[i];
+ block[i] ^= cstmp2[i];
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
}
/* h) wait for completion */
@@ -1501,30 +1435,34 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
static void stm32_cryp_irq_write_data(struct stm32_cryp *cryp)
{
- if (unlikely(!cryp->total_in)) {
+ if (unlikely(!cryp->payload_in)) {
dev_warn(cryp->dev, "No more data to process\n");
return;
}
- if (unlikely(cryp->total_in < AES_BLOCK_SIZE &&
+ if (unlikely(cryp->payload_in < AES_BLOCK_SIZE &&
(stm32_cryp_get_hw_mode(cryp) == CR_AES_GCM) &&
is_encrypt(cryp))) {
/* Padding for AES GCM encryption */
- if (cryp->caps->padding_wa)
+ if (cryp->caps->padding_wa) {
/* Special case 1 */
- return stm32_cryp_irq_write_gcm_padded_data(cryp);
+ stm32_cryp_irq_write_gcm_padded_data(cryp);
+ return;
+ }
/* Setting padding bytes (NBBLB) */
stm32_cryp_irq_set_npblb(cryp);
}
- if (unlikely((cryp->total_in - cryp->authsize < AES_BLOCK_SIZE) &&
+ if (unlikely((cryp->payload_in < AES_BLOCK_SIZE) &&
(stm32_cryp_get_hw_mode(cryp) == CR_AES_CCM) &&
is_decrypt(cryp))) {
/* Padding for AES CCM decryption */
- if (cryp->caps->padding_wa)
+ if (cryp->caps->padding_wa) {
/* Special case 2 */
- return stm32_cryp_irq_write_ccm_padded_data(cryp);
+ stm32_cryp_irq_write_ccm_padded_data(cryp);
+ return;
+ }
/* Setting padding bytes (NBBLB) */
stm32_cryp_irq_set_npblb(cryp);
@@ -1536,192 +1474,60 @@ static void stm32_cryp_irq_write_data(struct stm32_cryp *cryp)
stm32_cryp_irq_write_block(cryp);
}
-static void stm32_cryp_irq_write_gcm_header(struct stm32_cryp *cryp)
+static void stm32_cryp_irq_write_gcmccm_header(struct stm32_cryp *cryp)
{
- int err;
- unsigned int i, j;
- u32 cfg, *src;
-
- src = sg_virt(cryp->in_sg) + _walked_in;
-
- for (i = 0; i < AES_BLOCK_32; i++) {
- stm32_cryp_write(cryp, CRYP_DIN, *src);
-
- src = stm32_cryp_next_in(cryp, src, sizeof(u32));
- cryp->total_in -= min_t(size_t, sizeof(u32), cryp->total_in);
-
- /* Check if whole header written */
- if ((cryp->total_in_save - cryp->total_in) ==
- cryp->areq->assoclen) {
- /* Write padding if needed */
- for (j = i + 1; j < AES_BLOCK_32; j++)
- stm32_cryp_write(cryp, CRYP_DIN, 0);
-
- /* Wait for completion */
- err = stm32_cryp_wait_busy(cryp);
- if (err) {
- dev_err(cryp->dev, "Timeout (gcm header)\n");
- return stm32_cryp_finish_req(cryp, err);
- }
-
- if (stm32_cryp_get_input_text_len(cryp)) {
- /* Phase 3 : payload */
- cfg = stm32_cryp_read(cryp, CRYP_CR);
- cfg &= ~CR_CRYPEN;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
-
- cfg &= ~CR_PH_MASK;
- cfg |= CR_PH_PAYLOAD;
- cfg |= CR_CRYPEN;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
- } else {
- /* Phase 4 : tag */
- stm32_cryp_write(cryp, CRYP_IMSCR, 0);
- stm32_cryp_finish_req(cryp, 0);
- }
-
- break;
- }
-
- if (!cryp->total_in)
- break;
- }
-}
+ unsigned int i;
+ u32 block[AES_BLOCK_32] = {0};
+ size_t written;
-static void stm32_cryp_irq_write_ccm_header(struct stm32_cryp *cryp)
-{
- int err;
- unsigned int i = 0, j, k;
- u32 alen, cfg, *src;
- u8 d8[4];
-
- src = sg_virt(cryp->in_sg) + _walked_in;
- alen = cryp->areq->assoclen;
-
- if (!_walked_in) {
- if (cryp->areq->assoclen <= 65280) {
- /* Write first u32 of B1 */
- d8[0] = (alen >> 8) & 0xFF;
- d8[1] = alen & 0xFF;
- d8[2] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
- d8[3] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
-
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
- i++;
-
- cryp->total_in -= min_t(size_t, 2, cryp->total_in);
- } else {
- /* Build the two first u32 of B1 */
- d8[0] = 0xFF;
- d8[1] = 0xFE;
- d8[2] = alen & 0xFF000000;
- d8[3] = alen & 0x00FF0000;
-
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
- i++;
-
- d8[0] = alen & 0x0000FF00;
- d8[1] = alen & 0x000000FF;
- d8[2] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
- d8[3] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
-
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
- i++;
-
- cryp->total_in -= min_t(size_t, 2, cryp->total_in);
- }
- }
+ written = min_t(size_t, AES_BLOCK_SIZE, cryp->header_in);
- /* Write next u32 */
- for (; i < AES_BLOCK_32; i++) {
- /* Build an u32 */
- memset(d8, 0, sizeof(u32));
- for (k = 0; k < sizeof(u32); k++) {
- d8[k] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
-
- cryp->total_in -= min_t(size_t, 1, cryp->total_in);
- if ((cryp->total_in_save - cryp->total_in) == alen)
- break;
- }
+ scatterwalk_copychunks(block, &cryp->in_walk, written, 0);
+ for (i = 0; i < AES_BLOCK_32; i++)
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
-
- if ((cryp->total_in_save - cryp->total_in) == alen) {
- /* Write padding if needed */
- for (j = i + 1; j < AES_BLOCK_32; j++)
- stm32_cryp_write(cryp, CRYP_DIN, 0);
-
- /* Wait for completion */
- err = stm32_cryp_wait_busy(cryp);
- if (err) {
- dev_err(cryp->dev, "Timeout (ccm header)\n");
- return stm32_cryp_finish_req(cryp, err);
- }
-
- if (stm32_cryp_get_input_text_len(cryp)) {
- /* Phase 3 : payload */
- cfg = stm32_cryp_read(cryp, CRYP_CR);
- cfg &= ~CR_CRYPEN;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
-
- cfg &= ~CR_PH_MASK;
- cfg |= CR_PH_PAYLOAD;
- cfg |= CR_CRYPEN;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
- } else {
- /* Phase 4 : tag */
- stm32_cryp_write(cryp, CRYP_IMSCR, 0);
- stm32_cryp_finish_req(cryp, 0);
- }
+ cryp->header_in -= written;
- break;
- }
- }
+ stm32_crypt_gcmccm_end_header(cryp);
}
static irqreturn_t stm32_cryp_irq_thread(int irq, void *arg)
{
struct stm32_cryp *cryp = arg;
u32 ph;
+ u32 it_mask = stm32_cryp_read(cryp, CRYP_IMSCR);
if (cryp->irq_status & MISR_OUT)
/* Output FIFO IRQ: read data */
- if (unlikely(stm32_cryp_irq_read_data(cryp))) {
- /* All bytes processed, finish */
- stm32_cryp_write(cryp, CRYP_IMSCR, 0);
- stm32_cryp_finish_req(cryp, 0);
- return IRQ_HANDLED;
- }
+ stm32_cryp_irq_read_data(cryp);
if (cryp->irq_status & MISR_IN) {
- if (is_gcm(cryp)) {
+ if (is_gcm(cryp) || is_ccm(cryp)) {
ph = stm32_cryp_read(cryp, CRYP_CR) & CR_PH_MASK;
if (unlikely(ph == CR_PH_HEADER))
/* Write Header */
- stm32_cryp_irq_write_gcm_header(cryp);
- else
- /* Input FIFO IRQ: write data */
- stm32_cryp_irq_write_data(cryp);
- cryp->gcm_ctr++;
- } else if (is_ccm(cryp)) {
- ph = stm32_cryp_read(cryp, CRYP_CR) & CR_PH_MASK;
- if (unlikely(ph == CR_PH_HEADER))
- /* Write Header */
- stm32_cryp_irq_write_ccm_header(cryp);
+ stm32_cryp_irq_write_gcmccm_header(cryp);
else
/* Input FIFO IRQ: write data */
stm32_cryp_irq_write_data(cryp);
+ if (is_gcm(cryp))
+ cryp->gcm_ctr++;
} else {
/* Input FIFO IRQ: write data */
stm32_cryp_irq_write_data(cryp);
}
}
+ /* Mask useless interrupts */
+ if (!cryp->payload_in && !cryp->header_in)
+ it_mask &= ~IMSCR_IN;
+ if (!cryp->payload_out)
+ it_mask &= ~IMSCR_OUT;
+ stm32_cryp_write(cryp, CRYP_IMSCR, it_mask);
+
+ if (!cryp->payload_in && !cryp->header_in && !cryp->payload_out)
+ stm32_cryp_finish_req(cryp, 0);
+
return IRQ_HANDLED;
}
@@ -1742,7 +1548,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = AES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1759,7 +1565,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = AES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1777,7 +1583,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = 1,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1795,7 +1601,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = DES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1812,7 +1618,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = DES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1830,7 +1636,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = DES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1847,7 +1653,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = DES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1877,7 +1683,7 @@ static struct aead_alg aead_algs[] = {
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = 1,
.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .cra_alignmask = 0xf,
+ .cra_alignmask = 0,
.cra_module = THIS_MODULE,
},
},
@@ -1897,7 +1703,7 @@ static struct aead_alg aead_algs[] = {
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = 1,
.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .cra_alignmask = 0xf,
+ .cra_alignmask = 0,
.cra_module = THIS_MODULE,
},
},
@@ -2025,8 +1831,6 @@ static int stm32_cryp_probe(struct platform_device *pdev)
list_del(&cryp->list);
spin_unlock(&cryp_list.lock);
- pm_runtime_disable(dev);
- pm_runtime_put_noidle(dev);
pm_runtime_disable(dev);
pm_runtime_put_noidle(dev);
diff --git a/drivers/crypto/stm32/stm32-hash.c b/drivers/crypto/stm32/stm32-hash.c
index 389de9e3302d..d33006d43f76 100644
--- a/drivers/crypto/stm32/stm32-hash.c
+++ b/drivers/crypto/stm32/stm32-hash.c
@@ -813,7 +813,7 @@ static void stm32_hash_finish_req(struct ahash_request *req, int err)
static int stm32_hash_hw_init(struct stm32_hash_dev *hdev,
struct stm32_hash_request_ctx *rctx)
{
- pm_runtime_resume_and_get(hdev->dev);
+ pm_runtime_get_sync(hdev->dev);
if (!(HASH_FLAGS_INIT & hdev->flags)) {
stm32_hash_write(hdev, HASH_CR, HASH_CR_INIT);
@@ -962,7 +962,7 @@ static int stm32_hash_export(struct ahash_request *req, void *out)
u32 *preg;
unsigned int i;
- pm_runtime_resume_and_get(hdev->dev);
+ pm_runtime_get_sync(hdev->dev);
while ((stm32_hash_read(hdev, HASH_SR) & HASH_SR_BUSY))
cpu_relax();
@@ -1000,7 +1000,7 @@ static int stm32_hash_import(struct ahash_request *req, const void *in)
preg = rctx->hw_context;
- pm_runtime_resume_and_get(hdev->dev);
+ pm_runtime_get_sync(hdev->dev);
stm32_hash_write(hdev, HASH_IMR, *preg++);
stm32_hash_write(hdev, HASH_STR, *preg++);
diff --git a/drivers/cxl/core/bus.c b/drivers/cxl/core/bus.c
index ebd061d03950..46ce58376580 100644
--- a/drivers/cxl/core/bus.c
+++ b/drivers/cxl/core/bus.c
@@ -485,9 +485,7 @@ static int decoder_populate_targets(struct cxl_decoder *cxld,
struct cxl_decoder *cxl_decoder_alloc(struct cxl_port *port, int nr_targets)
{
- struct cxl_decoder *cxld, cxld_const_init = {
- .nr_targets = nr_targets,
- };
+ struct cxl_decoder *cxld;
struct device *dev;
int rc = 0;
@@ -497,13 +495,13 @@ struct cxl_decoder *cxl_decoder_alloc(struct cxl_port *port, int nr_targets)
cxld = kzalloc(struct_size(cxld, target, nr_targets), GFP_KERNEL);
if (!cxld)
return ERR_PTR(-ENOMEM);
- memcpy(cxld, &cxld_const_init, sizeof(cxld_const_init));
rc = ida_alloc(&port->decoder_ida, GFP_KERNEL);
if (rc < 0)
goto err;
cxld->id = rc;
+ cxld->nr_targets = nr_targets;
dev = &cxld->dev;
device_initialize(dev);
device_set_pm_not_required(dev);
diff --git a/drivers/cxl/core/pmem.c b/drivers/cxl/core/pmem.c
index 5032f4c1c69d..ab461bfdfbec 100644
--- a/drivers/cxl/core/pmem.c
+++ b/drivers/cxl/core/pmem.c
@@ -51,10 +51,16 @@ struct cxl_nvdimm_bridge *to_cxl_nvdimm_bridge(struct device *dev)
}
EXPORT_SYMBOL_GPL(to_cxl_nvdimm_bridge);
-__mock int match_nvdimm_bridge(struct device *dev, const void *data)
+bool is_cxl_nvdimm_bridge(struct device *dev)
{
return dev->type == &cxl_nvdimm_bridge_type;
}
+EXPORT_SYMBOL_NS_GPL(is_cxl_nvdimm_bridge, CXL);
+
+__mock int match_nvdimm_bridge(struct device *dev, const void *data)
+{
+ return is_cxl_nvdimm_bridge(dev);
+}
struct cxl_nvdimm_bridge *cxl_find_nvdimm_bridge(struct cxl_nvdimm *cxl_nvd)
{
diff --git a/drivers/cxl/cxl.h b/drivers/cxl/cxl.h
index 3af704e9b448..a5a0be3f088b 100644
--- a/drivers/cxl/cxl.h
+++ b/drivers/cxl/cxl.h
@@ -191,11 +191,18 @@ struct cxl_decoder {
int interleave_granularity;
enum cxl_decoder_type target_type;
unsigned long flags;
- const int nr_targets;
+ int nr_targets;
struct cxl_dport *target[];
};
+/**
+ * enum cxl_nvdimm_brige_state - state machine for managing bus rescans
+ * @CXL_NVB_NEW: Set at bridge create and after cxl_pmem_wq is destroyed
+ * @CXL_NVB_DEAD: Set at brige unregistration to preclude async probing
+ * @CXL_NVB_ONLINE: Target state after successful ->probe()
+ * @CXL_NVB_OFFLINE: Target state after ->remove() or failed ->probe()
+ */
enum cxl_nvdimm_brige_state {
CXL_NVB_NEW,
CXL_NVB_DEAD,
@@ -308,6 +315,7 @@ struct cxl_nvdimm_bridge *devm_cxl_add_nvdimm_bridge(struct device *host,
struct cxl_port *port);
struct cxl_nvdimm *to_cxl_nvdimm(struct device *dev);
bool is_cxl_nvdimm(struct device *dev);
+bool is_cxl_nvdimm_bridge(struct device *dev);
int devm_cxl_add_nvdimm(struct device *host, struct cxl_memdev *cxlmd);
struct cxl_nvdimm_bridge *cxl_find_nvdimm_bridge(struct cxl_nvdimm *cxl_nvd);
diff --git a/drivers/cxl/pmem.c b/drivers/cxl/pmem.c
index ceb2115981e5..306f032b4798 100644
--- a/drivers/cxl/pmem.c
+++ b/drivers/cxl/pmem.c
@@ -266,14 +266,24 @@ static void cxl_nvb_update_state(struct work_struct *work)
put_device(&cxl_nvb->dev);
}
+static void cxl_nvdimm_bridge_state_work(struct cxl_nvdimm_bridge *cxl_nvb)
+{
+ /*
+ * Take a reference that the workqueue will drop if new work
+ * gets queued.
+ */
+ get_device(&cxl_nvb->dev);
+ if (!queue_work(cxl_pmem_wq, &cxl_nvb->state_work))
+ put_device(&cxl_nvb->dev);
+}
+
static void cxl_nvdimm_bridge_remove(struct device *dev)
{
struct cxl_nvdimm_bridge *cxl_nvb = to_cxl_nvdimm_bridge(dev);
if (cxl_nvb->state == CXL_NVB_ONLINE)
cxl_nvb->state = CXL_NVB_OFFLINE;
- if (queue_work(cxl_pmem_wq, &cxl_nvb->state_work))
- get_device(&cxl_nvb->dev);
+ cxl_nvdimm_bridge_state_work(cxl_nvb);
}
static int cxl_nvdimm_bridge_probe(struct device *dev)
@@ -294,8 +304,7 @@ static int cxl_nvdimm_bridge_probe(struct device *dev)
}
cxl_nvb->state = CXL_NVB_ONLINE;
- if (queue_work(cxl_pmem_wq, &cxl_nvb->state_work))
- get_device(&cxl_nvb->dev);
+ cxl_nvdimm_bridge_state_work(cxl_nvb);
return 0;
}
@@ -307,6 +316,31 @@ static struct cxl_driver cxl_nvdimm_bridge_driver = {
.id = CXL_DEVICE_NVDIMM_BRIDGE,
};
+/*
+ * Return all bridges to the CXL_NVB_NEW state to invalidate any
+ * ->state_work referring to the now destroyed cxl_pmem_wq.
+ */
+static int cxl_nvdimm_bridge_reset(struct device *dev, void *data)
+{
+ struct cxl_nvdimm_bridge *cxl_nvb;
+
+ if (!is_cxl_nvdimm_bridge(dev))
+ return 0;
+
+ cxl_nvb = to_cxl_nvdimm_bridge(dev);
+ device_lock(dev);
+ cxl_nvb->state = CXL_NVB_NEW;
+ device_unlock(dev);
+
+ return 0;
+}
+
+static void destroy_cxl_pmem_wq(void)
+{
+ destroy_workqueue(cxl_pmem_wq);
+ bus_for_each_dev(&cxl_bus_type, NULL, NULL, cxl_nvdimm_bridge_reset);
+}
+
static __init int cxl_pmem_init(void)
{
int rc;
@@ -332,7 +366,7 @@ static __init int cxl_pmem_init(void)
err_nvdimm:
cxl_driver_unregister(&cxl_nvdimm_bridge_driver);
err_bridge:
- destroy_workqueue(cxl_pmem_wq);
+ destroy_cxl_pmem_wq();
return rc;
}
@@ -340,7 +374,7 @@ static __exit void cxl_pmem_exit(void)
{
cxl_driver_unregister(&cxl_nvdimm_driver);
cxl_driver_unregister(&cxl_nvdimm_bridge_driver);
- destroy_workqueue(cxl_pmem_wq);
+ destroy_cxl_pmem_wq();
}
MODULE_LICENSE("GPL v2");
diff --git a/drivers/dax/super.c b/drivers/dax/super.c
index b882cf8106ea..e20d0cef10a1 100644
--- a/drivers/dax/super.c
+++ b/drivers/dax/super.c
@@ -63,7 +63,7 @@ static int dax_host_hash(const char *host)
return hashlen_hash(hashlen_string("DAX", host)) % DAX_HASH_SIZE;
}
-#ifdef CONFIG_BLOCK
+#if defined(CONFIG_BLOCK) && defined(CONFIG_FS_DAX)
#include <linux/blkdev.h>
int bdev_dax_pgoff(struct block_device *bdev, sector_t sector, size_t size,
@@ -80,7 +80,6 @@ int bdev_dax_pgoff(struct block_device *bdev, sector_t sector, size_t size,
}
EXPORT_SYMBOL(bdev_dax_pgoff);
-#if IS_ENABLED(CONFIG_FS_DAX)
/**
* dax_get_by_host() - temporary lookup mechanism for filesystem-dax
* @host: alternate name for the device registered by a dax driver
@@ -219,8 +218,7 @@ bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
return ret;
}
EXPORT_SYMBOL_GPL(dax_supported);
-#endif /* CONFIG_FS_DAX */
-#endif /* CONFIG_BLOCK */
+#endif /* CONFIG_BLOCK && CONFIG_FS_DAX */
enum dax_device_flags {
/* !alive + rcu grace period == no new operations / mappings */
diff --git a/drivers/dma-buf/dma-fence-array.c b/drivers/dma-buf/dma-fence-array.c
index d3fbd950be94..3e07f961e2f3 100644
--- a/drivers/dma-buf/dma-fence-array.c
+++ b/drivers/dma-buf/dma-fence-array.c
@@ -104,7 +104,11 @@ static bool dma_fence_array_signaled(struct dma_fence *fence)
{
struct dma_fence_array *array = to_dma_fence_array(fence);
- return atomic_read(&array->num_pending) <= 0;
+ if (atomic_read(&array->num_pending) > 0)
+ return false;
+
+ dma_fence_array_clear_pending_error(array);
+ return true;
}
static void dma_fence_array_release(struct dma_fence *fence)
diff --git a/drivers/dma-buf/heaps/cma_heap.c b/drivers/dma-buf/heaps/cma_heap.c
index 0c05b79870f9..83f02bd51dda 100644
--- a/drivers/dma-buf/heaps/cma_heap.c
+++ b/drivers/dma-buf/heaps/cma_heap.c
@@ -124,10 +124,11 @@ static int cma_heap_dma_buf_begin_cpu_access(struct dma_buf *dmabuf,
struct cma_heap_buffer *buffer = dmabuf->priv;
struct dma_heap_attachment *a;
+ mutex_lock(&buffer->lock);
+
if (buffer->vmap_cnt)
invalidate_kernel_vmap_range(buffer->vaddr, buffer->len);
- mutex_lock(&buffer->lock);
list_for_each_entry(a, &buffer->attachments, list) {
if (!a->mapped)
continue;
@@ -144,10 +145,11 @@ static int cma_heap_dma_buf_end_cpu_access(struct dma_buf *dmabuf,
struct cma_heap_buffer *buffer = dmabuf->priv;
struct dma_heap_attachment *a;
+ mutex_lock(&buffer->lock);
+
if (buffer->vmap_cnt)
flush_kernel_vmap_range(buffer->vaddr, buffer->len);
- mutex_lock(&buffer->lock);
list_for_each_entry(a, &buffer->attachments, list) {
if (!a->mapped)
continue;
diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c
index 275a76f188ae..3d138c0c96de 100644
--- a/drivers/dma/at_xdmac.c
+++ b/drivers/dma/at_xdmac.c
@@ -99,6 +99,7 @@
#define AT_XDMAC_CNDC_NDE (0x1 << 0) /* Channel x Next Descriptor Enable */
#define AT_XDMAC_CNDC_NDSUP (0x1 << 1) /* Channel x Next Descriptor Source Update */
#define AT_XDMAC_CNDC_NDDUP (0x1 << 2) /* Channel x Next Descriptor Destination Update */
+#define AT_XDMAC_CNDC_NDVIEW_MASK GENMASK(28, 27)
#define AT_XDMAC_CNDC_NDVIEW_NDV0 (0x0 << 3) /* Channel x Next Descriptor View 0 */
#define AT_XDMAC_CNDC_NDVIEW_NDV1 (0x1 << 3) /* Channel x Next Descriptor View 1 */
#define AT_XDMAC_CNDC_NDVIEW_NDV2 (0x2 << 3) /* Channel x Next Descriptor View 2 */
@@ -252,15 +253,15 @@ struct at_xdmac {
/* Linked List Descriptor */
struct at_xdmac_lld {
- dma_addr_t mbr_nda; /* Next Descriptor Member */
- u32 mbr_ubc; /* Microblock Control Member */
- dma_addr_t mbr_sa; /* Source Address Member */
- dma_addr_t mbr_da; /* Destination Address Member */
- u32 mbr_cfg; /* Configuration Register */
- u32 mbr_bc; /* Block Control Register */
- u32 mbr_ds; /* Data Stride Register */
- u32 mbr_sus; /* Source Microblock Stride Register */
- u32 mbr_dus; /* Destination Microblock Stride Register */
+ u32 mbr_nda; /* Next Descriptor Member */
+ u32 mbr_ubc; /* Microblock Control Member */
+ u32 mbr_sa; /* Source Address Member */
+ u32 mbr_da; /* Destination Address Member */
+ u32 mbr_cfg; /* Configuration Register */
+ u32 mbr_bc; /* Block Control Register */
+ u32 mbr_ds; /* Data Stride Register */
+ u32 mbr_sus; /* Source Microblock Stride Register */
+ u32 mbr_dus; /* Destination Microblock Stride Register */
};
/* 64-bit alignment needed to update CNDA and CUBC registers in an atomic way. */
@@ -385,9 +386,6 @@ static void at_xdmac_start_xfer(struct at_xdmac_chan *atchan,
dev_vdbg(chan2dev(&atchan->chan), "%s: desc 0x%p\n", __func__, first);
- if (at_xdmac_chan_is_enabled(atchan))
- return;
-
/* Set transfer as active to not try to start it again. */
first->active_xfer = true;
@@ -405,7 +403,8 @@ static void at_xdmac_start_xfer(struct at_xdmac_chan *atchan,
*/
if (at_xdmac_chan_is_cyclic(atchan))
reg = AT_XDMAC_CNDC_NDVIEW_NDV1;
- else if (first->lld.mbr_ubc & AT_XDMAC_MBR_UBC_NDV3)
+ else if ((first->lld.mbr_ubc &
+ AT_XDMAC_CNDC_NDVIEW_MASK) == AT_XDMAC_MBR_UBC_NDV3)
reg = AT_XDMAC_CNDC_NDVIEW_NDV3;
else
reg = AT_XDMAC_CNDC_NDVIEW_NDV2;
@@ -476,13 +475,12 @@ static dma_cookie_t at_xdmac_tx_submit(struct dma_async_tx_descriptor *tx)
spin_lock_irqsave(&atchan->lock, irqflags);
cookie = dma_cookie_assign(tx);
+ list_add_tail(&desc->xfer_node, &atchan->xfers_list);
+ spin_unlock_irqrestore(&atchan->lock, irqflags);
+
dev_vdbg(chan2dev(tx->chan), "%s: atchan 0x%p, add desc 0x%p to xfers_list\n",
__func__, atchan, desc);
- list_add_tail(&desc->xfer_node, &atchan->xfers_list);
- if (list_is_singular(&atchan->xfers_list))
- at_xdmac_start_xfer(atchan, desc);
- spin_unlock_irqrestore(&atchan->lock, irqflags);
return cookie;
}
@@ -1623,14 +1621,17 @@ static void at_xdmac_handle_cyclic(struct at_xdmac_chan *atchan)
struct at_xdmac_desc *desc;
struct dma_async_tx_descriptor *txd;
- if (!list_empty(&atchan->xfers_list)) {
- desc = list_first_entry(&atchan->xfers_list,
- struct at_xdmac_desc, xfer_node);
- txd = &desc->tx_dma_desc;
-
- if (txd->flags & DMA_PREP_INTERRUPT)
- dmaengine_desc_get_callback_invoke(txd, NULL);
+ spin_lock_irq(&atchan->lock);
+ if (list_empty(&atchan->xfers_list)) {
+ spin_unlock_irq(&atchan->lock);
+ return;
}
+ desc = list_first_entry(&atchan->xfers_list, struct at_xdmac_desc,
+ xfer_node);
+ spin_unlock_irq(&atchan->lock);
+ txd = &desc->tx_dma_desc;
+ if (txd->flags & DMA_PREP_INTERRUPT)
+ dmaengine_desc_get_callback_invoke(txd, NULL);
}
static void at_xdmac_handle_error(struct at_xdmac_chan *atchan)
@@ -1784,11 +1785,9 @@ static void at_xdmac_issue_pending(struct dma_chan *chan)
dev_dbg(chan2dev(&atchan->chan), "%s\n", __func__);
- if (!at_xdmac_chan_is_cyclic(atchan)) {
- spin_lock_irqsave(&atchan->lock, flags);
- at_xdmac_advance_work(atchan);
- spin_unlock_irqrestore(&atchan->lock, flags);
- }
+ spin_lock_irqsave(&atchan->lock, flags);
+ at_xdmac_advance_work(atchan);
+ spin_unlock_irqrestore(&atchan->lock, flags);
return;
}
diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c
index fab412349f7f..cd855097bfdb 100644
--- a/drivers/dma/idxd/device.c
+++ b/drivers/dma/idxd/device.c
@@ -382,8 +382,6 @@ static void idxd_wq_disable_cleanup(struct idxd_wq *wq)
lockdep_assert_held(&wq->wq_lock);
memset(wq->wqcfg, 0, idxd->wqcfg_size);
wq->type = IDXD_WQT_NONE;
- wq->size = 0;
- wq->group = NULL;
wq->threshold = 0;
wq->priority = 0;
wq->ats_dis = 0;
@@ -392,6 +390,15 @@ static void idxd_wq_disable_cleanup(struct idxd_wq *wq)
memset(wq->name, 0, WQ_NAME_SIZE);
}
+static void idxd_wq_device_reset_cleanup(struct idxd_wq *wq)
+{
+ lockdep_assert_held(&wq->wq_lock);
+
+ idxd_wq_disable_cleanup(wq);
+ wq->size = 0;
+ wq->group = NULL;
+}
+
static void idxd_wq_ref_release(struct percpu_ref *ref)
{
struct idxd_wq *wq = container_of(ref, struct idxd_wq, wq_active);
@@ -699,6 +706,7 @@ static void idxd_device_wqs_clear_state(struct idxd_device *idxd)
if (wq->state == IDXD_WQ_ENABLED) {
idxd_wq_disable_cleanup(wq);
+ idxd_wq_device_reset_cleanup(wq);
wq->state = IDXD_WQ_DISABLED;
}
}
diff --git a/drivers/dma/mmp_pdma.c b/drivers/dma/mmp_pdma.c
index a23563cd118b..5a53d7fcef01 100644
--- a/drivers/dma/mmp_pdma.c
+++ b/drivers/dma/mmp_pdma.c
@@ -727,12 +727,6 @@ static int mmp_pdma_config_write(struct dma_chan *dchan,
chan->dir = direction;
chan->dev_addr = addr;
- /* FIXME: drivers should be ported over to use the filter
- * function. Once that's done, the following two lines can
- * be removed.
- */
- if (cfg->slave_id)
- chan->drcmr = cfg->slave_id;
return 0;
}
diff --git a/drivers/dma/pxa_dma.c b/drivers/dma/pxa_dma.c
index 52d04641e361..6078cc81892e 100644
--- a/drivers/dma/pxa_dma.c
+++ b/drivers/dma/pxa_dma.c
@@ -909,13 +909,6 @@ static void pxad_get_config(struct pxad_chan *chan,
*dcmd |= PXA_DCMD_BURST16;
else if (maxburst == 32)
*dcmd |= PXA_DCMD_BURST32;
-
- /* FIXME: drivers should be ported over to use the filter
- * function. Once that's done, the following two lines can
- * be removed.
- */
- if (chan->cfg.slave_id)
- chan->drcmr = chan->cfg.slave_id;
}
static struct dma_async_tx_descriptor *
diff --git a/drivers/dma/stm32-mdma.c b/drivers/dma/stm32-mdma.c
index d30a4a28d3bf..b61a241c9fcd 100644
--- a/drivers/dma/stm32-mdma.c
+++ b/drivers/dma/stm32-mdma.c
@@ -184,7 +184,7 @@
#define STM32_MDMA_CTBR(x) (0x68 + 0x40 * (x))
#define STM32_MDMA_CTBR_DBUS BIT(17)
#define STM32_MDMA_CTBR_SBUS BIT(16)
-#define STM32_MDMA_CTBR_TSEL_MASK GENMASK(7, 0)
+#define STM32_MDMA_CTBR_TSEL_MASK GENMASK(5, 0)
#define STM32_MDMA_CTBR_TSEL(n) STM32_MDMA_SET(n, \
STM32_MDMA_CTBR_TSEL_MASK)
diff --git a/drivers/dma/uniphier-xdmac.c b/drivers/dma/uniphier-xdmac.c
index d6b8a202474f..290836b7e1be 100644
--- a/drivers/dma/uniphier-xdmac.c
+++ b/drivers/dma/uniphier-xdmac.c
@@ -131,8 +131,9 @@ uniphier_xdmac_next_desc(struct uniphier_xdmac_chan *xc)
static void uniphier_xdmac_chan_start(struct uniphier_xdmac_chan *xc,
struct uniphier_xdmac_desc *xd)
{
- u32 src_mode, src_addr, src_width;
- u32 dst_mode, dst_addr, dst_width;
+ u32 src_mode, src_width;
+ u32 dst_mode, dst_width;
+ dma_addr_t src_addr, dst_addr;
u32 val, its, tnum;
enum dma_slave_buswidth buswidth;
diff --git a/drivers/edac/synopsys_edac.c b/drivers/edac/synopsys_edac.c
index 7d08627e738b..a5486d86fdd2 100644
--- a/drivers/edac/synopsys_edac.c
+++ b/drivers/edac/synopsys_edac.c
@@ -1352,8 +1352,7 @@ static int mc_probe(struct platform_device *pdev)
}
}
- if (of_device_is_compatible(pdev->dev.of_node,
- "xlnx,zynqmp-ddrc-2.40a"))
+ if (priv->p_data->quirks & DDR_ECC_INTR_SUPPORT)
setup_address_map(priv);
#endif
diff --git a/drivers/firmware/efi/efi-init.c b/drivers/firmware/efi/efi-init.c
index b19ce1a83f91..b2c829e95bd1 100644
--- a/drivers/firmware/efi/efi-init.c
+++ b/drivers/firmware/efi/efi-init.c
@@ -235,6 +235,11 @@ void __init efi_init(void)
}
reserve_regions();
+ /*
+ * For memblock manipulation, the cap should come after the memblock_add().
+ * And now, memblock is fully populated, it is time to do capping.
+ */
+ early_init_dt_check_for_usable_mem_range();
efi_esrt_init();
efi_mokvar_table_init();
diff --git a/drivers/firmware/google/Kconfig b/drivers/firmware/google/Kconfig
index 97968aece54f..931544c9f63d 100644
--- a/drivers/firmware/google/Kconfig
+++ b/drivers/firmware/google/Kconfig
@@ -3,9 +3,9 @@ menuconfig GOOGLE_FIRMWARE
bool "Google Firmware Drivers"
default n
help
- These firmware drivers are used by Google's servers. They are
- only useful if you are working directly on one of their
- proprietary servers. If in doubt, say "N".
+ These firmware drivers are used by Google servers,
+ Chromebooks and other devices using coreboot firmware.
+ If in doubt, say "N".
if GOOGLE_FIRMWARE
diff --git a/drivers/firmware/sysfb_simplefb.c b/drivers/firmware/sysfb_simplefb.c
index b86761904949..303a491e520d 100644
--- a/drivers/firmware/sysfb_simplefb.c
+++ b/drivers/firmware/sysfb_simplefb.c
@@ -113,12 +113,16 @@ __init int sysfb_create_simplefb(const struct screen_info *si,
sysfb_apply_efi_quirks(pd);
ret = platform_device_add_resources(pd, &res, 1);
- if (ret)
+ if (ret) {
+ platform_device_put(pd);
return ret;
+ }
ret = platform_device_add_data(pd, mode, sizeof(*mode));
- if (ret)
+ if (ret) {
+ platform_device_put(pd);
return ret;
+ }
return platform_device_add(pd);
}
diff --git a/drivers/gpio/gpio-aspeed-sgpio.c b/drivers/gpio/gpio-aspeed-sgpio.c
index b3a9b8488f11..454cefbeecf0 100644
--- a/drivers/gpio/gpio-aspeed-sgpio.c
+++ b/drivers/gpio/gpio-aspeed-sgpio.c
@@ -31,7 +31,7 @@ struct aspeed_sgpio {
struct gpio_chip chip;
struct irq_chip intc;
struct clk *pclk;
- spinlock_t lock;
+ raw_spinlock_t lock;
void __iomem *base;
int irq;
};
@@ -173,12 +173,12 @@ static int aspeed_sgpio_get(struct gpio_chip *gc, unsigned int offset)
enum aspeed_sgpio_reg reg;
int rc = 0;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
reg = aspeed_sgpio_is_input(offset) ? reg_val : reg_rdata;
rc = !!(ioread32(bank_reg(gpio, bank, reg)) & GPIO_BIT(offset));
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
@@ -215,11 +215,11 @@ static void aspeed_sgpio_set(struct gpio_chip *gc, unsigned int offset, int val)
struct aspeed_sgpio *gpio = gpiochip_get_data(gc);
unsigned long flags;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
sgpio_set_value(gc, offset, val);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static int aspeed_sgpio_dir_in(struct gpio_chip *gc, unsigned int offset)
@@ -236,9 +236,9 @@ static int aspeed_sgpio_dir_out(struct gpio_chip *gc, unsigned int offset, int v
/* No special action is required for setting the direction; we'll
* error-out in sgpio_set_value if this isn't an output GPIO */
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
rc = sgpio_set_value(gc, offset, val);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
@@ -277,11 +277,11 @@ static void aspeed_sgpio_irq_ack(struct irq_data *d)
status_addr = bank_reg(gpio, bank, reg_irq_status);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
iowrite32(bit, status_addr);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static void aspeed_sgpio_irq_set_mask(struct irq_data *d, bool set)
@@ -296,7 +296,7 @@ static void aspeed_sgpio_irq_set_mask(struct irq_data *d, bool set)
irqd_to_aspeed_sgpio_data(d, &gpio, &bank, &bit, &offset);
addr = bank_reg(gpio, bank, reg_irq_enable);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
reg = ioread32(addr);
if (set)
@@ -306,7 +306,7 @@ static void aspeed_sgpio_irq_set_mask(struct irq_data *d, bool set)
iowrite32(reg, addr);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static void aspeed_sgpio_irq_mask(struct irq_data *d)
@@ -355,7 +355,7 @@ static int aspeed_sgpio_set_type(struct irq_data *d, unsigned int type)
return -EINVAL;
}
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
addr = bank_reg(gpio, bank, reg_irq_type0);
reg = ioread32(addr);
@@ -372,7 +372,7 @@ static int aspeed_sgpio_set_type(struct irq_data *d, unsigned int type)
reg = (reg & ~bit) | type2;
iowrite32(reg, addr);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
irq_set_handler_locked(d, handler);
@@ -467,7 +467,7 @@ static int aspeed_sgpio_reset_tolerance(struct gpio_chip *chip,
reg = bank_reg(gpio, to_bank(offset), reg_tolerance);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
val = readl(reg);
@@ -478,7 +478,7 @@ static int aspeed_sgpio_reset_tolerance(struct gpio_chip *chip,
writel(val, reg);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return 0;
}
@@ -575,7 +575,7 @@ static int __init aspeed_sgpio_probe(struct platform_device *pdev)
iowrite32(FIELD_PREP(ASPEED_SGPIO_CLK_DIV_MASK, sgpio_clk_div) | gpio_cnt_regval |
ASPEED_SGPIO_ENABLE, gpio->base + ASPEED_SGPIO_CTRL);
- spin_lock_init(&gpio->lock);
+ raw_spin_lock_init(&gpio->lock);
gpio->chip.parent = &pdev->dev;
gpio->chip.ngpio = nr_gpios * 2;
diff --git a/drivers/gpio/gpio-aspeed.c b/drivers/gpio/gpio-aspeed.c
index 3c8f20c57695..318a7d95a1a8 100644
--- a/drivers/gpio/gpio-aspeed.c
+++ b/drivers/gpio/gpio-aspeed.c
@@ -53,7 +53,7 @@ struct aspeed_gpio_config {
struct aspeed_gpio {
struct gpio_chip chip;
struct irq_chip irqc;
- spinlock_t lock;
+ raw_spinlock_t lock;
void __iomem *base;
int irq;
const struct aspeed_gpio_config *config;
@@ -413,14 +413,14 @@ static void aspeed_gpio_set(struct gpio_chip *gc, unsigned int offset,
unsigned long flags;
bool copro;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
__aspeed_gpio_set(gc, offset, val);
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset)
@@ -435,7 +435,7 @@ static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset)
if (!have_input(gpio, offset))
return -ENOTSUPP;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
reg = ioread32(addr);
reg &= ~GPIO_BIT(offset);
@@ -445,7 +445,7 @@ static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset)
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return 0;
}
@@ -463,7 +463,7 @@ static int aspeed_gpio_dir_out(struct gpio_chip *gc,
if (!have_output(gpio, offset))
return -ENOTSUPP;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
reg = ioread32(addr);
reg |= GPIO_BIT(offset);
@@ -474,7 +474,7 @@ static int aspeed_gpio_dir_out(struct gpio_chip *gc,
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return 0;
}
@@ -492,11 +492,11 @@ static int aspeed_gpio_get_direction(struct gpio_chip *gc, unsigned int offset)
if (!have_output(gpio, offset))
return GPIO_LINE_DIRECTION_IN;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
val = ioread32(bank_reg(gpio, bank, reg_dir)) & GPIO_BIT(offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return val ? GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN;
}
@@ -539,14 +539,14 @@ static void aspeed_gpio_irq_ack(struct irq_data *d)
status_addr = bank_reg(gpio, bank, reg_irq_status);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
iowrite32(bit, status_addr);
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static void aspeed_gpio_irq_set_mask(struct irq_data *d, bool set)
@@ -565,7 +565,7 @@ static void aspeed_gpio_irq_set_mask(struct irq_data *d, bool set)
addr = bank_reg(gpio, bank, reg_irq_enable);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
reg = ioread32(addr);
@@ -577,7 +577,7 @@ static void aspeed_gpio_irq_set_mask(struct irq_data *d, bool set)
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static void aspeed_gpio_irq_mask(struct irq_data *d)
@@ -629,7 +629,7 @@ static int aspeed_gpio_set_type(struct irq_data *d, unsigned int type)
return -EINVAL;
}
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
addr = bank_reg(gpio, bank, reg_irq_type0);
@@ -649,7 +649,7 @@ static int aspeed_gpio_set_type(struct irq_data *d, unsigned int type)
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
irq_set_handler_locked(d, handler);
@@ -716,7 +716,7 @@ static int aspeed_gpio_reset_tolerance(struct gpio_chip *chip,
treg = bank_reg(gpio, to_bank(offset), reg_tolerance);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
val = readl(treg);
@@ -730,7 +730,7 @@ static int aspeed_gpio_reset_tolerance(struct gpio_chip *chip,
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return 0;
}
@@ -856,7 +856,7 @@ static int enable_debounce(struct gpio_chip *chip, unsigned int offset,
return rc;
}
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
if (timer_allocation_registered(gpio, offset)) {
rc = unregister_allocated_timer(gpio, offset);
@@ -916,7 +916,7 @@ static int enable_debounce(struct gpio_chip *chip, unsigned int offset,
configure_timer(gpio, offset, i);
out:
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
@@ -927,13 +927,13 @@ static int disable_debounce(struct gpio_chip *chip, unsigned int offset)
unsigned long flags;
int rc;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
rc = unregister_allocated_timer(gpio, offset);
if (!rc)
configure_timer(gpio, offset, 0);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
@@ -1015,7 +1015,7 @@ int aspeed_gpio_copro_grab_gpio(struct gpio_desc *desc,
return -EINVAL;
bindex = offset >> 3;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
/* Sanity check, this shouldn't happen */
if (gpio->cf_copro_bankmap[bindex] == 0xff) {
@@ -1036,7 +1036,7 @@ int aspeed_gpio_copro_grab_gpio(struct gpio_desc *desc,
if (bit)
*bit = GPIO_OFFSET(offset);
bail:
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
EXPORT_SYMBOL_GPL(aspeed_gpio_copro_grab_gpio);
@@ -1060,7 +1060,7 @@ int aspeed_gpio_copro_release_gpio(struct gpio_desc *desc)
return -EINVAL;
bindex = offset >> 3;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
/* Sanity check, this shouldn't happen */
if (gpio->cf_copro_bankmap[bindex] == 0) {
@@ -1074,7 +1074,7 @@ int aspeed_gpio_copro_release_gpio(struct gpio_desc *desc)
aspeed_gpio_change_cmd_source(gpio, bank, bindex,
GPIO_CMDSRC_ARM);
bail:
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
EXPORT_SYMBOL_GPL(aspeed_gpio_copro_release_gpio);
@@ -1148,7 +1148,7 @@ static int __init aspeed_gpio_probe(struct platform_device *pdev)
if (IS_ERR(gpio->base))
return PTR_ERR(gpio->base);
- spin_lock_init(&gpio->lock);
+ raw_spin_lock_init(&gpio->lock);
gpio_id = of_match_node(aspeed_gpio_of_table, pdev->dev.of_node);
if (!gpio_id)
diff --git a/drivers/gpio/gpio-idt3243x.c b/drivers/gpio/gpio-idt3243x.c
index 50003ad2e589..08493b05be2d 100644
--- a/drivers/gpio/gpio-idt3243x.c
+++ b/drivers/gpio/gpio-idt3243x.c
@@ -164,8 +164,8 @@ static int idt_gpio_probe(struct platform_device *pdev)
return PTR_ERR(ctrl->pic);
parent_irq = platform_get_irq(pdev, 0);
- if (!parent_irq)
- return -EINVAL;
+ if (parent_irq < 0)
+ return parent_irq;
girq = &ctrl->gc.irq;
girq->chip = &idt_gpio_irqchip;
diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c
index 70d6ae20b1da..01634c8d27b3 100644
--- a/drivers/gpio/gpio-mpc8xxx.c
+++ b/drivers/gpio/gpio-mpc8xxx.c
@@ -388,8 +388,8 @@ static int mpc8xxx_probe(struct platform_device *pdev)
}
mpc8xxx_gc->irqn = platform_get_irq(pdev, 0);
- if (!mpc8xxx_gc->irqn)
- return 0;
+ if (mpc8xxx_gc->irqn < 0)
+ return mpc8xxx_gc->irqn;
mpc8xxx_gc->irq = irq_domain_create_linear(fwnode,
MPC8XXX_GPIO_PINS,
diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
index 985e8589c58b..feb8157d2d67 100644
--- a/drivers/gpio/gpiolib-acpi.c
+++ b/drivers/gpio/gpiolib-acpi.c
@@ -1056,10 +1056,17 @@ int acpi_dev_gpio_irq_get_by(struct acpi_device *adev, const char *name, int ind
irq_flags = acpi_dev_get_irq_type(info.triggering,
info.polarity);
- /* Set type if specified and different than the current one */
- if (irq_flags != IRQ_TYPE_NONE &&
- irq_flags != irq_get_trigger_type(irq))
- irq_set_irq_type(irq, irq_flags);
+ /*
+ * If the IRQ is not already in use then set type
+ * if specified and different than the current one.
+ */
+ if (can_request_irq(irq, irq_flags)) {
+ if (irq_flags != IRQ_TYPE_NONE &&
+ irq_flags != irq_get_trigger_type(irq))
+ irq_set_irq_type(irq, irq_flags);
+ } else {
+ dev_dbg(&adev->dev, "IRQ %d already in use\n", irq);
+ }
return irq;
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
index 0de66f59adb8..df1f9b88a53f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
@@ -387,6 +387,9 @@ amdgpu_connector_lcd_native_mode(struct drm_encoder *encoder)
native_mode->vdisplay != 0 &&
native_mode->clock != 0) {
mode = drm_mode_duplicate(dev, native_mode);
+ if (!mode)
+ return NULL;
+
mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
drm_mode_set_name(mode);
@@ -401,6 +404,9 @@ amdgpu_connector_lcd_native_mode(struct drm_encoder *encoder)
* simpler.
*/
mode = drm_cvt_mode(dev, native_mode->hdisplay, native_mode->vdisplay, 60, true, false, false);
+ if (!mode)
+ return NULL;
+
mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
DRM_DEBUG_KMS("Adding cvt approximation of native panel mode %s\n", mode->name);
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 99370bdd8c5b..fab8faf34560 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -1928,7 +1928,7 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
return -ENODEV;
}
- if (flags == 0) {
+ if (flags == CHIP_IP_DISCOVERY) {
DRM_INFO("Unsupported asic. Remove me when IP discovery init is in place.\n");
return -ENODEV;
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
index cc2e0c9cfe0a..4f3c62adccbd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
@@ -333,7 +333,6 @@ int amdgpu_irq_init(struct amdgpu_device *adev)
if (!amdgpu_device_has_dc_support(adev)) {
if (!adev->enable_virtual_display)
/* Disable vblank IRQs aggressively for power-saving */
- /* XXX: can this be enabled for DC? */
adev_to_drm(adev)->vblank_disable_immediate = true;
r = drm_vblank_init(adev_to_drm(adev), adev->mode_info.num_crtc);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index c641f84649d6..d011ae7e50a5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -2017,12 +2017,16 @@ static int psp_hw_start(struct psp_context *psp)
return ret;
}
+ if (amdgpu_sriov_vf(adev) && amdgpu_in_reset(adev))
+ goto skip_pin_bo;
+
ret = psp_tmr_init(psp);
if (ret) {
DRM_ERROR("PSP tmr init failed!\n");
return ret;
}
+skip_pin_bo:
/*
* For ASICs with DF Cstate management centralized
* to PMFW, TMR setup should be performed after PMFW
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
index 08133de21fdd..26b7a4a0b44b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -867,9 +867,9 @@ static int amdgpu_ras_enable_all_features(struct amdgpu_device *adev,
/* feature ctl end */
-void amdgpu_ras_mca_query_error_status(struct amdgpu_device *adev,
- struct ras_common_if *ras_block,
- struct ras_err_data *err_data)
+static void amdgpu_ras_mca_query_error_status(struct amdgpu_device *adev,
+ struct ras_common_if *ras_block,
+ struct ras_err_data *err_data)
{
switch (ras_block->sub_block_index) {
case AMDGPU_RAS_MCA_BLOCK__MP0:
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
index ac9a8cd21c4b..7d58bf410be0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
@@ -142,15 +142,16 @@ static void amdgpu_vkms_crtc_atomic_disable(struct drm_crtc *crtc,
static void amdgpu_vkms_crtc_atomic_flush(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{
+ unsigned long flags;
if (crtc->state->event) {
- spin_lock(&crtc->dev->event_lock);
+ spin_lock_irqsave(&crtc->dev->event_lock, flags);
if (drm_crtc_vblank_get(crtc) != 0)
drm_crtc_send_vblank_event(crtc, crtc->state->event);
else
drm_crtc_arm_vblank_event(crtc, crtc->state->event);
- spin_unlock(&crtc->dev->event_lock);
+ spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
crtc->state->event = NULL;
}
diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c
index 54f28c075f21..f10ce740a29c 100644
--- a/drivers/gpu/drm/amd/amdgpu/cik.c
+++ b/drivers/gpu/drm/amd/amdgpu/cik.c
@@ -1428,6 +1428,10 @@ static int cik_asic_reset(struct amdgpu_device *adev)
{
int r;
+ /* APUs don't have full asic reset */
+ if (adev->flags & AMD_IS_APU)
+ return 0;
+
if (cik_asic_reset_method(adev) == AMD_RESET_METHOD_BACO) {
dev_info(adev->dev, "BACO reset\n");
r = amdgpu_dpm_baco_reset(adev);
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
index 3ec5ff5a6dbe..61ec6145bbb1 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
@@ -992,10 +992,14 @@ static int gmc_v10_0_gart_enable(struct amdgpu_device *adev)
return -EINVAL;
}
+ if (amdgpu_sriov_vf(adev) && amdgpu_in_reset(adev))
+ goto skip_pin_bo;
+
r = amdgpu_gart_table_vram_pin(adev);
if (r)
return r;
+skip_pin_bo:
r = adev->gfxhub.funcs->gart_enable(adev);
if (r)
return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
index 492ebed2915b..63b890f1e8af 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
@@ -515,10 +515,10 @@ static void gmc_v8_0_mc_program(struct amdgpu_device *adev)
static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
{
int r;
+ u32 tmp;
adev->gmc.vram_width = amdgpu_atombios_get_vram_width(adev);
if (!adev->gmc.vram_width) {
- u32 tmp;
int chansize, numchan;
/* Get VRAM informations */
@@ -562,8 +562,15 @@ static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
adev->gmc.vram_width = numchan * chansize;
}
/* size in MB on si */
- adev->gmc.mc_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
- adev->gmc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
+ tmp = RREG32(mmCONFIG_MEMSIZE);
+ /* some boards may have garbage in the upper 16 bits */
+ if (tmp & 0xffff0000) {
+ DRM_INFO("Probable bad vram size: 0x%08x\n", tmp);
+ if (tmp & 0xffff)
+ tmp &= 0xffff;
+ }
+ adev->gmc.mc_vram_size = tmp * 1024ULL * 1024ULL;
+ adev->gmc.real_vram_size = adev->gmc.mc_vram_size;
if (!(adev->flags & AMD_IS_APU)) {
r = amdgpu_device_resize_fb_bar(adev);
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
index d84523cf5f75..6866b40b6f04 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
@@ -72,6 +72,9 @@
#define mmDCHUBBUB_SDPIF_MMIO_CNTRL_0 0x049d
#define mmDCHUBBUB_SDPIF_MMIO_CNTRL_0_BASE_IDX 2
+#define mmHUBP0_DCSURF_PRI_VIEWPORT_DIMENSION_DCN2 0x05ea
+#define mmHUBP0_DCSURF_PRI_VIEWPORT_DIMENSION_DCN2_BASE_IDX 2
+
static const char *gfxhub_client_ids[] = {
"CB",
@@ -1105,6 +1108,8 @@ static unsigned gmc_v9_0_get_vbios_fb_size(struct amdgpu_device *adev)
u32 d1vga_control = RREG32_SOC15(DCE, 0, mmD1VGA_CONTROL);
unsigned size;
+ /* TODO move to DC so GMC doesn't need to hard-code DCN registers */
+
if (REG_GET_FIELD(d1vga_control, D1VGA_CONTROL, D1VGA_MODE_ENABLE)) {
size = AMDGPU_VBIOS_VGA_ALLOCATION;
} else {
@@ -1113,7 +1118,6 @@ static unsigned gmc_v9_0_get_vbios_fb_size(struct amdgpu_device *adev)
switch (adev->ip_versions[DCE_HWIP][0]) {
case IP_VERSION(1, 0, 0):
case IP_VERSION(1, 0, 1):
- case IP_VERSION(2, 1, 0):
viewport = RREG32_SOC15(DCE, 0, mmHUBP0_DCSURF_PRI_VIEWPORT_DIMENSION);
size = (REG_GET_FIELD(viewport,
HUBP0_DCSURF_PRI_VIEWPORT_DIMENSION, PRI_VIEWPORT_HEIGHT) *
@@ -1121,6 +1125,14 @@ static unsigned gmc_v9_0_get_vbios_fb_size(struct amdgpu_device *adev)
HUBP0_DCSURF_PRI_VIEWPORT_DIMENSION, PRI_VIEWPORT_WIDTH) *
4);
break;
+ case IP_VERSION(2, 1, 0):
+ viewport = RREG32_SOC15(DCE, 0, mmHUBP0_DCSURF_PRI_VIEWPORT_DIMENSION_DCN2);
+ size = (REG_GET_FIELD(viewport,
+ HUBP0_DCSURF_PRI_VIEWPORT_DIMENSION, PRI_VIEWPORT_HEIGHT) *
+ REG_GET_FIELD(viewport,
+ HUBP0_DCSURF_PRI_VIEWPORT_DIMENSION, PRI_VIEWPORT_WIDTH) *
+ 4);
+ break;
default:
viewport = RREG32_SOC15(DCE, 0, mmSCL0_VIEWPORT_SIZE);
size = (REG_GET_FIELD(viewport, SCL0_VIEWPORT_SIZE, VIEWPORT_HEIGHT) *
@@ -1714,10 +1726,14 @@ static int gmc_v9_0_gart_enable(struct amdgpu_device *adev)
return -EINVAL;
}
+ if (amdgpu_sriov_vf(adev) && amdgpu_in_reset(adev))
+ goto skip_pin_bo;
+
r = amdgpu_gart_table_vram_pin(adev);
if (r)
return r;
+skip_pin_bo:
r = adev->gfxhub.funcs->gart_enable(adev);
if (r)
return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c
index fe9a7cc8d9eb..6645ebbd2696 100644
--- a/drivers/gpu/drm/amd/amdgpu/vi.c
+++ b/drivers/gpu/drm/amd/amdgpu/vi.c
@@ -956,6 +956,10 @@ static int vi_asic_reset(struct amdgpu_device *adev)
{
int r;
+ /* APUs don't have full asic reset */
+ if (adev->flags & AMD_IS_APU)
+ return 0;
+
if (vi_asic_reset_method(adev) == AMD_RESET_METHOD_BACO) {
dev_info(adev->dev, "BACO reset\n");
r = amdgpu_dpm_baco_reset(adev);
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
index cfedfb1e8596..c33d689f29e8 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
@@ -1060,6 +1060,9 @@ static int kfd_parse_subtype_iolink(struct crat_subtype_iolink *iolink,
return -ENODEV;
/* same everything but the other direction */
props2 = kmemdup(props, sizeof(*props2), GFP_KERNEL);
+ if (!props2)
+ return -ENOMEM;
+
props2->node_from = id_to;
props2->node_to = id_from;
props2->kobj = NULL;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
index 3cb4681c5f53..c0b8f4ff80b8 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
@@ -943,7 +943,7 @@ svm_range_split(struct svm_range *prange, uint64_t start, uint64_t last,
}
static int
-svm_range_split_tail(struct svm_range *prange, struct svm_range *new,
+svm_range_split_tail(struct svm_range *prange,
uint64_t new_last, struct list_head *insert_list)
{
struct svm_range *tail;
@@ -955,7 +955,7 @@ svm_range_split_tail(struct svm_range *prange, struct svm_range *new,
}
static int
-svm_range_split_head(struct svm_range *prange, struct svm_range *new,
+svm_range_split_head(struct svm_range *prange,
uint64_t new_start, struct list_head *insert_list)
{
struct svm_range *head;
@@ -1764,49 +1764,54 @@ static struct svm_range *svm_range_clone(struct svm_range *old)
}
/**
- * svm_range_handle_overlap - split overlap ranges
- * @svms: svm range list header
- * @new: range added with this attributes
- * @start: range added start address, in pages
- * @last: range last address, in pages
- * @update_list: output, the ranges attributes are updated. For set_attr, this
- * will do validation and map to GPUs. For unmap, this will be
- * removed and unmap from GPUs
- * @insert_list: output, the ranges will be inserted into svms, attributes are
- * not changes. For set_attr, this will add into svms.
- * @remove_list:output, the ranges will be removed from svms
- * @left: the remaining range after overlap, For set_attr, this will be added
- * as new range.
+ * svm_range_add - add svm range and handle overlap
+ * @p: the range add to this process svms
+ * @start: page size aligned
+ * @size: page size aligned
+ * @nattr: number of attributes
+ * @attrs: array of attributes
+ * @update_list: output, the ranges need validate and update GPU mapping
+ * @insert_list: output, the ranges need insert to svms
+ * @remove_list: output, the ranges are replaced and need remove from svms
*
- * Total have 5 overlap cases.
+ * Check if the virtual address range has overlap with any existing ranges,
+ * split partly overlapping ranges and add new ranges in the gaps. All changes
+ * should be applied to the range_list and interval tree transactionally. If
+ * any range split or allocation fails, the entire update fails. Therefore any
+ * existing overlapping svm_ranges are cloned and the original svm_ranges left
+ * unchanged.
*
- * This function handles overlap of an address interval with existing
- * struct svm_ranges for applying new attributes. This may require
- * splitting existing struct svm_ranges. All changes should be applied to
- * the range_list and interval tree transactionally. If any split operation
- * fails, the entire update fails. Therefore the existing overlapping
- * svm_ranges are cloned and the original svm_ranges left unchanged. If the
- * transaction succeeds, the modified clones are added and the originals
- * freed. Otherwise the clones are removed and the old svm_ranges remain.
+ * If the transaction succeeds, the caller can update and insert clones and
+ * new ranges, then free the originals.
*
- * Context: The caller must hold svms->lock
+ * Otherwise the caller can free the clones and new ranges, while the old
+ * svm_ranges remain unchanged.
+ *
+ * Context: Process context, caller must hold svms->lock
+ *
+ * Return:
+ * 0 - OK, otherwise error code
*/
static int
-svm_range_handle_overlap(struct svm_range_list *svms, struct svm_range *new,
- unsigned long start, unsigned long last,
- struct list_head *update_list,
- struct list_head *insert_list,
- struct list_head *remove_list,
- unsigned long *left)
+svm_range_add(struct kfd_process *p, uint64_t start, uint64_t size,
+ uint32_t nattr, struct kfd_ioctl_svm_attribute *attrs,
+ struct list_head *update_list, struct list_head *insert_list,
+ struct list_head *remove_list)
{
+ unsigned long last = start + size - 1UL;
+ struct svm_range_list *svms = &p->svms;
struct interval_tree_node *node;
+ struct svm_range new = {0};
struct svm_range *prange;
struct svm_range *tmp;
int r = 0;
+ pr_debug("svms 0x%p [0x%llx 0x%lx]\n", &p->svms, start, last);
+
INIT_LIST_HEAD(update_list);
INIT_LIST_HEAD(insert_list);
INIT_LIST_HEAD(remove_list);
+ svm_range_apply_attrs(p, &new, nattr, attrs);
node = interval_tree_iter_first(&svms->objects, start, last);
while (node) {
@@ -1834,14 +1839,14 @@ svm_range_handle_overlap(struct svm_range_list *svms, struct svm_range *new,
if (node->start < start) {
pr_debug("change old range start\n");
- r = svm_range_split_head(prange, new, start,
+ r = svm_range_split_head(prange, start,
insert_list);
if (r)
goto out;
}
if (node->last > last) {
pr_debug("change old range last\n");
- r = svm_range_split_tail(prange, new, last,
+ r = svm_range_split_tail(prange, last,
insert_list);
if (r)
goto out;
@@ -1853,7 +1858,7 @@ svm_range_handle_overlap(struct svm_range_list *svms, struct svm_range *new,
prange = old;
}
- if (!svm_range_is_same_attrs(prange, new))
+ if (!svm_range_is_same_attrs(prange, &new))
list_add(&prange->update_list, update_list);
/* insert a new node if needed */
@@ -1873,8 +1878,16 @@ svm_range_handle_overlap(struct svm_range_list *svms, struct svm_range *new,
start = next_start;
}
- if (left && start <= last)
- *left = last - start + 1;
+ /* add a final range at the end if needed */
+ if (start <= last) {
+ prange = svm_range_new(svms, start, last);
+ if (!prange) {
+ r = -ENOMEM;
+ goto out;
+ }
+ list_add(&prange->insert_list, insert_list);
+ list_add(&prange->update_list, update_list);
+ }
out:
if (r)
@@ -2894,59 +2907,6 @@ svm_range_is_valid(struct kfd_process *p, uint64_t start, uint64_t size)
NULL);
}
-/**
- * svm_range_add - add svm range and handle overlap
- * @p: the range add to this process svms
- * @start: page size aligned
- * @size: page size aligned
- * @nattr: number of attributes
- * @attrs: array of attributes
- * @update_list: output, the ranges need validate and update GPU mapping
- * @insert_list: output, the ranges need insert to svms
- * @remove_list: output, the ranges are replaced and need remove from svms
- *
- * Check if the virtual address range has overlap with the registered ranges,
- * split the overlapped range, copy and adjust pages address and vram nodes in
- * old and new ranges.
- *
- * Context: Process context, caller must hold svms->lock
- *
- * Return:
- * 0 - OK, otherwise error code
- */
-static int
-svm_range_add(struct kfd_process *p, uint64_t start, uint64_t size,
- uint32_t nattr, struct kfd_ioctl_svm_attribute *attrs,
- struct list_head *update_list, struct list_head *insert_list,
- struct list_head *remove_list)
-{
- uint64_t last = start + size - 1UL;
- struct svm_range_list *svms;
- struct svm_range new = {0};
- struct svm_range *prange;
- unsigned long left = 0;
- int r = 0;
-
- pr_debug("svms 0x%p [0x%llx 0x%llx]\n", &p->svms, start, last);
-
- svm_range_apply_attrs(p, &new, nattr, attrs);
-
- svms = &p->svms;
-
- r = svm_range_handle_overlap(svms, &new, start, last, update_list,
- insert_list, remove_list, &left);
- if (r)
- return r;
-
- if (left) {
- prange = svm_range_new(svms, last - left + 1, last);
- list_add(&prange->insert_list, insert_list);
- list_add(&prange->update_list, update_list);
- }
-
- return 0;
-}
-
/**
* svm_range_best_prefetch_location - decide the best prefetch location
* @prange: svm range structure
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 05f7ffd6a28d..efcb25ef1809 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -656,7 +656,7 @@ void dmub_hpd_callback(struct amdgpu_device *adev, struct dmub_notification *not
struct drm_connector_list_iter iter;
struct dc_link *link;
uint8_t link_index = 0;
- struct drm_device *dev = adev->dm.ddev;
+ struct drm_device *dev;
if (adev == NULL)
return;
@@ -673,6 +673,7 @@ void dmub_hpd_callback(struct amdgpu_device *adev, struct dmub_notification *not
link_index = notify->link_index;
link = adev->dm.dc->links[link_index];
+ dev = adev->dm.ddev;
drm_connector_list_iter_begin(dev, &iter);
drm_for_each_connector_iter(connector, &iter) {
@@ -4281,6 +4282,14 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
}
+ /*
+ * Disable vblank IRQs aggressively for power-saving.
+ *
+ * TODO: Fix vblank control helpers to delay PSR entry to allow this when PSR
+ * is also supported.
+ */
+ adev_to_drm(adev)->vblank_disable_immediate = !psr_feature_enabled;
+
/* Software is initialized. Now we can register interrupt handlers. */
switch (adev->asic_type) {
#if defined(CONFIG_DRM_AMD_DC_SI)
@@ -10659,6 +10668,24 @@ static int dm_update_plane_state(struct dc *dc,
return ret;
}
+static void dm_get_oriented_plane_size(struct drm_plane_state *plane_state,
+ int *src_w, int *src_h)
+{
+ switch (plane_state->rotation & DRM_MODE_ROTATE_MASK) {
+ case DRM_MODE_ROTATE_90:
+ case DRM_MODE_ROTATE_270:
+ *src_w = plane_state->src_h >> 16;
+ *src_h = plane_state->src_w >> 16;
+ break;
+ case DRM_MODE_ROTATE_0:
+ case DRM_MODE_ROTATE_180:
+ default:
+ *src_w = plane_state->src_w >> 16;
+ *src_h = plane_state->src_h >> 16;
+ break;
+ }
+}
+
static int dm_check_crtc_cursor(struct drm_atomic_state *state,
struct drm_crtc *crtc,
struct drm_crtc_state *new_crtc_state)
@@ -10667,6 +10694,8 @@ static int dm_check_crtc_cursor(struct drm_atomic_state *state,
struct drm_plane_state *new_cursor_state, *new_underlying_state;
int i;
int cursor_scale_w, cursor_scale_h, underlying_scale_w, underlying_scale_h;
+ int cursor_src_w, cursor_src_h;
+ int underlying_src_w, underlying_src_h;
/* On DCE and DCN there is no dedicated hardware cursor plane. We get a
* cursor per pipe but it's going to inherit the scaling and
@@ -10678,10 +10707,9 @@ static int dm_check_crtc_cursor(struct drm_atomic_state *state,
return 0;
}
- cursor_scale_w = new_cursor_state->crtc_w * 1000 /
- (new_cursor_state->src_w >> 16);
- cursor_scale_h = new_cursor_state->crtc_h * 1000 /
- (new_cursor_state->src_h >> 16);
+ dm_get_oriented_plane_size(new_cursor_state, &cursor_src_w, &cursor_src_h);
+ cursor_scale_w = new_cursor_state->crtc_w * 1000 / cursor_src_w;
+ cursor_scale_h = new_cursor_state->crtc_h * 1000 / cursor_src_h;
for_each_new_plane_in_state_reverse(state, underlying, new_underlying_state, i) {
/* Narrow down to non-cursor planes on the same CRTC as the cursor */
@@ -10692,10 +10720,10 @@ static int dm_check_crtc_cursor(struct drm_atomic_state *state,
if (!new_underlying_state->fb)
continue;
- underlying_scale_w = new_underlying_state->crtc_w * 1000 /
- (new_underlying_state->src_w >> 16);
- underlying_scale_h = new_underlying_state->crtc_h * 1000 /
- (new_underlying_state->src_h >> 16);
+ dm_get_oriented_plane_size(new_underlying_state,
+ &underlying_src_w, &underlying_src_h);
+ underlying_scale_w = new_underlying_state->crtc_w * 1000 / underlying_src_w;
+ underlying_scale_h = new_underlying_state->crtc_h * 1000 / underlying_src_h;
if (cursor_scale_w != underlying_scale_w ||
cursor_scale_h != underlying_scale_h) {
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
index 9d43ecb1f692..f4e829ec8e10 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
@@ -2909,10 +2909,13 @@ static int crc_win_update_set(void *data, u64 val)
struct amdgpu_device *adev = drm_to_adev(new_crtc->dev);
struct crc_rd_work *crc_rd_wrk = adev->dm.crc_rd_wrk;
+ if (!crc_rd_wrk)
+ return 0;
+
if (val) {
spin_lock_irq(&adev_to_drm(adev)->event_lock);
spin_lock_irq(&crc_rd_wrk->crc_rd_work_lock);
- if (crc_rd_wrk && crc_rd_wrk->crtc) {
+ if (crc_rd_wrk->crtc) {
old_crtc = crc_rd_wrk->crtc;
old_acrtc = to_amdgpu_crtc(old_crtc);
}
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c
index 26f96ee32472..9200c8ce02ba 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c
@@ -308,8 +308,7 @@ void dc_destroy_clk_mgr(struct clk_mgr *clk_mgr_base)
case FAMILY_NV:
if (ASICREV_IS_SIENNA_CICHLID_P(clk_mgr_base->ctx->asic_id.hw_internal_rev)) {
dcn3_clk_mgr_destroy(clk_mgr);
- }
- if (ASICREV_IS_DIMGREY_CAVEFISH_P(clk_mgr_base->ctx->asic_id.hw_internal_rev)) {
+ } else if (ASICREV_IS_DIMGREY_CAVEFISH_P(clk_mgr_base->ctx->asic_id.hw_internal_rev)) {
dcn3_clk_mgr_destroy(clk_mgr);
}
if (ASICREV_IS_BEIGE_GOBY_P(clk_mgr_base->ctx->asic_id.hw_internal_rev)) {
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c
index 2108bff49d4e..146e6d670899 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c
@@ -38,7 +38,6 @@
#include "clk/clk_11_0_0_offset.h"
#include "clk/clk_11_0_0_sh_mask.h"
-#include "irq/dcn20/irq_service_dcn20.h"
#undef FN
#define FN(reg_name, field_name) \
@@ -223,8 +222,6 @@ void dcn2_update_clocks(struct clk_mgr *clk_mgr_base,
bool force_reset = false;
bool p_state_change_support;
int total_plane_count;
- int irq_src;
- uint32_t hpd_state;
if (dc->work_arounds.skip_clock_update)
return;
@@ -242,13 +239,7 @@ void dcn2_update_clocks(struct clk_mgr *clk_mgr_base,
if (dc->res_pool->pp_smu)
pp_smu = &dc->res_pool->pp_smu->nv_funcs;
- for (irq_src = DC_IRQ_SOURCE_HPD1; irq_src <= DC_IRQ_SOURCE_HPD6; irq_src++) {
- hpd_state = dc_get_hpd_state_dcn20(dc->res_pool->irqs, irq_src);
- if (hpd_state)
- break;
- }
-
- if (display_count == 0 && !hpd_state)
+ if (display_count == 0)
enter_display_off = true;
if (enter_display_off == safe_to_lower) {
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
index ac2d4c4f04e4..d3c8db65ff45 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
@@ -42,7 +42,6 @@
#include "clk/clk_10_0_2_sh_mask.h"
#include "renoir_ip_offset.h"
-#include "irq/dcn21/irq_service_dcn21.h"
/* Constants */
@@ -130,11 +129,9 @@ void rn_update_clocks(struct clk_mgr *clk_mgr_base,
struct dc_clocks *new_clocks = &context->bw_ctx.bw.dcn.clk;
struct dc *dc = clk_mgr_base->ctx->dc;
int display_count;
- int irq_src;
bool update_dppclk = false;
bool update_dispclk = false;
bool dpp_clock_lowered = false;
- uint32_t hpd_state;
struct dmcu *dmcu = clk_mgr_base->ctx->dc->res_pool->dmcu;
@@ -151,14 +148,8 @@ void rn_update_clocks(struct clk_mgr *clk_mgr_base,
display_count = rn_get_active_display_cnt_wa(dc, context);
- for (irq_src = DC_IRQ_SOURCE_HPD1; irq_src <= DC_IRQ_SOURCE_HPD5; irq_src++) {
- hpd_state = dc_get_hpd_state_dcn21(dc->res_pool->irqs, irq_src);
- if (hpd_state)
- break;
- }
-
/* if we can go lower, go lower */
- if (display_count == 0 && !hpd_state) {
+ if (display_count == 0) {
rn_vbios_smu_set_dcn_low_power_state(clk_mgr, DCN_PWR_STATE_LOW_POWER);
/* update power state */
clk_mgr_base->clks.pwr_state = DCN_PWR_STATE_LOW_POWER;
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
index 0ded4decee05..f0fbd8ad5622 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -2870,7 +2870,8 @@ static void commit_planes_for_stream(struct dc *dc,
#endif
if ((update_type != UPDATE_TYPE_FAST) && stream->update_flags.bits.dsc_changed)
- if (top_pipe_to_program->stream_res.tg->funcs->lock_doublebuffer_enable) {
+ if (top_pipe_to_program &&
+ top_pipe_to_program->stream_res.tg->funcs->lock_doublebuffer_enable) {
if (should_use_dmub_lock(stream->link)) {
union dmub_hw_lock_flags hw_locks = { 0 };
struct dmub_hw_lock_inst_flags inst_flags = { 0 };
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
index c0bdc23702c8..f640990ae230 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -1844,6 +1844,8 @@ static void enable_stream_features(struct pipe_ctx *pipe_ctx)
union down_spread_ctrl old_downspread;
union down_spread_ctrl new_downspread;
+ memset(&old_downspread, 0, sizeof(old_downspread));
+
core_link_read_dpcd(link, DP_DOWNSPREAD_CTRL,
&old_downspread.raw, sizeof(old_downspread));
diff --git a/drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.c
index cfd09b3f705e..fe22530242d2 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.c
@@ -134,11 +134,12 @@ void dcn201_update_plane_addr(const struct dc *dc, struct pipe_ctx *pipe_ctx)
PHYSICAL_ADDRESS_LOC addr;
struct dc_plane_state *plane_state = pipe_ctx->plane_state;
struct dce_hwseq *hws = dc->hwseq;
- struct dc_plane_address uma = plane_state->address;
+ struct dc_plane_address uma;
if (plane_state == NULL)
return;
+ uma = plane_state->address;
addr_patched = patch_address_for_sbs_tb_stereo(pipe_ctx, &addr);
plane_address_in_gpu_space_to_uma(hws, &uma);
diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c
index 27afbe6ec0fe..f969ff65f802 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c
@@ -493,7 +493,8 @@ static const struct dcn31_apg_mask apg_mask = {
SE_DCN3_REG_LIST(id)\
}
-static const struct dcn10_stream_enc_registers stream_enc_regs[] = {
+/* Some encoders won't be initialized here - but they're logical, not physical. */
+static const struct dcn10_stream_enc_registers stream_enc_regs[ENGINE_ID_COUNT] = {
stream_enc_regs(0),
stream_enc_regs(1),
stream_enc_regs(2),
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c b/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c
index 9ccafe007b23..c4b067d01895 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c
@@ -132,31 +132,6 @@ enum dc_irq_source to_dal_irq_source_dcn20(
}
}
-uint32_t dc_get_hpd_state_dcn20(struct irq_service *irq_service, enum dc_irq_source source)
-{
- const struct irq_source_info *info;
- uint32_t addr;
- uint32_t value;
- uint32_t current_status;
-
- info = find_irq_source_info(irq_service, source);
- if (!info)
- return 0;
-
- addr = info->status_reg;
- if (!addr)
- return 0;
-
- value = dm_read_reg(irq_service->ctx, addr);
- current_status =
- get_reg_field_value(
- value,
- HPD0_DC_HPD_INT_STATUS,
- DC_HPD_SENSE);
-
- return current_status;
-}
-
static bool hpd_ack(
struct irq_service *irq_service,
const struct irq_source_info *info)
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.h b/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.h
index 4d69ab24ca25..aee4b37999f1 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.h
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.h
@@ -31,6 +31,4 @@
struct irq_service *dal_irq_service_dcn20_create(
struct irq_service_init_data *init_data);
-uint32_t dc_get_hpd_state_dcn20(struct irq_service *irq_service, enum dc_irq_source source);
-
#endif
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c b/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c
index 78940cb20e10..ed54e1c819be 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c
@@ -135,31 +135,6 @@ enum dc_irq_source to_dal_irq_source_dcn21(
return DC_IRQ_SOURCE_INVALID;
}
-uint32_t dc_get_hpd_state_dcn21(struct irq_service *irq_service, enum dc_irq_source source)
-{
- const struct irq_source_info *info;
- uint32_t addr;
- uint32_t value;
- uint32_t current_status;
-
- info = find_irq_source_info(irq_service, source);
- if (!info)
- return 0;
-
- addr = info->status_reg;
- if (!addr)
- return 0;
-
- value = dm_read_reg(irq_service->ctx, addr);
- current_status =
- get_reg_field_value(
- value,
- HPD0_DC_HPD_INT_STATUS,
- DC_HPD_SENSE);
-
- return current_status;
-}
-
static bool hpd_ack(
struct irq_service *irq_service,
const struct irq_source_info *info)
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.h b/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.h
index 616470e32380..da2bd0e93d7a 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.h
+++ b/drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.h
@@ -31,6 +31,4 @@
struct irq_service *dal_irq_service_dcn21_create(
struct irq_service_init_data *init_data);
-uint32_t dc_get_hpd_state_dcn21(struct irq_service *irq_service, enum dc_irq_source source);
-
#endif
diff --git a/drivers/gpu/drm/amd/display/dc/irq/irq_service.c b/drivers/gpu/drm/amd/display/dc/irq/irq_service.c
index 4db1133e4466..a2a4fbeb83f8 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/irq_service.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/irq_service.c
@@ -79,7 +79,7 @@ void dal_irq_service_destroy(struct irq_service **irq_service)
*irq_service = NULL;
}
-const struct irq_source_info *find_irq_source_info(
+static const struct irq_source_info *find_irq_source_info(
struct irq_service *irq_service,
enum dc_irq_source source)
{
diff --git a/drivers/gpu/drm/amd/display/dc/irq/irq_service.h b/drivers/gpu/drm/amd/display/dc/irq/irq_service.h
index e60b82480093..dbfcb096eedd 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/irq_service.h
+++ b/drivers/gpu/drm/amd/display/dc/irq/irq_service.h
@@ -69,10 +69,6 @@ struct irq_service {
const struct irq_service_funcs *funcs;
};
-const struct irq_source_info *find_irq_source_info(
- struct irq_service *irq_service,
- enum dc_irq_source source);
-
void dal_irq_service_construct(
struct irq_service *irq_service,
struct irq_service_init_data *init_data);
diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
index 41472ed99253..f8370d54100e 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -2123,6 +2123,12 @@ static int default_attr_update(struct amdgpu_device *adev, struct amdgpu_device_
}
}
+ /* setting should not be allowed from VF */
+ if (amdgpu_sriov_vf(adev)) {
+ dev_attr->attr.mode &= ~S_IWUGO;
+ dev_attr->store = NULL;
+ }
+
#undef DEVICE_ATTR_IS
return 0;
diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
index cab6c8b92efd..6a4f20fccf84 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
@@ -998,11 +998,21 @@ int analogix_dp_send_psr_spd(struct analogix_dp_device *dp,
if (!blocking)
return 0;
+ /*
+ * db[1]!=0: entering PSR, wait for fully active remote frame buffer.
+ * db[1]==0: exiting PSR, wait for either
+ * (a) ACTIVE_RESYNC - the sink "must display the
+ * incoming active frames from the Source device with no visible
+ * glitches and/or artifacts", even though timings may still be
+ * re-synchronizing; or
+ * (b) INACTIVE - the transition is fully complete.
+ */
ret = readx_poll_timeout(analogix_dp_get_psr_status, dp, psr_status,
psr_status >= 0 &&
((vsc->db[1] && psr_status == DP_PSR_SINK_ACTIVE_RFB) ||
- (!vsc->db[1] && psr_status == DP_PSR_SINK_INACTIVE)), 1500,
- DP_TIMEOUT_PSR_LOOP_MS * 1000);
+ (!vsc->db[1] && (psr_status == DP_PSR_SINK_ACTIVE_RESYNC ||
+ psr_status == DP_PSR_SINK_INACTIVE))),
+ 1500, DP_TIMEOUT_PSR_LOOP_MS * 1000);
if (ret) {
dev_warn(dp->dev, "Failed to apply PSR %d\n", ret);
return ret;
diff --git a/drivers/gpu/drm/bridge/display-connector.c b/drivers/gpu/drm/bridge/display-connector.c
index 05eb759da6fc..847a0dce7f1d 100644
--- a/drivers/gpu/drm/bridge/display-connector.c
+++ b/drivers/gpu/drm/bridge/display-connector.c
@@ -107,7 +107,7 @@ static int display_connector_probe(struct platform_device *pdev)
{
struct display_connector *conn;
unsigned int type;
- const char *label;
+ const char *label = NULL;
int ret;
conn = devm_kzalloc(&pdev->dev, sizeof(*conn), GFP_KERNEL);
diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
index d2808c4a6fb1..cce98bf2a4e7 100644
--- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
+++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
@@ -306,19 +306,10 @@ static void ge_b850v3_lvds_remove(void)
mutex_unlock(&ge_b850v3_lvds_dev_mutex);
}
-static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
- const struct i2c_device_id *id)
+static int ge_b850v3_register(void)
{
+ struct i2c_client *stdp4028_i2c = ge_b850v3_lvds_ptr->stdp4028_i2c;
struct device *dev = &stdp4028_i2c->dev;
- int ret;
-
- ret = ge_b850v3_lvds_init(dev);
-
- if (ret)
- return ret;
-
- ge_b850v3_lvds_ptr->stdp4028_i2c = stdp4028_i2c;
- i2c_set_clientdata(stdp4028_i2c, ge_b850v3_lvds_ptr);
/* drm bridge initialization */
ge_b850v3_lvds_ptr->bridge.funcs = &ge_b850v3_lvds_funcs;
@@ -343,6 +334,27 @@ static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
"ge-b850v3-lvds-dp", ge_b850v3_lvds_ptr);
}
+static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
+ const struct i2c_device_id *id)
+{
+ struct device *dev = &stdp4028_i2c->dev;
+ int ret;
+
+ ret = ge_b850v3_lvds_init(dev);
+
+ if (ret)
+ return ret;
+
+ ge_b850v3_lvds_ptr->stdp4028_i2c = stdp4028_i2c;
+ i2c_set_clientdata(stdp4028_i2c, ge_b850v3_lvds_ptr);
+
+ /* Only register after both bridges are probed */
+ if (!ge_b850v3_lvds_ptr->stdp2690_i2c)
+ return 0;
+
+ return ge_b850v3_register();
+}
+
static int stdp4028_ge_b850v3_fw_remove(struct i2c_client *stdp4028_i2c)
{
ge_b850v3_lvds_remove();
@@ -386,7 +398,11 @@ static int stdp2690_ge_b850v3_fw_probe(struct i2c_client *stdp2690_i2c,
ge_b850v3_lvds_ptr->stdp2690_i2c = stdp2690_i2c;
i2c_set_clientdata(stdp2690_i2c, ge_b850v3_lvds_ptr);
- return 0;
+ /* Only register after both bridges are probed */
+ if (!ge_b850v3_lvds_ptr->stdp4028_i2c)
+ return 0;
+
+ return ge_b850v3_register();
}
static int stdp2690_ge_b850v3_fw_remove(struct i2c_client *stdp2690_i2c)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
index d0db1acf11d7..7d2ed0ed2fe2 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
@@ -320,13 +320,17 @@ static int dw_hdmi_open(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
struct snd_dw_hdmi *dw = substream->private_data;
void __iomem *base = dw->data.base;
+ u8 *eld;
int ret;
runtime->hw = dw_hdmi_hw;
- ret = snd_pcm_hw_constraint_eld(runtime, dw->data.eld);
- if (ret < 0)
- return ret;
+ eld = dw->data.get_eld(dw->data.hdmi);
+ if (eld) {
+ ret = snd_pcm_hw_constraint_eld(runtime, eld);
+ if (ret < 0)
+ return ret;
+ }
ret = snd_pcm_limit_hw_rates(runtime);
if (ret < 0)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
index cb07dc0da5a7..f72d27208ebe 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
@@ -9,15 +9,15 @@ struct dw_hdmi_audio_data {
void __iomem *base;
int irq;
struct dw_hdmi *hdmi;
- u8 *eld;
+ u8 *(*get_eld)(struct dw_hdmi *hdmi);
};
struct dw_hdmi_i2s_audio_data {
struct dw_hdmi *hdmi;
- u8 *eld;
void (*write)(struct dw_hdmi *hdmi, u8 val, int offset);
u8 (*read)(struct dw_hdmi *hdmi, int offset);
+ u8 *(*get_eld)(struct dw_hdmi *hdmi);
};
#endif
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
index feb04f127b55..f50b47ac11a8 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
@@ -135,8 +135,15 @@ static int dw_hdmi_i2s_get_eld(struct device *dev, void *data, uint8_t *buf,
size_t len)
{
struct dw_hdmi_i2s_audio_data *audio = data;
+ u8 *eld;
+
+ eld = audio->get_eld(audio->hdmi);
+ if (eld)
+ memcpy(buf, eld, min_t(size_t, MAX_ELD_BYTES, len));
+ else
+ /* Pass en empty ELD if connector not available */
+ memset(buf, 0, len);
- memcpy(buf, audio->eld, min_t(size_t, MAX_ELD_BYTES, len));
return 0;
}
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index f08d0fded61f..e1211a5b334b 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -757,6 +757,14 @@ static void hdmi_enable_audio_clk(struct dw_hdmi *hdmi, bool enable)
hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS);
}
+static u8 *hdmi_audio_get_eld(struct dw_hdmi *hdmi)
+{
+ if (!hdmi->curr_conn)
+ return NULL;
+
+ return hdmi->curr_conn->eld;
+}
+
static void dw_hdmi_ahb_audio_enable(struct dw_hdmi *hdmi)
{
hdmi_set_cts_n(hdmi, hdmi->audio_cts, hdmi->audio_n);
@@ -3431,7 +3439,7 @@ struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev,
audio.base = hdmi->regs;
audio.irq = irq;
audio.hdmi = hdmi;
- audio.eld = hdmi->connector.eld;
+ audio.get_eld = hdmi_audio_get_eld;
hdmi->enable_audio = dw_hdmi_ahb_audio_enable;
hdmi->disable_audio = dw_hdmi_ahb_audio_disable;
@@ -3444,7 +3452,7 @@ struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev,
struct dw_hdmi_i2s_audio_data audio;
audio.hdmi = hdmi;
- audio.eld = hdmi->connector.eld;
+ audio.get_eld = hdmi_audio_get_eld;
audio.write = hdmi_writeb;
audio.read = hdmi_readb;
hdmi->enable_audio = dw_hdmi_i2s_audio_enable;
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi83.c b/drivers/gpu/drm/bridge/ti-sn65dsi83.c
index ba1160ec6d6e..07917681782d 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi83.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi83.c
@@ -297,7 +297,6 @@ static void sn65dsi83_detach(struct drm_bridge *bridge)
mipi_dsi_detach(ctx->dsi);
mipi_dsi_device_unregister(ctx->dsi);
- drm_bridge_remove(&ctx->bridge);
ctx->dsi = NULL;
}
@@ -711,6 +710,7 @@ static int sn65dsi83_remove(struct i2c_client *client)
{
struct sn65dsi83 *ctx = i2c_get_clientdata(client);
+ drm_bridge_remove(&ctx->bridge);
of_node_put(ctx->host_node);
return 0;
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
index 6154bed0af5b..83d06c16d4d7 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -188,6 +188,7 @@ static const struct regmap_config ti_sn65dsi86_regmap_config = {
.val_bits = 8,
.volatile_table = &ti_sn_bridge_volatile_table,
.cache_type = REGCACHE_NONE,
+ .max_register = 0xFF,
};
static void ti_sn65dsi86_write_u16(struct ti_sn65dsi86 *pdata,
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 2c0c6ec92820..ff2bc9a11801 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -1001,7 +1001,7 @@ crtc_needs_disable(struct drm_crtc_state *old_state,
* it's in self refresh mode and needs to be fully disabled.
*/
return old_state->active ||
- (old_state->self_refresh_active && !new_state->enable) ||
+ (old_state->self_refresh_active && !new_state->active) ||
new_state->self_refresh_active;
}
diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
index 4d0d1e8e51fa..db7db839e42d 100644
--- a/drivers/gpu/drm/drm_dp_helper.c
+++ b/drivers/gpu/drm/drm_dp_helper.c
@@ -3246,27 +3246,13 @@ int drm_edp_backlight_enable(struct drm_dp_aux *aux, const struct drm_edp_backli
const u16 level)
{
int ret;
- u8 dpcd_buf, new_dpcd_buf;
+ u8 dpcd_buf = DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD;
- ret = drm_dp_dpcd_readb(aux, DP_EDP_BACKLIGHT_MODE_SET_REGISTER, &dpcd_buf);
- if (ret != 1) {
- drm_dbg_kms(aux->drm_dev,
- "%s: Failed to read backlight mode: %d\n", aux->name, ret);
- return ret < 0 ? ret : -EIO;
- }
-
- new_dpcd_buf = dpcd_buf;
-
- if ((dpcd_buf & DP_EDP_BACKLIGHT_CONTROL_MODE_MASK) != DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD) {
- new_dpcd_buf &= ~DP_EDP_BACKLIGHT_CONTROL_MODE_MASK;
- new_dpcd_buf |= DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD;
-
- if (bl->pwmgen_bit_count) {
- ret = drm_dp_dpcd_writeb(aux, DP_EDP_PWMGEN_BIT_COUNT, bl->pwmgen_bit_count);
- if (ret != 1)
- drm_dbg_kms(aux->drm_dev, "%s: Failed to write aux pwmgen bit count: %d\n",
- aux->name, ret);
- }
+ if (bl->pwmgen_bit_count) {
+ ret = drm_dp_dpcd_writeb(aux, DP_EDP_PWMGEN_BIT_COUNT, bl->pwmgen_bit_count);
+ if (ret != 1)
+ drm_dbg_kms(aux->drm_dev, "%s: Failed to write aux pwmgen bit count: %d\n",
+ aux->name, ret);
}
if (bl->pwm_freq_pre_divider) {
@@ -3276,16 +3262,14 @@ int drm_edp_backlight_enable(struct drm_dp_aux *aux, const struct drm_edp_backli
"%s: Failed to write aux backlight frequency: %d\n",
aux->name, ret);
else
- new_dpcd_buf |= DP_EDP_BACKLIGHT_FREQ_AUX_SET_ENABLE;
+ dpcd_buf |= DP_EDP_BACKLIGHT_FREQ_AUX_SET_ENABLE;
}
- if (new_dpcd_buf != dpcd_buf) {
- ret = drm_dp_dpcd_writeb(aux, DP_EDP_BACKLIGHT_MODE_SET_REGISTER, new_dpcd_buf);
- if (ret != 1) {
- drm_dbg_kms(aux->drm_dev, "%s: Failed to write aux backlight mode: %d\n",
- aux->name, ret);
- return ret < 0 ? ret : -EIO;
- }
+ ret = drm_dp_dpcd_writeb(aux, DP_EDP_BACKLIGHT_MODE_SET_REGISTER, dpcd_buf);
+ if (ret != 1) {
+ drm_dbg_kms(aux->drm_dev, "%s: Failed to write aux backlight mode: %d\n",
+ aux->name, ret);
+ return ret < 0 ? ret : -EIO;
}
ret = drm_edp_backlight_set_level(aux, bl, level);
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index 7a5097467ba5..b3a1636d1b98 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -581,6 +581,7 @@ static int drm_dev_init(struct drm_device *dev,
const struct drm_driver *driver,
struct device *parent)
{
+ struct inode *inode;
int ret;
if (!drm_core_init_complete) {
@@ -617,13 +618,15 @@ static int drm_dev_init(struct drm_device *dev,
if (ret)
return ret;
- dev->anon_inode = drm_fs_inode_new();
- if (IS_ERR(dev->anon_inode)) {
- ret = PTR_ERR(dev->anon_inode);
+ inode = drm_fs_inode_new();
+ if (IS_ERR(inode)) {
+ ret = PTR_ERR(inode);
DRM_ERROR("Cannot allocate anonymous inode: %d\n", ret);
goto err;
}
+ dev->anon_inode = inode;
+
if (drm_core_check_feature(dev, DRIVER_RENDER)) {
ret = drm_minor_alloc(dev, DRM_MINOR_RENDER);
if (ret)
diff --git a/drivers/gpu/drm/drm_gem_cma_helper.c b/drivers/gpu/drm/drm_gem_cma_helper.c
index 9d05674550a4..1e7e8cd64cb5 100644
--- a/drivers/gpu/drm/drm_gem_cma_helper.c
+++ b/drivers/gpu/drm/drm_gem_cma_helper.c
@@ -62,18 +62,21 @@ __drm_gem_cma_create(struct drm_device *drm, size_t size, bool private)
struct drm_gem_object *gem_obj;
int ret = 0;
- if (drm->driver->gem_create_object)
+ if (drm->driver->gem_create_object) {
gem_obj = drm->driver->gem_create_object(drm, size);
- else
- gem_obj = kzalloc(sizeof(*cma_obj), GFP_KERNEL);
- if (!gem_obj)
- return ERR_PTR(-ENOMEM);
+ if (IS_ERR(gem_obj))
+ return ERR_CAST(gem_obj);
+ cma_obj = to_drm_gem_cma_obj(gem_obj);
+ } else {
+ cma_obj = kzalloc(sizeof(*cma_obj), GFP_KERNEL);
+ if (!cma_obj)
+ return ERR_PTR(-ENOMEM);
+ gem_obj = &cma_obj->base;
+ }
if (!gem_obj->funcs)
gem_obj->funcs = &drm_gem_cma_default_funcs;
- cma_obj = container_of(gem_obj, struct drm_gem_cma_object, base);
-
if (private) {
drm_gem_private_object_init(drm, gem_obj, size);
diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c b/drivers/gpu/drm/drm_gem_shmem_helper.c
index bca0de92802e..fe157bf27834 100644
--- a/drivers/gpu/drm/drm_gem_shmem_helper.c
+++ b/drivers/gpu/drm/drm_gem_shmem_helper.c
@@ -51,14 +51,17 @@ __drm_gem_shmem_create(struct drm_device *dev, size_t size, bool private)
size = PAGE_ALIGN(size);
- if (dev->driver->gem_create_object)
+ if (dev->driver->gem_create_object) {
obj = dev->driver->gem_create_object(dev, size);
- else
- obj = kzalloc(sizeof(*shmem), GFP_KERNEL);
- if (!obj)
- return ERR_PTR(-ENOMEM);
-
- shmem = to_drm_gem_shmem_obj(obj);
+ if (IS_ERR(obj))
+ return ERR_CAST(obj);
+ shmem = to_drm_gem_shmem_obj(obj);
+ } else {
+ shmem = kzalloc(sizeof(*shmem), GFP_KERNEL);
+ if (!shmem)
+ return ERR_PTR(-ENOMEM);
+ obj = &shmem->base;
+ }
if (!obj->funcs)
obj->funcs = &drm_gem_shmem_funcs;
diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c
index bfa386b98134..3f00192215d1 100644
--- a/drivers/gpu/drm/drm_gem_vram_helper.c
+++ b/drivers/gpu/drm/drm_gem_vram_helper.c
@@ -197,8 +197,8 @@ struct drm_gem_vram_object *drm_gem_vram_create(struct drm_device *dev,
if (dev->driver->gem_create_object) {
gem = dev->driver->gem_create_object(dev, size);
- if (!gem)
- return ERR_PTR(-ENOMEM);
+ if (IS_ERR(gem))
+ return ERR_CAST(gem);
gbo = drm_gem_vram_of_gem(gem);
} else {
gbo = kzalloc(sizeof(*gbo), GFP_KERNEL);
diff --git a/drivers/gpu/drm/drm_panel_orientation_quirks.c b/drivers/gpu/drm/drm_panel_orientation_quirks.c
index a9359878f4ed..042bb80383c9 100644
--- a/drivers/gpu/drm/drm_panel_orientation_quirks.c
+++ b/drivers/gpu/drm/drm_panel_orientation_quirks.c
@@ -262,6 +262,12 @@ static const struct dmi_system_id orientation_data[] = {
DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad D330-10IGM"),
},
.driver_data = (void *)&lcd1200x1920_rightside_up,
+ }, { /* Lenovo Yoga Book X90F / X91F / X91L */
+ .matches = {
+ /* Non exact match to match all versions */
+ DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X9"),
+ },
+ .driver_data = (void *)&lcd1200x1920_rightside_up,
}, { /* OneGX1 Pro */
.matches = {
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SYSTEM_MANUFACTURER"),
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
index 486259e154af..225fa5879ebd 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
@@ -469,6 +469,12 @@ int etnaviv_ioctl_gem_submit(struct drm_device *dev, void *data,
return -EINVAL;
}
+ if (args->stream_size > SZ_64K || args->nr_relocs > SZ_64K ||
+ args->nr_bos > SZ_64K || args->nr_pmrs > 128) {
+ DRM_ERROR("submit arguments out of size limits\n");
+ return -EINVAL;
+ }
+
/*
* Copy the command submission and bo array to kernel space in
* one go, and do this outside of any locks.
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.h b/drivers/gpu/drm/etnaviv/etnaviv_gpu.h
index 1c75c8ed5bce..85eddd492774 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.h
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.h
@@ -130,6 +130,7 @@ struct etnaviv_gpu {
/* hang detection */
u32 hangcheck_dma_addr;
+ u32 hangcheck_fence;
void __iomem *mmio;
int irq;
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_sched.c b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
index 180bb633d5c5..58f593b278c1 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_sched.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
@@ -107,8 +107,10 @@ static enum drm_gpu_sched_stat etnaviv_sched_timedout_job(struct drm_sched_job
*/
dma_addr = gpu_read(gpu, VIVS_FE_DMA_ADDRESS);
change = dma_addr - gpu->hangcheck_dma_addr;
- if (change < 0 || change > 16) {
+ if (gpu->completed_fence != gpu->hangcheck_fence ||
+ change < 0 || change > 16) {
gpu->hangcheck_dma_addr = dma_addr;
+ gpu->hangcheck_fence = gpu->completed_fence;
goto out_no_timeout;
}
diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
index 78cd8f77b49d..34aab40c6e1f 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
@@ -477,14 +477,14 @@ static const struct intel_ddi_buf_trans icl_combo_phy_trans_hdmi = {
static const union intel_ddi_buf_trans_entry _ehl_combo_phy_trans_dp[] = {
/* NT mV Trans mV db */
{ .icl = { 0xA, 0x33, 0x3F, 0x00, 0x00 } }, /* 350 350 0.0 */
- { .icl = { 0xA, 0x47, 0x36, 0x00, 0x09 } }, /* 350 500 3.1 */
- { .icl = { 0xC, 0x64, 0x34, 0x00, 0x0B } }, /* 350 700 6.0 */
- { .icl = { 0x6, 0x7F, 0x30, 0x00, 0x0F } }, /* 350 900 8.2 */
+ { .icl = { 0xA, 0x47, 0x38, 0x00, 0x07 } }, /* 350 500 3.1 */
+ { .icl = { 0xC, 0x64, 0x33, 0x00, 0x0C } }, /* 350 700 6.0 */
+ { .icl = { 0x6, 0x7F, 0x2F, 0x00, 0x10 } }, /* 350 900 8.2 */
{ .icl = { 0xA, 0x46, 0x3F, 0x00, 0x00 } }, /* 500 500 0.0 */
- { .icl = { 0xC, 0x64, 0x38, 0x00, 0x07 } }, /* 500 700 2.9 */
+ { .icl = { 0xC, 0x64, 0x37, 0x00, 0x08 } }, /* 500 700 2.9 */
{ .icl = { 0x6, 0x7F, 0x32, 0x00, 0x0D } }, /* 500 900 5.1 */
{ .icl = { 0xC, 0x61, 0x3F, 0x00, 0x00 } }, /* 650 700 0.6 */
- { .icl = { 0x6, 0x7F, 0x38, 0x00, 0x07 } }, /* 600 900 3.5 */
+ { .icl = { 0x6, 0x7F, 0x37, 0x00, 0x08 } }, /* 600 900 3.5 */
{ .icl = { 0x6, 0x7F, 0x3F, 0x00, 0x00 } }, /* 900 900 0.0 */
};
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pages.c b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
index 8eb1c3a6fc9c..1d3f40abd025 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_pages.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
@@ -160,7 +160,6 @@ int i915_gem_object_pin_pages_unlocked(struct drm_i915_gem_object *obj)
/* Immediately discard the backing storage */
void i915_gem_object_truncate(struct drm_i915_gem_object *obj)
{
- drm_gem_free_mmap_offset(&obj->base);
if (obj->ops->truncate)
obj->ops->truncate(obj);
}
diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp_tee.c b/drivers/gpu/drm/i915/pxp/intel_pxp_tee.c
index 49508f31dcb7..d2980370d929 100644
--- a/drivers/gpu/drm/i915/pxp/intel_pxp_tee.c
+++ b/drivers/gpu/drm/i915/pxp/intel_pxp_tee.c
@@ -103,9 +103,12 @@ static int i915_pxp_tee_component_bind(struct device *i915_kdev,
static void i915_pxp_tee_component_unbind(struct device *i915_kdev,
struct device *tee_kdev, void *data)
{
+ struct drm_i915_private *i915 = kdev_to_i915(i915_kdev);
struct intel_pxp *pxp = i915_dev_to_pxp(i915_kdev);
+ intel_wakeref_t wakeref;
- intel_pxp_fini_hw(pxp);
+ with_intel_runtime_pm_if_in_use(&i915->runtime_pm, wakeref)
+ intel_pxp_fini_hw(pxp);
mutex_lock(&pxp->tee_mutex);
pxp->pxp_component = NULL;
diff --git a/drivers/gpu/drm/lima/lima_device.c b/drivers/gpu/drm/lima/lima_device.c
index f74f8048af8f..02cef0cea657 100644
--- a/drivers/gpu/drm/lima/lima_device.c
+++ b/drivers/gpu/drm/lima/lima_device.c
@@ -358,6 +358,7 @@ int lima_device_init(struct lima_device *ldev)
int err, i;
dma_set_coherent_mask(ldev->dev, DMA_BIT_MASK(32));
+ dma_set_max_seg_size(ldev->dev, UINT_MAX);
err = lima_clk_init(ldev);
if (err)
diff --git a/drivers/gpu/drm/lima/lima_gem.c b/drivers/gpu/drm/lima/lima_gem.c
index 640acc060467..54823bd701a4 100644
--- a/drivers/gpu/drm/lima/lima_gem.c
+++ b/drivers/gpu/drm/lima/lima_gem.c
@@ -221,7 +221,7 @@ struct drm_gem_object *lima_gem_create_object(struct drm_device *dev, size_t siz
bo = kzalloc(sizeof(*bo), GFP_KERNEL);
if (!bo)
- return NULL;
+ return ERR_PTR(-ENOMEM);
mutex_init(&bo->lock);
INIT_LIST_HEAD(&bo->va);
diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig
index 39197b4beea7..1eae5a9645f4 100644
--- a/drivers/gpu/drm/msm/Kconfig
+++ b/drivers/gpu/drm/msm/Kconfig
@@ -65,6 +65,7 @@ config DRM_MSM_HDMI_HDCP
config DRM_MSM_DP
bool "Enable DisplayPort support in MSM DRM driver"
depends on DRM_MSM
+ select RATIONAL
default y
help
Compile in support for DP driver in MSM DRM driver. DP external
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index a15b26428280..d25d18a0084d 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -73,8 +73,8 @@ static int _dpu_danger_signal_status(struct seq_file *s,
&status);
} else {
seq_puts(s, "\nSafe signal status:\n");
- if (kms->hw_mdp->ops.get_danger_status)
- kms->hw_mdp->ops.get_danger_status(kms->hw_mdp,
+ if (kms->hw_mdp->ops.get_safe_status)
+ kms->hw_mdp->ops.get_safe_status(kms->hw_mdp,
&status);
}
pm_runtime_put_sync(&kms->pdev->dev);
diff --git a/drivers/gpu/drm/msm/dsi/dsi.c b/drivers/gpu/drm/msm/dsi/dsi.c
index 75ae3008b68f..fc280cc43494 100644
--- a/drivers/gpu/drm/msm/dsi/dsi.c
+++ b/drivers/gpu/drm/msm/dsi/dsi.c
@@ -215,9 +215,13 @@ int msm_dsi_modeset_init(struct msm_dsi *msm_dsi, struct drm_device *dev,
goto fail;
}
- if (!msm_dsi_manager_validate_current_config(msm_dsi->id)) {
- ret = -EINVAL;
- goto fail;
+ if (msm_dsi_is_bonded_dsi(msm_dsi) &&
+ !msm_dsi_is_master_dsi(msm_dsi)) {
+ /*
+ * Do not return an eror here,
+ * Just skip creating encoder/connector for the slave-DSI.
+ */
+ return 0;
}
msm_dsi->encoder = encoder;
diff --git a/drivers/gpu/drm/msm/dsi/dsi.h b/drivers/gpu/drm/msm/dsi/dsi.h
index 569c8ff062ba..a63666e59d19 100644
--- a/drivers/gpu/drm/msm/dsi/dsi.h
+++ b/drivers/gpu/drm/msm/dsi/dsi.h
@@ -82,7 +82,6 @@ int msm_dsi_manager_cmd_xfer(int id, const struct mipi_dsi_msg *msg);
bool msm_dsi_manager_cmd_xfer_trigger(int id, u32 dma_base, u32 len);
int msm_dsi_manager_register(struct msm_dsi *msm_dsi);
void msm_dsi_manager_unregister(struct msm_dsi *msm_dsi);
-bool msm_dsi_manager_validate_current_config(u8 id);
void msm_dsi_manager_tpg_enable(void);
/* msm dsi */
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
index 20c4d650fd80..e58ec5c1a4c3 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -649,23 +649,6 @@ struct drm_connector *msm_dsi_manager_connector_init(u8 id)
return ERR_PTR(ret);
}
-bool msm_dsi_manager_validate_current_config(u8 id)
-{
- bool is_bonded_dsi = IS_BONDED_DSI();
-
- /*
- * For bonded DSI, we only have one drm panel. For this
- * use case, we register only one bridge/connector.
- * Skip bridge/connector initialisation if it is
- * slave-DSI for bonded DSI configuration.
- */
- if (is_bonded_dsi && !IS_MASTER_DSI_LINK(id)) {
- DBG("Skip bridge registration for slave DSI->id: %d\n", id);
- return false;
- }
- return true;
-}
-
/* initialize bridge */
struct drm_bridge *msm_dsi_manager_bridge_init(u8 id)
{
diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c
index 282628d6b72c..6cfa984dee6a 100644
--- a/drivers/gpu/drm/msm/msm_gem_submit.c
+++ b/drivers/gpu/drm/msm/msm_gem_submit.c
@@ -881,7 +881,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
* to the underlying fence.
*/
submit->fence_id = idr_alloc_cyclic(&queue->fence_idr,
- submit->user_fence, 0, INT_MAX, GFP_KERNEL);
+ submit->user_fence, 1, INT_MAX, GFP_KERNEL);
if (submit->fence_id < 0) {
ret = submit->fence_id = 0;
submit->fence_id = 0;
diff --git a/drivers/gpu/drm/nouveau/dispnv04/disp.c b/drivers/gpu/drm/nouveau/dispnv04/disp.c
index 7739f46470d3..99fee4d8cd31 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/disp.c
@@ -205,7 +205,7 @@ nv04_display_destroy(struct drm_device *dev)
nvif_notify_dtor(&disp->flip);
nouveau_display(dev)->priv = NULL;
- kfree(disp);
+ vfree(disp);
nvif_object_unmap(&drm->client.device.object);
}
@@ -223,7 +223,7 @@ nv04_display_create(struct drm_device *dev)
struct nv04_display *disp;
int i, ret;
- disp = kzalloc(sizeof(*disp), GFP_KERNEL);
+ disp = vzalloc(sizeof(*disp));
if (!disp)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
index 24382875fb4f..455e95a89259 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
@@ -94,20 +94,13 @@ nvkm_pmu_fini(struct nvkm_subdev *subdev, bool suspend)
return 0;
}
-static int
+static void
nvkm_pmu_reset(struct nvkm_pmu *pmu)
{
struct nvkm_device *device = pmu->subdev.device;
if (!pmu->func->enabled(pmu))
- return 0;
-
- /* Inhibit interrupts, and wait for idle. */
- nvkm_wr32(device, 0x10a014, 0x0000ffff);
- nvkm_msec(device, 2000,
- if (!nvkm_rd32(device, 0x10a04c))
- break;
- );
+ return;
/* Reset. */
if (pmu->func->reset)
@@ -118,25 +111,37 @@ nvkm_pmu_reset(struct nvkm_pmu *pmu)
if (!(nvkm_rd32(device, 0x10a10c) & 0x00000006))
break;
);
-
- return 0;
}
static int
nvkm_pmu_preinit(struct nvkm_subdev *subdev)
{
struct nvkm_pmu *pmu = nvkm_pmu(subdev);
- return nvkm_pmu_reset(pmu);
+ nvkm_pmu_reset(pmu);
+ return 0;
}
static int
nvkm_pmu_init(struct nvkm_subdev *subdev)
{
struct nvkm_pmu *pmu = nvkm_pmu(subdev);
- int ret = nvkm_pmu_reset(pmu);
- if (ret == 0 && pmu->func->init)
- ret = pmu->func->init(pmu);
- return ret;
+ struct nvkm_device *device = pmu->subdev.device;
+
+ if (!pmu->func->init)
+ return 0;
+
+ if (pmu->func->enabled(pmu)) {
+ /* Inhibit interrupts, and wait for idle. */
+ nvkm_wr32(device, 0x10a014, 0x0000ffff);
+ nvkm_msec(device, 2000,
+ if (!nvkm_rd32(device, 0x10a04c))
+ break;
+ );
+
+ nvkm_pmu_reset(pmu);
+ }
+
+ return pmu->func->init(pmu);
}
static void *
diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
index 581661b506f8..f9c1f7bc8218 100644
--- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
+++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
@@ -227,7 +227,13 @@ static int feiyang_dsi_probe(struct mipi_dsi_device *dsi)
dsi->format = MIPI_DSI_FMT_RGB888;
dsi->lanes = 4;
- return mipi_dsi_attach(dsi);
+ ret = mipi_dsi_attach(dsi);
+ if (ret < 0) {
+ drm_panel_remove(&ctx->panel);
+ return ret;
+ }
+
+ return 0;
}
static int feiyang_dsi_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
index aea316225391..f194b62e290c 100644
--- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
+++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
@@ -484,6 +484,7 @@ static void innolux_panel_del(struct innolux_panel *innolux)
static int innolux_panel_probe(struct mipi_dsi_device *dsi)
{
const struct panel_desc *desc;
+ struct innolux_panel *innolux;
int err;
desc = of_device_get_match_data(&dsi->dev);
@@ -495,7 +496,14 @@ static int innolux_panel_probe(struct mipi_dsi_device *dsi)
if (err < 0)
return err;
- return mipi_dsi_attach(dsi);
+ err = mipi_dsi_attach(dsi);
+ if (err < 0) {
+ innolux = mipi_dsi_get_drvdata(dsi);
+ innolux_panel_del(innolux);
+ return err;
+ }
+
+ return 0;
}
static int innolux_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
index 733010b5e4f5..3c86ad262d5e 100644
--- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
+++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
@@ -473,7 +473,13 @@ static int jdi_panel_probe(struct mipi_dsi_device *dsi)
if (ret < 0)
return ret;
- return mipi_dsi_attach(dsi);
+ ret = mipi_dsi_attach(dsi);
+ if (ret < 0) {
+ jdi_panel_del(jdi);
+ return ret;
+ }
+
+ return 0;
}
static int jdi_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
index 86e4213e8bb1..daccb1fd5fda 100644
--- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
+++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
@@ -406,7 +406,13 @@ static int kingdisplay_panel_probe(struct mipi_dsi_device *dsi)
if (err < 0)
return err;
- return mipi_dsi_attach(dsi);
+ err = mipi_dsi_attach(dsi);
+ if (err < 0) {
+ kingdisplay_panel_del(kingdisplay);
+ return err;
+ }
+
+ return 0;
}
static int kingdisplay_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c
index 533cd3934b8b..839b263fb3c0 100644
--- a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c
+++ b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c
@@ -656,7 +656,13 @@ static int nt36672a_panel_probe(struct mipi_dsi_device *dsi)
if (err < 0)
return err;
- return mipi_dsi_attach(dsi);
+ err = mipi_dsi_attach(dsi);
+ if (err < 0) {
+ drm_panel_remove(&pinfo->base);
+ return err;
+ }
+
+ return 0;
}
static int nt36672a_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
index 3c20beeb1781..3991f5d950af 100644
--- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
+++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
@@ -241,7 +241,13 @@ static int wuxga_nt_panel_probe(struct mipi_dsi_device *dsi)
if (ret < 0)
return ret;
- return mipi_dsi_attach(dsi);
+ ret = mipi_dsi_attach(dsi);
+ if (ret < 0) {
+ wuxga_nt_panel_del(wuxga_nt);
+ return ret;
+ }
+
+ return 0;
}
static int wuxga_nt_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
index a3782830ae3c..1fb579a574d9 100644
--- a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
+++ b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
@@ -199,7 +199,13 @@ static int rb070d30_panel_dsi_probe(struct mipi_dsi_device *dsi)
dsi->format = MIPI_DSI_FMT_RGB888;
dsi->lanes = 4;
- return mipi_dsi_attach(dsi);
+ ret = mipi_dsi_attach(dsi);
+ if (ret < 0) {
+ drm_panel_remove(&ctx->panel);
+ return ret;
+ }
+
+ return 0;
}
static int rb070d30_panel_dsi_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
index ea63799ff2a1..29fde3823212 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
@@ -247,6 +247,7 @@ static int s6e88a0_ams452ef01_probe(struct mipi_dsi_device *dsi)
ret = mipi_dsi_attach(dsi);
if (ret < 0) {
dev_err(dev, "Failed to attach to DSI host: %d\n", ret);
+ drm_panel_remove(&ctx->panel);
return ret;
}
diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 8cb1853574bb..6d107e14fcc5 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -302,6 +302,7 @@ static int sofef00_panel_probe(struct mipi_dsi_device *dsi)
ret = mipi_dsi_attach(dsi);
if (ret < 0) {
dev_err(dev, "Failed to attach to DSI host: %d\n", ret);
+ drm_panel_remove(&ctx->panel);
return ret;
}
diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
index b937e24dac8e..25829a0a8e80 100644
--- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
@@ -296,7 +296,13 @@ static int sharp_nt_panel_probe(struct mipi_dsi_device *dsi)
if (ret < 0)
return ret;
- return mipi_dsi_attach(dsi);
+ ret = mipi_dsi_attach(dsi);
+ if (ret < 0) {
+ sharp_nt_panel_del(sharp_nt);
+ return ret;
+ }
+
+ return 0;
}
static int sharp_nt_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panfrost/panfrost_gem.c b/drivers/gpu/drm/panfrost/panfrost_gem.c
index 23377481f4e3..39ac03154895 100644
--- a/drivers/gpu/drm/panfrost/panfrost_gem.c
+++ b/drivers/gpu/drm/panfrost/panfrost_gem.c
@@ -221,7 +221,7 @@ struct drm_gem_object *panfrost_gem_create_object(struct drm_device *dev, size_t
obj = kzalloc(sizeof(*obj), GFP_KERNEL);
if (!obj)
- return NULL;
+ return ERR_PTR(-ENOMEM);
INIT_LIST_HEAD(&obj->mappings.list);
mutex_init(&obj->mappings.lock);
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index 482fb0ae6cb5..0e14907f2043 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -648,6 +648,8 @@ void radeon_driver_lastclose_kms(struct drm_device *dev)
int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
{
struct radeon_device *rdev = dev->dev_private;
+ struct radeon_fpriv *fpriv;
+ struct radeon_vm *vm;
int r;
file_priv->driver_priv = NULL;
@@ -660,48 +662,52 @@ int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
/* new gpu have virtual address space support */
if (rdev->family >= CHIP_CAYMAN) {
- struct radeon_fpriv *fpriv;
- struct radeon_vm *vm;
fpriv = kzalloc(sizeof(*fpriv), GFP_KERNEL);
if (unlikely(!fpriv)) {
r = -ENOMEM;
- goto out_suspend;
+ goto err_suspend;
}
if (rdev->accel_working) {
vm = &fpriv->vm;
r = radeon_vm_init(rdev, vm);
- if (r) {
- kfree(fpriv);
- goto out_suspend;
- }
+ if (r)
+ goto err_fpriv;
r = radeon_bo_reserve(rdev->ring_tmp_bo.bo, false);
- if (r) {
- radeon_vm_fini(rdev, vm);
- kfree(fpriv);
- goto out_suspend;
- }
+ if (r)
+ goto err_vm_fini;
/* map the ib pool buffer read only into
* virtual address space */
vm->ib_bo_va = radeon_vm_bo_add(rdev, vm,
rdev->ring_tmp_bo.bo);
+ if (!vm->ib_bo_va) {
+ r = -ENOMEM;
+ goto err_vm_fini;
+ }
+
r = radeon_vm_bo_set_addr(rdev, vm->ib_bo_va,
RADEON_VA_IB_OFFSET,
RADEON_VM_PAGE_READABLE |
RADEON_VM_PAGE_SNOOPED);
- if (r) {
- radeon_vm_fini(rdev, vm);
- kfree(fpriv);
- goto out_suspend;
- }
+ if (r)
+ goto err_vm_fini;
}
file_priv->driver_priv = fpriv;
}
-out_suspend:
+ pm_runtime_mark_last_busy(dev->dev);
+ pm_runtime_put_autosuspend(dev->dev);
+ return 0;
+
+err_vm_fini:
+ radeon_vm_fini(rdev, vm);
+err_fpriv:
+ kfree(fpriv);
+
+err_suspend:
pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return r;
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
index 5672830ca184..f361a604337f 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
@@ -215,6 +215,7 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc)
const struct drm_display_mode *mode = &rcrtc->crtc.state->adjusted_mode;
struct rcar_du_device *rcdu = rcrtc->dev;
unsigned long mode_clock = mode->clock * 1000;
+ unsigned int hdse_offset;
u32 dsmr;
u32 escr;
@@ -261,12 +262,13 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc)
rcar_du_group_write(rcrtc->group, DPLLCR, dpllcr);
escr = ESCR_DCLKSEL_DCLKIN | div;
- } else if (rcdu->info->lvds_clk_mask & BIT(rcrtc->index)) {
+ } else if (rcdu->info->lvds_clk_mask & BIT(rcrtc->index) ||
+ rcdu->info->dsi_clk_mask & BIT(rcrtc->index)) {
/*
- * Use the LVDS PLL output as the dot clock when outputting to
- * the LVDS encoder on an SoC that supports this clock routing
- * option. We use the clock directly in that case, without any
- * additional divider.
+ * Use the external LVDS or DSI PLL output as the dot clock when
+ * outputting to the LVDS or DSI encoder on an SoC that supports
+ * this clock routing option. We use the clock directly in that
+ * case, without any additional divider.
*/
escr = ESCR_DCLKSEL_DCLKIN;
} else {
@@ -298,10 +300,15 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc)
| DSMR_DIPM_DISP | DSMR_CSPM;
rcar_du_crtc_write(rcrtc, DSMR, dsmr);
+ hdse_offset = 19;
+ if (rcrtc->group->cmms_mask & BIT(rcrtc->index % 2))
+ hdse_offset += 25;
+
/* Display timings */
- rcar_du_crtc_write(rcrtc, HDSR, mode->htotal - mode->hsync_start - 19);
+ rcar_du_crtc_write(rcrtc, HDSR, mode->htotal - mode->hsync_start -
+ hdse_offset);
rcar_du_crtc_write(rcrtc, HDER, mode->htotal - mode->hsync_start +
- mode->hdisplay - 19);
+ mode->hdisplay - hdse_offset);
rcar_du_crtc_write(rcrtc, HSWR, mode->hsync_end -
mode->hsync_start - 1);
rcar_du_crtc_write(rcrtc, HCR, mode->htotal - 1);
@@ -836,6 +843,7 @@ rcar_du_crtc_mode_valid(struct drm_crtc *crtc,
struct rcar_du_crtc *rcrtc = to_rcar_crtc(crtc);
struct rcar_du_device *rcdu = rcrtc->dev;
bool interlaced = mode->flags & DRM_MODE_FLAG_INTERLACE;
+ unsigned int min_sync_porch;
unsigned int vbp;
if (interlaced && !rcar_du_has(rcdu, RCAR_DU_FEATURE_INTERLACED))
@@ -843,9 +851,14 @@ rcar_du_crtc_mode_valid(struct drm_crtc *crtc,
/*
* The hardware requires a minimum combined horizontal sync and back
- * porch of 20 pixels and a minimum vertical back porch of 3 lines.
+ * porch of 20 pixels (when CMM isn't used) or 45 pixels (when CMM is
+ * used), and a minimum vertical back porch of 3 lines.
*/
- if (mode->htotal - mode->hsync_start < 20)
+ min_sync_porch = 20;
+ if (rcrtc->group->cmms_mask & BIT(rcrtc->index % 2))
+ min_sync_porch += 25;
+
+ if (mode->htotal - mode->hsync_start < min_sync_porch)
return MODE_HBLANK_NARROW;
vbp = (mode->vtotal - mode->vsync_end) / (interlaced ? 2 : 1);
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
index 5612a9e7a905..5a8131ef81d5 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
@@ -544,10 +544,12 @@ const char *rcar_du_output_name(enum rcar_du_output output)
static const char * const names[] = {
[RCAR_DU_OUTPUT_DPAD0] = "DPAD0",
[RCAR_DU_OUTPUT_DPAD1] = "DPAD1",
- [RCAR_DU_OUTPUT_LVDS0] = "LVDS0",
- [RCAR_DU_OUTPUT_LVDS1] = "LVDS1",
+ [RCAR_DU_OUTPUT_DSI0] = "DSI0",
+ [RCAR_DU_OUTPUT_DSI1] = "DSI1",
[RCAR_DU_OUTPUT_HDMI0] = "HDMI0",
[RCAR_DU_OUTPUT_HDMI1] = "HDMI1",
+ [RCAR_DU_OUTPUT_LVDS0] = "LVDS0",
+ [RCAR_DU_OUTPUT_LVDS1] = "LVDS1",
[RCAR_DU_OUTPUT_TCON] = "TCON",
};
diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
index a9acbcc420d0..4ed7a6868197 100644
--- a/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
+++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
@@ -267,6 +267,8 @@ struct dw_mipi_dsi_rockchip {
struct dw_mipi_dsi *dmd;
const struct rockchip_dw_dsi_chip_data *cdata;
struct dw_mipi_dsi_plat_data pdata;
+
+ bool dsi_bound;
};
struct dphy_pll_parameter_map {
@@ -772,10 +774,6 @@ static void dw_mipi_dsi_encoder_enable(struct drm_encoder *encoder)
if (mux < 0)
return;
- pm_runtime_get_sync(dsi->dev);
- if (dsi->slave)
- pm_runtime_get_sync(dsi->slave->dev);
-
/*
* For the RK3399, the clk of grf must be enabled before writing grf
* register. And for RK3288 or other soc, this grf_clk must be NULL,
@@ -794,20 +792,10 @@ static void dw_mipi_dsi_encoder_enable(struct drm_encoder *encoder)
clk_disable_unprepare(dsi->grf_clk);
}
-static void dw_mipi_dsi_encoder_disable(struct drm_encoder *encoder)
-{
- struct dw_mipi_dsi_rockchip *dsi = to_dsi(encoder);
-
- if (dsi->slave)
- pm_runtime_put(dsi->slave->dev);
- pm_runtime_put(dsi->dev);
-}
-
static const struct drm_encoder_helper_funcs
dw_mipi_dsi_encoder_helper_funcs = {
.atomic_check = dw_mipi_dsi_encoder_atomic_check,
.enable = dw_mipi_dsi_encoder_enable,
- .disable = dw_mipi_dsi_encoder_disable,
};
static int rockchip_dsi_drm_create_encoder(struct dw_mipi_dsi_rockchip *dsi,
@@ -937,10 +925,14 @@ static int dw_mipi_dsi_rockchip_bind(struct device *dev,
put_device(second);
}
+ pm_runtime_get_sync(dsi->dev);
+ if (dsi->slave)
+ pm_runtime_get_sync(dsi->slave->dev);
+
ret = clk_prepare_enable(dsi->pllref_clk);
if (ret) {
DRM_DEV_ERROR(dev, "Failed to enable pllref_clk: %d\n", ret);
- return ret;
+ goto out_pm_runtime;
}
/*
@@ -952,7 +944,7 @@ static int dw_mipi_dsi_rockchip_bind(struct device *dev,
ret = clk_prepare_enable(dsi->grf_clk);
if (ret) {
DRM_DEV_ERROR(dsi->dev, "Failed to enable grf_clk: %d\n", ret);
- return ret;
+ goto out_pll_clk;
}
dw_mipi_dsi_rockchip_config(dsi);
@@ -964,16 +956,27 @@ static int dw_mipi_dsi_rockchip_bind(struct device *dev,
ret = rockchip_dsi_drm_create_encoder(dsi, drm_dev);
if (ret) {
DRM_DEV_ERROR(dev, "Failed to create drm encoder\n");
- return ret;
+ goto out_pll_clk;
}
ret = dw_mipi_dsi_bind(dsi->dmd, &dsi->encoder);
if (ret) {
DRM_DEV_ERROR(dev, "Failed to bind: %d\n", ret);
- return ret;
+ goto out_pll_clk;
}
+ dsi->dsi_bound = true;
+
return 0;
+
+out_pll_clk:
+ clk_disable_unprepare(dsi->pllref_clk);
+out_pm_runtime:
+ pm_runtime_put(dsi->dev);
+ if (dsi->slave)
+ pm_runtime_put(dsi->slave->dev);
+
+ return ret;
}
static void dw_mipi_dsi_rockchip_unbind(struct device *dev,
@@ -985,9 +988,15 @@ static void dw_mipi_dsi_rockchip_unbind(struct device *dev,
if (dsi->is_slave)
return;
+ dsi->dsi_bound = false;
+
dw_mipi_dsi_unbind(dsi->dmd);
clk_disable_unprepare(dsi->pllref_clk);
+
+ pm_runtime_put(dsi->dev);
+ if (dsi->slave)
+ pm_runtime_put(dsi->slave->dev);
}
static const struct component_ops dw_mipi_dsi_rockchip_ops = {
@@ -1275,6 +1284,36 @@ static const struct phy_ops dw_mipi_dsi_dphy_ops = {
.exit = dw_mipi_dsi_dphy_exit,
};
+static int __maybe_unused dw_mipi_dsi_rockchip_resume(struct device *dev)
+{
+ struct dw_mipi_dsi_rockchip *dsi = dev_get_drvdata(dev);
+ int ret;
+
+ /*
+ * Re-configure DSI state, if we were previously initialized. We need
+ * to do this before rockchip_drm_drv tries to re-enable() any panels.
+ */
+ if (dsi->dsi_bound) {
+ ret = clk_prepare_enable(dsi->grf_clk);
+ if (ret) {
+ DRM_DEV_ERROR(dsi->dev, "Failed to enable grf_clk: %d\n", ret);
+ return ret;
+ }
+
+ dw_mipi_dsi_rockchip_config(dsi);
+ if (dsi->slave)
+ dw_mipi_dsi_rockchip_config(dsi->slave);
+
+ clk_disable_unprepare(dsi->grf_clk);
+ }
+
+ return 0;
+}
+
+static const struct dev_pm_ops dw_mipi_dsi_rockchip_pm_ops = {
+ SET_LATE_SYSTEM_SLEEP_PM_OPS(NULL, dw_mipi_dsi_rockchip_resume)
+};
+
static int dw_mipi_dsi_rockchip_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -1396,14 +1435,10 @@ static int dw_mipi_dsi_rockchip_probe(struct platform_device *pdev)
if (ret != -EPROBE_DEFER)
DRM_DEV_ERROR(dev,
"Failed to probe dw_mipi_dsi: %d\n", ret);
- goto err_clkdisable;
+ return ret;
}
return 0;
-
-err_clkdisable:
- clk_disable_unprepare(dsi->pllref_clk);
- return ret;
}
static int dw_mipi_dsi_rockchip_remove(struct platform_device *pdev)
@@ -1592,6 +1627,7 @@ struct platform_driver dw_mipi_dsi_rockchip_driver = {
.remove = dw_mipi_dsi_rockchip_remove,
.driver = {
.of_match_table = dw_mipi_dsi_rockchip_dt_ids,
+ .pm = &dw_mipi_dsi_rockchip_pm_ops,
.name = "dw-mipi-dsi-rockchip",
},
};
diff --git a/drivers/gpu/drm/scheduler/sched_entity.c b/drivers/gpu/drm/scheduler/sched_entity.c
index 27e1573af96e..191c56064f19 100644
--- a/drivers/gpu/drm/scheduler/sched_entity.c
+++ b/drivers/gpu/drm/scheduler/sched_entity.c
@@ -190,6 +190,16 @@ long drm_sched_entity_flush(struct drm_sched_entity *entity, long timeout)
}
EXPORT_SYMBOL(drm_sched_entity_flush);
+static void drm_sched_entity_kill_jobs_irq_work(struct irq_work *wrk)
+{
+ struct drm_sched_job *job = container_of(wrk, typeof(*job), work);
+
+ drm_sched_fence_finished(job->s_fence);
+ WARN_ON(job->s_fence->parent);
+ job->sched->ops->free_job(job);
+}
+
+
/* Signal the scheduler finished fence when the entity in question is killed. */
static void drm_sched_entity_kill_jobs_cb(struct dma_fence *f,
struct dma_fence_cb *cb)
@@ -197,9 +207,8 @@ static void drm_sched_entity_kill_jobs_cb(struct dma_fence *f,
struct drm_sched_job *job = container_of(cb, struct drm_sched_job,
finish_cb);
- drm_sched_fence_finished(job->s_fence);
- WARN_ON(job->s_fence->parent);
- job->sched->ops->free_job(job);
+ init_irq_work(&job->work, drm_sched_entity_kill_jobs_irq_work);
+ irq_work_queue(&job->work);
}
static struct dma_fence *
diff --git a/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c b/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c
index b64d93da651d..5e2b0175df36 100644
--- a/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c
+++ b/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c
@@ -658,8 +658,10 @@ int sun8i_hdmi_phy_get(struct sun8i_dw_hdmi *hdmi, struct device_node *node)
return -EPROBE_DEFER;
phy = platform_get_drvdata(pdev);
- if (!phy)
+ if (!phy) {
+ put_device(&pdev->dev);
return -EPROBE_DEFER;
+ }
hdmi->phy = phy;
diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
index 8d37d6b00562..611cd8dad46e 100644
--- a/drivers/gpu/drm/tegra/drm.c
+++ b/drivers/gpu/drm/tegra/drm.c
@@ -21,6 +21,10 @@
#include <drm/drm_prime.h>
#include <drm/drm_vblank.h>
+#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
+#include <asm/dma-iommu.h>
+#endif
+
#include "dc.h"
#include "drm.h"
#include "gem.h"
@@ -936,6 +940,17 @@ int host1x_client_iommu_attach(struct host1x_client *client)
struct iommu_group *group = NULL;
int err;
+#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
+ if (client->dev->archdata.mapping) {
+ struct dma_iommu_mapping *mapping =
+ to_dma_iommu_mapping(client->dev);
+ arm_iommu_detach_device(client->dev);
+ arm_iommu_release_mapping(mapping);
+
+ domain = iommu_get_domain_for_dev(client->dev);
+ }
+#endif
+
/*
* If the host1x client is already attached to an IOMMU domain that is
* not the shared IOMMU domain, don't try to attach it to a different
diff --git a/drivers/gpu/drm/tegra/gr2d.c b/drivers/gpu/drm/tegra/gr2d.c
index de288cba3905..ba3722f1b865 100644
--- a/drivers/gpu/drm/tegra/gr2d.c
+++ b/drivers/gpu/drm/tegra/gr2d.c
@@ -4,9 +4,11 @@
*/
#include <linux/clk.h>
+#include <linux/delay.h>
#include <linux/iommu.h>
#include <linux/module.h>
#include <linux/of_device.h>
+#include <linux/reset.h>
#include "drm.h"
#include "gem.h"
@@ -19,6 +21,7 @@ struct gr2d_soc {
struct gr2d {
struct tegra_drm_client client;
struct host1x_channel *channel;
+ struct reset_control *rst;
struct clk *clk;
const struct gr2d_soc *soc;
@@ -208,6 +211,12 @@ static int gr2d_probe(struct platform_device *pdev)
if (!syncpts)
return -ENOMEM;
+ gr2d->rst = devm_reset_control_get(dev, NULL);
+ if (IS_ERR(gr2d->rst)) {
+ dev_err(dev, "cannot get reset\n");
+ return PTR_ERR(gr2d->rst);
+ }
+
gr2d->clk = devm_clk_get(dev, NULL);
if (IS_ERR(gr2d->clk)) {
dev_err(dev, "cannot get clock\n");
@@ -220,6 +229,14 @@ static int gr2d_probe(struct platform_device *pdev)
return err;
}
+ usleep_range(2000, 4000);
+
+ err = reset_control_deassert(gr2d->rst);
+ if (err < 0) {
+ dev_err(dev, "failed to deassert reset: %d\n", err);
+ goto disable_clk;
+ }
+
INIT_LIST_HEAD(&gr2d->client.base.list);
gr2d->client.base.ops = &gr2d_client_ops;
gr2d->client.base.dev = dev;
@@ -234,8 +251,7 @@ static int gr2d_probe(struct platform_device *pdev)
err = host1x_client_register(&gr2d->client.base);
if (err < 0) {
dev_err(dev, "failed to register host1x client: %d\n", err);
- clk_disable_unprepare(gr2d->clk);
- return err;
+ goto assert_rst;
}
/* initialize address register map */
@@ -245,6 +261,13 @@ static int gr2d_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, gr2d);
return 0;
+
+assert_rst:
+ (void)reset_control_assert(gr2d->rst);
+disable_clk:
+ clk_disable_unprepare(gr2d->clk);
+
+ return err;
}
static int gr2d_remove(struct platform_device *pdev)
@@ -259,6 +282,12 @@ static int gr2d_remove(struct platform_device *pdev)
return err;
}
+ err = reset_control_assert(gr2d->rst);
+ if (err < 0)
+ dev_err(&pdev->dev, "failed to assert reset: %d\n", err);
+
+ usleep_range(2000, 4000);
+
clk_disable_unprepare(gr2d->clk);
return 0;
diff --git a/drivers/gpu/drm/tegra/submit.c b/drivers/gpu/drm/tegra/submit.c
index 776f825df52f..aba9d0c9d903 100644
--- a/drivers/gpu/drm/tegra/submit.c
+++ b/drivers/gpu/drm/tegra/submit.c
@@ -475,8 +475,10 @@ static void release_job(struct host1x_job *job)
kfree(job_data->used_mappings);
kfree(job_data);
- if (pm_runtime_enabled(client->base.dev))
+ if (pm_runtime_enabled(client->base.dev)) {
+ pm_runtime_mark_last_busy(client->base.dev);
pm_runtime_put_autosuspend(client->base.dev);
+ }
}
int tegra_drm_ioctl_channel_submit(struct drm_device *drm, void *data,
diff --git a/drivers/gpu/drm/tegra/vic.c b/drivers/gpu/drm/tegra/vic.c
index c02010ff2b7f..da4af5371991 100644
--- a/drivers/gpu/drm/tegra/vic.c
+++ b/drivers/gpu/drm/tegra/vic.c
@@ -5,6 +5,7 @@
#include <linux/clk.h>
#include <linux/delay.h>
+#include <linux/dma-mapping.h>
#include <linux/host1x.h>
#include <linux/iommu.h>
#include <linux/module.h>
@@ -232,10 +233,8 @@ static int vic_load_firmware(struct vic *vic)
if (!client->group) {
virt = dma_alloc_coherent(vic->dev, size, &iova, GFP_KERNEL);
-
- err = dma_mapping_error(vic->dev, iova);
- if (err < 0)
- return err;
+ if (!virt)
+ return -ENOMEM;
} else {
virt = tegra_drm_alloc(tegra, size, &iova);
}
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 047adc42d9a0..26740c9fb5e1 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -727,6 +727,8 @@ int ttm_mem_evict_first(struct ttm_device *bdev,
ret = ttm_bo_evict(bo, ctx);
if (locked)
ttm_bo_unreserve(bo);
+ else
+ ttm_bo_move_to_lru_tail_unlocked(bo);
ttm_bo_put(bo);
return ret;
diff --git a/drivers/gpu/drm/v3d/v3d_bo.c b/drivers/gpu/drm/v3d/v3d_bo.c
index 6a8731ab9d7d..9a1a92782524 100644
--- a/drivers/gpu/drm/v3d/v3d_bo.c
+++ b/drivers/gpu/drm/v3d/v3d_bo.c
@@ -70,11 +70,11 @@ struct drm_gem_object *v3d_create_object(struct drm_device *dev, size_t size)
struct drm_gem_object *obj;
if (size == 0)
- return NULL;
+ return ERR_PTR(-EINVAL);
bo = kzalloc(sizeof(*bo), GFP_KERNEL);
if (!bo)
- return NULL;
+ return ERR_PTR(-ENOMEM);
obj = &bo->base.base;
obj->funcs = &v3d_gem_funcs;
diff --git a/drivers/gpu/drm/vboxvideo/vbox_main.c b/drivers/gpu/drm/vboxvideo/vbox_main.c
index f28779715ccd..c9e8b3a63c62 100644
--- a/drivers/gpu/drm/vboxvideo/vbox_main.c
+++ b/drivers/gpu/drm/vboxvideo/vbox_main.c
@@ -127,8 +127,8 @@ int vbox_hw_init(struct vbox_private *vbox)
/* Create guest-heap mem-pool use 2^4 = 16 byte chunks */
vbox->guest_pool = devm_gen_pool_create(vbox->ddev.dev, 4, -1,
"vboxvideo-accel");
- if (!vbox->guest_pool)
- return -ENOMEM;
+ if (IS_ERR(vbox->guest_pool))
+ return PTR_ERR(vbox->guest_pool);
ret = gen_pool_add_virt(vbox->guest_pool,
(unsigned long)vbox->guest_heap,
diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c
index 18f5009ce90e..e3ed52d96f42 100644
--- a/drivers/gpu/drm/vc4/vc4_crtc.c
+++ b/drivers/gpu/drm/vc4/vc4_crtc.c
@@ -32,6 +32,7 @@
#include <linux/clk.h>
#include <linux/component.h>
#include <linux/of_device.h>
+#include <linux/pm_runtime.h>
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
@@ -42,6 +43,7 @@
#include <drm/drm_vblank.h>
#include "vc4_drv.h"
+#include "vc4_hdmi.h"
#include "vc4_regs.h"
#define HVS_FIFO_LATENCY_PIX 6
@@ -496,8 +498,10 @@ int vc4_crtc_disable_at_boot(struct drm_crtc *crtc)
enum vc4_encoder_type encoder_type;
const struct vc4_pv_data *pv_data;
struct drm_encoder *encoder;
+ struct vc4_hdmi *vc4_hdmi;
unsigned encoder_sel;
int channel;
+ int ret;
if (!(of_device_is_compatible(vc4_crtc->pdev->dev.of_node,
"brcm,bcm2711-pixelvalve2") ||
@@ -525,7 +529,20 @@ int vc4_crtc_disable_at_boot(struct drm_crtc *crtc)
if (WARN_ON(!encoder))
return 0;
- return vc4_crtc_disable(crtc, encoder, NULL, channel);
+ vc4_hdmi = encoder_to_vc4_hdmi(encoder);
+ ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
+ if (ret)
+ return ret;
+
+ ret = vc4_crtc_disable(crtc, encoder, NULL, channel);
+ if (ret)
+ return ret;
+
+ ret = pm_runtime_put(&vc4_hdmi->pdev->dev);
+ if (ret)
+ return ret;
+
+ return 0;
}
static void vc4_crtc_atomic_disable(struct drm_crtc *crtc,
@@ -691,14 +708,14 @@ static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc)
struct drm_crtc *crtc = &vc4_crtc->base;
struct drm_device *dev = crtc->dev;
struct vc4_dev *vc4 = to_vc4_dev(dev);
- struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc->state);
- u32 chan = vc4_state->assigned_channel;
+ u32 chan = vc4_crtc->current_hvs_channel;
unsigned long flags;
spin_lock_irqsave(&dev->event_lock, flags);
+ spin_lock(&vc4_crtc->irq_lock);
if (vc4_crtc->event &&
- (vc4_state->mm.start == HVS_READ(SCALER_DISPLACTX(chan)) ||
- vc4_state->feed_txp)) {
+ (vc4_crtc->current_dlist == HVS_READ(SCALER_DISPLACTX(chan)) ||
+ vc4_crtc->feeds_txp)) {
drm_crtc_send_vblank_event(crtc, vc4_crtc->event);
vc4_crtc->event = NULL;
drm_crtc_vblank_put(crtc);
@@ -711,6 +728,7 @@ static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc)
*/
vc4_hvs_unmask_underrun(dev, chan);
}
+ spin_unlock(&vc4_crtc->irq_lock);
spin_unlock_irqrestore(&dev->event_lock, flags);
}
@@ -876,7 +894,6 @@ struct drm_crtc_state *vc4_crtc_duplicate_state(struct drm_crtc *crtc)
return NULL;
old_vc4_state = to_vc4_crtc_state(crtc->state);
- vc4_state->feed_txp = old_vc4_state->feed_txp;
vc4_state->margins = old_vc4_state->margins;
vc4_state->assigned_channel = old_vc4_state->assigned_channel;
@@ -937,6 +954,7 @@ static const struct drm_crtc_funcs vc4_crtc_funcs = {
static const struct drm_crtc_helper_funcs vc4_crtc_helper_funcs = {
.mode_valid = vc4_crtc_mode_valid,
.atomic_check = vc4_crtc_atomic_check,
+ .atomic_begin = vc4_hvs_atomic_begin,
.atomic_flush = vc4_hvs_atomic_flush,
.atomic_enable = vc4_crtc_atomic_enable,
.atomic_disable = vc4_crtc_atomic_disable,
@@ -1111,6 +1129,7 @@ int vc4_crtc_init(struct drm_device *drm, struct vc4_crtc *vc4_crtc,
return PTR_ERR(primary_plane);
}
+ spin_lock_init(&vc4_crtc->irq_lock);
drm_crtc_init_with_planes(drm, crtc, primary_plane, NULL,
crtc_funcs, NULL);
drm_crtc_helper_add(crtc, crtc_helper_funcs);
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index ef73e0aaf726..4b550ebd9572 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -495,6 +495,33 @@ struct vc4_crtc {
struct drm_pending_vblank_event *event;
struct debugfs_regset32 regset;
+
+ /**
+ * @feeds_txp: True if the CRTC feeds our writeback controller.
+ */
+ bool feeds_txp;
+
+ /**
+ * @irq_lock: Spinlock protecting the resources shared between
+ * the atomic code and our vblank handler.
+ */
+ spinlock_t irq_lock;
+
+ /**
+ * @current_dlist: Start offset of the display list currently
+ * set in the HVS for that CRTC. Protected by @irq_lock, and
+ * copied in vc4_hvs_update_dlist() for the CRTC interrupt
+ * handler to have access to that value.
+ */
+ unsigned int current_dlist;
+
+ /**
+ * @current_hvs_channel: HVS channel currently assigned to the
+ * CRTC. Protected by @irq_lock, and copied in
+ * vc4_hvs_atomic_begin() for the CRTC interrupt handler to have
+ * access to that value.
+ */
+ unsigned int current_hvs_channel;
};
static inline struct vc4_crtc *
@@ -521,7 +548,6 @@ struct vc4_crtc_state {
struct drm_crtc_state base;
/* Dlist area for this CRTC configuration. */
struct drm_mm_node mm;
- bool feed_txp;
bool txp_armed;
unsigned int assigned_channel;
@@ -908,6 +934,7 @@ extern struct platform_driver vc4_hvs_driver;
void vc4_hvs_stop_channel(struct drm_device *dev, unsigned int output);
int vc4_hvs_get_fifo_from_output(struct drm_device *dev, unsigned int output);
int vc4_hvs_atomic_check(struct drm_crtc *crtc, struct drm_atomic_state *state);
+void vc4_hvs_atomic_begin(struct drm_crtc *crtc, struct drm_atomic_state *state);
void vc4_hvs_atomic_enable(struct drm_crtc *crtc, struct drm_atomic_state *state);
void vc4_hvs_atomic_disable(struct drm_crtc *crtc, struct drm_atomic_state *state);
void vc4_hvs_atomic_flush(struct drm_crtc *crtc, struct drm_atomic_state *state);
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index b284623e2863..8465914892fa 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -94,6 +94,7 @@
# define VC4_HD_M_SW_RST BIT(2)
# define VC4_HD_M_ENABLE BIT(0)
+#define HSM_MIN_CLOCK_FREQ 120000000
#define CEC_CLOCK_FREQ 40000
#define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000)
@@ -161,12 +162,16 @@ static void vc4_hdmi_cec_update_clk_div(struct vc4_hdmi *vc4_hdmi)
static void vc4_hdmi_cec_update_clk_div(struct vc4_hdmi *vc4_hdmi) {}
#endif
+static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder);
+
static enum drm_connector_status
vc4_hdmi_connector_detect(struct drm_connector *connector, bool force)
{
struct vc4_hdmi *vc4_hdmi = connector_to_vc4_hdmi(connector);
bool connected = false;
+ WARN_ON(pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev));
+
if (vc4_hdmi->hpd_gpio &&
gpiod_get_value_cansleep(vc4_hdmi->hpd_gpio)) {
connected = true;
@@ -187,10 +192,13 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force)
}
}
+ vc4_hdmi_enable_scrambling(&vc4_hdmi->encoder.base.base);
+ pm_runtime_put(&vc4_hdmi->pdev->dev);
return connector_status_connected;
}
cec_phys_addr_invalidate(vc4_hdmi->cec_adap);
+ pm_runtime_put(&vc4_hdmi->pdev->dev);
return connector_status_disconnected;
}
@@ -627,7 +635,6 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder,
vc4_hdmi->variant->phy_disable(vc4_hdmi);
clk_disable_unprepare(vc4_hdmi->pixel_bvb_clock);
- clk_disable_unprepare(vc4_hdmi->hsm_clock);
clk_disable_unprepare(vc4_hdmi->pixel_clock);
ret = pm_runtime_put(&vc4_hdmi->pdev->dev);
@@ -893,28 +900,10 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder,
conn_state_to_vc4_hdmi_conn_state(conn_state);
struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
- unsigned long bvb_rate, pixel_rate, hsm_rate;
+ unsigned long pixel_rate = vc4_conn_state->pixel_rate;
+ unsigned long bvb_rate, hsm_rate;
int ret;
- ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
- if (ret < 0) {
- DRM_ERROR("Failed to retain power domain: %d\n", ret);
- return;
- }
-
- pixel_rate = vc4_conn_state->pixel_rate;
- ret = clk_set_rate(vc4_hdmi->pixel_clock, pixel_rate);
- if (ret) {
- DRM_ERROR("Failed to set pixel clock rate: %d\n", ret);
- return;
- }
-
- ret = clk_prepare_enable(vc4_hdmi->pixel_clock);
- if (ret) {
- DRM_ERROR("Failed to turn on pixel clock: %d\n", ret);
- return;
- }
-
/*
* As stated in RPi's vc4 firmware "HDMI state machine (HSM) clock must
* be faster than pixel clock, infinitesimally faster, tested in
@@ -938,13 +927,25 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder,
return;
}
- ret = clk_prepare_enable(vc4_hdmi->hsm_clock);
- if (ret) {
- DRM_ERROR("Failed to turn on HSM clock: %d\n", ret);
- clk_disable_unprepare(vc4_hdmi->pixel_clock);
+ ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
+ if (ret < 0) {
+ DRM_ERROR("Failed to retain power domain: %d\n", ret);
return;
}
+ ret = clk_set_rate(vc4_hdmi->pixel_clock, pixel_rate);
+ if (ret) {
+ DRM_ERROR("Failed to set pixel clock rate: %d\n", ret);
+ goto err_put_runtime_pm;
+ }
+
+ ret = clk_prepare_enable(vc4_hdmi->pixel_clock);
+ if (ret) {
+ DRM_ERROR("Failed to turn on pixel clock: %d\n", ret);
+ goto err_put_runtime_pm;
+ }
+
+
vc4_hdmi_cec_update_clk_div(vc4_hdmi);
if (pixel_rate > 297000000)
@@ -957,17 +958,13 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder,
ret = clk_set_min_rate(vc4_hdmi->pixel_bvb_clock, bvb_rate);
if (ret) {
DRM_ERROR("Failed to set pixel bvb clock rate: %d\n", ret);
- clk_disable_unprepare(vc4_hdmi->hsm_clock);
- clk_disable_unprepare(vc4_hdmi->pixel_clock);
- return;
+ goto err_disable_pixel_clock;
}
ret = clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
if (ret) {
DRM_ERROR("Failed to turn on pixel bvb clock: %d\n", ret);
- clk_disable_unprepare(vc4_hdmi->hsm_clock);
- clk_disable_unprepare(vc4_hdmi->pixel_clock);
- return;
+ goto err_disable_pixel_clock;
}
if (vc4_hdmi->variant->phy_init)
@@ -980,6 +977,15 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder,
if (vc4_hdmi->variant->set_timings)
vc4_hdmi->variant->set_timings(vc4_hdmi, conn_state, mode);
+
+ return;
+
+err_disable_pixel_clock:
+ clk_disable_unprepare(vc4_hdmi->pixel_clock);
+err_put_runtime_pm:
+ pm_runtime_put(&vc4_hdmi->pdev->dev);
+
+ return;
}
static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder,
@@ -1730,8 +1736,14 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable)
struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
/* clock period in microseconds */
const u32 usecs = 1000000 / CEC_CLOCK_FREQ;
- u32 val = HDMI_READ(HDMI_CEC_CNTRL_5);
+ u32 val;
+ int ret;
+
+ ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
+ if (ret)
+ return ret;
+ val = HDMI_READ(HDMI_CEC_CNTRL_5);
val &= ~(VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET |
VC4_HDMI_CEC_CNT_TO_4700_US_MASK |
VC4_HDMI_CEC_CNT_TO_4500_US_MASK);
@@ -1877,6 +1889,8 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi)
if (ret < 0)
goto err_remove_handlers;
+ pm_runtime_put(&vc4_hdmi->pdev->dev);
+
return 0;
err_remove_handlers:
@@ -2099,6 +2113,27 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi)
return 0;
}
+static int __maybe_unused vc4_hdmi_runtime_suspend(struct device *dev)
+{
+ struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
+
+ clk_disable_unprepare(vc4_hdmi->hsm_clock);
+
+ return 0;
+}
+
+static int vc4_hdmi_runtime_resume(struct device *dev)
+{
+ struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
+ int ret;
+
+ ret = clk_prepare_enable(vc4_hdmi->hsm_clock);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
{
const struct vc4_hdmi_variant *variant = of_device_get_match_data(dev);
@@ -2162,6 +2197,31 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
vc4_hdmi->disable_4kp60 = true;
}
+ /*
+ * If we boot without any cable connected to the HDMI connector,
+ * the firmware will skip the HSM initialization and leave it
+ * with a rate of 0, resulting in a bus lockup when we're
+ * accessing the registers even if it's enabled.
+ *
+ * Let's put a sensible default at runtime_resume so that we
+ * don't end up in this situation.
+ */
+ ret = clk_set_min_rate(vc4_hdmi->hsm_clock, HSM_MIN_CLOCK_FREQ);
+ if (ret)
+ goto err_put_ddc;
+
+ /*
+ * We need to have the device powered up at this point to call
+ * our reset hook and for the CEC init.
+ */
+ ret = vc4_hdmi_runtime_resume(dev);
+ if (ret)
+ goto err_put_ddc;
+
+ pm_runtime_get_noresume(dev);
+ pm_runtime_set_active(dev);
+ pm_runtime_enable(dev);
+
if (vc4_hdmi->variant->reset)
vc4_hdmi->variant->reset(vc4_hdmi);
@@ -2173,8 +2233,6 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
}
- pm_runtime_enable(dev);
-
drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS);
drm_encoder_helper_add(encoder, &vc4_hdmi_encoder_helper_funcs);
@@ -2198,6 +2256,8 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
vc4_hdmi_debugfs_regs,
vc4_hdmi);
+ pm_runtime_put_sync(dev);
+
return 0;
err_free_cec:
@@ -2208,6 +2268,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
err_destroy_encoder:
drm_encoder_cleanup(encoder);
+ pm_runtime_put_sync(dev);
pm_runtime_disable(dev);
err_put_ddc:
put_device(&vc4_hdmi->ddc->dev);
@@ -2353,11 +2414,18 @@ static const struct of_device_id vc4_hdmi_dt_match[] = {
{}
};
+static const struct dev_pm_ops vc4_hdmi_pm_ops = {
+ SET_RUNTIME_PM_OPS(vc4_hdmi_runtime_suspend,
+ vc4_hdmi_runtime_resume,
+ NULL)
+};
+
struct platform_driver vc4_hdmi_driver = {
.probe = vc4_hdmi_dev_probe,
.remove = vc4_hdmi_dev_remove,
.driver = {
.name = "vc4_hdmi",
.of_match_table = vc4_hdmi_dt_match,
+ .pm = &vc4_hdmi_pm_ops,
},
};
diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c
index c239045e05d6..604933e20e6a 100644
--- a/drivers/gpu/drm/vc4/vc4_hvs.c
+++ b/drivers/gpu/drm/vc4/vc4_hvs.c
@@ -365,17 +365,16 @@ static void vc4_hvs_update_dlist(struct drm_crtc *crtc)
struct vc4_dev *vc4 = to_vc4_dev(dev);
struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc->state);
+ unsigned long flags;
if (crtc->state->event) {
- unsigned long flags;
-
crtc->state->event->pipe = drm_crtc_index(crtc);
WARN_ON(drm_crtc_vblank_get(crtc) != 0);
spin_lock_irqsave(&dev->event_lock, flags);
- if (!vc4_state->feed_txp || vc4_state->txp_armed) {
+ if (!vc4_crtc->feeds_txp || vc4_state->txp_armed) {
vc4_crtc->event = crtc->state->event;
crtc->state->event = NULL;
}
@@ -388,6 +387,22 @@ static void vc4_hvs_update_dlist(struct drm_crtc *crtc)
HVS_WRITE(SCALER_DISPLISTX(vc4_state->assigned_channel),
vc4_state->mm.start);
}
+
+ spin_lock_irqsave(&vc4_crtc->irq_lock, flags);
+ vc4_crtc->current_dlist = vc4_state->mm.start;
+ spin_unlock_irqrestore(&vc4_crtc->irq_lock, flags);
+}
+
+void vc4_hvs_atomic_begin(struct drm_crtc *crtc,
+ struct drm_atomic_state *state)
+{
+ struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
+ struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc->state);
+ unsigned long flags;
+
+ spin_lock_irqsave(&vc4_crtc->irq_lock, flags);
+ vc4_crtc->current_hvs_channel = vc4_state->assigned_channel;
+ spin_unlock_irqrestore(&vc4_crtc->irq_lock, flags);
}
void vc4_hvs_atomic_enable(struct drm_crtc *crtc,
@@ -395,10 +410,9 @@ void vc4_hvs_atomic_enable(struct drm_crtc *crtc,
{
struct drm_device *dev = crtc->dev;
struct vc4_dev *vc4 = to_vc4_dev(dev);
- struct drm_crtc_state *new_crtc_state = drm_atomic_get_new_crtc_state(state, crtc);
- struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(new_crtc_state);
struct drm_display_mode *mode = &crtc->state->adjusted_mode;
- bool oneshot = vc4_state->feed_txp;
+ struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
+ bool oneshot = vc4_crtc->feeds_txp;
vc4_hvs_update_dlist(crtc);
vc4_hvs_init_channel(vc4, crtc, mode, oneshot);
diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
index b61792d2aa65..6030d4a82155 100644
--- a/drivers/gpu/drm/vc4/vc4_kms.c
+++ b/drivers/gpu/drm/vc4/vc4_kms.c
@@ -233,6 +233,7 @@ static void vc4_hvs_pv_muxing_commit(struct vc4_dev *vc4,
unsigned int i;
for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
+ struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc_state);
u32 dispctrl;
u32 dsp3_mux;
@@ -253,7 +254,7 @@ static void vc4_hvs_pv_muxing_commit(struct vc4_dev *vc4,
* TXP IP, and we need to disable the FIFO2 -> pixelvalve1
* route.
*/
- if (vc4_state->feed_txp)
+ if (vc4_crtc->feeds_txp)
dsp3_mux = VC4_SET_FIELD(3, SCALER_DISPCTRL_DSP3_MUX);
else
dsp3_mux = VC4_SET_FIELD(2, SCALER_DISPCTRL_DSP3_MUX);
diff --git a/drivers/gpu/drm/vc4/vc4_txp.c b/drivers/gpu/drm/vc4/vc4_txp.c
index 2fc7f4b5fa09..9809ca3e2945 100644
--- a/drivers/gpu/drm/vc4/vc4_txp.c
+++ b/drivers/gpu/drm/vc4/vc4_txp.c
@@ -391,7 +391,6 @@ static int vc4_txp_atomic_check(struct drm_crtc *crtc,
{
struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state,
crtc);
- struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc_state);
int ret;
ret = vc4_hvs_atomic_check(crtc, state);
@@ -399,7 +398,6 @@ static int vc4_txp_atomic_check(struct drm_crtc *crtc,
return ret;
crtc_state->no_vblank = true;
- vc4_state->feed_txp = true;
return 0;
}
@@ -437,6 +435,7 @@ static void vc4_txp_atomic_disable(struct drm_crtc *crtc,
static const struct drm_crtc_helper_funcs vc4_txp_crtc_helper_funcs = {
.atomic_check = vc4_txp_atomic_check,
+ .atomic_begin = vc4_hvs_atomic_begin,
.atomic_flush = vc4_hvs_atomic_flush,
.atomic_enable = vc4_txp_atomic_enable,
.atomic_disable = vc4_txp_atomic_disable,
@@ -482,6 +481,7 @@ static int vc4_txp_bind(struct device *dev, struct device *master, void *data)
vc4_crtc->pdev = pdev;
vc4_crtc->data = &vc4_txp_crtc_data;
+ vc4_crtc->feeds_txp = true;
txp->pdev = pdev;
diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c
index a87eafa89e9f..c5e3e5457737 100644
--- a/drivers/gpu/drm/vgem/vgem_drv.c
+++ b/drivers/gpu/drm/vgem/vgem_drv.c
@@ -97,7 +97,7 @@ static struct drm_gem_object *vgem_gem_create_object(struct drm_device *dev, siz
obj = kzalloc(sizeof(*obj), GFP_KERNEL);
if (!obj)
- return NULL;
+ return ERR_PTR(-ENOMEM);
/*
* vgem doesn't have any begin/end cpu access ioctls, therefore must use
diff --git a/drivers/gpu/drm/virtio/virtgpu_ioctl.c b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
index 3607646d3229..c708bab555c6 100644
--- a/drivers/gpu/drm/virtio/virtgpu_ioctl.c
+++ b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
@@ -774,7 +774,7 @@ static int virtio_gpu_context_init_ioctl(struct drm_device *dev,
goto out_unlock;
}
- if ((vgdev->capset_id_mask & (1 << value)) == 0) {
+ if ((vgdev->capset_id_mask & (1ULL << value)) == 0) {
ret = -EINVAL;
goto out_unlock;
}
@@ -819,7 +819,7 @@ static int virtio_gpu_context_init_ioctl(struct drm_device *dev,
if (vfpriv->ring_idx_mask) {
valid_ring_mask = 0;
for (i = 0; i < vfpriv->num_rings; i++)
- valid_ring_mask |= 1 << i;
+ valid_ring_mask |= 1ULL << i;
if (~valid_ring_mask & vfpriv->ring_idx_mask) {
ret = -EINVAL;
diff --git a/drivers/gpu/drm/virtio/virtgpu_object.c b/drivers/gpu/drm/virtio/virtgpu_object.c
index f648b0e24447..4749c9303de0 100644
--- a/drivers/gpu/drm/virtio/virtgpu_object.c
+++ b/drivers/gpu/drm/virtio/virtgpu_object.c
@@ -140,7 +140,7 @@ struct drm_gem_object *virtio_gpu_create_object(struct drm_device *dev,
shmem = kzalloc(sizeof(*shmem), GFP_KERNEL);
if (!shmem)
- return NULL;
+ return ERR_PTR(-ENOMEM);
dshmem = &shmem->base.base;
dshmem->base.funcs = &virtio_gpu_shmem_funcs;
diff --git a/drivers/gpu/drm/vmwgfx/Makefile b/drivers/gpu/drm/vmwgfx/Makefile
index bc323f7d4032..18edc7ca5b45 100644
--- a/drivers/gpu/drm/vmwgfx/Makefile
+++ b/drivers/gpu/drm/vmwgfx/Makefile
@@ -9,9 +9,8 @@ vmwgfx-y := vmwgfx_execbuf.o vmwgfx_gmr.o vmwgfx_kms.o vmwgfx_drv.o \
vmwgfx_cotable.o vmwgfx_so.o vmwgfx_binding.o vmwgfx_msg.o \
vmwgfx_simple_resource.o vmwgfx_va.o vmwgfx_blit.o \
vmwgfx_validation.o vmwgfx_page_dirty.o vmwgfx_streamoutput.o \
- vmwgfx_devcaps.o ttm_object.o ttm_memory.o
+ vmwgfx_devcaps.o ttm_object.o ttm_memory.o vmwgfx_system_manager.o
vmwgfx-$(CONFIG_DRM_FBDEV_EMULATION) += vmwgfx_fb.o
-vmwgfx-$(CONFIG_TRANSPARENT_HUGEPAGE) += vmwgfx_thp.o
obj-$(CONFIG_DRM_VMWGFX) := vmwgfx.o
diff --git a/drivers/gpu/drm/vmwgfx/ttm_memory.c b/drivers/gpu/drm/vmwgfx/ttm_memory.c
index 7f7fe35fc21d..326d2d177c8b 100644
--- a/drivers/gpu/drm/vmwgfx/ttm_memory.c
+++ b/drivers/gpu/drm/vmwgfx/ttm_memory.c
@@ -34,7 +34,6 @@
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/slab.h>
-#include <linux/swap.h>
#include <drm/drm_device.h>
#include <drm/drm_file.h>
@@ -173,69 +172,7 @@ static struct kobj_type ttm_mem_zone_kobj_type = {
.sysfs_ops = &ttm_mem_zone_ops,
.default_attrs = ttm_mem_zone_attrs,
};
-
-static struct attribute ttm_mem_global_lower_mem_limit = {
- .name = "lower_mem_limit",
- .mode = S_IRUGO | S_IWUSR
-};
-
-static ssize_t ttm_mem_global_show(struct kobject *kobj,
- struct attribute *attr,
- char *buffer)
-{
- struct ttm_mem_global *glob =
- container_of(kobj, struct ttm_mem_global, kobj);
- uint64_t val = 0;
-
- spin_lock(&glob->lock);
- val = glob->lower_mem_limit;
- spin_unlock(&glob->lock);
- /* convert from number of pages to KB */
- val <<= (PAGE_SHIFT - 10);
- return snprintf(buffer, PAGE_SIZE, "%llu\n",
- (unsigned long long) val);
-}
-
-static ssize_t ttm_mem_global_store(struct kobject *kobj,
- struct attribute *attr,
- const char *buffer,
- size_t size)
-{
- int chars;
- uint64_t val64;
- unsigned long val;
- struct ttm_mem_global *glob =
- container_of(kobj, struct ttm_mem_global, kobj);
-
- chars = sscanf(buffer, "%lu", &val);
- if (chars == 0)
- return size;
-
- val64 = val;
- /* convert from KB to number of pages */
- val64 >>= (PAGE_SHIFT - 10);
-
- spin_lock(&glob->lock);
- glob->lower_mem_limit = val64;
- spin_unlock(&glob->lock);
-
- return size;
-}
-
-static struct attribute *ttm_mem_global_attrs[] = {
- &ttm_mem_global_lower_mem_limit,
- NULL
-};
-
-static const struct sysfs_ops ttm_mem_global_ops = {
- .show = &ttm_mem_global_show,
- .store = &ttm_mem_global_store,
-};
-
-static struct kobj_type ttm_mem_glob_kobj_type = {
- .sysfs_ops = &ttm_mem_global_ops,
- .default_attrs = ttm_mem_global_attrs,
-};
+static struct kobj_type ttm_mem_glob_kobj_type = {0};
static bool ttm_zones_above_swap_target(struct ttm_mem_global *glob,
bool from_wq, uint64_t extra)
@@ -435,11 +372,6 @@ int ttm_mem_global_init(struct ttm_mem_global *glob, struct device *dev)
si_meminfo(&si);
- spin_lock(&glob->lock);
- /* set it as 0 by default to keep original behavior of OOM */
- glob->lower_mem_limit = 0;
- spin_unlock(&glob->lock);
-
ret = ttm_mem_init_kernel_zone(glob, &si);
if (unlikely(ret != 0))
goto out_no_zone;
@@ -526,35 +458,6 @@ void ttm_mem_global_free(struct ttm_mem_global *glob,
}
EXPORT_SYMBOL(ttm_mem_global_free);
-/*
- * check if the available mem is under lower memory limit
- *
- * a. if no swap disk at all or free swap space is under swap_mem_limit
- * but available system mem is bigger than sys_mem_limit, allow TTM
- * allocation;
- *
- * b. if the available system mem is less than sys_mem_limit but free
- * swap disk is bigger than swap_mem_limit, allow TTM allocation.
- */
-bool
-ttm_check_under_lowerlimit(struct ttm_mem_global *glob,
- uint64_t num_pages,
- struct ttm_operation_ctx *ctx)
-{
- int64_t available;
-
- /* We allow over commit during suspend */
- if (ctx->force_alloc)
- return false;
-
- available = get_nr_swap_pages() + si_mem_available();
- available -= num_pages;
- if (available < glob->lower_mem_limit)
- return true;
-
- return false;
-}
-
static int ttm_mem_global_reserve(struct ttm_mem_global *glob,
struct ttm_mem_zone *single_zone,
uint64_t amount, bool reserve)
diff --git a/drivers/gpu/drm/vmwgfx/ttm_memory.h b/drivers/gpu/drm/vmwgfx/ttm_memory.h
index c50dba774485..7b0d617ebcb1 100644
--- a/drivers/gpu/drm/vmwgfx/ttm_memory.h
+++ b/drivers/gpu/drm/vmwgfx/ttm_memory.h
@@ -50,8 +50,6 @@
* @work: The workqueue callback for the shrink queue.
* @lock: Lock to protect the @shrink - and the memory accounting members,
* that is, essentially the whole structure with some exceptions.
- * @lower_mem_limit: include lower limit of swap space and lower limit of
- * system memory.
* @zones: Array of pointers to accounting zones.
* @num_zones: Number of populated entries in the @zones array.
* @zone_kernel: Pointer to the kernel zone.
@@ -69,7 +67,6 @@ extern struct ttm_mem_global {
struct workqueue_struct *swap_queue;
struct work_struct work;
spinlock_t lock;
- uint64_t lower_mem_limit;
struct ttm_mem_zone *zones[TTM_MEM_MAX_ZONES];
unsigned int num_zones;
struct ttm_mem_zone *zone_kernel;
@@ -91,6 +88,5 @@ int ttm_mem_global_alloc_page(struct ttm_mem_global *glob,
void ttm_mem_global_free_page(struct ttm_mem_global *glob,
struct page *page, uint64_t size);
size_t ttm_round_pot(size_t size);
-bool ttm_check_under_lowerlimit(struct ttm_mem_global *glob, uint64_t num_pages,
- struct ttm_operation_ctx *ctx);
+
#endif
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
index 67db472d3493..a3bfbb6c3e14 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
@@ -145,6 +145,13 @@ struct vmw_fifo_state *vmw_fifo_create(struct vmw_private *dev_priv)
(unsigned int) max,
(unsigned int) min,
(unsigned int) fifo->capabilities);
+
+ if (unlikely(min >= max)) {
+ drm_warn(&dev_priv->drm,
+ "FIFO memory is not usable. Driver failed to initialize.");
+ return ERR_PTR(-ENXIO);
+ }
+
return fifo;
}
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index bfd71c86faa5..ab246cff209a 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -707,23 +707,15 @@ static int vmw_dma_masks(struct vmw_private *dev_priv)
static int vmw_vram_manager_init(struct vmw_private *dev_priv)
{
int ret;
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- ret = vmw_thp_init(dev_priv);
-#else
ret = ttm_range_man_init(&dev_priv->bdev, TTM_PL_VRAM, false,
dev_priv->vram_size >> PAGE_SHIFT);
-#endif
ttm_resource_manager_set_used(ttm_manager_type(&dev_priv->bdev, TTM_PL_VRAM), false);
return ret;
}
static void vmw_vram_manager_fini(struct vmw_private *dev_priv)
{
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- vmw_thp_fini(dev_priv);
-#else
ttm_range_man_fini(&dev_priv->bdev, TTM_PL_VRAM);
-#endif
}
static int vmw_setup_pci_resources(struct vmw_private *dev,
@@ -1071,6 +1063,12 @@ static int vmw_driver_load(struct vmw_private *dev_priv, u32 pci_id)
"3D will be disabled.\n");
dev_priv->has_mob = false;
}
+ if (vmw_sys_man_init(dev_priv) != 0) {
+ drm_info(&dev_priv->drm,
+ "No MOB page table memory available. "
+ "3D will be disabled.\n");
+ dev_priv->has_mob = false;
+ }
}
if (dev_priv->has_mob && (dev_priv->capabilities & SVGA_CAP_DX)) {
@@ -1121,8 +1119,10 @@ static int vmw_driver_load(struct vmw_private *dev_priv, u32 pci_id)
vmw_overlay_close(dev_priv);
vmw_kms_close(dev_priv);
out_no_kms:
- if (dev_priv->has_mob)
+ if (dev_priv->has_mob) {
vmw_gmrid_man_fini(dev_priv, VMW_PL_MOB);
+ vmw_sys_man_fini(dev_priv);
+ }
if (dev_priv->has_gmr)
vmw_gmrid_man_fini(dev_priv, VMW_PL_GMR);
vmw_devcaps_destroy(dev_priv);
@@ -1172,8 +1172,10 @@ static void vmw_driver_unload(struct drm_device *dev)
vmw_gmrid_man_fini(dev_priv, VMW_PL_GMR);
vmw_release_device_early(dev_priv);
- if (dev_priv->has_mob)
+ if (dev_priv->has_mob) {
vmw_gmrid_man_fini(dev_priv, VMW_PL_MOB);
+ vmw_sys_man_fini(dev_priv);
+ }
vmw_devcaps_destroy(dev_priv);
vmw_vram_manager_fini(dev_priv);
ttm_device_fini(&dev_priv->bdev);
@@ -1617,34 +1619,40 @@ static int vmw_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &driver);
if (ret)
- return ret;
+ goto out_error;
ret = pcim_enable_device(pdev);
if (ret)
- return ret;
+ goto out_error;
vmw = devm_drm_dev_alloc(&pdev->dev, &driver,
struct vmw_private, drm);
- if (IS_ERR(vmw))
- return PTR_ERR(vmw);
+ if (IS_ERR(vmw)) {
+ ret = PTR_ERR(vmw);
+ goto out_error;
+ }
pci_set_drvdata(pdev, &vmw->drm);
ret = ttm_mem_global_init(&ttm_mem_glob, &pdev->dev);
if (ret)
- return ret;
+ goto out_error;
ret = vmw_driver_load(vmw, ent->device);
if (ret)
- return ret;
+ goto out_release;
ret = drm_dev_register(&vmw->drm, 0);
- if (ret) {
- vmw_driver_unload(&vmw->drm);
- return ret;
- }
+ if (ret)
+ goto out_unload;
return 0;
+out_unload:
+ vmw_driver_unload(&vmw->drm);
+out_release:
+ ttm_mem_global_release(&ttm_mem_glob);
+out_error:
+ return ret;
}
static int __init vmwgfx_init(void)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
index 858aff99a3fe..2a7cec4cb8a8 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
@@ -59,11 +59,8 @@
#define VMWGFX_DRIVER_MINOR 19
#define VMWGFX_DRIVER_PATCHLEVEL 0
#define VMWGFX_FIFO_STATIC_SIZE (1024*1024)
-#define VMWGFX_MAX_RELOCATIONS 2048
-#define VMWGFX_MAX_VALIDATIONS 2048
#define VMWGFX_MAX_DISPLAYS 16
#define VMWGFX_CMD_BOUNCE_INIT_SIZE 32768
-#define VMWGFX_ENABLE_SCREEN_TARGET_OTABLE 1
#define VMWGFX_PCI_ID_SVGA2 0x0405
#define VMWGFX_PCI_ID_SVGA3 0x0406
@@ -82,8 +79,9 @@
VMWGFX_NUM_GB_SURFACE +\
VMWGFX_NUM_GB_SCREEN_TARGET)
-#define VMW_PL_GMR (TTM_PL_PRIV + 0)
-#define VMW_PL_MOB (TTM_PL_PRIV + 1)
+#define VMW_PL_GMR (TTM_PL_PRIV + 0)
+#define VMW_PL_MOB (TTM_PL_PRIV + 1)
+#define VMW_PL_SYSTEM (TTM_PL_PRIV + 2)
#define VMW_RES_CONTEXT ttm_driver_type0
#define VMW_RES_SURFACE ttm_driver_type1
@@ -1039,7 +1037,6 @@ extern struct ttm_placement vmw_vram_placement;
extern struct ttm_placement vmw_vram_sys_placement;
extern struct ttm_placement vmw_vram_gmr_placement;
extern struct ttm_placement vmw_sys_placement;
-extern struct ttm_placement vmw_evictable_placement;
extern struct ttm_placement vmw_srf_placement;
extern struct ttm_placement vmw_mob_placement;
extern struct ttm_placement vmw_nonfixed_placement;
@@ -1251,6 +1248,12 @@ int vmw_overlay_num_free_overlays(struct vmw_private *dev_priv);
int vmw_gmrid_man_init(struct vmw_private *dev_priv, int type);
void vmw_gmrid_man_fini(struct vmw_private *dev_priv, int type);
+/**
+ * System memory manager
+ */
+int vmw_sys_man_init(struct vmw_private *dev_priv);
+void vmw_sys_man_fini(struct vmw_private *dev_priv);
+
/**
* Prime - vmwgfx_prime.c
*/
@@ -1551,11 +1554,6 @@ void vmw_bo_dirty_unmap(struct vmw_buffer_object *vbo,
vm_fault_t vmw_bo_vm_fault(struct vm_fault *vmf);
vm_fault_t vmw_bo_vm_mkwrite(struct vm_fault *vmf);
-/* Transparent hugepage support - vmwgfx_thp.c */
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-extern int vmw_thp_init(struct vmw_private *dev_priv);
-void vmw_thp_fini(struct vmw_private *dev_priv);
-#endif
/**
* VMW_DEBUG_KMS - Debug output for kernel mode-setting
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c b/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
index f9394207dd3c..632e58751972 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-2.0 OR MIT
/**************************************************************************
*
- * Copyright 2012-2015 VMware, Inc., Palo Alto, CA., USA
+ * Copyright 2012-2021 VMware, Inc., Palo Alto, CA., USA
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
@@ -29,12 +29,6 @@
#include "vmwgfx_drv.h"
-/*
- * If we set up the screen target otable, screen objects stop working.
- */
-
-#define VMW_OTABLE_SETUP_SUB ((VMWGFX_ENABLE_SCREEN_TARGET_OTABLE ? 0 : 1))
-
#ifdef CONFIG_64BIT
#define VMW_PPN_SIZE 8
#define VMW_MOBFMT_PTDEPTH_0 SVGA3D_MOBFMT_PT64_0
@@ -75,7 +69,7 @@ static const struct vmw_otable pre_dx_tables[] = {
{VMWGFX_NUM_GB_CONTEXT * sizeof(SVGAOTableContextEntry), NULL, true},
{VMWGFX_NUM_GB_SHADER * sizeof(SVGAOTableShaderEntry), NULL, true},
{VMWGFX_NUM_GB_SCREEN_TARGET * sizeof(SVGAOTableScreenTargetEntry),
- NULL, VMWGFX_ENABLE_SCREEN_TARGET_OTABLE}
+ NULL, true}
};
static const struct vmw_otable dx_tables[] = {
@@ -84,7 +78,7 @@ static const struct vmw_otable dx_tables[] = {
{VMWGFX_NUM_GB_CONTEXT * sizeof(SVGAOTableContextEntry), NULL, true},
{VMWGFX_NUM_GB_SHADER * sizeof(SVGAOTableShaderEntry), NULL, true},
{VMWGFX_NUM_GB_SCREEN_TARGET * sizeof(SVGAOTableScreenTargetEntry),
- NULL, VMWGFX_ENABLE_SCREEN_TARGET_OTABLE},
+ NULL, true},
{VMWGFX_NUM_DXCONTEXT * sizeof(SVGAOTableDXContextEntry), NULL, true},
};
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
index d85310b2608d..f5e90d0e2d0f 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
@@ -1872,8 +1872,8 @@ int vmw_kms_stdu_init_display(struct vmw_private *dev_priv)
int i, ret;
- /* Do nothing if Screen Target support is turned off */
- if (!VMWGFX_ENABLE_SCREEN_TARGET_OTABLE || !dev_priv->has_mob)
+ /* Do nothing if there's no support for MOBs */
+ if (!dev_priv->has_mob)
return -ENOSYS;
if (!(dev_priv->capabilities & SVGA_CAP_GBOBJECTS))
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c b/drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c
new file mode 100644
index 000000000000..b0005b03a617
--- /dev/null
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c
@@ -0,0 +1,90 @@
+/* SPDX-License-Identifier: GPL-2.0 OR MIT */
+/*
+ * Copyright 2021 VMware, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ */
+
+#include "vmwgfx_drv.h"
+
+#include <drm/ttm/ttm_bo_driver.h>
+#include <drm/ttm/ttm_device.h>
+#include <drm/ttm/ttm_placement.h>
+#include <drm/ttm/ttm_resource.h>
+#include <linux/slab.h>
+
+
+static int vmw_sys_man_alloc(struct ttm_resource_manager *man,
+ struct ttm_buffer_object *bo,
+ const struct ttm_place *place,
+ struct ttm_resource **res)
+{
+ *res = kzalloc(sizeof(**res), GFP_KERNEL);
+ if (!*res)
+ return -ENOMEM;
+
+ ttm_resource_init(bo, place, *res);
+ return 0;
+}
+
+static void vmw_sys_man_free(struct ttm_resource_manager *man,
+ struct ttm_resource *res)
+{
+ kfree(res);
+}
+
+static const struct ttm_resource_manager_func vmw_sys_manager_func = {
+ .alloc = vmw_sys_man_alloc,
+ .free = vmw_sys_man_free,
+};
+
+int vmw_sys_man_init(struct vmw_private *dev_priv)
+{
+ struct ttm_device *bdev = &dev_priv->bdev;
+ struct ttm_resource_manager *man =
+ kzalloc(sizeof(*man), GFP_KERNEL);
+
+ if (!man)
+ return -ENOMEM;
+
+ man->use_tt = true;
+ man->func = &vmw_sys_manager_func;
+
+ ttm_resource_manager_init(man, 0);
+ ttm_set_driver_manager(bdev, VMW_PL_SYSTEM, man);
+ ttm_resource_manager_set_used(man, true);
+ return 0;
+}
+
+void vmw_sys_man_fini(struct vmw_private *dev_priv)
+{
+ struct ttm_resource_manager *man = ttm_manager_type(&dev_priv->bdev,
+ VMW_PL_SYSTEM);
+
+ ttm_resource_manager_evict_all(&dev_priv->bdev, man);
+
+ ttm_resource_manager_set_used(man, false);
+ ttm_resource_manager_cleanup(man);
+
+ ttm_set_driver_manager(&dev_priv->bdev, VMW_PL_SYSTEM, NULL);
+ kfree(man);
+}
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_thp.c b/drivers/gpu/drm/vmwgfx/vmwgfx_thp.c
deleted file mode 100644
index 2a3d3468e4e0..000000000000
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_thp.c
+++ /dev/null
@@ -1,184 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0 OR MIT
-/*
- * Huge page-table-entry support for IO memory.
- *
- * Copyright (C) 2007-2019 Vmware, Inc. All rights reservedd.
- */
-#include "vmwgfx_drv.h"
-#include <drm/ttm/ttm_bo_driver.h>
-#include <drm/ttm/ttm_placement.h>
-#include <drm/ttm/ttm_range_manager.h>
-
-/**
- * struct vmw_thp_manager - Range manager implementing huge page alignment
- *
- * @manager: TTM resource manager.
- * @mm: The underlying range manager. Protected by @lock.
- * @lock: Manager lock.
- */
-struct vmw_thp_manager {
- struct ttm_resource_manager manager;
- struct drm_mm mm;
- spinlock_t lock;
-};
-
-static struct vmw_thp_manager *to_thp_manager(struct ttm_resource_manager *man)
-{
- return container_of(man, struct vmw_thp_manager, manager);
-}
-
-static const struct ttm_resource_manager_func vmw_thp_func;
-
-static int vmw_thp_insert_aligned(struct ttm_buffer_object *bo,
- struct drm_mm *mm, struct drm_mm_node *node,
- unsigned long align_pages,
- const struct ttm_place *place,
- struct ttm_resource *mem,
- unsigned long lpfn,
- enum drm_mm_insert_mode mode)
-{
- if (align_pages >= bo->page_alignment &&
- (!bo->page_alignment || align_pages % bo->page_alignment == 0)) {
- return drm_mm_insert_node_in_range(mm, node,
- mem->num_pages,
- align_pages, 0,
- place->fpfn, lpfn, mode);
- }
-
- return -ENOSPC;
-}
-
-static int vmw_thp_get_node(struct ttm_resource_manager *man,
- struct ttm_buffer_object *bo,
- const struct ttm_place *place,
- struct ttm_resource **res)
-{
- struct vmw_thp_manager *rman = to_thp_manager(man);
- struct drm_mm *mm = &rman->mm;
- struct ttm_range_mgr_node *node;
- unsigned long align_pages;
- unsigned long lpfn;
- enum drm_mm_insert_mode mode = DRM_MM_INSERT_BEST;
- int ret;
-
- node = kzalloc(struct_size(node, mm_nodes, 1), GFP_KERNEL);
- if (!node)
- return -ENOMEM;
-
- ttm_resource_init(bo, place, &node->base);
-
- lpfn = place->lpfn;
- if (!lpfn)
- lpfn = man->size;
-
- mode = DRM_MM_INSERT_BEST;
- if (place->flags & TTM_PL_FLAG_TOPDOWN)
- mode = DRM_MM_INSERT_HIGH;
-
- spin_lock(&rman->lock);
- if (IS_ENABLED(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD)) {
- align_pages = (HPAGE_PUD_SIZE >> PAGE_SHIFT);
- if (node->base.num_pages >= align_pages) {
- ret = vmw_thp_insert_aligned(bo, mm, &node->mm_nodes[0],
- align_pages, place,
- &node->base, lpfn, mode);
- if (!ret)
- goto found_unlock;
- }
- }
-
- align_pages = (HPAGE_PMD_SIZE >> PAGE_SHIFT);
- if (node->base.num_pages >= align_pages) {
- ret = vmw_thp_insert_aligned(bo, mm, &node->mm_nodes[0],
- align_pages, place, &node->base,
- lpfn, mode);
- if (!ret)
- goto found_unlock;
- }
-
- ret = drm_mm_insert_node_in_range(mm, &node->mm_nodes[0],
- node->base.num_pages,
- bo->page_alignment, 0,
- place->fpfn, lpfn, mode);
-found_unlock:
- spin_unlock(&rman->lock);
-
- if (unlikely(ret)) {
- kfree(node);
- } else {
- node->base.start = node->mm_nodes[0].start;
- *res = &node->base;
- }
-
- return ret;
-}
-
-static void vmw_thp_put_node(struct ttm_resource_manager *man,
- struct ttm_resource *res)
-{
- struct ttm_range_mgr_node *node = to_ttm_range_mgr_node(res);
- struct vmw_thp_manager *rman = to_thp_manager(man);
-
- spin_lock(&rman->lock);
- drm_mm_remove_node(&node->mm_nodes[0]);
- spin_unlock(&rman->lock);
-
- kfree(node);
-}
-
-int vmw_thp_init(struct vmw_private *dev_priv)
-{
- struct vmw_thp_manager *rman;
-
- rman = kzalloc(sizeof(*rman), GFP_KERNEL);
- if (!rman)
- return -ENOMEM;
-
- ttm_resource_manager_init(&rman->manager,
- dev_priv->vram_size >> PAGE_SHIFT);
-
- rman->manager.func = &vmw_thp_func;
- drm_mm_init(&rman->mm, 0, rman->manager.size);
- spin_lock_init(&rman->lock);
-
- ttm_set_driver_manager(&dev_priv->bdev, TTM_PL_VRAM, &rman->manager);
- ttm_resource_manager_set_used(&rman->manager, true);
- return 0;
-}
-
-void vmw_thp_fini(struct vmw_private *dev_priv)
-{
- struct ttm_resource_manager *man = ttm_manager_type(&dev_priv->bdev, TTM_PL_VRAM);
- struct vmw_thp_manager *rman = to_thp_manager(man);
- struct drm_mm *mm = &rman->mm;
- int ret;
-
- ttm_resource_manager_set_used(man, false);
-
- ret = ttm_resource_manager_evict_all(&dev_priv->bdev, man);
- if (ret)
- return;
- spin_lock(&rman->lock);
- drm_mm_clean(mm);
- drm_mm_takedown(mm);
- spin_unlock(&rman->lock);
- ttm_resource_manager_cleanup(man);
- ttm_set_driver_manager(&dev_priv->bdev, TTM_PL_VRAM, NULL);
- kfree(rman);
-}
-
-static void vmw_thp_debug(struct ttm_resource_manager *man,
- struct drm_printer *printer)
-{
- struct vmw_thp_manager *rman = to_thp_manager(man);
-
- spin_lock(&rman->lock);
- drm_mm_print(&rman->mm, printer);
- spin_unlock(&rman->lock);
-}
-
-static const struct ttm_resource_manager_func vmw_thp_func = {
- .alloc = vmw_thp_get_node,
- .free = vmw_thp_put_node,
- .debug = vmw_thp_debug
-};
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
index e899a936a42a..b15228e7dbeb 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
@@ -92,6 +92,13 @@ static const struct ttm_place gmr_vram_placement_flags[] = {
}
};
+static const struct ttm_place vmw_sys_placement_flags = {
+ .fpfn = 0,
+ .lpfn = 0,
+ .mem_type = VMW_PL_SYSTEM,
+ .flags = 0
+};
+
struct ttm_placement vmw_vram_gmr_placement = {
.num_placement = 2,
.placement = vram_gmr_placement_flags,
@@ -113,28 +120,11 @@ struct ttm_placement vmw_sys_placement = {
.busy_placement = &sys_placement_flags
};
-static const struct ttm_place evictable_placement_flags[] = {
- {
- .fpfn = 0,
- .lpfn = 0,
- .mem_type = TTM_PL_SYSTEM,
- .flags = 0
- }, {
- .fpfn = 0,
- .lpfn = 0,
- .mem_type = TTM_PL_VRAM,
- .flags = 0
- }, {
- .fpfn = 0,
- .lpfn = 0,
- .mem_type = VMW_PL_GMR,
- .flags = 0
- }, {
- .fpfn = 0,
- .lpfn = 0,
- .mem_type = VMW_PL_MOB,
- .flags = 0
- }
+struct ttm_placement vmw_pt_sys_placement = {
+ .num_placement = 1,
+ .placement = &vmw_sys_placement_flags,
+ .num_busy_placement = 1,
+ .busy_placement = &vmw_sys_placement_flags
};
static const struct ttm_place nonfixed_placement_flags[] = {
@@ -156,13 +146,6 @@ static const struct ttm_place nonfixed_placement_flags[] = {
}
};
-struct ttm_placement vmw_evictable_placement = {
- .num_placement = 4,
- .placement = evictable_placement_flags,
- .num_busy_placement = 1,
- .busy_placement = &sys_placement_flags
-};
-
struct ttm_placement vmw_srf_placement = {
.num_placement = 1,
.num_busy_placement = 2,
@@ -484,6 +467,9 @@ static int vmw_ttm_bind(struct ttm_device *bdev,
&vmw_be->vsgt, ttm->num_pages,
vmw_be->gmr_id);
break;
+ case VMW_PL_SYSTEM:
+ /* Nothing to be done for a system bind */
+ break;
default:
BUG();
}
@@ -507,6 +493,8 @@ static void vmw_ttm_unbind(struct ttm_device *bdev,
case VMW_PL_MOB:
vmw_mob_unbind(vmw_be->dev_priv, vmw_be->mob);
break;
+ case VMW_PL_SYSTEM:
+ break;
default:
BUG();
}
@@ -624,6 +612,7 @@ static int vmw_ttm_io_mem_reserve(struct ttm_device *bdev, struct ttm_resource *
switch (mem->mem_type) {
case TTM_PL_SYSTEM:
+ case VMW_PL_SYSTEM:
case VMW_PL_GMR:
case VMW_PL_MOB:
return 0;
@@ -670,6 +659,11 @@ static void vmw_swap_notify(struct ttm_buffer_object *bo)
(void) ttm_bo_wait(bo, false, false);
}
+static bool vmw_memtype_is_system(uint32_t mem_type)
+{
+ return mem_type == TTM_PL_SYSTEM || mem_type == VMW_PL_SYSTEM;
+}
+
static int vmw_move(struct ttm_buffer_object *bo,
bool evict,
struct ttm_operation_ctx *ctx,
@@ -680,7 +674,7 @@ static int vmw_move(struct ttm_buffer_object *bo,
struct ttm_resource_manager *new_man = ttm_manager_type(bo->bdev, new_mem->mem_type);
int ret;
- if (new_man->use_tt && new_mem->mem_type != TTM_PL_SYSTEM) {
+ if (new_man->use_tt && !vmw_memtype_is_system(new_mem->mem_type)) {
ret = vmw_ttm_bind(bo->bdev, bo->ttm, new_mem);
if (ret)
return ret;
@@ -689,7 +683,7 @@ static int vmw_move(struct ttm_buffer_object *bo,
vmw_move_notify(bo, bo->resource, new_mem);
if (old_man->use_tt && new_man->use_tt) {
- if (bo->resource->mem_type == TTM_PL_SYSTEM) {
+ if (vmw_memtype_is_system(bo->resource->mem_type)) {
ttm_bo_move_null(bo, new_mem);
return 0;
}
@@ -736,7 +730,7 @@ int vmw_bo_create_and_populate(struct vmw_private *dev_priv,
int ret;
ret = vmw_bo_create_kernel(dev_priv, bo_size,
- &vmw_sys_placement,
+ &vmw_pt_sys_placement,
&bo);
if (unlikely(ret != 0))
return ret;
diff --git a/drivers/gpu/host1x/Kconfig b/drivers/gpu/host1x/Kconfig
index 6dab94adf25e..6815b4db17c1 100644
--- a/drivers/gpu/host1x/Kconfig
+++ b/drivers/gpu/host1x/Kconfig
@@ -2,6 +2,7 @@
config TEGRA_HOST1X
tristate "NVIDIA Tegra host1x driver"
depends on ARCH_TEGRA || (ARM && COMPILE_TEST)
+ select DMA_SHARED_BUFFER
select IOMMU_IOVA
help
Driver for the NVIDIA Tegra host1x hardware.
diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c
index fbb6447b8659..3872e4cd2698 100644
--- a/drivers/gpu/host1x/dev.c
+++ b/drivers/gpu/host1x/dev.c
@@ -18,6 +18,10 @@
#include <trace/events/host1x.h>
#undef CREATE_TRACE_POINTS
+#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
+#include <asm/dma-iommu.h>
+#endif
+
#include "bus.h"
#include "channel.h"
#include "debug.h"
@@ -238,6 +242,17 @@ static struct iommu_domain *host1x_iommu_attach(struct host1x *host)
struct iommu_domain *domain = iommu_get_domain_for_dev(host->dev);
int err;
+#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
+ if (host->dev->archdata.mapping) {
+ struct dma_iommu_mapping *mapping =
+ to_dma_iommu_mapping(host->dev);
+ arm_iommu_detach_device(host->dev);
+ arm_iommu_release_mapping(mapping);
+
+ domain = iommu_get_domain_for_dev(host->dev);
+ }
+#endif
+
/*
* We may not always want to enable IOMMU support (for example if the
* host1x firewall is already enabled and we don't support addressing
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
index 2c9c5faa74a9..a4ca5ed00e5f 100644
--- a/drivers/hid/hid-apple.c
+++ b/drivers/hid/hid-apple.c
@@ -428,7 +428,7 @@ static int apple_input_configured(struct hid_device *hdev,
if ((asc->quirks & APPLE_HAS_FN) && !asc->fn_found) {
hid_info(hdev, "Fn key not found (Apple Wireless Keyboard clone?), disabling Fn key handling\n");
- asc->quirks = 0;
+ asc->quirks &= ~APPLE_HAS_FN;
}
return 0;
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 19da07777d62..a5a5a64c7abc 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -398,6 +398,7 @@
#define USB_DEVICE_ID_HP_X2 0x074d
#define USB_DEVICE_ID_HP_X2_10_COVER 0x0755
#define I2C_DEVICE_ID_HP_ENVY_X360_15 0x2d05
+#define I2C_DEVICE_ID_HP_ENVY_X360_15T_DR100 0x29CF
#define I2C_DEVICE_ID_HP_SPECTRE_X360_15 0x2817
#define USB_DEVICE_ID_ASUS_UX550VE_TOUCHSCREEN 0x2544
#define USB_DEVICE_ID_ASUS_UX550_TOUCHSCREEN 0x2706
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 03f994541981..87fee137ff65 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -329,6 +329,8 @@ static const struct hid_device_id hid_battery_quirks[] = {
HID_BATTERY_QUIRK_IGNORE },
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_ENVY_X360_15),
HID_BATTERY_QUIRK_IGNORE },
+ { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_ENVY_X360_15T_DR100),
+ HID_BATTERY_QUIRK_IGNORE },
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_SPECTRE_X360_15),
HID_BATTERY_QUIRK_IGNORE },
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_SURFACE_GO_TOUCHSCREEN),
@@ -1333,6 +1335,12 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct
input = field->hidinput->input;
+ if (usage->type == EV_ABS &&
+ (((*quirks & HID_QUIRK_X_INVERT) && usage->code == ABS_X) ||
+ ((*quirks & HID_QUIRK_Y_INVERT) && usage->code == ABS_Y))) {
+ value = field->logical_maximum - value;
+ }
+
if (usage->hat_min < usage->hat_max || usage->hat_dir) {
int hat_dir = usage->hat_dir;
if (!hat_dir)
diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
index d7687ce70614..b8b08f0a8c54 100644
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -57,6 +57,8 @@ MODULE_PARM_DESC(report_undeciphered, "Report undeciphered multi-touch state fie
#define MOUSE_REPORT_ID 0x29
#define MOUSE2_REPORT_ID 0x12
#define DOUBLE_REPORT_ID 0xf7
+#define USB_BATTERY_TIMEOUT_MS 60000
+
/* These definitions are not precise, but they're close enough. (Bits
* 0x03 seem to indicate the aspect ratio of the touch, bits 0x70 seem
* to be some kind of bit mask -- 0x20 may be a near-field reading,
@@ -140,6 +142,7 @@ struct magicmouse_sc {
struct hid_device *hdev;
struct delayed_work work;
+ struct timer_list battery_timer;
};
static int magicmouse_firm_touch(struct magicmouse_sc *msc)
@@ -738,6 +741,44 @@ static void magicmouse_enable_mt_work(struct work_struct *work)
hid_err(msc->hdev, "unable to request touch data (%d)\n", ret);
}
+static int magicmouse_fetch_battery(struct hid_device *hdev)
+{
+#ifdef CONFIG_HID_BATTERY_STRENGTH
+ struct hid_report_enum *report_enum;
+ struct hid_report *report;
+
+ if (!hdev->battery || hdev->vendor != USB_VENDOR_ID_APPLE ||
+ (hdev->product != USB_DEVICE_ID_APPLE_MAGICMOUSE2 &&
+ hdev->product != USB_DEVICE_ID_APPLE_MAGICTRACKPAD2))
+ return -1;
+
+ report_enum = &hdev->report_enum[hdev->battery_report_type];
+ report = report_enum->report_id_hash[hdev->battery_report_id];
+
+ if (!report || report->maxfield < 1)
+ return -1;
+
+ if (hdev->battery_capacity == hdev->battery_max)
+ return -1;
+
+ hid_hw_request(hdev, report, HID_REQ_GET_REPORT);
+ return 0;
+#else
+ return -1;
+#endif
+}
+
+static void magicmouse_battery_timer_tick(struct timer_list *t)
+{
+ struct magicmouse_sc *msc = from_timer(msc, t, battery_timer);
+ struct hid_device *hdev = msc->hdev;
+
+ if (magicmouse_fetch_battery(hdev) == 0) {
+ mod_timer(&msc->battery_timer,
+ jiffies + msecs_to_jiffies(USB_BATTERY_TIMEOUT_MS));
+ }
+}
+
static int magicmouse_probe(struct hid_device *hdev,
const struct hid_device_id *id)
{
@@ -745,11 +786,6 @@ static int magicmouse_probe(struct hid_device *hdev,
struct hid_report *report;
int ret;
- if (id->vendor == USB_VENDOR_ID_APPLE &&
- id->product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 &&
- hdev->type != HID_TYPE_USBMOUSE)
- return -ENODEV;
-
msc = devm_kzalloc(&hdev->dev, sizeof(*msc), GFP_KERNEL);
if (msc == NULL) {
hid_err(hdev, "can't alloc magicmouse descriptor\n");
@@ -775,6 +811,16 @@ static int magicmouse_probe(struct hid_device *hdev,
return ret;
}
+ timer_setup(&msc->battery_timer, magicmouse_battery_timer_tick, 0);
+ mod_timer(&msc->battery_timer,
+ jiffies + msecs_to_jiffies(USB_BATTERY_TIMEOUT_MS));
+ magicmouse_fetch_battery(hdev);
+
+ if (id->vendor == USB_VENDOR_ID_APPLE &&
+ (id->product == USB_DEVICE_ID_APPLE_MAGICMOUSE2 ||
+ (id->product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 && hdev->type != HID_TYPE_USBMOUSE)))
+ return 0;
+
if (!msc->input) {
hid_err(hdev, "magicmouse input not registered\n");
ret = -ENOMEM;
@@ -827,6 +873,7 @@ static int magicmouse_probe(struct hid_device *hdev,
return 0;
err_stop_hw:
+ del_timer_sync(&msc->battery_timer);
hid_hw_stop(hdev);
return ret;
}
@@ -835,17 +882,52 @@ static void magicmouse_remove(struct hid_device *hdev)
{
struct magicmouse_sc *msc = hid_get_drvdata(hdev);
- if (msc)
+ if (msc) {
cancel_delayed_work_sync(&msc->work);
+ del_timer_sync(&msc->battery_timer);
+ }
hid_hw_stop(hdev);
}
+static __u8 *magicmouse_report_fixup(struct hid_device *hdev, __u8 *rdesc,
+ unsigned int *rsize)
+{
+ /*
+ * Change the usage from:
+ * 0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1) 0
+ * 0x09, 0x0b, // Usage (Vendor Usage 0x0b) 3
+ * To:
+ * 0x05, 0x01, // Usage Page (Generic Desktop) 0
+ * 0x09, 0x02, // Usage (Mouse) 2
+ */
+ if (hdev->vendor == USB_VENDOR_ID_APPLE &&
+ (hdev->product == USB_DEVICE_ID_APPLE_MAGICMOUSE2 ||
+ hdev->product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) &&
+ *rsize == 83 && rdesc[46] == 0x84 && rdesc[58] == 0x85) {
+ hid_info(hdev,
+ "fixing up magicmouse battery report descriptor\n");
+ *rsize = *rsize - 1;
+ rdesc = kmemdup(rdesc + 1, *rsize, GFP_KERNEL);
+ if (!rdesc)
+ return NULL;
+
+ rdesc[0] = 0x05;
+ rdesc[1] = 0x01;
+ rdesc[2] = 0x09;
+ rdesc[3] = 0x02;
+ }
+
+ return rdesc;
+}
+
static const struct hid_device_id magic_mice[] = {
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE,
USB_DEVICE_ID_APPLE_MAGICMOUSE), .driver_data = 0 },
{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE,
USB_DEVICE_ID_APPLE_MAGICMOUSE2), .driver_data = 0 },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE,
+ USB_DEVICE_ID_APPLE_MAGICMOUSE2), .driver_data = 0 },
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE,
USB_DEVICE_ID_APPLE_MAGICTRACKPAD), .driver_data = 0 },
{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE,
@@ -861,6 +943,7 @@ static struct hid_driver magicmouse_driver = {
.id_table = magic_mice,
.probe = magicmouse_probe,
.remove = magicmouse_remove,
+ .report_fixup = magicmouse_report_fixup,
.raw_event = magicmouse_raw_event,
.event = magicmouse_event,
.input_mapping = magicmouse_input_mapping,
diff --git a/drivers/hid/hid-uclogic-params.c b/drivers/hid/hid-uclogic-params.c
index adff1bd68d9f..3e70f969fb84 100644
--- a/drivers/hid/hid-uclogic-params.c
+++ b/drivers/hid/hid-uclogic-params.c
@@ -66,7 +66,7 @@ static int uclogic_params_get_str_desc(__u8 **pbuf, struct hid_device *hdev,
__u8 idx, size_t len)
{
int rc;
- struct usb_device *udev = hid_to_usb_dev(hdev);
+ struct usb_device *udev;
__u8 *buf = NULL;
/* Check arguments */
@@ -75,6 +75,8 @@ static int uclogic_params_get_str_desc(__u8 **pbuf, struct hid_device *hdev,
goto cleanup;
}
+ udev = hid_to_usb_dev(hdev);
+
buf = kmalloc(len, GFP_KERNEL);
if (buf == NULL) {
rc = -ENOMEM;
@@ -450,7 +452,7 @@ static int uclogic_params_frame_init_v1_buttonpad(
{
int rc;
bool found = false;
- struct usb_device *usb_dev = hid_to_usb_dev(hdev);
+ struct usb_device *usb_dev;
char *str_buf = NULL;
const size_t str_len = 16;
@@ -460,6 +462,8 @@ static int uclogic_params_frame_init_v1_buttonpad(
goto cleanup;
}
+ usb_dev = hid_to_usb_dev(hdev);
+
/*
* Enable generic button mode
*/
@@ -707,9 +711,9 @@ static int uclogic_params_huion_init(struct uclogic_params *params,
struct hid_device *hdev)
{
int rc;
- struct usb_device *udev = hid_to_usb_dev(hdev);
- struct usb_interface *iface = to_usb_interface(hdev->dev.parent);
- __u8 bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+ struct usb_device *udev;
+ struct usb_interface *iface;
+ __u8 bInterfaceNumber;
bool found;
/* The resulting parameters (noop) */
struct uclogic_params p = {0, };
@@ -723,6 +727,10 @@ static int uclogic_params_huion_init(struct uclogic_params *params,
goto cleanup;
}
+ udev = hid_to_usb_dev(hdev);
+ iface = to_usb_interface(hdev->dev.parent);
+ bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+
/* If it's not a pen interface */
if (bInterfaceNumber != 0) {
/* TODO: Consider marking the interface invalid */
@@ -834,10 +842,10 @@ int uclogic_params_init(struct uclogic_params *params,
struct hid_device *hdev)
{
int rc;
- struct usb_device *udev = hid_to_usb_dev(hdev);
- __u8 bNumInterfaces = udev->config->desc.bNumInterfaces;
- struct usb_interface *iface = to_usb_interface(hdev->dev.parent);
- __u8 bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+ struct usb_device *udev;
+ __u8 bNumInterfaces;
+ struct usb_interface *iface;
+ __u8 bInterfaceNumber;
bool found;
/* The resulting parameters (noop) */
struct uclogic_params p = {0, };
@@ -848,6 +856,11 @@ int uclogic_params_init(struct uclogic_params *params,
goto cleanup;
}
+ udev = hid_to_usb_dev(hdev);
+ bNumInterfaces = udev->config->desc.bNumInterfaces;
+ iface = to_usb_interface(hdev->dev.parent);
+ bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+
/*
* Set replacement report descriptor if the original matches the
* specified size. Otherwise keep interface unchanged.
diff --git a/drivers/hid/hid-vivaldi.c b/drivers/hid/hid-vivaldi.c
index 72957a9f7117..576518e704ee 100644
--- a/drivers/hid/hid-vivaldi.c
+++ b/drivers/hid/hid-vivaldi.c
@@ -74,10 +74,11 @@ static void vivaldi_feature_mapping(struct hid_device *hdev,
struct hid_usage *usage)
{
struct vivaldi_data *drvdata = hid_get_drvdata(hdev);
+ struct hid_report *report = field->report;
int fn_key;
int ret;
u32 report_len;
- u8 *buf;
+ u8 *report_data, *buf;
if (field->logical != HID_USAGE_FN_ROW_PHYSMAP ||
(usage->hid & HID_USAGE_PAGE) != HID_UP_ORDINAL)
@@ -89,12 +90,24 @@ static void vivaldi_feature_mapping(struct hid_device *hdev,
if (fn_key > drvdata->max_function_row_key)
drvdata->max_function_row_key = fn_key;
- buf = hid_alloc_report_buf(field->report, GFP_KERNEL);
- if (!buf)
+ report_data = buf = hid_alloc_report_buf(report, GFP_KERNEL);
+ if (!report_data)
return;
- report_len = hid_report_len(field->report);
- ret = hid_hw_raw_request(hdev, field->report->id, buf,
+ report_len = hid_report_len(report);
+ if (!report->id) {
+ /*
+ * hid_hw_raw_request() will stuff report ID (which will be 0)
+ * into the first byte of the buffer even for unnumbered
+ * reports, so we need to account for this to avoid getting
+ * -EOVERFLOW in return.
+ * Note that hid_alloc_report_buf() adds 7 bytes to the size
+ * so we can safely say that we have space for an extra byte.
+ */
+ report_len++;
+ }
+
+ ret = hid_hw_raw_request(hdev, report->id, report_data,
report_len, HID_FEATURE_REPORT,
HID_REQ_GET_REPORT);
if (ret < 0) {
@@ -103,7 +116,16 @@ static void vivaldi_feature_mapping(struct hid_device *hdev,
goto out;
}
- ret = hid_report_raw_event(hdev, HID_FEATURE_REPORT, buf,
+ if (!report->id) {
+ /*
+ * Undo the damage from hid_hw_raw_request() for unnumbered
+ * reports.
+ */
+ report_data++;
+ report_len--;
+ }
+
+ ret = hid_report_raw_event(hdev, HID_FEATURE_REPORT, report_data,
report_len, 0);
if (ret) {
dev_warn(&hdev->dev, "failed to report feature %d\n",
diff --git a/drivers/hid/i2c-hid/i2c-hid-acpi.c b/drivers/hid/i2c-hid/i2c-hid-acpi.c
index a6f0257a26de..b96ae15e0ad9 100644
--- a/drivers/hid/i2c-hid/i2c-hid-acpi.c
+++ b/drivers/hid/i2c-hid/i2c-hid-acpi.c
@@ -111,7 +111,7 @@ static int i2c_hid_acpi_probe(struct i2c_client *client)
}
return i2c_hid_core_probe(client, &ihid_acpi->ops,
- hid_descriptor_address);
+ hid_descriptor_address, 0);
}
static const struct acpi_device_id i2c_hid_acpi_match[] = {
diff --git a/drivers/hid/i2c-hid/i2c-hid-core.c b/drivers/hid/i2c-hid/i2c-hid-core.c
index 517141138b00..4804d71e5293 100644
--- a/drivers/hid/i2c-hid/i2c-hid-core.c
+++ b/drivers/hid/i2c-hid/i2c-hid-core.c
@@ -912,7 +912,7 @@ static void i2c_hid_core_shutdown_tail(struct i2c_hid *ihid)
}
int i2c_hid_core_probe(struct i2c_client *client, struct i2chid_ops *ops,
- u16 hid_descriptor_address)
+ u16 hid_descriptor_address, u32 quirks)
{
int ret;
struct i2c_hid *ihid;
@@ -1009,6 +1009,8 @@ int i2c_hid_core_probe(struct i2c_client *client, struct i2chid_ops *ops,
goto err_mem_free;
}
+ hid->quirks |= quirks;
+
return 0;
err_mem_free:
diff --git a/drivers/hid/i2c-hid/i2c-hid-of-goodix.c b/drivers/hid/i2c-hid/i2c-hid-of-goodix.c
index 52674149a275..b4dad66fa954 100644
--- a/drivers/hid/i2c-hid/i2c-hid-of-goodix.c
+++ b/drivers/hid/i2c-hid/i2c-hid-of-goodix.c
@@ -150,7 +150,7 @@ static int i2c_hid_of_goodix_probe(struct i2c_client *client,
goodix_i2c_hid_deassert_reset(ihid_goodix, true);
mutex_unlock(&ihid_goodix->regulator_mutex);
- return i2c_hid_core_probe(client, &ihid_goodix->ops, 0x0001);
+ return i2c_hid_core_probe(client, &ihid_goodix->ops, 0x0001, 0);
}
static const struct goodix_i2c_hid_timing_data goodix_gt7375p_timing_data = {
diff --git a/drivers/hid/i2c-hid/i2c-hid-of.c b/drivers/hid/i2c-hid/i2c-hid-of.c
index 4bf7cea92637..97a27a803f58 100644
--- a/drivers/hid/i2c-hid/i2c-hid-of.c
+++ b/drivers/hid/i2c-hid/i2c-hid-of.c
@@ -21,6 +21,7 @@
#include <linux/delay.h>
#include <linux/device.h>
+#include <linux/hid.h>
#include <linux/i2c.h>
#include <linux/kernel.h>
#include <linux/module.h>
@@ -71,6 +72,7 @@ static int i2c_hid_of_probe(struct i2c_client *client,
struct device *dev = &client->dev;
struct i2c_hid_of *ihid_of;
u16 hid_descriptor_address;
+ u32 quirks = 0;
int ret;
u32 val;
@@ -105,8 +107,14 @@ static int i2c_hid_of_probe(struct i2c_client *client,
if (ret)
return ret;
+ if (device_property_read_bool(dev, "touchscreen-inverted-x"))
+ quirks |= HID_QUIRK_X_INVERT;
+
+ if (device_property_read_bool(dev, "touchscreen-inverted-y"))
+ quirks |= HID_QUIRK_Y_INVERT;
+
return i2c_hid_core_probe(client, &ihid_of->ops,
- hid_descriptor_address);
+ hid_descriptor_address, quirks);
}
static const struct of_device_id i2c_hid_of_match[] = {
diff --git a/drivers/hid/i2c-hid/i2c-hid.h b/drivers/hid/i2c-hid/i2c-hid.h
index 05a7827d211a..236cc062d5ef 100644
--- a/drivers/hid/i2c-hid/i2c-hid.h
+++ b/drivers/hid/i2c-hid/i2c-hid.h
@@ -32,7 +32,7 @@ struct i2chid_ops {
};
int i2c_hid_core_probe(struct i2c_client *client, struct i2chid_ops *ops,
- u16 hid_descriptor_address);
+ u16 hid_descriptor_address, u32 quirks);
int i2c_hid_core_remove(struct i2c_client *client);
void i2c_hid_core_shutdown(struct i2c_client *client);
diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c
index 8fe3efcb8327..fc06d8bb42e0 100644
--- a/drivers/hid/uhid.c
+++ b/drivers/hid/uhid.c
@@ -28,11 +28,22 @@
struct uhid_device {
struct mutex devlock;
+
+ /* This flag tracks whether the HID device is usable for commands from
+ * userspace. The flag is already set before hid_add_device(), which
+ * runs in workqueue context, to allow hid_add_device() to communicate
+ * with userspace.
+ * However, if hid_add_device() fails, the flag is cleared without
+ * holding devlock.
+ * We guarantee that if @running changes from true to false while you're
+ * holding @devlock, it's still fine to access @hid.
+ */
bool running;
__u8 *rd_data;
uint rd_size;
+ /* When this is NULL, userspace may use UHID_CREATE/UHID_CREATE2. */
struct hid_device *hid;
struct uhid_event input_buf;
@@ -63,9 +74,18 @@ static void uhid_device_add_worker(struct work_struct *work)
if (ret) {
hid_err(uhid->hid, "Cannot register HID device: error %d\n", ret);
- hid_destroy_device(uhid->hid);
- uhid->hid = NULL;
+ /* We used to call hid_destroy_device() here, but that's really
+ * messy to get right because we have to coordinate with
+ * concurrent writes from userspace that might be in the middle
+ * of using uhid->hid.
+ * Just leave uhid->hid as-is for now, and clean it up when
+ * userspace tries to close or reinitialize the uhid instance.
+ *
+ * However, we do have to clear the ->running flag and do a
+ * wakeup to make sure userspace knows that the device is gone.
+ */
uhid->running = false;
+ wake_up_interruptible(&uhid->report_wait);
}
}
@@ -474,7 +494,7 @@ static int uhid_dev_create2(struct uhid_device *uhid,
void *rd_data;
int ret;
- if (uhid->running)
+ if (uhid->hid)
return -EALREADY;
rd_size = ev->u.create2.rd_size;
@@ -556,7 +576,7 @@ static int uhid_dev_create(struct uhid_device *uhid,
static int uhid_dev_destroy(struct uhid_device *uhid)
{
- if (!uhid->running)
+ if (!uhid->hid)
return -EINVAL;
uhid->running = false;
@@ -565,6 +585,7 @@ static int uhid_dev_destroy(struct uhid_device *uhid)
cancel_work_sync(&uhid->worker);
hid_destroy_device(uhid->hid);
+ uhid->hid = NULL;
kfree(uhid->rd_data);
return 0;
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
index 2a4cc39962e7..a7176fc0635d 100644
--- a/drivers/hid/wacom_wac.c
+++ b/drivers/hid/wacom_wac.c
@@ -2588,6 +2588,24 @@ static void wacom_wac_finger_slot(struct wacom_wac *wacom_wac,
}
}
+static bool wacom_wac_slot_is_active(struct input_dev *dev, int key)
+{
+ struct input_mt *mt = dev->mt;
+ struct input_mt_slot *s;
+
+ if (!mt)
+ return false;
+
+ for (s = mt->slots; s != mt->slots + mt->num_slots; s++) {
+ if (s->key == key &&
+ input_mt_get_value(s, ABS_MT_TRACKING_ID) >= 0) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
static void wacom_wac_finger_event(struct hid_device *hdev,
struct hid_field *field, struct hid_usage *usage, __s32 value)
{
@@ -2638,9 +2656,14 @@ static void wacom_wac_finger_event(struct hid_device *hdev,
}
if (usage->usage_index + 1 == field->report_count) {
- if (equivalent_usage == wacom_wac->hid_data.last_slot_field &&
- wacom_wac->hid_data.confidence)
- wacom_wac_finger_slot(wacom_wac, wacom_wac->touch_input);
+ if (equivalent_usage == wacom_wac->hid_data.last_slot_field) {
+ bool touch_removed = wacom_wac_slot_is_active(wacom_wac->touch_input,
+ wacom_wac->hid_data.id) && !wacom_wac->hid_data.tipswitch;
+
+ if (wacom_wac->hid_data.confidence || touch_removed) {
+ wacom_wac_finger_slot(wacom_wac, wacom_wac->touch_input);
+ }
+ }
}
}
@@ -2659,6 +2682,10 @@ static void wacom_wac_finger_pre_report(struct hid_device *hdev,
hid_data->confidence = true;
+ hid_data->cc_report = 0;
+ hid_data->cc_index = -1;
+ hid_data->cc_value_index = -1;
+
for (i = 0; i < report->maxfield; i++) {
struct hid_field *field = report->field[i];
int j;
@@ -2692,11 +2719,14 @@ static void wacom_wac_finger_pre_report(struct hid_device *hdev,
hid_data->cc_index >= 0) {
struct hid_field *field = report->field[hid_data->cc_index];
int value = field->value[hid_data->cc_value_index];
- if (value)
+ if (value) {
hid_data->num_expected = value;
+ hid_data->num_received = 0;
+ }
}
else {
hid_data->num_expected = wacom_wac->features.touch_max;
+ hid_data->num_received = 0;
}
}
@@ -2724,6 +2754,7 @@ static void wacom_wac_finger_report(struct hid_device *hdev,
input_sync(input);
wacom_wac->hid_data.num_received = 0;
+ wacom_wac->hid_data.num_expected = 0;
/* keep touch state for pen event */
wacom_wac->shared->touch_down = wacom_wac_finger_count_touches(wacom_wac);
diff --git a/drivers/hsi/hsi_core.c b/drivers/hsi/hsi_core.c
index ec90713564e3..884066109699 100644
--- a/drivers/hsi/hsi_core.c
+++ b/drivers/hsi/hsi_core.c
@@ -102,6 +102,7 @@ struct hsi_client *hsi_new_client(struct hsi_port *port,
if (device_register(&cl->device) < 0) {
pr_err("hsi: failed to register client: %s\n", info->name);
put_device(&cl->device);
+ goto err;
}
return cl;
diff --git a/drivers/hwmon/mr75203.c b/drivers/hwmon/mr75203.c
index 868243dba1ee..1ba1e3145969 100644
--- a/drivers/hwmon/mr75203.c
+++ b/drivers/hwmon/mr75203.c
@@ -93,7 +93,7 @@
#define VM_CH_REQ BIT(21)
#define IP_TMR 0x05
-#define POWER_DELAY_CYCLE_256 0x80
+#define POWER_DELAY_CYCLE_256 0x100
#define POWER_DELAY_CYCLE_64 0x40
#define PVT_POLL_DELAY_US 20
diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c
index 0f409a4c2da0..5b45941bcbdd 100644
--- a/drivers/i2c/busses/i2c-designware-pcidrv.c
+++ b/drivers/i2c/busses/i2c-designware-pcidrv.c
@@ -39,10 +39,10 @@ enum dw_pci_ctl_id_t {
};
struct dw_scl_sda_cfg {
- u32 ss_hcnt;
- u32 fs_hcnt;
- u32 ss_lcnt;
- u32 fs_lcnt;
+ u16 ss_hcnt;
+ u16 fs_hcnt;
+ u16 ss_lcnt;
+ u16 fs_lcnt;
u32 sda_hold;
};
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index 41446f9cc52d..c87ea470eba9 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -775,6 +775,11 @@ static int i801_block_transaction(struct i801_priv *priv, union i2c_smbus_data *
int result = 0;
unsigned char hostc;
+ if (read_write == I2C_SMBUS_READ && command == I2C_SMBUS_BLOCK_DATA)
+ data->block[0] = I2C_SMBUS_BLOCK_MAX;
+ else if (data->block[0] < 1 || data->block[0] > I2C_SMBUS_BLOCK_MAX)
+ return -EPROTO;
+
if (command == I2C_SMBUS_I2C_BLOCK_DATA) {
if (read_write == I2C_SMBUS_WRITE) {
/* set I2C_EN bit in configuration register */
@@ -788,16 +793,6 @@ static int i801_block_transaction(struct i801_priv *priv, union i2c_smbus_data *
}
}
- if (read_write == I2C_SMBUS_WRITE
- || command == I2C_SMBUS_I2C_BLOCK_DATA) {
- if (data->block[0] < 1)
- data->block[0] = 1;
- if (data->block[0] > I2C_SMBUS_BLOCK_MAX)
- data->block[0] = I2C_SMBUS_BLOCK_MAX;
- } else {
- data->block[0] = 32; /* max for SMBus block reads */
- }
-
/* Experience has shown that the block buffer can only be used for
SMBus (not I2C) block transactions, even though the datasheet
doesn't mention this limitation. */
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index db26cc36e13f..6c698c10d3cd 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -119,23 +119,30 @@ static inline void writeccr(struct mpc_i2c *i2c, u32 x)
/* Sometimes 9th clock pulse isn't generated, and slave doesn't release
* the bus, because it wants to send ACK.
* Following sequence of enabling/disabling and sending start/stop generates
- * the 9 pulses, so it's all OK.
+ * the 9 pulses, each with a START then ending with STOP, so it's all OK.
*/
static void mpc_i2c_fixup(struct mpc_i2c *i2c)
{
int k;
- u32 delay_val = 1000000 / i2c->real_clk + 1;
-
- if (delay_val < 2)
- delay_val = 2;
+ unsigned long flags;
for (k = 9; k; k--) {
writeccr(i2c, 0);
- writeccr(i2c, CCR_MSTA | CCR_MTX | CCR_MEN);
+ writeb(0, i2c->base + MPC_I2C_SR); /* clear any status bits */
+ writeccr(i2c, CCR_MEN | CCR_MSTA); /* START */
+ readb(i2c->base + MPC_I2C_DR); /* init xfer */
+ udelay(15); /* let it hit the bus */
+ local_irq_save(flags); /* should not be delayed further */
+ writeccr(i2c, CCR_MEN | CCR_MSTA | CCR_RSTA); /* delay SDA */
readb(i2c->base + MPC_I2C_DR);
- writeccr(i2c, CCR_MEN);
- udelay(delay_val << 1);
+ if (k != 1)
+ udelay(5);
+ local_irq_restore(flags);
}
+ writeccr(i2c, CCR_MEN); /* Initiate STOP */
+ readb(i2c->base + MPC_I2C_DR);
+ udelay(15); /* Let STOP propagate */
+ writeccr(i2c, 0);
}
static int i2c_mpc_wait_sr(struct mpc_i2c *i2c, int mask)
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
index c3b4c677b442..dfe18dcd008d 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -343,7 +343,8 @@ struct bus_type i3c_bus_type = {
static enum i3c_addr_slot_status
i3c_bus_get_addr_slot_status(struct i3c_bus *bus, u16 addr)
{
- int status, bitpos = addr * 2;
+ unsigned long status;
+ int bitpos = addr * 2;
if (addr > I2C_MAX_ADDR)
return I3C_ADDR_SLOT_RSVD;
diff --git a/drivers/i3c/master/dw-i3c-master.c b/drivers/i3c/master/dw-i3c-master.c
index 03a368da51b9..51a8608203de 100644
--- a/drivers/i3c/master/dw-i3c-master.c
+++ b/drivers/i3c/master/dw-i3c-master.c
@@ -793,6 +793,10 @@ static int dw_i3c_master_daa(struct i3c_master_controller *m)
return -ENOMEM;
pos = dw_i3c_master_get_free_pos(master);
+ if (pos < 0) {
+ dw_i3c_master_free_xfer(xfer);
+ return pos;
+ }
cmd = &xfer->cmds[0];
cmd->cmd_hi = 0x1;
cmd->cmd_lo = COMMAND_PORT_DEV_COUNT(master->maxdevs - pos) |
diff --git a/drivers/i3c/master/mipi-i3c-hci/dat_v1.c b/drivers/i3c/master/mipi-i3c-hci/dat_v1.c
index 783e551a2c85..97bb49ff5b53 100644
--- a/drivers/i3c/master/mipi-i3c-hci/dat_v1.c
+++ b/drivers/i3c/master/mipi-i3c-hci/dat_v1.c
@@ -160,9 +160,7 @@ static int hci_dat_v1_get_index(struct i3c_hci *hci, u8 dev_addr)
unsigned int dat_idx;
u32 dat_w0;
- for (dat_idx = find_first_bit(hci->DAT_data, hci->DAT_entries);
- dat_idx < hci->DAT_entries;
- dat_idx = find_next_bit(hci->DAT_data, hci->DAT_entries, dat_idx)) {
+ for_each_set_bit(dat_idx, hci->DAT_data, hci->DAT_entries) {
dat_w0 = dat_w0_read(dat_idx);
if (FIELD_GET(DAT_0_DYNAMIC_ADDRESS, dat_w0) == dev_addr)
return dat_idx;
diff --git a/drivers/iio/adc/ti-adc081c.c b/drivers/iio/adc/ti-adc081c.c
index 16fc608db36a..bd48b073e720 100644
--- a/drivers/iio/adc/ti-adc081c.c
+++ b/drivers/iio/adc/ti-adc081c.c
@@ -19,6 +19,7 @@
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
+#include <linux/property.h>
#include <linux/iio/iio.h>
#include <linux/iio/buffer.h>
@@ -156,13 +157,16 @@ static int adc081c_probe(struct i2c_client *client,
{
struct iio_dev *iio;
struct adc081c *adc;
- struct adcxx1c_model *model;
+ const struct adcxx1c_model *model;
int err;
if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WORD_DATA))
return -EOPNOTSUPP;
- model = &adcxx1c_models[id->driver_data];
+ if (dev_fwnode(&client->dev))
+ model = device_get_match_data(&client->dev);
+ else
+ model = &adcxx1c_models[id->driver_data];
iio = devm_iio_device_alloc(&client->dev, sizeof(*adc));
if (!iio)
@@ -210,10 +214,17 @@ static const struct i2c_device_id adc081c_id[] = {
};
MODULE_DEVICE_TABLE(i2c, adc081c_id);
+static const struct acpi_device_id adc081c_acpi_match[] = {
+ /* Used on some AAEON boards */
+ { "ADC081C", (kernel_ulong_t)&adcxx1c_models[ADC081C] },
+ { }
+};
+MODULE_DEVICE_TABLE(acpi, adc081c_acpi_match);
+
static const struct of_device_id adc081c_of_match[] = {
- { .compatible = "ti,adc081c" },
- { .compatible = "ti,adc101c" },
- { .compatible = "ti,adc121c" },
+ { .compatible = "ti,adc081c", .data = &adcxx1c_models[ADC081C] },
+ { .compatible = "ti,adc101c", .data = &adcxx1c_models[ADC101C] },
+ { .compatible = "ti,adc121c", .data = &adcxx1c_models[ADC121C] },
{ }
};
MODULE_DEVICE_TABLE(of, adc081c_of_match);
@@ -222,6 +233,7 @@ static struct i2c_driver adc081c_driver = {
.driver = {
.name = "adc081c",
.of_match_table = adc081c_of_match,
+ .acpi_match_table = adc081c_acpi_match,
},
.probe = adc081c_probe,
.id_table = adc081c_id,
diff --git a/drivers/iio/chemical/sunrise_co2.c b/drivers/iio/chemical/sunrise_co2.c
index 233bd0f379c9..8440dc0c77cf 100644
--- a/drivers/iio/chemical/sunrise_co2.c
+++ b/drivers/iio/chemical/sunrise_co2.c
@@ -407,24 +407,24 @@ static int sunrise_read_raw(struct iio_dev *iio_dev,
mutex_lock(&sunrise->lock);
ret = sunrise_read_word(sunrise, SUNRISE_CO2_FILTERED_COMP_REG,
&value);
- *val = value;
mutex_unlock(&sunrise->lock);
if (ret)
return ret;
+ *val = value;
return IIO_VAL_INT;
case IIO_TEMP:
mutex_lock(&sunrise->lock);
ret = sunrise_read_word(sunrise, SUNRISE_CHIP_TEMPERATURE_REG,
&value);
- *val = value;
mutex_unlock(&sunrise->lock);
if (ret)
return ret;
+ *val = value;
return IIO_VAL_INT;
default:
diff --git a/drivers/iio/industrialio-trigger.c b/drivers/iio/industrialio-trigger.c
index 93990ff1dfe3..f504ed351b3e 100644
--- a/drivers/iio/industrialio-trigger.c
+++ b/drivers/iio/industrialio-trigger.c
@@ -162,6 +162,39 @@ static struct iio_trigger *iio_trigger_acquire_by_name(const char *name)
return trig;
}
+static void iio_reenable_work_fn(struct work_struct *work)
+{
+ struct iio_trigger *trig = container_of(work, struct iio_trigger,
+ reenable_work);
+
+ /*
+ * This 'might' occur after the trigger state is set to disabled -
+ * in that case the driver should skip reenabling.
+ */
+ trig->ops->reenable(trig);
+}
+
+/*
+ * In general, reenable callbacks may need to sleep and this path is
+ * not performance sensitive, so just queue up a work item
+ * to reneable the trigger for us.
+ *
+ * Races that can cause this.
+ * 1) A handler occurs entirely in interrupt context so the counter
+ * the final decrement is still in this interrupt.
+ * 2) The trigger has been removed, but one last interrupt gets through.
+ *
+ * For (1) we must call reenable, but not in atomic context.
+ * For (2) it should be safe to call reenanble, if drivers never blindly
+ * reenable after state is off.
+ */
+static void iio_trigger_notify_done_atomic(struct iio_trigger *trig)
+{
+ if (atomic_dec_and_test(&trig->use_count) && trig->ops &&
+ trig->ops->reenable)
+ schedule_work(&trig->reenable_work);
+}
+
void iio_trigger_poll(struct iio_trigger *trig)
{
int i;
@@ -173,7 +206,7 @@ void iio_trigger_poll(struct iio_trigger *trig)
if (trig->subirqs[i].enabled)
generic_handle_irq(trig->subirq_base + i);
else
- iio_trigger_notify_done(trig);
+ iio_trigger_notify_done_atomic(trig);
}
}
}
@@ -535,6 +568,7 @@ struct iio_trigger *viio_trigger_alloc(struct device *parent,
trig->dev.type = &iio_trig_type;
trig->dev.bus = &iio_bus_type;
device_initialize(&trig->dev);
+ INIT_WORK(&trig->reenable_work, iio_reenable_work_fn);
mutex_init(&trig->pool_lock);
trig->subirq_base = irq_alloc_descs(-1, 0,
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 835ac54d4a24..a3834ef69191 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -766,6 +766,7 @@ static int cma_resolve_ib_dev(struct rdma_id_private *id_priv)
unsigned int p;
u16 pkey, index;
enum ib_port_state port_state;
+ int ret;
int i;
cma_dev = NULL;
@@ -784,9 +785,14 @@ static int cma_resolve_ib_dev(struct rdma_id_private *id_priv)
if (ib_get_cached_port_state(cur_dev->device, p, &port_state))
continue;
- for (i = 0; !rdma_query_gid(cur_dev->device,
- p, i, &gid);
- i++) {
+
+ for (i = 0; i < cur_dev->device->port_data[p].immutable.gid_tbl_len;
+ ++i) {
+ ret = rdma_query_gid(cur_dev->device, p, i,
+ &gid);
+ if (ret)
+ continue;
+
if (!memcmp(&gid, dgid, sizeof(gid))) {
cma_dev = cur_dev;
sgid = gid;
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index 22a4adda7981..a311df07b1bd 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -2461,7 +2461,8 @@ int ib_find_gid(struct ib_device *device, union ib_gid *gid,
++i) {
ret = rdma_query_gid(device, port, i, &tmp_gid);
if (ret)
- return ret;
+ continue;
+
if (!memcmp(&tmp_gid, gid, sizeof *gid)) {
*port_num = port;
if (index)
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
index 3de854727460..19a0778d38a2 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
+++ b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
@@ -618,8 +618,6 @@ int bnxt_qplib_alloc_rcfw_channel(struct bnxt_qplib_res *res,
if (!cmdq->cmdq_bitmap)
goto fail;
- cmdq->bmap_size = bmap_size;
-
/* Allocate one extra to hold the QP1 entries */
rcfw->qp_tbl_size = qp_tbl_sz + 1;
rcfw->qp_tbl = kcalloc(rcfw->qp_tbl_size, sizeof(struct bnxt_qplib_qp_node),
@@ -667,8 +665,8 @@ void bnxt_qplib_disable_rcfw_channel(struct bnxt_qplib_rcfw *rcfw)
iounmap(cmdq->cmdq_mbox.reg.bar_reg);
iounmap(creq->creq_db.reg.bar_reg);
- indx = find_first_bit(cmdq->cmdq_bitmap, cmdq->bmap_size);
- if (indx != cmdq->bmap_size)
+ indx = find_first_bit(cmdq->cmdq_bitmap, rcfw->cmdq_depth);
+ if (indx != rcfw->cmdq_depth)
dev_err(&rcfw->pdev->dev,
"disabling RCFW with pending cmd-bit %lx\n", indx);
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
index 82faa4e4cda8..0a3d8e7da3d4 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
+++ b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
@@ -152,7 +152,6 @@ struct bnxt_qplib_cmdq_ctx {
wait_queue_head_t waitq;
unsigned long flags;
unsigned long *cmdq_bitmap;
- u32 bmap_size;
u32 seq_num;
};
diff --git a/drivers/infiniband/hw/cxgb4/qp.c b/drivers/infiniband/hw/cxgb4/qp.c
index d20b4ef2c853..ffbd9a89981e 100644
--- a/drivers/infiniband/hw/cxgb4/qp.c
+++ b/drivers/infiniband/hw/cxgb4/qp.c
@@ -2460,6 +2460,7 @@ int c4iw_ib_query_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
memset(attr, 0, sizeof(*attr));
memset(init_attr, 0, sizeof(*init_attr));
attr->qp_state = to_ib_qp_state(qhp->attr.state);
+ attr->cur_qp_state = to_ib_qp_state(qhp->attr.state);
init_attr->cap.max_send_wr = qhp->attr.sq_num_entries;
init_attr->cap.max_recv_wr = qhp->attr.rq_num_entries;
init_attr->cap.max_send_sge = qhp->attr.sq_max_sges;
diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c
index 4194b626f3c6..a906c6078b72 100644
--- a/drivers/infiniband/hw/hns/hns_roce_main.c
+++ b/drivers/infiniband/hw/hns/hns_roce_main.c
@@ -270,6 +270,9 @@ static enum rdma_link_layer hns_roce_get_link_layer(struct ib_device *device,
static int hns_roce_query_pkey(struct ib_device *ib_dev, u32 port, u16 index,
u16 *pkey)
{
+ if (index > 0)
+ return -EINVAL;
+
*pkey = PKEY_ID;
return 0;
@@ -439,7 +442,7 @@ static int hns_roce_mmap(struct ib_ucontext *uctx, struct vm_area_struct *vma)
prot = vma->vm_page_prot;
if (entry->mmap_type != HNS_ROCE_MMAP_TYPE_TPTR)
- prot = pgprot_noncached(prot);
+ prot = pgprot_device(prot);
ret = rdma_user_mmap_io(uctx, vma, pfn, rdma_entry->npages * PAGE_SIZE,
prot, rdma_entry);
diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c
index 9100009f0a23..a53476653b0d 100644
--- a/drivers/infiniband/hw/qedr/verbs.c
+++ b/drivers/infiniband/hw/qedr/verbs.c
@@ -1931,6 +1931,7 @@ static int qedr_create_user_qp(struct qedr_dev *dev,
/* db offset was calculated in copy_qp_uresp, now set in the user q */
if (qedr_qp_has_sq(qp)) {
qp->usq.db_addr = ctx->dpi_addr + uresp.sq_db_offset;
+ qp->sq.max_wr = attrs->cap.max_send_wr;
rc = qedr_db_recovery_add(dev, qp->usq.db_addr,
&qp->usq.db_rec_data->db_data,
DB_REC_WIDTH_32B,
@@ -1941,6 +1942,7 @@ static int qedr_create_user_qp(struct qedr_dev *dev,
if (qedr_qp_has_rq(qp)) {
qp->urq.db_addr = ctx->dpi_addr + uresp.rq_db_offset;
+ qp->rq.max_wr = attrs->cap.max_recv_wr;
rc = qedr_db_recovery_add(dev, qp->urq.db_addr,
&qp->urq.db_rec_data->db_data,
DB_REC_WIDTH_32B,
diff --git a/drivers/infiniband/sw/rxe/rxe_opcode.c b/drivers/infiniband/sw/rxe/rxe_opcode.c
index 3ef5a10a6efd..47ebaac8f475 100644
--- a/drivers/infiniband/sw/rxe/rxe_opcode.c
+++ b/drivers/infiniband/sw/rxe/rxe_opcode.c
@@ -117,7 +117,7 @@ struct rxe_opcode_info rxe_opcode[RXE_NUM_OPCODE] = {
}
},
[IB_OPCODE_RC_SEND_MIDDLE] = {
- .name = "IB_OPCODE_RC_SEND_MIDDLE]",
+ .name = "IB_OPCODE_RC_SEND_MIDDLE",
.mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK
| RXE_MIDDLE_MASK,
.length = RXE_BTH_BYTES,
diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.c b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
index 15c0077dd27e..e39709dee179 100644
--- a/drivers/infiniband/ulp/rtrs/rtrs-clt.c
+++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
@@ -867,7 +867,7 @@ static struct rtrs_clt_sess *get_next_path_min_latency(struct path_it *it)
struct rtrs_clt_sess *min_path = NULL;
struct rtrs_clt *clt = it->clt;
struct rtrs_clt_sess *sess;
- ktime_t min_latency = INT_MAX;
+ ktime_t min_latency = KTIME_MAX;
ktime_t latency;
list_for_each_entry_rcu(sess, &clt->paths_list, s.entry) {
diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
index 83e685557a19..cfc943423241 100644
--- a/drivers/input/touchscreen/ti_am335x_tsc.c
+++ b/drivers/input/touchscreen/ti_am335x_tsc.c
@@ -131,7 +131,8 @@ static void titsc_step_config(struct titsc *ts_dev)
u32 stepenable;
config = STEPCONFIG_MODE_HWSYNC |
- STEPCONFIG_AVG_16 | ts_dev->bit_xp;
+ STEPCONFIG_AVG_16 | ts_dev->bit_xp |
+ STEPCONFIG_INM_ADCREFM;
switch (ts_dev->wires) {
case 4:
config |= STEPCONFIG_INP(ts_dev->inp_yp) | ts_dev->bit_xn;
@@ -195,7 +196,10 @@ static void titsc_step_config(struct titsc *ts_dev)
STEPCONFIG_OPENDLY);
end_step++;
- config |= STEPCONFIG_INP(ts_dev->inp_yn);
+ config = STEPCONFIG_MODE_HWSYNC |
+ STEPCONFIG_AVG_16 | ts_dev->bit_yp |
+ ts_dev->bit_xn | STEPCONFIG_INM_ADCREFM |
+ STEPCONFIG_INP(ts_dev->inp_yn);
titsc_writel(ts_dev, REG_STEPCONFIG(end_step), config);
titsc_writel(ts_dev, REG_STEPDELAY(end_step),
STEPCONFIG_OPENDLY);
diff --git a/drivers/interconnect/qcom/icc-rpm.c b/drivers/interconnect/qcom/icc-rpm.c
index ef7999a08c8b..8114295a8312 100644
--- a/drivers/interconnect/qcom/icc-rpm.c
+++ b/drivers/interconnect/qcom/icc-rpm.c
@@ -239,6 +239,7 @@ static int qcom_icc_set(struct icc_node *src, struct icc_node *dst)
rate = max(sum_bw, max_peak_bw);
do_div(rate, qn->buswidth);
+ rate = min_t(u64, rate, LONG_MAX);
if (qn->rate == rate)
return 0;
diff --git a/drivers/iommu/amd/amd_iommu_types.h b/drivers/iommu/amd/amd_iommu_types.h
index 867535eb0ce9..ffc89c4fb120 100644
--- a/drivers/iommu/amd/amd_iommu_types.h
+++ b/drivers/iommu/amd/amd_iommu_types.h
@@ -645,8 +645,6 @@ struct amd_iommu {
/* DebugFS Info */
struct dentry *debugfs;
#endif
- /* IRQ notifier for IntCapXT interrupt */
- struct irq_affinity_notify intcapxt_notify;
};
static inline struct amd_iommu *dev_to_amd_iommu(struct device *dev)
diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
index 1eacd43cb436..b94822fc2c9f 100644
--- a/drivers/iommu/amd/init.c
+++ b/drivers/iommu/amd/init.c
@@ -806,16 +806,27 @@ static int iommu_ga_log_enable(struct amd_iommu *iommu)
{
#ifdef CONFIG_IRQ_REMAP
u32 status, i;
+ u64 entry;
if (!iommu->ga_log)
return -EINVAL;
- status = readl(iommu->mmio_base + MMIO_STATUS_OFFSET);
-
/* Check if already running */
- if (status & (MMIO_STATUS_GALOG_RUN_MASK))
+ status = readl(iommu->mmio_base + MMIO_STATUS_OFFSET);
+ if (WARN_ON(status & (MMIO_STATUS_GALOG_RUN_MASK)))
return 0;
+ entry = iommu_virt_to_phys(iommu->ga_log) | GA_LOG_SIZE_512;
+ memcpy_toio(iommu->mmio_base + MMIO_GA_LOG_BASE_OFFSET,
+ &entry, sizeof(entry));
+ entry = (iommu_virt_to_phys(iommu->ga_log_tail) &
+ (BIT_ULL(52)-1)) & ~7ULL;
+ memcpy_toio(iommu->mmio_base + MMIO_GA_LOG_TAIL_OFFSET,
+ &entry, sizeof(entry));
+ writel(0x00, iommu->mmio_base + MMIO_GA_HEAD_OFFSET);
+ writel(0x00, iommu->mmio_base + MMIO_GA_TAIL_OFFSET);
+
+
iommu_feature_enable(iommu, CONTROL_GAINT_EN);
iommu_feature_enable(iommu, CONTROL_GALOG_EN);
@@ -825,7 +836,7 @@ static int iommu_ga_log_enable(struct amd_iommu *iommu)
break;
}
- if (i >= LOOP_TIMEOUT)
+ if (WARN_ON(i >= LOOP_TIMEOUT))
return -EINVAL;
#endif /* CONFIG_IRQ_REMAP */
return 0;
@@ -834,8 +845,6 @@ static int iommu_ga_log_enable(struct amd_iommu *iommu)
static int iommu_init_ga_log(struct amd_iommu *iommu)
{
#ifdef CONFIG_IRQ_REMAP
- u64 entry;
-
if (!AMD_IOMMU_GUEST_IR_VAPIC(amd_iommu_guest_ir))
return 0;
@@ -849,16 +858,6 @@ static int iommu_init_ga_log(struct amd_iommu *iommu)
if (!iommu->ga_log_tail)
goto err_out;
- entry = iommu_virt_to_phys(iommu->ga_log) | GA_LOG_SIZE_512;
- memcpy_toio(iommu->mmio_base + MMIO_GA_LOG_BASE_OFFSET,
- &entry, sizeof(entry));
- entry = (iommu_virt_to_phys(iommu->ga_log_tail) &
- (BIT_ULL(52)-1)) & ~7ULL;
- memcpy_toio(iommu->mmio_base + MMIO_GA_LOG_TAIL_OFFSET,
- &entry, sizeof(entry));
- writel(0x00, iommu->mmio_base + MMIO_GA_HEAD_OFFSET);
- writel(0x00, iommu->mmio_base + MMIO_GA_TAIL_OFFSET);
-
return 0;
err_out:
free_ga_log(iommu);
@@ -2016,48 +2015,18 @@ union intcapxt {
};
} __attribute__ ((packed));
-/*
- * There isn't really any need to mask/unmask at the irqchip level because
- * the 64-bit INTCAPXT registers can be updated atomically without tearing
- * when the affinity is being updated.
- */
-static void intcapxt_unmask_irq(struct irq_data *data)
-{
-}
-
-static void intcapxt_mask_irq(struct irq_data *data)
-{
-}
static struct irq_chip intcapxt_controller;
static int intcapxt_irqdomain_activate(struct irq_domain *domain,
struct irq_data *irqd, bool reserve)
{
- struct amd_iommu *iommu = irqd->chip_data;
- struct irq_cfg *cfg = irqd_cfg(irqd);
- union intcapxt xt;
-
- xt.capxt = 0ULL;
- xt.dest_mode_logical = apic->dest_mode_logical;
- xt.vector = cfg->vector;
- xt.destid_0_23 = cfg->dest_apicid & GENMASK(23, 0);
- xt.destid_24_31 = cfg->dest_apicid >> 24;
-
- /**
- * Current IOMMU implemtation uses the same IRQ for all
- * 3 IOMMU interrupts.
- */
- writeq(xt.capxt, iommu->mmio_base + MMIO_INTCAPXT_EVT_OFFSET);
- writeq(xt.capxt, iommu->mmio_base + MMIO_INTCAPXT_PPR_OFFSET);
- writeq(xt.capxt, iommu->mmio_base + MMIO_INTCAPXT_GALOG_OFFSET);
return 0;
}
static void intcapxt_irqdomain_deactivate(struct irq_domain *domain,
struct irq_data *irqd)
{
- intcapxt_mask_irq(irqd);
}
@@ -2091,6 +2060,38 @@ static void intcapxt_irqdomain_free(struct irq_domain *domain, unsigned int virq
irq_domain_free_irqs_top(domain, virq, nr_irqs);
}
+
+static void intcapxt_unmask_irq(struct irq_data *irqd)
+{
+ struct amd_iommu *iommu = irqd->chip_data;
+ struct irq_cfg *cfg = irqd_cfg(irqd);
+ union intcapxt xt;
+
+ xt.capxt = 0ULL;
+ xt.dest_mode_logical = apic->dest_mode_logical;
+ xt.vector = cfg->vector;
+ xt.destid_0_23 = cfg->dest_apicid & GENMASK(23, 0);
+ xt.destid_24_31 = cfg->dest_apicid >> 24;
+
+ /**
+ * Current IOMMU implementation uses the same IRQ for all
+ * 3 IOMMU interrupts.
+ */
+ writeq(xt.capxt, iommu->mmio_base + MMIO_INTCAPXT_EVT_OFFSET);
+ writeq(xt.capxt, iommu->mmio_base + MMIO_INTCAPXT_PPR_OFFSET);
+ writeq(xt.capxt, iommu->mmio_base + MMIO_INTCAPXT_GALOG_OFFSET);
+}
+
+static void intcapxt_mask_irq(struct irq_data *irqd)
+{
+ struct amd_iommu *iommu = irqd->chip_data;
+
+ writeq(0, iommu->mmio_base + MMIO_INTCAPXT_EVT_OFFSET);
+ writeq(0, iommu->mmio_base + MMIO_INTCAPXT_PPR_OFFSET);
+ writeq(0, iommu->mmio_base + MMIO_INTCAPXT_GALOG_OFFSET);
+}
+
+
static int intcapxt_set_affinity(struct irq_data *irqd,
const struct cpumask *mask, bool force)
{
@@ -2100,8 +2101,12 @@ static int intcapxt_set_affinity(struct irq_data *irqd,
ret = parent->chip->irq_set_affinity(parent, mask, force);
if (ret < 0 || ret == IRQ_SET_MASK_OK_DONE)
return ret;
+ return 0;
+}
- return intcapxt_irqdomain_activate(irqd->domain, irqd, false);
+static int intcapxt_set_wake(struct irq_data *irqd, unsigned int on)
+{
+ return on ? -EOPNOTSUPP : 0;
}
static struct irq_chip intcapxt_controller = {
@@ -2111,7 +2116,8 @@ static struct irq_chip intcapxt_controller = {
.irq_ack = irq_chip_ack_parent,
.irq_retrigger = irq_chip_retrigger_hierarchy,
.irq_set_affinity = intcapxt_set_affinity,
- .flags = IRQCHIP_SKIP_SET_WAKE,
+ .irq_set_wake = intcapxt_set_wake,
+ .flags = IRQCHIP_MASK_ON_SUSPEND,
};
static const struct irq_domain_ops intcapxt_domain_ops = {
@@ -2173,7 +2179,6 @@ static int iommu_setup_intcapxt(struct amd_iommu *iommu)
return ret;
}
- iommu_feature_enable(iommu, CONTROL_INTCAPXT_EN);
return 0;
}
@@ -2196,6 +2201,10 @@ static int iommu_init_irq(struct amd_iommu *iommu)
iommu->int_enabled = true;
enable_faults:
+
+ if (amd_iommu_xt_mode == IRQ_REMAP_X2APIC_MODE)
+ iommu_feature_enable(iommu, CONTROL_INTCAPXT_EN);
+
iommu_feature_enable(iommu, CONTROL_EVT_INT_EN);
if (iommu->ppr_log != NULL)
diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
index ca736b065dd0..40c91dd368a4 100644
--- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
+++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
@@ -51,7 +51,7 @@ static void qcom_adreno_smmu_get_fault_info(const void *cookie,
info->fsynr1 = arm_smmu_cb_read(smmu, cfg->cbndx, ARM_SMMU_CB_FSYNR1);
info->far = arm_smmu_cb_readq(smmu, cfg->cbndx, ARM_SMMU_CB_FAR);
info->cbfrsynra = arm_smmu_gr1_read(smmu, ARM_SMMU_GR1_CBFRSYNRA(cfg->cbndx));
- info->ttbr0 = arm_smmu_cb_read(smmu, cfg->cbndx, ARM_SMMU_CB_TTBR0);
+ info->ttbr0 = arm_smmu_cb_readq(smmu, cfg->cbndx, ARM_SMMU_CB_TTBR0);
info->contextidr = arm_smmu_cb_read(smmu, cfg->cbndx, ARM_SMMU_CB_CONTEXTIDR);
}
diff --git a/drivers/iommu/io-pgtable-arm-v7s.c b/drivers/iommu/io-pgtable-arm-v7s.c
index bfb6acb651e5..be066c1503d3 100644
--- a/drivers/iommu/io-pgtable-arm-v7s.c
+++ b/drivers/iommu/io-pgtable-arm-v7s.c
@@ -246,13 +246,17 @@ static void *__arm_v7s_alloc_table(int lvl, gfp_t gfp,
__GFP_ZERO | ARM_V7S_TABLE_GFP_DMA, get_order(size));
else if (lvl == 2)
table = kmem_cache_zalloc(data->l2_tables, gfp);
+
+ if (!table)
+ return NULL;
+
phys = virt_to_phys(table);
if (phys != (arm_v7s_iopte)phys) {
/* Doesn't fit in PTE */
dev_err(dev, "Page table does not fit in PTE: %pa", &phys);
goto out_free;
}
- if (table && !cfg->coherent_walk) {
+ if (!cfg->coherent_walk) {
dma = dma_map_single(dev, table, size, DMA_TO_DEVICE);
if (dma_mapping_error(dev, dma))
goto out_free;
diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
index dd9e47189d0d..94ff319ae8ac 100644
--- a/drivers/iommu/io-pgtable-arm.c
+++ b/drivers/iommu/io-pgtable-arm.c
@@ -315,11 +315,12 @@ static int arm_lpae_init_pte(struct arm_lpae_io_pgtable *data,
static arm_lpae_iopte arm_lpae_install_table(arm_lpae_iopte *table,
arm_lpae_iopte *ptep,
arm_lpae_iopte curr,
- struct io_pgtable_cfg *cfg)
+ struct arm_lpae_io_pgtable *data)
{
arm_lpae_iopte old, new;
+ struct io_pgtable_cfg *cfg = &data->iop.cfg;
- new = __pa(table) | ARM_LPAE_PTE_TYPE_TABLE;
+ new = paddr_to_iopte(__pa(table), data) | ARM_LPAE_PTE_TYPE_TABLE;
if (cfg->quirks & IO_PGTABLE_QUIRK_ARM_NS)
new |= ARM_LPAE_PTE_NSTABLE;
@@ -380,7 +381,7 @@ static int __arm_lpae_map(struct arm_lpae_io_pgtable *data, unsigned long iova,
if (!cptep)
return -ENOMEM;
- pte = arm_lpae_install_table(cptep, ptep, 0, cfg);
+ pte = arm_lpae_install_table(cptep, ptep, 0, data);
if (pte)
__arm_lpae_free_pages(cptep, tblsz, cfg);
} else if (!cfg->coherent_walk && !(pte & ARM_LPAE_PTE_SW_SYNC)) {
@@ -592,7 +593,7 @@ static size_t arm_lpae_split_blk_unmap(struct arm_lpae_io_pgtable *data,
__arm_lpae_init_pte(data, blk_paddr, pte, lvl, 1, &tablep[i]);
}
- pte = arm_lpae_install_table(tablep, ptep, blk_pte, cfg);
+ pte = arm_lpae_install_table(tablep, ptep, blk_pte, data);
if (pte != blk_pte) {
__arm_lpae_free_pages(tablep, tablesz, cfg);
/*
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index dd7863e453a5..8b86406b7162 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -288,11 +288,11 @@ int iommu_probe_device(struct device *dev)
*/
mutex_lock(&group->mutex);
iommu_alloc_default_domain(group, dev);
- mutex_unlock(&group->mutex);
if (group->default_domain) {
ret = __iommu_attach_device(group->default_domain, dev);
if (ret) {
+ mutex_unlock(&group->mutex);
iommu_group_put(group);
goto err_release;
}
@@ -300,6 +300,7 @@ int iommu_probe_device(struct device *dev)
iommu_create_device_direct_mappings(group, dev);
+ mutex_unlock(&group->mutex);
iommu_group_put(group);
if (ops->probe_finalize)
diff --git a/drivers/iommu/iova.c b/drivers/iommu/iova.c
index 9e8bc802ac05..920fcc27c9a1 100644
--- a/drivers/iommu/iova.c
+++ b/drivers/iommu/iova.c
@@ -83,8 +83,7 @@ static void free_iova_flush_queue(struct iova_domain *iovad)
if (!has_iova_flush_queue(iovad))
return;
- if (timer_pending(&iovad->fq_timer))
- del_timer(&iovad->fq_timer);
+ del_timer_sync(&iovad->fq_timer);
fq_destroy_all_entries(iovad);
diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index daec3309b014..86397522e786 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -920,6 +920,22 @@ static int __gic_update_rdist_properties(struct redist_region *region,
{
u64 typer = gic_read_typer(ptr + GICR_TYPER);
+ /* Boot-time cleanip */
+ if ((typer & GICR_TYPER_VLPIS) && (typer & GICR_TYPER_RVPEID)) {
+ u64 val;
+
+ /* Deactivate any present vPE */
+ val = gicr_read_vpendbaser(ptr + SZ_128K + GICR_VPENDBASER);
+ if (val & GICR_VPENDBASER_Valid)
+ gicr_write_vpendbaser(GICR_VPENDBASER_PendingLast,
+ ptr + SZ_128K + GICR_VPENDBASER);
+
+ /* Mark the VPE table as invalid */
+ val = gicr_read_vpropbaser(ptr + SZ_128K + GICR_VPROPBASER);
+ val &= ~GICR_VPROPBASER_4_1_VALID;
+ gicr_write_vpropbaser(val, ptr + SZ_128K + GICR_VPROPBASER);
+ }
+
gic_data.rdists.has_vlpis &= !!(typer & GICR_TYPER_VLPIS);
/* RVPEID implies some form of DirectLPI, no matter what the doc says... :-/ */
diff --git a/drivers/leds/leds-lp55xx-common.c b/drivers/leds/leds-lp55xx-common.c
index d1657c46ee2f..9fdfc1b9a1a0 100644
--- a/drivers/leds/leds-lp55xx-common.c
+++ b/drivers/leds/leds-lp55xx-common.c
@@ -439,6 +439,8 @@ int lp55xx_init_device(struct lp55xx_chip *chip)
return -EINVAL;
if (pdata->enable_gpiod) {
+ gpiod_direction_output(pdata->enable_gpiod, 0);
+
gpiod_set_consumer_name(pdata->enable_gpiod, "LP55xx enable");
gpiod_set_value(pdata->enable_gpiod, 0);
usleep_range(1000, 2000); /* Keep enable down at least 1ms */
@@ -694,7 +696,7 @@ struct lp55xx_platform_data *lp55xx_of_populate_pdata(struct device *dev,
of_property_read_u8(np, "clock-mode", &pdata->clock_mode);
pdata->enable_gpiod = devm_gpiod_get_optional(dev, "enable",
- GPIOD_OUT_LOW);
+ GPIOD_ASIS);
if (IS_ERR(pdata->enable_gpiod))
return ERR_CAST(pdata->enable_gpiod);
diff --git a/drivers/mailbox/imx-mailbox.c b/drivers/mailbox/imx-mailbox.c
index ffe36a6bef9e..544de2db6453 100644
--- a/drivers/mailbox/imx-mailbox.c
+++ b/drivers/mailbox/imx-mailbox.c
@@ -563,8 +563,8 @@ static int imx_mu_probe(struct platform_device *pdev)
size = sizeof(struct imx_sc_rpc_msg_max);
priv->msg = devm_kzalloc(dev, size, GFP_KERNEL);
- if (IS_ERR(priv->msg))
- return PTR_ERR(priv->msg);
+ if (!priv->msg)
+ return -ENOMEM;
priv->clk = devm_clk_get(dev, NULL);
if (IS_ERR(priv->clk)) {
diff --git a/drivers/mailbox/mailbox-mpfs.c b/drivers/mailbox/mailbox-mpfs.c
index 0d6e2231a2c7..4e34854d1238 100644
--- a/drivers/mailbox/mailbox-mpfs.c
+++ b/drivers/mailbox/mailbox-mpfs.c
@@ -232,7 +232,7 @@ static int mpfs_mbox_probe(struct platform_device *pdev)
}
static const struct of_device_id mpfs_mbox_of_match[] = {
- {.compatible = "microchip,polarfire-soc-mailbox", },
+ {.compatible = "microchip,mpfs-mailbox", },
{},
};
MODULE_DEVICE_TABLE(of, mpfs_mbox_of_match);
diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmdq-mailbox.c
index a8845b162dbf..9aae13e9e050 100644
--- a/drivers/mailbox/mtk-cmdq-mailbox.c
+++ b/drivers/mailbox/mtk-cmdq-mailbox.c
@@ -658,7 +658,7 @@ static const struct gce_plat gce_plat_v5 = {
.thread_nr = 24,
.shift = 3,
.control_by_sw = true,
- .gce_num = 2
+ .gce_num = 1
};
static const struct gce_plat gce_plat_v6 = {
diff --git a/drivers/mailbox/pcc.c b/drivers/mailbox/pcc.c
index 887a3704c12e..ed18936b8ce6 100644
--- a/drivers/mailbox/pcc.c
+++ b/drivers/mailbox/pcc.c
@@ -241,9 +241,11 @@ static irqreturn_t pcc_mbox_irq(int irq, void *p)
if (ret)
return IRQ_NONE;
- val &= pchan->cmd_complete.status_mask;
- if (!val)
- return IRQ_NONE;
+ if (val) { /* Ensure GAS exists and value is non-zero */
+ val &= pchan->cmd_complete.status_mask;
+ if (!val)
+ return IRQ_NONE;
+ }
ret = pcc_chan_reg_read(&pchan->error, &val);
if (ret)
@@ -289,7 +291,7 @@ pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id)
pchan = chan_info + subspace_id;
chan = pchan->chan.mchan;
if (IS_ERR(chan) || chan->cl) {
- dev_err(dev, "Channel not found for idx: %d\n", subspace_id);
+ pr_err("Channel not found for idx: %d\n", subspace_id);
return ERR_PTR(-EBUSY);
}
dev = chan->mbox->dev;
diff --git a/drivers/md/dm-linear.c b/drivers/md/dm-linear.c
index 66ba16713f69..0a260c35aeee 100644
--- a/drivers/md/dm-linear.c
+++ b/drivers/md/dm-linear.c
@@ -162,7 +162,7 @@ static int linear_iterate_devices(struct dm_target *ti,
return fn(ti, lc->dev, lc->start, ti->len, data);
}
-#if IS_ENABLED(CONFIG_DAX_DRIVER)
+#if IS_ENABLED(CONFIG_FS_DAX)
static long linear_dax_direct_access(struct dm_target *ti, pgoff_t pgoff,
long nr_pages, void **kaddr, pfn_t *pfn)
{
diff --git a/drivers/md/dm-log-writes.c b/drivers/md/dm-log-writes.c
index 0b3ef977ceeb..3155875d4e5b 100644
--- a/drivers/md/dm-log-writes.c
+++ b/drivers/md/dm-log-writes.c
@@ -901,7 +901,7 @@ static void log_writes_io_hints(struct dm_target *ti, struct queue_limits *limit
limits->io_min = limits->physical_block_size;
}
-#if IS_ENABLED(CONFIG_DAX_DRIVER)
+#if IS_ENABLED(CONFIG_FS_DAX)
static int log_dax(struct log_writes_c *lc, sector_t sector, size_t bytes,
struct iov_iter *i)
{
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
index 6660b6b53d5b..f08460722029 100644
--- a/drivers/md/dm-stripe.c
+++ b/drivers/md/dm-stripe.c
@@ -300,7 +300,7 @@ static int stripe_map(struct dm_target *ti, struct bio *bio)
return DM_MAPIO_REMAPPED;
}
-#if IS_ENABLED(CONFIG_DAX_DRIVER)
+#if IS_ENABLED(CONFIG_FS_DAX)
static long stripe_dax_direct_access(struct dm_target *ti, pgoff_t pgoff,
long nr_pages, void **kaddr, pfn_t *pfn)
{
diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
index 4b8991cde223..4f31591d2d25 100644
--- a/drivers/md/dm-writecache.c
+++ b/drivers/md/dm-writecache.c
@@ -38,7 +38,7 @@
#define BITMAP_GRANULARITY PAGE_SIZE
#endif
-#if IS_ENABLED(CONFIG_ARCH_HAS_PMEM_API) && IS_ENABLED(CONFIG_DAX_DRIVER)
+#if IS_ENABLED(CONFIG_ARCH_HAS_PMEM_API) && IS_ENABLED(CONFIG_FS_DAX)
#define DM_WRITECACHE_HAS_PMEM
#endif
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 662742a310cb..b93fcc91176e 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1783,11 +1783,13 @@ static struct mapped_device *alloc_dev(int minor)
md->disk->private_data = md;
sprintf(md->disk->disk_name, "dm-%d", minor);
- if (IS_ENABLED(CONFIG_DAX_DRIVER)) {
+ if (IS_ENABLED(CONFIG_FS_DAX)) {
md->dax_dev = alloc_dax(md, md->disk->disk_name,
&dm_dax_ops, 0);
- if (IS_ERR(md->dax_dev))
+ if (IS_ERR(md->dax_dev)) {
+ md->dax_dev = NULL;
goto bad;
+ }
}
format_dev_t(md->name, MKDEV(_major, minor));
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 41d6e2383517..db969cf04dec 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -5875,13 +5875,6 @@ int md_run(struct mddev *mddev)
if (err)
goto exit_bio_set;
}
- if (mddev->level != 1 && mddev->level != 10 &&
- !bioset_initialized(&mddev->io_acct_set)) {
- err = bioset_init(&mddev->io_acct_set, BIO_POOL_SIZE,
- offsetof(struct md_io_acct, bio_clone), 0);
- if (err)
- goto exit_sync_set;
- }
spin_lock(&pers_lock);
pers = find_pers(mddev->level, mddev->clevel);
@@ -6058,9 +6051,6 @@ int md_run(struct mddev *mddev)
module_put(pers->owner);
md_bitmap_destroy(mddev);
abort:
- if (mddev->level != 1 && mddev->level != 10)
- bioset_exit(&mddev->io_acct_set);
-exit_sync_set:
bioset_exit(&mddev->sync_set);
exit_bio_set:
bioset_exit(&mddev->bio_set);
@@ -8594,6 +8584,23 @@ void md_submit_discard_bio(struct mddev *mddev, struct md_rdev *rdev,
}
EXPORT_SYMBOL_GPL(md_submit_discard_bio);
+int acct_bioset_init(struct mddev *mddev)
+{
+ int err = 0;
+
+ if (!bioset_initialized(&mddev->io_acct_set))
+ err = bioset_init(&mddev->io_acct_set, BIO_POOL_SIZE,
+ offsetof(struct md_io_acct, bio_clone), 0);
+ return err;
+}
+EXPORT_SYMBOL_GPL(acct_bioset_init);
+
+void acct_bioset_exit(struct mddev *mddev)
+{
+ bioset_exit(&mddev->io_acct_set);
+}
+EXPORT_SYMBOL_GPL(acct_bioset_exit);
+
static void md_end_io_acct(struct bio *bio)
{
struct md_io_acct *md_io_acct = bio->bi_private;
diff --git a/drivers/md/md.h b/drivers/md/md.h
index 53ea7a6961de..f1bf3625ef4c 100644
--- a/drivers/md/md.h
+++ b/drivers/md/md.h
@@ -721,6 +721,8 @@ extern void md_error(struct mddev *mddev, struct md_rdev *rdev);
extern void md_finish_reshape(struct mddev *mddev);
void md_submit_discard_bio(struct mddev *mddev, struct md_rdev *rdev,
struct bio *bio, sector_t start, sector_t size);
+int acct_bioset_init(struct mddev *mddev);
+void acct_bioset_exit(struct mddev *mddev);
void md_account_bio(struct mddev *mddev, struct bio **bio);
extern bool __must_check md_flush_request(struct mddev *mddev, struct bio *bio);
diff --git a/drivers/md/persistent-data/dm-btree.c b/drivers/md/persistent-data/dm-btree.c
index 0703ca7a7d9a..5ce64e93aae7 100644
--- a/drivers/md/persistent-data/dm-btree.c
+++ b/drivers/md/persistent-data/dm-btree.c
@@ -81,14 +81,16 @@ void inc_children(struct dm_transaction_manager *tm, struct btree_node *n,
}
static int insert_at(size_t value_size, struct btree_node *node, unsigned index,
- uint64_t key, void *value)
- __dm_written_to_disk(value)
+ uint64_t key, void *value)
+ __dm_written_to_disk(value)
{
uint32_t nr_entries = le32_to_cpu(node->header.nr_entries);
+ uint32_t max_entries = le32_to_cpu(node->header.max_entries);
__le64 key_le = cpu_to_le64(key);
if (index > nr_entries ||
- index >= le32_to_cpu(node->header.max_entries)) {
+ index >= max_entries ||
+ nr_entries >= max_entries) {
DMERR("too many entries in btree node for insert");
__dm_unbless_for_disk(value);
return -ENOMEM;
diff --git a/drivers/md/persistent-data/dm-space-map-common.c b/drivers/md/persistent-data/dm-space-map-common.c
index 4a6a2a9b4eb4..bfbfa750e016 100644
--- a/drivers/md/persistent-data/dm-space-map-common.c
+++ b/drivers/md/persistent-data/dm-space-map-common.c
@@ -283,6 +283,11 @@ int sm_ll_lookup_bitmap(struct ll_disk *ll, dm_block_t b, uint32_t *result)
struct disk_index_entry ie_disk;
struct dm_block *blk;
+ if (b >= ll->nr_blocks) {
+ DMERR_LIMIT("metadata block out of bounds");
+ return -EINVAL;
+ }
+
b = do_div(index, ll->entries_per_block);
r = ll->load_ie(ll, index, &ie_disk);
if (r < 0)
diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c
index 62c8b6adac70..b59a77b31b90 100644
--- a/drivers/md/raid0.c
+++ b/drivers/md/raid0.c
@@ -356,7 +356,21 @@ static sector_t raid0_size(struct mddev *mddev, sector_t sectors, int raid_disks
return array_sectors;
}
-static void raid0_free(struct mddev *mddev, void *priv);
+static void free_conf(struct mddev *mddev, struct r0conf *conf)
+{
+ kfree(conf->strip_zone);
+ kfree(conf->devlist);
+ kfree(conf);
+ mddev->private = NULL;
+}
+
+static void raid0_free(struct mddev *mddev, void *priv)
+{
+ struct r0conf *conf = priv;
+
+ free_conf(mddev, conf);
+ acct_bioset_exit(mddev);
+}
static int raid0_run(struct mddev *mddev)
{
@@ -370,11 +384,16 @@ static int raid0_run(struct mddev *mddev)
if (md_check_no_bitmap(mddev))
return -EINVAL;
+ if (acct_bioset_init(mddev)) {
+ pr_err("md/raid0:%s: alloc acct bioset failed.\n", mdname(mddev));
+ return -ENOMEM;
+ }
+
/* if private is not null, we are here after takeover */
if (mddev->private == NULL) {
ret = create_strip_zones(mddev, &conf);
if (ret < 0)
- return ret;
+ goto exit_acct_set;
mddev->private = conf;
}
conf = mddev->private;
@@ -413,17 +432,16 @@ static int raid0_run(struct mddev *mddev)
dump_zones(mddev);
ret = md_integrity_register(mddev);
+ if (ret)
+ goto free;
return ret;
-}
-static void raid0_free(struct mddev *mddev, void *priv)
-{
- struct r0conf *conf = priv;
-
- kfree(conf->strip_zone);
- kfree(conf->devlist);
- kfree(conf);
+free:
+ free_conf(mddev, conf);
+exit_acct_set:
+ acct_bioset_exit(mddev);
+ return ret;
}
static void raid0_handle_discard(struct mddev *mddev, struct bio *bio)
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 9c1a5877cf9f..d7c16b1d21da 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -7446,12 +7446,19 @@ static int raid5_run(struct mddev *mddev)
struct md_rdev *rdev;
struct md_rdev *journal_dev = NULL;
sector_t reshape_offset = 0;
- int i;
+ int i, ret = 0;
long long min_offset_diff = 0;
int first = 1;
- if (mddev_init_writes_pending(mddev) < 0)
+ if (acct_bioset_init(mddev)) {
+ pr_err("md/raid456:%s: alloc acct bioset failed.\n", mdname(mddev));
return -ENOMEM;
+ }
+
+ if (mddev_init_writes_pending(mddev) < 0) {
+ ret = -ENOMEM;
+ goto exit_acct_set;
+ }
if (mddev->recovery_cp != MaxSector)
pr_notice("md/raid:%s: not clean -- starting background reconstruction\n",
@@ -7482,7 +7489,8 @@ static int raid5_run(struct mddev *mddev)
(mddev->bitmap_info.offset || mddev->bitmap_info.file)) {
pr_notice("md/raid:%s: array cannot have both journal and bitmap\n",
mdname(mddev));
- return -EINVAL;
+ ret = -EINVAL;
+ goto exit_acct_set;
}
if (mddev->reshape_position != MaxSector) {
@@ -7507,13 +7515,15 @@ static int raid5_run(struct mddev *mddev)
if (journal_dev) {
pr_warn("md/raid:%s: don't support reshape with journal - aborting.\n",
mdname(mddev));
- return -EINVAL;
+ ret = -EINVAL;
+ goto exit_acct_set;
}
if (mddev->new_level != mddev->level) {
pr_warn("md/raid:%s: unsupported reshape required - aborting.\n",
mdname(mddev));
- return -EINVAL;
+ ret = -EINVAL;
+ goto exit_acct_set;
}
old_disks = mddev->raid_disks - mddev->delta_disks;
/* reshape_position must be on a new-stripe boundary, and one
@@ -7529,7 +7539,8 @@ static int raid5_run(struct mddev *mddev)
if (sector_div(here_new, chunk_sectors * new_data_disks)) {
pr_warn("md/raid:%s: reshape_position not on a stripe boundary\n",
mdname(mddev));
- return -EINVAL;
+ ret = -EINVAL;
+ goto exit_acct_set;
}
reshape_offset = here_new * chunk_sectors;
/* here_new is the stripe we will write to */
@@ -7551,7 +7562,8 @@ static int raid5_run(struct mddev *mddev)
else if (mddev->ro == 0) {
pr_warn("md/raid:%s: in-place reshape must be started in read-only mode - aborting\n",
mdname(mddev));
- return -EINVAL;
+ ret = -EINVAL;
+ goto exit_acct_set;
}
} else if (mddev->reshape_backwards
? (here_new * chunk_sectors + min_offset_diff <=
@@ -7561,7 +7573,8 @@ static int raid5_run(struct mddev *mddev)
/* Reading from the same stripe as writing to - bad */
pr_warn("md/raid:%s: reshape_position too early for auto-recovery - aborting.\n",
mdname(mddev));
- return -EINVAL;
+ ret = -EINVAL;
+ goto exit_acct_set;
}
pr_debug("md/raid:%s: reshape will continue\n", mdname(mddev));
/* OK, we should be able to continue; */
@@ -7585,8 +7598,10 @@ static int raid5_run(struct mddev *mddev)
else
conf = mddev->private;
- if (IS_ERR(conf))
- return PTR_ERR(conf);
+ if (IS_ERR(conf)) {
+ ret = PTR_ERR(conf);
+ goto exit_acct_set;
+ }
if (test_bit(MD_HAS_JOURNAL, &mddev->flags)) {
if (!journal_dev) {
@@ -7783,7 +7798,10 @@ static int raid5_run(struct mddev *mddev)
free_conf(conf);
mddev->private = NULL;
pr_warn("md/raid:%s: failed to run raid set.\n", mdname(mddev));
- return -EIO;
+ ret = -EIO;
+exit_acct_set:
+ acct_bioset_exit(mddev);
+ return ret;
}
static void raid5_free(struct mddev *mddev, void *priv)
@@ -7791,6 +7809,7 @@ static void raid5_free(struct mddev *mddev, void *priv)
struct r5conf *conf = priv;
free_conf(conf);
+ acct_bioset_exit(mddev);
mddev->to_remove = &raid5_attrs_group;
}
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index b07812657cee..f3f24c63536b 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -141,10 +141,10 @@ config MEDIA_TEST_SUPPORT
prompt "Test drivers" if MEDIA_SUPPORT_FILTER
default y if !MEDIA_SUPPORT_FILTER
help
- Those drivers should not be used on production Kernels, but
- can be useful on debug ones. It enables several dummy drivers
- that simulate a real hardware. Very useful to test userspace
- applications and to validate if the subsystem core is doesn't
+ These drivers should not be used on production kernels, but
+ can be useful on debug ones. This option enables several dummy drivers
+ that simulate real hardware. Very useful to test userspace
+ applications and to validate if the subsystem core doesn't
have regressions.
Say Y if you want to use some virtual test driver.
diff --git a/drivers/media/cec/core/cec-adap.c b/drivers/media/cec/core/cec-adap.c
index cd9cb354dc2c..1f599e300e42 100644
--- a/drivers/media/cec/core/cec-adap.c
+++ b/drivers/media/cec/core/cec-adap.c
@@ -161,10 +161,10 @@ static void cec_queue_event(struct cec_adapter *adap,
u64 ts = ktime_get_ns();
struct cec_fh *fh;
- mutex_lock(&adap->devnode.lock);
+ mutex_lock(&adap->devnode.lock_fhs);
list_for_each_entry(fh, &adap->devnode.fhs, list)
cec_queue_event_fh(fh, ev, ts);
- mutex_unlock(&adap->devnode.lock);
+ mutex_unlock(&adap->devnode.lock_fhs);
}
/* Notify userspace that the CEC pin changed state at the given time. */
@@ -178,11 +178,12 @@ void cec_queue_pin_cec_event(struct cec_adapter *adap, bool is_high,
};
struct cec_fh *fh;
- mutex_lock(&adap->devnode.lock);
- list_for_each_entry(fh, &adap->devnode.fhs, list)
+ mutex_lock(&adap->devnode.lock_fhs);
+ list_for_each_entry(fh, &adap->devnode.fhs, list) {
if (fh->mode_follower == CEC_MODE_MONITOR_PIN)
cec_queue_event_fh(fh, &ev, ktime_to_ns(ts));
- mutex_unlock(&adap->devnode.lock);
+ }
+ mutex_unlock(&adap->devnode.lock_fhs);
}
EXPORT_SYMBOL_GPL(cec_queue_pin_cec_event);
@@ -195,10 +196,10 @@ void cec_queue_pin_hpd_event(struct cec_adapter *adap, bool is_high, ktime_t ts)
};
struct cec_fh *fh;
- mutex_lock(&adap->devnode.lock);
+ mutex_lock(&adap->devnode.lock_fhs);
list_for_each_entry(fh, &adap->devnode.fhs, list)
cec_queue_event_fh(fh, &ev, ktime_to_ns(ts));
- mutex_unlock(&adap->devnode.lock);
+ mutex_unlock(&adap->devnode.lock_fhs);
}
EXPORT_SYMBOL_GPL(cec_queue_pin_hpd_event);
@@ -211,10 +212,10 @@ void cec_queue_pin_5v_event(struct cec_adapter *adap, bool is_high, ktime_t ts)
};
struct cec_fh *fh;
- mutex_lock(&adap->devnode.lock);
+ mutex_lock(&adap->devnode.lock_fhs);
list_for_each_entry(fh, &adap->devnode.fhs, list)
cec_queue_event_fh(fh, &ev, ktime_to_ns(ts));
- mutex_unlock(&adap->devnode.lock);
+ mutex_unlock(&adap->devnode.lock_fhs);
}
EXPORT_SYMBOL_GPL(cec_queue_pin_5v_event);
@@ -286,12 +287,12 @@ static void cec_queue_msg_monitor(struct cec_adapter *adap,
u32 monitor_mode = valid_la ? CEC_MODE_MONITOR :
CEC_MODE_MONITOR_ALL;
- mutex_lock(&adap->devnode.lock);
+ mutex_lock(&adap->devnode.lock_fhs);
list_for_each_entry(fh, &adap->devnode.fhs, list) {
if (fh->mode_follower >= monitor_mode)
cec_queue_msg_fh(fh, msg);
}
- mutex_unlock(&adap->devnode.lock);
+ mutex_unlock(&adap->devnode.lock_fhs);
}
/*
@@ -302,12 +303,12 @@ static void cec_queue_msg_followers(struct cec_adapter *adap,
{
struct cec_fh *fh;
- mutex_lock(&adap->devnode.lock);
+ mutex_lock(&adap->devnode.lock_fhs);
list_for_each_entry(fh, &adap->devnode.fhs, list) {
if (fh->mode_follower == CEC_MODE_FOLLOWER)
cec_queue_msg_fh(fh, msg);
}
- mutex_unlock(&adap->devnode.lock);
+ mutex_unlock(&adap->devnode.lock_fhs);
}
/* Notify userspace of an adapter state change. */
@@ -1573,6 +1574,7 @@ void __cec_s_phys_addr(struct cec_adapter *adap, u16 phys_addr, bool block)
/* Disabling monitor all mode should always succeed */
if (adap->monitor_all_cnt)
WARN_ON(call_op(adap, adap_monitor_all_enable, false));
+ /* serialize adap_enable */
mutex_lock(&adap->devnode.lock);
if (adap->needs_hpd || list_empty(&adap->devnode.fhs)) {
WARN_ON(adap->ops->adap_enable(adap, false));
@@ -1584,14 +1586,16 @@ void __cec_s_phys_addr(struct cec_adapter *adap, u16 phys_addr, bool block)
return;
}
+ /* serialize adap_enable */
mutex_lock(&adap->devnode.lock);
adap->last_initiator = 0xff;
adap->transmit_in_progress = false;
- if ((adap->needs_hpd || list_empty(&adap->devnode.fhs)) &&
- adap->ops->adap_enable(adap, true)) {
- mutex_unlock(&adap->devnode.lock);
- return;
+ if (adap->needs_hpd || list_empty(&adap->devnode.fhs)) {
+ if (adap->ops->adap_enable(adap, true)) {
+ mutex_unlock(&adap->devnode.lock);
+ return;
+ }
}
if (adap->monitor_all_cnt &&
diff --git a/drivers/media/cec/core/cec-api.c b/drivers/media/cec/core/cec-api.c
index 769e6b4cddce..52c30e4e2005 100644
--- a/drivers/media/cec/core/cec-api.c
+++ b/drivers/media/cec/core/cec-api.c
@@ -586,6 +586,7 @@ static int cec_open(struct inode *inode, struct file *filp)
return err;
}
+ /* serialize adap_enable */
mutex_lock(&devnode->lock);
if (list_empty(&devnode->fhs) &&
!adap->needs_hpd &&
@@ -624,7 +625,9 @@ static int cec_open(struct inode *inode, struct file *filp)
}
#endif
+ mutex_lock(&devnode->lock_fhs);
list_add(&fh->list, &devnode->fhs);
+ mutex_unlock(&devnode->lock_fhs);
mutex_unlock(&devnode->lock);
return 0;
@@ -653,8 +656,11 @@ static int cec_release(struct inode *inode, struct file *filp)
cec_monitor_all_cnt_dec(adap);
mutex_unlock(&adap->lock);
+ /* serialize adap_enable */
mutex_lock(&devnode->lock);
+ mutex_lock(&devnode->lock_fhs);
list_del(&fh->list);
+ mutex_unlock(&devnode->lock_fhs);
if (cec_is_registered(adap) && list_empty(&devnode->fhs) &&
!adap->needs_hpd && adap->phys_addr == CEC_PHYS_ADDR_INVALID) {
WARN_ON(adap->ops->adap_enable(adap, false));
diff --git a/drivers/media/cec/core/cec-core.c b/drivers/media/cec/core/cec-core.c
index 551689d371a7..ec67065d5202 100644
--- a/drivers/media/cec/core/cec-core.c
+++ b/drivers/media/cec/core/cec-core.c
@@ -169,8 +169,10 @@ static void cec_devnode_unregister(struct cec_adapter *adap)
devnode->registered = false;
devnode->unregistered = true;
+ mutex_lock(&devnode->lock_fhs);
list_for_each_entry(fh, &devnode->fhs, list)
wake_up_interruptible(&fh->wait);
+ mutex_unlock(&devnode->lock_fhs);
mutex_unlock(&devnode->lock);
@@ -272,6 +274,7 @@ struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
/* adap->devnode initialization */
INIT_LIST_HEAD(&adap->devnode.fhs);
+ mutex_init(&adap->devnode.lock_fhs);
mutex_init(&adap->devnode.lock);
adap->kthread = kthread_run(cec_thread_func, adap, "cec-%s", name);
diff --git a/drivers/media/cec/core/cec-pin.c b/drivers/media/cec/core/cec-pin.c
index a60b6f03a6a1..178edc85dc92 100644
--- a/drivers/media/cec/core/cec-pin.c
+++ b/drivers/media/cec/core/cec-pin.c
@@ -1033,6 +1033,7 @@ static int cec_pin_thread_func(void *_adap)
{
struct cec_adapter *adap = _adap;
struct cec_pin *pin = adap->pin;
+ bool irq_enabled = false;
for (;;) {
wait_event_interruptible(pin->kthread_waitq,
@@ -1060,6 +1061,7 @@ static int cec_pin_thread_func(void *_adap)
ns_to_ktime(pin->work_rx_msg.rx_ts));
msg->len = 0;
}
+
if (pin->work_tx_status) {
unsigned int tx_status = pin->work_tx_status;
@@ -1083,27 +1085,39 @@ static int cec_pin_thread_func(void *_adap)
switch (atomic_xchg(&pin->work_irq_change,
CEC_PIN_IRQ_UNCHANGED)) {
case CEC_PIN_IRQ_DISABLE:
- pin->ops->disable_irq(adap);
+ if (irq_enabled) {
+ pin->ops->disable_irq(adap);
+ irq_enabled = false;
+ }
cec_pin_high(pin);
cec_pin_to_idle(pin);
hrtimer_start(&pin->timer, ns_to_ktime(0),
HRTIMER_MODE_REL);
break;
case CEC_PIN_IRQ_ENABLE:
+ if (irq_enabled)
+ break;
pin->enable_irq_failed = !pin->ops->enable_irq(adap);
if (pin->enable_irq_failed) {
cec_pin_to_idle(pin);
hrtimer_start(&pin->timer, ns_to_ktime(0),
HRTIMER_MODE_REL);
+ } else {
+ irq_enabled = true;
}
break;
default:
break;
}
-
if (kthread_should_stop())
break;
}
+ if (pin->ops->disable_irq && irq_enabled)
+ pin->ops->disable_irq(adap);
+ hrtimer_cancel(&pin->timer);
+ cec_pin_read(pin);
+ cec_pin_to_idle(pin);
+ pin->state = CEC_ST_OFF;
return 0;
}
@@ -1130,13 +1144,7 @@ static int cec_pin_adap_enable(struct cec_adapter *adap, bool enable)
hrtimer_start(&pin->timer, ns_to_ktime(0),
HRTIMER_MODE_REL);
} else {
- if (pin->ops->disable_irq)
- pin->ops->disable_irq(adap);
- hrtimer_cancel(&pin->timer);
kthread_stop(pin->kthread);
- cec_pin_read(pin);
- cec_pin_to_idle(pin);
- pin->state = CEC_ST_OFF;
}
return 0;
}
@@ -1157,11 +1165,8 @@ void cec_pin_start_timer(struct cec_pin *pin)
if (pin->state != CEC_ST_RX_IRQ)
return;
- atomic_set(&pin->work_irq_change, CEC_PIN_IRQ_UNCHANGED);
- pin->ops->disable_irq(pin->adap);
- cec_pin_high(pin);
- cec_pin_to_idle(pin);
- hrtimer_start(&pin->timer, ns_to_ktime(0), HRTIMER_MODE_REL);
+ atomic_set(&pin->work_irq_change, CEC_PIN_IRQ_DISABLE);
+ wake_up_interruptible(&pin->kthread_waitq);
}
static int cec_pin_adap_transmit(struct cec_adapter *adap, u8 attempts,
diff --git a/drivers/media/common/saa7146/saa7146_fops.c b/drivers/media/common/saa7146/saa7146_fops.c
index baf5772c52a9..be3215977714 100644
--- a/drivers/media/common/saa7146/saa7146_fops.c
+++ b/drivers/media/common/saa7146/saa7146_fops.c
@@ -521,7 +521,7 @@ int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv)
ERR("out of memory. aborting.\n");
kfree(vv);
v4l2_ctrl_handler_free(hdl);
- return -1;
+ return -ENOMEM;
}
saa7146_video_uops.init(dev,vv);
diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c
index 556e42ba66e5..7c4096e62173 100644
--- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c
+++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c
@@ -257,7 +257,7 @@ static void *vb2_dc_alloc(struct vb2_buffer *vb,
ret = vb2_dc_alloc_coherent(buf);
if (ret) {
- dev_err(dev, "dma alloc of size %ld failed\n", size);
+ dev_err(dev, "dma alloc of size %lu failed\n", size);
kfree(buf);
return ERR_PTR(-ENOMEM);
}
@@ -298,9 +298,9 @@ static int vb2_dc_mmap(void *buf_priv, struct vm_area_struct *vma)
vma->vm_ops->open(vma);
- pr_debug("%s: mapped dma addr 0x%08lx at 0x%08lx, size %ld\n",
- __func__, (unsigned long)buf->dma_addr, vma->vm_start,
- buf->size);
+ pr_debug("%s: mapped dma addr 0x%08lx at 0x%08lx, size %lu\n",
+ __func__, (unsigned long)buf->dma_addr, vma->vm_start,
+ buf->size);
return 0;
}
diff --git a/drivers/media/dvb-core/dmxdev.c b/drivers/media/dvb-core/dmxdev.c
index 5d5a48475a54..01f288fa37e0 100644
--- a/drivers/media/dvb-core/dmxdev.c
+++ b/drivers/media/dvb-core/dmxdev.c
@@ -1413,7 +1413,7 @@ static const struct dvb_device dvbdev_dvr = {
};
int dvb_dmxdev_init(struct dmxdev *dmxdev, struct dvb_adapter *dvb_adapter)
{
- int i;
+ int i, ret;
if (dmxdev->demux->open(dmxdev->demux) < 0)
return -EUSERS;
@@ -1432,14 +1432,26 @@ int dvb_dmxdev_init(struct dmxdev *dmxdev, struct dvb_adapter *dvb_adapter)
DMXDEV_STATE_FREE);
}
- dvb_register_device(dvb_adapter, &dmxdev->dvbdev, &dvbdev_demux, dmxdev,
+ ret = dvb_register_device(dvb_adapter, &dmxdev->dvbdev, &dvbdev_demux, dmxdev,
DVB_DEVICE_DEMUX, dmxdev->filternum);
- dvb_register_device(dvb_adapter, &dmxdev->dvr_dvbdev, &dvbdev_dvr,
+ if (ret < 0)
+ goto err_register_dvbdev;
+
+ ret = dvb_register_device(dvb_adapter, &dmxdev->dvr_dvbdev, &dvbdev_dvr,
dmxdev, DVB_DEVICE_DVR, dmxdev->filternum);
+ if (ret < 0)
+ goto err_register_dvr_dvbdev;
dvb_ringbuffer_init(&dmxdev->dvr_buffer, NULL, 8192);
return 0;
+
+err_register_dvr_dvbdev:
+ dvb_unregister_device(dmxdev->dvbdev);
+err_register_dvbdev:
+ vfree(dmxdev->filter);
+ dmxdev->filter = NULL;
+ return ret;
}
EXPORT_SYMBOL(dvb_dmxdev_init);
diff --git a/drivers/media/dvb-frontends/dib8000.c b/drivers/media/dvb-frontends/dib8000.c
index bb02354a48b8..d67f2dd997d0 100644
--- a/drivers/media/dvb-frontends/dib8000.c
+++ b/drivers/media/dvb-frontends/dib8000.c
@@ -4473,8 +4473,10 @@ static struct dvb_frontend *dib8000_init(struct i2c_adapter *i2c_adap, u8 i2c_ad
state->timf_default = cfg->pll->timf;
- if (dib8000_identify(&state->i2c) == 0)
+ if (dib8000_identify(&state->i2c) == 0) {
+ kfree(fe);
goto error;
+ }
dibx000_init_i2c_master(&state->i2c_master, DIB8000, state->i2c.adap, state->i2c.addr);
diff --git a/drivers/media/i2c/imx274.c b/drivers/media/i2c/imx274.c
index 0dce92872176..4d9b64c61f60 100644
--- a/drivers/media/i2c/imx274.c
+++ b/drivers/media/i2c/imx274.c
@@ -1367,6 +1367,10 @@ static int imx274_s_frame_interval(struct v4l2_subdev *sd,
int min, max, def;
int ret;
+ ret = pm_runtime_resume_and_get(&imx274->client->dev);
+ if (ret < 0)
+ return ret;
+
mutex_lock(&imx274->lock);
ret = imx274_set_frame_interval(imx274, fi->interval);
@@ -1398,6 +1402,7 @@ static int imx274_s_frame_interval(struct v4l2_subdev *sd,
unlock:
mutex_unlock(&imx274->lock);
+ pm_runtime_put(&imx274->client->dev);
return ret;
}
diff --git a/drivers/media/i2c/ov8865.c b/drivers/media/i2c/ov8865.c
index ce50f3ea87b8..92f6c3a940cf 100644
--- a/drivers/media/i2c/ov8865.c
+++ b/drivers/media/i2c/ov8865.c
@@ -2330,27 +2330,27 @@ static int ov8865_sensor_power(struct ov8865_sensor *sensor, bool on)
if (ret) {
dev_err(sensor->dev,
"failed to enable DOVDD regulator\n");
- goto disable;
+ return ret;
}
ret = regulator_enable(sensor->avdd);
if (ret) {
dev_err(sensor->dev,
"failed to enable AVDD regulator\n");
- goto disable;
+ goto disable_dovdd;
}
ret = regulator_enable(sensor->dvdd);
if (ret) {
dev_err(sensor->dev,
"failed to enable DVDD regulator\n");
- goto disable;
+ goto disable_avdd;
}
ret = clk_prepare_enable(sensor->extclk);
if (ret) {
dev_err(sensor->dev, "failed to enable EXTCLK clock\n");
- goto disable;
+ goto disable_dvdd;
}
gpiod_set_value_cansleep(sensor->reset, 0);
@@ -2359,14 +2359,16 @@ static int ov8865_sensor_power(struct ov8865_sensor *sensor, bool on)
/* Time to enter streaming mode according to power timings. */
usleep_range(10000, 12000);
} else {
-disable:
gpiod_set_value_cansleep(sensor->powerdown, 1);
gpiod_set_value_cansleep(sensor->reset, 1);
clk_disable_unprepare(sensor->extclk);
+disable_dvdd:
regulator_disable(sensor->dvdd);
+disable_avdd:
regulator_disable(sensor->avdd);
+disable_dovdd:
regulator_disable(sensor->dovdd);
}
@@ -2891,14 +2893,16 @@ static int ov8865_probe(struct i2c_client *client)
if (ret)
goto error_mutex;
+ mutex_lock(&sensor->mutex);
ret = ov8865_state_init(sensor);
+ mutex_unlock(&sensor->mutex);
if (ret)
goto error_ctrls;
/* Runtime PM */
- pm_runtime_enable(sensor->dev);
pm_runtime_set_suspended(sensor->dev);
+ pm_runtime_enable(sensor->dev);
/* V4L2 subdev register */
diff --git a/drivers/media/pci/b2c2/flexcop-pci.c b/drivers/media/pci/b2c2/flexcop-pci.c
index 6a4c7cb0ad0f..486c8ec0fa60 100644
--- a/drivers/media/pci/b2c2/flexcop-pci.c
+++ b/drivers/media/pci/b2c2/flexcop-pci.c
@@ -185,6 +185,8 @@ static irqreturn_t flexcop_pci_isr(int irq, void *dev_id)
dma_addr_t cur_addr =
fc->read_ibi_reg(fc,dma1_008).dma_0x8.dma_cur_addr << 2;
u32 cur_pos = cur_addr - fc_pci->dma[0].dma_addr0;
+ if (cur_pos > fc_pci->dma[0].size * 2)
+ goto error;
deb_irq("%u irq: %08x cur_addr: %llx: cur_pos: %08x, last_cur_pos: %08x ",
jiffies_to_usecs(jiffies - fc_pci->last_irq),
@@ -225,6 +227,7 @@ static irqreturn_t flexcop_pci_isr(int irq, void *dev_id)
ret = IRQ_NONE;
}
+error:
spin_unlock_irqrestore(&fc_pci->irq_lock, flags);
return ret;
}
diff --git a/drivers/media/pci/intel/ipu3/cio2-bridge.c b/drivers/media/pci/intel/ipu3/cio2-bridge.c
index 67c467d3c81f..0b586b4e537e 100644
--- a/drivers/media/pci/intel/ipu3/cio2-bridge.c
+++ b/drivers/media/pci/intel/ipu3/cio2-bridge.c
@@ -238,8 +238,10 @@ static int cio2_bridge_connect_sensor(const struct cio2_sensor_config *cfg,
goto err_put_adev;
status = acpi_get_physical_device_location(adev->handle, &sensor->pld);
- if (ACPI_FAILURE(status))
+ if (ACPI_FAILURE(status)) {
+ ret = -ENODEV;
goto err_put_adev;
+ }
if (sensor->ssdb.lanes > CIO2_MAX_LANES) {
dev_err(&adev->dev,
diff --git a/drivers/media/pci/saa7146/hexium_gemini.c b/drivers/media/pci/saa7146/hexium_gemini.c
index 2214c74bbbf1..3947701cd6c7 100644
--- a/drivers/media/pci/saa7146/hexium_gemini.c
+++ b/drivers/media/pci/saa7146/hexium_gemini.c
@@ -284,7 +284,12 @@ static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_d
hexium_set_input(hexium, 0);
hexium->cur_input = 0;
- saa7146_vv_init(dev, &vv_data);
+ ret = saa7146_vv_init(dev, &vv_data);
+ if (ret) {
+ i2c_del_adapter(&hexium->i2c_adapter);
+ kfree(hexium);
+ return ret;
+ }
vv_data.vid_ops.vidioc_enum_input = vidioc_enum_input;
vv_data.vid_ops.vidioc_g_input = vidioc_g_input;
diff --git a/drivers/media/pci/saa7146/hexium_orion.c b/drivers/media/pci/saa7146/hexium_orion.c
index 39d14c179d22..2eb4bee16b71 100644
--- a/drivers/media/pci/saa7146/hexium_orion.c
+++ b/drivers/media/pci/saa7146/hexium_orion.c
@@ -355,10 +355,16 @@ static struct saa7146_ext_vv vv_data;
static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info)
{
struct hexium *hexium = (struct hexium *) dev->ext_priv;
+ int ret;
DEB_EE("\n");
- saa7146_vv_init(dev, &vv_data);
+ ret = saa7146_vv_init(dev, &vv_data);
+ if (ret) {
+ pr_err("Error in saa7146_vv_init()\n");
+ return ret;
+ }
+
vv_data.vid_ops.vidioc_enum_input = vidioc_enum_input;
vv_data.vid_ops.vidioc_g_input = vidioc_g_input;
vv_data.vid_ops.vidioc_s_input = vidioc_s_input;
diff --git a/drivers/media/pci/saa7146/mxb.c b/drivers/media/pci/saa7146/mxb.c
index 73fc901ecf3d..bf0b9b0914cd 100644
--- a/drivers/media/pci/saa7146/mxb.c
+++ b/drivers/media/pci/saa7146/mxb.c
@@ -683,10 +683,16 @@ static struct saa7146_ext_vv vv_data;
static int mxb_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info)
{
struct mxb *mxb;
+ int ret;
DEB_EE("dev:%p\n", dev);
- saa7146_vv_init(dev, &vv_data);
+ ret = saa7146_vv_init(dev, &vv_data);
+ if (ret) {
+ ERR("Error in saa7146_vv_init()");
+ return ret;
+ }
+
if (mxb_probe(dev)) {
saa7146_vv_release(dev);
return -1;
diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c
index cad3f97515ae..7a24daf7165a 100644
--- a/drivers/media/platform/aspeed-video.c
+++ b/drivers/media/platform/aspeed-video.c
@@ -539,6 +539,10 @@ static void aspeed_video_enable_mode_detect(struct aspeed_video *video)
aspeed_video_update(video, VE_INTERRUPT_CTRL, 0,
VE_INTERRUPT_MODE_DETECT);
+ /* Disable mode detect in order to re-trigger */
+ aspeed_video_update(video, VE_SEQ_CTRL,
+ VE_SEQ_CTRL_TRIG_MODE_DET, 0);
+
/* Trigger mode detect */
aspeed_video_update(video, VE_SEQ_CTRL, 0, VE_SEQ_CTRL_TRIG_MODE_DET);
}
@@ -591,6 +595,8 @@ static void aspeed_video_irq_res_change(struct aspeed_video *video, ulong delay)
set_bit(VIDEO_RES_CHANGE, &video->flags);
clear_bit(VIDEO_FRAME_INPRG, &video->flags);
+ video->v4l2_input_status = V4L2_IN_ST_NO_SIGNAL;
+
aspeed_video_off(video);
aspeed_video_bufs_done(video, VB2_BUF_STATE_ERROR);
@@ -824,10 +830,6 @@ static void aspeed_video_get_resolution(struct aspeed_video *video)
return;
}
- /* Disable mode detect in order to re-trigger */
- aspeed_video_update(video, VE_SEQ_CTRL,
- VE_SEQ_CTRL_TRIG_MODE_DET, 0);
-
aspeed_video_check_and_set_polarity(video);
aspeed_video_enable_mode_detect(video);
@@ -1375,7 +1377,6 @@ static void aspeed_video_resolution_work(struct work_struct *work)
struct delayed_work *dwork = to_delayed_work(work);
struct aspeed_video *video = container_of(dwork, struct aspeed_video,
res_work);
- u32 input_status = video->v4l2_input_status;
aspeed_video_on(video);
@@ -1388,8 +1389,7 @@ static void aspeed_video_resolution_work(struct work_struct *work)
aspeed_video_get_resolution(video);
if (video->detected_timings.width != video->active_timings.width ||
- video->detected_timings.height != video->active_timings.height ||
- input_status != video->v4l2_input_status) {
+ video->detected_timings.height != video->active_timings.height) {
static const struct v4l2_event ev = {
.type = V4L2_EVENT_SOURCE_CHANGE,
.u.src_change.changes = V4L2_EVENT_SRC_CH_RESOLUTION,
diff --git a/drivers/media/platform/coda/coda-common.c b/drivers/media/platform/coda/coda-common.c
index 0e312b0842d7..9a2640a9c75c 100644
--- a/drivers/media/platform/coda/coda-common.c
+++ b/drivers/media/platform/coda/coda-common.c
@@ -1537,11 +1537,13 @@ static void coda_pic_run_work(struct work_struct *work)
if (!wait_for_completion_timeout(&ctx->completion,
msecs_to_jiffies(1000))) {
- dev_err(dev->dev, "CODA PIC_RUN timeout\n");
+ if (ctx->use_bit) {
+ dev_err(dev->dev, "CODA PIC_RUN timeout\n");
- ctx->hold = true;
+ ctx->hold = true;
- coda_hw_reset(ctx);
+ coda_hw_reset(ctx);
+ }
if (ctx->ops->run_timeout)
ctx->ops->run_timeout(ctx);
diff --git a/drivers/media/platform/coda/coda-jpeg.c b/drivers/media/platform/coda/coda-jpeg.c
index b11cfbe166dd..a72f4655e5ad 100644
--- a/drivers/media/platform/coda/coda-jpeg.c
+++ b/drivers/media/platform/coda/coda-jpeg.c
@@ -1127,7 +1127,8 @@ static int coda9_jpeg_prepare_encode(struct coda_ctx *ctx)
coda_write(dev, 0, CODA9_REG_JPEG_GBU_BT_PTR);
coda_write(dev, 0, CODA9_REG_JPEG_GBU_WD_PTR);
coda_write(dev, 0, CODA9_REG_JPEG_GBU_BBSR);
- coda_write(dev, 0, CODA9_REG_JPEG_BBC_STRM_CTRL);
+ coda_write(dev, BIT(31) | ((end_addr - start_addr - header_len) / 256),
+ CODA9_REG_JPEG_BBC_STRM_CTRL);
coda_write(dev, 0, CODA9_REG_JPEG_GBU_CTRL);
coda_write(dev, 0, CODA9_REG_JPEG_GBU_FF_RPTR);
coda_write(dev, 127, CODA9_REG_JPEG_GBU_BBER);
@@ -1257,6 +1258,23 @@ static void coda9_jpeg_finish_encode(struct coda_ctx *ctx)
coda_hw_reset(ctx);
}
+static void coda9_jpeg_encode_timeout(struct coda_ctx *ctx)
+{
+ struct coda_dev *dev = ctx->dev;
+ u32 end_addr, wr_ptr;
+
+ /* Handle missing BBC overflow interrupt via timeout */
+ end_addr = coda_read(dev, CODA9_REG_JPEG_BBC_END_ADDR);
+ wr_ptr = coda_read(dev, CODA9_REG_JPEG_BBC_WR_PTR);
+ if (wr_ptr >= end_addr - 256) {
+ v4l2_err(&dev->v4l2_dev, "JPEG too large for capture buffer\n");
+ coda9_jpeg_finish_encode(ctx);
+ return;
+ }
+
+ coda_hw_reset(ctx);
+}
+
static void coda9_jpeg_release(struct coda_ctx *ctx)
{
int i;
@@ -1276,6 +1294,7 @@ const struct coda_context_ops coda9_jpeg_encode_ops = {
.start_streaming = coda9_jpeg_start_encoding,
.prepare_run = coda9_jpeg_prepare_encode,
.finish_run = coda9_jpeg_finish_encode,
+ .run_timeout = coda9_jpeg_encode_timeout,
.release = coda9_jpeg_release,
};
diff --git a/drivers/media/platform/coda/imx-vdoa.c b/drivers/media/platform/coda/imx-vdoa.c
index 6996d4571e36..00643f37b3e6 100644
--- a/drivers/media/platform/coda/imx-vdoa.c
+++ b/drivers/media/platform/coda/imx-vdoa.c
@@ -287,7 +287,11 @@ static int vdoa_probe(struct platform_device *pdev)
struct resource *res;
int ret;
- dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
+ ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
+ if (ret) {
+ dev_err(&pdev->dev, "DMA enable failed\n");
+ return ret;
+ }
vdoa = devm_kzalloc(&pdev->dev, sizeof(*vdoa), GFP_KERNEL);
if (!vdoa)
diff --git a/drivers/media/platform/imx-pxp.c b/drivers/media/platform/imx-pxp.c
index 723b096fedd1..b7174778db53 100644
--- a/drivers/media/platform/imx-pxp.c
+++ b/drivers/media/platform/imx-pxp.c
@@ -1659,6 +1659,8 @@ static int pxp_probe(struct platform_device *pdev)
if (irq < 0)
return irq;
+ spin_lock_init(&dev->irqlock);
+
ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, pxp_irq_handler,
IRQF_ONESHOT, dev_name(&pdev->dev), dev);
if (ret < 0) {
@@ -1676,8 +1678,6 @@ static int pxp_probe(struct platform_device *pdev)
goto err_clk;
}
- spin_lock_init(&dev->irqlock);
-
ret = v4l2_device_register(&pdev->dev, &dev->v4l2_dev);
if (ret)
goto err_clk;
diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
index e6e6a8203eeb..8277c44209b5 100644
--- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
+++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
@@ -358,6 +358,8 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
if (dev->vdec_pdata->uses_stateless_api)
v4l2_m2m_unregister_media_controller(dev->m2m_dev_dec);
err_reg_cont:
+ if (dev->vdec_pdata->uses_stateless_api)
+ media_device_cleanup(&dev->mdev_dec);
destroy_workqueue(dev->decode_workqueue);
err_event_workq:
v4l2_m2m_release(dev->m2m_dev_dec);
diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
index eed67394cf46..f898226fc53e 100644
--- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
+++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
@@ -214,11 +214,11 @@ static int fops_vcodec_release(struct file *file)
mtk_v4l2_debug(1, "[%d] encoder", ctx->id);
mutex_lock(&dev->dev_mutex);
+ v4l2_m2m_ctx_release(ctx->m2m_ctx);
mtk_vcodec_enc_release(ctx);
v4l2_fh_del(&ctx->fh);
v4l2_fh_exit(&ctx->fh);
v4l2_ctrl_handler_free(&ctx->ctrl_hdl);
- v4l2_m2m_ctx_release(ctx->m2m_ctx);
list_del_init(&ctx->list);
kfree(ctx);
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index f5fa81896012..877eca125803 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -350,11 +350,11 @@ static int venus_probe(struct platform_device *pdev)
ret = venus_firmware_init(core);
if (ret)
- goto err_runtime_disable;
+ goto err_of_depopulate;
ret = venus_boot(core);
if (ret)
- goto err_runtime_disable;
+ goto err_firmware_deinit;
ret = hfi_core_resume(core, true);
if (ret)
@@ -386,6 +386,10 @@ static int venus_probe(struct platform_device *pdev)
v4l2_device_unregister(&core->v4l2_dev);
err_venus_shutdown:
venus_shutdown(core);
+err_firmware_deinit:
+ venus_firmware_deinit(core);
+err_of_depopulate:
+ of_platform_depopulate(dev);
err_runtime_disable:
pm_runtime_put_noidle(dev);
pm_runtime_set_suspended(dev);
@@ -473,7 +477,8 @@ static __maybe_unused int venus_runtime_suspend(struct device *dev)
err_video_path:
icc_set_bw(core->cpucfg_path, kbps_to_icc(1000), 0);
err_cpucfg_path:
- pm_ops->core_power(core, POWER_ON);
+ if (pm_ops->core_power)
+ pm_ops->core_power(core, POWER_ON);
return ret;
}
diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c
index cedc664ba755..cb48c5ff3dee 100644
--- a/drivers/media/platform/qcom/venus/pm_helpers.c
+++ b/drivers/media/platform/qcom/venus/pm_helpers.c
@@ -163,14 +163,12 @@ static u32 load_per_type(struct venus_core *core, u32 session_type)
struct venus_inst *inst = NULL;
u32 mbs_per_sec = 0;
- mutex_lock(&core->lock);
list_for_each_entry(inst, &core->instances, list) {
if (inst->session_type != session_type)
continue;
mbs_per_sec += load_per_instance(inst);
}
- mutex_unlock(&core->lock);
return mbs_per_sec;
}
@@ -219,14 +217,12 @@ static int load_scale_bw(struct venus_core *core)
struct venus_inst *inst = NULL;
u32 mbs_per_sec, avg, peak, total_avg = 0, total_peak = 0;
- mutex_lock(&core->lock);
list_for_each_entry(inst, &core->instances, list) {
mbs_per_sec = load_per_instance(inst);
mbs_to_bw(inst, mbs_per_sec, &avg, &peak);
total_avg += avg;
total_peak += peak;
}
- mutex_unlock(&core->lock);
/*
* keep minimum bandwidth vote for "video-mem" path,
@@ -253,8 +249,9 @@ static int load_scale_v1(struct venus_inst *inst)
struct device *dev = core->dev;
u32 mbs_per_sec;
unsigned int i;
- int ret;
+ int ret = 0;
+ mutex_lock(&core->lock);
mbs_per_sec = load_per_type(core, VIDC_SESSION_TYPE_ENC) +
load_per_type(core, VIDC_SESSION_TYPE_DEC);
@@ -279,17 +276,19 @@ static int load_scale_v1(struct venus_inst *inst)
if (ret) {
dev_err(dev, "failed to set clock rate %lu (%d)\n",
freq, ret);
- return ret;
+ goto exit;
}
ret = load_scale_bw(core);
if (ret) {
dev_err(dev, "failed to set bandwidth (%d)\n",
ret);
- return ret;
+ goto exit;
}
- return 0;
+exit:
+ mutex_unlock(&core->lock);
+ return ret;
}
static int core_get_v1(struct venus_core *core)
@@ -587,8 +586,8 @@ min_loaded_core(struct venus_inst *inst, u32 *min_coreid, u32 *min_load, bool lo
if (inst->session_type == VIDC_SESSION_TYPE_DEC)
vpp_freq = inst_pos->clk_data.vpp_freq;
else if (inst->session_type == VIDC_SESSION_TYPE_ENC)
- vpp_freq = low_power ? inst_pos->clk_data.vpp_freq :
- inst_pos->clk_data.low_power_freq;
+ vpp_freq = low_power ? inst_pos->clk_data.low_power_freq :
+ inst_pos->clk_data.vpp_freq;
else
continue;
@@ -1116,13 +1115,13 @@ static int load_scale_v4(struct venus_inst *inst)
struct device *dev = core->dev;
unsigned long freq = 0, freq_core1 = 0, freq_core2 = 0;
unsigned long filled_len = 0;
- int i, ret;
+ int i, ret = 0;
for (i = 0; i < inst->num_input_bufs; i++)
filled_len = max(filled_len, inst->payloads[i]);
if (inst->session_type == VIDC_SESSION_TYPE_DEC && !filled_len)
- return 0;
+ return ret;
freq = calculate_inst_freq(inst, filled_len);
inst->clk_data.freq = freq;
@@ -1138,7 +1137,6 @@ static int load_scale_v4(struct venus_inst *inst)
freq_core2 += inst->clk_data.freq;
}
}
- mutex_unlock(&core->lock);
freq = max(freq_core1, freq_core2);
@@ -1163,17 +1161,19 @@ static int load_scale_v4(struct venus_inst *inst)
if (ret) {
dev_err(dev, "failed to set clock rate %lu (%d)\n",
freq, ret);
- return ret;
+ goto exit;
}
ret = load_scale_bw(core);
if (ret) {
dev_err(dev, "failed to set bandwidth (%d)\n",
ret);
- return ret;
+ goto exit;
}
- return 0;
+exit:
+ mutex_unlock(&core->lock);
+ return ret;
}
static const struct venus_pm_ops pm_ops_v4 = {
diff --git a/drivers/media/platform/rcar-vin/rcar-csi2.c b/drivers/media/platform/rcar-vin/rcar-csi2.c
index 11848d0c4a55..c9b2700e1255 100644
--- a/drivers/media/platform/rcar-vin/rcar-csi2.c
+++ b/drivers/media/platform/rcar-vin/rcar-csi2.c
@@ -542,16 +542,23 @@ static int rcsi2_wait_phy_start(struct rcar_csi2 *priv,
static int rcsi2_set_phypll(struct rcar_csi2 *priv, unsigned int mbps)
{
const struct rcsi2_mbps_reg *hsfreq;
+ const struct rcsi2_mbps_reg *hsfreq_prev = NULL;
- for (hsfreq = priv->info->hsfreqrange; hsfreq->mbps != 0; hsfreq++)
+ for (hsfreq = priv->info->hsfreqrange; hsfreq->mbps != 0; hsfreq++) {
if (hsfreq->mbps >= mbps)
break;
+ hsfreq_prev = hsfreq;
+ }
if (!hsfreq->mbps) {
dev_err(priv->dev, "Unsupported PHY speed (%u Mbps)", mbps);
return -ERANGE;
}
+ if (hsfreq_prev &&
+ ((mbps - hsfreq_prev->mbps) <= (hsfreq->mbps - mbps)))
+ hsfreq = hsfreq_prev;
+
rcsi2_write(priv, PHYPLL_REG, PHYPLL_HSFREQRANGE(hsfreq->reg));
return 0;
@@ -1097,10 +1104,17 @@ static int rcsi2_phtw_write_mbps(struct rcar_csi2 *priv, unsigned int mbps,
const struct rcsi2_mbps_reg *values, u16 code)
{
const struct rcsi2_mbps_reg *value;
+ const struct rcsi2_mbps_reg *prev_value = NULL;
- for (value = values; value->mbps; value++)
+ for (value = values; value->mbps; value++) {
if (value->mbps >= mbps)
break;
+ prev_value = value;
+ }
+
+ if (prev_value &&
+ ((mbps - prev_value->mbps) <= (value->mbps - mbps)))
+ value = prev_value;
if (!value->mbps) {
dev_err(priv->dev, "Unsupported PHY speed (%u Mbps)", mbps);
diff --git a/drivers/media/platform/rcar-vin/rcar-v4l2.c b/drivers/media/platform/rcar-vin/rcar-v4l2.c
index a5bfa76fdac6..2e60b9fce03b 100644
--- a/drivers/media/platform/rcar-vin/rcar-v4l2.c
+++ b/drivers/media/platform/rcar-vin/rcar-v4l2.c
@@ -179,20 +179,27 @@ static void rvin_format_align(struct rvin_dev *vin, struct v4l2_pix_format *pix)
break;
}
- /* HW limit width to a multiple of 32 (2^5) for NV12/16 else 2 (2^1) */
+ /* Hardware limits width alignment based on format. */
switch (pix->pixelformat) {
+ /* Multiple of 32 (2^5) for NV12/16. */
case V4L2_PIX_FMT_NV12:
case V4L2_PIX_FMT_NV16:
walign = 5;
break;
- default:
+ /* Multiple of 2 (2^1) for YUV. */
+ case V4L2_PIX_FMT_YUYV:
+ case V4L2_PIX_FMT_UYVY:
walign = 1;
break;
+ /* No multiple for RGB. */
+ default:
+ walign = 0;
+ break;
}
/* Limit to VIN capabilities */
- v4l_bound_align_image(&pix->width, 2, vin->info->max_width, walign,
- &pix->height, 4, vin->info->max_height, 2, 0);
+ v4l_bound_align_image(&pix->width, 5, vin->info->max_width, walign,
+ &pix->height, 2, vin->info->max_height, 0, 0);
pix->bytesperline = rvin_format_bytesperline(vin, pix);
pix->sizeimage = rvin_format_sizeimage(pix);
diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
index 50b166c49a03..3f5cfa7eb937 100644
--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
@@ -462,7 +462,7 @@ static void rkisp1_debug_init(struct rkisp1_device *rkisp1)
{
struct rkisp1_debug *debug = &rkisp1->debug;
- debug->debugfs_dir = debugfs_create_dir(RKISP1_DRIVER_NAME, NULL);
+ debug->debugfs_dir = debugfs_create_dir(dev_name(rkisp1->dev), NULL);
debugfs_create_ulong("data_loss", 0444, debug->debugfs_dir,
&debug->data_loss);
debugfs_create_ulong("outform_size_err", 0444, debug->debugfs_dir,
diff --git a/drivers/media/radio/si470x/radio-si470x-i2c.c b/drivers/media/radio/si470x/radio-si470x-i2c.c
index a972c0705ac7..76d39e2e8770 100644
--- a/drivers/media/radio/si470x/radio-si470x-i2c.c
+++ b/drivers/media/radio/si470x/radio-si470x-i2c.c
@@ -368,7 +368,7 @@ static int si470x_i2c_probe(struct i2c_client *client)
if (radio->hdl.error) {
retval = radio->hdl.error;
dev_err(&client->dev, "couldn't register control\n");
- goto err_dev;
+ goto err_all;
}
/* video device initialization */
@@ -463,7 +463,6 @@ static int si470x_i2c_probe(struct i2c_client *client)
return 0;
err_all:
v4l2_ctrl_handler_free(&radio->hdl);
-err_dev:
v4l2_device_unregister(&radio->v4l2_dev);
err_initial:
return retval;
diff --git a/drivers/media/rc/igorplugusb.c b/drivers/media/rc/igorplugusb.c
index effaa5751d6c..3e9988ee785f 100644
--- a/drivers/media/rc/igorplugusb.c
+++ b/drivers/media/rc/igorplugusb.c
@@ -64,9 +64,11 @@ static void igorplugusb_irdata(struct igorplugusb *ir, unsigned len)
if (start >= len) {
dev_err(ir->dev, "receive overflow invalid: %u", overflow);
} else {
- if (overflow > 0)
+ if (overflow > 0) {
dev_warn(ir->dev, "receive overflow, at least %u lost",
overflow);
+ ir_raw_event_reset(ir->rc);
+ }
do {
rawir.duration = ir->buf_in[i] * 85;
diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c
index d09bee82c04c..2dc810f5a73f 100644
--- a/drivers/media/rc/mceusb.c
+++ b/drivers/media/rc/mceusb.c
@@ -1430,7 +1430,7 @@ static void mceusb_gen1_init(struct mceusb_dev *ir)
*/
ret = usb_control_msg(ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0),
USB_REQ_SET_ADDRESS, USB_TYPE_VENDOR, 0, 0,
- data, USB_CTRL_MSG_SZ, HZ * 3);
+ data, USB_CTRL_MSG_SZ, 3000);
dev_dbg(dev, "set address - ret = %d", ret);
dev_dbg(dev, "set address - data[0] = %d, data[1] = %d",
data[0], data[1]);
@@ -1438,20 +1438,20 @@ static void mceusb_gen1_init(struct mceusb_dev *ir)
/* set feature: bit rate 38400 bps */
ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
USB_REQ_SET_FEATURE, USB_TYPE_VENDOR,
- 0xc04e, 0x0000, NULL, 0, HZ * 3);
+ 0xc04e, 0x0000, NULL, 0, 3000);
dev_dbg(dev, "set feature - ret = %d", ret);
/* bRequest 4: set char length to 8 bits */
ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
4, USB_TYPE_VENDOR,
- 0x0808, 0x0000, NULL, 0, HZ * 3);
+ 0x0808, 0x0000, NULL, 0, 3000);
dev_dbg(dev, "set char length - retB = %d", ret);
/* bRequest 2: set handshaking to use DTR/DSR */
ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
2, USB_TYPE_VENDOR,
- 0x0000, 0x0100, NULL, 0, HZ * 3);
+ 0x0000, 0x0100, NULL, 0, 3000);
dev_dbg(dev, "set handshake - retC = %d", ret);
/* device resume */
diff --git a/drivers/media/rc/redrat3.c b/drivers/media/rc/redrat3.c
index ac85464864b9..cb22316b3f00 100644
--- a/drivers/media/rc/redrat3.c
+++ b/drivers/media/rc/redrat3.c
@@ -404,7 +404,7 @@ static int redrat3_send_cmd(int cmd, struct redrat3_dev *rr3)
udev = rr3->udev;
res = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), cmd,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- 0x0000, 0x0000, data, sizeof(u8), HZ * 10);
+ 0x0000, 0x0000, data, sizeof(u8), 10000);
if (res < 0) {
dev_err(rr3->dev, "%s: Error sending rr3 cmd res %d, data %d",
@@ -480,7 +480,7 @@ static u32 redrat3_get_timeout(struct redrat3_dev *rr3)
pipe = usb_rcvctrlpipe(rr3->udev, 0);
ret = usb_control_msg(rr3->udev, pipe, RR3_GET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- RR3_IR_IO_SIG_TIMEOUT, 0, tmp, len, HZ * 5);
+ RR3_IR_IO_SIG_TIMEOUT, 0, tmp, len, 5000);
if (ret != len)
dev_warn(rr3->dev, "Failed to read timeout from hardware\n");
else {
@@ -510,7 +510,7 @@ static int redrat3_set_timeout(struct rc_dev *rc_dev, unsigned int timeoutus)
ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
RR3_IR_IO_SIG_TIMEOUT, 0, timeout, sizeof(*timeout),
- HZ * 25);
+ 25000);
dev_dbg(dev, "set ir parm timeout %d ret 0x%02x\n",
be32_to_cpu(*timeout), ret);
@@ -542,32 +542,32 @@ static void redrat3_reset(struct redrat3_dev *rr3)
*val = 0x01;
rc = usb_control_msg(udev, rxpipe, RR3_RESET,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- RR3_CPUCS_REG_ADDR, 0, val, len, HZ * 25);
+ RR3_CPUCS_REG_ADDR, 0, val, len, 25000);
dev_dbg(dev, "reset returned 0x%02x\n", rc);
*val = length_fuzz;
rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
- RR3_IR_IO_LENGTH_FUZZ, 0, val, len, HZ * 25);
+ RR3_IR_IO_LENGTH_FUZZ, 0, val, len, 25000);
dev_dbg(dev, "set ir parm len fuzz %d rc 0x%02x\n", *val, rc);
*val = (65536 - (minimum_pause * 2000)) / 256;
rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
- RR3_IR_IO_MIN_PAUSE, 0, val, len, HZ * 25);
+ RR3_IR_IO_MIN_PAUSE, 0, val, len, 25000);
dev_dbg(dev, "set ir parm min pause %d rc 0x%02x\n", *val, rc);
*val = periods_measure_carrier;
rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
- RR3_IR_IO_PERIODS_MF, 0, val, len, HZ * 25);
+ RR3_IR_IO_PERIODS_MF, 0, val, len, 25000);
dev_dbg(dev, "set ir parm periods measure carrier %d rc 0x%02x", *val,
rc);
*val = RR3_DRIVER_MAXLENS;
rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
- RR3_IR_IO_MAX_LENGTHS, 0, val, len, HZ * 25);
+ RR3_IR_IO_MAX_LENGTHS, 0, val, len, 25000);
dev_dbg(dev, "set ir parm max lens %d rc 0x%02x\n", *val, rc);
kfree(val);
@@ -585,7 +585,7 @@ static void redrat3_get_firmware_rev(struct redrat3_dev *rr3)
rc = usb_control_msg(rr3->udev, usb_rcvctrlpipe(rr3->udev, 0),
RR3_FW_VERSION,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- 0, 0, buffer, RR3_FW_VERSION_LEN, HZ * 5);
+ 0, 0, buffer, RR3_FW_VERSION_LEN, 5000);
if (rc >= 0)
dev_info(rr3->dev, "Firmware rev: %s", buffer);
@@ -825,14 +825,14 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, unsigned *txbuf,
pipe = usb_sndbulkpipe(rr3->udev, rr3->ep_out->bEndpointAddress);
ret = usb_bulk_msg(rr3->udev, pipe, irdata,
- sendbuf_len, &ret_len, 10 * HZ);
+ sendbuf_len, &ret_len, 10000);
dev_dbg(dev, "sent %d bytes, (ret %d)\n", ret_len, ret);
/* now tell the hardware to transmit what we sent it */
pipe = usb_rcvctrlpipe(rr3->udev, 0);
ret = usb_control_msg(rr3->udev, pipe, RR3_TX_SEND_SIGNAL,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- 0, 0, irdata, 2, HZ * 10);
+ 0, 0, irdata, 2, 10000);
if (ret < 0)
dev_err(dev, "Error: control msg send failed, rc %d\n", ret);
diff --git a/drivers/media/tuners/msi001.c b/drivers/media/tuners/msi001.c
index 78e6fd600d8e..44247049a319 100644
--- a/drivers/media/tuners/msi001.c
+++ b/drivers/media/tuners/msi001.c
@@ -442,6 +442,13 @@ static int msi001_probe(struct spi_device *spi)
V4L2_CID_RF_TUNER_BANDWIDTH_AUTO, 0, 1, 1, 1);
dev->bandwidth = v4l2_ctrl_new_std(&dev->hdl, &msi001_ctrl_ops,
V4L2_CID_RF_TUNER_BANDWIDTH, 200000, 8000000, 1, 200000);
+ if (dev->hdl.error) {
+ ret = dev->hdl.error;
+ dev_err(&spi->dev, "Could not initialize controls\n");
+ /* control init failed, free handler */
+ goto err_ctrl_handler_free;
+ }
+
v4l2_ctrl_auto_cluster(2, &dev->bandwidth_auto, 0, false);
dev->lna_gain = v4l2_ctrl_new_std(&dev->hdl, &msi001_ctrl_ops,
V4L2_CID_RF_TUNER_LNA_GAIN, 0, 1, 1, 1);
diff --git a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c
index fefb2625f655..75ddf7ed1faf 100644
--- a/drivers/media/tuners/si2157.c
+++ b/drivers/media/tuners/si2157.c
@@ -90,7 +90,7 @@ static int si2157_init(struct dvb_frontend *fe)
dev_dbg(&client->dev, "\n");
/* Try to get Xtal trim property, to verify tuner still running */
- memcpy(cmd.args, "\x15\x00\x04\x02", 4);
+ memcpy(cmd.args, "\x15\x00\x02\x04", 4);
cmd.wlen = 4;
cmd.rlen = 4;
ret = si2157_cmd_execute(client, &cmd);
diff --git a/drivers/media/usb/b2c2/flexcop-usb.c b/drivers/media/usb/b2c2/flexcop-usb.c
index 5d38171b7638..bfeb92d93de3 100644
--- a/drivers/media/usb/b2c2/flexcop-usb.c
+++ b/drivers/media/usb/b2c2/flexcop-usb.c
@@ -87,7 +87,7 @@ static int flexcop_usb_readwrite_dw(struct flexcop_device *fc, u16 wRegOffsPCI,
0,
fc_usb->data,
sizeof(u32),
- B2C2_WAIT_FOR_OPERATION_RDW * HZ);
+ B2C2_WAIT_FOR_OPERATION_RDW);
if (ret != sizeof(u32)) {
err("error while %s dword from %d (%d).", read ? "reading" :
@@ -155,7 +155,7 @@ static int flexcop_usb_v8_memory_req(struct flexcop_usb *fc_usb,
wIndex,
fc_usb->data,
buflen,
- nWaitTime * HZ);
+ nWaitTime);
if (ret != buflen)
ret = -EIO;
@@ -248,13 +248,13 @@ static int flexcop_usb_i2c_req(struct flexcop_i2c_adapter *i2c,
/* DKT 020208 - add this to support special case of DiSEqC */
case USB_FUNC_I2C_CHECKWRITE:
pipe = B2C2_USB_CTRL_PIPE_OUT;
- nWaitTime = 2;
+ nWaitTime = 2000;
request_type |= USB_DIR_OUT;
break;
case USB_FUNC_I2C_READ:
case USB_FUNC_I2C_REPEATREAD:
pipe = B2C2_USB_CTRL_PIPE_IN;
- nWaitTime = 2;
+ nWaitTime = 2000;
request_type |= USB_DIR_IN;
break;
default:
@@ -281,7 +281,7 @@ static int flexcop_usb_i2c_req(struct flexcop_i2c_adapter *i2c,
wIndex,
fc_usb->data,
buflen,
- nWaitTime * HZ);
+ nWaitTime);
if (ret != buflen)
ret = -EIO;
diff --git a/drivers/media/usb/b2c2/flexcop-usb.h b/drivers/media/usb/b2c2/flexcop-usb.h
index 2f230bf72252..c7cca1a5ee59 100644
--- a/drivers/media/usb/b2c2/flexcop-usb.h
+++ b/drivers/media/usb/b2c2/flexcop-usb.h
@@ -91,13 +91,13 @@ typedef enum {
UTILITY_SRAM_TESTVERIFY = 0x16,
} flexcop_usb_utility_function_t;
-#define B2C2_WAIT_FOR_OPERATION_RW (1*HZ)
-#define B2C2_WAIT_FOR_OPERATION_RDW (3*HZ)
-#define B2C2_WAIT_FOR_OPERATION_WDW (1*HZ)
+#define B2C2_WAIT_FOR_OPERATION_RW 1000
+#define B2C2_WAIT_FOR_OPERATION_RDW 3000
+#define B2C2_WAIT_FOR_OPERATION_WDW 1000
-#define B2C2_WAIT_FOR_OPERATION_V8READ (3*HZ)
-#define B2C2_WAIT_FOR_OPERATION_V8WRITE (3*HZ)
-#define B2C2_WAIT_FOR_OPERATION_V8FLASH (3*HZ)
+#define B2C2_WAIT_FOR_OPERATION_V8READ 3000
+#define B2C2_WAIT_FOR_OPERATION_V8WRITE 3000
+#define B2C2_WAIT_FOR_OPERATION_V8FLASH 3000
typedef enum {
V8_MEMORY_PAGE_DVB_CI = 0x20,
diff --git a/drivers/media/usb/cpia2/cpia2_usb.c b/drivers/media/usb/cpia2/cpia2_usb.c
index 76aac06f9fb8..cba03b286473 100644
--- a/drivers/media/usb/cpia2/cpia2_usb.c
+++ b/drivers/media/usb/cpia2/cpia2_usb.c
@@ -550,7 +550,7 @@ static int write_packet(struct usb_device *udev,
0, /* index */
buf, /* buffer */
size,
- HZ);
+ 1000);
kfree(buf);
return ret;
@@ -582,7 +582,7 @@ static int read_packet(struct usb_device *udev,
0, /* index */
buf, /* buffer */
size,
- HZ);
+ 1000);
if (ret >= 0)
memcpy(registers, buf, size);
diff --git a/drivers/media/usb/dvb-usb/dib0700_core.c b/drivers/media/usb/dvb-usb/dib0700_core.c
index 70219b3e8566..7ea8f68b0f45 100644
--- a/drivers/media/usb/dvb-usb/dib0700_core.c
+++ b/drivers/media/usb/dvb-usb/dib0700_core.c
@@ -618,8 +618,6 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
deb_info("the endpoint number (%i) is not correct, use the adapter id instead", adap->fe_adap[0].stream.props.endpoint);
if (onoff)
st->channel_state |= 1 << (adap->id);
- else
- st->channel_state |= 1 << ~(adap->id);
} else {
if (onoff)
st->channel_state |= 1 << (adap->fe_adap[0].stream.props.endpoint-2);
diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c
index f0e686b05dc6..ca75ebdc10b3 100644
--- a/drivers/media/usb/dvb-usb/dw2102.c
+++ b/drivers/media/usb/dvb-usb/dw2102.c
@@ -2150,46 +2150,153 @@ static struct dvb_usb_device_properties s6x0_properties = {
}
};
-static const struct dvb_usb_device_description d1100 = {
- "Prof 1100 USB ",
- {&dw2102_table[PROF_1100], NULL},
- {NULL},
-};
+static struct dvb_usb_device_properties p1100_properties = {
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+ .usb_ctrl = DEVICE_SPECIFIC,
+ .size_of_priv = sizeof(struct dw2102_state),
+ .firmware = P1100_FIRMWARE,
+ .no_reconnect = 1,
-static const struct dvb_usb_device_description d660 = {
- "TeVii S660 USB",
- {&dw2102_table[TEVII_S660], NULL},
- {NULL},
-};
+ .i2c_algo = &s6x0_i2c_algo,
+ .rc.core = {
+ .rc_interval = 150,
+ .rc_codes = RC_MAP_TBS_NEC,
+ .module_name = "dw2102",
+ .allowed_protos = RC_PROTO_BIT_NEC,
+ .rc_query = prof_rc_query,
+ },
-static const struct dvb_usb_device_description d480_1 = {
- "TeVii S480.1 USB",
- {&dw2102_table[TEVII_S480_1], NULL},
- {NULL},
+ .generic_bulk_ctrl_endpoint = 0x81,
+ .num_adapters = 1,
+ .download_firmware = dw2102_load_firmware,
+ .read_mac_address = s6x0_read_mac_address,
+ .adapter = {
+ {
+ .num_frontends = 1,
+ .fe = {{
+ .frontend_attach = stv0288_frontend_attach,
+ .stream = {
+ .type = USB_BULK,
+ .count = 8,
+ .endpoint = 0x82,
+ .u = {
+ .bulk = {
+ .buffersize = 4096,
+ }
+ }
+ },
+ } },
+ }
+ },
+ .num_device_descs = 1,
+ .devices = {
+ {"Prof 1100 USB ",
+ {&dw2102_table[PROF_1100], NULL},
+ {NULL},
+ },
+ }
};
-static const struct dvb_usb_device_description d480_2 = {
- "TeVii S480.2 USB",
- {&dw2102_table[TEVII_S480_2], NULL},
- {NULL},
-};
+static struct dvb_usb_device_properties s660_properties = {
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+ .usb_ctrl = DEVICE_SPECIFIC,
+ .size_of_priv = sizeof(struct dw2102_state),
+ .firmware = S660_FIRMWARE,
+ .no_reconnect = 1,
-static const struct dvb_usb_device_description d7500 = {
- "Prof 7500 USB DVB-S2",
- {&dw2102_table[PROF_7500], NULL},
- {NULL},
-};
+ .i2c_algo = &s6x0_i2c_algo,
+ .rc.core = {
+ .rc_interval = 150,
+ .rc_codes = RC_MAP_TEVII_NEC,
+ .module_name = "dw2102",
+ .allowed_protos = RC_PROTO_BIT_NEC,
+ .rc_query = dw2102_rc_query,
+ },
-static const struct dvb_usb_device_description d421 = {
- "TeVii S421 PCI",
- {&dw2102_table[TEVII_S421], NULL},
- {NULL},
+ .generic_bulk_ctrl_endpoint = 0x81,
+ .num_adapters = 1,
+ .download_firmware = dw2102_load_firmware,
+ .read_mac_address = s6x0_read_mac_address,
+ .adapter = {
+ {
+ .num_frontends = 1,
+ .fe = {{
+ .frontend_attach = ds3000_frontend_attach,
+ .stream = {
+ .type = USB_BULK,
+ .count = 8,
+ .endpoint = 0x82,
+ .u = {
+ .bulk = {
+ .buffersize = 4096,
+ }
+ }
+ },
+ } },
+ }
+ },
+ .num_device_descs = 3,
+ .devices = {
+ {"TeVii S660 USB",
+ {&dw2102_table[TEVII_S660], NULL},
+ {NULL},
+ },
+ {"TeVii S480.1 USB",
+ {&dw2102_table[TEVII_S480_1], NULL},
+ {NULL},
+ },
+ {"TeVii S480.2 USB",
+ {&dw2102_table[TEVII_S480_2], NULL},
+ {NULL},
+ },
+ }
};
-static const struct dvb_usb_device_description d632 = {
- "TeVii S632 USB",
- {&dw2102_table[TEVII_S632], NULL},
- {NULL},
+static struct dvb_usb_device_properties p7500_properties = {
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+ .usb_ctrl = DEVICE_SPECIFIC,
+ .size_of_priv = sizeof(struct dw2102_state),
+ .firmware = P7500_FIRMWARE,
+ .no_reconnect = 1,
+
+ .i2c_algo = &s6x0_i2c_algo,
+ .rc.core = {
+ .rc_interval = 150,
+ .rc_codes = RC_MAP_TBS_NEC,
+ .module_name = "dw2102",
+ .allowed_protos = RC_PROTO_BIT_NEC,
+ .rc_query = prof_rc_query,
+ },
+
+ .generic_bulk_ctrl_endpoint = 0x81,
+ .num_adapters = 1,
+ .download_firmware = dw2102_load_firmware,
+ .read_mac_address = s6x0_read_mac_address,
+ .adapter = {
+ {
+ .num_frontends = 1,
+ .fe = {{
+ .frontend_attach = prof_7500_frontend_attach,
+ .stream = {
+ .type = USB_BULK,
+ .count = 8,
+ .endpoint = 0x82,
+ .u = {
+ .bulk = {
+ .buffersize = 4096,
+ }
+ }
+ },
+ } },
+ }
+ },
+ .num_device_descs = 1,
+ .devices = {
+ {"Prof 7500 USB DVB-S2",
+ {&dw2102_table[PROF_7500], NULL},
+ {NULL},
+ },
+ }
};
static struct dvb_usb_device_properties su3000_properties = {
@@ -2273,6 +2380,59 @@ static struct dvb_usb_device_properties su3000_properties = {
}
};
+static struct dvb_usb_device_properties s421_properties = {
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+ .usb_ctrl = DEVICE_SPECIFIC,
+ .size_of_priv = sizeof(struct dw2102_state),
+ .power_ctrl = su3000_power_ctrl,
+ .num_adapters = 1,
+ .identify_state = su3000_identify_state,
+ .i2c_algo = &su3000_i2c_algo,
+
+ .rc.core = {
+ .rc_interval = 150,
+ .rc_codes = RC_MAP_SU3000,
+ .module_name = "dw2102",
+ .allowed_protos = RC_PROTO_BIT_RC5,
+ .rc_query = su3000_rc_query,
+ },
+
+ .read_mac_address = su3000_read_mac_address,
+
+ .generic_bulk_ctrl_endpoint = 0x01,
+
+ .adapter = {
+ {
+ .num_frontends = 1,
+ .fe = {{
+ .streaming_ctrl = su3000_streaming_ctrl,
+ .frontend_attach = m88rs2000_frontend_attach,
+ .stream = {
+ .type = USB_BULK,
+ .count = 8,
+ .endpoint = 0x82,
+ .u = {
+ .bulk = {
+ .buffersize = 4096,
+ }
+ }
+ }
+ } },
+ }
+ },
+ .num_device_descs = 2,
+ .devices = {
+ { "TeVii S421 PCI",
+ { &dw2102_table[TEVII_S421], NULL },
+ { NULL },
+ },
+ { "TeVii S632 USB",
+ { &dw2102_table[TEVII_S632], NULL },
+ { NULL },
+ },
+ }
+};
+
static struct dvb_usb_device_properties t220_properties = {
.caps = DVB_USB_IS_AN_I2C_ADAPTER,
.usb_ctrl = DEVICE_SPECIFIC,
@@ -2390,101 +2550,33 @@ static struct dvb_usb_device_properties tt_s2_4600_properties = {
static int dw2102_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{
- int retval = -ENOMEM;
- struct dvb_usb_device_properties *p1100;
- struct dvb_usb_device_properties *s660;
- struct dvb_usb_device_properties *p7500;
- struct dvb_usb_device_properties *s421;
-
- p1100 = kmemdup(&s6x0_properties,
- sizeof(struct dvb_usb_device_properties), GFP_KERNEL);
- if (!p1100)
- goto err0;
-
- /* copy default structure */
- /* fill only different fields */
- p1100->firmware = P1100_FIRMWARE;
- p1100->devices[0] = d1100;
- p1100->rc.core.rc_query = prof_rc_query;
- p1100->rc.core.rc_codes = RC_MAP_TBS_NEC;
- p1100->adapter->fe[0].frontend_attach = stv0288_frontend_attach;
-
- s660 = kmemdup(&s6x0_properties,
- sizeof(struct dvb_usb_device_properties), GFP_KERNEL);
- if (!s660)
- goto err1;
-
- s660->firmware = S660_FIRMWARE;
- s660->num_device_descs = 3;
- s660->devices[0] = d660;
- s660->devices[1] = d480_1;
- s660->devices[2] = d480_2;
- s660->adapter->fe[0].frontend_attach = ds3000_frontend_attach;
-
- p7500 = kmemdup(&s6x0_properties,
- sizeof(struct dvb_usb_device_properties), GFP_KERNEL);
- if (!p7500)
- goto err2;
-
- p7500->firmware = P7500_FIRMWARE;
- p7500->devices[0] = d7500;
- p7500->rc.core.rc_query = prof_rc_query;
- p7500->rc.core.rc_codes = RC_MAP_TBS_NEC;
- p7500->adapter->fe[0].frontend_attach = prof_7500_frontend_attach;
-
-
- s421 = kmemdup(&su3000_properties,
- sizeof(struct dvb_usb_device_properties), GFP_KERNEL);
- if (!s421)
- goto err3;
-
- s421->num_device_descs = 2;
- s421->devices[0] = d421;
- s421->devices[1] = d632;
- s421->adapter->fe[0].frontend_attach = m88rs2000_frontend_attach;
-
- if (0 == dvb_usb_device_init(intf, &dw2102_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &dw2104_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &dw3101_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &s6x0_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, p1100,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, s660,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, p7500,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, s421,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &su3000_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &t220_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &tt_s2_4600_properties,
- THIS_MODULE, NULL, adapter_nr)) {
-
- /* clean up copied properties */
- kfree(s421);
- kfree(p7500);
- kfree(s660);
- kfree(p1100);
+ if (!(dvb_usb_device_init(intf, &dw2102_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &dw2104_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &dw3101_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &s6x0_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &p1100_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &s660_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &p7500_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &s421_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &su3000_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &t220_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &tt_s2_4600_properties,
+ THIS_MODULE, NULL, adapter_nr))) {
return 0;
}
- retval = -ENODEV;
- kfree(s421);
-err3:
- kfree(p7500);
-err2:
- kfree(s660);
-err1:
- kfree(p1100);
-err0:
- return retval;
+ return -ENODEV;
}
static void dw2102_disconnect(struct usb_interface *intf)
diff --git a/drivers/media/usb/dvb-usb/m920x.c b/drivers/media/usb/dvb-usb/m920x.c
index 4bb5b82599a7..691e05833db1 100644
--- a/drivers/media/usb/dvb-usb/m920x.c
+++ b/drivers/media/usb/dvb-usb/m920x.c
@@ -274,6 +274,13 @@ static int m920x_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], int nu
/* Should check for ack here, if we knew how. */
}
if (msg[i].flags & I2C_M_RD) {
+ char *read = kmalloc(1, GFP_KERNEL);
+ if (!read) {
+ ret = -ENOMEM;
+ kfree(read);
+ goto unlock;
+ }
+
for (j = 0; j < msg[i].len; j++) {
/* Last byte of transaction?
* Send STOP, otherwise send ACK. */
@@ -281,9 +288,12 @@ static int m920x_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], int nu
if ((ret = m920x_read(d->udev, M9206_I2C, 0x0,
0x20 | stop,
- &msg[i].buf[j], 1)) != 0)
+ read, 1)) != 0)
goto unlock;
+ msg[i].buf[j] = read[0];
}
+
+ kfree(read);
} else {
for (j = 0; j < msg[i].len; j++) {
/* Last byte of transaction? Then send STOP. */
diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
index b207f34af5c6..b451ce3cb169 100644
--- a/drivers/media/usb/em28xx/em28xx-cards.c
+++ b/drivers/media/usb/em28xx/em28xx-cards.c
@@ -3630,8 +3630,10 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
if (dev->is_audio_only) {
retval = em28xx_audio_setup(dev);
- if (retval)
- return -ENODEV;
+ if (retval) {
+ retval = -ENODEV;
+ goto err_deinit_media;
+ }
em28xx_init_extension(dev);
return 0;
@@ -3650,7 +3652,7 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
dev_err(&dev->intf->dev,
"%s: em28xx_i2c_register bus 0 - error [%d]!\n",
__func__, retval);
- return retval;
+ goto err_deinit_media;
}
/* register i2c bus 1 */
@@ -3666,9 +3668,7 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
"%s: em28xx_i2c_register bus 1 - error [%d]!\n",
__func__, retval);
- em28xx_i2c_unregister(dev, 0);
-
- return retval;
+ goto err_unreg_i2c;
}
}
@@ -3676,6 +3676,12 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
em28xx_card_setup(dev);
return 0;
+
+err_unreg_i2c:
+ em28xx_i2c_unregister(dev, 0);
+err_deinit_media:
+ em28xx_unregister_media_device(dev);
+ return retval;
}
static int em28xx_duplicate_dev(struct em28xx *dev)
diff --git a/drivers/media/usb/em28xx/em28xx-core.c b/drivers/media/usb/em28xx/em28xx-core.c
index acc0bf7dbe2b..c837cc528a33 100644
--- a/drivers/media/usb/em28xx/em28xx-core.c
+++ b/drivers/media/usb/em28xx/em28xx-core.c
@@ -89,7 +89,7 @@ int em28xx_read_reg_req_len(struct em28xx *dev, u8 req, u16 reg,
mutex_lock(&dev->ctrl_urb_lock);
ret = usb_control_msg(udev, pipe, req,
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
- 0x0000, reg, dev->urb_buf, len, HZ);
+ 0x0000, reg, dev->urb_buf, len, 1000);
if (ret < 0) {
em28xx_regdbg("(pipe 0x%08x): IN: %02x %02x %02x %02x %02x %02x %02x %02x failed with error %i\n",
pipe,
@@ -158,7 +158,7 @@ int em28xx_write_regs_req(struct em28xx *dev, u8 req, u16 reg, char *buf,
memcpy(dev->urb_buf, buf, len);
ret = usb_control_msg(udev, pipe, req,
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
- 0x0000, reg, dev->urb_buf, len, HZ);
+ 0x0000, reg, dev->urb_buf, len, 1000);
mutex_unlock(&dev->ctrl_urb_lock);
if (ret < 0) {
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
index d38dee1792e4..3915d551d59e 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
@@ -1467,7 +1467,7 @@ static int pvr2_upload_firmware1(struct pvr2_hdw *hdw)
for (address = 0; address < fwsize; address += 0x800) {
memcpy(fw_ptr, fw_entry->data + address, 0x800);
ret += usb_control_msg(hdw->usb_dev, pipe, 0xa0, 0x40, address,
- 0, fw_ptr, 0x800, HZ);
+ 0, fw_ptr, 0x800, 1000);
}
trace_firmware("Upload done, releasing device's CPU");
@@ -1605,7 +1605,7 @@ int pvr2_upload_firmware2(struct pvr2_hdw *hdw)
((u32 *)fw_ptr)[icnt] = swab32(((u32 *)fw_ptr)[icnt]);
ret |= usb_bulk_msg(hdw->usb_dev, pipe, fw_ptr,bcnt,
- &actual_length, HZ);
+ &actual_length, 1000);
ret |= (actual_length != bcnt);
if (ret) break;
fw_done += bcnt;
@@ -3438,7 +3438,7 @@ void pvr2_hdw_cpufw_set_enabled(struct pvr2_hdw *hdw,
0xa0,0xc0,
address,0,
hdw->fw_buffer+address,
- 0x800,HZ);
+ 0x800,1000);
if (ret < 0) break;
}
@@ -3977,7 +3977,7 @@ void pvr2_hdw_cpureset_assert(struct pvr2_hdw *hdw,int val)
/* Write the CPUCS register on the 8051. The lsb of the register
is the reset bit; a 1 asserts reset while a 0 clears it. */
pipe = usb_sndctrlpipe(hdw->usb_dev, 0);
- ret = usb_control_msg(hdw->usb_dev,pipe,0xa0,0x40,0xe600,0,da,1,HZ);
+ ret = usb_control_msg(hdw->usb_dev,pipe,0xa0,0x40,0xe600,0,da,1,1000);
if (ret < 0) {
pvr2_trace(PVR2_TRACE_ERROR_LEGS,
"cpureset_assert(%d) error=%d",val,ret);
diff --git a/drivers/media/usb/s2255/s2255drv.c b/drivers/media/usb/s2255/s2255drv.c
index 3b0e4ed75d99..acf18e2251a5 100644
--- a/drivers/media/usb/s2255/s2255drv.c
+++ b/drivers/media/usb/s2255/s2255drv.c
@@ -1882,7 +1882,7 @@ static long s2255_vendor_req(struct s2255_dev *dev, unsigned char Request,
USB_TYPE_VENDOR | USB_RECIP_DEVICE |
USB_DIR_IN,
Value, Index, buf,
- TransferBufferLength, HZ * 5);
+ TransferBufferLength, USB_CTRL_SET_TIMEOUT);
if (r >= 0)
memcpy(TransferBuffer, buf, TransferBufferLength);
@@ -1891,7 +1891,7 @@ static long s2255_vendor_req(struct s2255_dev *dev, unsigned char Request,
r = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0),
Request, USB_TYPE_VENDOR | USB_RECIP_DEVICE,
Value, Index, buf,
- TransferBufferLength, HZ * 5);
+ TransferBufferLength, USB_CTRL_SET_TIMEOUT);
}
kfree(buf);
return r;
diff --git a/drivers/media/usb/stk1160/stk1160-core.c b/drivers/media/usb/stk1160/stk1160-core.c
index b4f8bc5db138..4e1698f78818 100644
--- a/drivers/media/usb/stk1160/stk1160-core.c
+++ b/drivers/media/usb/stk1160/stk1160-core.c
@@ -65,7 +65,7 @@ int stk1160_read_reg(struct stk1160 *dev, u16 reg, u8 *value)
return -ENOMEM;
ret = usb_control_msg(dev->udev, pipe, 0x00,
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
- 0x00, reg, buf, sizeof(u8), HZ);
+ 0x00, reg, buf, sizeof(u8), 1000);
if (ret < 0) {
stk1160_err("read failed on reg 0x%x (%d)\n",
reg, ret);
@@ -85,7 +85,7 @@ int stk1160_write_reg(struct stk1160 *dev, u16 reg, u16 value)
ret = usb_control_msg(dev->udev, pipe, 0x01,
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
- value, reg, NULL, 0, HZ);
+ value, reg, NULL, 0, 1000);
if (ret < 0) {
stk1160_err("write failed on reg 0x%x (%d)\n",
reg, ret);
diff --git a/drivers/media/usb/uvc/uvc_ctrl.c b/drivers/media/usb/uvc/uvc_ctrl.c
index 30bfe9069a1f..b4f6edf968bc 100644
--- a/drivers/media/usb/uvc/uvc_ctrl.c
+++ b/drivers/media/usb/uvc/uvc_ctrl.c
@@ -1638,8 +1638,8 @@ static int uvc_ctrl_find_ctrl_idx(struct uvc_entity *entity,
struct v4l2_ext_controls *ctrls,
struct uvc_control *uvc_control)
{
- struct uvc_control_mapping *mapping;
- struct uvc_control *ctrl_found;
+ struct uvc_control_mapping *mapping = NULL;
+ struct uvc_control *ctrl_found = NULL;
unsigned int i;
if (!entity)
diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c
index f4e4aff8ddf7..711556d13d03 100644
--- a/drivers/media/usb/uvc/uvc_v4l2.c
+++ b/drivers/media/usb/uvc/uvc_v4l2.c
@@ -44,8 +44,10 @@ static int uvc_ioctl_ctrl_map(struct uvc_video_chain *chain,
if (v4l2_ctrl_get_name(map->id) == NULL) {
map->name = kmemdup(xmap->name, sizeof(xmap->name),
GFP_KERNEL);
- if (!map->name)
- return -ENOMEM;
+ if (!map->name) {
+ ret = -ENOMEM;
+ goto free_map;
+ }
}
memcpy(map->entity, xmap->entity, sizeof(map->entity));
map->selector = xmap->selector;
diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h
index 2e5366143b81..143230b3275b 100644
--- a/drivers/media/usb/uvc/uvcvideo.h
+++ b/drivers/media/usb/uvc/uvcvideo.h
@@ -189,7 +189,7 @@
/* Maximum status buffer size in bytes of interrupt URB. */
#define UVC_MAX_STATUS_SIZE 16
-#define UVC_CTRL_CONTROL_TIMEOUT 500
+#define UVC_CTRL_CONTROL_TIMEOUT 5000
#define UVC_CTRL_STREAMING_TIMEOUT 5000
/* Maximum allowed number of control mappings per device */
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
index 31d0109ce5a8..69b74d0e8a90 100644
--- a/drivers/media/v4l2-core/v4l2-ioctl.c
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
@@ -2090,6 +2090,7 @@ static int v4l_prepare_buf(const struct v4l2_ioctl_ops *ops,
static int v4l_g_parm(const struct v4l2_ioctl_ops *ops,
struct file *file, void *fh, void *arg)
{
+ struct video_device *vfd = video_devdata(file);
struct v4l2_streamparm *p = arg;
v4l2_std_id std;
int ret = check_fmt(file, p->type);
@@ -2101,7 +2102,8 @@ static int v4l_g_parm(const struct v4l2_ioctl_ops *ops,
if (p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE &&
p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
return -EINVAL;
- p->parm.capture.readbuffers = 2;
+ if (vfd->device_caps & V4L2_CAP_READWRITE)
+ p->parm.capture.readbuffers = 2;
ret = ops->vidioc_g_std(file, fh, &std);
if (ret == 0)
v4l2_video_std_frame_period(std, &p->parm.capture.timeperframe);
diff --git a/drivers/memory/renesas-rpc-if.c b/drivers/memory/renesas-rpc-if.c
index 7435baad0007..ff8bcbccac63 100644
--- a/drivers/memory/renesas-rpc-if.c
+++ b/drivers/memory/renesas-rpc-if.c
@@ -243,7 +243,7 @@ int rpcif_sw_init(struct rpcif *rpc, struct device *dev)
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dirmap");
rpc->dirmap = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(rpc->dirmap))
- rpc->dirmap = NULL;
+ return PTR_ERR(rpc->dirmap);
rpc->size = resource_size(res);
rpc->rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL);
diff --git a/drivers/mfd/atmel-flexcom.c b/drivers/mfd/atmel-flexcom.c
index d2f5c073fdf3..559eb4d352b6 100644
--- a/drivers/mfd/atmel-flexcom.c
+++ b/drivers/mfd/atmel-flexcom.c
@@ -87,8 +87,7 @@ static const struct of_device_id atmel_flexcom_of_match[] = {
};
MODULE_DEVICE_TABLE(of, atmel_flexcom_of_match);
-#ifdef CONFIG_PM_SLEEP
-static int atmel_flexcom_resume(struct device *dev)
+static int __maybe_unused atmel_flexcom_resume_noirq(struct device *dev)
{
struct atmel_flexcom *ddata = dev_get_drvdata(dev);
int err;
@@ -105,16 +104,16 @@ static int atmel_flexcom_resume(struct device *dev)
return 0;
}
-#endif
-static SIMPLE_DEV_PM_OPS(atmel_flexcom_pm_ops, NULL,
- atmel_flexcom_resume);
+static const struct dev_pm_ops atmel_flexcom_pm_ops = {
+ .resume_noirq = atmel_flexcom_resume_noirq,
+};
static struct platform_driver atmel_flexcom_driver = {
.probe = atmel_flexcom_probe,
.driver = {
.name = "atmel_flexcom",
- .pm = &atmel_flexcom_pm_ops,
+ .pm = pm_ptr(&atmel_flexcom_pm_ops),
.of_match_table = atmel_flexcom_of_match,
},
};
diff --git a/drivers/mfd/intel_soc_pmic_core.c b/drivers/mfd/intel_soc_pmic_core.c
index ddd64f9e3341..47cb7f00dfcf 100644
--- a/drivers/mfd/intel_soc_pmic_core.c
+++ b/drivers/mfd/intel_soc_pmic_core.c
@@ -14,15 +14,12 @@
#include <linux/module.h>
#include <linux/mfd/core.h>
#include <linux/mfd/intel_soc_pmic.h>
+#include <linux/platform_data/x86/soc.h>
#include <linux/pwm.h>
#include <linux/regmap.h>
#include "intel_soc_pmic_core.h"
-/* Crystal Cove PMIC shares same ACPI ID between different platforms */
-#define BYT_CRC_HRV 2
-#define CHT_CRC_HRV 3
-
/* PWM consumed by the Intel GFX */
static struct pwm_lookup crc_pwm_lookup[] = {
PWM_LOOKUP("crystal_cove_pwm", 0, "0000:00:02.0", "pwm_pmic_backlight", 0, PWM_POLARITY_NORMAL),
@@ -34,31 +31,12 @@ static int intel_soc_pmic_i2c_probe(struct i2c_client *i2c,
struct device *dev = &i2c->dev;
struct intel_soc_pmic_config *config;
struct intel_soc_pmic *pmic;
- unsigned long long hrv;
- acpi_status status;
int ret;
- /*
- * There are 2 different Crystal Cove PMICs a Bay Trail and Cherry
- * Trail version, use _HRV to differentiate between the 2.
- */
- status = acpi_evaluate_integer(ACPI_HANDLE(dev), "_HRV", NULL, &hrv);
- if (ACPI_FAILURE(status)) {
- dev_err(dev, "Failed to get PMIC hardware revision\n");
- return -ENODEV;
- }
-
- switch (hrv) {
- case BYT_CRC_HRV:
+ if (soc_intel_is_byt())
config = &intel_soc_pmic_config_byt_crc;
- break;
- case CHT_CRC_HRV:
+ else
config = &intel_soc_pmic_config_cht_crc;
- break;
- default:
- dev_warn(dev, "Unknown hardware rev %llu, assuming BYT\n", hrv);
- config = &intel_soc_pmic_config_byt_crc;
- }
pmic = devm_kzalloc(dev, sizeof(*pmic), GFP_KERNEL);
if (!pmic)
diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c
index 6e105cca27d4..67e2707af4bc 100644
--- a/drivers/mfd/tps65910.c
+++ b/drivers/mfd/tps65910.c
@@ -436,15 +436,6 @@ static void tps65910_power_off(void)
tps65910 = dev_get_drvdata(&tps65910_i2c_client->dev);
- /*
- * The PWR_OFF bit needs to be set separately, before transitioning
- * to the OFF state. It enables the "sequential" power-off mode on
- * TPS65911, it's a NO-OP on TPS65910.
- */
- if (regmap_set_bits(tps65910->regmap, TPS65910_DEVCTRL,
- DEVCTRL_PWR_OFF_MASK) < 0)
- return;
-
regmap_update_bits(tps65910->regmap, TPS65910_DEVCTRL,
DEVCTRL_DEV_OFF_MASK | DEVCTRL_DEV_ON_MASK,
DEVCTRL_DEV_OFF_MASK);
@@ -504,6 +495,19 @@ static int tps65910_i2c_probe(struct i2c_client *i2c,
tps65910_sleepinit(tps65910, pmic_plat_data);
if (pmic_plat_data->pm_off && !pm_power_off) {
+ /*
+ * The PWR_OFF bit needs to be set separately, before
+ * transitioning to the OFF state. It enables the "sequential"
+ * power-off mode on TPS65911, it's a NO-OP on TPS65910.
+ */
+ ret = regmap_set_bits(tps65910->regmap, TPS65910_DEVCTRL,
+ DEVCTRL_PWR_OFF_MASK);
+ if (ret) {
+ dev_err(&i2c->dev, "failed to set power-off mode: %d\n",
+ ret);
+ return ret;
+ }
+
tps65910_i2c_client = i2c;
pm_power_off = tps65910_power_off;
}
diff --git a/drivers/misc/eeprom/at25.c b/drivers/misc/eeprom/at25.c
index b38978a3b3ff..9193b812bc07 100644
--- a/drivers/misc/eeprom/at25.c
+++ b/drivers/misc/eeprom/at25.c
@@ -17,8 +17,6 @@
#include <linux/spi/spi.h>
#include <linux/spi/eeprom.h>
#include <linux/property.h>
-#include <linux/of.h>
-#include <linux/of_device.h>
#include <linux/math.h>
/*
@@ -380,13 +378,14 @@ static int at25_probe(struct spi_device *spi)
int sr;
u8 id[FM25_ID_LEN];
u8 sernum[FM25_SN_LEN];
+ bool is_fram;
int i;
- const struct of_device_id *match;
- bool is_fram = 0;
- match = of_match_device(of_match_ptr(at25_of_match), &spi->dev);
- if (match && !strcmp(match->compatible, "cypress,fm25"))
- is_fram = 1;
+ err = device_property_match_string(&spi->dev, "compatible", "cypress,fm25");
+ if (err >= 0)
+ is_fram = true;
+ else
+ is_fram = false;
at25 = devm_kzalloc(&spi->dev, sizeof(struct at25_data), GFP_KERNEL);
if (!at25)
diff --git a/drivers/misc/habanalabs/common/command_submission.c b/drivers/misc/habanalabs/common/command_submission.c
index 4c8000fd246c..9451e4bae05d 100644
--- a/drivers/misc/habanalabs/common/command_submission.c
+++ b/drivers/misc/habanalabs/common/command_submission.c
@@ -2765,8 +2765,23 @@ static int hl_cs_wait_ioctl(struct hl_fpriv *hpriv, void *data)
return 0;
}
+static inline unsigned long hl_usecs64_to_jiffies(const u64 usecs)
+{
+ if (usecs <= U32_MAX)
+ return usecs_to_jiffies(usecs);
+
+ /*
+ * If the value in nanoseconds is larger than 64 bit, use the largest
+ * 64 bit value.
+ */
+ if (usecs >= ((u64)(U64_MAX / NSEC_PER_USEC)))
+ return nsecs_to_jiffies(U64_MAX);
+
+ return nsecs_to_jiffies(usecs * NSEC_PER_USEC);
+}
+
static int _hl_interrupt_wait_ioctl(struct hl_device *hdev, struct hl_ctx *ctx,
- u32 timeout_us, u64 user_address,
+ u64 timeout_us, u64 user_address,
u64 target_value, u16 interrupt_offset,
enum hl_cs_wait_status *status,
u64 *timestamp)
@@ -2778,10 +2793,7 @@ static int _hl_interrupt_wait_ioctl(struct hl_device *hdev, struct hl_ctx *ctx,
long completion_rc;
int rc = 0;
- if (timeout_us == U32_MAX)
- timeout = timeout_us;
- else
- timeout = usecs_to_jiffies(timeout_us);
+ timeout = hl_usecs64_to_jiffies(timeout_us);
hl_ctx_get(hdev, ctx);
diff --git a/drivers/misc/habanalabs/common/firmware_if.c b/drivers/misc/habanalabs/common/firmware_if.c
index 4e68fb9d2a6b..67a0be457371 100644
--- a/drivers/misc/habanalabs/common/firmware_if.c
+++ b/drivers/misc/habanalabs/common/firmware_if.c
@@ -1703,6 +1703,9 @@ static int hl_fw_dynamic_validate_descriptor(struct hl_device *hdev,
return rc;
}
+ /* here we can mark the descriptor as valid as the content has been validated */
+ fw_loader->dynamic_loader.fw_desc_valid = true;
+
return 0;
}
@@ -1759,7 +1762,13 @@ static int hl_fw_dynamic_read_and_validate_descriptor(struct hl_device *hdev,
return rc;
}
- /* extract address copy the descriptor from */
+ /*
+ * extract address to copy the descriptor from
+ * in addition, as the descriptor value is going to be over-ridden by new data- we mark it
+ * as invalid.
+ * it will be marked again as valid once validated
+ */
+ fw_loader->dynamic_loader.fw_desc_valid = false;
src = hdev->pcie_bar[region->bar_id] + region->offset_in_bar +
response->ram_offset;
memcpy_fromio(fw_desc, src, sizeof(struct lkd_fw_comms_desc));
@@ -2247,6 +2256,9 @@ static int hl_fw_dynamic_init_cpu(struct hl_device *hdev,
dev_info(hdev->dev,
"Loading firmware to device, may take some time...\n");
+ /* initialize FW descriptor as invalid */
+ fw_loader->dynamic_loader.fw_desc_valid = false;
+
/*
* In this stage, "cpu_dyn_regs" contains only LKD's hard coded values!
* It will be updated from FW after hl_fw_dynamic_request_descriptor().
@@ -2333,7 +2345,8 @@ static int hl_fw_dynamic_init_cpu(struct hl_device *hdev,
return 0;
protocol_err:
- fw_read_errors(hdev, le32_to_cpu(dyn_regs->cpu_boot_err0),
+ if (fw_loader->dynamic_loader.fw_desc_valid)
+ fw_read_errors(hdev, le32_to_cpu(dyn_regs->cpu_boot_err0),
le32_to_cpu(dyn_regs->cpu_boot_err1),
le32_to_cpu(dyn_regs->cpu_boot_dev_sts0),
le32_to_cpu(dyn_regs->cpu_boot_dev_sts1));
diff --git a/drivers/misc/habanalabs/common/habanalabs.h b/drivers/misc/habanalabs/common/habanalabs.h
index a2002cbf794b..ba0965667b18 100644
--- a/drivers/misc/habanalabs/common/habanalabs.h
+++ b/drivers/misc/habanalabs/common/habanalabs.h
@@ -1010,6 +1010,7 @@ struct fw_response {
* @image_region: region to copy the FW image to
* @fw_image_size: size of FW image to load
* @wait_for_bl_timeout: timeout for waiting for boot loader to respond
+ * @fw_desc_valid: true if FW descriptor has been validated and hence the data can be used
*/
struct dynamic_fw_load_mgr {
struct fw_response response;
@@ -1017,6 +1018,7 @@ struct dynamic_fw_load_mgr {
struct pci_mem_region *image_region;
size_t fw_image_size;
u32 wait_for_bl_timeout;
+ bool fw_desc_valid;
};
/**
diff --git a/drivers/misc/lattice-ecp3-config.c b/drivers/misc/lattice-ecp3-config.c
index 0f54730c7ed5..98828030b5a4 100644
--- a/drivers/misc/lattice-ecp3-config.c
+++ b/drivers/misc/lattice-ecp3-config.c
@@ -76,12 +76,12 @@ static void firmware_load(const struct firmware *fw, void *context)
if (fw == NULL) {
dev_err(&spi->dev, "Cannot load firmware, aborting\n");
- return;
+ goto out;
}
if (fw->size == 0) {
dev_err(&spi->dev, "Error: Firmware size is 0!\n");
- return;
+ goto out;
}
/* Fill dummy data (24 stuffing bits for commands) */
@@ -103,7 +103,7 @@ static void firmware_load(const struct firmware *fw, void *context)
dev_err(&spi->dev,
"Error: No supported FPGA detected (JEDEC_ID=%08x)!\n",
jedec_id);
- return;
+ goto out;
}
dev_info(&spi->dev, "FPGA %s detected\n", ecp3_dev[i].name);
@@ -116,7 +116,7 @@ static void firmware_load(const struct firmware *fw, void *context)
buffer = kzalloc(fw->size + 8, GFP_KERNEL);
if (!buffer) {
dev_err(&spi->dev, "Error: Can't allocate memory!\n");
- return;
+ goto out;
}
/*
@@ -155,7 +155,7 @@ static void firmware_load(const struct firmware *fw, void *context)
"Error: Timeout waiting for FPGA to clear (status=%08x)!\n",
status);
kfree(buffer);
- return;
+ goto out;
}
dev_info(&spi->dev, "Configuring the FPGA...\n");
@@ -181,7 +181,7 @@ static void firmware_load(const struct firmware *fw, void *context)
release_firmware(fw);
kfree(buffer);
-
+out:
complete(&data->fw_loaded);
}
diff --git a/drivers/misc/lkdtm/Makefile b/drivers/misc/lkdtm/Makefile
index aa12097668d3..e2984ce51fe4 100644
--- a/drivers/misc/lkdtm/Makefile
+++ b/drivers/misc/lkdtm/Makefile
@@ -20,7 +20,7 @@ CFLAGS_REMOVE_rodata.o += $(CC_FLAGS_LTO)
OBJCOPYFLAGS :=
OBJCOPYFLAGS_rodata_objcopy.o := \
- --rename-section .noinstr.text=.rodata,alloc,readonly,load
+ --rename-section .noinstr.text=.rodata,alloc,readonly,load,contents
targets += rodata.o rodata_objcopy.o
$(obj)/rodata_objcopy.o: $(obj)/rodata.o FORCE
$(call if_changed,objcopy)
diff --git a/drivers/misc/mei/hbm.c b/drivers/misc/mei/hbm.c
index be41843df75b..cebcca6d6d3e 100644
--- a/drivers/misc/mei/hbm.c
+++ b/drivers/misc/mei/hbm.c
@@ -672,10 +672,14 @@ static void mei_hbm_cl_dma_map_res(struct mei_device *dev,
if (!cl)
return;
- dev_dbg(dev->dev, "cl dma map result = %d\n", res->status);
- cl->status = res->status;
- if (!cl->status)
+ if (res->status) {
+ dev_err(dev->dev, "cl dma map failed %d\n", res->status);
+ cl->status = -EFAULT;
+ } else {
+ dev_dbg(dev->dev, "cl dma map succeeded\n");
cl->dma_mapped = 1;
+ cl->status = 0;
+ }
wake_up(&cl->wait);
}
@@ -698,10 +702,14 @@ static void mei_hbm_cl_dma_unmap_res(struct mei_device *dev,
if (!cl)
return;
- dev_dbg(dev->dev, "cl dma unmap result = %d\n", res->status);
- cl->status = res->status;
- if (!cl->status)
+ if (res->status) {
+ dev_err(dev->dev, "cl dma unmap failed %d\n", res->status);
+ cl->status = -EFAULT;
+ } else {
+ dev_dbg(dev->dev, "cl dma unmap succeeded\n");
cl->dma_mapped = 0;
+ cl->status = 0;
+ }
wake_up(&cl->wait);
}
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index 68edf7a615be..5447c47157aa 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -708,6 +708,8 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
if (host->ops->init_card)
host->ops->init_card(host, card);
+ card->ocr = ocr_card;
+
/*
* If the host and card support UHS-I mode request the card
* to switch to 1.8V signaling level. No 1.8v signalling if
@@ -820,7 +822,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
goto mismatch;
}
}
- card->ocr = ocr_card;
+
mmc_fixup_device(card, sdio_fixup_methods);
if (card->type == MMC_TYPE_SD_COMBO) {
diff --git a/drivers/mmc/host/meson-mx-sdhc-mmc.c b/drivers/mmc/host/meson-mx-sdhc-mmc.c
index 8fdd0bbbfa21..28aa78aa08f3 100644
--- a/drivers/mmc/host/meson-mx-sdhc-mmc.c
+++ b/drivers/mmc/host/meson-mx-sdhc-mmc.c
@@ -854,6 +854,11 @@ static int meson_mx_sdhc_probe(struct platform_device *pdev)
goto err_disable_pclk;
irq = platform_get_irq(pdev, 0);
+ if (irq < 0) {
+ ret = irq;
+ goto err_disable_pclk;
+ }
+
ret = devm_request_threaded_irq(dev, irq, meson_mx_sdhc_irq,
meson_mx_sdhc_irq_thread, IRQF_ONESHOT,
NULL, host);
diff --git a/drivers/mmc/host/meson-mx-sdio.c b/drivers/mmc/host/meson-mx-sdio.c
index d4a48916bfb6..3a19a05ef55a 100644
--- a/drivers/mmc/host/meson-mx-sdio.c
+++ b/drivers/mmc/host/meson-mx-sdio.c
@@ -662,6 +662,11 @@ static int meson_mx_mmc_probe(struct platform_device *pdev)
}
irq = platform_get_irq(pdev, 0);
+ if (irq < 0) {
+ ret = irq;
+ goto error_free_mmc;
+ }
+
ret = devm_request_threaded_irq(host->controller_dev, irq,
meson_mx_mmc_irq,
meson_mx_mmc_irq_thread, IRQF_ONESHOT,
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
index 632775217d35..d5a9c269d492 100644
--- a/drivers/mmc/host/mtk-sd.c
+++ b/drivers/mmc/host/mtk-sd.c
@@ -636,12 +636,11 @@ static void msdc_reset_hw(struct msdc_host *host)
u32 val;
sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_RST);
- while (readl(host->base + MSDC_CFG) & MSDC_CFG_RST)
- cpu_relax();
+ readl_poll_timeout(host->base + MSDC_CFG, val, !(val & MSDC_CFG_RST), 0, 0);
sdr_set_bits(host->base + MSDC_FIFOCS, MSDC_FIFOCS_CLR);
- while (readl(host->base + MSDC_FIFOCS) & MSDC_FIFOCS_CLR)
- cpu_relax();
+ readl_poll_timeout(host->base + MSDC_FIFOCS, val,
+ !(val & MSDC_FIFOCS_CLR), 0, 0);
val = readl(host->base + MSDC_INT);
writel(val, host->base + MSDC_INT);
@@ -814,8 +813,9 @@ static void msdc_gate_clock(struct msdc_host *host)
clk_disable_unprepare(host->h_clk);
}
-static void msdc_ungate_clock(struct msdc_host *host)
+static int msdc_ungate_clock(struct msdc_host *host)
{
+ u32 val;
int ret;
clk_prepare_enable(host->h_clk);
@@ -825,11 +825,11 @@ static void msdc_ungate_clock(struct msdc_host *host)
ret = clk_bulk_prepare_enable(MSDC_NR_CLOCKS, host->bulk_clks);
if (ret) {
dev_err(host->dev, "Cannot enable pclk/axi/ahb clock gates\n");
- return;
+ return ret;
}
- while (!(readl(host->base + MSDC_CFG) & MSDC_CFG_CKSTB))
- cpu_relax();
+ return readl_poll_timeout(host->base + MSDC_CFG, val,
+ (val & MSDC_CFG_CKSTB), 1, 20000);
}
static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
@@ -840,6 +840,7 @@ static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
u32 div;
u32 sclk;
u32 tune_reg = host->dev_comp->pad_tune_reg;
+ u32 val;
if (!hz) {
dev_dbg(host->dev, "set mclk to 0\n");
@@ -920,8 +921,7 @@ static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
else
clk_prepare_enable(clk_get_parent(host->src_clk));
- while (!(readl(host->base + MSDC_CFG) & MSDC_CFG_CKSTB))
- cpu_relax();
+ readl_poll_timeout(host->base + MSDC_CFG, val, (val & MSDC_CFG_CKSTB), 0, 0);
sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_CKPDN);
mmc->actual_clock = sclk;
host->mclk = hz;
@@ -1231,13 +1231,13 @@ static bool msdc_cmd_done(struct msdc_host *host, int events,
static inline bool msdc_cmd_is_ready(struct msdc_host *host,
struct mmc_request *mrq, struct mmc_command *cmd)
{
- /* The max busy time we can endure is 20ms */
- unsigned long tmo = jiffies + msecs_to_jiffies(20);
+ u32 val;
+ int ret;
- while ((readl(host->base + SDC_STS) & SDC_STS_CMDBUSY) &&
- time_before(jiffies, tmo))
- cpu_relax();
- if (readl(host->base + SDC_STS) & SDC_STS_CMDBUSY) {
+ /* The max busy time we can endure is 20ms */
+ ret = readl_poll_timeout_atomic(host->base + SDC_STS, val,
+ !(val & SDC_STS_CMDBUSY), 1, 20000);
+ if (ret) {
dev_err(host->dev, "CMD bus busy detected\n");
host->error |= REQ_CMD_BUSY;
msdc_cmd_done(host, MSDC_INT_CMDTMO, mrq, cmd);
@@ -1245,12 +1245,10 @@ static inline bool msdc_cmd_is_ready(struct msdc_host *host,
}
if (mmc_resp_type(cmd) == MMC_RSP_R1B || cmd->data) {
- tmo = jiffies + msecs_to_jiffies(20);
/* R1B or with data, should check SDCBUSY */
- while ((readl(host->base + SDC_STS) & SDC_STS_SDCBUSY) &&
- time_before(jiffies, tmo))
- cpu_relax();
- if (readl(host->base + SDC_STS) & SDC_STS_SDCBUSY) {
+ ret = readl_poll_timeout_atomic(host->base + SDC_STS, val,
+ !(val & SDC_STS_SDCBUSY), 1, 20000);
+ if (ret) {
dev_err(host->dev, "Controller busy detected\n");
host->error |= REQ_CMD_BUSY;
msdc_cmd_done(host, MSDC_INT_CMDTMO, mrq, cmd);
@@ -1376,6 +1374,8 @@ static bool msdc_data_xfer_done(struct msdc_host *host, u32 events,
(MSDC_INT_XFER_COMPL | MSDC_INT_DATCRCERR | MSDC_INT_DATTMO
| MSDC_INT_DMA_BDCSERR | MSDC_INT_DMA_GPDCSERR
| MSDC_INT_DMA_PROTECT);
+ u32 val;
+ int ret;
spin_lock_irqsave(&host->lock, flags);
done = !host->data;
@@ -1392,8 +1392,14 @@ static bool msdc_data_xfer_done(struct msdc_host *host, u32 events,
readl(host->base + MSDC_DMA_CFG));
sdr_set_field(host->base + MSDC_DMA_CTRL, MSDC_DMA_CTRL_STOP,
1);
- while (readl(host->base + MSDC_DMA_CFG) & MSDC_DMA_CFG_STS)
- cpu_relax();
+
+ ret = readl_poll_timeout_atomic(host->base + MSDC_DMA_CFG, val,
+ !(val & MSDC_DMA_CFG_STS), 1, 20000);
+ if (ret) {
+ dev_dbg(host->dev, "DMA stop timed out\n");
+ return false;
+ }
+
sdr_clr_bits(host->base + MSDC_INTEN, data_ints_mask);
dev_dbg(host->dev, "DMA stop\n");
@@ -2674,7 +2680,11 @@ static int msdc_drv_probe(struct platform_device *pdev)
spin_lock_init(&host->lock);
platform_set_drvdata(pdev, mmc);
- msdc_ungate_clock(host);
+ ret = msdc_ungate_clock(host);
+ if (ret) {
+ dev_err(&pdev->dev, "Cannot ungate clocks!\n");
+ goto release_mem;
+ }
msdc_init_hw(host);
if (mmc->caps2 & MMC_CAP2_CQE) {
@@ -2833,8 +2843,12 @@ static int __maybe_unused msdc_runtime_resume(struct device *dev)
{
struct mmc_host *mmc = dev_get_drvdata(dev);
struct msdc_host *host = mmc_priv(mmc);
+ int ret;
+
+ ret = msdc_ungate_clock(host);
+ if (ret)
+ return ret;
- msdc_ungate_clock(host);
msdc_restore_reg(host);
return 0;
}
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 9dafcbf969d9..fca30add563e 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1499,41 +1499,6 @@ static void omap_hsmmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
omap_hsmmc_set_bus_mode(host);
}
-static void omap_hsmmc_init_card(struct mmc_host *mmc, struct mmc_card *card)
-{
- struct omap_hsmmc_host *host = mmc_priv(mmc);
-
- if (card->type == MMC_TYPE_SDIO || card->type == MMC_TYPE_SD_COMBO) {
- struct device_node *np = mmc_dev(mmc)->of_node;
-
- /*
- * REVISIT: should be moved to sdio core and made more
- * general e.g. by expanding the DT bindings of child nodes
- * to provide a mechanism to provide this information:
- * Documentation/devicetree/bindings/mmc/mmc-card.yaml
- */
-
- np = of_get_compatible_child(np, "ti,wl1251");
- if (np) {
- /*
- * We have TI wl1251 attached to MMC3. Pass this
- * information to the SDIO core because it can't be
- * probed by normal methods.
- */
-
- dev_info(host->dev, "found wl1251\n");
- card->quirks |= MMC_QUIRK_NONSTD_SDIO;
- card->cccr.wide_bus = 1;
- card->cis.vendor = 0x104c;
- card->cis.device = 0x9066;
- card->cis.blksize = 512;
- card->cis.max_dtr = 24000000;
- card->ocr = 0x80;
- of_node_put(np);
- }
- }
-}
-
static void omap_hsmmc_enable_sdio_irq(struct mmc_host *mmc, int enable)
{
struct omap_hsmmc_host *host = mmc_priv(mmc);
@@ -1660,7 +1625,6 @@ static struct mmc_host_ops omap_hsmmc_ops = {
.set_ios = omap_hsmmc_set_ios,
.get_cd = mmc_gpio_get_cd,
.get_ro = mmc_gpio_get_ro,
- .init_card = omap_hsmmc_init_card,
.enable_sdio_irq = omap_hsmmc_enable_sdio_irq,
};
diff --git a/drivers/mmc/host/sdhci-pci-gli.c b/drivers/mmc/host/sdhci-pci-gli.c
index 4fd99c1e82ba..ad50f16658fe 100644
--- a/drivers/mmc/host/sdhci-pci-gli.c
+++ b/drivers/mmc/host/sdhci-pci-gli.c
@@ -12,6 +12,7 @@
#include <linux/pci.h>
#include <linux/mmc/mmc.h>
#include <linux/delay.h>
+#include <linux/of.h>
#include "sdhci.h"
#include "sdhci-pci.h"
#include "cqhci.h"
@@ -116,6 +117,8 @@
#define PCI_GLI_9755_PECONF 0x44
#define PCI_GLI_9755_LFCLK GENMASK(14, 12)
#define PCI_GLI_9755_DMACLK BIT(29)
+#define PCI_GLI_9755_INVERT_CD BIT(30)
+#define PCI_GLI_9755_INVERT_WP BIT(31)
#define PCI_GLI_9755_CFG2 0x48
#define PCI_GLI_9755_CFG2_L1DLY GENMASK(28, 24)
@@ -570,6 +573,14 @@ static void gl9755_hw_setting(struct sdhci_pci_slot *slot)
gl9755_wt_on(pdev);
pci_read_config_dword(pdev, PCI_GLI_9755_PECONF, &value);
+ /*
+ * Apple ARM64 platforms using these chips may have
+ * inverted CD/WP detection.
+ */
+ if (of_property_read_bool(pdev->dev.of_node, "cd-inverted"))
+ value |= PCI_GLI_9755_INVERT_CD;
+ if (of_property_read_bool(pdev->dev.of_node, "wp-inverted"))
+ value |= PCI_GLI_9755_INVERT_WP;
value &= ~PCI_GLI_9755_LFCLK;
value &= ~PCI_GLI_9755_DMACLK;
pci_write_config_dword(pdev, PCI_GLI_9755_PECONF, value);
diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c
index e2affa52ef46..a5850d83908b 100644
--- a/drivers/mmc/host/tmio_mmc_core.c
+++ b/drivers/mmc/host/tmio_mmc_core.c
@@ -960,14 +960,8 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
case MMC_POWER_OFF:
tmio_mmc_power_off(host);
/* For R-Car Gen2+, we need to reset SDHI specific SCC */
- if (host->pdata->flags & TMIO_MMC_MIN_RCAR2) {
- host->reset(host);
-
- if (host->native_hotplug)
- tmio_mmc_enable_mmc_irqs(host,
- TMIO_STAT_CARD_REMOVE |
- TMIO_STAT_CARD_INSERT);
- }
+ if (host->pdata->flags & TMIO_MMC_MIN_RCAR2)
+ tmio_mmc_reset(host);
host->set_clock(host, 0);
break;
@@ -1175,6 +1169,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host)
if (mmc_can_gpio_cd(mmc))
_host->ops.get_cd = mmc_gpio_get_cd;
+ /* must be set before tmio_mmc_reset() */
_host->native_hotplug = !(mmc_can_gpio_cd(mmc) ||
mmc->caps & MMC_CAP_NEEDS_POLL ||
!mmc_card_is_removable(mmc));
@@ -1295,10 +1290,6 @@ int tmio_mmc_host_runtime_resume(struct device *dev)
if (host->clk_cache)
host->set_clock(host, host->clk_cache);
- if (host->native_hotplug)
- tmio_mmc_enable_mmc_irqs(host,
- TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT);
-
tmio_mmc_enable_dma(host, true);
return 0;
diff --git a/drivers/mtd/hyperbus/rpc-if.c b/drivers/mtd/hyperbus/rpc-if.c
index ecb050ba95cd..dc164c18f842 100644
--- a/drivers/mtd/hyperbus/rpc-if.c
+++ b/drivers/mtd/hyperbus/rpc-if.c
@@ -124,7 +124,9 @@ static int rpcif_hb_probe(struct platform_device *pdev)
if (!hyperbus)
return -ENOMEM;
- rpcif_sw_init(&hyperbus->rpc, pdev->dev.parent);
+ error = rpcif_sw_init(&hyperbus->rpc, pdev->dev.parent);
+ if (error)
+ return error;
platform_set_drvdata(pdev, hyperbus);
@@ -150,9 +152,9 @@ static int rpcif_hb_remove(struct platform_device *pdev)
{
struct rpcif_hyperbus *hyperbus = platform_get_drvdata(pdev);
int error = hyperbus_unregister_device(&hyperbus->hbdev);
- struct rpcif *rpc = dev_get_drvdata(pdev->dev.parent);
- rpcif_disable_rpm(rpc);
+ rpcif_disable_rpm(&hyperbus->rpc);
+
return error;
}
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index 9186268d361b..fc0bed14bfb1 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -825,8 +825,7 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
/* OTP nvmem will be registered on the physical device */
config.dev = mtd->dev.parent;
- /* just reuse the compatible as name */
- config.name = compatible;
+ config.name = kasprintf(GFP_KERNEL, "%s-%s", dev_name(&mtd->dev), compatible);
config.id = NVMEM_DEVID_NONE;
config.owner = THIS_MODULE;
config.type = NVMEM_TYPE_OTP;
@@ -842,6 +841,7 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
nvmem = NULL;
of_node_put(np);
+ kfree(config.name);
return nvmem;
}
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
index 04af12b66110..357661b62c94 100644
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -312,7 +312,7 @@ static int __mtd_del_partition(struct mtd_info *mtd)
if (err)
return err;
- list_del(&child->part.node);
+ list_del(&mtd->part.node);
free_partition(mtd);
return 0;
diff --git a/drivers/mtd/nand/raw/davinci_nand.c b/drivers/mtd/nand/raw/davinci_nand.c
index 118da9944e3b..45fec8c192ab 100644
--- a/drivers/mtd/nand/raw/davinci_nand.c
+++ b/drivers/mtd/nand/raw/davinci_nand.c
@@ -371,77 +371,6 @@ static int nand_davinci_correct_4bit(struct nand_chip *chip, u_char *data,
return corrected;
}
-/**
- * nand_read_page_hwecc_oob_first - hw ecc, read oob first
- * @chip: nand chip info structure
- * @buf: buffer to store read data
- * @oob_required: caller requires OOB data read to chip->oob_poi
- * @page: page number to read
- *
- * Hardware ECC for large page chips, require OOB to be read first. For this
- * ECC mode, the write_page method is re-used from ECC_HW. These methods
- * read/write ECC from the OOB area, unlike the ECC_HW_SYNDROME support with
- * multiple ECC steps, follows the "infix ECC" scheme and reads/writes ECC from
- * the data area, by overwriting the NAND manufacturer bad block markings.
- */
-static int nand_davinci_read_page_hwecc_oob_first(struct nand_chip *chip,
- uint8_t *buf,
- int oob_required, int page)
-{
- struct mtd_info *mtd = nand_to_mtd(chip);
- int i, eccsize = chip->ecc.size, ret;
- int eccbytes = chip->ecc.bytes;
- int eccsteps = chip->ecc.steps;
- uint8_t *p = buf;
- uint8_t *ecc_code = chip->ecc.code_buf;
- uint8_t *ecc_calc = chip->ecc.calc_buf;
- unsigned int max_bitflips = 0;
-
- /* Read the OOB area first */
- ret = nand_read_oob_op(chip, page, 0, chip->oob_poi, mtd->oobsize);
- if (ret)
- return ret;
-
- ret = nand_read_page_op(chip, page, 0, NULL, 0);
- if (ret)
- return ret;
-
- ret = mtd_ooblayout_get_eccbytes(mtd, ecc_code, chip->oob_poi, 0,
- chip->ecc.total);
- if (ret)
- return ret;
-
- for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
- int stat;
-
- chip->ecc.hwctl(chip, NAND_ECC_READ);
-
- ret = nand_read_data_op(chip, p, eccsize, false, false);
- if (ret)
- return ret;
-
- chip->ecc.calculate(chip, p, &ecc_calc[i]);
-
- stat = chip->ecc.correct(chip, p, &ecc_code[i], NULL);
- if (stat == -EBADMSG &&
- (chip->ecc.options & NAND_ECC_GENERIC_ERASED_CHECK)) {
- /* check for empty pages with bitflips */
- stat = nand_check_erased_ecc_chunk(p, eccsize,
- &ecc_code[i],
- eccbytes, NULL, 0,
- chip->ecc.strength);
- }
-
- if (stat < 0) {
- mtd->ecc_stats.failed++;
- } else {
- mtd->ecc_stats.corrected += stat;
- max_bitflips = max_t(unsigned int, max_bitflips, stat);
- }
- }
- return max_bitflips;
-}
-
/*----------------------------------------------------------------------*/
/* An ECC layout for using 4-bit ECC with small-page flash, storing
@@ -651,7 +580,7 @@ static int davinci_nand_attach_chip(struct nand_chip *chip)
} else if (chunks == 4 || chunks == 8) {
mtd_set_ooblayout(mtd,
nand_get_large_page_ooblayout());
- chip->ecc.read_page = nand_davinci_read_page_hwecc_oob_first;
+ chip->ecc.read_page = nand_read_page_hwecc_oob_first;
} else {
return -EIO;
}
diff --git a/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
index 10cc71829dcb..65bcd1c548d2 100644
--- a/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
+++ b/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
@@ -713,14 +713,32 @@ static void gpmi_nfc_compute_timings(struct gpmi_nand_data *this,
(use_half_period ? BM_GPMI_CTRL1_HALF_PERIOD : 0);
}
-static void gpmi_nfc_apply_timings(struct gpmi_nand_data *this)
+static int gpmi_nfc_apply_timings(struct gpmi_nand_data *this)
{
struct gpmi_nfc_hardware_timing *hw = &this->hw;
struct resources *r = &this->resources;
void __iomem *gpmi_regs = r->gpmi_regs;
unsigned int dll_wait_time_us;
+ int ret;
+
+ /* Clock dividers do NOT guarantee a clean clock signal on its output
+ * during the change of the divide factor on i.MX6Q/UL/SX. On i.MX7/8,
+ * all clock dividers provide these guarantee.
+ */
+ if (GPMI_IS_MX6Q(this) || GPMI_IS_MX6SX(this))
+ clk_disable_unprepare(r->clock[0]);
- clk_set_rate(r->clock[0], hw->clk_rate);
+ ret = clk_set_rate(r->clock[0], hw->clk_rate);
+ if (ret) {
+ dev_err(this->dev, "cannot set clock rate to %lu Hz: %d\n", hw->clk_rate, ret);
+ return ret;
+ }
+
+ if (GPMI_IS_MX6Q(this) || GPMI_IS_MX6SX(this)) {
+ ret = clk_prepare_enable(r->clock[0]);
+ if (ret)
+ return ret;
+ }
writel(hw->timing0, gpmi_regs + HW_GPMI_TIMING0);
writel(hw->timing1, gpmi_regs + HW_GPMI_TIMING1);
@@ -739,6 +757,8 @@ static void gpmi_nfc_apply_timings(struct gpmi_nand_data *this)
/* Wait for the DLL to settle. */
udelay(dll_wait_time_us);
+
+ return 0;
}
static int gpmi_setup_interface(struct nand_chip *chip, int chipnr,
@@ -1032,15 +1052,6 @@ static int gpmi_get_clks(struct gpmi_nand_data *this)
r->clock[i] = clk;
}
- if (GPMI_IS_MX6(this))
- /*
- * Set the default value for the gpmi clock.
- *
- * If you want to use the ONFI nand which is in the
- * Synchronous Mode, you should change the clock as you need.
- */
- clk_set_rate(r->clock[0], 22000000);
-
return 0;
err_clock:
@@ -2278,7 +2289,9 @@ static int gpmi_nfc_exec_op(struct nand_chip *chip,
*/
if (this->hw.must_apply_timings) {
this->hw.must_apply_timings = false;
- gpmi_nfc_apply_timings(this);
+ ret = gpmi_nfc_apply_timings(this);
+ if (ret)
+ return ret;
}
dev_dbg(this->dev, "%s: %d instructions\n", __func__, op->ninstrs);
diff --git a/drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c b/drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c
index 0e9d426fe4f2..b18861bdcdc8 100644
--- a/drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c
+++ b/drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c
@@ -32,6 +32,7 @@ struct jz_soc_info {
unsigned long addr_offset;
unsigned long cmd_offset;
const struct mtd_ooblayout_ops *oob_layout;
+ bool oob_first;
};
struct ingenic_nand_cs {
@@ -240,6 +241,9 @@ static int ingenic_nand_attach_chip(struct nand_chip *chip)
if (chip->bbt_options & NAND_BBT_USE_FLASH)
chip->bbt_options |= NAND_BBT_NO_OOB;
+ if (nfc->soc_info->oob_first)
+ chip->ecc.read_page = nand_read_page_hwecc_oob_first;
+
/* For legacy reasons we use a different layout on the qi,lb60 board. */
if (of_machine_is_compatible("qi,lb60"))
mtd_set_ooblayout(mtd, &qi_lb60_ooblayout_ops);
@@ -534,6 +538,7 @@ static const struct jz_soc_info jz4740_soc_info = {
.data_offset = 0x00000000,
.cmd_offset = 0x00008000,
.addr_offset = 0x00010000,
+ .oob_first = true,
};
static const struct jz_soc_info jz4725b_soc_info = {
diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
index a130320de412..d5a2110eb38e 100644
--- a/drivers/mtd/nand/raw/nand_base.c
+++ b/drivers/mtd/nand/raw/nand_base.c
@@ -3160,6 +3160,73 @@ static int nand_read_page_hwecc(struct nand_chip *chip, uint8_t *buf,
return max_bitflips;
}
+/**
+ * nand_read_page_hwecc_oob_first - Hardware ECC page read with ECC
+ * data read from OOB area
+ * @chip: nand chip info structure
+ * @buf: buffer to store read data
+ * @oob_required: caller requires OOB data read to chip->oob_poi
+ * @page: page number to read
+ *
+ * Hardware ECC for large page chips, which requires the ECC data to be
+ * extracted from the OOB before the actual data is read.
+ */
+int nand_read_page_hwecc_oob_first(struct nand_chip *chip, uint8_t *buf,
+ int oob_required, int page)
+{
+ struct mtd_info *mtd = nand_to_mtd(chip);
+ int i, eccsize = chip->ecc.size, ret;
+ int eccbytes = chip->ecc.bytes;
+ int eccsteps = chip->ecc.steps;
+ uint8_t *p = buf;
+ uint8_t *ecc_code = chip->ecc.code_buf;
+ unsigned int max_bitflips = 0;
+
+ /* Read the OOB area first */
+ ret = nand_read_oob_op(chip, page, 0, chip->oob_poi, mtd->oobsize);
+ if (ret)
+ return ret;
+
+ /* Move read cursor to start of page */
+ ret = nand_change_read_column_op(chip, 0, NULL, 0, false);
+ if (ret)
+ return ret;
+
+ ret = mtd_ooblayout_get_eccbytes(mtd, ecc_code, chip->oob_poi, 0,
+ chip->ecc.total);
+ if (ret)
+ return ret;
+
+ for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
+ int stat;
+
+ chip->ecc.hwctl(chip, NAND_ECC_READ);
+
+ ret = nand_read_data_op(chip, p, eccsize, false, false);
+ if (ret)
+ return ret;
+
+ stat = chip->ecc.correct(chip, p, &ecc_code[i], NULL);
+ if (stat == -EBADMSG &&
+ (chip->ecc.options & NAND_ECC_GENERIC_ERASED_CHECK)) {
+ /* check for empty pages with bitflips */
+ stat = nand_check_erased_ecc_chunk(p, eccsize,
+ &ecc_code[i],
+ eccbytes, NULL, 0,
+ chip->ecc.strength);
+ }
+
+ if (stat < 0) {
+ mtd->ecc_stats.failed++;
+ } else {
+ mtd->ecc_stats.corrected += stat;
+ max_bitflips = max_t(unsigned int, max_bitflips, stat);
+ }
+ }
+ return max_bitflips;
+}
+EXPORT_SYMBOL_GPL(nand_read_page_hwecc_oob_first);
+
/**
* nand_read_page_syndrome - [REPLACEABLE] hardware ECC syndrome based page read
* @chip: nand chip info structure
diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
index cc08bd707378..fa66dfed002d 100644
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -1952,6 +1952,7 @@ static int spi_nor_write(struct mtd_info *mtd, loff_t to, size_t len,
struct spi_nor *nor = mtd_to_spi_nor(mtd);
size_t page_offset, page_remain, i;
ssize_t ret;
+ u32 page_size = nor->params->page_size;
dev_dbg(nor->dev, "to 0x%08x, len %zd\n", (u32)to, len);
@@ -1968,16 +1969,15 @@ static int spi_nor_write(struct mtd_info *mtd, loff_t to, size_t len,
* calculated with an AND operation. On the other cases we
* need to do a modulus operation (more expensive).
*/
- if (is_power_of_2(nor->page_size)) {
- page_offset = addr & (nor->page_size - 1);
+ if (is_power_of_2(page_size)) {
+ page_offset = addr & (page_size - 1);
} else {
uint64_t aux = addr;
- page_offset = do_div(aux, nor->page_size);
+ page_offset = do_div(aux, page_size);
}
/* the size of data remaining on the first page */
- page_remain = min_t(size_t,
- nor->page_size - page_offset, len - i);
+ page_remain = min_t(size_t, page_size - page_offset, len - i);
addr = spi_nor_convert_addr(nor, addr);
@@ -3094,7 +3094,7 @@ int spi_nor_scan(struct spi_nor *nor, const char *name,
* We need the bounce buffer early to read/write registers when going
* through the spi-mem layer (buffers have to be DMA-able).
* For spi-mem drivers, we'll reallocate a new buffer if
- * nor->page_size turns out to be greater than PAGE_SIZE (which
+ * nor->params->page_size turns out to be greater than PAGE_SIZE (which
* shouldn't happen before long since NOR pages are usually less
* than 1KB) after spi_nor_scan() returns.
*/
@@ -3171,8 +3171,7 @@ int spi_nor_scan(struct spi_nor *nor, const char *name,
mtd->flags |= MTD_NO_ERASE;
mtd->dev.parent = dev;
- nor->page_size = nor->params->page_size;
- mtd->writebufsize = nor->page_size;
+ mtd->writebufsize = nor->params->page_size;
if (of_property_read_bool(np, "broken-flash-reset"))
nor->flags |= SNOR_F_BROKEN_RESET;
@@ -3341,8 +3340,8 @@ static int spi_nor_probe(struct spi_mem *spimem)
* and add this logic so that if anyone ever adds support for such
* a NOR we don't end up with buffer overflows.
*/
- if (nor->page_size > PAGE_SIZE) {
- nor->bouncebuf_size = nor->page_size;
+ if (nor->params->page_size > PAGE_SIZE) {
+ nor->bouncebuf_size = nor->params->page_size;
devm_kfree(nor->dev, nor->bouncebuf);
nor->bouncebuf = devm_kmalloc(nor->dev,
nor->bouncebuf_size,
diff --git a/drivers/mtd/spi-nor/xilinx.c b/drivers/mtd/spi-nor/xilinx.c
index 1138bdbf4199..0ac1d681e84d 100644
--- a/drivers/mtd/spi-nor/xilinx.c
+++ b/drivers/mtd/spi-nor/xilinx.c
@@ -28,11 +28,12 @@ static const struct flash_info xilinx_parts[] = {
*/
static u32 s3an_convert_addr(struct spi_nor *nor, u32 addr)
{
+ u32 page_size = nor->params->page_size;
u32 offset, page;
- offset = addr % nor->page_size;
- page = addr / nor->page_size;
- page <<= (nor->page_size > 512) ? 10 : 9;
+ offset = addr % page_size;
+ page = addr / page_size;
+ page <<= (page_size > 512) ? 10 : 9;
return page | offset;
}
@@ -40,6 +41,7 @@ static u32 s3an_convert_addr(struct spi_nor *nor, u32 addr)
static int xilinx_nor_setup(struct spi_nor *nor,
const struct spi_nor_hwcaps *hwcaps)
{
+ u32 page_size;
int ret;
ret = spi_nor_xread_sr(nor, nor->bouncebuf);
@@ -64,10 +66,12 @@ static int xilinx_nor_setup(struct spi_nor *nor,
*/
if (nor->bouncebuf[0] & XSR_PAGESIZE) {
/* Flash in Power of 2 mode */
- nor->page_size = (nor->page_size == 264) ? 256 : 512;
- nor->mtd.writebufsize = nor->page_size;
- nor->mtd.size = 8 * nor->page_size * nor->info->n_sectors;
- nor->mtd.erasesize = 8 * nor->page_size;
+ page_size = (nor->params->page_size == 264) ? 256 : 512;
+ nor->params->page_size = page_size;
+ nor->mtd.writebufsize = page_size;
+ nor->params->size = 8 * page_size * nor->info->n_sectors;
+ nor->mtd.size = nor->params->size;
+ nor->mtd.erasesize = 8 * page_size;
} else {
/* Flash in Default addressing mode */
nor->params->convert_addr = s3an_convert_addr;
diff --git a/drivers/net/amt.c b/drivers/net/amt.c
index b732ee9a50ef..d3a9dda6c728 100644
--- a/drivers/net/amt.c
+++ b/drivers/net/amt.c
@@ -1106,7 +1106,7 @@ static bool amt_send_membership_query(struct amt_dev *amt,
rt = ip_route_output_key(amt->net, &fl4);
if (IS_ERR(rt)) {
netdev_dbg(amt->dev, "no route to %pI4\n", &tunnel->ip4);
- return -1;
+ return true;
}
amtmq = skb_push(skb, sizeof(*amtmq));
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index ff8da720a33a..1db5c7a172a7 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1096,9 +1096,6 @@ static bool bond_should_notify_peers(struct bonding *bond)
slave = rcu_dereference(bond->curr_active_slave);
rcu_read_unlock();
- netdev_dbg(bond->dev, "bond_should_notify_peers: slave %s\n",
- slave ? slave->dev->name : "NULL");
-
if (!slave || !bond->send_peer_notif ||
bond->send_peer_notif %
max(1, bond->params.peer_notif_delay) != 0 ||
@@ -1106,6 +1103,9 @@ static bool bond_should_notify_peers(struct bonding *bond)
test_bit(__LINK_STATE_LINKWATCH_PENDING, &slave->dev->state))
return false;
+ netdev_dbg(bond->dev, "bond_should_notify_peers: slave %s\n",
+ slave ? slave->dev->name : "NULL");
+
return true;
}
@@ -3872,8 +3872,8 @@ u32 bond_xmit_hash(struct bonding *bond, struct sk_buff *skb)
skb->l4_hash)
return skb->hash;
- return __bond_xmit_hash(bond, skb, skb->head, skb->protocol,
- skb->mac_header, skb->network_header,
+ return __bond_xmit_hash(bond, skb, skb->data, skb->protocol,
+ skb_mac_offset(skb), skb_network_offset(skb),
skb_headlen(skb));
}
@@ -4843,25 +4843,39 @@ static netdev_tx_t bond_xmit_broadcast(struct sk_buff *skb,
struct bonding *bond = netdev_priv(bond_dev);
struct slave *slave = NULL;
struct list_head *iter;
+ bool xmit_suc = false;
+ bool skb_used = false;
bond_for_each_slave_rcu(bond, slave, iter) {
- if (bond_is_last_slave(bond, slave))
- break;
- if (bond_slave_is_up(slave) && slave->link == BOND_LINK_UP) {
- struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC);
+ struct sk_buff *skb2;
+
+ if (!(bond_slave_is_up(slave) && slave->link == BOND_LINK_UP))
+ continue;
+ if (bond_is_last_slave(bond, slave)) {
+ skb2 = skb;
+ skb_used = true;
+ } else {
+ skb2 = skb_clone(skb, GFP_ATOMIC);
if (!skb2) {
net_err_ratelimited("%s: Error: %s: skb_clone() failed\n",
bond_dev->name, __func__);
continue;
}
- bond_dev_queue_xmit(bond, skb2, slave->dev);
}
+
+ if (bond_dev_queue_xmit(bond, skb2, slave->dev) == NETDEV_TX_OK)
+ xmit_suc = true;
}
- if (slave && bond_slave_is_up(slave) && slave->link == BOND_LINK_UP)
- return bond_dev_queue_xmit(bond, skb, slave->dev);
- return bond_tx_drop(bond_dev, skb);
+ if (!skb_used)
+ dev_kfree_skb_any(skb);
+
+ if (xmit_suc)
+ return NETDEV_TX_OK;
+
+ atomic_long_inc(&bond_dev->tx_dropped);
+ return NET_XMIT_DROP;
}
/*------------------------- Device initialization ---------------------------*/
diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c
index 3aea32c9b108..3cd872cf9be6 100644
--- a/drivers/net/can/at91_can.c
+++ b/drivers/net/can/at91_can.c
@@ -553,8 +553,6 @@ static void at91_rx_overflow_err(struct net_device *dev)
cf->can_id |= CAN_ERR_CRTL;
cf->data[1] = CAN_ERR_CRTL_RX_OVERFLOW;
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_receive_skb(skb);
}
@@ -779,8 +777,6 @@ static int at91_poll_err(struct net_device *dev, int quota, u32 reg_sr)
at91_poll_err_frame(dev, cf, reg_sr);
- dev->stats.rx_packets++;
- dev->stats.rx_bytes += cf->len;
netif_receive_skb(skb);
return 1;
@@ -1037,8 +1033,6 @@ static void at91_irq_err(struct net_device *dev)
at91_irq_err_state(dev, cf, new_state);
- dev->stats.rx_packets++;
- dev->stats.rx_bytes += cf->len;
netif_rx(skb);
priv->can.state = new_state;
diff --git a/drivers/net/can/c_can/c_can_main.c b/drivers/net/can/c_can/c_can_main.c
index 52671d1ea17d..670754a12984 100644
--- a/drivers/net/can/c_can/c_can_main.c
+++ b/drivers/net/can/c_can/c_can_main.c
@@ -920,7 +920,6 @@ static int c_can_handle_state_change(struct net_device *dev,
unsigned int reg_err_counter;
unsigned int rx_err_passive;
struct c_can_priv *priv = netdev_priv(dev);
- struct net_device_stats *stats = &dev->stats;
struct can_frame *cf;
struct sk_buff *skb;
struct can_berr_counter bec;
@@ -996,8 +995,6 @@ static int c_can_handle_state_change(struct net_device *dev,
break;
}
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_receive_skb(skb);
return 1;
@@ -1064,8 +1061,6 @@ static int c_can_handle_bus_err(struct net_device *dev,
break;
}
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_receive_skb(skb);
return 1;
}
diff --git a/drivers/net/can/cc770/cc770.c b/drivers/net/can/cc770/cc770.c
index f8a130f594e2..a5fd8ccedec2 100644
--- a/drivers/net/can/cc770/cc770.c
+++ b/drivers/net/can/cc770/cc770.c
@@ -499,7 +499,6 @@ static void cc770_rx(struct net_device *dev, unsigned int mo, u8 ctrl1)
static int cc770_err(struct net_device *dev, u8 status)
{
struct cc770_priv *priv = netdev_priv(dev);
- struct net_device_stats *stats = &dev->stats;
struct can_frame *cf;
struct sk_buff *skb;
u8 lec;
@@ -571,8 +570,6 @@ static int cc770_err(struct net_device *dev, u8 status)
}
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_rx(skb);
return 0;
diff --git a/drivers/net/can/dev/dev.c b/drivers/net/can/dev/dev.c
index e3d840b81357..4845ae6456e1 100644
--- a/drivers/net/can/dev/dev.c
+++ b/drivers/net/can/dev/dev.c
@@ -136,7 +136,6 @@ EXPORT_SYMBOL_GPL(can_change_state);
static void can_restart(struct net_device *dev)
{
struct can_priv *priv = netdev_priv(dev);
- struct net_device_stats *stats = &dev->stats;
struct sk_buff *skb;
struct can_frame *cf;
int err;
@@ -155,9 +154,6 @@ static void can_restart(struct net_device *dev)
cf->can_id |= CAN_ERR_RESTARTED;
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
-
netif_rx_ni(skb);
restart:
diff --git a/drivers/net/can/dev/rx-offload.c b/drivers/net/can/dev/rx-offload.c
index 37b0cc65237b..7dbf46b9ca5d 100644
--- a/drivers/net/can/dev/rx-offload.c
+++ b/drivers/net/can/dev/rx-offload.c
@@ -54,8 +54,10 @@ static int can_rx_offload_napi_poll(struct napi_struct *napi, int quota)
struct can_frame *cf = (struct can_frame *)skb->data;
work_done++;
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
+ if (!(cf->can_id & CAN_ERR_FLAG)) {
+ stats->rx_packets++;
+ stats->rx_bytes += cf->len;
+ }
netif_receive_skb(skb);
}
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 12b60ad95b02..57cebc415661 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -173,9 +173,9 @@
/* FLEXCAN interrupt flag register (IFLAG) bits */
/* Errata ERR005829 step7: Reserve first valid MB */
-#define FLEXCAN_TX_MB_RESERVED_OFF_FIFO 8
-#define FLEXCAN_TX_MB_RESERVED_OFF_TIMESTAMP 0
-#define FLEXCAN_RX_MB_OFF_TIMESTAMP_FIRST (FLEXCAN_TX_MB_RESERVED_OFF_TIMESTAMP + 1)
+#define FLEXCAN_TX_MB_RESERVED_RX_FIFO 8
+#define FLEXCAN_TX_MB_RESERVED_RX_MAILBOX 0
+#define FLEXCAN_RX_MB_RX_MAILBOX_FIRST (FLEXCAN_TX_MB_RESERVED_RX_MAILBOX + 1)
#define FLEXCAN_IFLAG_MB(x) BIT_ULL(x)
#define FLEXCAN_IFLAG_RX_FIFO_OVERFLOW BIT(7)
#define FLEXCAN_IFLAG_RX_FIFO_WARN BIT(6)
@@ -234,8 +234,8 @@
#define FLEXCAN_QUIRK_ENABLE_EACEN_RRS BIT(3)
/* Disable non-correctable errors interrupt and freeze mode */
#define FLEXCAN_QUIRK_DISABLE_MECR BIT(4)
-/* Use timestamp based offloading */
-#define FLEXCAN_QUIRK_USE_OFF_TIMESTAMP BIT(5)
+/* Use mailboxes (not FIFO) for RX path */
+#define FLEXCAN_QUIRK_USE_RX_MAILBOX BIT(5)
/* No interrupt for error passive */
#define FLEXCAN_QUIRK_BROKEN_PERR_STATE BIT(6)
/* default to BE register access */
@@ -252,6 +252,12 @@
#define FLEXCAN_QUIRK_NR_IRQ_3 BIT(12)
/* Setup 16 mailboxes */
#define FLEXCAN_QUIRK_NR_MB_16 BIT(13)
+/* Device supports RX via mailboxes */
+#define FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX BIT(14)
+/* Device supports RTR reception via mailboxes */
+#define FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR BIT(15)
+/* Device supports RX via FIFO */
+#define FLEXCAN_QUIRK_SUPPPORT_RX_FIFO BIT(16)
/* Structure of the message buffer */
struct flexcan_mb {
@@ -369,7 +375,7 @@ struct flexcan_priv {
struct clk *clk_ipg;
struct clk *clk_per;
- const struct flexcan_devtype_data *devtype_data;
+ struct flexcan_devtype_data devtype_data;
struct regulator *reg_xceiver;
struct flexcan_stop_mode stm;
@@ -386,59 +392,78 @@ struct flexcan_priv {
static const struct flexcan_devtype_data fsl_mcf5441x_devtype_data = {
.quirks = FLEXCAN_QUIRK_BROKEN_PERR_STATE |
- FLEXCAN_QUIRK_NR_IRQ_3 | FLEXCAN_QUIRK_NR_MB_16,
+ FLEXCAN_QUIRK_NR_IRQ_3 | FLEXCAN_QUIRK_NR_MB_16 |
+ FLEXCAN_QUIRK_SUPPPORT_RX_FIFO,
};
static const struct flexcan_devtype_data fsl_p1010_devtype_data = {
.quirks = FLEXCAN_QUIRK_BROKEN_WERR_STATE |
FLEXCAN_QUIRK_BROKEN_PERR_STATE |
- FLEXCAN_QUIRK_DEFAULT_BIG_ENDIAN,
+ FLEXCAN_QUIRK_DEFAULT_BIG_ENDIAN |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_FIFO,
};
static const struct flexcan_devtype_data fsl_imx25_devtype_data = {
.quirks = FLEXCAN_QUIRK_BROKEN_WERR_STATE |
- FLEXCAN_QUIRK_BROKEN_PERR_STATE,
+ FLEXCAN_QUIRK_BROKEN_PERR_STATE |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_FIFO,
};
static const struct flexcan_devtype_data fsl_imx28_devtype_data = {
- .quirks = FLEXCAN_QUIRK_BROKEN_PERR_STATE,
+ .quirks = FLEXCAN_QUIRK_BROKEN_PERR_STATE |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_FIFO,
};
static const struct flexcan_devtype_data fsl_imx6q_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
- FLEXCAN_QUIRK_USE_OFF_TIMESTAMP | FLEXCAN_QUIRK_BROKEN_PERR_STATE |
- FLEXCAN_QUIRK_SETUP_STOP_MODE_GPR,
+ FLEXCAN_QUIRK_USE_RX_MAILBOX | FLEXCAN_QUIRK_BROKEN_PERR_STATE |
+ FLEXCAN_QUIRK_SETUP_STOP_MODE_GPR |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR,
};
static const struct flexcan_devtype_data fsl_imx8qm_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
- FLEXCAN_QUIRK_USE_OFF_TIMESTAMP | FLEXCAN_QUIRK_BROKEN_PERR_STATE |
- FLEXCAN_QUIRK_SUPPORT_FD | FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW,
+ FLEXCAN_QUIRK_USE_RX_MAILBOX | FLEXCAN_QUIRK_BROKEN_PERR_STATE |
+ FLEXCAN_QUIRK_SUPPORT_FD | FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR,
};
static struct flexcan_devtype_data fsl_imx8mp_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
- FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP |
+ FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_RX_MAILBOX |
FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_SETUP_STOP_MODE_GPR |
- FLEXCAN_QUIRK_SUPPORT_FD | FLEXCAN_QUIRK_SUPPORT_ECC,
+ FLEXCAN_QUIRK_SUPPORT_FD | FLEXCAN_QUIRK_SUPPORT_ECC |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR,
};
static const struct flexcan_devtype_data fsl_vf610_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
- FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP |
- FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_SUPPORT_ECC,
+ FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_RX_MAILBOX |
+ FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_SUPPORT_ECC |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR,
};
static const struct flexcan_devtype_data fsl_ls1021a_r2_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
- FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP,
+ FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_USE_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR,
};
static const struct flexcan_devtype_data fsl_lx2160a_r1_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_BROKEN_PERR_STATE |
- FLEXCAN_QUIRK_USE_OFF_TIMESTAMP | FLEXCAN_QUIRK_SUPPORT_FD |
- FLEXCAN_QUIRK_SUPPORT_ECC,
+ FLEXCAN_QUIRK_USE_RX_MAILBOX | FLEXCAN_QUIRK_SUPPORT_FD |
+ FLEXCAN_QUIRK_SUPPORT_ECC |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR,
};
static const struct can_bittiming_const flexcan_bittiming_const = {
@@ -600,7 +625,7 @@ static inline int flexcan_enter_stop_mode(struct flexcan_priv *priv)
priv->write(reg_mcr, ®s->mcr);
/* enable stop request */
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW) {
ret = flexcan_stop_mode_enable_scfw(priv, true);
if (ret < 0)
return ret;
@@ -619,7 +644,7 @@ static inline int flexcan_exit_stop_mode(struct flexcan_priv *priv)
int ret;
/* remove stop request */
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW) {
ret = flexcan_stop_mode_enable_scfw(priv, false);
if (ret < 0)
return ret;
@@ -1022,7 +1047,7 @@ static struct sk_buff *flexcan_mailbox_read(struct can_rx_offload *offload,
mb = flexcan_get_mb(priv, n);
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX) {
u32 code;
do {
@@ -1087,7 +1112,7 @@ static struct sk_buff *flexcan_mailbox_read(struct can_rx_offload *offload,
}
mark_as_read:
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX)
flexcan_write64(priv, FLEXCAN_IFLAG_MB(n), ®s->iflag1);
else
priv->write(FLEXCAN_IFLAG_RX_FIFO_AVAILABLE, ®s->iflag1);
@@ -1113,7 +1138,7 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
enum can_state last_state = priv->can.state;
/* reception interrupt */
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX) {
u64 reg_iflag_rx;
int ret;
@@ -1173,7 +1198,7 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
/* state change interrupt or broken error state quirk fix is enabled */
if ((reg_esr & FLEXCAN_ESR_ERR_STATE) ||
- (priv->devtype_data->quirks & (FLEXCAN_QUIRK_BROKEN_WERR_STATE |
+ (priv->devtype_data.quirks & (FLEXCAN_QUIRK_BROKEN_WERR_STATE |
FLEXCAN_QUIRK_BROKEN_PERR_STATE)))
flexcan_irq_state(dev, reg_esr);
@@ -1195,11 +1220,11 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
* (1): enabled if FLEXCAN_QUIRK_BROKEN_WERR_STATE is enabled
*/
if ((last_state != priv->can.state) &&
- (priv->devtype_data->quirks & FLEXCAN_QUIRK_BROKEN_PERR_STATE) &&
+ (priv->devtype_data.quirks & FLEXCAN_QUIRK_BROKEN_PERR_STATE) &&
!(priv->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING)) {
switch (priv->can.state) {
case CAN_STATE_ERROR_ACTIVE:
- if (priv->devtype_data->quirks &
+ if (priv->devtype_data.quirks &
FLEXCAN_QUIRK_BROKEN_WERR_STATE)
flexcan_error_irq_enable(priv);
else
@@ -1423,26 +1448,26 @@ static int flexcan_rx_offload_setup(struct net_device *dev)
else
priv->mb_size = sizeof(struct flexcan_mb) + CAN_MAX_DLEN;
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_NR_MB_16)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_NR_MB_16)
priv->mb_count = 16;
else
priv->mb_count = (sizeof(priv->regs->mb[0]) / priv->mb_size) +
(sizeof(priv->regs->mb[1]) / priv->mb_size);
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX)
priv->tx_mb_reserved =
- flexcan_get_mb(priv, FLEXCAN_TX_MB_RESERVED_OFF_TIMESTAMP);
+ flexcan_get_mb(priv, FLEXCAN_TX_MB_RESERVED_RX_MAILBOX);
else
priv->tx_mb_reserved =
- flexcan_get_mb(priv, FLEXCAN_TX_MB_RESERVED_OFF_FIFO);
+ flexcan_get_mb(priv, FLEXCAN_TX_MB_RESERVED_RX_FIFO);
priv->tx_mb_idx = priv->mb_count - 1;
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
priv->tx_mask = FLEXCAN_IFLAG_MB(priv->tx_mb_idx);
priv->offload.mailbox_read = flexcan_mailbox_read;
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
- priv->offload.mb_first = FLEXCAN_RX_MB_OFF_TIMESTAMP_FIRST;
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX) {
+ priv->offload.mb_first = FLEXCAN_RX_MB_RX_MAILBOX_FIRST;
priv->offload.mb_last = priv->mb_count - 2;
priv->rx_mask = GENMASK_ULL(priv->offload.mb_last,
@@ -1506,7 +1531,7 @@ static int flexcan_chip_start(struct net_device *dev)
if (err)
goto out_chip_disable;
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SUPPORT_ECC)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SUPPORT_ECC)
flexcan_ram_init(dev);
flexcan_set_bittiming(dev);
@@ -1532,10 +1557,10 @@ static int flexcan_chip_start(struct net_device *dev)
/* MCR
*
* FIFO:
- * - disable for timestamp mode
+ * - disable for mailbox mode
* - enable for FIFO mode
*/
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX)
reg_mcr &= ~FLEXCAN_MCR_FEN;
else
reg_mcr |= FLEXCAN_MCR_FEN;
@@ -1586,7 +1611,7 @@ static int flexcan_chip_start(struct net_device *dev)
* on most Flexcan cores, too. Otherwise we don't get
* any error warning or passive interrupts.
*/
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_BROKEN_WERR_STATE ||
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_BROKEN_WERR_STATE ||
priv->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING)
reg_ctrl |= FLEXCAN_CTRL_ERR_MSK;
else
@@ -1599,7 +1624,7 @@ static int flexcan_chip_start(struct net_device *dev)
netdev_dbg(dev, "%s: writing ctrl=0x%08x", __func__, reg_ctrl);
priv->write(reg_ctrl, ®s->ctrl);
- if ((priv->devtype_data->quirks & FLEXCAN_QUIRK_ENABLE_EACEN_RRS)) {
+ if ((priv->devtype_data.quirks & FLEXCAN_QUIRK_ENABLE_EACEN_RRS)) {
reg_ctrl2 = priv->read(®s->ctrl2);
reg_ctrl2 |= FLEXCAN_CTRL2_EACEN | FLEXCAN_CTRL2_RRS;
priv->write(reg_ctrl2, ®s->ctrl2);
@@ -1631,7 +1656,7 @@ static int flexcan_chip_start(struct net_device *dev)
priv->write(reg_fdctrl, ®s->fdctrl);
}
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX) {
for (i = priv->offload.mb_first; i <= priv->offload.mb_last; i++) {
mb = flexcan_get_mb(priv, i);
priv->write(FLEXCAN_MB_CODE_RX_EMPTY,
@@ -1639,7 +1664,7 @@ static int flexcan_chip_start(struct net_device *dev)
}
} else {
/* clear and invalidate unused mailboxes first */
- for (i = FLEXCAN_TX_MB_RESERVED_OFF_FIFO; i < priv->mb_count; i++) {
+ for (i = FLEXCAN_TX_MB_RESERVED_RX_FIFO; i < priv->mb_count; i++) {
mb = flexcan_get_mb(priv, i);
priv->write(FLEXCAN_MB_CODE_RX_INACTIVE,
&mb->can_ctrl);
@@ -1659,7 +1684,7 @@ static int flexcan_chip_start(struct net_device *dev)
priv->write(0x0, ®s->rx14mask);
priv->write(0x0, ®s->rx15mask);
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_DISABLE_RXFG)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_DISABLE_RXFG)
priv->write(0x0, ®s->rxfgmask);
/* clear acceptance filters */
@@ -1673,7 +1698,7 @@ static int flexcan_chip_start(struct net_device *dev)
* This also works around errata e5295 which generates false
* positive memory errors and put the device in freeze mode.
*/
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_DISABLE_MECR) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_DISABLE_MECR) {
/* Follow the protocol as described in "Detection
* and Correction of Memory Errors" to write to
* MECR register (step 1 - 5)
@@ -1799,7 +1824,7 @@ static int flexcan_open(struct net_device *dev)
if (err)
goto out_can_rx_offload_disable;
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_NR_IRQ_3) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_NR_IRQ_3) {
err = request_irq(priv->irq_boff,
flexcan_irq, IRQF_SHARED, dev->name, dev);
if (err)
@@ -1845,7 +1870,7 @@ static int flexcan_close(struct net_device *dev)
netif_stop_queue(dev);
flexcan_chip_interrupts_disable(dev);
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_NR_IRQ_3) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_NR_IRQ_3) {
free_irq(priv->irq_err, dev);
free_irq(priv->irq_boff, dev);
}
@@ -2051,9 +2076,9 @@ static int flexcan_setup_stop_mode(struct platform_device *pdev)
priv = netdev_priv(dev);
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW)
ret = flexcan_setup_stop_mode_scfw(pdev);
- else if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_GPR)
+ else if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_GPR)
ret = flexcan_setup_stop_mode_gpr(pdev);
else
/* return 0 directly if doesn't support stop mode feature */
@@ -2164,8 +2189,25 @@ static int flexcan_probe(struct platform_device *pdev)
return -ENODEV;
if ((devtype_data->quirks & FLEXCAN_QUIRK_SUPPORT_FD) &&
- !(devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)) {
- dev_err(&pdev->dev, "CAN-FD mode doesn't work with FIFO mode!\n");
+ !((devtype_data->quirks &
+ (FLEXCAN_QUIRK_USE_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR |
+ FLEXCAN_QUIRK_SUPPPORT_RX_FIFO)) ==
+ (FLEXCAN_QUIRK_USE_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR))) {
+ dev_err(&pdev->dev, "CAN-FD mode doesn't work in RX-FIFO mode!\n");
+ return -EINVAL;
+ }
+
+ if ((devtype_data->quirks &
+ (FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR)) ==
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR) {
+ dev_err(&pdev->dev,
+ "Quirks (0x%08x) inconsistent: RX_MAILBOX_RX supported but not RX_MAILBOX\n",
+ devtype_data->quirks);
return -EINVAL;
}
@@ -2181,9 +2223,10 @@ static int flexcan_probe(struct platform_device *pdev)
dev->flags |= IFF_ECHO;
priv = netdev_priv(dev);
+ priv->devtype_data = *devtype_data;
if (of_property_read_bool(pdev->dev.of_node, "big-endian") ||
- devtype_data->quirks & FLEXCAN_QUIRK_DEFAULT_BIG_ENDIAN) {
+ priv->devtype_data.quirks & FLEXCAN_QUIRK_DEFAULT_BIG_ENDIAN) {
priv->read = flexcan_read_be;
priv->write = flexcan_write_be;
} else {
@@ -2202,10 +2245,9 @@ static int flexcan_probe(struct platform_device *pdev)
priv->clk_ipg = clk_ipg;
priv->clk_per = clk_per;
priv->clk_src = clk_src;
- priv->devtype_data = devtype_data;
priv->reg_xceiver = reg_xceiver;
- if (devtype_data->quirks & FLEXCAN_QUIRK_NR_IRQ_3) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_NR_IRQ_3) {
priv->irq_boff = platform_get_irq(pdev, 1);
if (priv->irq_boff <= 0) {
err = -ENODEV;
@@ -2218,7 +2260,7 @@ static int flexcan_probe(struct platform_device *pdev)
}
}
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SUPPORT_FD) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SUPPORT_FD) {
priv->can.ctrlmode_supported |= CAN_CTRLMODE_FD |
CAN_CTRLMODE_FD_NON_ISO;
priv->can.bittiming_const = &flexcan_fd_bittiming_const;
diff --git a/drivers/net/can/ifi_canfd/ifi_canfd.c b/drivers/net/can/ifi_canfd/ifi_canfd.c
index 5bb957a26bc6..e8318e984bf2 100644
--- a/drivers/net/can/ifi_canfd/ifi_canfd.c
+++ b/drivers/net/can/ifi_canfd/ifi_canfd.c
@@ -430,8 +430,6 @@ static int ifi_canfd_handle_lec_err(struct net_device *ndev)
priv->base + IFI_CANFD_INTERRUPT);
writel(IFI_CANFD_ERROR_CTR_ER_ENABLE, priv->base + IFI_CANFD_ERROR_CTR);
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_receive_skb(skb);
return 1;
@@ -456,7 +454,6 @@ static int ifi_canfd_handle_state_change(struct net_device *ndev,
enum can_state new_state)
{
struct ifi_canfd_priv *priv = netdev_priv(ndev);
- struct net_device_stats *stats = &ndev->stats;
struct can_frame *cf;
struct sk_buff *skb;
struct can_berr_counter bec;
@@ -522,8 +519,6 @@ static int ifi_canfd_handle_state_change(struct net_device *ndev,
break;
}
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_receive_skb(skb);
return 1;
diff --git a/drivers/net/can/kvaser_pciefd.c b/drivers/net/can/kvaser_pciefd.c
index eb74cdf26b88..ab672c92ab07 100644
--- a/drivers/net/can/kvaser_pciefd.c
+++ b/drivers/net/can/kvaser_pciefd.c
@@ -1310,9 +1310,6 @@ static int kvaser_pciefd_rx_error_frame(struct kvaser_pciefd_can *can,
cf->data[6] = bec.txerr;
cf->data[7] = bec.rxerr;
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
-
netif_rx(skb);
return 0;
}
@@ -1510,8 +1507,6 @@ static void kvaser_pciefd_handle_nack_packet(struct kvaser_pciefd_can *can,
if (skb) {
cf->can_id |= CAN_ERR_BUSERROR;
- stats->rx_bytes += cf->len;
- stats->rx_packets++;
netif_rx(skb);
} else {
stats->rx_dropped++;
diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c
index c2a8421e7845..30d94cb43113 100644
--- a/drivers/net/can/m_can/m_can.c
+++ b/drivers/net/can/m_can/m_can.c
@@ -647,9 +647,6 @@ static int m_can_handle_lec_err(struct net_device *dev,
break;
}
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
-
if (cdev->is_peripheral)
timestamp = m_can_get_timestamp(cdev);
@@ -706,7 +703,6 @@ static int m_can_handle_state_change(struct net_device *dev,
enum can_state new_state)
{
struct m_can_classdev *cdev = netdev_priv(dev);
- struct net_device_stats *stats = &dev->stats;
struct can_frame *cf;
struct sk_buff *skb;
struct can_berr_counter bec;
@@ -771,9 +767,6 @@ static int m_can_handle_state_change(struct net_device *dev,
break;
}
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
-
if (cdev->is_peripheral)
timestamp = m_can_get_timestamp(cdev);
diff --git a/drivers/net/can/mscan/mscan.c b/drivers/net/can/mscan/mscan.c
index fa32e418eb29..9e1cce0260da 100644
--- a/drivers/net/can/mscan/mscan.c
+++ b/drivers/net/can/mscan/mscan.c
@@ -401,13 +401,14 @@ static int mscan_rx_poll(struct napi_struct *napi, int quota)
continue;
}
- if (canrflg & MSCAN_RXF)
+ if (canrflg & MSCAN_RXF) {
mscan_get_rx_frame(dev, frame);
- else if (canrflg & MSCAN_ERR_IF)
+ stats->rx_packets++;
+ stats->rx_bytes += frame->len;
+ } else if (canrflg & MSCAN_ERR_IF) {
mscan_get_err_frame(dev, frame, canrflg);
+ }
- stats->rx_packets++;
- stats->rx_bytes += frame->len;
work_done++;
netif_receive_skb(skb);
}
diff --git a/drivers/net/can/pch_can.c b/drivers/net/can/pch_can.c
index 964c8a09226a..6b45840db1f9 100644
--- a/drivers/net/can/pch_can.c
+++ b/drivers/net/can/pch_can.c
@@ -561,9 +561,6 @@ static void pch_can_error(struct net_device *ndev, u32 status)
priv->can.state = state;
netif_receive_skb(skb);
-
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
}
static irqreturn_t pch_can_interrupt(int irq, void *dev_id)
diff --git a/drivers/net/can/peak_canfd/peak_canfd.c b/drivers/net/can/peak_canfd/peak_canfd.c
index d08718e98e11..d5b8bc6d2980 100644
--- a/drivers/net/can/peak_canfd/peak_canfd.c
+++ b/drivers/net/can/peak_canfd/peak_canfd.c
@@ -409,8 +409,6 @@ static int pucan_handle_status(struct peak_canfd_priv *priv,
return -ENOMEM;
}
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
pucan_netif_rx(skb, msg->ts_low, msg->ts_high);
return 0;
@@ -438,8 +436,6 @@ static int pucan_handle_cache_critical(struct peak_canfd_priv *priv)
cf->data[6] = priv->bec.txerr;
cf->data[7] = priv->bec.rxerr;
- stats->rx_bytes += cf->len;
- stats->rx_packets++;
netif_rx(skb);
return 0;
diff --git a/drivers/net/can/rcar/rcar_can.c b/drivers/net/can/rcar/rcar_can.c
index 8999ec9455ec..f408ed9a6ccd 100644
--- a/drivers/net/can/rcar/rcar_can.c
+++ b/drivers/net/can/rcar/rcar_can.c
@@ -223,7 +223,6 @@ static void tx_failure_cleanup(struct net_device *ndev)
static void rcar_can_error(struct net_device *ndev)
{
struct rcar_can_priv *priv = netdev_priv(ndev);
- struct net_device_stats *stats = &ndev->stats;
struct can_frame *cf;
struct sk_buff *skb;
u8 eifr, txerr = 0, rxerr = 0;
@@ -362,11 +361,8 @@ static void rcar_can_error(struct net_device *ndev)
}
}
- if (skb) {
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
+ if (skb)
netif_rx(skb);
- }
}
static void rcar_can_tx_done(struct net_device *ndev)
diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c
index ff9d0f5ae0dd..137eea4c7bad 100644
--- a/drivers/net/can/rcar/rcar_canfd.c
+++ b/drivers/net/can/rcar/rcar_canfd.c
@@ -1033,8 +1033,6 @@ static void rcar_canfd_error(struct net_device *ndev, u32 cerfl,
/* Clear channel error interrupts that are handled */
rcar_canfd_write(priv->base, RCANFD_CERFL(ch),
RCANFD_CERFL_ERR(~cerfl));
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_rx(skb);
}
@@ -1174,8 +1172,6 @@ static void rcar_canfd_state_change(struct net_device *ndev,
rx_state = txerr <= rxerr ? state : 0;
can_change_state(ndev, cf, tx_state, rx_state);
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_rx(skb);
}
}
@@ -1640,8 +1636,7 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
ndev = alloc_candev(sizeof(*priv), RCANFD_FIFO_DEPTH);
if (!ndev) {
dev_err(&pdev->dev, "alloc_candev() failed\n");
- err = -ENOMEM;
- goto fail;
+ return -ENOMEM;
}
priv = netdev_priv(ndev);
@@ -1735,8 +1730,8 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
fail_candev:
netif_napi_del(&priv->napi);
- free_candev(ndev);
fail:
+ free_candev(ndev);
return err;
}
diff --git a/drivers/net/can/sja1000/sja1000.c b/drivers/net/can/sja1000/sja1000.c
index 3fad54646746..a65546ca9461 100644
--- a/drivers/net/can/sja1000/sja1000.c
+++ b/drivers/net/can/sja1000/sja1000.c
@@ -487,8 +487,6 @@ static int sja1000_err(struct net_device *dev, uint8_t isrc, uint8_t status)
can_bus_off(dev);
}
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_rx(skb);
return 0;
diff --git a/drivers/net/can/softing/softing_cs.c b/drivers/net/can/softing/softing_cs.c
index 2e93ee792373..e5c939b63fa6 100644
--- a/drivers/net/can/softing/softing_cs.c
+++ b/drivers/net/can/softing/softing_cs.c
@@ -293,7 +293,7 @@ static int softingcs_probe(struct pcmcia_device *pcmcia)
return 0;
platform_failed:
- kfree(dev);
+ platform_device_put(pdev);
mem_failed:
pcmcia_bad:
pcmcia_failed:
diff --git a/drivers/net/can/softing/softing_fw.c b/drivers/net/can/softing/softing_fw.c
index 7e1536877993..32286f861a19 100644
--- a/drivers/net/can/softing/softing_fw.c
+++ b/drivers/net/can/softing/softing_fw.c
@@ -565,18 +565,19 @@ int softing_startstop(struct net_device *dev, int up)
if (ret < 0)
goto failed;
}
- /* enable_error_frame */
- /*
+
+ /* enable_error_frame
+ *
* Error reporting is switched off at the moment since
* the receiving of them is not yet 100% verified
* This should be enabled sooner or later
- *
- if (error_reporting) {
+ */
+ if (0 && error_reporting) {
ret = softing_fct_cmd(card, 51, "enable_error_frame");
if (ret < 0)
goto failed;
}
- */
+
/* initialize interface */
iowrite16(1, &card->dpram[DPRAM_FCT_PARAM + 2]);
iowrite16(1, &card->dpram[DPRAM_FCT_PARAM + 4]);
diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
index e16dc482f327..9a4791d88683 100644
--- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
@@ -1336,7 +1336,7 @@ mcp251xfd_tef_obj_read(const struct mcp251xfd_priv *priv,
len > tx_ring->obj_num ||
offset + len > tx_ring->obj_num)) {
netdev_err(priv->ndev,
- "Trying to read to many TEF objects (max=%d, offset=%d, len=%d).\n",
+ "Trying to read too many TEF objects (max=%d, offset=%d, len=%d).\n",
tx_ring->obj_num, offset, len);
return -ERANGE;
}
@@ -2625,7 +2625,7 @@ static int mcp251xfd_register_chip_detect(struct mcp251xfd_priv *priv)
if (!mcp251xfd_is_251X(priv) &&
priv->devtype_data.model != devtype_data->model) {
netdev_info(ndev,
- "Detected %s, but firmware specifies a %s. Fixing up.",
+ "Detected %s, but firmware specifies a %s. Fixing up.\n",
__mcp251xfd_get_model_str(devtype_data->model),
mcp251xfd_get_model_str(priv));
}
@@ -2662,7 +2662,7 @@ static int mcp251xfd_register_check_rx_int(struct mcp251xfd_priv *priv)
return 0;
netdev_info(priv->ndev,
- "RX_INT active after softreset, disabling RX_INT support.");
+ "RX_INT active after softreset, disabling RX_INT support.\n");
devm_gpiod_put(&priv->spi->dev, priv->rx_int);
priv->rx_int = NULL;
diff --git a/drivers/net/can/sun4i_can.c b/drivers/net/can/sun4i_can.c
index 54aa7c25c4de..599174098883 100644
--- a/drivers/net/can/sun4i_can.c
+++ b/drivers/net/can/sun4i_can.c
@@ -622,13 +622,10 @@ static int sun4i_can_err(struct net_device *dev, u8 isrc, u8 status)
can_bus_off(dev);
}
- if (likely(skb)) {
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
+ if (likely(skb))
netif_rx(skb);
- } else {
+ else
return -ENOMEM;
- }
return 0;
}
diff --git a/drivers/net/can/usb/ems_usb.c b/drivers/net/can/usb/ems_usb.c
index 2b5302e72435..7cf65936d02e 100644
--- a/drivers/net/can/usb/ems_usb.c
+++ b/drivers/net/can/usb/ems_usb.c
@@ -397,8 +397,6 @@ static void ems_usb_rx_err(struct ems_usb *dev, struct ems_cpc_msg *msg)
stats->rx_errors++;
}
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_rx(skb);
}
diff --git a/drivers/net/can/usb/esd_usb2.c b/drivers/net/can/usb/esd_usb2.c
index c6068a251fbe..5f6915a27b3d 100644
--- a/drivers/net/can/usb/esd_usb2.c
+++ b/drivers/net/can/usb/esd_usb2.c
@@ -293,8 +293,6 @@ static void esd_usb2_rx_event(struct esd_usb2_net_priv *priv,
priv->bec.txerr = txerr;
priv->bec.rxerr = rxerr;
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_rx(skb);
}
}
diff --git a/drivers/net/can/usb/etas_es58x/es58x_core.c b/drivers/net/can/usb/etas_es58x/es58x_core.c
index 24627ab14626..fb07c33ba0c3 100644
--- a/drivers/net/can/usb/etas_es58x/es58x_core.c
+++ b/drivers/net/can/usb/etas_es58x/es58x_core.c
@@ -849,13 +849,6 @@ int es58x_rx_err_msg(struct net_device *netdev, enum es58x_err error,
break;
}
- /* driver/net/can/dev.c:can_restart() takes in account error
- * messages in the RX stats. Doing the same here for
- * consistency.
- */
- netdev->stats.rx_packets++;
- netdev->stats.rx_bytes += CAN_ERR_DLC;
-
if (cf) {
if (cf->data[1])
cf->can_id |= CAN_ERR_CRTL;
diff --git a/drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c b/drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c
index 0cc0fc866a2a..3e682ef43f8e 100644
--- a/drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c
+++ b/drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c
@@ -279,8 +279,6 @@ int kvaser_usb_can_rx_over_error(struct net_device *netdev)
cf->can_id |= CAN_ERR_CRTL;
cf->data[1] = CAN_ERR_CRTL_RX_OVERFLOW;
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_rx(skb);
return 0;
diff --git a/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c b/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
index dcee8dc828ec..3398da323126 100644
--- a/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
+++ b/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c
@@ -869,7 +869,6 @@ static void kvaser_usb_hydra_update_state(struct kvaser_usb_net_priv *priv,
struct net_device *netdev = priv->netdev;
struct can_frame *cf;
struct sk_buff *skb;
- struct net_device_stats *stats;
enum can_state new_state, old_state;
old_state = priv->can.state;
@@ -919,9 +918,6 @@ static void kvaser_usb_hydra_update_state(struct kvaser_usb_net_priv *priv,
cf->data[6] = bec->txerr;
cf->data[7] = bec->rxerr;
- stats = &netdev->stats;
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_rx(skb);
}
@@ -1074,8 +1070,6 @@ kvaser_usb_hydra_error_frame(struct kvaser_usb_net_priv *priv,
cf->data[6] = bec.txerr;
cf->data[7] = bec.rxerr;
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_rx(skb);
priv->bec.txerr = bec.txerr;
@@ -1109,8 +1103,6 @@ static void kvaser_usb_hydra_one_shot_fail(struct kvaser_usb_net_priv *priv,
}
stats->tx_errors++;
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_rx(skb);
}
diff --git a/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c b/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c
index f7af1bf5ab46..5434b7386a51 100644
--- a/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c
+++ b/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c
@@ -641,8 +641,6 @@ static void kvaser_usb_leaf_tx_acknowledge(const struct kvaser_usb *dev,
if (skb) {
cf->can_id |= CAN_ERR_RESTARTED;
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_rx(skb);
} else {
netdev_err(priv->netdev,
@@ -843,8 +841,6 @@ static void kvaser_usb_leaf_rx_error(const struct kvaser_usb *dev,
cf->data[6] = es->txerr;
cf->data[7] = es->rxerr;
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_rx(skb);
}
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb.c b/drivers/net/can/usb/peak_usb/pcan_usb.c
index 876218752766..21b06a738595 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb.c
@@ -520,8 +520,6 @@ static int pcan_usb_decode_error(struct pcan_usb_msg_context *mc, u8 n,
&hwts->hwtstamp);
}
- mc->netdev->stats.rx_packets++;
- mc->netdev->stats.rx_bytes += cf->len;
netif_rx(skb);
return 0;
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_fd.c b/drivers/net/can/usb/peak_usb/pcan_usb_fd.c
index 6bd12549f101..185f5a98d217 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_fd.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_fd.c
@@ -577,9 +577,6 @@ static int pcan_usb_fd_decode_status(struct pcan_usb_fd_if *usb_if,
if (!skb)
return -ENOMEM;
- netdev->stats.rx_packets++;
- netdev->stats.rx_bytes += cf->len;
-
peak_usb_netif_rx_64(skb, le32_to_cpu(sm->ts_low),
le32_to_cpu(sm->ts_high));
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_pro.c b/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
index 858ab22708fc..f6d19879bf40 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
@@ -660,8 +660,6 @@ static int pcan_usb_pro_handle_error(struct pcan_usb_pro_interface *usb_if,
hwts = skb_hwtstamps(skb);
peak_usb_get_ts_time(&usb_if->time_ref, le32_to_cpu(er->ts32), &hwts->hwtstamp);
- netdev->stats.rx_packets++;
- netdev->stats.rx_bytes += can_frame->len;
netif_rx(skb);
return 0;
diff --git a/drivers/net/can/usb/ucan.c b/drivers/net/can/usb/ucan.c
index 1679cbe45ded..d582c39fc8d0 100644
--- a/drivers/net/can/usb/ucan.c
+++ b/drivers/net/can/usb/ucan.c
@@ -621,8 +621,10 @@ static void ucan_rx_can_msg(struct ucan_priv *up, struct ucan_message_in *m)
memcpy(cf->data, m->msg.can_msg.data, cf->len);
/* don't count error frames as real packets */
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
+ if (!(cf->can_id & CAN_ERR_FLAG)) {
+ stats->rx_packets++;
+ stats->rx_bytes += cf->len;
+ }
/* pass it to Linux */
netif_rx(skb);
diff --git a/drivers/net/can/usb/usb_8dev.c b/drivers/net/can/usb/usb_8dev.c
index d1b83bd1b3cb..040324362b26 100644
--- a/drivers/net/can/usb/usb_8dev.c
+++ b/drivers/net/can/usb/usb_8dev.c
@@ -449,8 +449,6 @@ static void usb_8dev_rx_err_msg(struct usb_8dev_priv *priv,
priv->bec.txerr = txerr;
priv->bec.rxerr = rxerr;
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
netif_rx(skb);
}
diff --git a/drivers/net/can/xilinx_can.c b/drivers/net/can/xilinx_can.c
index e2b15d29d15e..e0525541b32a 100644
--- a/drivers/net/can/xilinx_can.c
+++ b/drivers/net/can/xilinx_can.c
@@ -965,13 +965,8 @@ static void xcan_update_error_state_after_rxtx(struct net_device *ndev)
xcan_set_error_state(ndev, new_state, skb ? cf : NULL);
- if (skb) {
- struct net_device_stats *stats = &ndev->stats;
-
- stats->rx_packets++;
- stats->rx_bytes += cf->len;
+ if (skb)
netif_rx(skb);
- }
}
}
@@ -1095,8 +1090,6 @@ static void xcan_err_interrupt(struct net_device *ndev, u32 isr)
if (skb) {
skb_cf->can_id |= cf.can_id;
memcpy(skb_cf->data, cf.data, CAN_ERR_DLC);
- stats->rx_packets++;
- stats->rx_bytes += CAN_ERR_DLC;
netif_rx(skb);
}
}
@@ -1761,7 +1754,12 @@ static int xcan_probe(struct platform_device *pdev)
spin_lock_init(&priv->tx_lock);
/* Get IRQ for the device */
- ndev->irq = platform_get_irq(pdev, 0);
+ ret = platform_get_irq(pdev, 0);
+ if (ret < 0)
+ goto err_free;
+
+ ndev->irq = ret;
+
ndev->flags |= IFF_ECHO; /* We support local echo */
platform_set_drvdata(pdev, ndev);
diff --git a/drivers/net/dsa/hirschmann/hellcreek.c b/drivers/net/dsa/hirschmann/hellcreek.c
index 4e0b53d94b52..b2bab460d2e9 100644
--- a/drivers/net/dsa/hirschmann/hellcreek.c
+++ b/drivers/net/dsa/hirschmann/hellcreek.c
@@ -710,8 +710,9 @@ static int __hellcreek_fdb_add(struct hellcreek *hellcreek,
u16 meta = 0;
dev_dbg(hellcreek->dev, "Add static FDB entry: MAC=%pM, MASK=0x%02x, "
- "OBT=%d, REPRIO_EN=%d, PRIO=%d\n", entry->mac, entry->portmask,
- entry->is_obt, entry->reprio_en, entry->reprio_tc);
+ "OBT=%d, PASS_BLOCKED=%d, REPRIO_EN=%d, PRIO=%d\n", entry->mac,
+ entry->portmask, entry->is_obt, entry->pass_blocked,
+ entry->reprio_en, entry->reprio_tc);
/* Add mac address */
hellcreek_write(hellcreek, entry->mac[1] | (entry->mac[0] << 8), HR_FDBWDH);
@@ -722,6 +723,8 @@ static int __hellcreek_fdb_add(struct hellcreek *hellcreek,
meta |= entry->portmask << HR_FDBWRM0_PORTMASK_SHIFT;
if (entry->is_obt)
meta |= HR_FDBWRM0_OBT;
+ if (entry->pass_blocked)
+ meta |= HR_FDBWRM0_PASS_BLOCKED;
if (entry->reprio_en) {
meta |= HR_FDBWRM0_REPRIO_EN;
meta |= entry->reprio_tc << HR_FDBWRM0_REPRIO_TC_SHIFT;
@@ -1049,7 +1052,7 @@ static void hellcreek_setup_tc_identity_mapping(struct hellcreek *hellcreek)
static int hellcreek_setup_fdb(struct hellcreek *hellcreek)
{
- static struct hellcreek_fdb_entry ptp = {
+ static struct hellcreek_fdb_entry l2_ptp = {
/* MAC: 01-1B-19-00-00-00 */
.mac = { 0x01, 0x1b, 0x19, 0x00, 0x00, 0x00 },
.portmask = 0x03, /* Management ports */
@@ -1060,24 +1063,94 @@ static int hellcreek_setup_fdb(struct hellcreek *hellcreek)
.reprio_tc = 6, /* TC: 6 as per IEEE 802.1AS */
.reprio_en = 1,
};
- static struct hellcreek_fdb_entry p2p = {
+ static struct hellcreek_fdb_entry udp4_ptp = {
+ /* MAC: 01-00-5E-00-01-81 */
+ .mac = { 0x01, 0x00, 0x5e, 0x00, 0x01, 0x81 },
+ .portmask = 0x03, /* Management ports */
+ .age = 0,
+ .is_obt = 0,
+ .pass_blocked = 0,
+ .is_static = 1,
+ .reprio_tc = 6,
+ .reprio_en = 1,
+ };
+ static struct hellcreek_fdb_entry udp6_ptp = {
+ /* MAC: 33-33-00-00-01-81 */
+ .mac = { 0x33, 0x33, 0x00, 0x00, 0x01, 0x81 },
+ .portmask = 0x03, /* Management ports */
+ .age = 0,
+ .is_obt = 0,
+ .pass_blocked = 0,
+ .is_static = 1,
+ .reprio_tc = 6,
+ .reprio_en = 1,
+ };
+ static struct hellcreek_fdb_entry l2_p2p = {
/* MAC: 01-80-C2-00-00-0E */
.mac = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x0e },
.portmask = 0x03, /* Management ports */
.age = 0,
.is_obt = 0,
- .pass_blocked = 0,
+ .pass_blocked = 1,
.is_static = 1,
.reprio_tc = 6, /* TC: 6 as per IEEE 802.1AS */
.reprio_en = 1,
};
+ static struct hellcreek_fdb_entry udp4_p2p = {
+ /* MAC: 01-00-5E-00-00-6B */
+ .mac = { 0x01, 0x00, 0x5e, 0x00, 0x00, 0x6b },
+ .portmask = 0x03, /* Management ports */
+ .age = 0,
+ .is_obt = 0,
+ .pass_blocked = 1,
+ .is_static = 1,
+ .reprio_tc = 6,
+ .reprio_en = 1,
+ };
+ static struct hellcreek_fdb_entry udp6_p2p = {
+ /* MAC: 33-33-00-00-00-6B */
+ .mac = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x6b },
+ .portmask = 0x03, /* Management ports */
+ .age = 0,
+ .is_obt = 0,
+ .pass_blocked = 1,
+ .is_static = 1,
+ .reprio_tc = 6,
+ .reprio_en = 1,
+ };
+ static struct hellcreek_fdb_entry stp = {
+ /* MAC: 01-80-C2-00-00-00 */
+ .mac = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x00 },
+ .portmask = 0x03, /* Management ports */
+ .age = 0,
+ .is_obt = 0,
+ .pass_blocked = 1,
+ .is_static = 1,
+ .reprio_tc = 6,
+ .reprio_en = 1,
+ };
int ret;
mutex_lock(&hellcreek->reg_lock);
- ret = __hellcreek_fdb_add(hellcreek, &ptp);
+ ret = __hellcreek_fdb_add(hellcreek, &l2_ptp);
+ if (ret)
+ goto out;
+ ret = __hellcreek_fdb_add(hellcreek, &udp4_ptp);
+ if (ret)
+ goto out;
+ ret = __hellcreek_fdb_add(hellcreek, &udp6_ptp);
+ if (ret)
+ goto out;
+ ret = __hellcreek_fdb_add(hellcreek, &l2_p2p);
+ if (ret)
+ goto out;
+ ret = __hellcreek_fdb_add(hellcreek, &udp4_p2p);
+ if (ret)
+ goto out;
+ ret = __hellcreek_fdb_add(hellcreek, &udp6_p2p);
if (ret)
goto out;
- ret = __hellcreek_fdb_add(hellcreek, &p2p);
+ ret = __hellcreek_fdb_add(hellcreek, &stp);
out:
mutex_unlock(&hellcreek->reg_lock);
diff --git a/drivers/net/dsa/rtl8365mb.c b/drivers/net/dsa/rtl8365mb.c
index 078ca4cd7160..48c0e3e46600 100644
--- a/drivers/net/dsa/rtl8365mb.c
+++ b/drivers/net/dsa/rtl8365mb.c
@@ -767,7 +767,8 @@ static int rtl8365mb_ext_config_rgmii(struct realtek_smi *smi, int port,
* 0 = no delay, 1 = 2 ns delay
* RX delay:
* 0 = no delay, 7 = maximum delay
- * No units are specified, but there are a total of 8 steps.
+ * Each step is approximately 0.3 ns, so the maximum delay is about
+ * 2.1 ns.
*
* The vendor driver also states that this must be configured *before*
* forcing the external interface into a particular mode, which is done
@@ -778,10 +779,6 @@ static int rtl8365mb_ext_config_rgmii(struct realtek_smi *smi, int port,
* specified. We ignore the detail of the RGMII interface mode
* (RGMII_{RXID, TXID, etc.}), as this is considered to be a PHY-only
* property.
- *
- * For the RX delay, we assume that a register value of 4 corresponds to
- * 2 ns. But this is just an educated guess, so ignore all other values
- * to avoid too much confusion.
*/
if (!of_property_read_u32(dn, "tx-internal-delay-ps", &val)) {
val = val / 1000; /* convert to ns */
@@ -794,13 +791,13 @@ static int rtl8365mb_ext_config_rgmii(struct realtek_smi *smi, int port,
}
if (!of_property_read_u32(dn, "rx-internal-delay-ps", &val)) {
- val = val / 1000; /* convert to ns */
+ val = DIV_ROUND_CLOSEST(val, 300); /* convert to 0.3 ns step */
- if (val == 0 || val == 2)
- rx_delay = val * 2;
+ if (val <= 7)
+ rx_delay = val;
else
dev_warn(smi->dev,
- "EXT port RX delay must be 0 to 2 ns\n");
+ "EXT port RX delay must be 0 to 2.1 ns\n");
}
ret = regmap_update_bits(
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index c04ea83188e2..7eaf74e5b292 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -8008,6 +8008,12 @@ static int bnxt_hwrm_ver_get(struct bnxt *bp)
bp->hwrm_cmd_timeout = le16_to_cpu(resp->def_req_timeout);
if (!bp->hwrm_cmd_timeout)
bp->hwrm_cmd_timeout = DFLT_HWRM_CMD_TIMEOUT;
+ bp->hwrm_cmd_max_timeout = le16_to_cpu(resp->max_req_timeout) * 1000;
+ if (!bp->hwrm_cmd_max_timeout)
+ bp->hwrm_cmd_max_timeout = HWRM_CMD_MAX_TIMEOUT;
+ else if (bp->hwrm_cmd_max_timeout > HWRM_CMD_MAX_TIMEOUT)
+ netdev_warn(bp->dev, "Device requests max timeout of %d seconds, may trigger hung task watchdog\n",
+ bp->hwrm_cmd_max_timeout / 1000);
if (resp->hwrm_intf_maj_8b >= 1) {
bp->hwrm_max_req_len = le16_to_cpu(resp->max_req_win_len);
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
index 4c9507d82fd0..6bacd5fae6ba 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
@@ -1985,7 +1985,8 @@ struct bnxt {
u16 hwrm_max_req_len;
u16 hwrm_max_ext_req_len;
- int hwrm_cmd_timeout;
+ unsigned int hwrm_cmd_timeout;
+ unsigned int hwrm_cmd_max_timeout;
struct mutex hwrm_cmd_lock; /* serialize hwrm messages */
struct hwrm_ver_get_output ver_resp;
#define FW_VER_STR_LEN 32
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c
index d3cb2f21946d..c06789882036 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c
@@ -32,7 +32,7 @@ static int bnxt_hwrm_dbg_dma_data(struct bnxt *bp, void *msg,
return -ENOMEM;
}
- hwrm_req_timeout(bp, msg, HWRM_COREDUMP_TIMEOUT);
+ hwrm_req_timeout(bp, msg, bp->hwrm_cmd_max_timeout);
cmn_resp = hwrm_req_hold(bp, msg);
resp = cmn_resp;
@@ -125,7 +125,7 @@ static int bnxt_hwrm_dbg_coredump_initiate(struct bnxt *bp, u16 component_id,
if (rc)
return rc;
- hwrm_req_timeout(bp, req, HWRM_COREDUMP_TIMEOUT);
+ hwrm_req_timeout(bp, req, bp->hwrm_cmd_max_timeout);
req->component_id = cpu_to_le16(component_id);
req->segment_id = cpu_to_le16(segment_id);
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
index 8188d55722e4..7307df49c131 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
@@ -31,9 +31,6 @@
#include "bnxt_nvm_defs.h" /* NVRAM content constant and structure defs */
#include "bnxt_fw_hdr.h" /* Firmware hdr constant and structure defs */
#include "bnxt_coredump.h"
-#define FLASH_NVRAM_TIMEOUT ((HWRM_CMD_TIMEOUT) * 100)
-#define FLASH_PACKAGE_TIMEOUT ((HWRM_CMD_TIMEOUT) * 200)
-#define INSTALL_PACKAGE_TIMEOUT ((HWRM_CMD_TIMEOUT) * 200)
static u32 bnxt_get_msglevel(struct net_device *dev)
{
@@ -2169,7 +2166,7 @@ static int bnxt_flash_nvram(struct net_device *dev, u16 dir_type,
req->host_src_addr = cpu_to_le64(dma_handle);
}
- hwrm_req_timeout(bp, req, FLASH_NVRAM_TIMEOUT);
+ hwrm_req_timeout(bp, req, bp->hwrm_cmd_max_timeout);
req->dir_type = cpu_to_le16(dir_type);
req->dir_ordinal = cpu_to_le16(dir_ordinal);
req->dir_ext = cpu_to_le16(dir_ext);
@@ -2515,8 +2512,8 @@ int bnxt_flash_package_from_fw_obj(struct net_device *dev, const struct firmware
return rc;
}
- hwrm_req_timeout(bp, modify, FLASH_PACKAGE_TIMEOUT);
- hwrm_req_timeout(bp, install, INSTALL_PACKAGE_TIMEOUT);
+ hwrm_req_timeout(bp, modify, bp->hwrm_cmd_max_timeout);
+ hwrm_req_timeout(bp, install, bp->hwrm_cmd_max_timeout);
hwrm_req_hold(bp, modify);
modify->host_src_addr = cpu_to_le64(dma_handle);
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c
index bb7327b82d0b..8171f4912fa0 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c
@@ -496,7 +496,7 @@ static int __hwrm_send(struct bnxt *bp, struct bnxt_hwrm_ctx *ctx)
}
/* Limit timeout to an upper limit */
- timeout = min_t(uint, ctx->timeout, HWRM_CMD_MAX_TIMEOUT);
+ timeout = min(ctx->timeout, bp->hwrm_cmd_max_timeout ?: HWRM_CMD_MAX_TIMEOUT);
/* convert timeout to usec */
timeout *= 1000;
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h b/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h
index 4d17f0d5363b..9a9fc4e8041b 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h
@@ -58,11 +58,10 @@ void hwrm_update_token(struct bnxt *bp, u16 seq, enum bnxt_hwrm_wait_state s);
#define BNXT_HWRM_MAX_REQ_LEN (bp->hwrm_max_req_len)
#define BNXT_HWRM_SHORT_REQ_LEN sizeof(struct hwrm_short_input)
-#define HWRM_CMD_MAX_TIMEOUT 40000
+#define HWRM_CMD_MAX_TIMEOUT 40000U
#define SHORT_HWRM_CMD_TIMEOUT 20
#define HWRM_CMD_TIMEOUT (bp->hwrm_cmd_timeout)
#define HWRM_RESET_TIMEOUT ((HWRM_CMD_TIMEOUT) * 4)
-#define HWRM_COREDUMP_TIMEOUT ((HWRM_CMD_TIMEOUT) * 12)
#define BNXT_HWRM_TARGET 0xffff
#define BNXT_HWRM_NO_CMPL_RING -1
#define BNXT_HWRM_REQ_MAX_SIZE 128
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 226f4403cfed..87f1056e29ff 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -4020,10 +4020,12 @@ static int bcmgenet_probe(struct platform_device *pdev)
/* Request the WOL interrupt and advertise suspend if available */
priv->wol_irq_disabled = true;
- err = devm_request_irq(&pdev->dev, priv->wol_irq, bcmgenet_wol_isr, 0,
- dev->name, priv);
- if (!err)
- device_set_wakeup_capable(&pdev->dev, 1);
+ if (priv->wol_irq > 0) {
+ err = devm_request_irq(&pdev->dev, priv->wol_irq,
+ bcmgenet_wol_isr, 0, dev->name, priv);
+ if (!err)
+ device_set_wakeup_capable(&pdev->dev, 1);
+ }
/* Set the needed headroom to account for any possible
* features enabling/disabling at runtime
diff --git a/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c b/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c
index d04a6c163445..da8d10475a08 100644
--- a/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c
+++ b/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c
@@ -32,6 +32,7 @@
#include <linux/tcp.h>
#include <linux/ipv6.h>
+#include <net/inet_ecn.h>
#include <net/route.h>
#include <net/ip6_route.h>
@@ -99,7 +100,7 @@ cxgb_find_route(struct cxgb4_lld_info *lldi,
rt = ip_route_output_ports(&init_net, &fl4, NULL, peer_ip, local_ip,
peer_port, local_port, IPPROTO_TCP,
- tos, 0);
+ tos & ~INET_ECN_MASK, 0);
if (IS_ERR(rt))
return NULL;
n = dst_neigh_lookup(&rt->dst, &peer_ip);
diff --git a/drivers/net/ethernet/cortina/gemini.c b/drivers/net/ethernet/cortina/gemini.c
index 941f175fb911..0ff40a9b06ce 100644
--- a/drivers/net/ethernet/cortina/gemini.c
+++ b/drivers/net/ethernet/cortina/gemini.c
@@ -305,21 +305,21 @@ static void gmac_speed_set(struct net_device *netdev)
switch (phydev->speed) {
case 1000:
status.bits.speed = GMAC_SPEED_1000;
- if (phydev->interface == PHY_INTERFACE_MODE_RGMII)
+ if (phy_interface_mode_is_rgmii(phydev->interface))
status.bits.mii_rmii = GMAC_PHY_RGMII_1000;
netdev_dbg(netdev, "connect %s to RGMII @ 1Gbit\n",
phydev_name(phydev));
break;
case 100:
status.bits.speed = GMAC_SPEED_100;
- if (phydev->interface == PHY_INTERFACE_MODE_RGMII)
+ if (phy_interface_mode_is_rgmii(phydev->interface))
status.bits.mii_rmii = GMAC_PHY_RGMII_100_10;
netdev_dbg(netdev, "connect %s to RGMII @ 100 Mbit\n",
phydev_name(phydev));
break;
case 10:
status.bits.speed = GMAC_SPEED_10;
- if (phydev->interface == PHY_INTERFACE_MODE_RGMII)
+ if (phy_interface_mode_is_rgmii(phydev->interface))
status.bits.mii_rmii = GMAC_PHY_RGMII_100_10;
netdev_dbg(netdev, "connect %s to RGMII @ 10 Mbit\n",
phydev_name(phydev));
@@ -389,6 +389,9 @@ static int gmac_setup_phy(struct net_device *netdev)
status.bits.mii_rmii = GMAC_PHY_GMII;
break;
case PHY_INTERFACE_MODE_RGMII:
+ case PHY_INTERFACE_MODE_RGMII_ID:
+ case PHY_INTERFACE_MODE_RGMII_TXID:
+ case PHY_INTERFACE_MODE_RGMII_RXID:
netdev_dbg(netdev,
"RGMII: set GMAC0 and GMAC1 to MII/RGMII mode\n");
status.bits.mii_rmii = GMAC_PHY_RGMII_100_10;
diff --git a/drivers/net/ethernet/freescale/fman/mac.c b/drivers/net/ethernet/freescale/fman/mac.c
index d9fc5c456bf3..39ae965cd4f6 100644
--- a/drivers/net/ethernet/freescale/fman/mac.c
+++ b/drivers/net/ethernet/freescale/fman/mac.c
@@ -94,14 +94,17 @@ static void mac_exception(void *handle, enum fman_mac_exceptions ex)
__func__, ex);
}
-static void set_fman_mac_params(struct mac_device *mac_dev,
- struct fman_mac_params *params)
+static int set_fman_mac_params(struct mac_device *mac_dev,
+ struct fman_mac_params *params)
{
struct mac_priv_s *priv = mac_dev->priv;
params->base_addr = (typeof(params->base_addr))
devm_ioremap(priv->dev, mac_dev->res->start,
resource_size(mac_dev->res));
+ if (!params->base_addr)
+ return -ENOMEM;
+
memcpy(¶ms->addr, mac_dev->addr, sizeof(mac_dev->addr));
params->max_speed = priv->max_speed;
params->phy_if = mac_dev->phy_if;
@@ -112,6 +115,8 @@ static void set_fman_mac_params(struct mac_device *mac_dev,
params->event_cb = mac_exception;
params->dev_id = mac_dev;
params->internal_phy_node = priv->internal_phy_node;
+
+ return 0;
}
static int tgec_initialization(struct mac_device *mac_dev)
@@ -123,7 +128,9 @@ static int tgec_initialization(struct mac_device *mac_dev)
priv = mac_dev->priv;
- set_fman_mac_params(mac_dev, ¶ms);
+ err = set_fman_mac_params(mac_dev, ¶ms);
+ if (err)
+ goto _return;
mac_dev->fman_mac = tgec_config(¶ms);
if (!mac_dev->fman_mac) {
@@ -169,7 +176,9 @@ static int dtsec_initialization(struct mac_device *mac_dev)
priv = mac_dev->priv;
- set_fman_mac_params(mac_dev, ¶ms);
+ err = set_fman_mac_params(mac_dev, ¶ms);
+ if (err)
+ goto _return;
mac_dev->fman_mac = dtsec_config(¶ms);
if (!mac_dev->fman_mac) {
@@ -218,7 +227,9 @@ static int memac_initialization(struct mac_device *mac_dev)
priv = mac_dev->priv;
- set_fman_mac_params(mac_dev, ¶ms);
+ err = set_fman_mac_params(mac_dev, ¶ms);
+ if (err)
+ goto _return;
if (priv->max_speed == SPEED_10000)
params.phy_if = PHY_INTERFACE_MODE_XGMII;
diff --git a/drivers/net/ethernet/freescale/xgmac_mdio.c b/drivers/net/ethernet/freescale/xgmac_mdio.c
index 5b8b9bcf41a2..266e562bd67a 100644
--- a/drivers/net/ethernet/freescale/xgmac_mdio.c
+++ b/drivers/net/ethernet/freescale/xgmac_mdio.c
@@ -51,6 +51,7 @@ struct tgec_mdio_controller {
struct mdio_fsl_priv {
struct tgec_mdio_controller __iomem *mdio_base;
bool is_little_endian;
+ bool has_a009885;
bool has_a011043;
};
@@ -186,10 +187,10 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
{
struct mdio_fsl_priv *priv = (struct mdio_fsl_priv *)bus->priv;
struct tgec_mdio_controller __iomem *regs = priv->mdio_base;
+ unsigned long flags;
uint16_t dev_addr;
uint32_t mdio_stat;
uint32_t mdio_ctl;
- uint16_t value;
int ret;
bool endian = priv->is_little_endian;
@@ -221,12 +222,18 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
return ret;
}
+ if (priv->has_a009885)
+ /* Once the operation completes, i.e. MDIO_STAT_BSY clears, we
+ * must read back the data register within 16 MDC cycles.
+ */
+ local_irq_save(flags);
+
/* Initiate the read */
xgmac_write32(mdio_ctl | MDIO_CTL_READ, ®s->mdio_ctl, endian);
ret = xgmac_wait_until_done(&bus->dev, regs, endian);
if (ret)
- return ret;
+ goto irq_restore;
/* Return all Fs if nothing was there */
if ((xgmac_read32(®s->mdio_stat, endian) & MDIO_STAT_RD_ER) &&
@@ -234,13 +241,17 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
dev_dbg(&bus->dev,
"Error while reading PHY%d reg at %d.%hhu\n",
phy_id, dev_addr, regnum);
- return 0xffff;
+ ret = 0xffff;
+ } else {
+ ret = xgmac_read32(®s->mdio_data, endian) & 0xffff;
+ dev_dbg(&bus->dev, "read %04x\n", ret);
}
- value = xgmac_read32(®s->mdio_data, endian) & 0xffff;
- dev_dbg(&bus->dev, "read %04x\n", value);
+irq_restore:
+ if (priv->has_a009885)
+ local_irq_restore(flags);
- return value;
+ return ret;
}
static int xgmac_mdio_probe(struct platform_device *pdev)
@@ -287,6 +298,8 @@ static int xgmac_mdio_probe(struct platform_device *pdev)
priv->is_little_endian = device_property_read_bool(&pdev->dev,
"little-endian");
+ priv->has_a009885 = device_property_read_bool(&pdev->dev,
+ "fsl,erratum-a009885");
priv->has_a011043 = device_property_read_bool(&pdev->dev,
"fsl,erratum-a011043");
@@ -318,9 +331,10 @@ static int xgmac_mdio_probe(struct platform_device *pdev)
static int xgmac_mdio_remove(struct platform_device *pdev)
{
struct mii_bus *bus = platform_get_drvdata(pdev);
+ struct mdio_fsl_priv *priv = bus->priv;
mdiobus_unregister(bus);
- iounmap(bus->priv);
+ iounmap(priv->mdio_base);
mdiobus_free(bus);
return 0;
diff --git a/drivers/net/ethernet/i825xx/sni_82596.c b/drivers/net/ethernet/i825xx/sni_82596.c
index 27937c5d7956..daec9ce04531 100644
--- a/drivers/net/ethernet/i825xx/sni_82596.c
+++ b/drivers/net/ethernet/i825xx/sni_82596.c
@@ -117,9 +117,10 @@ static int sni_82596_probe(struct platform_device *dev)
netdevice->dev_addr[5] = readb(eth_addr + 0x06);
iounmap(eth_addr);
- if (!netdevice->irq) {
+ if (netdevice->irq < 0) {
printk(KERN_ERR "%s: IRQ not found for i82596 at 0x%lx\n",
__FILE__, netdevice->base_addr);
+ retval = netdevice->irq;
goto probe_failed;
}
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index d28a80a00953..d83e665b3a4f 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -2448,8 +2448,10 @@ static struct sk_buff *igc_construct_skb_zc(struct igc_ring *ring,
skb_reserve(skb, xdp->data_meta - xdp->data_hard_start);
memcpy(__skb_put(skb, totalsize), xdp->data_meta, totalsize);
- if (metasize)
+ if (metasize) {
skb_metadata_set(skb, metasize);
+ __skb_pull(skb, metasize);
+ }
return skb;
}
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index 072391c494ce..14059e11710a 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -687,13 +687,13 @@ ltq_etop_probe(struct platform_device *pdev)
err = device_property_read_u32(&pdev->dev, "lantiq,tx-burst-length", &priv->tx_burst_len);
if (err < 0) {
dev_err(&pdev->dev, "unable to read tx-burst-length property\n");
- return err;
+ goto err_free;
}
err = device_property_read_u32(&pdev->dev, "lantiq,rx-burst-length", &priv->rx_burst_len);
if (err < 0) {
dev_err(&pdev->dev, "unable to read rx-burst-length property\n");
- return err;
+ goto err_free;
}
for (i = 0; i < MAX_DMA_CHAN; i++) {
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/ptp.c b/drivers/net/ethernet/marvell/octeontx2/af/ptp.c
index d6321de3cc17..e682b7bfde64 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/ptp.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/ptp.c
@@ -60,6 +60,8 @@ struct ptp *ptp_get(void)
/* Check driver is bound to PTP block */
if (!ptp)
ptp = ERR_PTR(-EPROBE_DEFER);
+ else
+ pci_dev_get(ptp->pdev);
return ptp;
}
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c
index 45357deecabb..a73a8017e0ee 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c
@@ -172,14 +172,13 @@ static int cpt_10k_register_interrupts(struct rvu_block *block, int off)
{
struct rvu *rvu = block->rvu;
int blkaddr = block->addr;
- char irq_name[16];
int i, ret;
for (i = CPT_10K_AF_INT_VEC_FLT0; i < CPT_10K_AF_INT_VEC_RVU; i++) {
- snprintf(irq_name, sizeof(irq_name), "CPTAF FLT%d", i);
+ sprintf(&rvu->irq_name[(off + i) * NAME_SIZE], "CPTAF FLT%d", i);
ret = rvu_cpt_do_register_interrupt(block, off + i,
rvu_cpt_af_flt_intr_handler,
- irq_name);
+ &rvu->irq_name[(off + i) * NAME_SIZE]);
if (ret)
goto err;
rvu_write64(rvu, blkaddr, CPT_AF_FLTX_INT_ENA_W1S(i), 0x1);
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c
index 70bacd38a6d9..d0ab8f233a02 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c
@@ -41,7 +41,7 @@ static bool rvu_common_request_irq(struct rvu *rvu, int offset,
struct rvu_devlink *rvu_dl = rvu->rvu_dl;
int rc;
- sprintf(&rvu->irq_name[offset * NAME_SIZE], name);
+ sprintf(&rvu->irq_name[offset * NAME_SIZE], "%s", name);
rc = request_irq(pci_irq_vector(rvu->pdev, offset), fn, 0,
&rvu->irq_name[offset * NAME_SIZE], rvu_dl);
if (rc)
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
index 78944ad3492f..d75f3a78fabf 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
@@ -684,7 +684,7 @@ static int otx2vf_probe(struct pci_dev *pdev, const struct pci_device_id *id)
err = register_netdev(netdev);
if (err) {
dev_err(dev, "Failed to register netdevice\n");
- goto err_detach_rsrc;
+ goto err_ptp_destroy;
}
err = otx2_wq_init(vf);
@@ -709,6 +709,8 @@ static int otx2vf_probe(struct pci_dev *pdev, const struct pci_device_id *id)
err_unreg_netdev:
unregister_netdev(netdev);
+err_ptp_destroy:
+ otx2_ptp_destroy(vf);
err_detach_rsrc:
if (test_bit(CN10K_LMTST, &vf->hw.cap_flag))
qmem_free(vf->dev, vf->dync_lmt);
@@ -742,6 +744,7 @@ static void otx2vf_remove(struct pci_dev *pdev)
unregister_netdev(netdev);
if (vf->otx2_wq)
destroy_workqueue(vf->otx2_wq);
+ otx2_ptp_destroy(vf);
otx2vf_disable_mbox_intr(vf);
otx2_detach_resources(&vf->mbox);
if (test_bit(CN10K_LMTST, &vf->hw.cap_flag))
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 75d67d1b5f6b..166eaa9bd393 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -91,46 +91,53 @@ static int mtk_mdio_busy_wait(struct mtk_eth *eth)
}
dev_err(eth->dev, "mdio: MDIO timeout\n");
- return -1;
+ return -ETIMEDOUT;
}
-static u32 _mtk_mdio_write(struct mtk_eth *eth, u32 phy_addr,
- u32 phy_register, u32 write_data)
+static int _mtk_mdio_write(struct mtk_eth *eth, u32 phy_addr, u32 phy_reg,
+ u32 write_data)
{
- if (mtk_mdio_busy_wait(eth))
- return -1;
+ int ret;
- write_data &= 0xffff;
+ ret = mtk_mdio_busy_wait(eth);
+ if (ret < 0)
+ return ret;
- mtk_w32(eth, PHY_IAC_ACCESS | PHY_IAC_START | PHY_IAC_WRITE |
- (phy_register << PHY_IAC_REG_SHIFT) |
- (phy_addr << PHY_IAC_ADDR_SHIFT) | write_data,
+ mtk_w32(eth, PHY_IAC_ACCESS |
+ PHY_IAC_START_C22 |
+ PHY_IAC_CMD_WRITE |
+ PHY_IAC_REG(phy_reg) |
+ PHY_IAC_ADDR(phy_addr) |
+ PHY_IAC_DATA(write_data),
MTK_PHY_IAC);
- if (mtk_mdio_busy_wait(eth))
- return -1;
+ ret = mtk_mdio_busy_wait(eth);
+ if (ret < 0)
+ return ret;
return 0;
}
-static u32 _mtk_mdio_read(struct mtk_eth *eth, int phy_addr, int phy_reg)
+static int _mtk_mdio_read(struct mtk_eth *eth, u32 phy_addr, u32 phy_reg)
{
- u32 d;
+ int ret;
- if (mtk_mdio_busy_wait(eth))
- return 0xffff;
+ ret = mtk_mdio_busy_wait(eth);
+ if (ret < 0)
+ return ret;
- mtk_w32(eth, PHY_IAC_ACCESS | PHY_IAC_START | PHY_IAC_READ |
- (phy_reg << PHY_IAC_REG_SHIFT) |
- (phy_addr << PHY_IAC_ADDR_SHIFT),
+ mtk_w32(eth, PHY_IAC_ACCESS |
+ PHY_IAC_START_C22 |
+ PHY_IAC_CMD_C22_READ |
+ PHY_IAC_REG(phy_reg) |
+ PHY_IAC_ADDR(phy_addr),
MTK_PHY_IAC);
- if (mtk_mdio_busy_wait(eth))
- return 0xffff;
-
- d = mtk_r32(eth, MTK_PHY_IAC) & 0xffff;
+ ret = mtk_mdio_busy_wait(eth);
+ if (ret < 0)
+ return ret;
- return d;
+ return mtk_r32(eth, MTK_PHY_IAC) & PHY_IAC_DATA_MASK;
}
static int mtk_mdio_write(struct mii_bus *bus, int phy_addr,
@@ -217,7 +224,7 @@ static void mtk_mac_config(struct phylink_config *config, unsigned int mode,
phylink_config);
struct mtk_eth *eth = mac->hw;
u32 mcr_cur, mcr_new, sid, i;
- int val, ge_mode, err;
+ int val, ge_mode, err = 0;
/* MT76x8 has no hardware settings between for the MAC */
if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628) &&
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
index 5ef70dd8b49c..f2d90639d7ed 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -341,11 +341,17 @@
/* PHY Indirect Access Control registers */
#define MTK_PHY_IAC 0x10004
#define PHY_IAC_ACCESS BIT(31)
-#define PHY_IAC_READ BIT(19)
-#define PHY_IAC_WRITE BIT(18)
-#define PHY_IAC_START BIT(16)
-#define PHY_IAC_ADDR_SHIFT 20
-#define PHY_IAC_REG_SHIFT 25
+#define PHY_IAC_REG_MASK GENMASK(29, 25)
+#define PHY_IAC_REG(x) FIELD_PREP(PHY_IAC_REG_MASK, (x))
+#define PHY_IAC_ADDR_MASK GENMASK(24, 20)
+#define PHY_IAC_ADDR(x) FIELD_PREP(PHY_IAC_ADDR_MASK, (x))
+#define PHY_IAC_CMD_MASK GENMASK(19, 18)
+#define PHY_IAC_CMD_WRITE FIELD_PREP(PHY_IAC_CMD_MASK, 1)
+#define PHY_IAC_CMD_C22_READ FIELD_PREP(PHY_IAC_CMD_MASK, 2)
+#define PHY_IAC_START_MASK GENMASK(17, 16)
+#define PHY_IAC_START_C22 FIELD_PREP(PHY_IAC_START_MASK, 1)
+#define PHY_IAC_DATA_MASK GENMASK(15, 0)
+#define PHY_IAC_DATA(x) FIELD_PREP(PHY_IAC_DATA_MASK, (x))
#define PHY_IAC_TIMEOUT HZ
#define MTK_MAC_MISC 0x1000c
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
index a46284ca5172..17fe05809653 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
@@ -148,8 +148,12 @@ static void cmd_ent_put(struct mlx5_cmd_work_ent *ent)
if (!refcount_dec_and_test(&ent->refcnt))
return;
- if (ent->idx >= 0)
- cmd_free_index(ent->cmd, ent->idx);
+ if (ent->idx >= 0) {
+ struct mlx5_cmd *cmd = ent->cmd;
+
+ cmd_free_index(cmd, ent->idx);
+ up(ent->page_queue ? &cmd->pages_sem : &cmd->sem);
+ }
cmd_free_ent(ent);
}
@@ -900,25 +904,6 @@ static bool opcode_allowed(struct mlx5_cmd *cmd, u16 opcode)
return cmd->allowed_opcode == opcode;
}
-static int cmd_alloc_index_retry(struct mlx5_cmd *cmd)
-{
- unsigned long alloc_end = jiffies + msecs_to_jiffies(1000);
- int idx;
-
-retry:
- idx = cmd_alloc_index(cmd);
- if (idx < 0 && time_before(jiffies, alloc_end)) {
- /* Index allocation can fail on heavy load of commands. This is a temporary
- * situation as the current command already holds the semaphore, meaning that
- * another command completion is being handled and it is expected to release
- * the entry index soon.
- */
- cpu_relax();
- goto retry;
- }
- return idx;
-}
-
bool mlx5_cmd_is_down(struct mlx5_core_dev *dev)
{
return pci_channel_offline(dev->pdev) ||
@@ -946,7 +931,7 @@ static void cmd_work_handler(struct work_struct *work)
sem = ent->page_queue ? &cmd->pages_sem : &cmd->sem;
down(sem);
if (!ent->page_queue) {
- alloc_ret = cmd_alloc_index_retry(cmd);
+ alloc_ret = cmd_alloc_index(cmd);
if (alloc_ret < 0) {
mlx5_core_err_rl(dev, "failed to allocate command entry\n");
if (ent->callback) {
@@ -1602,8 +1587,6 @@ static void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vec, bool force
vector = vec & 0xffffffff;
for (i = 0; i < (1 << cmd->log_sz); i++) {
if (test_bit(i, &vector)) {
- struct semaphore *sem;
-
ent = cmd->ent_arr[i];
/* if we already completed the command, ignore it */
@@ -1626,10 +1609,6 @@ static void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vec, bool force
dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR)
cmd_ent_put(ent);
- if (ent->page_queue)
- sem = &cmd->pages_sem;
- else
- sem = &cmd->sem;
ent->ts2 = ktime_get_ns();
memcpy(ent->out->first.data, ent->lay->out, sizeof(ent->lay->out));
dump_command(dev, ent, 0);
@@ -1683,7 +1662,6 @@ static void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vec, bool force
*/
complete(&ent->done);
}
- up(sem);
}
}
}
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c
index a5e450973225..bc5f1dcb75e1 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c
@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
/* Copyright (c) 2018 Mellanox Technologies. */
+#include <net/inet_ecn.h>
#include <net/vxlan.h>
#include <net/gre.h>
#include <net/geneve.h>
@@ -235,7 +236,7 @@ int mlx5e_tc_tun_create_header_ipv4(struct mlx5e_priv *priv,
int err;
/* add the IP fields */
- attr.fl.fl4.flowi4_tos = tun_key->tos;
+ attr.fl.fl4.flowi4_tos = tun_key->tos & ~INET_ECN_MASK;
attr.fl.fl4.daddr = tun_key->u.ipv4.dst;
attr.fl.fl4.saddr = tun_key->u.ipv4.src;
attr.ttl = tun_key->ttl;
@@ -350,7 +351,7 @@ int mlx5e_tc_tun_update_header_ipv4(struct mlx5e_priv *priv,
int err;
/* add the IP fields */
- attr.fl.fl4.flowi4_tos = tun_key->tos;
+ attr.fl.fl4.flowi4_tos = tun_key->tos & ~INET_ECN_MASK;
attr.fl.fl4.daddr = tun_key->u.ipv4.dst;
attr.fl.fl4.saddr = tun_key->u.ipv4.src;
attr.ttl = tun_key->ttl;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
index 042b1abe1437..62cbd15ffc34 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
@@ -1579,6 +1579,8 @@ mlx5e_init_fib_work_ipv4(struct mlx5e_priv *priv,
struct net_device *fib_dev;
fen_info = container_of(info, struct fib_entry_notifier_info, info);
+ if (fen_info->fi->nh)
+ return NULL;
fib_dev = fib_info_nh(fen_info->fi, 0)->fib_nh_dev;
if (!fib_dev || fib_dev->netdev_ops != &mlx5e_netdev_ops ||
fen_info->dst_len != 32)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
index 7b562d2c8a19..279cd8f4e79f 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
@@ -11,13 +11,13 @@ static int mlx5e_xsk_map_pool(struct mlx5e_priv *priv,
{
struct device *dev = mlx5_core_dma_dev(priv->mdev);
- return xsk_pool_dma_map(pool, dev, 0);
+ return xsk_pool_dma_map(pool, dev, DMA_ATTR_SKIP_CPU_SYNC);
}
static void mlx5e_xsk_unmap_pool(struct mlx5e_priv *priv,
struct xsk_buff_pool *pool)
{
- return xsk_pool_dma_unmap(pool, 0);
+ return xsk_pool_dma_unmap(pool, DMA_ATTR_SKIP_CPU_SYNC);
}
static int mlx5e_xsk_get_pools(struct mlx5e_xsk *xsk)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 41379844eee1..d92b82cdfd4e 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -4789,15 +4789,22 @@ static void mlx5e_build_nic_netdev(struct net_device *netdev)
}
if (mlx5_vxlan_allowed(mdev->vxlan) || mlx5_geneve_tx_allowed(mdev)) {
- netdev->hw_features |= NETIF_F_GSO_UDP_TUNNEL;
- netdev->hw_enc_features |= NETIF_F_GSO_UDP_TUNNEL;
- netdev->vlan_features |= NETIF_F_GSO_UDP_TUNNEL;
+ netdev->hw_features |= NETIF_F_GSO_UDP_TUNNEL |
+ NETIF_F_GSO_UDP_TUNNEL_CSUM;
+ netdev->hw_enc_features |= NETIF_F_GSO_UDP_TUNNEL |
+ NETIF_F_GSO_UDP_TUNNEL_CSUM;
+ netdev->gso_partial_features = NETIF_F_GSO_UDP_TUNNEL_CSUM;
+ netdev->vlan_features |= NETIF_F_GSO_UDP_TUNNEL |
+ NETIF_F_GSO_UDP_TUNNEL_CSUM;
}
if (mlx5e_tunnel_proto_supported_tx(mdev, IPPROTO_GRE)) {
- netdev->hw_features |= NETIF_F_GSO_GRE;
- netdev->hw_enc_features |= NETIF_F_GSO_GRE;
- netdev->gso_partial_features |= NETIF_F_GSO_GRE;
+ netdev->hw_features |= NETIF_F_GSO_GRE |
+ NETIF_F_GSO_GRE_CSUM;
+ netdev->hw_enc_features |= NETIF_F_GSO_GRE |
+ NETIF_F_GSO_GRE_CSUM;
+ netdev->gso_partial_features |= NETIF_F_GSO_GRE |
+ NETIF_F_GSO_GRE_CSUM;
}
if (mlx5e_tunnel_proto_supported_tx(mdev, IPPROTO_IPIP)) {
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
index 48895d79796a..c0df4b1115b7 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
@@ -50,6 +50,7 @@
#include "fs_core.h"
#include "lib/mlx5.h"
#include "lib/devcom.h"
+#include "lib/vxlan.h"
#define CREATE_TRACE_POINTS
#include "diag/en_rep_tracepoint.h"
#include "en_accel/ipsec.h"
@@ -1027,6 +1028,7 @@ static void mlx5e_uplink_rep_enable(struct mlx5e_priv *priv)
rtnl_lock();
if (netif_running(netdev))
mlx5e_open(netdev);
+ udp_tunnel_nic_reset_ntf(priv->netdev);
netif_device_attach(netdev);
rtnl_unlock();
}
@@ -1048,6 +1050,7 @@ static void mlx5e_uplink_rep_disable(struct mlx5e_priv *priv)
mlx5_notifier_unregister(mdev, &priv->events_nb);
mlx5e_rep_tc_disable(priv);
mlx5_lag_remove_netdev(mdev, priv->netdev);
+ mlx5_vxlan_reset_to_default(mdev->vxlan);
}
static MLX5E_DEFINE_STATS_GRP(sw_rep, 0);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
index 793511d5ee4c..dfc6604b9538 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
@@ -278,8 +278,8 @@ static inline int mlx5e_page_alloc_pool(struct mlx5e_rq *rq,
if (unlikely(!dma_info->page))
return -ENOMEM;
- dma_info->addr = dma_map_page(rq->pdev, dma_info->page, 0,
- PAGE_SIZE, rq->buff.map_dir);
+ dma_info->addr = dma_map_page_attrs(rq->pdev, dma_info->page, 0, PAGE_SIZE,
+ rq->buff.map_dir, DMA_ATTR_SKIP_CPU_SYNC);
if (unlikely(dma_mapping_error(rq->pdev, dma_info->addr))) {
page_pool_recycle_direct(rq->page_pool, dma_info->page);
dma_info->page = NULL;
@@ -300,7 +300,8 @@ static inline int mlx5e_page_alloc(struct mlx5e_rq *rq,
void mlx5e_page_dma_unmap(struct mlx5e_rq *rq, struct mlx5e_dma_info *dma_info)
{
- dma_unmap_page(rq->pdev, dma_info->addr, PAGE_SIZE, rq->buff.map_dir);
+ dma_unmap_page_attrs(rq->pdev, dma_info->addr, PAGE_SIZE, rq->buff.map_dir,
+ DMA_ATTR_SKIP_CPU_SYNC);
}
void mlx5e_page_release_dynamic(struct mlx5e_rq *rq,
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
index 5e454a14428f..9b3adaccc9be 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
@@ -1949,6 +1949,111 @@ u8 mlx5e_tc_get_ip_version(struct mlx5_flow_spec *spec, bool outer)
return ip_version;
}
+/* Tunnel device follows RFC 6040, see include/net/inet_ecn.h.
+ * And changes inner ip_ecn depending on inner and outer ip_ecn as follows:
+ * +---------+----------------------------------------+
+ * |Arriving | Arriving Outer Header |
+ * | Inner +---------+---------+---------+----------+
+ * | Header | Not-ECT | ECT(0) | ECT(1) | CE |
+ * +---------+---------+---------+---------+----------+
+ * | Not-ECT | Not-ECT | Not-ECT | Not-ECT | <drop> |
+ * | ECT(0) | ECT(0) | ECT(0) | ECT(1) | CE* |
+ * | ECT(1) | ECT(1) | ECT(1) | ECT(1)* | CE* |
+ * | CE | CE | CE | CE | CE |
+ * +---------+---------+---------+---------+----------+
+ *
+ * Tc matches on inner after decapsulation on tunnel device, but hw offload matches
+ * the inner ip_ecn value before hardware decap action.
+ *
+ * Cells marked are changed from original inner packet ip_ecn value during decap, and
+ * so matching those values on inner ip_ecn before decap will fail.
+ *
+ * The following helper allows offload when inner ip_ecn won't be changed by outer ip_ecn,
+ * except for the outer ip_ecn = CE, where in all cases inner ip_ecn will be changed to CE,
+ * and such we can drop the inner ip_ecn=CE match.
+ */
+
+static int mlx5e_tc_verify_tunnel_ecn(struct mlx5e_priv *priv,
+ struct flow_cls_offload *f,
+ bool *match_inner_ecn)
+{
+ u8 outer_ecn_mask = 0, outer_ecn_key = 0, inner_ecn_mask = 0, inner_ecn_key = 0;
+ struct flow_rule *rule = flow_cls_offload_flow_rule(f);
+ struct netlink_ext_ack *extack = f->common.extack;
+ struct flow_match_ip match;
+
+ *match_inner_ecn = true;
+
+ if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_ENC_IP)) {
+ flow_rule_match_enc_ip(rule, &match);
+ outer_ecn_key = match.key->tos & INET_ECN_MASK;
+ outer_ecn_mask = match.mask->tos & INET_ECN_MASK;
+ }
+
+ if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_IP)) {
+ flow_rule_match_ip(rule, &match);
+ inner_ecn_key = match.key->tos & INET_ECN_MASK;
+ inner_ecn_mask = match.mask->tos & INET_ECN_MASK;
+ }
+
+ if (outer_ecn_mask != 0 && outer_ecn_mask != INET_ECN_MASK) {
+ NL_SET_ERR_MSG_MOD(extack, "Partial match on enc_tos ecn bits isn't supported");
+ netdev_warn(priv->netdev, "Partial match on enc_tos ecn bits isn't supported");
+ return -EOPNOTSUPP;
+ }
+
+ if (!outer_ecn_mask) {
+ if (!inner_ecn_mask)
+ return 0;
+
+ NL_SET_ERR_MSG_MOD(extack,
+ "Matching on tos ecn bits without also matching enc_tos ecn bits isn't supported");
+ netdev_warn(priv->netdev,
+ "Matching on tos ecn bits without also matching enc_tos ecn bits isn't supported");
+ return -EOPNOTSUPP;
+ }
+
+ if (inner_ecn_mask && inner_ecn_mask != INET_ECN_MASK) {
+ NL_SET_ERR_MSG_MOD(extack,
+ "Partial match on tos ecn bits with match on enc_tos ecn bits isn't supported");
+ netdev_warn(priv->netdev,
+ "Partial match on tos ecn bits with match on enc_tos ecn bits isn't supported");
+ return -EOPNOTSUPP;
+ }
+
+ if (!inner_ecn_mask)
+ return 0;
+
+ /* Both inner and outer have full mask on ecn */
+
+ if (outer_ecn_key == INET_ECN_ECT_1) {
+ /* inner ecn might change by DECAP action */
+
+ NL_SET_ERR_MSG_MOD(extack, "Match on enc_tos ecn = ECT(1) isn't supported");
+ netdev_warn(priv->netdev, "Match on enc_tos ecn = ECT(1) isn't supported");
+ return -EOPNOTSUPP;
+ }
+
+ if (outer_ecn_key != INET_ECN_CE)
+ return 0;
+
+ if (inner_ecn_key != INET_ECN_CE) {
+ /* Can't happen in software, as packet ecn will be changed to CE after decap */
+ NL_SET_ERR_MSG_MOD(extack,
+ "Match on tos enc_tos ecn = CE while match on tos ecn != CE isn't supported");
+ netdev_warn(priv->netdev,
+ "Match on tos enc_tos ecn = CE while match on tos ecn != CE isn't supported");
+ return -EOPNOTSUPP;
+ }
+
+ /* outer ecn = CE, inner ecn = CE, as decap will change inner ecn to CE in anycase,
+ * drop match on inner ecn
+ */
+ *match_inner_ecn = false;
+
+ return 0;
+}
+
static int parse_tunnel_attr(struct mlx5e_priv *priv,
struct mlx5e_tc_flow *flow,
struct mlx5_flow_spec *spec,
@@ -2144,6 +2249,7 @@ static int __parse_cls_flower(struct mlx5e_priv *priv,
struct flow_rule *rule = flow_cls_offload_flow_rule(f);
struct flow_dissector *dissector = rule->match.dissector;
enum fs_flow_table_type fs_type;
+ bool match_inner_ecn = true;
u16 addr_type = 0;
u8 ip_proto = 0;
u8 *match_level;
@@ -2197,6 +2303,10 @@ static int __parse_cls_flower(struct mlx5e_priv *priv,
headers_c = get_match_inner_headers_criteria(spec);
headers_v = get_match_inner_headers_value(spec);
}
+
+ err = mlx5e_tc_verify_tunnel_ecn(priv, f, &match_inner_ecn);
+ if (err)
+ return err;
}
err = mlx5e_flower_parse_meta(filter_dev, f);
@@ -2420,10 +2530,12 @@ static int __parse_cls_flower(struct mlx5e_priv *priv,
struct flow_match_ip match;
flow_rule_match_ip(rule, &match);
- MLX5_SET(fte_match_set_lyr_2_4, headers_c, ip_ecn,
- match.mask->tos & 0x3);
- MLX5_SET(fte_match_set_lyr_2_4, headers_v, ip_ecn,
- match.key->tos & 0x3);
+ if (match_inner_ecn) {
+ MLX5_SET(fte_match_set_lyr_2_4, headers_c, ip_ecn,
+ match.mask->tos & 0x3);
+ MLX5_SET(fte_match_set_lyr_2_4, headers_v, ip_ecn,
+ match.key->tos & 0x3);
+ }
MLX5_SET(fte_match_set_lyr_2_4, headers_c, ip_dscp,
match.mask->tos >> 2);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c
index df277a6cddc0..0c4c743ca31e 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c
@@ -431,7 +431,7 @@ int mlx5_eswitch_set_vport_vlan(struct mlx5_eswitch *esw,
int err = 0;
if (!mlx5_esw_allowed(esw))
- return -EPERM;
+ return vlan ? -EPERM : 0;
if (vlan || qos)
set_flags = SET_VLAN_STRIP | SET_VLAN_INSERT;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index 32bc08a39925..ccb66428aeb5 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -295,26 +295,28 @@ esw_setup_chain_src_port_rewrite(struct mlx5_flow_destination *dest,
int *i)
{
struct mlx5_esw_flow_attr *esw_attr = attr->esw_attr;
- int j, err;
+ int err;
if (!(attr->flags & MLX5_ESW_ATTR_FLAG_SRC_REWRITE))
return -EOPNOTSUPP;
- for (j = esw_attr->split_count; j < esw_attr->out_count; j++, (*i)++) {
- err = esw_setup_chain_dest(dest, flow_act, chains, attr->dest_chain, 1, 0, *i);
- if (err)
- goto err_setup_chain;
+ /* flow steering cannot handle more than one dest with the same ft
+ * in a single flow
+ */
+ if (esw_attr->out_count - esw_attr->split_count > 1)
+ return -EOPNOTSUPP;
- if (esw_attr->dests[j].pkt_reformat) {
- flow_act->action |= MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT;
- flow_act->pkt_reformat = esw_attr->dests[j].pkt_reformat;
- }
+ err = esw_setup_chain_dest(dest, flow_act, chains, attr->dest_chain, 1, 0, *i);
+ if (err)
+ return err;
+
+ if (esw_attr->dests[esw_attr->split_count].pkt_reformat) {
+ flow_act->action |= MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT;
+ flow_act->pkt_reformat = esw_attr->dests[esw_attr->split_count].pkt_reformat;
}
- return 0;
+ (*i)++;
-err_setup_chain:
- esw_put_dest_tables_loop(esw, attr, esw_attr->split_count, j);
- return err;
+ return 0;
}
static void esw_cleanup_chain_src_port_rewrite(struct mlx5_eswitch *esw,
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c
index bf4d3cbefa63..1ca01a5b6cdd 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c
@@ -268,10 +268,8 @@ static int mlx5_lag_fib_event(struct notifier_block *nb,
fen_info = container_of(info, struct fib_entry_notifier_info,
info);
fi = fen_info->fi;
- if (fi->nh) {
- NL_SET_ERR_MSG_MOD(info->extack, "IPv4 route with nexthop objects is not supported");
- return notifier_from_errno(-EINVAL);
- }
+ if (fi->nh)
+ return NOTIFY_DONE;
fib_dev = fib_info_nh(fen_info->fi, 0)->fib_nh_dev;
if (fib_dev != ldev->pf[MLX5_LAG_P1].netdev &&
fib_dev != ldev->pf[MLX5_LAG_P2].netdev) {
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c
index 65083496f913..6e381111f1d2 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c
@@ -98,6 +98,8 @@ enum {
MLX5_ATOMIC_REQ_MODE_HOST_ENDIANNESS = 0x1,
};
+#define LOG_MAX_SUPPORTED_QPS 0xff
+
static struct mlx5_profile profile[] = {
[0] = {
.mask = 0,
@@ -109,7 +111,7 @@ static struct mlx5_profile profile[] = {
[2] = {
.mask = MLX5_PROF_MASK_QP_SIZE |
MLX5_PROF_MASK_MR_CACHE,
- .log_max_qp = 18,
+ .log_max_qp = LOG_MAX_SUPPORTED_QPS,
.mr_cache[0] = {
.size = 500,
.limit = 250
@@ -507,7 +509,9 @@ static int handle_hca_cap(struct mlx5_core_dev *dev, void *set_ctx)
to_fw_pkey_sz(dev, 128));
/* Check log_max_qp from HCA caps to set in current profile */
- if (MLX5_CAP_GEN_MAX(dev, log_max_qp) < prof->log_max_qp) {
+ if (prof->log_max_qp == LOG_MAX_SUPPORTED_QPS) {
+ prof->log_max_qp = MLX5_CAP_GEN_MAX(dev, log_max_qp);
+ } else if (MLX5_CAP_GEN_MAX(dev, log_max_qp) < prof->log_max_qp) {
mlx5_core_warn(dev, "log_max_qp value in current profile is %d, changing it to HCA capability limit (%d)\n",
prof->log_max_qp,
MLX5_CAP_GEN_MAX(dev, log_max_qp));
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c b/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c
index f37db7cc32a6..7da012ff0d41 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c
@@ -30,10 +30,7 @@ bool mlx5_sf_dev_allocated(const struct mlx5_core_dev *dev)
{
struct mlx5_sf_dev_table *table = dev->priv.sf_dev_table;
- if (!mlx5_sf_dev_supported(dev))
- return false;
-
- return !xa_empty(&table->devices);
+ return table && !xa_empty(&table->devices);
}
static ssize_t sfnum_show(struct device *dev, struct device_attribute *attr, char *buf)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_matcher.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_matcher.c
index 793365242e85..3d0cdc36a91a 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_matcher.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_matcher.c
@@ -872,13 +872,12 @@ static int dr_matcher_init_fdb(struct mlx5dr_matcher *matcher)
return ret;
}
-static int dr_matcher_init(struct mlx5dr_matcher *matcher,
- struct mlx5dr_match_parameters *mask)
+static int dr_matcher_copy_param(struct mlx5dr_matcher *matcher,
+ struct mlx5dr_match_parameters *mask)
{
+ struct mlx5dr_domain *dmn = matcher->tbl->dmn;
struct mlx5dr_match_parameters consumed_mask;
- struct mlx5dr_table *tbl = matcher->tbl;
- struct mlx5dr_domain *dmn = tbl->dmn;
- int i, ret;
+ int i, ret = 0;
if (matcher->match_criteria >= DR_MATCHER_CRITERIA_MAX) {
mlx5dr_err(dmn, "Invalid match criteria attribute\n");
@@ -898,10 +897,36 @@ static int dr_matcher_init(struct mlx5dr_matcher *matcher,
consumed_mask.match_sz = mask->match_sz;
memcpy(consumed_mask.match_buf, mask->match_buf, mask->match_sz);
mlx5dr_ste_copy_param(matcher->match_criteria,
- &matcher->mask, &consumed_mask,
- true);
+ &matcher->mask, &consumed_mask, true);
+
+ /* Check that all mask data was consumed */
+ for (i = 0; i < consumed_mask.match_sz; i++) {
+ if (!((u8 *)consumed_mask.match_buf)[i])
+ continue;
+
+ mlx5dr_dbg(dmn,
+ "Match param mask contains unsupported parameters\n");
+ ret = -EOPNOTSUPP;
+ break;
+ }
+
+ kfree(consumed_mask.match_buf);
}
+ return ret;
+}
+
+static int dr_matcher_init(struct mlx5dr_matcher *matcher,
+ struct mlx5dr_match_parameters *mask)
+{
+ struct mlx5dr_table *tbl = matcher->tbl;
+ struct mlx5dr_domain *dmn = tbl->dmn;
+ int ret;
+
+ ret = dr_matcher_copy_param(matcher, mask);
+ if (ret)
+ return ret;
+
switch (dmn->type) {
case MLX5DR_DOMAIN_TYPE_NIC_RX:
matcher->rx.nic_tbl = &tbl->rx;
@@ -919,22 +944,8 @@ static int dr_matcher_init(struct mlx5dr_matcher *matcher,
default:
WARN_ON(true);
ret = -EINVAL;
- goto free_consumed_mask;
- }
-
- /* Check that all mask data was consumed */
- for (i = 0; i < consumed_mask.match_sz; i++) {
- if (!((u8 *)consumed_mask.match_buf)[i])
- continue;
-
- mlx5dr_dbg(dmn, "Match param mask contains unsupported parameters\n");
- ret = -EOPNOTSUPP;
- goto free_consumed_mask;
}
- ret = 0;
-free_consumed_mask:
- kfree(consumed_mask.match_buf);
return ret;
}
diff --git a/drivers/net/ethernet/mellanox/mlxsw/cmd.h b/drivers/net/ethernet/mellanox/mlxsw/cmd.h
index 392ce3cb27f7..51b260d54237 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/cmd.h
+++ b/drivers/net/ethernet/mellanox/mlxsw/cmd.h
@@ -935,6 +935,18 @@ static inline int mlxsw_cmd_sw2hw_rdq(struct mlxsw_core *mlxsw_core,
*/
MLXSW_ITEM32(cmd_mbox, sw2hw_dq, cq, 0x00, 24, 8);
+enum mlxsw_cmd_mbox_sw2hw_dq_sdq_lp {
+ MLXSW_CMD_MBOX_SW2HW_DQ_SDQ_LP_WQE,
+ MLXSW_CMD_MBOX_SW2HW_DQ_SDQ_LP_IGNORE_WQE,
+};
+
+/* cmd_mbox_sw2hw_dq_sdq_lp
+ * SDQ local Processing
+ * 0: local processing by wqe.lp
+ * 1: local processing (ignoring wqe.lp)
+ */
+MLXSW_ITEM32(cmd_mbox, sw2hw_dq, sdq_lp, 0x00, 23, 1);
+
/* cmd_mbox_sw2hw_dq_sdq_tclass
* SDQ: CPU Egress TClass
* RDQ: Reserved
diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c
index a15c95a10bae..f91dde4df152 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/pci.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c
@@ -285,6 +285,7 @@ static int mlxsw_pci_sdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox,
struct mlxsw_pci_queue *q)
{
int tclass;
+ int lp;
int i;
int err;
@@ -292,9 +293,12 @@ static int mlxsw_pci_sdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox,
q->consumer_counter = 0;
tclass = q->num == MLXSW_PCI_SDQ_EMAD_INDEX ? MLXSW_PCI_SDQ_EMAD_TC :
MLXSW_PCI_SDQ_CTL_TC;
+ lp = q->num == MLXSW_PCI_SDQ_EMAD_INDEX ? MLXSW_CMD_MBOX_SW2HW_DQ_SDQ_LP_IGNORE_WQE :
+ MLXSW_CMD_MBOX_SW2HW_DQ_SDQ_LP_WQE;
/* Set CQ of same number of this SDQ. */
mlxsw_cmd_mbox_sw2hw_dq_cq_set(mbox, q->num);
+ mlxsw_cmd_mbox_sw2hw_dq_sdq_lp_set(mbox, lp);
mlxsw_cmd_mbox_sw2hw_dq_sdq_tclass_set(mbox, tclass);
mlxsw_cmd_mbox_sw2hw_dq_log2_dq_sz_set(mbox, 3); /* 8 pages */
for (i = 0; i < MLXSW_PCI_AQ_PAGES; i++) {
@@ -1678,7 +1682,7 @@ static int mlxsw_pci_skb_transmit(void *bus_priv, struct sk_buff *skb,
wqe = elem_info->elem;
mlxsw_pci_wqe_c_set(wqe, 1); /* always report completion */
- mlxsw_pci_wqe_lp_set(wqe, !!tx_info->is_emad);
+ mlxsw_pci_wqe_lp_set(wqe, 0);
mlxsw_pci_wqe_type_set(wqe, MLXSW_PCI_WQE_TYPE_ETHERNET);
err = mlxsw_pci_wqe_frag_map(mlxsw_pci, wqe, 0, skb->data,
@@ -1973,6 +1977,7 @@ int mlxsw_pci_driver_register(struct pci_driver *pci_driver)
{
pci_driver->probe = mlxsw_pci_probe;
pci_driver->remove = mlxsw_pci_remove;
+ pci_driver->shutdown = mlxsw_pci_remove;
return pci_register_driver(pci_driver);
}
EXPORT_SYMBOL(mlxsw_pci_driver_register);
diff --git a/drivers/net/ethernet/mscc/ocelot.c b/drivers/net/ethernet/mscc/ocelot.c
index 1e4ad953cffb..294bb4eb3833 100644
--- a/drivers/net/ethernet/mscc/ocelot.c
+++ b/drivers/net/ethernet/mscc/ocelot.c
@@ -692,7 +692,10 @@ void ocelot_phylink_mac_link_up(struct ocelot *ocelot, int port,
ocelot_write_rix(ocelot, 0, ANA_POL_FLOWC, port);
- ocelot_fields_write(ocelot, port, SYS_PAUSE_CFG_PAUSE_ENA, tx_pause);
+ /* Don't attempt to send PAUSE frames on the NPI port, it's broken */
+ if (port != ocelot->npi)
+ ocelot_fields_write(ocelot, port, SYS_PAUSE_CFG_PAUSE_ENA,
+ tx_pause);
/* Undo the effects of ocelot_phylink_mac_link_down:
* enable MAC module
@@ -1688,8 +1691,7 @@ int ocelot_get_ts_info(struct ocelot *ocelot, int port,
}
EXPORT_SYMBOL(ocelot_get_ts_info);
-static u32 ocelot_get_bond_mask(struct ocelot *ocelot, struct net_device *bond,
- bool only_active_ports)
+static u32 ocelot_get_bond_mask(struct ocelot *ocelot, struct net_device *bond)
{
u32 mask = 0;
int port;
@@ -1700,12 +1702,8 @@ static u32 ocelot_get_bond_mask(struct ocelot *ocelot, struct net_device *bond,
if (!ocelot_port)
continue;
- if (ocelot_port->bond == bond) {
- if (only_active_ports && !ocelot_port->lag_tx_active)
- continue;
-
+ if (ocelot_port->bond == bond)
mask |= BIT(port);
- }
}
return mask;
@@ -1792,10 +1790,8 @@ void ocelot_apply_bridge_fwd_mask(struct ocelot *ocelot)
mask = ocelot_get_bridge_fwd_mask(ocelot, port, bridge);
mask |= cpu_fwd_mask;
mask &= ~BIT(port);
- if (bond) {
- mask &= ~ocelot_get_bond_mask(ocelot, bond,
- false);
- }
+ if (bond)
+ mask &= ~ocelot_get_bond_mask(ocelot, bond);
} else {
/* Standalone ports forward only to DSA tag_8021q CPU
* ports (if those exist), or to the hardware CPU port
@@ -2112,13 +2108,17 @@ static void ocelot_set_aggr_pgids(struct ocelot *ocelot)
if (!bond || (visited & BIT(lag)))
continue;
- bond_mask = ocelot_get_bond_mask(ocelot, bond, true);
+ bond_mask = ocelot_get_bond_mask(ocelot, bond);
for_each_set_bit(port, &bond_mask, ocelot->num_phys_ports) {
+ struct ocelot_port *ocelot_port = ocelot->ports[port];
+
// Destination mask
ocelot_write_rix(ocelot, bond_mask,
ANA_PGID_PGID, port);
- aggr_idx[num_active_ports++] = port;
+
+ if (ocelot_port->lag_tx_active)
+ aggr_idx[num_active_ports++] = port;
}
for_each_aggr_pgid(ocelot, i) {
@@ -2167,8 +2167,7 @@ static void ocelot_setup_logical_port_ids(struct ocelot *ocelot)
bond = ocelot_port->bond;
if (bond) {
- int lag = __ffs(ocelot_get_bond_mask(ocelot, bond,
- false));
+ int lag = __ffs(ocelot_get_bond_mask(ocelot, bond));
ocelot_rmw_gix(ocelot,
ANA_PORT_PORT_CFG_PORTID_VAL(lag),
diff --git a/drivers/net/ethernet/mscc/ocelot_flower.c b/drivers/net/ethernet/mscc/ocelot_flower.c
index 769a8159373e..738dd2be79dc 100644
--- a/drivers/net/ethernet/mscc/ocelot_flower.c
+++ b/drivers/net/ethernet/mscc/ocelot_flower.c
@@ -521,13 +521,6 @@ ocelot_flower_parse_key(struct ocelot *ocelot, int port, bool ingress,
return -EOPNOTSUPP;
}
- if (filter->block_id == VCAP_IS1 &&
- !is_zero_ether_addr(match.mask->dst)) {
- NL_SET_ERR_MSG_MOD(extack,
- "Key type S1_NORMAL cannot match on destination MAC");
- return -EOPNOTSUPP;
- }
-
/* The hw support mac matches only for MAC_ETYPE key,
* therefore if other matches(port, tcp flags, etc) are added
* then just bail out
@@ -542,6 +535,14 @@ ocelot_flower_parse_key(struct ocelot *ocelot, int port, bool ingress,
return -EOPNOTSUPP;
flow_rule_match_eth_addrs(rule, &match);
+
+ if (filter->block_id == VCAP_IS1 &&
+ !is_zero_ether_addr(match.mask->dst)) {
+ NL_SET_ERR_MSG_MOD(extack,
+ "Key type S1_NORMAL cannot match on destination MAC");
+ return -EOPNOTSUPP;
+ }
+
filter->key_type = OCELOT_VCAP_KEY_ETYPE;
ether_addr_copy(filter->key.etype.dmac.value,
match.key->dst);
@@ -763,13 +764,34 @@ int ocelot_cls_flower_replace(struct ocelot *ocelot, int port,
struct netlink_ext_ack *extack = f->common.extack;
struct ocelot_vcap_filter *filter;
int chain = f->common.chain_index;
- int ret;
+ int block_id, ret;
if (chain && !ocelot_find_vcap_filter_that_points_at(ocelot, chain)) {
NL_SET_ERR_MSG_MOD(extack, "No default GOTO action points to this chain");
return -EOPNOTSUPP;
}
+ block_id = ocelot_chain_to_block(chain, ingress);
+ if (block_id < 0) {
+ NL_SET_ERR_MSG_MOD(extack, "Cannot offload to this chain");
+ return -EOPNOTSUPP;
+ }
+
+ filter = ocelot_vcap_block_find_filter_by_id(&ocelot->block[block_id],
+ f->cookie, true);
+ if (filter) {
+ /* Filter already exists on other ports */
+ if (!ingress) {
+ NL_SET_ERR_MSG_MOD(extack, "VCAP ES0 does not support shared filters");
+ return -EOPNOTSUPP;
+ }
+
+ filter->ingress_port_mask |= BIT(port);
+
+ return ocelot_vcap_filter_replace(ocelot, filter);
+ }
+
+ /* Filter didn't exist, create it now */
filter = ocelot_vcap_filter_create(ocelot, port, ingress, f);
if (!filter)
return -ENOMEM;
@@ -816,6 +838,12 @@ int ocelot_cls_flower_destroy(struct ocelot *ocelot, int port,
if (filter->type == OCELOT_VCAP_FILTER_DUMMY)
return ocelot_vcap_dummy_filter_del(ocelot, filter);
+ if (ingress) {
+ filter->ingress_port_mask &= ~BIT(port);
+ if (filter->ingress_port_mask)
+ return ocelot_vcap_filter_replace(ocelot, filter);
+ }
+
return ocelot_vcap_filter_del(ocelot, filter);
}
EXPORT_SYMBOL_GPL(ocelot_cls_flower_destroy);
diff --git a/drivers/net/ethernet/mscc/ocelot_net.c b/drivers/net/ethernet/mscc/ocelot_net.c
index eaeba60b1bba..3cf998813b83 100644
--- a/drivers/net/ethernet/mscc/ocelot_net.c
+++ b/drivers/net/ethernet/mscc/ocelot_net.c
@@ -1168,7 +1168,7 @@ static int ocelot_netdevice_bridge_join(struct net_device *dev,
ocelot_port_bridge_join(ocelot, port, bridge);
err = switchdev_bridge_port_offload(brport_dev, dev, priv,
- &ocelot_netdevice_nb,
+ &ocelot_switchdev_nb,
&ocelot_switchdev_blocking_nb,
false, extack);
if (err)
@@ -1182,7 +1182,7 @@ static int ocelot_netdevice_bridge_join(struct net_device *dev,
err_switchdev_sync:
switchdev_bridge_port_unoffload(brport_dev, priv,
- &ocelot_netdevice_nb,
+ &ocelot_switchdev_nb,
&ocelot_switchdev_blocking_nb);
err_switchdev_offload:
ocelot_port_bridge_leave(ocelot, port, bridge);
@@ -1195,7 +1195,7 @@ static void ocelot_netdevice_pre_bridge_leave(struct net_device *dev,
struct ocelot_port_private *priv = netdev_priv(dev);
switchdev_bridge_port_unoffload(brport_dev, priv,
- &ocelot_netdevice_nb,
+ &ocelot_switchdev_nb,
&ocelot_switchdev_blocking_nb);
}
diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
index b4c597f4040c..151cce2fe36d 100644
--- a/drivers/net/ethernet/renesas/ravb_main.c
+++ b/drivers/net/ethernet/renesas/ravb_main.c
@@ -30,8 +30,7 @@
#include <linux/spinlock.h>
#include <linux/sys_soc.h>
#include <linux/reset.h>
-
-#include <asm/div64.h>
+#include <linux/math64.h>
#include "ravb.h"
@@ -2488,8 +2487,7 @@ static int ravb_set_gti(struct net_device *ndev)
if (!rate)
return -EINVAL;
- inc = 1000000000ULL << 20;
- do_div(inc, rate);
+ inc = div64_ul(1000000000ULL << 20, rate);
if (inc < GTI_TIV_MIN || inc > GTI_TIV_MAX) {
dev_err(dev, "gti.tiv increment 0x%llx is outside the range 0x%x - 0x%x\n",
diff --git a/drivers/net/ethernet/rocker/rocker_ofdpa.c b/drivers/net/ethernet/rocker/rocker_ofdpa.c
index 3e1ca7a8d029..bc70c6abd6a5 100644
--- a/drivers/net/ethernet/rocker/rocker_ofdpa.c
+++ b/drivers/net/ethernet/rocker/rocker_ofdpa.c
@@ -2783,7 +2783,8 @@ static void ofdpa_fib4_abort(struct rocker *rocker)
if (!ofdpa_port)
continue;
nh->fib_nh_flags &= ~RTNH_F_OFFLOAD;
- ofdpa_flow_tbl_del(ofdpa_port, OFDPA_OP_FLAG_REMOVE,
+ ofdpa_flow_tbl_del(ofdpa_port,
+ OFDPA_OP_FLAG_REMOVE | OFDPA_OP_FLAG_NOWAIT,
flow_entry);
}
spin_unlock_irqrestore(&ofdpa->flow_tbl_lock, flags);
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
index 5c74b6279d69..6b1d9e8879f4 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
@@ -113,8 +113,10 @@ static void rgmii_updatel(struct qcom_ethqos *ethqos,
rgmii_writel(ethqos, temp, offset);
}
-static void rgmii_dump(struct qcom_ethqos *ethqos)
+static void rgmii_dump(void *priv)
{
+ struct qcom_ethqos *ethqos = priv;
+
dev_dbg(ðqos->pdev->dev, "Rgmii register dump\n");
dev_dbg(ðqos->pdev->dev, "RGMII_IO_MACRO_CONFIG: %x\n",
rgmii_readl(ethqos, RGMII_IO_MACRO_CONFIG));
@@ -499,6 +501,7 @@ static int qcom_ethqos_probe(struct platform_device *pdev)
plat_dat->bsp_priv = ethqos;
plat_dat->fix_mac_speed = ethqos_fix_mac_speed;
+ plat_dat->dump_debug_regs = rgmii_dump;
plat_dat->has_gmac4 = 1;
plat_dat->pmt = 1;
plat_dat->tso_en = of_property_read_bool(np, "snps,tso");
@@ -507,8 +510,6 @@ static int qcom_ethqos_probe(struct platform_device *pdev)
if (ret)
goto err_clk;
- rgmii_dump(ethqos);
-
return ret;
err_clk:
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 8ded4be08b00..e81a79845d42 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -7094,6 +7094,9 @@ int stmmac_dvr_probe(struct device *device,
stmmac_init_fs(ndev);
#endif
+ if (priv->plat->dump_debug_regs)
+ priv->plat->dump_debug_regs(priv->plat->bsp_priv);
+
/* Let pm_runtime_put() disable the clocks.
* If CONFIG_PM is not enabled, the clocks will stay powered.
*/
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 33142d505fc8..03575c017500 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -349,7 +349,7 @@ static void cpsw_rx_handler(void *token, int len, int status)
struct cpsw_common *cpsw = ndev_to_cpsw(xmeta->ndev);
int pkt_size = cpsw->rx_packet_max;
int ret = 0, port, ch = xmeta->ch;
- int headroom = CPSW_HEADROOM;
+ int headroom = CPSW_HEADROOM_NA;
struct net_device *ndev = xmeta->ndev;
struct cpsw_priv *priv;
struct page_pool *pool;
@@ -392,7 +392,7 @@ static void cpsw_rx_handler(void *token, int len, int status)
}
if (priv->xdp_prog) {
- int headroom = CPSW_HEADROOM, size = len;
+ int size = len;
xdp_init_buff(&xdp, PAGE_SIZE, &priv->xdp_rxq[ch]);
if (status & CPDMA_RX_VLAN_ENCAP) {
@@ -442,7 +442,7 @@ static void cpsw_rx_handler(void *token, int len, int status)
xmeta->ndev = ndev;
xmeta->ch = ch;
- dma = page_pool_get_dma_addr(new_page) + CPSW_HEADROOM;
+ dma = page_pool_get_dma_addr(new_page) + CPSW_HEADROOM_NA;
ret = cpdma_chan_submit_mapped(cpsw->rxv[ch].ch, new_page, dma,
pkt_size, 0);
if (ret < 0) {
diff --git a/drivers/net/ethernet/ti/cpsw_new.c b/drivers/net/ethernet/ti/cpsw_new.c
index 279e261e4720..bd4b1528cf99 100644
--- a/drivers/net/ethernet/ti/cpsw_new.c
+++ b/drivers/net/ethernet/ti/cpsw_new.c
@@ -283,7 +283,7 @@ static void cpsw_rx_handler(void *token, int len, int status)
{
struct page *new_page, *page = token;
void *pa = page_address(page);
- int headroom = CPSW_HEADROOM;
+ int headroom = CPSW_HEADROOM_NA;
struct cpsw_meta_xdp *xmeta;
struct cpsw_common *cpsw;
struct net_device *ndev;
@@ -336,7 +336,7 @@ static void cpsw_rx_handler(void *token, int len, int status)
}
if (priv->xdp_prog) {
- int headroom = CPSW_HEADROOM, size = len;
+ int size = len;
xdp_init_buff(&xdp, PAGE_SIZE, &priv->xdp_rxq[ch]);
if (status & CPDMA_RX_VLAN_ENCAP) {
@@ -386,7 +386,7 @@ static void cpsw_rx_handler(void *token, int len, int status)
xmeta->ndev = ndev;
xmeta->ch = ch;
- dma = page_pool_get_dma_addr(new_page) + CPSW_HEADROOM;
+ dma = page_pool_get_dma_addr(new_page) + CPSW_HEADROOM_NA;
ret = cpdma_chan_submit_mapped(cpsw->rxv[ch].ch, new_page, dma,
pkt_size, 0);
if (ret < 0) {
diff --git a/drivers/net/ethernet/ti/cpsw_priv.c b/drivers/net/ethernet/ti/cpsw_priv.c
index ecc2a6b7e28f..6bb5ac51d23c 100644
--- a/drivers/net/ethernet/ti/cpsw_priv.c
+++ b/drivers/net/ethernet/ti/cpsw_priv.c
@@ -1120,7 +1120,7 @@ int cpsw_fill_rx_channels(struct cpsw_priv *priv)
xmeta->ndev = priv->ndev;
xmeta->ch = ch;
- dma = page_pool_get_dma_addr(page) + CPSW_HEADROOM;
+ dma = page_pool_get_dma_addr(page) + CPSW_HEADROOM_NA;
ret = cpdma_chan_idle_submit_mapped(cpsw->rxv[ch].ch,
page, dma,
cpsw->rx_packet_max,
diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
index 9b068b81ae09..f12eb5beaded 100644
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
@@ -41,8 +41,9 @@
#include "xilinx_axienet.h"
/* Descriptors defines for Tx and Rx DMA */
-#define TX_BD_NUM_DEFAULT 64
+#define TX_BD_NUM_DEFAULT 128
#define RX_BD_NUM_DEFAULT 1024
+#define TX_BD_NUM_MIN (MAX_SKB_FRAGS + 1)
#define TX_BD_NUM_MAX 4096
#define RX_BD_NUM_MAX 4096
@@ -496,7 +497,8 @@ static void axienet_setoptions(struct net_device *ndev, u32 options)
static int __axienet_device_reset(struct axienet_local *lp)
{
- u32 timeout;
+ u32 value;
+ int ret;
/* Reset Axi DMA. This would reset Axi Ethernet core as well. The reset
* process of Axi DMA takes a while to complete as all pending
@@ -506,15 +508,23 @@ static int __axienet_device_reset(struct axienet_local *lp)
* they both reset the entire DMA core, so only one needs to be used.
*/
axienet_dma_out32(lp, XAXIDMA_TX_CR_OFFSET, XAXIDMA_CR_RESET_MASK);
- timeout = DELAY_OF_ONE_MILLISEC;
- while (axienet_dma_in32(lp, XAXIDMA_TX_CR_OFFSET) &
- XAXIDMA_CR_RESET_MASK) {
- udelay(1);
- if (--timeout == 0) {
- netdev_err(lp->ndev, "%s: DMA reset timeout!\n",
- __func__);
- return -ETIMEDOUT;
- }
+ ret = read_poll_timeout(axienet_dma_in32, value,
+ !(value & XAXIDMA_CR_RESET_MASK),
+ DELAY_OF_ONE_MILLISEC, 50000, false, lp,
+ XAXIDMA_TX_CR_OFFSET);
+ if (ret) {
+ dev_err(lp->dev, "%s: DMA reset timeout!\n", __func__);
+ return ret;
+ }
+
+ /* Wait for PhyRstCmplt bit to be set, indicating the PHY reset has finished */
+ ret = read_poll_timeout(axienet_ior, value,
+ value & XAE_INT_PHYRSTCMPLT_MASK,
+ DELAY_OF_ONE_MILLISEC, 50000, false, lp,
+ XAE_IS_OFFSET);
+ if (ret) {
+ dev_err(lp->dev, "%s: timeout waiting for PhyRstCmplt\n", __func__);
+ return ret;
}
return 0;
@@ -623,6 +633,8 @@ static int axienet_free_tx_chain(struct net_device *ndev, u32 first_bd,
if (nr_bds == -1 && !(status & XAXIDMA_BD_STS_COMPLETE_MASK))
break;
+ /* Ensure we see complete descriptor update */
+ dma_rmb();
phys = desc_get_phys_addr(lp, cur_p);
dma_unmap_single(ndev->dev.parent, phys,
(cur_p->cntrl & XAXIDMA_BD_CTRL_LENGTH_MASK),
@@ -631,13 +643,15 @@ static int axienet_free_tx_chain(struct net_device *ndev, u32 first_bd,
if (cur_p->skb && (status & XAXIDMA_BD_STS_COMPLETE_MASK))
dev_consume_skb_irq(cur_p->skb);
- cur_p->cntrl = 0;
cur_p->app0 = 0;
cur_p->app1 = 0;
cur_p->app2 = 0;
cur_p->app4 = 0;
- cur_p->status = 0;
cur_p->skb = NULL;
+ /* ensure our transmit path and device don't prematurely see status cleared */
+ wmb();
+ cur_p->cntrl = 0;
+ cur_p->status = 0;
if (sizep)
*sizep += status & XAXIDMA_BD_STS_ACTUAL_LEN_MASK;
@@ -646,6 +660,32 @@ static int axienet_free_tx_chain(struct net_device *ndev, u32 first_bd,
return i;
}
+/**
+ * axienet_check_tx_bd_space - Checks if a BD/group of BDs are currently busy
+ * @lp: Pointer to the axienet_local structure
+ * @num_frag: The number of BDs to check for
+ *
+ * Return: 0, on success
+ * NETDEV_TX_BUSY, if any of the descriptors are not free
+ *
+ * This function is invoked before BDs are allocated and transmission starts.
+ * This function returns 0 if a BD or group of BDs can be allocated for
+ * transmission. If the BD or any of the BDs are not free the function
+ * returns a busy status. This is invoked from axienet_start_xmit.
+ */
+static inline int axienet_check_tx_bd_space(struct axienet_local *lp,
+ int num_frag)
+{
+ struct axidma_bd *cur_p;
+
+ /* Ensure we see all descriptor updates from device or TX IRQ path */
+ rmb();
+ cur_p = &lp->tx_bd_v[(lp->tx_bd_tail + num_frag) % lp->tx_bd_num];
+ if (cur_p->cntrl)
+ return NETDEV_TX_BUSY;
+ return 0;
+}
+
/**
* axienet_start_xmit_done - Invoked once a transmit is completed by the
* Axi DMA Tx channel.
@@ -675,30 +715,8 @@ static void axienet_start_xmit_done(struct net_device *ndev)
/* Matches barrier in axienet_start_xmit */
smp_mb();
- netif_wake_queue(ndev);
-}
-
-/**
- * axienet_check_tx_bd_space - Checks if a BD/group of BDs are currently busy
- * @lp: Pointer to the axienet_local structure
- * @num_frag: The number of BDs to check for
- *
- * Return: 0, on success
- * NETDEV_TX_BUSY, if any of the descriptors are not free
- *
- * This function is invoked before BDs are allocated and transmission starts.
- * This function returns 0 if a BD or group of BDs can be allocated for
- * transmission. If the BD or any of the BDs are not free the function
- * returns a busy status. This is invoked from axienet_start_xmit.
- */
-static inline int axienet_check_tx_bd_space(struct axienet_local *lp,
- int num_frag)
-{
- struct axidma_bd *cur_p;
- cur_p = &lp->tx_bd_v[(lp->tx_bd_tail + num_frag) % lp->tx_bd_num];
- if (cur_p->status & XAXIDMA_BD_STS_ALL_MASK)
- return NETDEV_TX_BUSY;
- return 0;
+ if (!axienet_check_tx_bd_space(lp, MAX_SKB_FRAGS + 1))
+ netif_wake_queue(ndev);
}
/**
@@ -730,20 +748,15 @@ axienet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
num_frag = skb_shinfo(skb)->nr_frags;
cur_p = &lp->tx_bd_v[lp->tx_bd_tail];
- if (axienet_check_tx_bd_space(lp, num_frag)) {
- if (netif_queue_stopped(ndev))
- return NETDEV_TX_BUSY;
-
+ if (axienet_check_tx_bd_space(lp, num_frag + 1)) {
+ /* Should not happen as last start_xmit call should have
+ * checked for sufficient space and queue should only be
+ * woken when sufficient space is available.
+ */
netif_stop_queue(ndev);
-
- /* Matches barrier in axienet_start_xmit_done */
- smp_mb();
-
- /* Space might have just been freed - check again */
- if (axienet_check_tx_bd_space(lp, num_frag))
- return NETDEV_TX_BUSY;
-
- netif_wake_queue(ndev);
+ if (net_ratelimit())
+ netdev_warn(ndev, "TX ring unexpectedly full\n");
+ return NETDEV_TX_BUSY;
}
if (skb->ip_summed == CHECKSUM_PARTIAL) {
@@ -804,6 +817,18 @@ axienet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
if (++lp->tx_bd_tail >= lp->tx_bd_num)
lp->tx_bd_tail = 0;
+ /* Stop queue if next transmit may not have space */
+ if (axienet_check_tx_bd_space(lp, MAX_SKB_FRAGS + 1)) {
+ netif_stop_queue(ndev);
+
+ /* Matches barrier in axienet_start_xmit_done */
+ smp_mb();
+
+ /* Space might have just been freed - check again */
+ if (!axienet_check_tx_bd_space(lp, MAX_SKB_FRAGS + 1))
+ netif_wake_queue(ndev);
+ }
+
return NETDEV_TX_OK;
}
@@ -834,6 +859,8 @@ static void axienet_recv(struct net_device *ndev)
tail_p = lp->rx_bd_p + sizeof(*lp->rx_bd_v) * lp->rx_bd_ci;
+ /* Ensure we see complete descriptor update */
+ dma_rmb();
phys = desc_get_phys_addr(lp, cur_p);
dma_unmap_single(ndev->dev.parent, phys, lp->max_frm_size,
DMA_FROM_DEVICE);
@@ -1346,7 +1373,8 @@ static int axienet_ethtools_set_ringparam(struct net_device *ndev,
if (ering->rx_pending > RX_BD_NUM_MAX ||
ering->rx_mini_pending ||
ering->rx_jumbo_pending ||
- ering->rx_pending > TX_BD_NUM_MAX)
+ ering->tx_pending < TX_BD_NUM_MIN ||
+ ering->tx_pending > TX_BD_NUM_MAX)
return -EINVAL;
if (netif_running(ndev))
@@ -2080,6 +2108,11 @@ static int axienet_probe(struct platform_device *pdev)
lp->coalesce_count_rx = XAXIDMA_DFT_RX_THRESHOLD;
lp->coalesce_count_tx = XAXIDMA_DFT_TX_THRESHOLD;
+ /* Reset core now that clocks are enabled, prior to accessing MDIO */
+ ret = __axienet_device_reset(lp);
+ if (ret)
+ goto cleanup_clk;
+
lp->phy_node = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
if (lp->phy_node) {
ret = axienet_mdio_setup(lp);
diff --git a/drivers/net/ipa/ipa_endpoint.c b/drivers/net/ipa/ipa_endpoint.c
index 03a170993420..c8f90cb1ee8f 100644
--- a/drivers/net/ipa/ipa_endpoint.c
+++ b/drivers/net/ipa/ipa_endpoint.c
@@ -1067,6 +1067,7 @@ static void ipa_endpoint_replenish(struct ipa_endpoint *endpoint, bool add_one)
{
struct gsi *gsi;
u32 backlog;
+ int delta;
if (!endpoint->replenish_enabled) {
if (add_one)
@@ -1084,10 +1085,8 @@ static void ipa_endpoint_replenish(struct ipa_endpoint *endpoint, bool add_one)
try_again_later:
/* The last one didn't succeed, so fix the backlog */
- backlog = atomic_inc_return(&endpoint->replenish_backlog);
-
- if (add_one)
- atomic_inc(&endpoint->replenish_backlog);
+ delta = add_one ? 2 : 1;
+ backlog = atomic_add_return(delta, &endpoint->replenish_backlog);
/* Whenever a receive buffer transaction completes we'll try to
* replenish again. It's unlikely, but if we fail to supply even
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index 4fcfca4e1702..c10cc2cd53b6 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -189,6 +189,8 @@
#define MII_88E1510_GEN_CTRL_REG_1_MODE_RGMII_SGMII 0x4
#define MII_88E1510_GEN_CTRL_REG_1_RESET 0x8000 /* Soft reset */
+#define MII_88E1510_MSCR_2 0x15
+
#define MII_VCT5_TX_RX_MDI0_COUPLING 0x10
#define MII_VCT5_TX_RX_MDI1_COUPLING 0x11
#define MII_VCT5_TX_RX_MDI2_COUPLING 0x12
@@ -1242,6 +1244,12 @@ static int m88e1118_config_init(struct phy_device *phydev)
if (err < 0)
return err;
+ if (phy_interface_is_rgmii(phydev)) {
+ err = m88e1121_config_aneg_rgmii_delays(phydev);
+ if (err < 0)
+ return err;
+ }
+
/* Adjust LED Control */
if (phydev->dev_flags & MARVELL_PHY_M1118_DNS323_LEDS)
err = phy_write(phydev, 0x10, 0x1100);
@@ -1932,6 +1940,58 @@ static void marvell_get_stats(struct phy_device *phydev,
data[i] = marvell_get_stat(phydev, i);
}
+static int m88e1510_loopback(struct phy_device *phydev, bool enable)
+{
+ int err;
+
+ if (enable) {
+ u16 bmcr_ctl = 0, mscr2_ctl = 0;
+
+ if (phydev->speed == SPEED_1000)
+ bmcr_ctl = BMCR_SPEED1000;
+ else if (phydev->speed == SPEED_100)
+ bmcr_ctl = BMCR_SPEED100;
+
+ if (phydev->duplex == DUPLEX_FULL)
+ bmcr_ctl |= BMCR_FULLDPLX;
+
+ err = phy_write(phydev, MII_BMCR, bmcr_ctl);
+ if (err < 0)
+ return err;
+
+ if (phydev->speed == SPEED_1000)
+ mscr2_ctl = BMCR_SPEED1000;
+ else if (phydev->speed == SPEED_100)
+ mscr2_ctl = BMCR_SPEED100;
+
+ err = phy_modify_paged(phydev, MII_MARVELL_MSCR_PAGE,
+ MII_88E1510_MSCR_2, BMCR_SPEED1000 |
+ BMCR_SPEED100, mscr2_ctl);
+ if (err < 0)
+ return err;
+
+ /* Need soft reset to have speed configuration takes effect */
+ err = genphy_soft_reset(phydev);
+ if (err < 0)
+ return err;
+
+ /* FIXME: Based on trial and error test, it seem 1G need to have
+ * delay between soft reset and loopback enablement.
+ */
+ if (phydev->speed == SPEED_1000)
+ msleep(1000);
+
+ return phy_modify(phydev, MII_BMCR, BMCR_LOOPBACK,
+ BMCR_LOOPBACK);
+ } else {
+ err = phy_modify(phydev, MII_BMCR, BMCR_LOOPBACK, 0);
+ if (err < 0)
+ return err;
+
+ return phy_config_aneg(phydev);
+ }
+}
+
static int marvell_vct5_wait_complete(struct phy_device *phydev)
{
int i;
@@ -3078,7 +3138,7 @@ static struct phy_driver marvell_drivers[] = {
.get_sset_count = marvell_get_sset_count,
.get_strings = marvell_get_strings,
.get_stats = marvell_get_stats,
- .set_loopback = genphy_loopback,
+ .set_loopback = m88e1510_loopback,
.get_tunable = m88e1011_get_tunable,
.set_tunable = m88e1011_set_tunable,
.cable_test_start = marvell_vct7_cable_test_start,
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index c198722e4871..3f7b93d5c76f 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -594,7 +594,7 @@ int __mdiobus_register(struct mii_bus *bus, struct module *owner)
mdiobus_setup_mdiodev_from_board_info(bus, mdiobus_create_device);
bus->state = MDIOBUS_REGISTERED;
- pr_info("%s: probed\n", bus->name);
+ dev_dbg(&bus->dev, "probed\n");
return 0;
error:
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index 44a24b99c894..76ef4e019ca9 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -1630,8 +1630,8 @@ static struct phy_driver ksphy_driver[] = {
.config_init = kszphy_config_init,
.config_intr = kszphy_config_intr,
.handle_interrupt = kszphy_handle_interrupt,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ8021,
.phy_id_mask = 0x00ffffff,
@@ -1645,8 +1645,8 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ8031,
.phy_id_mask = 0x00ffffff,
@@ -1660,8 +1660,8 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ8041,
.phy_id_mask = MICREL_PHY_ID_MASK,
@@ -1692,8 +1692,8 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.name = "Micrel KSZ8051",
/* PHY_BASIC_FEATURES */
@@ -1706,8 +1706,8 @@ static struct phy_driver ksphy_driver[] = {
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
.match_phy_device = ksz8051_match_phy_device,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ8001,
.name = "Micrel KSZ8001 or KS8721",
@@ -1721,8 +1721,8 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ8081,
.name = "Micrel KSZ8081 or KSZ8091",
@@ -1752,8 +1752,8 @@ static struct phy_driver ksphy_driver[] = {
.config_init = ksz8061_config_init,
.config_intr = kszphy_config_intr,
.handle_interrupt = kszphy_handle_interrupt,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ9021,
.phy_id_mask = 0x000ffffe,
@@ -1768,8 +1768,8 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
.read_mmd = genphy_read_mmd_unsupported,
.write_mmd = genphy_write_mmd_unsupported,
}, {
@@ -1787,7 +1787,7 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
+ .suspend = kszphy_suspend,
.resume = kszphy_resume,
}, {
.phy_id = PHY_ID_LAN8814,
@@ -1829,7 +1829,7 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
+ .suspend = kszphy_suspend,
.resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ8873MLL,
diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c
index 2870c33b8975..271fc01f7f7f 100644
--- a/drivers/net/phy/phy-core.c
+++ b/drivers/net/phy/phy-core.c
@@ -162,11 +162,11 @@ static const struct phy_setting settings[] = {
PHY_SETTING( 2500, FULL, 2500baseT_Full ),
PHY_SETTING( 2500, FULL, 2500baseX_Full ),
/* 1G */
- PHY_SETTING( 1000, FULL, 1000baseKX_Full ),
PHY_SETTING( 1000, FULL, 1000baseT_Full ),
PHY_SETTING( 1000, HALF, 1000baseT_Half ),
PHY_SETTING( 1000, FULL, 1000baseT1_Full ),
PHY_SETTING( 1000, FULL, 1000baseX_Full ),
+ PHY_SETTING( 1000, FULL, 1000baseKX_Full ),
/* 100M */
PHY_SETTING( 100, FULL, 100baseT_Full ),
PHY_SETTING( 100, FULL, 100baseT1_Full ),
diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c
index ab77a9f439ef..4720b24ca51b 100644
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
@@ -1641,17 +1641,20 @@ static int sfp_sm_probe_for_phy(struct sfp *sfp)
static int sfp_module_parse_power(struct sfp *sfp)
{
u32 power_mW = 1000;
+ bool supports_a2;
if (sfp->id.ext.options & cpu_to_be16(SFP_OPTIONS_POWER_DECL))
power_mW = 1500;
if (sfp->id.ext.options & cpu_to_be16(SFP_OPTIONS_HIGH_POWER_LEVEL))
power_mW = 2000;
+ supports_a2 = sfp->id.ext.sff8472_compliance !=
+ SFP_SFF8472_COMPLIANCE_NONE ||
+ sfp->id.ext.diagmon & SFP_DIAGMON_DDM;
+
if (power_mW > sfp->max_power_mW) {
/* Module power specification exceeds the allowed maximum. */
- if (sfp->id.ext.sff8472_compliance ==
- SFP_SFF8472_COMPLIANCE_NONE &&
- !(sfp->id.ext.diagmon & SFP_DIAGMON_DDM)) {
+ if (!supports_a2) {
/* The module appears not to implement bus address
* 0xa2, so assume that the module powers up in the
* indicated mode.
@@ -1668,11 +1671,25 @@ static int sfp_module_parse_power(struct sfp *sfp)
}
}
+ if (power_mW <= 1000) {
+ /* Modules below 1W do not require a power change sequence */
+ sfp->module_power_mW = power_mW;
+ return 0;
+ }
+
+ if (!supports_a2) {
+ /* The module power level is below the host maximum and the
+ * module appears not to implement bus address 0xa2, so assume
+ * that the module powers up in the indicated mode.
+ */
+ return 0;
+ }
+
/* If the module requires a higher power mode, but also requires
* an address change sequence, warn the user that the module may
* not be functional.
*/
- if (sfp->id.ext.diagmon & SFP_DIAGMON_ADDRMODE && power_mW > 1000) {
+ if (sfp->id.ext.diagmon & SFP_DIAGMON_ADDRMODE) {
dev_warn(sfp->dev,
"Address Change Sequence not supported but module requires %u.%uW, module may not be functional\n",
power_mW / 1000, (power_mW / 100) % 10);
diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
index 1180a0e2445f..3ab24988198f 100644
--- a/drivers/net/ppp/ppp_generic.c
+++ b/drivers/net/ppp/ppp_generic.c
@@ -69,6 +69,8 @@
#define MPHDRLEN 6 /* multilink protocol header length */
#define MPHDRLEN_SSN 4 /* ditto with short sequence numbers */
+#define PPP_PROTO_LEN 2
+
/*
* An instance of /dev/ppp can be associated with either a ppp
* interface unit or a ppp channel. In both cases, file->private_data
@@ -497,6 +499,9 @@ static ssize_t ppp_write(struct file *file, const char __user *buf,
if (!pf)
return -ENXIO;
+ /* All PPP packets should start with the 2-byte protocol */
+ if (count < PPP_PROTO_LEN)
+ return -EINVAL;
ret = -ENOMEM;
skb = alloc_skb(count + pf->hdrlen, GFP_KERNEL);
if (!skb)
@@ -1764,7 +1769,7 @@ ppp_send_frame(struct ppp *ppp, struct sk_buff *skb)
}
++ppp->stats64.tx_packets;
- ppp->stats64.tx_bytes += skb->len - 2;
+ ppp->stats64.tx_bytes += skb->len - PPP_PROTO_LEN;
switch (proto) {
case PPP_IP:
diff --git a/drivers/net/usb/mcs7830.c b/drivers/net/usb/mcs7830.c
index 326cc4e749d8..fdda0616704e 100644
--- a/drivers/net/usb/mcs7830.c
+++ b/drivers/net/usb/mcs7830.c
@@ -108,8 +108,16 @@ static const char driver_name[] = "MOSCHIP usb-ethernet driver";
static int mcs7830_get_reg(struct usbnet *dev, u16 index, u16 size, void *data)
{
- return usbnet_read_cmd(dev, MCS7830_RD_BREQ, MCS7830_RD_BMREQ,
- 0x0000, index, data, size);
+ int ret;
+
+ ret = usbnet_read_cmd(dev, MCS7830_RD_BREQ, MCS7830_RD_BMREQ,
+ 0x0000, index, data, size);
+ if (ret < 0)
+ return ret;
+ else if (ret < size)
+ return -ENODATA;
+
+ return ret;
}
static int mcs7830_set_reg(struct usbnet *dev, u16 index, u16 size, const void *data)
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index abe0149ed917..bc1e3dd67c04 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -1962,7 +1962,8 @@ static const struct driver_info smsc95xx_info = {
.bind = smsc95xx_bind,
.unbind = smsc95xx_unbind,
.link_reset = smsc95xx_link_reset,
- .reset = smsc95xx_start_phy,
+ .reset = smsc95xx_reset,
+ .check_connect = smsc95xx_start_phy,
.stop = smsc95xx_stop,
.rx_fixup = smsc95xx_rx_fixup,
.tx_fixup = smsc95xx_tx_fixup,
diff --git a/drivers/net/wireless/ath/ar5523/ar5523.c b/drivers/net/wireless/ath/ar5523/ar5523.c
index 0e9bad33fac8..141c1b5a7b1f 100644
--- a/drivers/net/wireless/ath/ar5523/ar5523.c
+++ b/drivers/net/wireless/ath/ar5523/ar5523.c
@@ -153,6 +153,10 @@ static void ar5523_cmd_rx_cb(struct urb *urb)
ar5523_err(ar, "Invalid reply to WDCMSG_TARGET_START");
return;
}
+ if (!cmd->odata) {
+ ar5523_err(ar, "Unexpected WDCMSG_TARGET_START reply");
+ return;
+ }
memcpy(cmd->odata, hdr + 1, sizeof(u32));
cmd->olen = sizeof(u32);
cmd->res = 0;
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
index 5935e0973d14..5e3b4d10c1a9 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -89,6 +89,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = true,
.dynamic_sar_support = false,
},
@@ -124,6 +125,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = true,
.dynamic_sar_support = false,
},
@@ -160,6 +162,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -190,6 +193,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.num_wds_entries = 0x20,
.uart_pin_workaround = true,
.tx_stats_over_pktlog = false,
+ .credit_size_workaround = false,
.bmi_large_size_download = true,
.supports_peer_stats_info = true,
.dynamic_sar_support = true,
@@ -226,6 +230,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -261,6 +266,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -296,6 +302,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -334,6 +341,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = true,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.supports_peer_stats_info = true,
.dynamic_sar_support = true,
@@ -376,6 +384,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -424,6 +433,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -469,6 +479,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -504,6 +515,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -541,6 +553,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = true,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -570,6 +583,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.ast_skid_limit = 0x10,
.num_wds_entries = 0x20,
.uart_pin_workaround = true,
+ .credit_size_workaround = true,
.dynamic_sar_support = false,
},
{
@@ -611,6 +625,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -639,6 +654,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = true,
.hw_filter_reset_required = false,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = true,
},
@@ -714,6 +730,7 @@ static void ath10k_send_suspend_complete(struct ath10k *ar)
static int ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode)
{
+ bool mtu_workaround = ar->hw_params.credit_size_workaround;
int ret;
u32 param = 0;
@@ -731,7 +748,7 @@ static int ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode)
param |= HI_ACS_FLAGS_SDIO_REDUCE_TX_COMPL_SET;
- if (mode == ATH10K_FIRMWARE_MODE_NORMAL)
+ if (mode == ATH10K_FIRMWARE_MODE_NORMAL && !mtu_workaround)
param |= HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE;
else
param &= ~HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE;
diff --git a/drivers/net/wireless/ath/ath10k/htt_tx.c b/drivers/net/wireless/ath/ath10k/htt_tx.c
index d6b8bdcef416..b793eac2cfac 100644
--- a/drivers/net/wireless/ath/ath10k/htt_tx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_tx.c
@@ -147,6 +147,9 @@ void ath10k_htt_tx_dec_pending(struct ath10k_htt *htt)
htt->num_pending_tx--;
if (htt->num_pending_tx == htt->max_num_pending_tx - 1)
ath10k_mac_tx_unlock(htt->ar, ATH10K_TX_PAUSE_Q_FULL);
+
+ if (htt->num_pending_tx == 0)
+ wake_up(&htt->empty_tx_wq);
}
int ath10k_htt_tx_inc_pending(struct ath10k_htt *htt)
diff --git a/drivers/net/wireless/ath/ath10k/hw.h b/drivers/net/wireless/ath/ath10k/hw.h
index 6b03c7787e36..591ef7416b61 100644
--- a/drivers/net/wireless/ath/ath10k/hw.h
+++ b/drivers/net/wireless/ath/ath10k/hw.h
@@ -618,6 +618,9 @@ struct ath10k_hw_params {
*/
bool uart_pin_workaround;
+ /* Workaround for the credit size calculation */
+ bool credit_size_workaround;
+
/* tx stats support over pktlog */
bool tx_stats_over_pktlog;
diff --git a/drivers/net/wireless/ath/ath10k/txrx.c b/drivers/net/wireless/ath/ath10k/txrx.c
index 7c9ea0c073d8..6f8b64218894 100644
--- a/drivers/net/wireless/ath/ath10k/txrx.c
+++ b/drivers/net/wireless/ath/ath10k/txrx.c
@@ -82,8 +82,6 @@ int ath10k_txrx_tx_unref(struct ath10k_htt *htt,
flags = skb_cb->flags;
ath10k_htt_tx_free_msdu_id(htt, tx_done->msdu_id);
ath10k_htt_tx_dec_pending(htt);
- if (htt->num_pending_tx == 0)
- wake_up(&htt->empty_tx_wq);
spin_unlock_bh(&htt->tx_lock);
rcu_read_lock();
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index 7c1c2658cb5f..4733fd7fb169 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -2611,9 +2611,30 @@ int ath10k_wmi_event_mgmt_rx(struct ath10k *ar, struct sk_buff *skb)
ath10k_mac_handle_beacon(ar, skb);
if (ieee80211_is_beacon(hdr->frame_control) ||
- ieee80211_is_probe_resp(hdr->frame_control))
+ ieee80211_is_probe_resp(hdr->frame_control)) {
+ struct ieee80211_mgmt *mgmt = (void *)skb->data;
+ u8 *ies;
+ int ies_ch;
+
status->boottime_ns = ktime_get_boottime_ns();
+ if (!ar->scan_channel)
+ goto drop;
+
+ ies = mgmt->u.beacon.variable;
+
+ ies_ch = cfg80211_get_ies_channel_number(mgmt->u.beacon.variable,
+ skb_tail_pointer(skb) - ies,
+ sband->band);
+
+ if (ies_ch > 0 && ies_ch != channel) {
+ ath10k_dbg(ar, ATH10K_DBG_MGMT,
+ "channel mismatched ds channel %d scan channel %d\n",
+ ies_ch, channel);
+ goto drop;
+ }
+ }
+
ath10k_dbg(ar, ATH10K_DBG_MGMT,
"event mgmt rx skb %pK len %d ftype %02x stype %02x\n",
skb, skb->len,
@@ -2627,6 +2648,10 @@ int ath10k_wmi_event_mgmt_rx(struct ath10k *ar, struct sk_buff *skb)
ieee80211_rx_ni(ar->hw, skb);
return 0;
+
+drop:
+ dev_kfree_skb(skb);
+ return 0;
}
static int freq_to_idx(struct ath10k *ar, int freq)
diff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c
index 8c9c781afc3e..3fb0aa000825 100644
--- a/drivers/net/wireless/ath/ath11k/ahb.c
+++ b/drivers/net/wireless/ath/ath11k/ahb.c
@@ -175,8 +175,11 @@ static void __ath11k_ahb_ext_irq_disable(struct ath11k_base *ab)
ath11k_ahb_ext_grp_disable(irq_grp);
- napi_synchronize(&irq_grp->napi);
- napi_disable(&irq_grp->napi);
+ if (irq_grp->napi_enabled) {
+ napi_synchronize(&irq_grp->napi);
+ napi_disable(&irq_grp->napi);
+ irq_grp->napi_enabled = false;
+ }
}
}
@@ -206,13 +209,13 @@ static void ath11k_ahb_clearbit32(struct ath11k_base *ab, u8 bit, u32 offset)
static void ath11k_ahb_ce_irq_enable(struct ath11k_base *ab, u16 ce_id)
{
- const struct ce_pipe_config *ce_config;
+ const struct ce_attr *ce_attr;
- ce_config = &ab->hw_params.target_ce_config[ce_id];
- if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_OUT)
+ ce_attr = &ab->hw_params.host_ce_config[ce_id];
+ if (ce_attr->src_nentries)
ath11k_ahb_setbit32(ab, ce_id, CE_HOST_IE_ADDRESS);
- if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_IN) {
+ if (ce_attr->dest_nentries) {
ath11k_ahb_setbit32(ab, ce_id, CE_HOST_IE_2_ADDRESS);
ath11k_ahb_setbit32(ab, ce_id + CE_HOST_IE_3_SHIFT,
CE_HOST_IE_3_ADDRESS);
@@ -221,13 +224,13 @@ static void ath11k_ahb_ce_irq_enable(struct ath11k_base *ab, u16 ce_id)
static void ath11k_ahb_ce_irq_disable(struct ath11k_base *ab, u16 ce_id)
{
- const struct ce_pipe_config *ce_config;
+ const struct ce_attr *ce_attr;
- ce_config = &ab->hw_params.target_ce_config[ce_id];
- if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_OUT)
+ ce_attr = &ab->hw_params.host_ce_config[ce_id];
+ if (ce_attr->src_nentries)
ath11k_ahb_clearbit32(ab, ce_id, CE_HOST_IE_ADDRESS);
- if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_IN) {
+ if (ce_attr->dest_nentries) {
ath11k_ahb_clearbit32(ab, ce_id, CE_HOST_IE_2_ADDRESS);
ath11k_ahb_clearbit32(ab, ce_id + CE_HOST_IE_3_SHIFT,
CE_HOST_IE_3_ADDRESS);
@@ -300,7 +303,10 @@ static void ath11k_ahb_ext_irq_enable(struct ath11k_base *ab)
for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) {
struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i];
- napi_enable(&irq_grp->napi);
+ if (!irq_grp->napi_enabled) {
+ napi_enable(&irq_grp->napi);
+ irq_grp->napi_enabled = true;
+ }
ath11k_ahb_ext_grp_enable(irq_grp);
}
}
diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
index b5a2af3ffc3e..cb8cacbbd5b4 100644
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -82,6 +82,9 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
.fix_l1ss = true,
.max_tx_ring = DP_TCL_NUM_RING_MAX,
.hal_params = &ath11k_hw_hal_params_ipq8074,
+ .supports_dynamic_smps_6ghz = false,
+ .alloc_cacheable_memory = true,
+ .wakeup_mhi = false,
},
{
.hw_rev = ATH11K_HW_IPQ6018_HW10,
@@ -131,6 +134,9 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
.fix_l1ss = true,
.max_tx_ring = DP_TCL_NUM_RING_MAX,
.hal_params = &ath11k_hw_hal_params_ipq8074,
+ .supports_dynamic_smps_6ghz = false,
+ .alloc_cacheable_memory = true,
+ .wakeup_mhi = false,
},
{
.name = "qca6390 hw2.0",
@@ -179,6 +185,9 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
.fix_l1ss = true,
.max_tx_ring = DP_TCL_NUM_RING_MAX_QCA6390,
.hal_params = &ath11k_hw_hal_params_qca6390,
+ .supports_dynamic_smps_6ghz = false,
+ .alloc_cacheable_memory = false,
+ .wakeup_mhi = true,
},
{
.name = "qcn9074 hw1.0",
@@ -227,6 +236,9 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
.fix_l1ss = true,
.max_tx_ring = DP_TCL_NUM_RING_MAX,
.hal_params = &ath11k_hw_hal_params_ipq8074,
+ .supports_dynamic_smps_6ghz = true,
+ .alloc_cacheable_memory = true,
+ .wakeup_mhi = false,
},
{
.name = "wcn6855 hw2.0",
@@ -275,6 +287,9 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
.fix_l1ss = false,
.max_tx_ring = DP_TCL_NUM_RING_MAX_QCA6390,
.hal_params = &ath11k_hw_hal_params_qca6390,
+ .supports_dynamic_smps_6ghz = false,
+ .alloc_cacheable_memory = false,
+ .wakeup_mhi = true,
},
};
@@ -392,11 +407,26 @@ static int ath11k_core_create_board_name(struct ath11k_base *ab, char *name,
scnprintf(variant, sizeof(variant), ",variant=%s",
ab->qmi.target.bdf_ext);
- scnprintf(name, name_len,
- "bus=%s,qmi-chip-id=%d,qmi-board-id=%d%s",
- ath11k_bus_str(ab->hif.bus),
- ab->qmi.target.chip_id,
- ab->qmi.target.board_id, variant);
+ switch (ab->id.bdf_search) {
+ case ATH11K_BDF_SEARCH_BUS_AND_BOARD:
+ scnprintf(name, name_len,
+ "bus=%s,vendor=%04x,device=%04x,subsystem-vendor=%04x,subsystem-device=%04x,qmi-chip-id=%d,qmi-board-id=%d%s",
+ ath11k_bus_str(ab->hif.bus),
+ ab->id.vendor, ab->id.device,
+ ab->id.subsystem_vendor,
+ ab->id.subsystem_device,
+ ab->qmi.target.chip_id,
+ ab->qmi.target.board_id,
+ variant);
+ break;
+ default:
+ scnprintf(name, name_len,
+ "bus=%s,qmi-chip-id=%d,qmi-board-id=%d%s",
+ ath11k_bus_str(ab->hif.bus),
+ ab->qmi.target.chip_id,
+ ab->qmi.target.board_id, variant);
+ break;
+ }
ath11k_dbg(ab, ATH11K_DBG_BOOT, "boot using board name '%s'\n", name);
@@ -633,7 +663,7 @@ static int ath11k_core_fetch_board_data_api_1(struct ath11k_base *ab,
return 0;
}
-#define BOARD_NAME_SIZE 100
+#define BOARD_NAME_SIZE 200
int ath11k_core_fetch_bdf(struct ath11k_base *ab, struct ath11k_board_data *bd)
{
char boardname[BOARD_NAME_SIZE];
diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
index 31d234a51c79..011373b91ae0 100644
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -47,6 +47,11 @@ enum ath11k_supported_bw {
ATH11K_BW_160 = 3,
};
+enum ath11k_bdf_search {
+ ATH11K_BDF_SEARCH_DEFAULT,
+ ATH11K_BDF_SEARCH_BUS_AND_BOARD,
+};
+
enum wme_ac {
WME_AC_BE,
WME_AC_BK,
@@ -136,6 +141,7 @@ struct ath11k_ext_irq_grp {
u32 num_irq;
u32 grp_id;
u64 timestamp;
+ bool napi_enabled;
struct napi_struct napi;
struct net_device napi_ndev;
};
@@ -713,7 +719,6 @@ struct ath11k_base {
u32 wlan_init_status;
int irq_num[ATH11K_IRQ_NUM_MAX];
struct ath11k_ext_irq_grp ext_irq_grp[ATH11K_EXT_IRQ_GRP_NUM_MAX];
- struct napi_struct *napi;
struct ath11k_targ_cap target_caps;
u32 ext_service_bitmap[WMI_SERVICE_EXT_BM_SIZE];
bool pdevs_macaddr_valid;
@@ -759,6 +764,14 @@ struct ath11k_base {
struct completion htc_suspend;
+ struct {
+ enum ath11k_bdf_search bdf_search;
+ u32 vendor;
+ u32 device;
+ u32 subsystem_vendor;
+ u32 subsystem_device;
+ } id;
+
/* must be last */
u8 drv_priv[0] __aligned(sizeof(void *));
};
diff --git a/drivers/net/wireless/ath/ath11k/dp.c b/drivers/net/wireless/ath/ath11k/dp.c
index 8baaeeb8cf82..8058b56028de 100644
--- a/drivers/net/wireless/ath/ath11k/dp.c
+++ b/drivers/net/wireless/ath/ath11k/dp.c
@@ -101,8 +101,11 @@ void ath11k_dp_srng_cleanup(struct ath11k_base *ab, struct dp_srng *ring)
if (!ring->vaddr_unaligned)
return;
- dma_free_coherent(ab->dev, ring->size, ring->vaddr_unaligned,
- ring->paddr_unaligned);
+ if (ring->cached)
+ kfree(ring->vaddr_unaligned);
+ else
+ dma_free_coherent(ab->dev, ring->size, ring->vaddr_unaligned,
+ ring->paddr_unaligned);
ring->vaddr_unaligned = NULL;
}
@@ -222,6 +225,7 @@ int ath11k_dp_srng_setup(struct ath11k_base *ab, struct dp_srng *ring,
int entry_sz = ath11k_hal_srng_get_entrysize(ab, type);
int max_entries = ath11k_hal_srng_get_max_entries(ab, type);
int ret;
+ bool cached = false;
if (max_entries < 0 || entry_sz < 0)
return -EINVAL;
@@ -230,9 +234,28 @@ int ath11k_dp_srng_setup(struct ath11k_base *ab, struct dp_srng *ring,
num_entries = max_entries;
ring->size = (num_entries * entry_sz) + HAL_RING_BASE_ALIGN - 1;
- ring->vaddr_unaligned = dma_alloc_coherent(ab->dev, ring->size,
- &ring->paddr_unaligned,
- GFP_KERNEL);
+
+ if (ab->hw_params.alloc_cacheable_memory) {
+ /* Allocate the reo dst and tx completion rings from cacheable memory */
+ switch (type) {
+ case HAL_REO_DST:
+ cached = true;
+ break;
+ default:
+ cached = false;
+ }
+
+ if (cached) {
+ ring->vaddr_unaligned = kzalloc(ring->size, GFP_KERNEL);
+ ring->paddr_unaligned = virt_to_phys(ring->vaddr_unaligned);
+ }
+ }
+
+ if (!cached)
+ ring->vaddr_unaligned = dma_alloc_coherent(ab->dev, ring->size,
+ &ring->paddr_unaligned,
+ GFP_KERNEL);
+
if (!ring->vaddr_unaligned)
return -ENOMEM;
@@ -292,6 +315,11 @@ int ath11k_dp_srng_setup(struct ath11k_base *ab, struct dp_srng *ring,
return -EINVAL;
}
+ if (cached) {
+ params.flags |= HAL_SRNG_FLAGS_CACHED;
+ ring->cached = 1;
+ }
+
ret = ath11k_hal_srng_setup(ab, type, ring_num, mac_id, ¶ms);
if (ret < 0) {
ath11k_warn(ab, "failed to setup srng: %d ring_id %d\n",
diff --git a/drivers/net/wireless/ath/ath11k/dp.h b/drivers/net/wireless/ath/ath11k/dp.h
index 4794ca04f213..a4c36a9be338 100644
--- a/drivers/net/wireless/ath/ath11k/dp.h
+++ b/drivers/net/wireless/ath/ath11k/dp.h
@@ -64,6 +64,7 @@ struct dp_srng {
dma_addr_t paddr;
int size;
u32 ring_id;
+ u8 cached;
};
struct dp_rxdma_ring {
@@ -517,7 +518,8 @@ struct htt_ppdu_stats_cfg_cmd {
} __packed;
#define HTT_PPDU_STATS_CFG_MSG_TYPE GENMASK(7, 0)
-#define HTT_PPDU_STATS_CFG_PDEV_ID GENMASK(15, 8)
+#define HTT_PPDU_STATS_CFG_SOC_STATS BIT(8)
+#define HTT_PPDU_STATS_CFG_PDEV_ID GENMASK(15, 9)
#define HTT_PPDU_STATS_CFG_TLV_TYPE_BITMASK GENMASK(31, 16)
enum htt_ppdu_stats_tag_type {
diff --git a/drivers/net/wireless/ath/ath11k/dp_rx.c b/drivers/net/wireless/ath/ath11k/dp_rx.c
index c5320847b80a..621372c568d2 100644
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -3064,10 +3064,10 @@ int ath11k_dp_rx_process_mon_status(struct ath11k_base *ab, int mac_id,
if (!num_buffs_reaped)
goto exit;
- while ((skb = __skb_dequeue(&skb_list))) {
- memset(&ppdu_info, 0, sizeof(ppdu_info));
- ppdu_info.peer_id = HAL_INVALID_PEERID;
+ memset(&ppdu_info, 0, sizeof(ppdu_info));
+ ppdu_info.peer_id = HAL_INVALID_PEERID;
+ while ((skb = __skb_dequeue(&skb_list))) {
if (ath11k_debugfs_is_pktlog_lite_mode_enabled(ar)) {
log_type = ATH11K_PKTLOG_TYPE_LITE_RX;
rx_buf_sz = DP_RX_BUFFER_SIZE_LITE;
@@ -3095,10 +3095,7 @@ int ath11k_dp_rx_process_mon_status(struct ath11k_base *ab, int mac_id,
ath11k_dbg(ab, ATH11K_DBG_DATA,
"failed to find the peer with peer_id %d\n",
ppdu_info.peer_id);
- spin_unlock_bh(&ab->base_lock);
- rcu_read_unlock();
- dev_kfree_skb_any(skb);
- continue;
+ goto next_skb;
}
arsta = (struct ath11k_sta *)peer->sta->drv_priv;
@@ -3107,10 +3104,13 @@ int ath11k_dp_rx_process_mon_status(struct ath11k_base *ab, int mac_id,
if (ath11k_debugfs_is_pktlog_peer_valid(ar, peer->addr))
trace_ath11k_htt_rxdesc(ar, skb->data, log_type, rx_buf_sz);
+next_skb:
spin_unlock_bh(&ab->base_lock);
rcu_read_unlock();
dev_kfree_skb_any(skb);
+ memset(&ppdu_info, 0, sizeof(ppdu_info));
+ ppdu_info.peer_id = HAL_INVALID_PEERID;
}
exit:
return num_buffs_reaped;
@@ -3800,7 +3800,7 @@ int ath11k_dp_process_rx_err(struct ath11k_base *ab, struct napi_struct *napi,
ath11k_hal_rx_msdu_link_info_get(link_desc_va, &num_msdus, msdu_cookies,
&rbm);
if (rbm != HAL_RX_BUF_RBM_WBM_IDLE_DESC_LIST &&
- rbm != ab->hw_params.hal_params->rx_buf_rbm) {
+ rbm != HAL_RX_BUF_RBM_SW3_BM) {
ab->soc_stats.invalid_rbm++;
ath11k_warn(ab, "invalid return buffer manager %d\n", rbm);
ath11k_dp_rx_link_desc_return(ab, desc,
diff --git a/drivers/net/wireless/ath/ath11k/dp_tx.c b/drivers/net/wireless/ath/ath11k/dp_tx.c
index 879fb2a9dc0c..10b76f6f710b 100644
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -903,7 +903,7 @@ int ath11k_dp_tx_htt_h2t_ppdu_stats_req(struct ath11k *ar, u32 mask)
cmd->msg = FIELD_PREP(HTT_PPDU_STATS_CFG_MSG_TYPE,
HTT_H2T_MSG_TYPE_PPDU_STATS_CFG);
- pdev_mask = 1 << (i + 1);
+ pdev_mask = 1 << (ar->pdev_idx + i);
cmd->msg |= FIELD_PREP(HTT_PPDU_STATS_CFG_PDEV_ID, pdev_mask);
cmd->msg |= FIELD_PREP(HTT_PPDU_STATS_CFG_TLV_TYPE_BITMASK, mask);
diff --git a/drivers/net/wireless/ath/ath11k/hal.c b/drivers/net/wireless/ath/ath11k/hal.c
index eaa0edca5576..1832d13654a8 100644
--- a/drivers/net/wireless/ath/ath11k/hal.c
+++ b/drivers/net/wireless/ath/ath11k/hal.c
@@ -627,6 +627,21 @@ u32 *ath11k_hal_srng_dst_peek(struct ath11k_base *ab, struct hal_srng *srng)
return NULL;
}
+static void ath11k_hal_srng_prefetch_desc(struct ath11k_base *ab,
+ struct hal_srng *srng)
+{
+ u32 *desc;
+
+ /* prefetch only if desc is available */
+ desc = ath11k_hal_srng_dst_peek(ab, srng);
+ if (likely(desc)) {
+ dma_sync_single_for_cpu(ab->dev, virt_to_phys(desc),
+ (srng->entry_size * sizeof(u32)),
+ DMA_FROM_DEVICE);
+ prefetch(desc);
+ }
+}
+
u32 *ath11k_hal_srng_dst_get_next_entry(struct ath11k_base *ab,
struct hal_srng *srng)
{
@@ -642,6 +657,10 @@ u32 *ath11k_hal_srng_dst_get_next_entry(struct ath11k_base *ab,
srng->u.dst_ring.tp = (srng->u.dst_ring.tp + srng->entry_size) %
srng->ring_size;
+ /* Try to prefetch the next descriptor in the ring */
+ if (srng->flags & HAL_SRNG_FLAGS_CACHED)
+ ath11k_hal_srng_prefetch_desc(ab, srng);
+
return desc;
}
@@ -775,11 +794,16 @@ void ath11k_hal_srng_access_begin(struct ath11k_base *ab, struct hal_srng *srng)
{
lockdep_assert_held(&srng->lock);
- if (srng->ring_dir == HAL_SRNG_DIR_SRC)
+ if (srng->ring_dir == HAL_SRNG_DIR_SRC) {
srng->u.src_ring.cached_tp =
*(volatile u32 *)srng->u.src_ring.tp_addr;
- else
+ } else {
srng->u.dst_ring.cached_hp = *srng->u.dst_ring.hp_addr;
+
+ /* Try to prefetch the next descriptor in the ring */
+ if (srng->flags & HAL_SRNG_FLAGS_CACHED)
+ ath11k_hal_srng_prefetch_desc(ab, srng);
+ }
}
/* Update cached ring head/tail pointers to HW. ath11k_hal_srng_access_begin()
@@ -947,6 +971,7 @@ int ath11k_hal_srng_setup(struct ath11k_base *ab, enum hal_ring_type type,
srng->msi_data = params->msi_data;
srng->initialized = 1;
spin_lock_init(&srng->lock);
+ lockdep_set_class(&srng->lock, hal->srng_key + ring_id);
for (i = 0; i < HAL_SRNG_NUM_REG_GRP; i++) {
srng->hwreg_base[i] = srng_config->reg_start[i] +
@@ -1233,6 +1258,24 @@ static int ath11k_hal_srng_create_config(struct ath11k_base *ab)
return 0;
}
+static void ath11k_hal_register_srng_key(struct ath11k_base *ab)
+{
+ struct ath11k_hal *hal = &ab->hal;
+ u32 ring_id;
+
+ for (ring_id = 0; ring_id < HAL_SRNG_RING_ID_MAX; ring_id++)
+ lockdep_register_key(hal->srng_key + ring_id);
+}
+
+static void ath11k_hal_unregister_srng_key(struct ath11k_base *ab)
+{
+ struct ath11k_hal *hal = &ab->hal;
+ u32 ring_id;
+
+ for (ring_id = 0; ring_id < HAL_SRNG_RING_ID_MAX; ring_id++)
+ lockdep_unregister_key(hal->srng_key + ring_id);
+}
+
int ath11k_hal_srng_init(struct ath11k_base *ab)
{
struct ath11k_hal *hal = &ab->hal;
@@ -1252,6 +1295,8 @@ int ath11k_hal_srng_init(struct ath11k_base *ab)
if (ret)
goto err_free_cont_rdp;
+ ath11k_hal_register_srng_key(ab);
+
return 0;
err_free_cont_rdp:
@@ -1266,6 +1311,7 @@ void ath11k_hal_srng_deinit(struct ath11k_base *ab)
{
struct ath11k_hal *hal = &ab->hal;
+ ath11k_hal_unregister_srng_key(ab);
ath11k_hal_free_cont_rdp(ab);
ath11k_hal_free_cont_wrp(ab);
kfree(hal->srng_config);
diff --git a/drivers/net/wireless/ath/ath11k/hal.h b/drivers/net/wireless/ath/ath11k/hal.h
index 35ed3a14e200..a7d9b4c551ad 100644
--- a/drivers/net/wireless/ath/ath11k/hal.h
+++ b/drivers/net/wireless/ath/ath11k/hal.h
@@ -513,6 +513,7 @@ enum hal_srng_dir {
#define HAL_SRNG_FLAGS_DATA_TLV_SWAP 0x00000020
#define HAL_SRNG_FLAGS_LOW_THRESH_INTR_EN 0x00010000
#define HAL_SRNG_FLAGS_MSI_INTR 0x00020000
+#define HAL_SRNG_FLAGS_CACHED 0x20000000
#define HAL_SRNG_FLAGS_LMAC_RING 0x80000000
#define HAL_SRNG_TLV_HDR_TAG GENMASK(9, 1)
@@ -901,6 +902,8 @@ struct ath11k_hal {
/* shadow register configuration */
u32 shadow_reg_addr[HAL_SHADOW_NUM_REGS];
int num_shadow_reg_configured;
+
+ struct lock_class_key srng_key[HAL_SRNG_RING_ID_MAX];
};
u32 ath11k_hal_reo_qdesc_size(u32 ba_window_size, u8 tid);
diff --git a/drivers/net/wireless/ath/ath11k/hal_rx.c b/drivers/net/wireless/ath/ath11k/hal_rx.c
index 329c404cfa80..922926246db7 100644
--- a/drivers/net/wireless/ath/ath11k/hal_rx.c
+++ b/drivers/net/wireless/ath/ath11k/hal_rx.c
@@ -374,7 +374,7 @@ int ath11k_hal_wbm_desc_parse_err(struct ath11k_base *ab, void *desc,
ret_buf_mgr = FIELD_GET(BUFFER_ADDR_INFO1_RET_BUF_MGR,
wbm_desc->buf_addr_info.info1);
- if (ret_buf_mgr != ab->hw_params.hal_params->rx_buf_rbm) {
+ if (ret_buf_mgr != HAL_RX_BUF_RBM_SW3_BM) {
ab->soc_stats.invalid_rbm++;
return -EINVAL;
}
diff --git a/drivers/net/wireless/ath/ath11k/hw.c b/drivers/net/wireless/ath/ath11k/hw.c
index da35fcf5bc56..2f0b526188e4 100644
--- a/drivers/net/wireless/ath/ath11k/hw.c
+++ b/drivers/net/wireless/ath/ath11k/hw.c
@@ -1061,8 +1061,6 @@ const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_ipq8074 = {
const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_qca6390 = {
.tx = {
ATH11K_TX_RING_MASK_0,
- ATH11K_TX_RING_MASK_1,
- ATH11K_TX_RING_MASK_2,
},
.rx_mon_status = {
0, 0, 0, 0,
diff --git a/drivers/net/wireless/ath/ath11k/hw.h b/drivers/net/wireless/ath/ath11k/hw.h
index 19223d36846e..aa93f0619f93 100644
--- a/drivers/net/wireless/ath/ath11k/hw.h
+++ b/drivers/net/wireless/ath/ath11k/hw.h
@@ -176,6 +176,9 @@ struct ath11k_hw_params {
bool fix_l1ss;
u8 max_tx_ring;
const struct ath11k_hw_hal_params *hal_params;
+ bool supports_dynamic_smps_6ghz;
+ bool alloc_cacheable_memory;
+ bool wakeup_mhi;
};
struct ath11k_hw_ops {
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 1cc55602787b..a7400ade7a0c 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: BSD-3-Clause-Clear
/*
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <net/mac80211.h>
@@ -1137,11 +1138,15 @@ static int ath11k_mac_setup_bcn_tmpl(struct ath11k_vif *arvif)
if (cfg80211_find_ie(WLAN_EID_RSN, ies, (skb_tail_pointer(bcn) - ies)))
arvif->rsnie_present = true;
+ else
+ arvif->rsnie_present = false;
if (cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT,
WLAN_OUI_TYPE_MICROSOFT_WPA,
ies, (skb_tail_pointer(bcn) - ies)))
arvif->wpaie_present = true;
+ else
+ arvif->wpaie_present = false;
ret = ath11k_wmi_bcn_tmpl(ar, arvif->vdev_id, &offs, bcn);
@@ -3237,9 +3242,12 @@ static int ath11k_mac_op_hw_scan(struct ieee80211_hw *hw,
arg.scan_id = ATH11K_SCAN_ID;
if (req->ie_len) {
+ arg.extraie.ptr = kmemdup(req->ie, req->ie_len, GFP_KERNEL);
+ if (!arg.extraie.ptr) {
+ ret = -ENOMEM;
+ goto exit;
+ }
arg.extraie.len = req->ie_len;
- arg.extraie.ptr = kzalloc(req->ie_len, GFP_KERNEL);
- memcpy(arg.extraie.ptr, req->ie, req->ie_len);
}
if (req->n_ssids) {
@@ -3316,9 +3324,7 @@ static int ath11k_install_key(struct ath11k_vif *arvif,
return 0;
if (cmd == DISABLE_KEY) {
- /* TODO: Check if FW expects value other than NONE for del */
- /* arg.key_cipher = WMI_CIPHER_NONE; */
- arg.key_len = 0;
+ arg.key_cipher = WMI_CIPHER_NONE;
arg.key_data = NULL;
goto install;
}
@@ -3450,7 +3456,7 @@ static int ath11k_mac_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
/* flush the fragments cache during key (re)install to
* ensure all frags in the new frag list belong to the same key.
*/
- if (peer && cmd == SET_KEY)
+ if (peer && sta && cmd == SET_KEY)
ath11k_peer_frags_flush(ar, peer);
spin_unlock_bh(&ab->base_lock);
@@ -4561,6 +4567,10 @@ ath11k_create_vht_cap(struct ath11k *ar, u32 rate_cap_tx_chainmask,
vht_cap.vht_supported = 1;
vht_cap.cap = ar->pdev->cap.vht_cap;
+ if (ar->pdev->cap.nss_ratio_enabled)
+ vht_cap.vht_mcs.tx_highest |=
+ cpu_to_le16(IEEE80211_VHT_EXT_NSS_BW_CAPABLE);
+
ath11k_set_vht_txbf_cap(ar, &vht_cap.cap);
rxmcs_map = 0;
@@ -4926,23 +4936,32 @@ static int __ath11k_set_antenna(struct ath11k *ar, u32 tx_ant, u32 rx_ant)
return 0;
}
-int ath11k_mac_tx_mgmt_pending_free(int buf_id, void *skb, void *ctx)
+static void ath11k_mac_tx_mgmt_free(struct ath11k *ar, int buf_id)
{
- struct sk_buff *msdu = skb;
+ struct sk_buff *msdu;
struct ieee80211_tx_info *info;
- struct ath11k *ar = ctx;
- struct ath11k_base *ab = ar->ab;
spin_lock_bh(&ar->txmgmt_idr_lock);
- idr_remove(&ar->txmgmt_idr, buf_id);
+ msdu = idr_remove(&ar->txmgmt_idr, buf_id);
spin_unlock_bh(&ar->txmgmt_idr_lock);
- dma_unmap_single(ab->dev, ATH11K_SKB_CB(msdu)->paddr, msdu->len,
+
+ if (!msdu)
+ return;
+
+ dma_unmap_single(ar->ab->dev, ATH11K_SKB_CB(msdu)->paddr, msdu->len,
DMA_TO_DEVICE);
info = IEEE80211_SKB_CB(msdu);
memset(&info->status, 0, sizeof(info->status));
ieee80211_free_txskb(ar->hw, msdu);
+}
+
+int ath11k_mac_tx_mgmt_pending_free(int buf_id, void *skb, void *ctx)
+{
+ struct ath11k *ar = ctx;
+
+ ath11k_mac_tx_mgmt_free(ar, buf_id);
return 0;
}
@@ -4951,17 +4970,10 @@ static int ath11k_mac_vif_txmgmt_idr_remove(int buf_id, void *skb, void *ctx)
{
struct ieee80211_vif *vif = ctx;
struct ath11k_skb_cb *skb_cb = ATH11K_SKB_CB((struct sk_buff *)skb);
- struct sk_buff *msdu = skb;
struct ath11k *ar = skb_cb->ar;
- struct ath11k_base *ab = ar->ab;
- if (skb_cb->vif == vif) {
- spin_lock_bh(&ar->txmgmt_idr_lock);
- idr_remove(&ar->txmgmt_idr, buf_id);
- spin_unlock_bh(&ar->txmgmt_idr_lock);
- dma_unmap_single(ab->dev, skb_cb->paddr, msdu->len,
- DMA_TO_DEVICE);
- }
+ if (skb_cb->vif == vif)
+ ath11k_mac_tx_mgmt_free(ar, buf_id);
return 0;
}
@@ -4976,6 +4988,8 @@ static int ath11k_mac_mgmt_tx_wmi(struct ath11k *ar, struct ath11k_vif *arvif,
int buf_id;
int ret;
+ ATH11K_SKB_CB(skb)->ar = ar;
+
spin_lock_bh(&ar->txmgmt_idr_lock);
buf_id = idr_alloc(&ar->txmgmt_idr, skb, 0,
ATH11K_TX_MGMT_NUM_PENDING_MAX, GFP_ATOMIC);
@@ -7672,7 +7686,8 @@ static int __ath11k_mac_register(struct ath11k *ar)
* for each band for a dual band capable radio. It will be tricky to
* handle it when the ht capability different for each band.
*/
- if (ht_cap & WMI_HT_CAP_DYNAMIC_SMPS || ar->supports_6ghz)
+ if (ht_cap & WMI_HT_CAP_DYNAMIC_SMPS ||
+ (ar->supports_6ghz && ab->hw_params.supports_dynamic_smps_6ghz))
ar->hw->wiphy->features |= NL80211_FEATURE_DYNAMIC_SMPS;
ar->hw->wiphy->max_scan_ssids = WLAN_SCAN_PARAMS_MAX_SSID;
diff --git a/drivers/net/wireless/ath/ath11k/pci.c b/drivers/net/wireless/ath/ath11k/pci.c
index 3d353e7c9d5c..4c348bacf2cb 100644
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -182,7 +182,8 @@ void ath11k_pci_write32(struct ath11k_base *ab, u32 offset, u32 value)
/* for offset beyond BAR + 4K - 32, may
* need to wakeup MHI to access.
*/
- if (test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) &&
+ if (ab->hw_params.wakeup_mhi &&
+ test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) &&
offset >= ACCESS_ALWAYS_OFF)
mhi_device_get_sync(ab_pci->mhi_ctrl->mhi_dev);
@@ -206,7 +207,8 @@ void ath11k_pci_write32(struct ath11k_base *ab, u32 offset, u32 value)
}
}
- if (test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) &&
+ if (ab->hw_params.wakeup_mhi &&
+ test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) &&
offset >= ACCESS_ALWAYS_OFF)
mhi_device_put(ab_pci->mhi_ctrl->mhi_dev);
}
@@ -219,7 +221,8 @@ u32 ath11k_pci_read32(struct ath11k_base *ab, u32 offset)
/* for offset beyond BAR + 4K - 32, may
* need to wakeup MHI to access.
*/
- if (test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) &&
+ if (ab->hw_params.wakeup_mhi &&
+ test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) &&
offset >= ACCESS_ALWAYS_OFF)
mhi_device_get_sync(ab_pci->mhi_ctrl->mhi_dev);
@@ -243,7 +246,8 @@ u32 ath11k_pci_read32(struct ath11k_base *ab, u32 offset)
}
}
- if (test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) &&
+ if (ab->hw_params.wakeup_mhi &&
+ test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) &&
offset >= ACCESS_ALWAYS_OFF)
mhi_device_put(ab_pci->mhi_ctrl->mhi_dev);
@@ -634,8 +638,11 @@ static void __ath11k_pci_ext_irq_disable(struct ath11k_base *sc)
ath11k_pci_ext_grp_disable(irq_grp);
- napi_synchronize(&irq_grp->napi);
- napi_disable(&irq_grp->napi);
+ if (irq_grp->napi_enabled) {
+ napi_synchronize(&irq_grp->napi);
+ napi_disable(&irq_grp->napi);
+ irq_grp->napi_enabled = false;
+ }
}
}
@@ -654,7 +661,10 @@ static void ath11k_pci_ext_irq_enable(struct ath11k_base *ab)
for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) {
struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i];
- napi_enable(&irq_grp->napi);
+ if (!irq_grp->napi_enabled) {
+ napi_enable(&irq_grp->napi);
+ irq_grp->napi_enabled = true;
+ }
ath11k_pci_ext_grp_enable(irq_grp);
}
}
@@ -1251,6 +1261,15 @@ static int ath11k_pci_probe(struct pci_dev *pdev,
goto err_free_core;
}
+ ath11k_dbg(ab, ATH11K_DBG_BOOT, "pci probe %04x:%04x %04x:%04x\n",
+ pdev->vendor, pdev->device,
+ pdev->subsystem_vendor, pdev->subsystem_device);
+
+ ab->id.vendor = pdev->vendor;
+ ab->id.device = pdev->device;
+ ab->id.subsystem_vendor = pdev->subsystem_vendor;
+ ab->id.subsystem_device = pdev->subsystem_device;
+
switch (pci_dev->device) {
case QCA6390_DEVICE_ID:
ath11k_pci_read_hw_version(ab, &soc_hw_version_major,
@@ -1273,6 +1292,7 @@ static int ath11k_pci_probe(struct pci_dev *pdev,
ab->hw_rev = ATH11K_HW_QCN9074_HW10;
break;
case WCN6855_DEVICE_ID:
+ ab->id.bdf_search = ATH11K_BDF_SEARCH_BUS_AND_BOARD;
ath11k_pci_read_hw_version(ab, &soc_hw_version_major,
&soc_hw_version_minor);
switch (soc_hw_version_major) {
diff --git a/drivers/net/wireless/ath/ath11k/qmi.h b/drivers/net/wireless/ath/ath11k/qmi.h
index 3bb0f9ef7996..d9e95b700765 100644
--- a/drivers/net/wireless/ath/ath11k/qmi.h
+++ b/drivers/net/wireless/ath/ath11k/qmi.h
@@ -41,7 +41,7 @@ struct ath11k_base;
enum ath11k_qmi_file_type {
ATH11K_QMI_FILE_TYPE_BDF_GOLDEN,
- ATH11K_QMI_FILE_TYPE_CALDATA,
+ ATH11K_QMI_FILE_TYPE_CALDATA = 2,
ATH11K_QMI_FILE_TYPE_EEPROM,
ATH11K_QMI_MAX_FILE_TYPE,
};
diff --git a/drivers/net/wireless/ath/ath11k/reg.c b/drivers/net/wireless/ath/ath11k/reg.c
index a66b5bdd2167..8606170ba80d 100644
--- a/drivers/net/wireless/ath/ath11k/reg.c
+++ b/drivers/net/wireless/ath/ath11k/reg.c
@@ -456,6 +456,9 @@ ath11k_reg_adjust_bw(u16 start_freq, u16 end_freq, u16 max_bw)
{
u16 bw;
+ if (end_freq <= start_freq)
+ return 0;
+
bw = end_freq - start_freq;
bw = min_t(u16, bw, max_bw);
@@ -463,8 +466,10 @@ ath11k_reg_adjust_bw(u16 start_freq, u16 end_freq, u16 max_bw)
bw = 80;
else if (bw >= 40 && bw < 80)
bw = 40;
- else if (bw < 40)
+ else if (bw >= 20 && bw < 40)
bw = 20;
+ else
+ bw = 0;
return bw;
}
@@ -488,73 +493,77 @@ ath11k_reg_update_weather_radar_band(struct ath11k_base *ab,
struct cur_reg_rule *reg_rule,
u8 *rule_idx, u32 flags, u16 max_bw)
{
+ u32 start_freq;
u32 end_freq;
u16 bw;
u8 i;
i = *rule_idx;
+ /* there might be situations when even the input rule must be dropped */
+ i--;
+
+ /* frequencies below weather radar */
bw = ath11k_reg_adjust_bw(reg_rule->start_freq,
ETSI_WEATHER_RADAR_BAND_LOW, max_bw);
+ if (bw > 0) {
+ i++;
- ath11k_reg_update_rule(regd->reg_rules + i, reg_rule->start_freq,
- ETSI_WEATHER_RADAR_BAND_LOW, bw,
- reg_rule->ant_gain, reg_rule->reg_power,
- flags);
+ ath11k_reg_update_rule(regd->reg_rules + i,
+ reg_rule->start_freq,
+ ETSI_WEATHER_RADAR_BAND_LOW, bw,
+ reg_rule->ant_gain, reg_rule->reg_power,
+ flags);
- ath11k_dbg(ab, ATH11K_DBG_REG,
- "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
- i + 1, reg_rule->start_freq, ETSI_WEATHER_RADAR_BAND_LOW,
- bw, reg_rule->ant_gain, reg_rule->reg_power,
- regd->reg_rules[i].dfs_cac_ms,
- flags);
-
- if (reg_rule->end_freq > ETSI_WEATHER_RADAR_BAND_HIGH)
- end_freq = ETSI_WEATHER_RADAR_BAND_HIGH;
- else
- end_freq = reg_rule->end_freq;
+ ath11k_dbg(ab, ATH11K_DBG_REG,
+ "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
+ i + 1, reg_rule->start_freq,
+ ETSI_WEATHER_RADAR_BAND_LOW, bw, reg_rule->ant_gain,
+ reg_rule->reg_power, regd->reg_rules[i].dfs_cac_ms,
+ flags);
+ }
- bw = ath11k_reg_adjust_bw(ETSI_WEATHER_RADAR_BAND_LOW, end_freq,
- max_bw);
+ /* weather radar frequencies */
+ start_freq = max_t(u32, reg_rule->start_freq,
+ ETSI_WEATHER_RADAR_BAND_LOW);
+ end_freq = min_t(u32, reg_rule->end_freq, ETSI_WEATHER_RADAR_BAND_HIGH);
- i++;
+ bw = ath11k_reg_adjust_bw(start_freq, end_freq, max_bw);
+ if (bw > 0) {
+ i++;
- ath11k_reg_update_rule(regd->reg_rules + i,
- ETSI_WEATHER_RADAR_BAND_LOW, end_freq, bw,
- reg_rule->ant_gain, reg_rule->reg_power,
- flags);
+ ath11k_reg_update_rule(regd->reg_rules + i, start_freq,
+ end_freq, bw, reg_rule->ant_gain,
+ reg_rule->reg_power, flags);
- regd->reg_rules[i].dfs_cac_ms = ETSI_WEATHER_RADAR_BAND_CAC_TIMEOUT;
+ regd->reg_rules[i].dfs_cac_ms = ETSI_WEATHER_RADAR_BAND_CAC_TIMEOUT;
- ath11k_dbg(ab, ATH11K_DBG_REG,
- "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
- i + 1, ETSI_WEATHER_RADAR_BAND_LOW, end_freq,
- bw, reg_rule->ant_gain, reg_rule->reg_power,
- regd->reg_rules[i].dfs_cac_ms,
- flags);
-
- if (end_freq == reg_rule->end_freq) {
- regd->n_reg_rules--;
- *rule_idx = i;
- return;
+ ath11k_dbg(ab, ATH11K_DBG_REG,
+ "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
+ i + 1, start_freq, end_freq, bw,
+ reg_rule->ant_gain, reg_rule->reg_power,
+ regd->reg_rules[i].dfs_cac_ms, flags);
}
+ /* frequencies above weather radar */
bw = ath11k_reg_adjust_bw(ETSI_WEATHER_RADAR_BAND_HIGH,
reg_rule->end_freq, max_bw);
+ if (bw > 0) {
+ i++;
- i++;
-
- ath11k_reg_update_rule(regd->reg_rules + i, ETSI_WEATHER_RADAR_BAND_HIGH,
- reg_rule->end_freq, bw,
- reg_rule->ant_gain, reg_rule->reg_power,
- flags);
+ ath11k_reg_update_rule(regd->reg_rules + i,
+ ETSI_WEATHER_RADAR_BAND_HIGH,
+ reg_rule->end_freq, bw,
+ reg_rule->ant_gain, reg_rule->reg_power,
+ flags);
- ath11k_dbg(ab, ATH11K_DBG_REG,
- "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
- i + 1, ETSI_WEATHER_RADAR_BAND_HIGH, reg_rule->end_freq,
- bw, reg_rule->ant_gain, reg_rule->reg_power,
- regd->reg_rules[i].dfs_cac_ms,
- flags);
+ ath11k_dbg(ab, ATH11K_DBG_REG,
+ "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
+ i + 1, ETSI_WEATHER_RADAR_BAND_HIGH,
+ reg_rule->end_freq, bw, reg_rule->ant_gain,
+ reg_rule->reg_power, regd->reg_rules[i].dfs_cac_ms,
+ flags);
+ }
*rule_idx = i;
}
diff --git a/drivers/net/wireless/ath/ath11k/wmi.c b/drivers/net/wireless/ath/ath11k/wmi.c
index 04238c29419b..c3699bd0452c 100644
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -1689,7 +1689,8 @@ int ath11k_wmi_vdev_install_key(struct ath11k *ar,
tlv = (struct wmi_tlv *)(skb->data + sizeof(*cmd));
tlv->header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_ARRAY_BYTE) |
FIELD_PREP(WMI_TLV_LEN, key_len_aligned);
- memcpy(tlv->value, (u8 *)arg->key_data, key_len_aligned);
+ if (arg->key_data)
+ memcpy(tlv->value, (u8 *)arg->key_data, key_len_aligned);
ret = ath11k_wmi_cmd_send(wmi, skb, WMI_VDEV_INSTALL_KEY_CMDID);
if (ret) {
@@ -5911,7 +5912,7 @@ static int ath11k_reg_chan_list_event(struct ath11k_base *ab, struct sk_buff *sk
ar = ab->pdevs[pdev_idx].ar;
kfree(ab->new_regd[pdev_idx]);
ab->new_regd[pdev_idx] = regd;
- ieee80211_queue_work(ar->hw, &ar->regd_update_work);
+ queue_work(ab->workqueue, &ar->regd_update_work);
} else {
/* This regd would be applied during mac registration and is
* held constant throughout for regd intersection purpose
diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
index 860da13bfb6a..f06eec99de68 100644
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
@@ -590,6 +590,13 @@ static void ath9k_hif_usb_rx_stream(struct hif_device_usb *hif_dev,
return;
}
+ if (pkt_len > 2 * MAX_RX_BUF_SIZE) {
+ dev_err(&hif_dev->udev->dev,
+ "ath9k_htc: invalid pkt_len (%x)\n", pkt_len);
+ RX_STAT_INC(skb_dropped);
+ return;
+ }
+
pad_len = 4 - (pkt_len & 0x3);
if (pad_len == 4)
pad_len = 0;
diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h
index 0a1634238e67..6b45e63fae4b 100644
--- a/drivers/net/wireless/ath/ath9k/htc.h
+++ b/drivers/net/wireless/ath/ath9k/htc.h
@@ -281,6 +281,7 @@ struct ath9k_htc_rxbuf {
struct ath9k_htc_rx {
struct list_head rxbuf;
spinlock_t rxbuflock;
+ bool initialized;
};
#define ATH9K_HTC_TX_CLEANUP_INTERVAL 50 /* ms */
@@ -305,6 +306,7 @@ struct ath9k_htc_tx {
DECLARE_BITMAP(tx_slot, MAX_TX_BUF_NUM);
struct timer_list cleanup_timer;
spinlock_t tx_lock;
+ bool initialized;
};
struct ath9k_htc_tx_ctl {
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
index 8e69e8989f6d..6a850a0bfa8a 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
@@ -813,6 +813,11 @@ int ath9k_tx_init(struct ath9k_htc_priv *priv)
skb_queue_head_init(&priv->tx.data_vi_queue);
skb_queue_head_init(&priv->tx.data_vo_queue);
skb_queue_head_init(&priv->tx.tx_failed);
+
+ /* Allow ath9k_wmi_event_tasklet(WMI_TXSTATUS_EVENTID) to operate. */
+ smp_wmb();
+ priv->tx.initialized = true;
+
return 0;
}
@@ -1130,6 +1135,10 @@ void ath9k_htc_rxep(void *drv_priv, struct sk_buff *skb,
struct ath9k_htc_rxbuf *rxbuf = NULL, *tmp_buf = NULL;
unsigned long flags;
+ /* Check if ath9k_rx_init() completed. */
+ if (!data_race(priv->rx.initialized))
+ goto err;
+
spin_lock_irqsave(&priv->rx.rxbuflock, flags);
list_for_each_entry(tmp_buf, &priv->rx.rxbuf, list) {
if (!tmp_buf->in_process) {
@@ -1185,6 +1194,10 @@ int ath9k_rx_init(struct ath9k_htc_priv *priv)
list_add_tail(&rxbuf->list, &priv->rx.rxbuf);
}
+ /* Allow ath9k_htc_rxep() to operate. */
+ smp_wmb();
+ priv->rx.initialized = true;
+
return 0;
err:
diff --git a/drivers/net/wireless/ath/ath9k/wmi.c b/drivers/net/wireless/ath/ath9k/wmi.c
index fe29ad4b9023..f315c54bd3ac 100644
--- a/drivers/net/wireless/ath/ath9k/wmi.c
+++ b/drivers/net/wireless/ath/ath9k/wmi.c
@@ -169,6 +169,10 @@ void ath9k_wmi_event_tasklet(struct tasklet_struct *t)
&wmi->drv_priv->fatal_work);
break;
case WMI_TXSTATUS_EVENTID:
+ /* Check if ath9k_tx_init() completed. */
+ if (!data_race(priv->tx.initialized))
+ break;
+
spin_lock_bh(&priv->tx.tx_lock);
if (priv->tx.flags & ATH9K_HTC_OP_TX_DRAIN) {
spin_unlock_bh(&priv->tx.tx_lock);
diff --git a/drivers/net/wireless/ath/wcn36xx/dxe.c b/drivers/net/wireless/ath/wcn36xx/dxe.c
index aff04ef66266..e1a35c2eadb6 100644
--- a/drivers/net/wireless/ath/wcn36xx/dxe.c
+++ b/drivers/net/wireless/ath/wcn36xx/dxe.c
@@ -272,6 +272,21 @@ static int wcn36xx_dxe_enable_ch_int(struct wcn36xx *wcn, u16 wcn_ch)
return 0;
}
+static void wcn36xx_dxe_disable_ch_int(struct wcn36xx *wcn, u16 wcn_ch)
+{
+ int reg_data = 0;
+
+ wcn36xx_dxe_read_register(wcn,
+ WCN36XX_DXE_INT_MASK_REG,
+ ®_data);
+
+ reg_data &= ~wcn_ch;
+
+ wcn36xx_dxe_write_register(wcn,
+ WCN36XX_DXE_INT_MASK_REG,
+ (int)reg_data);
+}
+
static int wcn36xx_dxe_fill_skb(struct device *dev,
struct wcn36xx_dxe_ctl *ctl,
gfp_t gfp)
@@ -869,7 +884,6 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
WCN36XX_DXE_WQ_TX_L);
wcn36xx_dxe_read_register(wcn, WCN36XX_DXE_REG_CH_EN, ®_data);
- wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_L);
/***************************************/
/* Init descriptors for TX HIGH channel */
@@ -893,9 +907,6 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
wcn36xx_dxe_read_register(wcn, WCN36XX_DXE_REG_CH_EN, ®_data);
- /* Enable channel interrupts */
- wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_H);
-
/***************************************/
/* Init descriptors for RX LOW channel */
/***************************************/
@@ -905,7 +916,6 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
goto out_err_rxl_ch;
}
-
/* For RX we need to preallocated buffers */
wcn36xx_dxe_ch_alloc_skb(wcn, &wcn->dxe_rx_l_ch);
@@ -928,9 +938,6 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
WCN36XX_DXE_REG_CTL_RX_L,
WCN36XX_DXE_CH_DEFAULT_CTL_RX_L);
- /* Enable channel interrupts */
- wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_L);
-
/***************************************/
/* Init descriptors for RX HIGH channel */
/***************************************/
@@ -962,15 +969,18 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
WCN36XX_DXE_REG_CTL_RX_H,
WCN36XX_DXE_CH_DEFAULT_CTL_RX_H);
- /* Enable channel interrupts */
- wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_H);
-
ret = wcn36xx_dxe_request_irqs(wcn);
if (ret < 0)
goto out_err_irq;
timer_setup(&wcn->tx_ack_timer, wcn36xx_dxe_tx_timer, 0);
+ /* Enable channel interrupts */
+ wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_L);
+ wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_H);
+ wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_L);
+ wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_H);
+
return 0;
out_err_irq:
@@ -987,6 +997,14 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
void wcn36xx_dxe_deinit(struct wcn36xx *wcn)
{
+ int reg_data = 0;
+
+ /* Disable channel interrupts */
+ wcn36xx_dxe_disable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_H);
+ wcn36xx_dxe_disable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_L);
+ wcn36xx_dxe_disable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_H);
+ wcn36xx_dxe_disable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_L);
+
free_irq(wcn->tx_irq, wcn);
free_irq(wcn->rx_irq, wcn);
del_timer(&wcn->tx_ack_timer);
@@ -996,6 +1014,15 @@ void wcn36xx_dxe_deinit(struct wcn36xx *wcn)
wcn->tx_ack_skb = NULL;
}
+ /* Put the DXE block into reset before freeing memory */
+ reg_data = WCN36XX_DXE_REG_RESET;
+ wcn36xx_dxe_write_register(wcn, WCN36XX_DXE_REG_CSR_RESET, reg_data);
+
wcn36xx_dxe_ch_free_skbs(wcn, &wcn->dxe_rx_l_ch);
wcn36xx_dxe_ch_free_skbs(wcn, &wcn->dxe_rx_h_ch);
+
+ wcn36xx_dxe_deinit_descs(wcn->dev, &wcn->dxe_tx_l_ch);
+ wcn36xx_dxe_deinit_descs(wcn->dev, &wcn->dxe_tx_h_ch);
+ wcn36xx_dxe_deinit_descs(wcn->dev, &wcn->dxe_rx_l_ch);
+ wcn36xx_dxe_deinit_descs(wcn->dev, &wcn->dxe_rx_h_ch);
}
diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index b04533bbc3a4..0747c27f3bd7 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -402,6 +402,7 @@ static void wcn36xx_change_opchannel(struct wcn36xx *wcn, int ch)
static int wcn36xx_config(struct ieee80211_hw *hw, u32 changed)
{
struct wcn36xx *wcn = hw->priv;
+ int ret;
wcn36xx_dbg(WCN36XX_DBG_MAC, "mac config changed 0x%08x\n", changed);
@@ -417,17 +418,31 @@ static int wcn36xx_config(struct ieee80211_hw *hw, u32 changed)
* want to receive/transmit regular data packets, then
* simply stop the scan session and exit PS mode.
*/
- wcn36xx_smd_finish_scan(wcn, HAL_SYS_MODE_SCAN,
- wcn->sw_scan_vif);
- wcn->sw_scan_channel = 0;
+ if (wcn->sw_scan_channel)
+ wcn36xx_smd_end_scan(wcn, wcn->sw_scan_channel);
+ if (wcn->sw_scan_init) {
+ wcn36xx_smd_finish_scan(wcn, HAL_SYS_MODE_SCAN,
+ wcn->sw_scan_vif);
+ }
} else if (wcn->sw_scan) {
/* A scan is ongoing, do not change the operating
* channel, but start a scan session on the channel.
*/
- wcn36xx_smd_init_scan(wcn, HAL_SYS_MODE_SCAN,
- wcn->sw_scan_vif);
+ if (wcn->sw_scan_channel)
+ wcn36xx_smd_end_scan(wcn, wcn->sw_scan_channel);
+ if (!wcn->sw_scan_init) {
+ /* This can fail if we are unable to notify the
+ * operating channel.
+ */
+ ret = wcn36xx_smd_init_scan(wcn,
+ HAL_SYS_MODE_SCAN,
+ wcn->sw_scan_vif);
+ if (ret) {
+ mutex_unlock(&wcn->conf_mutex);
+ return -EIO;
+ }
+ }
wcn36xx_smd_start_scan(wcn, ch);
- wcn->sw_scan_channel = ch;
} else {
wcn36xx_change_opchannel(wcn, ch);
}
@@ -722,7 +737,12 @@ static void wcn36xx_sw_scan_complete(struct ieee80211_hw *hw,
struct wcn36xx *wcn = hw->priv;
/* ensure that any scan session is finished */
- wcn36xx_smd_finish_scan(wcn, HAL_SYS_MODE_SCAN, wcn->sw_scan_vif);
+ if (wcn->sw_scan_channel)
+ wcn36xx_smd_end_scan(wcn, wcn->sw_scan_channel);
+ if (wcn->sw_scan_init) {
+ wcn36xx_smd_finish_scan(wcn, HAL_SYS_MODE_SCAN,
+ wcn->sw_scan_vif);
+ }
wcn->sw_scan = false;
wcn->sw_scan_opchannel = 0;
}
diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index ed45e2cf039b..bb0774014945 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -722,6 +722,7 @@ int wcn36xx_smd_init_scan(struct wcn36xx *wcn, enum wcn36xx_hal_sys_mode mode,
wcn36xx_err("hal_init_scan response failed err=%d\n", ret);
goto out;
}
+ wcn->sw_scan_init = true;
out:
mutex_unlock(&wcn->hal_mutex);
return ret;
@@ -752,6 +753,7 @@ int wcn36xx_smd_start_scan(struct wcn36xx *wcn, u8 scan_channel)
wcn36xx_err("hal_start_scan response failed err=%d\n", ret);
goto out;
}
+ wcn->sw_scan_channel = scan_channel;
out:
mutex_unlock(&wcn->hal_mutex);
return ret;
@@ -782,6 +784,7 @@ int wcn36xx_smd_end_scan(struct wcn36xx *wcn, u8 scan_channel)
wcn36xx_err("hal_end_scan response failed err=%d\n", ret);
goto out;
}
+ wcn->sw_scan_channel = 0;
out:
mutex_unlock(&wcn->hal_mutex);
return ret;
@@ -823,6 +826,7 @@ int wcn36xx_smd_finish_scan(struct wcn36xx *wcn,
wcn36xx_err("hal_finish_scan response failed err=%d\n", ret);
goto out;
}
+ wcn->sw_scan_init = false;
out:
mutex_unlock(&wcn->hal_mutex);
return ret;
@@ -940,7 +944,7 @@ int wcn36xx_smd_update_channel_list(struct wcn36xx *wcn, struct cfg80211_scan_re
INIT_HAL_MSG((*msg_body), WCN36XX_HAL_UPDATE_CHANNEL_LIST_REQ);
- msg_body->num_channel = min_t(u8, req->n_channels, sizeof(msg_body->channels));
+ msg_body->num_channel = min_t(u8, req->n_channels, ARRAY_SIZE(msg_body->channels));
for (i = 0; i < msg_body->num_channel; i++) {
struct wcn36xx_hal_channel_param *param = &msg_body->channels[i];
u32 min_power = WCN36XX_HAL_DEFAULT_MIN_POWER;
@@ -2732,7 +2736,7 @@ static int wcn36xx_smd_missed_beacon_ind(struct wcn36xx *wcn,
wcn36xx_dbg(WCN36XX_DBG_HAL, "beacon missed bss_index %d\n",
tmp->bss_index);
vif = wcn36xx_priv_to_vif(tmp);
- ieee80211_connection_loss(vif);
+ ieee80211_beacon_loss(vif);
}
return 0;
}
@@ -2747,7 +2751,7 @@ static int wcn36xx_smd_missed_beacon_ind(struct wcn36xx *wcn,
wcn36xx_dbg(WCN36XX_DBG_HAL, "beacon missed bss_index %d\n",
rsp->bss_index);
vif = wcn36xx_priv_to_vif(tmp);
- ieee80211_connection_loss(vif);
+ ieee80211_beacon_loss(vif);
return 0;
}
}
diff --git a/drivers/net/wireless/ath/wcn36xx/txrx.c b/drivers/net/wireless/ath/wcn36xx/txrx.c
index 75951ccbc840..dd58dde8c836 100644
--- a/drivers/net/wireless/ath/wcn36xx/txrx.c
+++ b/drivers/net/wireless/ath/wcn36xx/txrx.c
@@ -272,7 +272,6 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
const struct wcn36xx_rate *rate;
struct ieee80211_hdr *hdr;
struct wcn36xx_rx_bd *bd;
- struct ieee80211_supported_band *sband;
u16 fc, sn;
/*
@@ -314,8 +313,6 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
fc = __le16_to_cpu(hdr->frame_control);
sn = IEEE80211_SEQ_TO_SN(__le16_to_cpu(hdr->seq_ctrl));
- status.freq = WCN36XX_CENTER_FREQ(wcn);
- status.band = WCN36XX_BAND(wcn);
status.mactime = 10;
status.signal = -get_rssi0(bd);
status.antenna = 1;
@@ -327,18 +324,36 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
wcn36xx_dbg(WCN36XX_DBG_RX, "status.flags=%x\n", status.flag);
+ if (bd->scan_learn) {
+ /* If packet originate from hardware scanning, extract the
+ * band/channel from bd descriptor.
+ */
+ u8 hwch = (bd->reserved0 << 4) + bd->rx_ch;
+
+ if (bd->rf_band != 1 && hwch <= sizeof(ab_rx_ch_map) && hwch >= 1) {
+ status.band = NL80211_BAND_5GHZ;
+ status.freq = ieee80211_channel_to_frequency(ab_rx_ch_map[hwch - 1],
+ status.band);
+ } else {
+ status.band = NL80211_BAND_2GHZ;
+ status.freq = ieee80211_channel_to_frequency(hwch, status.band);
+ }
+ } else {
+ status.band = WCN36XX_BAND(wcn);
+ status.freq = WCN36XX_CENTER_FREQ(wcn);
+ }
+
if (bd->rate_id < ARRAY_SIZE(wcn36xx_rate_table)) {
rate = &wcn36xx_rate_table[bd->rate_id];
status.encoding = rate->encoding;
status.enc_flags = rate->encoding_flags;
status.bw = rate->bw;
status.rate_idx = rate->mcs_or_legacy_index;
- sband = wcn->hw->wiphy->bands[status.band];
status.nss = 1;
if (status.band == NL80211_BAND_5GHZ &&
status.encoding == RX_ENC_LEGACY &&
- status.rate_idx >= sband->n_bitrates) {
+ status.rate_idx >= 4) {
/* no dsss rates in 5Ghz rates table */
status.rate_idx -= 4;
}
@@ -353,22 +368,6 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
ieee80211_is_probe_resp(hdr->frame_control))
status.boottime_ns = ktime_get_boottime_ns();
- if (bd->scan_learn) {
- /* If packet originates from hardware scanning, extract the
- * band/channel from bd descriptor.
- */
- u8 hwch = (bd->reserved0 << 4) + bd->rx_ch;
-
- if (bd->rf_band != 1 && hwch <= sizeof(ab_rx_ch_map) && hwch >= 1) {
- status.band = NL80211_BAND_5GHZ;
- status.freq = ieee80211_channel_to_frequency(ab_rx_ch_map[hwch - 1],
- status.band);
- } else {
- status.band = NL80211_BAND_2GHZ;
- status.freq = ieee80211_channel_to_frequency(hwch, status.band);
- }
- }
-
memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status));
if (ieee80211_is_beacon(hdr->frame_control)) {
diff --git a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
index 1c8d918137da..fbd0558c2c19 100644
--- a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
+++ b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
@@ -248,6 +248,7 @@ struct wcn36xx {
struct cfg80211_scan_request *scan_req;
bool sw_scan;
u8 sw_scan_opchannel;
+ bool sw_scan_init;
u8 sw_scan_channel;
struct ieee80211_vif *sw_scan_vif;
struct mutex scan_lock;
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/acpi.c b/drivers/net/wireless/intel/iwlwifi/fw/acpi.c
index bf431fa4fe81..2e4590876bc3 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/acpi.c
+++ b/drivers/net/wireless/intel/iwlwifi/fw/acpi.c
@@ -789,7 +789,7 @@ int iwl_sar_get_wgds_table(struct iwl_fw_runtime *fwrt)
* looking up in ACPI
*/
if (wifi_pkg->package.count !=
- min_size + profile_size * num_profiles) {
+ hdr_size + profile_size * num_profiles) {
ret = -EINVAL;
goto out_free;
}
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/power.h b/drivers/net/wireless/intel/iwlwifi/fw/api/power.h
index 4d671c878bb7..23e27afe94a2 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/api/power.h
+++ b/drivers/net/wireless/intel/iwlwifi/fw/api/power.h
@@ -419,7 +419,7 @@ struct iwl_geo_tx_power_profiles_cmd_v1 {
* struct iwl_geo_tx_power_profile_cmd_v2 - struct for PER_CHAIN_LIMIT_OFFSET_CMD cmd.
* @ops: operations, value from &enum iwl_geo_per_chain_offset_operation
* @table: offset profile per band.
- * @table_revision: BIOS table revision.
+ * @table_revision: 0 for not-South Korea, 1 for South Korea (the name is misleading)
*/
struct iwl_geo_tx_power_profiles_cmd_v2 {
__le32 ops;
@@ -431,7 +431,7 @@ struct iwl_geo_tx_power_profiles_cmd_v2 {
* struct iwl_geo_tx_power_profile_cmd_v3 - struct for PER_CHAIN_LIMIT_OFFSET_CMD cmd.
* @ops: operations, value from &enum iwl_geo_per_chain_offset_operation
* @table: offset profile per band.
- * @table_revision: BIOS table revision.
+ * @table_revision: 0 for not-South Korea, 1 for South Korea (the name is misleading)
*/
struct iwl_geo_tx_power_profiles_cmd_v3 {
__le32 ops;
@@ -443,7 +443,7 @@ struct iwl_geo_tx_power_profiles_cmd_v3 {
* struct iwl_geo_tx_power_profile_cmd_v4 - struct for PER_CHAIN_LIMIT_OFFSET_CMD cmd.
* @ops: operations, value from &enum iwl_geo_per_chain_offset_operation
* @table: offset profile per band.
- * @table_revision: BIOS table revision.
+ * @table_revision: 0 for not-South Korea, 1 for South Korea (the name is misleading)
*/
struct iwl_geo_tx_power_profiles_cmd_v4 {
__le32 ops;
@@ -455,7 +455,7 @@ struct iwl_geo_tx_power_profiles_cmd_v4 {
* struct iwl_geo_tx_power_profile_cmd_v5 - struct for PER_CHAIN_LIMIT_OFFSET_CMD cmd.
* @ops: operations, value from &enum iwl_geo_per_chain_offset_operation
* @table: offset profile per band.
- * @table_revision: BIOS table revision.
+ * @table_revision: 0 for not-South Korea, 1 for South Korea (the name is misleading)
*/
struct iwl_geo_tx_power_profiles_cmd_v5 {
__le32 ops;
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dump.c b/drivers/net/wireless/intel/iwlwifi/fw/dump.c
index 016b3a4c5f51..6a37933a0216 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/dump.c
+++ b/drivers/net/wireless/intel/iwlwifi/fw/dump.c
@@ -12,6 +12,7 @@
#include "iwl-io.h"
#include "iwl-prph.h"
#include "iwl-csr.h"
+#include "pnvm.h"
/*
* Note: This structure is read from the device with IO accesses,
@@ -147,6 +148,7 @@ static void iwl_fwrt_dump_umac_error_log(struct iwl_fw_runtime *fwrt)
struct iwl_trans *trans = fwrt->trans;
struct iwl_umac_error_event_table table = {};
u32 base = fwrt->trans->dbg.umac_error_event_table;
+ char pnvm_name[MAX_PNVM_NAME];
if (!base &&
!(fwrt->trans->dbg.error_event_table_tlv_status &
@@ -164,6 +166,13 @@ static void iwl_fwrt_dump_umac_error_log(struct iwl_fw_runtime *fwrt)
fwrt->trans->status, table.valid);
}
+ if ((table.error_id & ~FW_SYSASSERT_CPU_MASK) ==
+ FW_SYSASSERT_PNVM_MISSING) {
+ iwl_pnvm_get_fs_name(trans, pnvm_name, sizeof(pnvm_name));
+ IWL_ERR(fwrt, "PNVM data is missing, please install %s\n",
+ pnvm_name);
+ }
+
IWL_ERR(fwrt, "0x%08X | %s\n", table.error_id,
iwl_fw_lookup_assert_desc(table.error_id));
IWL_ERR(fwrt, "0x%08X | umac branchlink1\n", table.blink1);
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/img.c b/drivers/net/wireless/intel/iwlwifi/fw/img.c
index 24a966673691..530674a35eeb 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/img.c
+++ b/drivers/net/wireless/intel/iwlwifi/fw/img.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/*
- * Copyright(c) 2019 - 2020 Intel Corporation
+ * Copyright(c) 2019 - 2021 Intel Corporation
*/
#include "img.h"
@@ -49,10 +49,9 @@ u8 iwl_fw_lookup_notif_ver(const struct iwl_fw *fw, u8 grp, u8 cmd, u8 def)
}
EXPORT_SYMBOL_GPL(iwl_fw_lookup_notif_ver);
-#define FW_SYSASSERT_CPU_MASK 0xf0000000
static const struct {
const char *name;
- u8 num;
+ u32 num;
} advanced_lookup[] = {
{ "NMI_INTERRUPT_WDG", 0x34 },
{ "SYSASSERT", 0x35 },
@@ -73,6 +72,7 @@ static const struct {
{ "NMI_INTERRUPT_ACTION_PT", 0x7C },
{ "NMI_INTERRUPT_UNKNOWN", 0x84 },
{ "NMI_INTERRUPT_INST_ACTION_PT", 0x86 },
+ { "PNVM_MISSING", FW_SYSASSERT_PNVM_MISSING },
{ "ADVANCED_SYSASSERT", 0 },
};
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/img.h b/drivers/net/wireless/intel/iwlwifi/fw/img.h
index 993bda17fa30..fa7b1780064c 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/img.h
+++ b/drivers/net/wireless/intel/iwlwifi/fw/img.h
@@ -279,4 +279,8 @@ u8 iwl_fw_lookup_cmd_ver(const struct iwl_fw *fw, u8 grp, u8 cmd, u8 def);
u8 iwl_fw_lookup_notif_ver(const struct iwl_fw *fw, u8 grp, u8 cmd, u8 def);
const char *iwl_fw_lookup_assert_desc(u32 num);
+
+#define FW_SYSASSERT_CPU_MASK 0xf0000000
+#define FW_SYSASSERT_PNVM_MISSING 0x0010070d
+
#endif /* __iwl_fw_img_h__ */
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
index ff79a2ecb242..70f9dc7ecb0e 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
@@ -105,9 +105,10 @@
/* GIO Chicken Bits (PCI Express bus link power management) */
#define CSR_GIO_CHICKEN_BITS (CSR_BASE+0x100)
-/* Doorbell NMI (since Bz) */
+/* Doorbell - since Bz
+ * connected to UREG_DOORBELL_TO_ISR6 (lower 16 bits only)
+ */
#define CSR_DOORBELL_VECTOR (CSR_BASE + 0x130)
-#define CSR_DOORBELL_VECTOR_NMI BIT(1)
/* host chicken bits */
#define CSR_HOST_CHICKEN (CSR_BASE + 0x204)
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
index 5cec467b995b..f53ce9c08694 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
@@ -130,6 +130,9 @@ static void iwl_dealloc_ucode(struct iwl_drv *drv)
for (i = 0; i < IWL_UCODE_TYPE_MAX; i++)
iwl_free_fw_img(drv, drv->fw.img + i);
+
+ /* clear the data for the aborted load case */
+ memset(&drv->fw, 0, sizeof(drv->fw));
}
static int iwl_alloc_fw_desc(struct iwl_drv *drv, struct fw_desc *desc,
@@ -1375,6 +1378,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
int i;
bool load_module = false;
bool usniffer_images = false;
+ bool failure = true;
fw->ucode_capa.max_probe_length = IWL_DEFAULT_MAX_PROBE_LENGTH;
fw->ucode_capa.standard_phy_calibration_size =
@@ -1635,15 +1639,9 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
* else from proceeding if the module fails to load
* or hangs loading.
*/
- if (load_module) {
+ if (load_module)
request_module("%s", op->name);
-#ifdef CONFIG_IWLWIFI_OPMODE_MODULAR
- if (err)
- IWL_ERR(drv,
- "failed to load module %s (error %d), is dynamic loading enabled?\n",
- op->name, err);
-#endif
- }
+ failure = false;
goto free;
try_again:
@@ -1659,6 +1657,9 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
complete(&drv->request_firmware_complete);
device_release_driver(drv->trans->dev);
free:
+ if (failure)
+ iwl_dealloc_ucode(drv);
+
if (pieces) {
for (i = 0; i < ARRAY_SIZE(pieces->img); i++)
kfree(pieces->img[i].sec);
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-io.c b/drivers/net/wireless/intel/iwlwifi/iwl-io.c
index 46917b4216b3..253eac4cbf59 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-io.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-io.c
@@ -218,7 +218,7 @@ void iwl_force_nmi(struct iwl_trans *trans)
UREG_DOORBELL_TO_ISR6_NMI_BIT);
else
iwl_write32(trans, CSR_DOORBELL_VECTOR,
- CSR_DOORBELL_VECTOR_NMI);
+ UREG_DOORBELL_TO_ISR6_NMI_BIT);
}
IWL_EXPORT_SYMBOL(iwl_force_nmi);
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c b/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
index 949fb790f8fb..628aee634b2a 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
@@ -511,7 +511,7 @@ iwl_mvm_ftm_put_target(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
rcu_read_lock();
sta = rcu_dereference(mvm->fw_id_to_mac_id[mvmvif->ap_sta_id]);
- if (sta->mfp)
+ if (sta->mfp && (peer->ftm.trigger_based || peer->ftm.non_trigger_based))
FTM_PUT_FLAG(PMF);
rcu_read_unlock();
@@ -1066,7 +1066,7 @@ static void iwl_mvm_ftm_rtt_smoothing(struct iwl_mvm *mvm,
overshoot = IWL_MVM_FTM_INITIATOR_SMOOTH_OVERSHOOT;
alpha = IWL_MVM_FTM_INITIATOR_SMOOTH_ALPHA;
- rtt_avg = (alpha * rtt + (100 - alpha) * resp->rtt_avg) / 100;
+ rtt_avg = div_s64(alpha * rtt + (100 - alpha) * resp->rtt_avg, 100);
IWL_DEBUG_INFO(mvm,
"%pM: prev rtt_avg=%lld, new rtt_avg=%lld, rtt=%lld\n",
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
index 863fec150e53..9eb78461f280 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
@@ -820,6 +820,7 @@ static int iwl_mvm_sar_geo_init(struct iwl_mvm *mvm)
u16 len;
u32 n_bands;
u32 n_profiles;
+ u32 sk = 0;
int ret;
u8 cmd_ver = iwl_fw_lookup_cmd_ver(mvm->fw, PHY_OPS_GROUP,
PER_CHAIN_LIMIT_OFFSET_CMD,
@@ -879,19 +880,26 @@ static int iwl_mvm_sar_geo_init(struct iwl_mvm *mvm)
if (ret)
return 0;
+ /* Only set to South Korea if the table revision is 1 */
+ if (mvm->fwrt.geo_rev == 1)
+ sk = 1;
+
/*
- * Set the revision on versions that contain it.
+ * Set the table_revision to South Korea (1) or not (0). The
+ * element name is misleading, as it doesn't contain the table
+ * revision number, but whether the South Korea variation
+ * should be used.
* This must be done after calling iwl_sar_geo_init().
*/
if (cmd_ver == 5)
- cmd.v5.table_revision = cpu_to_le32(mvm->fwrt.geo_rev);
+ cmd.v5.table_revision = cpu_to_le32(sk);
else if (cmd_ver == 4)
- cmd.v4.table_revision = cpu_to_le32(mvm->fwrt.geo_rev);
+ cmd.v4.table_revision = cpu_to_le32(sk);
else if (cmd_ver == 3)
- cmd.v3.table_revision = cpu_to_le32(mvm->fwrt.geo_rev);
+ cmd.v3.table_revision = cpu_to_le32(sk);
else if (fw_has_api(&mvm->fwrt.fw->ucode_capa,
IWL_UCODE_TLV_API_SAR_TABLE_VER))
- cmd.v2.table_revision = cpu_to_le32(mvm->fwrt.geo_rev);
+ cmd.v2.table_revision = cpu_to_le32(sk);
return iwl_mvm_send_cmd_pdu(mvm,
WIDE_ID(PHY_OPS_GROUP,
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
index 897e3b91ddb2..9c5c10908f01 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
@@ -1688,6 +1688,7 @@ static void iwl_mvm_recalc_multicast(struct iwl_mvm *mvm)
struct iwl_mvm_mc_iter_data iter_data = {
.mvm = mvm,
};
+ int ret;
lockdep_assert_held(&mvm->mutex);
@@ -1697,6 +1698,22 @@ static void iwl_mvm_recalc_multicast(struct iwl_mvm *mvm)
ieee80211_iterate_active_interfaces_atomic(
mvm->hw, IEEE80211_IFACE_ITER_NORMAL,
iwl_mvm_mc_iface_iterator, &iter_data);
+
+ /*
+ * Send a (synchronous) ech command so that we wait for the
+ * multiple asynchronous MCAST_FILTER_CMD commands sent by
+ * the interface iterator. Otherwise, we might get here over
+ * and over again (by userspace just sending a lot of these)
+ * and the CPU can send them faster than the firmware can
+ * process them.
+ * Note that the CPU is still faster - but with this we'll
+ * actually send fewer commands overall because the CPU will
+ * not schedule the work in mac80211 as frequently if it's
+ * still running when rescheduled (possibly multiple times).
+ */
+ ret = iwl_mvm_send_cmd_pdu(mvm, ECHO_CMD, 0, 0, NULL);
+ if (ret)
+ IWL_ERR(mvm, "Failed to synchronize multicast groups update\n");
}
static u64 iwl_mvm_prepare_multicast(struct ieee80211_hw *hw,
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
index e0601f802628..1e2a55ccf192 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
@@ -121,12 +121,39 @@ static int iwl_mvm_create_skb(struct iwl_mvm *mvm, struct sk_buff *skb,
struct iwl_rx_mpdu_desc *desc = (void *)pkt->data;
unsigned int headlen, fraglen, pad_len = 0;
unsigned int hdrlen = ieee80211_hdrlen(hdr->frame_control);
+ u8 mic_crc_len = u8_get_bits(desc->mac_flags1,
+ IWL_RX_MPDU_MFLG1_MIC_CRC_LEN_MASK) << 1;
if (desc->mac_flags2 & IWL_RX_MPDU_MFLG2_PAD) {
len -= 2;
pad_len = 2;
}
+ /*
+ * For non monitor interface strip the bytes the RADA might not have
+ * removed. As monitor interface cannot exist with other interfaces
+ * this removal is safe.
+ */
+ if (mic_crc_len && !ieee80211_hw_check(mvm->hw, RX_INCLUDES_FCS)) {
+ u32 pkt_flags = le32_to_cpu(pkt->len_n_flags);
+
+ /*
+ * If RADA was not enabled then decryption was not performed so
+ * the MIC cannot be removed.
+ */
+ if (!(pkt_flags & FH_RSCSR_RADA_EN)) {
+ if (WARN_ON(crypt_len > mic_crc_len))
+ return -EINVAL;
+
+ mic_crc_len -= crypt_len;
+ }
+
+ if (WARN_ON(mic_crc_len > len))
+ return -EINVAL;
+
+ len -= mic_crc_len;
+ }
+
/* If frame is small enough to fit in skb->head, pull it completely.
* If not, only pull ieee80211_hdr (including crypto if present, and
* an additional 8 bytes for SNAP/ethertype, see below) so that
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
index a138b5c4cce8..960b21719b80 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@ -1924,22 +1924,19 @@ static void iwl_mvm_scan_6ghz_passive_scan(struct iwl_mvm *mvm,
}
/*
- * 6GHz passive scan is allowed while associated in a defined time
- * interval following HW reset or resume flow
+ * 6GHz passive scan is allowed in a defined time interval following HW
+ * reset or resume flow, or while not associated and a large interval
+ * has passed since the last 6GHz passive scan.
*/
- if (vif->bss_conf.assoc &&
+ if ((vif->bss_conf.assoc ||
+ time_after(mvm->last_6ghz_passive_scan_jiffies +
+ (IWL_MVM_6GHZ_PASSIVE_SCAN_TIMEOUT * HZ), jiffies)) &&
(time_before(mvm->last_reset_or_resume_time_jiffies +
(IWL_MVM_6GHZ_PASSIVE_SCAN_ASSOC_TIMEOUT * HZ),
jiffies))) {
- IWL_DEBUG_SCAN(mvm, "6GHz passive scan: associated\n");
- return;
- }
-
- /* No need for 6GHz passive scan if not enough time elapsed */
- if (time_after(mvm->last_6ghz_passive_scan_jiffies +
- (IWL_MVM_6GHZ_PASSIVE_SCAN_TIMEOUT * HZ), jiffies)) {
- IWL_DEBUG_SCAN(mvm,
- "6GHz passive scan: timeout did not expire\n");
+ IWL_DEBUG_SCAN(mvm, "6GHz passive scan: %s\n",
+ vif->bss_conf.assoc ? "associated" :
+ "timeout did not expire");
return;
}
@@ -2498,7 +2495,7 @@ static int iwl_mvm_check_running_scans(struct iwl_mvm *mvm, int type)
return -EIO;
}
-#define SCAN_TIMEOUT 20000
+#define SCAN_TIMEOUT 30000
void iwl_mvm_scan_timeout_wk(struct work_struct *work)
{
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c
index e91f8e889df7..ab06dcda1462 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c
@@ -49,14 +49,13 @@ void iwl_mvm_roc_done_wk(struct work_struct *wk)
struct iwl_mvm *mvm = container_of(wk, struct iwl_mvm, roc_done_wk);
/*
- * Clear the ROC_RUNNING /ROC_AUX_RUNNING status bit.
+ * Clear the ROC_RUNNING status bit.
* This will cause the TX path to drop offchannel transmissions.
* That would also be done by mac80211, but it is racy, in particular
* in the case that the time event actually completed in the firmware
* (which is handled in iwl_mvm_te_handle_notif).
*/
clear_bit(IWL_MVM_STATUS_ROC_RUNNING, &mvm->status);
- clear_bit(IWL_MVM_STATUS_ROC_AUX_RUNNING, &mvm->status);
synchronize_net();
@@ -82,9 +81,19 @@ void iwl_mvm_roc_done_wk(struct work_struct *wk)
mvmvif = iwl_mvm_vif_from_mac80211(mvm->p2p_device_vif);
iwl_mvm_flush_sta(mvm, &mvmvif->bcast_sta, true);
}
- } else {
+ }
+
+ /*
+ * Clear the ROC_AUX_RUNNING status bit.
+ * This will cause the TX path to drop offchannel transmissions.
+ * That would also be done by mac80211, but it is racy, in particular
+ * in the case that the time event actually completed in the firmware
+ * (which is handled in iwl_mvm_te_handle_notif).
+ */
+ if (test_and_clear_bit(IWL_MVM_STATUS_ROC_AUX_RUNNING, &mvm->status)) {
/* do the same in case of hot spot 2.0 */
iwl_mvm_flush_sta(mvm, &mvm->aux_sta, true);
+
/* In newer version of this command an aux station is added only
* in cases of dedicated tx queue and need to be removed in end
* of use */
@@ -687,11 +696,14 @@ static bool __iwl_mvm_remove_time_event(struct iwl_mvm *mvm,
iwl_mvm_te_clear_data(mvm, te_data);
spin_unlock_bh(&mvm->time_event_lock);
- /* When session protection is supported, the te_data->id field
+ /* When session protection is used, the te_data->id field
* is reused to save session protection's configuration.
+ * For AUX ROC, HOT_SPOT_CMD is used and the te_data->id field is set
+ * to HOT_SPOT_CMD.
*/
if (fw_has_capa(&mvm->fw->ucode_capa,
- IWL_UCODE_TLV_CAPA_SESSION_PROT_CMD)) {
+ IWL_UCODE_TLV_CAPA_SESSION_PROT_CMD) &&
+ id != HOT_SPOT_CMD) {
if (mvmvif && id < SESSION_PROTECT_CONF_MAX_ID) {
/* Session protection is still ongoing. Cancel it */
iwl_mvm_cancel_session_protection(mvm, mvmvif, id);
@@ -1027,7 +1039,7 @@ void iwl_mvm_stop_roc(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
iwl_mvm_p2p_roc_finished(mvm);
} else {
iwl_mvm_remove_aux_roc_te(mvm, mvmvif,
- &mvmvif->time_event_data);
+ &mvmvif->hs_time_event_data);
iwl_mvm_roc_finished(mvm);
}
@@ -1158,15 +1170,10 @@ void iwl_mvm_schedule_session_protection(struct iwl_mvm *mvm,
cpu_to_le32(FW_CMD_ID_AND_COLOR(mvmvif->id,
mvmvif->color)),
.action = cpu_to_le32(FW_CTXT_ACTION_ADD),
+ .conf_id = cpu_to_le32(SESSION_PROTECT_CONF_ASSOC),
.duration_tu = cpu_to_le32(MSEC_TO_TU(duration)),
};
- /* The time_event_data.id field is reused to save session
- * protection's configuration.
- */
- mvmvif->time_event_data.id = SESSION_PROTECT_CONF_ASSOC;
- cmd.conf_id = cpu_to_le32(mvmvif->time_event_data.id);
-
lockdep_assert_held(&mvm->mutex);
spin_lock_bh(&mvm->time_event_lock);
@@ -1180,6 +1187,11 @@ void iwl_mvm_schedule_session_protection(struct iwl_mvm *mvm,
}
iwl_mvm_te_clear_data(mvm, te_data);
+ /*
+ * The time_event_data.id field is reused to save session
+ * protection's configuration.
+ */
+ te_data->id = le32_to_cpu(cmd.conf_id);
te_data->duration = le32_to_cpu(cmd.duration_tu);
te_data->vif = vif;
spin_unlock_bh(&mvm->time_event_lock);
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
index 14602d6d6699..8247014278f3 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
@@ -2266,7 +2266,12 @@ irqreturn_t iwl_pcie_irq_msix_handler(int irq, void *dev_id)
}
}
- if (inta_hw & MSIX_HW_INT_CAUSES_REG_WAKEUP) {
+ /*
+ * In some rare cases when the HW is in a bad state, we may
+ * get this interrupt too early, when prph_info is still NULL.
+ * So make sure that it's not NULL to prevent crashing.
+ */
+ if (inta_hw & MSIX_HW_INT_CAUSES_REG_WAKEUP && trans_pcie->prph_info) {
u32 sleep_notif =
le32_to_cpu(trans_pcie->prph_info->sleep_notif);
if (sleep_notif == IWL_D3_SLEEP_STATUS_SUSPEND ||
diff --git a/drivers/net/wireless/intel/iwlwifi/queue/tx.c b/drivers/net/wireless/intel/iwlwifi/queue/tx.c
index 451b06069350..0f3526b0c5b0 100644
--- a/drivers/net/wireless/intel/iwlwifi/queue/tx.c
+++ b/drivers/net/wireless/intel/iwlwifi/queue/tx.c
@@ -1072,6 +1072,7 @@ int iwl_txq_alloc(struct iwl_trans *trans, struct iwl_txq *txq, int slots_num,
return 0;
err_free_tfds:
dma_free_coherent(trans->dev, tfd_sz, txq->tfds, txq->dma_addr);
+ txq->tfds = NULL;
error:
if (txq->entries && cmd_queue)
for (i = 0; i < slots_num; i++)
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_event.c b/drivers/net/wireless/marvell/mwifiex/sta_event.c
index 68c63268e2e6..2b2e6e0166e1 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_event.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_event.c
@@ -365,10 +365,12 @@ static void mwifiex_process_uap_tx_pause(struct mwifiex_private *priv,
sta_ptr = mwifiex_get_sta_entry(priv, tp->peermac);
if (sta_ptr && sta_ptr->tx_pause != tp->tx_pause) {
sta_ptr->tx_pause = tp->tx_pause;
+ spin_unlock_bh(&priv->sta_list_spinlock);
mwifiex_update_ralist_tx_pause(priv, tp->peermac,
tp->tx_pause);
+ } else {
+ spin_unlock_bh(&priv->sta_list_spinlock);
}
- spin_unlock_bh(&priv->sta_list_spinlock);
}
}
@@ -400,11 +402,13 @@ static void mwifiex_process_sta_tx_pause(struct mwifiex_private *priv,
sta_ptr = mwifiex_get_sta_entry(priv, tp->peermac);
if (sta_ptr && sta_ptr->tx_pause != tp->tx_pause) {
sta_ptr->tx_pause = tp->tx_pause;
+ spin_unlock_bh(&priv->sta_list_spinlock);
mwifiex_update_ralist_tx_pause(priv,
tp->peermac,
tp->tx_pause);
+ } else {
+ spin_unlock_bh(&priv->sta_list_spinlock);
}
- spin_unlock_bh(&priv->sta_list_spinlock);
}
}
}
diff --git a/drivers/net/wireless/marvell/mwifiex/usb.c b/drivers/net/wireless/marvell/mwifiex/usb.c
index 9736aa0ab7fd..8f01fcbe9396 100644
--- a/drivers/net/wireless/marvell/mwifiex/usb.c
+++ b/drivers/net/wireless/marvell/mwifiex/usb.c
@@ -130,7 +130,8 @@ static int mwifiex_usb_recv(struct mwifiex_adapter *adapter,
default:
mwifiex_dbg(adapter, ERROR,
"unknown recv_type %#x\n", recv_type);
- return -1;
+ ret = -1;
+ goto exit_restore_skb;
}
break;
case MWIFIEX_USB_EP_DATA:
diff --git a/drivers/net/wireless/mediatek/mt76/debugfs.c b/drivers/net/wireless/mediatek/mt76/debugfs.c
index b8bcf22a07fd..47e9911ee9fe 100644
--- a/drivers/net/wireless/mediatek/mt76/debugfs.c
+++ b/drivers/net/wireless/mediatek/mt76/debugfs.c
@@ -82,7 +82,7 @@ static int mt76_rx_queues_read(struct seq_file *s, void *data)
queued = mt76_is_usb(dev) ? q->ndesc - q->queued : q->queued;
seq_printf(s, " %9d | %9d | %9d | %9d |\n",
- i, q->queued, q->head, q->tail);
+ i, queued, q->head, q->tail);
}
return 0;
diff --git a/drivers/net/wireless/mediatek/mt76/mac80211.c b/drivers/net/wireless/mediatek/mt76/mac80211.c
index 62807dc311c1..b0869ff86c49 100644
--- a/drivers/net/wireless/mediatek/mt76/mac80211.c
+++ b/drivers/net/wireless/mediatek/mt76/mac80211.c
@@ -1494,7 +1494,6 @@ EXPORT_SYMBOL_GPL(mt76_init_queue);
u16 mt76_calculate_default_rate(struct mt76_phy *phy, int rateidx)
{
int offset = 0;
- struct ieee80211_rate *rate;
if (phy->chandef.chan->band != NL80211_BAND_2GHZ)
offset = 4;
@@ -1503,9 +1502,11 @@ u16 mt76_calculate_default_rate(struct mt76_phy *phy, int rateidx)
if (rateidx < 0)
rateidx = 0;
- rate = &mt76_rates[offset + rateidx];
+ rateidx += offset;
+ if (rateidx >= ARRAY_SIZE(mt76_rates))
+ rateidx = offset;
- return rate->hw_value;
+ return mt76_rates[rateidx].hw_value;
}
EXPORT_SYMBOL_GPL(mt76_calculate_default_rate);
diff --git a/drivers/net/wireless/mediatek/mt76/mt7603/mac.c b/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
index fe03e31989bb..a9ac61b9f854 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
@@ -525,6 +525,10 @@ mt7603_mac_fill_rx(struct mt7603_dev *dev, struct sk_buff *skb)
if (rxd2 & MT_RXD2_NORMAL_TKIP_MIC_ERR)
status->flag |= RX_FLAG_MMIC_ERROR;
+ /* ICV error or CCMP/BIP/WPI MIC error */
+ if (rxd2 & MT_RXD2_NORMAL_ICV_ERR)
+ status->flag |= RX_FLAG_ONLY_MONITOR;
+
if (FIELD_GET(MT_RXD2_NORMAL_SEC_MODE, rxd2) != 0 &&
!(rxd2 & (MT_RXD2_NORMAL_CLM | MT_RXD2_NORMAL_CM))) {
status->flag |= RX_FLAG_DECRYPTED;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mac.c b/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
index 423f69015e3e..c79abce543f3 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
@@ -286,9 +286,16 @@ static int mt7615_mac_fill_rx(struct mt7615_dev *dev, struct sk_buff *skb)
if (rxd2 & MT_RXD2_NORMAL_AMSDU_ERR)
return -EINVAL;
+ hdr_trans = rxd1 & MT_RXD1_NORMAL_HDR_TRANS;
+ if (hdr_trans && (rxd2 & MT_RXD2_NORMAL_CM))
+ return -EINVAL;
+
+ /* ICV error or CCMP/BIP/WPI MIC error */
+ if (rxd2 & MT_RXD2_NORMAL_ICV_ERR)
+ status->flag |= RX_FLAG_ONLY_MONITOR;
+
unicast = (rxd1 & MT_RXD1_NORMAL_ADDR_TYPE) == MT_RXD1_NORMAL_U2M;
idx = FIELD_GET(MT_RXD2_NORMAL_WLAN_IDX, rxd2);
- hdr_trans = rxd1 & MT_RXD1_NORMAL_HDR_TRANS;
status->wcid = mt7615_rx_get_wcid(dev, idx, unicast);
if (status->wcid) {
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/main.c b/drivers/net/wireless/mediatek/mt76/mt7615/main.c
index 890d9b07e156..1fdcada157d6 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/main.c
@@ -73,7 +73,7 @@ static int mt7615_start(struct ieee80211_hw *hw)
goto out;
}
- ret = mt7615_mcu_set_chan_info(phy, MCU_EXT_CMD_SET_RX_PATH);
+ ret = mt7615_mcu_set_chan_info(phy, MCU_EXT_CMD(SET_RX_PATH));
if (ret)
goto out;
@@ -211,11 +211,9 @@ static int mt7615_add_interface(struct ieee80211_hw *hw,
mvif->mt76.omac_idx = idx;
mvif->mt76.band_idx = ext_phy;
- if (mt7615_ext_phy(dev))
- mvif->mt76.wmm_idx = ext_phy * (MT7615_MAX_WMM_SETS / 2) +
- mvif->mt76.idx % (MT7615_MAX_WMM_SETS / 2);
- else
- mvif->mt76.wmm_idx = mvif->mt76.idx % MT7615_MAX_WMM_SETS;
+ mvif->mt76.wmm_idx = vif->type != NL80211_IFTYPE_AP;
+ if (ext_phy)
+ mvif->mt76.wmm_idx += 2;
dev->mt76.vif_mask |= BIT(mvif->mt76.idx);
dev->omac_mask |= BIT_ULL(mvif->mt76.omac_idx);
@@ -331,7 +329,7 @@ int mt7615_set_channel(struct mt7615_phy *phy)
goto out;
}
- ret = mt7615_mcu_set_chan_info(phy, MCU_EXT_CMD_CHANNEL_SWITCH);
+ ret = mt7615_mcu_set_chan_info(phy, MCU_EXT_CMD(CHANNEL_SWITCH));
if (ret)
goto out;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
index 25f9cbe2cd61..fcbcfc9f5a04 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
@@ -87,7 +87,7 @@ struct mt7663_fw_buf {
void mt7615_mcu_fill_msg(struct mt7615_dev *dev, struct sk_buff *skb,
int cmd, int *wait_seq)
{
- int txd_len, mcu_cmd = cmd & MCU_CMD_MASK;
+ int txd_len, mcu_cmd = FIELD_GET(__MCU_CMD_FIELD_ID, cmd);
struct mt7615_uni_txd *uni_txd;
struct mt7615_mcu_txd *mcu_txd;
u8 seq, q_idx, pkt_fmt;
@@ -103,7 +103,7 @@ void mt7615_mcu_fill_msg(struct mt7615_dev *dev, struct sk_buff *skb,
if (wait_seq)
*wait_seq = seq;
- txd_len = cmd & MCU_UNI_PREFIX ? sizeof(*uni_txd) : sizeof(*mcu_txd);
+ txd_len = cmd & __MCU_CMD_FIELD_UNI ? sizeof(*uni_txd) : sizeof(*mcu_txd);
txd = (__le32 *)skb_push(skb, txd_len);
if (cmd != MCU_CMD_FW_SCATTER) {
@@ -124,7 +124,7 @@ void mt7615_mcu_fill_msg(struct mt7615_dev *dev, struct sk_buff *skb,
FIELD_PREP(MT_TXD1_PKT_FMT, pkt_fmt);
txd[1] = cpu_to_le32(val);
- if (cmd & MCU_UNI_PREFIX) {
+ if (cmd & __MCU_CMD_FIELD_UNI) {
uni_txd = (struct mt7615_uni_txd *)txd;
uni_txd->len = cpu_to_le16(skb->len - sizeof(uni_txd->txd));
uni_txd->option = MCU_CMD_UNI_EXT_ACK;
@@ -142,28 +142,17 @@ void mt7615_mcu_fill_msg(struct mt7615_dev *dev, struct sk_buff *skb,
mcu_txd->s2d_index = MCU_S2D_H2N;
mcu_txd->pkt_type = MCU_PKT_ID;
mcu_txd->seq = seq;
+ mcu_txd->cid = mcu_cmd;
+ mcu_txd->ext_cid = FIELD_GET(__MCU_CMD_FIELD_EXT_ID, cmd);
- switch (cmd & ~MCU_CMD_MASK) {
- case MCU_FW_PREFIX:
- mcu_txd->set_query = MCU_Q_NA;
- mcu_txd->cid = mcu_cmd;
- break;
- case MCU_CE_PREFIX:
- if (cmd & MCU_QUERY_MASK)
- mcu_txd->set_query = MCU_Q_QUERY;
- else
- mcu_txd->set_query = MCU_Q_SET;
- mcu_txd->cid = mcu_cmd;
- break;
- default:
- mcu_txd->cid = MCU_CMD_EXT_CID;
- if (cmd & MCU_QUERY_PREFIX)
+ if (mcu_txd->ext_cid || (cmd & MCU_CE_PREFIX)) {
+ if (cmd & __MCU_CMD_FIELD_QUERY)
mcu_txd->set_query = MCU_Q_QUERY;
else
mcu_txd->set_query = MCU_Q_SET;
- mcu_txd->ext_cid = mcu_cmd;
- mcu_txd->ext_cid_ack = 1;
- break;
+ mcu_txd->ext_cid_ack = !!mcu_txd->ext_cid;
+ } else {
+ mcu_txd->set_query = MCU_Q_NA;
}
}
EXPORT_SYMBOL_GPL(mt7615_mcu_fill_msg);
@@ -184,42 +173,32 @@ int mt7615_mcu_parse_response(struct mt76_dev *mdev, int cmd,
if (seq != rxd->seq)
return -EAGAIN;
- switch (cmd) {
- case MCU_CMD_PATCH_SEM_CONTROL:
+ if (cmd == MCU_CMD_PATCH_SEM_CONTROL) {
skb_pull(skb, sizeof(*rxd) - 4);
ret = *skb->data;
- break;
- case MCU_EXT_CMD_GET_TEMP:
+ } else if (cmd == MCU_EXT_CMD(THERMAL_CTRL)) {
skb_pull(skb, sizeof(*rxd));
ret = le32_to_cpu(*(__le32 *)skb->data);
- break;
- case MCU_EXT_CMD_RF_REG_ACCESS | MCU_QUERY_PREFIX:
+ } else if (cmd == MCU_EXT_QUERY(RF_REG_ACCESS)) {
skb_pull(skb, sizeof(*rxd));
ret = le32_to_cpu(*(__le32 *)&skb->data[8]);
- break;
- case MCU_UNI_CMD_DEV_INFO_UPDATE:
- case MCU_UNI_CMD_BSS_INFO_UPDATE:
- case MCU_UNI_CMD_STA_REC_UPDATE:
- case MCU_UNI_CMD_HIF_CTRL:
- case MCU_UNI_CMD_OFFLOAD:
- case MCU_UNI_CMD_SUSPEND: {
+ } else if (cmd == MCU_UNI_CMD(DEV_INFO_UPDATE) ||
+ cmd == MCU_UNI_CMD(BSS_INFO_UPDATE) ||
+ cmd == MCU_UNI_CMD(STA_REC_UPDATE) ||
+ cmd == MCU_UNI_CMD(HIF_CTRL) ||
+ cmd == MCU_UNI_CMD(OFFLOAD) ||
+ cmd == MCU_UNI_CMD(SUSPEND)) {
struct mt7615_mcu_uni_event *event;
skb_pull(skb, sizeof(*rxd));
event = (struct mt7615_mcu_uni_event *)skb->data;
ret = le32_to_cpu(event->status);
- break;
- }
- case MCU_CMD_REG_READ: {
+ } else if (cmd == MCU_CMD_REG_READ) {
struct mt7615_mcu_reg_event *event;
skb_pull(skb, sizeof(*rxd));
event = (struct mt7615_mcu_reg_event *)skb->data;
ret = (int)le32_to_cpu(event->val);
- break;
- }
- default:
- break;
}
return ret;
@@ -253,8 +232,7 @@ u32 mt7615_rf_rr(struct mt7615_dev *dev, u32 wf, u32 reg)
.address = cpu_to_le32(reg),
};
- return mt76_mcu_send_msg(&dev->mt76,
- MCU_EXT_CMD_RF_REG_ACCESS | MCU_QUERY_PREFIX,
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_QUERY(RF_REG_ACCESS),
&req, sizeof(req), true);
}
@@ -270,8 +248,8 @@ int mt7615_rf_wr(struct mt7615_dev *dev, u32 wf, u32 reg, u32 val)
.data = cpu_to_le32(val),
};
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_RF_REG_ACCESS, &req,
- sizeof(req), false);
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(RF_REG_ACCESS),
+ &req, sizeof(req), false);
}
void mt7622_trigger_hif_int(struct mt7615_dev *dev, bool en)
@@ -658,8 +636,8 @@ mt7615_mcu_muar_config(struct mt7615_dev *dev, struct ieee80211_vif *vif,
if (enable)
ether_addr_copy(req.addr, addr);
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_MUAR_UPDATE, &req,
- sizeof(req), true);
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(MUAR_UPDATE),
+ &req, sizeof(req), true);
}
static int
@@ -702,7 +680,7 @@ mt7615_mcu_add_dev(struct mt7615_phy *phy, struct ieee80211_vif *vif,
return mt7615_mcu_muar_config(dev, vif, false, enable);
memcpy(data.tlv.omac_addr, vif->addr, ETH_ALEN);
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_DEV_INFO_UPDATE,
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(DEV_INFO_UPDATE),
&data, sizeof(data), true);
}
@@ -771,7 +749,7 @@ mt7615_mcu_add_beacon_offload(struct mt7615_dev *dev,
dev_kfree_skb(skb);
out:
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_BCN_OFFLOAD, &req,
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(BCN_OFFLOAD), &req,
sizeof(req), true);
}
@@ -802,8 +780,8 @@ mt7615_mcu_ctrl_pm_state(struct mt7615_dev *dev, int band, int state)
.band_idx = band,
};
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_PM_STATE_CTRL, &req,
- sizeof(req), true);
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(PM_STATE_CTRL),
+ &req, sizeof(req), true);
}
static int
@@ -944,7 +922,7 @@ mt7615_mcu_add_bss(struct mt7615_phy *phy, struct ieee80211_vif *vif,
mt7615_mcu_bss_ext_tlv(skb, mvif);
return mt76_mcu_skb_send_msg(&dev->mt76, skb,
- MCU_EXT_CMD_BSS_INFO_UPDATE, true);
+ MCU_EXT_CMD(BSS_INFO_UPDATE), true);
}
static int
@@ -966,8 +944,8 @@ mt7615_mcu_wtbl_tx_ba(struct mt7615_dev *dev,
mt76_connac_mcu_wtbl_ba_tlv(&dev->mt76, skb, params, enable, true,
NULL, wtbl_hdr);
- err = mt76_mcu_skb_send_msg(&dev->mt76, skb, MCU_EXT_CMD_WTBL_UPDATE,
- true);
+ err = mt76_mcu_skb_send_msg(&dev->mt76, skb,
+ MCU_EXT_CMD(WTBL_UPDATE), true);
if (err < 0)
return err;
@@ -979,7 +957,7 @@ mt7615_mcu_wtbl_tx_ba(struct mt7615_dev *dev,
mt76_connac_mcu_sta_ba_tlv(skb, params, enable, true);
return mt76_mcu_skb_send_msg(&dev->mt76, skb,
- MCU_EXT_CMD_STA_REC_UPDATE, true);
+ MCU_EXT_CMD(STA_REC_UPDATE), true);
}
static int
@@ -1001,7 +979,7 @@ mt7615_mcu_wtbl_rx_ba(struct mt7615_dev *dev,
mt76_connac_mcu_sta_ba_tlv(skb, params, enable, false);
err = mt76_mcu_skb_send_msg(&dev->mt76, skb,
- MCU_EXT_CMD_STA_REC_UPDATE, true);
+ MCU_EXT_CMD(STA_REC_UPDATE), true);
if (err < 0 || !enable)
return err;
@@ -1014,8 +992,8 @@ mt7615_mcu_wtbl_rx_ba(struct mt7615_dev *dev,
mt76_connac_mcu_wtbl_ba_tlv(&dev->mt76, skb, params, enable, false,
NULL, wtbl_hdr);
- return mt76_mcu_skb_send_msg(&dev->mt76, skb, MCU_EXT_CMD_WTBL_UPDATE,
- true);
+ return mt76_mcu_skb_send_msg(&dev->mt76, skb,
+ MCU_EXT_CMD(WTBL_UPDATE), true);
}
static int
@@ -1057,7 +1035,7 @@ mt7615_mcu_wtbl_sta_add(struct mt7615_phy *phy, struct ieee80211_vif *vif,
NULL, wtbl_hdr);
}
- cmd = enable ? MCU_EXT_CMD_WTBL_UPDATE : MCU_EXT_CMD_STA_REC_UPDATE;
+ cmd = enable ? MCU_EXT_CMD(WTBL_UPDATE) : MCU_EXT_CMD(STA_REC_UPDATE);
skb = enable ? wskb : sskb;
err = mt76_mcu_skb_send_msg(&dev->mt76, skb, cmd, true);
@@ -1068,7 +1046,7 @@ mt7615_mcu_wtbl_sta_add(struct mt7615_phy *phy, struct ieee80211_vif *vif,
return err;
}
- cmd = enable ? MCU_EXT_CMD_STA_REC_UPDATE : MCU_EXT_CMD_WTBL_UPDATE;
+ cmd = enable ? MCU_EXT_CMD(STA_REC_UPDATE) : MCU_EXT_CMD(WTBL_UPDATE);
skb = enable ? sskb : wskb;
return mt76_mcu_skb_send_msg(&dev->mt76, skb, cmd, true);
@@ -1090,8 +1068,8 @@ mt7615_mcu_wtbl_update_hdr_trans(struct mt7615_dev *dev,
mt76_connac_mcu_wtbl_hdr_trans_tlv(skb, vif, &msta->wcid, NULL,
wtbl_hdr);
- return mt76_mcu_skb_send_msg(&dev->mt76, skb, MCU_EXT_CMD_WTBL_UPDATE,
- true);
+ return mt76_mcu_skb_send_msg(&dev->mt76, skb,
+ MCU_EXT_CMD(WTBL_UPDATE), true);
}
static const struct mt7615_mcu_ops wtbl_update_ops = {
@@ -1136,7 +1114,7 @@ mt7615_mcu_sta_ba(struct mt7615_dev *dev,
sta_wtbl, wtbl_hdr);
return mt76_mcu_skb_send_msg(&dev->mt76, skb,
- MCU_EXT_CMD_STA_REC_UPDATE, true);
+ MCU_EXT_CMD(STA_REC_UPDATE), true);
}
static int
@@ -1179,7 +1157,7 @@ mt7615_mcu_add_sta(struct mt7615_phy *phy, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, bool enable)
{
return __mt7615_mcu_add_sta(phy->mt76, vif, sta, enable,
- MCU_EXT_CMD_STA_REC_UPDATE, false);
+ MCU_EXT_CMD(STA_REC_UPDATE), false);
}
static int
@@ -1191,7 +1169,7 @@ mt7615_mcu_sta_update_hdr_trans(struct mt7615_dev *dev,
return mt76_connac_mcu_sta_update_hdr_trans(&dev->mt76,
vif, &msta->wcid,
- MCU_EXT_CMD_STA_REC_UPDATE);
+ MCU_EXT_CMD(STA_REC_UPDATE));
}
static const struct mt7615_mcu_ops sta_update_ops = {
@@ -1285,7 +1263,7 @@ mt7615_mcu_uni_add_beacon_offload(struct mt7615_dev *dev,
dev_kfree_skb(skb);
out:
- return mt76_mcu_send_msg(&dev->mt76, MCU_UNI_CMD_BSS_INFO_UPDATE,
+ return mt76_mcu_send_msg(&dev->mt76, MCU_UNI_CMD(BSS_INFO_UPDATE),
&req, sizeof(req), true);
}
@@ -1314,7 +1292,7 @@ mt7615_mcu_uni_add_sta(struct mt7615_phy *phy, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, bool enable)
{
return __mt7615_mcu_add_sta(phy->mt76, vif, sta, enable,
- MCU_UNI_CMD_STA_REC_UPDATE, true);
+ MCU_UNI_CMD(STA_REC_UPDATE), true);
}
static int
@@ -1348,7 +1326,7 @@ mt7615_mcu_uni_rx_ba(struct mt7615_dev *dev,
mt76_connac_mcu_sta_ba_tlv(skb, params, enable, false);
err = mt76_mcu_skb_send_msg(&dev->mt76, skb,
- MCU_UNI_CMD_STA_REC_UPDATE, true);
+ MCU_UNI_CMD(STA_REC_UPDATE), true);
if (err < 0 || !enable)
return err;
@@ -1369,7 +1347,7 @@ mt7615_mcu_uni_rx_ba(struct mt7615_dev *dev,
sta_wtbl, wtbl_hdr);
return mt76_mcu_skb_send_msg(&dev->mt76, skb,
- MCU_UNI_CMD_STA_REC_UPDATE, true);
+ MCU_UNI_CMD(STA_REC_UPDATE), true);
}
static int
@@ -1381,7 +1359,7 @@ mt7615_mcu_sta_uni_update_hdr_trans(struct mt7615_dev *dev,
return mt76_connac_mcu_sta_update_hdr_trans(&dev->mt76,
vif, &msta->wcid,
- MCU_UNI_CMD_STA_REC_UPDATE);
+ MCU_UNI_CMD(STA_REC_UPDATE));
}
static const struct mt7615_mcu_ops uni_update_ops = {
@@ -1694,8 +1672,8 @@ int mt7615_mcu_fw_log_2_host(struct mt7615_dev *dev, u8 ctrl)
.ctrl_val = ctrl
};
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_FW_LOG_2_HOST, &data,
- sizeof(data), true);
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(FW_LOG_2_HOST),
+ &data, sizeof(data), true);
}
static int mt7615_mcu_cal_cache_apply(struct mt7615_dev *dev)
@@ -1707,7 +1685,7 @@ static int mt7615_mcu_cal_cache_apply(struct mt7615_dev *dev)
.cache_enable = true
};
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_CAL_CACHE, &data,
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(CAL_CACHE), &data,
sizeof(data), false);
}
@@ -1977,7 +1955,7 @@ int mt7615_mcu_set_eeprom(struct mt7615_dev *dev)
skb_put_data(skb, eep + offset, eep_len);
return mt76_mcu_skb_send_msg(&dev->mt76, skb,
- MCU_EXT_CMD_EFUSE_BUFFER_MODE, true);
+ MCU_EXT_CMD(EFUSE_BUFFER_MODE), true);
}
int mt7615_mcu_set_wmm(struct mt7615_dev *dev, u8 queue,
@@ -2013,8 +1991,8 @@ int mt7615_mcu_set_wmm(struct mt7615_dev *dev, u8 queue,
if (params->cw_max)
req.cw_max = cpu_to_le16(fls(params->cw_max));
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_EDCA_UPDATE, &req,
- sizeof(req), true);
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(EDCA_UPDATE),
+ &req, sizeof(req), true);
}
int mt7615_mcu_set_dbdc(struct mt7615_dev *dev)
@@ -2072,7 +2050,7 @@ int mt7615_mcu_set_dbdc(struct mt7615_dev *dev)
ADD_DBDC_ENTRY(DBDC_TYPE_MGMT, 1, 1);
out:
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_DBDC_CTRL, &req,
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(DBDC_CTRL), &req,
sizeof(req), true);
}
@@ -2082,8 +2060,8 @@ int mt7615_mcu_del_wtbl_all(struct mt7615_dev *dev)
.operation = WTBL_RESET_ALL,
};
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_WTBL_UPDATE, &req,
- sizeof(req), true);
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(WTBL_UPDATE),
+ &req, sizeof(req), true);
}
int mt7615_mcu_rdd_cmd(struct mt7615_dev *dev,
@@ -2103,8 +2081,8 @@ int mt7615_mcu_rdd_cmd(struct mt7615_dev *dev,
.val = val,
};
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_SET_RDD_CTRL, &req,
- sizeof(req), true);
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(SET_RDD_CTRL),
+ &req, sizeof(req), true);
}
int mt7615_mcu_set_fcc5_lpn(struct mt7615_dev *dev, int val)
@@ -2117,8 +2095,8 @@ int mt7615_mcu_set_fcc5_lpn(struct mt7615_dev *dev, int val)
.min_lpn = cpu_to_le16(val),
};
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_SET_RDD_TH, &req,
- sizeof(req), true);
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(SET_RADAR_TH),
+ &req, sizeof(req), true);
}
int mt7615_mcu_set_pulse_th(struct mt7615_dev *dev,
@@ -2146,8 +2124,8 @@ int mt7615_mcu_set_pulse_th(struct mt7615_dev *dev,
#undef __req_field
};
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_SET_RDD_TH, &req,
- sizeof(req), true);
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(SET_RADAR_TH),
+ &req, sizeof(req), true);
}
int mt7615_mcu_set_radar_th(struct mt7615_dev *dev, int index,
@@ -2193,8 +2171,8 @@ int mt7615_mcu_set_radar_th(struct mt7615_dev *dev, int index,
#undef __req_field_u32
};
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_SET_RDD_TH, &req,
- sizeof(req), true);
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(SET_RADAR_TH),
+ &req, sizeof(req), true);
}
int mt7615_mcu_rdd_send_pattern(struct mt7615_dev *dev)
@@ -2225,7 +2203,7 @@ int mt7615_mcu_rdd_send_pattern(struct mt7615_dev *dev)
req.pattern[i].start_time = cpu_to_le32(ts);
}
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_SET_RDD_PATTERN,
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(SET_RDD_PATTERN),
&req, sizeof(req), false);
}
@@ -2394,8 +2372,8 @@ int mt7615_mcu_get_temperature(struct mt7615_dev *dev)
u8 rsv[3];
} req = {};
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_GET_TEMP, &req,
- sizeof(req), true);
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(THERMAL_CTRL),
+ &req, sizeof(req), true);
}
int mt7615_mcu_set_test_param(struct mt7615_dev *dev, u8 param, bool test_mode,
@@ -2415,8 +2393,8 @@ int mt7615_mcu_set_test_param(struct mt7615_dev *dev, u8 param, bool test_mode,
.value = cpu_to_le32(val),
};
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_ATE_CTRL, &req,
- sizeof(req), false);
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(ATE_CTRL),
+ &req, sizeof(req), false);
}
int mt7615_mcu_set_sku_en(struct mt7615_phy *phy, bool enable)
@@ -2434,8 +2412,8 @@ int mt7615_mcu_set_sku_en(struct mt7615_phy *phy, bool enable)
};
return mt76_mcu_send_msg(&dev->mt76,
- MCU_EXT_CMD_TX_POWER_FEATURE_CTRL, &req,
- sizeof(req), true);
+ MCU_EXT_CMD(TX_POWER_FEATURE_CTRL),
+ &req, sizeof(req), true);
}
static int mt7615_find_freq_idx(const u16 *freqs, int n_freqs, u16 cur)
@@ -2574,7 +2552,7 @@ int mt7615_mcu_apply_rx_dcoc(struct mt7615_phy *phy)
out:
req.center_freq = cpu_to_le16(center_freq);
- ret = mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_RXDCOC_CAL, &req,
+ ret = mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(RXDCOC_CAL), &req,
sizeof(req), true);
if ((chandef->width == NL80211_CHAN_WIDTH_80P80 ||
@@ -2695,8 +2673,8 @@ int mt7615_mcu_apply_tx_dpd(struct mt7615_phy *phy)
out:
req.center_freq = cpu_to_le16(center_freq);
- ret = mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_TXDPD_CAL, &req,
- sizeof(req), true);
+ ret = mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(TXDPD_CAL),
+ &req, sizeof(req), true);
if ((chandef->width == NL80211_CHAN_WIDTH_80P80 ||
chandef->width == NL80211_CHAN_WIDTH_160) && !req.is_freq2) {
@@ -2724,7 +2702,7 @@ int mt7615_mcu_set_rx_hdr_trans_blacklist(struct mt7615_dev *dev)
.etype = cpu_to_le16(ETH_P_PAE),
};
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_RX_HDR_TRANS,
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(RX_HDR_TRANS),
&req, sizeof(req), false);
}
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c b/drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c
index a2465b49ecd0..87b4aa52ee0f 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c
@@ -28,8 +28,6 @@ static void mt7615_pci_init_work(struct work_struct *work)
return;
mt7615_init_work(dev);
- if (dev->dbdc_support)
- mt7615_register_ext_phy(dev);
}
static int mt7615_init_hardware(struct mt7615_dev *dev)
@@ -160,6 +158,12 @@ int mt7615_register_device(struct mt7615_dev *dev)
mt7615_init_txpower(dev, &dev->mphy.sband_2g.sband);
mt7615_init_txpower(dev, &dev->mphy.sband_5g.sband);
+ if (dev->dbdc_support) {
+ ret = mt7615_register_ext_phy(dev);
+ if (ret)
+ return ret;
+ }
+
return mt7615_init_debugfs(dev);
}
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/testmode.c b/drivers/net/wireless/mediatek/mt76/mt7615/testmode.c
index 59d99264f5e5..e5544f4e6979 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/testmode.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/testmode.c
@@ -91,7 +91,7 @@ mt7615_tm_set_tx_power(struct mt7615_phy *phy)
}
return mt76_mcu_skb_send_msg(&dev->mt76, skb,
- MCU_EXT_CMD_SET_TX_POWER_CTRL, false);
+ MCU_EXT_CMD(SET_TX_POWER_CTRL), false);
}
static void
@@ -229,7 +229,7 @@ mt7615_tm_set_tx_frames(struct mt7615_phy *phy, bool en)
struct ieee80211_tx_info *info;
struct sk_buff *skb = phy->mt76->test.tx_skb;
- mt7615_mcu_set_chan_info(phy, MCU_EXT_CMD_SET_RX_PATH);
+ mt7615_mcu_set_chan_info(phy, MCU_EXT_CMD(SET_RX_PATH));
mt7615_tm_set_tx_antenna(phy, en);
mt7615_tm_set_rx_enable(dev, !en);
if (!en || !skb)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
index af43bcb54578..306e9eaea917 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
@@ -7,9 +7,6 @@ int mt76_connac_pm_wake(struct mt76_phy *phy, struct mt76_connac_pm *pm)
{
struct mt76_dev *dev = phy->dev;
- if (!pm->enable)
- return 0;
-
if (mt76_is_usb(dev))
return 0;
diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
index 26b4b875dcc0..7733c8fad241 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
@@ -176,7 +176,7 @@ int mt76_connac_mcu_set_mac_enable(struct mt76_dev *dev, int band, bool enable,
.band = band,
};
- return mt76_mcu_send_msg(dev, MCU_EXT_CMD_MAC_INIT_CTRL, &req_mac,
+ return mt76_mcu_send_msg(dev, MCU_EXT_CMD(MAC_INIT_CTRL), &req_mac,
sizeof(req_mac), true);
}
EXPORT_SYMBOL_GPL(mt76_connac_mcu_set_mac_enable);
@@ -218,7 +218,7 @@ int mt76_connac_mcu_set_rts_thresh(struct mt76_dev *dev, u32 val, u8 band)
.pkt_thresh = cpu_to_le32(0x2),
};
- return mt76_mcu_send_msg(dev, MCU_EXT_CMD_PROTECT_CTRL, &req,
+ return mt76_mcu_send_msg(dev, MCU_EXT_CMD(PROTECT_CTRL), &req,
sizeof(req), true);
}
EXPORT_SYMBOL_GPL(mt76_connac_mcu_set_rts_thresh);
@@ -1071,7 +1071,7 @@ int mt76_connac_mcu_uni_add_dev(struct mt76_phy *phy,
memcpy(dev_req.tlv.omac_addr, vif->addr, ETH_ALEN);
- cmd = enable ? MCU_UNI_CMD_DEV_INFO_UPDATE : MCU_UNI_CMD_BSS_INFO_UPDATE;
+ cmd = enable ? MCU_UNI_CMD(DEV_INFO_UPDATE) : MCU_UNI_CMD(BSS_INFO_UPDATE);
data = enable ? (void *)&dev_req : (void *)&basic_req;
len = enable ? sizeof(dev_req) : sizeof(basic_req);
@@ -1079,7 +1079,7 @@ int mt76_connac_mcu_uni_add_dev(struct mt76_phy *phy,
if (err < 0)
return err;
- cmd = enable ? MCU_UNI_CMD_BSS_INFO_UPDATE : MCU_UNI_CMD_DEV_INFO_UPDATE;
+ cmd = enable ? MCU_UNI_CMD(BSS_INFO_UPDATE) : MCU_UNI_CMD(DEV_INFO_UPDATE);
data = enable ? (void *)&basic_req : (void *)&dev_req;
len = enable ? sizeof(basic_req) : sizeof(dev_req);
@@ -1131,7 +1131,8 @@ int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
mt76_connac_mcu_wtbl_ba_tlv(dev, skb, params, enable, tx, sta_wtbl,
wtbl_hdr);
- ret = mt76_mcu_skb_send_msg(dev, skb, MCU_UNI_CMD_STA_REC_UPDATE, true);
+ ret = mt76_mcu_skb_send_msg(dev, skb,
+ MCU_UNI_CMD(STA_REC_UPDATE), true);
if (ret)
return ret;
@@ -1141,8 +1142,8 @@ int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
mt76_connac_mcu_sta_ba_tlv(skb, params, enable, tx);
- return mt76_mcu_skb_send_msg(dev, skb, MCU_UNI_CMD_STA_REC_UPDATE,
- true);
+ return mt76_mcu_skb_send_msg(dev, skb,
+ MCU_UNI_CMD(STA_REC_UPDATE), true);
}
EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_ba);
@@ -1179,7 +1180,7 @@ mt76_connac_get_phy_mode(struct mt76_phy *phy, struct ieee80211_vif *vif,
if (ht_cap->ht_supported)
mode |= PHY_MODE_GN;
- if (he_cap->has_he)
+ if (he_cap && he_cap->has_he)
mode |= PHY_MODE_AX_24G;
} else if (band == NL80211_BAND_5GHZ || band == NL80211_BAND_6GHZ) {
mode |= PHY_MODE_A;
@@ -1190,7 +1191,7 @@ mt76_connac_get_phy_mode(struct mt76_phy *phy, struct ieee80211_vif *vif,
if (vht_cap->vht_supported)
mode |= PHY_MODE_AC;
- if (he_cap->has_he) {
+ if (he_cap && he_cap->has_he) {
if (band == NL80211_BAND_6GHZ)
mode |= PHY_MODE_AX_6G;
else
@@ -1352,7 +1353,7 @@ int mt76_connac_mcu_uni_add_bss(struct mt76_phy *phy,
basic_req.basic.sta_idx = cpu_to_le16(wcid->idx);
basic_req.basic.conn_state = !enable;
- err = mt76_mcu_send_msg(mdev, MCU_UNI_CMD_BSS_INFO_UPDATE, &basic_req,
+ err = mt76_mcu_send_msg(mdev, MCU_UNI_CMD(BSS_INFO_UPDATE), &basic_req,
sizeof(basic_req), true);
if (err < 0)
return err;
@@ -1390,7 +1391,7 @@ int mt76_connac_mcu_uni_add_bss(struct mt76_phy *phy,
mt76_connac_mcu_uni_bss_he_tlv(phy, vif,
(struct tlv *)&he_req.he);
- err = mt76_mcu_send_msg(mdev, MCU_UNI_CMD_BSS_INFO_UPDATE,
+ err = mt76_mcu_send_msg(mdev, MCU_UNI_CMD(BSS_INFO_UPDATE),
&he_req, sizeof(he_req), true);
if (err < 0)
return err;
@@ -1428,7 +1429,7 @@ int mt76_connac_mcu_uni_add_bss(struct mt76_phy *phy,
else if (rlm_req.rlm.control_channel > rlm_req.rlm.center_chan)
rlm_req.rlm.sco = 3; /* SCB */
- return mt76_mcu_send_msg(mdev, MCU_UNI_CMD_BSS_INFO_UPDATE, &rlm_req,
+ return mt76_mcu_send_msg(mdev, MCU_UNI_CMD(BSS_INFO_UPDATE), &rlm_req,
sizeof(rlm_req), true);
}
EXPORT_SYMBOL_GPL(mt76_connac_mcu_uni_add_bss);
@@ -2008,12 +2009,12 @@ mt76_connac_mcu_rate_txpower_band(struct mt76_phy *phy,
}
batch_size = DIV_ROUND_UP(n_chan, batch_len);
- if (!phy->cap.has_5ghz)
- last_ch = chan_list_2ghz[n_chan - 1];
- else if (phy->cap.has_6ghz)
- last_ch = chan_list_6ghz[n_chan - 1];
+ if (phy->cap.has_6ghz)
+ last_ch = chan_list_6ghz[ARRAY_SIZE(chan_list_6ghz) - 1];
+ else if (phy->cap.has_5ghz)
+ last_ch = chan_list_5ghz[ARRAY_SIZE(chan_list_5ghz) - 1];
else
- last_ch = chan_list_5ghz[n_chan - 1];
+ last_ch = chan_list_2ghz[ARRAY_SIZE(chan_list_2ghz) - 1];
for (i = 0; i < batch_size; i++) {
struct mt76_connac_tx_power_limit_tlv tx_power_tlv = {};
@@ -2143,7 +2144,7 @@ int mt76_connac_mcu_update_arp_filter(struct mt76_dev *dev,
memcpy(addr, &info->arp_addr_list[i], sizeof(__be32));
}
- return mt76_mcu_skb_send_msg(dev, skb, MCU_UNI_CMD_OFFLOAD, true);
+ return mt76_mcu_skb_send_msg(dev, skb, MCU_UNI_CMD(OFFLOAD), true);
}
EXPORT_SYMBOL_GPL(mt76_connac_mcu_update_arp_filter);
@@ -2249,7 +2250,8 @@ int mt76_connac_mcu_update_gtk_rekey(struct ieee80211_hw *hw,
memcpy(gtk_tlv->kck, key->kck, NL80211_KCK_LEN);
memcpy(gtk_tlv->replay_ctr, key->replay_ctr, NL80211_REPLAY_CTR_LEN);
- return mt76_mcu_skb_send_msg(phy->dev, skb, MCU_UNI_CMD_OFFLOAD, true);
+ return mt76_mcu_skb_send_msg(phy->dev, skb,
+ MCU_UNI_CMD(OFFLOAD), true);
}
EXPORT_SYMBOL_GPL(mt76_connac_mcu_update_gtk_rekey);
@@ -2275,8 +2277,8 @@ mt76_connac_mcu_set_arp_filter(struct mt76_dev *dev, struct ieee80211_vif *vif,
},
};
- return mt76_mcu_send_msg(dev, MCU_UNI_CMD_OFFLOAD, &req, sizeof(req),
- true);
+ return mt76_mcu_send_msg(dev, MCU_UNI_CMD(OFFLOAD), &req,
+ sizeof(req), true);
}
static int
@@ -2301,8 +2303,8 @@ mt76_connac_mcu_set_gtk_rekey(struct mt76_dev *dev, struct ieee80211_vif *vif,
},
};
- return mt76_mcu_send_msg(dev, MCU_UNI_CMD_OFFLOAD, &req, sizeof(req),
- true);
+ return mt76_mcu_send_msg(dev, MCU_UNI_CMD(OFFLOAD), &req,
+ sizeof(req), true);
}
static int
@@ -2331,8 +2333,8 @@ mt76_connac_mcu_set_suspend_mode(struct mt76_dev *dev,
},
};
- return mt76_mcu_send_msg(dev, MCU_UNI_CMD_SUSPEND, &req, sizeof(req),
- true);
+ return mt76_mcu_send_msg(dev, MCU_UNI_CMD(SUSPEND), &req,
+ sizeof(req), true);
}
static int
@@ -2366,7 +2368,7 @@ mt76_connac_mcu_set_wow_pattern(struct mt76_dev *dev,
memcpy(ptlv->pattern, pattern->pattern, pattern->pattern_len);
memcpy(ptlv->mask, pattern->mask, DIV_ROUND_UP(pattern->pattern_len, 8));
- return mt76_mcu_skb_send_msg(dev, skb, MCU_UNI_CMD_SUSPEND, true);
+ return mt76_mcu_skb_send_msg(dev, skb, MCU_UNI_CMD(SUSPEND), true);
}
static int
@@ -2418,8 +2420,8 @@ mt76_connac_mcu_set_wow_ctrl(struct mt76_phy *phy, struct ieee80211_vif *vif,
else if (mt76_is_sdio(dev))
req.wow_ctrl_tlv.wakeup_hif = WOW_GPIO;
- return mt76_mcu_send_msg(dev, MCU_UNI_CMD_SUSPEND, &req, sizeof(req),
- true);
+ return mt76_mcu_send_msg(dev, MCU_UNI_CMD(SUSPEND), &req,
+ sizeof(req), true);
}
int mt76_connac_mcu_set_hif_suspend(struct mt76_dev *dev, bool suspend)
@@ -2452,8 +2454,8 @@ int mt76_connac_mcu_set_hif_suspend(struct mt76_dev *dev, bool suspend)
else if (mt76_is_sdio(dev))
req.hdr.hif_type = 0;
- return mt76_mcu_send_msg(dev, MCU_UNI_CMD_HIF_CTRL, &req, sizeof(req),
- true);
+ return mt76_mcu_send_msg(dev, MCU_UNI_CMD(HIF_CTRL), &req,
+ sizeof(req), true);
}
EXPORT_SYMBOL_GPL(mt76_connac_mcu_set_hif_suspend);
@@ -2461,7 +2463,7 @@ void mt76_connac_mcu_set_suspend_iter(void *priv, u8 *mac,
struct ieee80211_vif *vif)
{
struct mt76_phy *phy = priv;
- bool suspend = test_bit(MT76_STATE_SUSPEND, &phy->state);
+ bool suspend = !test_bit(MT76_STATE_RUNNING, &phy->state);
struct ieee80211_hw *hw = phy->hw;
struct cfg80211_wowlan *wowlan = hw->wiphy->wowlan_config;
int i;
diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h
index 4e2c9dafd776..5c5fab9154e5 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h
@@ -496,29 +496,42 @@ enum {
#define MCU_CMD_UNI_EXT_ACK (MCU_CMD_ACK | MCU_CMD_UNI | \
MCU_CMD_QUERY)
-#define MCU_FW_PREFIX BIT(31)
-#define MCU_UNI_PREFIX BIT(30)
#define MCU_CE_PREFIX BIT(29)
-#define MCU_QUERY_PREFIX BIT(28)
-#define MCU_CMD_MASK ~(MCU_FW_PREFIX | MCU_UNI_PREFIX | \
- MCU_CE_PREFIX | MCU_QUERY_PREFIX)
-
-#define MCU_QUERY_MASK BIT(16)
+#define MCU_CMD_MASK ~(MCU_CE_PREFIX)
+
+#define __MCU_CMD_FIELD_ID GENMASK(7, 0)
+#define __MCU_CMD_FIELD_EXT_ID GENMASK(15, 8)
+#define __MCU_CMD_FIELD_QUERY BIT(16)
+#define __MCU_CMD_FIELD_UNI BIT(17)
+
+#define MCU_CMD(_t) FIELD_PREP(__MCU_CMD_FIELD_ID, \
+ MCU_CMD_##_t)
+#define MCU_EXT_CMD(_t) (MCU_CMD(EXT_CID) | \
+ FIELD_PREP(__MCU_CMD_FIELD_EXT_ID, \
+ MCU_EXT_CMD_##_t))
+#define MCU_EXT_QUERY(_t) (MCU_EXT_CMD(_t) | __MCU_CMD_FIELD_QUERY)
+#define MCU_UNI_CMD(_t) (__MCU_CMD_FIELD_UNI | \
+ FIELD_PREP(__MCU_CMD_FIELD_ID, \
+ MCU_UNI_CMD_##_t))
enum {
MCU_EXT_CMD_EFUSE_ACCESS = 0x01,
MCU_EXT_CMD_RF_REG_ACCESS = 0x02,
+ MCU_EXT_CMD_RF_TEST = 0x04,
MCU_EXT_CMD_PM_STATE_CTRL = 0x07,
MCU_EXT_CMD_CHANNEL_SWITCH = 0x08,
MCU_EXT_CMD_SET_TX_POWER_CTRL = 0x11,
MCU_EXT_CMD_FW_LOG_2_HOST = 0x13,
+ MCU_EXT_CMD_TXBF_ACTION = 0x1e,
MCU_EXT_CMD_EFUSE_BUFFER_MODE = 0x21,
+ MCU_EXT_CMD_THERMAL_PROT = 0x23,
MCU_EXT_CMD_STA_REC_UPDATE = 0x25,
MCU_EXT_CMD_BSS_INFO_UPDATE = 0x26,
MCU_EXT_CMD_EDCA_UPDATE = 0x27,
MCU_EXT_CMD_DEV_INFO_UPDATE = 0x2A,
- MCU_EXT_CMD_GET_TEMP = 0x2c,
+ MCU_EXT_CMD_THERMAL_CTRL = 0x2c,
MCU_EXT_CMD_WTBL_UPDATE = 0x32,
+ MCU_EXT_CMD_SET_DRR_CTRL = 0x36,
MCU_EXT_CMD_SET_RDD_CTRL = 0x3a,
MCU_EXT_CMD_ATE_CTRL = 0x3d,
MCU_EXT_CMD_PROTECT_CTRL = 0x3e,
@@ -527,35 +540,51 @@ enum {
MCU_EXT_CMD_RX_HDR_TRANS = 0x47,
MCU_EXT_CMD_MUAR_UPDATE = 0x48,
MCU_EXT_CMD_BCN_OFFLOAD = 0x49,
+ MCU_EXT_CMD_RX_AIRTIME_CTRL = 0x4a,
MCU_EXT_CMD_SET_RX_PATH = 0x4e,
+ MCU_EXT_CMD_EFUSE_FREE_BLOCK = 0x4f,
MCU_EXT_CMD_TX_POWER_FEATURE_CTRL = 0x58,
MCU_EXT_CMD_RXDCOC_CAL = 0x59,
+ MCU_EXT_CMD_GET_MIB_INFO = 0x5a,
MCU_EXT_CMD_TXDPD_CAL = 0x60,
MCU_EXT_CMD_CAL_CACHE = 0x67,
- MCU_EXT_CMD_SET_RDD_TH = 0x7c,
+ MCU_EXT_CMD_SET_RADAR_TH = 0x7c,
MCU_EXT_CMD_SET_RDD_PATTERN = 0x7d,
+ MCU_EXT_CMD_MWDS_SUPPORT = 0x80,
+ MCU_EXT_CMD_SET_SER_TRIGGER = 0x81,
+ MCU_EXT_CMD_SCS_CTRL = 0x82,
+ MCU_EXT_CMD_TWT_AGRT_UPDATE = 0x94,
+ MCU_EXT_CMD_FW_DBG_CTRL = 0x95,
+ MCU_EXT_CMD_OFFCH_SCAN_CTRL = 0x9a,
+ MCU_EXT_CMD_SET_RDD_TH = 0x9d,
+ MCU_EXT_CMD_MURU_CTRL = 0x9f,
+ MCU_EXT_CMD_SET_SPR = 0xa8,
+ MCU_EXT_CMD_GROUP_PRE_CAL_INFO = 0xab,
+ MCU_EXT_CMD_DPD_PRE_CAL_INFO = 0xac,
+ MCU_EXT_CMD_PHY_STAT_INFO = 0xad,
};
enum {
- MCU_UNI_CMD_DEV_INFO_UPDATE = MCU_UNI_PREFIX | 0x01,
- MCU_UNI_CMD_BSS_INFO_UPDATE = MCU_UNI_PREFIX | 0x02,
- MCU_UNI_CMD_STA_REC_UPDATE = MCU_UNI_PREFIX | 0x03,
- MCU_UNI_CMD_SUSPEND = MCU_UNI_PREFIX | 0x05,
- MCU_UNI_CMD_OFFLOAD = MCU_UNI_PREFIX | 0x06,
- MCU_UNI_CMD_HIF_CTRL = MCU_UNI_PREFIX | 0x07,
+ MCU_UNI_CMD_DEV_INFO_UPDATE = 0x01,
+ MCU_UNI_CMD_BSS_INFO_UPDATE = 0x02,
+ MCU_UNI_CMD_STA_REC_UPDATE = 0x03,
+ MCU_UNI_CMD_SUSPEND = 0x05,
+ MCU_UNI_CMD_OFFLOAD = 0x06,
+ MCU_UNI_CMD_HIF_CTRL = 0x07,
};
enum {
- MCU_CMD_TARGET_ADDRESS_LEN_REQ = MCU_FW_PREFIX | 0x01,
- MCU_CMD_FW_START_REQ = MCU_FW_PREFIX | 0x02,
+ MCU_CMD_TARGET_ADDRESS_LEN_REQ = 0x01,
+ MCU_CMD_FW_START_REQ = 0x02,
MCU_CMD_INIT_ACCESS_REG = 0x3,
- MCU_CMD_NIC_POWER_CTRL = MCU_FW_PREFIX | 0x4,
- MCU_CMD_PATCH_START_REQ = MCU_FW_PREFIX | 0x05,
- MCU_CMD_PATCH_FINISH_REQ = MCU_FW_PREFIX | 0x07,
- MCU_CMD_PATCH_SEM_CONTROL = MCU_FW_PREFIX | 0x10,
+ MCU_CMD_NIC_POWER_CTRL = 0x4,
+ MCU_CMD_PATCH_START_REQ = 0x05,
+ MCU_CMD_PATCH_FINISH_REQ = 0x07,
+ MCU_CMD_PATCH_SEM_CONTROL = 0x10,
+ MCU_CMD_WA_PARAM = 0xc4,
MCU_CMD_EXT_CID = 0xed,
- MCU_CMD_FW_SCATTER = MCU_FW_PREFIX | 0xee,
- MCU_CMD_RESTART_DL_REQ = MCU_FW_PREFIX | 0xef,
+ MCU_CMD_FW_SCATTER = 0xee,
+ MCU_CMD_RESTART_DL_REQ = 0xef,
};
/* offload mcu commands */
@@ -575,7 +604,7 @@ enum {
MCU_CMD_GET_NIC_CAPAB = MCU_CE_PREFIX | 0x8a,
MCU_CMD_SET_MU_EDCA_PARMS = MCU_CE_PREFIX | 0xb0,
MCU_CMD_REG_WRITE = MCU_CE_PREFIX | 0xc0,
- MCU_CMD_REG_READ = MCU_CE_PREFIX | MCU_QUERY_MASK | 0xc0,
+ MCU_CMD_REG_READ = MCU_CE_PREFIX | __MCU_CMD_FIELD_QUERY | 0xc0,
MCU_CMD_CHIP_CONFIG = MCU_CE_PREFIX | 0xca,
MCU_CMD_FWLOG_2_HOST = MCU_CE_PREFIX | 0xc5,
MCU_CMD_GET_WTBL = MCU_CE_PREFIX | 0xcd,
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mac.c b/drivers/net/wireless/mediatek/mt76/mt7915/mac.c
index 809dc18e5083..38d66411444a 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/mac.c
@@ -426,9 +426,16 @@ mt7915_mac_fill_rx(struct mt7915_dev *dev, struct sk_buff *skb)
if (rxd2 & MT_RXD2_NORMAL_AMSDU_ERR)
return -EINVAL;
+ hdr_trans = rxd2 & MT_RXD2_NORMAL_HDR_TRANS;
+ if (hdr_trans && (rxd1 & MT_RXD1_NORMAL_CM))
+ return -EINVAL;
+
+ /* ICV error or CCMP/BIP/WPI MIC error */
+ if (rxd1 & MT_RXD1_NORMAL_ICV_ERR)
+ status->flag |= RX_FLAG_ONLY_MONITOR;
+
unicast = FIELD_GET(MT_RXD3_NORMAL_ADDR_TYPE, rxd3) == MT_RXD3_NORMAL_U2M;
idx = FIELD_GET(MT_RXD1_NORMAL_WLAN_IDX, rxd1);
- hdr_trans = rxd2 & MT_RXD2_NORMAL_HDR_TRANS;
status->wcid = mt7915_rx_get_wcid(dev, idx, unicast);
if (status->wcid) {
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
index 852d5d97c70b..8215b3d79bbd 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
@@ -1752,33 +1752,6 @@ int mt7915_mcu_sta_update_hdr_trans(struct mt7915_dev *dev,
true);
}
-int mt7915_mcu_add_smps(struct mt7915_dev *dev, struct ieee80211_vif *vif,
- struct ieee80211_sta *sta)
-{
- struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
- struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
- struct wtbl_req_hdr *wtbl_hdr;
- struct tlv *sta_wtbl;
- struct sk_buff *skb;
-
- skb = mt7915_mcu_alloc_sta_req(dev, mvif, msta,
- MT7915_STA_UPDATE_MAX_SIZE);
- if (IS_ERR(skb))
- return PTR_ERR(skb);
-
- sta_wtbl = mt7915_mcu_add_tlv(skb, STA_REC_WTBL, sizeof(struct tlv));
-
- wtbl_hdr = mt7915_mcu_alloc_wtbl_req(dev, msta, WTBL_SET, sta_wtbl,
- &skb);
- if (IS_ERR(wtbl_hdr))
- return PTR_ERR(wtbl_hdr);
-
- mt7915_mcu_wtbl_smps_tlv(skb, sta, sta_wtbl, wtbl_hdr);
-
- return mt76_mcu_skb_send_msg(&dev->mt76, skb,
- MCU_EXT_CMD(STA_REC_UPDATE), true);
-}
-
static inline bool
mt7915_is_ebf_supported(struct mt7915_phy *phy, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, bool bfee)
@@ -2049,6 +2022,21 @@ mt7915_mcu_sta_bfee_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
bfee->fb_identity_matrix = (nrow == 1 && tx_ant == 2);
}
+static enum mcu_mmps_mode
+mt7915_mcu_get_mmps_mode(enum ieee80211_smps_mode smps)
+{
+ switch (smps) {
+ case IEEE80211_SMPS_OFF:
+ return MCU_MMPS_DISABLE;
+ case IEEE80211_SMPS_STATIC:
+ return MCU_MMPS_STATIC;
+ case IEEE80211_SMPS_DYNAMIC:
+ return MCU_MMPS_DYNAMIC;
+ default:
+ return MCU_MMPS_DISABLE;
+ }
+}
+
int mt7915_mcu_set_fixed_rate_ctrl(struct mt7915_dev *dev,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta,
@@ -2076,7 +2064,11 @@ int mt7915_mcu_set_fixed_rate_ctrl(struct mt7915_dev *dev,
case RATE_PARAM_FIXED_MCS:
case RATE_PARAM_FIXED_GI:
case RATE_PARAM_FIXED_HE_LTF:
- ra->phy = *phy;
+ if (phy)
+ ra->phy = *phy;
+ break;
+ case RATE_PARAM_MMPS_UPDATE:
+ ra->mmps_mode = mt7915_mcu_get_mmps_mode(sta->smps_mode);
break;
default:
break;
@@ -2087,6 +2079,39 @@ int mt7915_mcu_set_fixed_rate_ctrl(struct mt7915_dev *dev,
MCU_EXT_CMD(STA_REC_UPDATE), true);
}
+int mt7915_mcu_add_smps(struct mt7915_dev *dev, struct ieee80211_vif *vif,
+ struct ieee80211_sta *sta)
+{
+ struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
+ struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
+ struct wtbl_req_hdr *wtbl_hdr;
+ struct tlv *sta_wtbl;
+ struct sk_buff *skb;
+ int ret;
+
+ skb = mt7915_mcu_alloc_sta_req(dev, mvif, msta,
+ MT7915_STA_UPDATE_MAX_SIZE);
+ if (IS_ERR(skb))
+ return PTR_ERR(skb);
+
+ sta_wtbl = mt7915_mcu_add_tlv(skb, STA_REC_WTBL, sizeof(struct tlv));
+
+ wtbl_hdr = mt7915_mcu_alloc_wtbl_req(dev, msta, WTBL_SET, sta_wtbl,
+ &skb);
+ if (IS_ERR(wtbl_hdr))
+ return PTR_ERR(wtbl_hdr);
+
+ mt7915_mcu_wtbl_smps_tlv(skb, sta, sta_wtbl, wtbl_hdr);
+
+ ret = mt76_mcu_skb_send_msg(&dev->mt76, skb,
+ MCU_EXT_CMD(STA_REC_UPDATE), true);
+ if (ret)
+ return ret;
+
+ return mt7915_mcu_set_fixed_rate_ctrl(dev, vif, sta, NULL,
+ RATE_PARAM_MMPS_UPDATE);
+}
+
static int
mt7915_mcu_add_rate_ctrl_fixed(struct mt7915_dev *dev,
struct ieee80211_vif *vif,
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h
index 1f5a64ba9b59..628e90d0c394 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h
@@ -365,6 +365,13 @@ enum {
MCU_PHY_STATE_OFDMLQ_CNINFO,
};
+enum mcu_mmps_mode {
+ MCU_MMPS_STATIC,
+ MCU_MMPS_DYNAMIC,
+ MCU_MMPS_RSV,
+ MCU_MMPS_DISABLE,
+};
+
#define STA_TYPE_STA BIT(0)
#define STA_TYPE_AP BIT(1)
#define STA_TYPE_ADHOC BIT(2)
@@ -960,6 +967,7 @@ struct sta_rec_ra_fixed {
enum {
RATE_PARAM_FIXED = 3,
+ RATE_PARAM_MMPS_UPDATE = 5,
RATE_PARAM_FIXED_HE_LTF = 7,
RATE_PARAM_FIXED_MCS,
RATE_PARAM_FIXED_GI = 11,
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c b/drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c
index 7cdfdf83529f..86fd7292b229 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c
@@ -276,7 +276,7 @@ mt7921_pm_set(void *data, u64 val)
struct mt7921_dev *dev = data;
struct mt76_connac_pm *pm = &dev->pm;
- mt7921_mutex_acquire(dev);
+ mutex_lock(&dev->mt76.mutex);
if (val == pm->enable)
goto out;
@@ -285,7 +285,11 @@ mt7921_pm_set(void *data, u64 val)
pm->stats.last_wake_event = jiffies;
pm->stats.last_doze_event = jiffies;
}
- pm->enable = val;
+ /* make sure the chip is awake here and ps_work is scheduled
+ * just at end of the this routine.
+ */
+ pm->enable = false;
+ mt76_connac_pm_wake(&dev->mphy, pm);
ieee80211_iterate_active_interfaces(mt76_hw(dev),
IEEE80211_IFACE_ITER_RESUME_ALL,
@@ -293,8 +297,10 @@ mt7921_pm_set(void *data, u64 val)
mt76_connac_mcu_set_deep_sleep(&dev->mt76, pm->ds_enable);
+ pm->enable = val;
+ mt76_connac_power_save_sched(&dev->mphy, pm);
out:
- mt7921_mutex_release(dev);
+ mutex_unlock(&dev->mt76.mutex);
return 0;
}
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mac.c b/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
index db3302b1576a..fc21a78b37c4 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
@@ -428,10 +428,17 @@ mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb)
if (rxd2 & MT_RXD2_NORMAL_AMSDU_ERR)
return -EINVAL;
+ hdr_trans = rxd2 & MT_RXD2_NORMAL_HDR_TRANS;
+ if (hdr_trans && (rxd1 & MT_RXD1_NORMAL_CM))
+ return -EINVAL;
+
+ /* ICV error or CCMP/BIP/WPI MIC error */
+ if (rxd1 & MT_RXD1_NORMAL_ICV_ERR)
+ status->flag |= RX_FLAG_ONLY_MONITOR;
+
chfreq = FIELD_GET(MT_RXD3_NORMAL_CH_FREQ, rxd3);
unicast = FIELD_GET(MT_RXD3_NORMAL_ADDR_TYPE, rxd3) == MT_RXD3_NORMAL_U2M;
idx = FIELD_GET(MT_RXD1_NORMAL_WLAN_IDX, rxd1);
- hdr_trans = rxd2 & MT_RXD2_NORMAL_HDR_TRANS;
status->wcid = mt7921_rx_get_wcid(dev, idx, unicast);
if (status->wcid) {
@@ -903,7 +910,7 @@ void mt7921_mac_write_txwi(struct mt7921_dev *dev, __le32 *txwi,
mt7921_mac_write_txwi_80211(dev, txwi, skb, key);
if (txwi[2] & cpu_to_le32(MT_TXD2_FIX_RATE)) {
- int rateidx = ffs(vif->bss_conf.basic_rates) - 1;
+ int rateidx = vif ? ffs(vif->bss_conf.basic_rates) - 1 : 0;
u16 rate, mode;
/* hardware won't add HTC for mgmt/ctrl frame */
@@ -1065,7 +1072,7 @@ mt7921_mac_add_txs_skb(struct mt7921_dev *dev, struct mt76_wcid *wcid, int pid,
return !!skb;
}
-static void mt7921_mac_add_txs(struct mt7921_dev *dev, void *data)
+void mt7921_mac_add_txs(struct mt7921_dev *dev, void *data)
{
struct mt7921_sta *msta = NULL;
struct mt76_wcid *wcid;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/main.c b/drivers/net/wireless/mediatek/mt76/mt7921/main.c
index 633c6d2a57ac..8c55562c1a8d 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/main.c
@@ -166,7 +166,7 @@ mt7921_init_he_caps(struct mt7921_phy *phy, enum nl80211_band band,
if (vht_cap->cap & IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN)
cap |= IEEE80211_HE_6GHZ_CAP_RX_ANTPAT_CONS;
- data->he_6ghz_capa.capa = cpu_to_le16(cap);
+ data[idx].he_6ghz_capa.capa = cpu_to_le16(cap);
}
idx++;
}
@@ -221,7 +221,7 @@ int __mt7921_start(struct mt7921_phy *phy)
if (err)
return err;
- err = mt7921_mcu_set_chan_info(phy, MCU_EXT_CMD_SET_RX_PATH);
+ err = mt7921_mcu_set_chan_info(phy, MCU_EXT_CMD(SET_RX_PATH));
if (err)
return err;
@@ -318,12 +318,6 @@ static int mt7921_add_interface(struct ieee80211_hw *hw,
mtxq->wcid = &mvif->sta.wcid;
}
- if (vif->type != NL80211_IFTYPE_AP &&
- (!mvif->mt76.omac_idx || mvif->mt76.omac_idx > 3))
- vif->offload_flags = 0;
-
- vif->offload_flags |= IEEE80211_OFFLOAD_ENCAP_4ADDR;
-
out:
mt7921_mutex_release(dev);
@@ -369,7 +363,7 @@ static int mt7921_set_channel(struct mt7921_phy *phy)
mt76_set_channel(phy->mt76);
- ret = mt7921_mcu_set_chan_info(phy, MCU_EXT_CMD_CHANNEL_SWITCH);
+ ret = mt7921_mcu_set_chan_info(phy, MCU_EXT_CMD(CHANNEL_SWITCH));
if (ret)
goto out;
@@ -1238,7 +1232,6 @@ static int mt7921_suspend(struct ieee80211_hw *hw,
{
struct mt7921_dev *dev = mt7921_hw_dev(hw);
struct mt7921_phy *phy = mt7921_hw_phy(hw);
- int err;
cancel_delayed_work_sync(&phy->scan_work);
cancel_delayed_work_sync(&phy->mt76->mac_work);
@@ -1249,34 +1242,24 @@ static int mt7921_suspend(struct ieee80211_hw *hw,
mt7921_mutex_acquire(dev);
clear_bit(MT76_STATE_RUNNING, &phy->mt76->state);
-
- set_bit(MT76_STATE_SUSPEND, &phy->mt76->state);
ieee80211_iterate_active_interfaces(hw,
IEEE80211_IFACE_ITER_RESUME_ALL,
mt76_connac_mcu_set_suspend_iter,
&dev->mphy);
- err = mt76_connac_mcu_set_hif_suspend(&dev->mt76, true);
-
mt7921_mutex_release(dev);
- return err;
+ return 0;
}
static int mt7921_resume(struct ieee80211_hw *hw)
{
struct mt7921_dev *dev = mt7921_hw_dev(hw);
struct mt7921_phy *phy = mt7921_hw_phy(hw);
- int err;
mt7921_mutex_acquire(dev);
- err = mt76_connac_mcu_set_hif_suspend(&dev->mt76, false);
- if (err < 0)
- goto out;
-
set_bit(MT76_STATE_RUNNING, &phy->mt76->state);
- clear_bit(MT76_STATE_SUSPEND, &phy->mt76->state);
ieee80211_iterate_active_interfaces(hw,
IEEE80211_IFACE_ITER_RESUME_ALL,
mt76_connac_mcu_set_suspend_iter,
@@ -1284,11 +1267,10 @@ static int mt7921_resume(struct ieee80211_hw *hw)
ieee80211_queue_delayed_work(hw, &phy->mt76->mac_work,
MT7921_WATCHDOG_TIME);
-out:
mt7921_mutex_release(dev);
- return err;
+ return 0;
}
static void mt7921_set_wakeup(struct ieee80211_hw *hw, bool enabled)
@@ -1334,7 +1316,7 @@ static void mt7921_sta_set_decap_offload(struct ieee80211_hw *hw,
clear_bit(MT_WCID_FLAG_HDR_TRANS, &msta->wcid.flags);
mt76_connac_mcu_sta_update_hdr_trans(&dev->mt76, vif, &msta->wcid,
- MCU_UNI_CMD_STA_REC_UPDATE);
+ MCU_UNI_CMD(STA_REC_UPDATE));
}
static int mt7921_set_sar_specs(struct ieee80211_hw *hw,
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
index 6ada1ebe7d68..484a8c57b862 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
@@ -179,24 +179,20 @@ int mt7921_mcu_parse_response(struct mt76_dev *mdev, int cmd,
if (seq != rxd->seq)
return -EAGAIN;
- switch (cmd) {
- case MCU_CMD_PATCH_SEM_CONTROL:
+ if (cmd == MCU_CMD_PATCH_SEM_CONTROL) {
skb_pull(skb, sizeof(*rxd) - 4);
ret = *skb->data;
- break;
- case MCU_EXT_CMD_GET_TEMP:
+ } else if (cmd == MCU_EXT_CMD(THERMAL_CTRL)) {
skb_pull(skb, sizeof(*rxd) + 4);
ret = le32_to_cpu(*(__le32 *)skb->data);
- break;
- case MCU_EXT_CMD_EFUSE_ACCESS:
+ } else if (cmd == MCU_EXT_CMD(EFUSE_ACCESS)) {
ret = mt7921_mcu_parse_eeprom(mdev, skb);
- break;
- case MCU_UNI_CMD_DEV_INFO_UPDATE:
- case MCU_UNI_CMD_BSS_INFO_UPDATE:
- case MCU_UNI_CMD_STA_REC_UPDATE:
- case MCU_UNI_CMD_HIF_CTRL:
- case MCU_UNI_CMD_OFFLOAD:
- case MCU_UNI_CMD_SUSPEND: {
+ } else if (cmd == MCU_UNI_CMD(DEV_INFO_UPDATE) ||
+ cmd == MCU_UNI_CMD(BSS_INFO_UPDATE) ||
+ cmd == MCU_UNI_CMD(STA_REC_UPDATE) ||
+ cmd == MCU_UNI_CMD(HIF_CTRL) ||
+ cmd == MCU_UNI_CMD(OFFLOAD) ||
+ cmd == MCU_UNI_CMD(SUSPEND)) {
struct mt7921_mcu_uni_event *event;
skb_pull(skb, sizeof(*rxd));
@@ -205,19 +201,14 @@ int mt7921_mcu_parse_response(struct mt76_dev *mdev, int cmd,
/* skip invalid event */
if (mcu_cmd != event->cid)
ret = -EAGAIN;
- break;
- }
- case MCU_CMD_REG_READ: {
+ } else if (cmd == MCU_CMD_REG_READ) {
struct mt7921_mcu_reg_event *event;
skb_pull(skb, sizeof(*rxd));
event = (struct mt7921_mcu_reg_event *)skb->data;
ret = (int)le32_to_cpu(event->val);
- break;
- }
- default:
+ } else {
skb_pull(skb, sizeof(struct mt7921_mcu_rxd));
- break;
}
return ret;
@@ -228,23 +219,19 @@ int mt7921_mcu_fill_message(struct mt76_dev *mdev, struct sk_buff *skb,
int cmd, int *wait_seq)
{
struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76);
- int txd_len, mcu_cmd = cmd & MCU_CMD_MASK;
+ int txd_len, mcu_cmd = FIELD_GET(__MCU_CMD_FIELD_ID, cmd);
struct mt7921_uni_txd *uni_txd;
struct mt7921_mcu_txd *mcu_txd;
__le32 *txd;
u32 val;
u8 seq;
- switch (cmd) {
- case MCU_UNI_CMD_HIF_CTRL:
- case MCU_UNI_CMD_SUSPEND:
- case MCU_UNI_CMD_OFFLOAD:
- mdev->mcu.timeout = HZ / 3;
- break;
- default:
+ if (cmd == MCU_UNI_CMD(HIF_CTRL) ||
+ cmd == MCU_UNI_CMD(SUSPEND) ||
+ cmd == MCU_UNI_CMD(OFFLOAD))
+ mdev->mcu.timeout = HZ;
+ else
mdev->mcu.timeout = 3 * HZ;
- break;
- }
seq = ++dev->mt76.mcu.msg_seq & 0xf;
if (!seq)
@@ -253,7 +240,7 @@ int mt7921_mcu_fill_message(struct mt76_dev *mdev, struct sk_buff *skb,
if (cmd == MCU_CMD_FW_SCATTER)
goto exit;
- txd_len = cmd & MCU_UNI_PREFIX ? sizeof(*uni_txd) : sizeof(*mcu_txd);
+ txd_len = cmd & __MCU_CMD_FIELD_UNI ? sizeof(*uni_txd) : sizeof(*mcu_txd);
txd = (__le32 *)skb_push(skb, txd_len);
val = FIELD_PREP(MT_TXD0_TX_BYTES, skb->len) |
@@ -265,7 +252,7 @@ int mt7921_mcu_fill_message(struct mt76_dev *mdev, struct sk_buff *skb,
FIELD_PREP(MT_TXD1_HDR_FORMAT, MT_HDR_FORMAT_CMD);
txd[1] = cpu_to_le32(val);
- if (cmd & MCU_UNI_PREFIX) {
+ if (cmd & __MCU_CMD_FIELD_UNI) {
uni_txd = (struct mt7921_uni_txd *)txd;
uni_txd->len = cpu_to_le16(skb->len - sizeof(uni_txd->txd));
uni_txd->option = MCU_CMD_UNI_EXT_ACK;
@@ -283,34 +270,20 @@ int mt7921_mcu_fill_message(struct mt76_dev *mdev, struct sk_buff *skb,
MT_TX_MCU_PORT_RX_Q0));
mcu_txd->pkt_type = MCU_PKT_ID;
mcu_txd->seq = seq;
+ mcu_txd->cid = mcu_cmd;
+ mcu_txd->s2d_index = MCU_S2D_H2N;
+ mcu_txd->ext_cid = FIELD_GET(__MCU_CMD_FIELD_EXT_ID, cmd);
- switch (cmd & ~MCU_CMD_MASK) {
- case MCU_FW_PREFIX:
- mcu_txd->set_query = MCU_Q_NA;
- mcu_txd->cid = mcu_cmd;
- break;
- case MCU_CE_PREFIX:
- if (cmd & MCU_QUERY_MASK)
+ if (mcu_txd->ext_cid || (cmd & MCU_CE_PREFIX)) {
+ if (cmd & __MCU_CMD_FIELD_QUERY)
mcu_txd->set_query = MCU_Q_QUERY;
else
mcu_txd->set_query = MCU_Q_SET;
- mcu_txd->cid = mcu_cmd;
- break;
- default:
- mcu_txd->cid = MCU_CMD_EXT_CID;
- if (cmd & MCU_QUERY_PREFIX || cmd == MCU_EXT_CMD_EFUSE_ACCESS)
- mcu_txd->set_query = MCU_Q_QUERY;
- else
- mcu_txd->set_query = MCU_Q_SET;
- mcu_txd->ext_cid = mcu_cmd;
- mcu_txd->ext_cid_ack = 1;
- break;
+ mcu_txd->ext_cid_ack = !!mcu_txd->ext_cid;
+ } else {
+ mcu_txd->set_query = MCU_Q_NA;
}
- mcu_txd->s2d_index = MCU_S2D_H2N;
- WARN_ON(cmd == MCU_EXT_CMD_EFUSE_ACCESS &&
- mcu_txd->set_query != MCU_Q_QUERY);
-
exit:
if (wait_seq)
*wait_seq = seq;
@@ -418,6 +391,17 @@ mt7921_mcu_low_power_event(struct mt7921_dev *dev, struct sk_buff *skb)
trace_lp_event(dev, event->state);
}
+static void
+mt7921_mcu_tx_done_event(struct mt7921_dev *dev, struct sk_buff *skb)
+{
+ struct mt7921_mcu_tx_done_event *event;
+
+ skb_pull(skb, sizeof(struct mt7921_mcu_rxd));
+ event = (struct mt7921_mcu_tx_done_event *)skb->data;
+
+ mt7921_mac_add_txs(dev, event->txs);
+}
+
static void
mt7921_mcu_rx_unsolicited_event(struct mt7921_dev *dev, struct sk_buff *skb)
{
@@ -445,6 +429,9 @@ mt7921_mcu_rx_unsolicited_event(struct mt7921_dev *dev, struct sk_buff *skb)
case MCU_EVENT_LP_INFO:
mt7921_mcu_low_power_event(dev, skb);
break;
+ case MCU_EVENT_TX_DONE:
+ mt7921_mcu_tx_done_event(dev, skb);
+ break;
default:
break;
}
@@ -567,7 +554,7 @@ int mt7921_mcu_add_key(struct mt7921_dev *dev, struct ieee80211_vif *vif,
return ret;
return mt76_mcu_skb_send_msg(&dev->mt76, skb,
- MCU_UNI_CMD_STA_REC_UPDATE, true);
+ MCU_UNI_CMD(STA_REC_UPDATE), true);
}
int mt7921_mcu_uni_tx_ba(struct mt7921_dev *dev,
@@ -997,8 +984,8 @@ int mt7921_mcu_set_tx(struct mt7921_dev *dev, struct ieee80211_vif *vif)
e->cw_max = cpu_to_le16(10);
}
- ret = mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_EDCA_UPDATE, &req,
- sizeof(req), true);
+ ret = mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(EDCA_UPDATE),
+ &req, sizeof(req), true);
if (ret)
return ret;
@@ -1070,7 +1057,7 @@ int mt7921_mcu_set_chan_info(struct mt7921_phy *phy, int cmd)
else
req.switch_reason = CH_SWITCH_NORMAL;
- if (cmd == MCU_EXT_CMD_CHANNEL_SWITCH)
+ if (cmd == MCU_EXT_CMD(CHANNEL_SWITCH))
req.rx_streams = hweight8(req.rx_streams);
if (chandef->width == NL80211_CHAN_WIDTH_80P80) {
@@ -1093,7 +1080,7 @@ int mt7921_mcu_set_eeprom(struct mt7921_dev *dev)
.format = EE_FORMAT_WHOLE,
};
- return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD_EFUSE_BUFFER_MODE,
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(EFUSE_BUFFER_MODE),
&req, sizeof(req), true);
}
EXPORT_SYMBOL_GPL(mt7921_mcu_set_eeprom);
@@ -1108,8 +1095,9 @@ int mt7921_mcu_get_eeprom(struct mt7921_dev *dev, u32 offset)
int ret;
u8 *buf;
- ret = mt76_mcu_send_and_get_msg(&dev->mt76, MCU_EXT_CMD_EFUSE_ACCESS, &req,
- sizeof(req), true, &skb);
+ ret = mt76_mcu_send_and_get_msg(&dev->mt76,
+ MCU_EXT_QUERY(EFUSE_ACCESS),
+ &req, sizeof(req), true, &skb);
if (ret)
return ret;
@@ -1154,7 +1142,7 @@ int mt7921_mcu_uni_bss_ps(struct mt7921_dev *dev, struct ieee80211_vif *vif)
if (vif->type != NL80211_IFTYPE_STATION)
return -EOPNOTSUPP;
- return mt76_mcu_send_msg(&dev->mt76, MCU_UNI_CMD_BSS_INFO_UPDATE,
+ return mt76_mcu_send_msg(&dev->mt76, MCU_UNI_CMD(BSS_INFO_UPDATE),
&ps_req, sizeof(ps_req), true);
}
@@ -1190,7 +1178,7 @@ mt7921_mcu_uni_bss_bcnft(struct mt7921_dev *dev, struct ieee80211_vif *vif,
if (vif->type != NL80211_IFTYPE_STATION)
return 0;
- return mt76_mcu_send_msg(&dev->mt76, MCU_UNI_CMD_BSS_INFO_UPDATE,
+ return mt76_mcu_send_msg(&dev->mt76, MCU_UNI_CMD(BSS_INFO_UPDATE),
&bcnft_req, sizeof(bcnft_req), true);
}
@@ -1245,7 +1233,7 @@ int mt7921_mcu_sta_update(struct mt7921_dev *dev, struct ieee80211_sta *sta,
.sta = sta,
.vif = vif,
.enable = enable,
- .cmd = MCU_UNI_CMD_STA_REC_UPDATE,
+ .cmd = MCU_UNI_CMD(STA_REC_UPDATE),
.state = state,
.offload_fw = true,
.rcpi = to_rcpi(rssi),
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.h b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.h
index edc0c73f8c01..68cb0ce013db 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.h
@@ -91,6 +91,33 @@ enum {
MCU_EVENT_COREDUMP = 0xf0,
};
+struct mt7921_mcu_tx_done_event {
+ u8 pid;
+ u8 status;
+ __le16 seq;
+
+ u8 wlan_idx;
+ u8 tx_cnt;
+ __le16 tx_rate;
+
+ u8 flag;
+ u8 tid;
+ u8 rsp_rate;
+ u8 mcs;
+
+ u8 bw;
+ u8 tx_pwr;
+ u8 reason;
+ u8 rsv0[1];
+
+ __le32 delay;
+ __le32 timestamp;
+ __le32 applied_flag;
+ u8 txs[28];
+
+ u8 rsv1[32];
+} __packed;
+
/* ext event table */
enum {
MCU_EXT_EVENT_RATE_REPORT = 0x87,
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h b/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h
index e9c7c3a19507..96647801850a 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h
@@ -446,6 +446,7 @@ int mt7921_mcu_restart(struct mt76_dev *dev);
void mt7921e_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
struct sk_buff *skb);
+int mt7921e_driver_own(struct mt7921_dev *dev);
int mt7921e_mac_reset(struct mt7921_dev *dev);
int mt7921e_mcu_init(struct mt7921_dev *dev);
int mt7921s_wfsys_reset(struct mt7921_dev *dev);
@@ -463,4 +464,5 @@ int mt7921s_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
struct mt76_tx_info *tx_info);
void mt7921s_tx_complete_skb(struct mt76_dev *mdev, struct mt76_queue_entry *e);
bool mt7921s_tx_status_data(struct mt76_dev *mdev, u8 *update);
+void mt7921_mac_add_txs(struct mt7921_dev *dev, void *data);
#endif
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c b/drivers/net/wireless/mediatek/mt76/mt7921/pci.c
index 305b63fa1a8a..40186e6cd865 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/pci.c
@@ -235,7 +235,6 @@ static int mt7921_pci_suspend(struct pci_dev *pdev, pm_message_t state)
struct mt76_dev *mdev = pci_get_drvdata(pdev);
struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76);
struct mt76_connac_pm *pm = &dev->pm;
- bool hif_suspend;
int i, err;
pm->suspended = true;
@@ -246,12 +245,9 @@ static int mt7921_pci_suspend(struct pci_dev *pdev, pm_message_t state)
if (err < 0)
goto restore_suspend;
- hif_suspend = !test_bit(MT76_STATE_SUSPEND, &dev->mphy.state);
- if (hif_suspend) {
- err = mt76_connac_mcu_set_hif_suspend(mdev, true);
- if (err)
- goto restore_suspend;
- }
+ err = mt76_connac_mcu_set_hif_suspend(mdev, true);
+ if (err)
+ goto restore_suspend;
/* always enable deep sleep during suspend to reduce
* power consumption
@@ -302,8 +298,7 @@ static int mt7921_pci_suspend(struct pci_dev *pdev, pm_message_t state)
if (!pm->ds_enable)
mt76_connac_mcu_set_deep_sleep(&dev->mt76, false);
- if (hif_suspend)
- mt76_connac_mcu_set_hif_suspend(mdev, false);
+ mt76_connac_mcu_set_hif_suspend(mdev, false);
restore_suspend:
pm->suspended = false;
@@ -318,7 +313,6 @@ static int mt7921_pci_resume(struct pci_dev *pdev)
struct mt76_connac_pm *pm = &dev->pm;
int i, err;
- pm->suspended = false;
err = pci_set_power_state(pdev, PCI_D0);
if (err)
return err;
@@ -356,8 +350,11 @@ static int mt7921_pci_resume(struct pci_dev *pdev)
if (!pm->ds_enable)
mt76_connac_mcu_set_deep_sleep(&dev->mt76, false);
- if (!test_bit(MT76_STATE_SUSPEND, &dev->mphy.state))
- err = mt76_connac_mcu_set_hif_suspend(mdev, false);
+ err = mt76_connac_mcu_set_hif_suspend(mdev, false);
+ if (err)
+ return err;
+
+ pm->suspended = false;
return err;
}
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c b/drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c
index f9547d27356e..85286cc9add1 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c
@@ -321,6 +321,10 @@ int mt7921e_mac_reset(struct mt7921_dev *dev)
MT_INT_MCU_CMD);
mt76_wr(dev, MT_PCIE_MAC_INT_ENABLE, 0xff);
+ err = mt7921e_driver_own(dev);
+ if (err)
+ return err;
+
err = mt7921_run_firmware(dev);
if (err)
goto out;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/pci_mcu.c b/drivers/net/wireless/mediatek/mt76/mt7921/pci_mcu.c
index 583a89a34734..7b34c7f2ab3a 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/pci_mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/pci_mcu.c
@@ -4,7 +4,7 @@
#include "mt7921.h"
#include "mcu.h"
-static int mt7921e_driver_own(struct mt7921_dev *dev)
+int mt7921e_driver_own(struct mt7921_dev *dev)
{
u32 reg = mt7921_reg_map_l1(dev, MT_TOP_LPCR_HOST_BAND0);
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/sdio.c b/drivers/net/wireless/mediatek/mt76/mt7921/sdio.c
index ddf0eeb8b688..84be229a899d 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/sdio.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/sdio.c
@@ -62,6 +62,10 @@ static int mt7921s_parse_intr(struct mt76_dev *dev, struct mt76s_intr *intr)
if (err < 0)
return err;
+ if (irq_data->rx.num[0] > 16 ||
+ irq_data->rx.num[1] > 128)
+ return -EINVAL;
+
intr->isr = irq_data->isr;
intr->rec_mb = irq_data->rec_mb;
intr->tx.wtqcr = irq_data->tx.wtqcr;
@@ -203,10 +207,11 @@ static int mt7921s_suspend(struct device *__dev)
struct mt7921_dev *dev = sdio_get_drvdata(func);
struct mt76_connac_pm *pm = &dev->pm;
struct mt76_dev *mdev = &dev->mt76;
- bool hif_suspend;
int err;
pm->suspended = true;
+ set_bit(MT76_STATE_SUSPEND, &mdev->phy.state);
+
cancel_delayed_work_sync(&pm->ps_work);
cancel_work_sync(&pm->wake_work);
@@ -214,13 +219,6 @@ static int mt7921s_suspend(struct device *__dev)
if (err < 0)
goto restore_suspend;
- hif_suspend = !test_bit(MT76_STATE_SUSPEND, &dev->mphy.state);
- if (hif_suspend) {
- err = mt76_connac_mcu_set_hif_suspend(mdev, true);
- if (err)
- goto restore_suspend;
- }
-
/* always enable deep sleep during suspend to reduce
* power consumption
*/
@@ -228,35 +226,45 @@ static int mt7921s_suspend(struct device *__dev)
mt76_txq_schedule_all(&dev->mphy);
mt76_worker_disable(&mdev->tx_worker);
- mt76_worker_disable(&mdev->sdio.txrx_worker);
mt76_worker_disable(&mdev->sdio.status_worker);
- mt76_worker_disable(&mdev->sdio.net_worker);
cancel_work_sync(&mdev->sdio.stat_work);
clear_bit(MT76_READING_STATS, &dev->mphy.state);
-
mt76_tx_status_check(mdev, true);
- err = mt7921_mcu_fw_pmctrl(dev);
+ mt76_worker_schedule(&mdev->sdio.txrx_worker);
+ wait_event_timeout(dev->mt76.sdio.wait,
+ mt76s_txqs_empty(&dev->mt76), 5 * HZ);
+
+ /* It is supposed that SDIO bus is idle at the point */
+ err = mt76_connac_mcu_set_hif_suspend(mdev, true);
if (err)
goto restore_worker;
+ mt76_worker_disable(&mdev->sdio.txrx_worker);
+ mt76_worker_disable(&mdev->sdio.net_worker);
+
+ err = mt7921_mcu_fw_pmctrl(dev);
+ if (err)
+ goto restore_txrx_worker;
+
sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER);
return 0;
+restore_txrx_worker:
+ mt76_worker_enable(&mdev->sdio.net_worker);
+ mt76_worker_enable(&mdev->sdio.txrx_worker);
+ mt76_connac_mcu_set_hif_suspend(mdev, false);
+
restore_worker:
mt76_worker_enable(&mdev->tx_worker);
- mt76_worker_enable(&mdev->sdio.txrx_worker);
mt76_worker_enable(&mdev->sdio.status_worker);
- mt76_worker_enable(&mdev->sdio.net_worker);
if (!pm->ds_enable)
mt76_connac_mcu_set_deep_sleep(mdev, false);
- if (hif_suspend)
- mt76_connac_mcu_set_hif_suspend(mdev, false);
-
restore_suspend:
+ clear_bit(MT76_STATE_SUSPEND, &mdev->phy.state);
pm->suspended = false;
return err;
@@ -271,6 +279,7 @@ static int mt7921s_resume(struct device *__dev)
int err;
pm->suspended = false;
+ clear_bit(MT76_STATE_SUSPEND, &mdev->phy.state);
err = mt7921_mcu_drv_pmctrl(dev);
if (err < 0)
@@ -285,10 +294,7 @@ static int mt7921s_resume(struct device *__dev)
if (!pm->ds_enable)
mt76_connac_mcu_set_deep_sleep(mdev, false);
- if (!test_bit(MT76_STATE_SUSPEND, &dev->mphy.state))
- err = mt76_connac_mcu_set_hif_suspend(mdev, false);
-
- return err;
+ return mt76_connac_mcu_set_hif_suspend(mdev, false);
}
static const struct dev_pm_ops mt7921s_pm_ops = {
diff --git a/drivers/net/wireless/mediatek/mt76/sdio.c b/drivers/net/wireless/mediatek/mt76/sdio.c
index c99acc21225e..b0bc7be0fb1f 100644
--- a/drivers/net/wireless/mediatek/mt76/sdio.c
+++ b/drivers/net/wireless/mediatek/mt76/sdio.c
@@ -479,7 +479,8 @@ static void mt76s_status_worker(struct mt76_worker *w)
resched = true;
if (dev->drv->tx_status_data &&
- !test_and_set_bit(MT76_READING_STATS, &dev->phy.state))
+ !test_and_set_bit(MT76_READING_STATS, &dev->phy.state) &&
+ !test_bit(MT76_STATE_SUSPEND, &dev->phy.state))
queue_work(dev->wq, &dev->sdio.stat_work);
} while (nframes > 0);
diff --git a/drivers/net/wireless/mediatek/mt76/sdio_txrx.c b/drivers/net/wireless/mediatek/mt76/sdio_txrx.c
index 649a56790b89..801590a0a334 100644
--- a/drivers/net/wireless/mediatek/mt76/sdio_txrx.c
+++ b/drivers/net/wireless/mediatek/mt76/sdio_txrx.c
@@ -317,7 +317,8 @@ void mt76s_txrx_worker(struct mt76_sdio *sdio)
if (ret > 0)
nframes += ret;
- if (test_bit(MT76_MCU_RESET, &dev->phy.state)) {
+ if (test_bit(MT76_MCU_RESET, &dev->phy.state) ||
+ test_bit(MT76_STATE_SUSPEND, &dev->phy.state)) {
if (!mt76s_txqs_empty(dev))
continue;
else
diff --git a/drivers/net/wireless/microchip/wilc1000/netdev.c b/drivers/net/wireless/microchip/wilc1000/netdev.c
index 690572e01a2a..b5fe2a7cd8dc 100644
--- a/drivers/net/wireless/microchip/wilc1000/netdev.c
+++ b/drivers/net/wireless/microchip/wilc1000/netdev.c
@@ -905,7 +905,6 @@ void wilc_netdev_cleanup(struct wilc *wilc)
wilc_wlan_cfg_deinit(wilc);
wlan_deinit_locks(wilc);
- kfree(wilc->bus_data);
wiphy_unregister(wilc->wiphy);
wiphy_free(wilc->wiphy);
}
diff --git a/drivers/net/wireless/microchip/wilc1000/sdio.c b/drivers/net/wireless/microchip/wilc1000/sdio.c
index 26ebf6664342..ec595dbd8959 100644
--- a/drivers/net/wireless/microchip/wilc1000/sdio.c
+++ b/drivers/net/wireless/microchip/wilc1000/sdio.c
@@ -167,9 +167,11 @@ static int wilc_sdio_probe(struct sdio_func *func,
static void wilc_sdio_remove(struct sdio_func *func)
{
struct wilc *wilc = sdio_get_drvdata(func);
+ struct wilc_sdio *sdio_priv = wilc->bus_data;
clk_disable_unprepare(wilc->rtc_clk);
wilc_netdev_cleanup(wilc);
+ kfree(sdio_priv);
}
static int wilc_sdio_reset(struct wilc *wilc)
diff --git a/drivers/net/wireless/microchip/wilc1000/spi.c b/drivers/net/wireless/microchip/wilc1000/spi.c
index 640850f989dd..d8e893f4dab4 100644
--- a/drivers/net/wireless/microchip/wilc1000/spi.c
+++ b/drivers/net/wireless/microchip/wilc1000/spi.c
@@ -190,9 +190,11 @@ static int wilc_bus_probe(struct spi_device *spi)
static int wilc_bus_remove(struct spi_device *spi)
{
struct wilc *wilc = spi_get_drvdata(spi);
+ struct wilc_spi *spi_priv = wilc->bus_data;
clk_disable_unprepare(wilc->rtc_clk);
wilc_netdev_cleanup(wilc);
+ kfree(spi_priv);
return 0;
}
diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c
index a0d4d6e31fb4..dbf1ce3daeb8 100644
--- a/drivers/net/wireless/realtek/rtw88/main.c
+++ b/drivers/net/wireless/realtek/rtw88/main.c
@@ -1868,7 +1868,7 @@ int rtw_core_init(struct rtw_dev *rtwdev)
/* default rx filter setting */
rtwdev->hal.rcr = BIT_APP_FCS | BIT_APP_MIC | BIT_APP_ICV |
- BIT_HTC_LOC_CTRL | BIT_APP_PHYSTS |
+ BIT_PKTCTL_DLEN | BIT_HTC_LOC_CTRL | BIT_APP_PHYSTS |
BIT_AB | BIT_AM | BIT_APM;
ret = rtw_load_firmware(rtwdev, RTW_NORMAL_FW);
diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
index a7a6ebfaa203..08cf66141889 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.c
+++ b/drivers/net/wireless/realtek/rtw88/pci.c
@@ -2,7 +2,6 @@
/* Copyright(c) 2018-2019 Realtek Corporation
*/
-#include <linux/dmi.h>
#include <linux/module.h>
#include <linux/pci.h>
#include "main.h"
@@ -1409,7 +1408,11 @@ static void rtw_pci_link_ps(struct rtw_dev *rtwdev, bool enter)
* throughput. This is probably because the ASPM behavior slightly
* varies from different SOC.
*/
- if (rtwpci->link_ctrl & PCI_EXP_LNKCTL_ASPM_L1)
+ if (!(rtwpci->link_ctrl & PCI_EXP_LNKCTL_ASPM_L1))
+ return;
+
+ if ((enter && atomic_dec_if_positive(&rtwpci->link_usage) == 0) ||
+ (!enter && atomic_inc_return(&rtwpci->link_usage) == 1))
rtw_pci_aspm_set(rtwdev, enter);
}
@@ -1658,6 +1661,9 @@ static int rtw_pci_napi_poll(struct napi_struct *napi, int budget)
priv);
int work_done = 0;
+ if (rtwpci->rx_no_aspm)
+ rtw_pci_link_ps(rtwdev, false);
+
while (work_done < budget) {
u32 work_done_once;
@@ -1681,6 +1687,8 @@ static int rtw_pci_napi_poll(struct napi_struct *napi, int budget)
if (rtw_pci_get_hw_rx_ring_nr(rtwdev, rtwpci))
napi_schedule(napi);
}
+ if (rtwpci->rx_no_aspm)
+ rtw_pci_link_ps(rtwdev, true);
return work_done;
}
@@ -1702,50 +1710,13 @@ static void rtw_pci_napi_deinit(struct rtw_dev *rtwdev)
netif_napi_del(&rtwpci->napi);
}
-enum rtw88_quirk_dis_pci_caps {
- QUIRK_DIS_PCI_CAP_MSI,
- QUIRK_DIS_PCI_CAP_ASPM,
-};
-
-static int disable_pci_caps(const struct dmi_system_id *dmi)
-{
- uintptr_t dis_caps = (uintptr_t)dmi->driver_data;
-
- if (dis_caps & BIT(QUIRK_DIS_PCI_CAP_MSI))
- rtw_disable_msi = true;
- if (dis_caps & BIT(QUIRK_DIS_PCI_CAP_ASPM))
- rtw_pci_disable_aspm = true;
-
- return 1;
-}
-
-static const struct dmi_system_id rtw88_pci_quirks[] = {
- {
- .callback = disable_pci_caps,
- .ident = "Protempo Ltd L116HTN6SPW",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Protempo Ltd"),
- DMI_MATCH(DMI_PRODUCT_NAME, "L116HTN6SPW"),
- },
- .driver_data = (void *)BIT(QUIRK_DIS_PCI_CAP_ASPM),
- },
- {
- .callback = disable_pci_caps,
- .ident = "HP HP Pavilion Laptop 14-ce0xxx",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "HP"),
- DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Laptop 14-ce0xxx"),
- },
- .driver_data = (void *)BIT(QUIRK_DIS_PCI_CAP_ASPM),
- },
- {}
-};
-
int rtw_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *id)
{
+ struct pci_dev *bridge = pci_upstream_bridge(pdev);
struct ieee80211_hw *hw;
struct rtw_dev *rtwdev;
+ struct rtw_pci *rtwpci;
int drv_data_size;
int ret;
@@ -1763,6 +1734,9 @@ int rtw_pci_probe(struct pci_dev *pdev,
rtwdev->hci.ops = &rtw_pci_ops;
rtwdev->hci.type = RTW_HCI_TYPE_PCIE;
+ rtwpci = (struct rtw_pci *)rtwdev->priv;
+ atomic_set(&rtwpci->link_usage, 1);
+
ret = rtw_core_init(rtwdev);
if (ret)
goto err_release_hw;
@@ -1791,7 +1765,10 @@ int rtw_pci_probe(struct pci_dev *pdev,
goto err_destroy_pci;
}
- dmi_check_system(rtw88_pci_quirks);
+ /* Disable PCIe ASPM L1 while doing NAPI poll for 8821CE */
+ if (pdev->device == 0xc821 && bridge->vendor == PCI_VENDOR_ID_INTEL)
+ rtwpci->rx_no_aspm = true;
+
rtw_pci_phy_cfg(rtwdev);
ret = rtw_register_hw(rtwdev, hw);
diff --git a/drivers/net/wireless/realtek/rtw88/pci.h b/drivers/net/wireless/realtek/rtw88/pci.h
index 66f78eb7757c..0c37efd8c66f 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.h
+++ b/drivers/net/wireless/realtek/rtw88/pci.h
@@ -223,6 +223,8 @@ struct rtw_pci {
struct rtw_pci_tx_ring tx_rings[RTK_MAX_TX_QUEUE_NUM];
struct rtw_pci_rx_ring rx_rings[RTK_MAX_RX_QUEUE_NUM];
u16 link_ctrl;
+ atomic_t link_usage;
+ bool rx_no_aspm;
DECLARE_BITMAP(flags, NUM_OF_RTW_PCI_FLAGS);
void __iomem *mmap;
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821c.h b/drivers/net/wireless/realtek/rtw88/rtw8821c.h
index 112faa60f653..d9fbddd7b0f3 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.h
@@ -131,7 +131,7 @@ _rtw_write32s_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 data)
#define WLAN_TX_FUNC_CFG2 0x30
#define WLAN_MAC_OPT_NORM_FUNC1 0x98
#define WLAN_MAC_OPT_LB_FUNC1 0x80
-#define WLAN_MAC_OPT_FUNC2 0x30810041
+#define WLAN_MAC_OPT_FUNC2 0xb0810041
#define WLAN_SIFS_CFG (WLAN_SIFS_CCK_CONT_TX | \
(WLAN_SIFS_OFDM_CONT_TX << BIT_SHIFT_SIFS_OFDM_CTX) | \
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.c b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
index c409c8c29ec8..e870ad751834 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
@@ -205,7 +205,7 @@ static void rtw8822b_phy_set_param(struct rtw_dev *rtwdev)
#define WLAN_TX_FUNC_CFG2 0x30
#define WLAN_MAC_OPT_NORM_FUNC1 0x98
#define WLAN_MAC_OPT_LB_FUNC1 0x80
-#define WLAN_MAC_OPT_FUNC2 0x30810041
+#define WLAN_MAC_OPT_FUNC2 0xb0810041
#define WLAN_SIFS_CFG (WLAN_SIFS_CCK_CONT_TX | \
(WLAN_SIFS_OFDM_CONT_TX << BIT_SHIFT_SIFS_OFDM_CTX) | \
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
index 46b881e8e4fe..0e1c5d95d464 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
@@ -1962,7 +1962,7 @@ static void rtw8822c_phy_set_param(struct rtw_dev *rtwdev)
#define WLAN_TX_FUNC_CFG2 0x30
#define WLAN_MAC_OPT_NORM_FUNC1 0x98
#define WLAN_MAC_OPT_LB_FUNC1 0x80
-#define WLAN_MAC_OPT_FUNC2 0x30810041
+#define WLAN_MAC_OPT_FUNC2 0xb0810041
#define WLAN_MAC_INT_MIG_CFG 0x33330000
#define WLAN_SIFS_CFG (WLAN_SIFS_CCK_CONT_TX | \
diff --git a/drivers/net/wireless/realtek/rtw89/mac80211.c b/drivers/net/wireless/realtek/rtw89/mac80211.c
index 16dc6fb7dbb0..e9d61e55e2d9 100644
--- a/drivers/net/wireless/realtek/rtw89/mac80211.c
+++ b/drivers/net/wireless/realtek/rtw89/mac80211.c
@@ -27,6 +27,7 @@ static void rtw89_ops_tx(struct ieee80211_hw *hw,
if (ret) {
rtw89_err(rtwdev, "failed to transmit skb: %d\n", ret);
ieee80211_free_txskb(hw, skb);
+ return;
}
rtw89_core_tx_kick_off(rtwdev, qsel);
}
diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c
index ab134856baac..d75e9de8df7c 100644
--- a/drivers/net/wireless/realtek/rtw89/phy.c
+++ b/drivers/net/wireless/realtek/rtw89/phy.c
@@ -654,6 +654,12 @@ rtw89_phy_cofig_rf_reg_store(struct rtw89_dev *rtwdev,
u16 idx = info->curr_idx % RTW89_H2C_RF_PAGE_SIZE;
u8 page = info->curr_idx / RTW89_H2C_RF_PAGE_SIZE;
+ if (page >= RTW89_H2C_RF_PAGE_NUM) {
+ rtw89_warn(rtwdev, "RF parameters exceed size. path=%d, idx=%d",
+ rf_path, info->curr_idx);
+ return;
+ }
+
info->rtw89_phy_config_rf_h2c[page][idx] =
cpu_to_le32((reg->addr << 20) | reg->data);
info->curr_idx++;
@@ -662,30 +668,29 @@ rtw89_phy_cofig_rf_reg_store(struct rtw89_dev *rtwdev,
static int rtw89_phy_config_rf_reg_fw(struct rtw89_dev *rtwdev,
struct rtw89_fw_h2c_rf_reg_info *info)
{
- u16 page = info->curr_idx / RTW89_H2C_RF_PAGE_SIZE;
- u16 len = (info->curr_idx % RTW89_H2C_RF_PAGE_SIZE) * 4;
+ u16 remain = info->curr_idx;
+ u16 len = 0;
u8 i;
int ret = 0;
- if (page > RTW89_H2C_RF_PAGE_NUM) {
+ if (remain > RTW89_H2C_RF_PAGE_NUM * RTW89_H2C_RF_PAGE_SIZE) {
rtw89_warn(rtwdev,
- "rf reg h2c total page num %d larger than %d (RTW89_H2C_RF_PAGE_NUM)\n",
- page, RTW89_H2C_RF_PAGE_NUM);
- return -EINVAL;
+ "rf reg h2c total len %d larger than %d\n",
+ remain, RTW89_H2C_RF_PAGE_NUM * RTW89_H2C_RF_PAGE_SIZE);
+ ret = -EINVAL;
+ goto out;
}
- for (i = 0; i < page; i++) {
- ret = rtw89_fw_h2c_rf_reg(rtwdev, info,
- RTW89_H2C_RF_PAGE_SIZE * 4, i);
+ for (i = 0; i < RTW89_H2C_RF_PAGE_NUM && remain; i++, remain -= len) {
+ len = remain > RTW89_H2C_RF_PAGE_SIZE ? RTW89_H2C_RF_PAGE_SIZE : remain;
+ ret = rtw89_fw_h2c_rf_reg(rtwdev, info, len * 4, i);
if (ret)
- return ret;
+ goto out;
}
- ret = rtw89_fw_h2c_rf_reg(rtwdev, info, len, i);
- if (ret)
- return ret;
+out:
info->curr_idx = 0;
- return 0;
+ return ret;
}
static void rtw89_phy_config_rf_reg(struct rtw89_dev *rtwdev,
diff --git a/drivers/net/wireless/rsi/rsi_91x_main.c b/drivers/net/wireless/rsi/rsi_91x_main.c
index f1bf71e6c608..5d1490fc32db 100644
--- a/drivers/net/wireless/rsi/rsi_91x_main.c
+++ b/drivers/net/wireless/rsi/rsi_91x_main.c
@@ -23,6 +23,7 @@
#include "rsi_common.h"
#include "rsi_coex.h"
#include "rsi_hal.h"
+#include "rsi_usb.h"
u32 rsi_zone_enabled = /* INFO_ZONE |
INIT_ZONE |
@@ -168,6 +169,9 @@ int rsi_read_pkt(struct rsi_common *common, u8 *rx_pkt, s32 rcv_pkt_len)
frame_desc = &rx_pkt[index];
actual_length = *(u16 *)&frame_desc[0];
offset = *(u16 *)&frame_desc[2];
+ if (!rcv_pkt_len && offset >
+ RSI_MAX_RX_USB_PKT_SIZE - FRAME_DESC_SZ)
+ goto fail;
queueno = rsi_get_queueno(frame_desc, offset);
length = rsi_get_length(frame_desc, offset);
diff --git a/drivers/net/wireless/rsi/rsi_91x_usb.c b/drivers/net/wireless/rsi/rsi_91x_usb.c
index 6821ea991895..66fe386ec9cc 100644
--- a/drivers/net/wireless/rsi/rsi_91x_usb.c
+++ b/drivers/net/wireless/rsi/rsi_91x_usb.c
@@ -269,8 +269,12 @@ static void rsi_rx_done_handler(struct urb *urb)
struct rsi_91x_usbdev *dev = (struct rsi_91x_usbdev *)rx_cb->data;
int status = -EINVAL;
+ if (!rx_cb->rx_skb)
+ return;
+
if (urb->status) {
dev_kfree_skb(rx_cb->rx_skb);
+ rx_cb->rx_skb = NULL;
return;
}
@@ -294,8 +298,10 @@ static void rsi_rx_done_handler(struct urb *urb)
if (rsi_rx_urb_submit(dev->priv, rx_cb->ep_num, GFP_ATOMIC))
rsi_dbg(ERR_ZONE, "%s: Failed in urb submission", __func__);
- if (status)
+ if (status) {
dev_kfree_skb(rx_cb->rx_skb);
+ rx_cb->rx_skb = NULL;
+ }
}
static void rsi_rx_urb_kill(struct rsi_hw *adapter, u8 ep_num)
@@ -324,7 +330,6 @@ static int rsi_rx_urb_submit(struct rsi_hw *adapter, u8 ep_num, gfp_t mem_flags)
struct sk_buff *skb;
u8 dword_align_bytes = 0;
-#define RSI_MAX_RX_USB_PKT_SIZE 3000
skb = dev_alloc_skb(RSI_MAX_RX_USB_PKT_SIZE);
if (!skb)
return -ENOMEM;
diff --git a/drivers/net/wireless/rsi/rsi_usb.h b/drivers/net/wireless/rsi/rsi_usb.h
index 254d19b66412..961851748bc4 100644
--- a/drivers/net/wireless/rsi/rsi_usb.h
+++ b/drivers/net/wireless/rsi/rsi_usb.h
@@ -44,6 +44,8 @@
#define RSI_USB_BUF_SIZE 4096
#define RSI_USB_CTRL_BUF_SIZE 0x04
+#define RSI_MAX_RX_USB_PKT_SIZE 3000
+
struct rx_usb_ctrl_block {
u8 *data;
struct urb *rx_urb;
diff --git a/drivers/net/wwan/mhi_wwan_mbim.c b/drivers/net/wwan/mhi_wwan_mbim.c
index 71bf9b4f769f..6872782e8dd8 100644
--- a/drivers/net/wwan/mhi_wwan_mbim.c
+++ b/drivers/net/wwan/mhi_wwan_mbim.c
@@ -385,13 +385,13 @@ static void mhi_net_rx_refill_work(struct work_struct *work)
int err;
while (!mhi_queue_is_full(mdev, DMA_FROM_DEVICE)) {
- struct sk_buff *skb = alloc_skb(MHI_DEFAULT_MRU, GFP_KERNEL);
+ struct sk_buff *skb = alloc_skb(mbim->mru, GFP_KERNEL);
if (unlikely(!skb))
break;
err = mhi_queue_skb(mdev, DMA_FROM_DEVICE, skb,
- MHI_DEFAULT_MRU, MHI_EOT);
+ mbim->mru, MHI_EOT);
if (unlikely(err)) {
kfree_skb(skb);
break;
diff --git a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
index 4c6eb61a6ac6..ec9cb6c81eda 100644
--- a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
+++ b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c
@@ -419,8 +419,8 @@ static void switchtec_ntb_part_link_speed(struct switchtec_ntb *sndev,
enum ntb_width *width)
{
struct switchtec_dev *stdev = sndev->stdev;
-
- u32 pff = ioread32(&stdev->mmio_part_cfg[partition].vep_pff_inst_id);
+ u32 pff =
+ ioread32(&stdev->mmio_part_cfg_all[partition].vep_pff_inst_id);
u32 linksta = ioread32(&stdev->mmio_pff_csr[pff].pci_cap_region[13]);
if (speed)
@@ -840,7 +840,6 @@ static int switchtec_ntb_init_sndev(struct switchtec_ntb *sndev)
u64 tpart_vec;
int self;
u64 part_map;
- int bit;
sndev->ntb.pdev = sndev->stdev->pdev;
sndev->ntb.topo = NTB_TOPO_SWITCH;
@@ -861,29 +860,28 @@ static int switchtec_ntb_init_sndev(struct switchtec_ntb *sndev)
part_map = ioread64(&sndev->mmio_ntb->ep_map);
part_map &= ~(1 << sndev->self_partition);
- if (!ffs(tpart_vec)) {
+ if (!tpart_vec) {
if (sndev->stdev->partition_count != 2) {
dev_err(&sndev->stdev->dev,
"ntb target partition not defined\n");
return -ENODEV;
}
- bit = ffs(part_map);
- if (!bit) {
+ if (!part_map) {
dev_err(&sndev->stdev->dev,
"peer partition is not NT partition\n");
return -ENODEV;
}
- sndev->peer_partition = bit - 1;
+ sndev->peer_partition = __ffs64(part_map);
} else {
- if (ffs(tpart_vec) != fls(tpart_vec)) {
+ if (__ffs64(tpart_vec) != (fls64(tpart_vec) - 1)) {
dev_err(&sndev->stdev->dev,
"ntb driver only supports 1 pair of 1-1 ntb mapping\n");
return -ENODEV;
}
- sndev->peer_partition = ffs(tpart_vec) - 1;
+ sndev->peer_partition = __ffs64(tpart_vec);
if (!(part_map & (1ULL << sndev->peer_partition))) {
dev_err(&sndev->stdev->dev,
"ntb target partition is not NT partition\n");
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index e765d3d0542e..23a38dcf0fc4 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -312,6 +312,8 @@ static umode_t nvmem_bin_attr_is_visible(struct kobject *kobj,
struct device *dev = kobj_to_dev(kobj);
struct nvmem_device *nvmem = to_nvmem_device(dev);
+ attr->size = nvmem->size;
+
return nvmem_bin_attr_get_umode(nvmem);
}
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 61de453b885c..09905b5e7b43 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -1349,9 +1349,14 @@ int of_phandle_iterator_next(struct of_phandle_iterator *it)
* property data length
*/
if (it->cur + count > it->list_end) {
- pr_err("%pOF: %s = %d found %d\n",
- it->parent, it->cells_name,
- count, it->cell_count);
+ if (it->cells_name)
+ pr_err("%pOF: %s = %d found %td\n",
+ it->parent, it->cells_name,
+ count, it->list_end - it->cur);
+ else
+ pr_err("%pOF: phandle %s needs %d, found %td\n",
+ it->parent, of_node_full_name(it->node),
+ count, it->list_end - it->cur);
goto err;
}
}
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index bdca35284ceb..7e868e5995b7 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -482,9 +482,11 @@ static int __init early_init_dt_reserve_memory_arch(phys_addr_t base,
if (nomap) {
/*
* If the memory is already reserved (by another region), we
- * should not allow it to be marked nomap.
+ * should not allow it to be marked nomap, but don't worry
+ * if the region isn't memory as it won't be mapped.
*/
- if (memblock_is_region_reserved(base, size))
+ if (memblock_overlaps_region(&memblock.memory, base, size) &&
+ memblock_is_region_reserved(base, size))
return -EBUSY;
return memblock_mark_nomap(base, size);
@@ -965,18 +967,22 @@ static void __init early_init_dt_check_for_elfcorehdr(unsigned long node)
elfcorehdr_addr, elfcorehdr_size);
}
-static phys_addr_t cap_mem_addr;
-static phys_addr_t cap_mem_size;
+static unsigned long chosen_node_offset = -FDT_ERR_NOTFOUND;
/**
* early_init_dt_check_for_usable_mem_range - Decode usable memory range
* location from flat tree
- * @node: reference to node containing usable memory range location ('chosen')
*/
-static void __init early_init_dt_check_for_usable_mem_range(unsigned long node)
+void __init early_init_dt_check_for_usable_mem_range(void)
{
const __be32 *prop;
int len;
+ phys_addr_t cap_mem_addr;
+ phys_addr_t cap_mem_size;
+ unsigned long node = chosen_node_offset;
+
+ if ((long)node < 0)
+ return;
pr_debug("Looking for usable-memory-range property... ");
@@ -989,6 +995,8 @@ static void __init early_init_dt_check_for_usable_mem_range(unsigned long node)
pr_debug("cap_mem_start=%pa cap_mem_size=%pa\n", &cap_mem_addr,
&cap_mem_size);
+
+ memblock_cap_memory_range(cap_mem_addr, cap_mem_size);
}
#ifdef CONFIG_SERIAL_EARLYCON
@@ -1137,9 +1145,10 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
(strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0))
return 0;
+ chosen_node_offset = node;
+
early_init_dt_check_for_initrd(node);
early_init_dt_check_for_elfcorehdr(node);
- early_init_dt_check_for_usable_mem_range(node);
/* Retrieve command line */
p = of_get_flat_dt_prop(node, "bootargs", &l);
@@ -1275,7 +1284,7 @@ void __init early_init_dt_scan_nodes(void)
of_scan_flat_dt(early_init_dt_scan_memory, NULL);
/* Handle linux,usable-memory-range property */
- memblock_cap_memory_range(cap_mem_addr, cap_mem_size);
+ early_init_dt_check_for_usable_mem_range();
}
bool __init early_init_dt_scan(void *params)
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c
index 481ba8682ebf..35af4fedc15d 100644
--- a/drivers/of/unittest.c
+++ b/drivers/of/unittest.c
@@ -911,11 +911,18 @@ static void __init of_unittest_dma_ranges_one(const char *path,
if (!rc) {
phys_addr_t paddr;
dma_addr_t dma_addr;
- struct device dev_bogus;
+ struct device *dev_bogus;
- dev_bogus.dma_range_map = map;
- paddr = dma_to_phys(&dev_bogus, expect_dma_addr);
- dma_addr = phys_to_dma(&dev_bogus, expect_paddr);
+ dev_bogus = kzalloc(sizeof(struct device), GFP_KERNEL);
+ if (!dev_bogus) {
+ unittest(0, "kzalloc() failed\n");
+ kfree(map);
+ return;
+ }
+
+ dev_bogus->dma_range_map = map;
+ paddr = dma_to_phys(dev_bogus, expect_dma_addr);
+ dma_addr = phys_to_dma(dev_bogus, expect_paddr);
unittest(paddr == expect_paddr,
"of_dma_get_range: wrong phys addr %pap (expecting %llx) on node %pOF\n",
@@ -925,6 +932,7 @@ static void __init of_unittest_dma_ranges_one(const char *path,
&dma_addr, expect_dma_addr, np);
kfree(map);
+ kfree(dev_bogus);
}
of_node_put(np);
#endif
@@ -934,8 +942,9 @@ static void __init of_unittest_parse_dma_ranges(void)
{
of_unittest_dma_ranges_one("/testcase-data/address-tests/device@70000000",
0x0, 0x20000000);
- of_unittest_dma_ranges_one("/testcase-data/address-tests/bus@80000000/device@1000",
- 0x100000000, 0x20000000);
+ if (IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT))
+ of_unittest_dma_ranges_one("/testcase-data/address-tests/bus@80000000/device@1000",
+ 0x100000000, 0x20000000);
of_unittest_dma_ranges_one("/testcase-data/address-tests/pci@90000000",
0x80000000, 0x20000000);
}
diff --git a/drivers/parisc/pdc_stable.c b/drivers/parisc/pdc_stable.c
index e090978518f1..4760f82def6e 100644
--- a/drivers/parisc/pdc_stable.c
+++ b/drivers/parisc/pdc_stable.c
@@ -979,8 +979,10 @@ pdcs_register_pathentries(void)
entry->kobj.kset = paths_kset;
err = kobject_init_and_add(&entry->kobj, &ktype_pdcspath, NULL,
"%s", entry->name);
- if (err)
+ if (err) {
+ kobject_put(&entry->kobj);
return err;
+ }
/* kobject is now registered */
write_lock(&entry->rw_lock);
diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c
index 850b4533f4ef..d92c8a25094f 100644
--- a/drivers/pci/controller/dwc/pcie-designware.c
+++ b/drivers/pci/controller/dwc/pcie-designware.c
@@ -672,10 +672,11 @@ void dw_pcie_iatu_detect(struct dw_pcie *pci)
if (!pci->atu_base) {
struct resource *res =
platform_get_resource_byname(pdev, IORESOURCE_MEM, "atu");
- if (res)
+ if (res) {
pci->atu_size = resource_size(res);
- pci->atu_base = devm_ioremap_resource(dev, res);
- if (IS_ERR(pci->atu_base))
+ pci->atu_base = devm_ioremap_resource(dev, res);
+ }
+ if (!pci->atu_base || IS_ERR(pci->atu_base))
pci->atu_base = pci->dbi_base + DEFAULT_DBI_ATU_OFFSET;
}
diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c
index 1c3d1116bb60..baae67f71ba8 100644
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
@@ -1534,6 +1534,12 @@ static int qcom_pcie_probe(struct platform_device *pdev)
const struct qcom_pcie_cfg *pcie_cfg;
int ret;
+ pcie_cfg = of_device_get_match_data(dev);
+ if (!pcie_cfg || !pcie_cfg->ops) {
+ dev_err(dev, "Invalid platform data\n");
+ return -EINVAL;
+ }
+
pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
if (!pcie)
return -ENOMEM;
@@ -1553,12 +1559,6 @@ static int qcom_pcie_probe(struct platform_device *pdev)
pcie->pci = pci;
- pcie_cfg = of_device_get_match_data(dev);
- if (!pcie_cfg || !pcie_cfg->ops) {
- dev_err(dev, "Invalid platform data\n");
- return -EINVAL;
- }
-
pcie->ops = pcie_cfg->ops;
pcie->pipe_clk_need_muxing = pcie_cfg->pipe_clk_need_muxing;
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index c3b725afa11f..b2217e2b3efd 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -872,7 +872,6 @@ advk_pci_bridge_emul_pcie_conf_read(struct pci_bridge_emul *bridge,
return PCI_BRIDGE_EMUL_HANDLED;
}
- case PCI_CAP_LIST_ID:
case PCI_EXP_DEVCAP:
case PCI_EXP_DEVCTL:
*value = advk_readl(pcie, PCIE_CORE_PCIEXP_CAP + reg);
@@ -953,6 +952,9 @@ static int advk_sw_pci_bridge_init(struct advk_pcie *pcie)
/* Support interrupt A for MSI feature */
bridge->conf.intpin = PCIE_CORE_INT_A_ASSERT_ENABLE;
+ /* Aardvark HW provides PCIe Capability structure in version 2 */
+ bridge->pcie_conf.cap = cpu_to_le16(2);
+
/* Indicates supports for Completion Retry Status */
bridge->pcie_conf.rootcap = cpu_to_le16(PCI_EXP_RTCAP_CRSVIS);
@@ -1535,8 +1537,7 @@ static int advk_pcie_probe(struct platform_device *pdev)
* only PIO for issuing configuration transfers which does
* not use PCIe window configuration.
*/
- if (type != IORESOURCE_MEM && type != IORESOURCE_MEM_64 &&
- type != IORESOURCE_IO)
+ if (type != IORESOURCE_MEM && type != IORESOURCE_IO)
continue;
/*
@@ -1544,8 +1545,7 @@ static int advk_pcie_probe(struct platform_device *pdev)
* configuration is set to transparent memory access so it
* does not need window configuration.
*/
- if ((type == IORESOURCE_MEM || type == IORESOURCE_MEM_64) &&
- entry->offset == 0)
+ if (type == IORESOURCE_MEM && entry->offset == 0)
continue;
/*
diff --git a/drivers/pci/controller/pci-mvebu.c b/drivers/pci/controller/pci-mvebu.c
index ed13e81cd691..357e9a293edf 100644
--- a/drivers/pci/controller/pci-mvebu.c
+++ b/drivers/pci/controller/pci-mvebu.c
@@ -51,10 +51,14 @@
PCIE_CONF_FUNC(PCI_FUNC(devfn)) | PCIE_CONF_REG(where) | \
PCIE_CONF_ADDR_EN)
#define PCIE_CONF_DATA_OFF 0x18fc
+#define PCIE_INT_CAUSE_OFF 0x1900
+#define PCIE_INT_PM_PME BIT(28)
#define PCIE_MASK_OFF 0x1910
#define PCIE_MASK_ENABLE_INTS 0x0f000000
#define PCIE_CTRL_OFF 0x1a00
#define PCIE_CTRL_X1_MODE 0x0001
+#define PCIE_CTRL_RC_MODE BIT(1)
+#define PCIE_CTRL_MASTER_HOT_RESET BIT(24)
#define PCIE_STAT_OFF 0x1a04
#define PCIE_STAT_BUS 0xff00
#define PCIE_STAT_DEV 0x1f0000
@@ -125,6 +129,11 @@ static bool mvebu_pcie_link_up(struct mvebu_pcie_port *port)
return !(mvebu_readl(port, PCIE_STAT_OFF) & PCIE_STAT_LINK_DOWN);
}
+static u8 mvebu_pcie_get_local_bus_nr(struct mvebu_pcie_port *port)
+{
+ return (mvebu_readl(port, PCIE_STAT_OFF) & PCIE_STAT_BUS) >> 8;
+}
+
static void mvebu_pcie_set_local_bus_nr(struct mvebu_pcie_port *port, int nr)
{
u32 stat;
@@ -213,18 +222,21 @@ static void mvebu_pcie_setup_wins(struct mvebu_pcie_port *port)
static void mvebu_pcie_setup_hw(struct mvebu_pcie_port *port)
{
- u32 cmd, mask;
+ u32 ctrl, cmd, mask;
- /* Point PCIe unit MBUS decode windows to DRAM space. */
- mvebu_pcie_setup_wins(port);
+ /* Setup PCIe controller to Root Complex mode. */
+ ctrl = mvebu_readl(port, PCIE_CTRL_OFF);
+ ctrl |= PCIE_CTRL_RC_MODE;
+ mvebu_writel(port, ctrl, PCIE_CTRL_OFF);
- /* Master + slave enable. */
+ /* Disable Root Bridge I/O space, memory space and bus mastering. */
cmd = mvebu_readl(port, PCIE_CMD_OFF);
- cmd |= PCI_COMMAND_IO;
- cmd |= PCI_COMMAND_MEMORY;
- cmd |= PCI_COMMAND_MASTER;
+ cmd &= ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
mvebu_writel(port, cmd, PCIE_CMD_OFF);
+ /* Point PCIe unit MBUS decode windows to DRAM space. */
+ mvebu_pcie_setup_wins(port);
+
/* Enable interrupt lines A-D. */
mask = mvebu_readl(port, PCIE_MASK_OFF);
mask |= PCIE_MASK_ENABLE_INTS;
@@ -371,8 +383,7 @@ static void mvebu_pcie_handle_iobase_change(struct mvebu_pcie_port *port)
/* Are the new iobase/iolimit values invalid? */
if (conf->iolimit < conf->iobase ||
- conf->iolimitupper < conf->iobaseupper ||
- !(conf->command & PCI_COMMAND_IO)) {
+ conf->iolimitupper < conf->iobaseupper) {
mvebu_pcie_set_window(port, port->io_target, port->io_attr,
&desired, &port->iowin);
return;
@@ -409,8 +420,7 @@ static void mvebu_pcie_handle_membase_change(struct mvebu_pcie_port *port)
struct pci_bridge_emul_conf *conf = &port->bridge.conf;
/* Are the new membase/memlimit values invalid? */
- if (conf->memlimit < conf->membase ||
- !(conf->command & PCI_COMMAND_MEMORY)) {
+ if (conf->memlimit < conf->membase) {
mvebu_pcie_set_window(port, port->mem_target, port->mem_attr,
&desired, &port->memwin);
return;
@@ -430,6 +440,54 @@ static void mvebu_pcie_handle_membase_change(struct mvebu_pcie_port *port)
&port->memwin);
}
+static pci_bridge_emul_read_status_t
+mvebu_pci_bridge_emul_base_conf_read(struct pci_bridge_emul *bridge,
+ int reg, u32 *value)
+{
+ struct mvebu_pcie_port *port = bridge->data;
+
+ switch (reg) {
+ case PCI_COMMAND:
+ *value = mvebu_readl(port, PCIE_CMD_OFF);
+ break;
+
+ case PCI_PRIMARY_BUS: {
+ /*
+ * From the whole 32bit register we support reading from HW only
+ * secondary bus number which is mvebu local bus number.
+ * Other bits are retrieved only from emulated config buffer.
+ */
+ __le32 *cfgspace = (__le32 *)&bridge->conf;
+ u32 val = le32_to_cpu(cfgspace[PCI_PRIMARY_BUS / 4]);
+ val &= ~0xff00;
+ val |= mvebu_pcie_get_local_bus_nr(port) << 8;
+ *value = val;
+ break;
+ }
+
+ case PCI_INTERRUPT_LINE: {
+ /*
+ * From the whole 32bit register we support reading from HW only
+ * one bit: PCI_BRIDGE_CTL_BUS_RESET.
+ * Other bits are retrieved only from emulated config buffer.
+ */
+ __le32 *cfgspace = (__le32 *)&bridge->conf;
+ u32 val = le32_to_cpu(cfgspace[PCI_INTERRUPT_LINE / 4]);
+ if (mvebu_readl(port, PCIE_CTRL_OFF) & PCIE_CTRL_MASTER_HOT_RESET)
+ val |= PCI_BRIDGE_CTL_BUS_RESET << 16;
+ else
+ val &= ~(PCI_BRIDGE_CTL_BUS_RESET << 16);
+ *value = val;
+ break;
+ }
+
+ default:
+ return PCI_BRIDGE_EMUL_NOT_HANDLED;
+ }
+
+ return PCI_BRIDGE_EMUL_HANDLED;
+}
+
static pci_bridge_emul_read_status_t
mvebu_pci_bridge_emul_pcie_conf_read(struct pci_bridge_emul *bridge,
int reg, u32 *value)
@@ -442,9 +500,7 @@ mvebu_pci_bridge_emul_pcie_conf_read(struct pci_bridge_emul *bridge,
break;
case PCI_EXP_DEVCTL:
- *value = mvebu_readl(port, PCIE_CAP_PCIEXP + PCI_EXP_DEVCTL) &
- ~(PCI_EXP_DEVCTL_URRE | PCI_EXP_DEVCTL_FERE |
- PCI_EXP_DEVCTL_NFERE | PCI_EXP_DEVCTL_CERE);
+ *value = mvebu_readl(port, PCIE_CAP_PCIEXP + PCI_EXP_DEVCTL);
break;
case PCI_EXP_LNKCAP:
@@ -468,6 +524,18 @@ mvebu_pci_bridge_emul_pcie_conf_read(struct pci_bridge_emul *bridge,
*value = mvebu_readl(port, PCIE_RC_RTSTA);
break;
+ case PCI_EXP_DEVCAP2:
+ *value = mvebu_readl(port, PCIE_CAP_PCIEXP + PCI_EXP_DEVCAP2);
+ break;
+
+ case PCI_EXP_DEVCTL2:
+ *value = mvebu_readl(port, PCIE_CAP_PCIEXP + PCI_EXP_DEVCTL2);
+ break;
+
+ case PCI_EXP_LNKCTL2:
+ *value = mvebu_readl(port, PCIE_CAP_PCIEXP + PCI_EXP_LNKCTL2);
+ break;
+
default:
return PCI_BRIDGE_EMUL_NOT_HANDLED;
}
@@ -484,26 +552,16 @@ mvebu_pci_bridge_emul_base_conf_write(struct pci_bridge_emul *bridge,
switch (reg) {
case PCI_COMMAND:
- {
- if (!mvebu_has_ioport(port))
- conf->command &= ~PCI_COMMAND_IO;
-
- if ((old ^ new) & PCI_COMMAND_IO)
- mvebu_pcie_handle_iobase_change(port);
- if ((old ^ new) & PCI_COMMAND_MEMORY)
- mvebu_pcie_handle_membase_change(port);
+ if (!mvebu_has_ioport(port)) {
+ conf->command = cpu_to_le16(
+ le16_to_cpu(conf->command) & ~PCI_COMMAND_IO);
+ new &= ~PCI_COMMAND_IO;
+ }
+ mvebu_writel(port, new, PCIE_CMD_OFF);
break;
- }
case PCI_IO_BASE:
- /*
- * We keep bit 1 set, it is a read-only bit that
- * indicates we support 32 bits addressing for the
- * I/O
- */
- conf->iobase |= PCI_IO_RANGE_TYPE_32;
- conf->iolimit |= PCI_IO_RANGE_TYPE_32;
mvebu_pcie_handle_iobase_change(port);
break;
@@ -516,7 +574,19 @@ mvebu_pci_bridge_emul_base_conf_write(struct pci_bridge_emul *bridge,
break;
case PCI_PRIMARY_BUS:
- mvebu_pcie_set_local_bus_nr(port, conf->secondary_bus);
+ if (mask & 0xff00)
+ mvebu_pcie_set_local_bus_nr(port, conf->secondary_bus);
+ break;
+
+ case PCI_INTERRUPT_LINE:
+ if (mask & (PCI_BRIDGE_CTL_BUS_RESET << 16)) {
+ u32 ctrl = mvebu_readl(port, PCIE_CTRL_OFF);
+ if (new & (PCI_BRIDGE_CTL_BUS_RESET << 16))
+ ctrl |= PCIE_CTRL_MASTER_HOT_RESET;
+ else
+ ctrl &= ~PCIE_CTRL_MASTER_HOT_RESET;
+ mvebu_writel(port, ctrl, PCIE_CTRL_OFF);
+ }
break;
default:
@@ -532,13 +602,6 @@ mvebu_pci_bridge_emul_pcie_conf_write(struct pci_bridge_emul *bridge,
switch (reg) {
case PCI_EXP_DEVCTL:
- /*
- * Armada370 data says these bits must always
- * be zero when in root complex mode.
- */
- new &= ~(PCI_EXP_DEVCTL_URRE | PCI_EXP_DEVCTL_FERE |
- PCI_EXP_DEVCTL_NFERE | PCI_EXP_DEVCTL_CERE);
-
mvebu_writel(port, new, PCIE_CAP_PCIEXP + PCI_EXP_DEVCTL);
break;
@@ -555,12 +618,31 @@ mvebu_pci_bridge_emul_pcie_conf_write(struct pci_bridge_emul *bridge,
break;
case PCI_EXP_RTSTA:
- mvebu_writel(port, new, PCIE_RC_RTSTA);
+ /*
+ * PME Status bit in Root Status Register (PCIE_RC_RTSTA)
+ * is read-only and can be cleared only by writing 0b to the
+ * Interrupt Cause RW0C register (PCIE_INT_CAUSE_OFF). So
+ * clear PME via Interrupt Cause.
+ */
+ if (new & PCI_EXP_RTSTA_PME)
+ mvebu_writel(port, ~PCIE_INT_PM_PME, PCIE_INT_CAUSE_OFF);
+ break;
+
+ case PCI_EXP_DEVCTL2:
+ mvebu_writel(port, new, PCIE_CAP_PCIEXP + PCI_EXP_DEVCTL2);
+ break;
+
+ case PCI_EXP_LNKCTL2:
+ mvebu_writel(port, new, PCIE_CAP_PCIEXP + PCI_EXP_LNKCTL2);
+ break;
+
+ default:
break;
}
}
static struct pci_bridge_emul_ops mvebu_pci_bridge_emul_ops = {
+ .read_base = mvebu_pci_bridge_emul_base_conf_read,
.write_base = mvebu_pci_bridge_emul_base_conf_write,
.read_pcie = mvebu_pci_bridge_emul_pcie_conf_read,
.write_pcie = mvebu_pci_bridge_emul_pcie_conf_write,
@@ -570,9 +652,11 @@ static struct pci_bridge_emul_ops mvebu_pci_bridge_emul_ops = {
* Initialize the configuration space of the PCI-to-PCI bridge
* associated with the given PCIe interface.
*/
-static void mvebu_pci_bridge_emul_init(struct mvebu_pcie_port *port)
+static int mvebu_pci_bridge_emul_init(struct mvebu_pcie_port *port)
{
struct pci_bridge_emul *bridge = &port->bridge;
+ u32 pcie_cap = mvebu_readl(port, PCIE_CAP_PCIEXP);
+ u8 pcie_cap_ver = ((pcie_cap >> 16) & PCI_EXP_FLAGS_VERS);
bridge->conf.vendor = PCI_VENDOR_ID_MARVELL;
bridge->conf.device = mvebu_readl(port, PCIE_DEV_ID_OFF) >> 16;
@@ -585,11 +669,17 @@ static void mvebu_pci_bridge_emul_init(struct mvebu_pcie_port *port)
bridge->conf.iolimit = PCI_IO_RANGE_TYPE_32;
}
+ /*
+ * Older mvebu hardware provides PCIe Capability structure only in
+ * version 1. New hardware provides it in version 2.
+ */
+ bridge->pcie_conf.cap = cpu_to_le16(pcie_cap_ver);
+
bridge->has_pcie = true;
bridge->data = port;
bridge->ops = &mvebu_pci_bridge_emul_ops;
- pci_bridge_emul_init(bridge, PCI_BRIDGE_EMUL_NO_PREFETCHABLE_BAR);
+ return pci_bridge_emul_init(bridge, PCI_BRIDGE_EMUL_NO_PREFETCHABLE_BAR);
}
static inline struct mvebu_pcie *sys_to_pcie(struct pci_sys_data *sys)
@@ -1112,9 +1202,93 @@ static int mvebu_pcie_probe(struct platform_device *pdev)
continue;
}
+ ret = mvebu_pci_bridge_emul_init(port);
+ if (ret < 0) {
+ dev_err(dev, "%s: cannot init emulated bridge\n",
+ port->name);
+ devm_iounmap(dev, port->base);
+ port->base = NULL;
+ mvebu_pcie_powerdown(port);
+ continue;
+ }
+
+ /*
+ * PCIe topology exported by mvebu hw is quite complicated. In
+ * reality has something like N fully independent host bridges
+ * where each host bridge has one PCIe Root Port (which acts as
+ * PCI Bridge device). Each host bridge has its own independent
+ * internal registers, independent access to PCI config space,
+ * independent interrupt lines, independent window and memory
+ * access configuration. But additionally there is some kind of
+ * peer-to-peer support between PCIe devices behind different
+ * host bridges limited just to forwarding of memory and I/O
+ * transactions (forwarding of error messages and config cycles
+ * is not supported). So we could say there are N independent
+ * PCIe Root Complexes.
+ *
+ * For this kind of setup DT should have been structured into
+ * N independent PCIe controllers / host bridges. But instead
+ * structure in past was defined to put PCIe Root Ports of all
+ * host bridges into one bus zero, like in classic multi-port
+ * Root Complex setup with just one host bridge.
+ *
+ * This means that pci-mvebu.c driver provides "virtual" bus 0
+ * on which registers all PCIe Root Ports (PCI Bridge devices)
+ * specified in DT by their BDF addresses and virtually routes
+ * PCI config access of each PCI bridge device to specific PCIe
+ * host bridge.
+ *
+ * Normally PCI Bridge should choose between Type 0 and Type 1
+ * config requests based on primary and secondary bus numbers
+ * configured on the bridge itself. But because mvebu PCI Bridge
+ * does not have registers for primary and secondary bus numbers
+ * in its config space, it determinates type of config requests
+ * via its own custom way.
+ *
+ * There are two options how mvebu determinate type of config
+ * request.
+ *
+ * 1. If Secondary Bus Number Enable bit is not set or is not
+ * available (applies for pre-XP PCIe controllers) then Type 0
+ * is used if target bus number equals Local Bus Number (bits
+ * [15:8] in register 0x1a04) and target device number differs
+ * from Local Device Number (bits [20:16] in register 0x1a04).
+ * Type 1 is used if target bus number differs from Local Bus
+ * Number. And when target bus number equals Local Bus Number
+ * and target device equals Local Device Number then request is
+ * routed to Local PCI Bridge (PCIe Root Port).
+ *
+ * 2. If Secondary Bus Number Enable bit is set (bit 7 in
+ * register 0x1a2c) then mvebu hw determinate type of config
+ * request like compliant PCI Bridge based on primary bus number
+ * which is configured via Local Bus Number (bits [15:8] in
+ * register 0x1a04) and secondary bus number which is configured
+ * via Secondary Bus Number (bits [7:0] in register 0x1a2c).
+ * Local PCI Bridge (PCIe Root Port) is available on primary bus
+ * as device with Local Device Number (bits [20:16] in register
+ * 0x1a04).
+ *
+ * Secondary Bus Number Enable bit is disabled by default and
+ * option 2. is not available on pre-XP PCIe controllers. Hence
+ * this driver always use option 1.
+ *
+ * Basically it means that primary and secondary buses shares
+ * one virtual number configured via Local Bus Number bits and
+ * Local Device Number bits determinates if accessing primary
+ * or secondary bus. Set Local Device Number to 1 and redirect
+ * all writes of PCI Bridge Secondary Bus Number register to
+ * Local Bus Number (bits [15:8] in register 0x1a04).
+ *
+ * So when accessing devices on buses behind secondary bus
+ * number it would work correctly. And also when accessing
+ * device 0 at secondary bus number via config space would be
+ * correctly routed to secondary bus. Due to issues described
+ * in mvebu_pcie_setup_hw(), PCI Bridges at primary bus (zero)
+ * are not accessed directly via PCI config space but rarher
+ * indirectly via kernel emulated PCI bridge driver.
+ */
mvebu_pcie_setup_hw(port);
- mvebu_pcie_set_local_dev_nr(port, 1);
- mvebu_pci_bridge_emul_init(port);
+ mvebu_pcie_set_local_dev_nr(port, 0);
}
pcie->nports = i;
diff --git a/drivers/pci/controller/pci-xgene.c b/drivers/pci/controller/pci-xgene.c
index 56d0d50338c8..d83dbd977418 100644
--- a/drivers/pci/controller/pci-xgene.c
+++ b/drivers/pci/controller/pci-xgene.c
@@ -465,7 +465,7 @@ static int xgene_pcie_select_ib_reg(u8 *ib_reg_mask, u64 size)
return 1;
}
- if ((size > SZ_1K) && (size < SZ_1T) && !(*ib_reg_mask & (1 << 0))) {
+ if ((size > SZ_1K) && (size < SZ_4G) && !(*ib_reg_mask & (1 << 0))) {
*ib_reg_mask |= (1 << 0);
return 0;
}
diff --git a/drivers/pci/controller/pcie-apple.c b/drivers/pci/controller/pcie-apple.c
index b090924b41fe..537ac9fe2e84 100644
--- a/drivers/pci/controller/pcie-apple.c
+++ b/drivers/pci/controller/pcie-apple.c
@@ -42,8 +42,9 @@
#define CORE_FABRIC_STAT_MASK 0x001F001F
#define CORE_LANE_CFG(port) (0x84000 + 0x4000 * (port))
#define CORE_LANE_CFG_REFCLK0REQ BIT(0)
-#define CORE_LANE_CFG_REFCLK1 BIT(1)
+#define CORE_LANE_CFG_REFCLK1REQ BIT(1)
#define CORE_LANE_CFG_REFCLK0ACK BIT(2)
+#define CORE_LANE_CFG_REFCLK1ACK BIT(3)
#define CORE_LANE_CFG_REFCLKEN (BIT(9) | BIT(10))
#define CORE_LANE_CTL(port) (0x84004 + 0x4000 * (port))
#define CORE_LANE_CTL_CFGACC BIT(15)
@@ -482,9 +483,9 @@ static int apple_pcie_setup_refclk(struct apple_pcie *pcie,
if (res < 0)
return res;
- rmw_set(CORE_LANE_CFG_REFCLK1, pcie->base + CORE_LANE_CFG(port->idx));
+ rmw_set(CORE_LANE_CFG_REFCLK1REQ, pcie->base + CORE_LANE_CFG(port->idx));
res = readl_relaxed_poll_timeout(pcie->base + CORE_LANE_CFG(port->idx),
- stat, stat & CORE_LANE_CFG_REFCLK1,
+ stat, stat & CORE_LANE_CFG_REFCLK1ACK,
100, 50000);
if (res < 0)
diff --git a/drivers/pci/controller/pcie-mediatek-gen3.c b/drivers/pci/controller/pcie-mediatek-gen3.c
index 17c59b0d6978..21207df680cc 100644
--- a/drivers/pci/controller/pcie-mediatek-gen3.c
+++ b/drivers/pci/controller/pcie-mediatek-gen3.c
@@ -79,6 +79,9 @@
#define PCIE_ICMD_PM_REG 0x198
#define PCIE_TURN_OFF_LINK BIT(4)
+#define PCIE_MISC_CTRL_REG 0x348
+#define PCIE_DISABLE_DVFSRC_VLT_REQ BIT(1)
+
#define PCIE_TRANS_TABLE_BASE_REG 0x800
#define PCIE_ATR_SRC_ADDR_MSB_OFFSET 0x4
#define PCIE_ATR_TRSL_ADDR_LSB_OFFSET 0x8
@@ -297,6 +300,11 @@ static int mtk_pcie_startup_port(struct mtk_pcie_port *port)
val &= ~PCIE_INTX_ENABLE;
writel_relaxed(val, port->base + PCIE_INT_ENABLE_REG);
+ /* Disable DVFSRC voltage request */
+ val = readl_relaxed(port->base + PCIE_MISC_CTRL_REG);
+ val |= PCIE_DISABLE_DVFSRC_VLT_REQ;
+ writel_relaxed(val, port->base + PCIE_MISC_CTRL_REG);
+
/* Assert all reset signals */
val = readl_relaxed(port->base + PCIE_RST_CTRL_REG);
val |= PCIE_MAC_RSTB | PCIE_PHY_RSTB | PCIE_BRG_RSTB | PCIE_PE_RSTB;
diff --git a/drivers/pci/controller/pcie-mt7621.c b/drivers/pci/controller/pcie-mt7621.c
index b60dfb45ef7b..73b91315c165 100644
--- a/drivers/pci/controller/pcie-mt7621.c
+++ b/drivers/pci/controller/pcie-mt7621.c
@@ -598,3 +598,5 @@ static struct platform_driver mt7621_pci_driver = {
},
};
builtin_platform_driver(mt7621_pci_driver);
+
+MODULE_LICENSE("GPL v2");
diff --git a/drivers/pci/controller/pcie-rcar-host.c b/drivers/pci/controller/pcie-rcar-host.c
index e12c2d8be05a..780e60159993 100644
--- a/drivers/pci/controller/pcie-rcar-host.c
+++ b/drivers/pci/controller/pcie-rcar-host.c
@@ -50,10 +50,10 @@ struct rcar_msi {
*/
static void __iomem *pcie_base;
/*
- * Static copy of bus clock pointer, so we can check whether the clock
- * is enabled or not.
+ * Static copy of PCIe device pointer, so we can check whether the
+ * device is runtime suspended or not.
*/
-static struct clk *pcie_bus_clk;
+static struct device *pcie_dev;
#endif
/* Structure representing the PCIe interface */
@@ -792,7 +792,7 @@ static int rcar_pcie_get_resources(struct rcar_pcie_host *host)
#ifdef CONFIG_ARM
/* Cache static copy for L1 link state fixup hook on aarch32 */
pcie_base = pcie->base;
- pcie_bus_clk = host->bus_clk;
+ pcie_dev = pcie->dev;
#endif
return 0;
@@ -1062,7 +1062,7 @@ static int rcar_pcie_aarch32_abort_handler(unsigned long addr,
spin_lock_irqsave(&pmsr_lock, flags);
- if (!pcie_base || !__clk_is_enabled(pcie_bus_clk)) {
+ if (!pcie_base || pm_runtime_suspended(pcie_dev)) {
ret = 1;
goto unlock_exit;
}
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
index 918dccbc74b6..e0a614acee05 100644
--- a/drivers/pci/hotplug/pciehp.h
+++ b/drivers/pci/hotplug/pciehp.h
@@ -75,6 +75,8 @@ extern int pciehp_poll_time;
* @reset_lock: prevents access to the Data Link Layer Link Active bit in the
* Link Status register and to the Presence Detect State bit in the Slot
* Status register during a slot reset which may cause them to flap
+ * @depth: Number of additional hotplug ports in the path to the root bus,
+ * used as lock subclass for @reset_lock
* @ist_running: flag to keep user request waiting while IRQ thread is running
* @request_result: result of last user request submitted to the IRQ thread
* @requester: wait queue to wake up on completion of user request,
@@ -106,6 +108,7 @@ struct controller {
struct hotplug_slot hotplug_slot; /* hotplug core interface */
struct rw_semaphore reset_lock;
+ unsigned int depth;
unsigned int ist_running;
int request_result;
wait_queue_head_t requester;
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
index f34114d45259..4042d87d539d 100644
--- a/drivers/pci/hotplug/pciehp_core.c
+++ b/drivers/pci/hotplug/pciehp_core.c
@@ -166,7 +166,7 @@ static void pciehp_check_presence(struct controller *ctrl)
{
int occupied;
- down_read(&ctrl->reset_lock);
+ down_read_nested(&ctrl->reset_lock, ctrl->depth);
mutex_lock(&ctrl->state_lock);
occupied = pciehp_card_present_or_link_active(ctrl);
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c
index 83a0fa119cae..963fb50528da 100644
--- a/drivers/pci/hotplug/pciehp_hpc.c
+++ b/drivers/pci/hotplug/pciehp_hpc.c
@@ -583,7 +583,7 @@ static void pciehp_ignore_dpc_link_change(struct controller *ctrl,
* the corresponding link change may have been ignored above.
* Synthesize it to ensure that it is acted on.
*/
- down_read(&ctrl->reset_lock);
+ down_read_nested(&ctrl->reset_lock, ctrl->depth);
if (!pciehp_check_link_active(ctrl))
pciehp_request(ctrl, PCI_EXP_SLTSTA_DLLSC);
up_read(&ctrl->reset_lock);
@@ -746,7 +746,7 @@ static irqreturn_t pciehp_ist(int irq, void *dev_id)
* Disable requests have higher priority than Presence Detect Changed
* or Data Link Layer State Changed events.
*/
- down_read(&ctrl->reset_lock);
+ down_read_nested(&ctrl->reset_lock, ctrl->depth);
if (events & DISABLE_SLOT)
pciehp_handle_disable_request(ctrl);
else if (events & (PCI_EXP_SLTSTA_PDC | PCI_EXP_SLTSTA_DLLSC))
@@ -906,7 +906,7 @@ int pciehp_reset_slot(struct hotplug_slot *hotplug_slot, bool probe)
if (probe)
return 0;
- down_write(&ctrl->reset_lock);
+ down_write_nested(&ctrl->reset_lock, ctrl->depth);
if (!ATTN_BUTTN(ctrl)) {
ctrl_mask |= PCI_EXP_SLTCTL_PDCE;
@@ -962,6 +962,20 @@ static inline void dbg_ctrl(struct controller *ctrl)
#define FLAG(x, y) (((x) & (y)) ? '+' : '-')
+static inline int pcie_hotplug_depth(struct pci_dev *dev)
+{
+ struct pci_bus *bus = dev->bus;
+ int depth = 0;
+
+ while (bus->parent) {
+ bus = bus->parent;
+ if (bus->self && bus->self->is_hotplug_bridge)
+ depth++;
+ }
+
+ return depth;
+}
+
struct controller *pcie_init(struct pcie_device *dev)
{
struct controller *ctrl;
@@ -975,6 +989,7 @@ struct controller *pcie_init(struct pcie_device *dev)
return NULL;
ctrl->pcie = dev;
+ ctrl->depth = pcie_hotplug_depth(dev->port);
pcie_capability_read_dword(pdev, PCI_EXP_SLTCAP, &slot_cap);
if (pdev->hotplug_user_indicators)
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index d84cf30bb279..8465221be6d2 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -1194,19 +1194,24 @@ EXPORT_SYMBOL(pci_free_irq_vectors);
/**
* pci_irq_vector - return Linux IRQ number of a device vector
- * @dev: PCI device to operate on
- * @nr: device-relative interrupt vector index (0-based).
+ * @dev: PCI device to operate on
+ * @nr: Interrupt vector index (0-based)
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ * MSI-X: The index in the MSI-X vector table
+ * MSI: The index of the enabled MSI vectors
+ * INTx: Must be 0
+ *
+ * Return: The Linux interrupt number or -EINVAl if @nr is out of range.
*/
int pci_irq_vector(struct pci_dev *dev, unsigned int nr)
{
if (dev->msix_enabled) {
struct msi_desc *entry;
- int i = 0;
for_each_pci_msi_entry(entry, dev) {
- if (i == nr)
+ if (entry->msi_attrib.entry_nr == nr)
return entry->irq;
- i++;
}
WARN_ON_ONCE(1);
return -EINVAL;
@@ -1230,17 +1235,22 @@ EXPORT_SYMBOL(pci_irq_vector);
* pci_irq_get_affinity - return the affinity of a particular MSI vector
* @dev: PCI device to operate on
* @nr: device-relative interrupt vector index (0-based).
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ * MSI-X: The index in the MSI-X vector table
+ * MSI: The index of the enabled MSI vectors
+ * INTx: Must be 0
+ *
+ * Return: A cpumask pointer or NULL if @nr is out of range
*/
const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr)
{
if (dev->msix_enabled) {
struct msi_desc *entry;
- int i = 0;
for_each_pci_msi_entry(entry, dev) {
- if (i == nr)
+ if (entry->msi_attrib.entry_nr == nr)
return &entry->affinity->mask;
- i++;
}
WARN_ON_ONCE(1);
return NULL;
diff --git a/drivers/pci/pci-bridge-emul.c b/drivers/pci/pci-bridge-emul.c
index db97cddfc85e..37504c2cce9b 100644
--- a/drivers/pci/pci-bridge-emul.c
+++ b/drivers/pci/pci-bridge-emul.c
@@ -139,8 +139,13 @@ struct pci_bridge_reg_behavior pci_regs_behavior[PCI_STD_HEADER_SIZEOF / 4] = {
.ro = GENMASK(7, 0),
},
+ /*
+ * If expansion ROM is unsupported then ROM Base Address register must
+ * be implemented as read-only register that return 0 when read, same
+ * as for unused Base Address registers.
+ */
[PCI_ROM_ADDRESS1 / 4] = {
- .rw = GENMASK(31, 11) | BIT(0),
+ .ro = ~0,
},
/*
@@ -171,41 +176,55 @@ struct pci_bridge_reg_behavior pcie_cap_regs_behavior[PCI_CAP_PCIE_SIZEOF / 4] =
[PCI_CAP_LIST_ID / 4] = {
/*
* Capability ID, Next Capability Pointer and
- * Capabilities register are all read-only.
+ * bits [14:0] of Capabilities register are all read-only.
+ * Bit 15 of Capabilities register is reserved.
*/
- .ro = ~0,
+ .ro = GENMASK(30, 0),
},
[PCI_EXP_DEVCAP / 4] = {
- .ro = ~0,
+ /*
+ * Bits [31:29] and [17:16] are reserved.
+ * Bits [27:18] are reserved for non-upstream ports.
+ * Bits 28 and [14:6] are reserved for non-endpoint devices.
+ * Other bits are read-only.
+ */
+ .ro = BIT(15) | GENMASK(5, 0),
},
[PCI_EXP_DEVCTL / 4] = {
- /* Device control register is RW */
- .rw = GENMASK(15, 0),
+ /*
+ * Device control register is RW, except bit 15 which is
+ * reserved for non-endpoints or non-PCIe-to-PCI/X bridges.
+ */
+ .rw = GENMASK(14, 0),
/*
* Device status register has bits 6 and [3:0] W1C, [5:4] RO,
- * the rest is reserved
+ * the rest is reserved. Also bit 6 is reserved for non-upstream
+ * ports.
*/
- .w1c = (BIT(6) | GENMASK(3, 0)) << 16,
+ .w1c = GENMASK(3, 0) << 16,
.ro = GENMASK(5, 4) << 16,
},
[PCI_EXP_LNKCAP / 4] = {
- /* All bits are RO, except bit 23 which is reserved */
- .ro = lower_32_bits(~BIT(23)),
+ /*
+ * All bits are RO, except bit 23 which is reserved and
+ * bit 18 which is reserved for non-upstream ports.
+ */
+ .ro = lower_32_bits(~(BIT(23) | PCI_EXP_LNKCAP_CLKPM)),
},
[PCI_EXP_LNKCTL / 4] = {
/*
* Link control has bits [15:14], [11:3] and [1:0] RW, the
- * rest is reserved.
+ * rest is reserved. Bit 8 is reserved for non-upstream ports.
*
* Link status has bits [13:0] RO, and bits [15:14]
* W1C.
*/
- .rw = GENMASK(15, 14) | GENMASK(11, 3) | GENMASK(1, 0),
+ .rw = GENMASK(15, 14) | GENMASK(11, 9) | GENMASK(7, 3) | GENMASK(1, 0),
.ro = GENMASK(13, 0) << 16,
.w1c = GENMASK(15, 14) << 16,
},
@@ -277,11 +296,9 @@ int pci_bridge_emul_init(struct pci_bridge_emul *bridge,
if (bridge->has_pcie) {
bridge->conf.capabilities_pointer = PCI_CAP_PCIE_START;
+ bridge->conf.status |= cpu_to_le16(PCI_STATUS_CAP_LIST);
bridge->pcie_conf.cap_id = PCI_CAP_ID_EXP;
- /* Set PCIe v2, root port, slot support */
- bridge->pcie_conf.cap =
- cpu_to_le16(PCI_EXP_TYPE_ROOT_PORT << 4 | 2 |
- PCI_EXP_FLAGS_SLOT);
+ bridge->pcie_conf.cap |= cpu_to_le16(PCI_EXP_TYPE_ROOT_PORT << 4);
bridge->pcie_cap_regs_behavior =
kmemdup(pcie_cap_regs_behavior,
sizeof(pcie_cap_regs_behavior),
@@ -290,6 +307,27 @@ int pci_bridge_emul_init(struct pci_bridge_emul *bridge,
kfree(bridge->pci_regs_behavior);
return -ENOMEM;
}
+ /* These bits are applicable only for PCI and reserved on PCIe */
+ bridge->pci_regs_behavior[PCI_CACHE_LINE_SIZE / 4].ro &=
+ ~GENMASK(15, 8);
+ bridge->pci_regs_behavior[PCI_COMMAND / 4].ro &=
+ ~((PCI_COMMAND_SPECIAL | PCI_COMMAND_INVALIDATE |
+ PCI_COMMAND_VGA_PALETTE | PCI_COMMAND_WAIT |
+ PCI_COMMAND_FAST_BACK) |
+ (PCI_STATUS_66MHZ | PCI_STATUS_FAST_BACK |
+ PCI_STATUS_DEVSEL_MASK) << 16);
+ bridge->pci_regs_behavior[PCI_PRIMARY_BUS / 4].ro &=
+ ~GENMASK(31, 24);
+ bridge->pci_regs_behavior[PCI_IO_BASE / 4].ro &=
+ ~((PCI_STATUS_66MHZ | PCI_STATUS_FAST_BACK |
+ PCI_STATUS_DEVSEL_MASK) << 16);
+ bridge->pci_regs_behavior[PCI_INTERRUPT_LINE / 4].rw &=
+ ~((PCI_BRIDGE_CTL_MASTER_ABORT |
+ BIT(8) | BIT(9) | BIT(11)) << 16);
+ bridge->pci_regs_behavior[PCI_INTERRUPT_LINE / 4].ro &=
+ ~((PCI_BRIDGE_CTL_FAST_BACK) << 16);
+ bridge->pci_regs_behavior[PCI_INTERRUPT_LINE / 4].w1c &=
+ ~(BIT(10) << 16);
}
if (flags & PCI_BRIDGE_EMUL_NO_PREFETCHABLE_BAR) {
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 003950c738d2..20a932690738 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -4103,6 +4103,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9120,
quirk_dma_func1_alias);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9123,
quirk_dma_func1_alias);
+/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c136 */
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9125,
+ quirk_dma_func1_alias);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9128,
quirk_dma_func1_alias);
/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c14 */
diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c
index e211e2619680..f70197154a36 100644
--- a/drivers/pcmcia/cs.c
+++ b/drivers/pcmcia/cs.c
@@ -666,18 +666,16 @@ static int pccardd(void *__skt)
if (events || sysfs_events)
continue;
+ set_current_state(TASK_INTERRUPTIBLE);
if (kthread_should_stop())
break;
- set_current_state(TASK_INTERRUPTIBLE);
-
schedule();
- /* make sure we are running */
- __set_current_state(TASK_RUNNING);
-
try_to_freeze();
}
+ /* make sure we are running before we exit */
+ __set_current_state(TASK_RUNNING);
/* shut down socket, if a device is still present */
if (skt->state & SOCKET_PRESENT) {
diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c
index bb15a8bdbaab..1cac52870711 100644
--- a/drivers/pcmcia/rsrc_nonstatic.c
+++ b/drivers/pcmcia/rsrc_nonstatic.c
@@ -690,6 +690,9 @@ static struct resource *__nonstatic_find_io_region(struct pcmcia_socket *s,
unsigned long min = base;
int ret;
+ if (!res)
+ return NULL;
+
data.mask = align - 1;
data.offset = base & data.mask;
data.map = &s_data->io_db;
@@ -809,6 +812,9 @@ static struct resource *nonstatic_find_mem_region(u_long base, u_long num,
unsigned long min, max;
int ret, i, j;
+ if (!res)
+ return NULL;
+
low = low || !(s->features & SS_CAP_PAGE_REGS);
data.mask = align - 1;
diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
index bc3cba5f8c5d..400eb7f579dc 100644
--- a/drivers/perf/arm-cmn.c
+++ b/drivers/perf/arm-cmn.c
@@ -1561,7 +1561,8 @@ static int arm_cmn_probe(struct platform_device *pdev)
err = perf_pmu_register(&cmn->pmu, name, -1);
if (err)
- cpuhp_state_remove_instance(arm_cmn_hp_state, &cmn->cpuhp_node);
+ cpuhp_state_remove_instance_nocalls(arm_cmn_hp_state, &cmn->cpuhp_node);
+
return err;
}
@@ -1572,7 +1573,7 @@ static int arm_cmn_remove(struct platform_device *pdev)
writel_relaxed(0, cmn->dtc[0].base + CMN_DT_DTC_CTL);
perf_pmu_unregister(&cmn->pmu);
- cpuhp_state_remove_instance(arm_cmn_hp_state, &cmn->cpuhp_node);
+ cpuhp_state_remove_instance_nocalls(arm_cmn_hp_state, &cmn->cpuhp_node);
return 0;
}
diff --git a/drivers/phy/cadence/phy-cadence-sierra.c b/drivers/phy/cadence/phy-cadence-sierra.c
index e93818e3991f..3e2d096d54fd 100644
--- a/drivers/phy/cadence/phy-cadence-sierra.c
+++ b/drivers/phy/cadence/phy-cadence-sierra.c
@@ -215,7 +215,10 @@ static const int pll_mux_parent_index[][SIERRA_NUM_CMN_PLLC_PARENTS] = {
[CMN_PLLLC1] = { PLL1_REFCLK, PLL0_REFCLK },
};
-static u32 cdns_sierra_pll_mux_table[] = { 0, 1 };
+static u32 cdns_sierra_pll_mux_table[][SIERRA_NUM_CMN_PLLC_PARENTS] = {
+ [CMN_PLLLC] = { 0, 1 },
+ [CMN_PLLLC1] = { 1, 0 },
+};
struct cdns_sierra_inst {
struct phy *phy;
@@ -436,11 +439,25 @@ static const struct phy_ops ops = {
static u8 cdns_sierra_pll_mux_get_parent(struct clk_hw *hw)
{
struct cdns_sierra_pll_mux *mux = to_cdns_sierra_pll_mux(hw);
+ struct regmap_field *plllc1en_field = mux->plllc1en_field;
+ struct regmap_field *termen_field = mux->termen_field;
struct regmap_field *field = mux->pfdclk_sel_preg;
unsigned int val;
+ int index;
regmap_field_read(field, &val);
- return clk_mux_val_to_index(hw, cdns_sierra_pll_mux_table, 0, val);
+
+ if (strstr(clk_hw_get_name(hw), clk_names[CDNS_SIERRA_PLL_CMNLC1])) {
+ index = clk_mux_val_to_index(hw, cdns_sierra_pll_mux_table[CMN_PLLLC1], 0, val);
+ if (index == 1) {
+ regmap_field_write(plllc1en_field, 1);
+ regmap_field_write(termen_field, 1);
+ }
+ } else {
+ index = clk_mux_val_to_index(hw, cdns_sierra_pll_mux_table[CMN_PLLLC], 0, val);
+ }
+
+ return index;
}
static int cdns_sierra_pll_mux_set_parent(struct clk_hw *hw, u8 index)
@@ -458,7 +475,11 @@ static int cdns_sierra_pll_mux_set_parent(struct clk_hw *hw, u8 index)
ret |= regmap_field_write(termen_field, 1);
}
- val = cdns_sierra_pll_mux_table[index];
+ if (strstr(clk_hw_get_name(hw), clk_names[CDNS_SIERRA_PLL_CMNLC1]))
+ val = cdns_sierra_pll_mux_table[CMN_PLLLC1][index];
+ else
+ val = cdns_sierra_pll_mux_table[CMN_PLLLC][index];
+
ret |= regmap_field_write(field, val);
return ret;
@@ -496,8 +517,8 @@ static int cdns_sierra_pll_mux_register(struct cdns_sierra_phy *sp,
for (i = 0; i < num_parents; i++) {
clk = sp->input_clks[pll_mux_parent_index[clk_index][i]];
if (IS_ERR_OR_NULL(clk)) {
- dev_err(dev, "No parent clock for derived_refclk\n");
- return PTR_ERR(clk);
+ dev_err(dev, "No parent clock for PLL mux clocks\n");
+ return IS_ERR(clk) ? PTR_ERR(clk) : -ENOENT;
}
parent_names[i] = __clk_get_name(clk);
}
diff --git a/drivers/phy/mediatek/phy-mtk-mipi-dsi.c b/drivers/phy/mediatek/phy-mtk-mipi-dsi.c
index 28ad9403c441..67b005d5b9e3 100644
--- a/drivers/phy/mediatek/phy-mtk-mipi-dsi.c
+++ b/drivers/phy/mediatek/phy-mtk-mipi-dsi.c
@@ -146,6 +146,8 @@ static int mtk_mipi_tx_probe(struct platform_device *pdev)
return -ENOMEM;
mipi_tx->driver_data = of_device_get_match_data(dev);
+ if (!mipi_tx->driver_data)
+ return -ENODEV;
mipi_tx->regs = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(mipi_tx->regs))
diff --git a/drivers/phy/mediatek/phy-mtk-tphy.c b/drivers/phy/mediatek/phy-mtk-tphy.c
index cdcef865fe9e..98a942c607a6 100644
--- a/drivers/phy/mediatek/phy-mtk-tphy.c
+++ b/drivers/phy/mediatek/phy-mtk-tphy.c
@@ -12,6 +12,7 @@
#include <linux/iopoll.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
+#include <linux/nvmem-consumer.h>
#include <linux/of_address.h>
#include <linux/of_device.h>
#include <linux/phy/phy.h>
@@ -41,6 +42,9 @@
#define SSUSB_SIFSLV_V2_U3PHYD 0x200
#define SSUSB_SIFSLV_V2_U3PHYA 0x400
+#define U3P_MISC_REG1 0x04
+#define MR1_EFUSE_AUTO_LOAD_DIS BIT(6)
+
#define U3P_USBPHYACR0 0x000
#define PA0_RG_U2PLL_FORCE_ON BIT(15)
#define PA0_USB20_PLL_PREDIV GENMASK(7, 6)
@@ -133,6 +137,8 @@
#define P3C_RG_SWRST_U3_PHYD_FORCE_EN BIT(24)
#define U3P_U3_PHYA_REG0 0x000
+#define P3A_RG_IEXT_INTR GENMASK(15, 10)
+#define P3A_RG_IEXT_INTR_VAL(x) ((0x3f & (x)) << 10)
#define P3A_RG_CLKDRV_OFF GENMASK(3, 2)
#define P3A_RG_CLKDRV_OFF_VAL(x) ((0x3 & (x)) << 2)
@@ -187,6 +193,19 @@
#define P3D_RG_FWAKE_TH GENMASK(21, 16)
#define P3D_RG_FWAKE_TH_VAL(x) ((0x3f & (x)) << 16)
+#define U3P_U3_PHYD_IMPCAL0 0x010
+#define P3D_RG_FORCE_TX_IMPEL BIT(31)
+#define P3D_RG_TX_IMPEL GENMASK(28, 24)
+#define P3D_RG_TX_IMPEL_VAL(x) ((0x1f & (x)) << 24)
+
+#define U3P_U3_PHYD_IMPCAL1 0x014
+#define P3D_RG_FORCE_RX_IMPEL BIT(31)
+#define P3D_RG_RX_IMPEL GENMASK(28, 24)
+#define P3D_RG_RX_IMPEL_VAL(x) ((0x1f & (x)) << 24)
+
+#define U3P_U3_PHYD_RSV 0x054
+#define P3D_RG_EFUSE_AUTO_LOAD_DIS BIT(12)
+
#define U3P_U3_PHYD_CDR1 0x05c
#define P3D_RG_CDR_BIR_LTD1 GENMASK(28, 24)
#define P3D_RG_CDR_BIR_LTD1_VAL(x) ((0x1f & (x)) << 24)
@@ -307,6 +326,11 @@ struct mtk_phy_pdata {
* 48M PLL, fix it by switching PLL to 26M from default 48M
*/
bool sw_pll_48m_to_26m;
+ /*
+ * Some SoCs (e.g. mt8195) drop a bit when use auto load efuse,
+ * support sw way, also support it for v2/v3 optionally.
+ */
+ bool sw_efuse_supported;
enum mtk_phy_version version;
};
@@ -336,6 +360,10 @@ struct mtk_phy_instance {
struct regmap *type_sw;
u32 type_sw_reg;
u32 type_sw_index;
+ u32 efuse_sw_en;
+ u32 efuse_intr;
+ u32 efuse_tx_imp;
+ u32 efuse_rx_imp;
int eye_src;
int eye_vrt;
int eye_term;
@@ -1040,6 +1068,130 @@ static int phy_type_set(struct mtk_phy_instance *instance)
return 0;
}
+static int phy_efuse_get(struct mtk_tphy *tphy, struct mtk_phy_instance *instance)
+{
+ struct device *dev = &instance->phy->dev;
+ int ret = 0;
+
+ /* tphy v1 doesn't support sw efuse, skip it */
+ if (!tphy->pdata->sw_efuse_supported) {
+ instance->efuse_sw_en = 0;
+ return 0;
+ }
+
+ /* software efuse is optional */
+ instance->efuse_sw_en = device_property_read_bool(dev, "nvmem-cells");
+ if (!instance->efuse_sw_en)
+ return 0;
+
+ switch (instance->type) {
+ case PHY_TYPE_USB2:
+ ret = nvmem_cell_read_variable_le_u32(dev, "intr", &instance->efuse_intr);
+ if (ret) {
+ dev_err(dev, "fail to get u2 intr efuse, %d\n", ret);
+ break;
+ }
+
+ /* no efuse, ignore it */
+ if (!instance->efuse_intr) {
+ dev_warn(dev, "no u2 intr efuse, but dts enable it\n");
+ instance->efuse_sw_en = 0;
+ break;
+ }
+
+ dev_dbg(dev, "u2 efuse - intr %x\n", instance->efuse_intr);
+ break;
+
+ case PHY_TYPE_USB3:
+ case PHY_TYPE_PCIE:
+ ret = nvmem_cell_read_variable_le_u32(dev, "intr", &instance->efuse_intr);
+ if (ret) {
+ dev_err(dev, "fail to get u3 intr efuse, %d\n", ret);
+ break;
+ }
+
+ ret = nvmem_cell_read_variable_le_u32(dev, "rx_imp", &instance->efuse_rx_imp);
+ if (ret) {
+ dev_err(dev, "fail to get u3 rx_imp efuse, %d\n", ret);
+ break;
+ }
+
+ ret = nvmem_cell_read_variable_le_u32(dev, "tx_imp", &instance->efuse_tx_imp);
+ if (ret) {
+ dev_err(dev, "fail to get u3 tx_imp efuse, %d\n", ret);
+ break;
+ }
+
+ /* no efuse, ignore it */
+ if (!instance->efuse_intr &&
+ !instance->efuse_rx_imp &&
+ !instance->efuse_rx_imp) {
+ dev_warn(dev, "no u3 intr efuse, but dts enable it\n");
+ instance->efuse_sw_en = 0;
+ break;
+ }
+
+ dev_dbg(dev, "u3 efuse - intr %x, rx_imp %x, tx_imp %x\n",
+ instance->efuse_intr, instance->efuse_rx_imp,instance->efuse_tx_imp);
+ break;
+ default:
+ dev_err(dev, "no sw efuse for type %d\n", instance->type);
+ ret = -EINVAL;
+ }
+
+ return ret;
+}
+
+static void phy_efuse_set(struct mtk_phy_instance *instance)
+{
+ struct device *dev = &instance->phy->dev;
+ struct u2phy_banks *u2_banks = &instance->u2_banks;
+ struct u3phy_banks *u3_banks = &instance->u3_banks;
+ u32 tmp;
+
+ if (!instance->efuse_sw_en)
+ return;
+
+ switch (instance->type) {
+ case PHY_TYPE_USB2:
+ tmp = readl(u2_banks->misc + U3P_MISC_REG1);
+ tmp |= MR1_EFUSE_AUTO_LOAD_DIS;
+ writel(tmp, u2_banks->misc + U3P_MISC_REG1);
+
+ tmp = readl(u2_banks->com + U3P_USBPHYACR1);
+ tmp &= ~PA1_RG_INTR_CAL;
+ tmp |= PA1_RG_INTR_CAL_VAL(instance->efuse_intr);
+ writel(tmp, u2_banks->com + U3P_USBPHYACR1);
+ break;
+ case PHY_TYPE_USB3:
+ case PHY_TYPE_PCIE:
+ tmp = readl(u3_banks->phyd + U3P_U3_PHYD_RSV);
+ tmp |= P3D_RG_EFUSE_AUTO_LOAD_DIS;
+ writel(tmp, u3_banks->phyd + U3P_U3_PHYD_RSV);
+
+ tmp = readl(u3_banks->phyd + U3P_U3_PHYD_IMPCAL0);
+ tmp &= ~P3D_RG_TX_IMPEL;
+ tmp |= P3D_RG_TX_IMPEL_VAL(instance->efuse_tx_imp);
+ tmp |= P3D_RG_FORCE_TX_IMPEL;
+ writel(tmp, u3_banks->phyd + U3P_U3_PHYD_IMPCAL0);
+
+ tmp = readl(u3_banks->phyd + U3P_U3_PHYD_IMPCAL1);
+ tmp &= ~P3D_RG_RX_IMPEL;
+ tmp |= P3D_RG_RX_IMPEL_VAL(instance->efuse_rx_imp);
+ tmp |= P3D_RG_FORCE_RX_IMPEL;
+ writel(tmp, u3_banks->phyd + U3P_U3_PHYD_IMPCAL1);
+
+ tmp = readl(u3_banks->phya + U3P_U3_PHYA_REG0);
+ tmp &= ~P3A_RG_IEXT_INTR;
+ tmp |= P3A_RG_IEXT_INTR_VAL(instance->efuse_intr);
+ writel(tmp, u3_banks->phya + U3P_U3_PHYA_REG0);
+ break;
+ default:
+ dev_warn(dev, "no sw efuse for type %d\n", instance->type);
+ break;
+ }
+}
+
static int mtk_phy_init(struct phy *phy)
{
struct mtk_phy_instance *instance = phy_get_drvdata(phy);
@@ -1050,6 +1202,8 @@ static int mtk_phy_init(struct phy *phy)
if (ret)
return ret;
+ phy_efuse_set(instance);
+
switch (instance->type) {
case PHY_TYPE_USB2:
u2_phy_instance_init(tphy, instance);
@@ -1134,6 +1288,7 @@ static struct phy *mtk_phy_xlate(struct device *dev,
struct mtk_phy_instance *instance = NULL;
struct device_node *phy_np = args->np;
int index;
+ int ret;
if (args->args_count != 1) {
dev_err(dev, "invalid number of cells in 'phy' property\n");
@@ -1174,6 +1329,10 @@ static struct phy *mtk_phy_xlate(struct device *dev,
return ERR_PTR(-EINVAL);
}
+ ret = phy_efuse_get(tphy, instance);
+ if (ret)
+ return ERR_PTR(ret);
+
phy_parse_property(tphy, instance);
phy_type_set(instance);
@@ -1196,10 +1355,12 @@ static const struct mtk_phy_pdata tphy_v1_pdata = {
static const struct mtk_phy_pdata tphy_v2_pdata = {
.avoid_rx_sen_degradation = false,
+ .sw_efuse_supported = true,
.version = MTK_PHY_V2,
};
static const struct mtk_phy_pdata tphy_v3_pdata = {
+ .sw_efuse_supported = true,
.version = MTK_PHY_V3,
};
@@ -1210,6 +1371,7 @@ static const struct mtk_phy_pdata mt8173_pdata = {
static const struct mtk_phy_pdata mt8195_pdata = {
.sw_pll_48m_to_26m = true,
+ .sw_efuse_supported = true,
.version = MTK_PHY_V3,
};
diff --git a/drivers/phy/socionext/phy-uniphier-usb3ss.c b/drivers/phy/socionext/phy-uniphier-usb3ss.c
index 6700645bcbe6..3b5ffc16a694 100644
--- a/drivers/phy/socionext/phy-uniphier-usb3ss.c
+++ b/drivers/phy/socionext/phy-uniphier-usb3ss.c
@@ -22,11 +22,13 @@
#include <linux/reset.h>
#define SSPHY_TESTI 0x0
-#define SSPHY_TESTO 0x4
#define TESTI_DAT_MASK GENMASK(13, 6)
#define TESTI_ADR_MASK GENMASK(5, 1)
#define TESTI_WR_EN BIT(0)
+#define SSPHY_TESTO 0x4
+#define TESTO_DAT_MASK GENMASK(7, 0)
+
#define PHY_F(regno, msb, lsb) { (regno), (msb), (lsb) }
#define CDR_CPD_TRIM PHY_F(7, 3, 0) /* RxPLL charge pump current */
@@ -84,12 +86,12 @@ static void uniphier_u3ssphy_set_param(struct uniphier_u3ssphy_priv *priv,
val = FIELD_PREP(TESTI_DAT_MASK, 1);
val |= FIELD_PREP(TESTI_ADR_MASK, p->field.reg_no);
uniphier_u3ssphy_testio_write(priv, val);
- val = readl(priv->base + SSPHY_TESTO);
+ val = readl(priv->base + SSPHY_TESTO) & TESTO_DAT_MASK;
/* update value */
- val &= ~FIELD_PREP(TESTI_DAT_MASK, field_mask);
+ val &= ~field_mask;
data = field_mask & (p->value << p->field.lsb);
- val = FIELD_PREP(TESTI_DAT_MASK, data);
+ val = FIELD_PREP(TESTI_DAT_MASK, data | val);
val |= FIELD_PREP(TESTI_ADR_MASK, p->field.reg_no);
uniphier_u3ssphy_testio_write(priv, val);
uniphier_u3ssphy_testio_write(priv, val | TESTI_WR_EN);
diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
index 53779822348d..e1ae3beb9f72 100644
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
@@ -815,6 +815,8 @@ static int mtk_pinconf_bias_get_rsel(struct mtk_pinctrl *hw,
goto out;
err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_PD, &pd);
+ if (err)
+ goto out;
if (pu == 0 && pd == 0) {
*pullup = 0;
diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/mediatek/pinctrl-paris.c
index d4e02c5d74a8..4c6f6d967b18 100644
--- a/drivers/pinctrl/mediatek/pinctrl-paris.c
+++ b/drivers/pinctrl/mediatek/pinctrl-paris.c
@@ -581,7 +581,7 @@ ssize_t mtk_pctrl_show_one_pin(struct mtk_pinctrl *hw,
{
int pinmux, pullup, pullen, len = 0, r1 = -1, r0 = -1, rsel = -1;
const struct mtk_pin_desc *desc;
- u32 try_all_type;
+ u32 try_all_type = 0;
if (gpio >= hw->soc->npins)
return -EINVAL;
diff --git a/drivers/pinctrl/pinctrl-apple-gpio.c b/drivers/pinctrl/pinctrl-apple-gpio.c
index a7861079a650..c772e31d2122 100644
--- a/drivers/pinctrl/pinctrl-apple-gpio.c
+++ b/drivers/pinctrl/pinctrl-apple-gpio.c
@@ -114,7 +114,7 @@ static int apple_gpio_dt_node_to_map(struct pinctrl_dev *pctldev,
dev_err(pctl->dev,
"missing or empty pinmux property in node %pOFn.\n",
node);
- return ret;
+ return ret ? ret : -EINVAL;
}
num_pins = ret;
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index 5ce260f152ce..dc52da94af0b 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -2748,7 +2748,7 @@ static int rockchip_pinctrl_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, info);
- ret = of_platform_populate(np, rockchip_bank_match, NULL, NULL);
+ ret = of_platform_populate(np, NULL, NULL, &pdev->dev);
if (ret) {
dev_err(&pdev->dev, "failed to register gpio device\n");
return ret;
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
index c34341f4da76..02aba274c4bc 100644
--- a/drivers/platform/x86/wmi.c
+++ b/drivers/platform/x86/wmi.c
@@ -57,6 +57,11 @@ static_assert(sizeof(typeof_member(struct guid_block, guid)) == 16);
static_assert(sizeof(struct guid_block) == 20);
static_assert(__alignof__(struct guid_block) == 1);
+enum { /* wmi_block flags */
+ WMI_READ_TAKES_NO_ARGS,
+ WMI_PROBED,
+};
+
struct wmi_block {
struct wmi_device dev;
struct list_head list;
@@ -67,8 +72,7 @@ struct wmi_block {
wmi_notify_handler handler;
void *handler_data;
u64 req_buf_size;
-
- bool read_takes_no_args;
+ unsigned long flags;
};
@@ -367,7 +371,7 @@ static acpi_status __query_block(struct wmi_block *wblock, u8 instance,
wq_params[0].type = ACPI_TYPE_INTEGER;
wq_params[0].integer.value = instance;
- if (instance == 0 && wblock->read_takes_no_args)
+ if (instance == 0 && test_bit(WMI_READ_TAKES_NO_ARGS, &wblock->flags))
input.count = 0;
/*
@@ -1005,6 +1009,7 @@ static int wmi_dev_probe(struct device *dev)
}
}
+ set_bit(WMI_PROBED, &wblock->flags);
return 0;
probe_misc_failure:
@@ -1022,6 +1027,8 @@ static void wmi_dev_remove(struct device *dev)
struct wmi_block *wblock = dev_to_wblock(dev);
struct wmi_driver *wdriver = drv_to_wdrv(dev->driver);
+ clear_bit(WMI_PROBED, &wblock->flags);
+
if (wdriver->filter_callback) {
misc_deregister(&wblock->char_dev);
kfree(wblock->char_dev.name);
@@ -1113,7 +1120,7 @@ static int wmi_create_device(struct device *wmi_bus_dev,
* laptops, WQxx may not be a method at all.)
*/
if (info->type != ACPI_TYPE_METHOD || info->param_count == 0)
- wblock->read_takes_no_args = true;
+ set_bit(WMI_READ_TAKES_NO_ARGS, &wblock->flags);
kfree(info);
@@ -1319,7 +1326,7 @@ static void acpi_wmi_notify_handler(acpi_handle handle, u32 event,
return;
/* If a driver is bound, then notify the driver. */
- if (wblock->dev.dev.driver) {
+ if (test_bit(WMI_PROBED, &wblock->flags) && wblock->dev.dev.driver) {
struct wmi_driver *driver = drv_to_wdrv(wblock->dev.dev.driver);
struct acpi_buffer evdata = { ACPI_ALLOCATE_BUFFER, NULL };
acpi_status status;
diff --git a/drivers/power/reset/mt6323-poweroff.c b/drivers/power/reset/mt6323-poweroff.c
index 0532803e6cbc..d90e76fcb938 100644
--- a/drivers/power/reset/mt6323-poweroff.c
+++ b/drivers/power/reset/mt6323-poweroff.c
@@ -57,6 +57,9 @@ static int mt6323_pwrc_probe(struct platform_device *pdev)
return -ENOMEM;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res)
+ return -EINVAL;
+
pwrc->base = res->start;
pwrc->regmap = mt6397_chip->regmap;
pwrc->dev = &pdev->dev;
diff --git a/drivers/ptp/ptp_vclock.c b/drivers/ptp/ptp_vclock.c
index baee0379482b..ab1d233173e1 100644
--- a/drivers/ptp/ptp_vclock.c
+++ b/drivers/ptp/ptp_vclock.c
@@ -185,8 +185,8 @@ int ptp_get_vclocks_index(int pclock_index, int **vclock_index)
}
EXPORT_SYMBOL(ptp_get_vclocks_index);
-void ptp_convert_timestamp(struct skb_shared_hwtstamps *hwtstamps,
- int vclock_index)
+ktime_t ptp_convert_timestamp(const struct skb_shared_hwtstamps *hwtstamps,
+ int vclock_index)
{
char name[PTP_CLOCK_NAME_LEN] = "";
struct ptp_vclock *vclock;
@@ -198,12 +198,12 @@ void ptp_convert_timestamp(struct skb_shared_hwtstamps *hwtstamps,
snprintf(name, PTP_CLOCK_NAME_LEN, "ptp%d", vclock_index);
dev = class_find_device_by_name(ptp_class, name);
if (!dev)
- return;
+ return 0;
ptp = dev_get_drvdata(dev);
if (!ptp->is_virtual_clock) {
put_device(dev);
- return;
+ return 0;
}
vclock = info_to_vclock(ptp->info);
@@ -215,7 +215,7 @@ void ptp_convert_timestamp(struct skb_shared_hwtstamps *hwtstamps,
spin_unlock_irqrestore(&vclock->lock, flags);
put_device(dev);
- hwtstamps->hwtstamp = ns_to_ktime(ns);
+ return ns_to_ktime(ns);
}
EXPORT_SYMBOL(ptp_convert_timestamp);
#endif
diff --git a/drivers/regulator/da9121-regulator.c b/drivers/regulator/da9121-regulator.c
index e66925090258..0a4fd449c27d 100644
--- a/drivers/regulator/da9121-regulator.c
+++ b/drivers/regulator/da9121-regulator.c
@@ -253,6 +253,11 @@ static int da9121_set_current_limit(struct regulator_dev *rdev,
goto error;
}
+ if (rdev->desc->ops->is_enabled(rdev)) {
+ ret = -EBUSY;
+ goto error;
+ }
+
ret = da9121_ceiling_selector(rdev, min_ua, max_ua, &sel);
if (ret < 0)
goto error;
diff --git a/drivers/regulator/qcom-labibb-regulator.c b/drivers/regulator/qcom-labibb-regulator.c
index b3da0dc58782..639b71eb41ff 100644
--- a/drivers/regulator/qcom-labibb-regulator.c
+++ b/drivers/regulator/qcom-labibb-regulator.c
@@ -260,7 +260,7 @@ static irqreturn_t qcom_labibb_ocp_isr(int irq, void *chip)
/* If the regulator is not enabled, this is a fake event */
if (!ops->is_enabled(vreg->rdev))
- return 0;
+ return IRQ_HANDLED;
/* If we tried to recover for too many times it's not getting better */
if (vreg->ocp_irq_count > LABIBB_MAX_OCP_COUNT)
diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
index 8bac024dde8b..9fc666107a06 100644
--- a/drivers/regulator/qcom_smd-regulator.c
+++ b/drivers/regulator/qcom_smd-regulator.c
@@ -9,6 +9,7 @@
#include <linux/of_device.h>
#include <linux/platform_device.h>
#include <linux/regulator/driver.h>
+#include <linux/regulator/of_regulator.h>
#include <linux/soc/qcom/smd-rpm.h>
struct qcom_rpm_reg {
@@ -1239,52 +1240,91 @@ static const struct of_device_id rpm_of_match[] = {
};
MODULE_DEVICE_TABLE(of, rpm_of_match);
-static int rpm_reg_probe(struct platform_device *pdev)
+/**
+ * rpm_regulator_init_vreg() - initialize all attributes of a qcom_smd-regulator
+ * @vreg: Pointer to the individual qcom_smd-regulator resource
+ * @dev: Pointer to the top level qcom_smd-regulator PMIC device
+ * @node: Pointer to the individual qcom_smd-regulator resource
+ * device node
+ * @rpm: Pointer to the rpm bus node
+ * @pmic_rpm_data: Pointer to a null-terminated array of qcom_smd-regulator
+ * resources defined for the top level PMIC device
+ *
+ * Return: 0 on success, errno on failure
+ */
+static int rpm_regulator_init_vreg(struct qcom_rpm_reg *vreg, struct device *dev,
+ struct device_node *node, struct qcom_smd_rpm *rpm,
+ const struct rpm_regulator_data *pmic_rpm_data)
{
- const struct rpm_regulator_data *reg;
- const struct of_device_id *match;
- struct regulator_config config = { };
+ struct regulator_config config = {};
+ const struct rpm_regulator_data *rpm_data;
struct regulator_dev *rdev;
+ int ret;
+
+ for (rpm_data = pmic_rpm_data; rpm_data->name; rpm_data++)
+ if (of_node_name_eq(node, rpm_data->name))
+ break;
+
+ if (!rpm_data->name) {
+ dev_err(dev, "Unknown regulator %pOFn\n", node);
+ return -EINVAL;
+ }
+
+ vreg->dev = dev;
+ vreg->rpm = rpm;
+ vreg->type = rpm_data->type;
+ vreg->id = rpm_data->id;
+
+ memcpy(&vreg->desc, rpm_data->desc, sizeof(vreg->desc));
+ vreg->desc.name = rpm_data->name;
+ vreg->desc.supply_name = rpm_data->supply;
+ vreg->desc.owner = THIS_MODULE;
+ vreg->desc.type = REGULATOR_VOLTAGE;
+ vreg->desc.of_match = rpm_data->name;
+
+ config.dev = dev;
+ config.of_node = node;
+ config.driver_data = vreg;
+
+ rdev = devm_regulator_register(dev, &vreg->desc, &config);
+ if (IS_ERR(rdev)) {
+ ret = PTR_ERR(rdev);
+ dev_err(dev, "%pOFn: devm_regulator_register() failed, ret=%d\n", node, ret);
+ return ret;
+ }
+
+ return 0;
+}
+
+static int rpm_reg_probe(struct platform_device *pdev)
+{
+ struct device *dev = &pdev->dev;
+ const struct rpm_regulator_data *vreg_data;
+ struct device_node *node;
struct qcom_rpm_reg *vreg;
struct qcom_smd_rpm *rpm;
+ int ret;
rpm = dev_get_drvdata(pdev->dev.parent);
if (!rpm) {
- dev_err(&pdev->dev, "unable to retrieve handle to rpm\n");
+ dev_err(&pdev->dev, "Unable to retrieve handle to rpm\n");
return -ENODEV;
}
- match = of_match_device(rpm_of_match, &pdev->dev);
- if (!match) {
- dev_err(&pdev->dev, "failed to match device\n");
+ vreg_data = of_device_get_match_data(dev);
+ if (!vreg_data)
return -ENODEV;
- }
- for (reg = match->data; reg->name; reg++) {
+ for_each_available_child_of_node(dev->of_node, node) {
vreg = devm_kzalloc(&pdev->dev, sizeof(*vreg), GFP_KERNEL);
if (!vreg)
return -ENOMEM;
- vreg->dev = &pdev->dev;
- vreg->type = reg->type;
- vreg->id = reg->id;
- vreg->rpm = rpm;
-
- memcpy(&vreg->desc, reg->desc, sizeof(vreg->desc));
-
- vreg->desc.id = -1;
- vreg->desc.owner = THIS_MODULE;
- vreg->desc.type = REGULATOR_VOLTAGE;
- vreg->desc.name = reg->name;
- vreg->desc.supply_name = reg->supply;
- vreg->desc.of_match = reg->name;
-
- config.dev = &pdev->dev;
- config.driver_data = vreg;
- rdev = devm_regulator_register(&pdev->dev, &vreg->desc, &config);
- if (IS_ERR(rdev)) {
- dev_err(&pdev->dev, "failed to register %s\n", reg->name);
- return PTR_ERR(rdev);
+ ret = rpm_regulator_init_vreg(vreg, dev, node, rpm, vreg_data);
+
+ if (ret < 0) {
+ of_node_put(node);
+ return ret;
}
}
diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
index ff8170dbbc3c..0a45bc0d3f73 100644
--- a/drivers/remoteproc/imx_rproc.c
+++ b/drivers/remoteproc/imx_rproc.c
@@ -804,6 +804,7 @@ static int imx_rproc_remove(struct platform_device *pdev)
clk_disable_unprepare(priv->clk);
rproc_del(rproc);
imx_rproc_free_mbox(rproc);
+ destroy_workqueue(priv->workqueue);
rproc_free(rproc);
return 0;
diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c
index d3eb60059ef1..4c6b4a587be5 100644
--- a/drivers/rpmsg/rpmsg_core.c
+++ b/drivers/rpmsg/rpmsg_core.c
@@ -540,13 +540,25 @@ static int rpmsg_dev_probe(struct device *dev)
err = rpdrv->probe(rpdev);
if (err) {
dev_err(dev, "%s: failed: %d\n", __func__, err);
- if (ept)
- rpmsg_destroy_ept(ept);
- goto out;
+ goto destroy_ept;
}
- if (ept && rpdev->ops->announce_create)
+ if (ept && rpdev->ops->announce_create) {
err = rpdev->ops->announce_create(rpdev);
+ if (err) {
+ dev_err(dev, "failed to announce creation\n");
+ goto remove_rpdev;
+ }
+ }
+
+ return 0;
+
+remove_rpdev:
+ if (rpdrv->remove)
+ rpdrv->remove(rpdev);
+destroy_ept:
+ if (ept)
+ rpmsg_destroy_ept(ept);
out:
return err;
}
diff --git a/drivers/rtc/dev.c b/drivers/rtc/dev.c
index e104972a28fd..69325aeede1a 100644
--- a/drivers/rtc/dev.c
+++ b/drivers/rtc/dev.c
@@ -391,14 +391,14 @@ static long rtc_dev_ioctl(struct file *file,
}
switch(param.param) {
- long offset;
case RTC_PARAM_FEATURES:
if (param.index != 0)
err = -EINVAL;
param.uvalue = rtc->features[0];
break;
- case RTC_PARAM_CORRECTION:
+ case RTC_PARAM_CORRECTION: {
+ long offset;
mutex_unlock(&rtc->ops_lock);
if (param.index != 0)
return -EINVAL;
@@ -407,7 +407,7 @@ static long rtc_dev_ioctl(struct file *file,
if (err == 0)
param.svalue = offset;
break;
-
+ }
default:
if (rtc->ops->param_get)
err = rtc->ops->param_get(rtc->dev.parent, ¶m);
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index 4eb53412b808..dc3f8b0dde98 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -457,7 +457,10 @@ static int cmos_set_alarm(struct device *dev, struct rtc_wkalrm *t)
min = t->time.tm_min;
sec = t->time.tm_sec;
+ spin_lock_irq(&rtc_lock);
rtc_control = CMOS_READ(RTC_CONTROL);
+ spin_unlock_irq(&rtc_lock);
+
if (!(rtc_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
/* Writing 0xff means "don't care" or "match all". */
mon = (mon <= 12) ? bin2bcd(mon) : 0xff;
diff --git a/drivers/rtc/rtc-pxa.c b/drivers/rtc/rtc-pxa.c
index d2f1d8f754bf..cf8119b6d320 100644
--- a/drivers/rtc/rtc-pxa.c
+++ b/drivers/rtc/rtc-pxa.c
@@ -330,6 +330,10 @@ static int __init pxa_rtc_probe(struct platform_device *pdev)
if (sa1100_rtc->irq_alarm < 0)
return -ENXIO;
+ sa1100_rtc->rtc = devm_rtc_allocate_device(&pdev->dev);
+ if (IS_ERR(sa1100_rtc->rtc))
+ return PTR_ERR(sa1100_rtc->rtc);
+
pxa_rtc->base = devm_ioremap(dev, pxa_rtc->ress->start,
resource_size(pxa_rtc->ress));
if (!pxa_rtc->base) {
diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c
index f206c433de32..8a13bc08d657 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_main.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
@@ -1581,7 +1581,6 @@ void hisi_sas_controller_reset_prepare(struct hisi_hba *hisi_hba)
{
struct Scsi_Host *shost = hisi_hba->shost;
- down(&hisi_hba->sem);
hisi_hba->phy_state = hisi_hba->hw->get_phys_state(hisi_hba);
scsi_block_requests(shost);
@@ -1606,9 +1605,9 @@ void hisi_sas_controller_reset_done(struct hisi_hba *hisi_hba)
if (hisi_hba->reject_stp_links_msk)
hisi_sas_terminate_stp_reject(hisi_hba);
hisi_sas_reset_init_all_devices(hisi_hba);
- up(&hisi_hba->sem);
scsi_unblock_requests(shost);
clear_bit(HISI_SAS_RESETTING_BIT, &hisi_hba->flags);
+ up(&hisi_hba->sem);
hisi_sas_rescan_topology(hisi_hba, hisi_hba->phy_state);
}
@@ -1619,8 +1618,11 @@ static int hisi_sas_controller_prereset(struct hisi_hba *hisi_hba)
if (!hisi_hba->hw->soft_reset)
return -1;
- if (test_and_set_bit(HISI_SAS_RESETTING_BIT, &hisi_hba->flags))
+ down(&hisi_hba->sem);
+ if (test_and_set_bit(HISI_SAS_RESETTING_BIT, &hisi_hba->flags)) {
+ up(&hisi_hba->sem);
return -1;
+ }
if (hisi_sas_debugfs_enable && hisi_hba->debugfs_itct[0].itct)
hisi_hba->hw->debugfs_snapshot_regs(hisi_hba);
diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
index 0ef6c21bf081..11a44d9dd9b2 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
@@ -4848,6 +4848,7 @@ static void hisi_sas_reset_prepare_v3_hw(struct pci_dev *pdev)
int rc;
dev_info(dev, "FLR prepare\n");
+ down(&hisi_hba->sem);
set_bit(HISI_SAS_RESETTING_BIT, &hisi_hba->flags);
hisi_sas_controller_reset_prepare(hisi_hba);
diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
index 2f8e6d0a926f..54c58392fd5d 100644
--- a/drivers/scsi/lpfc/lpfc.h
+++ b/drivers/scsi/lpfc/lpfc.h
@@ -1023,7 +1023,6 @@ struct lpfc_hba {
#define HBA_DEVLOSS_TMO 0x2000 /* HBA in devloss timeout */
#define HBA_RRQ_ACTIVE 0x4000 /* process the rrq active list */
#define HBA_IOQ_FLUSH 0x8000 /* FCP/NVME I/O queues being flushed */
-#define HBA_FW_DUMP_OP 0x10000 /* Skips fn reset before FW dump */
#define HBA_RECOVERABLE_UE 0x20000 /* Firmware supports recoverable UE */
#define HBA_FORCED_LINK_SPEED 0x40000 /*
* Firmware supports Forced Link Speed
@@ -1040,6 +1039,7 @@ struct lpfc_hba {
#define HBA_HBEAT_TMO 0x8000000 /* HBEAT initiated after timeout */
#define HBA_FLOGI_OUTSTANDING 0x10000000 /* FLOGI is outstanding */
+ struct completion *fw_dump_cmpl; /* cmpl event tracker for fw_dump */
uint32_t fcp_ring_in_use; /* When polling test if intr-hndlr active*/
struct lpfc_dmabuf slim2p;
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index dd4c51b6ef4e..7a7f17d71811 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -1709,25 +1709,25 @@ lpfc_sli4_pdev_reg_request(struct lpfc_hba *phba, uint32_t opcode)
before_fc_flag = phba->pport->fc_flag;
sriov_nr_virtfn = phba->cfg_sriov_nr_virtfn;
- /* Disable SR-IOV virtual functions if enabled */
- if (phba->cfg_sriov_nr_virtfn) {
- pci_disable_sriov(pdev);
- phba->cfg_sriov_nr_virtfn = 0;
- }
+ if (opcode == LPFC_FW_DUMP) {
+ init_completion(&online_compl);
+ phba->fw_dump_cmpl = &online_compl;
+ } else {
+ /* Disable SR-IOV virtual functions if enabled */
+ if (phba->cfg_sriov_nr_virtfn) {
+ pci_disable_sriov(pdev);
+ phba->cfg_sriov_nr_virtfn = 0;
+ }
- if (opcode == LPFC_FW_DUMP)
- phba->hba_flag |= HBA_FW_DUMP_OP;
+ status = lpfc_do_offline(phba, LPFC_EVT_OFFLINE);
- status = lpfc_do_offline(phba, LPFC_EVT_OFFLINE);
+ if (status != 0)
+ return status;
- if (status != 0) {
- phba->hba_flag &= ~HBA_FW_DUMP_OP;
- return status;
+ /* wait for the device to be quiesced before firmware reset */
+ msleep(100);
}
- /* wait for the device to be quiesced before firmware reset */
- msleep(100);
-
reg_val = readl(phba->sli4_hba.conf_regs_memmap_p +
LPFC_CTL_PDEV_CTL_OFFSET);
@@ -1756,24 +1756,42 @@ lpfc_sli4_pdev_reg_request(struct lpfc_hba *phba, uint32_t opcode)
lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
"3153 Fail to perform the requested "
"access: x%x\n", reg_val);
+ if (phba->fw_dump_cmpl)
+ phba->fw_dump_cmpl = NULL;
return rc;
}
/* keep the original port state */
- if (before_fc_flag & FC_OFFLINE_MODE)
- goto out;
-
- init_completion(&online_compl);
- job_posted = lpfc_workq_post_event(phba, &status, &online_compl,
- LPFC_EVT_ONLINE);
- if (!job_posted)
+ if (before_fc_flag & FC_OFFLINE_MODE) {
+ if (phba->fw_dump_cmpl)
+ phba->fw_dump_cmpl = NULL;
goto out;
+ }
- wait_for_completion(&online_compl);
+ /* Firmware dump will trigger an HA_ERATT event, and
+ * lpfc_handle_eratt_s4 routine already handles bringing the port back
+ * online.
+ */
+ if (opcode == LPFC_FW_DUMP) {
+ wait_for_completion(phba->fw_dump_cmpl);
+ } else {
+ init_completion(&online_compl);
+ job_posted = lpfc_workq_post_event(phba, &status, &online_compl,
+ LPFC_EVT_ONLINE);
+ if (!job_posted)
+ goto out;
+ wait_for_completion(&online_compl);
+ }
out:
/* in any case, restore the virtual functions enabled as before */
if (sriov_nr_virtfn) {
+ /* If fw_dump was performed, first disable to clean up */
+ if (opcode == LPFC_FW_DUMP) {
+ pci_disable_sriov(pdev);
+ phba->cfg_sriov_nr_virtfn = 0;
+ }
+
sriov_err =
lpfc_sli_probe_sriov_nr_virtfn(phba, sriov_nr_virtfn);
if (!sriov_err)
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index e83453bea2ae..78024f11b794 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -3538,11 +3538,6 @@ lpfc_issue_els_rscn(struct lpfc_vport *vport, uint8_t retry)
return 1;
}
- /* This will cause the callback-function lpfc_cmpl_els_cmd to
- * trigger the release of node.
- */
- if (!(vport->fc_flag & FC_PT2PT))
- lpfc_nlp_put(ndlp);
return 0;
}
@@ -6899,6 +6894,7 @@ static int
lpfc_get_rdp_info(struct lpfc_hba *phba, struct lpfc_rdp_context *rdp_context)
{
LPFC_MBOXQ_t *mbox = NULL;
+ struct lpfc_dmabuf *mp;
int rc;
mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
@@ -6914,8 +6910,11 @@ lpfc_get_rdp_info(struct lpfc_hba *phba, struct lpfc_rdp_context *rdp_context)
mbox->mbox_cmpl = lpfc_mbx_cmpl_rdp_page_a0;
mbox->ctx_ndlp = (struct lpfc_rdp_context *)rdp_context;
rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT);
- if (rc == MBX_NOT_FINISHED)
+ if (rc == MBX_NOT_FINISHED) {
+ mp = (struct lpfc_dmabuf *)mbox->ctx_buf;
+ lpfc_mbuf_free(phba, mp->virt, mp->phys);
goto issue_mbox_fail;
+ }
return 0;
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 9fe6e5b386ce..5e54ec503f18 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -869,10 +869,16 @@ lpfc_work_done(struct lpfc_hba *phba)
if (phba->pci_dev_grp == LPFC_PCI_DEV_OC)
lpfc_sli4_post_async_mbox(phba);
- if (ha_copy & HA_ERATT)
+ if (ha_copy & HA_ERATT) {
/* Handle the error attention event */
lpfc_handle_eratt(phba);
+ if (phba->fw_dump_cmpl) {
+ complete(phba->fw_dump_cmpl);
+ phba->fw_dump_cmpl = NULL;
+ }
+ }
+
if (ha_copy & HA_MBATT)
lpfc_sli_handle_mb_event(phba);
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index ba17a8f740a9..7628b0634c57 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -5373,8 +5373,10 @@ lpfc_sli4_async_link_evt(struct lpfc_hba *phba,
*/
if (!(phba->hba_flag & HBA_FCOE_MODE)) {
rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT);
- if (rc == MBX_NOT_FINISHED)
+ if (rc == MBX_NOT_FINISHED) {
+ lpfc_mbuf_free(phba, mp->virt, mp->phys);
goto out_free_dmabuf;
+ }
return;
}
/*
@@ -6337,8 +6339,10 @@ lpfc_sli4_async_fc_evt(struct lpfc_hba *phba, struct lpfc_acqe_fc_la *acqe_fc)
}
rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT);
- if (rc == MBX_NOT_FINISHED)
+ if (rc == MBX_NOT_FINISHED) {
+ lpfc_mbuf_free(phba, mp->virt, mp->phys);
goto out_free_dmabuf;
+ }
return;
out_free_dmabuf:
diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c
index 27263f02ab9f..7d717a4ac14d 100644
--- a/drivers/scsi/lpfc/lpfc_nportdisc.c
+++ b/drivers/scsi/lpfc/lpfc_nportdisc.c
@@ -322,6 +322,7 @@ lpfc_rcv_plogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
{
struct lpfc_hba *phba = vport->phba;
struct lpfc_dmabuf *pcmd;
+ struct lpfc_dmabuf *mp;
uint64_t nlp_portwwn = 0;
uint32_t *lp;
IOCB_t *icmd;
@@ -571,6 +572,11 @@ lpfc_rcv_plogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
* a default RPI.
*/
if (phba->sli_rev == LPFC_SLI_REV4) {
+ mp = (struct lpfc_dmabuf *)login_mbox->ctx_buf;
+ if (mp) {
+ lpfc_mbuf_free(phba, mp->virt, mp->phys);
+ kfree(mp);
+ }
mempool_free(login_mbox, phba->mbox_mem_pool);
login_mbox = NULL;
} else {
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 5dedb3de271d..513a78d08b1d 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -5046,12 +5046,6 @@ lpfc_sli4_brdreset(struct lpfc_hba *phba)
phba->fcf.fcf_flag = 0;
spin_unlock_irq(&phba->hbalock);
- /* SLI4 INTF 2: if FW dump is being taken skip INIT_PORT */
- if (phba->hba_flag & HBA_FW_DUMP_OP) {
- phba->hba_flag &= ~HBA_FW_DUMP_OP;
- return rc;
- }
-
/* Now physically reset the device */
lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
"0389 Performing PCI function reset!\n");
diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h
index 9787b53a2b59..2cc42432bd0c 100644
--- a/drivers/scsi/mpi3mr/mpi3mr.h
+++ b/drivers/scsi/mpi3mr/mpi3mr.h
@@ -79,7 +79,8 @@ extern int prot_mask;
/* Operational queue management definitions */
#define MPI3MR_OP_REQ_Q_QD 512
-#define MPI3MR_OP_REP_Q_QD 4096
+#define MPI3MR_OP_REP_Q_QD 1024
+#define MPI3MR_OP_REP_Q_QD4K 4096
#define MPI3MR_OP_REQ_Q_SEG_SIZE 4096
#define MPI3MR_OP_REP_Q_SEG_SIZE 4096
#define MPI3MR_MAX_SEG_LIST_SIZE 4096
diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c b/drivers/scsi/mpi3mr/mpi3mr_fw.c
index aa5d877df6f8..2daf633ea295 100644
--- a/drivers/scsi/mpi3mr/mpi3mr_fw.c
+++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c
@@ -1278,7 +1278,7 @@ static void mpi3mr_free_op_req_q_segments(struct mpi3mr_ioc *mrioc, u16 q_idx)
mrioc->op_reply_qinfo[q_idx].q_segment_list = NULL;
}
} else
- size = mrioc->req_qinfo[q_idx].num_requests *
+ size = mrioc->req_qinfo[q_idx].segment_qd *
mrioc->facts.op_req_sz;
for (j = 0; j < mrioc->req_qinfo[q_idx].num_segments; j++) {
@@ -1565,6 +1565,8 @@ static int mpi3mr_create_op_reply_q(struct mpi3mr_ioc *mrioc, u16 qidx)
reply_qid = qidx + 1;
op_reply_q->num_replies = MPI3MR_OP_REP_Q_QD;
+ if (!mrioc->pdev->revision)
+ op_reply_q->num_replies = MPI3MR_OP_REP_Q_QD4K;
op_reply_q->ci = 0;
op_reply_q->ephase = 1;
atomic_set(&op_reply_q->pend_ios, 0);
diff --git a/drivers/scsi/pm8001/pm8001_hwi.c b/drivers/scsi/pm8001/pm8001_hwi.c
index 124cb69740c6..4390c8b9170c 100644
--- a/drivers/scsi/pm8001/pm8001_hwi.c
+++ b/drivers/scsi/pm8001/pm8001_hwi.c
@@ -1325,7 +1325,9 @@ int pm8001_mpi_build_cmd(struct pm8001_hba_info *pm8001_ha,
int q_index = circularQ - pm8001_ha->inbnd_q_tbl;
int rv;
- WARN_ON(q_index >= PM8001_MAX_INB_NUM);
+ if (WARN_ON(q_index >= pm8001_ha->max_q_num))
+ return -EINVAL;
+
spin_lock_irqsave(&circularQ->iq_lock, flags);
rv = pm8001_mpi_msg_free_get(circularQ, pm8001_ha->iomb_size,
&pMessage);
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index f6af1562cba4..10e5bffc34aa 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -201,11 +201,11 @@ void scsi_finish_command(struct scsi_cmnd *cmd)
/*
- * 1024 is big enough for saturating the fast scsi LUN now
+ * 1024 is big enough for saturating fast SCSI LUNs.
*/
int scsi_device_max_queue_depth(struct scsi_device *sdev)
{
- return max_t(int, sdev->host->can_queue, 1024);
+ return min_t(int, sdev->host->can_queue, 1024);
}
/**
diff --git a/drivers/scsi/scsi_debugfs.c b/drivers/scsi/scsi_debugfs.c
index d9109771f274..db8517f1a485 100644
--- a/drivers/scsi/scsi_debugfs.c
+++ b/drivers/scsi/scsi_debugfs.c
@@ -9,6 +9,7 @@
static const char *const scsi_cmd_flags[] = {
SCSI_CMD_FLAG_NAME(TAGGED),
SCSI_CMD_FLAG_NAME(INITIALIZED),
+ SCSI_CMD_FLAG_NAME(LAST),
};
#undef SCSI_CMD_FLAG_NAME
diff --git a/drivers/scsi/scsi_pm.c b/drivers/scsi/scsi_pm.c
index b5a858c29488..f06ca9d2a597 100644
--- a/drivers/scsi/scsi_pm.c
+++ b/drivers/scsi/scsi_pm.c
@@ -181,7 +181,7 @@ static int sdev_runtime_resume(struct device *dev)
blk_pre_runtime_resume(sdev->request_queue);
if (pm && pm->runtime_resume)
err = pm->runtime_resume(dev);
- blk_post_runtime_resume(sdev->request_queue, err);
+ blk_post_runtime_resume(sdev->request_queue);
return err;
}
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
index 8e4af111c078..f5a2eed54345 100644
--- a/drivers/scsi/sr.c
+++ b/drivers/scsi/sr.c
@@ -856,7 +856,7 @@ static void get_capabilities(struct scsi_cd *cd)
/* allocate transfer buffer */
- buffer = kmalloc(512, GFP_KERNEL | GFP_DMA);
+ buffer = kmalloc(512, GFP_KERNEL);
if (!buffer) {
sr_printk(KERN_ERR, cd, "out of memory.\n");
return;
diff --git a/drivers/scsi/sr_vendor.c b/drivers/scsi/sr_vendor.c
index 1f988a1b9166..a61635326ae0 100644
--- a/drivers/scsi/sr_vendor.c
+++ b/drivers/scsi/sr_vendor.c
@@ -131,7 +131,7 @@ int sr_set_blocklength(Scsi_CD *cd, int blocklength)
if (cd->vendor == VENDOR_TOSHIBA)
density = (blocklength > 2048) ? 0x81 : 0x83;
- buffer = kmalloc(512, GFP_KERNEL | GFP_DMA);
+ buffer = kmalloc(512, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
@@ -179,7 +179,7 @@ int sr_cd_check(struct cdrom_device_info *cdi)
if (cd->cdi.mask & CDC_MULTI_SESSION)
return 0;
- buffer = kmalloc(512, GFP_KERNEL | GFP_DMA);
+ buffer = kmalloc(512, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
diff --git a/drivers/scsi/ufs/tc-dwc-g210-pci.c b/drivers/scsi/ufs/tc-dwc-g210-pci.c
index 679289e1a78e..7b08e2e07cc5 100644
--- a/drivers/scsi/ufs/tc-dwc-g210-pci.c
+++ b/drivers/scsi/ufs/tc-dwc-g210-pci.c
@@ -110,7 +110,6 @@ tc_dwc_g210_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
return err;
}
- pci_set_drvdata(pdev, hba);
pm_runtime_put_noidle(&pdev->dev);
pm_runtime_allow(&pdev->dev);
diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c
index 5393b5c9dd9c..86a938075f30 100644
--- a/drivers/scsi/ufs/ufs-mediatek.c
+++ b/drivers/scsi/ufs/ufs-mediatek.c
@@ -557,7 +557,7 @@ static void ufs_mtk_init_va09_pwr_ctrl(struct ufs_hba *hba)
struct ufs_mtk_host *host = ufshcd_get_variant(hba);
host->reg_va09 = regulator_get(hba->dev, "va09");
- if (!host->reg_va09)
+ if (IS_ERR(host->reg_va09))
dev_info(hba->dev, "failed to get va09");
else
host->caps |= UFS_MTK_CAP_VA09_PWR_CTRL;
diff --git a/drivers/scsi/ufs/ufshcd-pci.c b/drivers/scsi/ufs/ufshcd-pci.c
index f725248ba57f..f76692053ca1 100644
--- a/drivers/scsi/ufs/ufshcd-pci.c
+++ b/drivers/scsi/ufs/ufshcd-pci.c
@@ -538,8 +538,6 @@ ufshcd_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
return err;
}
- pci_set_drvdata(pdev, hba);
-
hba->vops = (struct ufs_hba_variant_ops *)id->driver_data;
err = ufshcd_init(hba, mmio_base, pdev->irq);
diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.c b/drivers/scsi/ufs/ufshcd-pltfrm.c
index eaeae83b999f..8b16bbbcb806 100644
--- a/drivers/scsi/ufs/ufshcd-pltfrm.c
+++ b/drivers/scsi/ufs/ufshcd-pltfrm.c
@@ -361,8 +361,6 @@ int ufshcd_pltfrm_init(struct platform_device *pdev,
goto dealloc_host;
}
- platform_set_drvdata(pdev, hba);
-
pm_runtime_set_active(&pdev->dev);
pm_runtime_enable(&pdev->dev);
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 13c09dbd99b9..c94377aa8273 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -1666,7 +1666,8 @@ int ufshcd_hold(struct ufs_hba *hba, bool async)
bool flush_result;
unsigned long flags;
- if (!ufshcd_is_clkgating_allowed(hba))
+ if (!ufshcd_is_clkgating_allowed(hba) ||
+ !hba->clk_gating.is_initialized)
goto out;
spin_lock_irqsave(hba->host->host_lock, flags);
hba->clk_gating.active_reqs++;
@@ -1826,7 +1827,7 @@ static void __ufshcd_release(struct ufs_hba *hba)
if (hba->clk_gating.active_reqs || hba->clk_gating.is_suspended ||
hba->ufshcd_state != UFSHCD_STATE_OPERATIONAL ||
- hba->outstanding_tasks ||
+ hba->outstanding_tasks || !hba->clk_gating.is_initialized ||
hba->active_uic_cmd || hba->uic_async_done ||
hba->clk_gating.state == CLKS_OFF)
return;
@@ -1961,11 +1962,15 @@ static void ufshcd_exit_clk_gating(struct ufs_hba *hba)
{
if (!hba->clk_gating.is_initialized)
return;
+
ufshcd_remove_clk_gating_sysfs(hba);
- cancel_work_sync(&hba->clk_gating.ungate_work);
- cancel_delayed_work_sync(&hba->clk_gating.gate_work);
- destroy_workqueue(hba->clk_gating.clk_gating_workq);
+
+ /* Ungate the clock if necessary. */
+ ufshcd_hold(hba, false);
hba->clk_gating.is_initialized = false;
+ ufshcd_release(hba);
+
+ destroy_workqueue(hba->clk_gating.clk_gating_workq);
}
/* Must be called with host lock acquired */
@@ -9486,6 +9491,13 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq)
struct device *dev = hba->dev;
char eh_wq_name[sizeof("ufs_eh_wq_00")];
+ /*
+ * dev_set_drvdata() must be called before any callbacks are registered
+ * that use dev_get_drvdata() (frequency scaling, clock scaling, hwmon,
+ * sysfs).
+ */
+ dev_set_drvdata(dev, hba);
+
if (!mmio_base) {
dev_err(hba->dev,
"Invalid memory reference for mmio_base is NULL\n");
diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c
index b8d52d8d29db..8176380b02e6 100644
--- a/drivers/soc/imx/gpcv2.c
+++ b/drivers/soc/imx/gpcv2.c
@@ -377,7 +377,7 @@ static int imx_pgc_power_down(struct generic_pm_domain *genpd)
}
}
- pm_runtime_put(domain->dev);
+ pm_runtime_put_sync_suspend(domain->dev);
return 0;
@@ -734,6 +734,7 @@ static const struct imx_pgc_domain imx8mm_pgc_domains[] = {
.map = IMX8MM_VPUH1_A53_DOMAIN,
},
.pgc = BIT(IMX8MM_PGC_VPUH1),
+ .keep_clocks = true,
},
[IMX8MM_POWER_DOMAIN_DISPMIX] = {
diff --git a/drivers/soc/mediatek/mtk-scpsys.c b/drivers/soc/mediatek/mtk-scpsys.c
index ca75b14931ec..670cc82d17dc 100644
--- a/drivers/soc/mediatek/mtk-scpsys.c
+++ b/drivers/soc/mediatek/mtk-scpsys.c
@@ -411,12 +411,17 @@ static int scpsys_power_off(struct generic_pm_domain *genpd)
return ret;
}
-static void init_clks(struct platform_device *pdev, struct clk **clk)
+static int init_clks(struct platform_device *pdev, struct clk **clk)
{
int i;
- for (i = CLK_NONE + 1; i < CLK_MAX; i++)
+ for (i = CLK_NONE + 1; i < CLK_MAX; i++) {
clk[i] = devm_clk_get(&pdev->dev, clk_names[i]);
+ if (IS_ERR(clk[i]))
+ return PTR_ERR(clk[i]);
+ }
+
+ return 0;
}
static struct scp *init_scp(struct platform_device *pdev,
@@ -426,7 +431,7 @@ static struct scp *init_scp(struct platform_device *pdev,
{
struct genpd_onecell_data *pd_data;
struct resource *res;
- int i, j;
+ int i, j, ret;
struct scp *scp;
struct clk *clk[CLK_MAX];
@@ -481,7 +486,9 @@ static struct scp *init_scp(struct platform_device *pdev,
pd_data->num_domains = num;
- init_clks(pdev, clk);
+ ret = init_clks(pdev, clk);
+ if (ret)
+ return ERR_PTR(ret);
for (i = 0; i < num; i++) {
struct scp_domain *scpd = &scp->domains[i];
diff --git a/drivers/soc/qcom/cpr.c b/drivers/soc/qcom/cpr.c
index 1d818a8ba208..e9b854ed1bdf 100644
--- a/drivers/soc/qcom/cpr.c
+++ b/drivers/soc/qcom/cpr.c
@@ -1010,7 +1010,7 @@ static int cpr_interpolate(const struct corner *corner, int step_volt,
return corner->uV;
temp = f_diff * (uV_high - uV_low);
- do_div(temp, f_high - f_low);
+ temp = div64_ul(temp, f_high - f_low);
/*
* max_volt_scale has units of uV/MHz while freq values
diff --git a/drivers/soc/ti/pruss.c b/drivers/soc/ti/pruss.c
index 49da387d7749..b36779309e49 100644
--- a/drivers/soc/ti/pruss.c
+++ b/drivers/soc/ti/pruss.c
@@ -129,7 +129,7 @@ static int pruss_clk_init(struct pruss *pruss, struct device_node *cfg_node)
clks_np = of_get_child_by_name(cfg_node, "clocks");
if (!clks_np) {
- dev_err(dev, "%pOF is missing its 'clocks' node\n", clks_np);
+ dev_err(dev, "%pOF is missing its 'clocks' node\n", cfg_node);
return -ENODEV;
}
diff --git a/drivers/spi/spi-geni-qcom.c b/drivers/spi/spi-geni-qcom.c
index e2affaee4e76..079d0cb783ee 100644
--- a/drivers/spi/spi-geni-qcom.c
+++ b/drivers/spi/spi-geni-qcom.c
@@ -168,6 +168,30 @@ static void handle_fifo_timeout(struct spi_master *spi,
}
}
+static void handle_gpi_timeout(struct spi_master *spi, struct spi_message *msg)
+{
+ struct spi_geni_master *mas = spi_master_get_devdata(spi);
+
+ dmaengine_terminate_sync(mas->tx);
+ dmaengine_terminate_sync(mas->rx);
+}
+
+static void spi_geni_handle_err(struct spi_master *spi, struct spi_message *msg)
+{
+ struct spi_geni_master *mas = spi_master_get_devdata(spi);
+
+ switch (mas->cur_xfer_mode) {
+ case GENI_SE_FIFO:
+ handle_fifo_timeout(spi, msg);
+ break;
+ case GENI_GPI_DMA:
+ handle_gpi_timeout(spi, msg);
+ break;
+ default:
+ dev_err(mas->dev, "Abort on Mode:%d not supported", mas->cur_xfer_mode);
+ }
+}
+
static bool spi_geni_is_abort_still_pending(struct spi_geni_master *mas)
{
struct geni_se *se = &mas->se;
@@ -350,17 +374,21 @@ spi_gsi_callback_result(void *cb, const struct dmaengine_result *result)
{
struct spi_master *spi = cb;
+ spi->cur_msg->status = -EIO;
if (result->result != DMA_TRANS_NOERROR) {
dev_err(&spi->dev, "DMA txn failed: %d\n", result->result);
+ spi_finalize_current_transfer(spi);
return;
}
if (!result->residue) {
+ spi->cur_msg->status = 0;
dev_dbg(&spi->dev, "DMA txn completed\n");
- spi_finalize_current_transfer(spi);
} else {
dev_err(&spi->dev, "DMA xfer has pending: %d\n", result->residue);
}
+
+ spi_finalize_current_transfer(spi);
}
static int setup_gsi_xfer(struct spi_transfer *xfer, struct spi_geni_master *mas,
@@ -922,7 +950,7 @@ static int spi_geni_probe(struct platform_device *pdev)
spi->can_dma = geni_can_dma;
spi->dma_map_dev = dev->parent;
spi->auto_runtime_pm = true;
- spi->handle_err = handle_fifo_timeout;
+ spi->handle_err = spi_geni_handle_err;
spi->use_gpio_descriptors = true;
init_completion(&mas->cs_done);
diff --git a/drivers/spi/spi-hisi-kunpeng.c b/drivers/spi/spi-hisi-kunpeng.c
index 58b823a16fc4..525cc0143a30 100644
--- a/drivers/spi/spi-hisi-kunpeng.c
+++ b/drivers/spi/spi-hisi-kunpeng.c
@@ -127,7 +127,6 @@ struct hisi_spi {
void __iomem *regs;
int irq;
u32 fifo_len; /* depth of the FIFO buffer */
- u16 bus_num;
/* Current message transfer state info */
const void *tx;
@@ -165,7 +164,10 @@ static int hisi_spi_debugfs_init(struct hisi_spi *hs)
{
char name[32];
- snprintf(name, 32, "hisi_spi%d", hs->bus_num);
+ struct spi_controller *master;
+
+ master = container_of(hs->dev, struct spi_controller, dev);
+ snprintf(name, 32, "hisi_spi%d", master->bus_num);
hs->debugfs = debugfs_create_dir(name, NULL);
if (!hs->debugfs)
return -ENOMEM;
@@ -467,7 +469,6 @@ static int hisi_spi_probe(struct platform_device *pdev)
hs = spi_controller_get_devdata(master);
hs->dev = dev;
hs->irq = irq;
- hs->bus_num = pdev->id;
hs->regs = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(hs->regs))
@@ -490,7 +491,7 @@ static int hisi_spi_probe(struct platform_device *pdev)
master->use_gpio_descriptors = true;
master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LOOP;
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32);
- master->bus_num = hs->bus_num;
+ master->bus_num = pdev->id;
master->setup = hisi_spi_setup;
master->cleanup = hisi_spi_cleanup;
master->transfer_one = hisi_spi_transfer_one;
@@ -506,15 +507,15 @@ static int hisi_spi_probe(struct platform_device *pdev)
return ret;
}
- if (hisi_spi_debugfs_init(hs))
- dev_info(dev, "failed to create debugfs dir\n");
-
ret = spi_register_controller(master);
if (ret) {
dev_err(dev, "failed to register spi master, ret=%d\n", ret);
return ret;
}
+ if (hisi_spi_debugfs_init(hs))
+ dev_info(dev, "failed to create debugfs dir\n");
+
dev_info(dev, "hw version:0x%x max-freq:%u kHz\n",
readl(hs->regs + HISI_SPI_VERSION),
master->max_speed_hz / 1000);
diff --git a/drivers/spi/spi-meson-spifc.c b/drivers/spi/spi-meson-spifc.c
index 8eca6f24cb79..c8ed7815c4ba 100644
--- a/drivers/spi/spi-meson-spifc.c
+++ b/drivers/spi/spi-meson-spifc.c
@@ -349,6 +349,7 @@ static int meson_spifc_probe(struct platform_device *pdev)
return 0;
out_clk:
clk_disable_unprepare(spifc->clk);
+ pm_runtime_disable(spifc->dev);
out_err:
spi_master_put(master);
return ret;
diff --git a/drivers/spi/spi-uniphier.c b/drivers/spi/spi-uniphier.c
index 8900e51e1a1c..342ee8d2c476 100644
--- a/drivers/spi/spi-uniphier.c
+++ b/drivers/spi/spi-uniphier.c
@@ -767,12 +767,13 @@ static int uniphier_spi_probe(struct platform_device *pdev)
static int uniphier_spi_remove(struct platform_device *pdev)
{
- struct uniphier_spi_priv *priv = platform_get_drvdata(pdev);
+ struct spi_master *master = platform_get_drvdata(pdev);
+ struct uniphier_spi_priv *priv = spi_master_get_devdata(master);
- if (priv->master->dma_tx)
- dma_release_channel(priv->master->dma_tx);
- if (priv->master->dma_rx)
- dma_release_channel(priv->master->dma_rx);
+ if (master->dma_tx)
+ dma_release_channel(master->dma_tx);
+ if (master->dma_rx)
+ dma_release_channel(master->dma_rx);
clk_disable_unprepare(priv->clk);
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index fdd530b150a7..8ba87b7f8f1a 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -947,12 +947,9 @@ static void spi_set_cs(struct spi_device *spi, bool enable, bool force)
spi->controller->last_cs_enable = enable;
spi->controller->last_cs_mode_high = spi->mode & SPI_CS_HIGH;
- if (spi->cs_gpiod || gpio_is_valid(spi->cs_gpio) ||
- !spi->controller->set_cs_timing) {
- if (activate)
- spi_delay_exec(&spi->cs_setup, NULL);
- else
- spi_delay_exec(&spi->cs_hold, NULL);
+ if ((spi->cs_gpiod || gpio_is_valid(spi->cs_gpio) ||
+ !spi->controller->set_cs_timing) && !activate) {
+ spi_delay_exec(&spi->cs_hold, NULL);
}
if (spi->mode & SPI_CS_HIGH)
@@ -994,7 +991,9 @@ static void spi_set_cs(struct spi_device *spi, bool enable, bool force)
if (spi->cs_gpiod || gpio_is_valid(spi->cs_gpio) ||
!spi->controller->set_cs_timing) {
- if (!activate)
+ if (activate)
+ spi_delay_exec(&spi->cs_setup, NULL);
+ else
spi_delay_exec(&spi->cs_inactive, NULL);
}
}
diff --git a/drivers/staging/greybus/audio_topology.c b/drivers/staging/greybus/audio_topology.c
index 7f7d558b76d0..62d7674852be 100644
--- a/drivers/staging/greybus/audio_topology.c
+++ b/drivers/staging/greybus/audio_topology.c
@@ -147,6 +147,9 @@ static const char **gb_generate_enum_strings(struct gbaudio_module_info *gb,
items = le32_to_cpu(gbenum->items);
strings = devm_kcalloc(gb->dev, items, sizeof(char *), GFP_KERNEL);
+ if (!strings)
+ return NULL;
+
data = gbenum->names;
for (i = 0; i < items; i++) {
@@ -655,6 +658,8 @@ static int gbaudio_tplg_create_enum_kctl(struct gbaudio_module_info *gb,
/* since count=1, and reg is dummy */
gbe->items = le32_to_cpu(gb_enum->items);
gbe->texts = gb_generate_enum_strings(gb, gb_enum);
+ if (!gbe->texts)
+ return -ENOMEM;
/* debug enum info */
dev_dbg(gb->dev, "Max:%d, name_length:%d\n", gbe->items,
@@ -862,6 +867,8 @@ static int gbaudio_tplg_create_enum_ctl(struct gbaudio_module_info *gb,
/* since count=1, and reg is dummy */
gbe->items = le32_to_cpu(gb_enum->items);
gbe->texts = gb_generate_enum_strings(gb, gb_enum);
+ if (!gbe->texts)
+ return -ENOMEM;
/* debug enum info */
dev_dbg(gb->dev, "Max:%d, name_length:%d\n", gbe->items,
@@ -1072,6 +1079,10 @@ static int gbaudio_tplg_create_widget(struct gbaudio_module_info *module,
csize += le16_to_cpu(gbenum->names_length);
control->texts = (const char * const *)
gb_generate_enum_strings(module, gbenum);
+ if (!control->texts) {
+ ret = -ENOMEM;
+ goto error;
+ }
control->items = le32_to_cpu(gbenum->items);
} else {
csize = sizeof(struct gb_audio_control);
@@ -1181,6 +1192,10 @@ static int gbaudio_tplg_process_kcontrols(struct gbaudio_module_info *module,
csize += le16_to_cpu(gbenum->names_length);
control->texts = (const char * const *)
gb_generate_enum_strings(module, gbenum);
+ if (!control->texts) {
+ ret = -ENOMEM;
+ goto error;
+ }
control->items = le32_to_cpu(gbenum->items);
} else {
csize = sizeof(struct gb_audio_control);
diff --git a/drivers/staging/media/atomisp/i2c/ov2680.h b/drivers/staging/media/atomisp/i2c/ov2680.h
index 874115f35fca..798b28e134b6 100644
--- a/drivers/staging/media/atomisp/i2c/ov2680.h
+++ b/drivers/staging/media/atomisp/i2c/ov2680.h
@@ -289,8 +289,6 @@ static struct ov2680_reg const ov2680_global_setting[] = {
*/
static struct ov2680_reg const ov2680_QCIF_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x24},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -334,8 +332,6 @@ static struct ov2680_reg const ov2680_QCIF_30fps[] = {
*/
static struct ov2680_reg const ov2680_CIF_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x24},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -377,8 +373,6 @@ static struct ov2680_reg const ov2680_CIF_30fps[] = {
*/
static struct ov2680_reg const ov2680_QVGA_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x24},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -420,8 +414,6 @@ static struct ov2680_reg const ov2680_QVGA_30fps[] = {
*/
static struct ov2680_reg const ov2680_656x496_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x24},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -463,8 +455,6 @@ static struct ov2680_reg const ov2680_656x496_30fps[] = {
*/
static struct ov2680_reg const ov2680_720x592_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x26},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0x00}, // X_ADDR_START;
{0x3802, 0x00},
@@ -508,8 +498,6 @@ static struct ov2680_reg const ov2680_720x592_30fps[] = {
*/
static struct ov2680_reg const ov2680_800x600_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x26},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0x00},
{0x3802, 0x00},
@@ -551,8 +539,6 @@ static struct ov2680_reg const ov2680_800x600_30fps[] = {
*/
static struct ov2680_reg const ov2680_720p_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -594,8 +580,6 @@ static struct ov2680_reg const ov2680_720p_30fps[] = {
*/
static struct ov2680_reg const ov2680_1296x976_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -637,8 +621,6 @@ static struct ov2680_reg const ov2680_1296x976_30fps[] = {
*/
static struct ov2680_reg const ov2680_1456x1096_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0x90},
{0x3802, 0x00},
@@ -682,8 +664,6 @@ static struct ov2680_reg const ov2680_1456x1096_30fps[] = {
static struct ov2680_reg const ov2680_1616x916_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0x00},
{0x3802, 0x00},
@@ -726,8 +706,6 @@ static struct ov2680_reg const ov2680_1616x916_30fps[] = {
#if 0
static struct ov2680_reg const ov2680_1616x1082_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0x00},
{0x3802, 0x00},
@@ -769,8 +747,6 @@ static struct ov2680_reg const ov2680_1616x1082_30fps[] = {
*/
static struct ov2680_reg const ov2680_1616x1216_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0x00},
{0x3802, 0x00},
diff --git a/drivers/staging/media/atomisp/pci/atomisp_cmd.c b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
index 366161cff560..ef0b0963cf93 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_cmd.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
@@ -1715,6 +1715,12 @@ void atomisp_wdt_refresh_pipe(struct atomisp_video_pipe *pipe,
{
unsigned long next;
+ if (!pipe->asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return;
+ }
+
if (delay != ATOMISP_WDT_KEEP_CURRENT_DELAY)
pipe->wdt_duration = delay;
@@ -1777,6 +1783,12 @@ void atomisp_wdt_refresh(struct atomisp_sub_device *asd, unsigned int delay)
/* ISP2401 */
void atomisp_wdt_stop_pipe(struct atomisp_video_pipe *pipe, bool sync)
{
+ if (!pipe->asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return;
+ }
+
if (!atomisp_is_wdt_running(pipe))
return;
@@ -4109,6 +4121,12 @@ void atomisp_handle_parameter_and_buffer(struct atomisp_video_pipe *pipe)
unsigned long irqflags;
bool need_to_enqueue_buffer = false;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return;
+ }
+
if (atomisp_is_vf_pipe(pipe))
return;
@@ -4196,6 +4214,12 @@ int atomisp_set_parameters(struct video_device *vdev,
struct atomisp_css_params *css_param = &asd->params.css_param;
int ret;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!asd->stream_env[ATOMISP_INPUT_STREAM_GENERAL].stream) {
dev_err(asd->isp->dev, "%s: internal error!\n", __func__);
return -EINVAL;
@@ -4857,6 +4881,12 @@ int atomisp_try_fmt(struct video_device *vdev, struct v4l2_pix_format *f,
int source_pad = atomisp_subdev_source_pad(vdev);
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!isp->inputs[asd->input_curr].camera)
return -EINVAL;
@@ -5194,10 +5224,17 @@ static int atomisp_set_fmt_to_isp(struct video_device *vdev,
int (*configure_pp_input)(struct atomisp_sub_device *asd,
unsigned int width, unsigned int height) =
configure_pp_input_nop;
- u16 stream_index = atomisp_source_pad_to_stream_id(asd, source_pad);
+ u16 stream_index;
const struct atomisp_in_fmt_conv *fc;
int ret, i;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+ stream_index = atomisp_source_pad_to_stream_id(asd, source_pad);
+
v4l2_fh_init(&fh.vfh, vdev);
isp_sink_crop = atomisp_subdev_get_rect(
@@ -5493,7 +5530,8 @@ static int atomisp_set_fmt_to_snr(struct video_device *vdev,
unsigned int padding_w, unsigned int padding_h,
unsigned int dvs_env_w, unsigned int dvs_env_h)
{
- struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
+ struct atomisp_video_pipe *pipe = atomisp_to_video_pipe(vdev);
+ struct atomisp_sub_device *asd = pipe->asd;
const struct atomisp_format_bridge *format;
struct v4l2_subdev_pad_config pad_cfg;
struct v4l2_subdev_state pad_state = {
@@ -5504,7 +5542,7 @@ static int atomisp_set_fmt_to_snr(struct video_device *vdev,
};
struct v4l2_mbus_framefmt *ffmt = &vformat.format;
struct v4l2_mbus_framefmt *req_ffmt;
- struct atomisp_device *isp = asd->isp;
+ struct atomisp_device *isp;
struct atomisp_input_stream_info *stream_info =
(struct atomisp_input_stream_info *)ffmt->reserved;
u16 stream_index = ATOMISP_INPUT_STREAM_GENERAL;
@@ -5512,6 +5550,14 @@ static int atomisp_set_fmt_to_snr(struct video_device *vdev,
struct v4l2_subdev_fh fh;
int ret;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
+ isp = asd->isp;
+
v4l2_fh_init(&fh.vfh, vdev);
stream_index = atomisp_source_pad_to_stream_id(asd, source_pad);
@@ -5602,6 +5648,12 @@ int atomisp_set_fmt(struct video_device *vdev, struct v4l2_format *f)
struct v4l2_subdev_fh fh;
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (source_pad >= ATOMISP_SUBDEV_PADS_NUM)
return -EINVAL;
@@ -6034,6 +6086,12 @@ int atomisp_set_fmt_file(struct video_device *vdev, struct v4l2_format *f)
struct v4l2_subdev_fh fh;
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
v4l2_fh_init(&fh.vfh, vdev);
dev_dbg(isp->dev, "setting fmt %ux%u 0x%x for file inject\n",
@@ -6359,6 +6417,12 @@ bool atomisp_is_vf_pipe(struct atomisp_video_pipe *pipe)
{
struct atomisp_sub_device *asd = pipe->asd;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return false;
+ }
+
if (pipe == &asd->video_out_vf)
return true;
@@ -6572,6 +6636,12 @@ static int atomisp_get_pipe_id(struct atomisp_video_pipe *pipe)
{
struct atomisp_sub_device *asd = pipe->asd;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return -EINVAL;
+ }
+
if (ATOMISP_USE_YUVPP(asd)) {
return IA_CSS_PIPE_ID_YUVPP;
} else if (asd->vfpp->val == ATOMISP_VFPP_DISABLE_SCALER) {
@@ -6609,6 +6679,12 @@ int atomisp_get_invalid_frame_num(struct video_device *vdev,
struct ia_css_pipe_info p_info;
int ret;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (asd->isp->inputs[asd->input_curr].camera_caps->
sensor[asd->sensor_curr].stream_num > 1) {
/* External ISP */
diff --git a/drivers/staging/media/atomisp/pci/atomisp_fops.c b/drivers/staging/media/atomisp/pci/atomisp_fops.c
index f82bf082aa79..18fff47bd25d 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_fops.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_fops.c
@@ -877,6 +877,11 @@ static int atomisp_open(struct file *file)
else
pipe->users++;
rt_mutex_unlock(&isp->mutex);
+
+ /* Ensure that a mode is set */
+ if (asd)
+ v4l2_ctrl_s_ctrl(asd->run_mode, pipe->default_run_mode);
+
return 0;
css_error:
@@ -1171,6 +1176,12 @@ static int atomisp_mmap(struct file *file, struct vm_area_struct *vma)
u32 origin_size, new_size;
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!(vma->vm_flags & (VM_WRITE | VM_READ)))
return -EACCES;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
index d8c9e31314b2..62dc06e22476 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
@@ -481,7 +481,7 @@ static int atomisp_get_acpi_power(struct device *dev)
static u8 gmin_get_pmic_id_and_addr(struct device *dev)
{
- struct i2c_client *power;
+ struct i2c_client *power = NULL;
static u8 pmic_i2c_addr;
if (pmic_id)
diff --git a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
index c8a625667e81..b7dda4b96d49 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
@@ -646,6 +646,12 @@ static int atomisp_g_input(struct file *file, void *fh, unsigned int *input)
struct atomisp_device *isp = video_get_drvdata(vdev);
struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
*input = asd->input_curr;
rt_mutex_unlock(&isp->mutex);
@@ -665,6 +671,12 @@ static int atomisp_s_input(struct file *file, void *fh, unsigned int input)
struct v4l2_subdev *motor;
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
if (input >= ATOM_ISP_MAX_INPUTS || input >= isp->input_cnt) {
dev_dbg(isp->dev, "input_cnt: %d\n", isp->input_cnt);
@@ -761,18 +773,33 @@ static int atomisp_enum_fmt_cap(struct file *file, void *fh,
struct video_device *vdev = video_devdata(file);
struct atomisp_device *isp = video_get_drvdata(vdev);
struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
- struct v4l2_subdev_mbus_code_enum code = { 0 };
+ struct v4l2_subdev_mbus_code_enum code = {
+ .which = V4L2_SUBDEV_FORMAT_ACTIVE,
+ };
+ struct v4l2_subdev *camera;
unsigned int i, fi = 0;
int rval;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
+ camera = isp->inputs[asd->input_curr].camera;
+ if(!camera) {
+ dev_err(isp->dev, "%s(): camera is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
- rval = v4l2_subdev_call(isp->inputs[asd->input_curr].camera, pad,
- enum_mbus_code, NULL, &code);
+
+ rval = v4l2_subdev_call(camera, pad, enum_mbus_code, NULL, &code);
if (rval == -ENOIOCTLCMD) {
dev_warn(isp->dev,
- "enum_mbus_code pad op not supported. Please fix your sensor driver!\n");
- // rval = v4l2_subdev_call(isp->inputs[asd->input_curr].camera,
- // video, enum_mbus_fmt, 0, &code.code);
+ "enum_mbus_code pad op not supported by %s. Please fix your sensor driver!\n",
+ camera->name);
}
rt_mutex_unlock(&isp->mutex);
@@ -802,6 +829,8 @@ static int atomisp_enum_fmt_cap(struct file *file, void *fh,
f->pixelformat = format->pixelformat;
return 0;
}
+ dev_err(isp->dev, "%s(): format for code %x not found.\n",
+ __func__, code.code);
return -EINVAL;
}
@@ -834,6 +863,72 @@ static int atomisp_g_fmt_file(struct file *file, void *fh,
return 0;
}
+static int atomisp_adjust_fmt(struct v4l2_format *f)
+{
+ const struct atomisp_format_bridge *format_bridge;
+ u32 padded_width;
+
+ format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat);
+
+ padded_width = f->fmt.pix.width + pad_w;
+
+ if (format_bridge->planar) {
+ f->fmt.pix.bytesperline = padded_width;
+ f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height *
+ DIV_ROUND_UP(format_bridge->depth *
+ padded_width, 8));
+ } else {
+ f->fmt.pix.bytesperline = DIV_ROUND_UP(format_bridge->depth *
+ padded_width, 8);
+ f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height * f->fmt.pix.bytesperline);
+ }
+
+ if (f->fmt.pix.field == V4L2_FIELD_ANY)
+ f->fmt.pix.field = V4L2_FIELD_NONE;
+
+ format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat);
+ if (!format_bridge)
+ return -EINVAL;
+
+ /* Currently, raw formats are broken!!! */
+ if (format_bridge->sh_fmt == IA_CSS_FRAME_FORMAT_RAW) {
+ f->fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420;
+
+ format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat);
+ if (!format_bridge)
+ return -EINVAL;
+ }
+
+ padded_width = f->fmt.pix.width + pad_w;
+
+ if (format_bridge->planar) {
+ f->fmt.pix.bytesperline = padded_width;
+ f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height *
+ DIV_ROUND_UP(format_bridge->depth *
+ padded_width, 8));
+ } else {
+ f->fmt.pix.bytesperline = DIV_ROUND_UP(format_bridge->depth *
+ padded_width, 8);
+ f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height * f->fmt.pix.bytesperline);
+ }
+
+ if (f->fmt.pix.field == V4L2_FIELD_ANY)
+ f->fmt.pix.field = V4L2_FIELD_NONE;
+
+ /*
+ * FIXME: do we need to setup this differently, depending on the
+ * sensor or the pipeline?
+ */
+ f->fmt.pix.colorspace = V4L2_COLORSPACE_REC709;
+ f->fmt.pix.ycbcr_enc = V4L2_YCBCR_ENC_709;
+ f->fmt.pix.xfer_func = V4L2_XFER_FUNC_709;
+
+ f->fmt.pix.width -= pad_w;
+ f->fmt.pix.height -= pad_h;
+
+ return 0;
+}
+
/* This function looks up the closest available resolution. */
static int atomisp_try_fmt_cap(struct file *file, void *fh,
struct v4l2_format *f)
@@ -845,7 +940,11 @@ static int atomisp_try_fmt_cap(struct file *file, void *fh,
rt_mutex_lock(&isp->mutex);
ret = atomisp_try_fmt(vdev, &f->fmt.pix, NULL);
rt_mutex_unlock(&isp->mutex);
- return ret;
+
+ if (ret)
+ return ret;
+
+ return atomisp_adjust_fmt(f);
}
static int atomisp_s_fmt_cap(struct file *file, void *fh,
@@ -1024,9 +1123,16 @@ int __atomisp_reqbufs(struct file *file, void *fh,
struct ia_css_frame *frame;
struct videobuf_vmalloc_memory *vm_mem;
u16 source_pad = atomisp_subdev_source_pad(vdev);
- u16 stream_id = atomisp_source_pad_to_stream_id(asd, source_pad);
+ u16 stream_id;
int ret = 0, i = 0;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+ stream_id = atomisp_source_pad_to_stream_id(asd, source_pad);
+
if (req->count == 0) {
mutex_lock(&pipe->capq.vb_lock);
if (!list_empty(&pipe->capq.stream))
@@ -1154,6 +1260,12 @@ static int atomisp_qbuf(struct file *file, void *fh, struct v4l2_buffer *buf)
u32 pgnr;
int ret = 0;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
if (isp->isp_fatal_error) {
ret = -EIO;
@@ -1389,6 +1501,12 @@ static int atomisp_dqbuf(struct file *file, void *fh, struct v4l2_buffer *buf)
struct atomisp_device *isp = video_get_drvdata(vdev);
int ret = 0;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
if (isp->isp_fatal_error) {
@@ -1640,6 +1758,12 @@ static int atomisp_streamon(struct file *file, void *fh,
int ret = 0;
unsigned long irqflags;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
dev_dbg(isp->dev, "Start stream on pad %d for asd%d\n",
atomisp_subdev_source_pad(vdev), asd->index);
@@ -1901,6 +2025,12 @@ int __atomisp_streamoff(struct file *file, void *fh, enum v4l2_buf_type type)
unsigned long flags;
bool first_streamoff = false;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
dev_dbg(isp->dev, "Stop stream on pad %d for asd%d\n",
atomisp_subdev_source_pad(vdev), asd->index);
@@ -2150,6 +2280,12 @@ static int atomisp_g_ctrl(struct file *file, void *fh,
struct atomisp_device *isp = video_get_drvdata(vdev);
int i, ret = -EINVAL;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
for (i = 0; i < ctrls_num; i++) {
if (ci_v4l2_controls[i].id == control->id) {
ret = 0;
@@ -2229,6 +2365,12 @@ static int atomisp_s_ctrl(struct file *file, void *fh,
struct atomisp_device *isp = video_get_drvdata(vdev);
int i, ret = -EINVAL;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
for (i = 0; i < ctrls_num; i++) {
if (ci_v4l2_controls[i].id == control->id) {
ret = 0;
@@ -2310,6 +2452,12 @@ static int atomisp_queryctl(struct file *file, void *fh,
struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
struct atomisp_device *isp = video_get_drvdata(vdev);
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
switch (qc->id) {
case V4L2_CID_FOCUS_ABSOLUTE:
case V4L2_CID_FOCUS_RELATIVE:
@@ -2355,6 +2503,12 @@ static int atomisp_camera_g_ext_ctrls(struct file *file, void *fh,
int i;
int ret = 0;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!IS_ISP2401)
motor = isp->inputs[asd->input_curr].motor;
else
@@ -2466,6 +2620,12 @@ static int atomisp_camera_s_ext_ctrls(struct file *file, void *fh,
int i;
int ret = 0;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!IS_ISP2401)
motor = isp->inputs[asd->input_curr].motor;
else
@@ -2591,6 +2751,12 @@ static int atomisp_g_parm(struct file *file, void *fh,
struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
struct atomisp_device *isp = video_get_drvdata(vdev);
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) {
dev_err(isp->dev, "unsupported v4l2 buf type\n");
return -EINVAL;
@@ -2613,6 +2779,12 @@ static int atomisp_s_parm(struct file *file, void *fh,
int rval;
int fps;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) {
dev_err(isp->dev, "unsupported v4l2 buf type\n");
return -EINVAL;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_subdev.c b/drivers/staging/media/atomisp/pci/atomisp_subdev.c
index 12f22ad007c7..ffaf11e0b0ad 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_subdev.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_subdev.c
@@ -1164,23 +1164,28 @@ static int isp_subdev_init_entities(struct atomisp_sub_device *asd)
atomisp_init_acc_pipe(asd, &asd->video_acc);
- ret = atomisp_video_init(&asd->video_in, "MEMORY");
+ ret = atomisp_video_init(&asd->video_in, "MEMORY",
+ ATOMISP_RUN_MODE_SDV);
if (ret < 0)
return ret;
- ret = atomisp_video_init(&asd->video_out_capture, "CAPTURE");
+ ret = atomisp_video_init(&asd->video_out_capture, "CAPTURE",
+ ATOMISP_RUN_MODE_STILL_CAPTURE);
if (ret < 0)
return ret;
- ret = atomisp_video_init(&asd->video_out_vf, "VIEWFINDER");
+ ret = atomisp_video_init(&asd->video_out_vf, "VIEWFINDER",
+ ATOMISP_RUN_MODE_CONTINUOUS_CAPTURE);
if (ret < 0)
return ret;
- ret = atomisp_video_init(&asd->video_out_preview, "PREVIEW");
+ ret = atomisp_video_init(&asd->video_out_preview, "PREVIEW",
+ ATOMISP_RUN_MODE_PREVIEW);
if (ret < 0)
return ret;
- ret = atomisp_video_init(&asd->video_out_video_capture, "VIDEO");
+ ret = atomisp_video_init(&asd->video_out_video_capture, "VIDEO",
+ ATOMISP_RUN_MODE_VIDEO);
if (ret < 0)
return ret;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_subdev.h b/drivers/staging/media/atomisp/pci/atomisp_subdev.h
index d6fcfab6352d..a8d210ea5f8b 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_subdev.h
+++ b/drivers/staging/media/atomisp/pci/atomisp_subdev.h
@@ -81,6 +81,9 @@ struct atomisp_video_pipe {
/* the link list to store per_frame parameters */
struct list_head per_frame_params;
+ /* Store here the initial run mode */
+ unsigned int default_run_mode;
+
unsigned int buffers_in_css;
/* irq_lock is used to protect video buffer state change operations and
diff --git a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
index 1e324f1f656e..14c39b8987c9 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
@@ -447,7 +447,8 @@ const struct atomisp_dfs_config dfs_config_cht_soc = {
.dfs_table_size = ARRAY_SIZE(dfs_rules_cht_soc),
};
-int atomisp_video_init(struct atomisp_video_pipe *video, const char *name)
+int atomisp_video_init(struct atomisp_video_pipe *video, const char *name,
+ unsigned int run_mode)
{
int ret;
const char *direction;
@@ -478,6 +479,7 @@ int atomisp_video_init(struct atomisp_video_pipe *video, const char *name)
"ATOMISP ISP %s %s", name, direction);
video->vdev.release = video_device_release_empty;
video_set_drvdata(&video->vdev, video->isp);
+ video->default_run_mode = run_mode;
return 0;
}
@@ -711,15 +713,15 @@ static int atomisp_mrfld_power(struct atomisp_device *isp, bool enable)
dev_dbg(isp->dev, "IUNIT power-%s.\n", enable ? "on" : "off");
- /*WA:Enable DVFS*/
+ /* WA for P-Unit, if DVFS enabled, ISP timeout observed */
if (IS_CHT && enable)
- punit_ddr_dvfs_enable(true);
+ punit_ddr_dvfs_enable(false);
/*
* FIXME:WA for ECS28A, with this sleep, CTS
* android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceAbort
* PASS, no impact on other platforms
- */
+ */
if (IS_BYT && enable)
msleep(10);
@@ -727,7 +729,7 @@ static int atomisp_mrfld_power(struct atomisp_device *isp, bool enable)
iosf_mbi_modify(BT_MBI_UNIT_PMC, MBI_REG_READ, MRFLD_ISPSSPM0,
val, MRFLD_ISPSSPM0_ISPSSC_MASK);
- /*WA:Enable DVFS*/
+ /* WA:Enable DVFS */
if (IS_CHT && !enable)
punit_ddr_dvfs_enable(true);
@@ -1182,6 +1184,7 @@ static void atomisp_unregister_entities(struct atomisp_device *isp)
v4l2_device_unregister(&isp->v4l2_dev);
media_device_unregister(&isp->media_dev);
+ media_device_cleanup(&isp->media_dev);
}
static int atomisp_register_entities(struct atomisp_device *isp)
diff --git a/drivers/staging/media/atomisp/pci/atomisp_v4l2.h b/drivers/staging/media/atomisp/pci/atomisp_v4l2.h
index 81bb356b8172..72611b8286a4 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_v4l2.h
+++ b/drivers/staging/media/atomisp/pci/atomisp_v4l2.h
@@ -27,7 +27,8 @@ struct v4l2_device;
struct atomisp_device;
struct firmware;
-int atomisp_video_init(struct atomisp_video_pipe *video, const char *name);
+int atomisp_video_init(struct atomisp_video_pipe *video, const char *name,
+ unsigned int run_mode);
void atomisp_acc_init(struct atomisp_acc_pipe *video, const char *name);
void atomisp_video_unregister(struct atomisp_video_pipe *video);
void atomisp_acc_unregister(struct atomisp_acc_pipe *video);
diff --git a/drivers/staging/media/atomisp/pci/sh_css.c b/drivers/staging/media/atomisp/pci/sh_css.c
index c4b35cbab373..ba25d0da8b81 100644
--- a/drivers/staging/media/atomisp/pci/sh_css.c
+++ b/drivers/staging/media/atomisp/pci/sh_css.c
@@ -522,6 +522,7 @@ ia_css_stream_input_format_bits_per_pixel(struct ia_css_stream *stream)
return bpp;
}
+/* TODO: move define to proper file in tools */
#define GP_ISEL_TPG_MODE 0x90058
#if !defined(ISP2401)
@@ -573,12 +574,8 @@ sh_css_config_input_network(struct ia_css_stream *stream)
vblank_cycles = vblank_lines * (width + hblank_cycles);
sh_css_sp_configure_sync_gen(width, height, hblank_cycles,
vblank_cycles);
- if (!IS_ISP2401) {
- if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG) {
- /* TODO: move define to proper file in tools */
- ia_css_device_store_uint32(GP_ISEL_TPG_MODE, 0);
- }
- }
+ if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG)
+ ia_css_device_store_uint32(GP_ISEL_TPG_MODE, 0);
}
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"sh_css_config_input_network() leave:\n");
@@ -1009,16 +1006,14 @@ static bool sh_css_translate_stream_cfg_to_isys_stream_descr(
* ia_css_isys_stream_capture_indication() instead of
* ia_css_pipeline_sp_wait_for_isys_stream_N() as isp processing of
* capture takes longer than getting an ISYS frame
- *
- * Only 2401 relevant ??
*/
-#if 0 // FIXME: NOT USED on Yocto Aero
- isys_stream_descr->polling_mode
- = early_polling ? INPUT_SYSTEM_POLL_ON_CAPTURE_REQUEST
- : INPUT_SYSTEM_POLL_ON_WAIT_FOR_FRAME;
- ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
- "sh_css_translate_stream_cfg_to_isys_stream_descr() leave:\n");
-#endif
+ if (IS_ISP2401) {
+ isys_stream_descr->polling_mode
+ = early_polling ? INPUT_SYSTEM_POLL_ON_CAPTURE_REQUEST
+ : INPUT_SYSTEM_POLL_ON_WAIT_FOR_FRAME;
+ ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
+ "sh_css_translate_stream_cfg_to_isys_stream_descr() leave:\n");
+ }
return rc;
}
@@ -1433,7 +1428,7 @@ static void start_pipe(
assert(me); /* all callers are in this file and call with non null argument */
- if (!IS_ISP2401) {
+ if (IS_ISP2401) {
coord = &me->config.internal_frame_origin_bqs_on_sctbl;
params = me->stream->isp_params_configs;
}
diff --git a/drivers/staging/media/atomisp/pci/sh_css_mipi.c b/drivers/staging/media/atomisp/pci/sh_css_mipi.c
index 75489f7d75ee..c1f2f6151c5f 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_mipi.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_mipi.c
@@ -374,17 +374,17 @@ static bool buffers_needed(struct ia_css_pipe *pipe)
{
if (!IS_ISP2401) {
if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR)
- return false;
- else
return true;
+ else
+ return false;
}
if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR ||
pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG ||
pipe->stream->config.mode == IA_CSS_INPUT_MODE_PRBS)
- return false;
+ return true;
- return true;
+ return false;
}
int
@@ -423,14 +423,17 @@ allocate_mipi_frames(struct ia_css_pipe *pipe,
return 0; /* AM TODO: Check */
}
- if (!IS_ISP2401)
+ if (!IS_ISP2401) {
port = (unsigned int)pipe->stream->config.source.port.port;
- else
- err = ia_css_mipi_is_source_port_valid(pipe, &port);
+ } else {
+ /* Returns true if port is valid. So, invert it */
+ err = !ia_css_mipi_is_source_port_valid(pipe, &port);
+ }
assert(port < N_CSI_PORTS);
- if (port >= N_CSI_PORTS || err) {
+ if ((!IS_ISP2401 && port >= N_CSI_PORTS) ||
+ (IS_ISP2401 && err)) {
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"allocate_mipi_frames(%p) exit: error: port is not correct (port=%d).\n",
pipe, port);
@@ -552,14 +555,17 @@ free_mipi_frames(struct ia_css_pipe *pipe)
return err;
}
- if (!IS_ISP2401)
+ if (!IS_ISP2401) {
port = (unsigned int)pipe->stream->config.source.port.port;
- else
- err = ia_css_mipi_is_source_port_valid(pipe, &port);
+ } else {
+ /* Returns true if port is valid. So, invert it */
+ err = !ia_css_mipi_is_source_port_valid(pipe, &port);
+ }
assert(port < N_CSI_PORTS);
- if (port >= N_CSI_PORTS || err) {
+ if ((!IS_ISP2401 && port >= N_CSI_PORTS) ||
+ (IS_ISP2401 && err)) {
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"free_mipi_frames(%p, %d) exit: error: pipe port is not correct.\n",
pipe, port);
@@ -663,14 +669,17 @@ send_mipi_frames(struct ia_css_pipe *pipe)
/* TODO: AM: maybe this should be returning an error. */
}
- if (!IS_ISP2401)
+ if (!IS_ISP2401) {
port = (unsigned int)pipe->stream->config.source.port.port;
- else
- err = ia_css_mipi_is_source_port_valid(pipe, &port);
+ } else {
+ /* Returns true if port is valid. So, invert it */
+ err = !ia_css_mipi_is_source_port_valid(pipe, &port);
+ }
assert(port < N_CSI_PORTS);
- if (port >= N_CSI_PORTS || err) {
+ if ((!IS_ISP2401 && port >= N_CSI_PORTS) ||
+ (IS_ISP2401 && err)) {
IA_CSS_ERROR("send_mipi_frames(%p) exit: invalid port specified (port=%d).\n",
pipe, port);
return err;
diff --git a/drivers/staging/media/atomisp/pci/sh_css_params.c b/drivers/staging/media/atomisp/pci/sh_css_params.c
index dbd3bfe3d343..ccc007879564 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_params.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_params.c
@@ -2431,7 +2431,7 @@ sh_css_create_isp_params(struct ia_css_stream *stream,
unsigned int i;
struct sh_css_ddr_address_map *ddr_ptrs;
struct sh_css_ddr_address_map_size *ddr_ptrs_size;
- int err = 0;
+ int err;
size_t params_size;
struct ia_css_isp_parameters *params =
kvmalloc(sizeof(struct ia_css_isp_parameters), GFP_KERNEL);
@@ -2473,7 +2473,11 @@ sh_css_create_isp_params(struct ia_css_stream *stream,
succ &= (ddr_ptrs->macc_tbl != mmgr_NULL);
*isp_params_out = params;
- return err;
+
+ if (!succ)
+ return -ENOMEM;
+
+ return 0;
}
static bool
diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c
index fb82b9297a2b..0d56db8376e6 100644
--- a/drivers/staging/media/hantro/hantro_drv.c
+++ b/drivers/staging/media/hantro/hantro_drv.c
@@ -960,7 +960,7 @@ static int hantro_probe(struct platform_device *pdev)
ret = clk_bulk_prepare(vpu->variant->num_clocks, vpu->clocks);
if (ret) {
dev_err(&pdev->dev, "Failed to prepare clocks\n");
- return ret;
+ goto err_pm_disable;
}
ret = v4l2_device_register(&pdev->dev, &vpu->v4l2_dev);
@@ -1016,6 +1016,7 @@ static int hantro_probe(struct platform_device *pdev)
v4l2_device_unregister(&vpu->v4l2_dev);
err_clk_unprepare:
clk_bulk_unprepare(vpu->variant->num_clocks, vpu->clocks);
+err_pm_disable:
pm_runtime_dont_use_autosuspend(vpu->dev);
pm_runtime_disable(vpu->dev);
return ret;
diff --git a/drivers/staging/media/hantro/hantro_h1_jpeg_enc.c b/drivers/staging/media/hantro/hantro_h1_jpeg_enc.c
index 56cf261a8e95..9cd713c02a45 100644
--- a/drivers/staging/media/hantro/hantro_h1_jpeg_enc.c
+++ b/drivers/staging/media/hantro/hantro_h1_jpeg_enc.c
@@ -140,7 +140,7 @@ int hantro_h1_jpeg_enc_run(struct hantro_ctx *ctx)
return 0;
}
-void hantro_jpeg_enc_done(struct hantro_ctx *ctx)
+void hantro_h1_jpeg_enc_done(struct hantro_ctx *ctx)
{
struct hantro_dev *vpu = ctx->dev;
u32 bytesused = vepu_read(vpu, H1_REG_STR_BUF_LIMIT) / 8;
diff --git a/drivers/staging/media/hantro/hantro_hw.h b/drivers/staging/media/hantro/hantro_hw.h
index 267a6d33a47b..60d4602d33ed 100644
--- a/drivers/staging/media/hantro/hantro_hw.h
+++ b/drivers/staging/media/hantro/hantro_hw.h
@@ -239,7 +239,8 @@ int hantro_h1_jpeg_enc_run(struct hantro_ctx *ctx);
int rockchip_vpu2_jpeg_enc_run(struct hantro_ctx *ctx);
int hantro_jpeg_enc_init(struct hantro_ctx *ctx);
void hantro_jpeg_enc_exit(struct hantro_ctx *ctx);
-void hantro_jpeg_enc_done(struct hantro_ctx *ctx);
+void hantro_h1_jpeg_enc_done(struct hantro_ctx *ctx);
+void rockchip_vpu2_jpeg_enc_done(struct hantro_ctx *ctx);
dma_addr_t hantro_h264_get_ref_buf(struct hantro_ctx *ctx,
unsigned int dpb_idx);
diff --git a/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c b/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c
index 991213ce1610..5d9ff420f0b5 100644
--- a/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c
+++ b/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c
@@ -171,3 +171,20 @@ int rockchip_vpu2_jpeg_enc_run(struct hantro_ctx *ctx)
return 0;
}
+
+void rockchip_vpu2_jpeg_enc_done(struct hantro_ctx *ctx)
+{
+ struct hantro_dev *vpu = ctx->dev;
+ u32 bytesused = vepu_read(vpu, VEPU_REG_STR_BUF_LIMIT) / 8;
+ struct vb2_v4l2_buffer *dst_buf = hantro_get_dst_buf(ctx);
+
+ /*
+ * TODO: Rework the JPEG encoder to eliminate the need
+ * for a bounce buffer.
+ */
+ memcpy(vb2_plane_vaddr(&dst_buf->vb2_buf, 0) +
+ ctx->vpu_dst_fmt->header_size,
+ ctx->jpeg_enc.bounce_buffer.cpu, bytesused);
+ vb2_set_plane_payload(&dst_buf->vb2_buf, 0,
+ ctx->vpu_dst_fmt->header_size + bytesused);
+}
diff --git a/drivers/staging/media/hantro/rockchip_vpu_hw.c b/drivers/staging/media/hantro/rockchip_vpu_hw.c
index d4f52957cc53..0c22039162a0 100644
--- a/drivers/staging/media/hantro/rockchip_vpu_hw.c
+++ b/drivers/staging/media/hantro/rockchip_vpu_hw.c
@@ -343,7 +343,7 @@ static const struct hantro_codec_ops rk3066_vpu_codec_ops[] = {
.run = hantro_h1_jpeg_enc_run,
.reset = rockchip_vpu1_enc_reset,
.init = hantro_jpeg_enc_init,
- .done = hantro_jpeg_enc_done,
+ .done = hantro_h1_jpeg_enc_done,
.exit = hantro_jpeg_enc_exit,
},
[HANTRO_MODE_H264_DEC] = {
@@ -371,7 +371,7 @@ static const struct hantro_codec_ops rk3288_vpu_codec_ops[] = {
.run = hantro_h1_jpeg_enc_run,
.reset = rockchip_vpu1_enc_reset,
.init = hantro_jpeg_enc_init,
- .done = hantro_jpeg_enc_done,
+ .done = hantro_h1_jpeg_enc_done,
.exit = hantro_jpeg_enc_exit,
},
[HANTRO_MODE_H264_DEC] = {
@@ -399,6 +399,7 @@ static const struct hantro_codec_ops rk3399_vpu_codec_ops[] = {
.run = rockchip_vpu2_jpeg_enc_run,
.reset = rockchip_vpu2_enc_reset,
.init = hantro_jpeg_enc_init,
+ .done = rockchip_vpu2_jpeg_enc_done,
.exit = hantro_jpeg_enc_exit,
},
[HANTRO_MODE_H264_DEC] = {
diff --git a/drivers/staging/rtl8192e/rtllib.h b/drivers/staging/rtl8192e/rtllib.h
index c6f8b772335c..c985e4ebc545 100644
--- a/drivers/staging/rtl8192e/rtllib.h
+++ b/drivers/staging/rtl8192e/rtllib.h
@@ -1980,7 +1980,7 @@ void SendDisassociation(struct rtllib_device *ieee, bool deauth, u16 asRsn);
void rtllib_softmac_xmit(struct rtllib_txb *txb, struct rtllib_device *ieee);
void rtllib_start_ibss(struct rtllib_device *ieee);
-void rtllib_softmac_init(struct rtllib_device *ieee);
+int rtllib_softmac_init(struct rtllib_device *ieee);
void rtllib_softmac_free(struct rtllib_device *ieee);
void rtllib_disassociate(struct rtllib_device *ieee);
void rtllib_stop_scan(struct rtllib_device *ieee);
diff --git a/drivers/staging/rtl8192e/rtllib_module.c b/drivers/staging/rtl8192e/rtllib_module.c
index 64d9feee1f39..f00ac94b2639 100644
--- a/drivers/staging/rtl8192e/rtllib_module.c
+++ b/drivers/staging/rtl8192e/rtllib_module.c
@@ -88,7 +88,7 @@ struct net_device *alloc_rtllib(int sizeof_priv)
err = rtllib_networks_allocate(ieee);
if (err) {
pr_err("Unable to allocate beacon storage: %d\n", err);
- goto failed;
+ goto free_netdev;
}
rtllib_networks_initialize(ieee);
@@ -121,11 +121,13 @@ struct net_device *alloc_rtllib(int sizeof_priv)
ieee->hwsec_active = 0;
memset(ieee->swcamtable, 0, sizeof(struct sw_cam_table) * 32);
- rtllib_softmac_init(ieee);
+ err = rtllib_softmac_init(ieee);
+ if (err)
+ goto free_crypt_info;
ieee->pHTInfo = kzalloc(sizeof(struct rt_hi_throughput), GFP_KERNEL);
if (!ieee->pHTInfo)
- return NULL;
+ goto free_softmac;
HTUpdateDefaultSetting(ieee);
HTInitializeHTInfo(ieee);
@@ -141,8 +143,14 @@ struct net_device *alloc_rtllib(int sizeof_priv)
return dev;
- failed:
+free_softmac:
+ rtllib_softmac_free(ieee);
+free_crypt_info:
+ lib80211_crypt_info_free(&ieee->crypt_info);
+ rtllib_networks_free(ieee);
+free_netdev:
free_netdev(dev);
+
return NULL;
}
EXPORT_SYMBOL(alloc_rtllib);
diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c
index d2726d01c757..503d33be71d9 100644
--- a/drivers/staging/rtl8192e/rtllib_softmac.c
+++ b/drivers/staging/rtl8192e/rtllib_softmac.c
@@ -2952,7 +2952,7 @@ void rtllib_start_protocol(struct rtllib_device *ieee)
}
}
-void rtllib_softmac_init(struct rtllib_device *ieee)
+int rtllib_softmac_init(struct rtllib_device *ieee)
{
int i;
@@ -2963,7 +2963,8 @@ void rtllib_softmac_init(struct rtllib_device *ieee)
ieee->seq_ctrl[i] = 0;
ieee->dot11d_info = kzalloc(sizeof(struct rt_dot11d_info), GFP_ATOMIC);
if (!ieee->dot11d_info)
- netdev_err(ieee->dev, "Can't alloc memory for DOT11D\n");
+ return -ENOMEM;
+
ieee->LinkDetectInfo.SlotIndex = 0;
ieee->LinkDetectInfo.SlotNum = 2;
ieee->LinkDetectInfo.NumRecvBcnInPeriod = 0;
@@ -3029,6 +3030,7 @@ void rtllib_softmac_init(struct rtllib_device *ieee)
tasklet_setup(&ieee->ps_task, rtllib_sta_ps);
+ return 0;
}
void rtllib_softmac_free(struct rtllib_device *ieee)
diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c
index 2b37bc408fc3..85102d12d716 100644
--- a/drivers/tee/tee_core.c
+++ b/drivers/tee/tee_core.c
@@ -98,8 +98,10 @@ void teedev_ctx_put(struct tee_context *ctx)
static void teedev_close_context(struct tee_context *ctx)
{
- tee_device_put(ctx->teedev);
+ struct tee_device *teedev = ctx->teedev;
+
teedev_ctx_put(ctx);
+ tee_device_put(teedev);
}
static int tee_open(struct inode *inode, struct file *filp)
diff --git a/drivers/thermal/imx8mm_thermal.c b/drivers/thermal/imx8mm_thermal.c
index 7442e013738f..af666bd9e8d4 100644
--- a/drivers/thermal/imx8mm_thermal.c
+++ b/drivers/thermal/imx8mm_thermal.c
@@ -21,6 +21,7 @@
#define TPS 0x4
#define TRITSR 0x20 /* TMU immediate temp */
+#define TER_ADC_PD BIT(30)
#define TER_EN BIT(31)
#define TRITSR_TEMP0_VAL_MASK 0xff
#define TRITSR_TEMP1_VAL_MASK 0xff0000
@@ -113,6 +114,8 @@ static void imx8mm_tmu_enable(struct imx8mm_tmu *tmu, bool enable)
val = readl_relaxed(tmu->base + TER);
val = enable ? (val | TER_EN) : (val & ~TER_EN);
+ if (tmu->socdata->version == TMU_VER2)
+ val = enable ? (val & ~TER_ADC_PD) : (val | TER_ADC_PD);
writel_relaxed(val, tmu->base + TER);
}
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
index 2c7473d86a59..16663373b682 100644
--- a/drivers/thermal/imx_thermal.c
+++ b/drivers/thermal/imx_thermal.c
@@ -15,6 +15,7 @@
#include <linux/regmap.h>
#include <linux/thermal.h>
#include <linux/nvmem-consumer.h>
+#include <linux/pm_runtime.h>
#define REG_SET 0x4
#define REG_CLR 0x8
@@ -194,6 +195,7 @@ static struct thermal_soc_data thermal_imx7d_data = {
};
struct imx_thermal_data {
+ struct device *dev;
struct cpufreq_policy *policy;
struct thermal_zone_device *tz;
struct thermal_cooling_device *cdev;
@@ -252,44 +254,15 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
const struct thermal_soc_data *soc_data = data->socdata;
struct regmap *map = data->tempmon;
unsigned int n_meas;
- bool wait, run_measurement;
u32 val;
+ int ret;
- run_measurement = !data->irq_enabled;
- if (!run_measurement) {
- /* Check if a measurement is currently in progress */
- regmap_read(map, soc_data->temp_data, &val);
- wait = !(val & soc_data->temp_valid_mask);
- } else {
- /*
- * Every time we measure the temperature, we will power on the
- * temperature sensor, enable measurements, take a reading,
- * disable measurements, power off the temperature sensor.
- */
- regmap_write(map, soc_data->sensor_ctrl + REG_CLR,
- soc_data->power_down_mask);
- regmap_write(map, soc_data->sensor_ctrl + REG_SET,
- soc_data->measure_temp_mask);
-
- wait = true;
- }
-
- /*
- * According to the temp sensor designers, it may require up to ~17us
- * to complete a measurement.
- */
- if (wait)
- usleep_range(20, 50);
+ ret = pm_runtime_resume_and_get(data->dev);
+ if (ret < 0)
+ return ret;
regmap_read(map, soc_data->temp_data, &val);
- if (run_measurement) {
- regmap_write(map, soc_data->sensor_ctrl + REG_CLR,
- soc_data->measure_temp_mask);
- regmap_write(map, soc_data->sensor_ctrl + REG_SET,
- soc_data->power_down_mask);
- }
-
if ((val & soc_data->temp_valid_mask) == 0) {
dev_dbg(&tz->device, "temp measurement never finished\n");
return -EAGAIN;
@@ -328,6 +301,8 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
enable_irq(data->irq);
}
+ pm_runtime_put(data->dev);
+
return 0;
}
@@ -335,24 +310,16 @@ static int imx_change_mode(struct thermal_zone_device *tz,
enum thermal_device_mode mode)
{
struct imx_thermal_data *data = tz->devdata;
- struct regmap *map = data->tempmon;
- const struct thermal_soc_data *soc_data = data->socdata;
if (mode == THERMAL_DEVICE_ENABLED) {
- regmap_write(map, soc_data->sensor_ctrl + REG_CLR,
- soc_data->power_down_mask);
- regmap_write(map, soc_data->sensor_ctrl + REG_SET,
- soc_data->measure_temp_mask);
+ pm_runtime_get(data->dev);
if (!data->irq_enabled) {
data->irq_enabled = true;
enable_irq(data->irq);
}
} else {
- regmap_write(map, soc_data->sensor_ctrl + REG_CLR,
- soc_data->measure_temp_mask);
- regmap_write(map, soc_data->sensor_ctrl + REG_SET,
- soc_data->power_down_mask);
+ pm_runtime_put(data->dev);
if (data->irq_enabled) {
disable_irq(data->irq);
@@ -393,6 +360,11 @@ static int imx_set_trip_temp(struct thermal_zone_device *tz, int trip,
int temp)
{
struct imx_thermal_data *data = tz->devdata;
+ int ret;
+
+ ret = pm_runtime_resume_and_get(data->dev);
+ if (ret < 0)
+ return ret;
/* do not allow changing critical threshold */
if (trip == IMX_TRIP_CRITICAL)
@@ -406,6 +378,8 @@ static int imx_set_trip_temp(struct thermal_zone_device *tz, int trip,
imx_set_alarm_temp(data, temp);
+ pm_runtime_put(data->dev);
+
return 0;
}
@@ -681,6 +655,8 @@ static int imx_thermal_probe(struct platform_device *pdev)
if (!data)
return -ENOMEM;
+ data->dev = &pdev->dev;
+
map = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, "fsl,tempmon");
if (IS_ERR(map)) {
ret = PTR_ERR(map);
@@ -800,6 +776,16 @@ static int imx_thermal_probe(struct platform_device *pdev)
data->socdata->power_down_mask);
regmap_write(map, data->socdata->sensor_ctrl + REG_SET,
data->socdata->measure_temp_mask);
+ /* After power up, we need a delay before first access can be done. */
+ usleep_range(20, 50);
+
+ /* the core was configured and enabled just before */
+ pm_runtime_set_active(&pdev->dev);
+ pm_runtime_enable(data->dev);
+
+ ret = pm_runtime_resume_and_get(data->dev);
+ if (ret < 0)
+ goto disable_runtime_pm;
data->irq_enabled = true;
ret = thermal_zone_device_enable(data->tz);
@@ -814,10 +800,15 @@ static int imx_thermal_probe(struct platform_device *pdev)
goto thermal_zone_unregister;
}
+ pm_runtime_put(data->dev);
+
return 0;
thermal_zone_unregister:
thermal_zone_device_unregister(data->tz);
+disable_runtime_pm:
+ pm_runtime_put_noidle(data->dev);
+ pm_runtime_disable(data->dev);
clk_disable:
clk_disable_unprepare(data->thermal_clk);
legacy_cleanup:
@@ -829,13 +820,9 @@ static int imx_thermal_probe(struct platform_device *pdev)
static int imx_thermal_remove(struct platform_device *pdev)
{
struct imx_thermal_data *data = platform_get_drvdata(pdev);
- struct regmap *map = data->tempmon;
- /* Disable measurements */
- regmap_write(map, data->socdata->sensor_ctrl + REG_SET,
- data->socdata->power_down_mask);
- if (!IS_ERR(data->thermal_clk))
- clk_disable_unprepare(data->thermal_clk);
+ pm_runtime_put_noidle(data->dev);
+ pm_runtime_disable(data->dev);
thermal_zone_device_unregister(data->tz);
imx_thermal_unregister_legacy_cooling(data);
@@ -858,29 +845,79 @@ static int __maybe_unused imx_thermal_suspend(struct device *dev)
ret = thermal_zone_device_disable(data->tz);
if (ret)
return ret;
+
+ return pm_runtime_force_suspend(data->dev);
+}
+
+static int __maybe_unused imx_thermal_resume(struct device *dev)
+{
+ struct imx_thermal_data *data = dev_get_drvdata(dev);
+ int ret;
+
+ ret = pm_runtime_force_resume(data->dev);
+ if (ret)
+ return ret;
+ /* Enabled thermal sensor after resume */
+ return thermal_zone_device_enable(data->tz);
+}
+
+static int __maybe_unused imx_thermal_runtime_suspend(struct device *dev)
+{
+ struct imx_thermal_data *data = dev_get_drvdata(dev);
+ const struct thermal_soc_data *socdata = data->socdata;
+ struct regmap *map = data->tempmon;
+ int ret;
+
+ ret = regmap_write(map, socdata->sensor_ctrl + REG_CLR,
+ socdata->measure_temp_mask);
+ if (ret)
+ return ret;
+
+ ret = regmap_write(map, socdata->sensor_ctrl + REG_SET,
+ socdata->power_down_mask);
+ if (ret)
+ return ret;
+
clk_disable_unprepare(data->thermal_clk);
return 0;
}
-static int __maybe_unused imx_thermal_resume(struct device *dev)
+static int __maybe_unused imx_thermal_runtime_resume(struct device *dev)
{
struct imx_thermal_data *data = dev_get_drvdata(dev);
+ const struct thermal_soc_data *socdata = data->socdata;
+ struct regmap *map = data->tempmon;
int ret;
ret = clk_prepare_enable(data->thermal_clk);
if (ret)
return ret;
- /* Enabled thermal sensor after resume */
- ret = thermal_zone_device_enable(data->tz);
+
+ ret = regmap_write(map, socdata->sensor_ctrl + REG_CLR,
+ socdata->power_down_mask);
+ if (ret)
+ return ret;
+
+ ret = regmap_write(map, socdata->sensor_ctrl + REG_SET,
+ socdata->measure_temp_mask);
if (ret)
return ret;
+ /*
+ * According to the temp sensor designers, it may require up to ~17us
+ * to complete a measurement.
+ */
+ usleep_range(20, 50);
+
return 0;
}
-static SIMPLE_DEV_PM_OPS(imx_thermal_pm_ops,
- imx_thermal_suspend, imx_thermal_resume);
+static const struct dev_pm_ops imx_thermal_pm_ops = {
+ SET_SYSTEM_SLEEP_PM_OPS(imx_thermal_suspend, imx_thermal_resume)
+ SET_RUNTIME_PM_OPS(imx_thermal_runtime_suspend,
+ imx_thermal_runtime_resume, NULL)
+};
static struct platform_driver imx_thermal = {
.driver = {
diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h
index be27f633e40a..9b2a64ef55d0 100644
--- a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h
+++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h
@@ -80,7 +80,8 @@ void proc_thermal_rfim_remove(struct pci_dev *pdev);
int proc_thermal_mbox_add(struct pci_dev *pdev, struct proc_thermal_device *proc_priv);
void proc_thermal_mbox_remove(struct pci_dev *pdev);
-int processor_thermal_send_mbox_cmd(struct pci_dev *pdev, u16 cmd_id, u32 cmd_data, u64 *cmd_resp);
+int processor_thermal_send_mbox_read_cmd(struct pci_dev *pdev, u16 id, u64 *resp);
+int processor_thermal_send_mbox_write_cmd(struct pci_dev *pdev, u16 id, u32 data);
int proc_thermal_add(struct device *dev, struct proc_thermal_device *priv);
void proc_thermal_remove(struct proc_thermal_device *proc_priv);
int proc_thermal_suspend(struct device *dev);
diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c
index 01008ae00e7f..0b89a4340ff4 100644
--- a/drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c
+++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c
@@ -24,19 +24,15 @@
static DEFINE_MUTEX(mbox_lock);
-static int send_mbox_cmd(struct pci_dev *pdev, u16 cmd_id, u32 cmd_data, u64 *cmd_resp)
+static int wait_for_mbox_ready(struct proc_thermal_device *proc_priv)
{
- struct proc_thermal_device *proc_priv;
u32 retries, data;
int ret;
- mutex_lock(&mbox_lock);
- proc_priv = pci_get_drvdata(pdev);
-
/* Poll for rb bit == 0 */
retries = MBOX_RETRY_COUNT;
do {
- data = readl((void __iomem *) (proc_priv->mmio_base + MBOX_OFFSET_INTERFACE));
+ data = readl(proc_priv->mmio_base + MBOX_OFFSET_INTERFACE);
if (data & BIT_ULL(MBOX_BUSY_BIT)) {
ret = -EBUSY;
continue;
@@ -45,53 +41,78 @@ static int send_mbox_cmd(struct pci_dev *pdev, u16 cmd_id, u32 cmd_data, u64 *cm
break;
} while (--retries);
+ return ret;
+}
+
+static int send_mbox_write_cmd(struct pci_dev *pdev, u16 id, u32 data)
+{
+ struct proc_thermal_device *proc_priv;
+ u32 reg_data;
+ int ret;
+
+ proc_priv = pci_get_drvdata(pdev);
+
+ mutex_lock(&mbox_lock);
+
+ ret = wait_for_mbox_ready(proc_priv);
if (ret)
goto unlock_mbox;
- if (cmd_id == MBOX_CMD_WORKLOAD_TYPE_WRITE)
- writel(cmd_data, (void __iomem *) ((proc_priv->mmio_base + MBOX_OFFSET_DATA)));
-
+ writel(data, (proc_priv->mmio_base + MBOX_OFFSET_DATA));
/* Write command register */
- data = BIT_ULL(MBOX_BUSY_BIT) | cmd_id;
- writel(data, (void __iomem *) ((proc_priv->mmio_base + MBOX_OFFSET_INTERFACE)));
+ reg_data = BIT_ULL(MBOX_BUSY_BIT) | id;
+ writel(reg_data, (proc_priv->mmio_base + MBOX_OFFSET_INTERFACE));
- /* Poll for rb bit == 0 */
- retries = MBOX_RETRY_COUNT;
- do {
- data = readl((void __iomem *) (proc_priv->mmio_base + MBOX_OFFSET_INTERFACE));
- if (data & BIT_ULL(MBOX_BUSY_BIT)) {
- ret = -EBUSY;
- continue;
- }
+ ret = wait_for_mbox_ready(proc_priv);
- if (data) {
- ret = -ENXIO;
- goto unlock_mbox;
- }
+unlock_mbox:
+ mutex_unlock(&mbox_lock);
+ return ret;
+}
- ret = 0;
+static int send_mbox_read_cmd(struct pci_dev *pdev, u16 id, u64 *resp)
+{
+ struct proc_thermal_device *proc_priv;
+ u32 reg_data;
+ int ret;
- if (!cmd_resp)
- break;
+ proc_priv = pci_get_drvdata(pdev);
- if (cmd_id == MBOX_CMD_WORKLOAD_TYPE_READ)
- *cmd_resp = readl((void __iomem *) (proc_priv->mmio_base + MBOX_OFFSET_DATA));
- else
- *cmd_resp = readq((void __iomem *) (proc_priv->mmio_base + MBOX_OFFSET_DATA));
+ mutex_lock(&mbox_lock);
- break;
- } while (--retries);
+ ret = wait_for_mbox_ready(proc_priv);
+ if (ret)
+ goto unlock_mbox;
+
+ /* Write command register */
+ reg_data = BIT_ULL(MBOX_BUSY_BIT) | id;
+ writel(reg_data, (proc_priv->mmio_base + MBOX_OFFSET_INTERFACE));
+
+ ret = wait_for_mbox_ready(proc_priv);
+ if (ret)
+ goto unlock_mbox;
+
+ if (id == MBOX_CMD_WORKLOAD_TYPE_READ)
+ *resp = readl(proc_priv->mmio_base + MBOX_OFFSET_DATA);
+ else
+ *resp = readq(proc_priv->mmio_base + MBOX_OFFSET_DATA);
unlock_mbox:
mutex_unlock(&mbox_lock);
return ret;
}
-int processor_thermal_send_mbox_cmd(struct pci_dev *pdev, u16 cmd_id, u32 cmd_data, u64 *cmd_resp)
+int processor_thermal_send_mbox_read_cmd(struct pci_dev *pdev, u16 id, u64 *resp)
{
- return send_mbox_cmd(pdev, cmd_id, cmd_data, cmd_resp);
+ return send_mbox_read_cmd(pdev, id, resp);
}
-EXPORT_SYMBOL_GPL(processor_thermal_send_mbox_cmd);
+EXPORT_SYMBOL_NS_GPL(processor_thermal_send_mbox_read_cmd, INT340X_THERMAL);
+
+int processor_thermal_send_mbox_write_cmd(struct pci_dev *pdev, u16 id, u32 data)
+{
+ return send_mbox_write_cmd(pdev, id, data);
+}
+EXPORT_SYMBOL_NS_GPL(processor_thermal_send_mbox_write_cmd, INT340X_THERMAL);
/* List of workload types */
static const char * const workload_types[] = {
@@ -104,7 +125,6 @@ static const char * const workload_types[] = {
NULL
};
-
static ssize_t workload_available_types_show(struct device *dev,
struct device_attribute *attr,
char *buf)
@@ -146,7 +166,7 @@ static ssize_t workload_type_store(struct device *dev,
data |= ret;
- ret = send_mbox_cmd(pdev, MBOX_CMD_WORKLOAD_TYPE_WRITE, data, NULL);
+ ret = send_mbox_write_cmd(pdev, MBOX_CMD_WORKLOAD_TYPE_WRITE, data);
if (ret)
return false;
@@ -161,7 +181,7 @@ static ssize_t workload_type_show(struct device *dev,
u64 cmd_resp;
int ret;
- ret = send_mbox_cmd(pdev, MBOX_CMD_WORKLOAD_TYPE_READ, 0, &cmd_resp);
+ ret = send_mbox_read_cmd(pdev, MBOX_CMD_WORKLOAD_TYPE_READ, &cmd_resp);
if (ret)
return false;
@@ -186,8 +206,6 @@ static const struct attribute_group workload_req_attribute_group = {
.name = "workload_request"
};
-
-
static bool workload_req_created;
int proc_thermal_mbox_add(struct pci_dev *pdev, struct proc_thermal_device *proc_priv)
@@ -196,7 +214,7 @@ int proc_thermal_mbox_add(struct pci_dev *pdev, struct proc_thermal_device *proc
int ret;
/* Check if there is a mailbox support, if fails return success */
- ret = send_mbox_cmd(pdev, MBOX_CMD_WORKLOAD_TYPE_READ, 0, &cmd_resp);
+ ret = send_mbox_read_cmd(pdev, MBOX_CMD_WORKLOAD_TYPE_READ, &cmd_resp);
if (ret)
return 0;
diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c
index e693ec8234fb..8c42e7662033 100644
--- a/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c
+++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c
@@ -9,6 +9,8 @@
#include <linux/pci.h>
#include "processor_thermal_device.h"
+MODULE_IMPORT_NS(INT340X_THERMAL);
+
struct mmio_reg {
int read_only;
u32 offset;
@@ -194,8 +196,7 @@ static ssize_t rfi_restriction_store(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t count)
{
- u16 cmd_id = 0x0008;
- u64 cmd_resp;
+ u16 id = 0x0008;
u32 input;
int ret;
@@ -203,7 +204,7 @@ static ssize_t rfi_restriction_store(struct device *dev,
if (ret)
return ret;
- ret = processor_thermal_send_mbox_cmd(to_pci_dev(dev), cmd_id, input, &cmd_resp);
+ ret = processor_thermal_send_mbox_write_cmd(to_pci_dev(dev), id, input);
if (ret)
return ret;
@@ -214,30 +215,30 @@ static ssize_t rfi_restriction_show(struct device *dev,
struct device_attribute *attr,
char *buf)
{
- u16 cmd_id = 0x0007;
- u64 cmd_resp;
+ u16 id = 0x0007;
+ u64 resp;
int ret;
- ret = processor_thermal_send_mbox_cmd(to_pci_dev(dev), cmd_id, 0, &cmd_resp);
+ ret = processor_thermal_send_mbox_read_cmd(to_pci_dev(dev), id, &resp);
if (ret)
return ret;
- return sprintf(buf, "%llu\n", cmd_resp);
+ return sprintf(buf, "%llu\n", resp);
}
static ssize_t ddr_data_rate_show(struct device *dev,
struct device_attribute *attr,
char *buf)
{
- u16 cmd_id = 0x0107;
- u64 cmd_resp;
+ u16 id = 0x0107;
+ u64 resp;
int ret;
- ret = processor_thermal_send_mbox_cmd(to_pci_dev(dev), cmd_id, 0, &cmd_resp);
+ ret = processor_thermal_send_mbox_read_cmd(to_pci_dev(dev), id, &resp);
if (ret)
return ret;
- return sprintf(buf, "%llu\n", cmd_resp);
+ return sprintf(buf, "%llu\n", resp);
}
static DEVICE_ATTR_RW(rfi_restriction);
diff --git a/drivers/thunderbolt/acpi.c b/drivers/thunderbolt/acpi.c
index b67e72d5644b..7c9597a33929 100644
--- a/drivers/thunderbolt/acpi.c
+++ b/drivers/thunderbolt/acpi.c
@@ -7,6 +7,7 @@
*/
#include <linux/acpi.h>
+#include <linux/pm_runtime.h>
#include "tb.h"
@@ -74,8 +75,18 @@ static acpi_status tb_acpi_add_link(acpi_handle handle, u32 level, void *data,
pci_pcie_type(pdev) == PCI_EXP_TYPE_DOWNSTREAM))) {
const struct device_link *link;
+ /*
+ * Make them both active first to make sure the NHI does
+ * not runtime suspend before the consumer. The
+ * pm_runtime_put() below then allows the consumer to
+ * runtime suspend again (which then allows NHI runtime
+ * suspend too now that the device link is established).
+ */
+ pm_runtime_get_sync(&pdev->dev);
+
link = device_link_add(&pdev->dev, &nhi->pdev->dev,
DL_FLAG_AUTOREMOVE_SUPPLIER |
+ DL_FLAG_RPM_ACTIVE |
DL_FLAG_PM_RUNTIME);
if (link) {
dev_dbg(&nhi->pdev->dev, "created link from %s\n",
@@ -84,6 +95,8 @@ static acpi_status tb_acpi_add_link(acpi_handle handle, u32 level, void *data,
dev_warn(&nhi->pdev->dev, "device link creation from %s failed\n",
dev_name(&pdev->dev));
}
+
+ pm_runtime_put(&pdev->dev);
}
out_put:
diff --git a/drivers/tty/mxser.c b/drivers/tty/mxser.c
index 93a95a135a71..39458b42df7b 100644
--- a/drivers/tty/mxser.c
+++ b/drivers/tty/mxser.c
@@ -251,8 +251,6 @@ struct mxser_port {
u8 MCR; /* Modem control register */
u8 FCR; /* FIFO control register */
- bool ldisc_stop_rx;
-
struct async_icount icount; /* kernel counters for 4 input interrupts */
unsigned int timeout;
@@ -262,7 +260,6 @@ struct mxser_port {
unsigned int xmit_head;
unsigned int xmit_tail;
unsigned int xmit_cnt;
- int closing;
spinlock_t slock;
};
@@ -918,7 +915,6 @@ static void mxser_close(struct tty_struct *tty, struct file *filp)
return;
if (tty_port_close_start(port, tty, filp) == 0)
return;
- info->closing = 1;
mutex_lock(&port->mutex);
mxser_close_port(port);
mxser_flush_buffer(tty);
@@ -927,7 +923,6 @@ static void mxser_close(struct tty_struct *tty, struct file *filp)
mxser_shutdown_port(port);
tty_port_set_initialized(port, 0);
mutex_unlock(&port->mutex);
- info->closing = 0;
/* Right now the tty_port set is done outside of the close_end helper
as we don't yet have everyone using refcounts */
tty_port_close_end(port, tty);
@@ -1326,11 +1321,14 @@ static int mxser_get_icount(struct tty_struct *tty,
return 0;
}
-static void mxser_stoprx(struct tty_struct *tty)
+/*
+ * This routine is called by the upper-layer tty layer to signal that
+ * incoming characters should be throttled.
+ */
+static void mxser_throttle(struct tty_struct *tty)
{
struct mxser_port *info = tty->driver_data;
- info->ldisc_stop_rx = true;
if (I_IXOFF(tty)) {
if (info->board->must_hwid) {
info->IER &= ~MOXA_MUST_RECV_ISR;
@@ -1349,21 +1347,11 @@ static void mxser_stoprx(struct tty_struct *tty)
}
}
-/*
- * This routine is called by the upper-layer tty layer to signal that
- * incoming characters should be throttled.
- */
-static void mxser_throttle(struct tty_struct *tty)
-{
- mxser_stoprx(tty);
-}
-
static void mxser_unthrottle(struct tty_struct *tty)
{
struct mxser_port *info = tty->driver_data;
/* startrx */
- info->ldisc_stop_rx = false;
if (I_IXOFF(tty)) {
if (info->x_char)
info->x_char = 0;
@@ -1546,12 +1534,10 @@ static bool mxser_receive_chars_new(struct tty_struct *tty,
if (hwid == MOXA_MUST_MU150_HWID)
gdl &= MOXA_MUST_GDL_MASK;
- if (gdl >= tty->receive_room && !port->ldisc_stop_rx)
- mxser_stoprx(tty);
-
while (gdl--) {
u8 ch = inb(port->ioaddr + UART_RX);
- tty_insert_flip_char(&port->port, ch, 0);
+ if (!tty_insert_flip_char(&port->port, ch, 0))
+ port->icount.buf_overrun++;
}
return true;
@@ -1561,10 +1547,8 @@ static u8 mxser_receive_chars_old(struct tty_struct *tty,
struct mxser_port *port, u8 status)
{
enum mxser_must_hwid hwid = port->board->must_hwid;
- int recv_room = tty->receive_room;
int ignored = 0;
int max = 256;
- int cnt = 0;
u8 ch;
do {
@@ -1599,14 +1583,10 @@ static u8 mxser_receive_chars_old(struct tty_struct *tty,
port->icount.overrun++;
}
}
- tty_insert_flip_char(&port->port, ch, flag);
- cnt++;
- if (cnt >= recv_room) {
- if (!port->ldisc_stop_rx)
- mxser_stoprx(tty);
+ if (!tty_insert_flip_char(&port->port, ch, flag)) {
+ port->icount.buf_overrun++;
break;
}
-
}
if (hwid)
@@ -1621,9 +1601,6 @@ static u8 mxser_receive_chars_old(struct tty_struct *tty,
static u8 mxser_receive_chars(struct tty_struct *tty,
struct mxser_port *port, u8 status)
{
- if (tty->receive_room == 0 && !port->ldisc_stop_rx)
- mxser_stoprx(tty);
-
if (!mxser_receive_chars_new(tty, port, status))
status = mxser_receive_chars_old(tty, port, status);
@@ -1683,7 +1660,7 @@ static bool mxser_port_isr(struct mxser_port *port)
iir &= MOXA_MUST_IIR_MASK;
tty = tty_port_tty_get(&port->port);
- if (!tty || port->closing || !tty_port_initialized(&port->port)) {
+ if (!tty) {
status = inb(port->ioaddr + UART_LSR);
outb(port->FCR | UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT,
port->ioaddr + UART_FCR);
@@ -1836,7 +1813,6 @@ static void mxser_initbrd(struct mxser_board *brd, bool high_baud)
tty_port_init(&info->port);
info->port.ops = &mxser_port_ops;
info->board = brd;
- info->ldisc_stop_rx = false;
/* Enhance mode enabled here */
if (brd->must_hwid != MOXA_OTHER_UART)
diff --git a/drivers/tty/serial/8250/8250_bcm7271.c b/drivers/tty/serial/8250/8250_bcm7271.c
index 5163d60756b7..0877cf24f7de 100644
--- a/drivers/tty/serial/8250/8250_bcm7271.c
+++ b/drivers/tty/serial/8250/8250_bcm7271.c
@@ -1076,14 +1076,18 @@ static int brcmuart_probe(struct platform_device *pdev)
priv->rx_bufs = dma_alloc_coherent(dev,
priv->rx_size,
&priv->rx_addr, GFP_KERNEL);
- if (!priv->rx_bufs)
+ if (!priv->rx_bufs) {
+ ret = -EINVAL;
goto err;
+ }
priv->tx_size = UART_XMIT_SIZE;
priv->tx_buf = dma_alloc_coherent(dev,
priv->tx_size,
&priv->tx_addr, GFP_KERNEL);
- if (!priv->tx_buf)
+ if (!priv->tx_buf) {
+ ret = -EINVAL;
goto err;
+ }
}
ret = serial8250_register_8250_port(&up);
@@ -1097,6 +1101,7 @@ static int brcmuart_probe(struct platform_device *pdev)
if (priv->dma_enabled) {
dma_irq = platform_get_irq_byname(pdev, "dma");
if (dma_irq < 0) {
+ ret = dma_irq;
dev_err(dev, "no IRQ resource info\n");
goto err1;
}
@@ -1116,7 +1121,7 @@ static int brcmuart_probe(struct platform_device *pdev)
err:
brcmuart_free_bufs(dev, priv);
brcmuart_arbitration(priv, 0);
- return -ENODEV;
+ return ret;
}
static int brcmuart_remove(struct platform_device *pdev)
diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
index 53f57c3b9f42..1769808031c5 100644
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
@@ -414,6 +414,8 @@ static void dw8250_quirks(struct uart_port *p, struct dw8250_data *data)
if (of_device_is_compatible(np, "marvell,armada-38x-uart"))
p->serial_out = dw8250_serial_out38x;
+ if (of_device_is_compatible(np, "starfive,jh7100-uart"))
+ p->set_termios = dw8250_do_set_termios;
} else if (acpi_dev_present("APMC0D08", NULL, -1)) {
p->iotype = UPIO_MEM32;
@@ -696,6 +698,7 @@ static const struct of_device_id dw8250_of_match[] = {
{ .compatible = "cavium,octeon-3860-uart" },
{ .compatible = "marvell,armada-38x-uart" },
{ .compatible = "renesas,rzn1-uart" },
+ { .compatible = "starfive,jh7100-uart" },
{ /* Sentinel */ }
};
MODULE_DEVICE_TABLE(of, dw8250_of_match);
diff --git a/drivers/tty/serial/amba-pl010.c b/drivers/tty/serial/amba-pl010.c
index e744b953ca34..47654073123d 100644
--- a/drivers/tty/serial/amba-pl010.c
+++ b/drivers/tty/serial/amba-pl010.c
@@ -446,14 +446,11 @@ pl010_set_termios(struct uart_port *port, struct ktermios *termios,
if ((termios->c_cflag & CREAD) == 0)
uap->port.ignore_status_mask |= UART_DUMMY_RSR_RX;
- /* first, disable everything */
old_cr = readb(uap->port.membase + UART010_CR) & ~UART010_CR_MSIE;
if (UART_ENABLE_MS(port, termios->c_cflag))
old_cr |= UART010_CR_MSIE;
- writel(0, uap->port.membase + UART010_CR);
-
/* Set baud rate */
quot -= 1;
writel((quot & 0xf00) >> 8, uap->port.membase + UART010_LCRM);
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index 52518a606c06..6ec34260d6b1 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -2105,9 +2105,7 @@ pl011_set_termios(struct uart_port *port, struct ktermios *termios,
if (port->rs485.flags & SER_RS485_ENABLED)
termios->c_cflag &= ~CRTSCTS;
- /* first, disable everything */
old_cr = pl011_read(uap, REG_CR);
- pl011_write(0, uap, REG_CR);
if (termios->c_cflag & CRTSCTS) {
if (old_cr & UART011_CR_RTS)
@@ -2183,32 +2181,13 @@ static const char *pl011_type(struct uart_port *port)
return uap->port.type == PORT_AMBA ? uap->type : NULL;
}
-/*
- * Release the memory region(s) being used by 'port'
- */
-static void pl011_release_port(struct uart_port *port)
-{
- release_mem_region(port->mapbase, SZ_4K);
-}
-
-/*
- * Request the memory region(s) being used by 'port'
- */
-static int pl011_request_port(struct uart_port *port)
-{
- return request_mem_region(port->mapbase, SZ_4K, "uart-pl011")
- != NULL ? 0 : -EBUSY;
-}
-
/*
* Configure/autoconfigure the port.
*/
static void pl011_config_port(struct uart_port *port, int flags)
{
- if (flags & UART_CONFIG_TYPE) {
+ if (flags & UART_CONFIG_TYPE)
port->type = PORT_AMBA;
- pl011_request_port(port);
- }
}
/*
@@ -2223,6 +2202,8 @@ static int pl011_verify_port(struct uart_port *port, struct serial_struct *ser)
ret = -EINVAL;
if (ser->baud_base < 9600)
ret = -EINVAL;
+ if (port->mapbase != (unsigned long) ser->iomem_base)
+ ret = -EINVAL;
return ret;
}
@@ -2275,8 +2256,6 @@ static const struct uart_ops amba_pl011_pops = {
.flush_buffer = pl011_dma_flush_buffer,
.set_termios = pl011_set_termios,
.type = pl011_type,
- .release_port = pl011_release_port,
- .request_port = pl011_request_port,
.config_port = pl011_config_port,
.verify_port = pl011_verify_port,
#ifdef CONFIG_CONSOLE_POLL
@@ -2306,8 +2285,6 @@ static const struct uart_ops sbsa_uart_pops = {
.shutdown = sbsa_uart_shutdown,
.set_termios = sbsa_uart_set_termios,
.type = pl011_type,
- .release_port = pl011_release_port,
- .request_port = pl011_request_port,
.config_port = pl011_config_port,
.verify_port = pl011_verify_port,
#ifdef CONFIG_CONSOLE_POLL
diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
index 2c99a47a2535..269b4500e9e7 100644
--- a/drivers/tty/serial/atmel_serial.c
+++ b/drivers/tty/serial/atmel_serial.c
@@ -1004,6 +1004,13 @@ static void atmel_tx_dma(struct uart_port *port)
desc->callback = atmel_complete_tx_dma;
desc->callback_param = atmel_port;
atmel_port->cookie_tx = dmaengine_submit(desc);
+ if (dma_submit_error(atmel_port->cookie_tx)) {
+ dev_err(port->dev, "dma_submit_error %d\n",
+ atmel_port->cookie_tx);
+ return;
+ }
+
+ dma_async_issue_pending(chan);
}
if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
@@ -1258,6 +1265,13 @@ static int atmel_prepare_rx_dma(struct uart_port *port)
desc->callback_param = port;
atmel_port->desc_rx = desc;
atmel_port->cookie_rx = dmaengine_submit(desc);
+ if (dma_submit_error(atmel_port->cookie_rx)) {
+ dev_err(port->dev, "dma_submit_error %d\n",
+ atmel_port->cookie_rx);
+ goto chan_err;
+ }
+
+ dma_async_issue_pending(atmel_port->chan_rx);
return 0;
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index 90f82e6c54e4..6f7f382d0b1f 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -486,18 +486,21 @@ static void imx_uart_stop_tx(struct uart_port *port)
static void imx_uart_stop_rx(struct uart_port *port)
{
struct imx_port *sport = (struct imx_port *)port;
- u32 ucr1, ucr2;
+ u32 ucr1, ucr2, ucr4;
ucr1 = imx_uart_readl(sport, UCR1);
ucr2 = imx_uart_readl(sport, UCR2);
+ ucr4 = imx_uart_readl(sport, UCR4);
if (sport->dma_is_enabled) {
ucr1 &= ~(UCR1_RXDMAEN | UCR1_ATDMAEN);
} else {
ucr1 &= ~UCR1_RRDYEN;
ucr2 &= ~UCR2_ATEN;
+ ucr4 &= ~UCR4_OREN;
}
imx_uart_writel(sport, ucr1, UCR1);
+ imx_uart_writel(sport, ucr4, UCR4);
ucr2 &= ~UCR2_RXEN;
imx_uart_writel(sport, ucr2, UCR2);
@@ -1544,7 +1547,7 @@ static void imx_uart_shutdown(struct uart_port *port)
imx_uart_writel(sport, ucr1, UCR1);
ucr4 = imx_uart_readl(sport, UCR4);
- ucr4 &= ~(UCR4_OREN | UCR4_TCEN);
+ ucr4 &= ~UCR4_TCEN;
imx_uart_writel(sport, ucr4, UCR4);
spin_unlock_irqrestore(&sport->port.lock, flags);
diff --git a/drivers/tty/serial/liteuart.c b/drivers/tty/serial/liteuart.c
index 2941659e5274..7f74bf7bdcff 100644
--- a/drivers/tty/serial/liteuart.c
+++ b/drivers/tty/serial/liteuart.c
@@ -436,4 +436,4 @@ module_exit(liteuart_exit);
MODULE_AUTHOR("Antmicro <www.antmicro.com>");
MODULE_DESCRIPTION("LiteUART serial driver");
MODULE_LICENSE("GPL v2");
-MODULE_ALIAS("platform: liteuart");
+MODULE_ALIAS("platform:liteuart");
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index 61e3dd0222af..dc6129ddef85 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -162,7 +162,7 @@ static void uart_port_dtr_rts(struct uart_port *uport, int raise)
int RTS_after_send = !!(uport->rs485.flags & SER_RS485_RTS_AFTER_SEND);
if (raise) {
- if (rs485_on && !RTS_after_send) {
+ if (rs485_on && RTS_after_send) {
uart_set_mctrl(uport, TIOCM_DTR);
uart_clear_mctrl(uport, TIOCM_RTS);
} else {
@@ -171,7 +171,7 @@ static void uart_port_dtr_rts(struct uart_port *uport, int raise)
} else {
unsigned int clear = TIOCM_DTR;
- clear |= (!rs485_on || !RTS_after_send) ? TIOCM_RTS : 0;
+ clear |= (!rs485_on || RTS_after_send) ? TIOCM_RTS : 0;
uart_clear_mctrl(uport, clear);
}
}
@@ -2393,7 +2393,8 @@ uart_configure_port(struct uart_driver *drv, struct uart_state *state,
* We probably don't need a spinlock around this, but
*/
spin_lock_irqsave(&port->lock, flags);
- port->ops->set_mctrl(port, port->mctrl & TIOCM_DTR);
+ port->mctrl &= TIOCM_DTR;
+ port->ops->set_mctrl(port, port->mctrl);
spin_unlock_irqrestore(&port->lock, flags);
/*
diff --git a/drivers/tty/serial/stm32-usart.c b/drivers/tty/serial/stm32-usart.c
index 3244e7f6818c..6cfc3bec6749 100644
--- a/drivers/tty/serial/stm32-usart.c
+++ b/drivers/tty/serial/stm32-usart.c
@@ -883,6 +883,11 @@ static void stm32_usart_shutdown(struct uart_port *port)
u32 val, isr;
int ret;
+ if (stm32_port->tx_dma_busy) {
+ dmaengine_terminate_async(stm32_port->tx_ch);
+ stm32_usart_clr_bits(port, ofs->cr3, USART_CR3_DMAT);
+ }
+
/* Disable modem control interrupts */
stm32_usart_disable_ms(port);
@@ -1570,7 +1575,6 @@ static int stm32_usart_serial_remove(struct platform_device *pdev)
writel_relaxed(cr3, port->membase + ofs->cr3);
if (stm32_port->tx_ch) {
- dmaengine_terminate_async(stm32_port->tx_ch);
stm32_usart_of_dma_tx_remove(stm32_port, pdev);
dma_release_channel(stm32_port->tx_ch);
}
diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
index d3d9566e5dbd..e1fa52d31474 100644
--- a/drivers/tty/serial/uartlite.c
+++ b/drivers/tty/serial/uartlite.c
@@ -626,7 +626,7 @@ static struct uart_driver ulite_uart_driver = {
*
* Returns: 0 on success, <0 otherwise
*/
-static int ulite_assign(struct device *dev, int id, u32 base, int irq,
+static int ulite_assign(struct device *dev, int id, phys_addr_t base, int irq,
struct uartlite_data *pdata)
{
struct uart_port *port;
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 3bc4a86c3d0a..ac6c5ccfe1cb 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1110,7 +1110,10 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type)
} else {
hub_power_on(hub, true);
}
- }
+ /* Give some time on remote wakeup to let links to transit to U0 */
+ } else if (hub_is_superspeed(hub->hdev))
+ msleep(20);
+
init2:
/*
diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
index ab8d7dad9f56..43cf49c4e5e5 100644
--- a/drivers/usb/dwc2/gadget.c
+++ b/drivers/usb/dwc2/gadget.c
@@ -4974,7 +4974,18 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
hsotg->params.g_np_tx_fifo_size);
dev_dbg(dev, "RXFIFO size: %d\n", hsotg->params.g_rx_fifo_size);
- hsotg->gadget.max_speed = USB_SPEED_HIGH;
+ switch (hsotg->params.speed) {
+ case DWC2_SPEED_PARAM_LOW:
+ hsotg->gadget.max_speed = USB_SPEED_LOW;
+ break;
+ case DWC2_SPEED_PARAM_FULL:
+ hsotg->gadget.max_speed = USB_SPEED_FULL;
+ break;
+ default:
+ hsotg->gadget.max_speed = USB_SPEED_HIGH;
+ break;
+ }
+
hsotg->gadget.ops = &dwc2_hsotg_gadget_ops;
hsotg->gadget.name = dev_name(dev);
hsotg->gadget.otg_caps = &hsotg->params.otg_caps;
diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
index 13c779a28e94..f63a27d11fac 100644
--- a/drivers/usb/dwc2/hcd.c
+++ b/drivers/usb/dwc2/hcd.c
@@ -4399,11 +4399,12 @@ static int _dwc2_hcd_suspend(struct usb_hcd *hcd)
* If not hibernation nor partial power down are supported,
* clock gating is used to save power.
*/
- if (!hsotg->params.no_clock_gating)
+ if (!hsotg->params.no_clock_gating) {
dwc2_host_enter_clock_gating(hsotg);
- /* After entering suspend, hardware is not accessible */
- clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+ /* After entering suspend, hardware is not accessible */
+ clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+ }
break;
default:
goto skip_power_saving;
diff --git a/drivers/usb/dwc3/dwc3-meson-g12a.c b/drivers/usb/dwc3/dwc3-meson-g12a.c
index d0f9b7c296b0..bd814df3bf8b 100644
--- a/drivers/usb/dwc3/dwc3-meson-g12a.c
+++ b/drivers/usb/dwc3/dwc3-meson-g12a.c
@@ -755,16 +755,16 @@ static int dwc3_meson_g12a_probe(struct platform_device *pdev)
ret = dwc3_meson_g12a_get_phys(priv);
if (ret)
- goto err_disable_clks;
+ goto err_rearm;
ret = priv->drvdata->setup_regmaps(priv, base);
if (ret)
- goto err_disable_clks;
+ goto err_rearm;
if (priv->vbus) {
ret = regulator_enable(priv->vbus);
if (ret)
- goto err_disable_clks;
+ goto err_rearm;
}
/* Get dr_mode */
@@ -825,6 +825,9 @@ static int dwc3_meson_g12a_probe(struct platform_device *pdev)
if (priv->vbus)
regulator_disable(priv->vbus);
+err_rearm:
+ reset_control_rearm(priv->reset);
+
err_disable_clks:
clk_bulk_disable_unprepare(priv->drvdata->num_clks,
priv->drvdata->clks);
@@ -852,6 +855,8 @@ static int dwc3_meson_g12a_remove(struct platform_device *pdev)
pm_runtime_put_noidle(dev);
pm_runtime_set_suspended(dev);
+ reset_control_rearm(priv->reset);
+
clk_bulk_disable_unprepare(priv->drvdata->num_clks,
priv->drvdata->clks);
@@ -892,7 +897,7 @@ static int __maybe_unused dwc3_meson_g12a_suspend(struct device *dev)
phy_exit(priv->phys[i]);
}
- reset_control_assert(priv->reset);
+ reset_control_rearm(priv->reset);
return 0;
}
@@ -902,7 +907,9 @@ static int __maybe_unused dwc3_meson_g12a_resume(struct device *dev)
struct dwc3_meson_g12a *priv = dev_get_drvdata(dev);
int i, ret;
- reset_control_deassert(priv->reset);
+ ret = reset_control_reset(priv->reset);
+ if (ret)
+ return ret;
ret = priv->drvdata->usb_init(priv);
if (ret)
diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
index 3cb01cdd02c2..b81a9e1c1315 100644
--- a/drivers/usb/dwc3/dwc3-qcom.c
+++ b/drivers/usb/dwc3/dwc3-qcom.c
@@ -769,9 +769,12 @@ static int dwc3_qcom_probe(struct platform_device *pdev)
if (qcom->acpi_pdata->is_urs) {
qcom->urs_usb = dwc3_qcom_create_urs_usb_platdev(dev);
- if (!qcom->urs_usb) {
+ if (IS_ERR_OR_NULL(qcom->urs_usb)) {
dev_err(dev, "failed to create URS USB platdev\n");
- return -ENODEV;
+ if (!qcom->urs_usb)
+ return -ENODEV;
+ else
+ return PTR_ERR(qcom->urs_usb);
}
}
}
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
index a7e069b18544..25ad1e97a458 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -614,7 +614,7 @@ static int ffs_ep0_open(struct inode *inode, struct file *file)
file->private_data = ffs;
ffs_data_opened(ffs);
- return 0;
+ return stream_open(inode, file);
}
static int ffs_ep0_release(struct inode *inode, struct file *file)
@@ -1154,7 +1154,7 @@ ffs_epfile_open(struct inode *inode, struct file *file)
file->private_data = epfile;
ffs_data_opened(epfile->ffs);
- return 0;
+ return stream_open(inode, file);
}
static int ffs_aio_cancel(struct kiocb *kiocb)
diff --git a/drivers/usb/gadget/function/u_audio.c b/drivers/usb/gadget/function/u_audio.c
index c46400be5464..4561d7a183ff 100644
--- a/drivers/usb/gadget/function/u_audio.c
+++ b/drivers/usb/gadget/function/u_audio.c
@@ -76,8 +76,8 @@ struct snd_uac_chip {
struct snd_pcm *pcm;
/* pre-calculated values for playback iso completion */
- unsigned long long p_interval_mil;
unsigned long long p_residue_mil;
+ unsigned int p_interval;
unsigned int p_framesize;
};
@@ -194,21 +194,24 @@ static void u_audio_iso_complete(struct usb_ep *ep, struct usb_request *req)
* If there is a residue from this division, add it to the
* residue accumulator.
*/
+ unsigned long long p_interval_mil = uac->p_interval * 1000000ULL;
+
pitched_rate_mil = (unsigned long long)
params->p_srate * prm->pitch;
div_result = pitched_rate_mil;
- do_div(div_result, uac->p_interval_mil);
+ do_div(div_result, uac->p_interval);
+ do_div(div_result, 1000000);
frames = (unsigned int) div_result;
pr_debug("p_srate %d, pitch %d, interval_mil %llu, frames %d\n",
- params->p_srate, prm->pitch, uac->p_interval_mil, frames);
+ params->p_srate, prm->pitch, p_interval_mil, frames);
p_pktsize = min_t(unsigned int,
uac->p_framesize * frames,
ep->maxpacket);
if (p_pktsize < ep->maxpacket) {
- residue_frames_mil = pitched_rate_mil - frames * uac->p_interval_mil;
+ residue_frames_mil = pitched_rate_mil - frames * p_interval_mil;
p_pktsize_residue_mil = uac->p_framesize * residue_frames_mil;
} else
p_pktsize_residue_mil = 0;
@@ -222,11 +225,11 @@ static void u_audio_iso_complete(struct usb_ep *ep, struct usb_request *req)
* size and decrease the accumulator.
*/
div_result = uac->p_residue_mil;
- do_div(div_result, uac->p_interval_mil);
+ do_div(div_result, uac->p_interval);
+ do_div(div_result, 1000000);
if ((unsigned int) div_result >= uac->p_framesize) {
req->length += uac->p_framesize;
- uac->p_residue_mil -= uac->p_framesize *
- uac->p_interval_mil;
+ uac->p_residue_mil -= uac->p_framesize * p_interval_mil;
pr_debug("increased req length to %d\n", req->length);
}
pr_debug("remains uac->p_residue_mil %llu\n", uac->p_residue_mil);
@@ -591,7 +594,7 @@ int u_audio_start_playback(struct g_audio *audio_dev)
unsigned int factor;
const struct usb_endpoint_descriptor *ep_desc;
int req_len, i;
- unsigned int p_interval, p_pktsize;
+ unsigned int p_pktsize;
ep = audio_dev->in_ep;
prm = &uac->p_prm;
@@ -612,11 +615,10 @@ int u_audio_start_playback(struct g_audio *audio_dev)
/* pre-compute some values for iso_complete() */
uac->p_framesize = params->p_ssize *
num_channels(params->p_chmask);
- p_interval = factor / (1 << (ep_desc->bInterval - 1));
- uac->p_interval_mil = (unsigned long long) p_interval * 1000000;
+ uac->p_interval = factor / (1 << (ep_desc->bInterval - 1));
p_pktsize = min_t(unsigned int,
uac->p_framesize *
- (params->p_srate / p_interval),
+ (params->p_srate / uac->p_interval),
ep->maxpacket);
req_len = p_pktsize;
@@ -1145,7 +1147,7 @@ int g_audio_setup(struct g_audio *g_audio, const char *pcm_name,
}
kctl->id.device = pcm->device;
- kctl->id.subdevice = i;
+ kctl->id.subdevice = 0;
err = snd_ctl_add(card, kctl);
if (err < 0)
@@ -1168,7 +1170,7 @@ int g_audio_setup(struct g_audio *g_audio, const char *pcm_name,
}
kctl->id.device = pcm->device;
- kctl->id.subdevice = i;
+ kctl->id.subdevice = 0;
kctl->tlv.c = u_audio_volume_tlv;
diff --git a/drivers/usb/host/ehci-brcm.c b/drivers/usb/host/ehci-brcm.c
index d3626bfa966b..6a0f64c9e5e8 100644
--- a/drivers/usb/host/ehci-brcm.c
+++ b/drivers/usb/host/ehci-brcm.c
@@ -62,8 +62,12 @@ static int ehci_brcm_hub_control(
u32 __iomem *status_reg;
unsigned long flags;
int retval, irq_disabled = 0;
+ u32 temp;
- status_reg = &ehci->regs->port_status[(wIndex & 0xff) - 1];
+ temp = (wIndex & 0xff) - 1;
+ if (temp >= HCS_N_PORTS_MAX) /* Avoid index-out-of-bounds warning */
+ temp = 0;
+ status_reg = &ehci->regs->port_status[temp];
/*
* RESUME is cleared when GetPortStatus() is called 20ms after start
diff --git a/drivers/usb/host/uhci-platform.c b/drivers/usb/host/uhci-platform.c
index 70dbd95c3f06..be9e9db7cad1 100644
--- a/drivers/usb/host/uhci-platform.c
+++ b/drivers/usb/host/uhci-platform.c
@@ -113,7 +113,8 @@ static int uhci_hcd_platform_probe(struct platform_device *pdev)
num_ports);
}
if (of_device_is_compatible(np, "aspeed,ast2400-uhci") ||
- of_device_is_compatible(np, "aspeed,ast2500-uhci")) {
+ of_device_is_compatible(np, "aspeed,ast2500-uhci") ||
+ of_device_is_compatible(np, "aspeed,ast2600-uhci")) {
uhci->is_aspeed = 1;
dev_info(&pdev->dev,
"Enabled Aspeed implementation workarounds\n");
diff --git a/drivers/usb/misc/ftdi-elan.c b/drivers/usb/misc/ftdi-elan.c
index e5a8fcdbb78e..6c38c62d29b2 100644
--- a/drivers/usb/misc/ftdi-elan.c
+++ b/drivers/usb/misc/ftdi-elan.c
@@ -202,6 +202,7 @@ static void ftdi_elan_delete(struct kref *kref)
mutex_unlock(&ftdi_module_lock);
kfree(ftdi->bulk_in_buffer);
ftdi->bulk_in_buffer = NULL;
+ kfree(ftdi);
}
static void ftdi_elan_put_kref(struct usb_ftdi *ftdi)
diff --git a/drivers/vdpa/ifcvf/ifcvf_base.c b/drivers/vdpa/ifcvf/ifcvf_base.c
index 2808f1ba9f7b..7d41dfe48ade 100644
--- a/drivers/vdpa/ifcvf/ifcvf_base.c
+++ b/drivers/vdpa/ifcvf/ifcvf_base.c
@@ -143,8 +143,8 @@ int ifcvf_init_hw(struct ifcvf_hw *hw, struct pci_dev *pdev)
IFCVF_DBG(pdev, "hw->isr = %p\n", hw->isr);
break;
case VIRTIO_PCI_CAP_DEVICE_CFG:
- hw->net_cfg = get_cap_addr(hw, &cap);
- IFCVF_DBG(pdev, "hw->net_cfg = %p\n", hw->net_cfg);
+ hw->dev_cfg = get_cap_addr(hw, &cap);
+ IFCVF_DBG(pdev, "hw->dev_cfg = %p\n", hw->dev_cfg);
break;
}
@@ -153,7 +153,7 @@ int ifcvf_init_hw(struct ifcvf_hw *hw, struct pci_dev *pdev)
}
if (hw->common_cfg == NULL || hw->notify_base == NULL ||
- hw->isr == NULL || hw->net_cfg == NULL) {
+ hw->isr == NULL || hw->dev_cfg == NULL) {
IFCVF_ERR(pdev, "Incomplete PCI capabilities\n");
return -EIO;
}
@@ -174,7 +174,7 @@ int ifcvf_init_hw(struct ifcvf_hw *hw, struct pci_dev *pdev)
IFCVF_DBG(pdev,
"PCI capability mapping: common cfg: %p, notify base: %p\n, isr cfg: %p, device cfg: %p, multiplier: %u\n",
hw->common_cfg, hw->notify_base, hw->isr,
- hw->net_cfg, hw->notify_off_multiplier);
+ hw->dev_cfg, hw->notify_off_multiplier);
return 0;
}
@@ -242,33 +242,54 @@ int ifcvf_verify_min_features(struct ifcvf_hw *hw, u64 features)
return 0;
}
-void ifcvf_read_net_config(struct ifcvf_hw *hw, u64 offset,
+u32 ifcvf_get_config_size(struct ifcvf_hw *hw)
+{
+ struct ifcvf_adapter *adapter;
+ u32 config_size;
+
+ adapter = vf_to_adapter(hw);
+ switch (hw->dev_type) {
+ case VIRTIO_ID_NET:
+ config_size = sizeof(struct virtio_net_config);
+ break;
+ case VIRTIO_ID_BLOCK:
+ config_size = sizeof(struct virtio_blk_config);
+ break;
+ default:
+ config_size = 0;
+ IFCVF_ERR(adapter->pdev, "VIRTIO ID %u not supported\n", hw->dev_type);
+ }
+
+ return config_size;
+}
+
+void ifcvf_read_dev_config(struct ifcvf_hw *hw, u64 offset,
void *dst, int length)
{
u8 old_gen, new_gen, *p;
int i;
- WARN_ON(offset + length > sizeof(struct virtio_net_config));
+ WARN_ON(offset + length > hw->config_size);
do {
old_gen = ifc_ioread8(&hw->common_cfg->config_generation);
p = dst;
for (i = 0; i < length; i++)
- *p++ = ifc_ioread8(hw->net_cfg + offset + i);
+ *p++ = ifc_ioread8(hw->dev_cfg + offset + i);
new_gen = ifc_ioread8(&hw->common_cfg->config_generation);
} while (old_gen != new_gen);
}
-void ifcvf_write_net_config(struct ifcvf_hw *hw, u64 offset,
+void ifcvf_write_dev_config(struct ifcvf_hw *hw, u64 offset,
const void *src, int length)
{
const u8 *p;
int i;
p = src;
- WARN_ON(offset + length > sizeof(struct virtio_net_config));
+ WARN_ON(offset + length > hw->config_size);
for (i = 0; i < length; i++)
- ifc_iowrite8(*p++, hw->net_cfg + offset + i);
+ ifc_iowrite8(*p++, hw->dev_cfg + offset + i);
}
static void ifcvf_set_features(struct ifcvf_hw *hw, u64 features)
diff --git a/drivers/vdpa/ifcvf/ifcvf_base.h b/drivers/vdpa/ifcvf/ifcvf_base.h
index 09918af3ecf8..c486873f370a 100644
--- a/drivers/vdpa/ifcvf/ifcvf_base.h
+++ b/drivers/vdpa/ifcvf/ifcvf_base.h
@@ -71,12 +71,14 @@ struct ifcvf_hw {
u64 hw_features;
u32 dev_type;
struct virtio_pci_common_cfg __iomem *common_cfg;
- void __iomem *net_cfg;
+ void __iomem *dev_cfg;
struct vring_info vring[IFCVF_MAX_QUEUES];
void __iomem * const *base;
char config_msix_name[256];
struct vdpa_callback config_cb;
unsigned int config_irq;
+ /* virtio-net or virtio-blk device config size */
+ u32 config_size;
};
struct ifcvf_adapter {
@@ -105,9 +107,9 @@ int ifcvf_init_hw(struct ifcvf_hw *hw, struct pci_dev *dev);
int ifcvf_start_hw(struct ifcvf_hw *hw);
void ifcvf_stop_hw(struct ifcvf_hw *hw);
void ifcvf_notify_queue(struct ifcvf_hw *hw, u16 qid);
-void ifcvf_read_net_config(struct ifcvf_hw *hw, u64 offset,
+void ifcvf_read_dev_config(struct ifcvf_hw *hw, u64 offset,
void *dst, int length);
-void ifcvf_write_net_config(struct ifcvf_hw *hw, u64 offset,
+void ifcvf_write_dev_config(struct ifcvf_hw *hw, u64 offset,
const void *src, int length);
u8 ifcvf_get_status(struct ifcvf_hw *hw);
void ifcvf_set_status(struct ifcvf_hw *hw, u8 status);
@@ -120,4 +122,5 @@ u16 ifcvf_get_vq_state(struct ifcvf_hw *hw, u16 qid);
int ifcvf_set_vq_state(struct ifcvf_hw *hw, u16 qid, u16 num);
struct ifcvf_adapter *vf_to_adapter(struct ifcvf_hw *hw);
int ifcvf_probed_virtio_net(struct ifcvf_hw *hw);
+u32 ifcvf_get_config_size(struct ifcvf_hw *hw);
#endif /* _IFCVF_H_ */
diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
index 6dc75ca70b37..92ba7126e5d6 100644
--- a/drivers/vdpa/ifcvf/ifcvf_main.c
+++ b/drivers/vdpa/ifcvf/ifcvf_main.c
@@ -366,24 +366,9 @@ static u32 ifcvf_vdpa_get_vq_align(struct vdpa_device *vdpa_dev)
static size_t ifcvf_vdpa_get_config_size(struct vdpa_device *vdpa_dev)
{
- struct ifcvf_adapter *adapter = vdpa_to_adapter(vdpa_dev);
struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev);
- struct pci_dev *pdev = adapter->pdev;
- size_t size;
-
- switch (vf->dev_type) {
- case VIRTIO_ID_NET:
- size = sizeof(struct virtio_net_config);
- break;
- case VIRTIO_ID_BLOCK:
- size = sizeof(struct virtio_blk_config);
- break;
- default:
- size = 0;
- IFCVF_ERR(pdev, "VIRTIO ID %u not supported\n", vf->dev_type);
- }
- return size;
+ return vf->config_size;
}
static void ifcvf_vdpa_get_config(struct vdpa_device *vdpa_dev,
@@ -392,8 +377,7 @@ static void ifcvf_vdpa_get_config(struct vdpa_device *vdpa_dev,
{
struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev);
- WARN_ON(offset + len > sizeof(struct virtio_net_config));
- ifcvf_read_net_config(vf, offset, buf, len);
+ ifcvf_read_dev_config(vf, offset, buf, len);
}
static void ifcvf_vdpa_set_config(struct vdpa_device *vdpa_dev,
@@ -402,8 +386,7 @@ static void ifcvf_vdpa_set_config(struct vdpa_device *vdpa_dev,
{
struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev);
- WARN_ON(offset + len > sizeof(struct virtio_net_config));
- ifcvf_write_net_config(vf, offset, buf, len);
+ ifcvf_write_dev_config(vf, offset, buf, len);
}
static void ifcvf_vdpa_set_config_cb(struct vdpa_device *vdpa_dev,
@@ -542,6 +525,7 @@ static int ifcvf_vdpa_dev_add(struct vdpa_mgmt_dev *mdev, const char *name,
vf->vring[i].irq = -EINVAL;
vf->hw_features = ifcvf_get_hw_features(vf);
+ vf->config_size = ifcvf_get_config_size(vf);
adapter->vdpa.mdev = &ifcvf_mgmt_dev->mdev;
ret = _vdpa_register_device(&adapter->vdpa, vf->nr_vring);
diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c
index 63813fbb5f62..ef6da39ccb3f 100644
--- a/drivers/vdpa/mlx5/net/mlx5_vnet.c
+++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c
@@ -876,8 +876,6 @@ static int create_virtqueue(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtque
MLX5_SET(virtio_q, vq_ctx, umem_3_id, mvq->umem3.id);
MLX5_SET(virtio_q, vq_ctx, umem_3_size, mvq->umem3.size);
MLX5_SET(virtio_q, vq_ctx, pd, ndev->mvdev.res.pdn);
- if (MLX5_CAP_DEV_VDPA_EMULATION(ndev->mvdev.mdev, eth_frame_offload_type))
- MLX5_SET(virtio_q, vq_ctx, virtio_version_1_0, 1);
err = mlx5_cmd_exec(ndev->mvdev.mdev, in, inlen, out, sizeof(out));
if (err)
@@ -1554,9 +1552,11 @@ static int change_num_qps(struct mlx5_vdpa_dev *mvdev, int newqps)
return 0;
clean_added:
- for (--i; i >= cur_qps; --i)
+ for (--i; i >= 2 * cur_qps; --i)
teardown_vq(ndev, &ndev->vqs[i]);
+ ndev->cur_num_vqs = 2 * cur_qps;
+
return err;
}
@@ -2676,7 +2676,7 @@ static int mlx5v_probe(struct auxiliary_device *adev,
mgtdev->mgtdev.ops = &mdev_ops;
mgtdev->mgtdev.device = mdev->device;
mgtdev->mgtdev.id_table = id_table;
- mgtdev->mgtdev.config_attr_mask = (1 << VDPA_ATTR_DEV_NET_CFG_MACADDR);
+ mgtdev->mgtdev.config_attr_mask = BIT_ULL(VDPA_ATTR_DEV_NET_CFG_MACADDR);
mgtdev->madev = madev;
err = vdpa_mgmtdev_register(&mgtdev->mgtdev);
diff --git a/drivers/video/backlight/qcom-wled.c b/drivers/video/backlight/qcom-wled.c
index d094299c2a48..f12c76d6e61d 100644
--- a/drivers/video/backlight/qcom-wled.c
+++ b/drivers/video/backlight/qcom-wled.c
@@ -231,14 +231,14 @@ struct wled {
static int wled3_set_brightness(struct wled *wled, u16 brightness)
{
int rc, i;
- u8 v[2];
+ __le16 v;
- v[0] = brightness & 0xff;
- v[1] = (brightness >> 8) & 0xf;
+ v = cpu_to_le16(brightness & WLED3_SINK_REG_BRIGHT_MAX);
for (i = 0; i < wled->cfg.num_strings; ++i) {
rc = regmap_bulk_write(wled->regmap, wled->ctrl_addr +
- WLED3_SINK_REG_BRIGHT(i), v, 2);
+ WLED3_SINK_REG_BRIGHT(wled->cfg.enabled_strings[i]),
+ &v, sizeof(v));
if (rc < 0)
return rc;
}
@@ -250,18 +250,18 @@ static int wled4_set_brightness(struct wled *wled, u16 brightness)
{
int rc, i;
u16 low_limit = wled->max_brightness * 4 / 1000;
- u8 v[2];
+ __le16 v;
/* WLED4's lower limit of operation is 0.4% */
if (brightness > 0 && brightness < low_limit)
brightness = low_limit;
- v[0] = brightness & 0xff;
- v[1] = (brightness >> 8) & 0xf;
+ v = cpu_to_le16(brightness & WLED3_SINK_REG_BRIGHT_MAX);
for (i = 0; i < wled->cfg.num_strings; ++i) {
rc = regmap_bulk_write(wled->regmap, wled->sink_addr +
- WLED4_SINK_REG_BRIGHT(i), v, 2);
+ WLED4_SINK_REG_BRIGHT(wled->cfg.enabled_strings[i]),
+ &v, sizeof(v));
if (rc < 0)
return rc;
}
@@ -273,21 +273,20 @@ static int wled5_set_brightness(struct wled *wled, u16 brightness)
{
int rc, offset;
u16 low_limit = wled->max_brightness * 1 / 1000;
- u8 v[2];
+ __le16 v;
/* WLED5's lower limit is 0.1% */
if (brightness < low_limit)
brightness = low_limit;
- v[0] = brightness & 0xff;
- v[1] = (brightness >> 8) & 0x7f;
+ v = cpu_to_le16(brightness & WLED5_SINK_REG_BRIGHT_MAX_15B);
offset = (wled->cfg.mod_sel == MOD_A) ?
WLED5_SINK_REG_MOD_A_BRIGHTNESS_LSB :
WLED5_SINK_REG_MOD_B_BRIGHTNESS_LSB;
rc = regmap_bulk_write(wled->regmap, wled->sink_addr + offset,
- v, 2);
+ &v, sizeof(v));
return rc;
}
@@ -572,7 +571,7 @@ static irqreturn_t wled_short_irq_handler(int irq, void *_wled)
static void wled_auto_string_detection(struct wled *wled)
{
- int rc = 0, i, delay_time_us;
+ int rc = 0, i, j, delay_time_us;
u32 sink_config = 0;
u8 sink_test = 0, sink_valid = 0, val;
bool fault_set;
@@ -619,14 +618,15 @@ static void wled_auto_string_detection(struct wled *wled)
/* Iterate through the strings one by one */
for (i = 0; i < wled->cfg.num_strings; i++) {
- sink_test = BIT((WLED4_SINK_REG_CURR_SINK_SHFT + i));
+ j = wled->cfg.enabled_strings[i];
+ sink_test = BIT((WLED4_SINK_REG_CURR_SINK_SHFT + j));
/* Enable feedback control */
rc = regmap_write(wled->regmap, wled->ctrl_addr +
- WLED3_CTRL_REG_FEEDBACK_CONTROL, i + 1);
+ WLED3_CTRL_REG_FEEDBACK_CONTROL, j + 1);
if (rc < 0) {
dev_err(wled->dev, "Failed to enable feedback for SINK %d rc = %d\n",
- i + 1, rc);
+ j + 1, rc);
goto failed_detect;
}
@@ -635,7 +635,7 @@ static void wled_auto_string_detection(struct wled *wled)
WLED4_SINK_REG_CURR_SINK, sink_test);
if (rc < 0) {
dev_err(wled->dev, "Failed to configure SINK %d rc=%d\n",
- i + 1, rc);
+ j + 1, rc);
goto failed_detect;
}
@@ -662,7 +662,7 @@ static void wled_auto_string_detection(struct wled *wled)
if (fault_set)
dev_dbg(wled->dev, "WLED OVP fault detected with SINK %d\n",
- i + 1);
+ j + 1);
else
sink_valid |= sink_test;
@@ -702,15 +702,16 @@ static void wled_auto_string_detection(struct wled *wled)
/* Enable valid sinks */
if (wled->version == 4) {
for (i = 0; i < wled->cfg.num_strings; i++) {
+ j = wled->cfg.enabled_strings[i];
if (sink_config &
- BIT(WLED4_SINK_REG_CURR_SINK_SHFT + i))
+ BIT(WLED4_SINK_REG_CURR_SINK_SHFT + j))
val = WLED4_SINK_REG_STR_MOD_MASK;
else
/* Disable modulator_en for unused sink */
val = 0;
rc = regmap_write(wled->regmap, wled->sink_addr +
- WLED4_SINK_REG_STR_MOD_EN(i), val);
+ WLED4_SINK_REG_STR_MOD_EN(j), val);
if (rc < 0) {
dev_err(wled->dev, "Failed to configure MODULATOR_EN rc=%d\n",
rc);
@@ -1256,21 +1257,6 @@ static const struct wled_var_cfg wled5_ovp_cfg = {
.size = 16,
};
-static u32 wled3_num_strings_values_fn(u32 idx)
-{
- return idx + 1;
-}
-
-static const struct wled_var_cfg wled3_num_strings_cfg = {
- .fn = wled3_num_strings_values_fn,
- .size = 3,
-};
-
-static const struct wled_var_cfg wled4_num_strings_cfg = {
- .fn = wled3_num_strings_values_fn,
- .size = 4,
-};
-
static u32 wled3_switch_freq_values_fn(u32 idx)
{
return 19200 / (2 * (1 + idx));
@@ -1344,11 +1330,6 @@ static int wled_configure(struct wled *wled)
.val_ptr = &cfg->switch_freq,
.cfg = &wled3_switch_freq_cfg,
},
- {
- .name = "qcom,num-strings",
- .val_ptr = &cfg->num_strings,
- .cfg = &wled3_num_strings_cfg,
- },
};
const struct wled_u32_opts wled4_opts[] = {
@@ -1372,11 +1353,6 @@ static int wled_configure(struct wled *wled)
.val_ptr = &cfg->switch_freq,
.cfg = &wled3_switch_freq_cfg,
},
- {
- .name = "qcom,num-strings",
- .val_ptr = &cfg->num_strings,
- .cfg = &wled4_num_strings_cfg,
- },
};
const struct wled_u32_opts wled5_opts[] = {
@@ -1400,11 +1376,6 @@ static int wled_configure(struct wled *wled)
.val_ptr = &cfg->switch_freq,
.cfg = &wled3_switch_freq_cfg,
},
- {
- .name = "qcom,num-strings",
- .val_ptr = &cfg->num_strings,
- .cfg = &wled4_num_strings_cfg,
- },
{
.name = "qcom,modulator-sel",
.val_ptr = &cfg->mod_sel,
@@ -1523,16 +1494,57 @@ static int wled_configure(struct wled *wled)
*bool_opts[i].val_ptr = true;
}
- cfg->num_strings = cfg->num_strings + 1;
-
string_len = of_property_count_elems_of_size(dev->of_node,
"qcom,enabled-strings",
sizeof(u32));
- if (string_len > 0)
- of_property_read_u32_array(dev->of_node,
+ if (string_len > 0) {
+ if (string_len > wled->max_string_count) {
+ dev_err(dev, "Cannot have more than %d strings\n",
+ wled->max_string_count);
+ return -EINVAL;
+ }
+
+ rc = of_property_read_u32_array(dev->of_node,
"qcom,enabled-strings",
wled->cfg.enabled_strings,
- sizeof(u32));
+ string_len);
+ if (rc) {
+ dev_err(dev, "Failed to read %d elements from qcom,enabled-strings: %d\n",
+ string_len, rc);
+ return rc;
+ }
+
+ for (i = 0; i < string_len; ++i) {
+ if (wled->cfg.enabled_strings[i] >= wled->max_string_count) {
+ dev_err(dev,
+ "qcom,enabled-strings index %d at %d is out of bounds\n",
+ wled->cfg.enabled_strings[i], i);
+ return -EINVAL;
+ }
+ }
+
+ cfg->num_strings = string_len;
+ }
+
+ rc = of_property_read_u32(dev->of_node, "qcom,num-strings", &val);
+ if (!rc) {
+ if (val < 1 || val > wled->max_string_count) {
+ dev_err(dev, "qcom,num-strings must be between 1 and %d\n",
+ wled->max_string_count);
+ return -EINVAL;
+ }
+
+ if (string_len > 0) {
+ dev_warn(dev, "Only one of qcom,num-strings or qcom,enabled-strings"
+ " should be set\n");
+ if (val > string_len) {
+ dev_err(dev, "qcom,num-strings exceeds qcom,enabled-strings\n");
+ return -EINVAL;
+ }
+ }
+
+ cfg->num_strings = val;
+ }
return 0;
}
diff --git a/drivers/virtio/virtio_mem.c b/drivers/virtio/virtio_mem.c
index 96e5a8782769..b6b7c489c8b6 100644
--- a/drivers/virtio/virtio_mem.c
+++ b/drivers/virtio/virtio_mem.c
@@ -592,7 +592,7 @@ static int virtio_mem_sbm_sb_states_prepare_next_mb(struct virtio_mem *vm)
return -ENOMEM;
mutex_lock(&vm->hotplug_mutex);
- if (new_bitmap)
+ if (vm->sbm.sb_states)
memcpy(new_bitmap, vm->sbm.sb_states, old_pages * PAGE_SIZE);
old_bitmap = vm->sbm.sb_states;
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index 028b05d44546..962f1477b1fa 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -1197,8 +1197,10 @@ static inline int virtqueue_add_packed(struct virtqueue *_vq,
if (virtqueue_use_indirect(_vq, total_sg)) {
err = virtqueue_add_indirect_packed(vq, sgs, total_sg, out_sgs,
in_sgs, data, gfp);
- if (err != -ENOMEM)
+ if (err != -ENOMEM) {
+ END_USE(vq);
return err;
+ }
/* fall back on direct */
}
diff --git a/drivers/w1/slaves/w1_ds28e04.c b/drivers/w1/slaves/w1_ds28e04.c
index e4f336111edc..6cef6e2edb89 100644
--- a/drivers/w1/slaves/w1_ds28e04.c
+++ b/drivers/w1/slaves/w1_ds28e04.c
@@ -32,7 +32,7 @@ static int w1_strong_pullup = 1;
module_param_named(strong_pullup, w1_strong_pullup, int, 0);
/* enable/disable CRC checking on DS28E04-100 memory accesses */
-static char w1_enable_crccheck = 1;
+static bool w1_enable_crccheck = true;
#define W1_EEPROM_SIZE 512
#define W1_PAGE_COUNT 16
@@ -339,32 +339,18 @@ static BIN_ATTR_RW(pio, 1);
static ssize_t crccheck_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
- if (put_user(w1_enable_crccheck + 0x30, buf))
- return -EFAULT;
-
- return sizeof(w1_enable_crccheck);
+ return sysfs_emit(buf, "%d\n", w1_enable_crccheck);
}
static ssize_t crccheck_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
- char val;
-
- if (count != 1 || !buf)
- return -EINVAL;
+ int err = kstrtobool(buf, &w1_enable_crccheck);
- if (get_user(val, buf))
- return -EFAULT;
+ if (err)
+ return err;
- /* convert to decimal */
- val = val - 0x30;
- if (val != 0 && val != 1)
- return -EINVAL;
-
- /* set the new value */
- w1_enable_crccheck = val;
-
- return sizeof(w1_enable_crccheck);
+ return count;
}
static DEVICE_ATTR_RW(crccheck);
diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
index fec1b6537166..59ffea800079 100644
--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -250,13 +250,13 @@ void gntdev_put_map(struct gntdev_priv *priv, struct gntdev_grant_map *map)
if (!refcount_dec_and_test(&map->users))
return;
+ if (map->pages && !use_ptemod)
+ unmap_grant_pages(map, 0, map->count);
+
if (map->notify.flags & UNMAP_NOTIFY_SEND_EVENT) {
notify_remote_via_evtchn(map->notify.event);
evtchn_put(map->notify.event);
}
-
- if (map->pages && !use_ptemod)
- unmap_grant_pages(map, 0, map->count);
gntdev_free_map(map);
}
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
index f735b8798ba1..8b090c40daf7 100644
--- a/fs/btrfs/backref.c
+++ b/fs/btrfs/backref.c
@@ -1214,7 +1214,12 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans,
ret = btrfs_search_slot(NULL, fs_info->extent_root, &key, path, 0, 0);
if (ret < 0)
goto out;
- BUG_ON(ret == 0);
+ if (ret == 0) {
+ /* This shouldn't happen, indicates a bug or fs corruption. */
+ ASSERT(ret != 0);
+ ret = -EUCLEAN;
+ goto out;
+ }
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
if (trans && likely(trans->type != __TRANS_DUMMY) &&
@@ -1360,10 +1365,18 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans,
goto out;
if (!ret && extent_item_pos) {
/*
- * we've recorded that parent, so we must extend
- * its inode list here
+ * We've recorded that parent, so we must extend
+ * its inode list here.
+ *
+ * However if there was corruption we may not
+ * have found an eie, return an error in this
+ * case.
*/
- BUG_ON(!eie);
+ ASSERT(eie);
+ if (!eie) {
+ ret = -EUCLEAN;
+ goto out;
+ }
while (eie->next)
eie = eie->next;
eie->next = ref->inode_list;
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index f704339c6b86..35660791e084 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -1570,12 +1570,9 @@ static struct extent_buffer *btrfs_search_slot_get_root(struct btrfs_root *root,
{
struct btrfs_fs_info *fs_info = root->fs_info;
struct extent_buffer *b;
- int root_lock;
+ int root_lock = 0;
int level = 0;
- /* We try very hard to do read locks on the root */
- root_lock = BTRFS_READ_LOCK;
-
if (p->search_commit_root) {
/*
* The commit roots are read only so we always do read locks,
@@ -1613,6 +1610,9 @@ static struct extent_buffer *btrfs_search_slot_get_root(struct btrfs_root *root,
goto out;
}
+ /* We try very hard to do read locks on the root */
+ root_lock = BTRFS_READ_LOCK;
+
/*
* If the level is set to maximum, we can skip trying to get the read
* lock.
@@ -1639,6 +1639,17 @@ static struct extent_buffer *btrfs_search_slot_get_root(struct btrfs_root *root,
level = btrfs_header_level(b);
out:
+ /*
+ * The root may have failed to write out at some point, and thus is no
+ * longer valid, return an error in this case.
+ */
+ if (!extent_buffer_uptodate(b)) {
+ if (root_lock)
+ btrfs_tree_unlock_rw(b, root_lock);
+ free_extent_buffer(b);
+ return ERR_PTR(-EIO);
+ }
+
p->nodes[level] = b;
if (!p->skip_locking)
p->locks[level] = root_lock;
diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c
index c85a7d44da79..e0238dd5f2f2 100644
--- a/fs/btrfs/dev-replace.c
+++ b/fs/btrfs/dev-replace.c
@@ -322,7 +322,7 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info,
set_blocksize(device->bdev, BTRFS_BDEV_BLOCKSIZE);
device->fs_devices = fs_info->fs_devices;
- ret = btrfs_get_dev_zone_info(device);
+ ret = btrfs_get_dev_zone_info(device, false);
if (ret)
goto error;
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index b3f2e2232326..5f0a879c1043 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -3571,6 +3571,8 @@ int __cold open_ctree(struct super_block *sb, struct btrfs_fs_devices *fs_device
goto fail_sysfs;
}
+ btrfs_free_zone_cache(fs_info);
+
if (!sb_rdonly(sb) && fs_info->fs_devices->missing_devices &&
!btrfs_check_rw_degradable(fs_info, NULL)) {
btrfs_warn(fs_info,
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 25ef6e3fd306..7b4ee1b2d5d8 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -3790,23 +3790,35 @@ static int do_allocation_zoned(struct btrfs_block_group *block_group,
spin_unlock(&fs_info->relocation_bg_lock);
if (skip)
return 1;
+
/* Check RO and no space case before trying to activate it */
spin_lock(&block_group->lock);
if (block_group->ro ||
block_group->alloc_offset == block_group->zone_capacity) {
- spin_unlock(&block_group->lock);
- return 1;
+ ret = 1;
+ /*
+ * May need to clear fs_info->{treelog,data_reloc}_bg.
+ * Return the error after taking the locks.
+ */
}
spin_unlock(&block_group->lock);
- if (!btrfs_zone_activate(block_group))
- return 1;
+ if (!ret && !btrfs_zone_activate(block_group)) {
+ ret = 1;
+ /*
+ * May need to clear fs_info->{treelog,data_reloc}_bg.
+ * Return the error after taking the locks.
+ */
+ }
spin_lock(&space_info->lock);
spin_lock(&block_group->lock);
spin_lock(&fs_info->treelog_bg_lock);
spin_lock(&fs_info->relocation_bg_lock);
+ if (ret)
+ goto out;
+
ASSERT(!ffe_ctl->for_treelog ||
block_group->start == fs_info->treelog_bg ||
fs_info->treelog_bg == 0);
@@ -3947,6 +3959,28 @@ static void found_extent(struct find_free_extent_ctl *ffe_ctl,
}
}
+static bool can_allocate_chunk(struct btrfs_fs_info *fs_info,
+ struct find_free_extent_ctl *ffe_ctl)
+{
+ switch (ffe_ctl->policy) {
+ case BTRFS_EXTENT_ALLOC_CLUSTERED:
+ return true;
+ case BTRFS_EXTENT_ALLOC_ZONED:
+ /*
+ * If we have enough free space left in an already
+ * active block group and we can't activate any other
+ * zone now, do not allow allocating a new chunk and
+ * let find_free_extent() retry with a smaller size.
+ */
+ if (ffe_ctl->max_extent_size >= ffe_ctl->min_alloc_size &&
+ !btrfs_can_activate_zone(fs_info->fs_devices, ffe_ctl->flags))
+ return false;
+ return true;
+ default:
+ BUG();
+ }
+}
+
static int chunk_allocation_failed(struct find_free_extent_ctl *ffe_ctl)
{
switch (ffe_ctl->policy) {
@@ -3987,18 +4021,6 @@ static int find_free_extent_update_loop(struct btrfs_fs_info *fs_info,
return 0;
}
- if (ffe_ctl->max_extent_size >= ffe_ctl->min_alloc_size &&
- !btrfs_can_activate_zone(fs_info->fs_devices, ffe_ctl->index)) {
- /*
- * If we have enough free space left in an already active block
- * group and we can't activate any other zone now, retry the
- * active ones with a smaller allocation size. Returning early
- * from here will tell btrfs_reserve_extent() to haven the
- * size.
- */
- return -ENOSPC;
- }
-
if (ffe_ctl->loop >= LOOP_CACHING_WAIT && ffe_ctl->have_caching_bg)
return 1;
@@ -4034,6 +4056,10 @@ static int find_free_extent_update_loop(struct btrfs_fs_info *fs_info,
struct btrfs_trans_handle *trans;
int exist = 0;
+ /*Check if allocation policy allows to create a new chunk */
+ if (!can_allocate_chunk(fs_info, ffe_ctl))
+ return -ENOSPC;
+
trans = current->journal_info;
if (trans)
exist = 1;
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index b8c911a4a320..39a674543461 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -10595,9 +10595,19 @@ static int btrfs_add_swap_extent(struct swap_info_struct *sis,
struct btrfs_swap_info *bsi)
{
unsigned long nr_pages;
+ unsigned long max_pages;
u64 first_ppage, first_ppage_reported, next_ppage;
int ret;
+ /*
+ * Our swapfile may have had its size extended after the swap header was
+ * written. In that case activating the swapfile should not go beyond
+ * the max size set in the swap header.
+ */
+ if (bsi->nr_pages >= sis->max)
+ return 0;
+
+ max_pages = sis->max - bsi->nr_pages;
first_ppage = ALIGN(bsi->block_start, PAGE_SIZE) >> PAGE_SHIFT;
next_ppage = ALIGN_DOWN(bsi->block_start + bsi->block_len,
PAGE_SIZE) >> PAGE_SHIFT;
@@ -10605,6 +10615,7 @@ static int btrfs_add_swap_extent(struct swap_info_struct *sis,
if (first_ppage >= next_ppage)
return 0;
nr_pages = next_ppage - first_ppage;
+ nr_pages = min(nr_pages, max_pages);
first_ppage_reported = first_ppage;
if (bsi->start == 0)
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
index 6c037f1252b7..071f7334f818 100644
--- a/fs/btrfs/qgroup.c
+++ b/fs/btrfs/qgroup.c
@@ -940,6 +940,14 @@ int btrfs_quota_enable(struct btrfs_fs_info *fs_info)
int ret = 0;
int slot;
+ /*
+ * We need to have subvol_sem write locked, to prevent races between
+ * concurrent tasks trying to enable quotas, because we will unlock
+ * and relock qgroup_ioctl_lock before setting fs_info->quota_root
+ * and before setting BTRFS_FS_QUOTA_ENABLED.
+ */
+ lockdep_assert_held_write(&fs_info->subvol_sem);
+
mutex_lock(&fs_info->qgroup_ioctl_lock);
if (fs_info->quota_root)
goto out;
@@ -1117,8 +1125,19 @@ int btrfs_quota_enable(struct btrfs_fs_info *fs_info)
goto out_free_path;
}
+ mutex_unlock(&fs_info->qgroup_ioctl_lock);
+ /*
+ * Commit the transaction while not holding qgroup_ioctl_lock, to avoid
+ * a deadlock with tasks concurrently doing other qgroup operations, such
+ * adding/removing qgroups or adding/deleting qgroup relations for example,
+ * because all qgroup operations first start or join a transaction and then
+ * lock the qgroup_ioctl_lock mutex.
+ * We are safe from a concurrent task trying to enable quotas, by calling
+ * this function, since we are serialized by fs_info->subvol_sem.
+ */
ret = btrfs_commit_transaction(trans);
trans = NULL;
+ mutex_lock(&fs_info->qgroup_ioctl_lock);
if (ret)
goto out_free_path;
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index fd0ced829edb..42391d4aeb11 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -2643,7 +2643,7 @@ int btrfs_init_new_device(struct btrfs_fs_info *fs_info, const char *device_path
device->fs_info = fs_info;
device->bdev = bdev;
- ret = btrfs_get_dev_zone_info(device);
+ ret = btrfs_get_dev_zone_info(device, false);
if (ret)
goto error_free_device;
diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
index 678a29469511..e2ccbb339499 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
@@ -5,6 +5,7 @@
#include <linux/blkdev.h>
#include <linux/sched/mm.h>
#include <linux/atomic.h>
+#include <linux/vmalloc.h>
#include "ctree.h"
#include "volumes.h"
#include "zoned.h"
@@ -213,6 +214,8 @@ static int emulate_report_zones(struct btrfs_device *device, u64 pos,
static int btrfs_get_dev_zones(struct btrfs_device *device, u64 pos,
struct blk_zone *zones, unsigned int *nr_zones)
{
+ struct btrfs_zoned_device_info *zinfo = device->zone_info;
+ u32 zno;
int ret;
if (!*nr_zones)
@@ -224,6 +227,34 @@ static int btrfs_get_dev_zones(struct btrfs_device *device, u64 pos,
return 0;
}
+ /* Check cache */
+ if (zinfo->zone_cache) {
+ unsigned int i;
+
+ ASSERT(IS_ALIGNED(pos, zinfo->zone_size));
+ zno = pos >> zinfo->zone_size_shift;
+ /*
+ * We cannot report zones beyond the zone end. So, it is OK to
+ * cap *nr_zones to at the end.
+ */
+ *nr_zones = min_t(u32, *nr_zones, zinfo->nr_zones - zno);
+
+ for (i = 0; i < *nr_zones; i++) {
+ struct blk_zone *zone_info;
+
+ zone_info = &zinfo->zone_cache[zno + i];
+ if (!zone_info->len)
+ break;
+ }
+
+ if (i == *nr_zones) {
+ /* Cache hit on all the zones */
+ memcpy(zones, zinfo->zone_cache + zno,
+ sizeof(*zinfo->zone_cache) * *nr_zones);
+ return 0;
+ }
+ }
+
ret = blkdev_report_zones(device->bdev, pos >> SECTOR_SHIFT, *nr_zones,
copy_zone_info_cb, zones);
if (ret < 0) {
@@ -237,6 +268,11 @@ static int btrfs_get_dev_zones(struct btrfs_device *device, u64 pos,
if (!ret)
return -EIO;
+ /* Populate cache */
+ if (zinfo->zone_cache)
+ memcpy(zinfo->zone_cache + zno, zones,
+ sizeof(*zinfo->zone_cache) * *nr_zones);
+
return 0;
}
@@ -300,7 +336,7 @@ int btrfs_get_dev_zone_info_all_devices(struct btrfs_fs_info *fs_info)
if (!device->bdev)
continue;
- ret = btrfs_get_dev_zone_info(device);
+ ret = btrfs_get_dev_zone_info(device, true);
if (ret)
break;
}
@@ -309,7 +345,7 @@ int btrfs_get_dev_zone_info_all_devices(struct btrfs_fs_info *fs_info)
return ret;
}
-int btrfs_get_dev_zone_info(struct btrfs_device *device)
+int btrfs_get_dev_zone_info(struct btrfs_device *device, bool populate_cache)
{
struct btrfs_fs_info *fs_info = device->fs_info;
struct btrfs_zoned_device_info *zone_info = NULL;
@@ -339,6 +375,8 @@ int btrfs_get_dev_zone_info(struct btrfs_device *device)
if (!zone_info)
return -ENOMEM;
+ device->zone_info = zone_info;
+
if (!bdev_is_zoned(bdev)) {
if (!fs_info->zone_size) {
ret = calculate_emulated_zone_size(fs_info);
@@ -407,6 +445,23 @@ int btrfs_get_dev_zone_info(struct btrfs_device *device)
goto out;
}
+ /*
+ * Enable zone cache only for a zoned device. On a non-zoned device, we
+ * fill the zone info with emulated CONVENTIONAL zones, so no need to
+ * use the cache.
+ */
+ if (populate_cache && bdev_is_zoned(device->bdev)) {
+ zone_info->zone_cache = vzalloc(sizeof(struct blk_zone) *
+ zone_info->nr_zones);
+ if (!zone_info->zone_cache) {
+ btrfs_err_in_rcu(device->fs_info,
+ "zoned: failed to allocate zone cache for %s",
+ rcu_str_deref(device->name));
+ ret = -ENOMEM;
+ goto out;
+ }
+ }
+
/* Get zones type */
nactive = 0;
while (sector < nr_sectors) {
@@ -505,8 +560,6 @@ int btrfs_get_dev_zone_info(struct btrfs_device *device)
kfree(zones);
- device->zone_info = zone_info;
-
switch (bdev_zoned_model(bdev)) {
case BLK_ZONED_HM:
model = "host-managed zoned";
@@ -539,11 +592,7 @@ int btrfs_get_dev_zone_info(struct btrfs_device *device)
out:
kfree(zones);
out_free_zone_info:
- bitmap_free(zone_info->active_zones);
- bitmap_free(zone_info->empty_zones);
- bitmap_free(zone_info->seq_zones);
- kfree(zone_info);
- device->zone_info = NULL;
+ btrfs_destroy_dev_zone_info(device);
return ret;
}
@@ -558,6 +607,7 @@ void btrfs_destroy_dev_zone_info(struct btrfs_device *device)
bitmap_free(zone_info->active_zones);
bitmap_free(zone_info->seq_zones);
bitmap_free(zone_info->empty_zones);
+ vfree(zone_info->zone_cache);
kfree(zone_info);
device->zone_info = NULL;
}
@@ -1884,7 +1934,7 @@ int btrfs_zone_finish(struct btrfs_block_group *block_group)
return ret;
}
-bool btrfs_can_activate_zone(struct btrfs_fs_devices *fs_devices, int raid_index)
+bool btrfs_can_activate_zone(struct btrfs_fs_devices *fs_devices, u64 flags)
{
struct btrfs_device *device;
bool ret = false;
@@ -1893,8 +1943,7 @@ bool btrfs_can_activate_zone(struct btrfs_fs_devices *fs_devices, int raid_index
return true;
/* Non-single profiles are not supported yet */
- if (raid_index != BTRFS_RAID_SINGLE)
- return false;
+ ASSERT((flags & BTRFS_BLOCK_GROUP_PROFILE_MASK) == 0);
/* Check if there is a device with active zones left */
mutex_lock(&fs_devices->device_list_mutex);
@@ -1975,3 +2024,21 @@ void btrfs_clear_data_reloc_bg(struct btrfs_block_group *bg)
fs_info->data_reloc_bg = 0;
spin_unlock(&fs_info->relocation_bg_lock);
}
+
+void btrfs_free_zone_cache(struct btrfs_fs_info *fs_info)
+{
+ struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
+ struct btrfs_device *device;
+
+ if (!btrfs_is_zoned(fs_info))
+ return;
+
+ mutex_lock(&fs_devices->device_list_mutex);
+ list_for_each_entry(device, &fs_devices->devices, dev_list) {
+ if (device->zone_info) {
+ vfree(device->zone_info->zone_cache);
+ device->zone_info->zone_cache = NULL;
+ }
+ }
+ mutex_unlock(&fs_devices->device_list_mutex);
+}
diff --git a/fs/btrfs/zoned.h b/fs/btrfs/zoned.h
index e53ab7b96437..2695549208e2 100644
--- a/fs/btrfs/zoned.h
+++ b/fs/btrfs/zoned.h
@@ -28,6 +28,7 @@ struct btrfs_zoned_device_info {
unsigned long *seq_zones;
unsigned long *empty_zones;
unsigned long *active_zones;
+ struct blk_zone *zone_cache;
struct blk_zone sb_zones[2 * BTRFS_SUPER_MIRROR_MAX];
};
@@ -35,7 +36,7 @@ struct btrfs_zoned_device_info {
int btrfs_get_dev_zone(struct btrfs_device *device, u64 pos,
struct blk_zone *zone);
int btrfs_get_dev_zone_info_all_devices(struct btrfs_fs_info *fs_info);
-int btrfs_get_dev_zone_info(struct btrfs_device *device);
+int btrfs_get_dev_zone_info(struct btrfs_device *device, bool populate_cache);
void btrfs_destroy_dev_zone_info(struct btrfs_device *device);
int btrfs_check_zoned_mode(struct btrfs_fs_info *fs_info);
int btrfs_check_mountopts_zoned(struct btrfs_fs_info *info);
@@ -71,11 +72,11 @@ struct btrfs_device *btrfs_zoned_get_device(struct btrfs_fs_info *fs_info,
u64 logical, u64 length);
bool btrfs_zone_activate(struct btrfs_block_group *block_group);
int btrfs_zone_finish(struct btrfs_block_group *block_group);
-bool btrfs_can_activate_zone(struct btrfs_fs_devices *fs_devices,
- int raid_index);
+bool btrfs_can_activate_zone(struct btrfs_fs_devices *fs_devices, u64 flags);
void btrfs_zone_finish_endio(struct btrfs_fs_info *fs_info, u64 logical,
u64 length);
void btrfs_clear_data_reloc_bg(struct btrfs_block_group *bg);
+void btrfs_free_zone_cache(struct btrfs_fs_info *fs_info);
#else /* CONFIG_BLK_DEV_ZONED */
static inline int btrfs_get_dev_zone(struct btrfs_device *device, u64 pos,
struct blk_zone *zone)
@@ -88,7 +89,8 @@ static inline int btrfs_get_dev_zone_info_all_devices(struct btrfs_fs_info *fs_i
return 0;
}
-static inline int btrfs_get_dev_zone_info(struct btrfs_device *device)
+static inline int btrfs_get_dev_zone_info(struct btrfs_device *device,
+ bool populate_cache)
{
return 0;
}
@@ -222,7 +224,7 @@ static inline int btrfs_zone_finish(struct btrfs_block_group *block_group)
}
static inline bool btrfs_can_activate_zone(struct btrfs_fs_devices *fs_devices,
- int raid_index)
+ u64 flags)
{
return true;
}
@@ -232,6 +234,7 @@ static inline void btrfs_zone_finish_endio(struct btrfs_fs_info *fs_info,
static inline void btrfs_clear_data_reloc_bg(struct btrfs_block_group *bg) { }
+static inline void btrfs_free_zone_cache(struct btrfs_fs_info *fs_info) { }
#endif
static inline bool btrfs_dev_is_sequential(struct btrfs_device *device, u64 pos)
diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c
index 035dc3e245dc..3eee806fd29f 100644
--- a/fs/cifs/sess.c
+++ b/fs/cifs/sess.c
@@ -1354,7 +1354,7 @@ sess_auth_rawntlmssp_negotiate(struct sess_data *sess_data)
&blob_len, ses,
sess_data->nls_cp);
if (rc)
- goto out;
+ goto out_free_ntlmsspblob;
sess_data->iov[1].iov_len = blob_len;
sess_data->iov[1].iov_base = ntlmsspblob;
@@ -1362,7 +1362,7 @@ sess_auth_rawntlmssp_negotiate(struct sess_data *sess_data)
rc = _sess_auth_rawntlmssp_assemble_req(sess_data);
if (rc)
- goto out;
+ goto out_free_ntlmsspblob;
rc = sess_sendreceive(sess_data);
@@ -1376,14 +1376,14 @@ sess_auth_rawntlmssp_negotiate(struct sess_data *sess_data)
rc = 0;
if (rc)
- goto out;
+ goto out_free_ntlmsspblob;
cifs_dbg(FYI, "rawntlmssp session setup challenge phase\n");
if (smb_buf->WordCount != 4) {
rc = -EIO;
cifs_dbg(VFS, "bad word count %d\n", smb_buf->WordCount);
- goto out;
+ goto out_free_ntlmsspblob;
}
ses->Suid = smb_buf->Uid; /* UID left in wire format (le) */
@@ -1397,10 +1397,13 @@ sess_auth_rawntlmssp_negotiate(struct sess_data *sess_data)
cifs_dbg(VFS, "bad security blob length %d\n",
blob_len);
rc = -EINVAL;
- goto out;
+ goto out_free_ntlmsspblob;
}
rc = decode_ntlmssp_challenge(bcc_ptr, blob_len, ses);
+
+out_free_ntlmsspblob:
+ kfree(ntlmsspblob);
out:
sess_free_buffer(sess_data);
diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c
index 7d162b0efbf0..950c63fa4d0b 100644
--- a/fs/debugfs/file.c
+++ b/fs/debugfs/file.c
@@ -147,7 +147,7 @@ static int debugfs_locked_down(struct inode *inode,
struct file *filp,
const struct file_operations *real_fops)
{
- if ((inode->i_mode & 07777) == 0444 &&
+ if ((inode->i_mode & 07777 & ~0444) == 0 &&
!(filp->f_mode & FMODE_WRITE) &&
!real_fops->unlocked_ioctl &&
!real_fops->compat_ioctl &&
diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
index c502c065d007..28d1f35b11a4 100644
--- a/fs/dlm/lock.c
+++ b/fs/dlm/lock.c
@@ -3973,6 +3973,14 @@ static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms)
int from = ms->m_header.h_nodeid;
int error = 0;
+ /* currently mixing of user/kernel locks are not supported */
+ if (ms->m_flags & DLM_IFL_USER && ~lkb->lkb_flags & DLM_IFL_USER) {
+ log_error(lkb->lkb_resource->res_ls,
+ "got user dlm message for a kernel lock");
+ error = -EINVAL;
+ goto out;
+ }
+
switch (ms->m_type) {
case DLM_MSG_CONVERT:
case DLM_MSG_UNLOCK:
@@ -4001,6 +4009,7 @@ static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms)
error = -EINVAL;
}
+out:
if (error)
log_error(lkb->lkb_resource->res_ls,
"ignore invalid message %d from %d %x %x %x %d",
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index 8f715c620e1f..7a8efce1c343 100644
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -592,8 +592,8 @@ int dlm_lowcomms_nodes_set_mark(int nodeid, unsigned int mark)
static void lowcomms_error_report(struct sock *sk)
{
struct connection *con;
- struct sockaddr_storage saddr;
void (*orig_report)(struct sock *) = NULL;
+ struct inet_sock *inet;
read_lock_bh(&sk->sk_callback_lock);
con = sock2con(sk);
@@ -601,33 +601,33 @@ static void lowcomms_error_report(struct sock *sk)
goto out;
orig_report = listen_sock.sk_error_report;
- if (kernel_getpeername(sk->sk_socket, (struct sockaddr *)&saddr) < 0) {
- printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
- "sending to node %d, port %d, "
- "sk_err=%d/%d\n", dlm_our_nodeid(),
- con->nodeid, dlm_config.ci_tcp_port,
- sk->sk_err, sk->sk_err_soft);
- } else if (saddr.ss_family == AF_INET) {
- struct sockaddr_in *sin4 = (struct sockaddr_in *)&saddr;
+ inet = inet_sk(sk);
+ switch (sk->sk_family) {
+ case AF_INET:
printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
- "sending to node %d at %pI4, port %d, "
+ "sending to node %d at %pI4, dport %d, "
"sk_err=%d/%d\n", dlm_our_nodeid(),
- con->nodeid, &sin4->sin_addr.s_addr,
- dlm_config.ci_tcp_port, sk->sk_err,
+ con->nodeid, &inet->inet_daddr,
+ ntohs(inet->inet_dport), sk->sk_err,
sk->sk_err_soft);
- } else {
- struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&saddr;
-
+ break;
+#if IS_ENABLED(CONFIG_IPV6)
+ case AF_INET6:
printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
- "sending to node %d at %u.%u.%u.%u, "
- "port %d, sk_err=%d/%d\n", dlm_our_nodeid(),
- con->nodeid, sin6->sin6_addr.s6_addr32[0],
- sin6->sin6_addr.s6_addr32[1],
- sin6->sin6_addr.s6_addr32[2],
- sin6->sin6_addr.s6_addr32[3],
- dlm_config.ci_tcp_port, sk->sk_err,
+ "sending to node %d at %pI6c, "
+ "dport %d, sk_err=%d/%d\n", dlm_our_nodeid(),
+ con->nodeid, &sk->sk_v6_daddr,
+ ntohs(inet->inet_dport), sk->sk_err,
sk->sk_err_soft);
+ break;
+#endif
+ default:
+ printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
+ "invalid socket family %d set, "
+ "sk_err=%d/%d\n", dlm_our_nodeid(),
+ sk->sk_family, sk->sk_err, sk->sk_err_soft);
+ goto out;
}
/* below sendcon only handling */
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 404dd50856e5..af7088085d4e 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -2935,6 +2935,7 @@ bool ext4_fc_replay_check_excluded(struct super_block *sb, ext4_fsblk_t block);
void ext4_fc_replay_cleanup(struct super_block *sb);
int ext4_fc_commit(journal_t *journal, tid_t commit_tid);
int __init ext4_fc_init_dentry_cache(void);
+void ext4_fc_destroy_dentry_cache(void);
/* mballoc.c */
extern const struct seq_operations ext4_mb_seq_groups_ops;
diff --git a/fs/ext4/ext4_jbd2.c b/fs/ext4/ext4_jbd2.c
index 6def7339056d..3477a16d08ae 100644
--- a/fs/ext4/ext4_jbd2.c
+++ b/fs/ext4/ext4_jbd2.c
@@ -162,6 +162,8 @@ int __ext4_journal_ensure_credits(handle_t *handle, int check_cred,
{
if (!ext4_handle_valid(handle))
return 0;
+ if (is_handle_aborted(handle))
+ return -EROFS;
if (jbd2_handle_buffer_credits(handle) >= check_cred &&
handle->h_revoke_credits >= revoke_cred)
return 0;
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 0ecf819bf189..fac884dbb42e 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4647,8 +4647,6 @@ static long ext4_zero_range(struct file *file, loff_t offset,
ret = ext4_mark_inode_dirty(handle, inode);
if (unlikely(ret))
goto out_handle;
- ext4_fc_track_range(handle, inode, offset >> inode->i_sb->s_blocksize_bits,
- (offset + len - 1) >> inode->i_sb->s_blocksize_bits);
/* Zero out partial block at the edges of the range */
ret = ext4_zero_partial_blocks(handle, inode, offset, len);
if (ret >= 0)
diff --git a/fs/ext4/fast_commit.c b/fs/ext4/fast_commit.c
index 0f32b445582a..ace68ca90b01 100644
--- a/fs/ext4/fast_commit.c
+++ b/fs/ext4/fast_commit.c
@@ -1812,11 +1812,14 @@ ext4_fc_replay_del_range(struct super_block *sb, struct ext4_fc_tl *tl,
}
}
- ret = ext4_punch_hole(inode,
- le32_to_cpu(lrange.fc_lblk) << sb->s_blocksize_bits,
- le32_to_cpu(lrange.fc_len) << sb->s_blocksize_bits);
- if (ret)
- jbd_debug(1, "ext4_punch_hole returned %d", ret);
+ down_write(&EXT4_I(inode)->i_data_sem);
+ ret = ext4_ext_remove_space(inode, lrange.fc_lblk,
+ lrange.fc_lblk + lrange.fc_len - 1);
+ up_write(&EXT4_I(inode)->i_data_sem);
+ if (ret) {
+ iput(inode);
+ return 0;
+ }
ext4_ext_replay_shrink_inode(inode,
i_size_read(inode) >> sb->s_blocksize_bits);
ext4_mark_inode_dirty(NULL, inode);
@@ -2192,3 +2195,8 @@ int __init ext4_fc_init_dentry_cache(void)
return 0;
}
+
+void ext4_fc_destroy_dentry_cache(void)
+{
+ kmem_cache_destroy(ext4_fc_dentry_cachep);
+}
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index bfd3545f1e5d..3bdfe010e17f 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -741,10 +741,11 @@ int ext4_map_blocks(handle_t *handle, struct inode *inode,
if (ret)
return ret;
}
- ext4_fc_track_range(handle, inode, map->m_lblk,
- map->m_lblk + map->m_len - 1);
}
-
+ if (retval > 0 && (map->m_flags & EXT4_MAP_UNWRITTEN ||
+ map->m_flags & EXT4_MAP_MAPPED))
+ ext4_fc_track_range(handle, inode, map->m_lblk,
+ map->m_lblk + map->m_len - 1);
if (retval < 0)
ext_debug(inode, "failed with err %d\n", retval);
return retval;
@@ -1844,30 +1845,16 @@ int ext4_da_get_block_prep(struct inode *inode, sector_t iblock,
return 0;
}
-static int bget_one(handle_t *handle, struct inode *inode,
- struct buffer_head *bh)
-{
- get_bh(bh);
- return 0;
-}
-
-static int bput_one(handle_t *handle, struct inode *inode,
- struct buffer_head *bh)
-{
- put_bh(bh);
- return 0;
-}
-
static int __ext4_journalled_writepage(struct page *page,
unsigned int len)
{
struct address_space *mapping = page->mapping;
struct inode *inode = mapping->host;
- struct buffer_head *page_bufs = NULL;
handle_t *handle = NULL;
int ret = 0, err = 0;
int inline_data = ext4_has_inline_data(inode);
struct buffer_head *inode_bh = NULL;
+ loff_t size;
ClearPageChecked(page);
@@ -1877,14 +1864,6 @@ static int __ext4_journalled_writepage(struct page *page,
inode_bh = ext4_journalled_write_inline_data(inode, len, page);
if (inode_bh == NULL)
goto out;
- } else {
- page_bufs = page_buffers(page);
- if (!page_bufs) {
- BUG();
- goto out;
- }
- ext4_walk_page_buffers(handle, inode, page_bufs, 0, len,
- NULL, bget_one);
}
/*
* We need to release the page lock before we start the
@@ -1905,7 +1884,8 @@ static int __ext4_journalled_writepage(struct page *page,
lock_page(page);
put_page(page);
- if (page->mapping != mapping) {
+ size = i_size_read(inode);
+ if (page->mapping != mapping || page_offset(page) > size) {
/* The page got truncated from under us */
ext4_journal_stop(handle);
ret = 0;
@@ -1915,6 +1895,13 @@ static int __ext4_journalled_writepage(struct page *page,
if (inline_data) {
ret = ext4_mark_inode_dirty(handle, inode);
} else {
+ struct buffer_head *page_bufs = page_buffers(page);
+
+ if (page->index == size >> PAGE_SHIFT)
+ len = size & ~PAGE_MASK;
+ else
+ len = PAGE_SIZE;
+
ret = ext4_walk_page_buffers(handle, inode, page_bufs, 0, len,
NULL, do_journal_get_write_access);
@@ -1935,9 +1922,6 @@ static int __ext4_journalled_writepage(struct page *page,
out:
unlock_page(page);
out_no_pagelock:
- if (!inline_data && page_bufs)
- ext4_walk_page_buffers(NULL, inode, page_bufs, 0, len,
- NULL, bput_one);
brelse(inode_bh);
return ret;
}
@@ -4523,7 +4507,7 @@ static int __ext4_get_inode_loc(struct super_block *sb, unsigned long ino,
static int __ext4_get_inode_loc_noinmem(struct inode *inode,
struct ext4_iloc *iloc)
{
- ext4_fsblk_t err_blk;
+ ext4_fsblk_t err_blk = 0;
int ret;
ret = __ext4_get_inode_loc(inode->i_sb, inode->i_ino, NULL, iloc,
@@ -4538,7 +4522,7 @@ static int __ext4_get_inode_loc_noinmem(struct inode *inode,
int ext4_get_inode_loc(struct inode *inode, struct ext4_iloc *iloc)
{
- ext4_fsblk_t err_blk;
+ ext4_fsblk_t err_blk = 0;
int ret;
ret = __ext4_get_inode_loc(inode->i_sb, inode->i_ino, inode, iloc,
@@ -5427,8 +5411,7 @@ int ext4_setattr(struct user_namespace *mnt_userns, struct dentry *dentry,
ext4_fc_track_range(handle, inode,
(attr->ia_size > 0 ? attr->ia_size - 1 : 0) >>
inode->i_sb->s_blocksize_bits,
- (oldsize > 0 ? oldsize - 1 : 0) >>
- inode->i_sb->s_blocksize_bits);
+ EXT_MAX_BLOCKS - 1);
else
ext4_fc_track_range(
handle, inode,
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
index 606dee9e08a3..220a4c8178b5 100644
--- a/fs/ext4/ioctl.c
+++ b/fs/ext4/ioctl.c
@@ -1117,8 +1117,6 @@ static long __ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
sizeof(range)))
return -EFAULT;
- range.minlen = max((unsigned int)range.minlen,
- q->limits.discard_granularity);
ret = ext4_trim_fs(sb, &range);
if (ret < 0)
return ret;
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index 215b7068f548..ea764137462e 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -4814,7 +4814,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
*/
static noinline_for_stack int
ext4_mb_discard_group_preallocations(struct super_block *sb,
- ext4_group_t group, int needed)
+ ext4_group_t group, int *busy)
{
struct ext4_group_info *grp = ext4_get_group_info(sb, group);
struct buffer_head *bitmap_bh = NULL;
@@ -4822,8 +4822,7 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
struct list_head list;
struct ext4_buddy e4b;
int err;
- int busy = 0;
- int free, free_total = 0;
+ int free = 0;
mb_debug(sb, "discard preallocation for group %u\n", group);
if (list_empty(&grp->bb_prealloc_list))
@@ -4846,19 +4845,14 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
goto out_dbg;
}
- if (needed == 0)
- needed = EXT4_CLUSTERS_PER_GROUP(sb) + 1;
-
INIT_LIST_HEAD(&list);
-repeat:
- free = 0;
ext4_lock_group(sb, group);
list_for_each_entry_safe(pa, tmp,
&grp->bb_prealloc_list, pa_group_list) {
spin_lock(&pa->pa_lock);
if (atomic_read(&pa->pa_count)) {
spin_unlock(&pa->pa_lock);
- busy = 1;
+ *busy = 1;
continue;
}
if (pa->pa_deleted) {
@@ -4898,22 +4892,13 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback);
}
- free_total += free;
-
- /* if we still need more blocks and some PAs were used, try again */
- if (free_total < needed && busy) {
- ext4_unlock_group(sb, group);
- cond_resched();
- busy = 0;
- goto repeat;
- }
ext4_unlock_group(sb, group);
ext4_mb_unload_buddy(&e4b);
put_bh(bitmap_bh);
out_dbg:
mb_debug(sb, "discarded (%d) blocks preallocated for group %u bb_free (%d)\n",
- free_total, group, grp->bb_free);
- return free_total;
+ free, group, grp->bb_free);
+ return free;
}
/*
@@ -5455,13 +5440,24 @@ static int ext4_mb_discard_preallocations(struct super_block *sb, int needed)
{
ext4_group_t i, ngroups = ext4_get_groups_count(sb);
int ret;
- int freed = 0;
+ int freed = 0, busy = 0;
+ int retry = 0;
trace_ext4_mb_discard_preallocations(sb, needed);
+
+ if (needed == 0)
+ needed = EXT4_CLUSTERS_PER_GROUP(sb) + 1;
+ repeat:
for (i = 0; i < ngroups && needed > 0; i++) {
- ret = ext4_mb_discard_group_preallocations(sb, i, needed);
+ ret = ext4_mb_discard_group_preallocations(sb, i, &busy);
freed += ret;
needed -= ret;
+ cond_resched();
+ }
+
+ if (needed > 0 && busy && ++retry < 3) {
+ busy = 0;
+ goto repeat;
}
return freed;
@@ -6404,6 +6400,7 @@ ext4_trim_all_free(struct super_block *sb, ext4_group_t group,
*/
int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range)
{
+ struct request_queue *q = bdev_get_queue(sb->s_bdev);
struct ext4_group_info *grp;
ext4_group_t group, first_group, last_group;
ext4_grpblk_t cnt = 0, first_cluster, last_cluster;
@@ -6422,6 +6419,13 @@ int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range)
start >= max_blks ||
range->len < sb->s_blocksize)
return -EINVAL;
+ /* No point to try to trim less than discard granularity */
+ if (range->minlen < q->limits.discard_granularity) {
+ minlen = EXT4_NUM_B2C(EXT4_SB(sb),
+ q->limits.discard_granularity >> sb->s_blocksize_bits);
+ if (minlen > EXT4_CLUSTERS_PER_GROUP(sb))
+ goto out;
+ }
if (end >= max_blks)
end = max_blks - 1;
if (end <= first_data_blk)
diff --git a/fs/ext4/migrate.c b/fs/ext4/migrate.c
index 7e0b4f81c6c0..ff8916e1d38e 100644
--- a/fs/ext4/migrate.c
+++ b/fs/ext4/migrate.c
@@ -437,12 +437,12 @@ int ext4_ext_migrate(struct inode *inode)
percpu_down_write(&sbi->s_writepages_rwsem);
/*
- * Worst case we can touch the allocation bitmaps, a bgd
- * block, and a block to link in the orphan list. We do need
- * need to worry about credits for modifying the quota inode.
+ * Worst case we can touch the allocation bitmaps and a block
+ * group descriptor block. We do need need to worry about
+ * credits for modifying the quota inode.
*/
handle = ext4_journal_start(inode, EXT4_HT_MIGRATE,
- 4 + EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb));
+ 3 + EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb));
if (IS_ERR(handle)) {
retval = PTR_ERR(handle);
@@ -459,6 +459,13 @@ int ext4_ext_migrate(struct inode *inode)
ext4_journal_stop(handle);
goto out_unlock;
}
+ /*
+ * Use the correct seed for checksum (i.e. the seed from 'inode'). This
+ * is so that the metadata blocks will have the correct checksum after
+ * the migration.
+ */
+ ei = EXT4_I(inode);
+ EXT4_I(tmp_inode)->i_csum_seed = ei->i_csum_seed;
i_size_write(tmp_inode, i_size_read(inode));
/*
* Set the i_nlink to zero so it will be deleted later
@@ -467,7 +474,6 @@ int ext4_ext_migrate(struct inode *inode)
clear_nlink(tmp_inode);
ext4_ext_tree_init(handle, tmp_inode);
- ext4_orphan_add(handle, tmp_inode);
ext4_journal_stop(handle);
/*
@@ -492,17 +498,10 @@ int ext4_ext_migrate(struct inode *inode)
handle = ext4_journal_start(inode, EXT4_HT_MIGRATE, 1);
if (IS_ERR(handle)) {
- /*
- * It is impossible to update on-disk structures without
- * a handle, so just rollback in-core changes and live other
- * work to orphan_list_cleanup()
- */
- ext4_orphan_del(NULL, tmp_inode);
retval = PTR_ERR(handle);
goto out_tmp_inode;
}
- ei = EXT4_I(inode);
i_data = ei->i_data;
memset(&lb, 0, sizeof(lb));
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 4e33b5eca694..24a7ad80353b 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -6275,10 +6275,7 @@ static int ext4_quota_on(struct super_block *sb, int type, int format_id,
lockdep_set_quota_inode(path->dentry->d_inode, I_DATA_SEM_QUOTA);
err = dquot_quota_on(sb, type, format_id, path);
- if (err) {
- lockdep_set_quota_inode(path->dentry->d_inode,
- I_DATA_SEM_NORMAL);
- } else {
+ if (!err) {
struct inode *inode = d_inode(path->dentry);
handle_t *handle;
@@ -6298,7 +6295,12 @@ static int ext4_quota_on(struct super_block *sb, int type, int format_id,
ext4_journal_stop(handle);
unlock_inode:
inode_unlock(inode);
+ if (err)
+ dquot_quota_off(sb, type);
}
+ if (err)
+ lockdep_set_quota_inode(path->dentry->d_inode,
+ I_DATA_SEM_NORMAL);
return err;
}
@@ -6361,8 +6363,19 @@ int ext4_enable_quotas(struct super_block *sb)
"Failed to enable quota tracking "
"(type=%d, err=%d). Please run "
"e2fsck to fix.", type, err);
- for (type--; type >= 0; type--)
+ for (type--; type >= 0; type--) {
+ struct inode *inode;
+
+ inode = sb_dqopt(sb)->files[type];
+ if (inode)
+ inode = igrab(inode);
dquot_quota_off(sb, type);
+ if (inode) {
+ lockdep_set_quota_inode(inode,
+ I_DATA_SEM_NORMAL);
+ iput(inode);
+ }
+ }
return err;
}
@@ -6466,7 +6479,7 @@ static ssize_t ext4_quota_write(struct super_block *sb, int type,
struct buffer_head *bh;
handle_t *handle = journal_current_handle();
- if (EXT4_SB(sb)->s_journal && !handle) {
+ if (!handle) {
ext4_msg(sb, KERN_WARNING, "Quota write (off=%llu, len=%llu)"
" cancelled because transaction is not started",
(unsigned long long)off, (unsigned long long)len);
@@ -6649,6 +6662,7 @@ static int __init ext4_init_fs(void)
out:
unregister_as_ext2();
unregister_as_ext3();
+ ext4_fc_destroy_dentry_cache();
out05:
destroy_inodecache();
out1:
@@ -6675,6 +6689,7 @@ static void __exit ext4_exit_fs(void)
unregister_as_ext2();
unregister_as_ext3();
unregister_filesystem(&ext4_fs_type);
+ ext4_fc_destroy_dentry_cache();
destroy_inodecache();
ext4_exit_mballoc();
ext4_exit_sysfs();
diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index f1693d45bb78..2011e9742443 100644
--- a/fs/f2fs/checkpoint.c
+++ b/fs/f2fs/checkpoint.c
@@ -1302,8 +1302,8 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
unsigned long flags;
if (cpc->reason & CP_UMOUNT) {
- if (le32_to_cpu(ckpt->cp_pack_total_block_count) >
- sbi->blocks_per_seg - NM_I(sbi)->nat_bits_blocks) {
+ if (le32_to_cpu(ckpt->cp_pack_total_block_count) +
+ NM_I(sbi)->nat_bits_blocks > sbi->blocks_per_seg) {
clear_ckpt_flags(sbi, CP_NAT_BITS_FLAG);
f2fs_notice(sbi, "Disable nat_bits due to no space");
} else if (!is_set_ckpt_flags(sbi, CP_NAT_BITS_FLAG) &&
diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c
index 49121a21f749..190a3c4d4c91 100644
--- a/fs/f2fs/compress.c
+++ b/fs/f2fs/compress.c
@@ -1468,25 +1468,38 @@ static int f2fs_write_raw_pages(struct compress_ctx *cc,
enum iostat_type io_type)
{
struct address_space *mapping = cc->inode->i_mapping;
- int _submitted, compr_blocks, ret;
- int i = -1, err = 0;
+ int _submitted, compr_blocks, ret, i;
compr_blocks = f2fs_compressed_blocks(cc);
- if (compr_blocks < 0) {
- err = compr_blocks;
- goto out_err;
+
+ for (i = 0; i < cc->cluster_size; i++) {
+ if (!cc->rpages[i])
+ continue;
+
+ redirty_page_for_writepage(wbc, cc->rpages[i]);
+ unlock_page(cc->rpages[i]);
}
+ if (compr_blocks < 0)
+ return compr_blocks;
+
for (i = 0; i < cc->cluster_size; i++) {
if (!cc->rpages[i])
continue;
retry_write:
+ lock_page(cc->rpages[i]);
+
if (cc->rpages[i]->mapping != mapping) {
+continue_unlock:
unlock_page(cc->rpages[i]);
continue;
}
- BUG_ON(!PageLocked(cc->rpages[i]));
+ if (!PageDirty(cc->rpages[i]))
+ goto continue_unlock;
+
+ if (!clear_page_dirty_for_io(cc->rpages[i]))
+ goto continue_unlock;
ret = f2fs_write_single_data_page(cc->rpages[i], &_submitted,
NULL, NULL, wbc, io_type,
@@ -1501,26 +1514,15 @@ static int f2fs_write_raw_pages(struct compress_ctx *cc,
* avoid deadlock caused by cluster update race
* from foreground operation.
*/
- if (IS_NOQUOTA(cc->inode)) {
- err = 0;
- goto out_err;
- }
+ if (IS_NOQUOTA(cc->inode))
+ return 0;
ret = 0;
cond_resched();
congestion_wait(BLK_RW_ASYNC,
DEFAULT_IO_TIMEOUT);
- lock_page(cc->rpages[i]);
-
- if (!PageDirty(cc->rpages[i])) {
- unlock_page(cc->rpages[i]);
- continue;
- }
-
- clear_page_dirty_for_io(cc->rpages[i]);
goto retry_write;
}
- err = ret;
- goto out_err;
+ return ret;
}
*submitted += _submitted;
@@ -1529,14 +1531,6 @@ static int f2fs_write_raw_pages(struct compress_ctx *cc,
f2fs_balance_fs(F2FS_M_SB(mapping), true);
return 0;
-out_err:
- for (++i; i < cc->cluster_size; i++) {
- if (!cc->rpages[i])
- continue;
- redirty_page_for_writepage(wbc, cc->rpages[i]);
- unlock_page(cc->rpages[i]);
- }
- return err;
}
int f2fs_write_multi_pages(struct compress_ctx *cc,
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 9f754aaef558..3ba75587a2cd 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -2617,6 +2617,11 @@ bool f2fs_should_update_outplace(struct inode *inode, struct f2fs_io_info *fio)
{
struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
+ /* The below cases were checked when setting it. */
+ if (f2fs_is_pinned_file(inode))
+ return false;
+ if (fio && is_sbi_flag_set(sbi, SBI_NEED_FSCK))
+ return true;
if (f2fs_lfs_mode(sbi))
return true;
if (S_ISDIR(inode->i_mode))
@@ -2625,8 +2630,6 @@ bool f2fs_should_update_outplace(struct inode *inode, struct f2fs_io_info *fio)
return true;
if (f2fs_is_atomic_file(inode))
return true;
- if (is_sbi_flag_set(sbi, SBI_NEED_FSCK))
- return true;
/* swap file is migrating in aligned write mode */
if (is_inode_flag_set(inode, FI_ALIGNED_WRITE))
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index ce9fc9f13000..d753094a4919 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -1018,6 +1018,7 @@ struct f2fs_sm_info {
unsigned int segment_count; /* total # of segments */
unsigned int main_segments; /* # of segments in main area */
unsigned int reserved_segments; /* # of reserved segments */
+ unsigned int additional_reserved_segments;/* reserved segs for IO align feature */
unsigned int ovp_segments; /* # of overprovision segments */
/* a threshold to reclaim prefree segments */
@@ -2198,6 +2199,11 @@ static inline int inc_valid_block_count(struct f2fs_sb_info *sbi,
if (!__allow_reserved_blocks(sbi, inode, true))
avail_user_block_count -= F2FS_OPTION(sbi).root_reserved_blocks;
+
+ if (F2FS_IO_ALIGNED(sbi))
+ avail_user_block_count -= sbi->blocks_per_seg *
+ SM_I(sbi)->additional_reserved_segments;
+
if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED))) {
if (avail_user_block_count > sbi->unusable_block_count)
avail_user_block_count -= sbi->unusable_block_count;
@@ -2444,6 +2450,11 @@ static inline int inc_valid_node_count(struct f2fs_sb_info *sbi,
if (!__allow_reserved_blocks(sbi, inode, false))
valid_block_count += F2FS_OPTION(sbi).root_reserved_blocks;
+
+ if (F2FS_IO_ALIGNED(sbi))
+ valid_block_count += sbi->blocks_per_seg *
+ SM_I(sbi)->additional_reserved_segments;
+
user_block_count = sbi->user_block_count;
if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
user_block_count -= sbi->unusable_block_count;
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 92ec2699bc85..b752d1a6e6ff 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -3143,17 +3143,17 @@ static int f2fs_ioc_set_pin_file(struct file *filp, unsigned long arg)
inode_lock(inode);
- if (f2fs_should_update_outplace(inode, NULL)) {
- ret = -EINVAL;
- goto out;
- }
-
if (!pin) {
clear_inode_flag(inode, FI_PIN_FILE);
f2fs_i_gc_failures_write(inode, 0);
goto done;
}
+ if (f2fs_should_update_outplace(inode, NULL)) {
+ ret = -EINVAL;
+ goto out;
+ }
+
if (f2fs_pin_file_control(inode, false)) {
ret = -EAGAIN;
goto out;
diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index a946ce0ead34..b538cbcba351 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -1026,6 +1026,9 @@ static bool is_alive(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
set_sbi_flag(sbi, SBI_NEED_FSCK);
}
+ if (f2fs_check_nid_range(sbi, dni->ino))
+ return false;
+
*nofs = ofs_of_node(node_page);
source_blkaddr = data_blkaddr(NULL, node_page, ofs_in_node);
f2fs_put_page(node_page, 1);
@@ -1039,7 +1042,7 @@ static bool is_alive(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
if (!test_and_set_bit(segno, SIT_I(sbi)->invalid_segmap)) {
f2fs_err(sbi, "mismatched blkaddr %u (source_blkaddr %u) in seg %u",
blkaddr, source_blkaddr, segno);
- f2fs_bug_on(sbi, 1);
+ set_sbi_flag(sbi, SBI_NEED_FSCK);
}
}
#endif
@@ -1457,7 +1460,8 @@ static int gc_data_segment(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
if (phase == 3) {
inode = f2fs_iget(sb, dni.ino);
- if (IS_ERR(inode) || is_bad_inode(inode))
+ if (IS_ERR(inode) || is_bad_inode(inode) ||
+ special_file(inode->i_mode))
continue;
if (!down_write_trylock(
diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c
index 0f8b2df3e1e0..1db7823d5a13 100644
--- a/fs/f2fs/inode.c
+++ b/fs/f2fs/inode.c
@@ -516,6 +516,11 @@ struct inode *f2fs_iget(struct super_block *sb, unsigned long ino)
} else if (ino == F2FS_COMPRESS_INO(sbi)) {
#ifdef CONFIG_F2FS_FS_COMPRESSION
inode->i_mapping->a_ops = &f2fs_compress_aops;
+ /*
+ * generic_error_remove_page only truncates pages of regular
+ * inode
+ */
+ inode->i_mode |= S_IFREG;
#endif
mapping_set_gfp_mask(inode->i_mapping,
GFP_NOFS | __GFP_HIGHMEM | __GFP_MOVABLE);
diff --git a/fs/f2fs/segment.h b/fs/f2fs/segment.h
index 46fde9f3f28e..0291cd55cf09 100644
--- a/fs/f2fs/segment.h
+++ b/fs/f2fs/segment.h
@@ -538,7 +538,8 @@ static inline unsigned int free_segments(struct f2fs_sb_info *sbi)
static inline unsigned int reserved_segments(struct f2fs_sb_info *sbi)
{
- return SM_I(sbi)->reserved_segments;
+ return SM_I(sbi)->reserved_segments +
+ SM_I(sbi)->additional_reserved_segments;
}
static inline unsigned int free_sections(struct f2fs_sb_info *sbi)
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 040b6d02e1d8..08faa787a773 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -328,6 +328,46 @@ static inline void limit_reserve_root(struct f2fs_sb_info *sbi)
F2FS_OPTION(sbi).s_resgid));
}
+static inline int adjust_reserved_segment(struct f2fs_sb_info *sbi)
+{
+ unsigned int sec_blks = sbi->blocks_per_seg * sbi->segs_per_sec;
+ unsigned int avg_vblocks;
+ unsigned int wanted_reserved_segments;
+ block_t avail_user_block_count;
+
+ if (!F2FS_IO_ALIGNED(sbi))
+ return 0;
+
+ /* average valid block count in section in worst case */
+ avg_vblocks = sec_blks / F2FS_IO_SIZE(sbi);
+
+ /*
+ * we need enough free space when migrating one section in worst case
+ */
+ wanted_reserved_segments = (F2FS_IO_SIZE(sbi) / avg_vblocks) *
+ reserved_segments(sbi);
+ wanted_reserved_segments -= reserved_segments(sbi);
+
+ avail_user_block_count = sbi->user_block_count -
+ sbi->current_reserved_blocks -
+ F2FS_OPTION(sbi).root_reserved_blocks;
+
+ if (wanted_reserved_segments * sbi->blocks_per_seg >
+ avail_user_block_count) {
+ f2fs_err(sbi, "IO align feature can't grab additional reserved segment: %u, available segments: %u",
+ wanted_reserved_segments,
+ avail_user_block_count >> sbi->log_blocks_per_seg);
+ return -ENOSPC;
+ }
+
+ SM_I(sbi)->additional_reserved_segments = wanted_reserved_segments;
+
+ f2fs_info(sbi, "IO align feature needs additional reserved segment: %u",
+ wanted_reserved_segments);
+
+ return 0;
+}
+
static inline void adjust_unusable_cap_perc(struct f2fs_sb_info *sbi)
{
if (!F2FS_OPTION(sbi).unusable_cap_perc)
@@ -4180,6 +4220,10 @@ static int f2fs_fill_super(struct super_block *sb, void *data, int silent)
goto free_nm;
}
+ err = adjust_reserved_segment(sbi);
+ if (err)
+ goto free_nm;
+
/* For write statistics */
sbi->sectors_written_start = f2fs_get_sectors_written(sbi);
diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c
index 7d289249cd7e..8cdeac090f81 100644
--- a/fs/f2fs/sysfs.c
+++ b/fs/f2fs/sysfs.c
@@ -415,7 +415,9 @@ static ssize_t __sbi_store(struct f2fs_attr *a,
if (a->struct_type == RESERVED_BLOCKS) {
spin_lock(&sbi->stat_lock);
if (t > (unsigned long)(sbi->user_block_count -
- F2FS_OPTION(sbi).root_reserved_blocks)) {
+ F2FS_OPTION(sbi).root_reserved_blocks -
+ sbi->blocks_per_seg *
+ SM_I(sbi)->additional_reserved_segments)) {
spin_unlock(&sbi->stat_lock);
return -EINVAL;
}
diff --git a/fs/f2fs/xattr.c b/fs/f2fs/xattr.c
index e348f33bcb2b..797ac505a075 100644
--- a/fs/f2fs/xattr.c
+++ b/fs/f2fs/xattr.c
@@ -684,8 +684,17 @@ static int __f2fs_setxattr(struct inode *inode, int index,
}
last = here;
- while (!IS_XATTR_LAST_ENTRY(last))
+ while (!IS_XATTR_LAST_ENTRY(last)) {
+ if ((void *)(last) + sizeof(__u32) > last_base_addr ||
+ (void *)XATTR_NEXT_ENTRY(last) > last_base_addr) {
+ f2fs_err(F2FS_I_SB(inode), "inode (%lu) has invalid last xattr entry, entry_size: %zu",
+ inode->i_ino, ENTRY_SIZE(last));
+ set_sbi_flag(F2FS_I_SB(inode), SBI_NEED_FSCK);
+ error = -EFSCORRUPTED;
+ goto exit;
+ }
last = XATTR_NEXT_ENTRY(last);
+ }
newsize = XATTR_ALIGN(sizeof(struct f2fs_xattr_entry) + len + size);
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 9d6c5f6361f7..df81768c81a7 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -2910,7 +2910,7 @@ fuse_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
static int fuse_writeback_range(struct inode *inode, loff_t start, loff_t end)
{
- int err = filemap_write_and_wait_range(inode->i_mapping, start, -1);
+ int err = filemap_write_and_wait_range(inode->i_mapping, start, LLONG_MAX);
if (!err)
fuse_sync_writes(inode);
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index 49d2e686be74..a7c6c7498be0 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -409,10 +409,11 @@ hugetlb_vmdelete_list(struct rb_root_cached *root, pgoff_t start, pgoff_t end)
struct vm_area_struct *vma;
/*
- * end == 0 indicates that the entire range after
- * start should be unmapped.
+ * end == 0 indicates that the entire range after start should be
+ * unmapped. Note, end is exclusive, whereas the interval tree takes
+ * an inclusive "last".
*/
- vma_interval_tree_foreach(vma, root, start, end ? end : ULONG_MAX) {
+ vma_interval_tree_foreach(vma, root, start, end ? end - 1 : ULONG_MAX) {
unsigned long v_offset;
unsigned long v_end;
diff --git a/fs/io_uring.c b/fs/io_uring.c
index fb2a0cb4aaf8..e0fbb940fe5c 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -5928,6 +5928,7 @@ static int io_poll_update(struct io_kiocb *req, unsigned int issue_flags)
* update those. For multishot, if we're racing with completion, just
* let completion re-add it.
*/
+ io_poll_remove_double(preq);
completing = !__io_poll_remove_one(preq, &preq->poll, false);
if (completing && (preq->poll.events & EPOLLONESHOT)) {
ret = -EALREADY;
@@ -6544,12 +6545,15 @@ static __cold void io_drain_req(struct io_kiocb *req)
u32 seq = io_get_sequence(req);
/* Still need defer if there is pending req in defer list. */
+ spin_lock(&ctx->completion_lock);
if (!req_need_defer(req, seq) && list_empty_careful(&ctx->defer_list)) {
+ spin_unlock(&ctx->completion_lock);
queue:
ctx->drain_active = false;
io_req_task_queue(req);
return;
}
+ spin_unlock(&ctx->completion_lock);
ret = io_req_prep_async(req);
if (ret) {
diff --git a/fs/jffs2/file.c b/fs/jffs2/file.c
index 4fc8cd698d1a..bd7d58d27bfc 100644
--- a/fs/jffs2/file.c
+++ b/fs/jffs2/file.c
@@ -136,20 +136,15 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
struct page *pg;
struct inode *inode = mapping->host;
struct jffs2_inode_info *f = JFFS2_INODE_INFO(inode);
+ struct jffs2_sb_info *c = JFFS2_SB_INFO(inode->i_sb);
pgoff_t index = pos >> PAGE_SHIFT;
uint32_t pageofs = index << PAGE_SHIFT;
int ret = 0;
- pg = grab_cache_page_write_begin(mapping, index, flags);
- if (!pg)
- return -ENOMEM;
- *pagep = pg;
-
jffs2_dbg(1, "%s()\n", __func__);
if (pageofs > inode->i_size) {
/* Make new hole frag from old EOF to new page */
- struct jffs2_sb_info *c = JFFS2_SB_INFO(inode->i_sb);
struct jffs2_raw_inode ri;
struct jffs2_full_dnode *fn;
uint32_t alloc_len;
@@ -160,7 +155,7 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
ret = jffs2_reserve_space(c, sizeof(ri), &alloc_len,
ALLOC_NORMAL, JFFS2_SUMMARY_INODE_SIZE);
if (ret)
- goto out_page;
+ goto out_err;
mutex_lock(&f->sem);
memset(&ri, 0, sizeof(ri));
@@ -190,7 +185,7 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
ret = PTR_ERR(fn);
jffs2_complete_reservation(c);
mutex_unlock(&f->sem);
- goto out_page;
+ goto out_err;
}
ret = jffs2_add_full_dnode_to_inode(c, f, fn);
if (f->metadata) {
@@ -205,13 +200,26 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
jffs2_free_full_dnode(fn);
jffs2_complete_reservation(c);
mutex_unlock(&f->sem);
- goto out_page;
+ goto out_err;
}
jffs2_complete_reservation(c);
inode->i_size = pageofs;
mutex_unlock(&f->sem);
}
+ /*
+ * While getting a page and reading data in, lock c->alloc_sem until
+ * the page is Uptodate. Otherwise GC task may attempt to read the same
+ * page in read_cache_page(), which causes a deadlock.
+ */
+ mutex_lock(&c->alloc_sem);
+ pg = grab_cache_page_write_begin(mapping, index, flags);
+ if (!pg) {
+ ret = -ENOMEM;
+ goto release_sem;
+ }
+ *pagep = pg;
+
/*
* Read in the page if it wasn't already present. Cannot optimize away
* the whole page write case until jffs2_write_end can handle the
@@ -221,15 +229,17 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
mutex_lock(&f->sem);
ret = jffs2_do_readpage_nolock(inode, pg);
mutex_unlock(&f->sem);
- if (ret)
- goto out_page;
+ if (ret) {
+ unlock_page(pg);
+ put_page(pg);
+ goto release_sem;
+ }
}
jffs2_dbg(1, "end write_begin(). pg->flags %lx\n", pg->flags);
- return ret;
-out_page:
- unlock_page(pg);
- put_page(pg);
+release_sem:
+ mutex_unlock(&c->alloc_sem);
+out_err:
return ret;
}
diff --git a/fs/ksmbd/connection.c b/fs/ksmbd/connection.c
index 83a94d0bb480..d1d0105be5b1 100644
--- a/fs/ksmbd/connection.c
+++ b/fs/ksmbd/connection.c
@@ -62,6 +62,7 @@ struct ksmbd_conn *ksmbd_conn_alloc(void)
atomic_set(&conn->req_running, 0);
atomic_set(&conn->r_count, 0);
conn->total_credits = 1;
+ conn->outstanding_credits = 1;
init_waitqueue_head(&conn->req_running_q);
INIT_LIST_HEAD(&conn->conns_list);
diff --git a/fs/ksmbd/connection.h b/fs/ksmbd/connection.h
index e5403c587a58..8694aef482c1 100644
--- a/fs/ksmbd/connection.h
+++ b/fs/ksmbd/connection.h
@@ -61,8 +61,8 @@ struct ksmbd_conn {
atomic_t req_running;
/* References which are made for this Server object*/
atomic_t r_count;
- unsigned short total_credits;
- unsigned short max_credits;
+ unsigned int total_credits;
+ unsigned int outstanding_credits;
spinlock_t credits_lock;
wait_queue_head_t req_running_q;
/* Lock to protect requests list*/
diff --git a/fs/ksmbd/ksmbd_netlink.h b/fs/ksmbd/ksmbd_netlink.h
index c6718a05d347..71bfb7de4472 100644
--- a/fs/ksmbd/ksmbd_netlink.h
+++ b/fs/ksmbd/ksmbd_netlink.h
@@ -103,6 +103,8 @@ struct ksmbd_startup_request {
* we set the SPARSE_FILES bit (0x40).
*/
__u32 sub_auth[3]; /* Subauth value for Security ID */
+ __u32 smb2_max_credits; /* MAX credits */
+ __u32 reserved[128]; /* Reserved room */
__u32 ifc_list_sz; /* interfaces list size */
__s8 ____payload[];
};
@@ -113,7 +115,7 @@ struct ksmbd_startup_request {
* IPC request to shutdown ksmbd server.
*/
struct ksmbd_shutdown_request {
- __s32 reserved;
+ __s32 reserved[16];
};
/*
@@ -122,6 +124,7 @@ struct ksmbd_shutdown_request {
struct ksmbd_login_request {
__u32 handle;
__s8 account[KSMBD_REQ_MAX_ACCOUNT_NAME_SZ]; /* user account name */
+ __u32 reserved[16]; /* Reserved room */
};
/*
@@ -135,6 +138,7 @@ struct ksmbd_login_response {
__u16 status;
__u16 hash_sz; /* hash size */
__s8 hash[KSMBD_REQ_MAX_HASH_SZ]; /* password hash */
+ __u32 reserved[16]; /* Reserved room */
};
/*
@@ -143,6 +147,7 @@ struct ksmbd_login_response {
struct ksmbd_share_config_request {
__u32 handle;
__s8 share_name[KSMBD_REQ_MAX_SHARE_NAME]; /* share name */
+ __u32 reserved[16]; /* Reserved room */
};
/*
@@ -157,6 +162,7 @@ struct ksmbd_share_config_response {
__u16 force_directory_mode;
__u16 force_uid;
__u16 force_gid;
+ __u32 reserved[128]; /* Reserved room */
__u32 veto_list_sz;
__s8 ____payload[];
};
@@ -187,6 +193,7 @@ struct ksmbd_tree_connect_request {
__s8 account[KSMBD_REQ_MAX_ACCOUNT_NAME_SZ];
__s8 share[KSMBD_REQ_MAX_SHARE_NAME];
__s8 peer_addr[64];
+ __u32 reserved[16]; /* Reserved room */
};
/*
@@ -196,6 +203,7 @@ struct ksmbd_tree_connect_response {
__u32 handle;
__u16 status;
__u16 connection_flags;
+ __u32 reserved[16]; /* Reserved room */
};
/*
@@ -204,6 +212,7 @@ struct ksmbd_tree_connect_response {
struct ksmbd_tree_disconnect_request {
__u64 session_id; /* session id */
__u64 connect_id; /* tree connection id */
+ __u32 reserved[16]; /* Reserved room */
};
/*
@@ -212,6 +221,7 @@ struct ksmbd_tree_disconnect_request {
struct ksmbd_logout_request {
__s8 account[KSMBD_REQ_MAX_ACCOUNT_NAME_SZ]; /* user account name */
__u32 account_flags;
+ __u32 reserved[16]; /* Reserved room */
};
/*
diff --git a/fs/ksmbd/smb2misc.c b/fs/ksmbd/smb2misc.c
index 50d0b1022289..4a9460153b59 100644
--- a/fs/ksmbd/smb2misc.c
+++ b/fs/ksmbd/smb2misc.c
@@ -289,7 +289,7 @@ static int smb2_validate_credit_charge(struct ksmbd_conn *conn,
unsigned int req_len = 0, expect_resp_len = 0, calc_credit_num, max_len;
unsigned short credit_charge = le16_to_cpu(hdr->CreditCharge);
void *__hdr = hdr;
- int ret;
+ int ret = 0;
switch (hdr->Command) {
case SMB2_QUERY_INFO:
@@ -326,21 +326,27 @@ static int smb2_validate_credit_charge(struct ksmbd_conn *conn,
ksmbd_debug(SMB, "Insufficient credit charge, given: %d, needed: %d\n",
credit_charge, calc_credit_num);
return 1;
- } else if (credit_charge > conn->max_credits) {
+ } else if (credit_charge > conn->vals->max_credits) {
ksmbd_debug(SMB, "Too large credit charge: %d\n", credit_charge);
return 1;
}
spin_lock(&conn->credits_lock);
- if (credit_charge <= conn->total_credits) {
- conn->total_credits -= credit_charge;
- ret = 0;
- } else {
+ if (credit_charge > conn->total_credits) {
ksmbd_debug(SMB, "Insufficient credits granted, given: %u, granted: %u\n",
credit_charge, conn->total_credits);
ret = 1;
}
+
+ if ((u64)conn->outstanding_credits + credit_charge > conn->vals->max_credits) {
+ ksmbd_debug(SMB, "Limits exceeding the maximum allowable outstanding requests, given : %u, pending : %u\n",
+ credit_charge, conn->outstanding_credits);
+ ret = 1;
+ } else
+ conn->outstanding_credits += credit_charge;
+
spin_unlock(&conn->credits_lock);
+
return ret;
}
diff --git a/fs/ksmbd/smb2ops.c b/fs/ksmbd/smb2ops.c
index 02a44d28bdaf..ab23da2120b9 100644
--- a/fs/ksmbd/smb2ops.c
+++ b/fs/ksmbd/smb2ops.c
@@ -19,6 +19,7 @@ static struct smb_version_values smb21_server_values = {
.max_read_size = SMB21_DEFAULT_IOSIZE,
.max_write_size = SMB21_DEFAULT_IOSIZE,
.max_trans_size = SMB21_DEFAULT_IOSIZE,
+ .max_credits = SMB2_MAX_CREDITS,
.large_lock_type = 0,
.exclusive_lock_type = SMB2_LOCKFLAG_EXCLUSIVE,
.shared_lock_type = SMB2_LOCKFLAG_SHARED,
@@ -44,6 +45,7 @@ static struct smb_version_values smb30_server_values = {
.max_read_size = SMB3_DEFAULT_IOSIZE,
.max_write_size = SMB3_DEFAULT_IOSIZE,
.max_trans_size = SMB3_DEFAULT_TRANS_SIZE,
+ .max_credits = SMB2_MAX_CREDITS,
.large_lock_type = 0,
.exclusive_lock_type = SMB2_LOCKFLAG_EXCLUSIVE,
.shared_lock_type = SMB2_LOCKFLAG_SHARED,
@@ -70,6 +72,7 @@ static struct smb_version_values smb302_server_values = {
.max_read_size = SMB3_DEFAULT_IOSIZE,
.max_write_size = SMB3_DEFAULT_IOSIZE,
.max_trans_size = SMB3_DEFAULT_TRANS_SIZE,
+ .max_credits = SMB2_MAX_CREDITS,
.large_lock_type = 0,
.exclusive_lock_type = SMB2_LOCKFLAG_EXCLUSIVE,
.shared_lock_type = SMB2_LOCKFLAG_SHARED,
@@ -96,6 +99,7 @@ static struct smb_version_values smb311_server_values = {
.max_read_size = SMB3_DEFAULT_IOSIZE,
.max_write_size = SMB3_DEFAULT_IOSIZE,
.max_trans_size = SMB3_DEFAULT_TRANS_SIZE,
+ .max_credits = SMB2_MAX_CREDITS,
.large_lock_type = 0,
.exclusive_lock_type = SMB2_LOCKFLAG_EXCLUSIVE,
.shared_lock_type = SMB2_LOCKFLAG_SHARED,
@@ -197,7 +201,6 @@ void init_smb2_1_server(struct ksmbd_conn *conn)
conn->ops = &smb2_0_server_ops;
conn->cmds = smb2_0_server_cmds;
conn->max_cmds = ARRAY_SIZE(smb2_0_server_cmds);
- conn->max_credits = SMB2_MAX_CREDITS;
conn->signing_algorithm = SIGNING_ALG_HMAC_SHA256_LE;
if (server_conf.flags & KSMBD_GLOBAL_FLAG_SMB2_LEASES)
@@ -215,7 +218,6 @@ void init_smb3_0_server(struct ksmbd_conn *conn)
conn->ops = &smb3_0_server_ops;
conn->cmds = smb2_0_server_cmds;
conn->max_cmds = ARRAY_SIZE(smb2_0_server_cmds);
- conn->max_credits = SMB2_MAX_CREDITS;
conn->signing_algorithm = SIGNING_ALG_AES_CMAC_LE;
if (server_conf.flags & KSMBD_GLOBAL_FLAG_SMB2_LEASES)
@@ -240,7 +242,6 @@ void init_smb3_02_server(struct ksmbd_conn *conn)
conn->ops = &smb3_0_server_ops;
conn->cmds = smb2_0_server_cmds;
conn->max_cmds = ARRAY_SIZE(smb2_0_server_cmds);
- conn->max_credits = SMB2_MAX_CREDITS;
conn->signing_algorithm = SIGNING_ALG_AES_CMAC_LE;
if (server_conf.flags & KSMBD_GLOBAL_FLAG_SMB2_LEASES)
@@ -265,7 +266,6 @@ int init_smb3_11_server(struct ksmbd_conn *conn)
conn->ops = &smb3_11_server_ops;
conn->cmds = smb2_0_server_cmds;
conn->max_cmds = ARRAY_SIZE(smb2_0_server_cmds);
- conn->max_credits = SMB2_MAX_CREDITS;
conn->signing_algorithm = SIGNING_ALG_AES_CMAC_LE;
if (server_conf.flags & KSMBD_GLOBAL_FLAG_SMB2_LEASES)
@@ -304,3 +304,11 @@ void init_smb2_max_trans_size(unsigned int sz)
smb302_server_values.max_trans_size = sz;
smb311_server_values.max_trans_size = sz;
}
+
+void init_smb2_max_credits(unsigned int sz)
+{
+ smb21_server_values.max_credits = sz;
+ smb30_server_values.max_credits = sz;
+ smb302_server_values.max_credits = sz;
+ smb311_server_values.max_credits = sz;
+}
diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c
index b8b3a4c28b74..32300bd6af7a 100644
--- a/fs/ksmbd/smb2pdu.c
+++ b/fs/ksmbd/smb2pdu.c
@@ -299,16 +299,15 @@ int smb2_set_rsp_credits(struct ksmbd_work *work)
struct smb2_hdr *req_hdr = ksmbd_req_buf_next(work);
struct smb2_hdr *hdr = ksmbd_resp_buf_next(work);
struct ksmbd_conn *conn = work->conn;
- unsigned short credits_requested;
+ unsigned short credits_requested, aux_max;
unsigned short credit_charge, credits_granted = 0;
- unsigned short aux_max, aux_credits;
if (work->send_no_response)
return 0;
hdr->CreditCharge = req_hdr->CreditCharge;
- if (conn->total_credits > conn->max_credits) {
+ if (conn->total_credits > conn->vals->max_credits) {
hdr->CreditRequest = 0;
pr_err("Total credits overflow: %d\n", conn->total_credits);
return -EINVAL;
@@ -316,6 +315,14 @@ int smb2_set_rsp_credits(struct ksmbd_work *work)
credit_charge = max_t(unsigned short,
le16_to_cpu(req_hdr->CreditCharge), 1);
+ if (credit_charge > conn->total_credits) {
+ ksmbd_debug(SMB, "Insufficient credits granted, given: %u, granted: %u\n",
+ credit_charge, conn->total_credits);
+ return -EINVAL;
+ }
+
+ conn->total_credits -= credit_charge;
+ conn->outstanding_credits -= credit_charge;
credits_requested = max_t(unsigned short,
le16_to_cpu(req_hdr->CreditRequest), 1);
@@ -325,16 +332,14 @@ int smb2_set_rsp_credits(struct ksmbd_work *work)
* TODO: Need to adjuct CreditRequest value according to
* current cpu load
*/
- aux_credits = credits_requested - 1;
if (hdr->Command == SMB2_NEGOTIATE)
- aux_max = 0;
+ aux_max = 1;
else
- aux_max = conn->max_credits - credit_charge;
- aux_credits = min_t(unsigned short, aux_credits, aux_max);
- credits_granted = credit_charge + aux_credits;
+ aux_max = conn->vals->max_credits - credit_charge;
+ credits_granted = min_t(unsigned short, credits_requested, aux_max);
- if (conn->max_credits - conn->total_credits < credits_granted)
- credits_granted = conn->max_credits -
+ if (conn->vals->max_credits - conn->total_credits < credits_granted)
+ credits_granted = conn->vals->max_credits -
conn->total_credits;
conn->total_credits += credits_granted;
@@ -1455,11 +1460,6 @@ static int ntlm_authenticate(struct ksmbd_work *work)
sess->user = user;
if (user_guest(sess->user)) {
- if (conn->sign) {
- ksmbd_debug(SMB, "Guest login not allowed when signing enabled\n");
- return -EPERM;
- }
-
rsp->SessionFlags = SMB2_SESSION_FLAG_IS_GUEST_LE;
} else {
struct authenticate_message *authblob;
@@ -1472,38 +1472,39 @@ static int ntlm_authenticate(struct ksmbd_work *work)
ksmbd_debug(SMB, "authentication failed\n");
return -EPERM;
}
+ }
- /*
- * If session state is SMB2_SESSION_VALID, We can assume
- * that it is reauthentication. And the user/password
- * has been verified, so return it here.
- */
- if (sess->state == SMB2_SESSION_VALID) {
- if (conn->binding)
- goto binding_session;
- return 0;
- }
+ /*
+ * If session state is SMB2_SESSION_VALID, We can assume
+ * that it is reauthentication. And the user/password
+ * has been verified, so return it here.
+ */
+ if (sess->state == SMB2_SESSION_VALID) {
+ if (conn->binding)
+ goto binding_session;
+ return 0;
+ }
- if ((conn->sign || server_conf.enforced_signing) ||
- (req->SecurityMode & SMB2_NEGOTIATE_SIGNING_REQUIRED))
- sess->sign = true;
+ if ((rsp->SessionFlags != SMB2_SESSION_FLAG_IS_GUEST_LE &&
+ (conn->sign || server_conf.enforced_signing)) ||
+ (req->SecurityMode & SMB2_NEGOTIATE_SIGNING_REQUIRED))
+ sess->sign = true;
- if (smb3_encryption_negotiated(conn) &&
- !(req->Flags & SMB2_SESSION_REQ_FLAG_BINDING)) {
- rc = conn->ops->generate_encryptionkey(sess);
- if (rc) {
- ksmbd_debug(SMB,
- "SMB3 encryption key generation failed\n");
- return -EINVAL;
- }
- sess->enc = true;
- rsp->SessionFlags = SMB2_SESSION_FLAG_ENCRYPT_DATA_LE;
- /*
- * signing is disable if encryption is enable
- * on this session
- */
- sess->sign = false;
+ if (smb3_encryption_negotiated(conn) &&
+ !(req->Flags & SMB2_SESSION_REQ_FLAG_BINDING)) {
+ rc = conn->ops->generate_encryptionkey(sess);
+ if (rc) {
+ ksmbd_debug(SMB,
+ "SMB3 encryption key generation failed\n");
+ return -EINVAL;
}
+ sess->enc = true;
+ rsp->SessionFlags = SMB2_SESSION_FLAG_ENCRYPT_DATA_LE;
+ /*
+ * signing is disable if encryption is enable
+ * on this session
+ */
+ sess->sign = false;
}
binding_session:
diff --git a/fs/ksmbd/smb2pdu.h b/fs/ksmbd/smb2pdu.h
index 4a3e4339d4c4..725b800c29c8 100644
--- a/fs/ksmbd/smb2pdu.h
+++ b/fs/ksmbd/smb2pdu.h
@@ -980,6 +980,7 @@ int init_smb3_11_server(struct ksmbd_conn *conn);
void init_smb2_max_read_size(unsigned int sz);
void init_smb2_max_write_size(unsigned int sz);
void init_smb2_max_trans_size(unsigned int sz);
+void init_smb2_max_credits(unsigned int sz);
bool is_smb2_neg_cmd(struct ksmbd_work *work);
bool is_smb2_rsp(struct ksmbd_work *work);
diff --git a/fs/ksmbd/smb_common.h b/fs/ksmbd/smb_common.h
index 50590842b651..e1369b4345a9 100644
--- a/fs/ksmbd/smb_common.h
+++ b/fs/ksmbd/smb_common.h
@@ -365,6 +365,7 @@ struct smb_version_values {
__u32 max_read_size;
__u32 max_write_size;
__u32 max_trans_size;
+ __u32 max_credits;
__u32 large_lock_type;
__u32 exclusive_lock_type;
__u32 shared_lock_type;
diff --git a/fs/ksmbd/transport_ipc.c b/fs/ksmbd/transport_ipc.c
index 1acf1892a466..3ad6881e0f7e 100644
--- a/fs/ksmbd/transport_ipc.c
+++ b/fs/ksmbd/transport_ipc.c
@@ -301,6 +301,8 @@ static int ipc_server_config_on_startup(struct ksmbd_startup_request *req)
init_smb2_max_write_size(req->smb2_max_write);
if (req->smb2_max_trans)
init_smb2_max_trans_size(req->smb2_max_trans);
+ if (req->smb2_max_credits)
+ init_smb2_max_credits(req->smb2_max_credits);
ret = ksmbd_set_netbios_name(req->netbios_name);
ret |= ksmbd_set_server_string(req->server_string);
diff --git a/fs/ksmbd/transport_tcp.c b/fs/ksmbd/transport_tcp.c
index c14320e03b69..82a1429bbe12 100644
--- a/fs/ksmbd/transport_tcp.c
+++ b/fs/ksmbd/transport_tcp.c
@@ -404,7 +404,7 @@ static int create_socket(struct interface *iface)
&ksmbd_socket);
if (ret) {
pr_err("Can't create socket for ipv4: %d\n", ret);
- goto out_error;
+ goto out_clear;
}
sin.sin_family = PF_INET;
@@ -462,6 +462,7 @@ static int create_socket(struct interface *iface)
out_error:
tcp_destroy_socket(ksmbd_socket);
+out_clear:
iface->ksmbd_socket = NULL;
return ret;
}
diff --git a/fs/nfsd/nfs3xdr.c b/fs/nfsd/nfs3xdr.c
index c3ac1b6aa3aa..84088581bbe0 100644
--- a/fs/nfsd/nfs3xdr.c
+++ b/fs/nfsd/nfs3xdr.c
@@ -487,11 +487,6 @@ svcxdr_encode_wcc_data(struct svc_rqst *rqstp, struct xdr_stream *xdr,
return true;
}
-static bool fs_supports_change_attribute(struct super_block *sb)
-{
- return sb->s_flags & SB_I_VERSION || sb->s_export_op->fetch_iversion;
-}
-
/*
* Fill in the pre_op attr for the wcc data
*/
@@ -500,26 +495,24 @@ void fill_pre_wcc(struct svc_fh *fhp)
struct inode *inode;
struct kstat stat;
bool v4 = (fhp->fh_maxsize == NFS4_FHSIZE);
+ __be32 err;
if (fhp->fh_no_wcc || fhp->fh_pre_saved)
return;
inode = d_inode(fhp->fh_dentry);
- if (fs_supports_change_attribute(inode->i_sb) || !v4) {
- __be32 err = fh_getattr(fhp, &stat);
-
- if (err) {
- /* Grab the times from inode anyway */
- stat.mtime = inode->i_mtime;
- stat.ctime = inode->i_ctime;
- stat.size = inode->i_size;
- }
- fhp->fh_pre_mtime = stat.mtime;
- fhp->fh_pre_ctime = stat.ctime;
- fhp->fh_pre_size = stat.size;
+ err = fh_getattr(fhp, &stat);
+ if (err) {
+ /* Grab the times from inode anyway */
+ stat.mtime = inode->i_mtime;
+ stat.ctime = inode->i_ctime;
+ stat.size = inode->i_size;
}
if (v4)
fhp->fh_pre_change = nfsd4_change_attribute(&stat, inode);
+ fhp->fh_pre_mtime = stat.mtime;
+ fhp->fh_pre_ctime = stat.ctime;
+ fhp->fh_pre_size = stat.size;
fhp->fh_pre_saved = true;
}
@@ -530,6 +523,7 @@ void fill_post_wcc(struct svc_fh *fhp)
{
bool v4 = (fhp->fh_maxsize == NFS4_FHSIZE);
struct inode *inode = d_inode(fhp->fh_dentry);
+ __be32 err;
if (fhp->fh_no_wcc)
return;
@@ -537,16 +531,12 @@ void fill_post_wcc(struct svc_fh *fhp)
if (fhp->fh_post_saved)
printk("nfsd: inode locked twice during operation.\n");
- fhp->fh_post_saved = true;
-
- if (fs_supports_change_attribute(inode->i_sb) || !v4) {
- __be32 err = fh_getattr(fhp, &fhp->fh_post_attr);
-
- if (err) {
- fhp->fh_post_saved = false;
- fhp->fh_post_attr.ctime = inode->i_ctime;
- }
- }
+ err = fh_getattr(fhp, &fhp->fh_post_attr);
+ if (err) {
+ fhp->fh_post_saved = false;
+ fhp->fh_post_attr.ctime = inode->i_ctime;
+ } else
+ fhp->fh_post_saved = true;
if (v4)
fhp->fh_post_change =
nfsd4_change_attribute(&fhp->fh_post_attr, inode);
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 1956d377d1a6..b94b3bb2b8a6 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -6040,7 +6040,11 @@ nfs4_preprocess_stateid_op(struct svc_rqst *rqstp,
*nfp = NULL;
if (ZERO_STATEID(stateid) || ONE_STATEID(stateid)) {
- status = check_special_stateids(net, fhp, stateid, flags);
+ if (cstid)
+ status = nfserr_bad_stateid;
+ else
+ status = check_special_stateids(net, fhp, stateid,
+ flags);
goto done;
}
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index c99857689e2c..7f2472e4b88f 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -987,6 +987,10 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct nfsd_file *nf,
iov_iter_kvec(&iter, WRITE, vec, vlen, *cnt);
if (flags & RWF_SYNC) {
down_write(&nf->nf_rwsem);
+ if (verf)
+ nfsd_copy_boot_verifier(verf,
+ net_generic(SVC_NET(rqstp),
+ nfsd_net_id));
host_err = vfs_iter_write(file, &iter, &pos, flags);
if (host_err < 0)
nfsd_reset_boot_verifier(net_generic(SVC_NET(rqstp),
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index f0fb25727d96..eb05038b7191 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -1853,7 +1853,6 @@ static int ubifs_remount_rw(struct ubifs_info *c)
kthread_stop(c->bgt);
c->bgt = NULL;
}
- free_wbufs(c);
kfree(c->write_reserve_buf);
c->write_reserve_buf = NULL;
vfree(c->ileb_buf);
diff --git a/fs/udf/ialloc.c b/fs/udf/ialloc.c
index 2ecf0e87660e..b5d611cee749 100644
--- a/fs/udf/ialloc.c
+++ b/fs/udf/ialloc.c
@@ -77,6 +77,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode)
GFP_KERNEL);
}
if (!iinfo->i_data) {
+ make_bad_inode(inode);
iput(inode);
return ERR_PTR(-ENOMEM);
}
@@ -86,6 +87,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode)
dinfo->i_location.partitionReferenceNum,
start, &err);
if (err) {
+ make_bad_inode(inode);
iput(inode);
return ERR_PTR(err);
}
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 480f9207a4c6..d6fe27b695c3 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -613,9 +613,10 @@ int acpi_enable_wakeup_device_power(struct acpi_device *dev, int state);
int acpi_disable_wakeup_device_power(struct acpi_device *dev);
#ifdef CONFIG_X86
-bool acpi_device_always_present(struct acpi_device *adev);
+bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *status);
#else
-static inline bool acpi_device_always_present(struct acpi_device *adev)
+static inline bool acpi_device_override_status(struct acpi_device *adev,
+ unsigned long long *status)
{
return false;
}
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h
index ff8b3c913f21..248242dca28d 100644
--- a/include/acpi/actypes.h
+++ b/include/acpi/actypes.h
@@ -536,8 +536,14 @@ typedef u64 acpi_integer;
* Can be used with access_width of struct acpi_generic_address and access_size of
* struct acpi_resource_generic_register.
*/
-#define ACPI_ACCESS_BIT_WIDTH(size) (1 << ((size) + 2))
-#define ACPI_ACCESS_BYTE_WIDTH(size) (1 << ((size) - 1))
+#define ACPI_ACCESS_BIT_SHIFT 2
+#define ACPI_ACCESS_BYTE_SHIFT -1
+#define ACPI_ACCESS_BIT_MAX (31 - ACPI_ACCESS_BIT_SHIFT)
+#define ACPI_ACCESS_BYTE_MAX (31 - ACPI_ACCESS_BYTE_SHIFT)
+#define ACPI_ACCESS_BIT_DEFAULT (8 - ACPI_ACCESS_BIT_SHIFT)
+#define ACPI_ACCESS_BYTE_DEFAULT (8 - ACPI_ACCESS_BYTE_SHIFT)
+#define ACPI_ACCESS_BIT_WIDTH(size) (1 << ((size) + ACPI_ACCESS_BIT_SHIFT))
+#define ACPI_ACCESS_BYTE_WIDTH(size) (1 << ((size) + ACPI_ACCESS_BYTE_SHIFT))
/*******************************************************************************
*
diff --git a/include/asm-generic/bitops/find.h b/include/asm-generic/bitops/find.h
index 0d132ee2a291..835f959a25f2 100644
--- a/include/asm-generic/bitops/find.h
+++ b/include/asm-generic/bitops/find.h
@@ -97,6 +97,7 @@ unsigned long find_next_zero_bit(const unsigned long *addr, unsigned long size,
#ifdef CONFIG_GENERIC_FIND_FIRST_BIT
+#ifndef find_first_bit
/**
* find_first_bit - find the first set bit in a memory region
* @addr: The address to start the search at
@@ -116,7 +117,9 @@ unsigned long find_first_bit(const unsigned long *addr, unsigned long size)
return _find_first_bit(addr, size);
}
+#endif
+#ifndef find_first_zero_bit
/**
* find_first_zero_bit - find the first cleared bit in a memory region
* @addr: The address to start the search at
@@ -136,6 +139,8 @@ unsigned long find_first_zero_bit(const unsigned long *addr, unsigned long size)
return _find_first_zero_bit(addr, size);
}
+#endif
+
#else /* CONFIG_GENERIC_FIND_FIRST_BIT */
#ifndef find_first_bit
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index 0cd95953cdf5..96c264c4be4f 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -291,8 +291,9 @@ struct drm_driver {
/**
* @gem_create_object: constructor for gem objects
*
- * Hook for allocating the GEM object struct, for use by the CMA and
- * SHMEM GEM helpers.
+ * Hook for allocating the GEM object struct, for use by the CMA
+ * and SHMEM GEM helpers. Returns a GEM object on success, or an
+ * ERR_PTR()-encoded error code otherwise.
*/
struct drm_gem_object *(*gem_create_object)(struct drm_device *dev,
size_t size);
diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
index f011e4c407f2..bbc22fad8d80 100644
--- a/include/drm/gpu_scheduler.h
+++ b/include/drm/gpu_scheduler.h
@@ -28,6 +28,7 @@
#include <linux/dma-fence.h>
#include <linux/completion.h>
#include <linux/xarray.h>
+#include <linux/irq_work.h>
#define MAX_WAIT_SCHED_ENTITY_Q_EMPTY msecs_to_jiffies(1000)
@@ -286,7 +287,16 @@ struct drm_sched_job {
struct list_head list;
struct drm_gpu_scheduler *sched;
struct drm_sched_fence *s_fence;
- struct dma_fence_cb finish_cb;
+
+ /*
+ * work is used only after finish_cb has been used and will not be
+ * accessed anymore.
+ */
+ union {
+ struct dma_fence_cb finish_cb;
+ struct irq_work work;
+ };
+
uint64_t id;
atomic_t karma;
enum drm_sched_priority s_priority;
diff --git a/include/linux/blk-pm.h b/include/linux/blk-pm.h
index b80c65aba249..2580e05a8ab6 100644
--- a/include/linux/blk-pm.h
+++ b/include/linux/blk-pm.h
@@ -14,7 +14,7 @@ extern void blk_pm_runtime_init(struct request_queue *q, struct device *dev);
extern int blk_pre_runtime_suspend(struct request_queue *q);
extern void blk_post_runtime_suspend(struct request_queue *q, int err);
extern void blk_pre_runtime_resume(struct request_queue *q);
-extern void blk_post_runtime_resume(struct request_queue *q, int err);
+extern void blk_post_runtime_resume(struct request_queue *q);
extern void blk_set_runtime_active(struct request_queue *q);
#else
static inline void blk_pm_runtime_init(struct request_queue *q,
diff --git a/include/linux/bpf.h b/include/linux/bpf.h
index 755f38e893be..9f20b0f539f7 100644
--- a/include/linux/bpf.h
+++ b/include/linux/bpf.h
@@ -1082,7 +1082,7 @@ struct bpf_array {
};
#define BPF_COMPLEXITY_LIMIT_INSNS 1000000 /* yes. 1M insns */
-#define MAX_TAIL_CALL_CNT 32
+#define MAX_TAIL_CALL_CNT 33
#define BPF_F_ACCESS_MASK (BPF_F_RDONLY | \
BPF_F_RDONLY_PROG | \
diff --git a/include/linux/bpf_verifier.h b/include/linux/bpf_verifier.h
index c8a78e830fca..182b16a91084 100644
--- a/include/linux/bpf_verifier.h
+++ b/include/linux/bpf_verifier.h
@@ -396,6 +396,13 @@ static inline bool bpf_verifier_log_needed(const struct bpf_verifier_log *log)
log->level == BPF_LOG_KERNEL);
}
+static inline bool
+bpf_verifier_log_attr_valid(const struct bpf_verifier_log *log)
+{
+ return log->len_total >= 128 && log->len_total <= UINT_MAX >> 2 &&
+ log->level && log->ubuf && !(log->level & ~BPF_LOG_MASK);
+}
+
#define BPF_MAX_SUBPROGS 256
struct bpf_subprog_info {
diff --git a/include/linux/hid.h b/include/linux/hid.h
index f453be385bd4..26742ca14609 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -349,6 +349,8 @@ struct hid_item {
/* BIT(9) reserved for backward compatibility, was NO_INIT_INPUT_REPORTS */
#define HID_QUIRK_ALWAYS_POLL BIT(10)
#define HID_QUIRK_INPUT_PER_APP BIT(11)
+#define HID_QUIRK_X_INVERT BIT(12)
+#define HID_QUIRK_Y_INVERT BIT(13)
#define HID_QUIRK_SKIP_OUTPUT_REPORTS BIT(16)
#define HID_QUIRK_SKIP_OUTPUT_REPORT_ID BIT(17)
#define HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP BIT(18)
diff --git a/include/linux/iio/trigger.h b/include/linux/iio/trigger.h
index 096f68dd2e0c..4c69b144677b 100644
--- a/include/linux/iio/trigger.h
+++ b/include/linux/iio/trigger.h
@@ -55,6 +55,7 @@ struct iio_trigger_ops {
* @attached_own_device:[INTERN] if we are using our own device as trigger,
* i.e. if we registered a poll function to the same
* device as the one providing the trigger.
+ * @reenable_work: [INTERN] work item used to ensure reenable can sleep.
**/
struct iio_trigger {
const struct iio_trigger_ops *ops;
@@ -74,6 +75,7 @@ struct iio_trigger {
unsigned long pool[BITS_TO_LONGS(CONFIG_IIO_CONSUMERS_PER_TRIGGER)];
struct mutex pool_lock;
bool attached_own_device;
+ struct work_struct reenable_work;
};
diff --git a/include/linux/kasan.h b/include/linux/kasan.h
index d8783b682669..89c99e5e67de 100644
--- a/include/linux/kasan.h
+++ b/include/linux/kasan.h
@@ -474,12 +474,12 @@ static inline void kasan_populate_early_vm_area_shadow(void *start,
* allocations with real shadow memory. With KASAN vmalloc, the special
* case is unnecessary, as the work is handled in the generic case.
*/
-int kasan_module_alloc(void *addr, size_t size);
+int kasan_module_alloc(void *addr, size_t size, gfp_t gfp_mask);
void kasan_free_shadow(const struct vm_struct *vm);
#else /* (CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS) && !CONFIG_KASAN_VMALLOC */
-static inline int kasan_module_alloc(void *addr, size_t size) { return 0; }
+static inline int kasan_module_alloc(void *addr, size_t size, gfp_t gfp_mask) { return 0; }
static inline void kasan_free_shadow(const struct vm_struct *vm) {}
#endif /* (CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS) && !CONFIG_KASAN_VMALLOC */
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 936dc0b6c226..aed44e9b5d89 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -1047,6 +1047,15 @@ static inline int is_highmem_idx(enum zone_type idx)
#endif
}
+#ifdef CONFIG_ZONE_DMA
+bool has_managed_dma(void);
+#else
+static inline bool has_managed_dma(void)
+{
+ return false;
+}
+#endif
+
/**
* is_highmem - helper function to quickly check if a struct zone is a
* highmem zone or not. This is an attempt to keep references
diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h
index b2f9dd3cbd69..5b88cd51fadb 100644
--- a/include/linux/mtd/rawnand.h
+++ b/include/linux/mtd/rawnand.h
@@ -1539,6 +1539,8 @@ int nand_read_data_op(struct nand_chip *chip, void *buf, unsigned int len,
bool force_8bit, bool check_only);
int nand_write_data_op(struct nand_chip *chip, const void *buf,
unsigned int len, bool force_8bit);
+int nand_read_page_hwecc_oob_first(struct nand_chip *chip, uint8_t *buf,
+ int oob_required, int page);
/* Scan and identify a NAND device */
int nand_scan_with_ids(struct nand_chip *chip, unsigned int max_chips,
diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h
index f67457748ed8..fc90fce26e33 100644
--- a/include/linux/mtd/spi-nor.h
+++ b/include/linux/mtd/spi-nor.h
@@ -371,7 +371,6 @@ struct spi_nor_flash_parameter;
* @bouncebuf_size: size of the bounce buffer
* @info: SPI NOR part JEDEC MFR ID and other info
* @manufacturer: SPI NOR manufacturer
- * @page_size: the page size of the SPI NOR
* @addr_width: number of address bytes
* @erase_opcode: the opcode for erasing a sector
* @read_opcode: the read opcode
@@ -401,7 +400,6 @@ struct spi_nor {
size_t bouncebuf_size;
const struct flash_info *info;
const struct spi_nor_manufacturer *manufacturer;
- u32 page_size;
u8 addr_width;
u8 erase_opcode;
u8 read_opcode;
diff --git a/include/linux/netfilter_netdev.h b/include/linux/netfilter_netdev.h
index b71b57a83bb4..b4dd96e4dc8d 100644
--- a/include/linux/netfilter_netdev.h
+++ b/include/linux/netfilter_netdev.h
@@ -94,7 +94,7 @@ static inline struct sk_buff *nf_hook_egress(struct sk_buff *skb, int *rc,
return skb;
#endif
- e = rcu_dereference(dev->nf_hooks_egress);
+ e = rcu_dereference_check(dev->nf_hooks_egress, rcu_read_lock_bh_held());
if (!e)
return skb;
diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h
index cf48983d3c86..ad09beb6d13c 100644
--- a/include/linux/of_fdt.h
+++ b/include/linux/of_fdt.h
@@ -62,6 +62,7 @@ extern int early_init_dt_scan_chosen(unsigned long node, const char *uname,
int depth, void *data);
extern int early_init_dt_scan_memory(unsigned long node, const char *uname,
int depth, void *data);
+extern void early_init_dt_check_for_usable_mem_range(void);
extern int early_init_dt_scan_chosen_stdout(void);
extern void early_init_fdt_scan_reserved_mem(void);
extern void early_init_fdt_reserve_self(void);
@@ -86,6 +87,7 @@ extern void unflatten_and_copy_device_tree(void);
extern void early_init_devtree(void *);
extern void early_get_first_memblock_info(void *, phys_addr_t *);
#else /* CONFIG_OF_EARLY_FLATTREE */
+static inline void early_init_dt_check_for_usable_mem_range(void) {}
static inline int early_init_dt_scan_chosen_stdout(void) { return -ENODEV; }
static inline void early_init_fdt_scan_reserved_mem(void) {}
static inline void early_init_fdt_reserve_self(void) {}
diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h
index eddd66d426ca..016de5776b6d 100644
--- a/include/linux/pm_runtime.h
+++ b/include/linux/pm_runtime.h
@@ -58,6 +58,7 @@ extern void pm_runtime_get_suppliers(struct device *dev);
extern void pm_runtime_put_suppliers(struct device *dev);
extern void pm_runtime_new_link(struct device *dev);
extern void pm_runtime_drop_link(struct device_link *link);
+extern void pm_runtime_release_supplier(struct device_link *link, bool check_idle);
extern int devm_pm_runtime_enable(struct device *dev);
@@ -283,6 +284,8 @@ static inline void pm_runtime_get_suppliers(struct device *dev) {}
static inline void pm_runtime_put_suppliers(struct device *dev) {}
static inline void pm_runtime_new_link(struct device *dev) {}
static inline void pm_runtime_drop_link(struct device_link *link) {}
+static inline void pm_runtime_release_supplier(struct device_link *link,
+ bool check_idle) {}
#endif /* !CONFIG_PM */
diff --git a/include/linux/psi_types.h b/include/linux/psi_types.h
index 0a23300d49af..0819c82dba92 100644
--- a/include/linux/psi_types.h
+++ b/include/linux/psi_types.h
@@ -21,7 +21,17 @@ enum psi_task_count {
* don't have to special case any state tracking for it.
*/
NR_ONCPU,
- NR_PSI_TASK_COUNTS = 4,
+ /*
+ * For IO and CPU stalls the presence of running/oncpu tasks
+ * in the domain means a partial rather than a full stall.
+ * For memory it's not so simple because of page reclaimers:
+ * they are running/oncpu while representing a stall. To tell
+ * whether a domain has productivity left or not, we need to
+ * distinguish between regular running (i.e. productive)
+ * threads and memstall ones.
+ */
+ NR_MEMSTALL_RUNNING,
+ NR_PSI_TASK_COUNTS = 5,
};
/* Task state bitmasks */
@@ -29,6 +39,7 @@ enum psi_task_count {
#define TSK_MEMSTALL (1 << NR_MEMSTALL)
#define TSK_RUNNING (1 << NR_RUNNING)
#define TSK_ONCPU (1 << NR_ONCPU)
+#define TSK_MEMSTALL_RUNNING (1 << NR_MEMSTALL_RUNNING)
/* Resources that workloads could be stalled on */
enum psi_res {
diff --git a/include/linux/ptp_clock_kernel.h b/include/linux/ptp_clock_kernel.h
index 2e5565067355..554454cb8693 100644
--- a/include/linux/ptp_clock_kernel.h
+++ b/include/linux/ptp_clock_kernel.h
@@ -351,15 +351,17 @@ int ptp_get_vclocks_index(int pclock_index, int **vclock_index);
*
* @hwtstamps: skb_shared_hwtstamps structure pointer
* @vclock_index: phc index of ptp vclock.
+ *
+ * Returns converted timestamp, or 0 on error.
*/
-void ptp_convert_timestamp(struct skb_shared_hwtstamps *hwtstamps,
- int vclock_index);
+ktime_t ptp_convert_timestamp(const struct skb_shared_hwtstamps *hwtstamps,
+ int vclock_index);
#else
static inline int ptp_get_vclocks_index(int pclock_index, int **vclock_index)
{ return 0; }
-static inline void ptp_convert_timestamp(struct skb_shared_hwtstamps *hwtstamps,
- int vclock_index)
-{ }
+static inline ktime_t ptp_convert_timestamp(const struct skb_shared_hwtstamps *hwtstamps,
+ int vclock_index)
+{ return 0; }
#endif
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 4507d77d6941..60ab0c2fe567 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -287,7 +287,9 @@ struct tc_skb_ext {
__u32 chain;
__u16 mru;
__u16 zone;
- bool post_ct;
+ u8 post_ct:1;
+ u8 post_ct_snat:1;
+ u8 post_ct_dnat:1;
};
#endif
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
index a6f03b36fc4f..1450397fc0bc 100644
--- a/include/linux/stmmac.h
+++ b/include/linux/stmmac.h
@@ -233,6 +233,7 @@ struct plat_stmmacenet_data {
int (*clks_config)(void *priv, bool enabled);
int (*crosststamp)(ktime_t *device, struct system_counterval_t *system,
void *ctx);
+ void (*dump_debug_regs)(void *priv);
void *bsp_priv;
struct clk *stmmac_clk;
struct clk *pclk;
diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h
index 6e022cc712e6..880227b9f044 100644
--- a/include/linux/vmalloc.h
+++ b/include/linux/vmalloc.h
@@ -28,6 +28,13 @@ struct notifier_block; /* in notifier.h */
#define VM_MAP_PUT_PAGES 0x00000200 /* put pages and free array in vfree */
#define VM_NO_HUGE_VMAP 0x00000400 /* force PAGE_SIZE pte mapping */
+#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \
+ !defined(CONFIG_KASAN_VMALLOC)
+#define VM_DEFER_KMEMLEAK 0x00000800 /* defer kmemleak object creation */
+#else
+#define VM_DEFER_KMEMLEAK 0
+#endif
+
/*
* VM_KASAN is used slightly differently depending on CONFIG_KASAN_VMALLOC.
*
diff --git a/include/media/cec.h b/include/media/cec.h
index 208c9613c07e..77346f757036 100644
--- a/include/media/cec.h
+++ b/include/media/cec.h
@@ -26,13 +26,17 @@
* @dev: cec device
* @cdev: cec character device
* @minor: device node minor number
+ * @lock: lock to serialize open/release and registration
* @registered: the device was correctly registered
* @unregistered: the device was unregistered
+ * @lock_fhs: lock to control access to @fhs
* @fhs: the list of open filehandles (cec_fh)
- * @lock: lock to control access to this structure
*
* This structure represents a cec-related device node.
*
+ * To add or remove filehandles from @fhs the @lock must be taken first,
+ * followed by @lock_fhs. It is safe to access @fhs if either lock is held.
+ *
* The @parent is a physical device. It must be set by core or device drivers
* before registering the node.
*/
@@ -43,10 +47,13 @@ struct cec_devnode {
/* device info */
int minor;
+ /* serialize open/release and registration */
+ struct mutex lock;
bool registered;
bool unregistered;
+ /* protect access to fhs */
+ struct mutex lock_fhs;
struct list_head fhs;
- struct mutex lock;
};
struct cec_adapter;
diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h
index 48cc5795ceda..63540be0fc34 100644
--- a/include/net/inet_frag.h
+++ b/include/net/inet_frag.h
@@ -117,8 +117,15 @@ int fqdir_init(struct fqdir **fqdirp, struct inet_frags *f, struct net *net);
static inline void fqdir_pre_exit(struct fqdir *fqdir)
{
- fqdir->high_thresh = 0; /* prevent creation of new frags */
- fqdir->dead = true;
+ /* Prevent creation of new frags.
+ * Pairs with READ_ONCE() in inet_frag_find().
+ */
+ WRITE_ONCE(fqdir->high_thresh, 0);
+
+ /* Pairs with READ_ONCE() in inet_frag_kill(), ip_expire()
+ * and ip6frag_expire_frag_queue().
+ */
+ WRITE_ONCE(fqdir->dead, true);
}
void fqdir_exit(struct fqdir *fqdir);
diff --git a/include/net/ipv6_frag.h b/include/net/ipv6_frag.h
index 851029ecff13..0a4779175a52 100644
--- a/include/net/ipv6_frag.h
+++ b/include/net/ipv6_frag.h
@@ -67,7 +67,8 @@ ip6frag_expire_frag_queue(struct net *net, struct frag_queue *fq)
struct sk_buff *head;
rcu_read_lock();
- if (fq->q.fqdir->dead)
+ /* Paired with the WRITE_ONCE() in fqdir_pre_exit(). */
+ if (READ_ONCE(fq->q.fqdir->dead))
goto out_rcu_unlock;
spin_lock(&fq->q.lock);
diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h
index 9e71691c491b..9e7b21c0b3a6 100644
--- a/include/net/pkt_sched.h
+++ b/include/net/pkt_sched.h
@@ -197,7 +197,9 @@ struct tc_skb_cb {
struct qdisc_skb_cb qdisc_cb;
u16 mru;
- bool post_ct;
+ u8 post_ct:1;
+ u8 post_ct_snat:1;
+ u8 post_ct_dnat:1;
u16 zone; /* Only valid if post_ct = true */
};
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index c70e6d2b2fdd..fddca0aa73ef 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -1244,6 +1244,7 @@ struct psched_ratecfg {
u64 rate_bytes_ps; /* bytes per second */
u32 mult;
u16 overhead;
+ u16 mpu;
u8 linklayer;
u8 shift;
};
@@ -1253,6 +1254,9 @@ static inline u64 psched_l2t_ns(const struct psched_ratecfg *r,
{
len += r->overhead;
+ if (len < r->mpu)
+ len = r->mpu;
+
if (unlikely(r->linklayer == TC_LINKLAYER_ATM))
return ((u64)(DIV_ROUND_UP(len,48)*53) * r->mult) >> r->shift;
@@ -1275,6 +1279,7 @@ static inline void psched_ratecfg_getrate(struct tc_ratespec *res,
res->rate = min_t(u64, r->rate_bytes_ps, ~0U);
res->overhead = r->overhead;
+ res->mpu = r->mpu;
res->linklayer = (r->linklayer & TC_LINKLAYER_MASK);
}
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index 2308210793a0..2b1ce8534993 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -200,6 +200,11 @@ struct xfrm_state {
struct xfrm_algo_aead *aead;
const char *geniv;
+ /* mapping change rate limiting */
+ __be16 new_mapping_sport;
+ u32 new_mapping; /* seconds */
+ u32 mapping_maxage; /* seconds for input SA */
+
/* Data for encapsulator */
struct xfrm_encap_tmpl *encap;
struct sock __rcu *encap_sk;
@@ -1162,7 +1167,7 @@ static inline int xfrm_route_forward(struct sk_buff *skb, unsigned short family)
{
struct net *net = dev_net(skb->dev);
- if (xfrm_default_allow(net, XFRM_POLICY_FWD))
+ if (xfrm_default_allow(net, XFRM_POLICY_OUT))
return !net->xfrm.policy_count[XFRM_POLICY_OUT] ||
(skb_dst(skb)->flags & DST_NOXFRM) ||
__xfrm_route_forward(skb, family);
diff --git a/include/sound/hda_codec.h b/include/sound/hda_codec.h
index 0e45963bb767..82d9daa17851 100644
--- a/include/sound/hda_codec.h
+++ b/include/sound/hda_codec.h
@@ -8,7 +8,7 @@
#ifndef __SOUND_HDA_CODEC_H
#define __SOUND_HDA_CODEC_H
-#include <linux/kref.h>
+#include <linux/refcount.h>
#include <linux/mod_devicetable.h>
#include <sound/info.h>
#include <sound/control.h>
@@ -166,8 +166,8 @@ struct hda_pcm {
bool own_chmap; /* codec driver provides own channel maps */
/* private: */
struct hda_codec *codec;
- struct kref kref;
struct list_head list;
+ unsigned int disconnected:1;
};
/* codec information */
@@ -187,6 +187,8 @@ struct hda_codec {
/* PCM to create, set by patch_ops.build_pcms callback */
struct list_head pcm_list_head;
+ refcount_t pcm_ref;
+ wait_queue_head_t remove_sleep;
/* codec specific info */
void *spec;
@@ -420,7 +422,7 @@ void snd_hda_codec_cleanup_for_unbind(struct hda_codec *codec);
static inline void snd_hda_codec_pcm_get(struct hda_pcm *pcm)
{
- kref_get(&pcm->kref);
+ refcount_inc(&pcm->codec->pcm_ref);
}
void snd_hda_codec_pcm_put(struct hda_pcm *pcm);
diff --git a/include/trace/events/cgroup.h b/include/trace/events/cgroup.h
index 7f42a3de59e6..dd7d7c9efecd 100644
--- a/include/trace/events/cgroup.h
+++ b/include/trace/events/cgroup.h
@@ -59,8 +59,8 @@ DECLARE_EVENT_CLASS(cgroup,
TP_STRUCT__entry(
__field( int, root )
- __field( int, id )
__field( int, level )
+ __field( u64, id )
__string( path, path )
),
@@ -71,7 +71,7 @@ DECLARE_EVENT_CLASS(cgroup,
__assign_str(path, path);
),
- TP_printk("root=%d id=%d level=%d path=%s",
+ TP_printk("root=%d id=%llu level=%d path=%s",
__entry->root, __entry->id, __entry->level, __get_str(path))
);
@@ -126,8 +126,8 @@ DECLARE_EVENT_CLASS(cgroup_migrate,
TP_STRUCT__entry(
__field( int, dst_root )
- __field( int, dst_id )
__field( int, dst_level )
+ __field( u64, dst_id )
__field( int, pid )
__string( dst_path, path )
__string( comm, task->comm )
@@ -142,7 +142,7 @@ DECLARE_EVENT_CLASS(cgroup_migrate,
__assign_str(comm, task->comm);
),
- TP_printk("dst_root=%d dst_id=%d dst_level=%d dst_path=%s pid=%d comm=%s",
+ TP_printk("dst_root=%d dst_id=%llu dst_level=%d dst_path=%s pid=%d comm=%s",
__entry->dst_root, __entry->dst_id, __entry->dst_level,
__get_str(dst_path), __entry->pid, __get_str(comm))
);
@@ -171,8 +171,8 @@ DECLARE_EVENT_CLASS(cgroup_event,
TP_STRUCT__entry(
__field( int, root )
- __field( int, id )
__field( int, level )
+ __field( u64, id )
__string( path, path )
__field( int, val )
),
@@ -185,7 +185,7 @@ DECLARE_EVENT_CLASS(cgroup_event,
__entry->val = val;
),
- TP_printk("root=%d id=%d level=%d path=%s val=%d",
+ TP_printk("root=%d id=%llu level=%d path=%s val=%d",
__entry->root, __entry->id, __entry->level, __get_str(path),
__entry->val)
);
diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h
index 3a99358c262b..7b5dcff84cf2 100644
--- a/include/trace/events/sunrpc.h
+++ b/include/trace/events/sunrpc.h
@@ -1744,10 +1744,11 @@ TRACE_EVENT(svc_xprt_create_err,
const char *program,
const char *protocol,
struct sockaddr *sap,
+ size_t salen,
const struct svc_xprt *xprt
),
- TP_ARGS(program, protocol, sap, xprt),
+ TP_ARGS(program, protocol, sap, salen, xprt),
TP_STRUCT__entry(
__field(long, error)
@@ -1760,7 +1761,7 @@ TRACE_EVENT(svc_xprt_create_err,
__entry->error = PTR_ERR(xprt);
__assign_str(program, program);
__assign_str(protocol, protocol);
- memcpy(__entry->addr, sap, sizeof(__entry->addr));
+ memcpy(__entry->addr, sap, min(salen, sizeof(__entry->addr)));
),
TP_printk("addr=%pISpc program=%s protocol=%s error=%ld",
@@ -2146,17 +2147,17 @@ DECLARE_EVENT_CLASS(svcsock_accept_class,
TP_STRUCT__entry(
__field(long, status)
__string(service, service)
- __array(unsigned char, addr, sizeof(struct sockaddr_in6))
+ __field(unsigned int, netns_ino)
),
TP_fast_assign(
__entry->status = status;
__assign_str(service, service);
- memcpy(__entry->addr, &xprt->xpt_local, sizeof(__entry->addr));
+ __entry->netns_ino = xprt->xpt_net->ns.inum;
),
- TP_printk("listener=%pISpc service=%s status=%ld",
- __entry->addr, __get_str(service), __entry->status
+ TP_printk("addr=listener service=%s status=%ld",
+ __get_str(service), __entry->status
)
);
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index ba5af15e25f5..b12cfceddb6e 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -1744,7 +1744,7 @@ union bpf_attr {
* if the maximum number of tail calls has been reached for this
* chain of programs. This limit is defined in the kernel by the
* macro **MAX_TAIL_CALL_CNT** (not accessible to user space),
- * which is currently set to 32.
+ * which is currently set to 33.
* Return
* 0 on success, or a negative error in case of failure.
*
diff --git a/include/uapi/linux/xfrm.h b/include/uapi/linux/xfrm.h
index eda0426ec4c2..4e29d7851890 100644
--- a/include/uapi/linux/xfrm.h
+++ b/include/uapi/linux/xfrm.h
@@ -313,6 +313,7 @@ enum xfrm_attr_type_t {
XFRMA_SET_MARK, /* __u32 */
XFRMA_SET_MARK_MASK, /* __u32 */
XFRMA_IF_ID, /* __u32 */
+ XFRMA_MTIMER_THRESH, /* __u32 in seconds for input SA */
__XFRMA_MAX
#define XFRMA_OUTPUT_MARK XFRMA_SET_MARK /* Compatibility */
diff --git a/include/uapi/misc/habanalabs.h b/include/uapi/misc/habanalabs.h
index 00b309590499..c5760acebdd1 100644
--- a/include/uapi/misc/habanalabs.h
+++ b/include/uapi/misc/habanalabs.h
@@ -911,14 +911,18 @@ struct hl_wait_cs_in {
*/
__u32 flags;
- /* Multi CS API info- valid entries in multi-CS array */
- __u8 seq_arr_len;
- __u8 pad[3];
+ union {
+ struct {
+ /* Multi CS API info- valid entries in multi-CS array */
+ __u8 seq_arr_len;
+ __u8 pad[7];
+ };
- /* Absolute timeout to wait for an interrupt in microseconds.
- * Relevant only when HL_WAIT_CS_FLAGS_INTERRUPT is set
- */
- __u32 interrupt_timeout_us;
+ /* Absolute timeout to wait for an interrupt in microseconds.
+ * Relevant only when HL_WAIT_CS_FLAGS_INTERRUPT is set
+ */
+ __u64 interrupt_timeout_us;
+ };
};
#define HL_WAIT_CS_STATUS_COMPLETED 0
diff --git a/kernel/audit.c b/kernel/audit.c
index 4cebadb5f30d..eab7282668ab 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -1540,6 +1540,20 @@ static void audit_receive(struct sk_buff *skb)
nlh = nlmsg_next(nlh, &len);
}
audit_ctl_unlock();
+
+ /* can't block with the ctrl lock, so penalize the sender now */
+ if (audit_backlog_limit &&
+ (skb_queue_len(&audit_queue) > audit_backlog_limit)) {
+ DECLARE_WAITQUEUE(wait, current);
+
+ /* wake kauditd to try and flush the queue */
+ wake_up_interruptible(&kauditd_wait);
+
+ add_wait_queue_exclusive(&audit_backlog_wait, &wait);
+ set_current_state(TASK_UNINTERRUPTIBLE);
+ schedule_timeout(audit_backlog_wait_time);
+ remove_wait_queue(&audit_backlog_wait, &wait);
+ }
}
/* Log information about who is connecting to the audit multicast socket */
@@ -1824,7 +1838,9 @@ struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask,
* task_tgid_vnr() since auditd_pid is set in audit_receive_msg()
* using a PID anchored in the caller's namespace
* 2. generator holding the audit_cmd_mutex - we don't want to block
- * while holding the mutex */
+ * while holding the mutex, although we do penalize the sender
+ * later in audit_receive() when it is safe to block
+ */
if (!(auditd_test_task(current) || audit_ctl_owner_current())) {
long stime = audit_backlog_wait_time;
diff --git a/kernel/bpf/bloom_filter.c b/kernel/bpf/bloom_filter.c
index 277a05e9c984..b141a1346f72 100644
--- a/kernel/bpf/bloom_filter.c
+++ b/kernel/bpf/bloom_filter.c
@@ -82,6 +82,11 @@ static int bloom_map_delete_elem(struct bpf_map *map, void *value)
return -EOPNOTSUPP;
}
+static int bloom_map_get_next_key(struct bpf_map *map, void *key, void *next_key)
+{
+ return -EOPNOTSUPP;
+}
+
static struct bpf_map *bloom_map_alloc(union bpf_attr *attr)
{
u32 bitset_bytes, bitset_mask, nr_hash_funcs, nr_bits;
@@ -192,6 +197,7 @@ const struct bpf_map_ops bloom_filter_map_ops = {
.map_meta_equal = bpf_map_meta_equal,
.map_alloc = bloom_map_alloc,
.map_free = bloom_map_free,
+ .map_get_next_key = bloom_map_get_next_key,
.map_push_elem = bloom_map_push_elem,
.map_peek_elem = bloom_map_peek_elem,
.map_pop_elem = bloom_map_pop_elem,
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
index 9bdb03767db5..5e037070cb65 100644
--- a/kernel/bpf/btf.c
+++ b/kernel/bpf/btf.c
@@ -4460,8 +4460,7 @@ static struct btf *btf_parse(bpfptr_t btf_data, u32 btf_data_size,
log->len_total = log_size;
/* log attributes have to be sane */
- if (log->len_total < 128 || log->len_total > UINT_MAX >> 8 ||
- !log->level || !log->ubuf) {
+ if (!bpf_verifier_log_attr_valid(log)) {
err = -EINVAL;
goto errout;
}
diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
index 2405e39d800f..b52dc845ecea 100644
--- a/kernel/bpf/core.c
+++ b/kernel/bpf/core.c
@@ -1574,7 +1574,8 @@ static u64 ___bpf_prog_run(u64 *regs, const struct bpf_insn *insn)
if (unlikely(index >= array->map.max_entries))
goto out;
- if (unlikely(tail_call_cnt > MAX_TAIL_CALL_CNT))
+
+ if (unlikely(tail_call_cnt >= MAX_TAIL_CALL_CNT))
goto out;
tail_call_cnt++;
diff --git a/kernel/bpf/inode.c b/kernel/bpf/inode.c
index 80da1db47c68..5a8d9f7467bf 100644
--- a/kernel/bpf/inode.c
+++ b/kernel/bpf/inode.c
@@ -648,12 +648,22 @@ static int bpf_parse_param(struct fs_context *fc, struct fs_parameter *param)
int opt;
opt = fs_parse(fc, bpf_fs_parameters, param, &result);
- if (opt < 0)
+ if (opt < 0) {
/* We might like to report bad mount options here, but
* traditionally we've ignored all mount options, so we'd
* better continue to ignore non-existing options for bpf.
*/
- return opt == -ENOPARAM ? 0 : opt;
+ if (opt == -ENOPARAM) {
+ opt = vfs_parse_fs_param_source(fc, param);
+ if (opt != -ENOPARAM)
+ return opt;
+
+ return 0;
+ }
+
+ if (opt < 0)
+ return opt;
+ }
switch (opt) {
case OPT_MODE:
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 4e51bf3f9603..6b987407752a 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -5965,6 +5965,7 @@ static int __check_func_call(struct bpf_verifier_env *env, struct bpf_insn *insn
}
if (insn->code == (BPF_JMP | BPF_CALL) &&
+ insn->src_reg == 0 &&
insn->imm == BPF_FUNC_timer_set_callback) {
struct bpf_verifier_state *async_cb;
@@ -8961,15 +8962,15 @@ static void mark_ptr_or_null_reg(struct bpf_func_state *state,
{
if (reg_type_may_be_null(reg->type) && reg->id == id &&
!WARN_ON_ONCE(!reg->id)) {
- /* Old offset (both fixed and variable parts) should
- * have been known-zero, because we don't allow pointer
- * arithmetic on pointers that might be NULL.
- */
if (WARN_ON_ONCE(reg->smin_value || reg->smax_value ||
!tnum_equals_const(reg->var_off, 0) ||
reg->off)) {
- __mark_reg_known_zero(reg);
- reg->off = 0;
+ /* Old offset (both fixed and variable parts) should
+ * have been known-zero, because we don't allow pointer
+ * arithmetic on pointers that might be NULL. If we
+ * see this happening, don't convert the register.
+ */
+ return;
}
if (is_null) {
reg->type = SCALAR_VALUE;
@@ -9388,9 +9389,13 @@ static int check_ld_imm(struct bpf_verifier_env *env, struct bpf_insn *insn)
return 0;
}
- if (insn->src_reg == BPF_PSEUDO_BTF_ID) {
- mark_reg_known_zero(env, regs, insn->dst_reg);
+ /* All special src_reg cases are listed below. From this point onwards
+ * we either succeed and assign a corresponding dst_reg->type after
+ * zeroing the offset, or fail and reject the program.
+ */
+ mark_reg_known_zero(env, regs, insn->dst_reg);
+ if (insn->src_reg == BPF_PSEUDO_BTF_ID) {
dst_reg->type = aux->btf_var.reg_type;
switch (dst_reg->type) {
case PTR_TO_MEM:
@@ -9428,7 +9433,6 @@ static int check_ld_imm(struct bpf_verifier_env *env, struct bpf_insn *insn)
}
map = env->used_maps[aux->map_index];
- mark_reg_known_zero(env, regs, insn->dst_reg);
dst_reg->map_ptr = map;
if (insn->src_reg == BPF_PSEUDO_MAP_VALUE ||
@@ -13960,11 +13964,11 @@ int bpf_check(struct bpf_prog **prog, union bpf_attr *attr, bpfptr_t uattr)
log->ubuf = (char __user *) (unsigned long) attr->log_buf;
log->len_total = attr->log_size;
- ret = -EINVAL;
/* log attributes have to be sane */
- if (log->len_total < 128 || log->len_total > UINT_MAX >> 2 ||
- !log->level || !log->ubuf || log->level & ~BPF_LOG_MASK)
+ if (!bpf_verifier_log_attr_valid(log)) {
+ ret = -EINVAL;
goto err_unlock;
+ }
}
if (IS_ERR(btf_vmlinux)) {
diff --git a/kernel/dma/pool.c b/kernel/dma/pool.c
index 5f84e6cdb78e..4d40dcce7604 100644
--- a/kernel/dma/pool.c
+++ b/kernel/dma/pool.c
@@ -203,7 +203,7 @@ static int __init dma_atomic_pool_init(void)
GFP_KERNEL);
if (!atomic_pool_kernel)
ret = -ENOMEM;
- if (IS_ENABLED(CONFIG_ZONE_DMA)) {
+ if (has_managed_dma()) {
atomic_pool_dma = __dma_atomic_pool_init(atomic_pool_size,
GFP_KERNEL | GFP_DMA);
if (!atomic_pool_dma)
@@ -226,7 +226,7 @@ static inline struct gen_pool *dma_guess_pool(struct gen_pool *prev, gfp_t gfp)
if (prev == NULL) {
if (IS_ENABLED(CONFIG_ZONE_DMA32) && (gfp & GFP_DMA32))
return atomic_pool_dma32;
- if (IS_ENABLED(CONFIG_ZONE_DMA) && (gfp & GFP_DMA))
+ if (atomic_pool_dma && (gfp & GFP_DMA))
return atomic_pool_dma;
return atomic_pool_kernel;
}
diff --git a/kernel/locking/ww_rt_mutex.c b/kernel/locking/ww_rt_mutex.c
index 0e00205cf467..d1473c624105 100644
--- a/kernel/locking/ww_rt_mutex.c
+++ b/kernel/locking/ww_rt_mutex.c
@@ -26,7 +26,7 @@ int ww_mutex_trylock(struct ww_mutex *lock, struct ww_acquire_ctx *ww_ctx)
if (__rt_mutex_trylock(&rtm->rtmutex)) {
ww_mutex_set_context_fastpath(lock, ww_ctx);
- mutex_acquire_nest(&rtm->dep_map, 0, 1, ww_ctx->dep_map, _RET_IP_);
+ mutex_acquire_nest(&rtm->dep_map, 0, 1, &ww_ctx->dep_map, _RET_IP_);
return 1;
}
diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
index 8b410d982990..05e4d6c28d1f 100644
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -46,6 +46,7 @@
#include <linux/oom.h>
#include <linux/tick.h>
#include <linux/rcupdate_trace.h>
+#include <linux/nmi.h>
#include "rcu.h"
@@ -109,6 +110,8 @@ torture_param(int, shutdown_secs, 0, "Shutdown time (s), <= zero to disable.");
torture_param(int, stall_cpu, 0, "Stall duration (s), zero to disable.");
torture_param(int, stall_cpu_holdoff, 10,
"Time to wait before starting stall (s).");
+torture_param(bool, stall_no_softlockup, false,
+ "Avoid softlockup warning during cpu stall.");
torture_param(int, stall_cpu_irqsoff, 0, "Disable interrupts while stalling.");
torture_param(int, stall_cpu_block, 0, "Sleep while stalling.");
torture_param(int, stall_gp_kthread, 0,
@@ -2052,6 +2055,8 @@ static int rcu_torture_stall(void *args)
#else
schedule_timeout_uninterruptible(HZ);
#endif
+ } else if (stall_no_softlockup) {
+ touch_softlockup_watchdog();
}
if (stall_cpu_irqsoff)
local_irq_enable();
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index ef8d36f580fc..906b6887622d 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -2982,7 +2982,7 @@ __call_rcu(struct rcu_head *head, rcu_callback_t func)
head->func = func;
head->next = NULL;
local_irq_save(flags);
- kasan_record_aux_stack(head);
+ kasan_record_aux_stack_noalloc(head);
rdp = this_cpu_ptr(&rcu_data);
/* Add the callback to our list. */
@@ -3547,7 +3547,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func)
return;
}
- kasan_record_aux_stack(ptr);
+ kasan_record_aux_stack_noalloc(ptr);
success = add_ptr_to_bulk_krc_lock(&krcp, &flags, ptr, !head);
if (!success) {
run_page_cache_worker(krcp);
diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h
index f3947c49eee7..9e58e77b992e 100644
--- a/kernel/rcu/tree_exp.h
+++ b/kernel/rcu/tree_exp.h
@@ -387,6 +387,7 @@ static void sync_rcu_exp_select_node_cpus(struct work_struct *wp)
continue;
}
if (get_cpu() == cpu) {
+ mask_ofl_test |= mask;
put_cpu();
continue;
}
diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c
index 893eece65bfd..ab67d97a8442 100644
--- a/kernel/sched/cpuacct.c
+++ b/kernel/sched/cpuacct.c
@@ -21,15 +21,11 @@ static const char * const cpuacct_stat_desc[] = {
[CPUACCT_STAT_SYSTEM] = "system",
};
-struct cpuacct_usage {
- u64 usages[CPUACCT_STAT_NSTATS];
-};
-
/* track CPU usage of a group of tasks and its child groups */
struct cpuacct {
struct cgroup_subsys_state css;
/* cpuusage holds pointer to a u64-type object on every CPU */
- struct cpuacct_usage __percpu *cpuusage;
+ u64 __percpu *cpuusage;
struct kernel_cpustat __percpu *cpustat;
};
@@ -49,7 +45,7 @@ static inline struct cpuacct *parent_ca(struct cpuacct *ca)
return css_ca(ca->css.parent);
}
-static DEFINE_PER_CPU(struct cpuacct_usage, root_cpuacct_cpuusage);
+static DEFINE_PER_CPU(u64, root_cpuacct_cpuusage);
static struct cpuacct root_cpuacct = {
.cpustat = &kernel_cpustat,
.cpuusage = &root_cpuacct_cpuusage,
@@ -68,7 +64,7 @@ cpuacct_css_alloc(struct cgroup_subsys_state *parent_css)
if (!ca)
goto out;
- ca->cpuusage = alloc_percpu(struct cpuacct_usage);
+ ca->cpuusage = alloc_percpu(u64);
if (!ca->cpuusage)
goto out_free_ca;
@@ -99,7 +95,8 @@ static void cpuacct_css_free(struct cgroup_subsys_state *css)
static u64 cpuacct_cpuusage_read(struct cpuacct *ca, int cpu,
enum cpuacct_stat_index index)
{
- struct cpuacct_usage *cpuusage = per_cpu_ptr(ca->cpuusage, cpu);
+ u64 *cpuusage = per_cpu_ptr(ca->cpuusage, cpu);
+ u64 *cpustat = per_cpu_ptr(ca->cpustat, cpu)->cpustat;
u64 data;
/*
@@ -115,14 +112,17 @@ static u64 cpuacct_cpuusage_read(struct cpuacct *ca, int cpu,
raw_spin_rq_lock_irq(cpu_rq(cpu));
#endif
- if (index == CPUACCT_STAT_NSTATS) {
- int i = 0;
-
- data = 0;
- for (i = 0; i < CPUACCT_STAT_NSTATS; i++)
- data += cpuusage->usages[i];
- } else {
- data = cpuusage->usages[index];
+ switch (index) {
+ case CPUACCT_STAT_USER:
+ data = cpustat[CPUTIME_USER] + cpustat[CPUTIME_NICE];
+ break;
+ case CPUACCT_STAT_SYSTEM:
+ data = cpustat[CPUTIME_SYSTEM] + cpustat[CPUTIME_IRQ] +
+ cpustat[CPUTIME_SOFTIRQ];
+ break;
+ case CPUACCT_STAT_NSTATS:
+ data = *cpuusage;
+ break;
}
#ifndef CONFIG_64BIT
@@ -132,10 +132,14 @@ static u64 cpuacct_cpuusage_read(struct cpuacct *ca, int cpu,
return data;
}
-static void cpuacct_cpuusage_write(struct cpuacct *ca, int cpu, u64 val)
+static void cpuacct_cpuusage_write(struct cpuacct *ca, int cpu)
{
- struct cpuacct_usage *cpuusage = per_cpu_ptr(ca->cpuusage, cpu);
- int i;
+ u64 *cpuusage = per_cpu_ptr(ca->cpuusage, cpu);
+ u64 *cpustat = per_cpu_ptr(ca->cpustat, cpu)->cpustat;
+
+ /* Don't allow to reset global kernel_cpustat */
+ if (ca == &root_cpuacct)
+ return;
#ifndef CONFIG_64BIT
/*
@@ -143,9 +147,10 @@ static void cpuacct_cpuusage_write(struct cpuacct *ca, int cpu, u64 val)
*/
raw_spin_rq_lock_irq(cpu_rq(cpu));
#endif
-
- for (i = 0; i < CPUACCT_STAT_NSTATS; i++)
- cpuusage->usages[i] = val;
+ *cpuusage = 0;
+ cpustat[CPUTIME_USER] = cpustat[CPUTIME_NICE] = 0;
+ cpustat[CPUTIME_SYSTEM] = cpustat[CPUTIME_IRQ] = 0;
+ cpustat[CPUTIME_SOFTIRQ] = 0;
#ifndef CONFIG_64BIT
raw_spin_rq_unlock_irq(cpu_rq(cpu));
@@ -196,7 +201,7 @@ static int cpuusage_write(struct cgroup_subsys_state *css, struct cftype *cft,
return -EINVAL;
for_each_possible_cpu(cpu)
- cpuacct_cpuusage_write(ca, cpu, 0);
+ cpuacct_cpuusage_write(ca, cpu);
return 0;
}
@@ -243,25 +248,10 @@ static int cpuacct_all_seq_show(struct seq_file *m, void *V)
seq_puts(m, "\n");
for_each_possible_cpu(cpu) {
- struct cpuacct_usage *cpuusage = per_cpu_ptr(ca->cpuusage, cpu);
-
seq_printf(m, "%d", cpu);
-
- for (index = 0; index < CPUACCT_STAT_NSTATS; index++) {
-#ifndef CONFIG_64BIT
- /*
- * Take rq->lock to make 64-bit read safe on 32-bit
- * platforms.
- */
- raw_spin_rq_lock_irq(cpu_rq(cpu));
-#endif
-
- seq_printf(m, " %llu", cpuusage->usages[index]);
-
-#ifndef CONFIG_64BIT
- raw_spin_rq_unlock_irq(cpu_rq(cpu));
-#endif
- }
+ for (index = 0; index < CPUACCT_STAT_NSTATS; index++)
+ seq_printf(m, " %llu",
+ cpuacct_cpuusage_read(ca, cpu, index));
seq_puts(m, "\n");
}
return 0;
@@ -339,16 +329,11 @@ static struct cftype files[] = {
void cpuacct_charge(struct task_struct *tsk, u64 cputime)
{
struct cpuacct *ca;
- int index = CPUACCT_STAT_SYSTEM;
- struct pt_regs *regs = get_irq_regs() ? : task_pt_regs(tsk);
-
- if (regs && user_mode(regs))
- index = CPUACCT_STAT_USER;
rcu_read_lock();
for (ca = task_ca(tsk); ca; ca = parent_ca(ca))
- __this_cpu_add(ca->cpuusage->usages[index], cputime);
+ __this_cpu_add(*ca->cpuusage, cputime);
rcu_read_unlock();
}
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index 9392aea1804e..b7ec42732b28 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -148,10 +148,10 @@ void account_guest_time(struct task_struct *p, u64 cputime)
/* Add guest time to cpustat. */
if (task_nice(p) > 0) {
- cpustat[CPUTIME_NICE] += cputime;
+ task_group_account_field(p, CPUTIME_NICE, cputime);
cpustat[CPUTIME_GUEST_NICE] += cputime;
} else {
- cpustat[CPUTIME_USER] += cputime;
+ task_group_account_field(p, CPUTIME_USER, cputime);
cpustat[CPUTIME_GUEST] += cputime;
}
}
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 6e476f6d9435..f2cf047b25e5 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -6398,8 +6398,10 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target)
* pattern is IO completions.
*/
if (is_per_cpu_kthread(current) &&
+ in_task() &&
prev == smp_processor_id() &&
- this_rq()->nr_running <= 1) {
+ this_rq()->nr_running <= 1 &&
+ asym_fits_capacity(task_util, prev)) {
return prev;
}
diff --git a/kernel/sched/psi.c b/kernel/sched/psi.c
index 1652f2bb54b7..69b19d3af690 100644
--- a/kernel/sched/psi.c
+++ b/kernel/sched/psi.c
@@ -34,13 +34,19 @@
* delayed on that resource such that nobody is advancing and the CPU
* goes idle. This leaves both workload and CPU unproductive.
*
- * Naturally, the FULL state doesn't exist for the CPU resource at the
- * system level, but exist at the cgroup level, means all non-idle tasks
- * in a cgroup are delayed on the CPU resource which used by others outside
- * of the cgroup or throttled by the cgroup cpu.max configuration.
- *
* SOME = nr_delayed_tasks != 0
- * FULL = nr_delayed_tasks != 0 && nr_running_tasks == 0
+ * FULL = nr_delayed_tasks != 0 && nr_productive_tasks == 0
+ *
+ * What it means for a task to be productive is defined differently
+ * for each resource. For IO, productive means a running task. For
+ * memory, productive means a running task that isn't a reclaimer. For
+ * CPU, productive means an oncpu task.
+ *
+ * Naturally, the FULL state doesn't exist for the CPU resource at the
+ * system level, but exist at the cgroup level. At the cgroup level,
+ * FULL means all non-idle tasks in the cgroup are delayed on the CPU
+ * resource which is being used by others outside of the cgroup or
+ * throttled by the cgroup cpu.max configuration.
*
* The percentage of wallclock time spent in those compound stall
* states gives pressure numbers between 0 and 100 for each resource,
@@ -81,13 +87,13 @@
*
* threads = min(nr_nonidle_tasks, nr_cpus)
* SOME = min(nr_delayed_tasks / threads, 1)
- * FULL = (threads - min(nr_running_tasks, threads)) / threads
+ * FULL = (threads - min(nr_productive_tasks, threads)) / threads
*
* For the 257 number crunchers on 256 CPUs, this yields:
*
* threads = min(257, 256)
* SOME = min(1 / 256, 1) = 0.4%
- * FULL = (256 - min(257, 256)) / 256 = 0%
+ * FULL = (256 - min(256, 256)) / 256 = 0%
*
* For the 1 out of 4 memory-delayed tasks, this yields:
*
@@ -112,7 +118,7 @@
* For each runqueue, we track:
*
* tSOME[cpu] = time(nr_delayed_tasks[cpu] != 0)
- * tFULL[cpu] = time(nr_delayed_tasks[cpu] && !nr_running_tasks[cpu])
+ * tFULL[cpu] = time(nr_delayed_tasks[cpu] && !nr_productive_tasks[cpu])
* tNONIDLE[cpu] = time(nr_nonidle_tasks[cpu] != 0)
*
* and then periodically aggregate:
@@ -233,7 +239,8 @@ static bool test_state(unsigned int *tasks, enum psi_states state)
case PSI_MEM_SOME:
return unlikely(tasks[NR_MEMSTALL]);
case PSI_MEM_FULL:
- return unlikely(tasks[NR_MEMSTALL] && !tasks[NR_RUNNING]);
+ return unlikely(tasks[NR_MEMSTALL] &&
+ tasks[NR_RUNNING] == tasks[NR_MEMSTALL_RUNNING]);
case PSI_CPU_SOME:
return unlikely(tasks[NR_RUNNING] > tasks[NR_ONCPU]);
case PSI_CPU_FULL:
@@ -710,10 +717,11 @@ static void psi_group_change(struct psi_group *group, int cpu,
if (groupc->tasks[t]) {
groupc->tasks[t]--;
} else if (!psi_bug) {
- printk_deferred(KERN_ERR "psi: task underflow! cpu=%d t=%d tasks=[%u %u %u %u] clear=%x set=%x\n",
+ printk_deferred(KERN_ERR "psi: task underflow! cpu=%d t=%d tasks=[%u %u %u %u %u] clear=%x set=%x\n",
cpu, t, groupc->tasks[0],
groupc->tasks[1], groupc->tasks[2],
- groupc->tasks[3], clear, set);
+ groupc->tasks[3], groupc->tasks[4],
+ clear, set);
psi_bug = 1;
}
}
@@ -854,12 +862,15 @@ void psi_task_switch(struct task_struct *prev, struct task_struct *next,
int clear = TSK_ONCPU, set = 0;
/*
- * When we're going to sleep, psi_dequeue() lets us handle
- * TSK_RUNNING and TSK_IOWAIT here, where we can combine it
- * with TSK_ONCPU and save walking common ancestors twice.
+ * When we're going to sleep, psi_dequeue() lets us
+ * handle TSK_RUNNING, TSK_MEMSTALL_RUNNING and
+ * TSK_IOWAIT here, where we can combine it with
+ * TSK_ONCPU and save walking common ancestors twice.
*/
if (sleep) {
clear |= TSK_RUNNING;
+ if (prev->in_memstall)
+ clear |= TSK_MEMSTALL_RUNNING;
if (prev->in_iowait)
set |= TSK_IOWAIT;
}
@@ -908,7 +919,7 @@ void psi_memstall_enter(unsigned long *flags)
rq = this_rq_lock_irq(&rf);
current->in_memstall = 1;
- psi_task_change(current, 0, TSK_MEMSTALL);
+ psi_task_change(current, 0, TSK_MEMSTALL | TSK_MEMSTALL_RUNNING);
rq_unlock_irq(rq, &rf);
}
@@ -937,7 +948,7 @@ void psi_memstall_leave(unsigned long *flags)
rq = this_rq_lock_irq(&rf);
current->in_memstall = 0;
- psi_task_change(current, TSK_MEMSTALL, 0);
+ psi_task_change(current, TSK_MEMSTALL | TSK_MEMSTALL_RUNNING, 0);
rq_unlock_irq(rq, &rf);
}
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index b48baaba2fc2..7b4f4fbbb404 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -52,11 +52,8 @@ void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime)
rt_b->rt_period_timer.function = sched_rt_period_timer;
}
-static void start_rt_bandwidth(struct rt_bandwidth *rt_b)
+static inline void do_start_rt_bandwidth(struct rt_bandwidth *rt_b)
{
- if (!rt_bandwidth_enabled() || rt_b->rt_runtime == RUNTIME_INF)
- return;
-
raw_spin_lock(&rt_b->rt_runtime_lock);
if (!rt_b->rt_period_active) {
rt_b->rt_period_active = 1;
@@ -75,6 +72,14 @@ static void start_rt_bandwidth(struct rt_bandwidth *rt_b)
raw_spin_unlock(&rt_b->rt_runtime_lock);
}
+static void start_rt_bandwidth(struct rt_bandwidth *rt_b)
+{
+ if (!rt_bandwidth_enabled() || rt_b->rt_runtime == RUNTIME_INF)
+ return;
+
+ do_start_rt_bandwidth(rt_b);
+}
+
void init_rt_rq(struct rt_rq *rt_rq)
{
struct rt_prio_array *array;
@@ -1031,13 +1036,17 @@ static void update_curr_rt(struct rq *rq)
for_each_sched_rt_entity(rt_se) {
struct rt_rq *rt_rq = rt_rq_of_se(rt_se);
+ int exceeded;
if (sched_rt_runtime(rt_rq) != RUNTIME_INF) {
raw_spin_lock(&rt_rq->rt_runtime_lock);
rt_rq->rt_time += delta_exec;
- if (sched_rt_runtime_exceeded(rt_rq))
+ exceeded = sched_rt_runtime_exceeded(rt_rq);
+ if (exceeded)
resched_curr(rq);
raw_spin_unlock(&rt_rq->rt_runtime_lock);
+ if (exceeded)
+ do_start_rt_bandwidth(sched_rt_bandwidth(rt_rq));
}
}
}
@@ -2911,8 +2920,12 @@ static int sched_rt_global_validate(void)
static void sched_rt_do_global(void)
{
+ unsigned long flags;
+
+ raw_spin_lock_irqsave(&def_rt_bandwidth.rt_runtime_lock, flags);
def_rt_bandwidth.rt_runtime = global_rt_runtime();
def_rt_bandwidth.rt_period = ns_to_ktime(global_rt_period());
+ raw_spin_unlock_irqrestore(&def_rt_bandwidth.rt_runtime_lock, flags);
}
int sched_rt_handler(struct ctl_table *table, int write, void *buffer,
diff --git a/kernel/sched/stats.h b/kernel/sched/stats.h
index cfb0893a83d4..3a3c826dd83a 100644
--- a/kernel/sched/stats.h
+++ b/kernel/sched/stats.h
@@ -118,6 +118,9 @@ static inline void psi_enqueue(struct task_struct *p, bool wakeup)
if (static_branch_likely(&psi_disabled))
return;
+ if (p->in_memstall)
+ set |= TSK_MEMSTALL_RUNNING;
+
if (!wakeup || p->sched_psi_wake_requeue) {
if (p->in_memstall)
set |= TSK_MEMSTALL;
@@ -148,7 +151,7 @@ static inline void psi_dequeue(struct task_struct *p, bool sleep)
return;
if (p->in_memstall)
- clear |= TSK_MEMSTALL;
+ clear |= (TSK_MEMSTALL | TSK_MEMSTALL_RUNNING);
psi_task_change(p, clear, 0);
}
diff --git a/kernel/signal.c b/kernel/signal.c
index dfcee3888b00..cf97b9c4d665 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -2684,19 +2684,19 @@ bool get_signal(struct ksignal *ksig)
goto relock;
}
- /* Has this task already been marked for death? */
- if (signal_group_exit(signal)) {
- ksig->info.si_signo = signr = SIGKILL;
- sigdelset(¤t->pending.signal, SIGKILL);
- trace_signal_deliver(SIGKILL, SEND_SIG_NOINFO,
- &sighand->action[SIGKILL - 1]);
- recalc_sigpending();
- goto fatal;
- }
-
for (;;) {
struct k_sigaction *ka;
+ /* Has this task already been marked for death? */
+ if (signal_group_exit(signal)) {
+ ksig->info.si_signo = signr = SIGKILL;
+ sigdelset(¤t->pending.signal, SIGKILL);
+ trace_signal_deliver(SIGKILL, SEND_SIG_NOINFO,
+ &sighand->action[SIGKILL - 1]);
+ recalc_sigpending();
+ goto fatal;
+ }
+
if (unlikely(current->jobctl & JOBCTL_STOP_PENDING) &&
do_signal_stop(0))
goto relock;
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
index b8a14d2fb5ba..bcad1a1e5dcf 100644
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -107,7 +107,7 @@ static u64 suspend_start;
* This delay could be due to SMIs, NMIs, or to VCPU preemptions. Used as
* a lower bound for cs->uncertainty_margin values when registering clocks.
*/
-#define WATCHDOG_MAX_SKEW (50 * NSEC_PER_USEC)
+#define WATCHDOG_MAX_SKEW (100 * NSEC_PER_USEC)
#ifdef CONFIG_CLOCKSOURCE_WATCHDOG
static void clocksource_watchdog_work(struct work_struct *work);
@@ -205,17 +205,24 @@ EXPORT_SYMBOL_GPL(max_cswd_read_retries);
static int verify_n_cpus = 8;
module_param(verify_n_cpus, int, 0644);
-static bool cs_watchdog_read(struct clocksource *cs, u64 *csnow, u64 *wdnow)
+enum wd_read_status {
+ WD_READ_SUCCESS,
+ WD_READ_UNSTABLE,
+ WD_READ_SKIP
+};
+
+static enum wd_read_status cs_watchdog_read(struct clocksource *cs, u64 *csnow, u64 *wdnow)
{
unsigned int nretries;
- u64 wd_end, wd_delta;
- int64_t wd_delay;
+ u64 wd_end, wd_end2, wd_delta;
+ int64_t wd_delay, wd_seq_delay;
for (nretries = 0; nretries <= max_cswd_read_retries; nretries++) {
local_irq_disable();
*wdnow = watchdog->read(watchdog);
*csnow = cs->read(cs);
wd_end = watchdog->read(watchdog);
+ wd_end2 = watchdog->read(watchdog);
local_irq_enable();
wd_delta = clocksource_delta(wd_end, *wdnow, watchdog->mask);
@@ -226,13 +233,34 @@ static bool cs_watchdog_read(struct clocksource *cs, u64 *csnow, u64 *wdnow)
pr_warn("timekeeping watchdog on CPU%d: %s retried %d times before success\n",
smp_processor_id(), watchdog->name, nretries);
}
- return true;
+ return WD_READ_SUCCESS;
}
+
+ /*
+ * Now compute delay in consecutive watchdog read to see if
+ * there is too much external interferences that cause
+ * significant delay in reading both clocksource and watchdog.
+ *
+ * If consecutive WD read-back delay > WATCHDOG_MAX_SKEW/2,
+ * report system busy, reinit the watchdog and skip the current
+ * watchdog test.
+ */
+ wd_delta = clocksource_delta(wd_end2, wd_end, watchdog->mask);
+ wd_seq_delay = clocksource_cyc2ns(wd_delta, watchdog->mult, watchdog->shift);
+ if (wd_seq_delay > WATCHDOG_MAX_SKEW/2)
+ goto skip_test;
}
pr_warn("timekeeping watchdog on CPU%d: %s read-back delay of %lldns, attempt %d, marking unstable\n",
smp_processor_id(), watchdog->name, wd_delay, nretries);
- return false;
+ return WD_READ_UNSTABLE;
+
+skip_test:
+ pr_info("timekeeping watchdog on CPU%d: %s wd-wd read-back delay of %lldns\n",
+ smp_processor_id(), watchdog->name, wd_seq_delay);
+ pr_info("wd-%s-wd read-back delay of %lldns, clock-skew test skipped!\n",
+ cs->name, wd_delay);
+ return WD_READ_SKIP;
}
static u64 csnow_mid;
@@ -356,6 +384,7 @@ static void clocksource_watchdog(struct timer_list *unused)
int next_cpu, reset_pending;
int64_t wd_nsec, cs_nsec;
struct clocksource *cs;
+ enum wd_read_status read_ret;
u32 md;
spin_lock(&watchdog_lock);
@@ -373,9 +402,12 @@ static void clocksource_watchdog(struct timer_list *unused)
continue;
}
- if (!cs_watchdog_read(cs, &csnow, &wdnow)) {
- /* Clock readout unreliable, so give it up. */
- __clocksource_unstable(cs);
+ read_ret = cs_watchdog_read(cs, &csnow, &wdnow);
+
+ if (read_ret != WD_READ_SUCCESS) {
+ if (read_ret == WD_READ_UNSTABLE)
+ /* Clock readout unreliable, so give it up. */
+ __clocksource_unstable(cs);
continue;
}
diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
index ae9755037b7e..e36d184615fb 100644
--- a/kernel/trace/bpf_trace.c
+++ b/kernel/trace/bpf_trace.c
@@ -1400,9 +1400,6 @@ static const struct bpf_func_proto bpf_perf_prog_read_value_proto = {
BPF_CALL_4(bpf_read_branch_records, struct bpf_perf_event_data_kern *, ctx,
void *, buf, u32, size, u64, flags)
{
-#ifndef CONFIG_X86
- return -ENOENT;
-#else
static const u32 br_entry_size = sizeof(struct perf_branch_entry);
struct perf_branch_stack *br_stack = ctx->data->br_stack;
u32 to_copy;
@@ -1411,7 +1408,7 @@ BPF_CALL_4(bpf_read_branch_records, struct bpf_perf_event_data_kern *, ctx,
return -EINVAL;
if (unlikely(!br_stack))
- return -EINVAL;
+ return -ENOENT;
if (flags & BPF_F_GET_BRANCH_RECORDS_SIZE)
return br_stack->nr * br_entry_size;
@@ -1423,7 +1420,6 @@ BPF_CALL_4(bpf_read_branch_records, struct bpf_perf_event_data_kern *, ctx,
memcpy(buf, br_stack->entries, to_copy);
return to_copy;
-#endif
}
static const struct bpf_func_proto bpf_read_branch_records_proto = {
diff --git a/kernel/trace/trace_events_synth.c b/kernel/trace/trace_events_synth.c
index ca9c13b2ecf4..4b5a637d3ec0 100644
--- a/kernel/trace/trace_events_synth.c
+++ b/kernel/trace/trace_events_synth.c
@@ -2054,6 +2054,13 @@ static int create_synth_event(const char *raw_command)
last_cmd_set(raw_command);
+ name = raw_command;
+
+ /* Don't try to process if not our system */
+ if (name[0] != 's' || name[1] != ':')
+ return -ECANCELED;
+ name += 2;
+
p = strpbrk(raw_command, " \t");
if (!p) {
synth_err(SYNTH_ERR_INVALID_CMD, 0);
@@ -2062,12 +2069,6 @@ static int create_synth_event(const char *raw_command)
fields = skip_spaces(p);
- name = raw_command;
-
- if (name[0] != 's' || name[1] != ':')
- return -ECANCELED;
- name += 2;
-
/* This interface accepts group name prefix */
if (strchr(name, '/')) {
len = str_has_prefix(name, SYNTH_SYSTEM "/");
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index 33272a7b6912..1bb85f7a4593 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -1175,15 +1175,18 @@ static int probes_profile_seq_show(struct seq_file *m, void *v)
{
struct dyn_event *ev = v;
struct trace_kprobe *tk;
+ unsigned long nmissed;
if (!is_trace_kprobe(ev))
return 0;
tk = to_trace_kprobe(ev);
+ nmissed = trace_kprobe_is_return(tk) ?
+ tk->rp.kp.nmissed + tk->rp.nmissed : tk->rp.kp.nmissed;
seq_printf(m, " %-44s %15lu %15lu\n",
trace_probe_name(&tk->tp),
trace_kprobe_nhit(tk),
- tk->rp.kp.nmissed);
+ nmissed);
return 0;
}
diff --git a/kernel/trace/trace_osnoise.c b/kernel/trace/trace_osnoise.c
index 7520d43aed55..b58674e8644a 100644
--- a/kernel/trace/trace_osnoise.c
+++ b/kernel/trace/trace_osnoise.c
@@ -2123,6 +2123,13 @@ static int osnoise_hook_events(void)
return -EINVAL;
}
+static void osnoise_unhook_events(void)
+{
+ unhook_thread_events();
+ unhook_softirq_events();
+ unhook_irq_events();
+}
+
/*
* osnoise_workload_start - start the workload and hook to events
*/
@@ -2155,7 +2162,14 @@ static int osnoise_workload_start(void)
retval = start_per_cpu_kthreads();
if (retval) {
- unhook_irq_events();
+ trace_osnoise_callback_enabled = false;
+ /*
+ * Make sure that ftrace_nmi_enter/exit() see
+ * trace_osnoise_callback_enabled as false before continuing.
+ */
+ barrier();
+
+ osnoise_unhook_events();
return retval;
}
@@ -2186,9 +2200,7 @@ static void osnoise_workload_stop(void)
stop_per_cpu_kthreads();
- unhook_irq_events();
- unhook_softirq_events();
- unhook_thread_events();
+ osnoise_unhook_events();
}
static void osnoise_tracer_start(struct trace_array *tr)
diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c
index 3ed2a3f37297..bb4605b60de7 100644
--- a/kernel/trace/trace_probe.c
+++ b/kernel/trace/trace_probe.c
@@ -356,6 +356,8 @@ static int __parse_imm_string(char *str, char **pbuf, int offs)
return -EINVAL;
}
*pbuf = kstrndup(str, len - 1, GFP_KERNEL);
+ if (!*pbuf)
+ return -ENOMEM;
return 0;
}
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
index 8bfcd3b09422..f755bde42fd0 100644
--- a/kernel/trace/trace_syscalls.c
+++ b/kernel/trace/trace_syscalls.c
@@ -323,8 +323,7 @@ static void ftrace_syscall_enter(void *data, struct pt_regs *regs, long id)
trace_ctx = tracing_gen_ctx();
- buffer = tr->array_buffer.buffer;
- event = trace_buffer_lock_reserve(buffer,
+ event = trace_event_buffer_lock_reserve(&buffer, trace_file,
sys_data->enter_event->event.type, size, trace_ctx);
if (!event)
return;
@@ -367,8 +366,7 @@ static void ftrace_syscall_exit(void *data, struct pt_regs *regs, long ret)
trace_ctx = tracing_gen_ctx();
- buffer = tr->array_buffer.buffer;
- event = trace_buffer_lock_reserve(buffer,
+ event = trace_event_buffer_lock_reserve(&buffer, trace_file,
sys_data->exit_event->event.type, sizeof(*entry),
trace_ctx);
if (!event)
diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c
index f5f0039d31e5..78ec1c16ccf4 100644
--- a/kernel/trace/trace_uprobe.c
+++ b/kernel/trace/trace_uprobe.c
@@ -1619,6 +1619,11 @@ create_local_trace_uprobe(char *name, unsigned long offs,
tu->path = path;
tu->ref_ctr_offset = ref_ctr_offset;
tu->filename = kstrdup(name, GFP_KERNEL);
+ if (!tu->filename) {
+ ret = -ENOMEM;
+ goto error;
+ }
+
init_trace_event_call(tu);
ptype = is_ret_probe(tu) ? PROBE_PRINT_RETURN : PROBE_PRINT_NORMAL;
diff --git a/kernel/tsacct.c b/kernel/tsacct.c
index f00de83d0246..1d261fbe367b 100644
--- a/kernel/tsacct.c
+++ b/kernel/tsacct.c
@@ -38,11 +38,10 @@ void bacct_add_tsk(struct user_namespace *user_ns,
stats->ac_btime = clamp_t(time64_t, btime, 0, U32_MAX);
stats->ac_btime64 = btime;
- if (thread_group_leader(tsk)) {
+ if (tsk->flags & PF_EXITING)
stats->ac_exitcode = tsk->exit_code;
- if (tsk->flags & PF_FORKNOEXEC)
- stats->ac_flag |= AFORK;
- }
+ if (thread_group_leader(tsk) && (tsk->flags & PF_FORKNOEXEC))
+ stats->ac_flag |= AFORK;
if (tsk->flags & PF_SUPERPRIV)
stats->ac_flag |= ASU;
if (tsk->flags & PF_DUMPCORE)
diff --git a/lib/kunit/test.c b/lib/kunit/test.c
index 3bd741e50a2d..f96498ede2cc 100644
--- a/lib/kunit/test.c
+++ b/lib/kunit/test.c
@@ -504,16 +504,18 @@ int kunit_run_tests(struct kunit_suite *suite)
struct kunit_result_stats param_stats = { 0 };
test_case->status = KUNIT_SKIPPED;
- if (test_case->generate_params) {
+ if (!test_case->generate_params) {
+ /* Non-parameterised test. */
+ kunit_run_case_catch_errors(suite, test_case, &test);
+ kunit_update_stats(¶m_stats, test.status);
+ } else {
/* Get initial param. */
param_desc[0] = '\0';
test.param_value = test_case->generate_params(NULL, param_desc);
- }
- do {
- kunit_run_case_catch_errors(suite, test_case, &test);
+ while (test.param_value) {
+ kunit_run_case_catch_errors(suite, test_case, &test);
- if (test_case->generate_params) {
if (param_desc[0] == '\0') {
snprintf(param_desc, sizeof(param_desc),
"param-%d", test.param_index);
@@ -530,11 +532,11 @@ int kunit_run_tests(struct kunit_suite *suite)
param_desc[0] = '\0';
test.param_value = test_case->generate_params(test.param_value, param_desc);
test.param_index++;
- }
- kunit_update_stats(¶m_stats, test.status);
+ kunit_update_stats(¶m_stats, test.status);
+ }
+ }
- } while (test.param_value);
kunit_print_test_stats(&test, param_stats);
diff --git a/lib/logic_iomem.c b/lib/logic_iomem.c
index 9bdfde0c0f86..549b22d4bcde 100644
--- a/lib/logic_iomem.c
+++ b/lib/logic_iomem.c
@@ -21,15 +21,15 @@ struct logic_iomem_area {
#define AREA_SHIFT 24
#define MAX_AREA_SIZE (1 << AREA_SHIFT)
-#define MAX_AREAS ((1ULL<<32) / MAX_AREA_SIZE)
+#define MAX_AREAS ((1U << 31) / MAX_AREA_SIZE)
#define AREA_BITS ((MAX_AREAS - 1) << AREA_SHIFT)
#define AREA_MASK (MAX_AREA_SIZE - 1)
#ifdef CONFIG_64BIT
#define IOREMAP_BIAS 0xDEAD000000000000UL
#define IOREMAP_MASK 0xFFFFFFFF00000000UL
#else
-#define IOREMAP_BIAS 0
-#define IOREMAP_MASK 0
+#define IOREMAP_BIAS 0x80000000UL
+#define IOREMAP_MASK 0x80000000UL
#endif
static DEFINE_MUTEX(regions_mtx);
@@ -79,7 +79,7 @@ static void __iomem *real_ioremap(phys_addr_t offset, size_t size)
static void real_iounmap(void __iomem *addr)
{
WARN(1, "invalid iounmap for addr 0x%llx\n",
- (unsigned long long __force)addr);
+ (unsigned long long)(uintptr_t __force)addr);
}
#endif /* CONFIG_LOGIC_IOMEM_FALLBACK */
@@ -173,7 +173,7 @@ EXPORT_SYMBOL(iounmap);
static u##sz real_raw_read ## op(const volatile void __iomem *addr) \
{ \
WARN(1, "Invalid read" #op " at address %llx\n", \
- (unsigned long long __force)addr); \
+ (unsigned long long)(uintptr_t __force)addr); \
return (u ## sz)~0ULL; \
} \
\
@@ -181,7 +181,8 @@ static void real_raw_write ## op(u ## sz val, \
volatile void __iomem *addr) \
{ \
WARN(1, "Invalid writeq" #op " of 0x%llx at address %llx\n", \
- (unsigned long long)val, (unsigned long long __force)addr);\
+ (unsigned long long)val, \
+ (unsigned long long)(uintptr_t __force)addr);\
} \
MAKE_FALLBACK(b, 8);
@@ -194,14 +195,14 @@ MAKE_FALLBACK(q, 64);
static void real_memset_io(volatile void __iomem *addr, int value, size_t size)
{
WARN(1, "Invalid memset_io at address 0x%llx\n",
- (unsigned long long __force)addr);
+ (unsigned long long)(uintptr_t __force)addr);
}
static void real_memcpy_fromio(void *buffer, const volatile void __iomem *addr,
size_t size)
{
WARN(1, "Invalid memcpy_fromio at address 0x%llx\n",
- (unsigned long long __force)addr);
+ (unsigned long long)(uintptr_t __force)addr);
memset(buffer, 0xff, size);
}
@@ -210,7 +211,7 @@ static void real_memcpy_toio(volatile void __iomem *addr, const void *buffer,
size_t size)
{
WARN(1, "Invalid memcpy_toio at address 0x%llx\n",
- (unsigned long long __force)addr);
+ (unsigned long long)(uintptr_t __force)addr);
}
#endif /* CONFIG_LOGIC_IOMEM_FALLBACK */
diff --git a/lib/mpi/mpi-mod.c b/lib/mpi/mpi-mod.c
index 47bc59edd4ff..54fcc01564d9 100644
--- a/lib/mpi/mpi-mod.c
+++ b/lib/mpi/mpi-mod.c
@@ -40,6 +40,8 @@ mpi_barrett_t mpi_barrett_init(MPI m, int copy)
mpi_normalize(m);
ctx = kcalloc(1, sizeof(*ctx), GFP_KERNEL);
+ if (!ctx)
+ return NULL;
if (copy) {
ctx->m = mpi_copy(m);
diff --git a/lib/test_bpf.c b/lib/test_bpf.c
index adae39567264..0c5cb2d6436a 100644
--- a/lib/test_bpf.c
+++ b/lib/test_bpf.c
@@ -14683,7 +14683,7 @@ static struct tail_call_test tail_call_tests[] = {
BPF_EXIT_INSN(),
},
.flags = FLAG_NEED_STATE | FLAG_RESULT_IN_STATE,
- .result = (MAX_TAIL_CALL_CNT + 1 + 1) * MAX_TESTRUNS,
+ .result = (MAX_TAIL_CALL_CNT + 1) * MAX_TESTRUNS,
},
{
"Tail call count preserved across function calls",
@@ -14705,7 +14705,7 @@ static struct tail_call_test tail_call_tests[] = {
},
.stack_depth = 8,
.flags = FLAG_NEED_STATE | FLAG_RESULT_IN_STATE,
- .result = (MAX_TAIL_CALL_CNT + 1 + 1) * MAX_TESTRUNS,
+ .result = (MAX_TAIL_CALL_CNT + 1) * MAX_TESTRUNS,
},
{
"Tail call error path, NULL target",
diff --git a/lib/test_hmm.c b/lib/test_hmm.c
index e2ce8f9b7605..767538089a62 100644
--- a/lib/test_hmm.c
+++ b/lib/test_hmm.c
@@ -1086,9 +1086,33 @@ static long dmirror_fops_unlocked_ioctl(struct file *filp,
return 0;
}
+static int dmirror_fops_mmap(struct file *file, struct vm_area_struct *vma)
+{
+ unsigned long addr;
+
+ for (addr = vma->vm_start; addr < vma->vm_end; addr += PAGE_SIZE) {
+ struct page *page;
+ int ret;
+
+ page = alloc_page(GFP_KERNEL | __GFP_ZERO);
+ if (!page)
+ return -ENOMEM;
+
+ ret = vm_insert_page(vma, addr, page);
+ if (ret) {
+ __free_page(page);
+ return ret;
+ }
+ put_page(page);
+ }
+
+ return 0;
+}
+
static const struct file_operations dmirror_fops = {
.open = dmirror_fops_open,
.release = dmirror_fops_release,
+ .mmap = dmirror_fops_mmap,
.unlocked_ioctl = dmirror_fops_unlocked_ioctl,
.llseek = default_llseek,
.owner = THIS_MODULE,
diff --git a/lib/test_meminit.c b/lib/test_meminit.c
index e4f706a404b3..3ca717f11397 100644
--- a/lib/test_meminit.c
+++ b/lib/test_meminit.c
@@ -337,6 +337,7 @@ static int __init do_kmem_cache_size_bulk(int size, int *total_failures)
if (num)
kmem_cache_free_bulk(c, num, objects);
}
+ kmem_cache_destroy(c);
*total_failures += fail;
return 1;
}
diff --git a/mm/hmm.c b/mm/hmm.c
index 842e26599238..bd56641c79d4 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -300,7 +300,8 @@ static int hmm_vma_handle_pte(struct mm_walk *walk, unsigned long addr,
* Since each architecture defines a struct page for the zero page, just
* fall through and treat it like a normal page.
*/
- if (pte_special(pte) && !pte_devmap(pte) &&
+ if (!vm_normal_page(walk->vma, addr, pte) &&
+ !pte_devmap(pte) &&
!is_zero_pfn(pte_pfn(pte))) {
if (hmm_pte_need_fault(hmm_vma_walk, pfn_req_flags, 0)) {
pte_unmap(ptep);
@@ -518,7 +519,7 @@ static int hmm_vma_walk_test(unsigned long start, unsigned long end,
struct hmm_range *range = hmm_vma_walk->range;
struct vm_area_struct *vma = walk->vma;
- if (!(vma->vm_flags & (VM_IO | VM_PFNMAP | VM_MIXEDMAP)) &&
+ if (!(vma->vm_flags & (VM_IO | VM_PFNMAP)) &&
vma->vm_flags & VM_READ)
return 0;
diff --git a/mm/kasan/quarantine.c b/mm/kasan/quarantine.c
index d8ccff4c1275..47ed4fc33a29 100644
--- a/mm/kasan/quarantine.c
+++ b/mm/kasan/quarantine.c
@@ -132,11 +132,22 @@ static void *qlink_to_object(struct qlist_node *qlink, struct kmem_cache *cache)
static void qlink_free(struct qlist_node *qlink, struct kmem_cache *cache)
{
void *object = qlink_to_object(qlink, cache);
+ struct kasan_free_meta *meta = kasan_get_free_meta(cache, object);
unsigned long flags;
if (IS_ENABLED(CONFIG_SLAB))
local_irq_save(flags);
+ /*
+ * If init_on_free is enabled and KASAN's free metadata is stored in
+ * the object, zero the metadata. Otherwise, the object's memory will
+ * not be properly zeroed, as KASAN saves the metadata after the slab
+ * allocator zeroes the object.
+ */
+ if (slab_want_init_on_free(cache) &&
+ cache->kasan_info.free_meta_offset == 0)
+ memzero_explicit(meta, sizeof(*meta));
+
/*
* As the object now gets freed from the quarantine, assume that its
* free track is no longer valid.
diff --git a/mm/kasan/shadow.c b/mm/kasan/shadow.c
index 4a4929b29a23..94136f84b449 100644
--- a/mm/kasan/shadow.c
+++ b/mm/kasan/shadow.c
@@ -498,7 +498,7 @@ void kasan_release_vmalloc(unsigned long start, unsigned long end,
#else /* CONFIG_KASAN_VMALLOC */
-int kasan_module_alloc(void *addr, size_t size)
+int kasan_module_alloc(void *addr, size_t size, gfp_t gfp_mask)
{
void *ret;
size_t scaled_size;
@@ -520,9 +520,14 @@ int kasan_module_alloc(void *addr, size_t size)
__builtin_return_address(0));
if (ret) {
+ struct vm_struct *vm = find_vm_area(addr);
__memset(ret, KASAN_SHADOW_INIT, shadow_size);
- find_vm_area(addr)->flags |= VM_KASAN;
+ vm->flags |= VM_KASAN;
kmemleak_ignore(ret);
+
+ if (vm->flags & VM_DEFER_KMEMLEAK)
+ kmemleak_vmalloc(vm, size, gfp_mask);
+
return 0;
}
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index c5952749ad40..d9492eaa4713 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -4204,7 +4204,9 @@ void warn_alloc(gfp_t gfp_mask, nodemask_t *nodemask, const char *fmt, ...)
va_list args;
static DEFINE_RATELIMIT_STATE(nopage_rs, 10*HZ, 1);
- if ((gfp_mask & __GFP_NOWARN) || !__ratelimit(&nopage_rs))
+ if ((gfp_mask & __GFP_NOWARN) ||
+ !__ratelimit(&nopage_rs) ||
+ ((gfp_mask & __GFP_DMA) && !has_managed_dma()))
return;
va_start(args, fmt);
@@ -9460,3 +9462,18 @@ bool take_page_off_buddy(struct page *page)
return ret;
}
#endif
+
+#ifdef CONFIG_ZONE_DMA
+bool has_managed_dma(void)
+{
+ struct pglist_data *pgdat;
+
+ for_each_online_pgdat(pgdat) {
+ struct zone *zone = &pgdat->node_zones[ZONE_DMA];
+
+ if (managed_zone(zone))
+ return true;
+ }
+ return false;
+}
+#endif /* CONFIG_ZONE_DMA */
diff --git a/mm/shmem.c b/mm/shmem.c
index 18f93c2d68f1..f6b0f53f8a32 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -554,7 +554,7 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
struct shmem_inode_info *info;
struct page *page;
unsigned long batch = sc ? sc->nr_to_scan : 128;
- int removed = 0, split = 0;
+ int split = 0;
if (list_empty(&sbinfo->shrinklist))
return SHRINK_STOP;
@@ -569,7 +569,6 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
/* inode is about to be evicted */
if (!inode) {
list_del_init(&info->shrinklist);
- removed++;
goto next;
}
@@ -577,12 +576,12 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
if (round_up(inode->i_size, PAGE_SIZE) ==
round_up(inode->i_size, HPAGE_PMD_SIZE)) {
list_move(&info->shrinklist, &to_remove);
- removed++;
goto next;
}
list_move(&info->shrinklist, &list);
next:
+ sbinfo->shrinklist_len--;
if (!--batch)
break;
}
@@ -602,7 +601,7 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
inode = &info->vfs_inode;
if (nr_to_split && split >= nr_to_split)
- goto leave;
+ goto move_back;
page = find_get_page(inode->i_mapping,
(inode->i_size & HPAGE_PMD_MASK) >> PAGE_SHIFT);
@@ -616,38 +615,44 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
}
/*
- * Leave the inode on the list if we failed to lock
- * the page at this time.
+ * Move the inode on the list back to shrinklist if we failed
+ * to lock the page at this time.
*
* Waiting for the lock may lead to deadlock in the
* reclaim path.
*/
if (!trylock_page(page)) {
put_page(page);
- goto leave;
+ goto move_back;
}
ret = split_huge_page(page);
unlock_page(page);
put_page(page);
- /* If split failed leave the inode on the list */
+ /* If split failed move the inode on the list back to shrinklist */
if (ret)
- goto leave;
+ goto move_back;
split++;
drop:
list_del_init(&info->shrinklist);
- removed++;
-leave:
+ goto put;
+move_back:
+ /*
+ * Make sure the inode is either on the global list or deleted
+ * from any local list before iput() since it could be deleted
+ * in another thread once we put the inode (then the local list
+ * is corrupted).
+ */
+ spin_lock(&sbinfo->shrinklist_lock);
+ list_move(&info->shrinklist, &sbinfo->shrinklist);
+ sbinfo->shrinklist_len++;
+ spin_unlock(&sbinfo->shrinklist_lock);
+put:
iput(inode);
}
- spin_lock(&sbinfo->shrinklist_lock);
- list_splice_tail(&list, &sbinfo->shrinklist);
- sbinfo->shrinklist_len -= removed;
- spin_unlock(&sbinfo->shrinklist_lock);
-
return split;
}
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index d2a00ad4e1dd..bf3c2fe8f528 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -3074,7 +3074,8 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
clear_vm_uninitialized_flag(area);
size = PAGE_ALIGN(size);
- kmemleak_vmalloc(area, size, gfp_mask);
+ if (!(vm_flags & VM_DEFER_KMEMLEAK))
+ kmemleak_vmalloc(area, size, gfp_mask);
return addr;
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
index cfca99e295b8..02f43f3e2c56 100644
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -536,7 +536,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
ax25_cb *ax25;
struct net_device *dev;
char devname[IFNAMSIZ];
- unsigned long opt;
+ unsigned int opt;
int res = 0;
if (level != SOL_AX25)
@@ -568,7 +568,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
break;
case AX25_T1:
- if (opt < 1 || opt > ULONG_MAX / HZ) {
+ if (opt < 1 || opt > UINT_MAX / HZ) {
res = -EINVAL;
break;
}
@@ -577,7 +577,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
break;
case AX25_T2:
- if (opt < 1 || opt > ULONG_MAX / HZ) {
+ if (opt < 1 || opt > UINT_MAX / HZ) {
res = -EINVAL;
break;
}
@@ -593,7 +593,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
break;
case AX25_T3:
- if (opt < 1 || opt > ULONG_MAX / HZ) {
+ if (opt < 1 || opt > UINT_MAX / HZ) {
res = -EINVAL;
break;
}
@@ -601,7 +601,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
break;
case AX25_IDLE:
- if (opt > ULONG_MAX / (60 * HZ)) {
+ if (opt > UINT_MAX / (60 * HZ)) {
res = -EINVAL;
break;
}
diff --git a/net/batman-adv/netlink.c b/net/batman-adv/netlink.c
index 29276284d281..00875e1d8c44 100644
--- a/net/batman-adv/netlink.c
+++ b/net/batman-adv/netlink.c
@@ -1368,21 +1368,21 @@ static const struct genl_small_ops batadv_netlink_ops[] = {
{
.cmd = BATADV_CMD_TP_METER,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_tp_meter_start,
.internal_flags = BATADV_FLAG_NEED_MESH,
},
{
.cmd = BATADV_CMD_TP_METER_CANCEL,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_tp_meter_cancel,
.internal_flags = BATADV_FLAG_NEED_MESH,
},
{
.cmd = BATADV_CMD_GET_ROUTING_ALGOS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_algo_dump,
},
{
@@ -1397,68 +1397,68 @@ static const struct genl_small_ops batadv_netlink_ops[] = {
{
.cmd = BATADV_CMD_GET_TRANSTABLE_LOCAL,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_tt_local_dump,
},
{
.cmd = BATADV_CMD_GET_TRANSTABLE_GLOBAL,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_tt_global_dump,
},
{
.cmd = BATADV_CMD_GET_ORIGINATORS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_orig_dump,
},
{
.cmd = BATADV_CMD_GET_NEIGHBORS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_hardif_neigh_dump,
},
{
.cmd = BATADV_CMD_GET_GATEWAYS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_gw_dump,
},
{
.cmd = BATADV_CMD_GET_BLA_CLAIM,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_bla_claim_dump,
},
{
.cmd = BATADV_CMD_GET_BLA_BACKBONE,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_bla_backbone_dump,
},
{
.cmd = BATADV_CMD_GET_DAT_CACHE,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_dat_cache_dump,
},
{
.cmd = BATADV_CMD_GET_MCAST_FLAGS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_mcast_flags_dump,
},
{
.cmd = BATADV_CMD_SET_MESH,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_set_mesh,
.internal_flags = BATADV_FLAG_NEED_MESH,
},
{
.cmd = BATADV_CMD_SET_HARDIF,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_set_hardif,
.internal_flags = BATADV_FLAG_NEED_MESH |
BATADV_FLAG_NEED_HARDIF,
@@ -1474,7 +1474,7 @@ static const struct genl_small_ops batadv_netlink_ops[] = {
{
.cmd = BATADV_CMD_SET_VLAN,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_set_vlan,
.internal_flags = BATADV_FLAG_NEED_MESH |
BATADV_FLAG_NEED_VLAN,
diff --git a/net/bluetooth/cmtp/core.c b/net/bluetooth/cmtp/core.c
index 0a2d78e811cf..83eb84e8e688 100644
--- a/net/bluetooth/cmtp/core.c
+++ b/net/bluetooth/cmtp/core.c
@@ -501,9 +501,7 @@ static int __init cmtp_init(void)
{
BT_INFO("CMTP (CAPI Emulation) ver %s", VERSION);
- cmtp_init_sockets();
-
- return 0;
+ return cmtp_init_sockets();
}
static void __exit cmtp_exit(void)
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 2cf77d76c50b..6c00ce302f09 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -3883,6 +3883,7 @@ int hci_register_dev(struct hci_dev *hdev)
return id;
err_wqueue:
+ debugfs_remove_recursive(hdev->debugfs);
destroy_workqueue(hdev->workqueue);
destroy_workqueue(hdev->req_workqueue);
err:
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 7d0db1ca1248..8882c6dfb48f 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -1326,8 +1326,10 @@ static void hci_cc_le_set_ext_adv_enable(struct hci_dev *hdev,
&conn->le_conn_timeout,
conn->conn_timeout);
} else {
- if (adv) {
- adv->enabled = false;
+ if (cp->num_of_sets) {
+ if (adv)
+ adv->enabled = false;
+
/* If just one instance was disabled check if there are
* any other instance enabled before clearing HCI_LE_ADV
*/
@@ -4445,7 +4447,6 @@ static void hci_sync_conn_complete_evt(struct hci_dev *hdev,
{
struct hci_ev_sync_conn_complete *ev = (void *) skb->data;
struct hci_conn *conn;
- unsigned int notify_evt;
BT_DBG("%s status 0x%2.2x", hdev->name, ev->status);
@@ -4517,22 +4518,18 @@ static void hci_sync_conn_complete_evt(struct hci_dev *hdev,
}
bt_dev_dbg(hdev, "SCO connected with air mode: %02x", ev->air_mode);
-
- switch (ev->air_mode) {
- case 0x02:
- notify_evt = HCI_NOTIFY_ENABLE_SCO_CVSD;
- break;
- case 0x03:
- notify_evt = HCI_NOTIFY_ENABLE_SCO_TRANSP;
- break;
- }
-
/* Notify only in case of SCO over HCI transport data path which
* is zero and non-zero value shall be non-HCI transport data path
*/
- if (conn->codec.data_path == 0) {
- if (hdev->notify)
- hdev->notify(hdev, notify_evt);
+ if (conn->codec.data_path == 0 && hdev->notify) {
+ switch (ev->air_mode) {
+ case 0x02:
+ hdev->notify(hdev, HCI_NOTIFY_ENABLE_SCO_CVSD);
+ break;
+ case 0x03:
+ hdev->notify(hdev, HCI_NOTIFY_ENABLE_SCO_TRANSP);
+ break;
+ }
}
hci_connect_cfm(conn, ev->status);
@@ -5825,7 +5822,8 @@ static void hci_le_adv_report_evt(struct hci_dev *hdev, struct sk_buff *skb)
struct hci_ev_le_advertising_info *ev = ptr;
s8 rssi;
- if (ev->length <= HCI_MAX_AD_LENGTH) {
+ if (ev->length <= HCI_MAX_AD_LENGTH &&
+ ev->data + ev->length <= skb_tail_pointer(skb)) {
rssi = ev->data[ev->length];
process_adv_report(hdev, ev->evt_type, &ev->bdaddr,
ev->bdaddr_type, NULL, 0, rssi,
@@ -5835,6 +5833,11 @@ static void hci_le_adv_report_evt(struct hci_dev *hdev, struct sk_buff *skb)
}
ptr += sizeof(*ev) + ev->length + 1;
+
+ if (ptr > (void *) skb_tail_pointer(skb) - sizeof(*ev)) {
+ bt_dev_err(hdev, "Malicious advertising data. Stopping processing");
+ break;
+ }
}
hci_dev_unlock(hdev);
diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c
index 92611bfc0b9e..cd71a312feb1 100644
--- a/net/bluetooth/hci_request.c
+++ b/net/bluetooth/hci_request.c
@@ -1935,7 +1935,7 @@ int __hci_req_enable_ext_advertising(struct hci_request *req, u8 instance)
/* Set duration per instance since controller is responsible for
* scheduling it.
*/
- if (adv_instance && adv_instance->duration) {
+ if (adv_instance && adv_instance->timeout) {
u16 duration = adv_instance->timeout * MSEC_PER_SEC;
/* Time = N * 10 ms */
diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
index d0dad1fafe07..33b3c0ffc339 100644
--- a/net/bluetooth/hci_sock.c
+++ b/net/bluetooth/hci_sock.c
@@ -889,10 +889,6 @@ static int hci_sock_release(struct socket *sock)
}
sock_orphan(sk);
-
- skb_queue_purge(&sk->sk_receive_queue);
- skb_queue_purge(&sk->sk_write_queue);
-
release_sock(sk);
sock_put(sk);
return 0;
@@ -1915,7 +1911,8 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
sockptr_t optval, unsigned int len)
{
struct sock *sk = sock->sk;
- int err = 0, opt = 0;
+ int err = 0;
+ u16 opt;
BT_DBG("sk %p, opt %d", sk, optname);
@@ -1941,7 +1938,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
goto done;
}
- if (copy_from_sockptr(&opt, optval, sizeof(u16))) {
+ if (copy_from_sockptr(&opt, optval, sizeof(opt))) {
err = -EFAULT;
break;
}
@@ -2058,6 +2055,12 @@ static int hci_sock_getsockopt(struct socket *sock, int level, int optname,
return err;
}
+static void hci_sock_destruct(struct sock *sk)
+{
+ skb_queue_purge(&sk->sk_receive_queue);
+ skb_queue_purge(&sk->sk_write_queue);
+}
+
static const struct proto_ops hci_sock_ops = {
.family = PF_BLUETOOTH,
.owner = THIS_MODULE,
@@ -2111,6 +2114,7 @@ static int hci_sock_create(struct net *net, struct socket *sock, int protocol,
sock->state = SS_UNCONNECTED;
sk->sk_state = BT_OPEN;
+ sk->sk_destruct = hci_sock_destruct;
bt_sock_link(&hci_sk_list, sk);
return 0;
diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c
index 7827639ecf5c..4e3e0451b08c 100644
--- a/net/bluetooth/hci_sysfs.c
+++ b/net/bluetooth/hci_sysfs.c
@@ -86,6 +86,8 @@ static void bt_host_release(struct device *dev)
if (hci_dev_test_flag(hdev, HCI_UNREGISTER))
hci_release_dev(hdev);
+ else
+ kfree(hdev);
module_put(THIS_MODULE);
}
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index 160c016a5dfb..d2c678520599 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -161,7 +161,11 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
break;
}
- if (chan->psm && bdaddr_type_is_le(chan->src_type))
+ /* Use L2CAP_MODE_LE_FLOWCTL (CoC) in case of LE address and
+ * L2CAP_MODE_EXT_FLOWCTL (ECRED) has not been set.
+ */
+ if (chan->psm && bdaddr_type_is_le(chan->src_type) &&
+ chan->mode != L2CAP_MODE_EXT_FLOWCTL)
chan->mode = L2CAP_MODE_LE_FLOWCTL;
chan->state = BT_BOUND;
@@ -172,6 +176,21 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
return err;
}
+static void l2cap_sock_init_pid(struct sock *sk)
+{
+ struct l2cap_chan *chan = l2cap_pi(sk)->chan;
+
+ /* Only L2CAP_MODE_EXT_FLOWCTL ever need to access the PID in order to
+ * group the channels being requested.
+ */
+ if (chan->mode != L2CAP_MODE_EXT_FLOWCTL)
+ return;
+
+ spin_lock(&sk->sk_peer_lock);
+ sk->sk_peer_pid = get_pid(task_tgid(current));
+ spin_unlock(&sk->sk_peer_lock);
+}
+
static int l2cap_sock_connect(struct socket *sock, struct sockaddr *addr,
int alen, int flags)
{
@@ -240,9 +259,15 @@ static int l2cap_sock_connect(struct socket *sock, struct sockaddr *addr,
return -EINVAL;
}
- if (chan->psm && bdaddr_type_is_le(chan->src_type) && !chan->mode)
+ /* Use L2CAP_MODE_LE_FLOWCTL (CoC) in case of LE address and
+ * L2CAP_MODE_EXT_FLOWCTL (ECRED) has not been set.
+ */
+ if (chan->psm && bdaddr_type_is_le(chan->src_type) &&
+ chan->mode != L2CAP_MODE_EXT_FLOWCTL)
chan->mode = L2CAP_MODE_LE_FLOWCTL;
+ l2cap_sock_init_pid(sk);
+
err = l2cap_chan_connect(chan, la.l2_psm, __le16_to_cpu(la.l2_cid),
&la.l2_bdaddr, la.l2_bdaddr_type);
if (err)
@@ -298,6 +323,8 @@ static int l2cap_sock_listen(struct socket *sock, int backlog)
goto done;
}
+ l2cap_sock_init_pid(sk);
+
sk->sk_max_ack_backlog = backlog;
sk->sk_ack_backlog = 0;
@@ -876,6 +903,8 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
struct l2cap_conn *conn;
int len, err = 0;
u32 opt;
+ u16 mtu;
+ u8 mode;
BT_DBG("sk %p", sk);
@@ -1058,16 +1087,16 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
break;
}
- if (copy_from_sockptr(&opt, optval, sizeof(u16))) {
+ if (copy_from_sockptr(&mtu, optval, sizeof(u16))) {
err = -EFAULT;
break;
}
if (chan->mode == L2CAP_MODE_EXT_FLOWCTL &&
sk->sk_state == BT_CONNECTED)
- err = l2cap_chan_reconfigure(chan, opt);
+ err = l2cap_chan_reconfigure(chan, mtu);
else
- chan->imtu = opt;
+ chan->imtu = mtu;
break;
@@ -1089,14 +1118,14 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
break;
}
- if (copy_from_sockptr(&opt, optval, sizeof(u8))) {
+ if (copy_from_sockptr(&mode, optval, sizeof(u8))) {
err = -EFAULT;
break;
}
- BT_DBG("opt %u", opt);
+ BT_DBG("mode %u", mode);
- err = l2cap_set_mode(chan, opt);
+ err = l2cap_set_mode(chan, mode);
if (err)
break;
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index 3e5283607b97..c068d05e9616 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -3927,7 +3927,9 @@ static int exp_debug_feature_changed(bool enabled, struct sock *skip)
}
#endif
-static int exp_quality_report_feature_changed(bool enabled, struct sock *skip)
+static int exp_quality_report_feature_changed(bool enabled,
+ struct hci_dev *hdev,
+ struct sock *skip)
{
struct mgmt_ev_exp_feature_changed ev;
@@ -3935,7 +3937,7 @@ static int exp_quality_report_feature_changed(bool enabled, struct sock *skip)
memcpy(ev.uuid, quality_report_uuid, 16);
ev.flags = cpu_to_le32(enabled ? BIT(0) : 0);
- return mgmt_limited_event(MGMT_EV_EXP_FEATURE_CHANGED, NULL,
+ return mgmt_limited_event(MGMT_EV_EXP_FEATURE_CHANGED, hdev,
&ev, sizeof(ev),
HCI_MGMT_EXP_FEATURE_EVENTS, skip);
}
@@ -3967,10 +3969,10 @@ static int set_zero_key_func(struct sock *sk, struct hci_dev *hdev,
#endif
if (hdev && use_ll_privacy(hdev) && !hdev_is_powered(hdev)) {
- bool changed = hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY);
-
- hci_dev_clear_flag(hdev, HCI_ENABLE_LL_PRIVACY);
+ bool changed;
+ changed = hci_dev_test_and_clear_flag(hdev,
+ HCI_ENABLE_LL_PRIVACY);
if (changed)
exp_ll_privacy_feature_changed(false, hdev, sk);
}
@@ -4065,15 +4067,15 @@ static int set_rpa_resolution_func(struct sock *sk, struct hci_dev *hdev,
val = !!cp->param[0];
if (val) {
- changed = !hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY);
- hci_dev_set_flag(hdev, HCI_ENABLE_LL_PRIVACY);
+ changed = !hci_dev_test_and_set_flag(hdev,
+ HCI_ENABLE_LL_PRIVACY);
hci_dev_clear_flag(hdev, HCI_ADVERTISING);
/* Enable LL privacy + supported settings changed */
flags = BIT(0) | BIT(1);
} else {
- changed = hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY);
- hci_dev_clear_flag(hdev, HCI_ENABLE_LL_PRIVACY);
+ changed = hci_dev_test_and_clear_flag(hdev,
+ HCI_ENABLE_LL_PRIVACY);
/* Disable LL privacy + supported settings changed */
flags = BIT(1);
@@ -4156,14 +4158,15 @@ static int set_quality_report_func(struct sock *sk, struct hci_dev *hdev,
&rp, sizeof(rp));
if (changed)
- exp_quality_report_feature_changed(val, sk);
+ exp_quality_report_feature_changed(val, hdev, sk);
unlock_quality_report:
hci_req_sync_unlock(hdev);
return err;
}
-static int exp_offload_codec_feature_changed(bool enabled, struct sock *skip)
+static int exp_offload_codec_feature_changed(bool enabled, struct hci_dev *hdev,
+ struct sock *skip)
{
struct mgmt_ev_exp_feature_changed ev;
@@ -4171,7 +4174,7 @@ static int exp_offload_codec_feature_changed(bool enabled, struct sock *skip)
memcpy(ev.uuid, offload_codecs_uuid, 16);
ev.flags = cpu_to_le32(enabled ? BIT(0) : 0);
- return mgmt_limited_event(MGMT_EV_EXP_FEATURE_CHANGED, NULL,
+ return mgmt_limited_event(MGMT_EV_EXP_FEATURE_CHANGED, hdev,
&ev, sizeof(ev),
HCI_MGMT_EXP_FEATURE_EVENTS, skip);
}
@@ -4229,7 +4232,7 @@ static int set_offload_codec_func(struct sock *sk, struct hci_dev *hdev,
&rp, sizeof(rp));
if (changed)
- exp_offload_codec_feature_changed(val, sk);
+ exp_offload_codec_feature_changed(val, hdev, sk);
return err;
}
diff --git a/net/bridge/br_netfilter_hooks.c b/net/bridge/br_netfilter_hooks.c
index b5af68c105a8..4fd882686b04 100644
--- a/net/bridge/br_netfilter_hooks.c
+++ b/net/bridge/br_netfilter_hooks.c
@@ -743,6 +743,9 @@ static int br_nf_dev_queue_xmit(struct net *net, struct sock *sk, struct sk_buff
if (nf_bridge->frag_max_size && nf_bridge->frag_max_size < mtu)
mtu = nf_bridge->frag_max_size;
+ nf_bridge_update_protocol(skb);
+ nf_bridge_push_encap_header(skb);
+
if (skb_is_gso(skb) || skb->len + mtu_reserved <= mtu) {
nf_bridge_info_free(skb);
return br_dev_queue_push_xmit(net, sk, skb);
@@ -760,8 +763,6 @@ static int br_nf_dev_queue_xmit(struct net *net, struct sock *sk, struct sk_buff
IPCB(skb)->frag_max_size = nf_bridge->frag_max_size;
- nf_bridge_update_protocol(skb);
-
data = this_cpu_ptr(&brnf_frag_data_storage);
if (skb_vlan_tag_present(skb)) {
@@ -789,8 +790,6 @@ static int br_nf_dev_queue_xmit(struct net *net, struct sock *sk, struct sk_buff
IP6CB(skb)->frag_max_size = nf_bridge->frag_max_size;
- nf_bridge_update_protocol(skb);
-
data = this_cpu_ptr(&brnf_frag_data_storage);
data->encap_size = nf_bridge_encap_header_len(skb);
data->size = ETH_HLEN + data->encap_size;
diff --git a/net/core/dev.c b/net/core/dev.c
index c4708e2487fb..2078d04c6482 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -9656,6 +9656,12 @@ static int bpf_xdp_link_update(struct bpf_link *link, struct bpf_prog *new_prog,
goto out_unlock;
}
old_prog = link->prog;
+ if (old_prog->type != new_prog->type ||
+ old_prog->expected_attach_type != new_prog->expected_attach_type) {
+ err = -EINVAL;
+ goto out_unlock;
+ }
+
if (old_prog == new_prog) {
/* no-op, don't disturb drivers */
bpf_prog_put(new_prog);
diff --git a/net/core/devlink.c b/net/core/devlink.c
index c06c9ba6e8c5..f2fff89a9971 100644
--- a/net/core/devlink.c
+++ b/net/core/devlink.c
@@ -8840,8 +8840,6 @@ static const struct genl_small_ops devlink_nl_ops[] = {
GENL_DONT_VALIDATE_DUMP_STRICT,
.dumpit = devlink_nl_cmd_health_reporter_dump_get_dumpit,
.flags = GENL_ADMIN_PERM,
- .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK_OR_PORT |
- DEVLINK_NL_FLAG_NO_LOCK,
},
{
.cmd = DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR,
diff --git a/net/core/filter.c b/net/core/filter.c
index 6102f093d59a..5b82a817f65a 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -4742,12 +4742,14 @@ static int _bpf_setsockopt(struct sock *sk, int level, int optname,
switch (optname) {
case SO_RCVBUF:
val = min_t(u32, val, sysctl_rmem_max);
+ val = min_t(int, val, INT_MAX / 2);
sk->sk_userlocks |= SOCK_RCVBUF_LOCK;
WRITE_ONCE(sk->sk_rcvbuf,
max_t(int, val * 2, SOCK_MIN_RCVBUF));
break;
case SO_SNDBUF:
val = min_t(u32, val, sysctl_wmem_max);
+ val = min_t(int, val, INT_MAX / 2);
sk->sk_userlocks |= SOCK_SNDBUF_LOCK;
WRITE_ONCE(sk->sk_sndbuf,
max_t(int, val * 2, SOCK_MIN_SNDBUF));
@@ -8185,9 +8187,9 @@ void bpf_warn_invalid_xdp_action(u32 act)
{
const u32 act_max = XDP_REDIRECT;
- WARN_ONCE(1, "%s XDP return value %u, expect packet loss!\n",
- act > act_max ? "Illegal" : "Driver unsupported",
- act);
+ pr_warn_once("%s XDP return value %u, expect packet loss!\n",
+ act > act_max ? "Illegal" : "Driver unsupported",
+ act);
}
EXPORT_SYMBOL_GPL(bpf_warn_invalid_xdp_action);
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
index 9c01c642cf9e..d7f9ee830d34 100644
--- a/net/core/net-sysfs.c
+++ b/net/core/net-sysfs.c
@@ -1820,6 +1820,9 @@ static void remove_queue_kobjects(struct net_device *dev)
net_rx_queue_update_kobjects(dev, real_rx, 0);
netdev_queue_update_kobjects(dev, real_tx, 0);
+
+ dev->real_num_rx_queues = 0;
+ dev->real_num_tx_queues = 0;
#ifdef CONFIG_SYSFS
kset_unregister(dev->queues_kset);
#endif
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index 202fa5eacd0f..9702d2b0d920 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -164,8 +164,10 @@ static void ops_exit_list(const struct pernet_operations *ops,
{
struct net *net;
if (ops->exit) {
- list_for_each_entry(net, net_exit_list, exit_list)
+ list_for_each_entry(net, net_exit_list, exit_list) {
ops->exit(net);
+ cond_resched();
+ }
}
if (ops->exit_batch)
ops->exit_batch(net_exit_list);
diff --git a/net/core/sock.c b/net/core/sock.c
index 41e91d0f7061..7de234693a3b 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -843,6 +843,8 @@ static int sock_timestamping_bind_phc(struct sock *sk, int phc_index)
}
num = ethtool_get_phc_vclocks(dev, &vclock_index);
+ dev_put(dev);
+
for (i = 0; i < num; i++) {
if (*(vclock_index + i) == phc_index) {
match = true;
diff --git a/net/core/sock_map.c b/net/core/sock_map.c
index 4ca4b11f4e5f..687c81386518 100644
--- a/net/core/sock_map.c
+++ b/net/core/sock_map.c
@@ -292,15 +292,23 @@ static int sock_map_link(struct bpf_map *map, struct sock *sk)
if (skb_verdict)
psock_set_prog(&psock->progs.skb_verdict, skb_verdict);
+ /* msg_* and stream_* programs references tracked in psock after this
+ * point. Reference dec and cleanup will occur through psock destructor
+ */
ret = sock_map_init_proto(sk, psock);
- if (ret < 0)
- goto out_drop;
+ if (ret < 0) {
+ sk_psock_put(sk, psock);
+ goto out;
+ }
write_lock_bh(&sk->sk_callback_lock);
if (stream_parser && stream_verdict && !psock->saved_data_ready) {
ret = sk_psock_init_strp(sk, psock);
- if (ret)
- goto out_unlock_drop;
+ if (ret) {
+ write_unlock_bh(&sk->sk_callback_lock);
+ sk_psock_put(sk, psock);
+ goto out;
+ }
sk_psock_start_strp(sk, psock);
} else if (!stream_parser && stream_verdict && !psock->saved_data_ready) {
sk_psock_start_verdict(sk,psock);
@@ -309,10 +317,6 @@ static int sock_map_link(struct bpf_map *map, struct sock *sk)
}
write_unlock_bh(&sk->sk_callback_lock);
return 0;
-out_unlock_drop:
- write_unlock_bh(&sk->sk_callback_lock);
-out_drop:
- sk_psock_put(sk, psock);
out_progs:
if (skb_verdict)
bpf_prog_put(skb_verdict);
@@ -325,6 +329,7 @@ static int sock_map_link(struct bpf_map *map, struct sock *sk)
out_put_stream_verdict:
if (stream_verdict)
bpf_prog_put(stream_verdict);
+out:
return ret;
}
diff --git a/net/dsa/switch.c b/net/dsa/switch.c
index bb155a16d454..80816f7e1f99 100644
--- a/net/dsa/switch.c
+++ b/net/dsa/switch.c
@@ -675,7 +675,7 @@ static int
dsa_switch_mrp_add_ring_role(struct dsa_switch *ds,
struct dsa_notifier_mrp_ring_role_info *info)
{
- if (!ds->ops->port_mrp_add)
+ if (!ds->ops->port_mrp_add_ring_role)
return -EOPNOTSUPP;
if (ds->index == info->sw_index)
@@ -689,7 +689,7 @@ static int
dsa_switch_mrp_del_ring_role(struct dsa_switch *ds,
struct dsa_notifier_mrp_ring_role_info *info)
{
- if (!ds->ops->port_mrp_del)
+ if (!ds->ops->port_mrp_del_ring_role)
return -EOPNOTSUPP;
if (ds->index == info->sw_index)
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
index 92c29ab3d042..5dfb94abe7b1 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -29,6 +29,7 @@
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/netlink.h>
+#include <linux/hash.h>
#include <net/arp.h>
#include <net/ip.h>
@@ -249,7 +250,6 @@ void free_fib_info(struct fib_info *fi)
pr_warn("Freeing alive fib_info %p\n", fi);
return;
}
- fib_info_cnt--;
call_rcu(&fi->rcu, free_fib_info_rcu);
}
@@ -260,6 +260,10 @@ void fib_release_info(struct fib_info *fi)
spin_lock_bh(&fib_info_lock);
if (fi && refcount_dec_and_test(&fi->fib_treeref)) {
hlist_del(&fi->fib_hash);
+
+ /* Paired with READ_ONCE() in fib_create_info(). */
+ WRITE_ONCE(fib_info_cnt, fib_info_cnt - 1);
+
if (fi->fib_prefsrc)
hlist_del(&fi->fib_lhash);
if (fi->nh) {
@@ -316,11 +320,15 @@ static inline int nh_comp(struct fib_info *fi, struct fib_info *ofi)
static inline unsigned int fib_devindex_hashfn(unsigned int val)
{
- unsigned int mask = DEVINDEX_HASHSIZE - 1;
+ return hash_32(val, DEVINDEX_HASHBITS);
+}
+
+static struct hlist_head *
+fib_info_devhash_bucket(const struct net_device *dev)
+{
+ u32 val = net_hash_mix(dev_net(dev)) ^ dev->ifindex;
- return (val ^
- (val >> DEVINDEX_HASHBITS) ^
- (val >> (DEVINDEX_HASHBITS * 2))) & mask;
+ return &fib_info_devhash[fib_devindex_hashfn(val)];
}
static unsigned int fib_info_hashfn_1(int init_val, u8 protocol, u8 scope,
@@ -430,12 +438,11 @@ int ip_fib_check_default(__be32 gw, struct net_device *dev)
{
struct hlist_head *head;
struct fib_nh *nh;
- unsigned int hash;
spin_lock(&fib_info_lock);
- hash = fib_devindex_hashfn(dev->ifindex);
- head = &fib_info_devhash[hash];
+ head = fib_info_devhash_bucket(dev);
+
hlist_for_each_entry(nh, head, nh_hash) {
if (nh->fib_nh_dev == dev &&
nh->fib_nh_gw4 == gw &&
@@ -1430,7 +1437,9 @@ struct fib_info *fib_create_info(struct fib_config *cfg,
#endif
err = -ENOBUFS;
- if (fib_info_cnt >= fib_info_hash_size) {
+
+ /* Paired with WRITE_ONCE() in fib_release_info() */
+ if (READ_ONCE(fib_info_cnt) >= fib_info_hash_size) {
unsigned int new_size = fib_info_hash_size << 1;
struct hlist_head *new_info_hash;
struct hlist_head *new_laddrhash;
@@ -1462,7 +1471,6 @@ struct fib_info *fib_create_info(struct fib_config *cfg,
return ERR_PTR(err);
}
- fib_info_cnt++;
fi->fib_net = net;
fi->fib_protocol = cfg->fc_protocol;
fi->fib_scope = cfg->fc_scope;
@@ -1589,6 +1597,7 @@ struct fib_info *fib_create_info(struct fib_config *cfg,
refcount_set(&fi->fib_treeref, 1);
refcount_set(&fi->fib_clntref, 1);
spin_lock_bh(&fib_info_lock);
+ fib_info_cnt++;
hlist_add_head(&fi->fib_hash,
&fib_info_hash[fib_info_hashfn(fi)]);
if (fi->fib_prefsrc) {
@@ -1602,12 +1611,10 @@ struct fib_info *fib_create_info(struct fib_config *cfg,
} else {
change_nexthops(fi) {
struct hlist_head *head;
- unsigned int hash;
if (!nexthop_nh->fib_nh_dev)
continue;
- hash = fib_devindex_hashfn(nexthop_nh->fib_nh_dev->ifindex);
- head = &fib_info_devhash[hash];
+ head = fib_info_devhash_bucket(nexthop_nh->fib_nh_dev);
hlist_add_head(&nexthop_nh->nh_hash, head);
} endfor_nexthops(fi)
}
@@ -1959,8 +1966,7 @@ void fib_nhc_update_mtu(struct fib_nh_common *nhc, u32 new, u32 orig)
void fib_sync_mtu(struct net_device *dev, u32 orig_mtu)
{
- unsigned int hash = fib_devindex_hashfn(dev->ifindex);
- struct hlist_head *head = &fib_info_devhash[hash];
+ struct hlist_head *head = fib_info_devhash_bucket(dev);
struct fib_nh *nh;
hlist_for_each_entry(nh, head, nh_hash) {
@@ -1979,12 +1985,11 @@ void fib_sync_mtu(struct net_device *dev, u32 orig_mtu)
*/
int fib_sync_down_dev(struct net_device *dev, unsigned long event, bool force)
{
- int ret = 0;
- int scope = RT_SCOPE_NOWHERE;
+ struct hlist_head *head = fib_info_devhash_bucket(dev);
struct fib_info *prev_fi = NULL;
- unsigned int hash = fib_devindex_hashfn(dev->ifindex);
- struct hlist_head *head = &fib_info_devhash[hash];
+ int scope = RT_SCOPE_NOWHERE;
struct fib_nh *nh;
+ int ret = 0;
if (force)
scope = -1;
@@ -2129,7 +2134,6 @@ static void fib_select_default(const struct flowi4 *flp, struct fib_result *res)
int fib_sync_up(struct net_device *dev, unsigned char nh_flags)
{
struct fib_info *prev_fi;
- unsigned int hash;
struct hlist_head *head;
struct fib_nh *nh;
int ret;
@@ -2145,8 +2149,7 @@ int fib_sync_up(struct net_device *dev, unsigned char nh_flags)
}
prev_fi = NULL;
- hash = fib_devindex_hashfn(dev->ifindex);
- head = &fib_info_devhash[hash];
+ head = fib_info_devhash_bucket(dev);
ret = 0;
hlist_for_each_entry(nh, head, nh_hash) {
diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c
index 05cd198d7a6b..341096807100 100644
--- a/net/ipv4/inet_fragment.c
+++ b/net/ipv4/inet_fragment.c
@@ -235,9 +235,9 @@ void inet_frag_kill(struct inet_frag_queue *fq)
/* The RCU read lock provides a memory barrier
* guaranteeing that if fqdir->dead is false then
* the hash table destruction will not start until
- * after we unlock. Paired with inet_frags_exit_net().
+ * after we unlock. Paired with fqdir_pre_exit().
*/
- if (!fqdir->dead) {
+ if (!READ_ONCE(fqdir->dead)) {
rhashtable_remove_fast(&fqdir->rhashtable, &fq->node,
fqdir->f->rhash_params);
refcount_dec(&fq->refcnt);
@@ -352,9 +352,11 @@ static struct inet_frag_queue *inet_frag_create(struct fqdir *fqdir,
/* TODO : call from rcu_read_lock() and no longer use refcount_inc_not_zero() */
struct inet_frag_queue *inet_frag_find(struct fqdir *fqdir, void *key)
{
+ /* This pairs with WRITE_ONCE() in fqdir_pre_exit(). */
+ long high_thresh = READ_ONCE(fqdir->high_thresh);
struct inet_frag_queue *fq = NULL, *prev;
- if (!fqdir->high_thresh || frag_mem_limit(fqdir) > fqdir->high_thresh)
+ if (!high_thresh || frag_mem_limit(fqdir) > high_thresh)
return NULL;
rcu_read_lock();
diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
index cfeb8890f94e..fad803d2d711 100644
--- a/net/ipv4/ip_fragment.c
+++ b/net/ipv4/ip_fragment.c
@@ -144,7 +144,8 @@ static void ip_expire(struct timer_list *t)
rcu_read_lock();
- if (qp->q.fqdir->dead)
+ /* Paired with WRITE_ONCE() in fqdir_pre_exit(). */
+ if (READ_ONCE(qp->q.fqdir->dead))
goto out_rcu_unlock;
spin_lock(&qp->q.lock);
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index 2ac2b95c5694..99db2e41ed10 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -604,8 +604,9 @@ static int gre_fill_metadata_dst(struct net_device *dev, struct sk_buff *skb)
key = &info->key;
ip_tunnel_init_flow(&fl4, IPPROTO_GRE, key->u.ipv4.dst, key->u.ipv4.src,
- tunnel_id_to_key32(key->tun_id), key->tos, 0,
- skb->mark, skb_get_hash(skb));
+ tunnel_id_to_key32(key->tun_id),
+ key->tos & ~INET_ECN_MASK, 0, skb->mark,
+ skb_get_hash(skb));
rt = ip_route_output_key(dev_net(dev), &fl4);
if (IS_ERR(rt))
return PTR_ERR(rt);
diff --git a/net/ipv4/netfilter/ipt_CLUSTERIP.c b/net/ipv4/netfilter/ipt_CLUSTERIP.c
index 8fd1aba8af31..b518f20c9a24 100644
--- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
+++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
@@ -520,8 +520,11 @@ static int clusterip_tg_check(const struct xt_tgchk_param *par)
if (IS_ERR(config))
return PTR_ERR(config);
}
- } else if (memcmp(&config->clustermac, &cipinfo->clustermac, ETH_ALEN))
+ } else if (memcmp(&config->clustermac, &cipinfo->clustermac, ETH_ALEN)) {
+ clusterip_config_entry_put(config);
+ clusterip_config_put(config);
return -EINVAL;
+ }
ret = nf_ct_netns_get(par->net, par->family);
if (ret < 0) {
diff --git a/net/ipv4/tcp_bpf.c b/net/ipv4/tcp_bpf.c
index f70aa0932bd6..9b9b02052fd3 100644
--- a/net/ipv4/tcp_bpf.c
+++ b/net/ipv4/tcp_bpf.c
@@ -196,12 +196,39 @@ static int tcp_bpf_recvmsg_parser(struct sock *sk,
long timeo;
int data;
+ if (sock_flag(sk, SOCK_DONE))
+ goto out;
+
+ if (sk->sk_err) {
+ copied = sock_error(sk);
+ goto out;
+ }
+
+ if (sk->sk_shutdown & RCV_SHUTDOWN)
+ goto out;
+
+ if (sk->sk_state == TCP_CLOSE) {
+ copied = -ENOTCONN;
+ goto out;
+ }
+
timeo = sock_rcvtimeo(sk, nonblock);
+ if (!timeo) {
+ copied = -EAGAIN;
+ goto out;
+ }
+
+ if (signal_pending(current)) {
+ copied = sock_intr_errno(timeo);
+ goto out;
+ }
+
data = tcp_msg_wait_data(sk, psock, timeo);
if (data && !sk_psock_queue_empty(psock))
goto msg_bytes_ready;
copied = -EAGAIN;
}
+out:
release_sock(sk);
sk_psock_put(sk, psock);
return copied;
diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
index d831d2439693..f5a511c57aa2 100644
--- a/net/ipv6/ip6_gre.c
+++ b/net/ipv6/ip6_gre.c
@@ -755,6 +755,7 @@ static netdev_tx_t __gre6_xmit(struct sk_buff *skb,
fl6->daddr = key->u.ipv6.dst;
fl6->flowlabel = key->label;
fl6->flowi6_uid = sock_net_uid(dev_net(dev), NULL);
+ fl6->fl6_gre_key = tunnel_id_to_key32(key->tun_id);
dsfield = key->tos;
flags = key->tun_flags &
@@ -990,6 +991,7 @@ static netdev_tx_t ip6erspan_tunnel_xmit(struct sk_buff *skb,
fl6.daddr = key->u.ipv6.dst;
fl6.flowlabel = key->label;
fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
+ fl6.fl6_gre_key = tunnel_id_to_key32(key->tun_id);
dsfield = key->tos;
if (!(tun_info->key.tun_flags & TUNNEL_ERSPAN_OPT))
@@ -1098,6 +1100,7 @@ static void ip6gre_tnl_link_config_common(struct ip6_tnl *t)
fl6->flowi6_oif = p->link;
fl6->flowlabel = 0;
fl6->flowi6_proto = IPPROTO_GRE;
+ fl6->fl6_gre_key = t->parms.o_key;
if (!(p->flags&IP6_TNL_F_USE_ORIG_TCLASS))
fl6->flowlabel |= IPV6_TCLASS_MASK & p->flowinfo;
@@ -1544,7 +1547,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
static struct inet6_protocol ip6gre_protocol __read_mostly = {
.handler = gre_rcv,
.err_handler = ip6gre_err,
- .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
+ .flags = INET6_PROTO_FINAL,
};
static void ip6gre_destroy_tunnels(struct net *net, struct list_head *head)
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 0544563ede52..d2e8b84ed283 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -4924,7 +4924,7 @@ void ieee80211_rx_list(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta,
goto drop;
break;
case RX_ENC_VHT:
- if (WARN_ONCE(status->rate_idx > 9 ||
+ if (WARN_ONCE(status->rate_idx > 11 ||
!status->nss ||
status->nss > 8,
"Rate marked as a VHT rate but data is invalid: MCS: %d, NSS: %d\n",
diff --git a/net/mctp/test/route-test.c b/net/mctp/test/route-test.c
index 36fac3daf86a..750f9f9b4daf 100644
--- a/net/mctp/test/route-test.c
+++ b/net/mctp/test/route-test.c
@@ -150,11 +150,6 @@ static void mctp_test_fragment(struct kunit *test)
rt = mctp_test_create_route(&init_net, NULL, 10, mtu);
KUNIT_ASSERT_TRUE(test, rt);
- /* The refcount would usually be incremented as part of a route lookup,
- * but we're setting the route directly here.
- */
- refcount_inc(&rt->rt.refs);
-
rc = mctp_do_fragment_route(&rt->rt, skb, mtu, MCTP_TAG_OWNER);
KUNIT_EXPECT_FALSE(test, rc);
@@ -290,7 +285,7 @@ static void __mctp_route_test_init(struct kunit *test,
struct mctp_test_route **rtp,
struct socket **sockp)
{
- struct sockaddr_mctp addr;
+ struct sockaddr_mctp addr = {0};
struct mctp_test_route *rt;
struct mctp_test_dev *dev;
struct socket *sock;
diff --git a/net/mptcp/options.c b/net/mptcp/options.c
index fe98e4f475ba..6661b1d6520f 100644
--- a/net/mptcp/options.c
+++ b/net/mptcp/options.c
@@ -821,10 +821,13 @@ bool mptcp_established_options(struct sock *sk, struct sk_buff *skb,
if (mptcp_established_options_mp(sk, skb, snd_data_fin, &opt_size, remaining, opts))
ret = true;
else if (mptcp_established_options_dss(sk, skb, snd_data_fin, &opt_size, remaining, opts)) {
+ unsigned int mp_fail_size;
+
ret = true;
- if (mptcp_established_options_mp_fail(sk, &opt_size, remaining, opts)) {
- *size += opt_size;
- remaining -= opt_size;
+ if (mptcp_established_options_mp_fail(sk, &mp_fail_size,
+ remaining - opt_size, opts)) {
+ *size += opt_size + mp_fail_size;
+ remaining -= opt_size - mp_fail_size;
return true;
}
}
@@ -1316,6 +1319,7 @@ void mptcp_write_options(__be32 *ptr, const struct tcp_sock *tp,
put_unaligned_be32(mpext->data_len << 16 |
TCPOPT_NOP << 8 | TCPOPT_NOP, ptr);
}
+ ptr += 1;
}
} else if (OPTIONS_MPTCP_MPC & opts->suboptions) {
u8 len, flag = MPTCP_CAP_HMAC_SHA256;
diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c
index f523051f5aef..65764c8171b3 100644
--- a/net/mptcp/pm_netlink.c
+++ b/net/mptcp/pm_netlink.c
@@ -710,6 +710,8 @@ static void mptcp_pm_nl_rm_addr_or_subflow(struct mptcp_sock *msk,
return;
for (i = 0; i < rm_list->nr; i++) {
+ bool removed = false;
+
list_for_each_entry_safe(subflow, tmp, &msk->conn_list, node) {
struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
int how = RCV_SHUTDOWN | SEND_SHUTDOWN;
@@ -729,15 +731,19 @@ static void mptcp_pm_nl_rm_addr_or_subflow(struct mptcp_sock *msk,
mptcp_close_ssk(sk, ssk, subflow);
spin_lock_bh(&msk->pm.lock);
- if (rm_type == MPTCP_MIB_RMADDR) {
- msk->pm.add_addr_accepted--;
- WRITE_ONCE(msk->pm.accept_addr, true);
- } else if (rm_type == MPTCP_MIB_RMSUBFLOW) {
- msk->pm.local_addr_used--;
- }
+ removed = true;
msk->pm.subflows--;
__MPTCP_INC_STATS(sock_net(sk), rm_type);
}
+ if (!removed)
+ continue;
+
+ if (rm_type == MPTCP_MIB_RMADDR) {
+ msk->pm.add_addr_accepted--;
+ WRITE_ONCE(msk->pm.accept_addr, true);
+ } else if (rm_type == MPTCP_MIB_RMSUBFLOW) {
+ msk->pm.local_addr_used--;
+ }
}
}
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 54613f5b7521..0cd55e4c30fa 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -972,7 +972,9 @@ static void __mptcp_mem_reclaim_partial(struct sock *sk)
lockdep_assert_held_once(&sk->sk_lock.slock);
- __mptcp_rmem_reclaim(sk, reclaimable - 1);
+ if (reclaimable > SK_MEM_QUANTUM)
+ __mptcp_rmem_reclaim(sk, reclaimable - 1);
+
sk_mem_reclaim_partial(sk);
}
diff --git a/net/netfilter/nft_payload.c b/net/netfilter/nft_payload.c
index bd689938a2e0..58e96a0fe0b4 100644
--- a/net/netfilter/nft_payload.c
+++ b/net/netfilter/nft_payload.c
@@ -546,6 +546,9 @@ static int nft_payload_l4csum_offset(const struct nft_pktinfo *pkt,
struct sk_buff *skb,
unsigned int *l4csum_offset)
{
+ if (pkt->fragoff)
+ return -1;
+
switch (pkt->tprot) {
case IPPROTO_TCP:
*l4csum_offset = offsetof(struct tcphdr, check);
diff --git a/net/netfilter/nft_set_pipapo.c b/net/netfilter/nft_set_pipapo.c
index dce866d93fee..2c8051d8cca6 100644
--- a/net/netfilter/nft_set_pipapo.c
+++ b/net/netfilter/nft_set_pipapo.c
@@ -1290,6 +1290,11 @@ static struct nft_pipapo_match *pipapo_clone(struct nft_pipapo_match *old)
if (!new->scratch_aligned)
goto out_scratch;
#endif
+ for_each_possible_cpu(i)
+ *per_cpu_ptr(new->scratch, i) = NULL;
+
+ if (pipapo_realloc_scratch(new, old->bsize_max))
+ goto out_scratch_realloc;
rcu_head_init(&new->rcu);
@@ -1334,6 +1339,9 @@ static struct nft_pipapo_match *pipapo_clone(struct nft_pipapo_match *old)
kvfree(dst->lt);
dst--;
}
+out_scratch_realloc:
+ for_each_possible_cpu(i)
+ kfree(*per_cpu_ptr(new->scratch, i));
#ifdef NFT_PIPAPO_ALIGN
free_percpu(new->scratch_aligned);
#endif
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
index f1ba7dd3d253..fa9dc2ba3941 100644
--- a/net/netrom/af_netrom.c
+++ b/net/netrom/af_netrom.c
@@ -298,7 +298,7 @@ static int nr_setsockopt(struct socket *sock, int level, int optname,
{
struct sock *sk = sock->sk;
struct nr_sock *nr = nr_sk(sk);
- unsigned long opt;
+ unsigned int opt;
if (level != SOL_NETROM)
return -ENOPROTOOPT;
@@ -306,18 +306,18 @@ static int nr_setsockopt(struct socket *sock, int level, int optname,
if (optlen < sizeof(unsigned int))
return -EINVAL;
- if (copy_from_sockptr(&opt, optval, sizeof(unsigned long)))
+ if (copy_from_sockptr(&opt, optval, sizeof(opt)))
return -EFAULT;
switch (optname) {
case NETROM_T1:
- if (opt < 1 || opt > ULONG_MAX / HZ)
+ if (opt < 1 || opt > UINT_MAX / HZ)
return -EINVAL;
nr->t1 = opt * HZ;
return 0;
case NETROM_T2:
- if (opt < 1 || opt > ULONG_MAX / HZ)
+ if (opt < 1 || opt > UINT_MAX / HZ)
return -EINVAL;
nr->t2 = opt * HZ;
return 0;
@@ -329,13 +329,13 @@ static int nr_setsockopt(struct socket *sock, int level, int optname,
return 0;
case NETROM_T4:
- if (opt < 1 || opt > ULONG_MAX / HZ)
+ if (opt < 1 || opt > UINT_MAX / HZ)
return -EINVAL;
nr->t4 = opt * HZ;
return 0;
case NETROM_IDLE:
- if (opt > ULONG_MAX / (60 * HZ))
+ if (opt > UINT_MAX / (60 * HZ))
return -EINVAL;
nr->idle = opt * 60 * HZ;
return 0;
diff --git a/net/nfc/llcp_sock.c b/net/nfc/llcp_sock.c
index 6cfd30fc0798..0b93a17b9f11 100644
--- a/net/nfc/llcp_sock.c
+++ b/net/nfc/llcp_sock.c
@@ -789,6 +789,11 @@ static int llcp_sock_sendmsg(struct socket *sock, struct msghdr *msg,
lock_sock(sk);
+ if (!llcp_sock->local) {
+ release_sock(sk);
+ return -ENODEV;
+ }
+
if (sk->sk_type == SOCK_DGRAM) {
DECLARE_SOCKADDR(struct sockaddr_nfc_llcp *, addr,
msg->msg_name);
diff --git a/net/openvswitch/flow.c b/net/openvswitch/flow.c
index 6d262d9aa10e..02096f2ec678 100644
--- a/net/openvswitch/flow.c
+++ b/net/openvswitch/flow.c
@@ -859,7 +859,7 @@ int ovs_flow_key_extract(const struct ip_tunnel_info *tun_info,
#if IS_ENABLED(CONFIG_NET_TC_SKB_EXT)
struct tc_skb_ext *tc_ext;
#endif
- bool post_ct = false;
+ bool post_ct = false, post_ct_snat = false, post_ct_dnat = false;
int res, err;
u16 zone = 0;
@@ -900,6 +900,8 @@ int ovs_flow_key_extract(const struct ip_tunnel_info *tun_info,
key->recirc_id = tc_ext ? tc_ext->chain : 0;
OVS_CB(skb)->mru = tc_ext ? tc_ext->mru : 0;
post_ct = tc_ext ? tc_ext->post_ct : false;
+ post_ct_snat = post_ct ? tc_ext->post_ct_snat : false;
+ post_ct_dnat = post_ct ? tc_ext->post_ct_dnat : false;
zone = post_ct ? tc_ext->zone : 0;
} else {
key->recirc_id = 0;
@@ -911,8 +913,16 @@ int ovs_flow_key_extract(const struct ip_tunnel_info *tun_info,
err = key_extract(skb, key);
if (!err) {
ovs_ct_fill_key(skb, key, post_ct); /* Must be after key_extract(). */
- if (post_ct && !skb_get_nfct(skb))
- key->ct_zone = zone;
+ if (post_ct) {
+ if (!skb_get_nfct(skb)) {
+ key->ct_zone = zone;
+ } else {
+ if (!post_ct_dnat)
+ key->ct_state &= ~OVS_CS_F_DST_NAT;
+ if (!post_ct_snat)
+ key->ct_state &= ~OVS_CS_F_SRC_NAT;
+ }
+ }
}
return err;
}
diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c
index ab3591408419..2a17eb77c904 100644
--- a/net/sched/act_ct.c
+++ b/net/sched/act_ct.c
@@ -839,6 +839,12 @@ static int ct_nat_execute(struct sk_buff *skb, struct nf_conn *ct,
}
err = nf_nat_packet(ct, ctinfo, hooknum, skb);
+ if (err == NF_ACCEPT) {
+ if (maniptype == NF_NAT_MANIP_SRC)
+ tc_skb_cb(skb)->post_ct_snat = 1;
+ if (maniptype == NF_NAT_MANIP_DST)
+ tc_skb_cb(skb)->post_ct_dnat = 1;
+ }
out:
return err;
}
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 35c74bdde848..cc9409aa755e 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -1625,6 +1625,8 @@ int tcf_classify(struct sk_buff *skb,
ext->chain = last_executed_chain;
ext->mru = cb->mru;
ext->post_ct = cb->post_ct;
+ ext->post_ct_snat = cb->post_ct_snat;
+ ext->post_ct_dnat = cb->post_ct_dnat;
ext->zone = cb->zone;
}
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index efcd0b5e9a32..910a36ed5634 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -1062,7 +1062,7 @@ static int qdisc_graft(struct net_device *dev, struct Qdisc *parent,
qdisc_offload_graft_root(dev, new, old, extack);
- if (new && new->ops->attach)
+ if (new && new->ops->attach && !ingress)
goto skip;
for (i = 0; i < num_q; i++) {
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 3b0f62095803..5d391fe3137d 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -1474,6 +1474,7 @@ void psched_ratecfg_precompute(struct psched_ratecfg *r,
{
memset(r, 0, sizeof(*r));
r->overhead = conf->overhead;
+ r->mpu = conf->mpu;
r->rate_bytes_ps = max_t(u64, conf->rate, rate64);
r->linklayer = (conf->linklayer & TC_LINKLAYER_MASK);
psched_ratecfg_precompute__(r->rate_bytes_ps, &r->mult, &r->shift);
diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c
index 1c9289f56dc4..211cd91b6c40 100644
--- a/net/smc/af_smc.c
+++ b/net/smc/af_smc.c
@@ -632,10 +632,12 @@ static int smc_connect_decline_fallback(struct smc_sock *smc, int reason_code,
static void smc_conn_abort(struct smc_sock *smc, int local_first)
{
+ struct smc_connection *conn = &smc->conn;
+ struct smc_link_group *lgr = conn->lgr;
+
+ smc_conn_free(conn);
if (local_first)
- smc_lgr_cleanup_early(&smc->conn);
- else
- smc_conn_free(&smc->conn);
+ smc_lgr_cleanup_early(lgr);
}
/* check if there is a rdma device available for this connection. */
diff --git a/net/smc/smc_core.c b/net/smc/smc_core.c
index a6849362f4dd..6dddcfd6cf73 100644
--- a/net/smc/smc_core.c
+++ b/net/smc/smc_core.c
@@ -171,8 +171,10 @@ static int smc_lgr_register_conn(struct smc_connection *conn, bool first)
if (!conn->lgr->is_smcd) {
rc = smcr_lgr_conn_assign_link(conn, first);
- if (rc)
+ if (rc) {
+ conn->lgr = NULL;
return rc;
+ }
}
/* find a new alert_token_local value not yet used by some connection
* in this link group
@@ -622,15 +624,13 @@ int smcd_nl_get_lgr(struct sk_buff *skb, struct netlink_callback *cb)
return skb->len;
}
-void smc_lgr_cleanup_early(struct smc_connection *conn)
+void smc_lgr_cleanup_early(struct smc_link_group *lgr)
{
- struct smc_link_group *lgr = conn->lgr;
spinlock_t *lgr_lock;
if (!lgr)
return;
- smc_conn_free(conn);
smc_lgr_list_head(lgr, &lgr_lock);
spin_lock_bh(lgr_lock);
/* do not use this link group for new connections */
@@ -1459,16 +1459,11 @@ void smc_smcd_terminate_all(struct smcd_dev *smcd)
/* Called when an SMCR device is removed or the smc module is unloaded.
* If smcibdev is given, all SMCR link groups using this device are terminated.
* If smcibdev is NULL, all SMCR link groups are terminated.
- *
- * We must wait here for QPs been destroyed before we destroy the CQs,
- * or we won't received any CQEs and cdc_pend_tx_wr cannot reach 0 thus
- * smc_sock cannot be released.
*/
void smc_smcr_terminate_all(struct smc_ib_device *smcibdev)
{
struct smc_link_group *lgr, *lg;
LIST_HEAD(lgr_free_list);
- LIST_HEAD(lgr_linkdown_list);
int i;
spin_lock_bh(&smc_lgr_list.lock);
@@ -1480,7 +1475,7 @@ void smc_smcr_terminate_all(struct smc_ib_device *smcibdev)
list_for_each_entry_safe(lgr, lg, &smc_lgr_list.list, list) {
for (i = 0; i < SMC_LINKS_PER_LGR_MAX; i++) {
if (lgr->lnk[i].smcibdev == smcibdev)
- list_move_tail(&lgr->list, &lgr_linkdown_list);
+ smcr_link_down_cond_sched(&lgr->lnk[i]);
}
}
}
@@ -1492,16 +1487,6 @@ void smc_smcr_terminate_all(struct smc_ib_device *smcibdev)
__smc_lgr_terminate(lgr, false);
}
- list_for_each_entry_safe(lgr, lg, &lgr_linkdown_list, list) {
- for (i = 0; i < SMC_LINKS_PER_LGR_MAX; i++) {
- if (lgr->lnk[i].smcibdev == smcibdev) {
- mutex_lock(&lgr->llc_conf_mutex);
- smcr_link_down_cond(&lgr->lnk[i]);
- mutex_unlock(&lgr->llc_conf_mutex);
- }
- }
- }
-
if (smcibdev) {
if (atomic_read(&smcibdev->lnk_cnt))
wait_event(smcibdev->lnks_deleted,
@@ -1832,8 +1817,10 @@ int smc_conn_create(struct smc_sock *smc, struct smc_init_info *ini)
write_lock_bh(&lgr->conns_lock);
rc = smc_lgr_register_conn(conn, true);
write_unlock_bh(&lgr->conns_lock);
- if (rc)
+ if (rc) {
+ smc_lgr_cleanup_early(lgr);
goto out;
+ }
}
conn->local_tx_ctrl.common.type = SMC_CDC_MSG_TYPE;
conn->local_tx_ctrl.len = SMC_WR_TX_SIZE;
diff --git a/net/smc/smc_core.h b/net/smc/smc_core.h
index d63b08274197..73d0c35d3eb7 100644
--- a/net/smc/smc_core.h
+++ b/net/smc/smc_core.h
@@ -468,7 +468,7 @@ static inline void smc_set_pci_values(struct pci_dev *pci_dev,
struct smc_sock;
struct smc_clc_msg_accept_confirm;
-void smc_lgr_cleanup_early(struct smc_connection *conn);
+void smc_lgr_cleanup_early(struct smc_link_group *lgr);
void smc_lgr_terminate_sched(struct smc_link_group *lgr);
void smcr_port_add(struct smc_ib_device *smcibdev, u8 ibport);
void smcr_port_err(struct smc_ib_device *smcibdev, u8 ibport);
diff --git a/net/socket.c b/net/socket.c
index 7f64a6eccf63..5053eb0100e4 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -829,6 +829,7 @@ void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
int empty = 1, false_tstamp = 0;
struct skb_shared_hwtstamps *shhwtstamps =
skb_hwtstamps(skb);
+ ktime_t hwtstamp;
/* Race occurred between timestamp enabling and packet
receiving. Fill in the current time for now. */
@@ -877,10 +878,12 @@ void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
(sk->sk_tsflags & SOF_TIMESTAMPING_RAW_HARDWARE) &&
!skb_is_swtx_tstamp(skb, false_tstamp)) {
if (sk->sk_tsflags & SOF_TIMESTAMPING_BIND_PHC)
- ptp_convert_timestamp(shhwtstamps, sk->sk_bind_phc);
+ hwtstamp = ptp_convert_timestamp(shhwtstamps,
+ sk->sk_bind_phc);
+ else
+ hwtstamp = shhwtstamps->hwtstamp;
- if (ktime_to_timespec64_cond(shhwtstamps->hwtstamp,
- tss.ts + 2)) {
+ if (ktime_to_timespec64_cond(hwtstamp, tss.ts + 2)) {
empty = 0;
if ((sk->sk_tsflags & SOF_TIMESTAMPING_OPT_PKTINFO) &&
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
index 1e99ba1b9d72..008f1b05a7a9 100644
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -243,7 +243,7 @@ static struct svc_xprt *__svc_xpo_create(struct svc_xprt_class *xcl,
xprt = xcl->xcl_ops->xpo_create(serv, net, sap, len, flags);
if (IS_ERR(xprt))
trace_svc_xprt_create_err(serv->sv_program->pg_name,
- xcl->xcl_name, sap, xprt);
+ xcl->xcl_name, sap, len, xprt);
return xprt;
}
diff --git a/net/unix/garbage.c b/net/unix/garbage.c
index 12e2ddaf887f..d45d5366115a 100644
--- a/net/unix/garbage.c
+++ b/net/unix/garbage.c
@@ -192,8 +192,11 @@ void wait_for_unix_gc(void)
{
/* If number of inflight sockets is insane,
* force a garbage collect right now.
+ * Paired with the WRITE_ONCE() in unix_inflight(),
+ * unix_notinflight() and gc_in_progress().
*/
- if (unix_tot_inflight > UNIX_INFLIGHT_TRIGGER_GC && !gc_in_progress)
+ if (READ_ONCE(unix_tot_inflight) > UNIX_INFLIGHT_TRIGGER_GC &&
+ !READ_ONCE(gc_in_progress))
unix_gc();
wait_event(unix_gc_wait, gc_in_progress == false);
}
@@ -213,7 +216,9 @@ void unix_gc(void)
if (gc_in_progress)
goto out;
- gc_in_progress = true;
+ /* Paired with READ_ONCE() in wait_for_unix_gc(). */
+ WRITE_ONCE(gc_in_progress, true);
+
/* First, select candidates for garbage collection. Only
* in-flight sockets are considered, and from those only ones
* which don't have any external reference.
@@ -299,7 +304,10 @@ void unix_gc(void)
/* All candidates should have been detached by now. */
BUG_ON(!list_empty(&gc_candidates));
- gc_in_progress = false;
+
+ /* Paired with READ_ONCE() in wait_for_unix_gc(). */
+ WRITE_ONCE(gc_in_progress, false);
+
wake_up(&unix_gc_wait);
out:
diff --git a/net/unix/scm.c b/net/unix/scm.c
index 052ae709ce28..aa27a02478dc 100644
--- a/net/unix/scm.c
+++ b/net/unix/scm.c
@@ -60,7 +60,8 @@ void unix_inflight(struct user_struct *user, struct file *fp)
} else {
BUG_ON(list_empty(&u->link));
}
- unix_tot_inflight++;
+ /* Paired with READ_ONCE() in wait_for_unix_gc() */
+ WRITE_ONCE(unix_tot_inflight, unix_tot_inflight + 1);
}
user->unix_inflight++;
spin_unlock(&unix_gc_lock);
@@ -80,7 +81,8 @@ void unix_notinflight(struct user_struct *user, struct file *fp)
if (atomic_long_dec_and_test(&u->inflight))
list_del_init(&u->link);
- unix_tot_inflight--;
+ /* Paired with READ_ONCE() in wait_for_unix_gc() */
+ WRITE_ONCE(unix_tot_inflight, unix_tot_inflight - 1);
}
user->unix_inflight--;
spin_unlock(&unix_gc_lock);
diff --git a/net/xfrm/xfrm_compat.c b/net/xfrm/xfrm_compat.c
index 2bf269390163..a0f62fa02e06 100644
--- a/net/xfrm/xfrm_compat.c
+++ b/net/xfrm/xfrm_compat.c
@@ -127,6 +127,7 @@ static const struct nla_policy compat_policy[XFRMA_MAX+1] = {
[XFRMA_SET_MARK] = { .type = NLA_U32 },
[XFRMA_SET_MARK_MASK] = { .type = NLA_U32 },
[XFRMA_IF_ID] = { .type = NLA_U32 },
+ [XFRMA_MTIMER_THRESH] = { .type = NLA_U32 },
};
static struct nlmsghdr *xfrm_nlmsg_put_compat(struct sk_buff *skb,
@@ -274,9 +275,10 @@ static int xfrm_xlate64_attr(struct sk_buff *dst, const struct nlattr *src)
case XFRMA_SET_MARK:
case XFRMA_SET_MARK_MASK:
case XFRMA_IF_ID:
+ case XFRMA_MTIMER_THRESH:
return xfrm_nla_cpy(dst, src, nla_len(src));
default:
- BUILD_BUG_ON(XFRMA_MAX != XFRMA_IF_ID);
+ BUILD_BUG_ON(XFRMA_MAX != XFRMA_MTIMER_THRESH);
pr_warn_once("unsupported nla_type %d\n", src->nla_type);
return -EOPNOTSUPP;
}
@@ -431,7 +433,7 @@ static int xfrm_xlate32_attr(void *dst, const struct nlattr *nla,
int err;
if (type > XFRMA_MAX) {
- BUILD_BUG_ON(XFRMA_MAX != XFRMA_IF_ID);
+ BUILD_BUG_ON(XFRMA_MAX != XFRMA_MTIMER_THRESH);
NL_SET_ERR_MSG(extack, "Bad attribute");
return -EOPNOTSUPP;
}
diff --git a/net/xfrm/xfrm_interface.c b/net/xfrm/xfrm_interface.c
index 41de46b5ffa9..57448fc519fc 100644
--- a/net/xfrm/xfrm_interface.c
+++ b/net/xfrm/xfrm_interface.c
@@ -637,11 +637,16 @@ static int xfrmi_newlink(struct net *src_net, struct net_device *dev,
struct netlink_ext_ack *extack)
{
struct net *net = dev_net(dev);
- struct xfrm_if_parms p;
+ struct xfrm_if_parms p = {};
struct xfrm_if *xi;
int err;
xfrmi_netlink_parms(data, &p);
+ if (!p.if_id) {
+ NL_SET_ERR_MSG(extack, "if_id must be non zero");
+ return -EINVAL;
+ }
+
xi = xfrmi_locate(net, &p);
if (xi)
return -EEXIST;
@@ -666,7 +671,12 @@ static int xfrmi_changelink(struct net_device *dev, struct nlattr *tb[],
{
struct xfrm_if *xi = netdev_priv(dev);
struct net *net = xi->net;
- struct xfrm_if_parms p;
+ struct xfrm_if_parms p = {};
+
+ if (!p.if_id) {
+ NL_SET_ERR_MSG(extack, "if_id must be non zero");
+ return -EINVAL;
+ }
xfrmi_netlink_parms(data, &p);
xi = xfrmi_locate(net, &p);
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c
index 229544bc70c2..4dc4a7bbe51c 100644
--- a/net/xfrm/xfrm_output.c
+++ b/net/xfrm/xfrm_output.c
@@ -647,10 +647,12 @@ static int xfrm_output_gso(struct net *net, struct sock *sk, struct sk_buff *skb
* This requires hardware to know the inner packet type to calculate
* the inner header checksum. Save inner ip protocol here to avoid
* traversing the packet in the vendor's xmit code.
- * If the encap type is IPIP, just save skb->inner_ipproto. Otherwise,
- * get the ip protocol from the IP header.
+ * For IPsec tunnel mode save the ip protocol from the IP header of the
+ * plain text packet. Otherwise If the encap type is IPIP, just save
+ * skb->inner_ipproto in any other case get the ip protocol from the IP
+ * header.
*/
-static void xfrm_get_inner_ipproto(struct sk_buff *skb)
+static void xfrm_get_inner_ipproto(struct sk_buff *skb, struct xfrm_state *x)
{
struct xfrm_offload *xo = xfrm_offload(skb);
const struct ethhdr *eth;
@@ -658,6 +660,25 @@ static void xfrm_get_inner_ipproto(struct sk_buff *skb)
if (!xo)
return;
+ if (x->outer_mode.encap == XFRM_MODE_TUNNEL) {
+ switch (x->outer_mode.family) {
+ case AF_INET:
+ xo->inner_ipproto = ip_hdr(skb)->protocol;
+ break;
+ case AF_INET6:
+ xo->inner_ipproto = ipv6_hdr(skb)->nexthdr;
+ break;
+ default:
+ break;
+ }
+
+ return;
+ }
+
+ /* non-Tunnel Mode */
+ if (!skb->encapsulation)
+ return;
+
if (skb->inner_protocol_type == ENCAP_TYPE_IPPROTO) {
xo->inner_ipproto = skb->inner_ipproto;
return;
@@ -712,8 +733,7 @@ int xfrm_output(struct sock *sk, struct sk_buff *skb)
sp->xvec[sp->len++] = x;
xfrm_state_hold(x);
- if (skb->encapsulation)
- xfrm_get_inner_ipproto(skb);
+ xfrm_get_inner_ipproto(skb, x);
skb->encapsulation = 1;
if (skb_is_gso(skb)) {
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 1a06585022ab..4924b9135c6e 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -31,8 +31,10 @@
#include <linux/if_tunnel.h>
#include <net/dst.h>
#include <net/flow.h>
+#include <net/inet_ecn.h>
#include <net/xfrm.h>
#include <net/ip.h>
+#include <net/gre.h>
#if IS_ENABLED(CONFIG_IPV6_MIP6)
#include <net/mip6.h>
#endif
@@ -3294,7 +3296,7 @@ decode_session4(struct sk_buff *skb, struct flowi *fl, bool reverse)
fl4->flowi4_proto = iph->protocol;
fl4->daddr = reverse ? iph->saddr : iph->daddr;
fl4->saddr = reverse ? iph->daddr : iph->saddr;
- fl4->flowi4_tos = iph->tos;
+ fl4->flowi4_tos = iph->tos & ~INET_ECN_MASK;
if (!ip_is_fragment(iph)) {
switch (iph->protocol) {
@@ -3422,6 +3424,26 @@ decode_session6(struct sk_buff *skb, struct flowi *fl, bool reverse)
}
fl6->flowi6_proto = nexthdr;
return;
+ case IPPROTO_GRE:
+ if (!onlyproto &&
+ (nh + offset + 12 < skb->data ||
+ pskb_may_pull(skb, nh + offset + 12 - skb->data))) {
+ struct gre_base_hdr *gre_hdr;
+ __be32 *gre_key;
+
+ nh = skb_network_header(skb);
+ gre_hdr = (struct gre_base_hdr *)(nh + offset);
+ gre_key = (__be32 *)(gre_hdr + 1);
+
+ if (gre_hdr->flags & GRE_KEY) {
+ if (gre_hdr->flags & GRE_CSUM)
+ gre_key++;
+ fl6->fl6_gre_key = *gre_key;
+ }
+ }
+ fl6->flowi6_proto = nexthdr;
+ return;
+
#if IS_ENABLED(CONFIG_IPV6_MIP6)
case IPPROTO_MH:
offset += ipv6_optlen(exthdr);
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index a2f4001221d1..78d51399a0f4 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -1593,6 +1593,9 @@ static struct xfrm_state *xfrm_state_clone(struct xfrm_state *orig,
x->km.seq = orig->km.seq;
x->replay = orig->replay;
x->preplay = orig->preplay;
+ x->mapping_maxage = orig->mapping_maxage;
+ x->new_mapping = 0;
+ x->new_mapping_sport = 0;
return x;
@@ -2242,7 +2245,7 @@ int km_query(struct xfrm_state *x, struct xfrm_tmpl *t, struct xfrm_policy *pol)
}
EXPORT_SYMBOL(km_query);
-int km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
+static int __km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
{
int err = -EINVAL;
struct xfrm_mgr *km;
@@ -2257,6 +2260,24 @@ int km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
rcu_read_unlock();
return err;
}
+
+int km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
+{
+ int ret = 0;
+
+ if (x->mapping_maxage) {
+ if ((jiffies / HZ - x->new_mapping) > x->mapping_maxage ||
+ x->new_mapping_sport != sport) {
+ x->new_mapping_sport = sport;
+ x->new_mapping = jiffies / HZ;
+ ret = __km_new_mapping(x, ipaddr, sport);
+ }
+ } else {
+ ret = __km_new_mapping(x, ipaddr, sport);
+ }
+
+ return ret;
+}
EXPORT_SYMBOL(km_new_mapping);
void km_policy_expired(struct xfrm_policy *pol, int dir, int hard, u32 portid)
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index 7c36cc1f3d79..c60441be883a 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -282,6 +282,10 @@ static int verify_newsa_info(struct xfrm_usersa_info *p,
err = 0;
+ if (attrs[XFRMA_MTIMER_THRESH])
+ if (!attrs[XFRMA_ENCAP])
+ err = -EINVAL;
+
out:
return err;
}
@@ -521,6 +525,7 @@ static void xfrm_update_ae_params(struct xfrm_state *x, struct nlattr **attrs,
struct nlattr *lt = attrs[XFRMA_LTIME_VAL];
struct nlattr *et = attrs[XFRMA_ETIMER_THRESH];
struct nlattr *rt = attrs[XFRMA_REPLAY_THRESH];
+ struct nlattr *mt = attrs[XFRMA_MTIMER_THRESH];
if (re) {
struct xfrm_replay_state_esn *replay_esn;
@@ -552,6 +557,9 @@ static void xfrm_update_ae_params(struct xfrm_state *x, struct nlattr **attrs,
if (rt)
x->replay_maxdiff = nla_get_u32(rt);
+
+ if (mt)
+ x->mapping_maxage = nla_get_u32(mt);
}
static void xfrm_smark_init(struct nlattr **attrs, struct xfrm_mark *m)
@@ -621,8 +629,13 @@ static struct xfrm_state *xfrm_state_construct(struct net *net,
xfrm_smark_init(attrs, &x->props.smark);
- if (attrs[XFRMA_IF_ID])
+ if (attrs[XFRMA_IF_ID]) {
x->if_id = nla_get_u32(attrs[XFRMA_IF_ID]);
+ if (!x->if_id) {
+ err = -EINVAL;
+ goto error;
+ }
+ }
err = __xfrm_init_state(x, false, attrs[XFRMA_OFFLOAD_DEV]);
if (err)
@@ -1024,8 +1037,13 @@ static int copy_to_user_state_extra(struct xfrm_state *x,
if (ret)
goto out;
}
- if (x->security)
+ if (x->security) {
ret = copy_sec_ctx(x->security, skb);
+ if (ret)
+ goto out;
+ }
+ if (x->mapping_maxage)
+ ret = nla_put_u32(skb, XFRMA_MTIMER_THRESH, x->mapping_maxage);
out:
return ret;
}
@@ -1413,8 +1431,13 @@ static int xfrm_alloc_userspi(struct sk_buff *skb, struct nlmsghdr *nlh,
mark = xfrm_mark_get(attrs, &m);
- if (attrs[XFRMA_IF_ID])
+ if (attrs[XFRMA_IF_ID]) {
if_id = nla_get_u32(attrs[XFRMA_IF_ID]);
+ if (!if_id) {
+ err = -EINVAL;
+ goto out_noput;
+ }
+ }
if (p->info.seq) {
x = xfrm_find_acq_byseq(net, mark, p->info.seq);
@@ -1727,8 +1750,13 @@ static struct xfrm_policy *xfrm_policy_construct(struct net *net, struct xfrm_us
xfrm_mark_get(attrs, &xp->mark);
- if (attrs[XFRMA_IF_ID])
+ if (attrs[XFRMA_IF_ID]) {
xp->if_id = nla_get_u32(attrs[XFRMA_IF_ID]);
+ if (!xp->if_id) {
+ err = -EINVAL;
+ goto error;
+ }
+ }
return xp;
error:
@@ -3058,7 +3086,7 @@ static inline unsigned int xfrm_sa_len(struct xfrm_state *x)
if (x->props.extra_flags)
l += nla_total_size(sizeof(x->props.extra_flags));
if (x->xso.dev)
- l += nla_total_size(sizeof(x->xso));
+ l += nla_total_size(sizeof(struct xfrm_user_offload));
if (x->props.smark.v | x->props.smark.m) {
l += nla_total_size(sizeof(x->props.smark.v));
l += nla_total_size(sizeof(x->props.smark.m));
@@ -3069,6 +3097,9 @@ static inline unsigned int xfrm_sa_len(struct xfrm_state *x)
/* Must count x->lastused as it may become non-zero behind our back. */
l += nla_total_size_64bit(sizeof(u64));
+ if (x->mapping_maxage)
+ l += nla_total_size(sizeof(x->mapping_maxage));
+
return l;
}
diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
index a886dff1ba89..38638845db9d 100644
--- a/samples/bpf/Makefile
+++ b/samples/bpf/Makefile
@@ -215,6 +215,11 @@ TPROGS_LDFLAGS := -L$(SYSROOT)/usr/lib
endif
TPROGS_LDLIBS += $(LIBBPF) -lelf -lz
+TPROGLDLIBS_xdp_monitor += -lm
+TPROGLDLIBS_xdp_redirect += -lm
+TPROGLDLIBS_xdp_redirect_cpu += -lm
+TPROGLDLIBS_xdp_redirect_map += -lm
+TPROGLDLIBS_xdp_redirect_map_multi += -lm
TPROGLDLIBS_tracex4 += -lrt
TPROGLDLIBS_trace_output += -lrt
TPROGLDLIBS_map_perf_test += -lrt
@@ -328,7 +333,7 @@ $(BPF_SAMPLES_PATH)/*.c: verify_target_bpf $(LIBBPF)
$(src)/*.c: verify_target_bpf $(LIBBPF)
libbpf_hdrs: $(LIBBPF)
-$(obj)/$(TRACE_HELPERS): | libbpf_hdrs
+$(obj)/$(TRACE_HELPERS) $(obj)/$(CGROUP_HELPERS) $(obj)/$(XDP_SAMPLE): | libbpf_hdrs
.PHONY: libbpf_hdrs
@@ -343,6 +348,17 @@ $(obj)/hbm_out_kern.o: $(src)/hbm.h $(src)/hbm_kern.h
$(obj)/hbm.o: $(src)/hbm.h
$(obj)/hbm_edt_kern.o: $(src)/hbm.h $(src)/hbm_kern.h
+# Override includes for xdp_sample_user.o because $(srctree)/usr/include in
+# TPROGS_CFLAGS causes conflicts
+XDP_SAMPLE_CFLAGS += -Wall -O2 \
+ -I$(src)/../../tools/include \
+ -I$(src)/../../tools/include/uapi \
+ -I$(LIBBPF_INCLUDE) \
+ -I$(src)/../../tools/testing/selftests/bpf
+
+$(obj)/$(XDP_SAMPLE): TPROGS_CFLAGS = $(XDP_SAMPLE_CFLAGS)
+$(obj)/$(XDP_SAMPLE): $(src)/xdp_sample_user.h $(src)/xdp_sample_shared.h
+
-include $(BPF_SAMPLES_PATH)/Makefile.target
VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux)) \
diff --git a/samples/bpf/Makefile.target b/samples/bpf/Makefile.target
index 5a368affa038..7621f55e2947 100644
--- a/samples/bpf/Makefile.target
+++ b/samples/bpf/Makefile.target
@@ -73,14 +73,3 @@ quiet_cmd_tprog-cobjs = CC $@
cmd_tprog-cobjs = $(CC) $(tprogc_flags) -c -o $@ $<
$(tprog-cobjs): $(obj)/%.o: $(src)/%.c FORCE
$(call if_changed_dep,tprog-cobjs)
-
-# Override includes for xdp_sample_user.o because $(srctree)/usr/include in
-# TPROGS_CFLAGS causes conflicts
-XDP_SAMPLE_CFLAGS += -Wall -O2 -lm \
- -I./tools/include \
- -I./tools/include/uapi \
- -I./tools/lib \
- -I./tools/testing/selftests/bpf
-$(obj)/xdp_sample_user.o: $(src)/xdp_sample_user.c \
- $(src)/xdp_sample_user.h $(src)/xdp_sample_shared.h
- $(CC) $(XDP_SAMPLE_CFLAGS) -c -o $@ $<
diff --git a/samples/bpf/lwt_len_hist_kern.c b/samples/bpf/lwt_len_hist_kern.c
index 9ed63e10e170..1fa14c54963a 100644
--- a/samples/bpf/lwt_len_hist_kern.c
+++ b/samples/bpf/lwt_len_hist_kern.c
@@ -16,13 +16,6 @@
#include <uapi/linux/in.h>
#include <bpf/bpf_helpers.h>
-# define printk(fmt, ...) \
- ({ \
- char ____fmt[] = fmt; \
- bpf_trace_printk(____fmt, sizeof(____fmt), \
- ##__VA_ARGS__); \
- })
-
struct bpf_elf_map {
__u32 type;
__u32 size_key;
diff --git a/samples/bpf/xdp_sample_user.h b/samples/bpf/xdp_sample_user.h
index d97465ff8c62..5f44b877ecf5 100644
--- a/samples/bpf/xdp_sample_user.h
+++ b/samples/bpf/xdp_sample_user.h
@@ -45,7 +45,9 @@ const char *get_driver_name(int ifindex);
int get_mac_addr(int ifindex, void *mac_addr);
#pragma GCC diagnostic push
+#ifndef __clang__
#pragma GCC diagnostic ignored "-Wstringop-truncation"
+#endif
__attribute__((unused))
static inline char *safe_strncpy(char *dst, const char *src, size_t size)
{
diff --git a/scripts/dtc/dtx_diff b/scripts/dtc/dtx_diff
index d3422ee15e30..f2bbde4bba86 100755
--- a/scripts/dtc/dtx_diff
+++ b/scripts/dtc/dtx_diff
@@ -59,12 +59,8 @@ Otherwise DTx is treated as a dts source file (aka .dts).
or '/include/' to be processed.
If DTx_1 and DTx_2 are in different architectures, then this script
- may not work since \${ARCH} is part of the include path. Two possible
- workarounds:
-
- `basename $0` \\
- <(ARCH=arch_of_dtx_1 `basename $0` DTx_1) \\
- <(ARCH=arch_of_dtx_2 `basename $0` DTx_2)
+ may not work since \${ARCH} is part of the include path. The following
+ workaround can be used:
`basename $0` ARCH=arch_of_dtx_1 DTx_1 >tmp_dtx_1.dts
`basename $0` ARCH=arch_of_dtx_2 DTx_2 >tmp_dtx_2.dts
diff --git a/scripts/sphinx-pre-install b/scripts/sphinx-pre-install
index 288e86a9d1e5..f126ecbb0494 100755
--- a/scripts/sphinx-pre-install
+++ b/scripts/sphinx-pre-install
@@ -78,6 +78,7 @@ my %texlive = (
'ucs.sty' => 'texlive-ucs',
'upquote.sty' => 'texlive-upquote',
'wrapfig.sty' => 'texlive-wrapfig',
+ 'ctexhook.sty' => 'texlive-ctex',
);
#
@@ -369,6 +370,9 @@ sub give_debian_hints()
);
if ($pdf) {
+ check_missing_file(["/usr/share/texlive/texmf-dist/tex/latex/ctex/ctexhook.sty"],
+ "texlive-lang-chinese", 2);
+
check_missing_file(["/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"],
"fonts-dejavu", 2);
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index dde4ecc0cd18..49b4f59db35e 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -988,18 +988,22 @@ static int selinux_sb_clone_mnt_opts(const struct super_block *oldsb,
static int selinux_add_opt(int token, const char *s, void **mnt_opts)
{
struct selinux_mnt_opts *opts = *mnt_opts;
+ bool is_alloc_opts = false;
if (token == Opt_seclabel) /* eaten and completely ignored */
return 0;
+ if (!s)
+ return -ENOMEM;
+
if (!opts) {
opts = kzalloc(sizeof(struct selinux_mnt_opts), GFP_KERNEL);
if (!opts)
return -ENOMEM;
*mnt_opts = opts;
+ is_alloc_opts = true;
}
- if (!s)
- return -ENOMEM;
+
switch (token) {
case Opt_context:
if (opts->context || opts->defcontext)
@@ -1024,6 +1028,10 @@ static int selinux_add_opt(int token, const char *s, void **mnt_opts)
}
return 0;
Einval:
+ if (is_alloc_opts) {
+ kfree(opts);
+ *mnt_opts = NULL;
+ }
pr_warn(SEL_MOUNT_FAIL_MSG);
return -EINVAL;
}
diff --git a/sound/core/jack.c b/sound/core/jack.c
index 537df1e98f8a..d1e3055f2b6a 100644
--- a/sound/core/jack.c
+++ b/sound/core/jack.c
@@ -62,10 +62,13 @@ static int snd_jack_dev_free(struct snd_device *device)
struct snd_card *card = device->card;
struct snd_jack_kctl *jack_kctl, *tmp_jack_kctl;
+ down_write(&card->controls_rwsem);
list_for_each_entry_safe(jack_kctl, tmp_jack_kctl, &jack->kctl_list, list) {
list_del_init(&jack_kctl->list);
snd_ctl_remove(card, jack_kctl->kctl);
}
+ up_write(&card->controls_rwsem);
+
if (jack->private_free)
jack->private_free(jack);
diff --git a/sound/core/misc.c b/sound/core/misc.c
index 3579dd7a161f..50e4aaa6270d 100644
--- a/sound/core/misc.c
+++ b/sound/core/misc.c
@@ -112,7 +112,7 @@ snd_pci_quirk_lookup_id(u16 vendor, u16 device,
{
const struct snd_pci_quirk *q;
- for (q = list; q->subvendor; q++) {
+ for (q = list; q->subvendor || q->subdevice; q++) {
if (q->subvendor != vendor)
continue;
if (!q->subdevice ||
diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
index 20a0a4771b9a..3ee9edf85815 100644
--- a/sound/core/oss/pcm_oss.c
+++ b/sound/core/oss/pcm_oss.c
@@ -2065,7 +2065,7 @@ static int snd_pcm_oss_set_trigger(struct snd_pcm_oss_file *pcm_oss_file, int tr
int err, cmd;
#ifdef OSS_DEBUG
- pcm_dbg(substream->pcm, "pcm_oss: trigger = 0x%x\n", trigger);
+ pr_debug("pcm_oss: trigger = 0x%x\n", trigger);
#endif
psubstream = pcm_oss_file->streams[SNDRV_PCM_STREAM_PLAYBACK];
diff --git a/sound/core/pcm.c b/sound/core/pcm.c
index 6fd3677685d7..ba4a987ed1c6 100644
--- a/sound/core/pcm.c
+++ b/sound/core/pcm.c
@@ -810,7 +810,11 @@ EXPORT_SYMBOL(snd_pcm_new_internal);
static void free_chmap(struct snd_pcm_str *pstr)
{
if (pstr->chmap_kctl) {
- snd_ctl_remove(pstr->pcm->card, pstr->chmap_kctl);
+ struct snd_card *card = pstr->pcm->card;
+
+ down_write(&card->controls_rwsem);
+ snd_ctl_remove(card, pstr->chmap_kctl);
+ up_write(&card->controls_rwsem);
pstr->chmap_kctl = NULL;
}
}
diff --git a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c
index d6c02dea976c..bc933104c3ee 100644
--- a/sound/core/seq/seq_queue.c
+++ b/sound/core/seq/seq_queue.c
@@ -235,12 +235,15 @@ struct snd_seq_queue *snd_seq_queue_find_name(char *name)
/* -------------------------------------------------------- */
+#define MAX_CELL_PROCESSES_IN_QUEUE 1000
+
void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
{
unsigned long flags;
struct snd_seq_event_cell *cell;
snd_seq_tick_time_t cur_tick;
snd_seq_real_time_t cur_time;
+ int processed = 0;
if (q == NULL)
return;
@@ -263,6 +266,8 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
/* Process time queue... */
@@ -272,14 +277,19 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
+ out:
/* free lock */
spin_lock_irqsave(&q->check_lock, flags);
if (q->check_again) {
q->check_again = 0;
- spin_unlock_irqrestore(&q->check_lock, flags);
- goto __again;
+ if (processed < MAX_CELL_PROCESSES_IN_QUEUE) {
+ spin_unlock_irqrestore(&q->check_lock, flags);
+ goto __again;
+ }
}
q->check_blocked = 0;
spin_unlock_irqrestore(&q->check_lock, flags);
diff --git a/sound/hda/hdac_stream.c b/sound/hda/hdac_stream.c
index 9867555883c3..aa7955fdf68a 100644
--- a/sound/hda/hdac_stream.c
+++ b/sound/hda/hdac_stream.c
@@ -534,17 +534,11 @@ static void azx_timecounter_init(struct hdac_stream *azx_dev,
cc->mask = CLOCKSOURCE_MASK(32);
/*
- * Converting from 24 MHz to ns means applying a 125/3 factor.
- * To avoid any saturation issues in intermediate operations,
- * the 125 factor is applied first. The division is applied
- * last after reading the timecounter value.
- * Applying the 1/3 factor as part of the multiplication
- * requires at least 20 bits for a decent precision, however
- * overflows occur after about 4 hours or less, not a option.
+ * Calculate the optimal mult/shift values. The counter wraps
+ * around after ~178.9 seconds.
*/
-
- cc->mult = 125; /* saturation after 195 years */
- cc->shift = 0;
+ clocks_calc_mult_shift(&cc->mult, &cc->shift, 24000000,
+ NSEC_PER_SEC, 178);
nsec = 0; /* audio time is elapsed time since trigger */
timecounter_init(tc, cc, nsec);
diff --git a/sound/pci/hda/hda_bind.c b/sound/pci/hda/hda_bind.c
index 1c8bffc3eec6..7153bd53e189 100644
--- a/sound/pci/hda/hda_bind.c
+++ b/sound/pci/hda/hda_bind.c
@@ -156,6 +156,11 @@ static int hda_codec_driver_remove(struct device *dev)
return codec->bus->core.ext_ops->hdev_detach(&codec->core);
}
+ refcount_dec(&codec->pcm_ref);
+ snd_hda_codec_disconnect_pcms(codec);
+ wait_event(codec->remove_sleep, !refcount_read(&codec->pcm_ref));
+ snd_power_sync_ref(codec->bus->card);
+
if (codec->patch_ops.free)
codec->patch_ops.free(codec);
snd_hda_codec_cleanup_for_unbind(codec);
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 0c4a337c9fc0..7016b48227bf 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -703,20 +703,10 @@ get_hda_cvt_setup(struct hda_codec *codec, hda_nid_t nid)
/*
* PCM device
*/
-static void release_pcm(struct kref *kref)
-{
- struct hda_pcm *pcm = container_of(kref, struct hda_pcm, kref);
-
- if (pcm->pcm)
- snd_device_free(pcm->codec->card, pcm->pcm);
- clear_bit(pcm->device, pcm->codec->bus->pcm_dev_bits);
- kfree(pcm->name);
- kfree(pcm);
-}
-
void snd_hda_codec_pcm_put(struct hda_pcm *pcm)
{
- kref_put(&pcm->kref, release_pcm);
+ if (refcount_dec_and_test(&pcm->codec->pcm_ref))
+ wake_up(&pcm->codec->remove_sleep);
}
EXPORT_SYMBOL_GPL(snd_hda_codec_pcm_put);
@@ -731,7 +721,6 @@ struct hda_pcm *snd_hda_codec_pcm_new(struct hda_codec *codec,
return NULL;
pcm->codec = codec;
- kref_init(&pcm->kref);
va_start(args, fmt);
pcm->name = kvasprintf(GFP_KERNEL, fmt, args);
va_end(args);
@@ -741,6 +730,7 @@ struct hda_pcm *snd_hda_codec_pcm_new(struct hda_codec *codec,
}
list_add_tail(&pcm->list, &codec->pcm_list_head);
+ refcount_inc(&codec->pcm_ref);
return pcm;
}
EXPORT_SYMBOL_GPL(snd_hda_codec_pcm_new);
@@ -748,15 +738,31 @@ EXPORT_SYMBOL_GPL(snd_hda_codec_pcm_new);
/*
* codec destructor
*/
+void snd_hda_codec_disconnect_pcms(struct hda_codec *codec)
+{
+ struct hda_pcm *pcm;
+
+ list_for_each_entry(pcm, &codec->pcm_list_head, list) {
+ if (pcm->disconnected)
+ continue;
+ if (pcm->pcm)
+ snd_device_disconnect(codec->card, pcm->pcm);
+ snd_hda_codec_pcm_put(pcm);
+ pcm->disconnected = 1;
+ }
+}
+
static void codec_release_pcms(struct hda_codec *codec)
{
struct hda_pcm *pcm, *n;
list_for_each_entry_safe(pcm, n, &codec->pcm_list_head, list) {
- list_del_init(&pcm->list);
+ list_del(&pcm->list);
if (pcm->pcm)
- snd_device_disconnect(codec->card, pcm->pcm);
- snd_hda_codec_pcm_put(pcm);
+ snd_device_free(pcm->codec->card, pcm->pcm);
+ clear_bit(pcm->device, pcm->codec->bus->pcm_dev_bits);
+ kfree(pcm->name);
+ kfree(pcm);
}
}
@@ -769,6 +775,7 @@ void snd_hda_codec_cleanup_for_unbind(struct hda_codec *codec)
codec->registered = 0;
}
+ snd_hda_codec_disconnect_pcms(codec);
cancel_delayed_work_sync(&codec->jackpoll_work);
if (!codec->in_freeing)
snd_hda_ctls_clear(codec);
@@ -792,6 +799,7 @@ void snd_hda_codec_cleanup_for_unbind(struct hda_codec *codec)
remove_conn_list(codec);
snd_hdac_regmap_exit(&codec->core);
codec->configured = 0;
+ refcount_set(&codec->pcm_ref, 1); /* reset refcount */
}
EXPORT_SYMBOL_GPL(snd_hda_codec_cleanup_for_unbind);
@@ -958,6 +966,8 @@ int snd_hda_codec_device_new(struct hda_bus *bus, struct snd_card *card,
snd_array_init(&codec->verbs, sizeof(struct hda_verb *), 8);
INIT_LIST_HEAD(&codec->conn_list);
INIT_LIST_HEAD(&codec->pcm_list_head);
+ refcount_set(&codec->pcm_ref, 1);
+ init_waitqueue_head(&codec->remove_sleep);
INIT_DELAYED_WORK(&codec->jackpoll_work, hda_jackpoll_work);
codec->depop_delay = -1;
@@ -1727,8 +1737,11 @@ void snd_hda_ctls_clear(struct hda_codec *codec)
{
int i;
struct hda_nid_item *items = codec->mixers.list;
+
+ down_write(&codec->card->controls_rwsem);
for (i = 0; i < codec->mixers.used; i++)
snd_ctl_remove(codec->card, items[i].kctl);
+ up_write(&codec->card->controls_rwsem);
snd_array_free(&codec->mixers);
snd_array_free(&codec->nids);
}
diff --git a/sound/pci/hda/hda_controller.c b/sound/pci/hda/hda_controller.c
index 930ae4002a81..75dcb14ff20a 100644
--- a/sound/pci/hda/hda_controller.c
+++ b/sound/pci/hda/hda_controller.c
@@ -504,7 +504,6 @@ static int azx_get_time_info(struct snd_pcm_substream *substream,
snd_pcm_gettime(substream->runtime, system_ts);
nsec = timecounter_read(&azx_dev->core.tc);
- nsec = div_u64(nsec, 3); /* can be optimized */
if (audio_tstamp_config->report_delay)
nsec = azx_adjust_codec_delay(substream, nsec);
diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h
index d22c96eb2f8f..8621f576446b 100644
--- a/sound/pci/hda/hda_local.h
+++ b/sound/pci/hda/hda_local.h
@@ -137,6 +137,7 @@ int __snd_hda_add_vmaster(struct hda_codec *codec, char *name,
int snd_hda_codec_reset(struct hda_codec *codec);
void snd_hda_codec_register(struct hda_codec *codec);
void snd_hda_codec_cleanup_for_unbind(struct hda_codec *codec);
+void snd_hda_codec_disconnect_pcms(struct hda_codec *codec);
#define snd_hda_regmap_sync(codec) snd_hdac_regmap_sync(&(codec)->core)
diff --git a/sound/pci/hda/patch_cs8409-tables.c b/sound/pci/hda/patch_cs8409-tables.c
index 0fb0a428428b..df0b4522babf 100644
--- a/sound/pci/hda/patch_cs8409-tables.c
+++ b/sound/pci/hda/patch_cs8409-tables.c
@@ -252,6 +252,7 @@ struct sub_codec cs8409_cs42l42_codec = {
.init_seq_num = ARRAY_SIZE(cs42l42_init_reg_seq),
.hp_jack_in = 0,
.mic_jack_in = 0,
+ .force_status_change = 1,
.paged = 1,
.suspended = 1,
.no_type_dect = 0,
@@ -443,6 +444,7 @@ struct sub_codec dolphin_cs42l42_0 = {
.init_seq_num = ARRAY_SIZE(dolphin_c0_init_reg_seq),
.hp_jack_in = 0,
.mic_jack_in = 0,
+ .force_status_change = 1,
.paged = 1,
.suspended = 1,
.no_type_dect = 0,
@@ -456,6 +458,7 @@ struct sub_codec dolphin_cs42l42_1 = {
.init_seq_num = ARRAY_SIZE(dolphin_c1_init_reg_seq),
.hp_jack_in = 0,
.mic_jack_in = 0,
+ .force_status_change = 1,
.paged = 1,
.suspended = 1,
.no_type_dect = 1,
diff --git a/sound/pci/hda/patch_cs8409.c b/sound/pci/hda/patch_cs8409.c
index 039b9f2f8e94..aff2b5abb81e 100644
--- a/sound/pci/hda/patch_cs8409.c
+++ b/sound/pci/hda/patch_cs8409.c
@@ -628,15 +628,17 @@ static void cs42l42_run_jack_detect(struct sub_codec *cs42l42)
cs8409_i2c_write(cs42l42, 0x1b74, 0x07);
cs8409_i2c_write(cs42l42, 0x131b, 0xFD);
cs8409_i2c_write(cs42l42, 0x1120, 0x80);
- /* Wait ~100us*/
- usleep_range(100, 200);
+ /* Wait ~20ms*/
+ usleep_range(20000, 25000);
cs8409_i2c_write(cs42l42, 0x111f, 0x77);
cs8409_i2c_write(cs42l42, 0x1120, 0xc0);
}
static int cs42l42_handle_tip_sense(struct sub_codec *cs42l42, unsigned int reg_ts_status)
{
- int status_changed = 0;
+ int status_changed = cs42l42->force_status_change;
+
+ cs42l42->force_status_change = 0;
/* TIP_SENSE INSERT/REMOVE */
switch (reg_ts_status) {
@@ -791,6 +793,7 @@ static void cs42l42_suspend(struct sub_codec *cs42l42)
cs42l42->last_page = 0;
cs42l42->hp_jack_in = 0;
cs42l42->mic_jack_in = 0;
+ cs42l42->force_status_change = 1;
/* Put CS42L42 into Reset */
gpio_data = snd_hda_codec_read(codec, CS8409_PIN_AFG, 0, AC_VERB_GET_GPIO_DATA, 0);
diff --git a/sound/pci/hda/patch_cs8409.h b/sound/pci/hda/patch_cs8409.h
index ade2b838590c..d0b725c7285b 100644
--- a/sound/pci/hda/patch_cs8409.h
+++ b/sound/pci/hda/patch_cs8409.h
@@ -305,6 +305,7 @@ struct sub_codec {
unsigned int hp_jack_in:1;
unsigned int mic_jack_in:1;
+ unsigned int force_status_change:1;
unsigned int suspended:1;
unsigned int paged:1;
unsigned int last_page;
diff --git a/sound/soc/amd/Kconfig b/sound/soc/amd/Kconfig
index 2c6af3f8f296..ff535370e525 100644
--- a/sound/soc/amd/Kconfig
+++ b/sound/soc/amd/Kconfig
@@ -68,7 +68,7 @@ config SND_SOC_AMD_VANGOGH_MACH
tristate "AMD Vangogh support for NAU8821 CS35L41"
select SND_SOC_NAU8821
select SND_SOC_CS35L41_SPI
- depends on SND_SOC_AMD_ACP5x && I2C
+ depends on SND_SOC_AMD_ACP5x && I2C && SPI_MASTER
help
This option enables machine driver for Vangogh platform
using NAU8821 and CS35L41 codecs.
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 326f2d611ad4..3a610ba183ff 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -241,8 +241,7 @@ config SND_SOC_ALL_CODECS
imply SND_SOC_UDA1380
imply SND_SOC_WCD9335
imply SND_SOC_WCD934X
- imply SND_SOC_WCD937X
- imply SND_SOC_WCD938X
+ imply SND_SOC_WCD938X_SDW
imply SND_SOC_LPASS_RX_MACRO
imply SND_SOC_LPASS_TX_MACRO
imply SND_SOC_WL1273
diff --git a/sound/soc/codecs/cs42l42.c b/sound/soc/codecs/cs42l42.c
index 27a1c4c73074..a63fba4e6c9c 100644
--- a/sound/soc/codecs/cs42l42.c
+++ b/sound/soc/codecs/cs42l42.c
@@ -521,8 +521,25 @@ static int cs42l42_set_jack(struct snd_soc_component *component, struct snd_soc_
{
struct cs42l42_private *cs42l42 = snd_soc_component_get_drvdata(component);
+ /* Prevent race with interrupt handler */
+ mutex_lock(&cs42l42->jack_detect_mutex);
cs42l42->jack = jk;
+ if (jk) {
+ switch (cs42l42->hs_type) {
+ case CS42L42_PLUG_CTIA:
+ case CS42L42_PLUG_OMTP:
+ snd_soc_jack_report(jk, SND_JACK_HEADSET, SND_JACK_HEADSET);
+ break;
+ case CS42L42_PLUG_HEADPHONE:
+ snd_soc_jack_report(jk, SND_JACK_HEADPHONE, SND_JACK_HEADPHONE);
+ break;
+ default:
+ break;
+ }
+ }
+ mutex_unlock(&cs42l42->jack_detect_mutex);
+
return 0;
}
@@ -1611,6 +1628,8 @@ static irqreturn_t cs42l42_irq_thread(int irq, void *data)
CS42L42_M_DETECT_FT_MASK |
CS42L42_M_HSBIAS_HIZ_MASK);
+ mutex_lock(&cs42l42->jack_detect_mutex);
+
/* Check auto-detect status */
if ((~masks[5]) & irq_params_table[5].mask) {
if (stickies[5] & CS42L42_HSDET_AUTO_DONE_MASK) {
@@ -1689,6 +1708,8 @@ static irqreturn_t cs42l42_irq_thread(int irq, void *data)
}
}
+ mutex_unlock(&cs42l42->jack_detect_mutex);
+
return IRQ_HANDLED;
}
@@ -2033,6 +2054,7 @@ static int cs42l42_i2c_probe(struct i2c_client *i2c_client,
cs42l42->dev = &i2c_client->dev;
i2c_set_clientdata(i2c_client, cs42l42);
+ mutex_init(&cs42l42->jack_detect_mutex);
cs42l42->regmap = devm_regmap_init_i2c(i2c_client, &cs42l42_regmap);
if (IS_ERR(cs42l42->regmap)) {
diff --git a/sound/soc/codecs/cs42l42.h b/sound/soc/codecs/cs42l42.h
index f45bcc9a3a62..02128ebf8989 100644
--- a/sound/soc/codecs/cs42l42.h
+++ b/sound/soc/codecs/cs42l42.h
@@ -12,6 +12,7 @@
#ifndef __CS42L42_H__
#define __CS42L42_H__
+#include <linux/mutex.h>
#include <sound/jack.h>
#define CS42L42_PAGE_REGISTER 0x00 /* Page Select Register */
@@ -838,6 +839,7 @@ struct cs42l42_private {
struct gpio_desc *reset_gpio;
struct completion pdn_done;
struct snd_soc_jack *jack;
+ struct mutex jack_detect_mutex;
int pll_config;
int bclk;
u32 sclk;
diff --git a/sound/soc/codecs/rt5663.c b/sound/soc/codecs/rt5663.c
index 0389b2bb360e..2138f62e6af5 100644
--- a/sound/soc/codecs/rt5663.c
+++ b/sound/soc/codecs/rt5663.c
@@ -3461,6 +3461,7 @@ static void rt5663_calibrate(struct rt5663_priv *rt5663)
static int rt5663_parse_dp(struct rt5663_priv *rt5663, struct device *dev)
{
int table_size;
+ int ret;
device_property_read_u32(dev, "realtek,dc_offset_l_manual",
&rt5663->pdata.dc_offset_l_manual);
@@ -3477,9 +3478,11 @@ static int rt5663_parse_dp(struct rt5663_priv *rt5663, struct device *dev)
table_size = sizeof(struct impedance_mapping_table) *
rt5663->pdata.impedance_sensing_num;
rt5663->imp_table = devm_kzalloc(dev, table_size, GFP_KERNEL);
- device_property_read_u32_array(dev,
+ ret = device_property_read_u32_array(dev,
"realtek,impedance_sensing_table",
(u32 *)rt5663->imp_table, table_size);
+ if (ret)
+ return ret;
}
return 0;
@@ -3504,8 +3507,11 @@ static int rt5663_i2c_probe(struct i2c_client *i2c,
if (pdata)
rt5663->pdata = *pdata;
- else
- rt5663_parse_dp(rt5663, &i2c->dev);
+ else {
+ ret = rt5663_parse_dp(rt5663, &i2c->dev);
+ if (ret)
+ return ret;
+ }
for (i = 0; i < ARRAY_SIZE(rt5663->supplies); i++)
rt5663->supplies[i].supply = rt5663_supply_names[i];
diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c
index 24b41881a68f..d7d1536a4f37 100644
--- a/sound/soc/fsl/fsl_asrc.c
+++ b/sound/soc/fsl/fsl_asrc.c
@@ -19,6 +19,7 @@
#include "fsl_asrc.h"
#define IDEAL_RATIO_DECIMAL_DEPTH 26
+#define DIVIDER_NUM 64
#define pair_err(fmt, ...) \
dev_err(&asrc->pdev->dev, "Pair %c: " fmt, 'A' + index, ##__VA_ARGS__)
@@ -101,6 +102,55 @@ static unsigned char clk_map_imx8qxp[2][ASRC_CLK_MAP_LEN] = {
},
};
+/*
+ * According to RM, the divider range is 1 ~ 8,
+ * prescaler is power of 2 from 1 ~ 128.
+ */
+static int asrc_clk_divider[DIVIDER_NUM] = {
+ 1, 2, 4, 8, 16, 32, 64, 128, /* divider = 1 */
+ 2, 4, 8, 16, 32, 64, 128, 256, /* divider = 2 */
+ 3, 6, 12, 24, 48, 96, 192, 384, /* divider = 3 */
+ 4, 8, 16, 32, 64, 128, 256, 512, /* divider = 4 */
+ 5, 10, 20, 40, 80, 160, 320, 640, /* divider = 5 */
+ 6, 12, 24, 48, 96, 192, 384, 768, /* divider = 6 */
+ 7, 14, 28, 56, 112, 224, 448, 896, /* divider = 7 */
+ 8, 16, 32, 64, 128, 256, 512, 1024, /* divider = 8 */
+};
+
+/*
+ * Check if the divider is available for internal ratio mode
+ */
+static bool fsl_asrc_divider_avail(int clk_rate, int rate, int *div)
+{
+ u32 rem, i;
+ u64 n;
+
+ if (div)
+ *div = 0;
+
+ if (clk_rate == 0 || rate == 0)
+ return false;
+
+ n = clk_rate;
+ rem = do_div(n, rate);
+
+ if (div)
+ *div = n;
+
+ if (rem != 0)
+ return false;
+
+ for (i = 0; i < DIVIDER_NUM; i++) {
+ if (n == asrc_clk_divider[i])
+ break;
+ }
+
+ if (i == DIVIDER_NUM)
+ return false;
+
+ return true;
+}
+
/**
* fsl_asrc_sel_proc - Select the pre-processing and post-processing options
* @inrate: input sample rate
@@ -330,12 +380,12 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
enum asrc_word_width input_word_width;
enum asrc_word_width output_word_width;
u32 inrate, outrate, indiv, outdiv;
- u32 clk_index[2], div[2], rem[2];
+ u32 clk_index[2], div[2];
u64 clk_rate;
int in, out, channels;
int pre_proc, post_proc;
struct clk *clk;
- bool ideal;
+ bool ideal, div_avail;
if (!config) {
pair_err("invalid pair config\n");
@@ -415,8 +465,7 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
clk = asrc_priv->asrck_clk[clk_index[ideal ? OUT : IN]];
clk_rate = clk_get_rate(clk);
- rem[IN] = do_div(clk_rate, inrate);
- div[IN] = (u32)clk_rate;
+ div_avail = fsl_asrc_divider_avail(clk_rate, inrate, &div[IN]);
/*
* The divider range is [1, 1024], defined by the hardware. For non-
@@ -425,7 +474,7 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
* only result in different converting speeds. So remainder does not
* matter, as long as we keep the divider within its valid range.
*/
- if (div[IN] == 0 || (!ideal && (div[IN] > 1024 || rem[IN] != 0))) {
+ if (div[IN] == 0 || (!ideal && !div_avail)) {
pair_err("failed to support input sample rate %dHz by asrck_%x\n",
inrate, clk_index[ideal ? OUT : IN]);
return -EINVAL;
@@ -436,13 +485,12 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
clk = asrc_priv->asrck_clk[clk_index[OUT]];
clk_rate = clk_get_rate(clk);
if (ideal && use_ideal_rate)
- rem[OUT] = do_div(clk_rate, IDEAL_RATIO_RATE);
+ div_avail = fsl_asrc_divider_avail(clk_rate, IDEAL_RATIO_RATE, &div[OUT]);
else
- rem[OUT] = do_div(clk_rate, outrate);
- div[OUT] = clk_rate;
+ div_avail = fsl_asrc_divider_avail(clk_rate, outrate, &div[OUT]);
/* Output divider has the same limitation as the input one */
- if (div[OUT] == 0 || (!ideal && (div[OUT] > 1024 || rem[OUT] != 0))) {
+ if (div[OUT] == 0 || (!ideal && !div_avail)) {
pair_err("failed to support output sample rate %dHz by asrck_%x\n",
outrate, clk_index[OUT]);
return -EINVAL;
@@ -621,8 +669,7 @@ static void fsl_asrc_select_clk(struct fsl_asrc_priv *asrc_priv,
clk_index = asrc_priv->clk_map[j][i];
clk_rate = clk_get_rate(asrc_priv->asrck_clk[clk_index]);
/* Only match a perfect clock source with no remainder */
- if (clk_rate != 0 && (clk_rate / rate[j]) <= 1024 &&
- (clk_rate % rate[j]) == 0)
+ if (fsl_asrc_divider_avail(clk_rate, rate[j], NULL))
break;
}
diff --git a/sound/soc/fsl/fsl_mqs.c b/sound/soc/fsl/fsl_mqs.c
index 27b4536dce44..ceaecbe3a25e 100644
--- a/sound/soc/fsl/fsl_mqs.c
+++ b/sound/soc/fsl/fsl_mqs.c
@@ -337,4 +337,4 @@ module_platform_driver(fsl_mqs_driver);
MODULE_AUTHOR("Shengjiu Wang <Shengjiu.Wang@nxp.com>");
MODULE_DESCRIPTION("MQS codec driver");
MODULE_LICENSE("GPL v2");
-MODULE_ALIAS("platform: fsl-mqs");
+MODULE_ALIAS("platform:fsl-mqs");
diff --git a/sound/soc/fsl/imx-card.c b/sound/soc/fsl/imx-card.c
index 6f06afd23b16..c7503a5f7cfb 100644
--- a/sound/soc/fsl/imx-card.c
+++ b/sound/soc/fsl/imx-card.c
@@ -120,7 +120,7 @@ struct imx_card_data {
static struct imx_akcodec_fs_mul ak4458_fs_mul[] = {
/* Normal, < 32kHz */
- { .rmin = 8000, .rmax = 24000, .wmin = 1024, .wmax = 1024, },
+ { .rmin = 8000, .rmax = 24000, .wmin = 256, .wmax = 1024, },
/* Normal, 32kHz */
{ .rmin = 32000, .rmax = 32000, .wmin = 256, .wmax = 1024, },
/* Normal */
@@ -151,8 +151,8 @@ static struct imx_akcodec_fs_mul ak4497_fs_mul[] = {
* Table 7 - mapping multiplier and speed mode
* Tables 8 & 9 - mapping speed mode and LRCK fs
*/
- { .rmin = 8000, .rmax = 32000, .wmin = 1024, .wmax = 1024, }, /* Normal, <= 32kHz */
- { .rmin = 44100, .rmax = 48000, .wmin = 512, .wmax = 512, }, /* Normal */
+ { .rmin = 8000, .rmax = 32000, .wmin = 256, .wmax = 1024, }, /* Normal, <= 32kHz */
+ { .rmin = 44100, .rmax = 48000, .wmin = 256, .wmax = 512, }, /* Normal */
{ .rmin = 88200, .rmax = 96000, .wmin = 256, .wmax = 256, }, /* Double */
{ .rmin = 176400, .rmax = 192000, .wmin = 128, .wmax = 128, }, /* Quad */
{ .rmin = 352800, .rmax = 384000, .wmin = 128, .wmax = 128, }, /* Oct */
@@ -164,7 +164,7 @@ static struct imx_akcodec_fs_mul ak4497_fs_mul[] = {
* (Table 4 from datasheet)
*/
static struct imx_akcodec_fs_mul ak5558_fs_mul[] = {
- { .rmin = 8000, .rmax = 32000, .wmin = 1024, .wmax = 1024, },
+ { .rmin = 8000, .rmax = 32000, .wmin = 512, .wmax = 1024, },
{ .rmin = 44100, .rmax = 48000, .wmin = 512, .wmax = 512, },
{ .rmin = 88200, .rmax = 96000, .wmin = 256, .wmax = 256, },
{ .rmin = 176400, .rmax = 192000, .wmin = 128, .wmax = 128, },
@@ -247,13 +247,14 @@ static bool codec_is_akcodec(unsigned int type)
}
static unsigned long akcodec_get_mclk_rate(struct snd_pcm_substream *substream,
- struct snd_pcm_hw_params *params)
+ struct snd_pcm_hw_params *params,
+ int slots, int slot_width)
{
struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct imx_card_data *data = snd_soc_card_get_drvdata(rtd->card);
const struct imx_card_plat_data *plat_data = data->plat_data;
struct dai_link_data *link_data = &data->link_data[rtd->num];
- unsigned int width = link_data->slots * link_data->slot_width;
+ unsigned int width = slots * slot_width;
unsigned int rate = params_rate(params);
int i;
@@ -349,7 +350,7 @@ static int imx_aif_hw_params(struct snd_pcm_substream *substream,
/* Set MCLK freq */
if (codec_is_akcodec(plat_data->type))
- mclk_freq = akcodec_get_mclk_rate(substream, params);
+ mclk_freq = akcodec_get_mclk_rate(substream, params, slots, slot_width);
else
mclk_freq = params_rate(params) * slots * slot_width;
/* Use the maximum freq from DSD512 (512*44100 = 22579200) */
@@ -553,8 +554,23 @@ static int imx_card_parse_of(struct imx_card_data *data)
link_data->cpu_sysclk_id = FSL_SAI_CLK_MAST1;
/* sai may support mclk/bclk = 1 */
- if (of_find_property(np, "fsl,mclk-equal-bclk", NULL))
+ if (of_find_property(np, "fsl,mclk-equal-bclk", NULL)) {
link_data->one2one_ratio = true;
+ } else {
+ int i;
+
+ /*
+ * i.MX8MQ don't support one2one ratio, then
+ * with ak4497 only 16bit case is supported.
+ */
+ for (i = 0; i < ARRAY_SIZE(ak4497_fs_mul); i++) {
+ if (ak4497_fs_mul[i].rmin == 705600 &&
+ ak4497_fs_mul[i].rmax == 768000) {
+ ak4497_fs_mul[i].wmin = 32;
+ ak4497_fs_mul[i].wmax = 32;
+ }
+ }
+ }
}
link->cpus->of_node = args.np;
diff --git a/sound/soc/fsl/imx-hdmi.c b/sound/soc/fsl/imx-hdmi.c
index f10359a28800..929f69b758af 100644
--- a/sound/soc/fsl/imx-hdmi.c
+++ b/sound/soc/fsl/imx-hdmi.c
@@ -145,6 +145,8 @@ static int imx_hdmi_probe(struct platform_device *pdev)
data->dai.capture_only = false;
data->dai.init = imx_hdmi_init;
+ put_device(&cpu_pdev->dev);
+
if (of_node_name_eq(cpu_np, "sai")) {
data->cpu_priv.sysclk_id[1] = FSL_SAI_CLK_MAST1;
data->cpu_priv.sysclk_id[0] = FSL_SAI_CLK_MAST1;
diff --git a/sound/soc/generic/test-component.c b/sound/soc/generic/test-component.c
index 85385a771d80..8fc97d3ff011 100644
--- a/sound/soc/generic/test-component.c
+++ b/sound/soc/generic/test-component.c
@@ -532,13 +532,16 @@ static int test_driver_probe(struct platform_device *pdev)
struct device_node *node = dev->of_node;
struct device_node *ep;
const struct of_device_id *of_id = of_match_device(test_of_match, &pdev->dev);
- const struct test_adata *adata = of_id->data;
+ const struct test_adata *adata;
struct snd_soc_component_driver *cdriv;
struct snd_soc_dai_driver *ddriv;
struct test_dai_name *dname;
struct test_priv *priv;
int num, ret, i;
+ if (!of_id)
+ return -EINVAL;
+ adata = of_id->data;
num = of_graph_get_endpoint_count(node);
if (!num) {
dev_err(dev, "no port exits\n");
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index 77219c3f8766..54eefaff62a7 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -188,7 +188,7 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
},
.driver_data = (void *)(SOF_SDW_TGL_HDMI |
SOF_SDW_PCH_DMIC |
- RT711_JD2),
+ RT711_JD1),
},
{
/* NUC15 'Bishop County' LAPBC510 and LAPBC710 skews */
diff --git a/sound/soc/intel/catpt/dsp.c b/sound/soc/intel/catpt/dsp.c
index 9c5fd18f2600..346bec000306 100644
--- a/sound/soc/intel/catpt/dsp.c
+++ b/sound/soc/intel/catpt/dsp.c
@@ -65,6 +65,7 @@ static int catpt_dma_memcpy(struct catpt_dev *cdev, struct dma_chan *chan,
{
struct dma_async_tx_descriptor *desc;
enum dma_status status;
+ int ret;
desc = dmaengine_prep_dma_memcpy(chan, dst_addr, src_addr, size,
DMA_CTRL_ACK);
@@ -77,13 +78,22 @@ static int catpt_dma_memcpy(struct catpt_dev *cdev, struct dma_chan *chan,
catpt_updatel_shim(cdev, HMDC,
CATPT_HMDC_HDDA(CATPT_DMA_DEVID, chan->chan_id),
CATPT_HMDC_HDDA(CATPT_DMA_DEVID, chan->chan_id));
- dmaengine_submit(desc);
+
+ ret = dma_submit_error(dmaengine_submit(desc));
+ if (ret) {
+ dev_err(cdev->dev, "submit tx failed: %d\n", ret);
+ goto clear_hdda;
+ }
+
status = dma_wait_for_async_tx(desc);
+ ret = (status == DMA_COMPLETE) ? 0 : -EPROTO;
+
+clear_hdda:
/* regardless of status, disable access to HOST memory in demand mode */
catpt_updatel_shim(cdev, HMDC,
CATPT_HMDC_HDDA(CATPT_DMA_DEVID, chan->chan_id), 0);
- return (status == DMA_COMPLETE) ? 0 : -EPROTO;
+ return ret;
}
int catpt_dma_memcpy_todsp(struct catpt_dev *cdev, struct dma_chan *chan,
diff --git a/sound/soc/intel/skylake/skl-pcm.c b/sound/soc/intel/skylake/skl-pcm.c
index 9ecaf6a1e847..e4aa366d356e 100644
--- a/sound/soc/intel/skylake/skl-pcm.c
+++ b/sound/soc/intel/skylake/skl-pcm.c
@@ -1251,7 +1251,6 @@ static int skl_platform_soc_get_time_info(
snd_pcm_gettime(substream->runtime, system_ts);
nsec = timecounter_read(&hstr->tc);
- nsec = div_u64(nsec, 3); /* can be optimized */
if (audio_tstamp_config->report_delay)
nsec = skl_adjust_codec_delay(substream, nsec);
diff --git a/sound/soc/mediatek/mt8173/mt8173-max98090.c b/sound/soc/mediatek/mt8173/mt8173-max98090.c
index fc94314bfc02..3bdd4931316c 100644
--- a/sound/soc/mediatek/mt8173/mt8173-max98090.c
+++ b/sound/soc/mediatek/mt8173/mt8173-max98090.c
@@ -180,6 +180,9 @@ static int mt8173_max98090_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(codec_node);
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
index 0f28dc2217c0..390da5bf727e 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
@@ -218,6 +218,8 @@ static int mt8173_rt5650_rt5514_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
index 077c6ee06780..c8e4e85e1057 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
@@ -285,6 +285,8 @@ static int mt8173_rt5650_rt5676_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650.c b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
index 2cbf679f5c74..d8cf0802813a 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
@@ -323,6 +323,8 @@ static int mt8173_rt5650_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
index a4d26a6fc849..bda103211e0b 100644
--- a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
+++ b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
@@ -781,7 +781,11 @@ static int mt8183_da7219_max98357_dev_probe(struct platform_device *pdev)
return ret;
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
diff --git a/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c b/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
index aeb1af86047e..9f0bf15fe465 100644
--- a/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
+++ b/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
@@ -780,7 +780,12 @@ mt8183_mt6358_ts3a227_max98357_dev_probe(struct platform_device *pdev)
__func__, ret);
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(ec_codec);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
index a606133951b7..24a5d0adec1b 100644
--- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
+++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
@@ -1172,7 +1172,11 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev)
return ret;
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
diff --git a/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c b/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c
index 2bb05a828e8d..15b4cae2524c 100644
--- a/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c
+++ b/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c
@@ -3028,7 +3028,7 @@ static const struct reg_sequence mt8195_afe_reg_defaults[] = {
static const struct reg_sequence mt8195_cg_patch[] = {
{ AUDIO_TOP_CON0, 0xfffffffb },
- { AUDIO_TOP_CON1, 0xfffffffa },
+ { AUDIO_TOP_CON1, 0xfffffff8 },
};
static int mt8195_afe_init_registers(struct mtk_base_afe *afe)
diff --git a/sound/soc/mediatek/mt8195/mt8195-dai-pcm.c b/sound/soc/mediatek/mt8195/mt8195-dai-pcm.c
index 5d10d2c4c991..151914c873ac 100644
--- a/sound/soc/mediatek/mt8195/mt8195-dai-pcm.c
+++ b/sound/soc/mediatek/mt8195/mt8195-dai-pcm.c
@@ -80,8 +80,15 @@ static const struct snd_soc_dapm_widget mtk_dai_pcm_widgets[] = {
mtk_dai_pcm_o001_mix,
ARRAY_SIZE(mtk_dai_pcm_o001_mix)),
+ SND_SOC_DAPM_SUPPLY("PCM_EN", PCM_INTF_CON1,
+ PCM_INTF_CON1_PCM_EN_SHIFT, 0, NULL, 0),
+
SND_SOC_DAPM_INPUT("PCM1_INPUT"),
SND_SOC_DAPM_OUTPUT("PCM1_OUTPUT"),
+
+ SND_SOC_DAPM_CLOCK_SUPPLY("aud_asrc11"),
+ SND_SOC_DAPM_CLOCK_SUPPLY("aud_asrc12"),
+ SND_SOC_DAPM_CLOCK_SUPPLY("aud_pcmif"),
};
static const struct snd_soc_dapm_route mtk_dai_pcm_routes[] = {
@@ -97,22 +104,18 @@ static const struct snd_soc_dapm_route mtk_dai_pcm_routes[] = {
{"PCM1 Playback", NULL, "O000"},
{"PCM1 Playback", NULL, "O001"},
+ {"PCM1 Playback", NULL, "PCM_EN"},
+ {"PCM1 Playback", NULL, "aud_asrc12"},
+ {"PCM1 Playback", NULL, "aud_pcmif"},
+
+ {"PCM1 Capture", NULL, "PCM_EN"},
+ {"PCM1 Capture", NULL, "aud_asrc11"},
+ {"PCM1 Capture", NULL, "aud_pcmif"},
+
{"PCM1_OUTPUT", NULL, "PCM1 Playback"},
{"PCM1 Capture", NULL, "PCM1_INPUT"},
};
-static void mtk_dai_pcm_enable(struct mtk_base_afe *afe)
-{
- regmap_update_bits(afe->regmap, PCM_INTF_CON1,
- PCM_INTF_CON1_PCM_EN, PCM_INTF_CON1_PCM_EN);
-}
-
-static void mtk_dai_pcm_disable(struct mtk_base_afe *afe)
-{
- regmap_update_bits(afe->regmap, PCM_INTF_CON1,
- PCM_INTF_CON1_PCM_EN, 0x0);
-}
-
static int mtk_dai_pcm_configure(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
@@ -207,54 +210,22 @@ static int mtk_dai_pcm_configure(struct snd_pcm_substream *substream,
}
/* dai ops */
-static int mtk_dai_pcm_startup(struct snd_pcm_substream *substream,
- struct snd_soc_dai *dai)
-{
- struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
- struct mt8195_afe_private *afe_priv = afe->platform_priv;
-
- if (dai->component->active)
- return 0;
-
- mt8195_afe_enable_clk(afe, afe_priv->clk[MT8195_CLK_AUD_ASRC11]);
- mt8195_afe_enable_clk(afe, afe_priv->clk[MT8195_CLK_AUD_ASRC12]);
- mt8195_afe_enable_clk(afe, afe_priv->clk[MT8195_CLK_AUD_PCMIF]);
-
- return 0;
-}
-
-static void mtk_dai_pcm_shutdown(struct snd_pcm_substream *substream,
- struct snd_soc_dai *dai)
-{
- struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
- struct mt8195_afe_private *afe_priv = afe->platform_priv;
-
- if (dai->component->active)
- return;
-
- mtk_dai_pcm_disable(afe);
-
- mt8195_afe_disable_clk(afe, afe_priv->clk[MT8195_CLK_AUD_PCMIF]);
- mt8195_afe_disable_clk(afe, afe_priv->clk[MT8195_CLK_AUD_ASRC12]);
- mt8195_afe_disable_clk(afe, afe_priv->clk[MT8195_CLK_AUD_ASRC11]);
-}
-
static int mtk_dai_pcm_prepare(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
- struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
- int ret = 0;
+ int ret;
- if (snd_soc_dai_stream_active(dai, SNDRV_PCM_STREAM_PLAYBACK) &&
- snd_soc_dai_stream_active(dai, SNDRV_PCM_STREAM_CAPTURE))
+ dev_dbg(dai->dev, "%s(), id %d, stream %d, widget active p %d, c %d\n",
+ __func__, dai->id, substream->stream,
+ dai->playback_widget->active, dai->capture_widget->active);
+
+ if (dai->playback_widget->active || dai->capture_widget->active)
return 0;
ret = mtk_dai_pcm_configure(substream, dai);
if (ret)
return ret;
- mtk_dai_pcm_enable(afe);
-
return 0;
}
@@ -316,8 +287,6 @@ static int mtk_dai_pcm_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
}
static const struct snd_soc_dai_ops mtk_dai_pcm_ops = {
- .startup = mtk_dai_pcm_startup,
- .shutdown = mtk_dai_pcm_shutdown,
.prepare = mtk_dai_pcm_prepare,
.set_fmt = mtk_dai_pcm_set_fmt,
};
diff --git a/sound/soc/mediatek/mt8195/mt8195-reg.h b/sound/soc/mediatek/mt8195/mt8195-reg.h
index d06f9cf85a4e..d3871353db41 100644
--- a/sound/soc/mediatek/mt8195/mt8195-reg.h
+++ b/sound/soc/mediatek/mt8195/mt8195-reg.h
@@ -2550,6 +2550,7 @@
#define PCM_INTF_CON1_PCM_FMT(x) (((x) & 0x3) << 1)
#define PCM_INTF_CON1_PCM_FMT_MASK (0x3 << 1)
#define PCM_INTF_CON1_PCM_EN BIT(0)
+#define PCM_INTF_CON1_PCM_EN_SHIFT 0
/* PCM_INTF_CON2 */
#define PCM_INTF_CON2_CLK_DOMAIN_SEL(x) (((x) & 0x3) << 23)
diff --git a/sound/soc/samsung/idma.c b/sound/soc/samsung/idma.c
index 66bcc2f97544..c3f1b054e238 100644
--- a/sound/soc/samsung/idma.c
+++ b/sound/soc/samsung/idma.c
@@ -360,6 +360,8 @@ static int preallocate_idma_buffer(struct snd_pcm *pcm, int stream)
buf->addr = idma.lp_tx_addr;
buf->bytes = idma_hardware.buffer_bytes_max;
buf->area = (unsigned char * __force)ioremap(buf->addr, buf->bytes);
+ if (!buf->area)
+ return -ENOMEM;
return 0;
}
diff --git a/sound/soc/sof/intel/hda-codec.c b/sound/soc/sof/intel/hda-codec.c
index 13cd96e6724a..2f3f4a733d9e 100644
--- a/sound/soc/sof/intel/hda-codec.c
+++ b/sound/soc/sof/intel/hda-codec.c
@@ -20,9 +20,10 @@
#include "../../codecs/hdac_hda.h"
#endif /* CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC */
+#define CODEC_PROBE_RETRIES 3
+
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC)
#define IDISP_VID_INTEL 0x80860000
-#define CODEC_PROBE_RETRIES 3
/* load the legacy HDA codec driver */
static int request_codec_module(struct hda_codec *codec)
diff --git a/sound/soc/sof/intel/hda-pcm.c b/sound/soc/sof/intel/hda-pcm.c
index cc8ddef37f37..41cb60955f5c 100644
--- a/sound/soc/sof/intel/hda-pcm.c
+++ b/sound/soc/sof/intel/hda-pcm.c
@@ -172,38 +172,74 @@ snd_pcm_uframes_t hda_dsp_pcm_pointer(struct snd_sof_dev *sdev,
goto found;
}
- /*
- * DPIB/posbuf position mode:
- * For Playback, Use DPIB register from HDA space which
- * reflects the actual data transferred.
- * For Capture, Use the position buffer for pointer, as DPIB
- * is not accurate enough, its update may be completed
- * earlier than the data written to DDR.
- */
- if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
+ switch (sof_hda_position_quirk) {
+ case SOF_HDA_POSITION_QUIRK_USE_SKYLAKE_LEGACY:
+ /*
+ * This legacy code, inherited from the Skylake driver,
+ * mixes DPIB registers and DPIB DDR updates and
+ * does not seem to follow any known hardware recommendations.
+ * It's not clear e.g. why there is a different flow
+ * for capture and playback, the only information that matters is
+ * what traffic class is used, and on all SOF-enabled platforms
+ * only VC0 is supported so the work-around was likely not necessary
+ * and quite possibly wrong.
+ */
+
+ /* DPIB/posbuf position mode:
+ * For Playback, Use DPIB register from HDA space which
+ * reflects the actual data transferred.
+ * For Capture, Use the position buffer for pointer, as DPIB
+ * is not accurate enough, its update may be completed
+ * earlier than the data written to DDR.
+ */
+ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
+ pos = snd_sof_dsp_read(sdev, HDA_DSP_HDA_BAR,
+ AZX_REG_VS_SDXDPIB_XBASE +
+ (AZX_REG_VS_SDXDPIB_XINTERVAL *
+ hstream->index));
+ } else {
+ /*
+ * For capture stream, we need more workaround to fix the
+ * position incorrect issue:
+ *
+ * 1. Wait at least 20us before reading position buffer after
+ * the interrupt generated(IOC), to make sure position update
+ * happens on frame boundary i.e. 20.833uSec for 48KHz.
+ * 2. Perform a dummy Read to DPIB register to flush DMA
+ * position value.
+ * 3. Read the DMA Position from posbuf. Now the readback
+ * value should be >= period boundary.
+ */
+ usleep_range(20, 21);
+ snd_sof_dsp_read(sdev, HDA_DSP_HDA_BAR,
+ AZX_REG_VS_SDXDPIB_XBASE +
+ (AZX_REG_VS_SDXDPIB_XINTERVAL *
+ hstream->index));
+ pos = snd_hdac_stream_get_pos_posbuf(hstream);
+ }
+ break;
+ case SOF_HDA_POSITION_QUIRK_USE_DPIB_REGISTERS:
+ /*
+ * In case VC1 traffic is disabled this is the recommended option
+ */
pos = snd_sof_dsp_read(sdev, HDA_DSP_HDA_BAR,
AZX_REG_VS_SDXDPIB_XBASE +
(AZX_REG_VS_SDXDPIB_XINTERVAL *
hstream->index));
- } else {
+ break;
+ case SOF_HDA_POSITION_QUIRK_USE_DPIB_DDR_UPDATE:
/*
- * For capture stream, we need more workaround to fix the
- * position incorrect issue:
- *
- * 1. Wait at least 20us before reading position buffer after
- * the interrupt generated(IOC), to make sure position update
- * happens on frame boundary i.e. 20.833uSec for 48KHz.
- * 2. Perform a dummy Read to DPIB register to flush DMA
- * position value.
- * 3. Read the DMA Position from posbuf. Now the readback
- * value should be >= period boundary.
+ * This is the recommended option when VC1 is enabled.
+ * While this isn't needed for SOF platforms it's added for
+ * consistency and debug.
*/
- usleep_range(20, 21);
- snd_sof_dsp_read(sdev, HDA_DSP_HDA_BAR,
- AZX_REG_VS_SDXDPIB_XBASE +
- (AZX_REG_VS_SDXDPIB_XINTERVAL *
- hstream->index));
pos = snd_hdac_stream_get_pos_posbuf(hstream);
+ break;
+ default:
+ dev_err_once(sdev->dev, "hda_position_quirk value %d not supported\n",
+ sof_hda_position_quirk);
+ pos = 0;
+ break;
}
if (pos >= hstream->bufsize)
diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
index 2c0d4d06ab36..25200a0e1dc9 100644
--- a/sound/soc/sof/intel/hda.c
+++ b/sound/soc/sof/intel/hda.c
@@ -440,6 +440,10 @@ MODULE_PARM_DESC(use_msi, "SOF HDA use PCI MSI mode");
#define hda_use_msi (1)
#endif
+int sof_hda_position_quirk = SOF_HDA_POSITION_QUIRK_USE_DPIB_REGISTERS;
+module_param_named(position_quirk, sof_hda_position_quirk, int, 0444);
+MODULE_PARM_DESC(position_quirk, "SOF HDaudio position quirk");
+
static char *hda_model;
module_param(hda_model, charp, 0444);
MODULE_PARM_DESC(hda_model, "Use the given HDA board model.");
@@ -618,7 +622,10 @@ static int hda_init(struct snd_sof_dev *sdev)
/* HDA bus init */
sof_hda_bus_init(bus, &pci->dev);
- bus->use_posbuf = 1;
+ if (sof_hda_position_quirk == SOF_HDA_POSITION_QUIRK_USE_DPIB_REGISTERS)
+ bus->use_posbuf = 0;
+ else
+ bus->use_posbuf = 1;
bus->bdl_pos_adj = 0;
bus->sync_write = 1;
diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
index 1195018a1f4f..dba4733ccf9a 100644
--- a/sound/soc/sof/intel/hda.h
+++ b/sound/soc/sof/intel/hda.h
@@ -738,4 +738,10 @@ struct sof_ipc_dai_config;
int hda_ctrl_dai_widget_setup(struct snd_soc_dapm_widget *w);
int hda_ctrl_dai_widget_free(struct snd_soc_dapm_widget *w);
+#define SOF_HDA_POSITION_QUIRK_USE_SKYLAKE_LEGACY (0) /* previous implementation */
+#define SOF_HDA_POSITION_QUIRK_USE_DPIB_REGISTERS (1) /* recommended if VC0 only */
+#define SOF_HDA_POSITION_QUIRK_USE_DPIB_DDR_UPDATE (2) /* recommended with VC0 or VC1 */
+
+extern int sof_hda_position_quirk;
+
#endif
diff --git a/sound/soc/sof/ipc.c b/sound/soc/sof/ipc.c
index e6c53c6c470e..ca30c506a0fd 100644
--- a/sound/soc/sof/ipc.c
+++ b/sound/soc/sof/ipc.c
@@ -547,7 +547,8 @@ static void ipc_period_elapsed(struct snd_sof_dev *sdev, u32 msg_id)
if (spcm->pcm.compress)
snd_sof_compr_fragment_elapsed(stream->cstream);
- else if (!stream->substream->runtime->no_period_wakeup)
+ else if (stream->substream->runtime &&
+ !stream->substream->runtime->no_period_wakeup)
/* only inform ALSA for period_wakeup mode */
snd_sof_pcm_period_elapsed(stream->substream);
}
diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
index fa0bfcd2474e..216a1f576fc8 100644
--- a/sound/soc/sof/pcm.c
+++ b/sound/soc/sof/pcm.c
@@ -100,9 +100,8 @@ void snd_sof_pcm_period_elapsed(struct snd_pcm_substream *substream)
}
EXPORT_SYMBOL(snd_sof_pcm_period_elapsed);
-static int sof_pcm_dsp_pcm_free(struct snd_pcm_substream *substream,
- struct snd_sof_dev *sdev,
- struct snd_sof_pcm *spcm)
+int sof_pcm_dsp_pcm_free(struct snd_pcm_substream *substream, struct snd_sof_dev *sdev,
+ struct snd_sof_pcm *spcm)
{
struct sof_ipc_stream stream;
struct sof_ipc_reply reply;
diff --git a/sound/soc/sof/sof-audio.c b/sound/soc/sof/sof-audio.c
index 7cbe757c1fe2..ddd993351ce1 100644
--- a/sound/soc/sof/sof-audio.c
+++ b/sound/soc/sof/sof-audio.c
@@ -122,6 +122,14 @@ int sof_widget_free(struct snd_sof_dev *sdev, struct snd_sof_widget *swidget)
case snd_soc_dapm_buffer:
ipc_free.hdr.cmd |= SOF_IPC_TPLG_BUFFER_FREE;
break;
+ case snd_soc_dapm_dai_in:
+ case snd_soc_dapm_dai_out:
+ {
+ struct snd_sof_dai *dai = swidget->private;
+
+ dai->configured = false;
+ fallthrough;
+ }
default:
ipc_free.hdr.cmd |= SOF_IPC_TPLG_COMP_FREE;
break;
@@ -203,7 +211,8 @@ int sof_widget_setup(struct snd_sof_dev *sdev, struct snd_sof_widget *swidget)
break;
case snd_soc_dapm_scheduler:
pipeline = swidget->private;
- ret = sof_load_pipeline_ipc(sdev, pipeline, &r);
+ ret = sof_ipc_tx_message(sdev->ipc, pipeline->hdr.cmd, pipeline,
+ sizeof(*pipeline), &r, sizeof(r));
break;
default:
hdr = swidget->private;
@@ -595,16 +604,25 @@ const struct sof_ipc_pipe_new *snd_sof_pipeline_find(struct snd_sof_dev *sdev,
int sof_set_up_pipelines(struct snd_sof_dev *sdev, bool verify)
{
+ struct sof_ipc_fw_version *v = &sdev->fw_ready.version;
struct snd_sof_widget *swidget;
struct snd_sof_route *sroute;
int ret;
/* restore pipeline components */
- list_for_each_entry_reverse(swidget, &sdev->widget_list, list) {
+ list_for_each_entry(swidget, &sdev->widget_list, list) {
/* only set up the widgets belonging to static pipelines */
if (!verify && swidget->dynamic_pipeline_widget)
continue;
+ /*
+ * For older firmware, skip scheduler widgets in this loop,
+ * sof_widget_setup() will be called in the 'complete pipeline' loop
+ */
+ if (v->abi_version < SOF_ABI_VER(3, 19, 0) &&
+ swidget->id == snd_soc_dapm_scheduler)
+ continue;
+
/* update DAI config. The IPC will be sent in sof_widget_setup() */
if (WIDGET_IS_DAI(swidget->id)) {
struct snd_sof_dai *dai = swidget->private;
@@ -652,6 +670,12 @@ int sof_set_up_pipelines(struct snd_sof_dev *sdev, bool verify)
if (!verify && swidget->dynamic_pipeline_widget)
continue;
+ if (v->abi_version < SOF_ABI_VER(3, 19, 0)) {
+ ret = sof_widget_setup(sdev, swidget);
+ if (ret < 0)
+ return ret;
+ }
+
swidget->complete =
snd_sof_complete_pipeline(sdev, swidget);
break;
@@ -664,11 +688,61 @@ int sof_set_up_pipelines(struct snd_sof_dev *sdev, bool verify)
}
/*
- * This function doesn't free widgets during suspend. It only resets the set up status for all
- * routes and use_count for all widgets.
+ * Free the PCM, its associated widgets and set the prepared flag to false for all PCMs that
+ * did not get suspended(ex: paused streams) so the widgets can be set up again during resume.
+ */
+static int sof_tear_down_left_over_pipelines(struct snd_sof_dev *sdev)
+{
+ struct snd_sof_widget *swidget;
+ struct snd_sof_pcm *spcm;
+ int dir, ret;
+
+ /*
+ * free all PCMs and their associated DAPM widgets if their connected DAPM widget
+ * list is not NULL. This should only be true for paused streams at this point.
+ * This is equivalent to the handling of FE DAI suspend trigger for running streams.
+ */
+ list_for_each_entry(spcm, &sdev->pcm_list, list)
+ for_each_pcm_streams(dir) {
+ struct snd_pcm_substream *substream = spcm->stream[dir].substream;
+
+ if (!substream || !substream->runtime)
+ continue;
+
+ if (spcm->stream[dir].list) {
+ ret = sof_pcm_dsp_pcm_free(substream, sdev, spcm);
+ if (ret < 0)
+ return ret;
+
+ ret = sof_widget_list_free(sdev, spcm, dir);
+ if (ret < 0) {
+ dev_err(sdev->dev, "failed to free widgets during suspend\n");
+ return ret;
+ }
+ }
+ }
+
+ /*
+ * free any left over DAI widgets. This is equivalent to the handling of suspend trigger
+ * for the BE DAI for running streams.
+ */
+ list_for_each_entry(swidget, &sdev->widget_list, list)
+ if (WIDGET_IS_DAI(swidget->id) && swidget->use_count == 1) {
+ ret = sof_widget_free(sdev, swidget);
+ if (ret < 0)
+ return ret;
+ }
+
+ return 0;
+}
+
+/*
+ * For older firmware, this function doesn't free widgets for static pipelines during suspend.
+ * It only resets use_count for all widgets.
*/
int sof_tear_down_pipelines(struct snd_sof_dev *sdev, bool verify)
{
+ struct sof_ipc_fw_version *v = &sdev->fw_ready.version;
struct snd_sof_widget *swidget;
struct snd_sof_route *sroute;
int ret;
@@ -676,12 +750,18 @@ int sof_tear_down_pipelines(struct snd_sof_dev *sdev, bool verify)
/*
* This function is called during suspend and for one-time topology verification during
* first boot. In both cases, there is no need to protect swidget->use_count and
- * sroute->setup because during suspend all streams are suspended and during topology
- * loading the sound card unavailable to open PCMs.
+ * sroute->setup because during suspend all running streams are suspended and during
+ * topology loading the sound card unavailable to open PCMs.
*/
- list_for_each_entry_reverse(swidget, &sdev->widget_list, list) {
- if (!verify) {
+ list_for_each_entry(swidget, &sdev->widget_list, list) {
+ if (swidget->dynamic_pipeline_widget)
+ continue;
+
+ /* Do not free widgets for static pipelines with FW ABI older than 3.19 */
+ if (!verify && !swidget->dynamic_pipeline_widget &&
+ v->abi_version < SOF_ABI_VER(3, 19, 0)) {
swidget->use_count = 0;
+ swidget->complete = 0;
continue;
}
@@ -690,6 +770,19 @@ int sof_tear_down_pipelines(struct snd_sof_dev *sdev, bool verify)
return ret;
}
+ /*
+ * Tear down all pipelines associated with PCMs that did not get suspended
+ * and unset the prepare flag so that they can be set up again during resume.
+ * Skip this step for older firmware.
+ */
+ if (!verify && v->abi_version >= SOF_ABI_VER(3, 19, 0)) {
+ ret = sof_tear_down_left_over_pipelines(sdev);
+ if (ret < 0) {
+ dev_err(sdev->dev, "failed to tear down paused pipelines\n");
+ return ret;
+ }
+ }
+
list_for_each_entry(sroute, &sdev->route_list, list)
sroute->setup = false;
diff --git a/sound/soc/sof/sof-audio.h b/sound/soc/sof/sof-audio.h
index 05e98e231b85..faa4f36ef0d1 100644
--- a/sound/soc/sof/sof-audio.h
+++ b/sound/soc/sof/sof-audio.h
@@ -184,10 +184,6 @@ void snd_sof_control_notify(struct snd_sof_dev *sdev,
int snd_sof_load_topology(struct snd_soc_component *scomp, const char *file);
int snd_sof_complete_pipeline(struct snd_sof_dev *sdev,
struct snd_sof_widget *swidget);
-
-int sof_load_pipeline_ipc(struct snd_sof_dev *sdev,
- struct sof_ipc_pipe_new *pipeline,
- struct sof_ipc_comp_reply *r);
int sof_pipeline_core_enable(struct snd_sof_dev *sdev,
const struct snd_sof_widget *swidget);
@@ -271,4 +267,6 @@ int sof_widget_free(struct snd_sof_dev *sdev, struct snd_sof_widget *swidget);
/* PCM */
int sof_widget_list_setup(struct snd_sof_dev *sdev, struct snd_sof_pcm *spcm, int dir);
int sof_widget_list_free(struct snd_sof_dev *sdev, struct snd_sof_pcm *spcm, int dir);
+int sof_pcm_dsp_pcm_free(struct snd_pcm_substream *substream, struct snd_sof_dev *sdev,
+ struct snd_sof_pcm *spcm);
#endif
diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
index bb9e62bbe5db..136ffc3b050b 100644
--- a/sound/soc/sof/topology.c
+++ b/sound/soc/sof/topology.c
@@ -1690,23 +1690,6 @@ static int sof_widget_load_pcm(struct snd_soc_component *scomp, int index,
/*
* Pipeline Topology
*/
-int sof_load_pipeline_ipc(struct snd_sof_dev *sdev,
- struct sof_ipc_pipe_new *pipeline,
- struct sof_ipc_comp_reply *r)
-{
- int ret = sof_core_enable(sdev, pipeline->core);
-
- if (ret < 0)
- return ret;
-
- ret = sof_ipc_tx_message(sdev->ipc, pipeline->hdr.cmd, pipeline,
- sizeof(*pipeline), r, sizeof(*r));
- if (ret < 0)
- dev_err(sdev->dev, "error: load pipeline ipc failure\n");
-
- return ret;
-}
-
static int sof_widget_load_pipeline(struct snd_soc_component *scomp, int index,
struct snd_sof_widget *swidget,
struct snd_soc_tplg_dapm_widget *tw)
diff --git a/sound/soc/uniphier/Kconfig b/sound/soc/uniphier/Kconfig
index aa3592ee1358..ddfa6424c656 100644
--- a/sound/soc/uniphier/Kconfig
+++ b/sound/soc/uniphier/Kconfig
@@ -23,7 +23,6 @@ config SND_SOC_UNIPHIER_LD11
tristate "UniPhier LD11/LD20 Device Driver"
depends on SND_SOC_UNIPHIER
select SND_SOC_UNIPHIER_AIO
- select SND_SOC_UNIPHIER_AIO_DMA
help
This adds ASoC driver for Socionext UniPhier LD11/LD20
input and output that can be used with other codecs.
@@ -34,7 +33,6 @@ config SND_SOC_UNIPHIER_PXS2
tristate "UniPhier PXs2 Device Driver"
depends on SND_SOC_UNIPHIER
select SND_SOC_UNIPHIER_AIO
- select SND_SOC_UNIPHIER_AIO_DMA
help
This adds ASoC driver for Socionext UniPhier PXs2
input and output that can be used with other codecs.
diff --git a/sound/usb/format.c b/sound/usb/format.c
index f5e676a51b30..405dc0bf6678 100644
--- a/sound/usb/format.c
+++ b/sound/usb/format.c
@@ -375,7 +375,7 @@ static int parse_uac2_sample_rate_range(struct snd_usb_audio *chip,
for (rate = min; rate <= max; rate += res) {
/* Filter out invalid rates on Presonus Studio 1810c */
- if (chip->usb_id == USB_ID(0x0194f, 0x010c) &&
+ if (chip->usb_id == USB_ID(0x194f, 0x010c) &&
!s1810c_valid_sample_rate(fp, rate))
goto skip_rate;
diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c
index 823b6b8de942..d48729e6a3b0 100644
--- a/sound/usb/mixer_quirks.c
+++ b/sound/usb/mixer_quirks.c
@@ -3254,7 +3254,7 @@ int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer)
err = snd_rme_controls_create(mixer);
break;
- case USB_ID(0x0194f, 0x010c): /* Presonus Studio 1810c */
+ case USB_ID(0x194f, 0x010c): /* Presonus Studio 1810c */
err = snd_sc1810_init_mixer(mixer);
break;
case USB_ID(0x2a39, 0x3fb0): /* RME Babyface Pro FS */
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 64e1c20311ed..ab9f3da49941 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1290,7 +1290,7 @@ int snd_usb_apply_interface_quirk(struct snd_usb_audio *chip,
if (chip->usb_id == USB_ID(0x0763, 0x2012))
return fasttrackpro_skip_setting_quirk(chip, iface, altno);
/* presonus studio 1810c: skip altsets incompatible with device_setup */
- if (chip->usb_id == USB_ID(0x0194f, 0x010c))
+ if (chip->usb_id == USB_ID(0x194f, 0x010c))
return s1810c_skip_setting_quirk(chip, iface, altno);
diff --git a/tools/bpf/bpftool/Documentation/Makefile b/tools/bpf/bpftool/Documentation/Makefile
index c49487905ceb..f89929c7038d 100644
--- a/tools/bpf/bpftool/Documentation/Makefile
+++ b/tools/bpf/bpftool/Documentation/Makefile
@@ -1,6 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-only
include ../../../scripts/Makefile.include
-include ../../../scripts/utilities.mak
INSTALL ?= install
RM ?= rm -f
diff --git a/tools/bpf/bpftool/Documentation/bpftool-btf.rst b/tools/bpf/bpftool/Documentation/bpftool-btf.rst
index 88b28aa7431f..4425d942dd39 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-btf.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-btf.rst
@@ -13,7 +13,7 @@ SYNOPSIS
**bpftool** [*OPTIONS*] **btf** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | {**-d** | **--debug** } |
- { **-B** | **--base-btf** } }
+ { **-B** | **--base-btf** } }
*COMMANDS* := { **dump** | **help** }
diff --git a/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst b/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
index 3e4395eede4f..13a217a2503d 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
@@ -13,7 +13,7 @@ SYNOPSIS
**bpftool** [*OPTIONS*] **cgroup** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } |
- { **-f** | **--bpffs** } }
+ { **-f** | **--bpffs** } }
*COMMANDS* :=
{ **show** | **list** | **tree** | **attach** | **detach** | **help** }
diff --git a/tools/bpf/bpftool/Documentation/bpftool-gen.rst b/tools/bpf/bpftool/Documentation/bpftool-gen.rst
index 2ef2f2df0279..2a137f8a4cea 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-gen.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-gen.rst
@@ -13,7 +13,7 @@ SYNOPSIS
**bpftool** [*OPTIONS*] **gen** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } |
- { **-L** | **--use-loader** } }
+ { **-L** | **--use-loader** } }
*COMMAND* := { **object** | **skeleton** | **help** }
diff --git a/tools/bpf/bpftool/Documentation/bpftool-link.rst b/tools/bpf/bpftool/Documentation/bpftool-link.rst
index 0de90f086238..9434349636a5 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-link.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-link.rst
@@ -13,7 +13,7 @@ SYNOPSIS
**bpftool** [*OPTIONS*] **link** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } |
- { **-f** | **--bpffs** } | { **-n** | **--nomount** } }
+ { **-f** | **--bpffs** } | { **-n** | **--nomount** } }
*COMMANDS* := { **show** | **list** | **pin** | **help** }
diff --git a/tools/bpf/bpftool/Documentation/bpftool-map.rst b/tools/bpf/bpftool/Documentation/bpftool-map.rst
index d0c4abe08aba..1445cadc15d4 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-map.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-map.rst
@@ -13,11 +13,11 @@ SYNOPSIS
**bpftool** [*OPTIONS*] **map** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } |
- { **-f** | **--bpffs** } | { **-n** | **--nomount** } }
+ { **-f** | **--bpffs** } | { **-n** | **--nomount** } }
*COMMANDS* :=
- { **show** | **list** | **create** | **dump** | **update** | **lookup** | **getnext**
- | **delete** | **pin** | **help** }
+ { **show** | **list** | **create** | **dump** | **update** | **lookup** | **getnext** |
+ **delete** | **pin** | **help** }
MAP COMMANDS
=============
diff --git a/tools/bpf/bpftool/Documentation/bpftool-prog.rst b/tools/bpf/bpftool/Documentation/bpftool-prog.rst
index 91608cb7e44a..f27265bd589b 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-prog.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-prog.rst
@@ -13,12 +13,12 @@ SYNOPSIS
**bpftool** [*OPTIONS*] **prog** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } |
- { **-f** | **--bpffs** } | { **-m** | **--mapcompat** } | { **-n** | **--nomount** } |
- { **-L** | **--use-loader** } }
+ { **-f** | **--bpffs** } | { **-m** | **--mapcompat** } | { **-n** | **--nomount** } |
+ { **-L** | **--use-loader** } }
*COMMANDS* :=
- { **show** | **list** | **dump xlated** | **dump jited** | **pin** | **load**
- | **loadall** | **help** }
+ { **show** | **list** | **dump xlated** | **dump jited** | **pin** | **load** |
+ **loadall** | **help** }
PROG COMMANDS
=============
diff --git a/tools/bpf/bpftool/Documentation/bpftool.rst b/tools/bpf/bpftool/Documentation/bpftool.rst
index bb23f55bb05a..8ac86565c501 100644
--- a/tools/bpf/bpftool/Documentation/bpftool.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool.rst
@@ -19,14 +19,14 @@ SYNOPSIS
*OBJECT* := { **map** | **program** | **cgroup** | **perf** | **net** | **feature** }
*OPTIONS* := { { **-V** | **--version** } |
- { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } }
+ { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } }
*MAP-COMMANDS* :=
{ **show** | **list** | **create** | **dump** | **update** | **lookup** | **getnext** |
- **delete** | **pin** | **event_pipe** | **help** }
+ **delete** | **pin** | **event_pipe** | **help** }
*PROG-COMMANDS* := { **show** | **list** | **dump jited** | **dump xlated** | **pin** |
- **load** | **attach** | **detach** | **help** }
+ **load** | **attach** | **detach** | **help** }
*CGROUP-COMMANDS* := { **show** | **list** | **attach** | **detach** | **help** }
diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
index 7cfba11c3014..b83dbd3cb9c7 100644
--- a/tools/bpf/bpftool/Makefile
+++ b/tools/bpf/bpftool/Makefile
@@ -1,6 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-only
include ../../scripts/Makefile.include
-include ../../scripts/utilities.mak
ifeq ($(srctree),)
srctree := $(patsubst %/,%,$(dir $(CURDIR)))
diff --git a/tools/bpf/bpftool/main.c b/tools/bpf/bpftool/main.c
index 28237d7cef67..8fbcff9d557d 100644
--- a/tools/bpf/bpftool/main.c
+++ b/tools/bpf/bpftool/main.c
@@ -400,6 +400,8 @@ int main(int argc, char **argv)
};
int opt, ret;
+ setlinebuf(stdout);
+
last_do_help = do_help;
pretty_output = false;
json_output = false;
diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c
index 515d22952602..6ccd17b8eb56 100644
--- a/tools/bpf/bpftool/prog.c
+++ b/tools/bpf/bpftool/prog.c
@@ -639,8 +639,8 @@ prog_dump(struct bpf_prog_info *info, enum dump_mode mode,
char func_sig[1024];
unsigned char *buf;
__u32 member_len;
+ int fd, err = -1;
ssize_t n;
- int fd;
if (mode == DUMP_JITED) {
if (info->jited_prog_len == 0 || !info->jited_prog_insns) {
@@ -679,7 +679,7 @@ prog_dump(struct bpf_prog_info *info, enum dump_mode mode,
if (fd < 0) {
p_err("can't open file %s: %s", filepath,
strerror(errno));
- return -1;
+ goto exit_free;
}
n = write(fd, buf, member_len);
@@ -687,7 +687,7 @@ prog_dump(struct bpf_prog_info *info, enum dump_mode mode,
if (n != (ssize_t)member_len) {
p_err("error writing output file: %s",
n < 0 ? strerror(errno) : "short write");
- return -1;
+ goto exit_free;
}
if (json_output)
@@ -701,7 +701,7 @@ prog_dump(struct bpf_prog_info *info, enum dump_mode mode,
info->netns_ino,
&disasm_opt);
if (!name)
- return -1;
+ goto exit_free;
}
if (info->nr_jited_func_lens && info->jited_func_lens) {
@@ -796,9 +796,12 @@ prog_dump(struct bpf_prog_info *info, enum dump_mode mode,
kernel_syms_destroy(&dd);
}
- btf__free(btf);
+ err = 0;
- return 0;
+exit_free:
+ btf__free(btf);
+ bpf_prog_linfo__free(prog_linfo);
+ return err;
}
static int do_dump(int argc, char **argv)
diff --git a/tools/bpf/resolve_btfids/main.c b/tools/bpf/resolve_btfids/main.c
index 73409e27be01..5d26f3c6f918 100644
--- a/tools/bpf/resolve_btfids/main.c
+++ b/tools/bpf/resolve_btfids/main.c
@@ -168,7 +168,7 @@ static struct btf_id *btf_id__find(struct rb_root *root, const char *name)
return NULL;
}
-static struct btf_id*
+static struct btf_id *
btf_id__add(struct rb_root *root, char *name, bool unique)
{
struct rb_node **p = &root->rb_node;
@@ -732,7 +732,8 @@ int main(int argc, const char **argv)
if (obj.efile.idlist_shndx == -1 ||
obj.efile.symbols_shndx == -1) {
pr_debug("Cannot find .BTF_ids or symbols sections, nothing to do\n");
- return 0;
+ err = 0;
+ goto out;
}
if (symbols_collect(&obj))
diff --git a/tools/include/nolibc/nolibc.h b/tools/include/nolibc/nolibc.h
index 3430667b0d24..3e2c6f2ed587 100644
--- a/tools/include/nolibc/nolibc.h
+++ b/tools/include/nolibc/nolibc.h
@@ -399,16 +399,22 @@ struct stat {
})
/* startup code */
+/*
+ * x86-64 System V ABI mandates:
+ * 1) %rsp must be 16-byte aligned right before the function call.
+ * 2) The deepest stack frame should be zero (the %rbp).
+ *
+ */
asm(".section .text\n"
".global _start\n"
"_start:\n"
"pop %rdi\n" // argc (first arg, %rdi)
"mov %rsp, %rsi\n" // argv[] (second arg, %rsi)
"lea 8(%rsi,%rdi,8),%rdx\n" // then a NULL then envp (third arg, %rdx)
- "and $-16, %rsp\n" // x86 ABI : esp must be 16-byte aligned when
- "sub $8, %rsp\n" // entering the callee
+ "xor %ebp, %ebp\n" // zero the stack frame
+ "and $-16, %rsp\n" // x86 ABI : esp must be 16-byte aligned before call
"call main\n" // main() returns the status code, we'll exit with it.
- "movzb %al, %rdi\n" // retrieve exit code from 8 lower bits
+ "mov %eax, %edi\n" // retrieve exit code (32 bit)
"mov $60, %rax\n" // NR_exit == 60
"syscall\n" // really exit
"hlt\n" // ensure it does not return
@@ -577,20 +583,28 @@ struct sys_stat_struct {
})
/* startup code */
+/*
+ * i386 System V ABI mandates:
+ * 1) last pushed argument must be 16-byte aligned.
+ * 2) The deepest stack frame should be set to zero
+ *
+ */
asm(".section .text\n"
".global _start\n"
"_start:\n"
"pop %eax\n" // argc (first arg, %eax)
"mov %esp, %ebx\n" // argv[] (second arg, %ebx)
"lea 4(%ebx,%eax,4),%ecx\n" // then a NULL then envp (third arg, %ecx)
- "and $-16, %esp\n" // x86 ABI : esp must be 16-byte aligned when
+ "xor %ebp, %ebp\n" // zero the stack frame
+ "and $-16, %esp\n" // x86 ABI : esp must be 16-byte aligned before
+ "sub $4, %esp\n" // the call instruction (args are aligned)
"push %ecx\n" // push all registers on the stack so that we
"push %ebx\n" // support both regparm and plain stack modes
"push %eax\n"
"call main\n" // main() returns the status code in %eax
- "movzbl %al, %ebx\n" // retrieve exit code from lower 8 bits
- "movl $1, %eax\n" // NR_exit == 1
- "int $0x80\n" // exit now
+ "mov %eax, %ebx\n" // retrieve exit code (32-bit int)
+ "movl $1, %eax\n" // NR_exit == 1
+ "int $0x80\n" // exit now
"hlt\n" // ensure it does not
"");
@@ -774,7 +788,6 @@ asm(".section .text\n"
"and %r3, %r1, $-8\n" // AAPCS : sp must be 8-byte aligned in the
"mov %sp, %r3\n" // callee, an bl doesn't push (lr=pc)
"bl main\n" // main() returns the status code, we'll exit with it.
- "and %r0, %r0, $0xff\n" // limit exit code to 8 bits
"movs r7, $1\n" // NR_exit == 1
"svc $0x00\n"
"");
@@ -971,7 +984,6 @@ asm(".section .text\n"
"add x2, x2, x1\n" // + argv
"and sp, x1, -16\n" // sp must be 16-byte aligned in the callee
"bl main\n" // main() returns the status code, we'll exit with it.
- "and x0, x0, 0xff\n" // limit exit code to 8 bits
"mov x8, 93\n" // NR_exit == 93
"svc #0\n"
"");
@@ -1176,7 +1188,7 @@ asm(".section .text\n"
"addiu $sp,$sp,-16\n" // the callee expects to save a0..a3 there!
"jal main\n" // main() returns the status code, we'll exit with it.
"nop\n" // delayed slot
- "and $a0, $v0, 0xff\n" // limit exit code to 8 bits
+ "move $a0, $v0\n" // retrieve 32-bit exit code from v0
"li $v0, 4001\n" // NR_exit == 4001
"syscall\n"
".end __start\n"
@@ -1374,7 +1386,6 @@ asm(".section .text\n"
"add a2,a2,a1\n" // + argv
"andi sp,a1,-16\n" // sp must be 16-byte aligned
"call main\n" // main() returns the status code, we'll exit with it.
- "andi a0, a0, 0xff\n" // limit exit code to 8 bits
"li a7, 93\n" // NR_exit == 93
"ecall\n"
"");
diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h
index ba5af15e25f5..b12cfceddb6e 100644
--- a/tools/include/uapi/linux/bpf.h
+++ b/tools/include/uapi/linux/bpf.h
@@ -1744,7 +1744,7 @@ union bpf_attr {
* if the maximum number of tail calls has been reached for this
* chain of programs. This limit is defined in the kernel by the
* macro **MAX_TAIL_CALL_CNT** (not accessible to user space),
- * which is currently set to 32.
+ * which is currently set to 33.
* Return
* 0 on success, or a negative error in case of failure.
*
diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c
index 7e4c5586bd87..dc8625998023 100644
--- a/tools/lib/bpf/btf.c
+++ b/tools/lib/bpf/btf.c
@@ -2711,15 +2711,11 @@ void btf_ext__free(struct btf_ext *btf_ext)
free(btf_ext);
}
-struct btf_ext *btf_ext__new(__u8 *data, __u32 size)
+struct btf_ext *btf_ext__new(const __u8 *data, __u32 size)
{
struct btf_ext *btf_ext;
int err;
- err = btf_ext_parse_hdr(data, size);
- if (err)
- return libbpf_err_ptr(err);
-
btf_ext = calloc(1, sizeof(struct btf_ext));
if (!btf_ext)
return libbpf_err_ptr(-ENOMEM);
@@ -2732,6 +2728,10 @@ struct btf_ext *btf_ext__new(__u8 *data, __u32 size)
}
memcpy(btf_ext->data, data, size);
+ err = btf_ext_parse_hdr(btf_ext->data, size);
+ if (err)
+ goto done;
+
if (btf_ext->hdr->hdr_len < offsetofend(struct btf_ext_header, line_info_len)) {
err = -EINVAL;
goto done;
@@ -3443,8 +3443,8 @@ static long btf_hash_struct(struct btf_type *t)
}
/*
- * Check structural compatibility of two FUNC_PROTOs, ignoring referenced type
- * IDs. This check is performed during type graph equivalence check and
+ * Check structural compatibility of two STRUCTs/UNIONs, ignoring referenced
+ * type IDs. This check is performed during type graph equivalence check and
* referenced types equivalence is checked separately.
*/
static bool btf_shallow_equal_struct(struct btf_type *t1, struct btf_type *t2)
@@ -3817,6 +3817,31 @@ static int btf_dedup_identical_arrays(struct btf_dedup *d, __u32 id1, __u32 id2)
return btf_equal_array(t1, t2);
}
+/* Check if given two types are identical STRUCT/UNION definitions */
+static bool btf_dedup_identical_structs(struct btf_dedup *d, __u32 id1, __u32 id2)
+{
+ const struct btf_member *m1, *m2;
+ struct btf_type *t1, *t2;
+ int n, i;
+
+ t1 = btf_type_by_id(d->btf, id1);
+ t2 = btf_type_by_id(d->btf, id2);
+
+ if (!btf_is_composite(t1) || btf_kind(t1) != btf_kind(t2))
+ return false;
+
+ if (!btf_shallow_equal_struct(t1, t2))
+ return false;
+
+ m1 = btf_members(t1);
+ m2 = btf_members(t2);
+ for (i = 0, n = btf_vlen(t1); i < n; i++, m1++, m2++) {
+ if (m1->type != m2->type)
+ return false;
+ }
+ return true;
+}
+
/*
* Check equivalence of BTF type graph formed by candidate struct/union (we'll
* call it "candidate graph" in this description for brevity) to a type graph
@@ -3928,6 +3953,8 @@ static int btf_dedup_is_equiv(struct btf_dedup *d, __u32 cand_id,
hypot_type_id = d->hypot_map[canon_id];
if (hypot_type_id <= BTF_MAX_NR_TYPES) {
+ if (hypot_type_id == cand_id)
+ return 1;
/* In some cases compiler will generate different DWARF types
* for *identical* array type definitions and use them for
* different fields within the *same* struct. This breaks type
@@ -3936,8 +3963,18 @@ static int btf_dedup_is_equiv(struct btf_dedup *d, __u32 cand_id,
* types within a single CU. So work around that by explicitly
* allowing identical array types here.
*/
- return hypot_type_id == cand_id ||
- btf_dedup_identical_arrays(d, hypot_type_id, cand_id);
+ if (btf_dedup_identical_arrays(d, hypot_type_id, cand_id))
+ return 1;
+ /* It turns out that similar situation can happen with
+ * struct/union sometimes, sigh... Handle the case where
+ * structs/unions are exactly the same, down to the referenced
+ * type IDs. Anything more complicated (e.g., if referenced
+ * types are different, but equivalent) is *way more*
+ * complicated and requires a many-to-many equivalence mapping.
+ */
+ if (btf_dedup_identical_structs(d, hypot_type_id, cand_id))
+ return 1;
+ return 0;
}
if (btf_dedup_hypot_map_add(d, canon_id, cand_id))
diff --git a/tools/lib/bpf/btf.h b/tools/lib/bpf/btf.h
index bc005ba3ceec..17c0a46d8cd2 100644
--- a/tools/lib/bpf/btf.h
+++ b/tools/lib/bpf/btf.h
@@ -157,7 +157,7 @@ LIBBPF_API int btf__get_map_kv_tids(const struct btf *btf, const char *map_name,
__u32 expected_value_size,
__u32 *key_type_id, __u32 *value_type_id);
-LIBBPF_API struct btf_ext *btf_ext__new(__u8 *data, __u32 size);
+LIBBPF_API struct btf_ext *btf_ext__new(const __u8 *data, __u32 size);
LIBBPF_API void btf_ext__free(struct btf_ext *btf_ext);
LIBBPF_API const void *btf_ext__get_raw_data(const struct btf_ext *btf_ext,
__u32 *size);
diff --git a/tools/lib/bpf/btf_dump.c b/tools/lib/bpf/btf_dump.c
index 17db62b5002e..5cae71600631 100644
--- a/tools/lib/bpf/btf_dump.c
+++ b/tools/lib/bpf/btf_dump.c
@@ -2194,7 +2194,7 @@ static int btf_dump_dump_type_data(struct btf_dump *d,
__u8 bits_offset,
__u8 bit_sz)
{
- int size, err;
+ int size, err = 0;
size = btf_dump_type_data_check_overflow(d, t, id, data, bits_offset);
if (size < 0)
diff --git a/tools/lib/bpf/gen_loader.c b/tools/lib/bpf/gen_loader.c
index 9934851ccde7..737e7cbe3e54 100644
--- a/tools/lib/bpf/gen_loader.c
+++ b/tools/lib/bpf/gen_loader.c
@@ -371,8 +371,9 @@ int bpf_gen__finish(struct bpf_gen *gen, int nr_progs, int nr_maps)
{
int i;
- if (nr_progs != gen->nr_progs || nr_maps != gen->nr_maps) {
- pr_warn("progs/maps mismatch\n");
+ if (nr_progs < gen->nr_progs || nr_maps != gen->nr_maps) {
+ pr_warn("nr_progs %d/%d nr_maps %d/%d mismatch\n",
+ nr_progs, gen->nr_progs, nr_maps, gen->nr_maps);
gen->error = -EFAULT;
return gen->error;
}
@@ -597,8 +598,9 @@ void bpf_gen__record_extern(struct bpf_gen *gen, const char *name, bool is_weak,
static struct ksym_desc *get_ksym_desc(struct bpf_gen *gen, struct ksym_relo_desc *relo)
{
struct ksym_desc *kdesc;
+ int i;
- for (int i = 0; i < gen->nr_ksyms; i++) {
+ for (i = 0; i < gen->nr_ksyms; i++) {
if (!strcmp(gen->ksyms[i].name, relo->name)) {
gen->ksyms[i].ref++;
return &gen->ksyms[i];
@@ -992,9 +994,11 @@ void bpf_gen__prog_load(struct bpf_gen *gen,
debug_ret(gen, "prog_load %s insn_cnt %d", attr.prog_name, attr.insn_cnt);
/* successful or not, close btf module FDs used in extern ksyms and attach_btf_obj_fd */
cleanup_relos(gen, insns);
- if (gen->attach_kind)
+ if (gen->attach_kind) {
emit_sys_close_blob(gen,
attr_field(prog_load_attr, attach_btf_obj_fd));
+ gen->attach_kind = 0;
+ }
emit_check_err(gen);
/* remember prog_fd in the stack, if successful */
emit(gen, BPF_STX_MEM(BPF_W, BPF_REG_10, BPF_REG_7,
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index 7c74342bb668..c7ba5e6ed9cf 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -400,6 +400,7 @@ struct bpf_map {
char *pin_path;
bool pinned;
bool reused;
+ bool skipped;
__u64 map_extra;
};
@@ -2752,13 +2753,12 @@ static int btf_fixup_datasec(struct bpf_object *obj, struct btf *btf,
for (i = 0, vsi = btf_var_secinfos(t); i < vars; i++, vsi++) {
t_var = btf__type_by_id(btf, vsi->type);
- var = btf_var(t_var);
-
- if (!btf_is_var(t_var)) {
+ if (!t_var || !btf_is_var(t_var)) {
pr_debug("Non-VAR type seen in section %s\n", name);
return -EINVAL;
}
+ var = btf_var(t_var);
if (var->linkage == BTF_VAR_STATIC)
continue;
@@ -3191,11 +3191,11 @@ static int bpf_object__elf_collect(struct bpf_object *obj)
Elf_Scn *scn;
Elf64_Shdr *sh;
- /* ELF section indices are 1-based, so allocate +1 element to keep
- * indexing simple. Also include 0th invalid section into sec_cnt for
- * simpler and more traditional iteration logic.
+ /* ELF section indices are 0-based, but sec #0 is special "invalid"
+ * section. e_shnum does include sec #0, so e_shnum is the necessary
+ * size of an array to keep all the sections.
*/
- obj->efile.sec_cnt = 1 + obj->efile.ehdr->e_shnum;
+ obj->efile.sec_cnt = obj->efile.ehdr->e_shnum;
obj->efile.secs = calloc(obj->efile.sec_cnt, sizeof(*obj->efile.secs));
if (!obj->efile.secs)
return -ENOMEM;
@@ -3555,7 +3555,7 @@ static int bpf_object__collect_externs(struct bpf_object *obj)
scn = elf_sec_by_idx(obj, obj->efile.symbols_shndx);
sh = elf_sec_hdr(obj, scn);
- if (!sh)
+ if (!sh || sh->sh_entsize != sizeof(Elf64_Sym))
return -LIBBPF_ERRNO__FORMAT;
dummy_var_btf_id = add_dummy_ksym_var(obj->btf);
@@ -4988,6 +4988,26 @@ bpf_object__create_maps(struct bpf_object *obj)
for (i = 0; i < obj->nr_maps; i++) {
map = &obj->maps[i];
+ /* To support old kernels, we skip creating global data maps
+ * (.rodata, .data, .kconfig, etc); later on, during program
+ * loading, if we detect that at least one of the to-be-loaded
+ * programs is referencing any global data map, we'll error
+ * out with program name and relocation index logged.
+ * This approach allows to accommodate Clang emitting
+ * unnecessary .rodata.str1.1 sections for string literals,
+ * but also it allows to have CO-RE applications that use
+ * global variables in some of BPF programs, but not others.
+ * If those global variable-using programs are not loaded at
+ * runtime due to bpf_program__set_autoload(prog, false),
+ * bpf_object loading will succeed just fine even on old
+ * kernels.
+ */
+ if (bpf_map__is_internal(map) &&
+ !kernel_supports(obj, FEAT_GLOBAL_DATA)) {
+ map->skipped = true;
+ continue;
+ }
+
retried = false;
retry:
if (map->pin_path) {
@@ -5587,6 +5607,13 @@ bpf_object__relocate_data(struct bpf_object *obj, struct bpf_program *prog)
insn[0].src_reg = BPF_PSEUDO_MAP_IDX_VALUE;
insn[0].imm = relo->map_idx;
} else {
+ const struct bpf_map *map = &obj->maps[relo->map_idx];
+
+ if (map->skipped) {
+ pr_warn("prog '%s': relo #%d: kernel doesn't support global data\n",
+ prog->name, i);
+ return -ENOTSUP;
+ }
insn[0].src_reg = BPF_PSEUDO_MAP_VALUE;
insn[0].imm = obj->maps[relo->map_idx].fd;
}
@@ -6121,6 +6148,8 @@ bpf_object__relocate(struct bpf_object *obj, const char *targ_btf_path)
*/
if (prog_is_subprog(obj, prog))
continue;
+ if (!prog->load)
+ continue;
err = bpf_object__relocate_calls(obj, prog);
if (err) {
@@ -6134,6 +6163,8 @@ bpf_object__relocate(struct bpf_object *obj, const char *targ_btf_path)
prog = &obj->programs[i];
if (prog_is_subprog(obj, prog))
continue;
+ if (!prog->load)
+ continue;
err = bpf_object__relocate_data(obj, prog);
if (err) {
pr_warn("prog '%s': failed to relocate data references: %d\n",
@@ -6915,10 +6946,6 @@ static int bpf_object__sanitize_maps(struct bpf_object *obj)
bpf_object__for_each_map(m, obj) {
if (!bpf_map__is_internal(m))
continue;
- if (!kernel_supports(obj, FEAT_GLOBAL_DATA)) {
- pr_warn("kernel doesn't support global data\n");
- return -ENOTSUP;
- }
if (!kernel_supports(obj, FEAT_ARRAY_MMAP))
m->def.map_flags ^= BPF_F_MMAPABLE;
}
@@ -7707,6 +7734,9 @@ int bpf_object__pin_maps(struct bpf_object *obj, const char *path)
char *pin_path = NULL;
char buf[PATH_MAX];
+ if (map->skipped)
+ continue;
+
if (path) {
int len;
@@ -9028,7 +9058,10 @@ int bpf_map__set_inner_map_fd(struct bpf_map *map, int fd)
pr_warn("error: inner_map_fd already specified\n");
return libbpf_err(-EINVAL);
}
- zfree(&map->inner_map);
+ if (map->inner_map) {
+ bpf_map__destroy(map->inner_map);
+ zfree(&map->inner_map);
+ }
map->inner_map_fd = fd;
return 0;
}
@@ -9735,7 +9768,7 @@ bpf_program__attach_kprobe_opts(const struct bpf_program *prog,
gen_kprobe_legacy_event_name(probe_name, sizeof(probe_name),
func_name, offset);
- legacy_probe = strdup(func_name);
+ legacy_probe = strdup(probe_name);
if (!legacy_probe)
return libbpf_err_ptr(-ENOMEM);
diff --git a/tools/lib/bpf/libbpf.h b/tools/lib/bpf/libbpf.h
index 9de0f299706b..a28e00ce64d4 100644
--- a/tools/lib/bpf/libbpf.h
+++ b/tools/lib/bpf/libbpf.h
@@ -431,7 +431,6 @@ bpf_program__attach_iter(const struct bpf_program *prog,
* one instance. In this case bpf_program__fd(prog) is equal to
* bpf_program__nth_fd(prog, 0).
*/
-LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_program__insns() for getting bpf_program instructions")
struct bpf_prog_prep_result {
/*
* If not NULL, load new instruction array.
diff --git a/tools/lib/bpf/linker.c b/tools/lib/bpf/linker.c
index f677dccdeae4..6923a0ab3b12 100644
--- a/tools/lib/bpf/linker.c
+++ b/tools/lib/bpf/linker.c
@@ -210,6 +210,7 @@ void bpf_linker__free(struct bpf_linker *linker)
}
free(linker->secs);
+ free(linker->glob_syms);
free(linker);
}
@@ -1999,7 +2000,7 @@ static int linker_append_elf_sym(struct bpf_linker *linker, struct src_obj *obj,
static int linker_append_elf_relos(struct bpf_linker *linker, struct src_obj *obj)
{
struct src_sec *src_symtab = &obj->secs[obj->symtab_sec_idx];
- struct dst_sec *dst_symtab = &linker->secs[linker->symtab_sec_idx];
+ struct dst_sec *dst_symtab;
int i, err;
for (i = 1; i < obj->sec_cnt; i++) {
@@ -2032,6 +2033,9 @@ static int linker_append_elf_relos(struct bpf_linker *linker, struct src_obj *ob
return -1;
}
+ /* add_dst_sec() above could have invalidated linker->secs */
+ dst_symtab = &linker->secs[linker->symtab_sec_idx];
+
/* shdr->sh_link points to SYMTAB */
dst_sec->shdr->sh_link = linker->symtab_sec_idx;
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index 3df74cf5651a..83c04ebc940c 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -143,7 +143,10 @@ FEATURE_CHECK_LDFLAGS-libcrypto = -lcrypto
ifdef CSINCLUDES
LIBOPENCSD_CFLAGS := -I$(CSINCLUDES)
endif
-OPENCSDLIBS := -lopencsd_c_api -lopencsd -lstdc++
+OPENCSDLIBS := -lopencsd_c_api
+ifeq ($(findstring -static,${LDFLAGS}),-static)
+ OPENCSDLIBS += -lopencsd -lstdc++
+endif
ifdef CSLIBS
LIBOPENCSD_LDFLAGS := -L$(CSLIBS)
endif
diff --git a/tools/perf/tests/shell/stat_all_metricgroups.sh b/tools/perf/tests/shell/stat_all_metricgroups.sh
index de24d374ce24..cb35e488809a 100755
--- a/tools/perf/tests/shell/stat_all_metricgroups.sh
+++ b/tools/perf/tests/shell/stat_all_metricgroups.sh
@@ -6,7 +6,7 @@ set -e
for m in $(perf list --raw-dump metricgroups); do
echo "Testing $m"
- perf stat -M "$m" true
+ perf stat -M "$m" -a true
done
exit 0
diff --git a/tools/perf/util/cputopo.c b/tools/perf/util/cputopo.c
index 51b429c86f98..aad7a9e6e31b 100644
--- a/tools/perf/util/cputopo.c
+++ b/tools/perf/util/cputopo.c
@@ -165,7 +165,8 @@ static bool has_die_topology(void)
if (uname(&uts) < 0)
return false;
- if (strncmp(uts.machine, "x86_64", 6))
+ if (strncmp(uts.machine, "x86_64", 6) &&
+ strncmp(uts.machine, "s390x", 5))
return false;
scnprintf(filename, MAXPATHLEN, DIE_CPUS_FMT,
diff --git a/tools/perf/util/debug.c b/tools/perf/util/debug.c
index 2c06abf6dcd2..65e6c22f38e4 100644
--- a/tools/perf/util/debug.c
+++ b/tools/perf/util/debug.c
@@ -179,7 +179,7 @@ static int trace_event_printer(enum binary_printer_ops op,
break;
case BINARY_PRINT_CHAR_DATA:
printed += color_fprintf(fp, color, "%c",
- isprint(ch) ? ch : '.');
+ isprint(ch) && isascii(ch) ? ch : '.');
break;
case BINARY_PRINT_CHAR_PAD:
printed += color_fprintf(fp, color, " ");
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index ac0127be0459..99dfc8265431 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -1064,6 +1064,17 @@ void __weak arch_evsel__fixup_new_cycles(struct perf_event_attr *attr __maybe_un
{
}
+static void evsel__set_default_freq_period(struct record_opts *opts,
+ struct perf_event_attr *attr)
+{
+ if (opts->freq) {
+ attr->freq = 1;
+ attr->sample_freq = opts->freq;
+ } else {
+ attr->sample_period = opts->default_interval;
+ }
+}
+
/*
* The enable_on_exec/disabled value strategy:
*
@@ -1130,14 +1141,12 @@ void evsel__config(struct evsel *evsel, struct record_opts *opts,
* We default some events to have a default interval. But keep
* it a weak assumption overridable by the user.
*/
- if (!attr->sample_period) {
- if (opts->freq) {
- attr->freq = 1;
- attr->sample_freq = opts->freq;
- } else {
- attr->sample_period = opts->default_interval;
- }
- }
+ if ((evsel->is_libpfm_event && !attr->sample_period) ||
+ (!evsel->is_libpfm_event && (!attr->sample_period ||
+ opts->user_freq != UINT_MAX ||
+ opts->user_interval != ULLONG_MAX)))
+ evsel__set_default_freq_period(opts, attr);
+
/*
* If attr->freq was set (here or earlier), ask for period
* to be sampled.
diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c
index fffe02aae3ed..5c73c0d867b0 100644
--- a/tools/perf/util/metricgroup.c
+++ b/tools/perf/util/metricgroup.c
@@ -209,8 +209,8 @@ static struct metric *metric__new(const struct pmu_event *pe,
m->metric_name = pe->metric_name;
m->modifier = modifier ? strdup(modifier) : NULL;
if (modifier && !m->modifier) {
- free(m);
expr__ctx_free(m->pctx);
+ free(m);
return NULL;
}
m->metric_expr = pe->metric_expr;
@@ -314,7 +314,7 @@ static int setup_metric_events(struct hashmap *ids,
*/
metric_id = evsel__metric_id(ev);
evlist__for_each_entry_continue(metric_evlist, ev) {
- if (!strcmp(evsel__metric_id(metric_events[i]), metric_id))
+ if (!strcmp(evsel__metric_id(ev), metric_id))
ev->metric_leader = metric_events[i];
}
}
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index b2a02c9ab8ea..a834918a0a0d 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -3083,6 +3083,9 @@ static int find_probe_trace_events_from_map(struct perf_probe_event *pev,
for (j = 0; j < num_matched_functions; j++) {
sym = syms[j];
+ if (sym->type != STT_FUNC)
+ continue;
+
/* There can be duplicated symbols in the map */
for (i = 0; i < j; i++)
if (sym->start == syms[i]->start) {
diff --git a/tools/testing/kunit/kunit_json.py b/tools/testing/kunit/kunit_json.py
index 746bec72b9ac..b6e66c5d64d1 100644
--- a/tools/testing/kunit/kunit_json.py
+++ b/tools/testing/kunit/kunit_json.py
@@ -30,6 +30,8 @@ def _get_group_json(test: Test, def_config: str,
test_case = {"name": subtest.name, "status": "FAIL"}
if subtest.status == TestStatus.SUCCESS:
test_case["status"] = "PASS"
+ elif subtest.status == TestStatus.SKIPPED:
+ test_case["status"] = "SKIP"
elif subtest.status == TestStatus.TEST_CRASHED:
test_case["status"] = "ERROR"
test_cases.append(test_case)
diff --git a/tools/testing/kunit/kunit_tool_test.py b/tools/testing/kunit/kunit_tool_test.py
index 9c4126731457..34cb0a12ba18 100755
--- a/tools/testing/kunit/kunit_tool_test.py
+++ b/tools/testing/kunit/kunit_tool_test.py
@@ -383,6 +383,12 @@ class KUnitJsonTest(unittest.TestCase):
{'name': 'example_simple_test', 'status': 'ERROR'},
result["sub_groups"][1]["test_cases"][0])
+ def test_skipped_test_json(self):
+ result = self._json_for('test_skip_tests.log')
+ self.assertEqual(
+ {'name': 'example_skip_test', 'status': 'SKIP'},
+ result["sub_groups"][1]["test_cases"][1])
+
def test_no_tests_json(self):
result = self._json_for('test_is_test_passed-no_tests_run_with_header.log')
self.assertEqual(0, len(result['sub_groups']))
diff --git a/tools/testing/selftests/bpf/btf_helpers.c b/tools/testing/selftests/bpf/btf_helpers.c
index b5b6b013a245..3d1a748d09d8 100644
--- a/tools/testing/selftests/bpf/btf_helpers.c
+++ b/tools/testing/selftests/bpf/btf_helpers.c
@@ -251,18 +251,23 @@ const char *btf_type_c_dump(const struct btf *btf)
d = btf_dump__new(btf, NULL, &opts, btf_dump_printf);
if (libbpf_get_error(d)) {
fprintf(stderr, "Failed to create btf_dump instance: %ld\n", libbpf_get_error(d));
- return NULL;
+ goto err_out;
}
for (i = 1; i < btf__type_cnt(btf); i++) {
err = btf_dump__dump_type(d, i);
if (err) {
fprintf(stderr, "Failed to dump type [%d]: %d\n", i, err);
- return NULL;
+ goto err_out;
}
}
+ btf_dump__free(d);
fflush(buf_file);
fclose(buf_file);
return buf;
+err_out:
+ btf_dump__free(d);
+ fclose(buf_file);
+ return NULL;
}
diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_iter.c b/tools/testing/selftests/bpf/prog_tests/bpf_iter.c
index 9454331aaf85..ea6823215e9c 100644
--- a/tools/testing/selftests/bpf/prog_tests/bpf_iter.c
+++ b/tools/testing/selftests/bpf/prog_tests/bpf_iter.c
@@ -1206,13 +1206,14 @@ static void test_task_vma(void)
goto out;
/* Read CMP_BUFFER_SIZE (1kB) from bpf_iter. Read in small chunks
- * to trigger seq_file corner cases. The expected output is much
- * longer than 1kB, so the while loop will terminate.
+ * to trigger seq_file corner cases.
*/
len = 0;
while (len < CMP_BUFFER_SIZE) {
err = read_fd_into_buffer(iter_fd, task_vma_output + len,
min(read_size, CMP_BUFFER_SIZE - len));
+ if (!err)
+ break;
if (CHECK(err < 0, "read_iter_fd", "read_iter_fd failed\n"))
goto out;
len += err;
diff --git a/tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c b/tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
index 7589c03fd26b..eb2feaac81fe 100644
--- a/tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
+++ b/tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
@@ -204,8 +204,8 @@ static int pass_ack(struct migrate_reuseport_test_case *test_case)
{
int err;
- err = bpf_link__detach(test_case->link);
- if (!ASSERT_OK(err, "bpf_link__detach"))
+ err = bpf_link__destroy(test_case->link);
+ if (!ASSERT_OK(err, "bpf_link__destroy"))
return -1;
test_case->link = NULL;
diff --git a/tools/testing/selftests/bpf/prog_tests/skb_ctx.c b/tools/testing/selftests/bpf/prog_tests/skb_ctx.c
index c437e6ba8fe2..db4d72563aae 100644
--- a/tools/testing/selftests/bpf/prog_tests/skb_ctx.c
+++ b/tools/testing/selftests/bpf/prog_tests/skb_ctx.c
@@ -111,4 +111,6 @@ void test_skb_ctx(void)
"ctx_out_mark",
"skb->mark == %u, expected %d\n",
skb.mark, 10);
+
+ bpf_object__close(obj);
}
diff --git a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c b/tools/testing/selftests/bpf/prog_tests/tc_redirect.c
index 4b18b73df10b..c2426df58e17 100644
--- a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c
+++ b/tools/testing/selftests/bpf/prog_tests/tc_redirect.c
@@ -105,6 +105,13 @@ static int setns_by_fd(int nsfd)
if (!ASSERT_OK(err, "unshare"))
return err;
+ /* Make our /sys mount private, so the following umount won't
+ * trigger the global umount in case it's shared.
+ */
+ err = mount("none", "/sys", NULL, MS_PRIVATE, NULL);
+ if (!ASSERT_OK(err, "remount private /sys"))
+ return err;
+
err = umount2("/sys", MNT_DETACH);
if (!ASSERT_OK(err, "umount2 /sys"))
return err;
diff --git a/tools/testing/selftests/bpf/xdpxceiver.c b/tools/testing/selftests/bpf/xdpxceiver.c
index 6c7cf8aadc79..621342ec30c4 100644
--- a/tools/testing/selftests/bpf/xdpxceiver.c
+++ b/tools/testing/selftests/bpf/xdpxceiver.c
@@ -1219,7 +1219,7 @@ static bool hugepages_present(struct ifobject *ifobject)
void *bufs;
bufs = mmap(NULL, mmap_sz, PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE | MAP_HUGETLB, -1, 0);
+ MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0);
if (bufs == MAP_FAILED)
return false;
@@ -1366,6 +1366,10 @@ static void run_pkt_test(struct test_spec *test, enum test_mode mode, enum test_
testapp_invalid_desc(test);
break;
case TEST_TYPE_UNALIGNED_INV_DESC:
+ if (!hugepages_present(test->ifobj_tx)) {
+ ksft_test_result_skip("No 2M huge pages present.\n");
+ return;
+ }
test_spec_set_name(test, "UNALIGNED_INV_DESC");
test->ifobj_tx->umem->unaligned_mode = true;
test->ifobj_rx->umem->unaligned_mode = true;
diff --git a/tools/testing/selftests/clone3/clone3.c b/tools/testing/selftests/clone3/clone3.c
index 42be3b925830..076cf4325f78 100644
--- a/tools/testing/selftests/clone3/clone3.c
+++ b/tools/testing/selftests/clone3/clone3.c
@@ -52,6 +52,12 @@ static int call_clone3(uint64_t flags, size_t size, enum test_mode test_mode)
size = sizeof(struct __clone_args);
switch (test_mode) {
+ case CLONE3_ARGS_NO_TEST:
+ /*
+ * Uses default 'flags' and 'SIGCHLD'
+ * assignment.
+ */
+ break;
case CLONE3_ARGS_ALL_0:
args.flags = 0;
args.exit_signal = 0;
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc b/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc
index 98166fa3eb91..34fb89b0c61f 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc
@@ -1,6 +1,6 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
-# description: Kprobe dynamic event - adding and removing
+# description: Kprobe profile
# requires: kprobe_events
! grep -q 'myevent' kprobe_profile
diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h
index ae0f0f33b2a6..79a182cfa43a 100644
--- a/tools/testing/selftests/kselftest_harness.h
+++ b/tools/testing/selftests/kselftest_harness.h
@@ -969,7 +969,7 @@ void __run_test(struct __fixture_metadata *f,
t->passed = 1;
t->skip = 0;
t->trigger = 0;
- t->step = 0;
+ t->step = 1;
t->no_print = 0;
memset(t->results->reason, 0, sizeof(t->results->reason));
diff --git a/tools/testing/selftests/kvm/.gitignore b/tools/testing/selftests/kvm/.gitignore
index 3cb5ac5da087..289d4cc32d2f 100644
--- a/tools/testing/selftests/kvm/.gitignore
+++ b/tools/testing/selftests/kvm/.gitignore
@@ -7,11 +7,11 @@
/s390x/memop
/s390x/resets
/s390x/sync_regs_test
+/x86_64/cpuid_test
/x86_64/cr4_cpuid_sync_test
/x86_64/debug_regs
/x86_64/evmcs_test
/x86_64/emulator_error_test
-/x86_64/get_cpuid_test
/x86_64/get_msr_index_features
/x86_64/kvm_clock_test
/x86_64/kvm_pv_test
diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile
index 17342b575e85..290b1b0552d6 100644
--- a/tools/testing/selftests/kvm/Makefile
+++ b/tools/testing/selftests/kvm/Makefile
@@ -38,11 +38,11 @@ LIBKVM_x86_64 = lib/x86_64/apic.c lib/x86_64/processor.c lib/x86_64/vmx.c lib/x8
LIBKVM_aarch64 = lib/aarch64/processor.c lib/aarch64/ucall.c lib/aarch64/handlers.S lib/aarch64/spinlock.c lib/aarch64/gic.c lib/aarch64/gic_v3.c lib/aarch64/vgic.c
LIBKVM_s390x = lib/s390x/processor.c lib/s390x/ucall.c lib/s390x/diag318_test_handler.c
-TEST_GEN_PROGS_x86_64 = x86_64/cr4_cpuid_sync_test
+TEST_GEN_PROGS_x86_64 = x86_64/cpuid_test
+TEST_GEN_PROGS_x86_64 += x86_64/cr4_cpuid_sync_test
TEST_GEN_PROGS_x86_64 += x86_64/get_msr_index_features
TEST_GEN_PROGS_x86_64 += x86_64/evmcs_test
TEST_GEN_PROGS_x86_64 += x86_64/emulator_error_test
-TEST_GEN_PROGS_x86_64 += x86_64/get_cpuid_test
TEST_GEN_PROGS_x86_64 += x86_64/hyperv_clock
TEST_GEN_PROGS_x86_64 += x86_64/hyperv_cpuid
TEST_GEN_PROGS_x86_64 += x86_64/hyperv_features
diff --git a/tools/testing/selftests/kvm/include/x86_64/processor.h b/tools/testing/selftests/kvm/include/x86_64/processor.h
index 05e65ca1c30c..5a3a4809b49a 100644
--- a/tools/testing/selftests/kvm/include/x86_64/processor.h
+++ b/tools/testing/selftests/kvm/include/x86_64/processor.h
@@ -358,6 +358,8 @@ uint64_t kvm_get_feature_msr(uint64_t msr_index);
struct kvm_cpuid2 *kvm_get_supported_cpuid(void);
struct kvm_cpuid2 *vcpu_get_cpuid(struct kvm_vm *vm, uint32_t vcpuid);
+int __vcpu_set_cpuid(struct kvm_vm *vm, uint32_t vcpuid,
+ struct kvm_cpuid2 *cpuid);
void vcpu_set_cpuid(struct kvm_vm *vm, uint32_t vcpuid,
struct kvm_cpuid2 *cpuid);
@@ -401,6 +403,11 @@ uint64_t vm_get_page_table_entry(struct kvm_vm *vm, int vcpuid, uint64_t vaddr);
void vm_set_page_table_entry(struct kvm_vm *vm, int vcpuid, uint64_t vaddr,
uint64_t pte);
+/*
+ * get_cpuid() - find matching CPUID entry and return pointer to it.
+ */
+struct kvm_cpuid_entry2 *get_cpuid(struct kvm_cpuid2 *cpuid, uint32_t function,
+ uint32_t index);
/*
* set_cpuid() - overwrites a matching cpuid entry with the provided value.
* matches based on ent->function && ent->index. returns true
diff --git a/tools/testing/selftests/kvm/lib/x86_64/processor.c b/tools/testing/selftests/kvm/lib/x86_64/processor.c
index eef7b34756d5..6441b03c46a9 100644
--- a/tools/testing/selftests/kvm/lib/x86_64/processor.c
+++ b/tools/testing/selftests/kvm/lib/x86_64/processor.c
@@ -847,6 +847,17 @@ kvm_get_supported_cpuid_index(uint32_t function, uint32_t index)
return entry;
}
+
+int __vcpu_set_cpuid(struct kvm_vm *vm, uint32_t vcpuid,
+ struct kvm_cpuid2 *cpuid)
+{
+ struct vcpu *vcpu = vcpu_find(vm, vcpuid);
+
+ TEST_ASSERT(vcpu != NULL, "vcpu not found, vcpuid: %u", vcpuid);
+
+ return ioctl(vcpu->fd, KVM_SET_CPUID2, cpuid);
+}
+
/*
* VM VCPU CPUID Set
*
@@ -864,12 +875,9 @@ kvm_get_supported_cpuid_index(uint32_t function, uint32_t index)
void vcpu_set_cpuid(struct kvm_vm *vm,
uint32_t vcpuid, struct kvm_cpuid2 *cpuid)
{
- struct vcpu *vcpu = vcpu_find(vm, vcpuid);
int rc;
- TEST_ASSERT(vcpu != NULL, "vcpu not found, vcpuid: %u", vcpuid);
-
- rc = ioctl(vcpu->fd, KVM_SET_CPUID2, cpuid);
+ rc = __vcpu_set_cpuid(vm, vcpuid, cpuid);
TEST_ASSERT(rc == 0, "KVM_SET_CPUID2 failed, rc: %i errno: %i",
rc, errno);
@@ -1337,6 +1345,23 @@ void assert_on_unhandled_exception(struct kvm_vm *vm, uint32_t vcpuid)
}
}
+struct kvm_cpuid_entry2 *get_cpuid(struct kvm_cpuid2 *cpuid, uint32_t function,
+ uint32_t index)
+{
+ int i;
+
+ for (i = 0; i < cpuid->nent; i++) {
+ struct kvm_cpuid_entry2 *cur = &cpuid->entries[i];
+
+ if (cur->function == function && cur->index == index)
+ return cur;
+ }
+
+ TEST_FAIL("CPUID function 0x%x index 0x%x not found ", function, index);
+
+ return NULL;
+}
+
bool set_cpuid(struct kvm_cpuid2 *cpuid,
struct kvm_cpuid_entry2 *ent)
{
diff --git a/tools/testing/selftests/kvm/x86_64/cpuid_test.c b/tools/testing/selftests/kvm/x86_64/cpuid_test.c
new file mode 100644
index 000000000000..16d2465c5634
--- /dev/null
+++ b/tools/testing/selftests/kvm/x86_64/cpuid_test.c
@@ -0,0 +1,209 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2021, Red Hat Inc.
+ *
+ * Generic tests for KVM CPUID set/get ioctls
+ */
+#include <asm/kvm_para.h>
+#include <linux/kvm_para.h>
+#include <stdint.h>
+
+#include "test_util.h"
+#include "kvm_util.h"
+#include "processor.h"
+
+#define VCPU_ID 0
+
+/* CPUIDs known to differ */
+struct {
+ u32 function;
+ u32 index;
+} mangled_cpuids[] = {
+ /*
+ * These entries depend on the vCPU's XCR0 register and IA32_XSS MSR,
+ * which are not controlled for by this test.
+ */
+ {.function = 0xd, .index = 0},
+ {.function = 0xd, .index = 1},
+};
+
+static void test_guest_cpuids(struct kvm_cpuid2 *guest_cpuid)
+{
+ int i;
+ u32 eax, ebx, ecx, edx;
+
+ for (i = 0; i < guest_cpuid->nent; i++) {
+ eax = guest_cpuid->entries[i].function;
+ ecx = guest_cpuid->entries[i].index;
+
+ cpuid(&eax, &ebx, &ecx, &edx);
+
+ GUEST_ASSERT(eax == guest_cpuid->entries[i].eax &&
+ ebx == guest_cpuid->entries[i].ebx &&
+ ecx == guest_cpuid->entries[i].ecx &&
+ edx == guest_cpuid->entries[i].edx);
+ }
+
+}
+
+static void test_cpuid_40000000(struct kvm_cpuid2 *guest_cpuid)
+{
+ u32 eax = 0x40000000, ebx, ecx = 0, edx;
+
+ cpuid(&eax, &ebx, &ecx, &edx);
+
+ GUEST_ASSERT(eax == 0x40000001);
+}
+
+static void guest_main(struct kvm_cpuid2 *guest_cpuid)
+{
+ GUEST_SYNC(1);
+
+ test_guest_cpuids(guest_cpuid);
+
+ GUEST_SYNC(2);
+
+ test_cpuid_40000000(guest_cpuid);
+
+ GUEST_DONE();
+}
+
+static bool is_cpuid_mangled(struct kvm_cpuid_entry2 *entrie)
+{
+ int i;
+
+ for (i = 0; i < sizeof(mangled_cpuids); i++) {
+ if (mangled_cpuids[i].function == entrie->function &&
+ mangled_cpuids[i].index == entrie->index)
+ return true;
+ }
+
+ return false;
+}
+
+static void check_cpuid(struct kvm_cpuid2 *cpuid, struct kvm_cpuid_entry2 *entrie)
+{
+ int i;
+
+ for (i = 0; i < cpuid->nent; i++) {
+ if (cpuid->entries[i].function == entrie->function &&
+ cpuid->entries[i].index == entrie->index) {
+ if (is_cpuid_mangled(entrie))
+ return;
+
+ TEST_ASSERT(cpuid->entries[i].eax == entrie->eax &&
+ cpuid->entries[i].ebx == entrie->ebx &&
+ cpuid->entries[i].ecx == entrie->ecx &&
+ cpuid->entries[i].edx == entrie->edx,
+ "CPUID 0x%x.%x differ: 0x%x:0x%x:0x%x:0x%x vs 0x%x:0x%x:0x%x:0x%x",
+ entrie->function, entrie->index,
+ cpuid->entries[i].eax, cpuid->entries[i].ebx,
+ cpuid->entries[i].ecx, cpuid->entries[i].edx,
+ entrie->eax, entrie->ebx, entrie->ecx, entrie->edx);
+ return;
+ }
+ }
+
+ TEST_ASSERT(false, "CPUID 0x%x.%x not found", entrie->function, entrie->index);
+}
+
+static void compare_cpuids(struct kvm_cpuid2 *cpuid1, struct kvm_cpuid2 *cpuid2)
+{
+ int i;
+
+ for (i = 0; i < cpuid1->nent; i++)
+ check_cpuid(cpuid2, &cpuid1->entries[i]);
+
+ for (i = 0; i < cpuid2->nent; i++)
+ check_cpuid(cpuid1, &cpuid2->entries[i]);
+}
+
+static void run_vcpu(struct kvm_vm *vm, uint32_t vcpuid, int stage)
+{
+ struct ucall uc;
+
+ _vcpu_run(vm, vcpuid);
+
+ switch (get_ucall(vm, vcpuid, &uc)) {
+ case UCALL_SYNC:
+ TEST_ASSERT(!strcmp((const char *)uc.args[0], "hello") &&
+ uc.args[1] == stage + 1,
+ "Stage %d: Unexpected register values vmexit, got %lx",
+ stage + 1, (ulong)uc.args[1]);
+ return;
+ case UCALL_DONE:
+ return;
+ case UCALL_ABORT:
+ TEST_ASSERT(false, "%s at %s:%ld\n\tvalues: %#lx, %#lx", (const char *)uc.args[0],
+ __FILE__, uc.args[1], uc.args[2], uc.args[3]);
+ default:
+ TEST_ASSERT(false, "Unexpected exit: %s",
+ exit_reason_str(vcpu_state(vm, vcpuid)->exit_reason));
+ }
+}
+
+struct kvm_cpuid2 *vcpu_alloc_cpuid(struct kvm_vm *vm, vm_vaddr_t *p_gva, struct kvm_cpuid2 *cpuid)
+{
+ int size = sizeof(*cpuid) + cpuid->nent * sizeof(cpuid->entries[0]);
+ vm_vaddr_t gva = vm_vaddr_alloc(vm, size, KVM_UTIL_MIN_VADDR);
+ struct kvm_cpuid2 *guest_cpuids = addr_gva2hva(vm, gva);
+
+ memcpy(guest_cpuids, cpuid, size);
+
+ *p_gva = gva;
+ return guest_cpuids;
+}
+
+static void set_cpuid_after_run(struct kvm_vm *vm, struct kvm_cpuid2 *cpuid)
+{
+ struct kvm_cpuid_entry2 *ent;
+ int rc;
+ u32 eax, ebx, x;
+
+ /* Setting unmodified CPUID is allowed */
+ rc = __vcpu_set_cpuid(vm, VCPU_ID, cpuid);
+ TEST_ASSERT(!rc, "Setting unmodified CPUID after KVM_RUN failed: %d", rc);
+
+ /* Changing CPU features is forbidden */
+ ent = get_cpuid(cpuid, 0x7, 0);
+ ebx = ent->ebx;
+ ent->ebx--;
+ rc = __vcpu_set_cpuid(vm, VCPU_ID, cpuid);
+ TEST_ASSERT(rc, "Changing CPU features should fail");
+ ent->ebx = ebx;
+
+ /* Changing MAXPHYADDR is forbidden */
+ ent = get_cpuid(cpuid, 0x80000008, 0);
+ eax = ent->eax;
+ x = eax & 0xff;
+ ent->eax = (eax & ~0xffu) | (x - 1);
+ rc = __vcpu_set_cpuid(vm, VCPU_ID, cpuid);
+ TEST_ASSERT(rc, "Changing MAXPHYADDR should fail");
+ ent->eax = eax;
+}
+
+int main(void)
+{
+ struct kvm_cpuid2 *supp_cpuid, *cpuid2;
+ vm_vaddr_t cpuid_gva;
+ struct kvm_vm *vm;
+ int stage;
+
+ vm = vm_create_default(VCPU_ID, 0, guest_main);
+
+ supp_cpuid = kvm_get_supported_cpuid();
+ cpuid2 = vcpu_get_cpuid(vm, VCPU_ID);
+
+ compare_cpuids(supp_cpuid, cpuid2);
+
+ vcpu_alloc_cpuid(vm, &cpuid_gva, cpuid2);
+
+ vcpu_args_set(vm, VCPU_ID, 1, cpuid_gva);
+
+ for (stage = 0; stage < 3; stage++)
+ run_vcpu(vm, VCPU_ID, stage);
+
+ set_cpuid_after_run(vm, cpuid2);
+
+ kvm_vm_free(vm);
+}
diff --git a/tools/testing/selftests/kvm/x86_64/get_cpuid_test.c b/tools/testing/selftests/kvm/x86_64/get_cpuid_test.c
deleted file mode 100644
index a711f83749ea..000000000000
--- a/tools/testing/selftests/kvm/x86_64/get_cpuid_test.c
+++ /dev/null
@@ -1,179 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Copyright (C) 2021, Red Hat Inc.
- *
- * Generic tests for KVM CPUID set/get ioctls
- */
-#include <asm/kvm_para.h>
-#include <linux/kvm_para.h>
-#include <stdint.h>
-
-#include "test_util.h"
-#include "kvm_util.h"
-#include "processor.h"
-
-#define VCPU_ID 0
-
-/* CPUIDs known to differ */
-struct {
- u32 function;
- u32 index;
-} mangled_cpuids[] = {
- /*
- * These entries depend on the vCPU's XCR0 register and IA32_XSS MSR,
- * which are not controlled for by this test.
- */
- {.function = 0xd, .index = 0},
- {.function = 0xd, .index = 1},
-};
-
-static void test_guest_cpuids(struct kvm_cpuid2 *guest_cpuid)
-{
- int i;
- u32 eax, ebx, ecx, edx;
-
- for (i = 0; i < guest_cpuid->nent; i++) {
- eax = guest_cpuid->entries[i].function;
- ecx = guest_cpuid->entries[i].index;
-
- cpuid(&eax, &ebx, &ecx, &edx);
-
- GUEST_ASSERT(eax == guest_cpuid->entries[i].eax &&
- ebx == guest_cpuid->entries[i].ebx &&
- ecx == guest_cpuid->entries[i].ecx &&
- edx == guest_cpuid->entries[i].edx);
- }
-
-}
-
-static void test_cpuid_40000000(struct kvm_cpuid2 *guest_cpuid)
-{
- u32 eax = 0x40000000, ebx, ecx = 0, edx;
-
- cpuid(&eax, &ebx, &ecx, &edx);
-
- GUEST_ASSERT(eax == 0x40000001);
-}
-
-static void guest_main(struct kvm_cpuid2 *guest_cpuid)
-{
- GUEST_SYNC(1);
-
- test_guest_cpuids(guest_cpuid);
-
- GUEST_SYNC(2);
-
- test_cpuid_40000000(guest_cpuid);
-
- GUEST_DONE();
-}
-
-static bool is_cpuid_mangled(struct kvm_cpuid_entry2 *entrie)
-{
- int i;
-
- for (i = 0; i < sizeof(mangled_cpuids); i++) {
- if (mangled_cpuids[i].function == entrie->function &&
- mangled_cpuids[i].index == entrie->index)
- return true;
- }
-
- return false;
-}
-
-static void check_cpuid(struct kvm_cpuid2 *cpuid, struct kvm_cpuid_entry2 *entrie)
-{
- int i;
-
- for (i = 0; i < cpuid->nent; i++) {
- if (cpuid->entries[i].function == entrie->function &&
- cpuid->entries[i].index == entrie->index) {
- if (is_cpuid_mangled(entrie))
- return;
-
- TEST_ASSERT(cpuid->entries[i].eax == entrie->eax &&
- cpuid->entries[i].ebx == entrie->ebx &&
- cpuid->entries[i].ecx == entrie->ecx &&
- cpuid->entries[i].edx == entrie->edx,
- "CPUID 0x%x.%x differ: 0x%x:0x%x:0x%x:0x%x vs 0x%x:0x%x:0x%x:0x%x",
- entrie->function, entrie->index,
- cpuid->entries[i].eax, cpuid->entries[i].ebx,
- cpuid->entries[i].ecx, cpuid->entries[i].edx,
- entrie->eax, entrie->ebx, entrie->ecx, entrie->edx);
- return;
- }
- }
-
- TEST_ASSERT(false, "CPUID 0x%x.%x not found", entrie->function, entrie->index);
-}
-
-static void compare_cpuids(struct kvm_cpuid2 *cpuid1, struct kvm_cpuid2 *cpuid2)
-{
- int i;
-
- for (i = 0; i < cpuid1->nent; i++)
- check_cpuid(cpuid2, &cpuid1->entries[i]);
-
- for (i = 0; i < cpuid2->nent; i++)
- check_cpuid(cpuid1, &cpuid2->entries[i]);
-}
-
-static void run_vcpu(struct kvm_vm *vm, uint32_t vcpuid, int stage)
-{
- struct ucall uc;
-
- _vcpu_run(vm, vcpuid);
-
- switch (get_ucall(vm, vcpuid, &uc)) {
- case UCALL_SYNC:
- TEST_ASSERT(!strcmp((const char *)uc.args[0], "hello") &&
- uc.args[1] == stage + 1,
- "Stage %d: Unexpected register values vmexit, got %lx",
- stage + 1, (ulong)uc.args[1]);
- return;
- case UCALL_DONE:
- return;
- case UCALL_ABORT:
- TEST_ASSERT(false, "%s at %s:%ld\n\tvalues: %#lx, %#lx", (const char *)uc.args[0],
- __FILE__, uc.args[1], uc.args[2], uc.args[3]);
- default:
- TEST_ASSERT(false, "Unexpected exit: %s",
- exit_reason_str(vcpu_state(vm, vcpuid)->exit_reason));
- }
-}
-
-struct kvm_cpuid2 *vcpu_alloc_cpuid(struct kvm_vm *vm, vm_vaddr_t *p_gva, struct kvm_cpuid2 *cpuid)
-{
- int size = sizeof(*cpuid) + cpuid->nent * sizeof(cpuid->entries[0]);
- vm_vaddr_t gva = vm_vaddr_alloc(vm, size, KVM_UTIL_MIN_VADDR);
- struct kvm_cpuid2 *guest_cpuids = addr_gva2hva(vm, gva);
-
- memcpy(guest_cpuids, cpuid, size);
-
- *p_gva = gva;
- return guest_cpuids;
-}
-
-int main(void)
-{
- struct kvm_cpuid2 *supp_cpuid, *cpuid2;
- vm_vaddr_t cpuid_gva;
- struct kvm_vm *vm;
- int stage;
-
- vm = vm_create_default(VCPU_ID, 0, guest_main);
-
- supp_cpuid = kvm_get_supported_cpuid();
- cpuid2 = vcpu_get_cpuid(vm, VCPU_ID);
-
- compare_cpuids(supp_cpuid, cpuid2);
-
- vcpu_alloc_cpuid(vm, &cpuid_gva, cpuid2);
-
- vcpu_args_set(vm, VCPU_ID, 1, cpuid_gva);
-
- for (stage = 0; stage < 3; stage++)
- run_vcpu(vm, VCPU_ID, stage);
-
- kvm_vm_free(vm);
-}
diff --git a/tools/testing/selftests/powerpc/security/spectre_v2.c b/tools/testing/selftests/powerpc/security/spectre_v2.c
index adc2b7294e5f..83647b8277e7 100644
--- a/tools/testing/selftests/powerpc/security/spectre_v2.c
+++ b/tools/testing/selftests/powerpc/security/spectre_v2.c
@@ -193,7 +193,7 @@ int spectre_v2_test(void)
* We are not vulnerable and reporting otherwise, so
* missing such a mismatch is safe.
*/
- if (state == VULNERABLE)
+ if (miss_percent > 95)
return 4;
return 1;
diff --git a/tools/testing/selftests/powerpc/signal/.gitignore b/tools/testing/selftests/powerpc/signal/.gitignore
index ce3375cd8e73..8f6c816099a4 100644
--- a/tools/testing/selftests/powerpc/signal/.gitignore
+++ b/tools/testing/selftests/powerpc/signal/.gitignore
@@ -4,3 +4,4 @@ signal_tm
sigfuz
sigreturn_vdso
sig_sc_double_restart
+sigreturn_kernel
diff --git a/tools/testing/selftests/powerpc/signal/Makefile b/tools/testing/selftests/powerpc/signal/Makefile
index d6ae54663aed..84e201572466 100644
--- a/tools/testing/selftests/powerpc/signal/Makefile
+++ b/tools/testing/selftests/powerpc/signal/Makefile
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
TEST_GEN_PROGS := signal signal_tm sigfuz sigreturn_vdso sig_sc_double_restart
+TEST_GEN_PROGS += sigreturn_kernel
CFLAGS += -maltivec
$(OUTPUT)/signal_tm: CFLAGS += -mhtm
diff --git a/tools/testing/selftests/powerpc/signal/sigreturn_kernel.c b/tools/testing/selftests/powerpc/signal/sigreturn_kernel.c
new file mode 100644
index 000000000000..0a1b6e591eee
--- /dev/null
+++ b/tools/testing/selftests/powerpc/signal/sigreturn_kernel.c
@@ -0,0 +1,132 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Test that we can't sigreturn to kernel addresses, or to kernel mode.
+ */
+
+#define _GNU_SOURCE
+
+#include <stdio.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+#include "utils.h"
+
+#define MSR_PR (1ul << 14)
+
+static volatile unsigned long long sigreturn_addr;
+static volatile unsigned long long sigreturn_msr_mask;
+
+static void sigusr1_handler(int signo, siginfo_t *si, void *uc_ptr)
+{
+ ucontext_t *uc = (ucontext_t *)uc_ptr;
+
+ if (sigreturn_addr)
+ UCONTEXT_NIA(uc) = sigreturn_addr;
+
+ if (sigreturn_msr_mask)
+ UCONTEXT_MSR(uc) &= sigreturn_msr_mask;
+}
+
+static pid_t fork_child(void)
+{
+ pid_t pid;
+
+ pid = fork();
+ if (pid == 0) {
+ raise(SIGUSR1);
+ exit(0);
+ }
+
+ return pid;
+}
+
+static int expect_segv(pid_t pid)
+{
+ int child_ret;
+
+ waitpid(pid, &child_ret, 0);
+ FAIL_IF(WIFEXITED(child_ret));
+ FAIL_IF(!WIFSIGNALED(child_ret));
+ FAIL_IF(WTERMSIG(child_ret) != 11);
+
+ return 0;
+}
+
+int test_sigreturn_kernel(void)
+{
+ struct sigaction act;
+ int child_ret, i;
+ pid_t pid;
+
+ act.sa_sigaction = sigusr1_handler;
+ act.sa_flags = SA_SIGINFO;
+ sigemptyset(&act.sa_mask);
+
+ FAIL_IF(sigaction(SIGUSR1, &act, NULL));
+
+ for (i = 0; i < 2; i++) {
+ // Return to kernel
+ sigreturn_addr = 0xcull << 60;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return to kernel virtual
+ sigreturn_addr = 0xc008ull << 48;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return out of range
+ sigreturn_addr = 0xc010ull << 48;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return to no-man's land, just below PAGE_OFFSET
+ sigreturn_addr = (0xcull << 60) - (64 * 1024);
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return to no-man's land, above TASK_SIZE_4PB
+ sigreturn_addr = 0x1ull << 52;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return to 0xd space
+ sigreturn_addr = 0xdull << 60;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return to 0xe space
+ sigreturn_addr = 0xeull << 60;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return to 0xf space
+ sigreturn_addr = 0xfull << 60;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Attempt to set PR=0 for 2nd loop (should be blocked by kernel)
+ sigreturn_msr_mask = ~MSR_PR;
+ }
+
+ printf("All children killed as expected\n");
+
+ // Don't change address, just MSR, should return to user as normal
+ sigreturn_addr = 0;
+ sigreturn_msr_mask = ~MSR_PR;
+ pid = fork_child();
+ waitpid(pid, &child_ret, 0);
+ FAIL_IF(!WIFEXITED(child_ret));
+ FAIL_IF(WIFSIGNALED(child_ret));
+ FAIL_IF(WEXITSTATUS(child_ret) != 0);
+
+ return 0;
+}
+
+int main(void)
+{
+ return test_harness(test_sigreturn_kernel, "sigreturn_kernel");
+}
diff --git a/tools/testing/selftests/vm/charge_reserved_hugetlb.sh b/tools/testing/selftests/vm/charge_reserved_hugetlb.sh
index fe8fcfb334e0..a5cb4b09a46c 100644
--- a/tools/testing/selftests/vm/charge_reserved_hugetlb.sh
+++ b/tools/testing/selftests/vm/charge_reserved_hugetlb.sh
@@ -24,19 +24,23 @@ if [[ "$1" == "-cgroup-v2" ]]; then
reservation_usage_file=rsvd.current
fi
-cgroup_path=/dev/cgroup/memory
-if [[ ! -e $cgroup_path ]]; then
- mkdir -p $cgroup_path
- if [[ $cgroup2 ]]; then
+if [[ $cgroup2 ]]; then
+ cgroup_path=$(mount -t cgroup2 | head -1 | awk -e '{print $3}')
+ if [[ -z "$cgroup_path" ]]; then
+ cgroup_path=/dev/cgroup/memory
mount -t cgroup2 none $cgroup_path
- else
+ do_umount=1
+ fi
+ echo "+hugetlb" >$cgroup_path/cgroup.subtree_control
+else
+ cgroup_path=$(mount -t cgroup | grep ",hugetlb" | awk -e '{print $3}')
+ if [[ -z "$cgroup_path" ]]; then
+ cgroup_path=/dev/cgroup/memory
mount -t cgroup memory,hugetlb $cgroup_path
+ do_umount=1
fi
fi
-
-if [[ $cgroup2 ]]; then
- echo "+hugetlb" >/dev/cgroup/memory/cgroup.subtree_control
-fi
+export cgroup_path
function cleanup() {
if [[ $cgroup2 ]]; then
@@ -108,7 +112,7 @@ function setup_cgroup() {
function wait_for_hugetlb_memory_to_get_depleted() {
local cgroup="$1"
- local path="/dev/cgroup/memory/$cgroup/hugetlb.${MB}MB.$reservation_usage_file"
+ local path="$cgroup_path/$cgroup/hugetlb.${MB}MB.$reservation_usage_file"
# Wait for hugetlbfs memory to get depleted.
while [ $(cat $path) != 0 ]; do
echo Waiting for hugetlb memory to get depleted.
@@ -121,7 +125,7 @@ function wait_for_hugetlb_memory_to_get_reserved() {
local cgroup="$1"
local size="$2"
- local path="/dev/cgroup/memory/$cgroup/hugetlb.${MB}MB.$reservation_usage_file"
+ local path="$cgroup_path/$cgroup/hugetlb.${MB}MB.$reservation_usage_file"
# Wait for hugetlbfs memory to get written.
while [ $(cat $path) != $size ]; do
echo Waiting for hugetlb memory reservation to reach size $size.
@@ -134,7 +138,7 @@ function wait_for_hugetlb_memory_to_get_written() {
local cgroup="$1"
local size="$2"
- local path="/dev/cgroup/memory/$cgroup/hugetlb.${MB}MB.$fault_usage_file"
+ local path="$cgroup_path/$cgroup/hugetlb.${MB}MB.$fault_usage_file"
# Wait for hugetlbfs memory to get written.
while [ $(cat $path) != $size ]; do
echo Waiting for hugetlb memory to reach size $size.
@@ -574,5 +578,7 @@ for populate in "" "-o"; do
done # populate
done # method
-umount $cgroup_path
-rmdir $cgroup_path
+if [[ $do_umount ]]; then
+ umount $cgroup_path
+ rmdir $cgroup_path
+fi
diff --git a/tools/testing/selftests/vm/hmm-tests.c b/tools/testing/selftests/vm/hmm-tests.c
index 864f126ffd78..203323967b50 100644
--- a/tools/testing/selftests/vm/hmm-tests.c
+++ b/tools/testing/selftests/vm/hmm-tests.c
@@ -1248,6 +1248,48 @@ TEST_F(hmm, anon_teardown)
}
}
+/*
+ * Test memory snapshot without faulting in pages accessed by the device.
+ */
+TEST_F(hmm, mixedmap)
+{
+ struct hmm_buffer *buffer;
+ unsigned long npages;
+ unsigned long size;
+ unsigned char *m;
+ int ret;
+
+ npages = 1;
+ size = npages << self->page_shift;
+
+ buffer = malloc(sizeof(*buffer));
+ ASSERT_NE(buffer, NULL);
+
+ buffer->fd = -1;
+ buffer->size = size;
+ buffer->mirror = malloc(npages);
+ ASSERT_NE(buffer->mirror, NULL);
+
+
+ /* Reserve a range of addresses. */
+ buffer->ptr = mmap(NULL, size,
+ PROT_READ | PROT_WRITE,
+ MAP_PRIVATE,
+ self->fd, 0);
+ ASSERT_NE(buffer->ptr, MAP_FAILED);
+
+ /* Simulate a device snapshotting CPU pagetables. */
+ ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_SNAPSHOT, buffer, npages);
+ ASSERT_EQ(ret, 0);
+ ASSERT_EQ(buffer->cpages, npages);
+
+ /* Check what the device saw. */
+ m = buffer->mirror;
+ ASSERT_EQ(m[0], HMM_DMIRROR_PROT_READ);
+
+ hmm_buffer_free(buffer);
+}
+
/*
* Test memory snapshot without faulting in pages accessed by the device.
*/
diff --git a/tools/testing/selftests/vm/hugetlb_reparenting_test.sh b/tools/testing/selftests/vm/hugetlb_reparenting_test.sh
index 4a9a3afe9fd4..bf2d2a684edf 100644
--- a/tools/testing/selftests/vm/hugetlb_reparenting_test.sh
+++ b/tools/testing/selftests/vm/hugetlb_reparenting_test.sh
@@ -18,19 +18,24 @@ if [[ "$1" == "-cgroup-v2" ]]; then
usage_file=current
fi
-CGROUP_ROOT='/dev/cgroup/memory'
-MNT='/mnt/huge/'
-if [[ ! -e $CGROUP_ROOT ]]; then
- mkdir -p $CGROUP_ROOT
- if [[ $cgroup2 ]]; then
+if [[ $cgroup2 ]]; then
+ CGROUP_ROOT=$(mount -t cgroup2 | head -1 | awk -e '{print $3}')
+ if [[ -z "$CGROUP_ROOT" ]]; then
+ CGROUP_ROOT=/dev/cgroup/memory
mount -t cgroup2 none $CGROUP_ROOT
- sleep 1
- echo "+hugetlb +memory" >$CGROUP_ROOT/cgroup.subtree_control
- else
+ do_umount=1
+ fi
+ echo "+hugetlb +memory" >$CGROUP_ROOT/cgroup.subtree_control
+else
+ CGROUP_ROOT=$(mount -t cgroup | grep ",hugetlb" | awk -e '{print $3}')
+ if [[ -z "$CGROUP_ROOT" ]]; then
+ CGROUP_ROOT=/dev/cgroup/memory
mount -t cgroup memory,hugetlb $CGROUP_ROOT
+ do_umount=1
fi
fi
+MNT='/mnt/huge/'
function get_machine_hugepage_size() {
hpz=$(grep -i hugepagesize /proc/meminfo)
diff --git a/tools/testing/selftests/vm/write_hugetlb_memory.sh b/tools/testing/selftests/vm/write_hugetlb_memory.sh
index d3d0d108924d..70a02301f4c2 100644
--- a/tools/testing/selftests/vm/write_hugetlb_memory.sh
+++ b/tools/testing/selftests/vm/write_hugetlb_memory.sh
@@ -14,7 +14,7 @@ want_sleep=$8
reserve=$9
echo "Putting task in cgroup '$cgroup'"
-echo $$ > /dev/cgroup/memory/"$cgroup"/cgroup.procs
+echo $$ > ${cgroup_path:-/dev/cgroup/memory}/"$cgroup"/cgroup.procs
echo "Method is $method"
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 72c4e6b39389..5bd62342c482 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -3153,6 +3153,7 @@ update_halt_poll_stats(struct kvm_vcpu *vcpu, u64 poll_ns, bool waited)
*/
void kvm_vcpu_block(struct kvm_vcpu *vcpu)
{
+ bool halt_poll_allowed = !kvm_arch_no_poll(vcpu);
ktime_t start, cur, poll_end;
bool waited = false;
u64 block_ns;
@@ -3160,7 +3161,7 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu)
kvm_arch_vcpu_blocking(vcpu);
start = cur = poll_end = ktime_get();
- if (vcpu->halt_poll_ns && !kvm_arch_no_poll(vcpu)) {
+ if (vcpu->halt_poll_ns && halt_poll_allowed) {
ktime_t stop = ktime_add_ns(ktime_get(), vcpu->halt_poll_ns);
++vcpu->stat.generic.halt_attempted_poll;
@@ -3215,7 +3216,7 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu)
update_halt_poll_stats(
vcpu, ktime_to_ns(ktime_sub(poll_end, start)), waited);
- if (!kvm_arch_no_poll(vcpu)) {
+ if (halt_poll_allowed) {
if (!vcpu_valid_wakeup(vcpu)) {
shrink_halt_poll_ns(vcpu);
} else if (vcpu->kvm->max_halt_poll_ns) {
^ permalink raw reply related [relevance 1%]
* Linux 5.10.94
@ 2022-01-27 13:32 1% Greg Kroah-Hartman
2022-01-27 13:32 1% ` Greg Kroah-Hartman
0 siblings, 1 reply; 200+ results
From: Greg Kroah-Hartman @ 2022-01-27 13:32 UTC (permalink / raw)
To: linux-kernel, akpm, torvalds, stable; +Cc: lwn, jslaby, Greg Kroah-Hartman
I'm announcing the release of the 5.10.94 kernel.
All users of the 5.10 kernel series must upgrade.
The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/ABI/testing/sysfs-bus-iio-lptimer-stm32 | 62
Documentation/admin-guide/hw-vuln/spectre.rst | 2
Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml | 5
Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml | 6
Documentation/devicetree/bindings/thermal/thermal-zones.yaml | 9
Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml | 5
Documentation/driver-api/dmaengine/dmatest.rst | 7
Documentation/driver-api/firewire.rst | 4
Documentation/firmware-guide/acpi/dsd/data-node-references.rst | 10
Makefile | 2
arch/arm/Kconfig.debug | 14
arch/arm/boot/compressed/efi-header.S | 22
arch/arm/boot/compressed/head.S | 3
arch/arm/boot/dts/armada-38x.dtsi | 4
arch/arm/boot/dts/gemini-nas4220b.dts | 2
arch/arm/boot/dts/omap3-n900.dts | 50
arch/arm/boot/dts/stm32f429-disco.dts | 2
arch/arm/include/debug/imx-uart.h | 18
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 2
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 3
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 14
arch/arm64/boot/dts/marvell/cn9130.dtsi | 15
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 2
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 9
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2
arch/arm64/boot/dts/qcom/msm8916.dtsi | 4
arch/arm64/boot/dts/qcom/msm8996.dtsi | 3
arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 27
arch/arm64/boot/dts/renesas/cat875.dtsi | 1
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2
arch/arm64/boot/dts/ti/k3-j7200.dtsi | 6
arch/arm64/boot/dts/ti/k3-j721e.dtsi | 6
arch/arm64/lib/clear_page.S | 14
arch/arm64/lib/copy_page.S | 4
arch/mips/Kconfig | 6
arch/mips/bcm63xx/clk.c | 6
arch/mips/cavium-octeon/octeon-platform.c | 2
arch/mips/cavium-octeon/octeon-usb.c | 1
arch/mips/include/asm/mach-loongson64/kernel-entry-init.h | 4
arch/mips/include/asm/octeon/cvmx-bootinfo.h | 4
arch/mips/lantiq/clk.c | 6
arch/openrisc/include/asm/syscalls.h | 2
arch/openrisc/kernel/entry.S | 5
arch/parisc/include/asm/special_insns.h | 44
arch/parisc/kernel/traps.c | 2
arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi | 2
arch/powerpc/include/asm/cpu_setup_power.h | 12
arch/powerpc/include/asm/hw_irq.h | 51
arch/powerpc/include/asm/reg.h | 1
arch/powerpc/kernel/btext.c | 4
arch/powerpc/kernel/cpu_setup_power.S | 252 --
arch/powerpc/kernel/cpu_setup_power.c | 272 ++
arch/powerpc/kernel/cputable.c | 12
arch/powerpc/kernel/dt_cpu_ftrs.c | 1
arch/powerpc/kernel/fadump.c | 8
arch/powerpc/kernel/head_40x.S | 9
arch/powerpc/kernel/prom_init.c | 2
arch/powerpc/kernel/smp.c | 42
arch/powerpc/kernel/traps.c | 31
arch/powerpc/kernel/watchdog.c | 41
arch/powerpc/kvm/book3s_hv.c | 8
arch/powerpc/kvm/book3s_hv_nested.c | 2
arch/powerpc/mm/book3s64/radix_pgtable.c | 4
arch/powerpc/mm/kasan/book3s_32.c | 3
arch/powerpc/mm/pgtable_64.c | 14
arch/powerpc/perf/core-book3s.c | 97 -
arch/powerpc/perf/core-fsl-emb.c | 25
arch/powerpc/perf/isa207-common.c | 8
arch/powerpc/platforms/cell/iommu.c | 1
arch/powerpc/platforms/cell/pervasive.c | 1
arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 1
arch/powerpc/platforms/powermac/low_i2c.c | 3
arch/powerpc/platforms/powernv/opal-lpc.c | 1
arch/powerpc/sysdev/xive/spapr.c | 3
arch/s390/mm/pgalloc.c | 4
arch/um/drivers/virtio_uml.c | 4
arch/um/include/asm/delay.h | 4
arch/um/include/shared/registers.h | 4
arch/um/os-Linux/registers.c | 4
arch/um/os-Linux/start_up.c | 2
arch/x86/boot/compressed/Makefile | 7
arch/x86/configs/i386_defconfig | 1
arch/x86/configs/x86_64_defconfig | 1
arch/x86/include/asm/realmode.h | 1
arch/x86/include/asm/uaccess.h | 5
arch/x86/kernel/cpu/mce/core.c | 42
arch/x86/kernel/cpu/mce/inject.c | 2
arch/x86/kernel/early-quirks.c | 10
arch/x86/kernel/reboot.c | 12
arch/x86/kernel/tsc.c | 1
arch/x86/kvm/vmx/posted_intr.c | 16
arch/x86/realmode/init.c | 26
arch/x86/um/syscalls_64.c | 3
block/blk-flush.c | 4
block/blk-pm.c | 22
crypto/jitterentropy.c | 3
drivers/acpi/acpica/exfield.c | 7
drivers/acpi/acpica/exoparg1.c | 3
drivers/acpi/acpica/hwesleep.c | 4
drivers/acpi/acpica/hwsleep.c | 4
drivers/acpi/acpica/hwxfsleep.c | 2
drivers/acpi/acpica/utdelete.c | 1
drivers/acpi/battery.c | 22
drivers/acpi/bus.c | 4
drivers/acpi/ec.c | 57
drivers/acpi/internal.h | 2
drivers/acpi/scan.c | 13
drivers/acpi/x86/utils.c | 116 -
drivers/android/binder.c | 4
drivers/base/core.c | 3
drivers/base/power/runtime.c | 41
drivers/base/property.c | 4
drivers/base/regmap/regmap.c | 1
drivers/base/swnode.c | 2
drivers/block/floppy.c | 6
drivers/bluetooth/btmtksdio.c | 2
drivers/bluetooth/hci_bcm.c | 7
drivers/bluetooth/hci_qca.c | 5
drivers/bluetooth/hci_vhci.c | 2
drivers/char/mwave/3780i.h | 2
drivers/char/random.c | 19
drivers/char/tpm/tpm_tis_core.c | 14
drivers/clk/bcm/clk-bcm2835.c | 13
drivers/clk/clk-bm1880.c | 20
drivers/clk/clk-si5341.c | 2
drivers/clk/clk-stm32f4.c | 4
drivers/clk/clk.c | 18
drivers/clk/imx/clk-imx8mn.c | 6
drivers/clk/meson/gxbb.c | 44
drivers/counter/Kconfig | 2
drivers/counter/stm32-lptimer-cnt.c | 297 ---
drivers/cpufreq/cpufreq.c | 4
drivers/crypto/caam/caamalg_qi2.c | 2
drivers/crypto/omap-aes.c | 2
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 45
drivers/crypto/qat/qat_common/adf_vf2pf_msg.c | 4
drivers/crypto/qce/sha.c | 2
drivers/crypto/qce/skcipher.c | 2
drivers/crypto/stm32/stm32-crc32.c | 4
drivers/crypto/stm32/stm32-cryp.c | 938 +++-------
drivers/crypto/stm32/stm32-hash.c | 6
drivers/dma-buf/dma-fence-array.c | 6
drivers/dma/at_xdmac.c | 57
drivers/dma/mmp_pdma.c | 6
drivers/dma/pxa_dma.c | 7
drivers/dma/stm32-mdma.c | 2
drivers/dma/uniphier-xdmac.c | 5
drivers/edac/synopsys_edac.c | 3
drivers/firmware/google/Kconfig | 6
drivers/gpio/gpio-aspeed.c | 52
drivers/gpio/gpiolib-acpi.c | 15
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 6
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 13
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3
drivers/gpu/drm/amd/display/dc/core/dc.c | 3
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 6
drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 14
drivers/gpu/drm/bridge/display-connector.c | 2
drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 40
drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 10
drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 4
drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 9
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 12
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1
drivers/gpu/drm/drm_drv.c | 9
drivers/gpu/drm/drm_panel_orientation_quirks.c | 6
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 6
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 1
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4
drivers/gpu/drm/lima/lima_device.c | 1
drivers/gpu/drm/mediatek/mtk_mipi_tx.c | 2
drivers/gpu/drm/msm/Kconfig | 1
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4
drivers/gpu/drm/nouveau/dispnv04/disp.c | 4
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 37
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 10
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 8
drivers/gpu/drm/radeon/radeon_kms.c | 42
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 20
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 82
drivers/gpu/drm/tegra/vic.c | 7
drivers/gpu/drm/ttm/ttm_bo.c | 2
drivers/gpu/drm/vboxvideo/vbox_main.c | 4
drivers/gpu/drm/vc4/vc4_hdmi.c | 24
drivers/gpu/host1x/dev.c | 15
drivers/hid/hid-apple.c | 2
drivers/hid/hid-input.c | 6
drivers/hid/hid-uclogic-params.c | 31
drivers/hid/hid-vivaldi.c | 34
drivers/hid/uhid.c | 29
drivers/hid/wacom_wac.c | 39
drivers/hsi/hsi_core.c | 1
drivers/hwmon/mr75203.c | 2
drivers/i2c/busses/i2c-designware-pcidrv.c | 8
drivers/i2c/busses/i2c-i801.c | 15
drivers/i2c/busses/i2c-mpc.c | 23
drivers/iio/adc/ti-adc081c.c | 22
drivers/infiniband/core/cma.c | 12
drivers/infiniband/core/device.c | 3
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1
drivers/infiniband/hw/cxgb4/qp.c | 1
drivers/infiniband/hw/hns/hns_roce_main.c | 5
drivers/infiniband/hw/qedr/verbs.c | 2
drivers/infiniband/sw/rxe/rxe_opcode.c | 2
drivers/iommu/amd/init.c | 48
drivers/iommu/io-pgtable-arm-v7s.c | 6
drivers/iommu/io-pgtable-arm.c | 9
drivers/iommu/iova.c | 3
drivers/irqchip/irq-gic-v3.c | 16
drivers/md/dm.c | 4
drivers/md/persistent-data/dm-btree.c | 8
drivers/md/persistent-data/dm-space-map-common.c | 5
drivers/media/Kconfig | 8
drivers/media/cec/core/cec-pin.c | 31
drivers/media/common/saa7146/saa7146_fops.c | 2
drivers/media/common/videobuf2/videobuf2-dma-contig.c | 8
drivers/media/dvb-core/dmxdev.c | 18
drivers/media/dvb-frontends/dib8000.c | 4
drivers/media/pci/b2c2/flexcop-pci.c | 3
drivers/media/pci/saa7146/hexium_gemini.c | 7
drivers/media/pci/saa7146/hexium_orion.c | 8
drivers/media/pci/saa7146/mxb.c | 8
drivers/media/platform/aspeed-video.c | 14
drivers/media/platform/coda/coda-common.c | 8
drivers/media/platform/coda/coda-jpeg.c | 21
drivers/media/platform/coda/imx-vdoa.c | 6
drivers/media/platform/imx-pxp.c | 4
drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 2
drivers/media/platform/qcom/venus/core.c | 39
drivers/media/platform/qcom/venus/core.h | 2
drivers/media/platform/qcom/venus/pm_helpers.c | 94 -
drivers/media/platform/qcom/venus/pm_helpers.h | 7
drivers/media/platform/rcar-vin/rcar-csi2.c | 18
drivers/media/platform/rcar-vin/rcar-v4l2.c | 15
drivers/media/radio/si470x/radio-si470x-i2c.c | 3
drivers/media/rc/igorplugusb.c | 4
drivers/media/rc/mceusb.c | 8
drivers/media/rc/redrat3.c | 22
drivers/media/tuners/msi001.c | 7
drivers/media/tuners/si2157.c | 2
drivers/media/usb/b2c2/flexcop-usb.c | 10
drivers/media/usb/b2c2/flexcop-usb.h | 12
drivers/media/usb/cpia2/cpia2_usb.c | 4
drivers/media/usb/dvb-usb/dib0700_core.c | 2
drivers/media/usb/dvb-usb/dw2102.c | 338 ++-
drivers/media/usb/dvb-usb/m920x.c | 12
drivers/media/usb/em28xx/em28xx-cards.c | 18
drivers/media/usb/em28xx/em28xx-core.c | 4
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 8
drivers/media/usb/s2255/s2255drv.c | 4
drivers/media/usb/stk1160/stk1160-core.c | 4
drivers/media/usb/uvc/uvcvideo.h | 2
drivers/media/v4l2-core/v4l2-ioctl.c | 4
drivers/memory/renesas-rpc-if.c | 2
drivers/mfd/atmel-flexcom.c | 11
drivers/misc/lattice-ecp3-config.c | 12
drivers/misc/lkdtm/Makefile | 2
drivers/mmc/core/sdio.c | 4
drivers/mmc/host/meson-mx-sdhc-mmc.c | 5
drivers/mmc/host/meson-mx-sdio.c | 5
drivers/mtd/hyperbus/rpc-if.c | 8
drivers/mtd/mtdpart.c | 2
drivers/mtd/nand/bbt.c | 2
drivers/mtd/nand/raw/davinci_nand.c | 16
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 37
drivers/net/bonding/bond_main.c | 36
drivers/net/can/softing/softing_cs.c | 2
drivers/net/can/softing/softing_fw.c | 11
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 6
drivers/net/can/xilinx_can.c | 7
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 10
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c | 3
drivers/net/ethernet/cortina/gemini.c | 9
drivers/net/ethernet/freescale/fman/mac.c | 21
drivers/net/ethernet/freescale/xgmac_mdio.c | 28
drivers/net/ethernet/i825xx/sni_82596.c | 3
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 36
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c | 4
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 10
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 7
drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c | 6
drivers/net/ethernet/mellanox/mlxsw/cmd.h | 12
drivers/net/ethernet/mellanox/mlxsw/pci.c | 7
drivers/net/ethernet/mscc/ocelot_flower.c | 15
drivers/net/ethernet/rocker/rocker_ofdpa.c | 3
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 135 -
drivers/net/phy/marvell.c | 6
drivers/net/phy/mdio_bus.c | 2
drivers/net/phy/phy-core.c | 2
drivers/net/phy/sfp.c | 25
drivers/net/ppp/ppp_generic.c | 7
drivers/net/usb/mcs7830.c | 12
drivers/net/wireless/ath/ar5523/ar5523.c | 4
drivers/net/wireless/ath/ath10k/core.c | 19
drivers/net/wireless/ath/ath10k/htt_tx.c | 3
drivers/net/wireless/ath/ath10k/hw.h | 3
drivers/net/wireless/ath/ath10k/txrx.c | 2
drivers/net/wireless/ath/ath11k/ahb.c | 28
drivers/net/wireless/ath/ath11k/core.h | 2
drivers/net/wireless/ath/ath11k/dp.h | 3
drivers/net/wireless/ath/ath11k/dp_tx.c | 2
drivers/net/wireless/ath/ath11k/hal.c | 22
drivers/net/wireless/ath/ath11k/hal.h | 2
drivers/net/wireless/ath/ath11k/hw.c | 2
drivers/net/wireless/ath/ath11k/mac.c | 52
drivers/net/wireless/ath/ath11k/pci.c | 12
drivers/net/wireless/ath/ath11k/reg.c | 103 -
drivers/net/wireless/ath/ath11k/wmi.c | 5
drivers/net/wireless/ath/ath9k/hif_usb.c | 7
drivers/net/wireless/ath/wcn36xx/dxe.c | 49
drivers/net/wireless/ath/wcn36xx/main.c | 34
drivers/net/wireless/ath/wcn36xx/smd.c | 8
drivers/net/wireless/ath/wcn36xx/txrx.c | 41
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 17
drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 2
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 17
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 27
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 2
drivers/net/wireless/intel/iwlwifi/mvm/time-event.c | 27
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 7
drivers/net/wireless/intel/iwlwifi/queue/tx.c | 1
drivers/net/wireless/marvell/mwifiex/sta_event.c | 8
drivers/net/wireless/marvell/mwifiex/usb.c | 3
drivers/net/wireless/realtek/rtw88/main.c | 2
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2
drivers/net/wireless/rsi/rsi_91x_main.c | 4
drivers/net/wireless/rsi/rsi_91x_usb.c | 9
drivers/net/wireless/rsi/rsi_usb.h | 2
drivers/nvmem/core.c | 2
drivers/of/base.c | 11
drivers/of/unittest.c | 21
drivers/parisc/pdc_stable.c | 4
drivers/pci/controller/pci-aardvark.c | 4
drivers/pci/controller/pci-mvebu.c | 8
drivers/pci/controller/pci-xgene.c | 2
drivers/pci/hotplug/pciehp.h | 3
drivers/pci/hotplug/pciehp_core.c | 2
drivers/pci/hotplug/pciehp_hpc.c | 21
drivers/pci/msi.c | 26
drivers/pci/pci-bridge-emul.c | 70
drivers/pci/quirks.c | 3
drivers/pcmcia/cs.c | 8
drivers/pcmcia/rsrc_nonstatic.c | 6
drivers/phy/socionext/phy-uniphier-usb3ss.c | 10
drivers/power/reset/mt6323-poweroff.c | 3
drivers/regulator/qcom_smd-regulator.c | 100 -
drivers/rpmsg/rpmsg_core.c | 20
drivers/rtc/rtc-cmos.c | 3
drivers/rtc/rtc-pxa.c | 4
drivers/scsi/lpfc/lpfc.h | 2
drivers/scsi/lpfc/lpfc_attr.c | 62
drivers/scsi/lpfc/lpfc_hbadisc.c | 8
drivers/scsi/lpfc/lpfc_sli.c | 6
drivers/scsi/pm8001/pm8001_hwi.c | 4
drivers/scsi/scsi_debugfs.c | 1
drivers/scsi/scsi_pm.c | 2
drivers/scsi/sr.c | 2
drivers/scsi/sr_vendor.c | 4
drivers/scsi/ufs/tc-dwc-g210-pci.c | 1
drivers/scsi/ufs/ufshcd-pci.c | 2
drivers/scsi/ufs/ufshcd-pltfrm.c | 2
drivers/scsi/ufs/ufshcd.c | 7
drivers/soc/mediatek/mtk-scpsys.c | 15
drivers/soc/qcom/cpr.c | 2
drivers/soc/ti/pruss.c | 2
drivers/spi/spi-meson-spifc.c | 1
drivers/spi/spi-uniphier.c | 11
drivers/staging/greybus/audio_topology.c | 15
drivers/staging/media/atomisp/i2c/ov2680.h | 24
drivers/staging/media/atomisp/pci/atomisp_cmd.c | 92
drivers/staging/media/atomisp/pci/atomisp_fops.c | 11
drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c | 2
drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 185 +
drivers/staging/media/atomisp/pci/atomisp_subdev.c | 15
drivers/staging/media/atomisp/pci/atomisp_subdev.h | 3
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 13
drivers/staging/media/atomisp/pci/atomisp_v4l2.h | 3
drivers/staging/media/atomisp/pci/sh_css.c | 27
drivers/staging/media/atomisp/pci/sh_css_mipi.c | 41
drivers/staging/media/atomisp/pci/sh_css_params.c | 8
drivers/staging/media/hantro/hantro_drv.c | 3
drivers/staging/rtl8192e/rtllib.h | 2
drivers/staging/rtl8192e/rtllib_module.c | 16
drivers/staging/rtl8192e/rtllib_softmac.c | 6
drivers/tee/tee_core.c | 4
drivers/thermal/imx8mm_thermal.c | 3
drivers/thermal/imx_thermal.c | 145 -
drivers/thunderbolt/acpi.c | 13
drivers/tty/serial/amba-pl010.c | 3
drivers/tty/serial/amba-pl011.c | 27
drivers/tty/serial/atmel_serial.c | 14
drivers/tty/serial/imx.c | 7
drivers/tty/serial/serial_core.c | 7
drivers/tty/serial/uartlite.c | 2
drivers/usb/core/hub.c | 5
drivers/usb/dwc3/dwc3-qcom.c | 7
drivers/usb/gadget/function/f_fs.c | 4
drivers/usb/host/uhci-platform.c | 3
drivers/usb/misc/ftdi-elan.c | 1
drivers/vdpa/mlx5/net/mlx5_vnet.c | 2
drivers/video/backlight/qcom-wled.c | 122 -
drivers/virtio/virtio_ring.c | 4
drivers/w1/slaves/w1_ds28e04.c | 26
drivers/xen/gntdev.c | 6
fs/btrfs/backref.c | 21
fs/btrfs/ctree.c | 19
fs/btrfs/inode.c | 11
fs/btrfs/qgroup.c | 19
fs/debugfs/file.c | 2
fs/dlm/lock.c | 9
fs/dlm/lowcomms.c | 45
fs/ext4/ext4.h | 1
fs/ext4/ext4_jbd2.c | 2
fs/ext4/extents.c | 2
fs/ext4/fast_commit.c | 18
fs/ext4/inode.c | 14
fs/ext4/ioctl.c | 2
fs/ext4/mballoc.c | 48
fs/ext4/migrate.c | 23
fs/ext4/super.c | 27
fs/f2fs/compress.c | 50
fs/f2fs/f2fs.h | 11
fs/f2fs/gc.c | 3
fs/f2fs/segment.h | 3
fs/f2fs/super.c | 44
fs/f2fs/sysfs.c | 4
fs/fuse/file.c | 2
fs/jffs2/file.c | 40
fs/ubifs/super.c | 1
fs/udf/ialloc.c | 2
include/acpi/acpi_bus.h | 5
include/acpi/actypes.h | 10
include/linux/blk-pm.h | 2
include/linux/bpf_verifier.h | 7
include/linux/clocksource.h | 3
include/linux/hid.h | 2
include/linux/mmzone.h | 9
include/linux/pm_runtime.h | 3
include/net/inet_frag.h | 11
include/net/ipv6_frag.h | 3
include/net/sch_generic.h | 5
include/net/xfrm.h | 5
include/trace/events/cgroup.h | 12
include/uapi/linux/xfrm.h | 1
kernel/audit.c | 18
kernel/bpf/btf.c | 3
kernel/bpf/verifier.c | 18
kernel/dma/pool.c | 4
kernel/rcu/tree_exp.h | 1
kernel/sched/cputime.c | 4
kernel/sched/fair.c | 4
kernel/sched/rt.c | 23
kernel/time/clocksource.c | 96 -
kernel/time/jiffies.c | 15
kernel/trace/bpf_trace.c | 6
kernel/trace/trace_kprobe.c | 5
kernel/tsacct.c | 7
lib/mpi/mpi-mod.c | 2
lib/test_hmm.c | 24
lib/test_meminit.c | 1
mm/hmm.c | 5
mm/page_alloc.c | 19
mm/shmem.c | 37
net/ax25/af_ax25.c | 10
net/batman-adv/netlink.c | 30
net/bluetooth/cmtp/core.c | 4
net/bluetooth/hci_core.c | 1
net/bluetooth/hci_event.c | 8
net/bluetooth/hci_request.c | 2
net/bluetooth/l2cap_sock.c | 45
net/bridge/br_netfilter_hooks.c | 7
net/core/dev.c | 6
net/core/devlink.c | 2
net/core/filter.c | 8
net/core/net-sysfs.c | 3
net/core/net_namespace.c | 4
net/ipv4/fib_semantics.c | 47
net/ipv4/inet_fragment.c | 8
net/ipv4/ip_fragment.c | 3
net/ipv4/ip_gre.c | 5
net/ipv4/netfilter/ipt_CLUSTERIP.c | 5
net/ipv6/ip6_gre.c | 5
net/mac80211/rx.c | 2
net/netfilter/nft_set_pipapo.c | 8
net/netrom/af_netrom.c | 12
net/nfc/llcp_sock.c | 5
net/sched/sch_generic.c | 1
net/smc/smc_core.c | 17
net/unix/garbage.c | 14
net/unix/scm.c | 6
net/xfrm/xfrm_compat.c | 6
net/xfrm/xfrm_interface.c | 14
net/xfrm/xfrm_policy.c | 24
net/xfrm/xfrm_state.c | 23
net/xfrm/xfrm_user.c | 41
scripts/dtc/dtx_diff | 8
scripts/sphinx-pre-install | 4
security/selinux/hooks.c | 12
sound/core/jack.c | 3
sound/core/oss/pcm_oss.c | 2
sound/core/pcm.c | 6
sound/core/seq/seq_queue.c | 14
sound/pci/hda/hda_codec.c | 3
sound/soc/codecs/rt5663.c | 12
sound/soc/fsl/fsl_asrc.c | 69
sound/soc/fsl/fsl_mqs.c | 2
sound/soc/intel/catpt/dsp.c | 14
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 6
sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c | 7
sound/soc/samsung/idma.c | 2
sound/soc/uniphier/Kconfig | 2
sound/usb/format.c | 2
sound/usb/mixer_quirks.c | 2
sound/usb/quirks.c | 2
tools/bpf/bpftool/Documentation/Makefile | 1
tools/bpf/bpftool/Makefile | 1
tools/bpf/bpftool/main.c | 2
tools/include/nolibc/nolibc.h | 33
tools/perf/util/debug.c | 2
tools/perf/util/evsel.c | 25
tools/perf/util/probe-event.c | 3
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 2
tools/testing/selftests/clone3/clone3.c | 6
tools/testing/selftests/ftrace/test.d/kprobe/profile.tc | 2
tools/testing/selftests/kselftest_harness.h | 2
tools/testing/selftests/powerpc/security/spectre_v2.c | 2
tools/testing/selftests/vm/hmm-tests.c | 42
539 files changed, 5552 insertions(+), 3319 deletions(-)
Adam Ford (1):
clk: imx8mn: Fix imx8mn_clko1_sels
Adrian Hunter (1):
perf script: Fix hex dump character output
Alan Stern (1):
scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
Alex Deucher (1):
drm/amdgpu/display: set vblank_disable_immediate for DC
Alexander Aring (4):
fs: dlm: use sk->sk_socket instead of con->sock
fs: dlm: don't call kernel_getpeername() in error_report()
fs: dlm: fix build with CONFIG_IPV6 disabled
fs: dlm: filter user dlm messages for kernel locks
Alexander Gordeev (1):
s390/mm: fix 2KB pgtable release race
Alexander Stein (4):
arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
Alexei Starovoitov (1):
bpf: Adjust BTF log size limit.
Alexey Kardashevskiy (2):
KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
Aline Santana Cordeiro (1):
media: staging: media: atomisp: pci: Balance braces around conditional statements in file atomisp_cmd.c
Alistair Francis (1):
HID: quirks: Allow inverting the absolute X/Y values
Alistair Popple (1):
mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
Alyssa Ross (1):
ASoC: fsl_mqs: fix MODULE_ALIAS
Amelie Delaunay (1):
dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
Ammar Faizi (2):
tools/nolibc: x86-64: Fix startup code bug
powerpc/xive: Add missing null check after calling kmalloc
Anders Roxell (2):
selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
powerpc/cell: Fix clang -Wimplicit-fallthrough warning
Andre Przywara (1):
ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
Andreas Oetken (1):
mtd: Fixed breaking list in __mtd_del_partition.
Andrey Konovalov (1):
lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
Andrey Ryabinin (1):
cputime, cpuacct: Include guest time in user time in cpuacct.stat
Andrii Nakryiko (1):
selftests/bpf: Fix bpf_object leak in skb_ctx selftest
Anilkumar Kolli (1):
ath11k: Use host CE parameters for CE interrupts configuration
Antoine Tenart (1):
net-sysfs: update the queue counts in the unregistration path
Anton Vasilyev (1):
media: dw2102: Fix use after free
Antony Antony (3):
xfrm: interface with if_id 0 should return error
xfrm: state and policy should fail if XFRMA_IF_ID 0
xfrm: rate limit SA mapping change message to user space
Arnaud Pouliquen (1):
rpmsg: core: Clean up resources on announce_create failure.
Arnd Bergmann (1):
dmaengine: pxa/mmp: stop referencing config->slave_id
Arseny Demidov (1):
hwmon: (mr75203) fix wrong power-up delay value
Athira Rajeev (2):
powerpc/perf: MMCR0 control for PMU registers under PMCC=00
powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC
Avihai Horon (2):
RDMA/core: Let ib_find_gid() continue search even after empty entry
RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
Aya Levin (2):
net/mlx5e: Fix page DMA map/unmap attributes
Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
Baochen Qiang (2):
ath11k: Fix crash caused by uninitialized TX ring
ath11k: Avoid false DEADLOCK warning reported by lockdep
Baoquan He (3):
mm_zone: add function to check if managed dma zone exists
dma/pool: create dma atomic pool only if dma zone has managed pages
mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages
Bart Van Assche (2):
scsi: ufs: Fix race conditions related to driver data
scsi: core: Show SCMD_LAST in text form
Baruch Siach (3):
arm64: dts: qcom: ipq6018: Fix gpio-ranges property
of: base: Fix phandle argument length mismatch error message
of: base: Improve argument length mismatch error
Ben Greear (1):
ath11k: Fix napi related hang
Ben Hutchings (1):
firmware: Update Kconfig help text for Google firmware
Ben Skeggs (1):
drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
Benjamin Li (3):
wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
wcn36xx: populate band before determining rate on RX
wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
Bernard Zhao (1):
selinux: fix potential memleak in selinux_add_opt()
Bhaskar Chowdhury (1):
crypto: qat - fix spelling mistake: "messge" -> "message"
Biju Das (1):
arm64: dts: renesas: cat875: Add rx/tx delays
Biwen Li (1):
arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
Bixuan Cui (1):
ALSA: oss: fix compile error when OSS_DEBUG is enabled
Borislav Petkov (4):
x86/mce: Allow instrumentation during task work queueing
x86/mce: Mark mce_panic() noinstr
x86/mce: Mark mce_end() noinstr
x86/mce: Mark mce_read_aux() noinstr
Brian Norris (8):
drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
drm/panel: innolux-p079zca: Delete panel on attach() failure
drm/rockchip: dsi: Fix unbalanced clock on probe error
drm/rockchip: dsi: Hold pm-runtime across bind/unbind
drm/rockchip: dsi: Disable PLL clock on bind error
drm/rockchip: dsi: Reconfigure hardware on resume()
mwifiex: Fix possible ABBA deadlock
drm/bridge: analogix_dp: Make PSR-exit block less
Bryan O'Donoghue (5):
wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
wcn36xx: Fix DMA channel enable/disable cycle
wcn36xx: Release DMA channel descriptor allocations
wcn36xx: Put DXE block into reset before freeing memory
media: venus: core, venc, vdec: Fix probe dependency error
Cezary Rojewski (1):
ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
Changcheng Deng (1):
PM: AVS: qcom-cpr: Use div64_ul instead of do_div
Chao Yu (2):
f2fs: fix to do sanity check in is_alive()
f2fs: fix to reserve space for IO align feature
Chen Jun (1):
tpm: add request_locality before write TPM_INT_ENABLE
Chengfeng Ye (3):
crypto: qce - fix uaf on qce_ahash_register_one
crypto: qce - fix uaf on qce_skcipher_register_one
HSI: core: Fix return freed object in hsi_new_client
Chengguang Xu (1):
RDMA/rxe: Fix a typo in opcode name
Christian Eggers (1):
mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
Christian Hewitt (2):
arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
Christian König (1):
drm/radeon: fix error handling in radeon_driver_open_kms
Christian Lamparter (1):
ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
Christoph Hellwig (2):
dm: fix alloc_dax error handling in alloc_dev
scsi: sr: Don't use GFP_DMA
Christophe JAILLET (3):
media: venus: core: Fix a potential NULL pointer dereference in an error handling path
media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'
RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"
Christophe Jaillet (1):
tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
Christophe Leroy (7):
lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
powerpc/irq: Add helper to set regs->softe
powerpc/32s: Fix shift-out-of-bounds in KASAN init
powerpc/powermac: Add additional missing lockdep_register_key()
powerpc/powermac: Add missing lockdep_register_key()
w1: Misuse of get_user()/put_user() reported by sparse
powerpc/40x: Map 32Mbytes of memory at startup
Chunguang Xu (1):
ext4: fix a possible ABBA deadlock due to busy PA
Claudiu Beznea (2):
mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
mfd: atmel-flexcom: Use .resume_noirq
Clément Léger (1):
software node: fix wrong node passed to find nargs_prop
Conor Dooley (1):
clk: bm1880: remove kfrees on static allocations
Dafna Hirschfeld (1):
media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
Dan Carpenter (7):
drm/bridge: display-connector: fix an uninitialized pointer in probe()
media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
drm/vboxvideo: fix a NULL vs IS_ERR() check
rocker: fix a sleeping in atomic bug
Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
ax25: uninitialized variable in ax25_setsockopt()
netrom: fix api breakage in nr_setsockopt()
Daniel Borkmann (1):
bpf: Don't promote bogus looking registers after null check.
Daniel Thompson (1):
Documentation: dmaengine: Correctly describe dmatest with channel unset
Danielle Ratson (2):
mlxsw: pci: Add shutdown method in PCI driver
mlxsw: pci: Avoid flow control for EMAD packets
David Heidelberg (1):
arm64: dts: qcom: msm8996: drop not documented adreno properties
Dillon Min (3):
media: videobuf2: Fix the size printk format
ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco
clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell
Dinh Nguyen (1):
EDAC/synopsys: Use the quirk for version instead of ddr version
Dmitry Baryshkov (2):
arm64: dts: qcom: msm8916: fix MMC controller aliases
drm/msm/dpu: fix safe status debugfs file
Dmitry Osipenko (1):
gpu: host1x: Add back arm_iommu_detach_device()
Dmitry Torokhov (1):
HID: vivaldi: fix handling devices not using numbered reports
Dominik Brodowski (1):
pcmcia: fix setting of kthread task states
Dongliang Mu (1):
media: em28xx: fix memory leak in em28xx_init_dev
Doyle, Patrick (1):
mtd: nand: bbt: Fix corner case in bad block table handling
Eli Cohen (1):
vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
Eric Dumazet (7):
xfrm: fix a small bug in xfrm_sa_len()
ppp: ensure minimum packet size in ppp_write()
ipv4: update fib_info_cnt under spinlock protection
ipv4: avoid quadratic behavior in netns dismantle
af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
netns: add schedule point in ops_exit_list()
Eric W. Biederman (1):
taskstats: Cleanup the use of task->exit_code
Fabio Estevam (3):
media: imx-pxp: Initialize the spinlock prior to using it
regmap: Call regmap_debugfs_exit() prior to _init()
ath10k: Fix the MTU size on QCA9377 SDIO
Fabrice Gasnier (1):
counter: stm32-lptimer-cnt: remove iio counter abi
Filipe Manana (2):
btrfs: fix deadlock between quota enable and other quota operations
btrfs: respect the max size in the header when activating swap file
Florian Fainelli (1):
net: mdio: Demote probed message to debug print
Florian Westphal (2):
netfilter: bridge: add support for pppoe filtering
netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
Frank Rowand (1):
of: unittest: 64 bit dma address test requires arch support
Frederic Weisbecker (1):
rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
Fugang Duan (1):
tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
Gang Li (1):
shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
George G. Davis (1):
mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
German Gomez (1):
perf evsel: Override attr->sample_period for non-libpfm4 events
Ghalem Boudour (1):
xfrm: fix policy lookup for ipv6 gre packets
Giovanni Cabiddu (1):
crypto: qat - fix undetected PFVF timeout in ACK loop
Greg Kroah-Hartman (1):
Linux 5.10.94
Guillaume Nault (3):
xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
Hans Verkuil (2):
media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
media: cec-pin: fix interrupt en/disable handling
Hans de Goede (9):
ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
ACPI: Change acpi_device_always_present() into acpi_device_override_status()
ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win
PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
Hari Bathini (2):
powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
Harshad Shirwadkar (1):
ext4: initialize err_blk before calling __ext4_get_inode_loc
Hector Martin (1):
iommu/io-pgtable-arm: Fix table descriptor paddr formatting
Heiko Carstens (1):
selftests/ftrace: make kprobe profile testcase description unique
Heiner Kallweit (2):
i2c: i801: Don't silently correct invalid transfer size
crypto: omap-aes - Fix broken pm_runtime_and_get() usage
Herbert Xu (2):
crypto: stm32 - Fix last sparse warning in stm32_cryp_check_ctr_counter
crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
Hou Tao (1):
bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
Hyeong-Jun Kim (1):
f2fs: compress: fix potential deadlock of compress file
Igor Pylypiv (1):
scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
Ilan Peer (2):
iwlwifi: mvm: Fix calculation of frame length
iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
Ilia Mirkin (1):
drm/nouveau/kms/nv04: use vzalloc for nv04_display
Ingo Molnar (1):
x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
Iwona Winiarska (1):
gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
Jackie Liu (1):
drm/msm/dp: displayPort driver need algorithm rational
Jakub Kicinski (1):
selftests: harness: avoid false negatives if test has no ASSERTs
James Hilliard (1):
media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
James Smart (1):
scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
Jammy Huang (2):
media: aspeed: fix mode-detect always time out at 2nd run
media: aspeed: Update signal status immediately to ensure sane hw state
Jan Kara (4):
ext4: avoid trim error on fs with small groups
udf: Fix error handling in udf_new_inode()
ext4: make sure to reset inode lockdep class when quota enabling fails
ext4: make sure quota gets properly shutdown on error
Jan Kiszka (1):
soc: ti: pruss: fix referenced node in error message
Jann Horn (1):
HID: uhid: Fix worker destroying device without any protection
Jason A. Donenfeld (1):
random: do not throw away excess input to crng_fast_load
Jason Gerecke (3):
HID: wacom: Reset expected and received contact counts at the same time
HID: wacom: Ignore the confidence flag when a touch is removed
HID: wacom: Avoid using stale array indicies to read contact count
Jens Wiklander (1):
tee: fix put order in teedev_close_context()
Jernej Skrabec (1):
media: hantro: Fix probe func error path
Jiasheng Jiang (9):
media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
power: reset: mt6397: Check for null res pointer
staging: greybus: audio: Check null pointer
fsl/fman: Check for null pointer after calling devm_ioremap
Bluetooth: hci_bcm: Check for error irq
can: xilinx_can: xcan_probe(): check for error irq
ASoC: rt5663: Handle device_property_read_u32_array error codes
ASoC: mediatek: Check for error clk pointer
ASoC: samsung: idma: Check of ioremap return value
Jie Wang (1):
net: bonding: fix bond_xmit_broadcast return value error bug
Jim Quinlan (1):
of: unittest: fix warning on PowerPC frame size warning
Joakim Tjernlund (1):
i2c: mpc: Correct I2C reset procedure
Joe Thornber (2):
dm btree: add a defensive bounds check to insert_at()
dm space map common: add bounds check to sm_ll_lookup_bitmap()
Joerg Roedel (1):
x86/mm: Flush global TLB when switching to trampoline page-table
Johan Hovold (9):
media: flexcop-usb: fix control-message timeouts
media: mceusb: fix control-message timeouts
media: em28xx: fix control-message timeouts
media: cpia2: fix control-message timeouts
media: s2255: fix control-message timeouts
media: redrat3: fix control-message timeouts
media: pvrusb2: fix control-message timeouts
media: stk1160: fix control-message timeouts
can: softing_cs: softingcs_probe(): fix memleak on registration failure
Johannes Berg (6):
iwlwifi: mvm: fix 32-bit build in FTM
um: fix ndelay/udelay defines
um: virtio_uml: Fix time-travel external time propagation
iwlwifi: mvm: synchronize with FW after multicast commands
iwlwifi: fix leaks/bad data after failed firmware load
iwlwifi: remove module loading failure message
John David Anglin (2):
parisc: Avoid calling faulthandler_disabled() twice
parisc: Fix lpa and lpa_user defines
Jonathan Cameron (1):
iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
Jordan Niethe (1):
powerpc/64s: Convert some cpu_setup() and cpu_restore() functions to C
Josef Bacik (3):
btrfs: remove BUG_ON() in find_parent_nodes()
btrfs: remove BUG_ON(!eie) in find_parent_nodes
btrfs: check the root node for uptodate before returning it
José Expósito (5):
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
HID: apple: Do not reset quirks when the Fn key is not found
Julia Lawall (4):
powerpc/6xx: add missing of_node_put
powerpc/powernv: add missing of_node_put
powerpc/cell: add missing of_node_put
powerpc/btext: add missing of_node_put
Kai-Heng Feng (1):
usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
Kajol Jain (1):
bpf: Remove config check to enable bpf support for branch records
Kamal Heib (3):
RDMA/hns: Validate the pkey index
RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
RDMA/cxgb4: Set queue pair state when being queried
Karthikeyan Kathirvel (2):
ath11k: clear the keys properly via DISABLE_KEY
ath11k: reset RSN/WPA present state for open BSS
Kees Cook (2):
x86/uaccess: Move variable into switch case statement
char/mwave: Adjust io port register size
Kevin Bracey (1):
net_sched: restore "mpu xxx" handling
Kirill A. Shutemov (1):
ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
Kishon Vijay Abraham I (1):
arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
Konrad Dybcio (1):
regulator: qcom_smd: Align probe function with rpmh-regulator
Krzysztof Kozlowski (1):
nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()
Kunihiko Hayashi (2):
spi: uniphier: Fix a bug that doesn't point to private data correctly
dmaengine: uniphier-xdmac: Fix type of address variables
Kuniyuki Iwashima (1):
bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
Kyeong Yoo (1):
jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
Lad Prabhakar (2):
mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
Lakshmi Sowjanya D (1):
i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
Laurence de Bruxelles (1):
rtc: pxa: fix null pointer dereference
Laurent Pinchart (1):
drm: rcar-du: Fix CRTC timings when CMM is used
Leon Romanovsky (1):
devlink: Remove misleading internal_flags from health reporter dump
Li Hua (1):
sched/rt: Try to restart rt period timer when rt runtime exceeded
Lino Sanfilippo (1):
serial: amba-pl011: do not request memory region twice
Linus Lüssing (1):
batman-adv: allow netlink usage in unprivileged containers
Lizhi Hou (1):
tty: serial: uartlite: allow 64 bit address
Luca Coelho (1):
iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
Lucas De Marchi (1):
x86/gpu: Reserve stolen memory for first integrated Intel GPU
Lucas Stach (2):
drm/etnaviv: consider completed fence seqno in hang check
drm/etnaviv: limit submit sizes
Luiz Augusto von Dentz (4):
Bluetooth: L2CAP: Fix not initializing sk_peer_pid
Bluetooth: L2CAP: Fix using wrong mode
Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
Bluetooth: hci_sync: Fix not setting adv set duration
Lukas Bulwahn (5):
ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization
Lukas Wunner (3):
serial: pl010: Drop CR register reset on set_termios
serial: core: Keep mctrl register state and cached copy in sync
serial: Fix incorrect rs485 polarity on uart open
Luís Henriques (1):
ext4: set csum seed in tmp inode while migrating to extents
Lv Yunlong (1):
wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
Mansur Alisha Shaik (1):
media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions
Maor Dickman (1):
net/mlx5e: Don't block routes with nexthop objects in SW
Marc Kleine-Budde (3):
can: mcp251xfd: add missing newline to printed strings
can: softing: softing_startstop(): fix set but not used variable warning
can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
Marc Zyngier (1):
irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
Marcelo Tosatti (1):
KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
Marco Chiappero (2):
crypto: qat - remove unnecessary collision prevention step in PFVF
crypto: qat - make pfvf send message direction agnostic
Marek Behún (1):
ARM: dts: armada-38x: Add generic compatible to UART nodes
Marek Vasut (1):
crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
Marijn Suijten (6):
backlight: qcom-wled: Validate enabled string indices in DT
backlight: qcom-wled: Pass number of elements to read to read_u32_array
backlight: qcom-wled: Fix off-by-one maximum with default num_strings
backlight: qcom-wled: Override default length with qcom,enabled-strings
backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
backlight: qcom-wled: Respect enabled-strings in set_brightness
Marina Nikolic (1):
amdgpu/pm: Make sysfs pm attributes as read-only for VFs
Mark Langsdorf (1):
ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
Martin Blumenstingl (1):
clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
Martyn Welch (1):
drm/bridge: megachips: Ensure both bridges are probed before registration
Mateusz Jończyk (1):
rtc: cmos: take rtc_lock while reading from CMOS
Matthias Schiffer (1):
scripts/dtc: dtx_diff: remove broken example from help text
Mauro Carvalho Chehab (7):
media: atomisp: fix enum formats logic
media: atomisp: fix try_fmt logic
media: atomisp: set per-device's default mode
media: atomisp: handle errors at sh_css_create_isp_params()
media: m920x: don't use stack on USB reads
scripts: sphinx-pre-install: add required ctex dependency
scripts: sphinx-pre-install: Fix ctex support on Debian
Maxim Levitsky (1):
iommu/amd: Restore GA log/tail pointer on host resume
Maxime Ripard (4):
clk: bcm-2835: Pick the closest clock rate
clk: bcm-2835: Remove rounding up the dividers
drm/vc4: hdmi: Set a default HSM rate
drm/vc4: hdmi: Make sure the device is powered with CEC
Meng Li (1):
crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
Miaoqian Lin (6):
Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
phy: mediatek: Fix missing check in mtk_mipi_tx_probe
parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
lib82596: Fix IRQ check in sni_82596_probe
Michael Ellerman (1):
powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
Michael Kuron (1):
media: dib0700: fix undefined behavior in tuner shutdown
Michael S. Tsirkin (1):
virtio_ring: mark ring unused on error
Michal Suchanek (1):
debugfs: lockdown: Allow reading debugfs files that are not world readable
Mika Westerberg (1):
thunderbolt: Runtime PM activate both ends of the device link
Moshe Shemesh (2):
net/mlx5: Set command entry semaphore up once got index free
Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
Nathan Chancellor (3):
x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
MIPS: Loongson64: Use three arguments for slti
Nathan Errera (1):
iwlwifi: mvm: test roc running status bits before removing the sta
Neal Liu (1):
usb: uhci: add aspeed ast2600 uhci support
Neil Armstrong (1):
drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
Nicholas Piggin (3):
powerpc/perf: move perf irq/nmi handling details into traps.c
powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
powerpc/64s/radix: Fix huge vmap false positive
Nicolas Toromanoff (6):
crypto: stm32/cryp - fix CTR counter carry
crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
crypto: stm32/cryp - check early input data
crypto: stm32/cryp - fix double pm exit
crypto: stm32/cryp - fix lrw chaining mode
crypto: stm32/cryp - fix bugs and crash in tests
Niklas Söderlund (2):
dt-bindings: thermal: Fix definition of cooling-maps contribution property
media: rcar-vin: Update format alignment constraints
Nishanth Menon (3):
arm64: dts: ti: k3-j7200: Fix the L2 cache sets
arm64: dts: ti: k3-j721e: Fix the L2 cache sets
arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
Oleksandr Andrushchenko (1):
xen/gntdev: fix unmap notification order
Oleksij Rempel (1):
thermal/drivers/imx: Implement runtime PM support
Pali Rohár (5):
PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
PCI: pci-bridge-emul: Fix definitions of reserved bits
PCI: pci-bridge-emul: Correctly set PCIe capabilities
PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
Panicker Harish (1):
Bluetooth: hci_qca: Stop IBS timer during BT OFF
Paolo Abeni (1):
bpf: Do not WARN in bpf_warn_invalid_xdp_action()
Patrick Williams (1):
tpm: fix NPE on probe for missing device
Paul Cercueil (3):
mtd: rawnand: davinci: Don't calculate ECC when reading page
mtd: rawnand: davinci: Avoid duplicated page read
mtd: rawnand: davinci: Rewrite function description
Paul Chaignon (1):
bpftool: Enable line buffering for stdout
Paul E. McKenney (1):
clocksource: Reduce clocksource-skew threshold
Paul Gerber (1):
thermal/drivers/imx8mm: Enable ADC when enabling monitor
Paul Moore (1):
audit: ensure userspace is penalized the same as the kernel when under pressure
Pavankumar Kondeti (1):
usb: gadget: f_fs: Use stream_open() for endpoint files
Pavel Skripkin (2):
Bluetooth: stop proccessing malicious adv data
net: mcs7830: handle usb read errors properly
Peiwei Hu (1):
powerpc/prom_init: Fix improper check of prom_getprop()
Peng Fan (1):
arm64: dts: ti: k3-j721e: correct cache-sets info
Petr Cvachoucek (1):
ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
Philipp Zabel (1):
media: coda: fix CODA960 JPEG encoder buffer overflow
Ping-Ke Shih (1):
mac80211: allow non-standard VHT MCS-10/11
Po-Hao Huang (1):
rtw88: 8822c: update rx settings to prevent potential hw deadlock
Qiang Yu (1):
drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
Quentin Monnet (1):
bpftool: Remove inclusion of utilities.mak from Makefiles
Rafael J. Wysocki (5):
ACPI: EC: Rework flushing of EC work while suspended to idle
PM: runtime: Add safety net to supplier device release
cpufreq: Fix initialization of min and max frequency QoS requests
ACPICA: Utilities: Avoid deleting the same object twice in a row
ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
Rameshkumar Sundaram (2):
ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
Randy Dunlap (5):
mips: lantiq: add support for clk_set_parent()
mips: bcm63xx: add support for clk_set_parent()
um: registers: Rename function names to avoid conflicts and build problems
media: correct MEDIA_TEST_SUPPORT help text
Documentation: fix firewire.rst ABI file path error
Reiji Watanabe (1):
arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
Rob Herring (1):
PCI: xgene: Fix IB window setup
Robert Hancock (10):
clk: si5341: Fix clock HW provider cleanup
net: axienet: increase reset timeout
net: axienet: Wait for PhyRstCmplt after core reset
net: axienet: reset core on initialization prior to MDIO access
net: axienet: add missing memory barriers
net: axienet: limit minimum TX ring size
net: axienet: Fix TX ring slot available check
net: axienet: fix number of TX ring slots for available check
net: axienet: fix for TX busy handling
net: axienet: increase default TX ring size to 128
Robert Marko (2):
arm64: dts: marvell: cn9130: add GPIO and SPI aliases
arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
Robert Schlabbach (1):
media: si2157: Fix "warm" tuner state detection
Robin Murphy (1):
drm/tegra: vic: Fix DMA API misuse
Russell King (Oracle) (4):
net: phy: prefer 1000baseT over 1000baseKX
net: phy: marvell: configure RGMII delays for 88E1118
net: gemini: allow any RGMII interface mode
net: sfp: fix high power modules without diagnostic monitoring
Ryuta NAKANISHI (1):
phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
Sakari Ailus (2):
device property: Fix fwnode_graph_devcon_match() fwnode leak
Documentation: ACPI: Fix data node reference documentation
Sam Protsenko (1):
dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
Sameer Pujar (2):
arm64: tegra: Fix Tegra194 HDA {clock,reset}-names ordering
arm64: tegra: Remove non existent Tegra194 reset
Sean Wang (1):
Bluetooth: btmtksdio: fix resume failure
Sean Young (1):
media: igorplugusb: receiver overflow should be reported
Sebastian Andrzej Siewior (1):
ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
Sebastian Gottschall (1):
ath10k: Fix tx hanging
Sergey Shtylyov (3):
mmc: meson-mx-sdhc: add IRQ check
mmc: meson-mx-sdio: add IRQ check
bcmgenet: add WOL IRQ check
Shaul Triebitz (1):
iwlwifi: mvm: avoid clearing a just saved session protection id
Shengjiu Wang (1):
ASoC: fsl_asrc: refine the check of available clock divider
Sicelo A. Mhlongo (1):
ARM: dts: omap3-n900: Fix lp5523 for multi color
Srinivas Kandagatla (2):
arm64: dts: qcom: c630: Fix soundcard setup
nvmem: core: set size for sysfs bin file
Sriram R (1):
ath11k: Avoid NULL ptr access during mgmt tx cleanup
Stafford Horne (1):
openrisc: Add clone3 ABI wrapper
Stanimir Varbanov (1):
media: venus: pm_helpers: Control core power domain manually
Stefan Riedmueller (1):
mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
Stephan Müller (1):
crypto: jitter - consider 32 LSB for APT
Stephen Boyd (2):
drm/bridge: ti-sn65dsi86: Set max register for regmap
clk: Emit a stern warning with writable debugfs enabled
Sudeep Holla (1):
ACPICA: Fix wrong interpretation of PCC address
Suravee Suthikulpanit (1):
iommu/amd: Remove iommu_init_ga()
Suresh Kumar (1):
net: bonding: debug: avoid printing debug logs when bond is not notifying peers
Suresh Udipi (2):
media: rcar-csi2: Correct the selection of hsfreqrange
media: rcar-csi2: Optimize the selection PHTW register
Sven Eckelmann (1):
ath11k: Fix ETSI regd with weather radar overlap
Takashi Iwai (5):
ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
ALSA: seq: Set upper limit of processed events
Tasos Sahanidis (1):
floppy: Fix hang in watchdog when disk is ejected
Thadeu Lima de Souza Cascardo (1):
selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
Theodore Ts'o (1):
ext4: don't use the orphan list when migrating an inode
Thierry Reding (1):
arm64: tegra: Adjust length of CCPLEX cluster MMIO region
Thomas Gleixner (1):
PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
Thomas Hellström (1):
dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
Thomas Weißschuh (1):
ACPI: battery: Add the ThinkPad "Not Charging" quirk
Tianjia Zhang (1):
MIPS: Octeon: Fix build errors using clang
Tobias Waldekranz (3):
powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
net/fsl: xgmac_mdio: Add workaround for erratum A-009885
net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
Todd Kjos (1):
binder: fix handling of error during copy
Toke Høiland-Jørgensen (1):
xdp: check prog type before updating BPF link
Tom Rix (2):
net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
net: mscc: ocelot: fix using match before it is set
Tsuchiya Yuto (7):
media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities()
media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
media: atomisp: fix inverted logic in buffers_needed()
media: atomisp: do not use err var when checking port validity for ISP2400
media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid()
media: atomisp: fix ifdefs in sh_css.c
media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
Tudor Ambarus (8):
tty: serial: atmel: Check return code of dmaengine_submit()
tty: serial: atmel: Call dma_async_issue_pending()
dmaengine: at_xdmac: Don't start transactions at tx_submit level
dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
dmaengine: at_xdmac: Print debug message after realeasing the lock
dmaengine: at_xdmac: Fix concurrency over xfers_list
dmaengine: at_xdmac: Fix lld view setting
dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
Tzung-Bi Shih (2):
ASoC: mediatek: mt8173: fix device_node leak
ASoC: mediatek: mt8183: fix device_node leak
Ulf Hansson (1):
mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
Vincent Donnefort (2):
sched/fair: Fix detection of per-CPU kthreads waking a task
sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
Waiman Long (1):
clocksource: Avoid accidental unstable marking of clocksources
Wan Jiabing (1):
ARM: shmobile: rcar-gen2: Add missing of_node_put()
Wang Hai (4):
drm: fix null-ptr-deref in drm_dev_init_release()
Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
media: dmxdev: fix UAF when dvb_register_device() fails
media: msi001: fix possible null-ptr-deref in msi001_probe()
Wei Yongjun (3):
usb: ftdi-elan: fix memory leak on device disconnect
misc: lattice-ecp3-config: Fix task hung when firmware load failed
Bluetooth: Fix debugfs entry leak in hci_register_dev()
Wen Gong (1):
ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
Wen Gu (1):
net/smc: Fix hung_task when removing SMC-R devices
Will Deacon (1):
arm64: lib: Annotate {clear, copy}_page() as position-independent
William Kucharski (1):
cgroup: Trace event cgroup id fields should be u64
Willy Tarreau (2):
tools/nolibc: i386: fix initial stack alignment
tools/nolibc: fix incorrect truncation of exit code
Xiangyang Zhang (1):
tracing/kprobes: 'nmissed' not showed correctly for kretprobe
Xie Yongji (1):
fuse: Pass correct lend value to filemap_write_and_wait_range()
Xin Xiong (1):
netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
Xin Yin (3):
ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
ext4: use ext4_ext_remove_space() for fast commit replay delete range
ext4: fast commit may miss tracking unwritten range during ftruncate
Xiongfeng Wang (1):
iommu/iova: Fix race between FQ timeout and teardown
Xiongwei Song (1):
floppy: Add max size check for user space request
Yang Li (1):
drm/amd/display: check top_pipe_to_program pointer
Yang Yingliang (3):
media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
staging: rtl8192e: return error code from rtllib_softmac_init()
staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
Ye Bin (3):
ext4: Fix BUG_ON in ext4_bread when write quota data
ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
block: Fix fsync always failed if once failed
Ye Guojin (1):
MIPS: OCTEON: add put_device() after of_find_device_by_node()
Yifeng Li (1):
PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
Yixing Liu (1):
RDMA/hns: Modify the mapping attribute of doorbell to device
Yunfei Wang (1):
iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
Zechuan Chen (1):
perf probe: Fix ppc64 'perf probe add events failed' case
Zekun Shen (5):
ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
rsi: Fix use-after-free in rsi_rx_done_handler()
rsi: Fix out-of-bounds read in rsi_read_pkt()
ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
Zhang Zixun (1):
x86/mce/inject: Avoid out-of-bounds write when setting flags
Zheyu Ma (1):
media: b2c2: Add missing check in flexcop_pci_isr:
Zhou Qingyang (9):
drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode()
drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
media: dib8000: Fix a memleak in dib8000_init()
media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()
Zizhuang Deng (1):
lib/mpi: Add the return value check of kcalloc()
Zongmin Zhou (1):
drm/amdgpu: fixup bad vram size on gmc v8
xinhui pan (1):
drm/ttm: Put BO in its memory manager's lru list
^ permalink raw reply [relevance 1%]
* Re: Linux 5.15.17
2022-01-27 13:32 1% Linux 5.15.17 Greg Kroah-Hartman
@ 2022-01-27 13:32 1% ` Greg Kroah-Hartman
0 siblings, 0 replies; 200+ results
From: Greg Kroah-Hartman @ 2022-01-27 13:32 UTC (permalink / raw)
To: linux-kernel, akpm, torvalds, stable; +Cc: lwn, jslaby, Greg Kroah-Hartman
diff --git a/Documentation/admin-guide/cifs/usage.rst b/Documentation/admin-guide/cifs/usage.rst
index f170d8820258..3766bf8a1c20 100644
--- a/Documentation/admin-guide/cifs/usage.rst
+++ b/Documentation/admin-guide/cifs/usage.rst
@@ -734,10 +734,9 @@ SecurityFlags Flags which control security negotiation and
using weaker password hashes is 0x37037 (lanman,
plaintext, ntlm, ntlmv2, signing allowed). Some
SecurityFlags require the corresponding menuconfig
- options to be enabled (lanman and plaintext require
- CONFIG_CIFS_WEAK_PW_HASH for example). Enabling
- plaintext authentication currently requires also
- enabling lanman authentication in the security flags
+ options to be enabled. Enabling plaintext
+ authentication currently requires also enabling
+ lanman authentication in the security flags
because the cifs module only supports sending
laintext passwords using the older lanman dialect
form of the session setup SMB. (e.g. for authentication
diff --git a/Documentation/admin-guide/devices.txt b/Documentation/admin-guide/devices.txt
index 922c23bb4372..c07dc0ee860e 100644
--- a/Documentation/admin-guide/devices.txt
+++ b/Documentation/admin-guide/devices.txt
@@ -2339,13 +2339,7 @@
disks (see major number 3) except that the limit on
partitions is 31.
- 162 char Raw block device interface
- 0 = /dev/rawctl Raw I/O control device
- 1 = /dev/raw/raw1 First raw I/O device
- 2 = /dev/raw/raw2 Second raw I/O device
- ...
- max minor number of raw device is set by kernel config
- MAX_RAW_DEVS or raw module parameter 'max_raw_devs'
+ 162 char Used for (now removed) raw block device interface
163 char
diff --git a/Documentation/admin-guide/hw-vuln/spectre.rst b/Documentation/admin-guide/hw-vuln/spectre.rst
index e05e581af5cf..985181dba0ba 100644
--- a/Documentation/admin-guide/hw-vuln/spectre.rst
+++ b/Documentation/admin-guide/hw-vuln/spectre.rst
@@ -468,7 +468,7 @@ Spectre variant 2
before invoking any firmware code to prevent Spectre variant 2 exploits
using the firmware.
- Using kernel address space randomization (CONFIG_RANDOMIZE_SLAB=y
+ Using kernel address space randomization (CONFIG_RANDOMIZE_BASE=y
and CONFIG_SLAB_FREELIST_RANDOM=y in the kernel configuration) makes
attacks on the kernel generally more difficult.
diff --git a/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml b/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
index cf5a208f2f10..343598c9f473 100644
--- a/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
+++ b/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
@@ -10,6 +10,9 @@ title: Amlogic specific extensions to the Synopsys Designware HDMI Controller
maintainers:
- Neil Armstrong <narmstrong@baylibre.com>
+allOf:
+ - $ref: /schemas/sound/name-prefix.yaml#
+
description: |
The Amlogic Meson Synopsys Designware Integration is composed of
- A Synopsys DesignWare HDMI Controller IP
@@ -99,6 +102,8 @@ properties:
"#sound-dai-cells":
const: 0
+ sound-name-prefix: true
+
required:
- compatible
- reg
diff --git a/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml b/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
index 851cb0781217..047fd69e0377 100644
--- a/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
+++ b/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
@@ -78,6 +78,10 @@ properties:
interrupts:
maxItems: 1
+ amlogic,canvas:
+ description: should point to a canvas provider node
+ $ref: /schemas/types.yaml#/definitions/phandle
+
power-domains:
maxItems: 1
description: phandle to the associated power domain
@@ -106,6 +110,7 @@ required:
- port@1
- "#address-cells"
- "#size-cells"
+ - amlogic,canvas
additionalProperties: false
@@ -118,6 +123,7 @@ examples:
interrupts = <3>;
#address-cells = <1>;
#size-cells = <0>;
+ amlogic,canvas = <&canvas>;
/* CVBS VDAC output port */
port@0 {
diff --git a/Documentation/devicetree/bindings/input/hid-over-i2c.txt b/Documentation/devicetree/bindings/input/hid-over-i2c.txt
index c76bafaf98d2..34c43d3bddfd 100644
--- a/Documentation/devicetree/bindings/input/hid-over-i2c.txt
+++ b/Documentation/devicetree/bindings/input/hid-over-i2c.txt
@@ -32,6 +32,8 @@ device-specific compatible properties, which should be used in addition to the
- vdd-supply: phandle of the regulator that provides the supply voltage.
- post-power-on-delay-ms: time required by the device after enabling its regulators
or powering it on, before it is ready for communication.
+- touchscreen-inverted-x: See touchscreen.txt
+- touchscreen-inverted-y: See touchscreen.txt
Example:
diff --git a/Documentation/devicetree/bindings/thermal/thermal-zones.yaml b/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
index a07de5ed0ca6..2d34f3ccb257 100644
--- a/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
+++ b/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
@@ -199,12 +199,11 @@ patternProperties:
contribution:
$ref: /schemas/types.yaml#/definitions/uint32
- minimum: 0
- maximum: 100
description:
- The percentage contribution of the cooling devices at the
- specific trip temperature referenced in this map
- to this thermal zone
+ The cooling contribution to the thermal zone of the referred
+ cooling device at the referred trip point. The contribution is
+ a ratio of the sum of all cooling contributions within a
+ thermal zone.
required:
- trip
diff --git a/Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml b/Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml
index 76cb9586ee00..93cd77a6e92c 100644
--- a/Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml
+++ b/Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml
@@ -39,8 +39,8 @@ properties:
samsung,syscon-phandle:
$ref: /schemas/types.yaml#/definitions/phandle
description:
- Phandle to the PMU system controller node (in case of Exynos5250
- and Exynos5420).
+ Phandle to the PMU system controller node (in case of Exynos5250,
+ Exynos5420 and Exynos7).
required:
- compatible
@@ -58,6 +58,7 @@ allOf:
enum:
- samsung,exynos5250-wdt
- samsung,exynos5420-wdt
+ - samsung,exynos7-wdt
then:
required:
- samsung,syscon-phandle
diff --git a/Documentation/driver-api/dmaengine/dmatest.rst b/Documentation/driver-api/dmaengine/dmatest.rst
index ee268d445d38..d2e1d8b58e7d 100644
--- a/Documentation/driver-api/dmaengine/dmatest.rst
+++ b/Documentation/driver-api/dmaengine/dmatest.rst
@@ -143,13 +143,14 @@ Part 5 - Handling channel allocation
Allocating Channels
-------------------
-Channels are required to be configured prior to starting the test run.
-Attempting to run the test without configuring the channels will fail.
+Channels do not need to be configured prior to starting a test run. Attempting
+to run the test without configuring the channels will result in testing any
+channels that are available.
Example::
% echo 1 > /sys/module/dmatest/parameters/run
- dmatest: Could not start test, no channels configured
+ dmatest: No channels configured, continue with any
Channels are registered using the "channel" parameter. Channels can be requested by their
name, once requested, the channel is registered and a pending thread is added to the test list.
diff --git a/Documentation/driver-api/firewire.rst b/Documentation/driver-api/firewire.rst
index 94a2d7f01d99..d3cfa73cbb2b 100644
--- a/Documentation/driver-api/firewire.rst
+++ b/Documentation/driver-api/firewire.rst
@@ -19,7 +19,7 @@ of kernel interfaces is available via exported symbols in `firewire-core` module
Firewire char device data structures
====================================
-.. include:: /ABI/stable/firewire-cdev
+.. include:: ../ABI/stable/firewire-cdev
:literal:
.. kernel-doc:: include/uapi/linux/firewire-cdev.h
@@ -28,7 +28,7 @@ Firewire char device data structures
Firewire device probing and sysfs interfaces
============================================
-.. include:: /ABI/stable/sysfs-bus-firewire
+.. include:: ../ABI/stable/sysfs-bus-firewire
:literal:
.. kernel-doc:: drivers/firewire/core-device.c
diff --git a/Documentation/firmware-guide/acpi/dsd/data-node-references.rst b/Documentation/firmware-guide/acpi/dsd/data-node-references.rst
index b7ad47df49de..8b65b32e6e40 100644
--- a/Documentation/firmware-guide/acpi/dsd/data-node-references.rst
+++ b/Documentation/firmware-guide/acpi/dsd/data-node-references.rst
@@ -5,7 +5,7 @@
Referencing hierarchical data nodes
===================================
-:Copyright: |copy| 2018 Intel Corporation
+:Copyright: |copy| 2018, 2021 Intel Corporation
:Author: Sakari Ailus <sakari.ailus@linux.intel.com>
ACPI in general allows referring to device objects in the tree only.
@@ -52,12 +52,14 @@ the ANOD object which is also the final target node of the reference.
Name (NOD0, Package() {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
+ Package () { "reg", 0 },
Package () { "random-property", 3 },
}
})
Name (NOD1, Package() {
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () {
+ Package () { "reg", 1 },
Package () { "anothernode", "ANOD" },
}
})
@@ -74,7 +76,11 @@ the ANOD object which is also the final target node of the reference.
Name (_DSD, Package () {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
- Package () { "reference", ^DEV0, "node@1", "anothernode" },
+ Package () {
+ "reference", Package () {
+ ^DEV0, "node@1", "anothernode"
+ }
+ },
}
})
}
diff --git a/Documentation/trace/coresight/coresight-config.rst b/Documentation/trace/coresight/coresight-config.rst
index a4e3ef295240..6ed13398ca2c 100644
--- a/Documentation/trace/coresight/coresight-config.rst
+++ b/Documentation/trace/coresight/coresight-config.rst
@@ -211,19 +211,13 @@ also declared in the perf 'cs_etm' event infrastructure so that they can
be selected when running trace under perf::
$ ls /sys/devices/cs_etm
- configurations format perf_event_mux_interval_ms sinks type
- events nr_addr_filters power
+ cpu0 cpu2 events nr_addr_filters power subsystem uevent
+ cpu1 cpu3 format perf_event_mux_interval_ms sinks type
-Key directories here are 'configurations' - which lists the loaded
-configurations, and 'events' - a generic perf directory which allows
-selection on the perf command line.::
+The key directory here is 'events' - a generic perf directory which allows
+selection on the perf command line. As with the sinks entries, this provides
+a hash of the configuration name.
- $ ls configurations/
- autofdo
- $ cat configurations/autofdo
- 0xa7c3dddd
-
-As with the sinks entries, this provides a hash of the configuration name.
The entry in the 'events' directory uses perfs built in syntax generator
to substitute the syntax for the name when evaluating the command::
diff --git a/Makefile b/Makefile
index af173c9df942..088197ed3f66 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 15
-SUBLEVEL = 16
+SUBLEVEL = 17
EXTRAVERSION =
NAME = Trick or Treat
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 98436702e0c7..644875d73ba1 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -410,12 +410,12 @@ choice
Say Y here if you want kernel low-level debugging support
on i.MX25.
- config DEBUG_IMX21_IMX27_UART
- bool "i.MX21 and i.MX27 Debug UART"
- depends on SOC_IMX21 || SOC_IMX27
+ config DEBUG_IMX27_UART
+ bool "i.MX27 Debug UART"
+ depends on SOC_IMX27
help
Say Y here if you want kernel low-level debugging support
- on i.MX21 or i.MX27.
+ on i.MX27.
config DEBUG_IMX28_UART
bool "i.MX28 Debug UART"
@@ -1481,7 +1481,7 @@ config DEBUG_IMX_UART_PORT
int "i.MX Debug UART Port Selection"
depends on DEBUG_IMX1_UART || \
DEBUG_IMX25_UART || \
- DEBUG_IMX21_IMX27_UART || \
+ DEBUG_IMX27_UART || \
DEBUG_IMX31_UART || \
DEBUG_IMX35_UART || \
DEBUG_IMX50_UART || \
@@ -1540,12 +1540,12 @@ config DEBUG_LL_INCLUDE
default "debug/icedcc.S" if DEBUG_ICEDCC
default "debug/imx.S" if DEBUG_IMX1_UART || \
DEBUG_IMX25_UART || \
- DEBUG_IMX21_IMX27_UART || \
+ DEBUG_IMX27_UART || \
DEBUG_IMX31_UART || \
DEBUG_IMX35_UART || \
DEBUG_IMX50_UART || \
DEBUG_IMX51_UART || \
- DEBUG_IMX53_UART ||\
+ DEBUG_IMX53_UART || \
DEBUG_IMX6Q_UART || \
DEBUG_IMX6SL_UART || \
DEBUG_IMX6SX_UART || \
diff --git a/arch/arm/boot/compressed/efi-header.S b/arch/arm/boot/compressed/efi-header.S
index c0e7a745103e..230030c13085 100644
--- a/arch/arm/boot/compressed/efi-header.S
+++ b/arch/arm/boot/compressed/efi-header.S
@@ -9,16 +9,22 @@
#include <linux/sizes.h>
.macro __nop
-#ifdef CONFIG_EFI_STUB
- @ This is almost but not quite a NOP, since it does clobber the
- @ condition flags. But it is the best we can do for EFI, since
- @ PE/COFF expects the magic string "MZ" at offset 0, while the
- @ ARM/Linux boot protocol expects an executable instruction
- @ there.
- .inst MZ_MAGIC | (0x1310 << 16) @ tstne r0, #0x4d000
-#else
AR_CLASS( mov r0, r0 )
M_CLASS( nop.w )
+ .endm
+
+ .macro __initial_nops
+#ifdef CONFIG_EFI_STUB
+ @ This is a two-instruction NOP, which happens to bear the
+ @ PE/COFF signature "MZ" in the first two bytes, so the kernel
+ @ is accepted as an EFI binary. Booting via the UEFI stub
+ @ will not execute those instructions, but the ARM/Linux
+ @ boot protocol does, so we need some NOPs here.
+ .inst MZ_MAGIC | (0xe225 << 16) @ eor r5, r5, 0x4d000
+ eor r5, r5, 0x4d000 @ undo previous insn
+#else
+ __nop
+ __nop
#endif
.endm
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index b1cb1972361b..bf79f2f78d23 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -203,7 +203,8 @@ start:
* were patching the initial instructions of the kernel, i.e
* had started to exploit this "patch area".
*/
- .rept 7
+ __initial_nops
+ .rept 5
__nop
.endr
#ifndef CONFIG_THUMB2_KERNEL
diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
index 9b1a24cc5e91..df3c8d1d8f64 100644
--- a/arch/arm/boot/dts/armada-38x.dtsi
+++ b/arch/arm/boot/dts/armada-38x.dtsi
@@ -168,7 +168,7 @@ i2c1: i2c@11100 {
};
uart0: serial@12000 {
- compatible = "marvell,armada-38x-uart";
+ compatible = "marvell,armada-38x-uart", "ns16550a";
reg = <0x12000 0x100>;
reg-shift = <2>;
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
@@ -178,7 +178,7 @@ uart0: serial@12000 {
};
uart1: serial@12100 {
- compatible = "marvell,armada-38x-uart";
+ compatible = "marvell,armada-38x-uart", "ns16550a";
reg = <0x12100 0x100>;
reg-shift = <2>;
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/gemini-nas4220b.dts b/arch/arm/boot/dts/gemini-nas4220b.dts
index 13112a8a5dd8..6544c730340f 100644
--- a/arch/arm/boot/dts/gemini-nas4220b.dts
+++ b/arch/arm/boot/dts/gemini-nas4220b.dts
@@ -84,7 +84,7 @@ flash@30000000 {
partitions {
compatible = "redboot-fis";
/* Eraseblock at 0xfe0000 */
- fis-index-block = <0x1fc>;
+ fis-index-block = <0x7f>;
};
};
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
index 32335d4ce478..d40c3d2c4914 100644
--- a/arch/arm/boot/dts/omap3-n900.dts
+++ b/arch/arm/boot/dts/omap3-n900.dts
@@ -8,6 +8,7 @@
#include "omap34xx.dtsi"
#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
/*
* Default secure signed bootloader (Nokia X-Loader) does not enable L3 firewall
@@ -630,63 +631,92 @@ indicator {
};
lp5523: lp5523@32 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "national,lp5523";
reg = <0x32>;
clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
- enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
+ enable-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
- chan0 {
+ led@0 {
+ reg = <0>;
chan-name = "lp5523:kb1";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan1 {
+ led@1 {
+ reg = <1>;
chan-name = "lp5523:kb2";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan2 {
+ led@2 {
+ reg = <2>;
chan-name = "lp5523:kb3";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan3 {
+ led@3 {
+ reg = <3>;
chan-name = "lp5523:kb4";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan4 {
+ led@4 {
+ reg = <4>;
chan-name = "lp5523:b";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_BLUE>;
+ function = LED_FUNCTION_STATUS;
};
- chan5 {
+ led@5 {
+ reg = <5>;
chan-name = "lp5523:g";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_STATUS;
};
- chan6 {
+ led@6 {
+ reg = <6>;
chan-name = "lp5523:r";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_RED>;
+ function = LED_FUNCTION_STATUS;
};
- chan7 {
+ led@7 {
+ reg = <7>;
chan-name = "lp5523:kb5";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan8 {
+ led@8 {
+ reg = <8>;
chan-name = "lp5523:kb6";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
};
diff --git a/arch/arm/boot/dts/qcom-sdx55.dtsi b/arch/arm/boot/dts/qcom-sdx55.dtsi
index 1e6ce035f76a..b5b784c5c65e 100644
--- a/arch/arm/boot/dts/qcom-sdx55.dtsi
+++ b/arch/arm/boot/dts/qcom-sdx55.dtsi
@@ -334,12 +334,10 @@ ipa: ipa@1e40000 {
clocks = <&rpmhcc RPMH_IPA_CLK>;
clock-names = "core";
- interconnects = <&system_noc MASTER_IPA &system_noc SLAVE_SNOC_MEM_NOC_GC>,
- <&mem_noc MASTER_SNOC_GC_MEM_NOC &mc_virt SLAVE_EBI_CH0>,
+ interconnects = <&system_noc MASTER_IPA &mc_virt SLAVE_EBI_CH0>,
<&system_noc MASTER_IPA &system_noc SLAVE_OCIMEM>,
<&mem_noc MASTER_AMPSS_M0 &system_noc SLAVE_IPA_CFG>;
- interconnect-names = "memory-a",
- "memory-b",
+ interconnect-names = "memory",
"imem",
"config";
diff --git a/arch/arm/boot/dts/sama7g5-pinfunc.h b/arch/arm/boot/dts/sama7g5-pinfunc.h
index 22fe9e522a97..4eb30445d205 100644
--- a/arch/arm/boot/dts/sama7g5-pinfunc.h
+++ b/arch/arm/boot/dts/sama7g5-pinfunc.h
@@ -765,7 +765,7 @@
#define PIN_PD20__PCK0 PINMUX_PIN(PIN_PD20, 1, 3)
#define PIN_PD20__FLEXCOM2_IO3 PINMUX_PIN(PIN_PD20, 2, 2)
#define PIN_PD20__PWMH3 PINMUX_PIN(PIN_PD20, 3, 4)
-#define PIN_PD20__CANTX4 PINMUX_PIN(PIN_PD20, 5, 2)
+#define PIN_PD20__CANTX4 PINMUX_PIN(PIN_PD20, 4, 2)
#define PIN_PD20__FLEXCOM5_IO0 PINMUX_PIN(PIN_PD20, 6, 5)
#define PIN_PD21 117
#define PIN_PD21__GPIO PINMUX_PIN(PIN_PD21, 0, 0)
diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts
index 075ac57d0bf4..6435e099c632 100644
--- a/arch/arm/boot/dts/stm32f429-disco.dts
+++ b/arch/arm/boot/dts/stm32f429-disco.dts
@@ -192,7 +192,7 @@ l3gd20: l3gd20@0 {
display: display@1{
/* Connect panel-ilitek-9341 to ltdc */
- compatible = "st,sf-tc240t-9370-t";
+ compatible = "st,sf-tc240t-9370-t", "ilitek,ili9341";
reg = <1>;
spi-3wire;
spi-max-frequency = <10000000>;
diff --git a/arch/arm/configs/cm_x300_defconfig b/arch/arm/configs/cm_x300_defconfig
index 502a9d870ca4..45769d0ddd4e 100644
--- a/arch/arm/configs/cm_x300_defconfig
+++ b/arch/arm/configs/cm_x300_defconfig
@@ -146,7 +146,6 @@ CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_ISO8859_1=m
diff --git a/arch/arm/configs/ezx_defconfig b/arch/arm/configs/ezx_defconfig
index a49e699e52de..ec84d80096b1 100644
--- a/arch/arm/configs/ezx_defconfig
+++ b/arch/arm/configs/ezx_defconfig
@@ -314,7 +314,6 @@ CONFIG_NFSD_V3_ACL=y
CONFIG_SMB_FS=m
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/arm/configs/imote2_defconfig b/arch/arm/configs/imote2_defconfig
index 118c4c927f26..6db871d4e077 100644
--- a/arch/arm/configs/imote2_defconfig
+++ b/arch/arm/configs/imote2_defconfig
@@ -288,7 +288,6 @@ CONFIG_NFSD_V3_ACL=y
CONFIG_SMB_FS=m
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/arm/configs/nhk8815_defconfig b/arch/arm/configs/nhk8815_defconfig
index 23595fc5a29a..907d6512821a 100644
--- a/arch/arm/configs/nhk8815_defconfig
+++ b/arch/arm/configs/nhk8815_defconfig
@@ -127,7 +127,6 @@ CONFIG_NFS_FS=y
CONFIG_NFS_V3_ACL=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
diff --git a/arch/arm/configs/pxa_defconfig b/arch/arm/configs/pxa_defconfig
index 58f4834289e6..dedaaae3d0d8 100644
--- a/arch/arm/configs/pxa_defconfig
+++ b/arch/arm/configs/pxa_defconfig
@@ -699,7 +699,6 @@ CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_DEFAULT="utf8"
diff --git a/arch/arm/configs/spear13xx_defconfig b/arch/arm/configs/spear13xx_defconfig
index 3b206a31902f..065553326b39 100644
--- a/arch/arm/configs/spear13xx_defconfig
+++ b/arch/arm/configs/spear13xx_defconfig
@@ -61,7 +61,6 @@ CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_RAW_DRIVER=y
-CONFIG_MAX_RAW_DEVS=8192
CONFIG_I2C=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SPI=y
diff --git a/arch/arm/configs/spear3xx_defconfig b/arch/arm/configs/spear3xx_defconfig
index fc5f71c765ed..afca722d6605 100644
--- a/arch/arm/configs/spear3xx_defconfig
+++ b/arch/arm/configs/spear3xx_defconfig
@@ -41,7 +41,6 @@ CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_RAW_DRIVER=y
-CONFIG_MAX_RAW_DEVS=8192
CONFIG_I2C=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SPI=y
diff --git a/arch/arm/configs/spear6xx_defconfig b/arch/arm/configs/spear6xx_defconfig
index 52a56b8ce6a7..bc32c02cb86b 100644
--- a/arch/arm/configs/spear6xx_defconfig
+++ b/arch/arm/configs/spear6xx_defconfig
@@ -36,7 +36,6 @@ CONFIG_INPUT_FF_MEMLESS=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_RAW_DRIVER=y
-CONFIG_MAX_RAW_DEVS=8192
CONFIG_I2C=y
CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_SPI=y
diff --git a/arch/arm/include/debug/imx-uart.h b/arch/arm/include/debug/imx-uart.h
index c8eb83d4b896..3edbb3c5b42b 100644
--- a/arch/arm/include/debug/imx-uart.h
+++ b/arch/arm/include/debug/imx-uart.h
@@ -11,13 +11,6 @@
#define IMX1_UART_BASE_ADDR(n) IMX1_UART##n##_BASE_ADDR
#define IMX1_UART_BASE(n) IMX1_UART_BASE_ADDR(n)
-#define IMX21_UART1_BASE_ADDR 0x1000a000
-#define IMX21_UART2_BASE_ADDR 0x1000b000
-#define IMX21_UART3_BASE_ADDR 0x1000c000
-#define IMX21_UART4_BASE_ADDR 0x1000d000
-#define IMX21_UART_BASE_ADDR(n) IMX21_UART##n##_BASE_ADDR
-#define IMX21_UART_BASE(n) IMX21_UART_BASE_ADDR(n)
-
#define IMX25_UART1_BASE_ADDR 0x43f90000
#define IMX25_UART2_BASE_ADDR 0x43f94000
#define IMX25_UART3_BASE_ADDR 0x5000c000
@@ -26,6 +19,13 @@
#define IMX25_UART_BASE_ADDR(n) IMX25_UART##n##_BASE_ADDR
#define IMX25_UART_BASE(n) IMX25_UART_BASE_ADDR(n)
+#define IMX27_UART1_BASE_ADDR 0x1000a000
+#define IMX27_UART2_BASE_ADDR 0x1000b000
+#define IMX27_UART3_BASE_ADDR 0x1000c000
+#define IMX27_UART4_BASE_ADDR 0x1000d000
+#define IMX27_UART_BASE_ADDR(n) IMX27_UART##n##_BASE_ADDR
+#define IMX27_UART_BASE(n) IMX27_UART_BASE_ADDR(n)
+
#define IMX31_UART1_BASE_ADDR 0x43f90000
#define IMX31_UART2_BASE_ADDR 0x43f94000
#define IMX31_UART3_BASE_ADDR 0x5000c000
@@ -112,10 +112,10 @@
#ifdef CONFIG_DEBUG_IMX1_UART
#define UART_PADDR IMX_DEBUG_UART_BASE(IMX1)
-#elif defined(CONFIG_DEBUG_IMX21_IMX27_UART)
-#define UART_PADDR IMX_DEBUG_UART_BASE(IMX21)
#elif defined(CONFIG_DEBUG_IMX25_UART)
#define UART_PADDR IMX_DEBUG_UART_BASE(IMX25)
+#elif defined(CONFIG_DEBUG_IMX27_UART)
+#define UART_PADDR IMX_DEBUG_UART_BASE(IMX27)
#elif defined(CONFIG_DEBUG_IMX31_UART)
#define UART_PADDR IMX_DEBUG_UART_BASE(IMX31)
#elif defined(CONFIG_DEBUG_IMX35_UART)
diff --git a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
index ee949255ced3..09ef73b99dd8 100644
--- a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
+++ b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
@@ -154,8 +154,10 @@ static int __init rcar_gen2_regulator_quirk(void)
return -ENODEV;
for_each_matching_node_and_match(np, rcar_gen2_quirk_match, &id) {
- if (!of_device_is_available(np))
+ if (!of_device_is_available(np)) {
+ of_node_put(np);
break;
+ }
ret = of_property_read_u32(np, "reg", &addr);
if (ret) /* Skip invalid entry and continue */
@@ -164,6 +166,7 @@ static int __init rcar_gen2_regulator_quirk(void)
quirk = kzalloc(sizeof(*quirk), GFP_KERNEL);
if (!quirk) {
ret = -ENOMEM;
+ of_node_put(np);
goto err_mem;
}
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
index 00c6f53290d4..428449d98c0a 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -58,7 +58,7 @@ efuse: efuse {
secure-monitor = <&sm>;
};
- gpu_opp_table: gpu-opp-table {
+ gpu_opp_table: opp-table-gpu {
compatible = "operating-points-v2";
opp-124999998 {
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
index 4f33820aba1f..a84ed3578425 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
@@ -607,7 +607,7 @@ &spifc {
pinctrl-0 = <&nor_pins>;
pinctrl-names = "default";
- mx25u64: spi-flash@0 {
+ mx25u64: flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "mxicy,mx25u6435f", "jedec,spi-nor";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
index a350fee1264d..a4d34398da35 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
@@ -6,6 +6,7 @@
*/
#include "meson-gxbb.dtsi"
+#include <dt-bindings/gpio/gpio.h>
/ {
aliases {
@@ -64,6 +65,7 @@ vddio_ao18: regulator-vddio_ao18 {
regulator-name = "VDDIO_AO18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-always-on;
};
vcc_3v3: regulator-vcc_3v3 {
@@ -161,6 +163,7 @@ &hdmi_tx {
status = "okay";
pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
pinctrl-names = "default";
+ hdmi-supply = <&vddio_ao18>;
};
&hdmi_tx_tmds_port {
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
index bfd14b64567e..2f92e62ecafe 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
@@ -272,11 +272,6 @@ temperature-sensor@4c {
vcc-supply = <&sb_3v3>;
};
- rtc@51 {
- compatible = "nxp,pcf2129";
- reg = <0x51>;
- };
-
eeprom@56 {
compatible = "atmel,24c512";
reg = <0x56>;
@@ -318,6 +313,15 @@ mux: mux-controller {
};
+&i2c1 {
+ status = "okay";
+
+ rtc@51 {
+ compatible = "nxp,pcf2129";
+ reg = <0x51>;
+ };
+};
+
&enetc_port1 {
phy-handle = <&qds_phy1>;
phy-connection-type = "rgmii-id";
diff --git a/arch/arm64/boot/dts/marvell/cn9130.dtsi b/arch/arm64/boot/dts/marvell/cn9130.dtsi
index a2b7e5ec979d..327b04134134 100644
--- a/arch/arm64/boot/dts/marvell/cn9130.dtsi
+++ b/arch/arm64/boot/dts/marvell/cn9130.dtsi
@@ -11,6 +11,13 @@ / {
model = "Marvell Armada CN9130 SoC";
compatible = "marvell,cn9130", "marvell,armada-ap807-quad",
"marvell,armada-ap807";
+
+ aliases {
+ gpio1 = &cp0_gpio1;
+ gpio2 = &cp0_gpio2;
+ spi1 = &cp0_spi0;
+ spi2 = &cp0_spi1;
+ };
};
/*
@@ -35,3 +42,11 @@ / {
#undef CP11X_PCIE0_BASE
#undef CP11X_PCIE1_BASE
#undef CP11X_PCIE2_BASE
+
+&cp0_gpio1 {
+ status = "okay";
+};
+
+&cp0_gpio2 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/nvidia/tegra186.dtsi b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
index e94f8add1a40..062e87e89331 100644
--- a/arch/arm64/boot/dts/nvidia/tegra186.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
@@ -1079,7 +1079,7 @@ sdmmc3_1v8: sdmmc3-1v8 {
ccplex@e000000 {
compatible = "nvidia,tegra186-ccplex-cluster";
- reg = <0x0 0x0e000000 0x0 0x3fffff>;
+ reg = <0x0 0x0e000000 0x0 0x400000>;
nvidia,bpmp = <&bpmp>;
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
index c8250a3f7891..510d2974470c 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
@@ -818,9 +818,8 @@ hda@3510000 {
<&bpmp TEGRA194_CLK_HDA2CODEC_2X>;
clock-names = "hda", "hda2hdmi", "hda2codec_2x";
resets = <&bpmp TEGRA194_RESET_HDA>,
- <&bpmp TEGRA194_RESET_HDA2HDMICODEC>,
- <&bpmp TEGRA194_RESET_HDA2CODEC_2X>;
- reset-names = "hda", "hda2hdmi", "hda2codec_2x";
+ <&bpmp TEGRA194_RESET_HDA2HDMICODEC>;
+ reset-names = "hda", "hda2hdmi";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
interconnects = <&mc TEGRA194_MEMORY_CLIENT_HDAR &emc>,
<&mc TEGRA194_MEMORY_CLIENT_HDAW &emc>;
diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
index 7b6205c180df..ce4c2b4a5fc0 100644
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
@@ -221,7 +221,7 @@ tlmm: pinctrl@1000000 {
interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
- gpio-ranges = <&tlmm 0 80>;
+ gpio-ranges = <&tlmm 0 0 80>;
interrupt-controller;
#interrupt-cells = <2>;
diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
index 427bb2062654..8b2724272464 100644
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -19,8 +19,8 @@ / {
#size-cells = <2>;
aliases {
- sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
- sdhc2 = &sdhc_2; /* SDC2 SD card slot */
+ mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+ mmc1 = &sdhc_2; /* SDC2 SD card slot */
};
chosen { };
diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index f8d28dd76cfa..6077c3601951 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -965,9 +965,6 @@ gpu: gpu@b00000 {
nvmem-cells = <&speedbin_efuse>;
nvmem-cell-names = "speed_bin";
- qcom,gpu-quirk-two-pass-use-wfi;
- qcom,gpu-quirk-fault-detect-mask;
-
operating-points-v2 = <&gpu_opp_table>;
status = "disabled";
diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index f58336536a92..692973c4f434 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -429,7 +429,7 @@ gcc: clock-controller@100000 {
<&rpmhcc RPMH_CXO_CLK_A>, <&sleep_clk>,
<0>, <0>, <0>, <0>, <0>, <0>;
clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk",
- "pcie_0_pipe_clk", "pcie_1_pipe-clk",
+ "pcie_0_pipe_clk", "pcie_1_pipe_clk",
"ufs_phy_rx_symbol_0_clk", "ufs_phy_rx_symbol_1_clk",
"ufs_phy_tx_symbol_0_clk",
"usb3_phy_wrapper_gcc_usb30_pipe_clk";
diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
index 2ba23aa582a1..617a634ac905 100644
--- a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
+++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
@@ -518,6 +518,10 @@ dai@0 {
dai@1 {
reg = <1>;
};
+
+ dai@2 {
+ reg = <2>;
+ };
};
&sound {
@@ -530,6 +534,7 @@ &sound {
"SpkrLeft IN", "SPK1 OUT",
"SpkrRight IN", "SPK2 OUT",
"MM_DL1", "MultiMedia1 Playback",
+ "MM_DL3", "MultiMedia3 Playback",
"MultiMedia2 Capture", "MM_UL2";
mm1-dai-link {
@@ -546,6 +551,13 @@ cpu {
};
};
+ mm3-dai-link {
+ link-name = "MultiMedia3";
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
+ };
+ };
+
slim-dai-link {
link-name = "SLIM Playback";
cpu {
@@ -575,6 +587,21 @@ codec {
sound-dai = <&wcd9340 1>;
};
};
+
+ slim-wcd-dai-link {
+ link-name = "SLIM WCD Playback";
+ cpu {
+ sound-dai = <&q6afedai SLIMBUS_1_RX>;
+ };
+
+ platform {
+ sound-dai = <&q6routing>;
+ };
+
+ codec {
+ sound-dai = <&wcd9340 2>;
+ };
+ };
};
&tlmm {
diff --git a/arch/arm64/boot/dts/qcom/sm8350.dtsi b/arch/arm64/boot/dts/qcom/sm8350.dtsi
index e91cd8a5e535..296ffb0e9888 100644
--- a/arch/arm64/boot/dts/qcom/sm8350.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8350.dtsi
@@ -2185,7 +2185,7 @@ camera1_alert0: trip-point0 {
};
};
- camera-thermal-bottom {
+ cam-thermal-bottom {
polling-delay-passive = <250>;
polling-delay = <1000>;
diff --git a/arch/arm64/boot/dts/renesas/cat875.dtsi b/arch/arm64/boot/dts/renesas/cat875.dtsi
index 801ea54b027c..20f8adc635e7 100644
--- a/arch/arm64/boot/dts/renesas/cat875.dtsi
+++ b/arch/arm64/boot/dts/renesas/cat875.dtsi
@@ -18,6 +18,7 @@ &avb {
pinctrl-names = "default";
renesas,no-ether-link;
phy-handle = <&phy0>;
+ phy-mode = "rgmii-id";
status = "okay";
phy0: ethernet-phy@0 {
diff --git a/arch/arm64/boot/dts/renesas/r8a774a1.dtsi b/arch/arm64/boot/dts/renesas/r8a774a1.dtsi
index 6f4fffacfca2..e70aa5a08740 100644
--- a/arch/arm64/boot/dts/renesas/r8a774a1.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a774a1.dtsi
@@ -2784,7 +2784,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -2799,7 +2799,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -2814,7 +2814,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a774b1.dtsi b/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
index 0f7bdfc90a0d..6c5694fa6690 100644
--- a/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
@@ -2629,7 +2629,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -2644,7 +2644,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -2659,7 +2659,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a774e1.dtsi b/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
index 379a1300272b..62209ab6deb9 100644
--- a/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
@@ -2904,7 +2904,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -2919,7 +2919,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -2934,7 +2934,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77951.dtsi b/arch/arm64/boot/dts/renesas/r8a77951.dtsi
index 1768a3e6bb8d..193d81be40fc 100644
--- a/arch/arm64/boot/dts/renesas/r8a77951.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77951.dtsi
@@ -3375,7 +3375,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -3390,7 +3390,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -3405,7 +3405,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77960.dtsi b/arch/arm64/boot/dts/renesas/r8a77960.dtsi
index 2bd8169735d3..b526e4f0ee6a 100644
--- a/arch/arm64/boot/dts/renesas/r8a77960.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77960.dtsi
@@ -2972,7 +2972,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -2987,7 +2987,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -3002,7 +3002,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77961.dtsi b/arch/arm64/boot/dts/renesas/r8a77961.dtsi
index 041473aa5cd0..21fc95397c3c 100644
--- a/arch/arm64/boot/dts/renesas/r8a77961.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77961.dtsi
@@ -2719,7 +2719,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -2734,7 +2734,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -2749,7 +2749,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77965.dtsi b/arch/arm64/boot/dts/renesas/r8a77965.dtsi
index 08df75606430..f9679a4dd85f 100644
--- a/arch/arm64/boot/dts/renesas/r8a77965.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77965.dtsi
@@ -2784,7 +2784,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -2799,7 +2799,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -2814,7 +2814,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77980.dtsi b/arch/arm64/boot/dts/renesas/r8a77980.dtsi
index 6347d15e66b6..21fe602bd25a 100644
--- a/arch/arm64/boot/dts/renesas/r8a77980.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77980.dtsi
@@ -1580,7 +1580,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- thermal-sensor-1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -1599,7 +1599,7 @@ sensor1-critical {
};
};
- thermal-sensor-2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
diff --git a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi b/arch/arm64/boot/dts/renesas/r8a779a0.dtsi
index 631d520cebee..26899fb768a7 100644
--- a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a779a0.dtsi
@@ -1149,7 +1149,7 @@ prr: chipid@fff00044 {
};
thermal-zones {
- sensor_thermal1: sensor-thermal1 {
+ sensor1_thermal: sensor1-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 0>;
@@ -1163,7 +1163,7 @@ sensor1_crit: sensor1-crit {
};
};
- sensor_thermal2: sensor-thermal2 {
+ sensor2_thermal: sensor2-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 1>;
@@ -1177,7 +1177,7 @@ sensor2_crit: sensor2-crit {
};
};
- sensor_thermal3: sensor-thermal3 {
+ sensor3_thermal: sensor3-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 2>;
@@ -1191,7 +1191,7 @@ sensor3_crit: sensor3-crit {
};
};
- sensor_thermal4: sensor-thermal4 {
+ sensor4_thermal: sensor4-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 3>;
@@ -1205,7 +1205,7 @@ sensor4_crit: sensor4-crit {
};
};
- sensor_thermal5: sensor-thermal5 {
+ sensor5_thermal: sensor5-thermal {
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&tsc 4>;
diff --git a/arch/arm64/boot/dts/ti/k3-am642.dtsi b/arch/arm64/boot/dts/ti/k3-am642.dtsi
index e2b397c88401..8a76f4821b11 100644
--- a/arch/arm64/boot/dts/ti/k3-am642.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am642.dtsi
@@ -60,6 +60,6 @@ L2_0: l2-cache0 {
cache-level = <2>;
cache-size = <0x40000>;
cache-line-size = <64>;
- cache-sets = <512>;
+ cache-sets = <256>;
};
};
diff --git a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
index 874cba75e9a5..7daa28022044 100644
--- a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
@@ -32,7 +32,7 @@ scm_conf: scm-conf@100000 {
#size-cells = <1>;
ranges = <0x00 0x00 0x00100000 0x1c000>;
- serdes_ln_ctrl: serdes-ln-ctrl@4080 {
+ serdes_ln_ctrl: mux-controller@4080 {
compatible = "mmio-mux";
#mux-control-cells = <1>;
mux-reg-masks = <0x4080 0x3>, <0x4084 0x3>, /* SERDES0 lane0/1 select */
diff --git a/arch/arm64/boot/dts/ti/k3-j7200.dtsi b/arch/arm64/boot/dts/ti/k3-j7200.dtsi
index b7005b803149..7586b5aea446 100644
--- a/arch/arm64/boot/dts/ti/k3-j7200.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j7200.dtsi
@@ -60,7 +60,7 @@ cpu0: cpu@0 {
i-cache-sets = <256>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
- d-cache-sets = <128>;
+ d-cache-sets = <256>;
next-level-cache = <&L2_0>;
};
@@ -74,7 +74,7 @@ cpu1: cpu@1 {
i-cache-sets = <256>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
- d-cache-sets = <128>;
+ d-cache-sets = <256>;
next-level-cache = <&L2_0>;
};
};
@@ -84,7 +84,7 @@ L2_0: l2-cache0 {
cache-level = <2>;
cache-size = <0x100000>;
cache-line-size = <64>;
- cache-sets = <2048>;
+ cache-sets = <1024>;
next-level-cache = <&msmc_l3>;
};
diff --git a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
index 08c8d1b47dcd..e85c89eebfa3 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
@@ -42,7 +42,7 @@ scm_conf: scm-conf@100000 {
#size-cells = <1>;
ranges = <0x0 0x0 0x00100000 0x1c000>;
- serdes_ln_ctrl: mux@4080 {
+ serdes_ln_ctrl: mux-controller@4080 {
compatible = "mmio-mux";
reg = <0x00004080 0x50>;
#mux-control-cells = <1>;
diff --git a/arch/arm64/boot/dts/ti/k3-j721e.dtsi b/arch/arm64/boot/dts/ti/k3-j721e.dtsi
index f0587fde147e..69ce048a2136 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e.dtsi
@@ -61,7 +61,7 @@ cpu0: cpu@0 {
i-cache-sets = <256>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
- d-cache-sets = <128>;
+ d-cache-sets = <256>;
next-level-cache = <&L2_0>;
};
@@ -75,7 +75,7 @@ cpu1: cpu@1 {
i-cache-sets = <256>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
- d-cache-sets = <128>;
+ d-cache-sets = <256>;
next-level-cache = <&L2_0>;
};
};
@@ -85,7 +85,7 @@ L2_0: l2-cache0 {
cache-level = <2>;
cache-size = <0x100000>;
cache-line-size = <64>;
- cache-sets = <2048>;
+ cache-sets = <1024>;
next-level-cache = <&msmc_l3>;
};
diff --git a/arch/arm64/include/asm/mte-kasan.h b/arch/arm64/include/asm/mte-kasan.h
index 22420e1f8c03..26e013e540ae 100644
--- a/arch/arm64/include/asm/mte-kasan.h
+++ b/arch/arm64/include/asm/mte-kasan.h
@@ -84,10 +84,12 @@ static inline void __dc_gzva(u64 p)
static inline void mte_set_mem_tag_range(void *addr, size_t size, u8 tag,
bool init)
{
- u64 curr, mask, dczid_bs, end1, end2, end3;
+ u64 curr, mask, dczid, dczid_bs, dczid_dzp, end1, end2, end3;
/* Read DC G(Z)VA block size from the system register. */
- dczid_bs = 4ul << (read_cpuid(DCZID_EL0) & 0xf);
+ dczid = read_cpuid(DCZID_EL0);
+ dczid_bs = 4ul << (dczid & 0xf);
+ dczid_dzp = (dczid >> 4) & 1;
curr = (u64)__tag_set(addr, tag);
mask = dczid_bs - 1;
@@ -106,7 +108,7 @@ static inline void mte_set_mem_tag_range(void *addr, size_t size, u8 tag,
*/
#define SET_MEMTAG_RANGE(stg_post, dc_gva) \
do { \
- if (size >= 2 * dczid_bs) { \
+ if (!dczid_dzp && size >= 2 * dczid_bs) {\
do { \
curr = stg_post(curr); \
} while (curr < end1); \
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index 40adb8cdbf5a..23efabcb00b8 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -439,34 +439,26 @@ static void entry_task_switch(struct task_struct *next)
/*
* ARM erratum 1418040 handling, affecting the 32bit view of CNTVCT.
- * Assuming the virtual counter is enabled at the beginning of times:
- *
- * - disable access when switching from a 64bit task to a 32bit task
- * - enable access when switching from a 32bit task to a 64bit task
+ * Ensure access is disabled when switching to a 32bit task, ensure
+ * access is enabled when switching to a 64bit task.
*/
-static void erratum_1418040_thread_switch(struct task_struct *prev,
- struct task_struct *next)
+static void erratum_1418040_thread_switch(struct task_struct *next)
{
- bool prev32, next32;
- u64 val;
-
- if (!IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040))
- return;
-
- prev32 = is_compat_thread(task_thread_info(prev));
- next32 = is_compat_thread(task_thread_info(next));
-
- if (prev32 == next32 || !this_cpu_has_cap(ARM64_WORKAROUND_1418040))
+ if (!IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040) ||
+ !this_cpu_has_cap(ARM64_WORKAROUND_1418040))
return;
- val = read_sysreg(cntkctl_el1);
-
- if (!next32)
- val |= ARCH_TIMER_USR_VCT_ACCESS_EN;
+ if (is_compat_thread(task_thread_info(next)))
+ sysreg_clear_set(cntkctl_el1, ARCH_TIMER_USR_VCT_ACCESS_EN, 0);
else
- val &= ~ARCH_TIMER_USR_VCT_ACCESS_EN;
+ sysreg_clear_set(cntkctl_el1, 0, ARCH_TIMER_USR_VCT_ACCESS_EN);
+}
- write_sysreg(val, cntkctl_el1);
+static void erratum_1418040_new_exec(void)
+{
+ preempt_disable();
+ erratum_1418040_thread_switch(current);
+ preempt_enable();
}
/*
@@ -501,7 +493,7 @@ __notrace_funcgraph struct task_struct *__switch_to(struct task_struct *prev,
contextidr_thread_switch(next);
entry_task_switch(next);
ssbs_thread_switch(next);
- erratum_1418040_thread_switch(prev, next);
+ erratum_1418040_thread_switch(next);
ptrauth_thread_switch_user(next);
/*
@@ -613,6 +605,7 @@ void arch_setup_new_exec(void)
current->mm->context.flags = mmflags;
ptrauth_thread_init_user();
mte_thread_init_user();
+ erratum_1418040_new_exec();
if (task_spec_ssb_noexec(current)) {
arch_prctl_spec_ctrl_set(current, PR_SPEC_STORE_BYPASS,
diff --git a/arch/arm64/lib/clear_page.S b/arch/arm64/lib/clear_page.S
index b84b179edba3..1fd5d790ab80 100644
--- a/arch/arm64/lib/clear_page.S
+++ b/arch/arm64/lib/clear_page.S
@@ -16,6 +16,7 @@
*/
SYM_FUNC_START_PI(clear_page)
mrs x1, dczid_el0
+ tbnz x1, #4, 2f /* Branch if DC ZVA is prohibited */
and w1, w1, #0xf
mov x2, #4
lsl x1, x2, x1
@@ -25,5 +26,14 @@ SYM_FUNC_START_PI(clear_page)
tst x0, #(PAGE_SIZE - 1)
b.ne 1b
ret
+
+2: stnp xzr, xzr, [x0]
+ stnp xzr, xzr, [x0, #16]
+ stnp xzr, xzr, [x0, #32]
+ stnp xzr, xzr, [x0, #48]
+ add x0, x0, #64
+ tst x0, #(PAGE_SIZE - 1)
+ b.ne 2b
+ ret
SYM_FUNC_END_PI(clear_page)
EXPORT_SYMBOL(clear_page)
diff --git a/arch/arm64/lib/mte.S b/arch/arm64/lib/mte.S
index e83643b3995f..f531dcb95174 100644
--- a/arch/arm64/lib/mte.S
+++ b/arch/arm64/lib/mte.S
@@ -43,17 +43,23 @@ SYM_FUNC_END(mte_clear_page_tags)
* x0 - address to the beginning of the page
*/
SYM_FUNC_START(mte_zero_clear_page_tags)
+ and x0, x0, #(1 << MTE_TAG_SHIFT) - 1 // clear the tag
mrs x1, dczid_el0
+ tbnz x1, #4, 2f // Branch if DC GZVA is prohibited
and w1, w1, #0xf
mov x2, #4
lsl x1, x2, x1
- and x0, x0, #(1 << MTE_TAG_SHIFT) - 1 // clear the tag
1: dc gzva, x0
add x0, x0, x1
tst x0, #(PAGE_SIZE - 1)
b.ne 1b
ret
+
+2: stz2g x0, [x0], #(MTE_GRANULE_SIZE * 2)
+ tst x0, #(PAGE_SIZE - 1)
+ b.ne 2b
+ ret
SYM_FUNC_END(mte_zero_clear_page_tags)
/*
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 23654ccdbfb1..393eb2133243 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1993,6 +1993,10 @@ config SYS_HAS_CPU_MIPS64_R1
config SYS_HAS_CPU_MIPS64_R2
bool
+config SYS_HAS_CPU_MIPS64_R5
+ bool
+ select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
+
config SYS_HAS_CPU_MIPS64_R6
bool
select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
@@ -2157,7 +2161,7 @@ config CPU_SUPPORTS_ADDRWINCFG
bool
config CPU_SUPPORTS_HUGEPAGES
bool
- depends on !(32BIT && (ARCH_PHYS_ADDR_T_64BIT || EVA))
+ depends on !(32BIT && (PHYS_ADDR_T_64BIT || EVA))
config MIPS_PGD_C0_CONTEXT
bool
depends on 64BIT
diff --git a/arch/mips/bcm63xx/clk.c b/arch/mips/bcm63xx/clk.c
index 1c91064cb448..6e6756e8fa0a 100644
--- a/arch/mips/bcm63xx/clk.c
+++ b/arch/mips/bcm63xx/clk.c
@@ -387,6 +387,12 @@ struct clk *clk_get_parent(struct clk *clk)
}
EXPORT_SYMBOL(clk_get_parent);
+int clk_set_parent(struct clk *clk, struct clk *parent)
+{
+ return 0;
+}
+EXPORT_SYMBOL(clk_set_parent);
+
unsigned long clk_get_rate(struct clk *clk)
{
if (!clk)
diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile
index 9112bdb86be4..705b9e7f8035 100644
--- a/arch/mips/boot/compressed/Makefile
+++ b/arch/mips/boot/compressed/Makefile
@@ -56,7 +56,7 @@ $(obj)/uart-ath79.c: $(srctree)/arch/mips/ath79/early_printk.c
vmlinuzobjs-$(CONFIG_KERNEL_XZ) += $(obj)/ashldi3.o
-vmlinuzobjs-$(CONFIG_KERNEL_ZSTD) += $(obj)/bswapdi.o
+vmlinuzobjs-$(CONFIG_KERNEL_ZSTD) += $(obj)/bswapdi.o $(obj)/ashldi3.o $(obj)/clz_ctz.o
extra-y += ashldi3.c
$(obj)/ashldi3.c: $(obj)/%.c: $(srctree)/lib/%.c FORCE
diff --git a/arch/mips/boot/compressed/clz_ctz.c b/arch/mips/boot/compressed/clz_ctz.c
new file mode 100644
index 000000000000..b4a1b6eb2f8a
--- /dev/null
+++ b/arch/mips/boot/compressed/clz_ctz.c
@@ -0,0 +1,2 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include "../../../../lib/clz_ctz.c"
diff --git a/arch/mips/cavium-octeon/octeon-platform.c b/arch/mips/cavium-octeon/octeon-platform.c
index d56e9b9d2e43..a994022e32c9 100644
--- a/arch/mips/cavium-octeon/octeon-platform.c
+++ b/arch/mips/cavium-octeon/octeon-platform.c
@@ -328,6 +328,7 @@ static int __init octeon_ehci_device_init(void)
pd->dev.platform_data = &octeon_ehci_pdata;
octeon_ehci_hw_start(&pd->dev);
+ put_device(&pd->dev);
return ret;
}
@@ -391,6 +392,7 @@ static int __init octeon_ohci_device_init(void)
pd->dev.platform_data = &octeon_ohci_pdata;
octeon_ohci_hw_start(&pd->dev);
+ put_device(&pd->dev);
return ret;
}
diff --git a/arch/mips/cavium-octeon/octeon-usb.c b/arch/mips/cavium-octeon/octeon-usb.c
index 6e4d3619137a..4df919d26b08 100644
--- a/arch/mips/cavium-octeon/octeon-usb.c
+++ b/arch/mips/cavium-octeon/octeon-usb.c
@@ -537,6 +537,7 @@ static int __init dwc3_octeon_device_init(void)
devm_iounmap(&pdev->dev, base);
devm_release_mem_region(&pdev->dev, res->start,
resource_size(res));
+ put_device(&pdev->dev);
}
} while (node != NULL);
diff --git a/arch/mips/configs/fuloong2e_defconfig b/arch/mips/configs/fuloong2e_defconfig
index 5c24ac7fdf56..ba47c5e929b7 100644
--- a/arch/mips/configs/fuloong2e_defconfig
+++ b/arch/mips/configs/fuloong2e_defconfig
@@ -206,7 +206,6 @@ CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_CIFS=m
CONFIG_CIFS_STATS2=y
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_DEBUG2=y
diff --git a/arch/mips/configs/malta_qemu_32r6_defconfig b/arch/mips/configs/malta_qemu_32r6_defconfig
index 614af02d83e6..6fb9bc29f4a0 100644
--- a/arch/mips/configs/malta_qemu_32r6_defconfig
+++ b/arch/mips/configs/malta_qemu_32r6_defconfig
@@ -165,7 +165,6 @@ CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/mips/configs/maltaaprp_defconfig b/arch/mips/configs/maltaaprp_defconfig
index 9c051f8fd330..eb72df528243 100644
--- a/arch/mips/configs/maltaaprp_defconfig
+++ b/arch/mips/configs/maltaaprp_defconfig
@@ -166,7 +166,6 @@ CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/mips/configs/maltasmvp_defconfig b/arch/mips/configs/maltasmvp_defconfig
index 2e90d97551d6..1fb40d310f49 100644
--- a/arch/mips/configs/maltasmvp_defconfig
+++ b/arch/mips/configs/maltasmvp_defconfig
@@ -167,7 +167,6 @@ CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/mips/configs/maltasmvp_eva_defconfig b/arch/mips/configs/maltasmvp_eva_defconfig
index d1f7fdb27284..75cb778c6149 100644
--- a/arch/mips/configs/maltasmvp_eva_defconfig
+++ b/arch/mips/configs/maltasmvp_eva_defconfig
@@ -169,7 +169,6 @@ CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/mips/configs/maltaup_defconfig b/arch/mips/configs/maltaup_defconfig
index 48e5bd492452..7b4f247dc60c 100644
--- a/arch/mips/configs/maltaup_defconfig
+++ b/arch/mips/configs/maltaup_defconfig
@@ -165,7 +165,6 @@ CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_NLS_CODEPAGE_437=m
diff --git a/arch/mips/include/asm/mach-loongson64/kernel-entry-init.h b/arch/mips/include/asm/mach-loongson64/kernel-entry-init.h
index 13373c5144f8..efb41b351974 100644
--- a/arch/mips/include/asm/mach-loongson64/kernel-entry-init.h
+++ b/arch/mips/include/asm/mach-loongson64/kernel-entry-init.h
@@ -32,7 +32,7 @@
nop
/* Loongson-3A R2/R3 */
andi t0, (PRID_IMP_MASK | PRID_REV_MASK)
- slti t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
+ slti t0, t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
bnez t0, 2f
nop
1:
@@ -63,7 +63,7 @@
nop
/* Loongson-3A R2/R3 */
andi t0, (PRID_IMP_MASK | PRID_REV_MASK)
- slti t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
+ slti t0, t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
bnez t0, 2f
nop
1:
diff --git a/arch/mips/include/asm/octeon/cvmx-bootinfo.h b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
index 0e6bf220db61..6c61e0a63924 100644
--- a/arch/mips/include/asm/octeon/cvmx-bootinfo.h
+++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
@@ -318,7 +318,7 @@ enum cvmx_chip_types_enum {
/* Functions to return string based on type */
#define ENUM_BRD_TYPE_CASE(x) \
- case x: return(#x + 16); /* Skip CVMX_BOARD_TYPE_ */
+ case x: return (&#x[16]); /* Skip CVMX_BOARD_TYPE_ */
static inline const char *cvmx_board_type_to_string(enum
cvmx_board_types_enum type)
{
@@ -410,7 +410,7 @@ static inline const char *cvmx_board_type_to_string(enum
}
#define ENUM_CHIP_TYPE_CASE(x) \
- case x: return(#x + 15); /* Skip CVMX_CHIP_TYPE */
+ case x: return (&#x[15]); /* Skip CVMX_CHIP_TYPE */
static inline const char *cvmx_chip_type_to_string(enum
cvmx_chip_types_enum type)
{
diff --git a/arch/mips/lantiq/clk.c b/arch/mips/lantiq/clk.c
index 4916cccf378f..7a623684d9b5 100644
--- a/arch/mips/lantiq/clk.c
+++ b/arch/mips/lantiq/clk.c
@@ -164,6 +164,12 @@ struct clk *clk_get_parent(struct clk *clk)
}
EXPORT_SYMBOL(clk_get_parent);
+int clk_set_parent(struct clk *clk, struct clk *parent)
+{
+ return 0;
+}
+EXPORT_SYMBOL(clk_set_parent);
+
static inline u32 get_counter_resolution(void)
{
u32 res;
diff --git a/arch/openrisc/include/asm/syscalls.h b/arch/openrisc/include/asm/syscalls.h
index 3a7eeae6f56a..aa1c7e98722e 100644
--- a/arch/openrisc/include/asm/syscalls.h
+++ b/arch/openrisc/include/asm/syscalls.h
@@ -22,9 +22,11 @@ asmlinkage long sys_or1k_atomic(unsigned long type, unsigned long *v1,
asmlinkage long __sys_clone(unsigned long clone_flags, unsigned long newsp,
void __user *parent_tid, void __user *child_tid, int tls);
+asmlinkage long __sys_clone3(struct clone_args __user *uargs, size_t size);
asmlinkage long __sys_fork(void);
#define sys_clone __sys_clone
+#define sys_clone3 __sys_clone3
#define sys_fork __sys_fork
#endif /* __ASM_OPENRISC_SYSCALLS_H */
diff --git a/arch/openrisc/kernel/entry.S b/arch/openrisc/kernel/entry.S
index edaa775a648e..c68f3349c174 100644
--- a/arch/openrisc/kernel/entry.S
+++ b/arch/openrisc/kernel/entry.S
@@ -1170,6 +1170,11 @@ ENTRY(__sys_clone)
l.j _fork_save_extra_regs_and_call
l.nop
+ENTRY(__sys_clone3)
+ l.movhi r29,hi(sys_clone3)
+ l.j _fork_save_extra_regs_and_call
+ l.ori r29,r29,lo(sys_clone3)
+
ENTRY(__sys_fork)
l.movhi r29,hi(sys_fork)
l.ori r29,r29,lo(sys_fork)
diff --git a/arch/parisc/include/asm/special_insns.h b/arch/parisc/include/asm/special_insns.h
index a303ae9a77f4..16ee41e77174 100644
--- a/arch/parisc/include/asm/special_insns.h
+++ b/arch/parisc/include/asm/special_insns.h
@@ -2,28 +2,32 @@
#ifndef __PARISC_SPECIAL_INSNS_H
#define __PARISC_SPECIAL_INSNS_H
-#define lpa(va) ({ \
- unsigned long pa; \
- __asm__ __volatile__( \
- "copy %%r0,%0\n\t" \
- "lpa %%r0(%1),%0" \
- : "=r" (pa) \
- : "r" (va) \
- : "memory" \
- ); \
- pa; \
+#define lpa(va) ({ \
+ unsigned long pa; \
+ __asm__ __volatile__( \
+ "copy %%r0,%0\n" \
+ "8:\tlpa %%r0(%1),%0\n" \
+ "9:\n" \
+ ASM_EXCEPTIONTABLE_ENTRY(8b, 9b) \
+ : "=&r" (pa) \
+ : "r" (va) \
+ : "memory" \
+ ); \
+ pa; \
})
-#define lpa_user(va) ({ \
- unsigned long pa; \
- __asm__ __volatile__( \
- "copy %%r0,%0\n\t" \
- "lpa %%r0(%%sr3,%1),%0" \
- : "=r" (pa) \
- : "r" (va) \
- : "memory" \
- ); \
- pa; \
+#define lpa_user(va) ({ \
+ unsigned long pa; \
+ __asm__ __volatile__( \
+ "copy %%r0,%0\n" \
+ "8:\tlpa %%r0(%%sr3,%1),%0\n" \
+ "9:\n" \
+ ASM_EXCEPTIONTABLE_ENTRY(8b, 9b) \
+ : "=&r" (pa) \
+ : "r" (va) \
+ : "memory" \
+ ); \
+ pa; \
})
#define mfctl(reg) ({ \
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
index 197cb8480350..afe8b902a8fc 100644
--- a/arch/parisc/kernel/traps.c
+++ b/arch/parisc/kernel/traps.c
@@ -784,7 +784,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
* unless pagefault_disable() was called before.
*/
- if (fault_space == 0 && !faulthandler_disabled())
+ if (faulthandler_disabled() || fault_space == 0)
{
/* Clean up and return if in exception table. */
if (fixup_exception(regs))
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
index c90702b04a53..48e5cd61599c 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
@@ -79,6 +79,7 @@ mdio0: mdio@fc000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xfc000 0x1000>;
+ fsl,erratum-a009885;
};
xmdio0: mdio@fd000 {
@@ -86,6 +87,7 @@ xmdio0: mdio@fd000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xfd000 0x1000>;
+ fsl,erratum-a009885;
};
};
diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/ppc6xx_defconfig
index 6697c5e6682f..bb549cb1c3e3 100644
--- a/arch/powerpc/configs/ppc6xx_defconfig
+++ b/arch/powerpc/configs/ppc6xx_defconfig
@@ -1022,7 +1022,6 @@ CONFIG_NFSD=m
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_UPCALL=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index b183629f1bcf..d0494fbb4961 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -190,7 +190,6 @@ CONFIG_HVCS=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_IBM_BSR=m
CONFIG_RAW_DRIVER=y
-CONFIG_MAX_RAW_DEVS=1024
CONFIG_I2C_CHARDEV=y
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h
index 21cc571ea9c2..5c98a950eca0 100644
--- a/arch/powerpc/include/asm/hw_irq.h
+++ b/arch/powerpc/include/asm/hw_irq.h
@@ -224,6 +224,42 @@ static inline bool arch_irqs_disabled(void)
return arch_irqs_disabled_flags(arch_local_save_flags());
}
+static inline void set_pmi_irq_pending(void)
+{
+ /*
+ * Invoked from PMU callback functions to set PMI bit in the paca.
+ * This has to be called with irq's disabled (via hard_irq_disable()).
+ */
+ if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG))
+ WARN_ON_ONCE(mfmsr() & MSR_EE);
+
+ get_paca()->irq_happened |= PACA_IRQ_PMI;
+}
+
+static inline void clear_pmi_irq_pending(void)
+{
+ /*
+ * Invoked from PMU callback functions to clear the pending PMI bit
+ * in the paca.
+ */
+ if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG))
+ WARN_ON_ONCE(mfmsr() & MSR_EE);
+
+ get_paca()->irq_happened &= ~PACA_IRQ_PMI;
+}
+
+static inline bool pmi_irq_pending(void)
+{
+ /*
+ * Invoked from PMU callback functions to check if there is a pending
+ * PMI bit in the paca.
+ */
+ if (get_paca()->irq_happened & PACA_IRQ_PMI)
+ return true;
+
+ return false;
+}
+
#ifdef CONFIG_PPC_BOOK3S
/*
* To support disabling and enabling of irq with PMI, set of
@@ -408,6 +444,10 @@ static inline void do_hard_irq_enable(void)
BUILD_BUG();
}
+static inline void clear_pmi_irq_pending(void) { }
+static inline void set_pmi_irq_pending(void) { }
+static inline bool pmi_irq_pending(void) { return false; }
+
static inline void irq_soft_mask_regs_set_state(struct pt_regs *regs, unsigned long val)
{
}
diff --git a/arch/powerpc/kernel/btext.c b/arch/powerpc/kernel/btext.c
index 803c2a45b22a..1cffb5e7c38d 100644
--- a/arch/powerpc/kernel/btext.c
+++ b/arch/powerpc/kernel/btext.c
@@ -241,8 +241,10 @@ int __init btext_find_display(int allow_nonstdout)
rc = btext_initialize(np);
printk("result: %d\n", rc);
}
- if (rc == 0)
+ if (rc == 0) {
+ of_node_put(np);
break;
+ }
}
return rc;
}
diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index b7ceb041743c..60f5fc14aa23 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -1641,6 +1641,14 @@ int __init setup_fadump(void)
else if (fw_dump.reserve_dump_area_size)
fw_dump.ops->fadump_init_mem_struct(&fw_dump);
+ /*
+ * In case of panic, fadump is triggered via ppc_panic_event()
+ * panic notifier. Setting crash_kexec_post_notifiers to 'true'
+ * lets panic() function take crash friendly path before panic
+ * notifiers are invoked.
+ */
+ crash_kexec_post_notifiers = true;
+
return 1;
}
subsys_initcall(setup_fadump);
diff --git a/arch/powerpc/kernel/head_40x.S b/arch/powerpc/kernel/head_40x.S
index 7d72ee5ab387..e783860bea83 100644
--- a/arch/powerpc/kernel/head_40x.S
+++ b/arch/powerpc/kernel/head_40x.S
@@ -27,6 +27,7 @@
#include <linux/init.h>
#include <linux/pgtable.h>
+#include <linux/sizes.h>
#include <asm/processor.h>
#include <asm/page.h>
#include <asm/mmu.h>
@@ -650,7 +651,7 @@ start_here:
b . /* prevent prefetch past rfi */
/* Set up the initial MMU state so we can do the first level of
- * kernel initialization. This maps the first 16 MBytes of memory 1:1
+ * kernel initialization. This maps the first 32 MBytes of memory 1:1
* virtual to physical and more importantly sets the cache mode.
*/
initial_mmu:
@@ -687,6 +688,12 @@ initial_mmu:
tlbwe r4,r0,TLB_DATA /* Load the data portion of the entry */
tlbwe r3,r0,TLB_TAG /* Load the tag portion of the entry */
+ li r0,62 /* TLB slot 62 */
+ addis r4,r4,SZ_16M@h
+ addis r3,r3,SZ_16M@h
+ tlbwe r4,r0,TLB_DATA /* Load the data portion of the entry */
+ tlbwe r3,r0,TLB_TAG /* Load the tag portion of the entry */
+
isync
/* Establish the exception vector base
diff --git a/arch/powerpc/kernel/interrupt.c b/arch/powerpc/kernel/interrupt.c
index 835b626cd476..df048e331cbf 100644
--- a/arch/powerpc/kernel/interrupt.c
+++ b/arch/powerpc/kernel/interrupt.c
@@ -148,7 +148,7 @@ notrace long system_call_exception(long r3, long r4, long r5,
*/
if (IS_ENABLED(CONFIG_PPC_TRANSACTIONAL_MEM) &&
unlikely(MSR_TM_TRANSACTIONAL(regs->msr)))
- current_thread_info()->flags |= _TIF_RESTOREALL;
+ set_bits(_TIF_RESTOREALL, ¤t_thread_info()->flags);
/*
* If the system call was made with a transaction active, doom it and
diff --git a/arch/powerpc/kernel/interrupt_64.S b/arch/powerpc/kernel/interrupt_64.S
index ec950b08a8dc..4b1ff94e67eb 100644
--- a/arch/powerpc/kernel/interrupt_64.S
+++ b/arch/powerpc/kernel/interrupt_64.S
@@ -30,21 +30,23 @@ COMPAT_SYS_CALL_TABLE:
.ifc \srr,srr
mfspr r11,SPRN_SRR0
ld r12,_NIP(r1)
+ clrrdi r12,r12,2
100: tdne r11,r12
- EMIT_BUG_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
+ EMIT_WARN_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
mfspr r11,SPRN_SRR1
ld r12,_MSR(r1)
100: tdne r11,r12
- EMIT_BUG_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
+ EMIT_WARN_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
.else
mfspr r11,SPRN_HSRR0
ld r12,_NIP(r1)
+ clrrdi r12,r12,2
100: tdne r11,r12
- EMIT_BUG_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
+ EMIT_WARN_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
mfspr r11,SPRN_HSRR1
ld r12,_MSR(r1)
100: tdne r11,r12
- EMIT_BUG_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
+ EMIT_WARN_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
.endif
#endif
.endm
diff --git a/arch/powerpc/kernel/module.c b/arch/powerpc/kernel/module.c
index ed04a3ba66fe..40a583e9d3c7 100644
--- a/arch/powerpc/kernel/module.c
+++ b/arch/powerpc/kernel/module.c
@@ -90,16 +90,17 @@ int module_finalize(const Elf_Ehdr *hdr,
}
static __always_inline void *
-__module_alloc(unsigned long size, unsigned long start, unsigned long end)
+__module_alloc(unsigned long size, unsigned long start, unsigned long end, bool nowarn)
{
pgprot_t prot = strict_module_rwx_enabled() ? PAGE_KERNEL : PAGE_KERNEL_EXEC;
+ gfp_t gfp = GFP_KERNEL | (nowarn ? __GFP_NOWARN : 0);
/*
* Don't do huge page allocations for modules yet until more testing
* is done. STRICT_MODULE_RWX may require extra work to support this
* too.
*/
- return __vmalloc_node_range(size, 1, start, end, GFP_KERNEL, prot,
+ return __vmalloc_node_range(size, 1, start, end, gfp, prot,
VM_FLUSH_RESET_PERMS | VM_NO_HUGE_VMAP,
NUMA_NO_NODE, __builtin_return_address(0));
}
@@ -114,13 +115,13 @@ void *module_alloc(unsigned long size)
/* First try within 32M limit from _etext to avoid branch trampolines */
if (MODULES_VADDR < PAGE_OFFSET && MODULES_END > limit)
- ptr = __module_alloc(size, limit, MODULES_END);
+ ptr = __module_alloc(size, limit, MODULES_END, true);
if (!ptr)
- ptr = __module_alloc(size, MODULES_VADDR, MODULES_END);
+ ptr = __module_alloc(size, MODULES_VADDR, MODULES_END, false);
return ptr;
#else
- return __module_alloc(size, VMALLOC_START, VMALLOC_END);
+ return __module_alloc(size, VMALLOC_START, VMALLOC_END, false);
#endif
}
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index 18b04b08b983..f845065c860e 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -2991,7 +2991,7 @@ static void __init fixup_device_tree_efika_add_phy(void)
/* Check if the phy-handle property exists - bail if it does */
rv = prom_getprop(node, "phy-handle", prop, sizeof(prop));
- if (!rv)
+ if (rv <= 0)
return;
/*
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 605bab448f84..fb95f92dcfac 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -61,6 +61,7 @@
#include <asm/cpu_has_feature.h>
#include <asm/ftrace.h>
#include <asm/kup.h>
+#include <asm/fadump.h>
#ifdef DEBUG
#include <asm/udbg.h>
@@ -620,6 +621,45 @@ void crash_send_ipi(void (*crash_ipi_callback)(struct pt_regs *))
}
#endif
+#ifdef CONFIG_NMI_IPI
+static void crash_stop_this_cpu(struct pt_regs *regs)
+#else
+static void crash_stop_this_cpu(void *dummy)
+#endif
+{
+ /*
+ * Just busy wait here and avoid marking CPU as offline to ensure
+ * register data is captured appropriately.
+ */
+ while (1)
+ cpu_relax();
+}
+
+void crash_smp_send_stop(void)
+{
+ static bool stopped = false;
+
+ /*
+ * In case of fadump, register data for all CPUs is captured by f/w
+ * on ibm,os-term rtas call. Skip IPI callbacks to other CPUs before
+ * this rtas call to avoid tricky post processing of those CPUs'
+ * backtraces.
+ */
+ if (should_fadump_crash())
+ return;
+
+ if (stopped)
+ return;
+
+ stopped = true;
+
+#ifdef CONFIG_NMI_IPI
+ smp_send_nmi_ipi(NMI_IPI_ALL_OTHERS, crash_stop_this_cpu, 1000000);
+#else
+ smp_call_function(crash_stop_this_cpu, NULL, 0);
+#endif /* CONFIG_NMI_IPI */
+}
+
#ifdef CONFIG_NMI_IPI
static void nmi_stop_this_cpu(struct pt_regs *regs)
{
@@ -1640,10 +1680,12 @@ void start_secondary(void *unused)
BUG();
}
+#ifdef CONFIG_PROFILING
int setup_profiling_timer(unsigned int multiplier)
{
return 0;
}
+#endif
static void fixup_topology(void)
{
diff --git a/arch/powerpc/kernel/watchdog.c b/arch/powerpc/kernel/watchdog.c
index 3fa6d240bade..ad94a2c6b733 100644
--- a/arch/powerpc/kernel/watchdog.c
+++ b/arch/powerpc/kernel/watchdog.c
@@ -135,6 +135,10 @@ static void set_cpumask_stuck(const struct cpumask *cpumask, u64 tb)
{
cpumask_or(&wd_smp_cpus_stuck, &wd_smp_cpus_stuck, cpumask);
cpumask_andnot(&wd_smp_cpus_pending, &wd_smp_cpus_pending, cpumask);
+ /*
+ * See wd_smp_clear_cpu_pending()
+ */
+ smp_mb();
if (cpumask_empty(&wd_smp_cpus_pending)) {
wd_smp_last_reset_tb = tb;
cpumask_andnot(&wd_smp_cpus_pending,
@@ -221,13 +225,44 @@ static void wd_smp_clear_cpu_pending(int cpu, u64 tb)
cpumask_clear_cpu(cpu, &wd_smp_cpus_stuck);
wd_smp_unlock(&flags);
+ } else {
+ /*
+ * The last CPU to clear pending should have reset the
+ * watchdog so we generally should not find it empty
+ * here if our CPU was clear. However it could happen
+ * due to a rare race with another CPU taking the
+ * last CPU out of the mask concurrently.
+ *
+ * We can't add a warning for it. But just in case
+ * there is a problem with the watchdog that is causing
+ * the mask to not be reset, try to kick it along here.
+ */
+ if (unlikely(cpumask_empty(&wd_smp_cpus_pending)))
+ goto none_pending;
}
return;
}
+
cpumask_clear_cpu(cpu, &wd_smp_cpus_pending);
+
+ /*
+ * Order the store to clear pending with the load(s) to check all
+ * words in the pending mask to check they are all empty. This orders
+ * with the same barrier on another CPU. This prevents two CPUs
+ * clearing the last 2 pending bits, but neither seeing the other's
+ * store when checking if the mask is empty, and missing an empty
+ * mask, which ends with a false positive.
+ */
+ smp_mb();
if (cpumask_empty(&wd_smp_cpus_pending)) {
unsigned long flags;
+none_pending:
+ /*
+ * Double check under lock because more than one CPU could see
+ * a clear mask with the lockless check after clearing their
+ * pending bits.
+ */
wd_smp_lock(&flags);
if (cpumask_empty(&wd_smp_cpus_pending)) {
wd_smp_last_reset_tb = tb;
@@ -318,8 +353,12 @@ void arch_touch_nmi_watchdog(void)
{
unsigned long ticks = tb_ticks_per_usec * wd_timer_period_ms * 1000;
int cpu = smp_processor_id();
- u64 tb = get_tb();
+ u64 tb;
+ if (!cpumask_test_cpu(cpu, &watchdog_cpumask))
+ return;
+
+ tb = get_tb();
if (tb - per_cpu(wd_timer_tb, cpu) >= ticks) {
per_cpu(wd_timer_tb, cpu) = tb;
wd_smp_clear_cpu_pending(cpu, tb);
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 7b74fc0a986b..94da0d25eb12 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -4861,8 +4861,12 @@ static int kvmppc_core_prepare_memory_region_hv(struct kvm *kvm,
unsigned long npages = mem->memory_size >> PAGE_SHIFT;
if (change == KVM_MR_CREATE) {
- slot->arch.rmap = vzalloc(array_size(npages,
- sizeof(*slot->arch.rmap)));
+ unsigned long size = array_size(npages, sizeof(*slot->arch.rmap));
+
+ if ((size >> PAGE_SHIFT) > totalram_pages())
+ return -ENOMEM;
+
+ slot->arch.rmap = vzalloc(size);
if (!slot->arch.rmap)
return -ENOMEM;
}
diff --git a/arch/powerpc/kvm/book3s_hv_nested.c b/arch/powerpc/kvm/book3s_hv_nested.c
index ed8a2c9f5629..89295b52a97c 100644
--- a/arch/powerpc/kvm/book3s_hv_nested.c
+++ b/arch/powerpc/kvm/book3s_hv_nested.c
@@ -582,7 +582,7 @@ long kvmhv_copy_tofrom_guest_nested(struct kvm_vcpu *vcpu)
if (eaddr & (0xFFFUL << 52))
return H_PARAMETER;
- buf = kzalloc(n, GFP_KERNEL);
+ buf = kzalloc(n, GFP_KERNEL | __GFP_NOWARN);
if (!buf)
return H_NO_MEM;
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index ae20add7954a..795d18a84f55 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -1093,7 +1093,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_huge(*pud)) {
+ if (pud_is_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1140,7 +1140,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_huge(*pmd)) {
+ if (pmd_is_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/kasan/book3s_32.c b/arch/powerpc/mm/kasan/book3s_32.c
index 202bd260a009..35b287b0a8da 100644
--- a/arch/powerpc/mm/kasan/book3s_32.c
+++ b/arch/powerpc/mm/kasan/book3s_32.c
@@ -19,7 +19,8 @@ int __init kasan_init_region(void *start, size_t size)
block = memblock_alloc(k_size, k_size_base);
if (block && k_size_base >= SZ_128K && k_start == ALIGN(k_start, k_size_base)) {
- int k_size_more = 1 << (ffs(k_size - k_size_base) - 1);
+ int shift = ffs(k_size - k_size_base);
+ int k_size_more = shift ? 1 << (shift - 1) : 0;
setbat(-1, k_start, __pa(block), k_size_base, PAGE_KERNEL);
if (k_size_more >= SZ_128K)
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 78c8cf01db5f..175aabf101e8 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -102,7 +102,8 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
struct page *p4d_page(p4d_t p4d)
{
if (p4d_is_leaf(p4d)) {
- VM_WARN_ON(!p4d_huge(p4d));
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
}
return virt_to_page(p4d_pgtable(p4d));
@@ -112,7 +113,8 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
if (pud_is_leaf(pud)) {
- VM_WARN_ON(!pud_huge(pud));
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
}
return virt_to_page(pud_pgtable(pud));
@@ -125,7 +127,13 @@ struct page *pud_page(pud_t pud)
struct page *pmd_page(pmd_t pmd)
{
if (pmd_is_leaf(pmd)) {
- VM_WARN_ON(!(pmd_large(pmd) || pmd_huge(pmd)));
+ /*
+ * vmalloc_to_page may be called on any vmap address (not only
+ * vmalloc), and it uses pmd_page() etc., when huge vmap is
+ * enabled so these checks can't be used.
+ */
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!(pmd_large(pmd) || pmd_huge(pmd)));
return pte_page(pmd_pte(pmd));
}
return virt_to_page(pmd_page_vaddr(pmd));
diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c
index 73e62e9b179b..bef6b1abce70 100644
--- a/arch/powerpc/perf/core-book3s.c
+++ b/arch/powerpc/perf/core-book3s.c
@@ -857,6 +857,19 @@ static void write_pmc(int idx, unsigned long val)
}
}
+static int any_pmc_overflown(struct cpu_hw_events *cpuhw)
+{
+ int i, idx;
+
+ for (i = 0; i < cpuhw->n_events; i++) {
+ idx = cpuhw->event[i]->hw.idx;
+ if ((idx) && ((int)read_pmc(idx) < 0))
+ return idx;
+ }
+
+ return 0;
+}
+
/* Called from sysrq_handle_showregs() */
void perf_event_print_debug(void)
{
@@ -1281,11 +1294,13 @@ static void power_pmu_disable(struct pmu *pmu)
/*
* Set the 'freeze counters' bit, clear EBE/BHRBA/PMCC/PMAO/FC56
+ * Also clear PMXE to disable PMI's getting triggered in some
+ * corner cases during PMU disable.
*/
val = mmcr0 = mfspr(SPRN_MMCR0);
val |= MMCR0_FC;
val &= ~(MMCR0_EBE | MMCR0_BHRBA | MMCR0_PMCC | MMCR0_PMAO |
- MMCR0_FC56);
+ MMCR0_PMXE | MMCR0_FC56);
/* Set mmcr0 PMCCEXT for p10 */
if (ppmu->flags & PPMU_ARCH_31)
val |= MMCR0_PMCCEXT;
@@ -1299,6 +1314,23 @@ static void power_pmu_disable(struct pmu *pmu)
mb();
isync();
+ /*
+ * Some corner cases could clear the PMU counter overflow
+ * while a masked PMI is pending. One such case is when
+ * a PMI happens during interrupt replay and perf counter
+ * values are cleared by PMU callbacks before replay.
+ *
+ * If any PMC corresponding to the active PMU events are
+ * overflown, disable the interrupt by clearing the paca
+ * bit for PMI since we are disabling the PMU now.
+ * Otherwise provide a warning if there is PMI pending, but
+ * no counter is found overflown.
+ */
+ if (any_pmc_overflown(cpuhw))
+ clear_pmi_irq_pending();
+ else
+ WARN_ON(pmi_irq_pending());
+
val = mmcra = cpuhw->mmcr.mmcra;
/*
@@ -1390,6 +1422,15 @@ static void power_pmu_enable(struct pmu *pmu)
* (possibly updated for removal of events).
*/
if (!cpuhw->n_added) {
+ /*
+ * If there is any active event with an overflown PMC
+ * value, set back PACA_IRQ_PMI which would have been
+ * cleared in power_pmu_disable().
+ */
+ hard_irq_disable();
+ if (any_pmc_overflown(cpuhw))
+ set_pmi_irq_pending();
+
mtspr(SPRN_MMCRA, cpuhw->mmcr.mmcra & ~MMCRA_SAMPLE_ENABLE);
mtspr(SPRN_MMCR1, cpuhw->mmcr.mmcr1);
if (ppmu->flags & PPMU_ARCH_31)
@@ -2337,6 +2378,14 @@ static void __perf_event_interrupt(struct pt_regs *regs)
break;
}
}
+
+ /*
+ * Clear PACA_IRQ_PMI in case it was set by
+ * set_pmi_irq_pending() when PMU was enabled
+ * after accounting for interrupts.
+ */
+ clear_pmi_irq_pending();
+
if (!active)
/* reset non active counters that have overflowed */
write_pmc(i + 1, 0);
@@ -2356,6 +2405,13 @@ static void __perf_event_interrupt(struct pt_regs *regs)
}
}
}
+
+ /*
+ * During system wide profling or while specific CPU is monitored for an
+ * event, some corner cases could cause PMC to overflow in idle path. This
+ * will trigger a PMI after waking up from idle. Since counter values are _not_
+ * saved/restored in idle path, can lead to below "Can't find PMC" message.
+ */
if (unlikely(!found) && !arch_irq_disabled_regs(regs))
printk_ratelimited(KERN_WARNING "Can't find PMC that caused IRQ\n");
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c
index fa08699aedeb..d32f24de8479 100644
--- a/arch/powerpc/platforms/cell/iommu.c
+++ b/arch/powerpc/platforms/cell/iommu.c
@@ -977,6 +977,7 @@ static int __init cell_iommu_fixed_mapping_init(void)
if (hbase < dbase || (hend > (dbase + dsize))) {
pr_debug("iommu: hash window doesn't fit in"
"real DMA window\n");
+ of_node_put(np);
return -1;
}
}
diff --git a/arch/powerpc/platforms/cell/pervasive.c b/arch/powerpc/platforms/cell/pervasive.c
index 5b9a7e9f144b..dff8d5e7ab82 100644
--- a/arch/powerpc/platforms/cell/pervasive.c
+++ b/arch/powerpc/platforms/cell/pervasive.c
@@ -78,6 +78,7 @@ static int cbe_system_reset_exception(struct pt_regs *regs)
switch (regs->msr & SRR1_WAKEMASK) {
case SRR1_WAKEDEC:
set_dec(1);
+ break;
case SRR1_WAKEEE:
/*
* Handle these when interrupts get re-enabled and we take
diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
index 15396333a90b..a4b020e4b6af 100644
--- a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
+++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
@@ -214,6 +214,7 @@ void hlwd_pic_probe(void)
irq_set_chained_handler(cascade_virq,
hlwd_pic_irq_cascade);
hlwd_irq_host = host;
+ of_node_put(np);
break;
}
}
diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c
index f77a59b5c2e1..df89d916236d 100644
--- a/arch/powerpc/platforms/powermac/low_i2c.c
+++ b/arch/powerpc/platforms/powermac/low_i2c.c
@@ -582,6 +582,7 @@ static void __init kw_i2c_add(struct pmac_i2c_host_kw *host,
bus->close = kw_i2c_close;
bus->xfer = kw_i2c_xfer;
mutex_init(&bus->mutex);
+ lockdep_register_key(&bus->lock_key);
lockdep_set_class(&bus->mutex, &bus->lock_key);
if (controller == busnode)
bus->flags = pmac_i2c_multibus;
@@ -810,6 +811,7 @@ static void __init pmu_i2c_probe(void)
bus->hostdata = bus + 1;
bus->xfer = pmu_i2c_xfer;
mutex_init(&bus->mutex);
+ lockdep_register_key(&bus->lock_key);
lockdep_set_class(&bus->mutex, &bus->lock_key);
bus->flags = pmac_i2c_multibus;
list_add(&bus->link, &pmac_i2c_busses);
@@ -933,6 +935,7 @@ static void __init smu_i2c_probe(void)
bus->hostdata = bus + 1;
bus->xfer = smu_i2c_xfer;
mutex_init(&bus->mutex);
+ lockdep_register_key(&bus->lock_key);
lockdep_set_class(&bus->mutex, &bus->lock_key);
bus->flags = 0;
list_add(&bus->link, &pmac_i2c_busses);
diff --git a/arch/powerpc/platforms/powernv/opal-lpc.c b/arch/powerpc/platforms/powernv/opal-lpc.c
index 1e5d51db40f8..5390c888db16 100644
--- a/arch/powerpc/platforms/powernv/opal-lpc.c
+++ b/arch/powerpc/platforms/powernv/opal-lpc.c
@@ -396,6 +396,7 @@ void __init opal_lpc_init(void)
if (!of_get_property(np, "primary", NULL))
continue;
opal_lpc_chip_id = of_get_ibm_chip_id(np);
+ of_node_put(np);
break;
}
if (opal_lpc_chip_id < 0)
diff --git a/arch/powerpc/sysdev/xive/spapr.c b/arch/powerpc/sysdev/xive/spapr.c
index f143b6f111ac..1179632560b8 100644
--- a/arch/powerpc/sysdev/xive/spapr.c
+++ b/arch/powerpc/sysdev/xive/spapr.c
@@ -653,6 +653,9 @@ static int xive_spapr_debug_show(struct seq_file *m, void *private)
struct xive_irq_bitmap *xibm;
char *buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
+ if (!buf)
+ return -ENOMEM;
+
list_for_each_entry(xibm, &xive_irq_bitmaps, list) {
memset(buf, 0, PAGE_SIZE);
bitmap_print_to_pagebuf(true, buf, xibm->bitmap, xibm->count);
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index f076cee11af6..20bc4b8c13b9 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -158,10 +158,9 @@ config PA_BITS
config PAGE_OFFSET
hex
- default 0xC0000000 if 32BIT && MAXPHYSMEM_1GB
+ default 0xC0000000 if 32BIT
default 0x80000000 if 64BIT && !MMU
- default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
- default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
+ default 0xffffffe000000000 if 64BIT
config KASAN_SHADOW_OFFSET
hex
@@ -270,24 +269,6 @@ config MODULE_SECTIONS
bool
select HAVE_MOD_ARCH_SPECIFIC
-choice
- prompt "Maximum Physical Memory"
- default MAXPHYSMEM_1GB if 32BIT
- default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
- default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
-
- config MAXPHYSMEM_1GB
- depends on 32BIT
- bool "1GiB"
- config MAXPHYSMEM_2GB
- depends on 64BIT && CMODEL_MEDLOW
- bool "2GiB"
- config MAXPHYSMEM_128GB
- depends on 64BIT && CMODEL_MEDANY
- bool "128GiB"
-endchoice
-
-
config SMP
bool "Symmetric Multi-Processing"
help
diff --git a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
index b12fd594e717..4ef4bcb74872 100644
--- a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
+++ b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
@@ -9,9 +9,6 @@ / {
model = "Microchip PolarFire SoC";
compatible = "microchip,mpfs";
- chosen {
- };
-
cpus {
#address-cells = <1>;
#size-cells = <0>;
diff --git a/arch/riscv/configs/nommu_k210_defconfig b/arch/riscv/configs/nommu_k210_defconfig
index b16a2a12c82a..3b9f83221f9c 100644
--- a/arch/riscv/configs/nommu_k210_defconfig
+++ b/arch/riscv/configs/nommu_k210_defconfig
@@ -29,8 +29,6 @@ CONFIG_EMBEDDED=y
CONFIG_SLOB=y
# CONFIG_MMU is not set
CONFIG_SOC_CANAAN=y
-CONFIG_SOC_CANAAN_K210_DTB_SOURCE="k210_generic"
-CONFIG_MAXPHYSMEM_2GB=y
CONFIG_SMP=y
CONFIG_NR_CPUS=2
CONFIG_CMDLINE="earlycon console=ttySIF0"
diff --git a/arch/riscv/configs/nommu_k210_sdcard_defconfig b/arch/riscv/configs/nommu_k210_sdcard_defconfig
index 61f887f65419..d68b743d580f 100644
--- a/arch/riscv/configs/nommu_k210_sdcard_defconfig
+++ b/arch/riscv/configs/nommu_k210_sdcard_defconfig
@@ -21,8 +21,6 @@ CONFIG_EMBEDDED=y
CONFIG_SLOB=y
# CONFIG_MMU is not set
CONFIG_SOC_CANAAN=y
-CONFIG_SOC_CANAAN_K210_DTB_SOURCE="k210_generic"
-CONFIG_MAXPHYSMEM_2GB=y
CONFIG_SMP=y
CONFIG_NR_CPUS=2
CONFIG_CMDLINE="earlycon console=ttySIF0 rootdelay=2 root=/dev/mmcblk0p1 ro"
diff --git a/arch/riscv/configs/nommu_virt_defconfig b/arch/riscv/configs/nommu_virt_defconfig
index e046a0babde4..f224be697785 100644
--- a/arch/riscv/configs/nommu_virt_defconfig
+++ b/arch/riscv/configs/nommu_virt_defconfig
@@ -27,7 +27,6 @@ CONFIG_SLOB=y
# CONFIG_SLAB_MERGE_DEFAULT is not set
# CONFIG_MMU is not set
CONFIG_SOC_VIRT=y
-CONFIG_MAXPHYSMEM_2GB=y
CONFIG_SMP=y
CONFIG_CMDLINE="root=/dev/vda rw earlycon=uart8250,mmio,0x10000000,115200n8 console=ttyS0"
CONFIG_CMDLINE_FORCE=y
diff --git a/arch/riscv/include/asm/smp.h b/arch/riscv/include/asm/smp.h
index a7d2811f3536..62d0e6e61da8 100644
--- a/arch/riscv/include/asm/smp.h
+++ b/arch/riscv/include/asm/smp.h
@@ -43,7 +43,6 @@ void arch_send_call_function_ipi_mask(struct cpumask *mask);
void arch_send_call_function_single_ipi(int cpu);
int riscv_hartid_to_cpuid(int hartid);
-void riscv_cpuid_to_hartid_mask(const struct cpumask *in, struct cpumask *out);
/* Set custom IPI operations */
void riscv_set_ipi_ops(const struct riscv_ipi_ops *ops);
@@ -85,13 +84,6 @@ static inline unsigned long cpuid_to_hartid_map(int cpu)
return boot_cpu_hartid;
}
-static inline void riscv_cpuid_to_hartid_mask(const struct cpumask *in,
- struct cpumask *out)
-{
- cpumask_clear(out);
- cpumask_set_cpu(boot_cpu_hartid, out);
-}
-
static inline void riscv_set_ipi_ops(const struct riscv_ipi_ops *ops)
{
}
@@ -102,6 +94,8 @@ static inline void riscv_clear_ipi(void)
#endif /* CONFIG_SMP */
+void riscv_cpuid_to_hartid_mask(const struct cpumask *in, struct cpumask *out);
+
#if defined(CONFIG_HOTPLUG_CPU) && (CONFIG_SMP)
bool cpu_has_hotplug(unsigned int cpu);
#else
diff --git a/arch/riscv/kernel/kexec_relocate.S b/arch/riscv/kernel/kexec_relocate.S
index a80b52a74f58..059c5e216ae7 100644
--- a/arch/riscv/kernel/kexec_relocate.S
+++ b/arch/riscv/kernel/kexec_relocate.S
@@ -159,25 +159,15 @@ SYM_CODE_START(riscv_kexec_norelocate)
* s0: (const) Phys address to jump to
* s1: (const) Phys address of the FDT image
* s2: (const) The hartid of the current hart
- * s3: (const) kernel_map.va_pa_offset, used when switching MMU off
*/
mv s0, a1
mv s1, a2
mv s2, a3
- mv s3, a4
/* Disable / cleanup interrupts */
csrw CSR_SIE, zero
csrw CSR_SIP, zero
- /* Switch to physical addressing */
- la s4, 1f
- sub s4, s4, s3
- csrw CSR_STVEC, s4
- csrw CSR_SATP, zero
-
-.align 2
-1:
/* Pass the arguments to the next kernel / Cleanup*/
mv a0, s2
mv a1, s1
@@ -214,7 +204,15 @@ SYM_CODE_START(riscv_kexec_norelocate)
csrw CSR_SCAUSE, zero
csrw CSR_SSCRATCH, zero
- jalr zero, a2, 0
+ /*
+ * Switch to physical addressing
+ * This will also trigger a jump to CSR_STVEC
+ * which in this case is the address of the new
+ * kernel.
+ */
+ csrw CSR_STVEC, a2
+ csrw CSR_SATP, zero
+
SYM_CODE_END(riscv_kexec_norelocate)
.section ".rodata"
diff --git a/arch/riscv/kernel/machine_kexec.c b/arch/riscv/kernel/machine_kexec.c
index e6eca271a4d6..cbef0fc73afa 100644
--- a/arch/riscv/kernel/machine_kexec.c
+++ b/arch/riscv/kernel/machine_kexec.c
@@ -169,7 +169,8 @@ machine_kexec(struct kimage *image)
struct kimage_arch *internal = &image->arch;
unsigned long jump_addr = (unsigned long) image->start;
unsigned long first_ind_entry = (unsigned long) &image->head;
- unsigned long this_hart_id = raw_smp_processor_id();
+ unsigned long this_cpu_id = smp_processor_id();
+ unsigned long this_hart_id = cpuid_to_hartid_map(this_cpu_id);
unsigned long fdt_addr = internal->fdt_addr;
void *control_code_buffer = page_address(image->control_code_page);
riscv_kexec_method kexec_method = NULL;
diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c
index b9620e5f00ba..6c5caf5eb906 100644
--- a/arch/riscv/kernel/setup.c
+++ b/arch/riscv/kernel/setup.c
@@ -59,6 +59,16 @@ atomic_t hart_lottery __section(".sdata")
unsigned long boot_cpu_hartid;
static DEFINE_PER_CPU(struct cpu, cpu_devices);
+void riscv_cpuid_to_hartid_mask(const struct cpumask *in, struct cpumask *out)
+{
+ int cpu;
+
+ cpumask_clear(out);
+ for_each_cpu(cpu, in)
+ cpumask_set_cpu(cpuid_to_hartid_map(cpu), out);
+}
+EXPORT_SYMBOL_GPL(riscv_cpuid_to_hartid_mask);
+
/*
* Place kernel memory regions on the resource tree so that
* kexec-tools can retrieve them from /proc/iomem. While there
diff --git a/arch/riscv/kernel/smp.c b/arch/riscv/kernel/smp.c
index 921d9d7df400..d0147294691d 100644
--- a/arch/riscv/kernel/smp.c
+++ b/arch/riscv/kernel/smp.c
@@ -59,16 +59,6 @@ int riscv_hartid_to_cpuid(int hartid)
return -ENOENT;
}
-void riscv_cpuid_to_hartid_mask(const struct cpumask *in, struct cpumask *out)
-{
- int cpu;
-
- cpumask_clear(out);
- for_each_cpu(cpu, in)
- cpumask_set_cpu(cpuid_to_hartid_map(cpu), out);
-}
-EXPORT_SYMBOL_GPL(riscv_cpuid_to_hartid_mask);
-
bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
{
return phys_id == cpuid_to_hartid_map(cpu);
diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
index c0cddf0fc22d..5e7decd87525 100644
--- a/arch/riscv/mm/init.c
+++ b/arch/riscv/mm/init.c
@@ -187,10 +187,10 @@ static void __init setup_bootmem(void)
phys_ram_end = memblock_end_of_DRAM();
-#ifndef CONFIG_64BIT
#ifndef CONFIG_XIP_KERNEL
phys_ram_base = memblock_start_of_DRAM();
#endif
+#ifndef CONFIG_64BIT
/*
* memblock allocator is not aware of the fact that last 4K bytes of
* the addressable memory can not be mapped because of IS_ERR_VALUE
@@ -813,13 +813,22 @@ static void __init reserve_crashkernel(void)
/*
* Current riscv boot protocol requires 2MB alignment for
* RV64 and 4MB alignment for RV32 (hugepage size)
+ *
+ * Try to alloc from 32bit addressible physical memory so that
+ * swiotlb can work on the crash kernel.
*/
crash_base = memblock_phys_alloc_range(crash_size, PMD_SIZE,
- search_start, search_end);
+ search_start,
+ min(search_end, (unsigned long) SZ_4G));
if (crash_base == 0) {
- pr_warn("crashkernel: couldn't allocate %lldKB\n",
- crash_size >> 10);
- return;
+ /* Try again without restricting region to 32bit addressible memory */
+ crash_base = memblock_phys_alloc_range(crash_size, PMD_SIZE,
+ search_start, search_end);
+ if (crash_base == 0) {
+ pr_warn("crashkernel: couldn't allocate %lldKB\n",
+ crash_size >> 10);
+ return;
+ }
}
pr_info("crashkernel: reserved 0x%016llx - 0x%016llx (%lld MB)\n",
diff --git a/arch/s390/mm/pgalloc.c b/arch/s390/mm/pgalloc.c
index 781965f7210e..91e478e09b54 100644
--- a/arch/s390/mm/pgalloc.c
+++ b/arch/s390/mm/pgalloc.c
@@ -244,13 +244,15 @@ void page_table_free(struct mm_struct *mm, unsigned long *table)
/* Free 2K page table fragment of a 4K page */
bit = ((unsigned long) table & ~PAGE_MASK)/(PTRS_PER_PTE*sizeof(pte_t));
spin_lock_bh(&mm->context.lock);
- mask = atomic_xor_bits(&page->_refcount, 1U << (bit + 24));
+ mask = atomic_xor_bits(&page->_refcount, 0x11U << (bit + 24));
mask >>= 24;
if (mask & 3)
list_add(&page->lru, &mm->context.pgtable_list);
else
list_del(&page->lru);
spin_unlock_bh(&mm->context.lock);
+ mask = atomic_xor_bits(&page->_refcount, 0x10U << (bit + 24));
+ mask >>= 24;
if (mask != 0)
return;
} else {
diff --git a/arch/sh/configs/titan_defconfig b/arch/sh/configs/titan_defconfig
index ba887f1351be..cd5c58916c65 100644
--- a/arch/sh/configs/titan_defconfig
+++ b/arch/sh/configs/titan_defconfig
@@ -242,7 +242,6 @@ CONFIG_NFSD=y
CONFIG_NFSD_V3=y
CONFIG_SMB_FS=m
CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_ASCII=m
diff --git a/arch/um/.gitignore b/arch/um/.gitignore
index 6323e5571887..d69ea5b562ce 100644
--- a/arch/um/.gitignore
+++ b/arch/um/.gitignore
@@ -2,3 +2,4 @@
kernel/config.c
kernel/config.tmp
kernel/vmlinux.lds
+kernel/capflags.c
diff --git a/arch/um/drivers/virt-pci.c b/arch/um/drivers/virt-pci.c
index c08066633023..0ab58016db22 100644
--- a/arch/um/drivers/virt-pci.c
+++ b/arch/um/drivers/virt-pci.c
@@ -181,15 +181,15 @@ static unsigned long um_pci_cfgspace_read(void *priv, unsigned int offset,
/* buf->data is maximum size - we may only use parts of it */
struct um_pci_message_buffer *buf;
u8 *data;
- unsigned long ret = ~0ULL;
+ unsigned long ret = ULONG_MAX;
if (!dev)
- return ~0ULL;
+ return ULONG_MAX;
buf = get_cpu_var(um_pci_msg_bufs);
data = buf->data;
- memset(data, 0xff, sizeof(data));
+ memset(buf->data, 0xff, sizeof(buf->data));
switch (size) {
case 1:
@@ -304,7 +304,7 @@ static unsigned long um_pci_bar_read(void *priv, unsigned int offset,
/* buf->data is maximum size - we may only use parts of it */
struct um_pci_message_buffer *buf;
u8 *data;
- unsigned long ret = ~0ULL;
+ unsigned long ret = ULONG_MAX;
buf = get_cpu_var(um_pci_msg_bufs);
data = buf->data;
diff --git a/arch/um/drivers/virtio_uml.c b/arch/um/drivers/virtio_uml.c
index d51e445df797..7755cb4ff9fc 100644
--- a/arch/um/drivers/virtio_uml.c
+++ b/arch/um/drivers/virtio_uml.c
@@ -1090,6 +1090,8 @@ static void virtio_uml_release_dev(struct device *d)
container_of(d, struct virtio_device, dev);
struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
+ time_travel_propagate_time();
+
/* might not have been opened due to not negotiating the feature */
if (vu_dev->req_fd >= 0) {
um_free_irq(vu_dev->irq, vu_dev);
@@ -1136,6 +1138,8 @@ static int virtio_uml_probe(struct platform_device *pdev)
vu_dev->pdev = pdev;
vu_dev->req_fd = -1;
+ time_travel_propagate_time();
+
do {
rc = os_connect_socket(pdata->socket_path);
} while (rc == -EINTR);
diff --git a/arch/um/include/asm/delay.h b/arch/um/include/asm/delay.h
index 56fc2b8f2dd0..e79b2ab6f40c 100644
--- a/arch/um/include/asm/delay.h
+++ b/arch/um/include/asm/delay.h
@@ -14,7 +14,7 @@ static inline void um_ndelay(unsigned long nsecs)
ndelay(nsecs);
}
#undef ndelay
-#define ndelay um_ndelay
+#define ndelay(n) um_ndelay(n)
static inline void um_udelay(unsigned long usecs)
{
@@ -26,5 +26,5 @@ static inline void um_udelay(unsigned long usecs)
udelay(usecs);
}
#undef udelay
-#define udelay um_udelay
+#define udelay(n) um_udelay(n)
#endif /* __UM_DELAY_H */
diff --git a/arch/um/include/asm/irqflags.h b/arch/um/include/asm/irqflags.h
index dab5744e9253..1e69ef5bc35e 100644
--- a/arch/um/include/asm/irqflags.h
+++ b/arch/um/include/asm/irqflags.h
@@ -3,7 +3,7 @@
#define __UM_IRQFLAGS_H
extern int signals_enabled;
-int set_signals(int enable);
+int um_set_signals(int enable);
void block_signals(void);
void unblock_signals(void);
@@ -16,7 +16,7 @@ static inline unsigned long arch_local_save_flags(void)
#define arch_local_irq_restore arch_local_irq_restore
static inline void arch_local_irq_restore(unsigned long flags)
{
- set_signals(flags);
+ um_set_signals(flags);
}
#define arch_local_irq_enable arch_local_irq_enable
diff --git a/arch/um/include/shared/longjmp.h b/arch/um/include/shared/longjmp.h
index bdb2869b72b3..8863319039f3 100644
--- a/arch/um/include/shared/longjmp.h
+++ b/arch/um/include/shared/longjmp.h
@@ -18,7 +18,7 @@ extern void longjmp(jmp_buf, int);
enable = *(volatile int *)&signals_enabled; \
n = setjmp(*buf); \
if(n != 0) \
- set_signals_trace(enable); \
+ um_set_signals_trace(enable); \
n; })
#endif
diff --git a/arch/um/include/shared/os.h b/arch/um/include/shared/os.h
index 96d400387c93..03ffbdddcc48 100644
--- a/arch/um/include/shared/os.h
+++ b/arch/um/include/shared/os.h
@@ -238,8 +238,8 @@ extern void send_sigio_to_self(void);
extern int change_sig(int signal, int on);
extern void block_signals(void);
extern void unblock_signals(void);
-extern int set_signals(int enable);
-extern int set_signals_trace(int enable);
+extern int um_set_signals(int enable);
+extern int um_set_signals_trace(int enable);
extern int os_is_signal_stack(void);
extern void deliver_alarm(void);
extern void register_pm_wake_signal(void);
diff --git a/arch/um/include/shared/registers.h b/arch/um/include/shared/registers.h
index 0c50fa6e8a55..fbb709a22283 100644
--- a/arch/um/include/shared/registers.h
+++ b/arch/um/include/shared/registers.h
@@ -16,8 +16,8 @@ extern int restore_fp_registers(int pid, unsigned long *fp_regs);
extern int save_fpx_registers(int pid, unsigned long *fp_regs);
extern int restore_fpx_registers(int pid, unsigned long *fp_regs);
extern int save_registers(int pid, struct uml_pt_regs *regs);
-extern int restore_registers(int pid, struct uml_pt_regs *regs);
-extern int init_registers(int pid);
+extern int restore_pid_registers(int pid, struct uml_pt_regs *regs);
+extern int init_pid_registers(int pid);
extern void get_safe_registers(unsigned long *regs, unsigned long *fp_regs);
extern unsigned long get_thread_reg(int reg, jmp_buf *buf);
extern int get_fp_registers(int pid, unsigned long *regs);
diff --git a/arch/um/kernel/ksyms.c b/arch/um/kernel/ksyms.c
index b1e5634398d0..3a85bde3e173 100644
--- a/arch/um/kernel/ksyms.c
+++ b/arch/um/kernel/ksyms.c
@@ -6,7 +6,7 @@
#include <linux/module.h>
#include <os.h>
-EXPORT_SYMBOL(set_signals);
+EXPORT_SYMBOL(um_set_signals);
EXPORT_SYMBOL(signals_enabled);
EXPORT_SYMBOL(os_stat_fd);
diff --git a/arch/um/os-Linux/registers.c b/arch/um/os-Linux/registers.c
index 2d9270508e15..b123955be7ac 100644
--- a/arch/um/os-Linux/registers.c
+++ b/arch/um/os-Linux/registers.c
@@ -21,7 +21,7 @@ int save_registers(int pid, struct uml_pt_regs *regs)
return 0;
}
-int restore_registers(int pid, struct uml_pt_regs *regs)
+int restore_pid_registers(int pid, struct uml_pt_regs *regs)
{
int err;
@@ -36,7 +36,7 @@ int restore_registers(int pid, struct uml_pt_regs *regs)
static unsigned long exec_regs[MAX_REG_NR];
static unsigned long exec_fp_regs[FP_SIZE];
-int init_registers(int pid)
+int init_pid_registers(int pid)
{
int err;
diff --git a/arch/um/os-Linux/sigio.c b/arch/um/os-Linux/sigio.c
index 6597ea1986ff..9e71794839e8 100644
--- a/arch/um/os-Linux/sigio.c
+++ b/arch/um/os-Linux/sigio.c
@@ -132,7 +132,7 @@ static void update_thread(void)
int n;
char c;
- flags = set_signals_trace(0);
+ flags = um_set_signals_trace(0);
CATCH_EINTR(n = write(sigio_private[0], &c, sizeof(c)));
if (n != sizeof(c)) {
printk(UM_KERN_ERR "update_thread : write failed, err = %d\n",
@@ -147,7 +147,7 @@ static void update_thread(void)
goto fail;
}
- set_signals_trace(flags);
+ um_set_signals_trace(flags);
return;
fail:
/* Critical section start */
@@ -161,7 +161,7 @@ static void update_thread(void)
close(write_sigio_fds[0]);
close(write_sigio_fds[1]);
/* Critical section end */
- set_signals_trace(flags);
+ um_set_signals_trace(flags);
}
int __add_sigio_fd(int fd)
diff --git a/arch/um/os-Linux/signal.c b/arch/um/os-Linux/signal.c
index 6cf098c23a39..24a403a70a02 100644
--- a/arch/um/os-Linux/signal.c
+++ b/arch/um/os-Linux/signal.c
@@ -94,7 +94,7 @@ void sig_handler(int sig, struct siginfo *si, mcontext_t *mc)
sig_handler_common(sig, si, mc);
- set_signals_trace(enabled);
+ um_set_signals_trace(enabled);
}
static void timer_real_alarm_handler(mcontext_t *mc)
@@ -126,7 +126,7 @@ void timer_alarm_handler(int sig, struct siginfo *unused_si, mcontext_t *mc)
signals_active &= ~SIGALRM_MASK;
- set_signals_trace(enabled);
+ um_set_signals_trace(enabled);
}
void deliver_alarm(void) {
@@ -348,7 +348,7 @@ void unblock_signals(void)
}
}
-int set_signals(int enable)
+int um_set_signals(int enable)
{
int ret;
if (signals_enabled == enable)
@@ -362,7 +362,7 @@ int set_signals(int enable)
return ret;
}
-int set_signals_trace(int enable)
+int um_set_signals_trace(int enable)
{
int ret;
if (signals_enabled == enable)
diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c
index 8a72c99994eb..e3ee4db58b40 100644
--- a/arch/um/os-Linux/start_up.c
+++ b/arch/um/os-Linux/start_up.c
@@ -368,7 +368,7 @@ void __init os_early_checks(void)
check_tmpexec();
pid = start_ptraced_child();
- if (init_registers(pid))
+ if (init_pid_registers(pid))
fatal("Failed to initialize default registers");
stop_ptraced_child(pid, 1, 1);
}
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
index 431bf7f846c3..e11813646051 100644
--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -28,7 +28,11 @@ KCOV_INSTRUMENT := n
targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
vmlinux.bin.xz vmlinux.bin.lzo vmlinux.bin.lz4 vmlinux.bin.zst
-KBUILD_CFLAGS := -m$(BITS) -O2
+# CLANG_FLAGS must come before any cc-disable-warning or cc-option calls in
+# case of cross compiling, as it has the '--target=' flag, which is needed to
+# avoid errors with '-march=i386', and future flags may depend on the target to
+# be valid.
+KBUILD_CFLAGS := -m$(BITS) -O2 $(CLANG_FLAGS)
KBUILD_CFLAGS += -fno-strict-aliasing -fPIE
KBUILD_CFLAGS += -Wundef
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
@@ -47,7 +51,6 @@ KBUILD_CFLAGS += -D__DISABLE_EXPORTS
# Disable relocation relaxation in case the link is not PIE.
KBUILD_CFLAGS += $(call as-option,-Wa$(comma)-mrelax-relocations=no)
KBUILD_CFLAGS += -include $(srctree)/include/linux/hidden.h
-KBUILD_CFLAGS += $(CLANG_FLAGS)
# sev.c indirectly inludes inat-table.h which is generated during
# compilation and stored in $(objtree). Add the directory to the includes so
diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig
index e81885384f60..99398cbdae43 100644
--- a/arch/x86/configs/i386_defconfig
+++ b/arch/x86/configs/i386_defconfig
@@ -262,3 +262,4 @@ CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_DEBUG_BOOT_PARAMS=y
+CONFIG_KALLSYMS_ALL=y
diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig
index e8a7a0af2bda..d7298b104a45 100644
--- a/arch/x86/configs/x86_64_defconfig
+++ b/arch/x86/configs/x86_64_defconfig
@@ -258,3 +258,4 @@ CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_DEBUG_BOOT_PARAMS=y
+CONFIG_KALLSYMS_ALL=y
diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c
index e09f4672dd38..41901ba9d3a2 100644
--- a/arch/x86/crypto/aesni-intel_glue.c
+++ b/arch/x86/crypto/aesni-intel_glue.c
@@ -1107,7 +1107,7 @@ static struct aead_alg aesni_aeads[] = { {
.cra_flags = CRYPTO_ALG_INTERNAL,
.cra_blocksize = 1,
.cra_ctxsize = sizeof(struct aesni_rfc4106_gcm_ctx),
- .cra_alignmask = AESNI_ALIGN - 1,
+ .cra_alignmask = 0,
.cra_module = THIS_MODULE,
},
}, {
@@ -1124,7 +1124,7 @@ static struct aead_alg aesni_aeads[] = { {
.cra_flags = CRYPTO_ALG_INTERNAL,
.cra_blocksize = 1,
.cra_ctxsize = sizeof(struct generic_gcmaes_ctx),
- .cra_alignmask = AESNI_ALIGN - 1,
+ .cra_alignmask = 0,
.cra_module = THIS_MODULE,
},
} };
diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h
index 5db5d083c873..331474b150f1 100644
--- a/arch/x86/include/asm/realmode.h
+++ b/arch/x86/include/asm/realmode.h
@@ -89,6 +89,7 @@ static inline void set_real_mode_mem(phys_addr_t mem)
}
void reserve_real_mode(void);
+void load_trampoline_pgtable(void);
#endif /* __ASSEMBLY__ */
diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h
index 9239399e5491..55160445ea78 100644
--- a/arch/x86/include/asm/topology.h
+++ b/arch/x86/include/asm/topology.h
@@ -218,7 +218,7 @@ static inline void arch_set_max_freq_ratio(bool turbo_disabled)
}
#endif
-#ifdef CONFIG_ACPI_CPPC_LIB
+#if defined(CONFIG_ACPI_CPPC_LIB) && defined(CONFIG_SMP)
void init_freq_invariance_cppc(void);
#define init_freq_invariance_cppc init_freq_invariance_cppc
#endif
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index 5c95d242f38d..bb1430283c72 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -314,11 +314,12 @@ do { \
do { \
__chk_user_ptr(ptr); \
switch (size) { \
- unsigned char x_u8__; \
- case 1: \
+ case 1: { \
+ unsigned char x_u8__; \
__get_user_asm(x_u8__, ptr, "b", "=q", label); \
(x) = x_u8__; \
break; \
+ } \
case 2: \
__get_user_asm(x, ptr, "w", "=r", label); \
break; \
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 193204aee880..e23e74e2f928 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -295,11 +295,17 @@ static void wait_for_panic(void)
panic("Panicing machine check CPU died");
}
-static void mce_panic(const char *msg, struct mce *final, char *exp)
+static noinstr void mce_panic(const char *msg, struct mce *final, char *exp)
{
- int apei_err = 0;
struct llist_node *pending;
struct mce_evt_llist *l;
+ int apei_err = 0;
+
+ /*
+ * Allow instrumentation around external facilities usage. Not that it
+ * matters a whole lot since the machine is going to panic anyway.
+ */
+ instrumentation_begin();
if (!fake_panic) {
/*
@@ -314,7 +320,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
} else {
/* Don't log too much for fake panic */
if (atomic_inc_return(&mce_fake_panicked) > 1)
- return;
+ goto out;
}
pending = mce_gen_pool_prepare_records();
/* First print corrected ones that are still unlogged */
@@ -352,6 +358,9 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
panic(msg);
} else
pr_emerg(HW_ERR "Fake kernel panic: %s\n", msg);
+
+out:
+ instrumentation_end();
}
/* Support code for software error injection */
@@ -682,7 +691,7 @@ static struct notifier_block mce_default_nb = {
/*
* Read ADDR and MISC registers.
*/
-static void mce_read_aux(struct mce *m, int i)
+static noinstr void mce_read_aux(struct mce *m, int i)
{
if (m->status & MCI_STATUS_MISCV)
m->misc = mce_rdmsrl(msr_ops.misc(i));
@@ -1072,10 +1081,13 @@ static int mce_start(int *no_way_out)
* Synchronize between CPUs after main scanning loop.
* This invokes the bulk of the Monarch processing.
*/
-static int mce_end(int order)
+static noinstr int mce_end(int order)
{
- int ret = -1;
u64 timeout = (u64)mca_cfg.monarch_timeout * NSEC_PER_USEC;
+ int ret = -1;
+
+ /* Allow instrumentation around external facilities. */
+ instrumentation_begin();
if (!timeout)
goto reset;
@@ -1119,7 +1131,8 @@ static int mce_end(int order)
/*
* Don't reset anything. That's done by the Monarch.
*/
- return 0;
+ ret = 0;
+ goto out;
}
/*
@@ -1135,6 +1148,10 @@ static int mce_end(int order)
* Let others run again.
*/
atomic_set(&mce_executing, 0);
+
+out:
+ instrumentation_end();
+
return ret;
}
@@ -1454,6 +1471,14 @@ noinstr void do_machine_check(struct pt_regs *regs)
if (worst != MCE_AR_SEVERITY && !kill_current_task)
goto out;
+ /*
+ * Enable instrumentation around the external facilities like
+ * task_work_add() (via queue_task_work()), fixup_exception() etc.
+ * For now, that is. Fixing this properly would need a lot more involved
+ * reorganization.
+ */
+ instrumentation_begin();
+
/* Fault was in user mode and we need to take some action */
if ((m.cs & 3) == 3) {
/* If this triggers there is no way to recover. Die hard. */
@@ -1479,6 +1504,9 @@ noinstr void do_machine_check(struct pt_regs *regs)
if (m.kflags & MCE_IN_KERNEL_COPYIN)
queue_task_work(&m, msg, kill_current_task);
}
+
+ instrumentation_end();
+
out:
mce_wrmsrl(MSR_IA32_MCG_STATUS, 0);
}
diff --git a/arch/x86/kernel/cpu/mce/inject.c b/arch/x86/kernel/cpu/mce/inject.c
index 0bfc14041bbb..b63b548497c1 100644
--- a/arch/x86/kernel/cpu/mce/inject.c
+++ b/arch/x86/kernel/cpu/mce/inject.c
@@ -350,7 +350,7 @@ static ssize_t flags_write(struct file *filp, const char __user *ubuf,
char buf[MAX_FLAG_OPT_SIZE], *__buf;
int err;
- if (cnt > MAX_FLAG_OPT_SIZE)
+ if (!cnt || cnt > MAX_FLAG_OPT_SIZE)
return -EINVAL;
if (copy_from_user(&buf, ubuf, cnt))
diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c
index 391a4e2b8604..8690fab95ae4 100644
--- a/arch/x86/kernel/early-quirks.c
+++ b/arch/x86/kernel/early-quirks.c
@@ -515,6 +515,7 @@ static const struct intel_early_ops gen11_early_ops __initconst = {
.stolen_size = gen9_stolen_size,
};
+/* Intel integrated GPUs for which we need to reserve "stolen memory" */
static const struct pci_device_id intel_early_ids[] __initconst = {
INTEL_I830_IDS(&i830_early_ops),
INTEL_I845G_IDS(&i845_early_ops),
@@ -591,6 +592,13 @@ static void __init intel_graphics_quirks(int num, int slot, int func)
u16 device;
int i;
+ /*
+ * Reserve "stolen memory" for an integrated GPU. If we've already
+ * found one, there's nothing to do for other (discrete) GPUs.
+ */
+ if (resource_size(&intel_graphics_stolen_res))
+ return;
+
device = read_pci_config_16(num, slot, func, PCI_DEVICE_ID);
for (i = 0; i < ARRAY_SIZE(intel_early_ids); i++) {
@@ -703,7 +711,7 @@ static struct chipset early_qrk[] __initdata = {
{ PCI_VENDOR_ID_INTEL, 0x3406, PCI_CLASS_BRIDGE_HOST,
PCI_BASE_CLASS_BRIDGE, 0, intel_remapping_check },
{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA, PCI_ANY_ID,
- QFLAG_APPLY_ONCE, intel_graphics_quirks },
+ 0, intel_graphics_quirks },
/*
* HPET on the current version of the Baytrail platform has accuracy
* problems: it will halt in deep idle state - so we disable it.
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 0a40df66a40d..fa700b46588e 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -113,17 +113,9 @@ void __noreturn machine_real_restart(unsigned int type)
spin_unlock(&rtc_lock);
/*
- * Switch back to the initial page table.
+ * Switch to the trampoline page table.
*/
-#ifdef CONFIG_X86_32
- load_cr3(initial_page_table);
-#else
- write_cr3(real_mode_header->trampoline_pgd);
-
- /* Exiting long mode will fail if CR4.PCIDE is set. */
- if (boot_cpu_has(X86_FEATURE_PCID))
- cr4_clear_bits(X86_CR4_PCIDE);
-#endif
+ load_trampoline_pgtable();
/* Jump to the identity-mapped low memory code */
#ifdef CONFIG_X86_32
diff --git a/arch/x86/kvm/mmu/tdp_mmu.c b/arch/x86/kvm/mmu/tdp_mmu.c
index 4954cd01c1f0..d479b2b12125 100644
--- a/arch/x86/kvm/mmu/tdp_mmu.c
+++ b/arch/x86/kvm/mmu/tdp_mmu.c
@@ -1493,12 +1493,12 @@ static bool write_protect_gfn(struct kvm *kvm, struct kvm_mmu_page *root,
!is_last_spte(iter.old_spte, iter.level))
continue;
- if (!is_writable_pte(iter.old_spte))
- break;
-
new_spte = iter.old_spte &
~(PT_WRITABLE_MASK | shadow_mmu_writable_mask);
+ if (new_spte == iter.old_spte)
+ break;
+
tdp_mmu_set_spte(kvm, &iter, new_spte);
spte_set = true;
}
diff --git a/arch/x86/kvm/vmx/posted_intr.c b/arch/x86/kvm/vmx/posted_intr.c
index 1c94783b5a54..21ea58d25771 100644
--- a/arch/x86/kvm/vmx/posted_intr.c
+++ b/arch/x86/kvm/vmx/posted_intr.c
@@ -15,7 +15,7 @@
* can find which vCPU should be waken up.
*/
static DEFINE_PER_CPU(struct list_head, blocked_vcpu_on_cpu);
-static DEFINE_PER_CPU(spinlock_t, blocked_vcpu_on_cpu_lock);
+static DEFINE_PER_CPU(raw_spinlock_t, blocked_vcpu_on_cpu_lock);
static inline struct pi_desc *vcpu_to_pi_desc(struct kvm_vcpu *vcpu)
{
@@ -121,9 +121,9 @@ static void __pi_post_block(struct kvm_vcpu *vcpu)
new.control) != old.control);
if (!WARN_ON_ONCE(vcpu->pre_pcpu == -1)) {
- spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
+ raw_spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
list_del(&vcpu->blocked_vcpu_list);
- spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
+ raw_spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
vcpu->pre_pcpu = -1;
}
}
@@ -154,11 +154,11 @@ int pi_pre_block(struct kvm_vcpu *vcpu)
local_irq_disable();
if (!WARN_ON_ONCE(vcpu->pre_pcpu != -1)) {
vcpu->pre_pcpu = vcpu->cpu;
- spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
+ raw_spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
list_add_tail(&vcpu->blocked_vcpu_list,
&per_cpu(blocked_vcpu_on_cpu,
vcpu->pre_pcpu));
- spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
+ raw_spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
}
do {
@@ -215,7 +215,7 @@ void pi_wakeup_handler(void)
struct kvm_vcpu *vcpu;
int cpu = smp_processor_id();
- spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
+ raw_spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
list_for_each_entry(vcpu, &per_cpu(blocked_vcpu_on_cpu, cpu),
blocked_vcpu_list) {
struct pi_desc *pi_desc = vcpu_to_pi_desc(vcpu);
@@ -223,13 +223,13 @@ void pi_wakeup_handler(void)
if (pi_test_on(pi_desc) == 1)
kvm_vcpu_kick(vcpu);
}
- spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
+ raw_spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
}
void __init pi_init_cpu(int cpu)
{
INIT_LIST_HEAD(&per_cpu(blocked_vcpu_on_cpu, cpu));
- spin_lock_init(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
+ raw_spin_lock_init(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
}
bool pi_has_pending_interrupt(struct kvm_vcpu *vcpu)
diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c
index d3eee1ebcf1d..1d20ed4b2872 100644
--- a/arch/x86/realmode/init.c
+++ b/arch/x86/realmode/init.c
@@ -17,6 +17,32 @@ u32 *trampoline_cr4_features;
/* Hold the pgd entry used on booting additional CPUs */
pgd_t trampoline_pgd_entry;
+void load_trampoline_pgtable(void)
+{
+#ifdef CONFIG_X86_32
+ load_cr3(initial_page_table);
+#else
+ /*
+ * This function is called before exiting to real-mode and that will
+ * fail with CR4.PCIDE still set.
+ */
+ if (boot_cpu_has(X86_FEATURE_PCID))
+ cr4_clear_bits(X86_CR4_PCIDE);
+
+ write_cr3(real_mode_header->trampoline_pgd);
+#endif
+
+ /*
+ * The CR3 write above will not flush global TLB entries.
+ * Stale, global entries from previous page tables may still be
+ * present. Flush those stale entries.
+ *
+ * This ensures that memory accessed while running with
+ * trampoline_pgd is *actually* mapped into trampoline_pgd.
+ */
+ __flush_tlb_all();
+}
+
void __init reserve_real_mode(void)
{
phys_addr_t mem;
diff --git a/arch/x86/um/syscalls_64.c b/arch/x86/um/syscalls_64.c
index 58f51667e2e4..8249685b4096 100644
--- a/arch/x86/um/syscalls_64.c
+++ b/arch/x86/um/syscalls_64.c
@@ -11,6 +11,7 @@
#include <linux/uaccess.h>
#include <asm/prctl.h> /* XXX This should get the constants from libc */
#include <os.h>
+#include <registers.h>
long arch_prctl(struct task_struct *task, int option,
unsigned long __user *arg2)
@@ -35,7 +36,7 @@ long arch_prctl(struct task_struct *task, int option,
switch (option) {
case ARCH_SET_FS:
case ARCH_SET_GS:
- ret = restore_registers(pid, ¤t->thread.regs.regs);
+ ret = restore_pid_registers(pid, ¤t->thread.regs.regs);
if (ret)
return ret;
break;
diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index 480e1a134859..ea9a086d0498 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -5991,48 +5991,7 @@ static void bfq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
spin_lock_irq(&bfqd->lock);
bfqq = bfq_init_rq(rq);
-
- /*
- * Reqs with at_head or passthrough flags set are to be put
- * directly into dispatch list. Additional case for putting rq
- * directly into the dispatch queue: the only active
- * bfq_queues are bfqq and either its waker bfq_queue or one
- * of its woken bfq_queues. The rationale behind this
- * additional condition is as follows:
- * - consider a bfq_queue, say Q1, detected as a waker of
- * another bfq_queue, say Q2
- * - by definition of a waker, Q1 blocks the I/O of Q2, i.e.,
- * some I/O of Q1 needs to be completed for new I/O of Q2
- * to arrive. A notable example of waker is journald
- * - so, Q1 and Q2 are in any respect the queues of two
- * cooperating processes (or of two cooperating sets of
- * processes): the goal of Q1's I/O is doing what needs to
- * be done so that new Q2's I/O can finally be
- * issued. Therefore, if the service of Q1's I/O is delayed,
- * then Q2's I/O is delayed too. Conversely, if Q2's I/O is
- * delayed, the goal of Q1's I/O is hindered.
- * - as a consequence, if some I/O of Q1/Q2 arrives while
- * Q2/Q1 is the only queue in service, there is absolutely
- * no point in delaying the service of such an I/O. The
- * only possible result is a throughput loss
- * - so, when the above condition holds, the best option is to
- * have the new I/O dispatched as soon as possible
- * - the most effective and efficient way to attain the above
- * goal is to put the new I/O directly in the dispatch
- * list
- * - as an additional restriction, Q1 and Q2 must be the only
- * busy queues for this commit to put the I/O of Q2/Q1 in
- * the dispatch list. This is necessary, because, if also
- * other queues are waiting for service, then putting new
- * I/O directly in the dispatch list may evidently cause a
- * violation of service guarantees for the other queues
- */
- if (!bfqq ||
- (bfqq != bfqd->in_service_queue &&
- bfqd->in_service_queue != NULL &&
- bfq_tot_busy_queues(bfqd) == 1 + bfq_bfqq_busy(bfqq) &&
- (bfqq->waker_bfqq == bfqd->in_service_queue ||
- bfqd->in_service_queue->waker_bfqq == bfqq)) || at_head) {
+ if (!bfqq || at_head) {
if (at_head)
list_add(&rq->queuelist, &bfqd->dispatch);
else
@@ -6059,7 +6018,6 @@ static void bfq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
* merge).
*/
cmd_flags = rq->cmd_flags;
-
spin_unlock_irq(&bfqd->lock);
bfq_update_insert_stats(q, bfqq, idle_timer_disabled,
diff --git a/block/blk-flush.c b/block/blk-flush.c
index 4201728bf3a5..94a86acbb7f6 100644
--- a/block/blk-flush.c
+++ b/block/blk-flush.c
@@ -235,8 +235,10 @@ static void flush_end_io(struct request *flush_rq, blk_status_t error)
* avoiding use-after-free.
*/
WRITE_ONCE(flush_rq->state, MQ_RQ_IDLE);
- if (fq->rq_status != BLK_STS_OK)
+ if (fq->rq_status != BLK_STS_OK) {
error = fq->rq_status;
+ fq->rq_status = BLK_STS_OK;
+ }
if (!q->elevator) {
flush_rq->tag = BLK_MQ_NO_TAG;
diff --git a/block/blk-pm.c b/block/blk-pm.c
index 17bd020268d4..2dad62cc1572 100644
--- a/block/blk-pm.c
+++ b/block/blk-pm.c
@@ -163,27 +163,19 @@ EXPORT_SYMBOL(blk_pre_runtime_resume);
/**
* blk_post_runtime_resume - Post runtime resume processing
* @q: the queue of the device
- * @err: return value of the device's runtime_resume function
*
* Description:
- * Update the queue's runtime status according to the return value of the
- * device's runtime_resume function. If the resume was successful, call
- * blk_set_runtime_active() to do the real work of restarting the queue.
+ * For historical reasons, this routine merely calls blk_set_runtime_active()
+ * to do the real work of restarting the queue. It does this regardless of
+ * whether the device's runtime-resume succeeded; even if it failed the
+ * driver or error handler will need to communicate with the device.
*
* This function should be called near the end of the device's
* runtime_resume callback.
*/
-void blk_post_runtime_resume(struct request_queue *q, int err)
+void blk_post_runtime_resume(struct request_queue *q)
{
- if (!q->dev)
- return;
- if (!err) {
- blk_set_runtime_active(q);
- } else {
- spin_lock_irq(&q->queue_lock);
- q->rpm_status = RPM_SUSPENDED;
- spin_unlock_irq(&q->queue_lock);
- }
+ blk_set_runtime_active(q);
}
EXPORT_SYMBOL(blk_post_runtime_resume);
@@ -201,7 +193,7 @@ EXPORT_SYMBOL(blk_post_runtime_resume);
* runtime PM status and re-enable peeking requests from the queue. It
* should be called before first request is added to the queue.
*
- * This function is also called by blk_post_runtime_resume() for successful
+ * This function is also called by blk_post_runtime_resume() for
* runtime resumes. It does everything necessary to restart the queue.
*/
void blk_set_runtime_active(struct request_queue *q)
diff --git a/block/genhd.c b/block/genhd.c
index f091a60dcf1e..de789d1a1e3d 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -420,6 +420,8 @@ int device_add_disk(struct device *parent, struct gendisk *disk,
DISK_MAX_PARTS);
disk->minors = DISK_MAX_PARTS;
}
+ if (disk->first_minor + disk->minors > MINORMASK + 1)
+ return -EINVAL;
} else {
if (WARN_ON(disk->minors))
return -EINVAL;
@@ -432,10 +434,6 @@ int device_add_disk(struct device *parent, struct gendisk *disk,
disk->flags |= GENHD_FL_EXT_DEVT;
}
- ret = disk_alloc_events(disk);
- if (ret)
- goto out_free_ext_minor;
-
/* delay uevents, until we scanned partition table */
dev_set_uevent_suppress(ddev, 1);
@@ -446,7 +444,12 @@ int device_add_disk(struct device *parent, struct gendisk *disk,
ddev->devt = MKDEV(disk->major, disk->first_minor);
ret = device_add(ddev);
if (ret)
- goto out_disk_release_events;
+ goto out_free_ext_minor;
+
+ ret = disk_alloc_events(disk);
+ if (ret)
+ goto out_device_del;
+
if (!sysfs_deprecated) {
ret = sysfs_create_link(block_depr, &ddev->kobj,
kobject_name(&ddev->kobj));
@@ -534,8 +537,6 @@ int device_add_disk(struct device *parent, struct gendisk *disk,
sysfs_remove_link(block_depr, dev_name(ddev));
out_device_del:
device_del(ddev);
-out_disk_release_events:
- disk_release_events(disk);
out_free_ext_minor:
if (disk->major == BLOCK_EXT_MAJOR)
blk_free_ext_minor(disk->first_minor);
diff --git a/block/mq-deadline.c b/block/mq-deadline.c
index 7f3c3932b723..cd2342d29704 100644
--- a/block/mq-deadline.c
+++ b/block/mq-deadline.c
@@ -811,7 +811,7 @@ SHOW_JIFFIES(deadline_read_expire_show, dd->fifo_expire[DD_READ]);
SHOW_JIFFIES(deadline_write_expire_show, dd->fifo_expire[DD_WRITE]);
SHOW_INT(deadline_writes_starved_show, dd->writes_starved);
SHOW_INT(deadline_front_merges_show, dd->front_merges);
-SHOW_INT(deadline_async_depth_show, dd->front_merges);
+SHOW_INT(deadline_async_depth_show, dd->async_depth);
SHOW_INT(deadline_fifo_batch_show, dd->fifo_batch);
#undef SHOW_INT
#undef SHOW_JIFFIES
@@ -840,7 +840,7 @@ STORE_JIFFIES(deadline_read_expire_store, &dd->fifo_expire[DD_READ], 0, INT_MAX)
STORE_JIFFIES(deadline_write_expire_store, &dd->fifo_expire[DD_WRITE], 0, INT_MAX);
STORE_INT(deadline_writes_starved_store, &dd->writes_starved, INT_MIN, INT_MAX);
STORE_INT(deadline_front_merges_store, &dd->front_merges, 0, 1);
-STORE_INT(deadline_async_depth_store, &dd->front_merges, 1, INT_MAX);
+STORE_INT(deadline_async_depth_store, &dd->async_depth, 1, INT_MAX);
STORE_INT(deadline_fifo_batch_store, &dd->fifo_batch, 0, INT_MAX);
#undef STORE_FUNCTION
#undef STORE_INT
diff --git a/crypto/jitterentropy.c b/crypto/jitterentropy.c
index a11b3208760f..f6d3a84e3c21 100644
--- a/crypto/jitterentropy.c
+++ b/crypto/jitterentropy.c
@@ -265,7 +265,6 @@ static int jent_stuck(struct rand_data *ec, __u64 current_delta)
{
__u64 delta2 = jent_delta(ec->last_delta, current_delta);
__u64 delta3 = jent_delta(ec->last_delta2, delta2);
- unsigned int delta_masked = current_delta & JENT_APT_WORD_MASK;
ec->last_delta = current_delta;
ec->last_delta2 = delta2;
@@ -274,7 +273,7 @@ static int jent_stuck(struct rand_data *ec, __u64 current_delta)
* Insert the result of the comparison of two back-to-back time
* deltas.
*/
- jent_apt_insert(ec, delta_masked);
+ jent_apt_insert(ec, current_delta);
if (!current_delta || !delta2 || !delta3) {
/* RCT with a stuck bit */
diff --git a/drivers/acpi/acpica/exfield.c b/drivers/acpi/acpica/exfield.c
index 06f3c9df1e22..8618500f23b3 100644
--- a/drivers/acpi/acpica/exfield.c
+++ b/drivers/acpi/acpica/exfield.c
@@ -330,12 +330,7 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc,
obj_desc->field.base_byte_offset,
source_desc->buffer.pointer, data_length);
- if ((obj_desc->field.region_obj->region.address ==
- PCC_MASTER_SUBSPACE
- && MASTER_SUBSPACE_COMMAND(obj_desc->field.
- base_byte_offset))
- || GENERIC_SUBSPACE_COMMAND(obj_desc->field.
- base_byte_offset)) {
+ if (MASTER_SUBSPACE_COMMAND(obj_desc->field.base_byte_offset)) {
/* Perform the write */
diff --git a/drivers/acpi/acpica/exoparg1.c b/drivers/acpi/acpica/exoparg1.c
index b639e930d642..44b7c350ed5c 100644
--- a/drivers/acpi/acpica/exoparg1.c
+++ b/drivers/acpi/acpica/exoparg1.c
@@ -1007,7 +1007,8 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)
(walk_state, return_desc,
&temp_desc);
if (ACPI_FAILURE(status)) {
- goto cleanup;
+ return_ACPI_STATUS
+ (status);
}
return_desc = temp_desc;
diff --git a/drivers/acpi/acpica/hwesleep.c b/drivers/acpi/acpica/hwesleep.c
index 808fdf54aeeb..7ee2939c08cd 100644
--- a/drivers/acpi/acpica/hwesleep.c
+++ b/drivers/acpi/acpica/hwesleep.c
@@ -104,7 +104,9 @@ acpi_status acpi_hw_extended_sleep(u8 sleep_state)
/* Flush caches, as per ACPI specification */
- ACPI_FLUSH_CPU_CACHE();
+ if (sleep_state < ACPI_STATE_S4) {
+ ACPI_FLUSH_CPU_CACHE();
+ }
status = acpi_os_enter_sleep(sleep_state, sleep_control, 0);
if (status == AE_CTRL_TERMINATE) {
diff --git a/drivers/acpi/acpica/hwsleep.c b/drivers/acpi/acpica/hwsleep.c
index 34a3825f25d3..5efa3d8e483e 100644
--- a/drivers/acpi/acpica/hwsleep.c
+++ b/drivers/acpi/acpica/hwsleep.c
@@ -110,7 +110,9 @@ acpi_status acpi_hw_legacy_sleep(u8 sleep_state)
/* Flush caches, as per ACPI specification */
- ACPI_FLUSH_CPU_CACHE();
+ if (sleep_state < ACPI_STATE_S4) {
+ ACPI_FLUSH_CPU_CACHE();
+ }
status = acpi_os_enter_sleep(sleep_state, pm1a_control, pm1b_control);
if (status == AE_CTRL_TERMINATE) {
diff --git a/drivers/acpi/acpica/hwxfsleep.c b/drivers/acpi/acpica/hwxfsleep.c
index e4cde23a2906..ba77598ee43e 100644
--- a/drivers/acpi/acpica/hwxfsleep.c
+++ b/drivers/acpi/acpica/hwxfsleep.c
@@ -162,8 +162,6 @@ acpi_status acpi_enter_sleep_state_s4bios(void)
return_ACPI_STATUS(status);
}
- ACPI_FLUSH_CPU_CACHE();
-
status = acpi_hw_write_port(acpi_gbl_FADT.smi_command,
(u32)acpi_gbl_FADT.s4_bios_request, 8);
if (ACPI_FAILURE(status)) {
diff --git a/drivers/acpi/acpica/utdelete.c b/drivers/acpi/acpica/utdelete.c
index e5ba9795ec69..8d7736d2d269 100644
--- a/drivers/acpi/acpica/utdelete.c
+++ b/drivers/acpi/acpica/utdelete.c
@@ -422,6 +422,7 @@ acpi_ut_update_ref_count(union acpi_operand_object *object, u32 action)
ACPI_WARNING((AE_INFO,
"Obj %p, Reference Count is already zero, cannot decrement\n",
object));
+ return;
}
ACPI_DEBUG_PRINT_RAW((ACPI_DB_ALLOCATIONS,
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index 8afa85d6eb6a..ead0114f27c9 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -53,6 +53,7 @@ static int battery_bix_broken_package;
static int battery_notification_delay_ms;
static int battery_ac_is_broken;
static int battery_check_pmic = 1;
+static int battery_quirk_notcharging;
static unsigned int cache_time = 1000;
module_param(cache_time, uint, 0644);
MODULE_PARM_DESC(cache_time, "cache time in milliseconds");
@@ -217,6 +218,8 @@ static int acpi_battery_get_property(struct power_supply *psy,
val->intval = POWER_SUPPLY_STATUS_CHARGING;
else if (acpi_battery_is_charged(battery))
val->intval = POWER_SUPPLY_STATUS_FULL;
+ else if (battery_quirk_notcharging)
+ val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
else
val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
break;
@@ -1111,6 +1114,12 @@ battery_do_not_check_pmic_quirk(const struct dmi_system_id *d)
return 0;
}
+static int __init battery_quirk_not_charging(const struct dmi_system_id *d)
+{
+ battery_quirk_notcharging = 1;
+ return 0;
+}
+
static const struct dmi_system_id bat_dmi_table[] __initconst = {
{
/* NEC LZ750/LS */
@@ -1155,6 +1164,19 @@ static const struct dmi_system_id bat_dmi_table[] __initconst = {
DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo MIIX 320-10ICR"),
},
},
+ {
+ /*
+ * On Lenovo ThinkPads the BIOS specification defines
+ * a state when the bits for charging and discharging
+ * are both set to 0. That state is "Not Charging".
+ */
+ .callback = battery_quirk_not_charging,
+ .ident = "Lenovo ThinkPad",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad"),
+ },
+ },
{},
};
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index fa923a929224..dd535b4b9a16 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -98,8 +98,8 @@ int acpi_bus_get_status(struct acpi_device *device)
acpi_status status;
unsigned long long sta;
- if (acpi_device_always_present(device)) {
- acpi_set_device_status(device, ACPI_STA_DEFAULT);
+ if (acpi_device_override_status(device, &sta)) {
+ acpi_set_device_status(device, sta);
return 0;
}
diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
index 3fbb17ecce2d..6fe28a2d387b 100644
--- a/drivers/acpi/cppc_acpi.c
+++ b/drivers/acpi/cppc_acpi.c
@@ -411,7 +411,7 @@ bool acpi_cpc_valid(void)
struct cpc_desc *cpc_ptr;
int cpu;
- for_each_possible_cpu(cpu) {
+ for_each_present_cpu(cpu) {
cpc_ptr = per_cpu(cpc_desc_ptr, cpu);
if (!cpc_ptr)
return false;
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index e629e891d1bb..9b859ff976e8 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -166,6 +166,7 @@ struct acpi_ec_query {
struct transaction transaction;
struct work_struct work;
struct acpi_ec_query_handler *handler;
+ struct acpi_ec *ec;
};
static int acpi_ec_query(struct acpi_ec *ec, u8 *data);
@@ -452,6 +453,7 @@ static void acpi_ec_submit_query(struct acpi_ec *ec)
ec_dbg_evt("Command(%s) submitted/blocked",
acpi_ec_cmd_string(ACPI_EC_COMMAND_QUERY));
ec->nr_pending_queries++;
+ ec->events_in_progress++;
queue_work(ec_wq, &ec->work);
}
}
@@ -518,7 +520,7 @@ static void acpi_ec_enable_event(struct acpi_ec *ec)
#ifdef CONFIG_PM_SLEEP
static void __acpi_ec_flush_work(void)
{
- drain_workqueue(ec_wq); /* flush ec->work */
+ flush_workqueue(ec_wq); /* flush ec->work */
flush_workqueue(ec_query_wq); /* flush queries */
}
@@ -1103,7 +1105,7 @@ void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit)
}
EXPORT_SYMBOL_GPL(acpi_ec_remove_query_handler);
-static struct acpi_ec_query *acpi_ec_create_query(u8 *pval)
+static struct acpi_ec_query *acpi_ec_create_query(struct acpi_ec *ec, u8 *pval)
{
struct acpi_ec_query *q;
struct transaction *t;
@@ -1111,11 +1113,13 @@ static struct acpi_ec_query *acpi_ec_create_query(u8 *pval)
q = kzalloc(sizeof (struct acpi_ec_query), GFP_KERNEL);
if (!q)
return NULL;
+
INIT_WORK(&q->work, acpi_ec_event_processor);
t = &q->transaction;
t->command = ACPI_EC_COMMAND_QUERY;
t->rdata = pval;
t->rlen = 1;
+ q->ec = ec;
return q;
}
@@ -1132,13 +1136,21 @@ static void acpi_ec_event_processor(struct work_struct *work)
{
struct acpi_ec_query *q = container_of(work, struct acpi_ec_query, work);
struct acpi_ec_query_handler *handler = q->handler;
+ struct acpi_ec *ec = q->ec;
ec_dbg_evt("Query(0x%02x) started", handler->query_bit);
+
if (handler->func)
handler->func(handler->data);
else if (handler->handle)
acpi_evaluate_object(handler->handle, NULL, NULL, NULL);
+
ec_dbg_evt("Query(0x%02x) stopped", handler->query_bit);
+
+ spin_lock_irq(&ec->lock);
+ ec->queries_in_progress--;
+ spin_unlock_irq(&ec->lock);
+
acpi_ec_delete_query(q);
}
@@ -1148,7 +1160,7 @@ static int acpi_ec_query(struct acpi_ec *ec, u8 *data)
int result;
struct acpi_ec_query *q;
- q = acpi_ec_create_query(&value);
+ q = acpi_ec_create_query(ec, &value);
if (!q)
return -ENOMEM;
@@ -1170,19 +1182,20 @@ static int acpi_ec_query(struct acpi_ec *ec, u8 *data)
}
/*
- * It is reported that _Qxx are evaluated in a parallel way on
- * Windows:
+ * It is reported that _Qxx are evaluated in a parallel way on Windows:
* https://bugzilla.kernel.org/show_bug.cgi?id=94411
*
- * Put this log entry before schedule_work() in order to make
- * it appearing before any other log entries occurred during the
- * work queue execution.
+ * Put this log entry before queue_work() to make it appear in the log
+ * before any other messages emitted during workqueue handling.
*/
ec_dbg_evt("Query(0x%02x) scheduled", value);
- if (!queue_work(ec_query_wq, &q->work)) {
- ec_dbg_evt("Query(0x%02x) overlapped", value);
- result = -EBUSY;
- }
+
+ spin_lock_irq(&ec->lock);
+
+ ec->queries_in_progress++;
+ queue_work(ec_query_wq, &q->work);
+
+ spin_unlock_irq(&ec->lock);
err_exit:
if (result)
@@ -1240,6 +1253,10 @@ static void acpi_ec_event_handler(struct work_struct *work)
ec_dbg_evt("Event stopped");
acpi_ec_check_event(ec);
+
+ spin_lock_irqsave(&ec->lock, flags);
+ ec->events_in_progress--;
+ spin_unlock_irqrestore(&ec->lock, flags);
}
static void acpi_ec_handle_interrupt(struct acpi_ec *ec)
@@ -2021,6 +2038,7 @@ void acpi_ec_set_gpe_wake_mask(u8 action)
bool acpi_ec_dispatch_gpe(void)
{
+ bool work_in_progress;
u32 ret;
if (!first_ec)
@@ -2041,8 +2059,19 @@ bool acpi_ec_dispatch_gpe(void)
if (ret == ACPI_INTERRUPT_HANDLED)
pm_pr_dbg("ACPI EC GPE dispatched\n");
- /* Flush the event and query workqueues. */
- acpi_ec_flush_work();
+ /* Drain EC work. */
+ do {
+ acpi_ec_flush_work();
+
+ pm_pr_dbg("ACPI EC work flushed\n");
+
+ spin_lock_irq(&first_ec->lock);
+
+ work_in_progress = first_ec->events_in_progress +
+ first_ec->queries_in_progress > 0;
+
+ spin_unlock_irq(&first_ec->lock);
+ } while (work_in_progress && !pm_wakeup_pending());
return false;
}
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
index d91b560e8867..54b2be94d23d 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -183,6 +183,8 @@ struct acpi_ec {
struct work_struct work;
unsigned long timestamp;
unsigned long nr_pending_queries;
+ unsigned int events_in_progress;
+ unsigned int queries_in_progress;
bool busy_polling;
unsigned int polling_guard;
};
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index 5b54c80b9d32..6e9cd41c5f9b 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -1690,6 +1690,7 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
{
struct list_head resource_list;
bool is_serial_bus_slave = false;
+ static const struct acpi_device_id ignore_serial_bus_ids[] = {
/*
* These devices have multiple I2cSerialBus resources and an i2c-client
* must be instantiated for each, each with its own i2c_device_id.
@@ -1698,11 +1699,18 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
* drivers/platform/x86/i2c-multi-instantiate.c driver, which knows
* which i2c_device_id to use for each resource.
*/
- static const struct acpi_device_id i2c_multi_instantiate_ids[] = {
{"BSG1160", },
{"BSG2150", },
{"INT33FE", },
{"INT3515", },
+ /*
+ * HIDs of device with an UartSerialBusV2 resource for which userspace
+ * expects a regular tty cdev to be created (instead of the in kernel
+ * serdev) and which have a kernel driver which expects a platform_dev
+ * such as the rfkill-gpio driver.
+ */
+ {"BCM4752", },
+ {"LNV4752", },
{}
};
@@ -1716,8 +1724,7 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
fwnode_property_present(&device->fwnode, "baud")))
return true;
- /* Instantiate a pdev for the i2c-multi-instantiate drv to bind to */
- if (!acpi_match_device_ids(device, i2c_multi_instantiate_ids))
+ if (!acpi_match_device_ids(device, ignore_serial_bus_ids))
return false;
INIT_LIST_HEAD(&resource_list);
diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c
index f22f23933063..b3fb428461c6 100644
--- a/drivers/acpi/x86/utils.c
+++ b/drivers/acpi/x86/utils.c
@@ -22,58 +22,71 @@
* Some BIOS-es (temporarily) hide specific APCI devices to work around Windows
* driver bugs. We use DMI matching to match known cases of this.
*
- * We work around this by always reporting ACPI_STA_DEFAULT for these
- * devices. Note this MUST only be done for devices where this is safe.
+ * Likewise sometimes some not-actually present devices are sometimes
+ * reported as present, which may cause issues.
*
- * This forcing of devices to be present is limited to specific CPU (SoC)
- * models both to avoid potentially causing trouble on other models and
- * because some HIDs are re-used on different SoCs for completely
- * different devices.
+ * We work around this by using the below quirk list to override the status
+ * reported by the _STA method with a fixed value (ACPI_STA_DEFAULT or 0).
+ * Note this MUST only be done for devices where this is safe.
+ *
+ * This status overriding is limited to specific CPU (SoC) models both to
+ * avoid potentially causing trouble on other models and because some HIDs
+ * are re-used on different SoCs for completely different devices.
*/
-struct always_present_id {
+struct override_status_id {
struct acpi_device_id hid[2];
struct x86_cpu_id cpu_ids[2];
struct dmi_system_id dmi_ids[2]; /* Optional */
const char *uid;
+ const char *path;
+ unsigned long long status;
};
-#define X86_MATCH(model) X86_MATCH_INTEL_FAM6_MODEL(model, NULL)
-
-#define ENTRY(hid, uid, cpu_models, dmi...) { \
+#define ENTRY(status, hid, uid, path, cpu_model, dmi...) { \
{ { hid, }, {} }, \
- { cpu_models, {} }, \
+ { X86_MATCH_INTEL_FAM6_MODEL(cpu_model, NULL), {} }, \
{ { .matches = dmi }, {} }, \
uid, \
+ path, \
+ status, \
}
-static const struct always_present_id always_present_ids[] = {
+#define PRESENT_ENTRY_HID(hid, uid, cpu_model, dmi...) \
+ ENTRY(ACPI_STA_DEFAULT, hid, uid, NULL, cpu_model, dmi)
+
+#define NOT_PRESENT_ENTRY_HID(hid, uid, cpu_model, dmi...) \
+ ENTRY(0, hid, uid, NULL, cpu_model, dmi)
+
+#define PRESENT_ENTRY_PATH(path, cpu_model, dmi...) \
+ ENTRY(ACPI_STA_DEFAULT, "", NULL, path, cpu_model, dmi)
+
+#define NOT_PRESENT_ENTRY_PATH(path, cpu_model, dmi...) \
+ ENTRY(0, "", NULL, path, cpu_model, dmi)
+
+static const struct override_status_id override_status_ids[] = {
/*
* Bay / Cherry Trail PWM directly poked by GPU driver in win10,
* but Linux uses a separate PWM driver, harmless if not used.
*/
- ENTRY("80860F09", "1", X86_MATCH(ATOM_SILVERMONT), {}),
- ENTRY("80862288", "1", X86_MATCH(ATOM_AIRMONT), {}),
+ PRESENT_ENTRY_HID("80860F09", "1", ATOM_SILVERMONT, {}),
+ PRESENT_ENTRY_HID("80862288", "1", ATOM_AIRMONT, {}),
- /* Lenovo Yoga Book uses PWM2 for keyboard backlight control */
- ENTRY("80862289", "2", X86_MATCH(ATOM_AIRMONT), {
- DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X9"),
- }),
/*
* The INT0002 device is necessary to clear wakeup interrupt sources
* on Cherry Trail devices, without it we get nobody cared IRQ msgs.
*/
- ENTRY("INT0002", "1", X86_MATCH(ATOM_AIRMONT), {}),
+ PRESENT_ENTRY_HID("INT0002", "1", ATOM_AIRMONT, {}),
/*
* On the Dell Venue 11 Pro 7130 and 7139, the DSDT hides
* the touchscreen ACPI device until a certain time
* after _SB.PCI0.GFX0.LCD.LCD1._ON gets called has passed
* *and* _STA has been called at least 3 times since.
*/
- ENTRY("SYNA7500", "1", X86_MATCH(HASWELL_L), {
+ PRESENT_ENTRY_HID("SYNA7500", "1", HASWELL_L, {
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7130"),
}),
- ENTRY("SYNA7500", "1", X86_MATCH(HASWELL_L), {
+ PRESENT_ENTRY_HID("SYNA7500", "1", HASWELL_L, {
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7139"),
}),
@@ -81,54 +94,83 @@ static const struct always_present_id always_present_ids[] = {
/*
* The GPD win BIOS dated 20170221 has disabled the accelerometer, the
* drivers sometimes cause crashes under Windows and this is how the
- * manufacturer has solved this :| Note that the the DMI data is less
- * generic then it seems, a board_vendor of "AMI Corporation" is quite
- * rare and a board_name of "Default String" also is rare.
+ * manufacturer has solved this :| The DMI match may not seem unique,
+ * but it is. In the 67000+ DMI decode dumps from linux-hardware.org
+ * only 116 have board_vendor set to "AMI Corporation" and of those 116
+ * only the GPD win and pocket entries' board_name is "Default string".
*
* Unfortunately the GPD pocket also uses these strings and its BIOS
* was copy-pasted from the GPD win, so it has a disabled KIOX000A
* node which we should not enable, thus we also check the BIOS date.
*/
- ENTRY("KIOX000A", "1", X86_MATCH(ATOM_AIRMONT), {
+ PRESENT_ENTRY_HID("KIOX000A", "1", ATOM_AIRMONT, {
DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
DMI_MATCH(DMI_BOARD_NAME, "Default string"),
DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
DMI_MATCH(DMI_BIOS_DATE, "02/21/2017")
}),
- ENTRY("KIOX000A", "1", X86_MATCH(ATOM_AIRMONT), {
+ PRESENT_ENTRY_HID("KIOX000A", "1", ATOM_AIRMONT, {
DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
DMI_MATCH(DMI_BOARD_NAME, "Default string"),
DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
DMI_MATCH(DMI_BIOS_DATE, "03/20/2017")
}),
- ENTRY("KIOX000A", "1", X86_MATCH(ATOM_AIRMONT), {
+ PRESENT_ENTRY_HID("KIOX000A", "1", ATOM_AIRMONT, {
DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
DMI_MATCH(DMI_BOARD_NAME, "Default string"),
DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
DMI_MATCH(DMI_BIOS_DATE, "05/25/2017")
}),
+
+ /*
+ * The GPD win/pocket have a PCI wifi card, but its DSDT has the SDIO
+ * mmc controller enabled and that has a child-device which _PS3
+ * method sets a GPIO causing the PCI wifi card to turn off.
+ * See above remark about uniqueness of the DMI match.
+ */
+ NOT_PRESENT_ENTRY_PATH("\\_SB_.PCI0.SDHB.BRC1", ATOM_AIRMONT, {
+ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"),
+ DMI_EXACT_MATCH(DMI_BOARD_SERIAL, "Default string"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"),
+ }),
};
-bool acpi_device_always_present(struct acpi_device *adev)
+bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *status)
{
bool ret = false;
unsigned int i;
- for (i = 0; i < ARRAY_SIZE(always_present_ids); i++) {
- if (acpi_match_device_ids(adev, always_present_ids[i].hid))
+ for (i = 0; i < ARRAY_SIZE(override_status_ids); i++) {
+ if (!x86_match_cpu(override_status_ids[i].cpu_ids))
continue;
- if (!adev->pnp.unique_id ||
- strcmp(adev->pnp.unique_id, always_present_ids[i].uid))
+ if (override_status_ids[i].dmi_ids[0].matches[0].slot &&
+ !dmi_check_system(override_status_ids[i].dmi_ids))
continue;
- if (!x86_match_cpu(always_present_ids[i].cpu_ids))
- continue;
+ if (override_status_ids[i].path) {
+ struct acpi_buffer path = { ACPI_ALLOCATE_BUFFER, NULL };
+ bool match;
- if (always_present_ids[i].dmi_ids[0].matches[0].slot &&
- !dmi_check_system(always_present_ids[i].dmi_ids))
- continue;
+ if (acpi_get_name(adev->handle, ACPI_FULL_PATHNAME, &path))
+ continue;
+
+ match = strcmp((char *)path.pointer, override_status_ids[i].path) == 0;
+ kfree(path.pointer);
+
+ if (!match)
+ continue;
+ } else {
+ if (acpi_match_device_ids(adev, override_status_ids[i].hid))
+ continue;
+
+ if (!adev->pnp.unique_id ||
+ strcmp(adev->pnp.unique_id, override_status_ids[i].uid))
+ continue;
+ }
+ *status = override_status_ids[i].status;
ret = true;
break;
}
diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index c75fb600740c..99ae919255f4 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -1608,15 +1608,21 @@ static void binder_cleanup_transaction(struct binder_transaction *t,
/**
* binder_get_object() - gets object and checks for valid metadata
* @proc: binder_proc owning the buffer
+ * @u: sender's user pointer to base of buffer
* @buffer: binder_buffer that we're parsing.
* @offset: offset in the @buffer at which to validate an object.
* @object: struct binder_object to read into
*
- * Return: If there's a valid metadata object at @offset in @buffer, the
+ * Copy the binder object at the given offset into @object. If @u is
+ * provided then the copy is from the sender's buffer. If not, then
+ * it is copied from the target's @buffer.
+ *
+ * Return: If there's a valid metadata object at @offset, the
* size of that object. Otherwise, it returns zero. The object
* is read into the struct binder_object pointed to by @object.
*/
static size_t binder_get_object(struct binder_proc *proc,
+ const void __user *u,
struct binder_buffer *buffer,
unsigned long offset,
struct binder_object *object)
@@ -1626,10 +1632,16 @@ static size_t binder_get_object(struct binder_proc *proc,
size_t object_size = 0;
read_size = min_t(size_t, sizeof(*object), buffer->data_size - offset);
- if (offset > buffer->data_size || read_size < sizeof(*hdr) ||
- binder_alloc_copy_from_buffer(&proc->alloc, object, buffer,
- offset, read_size))
+ if (offset > buffer->data_size || read_size < sizeof(*hdr))
return 0;
+ if (u) {
+ if (copy_from_user(object, u + offset, read_size))
+ return 0;
+ } else {
+ if (binder_alloc_copy_from_buffer(&proc->alloc, object, buffer,
+ offset, read_size))
+ return 0;
+ }
/* Ok, now see if we read a complete object. */
hdr = &object->hdr;
@@ -1702,7 +1714,7 @@ static struct binder_buffer_object *binder_validate_ptr(
b, buffer_offset,
sizeof(object_offset)))
return NULL;
- object_size = binder_get_object(proc, b, object_offset, object);
+ object_size = binder_get_object(proc, NULL, b, object_offset, object);
if (!object_size || object->hdr.type != BINDER_TYPE_PTR)
return NULL;
if (object_offsetp)
@@ -1767,7 +1779,8 @@ static bool binder_validate_fixup(struct binder_proc *proc,
unsigned long buffer_offset;
struct binder_object last_object;
struct binder_buffer_object *last_bbo;
- size_t object_size = binder_get_object(proc, b, last_obj_offset,
+ size_t object_size = binder_get_object(proc, NULL, b,
+ last_obj_offset,
&last_object);
if (object_size != sizeof(*last_bbo))
return false;
@@ -1882,7 +1895,7 @@ static void binder_transaction_buffer_release(struct binder_proc *proc,
if (!binder_alloc_copy_from_buffer(&proc->alloc, &object_offset,
buffer, buffer_offset,
sizeof(object_offset)))
- object_size = binder_get_object(proc, buffer,
+ object_size = binder_get_object(proc, NULL, buffer,
object_offset, &object);
if (object_size == 0) {
pr_err("transaction release %d bad object at offset %lld, size %zd\n",
@@ -2269,8 +2282,8 @@ static int binder_translate_fd_array(struct binder_fd_array_object *fda,
if (!ret)
ret = binder_translate_fd(fd, offset, t, thread,
in_reply_to);
- if (ret < 0)
- return ret;
+ if (ret)
+ return ret > 0 ? -EINVAL : ret;
}
return 0;
}
@@ -2455,6 +2468,7 @@ static void binder_transaction(struct binder_proc *proc,
binder_size_t off_start_offset, off_end_offset;
binder_size_t off_min;
binder_size_t sg_buf_offset, sg_buf_end_offset;
+ binder_size_t user_offset = 0;
struct binder_proc *target_proc = NULL;
struct binder_thread *target_thread = NULL;
struct binder_node *target_node = NULL;
@@ -2469,6 +2483,8 @@ static void binder_transaction(struct binder_proc *proc,
int t_debug_id = atomic_inc_return(&binder_last_id);
char *secctx = NULL;
u32 secctx_sz = 0;
+ const void __user *user_buffer = (const void __user *)
+ (uintptr_t)tr->data.ptr.buffer;
e = binder_transaction_log_add(&binder_transaction_log);
e->debug_id = t_debug_id;
@@ -2780,19 +2796,6 @@ static void binder_transaction(struct binder_proc *proc,
t->buffer->clear_on_free = !!(t->flags & TF_CLEAR_BUF);
trace_binder_transaction_alloc_buf(t->buffer);
- if (binder_alloc_copy_user_to_buffer(
- &target_proc->alloc,
- t->buffer, 0,
- (const void __user *)
- (uintptr_t)tr->data.ptr.buffer,
- tr->data_size)) {
- binder_user_error("%d:%d got transaction with invalid data ptr\n",
- proc->pid, thread->pid);
- return_error = BR_FAILED_REPLY;
- return_error_param = -EFAULT;
- return_error_line = __LINE__;
- goto err_copy_data_failed;
- }
if (binder_alloc_copy_user_to_buffer(
&target_proc->alloc,
t->buffer,
@@ -2837,6 +2840,7 @@ static void binder_transaction(struct binder_proc *proc,
size_t object_size;
struct binder_object object;
binder_size_t object_offset;
+ binder_size_t copy_size;
if (binder_alloc_copy_from_buffer(&target_proc->alloc,
&object_offset,
@@ -2848,8 +2852,27 @@ static void binder_transaction(struct binder_proc *proc,
return_error_line = __LINE__;
goto err_bad_offset;
}
- object_size = binder_get_object(target_proc, t->buffer,
- object_offset, &object);
+
+ /*
+ * Copy the source user buffer up to the next object
+ * that will be processed.
+ */
+ copy_size = object_offset - user_offset;
+ if (copy_size && (user_offset > object_offset ||
+ binder_alloc_copy_user_to_buffer(
+ &target_proc->alloc,
+ t->buffer, user_offset,
+ user_buffer + user_offset,
+ copy_size))) {
+ binder_user_error("%d:%d got transaction with invalid data ptr\n",
+ proc->pid, thread->pid);
+ return_error = BR_FAILED_REPLY;
+ return_error_param = -EFAULT;
+ return_error_line = __LINE__;
+ goto err_copy_data_failed;
+ }
+ object_size = binder_get_object(target_proc, user_buffer,
+ t->buffer, object_offset, &object);
if (object_size == 0 || object_offset < off_min) {
binder_user_error("%d:%d got transaction with invalid offset (%lld, min %lld max %lld) or object.\n",
proc->pid, thread->pid,
@@ -2861,6 +2884,11 @@ static void binder_transaction(struct binder_proc *proc,
return_error_line = __LINE__;
goto err_bad_offset;
}
+ /*
+ * Set offset to the next buffer fragment to be
+ * copied
+ */
+ user_offset = object_offset + object_size;
hdr = &object.hdr;
off_min = object_offset + object_size;
@@ -2956,9 +2984,14 @@ static void binder_transaction(struct binder_proc *proc,
}
ret = binder_translate_fd_array(fda, parent, t, thread,
in_reply_to);
- if (ret < 0) {
+ if (!ret)
+ ret = binder_alloc_copy_to_buffer(&target_proc->alloc,
+ t->buffer,
+ object_offset,
+ fda, sizeof(*fda));
+ if (ret) {
return_error = BR_FAILED_REPLY;
- return_error_param = ret;
+ return_error_param = ret > 0 ? -EINVAL : ret;
return_error_line = __LINE__;
goto err_translate_failed;
}
@@ -3028,6 +3061,19 @@ static void binder_transaction(struct binder_proc *proc,
goto err_bad_object_type;
}
}
+ /* Done processing objects, copy the rest of the buffer */
+ if (binder_alloc_copy_user_to_buffer(
+ &target_proc->alloc,
+ t->buffer, user_offset,
+ user_buffer + user_offset,
+ tr->data_size - user_offset)) {
+ binder_user_error("%d:%d got transaction with invalid data ptr\n",
+ proc->pid, thread->pid);
+ return_error = BR_FAILED_REPLY;
+ return_error_param = -EFAULT;
+ return_error_line = __LINE__;
+ goto err_copy_data_failed;
+ }
if (t->buffer->oneway_spam_suspect)
tcomplete->type = BINDER_WORK_TRANSACTION_ONEWAY_SPAM_SUSPECT;
else
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 63577de26856..8e73a34e1005 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -485,8 +485,7 @@ static void device_link_release_fn(struct work_struct *work)
/* Ensure that all references to the link object have been dropped. */
device_link_synchronize_removal();
- while (refcount_dec_not_one(&link->rpm_active))
- pm_runtime_put(link->supplier);
+ pm_runtime_release_supplier(link, true);
put_device(link->consumer);
put_device(link->supplier);
diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c
index ec94049442b9..44ae3909e64b 100644
--- a/drivers/base/power/runtime.c
+++ b/drivers/base/power/runtime.c
@@ -305,19 +305,40 @@ static int rpm_get_suppliers(struct device *dev)
return 0;
}
+/**
+ * pm_runtime_release_supplier - Drop references to device link's supplier.
+ * @link: Target device link.
+ * @check_idle: Whether or not to check if the supplier device is idle.
+ *
+ * Drop all runtime PM references associated with @link to its supplier device
+ * and if @check_idle is set, check if that device is idle (and so it can be
+ * suspended).
+ */
+void pm_runtime_release_supplier(struct device_link *link, bool check_idle)
+{
+ struct device *supplier = link->supplier;
+
+ /*
+ * The additional power.usage_count check is a safety net in case
+ * the rpm_active refcount becomes saturated, in which case
+ * refcount_dec_not_one() would return true forever, but it is not
+ * strictly necessary.
+ */
+ while (refcount_dec_not_one(&link->rpm_active) &&
+ atomic_read(&supplier->power.usage_count) > 0)
+ pm_runtime_put_noidle(supplier);
+
+ if (check_idle)
+ pm_request_idle(supplier);
+}
+
static void __rpm_put_suppliers(struct device *dev, bool try_to_suspend)
{
struct device_link *link;
list_for_each_entry_rcu(link, &dev->links.suppliers, c_node,
- device_links_read_lock_held()) {
-
- while (refcount_dec_not_one(&link->rpm_active))
- pm_runtime_put_noidle(link->supplier);
-
- if (try_to_suspend)
- pm_request_idle(link->supplier);
- }
+ device_links_read_lock_held())
+ pm_runtime_release_supplier(link, try_to_suspend);
}
static void rpm_put_suppliers(struct device *dev)
@@ -1770,9 +1791,7 @@ void pm_runtime_drop_link(struct device_link *link)
return;
pm_runtime_drop_link_count(link->consumer);
-
- while (refcount_dec_not_one(&link->rpm_active))
- pm_runtime_put(link->supplier);
+ pm_runtime_release_supplier(link, true);
}
static bool pm_runtime_need_not_resume(struct device *dev)
diff --git a/drivers/base/property.c b/drivers/base/property.c
index 453918eb7390..4c77837769c6 100644
--- a/drivers/base/property.c
+++ b/drivers/base/property.c
@@ -1269,8 +1269,10 @@ fwnode_graph_devcon_match(struct fwnode_handle *fwnode, const char *con_id,
fwnode_graph_for_each_endpoint(fwnode, ep) {
node = fwnode_graph_get_remote_port_parent(ep);
- if (!fwnode_device_is_available(node))
+ if (!fwnode_device_is_available(node)) {
+ fwnode_handle_put(node);
continue;
+ }
ret = match(node, con_id, data);
fwnode_handle_put(node);
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
index 21a0c2562ec0..f7811641ed5a 100644
--- a/drivers/base/regmap/regmap.c
+++ b/drivers/base/regmap/regmap.c
@@ -647,6 +647,7 @@ int regmap_attach_dev(struct device *dev, struct regmap *map,
if (ret)
return ret;
+ regmap_debugfs_exit(map);
regmap_debugfs_init(map);
/* Add a devres resource for dev_get_regmap() */
diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c
index c46f6a8e14d2..3ba1232ce845 100644
--- a/drivers/base/swnode.c
+++ b/drivers/base/swnode.c
@@ -535,7 +535,7 @@ software_node_get_reference_args(const struct fwnode_handle *fwnode,
return -ENOENT;
if (nargs_prop) {
- error = property_entry_read_int_array(swnode->node->properties,
+ error = property_entry_read_int_array(ref->node->properties,
nargs_prop, sizeof(u32),
&nargs_prop_val, 1);
if (error)
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index fb2aafabfebc..4a6a74177b3c 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -1014,7 +1014,7 @@ static DECLARE_DELAYED_WORK(fd_timer, fd_timer_workfn);
static void cancel_activity(void)
{
do_floppy = NULL;
- cancel_delayed_work_sync(&fd_timer);
+ cancel_delayed_work(&fd_timer);
cancel_work_sync(&floppy_work);
}
@@ -3080,6 +3080,8 @@ static void raw_cmd_free(struct floppy_raw_cmd **ptr)
}
}
+#define MAX_LEN (1UL << MAX_ORDER << PAGE_SHIFT)
+
static int raw_cmd_copyin(int cmd, void __user *param,
struct floppy_raw_cmd **rcmd)
{
@@ -3107,7 +3109,7 @@ static int raw_cmd_copyin(int cmd, void __user *param,
ptr->resultcode = 0;
if (ptr->flags & (FD_RAW_READ | FD_RAW_WRITE)) {
- if (ptr->length <= 0)
+ if (ptr->length <= 0 || ptr->length >= MAX_LEN)
return -EINVAL;
ptr->kernel_data = (char *)fd_dma_mem_alloc(ptr->length);
fallback_on_nodma_alloc(&ptr->kernel_data, ptr->length);
diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
index 525be2e1fbb2..e73d4c719b0a 100644
--- a/drivers/bluetooth/btintel.c
+++ b/drivers/bluetooth/btintel.c
@@ -2330,10 +2330,14 @@ static int btintel_setup_combined(struct hci_dev *hdev)
case 0x12: /* ThP */
case 0x13: /* HrP */
case 0x14: /* CcP */
- /* Some legacy bootloader devices from JfP supports both old
- * and TLV based HCI_Intel_Read_Version command. But we don't
- * want to use the TLV based setup routines for those legacy
- * bootloader device.
+ /* Some legacy bootloader devices starting from JfP,
+ * the operational firmware supports both old and TLV based
+ * HCI_Intel_Read_Version command based on the command
+ * parameter.
+ *
+ * For upgrading firmware case, the TLV based version cannot
+ * be used because the firmware filename for legacy bootloader
+ * is based on the old format.
*
* Also, it is not easy to convert TLV based version from the
* legacy version format.
@@ -2345,6 +2349,20 @@ static int btintel_setup_combined(struct hci_dev *hdev)
err = btintel_read_version(hdev, &ver);
if (err)
return err;
+
+ /* Apply the device specific HCI quirks
+ *
+ * All Legacy bootloader devices support WBS
+ */
+ set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks);
+
+ /* Valid LE States quirk for JfP/ThP familiy */
+ if (ver.hw_variant == 0x11 || ver.hw_variant == 0x12)
+ set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
+
+ /* Setup MSFT Extension support */
+ btintel_set_msft_opcode(hdev, ver.hw_variant);
+
err = btintel_bootloader_setup(hdev, &ver);
break;
case 0x17:
diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c
index 9872ef18f9fe..1cbdeca1fdc4 100644
--- a/drivers/bluetooth/btmtksdio.c
+++ b/drivers/bluetooth/btmtksdio.c
@@ -1042,6 +1042,8 @@ static int btmtksdio_runtime_suspend(struct device *dev)
if (!bdev)
return 0;
+ sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER);
+
sdio_claim_host(bdev->func);
sdio_writel(bdev->func, C_FW_OWN_REQ_SET, MTK_REG_CHLPCR, &err);
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index fa44828562d3..ac90392cce33 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -2561,6 +2561,7 @@ static int btusb_mtk_setup_firmware_79xx(struct hci_dev *hdev, const char *fwnam
} else {
bt_dev_err(hdev, "Failed wmt patch dwnld status (%d)",
status);
+ err = -EIO;
goto err_release_fw;
}
}
@@ -2856,6 +2857,10 @@ static int btusb_mtk_setup(struct hci_dev *hdev)
"mediatek/BT_RAM_CODE_MT%04x_1_%x_hdr.bin",
dev_id & 0xffff, (fw_version & 0xff) + 1);
err = btusb_mtk_setup_firmware_79xx(hdev, fw_bin_name);
+ if (err < 0) {
+ bt_dev_err(hdev, "Failed to set up firmware (%d)", err);
+ return err;
+ }
/* It's Device EndPoint Reset Option Register */
btusb_mtk_uhw_reg_write(data, MTK_EP_RST_OPT, MTK_EP_RST_IN_OUT_OPT);
diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c
index ef54afa29357..7abf99f0ee39 100644
--- a/drivers/bluetooth/hci_bcm.c
+++ b/drivers/bluetooth/hci_bcm.c
@@ -1188,7 +1188,12 @@ static int bcm_probe(struct platform_device *pdev)
return -ENOMEM;
dev->dev = &pdev->dev;
- dev->irq = platform_get_irq(pdev, 0);
+
+ ret = platform_get_irq(pdev, 0);
+ if (ret < 0)
+ return ret;
+
+ dev->irq = ret;
/* Initialize routing field to an unused value */
dev->pcm_int_params[0] = 0xff;
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index 53deea2eb7b4..8eb7fddfb930 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -1927,6 +1927,9 @@ static int qca_power_off(struct hci_dev *hdev)
hu->hdev->hw_error = NULL;
hu->hdev->cmd_timeout = NULL;
+ del_timer_sync(&qca->wake_retrans_timer);
+ del_timer_sync(&qca->tx_idle_timer);
+
/* Stop sending shutdown command if soc crashes. */
if (soc_type != QCA_ROME
&& qca->memdump_state == QCA_MEMDUMP_IDLE) {
@@ -2055,14 +2058,14 @@ static int qca_serdev_probe(struct serdev_device *serdev)
qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable",
GPIOD_OUT_LOW);
- if (!qcadev->bt_en && data->soc_type == QCA_WCN6750) {
+ if (IS_ERR_OR_NULL(qcadev->bt_en) && data->soc_type == QCA_WCN6750) {
dev_err(&serdev->dev, "failed to acquire BT_EN gpio\n");
power_ctrl_enabled = false;
}
qcadev->sw_ctrl = devm_gpiod_get_optional(&serdev->dev, "swctrl",
GPIOD_IN);
- if (!qcadev->sw_ctrl && data->soc_type == QCA_WCN6750)
+ if (IS_ERR_OR_NULL(qcadev->sw_ctrl) && data->soc_type == QCA_WCN6750)
dev_warn(&serdev->dev, "failed to acquire SW_CTRL gpio\n");
qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL);
@@ -2084,7 +2087,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable",
GPIOD_OUT_LOW);
- if (!qcadev->bt_en) {
+ if (IS_ERR_OR_NULL(qcadev->bt_en)) {
dev_warn(&serdev->dev, "failed to acquire enable gpio\n");
power_ctrl_enabled = false;
}
diff --git a/drivers/bluetooth/hci_vhci.c b/drivers/bluetooth/hci_vhci.c
index 8ab26dec5f6e..8469f9876dd2 100644
--- a/drivers/bluetooth/hci_vhci.c
+++ b/drivers/bluetooth/hci_vhci.c
@@ -121,6 +121,8 @@ static int __vhci_create_device(struct vhci_data *data, __u8 opcode)
if (opcode & 0x80)
set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks);
+ set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
+
if (hci_register_dev(hdev) < 0) {
BT_ERR("Can't register HCI device");
hci_free_dev(hdev);
diff --git a/drivers/bluetooth/virtio_bt.c b/drivers/bluetooth/virtio_bt.c
index 57908ce4fae8..076e4942a3f0 100644
--- a/drivers/bluetooth/virtio_bt.c
+++ b/drivers/bluetooth/virtio_bt.c
@@ -202,6 +202,9 @@ static void virtbt_rx_handle(struct virtio_bluetooth *vbt, struct sk_buff *skb)
hci_skb_pkt_type(skb) = pkt_type;
hci_recv_frame(vbt->hdev, skb);
break;
+ default:
+ kfree_skb(skb);
+ break;
}
}
diff --git a/drivers/bus/mhi/core/init.c b/drivers/bus/mhi/core/init.c
index 5aaca6d0f52b..f1ec34417592 100644
--- a/drivers/bus/mhi/core/init.c
+++ b/drivers/bus/mhi/core/init.c
@@ -788,6 +788,7 @@ static int parse_ch_cfg(struct mhi_controller *mhi_cntrl,
mhi_chan->offload_ch = ch_cfg->offload_channel;
mhi_chan->db_cfg.reset_req = ch_cfg->doorbell_mode_switch;
mhi_chan->pre_alloc = ch_cfg->auto_queue;
+ mhi_chan->wake_capable = ch_cfg->wake_capable;
/*
* If MHI host allocates buffers, then the channel direction
diff --git a/drivers/bus/mhi/core/pm.c b/drivers/bus/mhi/core/pm.c
index 547e6e769546..bb9a2043f3a2 100644
--- a/drivers/bus/mhi/core/pm.c
+++ b/drivers/bus/mhi/core/pm.c
@@ -1053,7 +1053,7 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
enum mhi_ee_type current_ee;
enum dev_st_transition next_state;
struct device *dev = &mhi_cntrl->mhi_dev->dev;
- u32 val;
+ u32 interval_us = 25000; /* poll register field every 25 milliseconds */
int ret;
dev_info(dev, "Requested to power ON\n");
@@ -1070,10 +1070,6 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
mutex_lock(&mhi_cntrl->pm_mutex);
mhi_cntrl->pm_state = MHI_PM_DISABLE;
- ret = mhi_init_irq_setup(mhi_cntrl);
- if (ret)
- goto error_setup_irq;
-
/* Setup BHI INTVEC */
write_lock_irq(&mhi_cntrl->pm_lock);
mhi_write_reg(mhi_cntrl, mhi_cntrl->bhi, BHI_INTVEC, 0);
@@ -1087,7 +1083,7 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
dev_err(dev, "%s is not a valid EE for power on\n",
TO_MHI_EXEC_STR(current_ee));
ret = -EIO;
- goto error_async_power_up;
+ goto error_exit;
}
state = mhi_get_mhi_state(mhi_cntrl);
@@ -1096,20 +1092,12 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
if (state == MHI_STATE_SYS_ERR) {
mhi_set_mhi_state(mhi_cntrl, MHI_STATE_RESET);
- ret = wait_event_timeout(mhi_cntrl->state_event,
- MHI_PM_IN_FATAL_STATE(mhi_cntrl->pm_state) ||
- mhi_read_reg_field(mhi_cntrl,
- mhi_cntrl->regs,
- MHICTRL,
- MHICTRL_RESET_MASK,
- MHICTRL_RESET_SHIFT,
- &val) ||
- !val,
- msecs_to_jiffies(mhi_cntrl->timeout_ms));
- if (!ret) {
- ret = -EIO;
+ ret = mhi_poll_reg_field(mhi_cntrl, mhi_cntrl->regs, MHICTRL,
+ MHICTRL_RESET_MASK, MHICTRL_RESET_SHIFT, 0,
+ interval_us);
+ if (ret) {
dev_info(dev, "Failed to reset MHI due to syserr state\n");
- goto error_async_power_up;
+ goto error_exit;
}
/*
@@ -1119,6 +1107,10 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
mhi_write_reg(mhi_cntrl, mhi_cntrl->bhi, BHI_INTVEC, 0);
}
+ ret = mhi_init_irq_setup(mhi_cntrl);
+ if (ret)
+ goto error_exit;
+
/* Transition to next state */
next_state = MHI_IN_PBL(current_ee) ?
DEV_ST_TRANSITION_PBL : DEV_ST_TRANSITION_READY;
@@ -1131,10 +1123,7 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
return 0;
-error_async_power_up:
- mhi_deinit_free_irq(mhi_cntrl);
-
-error_setup_irq:
+error_exit:
mhi_cntrl->pm_state = MHI_PM_DISABLE;
mutex_unlock(&mhi_cntrl->pm_mutex);
diff --git a/drivers/bus/mhi/pci_generic.c b/drivers/bus/mhi/pci_generic.c
index 4c577a731709..b8b2811c7c0a 100644
--- a/drivers/bus/mhi/pci_generic.c
+++ b/drivers/bus/mhi/pci_generic.c
@@ -1018,7 +1018,7 @@ static int __maybe_unused mhi_pci_freeze(struct device *dev)
* context.
*/
if (test_and_clear_bit(MHI_PCI_DEV_STARTED, &mhi_pdev->status)) {
- mhi_power_down(mhi_cntrl, false);
+ mhi_power_down(mhi_cntrl, true);
mhi_unprepare_after_power_down(mhi_cntrl);
}
diff --git a/drivers/char/mwave/3780i.h b/drivers/char/mwave/3780i.h
index 9ccb6b270b07..95164246afd1 100644
--- a/drivers/char/mwave/3780i.h
+++ b/drivers/char/mwave/3780i.h
@@ -68,7 +68,7 @@ typedef struct {
unsigned char ClockControl:1; /* RW: Clock control: 0=normal, 1=stop 3780i clocks */
unsigned char SoftReset:1; /* RW: Soft reset 0=normal, 1=soft reset active */
unsigned char ConfigMode:1; /* RW: Configuration mode, 0=normal, 1=config mode */
- unsigned char Reserved:5; /* 0: Reserved */
+ unsigned short Reserved:13; /* 0: Reserved */
} DSP_ISA_SLAVE_CONTROL;
diff --git a/drivers/char/random.c b/drivers/char/random.c
index 7470ee24db2f..a27ae3999ff3 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -912,12 +912,14 @@ static struct crng_state *select_crng(void)
/*
* crng_fast_load() can be called by code in the interrupt service
- * path. So we can't afford to dilly-dally.
+ * path. So we can't afford to dilly-dally. Returns the number of
+ * bytes processed from cp.
*/
-static int crng_fast_load(const char *cp, size_t len)
+static size_t crng_fast_load(const char *cp, size_t len)
{
unsigned long flags;
char *p;
+ size_t ret = 0;
if (!spin_trylock_irqsave(&primary_crng.lock, flags))
return 0;
@@ -928,7 +930,7 @@ static int crng_fast_load(const char *cp, size_t len)
p = (unsigned char *) &primary_crng.state[4];
while (len > 0 && crng_init_cnt < CRNG_INIT_CNT_THRESH) {
p[crng_init_cnt % CHACHA_KEY_SIZE] ^= *cp;
- cp++; crng_init_cnt++; len--;
+ cp++; crng_init_cnt++; len--; ret++;
}
spin_unlock_irqrestore(&primary_crng.lock, flags);
if (crng_init_cnt >= CRNG_INIT_CNT_THRESH) {
@@ -936,7 +938,7 @@ static int crng_fast_load(const char *cp, size_t len)
crng_init = 1;
pr_notice("fast init done\n");
}
- return 1;
+ return ret;
}
/*
@@ -1287,7 +1289,7 @@ void add_interrupt_randomness(int irq, int irq_flags)
if (unlikely(crng_init == 0)) {
if ((fast_pool->count >= 64) &&
crng_fast_load((char *) fast_pool->pool,
- sizeof(fast_pool->pool))) {
+ sizeof(fast_pool->pool)) > 0) {
fast_pool->count = 0;
fast_pool->last = now;
}
@@ -2295,8 +2297,11 @@ void add_hwgenerator_randomness(const char *buffer, size_t count,
struct entropy_store *poolp = &input_pool;
if (unlikely(crng_init == 0)) {
- crng_fast_load(buffer, count);
- return;
+ size_t ret = crng_fast_load(buffer, count);
+ count -= ret;
+ buffer += ret;
+ if (!count || crng_init == 0)
+ return;
}
/* Suspend writing if we're above the trickle threshold.
diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
index ddaeceb7e109..df37e7b6a10a 100644
--- a/drivers/char/tpm/tpm-chip.c
+++ b/drivers/char/tpm/tpm-chip.c
@@ -474,13 +474,21 @@ static void tpm_del_char_device(struct tpm_chip *chip)
/* Make the driver uncallable. */
down_write(&chip->ops_sem);
- if (chip->flags & TPM_CHIP_FLAG_TPM2) {
- if (!tpm_chip_start(chip)) {
- tpm2_shutdown(chip, TPM2_SU_CLEAR);
- tpm_chip_stop(chip);
+
+ /*
+ * Check if chip->ops is still valid: In case that the controller
+ * drivers shutdown handler unregisters the controller in its
+ * shutdown handler we are called twice and chip->ops to NULL.
+ */
+ if (chip->ops) {
+ if (chip->flags & TPM_CHIP_FLAG_TPM2) {
+ if (!tpm_chip_start(chip)) {
+ tpm2_shutdown(chip, TPM2_SU_CLEAR);
+ tpm_chip_stop(chip);
+ }
}
+ chip->ops = NULL;
}
- chip->ops = NULL;
up_write(&chip->ops_sem);
}
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
index b2659a4c4016..dc56b976d816 100644
--- a/drivers/char/tpm/tpm_tis_core.c
+++ b/drivers/char/tpm/tpm_tis_core.c
@@ -950,9 +950,11 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
priv->timeout_max = TPM_TIMEOUT_USECS_MAX;
priv->phy_ops = phy_ops;
+ dev_set_drvdata(&chip->dev, priv);
+
rc = tpm_tis_read32(priv, TPM_DID_VID(0), &vendor);
if (rc < 0)
- goto out_err;
+ return rc;
priv->manufacturer_id = vendor;
@@ -962,8 +964,6 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
priv->timeout_max = TIS_TIMEOUT_MAX_ATML;
}
- dev_set_drvdata(&chip->dev, priv);
-
if (is_bsw()) {
priv->ilb_base_addr = ioremap(INTEL_LEGACY_BLK_BASE_ADDR,
ILB_REMAP_SIZE);
@@ -994,7 +994,15 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
intmask |= TPM_INTF_CMD_READY_INT | TPM_INTF_LOCALITY_CHANGE_INT |
TPM_INTF_DATA_AVAIL_INT | TPM_INTF_STS_VALID_INT;
intmask &= ~TPM_GLOBAL_INT_ENABLE;
+
+ rc = request_locality(chip, 0);
+ if (rc < 0) {
+ rc = -ENODEV;
+ goto out_err;
+ }
+
tpm_tis_write32(priv, TPM_INT_ENABLE(priv->locality), intmask);
+ release_locality(chip, 0);
rc = tpm_chip_start(chip);
if (rc)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index a254512965eb..3667b4d731e7 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -932,8 +932,7 @@ static int bcm2835_clock_is_on(struct clk_hw *hw)
static u32 bcm2835_clock_choose_div(struct clk_hw *hw,
unsigned long rate,
- unsigned long parent_rate,
- bool round_up)
+ unsigned long parent_rate)
{
struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
const struct bcm2835_clock_data *data = clock->data;
@@ -945,10 +944,6 @@ static u32 bcm2835_clock_choose_div(struct clk_hw *hw,
rem = do_div(temp, rate);
div = temp;
-
- /* Round up and mask off the unused bits */
- if (round_up && ((div & unused_frac_mask) != 0 || rem != 0))
- div += unused_frac_mask + 1;
div &= ~unused_frac_mask;
/* different clamping limits apply for a mash clock */
@@ -1079,7 +1074,7 @@ static int bcm2835_clock_set_rate(struct clk_hw *hw,
struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
struct bcm2835_cprman *cprman = clock->cprman;
const struct bcm2835_clock_data *data = clock->data;
- u32 div = bcm2835_clock_choose_div(hw, rate, parent_rate, false);
+ u32 div = bcm2835_clock_choose_div(hw, rate, parent_rate);
u32 ctl;
spin_lock(&cprman->regs_lock);
@@ -1130,7 +1125,7 @@ static unsigned long bcm2835_clock_choose_div_and_prate(struct clk_hw *hw,
if (!(BIT(parent_idx) & data->set_rate_parent)) {
*prate = clk_hw_get_rate(parent);
- *div = bcm2835_clock_choose_div(hw, rate, *prate, true);
+ *div = bcm2835_clock_choose_div(hw, rate, *prate);
*avgrate = bcm2835_clock_rate_from_divisor(clock, *prate, *div);
@@ -1216,7 +1211,7 @@ static int bcm2835_clock_determine_rate(struct clk_hw *hw,
rate = bcm2835_clock_choose_div_and_prate(hw, i, req->rate,
&div, &prate,
&avgrate);
- if (rate > best_rate && rate <= req->rate) {
+ if (abs(req->rate - rate) < abs(req->rate - best_rate)) {
best_parent = parent;
best_prate = prate;
best_rate = rate;
diff --git a/drivers/clk/clk-bm1880.c b/drivers/clk/clk-bm1880.c
index e6d6599d310a..fad78a22218e 100644
--- a/drivers/clk/clk-bm1880.c
+++ b/drivers/clk/clk-bm1880.c
@@ -522,14 +522,6 @@ static struct clk_hw *bm1880_clk_register_pll(struct bm1880_pll_hw_clock *pll_cl
return hw;
}
-static void bm1880_clk_unregister_pll(struct clk_hw *hw)
-{
- struct bm1880_pll_hw_clock *pll_hw = to_bm1880_pll_clk(hw);
-
- clk_hw_unregister(hw);
- kfree(pll_hw);
-}
-
static int bm1880_clk_register_plls(struct bm1880_pll_hw_clock *clks,
int num_clks,
struct bm1880_clock_data *data)
@@ -555,7 +547,7 @@ static int bm1880_clk_register_plls(struct bm1880_pll_hw_clock *clks,
err_clk:
while (i--)
- bm1880_clk_unregister_pll(data->hw_data.hws[clks[i].pll.id]);
+ clk_hw_unregister(data->hw_data.hws[clks[i].pll.id]);
return PTR_ERR(hw);
}
@@ -695,14 +687,6 @@ static struct clk_hw *bm1880_clk_register_div(struct bm1880_div_hw_clock *div_cl
return hw;
}
-static void bm1880_clk_unregister_div(struct clk_hw *hw)
-{
- struct bm1880_div_hw_clock *div_hw = to_bm1880_div_clk(hw);
-
- clk_hw_unregister(hw);
- kfree(div_hw);
-}
-
static int bm1880_clk_register_divs(struct bm1880_div_hw_clock *clks,
int num_clks,
struct bm1880_clock_data *data)
@@ -729,7 +713,7 @@ static int bm1880_clk_register_divs(struct bm1880_div_hw_clock *clks,
err_clk:
while (i--)
- bm1880_clk_unregister_div(data->hw_data.hws[clks[i].div.id]);
+ clk_hw_unregister(data->hw_data.hws[clks[i].div.id]);
return PTR_ERR(hw);
}
diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c
index 57ae183982d8..f7b41366666e 100644
--- a/drivers/clk/clk-si5341.c
+++ b/drivers/clk/clk-si5341.c
@@ -1740,7 +1740,7 @@ static int si5341_probe(struct i2c_client *client,
clk_prepare(data->clk[i].hw.clk);
}
- err = of_clk_add_hw_provider(client->dev.of_node, of_clk_si5341_get,
+ err = devm_of_clk_add_hw_provider(&client->dev, of_clk_si5341_get,
data);
if (err) {
dev_err(&client->dev, "unable to add clk provider\n");
diff --git a/drivers/clk/clk-stm32f4.c b/drivers/clk/clk-stm32f4.c
index af46176ad053..473dfe632cc5 100644
--- a/drivers/clk/clk-stm32f4.c
+++ b/drivers/clk/clk-stm32f4.c
@@ -129,7 +129,6 @@ static const struct stm32f4_gate_data stm32f429_gates[] __initconst = {
{ STM32F4_RCC_APB2ENR, 20, "spi5", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 21, "spi6", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 22, "sai1", "apb2_div" },
- { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div" },
};
static const struct stm32f4_gate_data stm32f469_gates[] __initconst = {
@@ -211,7 +210,6 @@ static const struct stm32f4_gate_data stm32f469_gates[] __initconst = {
{ STM32F4_RCC_APB2ENR, 20, "spi5", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 21, "spi6", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 22, "sai1", "apb2_div" },
- { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div" },
};
static const struct stm32f4_gate_data stm32f746_gates[] __initconst = {
@@ -286,7 +284,6 @@ static const struct stm32f4_gate_data stm32f746_gates[] __initconst = {
{ STM32F4_RCC_APB2ENR, 21, "spi6", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 22, "sai1", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 23, "sai2", "apb2_div" },
- { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div" },
};
static const struct stm32f4_gate_data stm32f769_gates[] __initconst = {
@@ -364,7 +361,6 @@ static const struct stm32f4_gate_data stm32f769_gates[] __initconst = {
{ STM32F4_RCC_APB2ENR, 21, "spi6", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 22, "sai1", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 23, "sai2", "apb2_div" },
- { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 30, "mdio", "apb2_div" },
};
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index a277fd4f2f0a..ac11cefc3191 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -3340,6 +3340,24 @@ static int __init clk_debug_init(void)
{
struct clk_core *core;
+#ifdef CLOCK_ALLOW_WRITE_DEBUGFS
+ pr_warn("\n");
+ pr_warn("********************************************************************\n");
+ pr_warn("** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **\n");
+ pr_warn("** **\n");
+ pr_warn("** WRITEABLE clk DebugFS SUPPORT HAS BEEN ENABLED IN THIS KERNEL **\n");
+ pr_warn("** **\n");
+ pr_warn("** This means that this kernel is built to expose clk operations **\n");
+ pr_warn("** such as parent or rate setting, enabling, disabling, etc. **\n");
+ pr_warn("** to userspace, which may compromise security on your system. **\n");
+ pr_warn("** **\n");
+ pr_warn("** If you see this message and you are not debugging the **\n");
+ pr_warn("** kernel, report this immediately to your vendor! **\n");
+ pr_warn("** **\n");
+ pr_warn("** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **\n");
+ pr_warn("********************************************************************\n");
+#endif
+
rootdir = debugfs_create_dir("clk", NULL);
debugfs_create_file("clk_summary", 0444, rootdir, &all_lists,
diff --git a/drivers/clk/imx/clk-imx8mn.c b/drivers/clk/imx/clk-imx8mn.c
index c55577604e16..021355a24708 100644
--- a/drivers/clk/imx/clk-imx8mn.c
+++ b/drivers/clk/imx/clk-imx8mn.c
@@ -277,9 +277,9 @@ static const char * const imx8mn_pdm_sels[] = {"osc_24m", "sys_pll2_100m", "audi
static const char * const imx8mn_dram_core_sels[] = {"dram_pll_out", "dram_alt_root", };
-static const char * const imx8mn_clko1_sels[] = {"osc_24m", "sys_pll1_800m", "osc_27m",
- "sys_pll1_200m", "audio_pll2_out", "vpu_pll",
- "sys_pll1_80m", };
+static const char * const imx8mn_clko1_sels[] = {"osc_24m", "sys_pll1_800m", "dummy",
+ "sys_pll1_200m", "audio_pll2_out", "sys_pll2_500m",
+ "dummy", "sys_pll1_80m", };
static const char * const imx8mn_clko2_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_400m",
"sys_pll2_166m", "sys_pll3_out", "audio_pll1_out",
"video_pll1_out", "osc_32k", };
diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c
index d6eed760327d..608e0e8ca49a 100644
--- a/drivers/clk/meson/gxbb.c
+++ b/drivers/clk/meson/gxbb.c
@@ -713,6 +713,35 @@ static struct clk_regmap gxbb_mpll_prediv = {
};
static struct clk_regmap gxbb_mpll0_div = {
+ .data = &(struct meson_clk_mpll_data){
+ .sdm = {
+ .reg_off = HHI_MPLL_CNTL7,
+ .shift = 0,
+ .width = 14,
+ },
+ .sdm_en = {
+ .reg_off = HHI_MPLL_CNTL,
+ .shift = 25,
+ .width = 1,
+ },
+ .n2 = {
+ .reg_off = HHI_MPLL_CNTL7,
+ .shift = 16,
+ .width = 9,
+ },
+ .lock = &meson_clk_lock,
+ },
+ .hw.init = &(struct clk_init_data){
+ .name = "mpll0_div",
+ .ops = &meson_clk_mpll_ops,
+ .parent_hws = (const struct clk_hw *[]) {
+ &gxbb_mpll_prediv.hw
+ },
+ .num_parents = 1,
+ },
+};
+
+static struct clk_regmap gxl_mpll0_div = {
.data = &(struct meson_clk_mpll_data){
.sdm = {
.reg_off = HHI_MPLL_CNTL7,
@@ -749,7 +778,16 @@ static struct clk_regmap gxbb_mpll0 = {
.hw.init = &(struct clk_init_data){
.name = "mpll0",
.ops = &clk_regmap_gate_ops,
- .parent_hws = (const struct clk_hw *[]) { &gxbb_mpll0_div.hw },
+ .parent_data = &(const struct clk_parent_data) {
+ /*
+ * Note:
+ * GXL and GXBB have different SDM_EN registers. We
+ * fallback to the global naming string mechanism so
+ * mpll0_div picks up the appropriate one.
+ */
+ .name = "mpll0_div",
+ .index = -1,
+ },
.num_parents = 1,
.flags = CLK_SET_RATE_PARENT,
},
@@ -3044,7 +3082,7 @@ static struct clk_hw_onecell_data gxl_hw_onecell_data = {
[CLKID_VAPB_1] = &gxbb_vapb_1.hw,
[CLKID_VAPB_SEL] = &gxbb_vapb_sel.hw,
[CLKID_VAPB] = &gxbb_vapb.hw,
- [CLKID_MPLL0_DIV] = &gxbb_mpll0_div.hw,
+ [CLKID_MPLL0_DIV] = &gxl_mpll0_div.hw,
[CLKID_MPLL1_DIV] = &gxbb_mpll1_div.hw,
[CLKID_MPLL2_DIV] = &gxbb_mpll2_div.hw,
[CLKID_MPLL_PREDIV] = &gxbb_mpll_prediv.hw,
@@ -3439,7 +3477,7 @@ static struct clk_regmap *const gxl_clk_regmaps[] = {
&gxbb_mpll0,
&gxbb_mpll1,
&gxbb_mpll2,
- &gxbb_mpll0_div,
+ &gxl_mpll0_div,
&gxbb_mpll1_div,
&gxbb_mpll2_div,
&gxbb_cts_amclk_div,
diff --git a/drivers/clk/qcom/gcc-sc7280.c b/drivers/clk/qcom/gcc-sc7280.c
index 6cefcdc86990..ce7c5ba2b9b7 100644
--- a/drivers/clk/qcom/gcc-sc7280.c
+++ b/drivers/clk/qcom/gcc-sc7280.c
@@ -2998,7 +2998,7 @@ static struct clk_branch gcc_cfg_noc_lpass_clk = {
.enable_mask = BIT(0),
.hw.init = &(struct clk_init_data){
.name = "gcc_cfg_noc_lpass_clk",
- .ops = &clk_branch2_ops,
+ .ops = &clk_branch2_aon_ops,
},
},
};
diff --git a/drivers/clk/renesas/rzg2l-cpg.c b/drivers/clk/renesas/rzg2l-cpg.c
index 761922ea5db7..1c92e73cd2b8 100644
--- a/drivers/clk/renesas/rzg2l-cpg.c
+++ b/drivers/clk/renesas/rzg2l-cpg.c
@@ -638,10 +638,16 @@ static void rzg2l_cpg_detach_dev(struct generic_pm_domain *unused, struct device
pm_clk_destroy(dev);
}
+static void rzg2l_cpg_genpd_remove(void *data)
+{
+ pm_genpd_remove(data);
+}
+
static int __init rzg2l_cpg_add_clk_domain(struct device *dev)
{
struct device_node *np = dev->of_node;
struct generic_pm_domain *genpd;
+ int ret;
genpd = devm_kzalloc(dev, sizeof(*genpd), GFP_KERNEL);
if (!genpd)
@@ -652,10 +658,15 @@ static int __init rzg2l_cpg_add_clk_domain(struct device *dev)
GENPD_FLAG_ACTIVE_WAKEUP;
genpd->attach_dev = rzg2l_cpg_attach_dev;
genpd->detach_dev = rzg2l_cpg_detach_dev;
- pm_genpd_init(genpd, &pm_domain_always_on_gov, false);
+ ret = pm_genpd_init(genpd, &pm_domain_always_on_gov, false);
+ if (ret)
+ return ret;
- of_genpd_add_provider_simple(np, genpd);
- return 0;
+ ret = devm_add_action_or_reset(dev, rzg2l_cpg_genpd_remove, genpd);
+ if (ret)
+ return ret;
+
+ return of_genpd_add_provider_simple(np, genpd);
}
static int __init rzg2l_cpg_probe(struct platform_device *pdev)
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index fcb44352623e..eeac6d809229 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1402,7 +1402,7 @@ static int cpufreq_online(unsigned int cpu)
ret = freq_qos_add_request(&policy->constraints,
policy->min_freq_req, FREQ_QOS_MIN,
- policy->min);
+ FREQ_QOS_MIN_DEFAULT_VALUE);
if (ret < 0) {
/*
* So we don't call freq_qos_remove_request() for an
@@ -1422,7 +1422,7 @@ static int cpufreq_online(unsigned int cpu)
ret = freq_qos_add_request(&policy->constraints,
policy->max_freq_req, FREQ_QOS_MAX,
- policy->max);
+ FREQ_QOS_MAX_DEFAULT_VALUE);
if (ret < 0) {
policy->max_freq_req = NULL;
goto out_destroy_policy;
diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c
index a2be0df7e174..35d93361fda1 100644
--- a/drivers/cpufreq/qcom-cpufreq-hw.c
+++ b/drivers/cpufreq/qcom-cpufreq-hw.c
@@ -304,7 +304,8 @@ static void qcom_lmh_dcvs_notify(struct qcom_cpufreq_data *data)
if (capacity > max_capacity)
capacity = max_capacity;
- arch_set_thermal_pressure(policy->cpus, max_capacity - capacity);
+ arch_set_thermal_pressure(policy->related_cpus,
+ max_capacity - capacity);
/*
* In the unlikely case policy is unregistered do not enable
@@ -342,9 +343,9 @@ static irqreturn_t qcom_lmh_dcvs_handle_irq(int irq, void *data)
/* Disable interrupt and enable polling */
disable_irq_nosync(c_data->throttle_irq);
- qcom_lmh_dcvs_notify(c_data);
+ schedule_delayed_work(&c_data->throttle_work, 0);
- return 0;
+ return IRQ_HANDLED;
}
static const struct qcom_cpufreq_soc_data qcom_soc_data = {
diff --git a/drivers/crypto/atmel-aes.c b/drivers/crypto/atmel-aes.c
index 9391ccc03382..fe0558403191 100644
--- a/drivers/crypto/atmel-aes.c
+++ b/drivers/crypto/atmel-aes.c
@@ -960,6 +960,7 @@ static int atmel_aes_handle_queue(struct atmel_aes_dev *dd,
ctx = crypto_tfm_ctx(areq->tfm);
dd->areq = areq;
+ dd->ctx = ctx;
start_async = (areq != new_areq);
dd->is_async = start_async;
@@ -1274,7 +1275,6 @@ static int atmel_aes_init_tfm(struct crypto_skcipher *tfm)
crypto_skcipher_set_reqsize(tfm, sizeof(struct atmel_aes_reqctx));
ctx->base.dd = dd;
- ctx->base.dd->ctx = &ctx->base;
ctx->base.start = atmel_aes_start;
return 0;
@@ -1291,7 +1291,6 @@ static int atmel_aes_ctr_init_tfm(struct crypto_skcipher *tfm)
crypto_skcipher_set_reqsize(tfm, sizeof(struct atmel_aes_reqctx));
ctx->base.dd = dd;
- ctx->base.dd->ctx = &ctx->base;
ctx->base.start = atmel_aes_ctr_start;
return 0;
@@ -1783,7 +1782,6 @@ static int atmel_aes_gcm_init(struct crypto_aead *tfm)
crypto_aead_set_reqsize(tfm, sizeof(struct atmel_aes_reqctx));
ctx->base.dd = dd;
- ctx->base.dd->ctx = &ctx->base;
ctx->base.start = atmel_aes_gcm_start;
return 0;
@@ -1927,7 +1925,6 @@ static int atmel_aes_xts_init_tfm(struct crypto_skcipher *tfm)
crypto_skcipher_set_reqsize(tfm, sizeof(struct atmel_aes_reqctx) +
crypto_skcipher_reqsize(ctx->fallback_tfm));
ctx->base.dd = dd;
- ctx->base.dd->ctx = &ctx->base;
ctx->base.start = atmel_aes_xts_start;
return 0;
@@ -2154,7 +2151,6 @@ static int atmel_aes_authenc_init_tfm(struct crypto_aead *tfm,
crypto_aead_set_reqsize(tfm, (sizeof(struct atmel_aes_authenc_reqctx) +
auth_reqsize));
ctx->base.dd = dd;
- ctx->base.dd->ctx = &ctx->base;
ctx->base.start = atmel_aes_authenc_start;
return 0;
diff --git a/drivers/crypto/caam/caamalg.c b/drivers/crypto/caam/caamalg.c
index 8697ae53b063..d3d8bb0a6990 100644
--- a/drivers/crypto/caam/caamalg.c
+++ b/drivers/crypto/caam/caamalg.c
@@ -1533,6 +1533,9 @@ static int aead_do_one_req(struct crypto_engine *engine, void *areq)
ret = caam_jr_enqueue(ctx->jrdev, desc, aead_crypt_done, req);
+ if (ret == -ENOSPC && engine->retry_support)
+ return ret;
+
if (ret != -EINPROGRESS) {
aead_unmap(ctx->jrdev, rctx->edesc, req);
kfree(rctx->edesc);
@@ -1762,6 +1765,9 @@ static int skcipher_do_one_req(struct crypto_engine *engine, void *areq)
ret = caam_jr_enqueue(ctx->jrdev, desc, skcipher_crypt_done, req);
+ if (ret == -ENOSPC && engine->retry_support)
+ return ret;
+
if (ret != -EINPROGRESS) {
skcipher_unmap(ctx->jrdev, rctx->edesc, req);
kfree(rctx->edesc);
diff --git a/drivers/crypto/caam/caamalg_qi2.c b/drivers/crypto/caam/caamalg_qi2.c
index 8b8ed77d8715..6753f0e6e55d 100644
--- a/drivers/crypto/caam/caamalg_qi2.c
+++ b/drivers/crypto/caam/caamalg_qi2.c
@@ -5470,7 +5470,7 @@ int dpaa2_caam_enqueue(struct device *dev, struct caam_request *req)
dpaa2_fd_set_len(&fd, dpaa2_fl_get_len(&req->fd_flt[1]));
dpaa2_fd_set_flc(&fd, req->flc_dma);
- ppriv = this_cpu_ptr(priv->ppriv);
+ ppriv = raw_cpu_ptr(priv->ppriv);
for (i = 0; i < (priv->dpseci_attr.num_tx_queues << 1); i++) {
err = dpaa2_io_service_enqueue_fq(ppriv->dpio, ppriv->req_fqid,
&fd);
diff --git a/drivers/crypto/caam/caamhash.c b/drivers/crypto/caam/caamhash.c
index e8a6d8bc43b5..36ef738e4a18 100644
--- a/drivers/crypto/caam/caamhash.c
+++ b/drivers/crypto/caam/caamhash.c
@@ -765,6 +765,9 @@ static int ahash_do_one_req(struct crypto_engine *engine, void *areq)
ret = caam_jr_enqueue(jrdev, desc, state->ahash_op_done, req);
+ if (ret == -ENOSPC && engine->retry_support)
+ return ret;
+
if (ret != -EINPROGRESS) {
ahash_unmap(jrdev, state->edesc, req, 0);
kfree(state->edesc);
diff --git a/drivers/crypto/caam/caampkc.c b/drivers/crypto/caam/caampkc.c
index bf6275ffc4aa..886727576710 100644
--- a/drivers/crypto/caam/caampkc.c
+++ b/drivers/crypto/caam/caampkc.c
@@ -380,6 +380,9 @@ static int akcipher_do_one_req(struct crypto_engine *engine, void *areq)
ret = caam_jr_enqueue(jrdev, desc, req_ctx->akcipher_op_done, req);
+ if (ret == -ENOSPC && engine->retry_support)
+ return ret;
+
if (ret != -EINPROGRESS) {
rsa_pub_unmap(jrdev, req_ctx->edesc, req);
rsa_io_unmap(jrdev, req_ctx->edesc, req);
diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c
index 2ecb0e1f65d8..e2806ca3300a 100644
--- a/drivers/crypto/ccp/sev-dev.c
+++ b/drivers/crypto/ccp/sev-dev.c
@@ -241,7 +241,7 @@ static int __sev_platform_init_locked(int *error)
struct psp_device *psp = psp_master;
struct sev_data_init data;
struct sev_device *sev;
- int rc = 0;
+ int psp_ret, rc = 0;
if (!psp || !psp->sev_data)
return -ENODEV;
@@ -266,7 +266,21 @@ static int __sev_platform_init_locked(int *error)
data.tmr_len = SEV_ES_TMR_SIZE;
}
- rc = __sev_do_cmd_locked(SEV_CMD_INIT, &data, error);
+ rc = __sev_do_cmd_locked(SEV_CMD_INIT, &data, &psp_ret);
+ if (rc && psp_ret == SEV_RET_SECURE_DATA_INVALID) {
+ /*
+ * Initialization command returned an integrity check failure
+ * status code, meaning that firmware load and validation of SEV
+ * related persistent data has failed. Retrying the
+ * initialization function should succeed by replacing the state
+ * with a reset state.
+ */
+ dev_dbg(sev->dev, "SEV: retrying INIT command");
+ rc = __sev_do_cmd_locked(SEV_CMD_INIT, &data, &psp_ret);
+ }
+ if (error)
+ *error = psp_ret;
+
if (rc)
return rc;
@@ -1091,18 +1105,6 @@ void sev_pci_init(void)
/* Initialize the platform */
rc = sev_platform_init(&error);
- if (rc && (error == SEV_RET_SECURE_DATA_INVALID)) {
- /*
- * INIT command returned an integrity check failure
- * status code, meaning that firmware load and
- * validation of SEV related persistent data has
- * failed and persistent state has been erased.
- * Retrying INIT command here should succeed.
- */
- dev_dbg(sev->dev, "SEV: retrying INIT command");
- rc = sev_platform_init(&error);
- }
-
if (rc) {
dev_err(sev->dev, "SEV: failed to INIT error %#x\n", error);
return;
diff --git a/drivers/crypto/hisilicon/hpre/hpre_crypto.c b/drivers/crypto/hisilicon/hpre/hpre_crypto.c
index a032c192ef1d..7ba7641723a0 100644
--- a/drivers/crypto/hisilicon/hpre/hpre_crypto.c
+++ b/drivers/crypto/hisilicon/hpre/hpre_crypto.c
@@ -1865,7 +1865,7 @@ static int hpre_curve25519_src_init(struct hpre_asym_request *hpre_req,
*/
if (memcmp(ptr, p, ctx->key_sz) == 0) {
dev_err(dev, "gx is p!\n");
- return -EINVAL;
+ goto err;
} else if (memcmp(ptr, p, ctx->key_sz) > 0) {
hpre_curve25519_src_modulo_p(ptr);
}
diff --git a/drivers/crypto/hisilicon/qm.c b/drivers/crypto/hisilicon/qm.c
index 369562d34d66..ff1122153fbe 100644
--- a/drivers/crypto/hisilicon/qm.c
+++ b/drivers/crypto/hisilicon/qm.c
@@ -5986,7 +5986,7 @@ int hisi_qm_resume(struct device *dev)
if (ret)
pci_err(pdev, "failed to start qm(%d)\n", ret);
- return 0;
+ return ret;
}
EXPORT_SYMBOL_GPL(hisi_qm_resume);
diff --git a/drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c b/drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c
index 146a55ac4b9b..be1ad55a208f 100644
--- a/drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c
+++ b/drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c
@@ -494,12 +494,11 @@ static ssize_t kvf_limits_store(struct device *dev,
{
struct otx2_cptpf_dev *cptpf = dev_get_drvdata(dev);
int lfs_num;
+ int ret;
- if (kstrtoint(buf, 0, &lfs_num)) {
- dev_err(dev, "lfs count %d must be in range [1 - %d]\n",
- lfs_num, num_online_cpus());
- return -EINVAL;
- }
+ ret = kstrtoint(buf, 0, &lfs_num);
+ if (ret)
+ return ret;
if (lfs_num < 1 || lfs_num > num_online_cpus()) {
dev_err(dev, "lfs count %d must be in range [1 - %d]\n",
lfs_num, num_online_cpus());
diff --git a/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c b/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c
index dff34b3ec09e..7c1b92aaab39 100644
--- a/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c
+++ b/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c
@@ -29,7 +29,8 @@ static struct otx2_cpt_bitmap get_cores_bmap(struct device *dev,
bool found = false;
int i;
- if (eng_grp->g->engs_num > OTX2_CPT_MAX_ENGINES) {
+ if (eng_grp->g->engs_num < 0 ||
+ eng_grp->g->engs_num > OTX2_CPT_MAX_ENGINES) {
dev_err(dev, "unsupported number of engines %d on octeontx2\n",
eng_grp->g->engs_num);
return bmap;
diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c
index 9b968ac4ee7b..a196bb8b1701 100644
--- a/drivers/crypto/omap-aes.c
+++ b/drivers/crypto/omap-aes.c
@@ -1302,7 +1302,7 @@ static int omap_aes_suspend(struct device *dev)
static int omap_aes_resume(struct device *dev)
{
- pm_runtime_resume_and_get(dev);
+ pm_runtime_get_sync(dev);
return 0;
}
#endif
diff --git a/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c b/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
index 5a41beb8f20f..7ec81989beb0 100644
--- a/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
+++ b/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
@@ -117,37 +117,19 @@ static int __adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
mutex_lock(lock);
- /* Check if PF2VF CSR is in use by remote function */
+ /* Check if the PFVF CSR is in use by remote function */
val = ADF_CSR_RD(pmisc_bar_addr, pf2vf_offset);
if ((val & remote_in_use_mask) == remote_in_use_pattern) {
dev_dbg(&GET_DEV(accel_dev),
- "PF2VF CSR in use by remote function\n");
+ "PFVF CSR in use by remote function\n");
ret = -EBUSY;
goto out;
}
- /* Attempt to get ownership of PF2VF CSR */
msg &= ~local_in_use_mask;
msg |= local_in_use_pattern;
- ADF_CSR_WR(pmisc_bar_addr, pf2vf_offset, msg);
- /* Wait in case remote func also attempting to get ownership */
- msleep(ADF_IOV_MSG_COLLISION_DETECT_DELAY);
-
- val = ADF_CSR_RD(pmisc_bar_addr, pf2vf_offset);
- if ((val & local_in_use_mask) != local_in_use_pattern) {
- dev_dbg(&GET_DEV(accel_dev),
- "PF2VF CSR in use by remote - collision detected\n");
- ret = -EBUSY;
- goto out;
- }
-
- /*
- * This function now owns the PV2VF CSR. The IN_USE_BY pattern must
- * remain in the PF2VF CSR for all writes including ACK from remote
- * until this local function relinquishes the CSR. Send the message
- * by interrupting the remote.
- */
+ /* Attempt to get ownership of the PFVF CSR */
ADF_CSR_WR(pmisc_bar_addr, pf2vf_offset, msg | int_bit);
/* Wait for confirmation from remote func it received the message */
@@ -156,6 +138,12 @@ static int __adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
val = ADF_CSR_RD(pmisc_bar_addr, pf2vf_offset);
} while ((val & int_bit) && (count++ < ADF_IOV_MSG_ACK_MAX_RETRY));
+ if (val & int_bit) {
+ dev_dbg(&GET_DEV(accel_dev), "ACK not received from remote\n");
+ val &= ~int_bit;
+ ret = -EIO;
+ }
+
if (val != msg) {
dev_dbg(&GET_DEV(accel_dev),
"Collision - PFVF CSR overwritten by remote function\n");
@@ -163,13 +151,7 @@ static int __adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
goto out;
}
- if (val & int_bit) {
- dev_dbg(&GET_DEV(accel_dev), "ACK not received from remote\n");
- val &= ~int_bit;
- ret = -EIO;
- }
-
- /* Finished with PF2VF CSR; relinquish it and leave msg in CSR */
+ /* Finished with the PFVF CSR; relinquish it and leave msg in CSR */
ADF_CSR_WR(pmisc_bar_addr, pf2vf_offset, val & ~local_in_use_mask);
out:
mutex_unlock(lock);
@@ -177,12 +159,13 @@ static int __adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
}
/**
- * adf_iov_putmsg() - send PF2VF message
+ * adf_iov_putmsg() - send PFVF message
* @accel_dev: Pointer to acceleration device.
* @msg: Message to send
- * @vf_nr: VF number to which the message will be sent
+ * @vf_nr: VF number to which the message will be sent if on PF, ignored
+ * otherwise
*
- * Function sends a message from the PF to a VF
+ * Function sends a message through the PFVF channel
*
* Return: 0 on success, error code otherwise.
*/
diff --git a/drivers/crypto/qce/aead.c b/drivers/crypto/qce/aead.c
index 290e2446a2f3..97a530171f07 100644
--- a/drivers/crypto/qce/aead.c
+++ b/drivers/crypto/qce/aead.c
@@ -802,8 +802,8 @@ static int qce_aead_register_one(const struct qce_aead_def *def, struct qce_devi
ret = crypto_register_aead(alg);
if (ret) {
- kfree(tmpl);
dev_err(qce->dev, "%s registration failed\n", alg->base.cra_name);
+ kfree(tmpl);
return ret;
}
diff --git a/drivers/crypto/qce/sha.c b/drivers/crypto/qce/sha.c
index 8e6fcf2c21cc..59159f5e64e5 100644
--- a/drivers/crypto/qce/sha.c
+++ b/drivers/crypto/qce/sha.c
@@ -498,8 +498,8 @@ static int qce_ahash_register_one(const struct qce_ahash_def *def,
ret = crypto_register_ahash(alg);
if (ret) {
- kfree(tmpl);
dev_err(qce->dev, "%s registration failed\n", base->cra_name);
+ kfree(tmpl);
return ret;
}
diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c
index 8ff10928f581..3d27cd5210ef 100644
--- a/drivers/crypto/qce/skcipher.c
+++ b/drivers/crypto/qce/skcipher.c
@@ -484,8 +484,8 @@ static int qce_skcipher_register_one(const struct qce_skcipher_def *def,
ret = crypto_register_skcipher(alg);
if (ret) {
- kfree(tmpl);
dev_err(qce->dev, "%s registration failed\n", alg->base.cra_name);
+ kfree(tmpl);
return ret;
}
diff --git a/drivers/crypto/stm32/stm32-crc32.c b/drivers/crypto/stm32/stm32-crc32.c
index 75867c0b0017..be1bf39a317d 100644
--- a/drivers/crypto/stm32/stm32-crc32.c
+++ b/drivers/crypto/stm32/stm32-crc32.c
@@ -279,7 +279,7 @@ static struct shash_alg algs[] = {
.digestsize = CHKSUM_DIGEST_SIZE,
.base = {
.cra_name = "crc32",
- .cra_driver_name = DRIVER_NAME,
+ .cra_driver_name = "stm32-crc32-crc32",
.cra_priority = 200,
.cra_flags = CRYPTO_ALG_OPTIONAL_KEY,
.cra_blocksize = CHKSUM_BLOCK_SIZE,
@@ -301,7 +301,7 @@ static struct shash_alg algs[] = {
.digestsize = CHKSUM_DIGEST_SIZE,
.base = {
.cra_name = "crc32c",
- .cra_driver_name = DRIVER_NAME,
+ .cra_driver_name = "stm32-crc32-crc32c",
.cra_priority = 200,
.cra_flags = CRYPTO_ALG_OPTIONAL_KEY,
.cra_blocksize = CHKSUM_BLOCK_SIZE,
diff --git a/drivers/crypto/stm32/stm32-cryp.c b/drivers/crypto/stm32/stm32-cryp.c
index 7389a0536ff0..81eb136b6c11 100644
--- a/drivers/crypto/stm32/stm32-cryp.c
+++ b/drivers/crypto/stm32/stm32-cryp.c
@@ -37,7 +37,6 @@
/* Mode mask = bits [15..0] */
#define FLG_MODE_MASK GENMASK(15, 0)
/* Bit [31..16] status */
-#define FLG_CCM_PADDED_WA BIT(16)
/* Registers */
#define CRYP_CR 0x00000000
@@ -105,8 +104,6 @@
/* Misc */
#define AES_BLOCK_32 (AES_BLOCK_SIZE / sizeof(u32))
#define GCM_CTR_INIT 2
-#define _walked_in (cryp->in_walk.offset - cryp->in_sg->offset)
-#define _walked_out (cryp->out_walk.offset - cryp->out_sg->offset)
#define CRYP_AUTOSUSPEND_DELAY 50
struct stm32_cryp_caps {
@@ -144,26 +141,16 @@ struct stm32_cryp {
size_t authsize;
size_t hw_blocksize;
- size_t total_in;
- size_t total_in_save;
- size_t total_out;
- size_t total_out_save;
+ size_t payload_in;
+ size_t header_in;
+ size_t payload_out;
- struct scatterlist *in_sg;
struct scatterlist *out_sg;
- struct scatterlist *out_sg_save;
-
- struct scatterlist in_sgl;
- struct scatterlist out_sgl;
- bool sgs_copied;
-
- int in_sg_len;
- int out_sg_len;
struct scatter_walk in_walk;
struct scatter_walk out_walk;
- u32 last_ctr[4];
+ __be32 last_ctr[4];
u32 gcm_ctr;
};
@@ -262,6 +249,7 @@ static inline int stm32_cryp_wait_output(struct stm32_cryp *cryp)
}
static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp);
+static void stm32_cryp_finish_req(struct stm32_cryp *cryp, int err);
static struct stm32_cryp *stm32_cryp_find_dev(struct stm32_cryp_ctx *ctx)
{
@@ -283,103 +271,6 @@ static struct stm32_cryp *stm32_cryp_find_dev(struct stm32_cryp_ctx *ctx)
return cryp;
}
-static int stm32_cryp_check_aligned(struct scatterlist *sg, size_t total,
- size_t align)
-{
- int len = 0;
-
- if (!total)
- return 0;
-
- if (!IS_ALIGNED(total, align))
- return -EINVAL;
-
- while (sg) {
- if (!IS_ALIGNED(sg->offset, sizeof(u32)))
- return -EINVAL;
-
- if (!IS_ALIGNED(sg->length, align))
- return -EINVAL;
-
- len += sg->length;
- sg = sg_next(sg);
- }
-
- if (len != total)
- return -EINVAL;
-
- return 0;
-}
-
-static int stm32_cryp_check_io_aligned(struct stm32_cryp *cryp)
-{
- int ret;
-
- ret = stm32_cryp_check_aligned(cryp->in_sg, cryp->total_in,
- cryp->hw_blocksize);
- if (ret)
- return ret;
-
- ret = stm32_cryp_check_aligned(cryp->out_sg, cryp->total_out,
- cryp->hw_blocksize);
-
- return ret;
-}
-
-static void sg_copy_buf(void *buf, struct scatterlist *sg,
- unsigned int start, unsigned int nbytes, int out)
-{
- struct scatter_walk walk;
-
- if (!nbytes)
- return;
-
- scatterwalk_start(&walk, sg);
- scatterwalk_advance(&walk, start);
- scatterwalk_copychunks(buf, &walk, nbytes, out);
- scatterwalk_done(&walk, out, 0);
-}
-
-static int stm32_cryp_copy_sgs(struct stm32_cryp *cryp)
-{
- void *buf_in, *buf_out;
- int pages, total_in, total_out;
-
- if (!stm32_cryp_check_io_aligned(cryp)) {
- cryp->sgs_copied = 0;
- return 0;
- }
-
- total_in = ALIGN(cryp->total_in, cryp->hw_blocksize);
- pages = total_in ? get_order(total_in) : 1;
- buf_in = (void *)__get_free_pages(GFP_ATOMIC, pages);
-
- total_out = ALIGN(cryp->total_out, cryp->hw_blocksize);
- pages = total_out ? get_order(total_out) : 1;
- buf_out = (void *)__get_free_pages(GFP_ATOMIC, pages);
-
- if (!buf_in || !buf_out) {
- dev_err(cryp->dev, "Can't allocate pages when unaligned\n");
- cryp->sgs_copied = 0;
- return -EFAULT;
- }
-
- sg_copy_buf(buf_in, cryp->in_sg, 0, cryp->total_in, 0);
-
- sg_init_one(&cryp->in_sgl, buf_in, total_in);
- cryp->in_sg = &cryp->in_sgl;
- cryp->in_sg_len = 1;
-
- sg_init_one(&cryp->out_sgl, buf_out, total_out);
- cryp->out_sg_save = cryp->out_sg;
- cryp->out_sg = &cryp->out_sgl;
- cryp->out_sg_len = 1;
-
- cryp->sgs_copied = 1;
-
- return 0;
-}
-
static void stm32_cryp_hw_write_iv(struct stm32_cryp *cryp, __be32 *iv)
{
if (!iv)
@@ -481,16 +372,99 @@ static int stm32_cryp_gcm_init(struct stm32_cryp *cryp, u32 cfg)
/* Wait for end of processing */
ret = stm32_cryp_wait_enable(cryp);
- if (ret)
+ if (ret) {
dev_err(cryp->dev, "Timeout (gcm init)\n");
+ return ret;
+ }
- return ret;
+ /* Prepare next phase */
+ if (cryp->areq->assoclen) {
+ cfg |= CR_PH_HEADER;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+ } else if (stm32_cryp_get_input_text_len(cryp)) {
+ cfg |= CR_PH_PAYLOAD;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+ }
+
+ return 0;
+}
+
+static void stm32_crypt_gcmccm_end_header(struct stm32_cryp *cryp)
+{
+ u32 cfg;
+ int err;
+
+ /* Check if whole header written */
+ if (!cryp->header_in) {
+ /* Wait for completion */
+ err = stm32_cryp_wait_busy(cryp);
+ if (err) {
+ dev_err(cryp->dev, "Timeout (gcm/ccm header)\n");
+ stm32_cryp_write(cryp, CRYP_IMSCR, 0);
+ stm32_cryp_finish_req(cryp, err);
+ return;
+ }
+
+ if (stm32_cryp_get_input_text_len(cryp)) {
+ /* Phase 3 : payload */
+ cfg = stm32_cryp_read(cryp, CRYP_CR);
+ cfg &= ~CR_CRYPEN;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+
+ cfg &= ~CR_PH_MASK;
+ cfg |= CR_PH_PAYLOAD | CR_CRYPEN;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+ } else {
+ /*
+ * Phase 4 : tag.
+ * Nothing to read, nothing to write, caller have to
+ * end request
+ */
+ }
+ }
+}
+
+static void stm32_cryp_write_ccm_first_header(struct stm32_cryp *cryp)
+{
+ unsigned int i;
+ size_t written;
+ size_t len;
+ u32 alen = cryp->areq->assoclen;
+ u32 block[AES_BLOCK_32] = {0};
+ u8 *b8 = (u8 *)block;
+
+ if (alen <= 65280) {
+ /* Write first u32 of B1 */
+ b8[0] = (alen >> 8) & 0xFF;
+ b8[1] = alen & 0xFF;
+ len = 2;
+ } else {
+ /* Build the two first u32 of B1 */
+ b8[0] = 0xFF;
+ b8[1] = 0xFE;
+ b8[2] = (alen & 0xFF000000) >> 24;
+ b8[3] = (alen & 0x00FF0000) >> 16;
+ b8[4] = (alen & 0x0000FF00) >> 8;
+ b8[5] = alen & 0x000000FF;
+ len = 6;
+ }
+
+ written = min_t(size_t, AES_BLOCK_SIZE - len, alen);
+
+ scatterwalk_copychunks((char *)block + len, &cryp->in_walk, written, 0);
+ for (i = 0; i < AES_BLOCK_32; i++)
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
+
+ cryp->header_in -= written;
+
+ stm32_crypt_gcmccm_end_header(cryp);
}
static int stm32_cryp_ccm_init(struct stm32_cryp *cryp, u32 cfg)
{
int ret;
- u8 iv[AES_BLOCK_SIZE], b0[AES_BLOCK_SIZE];
+ u32 iv_32[AES_BLOCK_32], b0_32[AES_BLOCK_32];
+ u8 *iv = (u8 *)iv_32, *b0 = (u8 *)b0_32;
__be32 *bd;
u32 *d;
unsigned int i, textlen;
@@ -531,10 +505,24 @@ static int stm32_cryp_ccm_init(struct stm32_cryp *cryp, u32 cfg)
/* Wait for end of processing */
ret = stm32_cryp_wait_enable(cryp);
- if (ret)
+ if (ret) {
dev_err(cryp->dev, "Timeout (ccm init)\n");
+ return ret;
+ }
- return ret;
+ /* Prepare next phase */
+ if (cryp->areq->assoclen) {
+ cfg |= CR_PH_HEADER | CR_CRYPEN;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+
+ /* Write first (special) block (may move to next phase [payload]) */
+ stm32_cryp_write_ccm_first_header(cryp);
+ } else if (stm32_cryp_get_input_text_len(cryp)) {
+ cfg |= CR_PH_PAYLOAD;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+ }
+
+ return 0;
}
static int stm32_cryp_hw_init(struct stm32_cryp *cryp)
@@ -542,7 +530,7 @@ static int stm32_cryp_hw_init(struct stm32_cryp *cryp)
int ret;
u32 cfg, hw_mode;
- pm_runtime_resume_and_get(cryp->dev);
+ pm_runtime_get_sync(cryp->dev);
/* Disable interrupt */
stm32_cryp_write(cryp, CRYP_IMSCR, 0);
@@ -605,16 +593,6 @@ static int stm32_cryp_hw_init(struct stm32_cryp *cryp)
if (ret)
return ret;
- /* Phase 2 : header (authenticated data) */
- if (cryp->areq->assoclen) {
- cfg |= CR_PH_HEADER;
- } else if (stm32_cryp_get_input_text_len(cryp)) {
- cfg |= CR_PH_PAYLOAD;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
- } else {
- cfg |= CR_PH_INIT;
- }
-
break;
case CR_DES_CBC:
@@ -633,8 +611,6 @@ static int stm32_cryp_hw_init(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_CR, cfg);
- cryp->flags &= ~FLG_CCM_PADDED_WA;
-
return 0;
}
@@ -644,28 +620,9 @@ static void stm32_cryp_finish_req(struct stm32_cryp *cryp, int err)
/* Phase 4 : output tag */
err = stm32_cryp_read_auth_tag(cryp);
- if (!err && (!(is_gcm(cryp) || is_ccm(cryp))))
+ if (!err && (!(is_gcm(cryp) || is_ccm(cryp) || is_ecb(cryp))))
stm32_cryp_get_iv(cryp);
- if (cryp->sgs_copied) {
- void *buf_in, *buf_out;
- int pages, len;
-
- buf_in = sg_virt(&cryp->in_sgl);
- buf_out = sg_virt(&cryp->out_sgl);
-
- sg_copy_buf(buf_out, cryp->out_sg_save, 0,
- cryp->total_out_save, 1);
-
- len = ALIGN(cryp->total_in_save, cryp->hw_blocksize);
- pages = len ? get_order(len) : 1;
- free_pages((unsigned long)buf_in, pages);
-
- len = ALIGN(cryp->total_out_save, cryp->hw_blocksize);
- pages = len ? get_order(len) : 1;
- free_pages((unsigned long)buf_out, pages);
- }
-
pm_runtime_mark_last_busy(cryp->dev);
pm_runtime_put_autosuspend(cryp->dev);
@@ -674,8 +631,6 @@ static void stm32_cryp_finish_req(struct stm32_cryp *cryp, int err)
else
crypto_finalize_skcipher_request(cryp->engine, cryp->req,
err);
-
- memset(cryp->ctx->key, 0, cryp->ctx->keylen);
}
static int stm32_cryp_cpu_start(struct stm32_cryp *cryp)
@@ -801,7 +756,20 @@ static int stm32_cryp_aes_aead_setkey(struct crypto_aead *tfm, const u8 *key,
static int stm32_cryp_aes_gcm_setauthsize(struct crypto_aead *tfm,
unsigned int authsize)
{
- return authsize == AES_BLOCK_SIZE ? 0 : -EINVAL;
+ switch (authsize) {
+ case 4:
+ case 8:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
}
static int stm32_cryp_aes_ccm_setauthsize(struct crypto_aead *tfm,
@@ -825,31 +793,61 @@ static int stm32_cryp_aes_ccm_setauthsize(struct crypto_aead *tfm,
static int stm32_cryp_aes_ecb_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % AES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_ECB | FLG_ENCRYPT);
}
static int stm32_cryp_aes_ecb_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % AES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_ECB);
}
static int stm32_cryp_aes_cbc_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % AES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_CBC | FLG_ENCRYPT);
}
static int stm32_cryp_aes_cbc_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % AES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_CBC);
}
static int stm32_cryp_aes_ctr_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_CTR | FLG_ENCRYPT);
}
static int stm32_cryp_aes_ctr_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_CTR);
}
@@ -863,53 +861,122 @@ static int stm32_cryp_aes_gcm_decrypt(struct aead_request *req)
return stm32_cryp_aead_crypt(req, FLG_AES | FLG_GCM);
}
+static inline int crypto_ccm_check_iv(const u8 *iv)
+{
+ /* 2 <= L <= 8, so 1 <= L' <= 7. */
+ if (iv[0] < 1 || iv[0] > 7)
+ return -EINVAL;
+
+ return 0;
+}
+
static int stm32_cryp_aes_ccm_encrypt(struct aead_request *req)
{
+ int err;
+
+ err = crypto_ccm_check_iv(req->iv);
+ if (err)
+ return err;
+
return stm32_cryp_aead_crypt(req, FLG_AES | FLG_CCM | FLG_ENCRYPT);
}
static int stm32_cryp_aes_ccm_decrypt(struct aead_request *req)
{
+ int err;
+
+ err = crypto_ccm_check_iv(req->iv);
+ if (err)
+ return err;
+
return stm32_cryp_aead_crypt(req, FLG_AES | FLG_CCM);
}
static int stm32_cryp_des_ecb_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_DES | FLG_ECB | FLG_ENCRYPT);
}
static int stm32_cryp_des_ecb_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_DES | FLG_ECB);
}
static int stm32_cryp_des_cbc_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_DES | FLG_CBC | FLG_ENCRYPT);
}
static int stm32_cryp_des_cbc_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_DES | FLG_CBC);
}
static int stm32_cryp_tdes_ecb_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_TDES | FLG_ECB | FLG_ENCRYPT);
}
static int stm32_cryp_tdes_ecb_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_TDES | FLG_ECB);
}
static int stm32_cryp_tdes_cbc_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_TDES | FLG_CBC | FLG_ENCRYPT);
}
static int stm32_cryp_tdes_cbc_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_TDES | FLG_CBC);
}
@@ -919,6 +986,7 @@ static int stm32_cryp_prepare_req(struct skcipher_request *req,
struct stm32_cryp_ctx *ctx;
struct stm32_cryp *cryp;
struct stm32_cryp_reqctx *rctx;
+ struct scatterlist *in_sg;
int ret;
if (!req && !areq)
@@ -944,76 +1012,55 @@ static int stm32_cryp_prepare_req(struct skcipher_request *req,
if (req) {
cryp->req = req;
cryp->areq = NULL;
- cryp->total_in = req->cryptlen;
- cryp->total_out = cryp->total_in;
+ cryp->header_in = 0;
+ cryp->payload_in = req->cryptlen;
+ cryp->payload_out = req->cryptlen;
+ cryp->authsize = 0;
} else {
/*
* Length of input and output data:
* Encryption case:
- * INPUT = AssocData || PlainText
+ * INPUT = AssocData || PlainText
* <- assoclen -> <- cryptlen ->
- * <------- total_in ----------->
*
- * OUTPUT = AssocData || CipherText || AuthTag
- * <- assoclen -> <- cryptlen -> <- authsize ->
- * <---------------- total_out ----------------->
+ * OUTPUT = AssocData || CipherText || AuthTag
+ * <- assoclen -> <-- cryptlen --> <- authsize ->
*
* Decryption case:
- * INPUT = AssocData || CipherText || AuthTag
- * <- assoclen -> <--------- cryptlen --------->
- * <- authsize ->
- * <---------------- total_in ------------------>
+ * INPUT = AssocData || CipherTex || AuthTag
+ * <- assoclen ---> <---------- cryptlen ---------->
*
- * OUTPUT = AssocData || PlainText
- * <- assoclen -> <- crypten - authsize ->
- * <---------- total_out ----------------->
+ * OUTPUT = AssocData || PlainText
+ * <- assoclen -> <- cryptlen - authsize ->
*/
cryp->areq = areq;
cryp->req = NULL;
cryp->authsize = crypto_aead_authsize(crypto_aead_reqtfm(areq));
- cryp->total_in = areq->assoclen + areq->cryptlen;
- if (is_encrypt(cryp))
- /* Append auth tag to output */
- cryp->total_out = cryp->total_in + cryp->authsize;
- else
- /* No auth tag in output */
- cryp->total_out = cryp->total_in - cryp->authsize;
+ if (is_encrypt(cryp)) {
+ cryp->payload_in = areq->cryptlen;
+ cryp->header_in = areq->assoclen;
+ cryp->payload_out = areq->cryptlen;
+ } else {
+ cryp->payload_in = areq->cryptlen - cryp->authsize;
+ cryp->header_in = areq->assoclen;
+ cryp->payload_out = cryp->payload_in;
+ }
}
- cryp->total_in_save = cryp->total_in;
- cryp->total_out_save = cryp->total_out;
+ in_sg = req ? req->src : areq->src;
+ scatterwalk_start(&cryp->in_walk, in_sg);
- cryp->in_sg = req ? req->src : areq->src;
cryp->out_sg = req ? req->dst : areq->dst;
- cryp->out_sg_save = cryp->out_sg;
-
- cryp->in_sg_len = sg_nents_for_len(cryp->in_sg, cryp->total_in);
- if (cryp->in_sg_len < 0) {
- dev_err(cryp->dev, "Cannot get in_sg_len\n");
- ret = cryp->in_sg_len;
- return ret;
- }
-
- cryp->out_sg_len = sg_nents_for_len(cryp->out_sg, cryp->total_out);
- if (cryp->out_sg_len < 0) {
- dev_err(cryp->dev, "Cannot get out_sg_len\n");
- ret = cryp->out_sg_len;
- return ret;
- }
-
- ret = stm32_cryp_copy_sgs(cryp);
- if (ret)
- return ret;
-
- scatterwalk_start(&cryp->in_walk, cryp->in_sg);
scatterwalk_start(&cryp->out_walk, cryp->out_sg);
if (is_gcm(cryp) || is_ccm(cryp)) {
/* In output, jump after assoc data */
- scatterwalk_advance(&cryp->out_walk, cryp->areq->assoclen);
- cryp->total_out -= cryp->areq->assoclen;
+ scatterwalk_copychunks(NULL, &cryp->out_walk, cryp->areq->assoclen, 2);
}
+ if (is_ctr(cryp))
+ memset(cryp->last_ctr, 0, sizeof(cryp->last_ctr));
+
ret = stm32_cryp_hw_init(cryp);
return ret;
}
@@ -1061,8 +1108,7 @@ static int stm32_cryp_aead_one_req(struct crypto_engine *engine, void *areq)
if (!cryp)
return -ENODEV;
- if (unlikely(!cryp->areq->assoclen &&
- !stm32_cryp_get_input_text_len(cryp))) {
+ if (unlikely(!cryp->payload_in && !cryp->header_in)) {
/* No input data to process: get tag and finish */
stm32_cryp_finish_req(cryp, 0);
return 0;
@@ -1071,43 +1117,10 @@ static int stm32_cryp_aead_one_req(struct crypto_engine *engine, void *areq)
return stm32_cryp_cpu_start(cryp);
}
-static u32 *stm32_cryp_next_out(struct stm32_cryp *cryp, u32 *dst,
- unsigned int n)
-{
- scatterwalk_advance(&cryp->out_walk, n);
-
- if (unlikely(cryp->out_sg->length == _walked_out)) {
- cryp->out_sg = sg_next(cryp->out_sg);
- if (cryp->out_sg) {
- scatterwalk_start(&cryp->out_walk, cryp->out_sg);
- return (sg_virt(cryp->out_sg) + _walked_out);
- }
- }
-
- return (u32 *)((u8 *)dst + n);
-}
-
-static u32 *stm32_cryp_next_in(struct stm32_cryp *cryp, u32 *src,
- unsigned int n)
-{
- scatterwalk_advance(&cryp->in_walk, n);
-
- if (unlikely(cryp->in_sg->length == _walked_in)) {
- cryp->in_sg = sg_next(cryp->in_sg);
- if (cryp->in_sg) {
- scatterwalk_start(&cryp->in_walk, cryp->in_sg);
- return (sg_virt(cryp->in_sg) + _walked_in);
- }
- }
-
- return (u32 *)((u8 *)src + n);
-}
-
static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp)
{
- u32 cfg, size_bit, *dst, d32;
- u8 *d8;
- unsigned int i, j;
+ u32 cfg, size_bit;
+ unsigned int i;
int ret = 0;
/* Update Config */
@@ -1130,7 +1143,7 @@ static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_DIN, size_bit);
size_bit = is_encrypt(cryp) ? cryp->areq->cryptlen :
- cryp->areq->cryptlen - AES_BLOCK_SIZE;
+ cryp->areq->cryptlen - cryp->authsize;
size_bit *= 8;
if (cryp->caps->swap_final)
size_bit = (__force u32)cpu_to_be32(size_bit);
@@ -1139,11 +1152,9 @@ static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_DIN, size_bit);
} else {
/* CCM: write CTR0 */
- u8 iv[AES_BLOCK_SIZE];
- u32 *iv32 = (u32 *)iv;
- __be32 *biv;
-
- biv = (void *)iv;
+ u32 iv32[AES_BLOCK_32];
+ u8 *iv = (u8 *)iv32;
+ __be32 *biv = (__be32 *)iv32;
memcpy(iv, cryp->areq->iv, AES_BLOCK_SIZE);
memset(iv + AES_BLOCK_SIZE - 1 - iv[0], 0, iv[0] + 1);
@@ -1165,39 +1176,18 @@ static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp)
}
if (is_encrypt(cryp)) {
+ u32 out_tag[AES_BLOCK_32];
+
/* Get and write tag */
- dst = sg_virt(cryp->out_sg) + _walked_out;
+ for (i = 0; i < AES_BLOCK_32; i++)
+ out_tag[i] = stm32_cryp_read(cryp, CRYP_DOUT);
- for (i = 0; i < AES_BLOCK_32; i++) {
- if (cryp->total_out >= sizeof(u32)) {
- /* Read a full u32 */
- *dst = stm32_cryp_read(cryp, CRYP_DOUT);
-
- dst = stm32_cryp_next_out(cryp, dst,
- sizeof(u32));
- cryp->total_out -= sizeof(u32);
- } else if (!cryp->total_out) {
- /* Empty fifo out (data from input padding) */
- stm32_cryp_read(cryp, CRYP_DOUT);
- } else {
- /* Read less than an u32 */
- d32 = stm32_cryp_read(cryp, CRYP_DOUT);
- d8 = (u8 *)&d32;
-
- for (j = 0; j < cryp->total_out; j++) {
- *((u8 *)dst) = *(d8++);
- dst = stm32_cryp_next_out(cryp, dst, 1);
- }
- cryp->total_out = 0;
- }
- }
+ scatterwalk_copychunks(out_tag, &cryp->out_walk, cryp->authsize, 1);
} else {
/* Get and check tag */
u32 in_tag[AES_BLOCK_32], out_tag[AES_BLOCK_32];
- scatterwalk_map_and_copy(in_tag, cryp->in_sg,
- cryp->total_in_save - cryp->authsize,
- cryp->authsize, 0);
+ scatterwalk_copychunks(in_tag, &cryp->in_walk, cryp->authsize, 0);
for (i = 0; i < AES_BLOCK_32; i++)
out_tag[i] = stm32_cryp_read(cryp, CRYP_DOUT);
@@ -1217,115 +1207,59 @@ static void stm32_cryp_check_ctr_counter(struct stm32_cryp *cryp)
{
u32 cr;
- if (unlikely(cryp->last_ctr[3] == 0xFFFFFFFF)) {
- cryp->last_ctr[3] = 0;
- cryp->last_ctr[2]++;
- if (!cryp->last_ctr[2]) {
- cryp->last_ctr[1]++;
- if (!cryp->last_ctr[1])
- cryp->last_ctr[0]++;
- }
+ if (unlikely(cryp->last_ctr[3] == cpu_to_be32(0xFFFFFFFF))) {
+ /*
+ * In this case, we need to increment manually the ctr counter,
+ * as HW doesn't handle the U32 carry.
+ */
+ crypto_inc((u8 *)cryp->last_ctr, sizeof(cryp->last_ctr));
cr = stm32_cryp_read(cryp, CRYP_CR);
stm32_cryp_write(cryp, CRYP_CR, cr & ~CR_CRYPEN);
- stm32_cryp_hw_write_iv(cryp, (__be32 *)cryp->last_ctr);
+ stm32_cryp_hw_write_iv(cryp, cryp->last_ctr);
stm32_cryp_write(cryp, CRYP_CR, cr);
}
- cryp->last_ctr[0] = stm32_cryp_read(cryp, CRYP_IV0LR);
- cryp->last_ctr[1] = stm32_cryp_read(cryp, CRYP_IV0RR);
- cryp->last_ctr[2] = stm32_cryp_read(cryp, CRYP_IV1LR);
- cryp->last_ctr[3] = stm32_cryp_read(cryp, CRYP_IV1RR);
+ /* The IV registers are BE */
+ cryp->last_ctr[0] = cpu_to_be32(stm32_cryp_read(cryp, CRYP_IV0LR));
+ cryp->last_ctr[1] = cpu_to_be32(stm32_cryp_read(cryp, CRYP_IV0RR));
+ cryp->last_ctr[2] = cpu_to_be32(stm32_cryp_read(cryp, CRYP_IV1LR));
+ cryp->last_ctr[3] = cpu_to_be32(stm32_cryp_read(cryp, CRYP_IV1RR));
}
-static bool stm32_cryp_irq_read_data(struct stm32_cryp *cryp)
+static void stm32_cryp_irq_read_data(struct stm32_cryp *cryp)
{
- unsigned int i, j;
- u32 d32, *dst;
- u8 *d8;
- size_t tag_size;
-
- /* Do no read tag now (if any) */
- if (is_encrypt(cryp) && (is_gcm(cryp) || is_ccm(cryp)))
- tag_size = cryp->authsize;
- else
- tag_size = 0;
-
- dst = sg_virt(cryp->out_sg) + _walked_out;
+ unsigned int i;
+ u32 block[AES_BLOCK_32];
- for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++) {
- if (likely(cryp->total_out - tag_size >= sizeof(u32))) {
- /* Read a full u32 */
- *dst = stm32_cryp_read(cryp, CRYP_DOUT);
+ for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++)
+ block[i] = stm32_cryp_read(cryp, CRYP_DOUT);
- dst = stm32_cryp_next_out(cryp, dst, sizeof(u32));
- cryp->total_out -= sizeof(u32);
- } else if (cryp->total_out == tag_size) {
- /* Empty fifo out (data from input padding) */
- d32 = stm32_cryp_read(cryp, CRYP_DOUT);
- } else {
- /* Read less than an u32 */
- d32 = stm32_cryp_read(cryp, CRYP_DOUT);
- d8 = (u8 *)&d32;
-
- for (j = 0; j < cryp->total_out - tag_size; j++) {
- *((u8 *)dst) = *(d8++);
- dst = stm32_cryp_next_out(cryp, dst, 1);
- }
- cryp->total_out = tag_size;
- }
- }
-
- return !(cryp->total_out - tag_size) || !cryp->total_in;
+ scatterwalk_copychunks(block, &cryp->out_walk, min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out), 1);
+ cryp->payload_out -= min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out);
}
static void stm32_cryp_irq_write_block(struct stm32_cryp *cryp)
{
- unsigned int i, j;
- u32 *src;
- u8 d8[4];
- size_t tag_size;
-
- /* Do no write tag (if any) */
- if (is_decrypt(cryp) && (is_gcm(cryp) || is_ccm(cryp)))
- tag_size = cryp->authsize;
- else
- tag_size = 0;
-
- src = sg_virt(cryp->in_sg) + _walked_in;
+ unsigned int i;
+ u32 block[AES_BLOCK_32] = {0};
- for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++) {
- if (likely(cryp->total_in - tag_size >= sizeof(u32))) {
- /* Write a full u32 */
- stm32_cryp_write(cryp, CRYP_DIN, *src);
+ scatterwalk_copychunks(block, &cryp->in_walk, min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_in), 0);
+ for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++)
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
- src = stm32_cryp_next_in(cryp, src, sizeof(u32));
- cryp->total_in -= sizeof(u32);
- } else if (cryp->total_in == tag_size) {
- /* Write padding data */
- stm32_cryp_write(cryp, CRYP_DIN, 0);
- } else {
- /* Write less than an u32 */
- memset(d8, 0, sizeof(u32));
- for (j = 0; j < cryp->total_in - tag_size; j++) {
- d8[j] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
- }
-
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
- cryp->total_in = tag_size;
- }
- }
+ cryp->payload_in -= min_t(size_t, cryp->hw_blocksize, cryp->payload_in);
}
static void stm32_cryp_irq_write_gcm_padded_data(struct stm32_cryp *cryp)
{
int err;
- u32 cfg, tmp[AES_BLOCK_32];
- size_t total_in_ori = cryp->total_in;
- struct scatterlist *out_sg_ori = cryp->out_sg;
+ u32 cfg, block[AES_BLOCK_32] = {0};
unsigned int i;
/* 'Special workaround' procedure described in the datasheet */
@@ -1350,18 +1284,25 @@ static void stm32_cryp_irq_write_gcm_padded_data(struct stm32_cryp *cryp)
/* b) pad and write the last block */
stm32_cryp_irq_write_block(cryp);
- cryp->total_in = total_in_ori;
+ /* wait end of process */
err = stm32_cryp_wait_output(cryp);
if (err) {
- dev_err(cryp->dev, "Timeout (write gcm header)\n");
+ dev_err(cryp->dev, "Timeout (write gcm last data)\n");
return stm32_cryp_finish_req(cryp, err);
}
/* c) get and store encrypted data */
- stm32_cryp_irq_read_data(cryp);
- scatterwalk_map_and_copy(tmp, out_sg_ori,
- cryp->total_in_save - total_in_ori,
- total_in_ori, 0);
+ /*
+ * Same code as stm32_cryp_irq_read_data(), but we want to store
+ * block value
+ */
+ for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++)
+ block[i] = stm32_cryp_read(cryp, CRYP_DOUT);
+
+ scatterwalk_copychunks(block, &cryp->out_walk, min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out), 1);
+ cryp->payload_out -= min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out);
/* d) change mode back to AES GCM */
cfg &= ~CR_ALGO_MASK;
@@ -1374,19 +1315,13 @@ static void stm32_cryp_irq_write_gcm_padded_data(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_CR, cfg);
/* f) write padded data */
- for (i = 0; i < AES_BLOCK_32; i++) {
- if (cryp->total_in)
- stm32_cryp_write(cryp, CRYP_DIN, tmp[i]);
- else
- stm32_cryp_write(cryp, CRYP_DIN, 0);
-
- cryp->total_in -= min_t(size_t, sizeof(u32), cryp->total_in);
- }
+ for (i = 0; i < AES_BLOCK_32; i++)
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
/* g) Empty fifo out */
err = stm32_cryp_wait_output(cryp);
if (err) {
- dev_err(cryp->dev, "Timeout (write gcm header)\n");
+ dev_err(cryp->dev, "Timeout (write gcm padded data)\n");
return stm32_cryp_finish_req(cryp, err);
}
@@ -1399,16 +1334,14 @@ static void stm32_cryp_irq_write_gcm_padded_data(struct stm32_cryp *cryp)
static void stm32_cryp_irq_set_npblb(struct stm32_cryp *cryp)
{
- u32 cfg, payload_bytes;
+ u32 cfg;
/* disable ip, set NPBLB and reneable ip */
cfg = stm32_cryp_read(cryp, CRYP_CR);
cfg &= ~CR_CRYPEN;
stm32_cryp_write(cryp, CRYP_CR, cfg);
- payload_bytes = is_decrypt(cryp) ? cryp->total_in - cryp->authsize :
- cryp->total_in;
- cfg |= (cryp->hw_blocksize - payload_bytes) << CR_NBPBL_SHIFT;
+ cfg |= (cryp->hw_blocksize - cryp->payload_in) << CR_NBPBL_SHIFT;
cfg |= CR_CRYPEN;
stm32_cryp_write(cryp, CRYP_CR, cfg);
}
@@ -1417,13 +1350,11 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
{
int err = 0;
u32 cfg, iv1tmp;
- u32 cstmp1[AES_BLOCK_32], cstmp2[AES_BLOCK_32], tmp[AES_BLOCK_32];
- size_t last_total_out, total_in_ori = cryp->total_in;
- struct scatterlist *out_sg_ori = cryp->out_sg;
+ u32 cstmp1[AES_BLOCK_32], cstmp2[AES_BLOCK_32];
+ u32 block[AES_BLOCK_32] = {0};
unsigned int i;
/* 'Special workaround' procedure described in the datasheet */
- cryp->flags |= FLG_CCM_PADDED_WA;
/* a) disable ip */
stm32_cryp_write(cryp, CRYP_IMSCR, 0);
@@ -1453,7 +1384,7 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
/* b) pad and write the last block */
stm32_cryp_irq_write_block(cryp);
- cryp->total_in = total_in_ori;
+ /* wait end of process */
err = stm32_cryp_wait_output(cryp);
if (err) {
dev_err(cryp->dev, "Timeout (wite ccm padded data)\n");
@@ -1461,13 +1392,16 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
}
/* c) get and store decrypted data */
- last_total_out = cryp->total_out;
- stm32_cryp_irq_read_data(cryp);
+ /*
+ * Same code as stm32_cryp_irq_read_data(), but we want to store
+ * block value
+ */
+ for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++)
+ block[i] = stm32_cryp_read(cryp, CRYP_DOUT);
- memset(tmp, 0, sizeof(tmp));
- scatterwalk_map_and_copy(tmp, out_sg_ori,
- cryp->total_out_save - last_total_out,
- last_total_out, 0);
+ scatterwalk_copychunks(block, &cryp->out_walk, min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out), 1);
+ cryp->payload_out -= min_t(size_t, cryp->hw_blocksize, cryp->payload_out);
/* d) Load again CRYP_CSGCMCCMxR */
for (i = 0; i < ARRAY_SIZE(cstmp2); i++)
@@ -1484,10 +1418,10 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_CR, cfg);
/* g) XOR and write padded data */
- for (i = 0; i < ARRAY_SIZE(tmp); i++) {
- tmp[i] ^= cstmp1[i];
- tmp[i] ^= cstmp2[i];
- stm32_cryp_write(cryp, CRYP_DIN, tmp[i]);
+ for (i = 0; i < ARRAY_SIZE(block); i++) {
+ block[i] ^= cstmp1[i];
+ block[i] ^= cstmp2[i];
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
}
/* h) wait for completion */
@@ -1501,30 +1435,34 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
static void stm32_cryp_irq_write_data(struct stm32_cryp *cryp)
{
- if (unlikely(!cryp->total_in)) {
+ if (unlikely(!cryp->payload_in)) {
dev_warn(cryp->dev, "No more data to process\n");
return;
}
- if (unlikely(cryp->total_in < AES_BLOCK_SIZE &&
+ if (unlikely(cryp->payload_in < AES_BLOCK_SIZE &&
(stm32_cryp_get_hw_mode(cryp) == CR_AES_GCM) &&
is_encrypt(cryp))) {
/* Padding for AES GCM encryption */
- if (cryp->caps->padding_wa)
+ if (cryp->caps->padding_wa) {
/* Special case 1 */
- return stm32_cryp_irq_write_gcm_padded_data(cryp);
+ stm32_cryp_irq_write_gcm_padded_data(cryp);
+ return;
+ }
/* Setting padding bytes (NBBLB) */
stm32_cryp_irq_set_npblb(cryp);
}
- if (unlikely((cryp->total_in - cryp->authsize < AES_BLOCK_SIZE) &&
+ if (unlikely((cryp->payload_in < AES_BLOCK_SIZE) &&
(stm32_cryp_get_hw_mode(cryp) == CR_AES_CCM) &&
is_decrypt(cryp))) {
/* Padding for AES CCM decryption */
- if (cryp->caps->padding_wa)
+ if (cryp->caps->padding_wa) {
/* Special case 2 */
- return stm32_cryp_irq_write_ccm_padded_data(cryp);
+ stm32_cryp_irq_write_ccm_padded_data(cryp);
+ return;
+ }
/* Setting padding bytes (NBBLB) */
stm32_cryp_irq_set_npblb(cryp);
@@ -1536,192 +1474,60 @@ static void stm32_cryp_irq_write_data(struct stm32_cryp *cryp)
stm32_cryp_irq_write_block(cryp);
}
-static void stm32_cryp_irq_write_gcm_header(struct stm32_cryp *cryp)
+static void stm32_cryp_irq_write_gcmccm_header(struct stm32_cryp *cryp)
{
- int err;
- unsigned int i, j;
- u32 cfg, *src;
-
- src = sg_virt(cryp->in_sg) + _walked_in;
-
- for (i = 0; i < AES_BLOCK_32; i++) {
- stm32_cryp_write(cryp, CRYP_DIN, *src);
-
- src = stm32_cryp_next_in(cryp, src, sizeof(u32));
- cryp->total_in -= min_t(size_t, sizeof(u32), cryp->total_in);
-
- /* Check if whole header written */
- if ((cryp->total_in_save - cryp->total_in) ==
- cryp->areq->assoclen) {
- /* Write padding if needed */
- for (j = i + 1; j < AES_BLOCK_32; j++)
- stm32_cryp_write(cryp, CRYP_DIN, 0);
-
- /* Wait for completion */
- err = stm32_cryp_wait_busy(cryp);
- if (err) {
- dev_err(cryp->dev, "Timeout (gcm header)\n");
- return stm32_cryp_finish_req(cryp, err);
- }
-
- if (stm32_cryp_get_input_text_len(cryp)) {
- /* Phase 3 : payload */
- cfg = stm32_cryp_read(cryp, CRYP_CR);
- cfg &= ~CR_CRYPEN;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
-
- cfg &= ~CR_PH_MASK;
- cfg |= CR_PH_PAYLOAD;
- cfg |= CR_CRYPEN;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
- } else {
- /* Phase 4 : tag */
- stm32_cryp_write(cryp, CRYP_IMSCR, 0);
- stm32_cryp_finish_req(cryp, 0);
- }
-
- break;
- }
-
- if (!cryp->total_in)
- break;
- }
-}
+ unsigned int i;
+ u32 block[AES_BLOCK_32] = {0};
+ size_t written;
-static void stm32_cryp_irq_write_ccm_header(struct stm32_cryp *cryp)
-{
- int err;
- unsigned int i = 0, j, k;
- u32 alen, cfg, *src;
- u8 d8[4];
-
- src = sg_virt(cryp->in_sg) + _walked_in;
- alen = cryp->areq->assoclen;
-
- if (!_walked_in) {
- if (cryp->areq->assoclen <= 65280) {
- /* Write first u32 of B1 */
- d8[0] = (alen >> 8) & 0xFF;
- d8[1] = alen & 0xFF;
- d8[2] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
- d8[3] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
-
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
- i++;
-
- cryp->total_in -= min_t(size_t, 2, cryp->total_in);
- } else {
- /* Build the two first u32 of B1 */
- d8[0] = 0xFF;
- d8[1] = 0xFE;
- d8[2] = alen & 0xFF000000;
- d8[3] = alen & 0x00FF0000;
-
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
- i++;
-
- d8[0] = alen & 0x0000FF00;
- d8[1] = alen & 0x000000FF;
- d8[2] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
- d8[3] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
-
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
- i++;
-
- cryp->total_in -= min_t(size_t, 2, cryp->total_in);
- }
- }
+ written = min_t(size_t, AES_BLOCK_SIZE, cryp->header_in);
- /* Write next u32 */
- for (; i < AES_BLOCK_32; i++) {
- /* Build an u32 */
- memset(d8, 0, sizeof(u32));
- for (k = 0; k < sizeof(u32); k++) {
- d8[k] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
-
- cryp->total_in -= min_t(size_t, 1, cryp->total_in);
- if ((cryp->total_in_save - cryp->total_in) == alen)
- break;
- }
+ scatterwalk_copychunks(block, &cryp->in_walk, written, 0);
+ for (i = 0; i < AES_BLOCK_32; i++)
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
-
- if ((cryp->total_in_save - cryp->total_in) == alen) {
- /* Write padding if needed */
- for (j = i + 1; j < AES_BLOCK_32; j++)
- stm32_cryp_write(cryp, CRYP_DIN, 0);
-
- /* Wait for completion */
- err = stm32_cryp_wait_busy(cryp);
- if (err) {
- dev_err(cryp->dev, "Timeout (ccm header)\n");
- return stm32_cryp_finish_req(cryp, err);
- }
-
- if (stm32_cryp_get_input_text_len(cryp)) {
- /* Phase 3 : payload */
- cfg = stm32_cryp_read(cryp, CRYP_CR);
- cfg &= ~CR_CRYPEN;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
-
- cfg &= ~CR_PH_MASK;
- cfg |= CR_PH_PAYLOAD;
- cfg |= CR_CRYPEN;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
- } else {
- /* Phase 4 : tag */
- stm32_cryp_write(cryp, CRYP_IMSCR, 0);
- stm32_cryp_finish_req(cryp, 0);
- }
+ cryp->header_in -= written;
- break;
- }
- }
+ stm32_crypt_gcmccm_end_header(cryp);
}
static irqreturn_t stm32_cryp_irq_thread(int irq, void *arg)
{
struct stm32_cryp *cryp = arg;
u32 ph;
+ u32 it_mask = stm32_cryp_read(cryp, CRYP_IMSCR);
if (cryp->irq_status & MISR_OUT)
/* Output FIFO IRQ: read data */
- if (unlikely(stm32_cryp_irq_read_data(cryp))) {
- /* All bytes processed, finish */
- stm32_cryp_write(cryp, CRYP_IMSCR, 0);
- stm32_cryp_finish_req(cryp, 0);
- return IRQ_HANDLED;
- }
+ stm32_cryp_irq_read_data(cryp);
if (cryp->irq_status & MISR_IN) {
- if (is_gcm(cryp)) {
+ if (is_gcm(cryp) || is_ccm(cryp)) {
ph = stm32_cryp_read(cryp, CRYP_CR) & CR_PH_MASK;
if (unlikely(ph == CR_PH_HEADER))
/* Write Header */
- stm32_cryp_irq_write_gcm_header(cryp);
- else
- /* Input FIFO IRQ: write data */
- stm32_cryp_irq_write_data(cryp);
- cryp->gcm_ctr++;
- } else if (is_ccm(cryp)) {
- ph = stm32_cryp_read(cryp, CRYP_CR) & CR_PH_MASK;
- if (unlikely(ph == CR_PH_HEADER))
- /* Write Header */
- stm32_cryp_irq_write_ccm_header(cryp);
+ stm32_cryp_irq_write_gcmccm_header(cryp);
else
/* Input FIFO IRQ: write data */
stm32_cryp_irq_write_data(cryp);
+ if (is_gcm(cryp))
+ cryp->gcm_ctr++;
} else {
/* Input FIFO IRQ: write data */
stm32_cryp_irq_write_data(cryp);
}
}
+ /* Mask useless interrupts */
+ if (!cryp->payload_in && !cryp->header_in)
+ it_mask &= ~IMSCR_IN;
+ if (!cryp->payload_out)
+ it_mask &= ~IMSCR_OUT;
+ stm32_cryp_write(cryp, CRYP_IMSCR, it_mask);
+
+ if (!cryp->payload_in && !cryp->header_in && !cryp->payload_out)
+ stm32_cryp_finish_req(cryp, 0);
+
return IRQ_HANDLED;
}
@@ -1742,7 +1548,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = AES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1759,7 +1565,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = AES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1777,7 +1583,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = 1,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1795,7 +1601,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = DES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1812,7 +1618,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = DES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1830,7 +1636,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = DES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1847,7 +1653,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = DES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1877,7 +1683,7 @@ static struct aead_alg aead_algs[] = {
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = 1,
.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .cra_alignmask = 0xf,
+ .cra_alignmask = 0,
.cra_module = THIS_MODULE,
},
},
@@ -1897,7 +1703,7 @@ static struct aead_alg aead_algs[] = {
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = 1,
.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .cra_alignmask = 0xf,
+ .cra_alignmask = 0,
.cra_module = THIS_MODULE,
},
},
@@ -2025,8 +1831,6 @@ static int stm32_cryp_probe(struct platform_device *pdev)
list_del(&cryp->list);
spin_unlock(&cryp_list.lock);
- pm_runtime_disable(dev);
- pm_runtime_put_noidle(dev);
pm_runtime_disable(dev);
pm_runtime_put_noidle(dev);
diff --git a/drivers/crypto/stm32/stm32-hash.c b/drivers/crypto/stm32/stm32-hash.c
index 389de9e3302d..d33006d43f76 100644
--- a/drivers/crypto/stm32/stm32-hash.c
+++ b/drivers/crypto/stm32/stm32-hash.c
@@ -813,7 +813,7 @@ static void stm32_hash_finish_req(struct ahash_request *req, int err)
static int stm32_hash_hw_init(struct stm32_hash_dev *hdev,
struct stm32_hash_request_ctx *rctx)
{
- pm_runtime_resume_and_get(hdev->dev);
+ pm_runtime_get_sync(hdev->dev);
if (!(HASH_FLAGS_INIT & hdev->flags)) {
stm32_hash_write(hdev, HASH_CR, HASH_CR_INIT);
@@ -962,7 +962,7 @@ static int stm32_hash_export(struct ahash_request *req, void *out)
u32 *preg;
unsigned int i;
- pm_runtime_resume_and_get(hdev->dev);
+ pm_runtime_get_sync(hdev->dev);
while ((stm32_hash_read(hdev, HASH_SR) & HASH_SR_BUSY))
cpu_relax();
@@ -1000,7 +1000,7 @@ static int stm32_hash_import(struct ahash_request *req, const void *in)
preg = rctx->hw_context;
- pm_runtime_resume_and_get(hdev->dev);
+ pm_runtime_get_sync(hdev->dev);
stm32_hash_write(hdev, HASH_IMR, *preg++);
stm32_hash_write(hdev, HASH_STR, *preg++);
diff --git a/drivers/cxl/pmem.c b/drivers/cxl/pmem.c
index 9652c3ee41e7..2bb2f9a0499f 100644
--- a/drivers/cxl/pmem.c
+++ b/drivers/cxl/pmem.c
@@ -149,14 +149,24 @@ static void cxl_nvb_update_state(struct work_struct *work)
put_device(&cxl_nvb->dev);
}
+static void cxl_nvdimm_bridge_state_work(struct cxl_nvdimm_bridge *cxl_nvb)
+{
+ /*
+ * Take a reference that the workqueue will drop if new work
+ * gets queued.
+ */
+ get_device(&cxl_nvb->dev);
+ if (!queue_work(cxl_pmem_wq, &cxl_nvb->state_work))
+ put_device(&cxl_nvb->dev);
+}
+
static void cxl_nvdimm_bridge_remove(struct device *dev)
{
struct cxl_nvdimm_bridge *cxl_nvb = to_cxl_nvdimm_bridge(dev);
if (cxl_nvb->state == CXL_NVB_ONLINE)
cxl_nvb->state = CXL_NVB_OFFLINE;
- if (queue_work(cxl_pmem_wq, &cxl_nvb->state_work))
- get_device(&cxl_nvb->dev);
+ cxl_nvdimm_bridge_state_work(cxl_nvb);
}
static int cxl_nvdimm_bridge_probe(struct device *dev)
@@ -177,8 +187,7 @@ static int cxl_nvdimm_bridge_probe(struct device *dev)
}
cxl_nvb->state = CXL_NVB_ONLINE;
- if (queue_work(cxl_pmem_wq, &cxl_nvb->state_work))
- get_device(&cxl_nvb->dev);
+ cxl_nvdimm_bridge_state_work(cxl_nvb);
return 0;
}
diff --git a/drivers/dma-buf/dma-fence-array.c b/drivers/dma-buf/dma-fence-array.c
index d3fbd950be94..3e07f961e2f3 100644
--- a/drivers/dma-buf/dma-fence-array.c
+++ b/drivers/dma-buf/dma-fence-array.c
@@ -104,7 +104,11 @@ static bool dma_fence_array_signaled(struct dma_fence *fence)
{
struct dma_fence_array *array = to_dma_fence_array(fence);
- return atomic_read(&array->num_pending) <= 0;
+ if (atomic_read(&array->num_pending) > 0)
+ return false;
+
+ dma_fence_array_clear_pending_error(array);
+ return true;
}
static void dma_fence_array_release(struct dma_fence *fence)
diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c
index e18abbd56fb5..8177aed16006 100644
--- a/drivers/dma/at_xdmac.c
+++ b/drivers/dma/at_xdmac.c
@@ -99,6 +99,7 @@
#define AT_XDMAC_CNDC_NDE (0x1 << 0) /* Channel x Next Descriptor Enable */
#define AT_XDMAC_CNDC_NDSUP (0x1 << 1) /* Channel x Next Descriptor Source Update */
#define AT_XDMAC_CNDC_NDDUP (0x1 << 2) /* Channel x Next Descriptor Destination Update */
+#define AT_XDMAC_CNDC_NDVIEW_MASK GENMASK(28, 27)
#define AT_XDMAC_CNDC_NDVIEW_NDV0 (0x0 << 3) /* Channel x Next Descriptor View 0 */
#define AT_XDMAC_CNDC_NDVIEW_NDV1 (0x1 << 3) /* Channel x Next Descriptor View 1 */
#define AT_XDMAC_CNDC_NDVIEW_NDV2 (0x2 << 3) /* Channel x Next Descriptor View 2 */
@@ -252,15 +253,15 @@ struct at_xdmac {
/* Linked List Descriptor */
struct at_xdmac_lld {
- dma_addr_t mbr_nda; /* Next Descriptor Member */
- u32 mbr_ubc; /* Microblock Control Member */
- dma_addr_t mbr_sa; /* Source Address Member */
- dma_addr_t mbr_da; /* Destination Address Member */
- u32 mbr_cfg; /* Configuration Register */
- u32 mbr_bc; /* Block Control Register */
- u32 mbr_ds; /* Data Stride Register */
- u32 mbr_sus; /* Source Microblock Stride Register */
- u32 mbr_dus; /* Destination Microblock Stride Register */
+ u32 mbr_nda; /* Next Descriptor Member */
+ u32 mbr_ubc; /* Microblock Control Member */
+ u32 mbr_sa; /* Source Address Member */
+ u32 mbr_da; /* Destination Address Member */
+ u32 mbr_cfg; /* Configuration Register */
+ u32 mbr_bc; /* Block Control Register */
+ u32 mbr_ds; /* Data Stride Register */
+ u32 mbr_sus; /* Source Microblock Stride Register */
+ u32 mbr_dus; /* Destination Microblock Stride Register */
};
/* 64-bit alignment needed to update CNDA and CUBC registers in an atomic way. */
@@ -385,9 +386,6 @@ static void at_xdmac_start_xfer(struct at_xdmac_chan *atchan,
dev_vdbg(chan2dev(&atchan->chan), "%s: desc 0x%p\n", __func__, first);
- if (at_xdmac_chan_is_enabled(atchan))
- return;
-
/* Set transfer as active to not try to start it again. */
first->active_xfer = true;
@@ -405,7 +403,8 @@ static void at_xdmac_start_xfer(struct at_xdmac_chan *atchan,
*/
if (at_xdmac_chan_is_cyclic(atchan))
reg = AT_XDMAC_CNDC_NDVIEW_NDV1;
- else if (first->lld.mbr_ubc & AT_XDMAC_MBR_UBC_NDV3)
+ else if ((first->lld.mbr_ubc &
+ AT_XDMAC_CNDC_NDVIEW_MASK) == AT_XDMAC_MBR_UBC_NDV3)
reg = AT_XDMAC_CNDC_NDVIEW_NDV3;
else
reg = AT_XDMAC_CNDC_NDVIEW_NDV2;
@@ -476,13 +475,12 @@ static dma_cookie_t at_xdmac_tx_submit(struct dma_async_tx_descriptor *tx)
spin_lock_irqsave(&atchan->lock, irqflags);
cookie = dma_cookie_assign(tx);
+ list_add_tail(&desc->xfer_node, &atchan->xfers_list);
+ spin_unlock_irqrestore(&atchan->lock, irqflags);
+
dev_vdbg(chan2dev(tx->chan), "%s: atchan 0x%p, add desc 0x%p to xfers_list\n",
__func__, atchan, desc);
- list_add_tail(&desc->xfer_node, &atchan->xfers_list);
- if (list_is_singular(&atchan->xfers_list))
- at_xdmac_start_xfer(atchan, desc);
- spin_unlock_irqrestore(&atchan->lock, irqflags);
return cookie;
}
@@ -1623,14 +1621,17 @@ static void at_xdmac_handle_cyclic(struct at_xdmac_chan *atchan)
struct at_xdmac_desc *desc;
struct dma_async_tx_descriptor *txd;
- if (!list_empty(&atchan->xfers_list)) {
- desc = list_first_entry(&atchan->xfers_list,
- struct at_xdmac_desc, xfer_node);
- txd = &desc->tx_dma_desc;
-
- if (txd->flags & DMA_PREP_INTERRUPT)
- dmaengine_desc_get_callback_invoke(txd, NULL);
+ spin_lock_irq(&atchan->lock);
+ if (list_empty(&atchan->xfers_list)) {
+ spin_unlock_irq(&atchan->lock);
+ return;
}
+ desc = list_first_entry(&atchan->xfers_list, struct at_xdmac_desc,
+ xfer_node);
+ spin_unlock_irq(&atchan->lock);
+ txd = &desc->tx_dma_desc;
+ if (txd->flags & DMA_PREP_INTERRUPT)
+ dmaengine_desc_get_callback_invoke(txd, NULL);
}
static void at_xdmac_handle_error(struct at_xdmac_chan *atchan)
@@ -1784,11 +1785,9 @@ static void at_xdmac_issue_pending(struct dma_chan *chan)
dev_dbg(chan2dev(&atchan->chan), "%s\n", __func__);
- if (!at_xdmac_chan_is_cyclic(atchan)) {
- spin_lock_irqsave(&atchan->lock, flags);
- at_xdmac_advance_work(atchan);
- spin_unlock_irqrestore(&atchan->lock, flags);
- }
+ spin_lock_irqsave(&atchan->lock, flags);
+ at_xdmac_advance_work(atchan);
+ spin_unlock_irqrestore(&atchan->lock, flags);
return;
}
diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c
index 419b206f8a42..b468ca36d3a0 100644
--- a/drivers/dma/idxd/device.c
+++ b/drivers/dma/idxd/device.c
@@ -394,8 +394,6 @@ static void idxd_wq_disable_cleanup(struct idxd_wq *wq)
lockdep_assert_held(&wq->wq_lock);
memset(wq->wqcfg, 0, idxd->wqcfg_size);
wq->type = IDXD_WQT_NONE;
- wq->size = 0;
- wq->group = NULL;
wq->threshold = 0;
wq->priority = 0;
wq->ats_dis = 0;
@@ -404,6 +402,15 @@ static void idxd_wq_disable_cleanup(struct idxd_wq *wq)
memset(wq->name, 0, WQ_NAME_SIZE);
}
+static void idxd_wq_device_reset_cleanup(struct idxd_wq *wq)
+{
+ lockdep_assert_held(&wq->wq_lock);
+
+ idxd_wq_disable_cleanup(wq);
+ wq->size = 0;
+ wq->group = NULL;
+}
+
static void idxd_wq_ref_release(struct percpu_ref *ref)
{
struct idxd_wq *wq = container_of(ref, struct idxd_wq, wq_active);
@@ -711,6 +718,7 @@ static void idxd_device_wqs_clear_state(struct idxd_device *idxd)
if (wq->state == IDXD_WQ_ENABLED) {
idxd_wq_disable_cleanup(wq);
+ idxd_wq_device_reset_cleanup(wq);
wq->state = IDXD_WQ_DISABLED;
}
}
diff --git a/drivers/dma/mmp_pdma.c b/drivers/dma/mmp_pdma.c
index 89f1814ff27a..26d11885c50e 100644
--- a/drivers/dma/mmp_pdma.c
+++ b/drivers/dma/mmp_pdma.c
@@ -727,12 +727,6 @@ static int mmp_pdma_config_write(struct dma_chan *dchan,
chan->dir = direction;
chan->dev_addr = addr;
- /* FIXME: drivers should be ported over to use the filter
- * function. Once that's done, the following two lines can
- * be removed.
- */
- if (cfg->slave_id)
- chan->drcmr = cfg->slave_id;
return 0;
}
diff --git a/drivers/dma/pxa_dma.c b/drivers/dma/pxa_dma.c
index 4a2a796e348c..aa6e552249ab 100644
--- a/drivers/dma/pxa_dma.c
+++ b/drivers/dma/pxa_dma.c
@@ -910,13 +910,6 @@ static void pxad_get_config(struct pxad_chan *chan,
*dcmd |= PXA_DCMD_BURST16;
else if (maxburst == 32)
*dcmd |= PXA_DCMD_BURST32;
-
- /* FIXME: drivers should be ported over to use the filter
- * function. Once that's done, the following two lines can
- * be removed.
- */
- if (chan->cfg.slave_id)
- chan->drcmr = chan->cfg.slave_id;
}
static struct dma_async_tx_descriptor *
diff --git a/drivers/dma/stm32-mdma.c b/drivers/dma/stm32-mdma.c
index 18cbd1e43c2e..f17a9ffcd00d 100644
--- a/drivers/dma/stm32-mdma.c
+++ b/drivers/dma/stm32-mdma.c
@@ -184,7 +184,7 @@
#define STM32_MDMA_CTBR(x) (0x68 + 0x40 * (x))
#define STM32_MDMA_CTBR_DBUS BIT(17)
#define STM32_MDMA_CTBR_SBUS BIT(16)
-#define STM32_MDMA_CTBR_TSEL_MASK GENMASK(7, 0)
+#define STM32_MDMA_CTBR_TSEL_MASK GENMASK(5, 0)
#define STM32_MDMA_CTBR_TSEL(n) STM32_MDMA_SET(n, \
STM32_MDMA_CTBR_TSEL_MASK)
diff --git a/drivers/dma/uniphier-xdmac.c b/drivers/dma/uniphier-xdmac.c
index d6b8a202474f..290836b7e1be 100644
--- a/drivers/dma/uniphier-xdmac.c
+++ b/drivers/dma/uniphier-xdmac.c
@@ -131,8 +131,9 @@ uniphier_xdmac_next_desc(struct uniphier_xdmac_chan *xc)
static void uniphier_xdmac_chan_start(struct uniphier_xdmac_chan *xc,
struct uniphier_xdmac_desc *xd)
{
- u32 src_mode, src_addr, src_width;
- u32 dst_mode, dst_addr, dst_width;
+ u32 src_mode, src_width;
+ u32 dst_mode, dst_width;
+ dma_addr_t src_addr, dst_addr;
u32 val, its, tnum;
enum dma_slave_buswidth buswidth;
diff --git a/drivers/edac/synopsys_edac.c b/drivers/edac/synopsys_edac.c
index 7d08627e738b..a5486d86fdd2 100644
--- a/drivers/edac/synopsys_edac.c
+++ b/drivers/edac/synopsys_edac.c
@@ -1352,8 +1352,7 @@ static int mc_probe(struct platform_device *pdev)
}
}
- if (of_device_is_compatible(pdev->dev.of_node,
- "xlnx,zynqmp-ddrc-2.40a"))
+ if (priv->p_data->quirks & DDR_ECC_INTR_SUPPORT)
setup_address_map(priv);
#endif
diff --git a/drivers/firmware/efi/efi-init.c b/drivers/firmware/efi/efi-init.c
index b19ce1a83f91..b2c829e95bd1 100644
--- a/drivers/firmware/efi/efi-init.c
+++ b/drivers/firmware/efi/efi-init.c
@@ -235,6 +235,11 @@ void __init efi_init(void)
}
reserve_regions();
+ /*
+ * For memblock manipulation, the cap should come after the memblock_add().
+ * And now, memblock is fully populated, it is time to do capping.
+ */
+ early_init_dt_check_for_usable_mem_range();
efi_esrt_init();
efi_mokvar_table_init();
diff --git a/drivers/firmware/google/Kconfig b/drivers/firmware/google/Kconfig
index 97968aece54f..931544c9f63d 100644
--- a/drivers/firmware/google/Kconfig
+++ b/drivers/firmware/google/Kconfig
@@ -3,9 +3,9 @@ menuconfig GOOGLE_FIRMWARE
bool "Google Firmware Drivers"
default n
help
- These firmware drivers are used by Google's servers. They are
- only useful if you are working directly on one of their
- proprietary servers. If in doubt, say "N".
+ These firmware drivers are used by Google servers,
+ Chromebooks and other devices using coreboot firmware.
+ If in doubt, say "N".
if GOOGLE_FIRMWARE
diff --git a/drivers/firmware/sysfb_simplefb.c b/drivers/firmware/sysfb_simplefb.c
index b86761904949..303a491e520d 100644
--- a/drivers/firmware/sysfb_simplefb.c
+++ b/drivers/firmware/sysfb_simplefb.c
@@ -113,12 +113,16 @@ __init int sysfb_create_simplefb(const struct screen_info *si,
sysfb_apply_efi_quirks(pd);
ret = platform_device_add_resources(pd, &res, 1);
- if (ret)
+ if (ret) {
+ platform_device_put(pd);
return ret;
+ }
ret = platform_device_add_data(pd, mode, sizeof(*mode));
- if (ret)
+ if (ret) {
+ platform_device_put(pd);
return ret;
+ }
return platform_device_add(pd);
}
diff --git a/drivers/gpio/gpio-aspeed-sgpio.c b/drivers/gpio/gpio-aspeed-sgpio.c
index b3a9b8488f11..454cefbeecf0 100644
--- a/drivers/gpio/gpio-aspeed-sgpio.c
+++ b/drivers/gpio/gpio-aspeed-sgpio.c
@@ -31,7 +31,7 @@ struct aspeed_sgpio {
struct gpio_chip chip;
struct irq_chip intc;
struct clk *pclk;
- spinlock_t lock;
+ raw_spinlock_t lock;
void __iomem *base;
int irq;
};
@@ -173,12 +173,12 @@ static int aspeed_sgpio_get(struct gpio_chip *gc, unsigned int offset)
enum aspeed_sgpio_reg reg;
int rc = 0;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
reg = aspeed_sgpio_is_input(offset) ? reg_val : reg_rdata;
rc = !!(ioread32(bank_reg(gpio, bank, reg)) & GPIO_BIT(offset));
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
@@ -215,11 +215,11 @@ static void aspeed_sgpio_set(struct gpio_chip *gc, unsigned int offset, int val)
struct aspeed_sgpio *gpio = gpiochip_get_data(gc);
unsigned long flags;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
sgpio_set_value(gc, offset, val);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static int aspeed_sgpio_dir_in(struct gpio_chip *gc, unsigned int offset)
@@ -236,9 +236,9 @@ static int aspeed_sgpio_dir_out(struct gpio_chip *gc, unsigned int offset, int v
/* No special action is required for setting the direction; we'll
* error-out in sgpio_set_value if this isn't an output GPIO */
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
rc = sgpio_set_value(gc, offset, val);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
@@ -277,11 +277,11 @@ static void aspeed_sgpio_irq_ack(struct irq_data *d)
status_addr = bank_reg(gpio, bank, reg_irq_status);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
iowrite32(bit, status_addr);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static void aspeed_sgpio_irq_set_mask(struct irq_data *d, bool set)
@@ -296,7 +296,7 @@ static void aspeed_sgpio_irq_set_mask(struct irq_data *d, bool set)
irqd_to_aspeed_sgpio_data(d, &gpio, &bank, &bit, &offset);
addr = bank_reg(gpio, bank, reg_irq_enable);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
reg = ioread32(addr);
if (set)
@@ -306,7 +306,7 @@ static void aspeed_sgpio_irq_set_mask(struct irq_data *d, bool set)
iowrite32(reg, addr);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static void aspeed_sgpio_irq_mask(struct irq_data *d)
@@ -355,7 +355,7 @@ static int aspeed_sgpio_set_type(struct irq_data *d, unsigned int type)
return -EINVAL;
}
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
addr = bank_reg(gpio, bank, reg_irq_type0);
reg = ioread32(addr);
@@ -372,7 +372,7 @@ static int aspeed_sgpio_set_type(struct irq_data *d, unsigned int type)
reg = (reg & ~bit) | type2;
iowrite32(reg, addr);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
irq_set_handler_locked(d, handler);
@@ -467,7 +467,7 @@ static int aspeed_sgpio_reset_tolerance(struct gpio_chip *chip,
reg = bank_reg(gpio, to_bank(offset), reg_tolerance);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
val = readl(reg);
@@ -478,7 +478,7 @@ static int aspeed_sgpio_reset_tolerance(struct gpio_chip *chip,
writel(val, reg);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return 0;
}
@@ -575,7 +575,7 @@ static int __init aspeed_sgpio_probe(struct platform_device *pdev)
iowrite32(FIELD_PREP(ASPEED_SGPIO_CLK_DIV_MASK, sgpio_clk_div) | gpio_cnt_regval |
ASPEED_SGPIO_ENABLE, gpio->base + ASPEED_SGPIO_CTRL);
- spin_lock_init(&gpio->lock);
+ raw_spin_lock_init(&gpio->lock);
gpio->chip.parent = &pdev->dev;
gpio->chip.ngpio = nr_gpios * 2;
diff --git a/drivers/gpio/gpio-aspeed.c b/drivers/gpio/gpio-aspeed.c
index 3c8f20c57695..318a7d95a1a8 100644
--- a/drivers/gpio/gpio-aspeed.c
+++ b/drivers/gpio/gpio-aspeed.c
@@ -53,7 +53,7 @@ struct aspeed_gpio_config {
struct aspeed_gpio {
struct gpio_chip chip;
struct irq_chip irqc;
- spinlock_t lock;
+ raw_spinlock_t lock;
void __iomem *base;
int irq;
const struct aspeed_gpio_config *config;
@@ -413,14 +413,14 @@ static void aspeed_gpio_set(struct gpio_chip *gc, unsigned int offset,
unsigned long flags;
bool copro;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
__aspeed_gpio_set(gc, offset, val);
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset)
@@ -435,7 +435,7 @@ static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset)
if (!have_input(gpio, offset))
return -ENOTSUPP;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
reg = ioread32(addr);
reg &= ~GPIO_BIT(offset);
@@ -445,7 +445,7 @@ static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset)
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return 0;
}
@@ -463,7 +463,7 @@ static int aspeed_gpio_dir_out(struct gpio_chip *gc,
if (!have_output(gpio, offset))
return -ENOTSUPP;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
reg = ioread32(addr);
reg |= GPIO_BIT(offset);
@@ -474,7 +474,7 @@ static int aspeed_gpio_dir_out(struct gpio_chip *gc,
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return 0;
}
@@ -492,11 +492,11 @@ static int aspeed_gpio_get_direction(struct gpio_chip *gc, unsigned int offset)
if (!have_output(gpio, offset))
return GPIO_LINE_DIRECTION_IN;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
val = ioread32(bank_reg(gpio, bank, reg_dir)) & GPIO_BIT(offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return val ? GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN;
}
@@ -539,14 +539,14 @@ static void aspeed_gpio_irq_ack(struct irq_data *d)
status_addr = bank_reg(gpio, bank, reg_irq_status);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
iowrite32(bit, status_addr);
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static void aspeed_gpio_irq_set_mask(struct irq_data *d, bool set)
@@ -565,7 +565,7 @@ static void aspeed_gpio_irq_set_mask(struct irq_data *d, bool set)
addr = bank_reg(gpio, bank, reg_irq_enable);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
reg = ioread32(addr);
@@ -577,7 +577,7 @@ static void aspeed_gpio_irq_set_mask(struct irq_data *d, bool set)
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static void aspeed_gpio_irq_mask(struct irq_data *d)
@@ -629,7 +629,7 @@ static int aspeed_gpio_set_type(struct irq_data *d, unsigned int type)
return -EINVAL;
}
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
addr = bank_reg(gpio, bank, reg_irq_type0);
@@ -649,7 +649,7 @@ static int aspeed_gpio_set_type(struct irq_data *d, unsigned int type)
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
irq_set_handler_locked(d, handler);
@@ -716,7 +716,7 @@ static int aspeed_gpio_reset_tolerance(struct gpio_chip *chip,
treg = bank_reg(gpio, to_bank(offset), reg_tolerance);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
val = readl(treg);
@@ -730,7 +730,7 @@ static int aspeed_gpio_reset_tolerance(struct gpio_chip *chip,
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return 0;
}
@@ -856,7 +856,7 @@ static int enable_debounce(struct gpio_chip *chip, unsigned int offset,
return rc;
}
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
if (timer_allocation_registered(gpio, offset)) {
rc = unregister_allocated_timer(gpio, offset);
@@ -916,7 +916,7 @@ static int enable_debounce(struct gpio_chip *chip, unsigned int offset,
configure_timer(gpio, offset, i);
out:
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
@@ -927,13 +927,13 @@ static int disable_debounce(struct gpio_chip *chip, unsigned int offset)
unsigned long flags;
int rc;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
rc = unregister_allocated_timer(gpio, offset);
if (!rc)
configure_timer(gpio, offset, 0);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
@@ -1015,7 +1015,7 @@ int aspeed_gpio_copro_grab_gpio(struct gpio_desc *desc,
return -EINVAL;
bindex = offset >> 3;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
/* Sanity check, this shouldn't happen */
if (gpio->cf_copro_bankmap[bindex] == 0xff) {
@@ -1036,7 +1036,7 @@ int aspeed_gpio_copro_grab_gpio(struct gpio_desc *desc,
if (bit)
*bit = GPIO_OFFSET(offset);
bail:
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
EXPORT_SYMBOL_GPL(aspeed_gpio_copro_grab_gpio);
@@ -1060,7 +1060,7 @@ int aspeed_gpio_copro_release_gpio(struct gpio_desc *desc)
return -EINVAL;
bindex = offset >> 3;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
/* Sanity check, this shouldn't happen */
if (gpio->cf_copro_bankmap[bindex] == 0) {
@@ -1074,7 +1074,7 @@ int aspeed_gpio_copro_release_gpio(struct gpio_desc *desc)
aspeed_gpio_change_cmd_source(gpio, bank, bindex,
GPIO_CMDSRC_ARM);
bail:
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
EXPORT_SYMBOL_GPL(aspeed_gpio_copro_release_gpio);
@@ -1148,7 +1148,7 @@ static int __init aspeed_gpio_probe(struct platform_device *pdev)
if (IS_ERR(gpio->base))
return PTR_ERR(gpio->base);
- spin_lock_init(&gpio->lock);
+ raw_spin_lock_init(&gpio->lock);
gpio_id = of_match_node(aspeed_gpio_of_table, pdev->dev.of_node);
if (!gpio_id)
diff --git a/drivers/gpio/gpio-idt3243x.c b/drivers/gpio/gpio-idt3243x.c
index 50003ad2e589..08493b05be2d 100644
--- a/drivers/gpio/gpio-idt3243x.c
+++ b/drivers/gpio/gpio-idt3243x.c
@@ -164,8 +164,8 @@ static int idt_gpio_probe(struct platform_device *pdev)
return PTR_ERR(ctrl->pic);
parent_irq = platform_get_irq(pdev, 0);
- if (!parent_irq)
- return -EINVAL;
+ if (parent_irq < 0)
+ return parent_irq;
girq = &ctrl->gc.irq;
girq->chip = &idt_gpio_irqchip;
diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c
index 70d6ae20b1da..01634c8d27b3 100644
--- a/drivers/gpio/gpio-mpc8xxx.c
+++ b/drivers/gpio/gpio-mpc8xxx.c
@@ -388,8 +388,8 @@ static int mpc8xxx_probe(struct platform_device *pdev)
}
mpc8xxx_gc->irqn = platform_get_irq(pdev, 0);
- if (!mpc8xxx_gc->irqn)
- return 0;
+ if (mpc8xxx_gc->irqn < 0)
+ return mpc8xxx_gc->irqn;
mpc8xxx_gc->irq = irq_domain_create_linear(fwnode,
MPC8XXX_GPIO_PINS,
diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
index 47712b6903b5..d040c72fea58 100644
--- a/drivers/gpio/gpiolib-acpi.c
+++ b/drivers/gpio/gpiolib-acpi.c
@@ -1059,10 +1059,17 @@ int acpi_dev_gpio_irq_get_by(struct acpi_device *adev, const char *name, int ind
irq_flags = acpi_dev_get_irq_type(info.triggering,
info.polarity);
- /* Set type if specified and different than the current one */
- if (irq_flags != IRQ_TYPE_NONE &&
- irq_flags != irq_get_trigger_type(irq))
- irq_set_irq_type(irq, irq_flags);
+ /*
+ * If the IRQ is not already in use then set type
+ * if specified and different than the current one.
+ */
+ if (can_request_irq(irq, irq_flags)) {
+ if (irq_flags != IRQ_TYPE_NONE &&
+ irq_flags != irq_get_trigger_type(irq))
+ irq_set_irq_type(irq, irq_flags);
+ } else {
+ dev_dbg(&adev->dev, "IRQ %d already in use\n", irq);
+ }
return irq;
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
index 0de66f59adb8..df1f9b88a53f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
@@ -387,6 +387,9 @@ amdgpu_connector_lcd_native_mode(struct drm_encoder *encoder)
native_mode->vdisplay != 0 &&
native_mode->clock != 0) {
mode = drm_mode_duplicate(dev, native_mode);
+ if (!mode)
+ return NULL;
+
mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
drm_mode_set_name(mode);
@@ -401,6 +404,9 @@ amdgpu_connector_lcd_native_mode(struct drm_encoder *encoder)
* simpler.
*/
mode = drm_cvt_mode(dev, native_mode->hdisplay, native_mode->vdisplay, 60, true, false, false);
+ if (!mode)
+ return NULL;
+
mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
DRM_DEBUG_KMS("Adding cvt approximation of native panel mode %s\n", mode->name);
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
index cc2e0c9cfe0a..4f3c62adccbd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
@@ -333,7 +333,6 @@ int amdgpu_irq_init(struct amdgpu_device *adev)
if (!amdgpu_device_has_dc_support(adev)) {
if (!adev->enable_virtual_display)
/* Disable vblank IRQs aggressively for power-saving */
- /* XXX: can this be enabled for DC? */
adev_to_drm(adev)->vblank_disable_immediate = true;
r = drm_vblank_init(adev_to_drm(adev), adev->mode_info.num_crtc);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index 9b41cb8c3de5..86e2090bbd6e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -2207,12 +2207,16 @@ static int psp_hw_start(struct psp_context *psp)
return ret;
}
+ if (amdgpu_sriov_vf(adev) && amdgpu_in_reset(adev))
+ goto skip_pin_bo;
+
ret = psp_tmr_init(psp);
if (ret) {
DRM_ERROR("PSP tmr init failed!\n");
return ret;
}
+skip_pin_bo:
/*
* For ASICs with DF Cstate management centralized
* to PMFW, TMR setup should be performed after PMFW
diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c
index 54f28c075f21..f10ce740a29c 100644
--- a/drivers/gpu/drm/amd/amdgpu/cik.c
+++ b/drivers/gpu/drm/amd/amdgpu/cik.c
@@ -1428,6 +1428,10 @@ static int cik_asic_reset(struct amdgpu_device *adev)
{
int r;
+ /* APUs don't have full asic reset */
+ if (adev->flags & AMD_IS_APU)
+ return 0;
+
if (cik_asic_reset_method(adev) == AMD_RESET_METHOD_BACO) {
dev_info(adev->dev, "BACO reset\n");
r = amdgpu_dpm_baco_reset(adev);
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
index e47104a1f559..3c01be661014 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
@@ -1021,10 +1021,14 @@ static int gmc_v10_0_gart_enable(struct amdgpu_device *adev)
return -EINVAL;
}
+ if (amdgpu_sriov_vf(adev) && amdgpu_in_reset(adev))
+ goto skip_pin_bo;
+
r = amdgpu_gart_table_vram_pin(adev);
if (r)
return r;
+skip_pin_bo:
r = adev->gfxhub.funcs->gart_enable(adev);
if (r)
return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
index 492ebed2915b..63b890f1e8af 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
@@ -515,10 +515,10 @@ static void gmc_v8_0_mc_program(struct amdgpu_device *adev)
static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
{
int r;
+ u32 tmp;
adev->gmc.vram_width = amdgpu_atombios_get_vram_width(adev);
if (!adev->gmc.vram_width) {
- u32 tmp;
int chansize, numchan;
/* Get VRAM informations */
@@ -562,8 +562,15 @@ static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
adev->gmc.vram_width = numchan * chansize;
}
/* size in MB on si */
- adev->gmc.mc_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
- adev->gmc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
+ tmp = RREG32(mmCONFIG_MEMSIZE);
+ /* some boards may have garbage in the upper 16 bits */
+ if (tmp & 0xffff0000) {
+ DRM_INFO("Probable bad vram size: 0x%08x\n", tmp);
+ if (tmp & 0xffff)
+ tmp &= 0xffff;
+ }
+ adev->gmc.mc_vram_size = tmp * 1024ULL * 1024ULL;
+ adev->gmc.real_vram_size = adev->gmc.mc_vram_size;
if (!(adev->flags & AMD_IS_APU)) {
r = amdgpu_device_resize_fb_bar(adev);
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
index 5551359d5dfd..b5d93247237b 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
@@ -1708,10 +1708,14 @@ static int gmc_v9_0_gart_enable(struct amdgpu_device *adev)
return -EINVAL;
}
+ if (amdgpu_sriov_vf(adev) && amdgpu_in_reset(adev))
+ goto skip_pin_bo;
+
r = amdgpu_gart_table_vram_pin(adev);
if (r)
return r;
+skip_pin_bo:
r = adev->gfxhub.funcs->gart_enable(adev);
if (r)
return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c
index fe9a7cc8d9eb..6645ebbd2696 100644
--- a/drivers/gpu/drm/amd/amdgpu/vi.c
+++ b/drivers/gpu/drm/amd/amdgpu/vi.c
@@ -956,6 +956,10 @@ static int vi_asic_reset(struct amdgpu_device *adev)
{
int r;
+ /* APUs don't have full asic reset */
+ if (adev->flags & AMD_IS_APU)
+ return 0;
+
if (vi_asic_reset_method(adev) == AMD_RESET_METHOD_BACO) {
dev_info(adev->dev, "BACO reset\n");
r = amdgpu_dpm_baco_reset(adev);
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
index 5a674235ae41..830809b694dd 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
@@ -936,7 +936,7 @@ svm_range_split(struct svm_range *prange, uint64_t start, uint64_t last,
}
static int
-svm_range_split_tail(struct svm_range *prange, struct svm_range *new,
+svm_range_split_tail(struct svm_range *prange,
uint64_t new_last, struct list_head *insert_list)
{
struct svm_range *tail;
@@ -948,7 +948,7 @@ svm_range_split_tail(struct svm_range *prange, struct svm_range *new,
}
static int
-svm_range_split_head(struct svm_range *prange, struct svm_range *new,
+svm_range_split_head(struct svm_range *prange,
uint64_t new_start, struct list_head *insert_list)
{
struct svm_range *head;
@@ -1755,49 +1755,54 @@ static struct svm_range *svm_range_clone(struct svm_range *old)
}
/**
- * svm_range_handle_overlap - split overlap ranges
- * @svms: svm range list header
- * @new: range added with this attributes
- * @start: range added start address, in pages
- * @last: range last address, in pages
- * @update_list: output, the ranges attributes are updated. For set_attr, this
- * will do validation and map to GPUs. For unmap, this will be
- * removed and unmap from GPUs
- * @insert_list: output, the ranges will be inserted into svms, attributes are
- * not changes. For set_attr, this will add into svms.
- * @remove_list:output, the ranges will be removed from svms
- * @left: the remaining range after overlap, For set_attr, this will be added
- * as new range.
+ * svm_range_add - add svm range and handle overlap
+ * @p: the range add to this process svms
+ * @start: page size aligned
+ * @size: page size aligned
+ * @nattr: number of attributes
+ * @attrs: array of attributes
+ * @update_list: output, the ranges need validate and update GPU mapping
+ * @insert_list: output, the ranges need insert to svms
+ * @remove_list: output, the ranges are replaced and need remove from svms
*
- * Total have 5 overlap cases.
+ * Check if the virtual address range has overlap with any existing ranges,
+ * split partly overlapping ranges and add new ranges in the gaps. All changes
+ * should be applied to the range_list and interval tree transactionally. If
+ * any range split or allocation fails, the entire update fails. Therefore any
+ * existing overlapping svm_ranges are cloned and the original svm_ranges left
+ * unchanged.
*
- * This function handles overlap of an address interval with existing
- * struct svm_ranges for applying new attributes. This may require
- * splitting existing struct svm_ranges. All changes should be applied to
- * the range_list and interval tree transactionally. If any split operation
- * fails, the entire update fails. Therefore the existing overlapping
- * svm_ranges are cloned and the original svm_ranges left unchanged. If the
- * transaction succeeds, the modified clones are added and the originals
- * freed. Otherwise the clones are removed and the old svm_ranges remain.
+ * If the transaction succeeds, the caller can update and insert clones and
+ * new ranges, then free the originals.
*
- * Context: The caller must hold svms->lock
+ * Otherwise the caller can free the clones and new ranges, while the old
+ * svm_ranges remain unchanged.
+ *
+ * Context: Process context, caller must hold svms->lock
+ *
+ * Return:
+ * 0 - OK, otherwise error code
*/
static int
-svm_range_handle_overlap(struct svm_range_list *svms, struct svm_range *new,
- unsigned long start, unsigned long last,
- struct list_head *update_list,
- struct list_head *insert_list,
- struct list_head *remove_list,
- unsigned long *left)
+svm_range_add(struct kfd_process *p, uint64_t start, uint64_t size,
+ uint32_t nattr, struct kfd_ioctl_svm_attribute *attrs,
+ struct list_head *update_list, struct list_head *insert_list,
+ struct list_head *remove_list)
{
+ unsigned long last = start + size - 1UL;
+ struct svm_range_list *svms = &p->svms;
struct interval_tree_node *node;
+ struct svm_range new = {0};
struct svm_range *prange;
struct svm_range *tmp;
int r = 0;
+ pr_debug("svms 0x%p [0x%llx 0x%lx]\n", &p->svms, start, last);
+
INIT_LIST_HEAD(update_list);
INIT_LIST_HEAD(insert_list);
INIT_LIST_HEAD(remove_list);
+ svm_range_apply_attrs(p, &new, nattr, attrs);
node = interval_tree_iter_first(&svms->objects, start, last);
while (node) {
@@ -1825,14 +1830,14 @@ svm_range_handle_overlap(struct svm_range_list *svms, struct svm_range *new,
if (node->start < start) {
pr_debug("change old range start\n");
- r = svm_range_split_head(prange, new, start,
+ r = svm_range_split_head(prange, start,
insert_list);
if (r)
goto out;
}
if (node->last > last) {
pr_debug("change old range last\n");
- r = svm_range_split_tail(prange, new, last,
+ r = svm_range_split_tail(prange, last,
insert_list);
if (r)
goto out;
@@ -1844,7 +1849,7 @@ svm_range_handle_overlap(struct svm_range_list *svms, struct svm_range *new,
prange = old;
}
- if (!svm_range_is_same_attrs(prange, new))
+ if (!svm_range_is_same_attrs(prange, &new))
list_add(&prange->update_list, update_list);
/* insert a new node if needed */
@@ -1864,8 +1869,16 @@ svm_range_handle_overlap(struct svm_range_list *svms, struct svm_range *new,
start = next_start;
}
- if (left && start <= last)
- *left = last - start + 1;
+ /* add a final range at the end if needed */
+ if (start <= last) {
+ prange = svm_range_new(svms, start, last);
+ if (!prange) {
+ r = -ENOMEM;
+ goto out;
+ }
+ list_add(&prange->insert_list, insert_list);
+ list_add(&prange->update_list, update_list);
+ }
out:
if (r)
@@ -2693,59 +2706,6 @@ svm_range_is_valid(struct mm_struct *mm, uint64_t start, uint64_t size)
return true;
}
-/**
- * svm_range_add - add svm range and handle overlap
- * @p: the range add to this process svms
- * @start: page size aligned
- * @size: page size aligned
- * @nattr: number of attributes
- * @attrs: array of attributes
- * @update_list: output, the ranges need validate and update GPU mapping
- * @insert_list: output, the ranges need insert to svms
- * @remove_list: output, the ranges are replaced and need remove from svms
- *
- * Check if the virtual address range has overlap with the registered ranges,
- * split the overlapped range, copy and adjust pages address and vram nodes in
- * old and new ranges.
- *
- * Context: Process context, caller must hold svms->lock
- *
- * Return:
- * 0 - OK, otherwise error code
- */
-static int
-svm_range_add(struct kfd_process *p, uint64_t start, uint64_t size,
- uint32_t nattr, struct kfd_ioctl_svm_attribute *attrs,
- struct list_head *update_list, struct list_head *insert_list,
- struct list_head *remove_list)
-{
- uint64_t last = start + size - 1UL;
- struct svm_range_list *svms;
- struct svm_range new = {0};
- struct svm_range *prange;
- unsigned long left = 0;
- int r = 0;
-
- pr_debug("svms 0x%p [0x%llx 0x%llx]\n", &p->svms, start, last);
-
- svm_range_apply_attrs(p, &new, nattr, attrs);
-
- svms = &p->svms;
-
- r = svm_range_handle_overlap(svms, &new, start, last, update_list,
- insert_list, remove_list, &left);
- if (r)
- return r;
-
- if (left) {
- prange = svm_range_new(svms, last - left + 1, last);
- list_add(&prange->insert_list, insert_list);
- list_add(&prange->update_list, update_list);
- }
-
- return 0;
-}
-
/**
* svm_range_best_prefetch_location - decide the best prefetch location
* @prange: svm range structure
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 2fbaf6f869bf..16556ae892d4 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -1279,6 +1279,9 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
adev_to_drm(adev)->mode_config.cursor_width = adev->dm.dc->caps.max_cursor_size;
adev_to_drm(adev)->mode_config.cursor_height = adev->dm.dc->caps.max_cursor_size;
+ /* Disable vblank IRQs aggressively for power-saving */
+ adev_to_drm(adev)->vblank_disable_immediate = true;
+
if (drm_vblank_init(adev_to_drm(adev), adev->dm.display_indexes_num)) {
DRM_ERROR(
"amdgpu: failed to initialize sw for display support.\n");
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
index de9ec5ddb6c7..e94ddd5e7b63 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
@@ -2908,10 +2908,13 @@ static int crc_win_update_set(void *data, u64 val)
struct amdgpu_device *adev = drm_to_adev(new_crtc->dev);
struct crc_rd_work *crc_rd_wrk = adev->dm.crc_rd_wrk;
+ if (!crc_rd_wrk)
+ return 0;
+
if (val) {
spin_lock_irq(&adev_to_drm(adev)->event_lock);
spin_lock_irq(&crc_rd_wrk->crc_rd_work_lock);
- if (crc_rd_wrk && crc_rd_wrk->crtc) {
+ if (crc_rd_wrk->crtc) {
old_crtc = crc_rd_wrk->crtc;
old_acrtc = to_amdgpu_crtc(old_crtc);
}
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c
index bb31541f8072..6420527fe476 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c
@@ -306,8 +306,7 @@ void dc_destroy_clk_mgr(struct clk_mgr *clk_mgr_base)
case FAMILY_NV:
if (ASICREV_IS_SIENNA_CICHLID_P(clk_mgr_base->ctx->asic_id.hw_internal_rev)) {
dcn3_clk_mgr_destroy(clk_mgr);
- }
- if (ASICREV_IS_DIMGREY_CAVEFISH_P(clk_mgr_base->ctx->asic_id.hw_internal_rev)) {
+ } else if (ASICREV_IS_DIMGREY_CAVEFISH_P(clk_mgr_base->ctx->asic_id.hw_internal_rev)) {
dcn3_clk_mgr_destroy(clk_mgr);
}
if (ASICREV_IS_BEIGE_GOBY_P(clk_mgr_base->ctx->asic_id.hw_internal_rev)) {
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
index c798c65d4276..1860ccc3f4f2 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -2703,7 +2703,8 @@ static void commit_planes_for_stream(struct dc *dc,
#endif
if ((update_type != UPDATE_TYPE_FAST) && stream->update_flags.bits.dsc_changed)
- if (top_pipe_to_program->stream_res.tg->funcs->lock_doublebuffer_enable) {
+ if (top_pipe_to_program &&
+ top_pipe_to_program->stream_res.tg->funcs->lock_doublebuffer_enable) {
if (should_use_dmub_lock(stream->link)) {
union dmub_hw_lock_flags hw_locks = { 0 };
struct dmub_hw_lock_inst_flags inst_flags = { 0 };
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
index 1e44b13c1c7d..3c4205248efc 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -1696,6 +1696,8 @@ static void enable_stream_features(struct pipe_ctx *pipe_ctx)
union down_spread_ctrl old_downspread;
union down_spread_ctrl new_downspread;
+ memset(&old_downspread, 0, sizeof(old_downspread));
+
core_link_read_dpcd(link, DP_DOWNSPREAD_CTRL,
&old_downspread.raw, sizeof(old_downspread));
diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c
index 0fe570717ba0..d4fe5352421f 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c
@@ -470,7 +470,8 @@ static const struct dcn30_afmt_mask afmt_mask = {
SE_DCN3_REG_LIST(id)\
}
-static const struct dcn10_stream_enc_registers stream_enc_regs[] = {
+/* Some encoders won't be initialized here - but they're logical, not physical. */
+static const struct dcn10_stream_enc_registers stream_enc_regs[ENGINE_ID_COUNT] = {
stream_enc_regs(0),
stream_enc_regs(1),
stream_enc_regs(2),
diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
index 249cb0aeb5ae..32a0fd5e84b7 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -2117,6 +2117,12 @@ static int default_attr_update(struct amdgpu_device *adev, struct amdgpu_device_
}
}
+ /* setting should not be allowed from VF */
+ if (amdgpu_sriov_vf(adev)) {
+ dev_attr->attr.mode &= ~S_IWUGO;
+ dev_attr->store = NULL;
+ }
+
#undef DEVICE_ATTR_IS
return 0;
diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
index cab6c8b92efd..6a4f20fccf84 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
@@ -998,11 +998,21 @@ int analogix_dp_send_psr_spd(struct analogix_dp_device *dp,
if (!blocking)
return 0;
+ /*
+ * db[1]!=0: entering PSR, wait for fully active remote frame buffer.
+ * db[1]==0: exiting PSR, wait for either
+ * (a) ACTIVE_RESYNC - the sink "must display the
+ * incoming active frames from the Source device with no visible
+ * glitches and/or artifacts", even though timings may still be
+ * re-synchronizing; or
+ * (b) INACTIVE - the transition is fully complete.
+ */
ret = readx_poll_timeout(analogix_dp_get_psr_status, dp, psr_status,
psr_status >= 0 &&
((vsc->db[1] && psr_status == DP_PSR_SINK_ACTIVE_RFB) ||
- (!vsc->db[1] && psr_status == DP_PSR_SINK_INACTIVE)), 1500,
- DP_TIMEOUT_PSR_LOOP_MS * 1000);
+ (!vsc->db[1] && (psr_status == DP_PSR_SINK_ACTIVE_RESYNC ||
+ psr_status == DP_PSR_SINK_INACTIVE))),
+ 1500, DP_TIMEOUT_PSR_LOOP_MS * 1000);
if (ret) {
dev_warn(dp->dev, "Failed to apply PSR %d\n", ret);
return ret;
diff --git a/drivers/gpu/drm/bridge/display-connector.c b/drivers/gpu/drm/bridge/display-connector.c
index 05eb759da6fc..847a0dce7f1d 100644
--- a/drivers/gpu/drm/bridge/display-connector.c
+++ b/drivers/gpu/drm/bridge/display-connector.c
@@ -107,7 +107,7 @@ static int display_connector_probe(struct platform_device *pdev)
{
struct display_connector *conn;
unsigned int type;
- const char *label;
+ const char *label = NULL;
int ret;
conn = devm_kzalloc(&pdev->dev, sizeof(*conn), GFP_KERNEL);
diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
index d2808c4a6fb1..cce98bf2a4e7 100644
--- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
+++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
@@ -306,19 +306,10 @@ static void ge_b850v3_lvds_remove(void)
mutex_unlock(&ge_b850v3_lvds_dev_mutex);
}
-static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
- const struct i2c_device_id *id)
+static int ge_b850v3_register(void)
{
+ struct i2c_client *stdp4028_i2c = ge_b850v3_lvds_ptr->stdp4028_i2c;
struct device *dev = &stdp4028_i2c->dev;
- int ret;
-
- ret = ge_b850v3_lvds_init(dev);
-
- if (ret)
- return ret;
-
- ge_b850v3_lvds_ptr->stdp4028_i2c = stdp4028_i2c;
- i2c_set_clientdata(stdp4028_i2c, ge_b850v3_lvds_ptr);
/* drm bridge initialization */
ge_b850v3_lvds_ptr->bridge.funcs = &ge_b850v3_lvds_funcs;
@@ -343,6 +334,27 @@ static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
"ge-b850v3-lvds-dp", ge_b850v3_lvds_ptr);
}
+static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
+ const struct i2c_device_id *id)
+{
+ struct device *dev = &stdp4028_i2c->dev;
+ int ret;
+
+ ret = ge_b850v3_lvds_init(dev);
+
+ if (ret)
+ return ret;
+
+ ge_b850v3_lvds_ptr->stdp4028_i2c = stdp4028_i2c;
+ i2c_set_clientdata(stdp4028_i2c, ge_b850v3_lvds_ptr);
+
+ /* Only register after both bridges are probed */
+ if (!ge_b850v3_lvds_ptr->stdp2690_i2c)
+ return 0;
+
+ return ge_b850v3_register();
+}
+
static int stdp4028_ge_b850v3_fw_remove(struct i2c_client *stdp4028_i2c)
{
ge_b850v3_lvds_remove();
@@ -386,7 +398,11 @@ static int stdp2690_ge_b850v3_fw_probe(struct i2c_client *stdp2690_i2c,
ge_b850v3_lvds_ptr->stdp2690_i2c = stdp2690_i2c;
i2c_set_clientdata(stdp2690_i2c, ge_b850v3_lvds_ptr);
- return 0;
+ /* Only register after both bridges are probed */
+ if (!ge_b850v3_lvds_ptr->stdp4028_i2c)
+ return 0;
+
+ return ge_b850v3_register();
}
static int stdp2690_ge_b850v3_fw_remove(struct i2c_client *stdp2690_i2c)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
index d0db1acf11d7..7d2ed0ed2fe2 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
@@ -320,13 +320,17 @@ static int dw_hdmi_open(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
struct snd_dw_hdmi *dw = substream->private_data;
void __iomem *base = dw->data.base;
+ u8 *eld;
int ret;
runtime->hw = dw_hdmi_hw;
- ret = snd_pcm_hw_constraint_eld(runtime, dw->data.eld);
- if (ret < 0)
- return ret;
+ eld = dw->data.get_eld(dw->data.hdmi);
+ if (eld) {
+ ret = snd_pcm_hw_constraint_eld(runtime, eld);
+ if (ret < 0)
+ return ret;
+ }
ret = snd_pcm_limit_hw_rates(runtime);
if (ret < 0)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
index cb07dc0da5a7..f72d27208ebe 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
@@ -9,15 +9,15 @@ struct dw_hdmi_audio_data {
void __iomem *base;
int irq;
struct dw_hdmi *hdmi;
- u8 *eld;
+ u8 *(*get_eld)(struct dw_hdmi *hdmi);
};
struct dw_hdmi_i2s_audio_data {
struct dw_hdmi *hdmi;
- u8 *eld;
void (*write)(struct dw_hdmi *hdmi, u8 val, int offset);
u8 (*read)(struct dw_hdmi *hdmi, int offset);
+ u8 *(*get_eld)(struct dw_hdmi *hdmi);
};
#endif
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
index feb04f127b55..f50b47ac11a8 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
@@ -135,8 +135,15 @@ static int dw_hdmi_i2s_get_eld(struct device *dev, void *data, uint8_t *buf,
size_t len)
{
struct dw_hdmi_i2s_audio_data *audio = data;
+ u8 *eld;
+
+ eld = audio->get_eld(audio->hdmi);
+ if (eld)
+ memcpy(buf, eld, min_t(size_t, MAX_ELD_BYTES, len));
+ else
+ /* Pass en empty ELD if connector not available */
+ memset(buf, 0, len);
- memcpy(buf, audio->eld, min_t(size_t, MAX_ELD_BYTES, len));
return 0;
}
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index f08d0fded61f..e1211a5b334b 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -757,6 +757,14 @@ static void hdmi_enable_audio_clk(struct dw_hdmi *hdmi, bool enable)
hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS);
}
+static u8 *hdmi_audio_get_eld(struct dw_hdmi *hdmi)
+{
+ if (!hdmi->curr_conn)
+ return NULL;
+
+ return hdmi->curr_conn->eld;
+}
+
static void dw_hdmi_ahb_audio_enable(struct dw_hdmi *hdmi)
{
hdmi_set_cts_n(hdmi, hdmi->audio_cts, hdmi->audio_n);
@@ -3431,7 +3439,7 @@ struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev,
audio.base = hdmi->regs;
audio.irq = irq;
audio.hdmi = hdmi;
- audio.eld = hdmi->connector.eld;
+ audio.get_eld = hdmi_audio_get_eld;
hdmi->enable_audio = dw_hdmi_ahb_audio_enable;
hdmi->disable_audio = dw_hdmi_ahb_audio_disable;
@@ -3444,7 +3452,7 @@ struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev,
struct dw_hdmi_i2s_audio_data audio;
audio.hdmi = hdmi;
- audio.eld = hdmi->connector.eld;
+ audio.get_eld = hdmi_audio_get_eld;
audio.write = hdmi_writeb;
audio.read = hdmi_readb;
hdmi->enable_audio = dw_hdmi_i2s_audio_enable;
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
index 41d48a393e7f..4d08246f930c 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -188,6 +188,7 @@ static const struct regmap_config ti_sn65dsi86_regmap_config = {
.val_bits = 8,
.volatile_table = &ti_sn_bridge_volatile_table,
.cache_type = REGCACHE_NONE,
+ .max_register = 0xFF,
};
static void ti_sn65dsi86_write_u16(struct ti_sn65dsi86 *pdata,
diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
index 6d0f2c447f3b..7bb24523a749 100644
--- a/drivers/gpu/drm/drm_dp_helper.c
+++ b/drivers/gpu/drm/drm_dp_helper.c
@@ -3214,27 +3214,13 @@ int drm_edp_backlight_enable(struct drm_dp_aux *aux, const struct drm_edp_backli
const u16 level)
{
int ret;
- u8 dpcd_buf, new_dpcd_buf;
+ u8 dpcd_buf = DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD;
- ret = drm_dp_dpcd_readb(aux, DP_EDP_BACKLIGHT_MODE_SET_REGISTER, &dpcd_buf);
- if (ret != 1) {
- drm_dbg_kms(aux->drm_dev,
- "%s: Failed to read backlight mode: %d\n", aux->name, ret);
- return ret < 0 ? ret : -EIO;
- }
-
- new_dpcd_buf = dpcd_buf;
-
- if ((dpcd_buf & DP_EDP_BACKLIGHT_CONTROL_MODE_MASK) != DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD) {
- new_dpcd_buf &= ~DP_EDP_BACKLIGHT_CONTROL_MODE_MASK;
- new_dpcd_buf |= DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD;
-
- if (bl->pwmgen_bit_count) {
- ret = drm_dp_dpcd_writeb(aux, DP_EDP_PWMGEN_BIT_COUNT, bl->pwmgen_bit_count);
- if (ret != 1)
- drm_dbg_kms(aux->drm_dev, "%s: Failed to write aux pwmgen bit count: %d\n",
- aux->name, ret);
- }
+ if (bl->pwmgen_bit_count) {
+ ret = drm_dp_dpcd_writeb(aux, DP_EDP_PWMGEN_BIT_COUNT, bl->pwmgen_bit_count);
+ if (ret != 1)
+ drm_dbg_kms(aux->drm_dev, "%s: Failed to write aux pwmgen bit count: %d\n",
+ aux->name, ret);
}
if (bl->pwm_freq_pre_divider) {
@@ -3244,16 +3230,14 @@ int drm_edp_backlight_enable(struct drm_dp_aux *aux, const struct drm_edp_backli
"%s: Failed to write aux backlight frequency: %d\n",
aux->name, ret);
else
- new_dpcd_buf |= DP_EDP_BACKLIGHT_FREQ_AUX_SET_ENABLE;
+ dpcd_buf |= DP_EDP_BACKLIGHT_FREQ_AUX_SET_ENABLE;
}
- if (new_dpcd_buf != dpcd_buf) {
- ret = drm_dp_dpcd_writeb(aux, DP_EDP_BACKLIGHT_MODE_SET_REGISTER, new_dpcd_buf);
- if (ret != 1) {
- drm_dbg_kms(aux->drm_dev, "%s: Failed to write aux backlight mode: %d\n",
- aux->name, ret);
- return ret < 0 ? ret : -EIO;
- }
+ ret = drm_dp_dpcd_writeb(aux, DP_EDP_BACKLIGHT_MODE_SET_REGISTER, dpcd_buf);
+ if (ret != 1) {
+ drm_dbg_kms(aux->drm_dev, "%s: Failed to write aux backlight mode: %d\n",
+ aux->name, ret);
+ return ret < 0 ? ret : -EIO;
}
ret = drm_edp_backlight_set_level(aux, bl, level);
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index 7a5097467ba5..b3a1636d1b98 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -581,6 +581,7 @@ static int drm_dev_init(struct drm_device *dev,
const struct drm_driver *driver,
struct device *parent)
{
+ struct inode *inode;
int ret;
if (!drm_core_init_complete) {
@@ -617,13 +618,15 @@ static int drm_dev_init(struct drm_device *dev,
if (ret)
return ret;
- dev->anon_inode = drm_fs_inode_new();
- if (IS_ERR(dev->anon_inode)) {
- ret = PTR_ERR(dev->anon_inode);
+ inode = drm_fs_inode_new();
+ if (IS_ERR(inode)) {
+ ret = PTR_ERR(inode);
DRM_ERROR("Cannot allocate anonymous inode: %d\n", ret);
goto err;
}
+ dev->anon_inode = inode;
+
if (drm_core_check_feature(dev, DRIVER_RENDER)) {
ret = drm_minor_alloc(dev, DRM_MINOR_RENDER);
if (ret)
diff --git a/drivers/gpu/drm/drm_panel_orientation_quirks.c b/drivers/gpu/drm/drm_panel_orientation_quirks.c
index a950d5db211c..9d1bd8f491ad 100644
--- a/drivers/gpu/drm/drm_panel_orientation_quirks.c
+++ b/drivers/gpu/drm/drm_panel_orientation_quirks.c
@@ -248,6 +248,12 @@ static const struct dmi_system_id orientation_data[] = {
DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad D330-10IGM"),
},
.driver_data = (void *)&lcd1200x1920_rightside_up,
+ }, { /* Lenovo Yoga Book X90F / X91F / X91L */
+ .matches = {
+ /* Non exact match to match all versions */
+ DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X9"),
+ },
+ .driver_data = (void *)&lcd1200x1920_rightside_up,
}, { /* OneGX1 Pro */
.matches = {
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SYSTEM_MANUFACTURER"),
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
index 486259e154af..225fa5879ebd 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
@@ -469,6 +469,12 @@ int etnaviv_ioctl_gem_submit(struct drm_device *dev, void *data,
return -EINVAL;
}
+ if (args->stream_size > SZ_64K || args->nr_relocs > SZ_64K ||
+ args->nr_bos > SZ_64K || args->nr_pmrs > 128) {
+ DRM_ERROR("submit arguments out of size limits\n");
+ return -EINVAL;
+ }
+
/*
* Copy the command submission and bo array to kernel space in
* one go, and do this outside of any locks.
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.h b/drivers/gpu/drm/etnaviv/etnaviv_gpu.h
index 1c75c8ed5bce..85eddd492774 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.h
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.h
@@ -130,6 +130,7 @@ struct etnaviv_gpu {
/* hang detection */
u32 hangcheck_dma_addr;
+ u32 hangcheck_fence;
void __iomem *mmio;
int irq;
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_sched.c b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
index feb6da1b6ceb..bbf391f48f94 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_sched.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
@@ -107,8 +107,10 @@ static enum drm_gpu_sched_stat etnaviv_sched_timedout_job(struct drm_sched_job
*/
dma_addr = gpu_read(gpu, VIVS_FE_DMA_ADDRESS);
change = dma_addr - gpu->hangcheck_dma_addr;
- if (change < 0 || change > 16) {
+ if (gpu->completed_fence != gpu->hangcheck_fence ||
+ change < 0 || change > 16) {
gpu->hangcheck_dma_addr = dma_addr;
+ gpu->hangcheck_fence = gpu->completed_fence;
goto out_no_timeout;
}
diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
index ba2c08f1a797..876620455ed3 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
@@ -476,14 +476,14 @@ static const struct intel_ddi_buf_trans icl_combo_phy_ddi_translations_hdmi = {
static const union intel_ddi_buf_trans_entry _ehl_combo_phy_ddi_translations_dp[] = {
/* NT mV Trans mV db */
{ .icl = { 0xA, 0x33, 0x3F, 0x00, 0x00 } }, /* 350 350 0.0 */
- { .icl = { 0xA, 0x47, 0x36, 0x00, 0x09 } }, /* 350 500 3.1 */
- { .icl = { 0xC, 0x64, 0x34, 0x00, 0x0B } }, /* 350 700 6.0 */
- { .icl = { 0x6, 0x7F, 0x30, 0x00, 0x0F } }, /* 350 900 8.2 */
+ { .icl = { 0xA, 0x47, 0x38, 0x00, 0x07 } }, /* 350 500 3.1 */
+ { .icl = { 0xC, 0x64, 0x33, 0x00, 0x0C } }, /* 350 700 6.0 */
+ { .icl = { 0x6, 0x7F, 0x2F, 0x00, 0x10 } }, /* 350 900 8.2 */
{ .icl = { 0xA, 0x46, 0x3F, 0x00, 0x00 } }, /* 500 500 0.0 */
- { .icl = { 0xC, 0x64, 0x38, 0x00, 0x07 } }, /* 500 700 2.9 */
+ { .icl = { 0xC, 0x64, 0x37, 0x00, 0x08 } }, /* 500 700 2.9 */
{ .icl = { 0x6, 0x7F, 0x32, 0x00, 0x0D } }, /* 500 900 5.1 */
{ .icl = { 0xC, 0x61, 0x3F, 0x00, 0x00 } }, /* 650 700 0.6 */
- { .icl = { 0x6, 0x7F, 0x38, 0x00, 0x07 } }, /* 600 900 3.5 */
+ { .icl = { 0x6, 0x7F, 0x37, 0x00, 0x08 } }, /* 600 900 3.5 */
{ .icl = { 0x6, 0x7F, 0x3F, 0x00, 0x00 } }, /* 900 900 0.0 */
};
diff --git a/drivers/gpu/drm/lima/lima_device.c b/drivers/gpu/drm/lima/lima_device.c
index 65fdca366e41..36c990589427 100644
--- a/drivers/gpu/drm/lima/lima_device.c
+++ b/drivers/gpu/drm/lima/lima_device.c
@@ -357,6 +357,7 @@ int lima_device_init(struct lima_device *ldev)
int err, i;
dma_set_coherent_mask(ldev->dev, DMA_BIT_MASK(32));
+ dma_set_max_seg_size(ldev->dev, UINT_MAX);
err = lima_clk_init(ldev);
if (err)
diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig
index 3ddf739a6f9b..c49b23923119 100644
--- a/drivers/gpu/drm/msm/Kconfig
+++ b/drivers/gpu/drm/msm/Kconfig
@@ -63,6 +63,7 @@ config DRM_MSM_HDMI_HDCP
config DRM_MSM_DP
bool "Enable DisplayPort support in MSM DRM driver"
depends on DRM_MSM
+ select RATIONAL
default y
help
Compile in support for DP driver in MSM DRM driver. DP external
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index ad247c06e198..93d916858d5a 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -73,8 +73,8 @@ static int _dpu_danger_signal_status(struct seq_file *s,
&status);
} else {
seq_puts(s, "\nSafe signal status:\n");
- if (kms->hw_mdp->ops.get_danger_status)
- kms->hw_mdp->ops.get_danger_status(kms->hw_mdp,
+ if (kms->hw_mdp->ops.get_safe_status)
+ kms->hw_mdp->ops.get_safe_status(kms->hw_mdp,
&status);
}
pm_runtime_put_sync(&kms->pdev->dev);
diff --git a/drivers/gpu/drm/msm/dsi/dsi.c b/drivers/gpu/drm/msm/dsi/dsi.c
index 75ae3008b68f..fc280cc43494 100644
--- a/drivers/gpu/drm/msm/dsi/dsi.c
+++ b/drivers/gpu/drm/msm/dsi/dsi.c
@@ -215,9 +215,13 @@ int msm_dsi_modeset_init(struct msm_dsi *msm_dsi, struct drm_device *dev,
goto fail;
}
- if (!msm_dsi_manager_validate_current_config(msm_dsi->id)) {
- ret = -EINVAL;
- goto fail;
+ if (msm_dsi_is_bonded_dsi(msm_dsi) &&
+ !msm_dsi_is_master_dsi(msm_dsi)) {
+ /*
+ * Do not return an eror here,
+ * Just skip creating encoder/connector for the slave-DSI.
+ */
+ return 0;
}
msm_dsi->encoder = encoder;
diff --git a/drivers/gpu/drm/msm/dsi/dsi.h b/drivers/gpu/drm/msm/dsi/dsi.h
index 569c8ff062ba..a63666e59d19 100644
--- a/drivers/gpu/drm/msm/dsi/dsi.h
+++ b/drivers/gpu/drm/msm/dsi/dsi.h
@@ -82,7 +82,6 @@ int msm_dsi_manager_cmd_xfer(int id, const struct mipi_dsi_msg *msg);
bool msm_dsi_manager_cmd_xfer_trigger(int id, u32 dma_base, u32 len);
int msm_dsi_manager_register(struct msm_dsi *msm_dsi);
void msm_dsi_manager_unregister(struct msm_dsi *msm_dsi);
-bool msm_dsi_manager_validate_current_config(u8 id);
void msm_dsi_manager_tpg_enable(void);
/* msm dsi */
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
index fb4ccffdcfe1..fa4c396df6a9 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -647,23 +647,6 @@ struct drm_connector *msm_dsi_manager_connector_init(u8 id)
return ERR_PTR(ret);
}
-bool msm_dsi_manager_validate_current_config(u8 id)
-{
- bool is_bonded_dsi = IS_BONDED_DSI();
-
- /*
- * For bonded DSI, we only have one drm panel. For this
- * use case, we register only one bridge/connector.
- * Skip bridge/connector initialisation if it is
- * slave-DSI for bonded DSI configuration.
- */
- if (is_bonded_dsi && !IS_MASTER_DSI_LINK(id)) {
- DBG("Skip bridge registration for slave DSI->id: %d\n", id);
- return false;
- }
- return true;
-}
-
/* initialize bridge */
struct drm_bridge *msm_dsi_manager_bridge_init(u8 id)
{
diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c
index d9aef97eb93a..7fb7ff043bcd 100644
--- a/drivers/gpu/drm/msm/msm_gem_submit.c
+++ b/drivers/gpu/drm/msm/msm_gem_submit.c
@@ -887,7 +887,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
* to the underlying fence.
*/
submit->fence_id = idr_alloc_cyclic(&queue->fence_idr,
- submit->user_fence, 0, INT_MAX, GFP_KERNEL);
+ submit->user_fence, 1, INT_MAX, GFP_KERNEL);
if (submit->fence_id < 0) {
ret = submit->fence_id = 0;
submit->fence_id = 0;
diff --git a/drivers/gpu/drm/nouveau/dispnv04/disp.c b/drivers/gpu/drm/nouveau/dispnv04/disp.c
index 7739f46470d3..99fee4d8cd31 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/disp.c
@@ -205,7 +205,7 @@ nv04_display_destroy(struct drm_device *dev)
nvif_notify_dtor(&disp->flip);
nouveau_display(dev)->priv = NULL;
- kfree(disp);
+ vfree(disp);
nvif_object_unmap(&drm->client.device.object);
}
@@ -223,7 +223,7 @@ nv04_display_create(struct drm_device *dev)
struct nv04_display *disp;
int i, ret;
- disp = kzalloc(sizeof(*disp), GFP_KERNEL);
+ disp = vzalloc(sizeof(*disp));
if (!disp)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
index 24382875fb4f..455e95a89259 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
@@ -94,20 +94,13 @@ nvkm_pmu_fini(struct nvkm_subdev *subdev, bool suspend)
return 0;
}
-static int
+static void
nvkm_pmu_reset(struct nvkm_pmu *pmu)
{
struct nvkm_device *device = pmu->subdev.device;
if (!pmu->func->enabled(pmu))
- return 0;
-
- /* Inhibit interrupts, and wait for idle. */
- nvkm_wr32(device, 0x10a014, 0x0000ffff);
- nvkm_msec(device, 2000,
- if (!nvkm_rd32(device, 0x10a04c))
- break;
- );
+ return;
/* Reset. */
if (pmu->func->reset)
@@ -118,25 +111,37 @@ nvkm_pmu_reset(struct nvkm_pmu *pmu)
if (!(nvkm_rd32(device, 0x10a10c) & 0x00000006))
break;
);
-
- return 0;
}
static int
nvkm_pmu_preinit(struct nvkm_subdev *subdev)
{
struct nvkm_pmu *pmu = nvkm_pmu(subdev);
- return nvkm_pmu_reset(pmu);
+ nvkm_pmu_reset(pmu);
+ return 0;
}
static int
nvkm_pmu_init(struct nvkm_subdev *subdev)
{
struct nvkm_pmu *pmu = nvkm_pmu(subdev);
- int ret = nvkm_pmu_reset(pmu);
- if (ret == 0 && pmu->func->init)
- ret = pmu->func->init(pmu);
- return ret;
+ struct nvkm_device *device = pmu->subdev.device;
+
+ if (!pmu->func->init)
+ return 0;
+
+ if (pmu->func->enabled(pmu)) {
+ /* Inhibit interrupts, and wait for idle. */
+ nvkm_wr32(device, 0x10a014, 0x0000ffff);
+ nvkm_msec(device, 2000,
+ if (!nvkm_rd32(device, 0x10a04c))
+ break;
+ );
+
+ nvkm_pmu_reset(pmu);
+ }
+
+ return pmu->func->init(pmu);
}
static void *
diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
index 581661b506f8..f9c1f7bc8218 100644
--- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
+++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
@@ -227,7 +227,13 @@ static int feiyang_dsi_probe(struct mipi_dsi_device *dsi)
dsi->format = MIPI_DSI_FMT_RGB888;
dsi->lanes = 4;
- return mipi_dsi_attach(dsi);
+ ret = mipi_dsi_attach(dsi);
+ if (ret < 0) {
+ drm_panel_remove(&ctx->panel);
+ return ret;
+ }
+
+ return 0;
}
static int feiyang_dsi_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
index aea316225391..f194b62e290c 100644
--- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
+++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
@@ -484,6 +484,7 @@ static void innolux_panel_del(struct innolux_panel *innolux)
static int innolux_panel_probe(struct mipi_dsi_device *dsi)
{
const struct panel_desc *desc;
+ struct innolux_panel *innolux;
int err;
desc = of_device_get_match_data(&dsi->dev);
@@ -495,7 +496,14 @@ static int innolux_panel_probe(struct mipi_dsi_device *dsi)
if (err < 0)
return err;
- return mipi_dsi_attach(dsi);
+ err = mipi_dsi_attach(dsi);
+ if (err < 0) {
+ innolux = mipi_dsi_get_drvdata(dsi);
+ innolux_panel_del(innolux);
+ return err;
+ }
+
+ return 0;
}
static int innolux_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
index 733010b5e4f5..3c86ad262d5e 100644
--- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
+++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
@@ -473,7 +473,13 @@ static int jdi_panel_probe(struct mipi_dsi_device *dsi)
if (ret < 0)
return ret;
- return mipi_dsi_attach(dsi);
+ ret = mipi_dsi_attach(dsi);
+ if (ret < 0) {
+ jdi_panel_del(jdi);
+ return ret;
+ }
+
+ return 0;
}
static int jdi_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
index 86e4213e8bb1..daccb1fd5fda 100644
--- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
+++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
@@ -406,7 +406,13 @@ static int kingdisplay_panel_probe(struct mipi_dsi_device *dsi)
if (err < 0)
return err;
- return mipi_dsi_attach(dsi);
+ err = mipi_dsi_attach(dsi);
+ if (err < 0) {
+ kingdisplay_panel_del(kingdisplay);
+ return err;
+ }
+
+ return 0;
}
static int kingdisplay_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c
index 533cd3934b8b..839b263fb3c0 100644
--- a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c
+++ b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c
@@ -656,7 +656,13 @@ static int nt36672a_panel_probe(struct mipi_dsi_device *dsi)
if (err < 0)
return err;
- return mipi_dsi_attach(dsi);
+ err = mipi_dsi_attach(dsi);
+ if (err < 0) {
+ drm_panel_remove(&pinfo->base);
+ return err;
+ }
+
+ return 0;
}
static int nt36672a_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
index 3c20beeb1781..3991f5d950af 100644
--- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
+++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
@@ -241,7 +241,13 @@ static int wuxga_nt_panel_probe(struct mipi_dsi_device *dsi)
if (ret < 0)
return ret;
- return mipi_dsi_attach(dsi);
+ ret = mipi_dsi_attach(dsi);
+ if (ret < 0) {
+ wuxga_nt_panel_del(wuxga_nt);
+ return ret;
+ }
+
+ return 0;
}
static int wuxga_nt_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
index a3782830ae3c..1fb579a574d9 100644
--- a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
+++ b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
@@ -199,7 +199,13 @@ static int rb070d30_panel_dsi_probe(struct mipi_dsi_device *dsi)
dsi->format = MIPI_DSI_FMT_RGB888;
dsi->lanes = 4;
- return mipi_dsi_attach(dsi);
+ ret = mipi_dsi_attach(dsi);
+ if (ret < 0) {
+ drm_panel_remove(&ctx->panel);
+ return ret;
+ }
+
+ return 0;
}
static int rb070d30_panel_dsi_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
index ea63799ff2a1..29fde3823212 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
@@ -247,6 +247,7 @@ static int s6e88a0_ams452ef01_probe(struct mipi_dsi_device *dsi)
ret = mipi_dsi_attach(dsi);
if (ret < 0) {
dev_err(dev, "Failed to attach to DSI host: %d\n", ret);
+ drm_panel_remove(&ctx->panel);
return ret;
}
diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 8cb1853574bb..6d107e14fcc5 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -302,6 +302,7 @@ static int sofef00_panel_probe(struct mipi_dsi_device *dsi)
ret = mipi_dsi_attach(dsi);
if (ret < 0) {
dev_err(dev, "Failed to attach to DSI host: %d\n", ret);
+ drm_panel_remove(&ctx->panel);
return ret;
}
diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
index b937e24dac8e..25829a0a8e80 100644
--- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
@@ -296,7 +296,13 @@ static int sharp_nt_panel_probe(struct mipi_dsi_device *dsi)
if (ret < 0)
return ret;
- return mipi_dsi_attach(dsi);
+ ret = mipi_dsi_attach(dsi);
+ if (ret < 0) {
+ sharp_nt_panel_del(sharp_nt);
+ return ret;
+ }
+
+ return 0;
}
static int sharp_nt_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index 482fb0ae6cb5..0e14907f2043 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -648,6 +648,8 @@ void radeon_driver_lastclose_kms(struct drm_device *dev)
int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
{
struct radeon_device *rdev = dev->dev_private;
+ struct radeon_fpriv *fpriv;
+ struct radeon_vm *vm;
int r;
file_priv->driver_priv = NULL;
@@ -660,48 +662,52 @@ int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
/* new gpu have virtual address space support */
if (rdev->family >= CHIP_CAYMAN) {
- struct radeon_fpriv *fpriv;
- struct radeon_vm *vm;
fpriv = kzalloc(sizeof(*fpriv), GFP_KERNEL);
if (unlikely(!fpriv)) {
r = -ENOMEM;
- goto out_suspend;
+ goto err_suspend;
}
if (rdev->accel_working) {
vm = &fpriv->vm;
r = radeon_vm_init(rdev, vm);
- if (r) {
- kfree(fpriv);
- goto out_suspend;
- }
+ if (r)
+ goto err_fpriv;
r = radeon_bo_reserve(rdev->ring_tmp_bo.bo, false);
- if (r) {
- radeon_vm_fini(rdev, vm);
- kfree(fpriv);
- goto out_suspend;
- }
+ if (r)
+ goto err_vm_fini;
/* map the ib pool buffer read only into
* virtual address space */
vm->ib_bo_va = radeon_vm_bo_add(rdev, vm,
rdev->ring_tmp_bo.bo);
+ if (!vm->ib_bo_va) {
+ r = -ENOMEM;
+ goto err_vm_fini;
+ }
+
r = radeon_vm_bo_set_addr(rdev, vm->ib_bo_va,
RADEON_VA_IB_OFFSET,
RADEON_VM_PAGE_READABLE |
RADEON_VM_PAGE_SNOOPED);
- if (r) {
- radeon_vm_fini(rdev, vm);
- kfree(fpriv);
- goto out_suspend;
- }
+ if (r)
+ goto err_vm_fini;
}
file_priv->driver_priv = fpriv;
}
-out_suspend:
+ pm_runtime_mark_last_busy(dev->dev);
+ pm_runtime_put_autosuspend(dev->dev);
+ return 0;
+
+err_vm_fini:
+ radeon_vm_fini(rdev, vm);
+err_fpriv:
+ kfree(fpriv);
+
+err_suspend:
pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return r;
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
index ea7e39d03545..ee7e375ee672 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
@@ -215,6 +215,7 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc)
const struct drm_display_mode *mode = &rcrtc->crtc.state->adjusted_mode;
struct rcar_du_device *rcdu = rcrtc->dev;
unsigned long mode_clock = mode->clock * 1000;
+ unsigned int hdse_offset;
u32 dsmr;
u32 escr;
@@ -298,10 +299,15 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc)
| DSMR_DIPM_DISP | DSMR_CSPM;
rcar_du_crtc_write(rcrtc, DSMR, dsmr);
+ hdse_offset = 19;
+ if (rcrtc->group->cmms_mask & BIT(rcrtc->index % 2))
+ hdse_offset += 25;
+
/* Display timings */
- rcar_du_crtc_write(rcrtc, HDSR, mode->htotal - mode->hsync_start - 19);
+ rcar_du_crtc_write(rcrtc, HDSR, mode->htotal - mode->hsync_start -
+ hdse_offset);
rcar_du_crtc_write(rcrtc, HDER, mode->htotal - mode->hsync_start +
- mode->hdisplay - 19);
+ mode->hdisplay - hdse_offset);
rcar_du_crtc_write(rcrtc, HSWR, mode->hsync_end -
mode->hsync_start - 1);
rcar_du_crtc_write(rcrtc, HCR, mode->htotal - 1);
@@ -836,6 +842,7 @@ rcar_du_crtc_mode_valid(struct drm_crtc *crtc,
struct rcar_du_crtc *rcrtc = to_rcar_crtc(crtc);
struct rcar_du_device *rcdu = rcrtc->dev;
bool interlaced = mode->flags & DRM_MODE_FLAG_INTERLACE;
+ unsigned int min_sync_porch;
unsigned int vbp;
if (interlaced && !rcar_du_has(rcdu, RCAR_DU_FEATURE_INTERLACED))
@@ -843,9 +850,14 @@ rcar_du_crtc_mode_valid(struct drm_crtc *crtc,
/*
* The hardware requires a minimum combined horizontal sync and back
- * porch of 20 pixels and a minimum vertical back porch of 3 lines.
+ * porch of 20 pixels (when CMM isn't used) or 45 pixels (when CMM is
+ * used), and a minimum vertical back porch of 3 lines.
*/
- if (mode->htotal - mode->hsync_start < 20)
+ min_sync_porch = 20;
+ if (rcrtc->group->cmms_mask & BIT(rcrtc->index % 2))
+ min_sync_porch += 25;
+
+ if (mode->htotal - mode->hsync_start < min_sync_porch)
return MODE_HBLANK_NARROW;
vbp = (mode->vtotal - mode->vsync_end) / (interlaced ? 2 : 1);
diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
index a2262bee5aa4..59c3d8ef6bf9 100644
--- a/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
+++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
@@ -268,6 +268,8 @@ struct dw_mipi_dsi_rockchip {
struct dw_mipi_dsi *dmd;
const struct rockchip_dw_dsi_chip_data *cdata;
struct dw_mipi_dsi_plat_data pdata;
+
+ bool dsi_bound;
};
struct dphy_pll_parameter_map {
@@ -773,10 +775,6 @@ static void dw_mipi_dsi_encoder_enable(struct drm_encoder *encoder)
if (mux < 0)
return;
- pm_runtime_get_sync(dsi->dev);
- if (dsi->slave)
- pm_runtime_get_sync(dsi->slave->dev);
-
/*
* For the RK3399, the clk of grf must be enabled before writing grf
* register. And for RK3288 or other soc, this grf_clk must be NULL,
@@ -795,20 +793,10 @@ static void dw_mipi_dsi_encoder_enable(struct drm_encoder *encoder)
clk_disable_unprepare(dsi->grf_clk);
}
-static void dw_mipi_dsi_encoder_disable(struct drm_encoder *encoder)
-{
- struct dw_mipi_dsi_rockchip *dsi = to_dsi(encoder);
-
- if (dsi->slave)
- pm_runtime_put(dsi->slave->dev);
- pm_runtime_put(dsi->dev);
-}
-
static const struct drm_encoder_helper_funcs
dw_mipi_dsi_encoder_helper_funcs = {
.atomic_check = dw_mipi_dsi_encoder_atomic_check,
.enable = dw_mipi_dsi_encoder_enable,
- .disable = dw_mipi_dsi_encoder_disable,
};
static int rockchip_dsi_drm_create_encoder(struct dw_mipi_dsi_rockchip *dsi,
@@ -938,10 +926,14 @@ static int dw_mipi_dsi_rockchip_bind(struct device *dev,
put_device(second);
}
+ pm_runtime_get_sync(dsi->dev);
+ if (dsi->slave)
+ pm_runtime_get_sync(dsi->slave->dev);
+
ret = clk_prepare_enable(dsi->pllref_clk);
if (ret) {
DRM_DEV_ERROR(dev, "Failed to enable pllref_clk: %d\n", ret);
- return ret;
+ goto out_pm_runtime;
}
/*
@@ -953,7 +945,7 @@ static int dw_mipi_dsi_rockchip_bind(struct device *dev,
ret = clk_prepare_enable(dsi->grf_clk);
if (ret) {
DRM_DEV_ERROR(dsi->dev, "Failed to enable grf_clk: %d\n", ret);
- return ret;
+ goto out_pll_clk;
}
dw_mipi_dsi_rockchip_config(dsi);
@@ -965,16 +957,27 @@ static int dw_mipi_dsi_rockchip_bind(struct device *dev,
ret = rockchip_dsi_drm_create_encoder(dsi, drm_dev);
if (ret) {
DRM_DEV_ERROR(dev, "Failed to create drm encoder\n");
- return ret;
+ goto out_pll_clk;
}
ret = dw_mipi_dsi_bind(dsi->dmd, &dsi->encoder);
if (ret) {
DRM_DEV_ERROR(dev, "Failed to bind: %d\n", ret);
- return ret;
+ goto out_pll_clk;
}
+ dsi->dsi_bound = true;
+
return 0;
+
+out_pll_clk:
+ clk_disable_unprepare(dsi->pllref_clk);
+out_pm_runtime:
+ pm_runtime_put(dsi->dev);
+ if (dsi->slave)
+ pm_runtime_put(dsi->slave->dev);
+
+ return ret;
}
static void dw_mipi_dsi_rockchip_unbind(struct device *dev,
@@ -986,9 +989,15 @@ static void dw_mipi_dsi_rockchip_unbind(struct device *dev,
if (dsi->is_slave)
return;
+ dsi->dsi_bound = false;
+
dw_mipi_dsi_unbind(dsi->dmd);
clk_disable_unprepare(dsi->pllref_clk);
+
+ pm_runtime_put(dsi->dev);
+ if (dsi->slave)
+ pm_runtime_put(dsi->slave->dev);
}
static const struct component_ops dw_mipi_dsi_rockchip_ops = {
@@ -1276,6 +1285,36 @@ static const struct phy_ops dw_mipi_dsi_dphy_ops = {
.exit = dw_mipi_dsi_dphy_exit,
};
+static int __maybe_unused dw_mipi_dsi_rockchip_resume(struct device *dev)
+{
+ struct dw_mipi_dsi_rockchip *dsi = dev_get_drvdata(dev);
+ int ret;
+
+ /*
+ * Re-configure DSI state, if we were previously initialized. We need
+ * to do this before rockchip_drm_drv tries to re-enable() any panels.
+ */
+ if (dsi->dsi_bound) {
+ ret = clk_prepare_enable(dsi->grf_clk);
+ if (ret) {
+ DRM_DEV_ERROR(dsi->dev, "Failed to enable grf_clk: %d\n", ret);
+ return ret;
+ }
+
+ dw_mipi_dsi_rockchip_config(dsi);
+ if (dsi->slave)
+ dw_mipi_dsi_rockchip_config(dsi->slave);
+
+ clk_disable_unprepare(dsi->grf_clk);
+ }
+
+ return 0;
+}
+
+static const struct dev_pm_ops dw_mipi_dsi_rockchip_pm_ops = {
+ SET_LATE_SYSTEM_SLEEP_PM_OPS(NULL, dw_mipi_dsi_rockchip_resume)
+};
+
static int dw_mipi_dsi_rockchip_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -1397,14 +1436,10 @@ static int dw_mipi_dsi_rockchip_probe(struct platform_device *pdev)
if (ret != -EPROBE_DEFER)
DRM_DEV_ERROR(dev,
"Failed to probe dw_mipi_dsi: %d\n", ret);
- goto err_clkdisable;
+ return ret;
}
return 0;
-
-err_clkdisable:
- clk_disable_unprepare(dsi->pllref_clk);
- return ret;
}
static int dw_mipi_dsi_rockchip_remove(struct platform_device *pdev)
@@ -1593,6 +1628,7 @@ struct platform_driver dw_mipi_dsi_rockchip_driver = {
.remove = dw_mipi_dsi_rockchip_remove,
.driver = {
.of_match_table = dw_mipi_dsi_rockchip_dt_ids,
+ .pm = &dw_mipi_dsi_rockchip_pm_ops,
.name = "dw-mipi-dsi-rockchip",
},
};
diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
index 8d37d6b00562..611cd8dad46e 100644
--- a/drivers/gpu/drm/tegra/drm.c
+++ b/drivers/gpu/drm/tegra/drm.c
@@ -21,6 +21,10 @@
#include <drm/drm_prime.h>
#include <drm/drm_vblank.h>
+#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
+#include <asm/dma-iommu.h>
+#endif
+
#include "dc.h"
#include "drm.h"
#include "gem.h"
@@ -936,6 +940,17 @@ int host1x_client_iommu_attach(struct host1x_client *client)
struct iommu_group *group = NULL;
int err;
+#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
+ if (client->dev->archdata.mapping) {
+ struct dma_iommu_mapping *mapping =
+ to_dma_iommu_mapping(client->dev);
+ arm_iommu_detach_device(client->dev);
+ arm_iommu_release_mapping(mapping);
+
+ domain = iommu_get_domain_for_dev(client->dev);
+ }
+#endif
+
/*
* If the host1x client is already attached to an IOMMU domain that is
* not the shared IOMMU domain, don't try to attach it to a different
diff --git a/drivers/gpu/drm/tegra/gr2d.c b/drivers/gpu/drm/tegra/gr2d.c
index de288cba3905..ba3722f1b865 100644
--- a/drivers/gpu/drm/tegra/gr2d.c
+++ b/drivers/gpu/drm/tegra/gr2d.c
@@ -4,9 +4,11 @@
*/
#include <linux/clk.h>
+#include <linux/delay.h>
#include <linux/iommu.h>
#include <linux/module.h>
#include <linux/of_device.h>
+#include <linux/reset.h>
#include "drm.h"
#include "gem.h"
@@ -19,6 +21,7 @@ struct gr2d_soc {
struct gr2d {
struct tegra_drm_client client;
struct host1x_channel *channel;
+ struct reset_control *rst;
struct clk *clk;
const struct gr2d_soc *soc;
@@ -208,6 +211,12 @@ static int gr2d_probe(struct platform_device *pdev)
if (!syncpts)
return -ENOMEM;
+ gr2d->rst = devm_reset_control_get(dev, NULL);
+ if (IS_ERR(gr2d->rst)) {
+ dev_err(dev, "cannot get reset\n");
+ return PTR_ERR(gr2d->rst);
+ }
+
gr2d->clk = devm_clk_get(dev, NULL);
if (IS_ERR(gr2d->clk)) {
dev_err(dev, "cannot get clock\n");
@@ -220,6 +229,14 @@ static int gr2d_probe(struct platform_device *pdev)
return err;
}
+ usleep_range(2000, 4000);
+
+ err = reset_control_deassert(gr2d->rst);
+ if (err < 0) {
+ dev_err(dev, "failed to deassert reset: %d\n", err);
+ goto disable_clk;
+ }
+
INIT_LIST_HEAD(&gr2d->client.base.list);
gr2d->client.base.ops = &gr2d_client_ops;
gr2d->client.base.dev = dev;
@@ -234,8 +251,7 @@ static int gr2d_probe(struct platform_device *pdev)
err = host1x_client_register(&gr2d->client.base);
if (err < 0) {
dev_err(dev, "failed to register host1x client: %d\n", err);
- clk_disable_unprepare(gr2d->clk);
- return err;
+ goto assert_rst;
}
/* initialize address register map */
@@ -245,6 +261,13 @@ static int gr2d_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, gr2d);
return 0;
+
+assert_rst:
+ (void)reset_control_assert(gr2d->rst);
+disable_clk:
+ clk_disable_unprepare(gr2d->clk);
+
+ return err;
}
static int gr2d_remove(struct platform_device *pdev)
@@ -259,6 +282,12 @@ static int gr2d_remove(struct platform_device *pdev)
return err;
}
+ err = reset_control_assert(gr2d->rst);
+ if (err < 0)
+ dev_err(&pdev->dev, "failed to assert reset: %d\n", err);
+
+ usleep_range(2000, 4000);
+
clk_disable_unprepare(gr2d->clk);
return 0;
diff --git a/drivers/gpu/drm/tegra/submit.c b/drivers/gpu/drm/tegra/submit.c
index 776f825df52f..aba9d0c9d903 100644
--- a/drivers/gpu/drm/tegra/submit.c
+++ b/drivers/gpu/drm/tegra/submit.c
@@ -475,8 +475,10 @@ static void release_job(struct host1x_job *job)
kfree(job_data->used_mappings);
kfree(job_data);
- if (pm_runtime_enabled(client->base.dev))
+ if (pm_runtime_enabled(client->base.dev)) {
+ pm_runtime_mark_last_busy(client->base.dev);
pm_runtime_put_autosuspend(client->base.dev);
+ }
}
int tegra_drm_ioctl_channel_submit(struct drm_device *drm, void *data,
diff --git a/drivers/gpu/drm/tegra/vic.c b/drivers/gpu/drm/tegra/vic.c
index c02010ff2b7f..da4af5371991 100644
--- a/drivers/gpu/drm/tegra/vic.c
+++ b/drivers/gpu/drm/tegra/vic.c
@@ -5,6 +5,7 @@
#include <linux/clk.h>
#include <linux/delay.h>
+#include <linux/dma-mapping.h>
#include <linux/host1x.h>
#include <linux/iommu.h>
#include <linux/module.h>
@@ -232,10 +233,8 @@ static int vic_load_firmware(struct vic *vic)
if (!client->group) {
virt = dma_alloc_coherent(vic->dev, size, &iova, GFP_KERNEL);
-
- err = dma_mapping_error(vic->dev, iova);
- if (err < 0)
- return err;
+ if (!virt)
+ return -ENOMEM;
} else {
virt = tegra_drm_alloc(tegra, size, &iova);
}
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index bb9e02c31946..900edaf5d68e 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -724,6 +724,8 @@ int ttm_mem_evict_first(struct ttm_device *bdev,
ret = ttm_bo_evict(bo, ctx);
if (locked)
ttm_bo_unreserve(bo);
+ else
+ ttm_bo_move_to_lru_tail_unlocked(bo);
ttm_bo_put(bo);
return ret;
diff --git a/drivers/gpu/drm/vboxvideo/vbox_main.c b/drivers/gpu/drm/vboxvideo/vbox_main.c
index f28779715ccd..c9e8b3a63c62 100644
--- a/drivers/gpu/drm/vboxvideo/vbox_main.c
+++ b/drivers/gpu/drm/vboxvideo/vbox_main.c
@@ -127,8 +127,8 @@ int vbox_hw_init(struct vbox_private *vbox)
/* Create guest-heap mem-pool use 2^4 = 16 byte chunks */
vbox->guest_pool = devm_gen_pool_create(vbox->ddev.dev, 4, -1,
"vboxvideo-accel");
- if (!vbox->guest_pool)
- return -ENOMEM;
+ if (IS_ERR(vbox->guest_pool))
+ return PTR_ERR(vbox->guest_pool);
ret = gen_pool_add_virt(vbox->guest_pool,
(unsigned long)vbox->guest_heap,
diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c
index 18f5009ce90e..e3ed52d96f42 100644
--- a/drivers/gpu/drm/vc4/vc4_crtc.c
+++ b/drivers/gpu/drm/vc4/vc4_crtc.c
@@ -32,6 +32,7 @@
#include <linux/clk.h>
#include <linux/component.h>
#include <linux/of_device.h>
+#include <linux/pm_runtime.h>
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
@@ -42,6 +43,7 @@
#include <drm/drm_vblank.h>
#include "vc4_drv.h"
+#include "vc4_hdmi.h"
#include "vc4_regs.h"
#define HVS_FIFO_LATENCY_PIX 6
@@ -496,8 +498,10 @@ int vc4_crtc_disable_at_boot(struct drm_crtc *crtc)
enum vc4_encoder_type encoder_type;
const struct vc4_pv_data *pv_data;
struct drm_encoder *encoder;
+ struct vc4_hdmi *vc4_hdmi;
unsigned encoder_sel;
int channel;
+ int ret;
if (!(of_device_is_compatible(vc4_crtc->pdev->dev.of_node,
"brcm,bcm2711-pixelvalve2") ||
@@ -525,7 +529,20 @@ int vc4_crtc_disable_at_boot(struct drm_crtc *crtc)
if (WARN_ON(!encoder))
return 0;
- return vc4_crtc_disable(crtc, encoder, NULL, channel);
+ vc4_hdmi = encoder_to_vc4_hdmi(encoder);
+ ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
+ if (ret)
+ return ret;
+
+ ret = vc4_crtc_disable(crtc, encoder, NULL, channel);
+ if (ret)
+ return ret;
+
+ ret = pm_runtime_put(&vc4_hdmi->pdev->dev);
+ if (ret)
+ return ret;
+
+ return 0;
}
static void vc4_crtc_atomic_disable(struct drm_crtc *crtc,
@@ -691,14 +708,14 @@ static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc)
struct drm_crtc *crtc = &vc4_crtc->base;
struct drm_device *dev = crtc->dev;
struct vc4_dev *vc4 = to_vc4_dev(dev);
- struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc->state);
- u32 chan = vc4_state->assigned_channel;
+ u32 chan = vc4_crtc->current_hvs_channel;
unsigned long flags;
spin_lock_irqsave(&dev->event_lock, flags);
+ spin_lock(&vc4_crtc->irq_lock);
if (vc4_crtc->event &&
- (vc4_state->mm.start == HVS_READ(SCALER_DISPLACTX(chan)) ||
- vc4_state->feed_txp)) {
+ (vc4_crtc->current_dlist == HVS_READ(SCALER_DISPLACTX(chan)) ||
+ vc4_crtc->feeds_txp)) {
drm_crtc_send_vblank_event(crtc, vc4_crtc->event);
vc4_crtc->event = NULL;
drm_crtc_vblank_put(crtc);
@@ -711,6 +728,7 @@ static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc)
*/
vc4_hvs_unmask_underrun(dev, chan);
}
+ spin_unlock(&vc4_crtc->irq_lock);
spin_unlock_irqrestore(&dev->event_lock, flags);
}
@@ -876,7 +894,6 @@ struct drm_crtc_state *vc4_crtc_duplicate_state(struct drm_crtc *crtc)
return NULL;
old_vc4_state = to_vc4_crtc_state(crtc->state);
- vc4_state->feed_txp = old_vc4_state->feed_txp;
vc4_state->margins = old_vc4_state->margins;
vc4_state->assigned_channel = old_vc4_state->assigned_channel;
@@ -937,6 +954,7 @@ static const struct drm_crtc_funcs vc4_crtc_funcs = {
static const struct drm_crtc_helper_funcs vc4_crtc_helper_funcs = {
.mode_valid = vc4_crtc_mode_valid,
.atomic_check = vc4_crtc_atomic_check,
+ .atomic_begin = vc4_hvs_atomic_begin,
.atomic_flush = vc4_hvs_atomic_flush,
.atomic_enable = vc4_crtc_atomic_enable,
.atomic_disable = vc4_crtc_atomic_disable,
@@ -1111,6 +1129,7 @@ int vc4_crtc_init(struct drm_device *drm, struct vc4_crtc *vc4_crtc,
return PTR_ERR(primary_plane);
}
+ spin_lock_init(&vc4_crtc->irq_lock);
drm_crtc_init_with_planes(drm, crtc, primary_plane, NULL,
crtc_funcs, NULL);
drm_crtc_helper_add(crtc, crtc_helper_funcs);
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index ef73e0aaf726..4b550ebd9572 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -495,6 +495,33 @@ struct vc4_crtc {
struct drm_pending_vblank_event *event;
struct debugfs_regset32 regset;
+
+ /**
+ * @feeds_txp: True if the CRTC feeds our writeback controller.
+ */
+ bool feeds_txp;
+
+ /**
+ * @irq_lock: Spinlock protecting the resources shared between
+ * the atomic code and our vblank handler.
+ */
+ spinlock_t irq_lock;
+
+ /**
+ * @current_dlist: Start offset of the display list currently
+ * set in the HVS for that CRTC. Protected by @irq_lock, and
+ * copied in vc4_hvs_update_dlist() for the CRTC interrupt
+ * handler to have access to that value.
+ */
+ unsigned int current_dlist;
+
+ /**
+ * @current_hvs_channel: HVS channel currently assigned to the
+ * CRTC. Protected by @irq_lock, and copied in
+ * vc4_hvs_atomic_begin() for the CRTC interrupt handler to have
+ * access to that value.
+ */
+ unsigned int current_hvs_channel;
};
static inline struct vc4_crtc *
@@ -521,7 +548,6 @@ struct vc4_crtc_state {
struct drm_crtc_state base;
/* Dlist area for this CRTC configuration. */
struct drm_mm_node mm;
- bool feed_txp;
bool txp_armed;
unsigned int assigned_channel;
@@ -908,6 +934,7 @@ extern struct platform_driver vc4_hvs_driver;
void vc4_hvs_stop_channel(struct drm_device *dev, unsigned int output);
int vc4_hvs_get_fifo_from_output(struct drm_device *dev, unsigned int output);
int vc4_hvs_atomic_check(struct drm_crtc *crtc, struct drm_atomic_state *state);
+void vc4_hvs_atomic_begin(struct drm_crtc *crtc, struct drm_atomic_state *state);
void vc4_hvs_atomic_enable(struct drm_crtc *crtc, struct drm_atomic_state *state);
void vc4_hvs_atomic_disable(struct drm_crtc *crtc, struct drm_atomic_state *state);
void vc4_hvs_atomic_flush(struct drm_crtc *crtc, struct drm_atomic_state *state);
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index ed8a4b7f8b6e..5580267fb362 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -94,6 +94,7 @@
# define VC4_HD_M_SW_RST BIT(2)
# define VC4_HD_M_ENABLE BIT(0)
+#define HSM_MIN_CLOCK_FREQ 120000000
#define CEC_CLOCK_FREQ 40000
#define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000)
@@ -161,12 +162,16 @@ static void vc4_hdmi_cec_update_clk_div(struct vc4_hdmi *vc4_hdmi)
static void vc4_hdmi_cec_update_clk_div(struct vc4_hdmi *vc4_hdmi) {}
#endif
+static void vc4_hdmi_enable_scrambling(struct drm_encoder *encoder);
+
static enum drm_connector_status
vc4_hdmi_connector_detect(struct drm_connector *connector, bool force)
{
struct vc4_hdmi *vc4_hdmi = connector_to_vc4_hdmi(connector);
bool connected = false;
+ WARN_ON(pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev));
+
if (vc4_hdmi->hpd_gpio &&
gpiod_get_value_cansleep(vc4_hdmi->hpd_gpio)) {
connected = true;
@@ -187,10 +192,13 @@ vc4_hdmi_connector_detect(struct drm_connector *connector, bool force)
}
}
+ vc4_hdmi_enable_scrambling(&vc4_hdmi->encoder.base.base);
+ pm_runtime_put(&vc4_hdmi->pdev->dev);
return connector_status_connected;
}
cec_phys_addr_invalidate(vc4_hdmi->cec_adap);
+ pm_runtime_put(&vc4_hdmi->pdev->dev);
return connector_status_disconnected;
}
@@ -627,7 +635,6 @@ static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder,
vc4_hdmi->variant->phy_disable(vc4_hdmi);
clk_disable_unprepare(vc4_hdmi->pixel_bvb_clock);
- clk_disable_unprepare(vc4_hdmi->hsm_clock);
clk_disable_unprepare(vc4_hdmi->pixel_clock);
ret = pm_runtime_put(&vc4_hdmi->pdev->dev);
@@ -893,28 +900,10 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder,
conn_state_to_vc4_hdmi_conn_state(conn_state);
struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
- unsigned long bvb_rate, pixel_rate, hsm_rate;
+ unsigned long pixel_rate = vc4_conn_state->pixel_rate;
+ unsigned long bvb_rate, hsm_rate;
int ret;
- ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
- if (ret < 0) {
- DRM_ERROR("Failed to retain power domain: %d\n", ret);
- return;
- }
-
- pixel_rate = vc4_conn_state->pixel_rate;
- ret = clk_set_rate(vc4_hdmi->pixel_clock, pixel_rate);
- if (ret) {
- DRM_ERROR("Failed to set pixel clock rate: %d\n", ret);
- return;
- }
-
- ret = clk_prepare_enable(vc4_hdmi->pixel_clock);
- if (ret) {
- DRM_ERROR("Failed to turn on pixel clock: %d\n", ret);
- return;
- }
-
/*
* As stated in RPi's vc4 firmware "HDMI state machine (HSM) clock must
* be faster than pixel clock, infinitesimally faster, tested in
@@ -938,13 +927,25 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder,
return;
}
- ret = clk_prepare_enable(vc4_hdmi->hsm_clock);
- if (ret) {
- DRM_ERROR("Failed to turn on HSM clock: %d\n", ret);
- clk_disable_unprepare(vc4_hdmi->pixel_clock);
+ ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
+ if (ret < 0) {
+ DRM_ERROR("Failed to retain power domain: %d\n", ret);
return;
}
+ ret = clk_set_rate(vc4_hdmi->pixel_clock, pixel_rate);
+ if (ret) {
+ DRM_ERROR("Failed to set pixel clock rate: %d\n", ret);
+ goto err_put_runtime_pm;
+ }
+
+ ret = clk_prepare_enable(vc4_hdmi->pixel_clock);
+ if (ret) {
+ DRM_ERROR("Failed to turn on pixel clock: %d\n", ret);
+ goto err_put_runtime_pm;
+ }
+
+
vc4_hdmi_cec_update_clk_div(vc4_hdmi);
if (pixel_rate > 297000000)
@@ -957,17 +958,13 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder,
ret = clk_set_min_rate(vc4_hdmi->pixel_bvb_clock, bvb_rate);
if (ret) {
DRM_ERROR("Failed to set pixel bvb clock rate: %d\n", ret);
- clk_disable_unprepare(vc4_hdmi->hsm_clock);
- clk_disable_unprepare(vc4_hdmi->pixel_clock);
- return;
+ goto err_disable_pixel_clock;
}
ret = clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
if (ret) {
DRM_ERROR("Failed to turn on pixel bvb clock: %d\n", ret);
- clk_disable_unprepare(vc4_hdmi->hsm_clock);
- clk_disable_unprepare(vc4_hdmi->pixel_clock);
- return;
+ goto err_disable_pixel_clock;
}
if (vc4_hdmi->variant->phy_init)
@@ -980,6 +977,15 @@ static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder,
if (vc4_hdmi->variant->set_timings)
vc4_hdmi->variant->set_timings(vc4_hdmi, conn_state, mode);
+
+ return;
+
+err_disable_pixel_clock:
+ clk_disable_unprepare(vc4_hdmi->pixel_clock);
+err_put_runtime_pm:
+ pm_runtime_put(&vc4_hdmi->pdev->dev);
+
+ return;
}
static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder,
@@ -1729,8 +1735,14 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable)
struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
/* clock period in microseconds */
const u32 usecs = 1000000 / CEC_CLOCK_FREQ;
- u32 val = HDMI_READ(HDMI_CEC_CNTRL_5);
+ u32 val;
+ int ret;
+
+ ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
+ if (ret)
+ return ret;
+ val = HDMI_READ(HDMI_CEC_CNTRL_5);
val &= ~(VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET |
VC4_HDMI_CEC_CNT_TO_4700_US_MASK |
VC4_HDMI_CEC_CNT_TO_4500_US_MASK);
@@ -1876,6 +1888,8 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi)
if (ret < 0)
goto err_remove_handlers;
+ pm_runtime_put(&vc4_hdmi->pdev->dev);
+
return 0;
err_remove_handlers:
@@ -2098,6 +2112,27 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi)
return 0;
}
+static int __maybe_unused vc4_hdmi_runtime_suspend(struct device *dev)
+{
+ struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
+
+ clk_disable_unprepare(vc4_hdmi->hsm_clock);
+
+ return 0;
+}
+
+static int vc4_hdmi_runtime_resume(struct device *dev)
+{
+ struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
+ int ret;
+
+ ret = clk_prepare_enable(vc4_hdmi->hsm_clock);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
{
const struct vc4_hdmi_variant *variant = of_device_get_match_data(dev);
@@ -2161,6 +2196,31 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
vc4_hdmi->disable_4kp60 = true;
}
+ /*
+ * If we boot without any cable connected to the HDMI connector,
+ * the firmware will skip the HSM initialization and leave it
+ * with a rate of 0, resulting in a bus lockup when we're
+ * accessing the registers even if it's enabled.
+ *
+ * Let's put a sensible default at runtime_resume so that we
+ * don't end up in this situation.
+ */
+ ret = clk_set_min_rate(vc4_hdmi->hsm_clock, HSM_MIN_CLOCK_FREQ);
+ if (ret)
+ goto err_put_ddc;
+
+ /*
+ * We need to have the device powered up at this point to call
+ * our reset hook and for the CEC init.
+ */
+ ret = vc4_hdmi_runtime_resume(dev);
+ if (ret)
+ goto err_put_ddc;
+
+ pm_runtime_get_noresume(dev);
+ pm_runtime_set_active(dev);
+ pm_runtime_enable(dev);
+
if (vc4_hdmi->variant->reset)
vc4_hdmi->variant->reset(vc4_hdmi);
@@ -2172,8 +2232,6 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
}
- pm_runtime_enable(dev);
-
drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS);
drm_encoder_helper_add(encoder, &vc4_hdmi_encoder_helper_funcs);
@@ -2197,6 +2255,8 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
vc4_hdmi_debugfs_regs,
vc4_hdmi);
+ pm_runtime_put_sync(dev);
+
return 0;
err_free_cec:
@@ -2207,6 +2267,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
err_destroy_encoder:
drm_encoder_cleanup(encoder);
+ pm_runtime_put_sync(dev);
pm_runtime_disable(dev);
err_put_ddc:
put_device(&vc4_hdmi->ddc->dev);
@@ -2352,11 +2413,18 @@ static const struct of_device_id vc4_hdmi_dt_match[] = {
{}
};
+static const struct dev_pm_ops vc4_hdmi_pm_ops = {
+ SET_RUNTIME_PM_OPS(vc4_hdmi_runtime_suspend,
+ vc4_hdmi_runtime_resume,
+ NULL)
+};
+
struct platform_driver vc4_hdmi_driver = {
.probe = vc4_hdmi_dev_probe,
.remove = vc4_hdmi_dev_remove,
.driver = {
.name = "vc4_hdmi",
.of_match_table = vc4_hdmi_dt_match,
+ .pm = &vc4_hdmi_pm_ops,
},
};
diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c
index c239045e05d6..604933e20e6a 100644
--- a/drivers/gpu/drm/vc4/vc4_hvs.c
+++ b/drivers/gpu/drm/vc4/vc4_hvs.c
@@ -365,17 +365,16 @@ static void vc4_hvs_update_dlist(struct drm_crtc *crtc)
struct vc4_dev *vc4 = to_vc4_dev(dev);
struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc->state);
+ unsigned long flags;
if (crtc->state->event) {
- unsigned long flags;
-
crtc->state->event->pipe = drm_crtc_index(crtc);
WARN_ON(drm_crtc_vblank_get(crtc) != 0);
spin_lock_irqsave(&dev->event_lock, flags);
- if (!vc4_state->feed_txp || vc4_state->txp_armed) {
+ if (!vc4_crtc->feeds_txp || vc4_state->txp_armed) {
vc4_crtc->event = crtc->state->event;
crtc->state->event = NULL;
}
@@ -388,6 +387,22 @@ static void vc4_hvs_update_dlist(struct drm_crtc *crtc)
HVS_WRITE(SCALER_DISPLISTX(vc4_state->assigned_channel),
vc4_state->mm.start);
}
+
+ spin_lock_irqsave(&vc4_crtc->irq_lock, flags);
+ vc4_crtc->current_dlist = vc4_state->mm.start;
+ spin_unlock_irqrestore(&vc4_crtc->irq_lock, flags);
+}
+
+void vc4_hvs_atomic_begin(struct drm_crtc *crtc,
+ struct drm_atomic_state *state)
+{
+ struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
+ struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc->state);
+ unsigned long flags;
+
+ spin_lock_irqsave(&vc4_crtc->irq_lock, flags);
+ vc4_crtc->current_hvs_channel = vc4_state->assigned_channel;
+ spin_unlock_irqrestore(&vc4_crtc->irq_lock, flags);
}
void vc4_hvs_atomic_enable(struct drm_crtc *crtc,
@@ -395,10 +410,9 @@ void vc4_hvs_atomic_enable(struct drm_crtc *crtc,
{
struct drm_device *dev = crtc->dev;
struct vc4_dev *vc4 = to_vc4_dev(dev);
- struct drm_crtc_state *new_crtc_state = drm_atomic_get_new_crtc_state(state, crtc);
- struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(new_crtc_state);
struct drm_display_mode *mode = &crtc->state->adjusted_mode;
- bool oneshot = vc4_state->feed_txp;
+ struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
+ bool oneshot = vc4_crtc->feeds_txp;
vc4_hvs_update_dlist(crtc);
vc4_hvs_init_channel(vc4, crtc, mode, oneshot);
diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
index b61792d2aa65..6030d4a82155 100644
--- a/drivers/gpu/drm/vc4/vc4_kms.c
+++ b/drivers/gpu/drm/vc4/vc4_kms.c
@@ -233,6 +233,7 @@ static void vc4_hvs_pv_muxing_commit(struct vc4_dev *vc4,
unsigned int i;
for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
+ struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc_state);
u32 dispctrl;
u32 dsp3_mux;
@@ -253,7 +254,7 @@ static void vc4_hvs_pv_muxing_commit(struct vc4_dev *vc4,
* TXP IP, and we need to disable the FIFO2 -> pixelvalve1
* route.
*/
- if (vc4_state->feed_txp)
+ if (vc4_crtc->feeds_txp)
dsp3_mux = VC4_SET_FIELD(3, SCALER_DISPCTRL_DSP3_MUX);
else
dsp3_mux = VC4_SET_FIELD(2, SCALER_DISPCTRL_DSP3_MUX);
diff --git a/drivers/gpu/drm/vc4/vc4_txp.c b/drivers/gpu/drm/vc4/vc4_txp.c
index 2fc7f4b5fa09..9809ca3e2945 100644
--- a/drivers/gpu/drm/vc4/vc4_txp.c
+++ b/drivers/gpu/drm/vc4/vc4_txp.c
@@ -391,7 +391,6 @@ static int vc4_txp_atomic_check(struct drm_crtc *crtc,
{
struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state,
crtc);
- struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc_state);
int ret;
ret = vc4_hvs_atomic_check(crtc, state);
@@ -399,7 +398,6 @@ static int vc4_txp_atomic_check(struct drm_crtc *crtc,
return ret;
crtc_state->no_vblank = true;
- vc4_state->feed_txp = true;
return 0;
}
@@ -437,6 +435,7 @@ static void vc4_txp_atomic_disable(struct drm_crtc *crtc,
static const struct drm_crtc_helper_funcs vc4_txp_crtc_helper_funcs = {
.atomic_check = vc4_txp_atomic_check,
+ .atomic_begin = vc4_hvs_atomic_begin,
.atomic_flush = vc4_hvs_atomic_flush,
.atomic_enable = vc4_txp_atomic_enable,
.atomic_disable = vc4_txp_atomic_disable,
@@ -482,6 +481,7 @@ static int vc4_txp_bind(struct device *dev, struct device *master, void *data)
vc4_crtc->pdev = pdev;
vc4_crtc->data = &vc4_txp_crtc_data;
+ vc4_crtc->feeds_txp = true;
txp->pdev = pdev;
diff --git a/drivers/gpu/drm/vmwgfx/Makefile b/drivers/gpu/drm/vmwgfx/Makefile
index bc323f7d4032..18edc7ca5b45 100644
--- a/drivers/gpu/drm/vmwgfx/Makefile
+++ b/drivers/gpu/drm/vmwgfx/Makefile
@@ -9,9 +9,8 @@ vmwgfx-y := vmwgfx_execbuf.o vmwgfx_gmr.o vmwgfx_kms.o vmwgfx_drv.o \
vmwgfx_cotable.o vmwgfx_so.o vmwgfx_binding.o vmwgfx_msg.o \
vmwgfx_simple_resource.o vmwgfx_va.o vmwgfx_blit.o \
vmwgfx_validation.o vmwgfx_page_dirty.o vmwgfx_streamoutput.o \
- vmwgfx_devcaps.o ttm_object.o ttm_memory.o
+ vmwgfx_devcaps.o ttm_object.o ttm_memory.o vmwgfx_system_manager.o
vmwgfx-$(CONFIG_DRM_FBDEV_EMULATION) += vmwgfx_fb.o
-vmwgfx-$(CONFIG_TRANSPARENT_HUGEPAGE) += vmwgfx_thp.o
obj-$(CONFIG_DRM_VMWGFX) := vmwgfx.o
diff --git a/drivers/gpu/drm/vmwgfx/ttm_memory.c b/drivers/gpu/drm/vmwgfx/ttm_memory.c
index edd17c30d5a5..2ced4c06ca45 100644
--- a/drivers/gpu/drm/vmwgfx/ttm_memory.c
+++ b/drivers/gpu/drm/vmwgfx/ttm_memory.c
@@ -34,7 +34,6 @@
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/slab.h>
-#include <linux/swap.h>
#include <drm/drm_device.h>
#include <drm/drm_file.h>
@@ -173,69 +172,7 @@ static struct kobj_type ttm_mem_zone_kobj_type = {
.sysfs_ops = &ttm_mem_zone_ops,
.default_attrs = ttm_mem_zone_attrs,
};
-
-static struct attribute ttm_mem_global_lower_mem_limit = {
- .name = "lower_mem_limit",
- .mode = S_IRUGO | S_IWUSR
-};
-
-static ssize_t ttm_mem_global_show(struct kobject *kobj,
- struct attribute *attr,
- char *buffer)
-{
- struct ttm_mem_global *glob =
- container_of(kobj, struct ttm_mem_global, kobj);
- uint64_t val = 0;
-
- spin_lock(&glob->lock);
- val = glob->lower_mem_limit;
- spin_unlock(&glob->lock);
- /* convert from number of pages to KB */
- val <<= (PAGE_SHIFT - 10);
- return snprintf(buffer, PAGE_SIZE, "%llu\n",
- (unsigned long long) val);
-}
-
-static ssize_t ttm_mem_global_store(struct kobject *kobj,
- struct attribute *attr,
- const char *buffer,
- size_t size)
-{
- int chars;
- uint64_t val64;
- unsigned long val;
- struct ttm_mem_global *glob =
- container_of(kobj, struct ttm_mem_global, kobj);
-
- chars = sscanf(buffer, "%lu", &val);
- if (chars == 0)
- return size;
-
- val64 = val;
- /* convert from KB to number of pages */
- val64 >>= (PAGE_SHIFT - 10);
-
- spin_lock(&glob->lock);
- glob->lower_mem_limit = val64;
- spin_unlock(&glob->lock);
-
- return size;
-}
-
-static struct attribute *ttm_mem_global_attrs[] = {
- &ttm_mem_global_lower_mem_limit,
- NULL
-};
-
-static const struct sysfs_ops ttm_mem_global_ops = {
- .show = &ttm_mem_global_show,
- .store = &ttm_mem_global_store,
-};
-
-static struct kobj_type ttm_mem_glob_kobj_type = {
- .sysfs_ops = &ttm_mem_global_ops,
- .default_attrs = ttm_mem_global_attrs,
-};
+static struct kobj_type ttm_mem_glob_kobj_type = {0};
static bool ttm_zones_above_swap_target(struct ttm_mem_global *glob,
bool from_wq, uint64_t extra)
@@ -435,11 +372,6 @@ int ttm_mem_global_init(struct ttm_mem_global *glob, struct device *dev)
si_meminfo(&si);
- spin_lock(&glob->lock);
- /* set it as 0 by default to keep original behavior of OOM */
- glob->lower_mem_limit = 0;
- spin_unlock(&glob->lock);
-
ret = ttm_mem_init_kernel_zone(glob, &si);
if (unlikely(ret != 0))
goto out_no_zone;
@@ -527,35 +459,6 @@ void ttm_mem_global_free(struct ttm_mem_global *glob,
}
EXPORT_SYMBOL(ttm_mem_global_free);
-/*
- * check if the available mem is under lower memory limit
- *
- * a. if no swap disk at all or free swap space is under swap_mem_limit
- * but available system mem is bigger than sys_mem_limit, allow TTM
- * allocation;
- *
- * b. if the available system mem is less than sys_mem_limit but free
- * swap disk is bigger than swap_mem_limit, allow TTM allocation.
- */
-bool
-ttm_check_under_lowerlimit(struct ttm_mem_global *glob,
- uint64_t num_pages,
- struct ttm_operation_ctx *ctx)
-{
- int64_t available;
-
- /* We allow over commit during suspend */
- if (ctx->force_alloc)
- return false;
-
- available = get_nr_swap_pages() + si_mem_available();
- available -= num_pages;
- if (available < glob->lower_mem_limit)
- return true;
-
- return false;
-}
-
static int ttm_mem_global_reserve(struct ttm_mem_global *glob,
struct ttm_mem_zone *single_zone,
uint64_t amount, bool reserve)
diff --git a/drivers/gpu/drm/vmwgfx/ttm_memory.h b/drivers/gpu/drm/vmwgfx/ttm_memory.h
index c50dba774485..7b0d617ebcb1 100644
--- a/drivers/gpu/drm/vmwgfx/ttm_memory.h
+++ b/drivers/gpu/drm/vmwgfx/ttm_memory.h
@@ -50,8 +50,6 @@
* @work: The workqueue callback for the shrink queue.
* @lock: Lock to protect the @shrink - and the memory accounting members,
* that is, essentially the whole structure with some exceptions.
- * @lower_mem_limit: include lower limit of swap space and lower limit of
- * system memory.
* @zones: Array of pointers to accounting zones.
* @num_zones: Number of populated entries in the @zones array.
* @zone_kernel: Pointer to the kernel zone.
@@ -69,7 +67,6 @@ extern struct ttm_mem_global {
struct workqueue_struct *swap_queue;
struct work_struct work;
spinlock_t lock;
- uint64_t lower_mem_limit;
struct ttm_mem_zone *zones[TTM_MEM_MAX_ZONES];
unsigned int num_zones;
struct ttm_mem_zone *zone_kernel;
@@ -91,6 +88,5 @@ int ttm_mem_global_alloc_page(struct ttm_mem_global *glob,
void ttm_mem_global_free_page(struct ttm_mem_global *glob,
struct page *page, uint64_t size);
size_t ttm_round_pot(size_t size);
-bool ttm_check_under_lowerlimit(struct ttm_mem_global *glob, uint64_t num_pages,
- struct ttm_operation_ctx *ctx);
+
#endif
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
index 67db472d3493..a3bfbb6c3e14 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
@@ -145,6 +145,13 @@ struct vmw_fifo_state *vmw_fifo_create(struct vmw_private *dev_priv)
(unsigned int) max,
(unsigned int) min,
(unsigned int) fifo->capabilities);
+
+ if (unlikely(min >= max)) {
+ drm_warn(&dev_priv->drm,
+ "FIFO memory is not usable. Driver failed to initialize.");
+ return ERR_PTR(-ENXIO);
+ }
+
return fifo;
}
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index ab9a1750e1df..8449d09c06f7 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -707,23 +707,15 @@ static int vmw_dma_masks(struct vmw_private *dev_priv)
static int vmw_vram_manager_init(struct vmw_private *dev_priv)
{
int ret;
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- ret = vmw_thp_init(dev_priv);
-#else
ret = ttm_range_man_init(&dev_priv->bdev, TTM_PL_VRAM, false,
dev_priv->vram_size >> PAGE_SHIFT);
-#endif
ttm_resource_manager_set_used(ttm_manager_type(&dev_priv->bdev, TTM_PL_VRAM), false);
return ret;
}
static void vmw_vram_manager_fini(struct vmw_private *dev_priv)
{
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- vmw_thp_fini(dev_priv);
-#else
ttm_range_man_fini(&dev_priv->bdev, TTM_PL_VRAM);
-#endif
}
static int vmw_setup_pci_resources(struct vmw_private *dev,
@@ -1071,6 +1063,12 @@ static int vmw_driver_load(struct vmw_private *dev_priv, u32 pci_id)
"3D will be disabled.\n");
dev_priv->has_mob = false;
}
+ if (vmw_sys_man_init(dev_priv) != 0) {
+ drm_info(&dev_priv->drm,
+ "No MOB page table memory available. "
+ "3D will be disabled.\n");
+ dev_priv->has_mob = false;
+ }
}
if (dev_priv->has_mob && (dev_priv->capabilities & SVGA_CAP_DX)) {
@@ -1121,8 +1119,10 @@ static int vmw_driver_load(struct vmw_private *dev_priv, u32 pci_id)
vmw_overlay_close(dev_priv);
vmw_kms_close(dev_priv);
out_no_kms:
- if (dev_priv->has_mob)
+ if (dev_priv->has_mob) {
vmw_gmrid_man_fini(dev_priv, VMW_PL_MOB);
+ vmw_sys_man_fini(dev_priv);
+ }
if (dev_priv->has_gmr)
vmw_gmrid_man_fini(dev_priv, VMW_PL_GMR);
vmw_devcaps_destroy(dev_priv);
@@ -1172,8 +1172,10 @@ static void vmw_driver_unload(struct drm_device *dev)
vmw_gmrid_man_fini(dev_priv, VMW_PL_GMR);
vmw_release_device_early(dev_priv);
- if (dev_priv->has_mob)
+ if (dev_priv->has_mob) {
vmw_gmrid_man_fini(dev_priv, VMW_PL_MOB);
+ vmw_sys_man_fini(dev_priv);
+ }
vmw_devcaps_destroy(dev_priv);
vmw_vram_manager_fini(dev_priv);
ttm_device_fini(&dev_priv->bdev);
@@ -1617,34 +1619,40 @@ static int vmw_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &driver);
if (ret)
- return ret;
+ goto out_error;
ret = pcim_enable_device(pdev);
if (ret)
- return ret;
+ goto out_error;
vmw = devm_drm_dev_alloc(&pdev->dev, &driver,
struct vmw_private, drm);
- if (IS_ERR(vmw))
- return PTR_ERR(vmw);
+ if (IS_ERR(vmw)) {
+ ret = PTR_ERR(vmw);
+ goto out_error;
+ }
pci_set_drvdata(pdev, &vmw->drm);
ret = ttm_mem_global_init(&ttm_mem_glob, &pdev->dev);
if (ret)
- return ret;
+ goto out_error;
ret = vmw_driver_load(vmw, ent->device);
if (ret)
- return ret;
+ goto out_release;
ret = drm_dev_register(&vmw->drm, 0);
- if (ret) {
- vmw_driver_unload(&vmw->drm);
- return ret;
- }
+ if (ret)
+ goto out_unload;
return 0;
+out_unload:
+ vmw_driver_unload(&vmw->drm);
+out_release:
+ ttm_mem_global_release(&ttm_mem_glob);
+out_error:
+ return ret;
}
static int __init vmwgfx_init(void)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
index 858aff99a3fe..2a7cec4cb8a8 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
@@ -59,11 +59,8 @@
#define VMWGFX_DRIVER_MINOR 19
#define VMWGFX_DRIVER_PATCHLEVEL 0
#define VMWGFX_FIFO_STATIC_SIZE (1024*1024)
-#define VMWGFX_MAX_RELOCATIONS 2048
-#define VMWGFX_MAX_VALIDATIONS 2048
#define VMWGFX_MAX_DISPLAYS 16
#define VMWGFX_CMD_BOUNCE_INIT_SIZE 32768
-#define VMWGFX_ENABLE_SCREEN_TARGET_OTABLE 1
#define VMWGFX_PCI_ID_SVGA2 0x0405
#define VMWGFX_PCI_ID_SVGA3 0x0406
@@ -82,8 +79,9 @@
VMWGFX_NUM_GB_SURFACE +\
VMWGFX_NUM_GB_SCREEN_TARGET)
-#define VMW_PL_GMR (TTM_PL_PRIV + 0)
-#define VMW_PL_MOB (TTM_PL_PRIV + 1)
+#define VMW_PL_GMR (TTM_PL_PRIV + 0)
+#define VMW_PL_MOB (TTM_PL_PRIV + 1)
+#define VMW_PL_SYSTEM (TTM_PL_PRIV + 2)
#define VMW_RES_CONTEXT ttm_driver_type0
#define VMW_RES_SURFACE ttm_driver_type1
@@ -1039,7 +1037,6 @@ extern struct ttm_placement vmw_vram_placement;
extern struct ttm_placement vmw_vram_sys_placement;
extern struct ttm_placement vmw_vram_gmr_placement;
extern struct ttm_placement vmw_sys_placement;
-extern struct ttm_placement vmw_evictable_placement;
extern struct ttm_placement vmw_srf_placement;
extern struct ttm_placement vmw_mob_placement;
extern struct ttm_placement vmw_nonfixed_placement;
@@ -1251,6 +1248,12 @@ int vmw_overlay_num_free_overlays(struct vmw_private *dev_priv);
int vmw_gmrid_man_init(struct vmw_private *dev_priv, int type);
void vmw_gmrid_man_fini(struct vmw_private *dev_priv, int type);
+/**
+ * System memory manager
+ */
+int vmw_sys_man_init(struct vmw_private *dev_priv);
+void vmw_sys_man_fini(struct vmw_private *dev_priv);
+
/**
* Prime - vmwgfx_prime.c
*/
@@ -1551,11 +1554,6 @@ void vmw_bo_dirty_unmap(struct vmw_buffer_object *vbo,
vm_fault_t vmw_bo_vm_fault(struct vm_fault *vmf);
vm_fault_t vmw_bo_vm_mkwrite(struct vm_fault *vmf);
-/* Transparent hugepage support - vmwgfx_thp.c */
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-extern int vmw_thp_init(struct vmw_private *dev_priv);
-void vmw_thp_fini(struct vmw_private *dev_priv);
-#endif
/**
* VMW_DEBUG_KMS - Debug output for kernel mode-setting
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c b/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
index f9394207dd3c..632e58751972 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-2.0 OR MIT
/**************************************************************************
*
- * Copyright 2012-2015 VMware, Inc., Palo Alto, CA., USA
+ * Copyright 2012-2021 VMware, Inc., Palo Alto, CA., USA
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
@@ -29,12 +29,6 @@
#include "vmwgfx_drv.h"
-/*
- * If we set up the screen target otable, screen objects stop working.
- */
-
-#define VMW_OTABLE_SETUP_SUB ((VMWGFX_ENABLE_SCREEN_TARGET_OTABLE ? 0 : 1))
-
#ifdef CONFIG_64BIT
#define VMW_PPN_SIZE 8
#define VMW_MOBFMT_PTDEPTH_0 SVGA3D_MOBFMT_PT64_0
@@ -75,7 +69,7 @@ static const struct vmw_otable pre_dx_tables[] = {
{VMWGFX_NUM_GB_CONTEXT * sizeof(SVGAOTableContextEntry), NULL, true},
{VMWGFX_NUM_GB_SHADER * sizeof(SVGAOTableShaderEntry), NULL, true},
{VMWGFX_NUM_GB_SCREEN_TARGET * sizeof(SVGAOTableScreenTargetEntry),
- NULL, VMWGFX_ENABLE_SCREEN_TARGET_OTABLE}
+ NULL, true}
};
static const struct vmw_otable dx_tables[] = {
@@ -84,7 +78,7 @@ static const struct vmw_otable dx_tables[] = {
{VMWGFX_NUM_GB_CONTEXT * sizeof(SVGAOTableContextEntry), NULL, true},
{VMWGFX_NUM_GB_SHADER * sizeof(SVGAOTableShaderEntry), NULL, true},
{VMWGFX_NUM_GB_SCREEN_TARGET * sizeof(SVGAOTableScreenTargetEntry),
- NULL, VMWGFX_ENABLE_SCREEN_TARGET_OTABLE},
+ NULL, true},
{VMWGFX_NUM_DXCONTEXT * sizeof(SVGAOTableDXContextEntry), NULL, true},
};
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
index d85310b2608d..f5e90d0e2d0f 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
@@ -1872,8 +1872,8 @@ int vmw_kms_stdu_init_display(struct vmw_private *dev_priv)
int i, ret;
- /* Do nothing if Screen Target support is turned off */
- if (!VMWGFX_ENABLE_SCREEN_TARGET_OTABLE || !dev_priv->has_mob)
+ /* Do nothing if there's no support for MOBs */
+ if (!dev_priv->has_mob)
return -ENOSYS;
if (!(dev_priv->capabilities & SVGA_CAP_GBOBJECTS))
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c b/drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c
new file mode 100644
index 000000000000..b0005b03a617
--- /dev/null
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c
@@ -0,0 +1,90 @@
+/* SPDX-License-Identifier: GPL-2.0 OR MIT */
+/*
+ * Copyright 2021 VMware, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ */
+
+#include "vmwgfx_drv.h"
+
+#include <drm/ttm/ttm_bo_driver.h>
+#include <drm/ttm/ttm_device.h>
+#include <drm/ttm/ttm_placement.h>
+#include <drm/ttm/ttm_resource.h>
+#include <linux/slab.h>
+
+
+static int vmw_sys_man_alloc(struct ttm_resource_manager *man,
+ struct ttm_buffer_object *bo,
+ const struct ttm_place *place,
+ struct ttm_resource **res)
+{
+ *res = kzalloc(sizeof(**res), GFP_KERNEL);
+ if (!*res)
+ return -ENOMEM;
+
+ ttm_resource_init(bo, place, *res);
+ return 0;
+}
+
+static void vmw_sys_man_free(struct ttm_resource_manager *man,
+ struct ttm_resource *res)
+{
+ kfree(res);
+}
+
+static const struct ttm_resource_manager_func vmw_sys_manager_func = {
+ .alloc = vmw_sys_man_alloc,
+ .free = vmw_sys_man_free,
+};
+
+int vmw_sys_man_init(struct vmw_private *dev_priv)
+{
+ struct ttm_device *bdev = &dev_priv->bdev;
+ struct ttm_resource_manager *man =
+ kzalloc(sizeof(*man), GFP_KERNEL);
+
+ if (!man)
+ return -ENOMEM;
+
+ man->use_tt = true;
+ man->func = &vmw_sys_manager_func;
+
+ ttm_resource_manager_init(man, 0);
+ ttm_set_driver_manager(bdev, VMW_PL_SYSTEM, man);
+ ttm_resource_manager_set_used(man, true);
+ return 0;
+}
+
+void vmw_sys_man_fini(struct vmw_private *dev_priv)
+{
+ struct ttm_resource_manager *man = ttm_manager_type(&dev_priv->bdev,
+ VMW_PL_SYSTEM);
+
+ ttm_resource_manager_evict_all(&dev_priv->bdev, man);
+
+ ttm_resource_manager_set_used(man, false);
+ ttm_resource_manager_cleanup(man);
+
+ ttm_set_driver_manager(&dev_priv->bdev, VMW_PL_SYSTEM, NULL);
+ kfree(man);
+}
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_thp.c b/drivers/gpu/drm/vmwgfx/vmwgfx_thp.c
deleted file mode 100644
index 2a3d3468e4e0..000000000000
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_thp.c
+++ /dev/null
@@ -1,184 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0 OR MIT
-/*
- * Huge page-table-entry support for IO memory.
- *
- * Copyright (C) 2007-2019 Vmware, Inc. All rights reservedd.
- */
-#include "vmwgfx_drv.h"
-#include <drm/ttm/ttm_bo_driver.h>
-#include <drm/ttm/ttm_placement.h>
-#include <drm/ttm/ttm_range_manager.h>
-
-/**
- * struct vmw_thp_manager - Range manager implementing huge page alignment
- *
- * @manager: TTM resource manager.
- * @mm: The underlying range manager. Protected by @lock.
- * @lock: Manager lock.
- */
-struct vmw_thp_manager {
- struct ttm_resource_manager manager;
- struct drm_mm mm;
- spinlock_t lock;
-};
-
-static struct vmw_thp_manager *to_thp_manager(struct ttm_resource_manager *man)
-{
- return container_of(man, struct vmw_thp_manager, manager);
-}
-
-static const struct ttm_resource_manager_func vmw_thp_func;
-
-static int vmw_thp_insert_aligned(struct ttm_buffer_object *bo,
- struct drm_mm *mm, struct drm_mm_node *node,
- unsigned long align_pages,
- const struct ttm_place *place,
- struct ttm_resource *mem,
- unsigned long lpfn,
- enum drm_mm_insert_mode mode)
-{
- if (align_pages >= bo->page_alignment &&
- (!bo->page_alignment || align_pages % bo->page_alignment == 0)) {
- return drm_mm_insert_node_in_range(mm, node,
- mem->num_pages,
- align_pages, 0,
- place->fpfn, lpfn, mode);
- }
-
- return -ENOSPC;
-}
-
-static int vmw_thp_get_node(struct ttm_resource_manager *man,
- struct ttm_buffer_object *bo,
- const struct ttm_place *place,
- struct ttm_resource **res)
-{
- struct vmw_thp_manager *rman = to_thp_manager(man);
- struct drm_mm *mm = &rman->mm;
- struct ttm_range_mgr_node *node;
- unsigned long align_pages;
- unsigned long lpfn;
- enum drm_mm_insert_mode mode = DRM_MM_INSERT_BEST;
- int ret;
-
- node = kzalloc(struct_size(node, mm_nodes, 1), GFP_KERNEL);
- if (!node)
- return -ENOMEM;
-
- ttm_resource_init(bo, place, &node->base);
-
- lpfn = place->lpfn;
- if (!lpfn)
- lpfn = man->size;
-
- mode = DRM_MM_INSERT_BEST;
- if (place->flags & TTM_PL_FLAG_TOPDOWN)
- mode = DRM_MM_INSERT_HIGH;
-
- spin_lock(&rman->lock);
- if (IS_ENABLED(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD)) {
- align_pages = (HPAGE_PUD_SIZE >> PAGE_SHIFT);
- if (node->base.num_pages >= align_pages) {
- ret = vmw_thp_insert_aligned(bo, mm, &node->mm_nodes[0],
- align_pages, place,
- &node->base, lpfn, mode);
- if (!ret)
- goto found_unlock;
- }
- }
-
- align_pages = (HPAGE_PMD_SIZE >> PAGE_SHIFT);
- if (node->base.num_pages >= align_pages) {
- ret = vmw_thp_insert_aligned(bo, mm, &node->mm_nodes[0],
- align_pages, place, &node->base,
- lpfn, mode);
- if (!ret)
- goto found_unlock;
- }
-
- ret = drm_mm_insert_node_in_range(mm, &node->mm_nodes[0],
- node->base.num_pages,
- bo->page_alignment, 0,
- place->fpfn, lpfn, mode);
-found_unlock:
- spin_unlock(&rman->lock);
-
- if (unlikely(ret)) {
- kfree(node);
- } else {
- node->base.start = node->mm_nodes[0].start;
- *res = &node->base;
- }
-
- return ret;
-}
-
-static void vmw_thp_put_node(struct ttm_resource_manager *man,
- struct ttm_resource *res)
-{
- struct ttm_range_mgr_node *node = to_ttm_range_mgr_node(res);
- struct vmw_thp_manager *rman = to_thp_manager(man);
-
- spin_lock(&rman->lock);
- drm_mm_remove_node(&node->mm_nodes[0]);
- spin_unlock(&rman->lock);
-
- kfree(node);
-}
-
-int vmw_thp_init(struct vmw_private *dev_priv)
-{
- struct vmw_thp_manager *rman;
-
- rman = kzalloc(sizeof(*rman), GFP_KERNEL);
- if (!rman)
- return -ENOMEM;
-
- ttm_resource_manager_init(&rman->manager,
- dev_priv->vram_size >> PAGE_SHIFT);
-
- rman->manager.func = &vmw_thp_func;
- drm_mm_init(&rman->mm, 0, rman->manager.size);
- spin_lock_init(&rman->lock);
-
- ttm_set_driver_manager(&dev_priv->bdev, TTM_PL_VRAM, &rman->manager);
- ttm_resource_manager_set_used(&rman->manager, true);
- return 0;
-}
-
-void vmw_thp_fini(struct vmw_private *dev_priv)
-{
- struct ttm_resource_manager *man = ttm_manager_type(&dev_priv->bdev, TTM_PL_VRAM);
- struct vmw_thp_manager *rman = to_thp_manager(man);
- struct drm_mm *mm = &rman->mm;
- int ret;
-
- ttm_resource_manager_set_used(man, false);
-
- ret = ttm_resource_manager_evict_all(&dev_priv->bdev, man);
- if (ret)
- return;
- spin_lock(&rman->lock);
- drm_mm_clean(mm);
- drm_mm_takedown(mm);
- spin_unlock(&rman->lock);
- ttm_resource_manager_cleanup(man);
- ttm_set_driver_manager(&dev_priv->bdev, TTM_PL_VRAM, NULL);
- kfree(rman);
-}
-
-static void vmw_thp_debug(struct ttm_resource_manager *man,
- struct drm_printer *printer)
-{
- struct vmw_thp_manager *rman = to_thp_manager(man);
-
- spin_lock(&rman->lock);
- drm_mm_print(&rman->mm, printer);
- spin_unlock(&rman->lock);
-}
-
-static const struct ttm_resource_manager_func vmw_thp_func = {
- .alloc = vmw_thp_get_node,
- .free = vmw_thp_put_node,
- .debug = vmw_thp_debug
-};
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
index 8b8991e3ed2d..450bb1e9626f 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
@@ -92,6 +92,13 @@ static const struct ttm_place gmr_vram_placement_flags[] = {
}
};
+static const struct ttm_place vmw_sys_placement_flags = {
+ .fpfn = 0,
+ .lpfn = 0,
+ .mem_type = VMW_PL_SYSTEM,
+ .flags = 0
+};
+
struct ttm_placement vmw_vram_gmr_placement = {
.num_placement = 2,
.placement = vram_gmr_placement_flags,
@@ -113,28 +120,11 @@ struct ttm_placement vmw_sys_placement = {
.busy_placement = &sys_placement_flags
};
-static const struct ttm_place evictable_placement_flags[] = {
- {
- .fpfn = 0,
- .lpfn = 0,
- .mem_type = TTM_PL_SYSTEM,
- .flags = 0
- }, {
- .fpfn = 0,
- .lpfn = 0,
- .mem_type = TTM_PL_VRAM,
- .flags = 0
- }, {
- .fpfn = 0,
- .lpfn = 0,
- .mem_type = VMW_PL_GMR,
- .flags = 0
- }, {
- .fpfn = 0,
- .lpfn = 0,
- .mem_type = VMW_PL_MOB,
- .flags = 0
- }
+struct ttm_placement vmw_pt_sys_placement = {
+ .num_placement = 1,
+ .placement = &vmw_sys_placement_flags,
+ .num_busy_placement = 1,
+ .busy_placement = &vmw_sys_placement_flags
};
static const struct ttm_place nonfixed_placement_flags[] = {
@@ -156,13 +146,6 @@ static const struct ttm_place nonfixed_placement_flags[] = {
}
};
-struct ttm_placement vmw_evictable_placement = {
- .num_placement = 4,
- .placement = evictable_placement_flags,
- .num_busy_placement = 1,
- .busy_placement = &sys_placement_flags
-};
-
struct ttm_placement vmw_srf_placement = {
.num_placement = 1,
.num_busy_placement = 2,
@@ -484,6 +467,9 @@ static int vmw_ttm_bind(struct ttm_device *bdev,
&vmw_be->vsgt, ttm->num_pages,
vmw_be->gmr_id);
break;
+ case VMW_PL_SYSTEM:
+ /* Nothing to be done for a system bind */
+ break;
default:
BUG();
}
@@ -507,6 +493,8 @@ static void vmw_ttm_unbind(struct ttm_device *bdev,
case VMW_PL_MOB:
vmw_mob_unbind(vmw_be->dev_priv, vmw_be->mob);
break;
+ case VMW_PL_SYSTEM:
+ break;
default:
BUG();
}
@@ -628,6 +616,7 @@ static int vmw_ttm_io_mem_reserve(struct ttm_device *bdev, struct ttm_resource *
switch (mem->mem_type) {
case TTM_PL_SYSTEM:
+ case VMW_PL_SYSTEM:
case VMW_PL_GMR:
case VMW_PL_MOB:
return 0;
@@ -674,6 +663,11 @@ static void vmw_swap_notify(struct ttm_buffer_object *bo)
(void) ttm_bo_wait(bo, false, false);
}
+static bool vmw_memtype_is_system(uint32_t mem_type)
+{
+ return mem_type == TTM_PL_SYSTEM || mem_type == VMW_PL_SYSTEM;
+}
+
static int vmw_move(struct ttm_buffer_object *bo,
bool evict,
struct ttm_operation_ctx *ctx,
@@ -684,7 +678,7 @@ static int vmw_move(struct ttm_buffer_object *bo,
struct ttm_resource_manager *new_man = ttm_manager_type(bo->bdev, new_mem->mem_type);
int ret;
- if (new_man->use_tt && new_mem->mem_type != TTM_PL_SYSTEM) {
+ if (new_man->use_tt && !vmw_memtype_is_system(new_mem->mem_type)) {
ret = vmw_ttm_bind(bo->bdev, bo->ttm, new_mem);
if (ret)
return ret;
@@ -693,7 +687,7 @@ static int vmw_move(struct ttm_buffer_object *bo,
vmw_move_notify(bo, bo->resource, new_mem);
if (old_man->use_tt && new_man->use_tt) {
- if (bo->resource->mem_type == TTM_PL_SYSTEM) {
+ if (vmw_memtype_is_system(bo->resource->mem_type)) {
ttm_bo_move_null(bo, new_mem);
return 0;
}
@@ -740,7 +734,7 @@ int vmw_bo_create_and_populate(struct vmw_private *dev_priv,
int ret;
ret = vmw_bo_create_kernel(dev_priv, bo_size,
- &vmw_sys_placement,
+ &vmw_pt_sys_placement,
&bo);
if (unlikely(ret != 0))
return ret;
diff --git a/drivers/gpu/host1x/Kconfig b/drivers/gpu/host1x/Kconfig
index 6dab94adf25e..6815b4db17c1 100644
--- a/drivers/gpu/host1x/Kconfig
+++ b/drivers/gpu/host1x/Kconfig
@@ -2,6 +2,7 @@
config TEGRA_HOST1X
tristate "NVIDIA Tegra host1x driver"
depends on ARCH_TEGRA || (ARM && COMPILE_TEST)
+ select DMA_SHARED_BUFFER
select IOMMU_IOVA
help
Driver for the NVIDIA Tegra host1x hardware.
diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c
index fbb6447b8659..3872e4cd2698 100644
--- a/drivers/gpu/host1x/dev.c
+++ b/drivers/gpu/host1x/dev.c
@@ -18,6 +18,10 @@
#include <trace/events/host1x.h>
#undef CREATE_TRACE_POINTS
+#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
+#include <asm/dma-iommu.h>
+#endif
+
#include "bus.h"
#include "channel.h"
#include "debug.h"
@@ -238,6 +242,17 @@ static struct iommu_domain *host1x_iommu_attach(struct host1x *host)
struct iommu_domain *domain = iommu_get_domain_for_dev(host->dev);
int err;
+#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
+ if (host->dev->archdata.mapping) {
+ struct dma_iommu_mapping *mapping =
+ to_dma_iommu_mapping(host->dev);
+ arm_iommu_detach_device(host->dev);
+ arm_iommu_release_mapping(mapping);
+
+ domain = iommu_get_domain_for_dev(host->dev);
+ }
+#endif
+
/*
* We may not always want to enable IOMMU support (for example if the
* host1x firewall is already enabled and we don't support addressing
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
index 6ccfa0cb997a..b683c0e8557d 100644
--- a/drivers/hid/hid-apple.c
+++ b/drivers/hid/hid-apple.c
@@ -429,7 +429,7 @@ static int apple_input_configured(struct hid_device *hdev,
if ((asc->quirks & APPLE_HAS_FN) && !asc->fn_found) {
hid_info(hdev, "Fn key not found (Apple Wireless Keyboard clone?), disabling Fn key handling\n");
- asc->quirks = 0;
+ asc->quirks &= ~APPLE_HAS_FN;
}
return 0;
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 70e65eb1b868..bdedf594e2d1 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -394,6 +394,7 @@
#define USB_DEVICE_ID_HP_X2 0x074d
#define USB_DEVICE_ID_HP_X2_10_COVER 0x0755
#define I2C_DEVICE_ID_HP_SPECTRE_X360_15 0x2817
+#define I2C_DEVICE_ID_HP_ENVY_X360_15T_DR100 0x29CF
#define USB_DEVICE_ID_ASUS_UX550VE_TOUCHSCREEN 0x2544
#define USB_DEVICE_ID_ASUS_UX550_TOUCHSCREEN 0x2706
#define I2C_DEVICE_ID_SURFACE_GO_TOUCHSCREEN 0x261A
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 55017db98d89..3d33c0c06cbb 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -327,6 +327,8 @@ static const struct hid_device_id hid_battery_quirks[] = {
HID_BATTERY_QUIRK_IGNORE },
{ HID_USB_DEVICE(USB_VENDOR_ID_ELAN, USB_DEVICE_ID_ASUS_UX550VE_TOUCHSCREEN),
HID_BATTERY_QUIRK_IGNORE },
+ { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_ENVY_X360_15T_DR100),
+ HID_BATTERY_QUIRK_IGNORE },
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_SPECTRE_X360_15),
HID_BATTERY_QUIRK_IGNORE },
{ HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_SURFACE_GO_TOUCHSCREEN),
@@ -1330,6 +1332,12 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct
input = field->hidinput->input;
+ if (usage->type == EV_ABS &&
+ (((*quirks & HID_QUIRK_X_INVERT) && usage->code == ABS_X) ||
+ ((*quirks & HID_QUIRK_Y_INVERT) && usage->code == ABS_Y))) {
+ value = field->logical_maximum - value;
+ }
+
if (usage->hat_min < usage->hat_max || usage->hat_dir) {
int hat_dir = usage->hat_dir;
if (!hat_dir)
diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
index d7687ce70614..b8b08f0a8c54 100644
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -57,6 +57,8 @@ MODULE_PARM_DESC(report_undeciphered, "Report undeciphered multi-touch state fie
#define MOUSE_REPORT_ID 0x29
#define MOUSE2_REPORT_ID 0x12
#define DOUBLE_REPORT_ID 0xf7
+#define USB_BATTERY_TIMEOUT_MS 60000
+
/* These definitions are not precise, but they're close enough. (Bits
* 0x03 seem to indicate the aspect ratio of the touch, bits 0x70 seem
* to be some kind of bit mask -- 0x20 may be a near-field reading,
@@ -140,6 +142,7 @@ struct magicmouse_sc {
struct hid_device *hdev;
struct delayed_work work;
+ struct timer_list battery_timer;
};
static int magicmouse_firm_touch(struct magicmouse_sc *msc)
@@ -738,6 +741,44 @@ static void magicmouse_enable_mt_work(struct work_struct *work)
hid_err(msc->hdev, "unable to request touch data (%d)\n", ret);
}
+static int magicmouse_fetch_battery(struct hid_device *hdev)
+{
+#ifdef CONFIG_HID_BATTERY_STRENGTH
+ struct hid_report_enum *report_enum;
+ struct hid_report *report;
+
+ if (!hdev->battery || hdev->vendor != USB_VENDOR_ID_APPLE ||
+ (hdev->product != USB_DEVICE_ID_APPLE_MAGICMOUSE2 &&
+ hdev->product != USB_DEVICE_ID_APPLE_MAGICTRACKPAD2))
+ return -1;
+
+ report_enum = &hdev->report_enum[hdev->battery_report_type];
+ report = report_enum->report_id_hash[hdev->battery_report_id];
+
+ if (!report || report->maxfield < 1)
+ return -1;
+
+ if (hdev->battery_capacity == hdev->battery_max)
+ return -1;
+
+ hid_hw_request(hdev, report, HID_REQ_GET_REPORT);
+ return 0;
+#else
+ return -1;
+#endif
+}
+
+static void magicmouse_battery_timer_tick(struct timer_list *t)
+{
+ struct magicmouse_sc *msc = from_timer(msc, t, battery_timer);
+ struct hid_device *hdev = msc->hdev;
+
+ if (magicmouse_fetch_battery(hdev) == 0) {
+ mod_timer(&msc->battery_timer,
+ jiffies + msecs_to_jiffies(USB_BATTERY_TIMEOUT_MS));
+ }
+}
+
static int magicmouse_probe(struct hid_device *hdev,
const struct hid_device_id *id)
{
@@ -745,11 +786,6 @@ static int magicmouse_probe(struct hid_device *hdev,
struct hid_report *report;
int ret;
- if (id->vendor == USB_VENDOR_ID_APPLE &&
- id->product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 &&
- hdev->type != HID_TYPE_USBMOUSE)
- return -ENODEV;
-
msc = devm_kzalloc(&hdev->dev, sizeof(*msc), GFP_KERNEL);
if (msc == NULL) {
hid_err(hdev, "can't alloc magicmouse descriptor\n");
@@ -775,6 +811,16 @@ static int magicmouse_probe(struct hid_device *hdev,
return ret;
}
+ timer_setup(&msc->battery_timer, magicmouse_battery_timer_tick, 0);
+ mod_timer(&msc->battery_timer,
+ jiffies + msecs_to_jiffies(USB_BATTERY_TIMEOUT_MS));
+ magicmouse_fetch_battery(hdev);
+
+ if (id->vendor == USB_VENDOR_ID_APPLE &&
+ (id->product == USB_DEVICE_ID_APPLE_MAGICMOUSE2 ||
+ (id->product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 && hdev->type != HID_TYPE_USBMOUSE)))
+ return 0;
+
if (!msc->input) {
hid_err(hdev, "magicmouse input not registered\n");
ret = -ENOMEM;
@@ -827,6 +873,7 @@ static int magicmouse_probe(struct hid_device *hdev,
return 0;
err_stop_hw:
+ del_timer_sync(&msc->battery_timer);
hid_hw_stop(hdev);
return ret;
}
@@ -835,17 +882,52 @@ static void magicmouse_remove(struct hid_device *hdev)
{
struct magicmouse_sc *msc = hid_get_drvdata(hdev);
- if (msc)
+ if (msc) {
cancel_delayed_work_sync(&msc->work);
+ del_timer_sync(&msc->battery_timer);
+ }
hid_hw_stop(hdev);
}
+static __u8 *magicmouse_report_fixup(struct hid_device *hdev, __u8 *rdesc,
+ unsigned int *rsize)
+{
+ /*
+ * Change the usage from:
+ * 0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1) 0
+ * 0x09, 0x0b, // Usage (Vendor Usage 0x0b) 3
+ * To:
+ * 0x05, 0x01, // Usage Page (Generic Desktop) 0
+ * 0x09, 0x02, // Usage (Mouse) 2
+ */
+ if (hdev->vendor == USB_VENDOR_ID_APPLE &&
+ (hdev->product == USB_DEVICE_ID_APPLE_MAGICMOUSE2 ||
+ hdev->product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) &&
+ *rsize == 83 && rdesc[46] == 0x84 && rdesc[58] == 0x85) {
+ hid_info(hdev,
+ "fixing up magicmouse battery report descriptor\n");
+ *rsize = *rsize - 1;
+ rdesc = kmemdup(rdesc + 1, *rsize, GFP_KERNEL);
+ if (!rdesc)
+ return NULL;
+
+ rdesc[0] = 0x05;
+ rdesc[1] = 0x01;
+ rdesc[2] = 0x09;
+ rdesc[3] = 0x02;
+ }
+
+ return rdesc;
+}
+
static const struct hid_device_id magic_mice[] = {
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE,
USB_DEVICE_ID_APPLE_MAGICMOUSE), .driver_data = 0 },
{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE,
USB_DEVICE_ID_APPLE_MAGICMOUSE2), .driver_data = 0 },
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE,
+ USB_DEVICE_ID_APPLE_MAGICMOUSE2), .driver_data = 0 },
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE,
USB_DEVICE_ID_APPLE_MAGICTRACKPAD), .driver_data = 0 },
{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE,
@@ -861,6 +943,7 @@ static struct hid_driver magicmouse_driver = {
.id_table = magic_mice,
.probe = magicmouse_probe,
.remove = magicmouse_remove,
+ .report_fixup = magicmouse_report_fixup,
.raw_event = magicmouse_raw_event,
.event = magicmouse_event,
.input_mapping = magicmouse_input_mapping,
diff --git a/drivers/hid/hid-uclogic-params.c b/drivers/hid/hid-uclogic-params.c
index adff1bd68d9f..3e70f969fb84 100644
--- a/drivers/hid/hid-uclogic-params.c
+++ b/drivers/hid/hid-uclogic-params.c
@@ -66,7 +66,7 @@ static int uclogic_params_get_str_desc(__u8 **pbuf, struct hid_device *hdev,
__u8 idx, size_t len)
{
int rc;
- struct usb_device *udev = hid_to_usb_dev(hdev);
+ struct usb_device *udev;
__u8 *buf = NULL;
/* Check arguments */
@@ -75,6 +75,8 @@ static int uclogic_params_get_str_desc(__u8 **pbuf, struct hid_device *hdev,
goto cleanup;
}
+ udev = hid_to_usb_dev(hdev);
+
buf = kmalloc(len, GFP_KERNEL);
if (buf == NULL) {
rc = -ENOMEM;
@@ -450,7 +452,7 @@ static int uclogic_params_frame_init_v1_buttonpad(
{
int rc;
bool found = false;
- struct usb_device *usb_dev = hid_to_usb_dev(hdev);
+ struct usb_device *usb_dev;
char *str_buf = NULL;
const size_t str_len = 16;
@@ -460,6 +462,8 @@ static int uclogic_params_frame_init_v1_buttonpad(
goto cleanup;
}
+ usb_dev = hid_to_usb_dev(hdev);
+
/*
* Enable generic button mode
*/
@@ -707,9 +711,9 @@ static int uclogic_params_huion_init(struct uclogic_params *params,
struct hid_device *hdev)
{
int rc;
- struct usb_device *udev = hid_to_usb_dev(hdev);
- struct usb_interface *iface = to_usb_interface(hdev->dev.parent);
- __u8 bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+ struct usb_device *udev;
+ struct usb_interface *iface;
+ __u8 bInterfaceNumber;
bool found;
/* The resulting parameters (noop) */
struct uclogic_params p = {0, };
@@ -723,6 +727,10 @@ static int uclogic_params_huion_init(struct uclogic_params *params,
goto cleanup;
}
+ udev = hid_to_usb_dev(hdev);
+ iface = to_usb_interface(hdev->dev.parent);
+ bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+
/* If it's not a pen interface */
if (bInterfaceNumber != 0) {
/* TODO: Consider marking the interface invalid */
@@ -834,10 +842,10 @@ int uclogic_params_init(struct uclogic_params *params,
struct hid_device *hdev)
{
int rc;
- struct usb_device *udev = hid_to_usb_dev(hdev);
- __u8 bNumInterfaces = udev->config->desc.bNumInterfaces;
- struct usb_interface *iface = to_usb_interface(hdev->dev.parent);
- __u8 bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+ struct usb_device *udev;
+ __u8 bNumInterfaces;
+ struct usb_interface *iface;
+ __u8 bInterfaceNumber;
bool found;
/* The resulting parameters (noop) */
struct uclogic_params p = {0, };
@@ -848,6 +856,11 @@ int uclogic_params_init(struct uclogic_params *params,
goto cleanup;
}
+ udev = hid_to_usb_dev(hdev);
+ bNumInterfaces = udev->config->desc.bNumInterfaces;
+ iface = to_usb_interface(hdev->dev.parent);
+ bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+
/*
* Set replacement report descriptor if the original matches the
* specified size. Otherwise keep interface unchanged.
diff --git a/drivers/hid/hid-vivaldi.c b/drivers/hid/hid-vivaldi.c
index 72957a9f7117..576518e704ee 100644
--- a/drivers/hid/hid-vivaldi.c
+++ b/drivers/hid/hid-vivaldi.c
@@ -74,10 +74,11 @@ static void vivaldi_feature_mapping(struct hid_device *hdev,
struct hid_usage *usage)
{
struct vivaldi_data *drvdata = hid_get_drvdata(hdev);
+ struct hid_report *report = field->report;
int fn_key;
int ret;
u32 report_len;
- u8 *buf;
+ u8 *report_data, *buf;
if (field->logical != HID_USAGE_FN_ROW_PHYSMAP ||
(usage->hid & HID_USAGE_PAGE) != HID_UP_ORDINAL)
@@ -89,12 +90,24 @@ static void vivaldi_feature_mapping(struct hid_device *hdev,
if (fn_key > drvdata->max_function_row_key)
drvdata->max_function_row_key = fn_key;
- buf = hid_alloc_report_buf(field->report, GFP_KERNEL);
- if (!buf)
+ report_data = buf = hid_alloc_report_buf(report, GFP_KERNEL);
+ if (!report_data)
return;
- report_len = hid_report_len(field->report);
- ret = hid_hw_raw_request(hdev, field->report->id, buf,
+ report_len = hid_report_len(report);
+ if (!report->id) {
+ /*
+ * hid_hw_raw_request() will stuff report ID (which will be 0)
+ * into the first byte of the buffer even for unnumbered
+ * reports, so we need to account for this to avoid getting
+ * -EOVERFLOW in return.
+ * Note that hid_alloc_report_buf() adds 7 bytes to the size
+ * so we can safely say that we have space for an extra byte.
+ */
+ report_len++;
+ }
+
+ ret = hid_hw_raw_request(hdev, report->id, report_data,
report_len, HID_FEATURE_REPORT,
HID_REQ_GET_REPORT);
if (ret < 0) {
@@ -103,7 +116,16 @@ static void vivaldi_feature_mapping(struct hid_device *hdev,
goto out;
}
- ret = hid_report_raw_event(hdev, HID_FEATURE_REPORT, buf,
+ if (!report->id) {
+ /*
+ * Undo the damage from hid_hw_raw_request() for unnumbered
+ * reports.
+ */
+ report_data++;
+ report_len--;
+ }
+
+ ret = hid_report_raw_event(hdev, HID_FEATURE_REPORT, report_data,
report_len, 0);
if (ret) {
dev_warn(&hdev->dev, "failed to report feature %d\n",
diff --git a/drivers/hid/i2c-hid/i2c-hid-acpi.c b/drivers/hid/i2c-hid/i2c-hid-acpi.c
index a6f0257a26de..b96ae15e0ad9 100644
--- a/drivers/hid/i2c-hid/i2c-hid-acpi.c
+++ b/drivers/hid/i2c-hid/i2c-hid-acpi.c
@@ -111,7 +111,7 @@ static int i2c_hid_acpi_probe(struct i2c_client *client)
}
return i2c_hid_core_probe(client, &ihid_acpi->ops,
- hid_descriptor_address);
+ hid_descriptor_address, 0);
}
static const struct acpi_device_id i2c_hid_acpi_match[] = {
diff --git a/drivers/hid/i2c-hid/i2c-hid-core.c b/drivers/hid/i2c-hid/i2c-hid-core.c
index 517141138b00..4804d71e5293 100644
--- a/drivers/hid/i2c-hid/i2c-hid-core.c
+++ b/drivers/hid/i2c-hid/i2c-hid-core.c
@@ -912,7 +912,7 @@ static void i2c_hid_core_shutdown_tail(struct i2c_hid *ihid)
}
int i2c_hid_core_probe(struct i2c_client *client, struct i2chid_ops *ops,
- u16 hid_descriptor_address)
+ u16 hid_descriptor_address, u32 quirks)
{
int ret;
struct i2c_hid *ihid;
@@ -1009,6 +1009,8 @@ int i2c_hid_core_probe(struct i2c_client *client, struct i2chid_ops *ops,
goto err_mem_free;
}
+ hid->quirks |= quirks;
+
return 0;
err_mem_free:
diff --git a/drivers/hid/i2c-hid/i2c-hid-of-goodix.c b/drivers/hid/i2c-hid/i2c-hid-of-goodix.c
index 52674149a275..b4dad66fa954 100644
--- a/drivers/hid/i2c-hid/i2c-hid-of-goodix.c
+++ b/drivers/hid/i2c-hid/i2c-hid-of-goodix.c
@@ -150,7 +150,7 @@ static int i2c_hid_of_goodix_probe(struct i2c_client *client,
goodix_i2c_hid_deassert_reset(ihid_goodix, true);
mutex_unlock(&ihid_goodix->regulator_mutex);
- return i2c_hid_core_probe(client, &ihid_goodix->ops, 0x0001);
+ return i2c_hid_core_probe(client, &ihid_goodix->ops, 0x0001, 0);
}
static const struct goodix_i2c_hid_timing_data goodix_gt7375p_timing_data = {
diff --git a/drivers/hid/i2c-hid/i2c-hid-of.c b/drivers/hid/i2c-hid/i2c-hid-of.c
index 4bf7cea92637..97a27a803f58 100644
--- a/drivers/hid/i2c-hid/i2c-hid-of.c
+++ b/drivers/hid/i2c-hid/i2c-hid-of.c
@@ -21,6 +21,7 @@
#include <linux/delay.h>
#include <linux/device.h>
+#include <linux/hid.h>
#include <linux/i2c.h>
#include <linux/kernel.h>
#include <linux/module.h>
@@ -71,6 +72,7 @@ static int i2c_hid_of_probe(struct i2c_client *client,
struct device *dev = &client->dev;
struct i2c_hid_of *ihid_of;
u16 hid_descriptor_address;
+ u32 quirks = 0;
int ret;
u32 val;
@@ -105,8 +107,14 @@ static int i2c_hid_of_probe(struct i2c_client *client,
if (ret)
return ret;
+ if (device_property_read_bool(dev, "touchscreen-inverted-x"))
+ quirks |= HID_QUIRK_X_INVERT;
+
+ if (device_property_read_bool(dev, "touchscreen-inverted-y"))
+ quirks |= HID_QUIRK_Y_INVERT;
+
return i2c_hid_core_probe(client, &ihid_of->ops,
- hid_descriptor_address);
+ hid_descriptor_address, quirks);
}
static const struct of_device_id i2c_hid_of_match[] = {
diff --git a/drivers/hid/i2c-hid/i2c-hid.h b/drivers/hid/i2c-hid/i2c-hid.h
index 05a7827d211a..236cc062d5ef 100644
--- a/drivers/hid/i2c-hid/i2c-hid.h
+++ b/drivers/hid/i2c-hid/i2c-hid.h
@@ -32,7 +32,7 @@ struct i2chid_ops {
};
int i2c_hid_core_probe(struct i2c_client *client, struct i2chid_ops *ops,
- u16 hid_descriptor_address);
+ u16 hid_descriptor_address, u32 quirks);
int i2c_hid_core_remove(struct i2c_client *client);
void i2c_hid_core_shutdown(struct i2c_client *client);
diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c
index 8fe3efcb8327..fc06d8bb42e0 100644
--- a/drivers/hid/uhid.c
+++ b/drivers/hid/uhid.c
@@ -28,11 +28,22 @@
struct uhid_device {
struct mutex devlock;
+
+ /* This flag tracks whether the HID device is usable for commands from
+ * userspace. The flag is already set before hid_add_device(), which
+ * runs in workqueue context, to allow hid_add_device() to communicate
+ * with userspace.
+ * However, if hid_add_device() fails, the flag is cleared without
+ * holding devlock.
+ * We guarantee that if @running changes from true to false while you're
+ * holding @devlock, it's still fine to access @hid.
+ */
bool running;
__u8 *rd_data;
uint rd_size;
+ /* When this is NULL, userspace may use UHID_CREATE/UHID_CREATE2. */
struct hid_device *hid;
struct uhid_event input_buf;
@@ -63,9 +74,18 @@ static void uhid_device_add_worker(struct work_struct *work)
if (ret) {
hid_err(uhid->hid, "Cannot register HID device: error %d\n", ret);
- hid_destroy_device(uhid->hid);
- uhid->hid = NULL;
+ /* We used to call hid_destroy_device() here, but that's really
+ * messy to get right because we have to coordinate with
+ * concurrent writes from userspace that might be in the middle
+ * of using uhid->hid.
+ * Just leave uhid->hid as-is for now, and clean it up when
+ * userspace tries to close or reinitialize the uhid instance.
+ *
+ * However, we do have to clear the ->running flag and do a
+ * wakeup to make sure userspace knows that the device is gone.
+ */
uhid->running = false;
+ wake_up_interruptible(&uhid->report_wait);
}
}
@@ -474,7 +494,7 @@ static int uhid_dev_create2(struct uhid_device *uhid,
void *rd_data;
int ret;
- if (uhid->running)
+ if (uhid->hid)
return -EALREADY;
rd_size = ev->u.create2.rd_size;
@@ -556,7 +576,7 @@ static int uhid_dev_create(struct uhid_device *uhid,
static int uhid_dev_destroy(struct uhid_device *uhid)
{
- if (!uhid->running)
+ if (!uhid->hid)
return -EINVAL;
uhid->running = false;
@@ -565,6 +585,7 @@ static int uhid_dev_destroy(struct uhid_device *uhid)
cancel_work_sync(&uhid->worker);
hid_destroy_device(uhid->hid);
+ uhid->hid = NULL;
kfree(uhid->rd_data);
return 0;
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
index 2a4cc39962e7..a7176fc0635d 100644
--- a/drivers/hid/wacom_wac.c
+++ b/drivers/hid/wacom_wac.c
@@ -2588,6 +2588,24 @@ static void wacom_wac_finger_slot(struct wacom_wac *wacom_wac,
}
}
+static bool wacom_wac_slot_is_active(struct input_dev *dev, int key)
+{
+ struct input_mt *mt = dev->mt;
+ struct input_mt_slot *s;
+
+ if (!mt)
+ return false;
+
+ for (s = mt->slots; s != mt->slots + mt->num_slots; s++) {
+ if (s->key == key &&
+ input_mt_get_value(s, ABS_MT_TRACKING_ID) >= 0) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
static void wacom_wac_finger_event(struct hid_device *hdev,
struct hid_field *field, struct hid_usage *usage, __s32 value)
{
@@ -2638,9 +2656,14 @@ static void wacom_wac_finger_event(struct hid_device *hdev,
}
if (usage->usage_index + 1 == field->report_count) {
- if (equivalent_usage == wacom_wac->hid_data.last_slot_field &&
- wacom_wac->hid_data.confidence)
- wacom_wac_finger_slot(wacom_wac, wacom_wac->touch_input);
+ if (equivalent_usage == wacom_wac->hid_data.last_slot_field) {
+ bool touch_removed = wacom_wac_slot_is_active(wacom_wac->touch_input,
+ wacom_wac->hid_data.id) && !wacom_wac->hid_data.tipswitch;
+
+ if (wacom_wac->hid_data.confidence || touch_removed) {
+ wacom_wac_finger_slot(wacom_wac, wacom_wac->touch_input);
+ }
+ }
}
}
@@ -2659,6 +2682,10 @@ static void wacom_wac_finger_pre_report(struct hid_device *hdev,
hid_data->confidence = true;
+ hid_data->cc_report = 0;
+ hid_data->cc_index = -1;
+ hid_data->cc_value_index = -1;
+
for (i = 0; i < report->maxfield; i++) {
struct hid_field *field = report->field[i];
int j;
@@ -2692,11 +2719,14 @@ static void wacom_wac_finger_pre_report(struct hid_device *hdev,
hid_data->cc_index >= 0) {
struct hid_field *field = report->field[hid_data->cc_index];
int value = field->value[hid_data->cc_value_index];
- if (value)
+ if (value) {
hid_data->num_expected = value;
+ hid_data->num_received = 0;
+ }
}
else {
hid_data->num_expected = wacom_wac->features.touch_max;
+ hid_data->num_received = 0;
}
}
@@ -2724,6 +2754,7 @@ static void wacom_wac_finger_report(struct hid_device *hdev,
input_sync(input);
wacom_wac->hid_data.num_received = 0;
+ wacom_wac->hid_data.num_expected = 0;
/* keep touch state for pen event */
wacom_wac->shared->touch_down = wacom_wac_finger_count_touches(wacom_wac);
diff --git a/drivers/hsi/hsi_core.c b/drivers/hsi/hsi_core.c
index ec90713564e3..884066109699 100644
--- a/drivers/hsi/hsi_core.c
+++ b/drivers/hsi/hsi_core.c
@@ -102,6 +102,7 @@ struct hsi_client *hsi_new_client(struct hsi_port *port,
if (device_register(&cl->device) < 0) {
pr_err("hsi: failed to register client: %s\n", info->name);
put_device(&cl->device);
+ goto err;
}
return cl;
diff --git a/drivers/hwmon/mr75203.c b/drivers/hwmon/mr75203.c
index 868243dba1ee..1ba1e3145969 100644
--- a/drivers/hwmon/mr75203.c
+++ b/drivers/hwmon/mr75203.c
@@ -93,7 +93,7 @@
#define VM_CH_REQ BIT(21)
#define IP_TMR 0x05
-#define POWER_DELAY_CYCLE_256 0x80
+#define POWER_DELAY_CYCLE_256 0x100
#define POWER_DELAY_CYCLE_64 0x40
#define PVT_POLL_DELAY_US 20
diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c
index 0f409a4c2da0..5b45941bcbdd 100644
--- a/drivers/i2c/busses/i2c-designware-pcidrv.c
+++ b/drivers/i2c/busses/i2c-designware-pcidrv.c
@@ -39,10 +39,10 @@ enum dw_pci_ctl_id_t {
};
struct dw_scl_sda_cfg {
- u32 ss_hcnt;
- u32 fs_hcnt;
- u32 ss_lcnt;
- u32 fs_lcnt;
+ u16 ss_hcnt;
+ u16 fs_hcnt;
+ u16 ss_lcnt;
+ u16 fs_lcnt;
u32 sda_hold;
};
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index 1f929e6c30be..98e39a17fb83 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -763,6 +763,11 @@ static int i801_block_transaction(struct i801_priv *priv, union i2c_smbus_data *
int result = 0;
unsigned char hostc;
+ if (read_write == I2C_SMBUS_READ && command == I2C_SMBUS_BLOCK_DATA)
+ data->block[0] = I2C_SMBUS_BLOCK_MAX;
+ else if (data->block[0] < 1 || data->block[0] > I2C_SMBUS_BLOCK_MAX)
+ return -EPROTO;
+
if (command == I2C_SMBUS_I2C_BLOCK_DATA) {
if (read_write == I2C_SMBUS_WRITE) {
/* set I2C_EN bit in configuration register */
@@ -776,16 +781,6 @@ static int i801_block_transaction(struct i801_priv *priv, union i2c_smbus_data *
}
}
- if (read_write == I2C_SMBUS_WRITE
- || command == I2C_SMBUS_I2C_BLOCK_DATA) {
- if (data->block[0] < 1)
- data->block[0] = 1;
- if (data->block[0] > I2C_SMBUS_BLOCK_MAX)
- data->block[0] = I2C_SMBUS_BLOCK_MAX;
- } else {
- data->block[0] = 32; /* max for SMBus block reads */
- }
-
/* Experience has shown that the block buffer can only be used for
SMBus (not I2C) block transactions, even though the datasheet
doesn't mention this limitation. */
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index db26cc36e13f..6c698c10d3cd 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -119,23 +119,30 @@ static inline void writeccr(struct mpc_i2c *i2c, u32 x)
/* Sometimes 9th clock pulse isn't generated, and slave doesn't release
* the bus, because it wants to send ACK.
* Following sequence of enabling/disabling and sending start/stop generates
- * the 9 pulses, so it's all OK.
+ * the 9 pulses, each with a START then ending with STOP, so it's all OK.
*/
static void mpc_i2c_fixup(struct mpc_i2c *i2c)
{
int k;
- u32 delay_val = 1000000 / i2c->real_clk + 1;
-
- if (delay_val < 2)
- delay_val = 2;
+ unsigned long flags;
for (k = 9; k; k--) {
writeccr(i2c, 0);
- writeccr(i2c, CCR_MSTA | CCR_MTX | CCR_MEN);
+ writeb(0, i2c->base + MPC_I2C_SR); /* clear any status bits */
+ writeccr(i2c, CCR_MEN | CCR_MSTA); /* START */
+ readb(i2c->base + MPC_I2C_DR); /* init xfer */
+ udelay(15); /* let it hit the bus */
+ local_irq_save(flags); /* should not be delayed further */
+ writeccr(i2c, CCR_MEN | CCR_MSTA | CCR_RSTA); /* delay SDA */
readb(i2c->base + MPC_I2C_DR);
- writeccr(i2c, CCR_MEN);
- udelay(delay_val << 1);
+ if (k != 1)
+ udelay(5);
+ local_irq_restore(flags);
}
+ writeccr(i2c, CCR_MEN); /* Initiate STOP */
+ readb(i2c->base + MPC_I2C_DR);
+ udelay(15); /* Let STOP propagate */
+ writeccr(i2c, 0);
}
static int i2c_mpc_wait_sr(struct mpc_i2c *i2c, int mask)
diff --git a/drivers/iio/adc/ti-adc081c.c b/drivers/iio/adc/ti-adc081c.c
index 16fc608db36a..bd48b073e720 100644
--- a/drivers/iio/adc/ti-adc081c.c
+++ b/drivers/iio/adc/ti-adc081c.c
@@ -19,6 +19,7 @@
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
+#include <linux/property.h>
#include <linux/iio/iio.h>
#include <linux/iio/buffer.h>
@@ -156,13 +157,16 @@ static int adc081c_probe(struct i2c_client *client,
{
struct iio_dev *iio;
struct adc081c *adc;
- struct adcxx1c_model *model;
+ const struct adcxx1c_model *model;
int err;
if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WORD_DATA))
return -EOPNOTSUPP;
- model = &adcxx1c_models[id->driver_data];
+ if (dev_fwnode(&client->dev))
+ model = device_get_match_data(&client->dev);
+ else
+ model = &adcxx1c_models[id->driver_data];
iio = devm_iio_device_alloc(&client->dev, sizeof(*adc));
if (!iio)
@@ -210,10 +214,17 @@ static const struct i2c_device_id adc081c_id[] = {
};
MODULE_DEVICE_TABLE(i2c, adc081c_id);
+static const struct acpi_device_id adc081c_acpi_match[] = {
+ /* Used on some AAEON boards */
+ { "ADC081C", (kernel_ulong_t)&adcxx1c_models[ADC081C] },
+ { }
+};
+MODULE_DEVICE_TABLE(acpi, adc081c_acpi_match);
+
static const struct of_device_id adc081c_of_match[] = {
- { .compatible = "ti,adc081c" },
- { .compatible = "ti,adc101c" },
- { .compatible = "ti,adc121c" },
+ { .compatible = "ti,adc081c", .data = &adcxx1c_models[ADC081C] },
+ { .compatible = "ti,adc101c", .data = &adcxx1c_models[ADC101C] },
+ { .compatible = "ti,adc121c", .data = &adcxx1c_models[ADC121C] },
{ }
};
MODULE_DEVICE_TABLE(of, adc081c_of_match);
@@ -222,6 +233,7 @@ static struct i2c_driver adc081c_driver = {
.driver = {
.name = "adc081c",
.of_match_table = adc081c_of_match,
+ .acpi_match_table = adc081c_acpi_match,
},
.probe = adc081c_probe,
.id_table = adc081c_id,
diff --git a/drivers/iio/industrialio-trigger.c b/drivers/iio/industrialio-trigger.c
index 93990ff1dfe3..f504ed351b3e 100644
--- a/drivers/iio/industrialio-trigger.c
+++ b/drivers/iio/industrialio-trigger.c
@@ -162,6 +162,39 @@ static struct iio_trigger *iio_trigger_acquire_by_name(const char *name)
return trig;
}
+static void iio_reenable_work_fn(struct work_struct *work)
+{
+ struct iio_trigger *trig = container_of(work, struct iio_trigger,
+ reenable_work);
+
+ /*
+ * This 'might' occur after the trigger state is set to disabled -
+ * in that case the driver should skip reenabling.
+ */
+ trig->ops->reenable(trig);
+}
+
+/*
+ * In general, reenable callbacks may need to sleep and this path is
+ * not performance sensitive, so just queue up a work item
+ * to reneable the trigger for us.
+ *
+ * Races that can cause this.
+ * 1) A handler occurs entirely in interrupt context so the counter
+ * the final decrement is still in this interrupt.
+ * 2) The trigger has been removed, but one last interrupt gets through.
+ *
+ * For (1) we must call reenable, but not in atomic context.
+ * For (2) it should be safe to call reenanble, if drivers never blindly
+ * reenable after state is off.
+ */
+static void iio_trigger_notify_done_atomic(struct iio_trigger *trig)
+{
+ if (atomic_dec_and_test(&trig->use_count) && trig->ops &&
+ trig->ops->reenable)
+ schedule_work(&trig->reenable_work);
+}
+
void iio_trigger_poll(struct iio_trigger *trig)
{
int i;
@@ -173,7 +206,7 @@ void iio_trigger_poll(struct iio_trigger *trig)
if (trig->subirqs[i].enabled)
generic_handle_irq(trig->subirq_base + i);
else
- iio_trigger_notify_done(trig);
+ iio_trigger_notify_done_atomic(trig);
}
}
}
@@ -535,6 +568,7 @@ struct iio_trigger *viio_trigger_alloc(struct device *parent,
trig->dev.type = &iio_trig_type;
trig->dev.bus = &iio_bus_type;
device_initialize(&trig->dev);
+ INIT_WORK(&trig->reenable_work, iio_reenable_work_fn);
mutex_init(&trig->pool_lock);
trig->subirq_base = irq_alloc_descs(-1, 0,
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 704ce595542c..3d419741e891 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -766,6 +766,7 @@ static int cma_resolve_ib_dev(struct rdma_id_private *id_priv)
unsigned int p;
u16 pkey, index;
enum ib_port_state port_state;
+ int ret;
int i;
cma_dev = NULL;
@@ -784,9 +785,14 @@ static int cma_resolve_ib_dev(struct rdma_id_private *id_priv)
if (ib_get_cached_port_state(cur_dev->device, p, &port_state))
continue;
- for (i = 0; !rdma_query_gid(cur_dev->device,
- p, i, &gid);
- i++) {
+
+ for (i = 0; i < cur_dev->device->port_data[p].immutable.gid_tbl_len;
+ ++i) {
+ ret = rdma_query_gid(cur_dev->device, p, i,
+ &gid);
+ if (ret)
+ continue;
+
if (!memcmp(&gid, dgid, sizeof(gid))) {
cma_dev = cur_dev;
sgid = gid;
@@ -4031,8 +4037,7 @@ static int cma_resolve_ib_udp(struct rdma_id_private *id_priv,
memset(&req, 0, sizeof req);
offset = cma_user_data_offset(id_priv);
- req.private_data_len = offset + conn_param->private_data_len;
- if (req.private_data_len < conn_param->private_data_len)
+ if (check_add_overflow(offset, conn_param->private_data_len, &req.private_data_len))
return -EINVAL;
if (req.private_data_len) {
@@ -4091,8 +4096,7 @@ static int cma_connect_ib(struct rdma_id_private *id_priv,
memset(&req, 0, sizeof req);
offset = cma_user_data_offset(id_priv);
- req.private_data_len = offset + conn_param->private_data_len;
- if (req.private_data_len < conn_param->private_data_len)
+ if (check_add_overflow(offset, conn_param->private_data_len, &req.private_data_len))
return -EINVAL;
if (req.private_data_len) {
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index f4814bb7f082..6ab46648af90 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -2461,7 +2461,8 @@ int ib_find_gid(struct ib_device *device, union ib_gid *gid,
++i) {
ret = rdma_query_gid(device, port, i, &tmp_gid);
if (ret)
- return ret;
+ continue;
+
if (!memcmp(&tmp_gid, gid, sizeof *gid)) {
*port_num = port;
if (index)
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
index 5d384def5e5f..d2d39126f185 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
+++ b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
@@ -618,8 +618,6 @@ int bnxt_qplib_alloc_rcfw_channel(struct bnxt_qplib_res *res,
if (!cmdq->cmdq_bitmap)
goto fail;
- cmdq->bmap_size = bmap_size;
-
/* Allocate one extra to hold the QP1 entries */
rcfw->qp_tbl_size = qp_tbl_sz + 1;
rcfw->qp_tbl = kcalloc(rcfw->qp_tbl_size, sizeof(struct bnxt_qplib_qp_node),
@@ -667,8 +665,8 @@ void bnxt_qplib_disable_rcfw_channel(struct bnxt_qplib_rcfw *rcfw)
iounmap(cmdq->cmdq_mbox.reg.bar_reg);
iounmap(creq->creq_db.reg.bar_reg);
- indx = find_first_bit(cmdq->cmdq_bitmap, cmdq->bmap_size);
- if (indx != cmdq->bmap_size)
+ indx = find_first_bit(cmdq->cmdq_bitmap, rcfw->cmdq_depth);
+ if (indx != rcfw->cmdq_depth)
dev_err(&rcfw->pdev->dev,
"disabling RCFW with pending cmd-bit %lx\n", indx);
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
index 9474c0046582..0c6d0b70ce89 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
+++ b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
@@ -152,7 +152,6 @@ struct bnxt_qplib_cmdq_ctx {
wait_queue_head_t waitq;
unsigned long flags;
unsigned long *cmdq_bitmap;
- u32 bmap_size;
u32 seq_num;
};
diff --git a/drivers/infiniband/hw/cxgb4/qp.c b/drivers/infiniband/hw/cxgb4/qp.c
index d20b4ef2c853..ffbd9a89981e 100644
--- a/drivers/infiniband/hw/cxgb4/qp.c
+++ b/drivers/infiniband/hw/cxgb4/qp.c
@@ -2460,6 +2460,7 @@ int c4iw_ib_query_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
memset(attr, 0, sizeof(*attr));
memset(init_attr, 0, sizeof(*init_attr));
attr->qp_state = to_ib_qp_state(qhp->attr.state);
+ attr->cur_qp_state = to_ib_qp_state(qhp->attr.state);
init_attr->cap.max_send_wr = qhp->attr.sq_num_entries;
init_attr->cap.max_recv_wr = qhp->attr.rq_num_entries;
init_attr->cap.max_send_sge = qhp->attr.sq_max_sges;
diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c
index 5d39bd08582a..1f2209de8812 100644
--- a/drivers/infiniband/hw/hns/hns_roce_main.c
+++ b/drivers/infiniband/hw/hns/hns_roce_main.c
@@ -269,6 +269,9 @@ static enum rdma_link_layer hns_roce_get_link_layer(struct ib_device *device,
static int hns_roce_query_pkey(struct ib_device *ib_dev, u32 port, u16 index,
u16 *pkey)
{
+ if (index > 0)
+ return -EINVAL;
+
*pkey = PKEY_ID;
return 0;
@@ -349,7 +352,7 @@ static int hns_roce_mmap(struct ib_ucontext *context,
return rdma_user_mmap_io(context, vma,
to_hr_ucontext(context)->uar.pfn,
PAGE_SIZE,
- pgprot_noncached(vma->vm_page_prot),
+ pgprot_device(vma->vm_page_prot),
NULL);
/* vm_pgoff: 1 -- TPTR */
diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c
index 3d4e4a766574..f652d083ff20 100644
--- a/drivers/infiniband/hw/qedr/verbs.c
+++ b/drivers/infiniband/hw/qedr/verbs.c
@@ -1941,6 +1941,7 @@ static int qedr_create_user_qp(struct qedr_dev *dev,
/* db offset was calculated in copy_qp_uresp, now set in the user q */
if (qedr_qp_has_sq(qp)) {
qp->usq.db_addr = ctx->dpi_addr + uresp.sq_db_offset;
+ qp->sq.max_wr = attrs->cap.max_send_wr;
rc = qedr_db_recovery_add(dev, qp->usq.db_addr,
&qp->usq.db_rec_data->db_data,
DB_REC_WIDTH_32B,
@@ -1951,6 +1952,7 @@ static int qedr_create_user_qp(struct qedr_dev *dev,
if (qedr_qp_has_rq(qp)) {
qp->urq.db_addr = ctx->dpi_addr + uresp.rq_db_offset;
+ qp->rq.max_wr = attrs->cap.max_recv_wr;
rc = qedr_db_recovery_add(dev, qp->urq.db_addr,
&qp->urq.db_rec_data->db_data,
DB_REC_WIDTH_32B,
diff --git a/drivers/infiniband/sw/rxe/rxe_opcode.c b/drivers/infiniband/sw/rxe/rxe_opcode.c
index 3ef5a10a6efd..47ebaac8f475 100644
--- a/drivers/infiniband/sw/rxe/rxe_opcode.c
+++ b/drivers/infiniband/sw/rxe/rxe_opcode.c
@@ -117,7 +117,7 @@ struct rxe_opcode_info rxe_opcode[RXE_NUM_OPCODE] = {
}
},
[IB_OPCODE_RC_SEND_MIDDLE] = {
- .name = "IB_OPCODE_RC_SEND_MIDDLE]",
+ .name = "IB_OPCODE_RC_SEND_MIDDLE",
.mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK
| RXE_MIDDLE_MASK,
.length = RXE_BTH_BYTES,
diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.c b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
index bc8824b4ee0d..55ebe01ec995 100644
--- a/drivers/infiniband/ulp/rtrs/rtrs-clt.c
+++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
@@ -867,7 +867,7 @@ static struct rtrs_clt_sess *get_next_path_min_latency(struct path_it *it)
struct rtrs_clt_sess *min_path = NULL;
struct rtrs_clt *clt = it->clt;
struct rtrs_clt_sess *sess;
- ktime_t min_latency = INT_MAX;
+ ktime_t min_latency = KTIME_MAX;
ktime_t latency;
list_for_each_entry_rcu(sess, &clt->paths_list, s.entry) {
diff --git a/drivers/interconnect/qcom/icc-rpm.c b/drivers/interconnect/qcom/icc-rpm.c
index 54de49ca7808..ddf1805ded0c 100644
--- a/drivers/interconnect/qcom/icc-rpm.c
+++ b/drivers/interconnect/qcom/icc-rpm.c
@@ -68,6 +68,7 @@ static int qcom_icc_set(struct icc_node *src, struct icc_node *dst)
rate = max(sum_bw, max_peak_bw);
do_div(rate, qn->buswidth);
+ rate = min_t(u64, rate, LONG_MAX);
if (qn->rate == rate)
return 0;
diff --git a/drivers/iommu/amd/amd_iommu_types.h b/drivers/iommu/amd/amd_iommu_types.h
index 8dbe61e2b3c1..8394c2787ff8 100644
--- a/drivers/iommu/amd/amd_iommu_types.h
+++ b/drivers/iommu/amd/amd_iommu_types.h
@@ -643,8 +643,6 @@ struct amd_iommu {
/* DebugFS Info */
struct dentry *debugfs;
#endif
- /* IRQ notifier for IntCapXT interrupt */
- struct irq_affinity_notify intcapxt_notify;
};
static inline struct amd_iommu *dev_to_amd_iommu(struct device *dev)
diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
index 2a822b229bd0..50e5a728f12a 100644
--- a/drivers/iommu/amd/init.c
+++ b/drivers/iommu/amd/init.c
@@ -804,16 +804,27 @@ static int iommu_ga_log_enable(struct amd_iommu *iommu)
{
#ifdef CONFIG_IRQ_REMAP
u32 status, i;
+ u64 entry;
if (!iommu->ga_log)
return -EINVAL;
- status = readl(iommu->mmio_base + MMIO_STATUS_OFFSET);
-
/* Check if already running */
- if (status & (MMIO_STATUS_GALOG_RUN_MASK))
+ status = readl(iommu->mmio_base + MMIO_STATUS_OFFSET);
+ if (WARN_ON(status & (MMIO_STATUS_GALOG_RUN_MASK)))
return 0;
+ entry = iommu_virt_to_phys(iommu->ga_log) | GA_LOG_SIZE_512;
+ memcpy_toio(iommu->mmio_base + MMIO_GA_LOG_BASE_OFFSET,
+ &entry, sizeof(entry));
+ entry = (iommu_virt_to_phys(iommu->ga_log_tail) &
+ (BIT_ULL(52)-1)) & ~7ULL;
+ memcpy_toio(iommu->mmio_base + MMIO_GA_LOG_TAIL_OFFSET,
+ &entry, sizeof(entry));
+ writel(0x00, iommu->mmio_base + MMIO_GA_HEAD_OFFSET);
+ writel(0x00, iommu->mmio_base + MMIO_GA_TAIL_OFFSET);
+
+
iommu_feature_enable(iommu, CONTROL_GAINT_EN);
iommu_feature_enable(iommu, CONTROL_GALOG_EN);
@@ -823,7 +834,7 @@ static int iommu_ga_log_enable(struct amd_iommu *iommu)
break;
}
- if (i >= LOOP_TIMEOUT)
+ if (WARN_ON(i >= LOOP_TIMEOUT))
return -EINVAL;
#endif /* CONFIG_IRQ_REMAP */
return 0;
@@ -832,8 +843,6 @@ static int iommu_ga_log_enable(struct amd_iommu *iommu)
static int iommu_init_ga_log(struct amd_iommu *iommu)
{
#ifdef CONFIG_IRQ_REMAP
- u64 entry;
-
if (!AMD_IOMMU_GUEST_IR_VAPIC(amd_iommu_guest_ir))
return 0;
@@ -847,16 +856,6 @@ static int iommu_init_ga_log(struct amd_iommu *iommu)
if (!iommu->ga_log_tail)
goto err_out;
- entry = iommu_virt_to_phys(iommu->ga_log) | GA_LOG_SIZE_512;
- memcpy_toio(iommu->mmio_base + MMIO_GA_LOG_BASE_OFFSET,
- &entry, sizeof(entry));
- entry = (iommu_virt_to_phys(iommu->ga_log_tail) &
- (BIT_ULL(52)-1)) & ~7ULL;
- memcpy_toio(iommu->mmio_base + MMIO_GA_LOG_TAIL_OFFSET,
- &entry, sizeof(entry));
- writel(0x00, iommu->mmio_base + MMIO_GA_HEAD_OFFSET);
- writel(0x00, iommu->mmio_base + MMIO_GA_TAIL_OFFSET);
-
return 0;
err_out:
free_ga_log(iommu);
@@ -2013,48 +2012,18 @@ union intcapxt {
};
} __attribute__ ((packed));
-/*
- * There isn't really any need to mask/unmask at the irqchip level because
- * the 64-bit INTCAPXT registers can be updated atomically without tearing
- * when the affinity is being updated.
- */
-static void intcapxt_unmask_irq(struct irq_data *data)
-{
-}
-
-static void intcapxt_mask_irq(struct irq_data *data)
-{
-}
static struct irq_chip intcapxt_controller;
static int intcapxt_irqdomain_activate(struct irq_domain *domain,
struct irq_data *irqd, bool reserve)
{
- struct amd_iommu *iommu = irqd->chip_data;
- struct irq_cfg *cfg = irqd_cfg(irqd);
- union intcapxt xt;
-
- xt.capxt = 0ULL;
- xt.dest_mode_logical = apic->dest_mode_logical;
- xt.vector = cfg->vector;
- xt.destid_0_23 = cfg->dest_apicid & GENMASK(23, 0);
- xt.destid_24_31 = cfg->dest_apicid >> 24;
-
- /**
- * Current IOMMU implemtation uses the same IRQ for all
- * 3 IOMMU interrupts.
- */
- writeq(xt.capxt, iommu->mmio_base + MMIO_INTCAPXT_EVT_OFFSET);
- writeq(xt.capxt, iommu->mmio_base + MMIO_INTCAPXT_PPR_OFFSET);
- writeq(xt.capxt, iommu->mmio_base + MMIO_INTCAPXT_GALOG_OFFSET);
return 0;
}
static void intcapxt_irqdomain_deactivate(struct irq_domain *domain,
struct irq_data *irqd)
{
- intcapxt_mask_irq(irqd);
}
@@ -2088,6 +2057,38 @@ static void intcapxt_irqdomain_free(struct irq_domain *domain, unsigned int virq
irq_domain_free_irqs_top(domain, virq, nr_irqs);
}
+
+static void intcapxt_unmask_irq(struct irq_data *irqd)
+{
+ struct amd_iommu *iommu = irqd->chip_data;
+ struct irq_cfg *cfg = irqd_cfg(irqd);
+ union intcapxt xt;
+
+ xt.capxt = 0ULL;
+ xt.dest_mode_logical = apic->dest_mode_logical;
+ xt.vector = cfg->vector;
+ xt.destid_0_23 = cfg->dest_apicid & GENMASK(23, 0);
+ xt.destid_24_31 = cfg->dest_apicid >> 24;
+
+ /**
+ * Current IOMMU implementation uses the same IRQ for all
+ * 3 IOMMU interrupts.
+ */
+ writeq(xt.capxt, iommu->mmio_base + MMIO_INTCAPXT_EVT_OFFSET);
+ writeq(xt.capxt, iommu->mmio_base + MMIO_INTCAPXT_PPR_OFFSET);
+ writeq(xt.capxt, iommu->mmio_base + MMIO_INTCAPXT_GALOG_OFFSET);
+}
+
+static void intcapxt_mask_irq(struct irq_data *irqd)
+{
+ struct amd_iommu *iommu = irqd->chip_data;
+
+ writeq(0, iommu->mmio_base + MMIO_INTCAPXT_EVT_OFFSET);
+ writeq(0, iommu->mmio_base + MMIO_INTCAPXT_PPR_OFFSET);
+ writeq(0, iommu->mmio_base + MMIO_INTCAPXT_GALOG_OFFSET);
+}
+
+
static int intcapxt_set_affinity(struct irq_data *irqd,
const struct cpumask *mask, bool force)
{
@@ -2097,8 +2098,12 @@ static int intcapxt_set_affinity(struct irq_data *irqd,
ret = parent->chip->irq_set_affinity(parent, mask, force);
if (ret < 0 || ret == IRQ_SET_MASK_OK_DONE)
return ret;
+ return 0;
+}
- return intcapxt_irqdomain_activate(irqd->domain, irqd, false);
+static int intcapxt_set_wake(struct irq_data *irqd, unsigned int on)
+{
+ return on ? -EOPNOTSUPP : 0;
}
static struct irq_chip intcapxt_controller = {
@@ -2108,7 +2113,8 @@ static struct irq_chip intcapxt_controller = {
.irq_ack = irq_chip_ack_parent,
.irq_retrigger = irq_chip_retrigger_hierarchy,
.irq_set_affinity = intcapxt_set_affinity,
- .flags = IRQCHIP_SKIP_SET_WAKE,
+ .irq_set_wake = intcapxt_set_wake,
+ .flags = IRQCHIP_MASK_ON_SUSPEND,
};
static const struct irq_domain_ops intcapxt_domain_ops = {
@@ -2170,7 +2176,6 @@ static int iommu_setup_intcapxt(struct amd_iommu *iommu)
return ret;
}
- iommu_feature_enable(iommu, CONTROL_INTCAPXT_EN);
return 0;
}
@@ -2193,6 +2198,10 @@ static int iommu_init_irq(struct amd_iommu *iommu)
iommu->int_enabled = true;
enable_faults:
+
+ if (amd_iommu_xt_mode == IRQ_REMAP_X2APIC_MODE)
+ iommu_feature_enable(iommu, CONTROL_INTCAPXT_EN);
+
iommu_feature_enable(iommu, CONTROL_EVT_INT_EN);
if (iommu->ppr_log != NULL)
diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
index 55690af1b25d..c998960495b4 100644
--- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
+++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c
@@ -51,7 +51,7 @@ static void qcom_adreno_smmu_get_fault_info(const void *cookie,
info->fsynr1 = arm_smmu_cb_read(smmu, cfg->cbndx, ARM_SMMU_CB_FSYNR1);
info->far = arm_smmu_cb_readq(smmu, cfg->cbndx, ARM_SMMU_CB_FAR);
info->cbfrsynra = arm_smmu_gr1_read(smmu, ARM_SMMU_GR1_CBFRSYNRA(cfg->cbndx));
- info->ttbr0 = arm_smmu_cb_read(smmu, cfg->cbndx, ARM_SMMU_CB_TTBR0);
+ info->ttbr0 = arm_smmu_cb_readq(smmu, cfg->cbndx, ARM_SMMU_CB_TTBR0);
info->contextidr = arm_smmu_cb_read(smmu, cfg->cbndx, ARM_SMMU_CB_CONTEXTIDR);
}
diff --git a/drivers/iommu/io-pgtable-arm-v7s.c b/drivers/iommu/io-pgtable-arm-v7s.c
index bfb6acb651e5..be066c1503d3 100644
--- a/drivers/iommu/io-pgtable-arm-v7s.c
+++ b/drivers/iommu/io-pgtable-arm-v7s.c
@@ -246,13 +246,17 @@ static void *__arm_v7s_alloc_table(int lvl, gfp_t gfp,
__GFP_ZERO | ARM_V7S_TABLE_GFP_DMA, get_order(size));
else if (lvl == 2)
table = kmem_cache_zalloc(data->l2_tables, gfp);
+
+ if (!table)
+ return NULL;
+
phys = virt_to_phys(table);
if (phys != (arm_v7s_iopte)phys) {
/* Doesn't fit in PTE */
dev_err(dev, "Page table does not fit in PTE: %pa", &phys);
goto out_free;
}
- if (table && !cfg->coherent_walk) {
+ if (!cfg->coherent_walk) {
dma = dma_map_single(dev, table, size, DMA_TO_DEVICE);
if (dma_mapping_error(dev, dma))
goto out_free;
diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
index dd9e47189d0d..94ff319ae8ac 100644
--- a/drivers/iommu/io-pgtable-arm.c
+++ b/drivers/iommu/io-pgtable-arm.c
@@ -315,11 +315,12 @@ static int arm_lpae_init_pte(struct arm_lpae_io_pgtable *data,
static arm_lpae_iopte arm_lpae_install_table(arm_lpae_iopte *table,
arm_lpae_iopte *ptep,
arm_lpae_iopte curr,
- struct io_pgtable_cfg *cfg)
+ struct arm_lpae_io_pgtable *data)
{
arm_lpae_iopte old, new;
+ struct io_pgtable_cfg *cfg = &data->iop.cfg;
- new = __pa(table) | ARM_LPAE_PTE_TYPE_TABLE;
+ new = paddr_to_iopte(__pa(table), data) | ARM_LPAE_PTE_TYPE_TABLE;
if (cfg->quirks & IO_PGTABLE_QUIRK_ARM_NS)
new |= ARM_LPAE_PTE_NSTABLE;
@@ -380,7 +381,7 @@ static int __arm_lpae_map(struct arm_lpae_io_pgtable *data, unsigned long iova,
if (!cptep)
return -ENOMEM;
- pte = arm_lpae_install_table(cptep, ptep, 0, cfg);
+ pte = arm_lpae_install_table(cptep, ptep, 0, data);
if (pte)
__arm_lpae_free_pages(cptep, tblsz, cfg);
} else if (!cfg->coherent_walk && !(pte & ARM_LPAE_PTE_SW_SYNC)) {
@@ -592,7 +593,7 @@ static size_t arm_lpae_split_blk_unmap(struct arm_lpae_io_pgtable *data,
__arm_lpae_init_pte(data, blk_paddr, pte, lvl, 1, &tablep[i]);
}
- pte = arm_lpae_install_table(tablep, ptep, blk_pte, cfg);
+ pte = arm_lpae_install_table(tablep, ptep, blk_pte, data);
if (pte != blk_pte) {
__arm_lpae_free_pages(tablep, tablesz, cfg);
/*
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 3303d707bab4..f62fb6a58f10 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -287,11 +287,11 @@ int iommu_probe_device(struct device *dev)
*/
mutex_lock(&group->mutex);
iommu_alloc_default_domain(group, dev);
- mutex_unlock(&group->mutex);
if (group->default_domain) {
ret = __iommu_attach_device(group->default_domain, dev);
if (ret) {
+ mutex_unlock(&group->mutex);
iommu_group_put(group);
goto err_release;
}
@@ -299,6 +299,7 @@ int iommu_probe_device(struct device *dev)
iommu_create_device_direct_mappings(group, dev);
+ mutex_unlock(&group->mutex);
iommu_group_put(group);
if (ops->probe_finalize)
diff --git a/drivers/iommu/iova.c b/drivers/iommu/iova.c
index 9e8bc802ac05..920fcc27c9a1 100644
--- a/drivers/iommu/iova.c
+++ b/drivers/iommu/iova.c
@@ -83,8 +83,7 @@ static void free_iova_flush_queue(struct iova_domain *iovad)
if (!has_iova_flush_queue(iovad))
return;
- if (timer_pending(&iovad->fq_timer))
- del_timer(&iovad->fq_timer);
+ del_timer_sync(&iovad->fq_timer);
fq_destroy_all_entries(iovad);
diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index fd4e9a37fea6..7bbccb13b896 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -920,6 +920,22 @@ static int __gic_update_rdist_properties(struct redist_region *region,
{
u64 typer = gic_read_typer(ptr + GICR_TYPER);
+ /* Boot-time cleanip */
+ if ((typer & GICR_TYPER_VLPIS) && (typer & GICR_TYPER_RVPEID)) {
+ u64 val;
+
+ /* Deactivate any present vPE */
+ val = gicr_read_vpendbaser(ptr + SZ_128K + GICR_VPENDBASER);
+ if (val & GICR_VPENDBASER_Valid)
+ gicr_write_vpendbaser(GICR_VPENDBASER_PendingLast,
+ ptr + SZ_128K + GICR_VPENDBASER);
+
+ /* Mark the VPE table as invalid */
+ val = gicr_read_vpropbaser(ptr + SZ_128K + GICR_VPROPBASER);
+ val &= ~GICR_VPROPBASER_4_1_VALID;
+ gicr_write_vpropbaser(val, ptr + SZ_128K + GICR_VPROPBASER);
+ }
+
gic_data.rdists.has_vlpis &= !!(typer & GICR_TYPER_VLPIS);
/* RVPEID implies some form of DirectLPI, no matter what the doc says... :-/ */
diff --git a/drivers/leds/leds-lp55xx-common.c b/drivers/leds/leds-lp55xx-common.c
index d1657c46ee2f..9fdfc1b9a1a0 100644
--- a/drivers/leds/leds-lp55xx-common.c
+++ b/drivers/leds/leds-lp55xx-common.c
@@ -439,6 +439,8 @@ int lp55xx_init_device(struct lp55xx_chip *chip)
return -EINVAL;
if (pdata->enable_gpiod) {
+ gpiod_direction_output(pdata->enable_gpiod, 0);
+
gpiod_set_consumer_name(pdata->enable_gpiod, "LP55xx enable");
gpiod_set_value(pdata->enable_gpiod, 0);
usleep_range(1000, 2000); /* Keep enable down at least 1ms */
@@ -694,7 +696,7 @@ struct lp55xx_platform_data *lp55xx_of_populate_pdata(struct device *dev,
of_property_read_u8(np, "clock-mode", &pdata->clock_mode);
pdata->enable_gpiod = devm_gpiod_get_optional(dev, "enable",
- GPIOD_OUT_LOW);
+ GPIOD_ASIS);
if (IS_ERR(pdata->enable_gpiod))
return ERR_CAST(pdata->enable_gpiod);
diff --git a/drivers/mailbox/mailbox-mpfs.c b/drivers/mailbox/mailbox-mpfs.c
index 0d6e2231a2c7..4e34854d1238 100644
--- a/drivers/mailbox/mailbox-mpfs.c
+++ b/drivers/mailbox/mailbox-mpfs.c
@@ -232,7 +232,7 @@ static int mpfs_mbox_probe(struct platform_device *pdev)
}
static const struct of_device_id mpfs_mbox_of_match[] = {
- {.compatible = "microchip,polarfire-soc-mailbox", },
+ {.compatible = "microchip,mpfs-mailbox", },
{},
};
MODULE_DEVICE_TABLE(of, mpfs_mbox_of_match);
diff --git a/drivers/mailbox/mtk-cmdq-mailbox.c b/drivers/mailbox/mtk-cmdq-mailbox.c
index bb4793c7b38f..3583c2aad0ed 100644
--- a/drivers/mailbox/mtk-cmdq-mailbox.c
+++ b/drivers/mailbox/mtk-cmdq-mailbox.c
@@ -660,7 +660,7 @@ static const struct gce_plat gce_plat_v5 = {
.thread_nr = 24,
.shift = 3,
.control_by_sw = true,
- .gce_num = 2
+ .gce_num = 1
};
static const struct gce_plat gce_plat_v6 = {
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 76d9da49fda7..671bb454f164 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1794,8 +1794,10 @@ static struct mapped_device *alloc_dev(int minor)
if (IS_ENABLED(CONFIG_DAX_DRIVER)) {
md->dax_dev = alloc_dax(md, md->disk->disk_name,
&dm_dax_ops, 0);
- if (IS_ERR(md->dax_dev))
+ if (IS_ERR(md->dax_dev)) {
+ md->dax_dev = NULL;
goto bad;
+ }
}
format_dev_t(md->name, MKDEV(_major, minor));
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 44006b860d0a..2d31a079be33 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -5872,13 +5872,6 @@ int md_run(struct mddev *mddev)
if (err)
goto exit_bio_set;
}
- if (mddev->level != 1 && mddev->level != 10 &&
- !bioset_initialized(&mddev->io_acct_set)) {
- err = bioset_init(&mddev->io_acct_set, BIO_POOL_SIZE,
- offsetof(struct md_io_acct, bio_clone), 0);
- if (err)
- goto exit_sync_set;
- }
spin_lock(&pers_lock);
pers = find_pers(mddev->level, mddev->clevel);
@@ -6055,9 +6048,6 @@ int md_run(struct mddev *mddev)
module_put(pers->owner);
md_bitmap_destroy(mddev);
abort:
- if (mddev->level != 1 && mddev->level != 10)
- bioset_exit(&mddev->io_acct_set);
-exit_sync_set:
bioset_exit(&mddev->sync_set);
exit_bio_set:
bioset_exit(&mddev->bio_set);
@@ -8590,6 +8580,23 @@ void md_submit_discard_bio(struct mddev *mddev, struct md_rdev *rdev,
}
EXPORT_SYMBOL_GPL(md_submit_discard_bio);
+int acct_bioset_init(struct mddev *mddev)
+{
+ int err = 0;
+
+ if (!bioset_initialized(&mddev->io_acct_set))
+ err = bioset_init(&mddev->io_acct_set, BIO_POOL_SIZE,
+ offsetof(struct md_io_acct, bio_clone), 0);
+ return err;
+}
+EXPORT_SYMBOL_GPL(acct_bioset_init);
+
+void acct_bioset_exit(struct mddev *mddev)
+{
+ bioset_exit(&mddev->io_acct_set);
+}
+EXPORT_SYMBOL_GPL(acct_bioset_exit);
+
static void md_end_io_acct(struct bio *bio)
{
struct md_io_acct *md_io_acct = bio->bi_private;
diff --git a/drivers/md/md.h b/drivers/md/md.h
index 4c96c36bd01a..62852d701145 100644
--- a/drivers/md/md.h
+++ b/drivers/md/md.h
@@ -721,6 +721,8 @@ extern void md_error(struct mddev *mddev, struct md_rdev *rdev);
extern void md_finish_reshape(struct mddev *mddev);
void md_submit_discard_bio(struct mddev *mddev, struct md_rdev *rdev,
struct bio *bio, sector_t start, sector_t size);
+int acct_bioset_init(struct mddev *mddev);
+void acct_bioset_exit(struct mddev *mddev);
void md_account_bio(struct mddev *mddev, struct bio **bio);
extern bool __must_check md_flush_request(struct mddev *mddev, struct bio *bio);
diff --git a/drivers/md/persistent-data/dm-btree.c b/drivers/md/persistent-data/dm-btree.c
index 0703ca7a7d9a..5ce64e93aae7 100644
--- a/drivers/md/persistent-data/dm-btree.c
+++ b/drivers/md/persistent-data/dm-btree.c
@@ -81,14 +81,16 @@ void inc_children(struct dm_transaction_manager *tm, struct btree_node *n,
}
static int insert_at(size_t value_size, struct btree_node *node, unsigned index,
- uint64_t key, void *value)
- __dm_written_to_disk(value)
+ uint64_t key, void *value)
+ __dm_written_to_disk(value)
{
uint32_t nr_entries = le32_to_cpu(node->header.nr_entries);
+ uint32_t max_entries = le32_to_cpu(node->header.max_entries);
__le64 key_le = cpu_to_le64(key);
if (index > nr_entries ||
- index >= le32_to_cpu(node->header.max_entries)) {
+ index >= max_entries ||
+ nr_entries >= max_entries) {
DMERR("too many entries in btree node for insert");
__dm_unbless_for_disk(value);
return -ENOMEM;
diff --git a/drivers/md/persistent-data/dm-space-map-common.c b/drivers/md/persistent-data/dm-space-map-common.c
index 4a6a2a9b4eb4..bfbfa750e016 100644
--- a/drivers/md/persistent-data/dm-space-map-common.c
+++ b/drivers/md/persistent-data/dm-space-map-common.c
@@ -283,6 +283,11 @@ int sm_ll_lookup_bitmap(struct ll_disk *ll, dm_block_t b, uint32_t *result)
struct disk_index_entry ie_disk;
struct dm_block *blk;
+ if (b >= ll->nr_blocks) {
+ DMERR_LIMIT("metadata block out of bounds");
+ return -EINVAL;
+ }
+
b = do_div(index, ll->entries_per_block);
r = ll->load_ie(ll, index, &ie_disk);
if (r < 0)
diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c
index 62c8b6adac70..b59a77b31b90 100644
--- a/drivers/md/raid0.c
+++ b/drivers/md/raid0.c
@@ -356,7 +356,21 @@ static sector_t raid0_size(struct mddev *mddev, sector_t sectors, int raid_disks
return array_sectors;
}
-static void raid0_free(struct mddev *mddev, void *priv);
+static void free_conf(struct mddev *mddev, struct r0conf *conf)
+{
+ kfree(conf->strip_zone);
+ kfree(conf->devlist);
+ kfree(conf);
+ mddev->private = NULL;
+}
+
+static void raid0_free(struct mddev *mddev, void *priv)
+{
+ struct r0conf *conf = priv;
+
+ free_conf(mddev, conf);
+ acct_bioset_exit(mddev);
+}
static int raid0_run(struct mddev *mddev)
{
@@ -370,11 +384,16 @@ static int raid0_run(struct mddev *mddev)
if (md_check_no_bitmap(mddev))
return -EINVAL;
+ if (acct_bioset_init(mddev)) {
+ pr_err("md/raid0:%s: alloc acct bioset failed.\n", mdname(mddev));
+ return -ENOMEM;
+ }
+
/* if private is not null, we are here after takeover */
if (mddev->private == NULL) {
ret = create_strip_zones(mddev, &conf);
if (ret < 0)
- return ret;
+ goto exit_acct_set;
mddev->private = conf;
}
conf = mddev->private;
@@ -413,17 +432,16 @@ static int raid0_run(struct mddev *mddev)
dump_zones(mddev);
ret = md_integrity_register(mddev);
+ if (ret)
+ goto free;
return ret;
-}
-static void raid0_free(struct mddev *mddev, void *priv)
-{
- struct r0conf *conf = priv;
-
- kfree(conf->strip_zone);
- kfree(conf->devlist);
- kfree(conf);
+free:
+ free_conf(mddev, conf);
+exit_acct_set:
+ acct_bioset_exit(mddev);
+ return ret;
}
static void raid0_handle_discard(struct mddev *mddev, struct bio *bio)
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 02ed53b20654..b9d062f0a02b 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -7446,12 +7446,19 @@ static int raid5_run(struct mddev *mddev)
struct md_rdev *rdev;
struct md_rdev *journal_dev = NULL;
sector_t reshape_offset = 0;
- int i;
+ int i, ret = 0;
long long min_offset_diff = 0;
int first = 1;
- if (mddev_init_writes_pending(mddev) < 0)
+ if (acct_bioset_init(mddev)) {
+ pr_err("md/raid456:%s: alloc acct bioset failed.\n", mdname(mddev));
return -ENOMEM;
+ }
+
+ if (mddev_init_writes_pending(mddev) < 0) {
+ ret = -ENOMEM;
+ goto exit_acct_set;
+ }
if (mddev->recovery_cp != MaxSector)
pr_notice("md/raid:%s: not clean -- starting background reconstruction\n",
@@ -7482,7 +7489,8 @@ static int raid5_run(struct mddev *mddev)
(mddev->bitmap_info.offset || mddev->bitmap_info.file)) {
pr_notice("md/raid:%s: array cannot have both journal and bitmap\n",
mdname(mddev));
- return -EINVAL;
+ ret = -EINVAL;
+ goto exit_acct_set;
}
if (mddev->reshape_position != MaxSector) {
@@ -7507,13 +7515,15 @@ static int raid5_run(struct mddev *mddev)
if (journal_dev) {
pr_warn("md/raid:%s: don't support reshape with journal - aborting.\n",
mdname(mddev));
- return -EINVAL;
+ ret = -EINVAL;
+ goto exit_acct_set;
}
if (mddev->new_level != mddev->level) {
pr_warn("md/raid:%s: unsupported reshape required - aborting.\n",
mdname(mddev));
- return -EINVAL;
+ ret = -EINVAL;
+ goto exit_acct_set;
}
old_disks = mddev->raid_disks - mddev->delta_disks;
/* reshape_position must be on a new-stripe boundary, and one
@@ -7529,7 +7539,8 @@ static int raid5_run(struct mddev *mddev)
if (sector_div(here_new, chunk_sectors * new_data_disks)) {
pr_warn("md/raid:%s: reshape_position not on a stripe boundary\n",
mdname(mddev));
- return -EINVAL;
+ ret = -EINVAL;
+ goto exit_acct_set;
}
reshape_offset = here_new * chunk_sectors;
/* here_new is the stripe we will write to */
@@ -7551,7 +7562,8 @@ static int raid5_run(struct mddev *mddev)
else if (mddev->ro == 0) {
pr_warn("md/raid:%s: in-place reshape must be started in read-only mode - aborting\n",
mdname(mddev));
- return -EINVAL;
+ ret = -EINVAL;
+ goto exit_acct_set;
}
} else if (mddev->reshape_backwards
? (here_new * chunk_sectors + min_offset_diff <=
@@ -7561,7 +7573,8 @@ static int raid5_run(struct mddev *mddev)
/* Reading from the same stripe as writing to - bad */
pr_warn("md/raid:%s: reshape_position too early for auto-recovery - aborting.\n",
mdname(mddev));
- return -EINVAL;
+ ret = -EINVAL;
+ goto exit_acct_set;
}
pr_debug("md/raid:%s: reshape will continue\n", mdname(mddev));
/* OK, we should be able to continue; */
@@ -7585,8 +7598,10 @@ static int raid5_run(struct mddev *mddev)
else
conf = mddev->private;
- if (IS_ERR(conf))
- return PTR_ERR(conf);
+ if (IS_ERR(conf)) {
+ ret = PTR_ERR(conf);
+ goto exit_acct_set;
+ }
if (test_bit(MD_HAS_JOURNAL, &mddev->flags)) {
if (!journal_dev) {
@@ -7786,7 +7801,10 @@ static int raid5_run(struct mddev *mddev)
free_conf(conf);
mddev->private = NULL;
pr_warn("md/raid:%s: failed to run raid set.\n", mdname(mddev));
- return -EIO;
+ ret = -EIO;
+exit_acct_set:
+ acct_bioset_exit(mddev);
+ return ret;
}
static void raid5_free(struct mddev *mddev, void *priv)
@@ -7794,6 +7812,7 @@ static void raid5_free(struct mddev *mddev, void *priv)
struct r5conf *conf = priv;
free_conf(conf);
+ acct_bioset_exit(mddev);
mddev->to_remove = &raid5_attrs_group;
}
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index b07812657cee..f3f24c63536b 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -141,10 +141,10 @@ config MEDIA_TEST_SUPPORT
prompt "Test drivers" if MEDIA_SUPPORT_FILTER
default y if !MEDIA_SUPPORT_FILTER
help
- Those drivers should not be used on production Kernels, but
- can be useful on debug ones. It enables several dummy drivers
- that simulate a real hardware. Very useful to test userspace
- applications and to validate if the subsystem core is doesn't
+ These drivers should not be used on production kernels, but
+ can be useful on debug ones. This option enables several dummy drivers
+ that simulate real hardware. Very useful to test userspace
+ applications and to validate if the subsystem core doesn't
have regressions.
Say Y if you want to use some virtual test driver.
diff --git a/drivers/media/cec/core/cec-adap.c b/drivers/media/cec/core/cec-adap.c
index cd9cb354dc2c..1f599e300e42 100644
--- a/drivers/media/cec/core/cec-adap.c
+++ b/drivers/media/cec/core/cec-adap.c
@@ -161,10 +161,10 @@ static void cec_queue_event(struct cec_adapter *adap,
u64 ts = ktime_get_ns();
struct cec_fh *fh;
- mutex_lock(&adap->devnode.lock);
+ mutex_lock(&adap->devnode.lock_fhs);
list_for_each_entry(fh, &adap->devnode.fhs, list)
cec_queue_event_fh(fh, ev, ts);
- mutex_unlock(&adap->devnode.lock);
+ mutex_unlock(&adap->devnode.lock_fhs);
}
/* Notify userspace that the CEC pin changed state at the given time. */
@@ -178,11 +178,12 @@ void cec_queue_pin_cec_event(struct cec_adapter *adap, bool is_high,
};
struct cec_fh *fh;
- mutex_lock(&adap->devnode.lock);
- list_for_each_entry(fh, &adap->devnode.fhs, list)
+ mutex_lock(&adap->devnode.lock_fhs);
+ list_for_each_entry(fh, &adap->devnode.fhs, list) {
if (fh->mode_follower == CEC_MODE_MONITOR_PIN)
cec_queue_event_fh(fh, &ev, ktime_to_ns(ts));
- mutex_unlock(&adap->devnode.lock);
+ }
+ mutex_unlock(&adap->devnode.lock_fhs);
}
EXPORT_SYMBOL_GPL(cec_queue_pin_cec_event);
@@ -195,10 +196,10 @@ void cec_queue_pin_hpd_event(struct cec_adapter *adap, bool is_high, ktime_t ts)
};
struct cec_fh *fh;
- mutex_lock(&adap->devnode.lock);
+ mutex_lock(&adap->devnode.lock_fhs);
list_for_each_entry(fh, &adap->devnode.fhs, list)
cec_queue_event_fh(fh, &ev, ktime_to_ns(ts));
- mutex_unlock(&adap->devnode.lock);
+ mutex_unlock(&adap->devnode.lock_fhs);
}
EXPORT_SYMBOL_GPL(cec_queue_pin_hpd_event);
@@ -211,10 +212,10 @@ void cec_queue_pin_5v_event(struct cec_adapter *adap, bool is_high, ktime_t ts)
};
struct cec_fh *fh;
- mutex_lock(&adap->devnode.lock);
+ mutex_lock(&adap->devnode.lock_fhs);
list_for_each_entry(fh, &adap->devnode.fhs, list)
cec_queue_event_fh(fh, &ev, ktime_to_ns(ts));
- mutex_unlock(&adap->devnode.lock);
+ mutex_unlock(&adap->devnode.lock_fhs);
}
EXPORT_SYMBOL_GPL(cec_queue_pin_5v_event);
@@ -286,12 +287,12 @@ static void cec_queue_msg_monitor(struct cec_adapter *adap,
u32 monitor_mode = valid_la ? CEC_MODE_MONITOR :
CEC_MODE_MONITOR_ALL;
- mutex_lock(&adap->devnode.lock);
+ mutex_lock(&adap->devnode.lock_fhs);
list_for_each_entry(fh, &adap->devnode.fhs, list) {
if (fh->mode_follower >= monitor_mode)
cec_queue_msg_fh(fh, msg);
}
- mutex_unlock(&adap->devnode.lock);
+ mutex_unlock(&adap->devnode.lock_fhs);
}
/*
@@ -302,12 +303,12 @@ static void cec_queue_msg_followers(struct cec_adapter *adap,
{
struct cec_fh *fh;
- mutex_lock(&adap->devnode.lock);
+ mutex_lock(&adap->devnode.lock_fhs);
list_for_each_entry(fh, &adap->devnode.fhs, list) {
if (fh->mode_follower == CEC_MODE_FOLLOWER)
cec_queue_msg_fh(fh, msg);
}
- mutex_unlock(&adap->devnode.lock);
+ mutex_unlock(&adap->devnode.lock_fhs);
}
/* Notify userspace of an adapter state change. */
@@ -1573,6 +1574,7 @@ void __cec_s_phys_addr(struct cec_adapter *adap, u16 phys_addr, bool block)
/* Disabling monitor all mode should always succeed */
if (adap->monitor_all_cnt)
WARN_ON(call_op(adap, adap_monitor_all_enable, false));
+ /* serialize adap_enable */
mutex_lock(&adap->devnode.lock);
if (adap->needs_hpd || list_empty(&adap->devnode.fhs)) {
WARN_ON(adap->ops->adap_enable(adap, false));
@@ -1584,14 +1586,16 @@ void __cec_s_phys_addr(struct cec_adapter *adap, u16 phys_addr, bool block)
return;
}
+ /* serialize adap_enable */
mutex_lock(&adap->devnode.lock);
adap->last_initiator = 0xff;
adap->transmit_in_progress = false;
- if ((adap->needs_hpd || list_empty(&adap->devnode.fhs)) &&
- adap->ops->adap_enable(adap, true)) {
- mutex_unlock(&adap->devnode.lock);
- return;
+ if (adap->needs_hpd || list_empty(&adap->devnode.fhs)) {
+ if (adap->ops->adap_enable(adap, true)) {
+ mutex_unlock(&adap->devnode.lock);
+ return;
+ }
}
if (adap->monitor_all_cnt &&
diff --git a/drivers/media/cec/core/cec-api.c b/drivers/media/cec/core/cec-api.c
index 769e6b4cddce..52c30e4e2005 100644
--- a/drivers/media/cec/core/cec-api.c
+++ b/drivers/media/cec/core/cec-api.c
@@ -586,6 +586,7 @@ static int cec_open(struct inode *inode, struct file *filp)
return err;
}
+ /* serialize adap_enable */
mutex_lock(&devnode->lock);
if (list_empty(&devnode->fhs) &&
!adap->needs_hpd &&
@@ -624,7 +625,9 @@ static int cec_open(struct inode *inode, struct file *filp)
}
#endif
+ mutex_lock(&devnode->lock_fhs);
list_add(&fh->list, &devnode->fhs);
+ mutex_unlock(&devnode->lock_fhs);
mutex_unlock(&devnode->lock);
return 0;
@@ -653,8 +656,11 @@ static int cec_release(struct inode *inode, struct file *filp)
cec_monitor_all_cnt_dec(adap);
mutex_unlock(&adap->lock);
+ /* serialize adap_enable */
mutex_lock(&devnode->lock);
+ mutex_lock(&devnode->lock_fhs);
list_del(&fh->list);
+ mutex_unlock(&devnode->lock_fhs);
if (cec_is_registered(adap) && list_empty(&devnode->fhs) &&
!adap->needs_hpd && adap->phys_addr == CEC_PHYS_ADDR_INVALID) {
WARN_ON(adap->ops->adap_enable(adap, false));
diff --git a/drivers/media/cec/core/cec-core.c b/drivers/media/cec/core/cec-core.c
index 551689d371a7..ec67065d5202 100644
--- a/drivers/media/cec/core/cec-core.c
+++ b/drivers/media/cec/core/cec-core.c
@@ -169,8 +169,10 @@ static void cec_devnode_unregister(struct cec_adapter *adap)
devnode->registered = false;
devnode->unregistered = true;
+ mutex_lock(&devnode->lock_fhs);
list_for_each_entry(fh, &devnode->fhs, list)
wake_up_interruptible(&fh->wait);
+ mutex_unlock(&devnode->lock_fhs);
mutex_unlock(&devnode->lock);
@@ -272,6 +274,7 @@ struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
/* adap->devnode initialization */
INIT_LIST_HEAD(&adap->devnode.fhs);
+ mutex_init(&adap->devnode.lock_fhs);
mutex_init(&adap->devnode.lock);
adap->kthread = kthread_run(cec_thread_func, adap, "cec-%s", name);
diff --git a/drivers/media/cec/core/cec-pin.c b/drivers/media/cec/core/cec-pin.c
index 8c613aa649c6..0eb90cc0ffb0 100644
--- a/drivers/media/cec/core/cec-pin.c
+++ b/drivers/media/cec/core/cec-pin.c
@@ -1033,6 +1033,7 @@ static int cec_pin_thread_func(void *_adap)
{
struct cec_adapter *adap = _adap;
struct cec_pin *pin = adap->pin;
+ bool irq_enabled = false;
for (;;) {
wait_event_interruptible(pin->kthread_waitq,
@@ -1060,6 +1061,7 @@ static int cec_pin_thread_func(void *_adap)
ns_to_ktime(pin->work_rx_msg.rx_ts));
msg->len = 0;
}
+
if (pin->work_tx_status) {
unsigned int tx_status = pin->work_tx_status;
@@ -1083,27 +1085,39 @@ static int cec_pin_thread_func(void *_adap)
switch (atomic_xchg(&pin->work_irq_change,
CEC_PIN_IRQ_UNCHANGED)) {
case CEC_PIN_IRQ_DISABLE:
- pin->ops->disable_irq(adap);
+ if (irq_enabled) {
+ pin->ops->disable_irq(adap);
+ irq_enabled = false;
+ }
cec_pin_high(pin);
cec_pin_to_idle(pin);
hrtimer_start(&pin->timer, ns_to_ktime(0),
HRTIMER_MODE_REL);
break;
case CEC_PIN_IRQ_ENABLE:
+ if (irq_enabled)
+ break;
pin->enable_irq_failed = !pin->ops->enable_irq(adap);
if (pin->enable_irq_failed) {
cec_pin_to_idle(pin);
hrtimer_start(&pin->timer, ns_to_ktime(0),
HRTIMER_MODE_REL);
+ } else {
+ irq_enabled = true;
}
break;
default:
break;
}
-
if (kthread_should_stop())
break;
}
+ if (pin->ops->disable_irq && irq_enabled)
+ pin->ops->disable_irq(adap);
+ hrtimer_cancel(&pin->timer);
+ cec_pin_read(pin);
+ cec_pin_to_idle(pin);
+ pin->state = CEC_ST_OFF;
return 0;
}
@@ -1130,13 +1144,7 @@ static int cec_pin_adap_enable(struct cec_adapter *adap, bool enable)
hrtimer_start(&pin->timer, ns_to_ktime(0),
HRTIMER_MODE_REL);
} else {
- if (pin->ops->disable_irq)
- pin->ops->disable_irq(adap);
- hrtimer_cancel(&pin->timer);
kthread_stop(pin->kthread);
- cec_pin_read(pin);
- cec_pin_to_idle(pin);
- pin->state = CEC_ST_OFF;
}
return 0;
}
@@ -1157,11 +1165,8 @@ void cec_pin_start_timer(struct cec_pin *pin)
if (pin->state != CEC_ST_RX_IRQ)
return;
- atomic_set(&pin->work_irq_change, CEC_PIN_IRQ_UNCHANGED);
- pin->ops->disable_irq(pin->adap);
- cec_pin_high(pin);
- cec_pin_to_idle(pin);
- hrtimer_start(&pin->timer, ns_to_ktime(0), HRTIMER_MODE_REL);
+ atomic_set(&pin->work_irq_change, CEC_PIN_IRQ_DISABLE);
+ wake_up_interruptible(&pin->kthread_waitq);
}
static int cec_pin_adap_transmit(struct cec_adapter *adap, u8 attempts,
diff --git a/drivers/media/common/saa7146/saa7146_fops.c b/drivers/media/common/saa7146/saa7146_fops.c
index baf5772c52a9..be3215977714 100644
--- a/drivers/media/common/saa7146/saa7146_fops.c
+++ b/drivers/media/common/saa7146/saa7146_fops.c
@@ -521,7 +521,7 @@ int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv)
ERR("out of memory. aborting.\n");
kfree(vv);
v4l2_ctrl_handler_free(hdl);
- return -1;
+ return -ENOMEM;
}
saa7146_video_uops.init(dev,vv);
diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c
index be376f3011b6..f8c65b040105 100644
--- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c
+++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c
@@ -157,7 +157,7 @@ static void *vb2_dc_alloc(struct vb2_buffer *vb,
GFP_KERNEL | vb->vb2_queue->gfp_flags,
buf->attrs);
if (!buf->cookie) {
- dev_err(dev, "dma_alloc_coherent of size %ld failed\n", size);
+ dev_err(dev, "dma_alloc_coherent of size %lu failed\n", size);
kfree(buf);
return ERR_PTR(-ENOMEM);
}
@@ -204,9 +204,9 @@ static int vb2_dc_mmap(void *buf_priv, struct vm_area_struct *vma)
vma->vm_ops->open(vma);
- pr_debug("%s: mapped dma addr 0x%08lx at 0x%08lx, size %ld\n",
- __func__, (unsigned long)buf->dma_addr, vma->vm_start,
- buf->size);
+ pr_debug("%s: mapped dma addr 0x%08lx at 0x%08lx, size %lu\n",
+ __func__, (unsigned long)buf->dma_addr, vma->vm_start,
+ buf->size);
return 0;
}
diff --git a/drivers/media/dvb-core/dmxdev.c b/drivers/media/dvb-core/dmxdev.c
index 5d5a48475a54..01f288fa37e0 100644
--- a/drivers/media/dvb-core/dmxdev.c
+++ b/drivers/media/dvb-core/dmxdev.c
@@ -1413,7 +1413,7 @@ static const struct dvb_device dvbdev_dvr = {
};
int dvb_dmxdev_init(struct dmxdev *dmxdev, struct dvb_adapter *dvb_adapter)
{
- int i;
+ int i, ret;
if (dmxdev->demux->open(dmxdev->demux) < 0)
return -EUSERS;
@@ -1432,14 +1432,26 @@ int dvb_dmxdev_init(struct dmxdev *dmxdev, struct dvb_adapter *dvb_adapter)
DMXDEV_STATE_FREE);
}
- dvb_register_device(dvb_adapter, &dmxdev->dvbdev, &dvbdev_demux, dmxdev,
+ ret = dvb_register_device(dvb_adapter, &dmxdev->dvbdev, &dvbdev_demux, dmxdev,
DVB_DEVICE_DEMUX, dmxdev->filternum);
- dvb_register_device(dvb_adapter, &dmxdev->dvr_dvbdev, &dvbdev_dvr,
+ if (ret < 0)
+ goto err_register_dvbdev;
+
+ ret = dvb_register_device(dvb_adapter, &dmxdev->dvr_dvbdev, &dvbdev_dvr,
dmxdev, DVB_DEVICE_DVR, dmxdev->filternum);
+ if (ret < 0)
+ goto err_register_dvr_dvbdev;
dvb_ringbuffer_init(&dmxdev->dvr_buffer, NULL, 8192);
return 0;
+
+err_register_dvr_dvbdev:
+ dvb_unregister_device(dmxdev->dvbdev);
+err_register_dvbdev:
+ vfree(dmxdev->filter);
+ dmxdev->filter = NULL;
+ return ret;
}
EXPORT_SYMBOL(dvb_dmxdev_init);
diff --git a/drivers/media/dvb-frontends/dib8000.c b/drivers/media/dvb-frontends/dib8000.c
index bb02354a48b8..d67f2dd997d0 100644
--- a/drivers/media/dvb-frontends/dib8000.c
+++ b/drivers/media/dvb-frontends/dib8000.c
@@ -4473,8 +4473,10 @@ static struct dvb_frontend *dib8000_init(struct i2c_adapter *i2c_adap, u8 i2c_ad
state->timf_default = cfg->pll->timf;
- if (dib8000_identify(&state->i2c) == 0)
+ if (dib8000_identify(&state->i2c) == 0) {
+ kfree(fe);
goto error;
+ }
dibx000_init_i2c_master(&state->i2c_master, DIB8000, state->i2c.adap, state->i2c.addr);
diff --git a/drivers/media/i2c/imx274.c b/drivers/media/i2c/imx274.c
index 0dce92872176..4d9b64c61f60 100644
--- a/drivers/media/i2c/imx274.c
+++ b/drivers/media/i2c/imx274.c
@@ -1367,6 +1367,10 @@ static int imx274_s_frame_interval(struct v4l2_subdev *sd,
int min, max, def;
int ret;
+ ret = pm_runtime_resume_and_get(&imx274->client->dev);
+ if (ret < 0)
+ return ret;
+
mutex_lock(&imx274->lock);
ret = imx274_set_frame_interval(imx274, fi->interval);
@@ -1398,6 +1402,7 @@ static int imx274_s_frame_interval(struct v4l2_subdev *sd,
unlock:
mutex_unlock(&imx274->lock);
+ pm_runtime_put(&imx274->client->dev);
return ret;
}
diff --git a/drivers/media/i2c/ov8865.c b/drivers/media/i2c/ov8865.c
index ce50f3ea87b8..92f6c3a940cf 100644
--- a/drivers/media/i2c/ov8865.c
+++ b/drivers/media/i2c/ov8865.c
@@ -2330,27 +2330,27 @@ static int ov8865_sensor_power(struct ov8865_sensor *sensor, bool on)
if (ret) {
dev_err(sensor->dev,
"failed to enable DOVDD regulator\n");
- goto disable;
+ return ret;
}
ret = regulator_enable(sensor->avdd);
if (ret) {
dev_err(sensor->dev,
"failed to enable AVDD regulator\n");
- goto disable;
+ goto disable_dovdd;
}
ret = regulator_enable(sensor->dvdd);
if (ret) {
dev_err(sensor->dev,
"failed to enable DVDD regulator\n");
- goto disable;
+ goto disable_avdd;
}
ret = clk_prepare_enable(sensor->extclk);
if (ret) {
dev_err(sensor->dev, "failed to enable EXTCLK clock\n");
- goto disable;
+ goto disable_dvdd;
}
gpiod_set_value_cansleep(sensor->reset, 0);
@@ -2359,14 +2359,16 @@ static int ov8865_sensor_power(struct ov8865_sensor *sensor, bool on)
/* Time to enter streaming mode according to power timings. */
usleep_range(10000, 12000);
} else {
-disable:
gpiod_set_value_cansleep(sensor->powerdown, 1);
gpiod_set_value_cansleep(sensor->reset, 1);
clk_disable_unprepare(sensor->extclk);
+disable_dvdd:
regulator_disable(sensor->dvdd);
+disable_avdd:
regulator_disable(sensor->avdd);
+disable_dovdd:
regulator_disable(sensor->dovdd);
}
@@ -2891,14 +2893,16 @@ static int ov8865_probe(struct i2c_client *client)
if (ret)
goto error_mutex;
+ mutex_lock(&sensor->mutex);
ret = ov8865_state_init(sensor);
+ mutex_unlock(&sensor->mutex);
if (ret)
goto error_ctrls;
/* Runtime PM */
- pm_runtime_enable(sensor->dev);
pm_runtime_set_suspended(sensor->dev);
+ pm_runtime_enable(sensor->dev);
/* V4L2 subdev register */
diff --git a/drivers/media/pci/b2c2/flexcop-pci.c b/drivers/media/pci/b2c2/flexcop-pci.c
index 6a4c7cb0ad0f..486c8ec0fa60 100644
--- a/drivers/media/pci/b2c2/flexcop-pci.c
+++ b/drivers/media/pci/b2c2/flexcop-pci.c
@@ -185,6 +185,8 @@ static irqreturn_t flexcop_pci_isr(int irq, void *dev_id)
dma_addr_t cur_addr =
fc->read_ibi_reg(fc,dma1_008).dma_0x8.dma_cur_addr << 2;
u32 cur_pos = cur_addr - fc_pci->dma[0].dma_addr0;
+ if (cur_pos > fc_pci->dma[0].size * 2)
+ goto error;
deb_irq("%u irq: %08x cur_addr: %llx: cur_pos: %08x, last_cur_pos: %08x ",
jiffies_to_usecs(jiffies - fc_pci->last_irq),
@@ -225,6 +227,7 @@ static irqreturn_t flexcop_pci_isr(int irq, void *dev_id)
ret = IRQ_NONE;
}
+error:
spin_unlock_irqrestore(&fc_pci->irq_lock, flags);
return ret;
}
diff --git a/drivers/media/pci/saa7146/hexium_gemini.c b/drivers/media/pci/saa7146/hexium_gemini.c
index 2214c74bbbf1..3947701cd6c7 100644
--- a/drivers/media/pci/saa7146/hexium_gemini.c
+++ b/drivers/media/pci/saa7146/hexium_gemini.c
@@ -284,7 +284,12 @@ static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_d
hexium_set_input(hexium, 0);
hexium->cur_input = 0;
- saa7146_vv_init(dev, &vv_data);
+ ret = saa7146_vv_init(dev, &vv_data);
+ if (ret) {
+ i2c_del_adapter(&hexium->i2c_adapter);
+ kfree(hexium);
+ return ret;
+ }
vv_data.vid_ops.vidioc_enum_input = vidioc_enum_input;
vv_data.vid_ops.vidioc_g_input = vidioc_g_input;
diff --git a/drivers/media/pci/saa7146/hexium_orion.c b/drivers/media/pci/saa7146/hexium_orion.c
index 39d14c179d22..2eb4bee16b71 100644
--- a/drivers/media/pci/saa7146/hexium_orion.c
+++ b/drivers/media/pci/saa7146/hexium_orion.c
@@ -355,10 +355,16 @@ static struct saa7146_ext_vv vv_data;
static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info)
{
struct hexium *hexium = (struct hexium *) dev->ext_priv;
+ int ret;
DEB_EE("\n");
- saa7146_vv_init(dev, &vv_data);
+ ret = saa7146_vv_init(dev, &vv_data);
+ if (ret) {
+ pr_err("Error in saa7146_vv_init()\n");
+ return ret;
+ }
+
vv_data.vid_ops.vidioc_enum_input = vidioc_enum_input;
vv_data.vid_ops.vidioc_g_input = vidioc_g_input;
vv_data.vid_ops.vidioc_s_input = vidioc_s_input;
diff --git a/drivers/media/pci/saa7146/mxb.c b/drivers/media/pci/saa7146/mxb.c
index 73fc901ecf3d..bf0b9b0914cd 100644
--- a/drivers/media/pci/saa7146/mxb.c
+++ b/drivers/media/pci/saa7146/mxb.c
@@ -683,10 +683,16 @@ static struct saa7146_ext_vv vv_data;
static int mxb_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info)
{
struct mxb *mxb;
+ int ret;
DEB_EE("dev:%p\n", dev);
- saa7146_vv_init(dev, &vv_data);
+ ret = saa7146_vv_init(dev, &vv_data);
+ if (ret) {
+ ERR("Error in saa7146_vv_init()");
+ return ret;
+ }
+
if (mxb_probe(dev)) {
saa7146_vv_release(dev);
return -1;
diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c
index 7bb6babdcade..debc7509c173 100644
--- a/drivers/media/platform/aspeed-video.c
+++ b/drivers/media/platform/aspeed-video.c
@@ -500,6 +500,10 @@ static void aspeed_video_enable_mode_detect(struct aspeed_video *video)
aspeed_video_update(video, VE_INTERRUPT_CTRL, 0,
VE_INTERRUPT_MODE_DETECT);
+ /* Disable mode detect in order to re-trigger */
+ aspeed_video_update(video, VE_SEQ_CTRL,
+ VE_SEQ_CTRL_TRIG_MODE_DET, 0);
+
/* Trigger mode detect */
aspeed_video_update(video, VE_SEQ_CTRL, 0, VE_SEQ_CTRL_TRIG_MODE_DET);
}
@@ -552,6 +556,8 @@ static void aspeed_video_irq_res_change(struct aspeed_video *video, ulong delay)
set_bit(VIDEO_RES_CHANGE, &video->flags);
clear_bit(VIDEO_FRAME_INPRG, &video->flags);
+ video->v4l2_input_status = V4L2_IN_ST_NO_SIGNAL;
+
aspeed_video_off(video);
aspeed_video_bufs_done(video, VB2_BUF_STATE_ERROR);
@@ -786,10 +792,6 @@ static void aspeed_video_get_resolution(struct aspeed_video *video)
return;
}
- /* Disable mode detect in order to re-trigger */
- aspeed_video_update(video, VE_SEQ_CTRL,
- VE_SEQ_CTRL_TRIG_MODE_DET, 0);
-
aspeed_video_check_and_set_polarity(video);
aspeed_video_enable_mode_detect(video);
@@ -1337,7 +1339,6 @@ static void aspeed_video_resolution_work(struct work_struct *work)
struct delayed_work *dwork = to_delayed_work(work);
struct aspeed_video *video = container_of(dwork, struct aspeed_video,
res_work);
- u32 input_status = video->v4l2_input_status;
aspeed_video_on(video);
@@ -1350,8 +1351,7 @@ static void aspeed_video_resolution_work(struct work_struct *work)
aspeed_video_get_resolution(video);
if (video->detected_timings.width != video->active_timings.width ||
- video->detected_timings.height != video->active_timings.height ||
- input_status != video->v4l2_input_status) {
+ video->detected_timings.height != video->active_timings.height) {
static const struct v4l2_event ev = {
.type = V4L2_EVENT_SOURCE_CHANGE,
.u.src_change.changes = V4L2_EVENT_SRC_CH_RESOLUTION,
diff --git a/drivers/media/platform/coda/coda-common.c b/drivers/media/platform/coda/coda-common.c
index 0e312b0842d7..9a2640a9c75c 100644
--- a/drivers/media/platform/coda/coda-common.c
+++ b/drivers/media/platform/coda/coda-common.c
@@ -1537,11 +1537,13 @@ static void coda_pic_run_work(struct work_struct *work)
if (!wait_for_completion_timeout(&ctx->completion,
msecs_to_jiffies(1000))) {
- dev_err(dev->dev, "CODA PIC_RUN timeout\n");
+ if (ctx->use_bit) {
+ dev_err(dev->dev, "CODA PIC_RUN timeout\n");
- ctx->hold = true;
+ ctx->hold = true;
- coda_hw_reset(ctx);
+ coda_hw_reset(ctx);
+ }
if (ctx->ops->run_timeout)
ctx->ops->run_timeout(ctx);
diff --git a/drivers/media/platform/coda/coda-jpeg.c b/drivers/media/platform/coda/coda-jpeg.c
index b11cfbe166dd..a72f4655e5ad 100644
--- a/drivers/media/platform/coda/coda-jpeg.c
+++ b/drivers/media/platform/coda/coda-jpeg.c
@@ -1127,7 +1127,8 @@ static int coda9_jpeg_prepare_encode(struct coda_ctx *ctx)
coda_write(dev, 0, CODA9_REG_JPEG_GBU_BT_PTR);
coda_write(dev, 0, CODA9_REG_JPEG_GBU_WD_PTR);
coda_write(dev, 0, CODA9_REG_JPEG_GBU_BBSR);
- coda_write(dev, 0, CODA9_REG_JPEG_BBC_STRM_CTRL);
+ coda_write(dev, BIT(31) | ((end_addr - start_addr - header_len) / 256),
+ CODA9_REG_JPEG_BBC_STRM_CTRL);
coda_write(dev, 0, CODA9_REG_JPEG_GBU_CTRL);
coda_write(dev, 0, CODA9_REG_JPEG_GBU_FF_RPTR);
coda_write(dev, 127, CODA9_REG_JPEG_GBU_BBER);
@@ -1257,6 +1258,23 @@ static void coda9_jpeg_finish_encode(struct coda_ctx *ctx)
coda_hw_reset(ctx);
}
+static void coda9_jpeg_encode_timeout(struct coda_ctx *ctx)
+{
+ struct coda_dev *dev = ctx->dev;
+ u32 end_addr, wr_ptr;
+
+ /* Handle missing BBC overflow interrupt via timeout */
+ end_addr = coda_read(dev, CODA9_REG_JPEG_BBC_END_ADDR);
+ wr_ptr = coda_read(dev, CODA9_REG_JPEG_BBC_WR_PTR);
+ if (wr_ptr >= end_addr - 256) {
+ v4l2_err(&dev->v4l2_dev, "JPEG too large for capture buffer\n");
+ coda9_jpeg_finish_encode(ctx);
+ return;
+ }
+
+ coda_hw_reset(ctx);
+}
+
static void coda9_jpeg_release(struct coda_ctx *ctx)
{
int i;
@@ -1276,6 +1294,7 @@ const struct coda_context_ops coda9_jpeg_encode_ops = {
.start_streaming = coda9_jpeg_start_encoding,
.prepare_run = coda9_jpeg_prepare_encode,
.finish_run = coda9_jpeg_finish_encode,
+ .run_timeout = coda9_jpeg_encode_timeout,
.release = coda9_jpeg_release,
};
diff --git a/drivers/media/platform/coda/imx-vdoa.c b/drivers/media/platform/coda/imx-vdoa.c
index 8bc0d8371819..dd6e2e320264 100644
--- a/drivers/media/platform/coda/imx-vdoa.c
+++ b/drivers/media/platform/coda/imx-vdoa.c
@@ -287,7 +287,11 @@ static int vdoa_probe(struct platform_device *pdev)
struct resource *res;
int ret;
- dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
+ ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
+ if (ret) {
+ dev_err(&pdev->dev, "DMA enable failed\n");
+ return ret;
+ }
vdoa = devm_kzalloc(&pdev->dev, sizeof(*vdoa), GFP_KERNEL);
if (!vdoa)
diff --git a/drivers/media/platform/imx-pxp.c b/drivers/media/platform/imx-pxp.c
index 4321edc0c23d..8e9c6fee75a4 100644
--- a/drivers/media/platform/imx-pxp.c
+++ b/drivers/media/platform/imx-pxp.c
@@ -1661,6 +1661,8 @@ static int pxp_probe(struct platform_device *pdev)
if (irq < 0)
return irq;
+ spin_lock_init(&dev->irqlock);
+
ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, pxp_irq_handler,
IRQF_ONESHOT, dev_name(&pdev->dev), dev);
if (ret < 0) {
@@ -1678,8 +1680,6 @@ static int pxp_probe(struct platform_device *pdev)
goto err_clk;
}
- spin_lock_init(&dev->irqlock);
-
ret = v4l2_device_register(&pdev->dev, &dev->v4l2_dev);
if (ret)
goto err_clk;
diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
index 45d1870c83dd..4ced20ca647b 100644
--- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
+++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
@@ -218,11 +218,11 @@ static int fops_vcodec_release(struct file *file)
mtk_v4l2_debug(1, "[%d] encoder", ctx->id);
mutex_lock(&dev->dev_mutex);
+ v4l2_m2m_ctx_release(ctx->m2m_ctx);
mtk_vcodec_enc_release(ctx);
v4l2_fh_del(&ctx->fh);
v4l2_fh_exit(&ctx->fh);
v4l2_ctrl_handler_free(&ctx->ctrl_hdl);
- v4l2_m2m_ctx_release(ctx->m2m_ctx);
list_del_init(&ctx->list);
kfree(ctx);
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 91b15842c555..1f0181b6353c 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -349,11 +349,11 @@ static int venus_probe(struct platform_device *pdev)
ret = venus_firmware_init(core);
if (ret)
- goto err_runtime_disable;
+ goto err_of_depopulate;
ret = venus_boot(core);
if (ret)
- goto err_runtime_disable;
+ goto err_firmware_deinit;
ret = hfi_core_resume(core, true);
if (ret)
@@ -385,6 +385,10 @@ static int venus_probe(struct platform_device *pdev)
v4l2_device_unregister(&core->v4l2_dev);
err_venus_shutdown:
venus_shutdown(core);
+err_firmware_deinit:
+ venus_firmware_deinit(core);
+err_of_depopulate:
+ of_platform_depopulate(dev);
err_runtime_disable:
pm_runtime_put_noidle(dev);
pm_runtime_set_suspended(dev);
@@ -472,7 +476,8 @@ static __maybe_unused int venus_runtime_suspend(struct device *dev)
err_video_path:
icc_set_bw(core->cpucfg_path, kbps_to_icc(1000), 0);
err_cpucfg_path:
- pm_ops->core_power(core, POWER_ON);
+ if (pm_ops->core_power)
+ pm_ops->core_power(core, POWER_ON);
return ret;
}
diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c
index e031fd17f4e7..a591dd315ebc 100644
--- a/drivers/media/platform/qcom/venus/pm_helpers.c
+++ b/drivers/media/platform/qcom/venus/pm_helpers.c
@@ -163,14 +163,12 @@ static u32 load_per_type(struct venus_core *core, u32 session_type)
struct venus_inst *inst = NULL;
u32 mbs_per_sec = 0;
- mutex_lock(&core->lock);
list_for_each_entry(inst, &core->instances, list) {
if (inst->session_type != session_type)
continue;
mbs_per_sec += load_per_instance(inst);
}
- mutex_unlock(&core->lock);
return mbs_per_sec;
}
@@ -219,14 +217,12 @@ static int load_scale_bw(struct venus_core *core)
struct venus_inst *inst = NULL;
u32 mbs_per_sec, avg, peak, total_avg = 0, total_peak = 0;
- mutex_lock(&core->lock);
list_for_each_entry(inst, &core->instances, list) {
mbs_per_sec = load_per_instance(inst);
mbs_to_bw(inst, mbs_per_sec, &avg, &peak);
total_avg += avg;
total_peak += peak;
}
- mutex_unlock(&core->lock);
/*
* keep minimum bandwidth vote for "video-mem" path,
@@ -253,8 +249,9 @@ static int load_scale_v1(struct venus_inst *inst)
struct device *dev = core->dev;
u32 mbs_per_sec;
unsigned int i;
- int ret;
+ int ret = 0;
+ mutex_lock(&core->lock);
mbs_per_sec = load_per_type(core, VIDC_SESSION_TYPE_ENC) +
load_per_type(core, VIDC_SESSION_TYPE_DEC);
@@ -279,17 +276,19 @@ static int load_scale_v1(struct venus_inst *inst)
if (ret) {
dev_err(dev, "failed to set clock rate %lu (%d)\n",
freq, ret);
- return ret;
+ goto exit;
}
ret = load_scale_bw(core);
if (ret) {
dev_err(dev, "failed to set bandwidth (%d)\n",
ret);
- return ret;
+ goto exit;
}
- return 0;
+exit:
+ mutex_unlock(&core->lock);
+ return ret;
}
static int core_get_v1(struct venus_core *core)
@@ -587,8 +586,8 @@ min_loaded_core(struct venus_inst *inst, u32 *min_coreid, u32 *min_load, bool lo
if (inst->session_type == VIDC_SESSION_TYPE_DEC)
vpp_freq = inst_pos->clk_data.vpp_freq;
else if (inst->session_type == VIDC_SESSION_TYPE_ENC)
- vpp_freq = low_power ? inst_pos->clk_data.vpp_freq :
- inst_pos->clk_data.low_power_freq;
+ vpp_freq = low_power ? inst_pos->clk_data.low_power_freq :
+ inst_pos->clk_data.vpp_freq;
else
continue;
@@ -1116,13 +1115,13 @@ static int load_scale_v4(struct venus_inst *inst)
struct device *dev = core->dev;
unsigned long freq = 0, freq_core1 = 0, freq_core2 = 0;
unsigned long filled_len = 0;
- int i, ret;
+ int i, ret = 0;
for (i = 0; i < inst->num_input_bufs; i++)
filled_len = max(filled_len, inst->payloads[i]);
if (inst->session_type == VIDC_SESSION_TYPE_DEC && !filled_len)
- return 0;
+ return ret;
freq = calculate_inst_freq(inst, filled_len);
inst->clk_data.freq = freq;
@@ -1138,7 +1137,6 @@ static int load_scale_v4(struct venus_inst *inst)
freq_core2 += inst->clk_data.freq;
}
}
- mutex_unlock(&core->lock);
freq = max(freq_core1, freq_core2);
@@ -1162,17 +1160,19 @@ static int load_scale_v4(struct venus_inst *inst)
if (ret) {
dev_err(dev, "failed to set clock rate %lu (%d)\n",
freq, ret);
- return ret;
+ goto exit;
}
ret = load_scale_bw(core);
if (ret) {
dev_err(dev, "failed to set bandwidth (%d)\n",
ret);
- return ret;
+ goto exit;
}
- return 0;
+exit:
+ mutex_unlock(&core->lock);
+ return ret;
}
static const struct venus_pm_ops pm_ops_v4 = {
diff --git a/drivers/media/platform/rcar-vin/rcar-csi2.c b/drivers/media/platform/rcar-vin/rcar-csi2.c
index ba4a380016cc..0c5e2f7e04be 100644
--- a/drivers/media/platform/rcar-vin/rcar-csi2.c
+++ b/drivers/media/platform/rcar-vin/rcar-csi2.c
@@ -445,16 +445,23 @@ static int rcsi2_wait_phy_start(struct rcar_csi2 *priv,
static int rcsi2_set_phypll(struct rcar_csi2 *priv, unsigned int mbps)
{
const struct rcsi2_mbps_reg *hsfreq;
+ const struct rcsi2_mbps_reg *hsfreq_prev = NULL;
- for (hsfreq = priv->info->hsfreqrange; hsfreq->mbps != 0; hsfreq++)
+ for (hsfreq = priv->info->hsfreqrange; hsfreq->mbps != 0; hsfreq++) {
if (hsfreq->mbps >= mbps)
break;
+ hsfreq_prev = hsfreq;
+ }
if (!hsfreq->mbps) {
dev_err(priv->dev, "Unsupported PHY speed (%u Mbps)", mbps);
return -ERANGE;
}
+ if (hsfreq_prev &&
+ ((mbps - hsfreq_prev->mbps) <= (hsfreq->mbps - mbps)))
+ hsfreq = hsfreq_prev;
+
rcsi2_write(priv, PHYPLL_REG, PHYPLL_HSFREQRANGE(hsfreq->reg));
return 0;
@@ -982,10 +989,17 @@ static int rcsi2_phtw_write_mbps(struct rcar_csi2 *priv, unsigned int mbps,
const struct rcsi2_mbps_reg *values, u16 code)
{
const struct rcsi2_mbps_reg *value;
+ const struct rcsi2_mbps_reg *prev_value = NULL;
- for (value = values; value->mbps; value++)
+ for (value = values; value->mbps; value++) {
if (value->mbps >= mbps)
break;
+ prev_value = value;
+ }
+
+ if (prev_value &&
+ ((mbps - prev_value->mbps) <= (value->mbps - mbps)))
+ value = prev_value;
if (!value->mbps) {
dev_err(priv->dev, "Unsupported PHY speed (%u Mbps)", mbps);
diff --git a/drivers/media/platform/rcar-vin/rcar-v4l2.c b/drivers/media/platform/rcar-vin/rcar-v4l2.c
index 0d141155f0e3..eb8c79bac540 100644
--- a/drivers/media/platform/rcar-vin/rcar-v4l2.c
+++ b/drivers/media/platform/rcar-vin/rcar-v4l2.c
@@ -175,20 +175,27 @@ static void rvin_format_align(struct rvin_dev *vin, struct v4l2_pix_format *pix)
break;
}
- /* HW limit width to a multiple of 32 (2^5) for NV12/16 else 2 (2^1) */
+ /* Hardware limits width alignment based on format. */
switch (pix->pixelformat) {
+ /* Multiple of 32 (2^5) for NV12/16. */
case V4L2_PIX_FMT_NV12:
case V4L2_PIX_FMT_NV16:
walign = 5;
break;
- default:
+ /* Multiple of 2 (2^1) for YUV. */
+ case V4L2_PIX_FMT_YUYV:
+ case V4L2_PIX_FMT_UYVY:
walign = 1;
break;
+ /* No multiple for RGB. */
+ default:
+ walign = 0;
+ break;
}
/* Limit to VIN capabilities */
- v4l_bound_align_image(&pix->width, 2, vin->info->max_width, walign,
- &pix->height, 4, vin->info->max_height, 2, 0);
+ v4l_bound_align_image(&pix->width, 5, vin->info->max_width, walign,
+ &pix->height, 2, vin->info->max_height, 0, 0);
pix->bytesperline = rvin_format_bytesperline(vin, pix);
pix->sizeimage = rvin_format_sizeimage(pix);
diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
index 7474150b94ed..560f928c3752 100644
--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
@@ -426,7 +426,7 @@ static void rkisp1_debug_init(struct rkisp1_device *rkisp1)
{
struct rkisp1_debug *debug = &rkisp1->debug;
- debug->debugfs_dir = debugfs_create_dir(RKISP1_DRIVER_NAME, NULL);
+ debug->debugfs_dir = debugfs_create_dir(dev_name(rkisp1->dev), NULL);
debugfs_create_ulong("data_loss", 0444, debug->debugfs_dir,
&debug->data_loss);
debugfs_create_ulong("outform_size_err", 0444, debug->debugfs_dir,
diff --git a/drivers/media/radio/si470x/radio-si470x-i2c.c b/drivers/media/radio/si470x/radio-si470x-i2c.c
index a972c0705ac7..76d39e2e8770 100644
--- a/drivers/media/radio/si470x/radio-si470x-i2c.c
+++ b/drivers/media/radio/si470x/radio-si470x-i2c.c
@@ -368,7 +368,7 @@ static int si470x_i2c_probe(struct i2c_client *client)
if (radio->hdl.error) {
retval = radio->hdl.error;
dev_err(&client->dev, "couldn't register control\n");
- goto err_dev;
+ goto err_all;
}
/* video device initialization */
@@ -463,7 +463,6 @@ static int si470x_i2c_probe(struct i2c_client *client)
return 0;
err_all:
v4l2_ctrl_handler_free(&radio->hdl);
-err_dev:
v4l2_device_unregister(&radio->v4l2_dev);
err_initial:
return retval;
diff --git a/drivers/media/rc/igorplugusb.c b/drivers/media/rc/igorplugusb.c
index effaa5751d6c..3e9988ee785f 100644
--- a/drivers/media/rc/igorplugusb.c
+++ b/drivers/media/rc/igorplugusb.c
@@ -64,9 +64,11 @@ static void igorplugusb_irdata(struct igorplugusb *ir, unsigned len)
if (start >= len) {
dev_err(ir->dev, "receive overflow invalid: %u", overflow);
} else {
- if (overflow > 0)
+ if (overflow > 0) {
dev_warn(ir->dev, "receive overflow, at least %u lost",
overflow);
+ ir_raw_event_reset(ir->rc);
+ }
do {
rawir.duration = ir->buf_in[i] * 85;
diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c
index 137a71954aab..5f296f985b07 100644
--- a/drivers/media/rc/mceusb.c
+++ b/drivers/media/rc/mceusb.c
@@ -1430,7 +1430,7 @@ static void mceusb_gen1_init(struct mceusb_dev *ir)
*/
ret = usb_control_msg(ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0),
USB_REQ_SET_ADDRESS, USB_TYPE_VENDOR, 0, 0,
- data, USB_CTRL_MSG_SZ, HZ * 3);
+ data, USB_CTRL_MSG_SZ, 3000);
dev_dbg(dev, "set address - ret = %d", ret);
dev_dbg(dev, "set address - data[0] = %d, data[1] = %d",
data[0], data[1]);
@@ -1438,20 +1438,20 @@ static void mceusb_gen1_init(struct mceusb_dev *ir)
/* set feature: bit rate 38400 bps */
ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
USB_REQ_SET_FEATURE, USB_TYPE_VENDOR,
- 0xc04e, 0x0000, NULL, 0, HZ * 3);
+ 0xc04e, 0x0000, NULL, 0, 3000);
dev_dbg(dev, "set feature - ret = %d", ret);
/* bRequest 4: set char length to 8 bits */
ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
4, USB_TYPE_VENDOR,
- 0x0808, 0x0000, NULL, 0, HZ * 3);
+ 0x0808, 0x0000, NULL, 0, 3000);
dev_dbg(dev, "set char length - retB = %d", ret);
/* bRequest 2: set handshaking to use DTR/DSR */
ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
2, USB_TYPE_VENDOR,
- 0x0000, 0x0100, NULL, 0, HZ * 3);
+ 0x0000, 0x0100, NULL, 0, 3000);
dev_dbg(dev, "set handshake - retC = %d", ret);
/* device resume */
diff --git a/drivers/media/rc/redrat3.c b/drivers/media/rc/redrat3.c
index ac85464864b9..cb22316b3f00 100644
--- a/drivers/media/rc/redrat3.c
+++ b/drivers/media/rc/redrat3.c
@@ -404,7 +404,7 @@ static int redrat3_send_cmd(int cmd, struct redrat3_dev *rr3)
udev = rr3->udev;
res = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), cmd,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- 0x0000, 0x0000, data, sizeof(u8), HZ * 10);
+ 0x0000, 0x0000, data, sizeof(u8), 10000);
if (res < 0) {
dev_err(rr3->dev, "%s: Error sending rr3 cmd res %d, data %d",
@@ -480,7 +480,7 @@ static u32 redrat3_get_timeout(struct redrat3_dev *rr3)
pipe = usb_rcvctrlpipe(rr3->udev, 0);
ret = usb_control_msg(rr3->udev, pipe, RR3_GET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- RR3_IR_IO_SIG_TIMEOUT, 0, tmp, len, HZ * 5);
+ RR3_IR_IO_SIG_TIMEOUT, 0, tmp, len, 5000);
if (ret != len)
dev_warn(rr3->dev, "Failed to read timeout from hardware\n");
else {
@@ -510,7 +510,7 @@ static int redrat3_set_timeout(struct rc_dev *rc_dev, unsigned int timeoutus)
ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
RR3_IR_IO_SIG_TIMEOUT, 0, timeout, sizeof(*timeout),
- HZ * 25);
+ 25000);
dev_dbg(dev, "set ir parm timeout %d ret 0x%02x\n",
be32_to_cpu(*timeout), ret);
@@ -542,32 +542,32 @@ static void redrat3_reset(struct redrat3_dev *rr3)
*val = 0x01;
rc = usb_control_msg(udev, rxpipe, RR3_RESET,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- RR3_CPUCS_REG_ADDR, 0, val, len, HZ * 25);
+ RR3_CPUCS_REG_ADDR, 0, val, len, 25000);
dev_dbg(dev, "reset returned 0x%02x\n", rc);
*val = length_fuzz;
rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
- RR3_IR_IO_LENGTH_FUZZ, 0, val, len, HZ * 25);
+ RR3_IR_IO_LENGTH_FUZZ, 0, val, len, 25000);
dev_dbg(dev, "set ir parm len fuzz %d rc 0x%02x\n", *val, rc);
*val = (65536 - (minimum_pause * 2000)) / 256;
rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
- RR3_IR_IO_MIN_PAUSE, 0, val, len, HZ * 25);
+ RR3_IR_IO_MIN_PAUSE, 0, val, len, 25000);
dev_dbg(dev, "set ir parm min pause %d rc 0x%02x\n", *val, rc);
*val = periods_measure_carrier;
rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
- RR3_IR_IO_PERIODS_MF, 0, val, len, HZ * 25);
+ RR3_IR_IO_PERIODS_MF, 0, val, len, 25000);
dev_dbg(dev, "set ir parm periods measure carrier %d rc 0x%02x", *val,
rc);
*val = RR3_DRIVER_MAXLENS;
rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
- RR3_IR_IO_MAX_LENGTHS, 0, val, len, HZ * 25);
+ RR3_IR_IO_MAX_LENGTHS, 0, val, len, 25000);
dev_dbg(dev, "set ir parm max lens %d rc 0x%02x\n", *val, rc);
kfree(val);
@@ -585,7 +585,7 @@ static void redrat3_get_firmware_rev(struct redrat3_dev *rr3)
rc = usb_control_msg(rr3->udev, usb_rcvctrlpipe(rr3->udev, 0),
RR3_FW_VERSION,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- 0, 0, buffer, RR3_FW_VERSION_LEN, HZ * 5);
+ 0, 0, buffer, RR3_FW_VERSION_LEN, 5000);
if (rc >= 0)
dev_info(rr3->dev, "Firmware rev: %s", buffer);
@@ -825,14 +825,14 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, unsigned *txbuf,
pipe = usb_sndbulkpipe(rr3->udev, rr3->ep_out->bEndpointAddress);
ret = usb_bulk_msg(rr3->udev, pipe, irdata,
- sendbuf_len, &ret_len, 10 * HZ);
+ sendbuf_len, &ret_len, 10000);
dev_dbg(dev, "sent %d bytes, (ret %d)\n", ret_len, ret);
/* now tell the hardware to transmit what we sent it */
pipe = usb_rcvctrlpipe(rr3->udev, 0);
ret = usb_control_msg(rr3->udev, pipe, RR3_TX_SEND_SIGNAL,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- 0, 0, irdata, 2, HZ * 10);
+ 0, 0, irdata, 2, 10000);
if (ret < 0)
dev_err(dev, "Error: control msg send failed, rc %d\n", ret);
diff --git a/drivers/media/tuners/msi001.c b/drivers/media/tuners/msi001.c
index 78e6fd600d8e..44247049a319 100644
--- a/drivers/media/tuners/msi001.c
+++ b/drivers/media/tuners/msi001.c
@@ -442,6 +442,13 @@ static int msi001_probe(struct spi_device *spi)
V4L2_CID_RF_TUNER_BANDWIDTH_AUTO, 0, 1, 1, 1);
dev->bandwidth = v4l2_ctrl_new_std(&dev->hdl, &msi001_ctrl_ops,
V4L2_CID_RF_TUNER_BANDWIDTH, 200000, 8000000, 1, 200000);
+ if (dev->hdl.error) {
+ ret = dev->hdl.error;
+ dev_err(&spi->dev, "Could not initialize controls\n");
+ /* control init failed, free handler */
+ goto err_ctrl_handler_free;
+ }
+
v4l2_ctrl_auto_cluster(2, &dev->bandwidth_auto, 0, false);
dev->lna_gain = v4l2_ctrl_new_std(&dev->hdl, &msi001_ctrl_ops,
V4L2_CID_RF_TUNER_LNA_GAIN, 0, 1, 1, 1);
diff --git a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c
index fefb2625f655..75ddf7ed1faf 100644
--- a/drivers/media/tuners/si2157.c
+++ b/drivers/media/tuners/si2157.c
@@ -90,7 +90,7 @@ static int si2157_init(struct dvb_frontend *fe)
dev_dbg(&client->dev, "\n");
/* Try to get Xtal trim property, to verify tuner still running */
- memcpy(cmd.args, "\x15\x00\x04\x02", 4);
+ memcpy(cmd.args, "\x15\x00\x02\x04", 4);
cmd.wlen = 4;
cmd.rlen = 4;
ret = si2157_cmd_execute(client, &cmd);
diff --git a/drivers/media/usb/b2c2/flexcop-usb.c b/drivers/media/usb/b2c2/flexcop-usb.c
index 5d38171b7638..bfeb92d93de3 100644
--- a/drivers/media/usb/b2c2/flexcop-usb.c
+++ b/drivers/media/usb/b2c2/flexcop-usb.c
@@ -87,7 +87,7 @@ static int flexcop_usb_readwrite_dw(struct flexcop_device *fc, u16 wRegOffsPCI,
0,
fc_usb->data,
sizeof(u32),
- B2C2_WAIT_FOR_OPERATION_RDW * HZ);
+ B2C2_WAIT_FOR_OPERATION_RDW);
if (ret != sizeof(u32)) {
err("error while %s dword from %d (%d).", read ? "reading" :
@@ -155,7 +155,7 @@ static int flexcop_usb_v8_memory_req(struct flexcop_usb *fc_usb,
wIndex,
fc_usb->data,
buflen,
- nWaitTime * HZ);
+ nWaitTime);
if (ret != buflen)
ret = -EIO;
@@ -248,13 +248,13 @@ static int flexcop_usb_i2c_req(struct flexcop_i2c_adapter *i2c,
/* DKT 020208 - add this to support special case of DiSEqC */
case USB_FUNC_I2C_CHECKWRITE:
pipe = B2C2_USB_CTRL_PIPE_OUT;
- nWaitTime = 2;
+ nWaitTime = 2000;
request_type |= USB_DIR_OUT;
break;
case USB_FUNC_I2C_READ:
case USB_FUNC_I2C_REPEATREAD:
pipe = B2C2_USB_CTRL_PIPE_IN;
- nWaitTime = 2;
+ nWaitTime = 2000;
request_type |= USB_DIR_IN;
break;
default:
@@ -281,7 +281,7 @@ static int flexcop_usb_i2c_req(struct flexcop_i2c_adapter *i2c,
wIndex,
fc_usb->data,
buflen,
- nWaitTime * HZ);
+ nWaitTime);
if (ret != buflen)
ret = -EIO;
diff --git a/drivers/media/usb/b2c2/flexcop-usb.h b/drivers/media/usb/b2c2/flexcop-usb.h
index 2f230bf72252..c7cca1a5ee59 100644
--- a/drivers/media/usb/b2c2/flexcop-usb.h
+++ b/drivers/media/usb/b2c2/flexcop-usb.h
@@ -91,13 +91,13 @@ typedef enum {
UTILITY_SRAM_TESTVERIFY = 0x16,
} flexcop_usb_utility_function_t;
-#define B2C2_WAIT_FOR_OPERATION_RW (1*HZ)
-#define B2C2_WAIT_FOR_OPERATION_RDW (3*HZ)
-#define B2C2_WAIT_FOR_OPERATION_WDW (1*HZ)
+#define B2C2_WAIT_FOR_OPERATION_RW 1000
+#define B2C2_WAIT_FOR_OPERATION_RDW 3000
+#define B2C2_WAIT_FOR_OPERATION_WDW 1000
-#define B2C2_WAIT_FOR_OPERATION_V8READ (3*HZ)
-#define B2C2_WAIT_FOR_OPERATION_V8WRITE (3*HZ)
-#define B2C2_WAIT_FOR_OPERATION_V8FLASH (3*HZ)
+#define B2C2_WAIT_FOR_OPERATION_V8READ 3000
+#define B2C2_WAIT_FOR_OPERATION_V8WRITE 3000
+#define B2C2_WAIT_FOR_OPERATION_V8FLASH 3000
typedef enum {
V8_MEMORY_PAGE_DVB_CI = 0x20,
diff --git a/drivers/media/usb/cpia2/cpia2_usb.c b/drivers/media/usb/cpia2/cpia2_usb.c
index 76aac06f9fb8..cba03b286473 100644
--- a/drivers/media/usb/cpia2/cpia2_usb.c
+++ b/drivers/media/usb/cpia2/cpia2_usb.c
@@ -550,7 +550,7 @@ static int write_packet(struct usb_device *udev,
0, /* index */
buf, /* buffer */
size,
- HZ);
+ 1000);
kfree(buf);
return ret;
@@ -582,7 +582,7 @@ static int read_packet(struct usb_device *udev,
0, /* index */
buf, /* buffer */
size,
- HZ);
+ 1000);
if (ret >= 0)
memcpy(registers, buf, size);
diff --git a/drivers/media/usb/dvb-usb/dib0700_core.c b/drivers/media/usb/dvb-usb/dib0700_core.c
index 70219b3e8566..7ea8f68b0f45 100644
--- a/drivers/media/usb/dvb-usb/dib0700_core.c
+++ b/drivers/media/usb/dvb-usb/dib0700_core.c
@@ -618,8 +618,6 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
deb_info("the endpoint number (%i) is not correct, use the adapter id instead", adap->fe_adap[0].stream.props.endpoint);
if (onoff)
st->channel_state |= 1 << (adap->id);
- else
- st->channel_state |= 1 << ~(adap->id);
} else {
if (onoff)
st->channel_state |= 1 << (adap->fe_adap[0].stream.props.endpoint-2);
diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c
index f0e686b05dc6..ca75ebdc10b3 100644
--- a/drivers/media/usb/dvb-usb/dw2102.c
+++ b/drivers/media/usb/dvb-usb/dw2102.c
@@ -2150,46 +2150,153 @@ static struct dvb_usb_device_properties s6x0_properties = {
}
};
-static const struct dvb_usb_device_description d1100 = {
- "Prof 1100 USB ",
- {&dw2102_table[PROF_1100], NULL},
- {NULL},
-};
+static struct dvb_usb_device_properties p1100_properties = {
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+ .usb_ctrl = DEVICE_SPECIFIC,
+ .size_of_priv = sizeof(struct dw2102_state),
+ .firmware = P1100_FIRMWARE,
+ .no_reconnect = 1,
-static const struct dvb_usb_device_description d660 = {
- "TeVii S660 USB",
- {&dw2102_table[TEVII_S660], NULL},
- {NULL},
-};
+ .i2c_algo = &s6x0_i2c_algo,
+ .rc.core = {
+ .rc_interval = 150,
+ .rc_codes = RC_MAP_TBS_NEC,
+ .module_name = "dw2102",
+ .allowed_protos = RC_PROTO_BIT_NEC,
+ .rc_query = prof_rc_query,
+ },
-static const struct dvb_usb_device_description d480_1 = {
- "TeVii S480.1 USB",
- {&dw2102_table[TEVII_S480_1], NULL},
- {NULL},
+ .generic_bulk_ctrl_endpoint = 0x81,
+ .num_adapters = 1,
+ .download_firmware = dw2102_load_firmware,
+ .read_mac_address = s6x0_read_mac_address,
+ .adapter = {
+ {
+ .num_frontends = 1,
+ .fe = {{
+ .frontend_attach = stv0288_frontend_attach,
+ .stream = {
+ .type = USB_BULK,
+ .count = 8,
+ .endpoint = 0x82,
+ .u = {
+ .bulk = {
+ .buffersize = 4096,
+ }
+ }
+ },
+ } },
+ }
+ },
+ .num_device_descs = 1,
+ .devices = {
+ {"Prof 1100 USB ",
+ {&dw2102_table[PROF_1100], NULL},
+ {NULL},
+ },
+ }
};
-static const struct dvb_usb_device_description d480_2 = {
- "TeVii S480.2 USB",
- {&dw2102_table[TEVII_S480_2], NULL},
- {NULL},
-};
+static struct dvb_usb_device_properties s660_properties = {
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+ .usb_ctrl = DEVICE_SPECIFIC,
+ .size_of_priv = sizeof(struct dw2102_state),
+ .firmware = S660_FIRMWARE,
+ .no_reconnect = 1,
-static const struct dvb_usb_device_description d7500 = {
- "Prof 7500 USB DVB-S2",
- {&dw2102_table[PROF_7500], NULL},
- {NULL},
-};
+ .i2c_algo = &s6x0_i2c_algo,
+ .rc.core = {
+ .rc_interval = 150,
+ .rc_codes = RC_MAP_TEVII_NEC,
+ .module_name = "dw2102",
+ .allowed_protos = RC_PROTO_BIT_NEC,
+ .rc_query = dw2102_rc_query,
+ },
-static const struct dvb_usb_device_description d421 = {
- "TeVii S421 PCI",
- {&dw2102_table[TEVII_S421], NULL},
- {NULL},
+ .generic_bulk_ctrl_endpoint = 0x81,
+ .num_adapters = 1,
+ .download_firmware = dw2102_load_firmware,
+ .read_mac_address = s6x0_read_mac_address,
+ .adapter = {
+ {
+ .num_frontends = 1,
+ .fe = {{
+ .frontend_attach = ds3000_frontend_attach,
+ .stream = {
+ .type = USB_BULK,
+ .count = 8,
+ .endpoint = 0x82,
+ .u = {
+ .bulk = {
+ .buffersize = 4096,
+ }
+ }
+ },
+ } },
+ }
+ },
+ .num_device_descs = 3,
+ .devices = {
+ {"TeVii S660 USB",
+ {&dw2102_table[TEVII_S660], NULL},
+ {NULL},
+ },
+ {"TeVii S480.1 USB",
+ {&dw2102_table[TEVII_S480_1], NULL},
+ {NULL},
+ },
+ {"TeVii S480.2 USB",
+ {&dw2102_table[TEVII_S480_2], NULL},
+ {NULL},
+ },
+ }
};
-static const struct dvb_usb_device_description d632 = {
- "TeVii S632 USB",
- {&dw2102_table[TEVII_S632], NULL},
- {NULL},
+static struct dvb_usb_device_properties p7500_properties = {
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+ .usb_ctrl = DEVICE_SPECIFIC,
+ .size_of_priv = sizeof(struct dw2102_state),
+ .firmware = P7500_FIRMWARE,
+ .no_reconnect = 1,
+
+ .i2c_algo = &s6x0_i2c_algo,
+ .rc.core = {
+ .rc_interval = 150,
+ .rc_codes = RC_MAP_TBS_NEC,
+ .module_name = "dw2102",
+ .allowed_protos = RC_PROTO_BIT_NEC,
+ .rc_query = prof_rc_query,
+ },
+
+ .generic_bulk_ctrl_endpoint = 0x81,
+ .num_adapters = 1,
+ .download_firmware = dw2102_load_firmware,
+ .read_mac_address = s6x0_read_mac_address,
+ .adapter = {
+ {
+ .num_frontends = 1,
+ .fe = {{
+ .frontend_attach = prof_7500_frontend_attach,
+ .stream = {
+ .type = USB_BULK,
+ .count = 8,
+ .endpoint = 0x82,
+ .u = {
+ .bulk = {
+ .buffersize = 4096,
+ }
+ }
+ },
+ } },
+ }
+ },
+ .num_device_descs = 1,
+ .devices = {
+ {"Prof 7500 USB DVB-S2",
+ {&dw2102_table[PROF_7500], NULL},
+ {NULL},
+ },
+ }
};
static struct dvb_usb_device_properties su3000_properties = {
@@ -2273,6 +2380,59 @@ static struct dvb_usb_device_properties su3000_properties = {
}
};
+static struct dvb_usb_device_properties s421_properties = {
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+ .usb_ctrl = DEVICE_SPECIFIC,
+ .size_of_priv = sizeof(struct dw2102_state),
+ .power_ctrl = su3000_power_ctrl,
+ .num_adapters = 1,
+ .identify_state = su3000_identify_state,
+ .i2c_algo = &su3000_i2c_algo,
+
+ .rc.core = {
+ .rc_interval = 150,
+ .rc_codes = RC_MAP_SU3000,
+ .module_name = "dw2102",
+ .allowed_protos = RC_PROTO_BIT_RC5,
+ .rc_query = su3000_rc_query,
+ },
+
+ .read_mac_address = su3000_read_mac_address,
+
+ .generic_bulk_ctrl_endpoint = 0x01,
+
+ .adapter = {
+ {
+ .num_frontends = 1,
+ .fe = {{
+ .streaming_ctrl = su3000_streaming_ctrl,
+ .frontend_attach = m88rs2000_frontend_attach,
+ .stream = {
+ .type = USB_BULK,
+ .count = 8,
+ .endpoint = 0x82,
+ .u = {
+ .bulk = {
+ .buffersize = 4096,
+ }
+ }
+ }
+ } },
+ }
+ },
+ .num_device_descs = 2,
+ .devices = {
+ { "TeVii S421 PCI",
+ { &dw2102_table[TEVII_S421], NULL },
+ { NULL },
+ },
+ { "TeVii S632 USB",
+ { &dw2102_table[TEVII_S632], NULL },
+ { NULL },
+ },
+ }
+};
+
static struct dvb_usb_device_properties t220_properties = {
.caps = DVB_USB_IS_AN_I2C_ADAPTER,
.usb_ctrl = DEVICE_SPECIFIC,
@@ -2390,101 +2550,33 @@ static struct dvb_usb_device_properties tt_s2_4600_properties = {
static int dw2102_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{
- int retval = -ENOMEM;
- struct dvb_usb_device_properties *p1100;
- struct dvb_usb_device_properties *s660;
- struct dvb_usb_device_properties *p7500;
- struct dvb_usb_device_properties *s421;
-
- p1100 = kmemdup(&s6x0_properties,
- sizeof(struct dvb_usb_device_properties), GFP_KERNEL);
- if (!p1100)
- goto err0;
-
- /* copy default structure */
- /* fill only different fields */
- p1100->firmware = P1100_FIRMWARE;
- p1100->devices[0] = d1100;
- p1100->rc.core.rc_query = prof_rc_query;
- p1100->rc.core.rc_codes = RC_MAP_TBS_NEC;
- p1100->adapter->fe[0].frontend_attach = stv0288_frontend_attach;
-
- s660 = kmemdup(&s6x0_properties,
- sizeof(struct dvb_usb_device_properties), GFP_KERNEL);
- if (!s660)
- goto err1;
-
- s660->firmware = S660_FIRMWARE;
- s660->num_device_descs = 3;
- s660->devices[0] = d660;
- s660->devices[1] = d480_1;
- s660->devices[2] = d480_2;
- s660->adapter->fe[0].frontend_attach = ds3000_frontend_attach;
-
- p7500 = kmemdup(&s6x0_properties,
- sizeof(struct dvb_usb_device_properties), GFP_KERNEL);
- if (!p7500)
- goto err2;
-
- p7500->firmware = P7500_FIRMWARE;
- p7500->devices[0] = d7500;
- p7500->rc.core.rc_query = prof_rc_query;
- p7500->rc.core.rc_codes = RC_MAP_TBS_NEC;
- p7500->adapter->fe[0].frontend_attach = prof_7500_frontend_attach;
-
-
- s421 = kmemdup(&su3000_properties,
- sizeof(struct dvb_usb_device_properties), GFP_KERNEL);
- if (!s421)
- goto err3;
-
- s421->num_device_descs = 2;
- s421->devices[0] = d421;
- s421->devices[1] = d632;
- s421->adapter->fe[0].frontend_attach = m88rs2000_frontend_attach;
-
- if (0 == dvb_usb_device_init(intf, &dw2102_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &dw2104_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &dw3101_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &s6x0_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, p1100,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, s660,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, p7500,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, s421,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &su3000_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &t220_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &tt_s2_4600_properties,
- THIS_MODULE, NULL, adapter_nr)) {
-
- /* clean up copied properties */
- kfree(s421);
- kfree(p7500);
- kfree(s660);
- kfree(p1100);
+ if (!(dvb_usb_device_init(intf, &dw2102_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &dw2104_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &dw3101_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &s6x0_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &p1100_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &s660_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &p7500_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &s421_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &su3000_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &t220_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &tt_s2_4600_properties,
+ THIS_MODULE, NULL, adapter_nr))) {
return 0;
}
- retval = -ENODEV;
- kfree(s421);
-err3:
- kfree(p7500);
-err2:
- kfree(s660);
-err1:
- kfree(p1100);
-err0:
- return retval;
+ return -ENODEV;
}
static void dw2102_disconnect(struct usb_interface *intf)
diff --git a/drivers/media/usb/dvb-usb/m920x.c b/drivers/media/usb/dvb-usb/m920x.c
index 4bb5b82599a7..691e05833db1 100644
--- a/drivers/media/usb/dvb-usb/m920x.c
+++ b/drivers/media/usb/dvb-usb/m920x.c
@@ -274,6 +274,13 @@ static int m920x_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], int nu
/* Should check for ack here, if we knew how. */
}
if (msg[i].flags & I2C_M_RD) {
+ char *read = kmalloc(1, GFP_KERNEL);
+ if (!read) {
+ ret = -ENOMEM;
+ kfree(read);
+ goto unlock;
+ }
+
for (j = 0; j < msg[i].len; j++) {
/* Last byte of transaction?
* Send STOP, otherwise send ACK. */
@@ -281,9 +288,12 @@ static int m920x_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], int nu
if ((ret = m920x_read(d->udev, M9206_I2C, 0x0,
0x20 | stop,
- &msg[i].buf[j], 1)) != 0)
+ read, 1)) != 0)
goto unlock;
+ msg[i].buf[j] = read[0];
}
+
+ kfree(read);
} else {
for (j = 0; j < msg[i].len; j++) {
/* Last byte of transaction? Then send STOP. */
diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
index 948e22e29b42..ebc430b05f21 100644
--- a/drivers/media/usb/em28xx/em28xx-cards.c
+++ b/drivers/media/usb/em28xx/em28xx-cards.c
@@ -3625,8 +3625,10 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
if (dev->is_audio_only) {
retval = em28xx_audio_setup(dev);
- if (retval)
- return -ENODEV;
+ if (retval) {
+ retval = -ENODEV;
+ goto err_deinit_media;
+ }
em28xx_init_extension(dev);
return 0;
@@ -3645,7 +3647,7 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
dev_err(&dev->intf->dev,
"%s: em28xx_i2c_register bus 0 - error [%d]!\n",
__func__, retval);
- return retval;
+ goto err_deinit_media;
}
/* register i2c bus 1 */
@@ -3661,9 +3663,7 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
"%s: em28xx_i2c_register bus 1 - error [%d]!\n",
__func__, retval);
- em28xx_i2c_unregister(dev, 0);
-
- return retval;
+ goto err_unreg_i2c;
}
}
@@ -3671,6 +3671,12 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
em28xx_card_setup(dev);
return 0;
+
+err_unreg_i2c:
+ em28xx_i2c_unregister(dev, 0);
+err_deinit_media:
+ em28xx_unregister_media_device(dev);
+ return retval;
}
static int em28xx_duplicate_dev(struct em28xx *dev)
diff --git a/drivers/media/usb/em28xx/em28xx-core.c b/drivers/media/usb/em28xx/em28xx-core.c
index acc0bf7dbe2b..c837cc528a33 100644
--- a/drivers/media/usb/em28xx/em28xx-core.c
+++ b/drivers/media/usb/em28xx/em28xx-core.c
@@ -89,7 +89,7 @@ int em28xx_read_reg_req_len(struct em28xx *dev, u8 req, u16 reg,
mutex_lock(&dev->ctrl_urb_lock);
ret = usb_control_msg(udev, pipe, req,
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
- 0x0000, reg, dev->urb_buf, len, HZ);
+ 0x0000, reg, dev->urb_buf, len, 1000);
if (ret < 0) {
em28xx_regdbg("(pipe 0x%08x): IN: %02x %02x %02x %02x %02x %02x %02x %02x failed with error %i\n",
pipe,
@@ -158,7 +158,7 @@ int em28xx_write_regs_req(struct em28xx *dev, u8 req, u16 reg, char *buf,
memcpy(dev->urb_buf, buf, len);
ret = usb_control_msg(udev, pipe, req,
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
- 0x0000, reg, dev->urb_buf, len, HZ);
+ 0x0000, reg, dev->urb_buf, len, 1000);
mutex_unlock(&dev->ctrl_urb_lock);
if (ret < 0) {
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
index d38dee1792e4..3915d551d59e 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
@@ -1467,7 +1467,7 @@ static int pvr2_upload_firmware1(struct pvr2_hdw *hdw)
for (address = 0; address < fwsize; address += 0x800) {
memcpy(fw_ptr, fw_entry->data + address, 0x800);
ret += usb_control_msg(hdw->usb_dev, pipe, 0xa0, 0x40, address,
- 0, fw_ptr, 0x800, HZ);
+ 0, fw_ptr, 0x800, 1000);
}
trace_firmware("Upload done, releasing device's CPU");
@@ -1605,7 +1605,7 @@ int pvr2_upload_firmware2(struct pvr2_hdw *hdw)
((u32 *)fw_ptr)[icnt] = swab32(((u32 *)fw_ptr)[icnt]);
ret |= usb_bulk_msg(hdw->usb_dev, pipe, fw_ptr,bcnt,
- &actual_length, HZ);
+ &actual_length, 1000);
ret |= (actual_length != bcnt);
if (ret) break;
fw_done += bcnt;
@@ -3438,7 +3438,7 @@ void pvr2_hdw_cpufw_set_enabled(struct pvr2_hdw *hdw,
0xa0,0xc0,
address,0,
hdw->fw_buffer+address,
- 0x800,HZ);
+ 0x800,1000);
if (ret < 0) break;
}
@@ -3977,7 +3977,7 @@ void pvr2_hdw_cpureset_assert(struct pvr2_hdw *hdw,int val)
/* Write the CPUCS register on the 8051. The lsb of the register
is the reset bit; a 1 asserts reset while a 0 clears it. */
pipe = usb_sndctrlpipe(hdw->usb_dev, 0);
- ret = usb_control_msg(hdw->usb_dev,pipe,0xa0,0x40,0xe600,0,da,1,HZ);
+ ret = usb_control_msg(hdw->usb_dev,pipe,0xa0,0x40,0xe600,0,da,1,1000);
if (ret < 0) {
pvr2_trace(PVR2_TRACE_ERROR_LEGS,
"cpureset_assert(%d) error=%d",val,ret);
diff --git a/drivers/media/usb/s2255/s2255drv.c b/drivers/media/usb/s2255/s2255drv.c
index 3b0e4ed75d99..acf18e2251a5 100644
--- a/drivers/media/usb/s2255/s2255drv.c
+++ b/drivers/media/usb/s2255/s2255drv.c
@@ -1882,7 +1882,7 @@ static long s2255_vendor_req(struct s2255_dev *dev, unsigned char Request,
USB_TYPE_VENDOR | USB_RECIP_DEVICE |
USB_DIR_IN,
Value, Index, buf,
- TransferBufferLength, HZ * 5);
+ TransferBufferLength, USB_CTRL_SET_TIMEOUT);
if (r >= 0)
memcpy(TransferBuffer, buf, TransferBufferLength);
@@ -1891,7 +1891,7 @@ static long s2255_vendor_req(struct s2255_dev *dev, unsigned char Request,
r = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0),
Request, USB_TYPE_VENDOR | USB_RECIP_DEVICE,
Value, Index, buf,
- TransferBufferLength, HZ * 5);
+ TransferBufferLength, USB_CTRL_SET_TIMEOUT);
}
kfree(buf);
return r;
diff --git a/drivers/media/usb/stk1160/stk1160-core.c b/drivers/media/usb/stk1160/stk1160-core.c
index b4f8bc5db138..4e1698f78818 100644
--- a/drivers/media/usb/stk1160/stk1160-core.c
+++ b/drivers/media/usb/stk1160/stk1160-core.c
@@ -65,7 +65,7 @@ int stk1160_read_reg(struct stk1160 *dev, u16 reg, u8 *value)
return -ENOMEM;
ret = usb_control_msg(dev->udev, pipe, 0x00,
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
- 0x00, reg, buf, sizeof(u8), HZ);
+ 0x00, reg, buf, sizeof(u8), 1000);
if (ret < 0) {
stk1160_err("read failed on reg 0x%x (%d)\n",
reg, ret);
@@ -85,7 +85,7 @@ int stk1160_write_reg(struct stk1160 *dev, u16 reg, u16 value)
ret = usb_control_msg(dev->udev, pipe, 0x01,
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
- value, reg, NULL, 0, HZ);
+ value, reg, NULL, 0, 1000);
if (ret < 0) {
stk1160_err("write failed on reg 0x%x (%d)\n",
reg, ret);
diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h
index cce5e38133cd..c3ea6a53869f 100644
--- a/drivers/media/usb/uvc/uvcvideo.h
+++ b/drivers/media/usb/uvc/uvcvideo.h
@@ -189,7 +189,7 @@
/* Maximum status buffer size in bytes of interrupt URB. */
#define UVC_MAX_STATUS_SIZE 16
-#define UVC_CTRL_CONTROL_TIMEOUT 500
+#define UVC_CTRL_CONTROL_TIMEOUT 5000
#define UVC_CTRL_STREAMING_TIMEOUT 5000
/* Maximum allowed number of control mappings per device */
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
index f4f67b385d00..c7308a2a80a0 100644
--- a/drivers/media/v4l2-core/v4l2-ioctl.c
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
@@ -2088,6 +2088,7 @@ static int v4l_prepare_buf(const struct v4l2_ioctl_ops *ops,
static int v4l_g_parm(const struct v4l2_ioctl_ops *ops,
struct file *file, void *fh, void *arg)
{
+ struct video_device *vfd = video_devdata(file);
struct v4l2_streamparm *p = arg;
v4l2_std_id std;
int ret = check_fmt(file, p->type);
@@ -2099,7 +2100,8 @@ static int v4l_g_parm(const struct v4l2_ioctl_ops *ops,
if (p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE &&
p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
return -EINVAL;
- p->parm.capture.readbuffers = 2;
+ if (vfd->device_caps & V4L2_CAP_READWRITE)
+ p->parm.capture.readbuffers = 2;
ret = ops->vidioc_g_std(file, fh, &std);
if (ret == 0)
v4l2_video_std_frame_period(std, &p->parm.capture.timeperframe);
diff --git a/drivers/memory/renesas-rpc-if.c b/drivers/memory/renesas-rpc-if.c
index 77a011d5ff8c..861870223300 100644
--- a/drivers/memory/renesas-rpc-if.c
+++ b/drivers/memory/renesas-rpc-if.c
@@ -244,7 +244,7 @@ int rpcif_sw_init(struct rpcif *rpc, struct device *dev)
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dirmap");
rpc->dirmap = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(rpc->dirmap))
- rpc->dirmap = NULL;
+ return PTR_ERR(rpc->dirmap);
rpc->size = resource_size(res);
rpc->rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL);
diff --git a/drivers/mfd/atmel-flexcom.c b/drivers/mfd/atmel-flexcom.c
index d2f5c073fdf3..559eb4d352b6 100644
--- a/drivers/mfd/atmel-flexcom.c
+++ b/drivers/mfd/atmel-flexcom.c
@@ -87,8 +87,7 @@ static const struct of_device_id atmel_flexcom_of_match[] = {
};
MODULE_DEVICE_TABLE(of, atmel_flexcom_of_match);
-#ifdef CONFIG_PM_SLEEP
-static int atmel_flexcom_resume(struct device *dev)
+static int __maybe_unused atmel_flexcom_resume_noirq(struct device *dev)
{
struct atmel_flexcom *ddata = dev_get_drvdata(dev);
int err;
@@ -105,16 +104,16 @@ static int atmel_flexcom_resume(struct device *dev)
return 0;
}
-#endif
-static SIMPLE_DEV_PM_OPS(atmel_flexcom_pm_ops, NULL,
- atmel_flexcom_resume);
+static const struct dev_pm_ops atmel_flexcom_pm_ops = {
+ .resume_noirq = atmel_flexcom_resume_noirq,
+};
static struct platform_driver atmel_flexcom_driver = {
.probe = atmel_flexcom_probe,
.driver = {
.name = "atmel_flexcom",
- .pm = &atmel_flexcom_pm_ops,
+ .pm = pm_ptr(&atmel_flexcom_pm_ops),
.of_match_table = atmel_flexcom_of_match,
},
};
diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c
index 6e105cca27d4..67e2707af4bc 100644
--- a/drivers/mfd/tps65910.c
+++ b/drivers/mfd/tps65910.c
@@ -436,15 +436,6 @@ static void tps65910_power_off(void)
tps65910 = dev_get_drvdata(&tps65910_i2c_client->dev);
- /*
- * The PWR_OFF bit needs to be set separately, before transitioning
- * to the OFF state. It enables the "sequential" power-off mode on
- * TPS65911, it's a NO-OP on TPS65910.
- */
- if (regmap_set_bits(tps65910->regmap, TPS65910_DEVCTRL,
- DEVCTRL_PWR_OFF_MASK) < 0)
- return;
-
regmap_update_bits(tps65910->regmap, TPS65910_DEVCTRL,
DEVCTRL_DEV_OFF_MASK | DEVCTRL_DEV_ON_MASK,
DEVCTRL_DEV_OFF_MASK);
@@ -504,6 +495,19 @@ static int tps65910_i2c_probe(struct i2c_client *i2c,
tps65910_sleepinit(tps65910, pmic_plat_data);
if (pmic_plat_data->pm_off && !pm_power_off) {
+ /*
+ * The PWR_OFF bit needs to be set separately, before
+ * transitioning to the OFF state. It enables the "sequential"
+ * power-off mode on TPS65911, it's a NO-OP on TPS65910.
+ */
+ ret = regmap_set_bits(tps65910->regmap, TPS65910_DEVCTRL,
+ DEVCTRL_PWR_OFF_MASK);
+ if (ret) {
+ dev_err(&i2c->dev, "failed to set power-off mode: %d\n",
+ ret);
+ return ret;
+ }
+
tps65910_i2c_client = i2c;
pm_power_off = tps65910_power_off;
}
diff --git a/drivers/misc/eeprom/at25.c b/drivers/misc/eeprom/at25.c
index b38978a3b3ff..9193b812bc07 100644
--- a/drivers/misc/eeprom/at25.c
+++ b/drivers/misc/eeprom/at25.c
@@ -17,8 +17,6 @@
#include <linux/spi/spi.h>
#include <linux/spi/eeprom.h>
#include <linux/property.h>
-#include <linux/of.h>
-#include <linux/of_device.h>
#include <linux/math.h>
/*
@@ -380,13 +378,14 @@ static int at25_probe(struct spi_device *spi)
int sr;
u8 id[FM25_ID_LEN];
u8 sernum[FM25_SN_LEN];
+ bool is_fram;
int i;
- const struct of_device_id *match;
- bool is_fram = 0;
- match = of_match_device(of_match_ptr(at25_of_match), &spi->dev);
- if (match && !strcmp(match->compatible, "cypress,fm25"))
- is_fram = 1;
+ err = device_property_match_string(&spi->dev, "compatible", "cypress,fm25");
+ if (err >= 0)
+ is_fram = true;
+ else
+ is_fram = false;
at25 = devm_kzalloc(&spi->dev, sizeof(struct at25_data), GFP_KERNEL);
if (!at25)
diff --git a/drivers/misc/habanalabs/common/firmware_if.c b/drivers/misc/habanalabs/common/firmware_if.c
index 8d2568c63f19..a8e683964ab0 100644
--- a/drivers/misc/habanalabs/common/firmware_if.c
+++ b/drivers/misc/habanalabs/common/firmware_if.c
@@ -1703,6 +1703,9 @@ static int hl_fw_dynamic_validate_descriptor(struct hl_device *hdev,
return rc;
}
+ /* here we can mark the descriptor as valid as the content has been validated */
+ fw_loader->dynamic_loader.fw_desc_valid = true;
+
return 0;
}
@@ -1759,7 +1762,13 @@ static int hl_fw_dynamic_read_and_validate_descriptor(struct hl_device *hdev,
return rc;
}
- /* extract address copy the descriptor from */
+ /*
+ * extract address to copy the descriptor from
+ * in addition, as the descriptor value is going to be over-ridden by new data- we mark it
+ * as invalid.
+ * it will be marked again as valid once validated
+ */
+ fw_loader->dynamic_loader.fw_desc_valid = false;
src = hdev->pcie_bar[region->bar_id] + region->offset_in_bar +
response->ram_offset;
memcpy_fromio(fw_desc, src, sizeof(struct lkd_fw_comms_desc));
@@ -2239,6 +2248,9 @@ static int hl_fw_dynamic_init_cpu(struct hl_device *hdev,
dev_info(hdev->dev,
"Loading firmware to device, may take some time...\n");
+ /* initialize FW descriptor as invalid */
+ fw_loader->dynamic_loader.fw_desc_valid = false;
+
/*
* In this stage, "cpu_dyn_regs" contains only LKD's hard coded values!
* It will be updated from FW after hl_fw_dynamic_request_descriptor().
@@ -2325,7 +2337,8 @@ static int hl_fw_dynamic_init_cpu(struct hl_device *hdev,
return 0;
protocol_err:
- fw_read_errors(hdev, le32_to_cpu(dyn_regs->cpu_boot_err0),
+ if (fw_loader->dynamic_loader.fw_desc_valid)
+ fw_read_errors(hdev, le32_to_cpu(dyn_regs->cpu_boot_err0),
le32_to_cpu(dyn_regs->cpu_boot_err1),
le32_to_cpu(dyn_regs->cpu_boot_dev_sts0),
le32_to_cpu(dyn_regs->cpu_boot_dev_sts1));
diff --git a/drivers/misc/habanalabs/common/habanalabs.h b/drivers/misc/habanalabs/common/habanalabs.h
index bebebcb163ee..dfcd87b98ca0 100644
--- a/drivers/misc/habanalabs/common/habanalabs.h
+++ b/drivers/misc/habanalabs/common/habanalabs.h
@@ -992,6 +992,7 @@ struct fw_response {
* @image_region: region to copy the FW image to
* @fw_image_size: size of FW image to load
* @wait_for_bl_timeout: timeout for waiting for boot loader to respond
+ * @fw_desc_valid: true if FW descriptor has been validated and hence the data can be used
*/
struct dynamic_fw_load_mgr {
struct fw_response response;
@@ -999,6 +1000,7 @@ struct dynamic_fw_load_mgr {
struct pci_mem_region *image_region;
size_t fw_image_size;
u32 wait_for_bl_timeout;
+ bool fw_desc_valid;
};
/**
diff --git a/drivers/misc/lattice-ecp3-config.c b/drivers/misc/lattice-ecp3-config.c
index 0f54730c7ed5..98828030b5a4 100644
--- a/drivers/misc/lattice-ecp3-config.c
+++ b/drivers/misc/lattice-ecp3-config.c
@@ -76,12 +76,12 @@ static void firmware_load(const struct firmware *fw, void *context)
if (fw == NULL) {
dev_err(&spi->dev, "Cannot load firmware, aborting\n");
- return;
+ goto out;
}
if (fw->size == 0) {
dev_err(&spi->dev, "Error: Firmware size is 0!\n");
- return;
+ goto out;
}
/* Fill dummy data (24 stuffing bits for commands) */
@@ -103,7 +103,7 @@ static void firmware_load(const struct firmware *fw, void *context)
dev_err(&spi->dev,
"Error: No supported FPGA detected (JEDEC_ID=%08x)!\n",
jedec_id);
- return;
+ goto out;
}
dev_info(&spi->dev, "FPGA %s detected\n", ecp3_dev[i].name);
@@ -116,7 +116,7 @@ static void firmware_load(const struct firmware *fw, void *context)
buffer = kzalloc(fw->size + 8, GFP_KERNEL);
if (!buffer) {
dev_err(&spi->dev, "Error: Can't allocate memory!\n");
- return;
+ goto out;
}
/*
@@ -155,7 +155,7 @@ static void firmware_load(const struct firmware *fw, void *context)
"Error: Timeout waiting for FPGA to clear (status=%08x)!\n",
status);
kfree(buffer);
- return;
+ goto out;
}
dev_info(&spi->dev, "Configuring the FPGA...\n");
@@ -181,7 +181,7 @@ static void firmware_load(const struct firmware *fw, void *context)
release_firmware(fw);
kfree(buffer);
-
+out:
complete(&data->fw_loaded);
}
diff --git a/drivers/misc/lkdtm/Makefile b/drivers/misc/lkdtm/Makefile
index aa12097668d3..e2984ce51fe4 100644
--- a/drivers/misc/lkdtm/Makefile
+++ b/drivers/misc/lkdtm/Makefile
@@ -20,7 +20,7 @@ CFLAGS_REMOVE_rodata.o += $(CC_FLAGS_LTO)
OBJCOPYFLAGS :=
OBJCOPYFLAGS_rodata_objcopy.o := \
- --rename-section .noinstr.text=.rodata,alloc,readonly,load
+ --rename-section .noinstr.text=.rodata,alloc,readonly,load,contents
targets += rodata.o rodata_objcopy.o
$(obj)/rodata_objcopy.o: $(obj)/rodata.o FORCE
$(call if_changed,objcopy)
diff --git a/drivers/misc/mei/hbm.c b/drivers/misc/mei/hbm.c
index be41843df75b..cebcca6d6d3e 100644
--- a/drivers/misc/mei/hbm.c
+++ b/drivers/misc/mei/hbm.c
@@ -672,10 +672,14 @@ static void mei_hbm_cl_dma_map_res(struct mei_device *dev,
if (!cl)
return;
- dev_dbg(dev->dev, "cl dma map result = %d\n", res->status);
- cl->status = res->status;
- if (!cl->status)
+ if (res->status) {
+ dev_err(dev->dev, "cl dma map failed %d\n", res->status);
+ cl->status = -EFAULT;
+ } else {
+ dev_dbg(dev->dev, "cl dma map succeeded\n");
cl->dma_mapped = 1;
+ cl->status = 0;
+ }
wake_up(&cl->wait);
}
@@ -698,10 +702,14 @@ static void mei_hbm_cl_dma_unmap_res(struct mei_device *dev,
if (!cl)
return;
- dev_dbg(dev->dev, "cl dma unmap result = %d\n", res->status);
- cl->status = res->status;
- if (!cl->status)
+ if (res->status) {
+ dev_err(dev->dev, "cl dma unmap failed %d\n", res->status);
+ cl->status = -EFAULT;
+ } else {
+ dev_dbg(dev->dev, "cl dma unmap succeeded\n");
cl->dma_mapped = 0;
+ cl->status = 0;
+ }
wake_up(&cl->wait);
}
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index 68edf7a615be..5447c47157aa 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -708,6 +708,8 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
if (host->ops->init_card)
host->ops->init_card(host, card);
+ card->ocr = ocr_card;
+
/*
* If the host and card support UHS-I mode request the card
* to switch to 1.8V signaling level. No 1.8v signalling if
@@ -820,7 +822,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
goto mismatch;
}
}
- card->ocr = ocr_card;
+
mmc_fixup_device(card, sdio_fixup_methods);
if (card->type == MMC_TYPE_SD_COMBO) {
diff --git a/drivers/mmc/host/meson-mx-sdhc-mmc.c b/drivers/mmc/host/meson-mx-sdhc-mmc.c
index 8fdd0bbbfa21..28aa78aa08f3 100644
--- a/drivers/mmc/host/meson-mx-sdhc-mmc.c
+++ b/drivers/mmc/host/meson-mx-sdhc-mmc.c
@@ -854,6 +854,11 @@ static int meson_mx_sdhc_probe(struct platform_device *pdev)
goto err_disable_pclk;
irq = platform_get_irq(pdev, 0);
+ if (irq < 0) {
+ ret = irq;
+ goto err_disable_pclk;
+ }
+
ret = devm_request_threaded_irq(dev, irq, meson_mx_sdhc_irq,
meson_mx_sdhc_irq_thread, IRQF_ONESHOT,
NULL, host);
diff --git a/drivers/mmc/host/meson-mx-sdio.c b/drivers/mmc/host/meson-mx-sdio.c
index d4a48916bfb6..3a19a05ef55a 100644
--- a/drivers/mmc/host/meson-mx-sdio.c
+++ b/drivers/mmc/host/meson-mx-sdio.c
@@ -662,6 +662,11 @@ static int meson_mx_mmc_probe(struct platform_device *pdev)
}
irq = platform_get_irq(pdev, 0);
+ if (irq < 0) {
+ ret = irq;
+ goto error_free_mmc;
+ }
+
ret = devm_request_threaded_irq(host->controller_dev, irq,
meson_mx_mmc_irq,
meson_mx_mmc_irq_thread, IRQF_ONESHOT,
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
index 9e6dab7e3424..1ac92015992e 100644
--- a/drivers/mmc/host/mtk-sd.c
+++ b/drivers/mmc/host/mtk-sd.c
@@ -628,12 +628,11 @@ static void msdc_reset_hw(struct msdc_host *host)
u32 val;
sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_RST);
- while (readl(host->base + MSDC_CFG) & MSDC_CFG_RST)
- cpu_relax();
+ readl_poll_timeout(host->base + MSDC_CFG, val, !(val & MSDC_CFG_RST), 0, 0);
sdr_set_bits(host->base + MSDC_FIFOCS, MSDC_FIFOCS_CLR);
- while (readl(host->base + MSDC_FIFOCS) & MSDC_FIFOCS_CLR)
- cpu_relax();
+ readl_poll_timeout(host->base + MSDC_FIFOCS, val,
+ !(val & MSDC_FIFOCS_CLR), 0, 0);
val = readl(host->base + MSDC_INT);
writel(val, host->base + MSDC_INT);
@@ -806,8 +805,9 @@ static void msdc_gate_clock(struct msdc_host *host)
clk_disable_unprepare(host->h_clk);
}
-static void msdc_ungate_clock(struct msdc_host *host)
+static int msdc_ungate_clock(struct msdc_host *host)
{
+ u32 val;
int ret;
clk_prepare_enable(host->h_clk);
@@ -817,11 +817,11 @@ static void msdc_ungate_clock(struct msdc_host *host)
ret = clk_bulk_prepare_enable(MSDC_NR_CLOCKS, host->bulk_clks);
if (ret) {
dev_err(host->dev, "Cannot enable pclk/axi/ahb clock gates\n");
- return;
+ return ret;
}
- while (!(readl(host->base + MSDC_CFG) & MSDC_CFG_CKSTB))
- cpu_relax();
+ return readl_poll_timeout(host->base + MSDC_CFG, val,
+ (val & MSDC_CFG_CKSTB), 1, 20000);
}
static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
@@ -832,6 +832,7 @@ static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
u32 div;
u32 sclk;
u32 tune_reg = host->dev_comp->pad_tune_reg;
+ u32 val;
if (!hz) {
dev_dbg(host->dev, "set mclk to 0\n");
@@ -912,8 +913,7 @@ static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
else
clk_prepare_enable(clk_get_parent(host->src_clk));
- while (!(readl(host->base + MSDC_CFG) & MSDC_CFG_CKSTB))
- cpu_relax();
+ readl_poll_timeout(host->base + MSDC_CFG, val, (val & MSDC_CFG_CKSTB), 0, 0);
sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_CKPDN);
mmc->actual_clock = sclk;
host->mclk = hz;
@@ -1223,13 +1223,13 @@ static bool msdc_cmd_done(struct msdc_host *host, int events,
static inline bool msdc_cmd_is_ready(struct msdc_host *host,
struct mmc_request *mrq, struct mmc_command *cmd)
{
- /* The max busy time we can endure is 20ms */
- unsigned long tmo = jiffies + msecs_to_jiffies(20);
+ u32 val;
+ int ret;
- while ((readl(host->base + SDC_STS) & SDC_STS_CMDBUSY) &&
- time_before(jiffies, tmo))
- cpu_relax();
- if (readl(host->base + SDC_STS) & SDC_STS_CMDBUSY) {
+ /* The max busy time we can endure is 20ms */
+ ret = readl_poll_timeout_atomic(host->base + SDC_STS, val,
+ !(val & SDC_STS_CMDBUSY), 1, 20000);
+ if (ret) {
dev_err(host->dev, "CMD bus busy detected\n");
host->error |= REQ_CMD_BUSY;
msdc_cmd_done(host, MSDC_INT_CMDTMO, mrq, cmd);
@@ -1237,12 +1237,10 @@ static inline bool msdc_cmd_is_ready(struct msdc_host *host,
}
if (mmc_resp_type(cmd) == MMC_RSP_R1B || cmd->data) {
- tmo = jiffies + msecs_to_jiffies(20);
/* R1B or with data, should check SDCBUSY */
- while ((readl(host->base + SDC_STS) & SDC_STS_SDCBUSY) &&
- time_before(jiffies, tmo))
- cpu_relax();
- if (readl(host->base + SDC_STS) & SDC_STS_SDCBUSY) {
+ ret = readl_poll_timeout_atomic(host->base + SDC_STS, val,
+ !(val & SDC_STS_SDCBUSY), 1, 20000);
+ if (ret) {
dev_err(host->dev, "Controller busy detected\n");
host->error |= REQ_CMD_BUSY;
msdc_cmd_done(host, MSDC_INT_CMDTMO, mrq, cmd);
@@ -1367,6 +1365,8 @@ static bool msdc_data_xfer_done(struct msdc_host *host, u32 events,
(MSDC_INT_XFER_COMPL | MSDC_INT_DATCRCERR | MSDC_INT_DATTMO
| MSDC_INT_DMA_BDCSERR | MSDC_INT_DMA_GPDCSERR
| MSDC_INT_DMA_PROTECT);
+ u32 val;
+ int ret;
spin_lock_irqsave(&host->lock, flags);
done = !host->data;
@@ -1383,8 +1383,14 @@ static bool msdc_data_xfer_done(struct msdc_host *host, u32 events,
readl(host->base + MSDC_DMA_CFG));
sdr_set_field(host->base + MSDC_DMA_CTRL, MSDC_DMA_CTRL_STOP,
1);
- while (readl(host->base + MSDC_DMA_CFG) & MSDC_DMA_CFG_STS)
- cpu_relax();
+
+ ret = readl_poll_timeout_atomic(host->base + MSDC_DMA_CFG, val,
+ !(val & MSDC_DMA_CFG_STS), 1, 20000);
+ if (ret) {
+ dev_dbg(host->dev, "DMA stop timed out\n");
+ return false;
+ }
+
sdr_clr_bits(host->base + MSDC_INTEN, data_ints_mask);
dev_dbg(host->dev, "DMA stop\n");
@@ -2598,7 +2604,11 @@ static int msdc_drv_probe(struct platform_device *pdev)
spin_lock_init(&host->lock);
platform_set_drvdata(pdev, mmc);
- msdc_ungate_clock(host);
+ ret = msdc_ungate_clock(host);
+ if (ret) {
+ dev_err(&pdev->dev, "Cannot ungate clocks!\n");
+ goto release_mem;
+ }
msdc_init_hw(host);
if (mmc->caps2 & MMC_CAP2_CQE) {
@@ -2757,8 +2767,12 @@ static int __maybe_unused msdc_runtime_resume(struct device *dev)
{
struct mmc_host *mmc = dev_get_drvdata(dev);
struct msdc_host *host = mmc_priv(mmc);
+ int ret;
+
+ ret = msdc_ungate_clock(host);
+ if (ret)
+ return ret;
- msdc_ungate_clock(host);
msdc_restore_reg(host);
return 0;
}
diff --git a/drivers/mmc/host/sdhci-pci-gli.c b/drivers/mmc/host/sdhci-pci-gli.c
index 4fd99c1e82ba..ad50f16658fe 100644
--- a/drivers/mmc/host/sdhci-pci-gli.c
+++ b/drivers/mmc/host/sdhci-pci-gli.c
@@ -12,6 +12,7 @@
#include <linux/pci.h>
#include <linux/mmc/mmc.h>
#include <linux/delay.h>
+#include <linux/of.h>
#include "sdhci.h"
#include "sdhci-pci.h"
#include "cqhci.h"
@@ -116,6 +117,8 @@
#define PCI_GLI_9755_PECONF 0x44
#define PCI_GLI_9755_LFCLK GENMASK(14, 12)
#define PCI_GLI_9755_DMACLK BIT(29)
+#define PCI_GLI_9755_INVERT_CD BIT(30)
+#define PCI_GLI_9755_INVERT_WP BIT(31)
#define PCI_GLI_9755_CFG2 0x48
#define PCI_GLI_9755_CFG2_L1DLY GENMASK(28, 24)
@@ -570,6 +573,14 @@ static void gl9755_hw_setting(struct sdhci_pci_slot *slot)
gl9755_wt_on(pdev);
pci_read_config_dword(pdev, PCI_GLI_9755_PECONF, &value);
+ /*
+ * Apple ARM64 platforms using these chips may have
+ * inverted CD/WP detection.
+ */
+ if (of_property_read_bool(pdev->dev.of_node, "cd-inverted"))
+ value |= PCI_GLI_9755_INVERT_CD;
+ if (of_property_read_bool(pdev->dev.of_node, "wp-inverted"))
+ value |= PCI_GLI_9755_INVERT_WP;
value &= ~PCI_GLI_9755_LFCLK;
value &= ~PCI_GLI_9755_DMACLK;
pci_write_config_dword(pdev, PCI_GLI_9755_PECONF, value);
diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c
index e2affa52ef46..a5850d83908b 100644
--- a/drivers/mmc/host/tmio_mmc_core.c
+++ b/drivers/mmc/host/tmio_mmc_core.c
@@ -960,14 +960,8 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
case MMC_POWER_OFF:
tmio_mmc_power_off(host);
/* For R-Car Gen2+, we need to reset SDHI specific SCC */
- if (host->pdata->flags & TMIO_MMC_MIN_RCAR2) {
- host->reset(host);
-
- if (host->native_hotplug)
- tmio_mmc_enable_mmc_irqs(host,
- TMIO_STAT_CARD_REMOVE |
- TMIO_STAT_CARD_INSERT);
- }
+ if (host->pdata->flags & TMIO_MMC_MIN_RCAR2)
+ tmio_mmc_reset(host);
host->set_clock(host, 0);
break;
@@ -1175,6 +1169,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host)
if (mmc_can_gpio_cd(mmc))
_host->ops.get_cd = mmc_gpio_get_cd;
+ /* must be set before tmio_mmc_reset() */
_host->native_hotplug = !(mmc_can_gpio_cd(mmc) ||
mmc->caps & MMC_CAP_NEEDS_POLL ||
!mmc_card_is_removable(mmc));
@@ -1295,10 +1290,6 @@ int tmio_mmc_host_runtime_resume(struct device *dev)
if (host->clk_cache)
host->set_clock(host, host->clk_cache);
- if (host->native_hotplug)
- tmio_mmc_enable_mmc_irqs(host,
- TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT);
-
tmio_mmc_enable_dma(host, true);
return 0;
diff --git a/drivers/mtd/hyperbus/rpc-if.c b/drivers/mtd/hyperbus/rpc-if.c
index ecb050ba95cd..dc164c18f842 100644
--- a/drivers/mtd/hyperbus/rpc-if.c
+++ b/drivers/mtd/hyperbus/rpc-if.c
@@ -124,7 +124,9 @@ static int rpcif_hb_probe(struct platform_device *pdev)
if (!hyperbus)
return -ENOMEM;
- rpcif_sw_init(&hyperbus->rpc, pdev->dev.parent);
+ error = rpcif_sw_init(&hyperbus->rpc, pdev->dev.parent);
+ if (error)
+ return error;
platform_set_drvdata(pdev, hyperbus);
@@ -150,9 +152,9 @@ static int rpcif_hb_remove(struct platform_device *pdev)
{
struct rpcif_hyperbus *hyperbus = platform_get_drvdata(pdev);
int error = hyperbus_unregister_device(&hyperbus->hbdev);
- struct rpcif *rpc = dev_get_drvdata(pdev->dev.parent);
- rpcif_disable_rpm(rpc);
+ rpcif_disable_rpm(&hyperbus->rpc);
+
return error;
}
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index 153229198947..54df9cfd588e 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -825,8 +825,7 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
/* OTP nvmem will be registered on the physical device */
config.dev = mtd->dev.parent;
- /* just reuse the compatible as name */
- config.name = compatible;
+ config.name = kasprintf(GFP_KERNEL, "%s-%s", dev_name(&mtd->dev), compatible);
config.id = NVMEM_DEVID_NONE;
config.owner = THIS_MODULE;
config.type = NVMEM_TYPE_OTP;
@@ -842,6 +841,7 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
nvmem = NULL;
of_node_put(np);
+ kfree(config.name);
return nvmem;
}
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
index 04af12b66110..357661b62c94 100644
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -312,7 +312,7 @@ static int __mtd_del_partition(struct mtd_info *mtd)
if (err)
return err;
- list_del(&child->part.node);
+ list_del(&mtd->part.node);
free_partition(mtd);
return 0;
diff --git a/drivers/mtd/nand/raw/davinci_nand.c b/drivers/mtd/nand/raw/davinci_nand.c
index 118da9944e3b..45fec8c192ab 100644
--- a/drivers/mtd/nand/raw/davinci_nand.c
+++ b/drivers/mtd/nand/raw/davinci_nand.c
@@ -371,77 +371,6 @@ static int nand_davinci_correct_4bit(struct nand_chip *chip, u_char *data,
return corrected;
}
-/**
- * nand_read_page_hwecc_oob_first - hw ecc, read oob first
- * @chip: nand chip info structure
- * @buf: buffer to store read data
- * @oob_required: caller requires OOB data read to chip->oob_poi
- * @page: page number to read
- *
- * Hardware ECC for large page chips, require OOB to be read first. For this
- * ECC mode, the write_page method is re-used from ECC_HW. These methods
- * read/write ECC from the OOB area, unlike the ECC_HW_SYNDROME support with
- * multiple ECC steps, follows the "infix ECC" scheme and reads/writes ECC from
- * the data area, by overwriting the NAND manufacturer bad block markings.
- */
-static int nand_davinci_read_page_hwecc_oob_first(struct nand_chip *chip,
- uint8_t *buf,
- int oob_required, int page)
-{
- struct mtd_info *mtd = nand_to_mtd(chip);
- int i, eccsize = chip->ecc.size, ret;
- int eccbytes = chip->ecc.bytes;
- int eccsteps = chip->ecc.steps;
- uint8_t *p = buf;
- uint8_t *ecc_code = chip->ecc.code_buf;
- uint8_t *ecc_calc = chip->ecc.calc_buf;
- unsigned int max_bitflips = 0;
-
- /* Read the OOB area first */
- ret = nand_read_oob_op(chip, page, 0, chip->oob_poi, mtd->oobsize);
- if (ret)
- return ret;
-
- ret = nand_read_page_op(chip, page, 0, NULL, 0);
- if (ret)
- return ret;
-
- ret = mtd_ooblayout_get_eccbytes(mtd, ecc_code, chip->oob_poi, 0,
- chip->ecc.total);
- if (ret)
- return ret;
-
- for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
- int stat;
-
- chip->ecc.hwctl(chip, NAND_ECC_READ);
-
- ret = nand_read_data_op(chip, p, eccsize, false, false);
- if (ret)
- return ret;
-
- chip->ecc.calculate(chip, p, &ecc_calc[i]);
-
- stat = chip->ecc.correct(chip, p, &ecc_code[i], NULL);
- if (stat == -EBADMSG &&
- (chip->ecc.options & NAND_ECC_GENERIC_ERASED_CHECK)) {
- /* check for empty pages with bitflips */
- stat = nand_check_erased_ecc_chunk(p, eccsize,
- &ecc_code[i],
- eccbytes, NULL, 0,
- chip->ecc.strength);
- }
-
- if (stat < 0) {
- mtd->ecc_stats.failed++;
- } else {
- mtd->ecc_stats.corrected += stat;
- max_bitflips = max_t(unsigned int, max_bitflips, stat);
- }
- }
- return max_bitflips;
-}
-
/*----------------------------------------------------------------------*/
/* An ECC layout for using 4-bit ECC with small-page flash, storing
@@ -651,7 +580,7 @@ static int davinci_nand_attach_chip(struct nand_chip *chip)
} else if (chunks == 4 || chunks == 8) {
mtd_set_ooblayout(mtd,
nand_get_large_page_ooblayout());
- chip->ecc.read_page = nand_davinci_read_page_hwecc_oob_first;
+ chip->ecc.read_page = nand_read_page_hwecc_oob_first;
} else {
return -EIO;
}
diff --git a/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
index 4d08e4ab5c1b..6e9f7d80ef8b 100644
--- a/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
+++ b/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
@@ -713,14 +713,32 @@ static void gpmi_nfc_compute_timings(struct gpmi_nand_data *this,
(use_half_period ? BM_GPMI_CTRL1_HALF_PERIOD : 0);
}
-static void gpmi_nfc_apply_timings(struct gpmi_nand_data *this)
+static int gpmi_nfc_apply_timings(struct gpmi_nand_data *this)
{
struct gpmi_nfc_hardware_timing *hw = &this->hw;
struct resources *r = &this->resources;
void __iomem *gpmi_regs = r->gpmi_regs;
unsigned int dll_wait_time_us;
+ int ret;
+
+ /* Clock dividers do NOT guarantee a clean clock signal on its output
+ * during the change of the divide factor on i.MX6Q/UL/SX. On i.MX7/8,
+ * all clock dividers provide these guarantee.
+ */
+ if (GPMI_IS_MX6Q(this) || GPMI_IS_MX6SX(this))
+ clk_disable_unprepare(r->clock[0]);
- clk_set_rate(r->clock[0], hw->clk_rate);
+ ret = clk_set_rate(r->clock[0], hw->clk_rate);
+ if (ret) {
+ dev_err(this->dev, "cannot set clock rate to %lu Hz: %d\n", hw->clk_rate, ret);
+ return ret;
+ }
+
+ if (GPMI_IS_MX6Q(this) || GPMI_IS_MX6SX(this)) {
+ ret = clk_prepare_enable(r->clock[0]);
+ if (ret)
+ return ret;
+ }
writel(hw->timing0, gpmi_regs + HW_GPMI_TIMING0);
writel(hw->timing1, gpmi_regs + HW_GPMI_TIMING1);
@@ -739,6 +757,8 @@ static void gpmi_nfc_apply_timings(struct gpmi_nand_data *this)
/* Wait for the DLL to settle. */
udelay(dll_wait_time_us);
+
+ return 0;
}
static int gpmi_setup_interface(struct nand_chip *chip, int chipnr,
@@ -1034,15 +1054,6 @@ static int gpmi_get_clks(struct gpmi_nand_data *this)
r->clock[i] = clk;
}
- if (GPMI_IS_MX6(this))
- /*
- * Set the default value for the gpmi clock.
- *
- * If you want to use the ONFI nand which is in the
- * Synchronous Mode, you should change the clock as you need.
- */
- clk_set_rate(r->clock[0], 22000000);
-
return 0;
err_clock:
@@ -2280,7 +2291,9 @@ static int gpmi_nfc_exec_op(struct nand_chip *chip,
*/
if (this->hw.must_apply_timings) {
this->hw.must_apply_timings = false;
- gpmi_nfc_apply_timings(this);
+ ret = gpmi_nfc_apply_timings(this);
+ if (ret)
+ return ret;
}
dev_dbg(this->dev, "%s: %d instructions\n", __func__, op->ninstrs);
diff --git a/drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c b/drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c
index 0e9d426fe4f2..b18861bdcdc8 100644
--- a/drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c
+++ b/drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c
@@ -32,6 +32,7 @@ struct jz_soc_info {
unsigned long addr_offset;
unsigned long cmd_offset;
const struct mtd_ooblayout_ops *oob_layout;
+ bool oob_first;
};
struct ingenic_nand_cs {
@@ -240,6 +241,9 @@ static int ingenic_nand_attach_chip(struct nand_chip *chip)
if (chip->bbt_options & NAND_BBT_USE_FLASH)
chip->bbt_options |= NAND_BBT_NO_OOB;
+ if (nfc->soc_info->oob_first)
+ chip->ecc.read_page = nand_read_page_hwecc_oob_first;
+
/* For legacy reasons we use a different layout on the qi,lb60 board. */
if (of_machine_is_compatible("qi,lb60"))
mtd_set_ooblayout(mtd, &qi_lb60_ooblayout_ops);
@@ -534,6 +538,7 @@ static const struct jz_soc_info jz4740_soc_info = {
.data_offset = 0x00000000,
.cmd_offset = 0x00008000,
.addr_offset = 0x00010000,
+ .oob_first = true,
};
static const struct jz_soc_info jz4725b_soc_info = {
diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
index a130320de412..d5a2110eb38e 100644
--- a/drivers/mtd/nand/raw/nand_base.c
+++ b/drivers/mtd/nand/raw/nand_base.c
@@ -3160,6 +3160,73 @@ static int nand_read_page_hwecc(struct nand_chip *chip, uint8_t *buf,
return max_bitflips;
}
+/**
+ * nand_read_page_hwecc_oob_first - Hardware ECC page read with ECC
+ * data read from OOB area
+ * @chip: nand chip info structure
+ * @buf: buffer to store read data
+ * @oob_required: caller requires OOB data read to chip->oob_poi
+ * @page: page number to read
+ *
+ * Hardware ECC for large page chips, which requires the ECC data to be
+ * extracted from the OOB before the actual data is read.
+ */
+int nand_read_page_hwecc_oob_first(struct nand_chip *chip, uint8_t *buf,
+ int oob_required, int page)
+{
+ struct mtd_info *mtd = nand_to_mtd(chip);
+ int i, eccsize = chip->ecc.size, ret;
+ int eccbytes = chip->ecc.bytes;
+ int eccsteps = chip->ecc.steps;
+ uint8_t *p = buf;
+ uint8_t *ecc_code = chip->ecc.code_buf;
+ unsigned int max_bitflips = 0;
+
+ /* Read the OOB area first */
+ ret = nand_read_oob_op(chip, page, 0, chip->oob_poi, mtd->oobsize);
+ if (ret)
+ return ret;
+
+ /* Move read cursor to start of page */
+ ret = nand_change_read_column_op(chip, 0, NULL, 0, false);
+ if (ret)
+ return ret;
+
+ ret = mtd_ooblayout_get_eccbytes(mtd, ecc_code, chip->oob_poi, 0,
+ chip->ecc.total);
+ if (ret)
+ return ret;
+
+ for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
+ int stat;
+
+ chip->ecc.hwctl(chip, NAND_ECC_READ);
+
+ ret = nand_read_data_op(chip, p, eccsize, false, false);
+ if (ret)
+ return ret;
+
+ stat = chip->ecc.correct(chip, p, &ecc_code[i], NULL);
+ if (stat == -EBADMSG &&
+ (chip->ecc.options & NAND_ECC_GENERIC_ERASED_CHECK)) {
+ /* check for empty pages with bitflips */
+ stat = nand_check_erased_ecc_chunk(p, eccsize,
+ &ecc_code[i],
+ eccbytes, NULL, 0,
+ chip->ecc.strength);
+ }
+
+ if (stat < 0) {
+ mtd->ecc_stats.failed++;
+ } else {
+ mtd->ecc_stats.corrected += stat;
+ max_bitflips = max_t(unsigned int, max_bitflips, stat);
+ }
+ }
+ return max_bitflips;
+}
+EXPORT_SYMBOL_GPL(nand_read_page_hwecc_oob_first);
+
/**
* nand_read_page_syndrome - [REPLACEABLE] hardware ECC syndrome based page read
* @chip: nand chip info structure
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 77dc79a7f574..83cdaabd7b69 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1096,9 +1096,6 @@ static bool bond_should_notify_peers(struct bonding *bond)
slave = rcu_dereference(bond->curr_active_slave);
rcu_read_unlock();
- netdev_dbg(bond->dev, "bond_should_notify_peers: slave %s\n",
- slave ? slave->dev->name : "NULL");
-
if (!slave || !bond->send_peer_notif ||
bond->send_peer_notif %
max(1, bond->params.peer_notif_delay) != 0 ||
@@ -1106,6 +1103,9 @@ static bool bond_should_notify_peers(struct bonding *bond)
test_bit(__LINK_STATE_LINKWATCH_PENDING, &slave->dev->state))
return false;
+ netdev_dbg(bond->dev, "bond_should_notify_peers: slave %s\n",
+ slave ? slave->dev->name : "NULL");
+
return true;
}
@@ -3872,8 +3872,8 @@ u32 bond_xmit_hash(struct bonding *bond, struct sk_buff *skb)
skb->l4_hash)
return skb->hash;
- return __bond_xmit_hash(bond, skb, skb->head, skb->protocol,
- skb->mac_header, skb->network_header,
+ return __bond_xmit_hash(bond, skb, skb->data, skb->protocol,
+ skb_mac_offset(skb), skb_network_offset(skb),
skb_headlen(skb));
}
@@ -4843,25 +4843,39 @@ static netdev_tx_t bond_xmit_broadcast(struct sk_buff *skb,
struct bonding *bond = netdev_priv(bond_dev);
struct slave *slave = NULL;
struct list_head *iter;
+ bool xmit_suc = false;
+ bool skb_used = false;
bond_for_each_slave_rcu(bond, slave, iter) {
- if (bond_is_last_slave(bond, slave))
- break;
- if (bond_slave_is_up(slave) && slave->link == BOND_LINK_UP) {
- struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC);
+ struct sk_buff *skb2;
+
+ if (!(bond_slave_is_up(slave) && slave->link == BOND_LINK_UP))
+ continue;
+ if (bond_is_last_slave(bond, slave)) {
+ skb2 = skb;
+ skb_used = true;
+ } else {
+ skb2 = skb_clone(skb, GFP_ATOMIC);
if (!skb2) {
net_err_ratelimited("%s: Error: %s: skb_clone() failed\n",
bond_dev->name, __func__);
continue;
}
- bond_dev_queue_xmit(bond, skb2, slave->dev);
}
+
+ if (bond_dev_queue_xmit(bond, skb2, slave->dev) == NETDEV_TX_OK)
+ xmit_suc = true;
}
- if (slave && bond_slave_is_up(slave) && slave->link == BOND_LINK_UP)
- return bond_dev_queue_xmit(bond, skb, slave->dev);
- return bond_tx_drop(bond_dev, skb);
+ if (!skb_used)
+ dev_kfree_skb_any(skb);
+
+ if (xmit_suc)
+ return NETDEV_TX_OK;
+
+ atomic_long_inc(&bond_dev->tx_dropped);
+ return NET_XMIT_DROP;
}
/*------------------------- Device initialization ---------------------------*/
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 7734229aa078..18d7bb99ec1b 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -173,9 +173,9 @@
/* FLEXCAN interrupt flag register (IFLAG) bits */
/* Errata ERR005829 step7: Reserve first valid MB */
-#define FLEXCAN_TX_MB_RESERVED_OFF_FIFO 8
-#define FLEXCAN_TX_MB_RESERVED_OFF_TIMESTAMP 0
-#define FLEXCAN_RX_MB_OFF_TIMESTAMP_FIRST (FLEXCAN_TX_MB_RESERVED_OFF_TIMESTAMP + 1)
+#define FLEXCAN_TX_MB_RESERVED_RX_FIFO 8
+#define FLEXCAN_TX_MB_RESERVED_RX_MAILBOX 0
+#define FLEXCAN_RX_MB_RX_MAILBOX_FIRST (FLEXCAN_TX_MB_RESERVED_RX_MAILBOX + 1)
#define FLEXCAN_IFLAG_MB(x) BIT_ULL(x)
#define FLEXCAN_IFLAG_RX_FIFO_OVERFLOW BIT(7)
#define FLEXCAN_IFLAG_RX_FIFO_WARN BIT(6)
@@ -234,8 +234,8 @@
#define FLEXCAN_QUIRK_ENABLE_EACEN_RRS BIT(3)
/* Disable non-correctable errors interrupt and freeze mode */
#define FLEXCAN_QUIRK_DISABLE_MECR BIT(4)
-/* Use timestamp based offloading */
-#define FLEXCAN_QUIRK_USE_OFF_TIMESTAMP BIT(5)
+/* Use mailboxes (not FIFO) for RX path */
+#define FLEXCAN_QUIRK_USE_RX_MAILBOX BIT(5)
/* No interrupt for error passive */
#define FLEXCAN_QUIRK_BROKEN_PERR_STATE BIT(6)
/* default to BE register access */
@@ -252,6 +252,12 @@
#define FLEXCAN_QUIRK_NR_IRQ_3 BIT(12)
/* Setup 16 mailboxes */
#define FLEXCAN_QUIRK_NR_MB_16 BIT(13)
+/* Device supports RX via mailboxes */
+#define FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX BIT(14)
+/* Device supports RTR reception via mailboxes */
+#define FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR BIT(15)
+/* Device supports RX via FIFO */
+#define FLEXCAN_QUIRK_SUPPPORT_RX_FIFO BIT(16)
/* Structure of the message buffer */
struct flexcan_mb {
@@ -365,7 +371,7 @@ struct flexcan_priv {
struct clk *clk_ipg;
struct clk *clk_per;
- const struct flexcan_devtype_data *devtype_data;
+ struct flexcan_devtype_data devtype_data;
struct regulator *reg_xceiver;
struct flexcan_stop_mode stm;
@@ -382,59 +388,78 @@ struct flexcan_priv {
static const struct flexcan_devtype_data fsl_mcf5441x_devtype_data = {
.quirks = FLEXCAN_QUIRK_BROKEN_PERR_STATE |
- FLEXCAN_QUIRK_NR_IRQ_3 | FLEXCAN_QUIRK_NR_MB_16,
+ FLEXCAN_QUIRK_NR_IRQ_3 | FLEXCAN_QUIRK_NR_MB_16 |
+ FLEXCAN_QUIRK_SUPPPORT_RX_FIFO,
};
static const struct flexcan_devtype_data fsl_p1010_devtype_data = {
.quirks = FLEXCAN_QUIRK_BROKEN_WERR_STATE |
FLEXCAN_QUIRK_BROKEN_PERR_STATE |
- FLEXCAN_QUIRK_DEFAULT_BIG_ENDIAN,
+ FLEXCAN_QUIRK_DEFAULT_BIG_ENDIAN |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_FIFO,
};
static const struct flexcan_devtype_data fsl_imx25_devtype_data = {
.quirks = FLEXCAN_QUIRK_BROKEN_WERR_STATE |
- FLEXCAN_QUIRK_BROKEN_PERR_STATE,
+ FLEXCAN_QUIRK_BROKEN_PERR_STATE |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_FIFO,
};
static const struct flexcan_devtype_data fsl_imx28_devtype_data = {
- .quirks = FLEXCAN_QUIRK_BROKEN_PERR_STATE,
+ .quirks = FLEXCAN_QUIRK_BROKEN_PERR_STATE |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_FIFO,
};
static const struct flexcan_devtype_data fsl_imx6q_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
- FLEXCAN_QUIRK_USE_OFF_TIMESTAMP | FLEXCAN_QUIRK_BROKEN_PERR_STATE |
- FLEXCAN_QUIRK_SETUP_STOP_MODE_GPR,
+ FLEXCAN_QUIRK_USE_RX_MAILBOX | FLEXCAN_QUIRK_BROKEN_PERR_STATE |
+ FLEXCAN_QUIRK_SETUP_STOP_MODE_GPR |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR,
};
static const struct flexcan_devtype_data fsl_imx8qm_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
- FLEXCAN_QUIRK_USE_OFF_TIMESTAMP | FLEXCAN_QUIRK_BROKEN_PERR_STATE |
- FLEXCAN_QUIRK_SUPPORT_FD | FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW,
+ FLEXCAN_QUIRK_USE_RX_MAILBOX | FLEXCAN_QUIRK_BROKEN_PERR_STATE |
+ FLEXCAN_QUIRK_SUPPORT_FD | FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR,
};
static struct flexcan_devtype_data fsl_imx8mp_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
- FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP |
+ FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_RX_MAILBOX |
FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_SETUP_STOP_MODE_GPR |
- FLEXCAN_QUIRK_SUPPORT_FD | FLEXCAN_QUIRK_SUPPORT_ECC,
+ FLEXCAN_QUIRK_SUPPORT_FD | FLEXCAN_QUIRK_SUPPORT_ECC |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR,
};
static const struct flexcan_devtype_data fsl_vf610_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
- FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP |
- FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_SUPPORT_ECC,
+ FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_RX_MAILBOX |
+ FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_SUPPORT_ECC |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR,
};
static const struct flexcan_devtype_data fsl_ls1021a_r2_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
- FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP,
+ FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_USE_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR,
};
static const struct flexcan_devtype_data fsl_lx2160a_r1_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_BROKEN_PERR_STATE |
- FLEXCAN_QUIRK_USE_OFF_TIMESTAMP | FLEXCAN_QUIRK_SUPPORT_FD |
- FLEXCAN_QUIRK_SUPPORT_ECC,
+ FLEXCAN_QUIRK_USE_RX_MAILBOX | FLEXCAN_QUIRK_SUPPORT_FD |
+ FLEXCAN_QUIRK_SUPPORT_ECC |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR,
};
static const struct can_bittiming_const flexcan_bittiming_const = {
@@ -596,7 +621,7 @@ static inline int flexcan_enter_stop_mode(struct flexcan_priv *priv)
priv->write(reg_mcr, ®s->mcr);
/* enable stop request */
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW) {
ret = flexcan_stop_mode_enable_scfw(priv, true);
if (ret < 0)
return ret;
@@ -615,7 +640,7 @@ static inline int flexcan_exit_stop_mode(struct flexcan_priv *priv)
int ret;
/* remove stop request */
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW) {
ret = flexcan_stop_mode_enable_scfw(priv, false);
if (ret < 0)
return ret;
@@ -1018,7 +1043,7 @@ static struct sk_buff *flexcan_mailbox_read(struct can_rx_offload *offload,
mb = flexcan_get_mb(priv, n);
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX) {
u32 code;
do {
@@ -1083,7 +1108,7 @@ static struct sk_buff *flexcan_mailbox_read(struct can_rx_offload *offload,
}
mark_as_read:
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX)
flexcan_write64(priv, FLEXCAN_IFLAG_MB(n), ®s->iflag1);
else
priv->write(FLEXCAN_IFLAG_RX_FIFO_AVAILABLE, ®s->iflag1);
@@ -1109,7 +1134,7 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
enum can_state last_state = priv->can.state;
/* reception interrupt */
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX) {
u64 reg_iflag_rx;
int ret;
@@ -1169,7 +1194,7 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
/* state change interrupt or broken error state quirk fix is enabled */
if ((reg_esr & FLEXCAN_ESR_ERR_STATE) ||
- (priv->devtype_data->quirks & (FLEXCAN_QUIRK_BROKEN_WERR_STATE |
+ (priv->devtype_data.quirks & (FLEXCAN_QUIRK_BROKEN_WERR_STATE |
FLEXCAN_QUIRK_BROKEN_PERR_STATE)))
flexcan_irq_state(dev, reg_esr);
@@ -1191,11 +1216,11 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
* (1): enabled if FLEXCAN_QUIRK_BROKEN_WERR_STATE is enabled
*/
if ((last_state != priv->can.state) &&
- (priv->devtype_data->quirks & FLEXCAN_QUIRK_BROKEN_PERR_STATE) &&
+ (priv->devtype_data.quirks & FLEXCAN_QUIRK_BROKEN_PERR_STATE) &&
!(priv->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING)) {
switch (priv->can.state) {
case CAN_STATE_ERROR_ACTIVE:
- if (priv->devtype_data->quirks &
+ if (priv->devtype_data.quirks &
FLEXCAN_QUIRK_BROKEN_WERR_STATE)
flexcan_error_irq_enable(priv);
else
@@ -1423,26 +1448,26 @@ static int flexcan_rx_offload_setup(struct net_device *dev)
else
priv->mb_size = sizeof(struct flexcan_mb) + CAN_MAX_DLEN;
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_NR_MB_16)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_NR_MB_16)
priv->mb_count = 16;
else
priv->mb_count = (sizeof(priv->regs->mb[0]) / priv->mb_size) +
(sizeof(priv->regs->mb[1]) / priv->mb_size);
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX)
priv->tx_mb_reserved =
- flexcan_get_mb(priv, FLEXCAN_TX_MB_RESERVED_OFF_TIMESTAMP);
+ flexcan_get_mb(priv, FLEXCAN_TX_MB_RESERVED_RX_MAILBOX);
else
priv->tx_mb_reserved =
- flexcan_get_mb(priv, FLEXCAN_TX_MB_RESERVED_OFF_FIFO);
+ flexcan_get_mb(priv, FLEXCAN_TX_MB_RESERVED_RX_FIFO);
priv->tx_mb_idx = priv->mb_count - 1;
priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx);
priv->tx_mask = FLEXCAN_IFLAG_MB(priv->tx_mb_idx);
priv->offload.mailbox_read = flexcan_mailbox_read;
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
- priv->offload.mb_first = FLEXCAN_RX_MB_OFF_TIMESTAMP_FIRST;
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX) {
+ priv->offload.mb_first = FLEXCAN_RX_MB_RX_MAILBOX_FIRST;
priv->offload.mb_last = priv->mb_count - 2;
priv->rx_mask = GENMASK_ULL(priv->offload.mb_last,
@@ -1506,7 +1531,7 @@ static int flexcan_chip_start(struct net_device *dev)
if (err)
goto out_chip_disable;
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SUPPORT_ECC)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SUPPORT_ECC)
flexcan_ram_init(dev);
flexcan_set_bittiming(dev);
@@ -1532,10 +1557,10 @@ static int flexcan_chip_start(struct net_device *dev)
/* MCR
*
* FIFO:
- * - disable for timestamp mode
+ * - disable for mailbox mode
* - enable for FIFO mode
*/
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX)
reg_mcr &= ~FLEXCAN_MCR_FEN;
else
reg_mcr |= FLEXCAN_MCR_FEN;
@@ -1586,7 +1611,7 @@ static int flexcan_chip_start(struct net_device *dev)
* on most Flexcan cores, too. Otherwise we don't get
* any error warning or passive interrupts.
*/
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_BROKEN_WERR_STATE ||
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_BROKEN_WERR_STATE ||
priv->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING)
reg_ctrl |= FLEXCAN_CTRL_ERR_MSK;
else
@@ -1599,7 +1624,7 @@ static int flexcan_chip_start(struct net_device *dev)
netdev_dbg(dev, "%s: writing ctrl=0x%08x", __func__, reg_ctrl);
priv->write(reg_ctrl, ®s->ctrl);
- if ((priv->devtype_data->quirks & FLEXCAN_QUIRK_ENABLE_EACEN_RRS)) {
+ if ((priv->devtype_data.quirks & FLEXCAN_QUIRK_ENABLE_EACEN_RRS)) {
reg_ctrl2 = priv->read(®s->ctrl2);
reg_ctrl2 |= FLEXCAN_CTRL2_EACEN | FLEXCAN_CTRL2_RRS;
priv->write(reg_ctrl2, ®s->ctrl2);
@@ -1631,7 +1656,7 @@ static int flexcan_chip_start(struct net_device *dev)
priv->write(reg_fdctrl, ®s->fdctrl);
}
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX) {
for (i = priv->offload.mb_first; i <= priv->offload.mb_last; i++) {
mb = flexcan_get_mb(priv, i);
priv->write(FLEXCAN_MB_CODE_RX_EMPTY,
@@ -1639,7 +1664,7 @@ static int flexcan_chip_start(struct net_device *dev)
}
} else {
/* clear and invalidate unused mailboxes first */
- for (i = FLEXCAN_TX_MB_RESERVED_OFF_FIFO; i < priv->mb_count; i++) {
+ for (i = FLEXCAN_TX_MB_RESERVED_RX_FIFO; i < priv->mb_count; i++) {
mb = flexcan_get_mb(priv, i);
priv->write(FLEXCAN_MB_CODE_RX_INACTIVE,
&mb->can_ctrl);
@@ -1659,7 +1684,7 @@ static int flexcan_chip_start(struct net_device *dev)
priv->write(0x0, ®s->rx14mask);
priv->write(0x0, ®s->rx15mask);
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_DISABLE_RXFG)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_DISABLE_RXFG)
priv->write(0x0, ®s->rxfgmask);
/* clear acceptance filters */
@@ -1673,7 +1698,7 @@ static int flexcan_chip_start(struct net_device *dev)
* This also works around errata e5295 which generates false
* positive memory errors and put the device in freeze mode.
*/
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_DISABLE_MECR) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_DISABLE_MECR) {
/* Follow the protocol as described in "Detection
* and Correction of Memory Errors" to write to
* MECR register (step 1 - 5)
@@ -1799,7 +1824,7 @@ static int flexcan_open(struct net_device *dev)
if (err)
goto out_can_rx_offload_disable;
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_NR_IRQ_3) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_NR_IRQ_3) {
err = request_irq(priv->irq_boff,
flexcan_irq, IRQF_SHARED, dev->name, dev);
if (err)
@@ -1845,7 +1870,7 @@ static int flexcan_close(struct net_device *dev)
netif_stop_queue(dev);
flexcan_chip_interrupts_disable(dev);
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_NR_IRQ_3) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_NR_IRQ_3) {
free_irq(priv->irq_err, dev);
free_irq(priv->irq_boff, dev);
}
@@ -2051,9 +2076,9 @@ static int flexcan_setup_stop_mode(struct platform_device *pdev)
priv = netdev_priv(dev);
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW)
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_SCFW)
ret = flexcan_setup_stop_mode_scfw(pdev);
- else if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_GPR)
+ else if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_GPR)
ret = flexcan_setup_stop_mode_gpr(pdev);
else
/* return 0 directly if doesn't support stop mode feature */
@@ -2164,8 +2189,25 @@ static int flexcan_probe(struct platform_device *pdev)
return -ENODEV;
if ((devtype_data->quirks & FLEXCAN_QUIRK_SUPPORT_FD) &&
- !(devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)) {
- dev_err(&pdev->dev, "CAN-FD mode doesn't work with FIFO mode!\n");
+ !((devtype_data->quirks &
+ (FLEXCAN_QUIRK_USE_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR |
+ FLEXCAN_QUIRK_SUPPPORT_RX_FIFO)) ==
+ (FLEXCAN_QUIRK_USE_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR))) {
+ dev_err(&pdev->dev, "CAN-FD mode doesn't work in RX-FIFO mode!\n");
+ return -EINVAL;
+ }
+
+ if ((devtype_data->quirks &
+ (FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX |
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR)) ==
+ FLEXCAN_QUIRK_SUPPPORT_RX_MAILBOX_RTR) {
+ dev_err(&pdev->dev,
+ "Quirks (0x%08x) inconsistent: RX_MAILBOX_RX supported but not RX_MAILBOX\n",
+ devtype_data->quirks);
return -EINVAL;
}
@@ -2181,9 +2223,10 @@ static int flexcan_probe(struct platform_device *pdev)
dev->flags |= IFF_ECHO;
priv = netdev_priv(dev);
+ priv->devtype_data = *devtype_data;
if (of_property_read_bool(pdev->dev.of_node, "big-endian") ||
- devtype_data->quirks & FLEXCAN_QUIRK_DEFAULT_BIG_ENDIAN) {
+ priv->devtype_data.quirks & FLEXCAN_QUIRK_DEFAULT_BIG_ENDIAN) {
priv->read = flexcan_read_be;
priv->write = flexcan_write_be;
} else {
@@ -2202,10 +2245,9 @@ static int flexcan_probe(struct platform_device *pdev)
priv->clk_ipg = clk_ipg;
priv->clk_per = clk_per;
priv->clk_src = clk_src;
- priv->devtype_data = devtype_data;
priv->reg_xceiver = reg_xceiver;
- if (devtype_data->quirks & FLEXCAN_QUIRK_NR_IRQ_3) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_NR_IRQ_3) {
priv->irq_boff = platform_get_irq(pdev, 1);
if (priv->irq_boff <= 0) {
err = -ENODEV;
@@ -2218,7 +2260,7 @@ static int flexcan_probe(struct platform_device *pdev)
}
}
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SUPPORT_FD) {
+ if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SUPPORT_FD) {
priv->can.ctrlmode_supported |= CAN_CTRLMODE_FD |
CAN_CTRLMODE_FD_NON_ISO;
priv->can.bittiming_const = &flexcan_fd_bittiming_const;
diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c
index ff9d0f5ae0dd..388521e70837 100644
--- a/drivers/net/can/rcar/rcar_canfd.c
+++ b/drivers/net/can/rcar/rcar_canfd.c
@@ -1640,8 +1640,7 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
ndev = alloc_candev(sizeof(*priv), RCANFD_FIFO_DEPTH);
if (!ndev) {
dev_err(&pdev->dev, "alloc_candev() failed\n");
- err = -ENOMEM;
- goto fail;
+ return -ENOMEM;
}
priv = netdev_priv(ndev);
@@ -1735,8 +1734,8 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
fail_candev:
netif_napi_del(&priv->napi);
- free_candev(ndev);
fail:
+ free_candev(ndev);
return err;
}
diff --git a/drivers/net/can/softing/softing_cs.c b/drivers/net/can/softing/softing_cs.c
index 2e93ee792373..e5c939b63fa6 100644
--- a/drivers/net/can/softing/softing_cs.c
+++ b/drivers/net/can/softing/softing_cs.c
@@ -293,7 +293,7 @@ static int softingcs_probe(struct pcmcia_device *pcmcia)
return 0;
platform_failed:
- kfree(dev);
+ platform_device_put(pdev);
mem_failed:
pcmcia_bad:
pcmcia_failed:
diff --git a/drivers/net/can/softing/softing_fw.c b/drivers/net/can/softing/softing_fw.c
index 7e1536877993..32286f861a19 100644
--- a/drivers/net/can/softing/softing_fw.c
+++ b/drivers/net/can/softing/softing_fw.c
@@ -565,18 +565,19 @@ int softing_startstop(struct net_device *dev, int up)
if (ret < 0)
goto failed;
}
- /* enable_error_frame */
- /*
+
+ /* enable_error_frame
+ *
* Error reporting is switched off at the moment since
* the receiving of them is not yet 100% verified
* This should be enabled sooner or later
- *
- if (error_reporting) {
+ */
+ if (0 && error_reporting) {
ret = softing_fct_cmd(card, 51, "enable_error_frame");
if (ret < 0)
goto failed;
}
- */
+
/* initialize interface */
iowrite16(1, &card->dpram[DPRAM_FCT_PARAM + 2]);
iowrite16(1, &card->dpram[DPRAM_FCT_PARAM + 4]);
diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
index e16dc482f327..9a4791d88683 100644
--- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
@@ -1336,7 +1336,7 @@ mcp251xfd_tef_obj_read(const struct mcp251xfd_priv *priv,
len > tx_ring->obj_num ||
offset + len > tx_ring->obj_num)) {
netdev_err(priv->ndev,
- "Trying to read to many TEF objects (max=%d, offset=%d, len=%d).\n",
+ "Trying to read too many TEF objects (max=%d, offset=%d, len=%d).\n",
tx_ring->obj_num, offset, len);
return -ERANGE;
}
@@ -2625,7 +2625,7 @@ static int mcp251xfd_register_chip_detect(struct mcp251xfd_priv *priv)
if (!mcp251xfd_is_251X(priv) &&
priv->devtype_data.model != devtype_data->model) {
netdev_info(ndev,
- "Detected %s, but firmware specifies a %s. Fixing up.",
+ "Detected %s, but firmware specifies a %s. Fixing up.\n",
__mcp251xfd_get_model_str(devtype_data->model),
mcp251xfd_get_model_str(priv));
}
@@ -2662,7 +2662,7 @@ static int mcp251xfd_register_check_rx_int(struct mcp251xfd_priv *priv)
return 0;
netdev_info(priv->ndev,
- "RX_INT active after softreset, disabling RX_INT support.");
+ "RX_INT active after softreset, disabling RX_INT support.\n");
devm_gpiod_put(&priv->spi->dev, priv->rx_int);
priv->rx_int = NULL;
diff --git a/drivers/net/can/xilinx_can.c b/drivers/net/can/xilinx_can.c
index 3b883e607d8b..a579b9b791ed 100644
--- a/drivers/net/can/xilinx_can.c
+++ b/drivers/net/can/xilinx_can.c
@@ -1762,7 +1762,12 @@ static int xcan_probe(struct platform_device *pdev)
spin_lock_init(&priv->tx_lock);
/* Get IRQ for the device */
- ndev->irq = platform_get_irq(pdev, 0);
+ ret = platform_get_irq(pdev, 0);
+ if (ret < 0)
+ goto err_free;
+
+ ndev->irq = ret;
+
ndev->flags |= IFF_ECHO; /* We support local echo */
platform_set_drvdata(pdev, ndev);
diff --git a/drivers/net/dsa/hirschmann/hellcreek.c b/drivers/net/dsa/hirschmann/hellcreek.c
index 354655f9ed00..950a54ec4b59 100644
--- a/drivers/net/dsa/hirschmann/hellcreek.c
+++ b/drivers/net/dsa/hirschmann/hellcreek.c
@@ -710,8 +710,9 @@ static int __hellcreek_fdb_add(struct hellcreek *hellcreek,
u16 meta = 0;
dev_dbg(hellcreek->dev, "Add static FDB entry: MAC=%pM, MASK=0x%02x, "
- "OBT=%d, REPRIO_EN=%d, PRIO=%d\n", entry->mac, entry->portmask,
- entry->is_obt, entry->reprio_en, entry->reprio_tc);
+ "OBT=%d, PASS_BLOCKED=%d, REPRIO_EN=%d, PRIO=%d\n", entry->mac,
+ entry->portmask, entry->is_obt, entry->pass_blocked,
+ entry->reprio_en, entry->reprio_tc);
/* Add mac address */
hellcreek_write(hellcreek, entry->mac[1] | (entry->mac[0] << 8), HR_FDBWDH);
@@ -722,6 +723,8 @@ static int __hellcreek_fdb_add(struct hellcreek *hellcreek,
meta |= entry->portmask << HR_FDBWRM0_PORTMASK_SHIFT;
if (entry->is_obt)
meta |= HR_FDBWRM0_OBT;
+ if (entry->pass_blocked)
+ meta |= HR_FDBWRM0_PASS_BLOCKED;
if (entry->reprio_en) {
meta |= HR_FDBWRM0_REPRIO_EN;
meta |= entry->reprio_tc << HR_FDBWRM0_REPRIO_TC_SHIFT;
@@ -1049,7 +1052,7 @@ static void hellcreek_setup_tc_identity_mapping(struct hellcreek *hellcreek)
static int hellcreek_setup_fdb(struct hellcreek *hellcreek)
{
- static struct hellcreek_fdb_entry ptp = {
+ static struct hellcreek_fdb_entry l2_ptp = {
/* MAC: 01-1B-19-00-00-00 */
.mac = { 0x01, 0x1b, 0x19, 0x00, 0x00, 0x00 },
.portmask = 0x03, /* Management ports */
@@ -1060,24 +1063,94 @@ static int hellcreek_setup_fdb(struct hellcreek *hellcreek)
.reprio_tc = 6, /* TC: 6 as per IEEE 802.1AS */
.reprio_en = 1,
};
- static struct hellcreek_fdb_entry p2p = {
+ static struct hellcreek_fdb_entry udp4_ptp = {
+ /* MAC: 01-00-5E-00-01-81 */
+ .mac = { 0x01, 0x00, 0x5e, 0x00, 0x01, 0x81 },
+ .portmask = 0x03, /* Management ports */
+ .age = 0,
+ .is_obt = 0,
+ .pass_blocked = 0,
+ .is_static = 1,
+ .reprio_tc = 6,
+ .reprio_en = 1,
+ };
+ static struct hellcreek_fdb_entry udp6_ptp = {
+ /* MAC: 33-33-00-00-01-81 */
+ .mac = { 0x33, 0x33, 0x00, 0x00, 0x01, 0x81 },
+ .portmask = 0x03, /* Management ports */
+ .age = 0,
+ .is_obt = 0,
+ .pass_blocked = 0,
+ .is_static = 1,
+ .reprio_tc = 6,
+ .reprio_en = 1,
+ };
+ static struct hellcreek_fdb_entry l2_p2p = {
/* MAC: 01-80-C2-00-00-0E */
.mac = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x0e },
.portmask = 0x03, /* Management ports */
.age = 0,
.is_obt = 0,
- .pass_blocked = 0,
+ .pass_blocked = 1,
.is_static = 1,
.reprio_tc = 6, /* TC: 6 as per IEEE 802.1AS */
.reprio_en = 1,
};
+ static struct hellcreek_fdb_entry udp4_p2p = {
+ /* MAC: 01-00-5E-00-00-6B */
+ .mac = { 0x01, 0x00, 0x5e, 0x00, 0x00, 0x6b },
+ .portmask = 0x03, /* Management ports */
+ .age = 0,
+ .is_obt = 0,
+ .pass_blocked = 1,
+ .is_static = 1,
+ .reprio_tc = 6,
+ .reprio_en = 1,
+ };
+ static struct hellcreek_fdb_entry udp6_p2p = {
+ /* MAC: 33-33-00-00-00-6B */
+ .mac = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x6b },
+ .portmask = 0x03, /* Management ports */
+ .age = 0,
+ .is_obt = 0,
+ .pass_blocked = 1,
+ .is_static = 1,
+ .reprio_tc = 6,
+ .reprio_en = 1,
+ };
+ static struct hellcreek_fdb_entry stp = {
+ /* MAC: 01-80-C2-00-00-00 */
+ .mac = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x00 },
+ .portmask = 0x03, /* Management ports */
+ .age = 0,
+ .is_obt = 0,
+ .pass_blocked = 1,
+ .is_static = 1,
+ .reprio_tc = 6,
+ .reprio_en = 1,
+ };
int ret;
mutex_lock(&hellcreek->reg_lock);
- ret = __hellcreek_fdb_add(hellcreek, &ptp);
+ ret = __hellcreek_fdb_add(hellcreek, &l2_ptp);
+ if (ret)
+ goto out;
+ ret = __hellcreek_fdb_add(hellcreek, &udp4_ptp);
+ if (ret)
+ goto out;
+ ret = __hellcreek_fdb_add(hellcreek, &udp6_ptp);
+ if (ret)
+ goto out;
+ ret = __hellcreek_fdb_add(hellcreek, &l2_p2p);
+ if (ret)
+ goto out;
+ ret = __hellcreek_fdb_add(hellcreek, &udp4_p2p);
+ if (ret)
+ goto out;
+ ret = __hellcreek_fdb_add(hellcreek, &udp6_p2p);
if (ret)
goto out;
- ret = __hellcreek_fdb_add(hellcreek, &p2p);
+ ret = __hellcreek_fdb_add(hellcreek, &stp);
out:
mutex_unlock(&hellcreek->reg_lock);
diff --git a/drivers/net/ethernet/broadcom/bnxt/Makefile b/drivers/net/ethernet/broadcom/bnxt/Makefile
index c6ef7ec2c115..2bc2b707d6ee 100644
--- a/drivers/net/ethernet/broadcom/bnxt/Makefile
+++ b/drivers/net/ethernet/broadcom/bnxt/Makefile
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0-only
obj-$(CONFIG_BNXT) += bnxt_en.o
-bnxt_en-y := bnxt.o bnxt_hwrm.o bnxt_sriov.o bnxt_ethtool.o bnxt_dcb.o bnxt_ulp.o bnxt_xdp.o bnxt_ptp.o bnxt_vfr.o bnxt_devlink.o bnxt_dim.o
+bnxt_en-y := bnxt.o bnxt_hwrm.o bnxt_sriov.o bnxt_ethtool.o bnxt_dcb.o bnxt_ulp.o bnxt_xdp.o bnxt_ptp.o bnxt_vfr.o bnxt_devlink.o bnxt_dim.o bnxt_coredump.o
bnxt_en-$(CONFIG_BNXT_FLOWER_OFFLOAD) += bnxt_tc.o
bnxt_en-$(CONFIG_DEBUG_FS) += bnxt_debugfs.o
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index 0fba01db336c..a8855a200a3c 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -8004,6 +8004,12 @@ static int bnxt_hwrm_ver_get(struct bnxt *bp)
bp->hwrm_cmd_timeout = le16_to_cpu(resp->def_req_timeout);
if (!bp->hwrm_cmd_timeout)
bp->hwrm_cmd_timeout = DFLT_HWRM_CMD_TIMEOUT;
+ bp->hwrm_cmd_max_timeout = le16_to_cpu(resp->max_req_timeout) * 1000;
+ if (!bp->hwrm_cmd_max_timeout)
+ bp->hwrm_cmd_max_timeout = HWRM_CMD_MAX_TIMEOUT;
+ else if (bp->hwrm_cmd_max_timeout > HWRM_CMD_MAX_TIMEOUT)
+ netdev_warn(bp->dev, "Device requests max timeout of %d seconds, may trigger hung task watchdog\n",
+ bp->hwrm_cmd_max_timeout / 1000);
if (resp->hwrm_intf_maj_8b >= 1) {
bp->hwrm_max_req_len = le16_to_cpu(resp->max_req_win_len);
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
index 19fe6478e9b4..0a5137c1f6d4 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
@@ -1901,7 +1901,8 @@ struct bnxt {
u16 hwrm_max_req_len;
u16 hwrm_max_ext_req_len;
- int hwrm_cmd_timeout;
+ unsigned int hwrm_cmd_timeout;
+ unsigned int hwrm_cmd_max_timeout;
struct mutex hwrm_cmd_lock; /* serialize hwrm messages */
struct hwrm_ver_get_output ver_resp;
#define FW_VER_STR_LEN 32
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c
new file mode 100644
index 000000000000..156f76bcea7e
--- /dev/null
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c
@@ -0,0 +1,372 @@
+/* Broadcom NetXtreme-C/E network driver.
+ *
+ * Copyright (c) 2021 Broadcom Limited
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation.
+ */
+
+#include <linux/types.h>
+#include <linux/errno.h>
+#include <linux/pci.h>
+#include "bnxt_hsi.h"
+#include "bnxt.h"
+#include "bnxt_hwrm.h"
+#include "bnxt_coredump.h"
+
+static int bnxt_hwrm_dbg_dma_data(struct bnxt *bp, void *msg,
+ struct bnxt_hwrm_dbg_dma_info *info)
+{
+ struct hwrm_dbg_cmn_input *cmn_req = msg;
+ __le16 *seq_ptr = msg + info->seq_off;
+ struct hwrm_dbg_cmn_output *cmn_resp;
+ u16 seq = 0, len, segs_off;
+ dma_addr_t dma_handle;
+ void *dma_buf, *resp;
+ int rc, off = 0;
+
+ dma_buf = hwrm_req_dma_slice(bp, msg, info->dma_len, &dma_handle);
+ if (!dma_buf) {
+ hwrm_req_drop(bp, msg);
+ return -ENOMEM;
+ }
+
+ hwrm_req_timeout(bp, msg, bp->hwrm_cmd_max_timeout);
+ cmn_resp = hwrm_req_hold(bp, msg);
+ resp = cmn_resp;
+
+ segs_off = offsetof(struct hwrm_dbg_coredump_list_output,
+ total_segments);
+ cmn_req->host_dest_addr = cpu_to_le64(dma_handle);
+ cmn_req->host_buf_len = cpu_to_le32(info->dma_len);
+ while (1) {
+ *seq_ptr = cpu_to_le16(seq);
+ rc = hwrm_req_send(bp, msg);
+ if (rc)
+ break;
+
+ len = le16_to_cpu(*((__le16 *)(resp + info->data_len_off)));
+ if (!seq &&
+ cmn_req->req_type == cpu_to_le16(HWRM_DBG_COREDUMP_LIST)) {
+ info->segs = le16_to_cpu(*((__le16 *)(resp +
+ segs_off)));
+ if (!info->segs) {
+ rc = -EIO;
+ break;
+ }
+
+ info->dest_buf_size = info->segs *
+ sizeof(struct coredump_segment_record);
+ info->dest_buf = kmalloc(info->dest_buf_size,
+ GFP_KERNEL);
+ if (!info->dest_buf) {
+ rc = -ENOMEM;
+ break;
+ }
+ }
+
+ if (info->dest_buf) {
+ if ((info->seg_start + off + len) <=
+ BNXT_COREDUMP_BUF_LEN(info->buf_len)) {
+ memcpy(info->dest_buf + off, dma_buf, len);
+ } else {
+ rc = -ENOBUFS;
+ break;
+ }
+ }
+
+ if (cmn_req->req_type ==
+ cpu_to_le16(HWRM_DBG_COREDUMP_RETRIEVE))
+ info->dest_buf_size += len;
+
+ if (!(cmn_resp->flags & HWRM_DBG_CMN_FLAGS_MORE))
+ break;
+
+ seq++;
+ off += len;
+ }
+ hwrm_req_drop(bp, msg);
+ return rc;
+}
+
+static int bnxt_hwrm_dbg_coredump_list(struct bnxt *bp,
+ struct bnxt_coredump *coredump)
+{
+ struct bnxt_hwrm_dbg_dma_info info = {NULL};
+ struct hwrm_dbg_coredump_list_input *req;
+ int rc;
+
+ rc = hwrm_req_init(bp, req, HWRM_DBG_COREDUMP_LIST);
+ if (rc)
+ return rc;
+
+ info.dma_len = COREDUMP_LIST_BUF_LEN;
+ info.seq_off = offsetof(struct hwrm_dbg_coredump_list_input, seq_no);
+ info.data_len_off = offsetof(struct hwrm_dbg_coredump_list_output,
+ data_len);
+
+ rc = bnxt_hwrm_dbg_dma_data(bp, req, &info);
+ if (!rc) {
+ coredump->data = info.dest_buf;
+ coredump->data_size = info.dest_buf_size;
+ coredump->total_segs = info.segs;
+ }
+ return rc;
+}
+
+static int bnxt_hwrm_dbg_coredump_initiate(struct bnxt *bp, u16 component_id,
+ u16 segment_id)
+{
+ struct hwrm_dbg_coredump_initiate_input *req;
+ int rc;
+
+ rc = hwrm_req_init(bp, req, HWRM_DBG_COREDUMP_INITIATE);
+ if (rc)
+ return rc;
+
+ hwrm_req_timeout(bp, req, bp->hwrm_cmd_max_timeout);
+ req->component_id = cpu_to_le16(component_id);
+ req->segment_id = cpu_to_le16(segment_id);
+
+ return hwrm_req_send(bp, req);
+}
+
+static int bnxt_hwrm_dbg_coredump_retrieve(struct bnxt *bp, u16 component_id,
+ u16 segment_id, u32 *seg_len,
+ void *buf, u32 buf_len, u32 offset)
+{
+ struct hwrm_dbg_coredump_retrieve_input *req;
+ struct bnxt_hwrm_dbg_dma_info info = {NULL};
+ int rc;
+
+ rc = hwrm_req_init(bp, req, HWRM_DBG_COREDUMP_RETRIEVE);
+ if (rc)
+ return rc;
+
+ req->component_id = cpu_to_le16(component_id);
+ req->segment_id = cpu_to_le16(segment_id);
+
+ info.dma_len = COREDUMP_RETRIEVE_BUF_LEN;
+ info.seq_off = offsetof(struct hwrm_dbg_coredump_retrieve_input,
+ seq_no);
+ info.data_len_off = offsetof(struct hwrm_dbg_coredump_retrieve_output,
+ data_len);
+ if (buf) {
+ info.dest_buf = buf + offset;
+ info.buf_len = buf_len;
+ info.seg_start = offset;
+ }
+
+ rc = bnxt_hwrm_dbg_dma_data(bp, req, &info);
+ if (!rc)
+ *seg_len = info.dest_buf_size;
+
+ return rc;
+}
+
+static void
+bnxt_fill_coredump_seg_hdr(struct bnxt *bp,
+ struct bnxt_coredump_segment_hdr *seg_hdr,
+ struct coredump_segment_record *seg_rec, u32 seg_len,
+ int status, u32 duration, u32 instance)
+{
+ memset(seg_hdr, 0, sizeof(*seg_hdr));
+ memcpy(seg_hdr->signature, "sEgM", 4);
+ if (seg_rec) {
+ seg_hdr->component_id = (__force __le32)seg_rec->component_id;
+ seg_hdr->segment_id = (__force __le32)seg_rec->segment_id;
+ seg_hdr->low_version = seg_rec->version_low;
+ seg_hdr->high_version = seg_rec->version_hi;
+ } else {
+ /* For hwrm_ver_get response Component id = 2
+ * and Segment id = 0
+ */
+ seg_hdr->component_id = cpu_to_le32(2);
+ seg_hdr->segment_id = 0;
+ }
+ seg_hdr->function_id = cpu_to_le16(bp->pdev->devfn);
+ seg_hdr->length = cpu_to_le32(seg_len);
+ seg_hdr->status = cpu_to_le32(status);
+ seg_hdr->duration = cpu_to_le32(duration);
+ seg_hdr->data_offset = cpu_to_le32(sizeof(*seg_hdr));
+ seg_hdr->instance = cpu_to_le32(instance);
+}
+
+static void
+bnxt_fill_coredump_record(struct bnxt *bp, struct bnxt_coredump_record *record,
+ time64_t start, s16 start_utc, u16 total_segs,
+ int status)
+{
+ time64_t end = ktime_get_real_seconds();
+ u32 os_ver_major = 0, os_ver_minor = 0;
+ struct tm tm;
+
+ time64_to_tm(start, 0, &tm);
+ memset(record, 0, sizeof(*record));
+ memcpy(record->signature, "cOrE", 4);
+ record->flags = 0;
+ record->low_version = 0;
+ record->high_version = 1;
+ record->asic_state = 0;
+ strscpy(record->system_name, utsname()->nodename,
+ sizeof(record->system_name));
+ record->year = cpu_to_le16(tm.tm_year + 1900);
+ record->month = cpu_to_le16(tm.tm_mon + 1);
+ record->day = cpu_to_le16(tm.tm_mday);
+ record->hour = cpu_to_le16(tm.tm_hour);
+ record->minute = cpu_to_le16(tm.tm_min);
+ record->second = cpu_to_le16(tm.tm_sec);
+ record->utc_bias = cpu_to_le16(start_utc);
+ strcpy(record->commandline, "ethtool -w");
+ record->total_segments = cpu_to_le32(total_segs);
+
+ if (sscanf(utsname()->release, "%u.%u", &os_ver_major, &os_ver_minor) != 2)
+ netdev_warn(bp->dev, "Unknown OS release in coredump\n");
+ record->os_ver_major = cpu_to_le32(os_ver_major);
+ record->os_ver_minor = cpu_to_le32(os_ver_minor);
+
+ strscpy(record->os_name, utsname()->sysname, sizeof(record->os_name));
+ time64_to_tm(end, 0, &tm);
+ record->end_year = cpu_to_le16(tm.tm_year + 1900);
+ record->end_month = cpu_to_le16(tm.tm_mon + 1);
+ record->end_day = cpu_to_le16(tm.tm_mday);
+ record->end_hour = cpu_to_le16(tm.tm_hour);
+ record->end_minute = cpu_to_le16(tm.tm_min);
+ record->end_second = cpu_to_le16(tm.tm_sec);
+ record->end_utc_bias = cpu_to_le16(sys_tz.tz_minuteswest * 60);
+ record->asic_id1 = cpu_to_le32(bp->chip_num << 16 |
+ bp->ver_resp.chip_rev << 8 |
+ bp->ver_resp.chip_metal);
+ record->asic_id2 = 0;
+ record->coredump_status = cpu_to_le32(status);
+ record->ioctl_low_version = 0;
+ record->ioctl_high_version = 0;
+}
+
+static int __bnxt_get_coredump(struct bnxt *bp, void *buf, u32 *dump_len)
+{
+ u32 ver_get_resp_len = sizeof(struct hwrm_ver_get_output);
+ u32 offset = 0, seg_hdr_len, seg_record_len, buf_len = 0;
+ struct coredump_segment_record *seg_record = NULL;
+ struct bnxt_coredump_segment_hdr seg_hdr;
+ struct bnxt_coredump coredump = {NULL};
+ time64_t start_time;
+ u16 start_utc;
+ int rc = 0, i;
+
+ if (buf)
+ buf_len = *dump_len;
+
+ start_time = ktime_get_real_seconds();
+ start_utc = sys_tz.tz_minuteswest * 60;
+ seg_hdr_len = sizeof(seg_hdr);
+
+ /* First segment should be hwrm_ver_get response */
+ *dump_len = seg_hdr_len + ver_get_resp_len;
+ if (buf) {
+ bnxt_fill_coredump_seg_hdr(bp, &seg_hdr, NULL, ver_get_resp_len,
+ 0, 0, 0);
+ memcpy(buf + offset, &seg_hdr, seg_hdr_len);
+ offset += seg_hdr_len;
+ memcpy(buf + offset, &bp->ver_resp, ver_get_resp_len);
+ offset += ver_get_resp_len;
+ }
+
+ rc = bnxt_hwrm_dbg_coredump_list(bp, &coredump);
+ if (rc) {
+ netdev_err(bp->dev, "Failed to get coredump segment list\n");
+ goto err;
+ }
+
+ *dump_len += seg_hdr_len * coredump.total_segs;
+
+ seg_record = (struct coredump_segment_record *)coredump.data;
+ seg_record_len = sizeof(*seg_record);
+
+ for (i = 0; i < coredump.total_segs; i++) {
+ u16 comp_id = le16_to_cpu(seg_record->component_id);
+ u16 seg_id = le16_to_cpu(seg_record->segment_id);
+ u32 duration = 0, seg_len = 0;
+ unsigned long start, end;
+
+ if (buf && ((offset + seg_hdr_len) >
+ BNXT_COREDUMP_BUF_LEN(buf_len))) {
+ rc = -ENOBUFS;
+ goto err;
+ }
+
+ start = jiffies;
+
+ rc = bnxt_hwrm_dbg_coredump_initiate(bp, comp_id, seg_id);
+ if (rc) {
+ netdev_err(bp->dev,
+ "Failed to initiate coredump for seg = %d\n",
+ seg_record->segment_id);
+ goto next_seg;
+ }
+
+ /* Write segment data into the buffer */
+ rc = bnxt_hwrm_dbg_coredump_retrieve(bp, comp_id, seg_id,
+ &seg_len, buf, buf_len,
+ offset + seg_hdr_len);
+ if (rc && rc == -ENOBUFS)
+ goto err;
+ else if (rc)
+ netdev_err(bp->dev,
+ "Failed to retrieve coredump for seg = %d\n",
+ seg_record->segment_id);
+
+next_seg:
+ end = jiffies;
+ duration = jiffies_to_msecs(end - start);
+ bnxt_fill_coredump_seg_hdr(bp, &seg_hdr, seg_record, seg_len,
+ rc, duration, 0);
+
+ if (buf) {
+ /* Write segment header into the buffer */
+ memcpy(buf + offset, &seg_hdr, seg_hdr_len);
+ offset += seg_hdr_len + seg_len;
+ }
+
+ *dump_len += seg_len;
+ seg_record =
+ (struct coredump_segment_record *)((u8 *)seg_record +
+ seg_record_len);
+ }
+
+err:
+ if (buf)
+ bnxt_fill_coredump_record(bp, buf + offset, start_time,
+ start_utc, coredump.total_segs + 1,
+ rc);
+ kfree(coredump.data);
+ *dump_len += sizeof(struct bnxt_coredump_record);
+ if (rc == -ENOBUFS)
+ netdev_err(bp->dev, "Firmware returned large coredump buffer\n");
+ return rc;
+}
+
+int bnxt_get_coredump(struct bnxt *bp, u16 dump_type, void *buf, u32 *dump_len)
+{
+ if (dump_type == BNXT_DUMP_CRASH) {
+#ifdef CONFIG_TEE_BNXT_FW
+ return tee_bnxt_copy_coredump(buf, 0, *dump_len);
+#else
+ return -EOPNOTSUPP;
+#endif
+ } else {
+ return __bnxt_get_coredump(bp, buf, dump_len);
+ }
+}
+
+u32 bnxt_get_coredump_length(struct bnxt *bp, u16 dump_type)
+{
+ u32 len = 0;
+
+ if (dump_type == BNXT_DUMP_CRASH)
+ len = BNXT_CRASH_DUMP_LEN;
+ else
+ __bnxt_get_coredump(bp, NULL, &len);
+ return len;
+}
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h b/drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h
index 09c22f8fe399..b1a1b2fffb19 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h
@@ -10,6 +10,10 @@
#ifndef BNXT_COREDUMP_H
#define BNXT_COREDUMP_H
+#include <linux/utsname.h>
+#include <linux/time.h>
+#include <linux/rtc.h>
+
struct bnxt_coredump_segment_hdr {
__u8 signature[4];
__le32 component_id;
@@ -63,4 +67,51 @@ struct bnxt_coredump_record {
__u8 ioctl_high_version;
__le16 rsvd3[313];
};
+
+#define BNXT_CRASH_DUMP_LEN (8 << 20)
+
+#define COREDUMP_LIST_BUF_LEN 2048
+#define COREDUMP_RETRIEVE_BUF_LEN 4096
+
+struct bnxt_coredump {
+ void *data;
+ int data_size;
+ u16 total_segs;
+};
+
+#define BNXT_COREDUMP_BUF_LEN(len) ((len) - sizeof(struct bnxt_coredump_record))
+
+struct bnxt_hwrm_dbg_dma_info {
+ void *dest_buf;
+ int dest_buf_size;
+ u16 dma_len;
+ u16 seq_off;
+ u16 data_len_off;
+ u16 segs;
+ u32 seg_start;
+ u32 buf_len;
+};
+
+struct hwrm_dbg_cmn_input {
+ __le16 req_type;
+ __le16 cmpl_ring;
+ __le16 seq_id;
+ __le16 target_id;
+ __le64 resp_addr;
+ __le64 host_dest_addr;
+ __le32 host_buf_len;
+};
+
+struct hwrm_dbg_cmn_output {
+ __le16 error_code;
+ __le16 req_type;
+ __le16 seq_id;
+ __le16 resp_len;
+ u8 flags;
+ #define HWRM_DBG_CMN_FLAGS_MORE 1
+};
+
+int bnxt_get_coredump(struct bnxt *bp, u16 dump_type, void *buf, u32 *dump_len);
+u32 bnxt_get_coredump_length(struct bnxt *bp, u16 dump_type);
+
#endif
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
index 7260910e75fb..249792510521 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
@@ -31,9 +31,6 @@
#include "bnxt_nvm_defs.h" /* NVRAM content constant and structure defs */
#include "bnxt_fw_hdr.h" /* Firmware hdr constant and structure defs */
#include "bnxt_coredump.h"
-#define FLASH_NVRAM_TIMEOUT ((HWRM_CMD_TIMEOUT) * 100)
-#define FLASH_PACKAGE_TIMEOUT ((HWRM_CMD_TIMEOUT) * 200)
-#define INSTALL_PACKAGE_TIMEOUT ((HWRM_CMD_TIMEOUT) * 200)
static u32 bnxt_get_msglevel(struct net_device *dev)
{
@@ -2167,7 +2164,7 @@ static int bnxt_flash_nvram(struct net_device *dev, u16 dir_type,
req->host_src_addr = cpu_to_le64(dma_handle);
}
- hwrm_req_timeout(bp, req, FLASH_NVRAM_TIMEOUT);
+ hwrm_req_timeout(bp, req, bp->hwrm_cmd_max_timeout);
req->dir_type = cpu_to_le16(dir_type);
req->dir_ordinal = cpu_to_le16(dir_ordinal);
req->dir_ext = cpu_to_le16(dir_ext);
@@ -2508,8 +2505,8 @@ int bnxt_flash_package_from_fw_obj(struct net_device *dev, const struct firmware
return rc;
}
- hwrm_req_timeout(bp, modify, FLASH_PACKAGE_TIMEOUT);
- hwrm_req_timeout(bp, install, INSTALL_PACKAGE_TIMEOUT);
+ hwrm_req_timeout(bp, modify, bp->hwrm_cmd_max_timeout);
+ hwrm_req_timeout(bp, install, bp->hwrm_cmd_max_timeout);
hwrm_req_hold(bp, modify);
modify->host_src_addr = cpu_to_le64(dma_handle);
@@ -3609,337 +3606,6 @@ static int bnxt_reset(struct net_device *dev, u32 *flags)
return 0;
}
-static int bnxt_hwrm_dbg_dma_data(struct bnxt *bp, void *msg,
- struct bnxt_hwrm_dbg_dma_info *info)
-{
- struct hwrm_dbg_cmn_input *cmn_req = msg;
- __le16 *seq_ptr = msg + info->seq_off;
- struct hwrm_dbg_cmn_output *cmn_resp;
- u16 seq = 0, len, segs_off;
- dma_addr_t dma_handle;
- void *dma_buf, *resp;
- int rc, off = 0;
-
- dma_buf = hwrm_req_dma_slice(bp, msg, info->dma_len, &dma_handle);
- if (!dma_buf) {
- hwrm_req_drop(bp, msg);
- return -ENOMEM;
- }
-
- hwrm_req_timeout(bp, msg, HWRM_COREDUMP_TIMEOUT);
- cmn_resp = hwrm_req_hold(bp, msg);
- resp = cmn_resp;
-
- segs_off = offsetof(struct hwrm_dbg_coredump_list_output,
- total_segments);
- cmn_req->host_dest_addr = cpu_to_le64(dma_handle);
- cmn_req->host_buf_len = cpu_to_le32(info->dma_len);
- while (1) {
- *seq_ptr = cpu_to_le16(seq);
- rc = hwrm_req_send(bp, msg);
- if (rc)
- break;
-
- len = le16_to_cpu(*((__le16 *)(resp + info->data_len_off)));
- if (!seq &&
- cmn_req->req_type == cpu_to_le16(HWRM_DBG_COREDUMP_LIST)) {
- info->segs = le16_to_cpu(*((__le16 *)(resp +
- segs_off)));
- if (!info->segs) {
- rc = -EIO;
- break;
- }
-
- info->dest_buf_size = info->segs *
- sizeof(struct coredump_segment_record);
- info->dest_buf = kmalloc(info->dest_buf_size,
- GFP_KERNEL);
- if (!info->dest_buf) {
- rc = -ENOMEM;
- break;
- }
- }
-
- if (info->dest_buf) {
- if ((info->seg_start + off + len) <=
- BNXT_COREDUMP_BUF_LEN(info->buf_len)) {
- memcpy(info->dest_buf + off, dma_buf, len);
- } else {
- rc = -ENOBUFS;
- break;
- }
- }
-
- if (cmn_req->req_type ==
- cpu_to_le16(HWRM_DBG_COREDUMP_RETRIEVE))
- info->dest_buf_size += len;
-
- if (!(cmn_resp->flags & HWRM_DBG_CMN_FLAGS_MORE))
- break;
-
- seq++;
- off += len;
- }
- hwrm_req_drop(bp, msg);
- return rc;
-}
-
-static int bnxt_hwrm_dbg_coredump_list(struct bnxt *bp,
- struct bnxt_coredump *coredump)
-{
- struct bnxt_hwrm_dbg_dma_info info = {NULL};
- struct hwrm_dbg_coredump_list_input *req;
- int rc;
-
- rc = hwrm_req_init(bp, req, HWRM_DBG_COREDUMP_LIST);
- if (rc)
- return rc;
-
- info.dma_len = COREDUMP_LIST_BUF_LEN;
- info.seq_off = offsetof(struct hwrm_dbg_coredump_list_input, seq_no);
- info.data_len_off = offsetof(struct hwrm_dbg_coredump_list_output,
- data_len);
-
- rc = bnxt_hwrm_dbg_dma_data(bp, req, &info);
- if (!rc) {
- coredump->data = info.dest_buf;
- coredump->data_size = info.dest_buf_size;
- coredump->total_segs = info.segs;
- }
- return rc;
-}
-
-static int bnxt_hwrm_dbg_coredump_initiate(struct bnxt *bp, u16 component_id,
- u16 segment_id)
-{
- struct hwrm_dbg_coredump_initiate_input *req;
- int rc;
-
- rc = hwrm_req_init(bp, req, HWRM_DBG_COREDUMP_INITIATE);
- if (rc)
- return rc;
-
- hwrm_req_timeout(bp, req, HWRM_COREDUMP_TIMEOUT);
- req->component_id = cpu_to_le16(component_id);
- req->segment_id = cpu_to_le16(segment_id);
-
- return hwrm_req_send(bp, req);
-}
-
-static int bnxt_hwrm_dbg_coredump_retrieve(struct bnxt *bp, u16 component_id,
- u16 segment_id, u32 *seg_len,
- void *buf, u32 buf_len, u32 offset)
-{
- struct hwrm_dbg_coredump_retrieve_input *req;
- struct bnxt_hwrm_dbg_dma_info info = {NULL};
- int rc;
-
- rc = hwrm_req_init(bp, req, HWRM_DBG_COREDUMP_RETRIEVE);
- if (rc)
- return rc;
-
- req->component_id = cpu_to_le16(component_id);
- req->segment_id = cpu_to_le16(segment_id);
-
- info.dma_len = COREDUMP_RETRIEVE_BUF_LEN;
- info.seq_off = offsetof(struct hwrm_dbg_coredump_retrieve_input,
- seq_no);
- info.data_len_off = offsetof(struct hwrm_dbg_coredump_retrieve_output,
- data_len);
- if (buf) {
- info.dest_buf = buf + offset;
- info.buf_len = buf_len;
- info.seg_start = offset;
- }
-
- rc = bnxt_hwrm_dbg_dma_data(bp, req, &info);
- if (!rc)
- *seg_len = info.dest_buf_size;
-
- return rc;
-}
-
-static void
-bnxt_fill_coredump_seg_hdr(struct bnxt *bp,
- struct bnxt_coredump_segment_hdr *seg_hdr,
- struct coredump_segment_record *seg_rec, u32 seg_len,
- int status, u32 duration, u32 instance)
-{
- memset(seg_hdr, 0, sizeof(*seg_hdr));
- memcpy(seg_hdr->signature, "sEgM", 4);
- if (seg_rec) {
- seg_hdr->component_id = (__force __le32)seg_rec->component_id;
- seg_hdr->segment_id = (__force __le32)seg_rec->segment_id;
- seg_hdr->low_version = seg_rec->version_low;
- seg_hdr->high_version = seg_rec->version_hi;
- } else {
- /* For hwrm_ver_get response Component id = 2
- * and Segment id = 0
- */
- seg_hdr->component_id = cpu_to_le32(2);
- seg_hdr->segment_id = 0;
- }
- seg_hdr->function_id = cpu_to_le16(bp->pdev->devfn);
- seg_hdr->length = cpu_to_le32(seg_len);
- seg_hdr->status = cpu_to_le32(status);
- seg_hdr->duration = cpu_to_le32(duration);
- seg_hdr->data_offset = cpu_to_le32(sizeof(*seg_hdr));
- seg_hdr->instance = cpu_to_le32(instance);
-}
-
-static void
-bnxt_fill_coredump_record(struct bnxt *bp, struct bnxt_coredump_record *record,
- time64_t start, s16 start_utc, u16 total_segs,
- int status)
-{
- time64_t end = ktime_get_real_seconds();
- u32 os_ver_major = 0, os_ver_minor = 0;
- struct tm tm;
-
- time64_to_tm(start, 0, &tm);
- memset(record, 0, sizeof(*record));
- memcpy(record->signature, "cOrE", 4);
- record->flags = 0;
- record->low_version = 0;
- record->high_version = 1;
- record->asic_state = 0;
- strlcpy(record->system_name, utsname()->nodename,
- sizeof(record->system_name));
- record->year = cpu_to_le16(tm.tm_year + 1900);
- record->month = cpu_to_le16(tm.tm_mon + 1);
- record->day = cpu_to_le16(tm.tm_mday);
- record->hour = cpu_to_le16(tm.tm_hour);
- record->minute = cpu_to_le16(tm.tm_min);
- record->second = cpu_to_le16(tm.tm_sec);
- record->utc_bias = cpu_to_le16(start_utc);
- strcpy(record->commandline, "ethtool -w");
- record->total_segments = cpu_to_le32(total_segs);
-
- sscanf(utsname()->release, "%u.%u", &os_ver_major, &os_ver_minor);
- record->os_ver_major = cpu_to_le32(os_ver_major);
- record->os_ver_minor = cpu_to_le32(os_ver_minor);
-
- strlcpy(record->os_name, utsname()->sysname, 32);
- time64_to_tm(end, 0, &tm);
- record->end_year = cpu_to_le16(tm.tm_year + 1900);
- record->end_month = cpu_to_le16(tm.tm_mon + 1);
- record->end_day = cpu_to_le16(tm.tm_mday);
- record->end_hour = cpu_to_le16(tm.tm_hour);
- record->end_minute = cpu_to_le16(tm.tm_min);
- record->end_second = cpu_to_le16(tm.tm_sec);
- record->end_utc_bias = cpu_to_le16(sys_tz.tz_minuteswest * 60);
- record->asic_id1 = cpu_to_le32(bp->chip_num << 16 |
- bp->ver_resp.chip_rev << 8 |
- bp->ver_resp.chip_metal);
- record->asic_id2 = 0;
- record->coredump_status = cpu_to_le32(status);
- record->ioctl_low_version = 0;
- record->ioctl_high_version = 0;
-}
-
-static int bnxt_get_coredump(struct bnxt *bp, void *buf, u32 *dump_len)
-{
- u32 ver_get_resp_len = sizeof(struct hwrm_ver_get_output);
- u32 offset = 0, seg_hdr_len, seg_record_len, buf_len = 0;
- struct coredump_segment_record *seg_record = NULL;
- struct bnxt_coredump_segment_hdr seg_hdr;
- struct bnxt_coredump coredump = {NULL};
- time64_t start_time;
- u16 start_utc;
- int rc = 0, i;
-
- if (buf)
- buf_len = *dump_len;
-
- start_time = ktime_get_real_seconds();
- start_utc = sys_tz.tz_minuteswest * 60;
- seg_hdr_len = sizeof(seg_hdr);
-
- /* First segment should be hwrm_ver_get response */
- *dump_len = seg_hdr_len + ver_get_resp_len;
- if (buf) {
- bnxt_fill_coredump_seg_hdr(bp, &seg_hdr, NULL, ver_get_resp_len,
- 0, 0, 0);
- memcpy(buf + offset, &seg_hdr, seg_hdr_len);
- offset += seg_hdr_len;
- memcpy(buf + offset, &bp->ver_resp, ver_get_resp_len);
- offset += ver_get_resp_len;
- }
-
- rc = bnxt_hwrm_dbg_coredump_list(bp, &coredump);
- if (rc) {
- netdev_err(bp->dev, "Failed to get coredump segment list\n");
- goto err;
- }
-
- *dump_len += seg_hdr_len * coredump.total_segs;
-
- seg_record = (struct coredump_segment_record *)coredump.data;
- seg_record_len = sizeof(*seg_record);
-
- for (i = 0; i < coredump.total_segs; i++) {
- u16 comp_id = le16_to_cpu(seg_record->component_id);
- u16 seg_id = le16_to_cpu(seg_record->segment_id);
- u32 duration = 0, seg_len = 0;
- unsigned long start, end;
-
- if (buf && ((offset + seg_hdr_len) >
- BNXT_COREDUMP_BUF_LEN(buf_len))) {
- rc = -ENOBUFS;
- goto err;
- }
-
- start = jiffies;
-
- rc = bnxt_hwrm_dbg_coredump_initiate(bp, comp_id, seg_id);
- if (rc) {
- netdev_err(bp->dev,
- "Failed to initiate coredump for seg = %d\n",
- seg_record->segment_id);
- goto next_seg;
- }
-
- /* Write segment data into the buffer */
- rc = bnxt_hwrm_dbg_coredump_retrieve(bp, comp_id, seg_id,
- &seg_len, buf, buf_len,
- offset + seg_hdr_len);
- if (rc && rc == -ENOBUFS)
- goto err;
- else if (rc)
- netdev_err(bp->dev,
- "Failed to retrieve coredump for seg = %d\n",
- seg_record->segment_id);
-
-next_seg:
- end = jiffies;
- duration = jiffies_to_msecs(end - start);
- bnxt_fill_coredump_seg_hdr(bp, &seg_hdr, seg_record, seg_len,
- rc, duration, 0);
-
- if (buf) {
- /* Write segment header into the buffer */
- memcpy(buf + offset, &seg_hdr, seg_hdr_len);
- offset += seg_hdr_len + seg_len;
- }
-
- *dump_len += seg_len;
- seg_record =
- (struct coredump_segment_record *)((u8 *)seg_record +
- seg_record_len);
- }
-
-err:
- if (buf)
- bnxt_fill_coredump_record(bp, buf + offset, start_time,
- start_utc, coredump.total_segs + 1,
- rc);
- kfree(coredump.data);
- *dump_len += sizeof(struct bnxt_coredump_record);
- if (rc == -ENOBUFS)
- netdev_err(bp->dev, "Firmware returned large coredump buffer\n");
- return rc;
-}
-
static int bnxt_set_dump(struct net_device *dev, struct ethtool_dump *dump)
{
struct bnxt *bp = netdev_priv(dev);
@@ -3971,10 +3637,7 @@ static int bnxt_get_dump_flag(struct net_device *dev, struct ethtool_dump *dump)
bp->ver_resp.hwrm_fw_rsvd_8b;
dump->flag = bp->dump_flag;
- if (bp->dump_flag == BNXT_DUMP_CRASH)
- dump->len = BNXT_CRASH_DUMP_LEN;
- else
- bnxt_get_coredump(bp, NULL, &dump->len);
+ dump->len = bnxt_get_coredump_length(bp, bp->dump_flag);
return 0;
}
@@ -3989,15 +3652,7 @@ static int bnxt_get_dump_data(struct net_device *dev, struct ethtool_dump *dump,
memset(buf, 0, dump->len);
dump->flag = bp->dump_flag;
- if (dump->flag == BNXT_DUMP_CRASH) {
-#ifdef CONFIG_TEE_BNXT_FW
- return tee_bnxt_copy_coredump(buf, 0, dump->len);
-#endif
- } else {
- return bnxt_get_coredump(bp, buf, &dump->len);
- }
-
- return 0;
+ return bnxt_get_coredump(bp, dump->flag, buf, &dump->len);
}
static int bnxt_get_ts_info(struct net_device *dev,
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h
index 0a57cb6a4a4b..11a719f98def 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h
@@ -22,49 +22,6 @@ struct bnxt_led_cfg {
u8 rsvd;
};
-#define COREDUMP_LIST_BUF_LEN 2048
-#define COREDUMP_RETRIEVE_BUF_LEN 4096
-
-struct bnxt_coredump {
- void *data;
- int data_size;
- u16 total_segs;
-};
-
-#define BNXT_COREDUMP_BUF_LEN(len) ((len) - sizeof(struct bnxt_coredump_record))
-
-struct bnxt_hwrm_dbg_dma_info {
- void *dest_buf;
- int dest_buf_size;
- u16 dma_len;
- u16 seq_off;
- u16 data_len_off;
- u16 segs;
- u32 seg_start;
- u32 buf_len;
-};
-
-struct hwrm_dbg_cmn_input {
- __le16 req_type;
- __le16 cmpl_ring;
- __le16 seq_id;
- __le16 target_id;
- __le64 resp_addr;
- __le64 host_dest_addr;
- __le32 host_buf_len;
-};
-
-struct hwrm_dbg_cmn_output {
- __le16 error_code;
- __le16 req_type;
- __le16 seq_id;
- __le16 resp_len;
- u8 flags;
- #define HWRM_DBG_CMN_FLAGS_MORE 1
-};
-
-#define BNXT_CRASH_DUMP_LEN (8 << 20)
-
#define BNXT_LED_DFLT_ENA \
(PORT_LED_CFG_REQ_ENABLES_LED0_ID | \
PORT_LED_CFG_REQ_ENABLES_LED0_STATE | \
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c
index bb7327b82d0b..8171f4912fa0 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c
@@ -496,7 +496,7 @@ static int __hwrm_send(struct bnxt *bp, struct bnxt_hwrm_ctx *ctx)
}
/* Limit timeout to an upper limit */
- timeout = min_t(uint, ctx->timeout, HWRM_CMD_MAX_TIMEOUT);
+ timeout = min(ctx->timeout, bp->hwrm_cmd_max_timeout ?: HWRM_CMD_MAX_TIMEOUT);
/* convert timeout to usec */
timeout *= 1000;
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h b/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h
index 4d17f0d5363b..9a9fc4e8041b 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h
@@ -58,11 +58,10 @@ void hwrm_update_token(struct bnxt *bp, u16 seq, enum bnxt_hwrm_wait_state s);
#define BNXT_HWRM_MAX_REQ_LEN (bp->hwrm_max_req_len)
#define BNXT_HWRM_SHORT_REQ_LEN sizeof(struct hwrm_short_input)
-#define HWRM_CMD_MAX_TIMEOUT 40000
+#define HWRM_CMD_MAX_TIMEOUT 40000U
#define SHORT_HWRM_CMD_TIMEOUT 20
#define HWRM_CMD_TIMEOUT (bp->hwrm_cmd_timeout)
#define HWRM_RESET_TIMEOUT ((HWRM_CMD_TIMEOUT) * 4)
-#define HWRM_COREDUMP_TIMEOUT ((HWRM_CMD_TIMEOUT) * 12)
#define BNXT_HWRM_TARGET 0xffff
#define BNXT_HWRM_NO_CMPL_RING -1
#define BNXT_HWRM_REQ_MAX_SIZE 128
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 23c7595d2a1d..9a67e24f46b2 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -3966,10 +3966,12 @@ static int bcmgenet_probe(struct platform_device *pdev)
/* Request the WOL interrupt and advertise suspend if available */
priv->wol_irq_disabled = true;
- err = devm_request_irq(&pdev->dev, priv->wol_irq, bcmgenet_wol_isr, 0,
- dev->name, priv);
- if (!err)
- device_set_wakeup_capable(&pdev->dev, 1);
+ if (priv->wol_irq > 0) {
+ err = devm_request_irq(&pdev->dev, priv->wol_irq,
+ bcmgenet_wol_isr, 0, dev->name, priv);
+ if (!err)
+ device_set_wakeup_capable(&pdev->dev, 1);
+ }
/* Set the needed headroom to account for any possible
* features enabling/disabling at runtime
diff --git a/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c b/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c
index d04a6c163445..da8d10475a08 100644
--- a/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c
+++ b/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c
@@ -32,6 +32,7 @@
#include <linux/tcp.h>
#include <linux/ipv6.h>
+#include <net/inet_ecn.h>
#include <net/route.h>
#include <net/ip6_route.h>
@@ -99,7 +100,7 @@ cxgb_find_route(struct cxgb4_lld_info *lldi,
rt = ip_route_output_ports(&init_net, &fl4, NULL, peer_ip, local_ip,
peer_port, local_port, IPPROTO_TCP,
- tos, 0);
+ tos & ~INET_ECN_MASK, 0);
if (IS_ERR(rt))
return NULL;
n = dst_neigh_lookup(&rt->dst, &peer_ip);
diff --git a/drivers/net/ethernet/cortina/gemini.c b/drivers/net/ethernet/cortina/gemini.c
index 6e745ca4c433..012ca11a38cc 100644
--- a/drivers/net/ethernet/cortina/gemini.c
+++ b/drivers/net/ethernet/cortina/gemini.c
@@ -305,21 +305,21 @@ static void gmac_speed_set(struct net_device *netdev)
switch (phydev->speed) {
case 1000:
status.bits.speed = GMAC_SPEED_1000;
- if (phydev->interface == PHY_INTERFACE_MODE_RGMII)
+ if (phy_interface_mode_is_rgmii(phydev->interface))
status.bits.mii_rmii = GMAC_PHY_RGMII_1000;
netdev_dbg(netdev, "connect %s to RGMII @ 1Gbit\n",
phydev_name(phydev));
break;
case 100:
status.bits.speed = GMAC_SPEED_100;
- if (phydev->interface == PHY_INTERFACE_MODE_RGMII)
+ if (phy_interface_mode_is_rgmii(phydev->interface))
status.bits.mii_rmii = GMAC_PHY_RGMII_100_10;
netdev_dbg(netdev, "connect %s to RGMII @ 100 Mbit\n",
phydev_name(phydev));
break;
case 10:
status.bits.speed = GMAC_SPEED_10;
- if (phydev->interface == PHY_INTERFACE_MODE_RGMII)
+ if (phy_interface_mode_is_rgmii(phydev->interface))
status.bits.mii_rmii = GMAC_PHY_RGMII_100_10;
netdev_dbg(netdev, "connect %s to RGMII @ 10 Mbit\n",
phydev_name(phydev));
@@ -389,6 +389,9 @@ static int gmac_setup_phy(struct net_device *netdev)
status.bits.mii_rmii = GMAC_PHY_GMII;
break;
case PHY_INTERFACE_MODE_RGMII:
+ case PHY_INTERFACE_MODE_RGMII_ID:
+ case PHY_INTERFACE_MODE_RGMII_TXID:
+ case PHY_INTERFACE_MODE_RGMII_RXID:
netdev_dbg(netdev,
"RGMII: set GMAC0 and GMAC1 to MII/RGMII mode\n");
status.bits.mii_rmii = GMAC_PHY_RGMII_100_10;
diff --git a/drivers/net/ethernet/freescale/fman/mac.c b/drivers/net/ethernet/freescale/fman/mac.c
index d9fc5c456bf3..39ae965cd4f6 100644
--- a/drivers/net/ethernet/freescale/fman/mac.c
+++ b/drivers/net/ethernet/freescale/fman/mac.c
@@ -94,14 +94,17 @@ static void mac_exception(void *handle, enum fman_mac_exceptions ex)
__func__, ex);
}
-static void set_fman_mac_params(struct mac_device *mac_dev,
- struct fman_mac_params *params)
+static int set_fman_mac_params(struct mac_device *mac_dev,
+ struct fman_mac_params *params)
{
struct mac_priv_s *priv = mac_dev->priv;
params->base_addr = (typeof(params->base_addr))
devm_ioremap(priv->dev, mac_dev->res->start,
resource_size(mac_dev->res));
+ if (!params->base_addr)
+ return -ENOMEM;
+
memcpy(¶ms->addr, mac_dev->addr, sizeof(mac_dev->addr));
params->max_speed = priv->max_speed;
params->phy_if = mac_dev->phy_if;
@@ -112,6 +115,8 @@ static void set_fman_mac_params(struct mac_device *mac_dev,
params->event_cb = mac_exception;
params->dev_id = mac_dev;
params->internal_phy_node = priv->internal_phy_node;
+
+ return 0;
}
static int tgec_initialization(struct mac_device *mac_dev)
@@ -123,7 +128,9 @@ static int tgec_initialization(struct mac_device *mac_dev)
priv = mac_dev->priv;
- set_fman_mac_params(mac_dev, ¶ms);
+ err = set_fman_mac_params(mac_dev, ¶ms);
+ if (err)
+ goto _return;
mac_dev->fman_mac = tgec_config(¶ms);
if (!mac_dev->fman_mac) {
@@ -169,7 +176,9 @@ static int dtsec_initialization(struct mac_device *mac_dev)
priv = mac_dev->priv;
- set_fman_mac_params(mac_dev, ¶ms);
+ err = set_fman_mac_params(mac_dev, ¶ms);
+ if (err)
+ goto _return;
mac_dev->fman_mac = dtsec_config(¶ms);
if (!mac_dev->fman_mac) {
@@ -218,7 +227,9 @@ static int memac_initialization(struct mac_device *mac_dev)
priv = mac_dev->priv;
- set_fman_mac_params(mac_dev, ¶ms);
+ err = set_fman_mac_params(mac_dev, ¶ms);
+ if (err)
+ goto _return;
if (priv->max_speed == SPEED_10000)
params.phy_if = PHY_INTERFACE_MODE_XGMII;
diff --git a/drivers/net/ethernet/freescale/xgmac_mdio.c b/drivers/net/ethernet/freescale/xgmac_mdio.c
index 0b68852379da..27d07468765f 100644
--- a/drivers/net/ethernet/freescale/xgmac_mdio.c
+++ b/drivers/net/ethernet/freescale/xgmac_mdio.c
@@ -52,6 +52,7 @@ struct tgec_mdio_controller {
struct mdio_fsl_priv {
struct tgec_mdio_controller __iomem *mdio_base;
bool is_little_endian;
+ bool has_a009885;
bool has_a011043;
};
@@ -187,10 +188,10 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
{
struct mdio_fsl_priv *priv = (struct mdio_fsl_priv *)bus->priv;
struct tgec_mdio_controller __iomem *regs = priv->mdio_base;
+ unsigned long flags;
uint16_t dev_addr;
uint32_t mdio_stat;
uint32_t mdio_ctl;
- uint16_t value;
int ret;
bool endian = priv->is_little_endian;
@@ -222,12 +223,18 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
return ret;
}
+ if (priv->has_a009885)
+ /* Once the operation completes, i.e. MDIO_STAT_BSY clears, we
+ * must read back the data register within 16 MDC cycles.
+ */
+ local_irq_save(flags);
+
/* Initiate the read */
xgmac_write32(mdio_ctl | MDIO_CTL_READ, ®s->mdio_ctl, endian);
ret = xgmac_wait_until_done(&bus->dev, regs, endian);
if (ret)
- return ret;
+ goto irq_restore;
/* Return all Fs if nothing was there */
if ((xgmac_read32(®s->mdio_stat, endian) & MDIO_STAT_RD_ER) &&
@@ -235,13 +242,17 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
dev_dbg(&bus->dev,
"Error while reading PHY%d reg at %d.%hhu\n",
phy_id, dev_addr, regnum);
- return 0xffff;
+ ret = 0xffff;
+ } else {
+ ret = xgmac_read32(®s->mdio_data, endian) & 0xffff;
+ dev_dbg(&bus->dev, "read %04x\n", ret);
}
- value = xgmac_read32(®s->mdio_data, endian) & 0xffff;
- dev_dbg(&bus->dev, "read %04x\n", value);
+irq_restore:
+ if (priv->has_a009885)
+ local_irq_restore(flags);
- return value;
+ return ret;
}
static int xgmac_mdio_probe(struct platform_device *pdev)
@@ -288,6 +299,8 @@ static int xgmac_mdio_probe(struct platform_device *pdev)
priv->is_little_endian = device_property_read_bool(&pdev->dev,
"little-endian");
+ priv->has_a009885 = device_property_read_bool(&pdev->dev,
+ "fsl,erratum-a009885");
priv->has_a011043 = device_property_read_bool(&pdev->dev,
"fsl,erratum-a011043");
@@ -319,9 +332,10 @@ static int xgmac_mdio_probe(struct platform_device *pdev)
static int xgmac_mdio_remove(struct platform_device *pdev)
{
struct mii_bus *bus = platform_get_drvdata(pdev);
+ struct mdio_fsl_priv *priv = bus->priv;
mdiobus_unregister(bus);
- iounmap(bus->priv);
+ iounmap(priv->mdio_base);
mdiobus_free(bus);
return 0;
diff --git a/drivers/net/ethernet/i825xx/sni_82596.c b/drivers/net/ethernet/i825xx/sni_82596.c
index 27937c5d7956..daec9ce04531 100644
--- a/drivers/net/ethernet/i825xx/sni_82596.c
+++ b/drivers/net/ethernet/i825xx/sni_82596.c
@@ -117,9 +117,10 @@ static int sni_82596_probe(struct platform_device *dev)
netdevice->dev_addr[5] = readb(eth_addr + 0x06);
iounmap(eth_addr);
- if (!netdevice->irq) {
+ if (netdevice->irq < 0) {
printk(KERN_ERR "%s: IRQ not found for i82596 at 0x%lx\n",
__FILE__, netdevice->base_addr);
+ retval = netdevice->irq;
goto probe_failed;
}
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 0a96627391a8..c7fa978cdf02 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -2447,8 +2447,10 @@ static struct sk_buff *igc_construct_skb_zc(struct igc_ring *ring,
skb_reserve(skb, xdp->data_meta - xdp->data_hard_start);
memcpy(__skb_put(skb, totalsize), xdp->data_meta, totalsize);
- if (metasize)
+ if (metasize) {
skb_metadata_set(skb, metasize);
+ __skb_pull(skb, metasize);
+ }
return skb;
}
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/ptp.c b/drivers/net/ethernet/marvell/octeontx2/af/ptp.c
index 9b8e59f4c206..77cb52b80c60 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/ptp.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/ptp.c
@@ -85,6 +85,8 @@ struct ptp *ptp_get(void)
/* Check driver is bound to PTP block */
if (!ptp)
ptp = ERR_PTR(-EPROBE_DEFER);
+ else
+ pci_dev_get(ptp->pdev);
return ptp;
}
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 398c23cec815..ee1fd472e925 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -91,46 +91,53 @@ static int mtk_mdio_busy_wait(struct mtk_eth *eth)
}
dev_err(eth->dev, "mdio: MDIO timeout\n");
- return -1;
+ return -ETIMEDOUT;
}
-static u32 _mtk_mdio_write(struct mtk_eth *eth, u32 phy_addr,
- u32 phy_register, u32 write_data)
+static int _mtk_mdio_write(struct mtk_eth *eth, u32 phy_addr, u32 phy_reg,
+ u32 write_data)
{
- if (mtk_mdio_busy_wait(eth))
- return -1;
+ int ret;
- write_data &= 0xffff;
+ ret = mtk_mdio_busy_wait(eth);
+ if (ret < 0)
+ return ret;
- mtk_w32(eth, PHY_IAC_ACCESS | PHY_IAC_START | PHY_IAC_WRITE |
- (phy_register << PHY_IAC_REG_SHIFT) |
- (phy_addr << PHY_IAC_ADDR_SHIFT) | write_data,
+ mtk_w32(eth, PHY_IAC_ACCESS |
+ PHY_IAC_START_C22 |
+ PHY_IAC_CMD_WRITE |
+ PHY_IAC_REG(phy_reg) |
+ PHY_IAC_ADDR(phy_addr) |
+ PHY_IAC_DATA(write_data),
MTK_PHY_IAC);
- if (mtk_mdio_busy_wait(eth))
- return -1;
+ ret = mtk_mdio_busy_wait(eth);
+ if (ret < 0)
+ return ret;
return 0;
}
-static u32 _mtk_mdio_read(struct mtk_eth *eth, int phy_addr, int phy_reg)
+static int _mtk_mdio_read(struct mtk_eth *eth, u32 phy_addr, u32 phy_reg)
{
- u32 d;
+ int ret;
- if (mtk_mdio_busy_wait(eth))
- return 0xffff;
+ ret = mtk_mdio_busy_wait(eth);
+ if (ret < 0)
+ return ret;
- mtk_w32(eth, PHY_IAC_ACCESS | PHY_IAC_START | PHY_IAC_READ |
- (phy_reg << PHY_IAC_REG_SHIFT) |
- (phy_addr << PHY_IAC_ADDR_SHIFT),
+ mtk_w32(eth, PHY_IAC_ACCESS |
+ PHY_IAC_START_C22 |
+ PHY_IAC_CMD_C22_READ |
+ PHY_IAC_REG(phy_reg) |
+ PHY_IAC_ADDR(phy_addr),
MTK_PHY_IAC);
- if (mtk_mdio_busy_wait(eth))
- return 0xffff;
-
- d = mtk_r32(eth, MTK_PHY_IAC) & 0xffff;
+ ret = mtk_mdio_busy_wait(eth);
+ if (ret < 0)
+ return ret;
- return d;
+ return mtk_r32(eth, MTK_PHY_IAC) & PHY_IAC_DATA_MASK;
}
static int mtk_mdio_write(struct mii_bus *bus, int phy_addr,
@@ -217,7 +224,7 @@ static void mtk_mac_config(struct phylink_config *config, unsigned int mode,
phylink_config);
struct mtk_eth *eth = mac->hw;
u32 mcr_cur, mcr_new, sid, i;
- int val, ge_mode, err;
+ int val, ge_mode, err = 0;
/* MT76x8 has no hardware settings between for the MAC */
if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628) &&
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
index 5ef70dd8b49c..f2d90639d7ed 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -341,11 +341,17 @@
/* PHY Indirect Access Control registers */
#define MTK_PHY_IAC 0x10004
#define PHY_IAC_ACCESS BIT(31)
-#define PHY_IAC_READ BIT(19)
-#define PHY_IAC_WRITE BIT(18)
-#define PHY_IAC_START BIT(16)
-#define PHY_IAC_ADDR_SHIFT 20
-#define PHY_IAC_REG_SHIFT 25
+#define PHY_IAC_REG_MASK GENMASK(29, 25)
+#define PHY_IAC_REG(x) FIELD_PREP(PHY_IAC_REG_MASK, (x))
+#define PHY_IAC_ADDR_MASK GENMASK(24, 20)
+#define PHY_IAC_ADDR(x) FIELD_PREP(PHY_IAC_ADDR_MASK, (x))
+#define PHY_IAC_CMD_MASK GENMASK(19, 18)
+#define PHY_IAC_CMD_WRITE FIELD_PREP(PHY_IAC_CMD_MASK, 1)
+#define PHY_IAC_CMD_C22_READ FIELD_PREP(PHY_IAC_CMD_MASK, 2)
+#define PHY_IAC_START_MASK GENMASK(17, 16)
+#define PHY_IAC_START_C22 FIELD_PREP(PHY_IAC_START_MASK, 1)
+#define PHY_IAC_DATA_MASK GENMASK(15, 0)
+#define PHY_IAC_DATA(x) FIELD_PREP(PHY_IAC_DATA_MASK, (x))
#define PHY_IAC_TIMEOUT HZ
#define MTK_MAC_MISC 0x1000c
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
index bea35530c2d0..00f63fbfe9b4 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
@@ -147,8 +147,12 @@ static void cmd_ent_put(struct mlx5_cmd_work_ent *ent)
if (!refcount_dec_and_test(&ent->refcnt))
return;
- if (ent->idx >= 0)
- cmd_free_index(ent->cmd, ent->idx);
+ if (ent->idx >= 0) {
+ struct mlx5_cmd *cmd = ent->cmd;
+
+ cmd_free_index(cmd, ent->idx);
+ up(ent->page_queue ? &cmd->pages_sem : &cmd->sem);
+ }
cmd_free_ent(ent);
}
@@ -895,25 +899,6 @@ static bool opcode_allowed(struct mlx5_cmd *cmd, u16 opcode)
return cmd->allowed_opcode == opcode;
}
-static int cmd_alloc_index_retry(struct mlx5_cmd *cmd)
-{
- unsigned long alloc_end = jiffies + msecs_to_jiffies(1000);
- int idx;
-
-retry:
- idx = cmd_alloc_index(cmd);
- if (idx < 0 && time_before(jiffies, alloc_end)) {
- /* Index allocation can fail on heavy load of commands. This is a temporary
- * situation as the current command already holds the semaphore, meaning that
- * another command completion is being handled and it is expected to release
- * the entry index soon.
- */
- cpu_relax();
- goto retry;
- }
- return idx;
-}
-
bool mlx5_cmd_is_down(struct mlx5_core_dev *dev)
{
return pci_channel_offline(dev->pdev) ||
@@ -938,7 +923,7 @@ static void cmd_work_handler(struct work_struct *work)
sem = ent->page_queue ? &cmd->pages_sem : &cmd->sem;
down(sem);
if (!ent->page_queue) {
- alloc_ret = cmd_alloc_index_retry(cmd);
+ alloc_ret = cmd_alloc_index(cmd);
if (alloc_ret < 0) {
mlx5_core_err_rl(dev, "failed to allocate command entry\n");
if (ent->callback) {
@@ -1594,8 +1579,6 @@ static void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vec, bool force
vector = vec & 0xffffffff;
for (i = 0; i < (1 << cmd->log_sz); i++) {
if (test_bit(i, &vector)) {
- struct semaphore *sem;
-
ent = cmd->ent_arr[i];
/* if we already completed the command, ignore it */
@@ -1618,10 +1601,6 @@ static void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vec, bool force
dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR)
cmd_ent_put(ent);
- if (ent->page_queue)
- sem = &cmd->pages_sem;
- else
- sem = &cmd->sem;
ent->ts2 = ktime_get_ns();
memcpy(ent->out->first.data, ent->lay->out, sizeof(ent->lay->out));
dump_command(dev, ent, 0);
@@ -1675,7 +1654,6 @@ static void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vec, bool force
*/
complete(&ent->done);
}
- up(sem);
}
}
}
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c
index 4a13ef561587..cf03297c8471 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c
@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
/* Copyright (c) 2018 Mellanox Technologies. */
+#include <net/inet_ecn.h>
#include <net/vxlan.h>
#include <net/gre.h>
#include <net/geneve.h>
@@ -229,7 +230,7 @@ int mlx5e_tc_tun_create_header_ipv4(struct mlx5e_priv *priv,
int err;
/* add the IP fields */
- attr.fl.fl4.flowi4_tos = tun_key->tos;
+ attr.fl.fl4.flowi4_tos = tun_key->tos & ~INET_ECN_MASK;
attr.fl.fl4.daddr = tun_key->u.ipv4.dst;
attr.fl.fl4.saddr = tun_key->u.ipv4.src;
attr.ttl = tun_key->ttl;
@@ -344,7 +345,7 @@ int mlx5e_tc_tun_update_header_ipv4(struct mlx5e_priv *priv,
int err;
/* add the IP fields */
- attr.fl.fl4.flowi4_tos = tun_key->tos;
+ attr.fl.fl4.flowi4_tos = tun_key->tos & ~INET_ECN_MASK;
attr.fl.fl4.daddr = tun_key->u.ipv4.dst;
attr.fl.fl4.saddr = tun_key->u.ipv4.src;
attr.ttl = tun_key->ttl;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
index ec0163d75dd2..700c463ea367 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
@@ -1544,6 +1544,8 @@ mlx5e_init_fib_work_ipv4(struct mlx5e_priv *priv,
struct net_device *fib_dev;
fen_info = container_of(info, struct fib_entry_notifier_info, info);
+ if (fen_info->fi->nh)
+ return NULL;
fib_dev = fib_info_nh(fen_info->fi, 0)->fib_nh_dev;
if (!fib_dev || fib_dev->netdev_ops != &mlx5e_netdev_ops ||
fen_info->dst_len != 32)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
index 7b562d2c8a19..279cd8f4e79f 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
@@ -11,13 +11,13 @@ static int mlx5e_xsk_map_pool(struct mlx5e_priv *priv,
{
struct device *dev = mlx5_core_dma_dev(priv->mdev);
- return xsk_pool_dma_map(pool, dev, 0);
+ return xsk_pool_dma_map(pool, dev, DMA_ATTR_SKIP_CPU_SYNC);
}
static void mlx5e_xsk_unmap_pool(struct mlx5e_priv *priv,
struct xsk_buff_pool *pool)
{
- return xsk_pool_dma_unmap(pool, 0);
+ return xsk_pool_dma_unmap(pool, DMA_ATTR_SKIP_CPU_SYNC);
}
static int mlx5e_xsk_get_pools(struct mlx5e_xsk *xsk)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index baa0d7d48fc0..f075bb8ccd00 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -4485,15 +4485,22 @@ static void mlx5e_build_nic_netdev(struct net_device *netdev)
}
if (mlx5_vxlan_allowed(mdev->vxlan) || mlx5_geneve_tx_allowed(mdev)) {
- netdev->hw_features |= NETIF_F_GSO_UDP_TUNNEL;
- netdev->hw_enc_features |= NETIF_F_GSO_UDP_TUNNEL;
- netdev->vlan_features |= NETIF_F_GSO_UDP_TUNNEL;
+ netdev->hw_features |= NETIF_F_GSO_UDP_TUNNEL |
+ NETIF_F_GSO_UDP_TUNNEL_CSUM;
+ netdev->hw_enc_features |= NETIF_F_GSO_UDP_TUNNEL |
+ NETIF_F_GSO_UDP_TUNNEL_CSUM;
+ netdev->gso_partial_features = NETIF_F_GSO_UDP_TUNNEL_CSUM;
+ netdev->vlan_features |= NETIF_F_GSO_UDP_TUNNEL |
+ NETIF_F_GSO_UDP_TUNNEL_CSUM;
}
if (mlx5e_tunnel_proto_supported_tx(mdev, IPPROTO_GRE)) {
- netdev->hw_features |= NETIF_F_GSO_GRE;
- netdev->hw_enc_features |= NETIF_F_GSO_GRE;
- netdev->gso_partial_features |= NETIF_F_GSO_GRE;
+ netdev->hw_features |= NETIF_F_GSO_GRE |
+ NETIF_F_GSO_GRE_CSUM;
+ netdev->hw_enc_features |= NETIF_F_GSO_GRE |
+ NETIF_F_GSO_GRE_CSUM;
+ netdev->gso_partial_features |= NETIF_F_GSO_GRE |
+ NETIF_F_GSO_GRE_CSUM;
}
if (mlx5e_tunnel_proto_supported_tx(mdev, IPPROTO_IPIP)) {
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
index edecd149dcab..161b60e1139b 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
@@ -50,6 +50,7 @@
#include "fs_core.h"
#include "lib/mlx5.h"
#include "lib/devcom.h"
+#include "lib/vxlan.h"
#define CREATE_TRACE_POINTS
#include "diag/en_rep_tracepoint.h"
#include "en_accel/ipsec.h"
@@ -1016,6 +1017,7 @@ static void mlx5e_uplink_rep_enable(struct mlx5e_priv *priv)
rtnl_lock();
if (netif_running(netdev))
mlx5e_open(netdev);
+ udp_tunnel_nic_reset_ntf(priv->netdev);
netif_device_attach(netdev);
rtnl_unlock();
}
@@ -1037,6 +1039,7 @@ static void mlx5e_uplink_rep_disable(struct mlx5e_priv *priv)
mlx5_notifier_unregister(mdev, &priv->events_nb);
mlx5e_rep_tc_disable(priv);
mlx5_lag_remove_netdev(mdev, priv->netdev);
+ mlx5_vxlan_reset_to_default(mdev->vxlan);
}
static MLX5E_DEFINE_STATS_GRP(sw_rep, 0);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
index 29a6586ef28d..0015545d5235 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
@@ -271,8 +271,8 @@ static inline int mlx5e_page_alloc_pool(struct mlx5e_rq *rq,
if (unlikely(!dma_info->page))
return -ENOMEM;
- dma_info->addr = dma_map_page(rq->pdev, dma_info->page, 0,
- PAGE_SIZE, rq->buff.map_dir);
+ dma_info->addr = dma_map_page_attrs(rq->pdev, dma_info->page, 0, PAGE_SIZE,
+ rq->buff.map_dir, DMA_ATTR_SKIP_CPU_SYNC);
if (unlikely(dma_mapping_error(rq->pdev, dma_info->addr))) {
page_pool_recycle_direct(rq->page_pool, dma_info->page);
dma_info->page = NULL;
@@ -293,7 +293,8 @@ static inline int mlx5e_page_alloc(struct mlx5e_rq *rq,
void mlx5e_page_dma_unmap(struct mlx5e_rq *rq, struct mlx5e_dma_info *dma_info)
{
- dma_unmap_page(rq->pdev, dma_info->addr, PAGE_SIZE, rq->buff.map_dir);
+ dma_unmap_page_attrs(rq->pdev, dma_info->addr, PAGE_SIZE, rq->buff.map_dir,
+ DMA_ATTR_SKIP_CPU_SYNC);
}
void mlx5e_page_release_dynamic(struct mlx5e_rq *rq,
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
index fa461bc57bae..8b041deb25e5 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
@@ -1874,6 +1874,111 @@ u8 mlx5e_tc_get_ip_version(struct mlx5_flow_spec *spec, bool outer)
return ip_version;
}
+/* Tunnel device follows RFC 6040, see include/net/inet_ecn.h.
+ * And changes inner ip_ecn depending on inner and outer ip_ecn as follows:
+ * +---------+----------------------------------------+
+ * |Arriving | Arriving Outer Header |
+ * | Inner +---------+---------+---------+----------+
+ * | Header | Not-ECT | ECT(0) | ECT(1) | CE |
+ * +---------+---------+---------+---------+----------+
+ * | Not-ECT | Not-ECT | Not-ECT | Not-ECT | <drop> |
+ * | ECT(0) | ECT(0) | ECT(0) | ECT(1) | CE* |
+ * | ECT(1) | ECT(1) | ECT(1) | ECT(1)* | CE* |
+ * | CE | CE | CE | CE | CE |
+ * +---------+---------+---------+---------+----------+
+ *
+ * Tc matches on inner after decapsulation on tunnel device, but hw offload matches
+ * the inner ip_ecn value before hardware decap action.
+ *
+ * Cells marked are changed from original inner packet ip_ecn value during decap, and
+ * so matching those values on inner ip_ecn before decap will fail.
+ *
+ * The following helper allows offload when inner ip_ecn won't be changed by outer ip_ecn,
+ * except for the outer ip_ecn = CE, where in all cases inner ip_ecn will be changed to CE,
+ * and such we can drop the inner ip_ecn=CE match.
+ */
+
+static int mlx5e_tc_verify_tunnel_ecn(struct mlx5e_priv *priv,
+ struct flow_cls_offload *f,
+ bool *match_inner_ecn)
+{
+ u8 outer_ecn_mask = 0, outer_ecn_key = 0, inner_ecn_mask = 0, inner_ecn_key = 0;
+ struct flow_rule *rule = flow_cls_offload_flow_rule(f);
+ struct netlink_ext_ack *extack = f->common.extack;
+ struct flow_match_ip match;
+
+ *match_inner_ecn = true;
+
+ if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_ENC_IP)) {
+ flow_rule_match_enc_ip(rule, &match);
+ outer_ecn_key = match.key->tos & INET_ECN_MASK;
+ outer_ecn_mask = match.mask->tos & INET_ECN_MASK;
+ }
+
+ if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_IP)) {
+ flow_rule_match_ip(rule, &match);
+ inner_ecn_key = match.key->tos & INET_ECN_MASK;
+ inner_ecn_mask = match.mask->tos & INET_ECN_MASK;
+ }
+
+ if (outer_ecn_mask != 0 && outer_ecn_mask != INET_ECN_MASK) {
+ NL_SET_ERR_MSG_MOD(extack, "Partial match on enc_tos ecn bits isn't supported");
+ netdev_warn(priv->netdev, "Partial match on enc_tos ecn bits isn't supported");
+ return -EOPNOTSUPP;
+ }
+
+ if (!outer_ecn_mask) {
+ if (!inner_ecn_mask)
+ return 0;
+
+ NL_SET_ERR_MSG_MOD(extack,
+ "Matching on tos ecn bits without also matching enc_tos ecn bits isn't supported");
+ netdev_warn(priv->netdev,
+ "Matching on tos ecn bits without also matching enc_tos ecn bits isn't supported");
+ return -EOPNOTSUPP;
+ }
+
+ if (inner_ecn_mask && inner_ecn_mask != INET_ECN_MASK) {
+ NL_SET_ERR_MSG_MOD(extack,
+ "Partial match on tos ecn bits with match on enc_tos ecn bits isn't supported");
+ netdev_warn(priv->netdev,
+ "Partial match on tos ecn bits with match on enc_tos ecn bits isn't supported");
+ return -EOPNOTSUPP;
+ }
+
+ if (!inner_ecn_mask)
+ return 0;
+
+ /* Both inner and outer have full mask on ecn */
+
+ if (outer_ecn_key == INET_ECN_ECT_1) {
+ /* inner ecn might change by DECAP action */
+
+ NL_SET_ERR_MSG_MOD(extack, "Match on enc_tos ecn = ECT(1) isn't supported");
+ netdev_warn(priv->netdev, "Match on enc_tos ecn = ECT(1) isn't supported");
+ return -EOPNOTSUPP;
+ }
+
+ if (outer_ecn_key != INET_ECN_CE)
+ return 0;
+
+ if (inner_ecn_key != INET_ECN_CE) {
+ /* Can't happen in software, as packet ecn will be changed to CE after decap */
+ NL_SET_ERR_MSG_MOD(extack,
+ "Match on tos enc_tos ecn = CE while match on tos ecn != CE isn't supported");
+ netdev_warn(priv->netdev,
+ "Match on tos enc_tos ecn = CE while match on tos ecn != CE isn't supported");
+ return -EOPNOTSUPP;
+ }
+
+ /* outer ecn = CE, inner ecn = CE, as decap will change inner ecn to CE in anycase,
+ * drop match on inner ecn
+ */
+ *match_inner_ecn = false;
+
+ return 0;
+}
+
static int parse_tunnel_attr(struct mlx5e_priv *priv,
struct mlx5e_tc_flow *flow,
struct mlx5_flow_spec *spec,
@@ -2067,6 +2172,7 @@ static int __parse_cls_flower(struct mlx5e_priv *priv,
struct flow_rule *rule = flow_cls_offload_flow_rule(f);
struct flow_dissector *dissector = rule->match.dissector;
enum fs_flow_table_type fs_type;
+ bool match_inner_ecn = true;
u16 addr_type = 0;
u8 ip_proto = 0;
u8 *match_level;
@@ -2120,6 +2226,10 @@ static int __parse_cls_flower(struct mlx5e_priv *priv,
headers_c = get_match_inner_headers_criteria(spec);
headers_v = get_match_inner_headers_value(spec);
}
+
+ err = mlx5e_tc_verify_tunnel_ecn(priv, f, &match_inner_ecn);
+ if (err)
+ return err;
}
err = mlx5e_flower_parse_meta(filter_dev, f);
@@ -2341,10 +2451,12 @@ static int __parse_cls_flower(struct mlx5e_priv *priv,
struct flow_match_ip match;
flow_rule_match_ip(rule, &match);
- MLX5_SET(fte_match_set_lyr_2_4, headers_c, ip_ecn,
- match.mask->tos & 0x3);
- MLX5_SET(fte_match_set_lyr_2_4, headers_v, ip_ecn,
- match.key->tos & 0x3);
+ if (match_inner_ecn) {
+ MLX5_SET(fte_match_set_lyr_2_4, headers_c, ip_ecn,
+ match.mask->tos & 0x3);
+ MLX5_SET(fte_match_set_lyr_2_4, headers_v, ip_ecn,
+ match.key->tos & 0x3);
+ }
MLX5_SET(fte_match_set_lyr_2_4, headers_c, ip_dscp,
match.mask->tos >> 2);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c
index df277a6cddc0..0c4c743ca31e 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c
@@ -431,7 +431,7 @@ int mlx5_eswitch_set_vport_vlan(struct mlx5_eswitch *esw,
int err = 0;
if (!mlx5_esw_allowed(esw))
- return -EPERM;
+ return vlan ? -EPERM : 0;
if (vlan || qos)
set_flags = SET_VLAN_STRIP | SET_VLAN_INSERT;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c b/drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c
index 21fdaf708f1f..30282d86e6b9 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c
@@ -268,10 +268,8 @@ static int mlx5_lag_fib_event(struct notifier_block *nb,
fen_info = container_of(info, struct fib_entry_notifier_info,
info);
fi = fen_info->fi;
- if (fi->nh) {
- NL_SET_ERR_MSG_MOD(info->extack, "IPv4 route with nexthop objects is not supported");
- return notifier_from_errno(-EINVAL);
- }
+ if (fi->nh)
+ return NOTIFY_DONE;
fib_dev = fib_info_nh(fen_info->fi, 0)->fib_nh_dev;
if (fib_dev != ldev->pf[MLX5_LAG_P1].netdev &&
fib_dev != ldev->pf[MLX5_LAG_P2].netdev) {
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c
index 92b01858d7f3..29b7297a836a 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c
@@ -97,6 +97,8 @@ enum {
MLX5_ATOMIC_REQ_MODE_HOST_ENDIANNESS = 0x1,
};
+#define LOG_MAX_SUPPORTED_QPS 0xff
+
static struct mlx5_profile profile[] = {
[0] = {
.mask = 0,
@@ -108,7 +110,7 @@ static struct mlx5_profile profile[] = {
[2] = {
.mask = MLX5_PROF_MASK_QP_SIZE |
MLX5_PROF_MASK_MR_CACHE,
- .log_max_qp = 18,
+ .log_max_qp = LOG_MAX_SUPPORTED_QPS,
.mr_cache[0] = {
.size = 500,
.limit = 250
@@ -513,7 +515,9 @@ static int handle_hca_cap(struct mlx5_core_dev *dev, void *set_ctx)
to_fw_pkey_sz(dev, 128));
/* Check log_max_qp from HCA caps to set in current profile */
- if (MLX5_CAP_GEN_MAX(dev, log_max_qp) < prof->log_max_qp) {
+ if (prof->log_max_qp == LOG_MAX_SUPPORTED_QPS) {
+ prof->log_max_qp = MLX5_CAP_GEN_MAX(dev, log_max_qp);
+ } else if (MLX5_CAP_GEN_MAX(dev, log_max_qp) < prof->log_max_qp) {
mlx5_core_warn(dev, "log_max_qp value in current profile is %d, changing it to HCA capability limit (%d)\n",
prof->log_max_qp,
MLX5_CAP_GEN_MAX(dev, log_max_qp));
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c b/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c
index 871c2fbe18d3..64bbc18332d5 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c
@@ -28,10 +28,7 @@ bool mlx5_sf_dev_allocated(const struct mlx5_core_dev *dev)
{
struct mlx5_sf_dev_table *table = dev->priv.sf_dev_table;
- if (!mlx5_sf_dev_supported(dev))
- return false;
-
- return !xa_empty(&table->devices);
+ return table && !xa_empty(&table->devices);
}
static ssize_t sfnum_show(struct device *dev, struct device_attribute *attr, char *buf)
diff --git a/drivers/net/ethernet/mellanox/mlxsw/cmd.h b/drivers/net/ethernet/mellanox/mlxsw/cmd.h
index 392ce3cb27f7..51b260d54237 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/cmd.h
+++ b/drivers/net/ethernet/mellanox/mlxsw/cmd.h
@@ -935,6 +935,18 @@ static inline int mlxsw_cmd_sw2hw_rdq(struct mlxsw_core *mlxsw_core,
*/
MLXSW_ITEM32(cmd_mbox, sw2hw_dq, cq, 0x00, 24, 8);
+enum mlxsw_cmd_mbox_sw2hw_dq_sdq_lp {
+ MLXSW_CMD_MBOX_SW2HW_DQ_SDQ_LP_WQE,
+ MLXSW_CMD_MBOX_SW2HW_DQ_SDQ_LP_IGNORE_WQE,
+};
+
+/* cmd_mbox_sw2hw_dq_sdq_lp
+ * SDQ local Processing
+ * 0: local processing by wqe.lp
+ * 1: local processing (ignoring wqe.lp)
+ */
+MLXSW_ITEM32(cmd_mbox, sw2hw_dq, sdq_lp, 0x00, 23, 1);
+
/* cmd_mbox_sw2hw_dq_sdq_tclass
* SDQ: CPU Egress TClass
* RDQ: Reserved
diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c
index fcace73eae40..d9f9cbba6246 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/pci.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c
@@ -285,6 +285,7 @@ static int mlxsw_pci_sdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox,
struct mlxsw_pci_queue *q)
{
int tclass;
+ int lp;
int i;
int err;
@@ -292,9 +293,12 @@ static int mlxsw_pci_sdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox,
q->consumer_counter = 0;
tclass = q->num == MLXSW_PCI_SDQ_EMAD_INDEX ? MLXSW_PCI_SDQ_EMAD_TC :
MLXSW_PCI_SDQ_CTL_TC;
+ lp = q->num == MLXSW_PCI_SDQ_EMAD_INDEX ? MLXSW_CMD_MBOX_SW2HW_DQ_SDQ_LP_IGNORE_WQE :
+ MLXSW_CMD_MBOX_SW2HW_DQ_SDQ_LP_WQE;
/* Set CQ of same number of this SDQ. */
mlxsw_cmd_mbox_sw2hw_dq_cq_set(mbox, q->num);
+ mlxsw_cmd_mbox_sw2hw_dq_sdq_lp_set(mbox, lp);
mlxsw_cmd_mbox_sw2hw_dq_sdq_tclass_set(mbox, tclass);
mlxsw_cmd_mbox_sw2hw_dq_log2_dq_sz_set(mbox, 3); /* 8 pages */
for (i = 0; i < MLXSW_PCI_AQ_PAGES; i++) {
@@ -1678,7 +1682,7 @@ static int mlxsw_pci_skb_transmit(void *bus_priv, struct sk_buff *skb,
wqe = elem_info->elem;
mlxsw_pci_wqe_c_set(wqe, 1); /* always report completion */
- mlxsw_pci_wqe_lp_set(wqe, !!tx_info->is_emad);
+ mlxsw_pci_wqe_lp_set(wqe, 0);
mlxsw_pci_wqe_type_set(wqe, MLXSW_PCI_WQE_TYPE_ETHERNET);
err = mlxsw_pci_wqe_frag_map(mlxsw_pci, wqe, 0, skb->data,
@@ -1973,6 +1977,7 @@ int mlxsw_pci_driver_register(struct pci_driver *pci_driver)
{
pci_driver->probe = mlxsw_pci_probe;
pci_driver->remove = mlxsw_pci_remove;
+ pci_driver->shutdown = mlxsw_pci_remove;
return pci_register_driver(pci_driver);
}
EXPORT_SYMBOL(mlxsw_pci_driver_register);
diff --git a/drivers/net/ethernet/mscc/ocelot.c b/drivers/net/ethernet/mscc/ocelot.c
index 00b5e6860bf6..be2dd69bfee8 100644
--- a/drivers/net/ethernet/mscc/ocelot.c
+++ b/drivers/net/ethernet/mscc/ocelot.c
@@ -555,7 +555,10 @@ void ocelot_phylink_mac_link_up(struct ocelot *ocelot, int port,
ocelot_write_rix(ocelot, 0, ANA_POL_FLOWC, port);
- ocelot_fields_write(ocelot, port, SYS_PAUSE_CFG_PAUSE_ENA, tx_pause);
+ /* Don't attempt to send PAUSE frames on the NPI port, it's broken */
+ if (port != ocelot->npi)
+ ocelot_fields_write(ocelot, port, SYS_PAUSE_CFG_PAUSE_ENA,
+ tx_pause);
/* Undo the effects of ocelot_phylink_mac_link_down:
* enable MAC module
@@ -1302,8 +1305,7 @@ int ocelot_get_ts_info(struct ocelot *ocelot, int port,
}
EXPORT_SYMBOL(ocelot_get_ts_info);
-static u32 ocelot_get_bond_mask(struct ocelot *ocelot, struct net_device *bond,
- bool only_active_ports)
+static u32 ocelot_get_bond_mask(struct ocelot *ocelot, struct net_device *bond)
{
u32 mask = 0;
int port;
@@ -1314,12 +1316,8 @@ static u32 ocelot_get_bond_mask(struct ocelot *ocelot, struct net_device *bond,
if (!ocelot_port)
continue;
- if (ocelot_port->bond == bond) {
- if (only_active_ports && !ocelot_port->lag_tx_active)
- continue;
-
+ if (ocelot_port->bond == bond)
mask |= BIT(port);
- }
}
return mask;
@@ -1406,10 +1404,8 @@ void ocelot_apply_bridge_fwd_mask(struct ocelot *ocelot)
mask = ocelot_get_bridge_fwd_mask(ocelot, port, bridge);
mask |= cpu_fwd_mask;
mask &= ~BIT(port);
- if (bond) {
- mask &= ~ocelot_get_bond_mask(ocelot, bond,
- false);
- }
+ if (bond)
+ mask &= ~ocelot_get_bond_mask(ocelot, bond);
} else {
/* Standalone ports forward only to DSA tag_8021q CPU
* ports (if those exist), or to the hardware CPU port
@@ -1727,13 +1723,17 @@ static void ocelot_set_aggr_pgids(struct ocelot *ocelot)
if (!bond || (visited & BIT(lag)))
continue;
- bond_mask = ocelot_get_bond_mask(ocelot, bond, true);
+ bond_mask = ocelot_get_bond_mask(ocelot, bond);
for_each_set_bit(port, &bond_mask, ocelot->num_phys_ports) {
+ struct ocelot_port *ocelot_port = ocelot->ports[port];
+
// Destination mask
ocelot_write_rix(ocelot, bond_mask,
ANA_PGID_PGID, port);
- aggr_idx[num_active_ports++] = port;
+
+ if (ocelot_port->lag_tx_active)
+ aggr_idx[num_active_ports++] = port;
}
for_each_aggr_pgid(ocelot, i) {
@@ -1782,8 +1782,7 @@ static void ocelot_setup_logical_port_ids(struct ocelot *ocelot)
bond = ocelot_port->bond;
if (bond) {
- int lag = __ffs(ocelot_get_bond_mask(ocelot, bond,
- false));
+ int lag = __ffs(ocelot_get_bond_mask(ocelot, bond));
ocelot_rmw_gix(ocelot,
ANA_PORT_PORT_CFG_PORTID_VAL(lag),
diff --git a/drivers/net/ethernet/mscc/ocelot_flower.c b/drivers/net/ethernet/mscc/ocelot_flower.c
index 8b843d3c9189..afa062c5f82d 100644
--- a/drivers/net/ethernet/mscc/ocelot_flower.c
+++ b/drivers/net/ethernet/mscc/ocelot_flower.c
@@ -467,13 +467,6 @@ ocelot_flower_parse_key(struct ocelot *ocelot, int port, bool ingress,
return -EOPNOTSUPP;
}
- if (filter->block_id == VCAP_IS1 &&
- !is_zero_ether_addr(match.mask->dst)) {
- NL_SET_ERR_MSG_MOD(extack,
- "Key type S1_NORMAL cannot match on destination MAC");
- return -EOPNOTSUPP;
- }
-
/* The hw support mac matches only for MAC_ETYPE key,
* therefore if other matches(port, tcp flags, etc) are added
* then just bail out
@@ -488,6 +481,14 @@ ocelot_flower_parse_key(struct ocelot *ocelot, int port, bool ingress,
return -EOPNOTSUPP;
flow_rule_match_eth_addrs(rule, &match);
+
+ if (filter->block_id == VCAP_IS1 &&
+ !is_zero_ether_addr(match.mask->dst)) {
+ NL_SET_ERR_MSG_MOD(extack,
+ "Key type S1_NORMAL cannot match on destination MAC");
+ return -EOPNOTSUPP;
+ }
+
filter->key_type = OCELOT_VCAP_KEY_ETYPE;
ether_addr_copy(filter->key.etype.dmac.value,
match.key->dst);
diff --git a/drivers/net/ethernet/mscc/ocelot_net.c b/drivers/net/ethernet/mscc/ocelot_net.c
index 2545727fd5b2..c08c56e07b1d 100644
--- a/drivers/net/ethernet/mscc/ocelot_net.c
+++ b/drivers/net/ethernet/mscc/ocelot_net.c
@@ -1168,7 +1168,7 @@ static int ocelot_netdevice_bridge_join(struct net_device *dev,
ocelot_port_bridge_join(ocelot, port, bridge);
err = switchdev_bridge_port_offload(brport_dev, dev, priv,
- &ocelot_netdevice_nb,
+ &ocelot_switchdev_nb,
&ocelot_switchdev_blocking_nb,
false, extack);
if (err)
@@ -1182,7 +1182,7 @@ static int ocelot_netdevice_bridge_join(struct net_device *dev,
err_switchdev_sync:
switchdev_bridge_port_unoffload(brport_dev, priv,
- &ocelot_netdevice_nb,
+ &ocelot_switchdev_nb,
&ocelot_switchdev_blocking_nb);
err_switchdev_offload:
ocelot_port_bridge_leave(ocelot, port, bridge);
@@ -1195,7 +1195,7 @@ static void ocelot_netdevice_pre_bridge_leave(struct net_device *dev,
struct ocelot_port_private *priv = netdev_priv(dev);
switchdev_bridge_port_unoffload(brport_dev, priv,
- &ocelot_netdevice_nb,
+ &ocelot_switchdev_nb,
&ocelot_switchdev_blocking_nb);
}
diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
index 0f85f2d97b18..4e08b7219403 100644
--- a/drivers/net/ethernet/renesas/ravb_main.c
+++ b/drivers/net/ethernet/renesas/ravb_main.c
@@ -30,8 +30,7 @@
#include <linux/spinlock.h>
#include <linux/sys_soc.h>
#include <linux/reset.h>
-
-#include <asm/div64.h>
+#include <linux/math64.h>
#include "ravb.h"
@@ -2061,8 +2060,7 @@ static int ravb_set_gti(struct net_device *ndev)
if (!rate)
return -EINVAL;
- inc = 1000000000ULL << 20;
- do_div(inc, rate);
+ inc = div64_ul(1000000000ULL << 20, rate);
if (inc < GTI_TIV_MIN || inc > GTI_TIV_MAX) {
dev_err(dev, "gti.tiv increment 0x%llx is outside the range 0x%x - 0x%x\n",
diff --git a/drivers/net/ethernet/rocker/rocker_ofdpa.c b/drivers/net/ethernet/rocker/rocker_ofdpa.c
index 3e1ca7a8d029..bc70c6abd6a5 100644
--- a/drivers/net/ethernet/rocker/rocker_ofdpa.c
+++ b/drivers/net/ethernet/rocker/rocker_ofdpa.c
@@ -2783,7 +2783,8 @@ static void ofdpa_fib4_abort(struct rocker *rocker)
if (!ofdpa_port)
continue;
nh->fib_nh_flags &= ~RTNH_F_OFFLOAD;
- ofdpa_flow_tbl_del(ofdpa_port, OFDPA_OP_FLAG_REMOVE,
+ ofdpa_flow_tbl_del(ofdpa_port,
+ OFDPA_OP_FLAG_REMOVE | OFDPA_OP_FLAG_NOWAIT,
flow_entry);
}
spin_unlock_irqrestore(&ofdpa->flow_tbl_lock, flags);
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
index 5c74b6279d69..6b1d9e8879f4 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
@@ -113,8 +113,10 @@ static void rgmii_updatel(struct qcom_ethqos *ethqos,
rgmii_writel(ethqos, temp, offset);
}
-static void rgmii_dump(struct qcom_ethqos *ethqos)
+static void rgmii_dump(void *priv)
{
+ struct qcom_ethqos *ethqos = priv;
+
dev_dbg(ðqos->pdev->dev, "Rgmii register dump\n");
dev_dbg(ðqos->pdev->dev, "RGMII_IO_MACRO_CONFIG: %x\n",
rgmii_readl(ethqos, RGMII_IO_MACRO_CONFIG));
@@ -499,6 +501,7 @@ static int qcom_ethqos_probe(struct platform_device *pdev)
plat_dat->bsp_priv = ethqos;
plat_dat->fix_mac_speed = ethqos_fix_mac_speed;
+ plat_dat->dump_debug_regs = rgmii_dump;
plat_dat->has_gmac4 = 1;
plat_dat->pmt = 1;
plat_dat->tso_en = of_property_read_bool(np, "snps,tso");
@@ -507,8 +510,6 @@ static int qcom_ethqos_probe(struct platform_device *pdev)
if (ret)
goto err_clk;
- rgmii_dump(ethqos);
-
return ret;
err_clk:
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 3422f0746d82..06e5431cf51d 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -7077,6 +7077,9 @@ int stmmac_dvr_probe(struct device *device,
stmmac_init_fs(ndev);
#endif
+ if (priv->plat->dump_debug_regs)
+ priv->plat->dump_debug_regs(priv->plat->bsp_priv);
+
/* Let pm_runtime_put() disable the clocks.
* If CONFIG_PM is not enabled, the clocks will stay powered.
*/
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 66f7ddd9b1f9..e226ecd95a2c 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -349,7 +349,7 @@ static void cpsw_rx_handler(void *token, int len, int status)
struct cpsw_common *cpsw = ndev_to_cpsw(xmeta->ndev);
int pkt_size = cpsw->rx_packet_max;
int ret = 0, port, ch = xmeta->ch;
- int headroom = CPSW_HEADROOM;
+ int headroom = CPSW_HEADROOM_NA;
struct net_device *ndev = xmeta->ndev;
struct cpsw_priv *priv;
struct page_pool *pool;
@@ -392,7 +392,7 @@ static void cpsw_rx_handler(void *token, int len, int status)
}
if (priv->xdp_prog) {
- int headroom = CPSW_HEADROOM, size = len;
+ int size = len;
xdp_init_buff(&xdp, PAGE_SIZE, &priv->xdp_rxq[ch]);
if (status & CPDMA_RX_VLAN_ENCAP) {
@@ -442,7 +442,7 @@ static void cpsw_rx_handler(void *token, int len, int status)
xmeta->ndev = ndev;
xmeta->ch = ch;
- dma = page_pool_get_dma_addr(new_page) + CPSW_HEADROOM;
+ dma = page_pool_get_dma_addr(new_page) + CPSW_HEADROOM_NA;
ret = cpdma_chan_submit_mapped(cpsw->rxv[ch].ch, new_page, dma,
pkt_size, 0);
if (ret < 0) {
diff --git a/drivers/net/ethernet/ti/cpsw_new.c b/drivers/net/ethernet/ti/cpsw_new.c
index 7968f24d99c8..9e16afbdbdc1 100644
--- a/drivers/net/ethernet/ti/cpsw_new.c
+++ b/drivers/net/ethernet/ti/cpsw_new.c
@@ -283,7 +283,7 @@ static void cpsw_rx_handler(void *token, int len, int status)
{
struct page *new_page, *page = token;
void *pa = page_address(page);
- int headroom = CPSW_HEADROOM;
+ int headroom = CPSW_HEADROOM_NA;
struct cpsw_meta_xdp *xmeta;
struct cpsw_common *cpsw;
struct net_device *ndev;
@@ -336,7 +336,7 @@ static void cpsw_rx_handler(void *token, int len, int status)
}
if (priv->xdp_prog) {
- int headroom = CPSW_HEADROOM, size = len;
+ int size = len;
xdp_init_buff(&xdp, PAGE_SIZE, &priv->xdp_rxq[ch]);
if (status & CPDMA_RX_VLAN_ENCAP) {
@@ -386,7 +386,7 @@ static void cpsw_rx_handler(void *token, int len, int status)
xmeta->ndev = ndev;
xmeta->ch = ch;
- dma = page_pool_get_dma_addr(new_page) + CPSW_HEADROOM;
+ dma = page_pool_get_dma_addr(new_page) + CPSW_HEADROOM_NA;
ret = cpdma_chan_submit_mapped(cpsw->rxv[ch].ch, new_page, dma,
pkt_size, 0);
if (ret < 0) {
diff --git a/drivers/net/ethernet/ti/cpsw_priv.c b/drivers/net/ethernet/ti/cpsw_priv.c
index ecc2a6b7e28f..6bb5ac51d23c 100644
--- a/drivers/net/ethernet/ti/cpsw_priv.c
+++ b/drivers/net/ethernet/ti/cpsw_priv.c
@@ -1120,7 +1120,7 @@ int cpsw_fill_rx_channels(struct cpsw_priv *priv)
xmeta->ndev = priv->ndev;
xmeta->ch = ch;
- dma = page_pool_get_dma_addr(page) + CPSW_HEADROOM;
+ dma = page_pool_get_dma_addr(page) + CPSW_HEADROOM_NA;
ret = cpdma_chan_idle_submit_mapped(cpsw->rxv[ch].ch,
page, dma,
cpsw->rx_packet_max,
diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
index 871b5ec3183d..2169417210c2 100644
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
@@ -41,8 +41,9 @@
#include "xilinx_axienet.h"
/* Descriptors defines for Tx and Rx DMA */
-#define TX_BD_NUM_DEFAULT 64
+#define TX_BD_NUM_DEFAULT 128
#define RX_BD_NUM_DEFAULT 1024
+#define TX_BD_NUM_MIN (MAX_SKB_FRAGS + 1)
#define TX_BD_NUM_MAX 4096
#define RX_BD_NUM_MAX 4096
@@ -496,7 +497,8 @@ static void axienet_setoptions(struct net_device *ndev, u32 options)
static int __axienet_device_reset(struct axienet_local *lp)
{
- u32 timeout;
+ u32 value;
+ int ret;
/* Reset Axi DMA. This would reset Axi Ethernet core as well. The reset
* process of Axi DMA takes a while to complete as all pending
@@ -506,15 +508,23 @@ static int __axienet_device_reset(struct axienet_local *lp)
* they both reset the entire DMA core, so only one needs to be used.
*/
axienet_dma_out32(lp, XAXIDMA_TX_CR_OFFSET, XAXIDMA_CR_RESET_MASK);
- timeout = DELAY_OF_ONE_MILLISEC;
- while (axienet_dma_in32(lp, XAXIDMA_TX_CR_OFFSET) &
- XAXIDMA_CR_RESET_MASK) {
- udelay(1);
- if (--timeout == 0) {
- netdev_err(lp->ndev, "%s: DMA reset timeout!\n",
- __func__);
- return -ETIMEDOUT;
- }
+ ret = read_poll_timeout(axienet_dma_in32, value,
+ !(value & XAXIDMA_CR_RESET_MASK),
+ DELAY_OF_ONE_MILLISEC, 50000, false, lp,
+ XAXIDMA_TX_CR_OFFSET);
+ if (ret) {
+ dev_err(lp->dev, "%s: DMA reset timeout!\n", __func__);
+ return ret;
+ }
+
+ /* Wait for PhyRstCmplt bit to be set, indicating the PHY reset has finished */
+ ret = read_poll_timeout(axienet_ior, value,
+ value & XAE_INT_PHYRSTCMPLT_MASK,
+ DELAY_OF_ONE_MILLISEC, 50000, false, lp,
+ XAE_IS_OFFSET);
+ if (ret) {
+ dev_err(lp->dev, "%s: timeout waiting for PhyRstCmplt\n", __func__);
+ return ret;
}
return 0;
@@ -623,6 +633,8 @@ static int axienet_free_tx_chain(struct net_device *ndev, u32 first_bd,
if (nr_bds == -1 && !(status & XAXIDMA_BD_STS_COMPLETE_MASK))
break;
+ /* Ensure we see complete descriptor update */
+ dma_rmb();
phys = desc_get_phys_addr(lp, cur_p);
dma_unmap_single(ndev->dev.parent, phys,
(cur_p->cntrl & XAXIDMA_BD_CTRL_LENGTH_MASK),
@@ -631,13 +643,15 @@ static int axienet_free_tx_chain(struct net_device *ndev, u32 first_bd,
if (cur_p->skb && (status & XAXIDMA_BD_STS_COMPLETE_MASK))
dev_consume_skb_irq(cur_p->skb);
- cur_p->cntrl = 0;
cur_p->app0 = 0;
cur_p->app1 = 0;
cur_p->app2 = 0;
cur_p->app4 = 0;
- cur_p->status = 0;
cur_p->skb = NULL;
+ /* ensure our transmit path and device don't prematurely see status cleared */
+ wmb();
+ cur_p->cntrl = 0;
+ cur_p->status = 0;
if (sizep)
*sizep += status & XAXIDMA_BD_STS_ACTUAL_LEN_MASK;
@@ -646,6 +660,32 @@ static int axienet_free_tx_chain(struct net_device *ndev, u32 first_bd,
return i;
}
+/**
+ * axienet_check_tx_bd_space - Checks if a BD/group of BDs are currently busy
+ * @lp: Pointer to the axienet_local structure
+ * @num_frag: The number of BDs to check for
+ *
+ * Return: 0, on success
+ * NETDEV_TX_BUSY, if any of the descriptors are not free
+ *
+ * This function is invoked before BDs are allocated and transmission starts.
+ * This function returns 0 if a BD or group of BDs can be allocated for
+ * transmission. If the BD or any of the BDs are not free the function
+ * returns a busy status. This is invoked from axienet_start_xmit.
+ */
+static inline int axienet_check_tx_bd_space(struct axienet_local *lp,
+ int num_frag)
+{
+ struct axidma_bd *cur_p;
+
+ /* Ensure we see all descriptor updates from device or TX IRQ path */
+ rmb();
+ cur_p = &lp->tx_bd_v[(lp->tx_bd_tail + num_frag) % lp->tx_bd_num];
+ if (cur_p->cntrl)
+ return NETDEV_TX_BUSY;
+ return 0;
+}
+
/**
* axienet_start_xmit_done - Invoked once a transmit is completed by the
* Axi DMA Tx channel.
@@ -675,30 +715,8 @@ static void axienet_start_xmit_done(struct net_device *ndev)
/* Matches barrier in axienet_start_xmit */
smp_mb();
- netif_wake_queue(ndev);
-}
-
-/**
- * axienet_check_tx_bd_space - Checks if a BD/group of BDs are currently busy
- * @lp: Pointer to the axienet_local structure
- * @num_frag: The number of BDs to check for
- *
- * Return: 0, on success
- * NETDEV_TX_BUSY, if any of the descriptors are not free
- *
- * This function is invoked before BDs are allocated and transmission starts.
- * This function returns 0 if a BD or group of BDs can be allocated for
- * transmission. If the BD or any of the BDs are not free the function
- * returns a busy status. This is invoked from axienet_start_xmit.
- */
-static inline int axienet_check_tx_bd_space(struct axienet_local *lp,
- int num_frag)
-{
- struct axidma_bd *cur_p;
- cur_p = &lp->tx_bd_v[(lp->tx_bd_tail + num_frag) % lp->tx_bd_num];
- if (cur_p->status & XAXIDMA_BD_STS_ALL_MASK)
- return NETDEV_TX_BUSY;
- return 0;
+ if (!axienet_check_tx_bd_space(lp, MAX_SKB_FRAGS + 1))
+ netif_wake_queue(ndev);
}
/**
@@ -730,20 +748,15 @@ axienet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
num_frag = skb_shinfo(skb)->nr_frags;
cur_p = &lp->tx_bd_v[lp->tx_bd_tail];
- if (axienet_check_tx_bd_space(lp, num_frag)) {
- if (netif_queue_stopped(ndev))
- return NETDEV_TX_BUSY;
-
+ if (axienet_check_tx_bd_space(lp, num_frag + 1)) {
+ /* Should not happen as last start_xmit call should have
+ * checked for sufficient space and queue should only be
+ * woken when sufficient space is available.
+ */
netif_stop_queue(ndev);
-
- /* Matches barrier in axienet_start_xmit_done */
- smp_mb();
-
- /* Space might have just been freed - check again */
- if (axienet_check_tx_bd_space(lp, num_frag))
- return NETDEV_TX_BUSY;
-
- netif_wake_queue(ndev);
+ if (net_ratelimit())
+ netdev_warn(ndev, "TX ring unexpectedly full\n");
+ return NETDEV_TX_BUSY;
}
if (skb->ip_summed == CHECKSUM_PARTIAL) {
@@ -804,6 +817,18 @@ axienet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
if (++lp->tx_bd_tail >= lp->tx_bd_num)
lp->tx_bd_tail = 0;
+ /* Stop queue if next transmit may not have space */
+ if (axienet_check_tx_bd_space(lp, MAX_SKB_FRAGS + 1)) {
+ netif_stop_queue(ndev);
+
+ /* Matches barrier in axienet_start_xmit_done */
+ smp_mb();
+
+ /* Space might have just been freed - check again */
+ if (!axienet_check_tx_bd_space(lp, MAX_SKB_FRAGS + 1))
+ netif_wake_queue(ndev);
+ }
+
return NETDEV_TX_OK;
}
@@ -834,6 +859,8 @@ static void axienet_recv(struct net_device *ndev)
tail_p = lp->rx_bd_p + sizeof(*lp->rx_bd_v) * lp->rx_bd_ci;
+ /* Ensure we see complete descriptor update */
+ dma_rmb();
phys = desc_get_phys_addr(lp, cur_p);
dma_unmap_single(ndev->dev.parent, phys, lp->max_frm_size,
DMA_FROM_DEVICE);
@@ -1346,7 +1373,8 @@ static int axienet_ethtools_set_ringparam(struct net_device *ndev,
if (ering->rx_pending > RX_BD_NUM_MAX ||
ering->rx_mini_pending ||
ering->rx_jumbo_pending ||
- ering->rx_pending > TX_BD_NUM_MAX)
+ ering->tx_pending < TX_BD_NUM_MIN ||
+ ering->tx_pending > TX_BD_NUM_MAX)
return -EINVAL;
if (netif_running(ndev))
@@ -2082,6 +2110,11 @@ static int axienet_probe(struct platform_device *pdev)
lp->coalesce_count_rx = XAXIDMA_DFT_RX_THRESHOLD;
lp->coalesce_count_tx = XAXIDMA_DFT_TX_THRESHOLD;
+ /* Reset core now that clocks are enabled, prior to accessing MDIO */
+ ret = __axienet_device_reset(lp);
+ if (ret)
+ goto cleanup_clk;
+
lp->phy_node = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
if (lp->phy_node) {
ret = axienet_mdio_setup(lp);
diff --git a/drivers/net/ipa/ipa_endpoint.c b/drivers/net/ipa/ipa_endpoint.c
index 03a170993420..c8f90cb1ee8f 100644
--- a/drivers/net/ipa/ipa_endpoint.c
+++ b/drivers/net/ipa/ipa_endpoint.c
@@ -1067,6 +1067,7 @@ static void ipa_endpoint_replenish(struct ipa_endpoint *endpoint, bool add_one)
{
struct gsi *gsi;
u32 backlog;
+ int delta;
if (!endpoint->replenish_enabled) {
if (add_one)
@@ -1084,10 +1085,8 @@ static void ipa_endpoint_replenish(struct ipa_endpoint *endpoint, bool add_one)
try_again_later:
/* The last one didn't succeed, so fix the backlog */
- backlog = atomic_inc_return(&endpoint->replenish_backlog);
-
- if (add_one)
- atomic_inc(&endpoint->replenish_backlog);
+ delta = add_one ? 2 : 1;
+ backlog = atomic_add_return(delta, &endpoint->replenish_backlog);
/* Whenever a receive buffer transaction completes we'll try to
* replenish again. It's unlikely, but if we fail to supply even
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index 4fcfca4e1702..c10cc2cd53b6 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -189,6 +189,8 @@
#define MII_88E1510_GEN_CTRL_REG_1_MODE_RGMII_SGMII 0x4
#define MII_88E1510_GEN_CTRL_REG_1_RESET 0x8000 /* Soft reset */
+#define MII_88E1510_MSCR_2 0x15
+
#define MII_VCT5_TX_RX_MDI0_COUPLING 0x10
#define MII_VCT5_TX_RX_MDI1_COUPLING 0x11
#define MII_VCT5_TX_RX_MDI2_COUPLING 0x12
@@ -1242,6 +1244,12 @@ static int m88e1118_config_init(struct phy_device *phydev)
if (err < 0)
return err;
+ if (phy_interface_is_rgmii(phydev)) {
+ err = m88e1121_config_aneg_rgmii_delays(phydev);
+ if (err < 0)
+ return err;
+ }
+
/* Adjust LED Control */
if (phydev->dev_flags & MARVELL_PHY_M1118_DNS323_LEDS)
err = phy_write(phydev, 0x10, 0x1100);
@@ -1932,6 +1940,58 @@ static void marvell_get_stats(struct phy_device *phydev,
data[i] = marvell_get_stat(phydev, i);
}
+static int m88e1510_loopback(struct phy_device *phydev, bool enable)
+{
+ int err;
+
+ if (enable) {
+ u16 bmcr_ctl = 0, mscr2_ctl = 0;
+
+ if (phydev->speed == SPEED_1000)
+ bmcr_ctl = BMCR_SPEED1000;
+ else if (phydev->speed == SPEED_100)
+ bmcr_ctl = BMCR_SPEED100;
+
+ if (phydev->duplex == DUPLEX_FULL)
+ bmcr_ctl |= BMCR_FULLDPLX;
+
+ err = phy_write(phydev, MII_BMCR, bmcr_ctl);
+ if (err < 0)
+ return err;
+
+ if (phydev->speed == SPEED_1000)
+ mscr2_ctl = BMCR_SPEED1000;
+ else if (phydev->speed == SPEED_100)
+ mscr2_ctl = BMCR_SPEED100;
+
+ err = phy_modify_paged(phydev, MII_MARVELL_MSCR_PAGE,
+ MII_88E1510_MSCR_2, BMCR_SPEED1000 |
+ BMCR_SPEED100, mscr2_ctl);
+ if (err < 0)
+ return err;
+
+ /* Need soft reset to have speed configuration takes effect */
+ err = genphy_soft_reset(phydev);
+ if (err < 0)
+ return err;
+
+ /* FIXME: Based on trial and error test, it seem 1G need to have
+ * delay between soft reset and loopback enablement.
+ */
+ if (phydev->speed == SPEED_1000)
+ msleep(1000);
+
+ return phy_modify(phydev, MII_BMCR, BMCR_LOOPBACK,
+ BMCR_LOOPBACK);
+ } else {
+ err = phy_modify(phydev, MII_BMCR, BMCR_LOOPBACK, 0);
+ if (err < 0)
+ return err;
+
+ return phy_config_aneg(phydev);
+ }
+}
+
static int marvell_vct5_wait_complete(struct phy_device *phydev)
{
int i;
@@ -3078,7 +3138,7 @@ static struct phy_driver marvell_drivers[] = {
.get_sset_count = marvell_get_sset_count,
.get_strings = marvell_get_strings,
.get_stats = marvell_get_stats,
- .set_loopback = genphy_loopback,
+ .set_loopback = m88e1510_loopback,
.get_tunable = m88e1011_get_tunable,
.set_tunable = m88e1011_set_tunable,
.cable_test_start = marvell_vct7_cable_test_start,
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index 6865d9319197..8dc6e6269c65 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -591,7 +591,7 @@ int __mdiobus_register(struct mii_bus *bus, struct module *owner)
mdiobus_setup_mdiodev_from_board_info(bus, mdiobus_create_device);
bus->state = MDIOBUS_REGISTERED;
- pr_info("%s: probed\n", bus->name);
+ dev_dbg(&bus->dev, "probed\n");
return 0;
error:
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index aec0fcefdccd..e2ac61f44c94 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -1547,8 +1547,8 @@ static struct phy_driver ksphy_driver[] = {
.config_init = kszphy_config_init,
.config_intr = kszphy_config_intr,
.handle_interrupt = kszphy_handle_interrupt,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ8021,
.phy_id_mask = 0x00ffffff,
@@ -1562,8 +1562,8 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ8031,
.phy_id_mask = 0x00ffffff,
@@ -1577,8 +1577,8 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ8041,
.phy_id_mask = MICREL_PHY_ID_MASK,
@@ -1609,8 +1609,8 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.name = "Micrel KSZ8051",
/* PHY_BASIC_FEATURES */
@@ -1623,8 +1623,8 @@ static struct phy_driver ksphy_driver[] = {
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
.match_phy_device = ksz8051_match_phy_device,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ8001,
.name = "Micrel KSZ8001 or KS8721",
@@ -1638,8 +1638,8 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ8081,
.name = "Micrel KSZ8081 or KSZ8091",
@@ -1669,8 +1669,8 @@ static struct phy_driver ksphy_driver[] = {
.config_init = ksz8061_config_init,
.config_intr = kszphy_config_intr,
.handle_interrupt = kszphy_handle_interrupt,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ9021,
.phy_id_mask = 0x000ffffe,
@@ -1685,8 +1685,8 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
- .resume = genphy_resume,
+ .suspend = kszphy_suspend,
+ .resume = kszphy_resume,
.read_mmd = genphy_read_mmd_unsupported,
.write_mmd = genphy_write_mmd_unsupported,
}, {
@@ -1704,7 +1704,7 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
+ .suspend = kszphy_suspend,
.resume = kszphy_resume,
}, {
.phy_id = PHY_ID_LAN8814,
@@ -1732,7 +1732,7 @@ static struct phy_driver ksphy_driver[] = {
.get_sset_count = kszphy_get_sset_count,
.get_strings = kszphy_get_strings,
.get_stats = kszphy_get_stats,
- .suspend = genphy_suspend,
+ .suspend = kszphy_suspend,
.resume = kszphy_resume,
}, {
.phy_id = PHY_ID_KSZ8873MLL,
diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c
index 2870c33b8975..271fc01f7f7f 100644
--- a/drivers/net/phy/phy-core.c
+++ b/drivers/net/phy/phy-core.c
@@ -162,11 +162,11 @@ static const struct phy_setting settings[] = {
PHY_SETTING( 2500, FULL, 2500baseT_Full ),
PHY_SETTING( 2500, FULL, 2500baseX_Full ),
/* 1G */
- PHY_SETTING( 1000, FULL, 1000baseKX_Full ),
PHY_SETTING( 1000, FULL, 1000baseT_Full ),
PHY_SETTING( 1000, HALF, 1000baseT_Half ),
PHY_SETTING( 1000, FULL, 1000baseT1_Full ),
PHY_SETTING( 1000, FULL, 1000baseX_Full ),
+ PHY_SETTING( 1000, FULL, 1000baseKX_Full ),
/* 100M */
PHY_SETTING( 100, FULL, 100baseT_Full ),
PHY_SETTING( 100, FULL, 100baseT1_Full ),
diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c
index ab77a9f439ef..4720b24ca51b 100644
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
@@ -1641,17 +1641,20 @@ static int sfp_sm_probe_for_phy(struct sfp *sfp)
static int sfp_module_parse_power(struct sfp *sfp)
{
u32 power_mW = 1000;
+ bool supports_a2;
if (sfp->id.ext.options & cpu_to_be16(SFP_OPTIONS_POWER_DECL))
power_mW = 1500;
if (sfp->id.ext.options & cpu_to_be16(SFP_OPTIONS_HIGH_POWER_LEVEL))
power_mW = 2000;
+ supports_a2 = sfp->id.ext.sff8472_compliance !=
+ SFP_SFF8472_COMPLIANCE_NONE ||
+ sfp->id.ext.diagmon & SFP_DIAGMON_DDM;
+
if (power_mW > sfp->max_power_mW) {
/* Module power specification exceeds the allowed maximum. */
- if (sfp->id.ext.sff8472_compliance ==
- SFP_SFF8472_COMPLIANCE_NONE &&
- !(sfp->id.ext.diagmon & SFP_DIAGMON_DDM)) {
+ if (!supports_a2) {
/* The module appears not to implement bus address
* 0xa2, so assume that the module powers up in the
* indicated mode.
@@ -1668,11 +1671,25 @@ static int sfp_module_parse_power(struct sfp *sfp)
}
}
+ if (power_mW <= 1000) {
+ /* Modules below 1W do not require a power change sequence */
+ sfp->module_power_mW = power_mW;
+ return 0;
+ }
+
+ if (!supports_a2) {
+ /* The module power level is below the host maximum and the
+ * module appears not to implement bus address 0xa2, so assume
+ * that the module powers up in the indicated mode.
+ */
+ return 0;
+ }
+
/* If the module requires a higher power mode, but also requires
* an address change sequence, warn the user that the module may
* not be functional.
*/
- if (sfp->id.ext.diagmon & SFP_DIAGMON_ADDRMODE && power_mW > 1000) {
+ if (sfp->id.ext.diagmon & SFP_DIAGMON_ADDRMODE) {
dev_warn(sfp->dev,
"Address Change Sequence not supported but module requires %u.%uW, module may not be functional\n",
power_mW / 1000, (power_mW / 100) % 10);
diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
index fb52cd175b45..829d6ada1704 100644
--- a/drivers/net/ppp/ppp_generic.c
+++ b/drivers/net/ppp/ppp_generic.c
@@ -69,6 +69,8 @@
#define MPHDRLEN 6 /* multilink protocol header length */
#define MPHDRLEN_SSN 4 /* ditto with short sequence numbers */
+#define PPP_PROTO_LEN 2
+
/*
* An instance of /dev/ppp can be associated with either a ppp
* interface unit or a ppp channel. In both cases, file->private_data
@@ -497,6 +499,9 @@ static ssize_t ppp_write(struct file *file, const char __user *buf,
if (!pf)
return -ENXIO;
+ /* All PPP packets should start with the 2-byte protocol */
+ if (count < PPP_PROTO_LEN)
+ return -EINVAL;
ret = -ENOMEM;
skb = alloc_skb(count + pf->hdrlen, GFP_KERNEL);
if (!skb)
@@ -1764,7 +1769,7 @@ ppp_send_frame(struct ppp *ppp, struct sk_buff *skb)
}
++ppp->stats64.tx_packets;
- ppp->stats64.tx_bytes += skb->len - 2;
+ ppp->stats64.tx_bytes += skb->len - PPP_PROTO_LEN;
switch (proto) {
case PPP_IP:
diff --git a/drivers/net/usb/mcs7830.c b/drivers/net/usb/mcs7830.c
index 66866bef25df..a31a3b9cbd58 100644
--- a/drivers/net/usb/mcs7830.c
+++ b/drivers/net/usb/mcs7830.c
@@ -108,8 +108,16 @@ static const char driver_name[] = "MOSCHIP usb-ethernet driver";
static int mcs7830_get_reg(struct usbnet *dev, u16 index, u16 size, void *data)
{
- return usbnet_read_cmd(dev, MCS7830_RD_BREQ, MCS7830_RD_BMREQ,
- 0x0000, index, data, size);
+ int ret;
+
+ ret = usbnet_read_cmd(dev, MCS7830_RD_BREQ, MCS7830_RD_BMREQ,
+ 0x0000, index, data, size);
+ if (ret < 0)
+ return ret;
+ else if (ret < size)
+ return -ENODATA;
+
+ return ret;
}
static int mcs7830_set_reg(struct usbnet *dev, u16 index, u16 size, const void *data)
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index f91dabd65ecd..026e7487c45b 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -1961,7 +1961,8 @@ static const struct driver_info smsc95xx_info = {
.bind = smsc95xx_bind,
.unbind = smsc95xx_unbind,
.link_reset = smsc95xx_link_reset,
- .reset = smsc95xx_start_phy,
+ .reset = smsc95xx_reset,
+ .check_connect = smsc95xx_start_phy,
.stop = smsc95xx_stop,
.rx_fixup = smsc95xx_rx_fixup,
.tx_fixup = smsc95xx_tx_fixup,
diff --git a/drivers/net/wireless/ath/ar5523/ar5523.c b/drivers/net/wireless/ath/ar5523/ar5523.c
index 49cc4b7ed516..1baec4b412c8 100644
--- a/drivers/net/wireless/ath/ar5523/ar5523.c
+++ b/drivers/net/wireless/ath/ar5523/ar5523.c
@@ -153,6 +153,10 @@ static void ar5523_cmd_rx_cb(struct urb *urb)
ar5523_err(ar, "Invalid reply to WDCMSG_TARGET_START");
return;
}
+ if (!cmd->odata) {
+ ar5523_err(ar, "Unexpected WDCMSG_TARGET_START reply");
+ return;
+ }
memcpy(cmd->odata, hdr + 1, sizeof(u32));
cmd->olen = sizeof(u32);
cmd->res = 0;
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
index 64c7145b51a2..58e86e662ab8 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -89,6 +89,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = true,
.dynamic_sar_support = false,
},
@@ -124,6 +125,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = true,
.dynamic_sar_support = false,
},
@@ -160,6 +162,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -190,6 +193,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.num_wds_entries = 0x20,
.uart_pin_workaround = true,
.tx_stats_over_pktlog = false,
+ .credit_size_workaround = false,
.bmi_large_size_download = true,
.supports_peer_stats_info = true,
.dynamic_sar_support = true,
@@ -226,6 +230,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -261,6 +266,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -296,6 +302,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -334,6 +341,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = true,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.supports_peer_stats_info = true,
.dynamic_sar_support = true,
@@ -376,6 +384,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -424,6 +433,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -469,6 +479,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -504,6 +515,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -541,6 +553,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = true,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -570,6 +583,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.ast_skid_limit = 0x10,
.num_wds_entries = 0x20,
.uart_pin_workaround = true,
+ .credit_size_workaround = true,
.dynamic_sar_support = false,
},
{
@@ -611,6 +625,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = false,
},
@@ -639,6 +654,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = true,
.hw_filter_reset_required = false,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.dynamic_sar_support = true,
},
@@ -714,6 +730,7 @@ static void ath10k_send_suspend_complete(struct ath10k *ar)
static int ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode)
{
+ bool mtu_workaround = ar->hw_params.credit_size_workaround;
int ret;
u32 param = 0;
@@ -731,7 +748,7 @@ static int ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode)
param |= HI_ACS_FLAGS_SDIO_REDUCE_TX_COMPL_SET;
- if (mode == ATH10K_FIRMWARE_MODE_NORMAL)
+ if (mode == ATH10K_FIRMWARE_MODE_NORMAL && !mtu_workaround)
param |= HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE;
else
param &= ~HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE;
diff --git a/drivers/net/wireless/ath/ath10k/htt_tx.c b/drivers/net/wireless/ath/ath10k/htt_tx.c
index d6b8bdcef416..b793eac2cfac 100644
--- a/drivers/net/wireless/ath/ath10k/htt_tx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_tx.c
@@ -147,6 +147,9 @@ void ath10k_htt_tx_dec_pending(struct ath10k_htt *htt)
htt->num_pending_tx--;
if (htt->num_pending_tx == htt->max_num_pending_tx - 1)
ath10k_mac_tx_unlock(htt->ar, ATH10K_TX_PAUSE_Q_FULL);
+
+ if (htt->num_pending_tx == 0)
+ wake_up(&htt->empty_tx_wq);
}
int ath10k_htt_tx_inc_pending(struct ath10k_htt *htt)
diff --git a/drivers/net/wireless/ath/ath10k/hw.h b/drivers/net/wireless/ath/ath10k/hw.h
index 6b03c7787e36..591ef7416b61 100644
--- a/drivers/net/wireless/ath/ath10k/hw.h
+++ b/drivers/net/wireless/ath/ath10k/hw.h
@@ -618,6 +618,9 @@ struct ath10k_hw_params {
*/
bool uart_pin_workaround;
+ /* Workaround for the credit size calculation */
+ bool credit_size_workaround;
+
/* tx stats support over pktlog */
bool tx_stats_over_pktlog;
diff --git a/drivers/net/wireless/ath/ath10k/txrx.c b/drivers/net/wireless/ath/ath10k/txrx.c
index 7c9ea0c073d8..6f8b64218894 100644
--- a/drivers/net/wireless/ath/ath10k/txrx.c
+++ b/drivers/net/wireless/ath/ath10k/txrx.c
@@ -82,8 +82,6 @@ int ath10k_txrx_tx_unref(struct ath10k_htt *htt,
flags = skb_cb->flags;
ath10k_htt_tx_free_msdu_id(htt, tx_done->msdu_id);
ath10k_htt_tx_dec_pending(htt);
- if (htt->num_pending_tx == 0)
- wake_up(&htt->empty_tx_wq);
spin_unlock_bh(&htt->tx_lock);
rcu_read_lock();
diff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c
index 8c9c781afc3e..3fb0aa000825 100644
--- a/drivers/net/wireless/ath/ath11k/ahb.c
+++ b/drivers/net/wireless/ath/ath11k/ahb.c
@@ -175,8 +175,11 @@ static void __ath11k_ahb_ext_irq_disable(struct ath11k_base *ab)
ath11k_ahb_ext_grp_disable(irq_grp);
- napi_synchronize(&irq_grp->napi);
- napi_disable(&irq_grp->napi);
+ if (irq_grp->napi_enabled) {
+ napi_synchronize(&irq_grp->napi);
+ napi_disable(&irq_grp->napi);
+ irq_grp->napi_enabled = false;
+ }
}
}
@@ -206,13 +209,13 @@ static void ath11k_ahb_clearbit32(struct ath11k_base *ab, u8 bit, u32 offset)
static void ath11k_ahb_ce_irq_enable(struct ath11k_base *ab, u16 ce_id)
{
- const struct ce_pipe_config *ce_config;
+ const struct ce_attr *ce_attr;
- ce_config = &ab->hw_params.target_ce_config[ce_id];
- if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_OUT)
+ ce_attr = &ab->hw_params.host_ce_config[ce_id];
+ if (ce_attr->src_nentries)
ath11k_ahb_setbit32(ab, ce_id, CE_HOST_IE_ADDRESS);
- if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_IN) {
+ if (ce_attr->dest_nentries) {
ath11k_ahb_setbit32(ab, ce_id, CE_HOST_IE_2_ADDRESS);
ath11k_ahb_setbit32(ab, ce_id + CE_HOST_IE_3_SHIFT,
CE_HOST_IE_3_ADDRESS);
@@ -221,13 +224,13 @@ static void ath11k_ahb_ce_irq_enable(struct ath11k_base *ab, u16 ce_id)
static void ath11k_ahb_ce_irq_disable(struct ath11k_base *ab, u16 ce_id)
{
- const struct ce_pipe_config *ce_config;
+ const struct ce_attr *ce_attr;
- ce_config = &ab->hw_params.target_ce_config[ce_id];
- if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_OUT)
+ ce_attr = &ab->hw_params.host_ce_config[ce_id];
+ if (ce_attr->src_nentries)
ath11k_ahb_clearbit32(ab, ce_id, CE_HOST_IE_ADDRESS);
- if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_IN) {
+ if (ce_attr->dest_nentries) {
ath11k_ahb_clearbit32(ab, ce_id, CE_HOST_IE_2_ADDRESS);
ath11k_ahb_clearbit32(ab, ce_id + CE_HOST_IE_3_SHIFT,
CE_HOST_IE_3_ADDRESS);
@@ -300,7 +303,10 @@ static void ath11k_ahb_ext_irq_enable(struct ath11k_base *ab)
for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) {
struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i];
- napi_enable(&irq_grp->napi);
+ if (!irq_grp->napi_enabled) {
+ napi_enable(&irq_grp->napi);
+ irq_grp->napi_enabled = true;
+ }
ath11k_ahb_ext_grp_enable(irq_grp);
}
}
diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
index 969bf1a590d9..7dcf6b13f794 100644
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -347,11 +347,26 @@ static int ath11k_core_create_board_name(struct ath11k_base *ab, char *name,
scnprintf(variant, sizeof(variant), ",variant=%s",
ab->qmi.target.bdf_ext);
- scnprintf(name, name_len,
- "bus=%s,qmi-chip-id=%d,qmi-board-id=%d%s",
- ath11k_bus_str(ab->hif.bus),
- ab->qmi.target.chip_id,
- ab->qmi.target.board_id, variant);
+ switch (ab->id.bdf_search) {
+ case ATH11K_BDF_SEARCH_BUS_AND_BOARD:
+ scnprintf(name, name_len,
+ "bus=%s,vendor=%04x,device=%04x,subsystem-vendor=%04x,subsystem-device=%04x,qmi-chip-id=%d,qmi-board-id=%d%s",
+ ath11k_bus_str(ab->hif.bus),
+ ab->id.vendor, ab->id.device,
+ ab->id.subsystem_vendor,
+ ab->id.subsystem_device,
+ ab->qmi.target.chip_id,
+ ab->qmi.target.board_id,
+ variant);
+ break;
+ default:
+ scnprintf(name, name_len,
+ "bus=%s,qmi-chip-id=%d,qmi-board-id=%d%s",
+ ath11k_bus_str(ab->hif.bus),
+ ab->qmi.target.chip_id,
+ ab->qmi.target.board_id, variant);
+ break;
+ }
ath11k_dbg(ab, ATH11K_DBG_BOOT, "boot using board name '%s'\n", name);
@@ -588,7 +603,7 @@ static int ath11k_core_fetch_board_data_api_1(struct ath11k_base *ab,
return 0;
}
-#define BOARD_NAME_SIZE 100
+#define BOARD_NAME_SIZE 200
int ath11k_core_fetch_bdf(struct ath11k_base *ab, struct ath11k_board_data *bd)
{
char boardname[BOARD_NAME_SIZE];
diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
index 018fb2385f2a..caa8f6eba009 100644
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -47,6 +47,11 @@ enum ath11k_supported_bw {
ATH11K_BW_160 = 3,
};
+enum ath11k_bdf_search {
+ ATH11K_BDF_SEARCH_DEFAULT,
+ ATH11K_BDF_SEARCH_BUS_AND_BOARD,
+};
+
enum wme_ac {
WME_AC_BE,
WME_AC_BK,
@@ -132,6 +137,7 @@ struct ath11k_ext_irq_grp {
u32 num_irq;
u32 grp_id;
u64 timestamp;
+ bool napi_enabled;
struct napi_struct napi;
struct net_device napi_ndev;
};
@@ -701,7 +707,6 @@ struct ath11k_base {
u32 wlan_init_status;
int irq_num[ATH11K_IRQ_NUM_MAX];
struct ath11k_ext_irq_grp ext_irq_grp[ATH11K_EXT_IRQ_GRP_NUM_MAX];
- struct napi_struct *napi;
struct ath11k_targ_cap target_caps;
u32 ext_service_bitmap[WMI_SERVICE_EXT_BM_SIZE];
bool pdevs_macaddr_valid;
@@ -747,6 +752,14 @@ struct ath11k_base {
struct completion htc_suspend;
+ struct {
+ enum ath11k_bdf_search bdf_search;
+ u32 vendor;
+ u32 device;
+ u32 subsystem_vendor;
+ u32 subsystem_device;
+ } id;
+
/* must be last */
u8 drv_priv[0] __aligned(sizeof(void *));
};
diff --git a/drivers/net/wireless/ath/ath11k/dp.h b/drivers/net/wireless/ath/ath11k/dp.h
index ee768ccce46e..d3e50e34f23d 100644
--- a/drivers/net/wireless/ath/ath11k/dp.h
+++ b/drivers/net/wireless/ath/ath11k/dp.h
@@ -515,7 +515,8 @@ struct htt_ppdu_stats_cfg_cmd {
} __packed;
#define HTT_PPDU_STATS_CFG_MSG_TYPE GENMASK(7, 0)
-#define HTT_PPDU_STATS_CFG_PDEV_ID GENMASK(15, 8)
+#define HTT_PPDU_STATS_CFG_SOC_STATS BIT(8)
+#define HTT_PPDU_STATS_CFG_PDEV_ID GENMASK(15, 9)
#define HTT_PPDU_STATS_CFG_TLV_TYPE_BITMASK GENMASK(31, 16)
enum htt_ppdu_stats_tag_type {
diff --git a/drivers/net/wireless/ath/ath11k/dp_tx.c b/drivers/net/wireless/ath/ath11k/dp_tx.c
index 8bba5234f81f..bb8744ccfa00 100644
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -895,7 +895,7 @@ int ath11k_dp_tx_htt_h2t_ppdu_stats_req(struct ath11k *ar, u32 mask)
cmd->msg = FIELD_PREP(HTT_PPDU_STATS_CFG_MSG_TYPE,
HTT_H2T_MSG_TYPE_PPDU_STATS_CFG);
- pdev_mask = 1 << (i + 1);
+ pdev_mask = 1 << (ar->pdev_idx + i);
cmd->msg |= FIELD_PREP(HTT_PPDU_STATS_CFG_PDEV_ID, pdev_mask);
cmd->msg |= FIELD_PREP(HTT_PPDU_STATS_CFG_TLV_TYPE_BITMASK, mask);
diff --git a/drivers/net/wireless/ath/ath11k/hal.c b/drivers/net/wireless/ath/ath11k/hal.c
index eaa0edca5576..5dbf5596c9e8 100644
--- a/drivers/net/wireless/ath/ath11k/hal.c
+++ b/drivers/net/wireless/ath/ath11k/hal.c
@@ -947,6 +947,7 @@ int ath11k_hal_srng_setup(struct ath11k_base *ab, enum hal_ring_type type,
srng->msi_data = params->msi_data;
srng->initialized = 1;
spin_lock_init(&srng->lock);
+ lockdep_set_class(&srng->lock, hal->srng_key + ring_id);
for (i = 0; i < HAL_SRNG_NUM_REG_GRP; i++) {
srng->hwreg_base[i] = srng_config->reg_start[i] +
@@ -1233,6 +1234,24 @@ static int ath11k_hal_srng_create_config(struct ath11k_base *ab)
return 0;
}
+static void ath11k_hal_register_srng_key(struct ath11k_base *ab)
+{
+ struct ath11k_hal *hal = &ab->hal;
+ u32 ring_id;
+
+ for (ring_id = 0; ring_id < HAL_SRNG_RING_ID_MAX; ring_id++)
+ lockdep_register_key(hal->srng_key + ring_id);
+}
+
+static void ath11k_hal_unregister_srng_key(struct ath11k_base *ab)
+{
+ struct ath11k_hal *hal = &ab->hal;
+ u32 ring_id;
+
+ for (ring_id = 0; ring_id < HAL_SRNG_RING_ID_MAX; ring_id++)
+ lockdep_unregister_key(hal->srng_key + ring_id);
+}
+
int ath11k_hal_srng_init(struct ath11k_base *ab)
{
struct ath11k_hal *hal = &ab->hal;
@@ -1252,6 +1271,8 @@ int ath11k_hal_srng_init(struct ath11k_base *ab)
if (ret)
goto err_free_cont_rdp;
+ ath11k_hal_register_srng_key(ab);
+
return 0;
err_free_cont_rdp:
@@ -1266,6 +1287,7 @@ void ath11k_hal_srng_deinit(struct ath11k_base *ab)
{
struct ath11k_hal *hal = &ab->hal;
+ ath11k_hal_unregister_srng_key(ab);
ath11k_hal_free_cont_rdp(ab);
ath11k_hal_free_cont_wrp(ab);
kfree(hal->srng_config);
diff --git a/drivers/net/wireless/ath/ath11k/hal.h b/drivers/net/wireless/ath/ath11k/hal.h
index 35ed3a14e200..7fdcd8bbf7e9 100644
--- a/drivers/net/wireless/ath/ath11k/hal.h
+++ b/drivers/net/wireless/ath/ath11k/hal.h
@@ -901,6 +901,8 @@ struct ath11k_hal {
/* shadow register configuration */
u32 shadow_reg_addr[HAL_SHADOW_NUM_REGS];
int num_shadow_reg_configured;
+
+ struct lock_class_key srng_key[HAL_SRNG_RING_ID_MAX];
};
u32 ath11k_hal_reo_qdesc_size(u32 ba_window_size, u8 tid);
diff --git a/drivers/net/wireless/ath/ath11k/hw.c b/drivers/net/wireless/ath/ath11k/hw.c
index d9596903b0a5..3e92cc7cfe4c 100644
--- a/drivers/net/wireless/ath/ath11k/hw.c
+++ b/drivers/net/wireless/ath/ath11k/hw.c
@@ -1015,8 +1015,6 @@ const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_ipq8074 = {
const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_qca6390 = {
.tx = {
ATH11K_TX_RING_MASK_0,
- ATH11K_TX_RING_MASK_1,
- ATH11K_TX_RING_MASK_2,
},
.rx_mon_status = {
0, 0, 0, 0,
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 89a64ebd620f..3834be158705 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: BSD-3-Clause-Clear
/*
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <net/mac80211.h>
@@ -767,11 +768,15 @@ static int ath11k_mac_setup_bcn_tmpl(struct ath11k_vif *arvif)
if (cfg80211_find_ie(WLAN_EID_RSN, ies, (skb_tail_pointer(bcn) - ies)))
arvif->rsnie_present = true;
+ else
+ arvif->rsnie_present = false;
if (cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT,
WLAN_OUI_TYPE_MICROSOFT_WPA,
ies, (skb_tail_pointer(bcn) - ies)))
arvif->wpaie_present = true;
+ else
+ arvif->wpaie_present = false;
ret = ath11k_wmi_bcn_tmpl(ar, arvif->vdev_id, &offs, bcn);
@@ -2576,9 +2581,12 @@ static int ath11k_mac_op_hw_scan(struct ieee80211_hw *hw,
arg.scan_id = ATH11K_SCAN_ID;
if (req->ie_len) {
+ arg.extraie.ptr = kmemdup(req->ie, req->ie_len, GFP_KERNEL);
+ if (!arg.extraie.ptr) {
+ ret = -ENOMEM;
+ goto exit;
+ }
arg.extraie.len = req->ie_len;
- arg.extraie.ptr = kzalloc(req->ie_len, GFP_KERNEL);
- memcpy(arg.extraie.ptr, req->ie, req->ie_len);
}
if (req->n_ssids) {
@@ -2655,9 +2663,7 @@ static int ath11k_install_key(struct ath11k_vif *arvif,
return 0;
if (cmd == DISABLE_KEY) {
- /* TODO: Check if FW expects value other than NONE for del */
- /* arg.key_cipher = WMI_CIPHER_NONE; */
- arg.key_len = 0;
+ arg.key_cipher = WMI_CIPHER_NONE;
arg.key_data = NULL;
goto install;
}
@@ -2789,7 +2795,7 @@ static int ath11k_mac_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
/* flush the fragments cache during key (re)install to
* ensure all frags in the new frag list belong to the same key.
*/
- if (peer && cmd == SET_KEY)
+ if (peer && sta && cmd == SET_KEY)
ath11k_peer_frags_flush(ar, peer);
spin_unlock_bh(&ab->base_lock);
@@ -4131,23 +4137,32 @@ static int __ath11k_set_antenna(struct ath11k *ar, u32 tx_ant, u32 rx_ant)
return 0;
}
-int ath11k_mac_tx_mgmt_pending_free(int buf_id, void *skb, void *ctx)
+static void ath11k_mac_tx_mgmt_free(struct ath11k *ar, int buf_id)
{
- struct sk_buff *msdu = skb;
+ struct sk_buff *msdu;
struct ieee80211_tx_info *info;
- struct ath11k *ar = ctx;
- struct ath11k_base *ab = ar->ab;
spin_lock_bh(&ar->txmgmt_idr_lock);
- idr_remove(&ar->txmgmt_idr, buf_id);
+ msdu = idr_remove(&ar->txmgmt_idr, buf_id);
spin_unlock_bh(&ar->txmgmt_idr_lock);
- dma_unmap_single(ab->dev, ATH11K_SKB_CB(msdu)->paddr, msdu->len,
+
+ if (!msdu)
+ return;
+
+ dma_unmap_single(ar->ab->dev, ATH11K_SKB_CB(msdu)->paddr, msdu->len,
DMA_TO_DEVICE);
info = IEEE80211_SKB_CB(msdu);
memset(&info->status, 0, sizeof(info->status));
ieee80211_free_txskb(ar->hw, msdu);
+}
+
+int ath11k_mac_tx_mgmt_pending_free(int buf_id, void *skb, void *ctx)
+{
+ struct ath11k *ar = ctx;
+
+ ath11k_mac_tx_mgmt_free(ar, buf_id);
return 0;
}
@@ -4156,17 +4171,10 @@ static int ath11k_mac_vif_txmgmt_idr_remove(int buf_id, void *skb, void *ctx)
{
struct ieee80211_vif *vif = ctx;
struct ath11k_skb_cb *skb_cb = ATH11K_SKB_CB((struct sk_buff *)skb);
- struct sk_buff *msdu = skb;
struct ath11k *ar = skb_cb->ar;
- struct ath11k_base *ab = ar->ab;
- if (skb_cb->vif == vif) {
- spin_lock_bh(&ar->txmgmt_idr_lock);
- idr_remove(&ar->txmgmt_idr, buf_id);
- spin_unlock_bh(&ar->txmgmt_idr_lock);
- dma_unmap_single(ab->dev, skb_cb->paddr, msdu->len,
- DMA_TO_DEVICE);
- }
+ if (skb_cb->vif == vif)
+ ath11k_mac_tx_mgmt_free(ar, buf_id);
return 0;
}
@@ -4181,6 +4189,8 @@ static int ath11k_mac_mgmt_tx_wmi(struct ath11k *ar, struct ath11k_vif *arvif,
int buf_id;
int ret;
+ ATH11K_SKB_CB(skb)->ar = ar;
+
spin_lock_bh(&ar->txmgmt_idr_lock);
buf_id = idr_alloc(&ar->txmgmt_idr, skb, 0,
ATH11K_TX_MGMT_NUM_PENDING_MAX, GFP_ATOMIC);
diff --git a/drivers/net/wireless/ath/ath11k/pci.c b/drivers/net/wireless/ath/ath11k/pci.c
index 5abb38cc3b55..54ce08f1c6e0 100644
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -632,8 +632,11 @@ static void __ath11k_pci_ext_irq_disable(struct ath11k_base *sc)
ath11k_pci_ext_grp_disable(irq_grp);
- napi_synchronize(&irq_grp->napi);
- napi_disable(&irq_grp->napi);
+ if (irq_grp->napi_enabled) {
+ napi_synchronize(&irq_grp->napi);
+ napi_disable(&irq_grp->napi);
+ irq_grp->napi_enabled = false;
+ }
}
}
@@ -652,7 +655,10 @@ static void ath11k_pci_ext_irq_enable(struct ath11k_base *ab)
for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) {
struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i];
- napi_enable(&irq_grp->napi);
+ if (!irq_grp->napi_enabled) {
+ napi_enable(&irq_grp->napi);
+ irq_grp->napi_enabled = true;
+ }
ath11k_pci_ext_grp_enable(irq_grp);
}
}
@@ -1218,6 +1224,15 @@ static int ath11k_pci_probe(struct pci_dev *pdev,
goto err_free_core;
}
+ ath11k_dbg(ab, ATH11K_DBG_BOOT, "pci probe %04x:%04x %04x:%04x\n",
+ pdev->vendor, pdev->device,
+ pdev->subsystem_vendor, pdev->subsystem_device);
+
+ ab->id.vendor = pdev->vendor;
+ ab->id.device = pdev->device;
+ ab->id.subsystem_vendor = pdev->subsystem_vendor;
+ ab->id.subsystem_device = pdev->subsystem_device;
+
switch (pci_dev->device) {
case QCA6390_DEVICE_ID:
ath11k_pci_read_hw_version(ab, &soc_hw_version_major,
@@ -1240,6 +1255,7 @@ static int ath11k_pci_probe(struct pci_dev *pdev,
ab->hw_rev = ATH11K_HW_QCN9074_HW10;
break;
case WCN6855_DEVICE_ID:
+ ab->id.bdf_search = ATH11K_BDF_SEARCH_BUS_AND_BOARD;
ath11k_pci_read_hw_version(ab, &soc_hw_version_major,
&soc_hw_version_minor);
switch (soc_hw_version_major) {
diff --git a/drivers/net/wireless/ath/ath11k/qmi.c b/drivers/net/wireless/ath/ath11k/qmi.c
index 4c5071b7d11d..e4a65513a1bf 100644
--- a/drivers/net/wireless/ath/ath11k/qmi.c
+++ b/drivers/net/wireless/ath/ath11k/qmi.c
@@ -1770,7 +1770,7 @@ static int ath11k_qmi_alloc_target_mem_chunk(struct ath11k_base *ab)
chunk->vaddr = dma_alloc_coherent(ab->dev,
chunk->size,
&chunk->paddr,
- GFP_KERNEL);
+ GFP_KERNEL | __GFP_NOWARN);
if (!chunk->vaddr) {
if (ab->qmi.mem_seg_count <= ATH11K_QMI_FW_MEM_REQ_SEGMENT_CNT) {
ath11k_dbg(ab, ATH11K_DBG_QMI,
diff --git a/drivers/net/wireless/ath/ath11k/reg.c b/drivers/net/wireless/ath/ath11k/reg.c
index 92c59009a8ac..f793324ad0b7 100644
--- a/drivers/net/wireless/ath/ath11k/reg.c
+++ b/drivers/net/wireless/ath/ath11k/reg.c
@@ -459,6 +459,9 @@ ath11k_reg_adjust_bw(u16 start_freq, u16 end_freq, u16 max_bw)
{
u16 bw;
+ if (end_freq <= start_freq)
+ return 0;
+
bw = end_freq - start_freq;
bw = min_t(u16, bw, max_bw);
@@ -466,8 +469,10 @@ ath11k_reg_adjust_bw(u16 start_freq, u16 end_freq, u16 max_bw)
bw = 80;
else if (bw >= 40 && bw < 80)
bw = 40;
- else if (bw < 40)
+ else if (bw >= 20 && bw < 40)
bw = 20;
+ else
+ bw = 0;
return bw;
}
@@ -491,73 +496,77 @@ ath11k_reg_update_weather_radar_band(struct ath11k_base *ab,
struct cur_reg_rule *reg_rule,
u8 *rule_idx, u32 flags, u16 max_bw)
{
+ u32 start_freq;
u32 end_freq;
u16 bw;
u8 i;
i = *rule_idx;
+ /* there might be situations when even the input rule must be dropped */
+ i--;
+
+ /* frequencies below weather radar */
bw = ath11k_reg_adjust_bw(reg_rule->start_freq,
ETSI_WEATHER_RADAR_BAND_LOW, max_bw);
+ if (bw > 0) {
+ i++;
- ath11k_reg_update_rule(regd->reg_rules + i, reg_rule->start_freq,
- ETSI_WEATHER_RADAR_BAND_LOW, bw,
- reg_rule->ant_gain, reg_rule->reg_power,
- flags);
+ ath11k_reg_update_rule(regd->reg_rules + i,
+ reg_rule->start_freq,
+ ETSI_WEATHER_RADAR_BAND_LOW, bw,
+ reg_rule->ant_gain, reg_rule->reg_power,
+ flags);
- ath11k_dbg(ab, ATH11K_DBG_REG,
- "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
- i + 1, reg_rule->start_freq, ETSI_WEATHER_RADAR_BAND_LOW,
- bw, reg_rule->ant_gain, reg_rule->reg_power,
- regd->reg_rules[i].dfs_cac_ms,
- flags);
-
- if (reg_rule->end_freq > ETSI_WEATHER_RADAR_BAND_HIGH)
- end_freq = ETSI_WEATHER_RADAR_BAND_HIGH;
- else
- end_freq = reg_rule->end_freq;
+ ath11k_dbg(ab, ATH11K_DBG_REG,
+ "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
+ i + 1, reg_rule->start_freq,
+ ETSI_WEATHER_RADAR_BAND_LOW, bw, reg_rule->ant_gain,
+ reg_rule->reg_power, regd->reg_rules[i].dfs_cac_ms,
+ flags);
+ }
- bw = ath11k_reg_adjust_bw(ETSI_WEATHER_RADAR_BAND_LOW, end_freq,
- max_bw);
+ /* weather radar frequencies */
+ start_freq = max_t(u32, reg_rule->start_freq,
+ ETSI_WEATHER_RADAR_BAND_LOW);
+ end_freq = min_t(u32, reg_rule->end_freq, ETSI_WEATHER_RADAR_BAND_HIGH);
- i++;
+ bw = ath11k_reg_adjust_bw(start_freq, end_freq, max_bw);
+ if (bw > 0) {
+ i++;
- ath11k_reg_update_rule(regd->reg_rules + i,
- ETSI_WEATHER_RADAR_BAND_LOW, end_freq, bw,
- reg_rule->ant_gain, reg_rule->reg_power,
- flags);
+ ath11k_reg_update_rule(regd->reg_rules + i, start_freq,
+ end_freq, bw, reg_rule->ant_gain,
+ reg_rule->reg_power, flags);
- regd->reg_rules[i].dfs_cac_ms = ETSI_WEATHER_RADAR_BAND_CAC_TIMEOUT;
+ regd->reg_rules[i].dfs_cac_ms = ETSI_WEATHER_RADAR_BAND_CAC_TIMEOUT;
- ath11k_dbg(ab, ATH11K_DBG_REG,
- "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
- i + 1, ETSI_WEATHER_RADAR_BAND_LOW, end_freq,
- bw, reg_rule->ant_gain, reg_rule->reg_power,
- regd->reg_rules[i].dfs_cac_ms,
- flags);
-
- if (end_freq == reg_rule->end_freq) {
- regd->n_reg_rules--;
- *rule_idx = i;
- return;
+ ath11k_dbg(ab, ATH11K_DBG_REG,
+ "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
+ i + 1, start_freq, end_freq, bw,
+ reg_rule->ant_gain, reg_rule->reg_power,
+ regd->reg_rules[i].dfs_cac_ms, flags);
}
+ /* frequencies above weather radar */
bw = ath11k_reg_adjust_bw(ETSI_WEATHER_RADAR_BAND_HIGH,
reg_rule->end_freq, max_bw);
+ if (bw > 0) {
+ i++;
- i++;
-
- ath11k_reg_update_rule(regd->reg_rules + i, ETSI_WEATHER_RADAR_BAND_HIGH,
- reg_rule->end_freq, bw,
- reg_rule->ant_gain, reg_rule->reg_power,
- flags);
+ ath11k_reg_update_rule(regd->reg_rules + i,
+ ETSI_WEATHER_RADAR_BAND_HIGH,
+ reg_rule->end_freq, bw,
+ reg_rule->ant_gain, reg_rule->reg_power,
+ flags);
- ath11k_dbg(ab, ATH11K_DBG_REG,
- "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
- i + 1, ETSI_WEATHER_RADAR_BAND_HIGH, reg_rule->end_freq,
- bw, reg_rule->ant_gain, reg_rule->reg_power,
- regd->reg_rules[i].dfs_cac_ms,
- flags);
+ ath11k_dbg(ab, ATH11K_DBG_REG,
+ "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
+ i + 1, ETSI_WEATHER_RADAR_BAND_HIGH,
+ reg_rule->end_freq, bw, reg_rule->ant_gain,
+ reg_rule->reg_power, regd->reg_rules[i].dfs_cac_ms,
+ flags);
+ }
*rule_idx = i;
}
diff --git a/drivers/net/wireless/ath/ath11k/wmi.c b/drivers/net/wireless/ath/ath11k/wmi.c
index c22ec921b2e9..b11070cf159c 100644
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -1671,7 +1671,8 @@ int ath11k_wmi_vdev_install_key(struct ath11k *ar,
tlv = (struct wmi_tlv *)(skb->data + sizeof(*cmd));
tlv->header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_ARRAY_BYTE) |
FIELD_PREP(WMI_TLV_LEN, key_len_aligned);
- memcpy(tlv->value, (u8 *)arg->key_data, key_len_aligned);
+ if (arg->key_data)
+ memcpy(tlv->value, (u8 *)arg->key_data, key_len_aligned);
ret = ath11k_wmi_cmd_send(wmi, skb, WMI_VDEV_INSTALL_KEY_CMDID);
if (ret) {
@@ -5852,7 +5853,7 @@ static int ath11k_reg_chan_list_event(struct ath11k_base *ab, struct sk_buff *sk
ar = ab->pdevs[pdev_idx].ar;
kfree(ab->new_regd[pdev_idx]);
ab->new_regd[pdev_idx] = regd;
- ieee80211_queue_work(ar->hw, &ar->regd_update_work);
+ queue_work(ab->workqueue, &ar->regd_update_work);
} else {
/* This regd would be applied during mac registration and is
* held constant throughout for regd intersection purpose
diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
index 860da13bfb6a..f06eec99de68 100644
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
@@ -590,6 +590,13 @@ static void ath9k_hif_usb_rx_stream(struct hif_device_usb *hif_dev,
return;
}
+ if (pkt_len > 2 * MAX_RX_BUF_SIZE) {
+ dev_err(&hif_dev->udev->dev,
+ "ath9k_htc: invalid pkt_len (%x)\n", pkt_len);
+ RX_STAT_INC(skb_dropped);
+ return;
+ }
+
pad_len = 4 - (pkt_len & 0x3);
if (pad_len == 4)
pad_len = 0;
diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h
index 0a1634238e67..6b45e63fae4b 100644
--- a/drivers/net/wireless/ath/ath9k/htc.h
+++ b/drivers/net/wireless/ath/ath9k/htc.h
@@ -281,6 +281,7 @@ struct ath9k_htc_rxbuf {
struct ath9k_htc_rx {
struct list_head rxbuf;
spinlock_t rxbuflock;
+ bool initialized;
};
#define ATH9K_HTC_TX_CLEANUP_INTERVAL 50 /* ms */
@@ -305,6 +306,7 @@ struct ath9k_htc_tx {
DECLARE_BITMAP(tx_slot, MAX_TX_BUF_NUM);
struct timer_list cleanup_timer;
spinlock_t tx_lock;
+ bool initialized;
};
struct ath9k_htc_tx_ctl {
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
index 8e69e8989f6d..6a850a0bfa8a 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
@@ -813,6 +813,11 @@ int ath9k_tx_init(struct ath9k_htc_priv *priv)
skb_queue_head_init(&priv->tx.data_vi_queue);
skb_queue_head_init(&priv->tx.data_vo_queue);
skb_queue_head_init(&priv->tx.tx_failed);
+
+ /* Allow ath9k_wmi_event_tasklet(WMI_TXSTATUS_EVENTID) to operate. */
+ smp_wmb();
+ priv->tx.initialized = true;
+
return 0;
}
@@ -1130,6 +1135,10 @@ void ath9k_htc_rxep(void *drv_priv, struct sk_buff *skb,
struct ath9k_htc_rxbuf *rxbuf = NULL, *tmp_buf = NULL;
unsigned long flags;
+ /* Check if ath9k_rx_init() completed. */
+ if (!data_race(priv->rx.initialized))
+ goto err;
+
spin_lock_irqsave(&priv->rx.rxbuflock, flags);
list_for_each_entry(tmp_buf, &priv->rx.rxbuf, list) {
if (!tmp_buf->in_process) {
@@ -1185,6 +1194,10 @@ int ath9k_rx_init(struct ath9k_htc_priv *priv)
list_add_tail(&rxbuf->list, &priv->rx.rxbuf);
}
+ /* Allow ath9k_htc_rxep() to operate. */
+ smp_wmb();
+ priv->rx.initialized = true;
+
return 0;
err:
diff --git a/drivers/net/wireless/ath/ath9k/wmi.c b/drivers/net/wireless/ath/ath9k/wmi.c
index fe29ad4b9023..f315c54bd3ac 100644
--- a/drivers/net/wireless/ath/ath9k/wmi.c
+++ b/drivers/net/wireless/ath/ath9k/wmi.c
@@ -169,6 +169,10 @@ void ath9k_wmi_event_tasklet(struct tasklet_struct *t)
&wmi->drv_priv->fatal_work);
break;
case WMI_TXSTATUS_EVENTID:
+ /* Check if ath9k_tx_init() completed. */
+ if (!data_race(priv->tx.initialized))
+ break;
+
spin_lock_bh(&priv->tx.tx_lock);
if (priv->tx.flags & ATH9K_HTC_OP_TX_DRAIN) {
spin_unlock_bh(&priv->tx.tx_lock);
diff --git a/drivers/net/wireless/ath/wcn36xx/dxe.c b/drivers/net/wireless/ath/wcn36xx/dxe.c
index aff04ef66266..e1a35c2eadb6 100644
--- a/drivers/net/wireless/ath/wcn36xx/dxe.c
+++ b/drivers/net/wireless/ath/wcn36xx/dxe.c
@@ -272,6 +272,21 @@ static int wcn36xx_dxe_enable_ch_int(struct wcn36xx *wcn, u16 wcn_ch)
return 0;
}
+static void wcn36xx_dxe_disable_ch_int(struct wcn36xx *wcn, u16 wcn_ch)
+{
+ int reg_data = 0;
+
+ wcn36xx_dxe_read_register(wcn,
+ WCN36XX_DXE_INT_MASK_REG,
+ ®_data);
+
+ reg_data &= ~wcn_ch;
+
+ wcn36xx_dxe_write_register(wcn,
+ WCN36XX_DXE_INT_MASK_REG,
+ (int)reg_data);
+}
+
static int wcn36xx_dxe_fill_skb(struct device *dev,
struct wcn36xx_dxe_ctl *ctl,
gfp_t gfp)
@@ -869,7 +884,6 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
WCN36XX_DXE_WQ_TX_L);
wcn36xx_dxe_read_register(wcn, WCN36XX_DXE_REG_CH_EN, ®_data);
- wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_L);
/***************************************/
/* Init descriptors for TX HIGH channel */
@@ -893,9 +907,6 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
wcn36xx_dxe_read_register(wcn, WCN36XX_DXE_REG_CH_EN, ®_data);
- /* Enable channel interrupts */
- wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_H);
-
/***************************************/
/* Init descriptors for RX LOW channel */
/***************************************/
@@ -905,7 +916,6 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
goto out_err_rxl_ch;
}
-
/* For RX we need to preallocated buffers */
wcn36xx_dxe_ch_alloc_skb(wcn, &wcn->dxe_rx_l_ch);
@@ -928,9 +938,6 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
WCN36XX_DXE_REG_CTL_RX_L,
WCN36XX_DXE_CH_DEFAULT_CTL_RX_L);
- /* Enable channel interrupts */
- wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_L);
-
/***************************************/
/* Init descriptors for RX HIGH channel */
/***************************************/
@@ -962,15 +969,18 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
WCN36XX_DXE_REG_CTL_RX_H,
WCN36XX_DXE_CH_DEFAULT_CTL_RX_H);
- /* Enable channel interrupts */
- wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_H);
-
ret = wcn36xx_dxe_request_irqs(wcn);
if (ret < 0)
goto out_err_irq;
timer_setup(&wcn->tx_ack_timer, wcn36xx_dxe_tx_timer, 0);
+ /* Enable channel interrupts */
+ wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_L);
+ wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_H);
+ wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_L);
+ wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_H);
+
return 0;
out_err_irq:
@@ -987,6 +997,14 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
void wcn36xx_dxe_deinit(struct wcn36xx *wcn)
{
+ int reg_data = 0;
+
+ /* Disable channel interrupts */
+ wcn36xx_dxe_disable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_H);
+ wcn36xx_dxe_disable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_L);
+ wcn36xx_dxe_disable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_H);
+ wcn36xx_dxe_disable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_L);
+
free_irq(wcn->tx_irq, wcn);
free_irq(wcn->rx_irq, wcn);
del_timer(&wcn->tx_ack_timer);
@@ -996,6 +1014,15 @@ void wcn36xx_dxe_deinit(struct wcn36xx *wcn)
wcn->tx_ack_skb = NULL;
}
+ /* Put the DXE block into reset before freeing memory */
+ reg_data = WCN36XX_DXE_REG_RESET;
+ wcn36xx_dxe_write_register(wcn, WCN36XX_DXE_REG_CSR_RESET, reg_data);
+
wcn36xx_dxe_ch_free_skbs(wcn, &wcn->dxe_rx_l_ch);
wcn36xx_dxe_ch_free_skbs(wcn, &wcn->dxe_rx_h_ch);
+
+ wcn36xx_dxe_deinit_descs(wcn->dev, &wcn->dxe_tx_l_ch);
+ wcn36xx_dxe_deinit_descs(wcn->dev, &wcn->dxe_tx_h_ch);
+ wcn36xx_dxe_deinit_descs(wcn->dev, &wcn->dxe_rx_l_ch);
+ wcn36xx_dxe_deinit_descs(wcn->dev, &wcn->dxe_rx_h_ch);
}
diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index 5d82aca370a7..cf9e1396bd04 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -400,6 +400,7 @@ static void wcn36xx_change_opchannel(struct wcn36xx *wcn, int ch)
static int wcn36xx_config(struct ieee80211_hw *hw, u32 changed)
{
struct wcn36xx *wcn = hw->priv;
+ int ret;
wcn36xx_dbg(WCN36XX_DBG_MAC, "mac config changed 0x%08x\n", changed);
@@ -415,17 +416,31 @@ static int wcn36xx_config(struct ieee80211_hw *hw, u32 changed)
* want to receive/transmit regular data packets, then
* simply stop the scan session and exit PS mode.
*/
- wcn36xx_smd_finish_scan(wcn, HAL_SYS_MODE_SCAN,
- wcn->sw_scan_vif);
- wcn->sw_scan_channel = 0;
+ if (wcn->sw_scan_channel)
+ wcn36xx_smd_end_scan(wcn, wcn->sw_scan_channel);
+ if (wcn->sw_scan_init) {
+ wcn36xx_smd_finish_scan(wcn, HAL_SYS_MODE_SCAN,
+ wcn->sw_scan_vif);
+ }
} else if (wcn->sw_scan) {
/* A scan is ongoing, do not change the operating
* channel, but start a scan session on the channel.
*/
- wcn36xx_smd_init_scan(wcn, HAL_SYS_MODE_SCAN,
- wcn->sw_scan_vif);
+ if (wcn->sw_scan_channel)
+ wcn36xx_smd_end_scan(wcn, wcn->sw_scan_channel);
+ if (!wcn->sw_scan_init) {
+ /* This can fail if we are unable to notify the
+ * operating channel.
+ */
+ ret = wcn36xx_smd_init_scan(wcn,
+ HAL_SYS_MODE_SCAN,
+ wcn->sw_scan_vif);
+ if (ret) {
+ mutex_unlock(&wcn->conf_mutex);
+ return -EIO;
+ }
+ }
wcn36xx_smd_start_scan(wcn, ch);
- wcn->sw_scan_channel = ch;
} else {
wcn36xx_change_opchannel(wcn, ch);
}
@@ -713,7 +728,12 @@ static void wcn36xx_sw_scan_complete(struct ieee80211_hw *hw,
struct wcn36xx *wcn = hw->priv;
/* ensure that any scan session is finished */
- wcn36xx_smd_finish_scan(wcn, HAL_SYS_MODE_SCAN, wcn->sw_scan_vif);
+ if (wcn->sw_scan_channel)
+ wcn36xx_smd_end_scan(wcn, wcn->sw_scan_channel);
+ if (wcn->sw_scan_init) {
+ wcn36xx_smd_finish_scan(wcn, HAL_SYS_MODE_SCAN,
+ wcn->sw_scan_vif);
+ }
wcn->sw_scan = false;
wcn->sw_scan_opchannel = 0;
}
diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 70bffe3d87a1..c056fae1d641 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -721,6 +721,7 @@ int wcn36xx_smd_init_scan(struct wcn36xx *wcn, enum wcn36xx_hal_sys_mode mode,
wcn36xx_err("hal_init_scan response failed err=%d\n", ret);
goto out;
}
+ wcn->sw_scan_init = true;
out:
mutex_unlock(&wcn->hal_mutex);
return ret;
@@ -751,6 +752,7 @@ int wcn36xx_smd_start_scan(struct wcn36xx *wcn, u8 scan_channel)
wcn36xx_err("hal_start_scan response failed err=%d\n", ret);
goto out;
}
+ wcn->sw_scan_channel = scan_channel;
out:
mutex_unlock(&wcn->hal_mutex);
return ret;
@@ -781,6 +783,7 @@ int wcn36xx_smd_end_scan(struct wcn36xx *wcn, u8 scan_channel)
wcn36xx_err("hal_end_scan response failed err=%d\n", ret);
goto out;
}
+ wcn->sw_scan_channel = 0;
out:
mutex_unlock(&wcn->hal_mutex);
return ret;
@@ -822,6 +825,7 @@ int wcn36xx_smd_finish_scan(struct wcn36xx *wcn,
wcn36xx_err("hal_finish_scan response failed err=%d\n", ret);
goto out;
}
+ wcn->sw_scan_init = false;
out:
mutex_unlock(&wcn->hal_mutex);
return ret;
@@ -939,7 +943,7 @@ int wcn36xx_smd_update_channel_list(struct wcn36xx *wcn, struct cfg80211_scan_re
INIT_HAL_MSG((*msg_body), WCN36XX_HAL_UPDATE_CHANNEL_LIST_REQ);
- msg_body->num_channel = min_t(u8, req->n_channels, sizeof(msg_body->channels));
+ msg_body->num_channel = min_t(u8, req->n_channels, ARRAY_SIZE(msg_body->channels));
for (i = 0; i < msg_body->num_channel; i++) {
struct wcn36xx_hal_channel_param *param = &msg_body->channels[i];
u32 min_power = WCN36XX_HAL_DEFAULT_MIN_POWER;
@@ -2675,7 +2679,7 @@ static int wcn36xx_smd_missed_beacon_ind(struct wcn36xx *wcn,
wcn36xx_dbg(WCN36XX_DBG_HAL, "beacon missed bss_index %d\n",
tmp->bss_index);
vif = wcn36xx_priv_to_vif(tmp);
- ieee80211_connection_loss(vif);
+ ieee80211_beacon_loss(vif);
}
return 0;
}
@@ -2690,7 +2694,7 @@ static int wcn36xx_smd_missed_beacon_ind(struct wcn36xx *wcn,
wcn36xx_dbg(WCN36XX_DBG_HAL, "beacon missed bss_index %d\n",
rsp->bss_index);
vif = wcn36xx_priv_to_vif(tmp);
- ieee80211_connection_loss(vif);
+ ieee80211_beacon_loss(vif);
return 0;
}
}
diff --git a/drivers/net/wireless/ath/wcn36xx/txrx.c b/drivers/net/wireless/ath/wcn36xx/txrx.c
index bbd7194c82e2..f33e7228a101 100644
--- a/drivers/net/wireless/ath/wcn36xx/txrx.c
+++ b/drivers/net/wireless/ath/wcn36xx/txrx.c
@@ -237,7 +237,6 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
const struct wcn36xx_rate *rate;
struct ieee80211_hdr *hdr;
struct wcn36xx_rx_bd *bd;
- struct ieee80211_supported_band *sband;
u16 fc, sn;
/*
@@ -259,8 +258,6 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
fc = __le16_to_cpu(hdr->frame_control);
sn = IEEE80211_SEQ_TO_SN(__le16_to_cpu(hdr->seq_ctrl));
- status.freq = WCN36XX_CENTER_FREQ(wcn);
- status.band = WCN36XX_BAND(wcn);
status.mactime = 10;
status.signal = -get_rssi0(bd);
status.antenna = 1;
@@ -272,18 +269,36 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
wcn36xx_dbg(WCN36XX_DBG_RX, "status.flags=%x\n", status.flag);
+ if (bd->scan_learn) {
+ /* If packet originate from hardware scanning, extract the
+ * band/channel from bd descriptor.
+ */
+ u8 hwch = (bd->reserved0 << 4) + bd->rx_ch;
+
+ if (bd->rf_band != 1 && hwch <= sizeof(ab_rx_ch_map) && hwch >= 1) {
+ status.band = NL80211_BAND_5GHZ;
+ status.freq = ieee80211_channel_to_frequency(ab_rx_ch_map[hwch - 1],
+ status.band);
+ } else {
+ status.band = NL80211_BAND_2GHZ;
+ status.freq = ieee80211_channel_to_frequency(hwch, status.band);
+ }
+ } else {
+ status.band = WCN36XX_BAND(wcn);
+ status.freq = WCN36XX_CENTER_FREQ(wcn);
+ }
+
if (bd->rate_id < ARRAY_SIZE(wcn36xx_rate_table)) {
rate = &wcn36xx_rate_table[bd->rate_id];
status.encoding = rate->encoding;
status.enc_flags = rate->encoding_flags;
status.bw = rate->bw;
status.rate_idx = rate->mcs_or_legacy_index;
- sband = wcn->hw->wiphy->bands[status.band];
status.nss = 1;
if (status.band == NL80211_BAND_5GHZ &&
status.encoding == RX_ENC_LEGACY &&
- status.rate_idx >= sband->n_bitrates) {
+ status.rate_idx >= 4) {
/* no dsss rates in 5Ghz rates table */
status.rate_idx -= 4;
}
@@ -298,22 +313,6 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
ieee80211_is_probe_resp(hdr->frame_control))
status.boottime_ns = ktime_get_boottime_ns();
- if (bd->scan_learn) {
- /* If packet originates from hardware scanning, extract the
- * band/channel from bd descriptor.
- */
- u8 hwch = (bd->reserved0 << 4) + bd->rx_ch;
-
- if (bd->rf_band != 1 && hwch <= sizeof(ab_rx_ch_map) && hwch >= 1) {
- status.band = NL80211_BAND_5GHZ;
- status.freq = ieee80211_channel_to_frequency(ab_rx_ch_map[hwch - 1],
- status.band);
- } else {
- status.band = NL80211_BAND_2GHZ;
- status.freq = ieee80211_channel_to_frequency(hwch, status.band);
- }
- }
-
memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status));
if (ieee80211_is_beacon(hdr->frame_control)) {
diff --git a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
index e9560f35e9bc..428546a6047f 100644
--- a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
+++ b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
@@ -246,6 +246,7 @@ struct wcn36xx {
struct cfg80211_scan_request *scan_req;
bool sw_scan;
u8 sw_scan_opchannel;
+ bool sw_scan_init;
u8 sw_scan_channel;
struct ieee80211_vif *sw_scan_vif;
struct mutex scan_lock;
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
index cf796403c45c..845a09d0daba 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
@@ -104,9 +104,10 @@
/* GIO Chicken Bits (PCI Express bus link power management) */
#define CSR_GIO_CHICKEN_BITS (CSR_BASE+0x100)
-/* Doorbell NMI (since Bz) */
+/* Doorbell - since Bz
+ * connected to UREG_DOORBELL_TO_ISR6 (lower 16 bits only)
+ */
#define CSR_DOORBELL_VECTOR (CSR_BASE + 0x130)
-#define CSR_DOORBELL_VECTOR_NMI BIT(1)
/* host chicken bits */
#define CSR_HOST_CHICKEN (CSR_BASE + 0x204)
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
index 94553f272d37..b7f7b9c5b670 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
@@ -131,6 +131,9 @@ static void iwl_dealloc_ucode(struct iwl_drv *drv)
for (i = 0; i < IWL_UCODE_TYPE_MAX; i++)
iwl_free_fw_img(drv, drv->fw.img + i);
+
+ /* clear the data for the aborted load case */
+ memset(&drv->fw, 0, sizeof(drv->fw));
}
static int iwl_alloc_fw_desc(struct iwl_drv *drv, struct fw_desc *desc,
@@ -1333,6 +1336,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
int i;
bool load_module = false;
bool usniffer_images = false;
+ bool failure = true;
fw->ucode_capa.max_probe_length = IWL_DEFAULT_MAX_PROBE_LENGTH;
fw->ucode_capa.standard_phy_calibration_size =
@@ -1593,15 +1597,9 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
* else from proceeding if the module fails to load
* or hangs loading.
*/
- if (load_module) {
+ if (load_module)
request_module("%s", op->name);
-#ifdef CONFIG_IWLWIFI_OPMODE_MODULAR
- if (err)
- IWL_ERR(drv,
- "failed to load module %s (error %d), is dynamic loading enabled?\n",
- op->name, err);
-#endif
- }
+ failure = false;
goto free;
try_again:
@@ -1617,6 +1615,9 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
complete(&drv->request_firmware_complete);
device_release_driver(drv->trans->dev);
free:
+ if (failure)
+ iwl_dealloc_ucode(drv);
+
if (pieces) {
for (i = 0; i < ARRAY_SIZE(pieces->img); i++)
kfree(pieces->img[i].sec);
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-io.c b/drivers/net/wireless/intel/iwlwifi/iwl-io.c
index 2517c4ae07ab..5e76ab6c8ad0 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-io.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-io.c
@@ -218,7 +218,7 @@ void iwl_force_nmi(struct iwl_trans *trans)
UREG_DOORBELL_TO_ISR6_NMI_BIT);
else
iwl_write32(trans, CSR_DOORBELL_VECTOR,
- CSR_DOORBELL_VECTOR_NMI);
+ UREG_DOORBELL_TO_ISR6_NMI_BIT);
}
IWL_EXPORT_SYMBOL(iwl_force_nmi);
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c b/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
index 03e5bf5cb909..bb5fff817443 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
@@ -499,7 +499,7 @@ iwl_mvm_ftm_put_target(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
rcu_read_lock();
sta = rcu_dereference(mvm->fw_id_to_mac_id[mvmvif->ap_sta_id]);
- if (sta->mfp)
+ if (sta->mfp && (peer->ftm.trigger_based || peer->ftm.non_trigger_based))
FTM_PUT_FLAG(PMF);
rcu_read_unlock();
@@ -1054,7 +1054,7 @@ static void iwl_mvm_ftm_rtt_smoothing(struct iwl_mvm *mvm,
overshoot = IWL_MVM_FTM_INITIATOR_SMOOTH_OVERSHOOT;
alpha = IWL_MVM_FTM_INITIATOR_SMOOTH_ALPHA;
- rtt_avg = (alpha * rtt + (100 - alpha) * resp->rtt_avg) / 100;
+ rtt_avg = div_s64(alpha * rtt + (100 - alpha) * resp->rtt_avg, 100);
IWL_DEBUG_INFO(mvm,
"%pM: prev rtt_avg=%lld, new rtt_avg=%lld, rtt=%lld\n",
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
index 7e5ad943b20c..750217393f48 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
@@ -1687,6 +1687,7 @@ static void iwl_mvm_recalc_multicast(struct iwl_mvm *mvm)
struct iwl_mvm_mc_iter_data iter_data = {
.mvm = mvm,
};
+ int ret;
lockdep_assert_held(&mvm->mutex);
@@ -1696,6 +1697,22 @@ static void iwl_mvm_recalc_multicast(struct iwl_mvm *mvm)
ieee80211_iterate_active_interfaces_atomic(
mvm->hw, IEEE80211_IFACE_ITER_NORMAL,
iwl_mvm_mc_iface_iterator, &iter_data);
+
+ /*
+ * Send a (synchronous) ech command so that we wait for the
+ * multiple asynchronous MCAST_FILTER_CMD commands sent by
+ * the interface iterator. Otherwise, we might get here over
+ * and over again (by userspace just sending a lot of these)
+ * and the CPU can send them faster than the firmware can
+ * process them.
+ * Note that the CPU is still faster - but with this we'll
+ * actually send fewer commands overall because the CPU will
+ * not schedule the work in mac80211 as frequently if it's
+ * still running when rescheduled (possibly multiple times).
+ */
+ ret = iwl_mvm_send_cmd_pdu(mvm, ECHO_CMD, 0, 0, NULL);
+ if (ret)
+ IWL_ERR(mvm, "Failed to synchronize multicast groups update\n");
}
static u64 iwl_mvm_prepare_multicast(struct ieee80211_hw *hw,
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
index c12f303cf652..efccdd3f3377 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
@@ -121,12 +121,39 @@ static int iwl_mvm_create_skb(struct iwl_mvm *mvm, struct sk_buff *skb,
struct iwl_rx_mpdu_desc *desc = (void *)pkt->data;
unsigned int headlen, fraglen, pad_len = 0;
unsigned int hdrlen = ieee80211_hdrlen(hdr->frame_control);
+ u8 mic_crc_len = u8_get_bits(desc->mac_flags1,
+ IWL_RX_MPDU_MFLG1_MIC_CRC_LEN_MASK) << 1;
if (desc->mac_flags2 & IWL_RX_MPDU_MFLG2_PAD) {
len -= 2;
pad_len = 2;
}
+ /*
+ * For non monitor interface strip the bytes the RADA might not have
+ * removed. As monitor interface cannot exist with other interfaces
+ * this removal is safe.
+ */
+ if (mic_crc_len && !ieee80211_hw_check(mvm->hw, RX_INCLUDES_FCS)) {
+ u32 pkt_flags = le32_to_cpu(pkt->len_n_flags);
+
+ /*
+ * If RADA was not enabled then decryption was not performed so
+ * the MIC cannot be removed.
+ */
+ if (!(pkt_flags & FH_RSCSR_RADA_EN)) {
+ if (WARN_ON(crypt_len > mic_crc_len))
+ return -EINVAL;
+
+ mic_crc_len -= crypt_len;
+ }
+
+ if (WARN_ON(mic_crc_len > len))
+ return -EINVAL;
+
+ len -= mic_crc_len;
+ }
+
/* If frame is small enough to fit in skb->head, pull it completely.
* If not, only pull ieee80211_hdr (including crypto if present, and
* an additional 8 bytes for SNAP/ethertype, see below) so that
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
index d78e436fa8b5..5461bf399959 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@ -1924,22 +1924,19 @@ static void iwl_mvm_scan_6ghz_passive_scan(struct iwl_mvm *mvm,
}
/*
- * 6GHz passive scan is allowed while associated in a defined time
- * interval following HW reset or resume flow
+ * 6GHz passive scan is allowed in a defined time interval following HW
+ * reset or resume flow, or while not associated and a large interval
+ * has passed since the last 6GHz passive scan.
*/
- if (vif->bss_conf.assoc &&
+ if ((vif->bss_conf.assoc ||
+ time_after(mvm->last_6ghz_passive_scan_jiffies +
+ (IWL_MVM_6GHZ_PASSIVE_SCAN_TIMEOUT * HZ), jiffies)) &&
(time_before(mvm->last_reset_or_resume_time_jiffies +
(IWL_MVM_6GHZ_PASSIVE_SCAN_ASSOC_TIMEOUT * HZ),
jiffies))) {
- IWL_DEBUG_SCAN(mvm, "6GHz passive scan: associated\n");
- return;
- }
-
- /* No need for 6GHz passive scan if not enough time elapsed */
- if (time_after(mvm->last_6ghz_passive_scan_jiffies +
- (IWL_MVM_6GHZ_PASSIVE_SCAN_TIMEOUT * HZ), jiffies)) {
- IWL_DEBUG_SCAN(mvm,
- "6GHz passive scan: timeout did not expire\n");
+ IWL_DEBUG_SCAN(mvm, "6GHz passive scan: %s\n",
+ vif->bss_conf.assoc ? "associated" :
+ "timeout did not expire");
return;
}
@@ -2490,7 +2487,7 @@ static int iwl_mvm_check_running_scans(struct iwl_mvm *mvm, int type)
return -EIO;
}
-#define SCAN_TIMEOUT 20000
+#define SCAN_TIMEOUT 30000
void iwl_mvm_scan_timeout_wk(struct work_struct *work)
{
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c
index e91f8e889df7..ab06dcda1462 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c
@@ -49,14 +49,13 @@ void iwl_mvm_roc_done_wk(struct work_struct *wk)
struct iwl_mvm *mvm = container_of(wk, struct iwl_mvm, roc_done_wk);
/*
- * Clear the ROC_RUNNING /ROC_AUX_RUNNING status bit.
+ * Clear the ROC_RUNNING status bit.
* This will cause the TX path to drop offchannel transmissions.
* That would also be done by mac80211, but it is racy, in particular
* in the case that the time event actually completed in the firmware
* (which is handled in iwl_mvm_te_handle_notif).
*/
clear_bit(IWL_MVM_STATUS_ROC_RUNNING, &mvm->status);
- clear_bit(IWL_MVM_STATUS_ROC_AUX_RUNNING, &mvm->status);
synchronize_net();
@@ -82,9 +81,19 @@ void iwl_mvm_roc_done_wk(struct work_struct *wk)
mvmvif = iwl_mvm_vif_from_mac80211(mvm->p2p_device_vif);
iwl_mvm_flush_sta(mvm, &mvmvif->bcast_sta, true);
}
- } else {
+ }
+
+ /*
+ * Clear the ROC_AUX_RUNNING status bit.
+ * This will cause the TX path to drop offchannel transmissions.
+ * That would also be done by mac80211, but it is racy, in particular
+ * in the case that the time event actually completed in the firmware
+ * (which is handled in iwl_mvm_te_handle_notif).
+ */
+ if (test_and_clear_bit(IWL_MVM_STATUS_ROC_AUX_RUNNING, &mvm->status)) {
/* do the same in case of hot spot 2.0 */
iwl_mvm_flush_sta(mvm, &mvm->aux_sta, true);
+
/* In newer version of this command an aux station is added only
* in cases of dedicated tx queue and need to be removed in end
* of use */
@@ -687,11 +696,14 @@ static bool __iwl_mvm_remove_time_event(struct iwl_mvm *mvm,
iwl_mvm_te_clear_data(mvm, te_data);
spin_unlock_bh(&mvm->time_event_lock);
- /* When session protection is supported, the te_data->id field
+ /* When session protection is used, the te_data->id field
* is reused to save session protection's configuration.
+ * For AUX ROC, HOT_SPOT_CMD is used and the te_data->id field is set
+ * to HOT_SPOT_CMD.
*/
if (fw_has_capa(&mvm->fw->ucode_capa,
- IWL_UCODE_TLV_CAPA_SESSION_PROT_CMD)) {
+ IWL_UCODE_TLV_CAPA_SESSION_PROT_CMD) &&
+ id != HOT_SPOT_CMD) {
if (mvmvif && id < SESSION_PROTECT_CONF_MAX_ID) {
/* Session protection is still ongoing. Cancel it */
iwl_mvm_cancel_session_protection(mvm, mvmvif, id);
@@ -1027,7 +1039,7 @@ void iwl_mvm_stop_roc(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
iwl_mvm_p2p_roc_finished(mvm);
} else {
iwl_mvm_remove_aux_roc_te(mvm, mvmvif,
- &mvmvif->time_event_data);
+ &mvmvif->hs_time_event_data);
iwl_mvm_roc_finished(mvm);
}
@@ -1158,15 +1170,10 @@ void iwl_mvm_schedule_session_protection(struct iwl_mvm *mvm,
cpu_to_le32(FW_CMD_ID_AND_COLOR(mvmvif->id,
mvmvif->color)),
.action = cpu_to_le32(FW_CTXT_ACTION_ADD),
+ .conf_id = cpu_to_le32(SESSION_PROTECT_CONF_ASSOC),
.duration_tu = cpu_to_le32(MSEC_TO_TU(duration)),
};
- /* The time_event_data.id field is reused to save session
- * protection's configuration.
- */
- mvmvif->time_event_data.id = SESSION_PROTECT_CONF_ASSOC;
- cmd.conf_id = cpu_to_le32(mvmvif->time_event_data.id);
-
lockdep_assert_held(&mvm->mutex);
spin_lock_bh(&mvm->time_event_lock);
@@ -1180,6 +1187,11 @@ void iwl_mvm_schedule_session_protection(struct iwl_mvm *mvm,
}
iwl_mvm_te_clear_data(mvm, te_data);
+ /*
+ * The time_event_data.id field is reused to save session
+ * protection's configuration.
+ */
+ te_data->id = le32_to_cpu(cmd.conf_id);
te_data->duration = le32_to_cpu(cmd.duration_tu);
te_data->vif = vif;
spin_unlock_bh(&mvm->time_event_lock);
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
index 8e45eb38304b..fea89330f692 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
@@ -2261,7 +2261,12 @@ irqreturn_t iwl_pcie_irq_msix_handler(int irq, void *dev_id)
}
}
- if (inta_hw & MSIX_HW_INT_CAUSES_REG_WAKEUP) {
+ /*
+ * In some rare cases when the HW is in a bad state, we may
+ * get this interrupt too early, when prph_info is still NULL.
+ * So make sure that it's not NULL to prevent crashing.
+ */
+ if (inta_hw & MSIX_HW_INT_CAUSES_REG_WAKEUP && trans_pcie->prph_info) {
u32 sleep_notif =
le32_to_cpu(trans_pcie->prph_info->sleep_notif);
if (sleep_notif == IWL_D3_SLEEP_STATUS_SUSPEND ||
diff --git a/drivers/net/wireless/intel/iwlwifi/queue/tx.c b/drivers/net/wireless/intel/iwlwifi/queue/tx.c
index 451b06069350..0f3526b0c5b0 100644
--- a/drivers/net/wireless/intel/iwlwifi/queue/tx.c
+++ b/drivers/net/wireless/intel/iwlwifi/queue/tx.c
@@ -1072,6 +1072,7 @@ int iwl_txq_alloc(struct iwl_trans *trans, struct iwl_txq *txq, int slots_num,
return 0;
err_free_tfds:
dma_free_coherent(trans->dev, tfd_sz, txq->tfds, txq->dma_addr);
+ txq->tfds = NULL;
error:
if (txq->entries && cmd_queue)
for (i = 0; i < slots_num; i++)
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_event.c b/drivers/net/wireless/marvell/mwifiex/sta_event.c
index 68c63268e2e6..2b2e6e0166e1 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_event.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_event.c
@@ -365,10 +365,12 @@ static void mwifiex_process_uap_tx_pause(struct mwifiex_private *priv,
sta_ptr = mwifiex_get_sta_entry(priv, tp->peermac);
if (sta_ptr && sta_ptr->tx_pause != tp->tx_pause) {
sta_ptr->tx_pause = tp->tx_pause;
+ spin_unlock_bh(&priv->sta_list_spinlock);
mwifiex_update_ralist_tx_pause(priv, tp->peermac,
tp->tx_pause);
+ } else {
+ spin_unlock_bh(&priv->sta_list_spinlock);
}
- spin_unlock_bh(&priv->sta_list_spinlock);
}
}
@@ -400,11 +402,13 @@ static void mwifiex_process_sta_tx_pause(struct mwifiex_private *priv,
sta_ptr = mwifiex_get_sta_entry(priv, tp->peermac);
if (sta_ptr && sta_ptr->tx_pause != tp->tx_pause) {
sta_ptr->tx_pause = tp->tx_pause;
+ spin_unlock_bh(&priv->sta_list_spinlock);
mwifiex_update_ralist_tx_pause(priv,
tp->peermac,
tp->tx_pause);
+ } else {
+ spin_unlock_bh(&priv->sta_list_spinlock);
}
- spin_unlock_bh(&priv->sta_list_spinlock);
}
}
}
diff --git a/drivers/net/wireless/marvell/mwifiex/usb.c b/drivers/net/wireless/marvell/mwifiex/usb.c
index 9736aa0ab7fd..8f01fcbe9396 100644
--- a/drivers/net/wireless/marvell/mwifiex/usb.c
+++ b/drivers/net/wireless/marvell/mwifiex/usb.c
@@ -130,7 +130,8 @@ static int mwifiex_usb_recv(struct mwifiex_adapter *adapter,
default:
mwifiex_dbg(adapter, ERROR,
"unknown recv_type %#x\n", recv_type);
- return -1;
+ ret = -1;
+ goto exit_restore_skb;
}
break;
case MWIFIEX_USB_EP_DATA:
diff --git a/drivers/net/wireless/mediatek/mt76/mt7603/mac.c b/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
index 3972c56136a2..65f1f2bb8083 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
@@ -525,6 +525,10 @@ mt7603_mac_fill_rx(struct mt7603_dev *dev, struct sk_buff *skb)
if (rxd2 & MT_RXD2_NORMAL_TKIP_MIC_ERR)
status->flag |= RX_FLAG_MMIC_ERROR;
+ /* ICV error or CCMP/BIP/WPI MIC error */
+ if (rxd2 & MT_RXD2_NORMAL_ICV_ERR)
+ status->flag |= RX_FLAG_ONLY_MONITOR;
+
if (FIELD_GET(MT_RXD2_NORMAL_SEC_MODE, rxd2) != 0 &&
!(rxd2 & (MT_RXD2_NORMAL_CLM | MT_RXD2_NORMAL_CM))) {
status->flag |= RX_FLAG_DECRYPTED;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mac.c b/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
index 5455231f5188..f2704149834a 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/mac.c
@@ -286,9 +286,16 @@ static int mt7615_mac_fill_rx(struct mt7615_dev *dev, struct sk_buff *skb)
if (rxd2 & MT_RXD2_NORMAL_AMSDU_ERR)
return -EINVAL;
+ hdr_trans = rxd1 & MT_RXD1_NORMAL_HDR_TRANS;
+ if (hdr_trans && (rxd2 & MT_RXD2_NORMAL_CM))
+ return -EINVAL;
+
+ /* ICV error or CCMP/BIP/WPI MIC error */
+ if (rxd2 & MT_RXD2_NORMAL_ICV_ERR)
+ status->flag |= RX_FLAG_ONLY_MONITOR;
+
unicast = (rxd1 & MT_RXD1_NORMAL_ADDR_TYPE) == MT_RXD1_NORMAL_U2M;
idx = FIELD_GET(MT_RXD2_NORMAL_WLAN_IDX, rxd2);
- hdr_trans = rxd1 & MT_RXD1_NORMAL_HDR_TRANS;
status->wcid = mt7615_rx_get_wcid(dev, idx, unicast);
if (status->wcid) {
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/main.c b/drivers/net/wireless/mediatek/mt76/mt7615/main.c
index 51260a669d16..fc266da54fe7 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/main.c
@@ -211,11 +211,9 @@ static int mt7615_add_interface(struct ieee80211_hw *hw,
mvif->mt76.omac_idx = idx;
mvif->mt76.band_idx = ext_phy;
- if (mt7615_ext_phy(dev))
- mvif->mt76.wmm_idx = ext_phy * (MT7615_MAX_WMM_SETS / 2) +
- mvif->mt76.idx % (MT7615_MAX_WMM_SETS / 2);
- else
- mvif->mt76.wmm_idx = mvif->mt76.idx % MT7615_MAX_WMM_SETS;
+ mvif->mt76.wmm_idx = vif->type != NL80211_IFTYPE_AP;
+ if (ext_phy)
+ mvif->mt76.wmm_idx += 2;
dev->mt76.vif_mask |= BIT(mvif->mt76.idx);
dev->omac_mask |= BIT_ULL(mvif->mt76.omac_idx);
diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c b/drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c
index a2465b49ecd0..87b4aa52ee0f 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c
@@ -28,8 +28,6 @@ static void mt7615_pci_init_work(struct work_struct *work)
return;
mt7615_init_work(dev);
- if (dev->dbdc_support)
- mt7615_register_ext_phy(dev);
}
static int mt7615_init_hardware(struct mt7615_dev *dev)
@@ -160,6 +158,12 @@ int mt7615_register_device(struct mt7615_dev *dev)
mt7615_init_txpower(dev, &dev->mphy.sband_2g.sband);
mt7615_init_txpower(dev, &dev->mphy.sband_5g.sband);
+ if (dev->dbdc_support) {
+ ret = mt7615_register_ext_phy(dev);
+ if (ret)
+ return ret;
+ }
+
return mt7615_init_debugfs(dev);
}
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mac.c b/drivers/net/wireless/mediatek/mt76/mt7915/mac.c
index bbc996f86b5c..ff613d705611 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/mac.c
@@ -349,9 +349,16 @@ mt7915_mac_fill_rx(struct mt7915_dev *dev, struct sk_buff *skb)
if (rxd2 & MT_RXD2_NORMAL_AMSDU_ERR)
return -EINVAL;
+ hdr_trans = rxd2 & MT_RXD2_NORMAL_HDR_TRANS;
+ if (hdr_trans && (rxd1 & MT_RXD1_NORMAL_CM))
+ return -EINVAL;
+
+ /* ICV error or CCMP/BIP/WPI MIC error */
+ if (rxd1 & MT_RXD1_NORMAL_ICV_ERR)
+ status->flag |= RX_FLAG_ONLY_MONITOR;
+
unicast = FIELD_GET(MT_RXD3_NORMAL_ADDR_TYPE, rxd3) == MT_RXD3_NORMAL_U2M;
idx = FIELD_GET(MT_RXD1_NORMAL_WLAN_IDX, rxd1);
- hdr_trans = rxd2 & MT_RXD2_NORMAL_HDR_TRANS;
status->wcid = mt7915_rx_get_wcid(dev, idx, unicast);
if (status->wcid) {
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mac.c b/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
index 8a16f3f4d525..04a288029c98 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
@@ -383,10 +383,17 @@ int mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb)
if (rxd2 & MT_RXD2_NORMAL_AMSDU_ERR)
return -EINVAL;
+ hdr_trans = rxd2 & MT_RXD2_NORMAL_HDR_TRANS;
+ if (hdr_trans && (rxd1 & MT_RXD1_NORMAL_CM))
+ return -EINVAL;
+
+ /* ICV error or CCMP/BIP/WPI MIC error */
+ if (rxd1 & MT_RXD1_NORMAL_ICV_ERR)
+ status->flag |= RX_FLAG_ONLY_MONITOR;
+
chfreq = FIELD_GET(MT_RXD3_NORMAL_CH_FREQ, rxd3);
unicast = FIELD_GET(MT_RXD3_NORMAL_ADDR_TYPE, rxd3) == MT_RXD3_NORMAL_U2M;
idx = FIELD_GET(MT_RXD1_NORMAL_WLAN_IDX, rxd1);
- hdr_trans = rxd2 & MT_RXD2_NORMAL_HDR_TRANS;
status->wcid = mt7921_rx_get_wcid(dev, idx, unicast);
if (status->wcid) {
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/main.c b/drivers/net/wireless/mediatek/mt76/mt7921/main.c
index 63ec140c9c37..9eb90e6f0103 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/main.c
@@ -285,12 +285,6 @@ static int mt7921_add_interface(struct ieee80211_hw *hw,
mtxq->wcid = &mvif->sta.wcid;
}
- if (vif->type != NL80211_IFTYPE_AP &&
- (!mvif->mt76.omac_idx || mvif->mt76.omac_idx > 3))
- vif->offload_flags = 0;
-
- vif->offload_flags |= IEEE80211_OFFLOAD_ENCAP_4ADDR;
-
out:
mt7921_mutex_release(dev);
diff --git a/drivers/net/wireless/microchip/wilc1000/netdev.c b/drivers/net/wireless/microchip/wilc1000/netdev.c
index 7e4d9235251c..9dfb1a285e6a 100644
--- a/drivers/net/wireless/microchip/wilc1000/netdev.c
+++ b/drivers/net/wireless/microchip/wilc1000/netdev.c
@@ -901,7 +901,6 @@ void wilc_netdev_cleanup(struct wilc *wilc)
wilc_wlan_cfg_deinit(wilc);
wlan_deinit_locks(wilc);
- kfree(wilc->bus_data);
wiphy_unregister(wilc->wiphy);
wiphy_free(wilc->wiphy);
}
diff --git a/drivers/net/wireless/microchip/wilc1000/sdio.c b/drivers/net/wireless/microchip/wilc1000/sdio.c
index 42e03a701ae1..8b3b73523108 100644
--- a/drivers/net/wireless/microchip/wilc1000/sdio.c
+++ b/drivers/net/wireless/microchip/wilc1000/sdio.c
@@ -167,9 +167,11 @@ static int wilc_sdio_probe(struct sdio_func *func,
static void wilc_sdio_remove(struct sdio_func *func)
{
struct wilc *wilc = sdio_get_drvdata(func);
+ struct wilc_sdio *sdio_priv = wilc->bus_data;
clk_disable_unprepare(wilc->rtc_clk);
wilc_netdev_cleanup(wilc);
+ kfree(sdio_priv);
}
static int wilc_sdio_reset(struct wilc *wilc)
diff --git a/drivers/net/wireless/microchip/wilc1000/spi.c b/drivers/net/wireless/microchip/wilc1000/spi.c
index dd481dc0b5ce..c98c0999a6b6 100644
--- a/drivers/net/wireless/microchip/wilc1000/spi.c
+++ b/drivers/net/wireless/microchip/wilc1000/spi.c
@@ -182,9 +182,11 @@ static int wilc_bus_probe(struct spi_device *spi)
static int wilc_bus_remove(struct spi_device *spi)
{
struct wilc *wilc = spi_get_drvdata(spi);
+ struct wilc_spi *spi_priv = wilc->bus_data;
clk_disable_unprepare(wilc->rtc_clk);
wilc_netdev_cleanup(wilc);
+ kfree(spi_priv);
return 0;
}
diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c
index 6bb55e663fc3..69512856bb46 100644
--- a/drivers/net/wireless/realtek/rtw88/main.c
+++ b/drivers/net/wireless/realtek/rtw88/main.c
@@ -1859,7 +1859,7 @@ int rtw_core_init(struct rtw_dev *rtwdev)
/* default rx filter setting */
rtwdev->hal.rcr = BIT_APP_FCS | BIT_APP_MIC | BIT_APP_ICV |
- BIT_HTC_LOC_CTRL | BIT_APP_PHYSTS |
+ BIT_PKTCTL_DLEN | BIT_HTC_LOC_CTRL | BIT_APP_PHYSTS |
BIT_AB | BIT_AM | BIT_APM;
ret = rtw_load_firmware(rtwdev, RTW_NORMAL_FW);
diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
index a7a6ebfaa203..08cf66141889 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.c
+++ b/drivers/net/wireless/realtek/rtw88/pci.c
@@ -2,7 +2,6 @@
/* Copyright(c) 2018-2019 Realtek Corporation
*/
-#include <linux/dmi.h>
#include <linux/module.h>
#include <linux/pci.h>
#include "main.h"
@@ -1409,7 +1408,11 @@ static void rtw_pci_link_ps(struct rtw_dev *rtwdev, bool enter)
* throughput. This is probably because the ASPM behavior slightly
* varies from different SOC.
*/
- if (rtwpci->link_ctrl & PCI_EXP_LNKCTL_ASPM_L1)
+ if (!(rtwpci->link_ctrl & PCI_EXP_LNKCTL_ASPM_L1))
+ return;
+
+ if ((enter && atomic_dec_if_positive(&rtwpci->link_usage) == 0) ||
+ (!enter && atomic_inc_return(&rtwpci->link_usage) == 1))
rtw_pci_aspm_set(rtwdev, enter);
}
@@ -1658,6 +1661,9 @@ static int rtw_pci_napi_poll(struct napi_struct *napi, int budget)
priv);
int work_done = 0;
+ if (rtwpci->rx_no_aspm)
+ rtw_pci_link_ps(rtwdev, false);
+
while (work_done < budget) {
u32 work_done_once;
@@ -1681,6 +1687,8 @@ static int rtw_pci_napi_poll(struct napi_struct *napi, int budget)
if (rtw_pci_get_hw_rx_ring_nr(rtwdev, rtwpci))
napi_schedule(napi);
}
+ if (rtwpci->rx_no_aspm)
+ rtw_pci_link_ps(rtwdev, true);
return work_done;
}
@@ -1702,50 +1710,13 @@ static void rtw_pci_napi_deinit(struct rtw_dev *rtwdev)
netif_napi_del(&rtwpci->napi);
}
-enum rtw88_quirk_dis_pci_caps {
- QUIRK_DIS_PCI_CAP_MSI,
- QUIRK_DIS_PCI_CAP_ASPM,
-};
-
-static int disable_pci_caps(const struct dmi_system_id *dmi)
-{
- uintptr_t dis_caps = (uintptr_t)dmi->driver_data;
-
- if (dis_caps & BIT(QUIRK_DIS_PCI_CAP_MSI))
- rtw_disable_msi = true;
- if (dis_caps & BIT(QUIRK_DIS_PCI_CAP_ASPM))
- rtw_pci_disable_aspm = true;
-
- return 1;
-}
-
-static const struct dmi_system_id rtw88_pci_quirks[] = {
- {
- .callback = disable_pci_caps,
- .ident = "Protempo Ltd L116HTN6SPW",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Protempo Ltd"),
- DMI_MATCH(DMI_PRODUCT_NAME, "L116HTN6SPW"),
- },
- .driver_data = (void *)BIT(QUIRK_DIS_PCI_CAP_ASPM),
- },
- {
- .callback = disable_pci_caps,
- .ident = "HP HP Pavilion Laptop 14-ce0xxx",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "HP"),
- DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Laptop 14-ce0xxx"),
- },
- .driver_data = (void *)BIT(QUIRK_DIS_PCI_CAP_ASPM),
- },
- {}
-};
-
int rtw_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *id)
{
+ struct pci_dev *bridge = pci_upstream_bridge(pdev);
struct ieee80211_hw *hw;
struct rtw_dev *rtwdev;
+ struct rtw_pci *rtwpci;
int drv_data_size;
int ret;
@@ -1763,6 +1734,9 @@ int rtw_pci_probe(struct pci_dev *pdev,
rtwdev->hci.ops = &rtw_pci_ops;
rtwdev->hci.type = RTW_HCI_TYPE_PCIE;
+ rtwpci = (struct rtw_pci *)rtwdev->priv;
+ atomic_set(&rtwpci->link_usage, 1);
+
ret = rtw_core_init(rtwdev);
if (ret)
goto err_release_hw;
@@ -1791,7 +1765,10 @@ int rtw_pci_probe(struct pci_dev *pdev,
goto err_destroy_pci;
}
- dmi_check_system(rtw88_pci_quirks);
+ /* Disable PCIe ASPM L1 while doing NAPI poll for 8821CE */
+ if (pdev->device == 0xc821 && bridge->vendor == PCI_VENDOR_ID_INTEL)
+ rtwpci->rx_no_aspm = true;
+
rtw_pci_phy_cfg(rtwdev);
ret = rtw_register_hw(rtwdev, hw);
diff --git a/drivers/net/wireless/realtek/rtw88/pci.h b/drivers/net/wireless/realtek/rtw88/pci.h
index 66f78eb7757c..0c37efd8c66f 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.h
+++ b/drivers/net/wireless/realtek/rtw88/pci.h
@@ -223,6 +223,8 @@ struct rtw_pci {
struct rtw_pci_tx_ring tx_rings[RTK_MAX_TX_QUEUE_NUM];
struct rtw_pci_rx_ring rx_rings[RTK_MAX_RX_QUEUE_NUM];
u16 link_ctrl;
+ atomic_t link_usage;
+ bool rx_no_aspm;
DECLARE_BITMAP(flags, NUM_OF_RTW_PCI_FLAGS);
void __iomem *mmap;
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821c.h b/drivers/net/wireless/realtek/rtw88/rtw8821c.h
index 112faa60f653..d9fbddd7b0f3 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.h
@@ -131,7 +131,7 @@ _rtw_write32s_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 data)
#define WLAN_TX_FUNC_CFG2 0x30
#define WLAN_MAC_OPT_NORM_FUNC1 0x98
#define WLAN_MAC_OPT_LB_FUNC1 0x80
-#define WLAN_MAC_OPT_FUNC2 0x30810041
+#define WLAN_MAC_OPT_FUNC2 0xb0810041
#define WLAN_SIFS_CFG (WLAN_SIFS_CCK_CONT_TX | \
(WLAN_SIFS_OFDM_CONT_TX << BIT_SHIFT_SIFS_OFDM_CTX) | \
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.c b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
index f1789155e901..247f26e3e819 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
@@ -204,7 +204,7 @@ static void rtw8822b_phy_set_param(struct rtw_dev *rtwdev)
#define WLAN_TX_FUNC_CFG2 0x30
#define WLAN_MAC_OPT_NORM_FUNC1 0x98
#define WLAN_MAC_OPT_LB_FUNC1 0x80
-#define WLAN_MAC_OPT_FUNC2 0x30810041
+#define WLAN_MAC_OPT_FUNC2 0xb0810041
#define WLAN_SIFS_CFG (WLAN_SIFS_CCK_CONT_TX | \
(WLAN_SIFS_OFDM_CONT_TX << BIT_SHIFT_SIFS_OFDM_CTX) | \
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
index f3ad079967a6..bc87e3cb9cdc 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
@@ -1962,7 +1962,7 @@ static void rtw8822c_phy_set_param(struct rtw_dev *rtwdev)
#define WLAN_TX_FUNC_CFG2 0x30
#define WLAN_MAC_OPT_NORM_FUNC1 0x98
#define WLAN_MAC_OPT_LB_FUNC1 0x80
-#define WLAN_MAC_OPT_FUNC2 0x30810041
+#define WLAN_MAC_OPT_FUNC2 0xb0810041
#define WLAN_MAC_INT_MIG_CFG 0x33330000
#define WLAN_SIFS_CFG (WLAN_SIFS_CCK_CONT_TX | \
diff --git a/drivers/net/wireless/rsi/rsi_91x_main.c b/drivers/net/wireless/rsi/rsi_91x_main.c
index f1bf71e6c608..5d1490fc32db 100644
--- a/drivers/net/wireless/rsi/rsi_91x_main.c
+++ b/drivers/net/wireless/rsi/rsi_91x_main.c
@@ -23,6 +23,7 @@
#include "rsi_common.h"
#include "rsi_coex.h"
#include "rsi_hal.h"
+#include "rsi_usb.h"
u32 rsi_zone_enabled = /* INFO_ZONE |
INIT_ZONE |
@@ -168,6 +169,9 @@ int rsi_read_pkt(struct rsi_common *common, u8 *rx_pkt, s32 rcv_pkt_len)
frame_desc = &rx_pkt[index];
actual_length = *(u16 *)&frame_desc[0];
offset = *(u16 *)&frame_desc[2];
+ if (!rcv_pkt_len && offset >
+ RSI_MAX_RX_USB_PKT_SIZE - FRAME_DESC_SZ)
+ goto fail;
queueno = rsi_get_queueno(frame_desc, offset);
length = rsi_get_length(frame_desc, offset);
diff --git a/drivers/net/wireless/rsi/rsi_91x_usb.c b/drivers/net/wireless/rsi/rsi_91x_usb.c
index 6821ea991895..66fe386ec9cc 100644
--- a/drivers/net/wireless/rsi/rsi_91x_usb.c
+++ b/drivers/net/wireless/rsi/rsi_91x_usb.c
@@ -269,8 +269,12 @@ static void rsi_rx_done_handler(struct urb *urb)
struct rsi_91x_usbdev *dev = (struct rsi_91x_usbdev *)rx_cb->data;
int status = -EINVAL;
+ if (!rx_cb->rx_skb)
+ return;
+
if (urb->status) {
dev_kfree_skb(rx_cb->rx_skb);
+ rx_cb->rx_skb = NULL;
return;
}
@@ -294,8 +298,10 @@ static void rsi_rx_done_handler(struct urb *urb)
if (rsi_rx_urb_submit(dev->priv, rx_cb->ep_num, GFP_ATOMIC))
rsi_dbg(ERR_ZONE, "%s: Failed in urb submission", __func__);
- if (status)
+ if (status) {
dev_kfree_skb(rx_cb->rx_skb);
+ rx_cb->rx_skb = NULL;
+ }
}
static void rsi_rx_urb_kill(struct rsi_hw *adapter, u8 ep_num)
@@ -324,7 +330,6 @@ static int rsi_rx_urb_submit(struct rsi_hw *adapter, u8 ep_num, gfp_t mem_flags)
struct sk_buff *skb;
u8 dword_align_bytes = 0;
-#define RSI_MAX_RX_USB_PKT_SIZE 3000
skb = dev_alloc_skb(RSI_MAX_RX_USB_PKT_SIZE);
if (!skb)
return -ENOMEM;
diff --git a/drivers/net/wireless/rsi/rsi_usb.h b/drivers/net/wireless/rsi/rsi_usb.h
index 254d19b66412..961851748bc4 100644
--- a/drivers/net/wireless/rsi/rsi_usb.h
+++ b/drivers/net/wireless/rsi/rsi_usb.h
@@ -44,6 +44,8 @@
#define RSI_USB_BUF_SIZE 4096
#define RSI_USB_CTRL_BUF_SIZE 0x04
+#define RSI_MAX_RX_USB_PKT_SIZE 3000
+
struct rx_usb_ctrl_block {
u8 *data;
struct urb *rx_urb;
diff --git a/drivers/net/wwan/mhi_wwan_mbim.c b/drivers/net/wwan/mhi_wwan_mbim.c
index 71bf9b4f769f..6872782e8dd8 100644
--- a/drivers/net/wwan/mhi_wwan_mbim.c
+++ b/drivers/net/wwan/mhi_wwan_mbim.c
@@ -385,13 +385,13 @@ static void mhi_net_rx_refill_work(struct work_struct *work)
int err;
while (!mhi_queue_is_full(mdev, DMA_FROM_DEVICE)) {
- struct sk_buff *skb = alloc_skb(MHI_DEFAULT_MRU, GFP_KERNEL);
+ struct sk_buff *skb = alloc_skb(mbim->mru, GFP_KERNEL);
if (unlikely(!skb))
break;
err = mhi_queue_skb(mdev, DMA_FROM_DEVICE, skb,
- MHI_DEFAULT_MRU, MHI_EOT);
+ mbim->mru, MHI_EOT);
if (unlikely(err)) {
kfree_skb(skb);
break;
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 8976da38b375..9aecb83021a2 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -307,6 +307,8 @@ static umode_t nvmem_bin_attr_is_visible(struct kobject *kobj,
struct device *dev = kobj_to_dev(kobj);
struct nvmem_device *nvmem = to_nvmem_device(dev);
+ attr->size = nvmem->size;
+
return nvmem_bin_attr_get_umode(nvmem);
}
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 0ac17256258d..54719f8156ed 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -1327,9 +1327,14 @@ int of_phandle_iterator_next(struct of_phandle_iterator *it)
* property data length
*/
if (it->cur + count > it->list_end) {
- pr_err("%pOF: %s = %d found %d\n",
- it->parent, it->cells_name,
- count, it->cell_count);
+ if (it->cells_name)
+ pr_err("%pOF: %s = %d found %td\n",
+ it->parent, it->cells_name,
+ count, it->list_end - it->cur);
+ else
+ pr_err("%pOF: phandle %s needs %d, found %td\n",
+ it->parent, of_node_full_name(it->node),
+ count, it->list_end - it->cur);
goto err;
}
}
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 4546572af24b..59a7a9ee58ef 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -482,9 +482,11 @@ static int __init early_init_dt_reserve_memory_arch(phys_addr_t base,
if (nomap) {
/*
* If the memory is already reserved (by another region), we
- * should not allow it to be marked nomap.
+ * should not allow it to be marked nomap, but don't worry
+ * if the region isn't memory as it won't be mapped.
*/
- if (memblock_is_region_reserved(base, size))
+ if (memblock_overlaps_region(&memblock.memory, base, size) &&
+ memblock_is_region_reserved(base, size))
return -EBUSY;
return memblock_mark_nomap(base, size);
@@ -969,18 +971,22 @@ static void __init early_init_dt_check_for_elfcorehdr(unsigned long node)
elfcorehdr_addr, elfcorehdr_size);
}
-static phys_addr_t cap_mem_addr;
-static phys_addr_t cap_mem_size;
+static unsigned long chosen_node_offset = -FDT_ERR_NOTFOUND;
/**
* early_init_dt_check_for_usable_mem_range - Decode usable memory range
* location from flat tree
- * @node: reference to node containing usable memory range location ('chosen')
*/
-static void __init early_init_dt_check_for_usable_mem_range(unsigned long node)
+void __init early_init_dt_check_for_usable_mem_range(void)
{
const __be32 *prop;
int len;
+ phys_addr_t cap_mem_addr;
+ phys_addr_t cap_mem_size;
+ unsigned long node = chosen_node_offset;
+
+ if ((long)node < 0)
+ return;
pr_debug("Looking for usable-memory-range property... ");
@@ -993,6 +999,8 @@ static void __init early_init_dt_check_for_usable_mem_range(unsigned long node)
pr_debug("cap_mem_start=%pa cap_mem_size=%pa\n", &cap_mem_addr,
&cap_mem_size);
+
+ memblock_cap_memory_range(cap_mem_addr, cap_mem_size);
}
#ifdef CONFIG_SERIAL_EARLYCON
@@ -1141,9 +1149,10 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
(strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0))
return 0;
+ chosen_node_offset = node;
+
early_init_dt_check_for_initrd(node);
early_init_dt_check_for_elfcorehdr(node);
- early_init_dt_check_for_usable_mem_range(node);
/* Retrieve command line */
p = of_get_flat_dt_prop(node, "bootargs", &l);
@@ -1279,7 +1288,7 @@ void __init early_init_dt_scan_nodes(void)
of_scan_flat_dt(early_init_dt_scan_memory, NULL);
/* Handle linux,usable-memory-range property */
- memblock_cap_memory_range(cap_mem_addr, cap_mem_size);
+ early_init_dt_check_for_usable_mem_range();
}
bool __init early_init_dt_scan(void *params)
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c
index 5b85a2a3792a..2bee1d992408 100644
--- a/drivers/of/unittest.c
+++ b/drivers/of/unittest.c
@@ -911,11 +911,18 @@ static void __init of_unittest_dma_ranges_one(const char *path,
if (!rc) {
phys_addr_t paddr;
dma_addr_t dma_addr;
- struct device dev_bogus;
+ struct device *dev_bogus;
- dev_bogus.dma_range_map = map;
- paddr = dma_to_phys(&dev_bogus, expect_dma_addr);
- dma_addr = phys_to_dma(&dev_bogus, expect_paddr);
+ dev_bogus = kzalloc(sizeof(struct device), GFP_KERNEL);
+ if (!dev_bogus) {
+ unittest(0, "kzalloc() failed\n");
+ kfree(map);
+ return;
+ }
+
+ dev_bogus->dma_range_map = map;
+ paddr = dma_to_phys(dev_bogus, expect_dma_addr);
+ dma_addr = phys_to_dma(dev_bogus, expect_paddr);
unittest(paddr == expect_paddr,
"of_dma_get_range: wrong phys addr %pap (expecting %llx) on node %pOF\n",
@@ -925,6 +932,7 @@ static void __init of_unittest_dma_ranges_one(const char *path,
&dma_addr, expect_dma_addr, np);
kfree(map);
+ kfree(dev_bogus);
}
of_node_put(np);
#endif
@@ -934,8 +942,9 @@ static void __init of_unittest_parse_dma_ranges(void)
{
of_unittest_dma_ranges_one("/testcase-data/address-tests/device@70000000",
0x0, 0x20000000);
- of_unittest_dma_ranges_one("/testcase-data/address-tests/bus@80000000/device@1000",
- 0x100000000, 0x20000000);
+ if (IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT))
+ of_unittest_dma_ranges_one("/testcase-data/address-tests/bus@80000000/device@1000",
+ 0x100000000, 0x20000000);
of_unittest_dma_ranges_one("/testcase-data/address-tests/pci@90000000",
0x80000000, 0x20000000);
}
diff --git a/drivers/parisc/pdc_stable.c b/drivers/parisc/pdc_stable.c
index e090978518f1..4760f82def6e 100644
--- a/drivers/parisc/pdc_stable.c
+++ b/drivers/parisc/pdc_stable.c
@@ -979,8 +979,10 @@ pdcs_register_pathentries(void)
entry->kobj.kset = paths_kset;
err = kobject_init_and_add(&entry->kobj, &ktype_pdcspath, NULL,
"%s", entry->name);
- if (err)
+ if (err) {
+ kobject_put(&entry->kobj);
return err;
+ }
/* kobject is now registered */
write_lock(&entry->rw_lock);
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index c3b725afa11f..85323cbc4888 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -872,7 +872,6 @@ advk_pci_bridge_emul_pcie_conf_read(struct pci_bridge_emul *bridge,
return PCI_BRIDGE_EMUL_HANDLED;
}
- case PCI_CAP_LIST_ID:
case PCI_EXP_DEVCAP:
case PCI_EXP_DEVCTL:
*value = advk_readl(pcie, PCIE_CORE_PCIEXP_CAP + reg);
@@ -953,6 +952,9 @@ static int advk_sw_pci_bridge_init(struct advk_pcie *pcie)
/* Support interrupt A for MSI feature */
bridge->conf.intpin = PCIE_CORE_INT_A_ASSERT_ENABLE;
+ /* Aardvark HW provides PCIe Capability structure in version 2 */
+ bridge->pcie_conf.cap = cpu_to_le16(2);
+
/* Indicates supports for Completion Retry Status */
bridge->pcie_conf.rootcap = cpu_to_le16(PCI_EXP_RTCAP_CRSVIS);
diff --git a/drivers/pci/controller/pci-mvebu.c b/drivers/pci/controller/pci-mvebu.c
index ed13e81cd691..2dc6890dbcaa 100644
--- a/drivers/pci/controller/pci-mvebu.c
+++ b/drivers/pci/controller/pci-mvebu.c
@@ -573,6 +573,8 @@ static struct pci_bridge_emul_ops mvebu_pci_bridge_emul_ops = {
static void mvebu_pci_bridge_emul_init(struct mvebu_pcie_port *port)
{
struct pci_bridge_emul *bridge = &port->bridge;
+ u32 pcie_cap = mvebu_readl(port, PCIE_CAP_PCIEXP);
+ u8 pcie_cap_ver = ((pcie_cap >> 16) & PCI_EXP_FLAGS_VERS);
bridge->conf.vendor = PCI_VENDOR_ID_MARVELL;
bridge->conf.device = mvebu_readl(port, PCIE_DEV_ID_OFF) >> 16;
@@ -585,6 +587,12 @@ static void mvebu_pci_bridge_emul_init(struct mvebu_pcie_port *port)
bridge->conf.iolimit = PCI_IO_RANGE_TYPE_32;
}
+ /*
+ * Older mvebu hardware provides PCIe Capability structure only in
+ * version 1. New hardware provides it in version 2.
+ */
+ bridge->pcie_conf.cap = cpu_to_le16(pcie_cap_ver);
+
bridge->has_pcie = true;
bridge->data = port;
bridge->ops = &mvebu_pci_bridge_emul_ops;
diff --git a/drivers/pci/controller/pci-xgene.c b/drivers/pci/controller/pci-xgene.c
index e64536047b65..7d7d8970fdc2 100644
--- a/drivers/pci/controller/pci-xgene.c
+++ b/drivers/pci/controller/pci-xgene.c
@@ -466,7 +466,7 @@ static int xgene_pcie_select_ib_reg(u8 *ib_reg_mask, u64 size)
return 1;
}
- if ((size > SZ_1K) && (size < SZ_1T) && !(*ib_reg_mask & (1 << 0))) {
+ if ((size > SZ_1K) && (size < SZ_4G) && !(*ib_reg_mask & (1 << 0))) {
*ib_reg_mask |= (1 << 0);
return 0;
}
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
index 69fd401691be..10d7e7e1b553 100644
--- a/drivers/pci/hotplug/pciehp.h
+++ b/drivers/pci/hotplug/pciehp.h
@@ -75,6 +75,8 @@ extern int pciehp_poll_time;
* @reset_lock: prevents access to the Data Link Layer Link Active bit in the
* Link Status register and to the Presence Detect State bit in the Slot
* Status register during a slot reset which may cause them to flap
+ * @depth: Number of additional hotplug ports in the path to the root bus,
+ * used as lock subclass for @reset_lock
* @ist_running: flag to keep user request waiting while IRQ thread is running
* @request_result: result of last user request submitted to the IRQ thread
* @requester: wait queue to wake up on completion of user request,
@@ -106,6 +108,7 @@ struct controller {
struct hotplug_slot hotplug_slot; /* hotplug core interface */
struct rw_semaphore reset_lock;
+ unsigned int depth;
unsigned int ist_running;
int request_result;
wait_queue_head_t requester;
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
index ad3393930ecb..e7fe4b42f039 100644
--- a/drivers/pci/hotplug/pciehp_core.c
+++ b/drivers/pci/hotplug/pciehp_core.c
@@ -166,7 +166,7 @@ static void pciehp_check_presence(struct controller *ctrl)
{
int occupied;
- down_read(&ctrl->reset_lock);
+ down_read_nested(&ctrl->reset_lock, ctrl->depth);
mutex_lock(&ctrl->state_lock);
occupied = pciehp_card_present_or_link_active(ctrl);
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c
index 3024d7e85e6a..3a46227e2c73 100644
--- a/drivers/pci/hotplug/pciehp_hpc.c
+++ b/drivers/pci/hotplug/pciehp_hpc.c
@@ -583,7 +583,7 @@ static void pciehp_ignore_dpc_link_change(struct controller *ctrl,
* the corresponding link change may have been ignored above.
* Synthesize it to ensure that it is acted on.
*/
- down_read(&ctrl->reset_lock);
+ down_read_nested(&ctrl->reset_lock, ctrl->depth);
if (!pciehp_check_link_active(ctrl))
pciehp_request(ctrl, PCI_EXP_SLTSTA_DLLSC);
up_read(&ctrl->reset_lock);
@@ -746,7 +746,7 @@ static irqreturn_t pciehp_ist(int irq, void *dev_id)
* Disable requests have higher priority than Presence Detect Changed
* or Data Link Layer State Changed events.
*/
- down_read(&ctrl->reset_lock);
+ down_read_nested(&ctrl->reset_lock, ctrl->depth);
if (events & DISABLE_SLOT)
pciehp_handle_disable_request(ctrl);
else if (events & (PCI_EXP_SLTSTA_PDC | PCI_EXP_SLTSTA_DLLSC))
@@ -880,7 +880,7 @@ int pciehp_reset_slot(struct hotplug_slot *hotplug_slot, bool probe)
if (probe)
return 0;
- down_write(&ctrl->reset_lock);
+ down_write_nested(&ctrl->reset_lock, ctrl->depth);
if (!ATTN_BUTTN(ctrl)) {
ctrl_mask |= PCI_EXP_SLTCTL_PDCE;
@@ -936,6 +936,20 @@ static inline void dbg_ctrl(struct controller *ctrl)
#define FLAG(x, y) (((x) & (y)) ? '+' : '-')
+static inline int pcie_hotplug_depth(struct pci_dev *dev)
+{
+ struct pci_bus *bus = dev->bus;
+ int depth = 0;
+
+ while (bus->parent) {
+ bus = bus->parent;
+ if (bus->self && bus->self->is_hotplug_bridge)
+ depth++;
+ }
+
+ return depth;
+}
+
struct controller *pcie_init(struct pcie_device *dev)
{
struct controller *ctrl;
@@ -949,6 +963,7 @@ struct controller *pcie_init(struct pcie_device *dev)
return NULL;
ctrl->pcie = dev;
+ ctrl->depth = pcie_hotplug_depth(dev->port);
pcie_capability_read_dword(pdev, PCI_EXP_SLTCAP, &slot_cap);
if (pdev->hotplug_user_indicators)
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index e11530cb0569..cc4c2b8a5efd 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -1193,19 +1193,24 @@ EXPORT_SYMBOL(pci_free_irq_vectors);
/**
* pci_irq_vector - return Linux IRQ number of a device vector
- * @dev: PCI device to operate on
- * @nr: device-relative interrupt vector index (0-based).
+ * @dev: PCI device to operate on
+ * @nr: Interrupt vector index (0-based)
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ * MSI-X: The index in the MSI-X vector table
+ * MSI: The index of the enabled MSI vectors
+ * INTx: Must be 0
+ *
+ * Return: The Linux interrupt number or -EINVAl if @nr is out of range.
*/
int pci_irq_vector(struct pci_dev *dev, unsigned int nr)
{
if (dev->msix_enabled) {
struct msi_desc *entry;
- int i = 0;
for_each_pci_msi_entry(entry, dev) {
- if (i == nr)
+ if (entry->msi_attrib.entry_nr == nr)
return entry->irq;
- i++;
}
WARN_ON_ONCE(1);
return -EINVAL;
@@ -1229,17 +1234,22 @@ EXPORT_SYMBOL(pci_irq_vector);
* pci_irq_get_affinity - return the affinity of a particular MSI vector
* @dev: PCI device to operate on
* @nr: device-relative interrupt vector index (0-based).
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ * MSI-X: The index in the MSI-X vector table
+ * MSI: The index of the enabled MSI vectors
+ * INTx: Must be 0
+ *
+ * Return: A cpumask pointer or NULL if @nr is out of range
*/
const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr)
{
if (dev->msix_enabled) {
struct msi_desc *entry;
- int i = 0;
for_each_pci_msi_entry(entry, dev) {
- if (i == nr)
+ if (entry->msi_attrib.entry_nr == nr)
return &entry->affinity->mask;
- i++;
}
WARN_ON_ONCE(1);
return NULL;
diff --git a/drivers/pci/pci-bridge-emul.c b/drivers/pci/pci-bridge-emul.c
index db97cddfc85e..37504c2cce9b 100644
--- a/drivers/pci/pci-bridge-emul.c
+++ b/drivers/pci/pci-bridge-emul.c
@@ -139,8 +139,13 @@ struct pci_bridge_reg_behavior pci_regs_behavior[PCI_STD_HEADER_SIZEOF / 4] = {
.ro = GENMASK(7, 0),
},
+ /*
+ * If expansion ROM is unsupported then ROM Base Address register must
+ * be implemented as read-only register that return 0 when read, same
+ * as for unused Base Address registers.
+ */
[PCI_ROM_ADDRESS1 / 4] = {
- .rw = GENMASK(31, 11) | BIT(0),
+ .ro = ~0,
},
/*
@@ -171,41 +176,55 @@ struct pci_bridge_reg_behavior pcie_cap_regs_behavior[PCI_CAP_PCIE_SIZEOF / 4] =
[PCI_CAP_LIST_ID / 4] = {
/*
* Capability ID, Next Capability Pointer and
- * Capabilities register are all read-only.
+ * bits [14:0] of Capabilities register are all read-only.
+ * Bit 15 of Capabilities register is reserved.
*/
- .ro = ~0,
+ .ro = GENMASK(30, 0),
},
[PCI_EXP_DEVCAP / 4] = {
- .ro = ~0,
+ /*
+ * Bits [31:29] and [17:16] are reserved.
+ * Bits [27:18] are reserved for non-upstream ports.
+ * Bits 28 and [14:6] are reserved for non-endpoint devices.
+ * Other bits are read-only.
+ */
+ .ro = BIT(15) | GENMASK(5, 0),
},
[PCI_EXP_DEVCTL / 4] = {
- /* Device control register is RW */
- .rw = GENMASK(15, 0),
+ /*
+ * Device control register is RW, except bit 15 which is
+ * reserved for non-endpoints or non-PCIe-to-PCI/X bridges.
+ */
+ .rw = GENMASK(14, 0),
/*
* Device status register has bits 6 and [3:0] W1C, [5:4] RO,
- * the rest is reserved
+ * the rest is reserved. Also bit 6 is reserved for non-upstream
+ * ports.
*/
- .w1c = (BIT(6) | GENMASK(3, 0)) << 16,
+ .w1c = GENMASK(3, 0) << 16,
.ro = GENMASK(5, 4) << 16,
},
[PCI_EXP_LNKCAP / 4] = {
- /* All bits are RO, except bit 23 which is reserved */
- .ro = lower_32_bits(~BIT(23)),
+ /*
+ * All bits are RO, except bit 23 which is reserved and
+ * bit 18 which is reserved for non-upstream ports.
+ */
+ .ro = lower_32_bits(~(BIT(23) | PCI_EXP_LNKCAP_CLKPM)),
},
[PCI_EXP_LNKCTL / 4] = {
/*
* Link control has bits [15:14], [11:3] and [1:0] RW, the
- * rest is reserved.
+ * rest is reserved. Bit 8 is reserved for non-upstream ports.
*
* Link status has bits [13:0] RO, and bits [15:14]
* W1C.
*/
- .rw = GENMASK(15, 14) | GENMASK(11, 3) | GENMASK(1, 0),
+ .rw = GENMASK(15, 14) | GENMASK(11, 9) | GENMASK(7, 3) | GENMASK(1, 0),
.ro = GENMASK(13, 0) << 16,
.w1c = GENMASK(15, 14) << 16,
},
@@ -277,11 +296,9 @@ int pci_bridge_emul_init(struct pci_bridge_emul *bridge,
if (bridge->has_pcie) {
bridge->conf.capabilities_pointer = PCI_CAP_PCIE_START;
+ bridge->conf.status |= cpu_to_le16(PCI_STATUS_CAP_LIST);
bridge->pcie_conf.cap_id = PCI_CAP_ID_EXP;
- /* Set PCIe v2, root port, slot support */
- bridge->pcie_conf.cap =
- cpu_to_le16(PCI_EXP_TYPE_ROOT_PORT << 4 | 2 |
- PCI_EXP_FLAGS_SLOT);
+ bridge->pcie_conf.cap |= cpu_to_le16(PCI_EXP_TYPE_ROOT_PORT << 4);
bridge->pcie_cap_regs_behavior =
kmemdup(pcie_cap_regs_behavior,
sizeof(pcie_cap_regs_behavior),
@@ -290,6 +307,27 @@ int pci_bridge_emul_init(struct pci_bridge_emul *bridge,
kfree(bridge->pci_regs_behavior);
return -ENOMEM;
}
+ /* These bits are applicable only for PCI and reserved on PCIe */
+ bridge->pci_regs_behavior[PCI_CACHE_LINE_SIZE / 4].ro &=
+ ~GENMASK(15, 8);
+ bridge->pci_regs_behavior[PCI_COMMAND / 4].ro &=
+ ~((PCI_COMMAND_SPECIAL | PCI_COMMAND_INVALIDATE |
+ PCI_COMMAND_VGA_PALETTE | PCI_COMMAND_WAIT |
+ PCI_COMMAND_FAST_BACK) |
+ (PCI_STATUS_66MHZ | PCI_STATUS_FAST_BACK |
+ PCI_STATUS_DEVSEL_MASK) << 16);
+ bridge->pci_regs_behavior[PCI_PRIMARY_BUS / 4].ro &=
+ ~GENMASK(31, 24);
+ bridge->pci_regs_behavior[PCI_IO_BASE / 4].ro &=
+ ~((PCI_STATUS_66MHZ | PCI_STATUS_FAST_BACK |
+ PCI_STATUS_DEVSEL_MASK) << 16);
+ bridge->pci_regs_behavior[PCI_INTERRUPT_LINE / 4].rw &=
+ ~((PCI_BRIDGE_CTL_MASTER_ABORT |
+ BIT(8) | BIT(9) | BIT(11)) << 16);
+ bridge->pci_regs_behavior[PCI_INTERRUPT_LINE / 4].ro &=
+ ~((PCI_BRIDGE_CTL_FAST_BACK) << 16);
+ bridge->pci_regs_behavior[PCI_INTERRUPT_LINE / 4].w1c &=
+ ~(BIT(10) << 16);
}
if (flags & PCI_BRIDGE_EMUL_NO_PREFETCHABLE_BAR) {
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 208fa03acdda..0663762ea69d 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -4103,6 +4103,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9120,
quirk_dma_func1_alias);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9123,
quirk_dma_func1_alias);
+/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c136 */
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9125,
+ quirk_dma_func1_alias);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9128,
quirk_dma_func1_alias);
/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c14 */
diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c
index e211e2619680..f70197154a36 100644
--- a/drivers/pcmcia/cs.c
+++ b/drivers/pcmcia/cs.c
@@ -666,18 +666,16 @@ static int pccardd(void *__skt)
if (events || sysfs_events)
continue;
+ set_current_state(TASK_INTERRUPTIBLE);
if (kthread_should_stop())
break;
- set_current_state(TASK_INTERRUPTIBLE);
-
schedule();
- /* make sure we are running */
- __set_current_state(TASK_RUNNING);
-
try_to_freeze();
}
+ /* make sure we are running before we exit */
+ __set_current_state(TASK_RUNNING);
/* shut down socket, if a device is still present */
if (skt->state & SOCKET_PRESENT) {
diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c
index bb15a8bdbaab..1cac52870711 100644
--- a/drivers/pcmcia/rsrc_nonstatic.c
+++ b/drivers/pcmcia/rsrc_nonstatic.c
@@ -690,6 +690,9 @@ static struct resource *__nonstatic_find_io_region(struct pcmcia_socket *s,
unsigned long min = base;
int ret;
+ if (!res)
+ return NULL;
+
data.mask = align - 1;
data.offset = base & data.mask;
data.map = &s_data->io_db;
@@ -809,6 +812,9 @@ static struct resource *nonstatic_find_mem_region(u_long base, u_long num,
unsigned long min, max;
int ret, i, j;
+ if (!res)
+ return NULL;
+
low = low || !(s->features & SS_CAP_PAGE_REGS);
data.mask = align - 1;
diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
index bc3cba5f8c5d..400eb7f579dc 100644
--- a/drivers/perf/arm-cmn.c
+++ b/drivers/perf/arm-cmn.c
@@ -1561,7 +1561,8 @@ static int arm_cmn_probe(struct platform_device *pdev)
err = perf_pmu_register(&cmn->pmu, name, -1);
if (err)
- cpuhp_state_remove_instance(arm_cmn_hp_state, &cmn->cpuhp_node);
+ cpuhp_state_remove_instance_nocalls(arm_cmn_hp_state, &cmn->cpuhp_node);
+
return err;
}
@@ -1572,7 +1573,7 @@ static int arm_cmn_remove(struct platform_device *pdev)
writel_relaxed(0, cmn->dtc[0].base + CMN_DT_DTC_CTL);
perf_pmu_unregister(&cmn->pmu);
- cpuhp_state_remove_instance(arm_cmn_hp_state, &cmn->cpuhp_node);
+ cpuhp_state_remove_instance_nocalls(arm_cmn_hp_state, &cmn->cpuhp_node);
return 0;
}
diff --git a/drivers/phy/cadence/phy-cadence-sierra.c b/drivers/phy/cadence/phy-cadence-sierra.c
index e93818e3991f..3e2d096d54fd 100644
--- a/drivers/phy/cadence/phy-cadence-sierra.c
+++ b/drivers/phy/cadence/phy-cadence-sierra.c
@@ -215,7 +215,10 @@ static const int pll_mux_parent_index[][SIERRA_NUM_CMN_PLLC_PARENTS] = {
[CMN_PLLLC1] = { PLL1_REFCLK, PLL0_REFCLK },
};
-static u32 cdns_sierra_pll_mux_table[] = { 0, 1 };
+static u32 cdns_sierra_pll_mux_table[][SIERRA_NUM_CMN_PLLC_PARENTS] = {
+ [CMN_PLLLC] = { 0, 1 },
+ [CMN_PLLLC1] = { 1, 0 },
+};
struct cdns_sierra_inst {
struct phy *phy;
@@ -436,11 +439,25 @@ static const struct phy_ops ops = {
static u8 cdns_sierra_pll_mux_get_parent(struct clk_hw *hw)
{
struct cdns_sierra_pll_mux *mux = to_cdns_sierra_pll_mux(hw);
+ struct regmap_field *plllc1en_field = mux->plllc1en_field;
+ struct regmap_field *termen_field = mux->termen_field;
struct regmap_field *field = mux->pfdclk_sel_preg;
unsigned int val;
+ int index;
regmap_field_read(field, &val);
- return clk_mux_val_to_index(hw, cdns_sierra_pll_mux_table, 0, val);
+
+ if (strstr(clk_hw_get_name(hw), clk_names[CDNS_SIERRA_PLL_CMNLC1])) {
+ index = clk_mux_val_to_index(hw, cdns_sierra_pll_mux_table[CMN_PLLLC1], 0, val);
+ if (index == 1) {
+ regmap_field_write(plllc1en_field, 1);
+ regmap_field_write(termen_field, 1);
+ }
+ } else {
+ index = clk_mux_val_to_index(hw, cdns_sierra_pll_mux_table[CMN_PLLLC], 0, val);
+ }
+
+ return index;
}
static int cdns_sierra_pll_mux_set_parent(struct clk_hw *hw, u8 index)
@@ -458,7 +475,11 @@ static int cdns_sierra_pll_mux_set_parent(struct clk_hw *hw, u8 index)
ret |= regmap_field_write(termen_field, 1);
}
- val = cdns_sierra_pll_mux_table[index];
+ if (strstr(clk_hw_get_name(hw), clk_names[CDNS_SIERRA_PLL_CMNLC1]))
+ val = cdns_sierra_pll_mux_table[CMN_PLLLC1][index];
+ else
+ val = cdns_sierra_pll_mux_table[CMN_PLLLC][index];
+
ret |= regmap_field_write(field, val);
return ret;
@@ -496,8 +517,8 @@ static int cdns_sierra_pll_mux_register(struct cdns_sierra_phy *sp,
for (i = 0; i < num_parents; i++) {
clk = sp->input_clks[pll_mux_parent_index[clk_index][i]];
if (IS_ERR_OR_NULL(clk)) {
- dev_err(dev, "No parent clock for derived_refclk\n");
- return PTR_ERR(clk);
+ dev_err(dev, "No parent clock for PLL mux clocks\n");
+ return IS_ERR(clk) ? PTR_ERR(clk) : -ENOENT;
}
parent_names[i] = __clk_get_name(clk);
}
diff --git a/drivers/phy/mediatek/phy-mtk-mipi-dsi.c b/drivers/phy/mediatek/phy-mtk-mipi-dsi.c
index 28ad9403c441..67b005d5b9e3 100644
--- a/drivers/phy/mediatek/phy-mtk-mipi-dsi.c
+++ b/drivers/phy/mediatek/phy-mtk-mipi-dsi.c
@@ -146,6 +146,8 @@ static int mtk_mipi_tx_probe(struct platform_device *pdev)
return -ENOMEM;
mipi_tx->driver_data = of_device_get_match_data(dev);
+ if (!mipi_tx->driver_data)
+ return -ENODEV;
mipi_tx->regs = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(mipi_tx->regs))
diff --git a/drivers/phy/mediatek/phy-mtk-tphy.c b/drivers/phy/mediatek/phy-mtk-tphy.c
index cdcef865fe9e..98a942c607a6 100644
--- a/drivers/phy/mediatek/phy-mtk-tphy.c
+++ b/drivers/phy/mediatek/phy-mtk-tphy.c
@@ -12,6 +12,7 @@
#include <linux/iopoll.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
+#include <linux/nvmem-consumer.h>
#include <linux/of_address.h>
#include <linux/of_device.h>
#include <linux/phy/phy.h>
@@ -41,6 +42,9 @@
#define SSUSB_SIFSLV_V2_U3PHYD 0x200
#define SSUSB_SIFSLV_V2_U3PHYA 0x400
+#define U3P_MISC_REG1 0x04
+#define MR1_EFUSE_AUTO_LOAD_DIS BIT(6)
+
#define U3P_USBPHYACR0 0x000
#define PA0_RG_U2PLL_FORCE_ON BIT(15)
#define PA0_USB20_PLL_PREDIV GENMASK(7, 6)
@@ -133,6 +137,8 @@
#define P3C_RG_SWRST_U3_PHYD_FORCE_EN BIT(24)
#define U3P_U3_PHYA_REG0 0x000
+#define P3A_RG_IEXT_INTR GENMASK(15, 10)
+#define P3A_RG_IEXT_INTR_VAL(x) ((0x3f & (x)) << 10)
#define P3A_RG_CLKDRV_OFF GENMASK(3, 2)
#define P3A_RG_CLKDRV_OFF_VAL(x) ((0x3 & (x)) << 2)
@@ -187,6 +193,19 @@
#define P3D_RG_FWAKE_TH GENMASK(21, 16)
#define P3D_RG_FWAKE_TH_VAL(x) ((0x3f & (x)) << 16)
+#define U3P_U3_PHYD_IMPCAL0 0x010
+#define P3D_RG_FORCE_TX_IMPEL BIT(31)
+#define P3D_RG_TX_IMPEL GENMASK(28, 24)
+#define P3D_RG_TX_IMPEL_VAL(x) ((0x1f & (x)) << 24)
+
+#define U3P_U3_PHYD_IMPCAL1 0x014
+#define P3D_RG_FORCE_RX_IMPEL BIT(31)
+#define P3D_RG_RX_IMPEL GENMASK(28, 24)
+#define P3D_RG_RX_IMPEL_VAL(x) ((0x1f & (x)) << 24)
+
+#define U3P_U3_PHYD_RSV 0x054
+#define P3D_RG_EFUSE_AUTO_LOAD_DIS BIT(12)
+
#define U3P_U3_PHYD_CDR1 0x05c
#define P3D_RG_CDR_BIR_LTD1 GENMASK(28, 24)
#define P3D_RG_CDR_BIR_LTD1_VAL(x) ((0x1f & (x)) << 24)
@@ -307,6 +326,11 @@ struct mtk_phy_pdata {
* 48M PLL, fix it by switching PLL to 26M from default 48M
*/
bool sw_pll_48m_to_26m;
+ /*
+ * Some SoCs (e.g. mt8195) drop a bit when use auto load efuse,
+ * support sw way, also support it for v2/v3 optionally.
+ */
+ bool sw_efuse_supported;
enum mtk_phy_version version;
};
@@ -336,6 +360,10 @@ struct mtk_phy_instance {
struct regmap *type_sw;
u32 type_sw_reg;
u32 type_sw_index;
+ u32 efuse_sw_en;
+ u32 efuse_intr;
+ u32 efuse_tx_imp;
+ u32 efuse_rx_imp;
int eye_src;
int eye_vrt;
int eye_term;
@@ -1040,6 +1068,130 @@ static int phy_type_set(struct mtk_phy_instance *instance)
return 0;
}
+static int phy_efuse_get(struct mtk_tphy *tphy, struct mtk_phy_instance *instance)
+{
+ struct device *dev = &instance->phy->dev;
+ int ret = 0;
+
+ /* tphy v1 doesn't support sw efuse, skip it */
+ if (!tphy->pdata->sw_efuse_supported) {
+ instance->efuse_sw_en = 0;
+ return 0;
+ }
+
+ /* software efuse is optional */
+ instance->efuse_sw_en = device_property_read_bool(dev, "nvmem-cells");
+ if (!instance->efuse_sw_en)
+ return 0;
+
+ switch (instance->type) {
+ case PHY_TYPE_USB2:
+ ret = nvmem_cell_read_variable_le_u32(dev, "intr", &instance->efuse_intr);
+ if (ret) {
+ dev_err(dev, "fail to get u2 intr efuse, %d\n", ret);
+ break;
+ }
+
+ /* no efuse, ignore it */
+ if (!instance->efuse_intr) {
+ dev_warn(dev, "no u2 intr efuse, but dts enable it\n");
+ instance->efuse_sw_en = 0;
+ break;
+ }
+
+ dev_dbg(dev, "u2 efuse - intr %x\n", instance->efuse_intr);
+ break;
+
+ case PHY_TYPE_USB3:
+ case PHY_TYPE_PCIE:
+ ret = nvmem_cell_read_variable_le_u32(dev, "intr", &instance->efuse_intr);
+ if (ret) {
+ dev_err(dev, "fail to get u3 intr efuse, %d\n", ret);
+ break;
+ }
+
+ ret = nvmem_cell_read_variable_le_u32(dev, "rx_imp", &instance->efuse_rx_imp);
+ if (ret) {
+ dev_err(dev, "fail to get u3 rx_imp efuse, %d\n", ret);
+ break;
+ }
+
+ ret = nvmem_cell_read_variable_le_u32(dev, "tx_imp", &instance->efuse_tx_imp);
+ if (ret) {
+ dev_err(dev, "fail to get u3 tx_imp efuse, %d\n", ret);
+ break;
+ }
+
+ /* no efuse, ignore it */
+ if (!instance->efuse_intr &&
+ !instance->efuse_rx_imp &&
+ !instance->efuse_rx_imp) {
+ dev_warn(dev, "no u3 intr efuse, but dts enable it\n");
+ instance->efuse_sw_en = 0;
+ break;
+ }
+
+ dev_dbg(dev, "u3 efuse - intr %x, rx_imp %x, tx_imp %x\n",
+ instance->efuse_intr, instance->efuse_rx_imp,instance->efuse_tx_imp);
+ break;
+ default:
+ dev_err(dev, "no sw efuse for type %d\n", instance->type);
+ ret = -EINVAL;
+ }
+
+ return ret;
+}
+
+static void phy_efuse_set(struct mtk_phy_instance *instance)
+{
+ struct device *dev = &instance->phy->dev;
+ struct u2phy_banks *u2_banks = &instance->u2_banks;
+ struct u3phy_banks *u3_banks = &instance->u3_banks;
+ u32 tmp;
+
+ if (!instance->efuse_sw_en)
+ return;
+
+ switch (instance->type) {
+ case PHY_TYPE_USB2:
+ tmp = readl(u2_banks->misc + U3P_MISC_REG1);
+ tmp |= MR1_EFUSE_AUTO_LOAD_DIS;
+ writel(tmp, u2_banks->misc + U3P_MISC_REG1);
+
+ tmp = readl(u2_banks->com + U3P_USBPHYACR1);
+ tmp &= ~PA1_RG_INTR_CAL;
+ tmp |= PA1_RG_INTR_CAL_VAL(instance->efuse_intr);
+ writel(tmp, u2_banks->com + U3P_USBPHYACR1);
+ break;
+ case PHY_TYPE_USB3:
+ case PHY_TYPE_PCIE:
+ tmp = readl(u3_banks->phyd + U3P_U3_PHYD_RSV);
+ tmp |= P3D_RG_EFUSE_AUTO_LOAD_DIS;
+ writel(tmp, u3_banks->phyd + U3P_U3_PHYD_RSV);
+
+ tmp = readl(u3_banks->phyd + U3P_U3_PHYD_IMPCAL0);
+ tmp &= ~P3D_RG_TX_IMPEL;
+ tmp |= P3D_RG_TX_IMPEL_VAL(instance->efuse_tx_imp);
+ tmp |= P3D_RG_FORCE_TX_IMPEL;
+ writel(tmp, u3_banks->phyd + U3P_U3_PHYD_IMPCAL0);
+
+ tmp = readl(u3_banks->phyd + U3P_U3_PHYD_IMPCAL1);
+ tmp &= ~P3D_RG_RX_IMPEL;
+ tmp |= P3D_RG_RX_IMPEL_VAL(instance->efuse_rx_imp);
+ tmp |= P3D_RG_FORCE_RX_IMPEL;
+ writel(tmp, u3_banks->phyd + U3P_U3_PHYD_IMPCAL1);
+
+ tmp = readl(u3_banks->phya + U3P_U3_PHYA_REG0);
+ tmp &= ~P3A_RG_IEXT_INTR;
+ tmp |= P3A_RG_IEXT_INTR_VAL(instance->efuse_intr);
+ writel(tmp, u3_banks->phya + U3P_U3_PHYA_REG0);
+ break;
+ default:
+ dev_warn(dev, "no sw efuse for type %d\n", instance->type);
+ break;
+ }
+}
+
static int mtk_phy_init(struct phy *phy)
{
struct mtk_phy_instance *instance = phy_get_drvdata(phy);
@@ -1050,6 +1202,8 @@ static int mtk_phy_init(struct phy *phy)
if (ret)
return ret;
+ phy_efuse_set(instance);
+
switch (instance->type) {
case PHY_TYPE_USB2:
u2_phy_instance_init(tphy, instance);
@@ -1134,6 +1288,7 @@ static struct phy *mtk_phy_xlate(struct device *dev,
struct mtk_phy_instance *instance = NULL;
struct device_node *phy_np = args->np;
int index;
+ int ret;
if (args->args_count != 1) {
dev_err(dev, "invalid number of cells in 'phy' property\n");
@@ -1174,6 +1329,10 @@ static struct phy *mtk_phy_xlate(struct device *dev,
return ERR_PTR(-EINVAL);
}
+ ret = phy_efuse_get(tphy, instance);
+ if (ret)
+ return ERR_PTR(ret);
+
phy_parse_property(tphy, instance);
phy_type_set(instance);
@@ -1196,10 +1355,12 @@ static const struct mtk_phy_pdata tphy_v1_pdata = {
static const struct mtk_phy_pdata tphy_v2_pdata = {
.avoid_rx_sen_degradation = false,
+ .sw_efuse_supported = true,
.version = MTK_PHY_V2,
};
static const struct mtk_phy_pdata tphy_v3_pdata = {
+ .sw_efuse_supported = true,
.version = MTK_PHY_V3,
};
@@ -1210,6 +1371,7 @@ static const struct mtk_phy_pdata mt8173_pdata = {
static const struct mtk_phy_pdata mt8195_pdata = {
.sw_pll_48m_to_26m = true,
+ .sw_efuse_supported = true,
.version = MTK_PHY_V3,
};
diff --git a/drivers/phy/socionext/phy-uniphier-usb3ss.c b/drivers/phy/socionext/phy-uniphier-usb3ss.c
index 6700645bcbe6..3b5ffc16a694 100644
--- a/drivers/phy/socionext/phy-uniphier-usb3ss.c
+++ b/drivers/phy/socionext/phy-uniphier-usb3ss.c
@@ -22,11 +22,13 @@
#include <linux/reset.h>
#define SSPHY_TESTI 0x0
-#define SSPHY_TESTO 0x4
#define TESTI_DAT_MASK GENMASK(13, 6)
#define TESTI_ADR_MASK GENMASK(5, 1)
#define TESTI_WR_EN BIT(0)
+#define SSPHY_TESTO 0x4
+#define TESTO_DAT_MASK GENMASK(7, 0)
+
#define PHY_F(regno, msb, lsb) { (regno), (msb), (lsb) }
#define CDR_CPD_TRIM PHY_F(7, 3, 0) /* RxPLL charge pump current */
@@ -84,12 +86,12 @@ static void uniphier_u3ssphy_set_param(struct uniphier_u3ssphy_priv *priv,
val = FIELD_PREP(TESTI_DAT_MASK, 1);
val |= FIELD_PREP(TESTI_ADR_MASK, p->field.reg_no);
uniphier_u3ssphy_testio_write(priv, val);
- val = readl(priv->base + SSPHY_TESTO);
+ val = readl(priv->base + SSPHY_TESTO) & TESTO_DAT_MASK;
/* update value */
- val &= ~FIELD_PREP(TESTI_DAT_MASK, field_mask);
+ val &= ~field_mask;
data = field_mask & (p->value << p->field.lsb);
- val = FIELD_PREP(TESTI_DAT_MASK, data);
+ val = FIELD_PREP(TESTI_DAT_MASK, data | val);
val |= FIELD_PREP(TESTI_ADR_MASK, p->field.reg_no);
uniphier_u3ssphy_testio_write(priv, val);
uniphier_u3ssphy_testio_write(priv, val | TESTI_WR_EN);
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index 5ce260f152ce..dc52da94af0b 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -2748,7 +2748,7 @@ static int rockchip_pinctrl_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, info);
- ret = of_platform_populate(np, rockchip_bank_match, NULL, NULL);
+ ret = of_platform_populate(np, NULL, NULL, &pdev->dev);
if (ret) {
dev_err(&pdev->dev, "failed to register gpio device\n");
return ret;
diff --git a/drivers/power/reset/mt6323-poweroff.c b/drivers/power/reset/mt6323-poweroff.c
index 0532803e6cbc..d90e76fcb938 100644
--- a/drivers/power/reset/mt6323-poweroff.c
+++ b/drivers/power/reset/mt6323-poweroff.c
@@ -57,6 +57,9 @@ static int mt6323_pwrc_probe(struct platform_device *pdev)
return -ENOMEM;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res)
+ return -EINVAL;
+
pwrc->base = res->start;
pwrc->regmap = mt6397_chip->regmap;
pwrc->dev = &pdev->dev;
diff --git a/drivers/ptp/ptp_vclock.c b/drivers/ptp/ptp_vclock.c
index baee0379482b..ab1d233173e1 100644
--- a/drivers/ptp/ptp_vclock.c
+++ b/drivers/ptp/ptp_vclock.c
@@ -185,8 +185,8 @@ int ptp_get_vclocks_index(int pclock_index, int **vclock_index)
}
EXPORT_SYMBOL(ptp_get_vclocks_index);
-void ptp_convert_timestamp(struct skb_shared_hwtstamps *hwtstamps,
- int vclock_index)
+ktime_t ptp_convert_timestamp(const struct skb_shared_hwtstamps *hwtstamps,
+ int vclock_index)
{
char name[PTP_CLOCK_NAME_LEN] = "";
struct ptp_vclock *vclock;
@@ -198,12 +198,12 @@ void ptp_convert_timestamp(struct skb_shared_hwtstamps *hwtstamps,
snprintf(name, PTP_CLOCK_NAME_LEN, "ptp%d", vclock_index);
dev = class_find_device_by_name(ptp_class, name);
if (!dev)
- return;
+ return 0;
ptp = dev_get_drvdata(dev);
if (!ptp->is_virtual_clock) {
put_device(dev);
- return;
+ return 0;
}
vclock = info_to_vclock(ptp->info);
@@ -215,7 +215,7 @@ void ptp_convert_timestamp(struct skb_shared_hwtstamps *hwtstamps,
spin_unlock_irqrestore(&vclock->lock, flags);
put_device(dev);
- hwtstamps->hwtstamp = ns_to_ktime(ns);
+ return ns_to_ktime(ns);
}
EXPORT_SYMBOL(ptp_convert_timestamp);
#endif
diff --git a/drivers/regulator/da9121-regulator.c b/drivers/regulator/da9121-regulator.c
index e66925090258..0a4fd449c27d 100644
--- a/drivers/regulator/da9121-regulator.c
+++ b/drivers/regulator/da9121-regulator.c
@@ -253,6 +253,11 @@ static int da9121_set_current_limit(struct regulator_dev *rdev,
goto error;
}
+ if (rdev->desc->ops->is_enabled(rdev)) {
+ ret = -EBUSY;
+ goto error;
+ }
+
ret = da9121_ceiling_selector(rdev, min_ua, max_ua, &sel);
if (ret < 0)
goto error;
diff --git a/drivers/regulator/qcom-labibb-regulator.c b/drivers/regulator/qcom-labibb-regulator.c
index b3da0dc58782..639b71eb41ff 100644
--- a/drivers/regulator/qcom-labibb-regulator.c
+++ b/drivers/regulator/qcom-labibb-regulator.c
@@ -260,7 +260,7 @@ static irqreturn_t qcom_labibb_ocp_isr(int irq, void *chip)
/* If the regulator is not enabled, this is a fake event */
if (!ops->is_enabled(vreg->rdev))
- return 0;
+ return IRQ_HANDLED;
/* If we tried to recover for too many times it's not getting better */
if (vreg->ocp_irq_count > LABIBB_MAX_OCP_COUNT)
diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
index 198fcc6551f6..8e077792bddd 100644
--- a/drivers/regulator/qcom_smd-regulator.c
+++ b/drivers/regulator/qcom_smd-regulator.c
@@ -9,6 +9,7 @@
#include <linux/of_device.h>
#include <linux/platform_device.h>
#include <linux/regulator/driver.h>
+#include <linux/regulator/of_regulator.h>
#include <linux/soc/qcom/smd-rpm.h>
struct qcom_rpm_reg {
@@ -1190,52 +1191,91 @@ static const struct of_device_id rpm_of_match[] = {
};
MODULE_DEVICE_TABLE(of, rpm_of_match);
-static int rpm_reg_probe(struct platform_device *pdev)
+/**
+ * rpm_regulator_init_vreg() - initialize all attributes of a qcom_smd-regulator
+ * @vreg: Pointer to the individual qcom_smd-regulator resource
+ * @dev: Pointer to the top level qcom_smd-regulator PMIC device
+ * @node: Pointer to the individual qcom_smd-regulator resource
+ * device node
+ * @rpm: Pointer to the rpm bus node
+ * @pmic_rpm_data: Pointer to a null-terminated array of qcom_smd-regulator
+ * resources defined for the top level PMIC device
+ *
+ * Return: 0 on success, errno on failure
+ */
+static int rpm_regulator_init_vreg(struct qcom_rpm_reg *vreg, struct device *dev,
+ struct device_node *node, struct qcom_smd_rpm *rpm,
+ const struct rpm_regulator_data *pmic_rpm_data)
{
- const struct rpm_regulator_data *reg;
- const struct of_device_id *match;
- struct regulator_config config = { };
+ struct regulator_config config = {};
+ const struct rpm_regulator_data *rpm_data;
struct regulator_dev *rdev;
+ int ret;
+
+ for (rpm_data = pmic_rpm_data; rpm_data->name; rpm_data++)
+ if (of_node_name_eq(node, rpm_data->name))
+ break;
+
+ if (!rpm_data->name) {
+ dev_err(dev, "Unknown regulator %pOFn\n", node);
+ return -EINVAL;
+ }
+
+ vreg->dev = dev;
+ vreg->rpm = rpm;
+ vreg->type = rpm_data->type;
+ vreg->id = rpm_data->id;
+
+ memcpy(&vreg->desc, rpm_data->desc, sizeof(vreg->desc));
+ vreg->desc.name = rpm_data->name;
+ vreg->desc.supply_name = rpm_data->supply;
+ vreg->desc.owner = THIS_MODULE;
+ vreg->desc.type = REGULATOR_VOLTAGE;
+ vreg->desc.of_match = rpm_data->name;
+
+ config.dev = dev;
+ config.of_node = node;
+ config.driver_data = vreg;
+
+ rdev = devm_regulator_register(dev, &vreg->desc, &config);
+ if (IS_ERR(rdev)) {
+ ret = PTR_ERR(rdev);
+ dev_err(dev, "%pOFn: devm_regulator_register() failed, ret=%d\n", node, ret);
+ return ret;
+ }
+
+ return 0;
+}
+
+static int rpm_reg_probe(struct platform_device *pdev)
+{
+ struct device *dev = &pdev->dev;
+ const struct rpm_regulator_data *vreg_data;
+ struct device_node *node;
struct qcom_rpm_reg *vreg;
struct qcom_smd_rpm *rpm;
+ int ret;
rpm = dev_get_drvdata(pdev->dev.parent);
if (!rpm) {
- dev_err(&pdev->dev, "unable to retrieve handle to rpm\n");
+ dev_err(&pdev->dev, "Unable to retrieve handle to rpm\n");
return -ENODEV;
}
- match = of_match_device(rpm_of_match, &pdev->dev);
- if (!match) {
- dev_err(&pdev->dev, "failed to match device\n");
+ vreg_data = of_device_get_match_data(dev);
+ if (!vreg_data)
return -ENODEV;
- }
- for (reg = match->data; reg->name; reg++) {
+ for_each_available_child_of_node(dev->of_node, node) {
vreg = devm_kzalloc(&pdev->dev, sizeof(*vreg), GFP_KERNEL);
if (!vreg)
return -ENOMEM;
- vreg->dev = &pdev->dev;
- vreg->type = reg->type;
- vreg->id = reg->id;
- vreg->rpm = rpm;
-
- memcpy(&vreg->desc, reg->desc, sizeof(vreg->desc));
-
- vreg->desc.id = -1;
- vreg->desc.owner = THIS_MODULE;
- vreg->desc.type = REGULATOR_VOLTAGE;
- vreg->desc.name = reg->name;
- vreg->desc.supply_name = reg->supply;
- vreg->desc.of_match = reg->name;
-
- config.dev = &pdev->dev;
- config.driver_data = vreg;
- rdev = devm_regulator_register(&pdev->dev, &vreg->desc, &config);
- if (IS_ERR(rdev)) {
- dev_err(&pdev->dev, "failed to register %s\n", reg->name);
- return PTR_ERR(rdev);
+ ret = rpm_regulator_init_vreg(vreg, dev, node, rpm, vreg_data);
+
+ if (ret < 0) {
+ of_node_put(node);
+ return ret;
}
}
diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
index ff620688fad9..05c39e1c56b4 100644
--- a/drivers/remoteproc/imx_rproc.c
+++ b/drivers/remoteproc/imx_rproc.c
@@ -830,6 +830,7 @@ static int imx_rproc_remove(struct platform_device *pdev)
clk_disable_unprepare(priv->clk);
rproc_del(rproc);
imx_rproc_free_mbox(rproc);
+ destroy_workqueue(priv->workqueue);
rproc_free(rproc);
return 0;
diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c
index 9151836190ce..a71de08acc7b 100644
--- a/drivers/rpmsg/rpmsg_core.c
+++ b/drivers/rpmsg/rpmsg_core.c
@@ -519,13 +519,25 @@ static int rpmsg_dev_probe(struct device *dev)
err = rpdrv->probe(rpdev);
if (err) {
dev_err(dev, "%s: failed: %d\n", __func__, err);
- if (ept)
- rpmsg_destroy_ept(ept);
- goto out;
+ goto destroy_ept;
}
- if (ept && rpdev->ops->announce_create)
+ if (ept && rpdev->ops->announce_create) {
err = rpdev->ops->announce_create(rpdev);
+ if (err) {
+ dev_err(dev, "failed to announce creation\n");
+ goto remove_rpdev;
+ }
+ }
+
+ return 0;
+
+remove_rpdev:
+ if (rpdrv->remove)
+ rpdrv->remove(rpdev);
+destroy_ept:
+ if (ept)
+ rpmsg_destroy_ept(ept);
out:
return err;
}
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index 4eb53412b808..dc3f8b0dde98 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -457,7 +457,10 @@ static int cmos_set_alarm(struct device *dev, struct rtc_wkalrm *t)
min = t->time.tm_min;
sec = t->time.tm_sec;
+ spin_lock_irq(&rtc_lock);
rtc_control = CMOS_READ(RTC_CONTROL);
+ spin_unlock_irq(&rtc_lock);
+
if (!(rtc_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
/* Writing 0xff means "don't care" or "match all". */
mon = (mon <= 12) ? bin2bcd(mon) : 0xff;
diff --git a/drivers/rtc/rtc-pxa.c b/drivers/rtc/rtc-pxa.c
index d2f1d8f754bf..cf8119b6d320 100644
--- a/drivers/rtc/rtc-pxa.c
+++ b/drivers/rtc/rtc-pxa.c
@@ -330,6 +330,10 @@ static int __init pxa_rtc_probe(struct platform_device *pdev)
if (sa1100_rtc->irq_alarm < 0)
return -ENXIO;
+ sa1100_rtc->rtc = devm_rtc_allocate_device(&pdev->dev);
+ if (IS_ERR(sa1100_rtc->rtc))
+ return PTR_ERR(sa1100_rtc->rtc);
+
pxa_rtc->base = devm_ioremap(dev, pxa_rtc->ress->start,
resource_size(pxa_rtc->ress));
if (!pxa_rtc->base) {
diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
index befeb7c34290..19fd9d263f47 100644
--- a/drivers/scsi/lpfc/lpfc.h
+++ b/drivers/scsi/lpfc/lpfc.h
@@ -1022,7 +1022,6 @@ struct lpfc_hba {
#define HBA_DEVLOSS_TMO 0x2000 /* HBA in devloss timeout */
#define HBA_RRQ_ACTIVE 0x4000 /* process the rrq active list */
#define HBA_IOQ_FLUSH 0x8000 /* FCP/NVME I/O queues being flushed */
-#define HBA_FW_DUMP_OP 0x10000 /* Skips fn reset before FW dump */
#define HBA_RECOVERABLE_UE 0x20000 /* Firmware supports recoverable UE */
#define HBA_FORCED_LINK_SPEED 0x40000 /*
* Firmware supports Forced Link Speed
@@ -1038,6 +1037,7 @@ struct lpfc_hba {
#define HBA_HBEAT_TMO 0x8000000 /* HBEAT initiated after timeout */
#define HBA_FLOGI_OUTSTANDING 0x10000000 /* FLOGI is outstanding */
+ struct completion *fw_dump_cmpl; /* cmpl event tracker for fw_dump */
uint32_t fcp_ring_in_use; /* When polling test if intr-hndlr active*/
struct lpfc_dmabuf slim2p;
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index ebe417921dac..f20c4fe1fb8b 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -1709,25 +1709,25 @@ lpfc_sli4_pdev_reg_request(struct lpfc_hba *phba, uint32_t opcode)
before_fc_flag = phba->pport->fc_flag;
sriov_nr_virtfn = phba->cfg_sriov_nr_virtfn;
- /* Disable SR-IOV virtual functions if enabled */
- if (phba->cfg_sriov_nr_virtfn) {
- pci_disable_sriov(pdev);
- phba->cfg_sriov_nr_virtfn = 0;
- }
+ if (opcode == LPFC_FW_DUMP) {
+ init_completion(&online_compl);
+ phba->fw_dump_cmpl = &online_compl;
+ } else {
+ /* Disable SR-IOV virtual functions if enabled */
+ if (phba->cfg_sriov_nr_virtfn) {
+ pci_disable_sriov(pdev);
+ phba->cfg_sriov_nr_virtfn = 0;
+ }
- if (opcode == LPFC_FW_DUMP)
- phba->hba_flag |= HBA_FW_DUMP_OP;
+ status = lpfc_do_offline(phba, LPFC_EVT_OFFLINE);
- status = lpfc_do_offline(phba, LPFC_EVT_OFFLINE);
+ if (status != 0)
+ return status;
- if (status != 0) {
- phba->hba_flag &= ~HBA_FW_DUMP_OP;
- return status;
+ /* wait for the device to be quiesced before firmware reset */
+ msleep(100);
}
- /* wait for the device to be quiesced before firmware reset */
- msleep(100);
-
reg_val = readl(phba->sli4_hba.conf_regs_memmap_p +
LPFC_CTL_PDEV_CTL_OFFSET);
@@ -1756,24 +1756,42 @@ lpfc_sli4_pdev_reg_request(struct lpfc_hba *phba, uint32_t opcode)
lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
"3153 Fail to perform the requested "
"access: x%x\n", reg_val);
+ if (phba->fw_dump_cmpl)
+ phba->fw_dump_cmpl = NULL;
return rc;
}
/* keep the original port state */
- if (before_fc_flag & FC_OFFLINE_MODE)
- goto out;
-
- init_completion(&online_compl);
- job_posted = lpfc_workq_post_event(phba, &status, &online_compl,
- LPFC_EVT_ONLINE);
- if (!job_posted)
+ if (before_fc_flag & FC_OFFLINE_MODE) {
+ if (phba->fw_dump_cmpl)
+ phba->fw_dump_cmpl = NULL;
goto out;
+ }
- wait_for_completion(&online_compl);
+ /* Firmware dump will trigger an HA_ERATT event, and
+ * lpfc_handle_eratt_s4 routine already handles bringing the port back
+ * online.
+ */
+ if (opcode == LPFC_FW_DUMP) {
+ wait_for_completion(phba->fw_dump_cmpl);
+ } else {
+ init_completion(&online_compl);
+ job_posted = lpfc_workq_post_event(phba, &status, &online_compl,
+ LPFC_EVT_ONLINE);
+ if (!job_posted)
+ goto out;
+ wait_for_completion(&online_compl);
+ }
out:
/* in any case, restore the virtual functions enabled as before */
if (sriov_nr_virtfn) {
+ /* If fw_dump was performed, first disable to clean up */
+ if (opcode == LPFC_FW_DUMP) {
+ pci_disable_sriov(pdev);
+ phba->cfg_sriov_nr_virtfn = 0;
+ }
+
sriov_err =
lpfc_sli_probe_sriov_nr_virtfn(phba, sriov_nr_virtfn);
if (!sriov_err)
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index f7197b7161d5..f08ab8269f44 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -3531,11 +3531,6 @@ lpfc_issue_els_rscn(struct lpfc_vport *vport, uint8_t retry)
return 1;
}
- /* This will cause the callback-function lpfc_cmpl_els_cmd to
- * trigger the release of node.
- */
- if (!(vport->fc_flag & FC_PT2PT))
- lpfc_nlp_put(ndlp);
return 0;
}
@@ -6877,6 +6872,7 @@ static int
lpfc_get_rdp_info(struct lpfc_hba *phba, struct lpfc_rdp_context *rdp_context)
{
LPFC_MBOXQ_t *mbox = NULL;
+ struct lpfc_dmabuf *mp;
int rc;
mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
@@ -6892,8 +6888,11 @@ lpfc_get_rdp_info(struct lpfc_hba *phba, struct lpfc_rdp_context *rdp_context)
mbox->mbox_cmpl = lpfc_mbx_cmpl_rdp_page_a0;
mbox->ctx_ndlp = (struct lpfc_rdp_context *)rdp_context;
rc = lpfc_sli_issue_mbox(phba, mbox, MBX_NOWAIT);
- if (rc == MBX_NOT_FINISHED)
+ if (rc == MBX_NOT_FINISHED) {
+ mp = (struct lpfc_dmabuf *)mbox->ctx_buf;
+ lpfc_mbuf_free(phba, mp->virt, mp->phys);
goto issue_mbox_fail;
+ }
return 0;
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 9ccb904e35fc..3bb7c2aa949f 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -869,10 +869,16 @@ lpfc_work_done(struct lpfc_hba *phba)
if (phba->pci_dev_grp == LPFC_PCI_DEV_OC)
lpfc_sli4_post_async_mbox(phba);
- if (ha_copy & HA_ERATT)
+ if (ha_copy & HA_ERATT) {
/* Handle the error attention event */
lpfc_handle_eratt(phba);
+ if (phba->fw_dump_cmpl) {
+ complete(phba->fw_dump_cmpl);
+ phba->fw_dump_cmpl = NULL;
+ }
+ }
+
if (ha_copy & HA_MBATT)
lpfc_sli_handle_mb_event(phba);
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 0fee8d590b0c..2bbd1be6cc5d 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -5314,8 +5314,10 @@ lpfc_sli4_async_link_evt(struct lpfc_hba *phba,
*/
if (!(phba->hba_flag & HBA_FCOE_MODE)) {
rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT);
- if (rc == MBX_NOT_FINISHED)
+ if (rc == MBX_NOT_FINISHED) {
+ lpfc_mbuf_free(phba, mp->virt, mp->phys);
goto out_free_dmabuf;
+ }
return;
}
/*
@@ -6266,8 +6268,10 @@ lpfc_sli4_async_fc_evt(struct lpfc_hba *phba, struct lpfc_acqe_fc_la *acqe_fc)
}
rc = lpfc_sli_issue_mbox(phba, pmb, MBX_NOWAIT);
- if (rc == MBX_NOT_FINISHED)
+ if (rc == MBX_NOT_FINISHED) {
+ lpfc_mbuf_free(phba, mp->virt, mp->phys);
goto out_free_dmabuf;
+ }
return;
out_free_dmabuf:
diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c
index 27263f02ab9f..7d717a4ac14d 100644
--- a/drivers/scsi/lpfc/lpfc_nportdisc.c
+++ b/drivers/scsi/lpfc/lpfc_nportdisc.c
@@ -322,6 +322,7 @@ lpfc_rcv_plogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
{
struct lpfc_hba *phba = vport->phba;
struct lpfc_dmabuf *pcmd;
+ struct lpfc_dmabuf *mp;
uint64_t nlp_portwwn = 0;
uint32_t *lp;
IOCB_t *icmd;
@@ -571,6 +572,11 @@ lpfc_rcv_plogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
* a default RPI.
*/
if (phba->sli_rev == LPFC_SLI_REV4) {
+ mp = (struct lpfc_dmabuf *)login_mbox->ctx_buf;
+ if (mp) {
+ lpfc_mbuf_free(phba, mp->virt, mp->phys);
+ kfree(mp);
+ }
mempool_free(login_mbox, phba->mbox_mem_pool);
login_mbox = NULL;
} else {
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 9c1f485952ef..e5009f21d97e 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -5043,12 +5043,6 @@ lpfc_sli4_brdreset(struct lpfc_hba *phba)
phba->fcf.fcf_flag = 0;
spin_unlock_irq(&phba->hbalock);
- /* SLI4 INTF 2: if FW dump is being taken skip INIT_PORT */
- if (phba->hba_flag & HBA_FW_DUMP_OP) {
- phba->hba_flag &= ~HBA_FW_DUMP_OP;
- return rc;
- }
-
/* Now physically reset the device */
lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
"0389 Performing PCI function reset!\n");
diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h
index 9787b53a2b59..2cc42432bd0c 100644
--- a/drivers/scsi/mpi3mr/mpi3mr.h
+++ b/drivers/scsi/mpi3mr/mpi3mr.h
@@ -79,7 +79,8 @@ extern int prot_mask;
/* Operational queue management definitions */
#define MPI3MR_OP_REQ_Q_QD 512
-#define MPI3MR_OP_REP_Q_QD 4096
+#define MPI3MR_OP_REP_Q_QD 1024
+#define MPI3MR_OP_REP_Q_QD4K 4096
#define MPI3MR_OP_REQ_Q_SEG_SIZE 4096
#define MPI3MR_OP_REP_Q_SEG_SIZE 4096
#define MPI3MR_MAX_SEG_LIST_SIZE 4096
diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c b/drivers/scsi/mpi3mr/mpi3mr_fw.c
index 4a8316c6bd41..5af36c54cb59 100644
--- a/drivers/scsi/mpi3mr/mpi3mr_fw.c
+++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c
@@ -1278,7 +1278,7 @@ static void mpi3mr_free_op_req_q_segments(struct mpi3mr_ioc *mrioc, u16 q_idx)
mrioc->op_reply_qinfo[q_idx].q_segment_list = NULL;
}
} else
- size = mrioc->req_qinfo[q_idx].num_requests *
+ size = mrioc->req_qinfo[q_idx].segment_qd *
mrioc->facts.op_req_sz;
for (j = 0; j < mrioc->req_qinfo[q_idx].num_segments; j++) {
@@ -1565,6 +1565,8 @@ static int mpi3mr_create_op_reply_q(struct mpi3mr_ioc *mrioc, u16 qidx)
reply_qid = qidx + 1;
op_reply_q->num_replies = MPI3MR_OP_REP_Q_QD;
+ if (!mrioc->pdev->revision)
+ op_reply_q->num_replies = MPI3MR_OP_REP_Q_QD4K;
op_reply_q->ci = 0;
op_reply_q->ephase = 1;
atomic_set(&op_reply_q->pend_ios, 0);
diff --git a/drivers/scsi/pm8001/pm8001_hwi.c b/drivers/scsi/pm8001/pm8001_hwi.c
index 639b7e38a194..880e1f356def 100644
--- a/drivers/scsi/pm8001/pm8001_hwi.c
+++ b/drivers/scsi/pm8001/pm8001_hwi.c
@@ -1325,7 +1325,9 @@ int pm8001_mpi_build_cmd(struct pm8001_hba_info *pm8001_ha,
int q_index = circularQ - pm8001_ha->inbnd_q_tbl;
int rv;
- WARN_ON(q_index >= PM8001_MAX_INB_NUM);
+ if (WARN_ON(q_index >= pm8001_ha->max_q_num))
+ return -EINVAL;
+
spin_lock_irqsave(&circularQ->iq_lock, flags);
rv = pm8001_mpi_msg_free_get(circularQ, pm8001_ha->iomb_size,
&pMessage);
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index 291ecc33b1fe..4fc9466d820a 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -209,11 +209,11 @@ void scsi_finish_command(struct scsi_cmnd *cmd)
/*
- * 1024 is big enough for saturating the fast scsi LUN now
+ * 1024 is big enough for saturating fast SCSI LUNs.
*/
int scsi_device_max_queue_depth(struct scsi_device *sdev)
{
- return max_t(int, sdev->host->can_queue, 1024);
+ return min_t(int, sdev->host->can_queue, 1024);
}
/**
diff --git a/drivers/scsi/scsi_debugfs.c b/drivers/scsi/scsi_debugfs.c
index d9109771f274..db8517f1a485 100644
--- a/drivers/scsi/scsi_debugfs.c
+++ b/drivers/scsi/scsi_debugfs.c
@@ -9,6 +9,7 @@
static const char *const scsi_cmd_flags[] = {
SCSI_CMD_FLAG_NAME(TAGGED),
SCSI_CMD_FLAG_NAME(INITIALIZED),
+ SCSI_CMD_FLAG_NAME(LAST),
};
#undef SCSI_CMD_FLAG_NAME
diff --git a/drivers/scsi/scsi_pm.c b/drivers/scsi/scsi_pm.c
index 3717eea37ecb..e91a0a5bc7a3 100644
--- a/drivers/scsi/scsi_pm.c
+++ b/drivers/scsi/scsi_pm.c
@@ -262,7 +262,7 @@ static int sdev_runtime_resume(struct device *dev)
blk_pre_runtime_resume(sdev->request_queue);
if (pm && pm->runtime_resume)
err = pm->runtime_resume(dev);
- blk_post_runtime_resume(sdev->request_queue, err);
+ blk_post_runtime_resume(sdev->request_queue);
return err;
}
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
index 8b17b35283aa..1203374828b9 100644
--- a/drivers/scsi/sr.c
+++ b/drivers/scsi/sr.c
@@ -851,7 +851,7 @@ static void get_capabilities(struct scsi_cd *cd)
/* allocate transfer buffer */
- buffer = kmalloc(512, GFP_KERNEL | GFP_DMA);
+ buffer = kmalloc(512, GFP_KERNEL);
if (!buffer) {
sr_printk(KERN_ERR, cd, "out of memory.\n");
return;
diff --git a/drivers/scsi/sr_vendor.c b/drivers/scsi/sr_vendor.c
index 1f988a1b9166..a61635326ae0 100644
--- a/drivers/scsi/sr_vendor.c
+++ b/drivers/scsi/sr_vendor.c
@@ -131,7 +131,7 @@ int sr_set_blocklength(Scsi_CD *cd, int blocklength)
if (cd->vendor == VENDOR_TOSHIBA)
density = (blocklength > 2048) ? 0x81 : 0x83;
- buffer = kmalloc(512, GFP_KERNEL | GFP_DMA);
+ buffer = kmalloc(512, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
@@ -179,7 +179,7 @@ int sr_cd_check(struct cdrom_device_info *cdi)
if (cd->cdi.mask & CDC_MULTI_SESSION)
return 0;
- buffer = kmalloc(512, GFP_KERNEL | GFP_DMA);
+ buffer = kmalloc(512, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
diff --git a/drivers/scsi/ufs/tc-dwc-g210-pci.c b/drivers/scsi/ufs/tc-dwc-g210-pci.c
index 679289e1a78e..7b08e2e07cc5 100644
--- a/drivers/scsi/ufs/tc-dwc-g210-pci.c
+++ b/drivers/scsi/ufs/tc-dwc-g210-pci.c
@@ -110,7 +110,6 @@ tc_dwc_g210_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
return err;
}
- pci_set_drvdata(pdev, hba);
pm_runtime_put_noidle(&pdev->dev);
pm_runtime_allow(&pdev->dev);
diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c
index 80b3545dd17d..4e53857605de 100644
--- a/drivers/scsi/ufs/ufs-mediatek.c
+++ b/drivers/scsi/ufs/ufs-mediatek.c
@@ -501,7 +501,7 @@ static void ufs_mtk_init_va09_pwr_ctrl(struct ufs_hba *hba)
struct ufs_mtk_host *host = ufshcd_get_variant(hba);
host->reg_va09 = regulator_get(hba->dev, "va09");
- if (!host->reg_va09)
+ if (IS_ERR(host->reg_va09))
dev_info(hba->dev, "failed to get va09");
else
host->caps |= UFS_MTK_CAP_VA09_PWR_CTRL;
diff --git a/drivers/scsi/ufs/ufshcd-pci.c b/drivers/scsi/ufs/ufshcd-pci.c
index f725248ba57f..f76692053ca1 100644
--- a/drivers/scsi/ufs/ufshcd-pci.c
+++ b/drivers/scsi/ufs/ufshcd-pci.c
@@ -538,8 +538,6 @@ ufshcd_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
return err;
}
- pci_set_drvdata(pdev, hba);
-
hba->vops = (struct ufs_hba_variant_ops *)id->driver_data;
err = ufshcd_init(hba, mmio_base, pdev->irq);
diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.c b/drivers/scsi/ufs/ufshcd-pltfrm.c
index eaeae83b999f..8b16bbbcb806 100644
--- a/drivers/scsi/ufs/ufshcd-pltfrm.c
+++ b/drivers/scsi/ufs/ufshcd-pltfrm.c
@@ -361,8 +361,6 @@ int ufshcd_pltfrm_init(struct platform_device *pdev,
goto dealloc_host;
}
- platform_set_drvdata(pdev, hba);
-
pm_runtime_set_active(&pdev->dev);
pm_runtime_enable(&pdev->dev);
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 31adf25e57b0..ae7bdd870319 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -1657,7 +1657,8 @@ int ufshcd_hold(struct ufs_hba *hba, bool async)
bool flush_result;
unsigned long flags;
- if (!ufshcd_is_clkgating_allowed(hba))
+ if (!ufshcd_is_clkgating_allowed(hba) ||
+ !hba->clk_gating.is_initialized)
goto out;
spin_lock_irqsave(hba->host->host_lock, flags);
hba->clk_gating.active_reqs++;
@@ -1817,7 +1818,7 @@ static void __ufshcd_release(struct ufs_hba *hba)
if (hba->clk_gating.active_reqs || hba->clk_gating.is_suspended ||
hba->ufshcd_state != UFSHCD_STATE_OPERATIONAL ||
- hba->outstanding_tasks ||
+ hba->outstanding_tasks || !hba->clk_gating.is_initialized ||
hba->active_uic_cmd || hba->uic_async_done ||
hba->clk_gating.state == CLKS_OFF)
return;
@@ -1952,11 +1953,15 @@ static void ufshcd_exit_clk_gating(struct ufs_hba *hba)
{
if (!hba->clk_gating.is_initialized)
return;
+
ufshcd_remove_clk_gating_sysfs(hba);
- cancel_work_sync(&hba->clk_gating.ungate_work);
- cancel_delayed_work_sync(&hba->clk_gating.gate_work);
- destroy_workqueue(hba->clk_gating.clk_gating_workq);
+
+ /* Ungate the clock if necessary. */
+ ufshcd_hold(hba, false);
hba->clk_gating.is_initialized = false;
+ ufshcd_release(hba);
+
+ destroy_workqueue(hba->clk_gating.clk_gating_workq);
}
/* Must be called with host lock acquired */
@@ -9366,6 +9371,13 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq)
struct device *dev = hba->dev;
char eh_wq_name[sizeof("ufs_eh_wq_00")];
+ /*
+ * dev_set_drvdata() must be called before any callbacks are registered
+ * that use dev_get_drvdata() (frequency scaling, clock scaling, hwmon,
+ * sysfs).
+ */
+ dev_set_drvdata(dev, hba);
+
if (!mmio_base) {
dev_err(hba->dev,
"Invalid memory reference for mmio_base is NULL\n");
diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c
index 8b7a01773aec..b4aa28420f2a 100644
--- a/drivers/soc/imx/gpcv2.c
+++ b/drivers/soc/imx/gpcv2.c
@@ -369,7 +369,7 @@ static int imx_pgc_power_down(struct generic_pm_domain *genpd)
}
}
- pm_runtime_put(domain->dev);
+ pm_runtime_put_sync_suspend(domain->dev);
return 0;
diff --git a/drivers/soc/mediatek/mtk-scpsys.c b/drivers/soc/mediatek/mtk-scpsys.c
index ca75b14931ec..670cc82d17dc 100644
--- a/drivers/soc/mediatek/mtk-scpsys.c
+++ b/drivers/soc/mediatek/mtk-scpsys.c
@@ -411,12 +411,17 @@ static int scpsys_power_off(struct generic_pm_domain *genpd)
return ret;
}
-static void init_clks(struct platform_device *pdev, struct clk **clk)
+static int init_clks(struct platform_device *pdev, struct clk **clk)
{
int i;
- for (i = CLK_NONE + 1; i < CLK_MAX; i++)
+ for (i = CLK_NONE + 1; i < CLK_MAX; i++) {
clk[i] = devm_clk_get(&pdev->dev, clk_names[i]);
+ if (IS_ERR(clk[i]))
+ return PTR_ERR(clk[i]);
+ }
+
+ return 0;
}
static struct scp *init_scp(struct platform_device *pdev,
@@ -426,7 +431,7 @@ static struct scp *init_scp(struct platform_device *pdev,
{
struct genpd_onecell_data *pd_data;
struct resource *res;
- int i, j;
+ int i, j, ret;
struct scp *scp;
struct clk *clk[CLK_MAX];
@@ -481,7 +486,9 @@ static struct scp *init_scp(struct platform_device *pdev,
pd_data->num_domains = num;
- init_clks(pdev, clk);
+ ret = init_clks(pdev, clk);
+ if (ret)
+ return ERR_PTR(ret);
for (i = 0; i < num; i++) {
struct scp_domain *scpd = &scp->domains[i];
diff --git a/drivers/soc/qcom/cpr.c b/drivers/soc/qcom/cpr.c
index 4ce8e816154f..84dd93472a25 100644
--- a/drivers/soc/qcom/cpr.c
+++ b/drivers/soc/qcom/cpr.c
@@ -1010,7 +1010,7 @@ static int cpr_interpolate(const struct corner *corner, int step_volt,
return corner->uV;
temp = f_diff * (uV_high - uV_low);
- do_div(temp, f_high - f_low);
+ temp = div64_ul(temp, f_high - f_low);
/*
* max_volt_scale has units of uV/MHz while freq values
diff --git a/drivers/soc/ti/pruss.c b/drivers/soc/ti/pruss.c
index 49da387d7749..b36779309e49 100644
--- a/drivers/soc/ti/pruss.c
+++ b/drivers/soc/ti/pruss.c
@@ -129,7 +129,7 @@ static int pruss_clk_init(struct pruss *pruss, struct device_node *cfg_node)
clks_np = of_get_child_by_name(cfg_node, "clocks");
if (!clks_np) {
- dev_err(dev, "%pOF is missing its 'clocks' node\n", clks_np);
+ dev_err(dev, "%pOF is missing its 'clocks' node\n", cfg_node);
return -ENODEV;
}
diff --git a/drivers/spi/spi-hisi-kunpeng.c b/drivers/spi/spi-hisi-kunpeng.c
index 58b823a16fc4..525cc0143a30 100644
--- a/drivers/spi/spi-hisi-kunpeng.c
+++ b/drivers/spi/spi-hisi-kunpeng.c
@@ -127,7 +127,6 @@ struct hisi_spi {
void __iomem *regs;
int irq;
u32 fifo_len; /* depth of the FIFO buffer */
- u16 bus_num;
/* Current message transfer state info */
const void *tx;
@@ -165,7 +164,10 @@ static int hisi_spi_debugfs_init(struct hisi_spi *hs)
{
char name[32];
- snprintf(name, 32, "hisi_spi%d", hs->bus_num);
+ struct spi_controller *master;
+
+ master = container_of(hs->dev, struct spi_controller, dev);
+ snprintf(name, 32, "hisi_spi%d", master->bus_num);
hs->debugfs = debugfs_create_dir(name, NULL);
if (!hs->debugfs)
return -ENOMEM;
@@ -467,7 +469,6 @@ static int hisi_spi_probe(struct platform_device *pdev)
hs = spi_controller_get_devdata(master);
hs->dev = dev;
hs->irq = irq;
- hs->bus_num = pdev->id;
hs->regs = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(hs->regs))
@@ -490,7 +491,7 @@ static int hisi_spi_probe(struct platform_device *pdev)
master->use_gpio_descriptors = true;
master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LOOP;
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32);
- master->bus_num = hs->bus_num;
+ master->bus_num = pdev->id;
master->setup = hisi_spi_setup;
master->cleanup = hisi_spi_cleanup;
master->transfer_one = hisi_spi_transfer_one;
@@ -506,15 +507,15 @@ static int hisi_spi_probe(struct platform_device *pdev)
return ret;
}
- if (hisi_spi_debugfs_init(hs))
- dev_info(dev, "failed to create debugfs dir\n");
-
ret = spi_register_controller(master);
if (ret) {
dev_err(dev, "failed to register spi master, ret=%d\n", ret);
return ret;
}
+ if (hisi_spi_debugfs_init(hs))
+ dev_info(dev, "failed to create debugfs dir\n");
+
dev_info(dev, "hw version:0x%x max-freq:%u kHz\n",
readl(hs->regs + HISI_SPI_VERSION),
master->max_speed_hz / 1000);
diff --git a/drivers/spi/spi-meson-spifc.c b/drivers/spi/spi-meson-spifc.c
index 8eca6f24cb79..c8ed7815c4ba 100644
--- a/drivers/spi/spi-meson-spifc.c
+++ b/drivers/spi/spi-meson-spifc.c
@@ -349,6 +349,7 @@ static int meson_spifc_probe(struct platform_device *pdev)
return 0;
out_clk:
clk_disable_unprepare(spifc->clk);
+ pm_runtime_disable(spifc->dev);
out_err:
spi_master_put(master);
return ret;
diff --git a/drivers/spi/spi-uniphier.c b/drivers/spi/spi-uniphier.c
index 8900e51e1a1c..342ee8d2c476 100644
--- a/drivers/spi/spi-uniphier.c
+++ b/drivers/spi/spi-uniphier.c
@@ -767,12 +767,13 @@ static int uniphier_spi_probe(struct platform_device *pdev)
static int uniphier_spi_remove(struct platform_device *pdev)
{
- struct uniphier_spi_priv *priv = platform_get_drvdata(pdev);
+ struct spi_master *master = platform_get_drvdata(pdev);
+ struct uniphier_spi_priv *priv = spi_master_get_devdata(master);
- if (priv->master->dma_tx)
- dma_release_channel(priv->master->dma_tx);
- if (priv->master->dma_rx)
- dma_release_channel(priv->master->dma_rx);
+ if (master->dma_tx)
+ dma_release_channel(master->dma_tx);
+ if (master->dma_rx)
+ dma_release_channel(master->dma_rx);
clk_disable_unprepare(priv->clk);
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 97b5a811bd7f..a42b9e8521ce 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -868,12 +868,9 @@ static void spi_set_cs(struct spi_device *spi, bool enable, bool force)
spi->controller->last_cs_enable = enable;
spi->controller->last_cs_mode_high = spi->mode & SPI_CS_HIGH;
- if (spi->cs_gpiod || gpio_is_valid(spi->cs_gpio) ||
- !spi->controller->set_cs_timing) {
- if (activate)
- spi_delay_exec(&spi->cs_setup, NULL);
- else
- spi_delay_exec(&spi->cs_hold, NULL);
+ if ((spi->cs_gpiod || gpio_is_valid(spi->cs_gpio) ||
+ !spi->controller->set_cs_timing) && !activate) {
+ spi_delay_exec(&spi->cs_hold, NULL);
}
if (spi->mode & SPI_CS_HIGH)
@@ -915,7 +912,9 @@ static void spi_set_cs(struct spi_device *spi, bool enable, bool force)
if (spi->cs_gpiod || gpio_is_valid(spi->cs_gpio) ||
!spi->controller->set_cs_timing) {
- if (!activate)
+ if (activate)
+ spi_delay_exec(&spi->cs_setup, NULL);
+ else
spi_delay_exec(&spi->cs_inactive, NULL);
}
}
diff --git a/drivers/staging/greybus/audio_topology.c b/drivers/staging/greybus/audio_topology.c
index 7f7d558b76d0..62d7674852be 100644
--- a/drivers/staging/greybus/audio_topology.c
+++ b/drivers/staging/greybus/audio_topology.c
@@ -147,6 +147,9 @@ static const char **gb_generate_enum_strings(struct gbaudio_module_info *gb,
items = le32_to_cpu(gbenum->items);
strings = devm_kcalloc(gb->dev, items, sizeof(char *), GFP_KERNEL);
+ if (!strings)
+ return NULL;
+
data = gbenum->names;
for (i = 0; i < items; i++) {
@@ -655,6 +658,8 @@ static int gbaudio_tplg_create_enum_kctl(struct gbaudio_module_info *gb,
/* since count=1, and reg is dummy */
gbe->items = le32_to_cpu(gb_enum->items);
gbe->texts = gb_generate_enum_strings(gb, gb_enum);
+ if (!gbe->texts)
+ return -ENOMEM;
/* debug enum info */
dev_dbg(gb->dev, "Max:%d, name_length:%d\n", gbe->items,
@@ -862,6 +867,8 @@ static int gbaudio_tplg_create_enum_ctl(struct gbaudio_module_info *gb,
/* since count=1, and reg is dummy */
gbe->items = le32_to_cpu(gb_enum->items);
gbe->texts = gb_generate_enum_strings(gb, gb_enum);
+ if (!gbe->texts)
+ return -ENOMEM;
/* debug enum info */
dev_dbg(gb->dev, "Max:%d, name_length:%d\n", gbe->items,
@@ -1072,6 +1079,10 @@ static int gbaudio_tplg_create_widget(struct gbaudio_module_info *module,
csize += le16_to_cpu(gbenum->names_length);
control->texts = (const char * const *)
gb_generate_enum_strings(module, gbenum);
+ if (!control->texts) {
+ ret = -ENOMEM;
+ goto error;
+ }
control->items = le32_to_cpu(gbenum->items);
} else {
csize = sizeof(struct gb_audio_control);
@@ -1181,6 +1192,10 @@ static int gbaudio_tplg_process_kcontrols(struct gbaudio_module_info *module,
csize += le16_to_cpu(gbenum->names_length);
control->texts = (const char * const *)
gb_generate_enum_strings(module, gbenum);
+ if (!control->texts) {
+ ret = -ENOMEM;
+ goto error;
+ }
control->items = le32_to_cpu(gbenum->items);
} else {
csize = sizeof(struct gb_audio_control);
diff --git a/drivers/staging/media/atomisp/i2c/ov2680.h b/drivers/staging/media/atomisp/i2c/ov2680.h
index 874115f35fca..798b28e134b6 100644
--- a/drivers/staging/media/atomisp/i2c/ov2680.h
+++ b/drivers/staging/media/atomisp/i2c/ov2680.h
@@ -289,8 +289,6 @@ static struct ov2680_reg const ov2680_global_setting[] = {
*/
static struct ov2680_reg const ov2680_QCIF_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x24},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -334,8 +332,6 @@ static struct ov2680_reg const ov2680_QCIF_30fps[] = {
*/
static struct ov2680_reg const ov2680_CIF_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x24},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -377,8 +373,6 @@ static struct ov2680_reg const ov2680_CIF_30fps[] = {
*/
static struct ov2680_reg const ov2680_QVGA_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x24},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -420,8 +414,6 @@ static struct ov2680_reg const ov2680_QVGA_30fps[] = {
*/
static struct ov2680_reg const ov2680_656x496_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x24},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -463,8 +455,6 @@ static struct ov2680_reg const ov2680_656x496_30fps[] = {
*/
static struct ov2680_reg const ov2680_720x592_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x26},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0x00}, // X_ADDR_START;
{0x3802, 0x00},
@@ -508,8 +498,6 @@ static struct ov2680_reg const ov2680_720x592_30fps[] = {
*/
static struct ov2680_reg const ov2680_800x600_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x26},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0x00},
{0x3802, 0x00},
@@ -551,8 +539,6 @@ static struct ov2680_reg const ov2680_800x600_30fps[] = {
*/
static struct ov2680_reg const ov2680_720p_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -594,8 +580,6 @@ static struct ov2680_reg const ov2680_720p_30fps[] = {
*/
static struct ov2680_reg const ov2680_1296x976_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -637,8 +621,6 @@ static struct ov2680_reg const ov2680_1296x976_30fps[] = {
*/
static struct ov2680_reg const ov2680_1456x1096_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0x90},
{0x3802, 0x00},
@@ -682,8 +664,6 @@ static struct ov2680_reg const ov2680_1456x1096_30fps[] = {
static struct ov2680_reg const ov2680_1616x916_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0x00},
{0x3802, 0x00},
@@ -726,8 +706,6 @@ static struct ov2680_reg const ov2680_1616x916_30fps[] = {
#if 0
static struct ov2680_reg const ov2680_1616x1082_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0x00},
{0x3802, 0x00},
@@ -769,8 +747,6 @@ static struct ov2680_reg const ov2680_1616x1082_30fps[] = {
*/
static struct ov2680_reg const ov2680_1616x1216_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0x00},
{0x3802, 0x00},
diff --git a/drivers/staging/media/atomisp/pci/atomisp_cmd.c b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
index 366161cff560..ef0b0963cf93 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_cmd.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
@@ -1715,6 +1715,12 @@ void atomisp_wdt_refresh_pipe(struct atomisp_video_pipe *pipe,
{
unsigned long next;
+ if (!pipe->asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return;
+ }
+
if (delay != ATOMISP_WDT_KEEP_CURRENT_DELAY)
pipe->wdt_duration = delay;
@@ -1777,6 +1783,12 @@ void atomisp_wdt_refresh(struct atomisp_sub_device *asd, unsigned int delay)
/* ISP2401 */
void atomisp_wdt_stop_pipe(struct atomisp_video_pipe *pipe, bool sync)
{
+ if (!pipe->asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return;
+ }
+
if (!atomisp_is_wdt_running(pipe))
return;
@@ -4109,6 +4121,12 @@ void atomisp_handle_parameter_and_buffer(struct atomisp_video_pipe *pipe)
unsigned long irqflags;
bool need_to_enqueue_buffer = false;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return;
+ }
+
if (atomisp_is_vf_pipe(pipe))
return;
@@ -4196,6 +4214,12 @@ int atomisp_set_parameters(struct video_device *vdev,
struct atomisp_css_params *css_param = &asd->params.css_param;
int ret;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!asd->stream_env[ATOMISP_INPUT_STREAM_GENERAL].stream) {
dev_err(asd->isp->dev, "%s: internal error!\n", __func__);
return -EINVAL;
@@ -4857,6 +4881,12 @@ int atomisp_try_fmt(struct video_device *vdev, struct v4l2_pix_format *f,
int source_pad = atomisp_subdev_source_pad(vdev);
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!isp->inputs[asd->input_curr].camera)
return -EINVAL;
@@ -5194,10 +5224,17 @@ static int atomisp_set_fmt_to_isp(struct video_device *vdev,
int (*configure_pp_input)(struct atomisp_sub_device *asd,
unsigned int width, unsigned int height) =
configure_pp_input_nop;
- u16 stream_index = atomisp_source_pad_to_stream_id(asd, source_pad);
+ u16 stream_index;
const struct atomisp_in_fmt_conv *fc;
int ret, i;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+ stream_index = atomisp_source_pad_to_stream_id(asd, source_pad);
+
v4l2_fh_init(&fh.vfh, vdev);
isp_sink_crop = atomisp_subdev_get_rect(
@@ -5493,7 +5530,8 @@ static int atomisp_set_fmt_to_snr(struct video_device *vdev,
unsigned int padding_w, unsigned int padding_h,
unsigned int dvs_env_w, unsigned int dvs_env_h)
{
- struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
+ struct atomisp_video_pipe *pipe = atomisp_to_video_pipe(vdev);
+ struct atomisp_sub_device *asd = pipe->asd;
const struct atomisp_format_bridge *format;
struct v4l2_subdev_pad_config pad_cfg;
struct v4l2_subdev_state pad_state = {
@@ -5504,7 +5542,7 @@ static int atomisp_set_fmt_to_snr(struct video_device *vdev,
};
struct v4l2_mbus_framefmt *ffmt = &vformat.format;
struct v4l2_mbus_framefmt *req_ffmt;
- struct atomisp_device *isp = asd->isp;
+ struct atomisp_device *isp;
struct atomisp_input_stream_info *stream_info =
(struct atomisp_input_stream_info *)ffmt->reserved;
u16 stream_index = ATOMISP_INPUT_STREAM_GENERAL;
@@ -5512,6 +5550,14 @@ static int atomisp_set_fmt_to_snr(struct video_device *vdev,
struct v4l2_subdev_fh fh;
int ret;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
+ isp = asd->isp;
+
v4l2_fh_init(&fh.vfh, vdev);
stream_index = atomisp_source_pad_to_stream_id(asd, source_pad);
@@ -5602,6 +5648,12 @@ int atomisp_set_fmt(struct video_device *vdev, struct v4l2_format *f)
struct v4l2_subdev_fh fh;
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (source_pad >= ATOMISP_SUBDEV_PADS_NUM)
return -EINVAL;
@@ -6034,6 +6086,12 @@ int atomisp_set_fmt_file(struct video_device *vdev, struct v4l2_format *f)
struct v4l2_subdev_fh fh;
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
v4l2_fh_init(&fh.vfh, vdev);
dev_dbg(isp->dev, "setting fmt %ux%u 0x%x for file inject\n",
@@ -6359,6 +6417,12 @@ bool atomisp_is_vf_pipe(struct atomisp_video_pipe *pipe)
{
struct atomisp_sub_device *asd = pipe->asd;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return false;
+ }
+
if (pipe == &asd->video_out_vf)
return true;
@@ -6572,6 +6636,12 @@ static int atomisp_get_pipe_id(struct atomisp_video_pipe *pipe)
{
struct atomisp_sub_device *asd = pipe->asd;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return -EINVAL;
+ }
+
if (ATOMISP_USE_YUVPP(asd)) {
return IA_CSS_PIPE_ID_YUVPP;
} else if (asd->vfpp->val == ATOMISP_VFPP_DISABLE_SCALER) {
@@ -6609,6 +6679,12 @@ int atomisp_get_invalid_frame_num(struct video_device *vdev,
struct ia_css_pipe_info p_info;
int ret;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (asd->isp->inputs[asd->input_curr].camera_caps->
sensor[asd->sensor_curr].stream_num > 1) {
/* External ISP */
diff --git a/drivers/staging/media/atomisp/pci/atomisp_fops.c b/drivers/staging/media/atomisp/pci/atomisp_fops.c
index f82bf082aa79..18fff47bd25d 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_fops.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_fops.c
@@ -877,6 +877,11 @@ static int atomisp_open(struct file *file)
else
pipe->users++;
rt_mutex_unlock(&isp->mutex);
+
+ /* Ensure that a mode is set */
+ if (asd)
+ v4l2_ctrl_s_ctrl(asd->run_mode, pipe->default_run_mode);
+
return 0;
css_error:
@@ -1171,6 +1176,12 @@ static int atomisp_mmap(struct file *file, struct vm_area_struct *vma)
u32 origin_size, new_size;
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!(vma->vm_flags & (VM_WRITE | VM_READ)))
return -EACCES;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
index d8c9e31314b2..62dc06e22476 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
@@ -481,7 +481,7 @@ static int atomisp_get_acpi_power(struct device *dev)
static u8 gmin_get_pmic_id_and_addr(struct device *dev)
{
- struct i2c_client *power;
+ struct i2c_client *power = NULL;
static u8 pmic_i2c_addr;
if (pmic_id)
diff --git a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
index c8a625667e81..b7dda4b96d49 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
@@ -646,6 +646,12 @@ static int atomisp_g_input(struct file *file, void *fh, unsigned int *input)
struct atomisp_device *isp = video_get_drvdata(vdev);
struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
*input = asd->input_curr;
rt_mutex_unlock(&isp->mutex);
@@ -665,6 +671,12 @@ static int atomisp_s_input(struct file *file, void *fh, unsigned int input)
struct v4l2_subdev *motor;
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
if (input >= ATOM_ISP_MAX_INPUTS || input >= isp->input_cnt) {
dev_dbg(isp->dev, "input_cnt: %d\n", isp->input_cnt);
@@ -761,18 +773,33 @@ static int atomisp_enum_fmt_cap(struct file *file, void *fh,
struct video_device *vdev = video_devdata(file);
struct atomisp_device *isp = video_get_drvdata(vdev);
struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
- struct v4l2_subdev_mbus_code_enum code = { 0 };
+ struct v4l2_subdev_mbus_code_enum code = {
+ .which = V4L2_SUBDEV_FORMAT_ACTIVE,
+ };
+ struct v4l2_subdev *camera;
unsigned int i, fi = 0;
int rval;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
+ camera = isp->inputs[asd->input_curr].camera;
+ if(!camera) {
+ dev_err(isp->dev, "%s(): camera is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
- rval = v4l2_subdev_call(isp->inputs[asd->input_curr].camera, pad,
- enum_mbus_code, NULL, &code);
+
+ rval = v4l2_subdev_call(camera, pad, enum_mbus_code, NULL, &code);
if (rval == -ENOIOCTLCMD) {
dev_warn(isp->dev,
- "enum_mbus_code pad op not supported. Please fix your sensor driver!\n");
- // rval = v4l2_subdev_call(isp->inputs[asd->input_curr].camera,
- // video, enum_mbus_fmt, 0, &code.code);
+ "enum_mbus_code pad op not supported by %s. Please fix your sensor driver!\n",
+ camera->name);
}
rt_mutex_unlock(&isp->mutex);
@@ -802,6 +829,8 @@ static int atomisp_enum_fmt_cap(struct file *file, void *fh,
f->pixelformat = format->pixelformat;
return 0;
}
+ dev_err(isp->dev, "%s(): format for code %x not found.\n",
+ __func__, code.code);
return -EINVAL;
}
@@ -834,6 +863,72 @@ static int atomisp_g_fmt_file(struct file *file, void *fh,
return 0;
}
+static int atomisp_adjust_fmt(struct v4l2_format *f)
+{
+ const struct atomisp_format_bridge *format_bridge;
+ u32 padded_width;
+
+ format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat);
+
+ padded_width = f->fmt.pix.width + pad_w;
+
+ if (format_bridge->planar) {
+ f->fmt.pix.bytesperline = padded_width;
+ f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height *
+ DIV_ROUND_UP(format_bridge->depth *
+ padded_width, 8));
+ } else {
+ f->fmt.pix.bytesperline = DIV_ROUND_UP(format_bridge->depth *
+ padded_width, 8);
+ f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height * f->fmt.pix.bytesperline);
+ }
+
+ if (f->fmt.pix.field == V4L2_FIELD_ANY)
+ f->fmt.pix.field = V4L2_FIELD_NONE;
+
+ format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat);
+ if (!format_bridge)
+ return -EINVAL;
+
+ /* Currently, raw formats are broken!!! */
+ if (format_bridge->sh_fmt == IA_CSS_FRAME_FORMAT_RAW) {
+ f->fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420;
+
+ format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat);
+ if (!format_bridge)
+ return -EINVAL;
+ }
+
+ padded_width = f->fmt.pix.width + pad_w;
+
+ if (format_bridge->planar) {
+ f->fmt.pix.bytesperline = padded_width;
+ f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height *
+ DIV_ROUND_UP(format_bridge->depth *
+ padded_width, 8));
+ } else {
+ f->fmt.pix.bytesperline = DIV_ROUND_UP(format_bridge->depth *
+ padded_width, 8);
+ f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height * f->fmt.pix.bytesperline);
+ }
+
+ if (f->fmt.pix.field == V4L2_FIELD_ANY)
+ f->fmt.pix.field = V4L2_FIELD_NONE;
+
+ /*
+ * FIXME: do we need to setup this differently, depending on the
+ * sensor or the pipeline?
+ */
+ f->fmt.pix.colorspace = V4L2_COLORSPACE_REC709;
+ f->fmt.pix.ycbcr_enc = V4L2_YCBCR_ENC_709;
+ f->fmt.pix.xfer_func = V4L2_XFER_FUNC_709;
+
+ f->fmt.pix.width -= pad_w;
+ f->fmt.pix.height -= pad_h;
+
+ return 0;
+}
+
/* This function looks up the closest available resolution. */
static int atomisp_try_fmt_cap(struct file *file, void *fh,
struct v4l2_format *f)
@@ -845,7 +940,11 @@ static int atomisp_try_fmt_cap(struct file *file, void *fh,
rt_mutex_lock(&isp->mutex);
ret = atomisp_try_fmt(vdev, &f->fmt.pix, NULL);
rt_mutex_unlock(&isp->mutex);
- return ret;
+
+ if (ret)
+ return ret;
+
+ return atomisp_adjust_fmt(f);
}
static int atomisp_s_fmt_cap(struct file *file, void *fh,
@@ -1024,9 +1123,16 @@ int __atomisp_reqbufs(struct file *file, void *fh,
struct ia_css_frame *frame;
struct videobuf_vmalloc_memory *vm_mem;
u16 source_pad = atomisp_subdev_source_pad(vdev);
- u16 stream_id = atomisp_source_pad_to_stream_id(asd, source_pad);
+ u16 stream_id;
int ret = 0, i = 0;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+ stream_id = atomisp_source_pad_to_stream_id(asd, source_pad);
+
if (req->count == 0) {
mutex_lock(&pipe->capq.vb_lock);
if (!list_empty(&pipe->capq.stream))
@@ -1154,6 +1260,12 @@ static int atomisp_qbuf(struct file *file, void *fh, struct v4l2_buffer *buf)
u32 pgnr;
int ret = 0;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
if (isp->isp_fatal_error) {
ret = -EIO;
@@ -1389,6 +1501,12 @@ static int atomisp_dqbuf(struct file *file, void *fh, struct v4l2_buffer *buf)
struct atomisp_device *isp = video_get_drvdata(vdev);
int ret = 0;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
if (isp->isp_fatal_error) {
@@ -1640,6 +1758,12 @@ static int atomisp_streamon(struct file *file, void *fh,
int ret = 0;
unsigned long irqflags;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
dev_dbg(isp->dev, "Start stream on pad %d for asd%d\n",
atomisp_subdev_source_pad(vdev), asd->index);
@@ -1901,6 +2025,12 @@ int __atomisp_streamoff(struct file *file, void *fh, enum v4l2_buf_type type)
unsigned long flags;
bool first_streamoff = false;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
dev_dbg(isp->dev, "Stop stream on pad %d for asd%d\n",
atomisp_subdev_source_pad(vdev), asd->index);
@@ -2150,6 +2280,12 @@ static int atomisp_g_ctrl(struct file *file, void *fh,
struct atomisp_device *isp = video_get_drvdata(vdev);
int i, ret = -EINVAL;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
for (i = 0; i < ctrls_num; i++) {
if (ci_v4l2_controls[i].id == control->id) {
ret = 0;
@@ -2229,6 +2365,12 @@ static int atomisp_s_ctrl(struct file *file, void *fh,
struct atomisp_device *isp = video_get_drvdata(vdev);
int i, ret = -EINVAL;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
for (i = 0; i < ctrls_num; i++) {
if (ci_v4l2_controls[i].id == control->id) {
ret = 0;
@@ -2310,6 +2452,12 @@ static int atomisp_queryctl(struct file *file, void *fh,
struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
struct atomisp_device *isp = video_get_drvdata(vdev);
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
switch (qc->id) {
case V4L2_CID_FOCUS_ABSOLUTE:
case V4L2_CID_FOCUS_RELATIVE:
@@ -2355,6 +2503,12 @@ static int atomisp_camera_g_ext_ctrls(struct file *file, void *fh,
int i;
int ret = 0;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!IS_ISP2401)
motor = isp->inputs[asd->input_curr].motor;
else
@@ -2466,6 +2620,12 @@ static int atomisp_camera_s_ext_ctrls(struct file *file, void *fh,
int i;
int ret = 0;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!IS_ISP2401)
motor = isp->inputs[asd->input_curr].motor;
else
@@ -2591,6 +2751,12 @@ static int atomisp_g_parm(struct file *file, void *fh,
struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
struct atomisp_device *isp = video_get_drvdata(vdev);
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) {
dev_err(isp->dev, "unsupported v4l2 buf type\n");
return -EINVAL;
@@ -2613,6 +2779,12 @@ static int atomisp_s_parm(struct file *file, void *fh,
int rval;
int fps;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) {
dev_err(isp->dev, "unsupported v4l2 buf type\n");
return -EINVAL;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_subdev.c b/drivers/staging/media/atomisp/pci/atomisp_subdev.c
index 12f22ad007c7..ffaf11e0b0ad 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_subdev.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_subdev.c
@@ -1164,23 +1164,28 @@ static int isp_subdev_init_entities(struct atomisp_sub_device *asd)
atomisp_init_acc_pipe(asd, &asd->video_acc);
- ret = atomisp_video_init(&asd->video_in, "MEMORY");
+ ret = atomisp_video_init(&asd->video_in, "MEMORY",
+ ATOMISP_RUN_MODE_SDV);
if (ret < 0)
return ret;
- ret = atomisp_video_init(&asd->video_out_capture, "CAPTURE");
+ ret = atomisp_video_init(&asd->video_out_capture, "CAPTURE",
+ ATOMISP_RUN_MODE_STILL_CAPTURE);
if (ret < 0)
return ret;
- ret = atomisp_video_init(&asd->video_out_vf, "VIEWFINDER");
+ ret = atomisp_video_init(&asd->video_out_vf, "VIEWFINDER",
+ ATOMISP_RUN_MODE_CONTINUOUS_CAPTURE);
if (ret < 0)
return ret;
- ret = atomisp_video_init(&asd->video_out_preview, "PREVIEW");
+ ret = atomisp_video_init(&asd->video_out_preview, "PREVIEW",
+ ATOMISP_RUN_MODE_PREVIEW);
if (ret < 0)
return ret;
- ret = atomisp_video_init(&asd->video_out_video_capture, "VIDEO");
+ ret = atomisp_video_init(&asd->video_out_video_capture, "VIDEO",
+ ATOMISP_RUN_MODE_VIDEO);
if (ret < 0)
return ret;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_subdev.h b/drivers/staging/media/atomisp/pci/atomisp_subdev.h
index d6fcfab6352d..a8d210ea5f8b 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_subdev.h
+++ b/drivers/staging/media/atomisp/pci/atomisp_subdev.h
@@ -81,6 +81,9 @@ struct atomisp_video_pipe {
/* the link list to store per_frame parameters */
struct list_head per_frame_params;
+ /* Store here the initial run mode */
+ unsigned int default_run_mode;
+
unsigned int buffers_in_css;
/* irq_lock is used to protect video buffer state change operations and
diff --git a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
index 1e324f1f656e..14c39b8987c9 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
@@ -447,7 +447,8 @@ const struct atomisp_dfs_config dfs_config_cht_soc = {
.dfs_table_size = ARRAY_SIZE(dfs_rules_cht_soc),
};
-int atomisp_video_init(struct atomisp_video_pipe *video, const char *name)
+int atomisp_video_init(struct atomisp_video_pipe *video, const char *name,
+ unsigned int run_mode)
{
int ret;
const char *direction;
@@ -478,6 +479,7 @@ int atomisp_video_init(struct atomisp_video_pipe *video, const char *name)
"ATOMISP ISP %s %s", name, direction);
video->vdev.release = video_device_release_empty;
video_set_drvdata(&video->vdev, video->isp);
+ video->default_run_mode = run_mode;
return 0;
}
@@ -711,15 +713,15 @@ static int atomisp_mrfld_power(struct atomisp_device *isp, bool enable)
dev_dbg(isp->dev, "IUNIT power-%s.\n", enable ? "on" : "off");
- /*WA:Enable DVFS*/
+ /* WA for P-Unit, if DVFS enabled, ISP timeout observed */
if (IS_CHT && enable)
- punit_ddr_dvfs_enable(true);
+ punit_ddr_dvfs_enable(false);
/*
* FIXME:WA for ECS28A, with this sleep, CTS
* android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceAbort
* PASS, no impact on other platforms
- */
+ */
if (IS_BYT && enable)
msleep(10);
@@ -727,7 +729,7 @@ static int atomisp_mrfld_power(struct atomisp_device *isp, bool enable)
iosf_mbi_modify(BT_MBI_UNIT_PMC, MBI_REG_READ, MRFLD_ISPSSPM0,
val, MRFLD_ISPSSPM0_ISPSSC_MASK);
- /*WA:Enable DVFS*/
+ /* WA:Enable DVFS */
if (IS_CHT && !enable)
punit_ddr_dvfs_enable(true);
@@ -1182,6 +1184,7 @@ static void atomisp_unregister_entities(struct atomisp_device *isp)
v4l2_device_unregister(&isp->v4l2_dev);
media_device_unregister(&isp->media_dev);
+ media_device_cleanup(&isp->media_dev);
}
static int atomisp_register_entities(struct atomisp_device *isp)
diff --git a/drivers/staging/media/atomisp/pci/atomisp_v4l2.h b/drivers/staging/media/atomisp/pci/atomisp_v4l2.h
index 81bb356b8172..72611b8286a4 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_v4l2.h
+++ b/drivers/staging/media/atomisp/pci/atomisp_v4l2.h
@@ -27,7 +27,8 @@ struct v4l2_device;
struct atomisp_device;
struct firmware;
-int atomisp_video_init(struct atomisp_video_pipe *video, const char *name);
+int atomisp_video_init(struct atomisp_video_pipe *video, const char *name,
+ unsigned int run_mode);
void atomisp_acc_init(struct atomisp_acc_pipe *video, const char *name);
void atomisp_video_unregister(struct atomisp_video_pipe *video);
void atomisp_acc_unregister(struct atomisp_acc_pipe *video);
diff --git a/drivers/staging/media/atomisp/pci/sh_css.c b/drivers/staging/media/atomisp/pci/sh_css.c
index c4b35cbab373..ba25d0da8b81 100644
--- a/drivers/staging/media/atomisp/pci/sh_css.c
+++ b/drivers/staging/media/atomisp/pci/sh_css.c
@@ -522,6 +522,7 @@ ia_css_stream_input_format_bits_per_pixel(struct ia_css_stream *stream)
return bpp;
}
+/* TODO: move define to proper file in tools */
#define GP_ISEL_TPG_MODE 0x90058
#if !defined(ISP2401)
@@ -573,12 +574,8 @@ sh_css_config_input_network(struct ia_css_stream *stream)
vblank_cycles = vblank_lines * (width + hblank_cycles);
sh_css_sp_configure_sync_gen(width, height, hblank_cycles,
vblank_cycles);
- if (!IS_ISP2401) {
- if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG) {
- /* TODO: move define to proper file in tools */
- ia_css_device_store_uint32(GP_ISEL_TPG_MODE, 0);
- }
- }
+ if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG)
+ ia_css_device_store_uint32(GP_ISEL_TPG_MODE, 0);
}
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"sh_css_config_input_network() leave:\n");
@@ -1009,16 +1006,14 @@ static bool sh_css_translate_stream_cfg_to_isys_stream_descr(
* ia_css_isys_stream_capture_indication() instead of
* ia_css_pipeline_sp_wait_for_isys_stream_N() as isp processing of
* capture takes longer than getting an ISYS frame
- *
- * Only 2401 relevant ??
*/
-#if 0 // FIXME: NOT USED on Yocto Aero
- isys_stream_descr->polling_mode
- = early_polling ? INPUT_SYSTEM_POLL_ON_CAPTURE_REQUEST
- : INPUT_SYSTEM_POLL_ON_WAIT_FOR_FRAME;
- ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
- "sh_css_translate_stream_cfg_to_isys_stream_descr() leave:\n");
-#endif
+ if (IS_ISP2401) {
+ isys_stream_descr->polling_mode
+ = early_polling ? INPUT_SYSTEM_POLL_ON_CAPTURE_REQUEST
+ : INPUT_SYSTEM_POLL_ON_WAIT_FOR_FRAME;
+ ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
+ "sh_css_translate_stream_cfg_to_isys_stream_descr() leave:\n");
+ }
return rc;
}
@@ -1433,7 +1428,7 @@ static void start_pipe(
assert(me); /* all callers are in this file and call with non null argument */
- if (!IS_ISP2401) {
+ if (IS_ISP2401) {
coord = &me->config.internal_frame_origin_bqs_on_sctbl;
params = me->stream->isp_params_configs;
}
diff --git a/drivers/staging/media/atomisp/pci/sh_css_mipi.c b/drivers/staging/media/atomisp/pci/sh_css_mipi.c
index 75489f7d75ee..c1f2f6151c5f 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_mipi.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_mipi.c
@@ -374,17 +374,17 @@ static bool buffers_needed(struct ia_css_pipe *pipe)
{
if (!IS_ISP2401) {
if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR)
- return false;
- else
return true;
+ else
+ return false;
}
if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR ||
pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG ||
pipe->stream->config.mode == IA_CSS_INPUT_MODE_PRBS)
- return false;
+ return true;
- return true;
+ return false;
}
int
@@ -423,14 +423,17 @@ allocate_mipi_frames(struct ia_css_pipe *pipe,
return 0; /* AM TODO: Check */
}
- if (!IS_ISP2401)
+ if (!IS_ISP2401) {
port = (unsigned int)pipe->stream->config.source.port.port;
- else
- err = ia_css_mipi_is_source_port_valid(pipe, &port);
+ } else {
+ /* Returns true if port is valid. So, invert it */
+ err = !ia_css_mipi_is_source_port_valid(pipe, &port);
+ }
assert(port < N_CSI_PORTS);
- if (port >= N_CSI_PORTS || err) {
+ if ((!IS_ISP2401 && port >= N_CSI_PORTS) ||
+ (IS_ISP2401 && err)) {
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"allocate_mipi_frames(%p) exit: error: port is not correct (port=%d).\n",
pipe, port);
@@ -552,14 +555,17 @@ free_mipi_frames(struct ia_css_pipe *pipe)
return err;
}
- if (!IS_ISP2401)
+ if (!IS_ISP2401) {
port = (unsigned int)pipe->stream->config.source.port.port;
- else
- err = ia_css_mipi_is_source_port_valid(pipe, &port);
+ } else {
+ /* Returns true if port is valid. So, invert it */
+ err = !ia_css_mipi_is_source_port_valid(pipe, &port);
+ }
assert(port < N_CSI_PORTS);
- if (port >= N_CSI_PORTS || err) {
+ if ((!IS_ISP2401 && port >= N_CSI_PORTS) ||
+ (IS_ISP2401 && err)) {
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"free_mipi_frames(%p, %d) exit: error: pipe port is not correct.\n",
pipe, port);
@@ -663,14 +669,17 @@ send_mipi_frames(struct ia_css_pipe *pipe)
/* TODO: AM: maybe this should be returning an error. */
}
- if (!IS_ISP2401)
+ if (!IS_ISP2401) {
port = (unsigned int)pipe->stream->config.source.port.port;
- else
- err = ia_css_mipi_is_source_port_valid(pipe, &port);
+ } else {
+ /* Returns true if port is valid. So, invert it */
+ err = !ia_css_mipi_is_source_port_valid(pipe, &port);
+ }
assert(port < N_CSI_PORTS);
- if (port >= N_CSI_PORTS || err) {
+ if ((!IS_ISP2401 && port >= N_CSI_PORTS) ||
+ (IS_ISP2401 && err)) {
IA_CSS_ERROR("send_mipi_frames(%p) exit: invalid port specified (port=%d).\n",
pipe, port);
return err;
diff --git a/drivers/staging/media/atomisp/pci/sh_css_params.c b/drivers/staging/media/atomisp/pci/sh_css_params.c
index dbd3bfe3d343..ccc007879564 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_params.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_params.c
@@ -2431,7 +2431,7 @@ sh_css_create_isp_params(struct ia_css_stream *stream,
unsigned int i;
struct sh_css_ddr_address_map *ddr_ptrs;
struct sh_css_ddr_address_map_size *ddr_ptrs_size;
- int err = 0;
+ int err;
size_t params_size;
struct ia_css_isp_parameters *params =
kvmalloc(sizeof(struct ia_css_isp_parameters), GFP_KERNEL);
@@ -2473,7 +2473,11 @@ sh_css_create_isp_params(struct ia_css_stream *stream,
succ &= (ddr_ptrs->macc_tbl != mmgr_NULL);
*isp_params_out = params;
- return err;
+
+ if (!succ)
+ return -ENOMEM;
+
+ return 0;
}
static bool
diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c
index 20e508158871..281aa585e337 100644
--- a/drivers/staging/media/hantro/hantro_drv.c
+++ b/drivers/staging/media/hantro/hantro_drv.c
@@ -958,7 +958,7 @@ static int hantro_probe(struct platform_device *pdev)
ret = clk_bulk_prepare(vpu->variant->num_clocks, vpu->clocks);
if (ret) {
dev_err(&pdev->dev, "Failed to prepare clocks\n");
- return ret;
+ goto err_pm_disable;
}
ret = v4l2_device_register(&pdev->dev, &vpu->v4l2_dev);
@@ -1014,6 +1014,7 @@ static int hantro_probe(struct platform_device *pdev)
v4l2_device_unregister(&vpu->v4l2_dev);
err_clk_unprepare:
clk_bulk_unprepare(vpu->variant->num_clocks, vpu->clocks);
+err_pm_disable:
pm_runtime_dont_use_autosuspend(vpu->dev);
pm_runtime_disable(vpu->dev);
return ret;
diff --git a/drivers/staging/media/hantro/hantro_h1_jpeg_enc.c b/drivers/staging/media/hantro/hantro_h1_jpeg_enc.c
index 56cf261a8e95..9cd713c02a45 100644
--- a/drivers/staging/media/hantro/hantro_h1_jpeg_enc.c
+++ b/drivers/staging/media/hantro/hantro_h1_jpeg_enc.c
@@ -140,7 +140,7 @@ int hantro_h1_jpeg_enc_run(struct hantro_ctx *ctx)
return 0;
}
-void hantro_jpeg_enc_done(struct hantro_ctx *ctx)
+void hantro_h1_jpeg_enc_done(struct hantro_ctx *ctx)
{
struct hantro_dev *vpu = ctx->dev;
u32 bytesused = vepu_read(vpu, H1_REG_STR_BUF_LIMIT) / 8;
diff --git a/drivers/staging/media/hantro/hantro_hw.h b/drivers/staging/media/hantro/hantro_hw.h
index df7b5e3a57b9..fd738653a573 100644
--- a/drivers/staging/media/hantro/hantro_hw.h
+++ b/drivers/staging/media/hantro/hantro_hw.h
@@ -235,7 +235,8 @@ int hantro_h1_jpeg_enc_run(struct hantro_ctx *ctx);
int rockchip_vpu2_jpeg_enc_run(struct hantro_ctx *ctx);
int hantro_jpeg_enc_init(struct hantro_ctx *ctx);
void hantro_jpeg_enc_exit(struct hantro_ctx *ctx);
-void hantro_jpeg_enc_done(struct hantro_ctx *ctx);
+void hantro_h1_jpeg_enc_done(struct hantro_ctx *ctx);
+void rockchip_vpu2_jpeg_enc_done(struct hantro_ctx *ctx);
dma_addr_t hantro_h264_get_ref_buf(struct hantro_ctx *ctx,
unsigned int dpb_idx);
diff --git a/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c b/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c
index 991213ce1610..5d9ff420f0b5 100644
--- a/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c
+++ b/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c
@@ -171,3 +171,20 @@ int rockchip_vpu2_jpeg_enc_run(struct hantro_ctx *ctx)
return 0;
}
+
+void rockchip_vpu2_jpeg_enc_done(struct hantro_ctx *ctx)
+{
+ struct hantro_dev *vpu = ctx->dev;
+ u32 bytesused = vepu_read(vpu, VEPU_REG_STR_BUF_LIMIT) / 8;
+ struct vb2_v4l2_buffer *dst_buf = hantro_get_dst_buf(ctx);
+
+ /*
+ * TODO: Rework the JPEG encoder to eliminate the need
+ * for a bounce buffer.
+ */
+ memcpy(vb2_plane_vaddr(&dst_buf->vb2_buf, 0) +
+ ctx->vpu_dst_fmt->header_size,
+ ctx->jpeg_enc.bounce_buffer.cpu, bytesused);
+ vb2_set_plane_payload(&dst_buf->vb2_buf, 0,
+ ctx->vpu_dst_fmt->header_size + bytesused);
+}
diff --git a/drivers/staging/media/hantro/rockchip_vpu_hw.c b/drivers/staging/media/hantro/rockchip_vpu_hw.c
index d4f52957cc53..0c22039162a0 100644
--- a/drivers/staging/media/hantro/rockchip_vpu_hw.c
+++ b/drivers/staging/media/hantro/rockchip_vpu_hw.c
@@ -343,7 +343,7 @@ static const struct hantro_codec_ops rk3066_vpu_codec_ops[] = {
.run = hantro_h1_jpeg_enc_run,
.reset = rockchip_vpu1_enc_reset,
.init = hantro_jpeg_enc_init,
- .done = hantro_jpeg_enc_done,
+ .done = hantro_h1_jpeg_enc_done,
.exit = hantro_jpeg_enc_exit,
},
[HANTRO_MODE_H264_DEC] = {
@@ -371,7 +371,7 @@ static const struct hantro_codec_ops rk3288_vpu_codec_ops[] = {
.run = hantro_h1_jpeg_enc_run,
.reset = rockchip_vpu1_enc_reset,
.init = hantro_jpeg_enc_init,
- .done = hantro_jpeg_enc_done,
+ .done = hantro_h1_jpeg_enc_done,
.exit = hantro_jpeg_enc_exit,
},
[HANTRO_MODE_H264_DEC] = {
@@ -399,6 +399,7 @@ static const struct hantro_codec_ops rk3399_vpu_codec_ops[] = {
.run = rockchip_vpu2_jpeg_enc_run,
.reset = rockchip_vpu2_enc_reset,
.init = hantro_jpeg_enc_init,
+ .done = rockchip_vpu2_jpeg_enc_done,
.exit = hantro_jpeg_enc_exit,
},
[HANTRO_MODE_H264_DEC] = {
diff --git a/drivers/staging/rtl8192e/rtllib.h b/drivers/staging/rtl8192e/rtllib.h
index c6f8b772335c..c985e4ebc545 100644
--- a/drivers/staging/rtl8192e/rtllib.h
+++ b/drivers/staging/rtl8192e/rtllib.h
@@ -1980,7 +1980,7 @@ void SendDisassociation(struct rtllib_device *ieee, bool deauth, u16 asRsn);
void rtllib_softmac_xmit(struct rtllib_txb *txb, struct rtllib_device *ieee);
void rtllib_start_ibss(struct rtllib_device *ieee);
-void rtllib_softmac_init(struct rtllib_device *ieee);
+int rtllib_softmac_init(struct rtllib_device *ieee);
void rtllib_softmac_free(struct rtllib_device *ieee);
void rtllib_disassociate(struct rtllib_device *ieee);
void rtllib_stop_scan(struct rtllib_device *ieee);
diff --git a/drivers/staging/rtl8192e/rtllib_module.c b/drivers/staging/rtl8192e/rtllib_module.c
index 64d9feee1f39..f00ac94b2639 100644
--- a/drivers/staging/rtl8192e/rtllib_module.c
+++ b/drivers/staging/rtl8192e/rtllib_module.c
@@ -88,7 +88,7 @@ struct net_device *alloc_rtllib(int sizeof_priv)
err = rtllib_networks_allocate(ieee);
if (err) {
pr_err("Unable to allocate beacon storage: %d\n", err);
- goto failed;
+ goto free_netdev;
}
rtllib_networks_initialize(ieee);
@@ -121,11 +121,13 @@ struct net_device *alloc_rtllib(int sizeof_priv)
ieee->hwsec_active = 0;
memset(ieee->swcamtable, 0, sizeof(struct sw_cam_table) * 32);
- rtllib_softmac_init(ieee);
+ err = rtllib_softmac_init(ieee);
+ if (err)
+ goto free_crypt_info;
ieee->pHTInfo = kzalloc(sizeof(struct rt_hi_throughput), GFP_KERNEL);
if (!ieee->pHTInfo)
- return NULL;
+ goto free_softmac;
HTUpdateDefaultSetting(ieee);
HTInitializeHTInfo(ieee);
@@ -141,8 +143,14 @@ struct net_device *alloc_rtllib(int sizeof_priv)
return dev;
- failed:
+free_softmac:
+ rtllib_softmac_free(ieee);
+free_crypt_info:
+ lib80211_crypt_info_free(&ieee->crypt_info);
+ rtllib_networks_free(ieee);
+free_netdev:
free_netdev(dev);
+
return NULL;
}
EXPORT_SYMBOL(alloc_rtllib);
diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c
index d2726d01c757..503d33be71d9 100644
--- a/drivers/staging/rtl8192e/rtllib_softmac.c
+++ b/drivers/staging/rtl8192e/rtllib_softmac.c
@@ -2952,7 +2952,7 @@ void rtllib_start_protocol(struct rtllib_device *ieee)
}
}
-void rtllib_softmac_init(struct rtllib_device *ieee)
+int rtllib_softmac_init(struct rtllib_device *ieee)
{
int i;
@@ -2963,7 +2963,8 @@ void rtllib_softmac_init(struct rtllib_device *ieee)
ieee->seq_ctrl[i] = 0;
ieee->dot11d_info = kzalloc(sizeof(struct rt_dot11d_info), GFP_ATOMIC);
if (!ieee->dot11d_info)
- netdev_err(ieee->dev, "Can't alloc memory for DOT11D\n");
+ return -ENOMEM;
+
ieee->LinkDetectInfo.SlotIndex = 0;
ieee->LinkDetectInfo.SlotNum = 2;
ieee->LinkDetectInfo.NumRecvBcnInPeriod = 0;
@@ -3029,6 +3030,7 @@ void rtllib_softmac_init(struct rtllib_device *ieee)
tasklet_setup(&ieee->ps_task, rtllib_sta_ps);
+ return 0;
}
void rtllib_softmac_free(struct rtllib_device *ieee)
diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c
index 2b37bc408fc3..85102d12d716 100644
--- a/drivers/tee/tee_core.c
+++ b/drivers/tee/tee_core.c
@@ -98,8 +98,10 @@ void teedev_ctx_put(struct tee_context *ctx)
static void teedev_close_context(struct tee_context *ctx)
{
- tee_device_put(ctx->teedev);
+ struct tee_device *teedev = ctx->teedev;
+
teedev_ctx_put(ctx);
+ tee_device_put(teedev);
}
static int tee_open(struct inode *inode, struct file *filp)
diff --git a/drivers/thermal/imx8mm_thermal.c b/drivers/thermal/imx8mm_thermal.c
index 7442e013738f..af666bd9e8d4 100644
--- a/drivers/thermal/imx8mm_thermal.c
+++ b/drivers/thermal/imx8mm_thermal.c
@@ -21,6 +21,7 @@
#define TPS 0x4
#define TRITSR 0x20 /* TMU immediate temp */
+#define TER_ADC_PD BIT(30)
#define TER_EN BIT(31)
#define TRITSR_TEMP0_VAL_MASK 0xff
#define TRITSR_TEMP1_VAL_MASK 0xff0000
@@ -113,6 +114,8 @@ static void imx8mm_tmu_enable(struct imx8mm_tmu *tmu, bool enable)
val = readl_relaxed(tmu->base + TER);
val = enable ? (val | TER_EN) : (val & ~TER_EN);
+ if (tmu->socdata->version == TMU_VER2)
+ val = enable ? (val & ~TER_ADC_PD) : (val | TER_ADC_PD);
writel_relaxed(val, tmu->base + TER);
}
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
index 2c7473d86a59..16663373b682 100644
--- a/drivers/thermal/imx_thermal.c
+++ b/drivers/thermal/imx_thermal.c
@@ -15,6 +15,7 @@
#include <linux/regmap.h>
#include <linux/thermal.h>
#include <linux/nvmem-consumer.h>
+#include <linux/pm_runtime.h>
#define REG_SET 0x4
#define REG_CLR 0x8
@@ -194,6 +195,7 @@ static struct thermal_soc_data thermal_imx7d_data = {
};
struct imx_thermal_data {
+ struct device *dev;
struct cpufreq_policy *policy;
struct thermal_zone_device *tz;
struct thermal_cooling_device *cdev;
@@ -252,44 +254,15 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
const struct thermal_soc_data *soc_data = data->socdata;
struct regmap *map = data->tempmon;
unsigned int n_meas;
- bool wait, run_measurement;
u32 val;
+ int ret;
- run_measurement = !data->irq_enabled;
- if (!run_measurement) {
- /* Check if a measurement is currently in progress */
- regmap_read(map, soc_data->temp_data, &val);
- wait = !(val & soc_data->temp_valid_mask);
- } else {
- /*
- * Every time we measure the temperature, we will power on the
- * temperature sensor, enable measurements, take a reading,
- * disable measurements, power off the temperature sensor.
- */
- regmap_write(map, soc_data->sensor_ctrl + REG_CLR,
- soc_data->power_down_mask);
- regmap_write(map, soc_data->sensor_ctrl + REG_SET,
- soc_data->measure_temp_mask);
-
- wait = true;
- }
-
- /*
- * According to the temp sensor designers, it may require up to ~17us
- * to complete a measurement.
- */
- if (wait)
- usleep_range(20, 50);
+ ret = pm_runtime_resume_and_get(data->dev);
+ if (ret < 0)
+ return ret;
regmap_read(map, soc_data->temp_data, &val);
- if (run_measurement) {
- regmap_write(map, soc_data->sensor_ctrl + REG_CLR,
- soc_data->measure_temp_mask);
- regmap_write(map, soc_data->sensor_ctrl + REG_SET,
- soc_data->power_down_mask);
- }
-
if ((val & soc_data->temp_valid_mask) == 0) {
dev_dbg(&tz->device, "temp measurement never finished\n");
return -EAGAIN;
@@ -328,6 +301,8 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
enable_irq(data->irq);
}
+ pm_runtime_put(data->dev);
+
return 0;
}
@@ -335,24 +310,16 @@ static int imx_change_mode(struct thermal_zone_device *tz,
enum thermal_device_mode mode)
{
struct imx_thermal_data *data = tz->devdata;
- struct regmap *map = data->tempmon;
- const struct thermal_soc_data *soc_data = data->socdata;
if (mode == THERMAL_DEVICE_ENABLED) {
- regmap_write(map, soc_data->sensor_ctrl + REG_CLR,
- soc_data->power_down_mask);
- regmap_write(map, soc_data->sensor_ctrl + REG_SET,
- soc_data->measure_temp_mask);
+ pm_runtime_get(data->dev);
if (!data->irq_enabled) {
data->irq_enabled = true;
enable_irq(data->irq);
}
} else {
- regmap_write(map, soc_data->sensor_ctrl + REG_CLR,
- soc_data->measure_temp_mask);
- regmap_write(map, soc_data->sensor_ctrl + REG_SET,
- soc_data->power_down_mask);
+ pm_runtime_put(data->dev);
if (data->irq_enabled) {
disable_irq(data->irq);
@@ -393,6 +360,11 @@ static int imx_set_trip_temp(struct thermal_zone_device *tz, int trip,
int temp)
{
struct imx_thermal_data *data = tz->devdata;
+ int ret;
+
+ ret = pm_runtime_resume_and_get(data->dev);
+ if (ret < 0)
+ return ret;
/* do not allow changing critical threshold */
if (trip == IMX_TRIP_CRITICAL)
@@ -406,6 +378,8 @@ static int imx_set_trip_temp(struct thermal_zone_device *tz, int trip,
imx_set_alarm_temp(data, temp);
+ pm_runtime_put(data->dev);
+
return 0;
}
@@ -681,6 +655,8 @@ static int imx_thermal_probe(struct platform_device *pdev)
if (!data)
return -ENOMEM;
+ data->dev = &pdev->dev;
+
map = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, "fsl,tempmon");
if (IS_ERR(map)) {
ret = PTR_ERR(map);
@@ -800,6 +776,16 @@ static int imx_thermal_probe(struct platform_device *pdev)
data->socdata->power_down_mask);
regmap_write(map, data->socdata->sensor_ctrl + REG_SET,
data->socdata->measure_temp_mask);
+ /* After power up, we need a delay before first access can be done. */
+ usleep_range(20, 50);
+
+ /* the core was configured and enabled just before */
+ pm_runtime_set_active(&pdev->dev);
+ pm_runtime_enable(data->dev);
+
+ ret = pm_runtime_resume_and_get(data->dev);
+ if (ret < 0)
+ goto disable_runtime_pm;
data->irq_enabled = true;
ret = thermal_zone_device_enable(data->tz);
@@ -814,10 +800,15 @@ static int imx_thermal_probe(struct platform_device *pdev)
goto thermal_zone_unregister;
}
+ pm_runtime_put(data->dev);
+
return 0;
thermal_zone_unregister:
thermal_zone_device_unregister(data->tz);
+disable_runtime_pm:
+ pm_runtime_put_noidle(data->dev);
+ pm_runtime_disable(data->dev);
clk_disable:
clk_disable_unprepare(data->thermal_clk);
legacy_cleanup:
@@ -829,13 +820,9 @@ static int imx_thermal_probe(struct platform_device *pdev)
static int imx_thermal_remove(struct platform_device *pdev)
{
struct imx_thermal_data *data = platform_get_drvdata(pdev);
- struct regmap *map = data->tempmon;
- /* Disable measurements */
- regmap_write(map, data->socdata->sensor_ctrl + REG_SET,
- data->socdata->power_down_mask);
- if (!IS_ERR(data->thermal_clk))
- clk_disable_unprepare(data->thermal_clk);
+ pm_runtime_put_noidle(data->dev);
+ pm_runtime_disable(data->dev);
thermal_zone_device_unregister(data->tz);
imx_thermal_unregister_legacy_cooling(data);
@@ -858,29 +845,79 @@ static int __maybe_unused imx_thermal_suspend(struct device *dev)
ret = thermal_zone_device_disable(data->tz);
if (ret)
return ret;
+
+ return pm_runtime_force_suspend(data->dev);
+}
+
+static int __maybe_unused imx_thermal_resume(struct device *dev)
+{
+ struct imx_thermal_data *data = dev_get_drvdata(dev);
+ int ret;
+
+ ret = pm_runtime_force_resume(data->dev);
+ if (ret)
+ return ret;
+ /* Enabled thermal sensor after resume */
+ return thermal_zone_device_enable(data->tz);
+}
+
+static int __maybe_unused imx_thermal_runtime_suspend(struct device *dev)
+{
+ struct imx_thermal_data *data = dev_get_drvdata(dev);
+ const struct thermal_soc_data *socdata = data->socdata;
+ struct regmap *map = data->tempmon;
+ int ret;
+
+ ret = regmap_write(map, socdata->sensor_ctrl + REG_CLR,
+ socdata->measure_temp_mask);
+ if (ret)
+ return ret;
+
+ ret = regmap_write(map, socdata->sensor_ctrl + REG_SET,
+ socdata->power_down_mask);
+ if (ret)
+ return ret;
+
clk_disable_unprepare(data->thermal_clk);
return 0;
}
-static int __maybe_unused imx_thermal_resume(struct device *dev)
+static int __maybe_unused imx_thermal_runtime_resume(struct device *dev)
{
struct imx_thermal_data *data = dev_get_drvdata(dev);
+ const struct thermal_soc_data *socdata = data->socdata;
+ struct regmap *map = data->tempmon;
int ret;
ret = clk_prepare_enable(data->thermal_clk);
if (ret)
return ret;
- /* Enabled thermal sensor after resume */
- ret = thermal_zone_device_enable(data->tz);
+
+ ret = regmap_write(map, socdata->sensor_ctrl + REG_CLR,
+ socdata->power_down_mask);
+ if (ret)
+ return ret;
+
+ ret = regmap_write(map, socdata->sensor_ctrl + REG_SET,
+ socdata->measure_temp_mask);
if (ret)
return ret;
+ /*
+ * According to the temp sensor designers, it may require up to ~17us
+ * to complete a measurement.
+ */
+ usleep_range(20, 50);
+
return 0;
}
-static SIMPLE_DEV_PM_OPS(imx_thermal_pm_ops,
- imx_thermal_suspend, imx_thermal_resume);
+static const struct dev_pm_ops imx_thermal_pm_ops = {
+ SET_SYSTEM_SLEEP_PM_OPS(imx_thermal_suspend, imx_thermal_resume)
+ SET_RUNTIME_PM_OPS(imx_thermal_runtime_suspend,
+ imx_thermal_runtime_resume, NULL)
+};
static struct platform_driver imx_thermal = {
.driver = {
diff --git a/drivers/thunderbolt/acpi.c b/drivers/thunderbolt/acpi.c
index b67e72d5644b..7c9597a33929 100644
--- a/drivers/thunderbolt/acpi.c
+++ b/drivers/thunderbolt/acpi.c
@@ -7,6 +7,7 @@
*/
#include <linux/acpi.h>
+#include <linux/pm_runtime.h>
#include "tb.h"
@@ -74,8 +75,18 @@ static acpi_status tb_acpi_add_link(acpi_handle handle, u32 level, void *data,
pci_pcie_type(pdev) == PCI_EXP_TYPE_DOWNSTREAM))) {
const struct device_link *link;
+ /*
+ * Make them both active first to make sure the NHI does
+ * not runtime suspend before the consumer. The
+ * pm_runtime_put() below then allows the consumer to
+ * runtime suspend again (which then allows NHI runtime
+ * suspend too now that the device link is established).
+ */
+ pm_runtime_get_sync(&pdev->dev);
+
link = device_link_add(&pdev->dev, &nhi->pdev->dev,
DL_FLAG_AUTOREMOVE_SUPPLIER |
+ DL_FLAG_RPM_ACTIVE |
DL_FLAG_PM_RUNTIME);
if (link) {
dev_dbg(&nhi->pdev->dev, "created link from %s\n",
@@ -84,6 +95,8 @@ static acpi_status tb_acpi_add_link(acpi_handle handle, u32 level, void *data,
dev_warn(&nhi->pdev->dev, "device link creation from %s failed\n",
dev_name(&pdev->dev));
}
+
+ pm_runtime_put(&pdev->dev);
}
out_put:
diff --git a/drivers/tty/mxser.c b/drivers/tty/mxser.c
index 1216f3985e18..da375851af4e 100644
--- a/drivers/tty/mxser.c
+++ b/drivers/tty/mxser.c
@@ -261,7 +261,6 @@ struct mxser_port {
unsigned int xmit_head;
unsigned int xmit_tail;
unsigned int xmit_cnt;
- int closing;
spinlock_t slock;
};
@@ -923,7 +922,6 @@ static void mxser_close(struct tty_struct *tty, struct file *filp)
return;
if (tty_port_close_start(port, tty, filp) == 0)
return;
- info->closing = 1;
mutex_lock(&port->mutex);
mxser_close_port(port);
mxser_flush_buffer(tty);
@@ -932,7 +930,6 @@ static void mxser_close(struct tty_struct *tty, struct file *filp)
mxser_shutdown_port(port);
tty_port_set_initialized(port, 0);
mutex_unlock(&port->mutex);
- info->closing = 0;
/* Right now the tty_port set is done outside of the close_end helper
as we don't yet have everyone using refcounts */
tty_port_close_end(port, tty);
@@ -1693,7 +1690,7 @@ static bool mxser_port_isr(struct mxser_port *port)
iir &= MOXA_MUST_IIR_MASK;
tty = tty_port_tty_get(&port->port);
- if (!tty || port->closing || !tty_port_initialized(&port->port)) {
+ if (!tty) {
status = inb(port->ioaddr + UART_LSR);
outb(MOXA_MUST_FCR_GDA_MODE_ENABLE | UART_FCR_ENABLE_FIFO |
UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT,
diff --git a/drivers/tty/serial/8250/8250_bcm7271.c b/drivers/tty/serial/8250/8250_bcm7271.c
index 5163d60756b7..0877cf24f7de 100644
--- a/drivers/tty/serial/8250/8250_bcm7271.c
+++ b/drivers/tty/serial/8250/8250_bcm7271.c
@@ -1076,14 +1076,18 @@ static int brcmuart_probe(struct platform_device *pdev)
priv->rx_bufs = dma_alloc_coherent(dev,
priv->rx_size,
&priv->rx_addr, GFP_KERNEL);
- if (!priv->rx_bufs)
+ if (!priv->rx_bufs) {
+ ret = -EINVAL;
goto err;
+ }
priv->tx_size = UART_XMIT_SIZE;
priv->tx_buf = dma_alloc_coherent(dev,
priv->tx_size,
&priv->tx_addr, GFP_KERNEL);
- if (!priv->tx_buf)
+ if (!priv->tx_buf) {
+ ret = -EINVAL;
goto err;
+ }
}
ret = serial8250_register_8250_port(&up);
@@ -1097,6 +1101,7 @@ static int brcmuart_probe(struct platform_device *pdev)
if (priv->dma_enabled) {
dma_irq = platform_get_irq_byname(pdev, "dma");
if (dma_irq < 0) {
+ ret = dma_irq;
dev_err(dev, "no IRQ resource info\n");
goto err1;
}
@@ -1116,7 +1121,7 @@ static int brcmuart_probe(struct platform_device *pdev)
err:
brcmuart_free_bufs(dev, priv);
brcmuart_arbitration(priv, 0);
- return -ENODEV;
+ return ret;
}
static int brcmuart_remove(struct platform_device *pdev)
diff --git a/drivers/tty/serial/amba-pl010.c b/drivers/tty/serial/amba-pl010.c
index e744b953ca34..47654073123d 100644
--- a/drivers/tty/serial/amba-pl010.c
+++ b/drivers/tty/serial/amba-pl010.c
@@ -446,14 +446,11 @@ pl010_set_termios(struct uart_port *port, struct ktermios *termios,
if ((termios->c_cflag & CREAD) == 0)
uap->port.ignore_status_mask |= UART_DUMMY_RSR_RX;
- /* first, disable everything */
old_cr = readb(uap->port.membase + UART010_CR) & ~UART010_CR_MSIE;
if (UART_ENABLE_MS(port, termios->c_cflag))
old_cr |= UART010_CR_MSIE;
- writel(0, uap->port.membase + UART010_CR);
-
/* Set baud rate */
quot -= 1;
writel((quot & 0xf00) >> 8, uap->port.membase + UART010_LCRM);
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index 52518a606c06..6ec34260d6b1 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -2105,9 +2105,7 @@ pl011_set_termios(struct uart_port *port, struct ktermios *termios,
if (port->rs485.flags & SER_RS485_ENABLED)
termios->c_cflag &= ~CRTSCTS;
- /* first, disable everything */
old_cr = pl011_read(uap, REG_CR);
- pl011_write(0, uap, REG_CR);
if (termios->c_cflag & CRTSCTS) {
if (old_cr & UART011_CR_RTS)
@@ -2183,32 +2181,13 @@ static const char *pl011_type(struct uart_port *port)
return uap->port.type == PORT_AMBA ? uap->type : NULL;
}
-/*
- * Release the memory region(s) being used by 'port'
- */
-static void pl011_release_port(struct uart_port *port)
-{
- release_mem_region(port->mapbase, SZ_4K);
-}
-
-/*
- * Request the memory region(s) being used by 'port'
- */
-static int pl011_request_port(struct uart_port *port)
-{
- return request_mem_region(port->mapbase, SZ_4K, "uart-pl011")
- != NULL ? 0 : -EBUSY;
-}
-
/*
* Configure/autoconfigure the port.
*/
static void pl011_config_port(struct uart_port *port, int flags)
{
- if (flags & UART_CONFIG_TYPE) {
+ if (flags & UART_CONFIG_TYPE)
port->type = PORT_AMBA;
- pl011_request_port(port);
- }
}
/*
@@ -2223,6 +2202,8 @@ static int pl011_verify_port(struct uart_port *port, struct serial_struct *ser)
ret = -EINVAL;
if (ser->baud_base < 9600)
ret = -EINVAL;
+ if (port->mapbase != (unsigned long) ser->iomem_base)
+ ret = -EINVAL;
return ret;
}
@@ -2275,8 +2256,6 @@ static const struct uart_ops amba_pl011_pops = {
.flush_buffer = pl011_dma_flush_buffer,
.set_termios = pl011_set_termios,
.type = pl011_type,
- .release_port = pl011_release_port,
- .request_port = pl011_request_port,
.config_port = pl011_config_port,
.verify_port = pl011_verify_port,
#ifdef CONFIG_CONSOLE_POLL
@@ -2306,8 +2285,6 @@ static const struct uart_ops sbsa_uart_pops = {
.shutdown = sbsa_uart_shutdown,
.set_termios = sbsa_uart_set_termios,
.type = pl011_type,
- .release_port = pl011_release_port,
- .request_port = pl011_request_port,
.config_port = pl011_config_port,
.verify_port = pl011_verify_port,
#ifdef CONFIG_CONSOLE_POLL
diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
index 249ea35088d2..dd350c590880 100644
--- a/drivers/tty/serial/atmel_serial.c
+++ b/drivers/tty/serial/atmel_serial.c
@@ -1004,6 +1004,13 @@ static void atmel_tx_dma(struct uart_port *port)
desc->callback = atmel_complete_tx_dma;
desc->callback_param = atmel_port;
atmel_port->cookie_tx = dmaengine_submit(desc);
+ if (dma_submit_error(atmel_port->cookie_tx)) {
+ dev_err(port->dev, "dma_submit_error %d\n",
+ atmel_port->cookie_tx);
+ return;
+ }
+
+ dma_async_issue_pending(chan);
}
if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
@@ -1258,6 +1265,13 @@ static int atmel_prepare_rx_dma(struct uart_port *port)
desc->callback_param = port;
atmel_port->desc_rx = desc;
atmel_port->cookie_rx = dmaengine_submit(desc);
+ if (dma_submit_error(atmel_port->cookie_rx)) {
+ dev_err(port->dev, "dma_submit_error %d\n",
+ atmel_port->cookie_rx);
+ goto chan_err;
+ }
+
+ dma_async_issue_pending(atmel_port->chan_rx);
return 0;
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index 51a9f9423b1a..7820049aba5a 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -486,18 +486,21 @@ static void imx_uart_stop_tx(struct uart_port *port)
static void imx_uart_stop_rx(struct uart_port *port)
{
struct imx_port *sport = (struct imx_port *)port;
- u32 ucr1, ucr2;
+ u32 ucr1, ucr2, ucr4;
ucr1 = imx_uart_readl(sport, UCR1);
ucr2 = imx_uart_readl(sport, UCR2);
+ ucr4 = imx_uart_readl(sport, UCR4);
if (sport->dma_is_enabled) {
ucr1 &= ~(UCR1_RXDMAEN | UCR1_ATDMAEN);
} else {
ucr1 &= ~UCR1_RRDYEN;
ucr2 &= ~UCR2_ATEN;
+ ucr4 &= ~UCR4_OREN;
}
imx_uart_writel(sport, ucr1, UCR1);
+ imx_uart_writel(sport, ucr4, UCR4);
ucr2 &= ~UCR2_RXEN;
imx_uart_writel(sport, ucr2, UCR2);
@@ -1544,7 +1547,7 @@ static void imx_uart_shutdown(struct uart_port *port)
imx_uart_writel(sport, ucr1, UCR1);
ucr4 = imx_uart_readl(sport, UCR4);
- ucr4 &= ~(UCR4_OREN | UCR4_TCEN);
+ ucr4 &= ~UCR4_TCEN;
imx_uart_writel(sport, ucr4, UCR4);
spin_unlock_irqrestore(&sport->port.lock, flags);
diff --git a/drivers/tty/serial/liteuart.c b/drivers/tty/serial/liteuart.c
index 2941659e5274..7f74bf7bdcff 100644
--- a/drivers/tty/serial/liteuart.c
+++ b/drivers/tty/serial/liteuart.c
@@ -436,4 +436,4 @@ module_exit(liteuart_exit);
MODULE_AUTHOR("Antmicro <www.antmicro.com>");
MODULE_DESCRIPTION("LiteUART serial driver");
MODULE_LICENSE("GPL v2");
-MODULE_ALIAS("platform: liteuart");
+MODULE_ALIAS("platform:liteuart");
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index 61e3dd0222af..dc6129ddef85 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -162,7 +162,7 @@ static void uart_port_dtr_rts(struct uart_port *uport, int raise)
int RTS_after_send = !!(uport->rs485.flags & SER_RS485_RTS_AFTER_SEND);
if (raise) {
- if (rs485_on && !RTS_after_send) {
+ if (rs485_on && RTS_after_send) {
uart_set_mctrl(uport, TIOCM_DTR);
uart_clear_mctrl(uport, TIOCM_RTS);
} else {
@@ -171,7 +171,7 @@ static void uart_port_dtr_rts(struct uart_port *uport, int raise)
} else {
unsigned int clear = TIOCM_DTR;
- clear |= (!rs485_on || !RTS_after_send) ? TIOCM_RTS : 0;
+ clear |= (!rs485_on || RTS_after_send) ? TIOCM_RTS : 0;
uart_clear_mctrl(uport, clear);
}
}
@@ -2393,7 +2393,8 @@ uart_configure_port(struct uart_driver *drv, struct uart_state *state,
* We probably don't need a spinlock around this, but
*/
spin_lock_irqsave(&port->lock, flags);
- port->ops->set_mctrl(port, port->mctrl & TIOCM_DTR);
+ port->mctrl &= TIOCM_DTR;
+ port->ops->set_mctrl(port, port->mctrl);
spin_unlock_irqrestore(&port->lock, flags);
/*
diff --git a/drivers/tty/serial/stm32-usart.c b/drivers/tty/serial/stm32-usart.c
index 8f032e77b954..3366914dad7a 100644
--- a/drivers/tty/serial/stm32-usart.c
+++ b/drivers/tty/serial/stm32-usart.c
@@ -691,6 +691,11 @@ static void stm32_usart_shutdown(struct uart_port *port)
u32 val, isr;
int ret;
+ if (stm32_port->tx_dma_busy) {
+ dmaengine_terminate_async(stm32_port->tx_ch);
+ stm32_usart_clr_bits(port, ofs->cr3, USART_CR3_DMAT);
+ }
+
/* Disable modem control interrupts */
stm32_usart_disable_ms(port);
@@ -1385,7 +1390,6 @@ static int stm32_usart_serial_remove(struct platform_device *pdev)
stm32_usart_clr_bits(port, ofs->cr3, USART_CR3_DMAR);
if (stm32_port->tx_ch) {
- dmaengine_terminate_async(stm32_port->tx_ch);
stm32_usart_of_dma_tx_remove(stm32_port, pdev);
dma_release_channel(stm32_port->tx_ch);
}
diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
index dfc1ba4e1572..36871cebd6a0 100644
--- a/drivers/tty/serial/uartlite.c
+++ b/drivers/tty/serial/uartlite.c
@@ -612,7 +612,7 @@ static struct uart_driver ulite_uart_driver = {
*
* Returns: 0 on success, <0 otherwise
*/
-static int ulite_assign(struct device *dev, int id, u32 base, int irq,
+static int ulite_assign(struct device *dev, int id, phys_addr_t base, int irq,
struct uartlite_data *pdata)
{
struct uart_port *port;
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 3bc4a86c3d0a..ac6c5ccfe1cb 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1110,7 +1110,10 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type)
} else {
hub_power_on(hub, true);
}
- }
+ /* Give some time on remote wakeup to let links to transit to U0 */
+ } else if (hub_is_superspeed(hub->hdev))
+ msleep(20);
+
init2:
/*
diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
index 2190225bf3da..ea0d2d6139a6 100644
--- a/drivers/usb/dwc2/gadget.c
+++ b/drivers/usb/dwc2/gadget.c
@@ -4974,7 +4974,18 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg)
hsotg->params.g_np_tx_fifo_size);
dev_dbg(dev, "RXFIFO size: %d\n", hsotg->params.g_rx_fifo_size);
- hsotg->gadget.max_speed = USB_SPEED_HIGH;
+ switch (hsotg->params.speed) {
+ case DWC2_SPEED_PARAM_LOW:
+ hsotg->gadget.max_speed = USB_SPEED_LOW;
+ break;
+ case DWC2_SPEED_PARAM_FULL:
+ hsotg->gadget.max_speed = USB_SPEED_FULL;
+ break;
+ default:
+ hsotg->gadget.max_speed = USB_SPEED_HIGH;
+ break;
+ }
+
hsotg->gadget.ops = &dwc2_hsotg_gadget_ops;
hsotg->gadget.name = dev_name(dev);
hsotg->remote_wakeup_allowed = 0;
diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
index a215ec9e172e..657dbd50faf1 100644
--- a/drivers/usb/dwc2/hcd.c
+++ b/drivers/usb/dwc2/hcd.c
@@ -4403,11 +4403,12 @@ static int _dwc2_hcd_suspend(struct usb_hcd *hcd)
* If not hibernation nor partial power down are supported,
* clock gating is used to save power.
*/
- if (!hsotg->params.no_clock_gating)
+ if (!hsotg->params.no_clock_gating) {
dwc2_host_enter_clock_gating(hsotg);
- /* After entering suspend, hardware is not accessible */
- clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+ /* After entering suspend, hardware is not accessible */
+ clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
+ }
break;
default:
goto skip_power_saving;
diff --git a/drivers/usb/dwc3/dwc3-meson-g12a.c b/drivers/usb/dwc3/dwc3-meson-g12a.c
index d0f9b7c296b0..bd814df3bf8b 100644
--- a/drivers/usb/dwc3/dwc3-meson-g12a.c
+++ b/drivers/usb/dwc3/dwc3-meson-g12a.c
@@ -755,16 +755,16 @@ static int dwc3_meson_g12a_probe(struct platform_device *pdev)
ret = dwc3_meson_g12a_get_phys(priv);
if (ret)
- goto err_disable_clks;
+ goto err_rearm;
ret = priv->drvdata->setup_regmaps(priv, base);
if (ret)
- goto err_disable_clks;
+ goto err_rearm;
if (priv->vbus) {
ret = regulator_enable(priv->vbus);
if (ret)
- goto err_disable_clks;
+ goto err_rearm;
}
/* Get dr_mode */
@@ -825,6 +825,9 @@ static int dwc3_meson_g12a_probe(struct platform_device *pdev)
if (priv->vbus)
regulator_disable(priv->vbus);
+err_rearm:
+ reset_control_rearm(priv->reset);
+
err_disable_clks:
clk_bulk_disable_unprepare(priv->drvdata->num_clks,
priv->drvdata->clks);
@@ -852,6 +855,8 @@ static int dwc3_meson_g12a_remove(struct platform_device *pdev)
pm_runtime_put_noidle(dev);
pm_runtime_set_suspended(dev);
+ reset_control_rearm(priv->reset);
+
clk_bulk_disable_unprepare(priv->drvdata->num_clks,
priv->drvdata->clks);
@@ -892,7 +897,7 @@ static int __maybe_unused dwc3_meson_g12a_suspend(struct device *dev)
phy_exit(priv->phys[i]);
}
- reset_control_assert(priv->reset);
+ reset_control_rearm(priv->reset);
return 0;
}
@@ -902,7 +907,9 @@ static int __maybe_unused dwc3_meson_g12a_resume(struct device *dev)
struct dwc3_meson_g12a *priv = dev_get_drvdata(dev);
int i, ret;
- reset_control_deassert(priv->reset);
+ ret = reset_control_reset(priv->reset);
+ if (ret)
+ return ret;
ret = priv->drvdata->usb_init(priv);
if (ret)
diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
index 3cb01cdd02c2..b81a9e1c1315 100644
--- a/drivers/usb/dwc3/dwc3-qcom.c
+++ b/drivers/usb/dwc3/dwc3-qcom.c
@@ -769,9 +769,12 @@ static int dwc3_qcom_probe(struct platform_device *pdev)
if (qcom->acpi_pdata->is_urs) {
qcom->urs_usb = dwc3_qcom_create_urs_usb_platdev(dev);
- if (!qcom->urs_usb) {
+ if (IS_ERR_OR_NULL(qcom->urs_usb)) {
dev_err(dev, "failed to create URS USB platdev\n");
- return -ENODEV;
+ if (!qcom->urs_usb)
+ return -ENODEV;
+ else
+ return PTR_ERR(qcom->urs_usb);
}
}
}
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
index aac343f7d7d3..782d67c2c6e0 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -614,7 +614,7 @@ static int ffs_ep0_open(struct inode *inode, struct file *file)
file->private_data = ffs;
ffs_data_opened(ffs);
- return 0;
+ return stream_open(inode, file);
}
static int ffs_ep0_release(struct inode *inode, struct file *file)
@@ -1154,7 +1154,7 @@ ffs_epfile_open(struct inode *inode, struct file *file)
file->private_data = epfile;
ffs_data_opened(epfile->ffs);
- return 0;
+ return stream_open(inode, file);
}
static int ffs_aio_cancel(struct kiocb *kiocb)
diff --git a/drivers/usb/gadget/function/u_audio.c b/drivers/usb/gadget/function/u_audio.c
index ad16163b5ff8..d22ac23c94b0 100644
--- a/drivers/usb/gadget/function/u_audio.c
+++ b/drivers/usb/gadget/function/u_audio.c
@@ -1097,7 +1097,7 @@ int g_audio_setup(struct g_audio *g_audio, const char *pcm_name,
}
kctl->id.device = pcm->device;
- kctl->id.subdevice = i;
+ kctl->id.subdevice = 0;
err = snd_ctl_add(card, kctl);
if (err < 0)
@@ -1120,7 +1120,7 @@ int g_audio_setup(struct g_audio *g_audio, const char *pcm_name,
}
kctl->id.device = pcm->device;
- kctl->id.subdevice = i;
+ kctl->id.subdevice = 0;
kctl->tlv.c = u_audio_volume_tlv;
diff --git a/drivers/usb/host/ehci-brcm.c b/drivers/usb/host/ehci-brcm.c
index d3626bfa966b..6a0f64c9e5e8 100644
--- a/drivers/usb/host/ehci-brcm.c
+++ b/drivers/usb/host/ehci-brcm.c
@@ -62,8 +62,12 @@ static int ehci_brcm_hub_control(
u32 __iomem *status_reg;
unsigned long flags;
int retval, irq_disabled = 0;
+ u32 temp;
- status_reg = &ehci->regs->port_status[(wIndex & 0xff) - 1];
+ temp = (wIndex & 0xff) - 1;
+ if (temp >= HCS_N_PORTS_MAX) /* Avoid index-out-of-bounds warning */
+ temp = 0;
+ status_reg = &ehci->regs->port_status[temp];
/*
* RESUME is cleared when GetPortStatus() is called 20ms after start
diff --git a/drivers/usb/host/uhci-platform.c b/drivers/usb/host/uhci-platform.c
index 70dbd95c3f06..be9e9db7cad1 100644
--- a/drivers/usb/host/uhci-platform.c
+++ b/drivers/usb/host/uhci-platform.c
@@ -113,7 +113,8 @@ static int uhci_hcd_platform_probe(struct platform_device *pdev)
num_ports);
}
if (of_device_is_compatible(np, "aspeed,ast2400-uhci") ||
- of_device_is_compatible(np, "aspeed,ast2500-uhci")) {
+ of_device_is_compatible(np, "aspeed,ast2500-uhci") ||
+ of_device_is_compatible(np, "aspeed,ast2600-uhci")) {
uhci->is_aspeed = 1;
dev_info(&pdev->dev,
"Enabled Aspeed implementation workarounds\n");
diff --git a/drivers/usb/misc/ftdi-elan.c b/drivers/usb/misc/ftdi-elan.c
index e5a8fcdbb78e..6c38c62d29b2 100644
--- a/drivers/usb/misc/ftdi-elan.c
+++ b/drivers/usb/misc/ftdi-elan.c
@@ -202,6 +202,7 @@ static void ftdi_elan_delete(struct kref *kref)
mutex_unlock(&ftdi_module_lock);
kfree(ftdi->bulk_in_buffer);
ftdi->bulk_in_buffer = NULL;
+ kfree(ftdi);
}
static void ftdi_elan_put_kref(struct usb_ftdi *ftdi)
diff --git a/drivers/vdpa/ifcvf/ifcvf_base.c b/drivers/vdpa/ifcvf/ifcvf_base.c
index 2808f1ba9f7b..7d41dfe48ade 100644
--- a/drivers/vdpa/ifcvf/ifcvf_base.c
+++ b/drivers/vdpa/ifcvf/ifcvf_base.c
@@ -143,8 +143,8 @@ int ifcvf_init_hw(struct ifcvf_hw *hw, struct pci_dev *pdev)
IFCVF_DBG(pdev, "hw->isr = %p\n", hw->isr);
break;
case VIRTIO_PCI_CAP_DEVICE_CFG:
- hw->net_cfg = get_cap_addr(hw, &cap);
- IFCVF_DBG(pdev, "hw->net_cfg = %p\n", hw->net_cfg);
+ hw->dev_cfg = get_cap_addr(hw, &cap);
+ IFCVF_DBG(pdev, "hw->dev_cfg = %p\n", hw->dev_cfg);
break;
}
@@ -153,7 +153,7 @@ int ifcvf_init_hw(struct ifcvf_hw *hw, struct pci_dev *pdev)
}
if (hw->common_cfg == NULL || hw->notify_base == NULL ||
- hw->isr == NULL || hw->net_cfg == NULL) {
+ hw->isr == NULL || hw->dev_cfg == NULL) {
IFCVF_ERR(pdev, "Incomplete PCI capabilities\n");
return -EIO;
}
@@ -174,7 +174,7 @@ int ifcvf_init_hw(struct ifcvf_hw *hw, struct pci_dev *pdev)
IFCVF_DBG(pdev,
"PCI capability mapping: common cfg: %p, notify base: %p\n, isr cfg: %p, device cfg: %p, multiplier: %u\n",
hw->common_cfg, hw->notify_base, hw->isr,
- hw->net_cfg, hw->notify_off_multiplier);
+ hw->dev_cfg, hw->notify_off_multiplier);
return 0;
}
@@ -242,33 +242,54 @@ int ifcvf_verify_min_features(struct ifcvf_hw *hw, u64 features)
return 0;
}
-void ifcvf_read_net_config(struct ifcvf_hw *hw, u64 offset,
+u32 ifcvf_get_config_size(struct ifcvf_hw *hw)
+{
+ struct ifcvf_adapter *adapter;
+ u32 config_size;
+
+ adapter = vf_to_adapter(hw);
+ switch (hw->dev_type) {
+ case VIRTIO_ID_NET:
+ config_size = sizeof(struct virtio_net_config);
+ break;
+ case VIRTIO_ID_BLOCK:
+ config_size = sizeof(struct virtio_blk_config);
+ break;
+ default:
+ config_size = 0;
+ IFCVF_ERR(adapter->pdev, "VIRTIO ID %u not supported\n", hw->dev_type);
+ }
+
+ return config_size;
+}
+
+void ifcvf_read_dev_config(struct ifcvf_hw *hw, u64 offset,
void *dst, int length)
{
u8 old_gen, new_gen, *p;
int i;
- WARN_ON(offset + length > sizeof(struct virtio_net_config));
+ WARN_ON(offset + length > hw->config_size);
do {
old_gen = ifc_ioread8(&hw->common_cfg->config_generation);
p = dst;
for (i = 0; i < length; i++)
- *p++ = ifc_ioread8(hw->net_cfg + offset + i);
+ *p++ = ifc_ioread8(hw->dev_cfg + offset + i);
new_gen = ifc_ioread8(&hw->common_cfg->config_generation);
} while (old_gen != new_gen);
}
-void ifcvf_write_net_config(struct ifcvf_hw *hw, u64 offset,
+void ifcvf_write_dev_config(struct ifcvf_hw *hw, u64 offset,
const void *src, int length)
{
const u8 *p;
int i;
p = src;
- WARN_ON(offset + length > sizeof(struct virtio_net_config));
+ WARN_ON(offset + length > hw->config_size);
for (i = 0; i < length; i++)
- ifc_iowrite8(*p++, hw->net_cfg + offset + i);
+ ifc_iowrite8(*p++, hw->dev_cfg + offset + i);
}
static void ifcvf_set_features(struct ifcvf_hw *hw, u64 features)
diff --git a/drivers/vdpa/ifcvf/ifcvf_base.h b/drivers/vdpa/ifcvf/ifcvf_base.h
index 09918af3ecf8..c486873f370a 100644
--- a/drivers/vdpa/ifcvf/ifcvf_base.h
+++ b/drivers/vdpa/ifcvf/ifcvf_base.h
@@ -71,12 +71,14 @@ struct ifcvf_hw {
u64 hw_features;
u32 dev_type;
struct virtio_pci_common_cfg __iomem *common_cfg;
- void __iomem *net_cfg;
+ void __iomem *dev_cfg;
struct vring_info vring[IFCVF_MAX_QUEUES];
void __iomem * const *base;
char config_msix_name[256];
struct vdpa_callback config_cb;
unsigned int config_irq;
+ /* virtio-net or virtio-blk device config size */
+ u32 config_size;
};
struct ifcvf_adapter {
@@ -105,9 +107,9 @@ int ifcvf_init_hw(struct ifcvf_hw *hw, struct pci_dev *dev);
int ifcvf_start_hw(struct ifcvf_hw *hw);
void ifcvf_stop_hw(struct ifcvf_hw *hw);
void ifcvf_notify_queue(struct ifcvf_hw *hw, u16 qid);
-void ifcvf_read_net_config(struct ifcvf_hw *hw, u64 offset,
+void ifcvf_read_dev_config(struct ifcvf_hw *hw, u64 offset,
void *dst, int length);
-void ifcvf_write_net_config(struct ifcvf_hw *hw, u64 offset,
+void ifcvf_write_dev_config(struct ifcvf_hw *hw, u64 offset,
const void *src, int length);
u8 ifcvf_get_status(struct ifcvf_hw *hw);
void ifcvf_set_status(struct ifcvf_hw *hw, u8 status);
@@ -120,4 +122,5 @@ u16 ifcvf_get_vq_state(struct ifcvf_hw *hw, u16 qid);
int ifcvf_set_vq_state(struct ifcvf_hw *hw, u16 qid, u16 num);
struct ifcvf_adapter *vf_to_adapter(struct ifcvf_hw *hw);
int ifcvf_probed_virtio_net(struct ifcvf_hw *hw);
+u32 ifcvf_get_config_size(struct ifcvf_hw *hw);
#endif /* _IFCVF_H_ */
diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
index dcd648e1f7e7..003530b19b4e 100644
--- a/drivers/vdpa/ifcvf/ifcvf_main.c
+++ b/drivers/vdpa/ifcvf/ifcvf_main.c
@@ -366,24 +366,9 @@ static u32 ifcvf_vdpa_get_vq_align(struct vdpa_device *vdpa_dev)
static size_t ifcvf_vdpa_get_config_size(struct vdpa_device *vdpa_dev)
{
- struct ifcvf_adapter *adapter = vdpa_to_adapter(vdpa_dev);
struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev);
- struct pci_dev *pdev = adapter->pdev;
- size_t size;
-
- switch (vf->dev_type) {
- case VIRTIO_ID_NET:
- size = sizeof(struct virtio_net_config);
- break;
- case VIRTIO_ID_BLOCK:
- size = sizeof(struct virtio_blk_config);
- break;
- default:
- size = 0;
- IFCVF_ERR(pdev, "VIRTIO ID %u not supported\n", vf->dev_type);
- }
- return size;
+ return vf->config_size;
}
static void ifcvf_vdpa_get_config(struct vdpa_device *vdpa_dev,
@@ -392,8 +377,7 @@ static void ifcvf_vdpa_get_config(struct vdpa_device *vdpa_dev,
{
struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev);
- WARN_ON(offset + len > sizeof(struct virtio_net_config));
- ifcvf_read_net_config(vf, offset, buf, len);
+ ifcvf_read_dev_config(vf, offset, buf, len);
}
static void ifcvf_vdpa_set_config(struct vdpa_device *vdpa_dev,
@@ -402,8 +386,7 @@ static void ifcvf_vdpa_set_config(struct vdpa_device *vdpa_dev,
{
struct ifcvf_hw *vf = vdpa_to_vf(vdpa_dev);
- WARN_ON(offset + len > sizeof(struct virtio_net_config));
- ifcvf_write_net_config(vf, offset, buf, len);
+ ifcvf_write_dev_config(vf, offset, buf, len);
}
static void ifcvf_vdpa_set_config_cb(struct vdpa_device *vdpa_dev,
@@ -541,6 +524,7 @@ static int ifcvf_vdpa_dev_add(struct vdpa_mgmt_dev *mdev, const char *name)
vf->vring[i].irq = -EINVAL;
vf->hw_features = ifcvf_get_hw_features(vf);
+ vf->config_size = ifcvf_get_config_size(vf);
adapter->vdpa.mdev = &ifcvf_mgmt_dev->mdev;
ret = _vdpa_register_device(&adapter->vdpa, vf->nr_vring);
diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c
index ae85d2dd6eb7..1afbda216df5 100644
--- a/drivers/vdpa/mlx5/net/mlx5_vnet.c
+++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c
@@ -873,8 +873,6 @@ static int create_virtqueue(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtque
MLX5_SET(virtio_q, vq_ctx, umem_3_id, mvq->umem3.id);
MLX5_SET(virtio_q, vq_ctx, umem_3_size, mvq->umem3.size);
MLX5_SET(virtio_q, vq_ctx, pd, ndev->mvdev.res.pdn);
- if (MLX5_CAP_DEV_VDPA_EMULATION(ndev->mvdev.mdev, eth_frame_offload_type))
- MLX5_SET(virtio_q, vq_ctx, virtio_version_1_0, 1);
err = mlx5_cmd_exec(ndev->mvdev.mdev, in, inlen, out, sizeof(out));
if (err)
@@ -1512,9 +1510,11 @@ static int change_num_qps(struct mlx5_vdpa_dev *mvdev, int newqps)
return 0;
clean_added:
- for (--i; i >= cur_qps; --i)
+ for (--i; i >= 2 * cur_qps; --i)
teardown_vq(ndev, &ndev->vqs[i]);
+ ndev->cur_num_vqs = 2 * cur_qps;
+
return err;
}
diff --git a/drivers/video/backlight/qcom-wled.c b/drivers/video/backlight/qcom-wled.c
index d094299c2a48..f12c76d6e61d 100644
--- a/drivers/video/backlight/qcom-wled.c
+++ b/drivers/video/backlight/qcom-wled.c
@@ -231,14 +231,14 @@ struct wled {
static int wled3_set_brightness(struct wled *wled, u16 brightness)
{
int rc, i;
- u8 v[2];
+ __le16 v;
- v[0] = brightness & 0xff;
- v[1] = (brightness >> 8) & 0xf;
+ v = cpu_to_le16(brightness & WLED3_SINK_REG_BRIGHT_MAX);
for (i = 0; i < wled->cfg.num_strings; ++i) {
rc = regmap_bulk_write(wled->regmap, wled->ctrl_addr +
- WLED3_SINK_REG_BRIGHT(i), v, 2);
+ WLED3_SINK_REG_BRIGHT(wled->cfg.enabled_strings[i]),
+ &v, sizeof(v));
if (rc < 0)
return rc;
}
@@ -250,18 +250,18 @@ static int wled4_set_brightness(struct wled *wled, u16 brightness)
{
int rc, i;
u16 low_limit = wled->max_brightness * 4 / 1000;
- u8 v[2];
+ __le16 v;
/* WLED4's lower limit of operation is 0.4% */
if (brightness > 0 && brightness < low_limit)
brightness = low_limit;
- v[0] = brightness & 0xff;
- v[1] = (brightness >> 8) & 0xf;
+ v = cpu_to_le16(brightness & WLED3_SINK_REG_BRIGHT_MAX);
for (i = 0; i < wled->cfg.num_strings; ++i) {
rc = regmap_bulk_write(wled->regmap, wled->sink_addr +
- WLED4_SINK_REG_BRIGHT(i), v, 2);
+ WLED4_SINK_REG_BRIGHT(wled->cfg.enabled_strings[i]),
+ &v, sizeof(v));
if (rc < 0)
return rc;
}
@@ -273,21 +273,20 @@ static int wled5_set_brightness(struct wled *wled, u16 brightness)
{
int rc, offset;
u16 low_limit = wled->max_brightness * 1 / 1000;
- u8 v[2];
+ __le16 v;
/* WLED5's lower limit is 0.1% */
if (brightness < low_limit)
brightness = low_limit;
- v[0] = brightness & 0xff;
- v[1] = (brightness >> 8) & 0x7f;
+ v = cpu_to_le16(brightness & WLED5_SINK_REG_BRIGHT_MAX_15B);
offset = (wled->cfg.mod_sel == MOD_A) ?
WLED5_SINK_REG_MOD_A_BRIGHTNESS_LSB :
WLED5_SINK_REG_MOD_B_BRIGHTNESS_LSB;
rc = regmap_bulk_write(wled->regmap, wled->sink_addr + offset,
- v, 2);
+ &v, sizeof(v));
return rc;
}
@@ -572,7 +571,7 @@ static irqreturn_t wled_short_irq_handler(int irq, void *_wled)
static void wled_auto_string_detection(struct wled *wled)
{
- int rc = 0, i, delay_time_us;
+ int rc = 0, i, j, delay_time_us;
u32 sink_config = 0;
u8 sink_test = 0, sink_valid = 0, val;
bool fault_set;
@@ -619,14 +618,15 @@ static void wled_auto_string_detection(struct wled *wled)
/* Iterate through the strings one by one */
for (i = 0; i < wled->cfg.num_strings; i++) {
- sink_test = BIT((WLED4_SINK_REG_CURR_SINK_SHFT + i));
+ j = wled->cfg.enabled_strings[i];
+ sink_test = BIT((WLED4_SINK_REG_CURR_SINK_SHFT + j));
/* Enable feedback control */
rc = regmap_write(wled->regmap, wled->ctrl_addr +
- WLED3_CTRL_REG_FEEDBACK_CONTROL, i + 1);
+ WLED3_CTRL_REG_FEEDBACK_CONTROL, j + 1);
if (rc < 0) {
dev_err(wled->dev, "Failed to enable feedback for SINK %d rc = %d\n",
- i + 1, rc);
+ j + 1, rc);
goto failed_detect;
}
@@ -635,7 +635,7 @@ static void wled_auto_string_detection(struct wled *wled)
WLED4_SINK_REG_CURR_SINK, sink_test);
if (rc < 0) {
dev_err(wled->dev, "Failed to configure SINK %d rc=%d\n",
- i + 1, rc);
+ j + 1, rc);
goto failed_detect;
}
@@ -662,7 +662,7 @@ static void wled_auto_string_detection(struct wled *wled)
if (fault_set)
dev_dbg(wled->dev, "WLED OVP fault detected with SINK %d\n",
- i + 1);
+ j + 1);
else
sink_valid |= sink_test;
@@ -702,15 +702,16 @@ static void wled_auto_string_detection(struct wled *wled)
/* Enable valid sinks */
if (wled->version == 4) {
for (i = 0; i < wled->cfg.num_strings; i++) {
+ j = wled->cfg.enabled_strings[i];
if (sink_config &
- BIT(WLED4_SINK_REG_CURR_SINK_SHFT + i))
+ BIT(WLED4_SINK_REG_CURR_SINK_SHFT + j))
val = WLED4_SINK_REG_STR_MOD_MASK;
else
/* Disable modulator_en for unused sink */
val = 0;
rc = regmap_write(wled->regmap, wled->sink_addr +
- WLED4_SINK_REG_STR_MOD_EN(i), val);
+ WLED4_SINK_REG_STR_MOD_EN(j), val);
if (rc < 0) {
dev_err(wled->dev, "Failed to configure MODULATOR_EN rc=%d\n",
rc);
@@ -1256,21 +1257,6 @@ static const struct wled_var_cfg wled5_ovp_cfg = {
.size = 16,
};
-static u32 wled3_num_strings_values_fn(u32 idx)
-{
- return idx + 1;
-}
-
-static const struct wled_var_cfg wled3_num_strings_cfg = {
- .fn = wled3_num_strings_values_fn,
- .size = 3,
-};
-
-static const struct wled_var_cfg wled4_num_strings_cfg = {
- .fn = wled3_num_strings_values_fn,
- .size = 4,
-};
-
static u32 wled3_switch_freq_values_fn(u32 idx)
{
return 19200 / (2 * (1 + idx));
@@ -1344,11 +1330,6 @@ static int wled_configure(struct wled *wled)
.val_ptr = &cfg->switch_freq,
.cfg = &wled3_switch_freq_cfg,
},
- {
- .name = "qcom,num-strings",
- .val_ptr = &cfg->num_strings,
- .cfg = &wled3_num_strings_cfg,
- },
};
const struct wled_u32_opts wled4_opts[] = {
@@ -1372,11 +1353,6 @@ static int wled_configure(struct wled *wled)
.val_ptr = &cfg->switch_freq,
.cfg = &wled3_switch_freq_cfg,
},
- {
- .name = "qcom,num-strings",
- .val_ptr = &cfg->num_strings,
- .cfg = &wled4_num_strings_cfg,
- },
};
const struct wled_u32_opts wled5_opts[] = {
@@ -1400,11 +1376,6 @@ static int wled_configure(struct wled *wled)
.val_ptr = &cfg->switch_freq,
.cfg = &wled3_switch_freq_cfg,
},
- {
- .name = "qcom,num-strings",
- .val_ptr = &cfg->num_strings,
- .cfg = &wled4_num_strings_cfg,
- },
{
.name = "qcom,modulator-sel",
.val_ptr = &cfg->mod_sel,
@@ -1523,16 +1494,57 @@ static int wled_configure(struct wled *wled)
*bool_opts[i].val_ptr = true;
}
- cfg->num_strings = cfg->num_strings + 1;
-
string_len = of_property_count_elems_of_size(dev->of_node,
"qcom,enabled-strings",
sizeof(u32));
- if (string_len > 0)
- of_property_read_u32_array(dev->of_node,
+ if (string_len > 0) {
+ if (string_len > wled->max_string_count) {
+ dev_err(dev, "Cannot have more than %d strings\n",
+ wled->max_string_count);
+ return -EINVAL;
+ }
+
+ rc = of_property_read_u32_array(dev->of_node,
"qcom,enabled-strings",
wled->cfg.enabled_strings,
- sizeof(u32));
+ string_len);
+ if (rc) {
+ dev_err(dev, "Failed to read %d elements from qcom,enabled-strings: %d\n",
+ string_len, rc);
+ return rc;
+ }
+
+ for (i = 0; i < string_len; ++i) {
+ if (wled->cfg.enabled_strings[i] >= wled->max_string_count) {
+ dev_err(dev,
+ "qcom,enabled-strings index %d at %d is out of bounds\n",
+ wled->cfg.enabled_strings[i], i);
+ return -EINVAL;
+ }
+ }
+
+ cfg->num_strings = string_len;
+ }
+
+ rc = of_property_read_u32(dev->of_node, "qcom,num-strings", &val);
+ if (!rc) {
+ if (val < 1 || val > wled->max_string_count) {
+ dev_err(dev, "qcom,num-strings must be between 1 and %d\n",
+ wled->max_string_count);
+ return -EINVAL;
+ }
+
+ if (string_len > 0) {
+ dev_warn(dev, "Only one of qcom,num-strings or qcom,enabled-strings"
+ " should be set\n");
+ if (val > string_len) {
+ dev_err(dev, "qcom,num-strings exceeds qcom,enabled-strings\n");
+ return -EINVAL;
+ }
+ }
+
+ cfg->num_strings = val;
+ }
return 0;
}
diff --git a/drivers/virtio/virtio_mem.c b/drivers/virtio/virtio_mem.c
index bef8ad6bf466..4624a2c3d055 100644
--- a/drivers/virtio/virtio_mem.c
+++ b/drivers/virtio/virtio_mem.c
@@ -577,7 +577,7 @@ static int virtio_mem_sbm_sb_states_prepare_next_mb(struct virtio_mem *vm)
return -ENOMEM;
mutex_lock(&vm->hotplug_mutex);
- if (new_bitmap)
+ if (vm->sbm.sb_states)
memcpy(new_bitmap, vm->sbm.sb_states, old_pages * PAGE_SIZE);
old_bitmap = vm->sbm.sb_states;
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index 9919407973cd..603a6f4345ef 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -1197,8 +1197,10 @@ static inline int virtqueue_add_packed(struct virtqueue *_vq,
if (virtqueue_use_indirect(_vq, total_sg)) {
err = virtqueue_add_indirect_packed(vq, sgs, total_sg, out_sgs,
in_sgs, data, gfp);
- if (err != -ENOMEM)
+ if (err != -ENOMEM) {
+ END_USE(vq);
return err;
+ }
/* fall back on direct */
}
diff --git a/drivers/w1/slaves/w1_ds28e04.c b/drivers/w1/slaves/w1_ds28e04.c
index e4f336111edc..6cef6e2edb89 100644
--- a/drivers/w1/slaves/w1_ds28e04.c
+++ b/drivers/w1/slaves/w1_ds28e04.c
@@ -32,7 +32,7 @@ static int w1_strong_pullup = 1;
module_param_named(strong_pullup, w1_strong_pullup, int, 0);
/* enable/disable CRC checking on DS28E04-100 memory accesses */
-static char w1_enable_crccheck = 1;
+static bool w1_enable_crccheck = true;
#define W1_EEPROM_SIZE 512
#define W1_PAGE_COUNT 16
@@ -339,32 +339,18 @@ static BIN_ATTR_RW(pio, 1);
static ssize_t crccheck_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
- if (put_user(w1_enable_crccheck + 0x30, buf))
- return -EFAULT;
-
- return sizeof(w1_enable_crccheck);
+ return sysfs_emit(buf, "%d\n", w1_enable_crccheck);
}
static ssize_t crccheck_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
- char val;
-
- if (count != 1 || !buf)
- return -EINVAL;
+ int err = kstrtobool(buf, &w1_enable_crccheck);
- if (get_user(val, buf))
- return -EFAULT;
+ if (err)
+ return err;
- /* convert to decimal */
- val = val - 0x30;
- if (val != 0 && val != 1)
- return -EINVAL;
-
- /* set the new value */
- w1_enable_crccheck = val;
-
- return sizeof(w1_enable_crccheck);
+ return count;
}
static DEVICE_ATTR_RW(crccheck);
diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
index fec1b6537166..59ffea800079 100644
--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -250,13 +250,13 @@ void gntdev_put_map(struct gntdev_priv *priv, struct gntdev_grant_map *map)
if (!refcount_dec_and_test(&map->users))
return;
+ if (map->pages && !use_ptemod)
+ unmap_grant_pages(map, 0, map->count);
+
if (map->notify.flags & UNMAP_NOTIFY_SEND_EVENT) {
notify_remote_via_evtchn(map->notify.event);
evtchn_put(map->notify.event);
}
-
- if (map->pages && !use_ptemod)
- unmap_grant_pages(map, 0, map->count);
gntdev_free_map(map);
}
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
index f735b8798ba1..8b090c40daf7 100644
--- a/fs/btrfs/backref.c
+++ b/fs/btrfs/backref.c
@@ -1214,7 +1214,12 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans,
ret = btrfs_search_slot(NULL, fs_info->extent_root, &key, path, 0, 0);
if (ret < 0)
goto out;
- BUG_ON(ret == 0);
+ if (ret == 0) {
+ /* This shouldn't happen, indicates a bug or fs corruption. */
+ ASSERT(ret != 0);
+ ret = -EUCLEAN;
+ goto out;
+ }
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
if (trans && likely(trans->type != __TRANS_DUMMY) &&
@@ -1360,10 +1365,18 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans,
goto out;
if (!ret && extent_item_pos) {
/*
- * we've recorded that parent, so we must extend
- * its inode list here
+ * We've recorded that parent, so we must extend
+ * its inode list here.
+ *
+ * However if there was corruption we may not
+ * have found an eie, return an error in this
+ * case.
*/
- BUG_ON(!eie);
+ ASSERT(eie);
+ if (!eie) {
+ ret = -EUCLEAN;
+ goto out;
+ }
while (eie->next)
eie = eie->next;
eie->next = ref->inode_list;
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 84627cbd5b5b..95a6a63caf04 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -1568,12 +1568,9 @@ static struct extent_buffer *btrfs_search_slot_get_root(struct btrfs_root *root,
{
struct btrfs_fs_info *fs_info = root->fs_info;
struct extent_buffer *b;
- int root_lock;
+ int root_lock = 0;
int level = 0;
- /* We try very hard to do read locks on the root */
- root_lock = BTRFS_READ_LOCK;
-
if (p->search_commit_root) {
/*
* The commit roots are read only so we always do read locks,
@@ -1611,6 +1608,9 @@ static struct extent_buffer *btrfs_search_slot_get_root(struct btrfs_root *root,
goto out;
}
+ /* We try very hard to do read locks on the root */
+ root_lock = BTRFS_READ_LOCK;
+
/*
* If the level is set to maximum, we can skip trying to get the read
* lock.
@@ -1637,6 +1637,17 @@ static struct extent_buffer *btrfs_search_slot_get_root(struct btrfs_root *root,
level = btrfs_header_level(b);
out:
+ /*
+ * The root may have failed to write out at some point, and thus is no
+ * longer valid, return an error in this case.
+ */
+ if (!extent_buffer_uptodate(b)) {
+ if (root_lock)
+ btrfs_tree_unlock_rw(b, root_lock);
+ free_extent_buffer(b);
+ return ERR_PTR(-EIO);
+ }
+
p->nodes[level] = b;
if (!p->skip_locking)
p->locks[level] = root_lock;
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 4af74b62e7d9..e92f0b0afe9e 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -10586,9 +10586,19 @@ static int btrfs_add_swap_extent(struct swap_info_struct *sis,
struct btrfs_swap_info *bsi)
{
unsigned long nr_pages;
+ unsigned long max_pages;
u64 first_ppage, first_ppage_reported, next_ppage;
int ret;
+ /*
+ * Our swapfile may have had its size extended after the swap header was
+ * written. In that case activating the swapfile should not go beyond
+ * the max size set in the swap header.
+ */
+ if (bsi->nr_pages >= sis->max)
+ return 0;
+
+ max_pages = sis->max - bsi->nr_pages;
first_ppage = ALIGN(bsi->block_start, PAGE_SIZE) >> PAGE_SHIFT;
next_ppage = ALIGN_DOWN(bsi->block_start + bsi->block_len,
PAGE_SIZE) >> PAGE_SHIFT;
@@ -10596,6 +10606,7 @@ static int btrfs_add_swap_extent(struct swap_info_struct *sis,
if (first_ppage >= next_ppage)
return 0;
nr_pages = next_ppage - first_ppage;
+ nr_pages = min(nr_pages, max_pages);
first_ppage_reported = first_ppage;
if (bsi->start == 0)
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
index db680f5be745..7f6a05e670f5 100644
--- a/fs/btrfs/qgroup.c
+++ b/fs/btrfs/qgroup.c
@@ -940,6 +940,14 @@ int btrfs_quota_enable(struct btrfs_fs_info *fs_info)
int ret = 0;
int slot;
+ /*
+ * We need to have subvol_sem write locked, to prevent races between
+ * concurrent tasks trying to enable quotas, because we will unlock
+ * and relock qgroup_ioctl_lock before setting fs_info->quota_root
+ * and before setting BTRFS_FS_QUOTA_ENABLED.
+ */
+ lockdep_assert_held_write(&fs_info->subvol_sem);
+
mutex_lock(&fs_info->qgroup_ioctl_lock);
if (fs_info->quota_root)
goto out;
@@ -1117,8 +1125,19 @@ int btrfs_quota_enable(struct btrfs_fs_info *fs_info)
goto out_free_path;
}
+ mutex_unlock(&fs_info->qgroup_ioctl_lock);
+ /*
+ * Commit the transaction while not holding qgroup_ioctl_lock, to avoid
+ * a deadlock with tasks concurrently doing other qgroup operations, such
+ * adding/removing qgroups or adding/deleting qgroup relations for example,
+ * because all qgroup operations first start or join a transaction and then
+ * lock the qgroup_ioctl_lock mutex.
+ * We are safe from a concurrent task trying to enable quotas, by calling
+ * this function, since we are serialized by fs_info->subvol_sem.
+ */
ret = btrfs_commit_transaction(trans);
trans = NULL;
+ mutex_lock(&fs_info->qgroup_ioctl_lock);
if (ret)
goto out_free_path;
diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c
index 7d162b0efbf0..950c63fa4d0b 100644
--- a/fs/debugfs/file.c
+++ b/fs/debugfs/file.c
@@ -147,7 +147,7 @@ static int debugfs_locked_down(struct inode *inode,
struct file *filp,
const struct file_operations *real_fops)
{
- if ((inode->i_mode & 07777) == 0444 &&
+ if ((inode->i_mode & 07777 & ~0444) == 0 &&
!(filp->f_mode & FMODE_WRITE) &&
!real_fops->unlocked_ioctl &&
!real_fops->compat_ioctl &&
diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
index c502c065d007..28d1f35b11a4 100644
--- a/fs/dlm/lock.c
+++ b/fs/dlm/lock.c
@@ -3973,6 +3973,14 @@ static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms)
int from = ms->m_header.h_nodeid;
int error = 0;
+ /* currently mixing of user/kernel locks are not supported */
+ if (ms->m_flags & DLM_IFL_USER && ~lkb->lkb_flags & DLM_IFL_USER) {
+ log_error(lkb->lkb_resource->res_ls,
+ "got user dlm message for a kernel lock");
+ error = -EINVAL;
+ goto out;
+ }
+
switch (ms->m_type) {
case DLM_MSG_CONVERT:
case DLM_MSG_UNLOCK:
@@ -4001,6 +4009,7 @@ static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms)
error = -EINVAL;
}
+out:
if (error)
log_error(lkb->lkb_resource->res_ls,
"ignore invalid message %d from %d %x %x %x %d",
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index 8f715c620e1f..7a8efce1c343 100644
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -592,8 +592,8 @@ int dlm_lowcomms_nodes_set_mark(int nodeid, unsigned int mark)
static void lowcomms_error_report(struct sock *sk)
{
struct connection *con;
- struct sockaddr_storage saddr;
void (*orig_report)(struct sock *) = NULL;
+ struct inet_sock *inet;
read_lock_bh(&sk->sk_callback_lock);
con = sock2con(sk);
@@ -601,33 +601,33 @@ static void lowcomms_error_report(struct sock *sk)
goto out;
orig_report = listen_sock.sk_error_report;
- if (kernel_getpeername(sk->sk_socket, (struct sockaddr *)&saddr) < 0) {
- printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
- "sending to node %d, port %d, "
- "sk_err=%d/%d\n", dlm_our_nodeid(),
- con->nodeid, dlm_config.ci_tcp_port,
- sk->sk_err, sk->sk_err_soft);
- } else if (saddr.ss_family == AF_INET) {
- struct sockaddr_in *sin4 = (struct sockaddr_in *)&saddr;
+ inet = inet_sk(sk);
+ switch (sk->sk_family) {
+ case AF_INET:
printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
- "sending to node %d at %pI4, port %d, "
+ "sending to node %d at %pI4, dport %d, "
"sk_err=%d/%d\n", dlm_our_nodeid(),
- con->nodeid, &sin4->sin_addr.s_addr,
- dlm_config.ci_tcp_port, sk->sk_err,
+ con->nodeid, &inet->inet_daddr,
+ ntohs(inet->inet_dport), sk->sk_err,
sk->sk_err_soft);
- } else {
- struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&saddr;
-
+ break;
+#if IS_ENABLED(CONFIG_IPV6)
+ case AF_INET6:
printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
- "sending to node %d at %u.%u.%u.%u, "
- "port %d, sk_err=%d/%d\n", dlm_our_nodeid(),
- con->nodeid, sin6->sin6_addr.s6_addr32[0],
- sin6->sin6_addr.s6_addr32[1],
- sin6->sin6_addr.s6_addr32[2],
- sin6->sin6_addr.s6_addr32[3],
- dlm_config.ci_tcp_port, sk->sk_err,
+ "sending to node %d at %pI6c, "
+ "dport %d, sk_err=%d/%d\n", dlm_our_nodeid(),
+ con->nodeid, &sk->sk_v6_daddr,
+ ntohs(inet->inet_dport), sk->sk_err,
sk->sk_err_soft);
+ break;
+#endif
+ default:
+ printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
+ "invalid socket family %d set, "
+ "sk_err=%d/%d\n", dlm_our_nodeid(),
+ sk->sk_family, sk->sk_err, sk->sk_err_soft);
+ goto out;
}
/* below sendcon only handling */
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 3825195539d7..c97860ef322d 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -2934,6 +2934,7 @@ bool ext4_fc_replay_check_excluded(struct super_block *sb, ext4_fsblk_t block);
void ext4_fc_replay_cleanup(struct super_block *sb);
int ext4_fc_commit(journal_t *journal, tid_t commit_tid);
int __init ext4_fc_init_dentry_cache(void);
+void ext4_fc_destroy_dentry_cache(void);
/* mballoc.c */
extern const struct seq_operations ext4_mb_seq_groups_ops;
diff --git a/fs/ext4/ext4_jbd2.c b/fs/ext4/ext4_jbd2.c
index 6def7339056d..3477a16d08ae 100644
--- a/fs/ext4/ext4_jbd2.c
+++ b/fs/ext4/ext4_jbd2.c
@@ -162,6 +162,8 @@ int __ext4_journal_ensure_credits(handle_t *handle, int check_cred,
{
if (!ext4_handle_valid(handle))
return 0;
+ if (is_handle_aborted(handle))
+ return -EROFS;
if (jbd2_handle_buffer_credits(handle) >= check_cred &&
handle->h_revoke_credits >= revoke_cred)
return 0;
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index daa83525749b..f9bd3231a141 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4645,8 +4645,6 @@ static long ext4_zero_range(struct file *file, loff_t offset,
ret = ext4_mark_inode_dirty(handle, inode);
if (unlikely(ret))
goto out_handle;
- ext4_fc_track_range(handle, inode, offset >> inode->i_sb->s_blocksize_bits,
- (offset + len - 1) >> inode->i_sb->s_blocksize_bits);
/* Zero out partial block at the edges of the range */
ret = ext4_zero_partial_blocks(handle, inode, offset, len);
if (ret >= 0)
diff --git a/fs/ext4/fast_commit.c b/fs/ext4/fast_commit.c
index 8ea5a81e6554..e0d393425cac 100644
--- a/fs/ext4/fast_commit.c
+++ b/fs/ext4/fast_commit.c
@@ -1809,11 +1809,14 @@ ext4_fc_replay_del_range(struct super_block *sb, struct ext4_fc_tl *tl,
}
}
- ret = ext4_punch_hole(inode,
- le32_to_cpu(lrange.fc_lblk) << sb->s_blocksize_bits,
- le32_to_cpu(lrange.fc_len) << sb->s_blocksize_bits);
- if (ret)
- jbd_debug(1, "ext4_punch_hole returned %d", ret);
+ down_write(&EXT4_I(inode)->i_data_sem);
+ ret = ext4_ext_remove_space(inode, lrange.fc_lblk,
+ lrange.fc_lblk + lrange.fc_len - 1);
+ up_write(&EXT4_I(inode)->i_data_sem);
+ if (ret) {
+ iput(inode);
+ return 0;
+ }
ext4_ext_replay_shrink_inode(inode,
i_size_read(inode) >> sb->s_blocksize_bits);
ext4_mark_inode_dirty(NULL, inode);
@@ -2185,3 +2188,8 @@ int __init ext4_fc_init_dentry_cache(void)
return 0;
}
+
+void ext4_fc_destroy_dentry_cache(void)
+{
+ kmem_cache_destroy(ext4_fc_dentry_cachep);
+}
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 9097fccdc688..b6746cc86cee 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -741,10 +741,11 @@ int ext4_map_blocks(handle_t *handle, struct inode *inode,
if (ret)
return ret;
}
- ext4_fc_track_range(handle, inode, map->m_lblk,
- map->m_lblk + map->m_len - 1);
}
-
+ if (retval > 0 && (map->m_flags & EXT4_MAP_UNWRITTEN ||
+ map->m_flags & EXT4_MAP_MAPPED))
+ ext4_fc_track_range(handle, inode, map->m_lblk,
+ map->m_lblk + map->m_len - 1);
if (retval < 0)
ext_debug(inode, "failed with err %d\n", retval);
return retval;
@@ -1844,30 +1845,16 @@ int ext4_da_get_block_prep(struct inode *inode, sector_t iblock,
return 0;
}
-static int bget_one(handle_t *handle, struct inode *inode,
- struct buffer_head *bh)
-{
- get_bh(bh);
- return 0;
-}
-
-static int bput_one(handle_t *handle, struct inode *inode,
- struct buffer_head *bh)
-{
- put_bh(bh);
- return 0;
-}
-
static int __ext4_journalled_writepage(struct page *page,
unsigned int len)
{
struct address_space *mapping = page->mapping;
struct inode *inode = mapping->host;
- struct buffer_head *page_bufs = NULL;
handle_t *handle = NULL;
int ret = 0, err = 0;
int inline_data = ext4_has_inline_data(inode);
struct buffer_head *inode_bh = NULL;
+ loff_t size;
ClearPageChecked(page);
@@ -1877,14 +1864,6 @@ static int __ext4_journalled_writepage(struct page *page,
inode_bh = ext4_journalled_write_inline_data(inode, len, page);
if (inode_bh == NULL)
goto out;
- } else {
- page_bufs = page_buffers(page);
- if (!page_bufs) {
- BUG();
- goto out;
- }
- ext4_walk_page_buffers(handle, inode, page_bufs, 0, len,
- NULL, bget_one);
}
/*
* We need to release the page lock before we start the
@@ -1905,7 +1884,8 @@ static int __ext4_journalled_writepage(struct page *page,
lock_page(page);
put_page(page);
- if (page->mapping != mapping) {
+ size = i_size_read(inode);
+ if (page->mapping != mapping || page_offset(page) > size) {
/* The page got truncated from under us */
ext4_journal_stop(handle);
ret = 0;
@@ -1915,6 +1895,13 @@ static int __ext4_journalled_writepage(struct page *page,
if (inline_data) {
ret = ext4_mark_inode_dirty(handle, inode);
} else {
+ struct buffer_head *page_bufs = page_buffers(page);
+
+ if (page->index == size >> PAGE_SHIFT)
+ len = size & ~PAGE_MASK;
+ else
+ len = PAGE_SIZE;
+
ret = ext4_walk_page_buffers(handle, inode, page_bufs, 0, len,
NULL, do_journal_get_write_access);
@@ -1935,9 +1922,6 @@ static int __ext4_journalled_writepage(struct page *page,
out:
unlock_page(page);
out_no_pagelock:
- if (!inline_data && page_bufs)
- ext4_walk_page_buffers(NULL, inode, page_bufs, 0, len,
- NULL, bput_one);
brelse(inode_bh);
return ret;
}
@@ -4371,7 +4355,7 @@ static int __ext4_get_inode_loc(struct super_block *sb, unsigned long ino,
static int __ext4_get_inode_loc_noinmem(struct inode *inode,
struct ext4_iloc *iloc)
{
- ext4_fsblk_t err_blk;
+ ext4_fsblk_t err_blk = 0;
int ret;
ret = __ext4_get_inode_loc(inode->i_sb, inode->i_ino, iloc, 0,
@@ -4386,7 +4370,7 @@ static int __ext4_get_inode_loc_noinmem(struct inode *inode,
int ext4_get_inode_loc(struct inode *inode, struct ext4_iloc *iloc)
{
- ext4_fsblk_t err_blk;
+ ext4_fsblk_t err_blk = 0;
int ret;
/* We have all inode data except xattrs in memory here. */
@@ -5413,8 +5397,7 @@ int ext4_setattr(struct user_namespace *mnt_userns, struct dentry *dentry,
ext4_fc_track_range(handle, inode,
(attr->ia_size > 0 ? attr->ia_size - 1 : 0) >>
inode->i_sb->s_blocksize_bits,
- (oldsize > 0 ? oldsize - 1 : 0) >>
- inode->i_sb->s_blocksize_bits);
+ EXT_MAX_BLOCKS - 1);
else
ext4_fc_track_range(
handle, inode,
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
index 606dee9e08a3..220a4c8178b5 100644
--- a/fs/ext4/ioctl.c
+++ b/fs/ext4/ioctl.c
@@ -1117,8 +1117,6 @@ static long __ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
sizeof(range)))
return -EFAULT;
- range.minlen = max((unsigned int)range.minlen,
- q->limits.discard_granularity);
ret = ext4_trim_fs(sb, &range);
if (ret < 0)
return ret;
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index 72bfac2d6dce..b05a83be8871 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -4814,7 +4814,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
*/
static noinline_for_stack int
ext4_mb_discard_group_preallocations(struct super_block *sb,
- ext4_group_t group, int needed)
+ ext4_group_t group, int *busy)
{
struct ext4_group_info *grp = ext4_get_group_info(sb, group);
struct buffer_head *bitmap_bh = NULL;
@@ -4822,8 +4822,7 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
struct list_head list;
struct ext4_buddy e4b;
int err;
- int busy = 0;
- int free, free_total = 0;
+ int free = 0;
mb_debug(sb, "discard preallocation for group %u\n", group);
if (list_empty(&grp->bb_prealloc_list))
@@ -4846,19 +4845,14 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
goto out_dbg;
}
- if (needed == 0)
- needed = EXT4_CLUSTERS_PER_GROUP(sb) + 1;
-
INIT_LIST_HEAD(&list);
-repeat:
- free = 0;
ext4_lock_group(sb, group);
list_for_each_entry_safe(pa, tmp,
&grp->bb_prealloc_list, pa_group_list) {
spin_lock(&pa->pa_lock);
if (atomic_read(&pa->pa_count)) {
spin_unlock(&pa->pa_lock);
- busy = 1;
+ *busy = 1;
continue;
}
if (pa->pa_deleted) {
@@ -4898,22 +4892,13 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback);
}
- free_total += free;
-
- /* if we still need more blocks and some PAs were used, try again */
- if (free_total < needed && busy) {
- ext4_unlock_group(sb, group);
- cond_resched();
- busy = 0;
- goto repeat;
- }
ext4_unlock_group(sb, group);
ext4_mb_unload_buddy(&e4b);
put_bh(bitmap_bh);
out_dbg:
mb_debug(sb, "discarded (%d) blocks preallocated for group %u bb_free (%d)\n",
- free_total, group, grp->bb_free);
- return free_total;
+ free, group, grp->bb_free);
+ return free;
}
/*
@@ -5455,13 +5440,24 @@ static int ext4_mb_discard_preallocations(struct super_block *sb, int needed)
{
ext4_group_t i, ngroups = ext4_get_groups_count(sb);
int ret;
- int freed = 0;
+ int freed = 0, busy = 0;
+ int retry = 0;
trace_ext4_mb_discard_preallocations(sb, needed);
+
+ if (needed == 0)
+ needed = EXT4_CLUSTERS_PER_GROUP(sb) + 1;
+ repeat:
for (i = 0; i < ngroups && needed > 0; i++) {
- ret = ext4_mb_discard_group_preallocations(sb, i, needed);
+ ret = ext4_mb_discard_group_preallocations(sb, i, &busy);
freed += ret;
needed -= ret;
+ cond_resched();
+ }
+
+ if (needed > 0 && busy && ++retry < 3) {
+ busy = 0;
+ goto repeat;
}
return freed;
@@ -6405,6 +6401,7 @@ ext4_trim_all_free(struct super_block *sb, ext4_group_t group,
*/
int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range)
{
+ struct request_queue *q = bdev_get_queue(sb->s_bdev);
struct ext4_group_info *grp;
ext4_group_t group, first_group, last_group;
ext4_grpblk_t cnt = 0, first_cluster, last_cluster;
@@ -6423,6 +6420,13 @@ int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range)
start >= max_blks ||
range->len < sb->s_blocksize)
return -EINVAL;
+ /* No point to try to trim less than discard granularity */
+ if (range->minlen < q->limits.discard_granularity) {
+ minlen = EXT4_NUM_B2C(EXT4_SB(sb),
+ q->limits.discard_granularity >> sb->s_blocksize_bits);
+ if (minlen > EXT4_CLUSTERS_PER_GROUP(sb))
+ goto out;
+ }
if (end >= max_blks)
end = max_blks - 1;
if (end <= first_data_blk)
diff --git a/fs/ext4/migrate.c b/fs/ext4/migrate.c
index 7e0b4f81c6c0..ff8916e1d38e 100644
--- a/fs/ext4/migrate.c
+++ b/fs/ext4/migrate.c
@@ -437,12 +437,12 @@ int ext4_ext_migrate(struct inode *inode)
percpu_down_write(&sbi->s_writepages_rwsem);
/*
- * Worst case we can touch the allocation bitmaps, a bgd
- * block, and a block to link in the orphan list. We do need
- * need to worry about credits for modifying the quota inode.
+ * Worst case we can touch the allocation bitmaps and a block
+ * group descriptor block. We do need need to worry about
+ * credits for modifying the quota inode.
*/
handle = ext4_journal_start(inode, EXT4_HT_MIGRATE,
- 4 + EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb));
+ 3 + EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb));
if (IS_ERR(handle)) {
retval = PTR_ERR(handle);
@@ -459,6 +459,13 @@ int ext4_ext_migrate(struct inode *inode)
ext4_journal_stop(handle);
goto out_unlock;
}
+ /*
+ * Use the correct seed for checksum (i.e. the seed from 'inode'). This
+ * is so that the metadata blocks will have the correct checksum after
+ * the migration.
+ */
+ ei = EXT4_I(inode);
+ EXT4_I(tmp_inode)->i_csum_seed = ei->i_csum_seed;
i_size_write(tmp_inode, i_size_read(inode));
/*
* Set the i_nlink to zero so it will be deleted later
@@ -467,7 +474,6 @@ int ext4_ext_migrate(struct inode *inode)
clear_nlink(tmp_inode);
ext4_ext_tree_init(handle, tmp_inode);
- ext4_orphan_add(handle, tmp_inode);
ext4_journal_stop(handle);
/*
@@ -492,17 +498,10 @@ int ext4_ext_migrate(struct inode *inode)
handle = ext4_journal_start(inode, EXT4_HT_MIGRATE, 1);
if (IS_ERR(handle)) {
- /*
- * It is impossible to update on-disk structures without
- * a handle, so just rollback in-core changes and live other
- * work to orphan_list_cleanup()
- */
- ext4_orphan_del(NULL, tmp_inode);
retval = PTR_ERR(handle);
goto out_tmp_inode;
}
- ei = EXT4_I(inode);
i_data = ei->i_data;
memset(&lb, 0, sizeof(lb));
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 8a67e5f3f576..877c5c17e61f 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -6266,10 +6266,7 @@ static int ext4_quota_on(struct super_block *sb, int type, int format_id,
lockdep_set_quota_inode(path->dentry->d_inode, I_DATA_SEM_QUOTA);
err = dquot_quota_on(sb, type, format_id, path);
- if (err) {
- lockdep_set_quota_inode(path->dentry->d_inode,
- I_DATA_SEM_NORMAL);
- } else {
+ if (!err) {
struct inode *inode = d_inode(path->dentry);
handle_t *handle;
@@ -6289,7 +6286,12 @@ static int ext4_quota_on(struct super_block *sb, int type, int format_id,
ext4_journal_stop(handle);
unlock_inode:
inode_unlock(inode);
+ if (err)
+ dquot_quota_off(sb, type);
}
+ if (err)
+ lockdep_set_quota_inode(path->dentry->d_inode,
+ I_DATA_SEM_NORMAL);
return err;
}
@@ -6352,8 +6354,19 @@ int ext4_enable_quotas(struct super_block *sb)
"Failed to enable quota tracking "
"(type=%d, err=%d). Please run "
"e2fsck to fix.", type, err);
- for (type--; type >= 0; type--)
+ for (type--; type >= 0; type--) {
+ struct inode *inode;
+
+ inode = sb_dqopt(sb)->files[type];
+ if (inode)
+ inode = igrab(inode);
dquot_quota_off(sb, type);
+ if (inode) {
+ lockdep_set_quota_inode(inode,
+ I_DATA_SEM_NORMAL);
+ iput(inode);
+ }
+ }
return err;
}
@@ -6457,7 +6470,7 @@ static ssize_t ext4_quota_write(struct super_block *sb, int type,
struct buffer_head *bh;
handle_t *handle = journal_current_handle();
- if (EXT4_SB(sb)->s_journal && !handle) {
+ if (!handle) {
ext4_msg(sb, KERN_WARNING, "Quota write (off=%llu, len=%llu)"
" cancelled because transaction is not started",
(unsigned long long)off, (unsigned long long)len);
@@ -6640,6 +6653,7 @@ static int __init ext4_init_fs(void)
out:
unregister_as_ext2();
unregister_as_ext3();
+ ext4_fc_destroy_dentry_cache();
out05:
destroy_inodecache();
out1:
@@ -6666,6 +6680,7 @@ static void __exit ext4_exit_fs(void)
unregister_as_ext2();
unregister_as_ext3();
unregister_filesystem(&ext4_fs_type);
+ ext4_fc_destroy_dentry_cache();
destroy_inodecache();
ext4_exit_mballoc();
ext4_exit_sysfs();
diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index 7b0282724231..99fced979718 100644
--- a/fs/f2fs/checkpoint.c
+++ b/fs/f2fs/checkpoint.c
@@ -1305,8 +1305,8 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
unsigned long flags;
if (cpc->reason & CP_UMOUNT) {
- if (le32_to_cpu(ckpt->cp_pack_total_block_count) >
- sbi->blocks_per_seg - NM_I(sbi)->nat_bits_blocks) {
+ if (le32_to_cpu(ckpt->cp_pack_total_block_count) +
+ NM_I(sbi)->nat_bits_blocks > sbi->blocks_per_seg) {
clear_ckpt_flags(sbi, CP_NAT_BITS_FLAG);
f2fs_notice(sbi, "Disable nat_bits due to no space");
} else if (!is_set_ckpt_flags(sbi, CP_NAT_BITS_FLAG) &&
diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c
index 9b663eaf4805..58d255d3a518 100644
--- a/fs/f2fs/compress.c
+++ b/fs/f2fs/compress.c
@@ -1448,25 +1448,38 @@ static int f2fs_write_raw_pages(struct compress_ctx *cc,
enum iostat_type io_type)
{
struct address_space *mapping = cc->inode->i_mapping;
- int _submitted, compr_blocks, ret;
- int i = -1, err = 0;
+ int _submitted, compr_blocks, ret, i;
compr_blocks = f2fs_compressed_blocks(cc);
- if (compr_blocks < 0) {
- err = compr_blocks;
- goto out_err;
+
+ for (i = 0; i < cc->cluster_size; i++) {
+ if (!cc->rpages[i])
+ continue;
+
+ redirty_page_for_writepage(wbc, cc->rpages[i]);
+ unlock_page(cc->rpages[i]);
}
+ if (compr_blocks < 0)
+ return compr_blocks;
+
for (i = 0; i < cc->cluster_size; i++) {
if (!cc->rpages[i])
continue;
retry_write:
+ lock_page(cc->rpages[i]);
+
if (cc->rpages[i]->mapping != mapping) {
+continue_unlock:
unlock_page(cc->rpages[i]);
continue;
}
- BUG_ON(!PageLocked(cc->rpages[i]));
+ if (!PageDirty(cc->rpages[i]))
+ goto continue_unlock;
+
+ if (!clear_page_dirty_for_io(cc->rpages[i]))
+ goto continue_unlock;
ret = f2fs_write_single_data_page(cc->rpages[i], &_submitted,
NULL, NULL, wbc, io_type,
@@ -1481,26 +1494,15 @@ static int f2fs_write_raw_pages(struct compress_ctx *cc,
* avoid deadlock caused by cluster update race
* from foreground operation.
*/
- if (IS_NOQUOTA(cc->inode)) {
- err = 0;
- goto out_err;
- }
+ if (IS_NOQUOTA(cc->inode))
+ return 0;
ret = 0;
cond_resched();
congestion_wait(BLK_RW_ASYNC,
DEFAULT_IO_TIMEOUT);
- lock_page(cc->rpages[i]);
-
- if (!PageDirty(cc->rpages[i])) {
- unlock_page(cc->rpages[i]);
- continue;
- }
-
- clear_page_dirty_for_io(cc->rpages[i]);
goto retry_write;
}
- err = ret;
- goto out_err;
+ return ret;
}
*submitted += _submitted;
@@ -1509,14 +1511,6 @@ static int f2fs_write_raw_pages(struct compress_ctx *cc,
f2fs_balance_fs(F2FS_M_SB(mapping), true);
return 0;
-out_err:
- for (++i; i < cc->cluster_size; i++) {
- if (!cc->rpages[i])
- continue;
- redirty_page_for_writepage(wbc, cc->rpages[i]);
- unlock_page(cc->rpages[i]);
- }
- return err;
}
int f2fs_write_multi_pages(struct compress_ctx *cc,
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index f4fd6c246c9a..e662355cf8c9 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -2564,6 +2564,11 @@ bool f2fs_should_update_outplace(struct inode *inode, struct f2fs_io_info *fio)
{
struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
+ /* The below cases were checked when setting it. */
+ if (f2fs_is_pinned_file(inode))
+ return false;
+ if (fio && is_sbi_flag_set(sbi, SBI_NEED_FSCK))
+ return true;
if (f2fs_lfs_mode(sbi))
return true;
if (S_ISDIR(inode->i_mode))
@@ -2572,8 +2577,6 @@ bool f2fs_should_update_outplace(struct inode *inode, struct f2fs_io_info *fio)
return true;
if (f2fs_is_atomic_file(inode))
return true;
- if (is_sbi_flag_set(sbi, SBI_NEED_FSCK))
- return true;
/* swap file is migrating in aligned write mode */
if (is_inode_flag_set(inode, FI_ALIGNED_WRITE))
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index c242274e3479..c68817d83a53 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -1012,6 +1012,7 @@ struct f2fs_sm_info {
unsigned int segment_count; /* total # of segments */
unsigned int main_segments; /* # of segments in main area */
unsigned int reserved_segments; /* # of reserved segments */
+ unsigned int additional_reserved_segments;/* reserved segs for IO align feature */
unsigned int ovp_segments; /* # of overprovision segments */
/* a threshold to reclaim prefree segments */
@@ -2184,6 +2185,11 @@ static inline int inc_valid_block_count(struct f2fs_sb_info *sbi,
if (!__allow_reserved_blocks(sbi, inode, true))
avail_user_block_count -= F2FS_OPTION(sbi).root_reserved_blocks;
+
+ if (F2FS_IO_ALIGNED(sbi))
+ avail_user_block_count -= sbi->blocks_per_seg *
+ SM_I(sbi)->additional_reserved_segments;
+
if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED))) {
if (avail_user_block_count > sbi->unusable_block_count)
avail_user_block_count -= sbi->unusable_block_count;
@@ -2430,6 +2436,11 @@ static inline int inc_valid_node_count(struct f2fs_sb_info *sbi,
if (!__allow_reserved_blocks(sbi, inode, false))
valid_block_count += F2FS_OPTION(sbi).root_reserved_blocks;
+
+ if (F2FS_IO_ALIGNED(sbi))
+ valid_block_count += sbi->blocks_per_seg *
+ SM_I(sbi)->additional_reserved_segments;
+
user_block_count = sbi->user_block_count;
if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
user_block_count -= sbi->unusable_block_count;
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 9c8ef33bd8d3..7ed44752c758 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -3143,17 +3143,17 @@ static int f2fs_ioc_set_pin_file(struct file *filp, unsigned long arg)
inode_lock(inode);
- if (f2fs_should_update_outplace(inode, NULL)) {
- ret = -EINVAL;
- goto out;
- }
-
if (!pin) {
clear_inode_flag(inode, FI_PIN_FILE);
f2fs_i_gc_failures_write(inode, 0);
goto done;
}
+ if (f2fs_should_update_outplace(inode, NULL)) {
+ ret = -EINVAL;
+ goto out;
+ }
+
if (f2fs_pin_file_control(inode, false)) {
ret = -EAGAIN;
goto out;
diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index 77391e3b7d68..264821df0add 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -1023,6 +1023,9 @@ static bool is_alive(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
set_sbi_flag(sbi, SBI_NEED_FSCK);
}
+ if (f2fs_check_nid_range(sbi, dni->ino))
+ return false;
+
*nofs = ofs_of_node(node_page);
source_blkaddr = data_blkaddr(NULL, node_page, ofs_in_node);
f2fs_put_page(node_page, 1);
@@ -1036,7 +1039,7 @@ static bool is_alive(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
if (!test_and_set_bit(segno, SIT_I(sbi)->invalid_segmap)) {
f2fs_err(sbi, "mismatched blkaddr %u (source_blkaddr %u) in seg %u",
blkaddr, source_blkaddr, segno);
- f2fs_bug_on(sbi, 1);
+ set_sbi_flag(sbi, SBI_NEED_FSCK);
}
}
#endif
@@ -1454,7 +1457,8 @@ static int gc_data_segment(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
if (phase == 3) {
inode = f2fs_iget(sb, dni.ino);
- if (IS_ERR(inode) || is_bad_inode(inode))
+ if (IS_ERR(inode) || is_bad_inode(inode) ||
+ special_file(inode->i_mode))
continue;
if (!down_write_trylock(
diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c
index 1213f15ffd68..4557de37a911 100644
--- a/fs/f2fs/inode.c
+++ b/fs/f2fs/inode.c
@@ -516,6 +516,11 @@ struct inode *f2fs_iget(struct super_block *sb, unsigned long ino)
} else if (ino == F2FS_COMPRESS_INO(sbi)) {
#ifdef CONFIG_F2FS_FS_COMPRESSION
inode->i_mapping->a_ops = &f2fs_compress_aops;
+ /*
+ * generic_error_remove_page only truncates pages of regular
+ * inode
+ */
+ inode->i_mode |= S_IFREG;
#endif
mapping_set_gfp_mask(inode->i_mapping,
GFP_NOFS | __GFP_HIGHMEM | __GFP_MOVABLE);
diff --git a/fs/f2fs/segment.h b/fs/f2fs/segment.h
index 89fff258727d..b2d82c9f5a16 100644
--- a/fs/f2fs/segment.h
+++ b/fs/f2fs/segment.h
@@ -537,7 +537,8 @@ static inline unsigned int free_segments(struct f2fs_sb_info *sbi)
static inline unsigned int reserved_segments(struct f2fs_sb_info *sbi)
{
- return SM_I(sbi)->reserved_segments;
+ return SM_I(sbi)->reserved_segments +
+ SM_I(sbi)->additional_reserved_segments;
}
static inline unsigned int free_sections(struct f2fs_sb_info *sbi)
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 8795a5a8d4e8..6174c4f4cee7 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -327,6 +327,46 @@ static inline void limit_reserve_root(struct f2fs_sb_info *sbi)
F2FS_OPTION(sbi).s_resgid));
}
+static inline int adjust_reserved_segment(struct f2fs_sb_info *sbi)
+{
+ unsigned int sec_blks = sbi->blocks_per_seg * sbi->segs_per_sec;
+ unsigned int avg_vblocks;
+ unsigned int wanted_reserved_segments;
+ block_t avail_user_block_count;
+
+ if (!F2FS_IO_ALIGNED(sbi))
+ return 0;
+
+ /* average valid block count in section in worst case */
+ avg_vblocks = sec_blks / F2FS_IO_SIZE(sbi);
+
+ /*
+ * we need enough free space when migrating one section in worst case
+ */
+ wanted_reserved_segments = (F2FS_IO_SIZE(sbi) / avg_vblocks) *
+ reserved_segments(sbi);
+ wanted_reserved_segments -= reserved_segments(sbi);
+
+ avail_user_block_count = sbi->user_block_count -
+ sbi->current_reserved_blocks -
+ F2FS_OPTION(sbi).root_reserved_blocks;
+
+ if (wanted_reserved_segments * sbi->blocks_per_seg >
+ avail_user_block_count) {
+ f2fs_err(sbi, "IO align feature can't grab additional reserved segment: %u, available segments: %u",
+ wanted_reserved_segments,
+ avail_user_block_count >> sbi->log_blocks_per_seg);
+ return -ENOSPC;
+ }
+
+ SM_I(sbi)->additional_reserved_segments = wanted_reserved_segments;
+
+ f2fs_info(sbi, "IO align feature needs additional reserved segment: %u",
+ wanted_reserved_segments);
+
+ return 0;
+}
+
static inline void adjust_unusable_cap_perc(struct f2fs_sb_info *sbi)
{
if (!F2FS_OPTION(sbi).unusable_cap_perc)
@@ -4148,6 +4188,10 @@ static int f2fs_fill_super(struct super_block *sb, void *data, int silent)
goto free_nm;
}
+ err = adjust_reserved_segment(sbi);
+ if (err)
+ goto free_nm;
+
/* For write statistics */
sbi->sectors_written_start = f2fs_get_sectors_written(sbi);
diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c
index a32fe31c33b8..abc4344fba39 100644
--- a/fs/f2fs/sysfs.c
+++ b/fs/f2fs/sysfs.c
@@ -415,7 +415,9 @@ static ssize_t __sbi_store(struct f2fs_attr *a,
if (a->struct_type == RESERVED_BLOCKS) {
spin_lock(&sbi->stat_lock);
if (t > (unsigned long)(sbi->user_block_count -
- F2FS_OPTION(sbi).root_reserved_blocks)) {
+ F2FS_OPTION(sbi).root_reserved_blocks -
+ sbi->blocks_per_seg *
+ SM_I(sbi)->additional_reserved_segments)) {
spin_unlock(&sbi->stat_lock);
return -EINVAL;
}
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 5c5ed58d91a7..2004d362361e 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -2913,7 +2913,7 @@ fuse_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
static int fuse_writeback_range(struct inode *inode, loff_t start, loff_t end)
{
- int err = filemap_write_and_wait_range(inode->i_mapping, start, -1);
+ int err = filemap_write_and_wait_range(inode->i_mapping, start, LLONG_MAX);
if (!err)
fuse_sync_writes(inode);
diff --git a/fs/io_uring.c b/fs/io_uring.c
index 0006fc7479ca..ecffeddf90c6 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -5925,6 +5925,7 @@ static int io_poll_update(struct io_kiocb *req, unsigned int issue_flags)
* update those. For multishot, if we're racing with completion, just
* let completion re-add it.
*/
+ io_poll_remove_double(preq);
completing = !__io_poll_remove_one(preq, &preq->poll, false);
if (completing && (preq->poll.events & EPOLLONESHOT)) {
ret = -EALREADY;
diff --git a/fs/jffs2/file.c b/fs/jffs2/file.c
index 4fc8cd698d1a..bd7d58d27bfc 100644
--- a/fs/jffs2/file.c
+++ b/fs/jffs2/file.c
@@ -136,20 +136,15 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
struct page *pg;
struct inode *inode = mapping->host;
struct jffs2_inode_info *f = JFFS2_INODE_INFO(inode);
+ struct jffs2_sb_info *c = JFFS2_SB_INFO(inode->i_sb);
pgoff_t index = pos >> PAGE_SHIFT;
uint32_t pageofs = index << PAGE_SHIFT;
int ret = 0;
- pg = grab_cache_page_write_begin(mapping, index, flags);
- if (!pg)
- return -ENOMEM;
- *pagep = pg;
-
jffs2_dbg(1, "%s()\n", __func__);
if (pageofs > inode->i_size) {
/* Make new hole frag from old EOF to new page */
- struct jffs2_sb_info *c = JFFS2_SB_INFO(inode->i_sb);
struct jffs2_raw_inode ri;
struct jffs2_full_dnode *fn;
uint32_t alloc_len;
@@ -160,7 +155,7 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
ret = jffs2_reserve_space(c, sizeof(ri), &alloc_len,
ALLOC_NORMAL, JFFS2_SUMMARY_INODE_SIZE);
if (ret)
- goto out_page;
+ goto out_err;
mutex_lock(&f->sem);
memset(&ri, 0, sizeof(ri));
@@ -190,7 +185,7 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
ret = PTR_ERR(fn);
jffs2_complete_reservation(c);
mutex_unlock(&f->sem);
- goto out_page;
+ goto out_err;
}
ret = jffs2_add_full_dnode_to_inode(c, f, fn);
if (f->metadata) {
@@ -205,13 +200,26 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
jffs2_free_full_dnode(fn);
jffs2_complete_reservation(c);
mutex_unlock(&f->sem);
- goto out_page;
+ goto out_err;
}
jffs2_complete_reservation(c);
inode->i_size = pageofs;
mutex_unlock(&f->sem);
}
+ /*
+ * While getting a page and reading data in, lock c->alloc_sem until
+ * the page is Uptodate. Otherwise GC task may attempt to read the same
+ * page in read_cache_page(), which causes a deadlock.
+ */
+ mutex_lock(&c->alloc_sem);
+ pg = grab_cache_page_write_begin(mapping, index, flags);
+ if (!pg) {
+ ret = -ENOMEM;
+ goto release_sem;
+ }
+ *pagep = pg;
+
/*
* Read in the page if it wasn't already present. Cannot optimize away
* the whole page write case until jffs2_write_end can handle the
@@ -221,15 +229,17 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
mutex_lock(&f->sem);
ret = jffs2_do_readpage_nolock(inode, pg);
mutex_unlock(&f->sem);
- if (ret)
- goto out_page;
+ if (ret) {
+ unlock_page(pg);
+ put_page(pg);
+ goto release_sem;
+ }
}
jffs2_dbg(1, "end write_begin(). pg->flags %lx\n", pg->flags);
- return ret;
-out_page:
- unlock_page(pg);
- put_page(pg);
+release_sem:
+ mutex_unlock(&c->alloc_sem);
+out_err:
return ret;
}
diff --git a/fs/ksmbd/connection.c b/fs/ksmbd/connection.c
index b57a0d8a392f..f7d5e8b7bef7 100644
--- a/fs/ksmbd/connection.c
+++ b/fs/ksmbd/connection.c
@@ -62,6 +62,7 @@ struct ksmbd_conn *ksmbd_conn_alloc(void)
atomic_set(&conn->req_running, 0);
atomic_set(&conn->r_count, 0);
conn->total_credits = 1;
+ conn->outstanding_credits = 1;
init_waitqueue_head(&conn->req_running_q);
INIT_LIST_HEAD(&conn->conns_list);
diff --git a/fs/ksmbd/connection.h b/fs/ksmbd/connection.h
index e5403c587a58..8694aef482c1 100644
--- a/fs/ksmbd/connection.h
+++ b/fs/ksmbd/connection.h
@@ -61,8 +61,8 @@ struct ksmbd_conn {
atomic_t req_running;
/* References which are made for this Server object*/
atomic_t r_count;
- unsigned short total_credits;
- unsigned short max_credits;
+ unsigned int total_credits;
+ unsigned int outstanding_credits;
spinlock_t credits_lock;
wait_queue_head_t req_running_q;
/* Lock to protect requests list*/
diff --git a/fs/ksmbd/ksmbd_netlink.h b/fs/ksmbd/ksmbd_netlink.h
index c6718a05d347..71bfb7de4472 100644
--- a/fs/ksmbd/ksmbd_netlink.h
+++ b/fs/ksmbd/ksmbd_netlink.h
@@ -103,6 +103,8 @@ struct ksmbd_startup_request {
* we set the SPARSE_FILES bit (0x40).
*/
__u32 sub_auth[3]; /* Subauth value for Security ID */
+ __u32 smb2_max_credits; /* MAX credits */
+ __u32 reserved[128]; /* Reserved room */
__u32 ifc_list_sz; /* interfaces list size */
__s8 ____payload[];
};
@@ -113,7 +115,7 @@ struct ksmbd_startup_request {
* IPC request to shutdown ksmbd server.
*/
struct ksmbd_shutdown_request {
- __s32 reserved;
+ __s32 reserved[16];
};
/*
@@ -122,6 +124,7 @@ struct ksmbd_shutdown_request {
struct ksmbd_login_request {
__u32 handle;
__s8 account[KSMBD_REQ_MAX_ACCOUNT_NAME_SZ]; /* user account name */
+ __u32 reserved[16]; /* Reserved room */
};
/*
@@ -135,6 +138,7 @@ struct ksmbd_login_response {
__u16 status;
__u16 hash_sz; /* hash size */
__s8 hash[KSMBD_REQ_MAX_HASH_SZ]; /* password hash */
+ __u32 reserved[16]; /* Reserved room */
};
/*
@@ -143,6 +147,7 @@ struct ksmbd_login_response {
struct ksmbd_share_config_request {
__u32 handle;
__s8 share_name[KSMBD_REQ_MAX_SHARE_NAME]; /* share name */
+ __u32 reserved[16]; /* Reserved room */
};
/*
@@ -157,6 +162,7 @@ struct ksmbd_share_config_response {
__u16 force_directory_mode;
__u16 force_uid;
__u16 force_gid;
+ __u32 reserved[128]; /* Reserved room */
__u32 veto_list_sz;
__s8 ____payload[];
};
@@ -187,6 +193,7 @@ struct ksmbd_tree_connect_request {
__s8 account[KSMBD_REQ_MAX_ACCOUNT_NAME_SZ];
__s8 share[KSMBD_REQ_MAX_SHARE_NAME];
__s8 peer_addr[64];
+ __u32 reserved[16]; /* Reserved room */
};
/*
@@ -196,6 +203,7 @@ struct ksmbd_tree_connect_response {
__u32 handle;
__u16 status;
__u16 connection_flags;
+ __u32 reserved[16]; /* Reserved room */
};
/*
@@ -204,6 +212,7 @@ struct ksmbd_tree_connect_response {
struct ksmbd_tree_disconnect_request {
__u64 session_id; /* session id */
__u64 connect_id; /* tree connection id */
+ __u32 reserved[16]; /* Reserved room */
};
/*
@@ -212,6 +221,7 @@ struct ksmbd_tree_disconnect_request {
struct ksmbd_logout_request {
__s8 account[KSMBD_REQ_MAX_ACCOUNT_NAME_SZ]; /* user account name */
__u32 account_flags;
+ __u32 reserved[16]; /* Reserved room */
};
/*
diff --git a/fs/ksmbd/smb2misc.c b/fs/ksmbd/smb2misc.c
index 9f516f73bd1b..cc1c38686ecd 100644
--- a/fs/ksmbd/smb2misc.c
+++ b/fs/ksmbd/smb2misc.c
@@ -290,7 +290,7 @@ static int smb2_validate_credit_charge(struct ksmbd_conn *conn,
unsigned int req_len = 0, expect_resp_len = 0, calc_credit_num, max_len;
unsigned short credit_charge = le16_to_cpu(hdr->CreditCharge);
void *__hdr = hdr;
- int ret;
+ int ret = 0;
switch (hdr->Command) {
case SMB2_QUERY_INFO:
@@ -327,21 +327,27 @@ static int smb2_validate_credit_charge(struct ksmbd_conn *conn,
ksmbd_debug(SMB, "Insufficient credit charge, given: %d, needed: %d\n",
credit_charge, calc_credit_num);
return 1;
- } else if (credit_charge > conn->max_credits) {
+ } else if (credit_charge > conn->vals->max_credits) {
ksmbd_debug(SMB, "Too large credit charge: %d\n", credit_charge);
return 1;
}
spin_lock(&conn->credits_lock);
- if (credit_charge <= conn->total_credits) {
- conn->total_credits -= credit_charge;
- ret = 0;
- } else {
+ if (credit_charge > conn->total_credits) {
ksmbd_debug(SMB, "Insufficient credits granted, given: %u, granted: %u\n",
credit_charge, conn->total_credits);
ret = 1;
}
+
+ if ((u64)conn->outstanding_credits + credit_charge > conn->vals->max_credits) {
+ ksmbd_debug(SMB, "Limits exceeding the maximum allowable outstanding requests, given : %u, pending : %u\n",
+ credit_charge, conn->outstanding_credits);
+ ret = 1;
+ } else
+ conn->outstanding_credits += credit_charge;
+
spin_unlock(&conn->credits_lock);
+
return ret;
}
diff --git a/fs/ksmbd/smb2ops.c b/fs/ksmbd/smb2ops.c
index 2a6205103df2..f0a5b704f301 100644
--- a/fs/ksmbd/smb2ops.c
+++ b/fs/ksmbd/smb2ops.c
@@ -20,6 +20,7 @@ static struct smb_version_values smb21_server_values = {
.max_read_size = SMB21_DEFAULT_IOSIZE,
.max_write_size = SMB21_DEFAULT_IOSIZE,
.max_trans_size = SMB21_DEFAULT_IOSIZE,
+ .max_credits = SMB2_MAX_CREDITS,
.large_lock_type = 0,
.exclusive_lock_type = SMB2_LOCKFLAG_EXCLUSIVE,
.shared_lock_type = SMB2_LOCKFLAG_SHARED,
@@ -45,6 +46,7 @@ static struct smb_version_values smb30_server_values = {
.max_read_size = SMB3_DEFAULT_IOSIZE,
.max_write_size = SMB3_DEFAULT_IOSIZE,
.max_trans_size = SMB3_DEFAULT_TRANS_SIZE,
+ .max_credits = SMB2_MAX_CREDITS,
.large_lock_type = 0,
.exclusive_lock_type = SMB2_LOCKFLAG_EXCLUSIVE,
.shared_lock_type = SMB2_LOCKFLAG_SHARED,
@@ -71,6 +73,7 @@ static struct smb_version_values smb302_server_values = {
.max_read_size = SMB3_DEFAULT_IOSIZE,
.max_write_size = SMB3_DEFAULT_IOSIZE,
.max_trans_size = SMB3_DEFAULT_TRANS_SIZE,
+ .max_credits = SMB2_MAX_CREDITS,
.large_lock_type = 0,
.exclusive_lock_type = SMB2_LOCKFLAG_EXCLUSIVE,
.shared_lock_type = SMB2_LOCKFLAG_SHARED,
@@ -97,6 +100,7 @@ static struct smb_version_values smb311_server_values = {
.max_read_size = SMB3_DEFAULT_IOSIZE,
.max_write_size = SMB3_DEFAULT_IOSIZE,
.max_trans_size = SMB3_DEFAULT_TRANS_SIZE,
+ .max_credits = SMB2_MAX_CREDITS,
.large_lock_type = 0,
.exclusive_lock_type = SMB2_LOCKFLAG_EXCLUSIVE,
.shared_lock_type = SMB2_LOCKFLAG_SHARED,
@@ -198,7 +202,6 @@ void init_smb2_1_server(struct ksmbd_conn *conn)
conn->ops = &smb2_0_server_ops;
conn->cmds = smb2_0_server_cmds;
conn->max_cmds = ARRAY_SIZE(smb2_0_server_cmds);
- conn->max_credits = SMB2_MAX_CREDITS;
conn->signing_algorithm = SIGNING_ALG_HMAC_SHA256;
if (server_conf.flags & KSMBD_GLOBAL_FLAG_SMB2_LEASES)
@@ -216,7 +219,6 @@ void init_smb3_0_server(struct ksmbd_conn *conn)
conn->ops = &smb3_0_server_ops;
conn->cmds = smb2_0_server_cmds;
conn->max_cmds = ARRAY_SIZE(smb2_0_server_cmds);
- conn->max_credits = SMB2_MAX_CREDITS;
conn->signing_algorithm = SIGNING_ALG_AES_CMAC;
if (server_conf.flags & KSMBD_GLOBAL_FLAG_SMB2_LEASES)
@@ -241,7 +243,6 @@ void init_smb3_02_server(struct ksmbd_conn *conn)
conn->ops = &smb3_0_server_ops;
conn->cmds = smb2_0_server_cmds;
conn->max_cmds = ARRAY_SIZE(smb2_0_server_cmds);
- conn->max_credits = SMB2_MAX_CREDITS;
conn->signing_algorithm = SIGNING_ALG_AES_CMAC;
if (server_conf.flags & KSMBD_GLOBAL_FLAG_SMB2_LEASES)
@@ -266,7 +267,6 @@ int init_smb3_11_server(struct ksmbd_conn *conn)
conn->ops = &smb3_11_server_ops;
conn->cmds = smb2_0_server_cmds;
conn->max_cmds = ARRAY_SIZE(smb2_0_server_cmds);
- conn->max_credits = SMB2_MAX_CREDITS;
conn->signing_algorithm = SIGNING_ALG_AES_CMAC;
if (server_conf.flags & KSMBD_GLOBAL_FLAG_SMB2_LEASES)
@@ -305,3 +305,11 @@ void init_smb2_max_trans_size(unsigned int sz)
smb302_server_values.max_trans_size = sz;
smb311_server_values.max_trans_size = sz;
}
+
+void init_smb2_max_credits(unsigned int sz)
+{
+ smb21_server_values.max_credits = sz;
+ smb30_server_values.max_credits = sz;
+ smb302_server_values.max_credits = sz;
+ smb311_server_values.max_credits = sz;
+}
diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c
index cb71cbfc5fc9..f694ee10a0bc 100644
--- a/fs/ksmbd/smb2pdu.c
+++ b/fs/ksmbd/smb2pdu.c
@@ -301,16 +301,15 @@ int smb2_set_rsp_credits(struct ksmbd_work *work)
struct smb2_hdr *req_hdr = ksmbd_req_buf_next(work);
struct smb2_hdr *hdr = ksmbd_resp_buf_next(work);
struct ksmbd_conn *conn = work->conn;
- unsigned short credits_requested;
+ unsigned short credits_requested, aux_max;
unsigned short credit_charge, credits_granted = 0;
- unsigned short aux_max, aux_credits;
if (work->send_no_response)
return 0;
hdr->CreditCharge = req_hdr->CreditCharge;
- if (conn->total_credits > conn->max_credits) {
+ if (conn->total_credits > conn->vals->max_credits) {
hdr->CreditRequest = 0;
pr_err("Total credits overflow: %d\n", conn->total_credits);
return -EINVAL;
@@ -318,6 +317,14 @@ int smb2_set_rsp_credits(struct ksmbd_work *work)
credit_charge = max_t(unsigned short,
le16_to_cpu(req_hdr->CreditCharge), 1);
+ if (credit_charge > conn->total_credits) {
+ ksmbd_debug(SMB, "Insufficient credits granted, given: %u, granted: %u\n",
+ credit_charge, conn->total_credits);
+ return -EINVAL;
+ }
+
+ conn->total_credits -= credit_charge;
+ conn->outstanding_credits -= credit_charge;
credits_requested = max_t(unsigned short,
le16_to_cpu(req_hdr->CreditRequest), 1);
@@ -327,16 +334,14 @@ int smb2_set_rsp_credits(struct ksmbd_work *work)
* TODO: Need to adjuct CreditRequest value according to
* current cpu load
*/
- aux_credits = credits_requested - 1;
if (hdr->Command == SMB2_NEGOTIATE)
- aux_max = 0;
+ aux_max = 1;
else
- aux_max = conn->max_credits - credit_charge;
- aux_credits = min_t(unsigned short, aux_credits, aux_max);
- credits_granted = credit_charge + aux_credits;
+ aux_max = conn->vals->max_credits - credit_charge;
+ credits_granted = min_t(unsigned short, credits_requested, aux_max);
- if (conn->max_credits - conn->total_credits < credits_granted)
- credits_granted = conn->max_credits -
+ if (conn->vals->max_credits - conn->total_credits < credits_granted)
+ credits_granted = conn->vals->max_credits -
conn->total_credits;
conn->total_credits += credits_granted;
@@ -1457,11 +1462,6 @@ static int ntlm_authenticate(struct ksmbd_work *work)
sess->user = user;
if (user_guest(sess->user)) {
- if (conn->sign) {
- ksmbd_debug(SMB, "Guest login not allowed when signing enabled\n");
- return -EPERM;
- }
-
rsp->SessionFlags = SMB2_SESSION_FLAG_IS_GUEST_LE;
} else {
struct authenticate_message *authblob;
@@ -1474,38 +1474,39 @@ static int ntlm_authenticate(struct ksmbd_work *work)
ksmbd_debug(SMB, "authentication failed\n");
return -EPERM;
}
+ }
- /*
- * If session state is SMB2_SESSION_VALID, We can assume
- * that it is reauthentication. And the user/password
- * has been verified, so return it here.
- */
- if (sess->state == SMB2_SESSION_VALID) {
- if (conn->binding)
- goto binding_session;
- return 0;
- }
+ /*
+ * If session state is SMB2_SESSION_VALID, We can assume
+ * that it is reauthentication. And the user/password
+ * has been verified, so return it here.
+ */
+ if (sess->state == SMB2_SESSION_VALID) {
+ if (conn->binding)
+ goto binding_session;
+ return 0;
+ }
- if ((conn->sign || server_conf.enforced_signing) ||
- (req->SecurityMode & SMB2_NEGOTIATE_SIGNING_REQUIRED))
- sess->sign = true;
+ if ((rsp->SessionFlags != SMB2_SESSION_FLAG_IS_GUEST_LE &&
+ (conn->sign || server_conf.enforced_signing)) ||
+ (req->SecurityMode & SMB2_NEGOTIATE_SIGNING_REQUIRED))
+ sess->sign = true;
- if (smb3_encryption_negotiated(conn) &&
- !(req->Flags & SMB2_SESSION_REQ_FLAG_BINDING)) {
- rc = conn->ops->generate_encryptionkey(sess);
- if (rc) {
- ksmbd_debug(SMB,
- "SMB3 encryption key generation failed\n");
- return -EINVAL;
- }
- sess->enc = true;
- rsp->SessionFlags = SMB2_SESSION_FLAG_ENCRYPT_DATA_LE;
- /*
- * signing is disable if encryption is enable
- * on this session
- */
- sess->sign = false;
+ if (smb3_encryption_negotiated(conn) &&
+ !(req->Flags & SMB2_SESSION_REQ_FLAG_BINDING)) {
+ rc = conn->ops->generate_encryptionkey(sess);
+ if (rc) {
+ ksmbd_debug(SMB,
+ "SMB3 encryption key generation failed\n");
+ return -EINVAL;
}
+ sess->enc = true;
+ rsp->SessionFlags = SMB2_SESSION_FLAG_ENCRYPT_DATA_LE;
+ /*
+ * signing is disable if encryption is enable
+ * on this session
+ */
+ sess->sign = false;
}
binding_session:
diff --git a/fs/ksmbd/smb2pdu.h b/fs/ksmbd/smb2pdu.h
index ff5a2f01d34a..4f8574944ac1 100644
--- a/fs/ksmbd/smb2pdu.h
+++ b/fs/ksmbd/smb2pdu.h
@@ -1647,6 +1647,7 @@ int init_smb3_11_server(struct ksmbd_conn *conn);
void init_smb2_max_read_size(unsigned int sz);
void init_smb2_max_write_size(unsigned int sz);
void init_smb2_max_trans_size(unsigned int sz);
+void init_smb2_max_credits(unsigned int sz);
bool is_smb2_neg_cmd(struct ksmbd_work *work);
bool is_smb2_rsp(struct ksmbd_work *work);
diff --git a/fs/ksmbd/smb_common.h b/fs/ksmbd/smb_common.h
index 6e79e7577f6b..1eba8dabaf31 100644
--- a/fs/ksmbd/smb_common.h
+++ b/fs/ksmbd/smb_common.h
@@ -412,6 +412,7 @@ struct smb_version_values {
__u32 max_read_size;
__u32 max_write_size;
__u32 max_trans_size;
+ __u32 max_credits;
__u32 large_lock_type;
__u32 exclusive_lock_type;
__u32 shared_lock_type;
diff --git a/fs/ksmbd/transport_ipc.c b/fs/ksmbd/transport_ipc.c
index 1acf1892a466..3ad6881e0f7e 100644
--- a/fs/ksmbd/transport_ipc.c
+++ b/fs/ksmbd/transport_ipc.c
@@ -301,6 +301,8 @@ static int ipc_server_config_on_startup(struct ksmbd_startup_request *req)
init_smb2_max_write_size(req->smb2_max_write);
if (req->smb2_max_trans)
init_smb2_max_trans_size(req->smb2_max_trans);
+ if (req->smb2_max_credits)
+ init_smb2_max_credits(req->smb2_max_credits);
ret = ksmbd_set_netbios_name(req->netbios_name);
ret |= ksmbd_set_server_string(req->server_string);
diff --git a/fs/ksmbd/transport_tcp.c b/fs/ksmbd/transport_tcp.c
index c14320e03b69..82a1429bbe12 100644
--- a/fs/ksmbd/transport_tcp.c
+++ b/fs/ksmbd/transport_tcp.c
@@ -404,7 +404,7 @@ static int create_socket(struct interface *iface)
&ksmbd_socket);
if (ret) {
pr_err("Can't create socket for ipv4: %d\n", ret);
- goto out_error;
+ goto out_clear;
}
sin.sin_family = PF_INET;
@@ -462,6 +462,7 @@ static int create_socket(struct interface *iface)
out_error:
tcp_destroy_socket(ksmbd_socket);
+out_clear:
iface->ksmbd_socket = NULL;
return ret;
}
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index f0fb25727d96..eb05038b7191 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -1853,7 +1853,6 @@ static int ubifs_remount_rw(struct ubifs_info *c)
kthread_stop(c->bgt);
c->bgt = NULL;
}
- free_wbufs(c);
kfree(c->write_reserve_buf);
c->write_reserve_buf = NULL;
vfree(c->ileb_buf);
diff --git a/fs/udf/ialloc.c b/fs/udf/ialloc.c
index 2ecf0e87660e..b5d611cee749 100644
--- a/fs/udf/ialloc.c
+++ b/fs/udf/ialloc.c
@@ -77,6 +77,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode)
GFP_KERNEL);
}
if (!iinfo->i_data) {
+ make_bad_inode(inode);
iput(inode);
return ERR_PTR(-ENOMEM);
}
@@ -86,6 +87,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode)
dinfo->i_location.partitionReferenceNum,
start, &err);
if (err) {
+ make_bad_inode(inode);
iput(inode);
return ERR_PTR(err);
}
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 13d93371790e..e9c7d7b270e7 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -613,9 +613,10 @@ int acpi_enable_wakeup_device_power(struct acpi_device *dev, int state);
int acpi_disable_wakeup_device_power(struct acpi_device *dev);
#ifdef CONFIG_X86
-bool acpi_device_always_present(struct acpi_device *adev);
+bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *status);
#else
-static inline bool acpi_device_always_present(struct acpi_device *adev)
+static inline bool acpi_device_override_status(struct acpi_device *adev,
+ unsigned long long *status)
{
return false;
}
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h
index 92c71dfce0d5..cefbb7ad253e 100644
--- a/include/acpi/actypes.h
+++ b/include/acpi/actypes.h
@@ -536,8 +536,14 @@ typedef u64 acpi_integer;
* Can be used with access_width of struct acpi_generic_address and access_size of
* struct acpi_resource_generic_register.
*/
-#define ACPI_ACCESS_BIT_WIDTH(size) (1 << ((size) + 2))
-#define ACPI_ACCESS_BYTE_WIDTH(size) (1 << ((size) - 1))
+#define ACPI_ACCESS_BIT_SHIFT 2
+#define ACPI_ACCESS_BYTE_SHIFT -1
+#define ACPI_ACCESS_BIT_MAX (31 - ACPI_ACCESS_BIT_SHIFT)
+#define ACPI_ACCESS_BYTE_MAX (31 - ACPI_ACCESS_BYTE_SHIFT)
+#define ACPI_ACCESS_BIT_DEFAULT (8 - ACPI_ACCESS_BIT_SHIFT)
+#define ACPI_ACCESS_BYTE_DEFAULT (8 - ACPI_ACCESS_BYTE_SHIFT)
+#define ACPI_ACCESS_BIT_WIDTH(size) (1 << ((size) + ACPI_ACCESS_BIT_SHIFT))
+#define ACPI_ACCESS_BYTE_WIDTH(size) (1 << ((size) + ACPI_ACCESS_BYTE_SHIFT))
/*******************************************************************************
*
diff --git a/include/asm-generic/bitops/find.h b/include/asm-generic/bitops/find.h
index 0d132ee2a291..835f959a25f2 100644
--- a/include/asm-generic/bitops/find.h
+++ b/include/asm-generic/bitops/find.h
@@ -97,6 +97,7 @@ unsigned long find_next_zero_bit(const unsigned long *addr, unsigned long size,
#ifdef CONFIG_GENERIC_FIND_FIRST_BIT
+#ifndef find_first_bit
/**
* find_first_bit - find the first set bit in a memory region
* @addr: The address to start the search at
@@ -116,7 +117,9 @@ unsigned long find_first_bit(const unsigned long *addr, unsigned long size)
return _find_first_bit(addr, size);
}
+#endif
+#ifndef find_first_zero_bit
/**
* find_first_zero_bit - find the first cleared bit in a memory region
* @addr: The address to start the search at
@@ -136,6 +139,8 @@ unsigned long find_first_zero_bit(const unsigned long *addr, unsigned long size)
return _find_first_zero_bit(addr, size);
}
+#endif
+
#else /* CONFIG_GENERIC_FIND_FIRST_BIT */
#ifndef find_first_bit
diff --git a/include/linux/blk-pm.h b/include/linux/blk-pm.h
index b80c65aba249..2580e05a8ab6 100644
--- a/include/linux/blk-pm.h
+++ b/include/linux/blk-pm.h
@@ -14,7 +14,7 @@ extern void blk_pm_runtime_init(struct request_queue *q, struct device *dev);
extern int blk_pre_runtime_suspend(struct request_queue *q);
extern void blk_post_runtime_suspend(struct request_queue *q, int err);
extern void blk_pre_runtime_resume(struct request_queue *q);
-extern void blk_post_runtime_resume(struct request_queue *q, int err);
+extern void blk_post_runtime_resume(struct request_queue *q);
extern void blk_set_runtime_active(struct request_queue *q);
#else
static inline void blk_pm_runtime_init(struct request_queue *q,
diff --git a/include/linux/bpf_verifier.h b/include/linux/bpf_verifier.h
index 5424124dbe36..364550dd19c4 100644
--- a/include/linux/bpf_verifier.h
+++ b/include/linux/bpf_verifier.h
@@ -396,6 +396,13 @@ static inline bool bpf_verifier_log_needed(const struct bpf_verifier_log *log)
log->level == BPF_LOG_KERNEL);
}
+static inline bool
+bpf_verifier_log_attr_valid(const struct bpf_verifier_log *log)
+{
+ return log->len_total >= 128 && log->len_total <= UINT_MAX >> 2 &&
+ log->level && log->ubuf && !(log->level & ~BPF_LOG_MASK);
+}
+
#define BPF_MAX_SUBPROGS 256
struct bpf_subprog_info {
diff --git a/include/linux/hid.h b/include/linux/hid.h
index f453be385bd4..26742ca14609 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -349,6 +349,8 @@ struct hid_item {
/* BIT(9) reserved for backward compatibility, was NO_INIT_INPUT_REPORTS */
#define HID_QUIRK_ALWAYS_POLL BIT(10)
#define HID_QUIRK_INPUT_PER_APP BIT(11)
+#define HID_QUIRK_X_INVERT BIT(12)
+#define HID_QUIRK_Y_INVERT BIT(13)
#define HID_QUIRK_SKIP_OUTPUT_REPORTS BIT(16)
#define HID_QUIRK_SKIP_OUTPUT_REPORT_ID BIT(17)
#define HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP BIT(18)
diff --git a/include/linux/iio/trigger.h b/include/linux/iio/trigger.h
index 096f68dd2e0c..4c69b144677b 100644
--- a/include/linux/iio/trigger.h
+++ b/include/linux/iio/trigger.h
@@ -55,6 +55,7 @@ struct iio_trigger_ops {
* @attached_own_device:[INTERN] if we are using our own device as trigger,
* i.e. if we registered a poll function to the same
* device as the one providing the trigger.
+ * @reenable_work: [INTERN] work item used to ensure reenable can sleep.
**/
struct iio_trigger {
const struct iio_trigger_ops *ops;
@@ -74,6 +75,7 @@ struct iio_trigger {
unsigned long pool[BITS_TO_LONGS(CONFIG_IIO_CONSUMERS_PER_TRIGGER)];
struct mutex pool_lock;
bool attached_own_device;
+ struct work_struct reenable_work;
};
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h
index c383630d3f06..07cba0b3496d 100644
--- a/include/linux/ipv6.h
+++ b/include/linux/ipv6.h
@@ -132,6 +132,7 @@ struct inet6_skb_parm {
__u16 dsthao;
#endif
__u16 frag_max_size;
+ __u16 srhoff;
#define IP6SKB_XFRM_TRANSFORMED 1
#define IP6SKB_FORWARDED 2
@@ -141,6 +142,7 @@ struct inet6_skb_parm {
#define IP6SKB_HOPBYHOP 32
#define IP6SKB_L3SLAVE 64
#define IP6SKB_JUMBOGRAM 128
+#define IP6SKB_SEG6 256
};
#if defined(CONFIG_NET_L3_MASTER_DEV)
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 6a1d79d84675..fa1ef98614bc 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -1031,6 +1031,15 @@ static inline int is_highmem_idx(enum zone_type idx)
#endif
}
+#ifdef CONFIG_ZONE_DMA
+bool has_managed_dma(void);
+#else
+static inline bool has_managed_dma(void)
+{
+ return false;
+}
+#endif
+
/**
* is_highmem - helper function to quickly check if a struct zone is a
* highmem zone or not. This is an attempt to keep references
diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h
index b2f9dd3cbd69..5b88cd51fadb 100644
--- a/include/linux/mtd/rawnand.h
+++ b/include/linux/mtd/rawnand.h
@@ -1539,6 +1539,8 @@ int nand_read_data_op(struct nand_chip *chip, void *buf, unsigned int len,
bool force_8bit, bool check_only);
int nand_write_data_op(struct nand_chip *chip, const void *buf,
unsigned int len, bool force_8bit);
+int nand_read_page_hwecc_oob_first(struct nand_chip *chip, uint8_t *buf,
+ int oob_required, int page);
/* Scan and identify a NAND device */
int nand_scan_with_ids(struct nand_chip *chip, unsigned int max_chips,
diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h
index cf6a65b94d40..6508b97dbf1d 100644
--- a/include/linux/of_fdt.h
+++ b/include/linux/of_fdt.h
@@ -62,6 +62,7 @@ extern int early_init_dt_scan_chosen(unsigned long node, const char *uname,
int depth, void *data);
extern int early_init_dt_scan_memory(unsigned long node, const char *uname,
int depth, void *data);
+extern void early_init_dt_check_for_usable_mem_range(void);
extern int early_init_dt_scan_chosen_stdout(void);
extern void early_init_fdt_scan_reserved_mem(void);
extern void early_init_fdt_reserve_self(void);
@@ -87,6 +88,7 @@ extern void unflatten_and_copy_device_tree(void);
extern void early_init_devtree(void *);
extern void early_get_first_memblock_info(void *, phys_addr_t *);
#else /* CONFIG_OF_EARLY_FLATTREE */
+static inline void early_init_dt_check_for_usable_mem_range(void) {}
static inline int early_init_dt_scan_chosen_stdout(void) { return -ENODEV; }
static inline void early_init_fdt_scan_reserved_mem(void) {}
static inline void early_init_fdt_reserve_self(void) {}
diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h
index eddd66d426ca..016de5776b6d 100644
--- a/include/linux/pm_runtime.h
+++ b/include/linux/pm_runtime.h
@@ -58,6 +58,7 @@ extern void pm_runtime_get_suppliers(struct device *dev);
extern void pm_runtime_put_suppliers(struct device *dev);
extern void pm_runtime_new_link(struct device *dev);
extern void pm_runtime_drop_link(struct device_link *link);
+extern void pm_runtime_release_supplier(struct device_link *link, bool check_idle);
extern int devm_pm_runtime_enable(struct device *dev);
@@ -283,6 +284,8 @@ static inline void pm_runtime_get_suppliers(struct device *dev) {}
static inline void pm_runtime_put_suppliers(struct device *dev) {}
static inline void pm_runtime_new_link(struct device *dev) {}
static inline void pm_runtime_drop_link(struct device_link *link) {}
+static inline void pm_runtime_release_supplier(struct device_link *link,
+ bool check_idle) {}
#endif /* !CONFIG_PM */
diff --git a/include/linux/psi_types.h b/include/linux/psi_types.h
index 0a23300d49af..0819c82dba92 100644
--- a/include/linux/psi_types.h
+++ b/include/linux/psi_types.h
@@ -21,7 +21,17 @@ enum psi_task_count {
* don't have to special case any state tracking for it.
*/
NR_ONCPU,
- NR_PSI_TASK_COUNTS = 4,
+ /*
+ * For IO and CPU stalls the presence of running/oncpu tasks
+ * in the domain means a partial rather than a full stall.
+ * For memory it's not so simple because of page reclaimers:
+ * they are running/oncpu while representing a stall. To tell
+ * whether a domain has productivity left or not, we need to
+ * distinguish between regular running (i.e. productive)
+ * threads and memstall ones.
+ */
+ NR_MEMSTALL_RUNNING,
+ NR_PSI_TASK_COUNTS = 5,
};
/* Task state bitmasks */
@@ -29,6 +39,7 @@ enum psi_task_count {
#define TSK_MEMSTALL (1 << NR_MEMSTALL)
#define TSK_RUNNING (1 << NR_RUNNING)
#define TSK_ONCPU (1 << NR_ONCPU)
+#define TSK_MEMSTALL_RUNNING (1 << NR_MEMSTALL_RUNNING)
/* Resources that workloads could be stalled on */
enum psi_res {
diff --git a/include/linux/ptp_clock_kernel.h b/include/linux/ptp_clock_kernel.h
index 2e5565067355..554454cb8693 100644
--- a/include/linux/ptp_clock_kernel.h
+++ b/include/linux/ptp_clock_kernel.h
@@ -351,15 +351,17 @@ int ptp_get_vclocks_index(int pclock_index, int **vclock_index);
*
* @hwtstamps: skb_shared_hwtstamps structure pointer
* @vclock_index: phc index of ptp vclock.
+ *
+ * Returns converted timestamp, or 0 on error.
*/
-void ptp_convert_timestamp(struct skb_shared_hwtstamps *hwtstamps,
- int vclock_index);
+ktime_t ptp_convert_timestamp(const struct skb_shared_hwtstamps *hwtstamps,
+ int vclock_index);
#else
static inline int ptp_get_vclocks_index(int pclock_index, int **vclock_index)
{ return 0; }
-static inline void ptp_convert_timestamp(struct skb_shared_hwtstamps *hwtstamps,
- int vclock_index)
-{ }
+static inline ktime_t ptp_convert_timestamp(const struct skb_shared_hwtstamps *hwtstamps,
+ int vclock_index)
+{ return 0; }
#endif
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index b8c273af2910..532f5d402f06 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -286,7 +286,10 @@ struct nf_bridge_info {
struct tc_skb_ext {
__u32 chain;
__u16 mru;
- bool post_ct;
+ __u16 zone;
+ u8 post_ct:1;
+ u8 post_ct_snat:1;
+ u8 post_ct_dnat:1;
};
#endif
@@ -1370,7 +1373,7 @@ skb_flow_dissect_ct(const struct sk_buff *skb,
struct flow_dissector *flow_dissector,
void *target_container,
u16 *ctinfo_map, size_t mapsize,
- bool post_ct);
+ bool post_ct, u16 zone);
void
skb_flow_dissect_tunnel_info(const struct sk_buff *skb,
struct flow_dissector *flow_dissector,
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
index a6f03b36fc4f..1450397fc0bc 100644
--- a/include/linux/stmmac.h
+++ b/include/linux/stmmac.h
@@ -233,6 +233,7 @@ struct plat_stmmacenet_data {
int (*clks_config)(void *priv, bool enabled);
int (*crosststamp)(ktime_t *device, struct system_counterval_t *system,
void *ctx);
+ void (*dump_debug_regs)(void *priv);
void *bsp_priv;
struct clk *stmmac_clk;
struct clk *pclk;
diff --git a/include/media/cec.h b/include/media/cec.h
index 208c9613c07e..77346f757036 100644
--- a/include/media/cec.h
+++ b/include/media/cec.h
@@ -26,13 +26,17 @@
* @dev: cec device
* @cdev: cec character device
* @minor: device node minor number
+ * @lock: lock to serialize open/release and registration
* @registered: the device was correctly registered
* @unregistered: the device was unregistered
+ * @lock_fhs: lock to control access to @fhs
* @fhs: the list of open filehandles (cec_fh)
- * @lock: lock to control access to this structure
*
* This structure represents a cec-related device node.
*
+ * To add or remove filehandles from @fhs the @lock must be taken first,
+ * followed by @lock_fhs. It is safe to access @fhs if either lock is held.
+ *
* The @parent is a physical device. It must be set by core or device drivers
* before registering the node.
*/
@@ -43,10 +47,13 @@ struct cec_devnode {
/* device info */
int minor;
+ /* serialize open/release and registration */
+ struct mutex lock;
bool registered;
bool unregistered;
+ /* protect access to fhs */
+ struct mutex lock_fhs;
struct list_head fhs;
- struct mutex lock;
};
struct cec_adapter;
diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h
index 48cc5795ceda..63540be0fc34 100644
--- a/include/net/inet_frag.h
+++ b/include/net/inet_frag.h
@@ -117,8 +117,15 @@ int fqdir_init(struct fqdir **fqdirp, struct inet_frags *f, struct net *net);
static inline void fqdir_pre_exit(struct fqdir *fqdir)
{
- fqdir->high_thresh = 0; /* prevent creation of new frags */
- fqdir->dead = true;
+ /* Prevent creation of new frags.
+ * Pairs with READ_ONCE() in inet_frag_find().
+ */
+ WRITE_ONCE(fqdir->high_thresh, 0);
+
+ /* Pairs with READ_ONCE() in inet_frag_kill(), ip_expire()
+ * and ip6frag_expire_frag_queue().
+ */
+ WRITE_ONCE(fqdir->dead, true);
}
void fqdir_exit(struct fqdir *fqdir);
diff --git a/include/net/ipv6_frag.h b/include/net/ipv6_frag.h
index 851029ecff13..0a4779175a52 100644
--- a/include/net/ipv6_frag.h
+++ b/include/net/ipv6_frag.h
@@ -67,7 +67,8 @@ ip6frag_expire_frag_queue(struct net *net, struct frag_queue *fq)
struct sk_buff *head;
rcu_read_lock();
- if (fq->q.fqdir->dead)
+ /* Paired with the WRITE_ONCE() in fqdir_pre_exit(). */
+ if (READ_ONCE(fq->q.fqdir->dead))
goto out_rcu_unlock;
spin_lock(&fq->q.lock);
diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h
index 05f18e81f3e8..9e7b21c0b3a6 100644
--- a/include/net/pkt_sched.h
+++ b/include/net/pkt_sched.h
@@ -197,7 +197,10 @@ struct tc_skb_cb {
struct qdisc_skb_cb qdisc_cb;
u16 mru;
- bool post_ct;
+ u8 post_ct:1;
+ u8 post_ct_snat:1;
+ u8 post_ct_dnat:1;
+ u16 zone; /* Only valid if post_ct = true */
};
static inline struct tc_skb_cb *tc_skb_cb(const struct sk_buff *skb)
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index 6e7cd0033357..4121ffd0faf8 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -1260,6 +1260,7 @@ struct psched_ratecfg {
u64 rate_bytes_ps; /* bytes per second */
u32 mult;
u16 overhead;
+ u16 mpu;
u8 linklayer;
u8 shift;
};
@@ -1269,6 +1270,9 @@ static inline u64 psched_l2t_ns(const struct psched_ratecfg *r,
{
len += r->overhead;
+ if (len < r->mpu)
+ len = r->mpu;
+
if (unlikely(r->linklayer == TC_LINKLAYER_ATM))
return ((u64)(DIV_ROUND_UP(len,48)*53) * r->mult) >> r->shift;
@@ -1291,6 +1295,7 @@ static inline void psched_ratecfg_getrate(struct tc_ratespec *res,
res->rate = min_t(u64, r->rate_bytes_ps, ~0U);
res->overhead = r->overhead;
+ res->mpu = r->mpu;
res->linklayer = (r->linklayer & TC_LINKLAYER_MASK);
}
diff --git a/include/net/seg6.h b/include/net/seg6.h
index 9d19c15e8545..af668f17b398 100644
--- a/include/net/seg6.h
+++ b/include/net/seg6.h
@@ -58,9 +58,30 @@ extern int seg6_local_init(void);
extern void seg6_local_exit(void);
extern bool seg6_validate_srh(struct ipv6_sr_hdr *srh, int len, bool reduced);
+extern struct ipv6_sr_hdr *seg6_get_srh(struct sk_buff *skb, int flags);
+extern void seg6_icmp_srh(struct sk_buff *skb, struct inet6_skb_parm *opt);
extern int seg6_do_srh_encap(struct sk_buff *skb, struct ipv6_sr_hdr *osrh,
int proto);
extern int seg6_do_srh_inline(struct sk_buff *skb, struct ipv6_sr_hdr *osrh);
extern int seg6_lookup_nexthop(struct sk_buff *skb, struct in6_addr *nhaddr,
u32 tbl_id);
+
+/* If the packet which invoked an ICMP error contains an SRH return
+ * the true destination address from within the SRH, otherwise use the
+ * destination address in the IP header.
+ */
+static inline const struct in6_addr *seg6_get_daddr(struct sk_buff *skb,
+ struct inet6_skb_parm *opt)
+{
+ struct ipv6_sr_hdr *srh;
+
+ if (opt->flags & IP6SKB_SEG6) {
+ srh = (struct ipv6_sr_hdr *)(skb->data + opt->srhoff);
+ return &srh->segments[0];
+ }
+
+ return NULL;
+}
+
+
#endif
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index 2308210793a0..2b1ce8534993 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -200,6 +200,11 @@ struct xfrm_state {
struct xfrm_algo_aead *aead;
const char *geniv;
+ /* mapping change rate limiting */
+ __be16 new_mapping_sport;
+ u32 new_mapping; /* seconds */
+ u32 mapping_maxage; /* seconds for input SA */
+
/* Data for encapsulator */
struct xfrm_encap_tmpl *encap;
struct sock __rcu *encap_sk;
@@ -1162,7 +1167,7 @@ static inline int xfrm_route_forward(struct sk_buff *skb, unsigned short family)
{
struct net *net = dev_net(skb->dev);
- if (xfrm_default_allow(net, XFRM_POLICY_FWD))
+ if (xfrm_default_allow(net, XFRM_POLICY_OUT))
return !net->xfrm.policy_count[XFRM_POLICY_OUT] ||
(skb_dst(skb)->flags & DST_NOXFRM) ||
__xfrm_route_forward(skb, family);
diff --git a/include/sound/hda_codec.h b/include/sound/hda_codec.h
index 0e45963bb767..82d9daa17851 100644
--- a/include/sound/hda_codec.h
+++ b/include/sound/hda_codec.h
@@ -8,7 +8,7 @@
#ifndef __SOUND_HDA_CODEC_H
#define __SOUND_HDA_CODEC_H
-#include <linux/kref.h>
+#include <linux/refcount.h>
#include <linux/mod_devicetable.h>
#include <sound/info.h>
#include <sound/control.h>
@@ -166,8 +166,8 @@ struct hda_pcm {
bool own_chmap; /* codec driver provides own channel maps */
/* private: */
struct hda_codec *codec;
- struct kref kref;
struct list_head list;
+ unsigned int disconnected:1;
};
/* codec information */
@@ -187,6 +187,8 @@ struct hda_codec {
/* PCM to create, set by patch_ops.build_pcms callback */
struct list_head pcm_list_head;
+ refcount_t pcm_ref;
+ wait_queue_head_t remove_sleep;
/* codec specific info */
void *spec;
@@ -420,7 +422,7 @@ void snd_hda_codec_cleanup_for_unbind(struct hda_codec *codec);
static inline void snd_hda_codec_pcm_get(struct hda_pcm *pcm)
{
- kref_get(&pcm->kref);
+ refcount_inc(&pcm->codec->pcm_ref);
}
void snd_hda_codec_pcm_put(struct hda_pcm *pcm);
diff --git a/include/trace/events/cgroup.h b/include/trace/events/cgroup.h
index 7f42a3de59e6..dd7d7c9efecd 100644
--- a/include/trace/events/cgroup.h
+++ b/include/trace/events/cgroup.h
@@ -59,8 +59,8 @@ DECLARE_EVENT_CLASS(cgroup,
TP_STRUCT__entry(
__field( int, root )
- __field( int, id )
__field( int, level )
+ __field( u64, id )
__string( path, path )
),
@@ -71,7 +71,7 @@ DECLARE_EVENT_CLASS(cgroup,
__assign_str(path, path);
),
- TP_printk("root=%d id=%d level=%d path=%s",
+ TP_printk("root=%d id=%llu level=%d path=%s",
__entry->root, __entry->id, __entry->level, __get_str(path))
);
@@ -126,8 +126,8 @@ DECLARE_EVENT_CLASS(cgroup_migrate,
TP_STRUCT__entry(
__field( int, dst_root )
- __field( int, dst_id )
__field( int, dst_level )
+ __field( u64, dst_id )
__field( int, pid )
__string( dst_path, path )
__string( comm, task->comm )
@@ -142,7 +142,7 @@ DECLARE_EVENT_CLASS(cgroup_migrate,
__assign_str(comm, task->comm);
),
- TP_printk("dst_root=%d dst_id=%d dst_level=%d dst_path=%s pid=%d comm=%s",
+ TP_printk("dst_root=%d dst_id=%llu dst_level=%d dst_path=%s pid=%d comm=%s",
__entry->dst_root, __entry->dst_id, __entry->dst_level,
__get_str(dst_path), __entry->pid, __get_str(comm))
);
@@ -171,8 +171,8 @@ DECLARE_EVENT_CLASS(cgroup_event,
TP_STRUCT__entry(
__field( int, root )
- __field( int, id )
__field( int, level )
+ __field( u64, id )
__string( path, path )
__field( int, val )
),
@@ -185,7 +185,7 @@ DECLARE_EVENT_CLASS(cgroup_event,
__entry->val = val;
),
- TP_printk("root=%d id=%d level=%d path=%s val=%d",
+ TP_printk("root=%d id=%llu level=%d path=%s val=%d",
__entry->root, __entry->id, __entry->level, __get_str(path),
__entry->val)
);
diff --git a/include/uapi/linux/xfrm.h b/include/uapi/linux/xfrm.h
index eda0426ec4c2..4e29d7851890 100644
--- a/include/uapi/linux/xfrm.h
+++ b/include/uapi/linux/xfrm.h
@@ -313,6 +313,7 @@ enum xfrm_attr_type_t {
XFRMA_SET_MARK, /* __u32 */
XFRMA_SET_MARK_MASK, /* __u32 */
XFRMA_IF_ID, /* __u32 */
+ XFRMA_MTIMER_THRESH, /* __u32 in seconds for input SA */
__XFRMA_MAX
#define XFRMA_OUTPUT_MARK XFRMA_SET_MARK /* Compatibility */
diff --git a/kernel/audit.c b/kernel/audit.c
index 4cebadb5f30d..eab7282668ab 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -1540,6 +1540,20 @@ static void audit_receive(struct sk_buff *skb)
nlh = nlmsg_next(nlh, &len);
}
audit_ctl_unlock();
+
+ /* can't block with the ctrl lock, so penalize the sender now */
+ if (audit_backlog_limit &&
+ (skb_queue_len(&audit_queue) > audit_backlog_limit)) {
+ DECLARE_WAITQUEUE(wait, current);
+
+ /* wake kauditd to try and flush the queue */
+ wake_up_interruptible(&kauditd_wait);
+
+ add_wait_queue_exclusive(&audit_backlog_wait, &wait);
+ set_current_state(TASK_UNINTERRUPTIBLE);
+ schedule_timeout(audit_backlog_wait_time);
+ remove_wait_queue(&audit_backlog_wait, &wait);
+ }
}
/* Log information about who is connecting to the audit multicast socket */
@@ -1824,7 +1838,9 @@ struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask,
* task_tgid_vnr() since auditd_pid is set in audit_receive_msg()
* using a PID anchored in the caller's namespace
* 2. generator holding the audit_cmd_mutex - we don't want to block
- * while holding the mutex */
+ * while holding the mutex, although we do penalize the sender
+ * later in audit_receive() when it is safe to block
+ */
if (!(auditd_test_task(current) || audit_ctl_owner_current())) {
long stime = audit_backlog_wait_time;
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
index dfe61df4f974..b8ed4da63bc8 100644
--- a/kernel/bpf/btf.c
+++ b/kernel/bpf/btf.c
@@ -4332,8 +4332,7 @@ static struct btf *btf_parse(bpfptr_t btf_data, u32 btf_data_size,
log->len_total = log_size;
/* log attributes have to be sane */
- if (log->len_total < 128 || log->len_total > UINT_MAX >> 8 ||
- !log->level || !log->ubuf) {
+ if (!bpf_verifier_log_attr_valid(log)) {
err = -EINVAL;
goto errout;
}
diff --git a/kernel/bpf/inode.c b/kernel/bpf/inode.c
index 80da1db47c68..5a8d9f7467bf 100644
--- a/kernel/bpf/inode.c
+++ b/kernel/bpf/inode.c
@@ -648,12 +648,22 @@ static int bpf_parse_param(struct fs_context *fc, struct fs_parameter *param)
int opt;
opt = fs_parse(fc, bpf_fs_parameters, param, &result);
- if (opt < 0)
+ if (opt < 0) {
/* We might like to report bad mount options here, but
* traditionally we've ignored all mount options, so we'd
* better continue to ignore non-existing options for bpf.
*/
- return opt == -ENOPARAM ? 0 : opt;
+ if (opt == -ENOPARAM) {
+ opt = vfs_parse_fs_param_source(fc, param);
+ if (opt != -ENOPARAM)
+ return opt;
+
+ return 0;
+ }
+
+ if (opt < 0)
+ return opt;
+ }
switch (opt) {
case OPT_MODE:
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index b84e63d62b8a..670721e39c0e 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -5785,6 +5785,7 @@ static int __check_func_call(struct bpf_verifier_env *env, struct bpf_insn *insn
}
if (insn->code == (BPF_JMP | BPF_CALL) &&
+ insn->src_reg == 0 &&
insn->imm == BPF_FUNC_timer_set_callback) {
struct bpf_verifier_state *async_cb;
@@ -8771,15 +8772,15 @@ static void mark_ptr_or_null_reg(struct bpf_func_state *state,
{
if (reg_type_may_be_null(reg->type) && reg->id == id &&
!WARN_ON_ONCE(!reg->id)) {
- /* Old offset (both fixed and variable parts) should
- * have been known-zero, because we don't allow pointer
- * arithmetic on pointers that might be NULL.
- */
if (WARN_ON_ONCE(reg->smin_value || reg->smax_value ||
!tnum_equals_const(reg->var_off, 0) ||
reg->off)) {
- __mark_reg_known_zero(reg);
- reg->off = 0;
+ /* Old offset (both fixed and variable parts) should
+ * have been known-zero, because we don't allow pointer
+ * arithmetic on pointers that might be NULL. If we
+ * see this happening, don't convert the register.
+ */
+ return;
}
if (is_null) {
reg->type = SCALAR_VALUE;
@@ -9198,9 +9199,13 @@ static int check_ld_imm(struct bpf_verifier_env *env, struct bpf_insn *insn)
return 0;
}
- if (insn->src_reg == BPF_PSEUDO_BTF_ID) {
- mark_reg_known_zero(env, regs, insn->dst_reg);
+ /* All special src_reg cases are listed below. From this point onwards
+ * we either succeed and assign a corresponding dst_reg->type after
+ * zeroing the offset, or fail and reject the program.
+ */
+ mark_reg_known_zero(env, regs, insn->dst_reg);
+ if (insn->src_reg == BPF_PSEUDO_BTF_ID) {
dst_reg->type = aux->btf_var.reg_type;
switch (dst_reg->type) {
case PTR_TO_MEM:
@@ -9237,7 +9242,6 @@ static int check_ld_imm(struct bpf_verifier_env *env, struct bpf_insn *insn)
}
map = env->used_maps[aux->map_index];
- mark_reg_known_zero(env, regs, insn->dst_reg);
dst_reg->map_ptr = map;
if (insn->src_reg == BPF_PSEUDO_MAP_VALUE ||
@@ -13759,11 +13763,11 @@ int bpf_check(struct bpf_prog **prog, union bpf_attr *attr, bpfptr_t uattr)
log->ubuf = (char __user *) (unsigned long) attr->log_buf;
log->len_total = attr->log_size;
- ret = -EINVAL;
/* log attributes have to be sane */
- if (log->len_total < 128 || log->len_total > UINT_MAX >> 2 ||
- !log->level || !log->ubuf || log->level & ~BPF_LOG_MASK)
+ if (!bpf_verifier_log_attr_valid(log)) {
+ ret = -EINVAL;
goto err_unlock;
+ }
}
if (IS_ERR(btf_vmlinux)) {
diff --git a/kernel/dma/pool.c b/kernel/dma/pool.c
index 5f84e6cdb78e..4d40dcce7604 100644
--- a/kernel/dma/pool.c
+++ b/kernel/dma/pool.c
@@ -203,7 +203,7 @@ static int __init dma_atomic_pool_init(void)
GFP_KERNEL);
if (!atomic_pool_kernel)
ret = -ENOMEM;
- if (IS_ENABLED(CONFIG_ZONE_DMA)) {
+ if (has_managed_dma()) {
atomic_pool_dma = __dma_atomic_pool_init(atomic_pool_size,
GFP_KERNEL | GFP_DMA);
if (!atomic_pool_dma)
@@ -226,7 +226,7 @@ static inline struct gen_pool *dma_guess_pool(struct gen_pool *prev, gfp_t gfp)
if (prev == NULL) {
if (IS_ENABLED(CONFIG_ZONE_DMA32) && (gfp & GFP_DMA32))
return atomic_pool_dma32;
- if (IS_ENABLED(CONFIG_ZONE_DMA) && (gfp & GFP_DMA))
+ if (atomic_pool_dma && (gfp & GFP_DMA))
return atomic_pool_dma;
return atomic_pool_kernel;
}
diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
index 968696ace8f3..f922937eb39a 100644
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -46,6 +46,7 @@
#include <linux/oom.h>
#include <linux/tick.h>
#include <linux/rcupdate_trace.h>
+#include <linux/nmi.h>
#include "rcu.h"
@@ -109,6 +110,8 @@ torture_param(int, shutdown_secs, 0, "Shutdown time (s), <= zero to disable.");
torture_param(int, stall_cpu, 0, "Stall duration (s), zero to disable.");
torture_param(int, stall_cpu_holdoff, 10,
"Time to wait before starting stall (s).");
+torture_param(bool, stall_no_softlockup, false,
+ "Avoid softlockup warning during cpu stall.");
torture_param(int, stall_cpu_irqsoff, 0, "Disable interrupts while stalling.");
torture_param(int, stall_cpu_block, 0, "Sleep while stalling.");
torture_param(int, stall_gp_kthread, 0,
@@ -2052,6 +2055,8 @@ static int rcu_torture_stall(void *args)
#else
schedule_timeout_uninterruptible(HZ);
#endif
+ } else if (stall_no_softlockup) {
+ touch_softlockup_watchdog();
}
if (stall_cpu_irqsoff)
local_irq_enable();
diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h
index 454b516ea566..16f94118ca34 100644
--- a/kernel/rcu/tree_exp.h
+++ b/kernel/rcu/tree_exp.h
@@ -387,6 +387,7 @@ static void sync_rcu_exp_select_node_cpus(struct work_struct *wp)
continue;
}
if (get_cpu() == cpu) {
+ mask_ofl_test |= mask;
put_cpu();
continue;
}
diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c
index 893eece65bfd..ab67d97a8442 100644
--- a/kernel/sched/cpuacct.c
+++ b/kernel/sched/cpuacct.c
@@ -21,15 +21,11 @@ static const char * const cpuacct_stat_desc[] = {
[CPUACCT_STAT_SYSTEM] = "system",
};
-struct cpuacct_usage {
- u64 usages[CPUACCT_STAT_NSTATS];
-};
-
/* track CPU usage of a group of tasks and its child groups */
struct cpuacct {
struct cgroup_subsys_state css;
/* cpuusage holds pointer to a u64-type object on every CPU */
- struct cpuacct_usage __percpu *cpuusage;
+ u64 __percpu *cpuusage;
struct kernel_cpustat __percpu *cpustat;
};
@@ -49,7 +45,7 @@ static inline struct cpuacct *parent_ca(struct cpuacct *ca)
return css_ca(ca->css.parent);
}
-static DEFINE_PER_CPU(struct cpuacct_usage, root_cpuacct_cpuusage);
+static DEFINE_PER_CPU(u64, root_cpuacct_cpuusage);
static struct cpuacct root_cpuacct = {
.cpustat = &kernel_cpustat,
.cpuusage = &root_cpuacct_cpuusage,
@@ -68,7 +64,7 @@ cpuacct_css_alloc(struct cgroup_subsys_state *parent_css)
if (!ca)
goto out;
- ca->cpuusage = alloc_percpu(struct cpuacct_usage);
+ ca->cpuusage = alloc_percpu(u64);
if (!ca->cpuusage)
goto out_free_ca;
@@ -99,7 +95,8 @@ static void cpuacct_css_free(struct cgroup_subsys_state *css)
static u64 cpuacct_cpuusage_read(struct cpuacct *ca, int cpu,
enum cpuacct_stat_index index)
{
- struct cpuacct_usage *cpuusage = per_cpu_ptr(ca->cpuusage, cpu);
+ u64 *cpuusage = per_cpu_ptr(ca->cpuusage, cpu);
+ u64 *cpustat = per_cpu_ptr(ca->cpustat, cpu)->cpustat;
u64 data;
/*
@@ -115,14 +112,17 @@ static u64 cpuacct_cpuusage_read(struct cpuacct *ca, int cpu,
raw_spin_rq_lock_irq(cpu_rq(cpu));
#endif
- if (index == CPUACCT_STAT_NSTATS) {
- int i = 0;
-
- data = 0;
- for (i = 0; i < CPUACCT_STAT_NSTATS; i++)
- data += cpuusage->usages[i];
- } else {
- data = cpuusage->usages[index];
+ switch (index) {
+ case CPUACCT_STAT_USER:
+ data = cpustat[CPUTIME_USER] + cpustat[CPUTIME_NICE];
+ break;
+ case CPUACCT_STAT_SYSTEM:
+ data = cpustat[CPUTIME_SYSTEM] + cpustat[CPUTIME_IRQ] +
+ cpustat[CPUTIME_SOFTIRQ];
+ break;
+ case CPUACCT_STAT_NSTATS:
+ data = *cpuusage;
+ break;
}
#ifndef CONFIG_64BIT
@@ -132,10 +132,14 @@ static u64 cpuacct_cpuusage_read(struct cpuacct *ca, int cpu,
return data;
}
-static void cpuacct_cpuusage_write(struct cpuacct *ca, int cpu, u64 val)
+static void cpuacct_cpuusage_write(struct cpuacct *ca, int cpu)
{
- struct cpuacct_usage *cpuusage = per_cpu_ptr(ca->cpuusage, cpu);
- int i;
+ u64 *cpuusage = per_cpu_ptr(ca->cpuusage, cpu);
+ u64 *cpustat = per_cpu_ptr(ca->cpustat, cpu)->cpustat;
+
+ /* Don't allow to reset global kernel_cpustat */
+ if (ca == &root_cpuacct)
+ return;
#ifndef CONFIG_64BIT
/*
@@ -143,9 +147,10 @@ static void cpuacct_cpuusage_write(struct cpuacct *ca, int cpu, u64 val)
*/
raw_spin_rq_lock_irq(cpu_rq(cpu));
#endif
-
- for (i = 0; i < CPUACCT_STAT_NSTATS; i++)
- cpuusage->usages[i] = val;
+ *cpuusage = 0;
+ cpustat[CPUTIME_USER] = cpustat[CPUTIME_NICE] = 0;
+ cpustat[CPUTIME_SYSTEM] = cpustat[CPUTIME_IRQ] = 0;
+ cpustat[CPUTIME_SOFTIRQ] = 0;
#ifndef CONFIG_64BIT
raw_spin_rq_unlock_irq(cpu_rq(cpu));
@@ -196,7 +201,7 @@ static int cpuusage_write(struct cgroup_subsys_state *css, struct cftype *cft,
return -EINVAL;
for_each_possible_cpu(cpu)
- cpuacct_cpuusage_write(ca, cpu, 0);
+ cpuacct_cpuusage_write(ca, cpu);
return 0;
}
@@ -243,25 +248,10 @@ static int cpuacct_all_seq_show(struct seq_file *m, void *V)
seq_puts(m, "\n");
for_each_possible_cpu(cpu) {
- struct cpuacct_usage *cpuusage = per_cpu_ptr(ca->cpuusage, cpu);
-
seq_printf(m, "%d", cpu);
-
- for (index = 0; index < CPUACCT_STAT_NSTATS; index++) {
-#ifndef CONFIG_64BIT
- /*
- * Take rq->lock to make 64-bit read safe on 32-bit
- * platforms.
- */
- raw_spin_rq_lock_irq(cpu_rq(cpu));
-#endif
-
- seq_printf(m, " %llu", cpuusage->usages[index]);
-
-#ifndef CONFIG_64BIT
- raw_spin_rq_unlock_irq(cpu_rq(cpu));
-#endif
- }
+ for (index = 0; index < CPUACCT_STAT_NSTATS; index++)
+ seq_printf(m, " %llu",
+ cpuacct_cpuusage_read(ca, cpu, index));
seq_puts(m, "\n");
}
return 0;
@@ -339,16 +329,11 @@ static struct cftype files[] = {
void cpuacct_charge(struct task_struct *tsk, u64 cputime)
{
struct cpuacct *ca;
- int index = CPUACCT_STAT_SYSTEM;
- struct pt_regs *regs = get_irq_regs() ? : task_pt_regs(tsk);
-
- if (regs && user_mode(regs))
- index = CPUACCT_STAT_USER;
rcu_read_lock();
for (ca = task_ca(tsk); ca; ca = parent_ca(ca))
- __this_cpu_add(ca->cpuusage->usages[index], cputime);
+ __this_cpu_add(*ca->cpuusage, cputime);
rcu_read_unlock();
}
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index 872e481d5098..042a6dbce8f3 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -148,10 +148,10 @@ void account_guest_time(struct task_struct *p, u64 cputime)
/* Add guest time to cpustat. */
if (task_nice(p) > 0) {
- cpustat[CPUTIME_NICE] += cputime;
+ task_group_account_field(p, CPUTIME_NICE, cputime);
cpustat[CPUTIME_GUEST_NICE] += cputime;
} else {
- cpustat[CPUTIME_USER] += cputime;
+ task_group_account_field(p, CPUTIME_USER, cputime);
cpustat[CPUTIME_GUEST] += cputime;
}
}
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 6f16dfb74246..d41f966f5866 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -6429,8 +6429,10 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target)
* pattern is IO completions.
*/
if (is_per_cpu_kthread(current) &&
+ in_task() &&
prev == smp_processor_id() &&
- this_rq()->nr_running <= 1) {
+ this_rq()->nr_running <= 1 &&
+ asym_fits_capacity(task_util, prev)) {
return prev;
}
diff --git a/kernel/sched/psi.c b/kernel/sched/psi.c
index 1652f2bb54b7..69b19d3af690 100644
--- a/kernel/sched/psi.c
+++ b/kernel/sched/psi.c
@@ -34,13 +34,19 @@
* delayed on that resource such that nobody is advancing and the CPU
* goes idle. This leaves both workload and CPU unproductive.
*
- * Naturally, the FULL state doesn't exist for the CPU resource at the
- * system level, but exist at the cgroup level, means all non-idle tasks
- * in a cgroup are delayed on the CPU resource which used by others outside
- * of the cgroup or throttled by the cgroup cpu.max configuration.
- *
* SOME = nr_delayed_tasks != 0
- * FULL = nr_delayed_tasks != 0 && nr_running_tasks == 0
+ * FULL = nr_delayed_tasks != 0 && nr_productive_tasks == 0
+ *
+ * What it means for a task to be productive is defined differently
+ * for each resource. For IO, productive means a running task. For
+ * memory, productive means a running task that isn't a reclaimer. For
+ * CPU, productive means an oncpu task.
+ *
+ * Naturally, the FULL state doesn't exist for the CPU resource at the
+ * system level, but exist at the cgroup level. At the cgroup level,
+ * FULL means all non-idle tasks in the cgroup are delayed on the CPU
+ * resource which is being used by others outside of the cgroup or
+ * throttled by the cgroup cpu.max configuration.
*
* The percentage of wallclock time spent in those compound stall
* states gives pressure numbers between 0 and 100 for each resource,
@@ -81,13 +87,13 @@
*
* threads = min(nr_nonidle_tasks, nr_cpus)
* SOME = min(nr_delayed_tasks / threads, 1)
- * FULL = (threads - min(nr_running_tasks, threads)) / threads
+ * FULL = (threads - min(nr_productive_tasks, threads)) / threads
*
* For the 257 number crunchers on 256 CPUs, this yields:
*
* threads = min(257, 256)
* SOME = min(1 / 256, 1) = 0.4%
- * FULL = (256 - min(257, 256)) / 256 = 0%
+ * FULL = (256 - min(256, 256)) / 256 = 0%
*
* For the 1 out of 4 memory-delayed tasks, this yields:
*
@@ -112,7 +118,7 @@
* For each runqueue, we track:
*
* tSOME[cpu] = time(nr_delayed_tasks[cpu] != 0)
- * tFULL[cpu] = time(nr_delayed_tasks[cpu] && !nr_running_tasks[cpu])
+ * tFULL[cpu] = time(nr_delayed_tasks[cpu] && !nr_productive_tasks[cpu])
* tNONIDLE[cpu] = time(nr_nonidle_tasks[cpu] != 0)
*
* and then periodically aggregate:
@@ -233,7 +239,8 @@ static bool test_state(unsigned int *tasks, enum psi_states state)
case PSI_MEM_SOME:
return unlikely(tasks[NR_MEMSTALL]);
case PSI_MEM_FULL:
- return unlikely(tasks[NR_MEMSTALL] && !tasks[NR_RUNNING]);
+ return unlikely(tasks[NR_MEMSTALL] &&
+ tasks[NR_RUNNING] == tasks[NR_MEMSTALL_RUNNING]);
case PSI_CPU_SOME:
return unlikely(tasks[NR_RUNNING] > tasks[NR_ONCPU]);
case PSI_CPU_FULL:
@@ -710,10 +717,11 @@ static void psi_group_change(struct psi_group *group, int cpu,
if (groupc->tasks[t]) {
groupc->tasks[t]--;
} else if (!psi_bug) {
- printk_deferred(KERN_ERR "psi: task underflow! cpu=%d t=%d tasks=[%u %u %u %u] clear=%x set=%x\n",
+ printk_deferred(KERN_ERR "psi: task underflow! cpu=%d t=%d tasks=[%u %u %u %u %u] clear=%x set=%x\n",
cpu, t, groupc->tasks[0],
groupc->tasks[1], groupc->tasks[2],
- groupc->tasks[3], clear, set);
+ groupc->tasks[3], groupc->tasks[4],
+ clear, set);
psi_bug = 1;
}
}
@@ -854,12 +862,15 @@ void psi_task_switch(struct task_struct *prev, struct task_struct *next,
int clear = TSK_ONCPU, set = 0;
/*
- * When we're going to sleep, psi_dequeue() lets us handle
- * TSK_RUNNING and TSK_IOWAIT here, where we can combine it
- * with TSK_ONCPU and save walking common ancestors twice.
+ * When we're going to sleep, psi_dequeue() lets us
+ * handle TSK_RUNNING, TSK_MEMSTALL_RUNNING and
+ * TSK_IOWAIT here, where we can combine it with
+ * TSK_ONCPU and save walking common ancestors twice.
*/
if (sleep) {
clear |= TSK_RUNNING;
+ if (prev->in_memstall)
+ clear |= TSK_MEMSTALL_RUNNING;
if (prev->in_iowait)
set |= TSK_IOWAIT;
}
@@ -908,7 +919,7 @@ void psi_memstall_enter(unsigned long *flags)
rq = this_rq_lock_irq(&rf);
current->in_memstall = 1;
- psi_task_change(current, 0, TSK_MEMSTALL);
+ psi_task_change(current, 0, TSK_MEMSTALL | TSK_MEMSTALL_RUNNING);
rq_unlock_irq(rq, &rf);
}
@@ -937,7 +948,7 @@ void psi_memstall_leave(unsigned long *flags)
rq = this_rq_lock_irq(&rf);
current->in_memstall = 0;
- psi_task_change(current, TSK_MEMSTALL, 0);
+ psi_task_change(current, TSK_MEMSTALL | TSK_MEMSTALL_RUNNING, 0);
rq_unlock_irq(rq, &rf);
}
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index bfef3f39b555..54f9bb3f1560 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -52,11 +52,8 @@ void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime)
rt_b->rt_period_timer.function = sched_rt_period_timer;
}
-static void start_rt_bandwidth(struct rt_bandwidth *rt_b)
+static inline void do_start_rt_bandwidth(struct rt_bandwidth *rt_b)
{
- if (!rt_bandwidth_enabled() || rt_b->rt_runtime == RUNTIME_INF)
- return;
-
raw_spin_lock(&rt_b->rt_runtime_lock);
if (!rt_b->rt_period_active) {
rt_b->rt_period_active = 1;
@@ -75,6 +72,14 @@ static void start_rt_bandwidth(struct rt_bandwidth *rt_b)
raw_spin_unlock(&rt_b->rt_runtime_lock);
}
+static void start_rt_bandwidth(struct rt_bandwidth *rt_b)
+{
+ if (!rt_bandwidth_enabled() || rt_b->rt_runtime == RUNTIME_INF)
+ return;
+
+ do_start_rt_bandwidth(rt_b);
+}
+
void init_rt_rq(struct rt_rq *rt_rq)
{
struct rt_prio_array *array;
@@ -1029,13 +1034,17 @@ static void update_curr_rt(struct rq *rq)
for_each_sched_rt_entity(rt_se) {
struct rt_rq *rt_rq = rt_rq_of_se(rt_se);
+ int exceeded;
if (sched_rt_runtime(rt_rq) != RUNTIME_INF) {
raw_spin_lock(&rt_rq->rt_runtime_lock);
rt_rq->rt_time += delta_exec;
- if (sched_rt_runtime_exceeded(rt_rq))
+ exceeded = sched_rt_runtime_exceeded(rt_rq);
+ if (exceeded)
resched_curr(rq);
raw_spin_unlock(&rt_rq->rt_runtime_lock);
+ if (exceeded)
+ do_start_rt_bandwidth(sched_rt_bandwidth(rt_rq));
}
}
}
@@ -2785,8 +2794,12 @@ static int sched_rt_global_validate(void)
static void sched_rt_do_global(void)
{
+ unsigned long flags;
+
+ raw_spin_lock_irqsave(&def_rt_bandwidth.rt_runtime_lock, flags);
def_rt_bandwidth.rt_runtime = global_rt_runtime();
def_rt_bandwidth.rt_period = ns_to_ktime(global_rt_period());
+ raw_spin_unlock_irqrestore(&def_rt_bandwidth.rt_runtime_lock, flags);
}
int sched_rt_handler(struct ctl_table *table, int write, void *buffer,
diff --git a/kernel/sched/stats.h b/kernel/sched/stats.h
index d8f8eb0c655b..606a3982d13a 100644
--- a/kernel/sched/stats.h
+++ b/kernel/sched/stats.h
@@ -69,6 +69,9 @@ static inline void psi_enqueue(struct task_struct *p, bool wakeup)
if (static_branch_likely(&psi_disabled))
return;
+ if (p->in_memstall)
+ set |= TSK_MEMSTALL_RUNNING;
+
if (!wakeup || p->sched_psi_wake_requeue) {
if (p->in_memstall)
set |= TSK_MEMSTALL;
@@ -99,7 +102,7 @@ static inline void psi_dequeue(struct task_struct *p, bool sleep)
return;
if (p->in_memstall)
- clear |= TSK_MEMSTALL;
+ clear |= (TSK_MEMSTALL | TSK_MEMSTALL_RUNNING);
psi_task_change(p, clear, 0);
}
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
index b8a14d2fb5ba..bcad1a1e5dcf 100644
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -107,7 +107,7 @@ static u64 suspend_start;
* This delay could be due to SMIs, NMIs, or to VCPU preemptions. Used as
* a lower bound for cs->uncertainty_margin values when registering clocks.
*/
-#define WATCHDOG_MAX_SKEW (50 * NSEC_PER_USEC)
+#define WATCHDOG_MAX_SKEW (100 * NSEC_PER_USEC)
#ifdef CONFIG_CLOCKSOURCE_WATCHDOG
static void clocksource_watchdog_work(struct work_struct *work);
@@ -205,17 +205,24 @@ EXPORT_SYMBOL_GPL(max_cswd_read_retries);
static int verify_n_cpus = 8;
module_param(verify_n_cpus, int, 0644);
-static bool cs_watchdog_read(struct clocksource *cs, u64 *csnow, u64 *wdnow)
+enum wd_read_status {
+ WD_READ_SUCCESS,
+ WD_READ_UNSTABLE,
+ WD_READ_SKIP
+};
+
+static enum wd_read_status cs_watchdog_read(struct clocksource *cs, u64 *csnow, u64 *wdnow)
{
unsigned int nretries;
- u64 wd_end, wd_delta;
- int64_t wd_delay;
+ u64 wd_end, wd_end2, wd_delta;
+ int64_t wd_delay, wd_seq_delay;
for (nretries = 0; nretries <= max_cswd_read_retries; nretries++) {
local_irq_disable();
*wdnow = watchdog->read(watchdog);
*csnow = cs->read(cs);
wd_end = watchdog->read(watchdog);
+ wd_end2 = watchdog->read(watchdog);
local_irq_enable();
wd_delta = clocksource_delta(wd_end, *wdnow, watchdog->mask);
@@ -226,13 +233,34 @@ static bool cs_watchdog_read(struct clocksource *cs, u64 *csnow, u64 *wdnow)
pr_warn("timekeeping watchdog on CPU%d: %s retried %d times before success\n",
smp_processor_id(), watchdog->name, nretries);
}
- return true;
+ return WD_READ_SUCCESS;
}
+
+ /*
+ * Now compute delay in consecutive watchdog read to see if
+ * there is too much external interferences that cause
+ * significant delay in reading both clocksource and watchdog.
+ *
+ * If consecutive WD read-back delay > WATCHDOG_MAX_SKEW/2,
+ * report system busy, reinit the watchdog and skip the current
+ * watchdog test.
+ */
+ wd_delta = clocksource_delta(wd_end2, wd_end, watchdog->mask);
+ wd_seq_delay = clocksource_cyc2ns(wd_delta, watchdog->mult, watchdog->shift);
+ if (wd_seq_delay > WATCHDOG_MAX_SKEW/2)
+ goto skip_test;
}
pr_warn("timekeeping watchdog on CPU%d: %s read-back delay of %lldns, attempt %d, marking unstable\n",
smp_processor_id(), watchdog->name, wd_delay, nretries);
- return false;
+ return WD_READ_UNSTABLE;
+
+skip_test:
+ pr_info("timekeeping watchdog on CPU%d: %s wd-wd read-back delay of %lldns\n",
+ smp_processor_id(), watchdog->name, wd_seq_delay);
+ pr_info("wd-%s-wd read-back delay of %lldns, clock-skew test skipped!\n",
+ cs->name, wd_delay);
+ return WD_READ_SKIP;
}
static u64 csnow_mid;
@@ -356,6 +384,7 @@ static void clocksource_watchdog(struct timer_list *unused)
int next_cpu, reset_pending;
int64_t wd_nsec, cs_nsec;
struct clocksource *cs;
+ enum wd_read_status read_ret;
u32 md;
spin_lock(&watchdog_lock);
@@ -373,9 +402,12 @@ static void clocksource_watchdog(struct timer_list *unused)
continue;
}
- if (!cs_watchdog_read(cs, &csnow, &wdnow)) {
- /* Clock readout unreliable, so give it up. */
- __clocksource_unstable(cs);
+ read_ret = cs_watchdog_read(cs, &csnow, &wdnow);
+
+ if (read_ret != WD_READ_SUCCESS) {
+ if (read_ret == WD_READ_UNSTABLE)
+ /* Clock readout unreliable, so give it up. */
+ __clocksource_unstable(cs);
continue;
}
diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
index 6c1038526d1f..5a18b861fcf7 100644
--- a/kernel/trace/bpf_trace.c
+++ b/kernel/trace/bpf_trace.c
@@ -1322,9 +1322,6 @@ static const struct bpf_func_proto bpf_perf_prog_read_value_proto = {
BPF_CALL_4(bpf_read_branch_records, struct bpf_perf_event_data_kern *, ctx,
void *, buf, u32, size, u64, flags)
{
-#ifndef CONFIG_X86
- return -ENOENT;
-#else
static const u32 br_entry_size = sizeof(struct perf_branch_entry);
struct perf_branch_stack *br_stack = ctx->data->br_stack;
u32 to_copy;
@@ -1333,7 +1330,7 @@ BPF_CALL_4(bpf_read_branch_records, struct bpf_perf_event_data_kern *, ctx,
return -EINVAL;
if (unlikely(!br_stack))
- return -EINVAL;
+ return -ENOENT;
if (flags & BPF_F_GET_BRANCH_RECORDS_SIZE)
return br_stack->nr * br_entry_size;
@@ -1345,7 +1342,6 @@ BPF_CALL_4(bpf_read_branch_records, struct bpf_perf_event_data_kern *, ctx,
memcpy(buf, br_stack->entries, to_copy);
return to_copy;
-#endif
}
static const struct bpf_func_proto bpf_read_branch_records_proto = {
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index 92caef33b68c..385981c293ba 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -1175,15 +1175,18 @@ static int probes_profile_seq_show(struct seq_file *m, void *v)
{
struct dyn_event *ev = v;
struct trace_kprobe *tk;
+ unsigned long nmissed;
if (!is_trace_kprobe(ev))
return 0;
tk = to_trace_kprobe(ev);
+ nmissed = trace_kprobe_is_return(tk) ?
+ tk->rp.kp.nmissed + tk->rp.nmissed : tk->rp.kp.nmissed;
seq_printf(m, " %-44s %15lu %15lu\n",
trace_probe_name(&tk->tp),
trace_kprobe_nhit(tk),
- tk->rp.kp.nmissed);
+ nmissed);
return 0;
}
diff --git a/kernel/trace/trace_osnoise.c b/kernel/trace/trace_osnoise.c
index c4f14fb98aaa..65a518649997 100644
--- a/kernel/trace/trace_osnoise.c
+++ b/kernel/trace/trace_osnoise.c
@@ -1932,6 +1932,13 @@ static int osnoise_hook_events(void)
return -EINVAL;
}
+static void osnoise_unhook_events(void)
+{
+ unhook_thread_events();
+ unhook_softirq_events();
+ unhook_irq_events();
+}
+
static int __osnoise_tracer_start(struct trace_array *tr)
{
int retval;
@@ -1949,7 +1956,14 @@ static int __osnoise_tracer_start(struct trace_array *tr)
retval = start_per_cpu_kthreads(tr);
if (retval) {
- unhook_irq_events();
+ trace_osnoise_callback_enabled = false;
+ /*
+ * Make sure that ftrace_nmi_enter/exit() see
+ * trace_osnoise_callback_enabled as false before continuing.
+ */
+ barrier();
+
+ osnoise_unhook_events();
return retval;
}
@@ -1981,9 +1995,7 @@ static void osnoise_tracer_stop(struct trace_array *tr)
stop_per_cpu_kthreads();
- unhook_irq_events();
- unhook_softirq_events();
- unhook_thread_events();
+ osnoise_unhook_events();
osnoise_busy = false;
}
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
index 8bfcd3b09422..f755bde42fd0 100644
--- a/kernel/trace/trace_syscalls.c
+++ b/kernel/trace/trace_syscalls.c
@@ -323,8 +323,7 @@ static void ftrace_syscall_enter(void *data, struct pt_regs *regs, long id)
trace_ctx = tracing_gen_ctx();
- buffer = tr->array_buffer.buffer;
- event = trace_buffer_lock_reserve(buffer,
+ event = trace_event_buffer_lock_reserve(&buffer, trace_file,
sys_data->enter_event->event.type, size, trace_ctx);
if (!event)
return;
@@ -367,8 +366,7 @@ static void ftrace_syscall_exit(void *data, struct pt_regs *regs, long ret)
trace_ctx = tracing_gen_ctx();
- buffer = tr->array_buffer.buffer;
- event = trace_buffer_lock_reserve(buffer,
+ event = trace_event_buffer_lock_reserve(&buffer, trace_file,
sys_data->exit_event->event.type, sizeof(*entry),
trace_ctx);
if (!event)
diff --git a/kernel/tsacct.c b/kernel/tsacct.c
index 257ffb993ea2..fd2f7a052fdd 100644
--- a/kernel/tsacct.c
+++ b/kernel/tsacct.c
@@ -38,11 +38,10 @@ void bacct_add_tsk(struct user_namespace *user_ns,
stats->ac_btime = clamp_t(time64_t, btime, 0, U32_MAX);
stats->ac_btime64 = btime;
- if (thread_group_leader(tsk)) {
+ if (tsk->flags & PF_EXITING)
stats->ac_exitcode = tsk->exit_code;
- if (tsk->flags & PF_FORKNOEXEC)
- stats->ac_flag |= AFORK;
- }
+ if (thread_group_leader(tsk) && (tsk->flags & PF_FORKNOEXEC))
+ stats->ac_flag |= AFORK;
if (tsk->flags & PF_SUPERPRIV)
stats->ac_flag |= ASU;
if (tsk->flags & PF_DUMPCORE)
diff --git a/lib/kunit/test.c b/lib/kunit/test.c
index f246b847024e..9aef816e573c 100644
--- a/lib/kunit/test.c
+++ b/lib/kunit/test.c
@@ -504,16 +504,18 @@ int kunit_run_tests(struct kunit_suite *suite)
struct kunit_result_stats param_stats = { 0 };
test_case->status = KUNIT_SKIPPED;
- if (test_case->generate_params) {
+ if (!test_case->generate_params) {
+ /* Non-parameterised test. */
+ kunit_run_case_catch_errors(suite, test_case, &test);
+ kunit_update_stats(¶m_stats, test.status);
+ } else {
/* Get initial param. */
param_desc[0] = '\0';
test.param_value = test_case->generate_params(NULL, param_desc);
- }
- do {
- kunit_run_case_catch_errors(suite, test_case, &test);
+ while (test.param_value) {
+ kunit_run_case_catch_errors(suite, test_case, &test);
- if (test_case->generate_params) {
if (param_desc[0] == '\0') {
snprintf(param_desc, sizeof(param_desc),
"param-%d", test.param_index);
@@ -530,11 +532,11 @@ int kunit_run_tests(struct kunit_suite *suite)
param_desc[0] = '\0';
test.param_value = test_case->generate_params(test.param_value, param_desc);
test.param_index++;
- }
- kunit_update_stats(¶m_stats, test.status);
+ kunit_update_stats(¶m_stats, test.status);
+ }
+ }
- } while (test.param_value);
kunit_print_test_stats(&test, param_stats);
diff --git a/lib/logic_iomem.c b/lib/logic_iomem.c
index 9bdfde0c0f86..549b22d4bcde 100644
--- a/lib/logic_iomem.c
+++ b/lib/logic_iomem.c
@@ -21,15 +21,15 @@ struct logic_iomem_area {
#define AREA_SHIFT 24
#define MAX_AREA_SIZE (1 << AREA_SHIFT)
-#define MAX_AREAS ((1ULL<<32) / MAX_AREA_SIZE)
+#define MAX_AREAS ((1U << 31) / MAX_AREA_SIZE)
#define AREA_BITS ((MAX_AREAS - 1) << AREA_SHIFT)
#define AREA_MASK (MAX_AREA_SIZE - 1)
#ifdef CONFIG_64BIT
#define IOREMAP_BIAS 0xDEAD000000000000UL
#define IOREMAP_MASK 0xFFFFFFFF00000000UL
#else
-#define IOREMAP_BIAS 0
-#define IOREMAP_MASK 0
+#define IOREMAP_BIAS 0x80000000UL
+#define IOREMAP_MASK 0x80000000UL
#endif
static DEFINE_MUTEX(regions_mtx);
@@ -79,7 +79,7 @@ static void __iomem *real_ioremap(phys_addr_t offset, size_t size)
static void real_iounmap(void __iomem *addr)
{
WARN(1, "invalid iounmap for addr 0x%llx\n",
- (unsigned long long __force)addr);
+ (unsigned long long)(uintptr_t __force)addr);
}
#endif /* CONFIG_LOGIC_IOMEM_FALLBACK */
@@ -173,7 +173,7 @@ EXPORT_SYMBOL(iounmap);
static u##sz real_raw_read ## op(const volatile void __iomem *addr) \
{ \
WARN(1, "Invalid read" #op " at address %llx\n", \
- (unsigned long long __force)addr); \
+ (unsigned long long)(uintptr_t __force)addr); \
return (u ## sz)~0ULL; \
} \
\
@@ -181,7 +181,8 @@ static void real_raw_write ## op(u ## sz val, \
volatile void __iomem *addr) \
{ \
WARN(1, "Invalid writeq" #op " of 0x%llx at address %llx\n", \
- (unsigned long long)val, (unsigned long long __force)addr);\
+ (unsigned long long)val, \
+ (unsigned long long)(uintptr_t __force)addr);\
} \
MAKE_FALLBACK(b, 8);
@@ -194,14 +195,14 @@ MAKE_FALLBACK(q, 64);
static void real_memset_io(volatile void __iomem *addr, int value, size_t size)
{
WARN(1, "Invalid memset_io at address 0x%llx\n",
- (unsigned long long __force)addr);
+ (unsigned long long)(uintptr_t __force)addr);
}
static void real_memcpy_fromio(void *buffer, const volatile void __iomem *addr,
size_t size)
{
WARN(1, "Invalid memcpy_fromio at address 0x%llx\n",
- (unsigned long long __force)addr);
+ (unsigned long long)(uintptr_t __force)addr);
memset(buffer, 0xff, size);
}
@@ -210,7 +211,7 @@ static void real_memcpy_toio(volatile void __iomem *addr, const void *buffer,
size_t size)
{
WARN(1, "Invalid memcpy_toio at address 0x%llx\n",
- (unsigned long long __force)addr);
+ (unsigned long long)(uintptr_t __force)addr);
}
#endif /* CONFIG_LOGIC_IOMEM_FALLBACK */
diff --git a/lib/mpi/mpi-mod.c b/lib/mpi/mpi-mod.c
index 47bc59edd4ff..54fcc01564d9 100644
--- a/lib/mpi/mpi-mod.c
+++ b/lib/mpi/mpi-mod.c
@@ -40,6 +40,8 @@ mpi_barrett_t mpi_barrett_init(MPI m, int copy)
mpi_normalize(m);
ctx = kcalloc(1, sizeof(*ctx), GFP_KERNEL);
+ if (!ctx)
+ return NULL;
if (copy) {
ctx->m = mpi_copy(m);
diff --git a/lib/test_hmm.c b/lib/test_hmm.c
index c259842f6d44..ac794e354069 100644
--- a/lib/test_hmm.c
+++ b/lib/test_hmm.c
@@ -1087,9 +1087,33 @@ static long dmirror_fops_unlocked_ioctl(struct file *filp,
return 0;
}
+static int dmirror_fops_mmap(struct file *file, struct vm_area_struct *vma)
+{
+ unsigned long addr;
+
+ for (addr = vma->vm_start; addr < vma->vm_end; addr += PAGE_SIZE) {
+ struct page *page;
+ int ret;
+
+ page = alloc_page(GFP_KERNEL | __GFP_ZERO);
+ if (!page)
+ return -ENOMEM;
+
+ ret = vm_insert_page(vma, addr, page);
+ if (ret) {
+ __free_page(page);
+ return ret;
+ }
+ put_page(page);
+ }
+
+ return 0;
+}
+
static const struct file_operations dmirror_fops = {
.open = dmirror_fops_open,
.release = dmirror_fops_release,
+ .mmap = dmirror_fops_mmap,
.unlocked_ioctl = dmirror_fops_unlocked_ioctl,
.llseek = default_llseek,
.owner = THIS_MODULE,
diff --git a/lib/test_meminit.c b/lib/test_meminit.c
index e4f706a404b3..3ca717f11397 100644
--- a/lib/test_meminit.c
+++ b/lib/test_meminit.c
@@ -337,6 +337,7 @@ static int __init do_kmem_cache_size_bulk(int size, int *total_failures)
if (num)
kmem_cache_free_bulk(c, num, objects);
}
+ kmem_cache_destroy(c);
*total_failures += fail;
return 1;
}
diff --git a/mm/hmm.c b/mm/hmm.c
index 842e26599238..bd56641c79d4 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -300,7 +300,8 @@ static int hmm_vma_handle_pte(struct mm_walk *walk, unsigned long addr,
* Since each architecture defines a struct page for the zero page, just
* fall through and treat it like a normal page.
*/
- if (pte_special(pte) && !pte_devmap(pte) &&
+ if (!vm_normal_page(walk->vma, addr, pte) &&
+ !pte_devmap(pte) &&
!is_zero_pfn(pte_pfn(pte))) {
if (hmm_pte_need_fault(hmm_vma_walk, pfn_req_flags, 0)) {
pte_unmap(ptep);
@@ -518,7 +519,7 @@ static int hmm_vma_walk_test(unsigned long start, unsigned long end,
struct hmm_range *range = hmm_vma_walk->range;
struct vm_area_struct *vma = walk->vma;
- if (!(vma->vm_flags & (VM_IO | VM_PFNMAP | VM_MIXEDMAP)) &&
+ if (!(vma->vm_flags & (VM_IO | VM_PFNMAP)) &&
vma->vm_flags & VM_READ)
return 0;
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 23d3339ac4e8..7773bae3b6ed 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -4210,7 +4210,9 @@ void warn_alloc(gfp_t gfp_mask, nodemask_t *nodemask, const char *fmt, ...)
va_list args;
static DEFINE_RATELIMIT_STATE(nopage_rs, 10*HZ, 1);
- if ((gfp_mask & __GFP_NOWARN) || !__ratelimit(&nopage_rs))
+ if ((gfp_mask & __GFP_NOWARN) ||
+ !__ratelimit(&nopage_rs) ||
+ ((gfp_mask & __GFP_DMA) && !has_managed_dma()))
return;
va_start(args, fmt);
@@ -9449,3 +9451,18 @@ bool take_page_off_buddy(struct page *page)
return ret;
}
#endif
+
+#ifdef CONFIG_ZONE_DMA
+bool has_managed_dma(void)
+{
+ struct pglist_data *pgdat;
+
+ for_each_online_pgdat(pgdat) {
+ struct zone *zone = &pgdat->node_zones[ZONE_DMA];
+
+ if (managed_zone(zone))
+ return true;
+ }
+ return false;
+}
+#endif /* CONFIG_ZONE_DMA */
diff --git a/mm/shmem.c b/mm/shmem.c
index b5860f4a2738..1609a8daba26 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -555,7 +555,7 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
struct shmem_inode_info *info;
struct page *page;
unsigned long batch = sc ? sc->nr_to_scan : 128;
- int removed = 0, split = 0;
+ int split = 0;
if (list_empty(&sbinfo->shrinklist))
return SHRINK_STOP;
@@ -570,7 +570,6 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
/* inode is about to be evicted */
if (!inode) {
list_del_init(&info->shrinklist);
- removed++;
goto next;
}
@@ -578,12 +577,12 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
if (round_up(inode->i_size, PAGE_SIZE) ==
round_up(inode->i_size, HPAGE_PMD_SIZE)) {
list_move(&info->shrinklist, &to_remove);
- removed++;
goto next;
}
list_move(&info->shrinklist, &list);
next:
+ sbinfo->shrinklist_len--;
if (!--batch)
break;
}
@@ -603,7 +602,7 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
inode = &info->vfs_inode;
if (nr_to_split && split >= nr_to_split)
- goto leave;
+ goto move_back;
page = find_get_page(inode->i_mapping,
(inode->i_size & HPAGE_PMD_MASK) >> PAGE_SHIFT);
@@ -617,38 +616,44 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
}
/*
- * Leave the inode on the list if we failed to lock
- * the page at this time.
+ * Move the inode on the list back to shrinklist if we failed
+ * to lock the page at this time.
*
* Waiting for the lock may lead to deadlock in the
* reclaim path.
*/
if (!trylock_page(page)) {
put_page(page);
- goto leave;
+ goto move_back;
}
ret = split_huge_page(page);
unlock_page(page);
put_page(page);
- /* If split failed leave the inode on the list */
+ /* If split failed move the inode on the list back to shrinklist */
if (ret)
- goto leave;
+ goto move_back;
split++;
drop:
list_del_init(&info->shrinklist);
- removed++;
-leave:
+ goto put;
+move_back:
+ /*
+ * Make sure the inode is either on the global list or deleted
+ * from any local list before iput() since it could be deleted
+ * in another thread once we put the inode (then the local list
+ * is corrupted).
+ */
+ spin_lock(&sbinfo->shrinklist_lock);
+ list_move(&info->shrinklist, &sbinfo->shrinklist);
+ sbinfo->shrinklist_len++;
+ spin_unlock(&sbinfo->shrinklist_lock);
+put:
iput(inode);
}
- spin_lock(&sbinfo->shrinklist_lock);
- list_splice_tail(&list, &sbinfo->shrinklist);
- sbinfo->shrinklist_len -= removed;
- spin_unlock(&sbinfo->shrinklist_lock);
-
return split;
}
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
index aa7785687e75..7473e0cc6d46 100644
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -536,7 +536,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
ax25_cb *ax25;
struct net_device *dev;
char devname[IFNAMSIZ];
- unsigned long opt;
+ unsigned int opt;
int res = 0;
if (level != SOL_AX25)
@@ -568,7 +568,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
break;
case AX25_T1:
- if (opt < 1 || opt > ULONG_MAX / HZ) {
+ if (opt < 1 || opt > UINT_MAX / HZ) {
res = -EINVAL;
break;
}
@@ -577,7 +577,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
break;
case AX25_T2:
- if (opt < 1 || opt > ULONG_MAX / HZ) {
+ if (opt < 1 || opt > UINT_MAX / HZ) {
res = -EINVAL;
break;
}
@@ -593,7 +593,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
break;
case AX25_T3:
- if (opt < 1 || opt > ULONG_MAX / HZ) {
+ if (opt < 1 || opt > UINT_MAX / HZ) {
res = -EINVAL;
break;
}
@@ -601,7 +601,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
break;
case AX25_IDLE:
- if (opt > ULONG_MAX / (60 * HZ)) {
+ if (opt > UINT_MAX / (60 * HZ)) {
res = -EINVAL;
break;
}
diff --git a/net/batman-adv/netlink.c b/net/batman-adv/netlink.c
index 29276284d281..00875e1d8c44 100644
--- a/net/batman-adv/netlink.c
+++ b/net/batman-adv/netlink.c
@@ -1368,21 +1368,21 @@ static const struct genl_small_ops batadv_netlink_ops[] = {
{
.cmd = BATADV_CMD_TP_METER,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_tp_meter_start,
.internal_flags = BATADV_FLAG_NEED_MESH,
},
{
.cmd = BATADV_CMD_TP_METER_CANCEL,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_tp_meter_cancel,
.internal_flags = BATADV_FLAG_NEED_MESH,
},
{
.cmd = BATADV_CMD_GET_ROUTING_ALGOS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_algo_dump,
},
{
@@ -1397,68 +1397,68 @@ static const struct genl_small_ops batadv_netlink_ops[] = {
{
.cmd = BATADV_CMD_GET_TRANSTABLE_LOCAL,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_tt_local_dump,
},
{
.cmd = BATADV_CMD_GET_TRANSTABLE_GLOBAL,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_tt_global_dump,
},
{
.cmd = BATADV_CMD_GET_ORIGINATORS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_orig_dump,
},
{
.cmd = BATADV_CMD_GET_NEIGHBORS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_hardif_neigh_dump,
},
{
.cmd = BATADV_CMD_GET_GATEWAYS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_gw_dump,
},
{
.cmd = BATADV_CMD_GET_BLA_CLAIM,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_bla_claim_dump,
},
{
.cmd = BATADV_CMD_GET_BLA_BACKBONE,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_bla_backbone_dump,
},
{
.cmd = BATADV_CMD_GET_DAT_CACHE,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_dat_cache_dump,
},
{
.cmd = BATADV_CMD_GET_MCAST_FLAGS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_mcast_flags_dump,
},
{
.cmd = BATADV_CMD_SET_MESH,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_set_mesh,
.internal_flags = BATADV_FLAG_NEED_MESH,
},
{
.cmd = BATADV_CMD_SET_HARDIF,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_set_hardif,
.internal_flags = BATADV_FLAG_NEED_MESH |
BATADV_FLAG_NEED_HARDIF,
@@ -1474,7 +1474,7 @@ static const struct genl_small_ops batadv_netlink_ops[] = {
{
.cmd = BATADV_CMD_SET_VLAN,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_set_vlan,
.internal_flags = BATADV_FLAG_NEED_MESH |
BATADV_FLAG_NEED_VLAN,
diff --git a/net/bluetooth/cmtp/core.c b/net/bluetooth/cmtp/core.c
index 0a2d78e811cf..83eb84e8e688 100644
--- a/net/bluetooth/cmtp/core.c
+++ b/net/bluetooth/cmtp/core.c
@@ -501,9 +501,7 @@ static int __init cmtp_init(void)
{
BT_INFO("CMTP (CAPI Emulation) ver %s", VERSION);
- cmtp_init_sockets();
-
- return 0;
+ return cmtp_init_sockets();
}
static void __exit cmtp_exit(void)
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 325db9c4c610..53f1b08017aa 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -3999,6 +3999,7 @@ int hci_register_dev(struct hci_dev *hdev)
return id;
err_wqueue:
+ debugfs_remove_recursive(hdev->debugfs);
destroy_workqueue(hdev->workqueue);
destroy_workqueue(hdev->req_workqueue);
err:
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 0bca035bf2dc..20e36126bbda 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -1325,8 +1325,10 @@ static void hci_cc_le_set_ext_adv_enable(struct hci_dev *hdev,
&conn->le_conn_timeout,
conn->conn_timeout);
} else {
- if (adv) {
- adv->enabled = false;
+ if (cp->num_of_sets) {
+ if (adv)
+ adv->enabled = false;
+
/* If just one instance was disabled check if there are
* any other instance enabled before clearing HCI_LE_ADV
*/
@@ -5780,7 +5782,8 @@ static void hci_le_adv_report_evt(struct hci_dev *hdev, struct sk_buff *skb)
struct hci_ev_le_advertising_info *ev = ptr;
s8 rssi;
- if (ev->length <= HCI_MAX_AD_LENGTH) {
+ if (ev->length <= HCI_MAX_AD_LENGTH &&
+ ev->data + ev->length <= skb_tail_pointer(skb)) {
rssi = ev->data[ev->length];
process_adv_report(hdev, ev->evt_type, &ev->bdaddr,
ev->bdaddr_type, NULL, 0, rssi,
@@ -5790,6 +5793,11 @@ static void hci_le_adv_report_evt(struct hci_dev *hdev, struct sk_buff *skb)
}
ptr += sizeof(*ev) + ev->length + 1;
+
+ if (ptr > (void *) skb_tail_pointer(skb) - sizeof(*ev)) {
+ bt_dev_err(hdev, "Malicious advertising data. Stopping processing");
+ break;
+ }
}
hci_dev_unlock(hdev);
diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c
index f15626607b2d..1d34d330afd3 100644
--- a/net/bluetooth/hci_request.c
+++ b/net/bluetooth/hci_request.c
@@ -2318,7 +2318,7 @@ int __hci_req_enable_ext_advertising(struct hci_request *req, u8 instance)
/* Set duration per instance since controller is responsible for
* scheduling it.
*/
- if (adv_instance && adv_instance->duration) {
+ if (adv_instance && adv_instance->timeout) {
u16 duration = adv_instance->timeout * MSEC_PER_SEC;
/* Time = N * 10 ms */
diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c
index 7827639ecf5c..4e3e0451b08c 100644
--- a/net/bluetooth/hci_sysfs.c
+++ b/net/bluetooth/hci_sysfs.c
@@ -86,6 +86,8 @@ static void bt_host_release(struct device *dev)
if (hci_dev_test_flag(hdev, HCI_UNREGISTER))
hci_release_dev(hdev);
+ else
+ kfree(hdev);
module_put(THIS_MODULE);
}
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index 160c016a5dfb..d2c678520599 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -161,7 +161,11 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
break;
}
- if (chan->psm && bdaddr_type_is_le(chan->src_type))
+ /* Use L2CAP_MODE_LE_FLOWCTL (CoC) in case of LE address and
+ * L2CAP_MODE_EXT_FLOWCTL (ECRED) has not been set.
+ */
+ if (chan->psm && bdaddr_type_is_le(chan->src_type) &&
+ chan->mode != L2CAP_MODE_EXT_FLOWCTL)
chan->mode = L2CAP_MODE_LE_FLOWCTL;
chan->state = BT_BOUND;
@@ -172,6 +176,21 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
return err;
}
+static void l2cap_sock_init_pid(struct sock *sk)
+{
+ struct l2cap_chan *chan = l2cap_pi(sk)->chan;
+
+ /* Only L2CAP_MODE_EXT_FLOWCTL ever need to access the PID in order to
+ * group the channels being requested.
+ */
+ if (chan->mode != L2CAP_MODE_EXT_FLOWCTL)
+ return;
+
+ spin_lock(&sk->sk_peer_lock);
+ sk->sk_peer_pid = get_pid(task_tgid(current));
+ spin_unlock(&sk->sk_peer_lock);
+}
+
static int l2cap_sock_connect(struct socket *sock, struct sockaddr *addr,
int alen, int flags)
{
@@ -240,9 +259,15 @@ static int l2cap_sock_connect(struct socket *sock, struct sockaddr *addr,
return -EINVAL;
}
- if (chan->psm && bdaddr_type_is_le(chan->src_type) && !chan->mode)
+ /* Use L2CAP_MODE_LE_FLOWCTL (CoC) in case of LE address and
+ * L2CAP_MODE_EXT_FLOWCTL (ECRED) has not been set.
+ */
+ if (chan->psm && bdaddr_type_is_le(chan->src_type) &&
+ chan->mode != L2CAP_MODE_EXT_FLOWCTL)
chan->mode = L2CAP_MODE_LE_FLOWCTL;
+ l2cap_sock_init_pid(sk);
+
err = l2cap_chan_connect(chan, la.l2_psm, __le16_to_cpu(la.l2_cid),
&la.l2_bdaddr, la.l2_bdaddr_type);
if (err)
@@ -298,6 +323,8 @@ static int l2cap_sock_listen(struct socket *sock, int backlog)
goto done;
}
+ l2cap_sock_init_pid(sk);
+
sk->sk_max_ack_backlog = backlog;
sk->sk_ack_backlog = 0;
@@ -876,6 +903,8 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
struct l2cap_conn *conn;
int len, err = 0;
u32 opt;
+ u16 mtu;
+ u8 mode;
BT_DBG("sk %p", sk);
@@ -1058,16 +1087,16 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
break;
}
- if (copy_from_sockptr(&opt, optval, sizeof(u16))) {
+ if (copy_from_sockptr(&mtu, optval, sizeof(u16))) {
err = -EFAULT;
break;
}
if (chan->mode == L2CAP_MODE_EXT_FLOWCTL &&
sk->sk_state == BT_CONNECTED)
- err = l2cap_chan_reconfigure(chan, opt);
+ err = l2cap_chan_reconfigure(chan, mtu);
else
- chan->imtu = opt;
+ chan->imtu = mtu;
break;
@@ -1089,14 +1118,14 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
break;
}
- if (copy_from_sockptr(&opt, optval, sizeof(u8))) {
+ if (copy_from_sockptr(&mode, optval, sizeof(u8))) {
err = -EFAULT;
break;
}
- BT_DBG("opt %u", opt);
+ BT_DBG("mode %u", mode);
- err = l2cap_set_mode(chan, opt);
+ err = l2cap_set_mode(chan, mode);
if (err)
break;
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index cea01e275f1e..f09f0a78eb7b 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -3806,7 +3806,7 @@ static const u8 rpa_resolution_uuid[16] = {
static int read_exp_features_info(struct sock *sk, struct hci_dev *hdev,
void *data, u16 data_len)
{
- char buf[62]; /* Enough space for 3 features */
+ char buf[62]; /* Enough space for 3 features */
struct mgmt_rp_read_exp_features_info *rp = (void *)buf;
u16 idx = 0;
u32 flags;
@@ -3892,150 +3892,186 @@ static int exp_debug_feature_changed(bool enabled, struct sock *skip)
}
#endif
-static int set_exp_feature(struct sock *sk, struct hci_dev *hdev,
- void *data, u16 data_len)
+#define EXP_FEAT(_uuid, _set_func) \
+{ \
+ .uuid = _uuid, \
+ .set_func = _set_func, \
+}
+
+/* The zero key uuid is special. Multiple exp features are set through it. */
+static int set_zero_key_func(struct sock *sk, struct hci_dev *hdev,
+ struct mgmt_cp_set_exp_feature *cp, u16 data_len)
{
- struct mgmt_cp_set_exp_feature *cp = data;
struct mgmt_rp_set_exp_feature rp;
- bt_dev_dbg(hdev, "sock %p", sk);
-
- if (!memcmp(cp->uuid, ZERO_KEY, 16)) {
- memset(rp.uuid, 0, 16);
- rp.flags = cpu_to_le32(0);
+ memset(rp.uuid, 0, 16);
+ rp.flags = cpu_to_le32(0);
#ifdef CONFIG_BT_FEATURE_DEBUG
- if (!hdev) {
- bool changed = bt_dbg_get();
+ if (!hdev) {
+ bool changed = bt_dbg_get();
- bt_dbg_set(false);
+ bt_dbg_set(false);
- if (changed)
- exp_debug_feature_changed(false, sk);
- }
+ if (changed)
+ exp_debug_feature_changed(false, sk);
+ }
#endif
- if (hdev && use_ll_privacy(hdev) && !hdev_is_powered(hdev)) {
- bool changed = hci_dev_test_flag(hdev,
- HCI_ENABLE_LL_PRIVACY);
-
- hci_dev_clear_flag(hdev, HCI_ENABLE_LL_PRIVACY);
+ if (hdev && use_ll_privacy(hdev) && !hdev_is_powered(hdev)) {
+ bool changed;
- if (changed)
- exp_ll_privacy_feature_changed(false, hdev, sk);
- }
+ changed = hci_dev_test_and_clear_flag(hdev,
+ HCI_ENABLE_LL_PRIVACY);
+ if (changed)
+ exp_ll_privacy_feature_changed(false, hdev, sk);
+ }
- hci_sock_set_flag(sk, HCI_MGMT_EXP_FEATURE_EVENTS);
+ hci_sock_set_flag(sk, HCI_MGMT_EXP_FEATURE_EVENTS);
- return mgmt_cmd_complete(sk, hdev ? hdev->id : MGMT_INDEX_NONE,
- MGMT_OP_SET_EXP_FEATURE, 0,
- &rp, sizeof(rp));
- }
+ return mgmt_cmd_complete(sk, hdev ? hdev->id : MGMT_INDEX_NONE,
+ MGMT_OP_SET_EXP_FEATURE, 0,
+ &rp, sizeof(rp));
+}
#ifdef CONFIG_BT_FEATURE_DEBUG
- if (!memcmp(cp->uuid, debug_uuid, 16)) {
- bool val, changed;
- int err;
+static int set_debug_func(struct sock *sk, struct hci_dev *hdev,
+ struct mgmt_cp_set_exp_feature *cp, u16 data_len)
+{
+ struct mgmt_rp_set_exp_feature rp;
- /* Command requires to use the non-controller index */
- if (hdev)
- return mgmt_cmd_status(sk, hdev->id,
- MGMT_OP_SET_EXP_FEATURE,
- MGMT_STATUS_INVALID_INDEX);
+ bool val, changed;
+ int err;
- /* Parameters are limited to a single octet */
- if (data_len != MGMT_SET_EXP_FEATURE_SIZE + 1)
- return mgmt_cmd_status(sk, MGMT_INDEX_NONE,
- MGMT_OP_SET_EXP_FEATURE,
- MGMT_STATUS_INVALID_PARAMS);
+ /* Command requires to use the non-controller index */
+ if (hdev)
+ return mgmt_cmd_status(sk, hdev->id,
+ MGMT_OP_SET_EXP_FEATURE,
+ MGMT_STATUS_INVALID_INDEX);
- /* Only boolean on/off is supported */
- if (cp->param[0] != 0x00 && cp->param[0] != 0x01)
- return mgmt_cmd_status(sk, MGMT_INDEX_NONE,
- MGMT_OP_SET_EXP_FEATURE,
- MGMT_STATUS_INVALID_PARAMS);
+ /* Parameters are limited to a single octet */
+ if (data_len != MGMT_SET_EXP_FEATURE_SIZE + 1)
+ return mgmt_cmd_status(sk, MGMT_INDEX_NONE,
+ MGMT_OP_SET_EXP_FEATURE,
+ MGMT_STATUS_INVALID_PARAMS);
- val = !!cp->param[0];
- changed = val ? !bt_dbg_get() : bt_dbg_get();
- bt_dbg_set(val);
+ /* Only boolean on/off is supported */
+ if (cp->param[0] != 0x00 && cp->param[0] != 0x01)
+ return mgmt_cmd_status(sk, MGMT_INDEX_NONE,
+ MGMT_OP_SET_EXP_FEATURE,
+ MGMT_STATUS_INVALID_PARAMS);
- memcpy(rp.uuid, debug_uuid, 16);
- rp.flags = cpu_to_le32(val ? BIT(0) : 0);
+ val = !!cp->param[0];
+ changed = val ? !bt_dbg_get() : bt_dbg_get();
+ bt_dbg_set(val);
- hci_sock_set_flag(sk, HCI_MGMT_EXP_FEATURE_EVENTS);
+ memcpy(rp.uuid, debug_uuid, 16);
+ rp.flags = cpu_to_le32(val ? BIT(0) : 0);
- err = mgmt_cmd_complete(sk, MGMT_INDEX_NONE,
- MGMT_OP_SET_EXP_FEATURE, 0,
- &rp, sizeof(rp));
+ hci_sock_set_flag(sk, HCI_MGMT_EXP_FEATURE_EVENTS);
- if (changed)
- exp_debug_feature_changed(val, sk);
+ err = mgmt_cmd_complete(sk, MGMT_INDEX_NONE,
+ MGMT_OP_SET_EXP_FEATURE, 0,
+ &rp, sizeof(rp));
- return err;
- }
+ if (changed)
+ exp_debug_feature_changed(val, sk);
+
+ return err;
+}
#endif
- if (!memcmp(cp->uuid, rpa_resolution_uuid, 16)) {
- bool val, changed;
- int err;
- u32 flags;
+static int set_rpa_resolution_func(struct sock *sk, struct hci_dev *hdev,
+ struct mgmt_cp_set_exp_feature *cp,
+ u16 data_len)
+{
+ struct mgmt_rp_set_exp_feature rp;
+ bool val, changed;
+ int err;
+ u32 flags;
- /* Command requires to use the controller index */
- if (!hdev)
- return mgmt_cmd_status(sk, MGMT_INDEX_NONE,
- MGMT_OP_SET_EXP_FEATURE,
- MGMT_STATUS_INVALID_INDEX);
+ /* Command requires to use the controller index */
+ if (!hdev)
+ return mgmt_cmd_status(sk, MGMT_INDEX_NONE,
+ MGMT_OP_SET_EXP_FEATURE,
+ MGMT_STATUS_INVALID_INDEX);
- /* Changes can only be made when controller is powered down */
- if (hdev_is_powered(hdev))
- return mgmt_cmd_status(sk, hdev->id,
- MGMT_OP_SET_EXP_FEATURE,
- MGMT_STATUS_REJECTED);
+ /* Changes can only be made when controller is powered down */
+ if (hdev_is_powered(hdev))
+ return mgmt_cmd_status(sk, hdev->id,
+ MGMT_OP_SET_EXP_FEATURE,
+ MGMT_STATUS_REJECTED);
- /* Parameters are limited to a single octet */
- if (data_len != MGMT_SET_EXP_FEATURE_SIZE + 1)
- return mgmt_cmd_status(sk, hdev->id,
- MGMT_OP_SET_EXP_FEATURE,
- MGMT_STATUS_INVALID_PARAMS);
+ /* Parameters are limited to a single octet */
+ if (data_len != MGMT_SET_EXP_FEATURE_SIZE + 1)
+ return mgmt_cmd_status(sk, hdev->id,
+ MGMT_OP_SET_EXP_FEATURE,
+ MGMT_STATUS_INVALID_PARAMS);
- /* Only boolean on/off is supported */
- if (cp->param[0] != 0x00 && cp->param[0] != 0x01)
- return mgmt_cmd_status(sk, hdev->id,
- MGMT_OP_SET_EXP_FEATURE,
- MGMT_STATUS_INVALID_PARAMS);
+ /* Only boolean on/off is supported */
+ if (cp->param[0] != 0x00 && cp->param[0] != 0x01)
+ return mgmt_cmd_status(sk, hdev->id,
+ MGMT_OP_SET_EXP_FEATURE,
+ MGMT_STATUS_INVALID_PARAMS);
- val = !!cp->param[0];
+ val = !!cp->param[0];
- if (val) {
- changed = !hci_dev_test_flag(hdev,
+ if (val) {
+ changed = !hci_dev_test_and_set_flag(hdev,
HCI_ENABLE_LL_PRIVACY);
- hci_dev_set_flag(hdev, HCI_ENABLE_LL_PRIVACY);
- hci_dev_clear_flag(hdev, HCI_ADVERTISING);
+ hci_dev_clear_flag(hdev, HCI_ADVERTISING);
- /* Enable LL privacy + supported settings changed */
- flags = BIT(0) | BIT(1);
- } else {
- changed = hci_dev_test_flag(hdev,
- HCI_ENABLE_LL_PRIVACY);
- hci_dev_clear_flag(hdev, HCI_ENABLE_LL_PRIVACY);
+ /* Enable LL privacy + supported settings changed */
+ flags = BIT(0) | BIT(1);
+ } else {
+ changed = hci_dev_test_and_clear_flag(hdev,
+ HCI_ENABLE_LL_PRIVACY);
- /* Disable LL privacy + supported settings changed */
- flags = BIT(1);
- }
+ /* Disable LL privacy + supported settings changed */
+ flags = BIT(1);
+ }
- memcpy(rp.uuid, rpa_resolution_uuid, 16);
- rp.flags = cpu_to_le32(flags);
+ memcpy(rp.uuid, rpa_resolution_uuid, 16);
+ rp.flags = cpu_to_le32(flags);
- hci_sock_set_flag(sk, HCI_MGMT_EXP_FEATURE_EVENTS);
+ hci_sock_set_flag(sk, HCI_MGMT_EXP_FEATURE_EVENTS);
- err = mgmt_cmd_complete(sk, hdev->id,
- MGMT_OP_SET_EXP_FEATURE, 0,
- &rp, sizeof(rp));
+ err = mgmt_cmd_complete(sk, hdev->id,
+ MGMT_OP_SET_EXP_FEATURE, 0,
+ &rp, sizeof(rp));
- if (changed)
- exp_ll_privacy_feature_changed(val, hdev, sk);
+ if (changed)
+ exp_ll_privacy_feature_changed(val, hdev, sk);
- return err;
+ return err;
+}
+
+static const struct mgmt_exp_feature {
+ const u8 *uuid;
+ int (*set_func)(struct sock *sk, struct hci_dev *hdev,
+ struct mgmt_cp_set_exp_feature *cp, u16 data_len);
+} exp_features[] = {
+ EXP_FEAT(ZERO_KEY, set_zero_key_func),
+#ifdef CONFIG_BT_FEATURE_DEBUG
+ EXP_FEAT(debug_uuid, set_debug_func),
+#endif
+ EXP_FEAT(rpa_resolution_uuid, set_rpa_resolution_func),
+
+ /* end with a null feature */
+ EXP_FEAT(NULL, NULL)
+};
+
+static int set_exp_feature(struct sock *sk, struct hci_dev *hdev,
+ void *data, u16 data_len)
+{
+ struct mgmt_cp_set_exp_feature *cp = data;
+ size_t i = 0;
+
+ bt_dev_dbg(hdev, "sock %p", sk);
+
+ for (i = 0; exp_features[i].uuid; i++) {
+ if (!memcmp(cp->uuid, exp_features[i].uuid, 16))
+ return exp_features[i].set_func(sk, hdev, cp, data_len);
}
return mgmt_cmd_status(sk, hdev ? hdev->id : MGMT_INDEX_NONE,
diff --git a/net/bridge/br_netfilter_hooks.c b/net/bridge/br_netfilter_hooks.c
index 8edfb98ae1d5..68c0d0f92890 100644
--- a/net/bridge/br_netfilter_hooks.c
+++ b/net/bridge/br_netfilter_hooks.c
@@ -743,6 +743,9 @@ static int br_nf_dev_queue_xmit(struct net *net, struct sock *sk, struct sk_buff
if (nf_bridge->frag_max_size && nf_bridge->frag_max_size < mtu)
mtu = nf_bridge->frag_max_size;
+ nf_bridge_update_protocol(skb);
+ nf_bridge_push_encap_header(skb);
+
if (skb_is_gso(skb) || skb->len + mtu_reserved <= mtu) {
nf_bridge_info_free(skb);
return br_dev_queue_push_xmit(net, sk, skb);
@@ -760,8 +763,6 @@ static int br_nf_dev_queue_xmit(struct net *net, struct sock *sk, struct sk_buff
IPCB(skb)->frag_max_size = nf_bridge->frag_max_size;
- nf_bridge_update_protocol(skb);
-
data = this_cpu_ptr(&brnf_frag_data_storage);
if (skb_vlan_tag_present(skb)) {
@@ -789,8 +790,6 @@ static int br_nf_dev_queue_xmit(struct net *net, struct sock *sk, struct sk_buff
IP6CB(skb)->frag_max_size = nf_bridge->frag_max_size;
- nf_bridge_update_protocol(skb);
-
data = this_cpu_ptr(&brnf_frag_data_storage);
data->encap_size = nf_bridge_encap_header_len(skb);
data->size = ETH_HLEN + data->encap_size;
diff --git a/net/core/dev.c b/net/core/dev.c
index e0878a500aa9..33dc2a3ff7d7 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -9636,6 +9636,12 @@ static int bpf_xdp_link_update(struct bpf_link *link, struct bpf_prog *new_prog,
goto out_unlock;
}
old_prog = link->prog;
+ if (old_prog->type != new_prog->type ||
+ old_prog->expected_attach_type != new_prog->expected_attach_type) {
+ err = -EINVAL;
+ goto out_unlock;
+ }
+
if (old_prog == new_prog) {
/* no-op, don't disturb drivers */
bpf_prog_put(new_prog);
diff --git a/net/core/devlink.c b/net/core/devlink.c
index 6931713e363f..db76c55e1a6d 100644
--- a/net/core/devlink.c
+++ b/net/core/devlink.c
@@ -8795,8 +8795,6 @@ static const struct genl_small_ops devlink_nl_ops[] = {
GENL_DONT_VALIDATE_DUMP_STRICT,
.dumpit = devlink_nl_cmd_health_reporter_dump_get_dumpit,
.flags = GENL_ADMIN_PERM,
- .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK_OR_PORT |
- DEVLINK_NL_FLAG_NO_LOCK,
},
{
.cmd = DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR,
diff --git a/net/core/filter.c b/net/core/filter.c
index 1e6831880d1f..f207e4782bd0 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -4742,12 +4742,14 @@ static int _bpf_setsockopt(struct sock *sk, int level, int optname,
switch (optname) {
case SO_RCVBUF:
val = min_t(u32, val, sysctl_rmem_max);
+ val = min_t(int, val, INT_MAX / 2);
sk->sk_userlocks |= SOCK_RCVBUF_LOCK;
WRITE_ONCE(sk->sk_rcvbuf,
max_t(int, val * 2, SOCK_MIN_RCVBUF));
break;
case SO_SNDBUF:
val = min_t(u32, val, sysctl_wmem_max);
+ val = min_t(int, val, INT_MAX / 2);
sk->sk_userlocks |= SOCK_SNDBUF_LOCK;
WRITE_ONCE(sk->sk_sndbuf,
max_t(int, val * 2, SOCK_MIN_SNDBUF));
@@ -8176,9 +8178,9 @@ void bpf_warn_invalid_xdp_action(u32 act)
{
const u32 act_max = XDP_REDIRECT;
- WARN_ONCE(1, "%s XDP return value %u, expect packet loss!\n",
- act > act_max ? "Illegal" : "Driver unsupported",
- act);
+ pr_warn_once("%s XDP return value %u, expect packet loss!\n",
+ act > act_max ? "Illegal" : "Driver unsupported",
+ act);
}
EXPORT_SYMBOL_GPL(bpf_warn_invalid_xdp_action);
diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
index bac0184cf3de..edffdaa875f1 100644
--- a/net/core/flow_dissector.c
+++ b/net/core/flow_dissector.c
@@ -238,7 +238,7 @@ void
skb_flow_dissect_ct(const struct sk_buff *skb,
struct flow_dissector *flow_dissector,
void *target_container, u16 *ctinfo_map,
- size_t mapsize, bool post_ct)
+ size_t mapsize, bool post_ct, u16 zone)
{
#if IS_ENABLED(CONFIG_NF_CONNTRACK)
struct flow_dissector_key_ct *key;
@@ -260,6 +260,7 @@ skb_flow_dissect_ct(const struct sk_buff *skb,
if (!ct) {
key->ct_state = TCA_FLOWER_KEY_CT_FLAGS_TRACKED |
TCA_FLOWER_KEY_CT_FLAGS_INVALID;
+ key->ct_zone = zone;
return;
}
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
index dfa5ecff7f73..a4ae65263384 100644
--- a/net/core/net-sysfs.c
+++ b/net/core/net-sysfs.c
@@ -1820,6 +1820,9 @@ static void remove_queue_kobjects(struct net_device *dev)
net_rx_queue_update_kobjects(dev, real_rx, 0);
netdev_queue_update_kobjects(dev, real_tx, 0);
+
+ dev->real_num_rx_queues = 0;
+ dev->real_num_tx_queues = 0;
#ifdef CONFIG_SYSFS
kset_unregister(dev->queues_kset);
#endif
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index 202fa5eacd0f..9702d2b0d920 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -164,8 +164,10 @@ static void ops_exit_list(const struct pernet_operations *ops,
{
struct net *net;
if (ops->exit) {
- list_for_each_entry(net, net_exit_list, exit_list)
+ list_for_each_entry(net, net_exit_list, exit_list) {
ops->exit(net);
+ cond_resched();
+ }
}
if (ops->exit_batch)
ops->exit_batch(net_exit_list);
diff --git a/net/core/sock.c b/net/core/sock.c
index 1b31e1018162..6ea317f84edd 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -830,6 +830,8 @@ static int sock_timestamping_bind_phc(struct sock *sk, int phc_index)
}
num = ethtool_get_phc_vclocks(dev, &vclock_index);
+ dev_put(dev);
+
for (i = 0; i < num; i++) {
if (*(vclock_index + i) == phc_index) {
match = true;
diff --git a/net/core/sock_map.c b/net/core/sock_map.c
index c89f527411e8..8288b5382f08 100644
--- a/net/core/sock_map.c
+++ b/net/core/sock_map.c
@@ -292,15 +292,23 @@ static int sock_map_link(struct bpf_map *map, struct sock *sk)
if (skb_verdict)
psock_set_prog(&psock->progs.skb_verdict, skb_verdict);
+ /* msg_* and stream_* programs references tracked in psock after this
+ * point. Reference dec and cleanup will occur through psock destructor
+ */
ret = sock_map_init_proto(sk, psock);
- if (ret < 0)
- goto out_drop;
+ if (ret < 0) {
+ sk_psock_put(sk, psock);
+ goto out;
+ }
write_lock_bh(&sk->sk_callback_lock);
if (stream_parser && stream_verdict && !psock->saved_data_ready) {
ret = sk_psock_init_strp(sk, psock);
- if (ret)
- goto out_unlock_drop;
+ if (ret) {
+ write_unlock_bh(&sk->sk_callback_lock);
+ sk_psock_put(sk, psock);
+ goto out;
+ }
sk_psock_start_strp(sk, psock);
} else if (!stream_parser && stream_verdict && !psock->saved_data_ready) {
sk_psock_start_verdict(sk,psock);
@@ -309,10 +317,6 @@ static int sock_map_link(struct bpf_map *map, struct sock *sk)
}
write_unlock_bh(&sk->sk_callback_lock);
return 0;
-out_unlock_drop:
- write_unlock_bh(&sk->sk_callback_lock);
-out_drop:
- sk_psock_put(sk, psock);
out_progs:
if (skb_verdict)
bpf_prog_put(skb_verdict);
@@ -325,6 +329,7 @@ static int sock_map_link(struct bpf_map *map, struct sock *sk)
out_put_stream_verdict:
if (stream_verdict)
bpf_prog_put(stream_verdict);
+out:
return ret;
}
diff --git a/net/dsa/switch.c b/net/dsa/switch.c
index 44558fbdc65b..fb69f2f14234 100644
--- a/net/dsa/switch.c
+++ b/net/dsa/switch.c
@@ -644,7 +644,7 @@ static int
dsa_switch_mrp_add_ring_role(struct dsa_switch *ds,
struct dsa_notifier_mrp_ring_role_info *info)
{
- if (!ds->ops->port_mrp_add)
+ if (!ds->ops->port_mrp_add_ring_role)
return -EOPNOTSUPP;
if (ds->index == info->sw_index)
@@ -658,7 +658,7 @@ static int
dsa_switch_mrp_del_ring_role(struct dsa_switch *ds,
struct dsa_notifier_mrp_ring_role_info *info)
{
- if (!ds->ops->port_mrp_del)
+ if (!ds->ops->port_mrp_del_ring_role)
return -EOPNOTSUPP;
if (ds->index == info->sw_index)
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
index 92c29ab3d042..5dfb94abe7b1 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -29,6 +29,7 @@
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/netlink.h>
+#include <linux/hash.h>
#include <net/arp.h>
#include <net/ip.h>
@@ -249,7 +250,6 @@ void free_fib_info(struct fib_info *fi)
pr_warn("Freeing alive fib_info %p\n", fi);
return;
}
- fib_info_cnt--;
call_rcu(&fi->rcu, free_fib_info_rcu);
}
@@ -260,6 +260,10 @@ void fib_release_info(struct fib_info *fi)
spin_lock_bh(&fib_info_lock);
if (fi && refcount_dec_and_test(&fi->fib_treeref)) {
hlist_del(&fi->fib_hash);
+
+ /* Paired with READ_ONCE() in fib_create_info(). */
+ WRITE_ONCE(fib_info_cnt, fib_info_cnt - 1);
+
if (fi->fib_prefsrc)
hlist_del(&fi->fib_lhash);
if (fi->nh) {
@@ -316,11 +320,15 @@ static inline int nh_comp(struct fib_info *fi, struct fib_info *ofi)
static inline unsigned int fib_devindex_hashfn(unsigned int val)
{
- unsigned int mask = DEVINDEX_HASHSIZE - 1;
+ return hash_32(val, DEVINDEX_HASHBITS);
+}
+
+static struct hlist_head *
+fib_info_devhash_bucket(const struct net_device *dev)
+{
+ u32 val = net_hash_mix(dev_net(dev)) ^ dev->ifindex;
- return (val ^
- (val >> DEVINDEX_HASHBITS) ^
- (val >> (DEVINDEX_HASHBITS * 2))) & mask;
+ return &fib_info_devhash[fib_devindex_hashfn(val)];
}
static unsigned int fib_info_hashfn_1(int init_val, u8 protocol, u8 scope,
@@ -430,12 +438,11 @@ int ip_fib_check_default(__be32 gw, struct net_device *dev)
{
struct hlist_head *head;
struct fib_nh *nh;
- unsigned int hash;
spin_lock(&fib_info_lock);
- hash = fib_devindex_hashfn(dev->ifindex);
- head = &fib_info_devhash[hash];
+ head = fib_info_devhash_bucket(dev);
+
hlist_for_each_entry(nh, head, nh_hash) {
if (nh->fib_nh_dev == dev &&
nh->fib_nh_gw4 == gw &&
@@ -1430,7 +1437,9 @@ struct fib_info *fib_create_info(struct fib_config *cfg,
#endif
err = -ENOBUFS;
- if (fib_info_cnt >= fib_info_hash_size) {
+
+ /* Paired with WRITE_ONCE() in fib_release_info() */
+ if (READ_ONCE(fib_info_cnt) >= fib_info_hash_size) {
unsigned int new_size = fib_info_hash_size << 1;
struct hlist_head *new_info_hash;
struct hlist_head *new_laddrhash;
@@ -1462,7 +1471,6 @@ struct fib_info *fib_create_info(struct fib_config *cfg,
return ERR_PTR(err);
}
- fib_info_cnt++;
fi->fib_net = net;
fi->fib_protocol = cfg->fc_protocol;
fi->fib_scope = cfg->fc_scope;
@@ -1589,6 +1597,7 @@ struct fib_info *fib_create_info(struct fib_config *cfg,
refcount_set(&fi->fib_treeref, 1);
refcount_set(&fi->fib_clntref, 1);
spin_lock_bh(&fib_info_lock);
+ fib_info_cnt++;
hlist_add_head(&fi->fib_hash,
&fib_info_hash[fib_info_hashfn(fi)]);
if (fi->fib_prefsrc) {
@@ -1602,12 +1611,10 @@ struct fib_info *fib_create_info(struct fib_config *cfg,
} else {
change_nexthops(fi) {
struct hlist_head *head;
- unsigned int hash;
if (!nexthop_nh->fib_nh_dev)
continue;
- hash = fib_devindex_hashfn(nexthop_nh->fib_nh_dev->ifindex);
- head = &fib_info_devhash[hash];
+ head = fib_info_devhash_bucket(nexthop_nh->fib_nh_dev);
hlist_add_head(&nexthop_nh->nh_hash, head);
} endfor_nexthops(fi)
}
@@ -1959,8 +1966,7 @@ void fib_nhc_update_mtu(struct fib_nh_common *nhc, u32 new, u32 orig)
void fib_sync_mtu(struct net_device *dev, u32 orig_mtu)
{
- unsigned int hash = fib_devindex_hashfn(dev->ifindex);
- struct hlist_head *head = &fib_info_devhash[hash];
+ struct hlist_head *head = fib_info_devhash_bucket(dev);
struct fib_nh *nh;
hlist_for_each_entry(nh, head, nh_hash) {
@@ -1979,12 +1985,11 @@ void fib_sync_mtu(struct net_device *dev, u32 orig_mtu)
*/
int fib_sync_down_dev(struct net_device *dev, unsigned long event, bool force)
{
- int ret = 0;
- int scope = RT_SCOPE_NOWHERE;
+ struct hlist_head *head = fib_info_devhash_bucket(dev);
struct fib_info *prev_fi = NULL;
- unsigned int hash = fib_devindex_hashfn(dev->ifindex);
- struct hlist_head *head = &fib_info_devhash[hash];
+ int scope = RT_SCOPE_NOWHERE;
struct fib_nh *nh;
+ int ret = 0;
if (force)
scope = -1;
@@ -2129,7 +2134,6 @@ static void fib_select_default(const struct flowi4 *flp, struct fib_result *res)
int fib_sync_up(struct net_device *dev, unsigned char nh_flags)
{
struct fib_info *prev_fi;
- unsigned int hash;
struct hlist_head *head;
struct fib_nh *nh;
int ret;
@@ -2145,8 +2149,7 @@ int fib_sync_up(struct net_device *dev, unsigned char nh_flags)
}
prev_fi = NULL;
- hash = fib_devindex_hashfn(dev->ifindex);
- head = &fib_info_devhash[hash];
+ head = fib_info_devhash_bucket(dev);
ret = 0;
hlist_for_each_entry(nh, head, nh_hash) {
diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c
index 05cd198d7a6b..341096807100 100644
--- a/net/ipv4/inet_fragment.c
+++ b/net/ipv4/inet_fragment.c
@@ -235,9 +235,9 @@ void inet_frag_kill(struct inet_frag_queue *fq)
/* The RCU read lock provides a memory barrier
* guaranteeing that if fqdir->dead is false then
* the hash table destruction will not start until
- * after we unlock. Paired with inet_frags_exit_net().
+ * after we unlock. Paired with fqdir_pre_exit().
*/
- if (!fqdir->dead) {
+ if (!READ_ONCE(fqdir->dead)) {
rhashtable_remove_fast(&fqdir->rhashtable, &fq->node,
fqdir->f->rhash_params);
refcount_dec(&fq->refcnt);
@@ -352,9 +352,11 @@ static struct inet_frag_queue *inet_frag_create(struct fqdir *fqdir,
/* TODO : call from rcu_read_lock() and no longer use refcount_inc_not_zero() */
struct inet_frag_queue *inet_frag_find(struct fqdir *fqdir, void *key)
{
+ /* This pairs with WRITE_ONCE() in fqdir_pre_exit(). */
+ long high_thresh = READ_ONCE(fqdir->high_thresh);
struct inet_frag_queue *fq = NULL, *prev;
- if (!fqdir->high_thresh || frag_mem_limit(fqdir) > fqdir->high_thresh)
+ if (!high_thresh || frag_mem_limit(fqdir) > high_thresh)
return NULL;
rcu_read_lock();
diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
index cfeb8890f94e..fad803d2d711 100644
--- a/net/ipv4/ip_fragment.c
+++ b/net/ipv4/ip_fragment.c
@@ -144,7 +144,8 @@ static void ip_expire(struct timer_list *t)
rcu_read_lock();
- if (qp->q.fqdir->dead)
+ /* Paired with WRITE_ONCE() in fqdir_pre_exit(). */
+ if (READ_ONCE(qp->q.fqdir->dead))
goto out_rcu_unlock;
spin_lock(&qp->q.lock);
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index 0fe6c936dc54..e7f3e37e4aa8 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -604,8 +604,9 @@ static int gre_fill_metadata_dst(struct net_device *dev, struct sk_buff *skb)
key = &info->key;
ip_tunnel_init_flow(&fl4, IPPROTO_GRE, key->u.ipv4.dst, key->u.ipv4.src,
- tunnel_id_to_key32(key->tun_id), key->tos, 0,
- skb->mark, skb_get_hash(skb));
+ tunnel_id_to_key32(key->tun_id),
+ key->tos & ~INET_ECN_MASK, 0, skb->mark,
+ skb_get_hash(skb));
rt = ip_route_output_key(dev_net(dev), &fl4);
if (IS_ERR(rt))
return PTR_ERR(rt);
diff --git a/net/ipv4/netfilter/ipt_CLUSTERIP.c b/net/ipv4/netfilter/ipt_CLUSTERIP.c
index 8fd1aba8af31..b518f20c9a24 100644
--- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
+++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
@@ -520,8 +520,11 @@ static int clusterip_tg_check(const struct xt_tgchk_param *par)
if (IS_ERR(config))
return PTR_ERR(config);
}
- } else if (memcmp(&config->clustermac, &cipinfo->clustermac, ETH_ALEN))
+ } else if (memcmp(&config->clustermac, &cipinfo->clustermac, ETH_ALEN)) {
+ clusterip_config_entry_put(config);
+ clusterip_config_put(config);
return -EINVAL;
+ }
ret = nf_ct_netns_get(par->net, par->family);
if (ret < 0) {
diff --git a/net/ipv4/tcp_bpf.c b/net/ipv4/tcp_bpf.c
index f70aa0932bd6..9b9b02052fd3 100644
--- a/net/ipv4/tcp_bpf.c
+++ b/net/ipv4/tcp_bpf.c
@@ -196,12 +196,39 @@ static int tcp_bpf_recvmsg_parser(struct sock *sk,
long timeo;
int data;
+ if (sock_flag(sk, SOCK_DONE))
+ goto out;
+
+ if (sk->sk_err) {
+ copied = sock_error(sk);
+ goto out;
+ }
+
+ if (sk->sk_shutdown & RCV_SHUTDOWN)
+ goto out;
+
+ if (sk->sk_state == TCP_CLOSE) {
+ copied = -ENOTCONN;
+ goto out;
+ }
+
timeo = sock_rcvtimeo(sk, nonblock);
+ if (!timeo) {
+ copied = -EAGAIN;
+ goto out;
+ }
+
+ if (signal_pending(current)) {
+ copied = sock_intr_errno(timeo);
+ goto out;
+ }
+
data = tcp_msg_wait_data(sk, psock, timeo);
if (data && !sk_psock_queue_empty(psock))
goto msg_bytes_ready;
copied = -EAGAIN;
}
+out:
release_sock(sk);
sk_psock_put(sk, psock);
return copied;
diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c
index a7c31ab67c5d..96c5cc0f30ce 100644
--- a/net/ipv6/icmp.c
+++ b/net/ipv6/icmp.c
@@ -57,6 +57,7 @@
#include <net/protocol.h>
#include <net/raw.h>
#include <net/rawv6.h>
+#include <net/seg6.h>
#include <net/transp_v6.h>
#include <net/ip6_route.h>
#include <net/addrconf.h>
@@ -820,6 +821,7 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
void icmpv6_notify(struct sk_buff *skb, u8 type, u8 code, __be32 info)
{
+ struct inet6_skb_parm *opt = IP6CB(skb);
const struct inet6_protocol *ipprot;
int inner_offset;
__be16 frag_off;
@@ -829,6 +831,8 @@ void icmpv6_notify(struct sk_buff *skb, u8 type, u8 code, __be32 info)
if (!pskb_may_pull(skb, sizeof(struct ipv6hdr)))
goto out;
+ seg6_icmp_srh(skb, opt);
+
nexthdr = ((struct ipv6hdr *)skb->data)->nexthdr;
if (ipv6_ext_hdr(nexthdr)) {
/* now skip over extension headers */
@@ -853,7 +857,7 @@ void icmpv6_notify(struct sk_buff *skb, u8 type, u8 code, __be32 info)
ipprot = rcu_dereference(inet6_protos[nexthdr]);
if (ipprot && ipprot->err_handler)
- ipprot->err_handler(skb, NULL, type, code, inner_offset, info);
+ ipprot->err_handler(skb, opt, type, code, inner_offset, info);
raw6_icmp_error(skb, nexthdr, type, code, inner_offset, info);
return;
diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
index 3ad201d372d8..466a5610e3ca 100644
--- a/net/ipv6/ip6_gre.c
+++ b/net/ipv6/ip6_gre.c
@@ -755,6 +755,7 @@ static netdev_tx_t __gre6_xmit(struct sk_buff *skb,
fl6->daddr = key->u.ipv6.dst;
fl6->flowlabel = key->label;
fl6->flowi6_uid = sock_net_uid(dev_net(dev), NULL);
+ fl6->fl6_gre_key = tunnel_id_to_key32(key->tun_id);
dsfield = key->tos;
flags = key->tun_flags &
@@ -990,6 +991,7 @@ static netdev_tx_t ip6erspan_tunnel_xmit(struct sk_buff *skb,
fl6.daddr = key->u.ipv6.dst;
fl6.flowlabel = key->label;
fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
+ fl6.fl6_gre_key = tunnel_id_to_key32(key->tun_id);
dsfield = key->tos;
if (!(tun_info->key.tun_flags & TUNNEL_ERSPAN_OPT))
@@ -1098,6 +1100,7 @@ static void ip6gre_tnl_link_config_common(struct ip6_tnl *t)
fl6->flowi6_oif = p->link;
fl6->flowlabel = 0;
fl6->flowi6_proto = IPPROTO_GRE;
+ fl6->fl6_gre_key = t->parms.o_key;
if (!(p->flags&IP6_TNL_F_USE_ORIG_TCLASS))
fl6->flowlabel |= IPV6_TCLASS_MASK & p->flowinfo;
@@ -1544,7 +1547,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
static struct inet6_protocol ip6gre_protocol __read_mostly = {
.handler = gre_rcv,
.err_handler = ip6gre_err,
- .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
+ .flags = INET6_PROTO_FINAL,
};
static void ip6gre_destroy_tunnels(struct net *net, struct list_head *head)
diff --git a/net/ipv6/seg6.c b/net/ipv6/seg6.c
index e412817fba2f..fa6b64c95d3a 100644
--- a/net/ipv6/seg6.c
+++ b/net/ipv6/seg6.c
@@ -75,6 +75,65 @@ bool seg6_validate_srh(struct ipv6_sr_hdr *srh, int len, bool reduced)
return true;
}
+struct ipv6_sr_hdr *seg6_get_srh(struct sk_buff *skb, int flags)
+{
+ struct ipv6_sr_hdr *srh;
+ int len, srhoff = 0;
+
+ if (ipv6_find_hdr(skb, &srhoff, IPPROTO_ROUTING, NULL, &flags) < 0)
+ return NULL;
+
+ if (!pskb_may_pull(skb, srhoff + sizeof(*srh)))
+ return NULL;
+
+ srh = (struct ipv6_sr_hdr *)(skb->data + srhoff);
+
+ len = (srh->hdrlen + 1) << 3;
+
+ if (!pskb_may_pull(skb, srhoff + len))
+ return NULL;
+
+ /* note that pskb_may_pull may change pointers in header;
+ * for this reason it is necessary to reload them when needed.
+ */
+ srh = (struct ipv6_sr_hdr *)(skb->data + srhoff);
+
+ if (!seg6_validate_srh(srh, len, true))
+ return NULL;
+
+ return srh;
+}
+
+/* Determine if an ICMP invoking packet contains a segment routing
+ * header. If it does, extract the offset to the true destination
+ * address, which is in the first segment address.
+ */
+void seg6_icmp_srh(struct sk_buff *skb, struct inet6_skb_parm *opt)
+{
+ __u16 network_header = skb->network_header;
+ struct ipv6_sr_hdr *srh;
+
+ /* Update network header to point to the invoking packet
+ * inside the ICMP packet, so we can use the seg6_get_srh()
+ * helper.
+ */
+ skb_reset_network_header(skb);
+
+ srh = seg6_get_srh(skb, 0);
+ if (!srh)
+ goto out;
+
+ if (srh->type != IPV6_SRCRT_TYPE_4)
+ goto out;
+
+ opt->flags |= IP6SKB_SEG6;
+ opt->srhoff = (unsigned char *)srh - skb->data;
+
+out:
+ /* Restore the network header back to the ICMP packet */
+ skb->network_header = network_header;
+}
+
static struct genl_family seg6_genl_family;
static const struct nla_policy seg6_genl_policy[SEG6_ATTR_MAX + 1] = {
diff --git a/net/ipv6/seg6_local.c b/net/ipv6/seg6_local.c
index 2dc40b3f373e..ef88489c71f5 100644
--- a/net/ipv6/seg6_local.c
+++ b/net/ipv6/seg6_local.c
@@ -150,40 +150,11 @@ static struct seg6_local_lwt *seg6_local_lwtunnel(struct lwtunnel_state *lwt)
return (struct seg6_local_lwt *)lwt->data;
}
-static struct ipv6_sr_hdr *get_srh(struct sk_buff *skb, int flags)
-{
- struct ipv6_sr_hdr *srh;
- int len, srhoff = 0;
-
- if (ipv6_find_hdr(skb, &srhoff, IPPROTO_ROUTING, NULL, &flags) < 0)
- return NULL;
-
- if (!pskb_may_pull(skb, srhoff + sizeof(*srh)))
- return NULL;
-
- srh = (struct ipv6_sr_hdr *)(skb->data + srhoff);
-
- len = (srh->hdrlen + 1) << 3;
-
- if (!pskb_may_pull(skb, srhoff + len))
- return NULL;
-
- /* note that pskb_may_pull may change pointers in header;
- * for this reason it is necessary to reload them when needed.
- */
- srh = (struct ipv6_sr_hdr *)(skb->data + srhoff);
-
- if (!seg6_validate_srh(srh, len, true))
- return NULL;
-
- return srh;
-}
-
static struct ipv6_sr_hdr *get_and_validate_srh(struct sk_buff *skb)
{
struct ipv6_sr_hdr *srh;
- srh = get_srh(skb, IP6_FH_F_SKIP_RH);
+ srh = seg6_get_srh(skb, IP6_FH_F_SKIP_RH);
if (!srh)
return NULL;
@@ -200,7 +171,7 @@ static bool decap_and_validate(struct sk_buff *skb, int proto)
struct ipv6_sr_hdr *srh;
unsigned int off = 0;
- srh = get_srh(skb, 0);
+ srh = seg6_get_srh(skb, 0);
if (srh && srh->segments_left > 0)
return false;
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index 8cd8c0bce098..932c6f2a5494 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -40,6 +40,7 @@
#include <net/transp_v6.h>
#include <net/ip6_route.h>
#include <net/raw.h>
+#include <net/seg6.h>
#include <net/tcp_states.h>
#include <net/ip6_checksum.h>
#include <net/ip6_tunnel.h>
@@ -561,7 +562,7 @@ int __udp6_lib_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
struct ipv6_pinfo *np;
const struct ipv6hdr *hdr = (const struct ipv6hdr *)skb->data;
const struct in6_addr *saddr = &hdr->saddr;
- const struct in6_addr *daddr = &hdr->daddr;
+ const struct in6_addr *daddr = seg6_get_daddr(skb, opt) ? : &hdr->daddr;
struct udphdr *uh = (struct udphdr *)(skb->data+offset);
bool tunnel = false;
struct sock *sk;
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 1958e4d59b52..92ce173dd0c1 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -4933,7 +4933,7 @@ void ieee80211_rx_list(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta,
goto drop;
break;
case RX_ENC_VHT:
- if (WARN_ONCE(status->rate_idx > 9 ||
+ if (WARN_ONCE(status->rate_idx > 11 ||
!status->nss ||
status->nss > 8,
"Rate marked as a VHT rate but data is invalid: MCS: %d, NSS: %d\n",
diff --git a/net/mptcp/options.c b/net/mptcp/options.c
index 0966855a7c25..e515ba9ccb5d 100644
--- a/net/mptcp/options.c
+++ b/net/mptcp/options.c
@@ -823,10 +823,13 @@ bool mptcp_established_options(struct sock *sk, struct sk_buff *skb,
if (mptcp_established_options_mp(sk, skb, snd_data_fin, &opt_size, remaining, opts))
ret = true;
else if (mptcp_established_options_dss(sk, skb, snd_data_fin, &opt_size, remaining, opts)) {
+ unsigned int mp_fail_size;
+
ret = true;
- if (mptcp_established_options_mp_fail(sk, &opt_size, remaining, opts)) {
- *size += opt_size;
- remaining -= opt_size;
+ if (mptcp_established_options_mp_fail(sk, &mp_fail_size,
+ remaining - opt_size, opts)) {
+ *size += opt_size + mp_fail_size;
+ remaining -= opt_size - mp_fail_size;
return true;
}
}
@@ -1318,6 +1321,7 @@ void mptcp_write_options(__be32 *ptr, const struct tcp_sock *tp,
put_unaligned_be32(mpext->data_len << 16 |
TCPOPT_NOP << 8 | TCPOPT_NOP, ptr);
}
+ ptr += 1;
}
} else if ((OPTION_MPTCP_MPC_SYN | OPTION_MPTCP_MPC_SYNACK |
OPTION_MPTCP_MPC_ACK) & opts->suboptions) {
diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c
index b79251a36dcb..d96860053816 100644
--- a/net/mptcp/pm_netlink.c
+++ b/net/mptcp/pm_netlink.c
@@ -710,6 +710,8 @@ static void mptcp_pm_nl_rm_addr_or_subflow(struct mptcp_sock *msk,
return;
for (i = 0; i < rm_list->nr; i++) {
+ bool removed = false;
+
list_for_each_entry_safe(subflow, tmp, &msk->conn_list, node) {
struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
int how = RCV_SHUTDOWN | SEND_SHUTDOWN;
@@ -729,15 +731,19 @@ static void mptcp_pm_nl_rm_addr_or_subflow(struct mptcp_sock *msk,
mptcp_close_ssk(sk, ssk, subflow);
spin_lock_bh(&msk->pm.lock);
- if (rm_type == MPTCP_MIB_RMADDR) {
- msk->pm.add_addr_accepted--;
- WRITE_ONCE(msk->pm.accept_addr, true);
- } else if (rm_type == MPTCP_MIB_RMSUBFLOW) {
- msk->pm.local_addr_used--;
- }
+ removed = true;
msk->pm.subflows--;
__MPTCP_INC_STATS(sock_net(sk), rm_type);
}
+ if (!removed)
+ continue;
+
+ if (rm_type == MPTCP_MIB_RMADDR) {
+ msk->pm.add_addr_accepted--;
+ WRITE_ONCE(msk->pm.accept_addr, true);
+ } else if (rm_type == MPTCP_MIB_RMSUBFLOW) {
+ msk->pm.local_addr_used--;
+ }
}
}
diff --git a/net/netfilter/nft_payload.c b/net/netfilter/nft_payload.c
index a44b14f6c0dc..132875cd7fff 100644
--- a/net/netfilter/nft_payload.c
+++ b/net/netfilter/nft_payload.c
@@ -502,6 +502,9 @@ static int nft_payload_l4csum_offset(const struct nft_pktinfo *pkt,
struct sk_buff *skb,
unsigned int *l4csum_offset)
{
+ if (pkt->fragoff)
+ return -1;
+
switch (pkt->tprot) {
case IPPROTO_TCP:
*l4csum_offset = offsetof(struct tcphdr, check);
diff --git a/net/netfilter/nft_set_pipapo.c b/net/netfilter/nft_set_pipapo.c
index dce866d93fee..2c8051d8cca6 100644
--- a/net/netfilter/nft_set_pipapo.c
+++ b/net/netfilter/nft_set_pipapo.c
@@ -1290,6 +1290,11 @@ static struct nft_pipapo_match *pipapo_clone(struct nft_pipapo_match *old)
if (!new->scratch_aligned)
goto out_scratch;
#endif
+ for_each_possible_cpu(i)
+ *per_cpu_ptr(new->scratch, i) = NULL;
+
+ if (pipapo_realloc_scratch(new, old->bsize_max))
+ goto out_scratch_realloc;
rcu_head_init(&new->rcu);
@@ -1334,6 +1339,9 @@ static struct nft_pipapo_match *pipapo_clone(struct nft_pipapo_match *old)
kvfree(dst->lt);
dst--;
}
+out_scratch_realloc:
+ for_each_possible_cpu(i)
+ kfree(*per_cpu_ptr(new->scratch, i));
#ifdef NFT_PIPAPO_ALIGN
free_percpu(new->scratch_aligned);
#endif
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
index eef0e3f2f25b..e5c8a295e640 100644
--- a/net/netrom/af_netrom.c
+++ b/net/netrom/af_netrom.c
@@ -298,7 +298,7 @@ static int nr_setsockopt(struct socket *sock, int level, int optname,
{
struct sock *sk = sock->sk;
struct nr_sock *nr = nr_sk(sk);
- unsigned long opt;
+ unsigned int opt;
if (level != SOL_NETROM)
return -ENOPROTOOPT;
@@ -306,18 +306,18 @@ static int nr_setsockopt(struct socket *sock, int level, int optname,
if (optlen < sizeof(unsigned int))
return -EINVAL;
- if (copy_from_sockptr(&opt, optval, sizeof(unsigned long)))
+ if (copy_from_sockptr(&opt, optval, sizeof(opt)))
return -EFAULT;
switch (optname) {
case NETROM_T1:
- if (opt < 1 || opt > ULONG_MAX / HZ)
+ if (opt < 1 || opt > UINT_MAX / HZ)
return -EINVAL;
nr->t1 = opt * HZ;
return 0;
case NETROM_T2:
- if (opt < 1 || opt > ULONG_MAX / HZ)
+ if (opt < 1 || opt > UINT_MAX / HZ)
return -EINVAL;
nr->t2 = opt * HZ;
return 0;
@@ -329,13 +329,13 @@ static int nr_setsockopt(struct socket *sock, int level, int optname,
return 0;
case NETROM_T4:
- if (opt < 1 || opt > ULONG_MAX / HZ)
+ if (opt < 1 || opt > UINT_MAX / HZ)
return -EINVAL;
nr->t4 = opt * HZ;
return 0;
case NETROM_IDLE:
- if (opt > ULONG_MAX / (60 * HZ))
+ if (opt > UINT_MAX / (60 * HZ))
return -EINVAL;
nr->idle = opt * 60 * HZ;
return 0;
diff --git a/net/nfc/llcp_sock.c b/net/nfc/llcp_sock.c
index 6cfd30fc0798..0b93a17b9f11 100644
--- a/net/nfc/llcp_sock.c
+++ b/net/nfc/llcp_sock.c
@@ -789,6 +789,11 @@ static int llcp_sock_sendmsg(struct socket *sock, struct msghdr *msg,
lock_sock(sk);
+ if (!llcp_sock->local) {
+ release_sock(sk);
+ return -ENODEV;
+ }
+
if (sk->sk_type == SOCK_DGRAM) {
DECLARE_SOCKADDR(struct sockaddr_nfc_llcp *, addr,
msg->msg_name);
diff --git a/net/openvswitch/flow.c b/net/openvswitch/flow.c
index 9713035b89e3..02096f2ec678 100644
--- a/net/openvswitch/flow.c
+++ b/net/openvswitch/flow.c
@@ -34,6 +34,7 @@
#include <net/mpls.h>
#include <net/ndisc.h>
#include <net/nsh.h>
+#include <net/netfilter/nf_conntrack_zones.h>
#include "conntrack.h"
#include "datapath.h"
@@ -858,8 +859,9 @@ int ovs_flow_key_extract(const struct ip_tunnel_info *tun_info,
#if IS_ENABLED(CONFIG_NET_TC_SKB_EXT)
struct tc_skb_ext *tc_ext;
#endif
- bool post_ct = false;
+ bool post_ct = false, post_ct_snat = false, post_ct_dnat = false;
int res, err;
+ u16 zone = 0;
/* Extract metadata from packet. */
if (tun_info) {
@@ -898,6 +900,9 @@ int ovs_flow_key_extract(const struct ip_tunnel_info *tun_info,
key->recirc_id = tc_ext ? tc_ext->chain : 0;
OVS_CB(skb)->mru = tc_ext ? tc_ext->mru : 0;
post_ct = tc_ext ? tc_ext->post_ct : false;
+ post_ct_snat = post_ct ? tc_ext->post_ct_snat : false;
+ post_ct_dnat = post_ct ? tc_ext->post_ct_dnat : false;
+ zone = post_ct ? tc_ext->zone : 0;
} else {
key->recirc_id = 0;
}
@@ -906,8 +911,19 @@ int ovs_flow_key_extract(const struct ip_tunnel_info *tun_info,
#endif
err = key_extract(skb, key);
- if (!err)
+ if (!err) {
ovs_ct_fill_key(skb, key, post_ct); /* Must be after key_extract(). */
+ if (post_ct) {
+ if (!skb_get_nfct(skb)) {
+ key->ct_zone = zone;
+ } else {
+ if (!post_ct_dnat)
+ key->ct_state &= ~OVS_CS_F_DST_NAT;
+ if (!post_ct_snat)
+ key->ct_state &= ~OVS_CS_F_SRC_NAT;
+ }
+ }
+ }
return err;
}
diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c
index 98e248b9c0b1..2a17eb77c904 100644
--- a/net/sched/act_ct.c
+++ b/net/sched/act_ct.c
@@ -839,6 +839,12 @@ static int ct_nat_execute(struct sk_buff *skb, struct nf_conn *ct,
}
err = nf_nat_packet(ct, ctinfo, hooknum, skb);
+ if (err == NF_ACCEPT) {
+ if (maniptype == NF_NAT_MANIP_SRC)
+ tc_skb_cb(skb)->post_ct_snat = 1;
+ if (maniptype == NF_NAT_MANIP_DST)
+ tc_skb_cb(skb)->post_ct_dnat = 1;
+ }
out:
return err;
}
@@ -1049,6 +1055,7 @@ static int tcf_ct_act(struct sk_buff *skb, const struct tc_action *a,
skb_push_rcsum(skb, nh_ofs);
tc_skb_cb(skb)->post_ct = true;
+ tc_skb_cb(skb)->zone = p->zone;
out_clear:
if (defrag)
qdisc_skb_cb(skb)->pkt_len = skb->len;
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index ff8a9383bf1c..cc9409aa755e 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -1625,6 +1625,9 @@ int tcf_classify(struct sk_buff *skb,
ext->chain = last_executed_chain;
ext->mru = cb->mru;
ext->post_ct = cb->post_ct;
+ ext->post_ct_snat = cb->post_ct_snat;
+ ext->post_ct_dnat = cb->post_ct_dnat;
+ ext->zone = cb->zone;
}
return ret;
diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c
index 161bd91c8c6b..709348262410 100644
--- a/net/sched/cls_flower.c
+++ b/net/sched/cls_flower.c
@@ -311,6 +311,7 @@ static int fl_classify(struct sk_buff *skb, const struct tcf_proto *tp,
{
struct cls_fl_head *head = rcu_dereference_bh(tp->root);
bool post_ct = tc_skb_cb(skb)->post_ct;
+ u16 zone = tc_skb_cb(skb)->zone;
struct fl_flow_key skb_key;
struct fl_flow_mask *mask;
struct cls_fl_filter *f;
@@ -328,7 +329,7 @@ static int fl_classify(struct sk_buff *skb, const struct tcf_proto *tp,
skb_flow_dissect_ct(skb, &mask->dissector, &skb_key,
fl_ct_info_to_flower_map,
ARRAY_SIZE(fl_ct_info_to_flower_map),
- post_ct);
+ post_ct, zone);
skb_flow_dissect_hash(skb, &mask->dissector, &skb_key);
skb_flow_dissect(skb, &mask->dissector, &skb_key, 0);
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index 12f39a2dffd4..4bbfd2622327 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -1062,7 +1062,7 @@ static int qdisc_graft(struct net_device *dev, struct Qdisc *parent,
qdisc_offload_graft_root(dev, new, old, extack);
- if (new && new->ops->attach)
+ if (new && new->ops->attach && !ingress)
goto skip;
for (i = 0; i < num_q; i++) {
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 66d2fbe9ef50..47ca76ba7ffa 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -1455,6 +1455,7 @@ void psched_ratecfg_precompute(struct psched_ratecfg *r,
{
memset(r, 0, sizeof(*r));
r->overhead = conf->overhead;
+ r->mpu = conf->mpu;
r->rate_bytes_ps = max_t(u64, conf->rate, rate64);
r->linklayer = (conf->linklayer & TC_LINKLAYER_MASK);
psched_ratecfg_precompute__(r->rate_bytes_ps, &r->mult, &r->shift);
diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c
index eea6d4a854e9..07ff719f3907 100644
--- a/net/smc/af_smc.c
+++ b/net/smc/af_smc.c
@@ -613,10 +613,12 @@ static int smc_connect_decline_fallback(struct smc_sock *smc, int reason_code,
static void smc_conn_abort(struct smc_sock *smc, int local_first)
{
+ struct smc_connection *conn = &smc->conn;
+ struct smc_link_group *lgr = conn->lgr;
+
+ smc_conn_free(conn);
if (local_first)
- smc_lgr_cleanup_early(&smc->conn);
- else
- smc_conn_free(&smc->conn);
+ smc_lgr_cleanup_early(lgr);
}
/* check if there is a rdma device available for this connection. */
diff --git a/net/smc/smc_core.c b/net/smc/smc_core.c
index 506b8498623b..36e93a3f284d 100644
--- a/net/smc/smc_core.c
+++ b/net/smc/smc_core.c
@@ -170,8 +170,10 @@ static int smc_lgr_register_conn(struct smc_connection *conn, bool first)
if (!conn->lgr->is_smcd) {
rc = smcr_lgr_conn_assign_link(conn, first);
- if (rc)
+ if (rc) {
+ conn->lgr = NULL;
return rc;
+ }
}
/* find a new alert_token_local value not yet used by some connection
* in this link group
@@ -579,15 +581,13 @@ int smcd_nl_get_lgr(struct sk_buff *skb, struct netlink_callback *cb)
return skb->len;
}
-void smc_lgr_cleanup_early(struct smc_connection *conn)
+void smc_lgr_cleanup_early(struct smc_link_group *lgr)
{
- struct smc_link_group *lgr = conn->lgr;
spinlock_t *lgr_lock;
if (!lgr)
return;
- smc_conn_free(conn);
smc_lgr_list_head(lgr, &lgr_lock);
spin_lock_bh(lgr_lock);
/* do not use this link group for new connections */
@@ -1387,16 +1387,11 @@ void smc_smcd_terminate_all(struct smcd_dev *smcd)
/* Called when an SMCR device is removed or the smc module is unloaded.
* If smcibdev is given, all SMCR link groups using this device are terminated.
* If smcibdev is NULL, all SMCR link groups are terminated.
- *
- * We must wait here for QPs been destroyed before we destroy the CQs,
- * or we won't received any CQEs and cdc_pend_tx_wr cannot reach 0 thus
- * smc_sock cannot be released.
*/
void smc_smcr_terminate_all(struct smc_ib_device *smcibdev)
{
struct smc_link_group *lgr, *lg;
LIST_HEAD(lgr_free_list);
- LIST_HEAD(lgr_linkdown_list);
int i;
spin_lock_bh(&smc_lgr_list.lock);
@@ -1408,7 +1403,7 @@ void smc_smcr_terminate_all(struct smc_ib_device *smcibdev)
list_for_each_entry_safe(lgr, lg, &smc_lgr_list.list, list) {
for (i = 0; i < SMC_LINKS_PER_LGR_MAX; i++) {
if (lgr->lnk[i].smcibdev == smcibdev)
- list_move_tail(&lgr->list, &lgr_linkdown_list);
+ smcr_link_down_cond_sched(&lgr->lnk[i]);
}
}
}
@@ -1420,16 +1415,6 @@ void smc_smcr_terminate_all(struct smc_ib_device *smcibdev)
__smc_lgr_terminate(lgr, false);
}
- list_for_each_entry_safe(lgr, lg, &lgr_linkdown_list, list) {
- for (i = 0; i < SMC_LINKS_PER_LGR_MAX; i++) {
- if (lgr->lnk[i].smcibdev == smcibdev) {
- mutex_lock(&lgr->llc_conf_mutex);
- smcr_link_down_cond(&lgr->lnk[i]);
- mutex_unlock(&lgr->llc_conf_mutex);
- }
- }
- }
-
if (smcibdev) {
if (atomic_read(&smcibdev->lnk_cnt))
wait_event(smcibdev->lnks_deleted,
@@ -1750,8 +1735,10 @@ int smc_conn_create(struct smc_sock *smc, struct smc_init_info *ini)
write_lock_bh(&lgr->conns_lock);
rc = smc_lgr_register_conn(conn, true);
write_unlock_bh(&lgr->conns_lock);
- if (rc)
+ if (rc) {
+ smc_lgr_cleanup_early(lgr);
goto out;
+ }
}
conn->local_tx_ctrl.common.type = SMC_CDC_MSG_TYPE;
conn->local_tx_ctrl.len = SMC_WR_TX_SIZE;
diff --git a/net/smc/smc_core.h b/net/smc/smc_core.h
index 51a3e8248ade..9a0523f4c7ba 100644
--- a/net/smc/smc_core.h
+++ b/net/smc/smc_core.h
@@ -419,7 +419,7 @@ static inline void smc_set_pci_values(struct pci_dev *pci_dev,
struct smc_sock;
struct smc_clc_msg_accept_confirm;
-void smc_lgr_cleanup_early(struct smc_connection *conn);
+void smc_lgr_cleanup_early(struct smc_link_group *lgr);
void smc_lgr_terminate_sched(struct smc_link_group *lgr);
void smcr_port_add(struct smc_ib_device *smcibdev, u8 ibport);
void smcr_port_err(struct smc_ib_device *smcibdev, u8 ibport);
diff --git a/net/socket.c b/net/socket.c
index 7f64a6eccf63..5053eb0100e4 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -829,6 +829,7 @@ void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
int empty = 1, false_tstamp = 0;
struct skb_shared_hwtstamps *shhwtstamps =
skb_hwtstamps(skb);
+ ktime_t hwtstamp;
/* Race occurred between timestamp enabling and packet
receiving. Fill in the current time for now. */
@@ -877,10 +878,12 @@ void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
(sk->sk_tsflags & SOF_TIMESTAMPING_RAW_HARDWARE) &&
!skb_is_swtx_tstamp(skb, false_tstamp)) {
if (sk->sk_tsflags & SOF_TIMESTAMPING_BIND_PHC)
- ptp_convert_timestamp(shhwtstamps, sk->sk_bind_phc);
+ hwtstamp = ptp_convert_timestamp(shhwtstamps,
+ sk->sk_bind_phc);
+ else
+ hwtstamp = shhwtstamps->hwtstamp;
- if (ktime_to_timespec64_cond(shhwtstamps->hwtstamp,
- tss.ts + 2)) {
+ if (ktime_to_timespec64_cond(hwtstamp, tss.ts + 2)) {
empty = 0;
if ((sk->sk_tsflags & SOF_TIMESTAMPING_OPT_PKTINFO) &&
diff --git a/net/unix/garbage.c b/net/unix/garbage.c
index 12e2ddaf887f..d45d5366115a 100644
--- a/net/unix/garbage.c
+++ b/net/unix/garbage.c
@@ -192,8 +192,11 @@ void wait_for_unix_gc(void)
{
/* If number of inflight sockets is insane,
* force a garbage collect right now.
+ * Paired with the WRITE_ONCE() in unix_inflight(),
+ * unix_notinflight() and gc_in_progress().
*/
- if (unix_tot_inflight > UNIX_INFLIGHT_TRIGGER_GC && !gc_in_progress)
+ if (READ_ONCE(unix_tot_inflight) > UNIX_INFLIGHT_TRIGGER_GC &&
+ !READ_ONCE(gc_in_progress))
unix_gc();
wait_event(unix_gc_wait, gc_in_progress == false);
}
@@ -213,7 +216,9 @@ void unix_gc(void)
if (gc_in_progress)
goto out;
- gc_in_progress = true;
+ /* Paired with READ_ONCE() in wait_for_unix_gc(). */
+ WRITE_ONCE(gc_in_progress, true);
+
/* First, select candidates for garbage collection. Only
* in-flight sockets are considered, and from those only ones
* which don't have any external reference.
@@ -299,7 +304,10 @@ void unix_gc(void)
/* All candidates should have been detached by now. */
BUG_ON(!list_empty(&gc_candidates));
- gc_in_progress = false;
+
+ /* Paired with READ_ONCE() in wait_for_unix_gc(). */
+ WRITE_ONCE(gc_in_progress, false);
+
wake_up(&unix_gc_wait);
out:
diff --git a/net/unix/scm.c b/net/unix/scm.c
index 052ae709ce28..aa27a02478dc 100644
--- a/net/unix/scm.c
+++ b/net/unix/scm.c
@@ -60,7 +60,8 @@ void unix_inflight(struct user_struct *user, struct file *fp)
} else {
BUG_ON(list_empty(&u->link));
}
- unix_tot_inflight++;
+ /* Paired with READ_ONCE() in wait_for_unix_gc() */
+ WRITE_ONCE(unix_tot_inflight, unix_tot_inflight + 1);
}
user->unix_inflight++;
spin_unlock(&unix_gc_lock);
@@ -80,7 +81,8 @@ void unix_notinflight(struct user_struct *user, struct file *fp)
if (atomic_long_dec_and_test(&u->inflight))
list_del_init(&u->link);
- unix_tot_inflight--;
+ /* Paired with READ_ONCE() in wait_for_unix_gc() */
+ WRITE_ONCE(unix_tot_inflight, unix_tot_inflight - 1);
}
user->unix_inflight--;
spin_unlock(&unix_gc_lock);
diff --git a/net/xfrm/xfrm_compat.c b/net/xfrm/xfrm_compat.c
index 2bf269390163..a0f62fa02e06 100644
--- a/net/xfrm/xfrm_compat.c
+++ b/net/xfrm/xfrm_compat.c
@@ -127,6 +127,7 @@ static const struct nla_policy compat_policy[XFRMA_MAX+1] = {
[XFRMA_SET_MARK] = { .type = NLA_U32 },
[XFRMA_SET_MARK_MASK] = { .type = NLA_U32 },
[XFRMA_IF_ID] = { .type = NLA_U32 },
+ [XFRMA_MTIMER_THRESH] = { .type = NLA_U32 },
};
static struct nlmsghdr *xfrm_nlmsg_put_compat(struct sk_buff *skb,
@@ -274,9 +275,10 @@ static int xfrm_xlate64_attr(struct sk_buff *dst, const struct nlattr *src)
case XFRMA_SET_MARK:
case XFRMA_SET_MARK_MASK:
case XFRMA_IF_ID:
+ case XFRMA_MTIMER_THRESH:
return xfrm_nla_cpy(dst, src, nla_len(src));
default:
- BUILD_BUG_ON(XFRMA_MAX != XFRMA_IF_ID);
+ BUILD_BUG_ON(XFRMA_MAX != XFRMA_MTIMER_THRESH);
pr_warn_once("unsupported nla_type %d\n", src->nla_type);
return -EOPNOTSUPP;
}
@@ -431,7 +433,7 @@ static int xfrm_xlate32_attr(void *dst, const struct nlattr *nla,
int err;
if (type > XFRMA_MAX) {
- BUILD_BUG_ON(XFRMA_MAX != XFRMA_IF_ID);
+ BUILD_BUG_ON(XFRMA_MAX != XFRMA_MTIMER_THRESH);
NL_SET_ERR_MSG(extack, "Bad attribute");
return -EOPNOTSUPP;
}
diff --git a/net/xfrm/xfrm_interface.c b/net/xfrm/xfrm_interface.c
index 41de46b5ffa9..57448fc519fc 100644
--- a/net/xfrm/xfrm_interface.c
+++ b/net/xfrm/xfrm_interface.c
@@ -637,11 +637,16 @@ static int xfrmi_newlink(struct net *src_net, struct net_device *dev,
struct netlink_ext_ack *extack)
{
struct net *net = dev_net(dev);
- struct xfrm_if_parms p;
+ struct xfrm_if_parms p = {};
struct xfrm_if *xi;
int err;
xfrmi_netlink_parms(data, &p);
+ if (!p.if_id) {
+ NL_SET_ERR_MSG(extack, "if_id must be non zero");
+ return -EINVAL;
+ }
+
xi = xfrmi_locate(net, &p);
if (xi)
return -EEXIST;
@@ -666,7 +671,12 @@ static int xfrmi_changelink(struct net_device *dev, struct nlattr *tb[],
{
struct xfrm_if *xi = netdev_priv(dev);
struct net *net = xi->net;
- struct xfrm_if_parms p;
+ struct xfrm_if_parms p = {};
+
+ if (!p.if_id) {
+ NL_SET_ERR_MSG(extack, "if_id must be non zero");
+ return -EINVAL;
+ }
xfrmi_netlink_parms(data, &p);
xi = xfrmi_locate(net, &p);
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c
index 229544bc70c2..4dc4a7bbe51c 100644
--- a/net/xfrm/xfrm_output.c
+++ b/net/xfrm/xfrm_output.c
@@ -647,10 +647,12 @@ static int xfrm_output_gso(struct net *net, struct sock *sk, struct sk_buff *skb
* This requires hardware to know the inner packet type to calculate
* the inner header checksum. Save inner ip protocol here to avoid
* traversing the packet in the vendor's xmit code.
- * If the encap type is IPIP, just save skb->inner_ipproto. Otherwise,
- * get the ip protocol from the IP header.
+ * For IPsec tunnel mode save the ip protocol from the IP header of the
+ * plain text packet. Otherwise If the encap type is IPIP, just save
+ * skb->inner_ipproto in any other case get the ip protocol from the IP
+ * header.
*/
-static void xfrm_get_inner_ipproto(struct sk_buff *skb)
+static void xfrm_get_inner_ipproto(struct sk_buff *skb, struct xfrm_state *x)
{
struct xfrm_offload *xo = xfrm_offload(skb);
const struct ethhdr *eth;
@@ -658,6 +660,25 @@ static void xfrm_get_inner_ipproto(struct sk_buff *skb)
if (!xo)
return;
+ if (x->outer_mode.encap == XFRM_MODE_TUNNEL) {
+ switch (x->outer_mode.family) {
+ case AF_INET:
+ xo->inner_ipproto = ip_hdr(skb)->protocol;
+ break;
+ case AF_INET6:
+ xo->inner_ipproto = ipv6_hdr(skb)->nexthdr;
+ break;
+ default:
+ break;
+ }
+
+ return;
+ }
+
+ /* non-Tunnel Mode */
+ if (!skb->encapsulation)
+ return;
+
if (skb->inner_protocol_type == ENCAP_TYPE_IPPROTO) {
xo->inner_ipproto = skb->inner_ipproto;
return;
@@ -712,8 +733,7 @@ int xfrm_output(struct sock *sk, struct sk_buff *skb)
sp->xvec[sp->len++] = x;
xfrm_state_hold(x);
- if (skb->encapsulation)
- xfrm_get_inner_ipproto(skb);
+ xfrm_get_inner_ipproto(skb, x);
skb->encapsulation = 1;
if (skb_is_gso(skb)) {
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 37d17a79617c..37b149f63262 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -31,8 +31,10 @@
#include <linux/if_tunnel.h>
#include <net/dst.h>
#include <net/flow.h>
+#include <net/inet_ecn.h>
#include <net/xfrm.h>
#include <net/ip.h>
+#include <net/gre.h>
#if IS_ENABLED(CONFIG_IPV6_MIP6)
#include <net/mip6.h>
#endif
@@ -3296,7 +3298,7 @@ decode_session4(struct sk_buff *skb, struct flowi *fl, bool reverse)
fl4->flowi4_proto = iph->protocol;
fl4->daddr = reverse ? iph->saddr : iph->daddr;
fl4->saddr = reverse ? iph->daddr : iph->saddr;
- fl4->flowi4_tos = iph->tos;
+ fl4->flowi4_tos = iph->tos & ~INET_ECN_MASK;
if (!ip_is_fragment(iph)) {
switch (iph->protocol) {
@@ -3424,6 +3426,26 @@ decode_session6(struct sk_buff *skb, struct flowi *fl, bool reverse)
}
fl6->flowi6_proto = nexthdr;
return;
+ case IPPROTO_GRE:
+ if (!onlyproto &&
+ (nh + offset + 12 < skb->data ||
+ pskb_may_pull(skb, nh + offset + 12 - skb->data))) {
+ struct gre_base_hdr *gre_hdr;
+ __be32 *gre_key;
+
+ nh = skb_network_header(skb);
+ gre_hdr = (struct gre_base_hdr *)(nh + offset);
+ gre_key = (__be32 *)(gre_hdr + 1);
+
+ if (gre_hdr->flags & GRE_KEY) {
+ if (gre_hdr->flags & GRE_CSUM)
+ gre_key++;
+ fl6->fl6_gre_key = *gre_key;
+ }
+ }
+ fl6->flowi6_proto = nexthdr;
+ return;
+
#if IS_ENABLED(CONFIG_IPV6_MIP6)
case IPPROTO_MH:
offset += ipv6_optlen(exthdr);
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index a2f4001221d1..78d51399a0f4 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -1593,6 +1593,9 @@ static struct xfrm_state *xfrm_state_clone(struct xfrm_state *orig,
x->km.seq = orig->km.seq;
x->replay = orig->replay;
x->preplay = orig->preplay;
+ x->mapping_maxage = orig->mapping_maxage;
+ x->new_mapping = 0;
+ x->new_mapping_sport = 0;
return x;
@@ -2242,7 +2245,7 @@ int km_query(struct xfrm_state *x, struct xfrm_tmpl *t, struct xfrm_policy *pol)
}
EXPORT_SYMBOL(km_query);
-int km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
+static int __km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
{
int err = -EINVAL;
struct xfrm_mgr *km;
@@ -2257,6 +2260,24 @@ int km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
rcu_read_unlock();
return err;
}
+
+int km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
+{
+ int ret = 0;
+
+ if (x->mapping_maxage) {
+ if ((jiffies / HZ - x->new_mapping) > x->mapping_maxage ||
+ x->new_mapping_sport != sport) {
+ x->new_mapping_sport = sport;
+ x->new_mapping = jiffies / HZ;
+ ret = __km_new_mapping(x, ipaddr, sport);
+ }
+ } else {
+ ret = __km_new_mapping(x, ipaddr, sport);
+ }
+
+ return ret;
+}
EXPORT_SYMBOL(km_new_mapping);
void km_policy_expired(struct xfrm_policy *pol, int dir, int hard, u32 portid)
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index 3a3cb09eec12..b10f88822c0d 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -282,6 +282,10 @@ static int verify_newsa_info(struct xfrm_usersa_info *p,
err = 0;
+ if (attrs[XFRMA_MTIMER_THRESH])
+ if (!attrs[XFRMA_ENCAP])
+ err = -EINVAL;
+
out:
return err;
}
@@ -521,6 +525,7 @@ static void xfrm_update_ae_params(struct xfrm_state *x, struct nlattr **attrs,
struct nlattr *lt = attrs[XFRMA_LTIME_VAL];
struct nlattr *et = attrs[XFRMA_ETIMER_THRESH];
struct nlattr *rt = attrs[XFRMA_REPLAY_THRESH];
+ struct nlattr *mt = attrs[XFRMA_MTIMER_THRESH];
if (re) {
struct xfrm_replay_state_esn *replay_esn;
@@ -552,6 +557,9 @@ static void xfrm_update_ae_params(struct xfrm_state *x, struct nlattr **attrs,
if (rt)
x->replay_maxdiff = nla_get_u32(rt);
+
+ if (mt)
+ x->mapping_maxage = nla_get_u32(mt);
}
static void xfrm_smark_init(struct nlattr **attrs, struct xfrm_mark *m)
@@ -621,8 +629,13 @@ static struct xfrm_state *xfrm_state_construct(struct net *net,
xfrm_smark_init(attrs, &x->props.smark);
- if (attrs[XFRMA_IF_ID])
+ if (attrs[XFRMA_IF_ID]) {
x->if_id = nla_get_u32(attrs[XFRMA_IF_ID]);
+ if (!x->if_id) {
+ err = -EINVAL;
+ goto error;
+ }
+ }
err = __xfrm_init_state(x, false, attrs[XFRMA_OFFLOAD_DEV]);
if (err)
@@ -1024,8 +1037,13 @@ static int copy_to_user_state_extra(struct xfrm_state *x,
if (ret)
goto out;
}
- if (x->security)
+ if (x->security) {
ret = copy_sec_ctx(x->security, skb);
+ if (ret)
+ goto out;
+ }
+ if (x->mapping_maxage)
+ ret = nla_put_u32(skb, XFRMA_MTIMER_THRESH, x->mapping_maxage);
out:
return ret;
}
@@ -1413,8 +1431,13 @@ static int xfrm_alloc_userspi(struct sk_buff *skb, struct nlmsghdr *nlh,
mark = xfrm_mark_get(attrs, &m);
- if (attrs[XFRMA_IF_ID])
+ if (attrs[XFRMA_IF_ID]) {
if_id = nla_get_u32(attrs[XFRMA_IF_ID]);
+ if (!if_id) {
+ err = -EINVAL;
+ goto out_noput;
+ }
+ }
if (p->info.seq) {
x = xfrm_find_acq_byseq(net, mark, p->info.seq);
@@ -1727,8 +1750,13 @@ static struct xfrm_policy *xfrm_policy_construct(struct net *net, struct xfrm_us
xfrm_mark_get(attrs, &xp->mark);
- if (attrs[XFRMA_IF_ID])
+ if (attrs[XFRMA_IF_ID]) {
xp->if_id = nla_get_u32(attrs[XFRMA_IF_ID]);
+ if (!xp->if_id) {
+ err = -EINVAL;
+ goto error;
+ }
+ }
return xp;
error:
@@ -3058,7 +3086,7 @@ static inline unsigned int xfrm_sa_len(struct xfrm_state *x)
if (x->props.extra_flags)
l += nla_total_size(sizeof(x->props.extra_flags));
if (x->xso.dev)
- l += nla_total_size(sizeof(x->xso));
+ l += nla_total_size(sizeof(struct xfrm_user_offload));
if (x->props.smark.v | x->props.smark.m) {
l += nla_total_size(sizeof(x->props.smark.v));
l += nla_total_size(sizeof(x->props.smark.m));
@@ -3069,6 +3097,9 @@ static inline unsigned int xfrm_sa_len(struct xfrm_state *x)
/* Must count x->lastused as it may become non-zero behind our back. */
l += nla_total_size_64bit(sizeof(u64));
+ if (x->mapping_maxage)
+ l += nla_total_size(sizeof(x->mapping_maxage));
+
return l;
}
diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
index 5fd48a8d4f10..c6e38e43c3fd 100644
--- a/samples/bpf/Makefile
+++ b/samples/bpf/Makefile
@@ -59,7 +59,11 @@ tprogs-y += xdp_redirect
tprogs-y += xdp_monitor
# Libbpf dependencies
-LIBBPF = $(TOOLS_PATH)/lib/bpf/libbpf.a
+LIBBPF_SRC = $(TOOLS_PATH)/lib/bpf
+LIBBPF_OUTPUT = $(abspath $(BPF_SAMPLES_PATH))/libbpf
+LIBBPF_DESTDIR = $(LIBBPF_OUTPUT)
+LIBBPF_INCLUDE = $(LIBBPF_DESTDIR)/include
+LIBBPF = $(LIBBPF_OUTPUT)/libbpf.a
CGROUP_HELPERS := ../../tools/testing/selftests/bpf/cgroup_helpers.o
TRACE_HELPERS := ../../tools/testing/selftests/bpf/trace_helpers.o
@@ -198,7 +202,7 @@ TPROGS_CFLAGS += -Wstrict-prototypes
TPROGS_CFLAGS += -I$(objtree)/usr/include
TPROGS_CFLAGS += -I$(srctree)/tools/testing/selftests/bpf/
-TPROGS_CFLAGS += -I$(srctree)/tools/lib/
+TPROGS_CFLAGS += -I$(LIBBPF_INCLUDE)
TPROGS_CFLAGS += -I$(srctree)/tools/include
TPROGS_CFLAGS += -I$(srctree)/tools/perf
TPROGS_CFLAGS += -DHAVE_ATTR_TEST=0
@@ -209,6 +213,11 @@ TPROGS_LDFLAGS := -L$(SYSROOT)/usr/lib
endif
TPROGS_LDLIBS += $(LIBBPF) -lelf -lz
+TPROGLDLIBS_xdp_monitor += -lm
+TPROGLDLIBS_xdp_redirect += -lm
+TPROGLDLIBS_xdp_redirect_cpu += -lm
+TPROGLDLIBS_xdp_redirect_map += -lm
+TPROGLDLIBS_xdp_redirect_map_multi += -lm
TPROGLDLIBS_tracex4 += -lrt
TPROGLDLIBS_trace_output += -lrt
TPROGLDLIBS_map_perf_test += -lrt
@@ -268,16 +277,27 @@ all:
clean:
$(MAKE) -C ../../ M=$(CURDIR) clean
@find $(CURDIR) -type f -name '*~' -delete
+ @$(RM) -r $(CURDIR)/libbpf $(CURDIR)/bpftool
-$(LIBBPF): FORCE
+$(LIBBPF): FORCE | $(LIBBPF_OUTPUT)
# Fix up variables inherited from Kbuild that tools/ build system won't like
- $(MAKE) -C $(dir $@) RM='rm -rf' EXTRA_CFLAGS="$(TPROGS_CFLAGS)" \
- LDFLAGS=$(TPROGS_LDFLAGS) srctree=$(BPF_SAMPLES_PATH)/../../ O=
+ $(MAKE) -C $(LIBBPF_SRC) RM='rm -rf' EXTRA_CFLAGS="$(TPROGS_CFLAGS)" \
+ LDFLAGS=$(TPROGS_LDFLAGS) srctree=$(BPF_SAMPLES_PATH)/../../ \
+ O= OUTPUT=$(LIBBPF_OUTPUT)/ DESTDIR=$(LIBBPF_DESTDIR) prefix= \
+ $@ install_headers
BPFTOOLDIR := $(TOOLS_PATH)/bpf/bpftool
-BPFTOOL := $(BPFTOOLDIR)/bpftool
-$(BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile)
- $(MAKE) -C $(BPFTOOLDIR) srctree=$(BPF_SAMPLES_PATH)/../../
+BPFTOOL_OUTPUT := $(abspath $(BPF_SAMPLES_PATH))/bpftool
+BPFTOOL := $(BPFTOOL_OUTPUT)/bpftool
+$(BPFTOOL): $(LIBBPF) $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
+ $(MAKE) -C $(BPFTOOLDIR) srctree=$(BPF_SAMPLES_PATH)/../../ \
+ OUTPUT=$(BPFTOOL_OUTPUT)/ \
+ LIBBPF_OUTPUT=$(LIBBPF_OUTPUT)/ \
+ LIBBPF_DESTDIR=$(LIBBPF_DESTDIR)/
+
+$(LIBBPF_OUTPUT) $(BPFTOOL_OUTPUT):
+ $(call msg,MKDIR,$@)
+ $(Q)mkdir -p $@
$(obj)/syscall_nrs.h: $(obj)/syscall_nrs.s FORCE
$(call filechk,offsets,__SYSCALL_NRS_H__)
@@ -309,6 +329,11 @@ verify_target_bpf: verify_cmds
$(BPF_SAMPLES_PATH)/*.c: verify_target_bpf $(LIBBPF)
$(src)/*.c: verify_target_bpf $(LIBBPF)
+libbpf_hdrs: $(LIBBPF)
+$(obj)/$(TRACE_HELPERS) $(obj)/$(CGROUP_HELPERS) $(obj)/$(XDP_SAMPLE): | libbpf_hdrs
+
+.PHONY: libbpf_hdrs
+
$(obj)/xdp_redirect_cpu_user.o: $(obj)/xdp_redirect_cpu.skel.h
$(obj)/xdp_redirect_map_multi_user.o: $(obj)/xdp_redirect_map_multi.skel.h
$(obj)/xdp_redirect_map_user.o: $(obj)/xdp_redirect_map.skel.h
@@ -320,6 +345,17 @@ $(obj)/hbm_out_kern.o: $(src)/hbm.h $(src)/hbm_kern.h
$(obj)/hbm.o: $(src)/hbm.h
$(obj)/hbm_edt_kern.o: $(src)/hbm.h $(src)/hbm_kern.h
+# Override includes for xdp_sample_user.o because $(srctree)/usr/include in
+# TPROGS_CFLAGS causes conflicts
+XDP_SAMPLE_CFLAGS += -Wall -O2 \
+ -I$(src)/../../tools/include \
+ -I$(src)/../../tools/include/uapi \
+ -I$(LIBBPF_INCLUDE) \
+ -I$(src)/../../tools/testing/selftests/bpf
+
+$(obj)/$(XDP_SAMPLE): TPROGS_CFLAGS = $(XDP_SAMPLE_CFLAGS)
+$(obj)/$(XDP_SAMPLE): $(src)/xdp_sample_user.h $(src)/xdp_sample_shared.h
+
-include $(BPF_SAMPLES_PATH)/Makefile.target
VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux)) \
@@ -366,7 +402,7 @@ $(obj)/%.bpf.o: $(src)/%.bpf.c $(obj)/vmlinux.h $(src)/xdp_sample.bpf.h $(src)/x
$(Q)$(CLANG) -g -O2 -target bpf -D__TARGET_ARCH_$(SRCARCH) \
-Wno-compare-distinct-pointer-types -I$(srctree)/include \
-I$(srctree)/samples/bpf -I$(srctree)/tools/include \
- -I$(srctree)/tools/lib $(CLANG_SYS_INCLUDES) \
+ -I$(LIBBPF_INCLUDE) $(CLANG_SYS_INCLUDES) \
-c $(filter %.bpf.c,$^) -o $@
LINKED_SKELS := xdp_redirect_cpu.skel.h xdp_redirect_map_multi.skel.h \
@@ -403,7 +439,7 @@ $(obj)/%.o: $(src)/%.c
@echo " CLANG-bpf " $@
$(Q)$(CLANG) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) $(BPF_EXTRA_CFLAGS) \
-I$(obj) -I$(srctree)/tools/testing/selftests/bpf/ \
- -I$(srctree)/tools/lib/ \
+ -I$(LIBBPF_INCLUDE) \
-D__KERNEL__ -D__BPF_TRACING__ -Wno-unused-value -Wno-pointer-sign \
-D__TARGET_ARCH_$(SRCARCH) -Wno-compare-distinct-pointer-types \
-Wno-gnu-variable-sized-type-not-at-end \
diff --git a/samples/bpf/Makefile.target b/samples/bpf/Makefile.target
index 5a368affa038..7621f55e2947 100644
--- a/samples/bpf/Makefile.target
+++ b/samples/bpf/Makefile.target
@@ -73,14 +73,3 @@ quiet_cmd_tprog-cobjs = CC $@
cmd_tprog-cobjs = $(CC) $(tprogc_flags) -c -o $@ $<
$(tprog-cobjs): $(obj)/%.o: $(src)/%.c FORCE
$(call if_changed_dep,tprog-cobjs)
-
-# Override includes for xdp_sample_user.o because $(srctree)/usr/include in
-# TPROGS_CFLAGS causes conflicts
-XDP_SAMPLE_CFLAGS += -Wall -O2 -lm \
- -I./tools/include \
- -I./tools/include/uapi \
- -I./tools/lib \
- -I./tools/testing/selftests/bpf
-$(obj)/xdp_sample_user.o: $(src)/xdp_sample_user.c \
- $(src)/xdp_sample_user.h $(src)/xdp_sample_shared.h
- $(CC) $(XDP_SAMPLE_CFLAGS) -c -o $@ $<
diff --git a/samples/bpf/hbm_kern.h b/samples/bpf/hbm_kern.h
index 722b3fadb467..1752a46a2b05 100644
--- a/samples/bpf/hbm_kern.h
+++ b/samples/bpf/hbm_kern.h
@@ -9,8 +9,6 @@
* Include file for sample Host Bandwidth Manager (HBM) BPF programs
*/
#define KBUILD_MODNAME "foo"
-#include <stddef.h>
-#include <stdbool.h>
#include <uapi/linux/bpf.h>
#include <uapi/linux/if_ether.h>
#include <uapi/linux/if_packet.h>
diff --git a/samples/bpf/lwt_len_hist_kern.c b/samples/bpf/lwt_len_hist_kern.c
index 9ed63e10e170..1fa14c54963a 100644
--- a/samples/bpf/lwt_len_hist_kern.c
+++ b/samples/bpf/lwt_len_hist_kern.c
@@ -16,13 +16,6 @@
#include <uapi/linux/in.h>
#include <bpf/bpf_helpers.h>
-# define printk(fmt, ...) \
- ({ \
- char ____fmt[] = fmt; \
- bpf_trace_printk(____fmt, sizeof(____fmt), \
- ##__VA_ARGS__); \
- })
-
struct bpf_elf_map {
__u32 type;
__u32 size_key;
diff --git a/samples/bpf/xdp_sample_user.h b/samples/bpf/xdp_sample_user.h
index d97465ff8c62..5f44b877ecf5 100644
--- a/samples/bpf/xdp_sample_user.h
+++ b/samples/bpf/xdp_sample_user.h
@@ -45,7 +45,9 @@ const char *get_driver_name(int ifindex);
int get_mac_addr(int ifindex, void *mac_addr);
#pragma GCC diagnostic push
+#ifndef __clang__
#pragma GCC diagnostic ignored "-Wstringop-truncation"
+#endif
__attribute__((unused))
static inline char *safe_strncpy(char *dst, const char *src, size_t size)
{
diff --git a/scripts/dtc/dtx_diff b/scripts/dtc/dtx_diff
index d3422ee15e30..f2bbde4bba86 100755
--- a/scripts/dtc/dtx_diff
+++ b/scripts/dtc/dtx_diff
@@ -59,12 +59,8 @@ Otherwise DTx is treated as a dts source file (aka .dts).
or '/include/' to be processed.
If DTx_1 and DTx_2 are in different architectures, then this script
- may not work since \${ARCH} is part of the include path. Two possible
- workarounds:
-
- `basename $0` \\
- <(ARCH=arch_of_dtx_1 `basename $0` DTx_1) \\
- <(ARCH=arch_of_dtx_2 `basename $0` DTx_2)
+ may not work since \${ARCH} is part of the include path. The following
+ workaround can be used:
`basename $0` ARCH=arch_of_dtx_1 DTx_1 >tmp_dtx_1.dts
`basename $0` ARCH=arch_of_dtx_2 DTx_2 >tmp_dtx_2.dts
diff --git a/scripts/sphinx-pre-install b/scripts/sphinx-pre-install
index 288e86a9d1e5..f126ecbb0494 100755
--- a/scripts/sphinx-pre-install
+++ b/scripts/sphinx-pre-install
@@ -78,6 +78,7 @@ my %texlive = (
'ucs.sty' => 'texlive-ucs',
'upquote.sty' => 'texlive-upquote',
'wrapfig.sty' => 'texlive-wrapfig',
+ 'ctexhook.sty' => 'texlive-ctex',
);
#
@@ -369,6 +370,9 @@ sub give_debian_hints()
);
if ($pdf) {
+ check_missing_file(["/usr/share/texlive/texmf-dist/tex/latex/ctex/ctexhook.sty"],
+ "texlive-lang-chinese", 2);
+
check_missing_file(["/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"],
"fonts-dejavu", 2);
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 9309e62d46ed..baa12d1007c7 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -987,18 +987,22 @@ static int selinux_sb_clone_mnt_opts(const struct super_block *oldsb,
static int selinux_add_opt(int token, const char *s, void **mnt_opts)
{
struct selinux_mnt_opts *opts = *mnt_opts;
+ bool is_alloc_opts = false;
if (token == Opt_seclabel) /* eaten and completely ignored */
return 0;
+ if (!s)
+ return -ENOMEM;
+
if (!opts) {
opts = kzalloc(sizeof(struct selinux_mnt_opts), GFP_KERNEL);
if (!opts)
return -ENOMEM;
*mnt_opts = opts;
+ is_alloc_opts = true;
}
- if (!s)
- return -ENOMEM;
+
switch (token) {
case Opt_context:
if (opts->context || opts->defcontext)
@@ -1023,6 +1027,10 @@ static int selinux_add_opt(int token, const char *s, void **mnt_opts)
}
return 0;
Einval:
+ if (is_alloc_opts) {
+ kfree(opts);
+ *mnt_opts = NULL;
+ }
pr_warn(SEL_MOUNT_FAIL_MSG);
return -EINVAL;
}
diff --git a/sound/core/jack.c b/sound/core/jack.c
index 537df1e98f8a..d1e3055f2b6a 100644
--- a/sound/core/jack.c
+++ b/sound/core/jack.c
@@ -62,10 +62,13 @@ static int snd_jack_dev_free(struct snd_device *device)
struct snd_card *card = device->card;
struct snd_jack_kctl *jack_kctl, *tmp_jack_kctl;
+ down_write(&card->controls_rwsem);
list_for_each_entry_safe(jack_kctl, tmp_jack_kctl, &jack->kctl_list, list) {
list_del_init(&jack_kctl->list);
snd_ctl_remove(card, jack_kctl->kctl);
}
+ up_write(&card->controls_rwsem);
+
if (jack->private_free)
jack->private_free(jack);
diff --git a/sound/core/misc.c b/sound/core/misc.c
index 3579dd7a161f..50e4aaa6270d 100644
--- a/sound/core/misc.c
+++ b/sound/core/misc.c
@@ -112,7 +112,7 @@ snd_pci_quirk_lookup_id(u16 vendor, u16 device,
{
const struct snd_pci_quirk *q;
- for (q = list; q->subvendor; q++) {
+ for (q = list; q->subvendor || q->subdevice; q++) {
if (q->subvendor != vendor)
continue;
if (!q->subdevice ||
diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
index 20a0a4771b9a..3ee9edf85815 100644
--- a/sound/core/oss/pcm_oss.c
+++ b/sound/core/oss/pcm_oss.c
@@ -2065,7 +2065,7 @@ static int snd_pcm_oss_set_trigger(struct snd_pcm_oss_file *pcm_oss_file, int tr
int err, cmd;
#ifdef OSS_DEBUG
- pcm_dbg(substream->pcm, "pcm_oss: trigger = 0x%x\n", trigger);
+ pr_debug("pcm_oss: trigger = 0x%x\n", trigger);
#endif
psubstream = pcm_oss_file->streams[SNDRV_PCM_STREAM_PLAYBACK];
diff --git a/sound/core/pcm.c b/sound/core/pcm.c
index 6fd3677685d7..ba4a987ed1c6 100644
--- a/sound/core/pcm.c
+++ b/sound/core/pcm.c
@@ -810,7 +810,11 @@ EXPORT_SYMBOL(snd_pcm_new_internal);
static void free_chmap(struct snd_pcm_str *pstr)
{
if (pstr->chmap_kctl) {
- snd_ctl_remove(pstr->pcm->card, pstr->chmap_kctl);
+ struct snd_card *card = pstr->pcm->card;
+
+ down_write(&card->controls_rwsem);
+ snd_ctl_remove(card, pstr->chmap_kctl);
+ up_write(&card->controls_rwsem);
pstr->chmap_kctl = NULL;
}
}
diff --git a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c
index d6c02dea976c..bc933104c3ee 100644
--- a/sound/core/seq/seq_queue.c
+++ b/sound/core/seq/seq_queue.c
@@ -235,12 +235,15 @@ struct snd_seq_queue *snd_seq_queue_find_name(char *name)
/* -------------------------------------------------------- */
+#define MAX_CELL_PROCESSES_IN_QUEUE 1000
+
void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
{
unsigned long flags;
struct snd_seq_event_cell *cell;
snd_seq_tick_time_t cur_tick;
snd_seq_real_time_t cur_time;
+ int processed = 0;
if (q == NULL)
return;
@@ -263,6 +266,8 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
/* Process time queue... */
@@ -272,14 +277,19 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
+ out:
/* free lock */
spin_lock_irqsave(&q->check_lock, flags);
if (q->check_again) {
q->check_again = 0;
- spin_unlock_irqrestore(&q->check_lock, flags);
- goto __again;
+ if (processed < MAX_CELL_PROCESSES_IN_QUEUE) {
+ spin_unlock_irqrestore(&q->check_lock, flags);
+ goto __again;
+ }
}
q->check_blocked = 0;
spin_unlock_irqrestore(&q->check_lock, flags);
diff --git a/sound/hda/hdac_stream.c b/sound/hda/hdac_stream.c
index 9867555883c3..aa7955fdf68a 100644
--- a/sound/hda/hdac_stream.c
+++ b/sound/hda/hdac_stream.c
@@ -534,17 +534,11 @@ static void azx_timecounter_init(struct hdac_stream *azx_dev,
cc->mask = CLOCKSOURCE_MASK(32);
/*
- * Converting from 24 MHz to ns means applying a 125/3 factor.
- * To avoid any saturation issues in intermediate operations,
- * the 125 factor is applied first. The division is applied
- * last after reading the timecounter value.
- * Applying the 1/3 factor as part of the multiplication
- * requires at least 20 bits for a decent precision, however
- * overflows occur after about 4 hours or less, not a option.
+ * Calculate the optimal mult/shift values. The counter wraps
+ * around after ~178.9 seconds.
*/
-
- cc->mult = 125; /* saturation after 195 years */
- cc->shift = 0;
+ clocks_calc_mult_shift(&cc->mult, &cc->shift, 24000000,
+ NSEC_PER_SEC, 178);
nsec = 0; /* audio time is elapsed time since trigger */
timecounter_init(tc, cc, nsec);
diff --git a/sound/pci/hda/hda_bind.c b/sound/pci/hda/hda_bind.c
index 1c8bffc3eec6..7153bd53e189 100644
--- a/sound/pci/hda/hda_bind.c
+++ b/sound/pci/hda/hda_bind.c
@@ -156,6 +156,11 @@ static int hda_codec_driver_remove(struct device *dev)
return codec->bus->core.ext_ops->hdev_detach(&codec->core);
}
+ refcount_dec(&codec->pcm_ref);
+ snd_hda_codec_disconnect_pcms(codec);
+ wait_event(codec->remove_sleep, !refcount_read(&codec->pcm_ref));
+ snd_power_sync_ref(codec->bus->card);
+
if (codec->patch_ops.free)
codec->patch_ops.free(codec);
snd_hda_codec_cleanup_for_unbind(codec);
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 0c4a337c9fc0..7016b48227bf 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -703,20 +703,10 @@ get_hda_cvt_setup(struct hda_codec *codec, hda_nid_t nid)
/*
* PCM device
*/
-static void release_pcm(struct kref *kref)
-{
- struct hda_pcm *pcm = container_of(kref, struct hda_pcm, kref);
-
- if (pcm->pcm)
- snd_device_free(pcm->codec->card, pcm->pcm);
- clear_bit(pcm->device, pcm->codec->bus->pcm_dev_bits);
- kfree(pcm->name);
- kfree(pcm);
-}
-
void snd_hda_codec_pcm_put(struct hda_pcm *pcm)
{
- kref_put(&pcm->kref, release_pcm);
+ if (refcount_dec_and_test(&pcm->codec->pcm_ref))
+ wake_up(&pcm->codec->remove_sleep);
}
EXPORT_SYMBOL_GPL(snd_hda_codec_pcm_put);
@@ -731,7 +721,6 @@ struct hda_pcm *snd_hda_codec_pcm_new(struct hda_codec *codec,
return NULL;
pcm->codec = codec;
- kref_init(&pcm->kref);
va_start(args, fmt);
pcm->name = kvasprintf(GFP_KERNEL, fmt, args);
va_end(args);
@@ -741,6 +730,7 @@ struct hda_pcm *snd_hda_codec_pcm_new(struct hda_codec *codec,
}
list_add_tail(&pcm->list, &codec->pcm_list_head);
+ refcount_inc(&codec->pcm_ref);
return pcm;
}
EXPORT_SYMBOL_GPL(snd_hda_codec_pcm_new);
@@ -748,15 +738,31 @@ EXPORT_SYMBOL_GPL(snd_hda_codec_pcm_new);
/*
* codec destructor
*/
+void snd_hda_codec_disconnect_pcms(struct hda_codec *codec)
+{
+ struct hda_pcm *pcm;
+
+ list_for_each_entry(pcm, &codec->pcm_list_head, list) {
+ if (pcm->disconnected)
+ continue;
+ if (pcm->pcm)
+ snd_device_disconnect(codec->card, pcm->pcm);
+ snd_hda_codec_pcm_put(pcm);
+ pcm->disconnected = 1;
+ }
+}
+
static void codec_release_pcms(struct hda_codec *codec)
{
struct hda_pcm *pcm, *n;
list_for_each_entry_safe(pcm, n, &codec->pcm_list_head, list) {
- list_del_init(&pcm->list);
+ list_del(&pcm->list);
if (pcm->pcm)
- snd_device_disconnect(codec->card, pcm->pcm);
- snd_hda_codec_pcm_put(pcm);
+ snd_device_free(pcm->codec->card, pcm->pcm);
+ clear_bit(pcm->device, pcm->codec->bus->pcm_dev_bits);
+ kfree(pcm->name);
+ kfree(pcm);
}
}
@@ -769,6 +775,7 @@ void snd_hda_codec_cleanup_for_unbind(struct hda_codec *codec)
codec->registered = 0;
}
+ snd_hda_codec_disconnect_pcms(codec);
cancel_delayed_work_sync(&codec->jackpoll_work);
if (!codec->in_freeing)
snd_hda_ctls_clear(codec);
@@ -792,6 +799,7 @@ void snd_hda_codec_cleanup_for_unbind(struct hda_codec *codec)
remove_conn_list(codec);
snd_hdac_regmap_exit(&codec->core);
codec->configured = 0;
+ refcount_set(&codec->pcm_ref, 1); /* reset refcount */
}
EXPORT_SYMBOL_GPL(snd_hda_codec_cleanup_for_unbind);
@@ -958,6 +966,8 @@ int snd_hda_codec_device_new(struct hda_bus *bus, struct snd_card *card,
snd_array_init(&codec->verbs, sizeof(struct hda_verb *), 8);
INIT_LIST_HEAD(&codec->conn_list);
INIT_LIST_HEAD(&codec->pcm_list_head);
+ refcount_set(&codec->pcm_ref, 1);
+ init_waitqueue_head(&codec->remove_sleep);
INIT_DELAYED_WORK(&codec->jackpoll_work, hda_jackpoll_work);
codec->depop_delay = -1;
@@ -1727,8 +1737,11 @@ void snd_hda_ctls_clear(struct hda_codec *codec)
{
int i;
struct hda_nid_item *items = codec->mixers.list;
+
+ down_write(&codec->card->controls_rwsem);
for (i = 0; i < codec->mixers.used; i++)
snd_ctl_remove(codec->card, items[i].kctl);
+ up_write(&codec->card->controls_rwsem);
snd_array_free(&codec->mixers);
snd_array_free(&codec->nids);
}
diff --git a/sound/pci/hda/hda_controller.c b/sound/pci/hda/hda_controller.c
index 930ae4002a81..75dcb14ff20a 100644
--- a/sound/pci/hda/hda_controller.c
+++ b/sound/pci/hda/hda_controller.c
@@ -504,7 +504,6 @@ static int azx_get_time_info(struct snd_pcm_substream *substream,
snd_pcm_gettime(substream->runtime, system_ts);
nsec = timecounter_read(&azx_dev->core.tc);
- nsec = div_u64(nsec, 3); /* can be optimized */
if (audio_tstamp_config->report_delay)
nsec = azx_adjust_codec_delay(substream, nsec);
diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h
index d22c96eb2f8f..8621f576446b 100644
--- a/sound/pci/hda/hda_local.h
+++ b/sound/pci/hda/hda_local.h
@@ -137,6 +137,7 @@ int __snd_hda_add_vmaster(struct hda_codec *codec, char *name,
int snd_hda_codec_reset(struct hda_codec *codec);
void snd_hda_codec_register(struct hda_codec *codec);
void snd_hda_codec_cleanup_for_unbind(struct hda_codec *codec);
+void snd_hda_codec_disconnect_pcms(struct hda_codec *codec);
#define snd_hda_regmap_sync(codec) snd_hdac_regmap_sync(&(codec)->core)
diff --git a/sound/pci/hda/patch_cs8409-tables.c b/sound/pci/hda/patch_cs8409-tables.c
index 0fb0a428428b..df0b4522babf 100644
--- a/sound/pci/hda/patch_cs8409-tables.c
+++ b/sound/pci/hda/patch_cs8409-tables.c
@@ -252,6 +252,7 @@ struct sub_codec cs8409_cs42l42_codec = {
.init_seq_num = ARRAY_SIZE(cs42l42_init_reg_seq),
.hp_jack_in = 0,
.mic_jack_in = 0,
+ .force_status_change = 1,
.paged = 1,
.suspended = 1,
.no_type_dect = 0,
@@ -443,6 +444,7 @@ struct sub_codec dolphin_cs42l42_0 = {
.init_seq_num = ARRAY_SIZE(dolphin_c0_init_reg_seq),
.hp_jack_in = 0,
.mic_jack_in = 0,
+ .force_status_change = 1,
.paged = 1,
.suspended = 1,
.no_type_dect = 0,
@@ -456,6 +458,7 @@ struct sub_codec dolphin_cs42l42_1 = {
.init_seq_num = ARRAY_SIZE(dolphin_c1_init_reg_seq),
.hp_jack_in = 0,
.mic_jack_in = 0,
+ .force_status_change = 1,
.paged = 1,
.suspended = 1,
.no_type_dect = 1,
diff --git a/sound/pci/hda/patch_cs8409.c b/sound/pci/hda/patch_cs8409.c
index 039b9f2f8e94..aff2b5abb81e 100644
--- a/sound/pci/hda/patch_cs8409.c
+++ b/sound/pci/hda/patch_cs8409.c
@@ -628,15 +628,17 @@ static void cs42l42_run_jack_detect(struct sub_codec *cs42l42)
cs8409_i2c_write(cs42l42, 0x1b74, 0x07);
cs8409_i2c_write(cs42l42, 0x131b, 0xFD);
cs8409_i2c_write(cs42l42, 0x1120, 0x80);
- /* Wait ~100us*/
- usleep_range(100, 200);
+ /* Wait ~20ms*/
+ usleep_range(20000, 25000);
cs8409_i2c_write(cs42l42, 0x111f, 0x77);
cs8409_i2c_write(cs42l42, 0x1120, 0xc0);
}
static int cs42l42_handle_tip_sense(struct sub_codec *cs42l42, unsigned int reg_ts_status)
{
- int status_changed = 0;
+ int status_changed = cs42l42->force_status_change;
+
+ cs42l42->force_status_change = 0;
/* TIP_SENSE INSERT/REMOVE */
switch (reg_ts_status) {
@@ -791,6 +793,7 @@ static void cs42l42_suspend(struct sub_codec *cs42l42)
cs42l42->last_page = 0;
cs42l42->hp_jack_in = 0;
cs42l42->mic_jack_in = 0;
+ cs42l42->force_status_change = 1;
/* Put CS42L42 into Reset */
gpio_data = snd_hda_codec_read(codec, CS8409_PIN_AFG, 0, AC_VERB_GET_GPIO_DATA, 0);
diff --git a/sound/pci/hda/patch_cs8409.h b/sound/pci/hda/patch_cs8409.h
index ade2b838590c..d0b725c7285b 100644
--- a/sound/pci/hda/patch_cs8409.h
+++ b/sound/pci/hda/patch_cs8409.h
@@ -305,6 +305,7 @@ struct sub_codec {
unsigned int hp_jack_in:1;
unsigned int mic_jack_in:1;
+ unsigned int force_status_change:1;
unsigned int suspended:1;
unsigned int paged:1;
unsigned int last_page;
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 216cea04ad70..f12c9b942678 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -235,8 +235,7 @@ config SND_SOC_ALL_CODECS
imply SND_SOC_UDA1380
imply SND_SOC_WCD9335
imply SND_SOC_WCD934X
- imply SND_SOC_WCD937X
- imply SND_SOC_WCD938X
+ imply SND_SOC_WCD938X_SDW
imply SND_SOC_LPASS_RX_MACRO
imply SND_SOC_LPASS_TX_MACRO
imply SND_SOC_WL1273
diff --git a/sound/soc/codecs/rt5663.c b/sound/soc/codecs/rt5663.c
index be9fc58ff681..ee09ccd448dc 100644
--- a/sound/soc/codecs/rt5663.c
+++ b/sound/soc/codecs/rt5663.c
@@ -3461,6 +3461,7 @@ static void rt5663_calibrate(struct rt5663_priv *rt5663)
static int rt5663_parse_dp(struct rt5663_priv *rt5663, struct device *dev)
{
int table_size;
+ int ret;
device_property_read_u32(dev, "realtek,dc_offset_l_manual",
&rt5663->pdata.dc_offset_l_manual);
@@ -3477,9 +3478,11 @@ static int rt5663_parse_dp(struct rt5663_priv *rt5663, struct device *dev)
table_size = sizeof(struct impedance_mapping_table) *
rt5663->pdata.impedance_sensing_num;
rt5663->imp_table = devm_kzalloc(dev, table_size, GFP_KERNEL);
- device_property_read_u32_array(dev,
+ ret = device_property_read_u32_array(dev,
"realtek,impedance_sensing_table",
(u32 *)rt5663->imp_table, table_size);
+ if (ret)
+ return ret;
}
return 0;
@@ -3504,8 +3507,11 @@ static int rt5663_i2c_probe(struct i2c_client *i2c,
if (pdata)
rt5663->pdata = *pdata;
- else
- rt5663_parse_dp(rt5663, &i2c->dev);
+ else {
+ ret = rt5663_parse_dp(rt5663, &i2c->dev);
+ if (ret)
+ return ret;
+ }
for (i = 0; i < ARRAY_SIZE(rt5663->supplies); i++)
rt5663->supplies[i].supply = rt5663_supply_names[i];
diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c
index 24b41881a68f..d7d1536a4f37 100644
--- a/sound/soc/fsl/fsl_asrc.c
+++ b/sound/soc/fsl/fsl_asrc.c
@@ -19,6 +19,7 @@
#include "fsl_asrc.h"
#define IDEAL_RATIO_DECIMAL_DEPTH 26
+#define DIVIDER_NUM 64
#define pair_err(fmt, ...) \
dev_err(&asrc->pdev->dev, "Pair %c: " fmt, 'A' + index, ##__VA_ARGS__)
@@ -101,6 +102,55 @@ static unsigned char clk_map_imx8qxp[2][ASRC_CLK_MAP_LEN] = {
},
};
+/*
+ * According to RM, the divider range is 1 ~ 8,
+ * prescaler is power of 2 from 1 ~ 128.
+ */
+static int asrc_clk_divider[DIVIDER_NUM] = {
+ 1, 2, 4, 8, 16, 32, 64, 128, /* divider = 1 */
+ 2, 4, 8, 16, 32, 64, 128, 256, /* divider = 2 */
+ 3, 6, 12, 24, 48, 96, 192, 384, /* divider = 3 */
+ 4, 8, 16, 32, 64, 128, 256, 512, /* divider = 4 */
+ 5, 10, 20, 40, 80, 160, 320, 640, /* divider = 5 */
+ 6, 12, 24, 48, 96, 192, 384, 768, /* divider = 6 */
+ 7, 14, 28, 56, 112, 224, 448, 896, /* divider = 7 */
+ 8, 16, 32, 64, 128, 256, 512, 1024, /* divider = 8 */
+};
+
+/*
+ * Check if the divider is available for internal ratio mode
+ */
+static bool fsl_asrc_divider_avail(int clk_rate, int rate, int *div)
+{
+ u32 rem, i;
+ u64 n;
+
+ if (div)
+ *div = 0;
+
+ if (clk_rate == 0 || rate == 0)
+ return false;
+
+ n = clk_rate;
+ rem = do_div(n, rate);
+
+ if (div)
+ *div = n;
+
+ if (rem != 0)
+ return false;
+
+ for (i = 0; i < DIVIDER_NUM; i++) {
+ if (n == asrc_clk_divider[i])
+ break;
+ }
+
+ if (i == DIVIDER_NUM)
+ return false;
+
+ return true;
+}
+
/**
* fsl_asrc_sel_proc - Select the pre-processing and post-processing options
* @inrate: input sample rate
@@ -330,12 +380,12 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
enum asrc_word_width input_word_width;
enum asrc_word_width output_word_width;
u32 inrate, outrate, indiv, outdiv;
- u32 clk_index[2], div[2], rem[2];
+ u32 clk_index[2], div[2];
u64 clk_rate;
int in, out, channels;
int pre_proc, post_proc;
struct clk *clk;
- bool ideal;
+ bool ideal, div_avail;
if (!config) {
pair_err("invalid pair config\n");
@@ -415,8 +465,7 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
clk = asrc_priv->asrck_clk[clk_index[ideal ? OUT : IN]];
clk_rate = clk_get_rate(clk);
- rem[IN] = do_div(clk_rate, inrate);
- div[IN] = (u32)clk_rate;
+ div_avail = fsl_asrc_divider_avail(clk_rate, inrate, &div[IN]);
/*
* The divider range is [1, 1024], defined by the hardware. For non-
@@ -425,7 +474,7 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
* only result in different converting speeds. So remainder does not
* matter, as long as we keep the divider within its valid range.
*/
- if (div[IN] == 0 || (!ideal && (div[IN] > 1024 || rem[IN] != 0))) {
+ if (div[IN] == 0 || (!ideal && !div_avail)) {
pair_err("failed to support input sample rate %dHz by asrck_%x\n",
inrate, clk_index[ideal ? OUT : IN]);
return -EINVAL;
@@ -436,13 +485,12 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
clk = asrc_priv->asrck_clk[clk_index[OUT]];
clk_rate = clk_get_rate(clk);
if (ideal && use_ideal_rate)
- rem[OUT] = do_div(clk_rate, IDEAL_RATIO_RATE);
+ div_avail = fsl_asrc_divider_avail(clk_rate, IDEAL_RATIO_RATE, &div[OUT]);
else
- rem[OUT] = do_div(clk_rate, outrate);
- div[OUT] = clk_rate;
+ div_avail = fsl_asrc_divider_avail(clk_rate, outrate, &div[OUT]);
/* Output divider has the same limitation as the input one */
- if (div[OUT] == 0 || (!ideal && (div[OUT] > 1024 || rem[OUT] != 0))) {
+ if (div[OUT] == 0 || (!ideal && !div_avail)) {
pair_err("failed to support output sample rate %dHz by asrck_%x\n",
outrate, clk_index[OUT]);
return -EINVAL;
@@ -621,8 +669,7 @@ static void fsl_asrc_select_clk(struct fsl_asrc_priv *asrc_priv,
clk_index = asrc_priv->clk_map[j][i];
clk_rate = clk_get_rate(asrc_priv->asrck_clk[clk_index]);
/* Only match a perfect clock source with no remainder */
- if (clk_rate != 0 && (clk_rate / rate[j]) <= 1024 &&
- (clk_rate % rate[j]) == 0)
+ if (fsl_asrc_divider_avail(clk_rate, rate[j], NULL))
break;
}
diff --git a/sound/soc/fsl/fsl_mqs.c b/sound/soc/fsl/fsl_mqs.c
index 69aeb0e71844..0d4efbed41da 100644
--- a/sound/soc/fsl/fsl_mqs.c
+++ b/sound/soc/fsl/fsl_mqs.c
@@ -337,4 +337,4 @@ module_platform_driver(fsl_mqs_driver);
MODULE_AUTHOR("Shengjiu Wang <Shengjiu.Wang@nxp.com>");
MODULE_DESCRIPTION("MQS codec driver");
MODULE_LICENSE("GPL v2");
-MODULE_ALIAS("platform: fsl-mqs");
+MODULE_ALIAS("platform:fsl-mqs");
diff --git a/sound/soc/fsl/imx-card.c b/sound/soc/fsl/imx-card.c
index 58fd0639a069..db947180617a 100644
--- a/sound/soc/fsl/imx-card.c
+++ b/sound/soc/fsl/imx-card.c
@@ -120,7 +120,7 @@ struct imx_card_data {
static struct imx_akcodec_fs_mul ak4458_fs_mul[] = {
/* Normal, < 32kHz */
- { .rmin = 8000, .rmax = 24000, .wmin = 1024, .wmax = 1024, },
+ { .rmin = 8000, .rmax = 24000, .wmin = 256, .wmax = 1024, },
/* Normal, 32kHz */
{ .rmin = 32000, .rmax = 32000, .wmin = 256, .wmax = 1024, },
/* Normal */
@@ -151,8 +151,8 @@ static struct imx_akcodec_fs_mul ak4497_fs_mul[] = {
* Table 7 - mapping multiplier and speed mode
* Tables 8 & 9 - mapping speed mode and LRCK fs
*/
- { .rmin = 8000, .rmax = 32000, .wmin = 1024, .wmax = 1024, }, /* Normal, <= 32kHz */
- { .rmin = 44100, .rmax = 48000, .wmin = 512, .wmax = 512, }, /* Normal */
+ { .rmin = 8000, .rmax = 32000, .wmin = 256, .wmax = 1024, }, /* Normal, <= 32kHz */
+ { .rmin = 44100, .rmax = 48000, .wmin = 256, .wmax = 512, }, /* Normal */
{ .rmin = 88200, .rmax = 96000, .wmin = 256, .wmax = 256, }, /* Double */
{ .rmin = 176400, .rmax = 192000, .wmin = 128, .wmax = 128, }, /* Quad */
{ .rmin = 352800, .rmax = 384000, .wmin = 128, .wmax = 128, }, /* Oct */
@@ -164,7 +164,7 @@ static struct imx_akcodec_fs_mul ak4497_fs_mul[] = {
* (Table 4 from datasheet)
*/
static struct imx_akcodec_fs_mul ak5558_fs_mul[] = {
- { .rmin = 8000, .rmax = 32000, .wmin = 1024, .wmax = 1024, },
+ { .rmin = 8000, .rmax = 32000, .wmin = 512, .wmax = 1024, },
{ .rmin = 44100, .rmax = 48000, .wmin = 512, .wmax = 512, },
{ .rmin = 88200, .rmax = 96000, .wmin = 256, .wmax = 256, },
{ .rmin = 176400, .rmax = 192000, .wmin = 128, .wmax = 128, },
@@ -247,13 +247,14 @@ static bool codec_is_akcodec(unsigned int type)
}
static unsigned long akcodec_get_mclk_rate(struct snd_pcm_substream *substream,
- struct snd_pcm_hw_params *params)
+ struct snd_pcm_hw_params *params,
+ int slots, int slot_width)
{
struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct imx_card_data *data = snd_soc_card_get_drvdata(rtd->card);
const struct imx_card_plat_data *plat_data = data->plat_data;
struct dai_link_data *link_data = &data->link_data[rtd->num];
- unsigned int width = link_data->slots * link_data->slot_width;
+ unsigned int width = slots * slot_width;
unsigned int rate = params_rate(params);
int i;
@@ -349,7 +350,7 @@ static int imx_aif_hw_params(struct snd_pcm_substream *substream,
/* Set MCLK freq */
if (codec_is_akcodec(plat_data->type))
- mclk_freq = akcodec_get_mclk_rate(substream, params);
+ mclk_freq = akcodec_get_mclk_rate(substream, params, slots, slot_width);
else
mclk_freq = params_rate(params) * slots * slot_width;
/* Use the maximum freq from DSD512 (512*44100 = 22579200) */
@@ -553,8 +554,23 @@ static int imx_card_parse_of(struct imx_card_data *data)
link_data->cpu_sysclk_id = FSL_SAI_CLK_MAST1;
/* sai may support mclk/bclk = 1 */
- if (of_find_property(np, "fsl,mclk-equal-bclk", NULL))
+ if (of_find_property(np, "fsl,mclk-equal-bclk", NULL)) {
link_data->one2one_ratio = true;
+ } else {
+ int i;
+
+ /*
+ * i.MX8MQ don't support one2one ratio, then
+ * with ak4497 only 16bit case is supported.
+ */
+ for (i = 0; i < ARRAY_SIZE(ak4497_fs_mul); i++) {
+ if (ak4497_fs_mul[i].rmin == 705600 &&
+ ak4497_fs_mul[i].rmax == 768000) {
+ ak4497_fs_mul[i].wmin = 32;
+ ak4497_fs_mul[i].wmax = 32;
+ }
+ }
+ }
}
link->cpus->of_node = args.np;
diff --git a/sound/soc/fsl/imx-hdmi.c b/sound/soc/fsl/imx-hdmi.c
index 34a0dceae621..ef8d7a65ebc6 100644
--- a/sound/soc/fsl/imx-hdmi.c
+++ b/sound/soc/fsl/imx-hdmi.c
@@ -145,6 +145,8 @@ static int imx_hdmi_probe(struct platform_device *pdev)
data->dai.capture_only = false;
data->dai.init = imx_hdmi_init;
+ put_device(&cpu_pdev->dev);
+
if (of_node_name_eq(cpu_np, "sai")) {
data->cpu_priv.sysclk_id[1] = FSL_SAI_CLK_MAST1;
data->cpu_priv.sysclk_id[0] = FSL_SAI_CLK_MAST1;
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index f10496206cee..76759b209906 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -188,7 +188,7 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
},
.driver_data = (void *)(SOF_SDW_TGL_HDMI |
SOF_SDW_PCH_DMIC |
- RT711_JD2),
+ RT711_JD1),
},
{
/* NUC15 'Bishop County' LAPBC510 and LAPBC710 skews */
diff --git a/sound/soc/intel/catpt/dsp.c b/sound/soc/intel/catpt/dsp.c
index 9c5fd18f2600..346bec000306 100644
--- a/sound/soc/intel/catpt/dsp.c
+++ b/sound/soc/intel/catpt/dsp.c
@@ -65,6 +65,7 @@ static int catpt_dma_memcpy(struct catpt_dev *cdev, struct dma_chan *chan,
{
struct dma_async_tx_descriptor *desc;
enum dma_status status;
+ int ret;
desc = dmaengine_prep_dma_memcpy(chan, dst_addr, src_addr, size,
DMA_CTRL_ACK);
@@ -77,13 +78,22 @@ static int catpt_dma_memcpy(struct catpt_dev *cdev, struct dma_chan *chan,
catpt_updatel_shim(cdev, HMDC,
CATPT_HMDC_HDDA(CATPT_DMA_DEVID, chan->chan_id),
CATPT_HMDC_HDDA(CATPT_DMA_DEVID, chan->chan_id));
- dmaengine_submit(desc);
+
+ ret = dma_submit_error(dmaengine_submit(desc));
+ if (ret) {
+ dev_err(cdev->dev, "submit tx failed: %d\n", ret);
+ goto clear_hdda;
+ }
+
status = dma_wait_for_async_tx(desc);
+ ret = (status == DMA_COMPLETE) ? 0 : -EPROTO;
+
+clear_hdda:
/* regardless of status, disable access to HOST memory in demand mode */
catpt_updatel_shim(cdev, HMDC,
CATPT_HMDC_HDDA(CATPT_DMA_DEVID, chan->chan_id), 0);
- return (status == DMA_COMPLETE) ? 0 : -EPROTO;
+ return ret;
}
int catpt_dma_memcpy_todsp(struct catpt_dev *cdev, struct dma_chan *chan,
diff --git a/sound/soc/intel/skylake/skl-pcm.c b/sound/soc/intel/skylake/skl-pcm.c
index 9ecaf6a1e847..e4aa366d356e 100644
--- a/sound/soc/intel/skylake/skl-pcm.c
+++ b/sound/soc/intel/skylake/skl-pcm.c
@@ -1251,7 +1251,6 @@ static int skl_platform_soc_get_time_info(
snd_pcm_gettime(substream->runtime, system_ts);
nsec = timecounter_read(&hstr->tc);
- nsec = div_u64(nsec, 3); /* can be optimized */
if (audio_tstamp_config->report_delay)
nsec = skl_adjust_codec_delay(substream, nsec);
diff --git a/sound/soc/mediatek/mt8173/mt8173-max98090.c b/sound/soc/mediatek/mt8173/mt8173-max98090.c
index fc94314bfc02..3bdd4931316c 100644
--- a/sound/soc/mediatek/mt8173/mt8173-max98090.c
+++ b/sound/soc/mediatek/mt8173/mt8173-max98090.c
@@ -180,6 +180,9 @@ static int mt8173_max98090_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(codec_node);
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
index 0f28dc2217c0..390da5bf727e 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
@@ -218,6 +218,8 @@ static int mt8173_rt5650_rt5514_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
index 077c6ee06780..c8e4e85e1057 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
@@ -285,6 +285,8 @@ static int mt8173_rt5650_rt5676_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650.c b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
index c28ebf891cb0..e168d31f4445 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
@@ -323,6 +323,8 @@ static int mt8173_rt5650_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
index a4d26a6fc849..bda103211e0b 100644
--- a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
+++ b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
@@ -781,7 +781,11 @@ static int mt8183_da7219_max98357_dev_probe(struct platform_device *pdev)
return ret;
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
diff --git a/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c b/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
index 94dcbd36c869..c7b10c48c6c2 100644
--- a/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
+++ b/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
@@ -780,7 +780,12 @@ mt8183_mt6358_ts3a227_max98357_dev_probe(struct platform_device *pdev)
__func__, ret);
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(ec_codec);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
index a606133951b7..24a5d0adec1b 100644
--- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
+++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
@@ -1172,7 +1172,11 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev)
return ret;
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
diff --git a/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c b/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c
index 6635c3f72ecc..2edb40fe27cc 100644
--- a/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c
+++ b/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c
@@ -3028,7 +3028,7 @@ static const struct reg_sequence mt8195_afe_reg_defaults[] = {
static const struct reg_sequence mt8195_cg_patch[] = {
{ AUDIO_TOP_CON0, 0xfffffffb },
- { AUDIO_TOP_CON1, 0xfffffffa },
+ { AUDIO_TOP_CON1, 0xfffffff8 },
};
static int mt8195_afe_init_registers(struct mtk_base_afe *afe)
diff --git a/sound/soc/mediatek/mt8195/mt8195-dai-pcm.c b/sound/soc/mediatek/mt8195/mt8195-dai-pcm.c
index 5d10d2c4c991..151914c873ac 100644
--- a/sound/soc/mediatek/mt8195/mt8195-dai-pcm.c
+++ b/sound/soc/mediatek/mt8195/mt8195-dai-pcm.c
@@ -80,8 +80,15 @@ static const struct snd_soc_dapm_widget mtk_dai_pcm_widgets[] = {
mtk_dai_pcm_o001_mix,
ARRAY_SIZE(mtk_dai_pcm_o001_mix)),
+ SND_SOC_DAPM_SUPPLY("PCM_EN", PCM_INTF_CON1,
+ PCM_INTF_CON1_PCM_EN_SHIFT, 0, NULL, 0),
+
SND_SOC_DAPM_INPUT("PCM1_INPUT"),
SND_SOC_DAPM_OUTPUT("PCM1_OUTPUT"),
+
+ SND_SOC_DAPM_CLOCK_SUPPLY("aud_asrc11"),
+ SND_SOC_DAPM_CLOCK_SUPPLY("aud_asrc12"),
+ SND_SOC_DAPM_CLOCK_SUPPLY("aud_pcmif"),
};
static const struct snd_soc_dapm_route mtk_dai_pcm_routes[] = {
@@ -97,22 +104,18 @@ static const struct snd_soc_dapm_route mtk_dai_pcm_routes[] = {
{"PCM1 Playback", NULL, "O000"},
{"PCM1 Playback", NULL, "O001"},
+ {"PCM1 Playback", NULL, "PCM_EN"},
+ {"PCM1 Playback", NULL, "aud_asrc12"},
+ {"PCM1 Playback", NULL, "aud_pcmif"},
+
+ {"PCM1 Capture", NULL, "PCM_EN"},
+ {"PCM1 Capture", NULL, "aud_asrc11"},
+ {"PCM1 Capture", NULL, "aud_pcmif"},
+
{"PCM1_OUTPUT", NULL, "PCM1 Playback"},
{"PCM1 Capture", NULL, "PCM1_INPUT"},
};
-static void mtk_dai_pcm_enable(struct mtk_base_afe *afe)
-{
- regmap_update_bits(afe->regmap, PCM_INTF_CON1,
- PCM_INTF_CON1_PCM_EN, PCM_INTF_CON1_PCM_EN);
-}
-
-static void mtk_dai_pcm_disable(struct mtk_base_afe *afe)
-{
- regmap_update_bits(afe->regmap, PCM_INTF_CON1,
- PCM_INTF_CON1_PCM_EN, 0x0);
-}
-
static int mtk_dai_pcm_configure(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
@@ -207,54 +210,22 @@ static int mtk_dai_pcm_configure(struct snd_pcm_substream *substream,
}
/* dai ops */
-static int mtk_dai_pcm_startup(struct snd_pcm_substream *substream,
- struct snd_soc_dai *dai)
-{
- struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
- struct mt8195_afe_private *afe_priv = afe->platform_priv;
-
- if (dai->component->active)
- return 0;
-
- mt8195_afe_enable_clk(afe, afe_priv->clk[MT8195_CLK_AUD_ASRC11]);
- mt8195_afe_enable_clk(afe, afe_priv->clk[MT8195_CLK_AUD_ASRC12]);
- mt8195_afe_enable_clk(afe, afe_priv->clk[MT8195_CLK_AUD_PCMIF]);
-
- return 0;
-}
-
-static void mtk_dai_pcm_shutdown(struct snd_pcm_substream *substream,
- struct snd_soc_dai *dai)
-{
- struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
- struct mt8195_afe_private *afe_priv = afe->platform_priv;
-
- if (dai->component->active)
- return;
-
- mtk_dai_pcm_disable(afe);
-
- mt8195_afe_disable_clk(afe, afe_priv->clk[MT8195_CLK_AUD_PCMIF]);
- mt8195_afe_disable_clk(afe, afe_priv->clk[MT8195_CLK_AUD_ASRC12]);
- mt8195_afe_disable_clk(afe, afe_priv->clk[MT8195_CLK_AUD_ASRC11]);
-}
-
static int mtk_dai_pcm_prepare(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
- struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
- int ret = 0;
+ int ret;
- if (snd_soc_dai_stream_active(dai, SNDRV_PCM_STREAM_PLAYBACK) &&
- snd_soc_dai_stream_active(dai, SNDRV_PCM_STREAM_CAPTURE))
+ dev_dbg(dai->dev, "%s(), id %d, stream %d, widget active p %d, c %d\n",
+ __func__, dai->id, substream->stream,
+ dai->playback_widget->active, dai->capture_widget->active);
+
+ if (dai->playback_widget->active || dai->capture_widget->active)
return 0;
ret = mtk_dai_pcm_configure(substream, dai);
if (ret)
return ret;
- mtk_dai_pcm_enable(afe);
-
return 0;
}
@@ -316,8 +287,6 @@ static int mtk_dai_pcm_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
}
static const struct snd_soc_dai_ops mtk_dai_pcm_ops = {
- .startup = mtk_dai_pcm_startup,
- .shutdown = mtk_dai_pcm_shutdown,
.prepare = mtk_dai_pcm_prepare,
.set_fmt = mtk_dai_pcm_set_fmt,
};
diff --git a/sound/soc/mediatek/mt8195/mt8195-reg.h b/sound/soc/mediatek/mt8195/mt8195-reg.h
index d06f9cf85a4e..d3871353db41 100644
--- a/sound/soc/mediatek/mt8195/mt8195-reg.h
+++ b/sound/soc/mediatek/mt8195/mt8195-reg.h
@@ -2550,6 +2550,7 @@
#define PCM_INTF_CON1_PCM_FMT(x) (((x) & 0x3) << 1)
#define PCM_INTF_CON1_PCM_FMT_MASK (0x3 << 1)
#define PCM_INTF_CON1_PCM_EN BIT(0)
+#define PCM_INTF_CON1_PCM_EN_SHIFT 0
/* PCM_INTF_CON2 */
#define PCM_INTF_CON2_CLK_DOMAIN_SEL(x) (((x) & 0x3) << 23)
diff --git a/sound/soc/samsung/idma.c b/sound/soc/samsung/idma.c
index 66bcc2f97544..c3f1b054e238 100644
--- a/sound/soc/samsung/idma.c
+++ b/sound/soc/samsung/idma.c
@@ -360,6 +360,8 @@ static int preallocate_idma_buffer(struct snd_pcm *pcm, int stream)
buf->addr = idma.lp_tx_addr;
buf->bytes = idma_hardware.buffer_bytes_max;
buf->area = (unsigned char * __force)ioremap(buf->addr, buf->bytes);
+ if (!buf->area)
+ return -ENOMEM;
return 0;
}
diff --git a/sound/soc/uniphier/Kconfig b/sound/soc/uniphier/Kconfig
index aa3592ee1358..ddfa6424c656 100644
--- a/sound/soc/uniphier/Kconfig
+++ b/sound/soc/uniphier/Kconfig
@@ -23,7 +23,6 @@ config SND_SOC_UNIPHIER_LD11
tristate "UniPhier LD11/LD20 Device Driver"
depends on SND_SOC_UNIPHIER
select SND_SOC_UNIPHIER_AIO
- select SND_SOC_UNIPHIER_AIO_DMA
help
This adds ASoC driver for Socionext UniPhier LD11/LD20
input and output that can be used with other codecs.
@@ -34,7 +33,6 @@ config SND_SOC_UNIPHIER_PXS2
tristate "UniPhier PXs2 Device Driver"
depends on SND_SOC_UNIPHIER
select SND_SOC_UNIPHIER_AIO
- select SND_SOC_UNIPHIER_AIO_DMA
help
This adds ASoC driver for Socionext UniPhier PXs2
input and output that can be used with other codecs.
diff --git a/sound/usb/format.c b/sound/usb/format.c
index f5e676a51b30..405dc0bf6678 100644
--- a/sound/usb/format.c
+++ b/sound/usb/format.c
@@ -375,7 +375,7 @@ static int parse_uac2_sample_rate_range(struct snd_usb_audio *chip,
for (rate = min; rate <= max; rate += res) {
/* Filter out invalid rates on Presonus Studio 1810c */
- if (chip->usb_id == USB_ID(0x0194f, 0x010c) &&
+ if (chip->usb_id == USB_ID(0x194f, 0x010c) &&
!s1810c_valid_sample_rate(fp, rate))
goto skip_rate;
diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c
index 823b6b8de942..d48729e6a3b0 100644
--- a/sound/usb/mixer_quirks.c
+++ b/sound/usb/mixer_quirks.c
@@ -3254,7 +3254,7 @@ int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer)
err = snd_rme_controls_create(mixer);
break;
- case USB_ID(0x0194f, 0x010c): /* Presonus Studio 1810c */
+ case USB_ID(0x194f, 0x010c): /* Presonus Studio 1810c */
err = snd_sc1810_init_mixer(mixer);
break;
case USB_ID(0x2a39, 0x3fb0): /* RME Babyface Pro FS */
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 64e1c20311ed..ab9f3da49941 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1290,7 +1290,7 @@ int snd_usb_apply_interface_quirk(struct snd_usb_audio *chip,
if (chip->usb_id == USB_ID(0x0763, 0x2012))
return fasttrackpro_skip_setting_quirk(chip, iface, altno);
/* presonus studio 1810c: skip altsets incompatible with device_setup */
- if (chip->usb_id == USB_ID(0x0194f, 0x010c))
+ if (chip->usb_id == USB_ID(0x194f, 0x010c))
return s1810c_skip_setting_quirk(chip, iface, altno);
diff --git a/tools/bpf/bpftool/Documentation/Makefile b/tools/bpf/bpftool/Documentation/Makefile
index c49487905ceb..f89929c7038d 100644
--- a/tools/bpf/bpftool/Documentation/Makefile
+++ b/tools/bpf/bpftool/Documentation/Makefile
@@ -1,6 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-only
include ../../../scripts/Makefile.include
-include ../../../scripts/utilities.mak
INSTALL ?= install
RM ?= rm -f
diff --git a/tools/bpf/bpftool/Documentation/bpftool-btf.rst b/tools/bpf/bpftool/Documentation/bpftool-btf.rst
index 88b28aa7431f..4425d942dd39 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-btf.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-btf.rst
@@ -13,7 +13,7 @@ SYNOPSIS
**bpftool** [*OPTIONS*] **btf** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | {**-d** | **--debug** } |
- { **-B** | **--base-btf** } }
+ { **-B** | **--base-btf** } }
*COMMANDS* := { **dump** | **help** }
diff --git a/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst b/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
index 3e4395eede4f..13a217a2503d 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-cgroup.rst
@@ -13,7 +13,7 @@ SYNOPSIS
**bpftool** [*OPTIONS*] **cgroup** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } |
- { **-f** | **--bpffs** } }
+ { **-f** | **--bpffs** } }
*COMMANDS* :=
{ **show** | **list** | **tree** | **attach** | **detach** | **help** }
diff --git a/tools/bpf/bpftool/Documentation/bpftool-gen.rst b/tools/bpf/bpftool/Documentation/bpftool-gen.rst
index 2ef2f2df0279..2a137f8a4cea 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-gen.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-gen.rst
@@ -13,7 +13,7 @@ SYNOPSIS
**bpftool** [*OPTIONS*] **gen** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } |
- { **-L** | **--use-loader** } }
+ { **-L** | **--use-loader** } }
*COMMAND* := { **object** | **skeleton** | **help** }
diff --git a/tools/bpf/bpftool/Documentation/bpftool-link.rst b/tools/bpf/bpftool/Documentation/bpftool-link.rst
index 0de90f086238..9434349636a5 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-link.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-link.rst
@@ -13,7 +13,7 @@ SYNOPSIS
**bpftool** [*OPTIONS*] **link** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } |
- { **-f** | **--bpffs** } | { **-n** | **--nomount** } }
+ { **-f** | **--bpffs** } | { **-n** | **--nomount** } }
*COMMANDS* := { **show** | **list** | **pin** | **help** }
diff --git a/tools/bpf/bpftool/Documentation/bpftool-map.rst b/tools/bpf/bpftool/Documentation/bpftool-map.rst
index d0c4abe08aba..1445cadc15d4 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-map.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-map.rst
@@ -13,11 +13,11 @@ SYNOPSIS
**bpftool** [*OPTIONS*] **map** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } |
- { **-f** | **--bpffs** } | { **-n** | **--nomount** } }
+ { **-f** | **--bpffs** } | { **-n** | **--nomount** } }
*COMMANDS* :=
- { **show** | **list** | **create** | **dump** | **update** | **lookup** | **getnext**
- | **delete** | **pin** | **help** }
+ { **show** | **list** | **create** | **dump** | **update** | **lookup** | **getnext** |
+ **delete** | **pin** | **help** }
MAP COMMANDS
=============
diff --git a/tools/bpf/bpftool/Documentation/bpftool-prog.rst b/tools/bpf/bpftool/Documentation/bpftool-prog.rst
index 91608cb7e44a..f27265bd589b 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-prog.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-prog.rst
@@ -13,12 +13,12 @@ SYNOPSIS
**bpftool** [*OPTIONS*] **prog** *COMMAND*
*OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } |
- { **-f** | **--bpffs** } | { **-m** | **--mapcompat** } | { **-n** | **--nomount** } |
- { **-L** | **--use-loader** } }
+ { **-f** | **--bpffs** } | { **-m** | **--mapcompat** } | { **-n** | **--nomount** } |
+ { **-L** | **--use-loader** } }
*COMMANDS* :=
- { **show** | **list** | **dump xlated** | **dump jited** | **pin** | **load**
- | **loadall** | **help** }
+ { **show** | **list** | **dump xlated** | **dump jited** | **pin** | **load** |
+ **loadall** | **help** }
PROG COMMANDS
=============
diff --git a/tools/bpf/bpftool/Documentation/bpftool.rst b/tools/bpf/bpftool/Documentation/bpftool.rst
index bb23f55bb05a..8ac86565c501 100644
--- a/tools/bpf/bpftool/Documentation/bpftool.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool.rst
@@ -19,14 +19,14 @@ SYNOPSIS
*OBJECT* := { **map** | **program** | **cgroup** | **perf** | **net** | **feature** }
*OPTIONS* := { { **-V** | **--version** } |
- { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } }
+ { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-d** | **--debug** } }
*MAP-COMMANDS* :=
{ **show** | **list** | **create** | **dump** | **update** | **lookup** | **getnext** |
- **delete** | **pin** | **event_pipe** | **help** }
+ **delete** | **pin** | **event_pipe** | **help** }
*PROG-COMMANDS* := { **show** | **list** | **dump jited** | **dump xlated** | **pin** |
- **load** | **attach** | **detach** | **help** }
+ **load** | **attach** | **detach** | **help** }
*CGROUP-COMMANDS* := { **show** | **list** | **attach** | **detach** | **help** }
diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
index d73232be1e99..cce52df3be06 100644
--- a/tools/bpf/bpftool/Makefile
+++ b/tools/bpf/bpftool/Makefile
@@ -1,6 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-only
include ../../scripts/Makefile.include
-include ../../scripts/utilities.mak
ifeq ($(srctree),)
srctree := $(patsubst %/,%,$(dir $(CURDIR)))
diff --git a/tools/bpf/bpftool/main.c b/tools/bpf/bpftool/main.c
index 02eaaf065f65..d27ec4f852bb 100644
--- a/tools/bpf/bpftool/main.c
+++ b/tools/bpf/bpftool/main.c
@@ -402,6 +402,8 @@ int main(int argc, char **argv)
};
int opt, ret;
+ setlinebuf(stdout);
+
last_do_help = do_help;
pretty_output = false;
json_output = false;
diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c
index fe59404e8704..f8755beb3d9e 100644
--- a/tools/bpf/bpftool/prog.c
+++ b/tools/bpf/bpftool/prog.c
@@ -629,8 +629,8 @@ prog_dump(struct bpf_prog_info *info, enum dump_mode mode,
char func_sig[1024];
unsigned char *buf;
__u32 member_len;
+ int fd, err = -1;
ssize_t n;
- int fd;
if (mode == DUMP_JITED) {
if (info->jited_prog_len == 0 || !info->jited_prog_insns) {
@@ -669,7 +669,7 @@ prog_dump(struct bpf_prog_info *info, enum dump_mode mode,
if (fd < 0) {
p_err("can't open file %s: %s", filepath,
strerror(errno));
- return -1;
+ goto exit_free;
}
n = write(fd, buf, member_len);
@@ -677,7 +677,7 @@ prog_dump(struct bpf_prog_info *info, enum dump_mode mode,
if (n != (ssize_t)member_len) {
p_err("error writing output file: %s",
n < 0 ? strerror(errno) : "short write");
- return -1;
+ goto exit_free;
}
if (json_output)
@@ -691,7 +691,7 @@ prog_dump(struct bpf_prog_info *info, enum dump_mode mode,
info->netns_ino,
&disasm_opt);
if (!name)
- return -1;
+ goto exit_free;
}
if (info->nr_jited_func_lens && info->jited_func_lens) {
@@ -786,9 +786,12 @@ prog_dump(struct bpf_prog_info *info, enum dump_mode mode,
kernel_syms_destroy(&dd);
}
- btf__free(btf);
+ err = 0;
- return 0;
+exit_free:
+ btf__free(btf);
+ bpf_prog_linfo__free(prog_linfo);
+ return err;
}
static int do_dump(int argc, char **argv)
diff --git a/tools/include/nolibc/nolibc.h b/tools/include/nolibc/nolibc.h
index 3430667b0d24..3e2c6f2ed587 100644
--- a/tools/include/nolibc/nolibc.h
+++ b/tools/include/nolibc/nolibc.h
@@ -399,16 +399,22 @@ struct stat {
})
/* startup code */
+/*
+ * x86-64 System V ABI mandates:
+ * 1) %rsp must be 16-byte aligned right before the function call.
+ * 2) The deepest stack frame should be zero (the %rbp).
+ *
+ */
asm(".section .text\n"
".global _start\n"
"_start:\n"
"pop %rdi\n" // argc (first arg, %rdi)
"mov %rsp, %rsi\n" // argv[] (second arg, %rsi)
"lea 8(%rsi,%rdi,8),%rdx\n" // then a NULL then envp (third arg, %rdx)
- "and $-16, %rsp\n" // x86 ABI : esp must be 16-byte aligned when
- "sub $8, %rsp\n" // entering the callee
+ "xor %ebp, %ebp\n" // zero the stack frame
+ "and $-16, %rsp\n" // x86 ABI : esp must be 16-byte aligned before call
"call main\n" // main() returns the status code, we'll exit with it.
- "movzb %al, %rdi\n" // retrieve exit code from 8 lower bits
+ "mov %eax, %edi\n" // retrieve exit code (32 bit)
"mov $60, %rax\n" // NR_exit == 60
"syscall\n" // really exit
"hlt\n" // ensure it does not return
@@ -577,20 +583,28 @@ struct sys_stat_struct {
})
/* startup code */
+/*
+ * i386 System V ABI mandates:
+ * 1) last pushed argument must be 16-byte aligned.
+ * 2) The deepest stack frame should be set to zero
+ *
+ */
asm(".section .text\n"
".global _start\n"
"_start:\n"
"pop %eax\n" // argc (first arg, %eax)
"mov %esp, %ebx\n" // argv[] (second arg, %ebx)
"lea 4(%ebx,%eax,4),%ecx\n" // then a NULL then envp (third arg, %ecx)
- "and $-16, %esp\n" // x86 ABI : esp must be 16-byte aligned when
+ "xor %ebp, %ebp\n" // zero the stack frame
+ "and $-16, %esp\n" // x86 ABI : esp must be 16-byte aligned before
+ "sub $4, %esp\n" // the call instruction (args are aligned)
"push %ecx\n" // push all registers on the stack so that we
"push %ebx\n" // support both regparm and plain stack modes
"push %eax\n"
"call main\n" // main() returns the status code in %eax
- "movzbl %al, %ebx\n" // retrieve exit code from lower 8 bits
- "movl $1, %eax\n" // NR_exit == 1
- "int $0x80\n" // exit now
+ "mov %eax, %ebx\n" // retrieve exit code (32-bit int)
+ "movl $1, %eax\n" // NR_exit == 1
+ "int $0x80\n" // exit now
"hlt\n" // ensure it does not
"");
@@ -774,7 +788,6 @@ asm(".section .text\n"
"and %r3, %r1, $-8\n" // AAPCS : sp must be 8-byte aligned in the
"mov %sp, %r3\n" // callee, an bl doesn't push (lr=pc)
"bl main\n" // main() returns the status code, we'll exit with it.
- "and %r0, %r0, $0xff\n" // limit exit code to 8 bits
"movs r7, $1\n" // NR_exit == 1
"svc $0x00\n"
"");
@@ -971,7 +984,6 @@ asm(".section .text\n"
"add x2, x2, x1\n" // + argv
"and sp, x1, -16\n" // sp must be 16-byte aligned in the callee
"bl main\n" // main() returns the status code, we'll exit with it.
- "and x0, x0, 0xff\n" // limit exit code to 8 bits
"mov x8, 93\n" // NR_exit == 93
"svc #0\n"
"");
@@ -1176,7 +1188,7 @@ asm(".section .text\n"
"addiu $sp,$sp,-16\n" // the callee expects to save a0..a3 there!
"jal main\n" // main() returns the status code, we'll exit with it.
"nop\n" // delayed slot
- "and $a0, $v0, 0xff\n" // limit exit code to 8 bits
+ "move $a0, $v0\n" // retrieve 32-bit exit code from v0
"li $v0, 4001\n" // NR_exit == 4001
"syscall\n"
".end __start\n"
@@ -1374,7 +1386,6 @@ asm(".section .text\n"
"add a2,a2,a1\n" // + argv
"andi sp,a1,-16\n" // sp must be 16-byte aligned
"call main\n" // main() returns the status code, we'll exit with it.
- "andi a0, a0, 0xff\n" // limit exit code to 8 bits
"li a7, 93\n" // NR_exit == 93
"ecall\n"
"");
diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c
index 1b9341ef638b..5f3d20ae66d5 100644
--- a/tools/lib/bpf/btf.c
+++ b/tools/lib/bpf/btf.c
@@ -2626,15 +2626,11 @@ void btf_ext__free(struct btf_ext *btf_ext)
free(btf_ext);
}
-struct btf_ext *btf_ext__new(__u8 *data, __u32 size)
+struct btf_ext *btf_ext__new(const __u8 *data, __u32 size)
{
struct btf_ext *btf_ext;
int err;
- err = btf_ext_parse_hdr(data, size);
- if (err)
- return libbpf_err_ptr(err);
-
btf_ext = calloc(1, sizeof(struct btf_ext));
if (!btf_ext)
return libbpf_err_ptr(-ENOMEM);
@@ -2647,6 +2643,10 @@ struct btf_ext *btf_ext__new(__u8 *data, __u32 size)
}
memcpy(btf_ext->data, data, size);
+ err = btf_ext_parse_hdr(btf_ext->data, size);
+ if (err)
+ goto done;
+
if (btf_ext->hdr->hdr_len < offsetofend(struct btf_ext_header, line_info_len)) {
err = -EINVAL;
goto done;
@@ -3358,8 +3358,8 @@ static long btf_hash_struct(struct btf_type *t)
}
/*
- * Check structural compatibility of two FUNC_PROTOs, ignoring referenced type
- * IDs. This check is performed during type graph equivalence check and
+ * Check structural compatibility of two STRUCTs/UNIONs, ignoring referenced
+ * type IDs. This check is performed during type graph equivalence check and
* referenced types equivalence is checked separately.
*/
static bool btf_shallow_equal_struct(struct btf_type *t1, struct btf_type *t2)
@@ -3730,6 +3730,31 @@ static int btf_dedup_identical_arrays(struct btf_dedup *d, __u32 id1, __u32 id2)
return btf_equal_array(t1, t2);
}
+/* Check if given two types are identical STRUCT/UNION definitions */
+static bool btf_dedup_identical_structs(struct btf_dedup *d, __u32 id1, __u32 id2)
+{
+ const struct btf_member *m1, *m2;
+ struct btf_type *t1, *t2;
+ int n, i;
+
+ t1 = btf_type_by_id(d->btf, id1);
+ t2 = btf_type_by_id(d->btf, id2);
+
+ if (!btf_is_composite(t1) || btf_kind(t1) != btf_kind(t2))
+ return false;
+
+ if (!btf_shallow_equal_struct(t1, t2))
+ return false;
+
+ m1 = btf_members(t1);
+ m2 = btf_members(t2);
+ for (i = 0, n = btf_vlen(t1); i < n; i++, m1++, m2++) {
+ if (m1->type != m2->type)
+ return false;
+ }
+ return true;
+}
+
/*
* Check equivalence of BTF type graph formed by candidate struct/union (we'll
* call it "candidate graph" in this description for brevity) to a type graph
@@ -3841,6 +3866,8 @@ static int btf_dedup_is_equiv(struct btf_dedup *d, __u32 cand_id,
hypot_type_id = d->hypot_map[canon_id];
if (hypot_type_id <= BTF_MAX_NR_TYPES) {
+ if (hypot_type_id == cand_id)
+ return 1;
/* In some cases compiler will generate different DWARF types
* for *identical* array type definitions and use them for
* different fields within the *same* struct. This breaks type
@@ -3849,8 +3876,18 @@ static int btf_dedup_is_equiv(struct btf_dedup *d, __u32 cand_id,
* types within a single CU. So work around that by explicitly
* allowing identical array types here.
*/
- return hypot_type_id == cand_id ||
- btf_dedup_identical_arrays(d, hypot_type_id, cand_id);
+ if (btf_dedup_identical_arrays(d, hypot_type_id, cand_id))
+ return 1;
+ /* It turns out that similar situation can happen with
+ * struct/union sometimes, sigh... Handle the case where
+ * structs/unions are exactly the same, down to the referenced
+ * type IDs. Anything more complicated (e.g., if referenced
+ * types are different, but equivalent) is *way more*
+ * complicated and requires a many-to-many equivalence mapping.
+ */
+ if (btf_dedup_identical_structs(d, hypot_type_id, cand_id))
+ return 1;
+ return 0;
}
if (btf_dedup_hypot_map_add(d, canon_id, cand_id))
diff --git a/tools/lib/bpf/btf.h b/tools/lib/bpf/btf.h
index 4a711f990904..b0ee338a0cc8 100644
--- a/tools/lib/bpf/btf.h
+++ b/tools/lib/bpf/btf.h
@@ -80,7 +80,7 @@ LIBBPF_API int btf__get_map_kv_tids(const struct btf *btf, const char *map_name,
__u32 expected_value_size,
__u32 *key_type_id, __u32 *value_type_id);
-LIBBPF_API struct btf_ext *btf_ext__new(__u8 *data, __u32 size);
+LIBBPF_API struct btf_ext *btf_ext__new(const __u8 *data, __u32 size);
LIBBPF_API void btf_ext__free(struct btf_ext *btf_ext);
LIBBPF_API const void *btf_ext__get_raw_data(const struct btf_ext *btf_ext,
__u32 *size);
diff --git a/tools/lib/bpf/btf_dump.c b/tools/lib/bpf/btf_dump.c
index e4b483f15fb9..8c9325802793 100644
--- a/tools/lib/bpf/btf_dump.c
+++ b/tools/lib/bpf/btf_dump.c
@@ -2186,7 +2186,7 @@ static int btf_dump_dump_type_data(struct btf_dump *d,
__u8 bits_offset,
__u8 bit_sz)
{
- int size, err;
+ int size, err = 0;
size = btf_dump_type_data_check_overflow(d, t, id, data, bits_offset);
if (size < 0)
diff --git a/tools/lib/bpf/gen_loader.c b/tools/lib/bpf/gen_loader.c
index 8df718a6b142..33c19590ee43 100644
--- a/tools/lib/bpf/gen_loader.c
+++ b/tools/lib/bpf/gen_loader.c
@@ -663,9 +663,11 @@ void bpf_gen__prog_load(struct bpf_gen *gen,
debug_ret(gen, "prog_load %s insn_cnt %d", attr.prog_name, attr.insn_cnt);
/* successful or not, close btf module FDs used in extern ksyms and attach_btf_obj_fd */
cleanup_relos(gen, insns);
- if (gen->attach_kind)
+ if (gen->attach_kind) {
emit_sys_close_blob(gen,
attr_field(prog_load_attr, attach_btf_obj_fd));
+ gen->attach_kind = 0;
+ }
emit_check_err(gen);
/* remember prog_fd in the stack, if successful */
emit(gen, BPF_STX_MEM(BPF_W, BPF_REG_10, BPF_REG_7,
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index 7145463a4a56..0ad29203cbfb 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -8676,7 +8676,10 @@ int bpf_map__set_inner_map_fd(struct bpf_map *map, int fd)
pr_warn("error: inner_map_fd already specified\n");
return libbpf_err(-EINVAL);
}
- zfree(&map->inner_map);
+ if (map->inner_map) {
+ bpf_map__destroy(map->inner_map);
+ zfree(&map->inner_map);
+ }
map->inner_map_fd = fd;
return 0;
}
diff --git a/tools/lib/bpf/linker.c b/tools/lib/bpf/linker.c
index 2df880cefdae..6b2f59ddb691 100644
--- a/tools/lib/bpf/linker.c
+++ b/tools/lib/bpf/linker.c
@@ -211,6 +211,7 @@ void bpf_linker__free(struct bpf_linker *linker)
}
free(linker->secs);
+ free(linker->glob_syms);
free(linker);
}
@@ -2000,7 +2001,7 @@ static int linker_append_elf_sym(struct bpf_linker *linker, struct src_obj *obj,
static int linker_append_elf_relos(struct bpf_linker *linker, struct src_obj *obj)
{
struct src_sec *src_symtab = &obj->secs[obj->symtab_sec_idx];
- struct dst_sec *dst_symtab = &linker->secs[linker->symtab_sec_idx];
+ struct dst_sec *dst_symtab;
int i, err;
for (i = 1; i < obj->sec_cnt; i++) {
@@ -2033,6 +2034,9 @@ static int linker_append_elf_relos(struct bpf_linker *linker, struct src_obj *ob
return -1;
}
+ /* add_dst_sec() above could have invalidated linker->secs */
+ dst_symtab = &linker->secs[linker->symtab_sec_idx];
+
/* shdr->sh_link points to SYMTAB */
dst_sec->shdr->sh_link = linker->symtab_sec_idx;
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index 3c077f61d676..71772b20ea73 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -143,7 +143,10 @@ FEATURE_CHECK_LDFLAGS-libcrypto = -lcrypto
ifdef CSINCLUDES
LIBOPENCSD_CFLAGS := -I$(CSINCLUDES)
endif
-OPENCSDLIBS := -lopencsd_c_api -lopencsd -lstdc++
+OPENCSDLIBS := -lopencsd_c_api
+ifeq ($(findstring -static,${LDFLAGS}),-static)
+ OPENCSDLIBS += -lopencsd -lstdc++
+endif
ifdef CSLIBS
LIBOPENCSD_LDFLAGS := -L$(CSLIBS)
endif
diff --git a/tools/perf/util/debug.c b/tools/perf/util/debug.c
index 2c06abf6dcd2..65e6c22f38e4 100644
--- a/tools/perf/util/debug.c
+++ b/tools/perf/util/debug.c
@@ -179,7 +179,7 @@ static int trace_event_printer(enum binary_printer_ops op,
break;
case BINARY_PRINT_CHAR_DATA:
printed += color_fprintf(fp, color, "%c",
- isprint(ch) ? ch : '.');
+ isprint(ch) && isascii(ch) ? ch : '.');
break;
case BINARY_PRINT_CHAR_PAD:
printed += color_fprintf(fp, color, " ");
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index dbfeceb2546c..c87f9974c0c1 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -1047,6 +1047,17 @@ void __weak arch_evsel__set_sample_weight(struct evsel *evsel)
evsel__set_sample_bit(evsel, WEIGHT);
}
+static void evsel__set_default_freq_period(struct record_opts *opts,
+ struct perf_event_attr *attr)
+{
+ if (opts->freq) {
+ attr->freq = 1;
+ attr->sample_freq = opts->freq;
+ } else {
+ attr->sample_period = opts->default_interval;
+ }
+}
+
/*
* The enable_on_exec/disabled value strategy:
*
@@ -1113,14 +1124,12 @@ void evsel__config(struct evsel *evsel, struct record_opts *opts,
* We default some events to have a default interval. But keep
* it a weak assumption overridable by the user.
*/
- if (!attr->sample_period) {
- if (opts->freq) {
- attr->freq = 1;
- attr->sample_freq = opts->freq;
- } else {
- attr->sample_period = opts->default_interval;
- }
- }
+ if ((evsel->is_libpfm_event && !attr->sample_period) ||
+ (!evsel->is_libpfm_event && (!attr->sample_period ||
+ opts->user_freq != UINT_MAX ||
+ opts->user_interval != ULLONG_MAX)))
+ evsel__set_default_freq_period(opts, attr);
+
/*
* If attr->freq was set (here or earlier), ask for period
* to be sampled.
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index b2a02c9ab8ea..a834918a0a0d 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -3083,6 +3083,9 @@ static int find_probe_trace_events_from_map(struct perf_probe_event *pev,
for (j = 0; j < num_matched_functions; j++) {
sym = syms[j];
+ if (sym->type != STT_FUNC)
+ continue;
+
/* There can be duplicated symbols in the map */
for (i = 0; i < j; i++)
if (sym->start == syms[i]->start) {
diff --git a/tools/testing/selftests/bpf/btf_helpers.c b/tools/testing/selftests/bpf/btf_helpers.c
index b692e6ead9b5..0a4ad7cb2c20 100644
--- a/tools/testing/selftests/bpf/btf_helpers.c
+++ b/tools/testing/selftests/bpf/btf_helpers.c
@@ -246,18 +246,23 @@ const char *btf_type_c_dump(const struct btf *btf)
d = btf_dump__new(btf, NULL, &opts, btf_dump_printf);
if (libbpf_get_error(d)) {
fprintf(stderr, "Failed to create btf_dump instance: %ld\n", libbpf_get_error(d));
- return NULL;
+ goto err_out;
}
for (i = 1; i <= btf__get_nr_types(btf); i++) {
err = btf_dump__dump_type(d, i);
if (err) {
fprintf(stderr, "Failed to dump type [%d]: %d\n", i, err);
- return NULL;
+ goto err_out;
}
}
+ btf_dump__free(d);
fflush(buf_file);
fclose(buf_file);
return buf;
+err_out:
+ btf_dump__free(d);
+ fclose(buf_file);
+ return NULL;
}
diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_iter.c b/tools/testing/selftests/bpf/prog_tests/bpf_iter.c
index 77ac24b191d4..dc18e5ae0feb 100644
--- a/tools/testing/selftests/bpf/prog_tests/bpf_iter.c
+++ b/tools/testing/selftests/bpf/prog_tests/bpf_iter.c
@@ -1208,13 +1208,14 @@ static void test_task_vma(void)
goto out;
/* Read CMP_BUFFER_SIZE (1kB) from bpf_iter. Read in small chunks
- * to trigger seq_file corner cases. The expected output is much
- * longer than 1kB, so the while loop will terminate.
+ * to trigger seq_file corner cases.
*/
len = 0;
while (len < CMP_BUFFER_SIZE) {
err = read_fd_into_buffer(iter_fd, task_vma_output + len,
min(read_size, CMP_BUFFER_SIZE - len));
+ if (!err)
+ break;
if (CHECK(err < 0, "read_iter_fd", "read_iter_fd failed\n"))
goto out;
len += err;
diff --git a/tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c b/tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
index 59adb4715394..3c85247f96f9 100644
--- a/tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
+++ b/tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c
@@ -204,8 +204,8 @@ static int pass_ack(struct migrate_reuseport_test_case *test_case)
{
int err;
- err = bpf_link__detach(test_case->link);
- if (!ASSERT_OK(err, "bpf_link__detach"))
+ err = bpf_link__destroy(test_case->link);
+ if (!ASSERT_OK(err, "bpf_link__destroy"))
return -1;
test_case->link = NULL;
diff --git a/tools/testing/selftests/bpf/prog_tests/skb_ctx.c b/tools/testing/selftests/bpf/prog_tests/skb_ctx.c
index fafeddaad6a9..23915be6172d 100644
--- a/tools/testing/selftests/bpf/prog_tests/skb_ctx.c
+++ b/tools/testing/selftests/bpf/prog_tests/skb_ctx.c
@@ -105,4 +105,6 @@ void test_skb_ctx(void)
"ctx_out_mark",
"skb->mark == %u, expected %d\n",
skb.mark, 10);
+
+ bpf_object__close(obj);
}
diff --git a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c b/tools/testing/selftests/bpf/prog_tests/tc_redirect.c
index e7201ba29ccd..47e3159729d2 100644
--- a/tools/testing/selftests/bpf/prog_tests/tc_redirect.c
+++ b/tools/testing/selftests/bpf/prog_tests/tc_redirect.c
@@ -105,6 +105,13 @@ static int setns_by_fd(int nsfd)
if (!ASSERT_OK(err, "unshare"))
return err;
+ /* Make our /sys mount private, so the following umount won't
+ * trigger the global umount in case it's shared.
+ */
+ err = mount("none", "/sys", NULL, MS_PRIVATE, NULL);
+ if (!ASSERT_OK(err, "remount private /sys"))
+ return err;
+
err = umount2("/sys", MNT_DETACH);
if (!ASSERT_OK(err, "umount2 /sys"))
return err;
diff --git a/tools/testing/selftests/clone3/clone3.c b/tools/testing/selftests/clone3/clone3.c
index 42be3b925830..076cf4325f78 100644
--- a/tools/testing/selftests/clone3/clone3.c
+++ b/tools/testing/selftests/clone3/clone3.c
@@ -52,6 +52,12 @@ static int call_clone3(uint64_t flags, size_t size, enum test_mode test_mode)
size = sizeof(struct __clone_args);
switch (test_mode) {
+ case CLONE3_ARGS_NO_TEST:
+ /*
+ * Uses default 'flags' and 'SIGCHLD'
+ * assignment.
+ */
+ break;
case CLONE3_ARGS_ALL_0:
args.flags = 0;
args.exit_signal = 0;
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc b/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc
index 98166fa3eb91..34fb89b0c61f 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc
@@ -1,6 +1,6 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
-# description: Kprobe dynamic event - adding and removing
+# description: Kprobe profile
# requires: kprobe_events
! grep -q 'myevent' kprobe_profile
diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h
index ae0f0f33b2a6..79a182cfa43a 100644
--- a/tools/testing/selftests/kselftest_harness.h
+++ b/tools/testing/selftests/kselftest_harness.h
@@ -969,7 +969,7 @@ void __run_test(struct __fixture_metadata *f,
t->passed = 1;
t->skip = 0;
t->trigger = 0;
- t->step = 0;
+ t->step = 1;
t->no_print = 0;
memset(t->results->reason, 0, sizeof(t->results->reason));
diff --git a/tools/testing/selftests/powerpc/security/spectre_v2.c b/tools/testing/selftests/powerpc/security/spectre_v2.c
index adc2b7294e5f..83647b8277e7 100644
--- a/tools/testing/selftests/powerpc/security/spectre_v2.c
+++ b/tools/testing/selftests/powerpc/security/spectre_v2.c
@@ -193,7 +193,7 @@ int spectre_v2_test(void)
* We are not vulnerable and reporting otherwise, so
* missing such a mismatch is safe.
*/
- if (state == VULNERABLE)
+ if (miss_percent > 95)
return 4;
return 1;
diff --git a/tools/testing/selftests/powerpc/signal/.gitignore b/tools/testing/selftests/powerpc/signal/.gitignore
index ce3375cd8e73..8f6c816099a4 100644
--- a/tools/testing/selftests/powerpc/signal/.gitignore
+++ b/tools/testing/selftests/powerpc/signal/.gitignore
@@ -4,3 +4,4 @@ signal_tm
sigfuz
sigreturn_vdso
sig_sc_double_restart
+sigreturn_kernel
diff --git a/tools/testing/selftests/powerpc/signal/Makefile b/tools/testing/selftests/powerpc/signal/Makefile
index d6ae54663aed..84e201572466 100644
--- a/tools/testing/selftests/powerpc/signal/Makefile
+++ b/tools/testing/selftests/powerpc/signal/Makefile
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
TEST_GEN_PROGS := signal signal_tm sigfuz sigreturn_vdso sig_sc_double_restart
+TEST_GEN_PROGS += sigreturn_kernel
CFLAGS += -maltivec
$(OUTPUT)/signal_tm: CFLAGS += -mhtm
diff --git a/tools/testing/selftests/powerpc/signal/sigreturn_kernel.c b/tools/testing/selftests/powerpc/signal/sigreturn_kernel.c
new file mode 100644
index 000000000000..0a1b6e591eee
--- /dev/null
+++ b/tools/testing/selftests/powerpc/signal/sigreturn_kernel.c
@@ -0,0 +1,132 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Test that we can't sigreturn to kernel addresses, or to kernel mode.
+ */
+
+#define _GNU_SOURCE
+
+#include <stdio.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+#include "utils.h"
+
+#define MSR_PR (1ul << 14)
+
+static volatile unsigned long long sigreturn_addr;
+static volatile unsigned long long sigreturn_msr_mask;
+
+static void sigusr1_handler(int signo, siginfo_t *si, void *uc_ptr)
+{
+ ucontext_t *uc = (ucontext_t *)uc_ptr;
+
+ if (sigreturn_addr)
+ UCONTEXT_NIA(uc) = sigreturn_addr;
+
+ if (sigreturn_msr_mask)
+ UCONTEXT_MSR(uc) &= sigreturn_msr_mask;
+}
+
+static pid_t fork_child(void)
+{
+ pid_t pid;
+
+ pid = fork();
+ if (pid == 0) {
+ raise(SIGUSR1);
+ exit(0);
+ }
+
+ return pid;
+}
+
+static int expect_segv(pid_t pid)
+{
+ int child_ret;
+
+ waitpid(pid, &child_ret, 0);
+ FAIL_IF(WIFEXITED(child_ret));
+ FAIL_IF(!WIFSIGNALED(child_ret));
+ FAIL_IF(WTERMSIG(child_ret) != 11);
+
+ return 0;
+}
+
+int test_sigreturn_kernel(void)
+{
+ struct sigaction act;
+ int child_ret, i;
+ pid_t pid;
+
+ act.sa_sigaction = sigusr1_handler;
+ act.sa_flags = SA_SIGINFO;
+ sigemptyset(&act.sa_mask);
+
+ FAIL_IF(sigaction(SIGUSR1, &act, NULL));
+
+ for (i = 0; i < 2; i++) {
+ // Return to kernel
+ sigreturn_addr = 0xcull << 60;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return to kernel virtual
+ sigreturn_addr = 0xc008ull << 48;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return out of range
+ sigreturn_addr = 0xc010ull << 48;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return to no-man's land, just below PAGE_OFFSET
+ sigreturn_addr = (0xcull << 60) - (64 * 1024);
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return to no-man's land, above TASK_SIZE_4PB
+ sigreturn_addr = 0x1ull << 52;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return to 0xd space
+ sigreturn_addr = 0xdull << 60;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return to 0xe space
+ sigreturn_addr = 0xeull << 60;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Return to 0xf space
+ sigreturn_addr = 0xfull << 60;
+ pid = fork_child();
+ expect_segv(pid);
+
+ // Attempt to set PR=0 for 2nd loop (should be blocked by kernel)
+ sigreturn_msr_mask = ~MSR_PR;
+ }
+
+ printf("All children killed as expected\n");
+
+ // Don't change address, just MSR, should return to user as normal
+ sigreturn_addr = 0;
+ sigreturn_msr_mask = ~MSR_PR;
+ pid = fork_child();
+ waitpid(pid, &child_ret, 0);
+ FAIL_IF(!WIFEXITED(child_ret));
+ FAIL_IF(WIFSIGNALED(child_ret));
+ FAIL_IF(WEXITSTATUS(child_ret) != 0);
+
+ return 0;
+}
+
+int main(void)
+{
+ return test_harness(test_sigreturn_kernel, "sigreturn_kernel");
+}
diff --git a/tools/testing/selftests/vm/hmm-tests.c b/tools/testing/selftests/vm/hmm-tests.c
index 864f126ffd78..203323967b50 100644
--- a/tools/testing/selftests/vm/hmm-tests.c
+++ b/tools/testing/selftests/vm/hmm-tests.c
@@ -1248,6 +1248,48 @@ TEST_F(hmm, anon_teardown)
}
}
+/*
+ * Test memory snapshot without faulting in pages accessed by the device.
+ */
+TEST_F(hmm, mixedmap)
+{
+ struct hmm_buffer *buffer;
+ unsigned long npages;
+ unsigned long size;
+ unsigned char *m;
+ int ret;
+
+ npages = 1;
+ size = npages << self->page_shift;
+
+ buffer = malloc(sizeof(*buffer));
+ ASSERT_NE(buffer, NULL);
+
+ buffer->fd = -1;
+ buffer->size = size;
+ buffer->mirror = malloc(npages);
+ ASSERT_NE(buffer->mirror, NULL);
+
+
+ /* Reserve a range of addresses. */
+ buffer->ptr = mmap(NULL, size,
+ PROT_READ | PROT_WRITE,
+ MAP_PRIVATE,
+ self->fd, 0);
+ ASSERT_NE(buffer->ptr, MAP_FAILED);
+
+ /* Simulate a device snapshotting CPU pagetables. */
+ ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_SNAPSHOT, buffer, npages);
+ ASSERT_EQ(ret, 0);
+ ASSERT_EQ(buffer->cpages, npages);
+
+ /* Check what the device saw. */
+ m = buffer->mirror;
+ ASSERT_EQ(m[0], HMM_DMIRROR_PROT_READ);
+
+ hmm_buffer_free(buffer);
+}
+
/*
* Test memory snapshot without faulting in pages accessed by the device.
*/
^ permalink raw reply related [relevance 1%]
* Linux 5.16.3
@ 2022-01-27 13:32 1% Greg Kroah-Hartman
2022-01-27 13:32 1% ` Greg Kroah-Hartman
0 siblings, 1 reply; 200+ results
From: Greg Kroah-Hartman @ 2022-01-27 13:32 UTC (permalink / raw)
To: linux-kernel, akpm, torvalds, stable; +Cc: lwn, jslaby, Greg Kroah-Hartman
I'm announcing the release of the 5.16.3 kernel.
All users of the 5.16 kernel series must upgrade.
The updated 5.16.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.16.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/admin-guide/cifs/usage.rst | 7
Documentation/admin-guide/devices.txt | 8
Documentation/admin-guide/hw-vuln/spectre.rst | 2
Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml | 5
Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml | 6
Documentation/devicetree/bindings/input/hid-over-i2c.txt | 2
Documentation/devicetree/bindings/thermal/thermal-zones.yaml | 9
Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml | 5
Documentation/driver-api/dmaengine/dmatest.rst | 7
Documentation/driver-api/firewire.rst | 4
Documentation/firmware-guide/acpi/dsd/data-node-references.rst | 10
Documentation/trace/coresight/coresight-config.rst | 16
Makefile | 2
arch/arm/Kconfig.debug | 14
arch/arm/boot/compressed/efi-header.S | 22
arch/arm/boot/compressed/head.S | 3
arch/arm/boot/dts/armada-38x.dtsi | 4
arch/arm/boot/dts/gemini-nas4220b.dts | 2
arch/arm/boot/dts/omap3-n900.dts | 50
arch/arm/boot/dts/qcom-sdx55.dtsi | 6
arch/arm/boot/dts/sama7g5-pinfunc.h | 2
arch/arm/boot/dts/stm32f429-disco.dts | 2
arch/arm/configs/cm_x300_defconfig | 1
arch/arm/configs/ezx_defconfig | 1
arch/arm/configs/imote2_defconfig | 1
arch/arm/configs/nhk8815_defconfig | 1
arch/arm/configs/pxa_defconfig | 1
arch/arm/configs/spear13xx_defconfig | 1
arch/arm/configs/spear3xx_defconfig | 1
arch/arm/configs/spear6xx_defconfig | 1
arch/arm/include/debug/imx-uart.h | 18
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5
arch/arm/net/bpf_jit_32.c | 5
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 2
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 3
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 14
arch/arm64/boot/dts/marvell/cn9130.dtsi | 15
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 2
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 5
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2
arch/arm64/boot/dts/qcom/msm8916.dtsi | 4
arch/arm64/boot/dts/qcom/msm8996.dtsi | 3
arch/arm64/boot/dts/qcom/sc7280.dtsi | 10
arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 27
arch/arm64/boot/dts/qcom/sm6350.dtsi | 4
arch/arm64/boot/dts/qcom/sm8350.dtsi | 6
arch/arm64/boot/dts/renesas/cat875.dtsi | 1
arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 6
arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 6
arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 6
arch/arm64/boot/dts/renesas/r8a77951.dtsi | 6
arch/arm64/boot/dts/renesas/r8a77960.dtsi | 6
arch/arm64/boot/dts/renesas/r8a77961.dtsi | 6
arch/arm64/boot/dts/renesas/r8a77965.dtsi | 6
arch/arm64/boot/dts/renesas/r8a77980.dtsi | 4
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 10
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b-plus.dts | 7
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts | 7
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts | 7
arch/arm64/boot/dts/ti/k3-am642.dtsi | 2
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2
arch/arm64/boot/dts/ti/k3-j7200.dtsi | 6
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 2
arch/arm64/boot/dts/ti/k3-j721e.dtsi | 6
arch/arm64/include/asm/mte-kasan.h | 8
arch/arm64/kernel/module.c | 4
arch/arm64/kernel/process.c | 39
arch/arm64/lib/clear_page.S | 10
arch/arm64/lib/mte.S | 8
arch/arm64/net/bpf_jit_comp.c | 10
arch/mips/Kconfig | 6
arch/mips/bcm63xx/clk.c | 6
arch/mips/boot/compressed/Makefile | 2
arch/mips/boot/compressed/clz_ctz.c | 2
arch/mips/cavium-octeon/octeon-platform.c | 2
arch/mips/cavium-octeon/octeon-usb.c | 1
arch/mips/configs/fuloong2e_defconfig | 1
arch/mips/configs/malta_qemu_32r6_defconfig | 1
arch/mips/configs/maltaaprp_defconfig | 1
arch/mips/configs/maltasmvp_defconfig | 1
arch/mips/configs/maltasmvp_eva_defconfig | 1
arch/mips/configs/maltaup_defconfig | 1
arch/mips/include/asm/local.h | 9
arch/mips/include/asm/mach-loongson64/kernel-entry-init.h | 4
arch/mips/include/asm/octeon/cvmx-bootinfo.h | 4
arch/mips/lantiq/clk.c | 6
arch/mips/net/bpf_jit_comp32.c | 3
arch/mips/net/bpf_jit_comp64.c | 2
arch/openrisc/include/asm/syscalls.h | 2
arch/openrisc/kernel/entry.S | 5
arch/parisc/include/asm/special_insns.h | 44
arch/parisc/kernel/traps.c | 2
arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi | 2
arch/powerpc/configs/ppc6xx_defconfig | 1
arch/powerpc/configs/pseries_defconfig | 1
arch/powerpc/include/asm/hw_irq.h | 40
arch/powerpc/kernel/btext.c | 4
arch/powerpc/kernel/fadump.c | 8
arch/powerpc/kernel/head_40x.S | 9
arch/powerpc/kernel/interrupt.c | 2
arch/powerpc/kernel/interrupt_64.S | 10
arch/powerpc/kernel/module.c | 11
arch/powerpc/kernel/prom_init.c | 2
arch/powerpc/kernel/smp.c | 42
arch/powerpc/kernel/watchdog.c | 41
arch/powerpc/kvm/book3s_hv.c | 8
arch/powerpc/kvm/book3s_hv_nested.c | 2
arch/powerpc/mm/book3s64/radix_pgtable.c | 4
arch/powerpc/mm/kasan/book3s_32.c | 3
arch/powerpc/mm/pgtable_64.c | 14
arch/powerpc/net/bpf_jit_comp32.c | 4
arch/powerpc/net/bpf_jit_comp64.c | 4
arch/powerpc/perf/core-book3s.c | 58
arch/powerpc/platforms/cell/iommu.c | 1
arch/powerpc/platforms/cell/pervasive.c | 1
arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 1
arch/powerpc/platforms/powermac/low_i2c.c | 3
arch/powerpc/platforms/powernv/opal-lpc.c | 1
arch/powerpc/sysdev/xive/spapr.c | 3
arch/riscv/Kconfig | 23
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi | 3
arch/riscv/configs/defconfig | 1
arch/riscv/configs/nommu_k210_defconfig | 2
arch/riscv/configs/nommu_k210_sdcard_defconfig | 2
arch/riscv/configs/nommu_virt_defconfig | 1
arch/riscv/configs/rv32_defconfig | 1
arch/riscv/include/asm/smp.h | 10
arch/riscv/kernel/kexec_relocate.S | 20
arch/riscv/kernel/machine_kexec.c | 3
arch/riscv/kernel/setup.c | 10
arch/riscv/kernel/smp.c | 10
arch/riscv/kvm/main.c | 8
arch/riscv/mm/init.c | 19
arch/riscv/net/bpf_jit_comp32.c | 6
arch/riscv/net/bpf_jit_comp64.c | 7
arch/s390/kernel/module.c | 5
arch/s390/kvm/kvm-s390.c | 2
arch/s390/mm/pgalloc.c | 4
arch/s390/net/bpf_jit_comp.c | 6
arch/sh/configs/titan_defconfig | 1
arch/sparc/net/bpf_jit_comp_64.c | 2
arch/um/.gitignore | 1
arch/um/drivers/virt-pci.c | 8
arch/um/drivers/virtio_uml.c | 4
arch/um/include/asm/delay.h | 4
arch/um/include/asm/irqflags.h | 4
arch/um/include/shared/longjmp.h | 2
arch/um/include/shared/os.h | 4
arch/um/include/shared/registers.h | 4
arch/um/kernel/ksyms.c | 2
arch/um/os-Linux/registers.c | 4
arch/um/os-Linux/sigio.c | 6
arch/um/os-Linux/signal.c | 8
arch/um/os-Linux/start_up.c | 2
arch/x86/boot/compressed/Makefile | 7
arch/x86/configs/i386_defconfig | 1
arch/x86/configs/x86_64_defconfig | 1
arch/x86/crypto/aesni-intel_glue.c | 4
arch/x86/hyperv/mmu.c | 19
arch/x86/include/asm/realmode.h | 1
arch/x86/include/asm/topology.h | 2
arch/x86/include/asm/uaccess.h | 5
arch/x86/kernel/cpu/mce/core.c | 42
arch/x86/kernel/cpu/mce/inject.c | 2
arch/x86/kernel/cpu/mce/severity.c | 33
arch/x86/kernel/early-quirks.c | 10
arch/x86/kernel/module.c | 7
arch/x86/kernel/reboot.c | 12
arch/x86/kvm/cpuid.c | 90
arch/x86/kvm/mmu/tdp_mmu.c | 6
arch/x86/kvm/vmx/posted_intr.c | 25
arch/x86/kvm/x86.c | 30
arch/x86/net/bpf_jit_comp.c | 10
arch/x86/net/bpf_jit_comp32.c | 4
arch/x86/realmode/init.c | 26
arch/x86/um/syscalls_64.c | 3
block/bfq-iosched.c | 44
block/blk-flush.c | 4
block/blk-pm.c | 22
block/genhd.c | 15
block/mq-deadline.c | 4
crypto/jitterentropy.c | 3
drivers/acpi/acpica/exfield.c | 7
drivers/acpi/acpica/exoparg1.c | 3
drivers/acpi/acpica/hwesleep.c | 4
drivers/acpi/acpica/hwsleep.c | 4
drivers/acpi/acpica/hwxfsleep.c | 2
drivers/acpi/acpica/utdelete.c | 1
drivers/acpi/battery.c | 22
drivers/acpi/bus.c | 4
drivers/acpi/cppc_acpi.c | 2
drivers/acpi/ec.c | 57
drivers/acpi/internal.h | 2
drivers/acpi/scan.c | 13
drivers/acpi/x86/utils.c | 116 -
drivers/android/binder.c | 98 -
drivers/base/core.c | 3
drivers/base/power/runtime.c | 41
drivers/base/property.c | 4
drivers/base/regmap/regmap.c | 1
drivers/base/swnode.c | 2
drivers/block/floppy.c | 6
drivers/block/null_blk/main.c | 8
drivers/bluetooth/btintel.c | 26
drivers/bluetooth/btmtksdio.c | 2
drivers/bluetooth/btusb.c | 5
drivers/bluetooth/hci_bcm.c | 7
drivers/bluetooth/hci_qca.c | 9
drivers/bluetooth/hci_vhci.c | 4
drivers/bluetooth/virtio_bt.c | 3
drivers/bus/mhi/core/init.c | 1
drivers/bus/mhi/core/pm.c | 35
drivers/bus/mhi/pci_generic.c | 2
drivers/char/mwave/3780i.h | 2
drivers/char/random.c | 19
drivers/char/tpm/tpm-chip.c | 18
drivers/char/tpm/tpm_tis_core.c | 14
drivers/clk/bcm/clk-bcm2835.c | 13
drivers/clk/clk-bm1880.c | 20
drivers/clk/clk-si5341.c | 2
drivers/clk/clk-stm32f4.c | 4
drivers/clk/clk.c | 18
drivers/clk/imx/clk-imx8mn.c | 6
drivers/clk/meson/gxbb.c | 44
drivers/clk/qcom/gcc-sc7280.c | 2
drivers/clk/renesas/rzg2l-cpg.c | 17
drivers/clk/samsung/clk-exynos850.c | 70
drivers/counter/104-quad-8.c | 82
drivers/cpufreq/cpufreq.c | 4
drivers/cpufreq/intel_pstate.c | 24
drivers/cpufreq/qcom-cpufreq-hw.c | 7
drivers/crypto/atmel-aes.c | 6
drivers/crypto/caam/caamalg.c | 6
drivers/crypto/caam/caamalg_qi2.c | 2
drivers/crypto/caam/caamhash.c | 3
drivers/crypto/caam/caampkc.c | 3
drivers/crypto/ccp/sev-dev.c | 30
drivers/crypto/hisilicon/hpre/hpre_crypto.c | 2
drivers/crypto/hisilicon/qm.c | 5
drivers/crypto/keembay/keembay-ocs-ecc.c | 1
drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c | 9
drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c | 3
drivers/crypto/omap-aes.c | 2
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 12
drivers/crypto/qce/aead.c | 2
drivers/crypto/qce/sha.c | 2
drivers/crypto/qce/skcipher.c | 2
drivers/crypto/stm32/stm32-crc32.c | 4
drivers/crypto/stm32/stm32-cryp.c | 938 +++-------
drivers/crypto/stm32/stm32-hash.c | 6
drivers/cxl/core/bus.c | 6
drivers/cxl/core/pmem.c | 8
drivers/cxl/cxl.h | 10
drivers/cxl/pmem.c | 46
drivers/dax/super.c | 6
drivers/dma-buf/dma-fence-array.c | 6
drivers/dma-buf/heaps/cma_heap.c | 6
drivers/dma/at_xdmac.c | 57
drivers/dma/idxd/device.c | 12
drivers/dma/mmp_pdma.c | 6
drivers/dma/pxa_dma.c | 7
drivers/dma/stm32-mdma.c | 2
drivers/dma/uniphier-xdmac.c | 5
drivers/edac/synopsys_edac.c | 3
drivers/firmware/efi/efi-init.c | 5
drivers/firmware/google/Kconfig | 6
drivers/firmware/sysfb_simplefb.c | 8
drivers/gpio/gpio-aspeed-sgpio.c | 32
drivers/gpio/gpio-aspeed.c | 52
drivers/gpio/gpio-idt3243x.c | 4
drivers/gpio/gpio-mpc8xxx.c | 4
drivers/gpio/gpiolib-acpi.c | 15
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 6
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 4
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 6
drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 5
drivers/gpu/drm/amd/amdgpu/cik.c | 4
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 4
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 13
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 18
drivers/gpu/drm/amd/amdgpu/vi.c | 4
drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 3
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 138 -
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 46
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 5
drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 3
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c | 11
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 11
drivers/gpu/drm/amd/display/dc/core/dc.c | 3
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 2
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.c | 3
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 3
drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c | 25
drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.h | 2
drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c | 25
drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.h | 2
drivers/gpu/drm/amd/display/dc/irq/irq_service.c | 2
drivers/gpu/drm/amd/display/dc/irq/irq_service.h | 4
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 6
drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 14
drivers/gpu/drm/bridge/display-connector.c | 2
drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 40
drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 10
drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 4
drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 9
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 12
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 2
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1
drivers/gpu/drm/drm_atomic_helper.c | 2
drivers/gpu/drm/drm_dp_helper.c | 40
drivers/gpu/drm/drm_drv.c | 9
drivers/gpu/drm/drm_gem_cma_helper.c | 17
drivers/gpu/drm/drm_gem_shmem_helper.c | 17
drivers/gpu/drm/drm_gem_vram_helper.c | 4
drivers/gpu/drm/drm_panel_orientation_quirks.c | 6
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 6
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 1
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 10
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 1
drivers/gpu/drm/i915/pxp/intel_pxp_tee.c | 5
drivers/gpu/drm/lima/lima_device.c | 1
drivers/gpu/drm/lima/lima_gem.c | 2
drivers/gpu/drm/msm/Kconfig | 1
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4
drivers/gpu/drm/msm/dsi/dsi.c | 10
drivers/gpu/drm/msm/dsi/dsi.h | 1
drivers/gpu/drm/msm/dsi/dsi_manager.c | 17
drivers/gpu/drm/msm/msm_gem_submit.c | 2
drivers/gpu/drm/nouveau/dispnv04/disp.c | 4
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 37
drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c | 8
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 10
drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 8
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 8
drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 8
drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 8
drivers/gpu/drm/panel/panel-ronbo-rb070d30.c | 8
drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c | 1
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 1
drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 8
drivers/gpu/drm/panfrost/panfrost_gem.c | 2
drivers/gpu/drm/radeon/radeon_kms.c | 42
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 31
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 6
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 82
drivers/gpu/drm/scheduler/sched_entity.c | 15
drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c | 4
drivers/gpu/drm/tegra/drm.c | 15
drivers/gpu/drm/tegra/gr2d.c | 33
drivers/gpu/drm/tegra/submit.c | 4
drivers/gpu/drm/tegra/vic.c | 7
drivers/gpu/drm/ttm/ttm_bo.c | 2
drivers/gpu/drm/v3d/v3d_bo.c | 4
drivers/gpu/drm/vboxvideo/vbox_main.c | 4
drivers/gpu/drm/vc4/vc4_crtc.c | 31
drivers/gpu/drm/vc4/vc4_drv.h | 29
drivers/gpu/drm/vc4/vc4_hdmi.c | 136 +
drivers/gpu/drm/vc4/vc4_hvs.c | 26
drivers/gpu/drm/vc4/vc4_kms.c | 3
drivers/gpu/drm/vc4/vc4_txp.c | 4
drivers/gpu/drm/vgem/vgem_drv.c | 2
drivers/gpu/drm/virtio/virtgpu_ioctl.c | 4
drivers/gpu/drm/virtio/virtgpu_object.c | 2
drivers/gpu/drm/vmwgfx/Makefile | 3
drivers/gpu/drm/vmwgfx/ttm_memory.c | 99 -
drivers/gpu/drm/vmwgfx/ttm_memory.h | 6
drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c | 7
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 48
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 20
drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 12
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 4
drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c | 90
drivers/gpu/drm/vmwgfx/vmwgfx_thp.c | 184 -
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 58
drivers/gpu/host1x/Kconfig | 1
drivers/gpu/host1x/dev.c | 15
drivers/hid/hid-apple.c | 2
drivers/hid/hid-ids.h | 1
drivers/hid/hid-input.c | 8
drivers/hid/hid-magicmouse.c | 95 -
drivers/hid/hid-uclogic-params.c | 31
drivers/hid/hid-vivaldi.c | 34
drivers/hid/i2c-hid/i2c-hid-acpi.c | 2
drivers/hid/i2c-hid/i2c-hid-core.c | 4
drivers/hid/i2c-hid/i2c-hid-of-goodix.c | 2
drivers/hid/i2c-hid/i2c-hid-of.c | 10
drivers/hid/i2c-hid/i2c-hid.h | 2
drivers/hid/uhid.c | 29
drivers/hid/wacom_wac.c | 39
drivers/hsi/hsi_core.c | 1
drivers/hwmon/mr75203.c | 2
drivers/i2c/busses/i2c-designware-pcidrv.c | 8
drivers/i2c/busses/i2c-i801.c | 15
drivers/i2c/busses/i2c-mpc.c | 23
drivers/i3c/master.c | 3
drivers/i3c/master/dw-i3c-master.c | 4
drivers/i3c/master/mipi-i3c-hci/dat_v1.c | 4
drivers/iio/adc/ti-adc081c.c | 22
drivers/iio/chemical/sunrise_co2.c | 4
drivers/iio/industrialio-trigger.c | 36
drivers/infiniband/core/cma.c | 12
drivers/infiniband/core/device.c | 3
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1
drivers/infiniband/hw/cxgb4/qp.c | 1
drivers/infiniband/hw/hns/hns_roce_main.c | 5
drivers/infiniband/hw/qedr/verbs.c | 2
drivers/infiniband/sw/rxe/rxe_opcode.c | 2
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 2
drivers/input/touchscreen/ti_am335x_tsc.c | 8
drivers/interconnect/qcom/icc-rpm.c | 1
drivers/iommu/amd/amd_iommu_types.h | 2
drivers/iommu/amd/init.c | 107 -
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 2
drivers/iommu/io-pgtable-arm-v7s.c | 6
drivers/iommu/io-pgtable-arm.c | 9
drivers/iommu/iommu.c | 3
drivers/iommu/iova.c | 3
drivers/irqchip/irq-gic-v3.c | 16
drivers/leds/leds-lp55xx-common.c | 4
drivers/mailbox/imx-mailbox.c | 4
drivers/mailbox/mailbox-mpfs.c | 2
drivers/mailbox/mtk-cmdq-mailbox.c | 2
drivers/mailbox/pcc.c | 10
drivers/md/dm-linear.c | 2
drivers/md/dm-log-writes.c | 2
drivers/md/dm-stripe.c | 2
drivers/md/dm-writecache.c | 2
drivers/md/dm.c | 6
drivers/md/md.c | 27
drivers/md/md.h | 2
drivers/md/persistent-data/dm-btree.c | 8
drivers/md/persistent-data/dm-space-map-common.c | 5
drivers/md/raid0.c | 38
drivers/md/raid5.c | 41
drivers/media/Kconfig | 8
drivers/media/cec/core/cec-adap.c | 38
drivers/media/cec/core/cec-api.c | 6
drivers/media/cec/core/cec-core.c | 3
drivers/media/cec/core/cec-pin.c | 31
drivers/media/common/saa7146/saa7146_fops.c | 2
drivers/media/common/videobuf2/videobuf2-dma-contig.c | 8
drivers/media/dvb-core/dmxdev.c | 18
drivers/media/dvb-frontends/dib8000.c | 4
drivers/media/i2c/imx274.c | 5
drivers/media/i2c/ov8865.c | 16
drivers/media/pci/b2c2/flexcop-pci.c | 3
drivers/media/pci/intel/ipu3/cio2-bridge.c | 4
drivers/media/pci/saa7146/hexium_gemini.c | 7
drivers/media/pci/saa7146/hexium_orion.c | 8
drivers/media/pci/saa7146/mxb.c | 8
drivers/media/platform/aspeed-video.c | 14
drivers/media/platform/coda/coda-common.c | 8
drivers/media/platform/coda/coda-jpeg.c | 21
drivers/media/platform/coda/imx-vdoa.c | 6
drivers/media/platform/imx-pxp.c | 4
drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 2
drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 2
drivers/media/platform/qcom/venus/core.c | 11
drivers/media/platform/qcom/venus/pm_helpers.c | 32
drivers/media/platform/rcar-vin/rcar-csi2.c | 18
drivers/media/platform/rcar-vin/rcar-v4l2.c | 15
drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c | 2
drivers/media/radio/si470x/radio-si470x-i2c.c | 3
drivers/media/rc/igorplugusb.c | 4
drivers/media/rc/mceusb.c | 8
drivers/media/rc/redrat3.c | 22
drivers/media/tuners/msi001.c | 7
drivers/media/tuners/si2157.c | 2
drivers/media/usb/b2c2/flexcop-usb.c | 10
drivers/media/usb/b2c2/flexcop-usb.h | 12
drivers/media/usb/cpia2/cpia2_usb.c | 4
drivers/media/usb/dvb-usb/dib0700_core.c | 2
drivers/media/usb/dvb-usb/dw2102.c | 338 ++-
drivers/media/usb/dvb-usb/m920x.c | 12
drivers/media/usb/em28xx/em28xx-cards.c | 18
drivers/media/usb/em28xx/em28xx-core.c | 4
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 8
drivers/media/usb/s2255/s2255drv.c | 4
drivers/media/usb/stk1160/stk1160-core.c | 4
drivers/media/usb/uvc/uvc_ctrl.c | 4
drivers/media/usb/uvc/uvc_v4l2.c | 6
drivers/media/usb/uvc/uvcvideo.h | 2
drivers/media/v4l2-core/v4l2-ioctl.c | 4
drivers/memory/renesas-rpc-if.c | 2
drivers/mfd/atmel-flexcom.c | 11
drivers/mfd/intel_soc_pmic_core.c | 28
drivers/mfd/tps65910.c | 22
drivers/misc/eeprom/at25.c | 13
drivers/misc/habanalabs/common/command_submission.c | 22
drivers/misc/habanalabs/common/firmware_if.c | 17
drivers/misc/habanalabs/common/habanalabs.h | 2
drivers/misc/lattice-ecp3-config.c | 12
drivers/misc/lkdtm/Makefile | 2
drivers/misc/mei/hbm.c | 20
drivers/mmc/core/sdio.c | 4
drivers/mmc/host/meson-mx-sdhc-mmc.c | 5
drivers/mmc/host/meson-mx-sdio.c | 5
drivers/mmc/host/mtk-sd.c | 64
drivers/mmc/host/omap_hsmmc.c | 36
drivers/mmc/host/sdhci-pci-gli.c | 11
drivers/mmc/host/tmio_mmc_core.c | 15
drivers/mtd/hyperbus/rpc-if.c | 8
drivers/mtd/mtdcore.c | 4
drivers/mtd/mtdpart.c | 2
drivers/mtd/nand/raw/davinci_nand.c | 73
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 37
drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c | 5
drivers/mtd/nand/raw/nand_base.c | 67
drivers/mtd/spi-nor/core.c | 19
drivers/mtd/spi-nor/xilinx.c | 18
drivers/net/amt.c | 2
drivers/net/bonding/bond_main.c | 40
drivers/net/can/at91_can.c | 6
drivers/net/can/c_can/c_can_main.c | 5
drivers/net/can/cc770/cc770.c | 3
drivers/net/can/dev/dev.c | 4
drivers/net/can/dev/rx-offload.c | 6
drivers/net/can/flexcan.c | 150 +
drivers/net/can/ifi_canfd/ifi_canfd.c | 5
drivers/net/can/kvaser_pciefd.c | 5
drivers/net/can/m_can/m_can.c | 7
drivers/net/can/mscan/mscan.c | 9
drivers/net/can/pch_can.c | 3
drivers/net/can/peak_canfd/peak_canfd.c | 4
drivers/net/can/rcar/rcar_can.c | 6
drivers/net/can/rcar/rcar_canfd.c | 9
drivers/net/can/sja1000/sja1000.c | 2
drivers/net/can/softing/softing_cs.c | 2
drivers/net/can/softing/softing_fw.c | 11
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 6
drivers/net/can/sun4i_can.c | 7
drivers/net/can/usb/ems_usb.c | 2
drivers/net/can/usb/esd_usb2.c | 2
drivers/net/can/usb/etas_es58x/es58x_core.c | 7
drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c | 2
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 8
drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c | 4
drivers/net/can/usb/peak_usb/pcan_usb.c | 2
drivers/net/can/usb/peak_usb/pcan_usb_fd.c | 3
drivers/net/can/usb/peak_usb/pcan_usb_pro.c | 2
drivers/net/can/usb/ucan.c | 6
drivers/net/can/usb/usb_8dev.c | 2
drivers/net/can/xilinx_can.c | 16
drivers/net/dsa/hirschmann/hellcreek.c | 87
drivers/net/dsa/rtl8365mb.c | 15
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c | 4
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 9
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c | 2
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h | 3
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 10
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c | 3
drivers/net/ethernet/cortina/gemini.c | 9
drivers/net/ethernet/freescale/fman/mac.c | 21
drivers/net/ethernet/freescale/xgmac_mdio.c | 28
drivers/net/ethernet/i825xx/sni_82596.c | 3
drivers/net/ethernet/intel/igc/igc_main.c | 4
drivers/net/ethernet/lantiq_etop.c | 4
drivers/net/ethernet/marvell/octeontx2/af/ptp.c | 2
drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c | 5
drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c | 2
drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 5
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 55
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 16
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 36
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 5
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c | 2
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c | 4
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 19
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 3
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 7
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 120 +
drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c | 2
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 28
drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c | 6
drivers/net/ethernet/mellanox/mlx5/core/main.c | 8
drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c | 5
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_matcher.c | 53
drivers/net/ethernet/mellanox/mlxsw/cmd.h | 12
drivers/net/ethernet/mellanox/mlxsw/pci.c | 7
drivers/net/ethernet/mscc/ocelot.c | 31
drivers/net/ethernet/mscc/ocelot_flower.c | 44
drivers/net/ethernet/mscc/ocelot_net.c | 6
drivers/net/ethernet/renesas/ravb_main.c | 6
drivers/net/ethernet/rocker/rocker_ofdpa.c | 3
drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 7
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3
drivers/net/ethernet/ti/cpsw.c | 6
drivers/net/ethernet/ti/cpsw_new.c | 6
drivers/net/ethernet/ti/cpsw_priv.c | 2
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 135 -
drivers/net/ipa/ipa_endpoint.c | 7
drivers/net/phy/marvell.c | 62
drivers/net/phy/mdio_bus.c | 2
drivers/net/phy/micrel.c | 36
drivers/net/phy/phy-core.c | 2
drivers/net/phy/sfp.c | 25
drivers/net/ppp/ppp_generic.c | 7
drivers/net/usb/mcs7830.c | 12
drivers/net/usb/smsc95xx.c | 3
drivers/net/wireless/ath/ar5523/ar5523.c | 4
drivers/net/wireless/ath/ath10k/core.c | 19
drivers/net/wireless/ath/ath10k/htt_tx.c | 3
drivers/net/wireless/ath/ath10k/hw.h | 3
drivers/net/wireless/ath/ath10k/txrx.c | 2
drivers/net/wireless/ath/ath10k/wmi.c | 27
drivers/net/wireless/ath/ath11k/ahb.c | 28
drivers/net/wireless/ath/ath11k/core.c | 42
drivers/net/wireless/ath/ath11k/core.h | 15
drivers/net/wireless/ath/ath11k/dp.c | 38
drivers/net/wireless/ath/ath11k/dp.h | 4
drivers/net/wireless/ath/ath11k/dp_rx.c | 16
drivers/net/wireless/ath/ath11k/dp_tx.c | 2
drivers/net/wireless/ath/ath11k/hal.c | 50
drivers/net/wireless/ath/ath11k/hal.h | 3
drivers/net/wireless/ath/ath11k/hal_rx.c | 2
drivers/net/wireless/ath/ath11k/hw.c | 2
drivers/net/wireless/ath/ath11k/hw.h | 3
drivers/net/wireless/ath/ath11k/mac.c | 59
drivers/net/wireless/ath/ath11k/pci.c | 34
drivers/net/wireless/ath/ath11k/qmi.h | 2
drivers/net/wireless/ath/ath11k/reg.c | 103 -
drivers/net/wireless/ath/ath11k/wmi.c | 5
drivers/net/wireless/ath/ath9k/hif_usb.c | 7
drivers/net/wireless/ath/ath9k/htc.h | 2
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 13
drivers/net/wireless/ath/ath9k/wmi.c | 4
drivers/net/wireless/ath/wcn36xx/dxe.c | 49
drivers/net/wireless/ath/wcn36xx/main.c | 34
drivers/net/wireless/ath/wcn36xx/smd.c | 10
drivers/net/wireless/ath/wcn36xx/txrx.c | 41
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1
drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 2
drivers/net/wireless/intel/iwlwifi/fw/api/power.h | 8
drivers/net/wireless/intel/iwlwifi/fw/dump.c | 9
drivers/net/wireless/intel/iwlwifi/fw/img.c | 6
drivers/net/wireless/intel/iwlwifi/fw/img.h | 4
drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 5
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 17
drivers/net/wireless/intel/iwlwifi/iwl-io.c | 2
drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 4
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 18
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 17
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 27
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 23
drivers/net/wireless/intel/iwlwifi/mvm/time-event.c | 36
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 7
drivers/net/wireless/intel/iwlwifi/queue/tx.c | 1
drivers/net/wireless/marvell/mwifiex/sta_event.c | 8
drivers/net/wireless/marvell/mwifiex/usb.c | 3
drivers/net/wireless/mediatek/mt76/debugfs.c | 2
drivers/net/wireless/mediatek/mt76/mac80211.c | 7
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 4
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 9
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 12
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c | 174 -
drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c | 8
drivers/net/wireless/mediatek/mt76/mt7615/testmode.c | 4
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c | 3
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c | 64
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h | 77
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 9
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 81
drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 8
drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c | 12
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 13
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 30
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 116 -
drivers/net/wireless/mediatek/mt76/mt7921/mcu.h | 27
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 2
drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 21
drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c | 4
drivers/net/wireless/mediatek/mt76/mt7921/pci_mcu.c | 2
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c | 48
drivers/net/wireless/mediatek/mt76/sdio.c | 3
drivers/net/wireless/mediatek/mt76/sdio_txrx.c | 3
drivers/net/wireless/microchip/wilc1000/netdev.c | 1
drivers/net/wireless/microchip/wilc1000/sdio.c | 2
drivers/net/wireless/microchip/wilc1000/spi.c | 2
drivers/net/wireless/realtek/rtw88/main.c | 2
drivers/net/wireless/realtek/rtw88/pci.c | 61
drivers/net/wireless/realtek/rtw88/pci.h | 2
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2
drivers/net/wireless/realtek/rtw89/mac80211.c | 1
drivers/net/wireless/realtek/rtw89/phy.c | 33
drivers/net/wireless/rsi/rsi_91x_main.c | 4
drivers/net/wireless/rsi/rsi_91x_usb.c | 9
drivers/net/wireless/rsi/rsi_usb.h | 2
drivers/net/wwan/mhi_wwan_mbim.c | 4
drivers/ntb/hw/mscc/ntb_hw_switchtec.c | 16
drivers/nvmem/core.c | 2
drivers/of/base.c | 11
drivers/of/fdt.c | 25
drivers/of/unittest.c | 21
drivers/parisc/pdc_stable.c | 4
drivers/pci/controller/dwc/pcie-designware.c | 7
drivers/pci/controller/dwc/pcie-qcom.c | 12
drivers/pci/controller/pci-aardvark.c | 10
drivers/pci/controller/pci-mvebu.c | 260 ++
drivers/pci/controller/pci-xgene.c | 2
drivers/pci/controller/pcie-apple.c | 7
drivers/pci/controller/pcie-mediatek-gen3.c | 8
drivers/pci/controller/pcie-mt7621.c | 2
drivers/pci/controller/pcie-rcar-host.c | 10
drivers/pci/hotplug/pciehp.h | 3
drivers/pci/hotplug/pciehp_core.c | 2
drivers/pci/hotplug/pciehp_hpc.c | 21
drivers/pci/msi.c | 26
drivers/pci/pci-bridge-emul.c | 70
drivers/pci/quirks.c | 3
drivers/pcmcia/cs.c | 8
drivers/pcmcia/rsrc_nonstatic.c | 6
drivers/perf/arm-cmn.c | 5
drivers/phy/cadence/phy-cadence-sierra.c | 31
drivers/phy/mediatek/phy-mtk-mipi-dsi.c | 2
drivers/phy/mediatek/phy-mtk-tphy.c | 162 +
drivers/phy/socionext/phy-uniphier-usb3ss.c | 10
drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 2
drivers/pinctrl/mediatek/pinctrl-paris.c | 2
drivers/pinctrl/pinctrl-apple-gpio.c | 2
drivers/pinctrl/pinctrl-rockchip.c | 2
drivers/platform/x86/wmi.c | 17
drivers/power/reset/mt6323-poweroff.c | 3
drivers/ptp/ptp_vclock.c | 10
drivers/regulator/da9121-regulator.c | 5
drivers/regulator/qcom-labibb-regulator.c | 2
drivers/regulator/qcom_smd-regulator.c | 100 -
drivers/remoteproc/imx_rproc.c | 1
drivers/rpmsg/rpmsg_core.c | 20
drivers/rtc/dev.c | 6
drivers/rtc/rtc-cmos.c | 3
drivers/rtc/rtc-pxa.c | 4
drivers/scsi/hisi_sas/hisi_sas_main.c | 8
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 1
drivers/scsi/lpfc/lpfc.h | 2
drivers/scsi/lpfc/lpfc_attr.c | 62
drivers/scsi/lpfc/lpfc_els.c | 11
drivers/scsi/lpfc/lpfc_hbadisc.c | 8
drivers/scsi/lpfc/lpfc_init.c | 8
drivers/scsi/lpfc/lpfc_nportdisc.c | 6
drivers/scsi/lpfc/lpfc_sli.c | 6
drivers/scsi/mpi3mr/mpi3mr.h | 3
drivers/scsi/mpi3mr/mpi3mr_fw.c | 4
drivers/scsi/pm8001/pm8001_hwi.c | 4
drivers/scsi/scsi.c | 4
drivers/scsi/scsi_debugfs.c | 1
drivers/scsi/scsi_pm.c | 2
drivers/scsi/sr.c | 2
drivers/scsi/sr_vendor.c | 4
drivers/scsi/ufs/tc-dwc-g210-pci.c | 1
drivers/scsi/ufs/ufs-mediatek.c | 2
drivers/scsi/ufs/ufshcd-pci.c | 2
drivers/scsi/ufs/ufshcd-pltfrm.c | 2
drivers/scsi/ufs/ufshcd.c | 22
drivers/soc/imx/gpcv2.c | 3
drivers/soc/mediatek/mtk-scpsys.c | 15
drivers/soc/qcom/cpr.c | 2
drivers/soc/ti/pruss.c | 2
drivers/spi/spi-geni-qcom.c | 32
drivers/spi/spi-hisi-kunpeng.c | 15
drivers/spi/spi-meson-spifc.c | 1
drivers/spi/spi-uniphier.c | 11
drivers/spi/spi.c | 13
drivers/staging/greybus/audio_topology.c | 15
drivers/staging/media/atomisp/i2c/ov2680.h | 24
drivers/staging/media/atomisp/pci/atomisp_cmd.c | 82
drivers/staging/media/atomisp/pci/atomisp_fops.c | 11
drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c | 2
drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 188 +-
drivers/staging/media/atomisp/pci/atomisp_subdev.c | 15
drivers/staging/media/atomisp/pci/atomisp_subdev.h | 3
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 13
drivers/staging/media/atomisp/pci/atomisp_v4l2.h | 3
drivers/staging/media/atomisp/pci/sh_css.c | 27
drivers/staging/media/atomisp/pci/sh_css_mipi.c | 41
drivers/staging/media/atomisp/pci/sh_css_params.c | 8
drivers/staging/media/hantro/hantro_drv.c | 3
drivers/staging/media/hantro/hantro_h1_jpeg_enc.c | 2
drivers/staging/media/hantro/hantro_hw.h | 3
drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c | 17
drivers/staging/media/hantro/rockchip_vpu_hw.c | 5
drivers/staging/rtl8192e/rtllib.h | 2
drivers/staging/rtl8192e/rtllib_module.c | 16
drivers/staging/rtl8192e/rtllib_softmac.c | 6
drivers/tee/tee_core.c | 4
drivers/thermal/imx8mm_thermal.c | 3
drivers/thermal/imx_thermal.c | 145 -
drivers/thermal/intel/int340x_thermal/processor_thermal_device.h | 3
drivers/thermal/intel/int340x_thermal/processor_thermal_mbox.c | 100 -
drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c | 23
drivers/thunderbolt/acpi.c | 13
drivers/tty/mxser.c | 44
drivers/tty/serial/8250/8250_bcm7271.c | 11
drivers/tty/serial/8250/8250_dw.c | 3
drivers/tty/serial/amba-pl010.c | 3
drivers/tty/serial/amba-pl011.c | 29
drivers/tty/serial/atmel_serial.c | 14
drivers/tty/serial/imx.c | 7
drivers/tty/serial/liteuart.c | 2
drivers/tty/serial/serial_core.c | 7
drivers/tty/serial/stm32-usart.c | 6
drivers/tty/serial/uartlite.c | 2
drivers/usb/core/hub.c | 5
drivers/usb/dwc2/gadget.c | 13
drivers/usb/dwc2/hcd.c | 7
drivers/usb/dwc3/dwc3-meson-g12a.c | 17
drivers/usb/dwc3/dwc3-qcom.c | 7
drivers/usb/gadget/function/f_fs.c | 4
drivers/usb/gadget/function/u_audio.c | 28
drivers/usb/host/ehci-brcm.c | 6
drivers/usb/host/uhci-platform.c | 3
drivers/usb/misc/ftdi-elan.c | 1
drivers/vdpa/ifcvf/ifcvf_base.c | 41
drivers/vdpa/ifcvf/ifcvf_base.h | 9
drivers/vdpa/ifcvf/ifcvf_main.c | 24
drivers/vdpa/mlx5/net/mlx5_vnet.c | 8
drivers/video/backlight/qcom-wled.c | 122 -
drivers/virtio/virtio_mem.c | 2
drivers/virtio/virtio_ring.c | 4
drivers/w1/slaves/w1_ds28e04.c | 26
drivers/xen/gntdev.c | 6
fs/btrfs/backref.c | 21
fs/btrfs/ctree.c | 19
fs/btrfs/dev-replace.c | 2
fs/btrfs/disk-io.c | 2
fs/btrfs/extent-tree.c | 58
fs/btrfs/inode.c | 11
fs/btrfs/qgroup.c | 19
fs/btrfs/volumes.c | 2
fs/btrfs/zoned.c | 91
fs/btrfs/zoned.h | 13
fs/cifs/sess.c | 13
fs/debugfs/file.c | 2
fs/dlm/lock.c | 9
fs/dlm/lowcomms.c | 44
fs/ext4/ext4.h | 1
fs/ext4/ext4_jbd2.c | 2
fs/ext4/extents.c | 2
fs/ext4/fast_commit.c | 18
fs/ext4/inode.c | 51
fs/ext4/ioctl.c | 2
fs/ext4/mballoc.c | 48
fs/ext4/migrate.c | 23
fs/ext4/super.c | 27
fs/f2fs/checkpoint.c | 4
fs/f2fs/compress.c | 50
fs/f2fs/data.c | 7
fs/f2fs/f2fs.h | 11
fs/f2fs/file.c | 10
fs/f2fs/gc.c | 8
fs/f2fs/inode.c | 5
fs/f2fs/segment.h | 3
fs/f2fs/super.c | 44
fs/f2fs/sysfs.c | 4
fs/f2fs/xattr.c | 11
fs/fuse/file.c | 2
fs/hugetlbfs/inode.c | 7
fs/io_uring.c | 4
fs/jffs2/file.c | 40
fs/ksmbd/connection.c | 1
fs/ksmbd/connection.h | 4
fs/ksmbd/ksmbd_netlink.h | 12
fs/ksmbd/smb2misc.c | 18
fs/ksmbd/smb2ops.c | 16
fs/ksmbd/smb2pdu.c | 87
fs/ksmbd/smb2pdu.h | 1
fs/ksmbd/smb_common.h | 1
fs/ksmbd/transport_ipc.c | 2
fs/ksmbd/transport_tcp.c | 3
fs/nfsd/nfs3xdr.c | 44
fs/nfsd/nfs4state.c | 6
fs/nfsd/vfs.c | 4
fs/ubifs/super.c | 1
fs/udf/ialloc.c | 2
include/acpi/acpi_bus.h | 5
include/acpi/actypes.h | 10
include/asm-generic/bitops/find.h | 5
include/drm/drm_drv.h | 5
include/drm/gpu_scheduler.h | 12
include/linux/blk-pm.h | 2
include/linux/bpf.h | 2
include/linux/bpf_verifier.h | 7
include/linux/hid.h | 2
include/linux/iio/trigger.h | 2
include/linux/kasan.h | 4
include/linux/mmzone.h | 9
include/linux/mtd/rawnand.h | 2
include/linux/mtd/spi-nor.h | 2
include/linux/netfilter_netdev.h | 2
include/linux/of_fdt.h | 2
include/linux/pm_runtime.h | 3
include/linux/psi_types.h | 13
include/linux/ptp_clock_kernel.h | 12
include/linux/skbuff.h | 4
include/linux/stmmac.h | 1
include/linux/vmalloc.h | 7
include/media/cec.h | 11
include/net/inet_frag.h | 11
include/net/ipv6_frag.h | 3
include/net/pkt_sched.h | 4
include/net/sch_generic.h | 5
include/net/xfrm.h | 7
include/sound/hda_codec.h | 8
include/trace/events/cgroup.h | 12
include/trace/events/sunrpc.h | 13
include/uapi/linux/bpf.h | 2
include/uapi/linux/xfrm.h | 1
include/uapi/misc/habanalabs.h | 18
kernel/audit.c | 18
kernel/bpf/bloom_filter.c | 6
kernel/bpf/btf.c | 3
kernel/bpf/core.c | 3
kernel/bpf/inode.c | 14
kernel/bpf/verifier.c | 28
kernel/dma/pool.c | 4
kernel/locking/ww_rt_mutex.c | 2
kernel/rcu/rcutorture.c | 5
kernel/rcu/tree.c | 4
kernel/rcu/tree_exp.h | 1
kernel/sched/cpuacct.c | 79
kernel/sched/cputime.c | 4
kernel/sched/fair.c | 4
kernel/sched/psi.c | 45
kernel/sched/rt.c | 23
kernel/sched/stats.h | 5
kernel/signal.c | 20
kernel/time/clocksource.c | 50
kernel/trace/bpf_trace.c | 6
kernel/trace/trace_events_synth.c | 13
kernel/trace/trace_kprobe.c | 5
kernel/trace/trace_osnoise.c | 20
kernel/trace/trace_probe.c | 2
kernel/trace/trace_syscalls.c | 6
kernel/trace/trace_uprobe.c | 5
kernel/tsacct.c | 7
lib/kunit/test.c | 18
lib/logic_iomem.c | 19
lib/mpi/mpi-mod.c | 2
lib/test_bpf.c | 4
lib/test_hmm.c | 24
lib/test_meminit.c | 1
mm/hmm.c | 5
mm/kasan/quarantine.c | 11
mm/kasan/shadow.c | 9
mm/page_alloc.c | 19
mm/shmem.c | 37
mm/vmalloc.c | 3
net/ax25/af_ax25.c | 10
net/batman-adv/netlink.c | 30
net/bluetooth/cmtp/core.c | 4
net/bluetooth/hci_core.c | 1
net/bluetooth/hci_event.c | 37
net/bluetooth/hci_request.c | 2
net/bluetooth/hci_sock.c | 16
net/bluetooth/hci_sysfs.c | 2
net/bluetooth/l2cap_sock.c | 45
net/bluetooth/mgmt.c | 29
net/bridge/br_netfilter_hooks.c | 7
net/core/dev.c | 6
net/core/devlink.c | 2
net/core/filter.c | 8
net/core/net-sysfs.c | 3
net/core/net_namespace.c | 4
net/core/sock.c | 2
net/core/sock_map.c | 21
net/dsa/switch.c | 4
net/ipv4/fib_semantics.c | 47
net/ipv4/inet_fragment.c | 8
net/ipv4/ip_fragment.c | 3
net/ipv4/ip_gre.c | 5
net/ipv4/netfilter/ipt_CLUSTERIP.c | 5
net/ipv4/tcp_bpf.c | 27
net/ipv6/ip6_gre.c | 5
net/mac80211/rx.c | 2
net/mctp/test/route-test.c | 7
net/mptcp/options.c | 10
net/mptcp/pm_netlink.c | 18
net/mptcp/protocol.c | 4
net/netfilter/nft_payload.c | 3
net/netfilter/nft_set_pipapo.c | 8
net/netrom/af_netrom.c | 12
net/nfc/llcp_sock.c | 5
net/openvswitch/flow.c | 16
net/sched/act_ct.c | 6
net/sched/cls_api.c | 2
net/sched/sch_api.c | 2
net/sched/sch_generic.c | 1
net/smc/af_smc.c | 8
net/smc/smc_core.c | 29
net/smc/smc_core.h | 2
net/socket.c | 9
net/sunrpc/svc_xprt.c | 2
net/unix/garbage.c | 14
net/unix/scm.c | 6
net/xfrm/xfrm_compat.c | 6
net/xfrm/xfrm_interface.c | 14
net/xfrm/xfrm_output.c | 30
net/xfrm/xfrm_policy.c | 24
net/xfrm/xfrm_state.c | 23
net/xfrm/xfrm_user.c | 41
samples/bpf/Makefile | 18
samples/bpf/Makefile.target | 11
samples/bpf/lwt_len_hist_kern.c | 7
samples/bpf/xdp_sample_user.h | 2
scripts/dtc/dtx_diff | 8
scripts/sphinx-pre-install | 4
security/selinux/hooks.c | 12
sound/core/jack.c | 3
sound/core/misc.c | 2
sound/core/oss/pcm_oss.c | 2
sound/core/pcm.c | 6
sound/core/seq/seq_queue.c | 14
sound/hda/hdac_stream.c | 14
sound/pci/hda/hda_bind.c | 5
sound/pci/hda/hda_codec.c | 45
sound/pci/hda/hda_controller.c | 1
sound/pci/hda/hda_local.h | 1
sound/pci/hda/patch_cs8409-tables.c | 3
sound/pci/hda/patch_cs8409.c | 9
sound/pci/hda/patch_cs8409.h | 1
sound/soc/amd/Kconfig | 2
sound/soc/codecs/Kconfig | 3
sound/soc/codecs/cs42l42.c | 22
sound/soc/codecs/cs42l42.h | 2
sound/soc/codecs/rt5663.c | 12
sound/soc/fsl/fsl_asrc.c | 69
sound/soc/fsl/fsl_mqs.c | 2
sound/soc/fsl/imx-card.c | 32
sound/soc/fsl/imx-hdmi.c | 2
sound/soc/generic/test-component.c | 5
sound/soc/intel/boards/sof_sdw.c | 2
sound/soc/intel/catpt/dsp.c | 14
sound/soc/intel/skylake/skl-pcm.c | 1
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 6
sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c | 7
sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 6
sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 2
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 73
sound/soc/mediatek/mt8195/mt8195-reg.h | 1
sound/soc/samsung/idma.c | 2
sound/soc/sof/intel/hda-codec.c | 3
sound/soc/sof/intel/hda-pcm.c | 86
sound/soc/sof/intel/hda.c | 9
sound/soc/sof/intel/hda.h | 6
sound/soc/sof/ipc.c | 3
sound/soc/sof/pcm.c | 5
sound/soc/sof/sof-audio.c | 109 +
sound/soc/sof/sof-audio.h | 6
sound/soc/sof/topology.c | 17
sound/soc/uniphier/Kconfig | 2
sound/usb/format.c | 2
sound/usb/mixer_quirks.c | 2
sound/usb/quirks.c | 2
tools/bpf/bpftool/Documentation/Makefile | 1
tools/bpf/bpftool/Documentation/bpftool-btf.rst | 2
tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 2
tools/bpf/bpftool/Documentation/bpftool-gen.rst | 2
tools/bpf/bpftool/Documentation/bpftool-link.rst | 2
tools/bpf/bpftool/Documentation/bpftool-map.rst | 6
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 8
tools/bpf/bpftool/Documentation/bpftool.rst | 6
tools/bpf/bpftool/Makefile | 1
tools/bpf/bpftool/main.c | 2
tools/bpf/bpftool/prog.c | 15
tools/bpf/resolve_btfids/main.c | 5
tools/include/nolibc/nolibc.h | 33
tools/include/uapi/linux/bpf.h | 2
tools/lib/bpf/btf.c | 55
tools/lib/bpf/btf.h | 2
tools/lib/bpf/btf_dump.c | 2
tools/lib/bpf/gen_loader.c | 12
tools/lib/bpf/libbpf.c | 61
tools/lib/bpf/libbpf.h | 1
tools/lib/bpf/linker.c | 6
tools/perf/Makefile.config | 5
tools/perf/tests/shell/stat_all_metricgroups.sh | 2
tools/perf/util/cputopo.c | 3
tools/perf/util/debug.c | 2
tools/perf/util/evsel.c | 25
tools/perf/util/metricgroup.c | 4
tools/perf/util/probe-event.c | 3
tools/testing/kunit/kunit_json.py | 2
tools/testing/kunit/kunit_tool_test.py | 6
tools/testing/selftests/bpf/btf_helpers.c | 9
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 5
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c | 4
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 2
tools/testing/selftests/bpf/prog_tests/tc_redirect.c | 7
tools/testing/selftests/bpf/xdpxceiver.c | 6
tools/testing/selftests/clone3/clone3.c | 6
tools/testing/selftests/ftrace/test.d/kprobe/profile.tc | 2
tools/testing/selftests/kselftest_harness.h | 2
tools/testing/selftests/kvm/.gitignore | 2
tools/testing/selftests/kvm/Makefile | 4
tools/testing/selftests/kvm/include/x86_64/processor.h | 7
tools/testing/selftests/kvm/lib/x86_64/processor.c | 33
tools/testing/selftests/kvm/x86_64/cpuid_test.c | 209 ++
tools/testing/selftests/kvm/x86_64/get_cpuid_test.c | 179 -
tools/testing/selftests/powerpc/security/spectre_v2.c | 2
tools/testing/selftests/powerpc/signal/.gitignore | 1
tools/testing/selftests/powerpc/signal/Makefile | 1
tools/testing/selftests/powerpc/signal/sigreturn_kernel.c | 132 +
tools/testing/selftests/vm/charge_reserved_hugetlb.sh | 34
tools/testing/selftests/vm/hmm-tests.c | 42
tools/testing/selftests/vm/hugetlb_reparenting_test.sh | 21
tools/testing/selftests/vm/write_hugetlb_memory.sh | 2
virt/kvm/kvm_main.c | 5
1119 files changed, 10815 insertions(+), 6142 deletions(-)
Adam Ford (2):
soc: imx: gpcv2: keep i.MX8MM VPU-H1 bus clock active
clk: imx8mn: Fix imx8mn_clko1_sels
Adam Ward (1):
regulator: da9121: Prevent current limit change when enabled
Adrian Hunter (1):
perf script: Fix hex dump character output
Ajit Kumar Pandey (1):
ASoC: SOF: ipc: Add null pointer check for substream->runtime
Alan Maguire (1):
libbpf: Silence uninitialized warning/error in btf_dump_dump_type_data
Alan Stern (1):
scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
Alex Deucher (2):
drm/amdgpu/display: set vblank_disable_immediate for DC
drm/amdgpu: don't do resets on APUs which don't support it
Alex Elder (2):
ARM: dts: qcom: sdx55: fix IPA interconnect definitions
net: ipa: fix atomic update in ipa_endpoint_replenish()
Alexander Aring (3):
fs: dlm: don't call kernel_getpeername() in error_report()
fs: dlm: fix build with CONFIG_IPV6 disabled
fs: dlm: filter user dlm messages for kernel locks
Alexander Gordeev (1):
s390/mm: fix 2KB pgtable release race
Alexander Lobakin (2):
samples: bpf: Fix xdp_sample_user.o linking with Clang
samples: bpf: Fix 'unknown warning group' build warning on Clang
Alexander Stein (4):
arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
Alexander Usyskin (1):
mei: hbm: fix client dma reply status
Alexandre Ghiti (3):
riscv: Get rid of MAXPHYSMEM configs
Documentation, arch: Remove leftovers from raw device
Documentation, arch: Remove leftovers from CIFS_WEAK_PW_HASH
Alexei Starovoitov (3):
libbpf: Clean gen_loader's attach kind.
bpf: Adjust BTF log size limit.
libbpf: Fix gen_loader assumption on number of programs.
Alexey Kardashevskiy (2):
KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
Alistair Francis (2):
HID: quirks: Allow inverting the absolute X/Y values
HID: i2c-hid-of: Expose the touchscreen-inverted properties
Alistair Popple (1):
mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
Alvin Šipraga (1):
net: dsa: rtl8365mb: set RGMII RX delay in steps of 0.3 ns
Alyssa Ross (2):
serial: liteuart: fix MODULE_ALIAS
ASoC: fsl_mqs: fix MODULE_ALIAS
Ameer Hamza (1):
ASoC: test-component: fix null pointer dereference.
Amelie Delaunay (1):
dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
Amjad Ouled-Ameur (1):
usb: dwc3: meson-g12a: fix shared reset control use
Ammar Faizi (2):
tools/nolibc: x86-64: Fix startup code bug
powerpc/xive: Add missing null check after calling kmalloc
Anders Roxell (2):
selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
powerpc/cell: Fix clang -Wimplicit-fallthrough warning
Andre Przywara (1):
ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
Andreas Oetken (1):
mtd: Fixed breaking list in __mtd_del_partition.
Andrey Grodzovsky (1):
drm/sched: Avoid lockdep spalt on killing a processes
Andrey Konovalov (2):
kasan: fix quarantine conflicting with init_on_free
lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
Andrey Ryabinin (2):
cputime, cpuacct: Include guest time in user time in cpuacct.stat
sched/cpuacct: Fix user/system in shown cpuacct.usage*
Andrii Nakryiko (16):
libbpf: Fix section counting logic
libbpf: Fix non-C89 loop variable declaration in gen_loader.c
libbpf: Free up resources used by inner map definition
libbpf: Load global data maps lazily on legacy kernels
tools/resolve_btf_ids: Close ELF file on error
libbpf: Fix potential misaligned memory access in btf_ext__new()
libbpf: Fix glob_syms memory leak in bpf_linker
libbpf: Fix using invalidated memory in bpf_linker
samples/bpf: Clean up samples/bpf build failes
libbpf: Detect corrupted ELF symbols section
libbpf: Improve sanity checking during BTF fix up
selftests/bpf: Fix memory leaks in btf_type_c_dump() helper
selftests/bpf: Destroy XDP link correctly
selftests/bpf: Fix bpf_object leak in skb_ctx selftest
libbpf: Accommodate DWARF/compiler bug with duplicated structs
libbpf: Remove deprecation attribute from struct bpf_prog_prep_result
Andy Shevchenko (1):
misc: at25: Make driver OF independent again
AngeloGioacchino Del Regno (1):
mmc: mtk-sd: Use readl_poll_timeout instead of open-coded polling
Anilkumar Kolli (2):
ath11k: Use host CE parameters for CE interrupts configuration
ath11k: Fix mon status ring rx tlv processing
Antoine Tenart (1):
net-sysfs: update the queue counts in the unregistration path
Anton Vasilyev (1):
media: dw2102: Fix use after free
Antony Antony (3):
xfrm: interface with if_id 0 should return error
xfrm: state and policy should fail if XFRMA_IF_ID 0
xfrm: rate limit SA mapping change message to user space
Archie Pusaka (1):
Bluetooth: Fix removing adv when processing cmd complete
Ard Biesheuvel (1):
net: cpsw: avoid alignment faults by taking NET_IP_ALIGN into account
Arnaud Pouliquen (1):
rpmsg: core: Clean up resources on announce_create failure.
Arnd Bergmann (2):
gpu: host1x: select CONFIG_DMA_SHARED_BUFFER
dmaengine: pxa/mmp: stop referencing config->slave_id
Arseny Demidov (1):
hwmon: (mr75203) fix wrong power-up delay value
Athira Rajeev (1):
powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC
Avihai Horon (2):
RDMA/core: Let ib_find_gid() continue search even after empty entry
RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
Avraham Stern (3):
iwlwifi: mvm: perform 6GHz passive scan after suspend
iwlwifi: mvm: set protected flag only for NDP ranging
iwlwifi: mvm: fix AUX ROC removal
Aya Levin (3):
net/mlx5e: Fix page DMA map/unmap attributes
Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
Revert "net/mlx5e: Block offload of outer header csum for GRE tunnel"
Baochen Qiang (3):
ath11k: Fix unexpected return buffer manager error for QCA6390
ath11k: Fix crash caused by uninitialized TX ring
ath11k: Avoid false DEADLOCK warning reported by lockdep
Baoquan He (3):
mm_zone: add function to check if managed dma zone exists
dma/pool: create dma atomic pool only if dma zone has managed pages
mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages
Bart Van Assche (4):
scsi: core: Fix scsi_device_max_queue_depth()
scsi: ufs: Fix race conditions related to driver data
scsi: ufs: Fix a kernel crash during shutdown
scsi: core: Show SCMD_LAST in text form
Baruch Siach (3):
arm64: dts: qcom: ipq6018: Fix gpio-ranges property
of: base: Fix phandle argument length mismatch error message
of: base: Improve argument length mismatch error
Beau Belgrave (1):
tracing: Do not let synth_events block other dyn_event systems during create
Ben Greear (1):
ath11k: Fix napi related hang
Ben Hutchings (1):
firmware: Update Kconfig help text for Google firmware
Ben Skeggs (1):
drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
Benjamin Li (3):
wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
wcn36xx: populate band before determining rate on RX
wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
Bernard Zhao (1):
selinux: fix potential memleak in selinux_add_opt()
Bhaumik Bhatt (1):
bus: mhi: core: Fix reading wake_capable channel configuration
Bhupesh Sharma (1):
net: stmmac: Add platform level debug register dump feature
Biju Das (2):
arm64: dts: renesas: cat875: Add rx/tx delays
mmc: tmio: reinit card irqs in reset routine
Biwen Li (1):
arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
Bixuan Cui (1):
ALSA: oss: fix compile error when OSS_DEBUG is enabled
Borislav Petkov (6):
x86/mce: Allow instrumentation during task work queueing
x86/mce: Prevent severity computation from being instrumented
x86/mce: Mark mce_panic() noinstr
x86/mce: Mark mce_end() noinstr
x86/mce: Mark mce_read_aux() noinstr
x86/mce: Check regs before accessing it
Brian Chen (1):
psi: Fix PSI_MEM_FULL state when tasks are in memstall and doing reclaim
Brian Norris (9):
drm/rockchip: dsi: Hold pm-runtime across bind/unbind
drm/rockchip: dsi: Reconfigure hardware on resume()
drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
drm/panel: innolux-p079zca: Delete panel on attach() failure
drm/rockchip: dsi: Fix unbalanced clock on probe error
drm/rockchip: dsi: Disable PLL clock on bind error
mwifiex: Fix possible ABBA deadlock
drm/panel: Delete panel on mipi_dsi_attach() failure
drm/bridge: analogix_dp: Make PSR-exit block less
Bryan O'Donoghue (4):
wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
wcn36xx: Fix DMA channel enable/disable cycle
wcn36xx: Release DMA channel descriptor allocations
wcn36xx: Put DXE block into reset before freeing memory
Cezary Rojewski (1):
ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
Changcheng Deng (1):
PM: AVS: qcom-cpr: Use div64_ul instead of do_div
Chao Yu (6):
f2fs: fix to do sanity check on inode type during garbage collection
f2fs: fix to do sanity check in is_alive()
f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr()
f2fs: fix to avoid panic in is_alive() if metadata is inconsistent
f2fs: fix to reserve space for IO align feature
f2fs: fix to check available space of CP area correctly in update_ckpt_flags()
Chen Jun (1):
tpm: add request_locality before write TPM_INT_ENABLE
Chen-Yu Tsai (1):
media: hantro: Hook up RK3399 JPEG encoder output
Chengfeng Ye (4):
crypto: qce - fix uaf on qce_aead_register_one
crypto: qce - fix uaf on qce_ahash_register_one
crypto: qce - fix uaf on qce_skcipher_register_one
HSI: core: Fix return freed object in hsi_new_client
Chengguang Xu (1):
RDMA/rxe: Fix a typo in opcode name
Christian A. Ehrhardt (2):
ALSA: hda/cs8409: Increase delay during jack detection
ALSA: hda/cs8409: Fix Jack detection after resume
Christian Eggers (1):
mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
Christian Hewitt (2):
arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
Christian König (1):
drm/radeon: fix error handling in radeon_driver_open_kms
Christian Lamparter (1):
ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
Christoph Hellwig (4):
block: fix error unwinding in device_add_disk
dm: fix alloc_dax error handling in alloc_dev
dm: make the DAX support depend on CONFIG_FS_DAX
scsi: sr: Don't use GFP_DMA
Christophe JAILLET (8):
media: mtk-vcodec: Fix an error handling path in 'mtk_vcodec_probe()'
media: venus: core: Fix a potential NULL pointer dereference in an error handling path
media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'
RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"
PCI: qcom: Fix an error handling path in 'qcom_pcie_probe()'
i3c/master/mipi-i3c-hci: Fix a potentially infinite loop in 'hci_dat_v1_get_index()'
HID: magicmouse: Fix an error handling path in magicmouse_probe()
remoteproc: imx_rproc: Fix a resource leak in the remove function
Christophe Jaillet (1):
tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
Christophe Leroy (7):
lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
powerpc/modules: Don't WARN on first module allocation attempt
powerpc/32s: Fix shift-out-of-bounds in KASAN init
powerpc/powermac: Add additional missing lockdep_register_key()
powerpc/powermac: Add missing lockdep_register_key()
w1: Misuse of get_user()/put_user() reported by sparse
powerpc/40x: Map 32Mbytes of memory at startup
Chuck Lever (4):
NFSD: Fix verifier returned in stable WRITEs
Revert "nfsd: skip some unnecessary stats in the v4 case"
SUNRPC: Fix sockaddr handling in the svc_xprt_create_error trace point
SUNRPC: Fix sockaddr handling in svcsock_accept_class trace points
Chunfeng Yun (1):
phy: phy-mtk-tphy: add support efuse setting
Chunguang Xu (1):
ext4: fix a possible ABBA deadlock due to busy PA
Claudiu Beznea (3):
mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
mfd: atmel-flexcom: Use .resume_noirq
net: phy: micrel: use kszphy_suspend()/kszphy_resume for irq aware devices
Clément Léger (1):
software node: fix wrong node passed to find nargs_prop
Colin Ian King (3):
drm/virtio: fix potential integer overflow on shift of a int
drm/virtio: fix another potential integer overflow on shift of a int
media: uvcvideo: Fix memory leak of object map on error exit path
Conor Dooley (2):
clk: bm1880: remove kfrees on static allocations
mailbox: change mailbox-mpfs compatible string
D Scott Phillips (1):
arm64: errata: Fix exec handling in erratum 1418040 workaround
Dafna Hirschfeld (1):
media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
Dan Carpenter (16):
ksmbd: uninitialized variable in create_socket()
drm/bridge: display-connector: fix an uninitialized pointer in probe()
media: ipu3-cio2: fix error code in cio2_bridge_connect_sensor()
media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
drm/vboxvideo: fix a NULL vs IS_ERR() check
pinctrl: mediatek: uninitialized variable in mtk_pctrl_show_one_pin()
pinctrl: mediatek: add a check for error in mtk_pinconf_bias_get_rsel()
wilc1000: fix double free error in probe()
crypto: octeontx2 - prevent underflow in get_cores_bmap()
rocker: fix a sleeping in atomic bug
Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
Bluetooth: hci_sock: fix endian bug in hci_sock_setsockopt()
ax25: uninitialized variable in ax25_setsockopt()
netrom: fix api breakage in nr_setsockopt()
mailbox: imx: Fix an IS_ERR() vs NULL bug
crypto: octeontx2 - uninitialized variable in kvf_limits_store()
Dan Williams (2):
cxl/pmem: Fix reference counting for delayed work
cxl/pmem: Fix module reload vs workqueue state
Dani Liberman (1):
habanalabs: change wait for interrupt timeout to 64 bit
Daniel Borkmann (2):
bpf: Don't promote bogus looking registers after null check.
bpf: Mark PTR_TO_FUNC register initially with zero offset
Daniel Golle (1):
net: ethernet: mtk_eth_soc: fix return values and refactor MDIO ops
Daniel Latypov (1):
kunit: tool: fix --json output for skipped tests
Daniel Scally (1):
media: i2c: Re-order runtime pm initialisation
Daniel Thompson (1):
Documentation: dmaengine: Correctly describe dmatest with channel unset
Danielle Ratson (2):
mlxsw: pci: Add shutdown method in PCI driver
mlxsw: pci: Avoid flow control for EMAD packets
Dario Binacchi (3):
can: flexcan: allow to change quirks at runtime
Input: ti_am335x_tsc - set ADCREFM for X configuration
Input: ti_am335x_tsc - fix STEPCONFIG setup for Z2
Dave Jiang (1):
dmaengine: idxd: fix wq settings post wq disable
David Gow (1):
kunit: Don't crash if no parameters are generated
David Heidelberg (1):
arm64: dts: qcom: msm8996: drop not documented adreno properties
David Matlack (1):
KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU
Deren Wu (1):
mt76: mt7921: fix network buffer leak by txs missing
Dillon Min (3):
media: videobuf2: Fix the size printk format
ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco
clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell
Dima Chumak (1):
net/mlx5e: Fix nullptr on deleting mirroring rule
Dinh Nguyen (2):
usb: dwc2: do not gate off the hardware if it does not support clock gating
EDAC/synopsys: Use the quirk for version instead of ddr version
Dmitry Baryshkov (3):
arm64: dts: qcom: msm8916: fix MMC controller aliases
drm/msm/dsi: fix initialization in the bonded DSI case
drm/msm/dpu: fix safe status debugfs file
Dmitry Osipenko (4):
gpu: host1x: Add back arm_iommu_detach_device()
drm/tegra: Add back arm_iommu_detach_device()
mfd: tps65910: Set PWR_OFF bit during driver probe
drm/tegra: submit: Add missing pm_runtime_mark_last_busy()
Dmitry Torokhov (1):
HID: vivaldi: fix handling devices not using numbered reports
Dominik Brodowski (1):
pcmcia: fix setting of kthread task states
Dongliang Mu (1):
media: em28xx: fix memory leak in em28xx_init_dev
Edwin Peer (1):
bnxt_en: use firmware provided max timeout for messages
Eli Cohen (3):
vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
vdpa/mlx5: Fix config_attr_mask assignment
vdpa/mlx5: Restore cur_num_vqs in case of failure in change_num_qps()
Emil Renner Berthing (1):
serial: 8250_dw: Add StarFive JH7100 quirk
Eric Dumazet (7):
xfrm: fix a small bug in xfrm_sa_len()
ppp: ensure minimum packet size in ppp_write()
ipv4: update fib_info_cnt under spinlock protection
ipv4: avoid quadratic behavior in netns dismantle
af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
netns: add schedule point in ops_exit_list()
Eric W. Biederman (2):
signal: In get_signal test for signal_group_exit every time through the loop
taskstats: Cleanup the use of task->exit_code
Eugen Hristev (1):
media: i2c: imx274: fix s_frame_interval runtime resume not requested
Fabio Estevam (3):
media: imx-pxp: Initialize the spinlock prior to using it
ath10k: Fix the MTU size on QCA9377 SDIO
regmap: Call regmap_debugfs_exit() prior to _init()
Felix Fietkau (1):
mt76: mt7615: improve wmm index allocation
Felix Kuehling (1):
drm/amdkfd: Fix error handling in svm_range_add
Fengnan Chang (1):
f2fs: fix remove page failed in invalidate compress pages
Filipe Manana (2):
btrfs: fix deadlock between quota enable and other quota operations
btrfs: respect the max size in the header when activating swap file
Florian Fainelli (1):
net: mdio: Demote probed message to debug print
Florian Westphal (3):
netfilter: bridge: add support for pppoe filtering
netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
netfilter: egress: avoid a lockdep splat
Frank Rowand (1):
of: unittest: 64 bit dma address test requires arch support
Frederic Weisbecker (1):
rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
Fugang Duan (1):
tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
Gang Li (1):
shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
Gaurav Jain (1):
crypto: caam - save caam memory to support crypto engine retry mechanism.
Geert Uytterhoeven (1):
riscv: dts: microchip: mpfs: Drop empty chosen node
Geliang Tang (1):
mptcp: fix a DSS option writing error
George G. Davis (1):
mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
German Gomez (1):
perf evsel: Override attr->sample_period for non-libpfm4 events
Ghalem Boudour (1):
xfrm: fix policy lookup for ipv6 gre packets
Giovanni Cabiddu (1):
crypto: qat - fix undetected PFVF timeout in ACK loop
Greg Kroah-Hartman (1):
Linux 5.16.3
Guchun Chen (1):
drm/amdgpu: use spin_lock_irqsave to avoid deadlock by local interrupt
Guillaume Nault (4):
mlx5: Don't accidentally set RTO_ONLINK before mlx5e_route_lookup_ipv4_get()
xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
H. Nikolaus Schaller (1):
mmc: omap_hsmmc: Revert special init for wl1251
Haimin Zhang (2):
bpf: Add missing map_get_next_key method to bloom filter map.
USB: ehci_brcm_hub_control: Improve port index sanitizing
Hans Verkuil (3):
media: cec: fix a deadlock situation
media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
media: cec-pin: fix interrupt en/disable handling
Hans de Goede (13):
media: i2c: ov8865: Fix lockdep error
platform/x86: wmi: Replace read_takes_no_args with a flags field
platform/x86: wmi: Fix driver->notify() vs ->probe() race
ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
ACPI: Change acpi_device_always_present() into acpi_device_override_status()
ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win
mfd: intel_soc_pmic: Use CPU-id check instead of _HRV check to differentiate variants
PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
Hao Xu (1):
io_uring: fix no lock protection for ctx->cq_extra
Hari Bathini (2):
powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
Hari Prasath (1):
ARM: dts: at91: update alternate function of signal PD20
Harry Wentland (1):
drm/amdgpu: Use correct VIEWPORT_DIMENSION for DCN2
Harshad Shirwadkar (1):
ext4: initialize err_blk before calling __ext4_get_inode_loc
Hector Martin (4):
spi: Fix incorrect cs_setup delay handling
iommu/io-pgtable-arm: Fix table descriptor paddr formatting
mmc: sdhci-pci-gli: GL9755: Support for CD/WP inversion on OF platforms
PCI: apple: Fix REFCLK1 enable/poll logic
Heiko Carstens (1):
selftests/ftrace: make kprobe profile testcase description unique
Heiner Kallweit (2):
i2c: i801: Don't silently correct invalid transfer size
crypto: omap-aes - Fix broken pm_runtime_and_get() usage
Herbert Xu (1):
crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
Horatiu Vultur (1):
net: ocelot: Fix the call to switchdev_bridge_port_offload
Hou Tao (2):
bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
bpf, arm64: Use emit_addr_mov_i64() for BPF_PSEUDO_FUNC
Hou Wenlong (1):
KVM: x86: Exit to userspace if emulation prepared a completion callback
Huang Pei (1):
MIPS: fix local_{add,sub}_return on MIPS64
Huang Rui (1):
x86, sched: Fix undefined reference to init_freq_invariance_cppc() build error
Hyeong-Jun Kim (1):
f2fs: compress: fix potential deadlock of compress file
Ian Rogers (2):
perf test: Enable system wide for metricgroups test
perf metric: Fix metric_leader
Igor Pylypiv (1):
scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
Ilan Peer (2):
iwlwifi: mvm: Fix calculation of frame length
iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
Ilia Mirkin (1):
drm/nouveau/kms/nv04: use vzalloc for nv04_display
Ingo Molnar (1):
x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
Isabella Basso (1):
drm/amdgpu: fix amdgpu_ras_mca_query_error_status scope
Iwona Winiarska (2):
gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
gpio: aspeed-sgpio: Convert aspeed_sgpio.lock to raw_spinlock
J. Bruce Fields (1):
nfsd: fix crash on COPY_NOTIFY with special stateid
Jack Wang (1):
RDMA/rtrs-clt: Fix the initial value of min_latency
Jackie Liu (2):
Bluetooth: fix uninitialized variables notify_evt
drm/msm/dp: displayPort driver need algorithm rational
Jaegeuk Kim (1):
f2fs: avoid EINVAL by SBI_NEED_FSCK when pinning a file
Jagan Teki (1):
arm64: dts: rockchip: Fix Bluetooth on ROCK Pi 4 boards
Jakub Kicinski (2):
crypto: x86/aesni - don't require alignment of data
selftests: harness: avoid false negatives if test has no ASSERTs
James Hilliard (1):
media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
James Smart (3):
scsi: lpfc: Fix leaked lpfc_dmabuf mbox allocations with NPIV
scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
scsi: lpfc: Fix lpfc_force_rscn ndlp kref imbalance
Jamie Iles (1):
i3c: fix incorrect address slot lookup on 64-bit
Jammy Huang (2):
media: aspeed: fix mode-detect always time out at 2nd run
media: aspeed: Update signal status immediately to ensure sane hw state
Jan Kara (5):
bfq: Do not let waker requests skip proper accounting
ext4: avoid trim error on fs with small groups
udf: Fix error handling in udf_new_inode()
ext4: make sure to reset inode lockdep class when quota enabling fails
ext4: make sure quota gets properly shutdown on error
Jan Kiszka (1):
soc: ti: pruss: fix referenced node in error message
Jann Horn (1):
HID: uhid: Fix worker destroying device without any protection
Jason A. Donenfeld (1):
random: do not throw away excess input to crng_fast_load
Jason Gerecke (3):
HID: wacom: Reset expected and received contact counts at the same time
HID: wacom: Ignore the confidence flag when a touch is removed
HID: wacom: Avoid using stale array indicies to read contact count
Jens Axboe (1):
block: fix async_depth sysfs interface for mq-deadline
Jens Wiklander (1):
tee: fix put order in teedev_close_context()
Jeremy Kerr (1):
mctp/test: Update refcount checking in route fragment tests
Jeremy Pallotta (1):
ntb_hw_switchtec: Fix pff ioread to read into mmio_part_cfg_all
Jernej Skrabec (1):
media: hantro: Fix probe func error path
Jesper Dangaard Brouer (1):
igc: AF_XDP zero-copy metadata adjust breaks SKBs on XDP_PASS
Jianjun Wang (1):
PCI: mediatek-gen3: Disable DVFSRC voltage request
Jiasheng Jiang (10):
media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
power: reset: mt6397: Check for null res pointer
staging: greybus: audio: Check null pointer
fsl/fman: Check for null pointer after calling devm_ioremap
Bluetooth: hci_bcm: Check for error irq
can: xilinx_can: xcan_probe(): check for error irq
ASoC: rt5663: Handle device_property_read_u32_array error codes
ASoC: mediatek: Check for error clk pointer
ASoC: samsung: idma: Check of ioremap return value
drm/amdkfd: Check for null pointer after calling kmemdup
Jie Wang (1):
net: bonding: fix bond_xmit_broadcast return value error bug
Jim Quinlan (1):
of: unittest: fix warning on PowerPC frame size warning
Jingwen Chen (2):
drm/amd/amdgpu: fix psp tmr bo pin count leak in SRIOV
drm/amd/amdgpu: fix gmc bo pin count leak in SRIOV
Jiri Olsa (1):
bpf/selftests: Fix namespace mount setup in tc_redirect
Jiri Slaby (3):
mxser: keep only !tty test in ISR
mxser: don't throttle manually
mxser: increase buf_overrun if tty_insert_flip_char() fails
Jisheng Zhang (1):
riscv: mm: fix wrong phys_ram_base value for RV64
Joakim Tjernlund (1):
i2c: mpc: Correct I2C reset procedure
Joe Thornber (2):
dm btree: add a defensive bounds check to insert_at()
dm space map common: add bounds check to sm_ll_lookup_bitmap()
Joerg Roedel (1):
x86/mm: Flush global TLB when switching to trampoline page-table
Joey Gouly (1):
pinctrl: apple: return an error if pinmux is missing in the DT
Johan Hovold (9):
media: flexcop-usb: fix control-message timeouts
media: mceusb: fix control-message timeouts
media: em28xx: fix control-message timeouts
media: cpia2: fix control-message timeouts
media: s2255: fix control-message timeouts
media: redrat3: fix control-message timeouts
media: pvrusb2: fix control-message timeouts
media: stk1160: fix control-message timeouts
can: softing_cs: softingcs_probe(): fix memleak on registration failure
Johannes Berg (12):
iwlwifi: mvm: fix 32-bit build in FTM
um: fix ndelay/udelay defines
um: rename set_signals() to um_set_signals()
um: virt-pci: Fix 32-bit compile
lib/logic_iomem: Fix 32-bit build
lib/logic_iomem: Fix operation on 32-bit
um: virtio_uml: Fix time-travel external time propagation
iwlwifi: mvm: synchronize with FW after multicast commands
iwlwifi: fix leaks/bad data after failed firmware load
iwlwifi: remove module loading failure message
um: gitignore: Add kernel/capflags.c
iwlwifi: fix Bz NMI behaviour
John David Anglin (2):
parisc: Avoid calling faulthandler_disabled() twice
parisc: Fix lpa and lpa_user defines
John Fastabend (2):
bpf, sockmap: Fix return codes from tcp_bpf_recvmsg_parser()
bpf, sockmap: Fix double bpf_prog_put on error case in map_link
John Keeping (3):
usb: dwc2: gadget: initialize max_speed from params
usb: gadget: u_audio: fix calculations for small bInterval
pinctrl/rockchip: fix gpio device creation
Jonathan Cameron (2):
iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
iio: trigger: Fix a scheduling whilst atomic issue seen on tsc2046
Josef Bacik (3):
btrfs: remove BUG_ON() in find_parent_nodes()
btrfs: remove BUG_ON(!eie) in find_parent_nodes
btrfs: check the root node for uptodate before returning it
José Expósito (9):
drm/amd/display: fix dereference before NULL check
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
HID: magicmouse: Report battery level over USB
HID: apple: Do not reset quirks when the Fn key is not found
drm/amd/display: invalid parameter check in dmub_hpd_callback
perf metricgroup: Fix use after free in metric__new()
José Roberto de Souza (1):
drm/i915/display/ehl: Update voltage swing table
Julia Lawall (4):
powerpc/6xx: add missing of_node_put
powerpc/powernv: add missing of_node_put
powerpc/cell: add missing of_node_put
powerpc/btext: add missing of_node_put
Jun Miao (1):
rcu: Avoid alloc_pages() when recording stack
Juston Li (1):
drm/i915/pxp: Hold RPM wakelock during PXP unbind
Kai Vehmanen (1):
ASoC: SOF: Intel: fix build issue related to CODEC_PROBE_ENTRIES
Kai-Heng Feng (2):
rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE
usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
Kajol Jain (1):
bpf: Remove config check to enable bpf support for branch records
Kamal Heib (3):
RDMA/hns: Validate the pkey index
RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
RDMA/cxgb4: Set queue pair state when being queried
Karl Kurbjun (1):
HID: Ignore battery for Elan touchscreen on HP Envy X360 15t-dr100
Karthikeyan Kathirvel (2):
ath11k: clear the keys properly via DISABLE_KEY
ath11k: reset RSN/WPA present state for open BSS
Kees Cook (3):
x86/uaccess: Move variable into switch case statement
char/mwave: Adjust io port register size
rtc: Move variable into switch case statement
Kefeng Wang (1):
mm: defer kmemleak object creation of module_alloc()
Kevin Bracey (1):
net_sched: restore "mpu xxx" handling
Kieran Bingham (3):
drm: rcar-du: Add DSI support to rcar_du_output_name
drm: rcar-du: crtc: Support external DSI dot clock
arm64: dts: renesas: Fix thermal bindings
Kirill A. Shutemov (1):
ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
Kishon Vijay Abraham I (2):
arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
arm64: dts: ti: j721e-main: Fix 'dtbs_check' in serdes_ln_ctrl node
Konrad Dybcio (3):
arm64: dts: qcom: sm[68]350: Use interrupts-extended with pdc interrupts
arm64: dts: qcom: sm8350: Shorten camera-thermal-bottom name
regulator: qcom_smd: Align probe function with rpmh-regulator
Kris Van Hees (1):
bpf: Fix verifier support for validation of async callbacks
Krzysztof Kozlowski (1):
nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()
Kunihiko Hayashi (2):
spi: uniphier: Fix a bug that doesn't point to private data correctly
dmaengine: uniphier-xdmac: Fix type of address variables
Kuniyuki Iwashima (1):
bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
Kurt Kanzenbach (4):
net: dsa: hellcreek: Fix insertion of static FDB entries
net: dsa: hellcreek: Add STP forwarding rule
net: dsa: hellcreek: Allow PTP P2P measurements on blocked ports
net: dsa: hellcreek: Add missing PTP via UDP rules
Kyeong Yoo (1):
jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
Lad Prabhakar (6):
mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
serial: 8250_bcm7271: Propagate error codes from brcmuart_probe()
can: rcar_canfd: rcar_canfd_channel_probe(): make sure we free CAN network device
clk: renesas: rzg2l: Check return value of pm_genpd_init()
clk: renesas: rzg2l: propagate return value of_genpd_add_provider_simple()
Lai Jiangshan (1):
KVM: X86: Ensure that dirty PDPTRs are loaded
Lakshmi Sowjanya D (1):
i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
Laurence de Bruxelles (1):
rtc: pxa: fix null pointer dereference
Laurent Pinchart (1):
drm: rcar-du: Fix CRTC timings when CMM is used
Leon Romanovsky (1):
devlink: Remove misleading internal_flags from health reporter dump
Li Hua (1):
sched/rt: Try to restart rt period timer when rt runtime exceeded
Lino Sanfilippo (2):
serial: amba-pl011: do not request memory region twice
tpm: fix potential NULL pointer access in tpm_del_char_device
Linus Lüssing (1):
batman-adv: allow netlink usage in unprivileged containers
Liu Ying (1):
drm/atomic: Check new_crtc_state->active to determine if CRTC needs disable in self refresh mode
Lizhi Hou (1):
tty: serial: uartlite: allow 64 bit address
Loic Poulain (2):
bus: mhi: pci_generic: Graceful shutdown on freeze
wcn36xx: Fix max channels retrieval
Lorenzo Bianconi (10):
mt76: debugfs: fix queue reporting for mt76-usb
mt76: fix possible OOB issue in mt76_calculate_default_rate
mt76: mt7921: fix possible NULL pointer dereference in mt7921_mac_write_txwi
mt76: connac: fix last_chan configuration in mt76_connac_mcu_rate_txpower_band
mt76: connac: introduce MCU_EXT macros
mt76: connac: align MCU_EXT definitions with 7915 driver
mt76: connac: remove MCU_FW_PREFIX bit
mt76: connac: introduce MCU_UNI_CMD macro
mt76: mt7921: fix a possible race enabling/disabling runtime-pm
mt76: connac: fix a theoretical NULL pointer dereference in mt76_connac_get_phy_mode
Lu Baolu (1):
iommu: Extend mutex lock scope in iommu_probe_device()
Luca Coelho (3):
iwlwifi: don't pass actual WGDS revision number in table_revision
iwlwifi: recognize missing PNVM data and then log filename
iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
Lucas De Marchi (1):
x86/gpu: Reserve stolen memory for first integrated Intel GPU
Lucas Stach (2):
drm/etnaviv: consider completed fence seqno in hang check
drm/etnaviv: limit submit sizes
Lucas Tanure (1):
ASoC: amd: Fix dependency for SPI master
Luiz Augusto von Dentz (5):
Bluetooth: L2CAP: Fix not initializing sk_peer_pid
Bluetooth: MGMT: Use hci_dev_test_and_{set,clear}_flag
Bluetooth: L2CAP: Fix using wrong mode
Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
Bluetooth: hci_sync: Fix not setting adv set duration
Lukas Bulwahn (6):
ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
ASoC: codecs: wcd938x: add SND_SOC_WCD938_SDW to codec list instead
mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization
Lukas Fink (1):
drm/amdgpu: Fix rejecting Tahiti GPUs
Lukas Wunner (4):
serial: pl010: Drop CR register reset on set_termios
serial: pl011: Drop CR register reset on set_termios
serial: core: Keep mctrl register state and cached copy in sync
serial: Fix incorrect rs485 polarity on uart open
Lukasz Luba (1):
cpufreq: qcom-cpufreq-hw: Update offline CPUs per-cpu thermal pressure
Luís Henriques (1):
ext4: set csum seed in tmp inode while migrating to extents
Lv Yunlong (1):
wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
Lyude Paul (1):
drm/dp: Don't read back backlight mode in drm_edp_backlight_enable()
Maher Sanalla (1):
net/mlx5: Update log_max_qp value to FW max capability
Manivannan Sadhasivam (1):
bus: mhi: core: Fix race while handling SYS_ERR at power up
Mansur Alisha Shaik (2):
media: venus: correct low power frequency calculation for encoder
media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions
Maor Dickman (4):
net/mlx5e: Fix wrong usage of fib_info_nh when routes with nexthop objects are used
net/mlx5e: Don't block routes with nexthop objects in SW
net/mlx5e: Sync VXLAN udp ports during uplink representor profile change
net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager
Marc Kleine-Budde (5):
can: mcp251xfd: add missing newline to printed strings
can: softing: softing_startstop(): fix set but not used variable warning
can: flexcan: rename RX modes
can: flexcan: add more quirks to describe RX path capabilities
can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
Marc Zyngier (1):
irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
Marcelo Tosatti (1):
KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
Marek Behún (1):
ARM: dts: armada-38x: Add generic compatible to UART nodes
Marek Vasut (3):
soc: imx: gpcv2: Synchronously suspend MIX domains
PCI: rcar: Check if device is runtime suspended instead of __clk_is_enabled()
crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
Marijn Suijten (7):
backlight: qcom-wled: Validate enabled string indices in DT
backlight: qcom-wled: Pass number of elements to read to read_u32_array
backlight: qcom-wled: Fix off-by-one maximum with default num_strings
backlight: qcom-wled: Override default length with qcom,enabled-strings
backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
backlight: qcom-wled: Respect enabled-strings in set_brightness
regulator: qcom-labibb: OCP interrupts are not a failure while disabled
Marina Nikolic (1):
amdgpu/pm: Make sysfs pm attributes as read-only for VFs
Mario Limonciello (2):
ACPI: CPPC: Check present CPUs for determining _CPC is valid
drm/amd/display: Revert W/A for hard hangs on DCN20/DCN21
Mark Chen (2):
Bluetooth: btusb: Handle download_firmware failure cases
Bluetooth: btusb: Return error code when getting patch status failed
Mark Langsdorf (1):
ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
Mark Rutland (1):
powerpc: Avoid discarding flags in system_call_exception()
Markus Reichl (1):
net: usb: Correct reset handling of smsc95xx
Martin Blumenstingl (1):
clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
Martin Leung (1):
drm/amd/display: add else to avoid double destroy clk_mgr
Martyn Welch (1):
drm/bridge: megachips: Ensure both bridges are probed before registration
Mat Martineau (1):
mptcp: Check reclaim amount before reducing allocation
Mateusz Jończyk (1):
rtc: cmos: take rtc_lock while reading from CMOS
Matt Johnston (1):
mctp: test: zero out sockaddr
Matthew Auld (1):
drm/i915: don't call free_mmap_offset when purging
Matthias Schiffer (1):
scripts/dtc: dtx_diff: remove broken example from help text
Matthieu Baerts (1):
mptcp: fix opt size when sending DSS + MP_FAIL
Mauro Carvalho Chehab (8):
media: atomisp: fix enum formats logic
media: atomisp: fix try_fmt logic
media: atomisp: set per-device's default mode
media: atomisp: check before deference asd variable
media: atomisp: handle errors at sh_css_create_isp_params()
media: m920x: don't use stack on USB reads
scripts: sphinx-pre-install: add required ctex dependency
scripts: sphinx-pre-install: Fix ctex support on Debian
Maxim Levitsky (5):
iommu/amd: Restore GA log/tail pointer on host resume
iommu/amd: X2apic mode: re-enable after resume
iommu/amd: X2apic mode: setup the INTX registers on mask/unmask
iommu/amd: X2apic mode: mask/unmask interrupts on suspend/resume
iommu/amd: Remove useless irq affinity notifier
Maxim Mikityanskiy (2):
bpf: Fix the test_task_vma selftest to support output shorter than 1 kB
sch_api: Don't skip qdisc attach on ingress
Maxime Ripard (14):
clk: bcm-2835: Pick the closest clock rate
clk: bcm-2835: Remove rounding up the dividers
drm/vc4: hdmi: Set a default HSM rate
drm/vc4: hdmi: Move the HSM clock enable to runtime_pm
drm/vc4: hdmi: Make sure the controller is powered in detect
drm/vc4: hdmi: Make sure the controller is powered up during bind
drm/vc4: hdmi: Rework the pre_crtc_configure error handling
drm/vc4: crtc: Make sure the HDMI controller is powered when disabling
drm/bridge: sn65dsi83: Fix bridge removal
drm/vc4: hdmi: Enable the scrambler on reconnection
drm/vc4: hdmi: Make sure the device is powered with CEC
drm/vc4: crtc: Drop feed_txp from state
drm/vc4: Fix non-blocking commit getting stuck forever
drm/vc4: crtc: Copy assigned channel to the CRTC
Meng Li (1):
crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
Merlijn Wajer (1):
leds: lp55xx: initialise output direction from dts
Miaoqian Lin (11):
Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
drivers/firmware: Add missing platform_device_put() in sysfb_create_simplefb
spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
phy: mediatek: Fix missing check in mtk_mipi_tx_probe
drm/sun4i: dw-hdmi: Fix missing put_device() call in sun8i_hdmi_phy_get
scsi: ufs: ufs-mediatek: Fix error checking in ufs_mtk_init_va09_pwr_ctrl()
parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
gpio: mpc8xxx: Fix IRQ check in mpc8xxx_probe
gpio: idt3243x: Fix IRQ check in idt_gpio_probe
lib82596: Fix IRQ check in sni_82596_probe
Michael Ellerman (4):
powerpc/64s: Mask NIP before checking against SRR0
powerpc/64s: Use EMIT_WARN_ENTRY for SRR debug warnings
powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
selftests/powerpc: Add a test of sigreturning to the kernel
Michael Kuron (1):
media: dib0700: fix undefined behavior in tuner shutdown
Michael S. Tsirkin (1):
virtio_ring: mark ring unused on error
Michael Walle (1):
mtd: core: provide unique name for nvmem device
Michal Suchanek (1):
debugfs: lockdown: Allow reading debugfs files that are not world readable
Mika Westerberg (1):
thunderbolt: Runtime PM activate both ends of the device link
Mike Leach (1):
Documentation: coresight: Fix documentation issue
Mikhail Rudenko (1):
media: rockchip: rkisp1: use device name for debugfs subdir name
Ming Lei (2):
null_blk: allow zero poll queues
block: null_blk: only set set->nr_maps as 3 if active poll_queues is > 0
Miri Korenblit (1):
iwlwifi: acpi: fix wgds rev 3 size
Miroslav Lichvar (2):
net: fix SOF_TIMESTAMPING_BIND_PHC to work with multiple sockets
net: fix sock_timestamping_bind_phc() to release device
Mohammad Athari Bin Ismail (1):
net: phy: marvell: add Marvell specific PHY loopback
Moshe Shemesh (2):
net/mlx5: Set command entry semaphore up once got index free
Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
Moshe Tal (1):
bonding: Fix extraction of ports from the packet headers
Namjae Jeon (5):
ksmbd: fix guest connection failure with nautilus
ksmbd: add support for smb2 max credit parameter
ksmbd: move credit charge deduction under processing request
ksmbd: limits exceeding the maximum allowable outstanding requests
ksmbd: add reserved room in ipc request/response
Naohiro Aota (4):
btrfs: zoned: cache reported zone during mount
btrfs: add extent allocator hook to decide to allocate chunk or not
btrfs: zoned: unset dedicated block group on allocation failure
btrfs: zoned: fix chunk allocation condition for zoned allocator
Nathan Chancellor (4):
x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
cxl/core: Remove cxld_const_init in cxl_decoder_alloc()
MIPS: Loongson64: Use three arguments for slti
Nathan Errera (1):
iwlwifi: mvm: test roc running status bits before removing the sta
Neal Liu (1):
usb: uhci: add aspeed ast2600 uhci support
Neil Armstrong (1):
drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
Nguyen Dinh Phi (1):
Bluetooth: hci_sock: purge socket queues in the destruct() callback
Nicholas Kazlauskas (2):
drm/amd/display: Fix out of bounds access on DNC31 stream encoder regs
drm/amdgpu/display: Only set vblank_disable_immediate when PSR is not enabled
Nicholas Piggin (2):
powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
powerpc/64s/radix: Fix huge vmap false positive
Nick Kossifidis (3):
riscv: try to allocate crashkern region from 32bit addressible memory
riscv: Don't use va_pa_offset on kdump
riscv: use hart id instead of cpu id on machine_kexec
Nicolas Dichtel (1):
xfrm: fix dflt policy check when there is no policy configured
Nicolas Toromanoff (6):
crypto: stm32/cryp - fix CTR counter carry
crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
crypto: stm32/cryp - check early input data
crypto: stm32/cryp - fix double pm exit
crypto: stm32/cryp - fix lrw chaining mode
crypto: stm32/cryp - fix bugs and crash in tests
Nikita Yushchenko (1):
tracing/osnoise: Properly unhook events if start_per_cpu_kthreads() fails
Niklas Söderlund (2):
dt-bindings: thermal: Fix definition of cooling-maps contribution property
media: rcar-vin: Update format alignment constraints
Nishanth Menon (4):
arm64: dts: ti: k3-am642: Fix the L2 cache sets
arm64: dts: ti: k3-j7200: Fix the L2 cache sets
arm64: dts: ti: k3-j721e: Fix the L2 cache sets
arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
Ohad Sharabi (1):
habanalabs: skip read fw errors if dynamic descriptor invalid
Oleksandr Andrushchenko (1):
xen/gntdev: fix unmap notification order
Oleksij Rempel (1):
thermal/drivers/imx: Implement runtime PM support
P Praneesh (1):
ath11k: allocate dst ring descriptors from cacheable memory
Pablo Neira Ayuso (1):
netfilter: nft_payload: do not update layer 4 checksum when mangling fragments
Pali Rohár (15):
PCI: aardvark: Fix checking for MEM resource type
PCI: mvebu: Check for errors from pci_bridge_emul_init() call
PCI: mvebu: Do not modify PCI IO type bits in conf_write
PCI: mvebu: Fix support for bus mastering and PCI_COMMAND on emulated bridge
PCI: mvebu: Fix configuring secondary bus of PCIe Root Port via emulated bridge
PCI: mvebu: Setup PCIe controller to Root Complex mode
PCI: mvebu: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge
PCI: mvebu: Fix support for PCI_EXP_DEVCTL on emulated bridge
PCI: mvebu: Fix support for PCI_EXP_RTSTA on emulated bridge
PCI: mvebu: Fix support for DEVCAP2, DEVCTL2 and LNKCTL2 registers on emulated bridge
PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
PCI: pci-bridge-emul: Fix definitions of reserved bits
PCI: pci-bridge-emul: Correctly set PCIe capabilities
PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
Palmer Dabbelt (1):
RISC-V: defconfigs: Set CONFIG_FB=y, for FB console
Panicker Harish (1):
Bluetooth: hci_qca: Stop IBS timer during BT OFF
Paolo Abeni (2):
mptcp: fix per socket endpoint accounting
bpf: Do not WARN in bpf_warn_invalid_xdp_action()
Paolo Bonzini (1):
KVM: VMX: Don't unblock vCPU w/ Posted IRQ if IRQs are disabled in guest
Patrick Williams (1):
tpm: fix NPE on probe for missing device
Paul Blakey (2):
net/mlx5e: Fix matching on modified inner ip_ecn bits
net: openvswitch: Fix ct_state nat flags for conns arriving from tc
Paul Cercueil (6):
mtd: rawnand: davinci: Don't calculate ECC when reading page
mtd: rawnand: davinci: Avoid duplicated page read
mtd: rawnand: davinci: Rewrite function description
mtd: rawnand: Export nand_read_page_hwecc_oob_first()
mtd: rawnand: ingenic: JZ4740 needs 'oob_first' read page function
MIPS: compressed: Fix build with ZSTD compression
Paul Chaignon (1):
bpftool: Enable line buffering for stdout
Paul Gerber (1):
thermal/drivers/imx8mm: Enable ADC when enabling monitor
Paul Moore (1):
audit: ensure userspace is penalized the same as the kernel when under pressure
Pavankumar Kondeti (1):
usb: gadget: f_fs: Use stream_open() for endpoint files
Pavel Begunkov (1):
io_uring: remove double poll on poll update
Pavel Hofman (1):
usb: gadget: u_audio: Subdevice 0 for capture ctls
Pavel Skripkin (2):
Bluetooth: stop proccessing malicious adv data
net: mcs7830: handle usb read errors properly
Peiwei Hu (1):
powerpc/prom_init: Fix improper check of prom_getprop()
Peng Fan (1):
arm64: dts: ti: k3-j721e: correct cache-sets info
Peng Hao (1):
virtio/virtio_mem: handle a possible NULL as a memcpy parameter
Peter Chiu (1):
mt76: mt7615: fix possible deadlock while mt7615_register_ext_phy()
Peter Gonda (1):
crypto: ccp - Move SEV_INIT retry for corrupted data
Petr Cvachoucek (1):
ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
Philipp Zabel (1):
media: coda: fix CODA960 JPEG encoder buffer overflow
Pierre-Louis Bossart (3):
ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible
ASoC: SOF: Intel: hda: add quirks for HDAudio DMA position information
ASoC: SOF: sof-audio: setup sched widgets during pipeline complete step
Ping-Ke Shih (4):
rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC
rtw89: fix potentially access out of range of RF register array
rtw89: don't kick off TX DMA if failed to write skb
mac80211: allow non-standard VHT MCS-10/11
Pingfan Liu (1):
efi: apply memblock cap after memblock_add()
Po-Hao Huang (1):
rtw88: 8822c: update rx settings to prevent potential hw deadlock
Prasad Malisetty (2):
arm64: dts: qcom: sc7280: Fix incorrect clock name
arm64: dts: qcom: sc7280: Fix 'interrupt-map' parent address cells
Qi Liu (1):
scsi: hisi_sas: Prevent parallel FLR and controller reset
Qiang Wang (1):
libbpf: Use probe_name for legacy kprobe
Qiang Yu (1):
drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
Quentin Monnet (3):
bpftool: Fix memory leak in prog_dump()
bpftool: Remove inclusion of utilities.mak from Makefiles
bpftool: Fix indent in option lists in the documentation
Raed Salem (1):
net/xfrm: IPsec tunnel mode fix inner_ipproto setting in sec_path
Rafael J. Wysocki (6):
ACPI: EC: Rework flushing of EC work while suspended to idle
PM: runtime: Add safety net to supplier device release
cpufreq: Fix initialization of min and max frequency QoS requests
cpufreq: intel_pstate: Update cpuinfo.max_freq on HWP_CAP changes
ACPICA: Utilities: Avoid deleting the same object twice in a row
ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
Rakesh Babu Saladi (1):
octeontx2-nicvf: Free VF PTP resources.
Rameshkumar Sundaram (2):
ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
Randy Dunlap (5):
mips: lantiq: add support for clk_set_parent()
mips: bcm63xx: add support for clk_set_parent()
um: registers: Rename function names to avoid conflicts and build problems
media: correct MEDIA_TEST_SUPPORT help text
Documentation: fix firewire.rst ABI file path error
Ranjani Sridharan (3):
ASoC: SOF: topology: remove sof_load_pipeline_ipc()
ASoC: SOF: free widgets in sof_tear_down_pipelines() for static pipelines
ASoC: SOF: handle paused streams during system suspend
Reiji Watanabe (2):
arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
arm64: mte: DC {GVA,GZVA} shouldn't be used when DCZID_EL0.DZP == 1
Ricardo Ribalda (2):
media: uvcvideo: Avoid invalid memory access
media: uvcvideo: Avoid returning invalid controls
Richard Fitzgerald (1):
ASoC: cs42l42: Report initial jack state
Rob Clark (2):
drm/msm/gpu: Don't allow zero fence_id
iommu/arm-smmu-qcom: Fix TTBR0 read
Rob Herring (1):
PCI: xgene: Fix IB window setup
Robert Hancock (10):
clk: si5341: Fix clock HW provider cleanup
net: axienet: increase reset timeout
net: axienet: Wait for PhyRstCmplt after core reset
net: axienet: reset core on initialization prior to MDIO access
net: axienet: add missing memory barriers
net: axienet: limit minimum TX ring size
net: axienet: Fix TX ring slot available check
net: axienet: fix number of TX ring slots for available check
net: axienet: fix for TX busy handling
net: axienet: increase default TX ring size to 128
Robert Marko (2):
arm64: dts: marvell: cn9130: add GPIO and SPI aliases
arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
Robert Schlabbach (1):
media: si2157: Fix "warm" tuner state detection
Robin Murphy (2):
perf/arm-cmn: Fix CPU hotplug unregistration
drm/tegra: vic: Fix DMA API misuse
Russell King (Oracle) (4):
net: phy: prefer 1000baseT over 1000baseKX
net: phy: marvell: configure RGMII delays for 88E1118
net: gemini: allow any RGMII interface mode
net: sfp: fix high power modules without diagnostic monitoring
Ryder Lee (1):
mt76: mt7915: fix SMPS operation fail
Ryuta NAKANISHI (1):
phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
Sakari Ailus (3):
media: ov8865: Disable only enabled regulators on error path
device property: Fix fwnode_graph_devcon_match() fwnode leak
Documentation: ACPI: Fix data node reference documentation
Sam Protsenko (2):
clk: samsung: exynos850: Register clocks early
dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
Sameer Pujar (1):
arm64: tegra: Remove non existent Tegra194 reset
Sean Christopherson (5):
RISC-V: Use common riscv_cpuid_to_hartid_mask() for both SMP=y and SMP=n
KVM: s390: Ensure kvm_arch_no_poll() is read once when blocking vCPU
KVM: VMX: Read Posted Interrupt "control" exactly once per loop iteration
KVM: x86: Handle 32-bit wrap of EIP for EMULTYPE_SKIP with flat code seg
hugetlbfs: fix off-by-one error in hugetlb_vmdelete_list()
Sean Wang (8):
Bluetooth: btmtksdio: fix resume failure
mt76: mt7921: drop offload_flags overwritten
mt76: mt7921: fix MT7921E reset failure
mt76: mt7921: move mt76_connac_mcu_set_hif_suspend to bus-related files
mt76: mt7921s: fix the device cannot sleep deeply in suspend
mt76: mt7921s: fix possible kernel crash due to invalid Rx count
mt76: mt7921: fix possible resume failure
mt76: mt7921s: fix suspend error with enlarging mcu timeout value
Sean Young (1):
media: igorplugusb: receiver overflow should be reported
Sebastian Andrzej Siewior (2):
kernel/locking: Use a pointer in ww_mutex_trylock().
ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
Sebastian Gottschall (1):
ath10k: Fix tx hanging
Seevalamuthu Mariappan (2):
ath11k: add hw_param for wakeup_mhi
ath11k: Fix QMI file type enum value
Sergey Shtylyov (3):
mmc: meson-mx-sdhc: add IRQ check
mmc: meson-mx-sdio: add IRQ check
bcmgenet: add WOL IRQ check
Sergio Paracuellos (1):
PCI: mt7621: Add missing MODULE_LICENSE()
Shaul Triebitz (1):
iwlwifi: mvm: avoid clearing a just saved session protection id
Shay Drory (1):
net/mlx5: Fix access to sf_dev_table on allocation failure
Shayne Chen (1):
mt76: mt7921: use correct iftype data on 6GHz cap init
Shengjiu Wang (4):
ASoC: imx-card: Need special setting for ak4497 on i.MX8MQ
ASoC: imx-card: Fix mclk calculation issue for akcodec
ASoC: imx-card: improve the sound quality for low rate
ASoC: fsl_asrc: refine the check of available clock divider
Shuyi Cheng (1):
libbpf: Add "bool skipped" to struct bpf_map
Shyam Prasad N (1):
cifs: free ntlmsspblob allocated in negotiate
Sicelo A. Mhlongo (1):
ARM: dts: omap3-n900: Fix lp5523 for multi color
Slark Xiao (1):
net: wwan: Fix MRU mismatch issue which may lead to data connection lost
Soenke Huster (1):
Bluetooth: virtio_bt: fix memory leak in virtbt_rx_handle()
Sreekanth Reddy (1):
scsi: mpi3mr: Fixes around reply request queues
Srinivas Kandagatla (2):
arm64: dts: qcom: c630: Fix soundcard setup
nvmem: core: set size for sysfs bin file
Sriram R (1):
ath11k: Avoid NULL ptr access during mgmt tx cleanup
Stafford Horne (1):
openrisc: Add clone3 ABI wrapper
Stefan Riedmueller (1):
mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
Stephan Gerhold (1):
interconnect: qcom: rpm: Prevent integer overflow in rate
Stephan Müller (1):
crypto: jitter - consider 32 LSB for APT
Stephen Boyd (3):
drm/bridge: ti-sn65dsi86: Set max register for regmap
of/fdt: Don't worry about non-memory region overlap for no-map
clk: Emit a stern warning with writable debugfs enabled
Steven Rostedt (1):
tracing: Have syscall trace events use trace_event_buffer_lock_reserve()
Subbaraya Sundeep (1):
octeontx2-af: Increment ptp refcount before use
Sudeep Holla (3):
mailbox: pcc: Avoid using the uninitialized variable 'dev'
mailbox: pcc: Handle all PCC subtypes correctly in pcc_mbox_irq
ACPICA: Fix wrong interpretation of PCC address
Sumeet Pawnikar (1):
thermal/drivers/int340x: Fix RFIM mailbox write commands
Sunil Goutham (1):
octeontx2-af: Fix interrupt name strings
Suresh Kumar (1):
net: bonding: debug: avoid printing debug logs when bond is not notifying peers
Suresh Udipi (2):
media: rcar-csi2: Correct the selection of hsfreqrange
media: rcar-csi2: Optimize the selection PHTW register
Sven Eckelmann (1):
ath11k: Fix ETSI regd with weather radar overlap
Swapnil Jakhade (1):
phy: cadence: Sierra: Fix to get correct parent for mux clocks
Taehee Yoo (1):
amt: fix wrong return type of amt_send_membership_update()
Takashi Iwai (7):
ALSA: core: Fix SSID quirk lookup for subvendor=0
ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
ALSA: hda: Fix potential deadlock at codec unbinding
ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
ALSA: seq: Set upper limit of processed events
Taniya Das (1):
clk: qcom: gcc-sc7280: Mark gcc_cfg_noc_lpass_clk always enabled
Tasos Sahanidis (1):
floppy: Fix hang in watchdog when disk is ejected
Tedd Ho-Jeong An (3):
Bluetooth: hci_vhci: Fix to set the force_wakeup value
Bluetooth: mgmt: Fix Experimental Feature Changed event
Bluetooth: btintel: Add missing quirks and msft ext for legacy bootloader
Tetsuo Handa (3):
ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep()
ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet()
block: check minor range in device_add_disk()
Thadeu Lima de Souza Cascardo (1):
selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
Theodore Ts'o (1):
ext4: don't use the orphan list when migrating an inode
Thierry Reding (2):
drm/tegra: gr2d: Explicitly control module reset
arm64: tegra: Adjust length of CCPLEX cluster MMIO region
Thomas Gleixner (2):
ALSA: hda: Make proper use of timecounter
PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
Thomas Hellström (1):
dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
Thomas Richter (1):
perf cputopo: Fix CPU topology reading on s/390
Thomas Weißschuh (1):
ACPI: battery: Add the ThinkPad "Not Charging" quirk
Thomas Zimmermann (1):
drm: Return error codes from struct drm_driver.gem_create_object
Tianjia Zhang (1):
MIPS: Octeon: Fix build errors using clang
Tiezhu Yang (1):
bpf: Change value of MAX_TAIL_CALL_CNT from 32 to 33
Tim Harvey (1):
PCI: dwc: Do not remap invalid res
Tirthendu Sarkar (1):
selftests/bpf: Fix xdpxceiver failures for no hugepages
Tobias Waldekranz (3):
powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
net/fsl: xgmac_mdio: Add workaround for erratum A-009885
net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
Todd Kjos (2):
binder: fix handling of error during copy
binder: avoid potential data leakage when copying txn
Toke Høiland-Jørgensen (1):
xdp: check prog type before updating BPF link
Tom Rix (4):
iio: chemical: sunrise_co2: set val parameter only on success
i3c: master: dw: check return of dw_i3c_master_get_free_pos()
net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
net: mscc: ocelot: fix using match before it is set
Trevor Wu (2):
ASoC: mediatek: mt8195: correct default value
ASoC: mediatek: mt8195: correct pcmif BE dai control flow
Tsuchiya Yuto (8):
media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities()
media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
media: atomisp: fix inverted logic in buffers_needed()
media: atomisp: do not use err var when checking port validity for ISP2400
media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid()
media: atomisp: fix ifdefs in sh_css.c
media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
media: atomisp: fix "variable dereferenced before check 'asd'"
Tudor Ambarus (11):
crypto: atmel-aes - Reestablish the correct tfm context at dequeue
tty: serial: atmel: Check return code of dmaengine_submit()
tty: serial: atmel: Call dma_async_issue_pending()
mtd: spi-nor: Get rid of nor->page_size
mtd: spi-nor: Fix mtd size for s3an flashes
dmaengine: at_xdmac: Don't start transactions at tx_submit level
dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
dmaengine: at_xdmac: Print debug message after realeasing the lock
dmaengine: at_xdmac: Fix concurrency over xfers_list
dmaengine: at_xdmac: Fix lld view setting
dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
Tzung-Bi Shih (3):
ASoC: mediatek: mt8192-mt6359: fix device_node leak
ASoC: mediatek: mt8173: fix device_node leak
ASoC: mediatek: mt8183: fix device_node leak
Ulf Hansson (1):
mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
Uwe Kleine-König (1):
perf tools: Drop requirement for libstdc++.so for libopencsd check
Valentin Caron (1):
serial: stm32: move tx dma terminate DMA to shutdown
Vincent Chen (1):
KVM: RISC-V: Avoid spurious virtual interrupts after clearing hideleg CSR
Vincent Donnefort (2):
sched/fair: Fix detection of per-CPU kthreads waking a task
sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
Vincent Mailhol (1):
can: do not increase rx statistics when generating a CAN rx error message frame
Vinod Koul (2):
spi: qcom: geni: set the error code for gpi transfer
spi: qcom: geni: handle timeout for gpi mode
Vitaly Kuznetsov (5):
x86/hyperv: Properly deal with empty cpumasks in hyperv_flush_tlb_multi()
KVM: x86: Do runtime CPUID update before updating vcpu->arch.cpuid_entries
KVM: x86: Partially allow KVM_SET_CPUID{,2} after KVM_RUN
KVM: selftests: Rename 'get_cpuid_test' to 'cpuid_test'
KVM: selftests: Test KVM_SET_CPUID2 after KVM_RUN
Vlad Zahorodnii (1):
drm/amd/display: Use oriented source size when checking cursor scaling
Vladimir Oltean (4):
net: dsa: fix incorrect function pointer check for MRP ring roles
net: mscc: ocelot: fix incorrect balancing with down LAG ports
net: mscc: ocelot: don't let phylink re-enable TX PAUSE on the NPI port
net: mscc: ocelot: don't dereference NULL pointers with shared tc filters
Vladimir Zapolskiy (1):
cpufreq: qcom-hw: Fix probable nested interrupt handling
Waiman Long (2):
clocksource: Avoid accidental unstable marking of clocksources
selftests/vm: make charge_reserved_hugetlb.sh work with existing cgroup setting
Wan Jiabing (1):
ARM: shmobile: rcar-gen2: Add missing of_node_put()
Wander Lairson Costa (1):
rcutorture: Avoid soft lockup during cpu stall
Wang Hai (4):
drm: fix null-ptr-deref in drm_dev_init_release()
Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
media: dmxdev: fix UAF when dvb_register_device() fails
media: msi001: fix possible null-ptr-deref in msi001_probe()
Wayne Lin (1):
drm/amd/display: Fix bug in debugfs crc_win_update entry
Wei Yongjun (5):
crypto: keembay-ocs-ecc - Fix error return code in kmb_ocs_ecc_probe()
usb: ftdi-elan: fix memory leak on device disconnect
misc: lattice-ecp3-config: Fix task hung when firmware load failed
Bluetooth: Fix debugfs entry leak in hci_register_dev()
Bluetooth: Fix memory leak of hci device
Weili Qian (2):
crypto: hisilicon/qm - fix incorrect return value of hisi_qm_resume()
crypto: hisilicon/hpre - fix memory leak in hpre_curve25519_src_init()
Weizhao Ouyang (1):
dma-buf: cma_heap: Fix mutex locking section
Wen Gong (5):
ath11k: add string type to search board data in board-2.bin for WCN6855
ath11k: set correct NL80211_FEATURE_DYNAMIC_SMPS for WCN6855
ath11k: enable IEEE80211_VHT_EXT_NSS_BW_CAPABLE if NSS ratio enabled
ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
ath10k: drop beacon and probe response which leak from other channel
Wen Gu (2):
net/smc: Reset conn->lgr when link group registration fails
net/smc: Fix hung_task when removing SMC-R devices
Wesley Sheng (1):
ntb_hw_switchtec: Fix bug with more than 32 partitions
William Breathitt Gray (1):
counter: 104-quad-8: Fix persistent enabled events bug
William Kucharski (1):
cgroup: Trace event cgroup id fields should be u64
Willy Tarreau (2):
tools/nolibc: i386: fix initial stack alignment
tools/nolibc: fix incorrect truncation of exit code
Xiangyang Zhang (1):
tracing/kprobes: 'nmissed' not showed correctly for kretprobe
Xiao Ni (1):
md: Move alloc/free acct bioset in to personality
Xiaoke Wang (2):
tracing/uprobes: Check the return value of kstrdup() for tu->filename
tracing/probes: check the return value of kstrndup() for pbuf
Xie Yongji (1):
fuse: Pass correct lend value to filemap_write_and_wait_range()
Xin Xiong (1):
netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
Xin Yin (3):
ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
ext4: use ext4_ext_remove_space() for fast commit replay delete range
ext4: fast commit may miss tracking unwritten range during ftruncate
Xing Song (1):
mt76: do not pass the received frame with decryption error
Xiongfeng Wang (1):
iommu/iova: Fix race between FQ timeout and teardown
Xiongwei Song (1):
floppy: Add max size check for user space request
Yafang Shao (1):
bpf: Fix mount source show for bpffs
Yang Li (2):
ethernet: renesas: Use div64_ul instead of do_div
drm/amd/display: check top_pipe_to_program pointer
Yang Shen (1):
crypto: hisilicon/qm - fix deadlock for remove driver
Yang Yingliang (4):
media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
net: lantiq: fix missing free_netdev() on error in ltq_etop_probe()
staging: rtl8192e: return error code from rtllib_softmac_init()
staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
Ye Bin (3):
ext4: Fix BUG_ON in ext4_bread when write quota data
ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
block: Fix fsync always failed if once failed
Ye Guojin (2):
ASoC: imx-hdmi: add put_device() after of_find_device_by_node()
MIPS: OCTEON: add put_device() after of_find_device_by_node()
Yevgeny Kliteynik (1):
net/mlx5: DR, Fix error flow in creating matcher
Yifeng Li (1):
PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
Yixing Liu (1):
RDMA/hns: Modify the mapping attribute of doorbell to device
Yizhuo Zhai (1):
drm/amd/display: Fix the uninitialized variable in enable_stream_features()
Yunfei Wang (1):
iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
Yury Norov (1):
bitops: protect find_first_{,zero}_bit properly
Zack Rusin (6):
drm/vmwgfx: Remove the deprecated lower mem limit
drm/vmwgfx: Fail to initialize on broken configs
drm/vmwgfx: Release ttm memory if probe fails
drm/vmwgfx: Introduce a new placement for MOB page tables
drm/vmwgfx: Remove explicit transparent hugepages support
drm/vmwgfx: Remove unused compile options
Zechuan Chen (1):
perf probe: Fix ppc64 'perf probe add events failed' case
Zekun Shen (5):
ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
rsi: Fix use-after-free in rsi_rx_done_handler()
rsi: Fix out-of-bounds read in rsi_read_pkt()
ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
Zhang Yi (1):
ext4: fix an use-after-free issue about data=journal writeback mode
Zhang Zixun (1):
x86/mce/inject: Avoid out-of-bounds write when setting flags
Zhen Lei (1):
of: fdt: Aggregate the processing of "linux,usable-memory-range"
Zheyu Ma (1):
media: b2c2: Add missing check in flexcop_pci_isr:
Zhou Qingyang (9):
drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode()
drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
media: dib8000: Fix a memleak in dib8000_init()
media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()
Zhu Lingshan (1):
ifcvf/vDPA: fix misuse virtio-net device config size for blk dev
Zizhuang Deng (1):
lib/mpi: Add the return value check of kcalloc()
Zongmin Zhou (1):
drm/amdgpu: fixup bad vram size on gmc v8
jason-jh.lin (1):
mailbox: fix gce_num of mt8192 driver data
oujiefeng (1):
spi: hisi-kunpeng: Fix the debugfs directory name incorrect
xinhui pan (1):
drm/ttm: Put BO in its memory manager's lru list
^ permalink raw reply [relevance 1%]
* Linux 5.15.17
@ 2022-01-27 13:32 1% Greg Kroah-Hartman
2022-01-27 13:32 1% ` Greg Kroah-Hartman
0 siblings, 1 reply; 200+ results
From: Greg Kroah-Hartman @ 2022-01-27 13:32 UTC (permalink / raw)
To: linux-kernel, akpm, torvalds, stable; +Cc: lwn, jslaby, Greg Kroah-Hartman
I'm announcing the release of the 5.15.17 kernel.
All users of the 5.15 kernel series must upgrade.
The updated 5.15.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/admin-guide/cifs/usage.rst | 7
Documentation/admin-guide/devices.txt | 8
Documentation/admin-guide/hw-vuln/spectre.rst | 2
Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml | 5
Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml | 6
Documentation/devicetree/bindings/input/hid-over-i2c.txt | 2
Documentation/devicetree/bindings/thermal/thermal-zones.yaml | 9
Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml | 5
Documentation/driver-api/dmaengine/dmatest.rst | 7
Documentation/driver-api/firewire.rst | 4
Documentation/firmware-guide/acpi/dsd/data-node-references.rst | 10
Documentation/trace/coresight/coresight-config.rst | 16
Makefile | 2
arch/arm/Kconfig.debug | 14
arch/arm/boot/compressed/efi-header.S | 22
arch/arm/boot/compressed/head.S | 3
arch/arm/boot/dts/armada-38x.dtsi | 4
arch/arm/boot/dts/gemini-nas4220b.dts | 2
arch/arm/boot/dts/omap3-n900.dts | 50
arch/arm/boot/dts/qcom-sdx55.dtsi | 6
arch/arm/boot/dts/sama7g5-pinfunc.h | 2
arch/arm/boot/dts/stm32f429-disco.dts | 2
arch/arm/configs/cm_x300_defconfig | 1
arch/arm/configs/ezx_defconfig | 1
arch/arm/configs/imote2_defconfig | 1
arch/arm/configs/nhk8815_defconfig | 1
arch/arm/configs/pxa_defconfig | 1
arch/arm/configs/spear13xx_defconfig | 1
arch/arm/configs/spear3xx_defconfig | 1
arch/arm/configs/spear6xx_defconfig | 1
arch/arm/include/debug/imx-uart.h | 18
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 2
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 3
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 14
arch/arm64/boot/dts/marvell/cn9130.dtsi | 15
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 2
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 5
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2
arch/arm64/boot/dts/qcom/msm8916.dtsi | 4
arch/arm64/boot/dts/qcom/msm8996.dtsi | 3
arch/arm64/boot/dts/qcom/sc7280.dtsi | 2
arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 27
arch/arm64/boot/dts/qcom/sm8350.dtsi | 2
arch/arm64/boot/dts/renesas/cat875.dtsi | 1
arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 6
arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 6
arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 6
arch/arm64/boot/dts/renesas/r8a77951.dtsi | 6
arch/arm64/boot/dts/renesas/r8a77960.dtsi | 6
arch/arm64/boot/dts/renesas/r8a77961.dtsi | 6
arch/arm64/boot/dts/renesas/r8a77965.dtsi | 6
arch/arm64/boot/dts/renesas/r8a77980.dtsi | 4
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 10
arch/arm64/boot/dts/ti/k3-am642.dtsi | 2
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2
arch/arm64/boot/dts/ti/k3-j7200.dtsi | 6
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 2
arch/arm64/boot/dts/ti/k3-j721e.dtsi | 6
arch/arm64/include/asm/mte-kasan.h | 8
arch/arm64/kernel/process.c | 39
arch/arm64/lib/clear_page.S | 10
arch/arm64/lib/mte.S | 8
arch/mips/Kconfig | 6
arch/mips/bcm63xx/clk.c | 6
arch/mips/boot/compressed/Makefile | 2
arch/mips/boot/compressed/clz_ctz.c | 2
arch/mips/cavium-octeon/octeon-platform.c | 2
arch/mips/cavium-octeon/octeon-usb.c | 1
arch/mips/configs/fuloong2e_defconfig | 1
arch/mips/configs/malta_qemu_32r6_defconfig | 1
arch/mips/configs/maltaaprp_defconfig | 1
arch/mips/configs/maltasmvp_defconfig | 1
arch/mips/configs/maltasmvp_eva_defconfig | 1
arch/mips/configs/maltaup_defconfig | 1
arch/mips/include/asm/mach-loongson64/kernel-entry-init.h | 4
arch/mips/include/asm/octeon/cvmx-bootinfo.h | 4
arch/mips/lantiq/clk.c | 6
arch/openrisc/include/asm/syscalls.h | 2
arch/openrisc/kernel/entry.S | 5
arch/parisc/include/asm/special_insns.h | 44
arch/parisc/kernel/traps.c | 2
arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi | 2
arch/powerpc/configs/ppc6xx_defconfig | 1
arch/powerpc/configs/pseries_defconfig | 1
arch/powerpc/include/asm/hw_irq.h | 40
arch/powerpc/kernel/btext.c | 4
arch/powerpc/kernel/fadump.c | 8
arch/powerpc/kernel/head_40x.S | 9
arch/powerpc/kernel/interrupt.c | 2
arch/powerpc/kernel/interrupt_64.S | 10
arch/powerpc/kernel/module.c | 11
arch/powerpc/kernel/prom_init.c | 2
arch/powerpc/kernel/smp.c | 42
arch/powerpc/kernel/watchdog.c | 41
arch/powerpc/kvm/book3s_hv.c | 8
arch/powerpc/kvm/book3s_hv_nested.c | 2
arch/powerpc/mm/book3s64/radix_pgtable.c | 4
arch/powerpc/mm/kasan/book3s_32.c | 3
arch/powerpc/mm/pgtable_64.c | 14
arch/powerpc/perf/core-book3s.c | 58
arch/powerpc/platforms/cell/iommu.c | 1
arch/powerpc/platforms/cell/pervasive.c | 1
arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 1
arch/powerpc/platforms/powermac/low_i2c.c | 3
arch/powerpc/platforms/powernv/opal-lpc.c | 1
arch/powerpc/sysdev/xive/spapr.c | 3
arch/riscv/Kconfig | 23
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi | 3
arch/riscv/configs/nommu_k210_defconfig | 2
arch/riscv/configs/nommu_k210_sdcard_defconfig | 2
arch/riscv/configs/nommu_virt_defconfig | 1
arch/riscv/include/asm/smp.h | 10
arch/riscv/kernel/kexec_relocate.S | 20
arch/riscv/kernel/machine_kexec.c | 3
arch/riscv/kernel/setup.c | 10
arch/riscv/kernel/smp.c | 10
arch/riscv/mm/init.c | 19
arch/s390/mm/pgalloc.c | 4
arch/sh/configs/titan_defconfig | 1
arch/um/.gitignore | 1
arch/um/drivers/virt-pci.c | 8
arch/um/drivers/virtio_uml.c | 4
arch/um/include/asm/delay.h | 4
arch/um/include/asm/irqflags.h | 4
arch/um/include/shared/longjmp.h | 2
arch/um/include/shared/os.h | 4
arch/um/include/shared/registers.h | 4
arch/um/kernel/ksyms.c | 2
arch/um/os-Linux/registers.c | 4
arch/um/os-Linux/sigio.c | 6
arch/um/os-Linux/signal.c | 8
arch/um/os-Linux/start_up.c | 2
arch/x86/boot/compressed/Makefile | 7
arch/x86/configs/i386_defconfig | 1
arch/x86/configs/x86_64_defconfig | 1
arch/x86/crypto/aesni-intel_glue.c | 4
arch/x86/include/asm/realmode.h | 1
arch/x86/include/asm/topology.h | 2
arch/x86/include/asm/uaccess.h | 5
arch/x86/kernel/cpu/mce/core.c | 42
arch/x86/kernel/cpu/mce/inject.c | 2
arch/x86/kernel/early-quirks.c | 10
arch/x86/kernel/reboot.c | 12
arch/x86/kvm/mmu/tdp_mmu.c | 6
arch/x86/kvm/vmx/posted_intr.c | 16
arch/x86/realmode/init.c | 26
arch/x86/um/syscalls_64.c | 3
block/bfq-iosched.c | 44
block/blk-flush.c | 4
block/blk-pm.c | 22
block/genhd.c | 15
block/mq-deadline.c | 4
crypto/jitterentropy.c | 3
drivers/acpi/acpica/exfield.c | 7
drivers/acpi/acpica/exoparg1.c | 3
drivers/acpi/acpica/hwesleep.c | 4
drivers/acpi/acpica/hwsleep.c | 4
drivers/acpi/acpica/hwxfsleep.c | 2
drivers/acpi/acpica/utdelete.c | 1
drivers/acpi/battery.c | 22
drivers/acpi/bus.c | 4
drivers/acpi/cppc_acpi.c | 2
drivers/acpi/ec.c | 57
drivers/acpi/internal.h | 2
drivers/acpi/scan.c | 13
drivers/acpi/x86/utils.c | 116 -
drivers/android/binder.c | 98 -
drivers/base/core.c | 3
drivers/base/power/runtime.c | 41
drivers/base/property.c | 4
drivers/base/regmap/regmap.c | 1
drivers/base/swnode.c | 2
drivers/block/floppy.c | 6
drivers/bluetooth/btintel.c | 26
drivers/bluetooth/btmtksdio.c | 2
drivers/bluetooth/btusb.c | 5
drivers/bluetooth/hci_bcm.c | 7
drivers/bluetooth/hci_qca.c | 9
drivers/bluetooth/hci_vhci.c | 2
drivers/bluetooth/virtio_bt.c | 3
drivers/bus/mhi/core/init.c | 1
drivers/bus/mhi/core/pm.c | 35
drivers/bus/mhi/pci_generic.c | 2
drivers/char/mwave/3780i.h | 2
drivers/char/random.c | 19
drivers/char/tpm/tpm-chip.c | 18
drivers/char/tpm/tpm_tis_core.c | 14
drivers/clk/bcm/clk-bcm2835.c | 13
drivers/clk/clk-bm1880.c | 20
drivers/clk/clk-si5341.c | 2
drivers/clk/clk-stm32f4.c | 4
drivers/clk/clk.c | 18
drivers/clk/imx/clk-imx8mn.c | 6
drivers/clk/meson/gxbb.c | 44
drivers/clk/qcom/gcc-sc7280.c | 2
drivers/clk/renesas/rzg2l-cpg.c | 17
drivers/cpufreq/cpufreq.c | 4
drivers/cpufreq/qcom-cpufreq-hw.c | 7
drivers/crypto/atmel-aes.c | 6
drivers/crypto/caam/caamalg.c | 6
drivers/crypto/caam/caamalg_qi2.c | 2
drivers/crypto/caam/caamhash.c | 3
drivers/crypto/caam/caampkc.c | 3
drivers/crypto/ccp/sev-dev.c | 30
drivers/crypto/hisilicon/hpre/hpre_crypto.c | 2
drivers/crypto/hisilicon/qm.c | 2
drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c | 9
drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c | 3
drivers/crypto/omap-aes.c | 2
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 45
drivers/crypto/qce/aead.c | 2
drivers/crypto/qce/sha.c | 2
drivers/crypto/qce/skcipher.c | 2
drivers/crypto/stm32/stm32-crc32.c | 4
drivers/crypto/stm32/stm32-cryp.c | 938 +++-------
drivers/crypto/stm32/stm32-hash.c | 6
drivers/cxl/pmem.c | 17
drivers/dma-buf/dma-fence-array.c | 6
drivers/dma/at_xdmac.c | 57
drivers/dma/idxd/device.c | 12
drivers/dma/mmp_pdma.c | 6
drivers/dma/pxa_dma.c | 7
drivers/dma/stm32-mdma.c | 2
drivers/dma/uniphier-xdmac.c | 5
drivers/edac/synopsys_edac.c | 3
drivers/firmware/efi/efi-init.c | 5
drivers/firmware/google/Kconfig | 6
drivers/firmware/sysfb_simplefb.c | 8
drivers/gpio/gpio-aspeed-sgpio.c | 32
drivers/gpio/gpio-aspeed.c | 52
drivers/gpio/gpio-idt3243x.c | 4
drivers/gpio/gpio-mpc8xxx.c | 4
drivers/gpio/gpiolib-acpi.c | 15
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 6
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 4
drivers/gpu/drm/amd/amdgpu/cik.c | 4
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 4
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 13
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 4
drivers/gpu/drm/amd/amdgpu/vi.c | 4
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 138 -
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 5
drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 3
drivers/gpu/drm/amd/display/dc/core/dc.c | 3
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 2
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 3
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 6
drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 14
drivers/gpu/drm/bridge/display-connector.c | 2
drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 40
drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 10
drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 4
drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 9
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 12
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1
drivers/gpu/drm/drm_dp_helper.c | 40
drivers/gpu/drm/drm_drv.c | 9
drivers/gpu/drm/drm_panel_orientation_quirks.c | 6
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 6
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 1
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 10
drivers/gpu/drm/lima/lima_device.c | 1
drivers/gpu/drm/msm/Kconfig | 1
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4
drivers/gpu/drm/msm/dsi/dsi.c | 10
drivers/gpu/drm/msm/dsi/dsi.h | 1
drivers/gpu/drm/msm/dsi/dsi_manager.c | 17
drivers/gpu/drm/msm/msm_gem_submit.c | 2
drivers/gpu/drm/nouveau/dispnv04/disp.c | 4
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 37
drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c | 8
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 10
drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 8
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 8
drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 8
drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 8
drivers/gpu/drm/panel/panel-ronbo-rb070d30.c | 8
drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c | 1
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 1
drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 8
drivers/gpu/drm/radeon/radeon_kms.c | 42
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 20
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 82
drivers/gpu/drm/tegra/drm.c | 15
drivers/gpu/drm/tegra/gr2d.c | 33
drivers/gpu/drm/tegra/submit.c | 4
drivers/gpu/drm/tegra/vic.c | 7
drivers/gpu/drm/ttm/ttm_bo.c | 2
drivers/gpu/drm/vboxvideo/vbox_main.c | 4
drivers/gpu/drm/vc4/vc4_crtc.c | 31
drivers/gpu/drm/vc4/vc4_drv.h | 29
drivers/gpu/drm/vc4/vc4_hdmi.c | 136 +
drivers/gpu/drm/vc4/vc4_hvs.c | 26
drivers/gpu/drm/vc4/vc4_kms.c | 3
drivers/gpu/drm/vc4/vc4_txp.c | 4
drivers/gpu/drm/vmwgfx/Makefile | 3
drivers/gpu/drm/vmwgfx/ttm_memory.c | 99 -
drivers/gpu/drm/vmwgfx/ttm_memory.h | 6
drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c | 7
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 48
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 20
drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 12
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 4
drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c | 90
drivers/gpu/drm/vmwgfx/vmwgfx_thp.c | 184 -
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 58
drivers/gpu/host1x/Kconfig | 1
drivers/gpu/host1x/dev.c | 15
drivers/hid/hid-apple.c | 2
drivers/hid/hid-ids.h | 1
drivers/hid/hid-input.c | 8
drivers/hid/hid-magicmouse.c | 95 -
drivers/hid/hid-uclogic-params.c | 31
drivers/hid/hid-vivaldi.c | 34
drivers/hid/i2c-hid/i2c-hid-acpi.c | 2
drivers/hid/i2c-hid/i2c-hid-core.c | 4
drivers/hid/i2c-hid/i2c-hid-of-goodix.c | 2
drivers/hid/i2c-hid/i2c-hid-of.c | 10
drivers/hid/i2c-hid/i2c-hid.h | 2
drivers/hid/uhid.c | 29
drivers/hid/wacom_wac.c | 39
drivers/hsi/hsi_core.c | 1
drivers/hwmon/mr75203.c | 2
drivers/i2c/busses/i2c-designware-pcidrv.c | 8
drivers/i2c/busses/i2c-i801.c | 15
drivers/i2c/busses/i2c-mpc.c | 23
drivers/iio/adc/ti-adc081c.c | 22
drivers/iio/industrialio-trigger.c | 36
drivers/infiniband/core/cma.c | 18
drivers/infiniband/core/device.c | 3
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1
drivers/infiniband/hw/cxgb4/qp.c | 1
drivers/infiniband/hw/hns/hns_roce_main.c | 5
drivers/infiniband/hw/qedr/verbs.c | 2
drivers/infiniband/sw/rxe/rxe_opcode.c | 2
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 2
drivers/interconnect/qcom/icc-rpm.c | 1
drivers/iommu/amd/amd_iommu_types.h | 2
drivers/iommu/amd/init.c | 107 -
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 2
drivers/iommu/io-pgtable-arm-v7s.c | 6
drivers/iommu/io-pgtable-arm.c | 9
drivers/iommu/iommu.c | 3
drivers/iommu/iova.c | 3
drivers/irqchip/irq-gic-v3.c | 16
drivers/leds/leds-lp55xx-common.c | 4
drivers/mailbox/mailbox-mpfs.c | 2
drivers/mailbox/mtk-cmdq-mailbox.c | 2
drivers/md/dm.c | 4
drivers/md/md.c | 27
drivers/md/md.h | 2
drivers/md/persistent-data/dm-btree.c | 8
drivers/md/persistent-data/dm-space-map-common.c | 5
drivers/md/raid0.c | 38
drivers/md/raid5.c | 41
drivers/media/Kconfig | 8
drivers/media/cec/core/cec-adap.c | 38
drivers/media/cec/core/cec-api.c | 6
drivers/media/cec/core/cec-core.c | 3
drivers/media/cec/core/cec-pin.c | 31
drivers/media/common/saa7146/saa7146_fops.c | 2
drivers/media/common/videobuf2/videobuf2-dma-contig.c | 8
drivers/media/dvb-core/dmxdev.c | 18
drivers/media/dvb-frontends/dib8000.c | 4
drivers/media/i2c/imx274.c | 5
drivers/media/i2c/ov8865.c | 16
drivers/media/pci/b2c2/flexcop-pci.c | 3
drivers/media/pci/saa7146/hexium_gemini.c | 7
drivers/media/pci/saa7146/hexium_orion.c | 8
drivers/media/pci/saa7146/mxb.c | 8
drivers/media/platform/aspeed-video.c | 14
drivers/media/platform/coda/coda-common.c | 8
drivers/media/platform/coda/coda-jpeg.c | 21
drivers/media/platform/coda/imx-vdoa.c | 6
drivers/media/platform/imx-pxp.c | 4
drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 2
drivers/media/platform/qcom/venus/core.c | 11
drivers/media/platform/qcom/venus/pm_helpers.c | 32
drivers/media/platform/rcar-vin/rcar-csi2.c | 18
drivers/media/platform/rcar-vin/rcar-v4l2.c | 15
drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c | 2
drivers/media/radio/si470x/radio-si470x-i2c.c | 3
drivers/media/rc/igorplugusb.c | 4
drivers/media/rc/mceusb.c | 8
drivers/media/rc/redrat3.c | 22
drivers/media/tuners/msi001.c | 7
drivers/media/tuners/si2157.c | 2
drivers/media/usb/b2c2/flexcop-usb.c | 10
drivers/media/usb/b2c2/flexcop-usb.h | 12
drivers/media/usb/cpia2/cpia2_usb.c | 4
drivers/media/usb/dvb-usb/dib0700_core.c | 2
drivers/media/usb/dvb-usb/dw2102.c | 338 ++-
drivers/media/usb/dvb-usb/m920x.c | 12
drivers/media/usb/em28xx/em28xx-cards.c | 18
drivers/media/usb/em28xx/em28xx-core.c | 4
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 8
drivers/media/usb/s2255/s2255drv.c | 4
drivers/media/usb/stk1160/stk1160-core.c | 4
drivers/media/usb/uvc/uvcvideo.h | 2
drivers/media/v4l2-core/v4l2-ioctl.c | 4
drivers/memory/renesas-rpc-if.c | 2
drivers/mfd/atmel-flexcom.c | 11
drivers/mfd/tps65910.c | 22
drivers/misc/eeprom/at25.c | 13
drivers/misc/habanalabs/common/firmware_if.c | 17
drivers/misc/habanalabs/common/habanalabs.h | 2
drivers/misc/lattice-ecp3-config.c | 12
drivers/misc/lkdtm/Makefile | 2
drivers/misc/mei/hbm.c | 20
drivers/mmc/core/sdio.c | 4
drivers/mmc/host/meson-mx-sdhc-mmc.c | 5
drivers/mmc/host/meson-mx-sdio.c | 5
drivers/mmc/host/mtk-sd.c | 64
drivers/mmc/host/sdhci-pci-gli.c | 11
drivers/mmc/host/tmio_mmc_core.c | 15
drivers/mtd/hyperbus/rpc-if.c | 8
drivers/mtd/mtdcore.c | 4
drivers/mtd/mtdpart.c | 2
drivers/mtd/nand/raw/davinci_nand.c | 73
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 37
drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c | 5
drivers/mtd/nand/raw/nand_base.c | 67
drivers/net/bonding/bond_main.c | 40
drivers/net/can/flexcan.c | 150 +
drivers/net/can/rcar/rcar_canfd.c | 5
drivers/net/can/softing/softing_cs.c | 2
drivers/net/can/softing/softing_fw.c | 11
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 6
drivers/net/can/xilinx_can.c | 7
drivers/net/dsa/hirschmann/hellcreek.c | 87
drivers/net/ethernet/broadcom/bnxt/Makefile | 2
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c | 372 +++
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h | 51
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 355 ---
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h | 43
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c | 2
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h | 3
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 10
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c | 3
drivers/net/ethernet/cortina/gemini.c | 9
drivers/net/ethernet/freescale/fman/mac.c | 21
drivers/net/ethernet/freescale/xgmac_mdio.c | 28
drivers/net/ethernet/i825xx/sni_82596.c | 3
drivers/net/ethernet/intel/igc/igc_main.c | 4
drivers/net/ethernet/marvell/octeontx2/af/ptp.c | 2
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 55
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 16
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 36
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 5
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c | 2
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c | 4
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 19
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 3
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 7
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 120 +
drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c | 2
drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c | 6
drivers/net/ethernet/mellanox/mlx5/core/main.c | 8
drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c | 5
drivers/net/ethernet/mellanox/mlxsw/cmd.h | 12
drivers/net/ethernet/mellanox/mlxsw/pci.c | 7
drivers/net/ethernet/mscc/ocelot.c | 31
drivers/net/ethernet/mscc/ocelot_flower.c | 15
drivers/net/ethernet/mscc/ocelot_net.c | 6
drivers/net/ethernet/renesas/ravb_main.c | 6
drivers/net/ethernet/rocker/rocker_ofdpa.c | 3
drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 7
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3
drivers/net/ethernet/ti/cpsw.c | 6
drivers/net/ethernet/ti/cpsw_new.c | 6
drivers/net/ethernet/ti/cpsw_priv.c | 2
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 135 -
drivers/net/ipa/ipa_endpoint.c | 7
drivers/net/phy/marvell.c | 62
drivers/net/phy/mdio_bus.c | 2
drivers/net/phy/micrel.c | 36
drivers/net/phy/phy-core.c | 2
drivers/net/phy/sfp.c | 25
drivers/net/ppp/ppp_generic.c | 7
drivers/net/usb/mcs7830.c | 12
drivers/net/usb/smsc95xx.c | 3
drivers/net/wireless/ath/ar5523/ar5523.c | 4
drivers/net/wireless/ath/ath10k/core.c | 19
drivers/net/wireless/ath/ath10k/htt_tx.c | 3
drivers/net/wireless/ath/ath10k/hw.h | 3
drivers/net/wireless/ath/ath10k/txrx.c | 2
drivers/net/wireless/ath/ath11k/ahb.c | 28
drivers/net/wireless/ath/ath11k/core.c | 27
drivers/net/wireless/ath/ath11k/core.h | 15
drivers/net/wireless/ath/ath11k/dp.h | 3
drivers/net/wireless/ath/ath11k/dp_tx.c | 2
drivers/net/wireless/ath/ath11k/hal.c | 22
drivers/net/wireless/ath/ath11k/hal.h | 2
drivers/net/wireless/ath/ath11k/hw.c | 2
drivers/net/wireless/ath/ath11k/mac.c | 52
drivers/net/wireless/ath/ath11k/pci.c | 22
drivers/net/wireless/ath/ath11k/qmi.c | 2
drivers/net/wireless/ath/ath11k/reg.c | 103 -
drivers/net/wireless/ath/ath11k/wmi.c | 5
drivers/net/wireless/ath/ath9k/hif_usb.c | 7
drivers/net/wireless/ath/ath9k/htc.h | 2
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 13
drivers/net/wireless/ath/ath9k/wmi.c | 4
drivers/net/wireless/ath/wcn36xx/dxe.c | 49
drivers/net/wireless/ath/wcn36xx/main.c | 34
drivers/net/wireless/ath/wcn36xx/smd.c | 10
drivers/net/wireless/ath/wcn36xx/txrx.c | 41
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1
drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 5
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 17
drivers/net/wireless/intel/iwlwifi/iwl-io.c | 2
drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 4
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 17
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 27
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 23
drivers/net/wireless/intel/iwlwifi/mvm/time-event.c | 36
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 7
drivers/net/wireless/intel/iwlwifi/queue/tx.c | 1
drivers/net/wireless/marvell/mwifiex/sta_event.c | 8
drivers/net/wireless/marvell/mwifiex/usb.c | 3
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 4
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 9
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 8
drivers/net/wireless/mediatek/mt76/mt7615/pci_init.c | 8
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 9
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 9
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 6
drivers/net/wireless/microchip/wilc1000/netdev.c | 1
drivers/net/wireless/microchip/wilc1000/sdio.c | 2
drivers/net/wireless/microchip/wilc1000/spi.c | 2
drivers/net/wireless/realtek/rtw88/main.c | 2
drivers/net/wireless/realtek/rtw88/pci.c | 61
drivers/net/wireless/realtek/rtw88/pci.h | 2
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2
drivers/net/wireless/rsi/rsi_91x_main.c | 4
drivers/net/wireless/rsi/rsi_91x_usb.c | 9
drivers/net/wireless/rsi/rsi_usb.h | 2
drivers/net/wwan/mhi_wwan_mbim.c | 4
drivers/nvmem/core.c | 2
drivers/of/base.c | 11
drivers/of/fdt.c | 25
drivers/of/unittest.c | 21
drivers/parisc/pdc_stable.c | 4
drivers/pci/controller/pci-aardvark.c | 4
drivers/pci/controller/pci-mvebu.c | 8
drivers/pci/controller/pci-xgene.c | 2
drivers/pci/hotplug/pciehp.h | 3
drivers/pci/hotplug/pciehp_core.c | 2
drivers/pci/hotplug/pciehp_hpc.c | 21
drivers/pci/msi.c | 26
drivers/pci/pci-bridge-emul.c | 70
drivers/pci/quirks.c | 3
drivers/pcmcia/cs.c | 8
drivers/pcmcia/rsrc_nonstatic.c | 6
drivers/perf/arm-cmn.c | 5
drivers/phy/cadence/phy-cadence-sierra.c | 31
drivers/phy/mediatek/phy-mtk-mipi-dsi.c | 2
drivers/phy/mediatek/phy-mtk-tphy.c | 162 +
drivers/phy/socionext/phy-uniphier-usb3ss.c | 10
drivers/pinctrl/pinctrl-rockchip.c | 2
drivers/power/reset/mt6323-poweroff.c | 3
drivers/ptp/ptp_vclock.c | 10
drivers/regulator/da9121-regulator.c | 5
drivers/regulator/qcom-labibb-regulator.c | 2
drivers/regulator/qcom_smd-regulator.c | 100 -
drivers/remoteproc/imx_rproc.c | 1
drivers/rpmsg/rpmsg_core.c | 20
drivers/rtc/rtc-cmos.c | 3
drivers/rtc/rtc-pxa.c | 4
drivers/scsi/lpfc/lpfc.h | 2
drivers/scsi/lpfc/lpfc_attr.c | 62
drivers/scsi/lpfc/lpfc_els.c | 11
drivers/scsi/lpfc/lpfc_hbadisc.c | 8
drivers/scsi/lpfc/lpfc_init.c | 8
drivers/scsi/lpfc/lpfc_nportdisc.c | 6
drivers/scsi/lpfc/lpfc_sli.c | 6
drivers/scsi/mpi3mr/mpi3mr.h | 3
drivers/scsi/mpi3mr/mpi3mr_fw.c | 4
drivers/scsi/pm8001/pm8001_hwi.c | 4
drivers/scsi/scsi.c | 4
drivers/scsi/scsi_debugfs.c | 1
drivers/scsi/scsi_pm.c | 2
drivers/scsi/sr.c | 2
drivers/scsi/sr_vendor.c | 4
drivers/scsi/ufs/tc-dwc-g210-pci.c | 1
drivers/scsi/ufs/ufs-mediatek.c | 2
drivers/scsi/ufs/ufshcd-pci.c | 2
drivers/scsi/ufs/ufshcd-pltfrm.c | 2
drivers/scsi/ufs/ufshcd.c | 22
drivers/soc/imx/gpcv2.c | 2
drivers/soc/mediatek/mtk-scpsys.c | 15
drivers/soc/qcom/cpr.c | 2
drivers/soc/ti/pruss.c | 2
drivers/spi/spi-hisi-kunpeng.c | 15
drivers/spi/spi-meson-spifc.c | 1
drivers/spi/spi-uniphier.c | 11
drivers/spi/spi.c | 13
drivers/staging/greybus/audio_topology.c | 15
drivers/staging/media/atomisp/i2c/ov2680.h | 24
drivers/staging/media/atomisp/pci/atomisp_cmd.c | 82
drivers/staging/media/atomisp/pci/atomisp_fops.c | 11
drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c | 2
drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 188 +-
drivers/staging/media/atomisp/pci/atomisp_subdev.c | 15
drivers/staging/media/atomisp/pci/atomisp_subdev.h | 3
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 13
drivers/staging/media/atomisp/pci/atomisp_v4l2.h | 3
drivers/staging/media/atomisp/pci/sh_css.c | 27
drivers/staging/media/atomisp/pci/sh_css_mipi.c | 41
drivers/staging/media/atomisp/pci/sh_css_params.c | 8
drivers/staging/media/hantro/hantro_drv.c | 3
drivers/staging/media/hantro/hantro_h1_jpeg_enc.c | 2
drivers/staging/media/hantro/hantro_hw.h | 3
drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c | 17
drivers/staging/media/hantro/rockchip_vpu_hw.c | 5
drivers/staging/rtl8192e/rtllib.h | 2
drivers/staging/rtl8192e/rtllib_module.c | 16
drivers/staging/rtl8192e/rtllib_softmac.c | 6
drivers/tee/tee_core.c | 4
drivers/thermal/imx8mm_thermal.c | 3
drivers/thermal/imx_thermal.c | 145 -
drivers/thunderbolt/acpi.c | 13
drivers/tty/mxser.c | 5
drivers/tty/serial/8250/8250_bcm7271.c | 11
drivers/tty/serial/amba-pl010.c | 3
drivers/tty/serial/amba-pl011.c | 29
drivers/tty/serial/atmel_serial.c | 14
drivers/tty/serial/imx.c | 7
drivers/tty/serial/liteuart.c | 2
drivers/tty/serial/serial_core.c | 7
drivers/tty/serial/stm32-usart.c | 6
drivers/tty/serial/uartlite.c | 2
drivers/usb/core/hub.c | 5
drivers/usb/dwc2/gadget.c | 13
drivers/usb/dwc2/hcd.c | 7
drivers/usb/dwc3/dwc3-meson-g12a.c | 17
drivers/usb/dwc3/dwc3-qcom.c | 7
drivers/usb/gadget/function/f_fs.c | 4
drivers/usb/gadget/function/u_audio.c | 4
drivers/usb/host/ehci-brcm.c | 6
drivers/usb/host/uhci-platform.c | 3
drivers/usb/misc/ftdi-elan.c | 1
drivers/vdpa/ifcvf/ifcvf_base.c | 41
drivers/vdpa/ifcvf/ifcvf_base.h | 9
drivers/vdpa/ifcvf/ifcvf_main.c | 24
drivers/vdpa/mlx5/net/mlx5_vnet.c | 6
drivers/video/backlight/qcom-wled.c | 122 -
drivers/virtio/virtio_mem.c | 2
drivers/virtio/virtio_ring.c | 4
drivers/w1/slaves/w1_ds28e04.c | 26
drivers/xen/gntdev.c | 6
fs/btrfs/backref.c | 21
fs/btrfs/ctree.c | 19
fs/btrfs/inode.c | 11
fs/btrfs/qgroup.c | 19
fs/debugfs/file.c | 2
fs/dlm/lock.c | 9
fs/dlm/lowcomms.c | 44
fs/ext4/ext4.h | 1
fs/ext4/ext4_jbd2.c | 2
fs/ext4/extents.c | 2
fs/ext4/fast_commit.c | 18
fs/ext4/inode.c | 51
fs/ext4/ioctl.c | 2
fs/ext4/mballoc.c | 48
fs/ext4/migrate.c | 23
fs/ext4/super.c | 27
fs/f2fs/checkpoint.c | 4
fs/f2fs/compress.c | 50
fs/f2fs/data.c | 7
fs/f2fs/f2fs.h | 11
fs/f2fs/file.c | 10
fs/f2fs/gc.c | 8
fs/f2fs/inode.c | 5
fs/f2fs/segment.h | 3
fs/f2fs/super.c | 44
fs/f2fs/sysfs.c | 4
fs/fuse/file.c | 2
fs/io_uring.c | 1
fs/jffs2/file.c | 40
fs/ksmbd/connection.c | 1
fs/ksmbd/connection.h | 4
fs/ksmbd/ksmbd_netlink.h | 12
fs/ksmbd/smb2misc.c | 18
fs/ksmbd/smb2ops.c | 16
fs/ksmbd/smb2pdu.c | 87
fs/ksmbd/smb2pdu.h | 1
fs/ksmbd/smb_common.h | 1
fs/ksmbd/transport_ipc.c | 2
fs/ksmbd/transport_tcp.c | 3
fs/ubifs/super.c | 1
fs/udf/ialloc.c | 2
include/acpi/acpi_bus.h | 5
include/acpi/actypes.h | 10
include/asm-generic/bitops/find.h | 5
include/linux/blk-pm.h | 2
include/linux/bpf_verifier.h | 7
include/linux/hid.h | 2
include/linux/iio/trigger.h | 2
include/linux/ipv6.h | 2
include/linux/mmzone.h | 9
include/linux/mtd/rawnand.h | 2
include/linux/of_fdt.h | 2
include/linux/pm_runtime.h | 3
include/linux/psi_types.h | 13
include/linux/ptp_clock_kernel.h | 12
include/linux/skbuff.h | 7
include/linux/stmmac.h | 1
include/media/cec.h | 11
include/net/inet_frag.h | 11
include/net/ipv6_frag.h | 3
include/net/pkt_sched.h | 5
include/net/sch_generic.h | 5
include/net/seg6.h | 21
include/net/xfrm.h | 7
include/sound/hda_codec.h | 8
include/trace/events/cgroup.h | 12
include/uapi/linux/xfrm.h | 1
kernel/audit.c | 18
kernel/bpf/btf.c | 3
kernel/bpf/inode.c | 14
kernel/bpf/verifier.c | 28
kernel/dma/pool.c | 4
kernel/rcu/rcutorture.c | 5
kernel/rcu/tree_exp.h | 1
kernel/sched/cpuacct.c | 79
kernel/sched/cputime.c | 4
kernel/sched/fair.c | 4
kernel/sched/psi.c | 45
kernel/sched/rt.c | 23
kernel/sched/stats.h | 5
kernel/time/clocksource.c | 50
kernel/trace/bpf_trace.c | 6
kernel/trace/trace_kprobe.c | 5
kernel/trace/trace_osnoise.c | 20
kernel/trace/trace_syscalls.c | 6
kernel/tsacct.c | 7
lib/kunit/test.c | 18
lib/logic_iomem.c | 19
lib/mpi/mpi-mod.c | 2
lib/test_hmm.c | 24
lib/test_meminit.c | 1
mm/hmm.c | 5
mm/page_alloc.c | 19
mm/shmem.c | 37
net/ax25/af_ax25.c | 10
net/batman-adv/netlink.c | 30
net/bluetooth/cmtp/core.c | 4
net/bluetooth/hci_core.c | 1
net/bluetooth/hci_event.c | 14
net/bluetooth/hci_request.c | 2
net/bluetooth/hci_sysfs.c | 2
net/bluetooth/l2cap_sock.c | 45
net/bluetooth/mgmt.c | 248 +-
net/bridge/br_netfilter_hooks.c | 7
net/core/dev.c | 6
net/core/devlink.c | 2
net/core/filter.c | 8
net/core/flow_dissector.c | 3
net/core/net-sysfs.c | 3
net/core/net_namespace.c | 4
net/core/sock.c | 2
net/core/sock_map.c | 21
net/dsa/switch.c | 4
net/ipv4/fib_semantics.c | 47
net/ipv4/inet_fragment.c | 8
net/ipv4/ip_fragment.c | 3
net/ipv4/ip_gre.c | 5
net/ipv4/netfilter/ipt_CLUSTERIP.c | 5
net/ipv4/tcp_bpf.c | 27
net/ipv6/icmp.c | 6
net/ipv6/ip6_gre.c | 5
net/ipv6/seg6.c | 59
net/ipv6/seg6_local.c | 33
net/ipv6/udp.c | 3
net/mac80211/rx.c | 2
net/mptcp/options.c | 10
net/mptcp/pm_netlink.c | 18
net/netfilter/nft_payload.c | 3
net/netfilter/nft_set_pipapo.c | 8
net/netrom/af_netrom.c | 12
net/nfc/llcp_sock.c | 5
net/openvswitch/flow.c | 20
net/sched/act_ct.c | 7
net/sched/cls_api.c | 3
net/sched/cls_flower.c | 3
net/sched/sch_api.c | 2
net/sched/sch_generic.c | 1
net/smc/af_smc.c | 8
net/smc/smc_core.c | 29
net/smc/smc_core.h | 2
net/socket.c | 9
net/unix/garbage.c | 14
net/unix/scm.c | 6
net/xfrm/xfrm_compat.c | 6
net/xfrm/xfrm_interface.c | 14
net/xfrm/xfrm_output.c | 30
net/xfrm/xfrm_policy.c | 24
net/xfrm/xfrm_state.c | 23
net/xfrm/xfrm_user.c | 41
samples/bpf/Makefile | 56
samples/bpf/Makefile.target | 11
samples/bpf/hbm_kern.h | 2
samples/bpf/lwt_len_hist_kern.c | 7
samples/bpf/xdp_sample_user.h | 2
scripts/dtc/dtx_diff | 8
scripts/sphinx-pre-install | 4
security/selinux/hooks.c | 12
sound/core/jack.c | 3
sound/core/misc.c | 2
sound/core/oss/pcm_oss.c | 2
sound/core/pcm.c | 6
sound/core/seq/seq_queue.c | 14
sound/hda/hdac_stream.c | 14
sound/pci/hda/hda_bind.c | 5
sound/pci/hda/hda_codec.c | 45
sound/pci/hda/hda_controller.c | 1
sound/pci/hda/hda_local.h | 1
sound/pci/hda/patch_cs8409-tables.c | 3
sound/pci/hda/patch_cs8409.c | 9
sound/pci/hda/patch_cs8409.h | 1
sound/soc/codecs/Kconfig | 3
sound/soc/codecs/rt5663.c | 12
sound/soc/fsl/fsl_asrc.c | 69
sound/soc/fsl/fsl_mqs.c | 2
sound/soc/fsl/imx-card.c | 32
sound/soc/fsl/imx-hdmi.c | 2
sound/soc/intel/boards/sof_sdw.c | 2
sound/soc/intel/catpt/dsp.c | 14
sound/soc/intel/skylake/skl-pcm.c | 1
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 6
sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c | 7
sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 6
sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 2
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 73
sound/soc/mediatek/mt8195/mt8195-reg.h | 1
sound/soc/samsung/idma.c | 2
sound/soc/uniphier/Kconfig | 2
sound/usb/format.c | 2
sound/usb/mixer_quirks.c | 2
sound/usb/quirks.c | 2
tools/bpf/bpftool/Documentation/Makefile | 1
tools/bpf/bpftool/Documentation/bpftool-btf.rst | 2
tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 2
tools/bpf/bpftool/Documentation/bpftool-gen.rst | 2
tools/bpf/bpftool/Documentation/bpftool-link.rst | 2
tools/bpf/bpftool/Documentation/bpftool-map.rst | 6
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 8
tools/bpf/bpftool/Documentation/bpftool.rst | 6
tools/bpf/bpftool/Makefile | 1
tools/bpf/bpftool/main.c | 2
tools/bpf/bpftool/prog.c | 15
tools/include/nolibc/nolibc.h | 33
tools/lib/bpf/btf.c | 55
tools/lib/bpf/btf.h | 2
tools/lib/bpf/btf_dump.c | 2
tools/lib/bpf/gen_loader.c | 4
tools/lib/bpf/libbpf.c | 5
tools/lib/bpf/linker.c | 6
tools/perf/Makefile.config | 5
tools/perf/util/debug.c | 2
tools/perf/util/evsel.c | 25
tools/perf/util/probe-event.c | 3
tools/testing/selftests/bpf/btf_helpers.c | 9
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 5
tools/testing/selftests/bpf/prog_tests/migrate_reuseport.c | 4
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 2
tools/testing/selftests/bpf/prog_tests/tc_redirect.c | 7
tools/testing/selftests/clone3/clone3.c | 6
tools/testing/selftests/ftrace/test.d/kprobe/profile.tc | 2
tools/testing/selftests/kselftest_harness.h | 2
tools/testing/selftests/powerpc/security/spectre_v2.c | 2
tools/testing/selftests/powerpc/signal/.gitignore | 1
tools/testing/selftests/powerpc/signal/Makefile | 1
tools/testing/selftests/powerpc/signal/sigreturn_kernel.c | 132 +
tools/testing/selftests/vm/hmm-tests.c | 42
890 files changed, 9002 insertions(+), 5089 deletions(-)
Aaron Ma (1):
ath11k: qmi: avoid error messages when dma allocation fails
Adam Ford (1):
clk: imx8mn: Fix imx8mn_clko1_sels
Adam Ward (1):
regulator: da9121: Prevent current limit change when enabled
Adrian Hunter (1):
perf script: Fix hex dump character output
Alan Maguire (1):
libbpf: Silence uninitialized warning/error in btf_dump_dump_type_data
Alan Stern (1):
scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
Alex Deucher (2):
drm/amdgpu/display: set vblank_disable_immediate for DC
drm/amdgpu: don't do resets on APUs which don't support it
Alex Elder (2):
ARM: dts: qcom: sdx55: fix IPA interconnect definitions
net: ipa: fix atomic update in ipa_endpoint_replenish()
Alexander Aring (3):
fs: dlm: don't call kernel_getpeername() in error_report()
fs: dlm: fix build with CONFIG_IPV6 disabled
fs: dlm: filter user dlm messages for kernel locks
Alexander Gordeev (1):
s390/mm: fix 2KB pgtable release race
Alexander Lobakin (2):
samples: bpf: Fix xdp_sample_user.o linking with Clang
samples: bpf: Fix 'unknown warning group' build warning on Clang
Alexander Stein (4):
arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
Alexander Usyskin (1):
mei: hbm: fix client dma reply status
Alexandre Ghiti (3):
riscv: Get rid of MAXPHYSMEM configs
Documentation, arch: Remove leftovers from raw device
Documentation, arch: Remove leftovers from CIFS_WEAK_PW_HASH
Alexei Starovoitov (2):
libbpf: Clean gen_loader's attach kind.
bpf: Adjust BTF log size limit.
Alexey Kardashevskiy (2):
KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
Alistair Francis (2):
HID: quirks: Allow inverting the absolute X/Y values
HID: i2c-hid-of: Expose the touchscreen-inverted properties
Alistair Popple (1):
mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
Alyssa Ross (2):
serial: liteuart: fix MODULE_ALIAS
ASoC: fsl_mqs: fix MODULE_ALIAS
Amelie Delaunay (1):
dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
Amjad Ouled-Ameur (1):
usb: dwc3: meson-g12a: fix shared reset control use
Ammar Faizi (2):
tools/nolibc: x86-64: Fix startup code bug
powerpc/xive: Add missing null check after calling kmalloc
Anders Roxell (2):
selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
powerpc/cell: Fix clang -Wimplicit-fallthrough warning
Andre Przywara (1):
ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
Andreas Oetken (1):
mtd: Fixed breaking list in __mtd_del_partition.
Andrew Lunn (3):
seg6: export get_srh() for ICMP handling
icmp: ICMPV6: Examine invoking packet for Segment Route Headers.
udp6: Use Segment Routing Header for dest address if present
Andrey Konovalov (1):
lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
Andrey Ryabinin (2):
cputime, cpuacct: Include guest time in user time in cpuacct.stat
sched/cpuacct: Fix user/system in shown cpuacct.usage*
Andrii Nakryiko (9):
libbpf: Free up resources used by inner map definition
libbpf: Fix potential misaligned memory access in btf_ext__new()
libbpf: Fix glob_syms memory leak in bpf_linker
libbpf: Fix using invalidated memory in bpf_linker
samples/bpf: Clean up samples/bpf build failes
selftests/bpf: Fix memory leaks in btf_type_c_dump() helper
selftests/bpf: Destroy XDP link correctly
selftests/bpf: Fix bpf_object leak in skb_ctx selftest
libbpf: Accommodate DWARF/compiler bug with duplicated structs
Andy Shevchenko (1):
misc: at25: Make driver OF independent again
AngeloGioacchino Del Regno (1):
mmc: mtk-sd: Use readl_poll_timeout instead of open-coded polling
Anilkumar Kolli (1):
ath11k: Use host CE parameters for CE interrupts configuration
Antoine Tenart (1):
net-sysfs: update the queue counts in the unregistration path
Anton Vasilyev (1):
media: dw2102: Fix use after free
Antony Antony (3):
xfrm: interface with if_id 0 should return error
xfrm: state and policy should fail if XFRMA_IF_ID 0
xfrm: rate limit SA mapping change message to user space
Archie Pusaka (1):
Bluetooth: Fix removing adv when processing cmd complete
Ard Biesheuvel (1):
net: cpsw: avoid alignment faults by taking NET_IP_ALIGN into account
Arnaud Pouliquen (1):
rpmsg: core: Clean up resources on announce_create failure.
Arnd Bergmann (2):
gpu: host1x: select CONFIG_DMA_SHARED_BUFFER
dmaengine: pxa/mmp: stop referencing config->slave_id
Arseny Demidov (1):
hwmon: (mr75203) fix wrong power-up delay value
Athira Rajeev (1):
powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC
Avihai Horon (2):
RDMA/core: Let ib_find_gid() continue search even after empty entry
RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
Avraham Stern (3):
iwlwifi: mvm: perform 6GHz passive scan after suspend
iwlwifi: mvm: set protected flag only for NDP ranging
iwlwifi: mvm: fix AUX ROC removal
Aya Levin (3):
net/mlx5e: Fix page DMA map/unmap attributes
Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
Revert "net/mlx5e: Block offload of outer header csum for GRE tunnel"
Baochen Qiang (2):
ath11k: Fix crash caused by uninitialized TX ring
ath11k: Avoid false DEADLOCK warning reported by lockdep
Baoquan He (3):
mm_zone: add function to check if managed dma zone exists
dma/pool: create dma atomic pool only if dma zone has managed pages
mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages
Bart Van Assche (4):
scsi: core: Fix scsi_device_max_queue_depth()
scsi: ufs: Fix race conditions related to driver data
scsi: ufs: Fix a kernel crash during shutdown
scsi: core: Show SCMD_LAST in text form
Baruch Siach (3):
arm64: dts: qcom: ipq6018: Fix gpio-ranges property
of: base: Fix phandle argument length mismatch error message
of: base: Improve argument length mismatch error
Ben Greear (1):
ath11k: Fix napi related hang
Ben Hutchings (1):
firmware: Update Kconfig help text for Google firmware
Ben Skeggs (1):
drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
Benjamin Li (3):
wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
wcn36xx: populate band before determining rate on RX
wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
Bernard Zhao (1):
selinux: fix potential memleak in selinux_add_opt()
Bhaumik Bhatt (1):
bus: mhi: core: Fix reading wake_capable channel configuration
Bhupesh Sharma (1):
net: stmmac: Add platform level debug register dump feature
Biju Das (2):
arm64: dts: renesas: cat875: Add rx/tx delays
mmc: tmio: reinit card irqs in reset routine
Biwen Li (1):
arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
Bixuan Cui (1):
ALSA: oss: fix compile error when OSS_DEBUG is enabled
Borislav Petkov (4):
x86/mce: Allow instrumentation during task work queueing
x86/mce: Mark mce_panic() noinstr
x86/mce: Mark mce_end() noinstr
x86/mce: Mark mce_read_aux() noinstr
Brian Chen (1):
psi: Fix PSI_MEM_FULL state when tasks are in memstall and doing reclaim
Brian Norris (9):
drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
drm/panel: innolux-p079zca: Delete panel on attach() failure
drm/rockchip: dsi: Fix unbalanced clock on probe error
drm/rockchip: dsi: Hold pm-runtime across bind/unbind
drm/rockchip: dsi: Disable PLL clock on bind error
drm/rockchip: dsi: Reconfigure hardware on resume()
mwifiex: Fix possible ABBA deadlock
drm/panel: Delete panel on mipi_dsi_attach() failure
drm/bridge: analogix_dp: Make PSR-exit block less
Bryan O'Donoghue (4):
wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
wcn36xx: Fix DMA channel enable/disable cycle
wcn36xx: Release DMA channel descriptor allocations
wcn36xx: Put DXE block into reset before freeing memory
Cezary Rojewski (1):
ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
Changcheng Deng (1):
PM: AVS: qcom-cpr: Use div64_ul instead of do_div
Chao Yu (5):
f2fs: fix to do sanity check on inode type during garbage collection
f2fs: fix to do sanity check in is_alive()
f2fs: fix to avoid panic in is_alive() if metadata is inconsistent
f2fs: fix to reserve space for IO align feature
f2fs: fix to check available space of CP area correctly in update_ckpt_flags()
Chen Jun (1):
tpm: add request_locality before write TPM_INT_ENABLE
Chen-Yu Tsai (1):
media: hantro: Hook up RK3399 JPEG encoder output
Chengfeng Ye (4):
crypto: qce - fix uaf on qce_aead_register_one
crypto: qce - fix uaf on qce_ahash_register_one
crypto: qce - fix uaf on qce_skcipher_register_one
HSI: core: Fix return freed object in hsi_new_client
Chengguang Xu (1):
RDMA/rxe: Fix a typo in opcode name
Christian A. Ehrhardt (2):
ALSA: hda/cs8409: Increase delay during jack detection
ALSA: hda/cs8409: Fix Jack detection after resume
Christian Eggers (1):
mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
Christian Hewitt (2):
arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
Christian König (1):
drm/radeon: fix error handling in radeon_driver_open_kms
Christian Lamparter (1):
ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
Christoph Hellwig (3):
block: fix error unwinding in device_add_disk
dm: fix alloc_dax error handling in alloc_dev
scsi: sr: Don't use GFP_DMA
Christophe JAILLET (5):
media: venus: core: Fix a potential NULL pointer dereference in an error handling path
media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'
RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"
HID: magicmouse: Fix an error handling path in magicmouse_probe()
remoteproc: imx_rproc: Fix a resource leak in the remove function
Christophe Jaillet (1):
tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
Christophe Leroy (7):
lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
powerpc/modules: Don't WARN on first module allocation attempt
powerpc/32s: Fix shift-out-of-bounds in KASAN init
powerpc/powermac: Add additional missing lockdep_register_key()
powerpc/powermac: Add missing lockdep_register_key()
w1: Misuse of get_user()/put_user() reported by sparse
powerpc/40x: Map 32Mbytes of memory at startup
Chunfeng Yun (1):
phy: phy-mtk-tphy: add support efuse setting
Chunguang Xu (1):
ext4: fix a possible ABBA deadlock due to busy PA
Claudiu Beznea (3):
mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
mfd: atmel-flexcom: Use .resume_noirq
net: phy: micrel: use kszphy_suspend()/kszphy_resume for irq aware devices
Clément Léger (1):
software node: fix wrong node passed to find nargs_prop
Conor Dooley (2):
clk: bm1880: remove kfrees on static allocations
mailbox: change mailbox-mpfs compatible string
D Scott Phillips (1):
arm64: errata: Fix exec handling in erratum 1418040 workaround
Dafna Hirschfeld (1):
media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
Dan Carpenter (11):
ksmbd: uninitialized variable in create_socket()
drm/bridge: display-connector: fix an uninitialized pointer in probe()
media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
drm/vboxvideo: fix a NULL vs IS_ERR() check
wilc1000: fix double free error in probe()
crypto: octeontx2 - prevent underflow in get_cores_bmap()
rocker: fix a sleeping in atomic bug
Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
ax25: uninitialized variable in ax25_setsockopt()
netrom: fix api breakage in nr_setsockopt()
crypto: octeontx2 - uninitialized variable in kvf_limits_store()
Dan Williams (1):
cxl/pmem: Fix reference counting for delayed work
Daniel Borkmann (2):
bpf: Don't promote bogus looking registers after null check.
bpf: Mark PTR_TO_FUNC register initially with zero offset
Daniel Golle (1):
net: ethernet: mtk_eth_soc: fix return values and refactor MDIO ops
Daniel Scally (1):
media: i2c: Re-order runtime pm initialisation
Daniel Thompson (1):
Documentation: dmaengine: Correctly describe dmatest with channel unset
Danielle Ratson (2):
mlxsw: pci: Add shutdown method in PCI driver
mlxsw: pci: Avoid flow control for EMAD packets
Dario Binacchi (1):
can: flexcan: allow to change quirks at runtime
Dave Jiang (1):
dmaengine: idxd: fix wq settings post wq disable
David Gow (1):
kunit: Don't crash if no parameters are generated
David Heidelberg (1):
arm64: dts: qcom: msm8996: drop not documented adreno properties
David Matlack (1):
KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU
Dillon Min (3):
media: videobuf2: Fix the size printk format
ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco
clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell
Dinh Nguyen (2):
usb: dwc2: do not gate off the hardware if it does not support clock gating
EDAC/synopsys: Use the quirk for version instead of ddr version
Dmitry Baryshkov (3):
arm64: dts: qcom: msm8916: fix MMC controller aliases
drm/msm/dsi: fix initialization in the bonded DSI case
drm/msm/dpu: fix safe status debugfs file
Dmitry Osipenko (4):
gpu: host1x: Add back arm_iommu_detach_device()
drm/tegra: Add back arm_iommu_detach_device()
mfd: tps65910: Set PWR_OFF bit during driver probe
drm/tegra: submit: Add missing pm_runtime_mark_last_busy()
Dmitry Torokhov (1):
HID: vivaldi: fix handling devices not using numbered reports
Dominik Brodowski (1):
pcmcia: fix setting of kthread task states
Dongliang Mu (1):
media: em28xx: fix memory leak in em28xx_init_dev
Edwin Peer (3):
bnxt_en: Refactor coredump functions
bnxt_en: move coredump functions into dedicated file
bnxt_en: use firmware provided max timeout for messages
Eli Cohen (2):
vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
vdpa/mlx5: Restore cur_num_vqs in case of failure in change_num_qps()
Eric Dumazet (7):
xfrm: fix a small bug in xfrm_sa_len()
ppp: ensure minimum packet size in ppp_write()
ipv4: update fib_info_cnt under spinlock protection
ipv4: avoid quadratic behavior in netns dismantle
af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
netns: add schedule point in ops_exit_list()
Eric W. Biederman (1):
taskstats: Cleanup the use of task->exit_code
Eugen Hristev (1):
media: i2c: imx274: fix s_frame_interval runtime resume not requested
Fabio Estevam (3):
media: imx-pxp: Initialize the spinlock prior to using it
ath10k: Fix the MTU size on QCA9377 SDIO
regmap: Call regmap_debugfs_exit() prior to _init()
Felix Fietkau (1):
mt76: mt7615: improve wmm index allocation
Felix Kuehling (1):
drm/amdkfd: Fix error handling in svm_range_add
Fengnan Chang (1):
f2fs: fix remove page failed in invalidate compress pages
Filipe Manana (2):
btrfs: fix deadlock between quota enable and other quota operations
btrfs: respect the max size in the header when activating swap file
Florian Fainelli (1):
net: mdio: Demote probed message to debug print
Florian Westphal (2):
netfilter: bridge: add support for pppoe filtering
netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
Frank Rowand (1):
of: unittest: 64 bit dma address test requires arch support
Frederic Weisbecker (1):
rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
Fugang Duan (1):
tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
Gang Li (1):
shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
Gaurav Jain (1):
crypto: caam - save caam memory to support crypto engine retry mechanism.
Geert Uytterhoeven (1):
riscv: dts: microchip: mpfs: Drop empty chosen node
Geliang Tang (1):
mptcp: fix a DSS option writing error
George G. Davis (1):
mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
German Gomez (1):
perf evsel: Override attr->sample_period for non-libpfm4 events
Ghalem Boudour (1):
xfrm: fix policy lookup for ipv6 gre packets
Giovanni Cabiddu (1):
crypto: qat - fix undetected PFVF timeout in ACK loop
Greg Kroah-Hartman (1):
Linux 5.15.17
Guillaume Nault (4):
mlx5: Don't accidentally set RTO_ONLINK before mlx5e_route_lookup_ipv4_get()
xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
Haimin Zhang (1):
USB: ehci_brcm_hub_control: Improve port index sanitizing
Hans Verkuil (3):
media: cec: fix a deadlock situation
media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
media: cec-pin: fix interrupt en/disable handling
Hans de Goede (10):
media: i2c: ov8865: Fix lockdep error
ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
ACPI: Change acpi_device_always_present() into acpi_device_override_status()
ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win
PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
Hari Bathini (2):
powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
Hari Prasath (1):
ARM: dts: at91: update alternate function of signal PD20
Harshad Shirwadkar (1):
ext4: initialize err_blk before calling __ext4_get_inode_loc
Hector Martin (3):
spi: Fix incorrect cs_setup delay handling
iommu/io-pgtable-arm: Fix table descriptor paddr formatting
mmc: sdhci-pci-gli: GL9755: Support for CD/WP inversion on OF platforms
Heiko Carstens (1):
selftests/ftrace: make kprobe profile testcase description unique
Heiner Kallweit (2):
i2c: i801: Don't silently correct invalid transfer size
crypto: omap-aes - Fix broken pm_runtime_and_get() usage
Herbert Xu (1):
crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
Horatiu Vultur (1):
net: ocelot: Fix the call to switchdev_bridge_port_offload
Hou Tao (1):
bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
Huang Rui (1):
x86, sched: Fix undefined reference to init_freq_invariance_cppc() build error
Hyeong-Jun Kim (1):
f2fs: compress: fix potential deadlock of compress file
Håkon Bugge (1):
RDMA/cma: Remove open coding of overflow checking for private_data_len
Igor Pylypiv (1):
scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
Ilan Peer (2):
iwlwifi: mvm: Fix calculation of frame length
iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
Ilia Mirkin (1):
drm/nouveau/kms/nv04: use vzalloc for nv04_display
Ingo Molnar (1):
x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
Iwona Winiarska (2):
gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
gpio: aspeed-sgpio: Convert aspeed_sgpio.lock to raw_spinlock
Jack Wang (1):
RDMA/rtrs-clt: Fix the initial value of min_latency
Jackie Liu (1):
drm/msm/dp: displayPort driver need algorithm rational
Jaegeuk Kim (1):
f2fs: avoid EINVAL by SBI_NEED_FSCK when pinning a file
Jakub Kicinski (2):
crypto: x86/aesni - don't require alignment of data
selftests: harness: avoid false negatives if test has no ASSERTs
James Hilliard (1):
media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
James Smart (3):
scsi: lpfc: Fix leaked lpfc_dmabuf mbox allocations with NPIV
scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
scsi: lpfc: Fix lpfc_force_rscn ndlp kref imbalance
Jammy Huang (2):
media: aspeed: fix mode-detect always time out at 2nd run
media: aspeed: Update signal status immediately to ensure sane hw state
Jan Kara (5):
bfq: Do not let waker requests skip proper accounting
ext4: avoid trim error on fs with small groups
udf: Fix error handling in udf_new_inode()
ext4: make sure to reset inode lockdep class when quota enabling fails
ext4: make sure quota gets properly shutdown on error
Jan Kiszka (1):
soc: ti: pruss: fix referenced node in error message
Jann Horn (1):
HID: uhid: Fix worker destroying device without any protection
Jason A. Donenfeld (1):
random: do not throw away excess input to crng_fast_load
Jason Gerecke (3):
HID: wacom: Reset expected and received contact counts at the same time
HID: wacom: Ignore the confidence flag when a touch is removed
HID: wacom: Avoid using stale array indicies to read contact count
Jens Axboe (1):
block: fix async_depth sysfs interface for mq-deadline
Jens Wiklander (1):
tee: fix put order in teedev_close_context()
Jernej Skrabec (1):
media: hantro: Fix probe func error path
Jesper Dangaard Brouer (1):
igc: AF_XDP zero-copy metadata adjust breaks SKBs on XDP_PASS
Jiasheng Jiang (9):
media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
power: reset: mt6397: Check for null res pointer
staging: greybus: audio: Check null pointer
fsl/fman: Check for null pointer after calling devm_ioremap
Bluetooth: hci_bcm: Check for error irq
can: xilinx_can: xcan_probe(): check for error irq
ASoC: rt5663: Handle device_property_read_u32_array error codes
ASoC: mediatek: Check for error clk pointer
ASoC: samsung: idma: Check of ioremap return value
Jie Wang (1):
net: bonding: fix bond_xmit_broadcast return value error bug
Jim Quinlan (1):
of: unittest: fix warning on PowerPC frame size warning
Jingwen Chen (2):
drm/amd/amdgpu: fix psp tmr bo pin count leak in SRIOV
drm/amd/amdgpu: fix gmc bo pin count leak in SRIOV
Jiri Olsa (1):
bpf/selftests: Fix namespace mount setup in tc_redirect
Jiri Slaby (1):
mxser: keep only !tty test in ISR
Jisheng Zhang (1):
riscv: mm: fix wrong phys_ram_base value for RV64
Joakim Tjernlund (1):
i2c: mpc: Correct I2C reset procedure
Joe Thornber (2):
dm btree: add a defensive bounds check to insert_at()
dm space map common: add bounds check to sm_ll_lookup_bitmap()
Joerg Roedel (1):
x86/mm: Flush global TLB when switching to trampoline page-table
Johan Hovold (9):
media: flexcop-usb: fix control-message timeouts
media: mceusb: fix control-message timeouts
media: em28xx: fix control-message timeouts
media: cpia2: fix control-message timeouts
media: s2255: fix control-message timeouts
media: redrat3: fix control-message timeouts
media: pvrusb2: fix control-message timeouts
media: stk1160: fix control-message timeouts
can: softing_cs: softingcs_probe(): fix memleak on registration failure
Johannes Berg (12):
iwlwifi: mvm: fix 32-bit build in FTM
um: fix ndelay/udelay defines
um: rename set_signals() to um_set_signals()
um: virt-pci: Fix 32-bit compile
lib/logic_iomem: Fix 32-bit build
lib/logic_iomem: Fix operation on 32-bit
um: virtio_uml: Fix time-travel external time propagation
iwlwifi: mvm: synchronize with FW after multicast commands
iwlwifi: fix leaks/bad data after failed firmware load
iwlwifi: remove module loading failure message
um: gitignore: Add kernel/capflags.c
iwlwifi: fix Bz NMI behaviour
John David Anglin (2):
parisc: Avoid calling faulthandler_disabled() twice
parisc: Fix lpa and lpa_user defines
John Fastabend (2):
bpf, sockmap: Fix return codes from tcp_bpf_recvmsg_parser()
bpf, sockmap: Fix double bpf_prog_put on error case in map_link
John Keeping (2):
usb: dwc2: gadget: initialize max_speed from params
pinctrl/rockchip: fix gpio device creation
Jonathan Cameron (2):
iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
iio: trigger: Fix a scheduling whilst atomic issue seen on tsc2046
Josef Bacik (3):
btrfs: remove BUG_ON() in find_parent_nodes()
btrfs: remove BUG_ON(!eie) in find_parent_nodes
btrfs: check the root node for uptodate before returning it
Joseph Hwang (1):
Bluetooth: refactor set_exp_feature with a feature table
José Expósito (6):
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
HID: magicmouse: Report battery level over USB
HID: apple: Do not reset quirks when the Fn key is not found
José Roberto de Souza (1):
drm/i915/display/ehl: Update voltage swing table
Julia Lawall (4):
powerpc/6xx: add missing of_node_put
powerpc/powernv: add missing of_node_put
powerpc/cell: add missing of_node_put
powerpc/btext: add missing of_node_put
Kai-Heng Feng (2):
rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE
usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
Kajol Jain (1):
bpf: Remove config check to enable bpf support for branch records
Kamal Heib (3):
RDMA/hns: Validate the pkey index
RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
RDMA/cxgb4: Set queue pair state when being queried
Karl Kurbjun (1):
HID: Ignore battery for Elan touchscreen on HP Envy X360 15t-dr100
Karthikeyan Kathirvel (2):
ath11k: clear the keys properly via DISABLE_KEY
ath11k: reset RSN/WPA present state for open BSS
Kees Cook (2):
x86/uaccess: Move variable into switch case statement
char/mwave: Adjust io port register size
Kevin Bracey (1):
net_sched: restore "mpu xxx" handling
Kieran Bingham (1):
arm64: dts: renesas: Fix thermal bindings
Kirill A. Shutemov (1):
ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
Kishon Vijay Abraham I (2):
arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
arm64: dts: ti: j721e-main: Fix 'dtbs_check' in serdes_ln_ctrl node
Konrad Dybcio (2):
arm64: dts: qcom: sm8350: Shorten camera-thermal-bottom name
regulator: qcom_smd: Align probe function with rpmh-regulator
Kris Van Hees (1):
bpf: Fix verifier support for validation of async callbacks
Krzysztof Kozlowski (1):
nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()
Kunihiko Hayashi (2):
spi: uniphier: Fix a bug that doesn't point to private data correctly
dmaengine: uniphier-xdmac: Fix type of address variables
Kuniyuki Iwashima (1):
bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
Kurt Kanzenbach (4):
net: dsa: hellcreek: Fix insertion of static FDB entries
net: dsa: hellcreek: Add STP forwarding rule
net: dsa: hellcreek: Allow PTP P2P measurements on blocked ports
net: dsa: hellcreek: Add missing PTP via UDP rules
Kyeong Yoo (1):
jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
Lad Prabhakar (6):
mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
serial: 8250_bcm7271: Propagate error codes from brcmuart_probe()
can: rcar_canfd: rcar_canfd_channel_probe(): make sure we free CAN network device
clk: renesas: rzg2l: Check return value of pm_genpd_init()
clk: renesas: rzg2l: propagate return value of_genpd_add_provider_simple()
Lakshmi Sowjanya D (1):
i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
Laurence de Bruxelles (1):
rtc: pxa: fix null pointer dereference
Laurent Pinchart (1):
drm: rcar-du: Fix CRTC timings when CMM is used
Leon Romanovsky (1):
devlink: Remove misleading internal_flags from health reporter dump
Li Hua (1):
sched/rt: Try to restart rt period timer when rt runtime exceeded
Lino Sanfilippo (2):
serial: amba-pl011: do not request memory region twice
tpm: fix potential NULL pointer access in tpm_del_char_device
Linus Lüssing (1):
batman-adv: allow netlink usage in unprivileged containers
Lizhi Hou (1):
tty: serial: uartlite: allow 64 bit address
Loic Poulain (2):
bus: mhi: pci_generic: Graceful shutdown on freeze
wcn36xx: Fix max channels retrieval
Lu Baolu (1):
iommu: Extend mutex lock scope in iommu_probe_device()
Luca Coelho (1):
iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
Lucas De Marchi (1):
x86/gpu: Reserve stolen memory for first integrated Intel GPU
Lucas Stach (2):
drm/etnaviv: consider completed fence seqno in hang check
drm/etnaviv: limit submit sizes
Luiz Augusto von Dentz (5):
Bluetooth: L2CAP: Fix not initializing sk_peer_pid
Bluetooth: MGMT: Use hci_dev_test_and_{set,clear}_flag
Bluetooth: L2CAP: Fix using wrong mode
Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
Bluetooth: hci_sync: Fix not setting adv set duration
Lukas Bulwahn (6):
ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
ASoC: codecs: wcd938x: add SND_SOC_WCD938_SDW to codec list instead
mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization
Lukas Wunner (4):
serial: pl010: Drop CR register reset on set_termios
serial: pl011: Drop CR register reset on set_termios
serial: core: Keep mctrl register state and cached copy in sync
serial: Fix incorrect rs485 polarity on uart open
Lukasz Luba (1):
cpufreq: qcom-cpufreq-hw: Update offline CPUs per-cpu thermal pressure
Luís Henriques (1):
ext4: set csum seed in tmp inode while migrating to extents
Lv Yunlong (1):
wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
Lyude Paul (1):
drm/dp: Don't read back backlight mode in drm_edp_backlight_enable()
Maher Sanalla (1):
net/mlx5: Update log_max_qp value to FW max capability
Manivannan Sadhasivam (1):
bus: mhi: core: Fix race while handling SYS_ERR at power up
Mansur Alisha Shaik (2):
media: venus: correct low power frequency calculation for encoder
media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions
Maor Dickman (4):
net/mlx5e: Fix wrong usage of fib_info_nh when routes with nexthop objects are used
net/mlx5e: Don't block routes with nexthop objects in SW
net/mlx5e: Sync VXLAN udp ports during uplink representor profile change
net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager
Marc Kleine-Budde (5):
can: mcp251xfd: add missing newline to printed strings
can: softing: softing_startstop(): fix set but not used variable warning
can: flexcan: rename RX modes
can: flexcan: add more quirks to describe RX path capabilities
can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
Marc Zyngier (1):
irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
Marcelo Tosatti (1):
KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
Marco Chiappero (2):
crypto: qat - remove unnecessary collision prevention step in PFVF
crypto: qat - make pfvf send message direction agnostic
Marek Behún (1):
ARM: dts: armada-38x: Add generic compatible to UART nodes
Marek Vasut (2):
soc: imx: gpcv2: Synchronously suspend MIX domains
crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
Marijn Suijten (7):
backlight: qcom-wled: Validate enabled string indices in DT
backlight: qcom-wled: Pass number of elements to read to read_u32_array
backlight: qcom-wled: Fix off-by-one maximum with default num_strings
backlight: qcom-wled: Override default length with qcom,enabled-strings
backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
backlight: qcom-wled: Respect enabled-strings in set_brightness
regulator: qcom-labibb: OCP interrupts are not a failure while disabled
Marina Nikolic (1):
amdgpu/pm: Make sysfs pm attributes as read-only for VFs
Mario Limonciello (1):
ACPI: CPPC: Check present CPUs for determining _CPC is valid
Mark Chen (2):
Bluetooth: btusb: Handle download_firmware failure cases
Bluetooth: btusb: Return error code when getting patch status failed
Mark Langsdorf (1):
ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
Mark Rutland (1):
powerpc: Avoid discarding flags in system_call_exception()
Markus Reichl (1):
net: usb: Correct reset handling of smsc95xx
Martin Blumenstingl (1):
clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
Martin Leung (1):
drm/amd/display: add else to avoid double destroy clk_mgr
Martyn Welch (1):
drm/bridge: megachips: Ensure both bridges are probed before registration
Mateusz Jończyk (1):
rtc: cmos: take rtc_lock while reading from CMOS
Matthias Schiffer (1):
scripts/dtc: dtx_diff: remove broken example from help text
Matthieu Baerts (1):
mptcp: fix opt size when sending DSS + MP_FAIL
Mauro Carvalho Chehab (8):
media: atomisp: fix enum formats logic
media: atomisp: fix try_fmt logic
media: atomisp: set per-device's default mode
media: atomisp: check before deference asd variable
media: atomisp: handle errors at sh_css_create_isp_params()
media: m920x: don't use stack on USB reads
scripts: sphinx-pre-install: add required ctex dependency
scripts: sphinx-pre-install: Fix ctex support on Debian
Maxim Levitsky (5):
iommu/amd: Restore GA log/tail pointer on host resume
iommu/amd: X2apic mode: re-enable after resume
iommu/amd: X2apic mode: setup the INTX registers on mask/unmask
iommu/amd: X2apic mode: mask/unmask interrupts on suspend/resume
iommu/amd: Remove useless irq affinity notifier
Maxim Mikityanskiy (2):
bpf: Fix the test_task_vma selftest to support output shorter than 1 kB
sch_api: Don't skip qdisc attach on ingress
Maxime Ripard (13):
clk: bcm-2835: Pick the closest clock rate
clk: bcm-2835: Remove rounding up the dividers
drm/vc4: hdmi: Set a default HSM rate
drm/vc4: hdmi: Move the HSM clock enable to runtime_pm
drm/vc4: hdmi: Make sure the controller is powered in detect
drm/vc4: hdmi: Make sure the controller is powered up during bind
drm/vc4: hdmi: Rework the pre_crtc_configure error handling
drm/vc4: crtc: Make sure the HDMI controller is powered when disabling
drm/vc4: hdmi: Enable the scrambler on reconnection
drm/vc4: hdmi: Make sure the device is powered with CEC
drm/vc4: crtc: Drop feed_txp from state
drm/vc4: Fix non-blocking commit getting stuck forever
drm/vc4: crtc: Copy assigned channel to the CRTC
Meng Li (1):
crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
Merlijn Wajer (1):
leds: lp55xx: initialise output direction from dts
Miaoqian Lin (10):
Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
drivers/firmware: Add missing platform_device_put() in sysfb_create_simplefb
spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
phy: mediatek: Fix missing check in mtk_mipi_tx_probe
scsi: ufs: ufs-mediatek: Fix error checking in ufs_mtk_init_va09_pwr_ctrl()
parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
gpio: mpc8xxx: Fix IRQ check in mpc8xxx_probe
gpio: idt3243x: Fix IRQ check in idt_gpio_probe
lib82596: Fix IRQ check in sni_82596_probe
Michael Ellerman (4):
powerpc/64s: Mask NIP before checking against SRR0
powerpc/64s: Use EMIT_WARN_ENTRY for SRR debug warnings
powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
selftests/powerpc: Add a test of sigreturning to the kernel
Michael Kuron (1):
media: dib0700: fix undefined behavior in tuner shutdown
Michael S. Tsirkin (1):
virtio_ring: mark ring unused on error
Michael Walle (1):
mtd: core: provide unique name for nvmem device
Michal Suchanek (1):
debugfs: lockdown: Allow reading debugfs files that are not world readable
Mika Westerberg (1):
thunderbolt: Runtime PM activate both ends of the device link
Mike Leach (1):
Documentation: coresight: Fix documentation issue
Mikhail Rudenko (1):
media: rockchip: rkisp1: use device name for debugfs subdir name
Miroslav Lichvar (2):
net: fix SOF_TIMESTAMPING_BIND_PHC to work with multiple sockets
net: fix sock_timestamping_bind_phc() to release device
Mohammad Athari Bin Ismail (1):
net: phy: marvell: add Marvell specific PHY loopback
Moshe Shemesh (2):
net/mlx5: Set command entry semaphore up once got index free
Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
Moshe Tal (1):
bonding: Fix extraction of ports from the packet headers
Namjae Jeon (5):
ksmbd: fix guest connection failure with nautilus
ksmbd: add support for smb2 max credit parameter
ksmbd: move credit charge deduction under processing request
ksmbd: limits exceeding the maximum allowable outstanding requests
ksmbd: add reserved room in ipc request/response
Nathan Chancellor (3):
x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
MIPS: Loongson64: Use three arguments for slti
Nathan Errera (1):
iwlwifi: mvm: test roc running status bits before removing the sta
Neal Liu (1):
usb: uhci: add aspeed ast2600 uhci support
Neil Armstrong (1):
drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
Nicholas Kazlauskas (1):
drm/amd/display: Fix out of bounds access on DNC31 stream encoder regs
Nicholas Piggin (2):
powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
powerpc/64s/radix: Fix huge vmap false positive
Nick Kossifidis (3):
riscv: try to allocate crashkern region from 32bit addressible memory
riscv: Don't use va_pa_offset on kdump
riscv: use hart id instead of cpu id on machine_kexec
Nicolas Dichtel (1):
xfrm: fix dflt policy check when there is no policy configured
Nicolas Toromanoff (6):
crypto: stm32/cryp - fix CTR counter carry
crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
crypto: stm32/cryp - check early input data
crypto: stm32/cryp - fix double pm exit
crypto: stm32/cryp - fix lrw chaining mode
crypto: stm32/cryp - fix bugs and crash in tests
Nikita Yushchenko (1):
tracing/osnoise: Properly unhook events if start_per_cpu_kthreads() fails
Niklas Söderlund (2):
dt-bindings: thermal: Fix definition of cooling-maps contribution property
media: rcar-vin: Update format alignment constraints
Nishanth Menon (4):
arm64: dts: ti: k3-am642: Fix the L2 cache sets
arm64: dts: ti: k3-j7200: Fix the L2 cache sets
arm64: dts: ti: k3-j721e: Fix the L2 cache sets
arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
Ohad Sharabi (1):
habanalabs: skip read fw errors if dynamic descriptor invalid
Oleksandr Andrushchenko (1):
xen/gntdev: fix unmap notification order
Oleksij Rempel (1):
thermal/drivers/imx: Implement runtime PM support
Pablo Neira Ayuso (1):
netfilter: nft_payload: do not update layer 4 checksum when mangling fragments
Pali Rohár (5):
PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
PCI: pci-bridge-emul: Fix definitions of reserved bits
PCI: pci-bridge-emul: Correctly set PCIe capabilities
PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
Panicker Harish (1):
Bluetooth: hci_qca: Stop IBS timer during BT OFF
Paolo Abeni (2):
mptcp: fix per socket endpoint accounting
bpf: Do not WARN in bpf_warn_invalid_xdp_action()
Patrick Williams (1):
tpm: fix NPE on probe for missing device
Paul Blakey (4):
net/mlx5e: Fix matching on modified inner ip_ecn bits
net/sched: flow_dissector: Fix matching on zone id for invalid conns
net: openvswitch: Fix matching zone id for invalid conns arriving from tc
net: openvswitch: Fix ct_state nat flags for conns arriving from tc
Paul Cercueil (7):
mtd: rawnand: davinci: Don't calculate ECC when reading page
mtd: rawnand: davinci: Avoid duplicated page read
mtd: rawnand: davinci: Rewrite function description
mtd: rawnand: Export nand_read_page_hwecc_oob_first()
mtd: rawnand: ingenic: JZ4740 needs 'oob_first' read page function
MIPS: boot/compressed/: add __ashldi3 to target for ZSTD compression
MIPS: compressed: Fix build with ZSTD compression
Paul Chaignon (1):
bpftool: Enable line buffering for stdout
Paul Gerber (1):
thermal/drivers/imx8mm: Enable ADC when enabling monitor
Paul Moore (1):
audit: ensure userspace is penalized the same as the kernel when under pressure
Pavankumar Kondeti (1):
usb: gadget: f_fs: Use stream_open() for endpoint files
Pavel Begunkov (1):
io_uring: remove double poll on poll update
Pavel Hofman (1):
usb: gadget: u_audio: Subdevice 0 for capture ctls
Pavel Skripkin (2):
Bluetooth: stop proccessing malicious adv data
net: mcs7830: handle usb read errors properly
Peiwei Hu (1):
powerpc/prom_init: Fix improper check of prom_getprop()
Peng Fan (1):
arm64: dts: ti: k3-j721e: correct cache-sets info
Peng Hao (1):
virtio/virtio_mem: handle a possible NULL as a memcpy parameter
Peter Chiu (1):
mt76: mt7615: fix possible deadlock while mt7615_register_ext_phy()
Peter Gonda (1):
crypto: ccp - Move SEV_INIT retry for corrupted data
Petr Cvachoucek (1):
ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
Philipp Zabel (1):
media: coda: fix CODA960 JPEG encoder buffer overflow
Pierre-Louis Bossart (1):
ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible
Ping-Ke Shih (2):
rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC
mac80211: allow non-standard VHT MCS-10/11
Pingfan Liu (1):
efi: apply memblock cap after memblock_add()
Po-Hao Huang (1):
rtw88: 8822c: update rx settings to prevent potential hw deadlock
Prasad Malisetty (1):
arm64: dts: qcom: sc7280: Fix incorrect clock name
Qiang Yu (1):
drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
Quentin Monnet (4):
bpftool: Fix memory leak in prog_dump()
samples/bpf: Install libbpf headers when building
bpftool: Remove inclusion of utilities.mak from Makefiles
bpftool: Fix indent in option lists in the documentation
Raed Salem (1):
net/xfrm: IPsec tunnel mode fix inner_ipproto setting in sec_path
Rafael J. Wysocki (5):
ACPI: EC: Rework flushing of EC work while suspended to idle
PM: runtime: Add safety net to supplier device release
cpufreq: Fix initialization of min and max frequency QoS requests
ACPICA: Utilities: Avoid deleting the same object twice in a row
ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
Rameshkumar Sundaram (2):
ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
Randy Dunlap (5):
mips: lantiq: add support for clk_set_parent()
mips: bcm63xx: add support for clk_set_parent()
um: registers: Rename function names to avoid conflicts and build problems
media: correct MEDIA_TEST_SUPPORT help text
Documentation: fix firewire.rst ABI file path error
Reiji Watanabe (2):
arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
arm64: mte: DC {GVA,GZVA} shouldn't be used when DCZID_EL0.DZP == 1
Rob Clark (2):
drm/msm/gpu: Don't allow zero fence_id
iommu/arm-smmu-qcom: Fix TTBR0 read
Rob Herring (1):
PCI: xgene: Fix IB window setup
Robert Hancock (10):
clk: si5341: Fix clock HW provider cleanup
net: axienet: increase reset timeout
net: axienet: Wait for PhyRstCmplt after core reset
net: axienet: reset core on initialization prior to MDIO access
net: axienet: add missing memory barriers
net: axienet: limit minimum TX ring size
net: axienet: Fix TX ring slot available check
net: axienet: fix number of TX ring slots for available check
net: axienet: fix for TX busy handling
net: axienet: increase default TX ring size to 128
Robert Marko (2):
arm64: dts: marvell: cn9130: add GPIO and SPI aliases
arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
Robert Schlabbach (1):
media: si2157: Fix "warm" tuner state detection
Robin Murphy (2):
perf/arm-cmn: Fix CPU hotplug unregistration
drm/tegra: vic: Fix DMA API misuse
Russell King (Oracle) (4):
net: phy: prefer 1000baseT over 1000baseKX
net: phy: marvell: configure RGMII delays for 88E1118
net: gemini: allow any RGMII interface mode
net: sfp: fix high power modules without diagnostic monitoring
Ryuta NAKANISHI (1):
phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
Sakari Ailus (3):
media: ov8865: Disable only enabled regulators on error path
device property: Fix fwnode_graph_devcon_match() fwnode leak
Documentation: ACPI: Fix data node reference documentation
Sam Protsenko (1):
dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
Sameer Pujar (1):
arm64: tegra: Remove non existent Tegra194 reset
Sean Christopherson (1):
RISC-V: Use common riscv_cpuid_to_hartid_mask() for both SMP=y and SMP=n
Sean Wang (2):
Bluetooth: btmtksdio: fix resume failure
mt76: mt7921: drop offload_flags overwritten
Sean Young (1):
media: igorplugusb: receiver overflow should be reported
Sebastian Andrzej Siewior (1):
ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
Sebastian Gottschall (1):
ath10k: Fix tx hanging
Sergey Shtylyov (3):
mmc: meson-mx-sdhc: add IRQ check
mmc: meson-mx-sdio: add IRQ check
bcmgenet: add WOL IRQ check
Shaul Triebitz (1):
iwlwifi: mvm: avoid clearing a just saved session protection id
Shay Drory (1):
net/mlx5: Fix access to sf_dev_table on allocation failure
Shengjiu Wang (4):
ASoC: imx-card: Need special setting for ak4497 on i.MX8MQ
ASoC: imx-card: Fix mclk calculation issue for akcodec
ASoC: imx-card: improve the sound quality for low rate
ASoC: fsl_asrc: refine the check of available clock divider
Sicelo A. Mhlongo (1):
ARM: dts: omap3-n900: Fix lp5523 for multi color
Slark Xiao (1):
net: wwan: Fix MRU mismatch issue which may lead to data connection lost
Soenke Huster (1):
Bluetooth: virtio_bt: fix memory leak in virtbt_rx_handle()
Sreekanth Reddy (1):
scsi: mpi3mr: Fixes around reply request queues
Srinivas Kandagatla (2):
arm64: dts: qcom: c630: Fix soundcard setup
nvmem: core: set size for sysfs bin file
Sriram R (1):
ath11k: Avoid NULL ptr access during mgmt tx cleanup
Stafford Horne (1):
openrisc: Add clone3 ABI wrapper
Stefan Riedmueller (1):
mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
Stephan Gerhold (1):
interconnect: qcom: rpm: Prevent integer overflow in rate
Stephan Müller (1):
crypto: jitter - consider 32 LSB for APT
Stephen Boyd (3):
drm/bridge: ti-sn65dsi86: Set max register for regmap
of/fdt: Don't worry about non-memory region overlap for no-map
clk: Emit a stern warning with writable debugfs enabled
Steven Rostedt (1):
tracing: Have syscall trace events use trace_event_buffer_lock_reserve()
Subbaraya Sundeep (1):
octeontx2-af: Increment ptp refcount before use
Sudeep Holla (1):
ACPICA: Fix wrong interpretation of PCC address
Suresh Kumar (1):
net: bonding: debug: avoid printing debug logs when bond is not notifying peers
Suresh Udipi (2):
media: rcar-csi2: Correct the selection of hsfreqrange
media: rcar-csi2: Optimize the selection PHTW register
Sven Eckelmann (1):
ath11k: Fix ETSI regd with weather radar overlap
Swapnil Jakhade (1):
phy: cadence: Sierra: Fix to get correct parent for mux clocks
Takashi Iwai (7):
ALSA: core: Fix SSID quirk lookup for subvendor=0
ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
ALSA: hda: Fix potential deadlock at codec unbinding
ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
ALSA: seq: Set upper limit of processed events
Taniya Das (1):
clk: qcom: gcc-sc7280: Mark gcc_cfg_noc_lpass_clk always enabled
Tasos Sahanidis (1):
floppy: Fix hang in watchdog when disk is ejected
Tedd Ho-Jeong An (1):
Bluetooth: btintel: Add missing quirks and msft ext for legacy bootloader
Tetsuo Handa (3):
ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep()
ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet()
block: check minor range in device_add_disk()
Thadeu Lima de Souza Cascardo (1):
selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
Theodore Ts'o (1):
ext4: don't use the orphan list when migrating an inode
Thierry Reding (2):
drm/tegra: gr2d: Explicitly control module reset
arm64: tegra: Adjust length of CCPLEX cluster MMIO region
Thomas Gleixner (2):
ALSA: hda: Make proper use of timecounter
PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
Thomas Hellström (1):
dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
Thomas Weißschuh (1):
ACPI: battery: Add the ThinkPad "Not Charging" quirk
Tianjia Zhang (1):
MIPS: Octeon: Fix build errors using clang
Tobias Waldekranz (3):
powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
net/fsl: xgmac_mdio: Add workaround for erratum A-009885
net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
Todd Kjos (2):
binder: fix handling of error during copy
binder: avoid potential data leakage when copying txn
Toke Høiland-Jørgensen (1):
xdp: check prog type before updating BPF link
Tom Rix (2):
net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
net: mscc: ocelot: fix using match before it is set
Trevor Wu (2):
ASoC: mediatek: mt8195: correct default value
ASoC: mediatek: mt8195: correct pcmif BE dai control flow
Tsuchiya Yuto (8):
media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities()
media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
media: atomisp: fix inverted logic in buffers_needed()
media: atomisp: do not use err var when checking port validity for ISP2400
media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid()
media: atomisp: fix ifdefs in sh_css.c
media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
media: atomisp: fix "variable dereferenced before check 'asd'"
Tudor Ambarus (9):
crypto: atmel-aes - Reestablish the correct tfm context at dequeue
tty: serial: atmel: Check return code of dmaengine_submit()
tty: serial: atmel: Call dma_async_issue_pending()
dmaengine: at_xdmac: Don't start transactions at tx_submit level
dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
dmaengine: at_xdmac: Print debug message after realeasing the lock
dmaengine: at_xdmac: Fix concurrency over xfers_list
dmaengine: at_xdmac: Fix lld view setting
dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
Tzung-Bi Shih (3):
ASoC: mediatek: mt8192-mt6359: fix device_node leak
ASoC: mediatek: mt8173: fix device_node leak
ASoC: mediatek: mt8183: fix device_node leak
Ulf Hansson (1):
mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
Uwe Kleine-König (1):
perf tools: Drop requirement for libstdc++.so for libopencsd check
Valentin Caron (1):
serial: stm32: move tx dma terminate DMA to shutdown
Vincent Donnefort (2):
sched/fair: Fix detection of per-CPU kthreads waking a task
sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
Vladimir Oltean (3):
net: dsa: fix incorrect function pointer check for MRP ring roles
net: mscc: ocelot: fix incorrect balancing with down LAG ports
net: mscc: ocelot: don't let phylink re-enable TX PAUSE on the NPI port
Vladimir Zapolskiy (1):
cpufreq: qcom-hw: Fix probable nested interrupt handling
Waiman Long (1):
clocksource: Avoid accidental unstable marking of clocksources
Wan Jiabing (1):
ARM: shmobile: rcar-gen2: Add missing of_node_put()
Wander Lairson Costa (1):
rcutorture: Avoid soft lockup during cpu stall
Wang Hai (4):
drm: fix null-ptr-deref in drm_dev_init_release()
Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
media: dmxdev: fix UAF when dvb_register_device() fails
media: msi001: fix possible null-ptr-deref in msi001_probe()
Wayne Lin (1):
drm/amd/display: Fix bug in debugfs crc_win_update entry
Wei Yongjun (4):
usb: ftdi-elan: fix memory leak on device disconnect
misc: lattice-ecp3-config: Fix task hung when firmware load failed
Bluetooth: Fix debugfs entry leak in hci_register_dev()
Bluetooth: Fix memory leak of hci device
Weili Qian (2):
crypto: hisilicon/qm - fix incorrect return value of hisi_qm_resume()
crypto: hisilicon/hpre - fix memory leak in hpre_curve25519_src_init()
Wen Gong (2):
ath11k: add string type to search board data in board-2.bin for WCN6855
ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
Wen Gu (2):
net/smc: Reset conn->lgr when link group registration fails
net/smc: Fix hung_task when removing SMC-R devices
William Kucharski (1):
cgroup: Trace event cgroup id fields should be u64
Willy Tarreau (2):
tools/nolibc: i386: fix initial stack alignment
tools/nolibc: fix incorrect truncation of exit code
Xiangyang Zhang (1):
tracing/kprobes: 'nmissed' not showed correctly for kretprobe
Xiao Ni (1):
md: Move alloc/free acct bioset in to personality
Xie Yongji (1):
fuse: Pass correct lend value to filemap_write_and_wait_range()
Xin Xiong (1):
netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
Xin Yin (3):
ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
ext4: use ext4_ext_remove_space() for fast commit replay delete range
ext4: fast commit may miss tracking unwritten range during ftruncate
Xing Song (1):
mt76: do not pass the received frame with decryption error
Xiongfeng Wang (1):
iommu/iova: Fix race between FQ timeout and teardown
Xiongwei Song (1):
floppy: Add max size check for user space request
Yafang Shao (1):
bpf: Fix mount source show for bpffs
Yang Li (2):
ethernet: renesas: Use div64_ul instead of do_div
drm/amd/display: check top_pipe_to_program pointer
Yang Yingliang (3):
media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
staging: rtl8192e: return error code from rtllib_softmac_init()
staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
Ye Bin (3):
ext4: Fix BUG_ON in ext4_bread when write quota data
ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
block: Fix fsync always failed if once failed
Ye Guojin (2):
ASoC: imx-hdmi: add put_device() after of_find_device_by_node()
MIPS: OCTEON: add put_device() after of_find_device_by_node()
Yifeng Li (1):
PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
Yixing Liu (1):
RDMA/hns: Modify the mapping attribute of doorbell to device
Yizhuo Zhai (1):
drm/amd/display: Fix the uninitialized variable in enable_stream_features()
Yunfei Wang (1):
iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
Yury Norov (1):
bitops: protect find_first_{,zero}_bit properly
Zack Rusin (6):
drm/vmwgfx: Remove the deprecated lower mem limit
drm/vmwgfx: Fail to initialize on broken configs
drm/vmwgfx: Release ttm memory if probe fails
drm/vmwgfx: Introduce a new placement for MOB page tables
drm/vmwgfx: Remove explicit transparent hugepages support
drm/vmwgfx: Remove unused compile options
Zechuan Chen (1):
perf probe: Fix ppc64 'perf probe add events failed' case
Zekun Shen (5):
ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
rsi: Fix use-after-free in rsi_rx_done_handler()
rsi: Fix out-of-bounds read in rsi_read_pkt()
ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
Zhang Yi (1):
ext4: fix an use-after-free issue about data=journal writeback mode
Zhang Zixun (1):
x86/mce/inject: Avoid out-of-bounds write when setting flags
Zhen Lei (1):
of: fdt: Aggregate the processing of "linux,usable-memory-range"
Zheyu Ma (1):
media: b2c2: Add missing check in flexcop_pci_isr:
Zhou Qingyang (9):
drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode()
drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
media: dib8000: Fix a memleak in dib8000_init()
media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()
Zhu Lingshan (1):
ifcvf/vDPA: fix misuse virtio-net device config size for blk dev
Zizhuang Deng (1):
lib/mpi: Add the return value check of kcalloc()
Zongmin Zhou (1):
drm/amdgpu: fixup bad vram size on gmc v8
jason-jh.lin (1):
mailbox: fix gce_num of mt8192 driver data
oujiefeng (1):
spi: hisi-kunpeng: Fix the debugfs directory name incorrect
xinhui pan (1):
drm/ttm: Put BO in its memory manager's lru list
^ permalink raw reply [relevance 1%]
* Re: Linux 5.10.94
2022-01-27 13:32 1% Linux 5.10.94 Greg Kroah-Hartman
@ 2022-01-27 13:32 1% ` Greg Kroah-Hartman
0 siblings, 0 replies; 200+ results
From: Greg Kroah-Hartman @ 2022-01-27 13:32 UTC (permalink / raw)
To: linux-kernel, akpm, torvalds, stable; +Cc: lwn, jslaby, Greg Kroah-Hartman
diff --git a/Documentation/ABI/testing/sysfs-bus-iio-lptimer-stm32 b/Documentation/ABI/testing/sysfs-bus-iio-lptimer-stm32
deleted file mode 100644
index 73498ff666bd..000000000000
--- a/Documentation/ABI/testing/sysfs-bus-iio-lptimer-stm32
+++ /dev/null
@@ -1,62 +0,0 @@
-What: /sys/bus/iio/devices/iio:deviceX/in_count0_preset
-KernelVersion: 4.13
-Contact: fabrice.gasnier@st.com
-Description:
- Reading returns the current preset value. Writing sets the
- preset value. Encoder counts continuously from 0 to preset
- value, depending on direction (up/down).
-
-What: /sys/bus/iio/devices/iio:deviceX/in_count_quadrature_mode_available
-KernelVersion: 4.13
-Contact: fabrice.gasnier@st.com
-Description:
- Reading returns the list possible quadrature modes.
-
-What: /sys/bus/iio/devices/iio:deviceX/in_count0_quadrature_mode
-KernelVersion: 4.13
-Contact: fabrice.gasnier@st.com
-Description:
- Configure the device counter quadrature modes:
-
- - non-quadrature:
- Encoder IN1 input servers as the count input (up
- direction).
-
- - quadrature:
- Encoder IN1 and IN2 inputs are mixed to get direction
- and count.
-
-What: /sys/bus/iio/devices/iio:deviceX/in_count_polarity_available
-KernelVersion: 4.13
-Contact: fabrice.gasnier@st.com
-Description:
- Reading returns the list possible active edges.
-
-What: /sys/bus/iio/devices/iio:deviceX/in_count0_polarity
-KernelVersion: 4.13
-Contact: fabrice.gasnier@st.com
-Description:
- Configure the device encoder/counter active edge:
-
- - rising-edge
- - falling-edge
- - both-edges
-
- In non-quadrature mode, device counts up on active edge.
-
- In quadrature mode, encoder counting scenarios are as follows:
-
- +---------+----------+--------------------+--------------------+
- | Active | Level on | IN1 signal | IN2 signal |
- | edge | opposite +----------+---------+----------+---------+
- | | signal | Rising | Falling | Rising | Falling |
- +---------+----------+----------+---------+----------+---------+
- | Rising | High -> | Down | - | Up | - |
- | edge | Low -> | Up | - | Down | - |
- +---------+----------+----------+---------+----------+---------+
- | Falling | High -> | - | Up | - | Down |
- | edge | Low -> | - | Down | - | Up |
- +---------+----------+----------+---------+----------+---------+
- | Both | High -> | Down | Up | Up | Down |
- | edges | Low -> | Up | Down | Down | Up |
- +---------+----------+----------+---------+----------+---------+
diff --git a/Documentation/admin-guide/hw-vuln/spectre.rst b/Documentation/admin-guide/hw-vuln/spectre.rst
index e05e581af5cf..985181dba0ba 100644
--- a/Documentation/admin-guide/hw-vuln/spectre.rst
+++ b/Documentation/admin-guide/hw-vuln/spectre.rst
@@ -468,7 +468,7 @@ Spectre variant 2
before invoking any firmware code to prevent Spectre variant 2 exploits
using the firmware.
- Using kernel address space randomization (CONFIG_RANDOMIZE_SLAB=y
+ Using kernel address space randomization (CONFIG_RANDOMIZE_BASE=y
and CONFIG_SLAB_FREELIST_RANDOM=y in the kernel configuration) makes
attacks on the kernel generally more difficult.
diff --git a/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml b/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
index 0da42ab8fd3a..8a67bb889f18 100644
--- a/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
+++ b/Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
@@ -10,6 +10,9 @@ title: Amlogic specific extensions to the Synopsys Designware HDMI Controller
maintainers:
- Neil Armstrong <narmstrong@baylibre.com>
+allOf:
+ - $ref: /schemas/sound/name-prefix.yaml#
+
description: |
The Amlogic Meson Synopsys Designware Integration is composed of
- A Synopsys DesignWare HDMI Controller IP
@@ -99,6 +102,8 @@ properties:
"#sound-dai-cells":
const: 0
+ sound-name-prefix: true
+
required:
- compatible
- reg
diff --git a/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml b/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
index a8d202c9d004..b8cb1b4dae1f 100644
--- a/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
+++ b/Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
@@ -78,6 +78,10 @@ properties:
interrupts:
maxItems: 1
+ amlogic,canvas:
+ description: should point to a canvas provider node
+ $ref: /schemas/types.yaml#/definitions/phandle
+
power-domains:
maxItems: 1
description: phandle to the associated power domain
@@ -106,6 +110,7 @@ required:
- port@1
- "#address-cells"
- "#size-cells"
+ - amlogic,canvas
additionalProperties: false
@@ -118,6 +123,7 @@ examples:
interrupts = <3>;
#address-cells = <1>;
#size-cells = <0>;
+ amlogic,canvas = <&canvas>;
/* CVBS VDAC output port */
port@0 {
diff --git a/Documentation/devicetree/bindings/thermal/thermal-zones.yaml b/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
index 164f71598c59..1b3954aa71c1 100644
--- a/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
+++ b/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
@@ -199,12 +199,11 @@ patternProperties:
contribution:
$ref: /schemas/types.yaml#/definitions/uint32
- minimum: 0
- maximum: 100
description:
- The percentage contribution of the cooling devices at the
- specific trip temperature referenced in this map
- to this thermal zone
+ The cooling contribution to the thermal zone of the referred
+ cooling device at the referred trip point. The contribution is
+ a ratio of the sum of all cooling contributions within a
+ thermal zone.
required:
- trip
diff --git a/Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml b/Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml
index 76cb9586ee00..93cd77a6e92c 100644
--- a/Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml
+++ b/Documentation/devicetree/bindings/watchdog/samsung-wdt.yaml
@@ -39,8 +39,8 @@ properties:
samsung,syscon-phandle:
$ref: /schemas/types.yaml#/definitions/phandle
description:
- Phandle to the PMU system controller node (in case of Exynos5250
- and Exynos5420).
+ Phandle to the PMU system controller node (in case of Exynos5250,
+ Exynos5420 and Exynos7).
required:
- compatible
@@ -58,6 +58,7 @@ allOf:
enum:
- samsung,exynos5250-wdt
- samsung,exynos5420-wdt
+ - samsung,exynos7-wdt
then:
required:
- samsung,syscon-phandle
diff --git a/Documentation/driver-api/dmaengine/dmatest.rst b/Documentation/driver-api/dmaengine/dmatest.rst
index ee268d445d38..d2e1d8b58e7d 100644
--- a/Documentation/driver-api/dmaengine/dmatest.rst
+++ b/Documentation/driver-api/dmaengine/dmatest.rst
@@ -143,13 +143,14 @@ Part 5 - Handling channel allocation
Allocating Channels
-------------------
-Channels are required to be configured prior to starting the test run.
-Attempting to run the test without configuring the channels will fail.
+Channels do not need to be configured prior to starting a test run. Attempting
+to run the test without configuring the channels will result in testing any
+channels that are available.
Example::
% echo 1 > /sys/module/dmatest/parameters/run
- dmatest: Could not start test, no channels configured
+ dmatest: No channels configured, continue with any
Channels are registered using the "channel" parameter. Channels can be requested by their
name, once requested, the channel is registered and a pending thread is added to the test list.
diff --git a/Documentation/driver-api/firewire.rst b/Documentation/driver-api/firewire.rst
index 94a2d7f01d99..d3cfa73cbb2b 100644
--- a/Documentation/driver-api/firewire.rst
+++ b/Documentation/driver-api/firewire.rst
@@ -19,7 +19,7 @@ of kernel interfaces is available via exported symbols in `firewire-core` module
Firewire char device data structures
====================================
-.. include:: /ABI/stable/firewire-cdev
+.. include:: ../ABI/stable/firewire-cdev
:literal:
.. kernel-doc:: include/uapi/linux/firewire-cdev.h
@@ -28,7 +28,7 @@ Firewire char device data structures
Firewire device probing and sysfs interfaces
============================================
-.. include:: /ABI/stable/sysfs-bus-firewire
+.. include:: ../ABI/stable/sysfs-bus-firewire
:literal:
.. kernel-doc:: drivers/firewire/core-device.c
diff --git a/Documentation/firmware-guide/acpi/dsd/data-node-references.rst b/Documentation/firmware-guide/acpi/dsd/data-node-references.rst
index 9b17dc77d18c..da0e46496fc4 100644
--- a/Documentation/firmware-guide/acpi/dsd/data-node-references.rst
+++ b/Documentation/firmware-guide/acpi/dsd/data-node-references.rst
@@ -5,7 +5,7 @@
Referencing hierarchical data nodes
===================================
-:Copyright: |copy| 2018 Intel Corporation
+:Copyright: |copy| 2018, 2021 Intel Corporation
:Author: Sakari Ailus <sakari.ailus@linux.intel.com>
ACPI in general allows referring to device objects in the tree only.
@@ -52,12 +52,14 @@ the ANOD object which is also the final target node of the reference.
Name (NOD0, Package() {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
+ Package () { "reg", 0 },
Package () { "random-property", 3 },
}
})
Name (NOD1, Package() {
ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
Package () {
+ Package () { "reg", 1 },
Package () { "anothernode", "ANOD" },
}
})
@@ -74,7 +76,11 @@ the ANOD object which is also the final target node of the reference.
Name (_DSD, Package () {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package () {
- Package () { "reference", ^DEV0, "node@1", "anothernode" },
+ Package () {
+ "reference", Package () {
+ ^DEV0, "node@1", "anothernode"
+ }
+ },
}
})
}
diff --git a/Makefile b/Makefile
index 993559750df9..1071ec486aa5 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 10
-SUBLEVEL = 93
+SUBLEVEL = 94
EXTRAVERSION =
NAME = Dare mighty things
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 8986a91a6f31..dd1cf7035398 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -400,12 +400,12 @@ choice
Say Y here if you want kernel low-level debugging support
on i.MX25.
- config DEBUG_IMX21_IMX27_UART
- bool "i.MX21 and i.MX27 Debug UART"
- depends on SOC_IMX21 || SOC_IMX27
+ config DEBUG_IMX27_UART
+ bool "i.MX27 Debug UART"
+ depends on SOC_IMX27
help
Say Y here if you want kernel low-level debugging support
- on i.MX21 or i.MX27.
+ on i.MX27.
config DEBUG_IMX28_UART
bool "i.MX28 Debug UART"
@@ -1523,7 +1523,7 @@ config DEBUG_IMX_UART_PORT
int "i.MX Debug UART Port Selection"
depends on DEBUG_IMX1_UART || \
DEBUG_IMX25_UART || \
- DEBUG_IMX21_IMX27_UART || \
+ DEBUG_IMX27_UART || \
DEBUG_IMX31_UART || \
DEBUG_IMX35_UART || \
DEBUG_IMX50_UART || \
@@ -1591,12 +1591,12 @@ config DEBUG_LL_INCLUDE
default "debug/icedcc.S" if DEBUG_ICEDCC
default "debug/imx.S" if DEBUG_IMX1_UART || \
DEBUG_IMX25_UART || \
- DEBUG_IMX21_IMX27_UART || \
+ DEBUG_IMX27_UART || \
DEBUG_IMX31_UART || \
DEBUG_IMX35_UART || \
DEBUG_IMX50_UART || \
DEBUG_IMX51_UART || \
- DEBUG_IMX53_UART ||\
+ DEBUG_IMX53_UART || \
DEBUG_IMX6Q_UART || \
DEBUG_IMX6SL_UART || \
DEBUG_IMX6SX_UART || \
diff --git a/arch/arm/boot/compressed/efi-header.S b/arch/arm/boot/compressed/efi-header.S
index c0e7a745103e..230030c13085 100644
--- a/arch/arm/boot/compressed/efi-header.S
+++ b/arch/arm/boot/compressed/efi-header.S
@@ -9,16 +9,22 @@
#include <linux/sizes.h>
.macro __nop
-#ifdef CONFIG_EFI_STUB
- @ This is almost but not quite a NOP, since it does clobber the
- @ condition flags. But it is the best we can do for EFI, since
- @ PE/COFF expects the magic string "MZ" at offset 0, while the
- @ ARM/Linux boot protocol expects an executable instruction
- @ there.
- .inst MZ_MAGIC | (0x1310 << 16) @ tstne r0, #0x4d000
-#else
AR_CLASS( mov r0, r0 )
M_CLASS( nop.w )
+ .endm
+
+ .macro __initial_nops
+#ifdef CONFIG_EFI_STUB
+ @ This is a two-instruction NOP, which happens to bear the
+ @ PE/COFF signature "MZ" in the first two bytes, so the kernel
+ @ is accepted as an EFI binary. Booting via the UEFI stub
+ @ will not execute those instructions, but the ARM/Linux
+ @ boot protocol does, so we need some NOPs here.
+ .inst MZ_MAGIC | (0xe225 << 16) @ eor r5, r5, 0x4d000
+ eor r5, r5, 0x4d000 @ undo previous insn
+#else
+ __nop
+ __nop
#endif
.endm
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 247ce9055990..7a38c63b62bf 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -190,7 +190,8 @@ start:
* were patching the initial instructions of the kernel, i.e
* had started to exploit this "patch area".
*/
- .rept 7
+ __initial_nops
+ .rept 5
__nop
.endr
#ifndef CONFIG_THUMB2_KERNEL
diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
index 9b1a24cc5e91..df3c8d1d8f64 100644
--- a/arch/arm/boot/dts/armada-38x.dtsi
+++ b/arch/arm/boot/dts/armada-38x.dtsi
@@ -168,7 +168,7 @@ i2c1: i2c@11100 {
};
uart0: serial@12000 {
- compatible = "marvell,armada-38x-uart";
+ compatible = "marvell,armada-38x-uart", "ns16550a";
reg = <0x12000 0x100>;
reg-shift = <2>;
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
@@ -178,7 +178,7 @@ uart0: serial@12000 {
};
uart1: serial@12100 {
- compatible = "marvell,armada-38x-uart";
+ compatible = "marvell,armada-38x-uart", "ns16550a";
reg = <0x12100 0x100>;
reg-shift = <2>;
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/gemini-nas4220b.dts b/arch/arm/boot/dts/gemini-nas4220b.dts
index 13112a8a5dd8..6544c730340f 100644
--- a/arch/arm/boot/dts/gemini-nas4220b.dts
+++ b/arch/arm/boot/dts/gemini-nas4220b.dts
@@ -84,7 +84,7 @@ flash@30000000 {
partitions {
compatible = "redboot-fis";
/* Eraseblock at 0xfe0000 */
- fis-index-block = <0x1fc>;
+ fis-index-block = <0x7f>;
};
};
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
index 32335d4ce478..d40c3d2c4914 100644
--- a/arch/arm/boot/dts/omap3-n900.dts
+++ b/arch/arm/boot/dts/omap3-n900.dts
@@ -8,6 +8,7 @@
#include "omap34xx.dtsi"
#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
/*
* Default secure signed bootloader (Nokia X-Loader) does not enable L3 firewall
@@ -630,63 +631,92 @@ indicator {
};
lp5523: lp5523@32 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "national,lp5523";
reg = <0x32>;
clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
- enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
+ enable-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
- chan0 {
+ led@0 {
+ reg = <0>;
chan-name = "lp5523:kb1";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan1 {
+ led@1 {
+ reg = <1>;
chan-name = "lp5523:kb2";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan2 {
+ led@2 {
+ reg = <2>;
chan-name = "lp5523:kb3";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan3 {
+ led@3 {
+ reg = <3>;
chan-name = "lp5523:kb4";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan4 {
+ led@4 {
+ reg = <4>;
chan-name = "lp5523:b";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_BLUE>;
+ function = LED_FUNCTION_STATUS;
};
- chan5 {
+ led@5 {
+ reg = <5>;
chan-name = "lp5523:g";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_STATUS;
};
- chan6 {
+ led@6 {
+ reg = <6>;
chan-name = "lp5523:r";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_RED>;
+ function = LED_FUNCTION_STATUS;
};
- chan7 {
+ led@7 {
+ reg = <7>;
chan-name = "lp5523:kb5";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
- chan8 {
+ led@8 {
+ reg = <8>;
chan-name = "lp5523:kb6";
led-cur = /bits/ 8 <50>;
max-cur = /bits/ 8 <100>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_KBD_BACKLIGHT;
};
};
diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts
index 075ac57d0bf4..6435e099c632 100644
--- a/arch/arm/boot/dts/stm32f429-disco.dts
+++ b/arch/arm/boot/dts/stm32f429-disco.dts
@@ -192,7 +192,7 @@ l3gd20: l3gd20@0 {
display: display@1{
/* Connect panel-ilitek-9341 to ltdc */
- compatible = "st,sf-tc240t-9370-t";
+ compatible = "st,sf-tc240t-9370-t", "ilitek,ili9341";
reg = <1>;
spi-3wire;
spi-max-frequency = <10000000>;
diff --git a/arch/arm/include/debug/imx-uart.h b/arch/arm/include/debug/imx-uart.h
index c8eb83d4b896..3edbb3c5b42b 100644
--- a/arch/arm/include/debug/imx-uart.h
+++ b/arch/arm/include/debug/imx-uart.h
@@ -11,13 +11,6 @@
#define IMX1_UART_BASE_ADDR(n) IMX1_UART##n##_BASE_ADDR
#define IMX1_UART_BASE(n) IMX1_UART_BASE_ADDR(n)
-#define IMX21_UART1_BASE_ADDR 0x1000a000
-#define IMX21_UART2_BASE_ADDR 0x1000b000
-#define IMX21_UART3_BASE_ADDR 0x1000c000
-#define IMX21_UART4_BASE_ADDR 0x1000d000
-#define IMX21_UART_BASE_ADDR(n) IMX21_UART##n##_BASE_ADDR
-#define IMX21_UART_BASE(n) IMX21_UART_BASE_ADDR(n)
-
#define IMX25_UART1_BASE_ADDR 0x43f90000
#define IMX25_UART2_BASE_ADDR 0x43f94000
#define IMX25_UART3_BASE_ADDR 0x5000c000
@@ -26,6 +19,13 @@
#define IMX25_UART_BASE_ADDR(n) IMX25_UART##n##_BASE_ADDR
#define IMX25_UART_BASE(n) IMX25_UART_BASE_ADDR(n)
+#define IMX27_UART1_BASE_ADDR 0x1000a000
+#define IMX27_UART2_BASE_ADDR 0x1000b000
+#define IMX27_UART3_BASE_ADDR 0x1000c000
+#define IMX27_UART4_BASE_ADDR 0x1000d000
+#define IMX27_UART_BASE_ADDR(n) IMX27_UART##n##_BASE_ADDR
+#define IMX27_UART_BASE(n) IMX27_UART_BASE_ADDR(n)
+
#define IMX31_UART1_BASE_ADDR 0x43f90000
#define IMX31_UART2_BASE_ADDR 0x43f94000
#define IMX31_UART3_BASE_ADDR 0x5000c000
@@ -112,10 +112,10 @@
#ifdef CONFIG_DEBUG_IMX1_UART
#define UART_PADDR IMX_DEBUG_UART_BASE(IMX1)
-#elif defined(CONFIG_DEBUG_IMX21_IMX27_UART)
-#define UART_PADDR IMX_DEBUG_UART_BASE(IMX21)
#elif defined(CONFIG_DEBUG_IMX25_UART)
#define UART_PADDR IMX_DEBUG_UART_BASE(IMX25)
+#elif defined(CONFIG_DEBUG_IMX27_UART)
+#define UART_PADDR IMX_DEBUG_UART_BASE(IMX27)
#elif defined(CONFIG_DEBUG_IMX31_UART)
#define UART_PADDR IMX_DEBUG_UART_BASE(IMX31)
#elif defined(CONFIG_DEBUG_IMX35_UART)
diff --git a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
index ee949255ced3..09ef73b99dd8 100644
--- a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
+++ b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
@@ -154,8 +154,10 @@ static int __init rcar_gen2_regulator_quirk(void)
return -ENODEV;
for_each_matching_node_and_match(np, rcar_gen2_quirk_match, &id) {
- if (!of_device_is_available(np))
+ if (!of_device_is_available(np)) {
+ of_node_put(np);
break;
+ }
ret = of_property_read_u32(np, "reg", &addr);
if (ret) /* Skip invalid entry and continue */
@@ -164,6 +166,7 @@ static int __init rcar_gen2_regulator_quirk(void)
quirk = kzalloc(sizeof(*quirk), GFP_KERNEL);
if (!quirk) {
ret = -ENOMEM;
+ of_node_put(np);
goto err_mem;
}
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
index 959b299344e5..7342c8a2b322 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -52,7 +52,7 @@ efuse: efuse {
secure-monitor = <&sm>;
};
- gpu_opp_table: gpu-opp-table {
+ gpu_opp_table: opp-table-gpu {
compatible = "operating-points-v2";
opp-124999998 {
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
index 59b5f3908875..b9b8cd4b5ba9 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
@@ -543,7 +543,7 @@ &spifc {
pinctrl-0 = <&nor_pins>;
pinctrl-names = "default";
- mx25u64: spi-flash@0 {
+ mx25u64: flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "mxicy,mx25u6435f", "jedec,spi-nor";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
index a350fee1264d..a4d34398da35 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
@@ -6,6 +6,7 @@
*/
#include "meson-gxbb.dtsi"
+#include <dt-bindings/gpio/gpio.h>
/ {
aliases {
@@ -64,6 +65,7 @@ vddio_ao18: regulator-vddio_ao18 {
regulator-name = "VDDIO_AO18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-always-on;
};
vcc_3v3: regulator-vcc_3v3 {
@@ -161,6 +163,7 @@ &hdmi_tx {
status = "okay";
pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
pinctrl-names = "default";
+ hdmi-supply = <&vddio_ao18>;
};
&hdmi_tx_tmds_port {
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
index 13cdc958ba3e..71858c9376c2 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
@@ -261,11 +261,6 @@ temperature-sensor@4c {
vcc-supply = <&sb_3v3>;
};
- rtc@51 {
- compatible = "nxp,pcf2129";
- reg = <0x51>;
- };
-
eeprom@56 {
compatible = "atmel,24c512";
reg = <0x56>;
@@ -307,6 +302,15 @@ mux: mux-controller {
};
+&i2c1 {
+ status = "okay";
+
+ rtc@51 {
+ compatible = "nxp,pcf2129";
+ reg = <0x51>;
+ };
+};
+
&enetc_port1 {
phy-handle = <&qds_phy1>;
phy-connection-type = "rgmii-id";
diff --git a/arch/arm64/boot/dts/marvell/cn9130.dtsi b/arch/arm64/boot/dts/marvell/cn9130.dtsi
index a2b7e5ec979d..327b04134134 100644
--- a/arch/arm64/boot/dts/marvell/cn9130.dtsi
+++ b/arch/arm64/boot/dts/marvell/cn9130.dtsi
@@ -11,6 +11,13 @@ / {
model = "Marvell Armada CN9130 SoC";
compatible = "marvell,cn9130", "marvell,armada-ap807-quad",
"marvell,armada-ap807";
+
+ aliases {
+ gpio1 = &cp0_gpio1;
+ gpio2 = &cp0_gpio2;
+ spi1 = &cp0_spi0;
+ spi2 = &cp0_spi1;
+ };
};
/*
@@ -35,3 +42,11 @@ / {
#undef CP11X_PCIE0_BASE
#undef CP11X_PCIE1_BASE
#undef CP11X_PCIE2_BASE
+
+&cp0_gpio1 {
+ status = "okay";
+};
+
+&cp0_gpio2 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/nvidia/tegra186.dtsi b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
index 0c46ab7bbbf3..eec6418ecdb1 100644
--- a/arch/arm64/boot/dts/nvidia/tegra186.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
@@ -985,7 +985,7 @@ sdmmc3_1v8: sdmmc3-1v8 {
ccplex@e000000 {
compatible = "nvidia,tegra186-ccplex-cluster";
- reg = <0x0 0x0e000000 0x0 0x3fffff>;
+ reg = <0x0 0x0e000000 0x0 0x400000>;
nvidia,bpmp = <&bpmp>;
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
index 9b5007e5f790..05cf606b85c9 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
@@ -782,13 +782,12 @@ hda@3510000 {
reg = <0x3510000 0x10000>;
interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&bpmp TEGRA194_CLK_HDA>,
- <&bpmp TEGRA194_CLK_HDA2CODEC_2X>,
- <&bpmp TEGRA194_CLK_HDA2HDMICODEC>;
- clock-names = "hda", "hda2codec_2x", "hda2hdmi";
+ <&bpmp TEGRA194_CLK_HDA2HDMICODEC>,
+ <&bpmp TEGRA194_CLK_HDA2CODEC_2X>;
+ clock-names = "hda", "hda2hdmi", "hda2codec_2x";
resets = <&bpmp TEGRA194_RESET_HDA>,
- <&bpmp TEGRA194_RESET_HDA2CODEC_2X>,
<&bpmp TEGRA194_RESET_HDA2HDMICODEC>;
- reset-names = "hda", "hda2codec_2x", "hda2hdmi";
+ reset-names = "hda", "hda2hdmi";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_DISP>;
interconnects = <&mc TEGRA194_MEMORY_CLIENT_HDAR &emc>,
<&mc TEGRA194_MEMORY_CLIENT_HDAW &emc>;
diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
index 9cb8f7a052df..2a1f03cdb52c 100644
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
@@ -221,7 +221,7 @@ tlmm: pinctrl@1000000 {
interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
- gpio-ranges = <&tlmm 0 80>;
+ gpio-ranges = <&tlmm 0 0 80>;
interrupt-controller;
#interrupt-cells = <2>;
diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
index b1ffc056eea0..291276a38d7c 100644
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -18,8 +18,8 @@ / {
#size-cells = <2>;
aliases {
- sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
- sdhc2 = &sdhc_2; /* SDC2 SD card slot */
+ mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+ mmc1 = &sdhc_2; /* SDC2 SD card slot */
};
chosen { };
diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index eef17434d12a..ef5d03a15069 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -645,9 +645,6 @@ gpu@b00000 {
nvmem-cells = <&gpu_speed_bin>;
nvmem-cell-names = "speed_bin";
- qcom,gpu-quirk-two-pass-use-wfi;
- qcom,gpu-quirk-fault-detect-mask;
-
operating-points-v2 = <&gpu_opp_table>;
gpu_opp_table: opp-table {
diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
index ad6561843ba2..e080c317b5e3 100644
--- a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
+++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
@@ -365,6 +365,10 @@ dai@0 {
dai@1 {
reg = <1>;
};
+
+ dai@2 {
+ reg = <2>;
+ };
};
&sound {
@@ -377,6 +381,7 @@ &sound {
"SpkrLeft IN", "SPK1 OUT",
"SpkrRight IN", "SPK2 OUT",
"MM_DL1", "MultiMedia1 Playback",
+ "MM_DL3", "MultiMedia3 Playback",
"MultiMedia2 Capture", "MM_UL2";
mm1-dai-link {
@@ -393,6 +398,13 @@ cpu {
};
};
+ mm3-dai-link {
+ link-name = "MultiMedia3";
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
+ };
+ };
+
slim-dai-link {
link-name = "SLIM Playback";
cpu {
@@ -422,6 +434,21 @@ codec {
sound-dai = <&wcd9340 1>;
};
};
+
+ slim-wcd-dai-link {
+ link-name = "SLIM WCD Playback";
+ cpu {
+ sound-dai = <&q6afedai SLIMBUS_1_RX>;
+ };
+
+ platform {
+ sound-dai = <&q6routing>;
+ };
+
+ codec {
+ sound-dai = <&wcd9340 2>;
+ };
+ };
};
&tlmm {
diff --git a/arch/arm64/boot/dts/renesas/cat875.dtsi b/arch/arm64/boot/dts/renesas/cat875.dtsi
index 801ea54b027c..20f8adc635e7 100644
--- a/arch/arm64/boot/dts/renesas/cat875.dtsi
+++ b/arch/arm64/boot/dts/renesas/cat875.dtsi
@@ -18,6 +18,7 @@ &avb {
pinctrl-names = "default";
renesas,no-ether-link;
phy-handle = <&phy0>;
+ phy-mode = "rgmii-id";
status = "okay";
phy0: ethernet-phy@0 {
diff --git a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
index 5832ad830ed1..1ab9f9604af6 100644
--- a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
@@ -25,7 +25,7 @@ scm_conf: scm-conf@100000 {
#size-cells = <1>;
ranges = <0x00 0x00 0x00100000 0x1c000>;
- serdes_ln_ctrl: serdes-ln-ctrl@4080 {
+ serdes_ln_ctrl: mux-controller@4080 {
compatible = "mmio-mux";
#mux-control-cells = <1>;
mux-reg-masks = <0x4080 0x3>, <0x4084 0x3>, /* SERDES0 lane0/1 select */
diff --git a/arch/arm64/boot/dts/ti/k3-j7200.dtsi b/arch/arm64/boot/dts/ti/k3-j7200.dtsi
index 66169bcf7c9a..03a9623f0f95 100644
--- a/arch/arm64/boot/dts/ti/k3-j7200.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j7200.dtsi
@@ -60,7 +60,7 @@ cpu0: cpu@0 {
i-cache-sets = <256>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
- d-cache-sets = <128>;
+ d-cache-sets = <256>;
next-level-cache = <&L2_0>;
};
@@ -74,7 +74,7 @@ cpu1: cpu@1 {
i-cache-sets = <256>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
- d-cache-sets = <128>;
+ d-cache-sets = <256>;
next-level-cache = <&L2_0>;
};
};
@@ -84,7 +84,7 @@ L2_0: l2-cache0 {
cache-level = <2>;
cache-size = <0x100000>;
cache-line-size = <64>;
- cache-sets = <2048>;
+ cache-sets = <1024>;
next-level-cache = <&msmc_l3>;
};
diff --git a/arch/arm64/boot/dts/ti/k3-j721e.dtsi b/arch/arm64/boot/dts/ti/k3-j721e.dtsi
index cc483f7344af..a199227327ed 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j721e.dtsi
@@ -61,7 +61,7 @@ cpu0: cpu@0 {
i-cache-sets = <256>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
- d-cache-sets = <128>;
+ d-cache-sets = <256>;
next-level-cache = <&L2_0>;
};
@@ -75,7 +75,7 @@ cpu1: cpu@1 {
i-cache-sets = <256>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
- d-cache-sets = <128>;
+ d-cache-sets = <256>;
next-level-cache = <&L2_0>;
};
};
@@ -85,7 +85,7 @@ L2_0: l2-cache0 {
cache-level = <2>;
cache-size = <0x100000>;
cache-line-size = <64>;
- cache-sets = <2048>;
+ cache-sets = <1024>;
next-level-cache = <&msmc_l3>;
};
diff --git a/arch/arm64/lib/clear_page.S b/arch/arm64/lib/clear_page.S
index 073acbf02a7c..1fd5d790ab80 100644
--- a/arch/arm64/lib/clear_page.S
+++ b/arch/arm64/lib/clear_page.S
@@ -14,8 +14,9 @@
* Parameters:
* x0 - dest
*/
-SYM_FUNC_START(clear_page)
+SYM_FUNC_START_PI(clear_page)
mrs x1, dczid_el0
+ tbnz x1, #4, 2f /* Branch if DC ZVA is prohibited */
and w1, w1, #0xf
mov x2, #4
lsl x1, x2, x1
@@ -25,5 +26,14 @@ SYM_FUNC_START(clear_page)
tst x0, #(PAGE_SIZE - 1)
b.ne 1b
ret
-SYM_FUNC_END(clear_page)
+
+2: stnp xzr, xzr, [x0]
+ stnp xzr, xzr, [x0, #16]
+ stnp xzr, xzr, [x0, #32]
+ stnp xzr, xzr, [x0, #48]
+ add x0, x0, #64
+ tst x0, #(PAGE_SIZE - 1)
+ b.ne 2b
+ ret
+SYM_FUNC_END_PI(clear_page)
EXPORT_SYMBOL(clear_page)
diff --git a/arch/arm64/lib/copy_page.S b/arch/arm64/lib/copy_page.S
index e7a793961408..29144f4cd449 100644
--- a/arch/arm64/lib/copy_page.S
+++ b/arch/arm64/lib/copy_page.S
@@ -17,7 +17,7 @@
* x0 - dest
* x1 - src
*/
-SYM_FUNC_START(copy_page)
+SYM_FUNC_START_PI(copy_page)
alternative_if ARM64_HAS_NO_HW_PREFETCH
// Prefetch three cache lines ahead.
prfm pldl1strm, [x1, #128]
@@ -75,5 +75,5 @@ alternative_else_nop_endif
stnp x16, x17, [x0, #112 - 256]
ret
-SYM_FUNC_END(copy_page)
+SYM_FUNC_END_PI(copy_page)
EXPORT_SYMBOL(copy_page)
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 23d756fe0fd6..3442bdd4314c 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1985,6 +1985,10 @@ config SYS_HAS_CPU_MIPS64_R1
config SYS_HAS_CPU_MIPS64_R2
bool
+config SYS_HAS_CPU_MIPS64_R5
+ bool
+ select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
+
config SYS_HAS_CPU_MIPS64_R6
bool
select ARCH_HAS_SYNC_DMA_FOR_CPU if DMA_NONCOHERENT
@@ -2146,7 +2150,7 @@ config CPU_SUPPORTS_ADDRWINCFG
bool
config CPU_SUPPORTS_HUGEPAGES
bool
- depends on !(32BIT && (ARCH_PHYS_ADDR_T_64BIT || EVA))
+ depends on !(32BIT && (PHYS_ADDR_T_64BIT || EVA))
config MIPS_PGD_C0_CONTEXT
bool
default y if 64BIT && (CPU_MIPSR2 || CPU_MIPSR6) && !CPU_XLP
diff --git a/arch/mips/bcm63xx/clk.c b/arch/mips/bcm63xx/clk.c
index aba6e2d6a736..dcfa0ea912fe 100644
--- a/arch/mips/bcm63xx/clk.c
+++ b/arch/mips/bcm63xx/clk.c
@@ -387,6 +387,12 @@ struct clk *clk_get_parent(struct clk *clk)
}
EXPORT_SYMBOL(clk_get_parent);
+int clk_set_parent(struct clk *clk, struct clk *parent)
+{
+ return 0;
+}
+EXPORT_SYMBOL(clk_set_parent);
+
unsigned long clk_get_rate(struct clk *clk)
{
if (!clk)
diff --git a/arch/mips/cavium-octeon/octeon-platform.c b/arch/mips/cavium-octeon/octeon-platform.c
index d56e9b9d2e43..a994022e32c9 100644
--- a/arch/mips/cavium-octeon/octeon-platform.c
+++ b/arch/mips/cavium-octeon/octeon-platform.c
@@ -328,6 +328,7 @@ static int __init octeon_ehci_device_init(void)
pd->dev.platform_data = &octeon_ehci_pdata;
octeon_ehci_hw_start(&pd->dev);
+ put_device(&pd->dev);
return ret;
}
@@ -391,6 +392,7 @@ static int __init octeon_ohci_device_init(void)
pd->dev.platform_data = &octeon_ohci_pdata;
octeon_ohci_hw_start(&pd->dev);
+ put_device(&pd->dev);
return ret;
}
diff --git a/arch/mips/cavium-octeon/octeon-usb.c b/arch/mips/cavium-octeon/octeon-usb.c
index 950e6c6e8629..fa87e5aa1811 100644
--- a/arch/mips/cavium-octeon/octeon-usb.c
+++ b/arch/mips/cavium-octeon/octeon-usb.c
@@ -544,6 +544,7 @@ static int __init dwc3_octeon_device_init(void)
devm_iounmap(&pdev->dev, base);
devm_release_mem_region(&pdev->dev, res->start,
resource_size(res));
+ put_device(&pdev->dev);
}
} while (node != NULL);
diff --git a/arch/mips/include/asm/mach-loongson64/kernel-entry-init.h b/arch/mips/include/asm/mach-loongson64/kernel-entry-init.h
index 87a5bfbf8cfe..28572ddfb004 100644
--- a/arch/mips/include/asm/mach-loongson64/kernel-entry-init.h
+++ b/arch/mips/include/asm/mach-loongson64/kernel-entry-init.h
@@ -36,7 +36,7 @@
nop
/* Loongson-3A R2/R3 */
andi t0, (PRID_IMP_MASK | PRID_REV_MASK)
- slti t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
+ slti t0, t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
bnez t0, 2f
nop
1:
@@ -71,7 +71,7 @@
nop
/* Loongson-3A R2/R3 */
andi t0, (PRID_IMP_MASK | PRID_REV_MASK)
- slti t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
+ slti t0, t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
bnez t0, 2f
nop
1:
diff --git a/arch/mips/include/asm/octeon/cvmx-bootinfo.h b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
index c114a7ba0bad..e77e8b7c0083 100644
--- a/arch/mips/include/asm/octeon/cvmx-bootinfo.h
+++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
@@ -317,7 +317,7 @@ enum cvmx_chip_types_enum {
/* Functions to return string based on type */
#define ENUM_BRD_TYPE_CASE(x) \
- case x: return(#x + 16); /* Skip CVMX_BOARD_TYPE_ */
+ case x: return (&#x[16]); /* Skip CVMX_BOARD_TYPE_ */
static inline const char *cvmx_board_type_to_string(enum
cvmx_board_types_enum type)
{
@@ -408,7 +408,7 @@ static inline const char *cvmx_board_type_to_string(enum
}
#define ENUM_CHIP_TYPE_CASE(x) \
- case x: return(#x + 15); /* Skip CVMX_CHIP_TYPE */
+ case x: return (&#x[15]); /* Skip CVMX_CHIP_TYPE */
static inline const char *cvmx_chip_type_to_string(enum
cvmx_chip_types_enum type)
{
diff --git a/arch/mips/lantiq/clk.c b/arch/mips/lantiq/clk.c
index 4916cccf378f..7a623684d9b5 100644
--- a/arch/mips/lantiq/clk.c
+++ b/arch/mips/lantiq/clk.c
@@ -164,6 +164,12 @@ struct clk *clk_get_parent(struct clk *clk)
}
EXPORT_SYMBOL(clk_get_parent);
+int clk_set_parent(struct clk *clk, struct clk *parent)
+{
+ return 0;
+}
+EXPORT_SYMBOL(clk_set_parent);
+
static inline u32 get_counter_resolution(void)
{
u32 res;
diff --git a/arch/openrisc/include/asm/syscalls.h b/arch/openrisc/include/asm/syscalls.h
index 3a7eeae6f56a..aa1c7e98722e 100644
--- a/arch/openrisc/include/asm/syscalls.h
+++ b/arch/openrisc/include/asm/syscalls.h
@@ -22,9 +22,11 @@ asmlinkage long sys_or1k_atomic(unsigned long type, unsigned long *v1,
asmlinkage long __sys_clone(unsigned long clone_flags, unsigned long newsp,
void __user *parent_tid, void __user *child_tid, int tls);
+asmlinkage long __sys_clone3(struct clone_args __user *uargs, size_t size);
asmlinkage long __sys_fork(void);
#define sys_clone __sys_clone
+#define sys_clone3 __sys_clone3
#define sys_fork __sys_fork
#endif /* __ASM_OPENRISC_SYSCALLS_H */
diff --git a/arch/openrisc/kernel/entry.S b/arch/openrisc/kernel/entry.S
index 98e4f97db515..b42d32d79b2e 100644
--- a/arch/openrisc/kernel/entry.S
+++ b/arch/openrisc/kernel/entry.S
@@ -1170,6 +1170,11 @@ ENTRY(__sys_clone)
l.j _fork_save_extra_regs_and_call
l.nop
+ENTRY(__sys_clone3)
+ l.movhi r29,hi(sys_clone3)
+ l.j _fork_save_extra_regs_and_call
+ l.ori r29,r29,lo(sys_clone3)
+
ENTRY(__sys_fork)
l.movhi r29,hi(sys_fork)
l.ori r29,r29,lo(sys_fork)
diff --git a/arch/parisc/include/asm/special_insns.h b/arch/parisc/include/asm/special_insns.h
index a303ae9a77f4..16ee41e77174 100644
--- a/arch/parisc/include/asm/special_insns.h
+++ b/arch/parisc/include/asm/special_insns.h
@@ -2,28 +2,32 @@
#ifndef __PARISC_SPECIAL_INSNS_H
#define __PARISC_SPECIAL_INSNS_H
-#define lpa(va) ({ \
- unsigned long pa; \
- __asm__ __volatile__( \
- "copy %%r0,%0\n\t" \
- "lpa %%r0(%1),%0" \
- : "=r" (pa) \
- : "r" (va) \
- : "memory" \
- ); \
- pa; \
+#define lpa(va) ({ \
+ unsigned long pa; \
+ __asm__ __volatile__( \
+ "copy %%r0,%0\n" \
+ "8:\tlpa %%r0(%1),%0\n" \
+ "9:\n" \
+ ASM_EXCEPTIONTABLE_ENTRY(8b, 9b) \
+ : "=&r" (pa) \
+ : "r" (va) \
+ : "memory" \
+ ); \
+ pa; \
})
-#define lpa_user(va) ({ \
- unsigned long pa; \
- __asm__ __volatile__( \
- "copy %%r0,%0\n\t" \
- "lpa %%r0(%%sr3,%1),%0" \
- : "=r" (pa) \
- : "r" (va) \
- : "memory" \
- ); \
- pa; \
+#define lpa_user(va) ({ \
+ unsigned long pa; \
+ __asm__ __volatile__( \
+ "copy %%r0,%0\n" \
+ "8:\tlpa %%r0(%%sr3,%1),%0\n" \
+ "9:\n" \
+ ASM_EXCEPTIONTABLE_ENTRY(8b, 9b) \
+ : "=&r" (pa) \
+ : "r" (va) \
+ : "memory" \
+ ); \
+ pa; \
})
#define mfctl(reg) ({ \
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
index 43f56335759a..269b737d2629 100644
--- a/arch/parisc/kernel/traps.c
+++ b/arch/parisc/kernel/traps.c
@@ -784,7 +784,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
* unless pagefault_disable() was called before.
*/
- if (fault_space == 0 && !faulthandler_disabled())
+ if (faulthandler_disabled() || fault_space == 0)
{
/* Clean up and return if in exception table. */
if (fixup_exception(regs))
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
index c90702b04a53..48e5cd61599c 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi
@@ -79,6 +79,7 @@ mdio0: mdio@fc000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xfc000 0x1000>;
+ fsl,erratum-a009885;
};
xmdio0: mdio@fd000 {
@@ -86,6 +87,7 @@ xmdio0: mdio@fd000 {
#size-cells = <0>;
compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
reg = <0xfd000 0x1000>;
+ fsl,erratum-a009885;
};
};
diff --git a/arch/powerpc/include/asm/cpu_setup_power.h b/arch/powerpc/include/asm/cpu_setup_power.h
new file mode 100644
index 000000000000..24be9131f803
--- /dev/null
+++ b/arch/powerpc/include/asm/cpu_setup_power.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (C) 2020 IBM Corporation
+ */
+void __setup_cpu_power7(unsigned long offset, struct cpu_spec *spec);
+void __restore_cpu_power7(void);
+void __setup_cpu_power8(unsigned long offset, struct cpu_spec *spec);
+void __restore_cpu_power8(void);
+void __setup_cpu_power9(unsigned long offset, struct cpu_spec *spec);
+void __restore_cpu_power9(void);
+void __setup_cpu_power10(unsigned long offset, struct cpu_spec *spec);
+void __restore_cpu_power10(void);
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h
index 0363734ff56e..0f2acbb96674 100644
--- a/arch/powerpc/include/asm/hw_irq.h
+++ b/arch/powerpc/include/asm/hw_irq.h
@@ -38,6 +38,8 @@
#define PACA_IRQ_MUST_HARD_MASK (PACA_IRQ_EE)
#endif
+#endif /* CONFIG_PPC64 */
+
/*
* flags for paca->irq_soft_mask
*/
@@ -46,8 +48,6 @@
#define IRQS_PMI_DISABLED 2
#define IRQS_ALL_DISABLED (IRQS_DISABLED | IRQS_PMI_DISABLED)
-#endif /* CONFIG_PPC64 */
-
#ifndef __ASSEMBLY__
extern void replay_system_reset(void);
@@ -175,6 +175,42 @@ static inline bool arch_irqs_disabled(void)
return arch_irqs_disabled_flags(arch_local_save_flags());
}
+static inline void set_pmi_irq_pending(void)
+{
+ /*
+ * Invoked from PMU callback functions to set PMI bit in the paca.
+ * This has to be called with irq's disabled (via hard_irq_disable()).
+ */
+ if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG))
+ WARN_ON_ONCE(mfmsr() & MSR_EE);
+
+ get_paca()->irq_happened |= PACA_IRQ_PMI;
+}
+
+static inline void clear_pmi_irq_pending(void)
+{
+ /*
+ * Invoked from PMU callback functions to clear the pending PMI bit
+ * in the paca.
+ */
+ if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG))
+ WARN_ON_ONCE(mfmsr() & MSR_EE);
+
+ get_paca()->irq_happened &= ~PACA_IRQ_PMI;
+}
+
+static inline bool pmi_irq_pending(void)
+{
+ /*
+ * Invoked from PMU callback functions to check if there is a pending
+ * PMI bit in the paca.
+ */
+ if (get_paca()->irq_happened & PACA_IRQ_PMI)
+ return true;
+
+ return false;
+}
+
#ifdef CONFIG_PPC_BOOK3S
/*
* To support disabling and enabling of irq with PMI, set of
@@ -296,6 +332,10 @@ extern void irq_set_pending_from_srr1(unsigned long srr1);
extern void force_external_irq_replay(void);
+static inline void irq_soft_mask_regs_set_state(struct pt_regs *regs, unsigned long val)
+{
+ regs->softe = val;
+}
#else /* CONFIG_PPC64 */
static inline unsigned long arch_local_save_flags(void)
@@ -364,6 +404,13 @@ static inline bool arch_irq_disabled_regs(struct pt_regs *regs)
static inline void may_hard_irq_enable(void) { }
+static inline void clear_pmi_irq_pending(void) { }
+static inline void set_pmi_irq_pending(void) { }
+static inline bool pmi_irq_pending(void) { return false; }
+
+static inline void irq_soft_mask_regs_set_state(struct pt_regs *regs, unsigned long val)
+{
+}
#endif /* CONFIG_PPC64 */
#define ARCH_IRQ_INIT_FLAGS IRQ_NOREQUEST
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
index f4b98903064f..6afb14b6bbc2 100644
--- a/arch/powerpc/include/asm/reg.h
+++ b/arch/powerpc/include/asm/reg.h
@@ -865,6 +865,7 @@
#define MMCR0_BHRBA 0x00200000UL /* BHRB Access allowed in userspace */
#define MMCR0_EBE 0x00100000UL /* Event based branch enable */
#define MMCR0_PMCC 0x000c0000UL /* PMC control */
+#define MMCR0_PMCCEXT ASM_CONST(0x00000200) /* PMCCEXT control */
#define MMCR0_PMCC_U6 0x00080000UL /* PMC1-6 are R/W by user (PR) */
#define MMCR0_PMC1CE 0x00008000UL /* PMC1 count enable*/
#define MMCR0_PMCjCE ASM_CONST(0x00004000) /* PMCj count enable*/
diff --git a/arch/powerpc/kernel/btext.c b/arch/powerpc/kernel/btext.c
index 803c2a45b22a..1cffb5e7c38d 100644
--- a/arch/powerpc/kernel/btext.c
+++ b/arch/powerpc/kernel/btext.c
@@ -241,8 +241,10 @@ int __init btext_find_display(int allow_nonstdout)
rc = btext_initialize(np);
printk("result: %d\n", rc);
}
- if (rc == 0)
+ if (rc == 0) {
+ of_node_put(np);
break;
+ }
}
return rc;
}
diff --git a/arch/powerpc/kernel/cpu_setup_power.S b/arch/powerpc/kernel/cpu_setup_power.S
deleted file mode 100644
index 704e8b9501ee..000000000000
--- a/arch/powerpc/kernel/cpu_setup_power.S
+++ /dev/null
@@ -1,252 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- * This file contains low level CPU setup functions.
- * Copyright (C) 2003 Benjamin Herrenschmidt (benh@kernel.crashing.org)
- */
-
-#include <asm/processor.h>
-#include <asm/page.h>
-#include <asm/cputable.h>
-#include <asm/ppc_asm.h>
-#include <asm/asm-offsets.h>
-#include <asm/cache.h>
-#include <asm/book3s/64/mmu-hash.h>
-
-/* Entry: r3 = crap, r4 = ptr to cputable entry
- *
- * Note that we can be called twice for pseudo-PVRs
- */
-_GLOBAL(__setup_cpu_power7)
- mflr r11
- bl __init_hvmode_206
- mtlr r11
- beqlr
- li r0,0
- mtspr SPRN_LPID,r0
- LOAD_REG_IMMEDIATE(r0, PCR_MASK)
- mtspr SPRN_PCR,r0
- mfspr r3,SPRN_LPCR
- li r4,(LPCR_LPES1 >> LPCR_LPES_SH)
- bl __init_LPCR_ISA206
- mtlr r11
- blr
-
-_GLOBAL(__restore_cpu_power7)
- mflr r11
- mfmsr r3
- rldicl. r0,r3,4,63
- beqlr
- li r0,0
- mtspr SPRN_LPID,r0
- LOAD_REG_IMMEDIATE(r0, PCR_MASK)
- mtspr SPRN_PCR,r0
- mfspr r3,SPRN_LPCR
- li r4,(LPCR_LPES1 >> LPCR_LPES_SH)
- bl __init_LPCR_ISA206
- mtlr r11
- blr
-
-_GLOBAL(__setup_cpu_power8)
- mflr r11
- bl __init_FSCR
- bl __init_PMU
- bl __init_PMU_ISA207
- bl __init_hvmode_206
- mtlr r11
- beqlr
- li r0,0
- mtspr SPRN_LPID,r0
- LOAD_REG_IMMEDIATE(r0, PCR_MASK)
- mtspr SPRN_PCR,r0
- mfspr r3,SPRN_LPCR
- ori r3, r3, LPCR_PECEDH
- li r4,0 /* LPES = 0 */
- bl __init_LPCR_ISA206
- bl __init_HFSCR
- bl __init_PMU_HV
- bl __init_PMU_HV_ISA207
- mtlr r11
- blr
-
-_GLOBAL(__restore_cpu_power8)
- mflr r11
- bl __init_FSCR
- bl __init_PMU
- bl __init_PMU_ISA207
- mfmsr r3
- rldicl. r0,r3,4,63
- mtlr r11
- beqlr
- li r0,0
- mtspr SPRN_LPID,r0
- LOAD_REG_IMMEDIATE(r0, PCR_MASK)
- mtspr SPRN_PCR,r0
- mfspr r3,SPRN_LPCR
- ori r3, r3, LPCR_PECEDH
- li r4,0 /* LPES = 0 */
- bl __init_LPCR_ISA206
- bl __init_HFSCR
- bl __init_PMU_HV
- bl __init_PMU_HV_ISA207
- mtlr r11
- blr
-
-_GLOBAL(__setup_cpu_power10)
- mflr r11
- bl __init_FSCR_power10
- bl __init_PMU
- bl __init_PMU_ISA31
- b 1f
-
-_GLOBAL(__setup_cpu_power9)
- mflr r11
- bl __init_FSCR_power9
- bl __init_PMU
-1: bl __init_hvmode_206
- mtlr r11
- beqlr
- li r0,0
- mtspr SPRN_PSSCR,r0
- mtspr SPRN_LPID,r0
- mtspr SPRN_PID,r0
- LOAD_REG_IMMEDIATE(r0, PCR_MASK)
- mtspr SPRN_PCR,r0
- mfspr r3,SPRN_LPCR
- LOAD_REG_IMMEDIATE(r4, LPCR_PECEDH | LPCR_PECE_HVEE | LPCR_HVICE | LPCR_HEIC)
- or r3, r3, r4
- LOAD_REG_IMMEDIATE(r4, LPCR_UPRT | LPCR_HR)
- andc r3, r3, r4
- li r4,0 /* LPES = 0 */
- bl __init_LPCR_ISA300
- bl __init_HFSCR
- bl __init_PMU_HV
- mtlr r11
- blr
-
-_GLOBAL(__restore_cpu_power10)
- mflr r11
- bl __init_FSCR_power10
- bl __init_PMU
- bl __init_PMU_ISA31
- b 1f
-
-_GLOBAL(__restore_cpu_power9)
- mflr r11
- bl __init_FSCR_power9
- bl __init_PMU
-1: mfmsr r3
- rldicl. r0,r3,4,63
- mtlr r11
- beqlr
- li r0,0
- mtspr SPRN_PSSCR,r0
- mtspr SPRN_LPID,r0
- mtspr SPRN_PID,r0
- LOAD_REG_IMMEDIATE(r0, PCR_MASK)
- mtspr SPRN_PCR,r0
- mfspr r3,SPRN_LPCR
- LOAD_REG_IMMEDIATE(r4, LPCR_PECEDH | LPCR_PECE_HVEE | LPCR_HVICE | LPCR_HEIC)
- or r3, r3, r4
- LOAD_REG_IMMEDIATE(r4, LPCR_UPRT | LPCR_HR)
- andc r3, r3, r4
- li r4,0 /* LPES = 0 */
- bl __init_LPCR_ISA300
- bl __init_HFSCR
- bl __init_PMU_HV
- mtlr r11
- blr
-
-__init_hvmode_206:
- /* Disable CPU_FTR_HVMODE and exit if MSR:HV is not set */
- mfmsr r3
- rldicl. r0,r3,4,63
- bnelr
- ld r5,CPU_SPEC_FEATURES(r4)
- LOAD_REG_IMMEDIATE(r6,CPU_FTR_HVMODE | CPU_FTR_P9_TM_HV_ASSIST)
- andc r5,r5,r6
- std r5,CPU_SPEC_FEATURES(r4)
- blr
-
-__init_LPCR_ISA206:
- /* Setup a sane LPCR:
- * Called with initial LPCR in R3 and desired LPES 2-bit value in R4
- *
- * LPES = 0b01 (HSRR0/1 used for 0x500)
- * PECE = 0b111
- * DPFD = 4
- * HDICE = 0
- * VC = 0b100 (VPM0=1, VPM1=0, ISL=0)
- * VRMASD = 0b10000 (L=1, LP=00)
- *
- * Other bits untouched for now
- */
- li r5,0x10
- rldimi r3,r5, LPCR_VRMASD_SH, 64-LPCR_VRMASD_SH-5
-
- /* POWER9 has no VRMASD */
-__init_LPCR_ISA300:
- rldimi r3,r4, LPCR_LPES_SH, 64-LPCR_LPES_SH-2
- ori r3,r3,(LPCR_PECE0|LPCR_PECE1|LPCR_PECE2)
- li r5,4
- rldimi r3,r5, LPCR_DPFD_SH, 64-LPCR_DPFD_SH-3
- clrrdi r3,r3,1 /* clear HDICE */
- li r5,4
- rldimi r3,r5, LPCR_VC_SH, 0
- mtspr SPRN_LPCR,r3
- isync
- blr
-
-__init_FSCR_power10:
- mfspr r3, SPRN_FSCR
- ori r3, r3, FSCR_PREFIX
- mtspr SPRN_FSCR, r3
- // fall through
-
-__init_FSCR_power9:
- mfspr r3, SPRN_FSCR
- ori r3, r3, FSCR_SCV
- mtspr SPRN_FSCR, r3
- // fall through
-
-__init_FSCR:
- mfspr r3,SPRN_FSCR
- ori r3,r3,FSCR_TAR|FSCR_EBB
- mtspr SPRN_FSCR,r3
- blr
-
-__init_HFSCR:
- mfspr r3,SPRN_HFSCR
- ori r3,r3,HFSCR_TAR|HFSCR_TM|HFSCR_BHRB|HFSCR_PM|\
- HFSCR_DSCR|HFSCR_VECVSX|HFSCR_FP|HFSCR_EBB|HFSCR_MSGP
- mtspr SPRN_HFSCR,r3
- blr
-
-__init_PMU_HV:
- li r5,0
- mtspr SPRN_MMCRC,r5
- blr
-
-__init_PMU_HV_ISA207:
- li r5,0
- mtspr SPRN_MMCRH,r5
- blr
-
-__init_PMU:
- li r5,0
- mtspr SPRN_MMCRA,r5
- mtspr SPRN_MMCR0,r5
- mtspr SPRN_MMCR1,r5
- mtspr SPRN_MMCR2,r5
- blr
-
-__init_PMU_ISA207:
- li r5,0
- mtspr SPRN_MMCRS,r5
- blr
-
-__init_PMU_ISA31:
- li r5,0
- mtspr SPRN_MMCR3,r5
- LOAD_REG_IMMEDIATE(r5, MMCRA_BHRB_DISABLE)
- mtspr SPRN_MMCRA,r5
- blr
diff --git a/arch/powerpc/kernel/cpu_setup_power.c b/arch/powerpc/kernel/cpu_setup_power.c
new file mode 100644
index 000000000000..3cca88ee96d7
--- /dev/null
+++ b/arch/powerpc/kernel/cpu_setup_power.c
@@ -0,0 +1,272 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright 2020, Jordan Niethe, IBM Corporation.
+ *
+ * This file contains low level CPU setup functions.
+ * Originally written in assembly by Benjamin Herrenschmidt & various other
+ * authors.
+ */
+
+#include <asm/reg.h>
+#include <asm/synch.h>
+#include <linux/bitops.h>
+#include <asm/cputable.h>
+#include <asm/cpu_setup_power.h>
+
+/* Disable CPU_FTR_HVMODE and return false if MSR:HV is not set */
+static bool init_hvmode_206(struct cpu_spec *t)
+{
+ u64 msr;
+
+ msr = mfmsr();
+ if (msr & MSR_HV)
+ return true;
+
+ t->cpu_features &= ~(CPU_FTR_HVMODE | CPU_FTR_P9_TM_HV_ASSIST);
+ return false;
+}
+
+static void init_LPCR_ISA300(u64 lpcr, u64 lpes)
+{
+ /* POWER9 has no VRMASD */
+ lpcr |= (lpes << LPCR_LPES_SH) & LPCR_LPES;
+ lpcr |= LPCR_PECE0|LPCR_PECE1|LPCR_PECE2;
+ lpcr |= (4ull << LPCR_DPFD_SH) & LPCR_DPFD;
+ lpcr &= ~LPCR_HDICE; /* clear HDICE */
+ lpcr |= (4ull << LPCR_VC_SH);
+ mtspr(SPRN_LPCR, lpcr);
+ isync();
+}
+
+/*
+ * Setup a sane LPCR:
+ * Called with initial LPCR and desired LPES 2-bit value
+ *
+ * LPES = 0b01 (HSRR0/1 used for 0x500)
+ * PECE = 0b111
+ * DPFD = 4
+ * HDICE = 0
+ * VC = 0b100 (VPM0=1, VPM1=0, ISL=0)
+ * VRMASD = 0b10000 (L=1, LP=00)
+ *
+ * Other bits untouched for now
+ */
+static void init_LPCR_ISA206(u64 lpcr, u64 lpes)
+{
+ lpcr |= (0x10ull << LPCR_VRMASD_SH) & LPCR_VRMASD;
+ init_LPCR_ISA300(lpcr, lpes);
+}
+
+static void init_FSCR(void)
+{
+ u64 fscr;
+
+ fscr = mfspr(SPRN_FSCR);
+ fscr |= FSCR_TAR|FSCR_EBB;
+ mtspr(SPRN_FSCR, fscr);
+}
+
+static void init_FSCR_power9(void)
+{
+ u64 fscr;
+
+ fscr = mfspr(SPRN_FSCR);
+ fscr |= FSCR_SCV;
+ mtspr(SPRN_FSCR, fscr);
+ init_FSCR();
+}
+
+static void init_FSCR_power10(void)
+{
+ u64 fscr;
+
+ fscr = mfspr(SPRN_FSCR);
+ fscr |= FSCR_PREFIX;
+ mtspr(SPRN_FSCR, fscr);
+ init_FSCR_power9();
+}
+
+static void init_HFSCR(void)
+{
+ u64 hfscr;
+
+ hfscr = mfspr(SPRN_HFSCR);
+ hfscr |= HFSCR_TAR|HFSCR_TM|HFSCR_BHRB|HFSCR_PM|HFSCR_DSCR|\
+ HFSCR_VECVSX|HFSCR_FP|HFSCR_EBB|HFSCR_MSGP;
+ mtspr(SPRN_HFSCR, hfscr);
+}
+
+static void init_PMU_HV(void)
+{
+ mtspr(SPRN_MMCRC, 0);
+}
+
+static void init_PMU_HV_ISA207(void)
+{
+ mtspr(SPRN_MMCRH, 0);
+}
+
+static void init_PMU(void)
+{
+ mtspr(SPRN_MMCRA, 0);
+ mtspr(SPRN_MMCR0, 0);
+ mtspr(SPRN_MMCR1, 0);
+ mtspr(SPRN_MMCR2, 0);
+}
+
+static void init_PMU_ISA207(void)
+{
+ mtspr(SPRN_MMCRS, 0);
+}
+
+static void init_PMU_ISA31(void)
+{
+ mtspr(SPRN_MMCR3, 0);
+ mtspr(SPRN_MMCRA, MMCRA_BHRB_DISABLE);
+ mtspr(SPRN_MMCR0, MMCR0_PMCCEXT);
+}
+
+/*
+ * Note that we can be called twice of pseudo-PVRs.
+ * The parameter offset is not used.
+ */
+
+void __setup_cpu_power7(unsigned long offset, struct cpu_spec *t)
+{
+ if (!init_hvmode_206(t))
+ return;
+
+ mtspr(SPRN_LPID, 0);
+ mtspr(SPRN_PCR, PCR_MASK);
+ init_LPCR_ISA206(mfspr(SPRN_LPCR), LPCR_LPES1 >> LPCR_LPES_SH);
+}
+
+void __restore_cpu_power7(void)
+{
+ u64 msr;
+
+ msr = mfmsr();
+ if (!(msr & MSR_HV))
+ return;
+
+ mtspr(SPRN_LPID, 0);
+ mtspr(SPRN_PCR, PCR_MASK);
+ init_LPCR_ISA206(mfspr(SPRN_LPCR), LPCR_LPES1 >> LPCR_LPES_SH);
+}
+
+void __setup_cpu_power8(unsigned long offset, struct cpu_spec *t)
+{
+ init_FSCR();
+ init_PMU();
+ init_PMU_ISA207();
+
+ if (!init_hvmode_206(t))
+ return;
+
+ mtspr(SPRN_LPID, 0);
+ mtspr(SPRN_PCR, PCR_MASK);
+ init_LPCR_ISA206(mfspr(SPRN_LPCR) | LPCR_PECEDH, 0); /* LPES = 0 */
+ init_HFSCR();
+ init_PMU_HV();
+ init_PMU_HV_ISA207();
+}
+
+void __restore_cpu_power8(void)
+{
+ u64 msr;
+
+ init_FSCR();
+ init_PMU();
+ init_PMU_ISA207();
+
+ msr = mfmsr();
+ if (!(msr & MSR_HV))
+ return;
+
+ mtspr(SPRN_LPID, 0);
+ mtspr(SPRN_PCR, PCR_MASK);
+ init_LPCR_ISA206(mfspr(SPRN_LPCR) | LPCR_PECEDH, 0); /* LPES = 0 */
+ init_HFSCR();
+ init_PMU_HV();
+ init_PMU_HV_ISA207();
+}
+
+void __setup_cpu_power9(unsigned long offset, struct cpu_spec *t)
+{
+ init_FSCR_power9();
+ init_PMU();
+
+ if (!init_hvmode_206(t))
+ return;
+
+ mtspr(SPRN_PSSCR, 0);
+ mtspr(SPRN_LPID, 0);
+ mtspr(SPRN_PID, 0);
+ mtspr(SPRN_PCR, PCR_MASK);
+ init_LPCR_ISA300((mfspr(SPRN_LPCR) | LPCR_PECEDH | LPCR_PECE_HVEE |\
+ LPCR_HVICE | LPCR_HEIC) & ~(LPCR_UPRT | LPCR_HR), 0);
+ init_HFSCR();
+ init_PMU_HV();
+}
+
+void __restore_cpu_power9(void)
+{
+ u64 msr;
+
+ init_FSCR_power9();
+ init_PMU();
+
+ msr = mfmsr();
+ if (!(msr & MSR_HV))
+ return;
+
+ mtspr(SPRN_PSSCR, 0);
+ mtspr(SPRN_LPID, 0);
+ mtspr(SPRN_PID, 0);
+ mtspr(SPRN_PCR, PCR_MASK);
+ init_LPCR_ISA300((mfspr(SPRN_LPCR) | LPCR_PECEDH | LPCR_PECE_HVEE |\
+ LPCR_HVICE | LPCR_HEIC) & ~(LPCR_UPRT | LPCR_HR), 0);
+ init_HFSCR();
+ init_PMU_HV();
+}
+
+void __setup_cpu_power10(unsigned long offset, struct cpu_spec *t)
+{
+ init_FSCR_power10();
+ init_PMU();
+ init_PMU_ISA31();
+
+ if (!init_hvmode_206(t))
+ return;
+
+ mtspr(SPRN_PSSCR, 0);
+ mtspr(SPRN_LPID, 0);
+ mtspr(SPRN_PID, 0);
+ mtspr(SPRN_PCR, PCR_MASK);
+ init_LPCR_ISA300((mfspr(SPRN_LPCR) | LPCR_PECEDH | LPCR_PECE_HVEE |\
+ LPCR_HVICE | LPCR_HEIC) & ~(LPCR_UPRT | LPCR_HR), 0);
+ init_HFSCR();
+ init_PMU_HV();
+}
+
+void __restore_cpu_power10(void)
+{
+ u64 msr;
+
+ init_FSCR_power10();
+ init_PMU();
+ init_PMU_ISA31();
+
+ msr = mfmsr();
+ if (!(msr & MSR_HV))
+ return;
+
+ mtspr(SPRN_PSSCR, 0);
+ mtspr(SPRN_LPID, 0);
+ mtspr(SPRN_PID, 0);
+ mtspr(SPRN_PCR, PCR_MASK);
+ init_LPCR_ISA300((mfspr(SPRN_LPCR) | LPCR_PECEDH | LPCR_PECE_HVEE |\
+ LPCR_HVICE | LPCR_HEIC) & ~(LPCR_UPRT | LPCR_HR), 0);
+ init_HFSCR();
+ init_PMU_HV();
+}
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index 29de58d4dfb7..8fdb40ee86d1 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -60,19 +60,15 @@ extern void __setup_cpu_7410(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_745x(unsigned long offset, struct cpu_spec* spec);
#endif /* CONFIG_PPC32 */
#ifdef CONFIG_PPC64
+#include <asm/cpu_setup_power.h>
extern void __setup_cpu_ppc970(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_ppc970MP(unsigned long offset, struct cpu_spec* spec);
extern void __setup_cpu_pa6t(unsigned long offset, struct cpu_spec* spec);
extern void __restore_cpu_pa6t(void);
extern void __restore_cpu_ppc970(void);
-extern void __setup_cpu_power7(unsigned long offset, struct cpu_spec* spec);
-extern void __restore_cpu_power7(void);
-extern void __setup_cpu_power8(unsigned long offset, struct cpu_spec* spec);
-extern void __restore_cpu_power8(void);
-extern void __setup_cpu_power9(unsigned long offset, struct cpu_spec* spec);
-extern void __restore_cpu_power9(void);
-extern void __setup_cpu_power10(unsigned long offset, struct cpu_spec* spec);
-extern void __restore_cpu_power10(void);
+extern long __machine_check_early_realmode_p7(struct pt_regs *regs);
+extern long __machine_check_early_realmode_p8(struct pt_regs *regs);
+extern long __machine_check_early_realmode_p9(struct pt_regs *regs);
#endif /* CONFIG_PPC64 */
#if defined(CONFIG_E500)
extern void __setup_cpu_e5500(unsigned long offset, struct cpu_spec* spec);
diff --git a/arch/powerpc/kernel/dt_cpu_ftrs.c b/arch/powerpc/kernel/dt_cpu_ftrs.c
index 1098863e17ee..9d079659b24d 100644
--- a/arch/powerpc/kernel/dt_cpu_ftrs.c
+++ b/arch/powerpc/kernel/dt_cpu_ftrs.c
@@ -454,6 +454,7 @@ static void init_pmu_power10(void)
mtspr(SPRN_MMCR3, 0);
mtspr(SPRN_MMCRA, MMCRA_BHRB_DISABLE);
+ mtspr(SPRN_MMCR0, MMCR0_PMCCEXT);
}
static int __init feat_enable_pmu_power10(struct dt_cpu_feature *f)
diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index eddf362caedc..c3bb800dc435 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -1641,6 +1641,14 @@ int __init setup_fadump(void)
else if (fw_dump.reserve_dump_area_size)
fw_dump.ops->fadump_init_mem_struct(&fw_dump);
+ /*
+ * In case of panic, fadump is triggered via ppc_panic_event()
+ * panic notifier. Setting crash_kexec_post_notifiers to 'true'
+ * lets panic() function take crash friendly path before panic
+ * notifiers are invoked.
+ */
+ crash_kexec_post_notifiers = true;
+
return 1;
}
subsys_initcall(setup_fadump);
diff --git a/arch/powerpc/kernel/head_40x.S b/arch/powerpc/kernel/head_40x.S
index a1ae00689e0f..aeb9bc995874 100644
--- a/arch/powerpc/kernel/head_40x.S
+++ b/arch/powerpc/kernel/head_40x.S
@@ -27,6 +27,7 @@
#include <linux/init.h>
#include <linux/pgtable.h>
+#include <linux/sizes.h>
#include <asm/processor.h>
#include <asm/page.h>
#include <asm/mmu.h>
@@ -626,7 +627,7 @@ start_here:
b . /* prevent prefetch past rfi */
/* Set up the initial MMU state so we can do the first level of
- * kernel initialization. This maps the first 16 MBytes of memory 1:1
+ * kernel initialization. This maps the first 32 MBytes of memory 1:1
* virtual to physical and more importantly sets the cache mode.
*/
initial_mmu:
@@ -663,6 +664,12 @@ initial_mmu:
tlbwe r4,r0,TLB_DATA /* Load the data portion of the entry */
tlbwe r3,r0,TLB_TAG /* Load the tag portion of the entry */
+ li r0,62 /* TLB slot 62 */
+ addis r4,r4,SZ_16M@h
+ addis r3,r3,SZ_16M@h
+ tlbwe r4,r0,TLB_DATA /* Load the data portion of the entry */
+ tlbwe r3,r0,TLB_TAG /* Load the tag portion of the entry */
+
isync
/* Establish the exception vector base
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index 7e337c570ea6..9e71c0739f08 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -2956,7 +2956,7 @@ static void __init fixup_device_tree_efika_add_phy(void)
/* Check if the phy-handle property exists - bail if it does */
rv = prom_getprop(node, "phy-handle", prop, sizeof(prop));
- if (!rv)
+ if (rv <= 0)
return;
/*
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 452cbf98bfd7..cf99f57aed82 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -60,6 +60,7 @@
#include <asm/cpu_has_feature.h>
#include <asm/ftrace.h>
#include <asm/kup.h>
+#include <asm/fadump.h>
#ifdef DEBUG
#include <asm/udbg.h>
@@ -594,6 +595,45 @@ void crash_send_ipi(void (*crash_ipi_callback)(struct pt_regs *))
}
#endif
+#ifdef CONFIG_NMI_IPI
+static void crash_stop_this_cpu(struct pt_regs *regs)
+#else
+static void crash_stop_this_cpu(void *dummy)
+#endif
+{
+ /*
+ * Just busy wait here and avoid marking CPU as offline to ensure
+ * register data is captured appropriately.
+ */
+ while (1)
+ cpu_relax();
+}
+
+void crash_smp_send_stop(void)
+{
+ static bool stopped = false;
+
+ /*
+ * In case of fadump, register data for all CPUs is captured by f/w
+ * on ibm,os-term rtas call. Skip IPI callbacks to other CPUs before
+ * this rtas call to avoid tricky post processing of those CPUs'
+ * backtraces.
+ */
+ if (should_fadump_crash())
+ return;
+
+ if (stopped)
+ return;
+
+ stopped = true;
+
+#ifdef CONFIG_NMI_IPI
+ smp_send_nmi_ipi(NMI_IPI_ALL_OTHERS, crash_stop_this_cpu, 1000000);
+#else
+ smp_call_function(crash_stop_this_cpu, NULL, 0);
+#endif /* CONFIG_NMI_IPI */
+}
+
#ifdef CONFIG_NMI_IPI
static void nmi_stop_this_cpu(struct pt_regs *regs)
{
@@ -1488,10 +1528,12 @@ void start_secondary(void *unused)
BUG();
}
+#ifdef CONFIG_PROFILING
int setup_profiling_timer(unsigned int multiplier)
{
return 0;
}
+#endif
static void fixup_topology(void)
{
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
index 77dffea3d537..069d451240fa 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -1922,11 +1922,40 @@ void vsx_unavailable_tm(struct pt_regs *regs)
}
#endif /* CONFIG_PPC_TRANSACTIONAL_MEM */
-void performance_monitor_exception(struct pt_regs *regs)
+static void performance_monitor_exception_nmi(struct pt_regs *regs)
+{
+ nmi_enter();
+
+ __this_cpu_inc(irq_stat.pmu_irqs);
+
+ perf_irq(regs);
+
+ nmi_exit();
+}
+
+static void performance_monitor_exception_async(struct pt_regs *regs)
{
+ irq_enter();
+
__this_cpu_inc(irq_stat.pmu_irqs);
perf_irq(regs);
+
+ irq_exit();
+}
+
+void performance_monitor_exception(struct pt_regs *regs)
+{
+ /*
+ * On 64-bit, if perf interrupts hit in a local_irq_disable
+ * (soft-masked) region, we consider them as NMIs. This is required to
+ * prevent hash faults on user addresses when reading callchains (and
+ * looks better from an irq tracing perspective).
+ */
+ if (IS_ENABLED(CONFIG_PPC64) && unlikely(arch_irq_disabled_regs(regs)))
+ performance_monitor_exception_nmi(regs);
+ else
+ performance_monitor_exception_async(regs);
}
#ifdef CONFIG_PPC_ADV_DEBUG_REGS
diff --git a/arch/powerpc/kernel/watchdog.c b/arch/powerpc/kernel/watchdog.c
index af3c15a1d41e..75b2a6c4db5a 100644
--- a/arch/powerpc/kernel/watchdog.c
+++ b/arch/powerpc/kernel/watchdog.c
@@ -132,6 +132,10 @@ static void set_cpumask_stuck(const struct cpumask *cpumask, u64 tb)
{
cpumask_or(&wd_smp_cpus_stuck, &wd_smp_cpus_stuck, cpumask);
cpumask_andnot(&wd_smp_cpus_pending, &wd_smp_cpus_pending, cpumask);
+ /*
+ * See wd_smp_clear_cpu_pending()
+ */
+ smp_mb();
if (cpumask_empty(&wd_smp_cpus_pending)) {
wd_smp_last_reset_tb = tb;
cpumask_andnot(&wd_smp_cpus_pending,
@@ -217,13 +221,44 @@ static void wd_smp_clear_cpu_pending(int cpu, u64 tb)
cpumask_clear_cpu(cpu, &wd_smp_cpus_stuck);
wd_smp_unlock(&flags);
+ } else {
+ /*
+ * The last CPU to clear pending should have reset the
+ * watchdog so we generally should not find it empty
+ * here if our CPU was clear. However it could happen
+ * due to a rare race with another CPU taking the
+ * last CPU out of the mask concurrently.
+ *
+ * We can't add a warning for it. But just in case
+ * there is a problem with the watchdog that is causing
+ * the mask to not be reset, try to kick it along here.
+ */
+ if (unlikely(cpumask_empty(&wd_smp_cpus_pending)))
+ goto none_pending;
}
return;
}
+
cpumask_clear_cpu(cpu, &wd_smp_cpus_pending);
+
+ /*
+ * Order the store to clear pending with the load(s) to check all
+ * words in the pending mask to check they are all empty. This orders
+ * with the same barrier on another CPU. This prevents two CPUs
+ * clearing the last 2 pending bits, but neither seeing the other's
+ * store when checking if the mask is empty, and missing an empty
+ * mask, which ends with a false positive.
+ */
+ smp_mb();
if (cpumask_empty(&wd_smp_cpus_pending)) {
unsigned long flags;
+none_pending:
+ /*
+ * Double check under lock because more than one CPU could see
+ * a clear mask with the lockless check after clearing their
+ * pending bits.
+ */
wd_smp_lock(&flags);
if (cpumask_empty(&wd_smp_cpus_pending)) {
wd_smp_last_reset_tb = tb;
@@ -314,8 +349,12 @@ void arch_touch_nmi_watchdog(void)
{
unsigned long ticks = tb_ticks_per_usec * wd_timer_period_ms * 1000;
int cpu = smp_processor_id();
- u64 tb = get_tb();
+ u64 tb;
+ if (!cpumask_test_cpu(cpu, &watchdog_cpumask))
+ return;
+
+ tb = get_tb();
if (tb - per_cpu(wd_timer_tb, cpu) >= ticks) {
per_cpu(wd_timer_tb, cpu) = tb;
wd_smp_clear_cpu_pending(cpu, tb);
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 175967a195c4..527c205d5a5f 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -4557,8 +4557,12 @@ static int kvmppc_core_prepare_memory_region_hv(struct kvm *kvm,
unsigned long npages = mem->memory_size >> PAGE_SHIFT;
if (change == KVM_MR_CREATE) {
- slot->arch.rmap = vzalloc(array_size(npages,
- sizeof(*slot->arch.rmap)));
+ unsigned long size = array_size(npages, sizeof(*slot->arch.rmap));
+
+ if ((size >> PAGE_SHIFT) > totalram_pages())
+ return -ENOMEM;
+
+ slot->arch.rmap = vzalloc(size);
if (!slot->arch.rmap)
return -ENOMEM;
}
diff --git a/arch/powerpc/kvm/book3s_hv_nested.c b/arch/powerpc/kvm/book3s_hv_nested.c
index a5f1ae892ba6..d0b6c8c16c48 100644
--- a/arch/powerpc/kvm/book3s_hv_nested.c
+++ b/arch/powerpc/kvm/book3s_hv_nested.c
@@ -510,7 +510,7 @@ long kvmhv_copy_tofrom_guest_nested(struct kvm_vcpu *vcpu)
if (eaddr & (0xFFFUL << 52))
return H_PARAMETER;
- buf = kzalloc(n, GFP_KERNEL);
+ buf = kzalloc(n, GFP_KERNEL | __GFP_NOWARN);
if (!buf)
return H_NO_MEM;
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index 1d5eec847b88..295959487b76 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -1152,7 +1152,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
int pud_clear_huge(pud_t *pud)
{
- if (pud_huge(*pud)) {
+ if (pud_is_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1199,7 +1199,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_huge(*pmd)) {
+ if (pmd_is_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
diff --git a/arch/powerpc/mm/kasan/book3s_32.c b/arch/powerpc/mm/kasan/book3s_32.c
index 202bd260a009..35b287b0a8da 100644
--- a/arch/powerpc/mm/kasan/book3s_32.c
+++ b/arch/powerpc/mm/kasan/book3s_32.c
@@ -19,7 +19,8 @@ int __init kasan_init_region(void *start, size_t size)
block = memblock_alloc(k_size, k_size_base);
if (block && k_size_base >= SZ_128K && k_start == ALIGN(k_start, k_size_base)) {
- int k_size_more = 1 << (ffs(k_size - k_size_base) - 1);
+ int shift = ffs(k_size - k_size_base);
+ int k_size_more = shift ? 1 << (shift - 1) : 0;
setbat(-1, k_start, __pa(block), k_size_base, PAGE_KERNEL);
if (k_size_more >= SZ_128K)
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index cc6e2f94517f..aefc2bfdf104 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -102,7 +102,8 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
struct page *p4d_page(p4d_t p4d)
{
if (p4d_is_leaf(p4d)) {
- VM_WARN_ON(!p4d_huge(p4d));
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
}
return virt_to_page(p4d_page_vaddr(p4d));
@@ -112,7 +113,8 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
if (pud_is_leaf(pud)) {
- VM_WARN_ON(!pud_huge(pud));
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
}
return virt_to_page(pud_page_vaddr(pud));
@@ -125,7 +127,13 @@ struct page *pud_page(pud_t pud)
struct page *pmd_page(pmd_t pmd)
{
if (pmd_is_leaf(pmd)) {
- VM_WARN_ON(!(pmd_large(pmd) || pmd_huge(pmd)));
+ /*
+ * vmalloc_to_page may be called on any vmap address (not only
+ * vmalloc), and it uses pmd_page() etc., when huge vmap is
+ * enabled so these checks can't be used.
+ */
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!(pmd_large(pmd) || pmd_huge(pmd)));
return pte_page(pmd_pte(pmd));
}
return virt_to_page(pmd_page_vaddr(pmd));
diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c
index 91452313489f..bd34e062bd29 100644
--- a/arch/powerpc/perf/core-book3s.c
+++ b/arch/powerpc/perf/core-book3s.c
@@ -95,6 +95,7 @@ static unsigned int freeze_events_kernel = MMCR0_FCS;
#define SPRN_SIER3 0
#define MMCRA_SAMPLE_ENABLE 0
#define MMCRA_BHRB_DISABLE 0
+#define MMCR0_PMCCEXT 0
static inline unsigned long perf_ip_adjust(struct pt_regs *regs)
{
@@ -109,10 +110,6 @@ static inline void perf_read_regs(struct pt_regs *regs)
{
regs->result = 0;
}
-static inline int perf_intr_is_nmi(struct pt_regs *regs)
-{
- return 0;
-}
static inline int siar_valid(struct pt_regs *regs)
{
@@ -331,15 +328,6 @@ static inline void perf_read_regs(struct pt_regs *regs)
regs->result = use_siar;
}
-/*
- * If interrupts were soft-disabled when a PMU interrupt occurs, treat
- * it as an NMI.
- */
-static inline int perf_intr_is_nmi(struct pt_regs *regs)
-{
- return (regs->softe & IRQS_DISABLED);
-}
-
/*
* On processors like P7+ that have the SIAR-Valid bit, marked instructions
* must be sampled only if the SIAR-valid bit is set.
@@ -817,6 +805,19 @@ static void write_pmc(int idx, unsigned long val)
}
}
+static int any_pmc_overflown(struct cpu_hw_events *cpuhw)
+{
+ int i, idx;
+
+ for (i = 0; i < cpuhw->n_events; i++) {
+ idx = cpuhw->event[i]->hw.idx;
+ if ((idx) && ((int)read_pmc(idx) < 0))
+ return idx;
+ }
+
+ return 0;
+}
+
/* Called from sysrq_handle_showregs() */
void perf_event_print_debug(void)
{
@@ -1240,11 +1241,16 @@ static void power_pmu_disable(struct pmu *pmu)
/*
* Set the 'freeze counters' bit, clear EBE/BHRBA/PMCC/PMAO/FC56
+ * Also clear PMXE to disable PMI's getting triggered in some
+ * corner cases during PMU disable.
*/
val = mmcr0 = mfspr(SPRN_MMCR0);
val |= MMCR0_FC;
val &= ~(MMCR0_EBE | MMCR0_BHRBA | MMCR0_PMCC | MMCR0_PMAO |
- MMCR0_FC56);
+ MMCR0_PMXE | MMCR0_FC56);
+ /* Set mmcr0 PMCCEXT for p10 */
+ if (ppmu->flags & PPMU_ARCH_31)
+ val |= MMCR0_PMCCEXT;
/*
* The barrier is to make sure the mtspr has been
@@ -1255,6 +1261,23 @@ static void power_pmu_disable(struct pmu *pmu)
mb();
isync();
+ /*
+ * Some corner cases could clear the PMU counter overflow
+ * while a masked PMI is pending. One such case is when
+ * a PMI happens during interrupt replay and perf counter
+ * values are cleared by PMU callbacks before replay.
+ *
+ * If any PMC corresponding to the active PMU events are
+ * overflown, disable the interrupt by clearing the paca
+ * bit for PMI since we are disabling the PMU now.
+ * Otherwise provide a warning if there is PMI pending, but
+ * no counter is found overflown.
+ */
+ if (any_pmc_overflown(cpuhw))
+ clear_pmi_irq_pending();
+ else
+ WARN_ON(pmi_irq_pending());
+
val = mmcra = cpuhw->mmcr.mmcra;
/*
@@ -1346,6 +1369,15 @@ static void power_pmu_enable(struct pmu *pmu)
* (possibly updated for removal of events).
*/
if (!cpuhw->n_added) {
+ /*
+ * If there is any active event with an overflown PMC
+ * value, set back PACA_IRQ_PMI which would have been
+ * cleared in power_pmu_disable().
+ */
+ hard_irq_disable();
+ if (any_pmc_overflown(cpuhw))
+ set_pmi_irq_pending();
+
mtspr(SPRN_MMCRA, cpuhw->mmcr.mmcra & ~MMCRA_SAMPLE_ENABLE);
mtspr(SPRN_MMCR1, cpuhw->mmcr.mmcr1);
if (ppmu->flags & PPMU_ARCH_31)
@@ -2250,7 +2282,6 @@ static void __perf_event_interrupt(struct pt_regs *regs)
struct perf_event *event;
unsigned long val[8];
int found, active;
- int nmi;
if (cpuhw->n_limited)
freeze_limited_counters(cpuhw, mfspr(SPRN_PMC5),
@@ -2258,18 +2289,6 @@ static void __perf_event_interrupt(struct pt_regs *regs)
perf_read_regs(regs);
- /*
- * If perf interrupts hit in a local_irq_disable (soft-masked) region,
- * we consider them as NMIs. This is required to prevent hash faults on
- * user addresses when reading callchains. See the NMI test in
- * do_hash_page.
- */
- nmi = perf_intr_is_nmi(regs);
- if (nmi)
- nmi_enter();
- else
- irq_enter();
-
/* Read all the PMCs since we'll need them a bunch of times */
for (i = 0; i < ppmu->n_counter; ++i)
val[i] = read_pmc(i + 1);
@@ -2296,6 +2315,14 @@ static void __perf_event_interrupt(struct pt_regs *regs)
break;
}
}
+
+ /*
+ * Clear PACA_IRQ_PMI in case it was set by
+ * set_pmi_irq_pending() when PMU was enabled
+ * after accounting for interrupts.
+ */
+ clear_pmi_irq_pending();
+
if (!active)
/* reset non active counters that have overflowed */
write_pmc(i + 1, 0);
@@ -2315,8 +2342,15 @@ static void __perf_event_interrupt(struct pt_regs *regs)
}
}
}
- if (!found && !nmi && printk_ratelimit())
- printk(KERN_WARNING "Can't find PMC that caused IRQ\n");
+
+ /*
+ * During system wide profling or while specific CPU is monitored for an
+ * event, some corner cases could cause PMC to overflow in idle path. This
+ * will trigger a PMI after waking up from idle. Since counter values are _not_
+ * saved/restored in idle path, can lead to below "Can't find PMC" message.
+ */
+ if (unlikely(!found) && !arch_irq_disabled_regs(regs))
+ printk_ratelimited(KERN_WARNING "Can't find PMC that caused IRQ\n");
/*
* Reset MMCR0 to its normal value. This will set PMXE and
@@ -2326,11 +2360,6 @@ static void __perf_event_interrupt(struct pt_regs *regs)
* we get back out of this interrupt.
*/
write_mmcr0(cpuhw, cpuhw->mmcr.mmcr0);
-
- if (nmi)
- nmi_exit();
- else
- irq_exit();
}
static void perf_event_interrupt(struct pt_regs *regs)
diff --git a/arch/powerpc/perf/core-fsl-emb.c b/arch/powerpc/perf/core-fsl-emb.c
index e0e7e276bfd2..ee721f420a7b 100644
--- a/arch/powerpc/perf/core-fsl-emb.c
+++ b/arch/powerpc/perf/core-fsl-emb.c
@@ -31,19 +31,6 @@ static atomic_t num_events;
/* Used to avoid races in calling reserve/release_pmc_hardware */
static DEFINE_MUTEX(pmc_reserve_mutex);
-/*
- * If interrupts were soft-disabled when a PMU interrupt occurs, treat
- * it as an NMI.
- */
-static inline int perf_intr_is_nmi(struct pt_regs *regs)
-{
-#ifdef __powerpc64__
- return (regs->softe & IRQS_DISABLED);
-#else
- return 0;
-#endif
-}
-
static void perf_event_interrupt(struct pt_regs *regs);
/*
@@ -659,13 +646,6 @@ static void perf_event_interrupt(struct pt_regs *regs)
struct perf_event *event;
unsigned long val;
int found = 0;
- int nmi;
-
- nmi = perf_intr_is_nmi(regs);
- if (nmi)
- nmi_enter();
- else
- irq_enter();
for (i = 0; i < ppmu->n_counter; ++i) {
event = cpuhw->event[i];
@@ -690,11 +670,6 @@ static void perf_event_interrupt(struct pt_regs *regs)
mtmsr(mfmsr() | MSR_PMM);
mtpmr(PMRN_PMGC0, PMGC0_PMIE | PMGC0_FCECE);
isync();
-
- if (nmi)
- nmi_exit();
- else
- irq_exit();
}
void hw_perf_event_setup(int cpu)
diff --git a/arch/powerpc/perf/isa207-common.c b/arch/powerpc/perf/isa207-common.c
index 5e8eedda45d3..58448f0e4721 100644
--- a/arch/powerpc/perf/isa207-common.c
+++ b/arch/powerpc/perf/isa207-common.c
@@ -561,6 +561,14 @@ int isa207_compute_mmcr(u64 event[], int n_ev,
if (!(pmc_inuse & 0x60))
mmcr->mmcr0 |= MMCR0_FC56;
+ /*
+ * Set mmcr0 (PMCCEXT) for p10 which
+ * will restrict access to group B registers
+ * when MMCR0 PMCC=0b00.
+ */
+ if (cpu_has_feature(CPU_FTR_ARCH_31))
+ mmcr->mmcr0 |= MMCR0_PMCCEXT;
+
mmcr->mmcr1 = mmcr1;
mmcr->mmcra = mmcra;
mmcr->mmcr2 = mmcr2;
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c
index 2124831cf57c..d04079b34d7c 100644
--- a/arch/powerpc/platforms/cell/iommu.c
+++ b/arch/powerpc/platforms/cell/iommu.c
@@ -976,6 +976,7 @@ static int __init cell_iommu_fixed_mapping_init(void)
if (hbase < dbase || (hend > (dbase + dsize))) {
pr_debug("iommu: hash window doesn't fit in"
"real DMA window\n");
+ of_node_put(np);
return -1;
}
}
diff --git a/arch/powerpc/platforms/cell/pervasive.c b/arch/powerpc/platforms/cell/pervasive.c
index 9068edef71f7..59999902e4a6 100644
--- a/arch/powerpc/platforms/cell/pervasive.c
+++ b/arch/powerpc/platforms/cell/pervasive.c
@@ -77,6 +77,7 @@ static int cbe_system_reset_exception(struct pt_regs *regs)
switch (regs->msr & SRR1_WAKEMASK) {
case SRR1_WAKEDEC:
set_dec(1);
+ break;
case SRR1_WAKEEE:
/*
* Handle these when interrupts get re-enabled and we take
diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
index a1b7f79a8a15..de10c13de15c 100644
--- a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
+++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
@@ -215,6 +215,7 @@ void hlwd_pic_probe(void)
irq_set_chained_handler(cascade_virq,
hlwd_pic_irq_cascade);
hlwd_irq_host = host;
+ of_node_put(np);
break;
}
}
diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c
index f77a59b5c2e1..df89d916236d 100644
--- a/arch/powerpc/platforms/powermac/low_i2c.c
+++ b/arch/powerpc/platforms/powermac/low_i2c.c
@@ -582,6 +582,7 @@ static void __init kw_i2c_add(struct pmac_i2c_host_kw *host,
bus->close = kw_i2c_close;
bus->xfer = kw_i2c_xfer;
mutex_init(&bus->mutex);
+ lockdep_register_key(&bus->lock_key);
lockdep_set_class(&bus->mutex, &bus->lock_key);
if (controller == busnode)
bus->flags = pmac_i2c_multibus;
@@ -810,6 +811,7 @@ static void __init pmu_i2c_probe(void)
bus->hostdata = bus + 1;
bus->xfer = pmu_i2c_xfer;
mutex_init(&bus->mutex);
+ lockdep_register_key(&bus->lock_key);
lockdep_set_class(&bus->mutex, &bus->lock_key);
bus->flags = pmac_i2c_multibus;
list_add(&bus->link, &pmac_i2c_busses);
@@ -933,6 +935,7 @@ static void __init smu_i2c_probe(void)
bus->hostdata = bus + 1;
bus->xfer = smu_i2c_xfer;
mutex_init(&bus->mutex);
+ lockdep_register_key(&bus->lock_key);
lockdep_set_class(&bus->mutex, &bus->lock_key);
bus->flags = 0;
list_add(&bus->link, &pmac_i2c_busses);
diff --git a/arch/powerpc/platforms/powernv/opal-lpc.c b/arch/powerpc/platforms/powernv/opal-lpc.c
index 608569082ba0..123a0e799b7b 100644
--- a/arch/powerpc/platforms/powernv/opal-lpc.c
+++ b/arch/powerpc/platforms/powernv/opal-lpc.c
@@ -396,6 +396,7 @@ void __init opal_lpc_init(void)
if (!of_get_property(np, "primary", NULL))
continue;
opal_lpc_chip_id = of_get_ibm_chip_id(np);
+ of_node_put(np);
break;
}
if (opal_lpc_chip_id < 0)
diff --git a/arch/powerpc/sysdev/xive/spapr.c b/arch/powerpc/sysdev/xive/spapr.c
index 1e3674d7ea7b..b57eeaff7bb3 100644
--- a/arch/powerpc/sysdev/xive/spapr.c
+++ b/arch/powerpc/sysdev/xive/spapr.c
@@ -658,6 +658,9 @@ static int xive_spapr_debug_show(struct seq_file *m, void *private)
struct xive_irq_bitmap *xibm;
char *buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
+ if (!buf)
+ return -ENOMEM;
+
list_for_each_entry(xibm, &xive_irq_bitmaps, list) {
memset(buf, 0, PAGE_SIZE);
bitmap_print_to_pagebuf(true, buf, xibm->bitmap, xibm->count);
diff --git a/arch/s390/mm/pgalloc.c b/arch/s390/mm/pgalloc.c
index 11d2c8395e2a..6d99b1be0082 100644
--- a/arch/s390/mm/pgalloc.c
+++ b/arch/s390/mm/pgalloc.c
@@ -253,13 +253,15 @@ void page_table_free(struct mm_struct *mm, unsigned long *table)
/* Free 2K page table fragment of a 4K page */
bit = (__pa(table) & ~PAGE_MASK)/(PTRS_PER_PTE*sizeof(pte_t));
spin_lock_bh(&mm->context.lock);
- mask = atomic_xor_bits(&page->_refcount, 1U << (bit + 24));
+ mask = atomic_xor_bits(&page->_refcount, 0x11U << (bit + 24));
mask >>= 24;
if (mask & 3)
list_add(&page->lru, &mm->context.pgtable_list);
else
list_del(&page->lru);
spin_unlock_bh(&mm->context.lock);
+ mask = atomic_xor_bits(&page->_refcount, 0x10U << (bit + 24));
+ mask >>= 24;
if (mask != 0)
return;
} else {
diff --git a/arch/um/drivers/virtio_uml.c b/arch/um/drivers/virtio_uml.c
index d11b3d41c378..d5d768188b3b 100644
--- a/arch/um/drivers/virtio_uml.c
+++ b/arch/um/drivers/virtio_uml.c
@@ -1076,6 +1076,8 @@ static void virtio_uml_release_dev(struct device *d)
container_of(d, struct virtio_device, dev);
struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
+ time_travel_propagate_time();
+
/* might not have been opened due to not negotiating the feature */
if (vu_dev->req_fd >= 0) {
um_free_irq(VIRTIO_IRQ, vu_dev);
@@ -1109,6 +1111,8 @@ static int virtio_uml_probe(struct platform_device *pdev)
vu_dev->pdev = pdev;
vu_dev->req_fd = -1;
+ time_travel_propagate_time();
+
do {
rc = os_connect_socket(pdata->socket_path);
} while (rc == -EINTR);
diff --git a/arch/um/include/asm/delay.h b/arch/um/include/asm/delay.h
index 56fc2b8f2dd0..e79b2ab6f40c 100644
--- a/arch/um/include/asm/delay.h
+++ b/arch/um/include/asm/delay.h
@@ -14,7 +14,7 @@ static inline void um_ndelay(unsigned long nsecs)
ndelay(nsecs);
}
#undef ndelay
-#define ndelay um_ndelay
+#define ndelay(n) um_ndelay(n)
static inline void um_udelay(unsigned long usecs)
{
@@ -26,5 +26,5 @@ static inline void um_udelay(unsigned long usecs)
udelay(usecs);
}
#undef udelay
-#define udelay um_udelay
+#define udelay(n) um_udelay(n)
#endif /* __UM_DELAY_H */
diff --git a/arch/um/include/shared/registers.h b/arch/um/include/shared/registers.h
index 0c50fa6e8a55..fbb709a22283 100644
--- a/arch/um/include/shared/registers.h
+++ b/arch/um/include/shared/registers.h
@@ -16,8 +16,8 @@ extern int restore_fp_registers(int pid, unsigned long *fp_regs);
extern int save_fpx_registers(int pid, unsigned long *fp_regs);
extern int restore_fpx_registers(int pid, unsigned long *fp_regs);
extern int save_registers(int pid, struct uml_pt_regs *regs);
-extern int restore_registers(int pid, struct uml_pt_regs *regs);
-extern int init_registers(int pid);
+extern int restore_pid_registers(int pid, struct uml_pt_regs *regs);
+extern int init_pid_registers(int pid);
extern void get_safe_registers(unsigned long *regs, unsigned long *fp_regs);
extern unsigned long get_thread_reg(int reg, jmp_buf *buf);
extern int get_fp_registers(int pid, unsigned long *regs);
diff --git a/arch/um/os-Linux/registers.c b/arch/um/os-Linux/registers.c
index 2d9270508e15..b123955be7ac 100644
--- a/arch/um/os-Linux/registers.c
+++ b/arch/um/os-Linux/registers.c
@@ -21,7 +21,7 @@ int save_registers(int pid, struct uml_pt_regs *regs)
return 0;
}
-int restore_registers(int pid, struct uml_pt_regs *regs)
+int restore_pid_registers(int pid, struct uml_pt_regs *regs)
{
int err;
@@ -36,7 +36,7 @@ int restore_registers(int pid, struct uml_pt_regs *regs)
static unsigned long exec_regs[MAX_REG_NR];
static unsigned long exec_fp_regs[FP_SIZE];
-int init_registers(int pid)
+int init_pid_registers(int pid)
{
int err;
diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c
index f79dc338279e..b28373a2b8d2 100644
--- a/arch/um/os-Linux/start_up.c
+++ b/arch/um/os-Linux/start_up.c
@@ -336,7 +336,7 @@ void __init os_early_checks(void)
check_tmpexec();
pid = start_ptraced_child();
- if (init_registers(pid))
+ if (init_pid_registers(pid))
fatal("Failed to initialize default registers");
stop_ptraced_child(pid, 1, 1);
}
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
index 6004047d25fd..bf91e0a36d77 100644
--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -28,7 +28,11 @@ KCOV_INSTRUMENT := n
targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
vmlinux.bin.xz vmlinux.bin.lzo vmlinux.bin.lz4 vmlinux.bin.zst
-KBUILD_CFLAGS := -m$(BITS) -O2
+# CLANG_FLAGS must come before any cc-disable-warning or cc-option calls in
+# case of cross compiling, as it has the '--target=' flag, which is needed to
+# avoid errors with '-march=i386', and future flags may depend on the target to
+# be valid.
+KBUILD_CFLAGS := -m$(BITS) -O2 $(CLANG_FLAGS)
KBUILD_CFLAGS += -fno-strict-aliasing -fPIE
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
cflags-$(CONFIG_X86_32) := -march=i386
@@ -46,7 +50,6 @@ KBUILD_CFLAGS += -D__DISABLE_EXPORTS
# Disable relocation relaxation in case the link is not PIE.
KBUILD_CFLAGS += $(call as-option,-Wa$(comma)-mrelax-relocations=no)
KBUILD_CFLAGS += -include $(srctree)/include/linux/hidden.h
-KBUILD_CFLAGS += $(CLANG_FLAGS)
# sev-es.c indirectly inludes inat-table.h which is generated during
# compilation and stored in $(objtree). Add the directory to the includes so
diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig
index 78210793d357..38d7acb9610c 100644
--- a/arch/x86/configs/i386_defconfig
+++ b/arch/x86/configs/i386_defconfig
@@ -264,3 +264,4 @@ CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_DEBUG_BOOT_PARAMS=y
+CONFIG_KALLSYMS_ALL=y
diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig
index 9936528e1939..c6e587a9a6f8 100644
--- a/arch/x86/configs/x86_64_defconfig
+++ b/arch/x86/configs/x86_64_defconfig
@@ -260,3 +260,4 @@ CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_DEBUG_BOOT_PARAMS=y
+CONFIG_KALLSYMS_ALL=y
diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h
index 5db5d083c873..331474b150f1 100644
--- a/arch/x86/include/asm/realmode.h
+++ b/arch/x86/include/asm/realmode.h
@@ -89,6 +89,7 @@ static inline void set_real_mode_mem(phys_addr_t mem)
}
void reserve_real_mode(void);
+void load_trampoline_pgtable(void);
#endif /* __ASSEMBLY__ */
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index 5c95d242f38d..bb1430283c72 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -314,11 +314,12 @@ do { \
do { \
__chk_user_ptr(ptr); \
switch (size) { \
- unsigned char x_u8__; \
- case 1: \
+ case 1: { \
+ unsigned char x_u8__; \
__get_user_asm(x_u8__, ptr, "b", "=q", label); \
(x) = x_u8__; \
break; \
+ } \
case 2: \
__get_user_asm(x, ptr, "w", "=r", label); \
break; \
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 14b34963eb1f..5cf1a024408b 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -295,11 +295,17 @@ static void wait_for_panic(void)
panic("Panicing machine check CPU died");
}
-static void mce_panic(const char *msg, struct mce *final, char *exp)
+static noinstr void mce_panic(const char *msg, struct mce *final, char *exp)
{
- int apei_err = 0;
struct llist_node *pending;
struct mce_evt_llist *l;
+ int apei_err = 0;
+
+ /*
+ * Allow instrumentation around external facilities usage. Not that it
+ * matters a whole lot since the machine is going to panic anyway.
+ */
+ instrumentation_begin();
if (!fake_panic) {
/*
@@ -314,7 +320,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
} else {
/* Don't log too much for fake panic */
if (atomic_inc_return(&mce_fake_panicked) > 1)
- return;
+ goto out;
}
pending = mce_gen_pool_prepare_records();
/* First print corrected ones that are still unlogged */
@@ -352,6 +358,9 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
panic(msg);
} else
pr_emerg(HW_ERR "Fake kernel panic: %s\n", msg);
+
+out:
+ instrumentation_end();
}
/* Support code for software error injection */
@@ -682,7 +691,7 @@ static struct notifier_block mce_default_nb = {
/*
* Read ADDR and MISC registers.
*/
-static void mce_read_aux(struct mce *m, int i)
+static noinstr void mce_read_aux(struct mce *m, int i)
{
if (m->status & MCI_STATUS_MISCV)
m->misc = mce_rdmsrl(msr_ops.misc(i));
@@ -1061,10 +1070,13 @@ static int mce_start(int *no_way_out)
* Synchronize between CPUs after main scanning loop.
* This invokes the bulk of the Monarch processing.
*/
-static int mce_end(int order)
+static noinstr int mce_end(int order)
{
- int ret = -1;
u64 timeout = (u64)mca_cfg.monarch_timeout * NSEC_PER_USEC;
+ int ret = -1;
+
+ /* Allow instrumentation around external facilities. */
+ instrumentation_begin();
if (!timeout)
goto reset;
@@ -1108,7 +1120,8 @@ static int mce_end(int order)
/*
* Don't reset anything. That's done by the Monarch.
*/
- return 0;
+ ret = 0;
+ goto out;
}
/*
@@ -1123,6 +1136,10 @@ static int mce_end(int order)
* Let others run again.
*/
atomic_set(&mce_executing, 0);
+
+out:
+ instrumentation_end();
+
return ret;
}
@@ -1443,6 +1460,14 @@ noinstr void do_machine_check(struct pt_regs *regs)
if (worst != MCE_AR_SEVERITY && !kill_it)
goto out;
+ /*
+ * Enable instrumentation around the external facilities like
+ * task_work_add() (via queue_task_work()), fixup_exception() etc.
+ * For now, that is. Fixing this properly would need a lot more involved
+ * reorganization.
+ */
+ instrumentation_begin();
+
/* Fault was in user mode and we need to take some action */
if ((m.cs & 3) == 3) {
/* If this triggers there is no way to recover. Die hard. */
@@ -1468,6 +1493,9 @@ noinstr void do_machine_check(struct pt_regs *regs)
if (m.kflags & MCE_IN_KERNEL_COPYIN)
queue_task_work(&m, msg, kill_it);
}
+
+ instrumentation_end();
+
out:
mce_wrmsrl(MSR_IA32_MCG_STATUS, 0);
}
diff --git a/arch/x86/kernel/cpu/mce/inject.c b/arch/x86/kernel/cpu/mce/inject.c
index 3a44346f2276..e7808309d471 100644
--- a/arch/x86/kernel/cpu/mce/inject.c
+++ b/arch/x86/kernel/cpu/mce/inject.c
@@ -347,7 +347,7 @@ static ssize_t flags_write(struct file *filp, const char __user *ubuf,
char buf[MAX_FLAG_OPT_SIZE], *__buf;
int err;
- if (cnt > MAX_FLAG_OPT_SIZE)
+ if (!cnt || cnt > MAX_FLAG_OPT_SIZE)
return -EINVAL;
if (copy_from_user(&buf, ubuf, cnt))
diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c
index 0c6d1dc59fa2..8e27cbefaa4b 100644
--- a/arch/x86/kernel/early-quirks.c
+++ b/arch/x86/kernel/early-quirks.c
@@ -515,6 +515,7 @@ static const struct intel_early_ops gen11_early_ops __initconst = {
.stolen_size = gen9_stolen_size,
};
+/* Intel integrated GPUs for which we need to reserve "stolen memory" */
static const struct pci_device_id intel_early_ids[] __initconst = {
INTEL_I830_IDS(&i830_early_ops),
INTEL_I845G_IDS(&i845_early_ops),
@@ -588,6 +589,13 @@ static void __init intel_graphics_quirks(int num, int slot, int func)
u16 device;
int i;
+ /*
+ * Reserve "stolen memory" for an integrated GPU. If we've already
+ * found one, there's nothing to do for other (discrete) GPUs.
+ */
+ if (resource_size(&intel_graphics_stolen_res))
+ return;
+
device = read_pci_config_16(num, slot, func, PCI_DEVICE_ID);
for (i = 0; i < ARRAY_SIZE(intel_early_ids); i++) {
@@ -700,7 +708,7 @@ static struct chipset early_qrk[] __initdata = {
{ PCI_VENDOR_ID_INTEL, 0x3406, PCI_CLASS_BRIDGE_HOST,
PCI_BASE_CLASS_BRIDGE, 0, intel_remapping_check },
{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA, PCI_ANY_ID,
- QFLAG_APPLY_ONCE, intel_graphics_quirks },
+ 0, intel_graphics_quirks },
/*
* HPET on the current version of the Baytrail platform has accuracy
* problems: it will halt in deep idle state - so we disable it.
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 798a6f73f894..df3514835b35 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -113,17 +113,9 @@ void __noreturn machine_real_restart(unsigned int type)
spin_unlock(&rtc_lock);
/*
- * Switch back to the initial page table.
+ * Switch to the trampoline page table.
*/
-#ifdef CONFIG_X86_32
- load_cr3(initial_page_table);
-#else
- write_cr3(real_mode_header->trampoline_pgd);
-
- /* Exiting long mode will fail if CR4.PCIDE is set. */
- if (boot_cpu_has(X86_FEATURE_PCID))
- cr4_clear_bits(X86_CR4_PCIDE);
-#endif
+ load_trampoline_pgtable();
/* Jump to the identity-mapped low memory code */
#ifdef CONFIG_X86_32
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index f9f1b45e5ddc..13d1a0ac8916 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -1127,6 +1127,7 @@ static int tsc_cs_enable(struct clocksource *cs)
static struct clocksource clocksource_tsc_early = {
.name = "tsc-early",
.rating = 299,
+ .uncertainty_margin = 32 * NSEC_PER_MSEC,
.read = read_tsc,
.mask = CLOCKSOURCE_MASK(64),
.flags = CLOCK_SOURCE_IS_CONTINUOUS |
diff --git a/arch/x86/kvm/vmx/posted_intr.c b/arch/x86/kvm/vmx/posted_intr.c
index fbd9b1035479..5f8acd2faa7c 100644
--- a/arch/x86/kvm/vmx/posted_intr.c
+++ b/arch/x86/kvm/vmx/posted_intr.c
@@ -15,7 +15,7 @@
* can find which vCPU should be waken up.
*/
static DEFINE_PER_CPU(struct list_head, blocked_vcpu_on_cpu);
-static DEFINE_PER_CPU(spinlock_t, blocked_vcpu_on_cpu_lock);
+static DEFINE_PER_CPU(raw_spinlock_t, blocked_vcpu_on_cpu_lock);
static inline struct pi_desc *vcpu_to_pi_desc(struct kvm_vcpu *vcpu)
{
@@ -121,9 +121,9 @@ static void __pi_post_block(struct kvm_vcpu *vcpu)
new.control) != old.control);
if (!WARN_ON_ONCE(vcpu->pre_pcpu == -1)) {
- spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
+ raw_spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
list_del(&vcpu->blocked_vcpu_list);
- spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
+ raw_spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
vcpu->pre_pcpu = -1;
}
}
@@ -154,11 +154,11 @@ int pi_pre_block(struct kvm_vcpu *vcpu)
local_irq_disable();
if (!WARN_ON_ONCE(vcpu->pre_pcpu != -1)) {
vcpu->pre_pcpu = vcpu->cpu;
- spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
+ raw_spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
list_add_tail(&vcpu->blocked_vcpu_list,
&per_cpu(blocked_vcpu_on_cpu,
vcpu->pre_pcpu));
- spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
+ raw_spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, vcpu->pre_pcpu));
}
do {
@@ -215,7 +215,7 @@ void pi_wakeup_handler(void)
struct kvm_vcpu *vcpu;
int cpu = smp_processor_id();
- spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
+ raw_spin_lock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
list_for_each_entry(vcpu, &per_cpu(blocked_vcpu_on_cpu, cpu),
blocked_vcpu_list) {
struct pi_desc *pi_desc = vcpu_to_pi_desc(vcpu);
@@ -223,13 +223,13 @@ void pi_wakeup_handler(void)
if (pi_test_on(pi_desc) == 1)
kvm_vcpu_kick(vcpu);
}
- spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
+ raw_spin_unlock(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
}
void __init pi_init_cpu(int cpu)
{
INIT_LIST_HEAD(&per_cpu(blocked_vcpu_on_cpu, cpu));
- spin_lock_init(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
+ raw_spin_lock_init(&per_cpu(blocked_vcpu_on_cpu_lock, cpu));
}
bool pi_has_pending_interrupt(struct kvm_vcpu *vcpu)
diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c
index 3313bffbecd4..1a702c6a226e 100644
--- a/arch/x86/realmode/init.c
+++ b/arch/x86/realmode/init.c
@@ -17,6 +17,32 @@ u32 *trampoline_cr4_features;
/* Hold the pgd entry used on booting additional CPUs */
pgd_t trampoline_pgd_entry;
+void load_trampoline_pgtable(void)
+{
+#ifdef CONFIG_X86_32
+ load_cr3(initial_page_table);
+#else
+ /*
+ * This function is called before exiting to real-mode and that will
+ * fail with CR4.PCIDE still set.
+ */
+ if (boot_cpu_has(X86_FEATURE_PCID))
+ cr4_clear_bits(X86_CR4_PCIDE);
+
+ write_cr3(real_mode_header->trampoline_pgd);
+#endif
+
+ /*
+ * The CR3 write above will not flush global TLB entries.
+ * Stale, global entries from previous page tables may still be
+ * present. Flush those stale entries.
+ *
+ * This ensures that memory accessed while running with
+ * trampoline_pgd is *actually* mapped into trampoline_pgd.
+ */
+ __flush_tlb_all();
+}
+
void __init reserve_real_mode(void)
{
phys_addr_t mem;
diff --git a/arch/x86/um/syscalls_64.c b/arch/x86/um/syscalls_64.c
index 58f51667e2e4..8249685b4096 100644
--- a/arch/x86/um/syscalls_64.c
+++ b/arch/x86/um/syscalls_64.c
@@ -11,6 +11,7 @@
#include <linux/uaccess.h>
#include <asm/prctl.h> /* XXX This should get the constants from libc */
#include <os.h>
+#include <registers.h>
long arch_prctl(struct task_struct *task, int option,
unsigned long __user *arg2)
@@ -35,7 +36,7 @@ long arch_prctl(struct task_struct *task, int option,
switch (option) {
case ARCH_SET_FS:
case ARCH_SET_GS:
- ret = restore_registers(pid, ¤t->thread.regs.regs);
+ ret = restore_pid_registers(pid, ¤t->thread.regs.regs);
if (ret)
return ret;
break;
diff --git a/block/blk-flush.c b/block/blk-flush.c
index 70f1d02135ed..33b487b5cbf7 100644
--- a/block/blk-flush.c
+++ b/block/blk-flush.c
@@ -236,8 +236,10 @@ static void flush_end_io(struct request *flush_rq, blk_status_t error)
* avoiding use-after-free.
*/
WRITE_ONCE(flush_rq->state, MQ_RQ_IDLE);
- if (fq->rq_status != BLK_STS_OK)
+ if (fq->rq_status != BLK_STS_OK) {
error = fq->rq_status;
+ fq->rq_status = BLK_STS_OK;
+ }
if (!q->elevator) {
flush_rq->tag = BLK_MQ_NO_TAG;
diff --git a/block/blk-pm.c b/block/blk-pm.c
index 17bd020268d4..2dad62cc1572 100644
--- a/block/blk-pm.c
+++ b/block/blk-pm.c
@@ -163,27 +163,19 @@ EXPORT_SYMBOL(blk_pre_runtime_resume);
/**
* blk_post_runtime_resume - Post runtime resume processing
* @q: the queue of the device
- * @err: return value of the device's runtime_resume function
*
* Description:
- * Update the queue's runtime status according to the return value of the
- * device's runtime_resume function. If the resume was successful, call
- * blk_set_runtime_active() to do the real work of restarting the queue.
+ * For historical reasons, this routine merely calls blk_set_runtime_active()
+ * to do the real work of restarting the queue. It does this regardless of
+ * whether the device's runtime-resume succeeded; even if it failed the
+ * driver or error handler will need to communicate with the device.
*
* This function should be called near the end of the device's
* runtime_resume callback.
*/
-void blk_post_runtime_resume(struct request_queue *q, int err)
+void blk_post_runtime_resume(struct request_queue *q)
{
- if (!q->dev)
- return;
- if (!err) {
- blk_set_runtime_active(q);
- } else {
- spin_lock_irq(&q->queue_lock);
- q->rpm_status = RPM_SUSPENDED;
- spin_unlock_irq(&q->queue_lock);
- }
+ blk_set_runtime_active(q);
}
EXPORT_SYMBOL(blk_post_runtime_resume);
@@ -201,7 +193,7 @@ EXPORT_SYMBOL(blk_post_runtime_resume);
* runtime PM status and re-enable peeking requests from the queue. It
* should be called before first request is added to the queue.
*
- * This function is also called by blk_post_runtime_resume() for successful
+ * This function is also called by blk_post_runtime_resume() for
* runtime resumes. It does everything necessary to restart the queue.
*/
void blk_set_runtime_active(struct request_queue *q)
diff --git a/crypto/jitterentropy.c b/crypto/jitterentropy.c
index 6e147c43fc18..37c4c308339e 100644
--- a/crypto/jitterentropy.c
+++ b/crypto/jitterentropy.c
@@ -265,7 +265,6 @@ static int jent_stuck(struct rand_data *ec, __u64 current_delta)
{
__u64 delta2 = jent_delta(ec->last_delta, current_delta);
__u64 delta3 = jent_delta(ec->last_delta2, delta2);
- unsigned int delta_masked = current_delta & JENT_APT_WORD_MASK;
ec->last_delta = current_delta;
ec->last_delta2 = delta2;
@@ -274,7 +273,7 @@ static int jent_stuck(struct rand_data *ec, __u64 current_delta)
* Insert the result of the comparison of two back-to-back time
* deltas.
*/
- jent_apt_insert(ec, delta_masked);
+ jent_apt_insert(ec, current_delta);
if (!current_delta || !delta2 || !delta3) {
/* RCT with a stuck bit */
diff --git a/drivers/acpi/acpica/exfield.c b/drivers/acpi/acpica/exfield.c
index 3323a2ba6a31..b3230e511870 100644
--- a/drivers/acpi/acpica/exfield.c
+++ b/drivers/acpi/acpica/exfield.c
@@ -326,12 +326,7 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc,
obj_desc->field.base_byte_offset,
source_desc->buffer.pointer, data_length);
- if ((obj_desc->field.region_obj->region.address ==
- PCC_MASTER_SUBSPACE
- && MASTER_SUBSPACE_COMMAND(obj_desc->field.
- base_byte_offset))
- || GENERIC_SUBSPACE_COMMAND(obj_desc->field.
- base_byte_offset)) {
+ if (MASTER_SUBSPACE_COMMAND(obj_desc->field.base_byte_offset)) {
/* Perform the write */
diff --git a/drivers/acpi/acpica/exoparg1.c b/drivers/acpi/acpica/exoparg1.c
index a46d685a3ffc..9d67dfd93d5b 100644
--- a/drivers/acpi/acpica/exoparg1.c
+++ b/drivers/acpi/acpica/exoparg1.c
@@ -1007,7 +1007,8 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)
(walk_state, return_desc,
&temp_desc);
if (ACPI_FAILURE(status)) {
- goto cleanup;
+ return_ACPI_STATUS
+ (status);
}
return_desc = temp_desc;
diff --git a/drivers/acpi/acpica/hwesleep.c b/drivers/acpi/acpica/hwesleep.c
index 4836a4b8b38b..142a755be688 100644
--- a/drivers/acpi/acpica/hwesleep.c
+++ b/drivers/acpi/acpica/hwesleep.c
@@ -104,7 +104,9 @@ acpi_status acpi_hw_extended_sleep(u8 sleep_state)
/* Flush caches, as per ACPI specification */
- ACPI_FLUSH_CPU_CACHE();
+ if (sleep_state < ACPI_STATE_S4) {
+ ACPI_FLUSH_CPU_CACHE();
+ }
status = acpi_os_enter_sleep(sleep_state, sleep_control, 0);
if (status == AE_CTRL_TERMINATE) {
diff --git a/drivers/acpi/acpica/hwsleep.c b/drivers/acpi/acpica/hwsleep.c
index fcc84d196238..6a20bb5059c1 100644
--- a/drivers/acpi/acpica/hwsleep.c
+++ b/drivers/acpi/acpica/hwsleep.c
@@ -110,7 +110,9 @@ acpi_status acpi_hw_legacy_sleep(u8 sleep_state)
/* Flush caches, as per ACPI specification */
- ACPI_FLUSH_CPU_CACHE();
+ if (sleep_state < ACPI_STATE_S4) {
+ ACPI_FLUSH_CPU_CACHE();
+ }
status = acpi_os_enter_sleep(sleep_state, pm1a_control, pm1b_control);
if (status == AE_CTRL_TERMINATE) {
diff --git a/drivers/acpi/acpica/hwxfsleep.c b/drivers/acpi/acpica/hwxfsleep.c
index f1645d87864c..3948c34d8583 100644
--- a/drivers/acpi/acpica/hwxfsleep.c
+++ b/drivers/acpi/acpica/hwxfsleep.c
@@ -162,8 +162,6 @@ acpi_status acpi_enter_sleep_state_s4bios(void)
return_ACPI_STATUS(status);
}
- ACPI_FLUSH_CPU_CACHE();
-
status = acpi_hw_write_port(acpi_gbl_FADT.smi_command,
(u32)acpi_gbl_FADT.s4_bios_request, 8);
if (ACPI_FAILURE(status)) {
diff --git a/drivers/acpi/acpica/utdelete.c b/drivers/acpi/acpica/utdelete.c
index 72d2c0b65633..cb1750e7a628 100644
--- a/drivers/acpi/acpica/utdelete.c
+++ b/drivers/acpi/acpica/utdelete.c
@@ -422,6 +422,7 @@ acpi_ut_update_ref_count(union acpi_operand_object *object, u32 action)
ACPI_WARNING((AE_INFO,
"Obj %p, Reference Count is already zero, cannot decrement\n",
object));
+ return;
}
ACPI_DEBUG_PRINT_RAW((ACPI_DB_ALLOCATIONS,
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index e04352c1dc2c..2376f57b3617 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -59,6 +59,7 @@ static int battery_bix_broken_package;
static int battery_notification_delay_ms;
static int battery_ac_is_broken;
static int battery_check_pmic = 1;
+static int battery_quirk_notcharging;
static unsigned int cache_time = 1000;
module_param(cache_time, uint, 0644);
MODULE_PARM_DESC(cache_time, "cache time in milliseconds");
@@ -222,6 +223,8 @@ static int acpi_battery_get_property(struct power_supply *psy,
val->intval = POWER_SUPPLY_STATUS_CHARGING;
else if (acpi_battery_is_charged(battery))
val->intval = POWER_SUPPLY_STATUS_FULL;
+ else if (battery_quirk_notcharging)
+ val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
else
val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
break;
@@ -1105,6 +1108,12 @@ battery_do_not_check_pmic_quirk(const struct dmi_system_id *d)
return 0;
}
+static int __init battery_quirk_not_charging(const struct dmi_system_id *d)
+{
+ battery_quirk_notcharging = 1;
+ return 0;
+}
+
static const struct dmi_system_id bat_dmi_table[] __initconst = {
{
/* NEC LZ750/LS */
@@ -1149,6 +1158,19 @@ static const struct dmi_system_id bat_dmi_table[] __initconst = {
DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo MIIX 320-10ICR"),
},
},
+ {
+ /*
+ * On Lenovo ThinkPads the BIOS specification defines
+ * a state when the bits for charging and discharging
+ * are both set to 0. That state is "Not Charging".
+ */
+ .callback = battery_quirk_not_charging,
+ .ident = "Lenovo ThinkPad",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad"),
+ },
+ },
{},
};
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index e317214aabec..5e14288fcabe 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -98,8 +98,8 @@ int acpi_bus_get_status(struct acpi_device *device)
acpi_status status;
unsigned long long sta;
- if (acpi_device_always_present(device)) {
- acpi_set_device_status(device, ACPI_STA_DEFAULT);
+ if (acpi_device_override_status(device, &sta)) {
+ acpi_set_device_status(device, sta);
return 0;
}
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index be3e0921a6c0..3f2e5ea9ab6b 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -166,6 +166,7 @@ struct acpi_ec_query {
struct transaction transaction;
struct work_struct work;
struct acpi_ec_query_handler *handler;
+ struct acpi_ec *ec;
};
static int acpi_ec_query(struct acpi_ec *ec, u8 *data);
@@ -469,6 +470,7 @@ static void acpi_ec_submit_query(struct acpi_ec *ec)
ec_dbg_evt("Command(%s) submitted/blocked",
acpi_ec_cmd_string(ACPI_EC_COMMAND_QUERY));
ec->nr_pending_queries++;
+ ec->events_in_progress++;
queue_work(ec_wq, &ec->work);
}
}
@@ -535,7 +537,7 @@ static void acpi_ec_enable_event(struct acpi_ec *ec)
#ifdef CONFIG_PM_SLEEP
static void __acpi_ec_flush_work(void)
{
- drain_workqueue(ec_wq); /* flush ec->work */
+ flush_workqueue(ec_wq); /* flush ec->work */
flush_workqueue(ec_query_wq); /* flush queries */
}
@@ -1116,7 +1118,7 @@ void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit)
}
EXPORT_SYMBOL_GPL(acpi_ec_remove_query_handler);
-static struct acpi_ec_query *acpi_ec_create_query(u8 *pval)
+static struct acpi_ec_query *acpi_ec_create_query(struct acpi_ec *ec, u8 *pval)
{
struct acpi_ec_query *q;
struct transaction *t;
@@ -1124,11 +1126,13 @@ static struct acpi_ec_query *acpi_ec_create_query(u8 *pval)
q = kzalloc(sizeof (struct acpi_ec_query), GFP_KERNEL);
if (!q)
return NULL;
+
INIT_WORK(&q->work, acpi_ec_event_processor);
t = &q->transaction;
t->command = ACPI_EC_COMMAND_QUERY;
t->rdata = pval;
t->rlen = 1;
+ q->ec = ec;
return q;
}
@@ -1145,13 +1149,21 @@ static void acpi_ec_event_processor(struct work_struct *work)
{
struct acpi_ec_query *q = container_of(work, struct acpi_ec_query, work);
struct acpi_ec_query_handler *handler = q->handler;
+ struct acpi_ec *ec = q->ec;
ec_dbg_evt("Query(0x%02x) started", handler->query_bit);
+
if (handler->func)
handler->func(handler->data);
else if (handler->handle)
acpi_evaluate_object(handler->handle, NULL, NULL, NULL);
+
ec_dbg_evt("Query(0x%02x) stopped", handler->query_bit);
+
+ spin_lock_irq(&ec->lock);
+ ec->queries_in_progress--;
+ spin_unlock_irq(&ec->lock);
+
acpi_ec_delete_query(q);
}
@@ -1161,7 +1173,7 @@ static int acpi_ec_query(struct acpi_ec *ec, u8 *data)
int result;
struct acpi_ec_query *q;
- q = acpi_ec_create_query(&value);
+ q = acpi_ec_create_query(ec, &value);
if (!q)
return -ENOMEM;
@@ -1183,19 +1195,20 @@ static int acpi_ec_query(struct acpi_ec *ec, u8 *data)
}
/*
- * It is reported that _Qxx are evaluated in a parallel way on
- * Windows:
+ * It is reported that _Qxx are evaluated in a parallel way on Windows:
* https://bugzilla.kernel.org/show_bug.cgi?id=94411
*
- * Put this log entry before schedule_work() in order to make
- * it appearing before any other log entries occurred during the
- * work queue execution.
+ * Put this log entry before queue_work() to make it appear in the log
+ * before any other messages emitted during workqueue handling.
*/
ec_dbg_evt("Query(0x%02x) scheduled", value);
- if (!queue_work(ec_query_wq, &q->work)) {
- ec_dbg_evt("Query(0x%02x) overlapped", value);
- result = -EBUSY;
- }
+
+ spin_lock_irq(&ec->lock);
+
+ ec->queries_in_progress++;
+ queue_work(ec_query_wq, &q->work);
+
+ spin_unlock_irq(&ec->lock);
err_exit:
if (result)
@@ -1253,6 +1266,10 @@ static void acpi_ec_event_handler(struct work_struct *work)
ec_dbg_evt("Event stopped");
acpi_ec_check_event(ec);
+
+ spin_lock_irqsave(&ec->lock, flags);
+ ec->events_in_progress--;
+ spin_unlock_irqrestore(&ec->lock, flags);
}
static void acpi_ec_handle_interrupt(struct acpi_ec *ec)
@@ -2034,6 +2051,7 @@ void acpi_ec_set_gpe_wake_mask(u8 action)
bool acpi_ec_dispatch_gpe(void)
{
+ bool work_in_progress;
u32 ret;
if (!first_ec)
@@ -2054,8 +2072,19 @@ bool acpi_ec_dispatch_gpe(void)
if (ret == ACPI_INTERRUPT_HANDLED)
pm_pr_dbg("ACPI EC GPE dispatched\n");
- /* Flush the event and query workqueues. */
- acpi_ec_flush_work();
+ /* Drain EC work. */
+ do {
+ acpi_ec_flush_work();
+
+ pm_pr_dbg("ACPI EC work flushed\n");
+
+ spin_lock_irq(&first_ec->lock);
+
+ work_in_progress = first_ec->events_in_progress +
+ first_ec->queries_in_progress > 0;
+
+ spin_unlock_irq(&first_ec->lock);
+ } while (work_in_progress && !pm_wakeup_pending());
return false;
}
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
index a958ad60a339..125e4901c9b4 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -184,6 +184,8 @@ struct acpi_ec {
struct work_struct work;
unsigned long timestamp;
unsigned long nr_pending_queries;
+ unsigned int events_in_progress;
+ unsigned int queries_in_progress;
bool busy_polling;
unsigned int polling_guard;
};
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index de0533bd4e08..67a5ee2fedfd 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -1577,6 +1577,7 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
{
struct list_head resource_list;
bool is_serial_bus_slave = false;
+ static const struct acpi_device_id ignore_serial_bus_ids[] = {
/*
* These devices have multiple I2cSerialBus resources and an i2c-client
* must be instantiated for each, each with its own i2c_device_id.
@@ -1585,11 +1586,18 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
* drivers/platform/x86/i2c-multi-instantiate.c driver, which knows
* which i2c_device_id to use for each resource.
*/
- static const struct acpi_device_id i2c_multi_instantiate_ids[] = {
{"BSG1160", },
{"BSG2150", },
{"INT33FE", },
{"INT3515", },
+ /*
+ * HIDs of device with an UartSerialBusV2 resource for which userspace
+ * expects a regular tty cdev to be created (instead of the in kernel
+ * serdev) and which have a kernel driver which expects a platform_dev
+ * such as the rfkill-gpio driver.
+ */
+ {"BCM4752", },
+ {"LNV4752", },
{}
};
@@ -1603,8 +1611,7 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
fwnode_property_present(&device->fwnode, "baud")))
return true;
- /* Instantiate a pdev for the i2c-multi-instantiate drv to bind to */
- if (!acpi_match_device_ids(device, i2c_multi_instantiate_ids))
+ if (!acpi_match_device_ids(device, ignore_serial_bus_ids))
return false;
INIT_LIST_HEAD(&resource_list);
diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c
index bdc1ba00aee9..3f9a162be84e 100644
--- a/drivers/acpi/x86/utils.c
+++ b/drivers/acpi/x86/utils.c
@@ -22,58 +22,71 @@
* Some BIOS-es (temporarily) hide specific APCI devices to work around Windows
* driver bugs. We use DMI matching to match known cases of this.
*
- * We work around this by always reporting ACPI_STA_DEFAULT for these
- * devices. Note this MUST only be done for devices where this is safe.
+ * Likewise sometimes some not-actually present devices are sometimes
+ * reported as present, which may cause issues.
*
- * This forcing of devices to be present is limited to specific CPU (SoC)
- * models both to avoid potentially causing trouble on other models and
- * because some HIDs are re-used on different SoCs for completely
- * different devices.
+ * We work around this by using the below quirk list to override the status
+ * reported by the _STA method with a fixed value (ACPI_STA_DEFAULT or 0).
+ * Note this MUST only be done for devices where this is safe.
+ *
+ * This status overriding is limited to specific CPU (SoC) models both to
+ * avoid potentially causing trouble on other models and because some HIDs
+ * are re-used on different SoCs for completely different devices.
*/
-struct always_present_id {
+struct override_status_id {
struct acpi_device_id hid[2];
struct x86_cpu_id cpu_ids[2];
struct dmi_system_id dmi_ids[2]; /* Optional */
const char *uid;
+ const char *path;
+ unsigned long long status;
};
-#define X86_MATCH(model) X86_MATCH_INTEL_FAM6_MODEL(model, NULL)
-
-#define ENTRY(hid, uid, cpu_models, dmi...) { \
+#define ENTRY(status, hid, uid, path, cpu_model, dmi...) { \
{ { hid, }, {} }, \
- { cpu_models, {} }, \
+ { X86_MATCH_INTEL_FAM6_MODEL(cpu_model, NULL), {} }, \
{ { .matches = dmi }, {} }, \
uid, \
+ path, \
+ status, \
}
-static const struct always_present_id always_present_ids[] = {
+#define PRESENT_ENTRY_HID(hid, uid, cpu_model, dmi...) \
+ ENTRY(ACPI_STA_DEFAULT, hid, uid, NULL, cpu_model, dmi)
+
+#define NOT_PRESENT_ENTRY_HID(hid, uid, cpu_model, dmi...) \
+ ENTRY(0, hid, uid, NULL, cpu_model, dmi)
+
+#define PRESENT_ENTRY_PATH(path, cpu_model, dmi...) \
+ ENTRY(ACPI_STA_DEFAULT, "", NULL, path, cpu_model, dmi)
+
+#define NOT_PRESENT_ENTRY_PATH(path, cpu_model, dmi...) \
+ ENTRY(0, "", NULL, path, cpu_model, dmi)
+
+static const struct override_status_id override_status_ids[] = {
/*
* Bay / Cherry Trail PWM directly poked by GPU driver in win10,
* but Linux uses a separate PWM driver, harmless if not used.
*/
- ENTRY("80860F09", "1", X86_MATCH(ATOM_SILVERMONT), {}),
- ENTRY("80862288", "1", X86_MATCH(ATOM_AIRMONT), {}),
+ PRESENT_ENTRY_HID("80860F09", "1", ATOM_SILVERMONT, {}),
+ PRESENT_ENTRY_HID("80862288", "1", ATOM_AIRMONT, {}),
- /* Lenovo Yoga Book uses PWM2 for keyboard backlight control */
- ENTRY("80862289", "2", X86_MATCH(ATOM_AIRMONT), {
- DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X9"),
- }),
/*
* The INT0002 device is necessary to clear wakeup interrupt sources
* on Cherry Trail devices, without it we get nobody cared IRQ msgs.
*/
- ENTRY("INT0002", "1", X86_MATCH(ATOM_AIRMONT), {}),
+ PRESENT_ENTRY_HID("INT0002", "1", ATOM_AIRMONT, {}),
/*
* On the Dell Venue 11 Pro 7130 and 7139, the DSDT hides
* the touchscreen ACPI device until a certain time
* after _SB.PCI0.GFX0.LCD.LCD1._ON gets called has passed
* *and* _STA has been called at least 3 times since.
*/
- ENTRY("SYNA7500", "1", X86_MATCH(HASWELL_L), {
+ PRESENT_ENTRY_HID("SYNA7500", "1", HASWELL_L, {
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7130"),
}),
- ENTRY("SYNA7500", "1", X86_MATCH(HASWELL_L), {
+ PRESENT_ENTRY_HID("SYNA7500", "1", HASWELL_L, {
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7139"),
}),
@@ -81,54 +94,83 @@ static const struct always_present_id always_present_ids[] = {
/*
* The GPD win BIOS dated 20170221 has disabled the accelerometer, the
* drivers sometimes cause crashes under Windows and this is how the
- * manufacturer has solved this :| Note that the the DMI data is less
- * generic then it seems, a board_vendor of "AMI Corporation" is quite
- * rare and a board_name of "Default String" also is rare.
+ * manufacturer has solved this :| The DMI match may not seem unique,
+ * but it is. In the 67000+ DMI decode dumps from linux-hardware.org
+ * only 116 have board_vendor set to "AMI Corporation" and of those 116
+ * only the GPD win and pocket entries' board_name is "Default string".
*
* Unfortunately the GPD pocket also uses these strings and its BIOS
* was copy-pasted from the GPD win, so it has a disabled KIOX000A
* node which we should not enable, thus we also check the BIOS date.
*/
- ENTRY("KIOX000A", "1", X86_MATCH(ATOM_AIRMONT), {
+ PRESENT_ENTRY_HID("KIOX000A", "1", ATOM_AIRMONT, {
DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
DMI_MATCH(DMI_BOARD_NAME, "Default string"),
DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
DMI_MATCH(DMI_BIOS_DATE, "02/21/2017")
}),
- ENTRY("KIOX000A", "1", X86_MATCH(ATOM_AIRMONT), {
+ PRESENT_ENTRY_HID("KIOX000A", "1", ATOM_AIRMONT, {
DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
DMI_MATCH(DMI_BOARD_NAME, "Default string"),
DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
DMI_MATCH(DMI_BIOS_DATE, "03/20/2017")
}),
- ENTRY("KIOX000A", "1", X86_MATCH(ATOM_AIRMONT), {
+ PRESENT_ENTRY_HID("KIOX000A", "1", ATOM_AIRMONT, {
DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
DMI_MATCH(DMI_BOARD_NAME, "Default string"),
DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
DMI_MATCH(DMI_BIOS_DATE, "05/25/2017")
}),
+
+ /*
+ * The GPD win/pocket have a PCI wifi card, but its DSDT has the SDIO
+ * mmc controller enabled and that has a child-device which _PS3
+ * method sets a GPIO causing the PCI wifi card to turn off.
+ * See above remark about uniqueness of the DMI match.
+ */
+ NOT_PRESENT_ENTRY_PATH("\\_SB_.PCI0.SDHB.BRC1", ATOM_AIRMONT, {
+ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"),
+ DMI_EXACT_MATCH(DMI_BOARD_SERIAL, "Default string"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"),
+ }),
};
-bool acpi_device_always_present(struct acpi_device *adev)
+bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *status)
{
bool ret = false;
unsigned int i;
- for (i = 0; i < ARRAY_SIZE(always_present_ids); i++) {
- if (acpi_match_device_ids(adev, always_present_ids[i].hid))
+ for (i = 0; i < ARRAY_SIZE(override_status_ids); i++) {
+ if (!x86_match_cpu(override_status_ids[i].cpu_ids))
continue;
- if (!adev->pnp.unique_id ||
- strcmp(adev->pnp.unique_id, always_present_ids[i].uid))
+ if (override_status_ids[i].dmi_ids[0].matches[0].slot &&
+ !dmi_check_system(override_status_ids[i].dmi_ids))
continue;
- if (!x86_match_cpu(always_present_ids[i].cpu_ids))
- continue;
+ if (override_status_ids[i].path) {
+ struct acpi_buffer path = { ACPI_ALLOCATE_BUFFER, NULL };
+ bool match;
- if (always_present_ids[i].dmi_ids[0].matches[0].slot &&
- !dmi_check_system(always_present_ids[i].dmi_ids))
- continue;
+ if (acpi_get_name(adev->handle, ACPI_FULL_PATHNAME, &path))
+ continue;
+
+ match = strcmp((char *)path.pointer, override_status_ids[i].path) == 0;
+ kfree(path.pointer);
+
+ if (!match)
+ continue;
+ } else {
+ if (acpi_match_device_ids(adev, override_status_ids[i].hid))
+ continue;
+
+ if (!adev->pnp.unique_id ||
+ strcmp(adev->pnp.unique_id, override_status_ids[i].uid))
+ continue;
+ }
+ *status = override_status_ids[i].status;
ret = true;
break;
}
diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index 80e2bbb36422..366b12405708 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -2657,8 +2657,8 @@ static int binder_translate_fd_array(struct binder_fd_array_object *fda,
if (!ret)
ret = binder_translate_fd(fd, offset, t, thread,
in_reply_to);
- if (ret < 0)
- return ret;
+ if (ret)
+ return ret > 0 ? -EINVAL : ret;
}
return 0;
}
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 389d13616d1d..c0566aff5355 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -348,8 +348,7 @@ static void device_link_release_fn(struct work_struct *work)
/* Ensure that all references to the link object have been dropped. */
device_link_synchronize_removal();
- while (refcount_dec_not_one(&link->rpm_active))
- pm_runtime_put(link->supplier);
+ pm_runtime_release_supplier(link, true);
put_device(link->consumer);
put_device(link->supplier);
diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c
index bc649da4899a..157331940488 100644
--- a/drivers/base/power/runtime.c
+++ b/drivers/base/power/runtime.c
@@ -305,19 +305,40 @@ static int rpm_get_suppliers(struct device *dev)
return 0;
}
+/**
+ * pm_runtime_release_supplier - Drop references to device link's supplier.
+ * @link: Target device link.
+ * @check_idle: Whether or not to check if the supplier device is idle.
+ *
+ * Drop all runtime PM references associated with @link to its supplier device
+ * and if @check_idle is set, check if that device is idle (and so it can be
+ * suspended).
+ */
+void pm_runtime_release_supplier(struct device_link *link, bool check_idle)
+{
+ struct device *supplier = link->supplier;
+
+ /*
+ * The additional power.usage_count check is a safety net in case
+ * the rpm_active refcount becomes saturated, in which case
+ * refcount_dec_not_one() would return true forever, but it is not
+ * strictly necessary.
+ */
+ while (refcount_dec_not_one(&link->rpm_active) &&
+ atomic_read(&supplier->power.usage_count) > 0)
+ pm_runtime_put_noidle(supplier);
+
+ if (check_idle)
+ pm_request_idle(supplier);
+}
+
static void __rpm_put_suppliers(struct device *dev, bool try_to_suspend)
{
struct device_link *link;
list_for_each_entry_rcu(link, &dev->links.suppliers, c_node,
- device_links_read_lock_held()) {
-
- while (refcount_dec_not_one(&link->rpm_active))
- pm_runtime_put_noidle(link->supplier);
-
- if (try_to_suspend)
- pm_request_idle(link->supplier);
- }
+ device_links_read_lock_held())
+ pm_runtime_release_supplier(link, try_to_suspend);
}
static void rpm_put_suppliers(struct device *dev)
@@ -1755,9 +1776,7 @@ void pm_runtime_drop_link(struct device_link *link)
return;
pm_runtime_drop_link_count(link->consumer);
-
- while (refcount_dec_not_one(&link->rpm_active))
- pm_runtime_put(link->supplier);
+ pm_runtime_release_supplier(link, true);
}
static bool pm_runtime_need_not_resume(struct device *dev)
diff --git a/drivers/base/property.c b/drivers/base/property.c
index 4c43d30145c6..cf88a5554d9c 100644
--- a/drivers/base/property.c
+++ b/drivers/base/property.c
@@ -1195,8 +1195,10 @@ fwnode_graph_devcon_match(struct fwnode_handle *fwnode, const char *con_id,
fwnode_graph_for_each_endpoint(fwnode, ep) {
node = fwnode_graph_get_remote_port_parent(ep);
- if (!fwnode_device_is_available(node))
+ if (!fwnode_device_is_available(node)) {
+ fwnode_handle_put(node);
continue;
+ }
ret = match(node, con_id, data);
fwnode_handle_put(node);
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
index 456a1787e18d..55a30afc14a0 100644
--- a/drivers/base/regmap/regmap.c
+++ b/drivers/base/regmap/regmap.c
@@ -620,6 +620,7 @@ int regmap_attach_dev(struct device *dev, struct regmap *map,
if (ret)
return ret;
+ regmap_debugfs_exit(map);
regmap_debugfs_init(map);
/* Add a devres resource for dev_get_regmap() */
diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c
index 206bd4d7d7e2..d2fb3eb5816c 100644
--- a/drivers/base/swnode.c
+++ b/drivers/base/swnode.c
@@ -519,7 +519,7 @@ software_node_get_reference_args(const struct fwnode_handle *fwnode,
return -ENOENT;
if (nargs_prop) {
- error = property_entry_read_int_array(swnode->node->properties,
+ error = property_entry_read_int_array(ref->node->properties,
nargs_prop, sizeof(u32),
&nargs_prop_val, 1);
if (error)
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index 7df79ae6b0a1..aaee15058d18 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -1015,7 +1015,7 @@ static DECLARE_DELAYED_WORK(fd_timer, fd_timer_workfn);
static void cancel_activity(void)
{
do_floppy = NULL;
- cancel_delayed_work_sync(&fd_timer);
+ cancel_delayed_work(&fd_timer);
cancel_work_sync(&floppy_work);
}
@@ -3169,6 +3169,8 @@ static void raw_cmd_free(struct floppy_raw_cmd **ptr)
}
}
+#define MAX_LEN (1UL << MAX_ORDER << PAGE_SHIFT)
+
static int raw_cmd_copyin(int cmd, void __user *param,
struct floppy_raw_cmd **rcmd)
{
@@ -3198,7 +3200,7 @@ static int raw_cmd_copyin(int cmd, void __user *param,
ptr->resultcode = 0;
if (ptr->flags & (FD_RAW_READ | FD_RAW_WRITE)) {
- if (ptr->length <= 0)
+ if (ptr->length <= 0 || ptr->length >= MAX_LEN)
return -EINVAL;
ptr->kernel_data = (char *)fd_dma_mem_alloc(ptr->length);
fallback_on_nodma_alloc(&ptr->kernel_data, ptr->length);
diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c
index 5f9f02795631..74856a586216 100644
--- a/drivers/bluetooth/btmtksdio.c
+++ b/drivers/bluetooth/btmtksdio.c
@@ -1042,6 +1042,8 @@ static int btmtksdio_runtime_suspend(struct device *dev)
if (!bdev)
return 0;
+ sdio_set_host_pm_flags(func, MMC_PM_KEEP_POWER);
+
sdio_claim_host(bdev->func);
sdio_writel(bdev->func, C_FW_OWN_REQ_SET, MTK_REG_CHLPCR, &err);
diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c
index 8ea5ca8d71d6..259a643377c2 100644
--- a/drivers/bluetooth/hci_bcm.c
+++ b/drivers/bluetooth/hci_bcm.c
@@ -1164,7 +1164,12 @@ static int bcm_probe(struct platform_device *pdev)
return -ENOMEM;
dev->dev = &pdev->dev;
- dev->irq = platform_get_irq(pdev, 0);
+
+ ret = platform_get_irq(pdev, 0);
+ if (ret < 0)
+ return ret;
+
+ dev->irq = ret;
/* Initialize routing field to an unused value */
dev->pcm_int_params[0] = 0xff;
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index 4184faef9f16..dc7ee5dd2eec 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -1844,6 +1844,9 @@ static int qca_power_off(struct hci_dev *hdev)
hu->hdev->hw_error = NULL;
hu->hdev->cmd_timeout = NULL;
+ del_timer_sync(&qca->wake_retrans_timer);
+ del_timer_sync(&qca->tx_idle_timer);
+
/* Stop sending shutdown command if soc crashes. */
if (soc_type != QCA_ROME
&& qca->memdump_state == QCA_MEMDUMP_IDLE) {
@@ -1987,7 +1990,7 @@ static int qca_serdev_probe(struct serdev_device *serdev)
qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable",
GPIOD_OUT_LOW);
- if (!qcadev->bt_en) {
+ if (IS_ERR_OR_NULL(qcadev->bt_en)) {
dev_warn(&serdev->dev, "failed to acquire enable gpio\n");
power_ctrl_enabled = false;
}
diff --git a/drivers/bluetooth/hci_vhci.c b/drivers/bluetooth/hci_vhci.c
index 8ab26dec5f6e..8469f9876dd2 100644
--- a/drivers/bluetooth/hci_vhci.c
+++ b/drivers/bluetooth/hci_vhci.c
@@ -121,6 +121,8 @@ static int __vhci_create_device(struct vhci_data *data, __u8 opcode)
if (opcode & 0x80)
set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks);
+ set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
+
if (hci_register_dev(hdev) < 0) {
BT_ERR("Can't register HCI device");
hci_free_dev(hdev);
diff --git a/drivers/char/mwave/3780i.h b/drivers/char/mwave/3780i.h
index 9ccb6b270b07..95164246afd1 100644
--- a/drivers/char/mwave/3780i.h
+++ b/drivers/char/mwave/3780i.h
@@ -68,7 +68,7 @@ typedef struct {
unsigned char ClockControl:1; /* RW: Clock control: 0=normal, 1=stop 3780i clocks */
unsigned char SoftReset:1; /* RW: Soft reset 0=normal, 1=soft reset active */
unsigned char ConfigMode:1; /* RW: Configuration mode, 0=normal, 1=config mode */
- unsigned char Reserved:5; /* 0: Reserved */
+ unsigned short Reserved:13; /* 0: Reserved */
} DSP_ISA_SLAVE_CONTROL;
diff --git a/drivers/char/random.c b/drivers/char/random.c
index 8c94380e7a46..5444206f35e2 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -922,12 +922,14 @@ static struct crng_state *select_crng(void)
/*
* crng_fast_load() can be called by code in the interrupt service
- * path. So we can't afford to dilly-dally.
+ * path. So we can't afford to dilly-dally. Returns the number of
+ * bytes processed from cp.
*/
-static int crng_fast_load(const char *cp, size_t len)
+static size_t crng_fast_load(const char *cp, size_t len)
{
unsigned long flags;
char *p;
+ size_t ret = 0;
if (!spin_trylock_irqsave(&primary_crng.lock, flags))
return 0;
@@ -938,7 +940,7 @@ static int crng_fast_load(const char *cp, size_t len)
p = (unsigned char *) &primary_crng.state[4];
while (len > 0 && crng_init_cnt < CRNG_INIT_CNT_THRESH) {
p[crng_init_cnt % CHACHA_KEY_SIZE] ^= *cp;
- cp++; crng_init_cnt++; len--;
+ cp++; crng_init_cnt++; len--; ret++;
}
spin_unlock_irqrestore(&primary_crng.lock, flags);
if (crng_init_cnt >= CRNG_INIT_CNT_THRESH) {
@@ -946,7 +948,7 @@ static int crng_fast_load(const char *cp, size_t len)
crng_init = 1;
pr_notice("fast init done\n");
}
- return 1;
+ return ret;
}
/*
@@ -1299,7 +1301,7 @@ void add_interrupt_randomness(int irq, int irq_flags)
if (unlikely(crng_init == 0)) {
if ((fast_pool->count >= 64) &&
crng_fast_load((char *) fast_pool->pool,
- sizeof(fast_pool->pool))) {
+ sizeof(fast_pool->pool)) > 0) {
fast_pool->count = 0;
fast_pool->last = now;
}
@@ -2319,8 +2321,11 @@ void add_hwgenerator_randomness(const char *buffer, size_t count,
struct entropy_store *poolp = &input_pool;
if (unlikely(crng_init == 0)) {
- crng_fast_load(buffer, count);
- return;
+ size_t ret = crng_fast_load(buffer, count);
+ count -= ret;
+ buffer += ret;
+ if (!count || crng_init == 0)
+ return;
}
/* Suspend writing if we're above the trickle threshold.
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
index b2659a4c4016..dc56b976d816 100644
--- a/drivers/char/tpm/tpm_tis_core.c
+++ b/drivers/char/tpm/tpm_tis_core.c
@@ -950,9 +950,11 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
priv->timeout_max = TPM_TIMEOUT_USECS_MAX;
priv->phy_ops = phy_ops;
+ dev_set_drvdata(&chip->dev, priv);
+
rc = tpm_tis_read32(priv, TPM_DID_VID(0), &vendor);
if (rc < 0)
- goto out_err;
+ return rc;
priv->manufacturer_id = vendor;
@@ -962,8 +964,6 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
priv->timeout_max = TIS_TIMEOUT_MAX_ATML;
}
- dev_set_drvdata(&chip->dev, priv);
-
if (is_bsw()) {
priv->ilb_base_addr = ioremap(INTEL_LEGACY_BLK_BASE_ADDR,
ILB_REMAP_SIZE);
@@ -994,7 +994,15 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
intmask |= TPM_INTF_CMD_READY_INT | TPM_INTF_LOCALITY_CHANGE_INT |
TPM_INTF_DATA_AVAIL_INT | TPM_INTF_STS_VALID_INT;
intmask &= ~TPM_GLOBAL_INT_ENABLE;
+
+ rc = request_locality(chip, 0);
+ if (rc < 0) {
+ rc = -ENODEV;
+ goto out_err;
+ }
+
tpm_tis_write32(priv, TPM_INT_ENABLE(priv->locality), intmask);
+ release_locality(chip, 0);
rc = tpm_chip_start(chip);
if (rc)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index 1ac803e14fa3..178886823b90 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -933,8 +933,7 @@ static int bcm2835_clock_is_on(struct clk_hw *hw)
static u32 bcm2835_clock_choose_div(struct clk_hw *hw,
unsigned long rate,
- unsigned long parent_rate,
- bool round_up)
+ unsigned long parent_rate)
{
struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
const struct bcm2835_clock_data *data = clock->data;
@@ -946,10 +945,6 @@ static u32 bcm2835_clock_choose_div(struct clk_hw *hw,
rem = do_div(temp, rate);
div = temp;
-
- /* Round up and mask off the unused bits */
- if (round_up && ((div & unused_frac_mask) != 0 || rem != 0))
- div += unused_frac_mask + 1;
div &= ~unused_frac_mask;
/* different clamping limits apply for a mash clock */
@@ -1080,7 +1075,7 @@ static int bcm2835_clock_set_rate(struct clk_hw *hw,
struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
struct bcm2835_cprman *cprman = clock->cprman;
const struct bcm2835_clock_data *data = clock->data;
- u32 div = bcm2835_clock_choose_div(hw, rate, parent_rate, false);
+ u32 div = bcm2835_clock_choose_div(hw, rate, parent_rate);
u32 ctl;
spin_lock(&cprman->regs_lock);
@@ -1131,7 +1126,7 @@ static unsigned long bcm2835_clock_choose_div_and_prate(struct clk_hw *hw,
if (!(BIT(parent_idx) & data->set_rate_parent)) {
*prate = clk_hw_get_rate(parent);
- *div = bcm2835_clock_choose_div(hw, rate, *prate, true);
+ *div = bcm2835_clock_choose_div(hw, rate, *prate);
*avgrate = bcm2835_clock_rate_from_divisor(clock, *prate, *div);
@@ -1217,7 +1212,7 @@ static int bcm2835_clock_determine_rate(struct clk_hw *hw,
rate = bcm2835_clock_choose_div_and_prate(hw, i, req->rate,
&div, &prate,
&avgrate);
- if (rate > best_rate && rate <= req->rate) {
+ if (abs(req->rate - rate) < abs(req->rate - best_rate)) {
best_parent = parent;
best_prate = prate;
best_rate = rate;
diff --git a/drivers/clk/clk-bm1880.c b/drivers/clk/clk-bm1880.c
index e6d6599d310a..fad78a22218e 100644
--- a/drivers/clk/clk-bm1880.c
+++ b/drivers/clk/clk-bm1880.c
@@ -522,14 +522,6 @@ static struct clk_hw *bm1880_clk_register_pll(struct bm1880_pll_hw_clock *pll_cl
return hw;
}
-static void bm1880_clk_unregister_pll(struct clk_hw *hw)
-{
- struct bm1880_pll_hw_clock *pll_hw = to_bm1880_pll_clk(hw);
-
- clk_hw_unregister(hw);
- kfree(pll_hw);
-}
-
static int bm1880_clk_register_plls(struct bm1880_pll_hw_clock *clks,
int num_clks,
struct bm1880_clock_data *data)
@@ -555,7 +547,7 @@ static int bm1880_clk_register_plls(struct bm1880_pll_hw_clock *clks,
err_clk:
while (i--)
- bm1880_clk_unregister_pll(data->hw_data.hws[clks[i].pll.id]);
+ clk_hw_unregister(data->hw_data.hws[clks[i].pll.id]);
return PTR_ERR(hw);
}
@@ -695,14 +687,6 @@ static struct clk_hw *bm1880_clk_register_div(struct bm1880_div_hw_clock *div_cl
return hw;
}
-static void bm1880_clk_unregister_div(struct clk_hw *hw)
-{
- struct bm1880_div_hw_clock *div_hw = to_bm1880_div_clk(hw);
-
- clk_hw_unregister(hw);
- kfree(div_hw);
-}
-
static int bm1880_clk_register_divs(struct bm1880_div_hw_clock *clks,
int num_clks,
struct bm1880_clock_data *data)
@@ -729,7 +713,7 @@ static int bm1880_clk_register_divs(struct bm1880_div_hw_clock *clks,
err_clk:
while (i--)
- bm1880_clk_unregister_div(data->hw_data.hws[clks[i].div.id]);
+ clk_hw_unregister(data->hw_data.hws[clks[i].div.id]);
return PTR_ERR(hw);
}
diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c
index eb22f4fdbc6b..772b48ad0cd7 100644
--- a/drivers/clk/clk-si5341.c
+++ b/drivers/clk/clk-si5341.c
@@ -1576,7 +1576,7 @@ static int si5341_probe(struct i2c_client *client,
clk_prepare(data->clk[i].hw.clk);
}
- err = of_clk_add_hw_provider(client->dev.of_node, of_clk_si5341_get,
+ err = devm_of_clk_add_hw_provider(&client->dev, of_clk_si5341_get,
data);
if (err) {
dev_err(&client->dev, "unable to add clk provider\n");
diff --git a/drivers/clk/clk-stm32f4.c b/drivers/clk/clk-stm32f4.c
index 5c75e3d906c2..682a18b392f0 100644
--- a/drivers/clk/clk-stm32f4.c
+++ b/drivers/clk/clk-stm32f4.c
@@ -129,7 +129,6 @@ static const struct stm32f4_gate_data stm32f429_gates[] __initconst = {
{ STM32F4_RCC_APB2ENR, 20, "spi5", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 21, "spi6", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 22, "sai1", "apb2_div" },
- { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div" },
};
static const struct stm32f4_gate_data stm32f469_gates[] __initconst = {
@@ -211,7 +210,6 @@ static const struct stm32f4_gate_data stm32f469_gates[] __initconst = {
{ STM32F4_RCC_APB2ENR, 20, "spi5", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 21, "spi6", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 22, "sai1", "apb2_div" },
- { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div" },
};
static const struct stm32f4_gate_data stm32f746_gates[] __initconst = {
@@ -286,7 +284,6 @@ static const struct stm32f4_gate_data stm32f746_gates[] __initconst = {
{ STM32F4_RCC_APB2ENR, 21, "spi6", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 22, "sai1", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 23, "sai2", "apb2_div" },
- { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div" },
};
static const struct stm32f4_gate_data stm32f769_gates[] __initconst = {
@@ -364,7 +361,6 @@ static const struct stm32f4_gate_data stm32f769_gates[] __initconst = {
{ STM32F4_RCC_APB2ENR, 21, "spi6", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 22, "sai1", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 23, "sai2", "apb2_div" },
- { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div" },
{ STM32F4_RCC_APB2ENR, 30, "mdio", "apb2_div" },
};
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 515ef39c4610..b8a0e3d23698 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -3314,6 +3314,24 @@ static int __init clk_debug_init(void)
{
struct clk_core *core;
+#ifdef CLOCK_ALLOW_WRITE_DEBUGFS
+ pr_warn("\n");
+ pr_warn("********************************************************************\n");
+ pr_warn("** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **\n");
+ pr_warn("** **\n");
+ pr_warn("** WRITEABLE clk DebugFS SUPPORT HAS BEEN ENABLED IN THIS KERNEL **\n");
+ pr_warn("** **\n");
+ pr_warn("** This means that this kernel is built to expose clk operations **\n");
+ pr_warn("** such as parent or rate setting, enabling, disabling, etc. **\n");
+ pr_warn("** to userspace, which may compromise security on your system. **\n");
+ pr_warn("** **\n");
+ pr_warn("** If you see this message and you are not debugging the **\n");
+ pr_warn("** kernel, report this immediately to your vendor! **\n");
+ pr_warn("** **\n");
+ pr_warn("** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **\n");
+ pr_warn("********************************************************************\n");
+#endif
+
rootdir = debugfs_create_dir("clk", NULL);
debugfs_create_file("clk_summary", 0444, rootdir, &all_lists,
diff --git a/drivers/clk/imx/clk-imx8mn.c b/drivers/clk/imx/clk-imx8mn.c
index 33a7ddc23cd2..db122d94db58 100644
--- a/drivers/clk/imx/clk-imx8mn.c
+++ b/drivers/clk/imx/clk-imx8mn.c
@@ -274,9 +274,9 @@ static const char * const imx8mn_pdm_sels[] = {"osc_24m", "sys_pll2_100m", "audi
static const char * const imx8mn_dram_core_sels[] = {"dram_pll_out", "dram_alt_root", };
-static const char * const imx8mn_clko1_sels[] = {"osc_24m", "sys_pll1_800m", "osc_27m",
- "sys_pll1_200m", "audio_pll2_out", "vpu_pll",
- "sys_pll1_80m", };
+static const char * const imx8mn_clko1_sels[] = {"osc_24m", "sys_pll1_800m", "dummy",
+ "sys_pll1_200m", "audio_pll2_out", "sys_pll2_500m",
+ "dummy", "sys_pll1_80m", };
static const char * const imx8mn_clko2_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll1_400m",
"sys_pll2_166m", "sys_pll3_out", "audio_pll1_out",
"video_pll1_out", "osc_32k", };
diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c
index 0a68af6eec3d..d42551a46ec9 100644
--- a/drivers/clk/meson/gxbb.c
+++ b/drivers/clk/meson/gxbb.c
@@ -712,6 +712,35 @@ static struct clk_regmap gxbb_mpll_prediv = {
};
static struct clk_regmap gxbb_mpll0_div = {
+ .data = &(struct meson_clk_mpll_data){
+ .sdm = {
+ .reg_off = HHI_MPLL_CNTL7,
+ .shift = 0,
+ .width = 14,
+ },
+ .sdm_en = {
+ .reg_off = HHI_MPLL_CNTL,
+ .shift = 25,
+ .width = 1,
+ },
+ .n2 = {
+ .reg_off = HHI_MPLL_CNTL7,
+ .shift = 16,
+ .width = 9,
+ },
+ .lock = &meson_clk_lock,
+ },
+ .hw.init = &(struct clk_init_data){
+ .name = "mpll0_div",
+ .ops = &meson_clk_mpll_ops,
+ .parent_hws = (const struct clk_hw *[]) {
+ &gxbb_mpll_prediv.hw
+ },
+ .num_parents = 1,
+ },
+};
+
+static struct clk_regmap gxl_mpll0_div = {
.data = &(struct meson_clk_mpll_data){
.sdm = {
.reg_off = HHI_MPLL_CNTL7,
@@ -748,7 +777,16 @@ static struct clk_regmap gxbb_mpll0 = {
.hw.init = &(struct clk_init_data){
.name = "mpll0",
.ops = &clk_regmap_gate_ops,
- .parent_hws = (const struct clk_hw *[]) { &gxbb_mpll0_div.hw },
+ .parent_data = &(const struct clk_parent_data) {
+ /*
+ * Note:
+ * GXL and GXBB have different SDM_EN registers. We
+ * fallback to the global naming string mechanism so
+ * mpll0_div picks up the appropriate one.
+ */
+ .name = "mpll0_div",
+ .index = -1,
+ },
.num_parents = 1,
.flags = CLK_SET_RATE_PARENT,
},
@@ -3043,7 +3081,7 @@ static struct clk_hw_onecell_data gxl_hw_onecell_data = {
[CLKID_VAPB_1] = &gxbb_vapb_1.hw,
[CLKID_VAPB_SEL] = &gxbb_vapb_sel.hw,
[CLKID_VAPB] = &gxbb_vapb.hw,
- [CLKID_MPLL0_DIV] = &gxbb_mpll0_div.hw,
+ [CLKID_MPLL0_DIV] = &gxl_mpll0_div.hw,
[CLKID_MPLL1_DIV] = &gxbb_mpll1_div.hw,
[CLKID_MPLL2_DIV] = &gxbb_mpll2_div.hw,
[CLKID_MPLL_PREDIV] = &gxbb_mpll_prediv.hw,
@@ -3438,7 +3476,7 @@ static struct clk_regmap *const gxl_clk_regmaps[] = {
&gxbb_mpll0,
&gxbb_mpll1,
&gxbb_mpll2,
- &gxbb_mpll0_div,
+ &gxl_mpll0_div,
&gxbb_mpll1_div,
&gxbb_mpll2_div,
&gxbb_cts_amclk_div,
diff --git a/drivers/counter/Kconfig b/drivers/counter/Kconfig
index 2de53ab0dd25..cbdf84200e27 100644
--- a/drivers/counter/Kconfig
+++ b/drivers/counter/Kconfig
@@ -41,7 +41,7 @@ config STM32_TIMER_CNT
config STM32_LPTIMER_CNT
tristate "STM32 LP Timer encoder counter driver"
- depends on (MFD_STM32_LPTIMER || COMPILE_TEST) && IIO
+ depends on MFD_STM32_LPTIMER || COMPILE_TEST
help
Select this option to enable STM32 Low-Power Timer quadrature encoder
and counter driver.
diff --git a/drivers/counter/stm32-lptimer-cnt.c b/drivers/counter/stm32-lptimer-cnt.c
index fd6828e2d34f..937439635d53 100644
--- a/drivers/counter/stm32-lptimer-cnt.c
+++ b/drivers/counter/stm32-lptimer-cnt.c
@@ -12,8 +12,8 @@
#include <linux/bitfield.h>
#include <linux/counter.h>
-#include <linux/iio/iio.h>
#include <linux/mfd/stm32-lptimer.h>
+#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/pinctrl/consumer.h>
#include <linux/platform_device.h>
@@ -107,249 +107,27 @@ static int stm32_lptim_setup(struct stm32_lptim_cnt *priv, int enable)
return regmap_update_bits(priv->regmap, STM32_LPTIM_CFGR, mask, val);
}
-static int stm32_lptim_write_raw(struct iio_dev *indio_dev,
- struct iio_chan_spec const *chan,
- int val, int val2, long mask)
-{
- struct stm32_lptim_cnt *priv = iio_priv(indio_dev);
- int ret;
-
- switch (mask) {
- case IIO_CHAN_INFO_ENABLE:
- if (val < 0 || val > 1)
- return -EINVAL;
-
- /* Check nobody uses the timer, or already disabled/enabled */
- ret = stm32_lptim_is_enabled(priv);
- if ((ret < 0) || (!ret && !val))
- return ret;
- if (val && ret)
- return -EBUSY;
-
- ret = stm32_lptim_setup(priv, val);
- if (ret)
- return ret;
- return stm32_lptim_set_enable_state(priv, val);
-
- default:
- return -EINVAL;
- }
-}
-
-static int stm32_lptim_read_raw(struct iio_dev *indio_dev,
- struct iio_chan_spec const *chan,
- int *val, int *val2, long mask)
-{
- struct stm32_lptim_cnt *priv = iio_priv(indio_dev);
- u32 dat;
- int ret;
-
- switch (mask) {
- case IIO_CHAN_INFO_RAW:
- ret = regmap_read(priv->regmap, STM32_LPTIM_CNT, &dat);
- if (ret)
- return ret;
- *val = dat;
- return IIO_VAL_INT;
-
- case IIO_CHAN_INFO_ENABLE:
- ret = stm32_lptim_is_enabled(priv);
- if (ret < 0)
- return ret;
- *val = ret;
- return IIO_VAL_INT;
-
- case IIO_CHAN_INFO_SCALE:
- /* Non-quadrature mode: scale = 1 */
- *val = 1;
- *val2 = 0;
- if (priv->quadrature_mode) {
- /*
- * Quadrature encoder mode:
- * - both edges, quarter cycle, scale is 0.25
- * - either rising/falling edge scale is 0.5
- */
- if (priv->polarity > 1)
- *val2 = 2;
- else
- *val2 = 1;
- }
- return IIO_VAL_FRACTIONAL_LOG2;
-
- default:
- return -EINVAL;
- }
-}
-
-static const struct iio_info stm32_lptim_cnt_iio_info = {
- .read_raw = stm32_lptim_read_raw,
- .write_raw = stm32_lptim_write_raw,
-};
-
-static const char *const stm32_lptim_quadrature_modes[] = {
- "non-quadrature",
- "quadrature",
-};
-
-static int stm32_lptim_get_quadrature_mode(struct iio_dev *indio_dev,
- const struct iio_chan_spec *chan)
-{
- struct stm32_lptim_cnt *priv = iio_priv(indio_dev);
-
- return priv->quadrature_mode;
-}
-
-static int stm32_lptim_set_quadrature_mode(struct iio_dev *indio_dev,
- const struct iio_chan_spec *chan,
- unsigned int type)
-{
- struct stm32_lptim_cnt *priv = iio_priv(indio_dev);
-
- if (stm32_lptim_is_enabled(priv))
- return -EBUSY;
-
- priv->quadrature_mode = type;
-
- return 0;
-}
-
-static const struct iio_enum stm32_lptim_quadrature_mode_en = {
- .items = stm32_lptim_quadrature_modes,
- .num_items = ARRAY_SIZE(stm32_lptim_quadrature_modes),
- .get = stm32_lptim_get_quadrature_mode,
- .set = stm32_lptim_set_quadrature_mode,
-};
-
-static const char * const stm32_lptim_cnt_polarity[] = {
- "rising-edge", "falling-edge", "both-edges",
-};
-
-static int stm32_lptim_cnt_get_polarity(struct iio_dev *indio_dev,
- const struct iio_chan_spec *chan)
-{
- struct stm32_lptim_cnt *priv = iio_priv(indio_dev);
-
- return priv->polarity;
-}
-
-static int stm32_lptim_cnt_set_polarity(struct iio_dev *indio_dev,
- const struct iio_chan_spec *chan,
- unsigned int type)
-{
- struct stm32_lptim_cnt *priv = iio_priv(indio_dev);
-
- if (stm32_lptim_is_enabled(priv))
- return -EBUSY;
-
- priv->polarity = type;
-
- return 0;
-}
-
-static const struct iio_enum stm32_lptim_cnt_polarity_en = {
- .items = stm32_lptim_cnt_polarity,
- .num_items = ARRAY_SIZE(stm32_lptim_cnt_polarity),
- .get = stm32_lptim_cnt_get_polarity,
- .set = stm32_lptim_cnt_set_polarity,
-};
-
-static ssize_t stm32_lptim_cnt_get_ceiling(struct stm32_lptim_cnt *priv,
- char *buf)
-{
- return snprintf(buf, PAGE_SIZE, "%u\n", priv->ceiling);
-}
-
-static ssize_t stm32_lptim_cnt_set_ceiling(struct stm32_lptim_cnt *priv,
- const char *buf, size_t len)
-{
- int ret;
-
- if (stm32_lptim_is_enabled(priv))
- return -EBUSY;
-
- ret = kstrtouint(buf, 0, &priv->ceiling);
- if (ret)
- return ret;
-
- if (priv->ceiling > STM32_LPTIM_MAX_ARR)
- return -EINVAL;
-
- return len;
-}
-
-static ssize_t stm32_lptim_cnt_get_preset_iio(struct iio_dev *indio_dev,
- uintptr_t private,
- const struct iio_chan_spec *chan,
- char *buf)
-{
- struct stm32_lptim_cnt *priv = iio_priv(indio_dev);
-
- return stm32_lptim_cnt_get_ceiling(priv, buf);
-}
-
-static ssize_t stm32_lptim_cnt_set_preset_iio(struct iio_dev *indio_dev,
- uintptr_t private,
- const struct iio_chan_spec *chan,
- const char *buf, size_t len)
-{
- struct stm32_lptim_cnt *priv = iio_priv(indio_dev);
-
- return stm32_lptim_cnt_set_ceiling(priv, buf, len);
-}
-
-/* LP timer with encoder */
-static const struct iio_chan_spec_ext_info stm32_lptim_enc_ext_info[] = {
- {
- .name = "preset",
- .shared = IIO_SEPARATE,
- .read = stm32_lptim_cnt_get_preset_iio,
- .write = stm32_lptim_cnt_set_preset_iio,
- },
- IIO_ENUM("polarity", IIO_SEPARATE, &stm32_lptim_cnt_polarity_en),
- IIO_ENUM_AVAILABLE("polarity", &stm32_lptim_cnt_polarity_en),
- IIO_ENUM("quadrature_mode", IIO_SEPARATE,
- &stm32_lptim_quadrature_mode_en),
- IIO_ENUM_AVAILABLE("quadrature_mode", &stm32_lptim_quadrature_mode_en),
- {}
-};
-
-static const struct iio_chan_spec stm32_lptim_enc_channels = {
- .type = IIO_COUNT,
- .channel = 0,
- .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) |
- BIT(IIO_CHAN_INFO_ENABLE) |
- BIT(IIO_CHAN_INFO_SCALE),
- .ext_info = stm32_lptim_enc_ext_info,
- .indexed = 1,
-};
-
-/* LP timer without encoder (counter only) */
-static const struct iio_chan_spec_ext_info stm32_lptim_cnt_ext_info[] = {
- {
- .name = "preset",
- .shared = IIO_SEPARATE,
- .read = stm32_lptim_cnt_get_preset_iio,
- .write = stm32_lptim_cnt_set_preset_iio,
- },
- IIO_ENUM("polarity", IIO_SEPARATE, &stm32_lptim_cnt_polarity_en),
- IIO_ENUM_AVAILABLE("polarity", &stm32_lptim_cnt_polarity_en),
- {}
-};
-
-static const struct iio_chan_spec stm32_lptim_cnt_channels = {
- .type = IIO_COUNT,
- .channel = 0,
- .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) |
- BIT(IIO_CHAN_INFO_ENABLE) |
- BIT(IIO_CHAN_INFO_SCALE),
- .ext_info = stm32_lptim_cnt_ext_info,
- .indexed = 1,
-};
-
/**
* enum stm32_lptim_cnt_function - enumerates LPTimer counter & encoder modes
* @STM32_LPTIM_COUNTER_INCREASE: up count on IN1 rising, falling or both edges
* @STM32_LPTIM_ENCODER_BOTH_EDGE: count on both edges (IN1 & IN2 quadrature)
+ *
+ * In non-quadrature mode, device counts up on active edge.
+ * In quadrature mode, encoder counting scenarios are as follows:
+ * +---------+----------+--------------------+--------------------+
+ * | Active | Level on | IN1 signal | IN2 signal |
+ * | edge | opposite +----------+---------+----------+---------+
+ * | | signal | Rising | Falling | Rising | Falling |
+ * +---------+----------+----------+---------+----------+---------+
+ * | Rising | High -> | Down | - | Up | - |
+ * | edge | Low -> | Up | - | Down | - |
+ * +---------+----------+----------+---------+----------+---------+
+ * | Falling | High -> | - | Up | - | Down |
+ * | edge | Low -> | - | Down | - | Up |
+ * +---------+----------+----------+---------+----------+---------+
+ * | Both | High -> | Down | Up | Up | Down |
+ * | edges | Low -> | Up | Down | Down | Up |
+ * +---------+----------+----------+---------+----------+---------+
*/
enum stm32_lptim_cnt_function {
STM32_LPTIM_COUNTER_INCREASE,
@@ -484,7 +262,7 @@ static ssize_t stm32_lptim_cnt_ceiling_read(struct counter_device *counter,
{
struct stm32_lptim_cnt *const priv = counter->priv;
- return stm32_lptim_cnt_get_ceiling(priv, buf);
+ return snprintf(buf, PAGE_SIZE, "%u\n", priv->ceiling);
}
static ssize_t stm32_lptim_cnt_ceiling_write(struct counter_device *counter,
@@ -493,8 +271,22 @@ static ssize_t stm32_lptim_cnt_ceiling_write(struct counter_device *counter,
const char *buf, size_t len)
{
struct stm32_lptim_cnt *const priv = counter->priv;
+ unsigned int ceiling;
+ int ret;
+
+ if (stm32_lptim_is_enabled(priv))
+ return -EBUSY;
+
+ ret = kstrtouint(buf, 0, &ceiling);
+ if (ret)
+ return ret;
+
+ if (ceiling > STM32_LPTIM_MAX_ARR)
+ return -EINVAL;
+
+ priv->ceiling = ceiling;
- return stm32_lptim_cnt_set_ceiling(priv, buf, len);
+ return len;
}
static const struct counter_count_ext stm32_lptim_cnt_ext[] = {
@@ -630,32 +422,19 @@ static int stm32_lptim_cnt_probe(struct platform_device *pdev)
{
struct stm32_lptimer *ddata = dev_get_drvdata(pdev->dev.parent);
struct stm32_lptim_cnt *priv;
- struct iio_dev *indio_dev;
- int ret;
if (IS_ERR_OR_NULL(ddata))
return -EINVAL;
- indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*priv));
- if (!indio_dev)
+ priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
+ if (!priv)
return -ENOMEM;
- priv = iio_priv(indio_dev);
priv->dev = &pdev->dev;
priv->regmap = ddata->regmap;
priv->clk = ddata->clk;
priv->ceiling = STM32_LPTIM_MAX_ARR;
- /* Initialize IIO device */
- indio_dev->name = dev_name(&pdev->dev);
- indio_dev->dev.of_node = pdev->dev.of_node;
- indio_dev->info = &stm32_lptim_cnt_iio_info;
- if (ddata->has_encoder)
- indio_dev->channels = &stm32_lptim_enc_channels;
- else
- indio_dev->channels = &stm32_lptim_cnt_channels;
- indio_dev->num_channels = 1;
-
/* Initialize Counter device */
priv->counter.name = dev_name(&pdev->dev);
priv->counter.parent = &pdev->dev;
@@ -673,10 +452,6 @@ static int stm32_lptim_cnt_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, priv);
- ret = devm_iio_device_register(&pdev->dev, indio_dev);
- if (ret)
- return ret;
-
return devm_counter_register(&pdev->dev, &priv->counter);
}
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 8e159fb6af9c..30dafe8fc505 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1400,7 +1400,7 @@ static int cpufreq_online(unsigned int cpu)
ret = freq_qos_add_request(&policy->constraints,
policy->min_freq_req, FREQ_QOS_MIN,
- policy->min);
+ FREQ_QOS_MIN_DEFAULT_VALUE);
if (ret < 0) {
/*
* So we don't call freq_qos_remove_request() for an
@@ -1420,7 +1420,7 @@ static int cpufreq_online(unsigned int cpu)
ret = freq_qos_add_request(&policy->constraints,
policy->max_freq_req, FREQ_QOS_MAX,
- policy->max);
+ FREQ_QOS_MAX_DEFAULT_VALUE);
if (ret < 0) {
policy->max_freq_req = NULL;
goto out_destroy_policy;
diff --git a/drivers/crypto/caam/caamalg_qi2.c b/drivers/crypto/caam/caamalg_qi2.c
index a780e627838a..5a40c7d10cc9 100644
--- a/drivers/crypto/caam/caamalg_qi2.c
+++ b/drivers/crypto/caam/caamalg_qi2.c
@@ -5467,7 +5467,7 @@ int dpaa2_caam_enqueue(struct device *dev, struct caam_request *req)
dpaa2_fd_set_len(&fd, dpaa2_fl_get_len(&req->fd_flt[1]));
dpaa2_fd_set_flc(&fd, req->flc_dma);
- ppriv = this_cpu_ptr(priv->ppriv);
+ ppriv = raw_cpu_ptr(priv->ppriv);
for (i = 0; i < (priv->dpseci_attr.num_tx_queues << 1); i++) {
err = dpaa2_io_service_enqueue_fq(ppriv->dpio, ppriv->req_fqid,
&fd);
diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c
index 9b968ac4ee7b..a196bb8b1701 100644
--- a/drivers/crypto/omap-aes.c
+++ b/drivers/crypto/omap-aes.c
@@ -1302,7 +1302,7 @@ static int omap_aes_suspend(struct device *dev)
static int omap_aes_resume(struct device *dev)
{
- pm_runtime_resume_and_get(dev);
+ pm_runtime_get_sync(dev);
return 0;
}
#endif
diff --git a/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c b/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
index d7ca222f0df1..74afafc84c71 100644
--- a/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
+++ b/drivers/crypto/qat/qat_common/adf_pf2vf_msg.c
@@ -111,37 +111,19 @@ static int __adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
mutex_lock(lock);
- /* Check if PF2VF CSR is in use by remote function */
+ /* Check if the PFVF CSR is in use by remote function */
val = ADF_CSR_RD(pmisc_bar_addr, pf2vf_offset);
if ((val & remote_in_use_mask) == remote_in_use_pattern) {
dev_dbg(&GET_DEV(accel_dev),
- "PF2VF CSR in use by remote function\n");
+ "PFVF CSR in use by remote function\n");
ret = -EBUSY;
goto out;
}
- /* Attempt to get ownership of PF2VF CSR */
msg &= ~local_in_use_mask;
msg |= local_in_use_pattern;
- ADF_CSR_WR(pmisc_bar_addr, pf2vf_offset, msg);
- /* Wait in case remote func also attempting to get ownership */
- msleep(ADF_IOV_MSG_COLLISION_DETECT_DELAY);
-
- val = ADF_CSR_RD(pmisc_bar_addr, pf2vf_offset);
- if ((val & local_in_use_mask) != local_in_use_pattern) {
- dev_dbg(&GET_DEV(accel_dev),
- "PF2VF CSR in use by remote - collision detected\n");
- ret = -EBUSY;
- goto out;
- }
-
- /*
- * This function now owns the PV2VF CSR. The IN_USE_BY pattern must
- * remain in the PF2VF CSR for all writes including ACK from remote
- * until this local function relinquishes the CSR. Send the message
- * by interrupting the remote.
- */
+ /* Attempt to get ownership of the PFVF CSR */
ADF_CSR_WR(pmisc_bar_addr, pf2vf_offset, msg | int_bit);
/* Wait for confirmation from remote func it received the message */
@@ -150,6 +132,12 @@ static int __adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
val = ADF_CSR_RD(pmisc_bar_addr, pf2vf_offset);
} while ((val & int_bit) && (count++ < ADF_IOV_MSG_ACK_MAX_RETRY));
+ if (val & int_bit) {
+ dev_dbg(&GET_DEV(accel_dev), "ACK not received from remote\n");
+ val &= ~int_bit;
+ ret = -EIO;
+ }
+
if (val != msg) {
dev_dbg(&GET_DEV(accel_dev),
"Collision - PFVF CSR overwritten by remote function\n");
@@ -157,13 +145,7 @@ static int __adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
goto out;
}
- if (val & int_bit) {
- dev_dbg(&GET_DEV(accel_dev), "ACK not received from remote\n");
- val &= ~int_bit;
- ret = -EIO;
- }
-
- /* Finished with PF2VF CSR; relinquish it and leave msg in CSR */
+ /* Finished with the PFVF CSR; relinquish it and leave msg in CSR */
ADF_CSR_WR(pmisc_bar_addr, pf2vf_offset, val & ~local_in_use_mask);
out:
mutex_unlock(lock);
@@ -171,12 +153,13 @@ static int __adf_iov_putmsg(struct adf_accel_dev *accel_dev, u32 msg, u8 vf_nr)
}
/**
- * adf_iov_putmsg() - send PF2VF message
+ * adf_iov_putmsg() - send PFVF message
* @accel_dev: Pointer to acceleration device.
* @msg: Message to send
- * @vf_nr: VF number to which the message will be sent
+ * @vf_nr: VF number to which the message will be sent if on PF, ignored
+ * otherwise
*
- * Function sends a messge from the PF to a VF
+ * Function sends a message through the PFVF channel
*
* Return: 0 on success, error code otherwise.
*/
diff --git a/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c b/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c
index 54b738da829d..3e25fac051b2 100644
--- a/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c
+++ b/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c
@@ -8,7 +8,7 @@
* adf_vf2pf_notify_init() - send init msg to PF
* @accel_dev: Pointer to acceleration VF device.
*
- * Function sends an init messge from the VF to a PF
+ * Function sends an init message from the VF to a PF
*
* Return: 0 on success, error code otherwise.
*/
@@ -31,7 +31,7 @@ EXPORT_SYMBOL_GPL(adf_vf2pf_notify_init);
* adf_vf2pf_notify_shutdown() - send shutdown msg to PF
* @accel_dev: Pointer to acceleration VF device.
*
- * Function sends a shutdown messge from the VF to a PF
+ * Function sends a shutdown message from the VF to a PF
*
* Return: void
*/
diff --git a/drivers/crypto/qce/sha.c b/drivers/crypto/qce/sha.c
index 87be96a0b0bb..8b4e79d882af 100644
--- a/drivers/crypto/qce/sha.c
+++ b/drivers/crypto/qce/sha.c
@@ -533,8 +533,8 @@ static int qce_ahash_register_one(const struct qce_ahash_def *def,
ret = crypto_register_ahash(alg);
if (ret) {
- kfree(tmpl);
dev_err(qce->dev, "%s registration failed\n", base->cra_name);
+ kfree(tmpl);
return ret;
}
diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c
index d8053789c882..89c7fc3efbd7 100644
--- a/drivers/crypto/qce/skcipher.c
+++ b/drivers/crypto/qce/skcipher.c
@@ -433,8 +433,8 @@ static int qce_skcipher_register_one(const struct qce_skcipher_def *def,
ret = crypto_register_skcipher(alg);
if (ret) {
- kfree(tmpl);
dev_err(qce->dev, "%s registration failed\n", alg->base.cra_name);
+ kfree(tmpl);
return ret;
}
diff --git a/drivers/crypto/stm32/stm32-crc32.c b/drivers/crypto/stm32/stm32-crc32.c
index 75867c0b0017..be1bf39a317d 100644
--- a/drivers/crypto/stm32/stm32-crc32.c
+++ b/drivers/crypto/stm32/stm32-crc32.c
@@ -279,7 +279,7 @@ static struct shash_alg algs[] = {
.digestsize = CHKSUM_DIGEST_SIZE,
.base = {
.cra_name = "crc32",
- .cra_driver_name = DRIVER_NAME,
+ .cra_driver_name = "stm32-crc32-crc32",
.cra_priority = 200,
.cra_flags = CRYPTO_ALG_OPTIONAL_KEY,
.cra_blocksize = CHKSUM_BLOCK_SIZE,
@@ -301,7 +301,7 @@ static struct shash_alg algs[] = {
.digestsize = CHKSUM_DIGEST_SIZE,
.base = {
.cra_name = "crc32c",
- .cra_driver_name = DRIVER_NAME,
+ .cra_driver_name = "stm32-crc32-crc32c",
.cra_priority = 200,
.cra_flags = CRYPTO_ALG_OPTIONAL_KEY,
.cra_blocksize = CHKSUM_BLOCK_SIZE,
diff --git a/drivers/crypto/stm32/stm32-cryp.c b/drivers/crypto/stm32/stm32-cryp.c
index 7999b26a16ed..81eb136b6c11 100644
--- a/drivers/crypto/stm32/stm32-cryp.c
+++ b/drivers/crypto/stm32/stm32-cryp.c
@@ -37,7 +37,6 @@
/* Mode mask = bits [15..0] */
#define FLG_MODE_MASK GENMASK(15, 0)
/* Bit [31..16] status */
-#define FLG_CCM_PADDED_WA BIT(16)
/* Registers */
#define CRYP_CR 0x00000000
@@ -105,8 +104,6 @@
/* Misc */
#define AES_BLOCK_32 (AES_BLOCK_SIZE / sizeof(u32))
#define GCM_CTR_INIT 2
-#define _walked_in (cryp->in_walk.offset - cryp->in_sg->offset)
-#define _walked_out (cryp->out_walk.offset - cryp->out_sg->offset)
#define CRYP_AUTOSUSPEND_DELAY 50
struct stm32_cryp_caps {
@@ -144,26 +141,16 @@ struct stm32_cryp {
size_t authsize;
size_t hw_blocksize;
- size_t total_in;
- size_t total_in_save;
- size_t total_out;
- size_t total_out_save;
+ size_t payload_in;
+ size_t header_in;
+ size_t payload_out;
- struct scatterlist *in_sg;
struct scatterlist *out_sg;
- struct scatterlist *out_sg_save;
-
- struct scatterlist in_sgl;
- struct scatterlist out_sgl;
- bool sgs_copied;
-
- int in_sg_len;
- int out_sg_len;
struct scatter_walk in_walk;
struct scatter_walk out_walk;
- u32 last_ctr[4];
+ __be32 last_ctr[4];
u32 gcm_ctr;
};
@@ -262,6 +249,7 @@ static inline int stm32_cryp_wait_output(struct stm32_cryp *cryp)
}
static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp);
+static void stm32_cryp_finish_req(struct stm32_cryp *cryp, int err);
static struct stm32_cryp *stm32_cryp_find_dev(struct stm32_cryp_ctx *ctx)
{
@@ -283,103 +271,6 @@ static struct stm32_cryp *stm32_cryp_find_dev(struct stm32_cryp_ctx *ctx)
return cryp;
}
-static int stm32_cryp_check_aligned(struct scatterlist *sg, size_t total,
- size_t align)
-{
- int len = 0;
-
- if (!total)
- return 0;
-
- if (!IS_ALIGNED(total, align))
- return -EINVAL;
-
- while (sg) {
- if (!IS_ALIGNED(sg->offset, sizeof(u32)))
- return -EINVAL;
-
- if (!IS_ALIGNED(sg->length, align))
- return -EINVAL;
-
- len += sg->length;
- sg = sg_next(sg);
- }
-
- if (len != total)
- return -EINVAL;
-
- return 0;
-}
-
-static int stm32_cryp_check_io_aligned(struct stm32_cryp *cryp)
-{
- int ret;
-
- ret = stm32_cryp_check_aligned(cryp->in_sg, cryp->total_in,
- cryp->hw_blocksize);
- if (ret)
- return ret;
-
- ret = stm32_cryp_check_aligned(cryp->out_sg, cryp->total_out,
- cryp->hw_blocksize);
-
- return ret;
-}
-
-static void sg_copy_buf(void *buf, struct scatterlist *sg,
- unsigned int start, unsigned int nbytes, int out)
-{
- struct scatter_walk walk;
-
- if (!nbytes)
- return;
-
- scatterwalk_start(&walk, sg);
- scatterwalk_advance(&walk, start);
- scatterwalk_copychunks(buf, &walk, nbytes, out);
- scatterwalk_done(&walk, out, 0);
-}
-
-static int stm32_cryp_copy_sgs(struct stm32_cryp *cryp)
-{
- void *buf_in, *buf_out;
- int pages, total_in, total_out;
-
- if (!stm32_cryp_check_io_aligned(cryp)) {
- cryp->sgs_copied = 0;
- return 0;
- }
-
- total_in = ALIGN(cryp->total_in, cryp->hw_blocksize);
- pages = total_in ? get_order(total_in) : 1;
- buf_in = (void *)__get_free_pages(GFP_ATOMIC, pages);
-
- total_out = ALIGN(cryp->total_out, cryp->hw_blocksize);
- pages = total_out ? get_order(total_out) : 1;
- buf_out = (void *)__get_free_pages(GFP_ATOMIC, pages);
-
- if (!buf_in || !buf_out) {
- dev_err(cryp->dev, "Can't allocate pages when unaligned\n");
- cryp->sgs_copied = 0;
- return -EFAULT;
- }
-
- sg_copy_buf(buf_in, cryp->in_sg, 0, cryp->total_in, 0);
-
- sg_init_one(&cryp->in_sgl, buf_in, total_in);
- cryp->in_sg = &cryp->in_sgl;
- cryp->in_sg_len = 1;
-
- sg_init_one(&cryp->out_sgl, buf_out, total_out);
- cryp->out_sg_save = cryp->out_sg;
- cryp->out_sg = &cryp->out_sgl;
- cryp->out_sg_len = 1;
-
- cryp->sgs_copied = 1;
-
- return 0;
-}
-
static void stm32_cryp_hw_write_iv(struct stm32_cryp *cryp, __be32 *iv)
{
if (!iv)
@@ -481,16 +372,99 @@ static int stm32_cryp_gcm_init(struct stm32_cryp *cryp, u32 cfg)
/* Wait for end of processing */
ret = stm32_cryp_wait_enable(cryp);
- if (ret)
+ if (ret) {
dev_err(cryp->dev, "Timeout (gcm init)\n");
+ return ret;
+ }
- return ret;
+ /* Prepare next phase */
+ if (cryp->areq->assoclen) {
+ cfg |= CR_PH_HEADER;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+ } else if (stm32_cryp_get_input_text_len(cryp)) {
+ cfg |= CR_PH_PAYLOAD;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+ }
+
+ return 0;
+}
+
+static void stm32_crypt_gcmccm_end_header(struct stm32_cryp *cryp)
+{
+ u32 cfg;
+ int err;
+
+ /* Check if whole header written */
+ if (!cryp->header_in) {
+ /* Wait for completion */
+ err = stm32_cryp_wait_busy(cryp);
+ if (err) {
+ dev_err(cryp->dev, "Timeout (gcm/ccm header)\n");
+ stm32_cryp_write(cryp, CRYP_IMSCR, 0);
+ stm32_cryp_finish_req(cryp, err);
+ return;
+ }
+
+ if (stm32_cryp_get_input_text_len(cryp)) {
+ /* Phase 3 : payload */
+ cfg = stm32_cryp_read(cryp, CRYP_CR);
+ cfg &= ~CR_CRYPEN;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+
+ cfg &= ~CR_PH_MASK;
+ cfg |= CR_PH_PAYLOAD | CR_CRYPEN;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+ } else {
+ /*
+ * Phase 4 : tag.
+ * Nothing to read, nothing to write, caller have to
+ * end request
+ */
+ }
+ }
+}
+
+static void stm32_cryp_write_ccm_first_header(struct stm32_cryp *cryp)
+{
+ unsigned int i;
+ size_t written;
+ size_t len;
+ u32 alen = cryp->areq->assoclen;
+ u32 block[AES_BLOCK_32] = {0};
+ u8 *b8 = (u8 *)block;
+
+ if (alen <= 65280) {
+ /* Write first u32 of B1 */
+ b8[0] = (alen >> 8) & 0xFF;
+ b8[1] = alen & 0xFF;
+ len = 2;
+ } else {
+ /* Build the two first u32 of B1 */
+ b8[0] = 0xFF;
+ b8[1] = 0xFE;
+ b8[2] = (alen & 0xFF000000) >> 24;
+ b8[3] = (alen & 0x00FF0000) >> 16;
+ b8[4] = (alen & 0x0000FF00) >> 8;
+ b8[5] = alen & 0x000000FF;
+ len = 6;
+ }
+
+ written = min_t(size_t, AES_BLOCK_SIZE - len, alen);
+
+ scatterwalk_copychunks((char *)block + len, &cryp->in_walk, written, 0);
+ for (i = 0; i < AES_BLOCK_32; i++)
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
+
+ cryp->header_in -= written;
+
+ stm32_crypt_gcmccm_end_header(cryp);
}
static int stm32_cryp_ccm_init(struct stm32_cryp *cryp, u32 cfg)
{
int ret;
- u8 iv[AES_BLOCK_SIZE], b0[AES_BLOCK_SIZE];
+ u32 iv_32[AES_BLOCK_32], b0_32[AES_BLOCK_32];
+ u8 *iv = (u8 *)iv_32, *b0 = (u8 *)b0_32;
__be32 *bd;
u32 *d;
unsigned int i, textlen;
@@ -531,10 +505,24 @@ static int stm32_cryp_ccm_init(struct stm32_cryp *cryp, u32 cfg)
/* Wait for end of processing */
ret = stm32_cryp_wait_enable(cryp);
- if (ret)
+ if (ret) {
dev_err(cryp->dev, "Timeout (ccm init)\n");
+ return ret;
+ }
- return ret;
+ /* Prepare next phase */
+ if (cryp->areq->assoclen) {
+ cfg |= CR_PH_HEADER | CR_CRYPEN;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+
+ /* Write first (special) block (may move to next phase [payload]) */
+ stm32_cryp_write_ccm_first_header(cryp);
+ } else if (stm32_cryp_get_input_text_len(cryp)) {
+ cfg |= CR_PH_PAYLOAD;
+ stm32_cryp_write(cryp, CRYP_CR, cfg);
+ }
+
+ return 0;
}
static int stm32_cryp_hw_init(struct stm32_cryp *cryp)
@@ -542,7 +530,7 @@ static int stm32_cryp_hw_init(struct stm32_cryp *cryp)
int ret;
u32 cfg, hw_mode;
- pm_runtime_resume_and_get(cryp->dev);
+ pm_runtime_get_sync(cryp->dev);
/* Disable interrupt */
stm32_cryp_write(cryp, CRYP_IMSCR, 0);
@@ -605,16 +593,6 @@ static int stm32_cryp_hw_init(struct stm32_cryp *cryp)
if (ret)
return ret;
- /* Phase 2 : header (authenticated data) */
- if (cryp->areq->assoclen) {
- cfg |= CR_PH_HEADER;
- } else if (stm32_cryp_get_input_text_len(cryp)) {
- cfg |= CR_PH_PAYLOAD;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
- } else {
- cfg |= CR_PH_INIT;
- }
-
break;
case CR_DES_CBC:
@@ -633,8 +611,6 @@ static int stm32_cryp_hw_init(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_CR, cfg);
- cryp->flags &= ~FLG_CCM_PADDED_WA;
-
return 0;
}
@@ -644,28 +620,9 @@ static void stm32_cryp_finish_req(struct stm32_cryp *cryp, int err)
/* Phase 4 : output tag */
err = stm32_cryp_read_auth_tag(cryp);
- if (!err && (!(is_gcm(cryp) || is_ccm(cryp))))
+ if (!err && (!(is_gcm(cryp) || is_ccm(cryp) || is_ecb(cryp))))
stm32_cryp_get_iv(cryp);
- if (cryp->sgs_copied) {
- void *buf_in, *buf_out;
- int pages, len;
-
- buf_in = sg_virt(&cryp->in_sgl);
- buf_out = sg_virt(&cryp->out_sgl);
-
- sg_copy_buf(buf_out, cryp->out_sg_save, 0,
- cryp->total_out_save, 1);
-
- len = ALIGN(cryp->total_in_save, cryp->hw_blocksize);
- pages = len ? get_order(len) : 1;
- free_pages((unsigned long)buf_in, pages);
-
- len = ALIGN(cryp->total_out_save, cryp->hw_blocksize);
- pages = len ? get_order(len) : 1;
- free_pages((unsigned long)buf_out, pages);
- }
-
pm_runtime_mark_last_busy(cryp->dev);
pm_runtime_put_autosuspend(cryp->dev);
@@ -674,8 +631,6 @@ static void stm32_cryp_finish_req(struct stm32_cryp *cryp, int err)
else
crypto_finalize_skcipher_request(cryp->engine, cryp->req,
err);
-
- memset(cryp->ctx->key, 0, cryp->ctx->keylen);
}
static int stm32_cryp_cpu_start(struct stm32_cryp *cryp)
@@ -801,7 +756,20 @@ static int stm32_cryp_aes_aead_setkey(struct crypto_aead *tfm, const u8 *key,
static int stm32_cryp_aes_gcm_setauthsize(struct crypto_aead *tfm,
unsigned int authsize)
{
- return authsize == AES_BLOCK_SIZE ? 0 : -EINVAL;
+ switch (authsize) {
+ case 4:
+ case 8:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
}
static int stm32_cryp_aes_ccm_setauthsize(struct crypto_aead *tfm,
@@ -825,31 +793,61 @@ static int stm32_cryp_aes_ccm_setauthsize(struct crypto_aead *tfm,
static int stm32_cryp_aes_ecb_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % AES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_ECB | FLG_ENCRYPT);
}
static int stm32_cryp_aes_ecb_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % AES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_ECB);
}
static int stm32_cryp_aes_cbc_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % AES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_CBC | FLG_ENCRYPT);
}
static int stm32_cryp_aes_cbc_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % AES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_CBC);
}
static int stm32_cryp_aes_ctr_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_CTR | FLG_ENCRYPT);
}
static int stm32_cryp_aes_ctr_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_AES | FLG_CTR);
}
@@ -863,53 +861,122 @@ static int stm32_cryp_aes_gcm_decrypt(struct aead_request *req)
return stm32_cryp_aead_crypt(req, FLG_AES | FLG_GCM);
}
+static inline int crypto_ccm_check_iv(const u8 *iv)
+{
+ /* 2 <= L <= 8, so 1 <= L' <= 7. */
+ if (iv[0] < 1 || iv[0] > 7)
+ return -EINVAL;
+
+ return 0;
+}
+
static int stm32_cryp_aes_ccm_encrypt(struct aead_request *req)
{
+ int err;
+
+ err = crypto_ccm_check_iv(req->iv);
+ if (err)
+ return err;
+
return stm32_cryp_aead_crypt(req, FLG_AES | FLG_CCM | FLG_ENCRYPT);
}
static int stm32_cryp_aes_ccm_decrypt(struct aead_request *req)
{
+ int err;
+
+ err = crypto_ccm_check_iv(req->iv);
+ if (err)
+ return err;
+
return stm32_cryp_aead_crypt(req, FLG_AES | FLG_CCM);
}
static int stm32_cryp_des_ecb_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_DES | FLG_ECB | FLG_ENCRYPT);
}
static int stm32_cryp_des_ecb_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_DES | FLG_ECB);
}
static int stm32_cryp_des_cbc_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_DES | FLG_CBC | FLG_ENCRYPT);
}
static int stm32_cryp_des_cbc_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_DES | FLG_CBC);
}
static int stm32_cryp_tdes_ecb_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_TDES | FLG_ECB | FLG_ENCRYPT);
}
static int stm32_cryp_tdes_ecb_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_TDES | FLG_ECB);
}
static int stm32_cryp_tdes_cbc_encrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_TDES | FLG_CBC | FLG_ENCRYPT);
}
static int stm32_cryp_tdes_cbc_decrypt(struct skcipher_request *req)
{
+ if (req->cryptlen % DES_BLOCK_SIZE)
+ return -EINVAL;
+
+ if (req->cryptlen == 0)
+ return 0;
+
return stm32_cryp_crypt(req, FLG_TDES | FLG_CBC);
}
@@ -919,6 +986,7 @@ static int stm32_cryp_prepare_req(struct skcipher_request *req,
struct stm32_cryp_ctx *ctx;
struct stm32_cryp *cryp;
struct stm32_cryp_reqctx *rctx;
+ struct scatterlist *in_sg;
int ret;
if (!req && !areq)
@@ -944,76 +1012,55 @@ static int stm32_cryp_prepare_req(struct skcipher_request *req,
if (req) {
cryp->req = req;
cryp->areq = NULL;
- cryp->total_in = req->cryptlen;
- cryp->total_out = cryp->total_in;
+ cryp->header_in = 0;
+ cryp->payload_in = req->cryptlen;
+ cryp->payload_out = req->cryptlen;
+ cryp->authsize = 0;
} else {
/*
* Length of input and output data:
* Encryption case:
- * INPUT = AssocData || PlainText
+ * INPUT = AssocData || PlainText
* <- assoclen -> <- cryptlen ->
- * <------- total_in ----------->
*
- * OUTPUT = AssocData || CipherText || AuthTag
- * <- assoclen -> <- cryptlen -> <- authsize ->
- * <---------------- total_out ----------------->
+ * OUTPUT = AssocData || CipherText || AuthTag
+ * <- assoclen -> <-- cryptlen --> <- authsize ->
*
* Decryption case:
- * INPUT = AssocData || CipherText || AuthTag
- * <- assoclen -> <--------- cryptlen --------->
- * <- authsize ->
- * <---------------- total_in ------------------>
+ * INPUT = AssocData || CipherTex || AuthTag
+ * <- assoclen ---> <---------- cryptlen ---------->
*
- * OUTPUT = AssocData || PlainText
- * <- assoclen -> <- crypten - authsize ->
- * <---------- total_out ----------------->
+ * OUTPUT = AssocData || PlainText
+ * <- assoclen -> <- cryptlen - authsize ->
*/
cryp->areq = areq;
cryp->req = NULL;
cryp->authsize = crypto_aead_authsize(crypto_aead_reqtfm(areq));
- cryp->total_in = areq->assoclen + areq->cryptlen;
- if (is_encrypt(cryp))
- /* Append auth tag to output */
- cryp->total_out = cryp->total_in + cryp->authsize;
- else
- /* No auth tag in output */
- cryp->total_out = cryp->total_in - cryp->authsize;
+ if (is_encrypt(cryp)) {
+ cryp->payload_in = areq->cryptlen;
+ cryp->header_in = areq->assoclen;
+ cryp->payload_out = areq->cryptlen;
+ } else {
+ cryp->payload_in = areq->cryptlen - cryp->authsize;
+ cryp->header_in = areq->assoclen;
+ cryp->payload_out = cryp->payload_in;
+ }
}
- cryp->total_in_save = cryp->total_in;
- cryp->total_out_save = cryp->total_out;
+ in_sg = req ? req->src : areq->src;
+ scatterwalk_start(&cryp->in_walk, in_sg);
- cryp->in_sg = req ? req->src : areq->src;
cryp->out_sg = req ? req->dst : areq->dst;
- cryp->out_sg_save = cryp->out_sg;
-
- cryp->in_sg_len = sg_nents_for_len(cryp->in_sg, cryp->total_in);
- if (cryp->in_sg_len < 0) {
- dev_err(cryp->dev, "Cannot get in_sg_len\n");
- ret = cryp->in_sg_len;
- return ret;
- }
-
- cryp->out_sg_len = sg_nents_for_len(cryp->out_sg, cryp->total_out);
- if (cryp->out_sg_len < 0) {
- dev_err(cryp->dev, "Cannot get out_sg_len\n");
- ret = cryp->out_sg_len;
- return ret;
- }
-
- ret = stm32_cryp_copy_sgs(cryp);
- if (ret)
- return ret;
-
- scatterwalk_start(&cryp->in_walk, cryp->in_sg);
scatterwalk_start(&cryp->out_walk, cryp->out_sg);
if (is_gcm(cryp) || is_ccm(cryp)) {
/* In output, jump after assoc data */
- scatterwalk_advance(&cryp->out_walk, cryp->areq->assoclen);
- cryp->total_out -= cryp->areq->assoclen;
+ scatterwalk_copychunks(NULL, &cryp->out_walk, cryp->areq->assoclen, 2);
}
+ if (is_ctr(cryp))
+ memset(cryp->last_ctr, 0, sizeof(cryp->last_ctr));
+
ret = stm32_cryp_hw_init(cryp);
return ret;
}
@@ -1061,8 +1108,7 @@ static int stm32_cryp_aead_one_req(struct crypto_engine *engine, void *areq)
if (!cryp)
return -ENODEV;
- if (unlikely(!cryp->areq->assoclen &&
- !stm32_cryp_get_input_text_len(cryp))) {
+ if (unlikely(!cryp->payload_in && !cryp->header_in)) {
/* No input data to process: get tag and finish */
stm32_cryp_finish_req(cryp, 0);
return 0;
@@ -1071,43 +1117,10 @@ static int stm32_cryp_aead_one_req(struct crypto_engine *engine, void *areq)
return stm32_cryp_cpu_start(cryp);
}
-static u32 *stm32_cryp_next_out(struct stm32_cryp *cryp, u32 *dst,
- unsigned int n)
-{
- scatterwalk_advance(&cryp->out_walk, n);
-
- if (unlikely(cryp->out_sg->length == _walked_out)) {
- cryp->out_sg = sg_next(cryp->out_sg);
- if (cryp->out_sg) {
- scatterwalk_start(&cryp->out_walk, cryp->out_sg);
- return (sg_virt(cryp->out_sg) + _walked_out);
- }
- }
-
- return (u32 *)((u8 *)dst + n);
-}
-
-static u32 *stm32_cryp_next_in(struct stm32_cryp *cryp, u32 *src,
- unsigned int n)
-{
- scatterwalk_advance(&cryp->in_walk, n);
-
- if (unlikely(cryp->in_sg->length == _walked_in)) {
- cryp->in_sg = sg_next(cryp->in_sg);
- if (cryp->in_sg) {
- scatterwalk_start(&cryp->in_walk, cryp->in_sg);
- return (sg_virt(cryp->in_sg) + _walked_in);
- }
- }
-
- return (u32 *)((u8 *)src + n);
-}
-
static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp)
{
- u32 cfg, size_bit, *dst, d32;
- u8 *d8;
- unsigned int i, j;
+ u32 cfg, size_bit;
+ unsigned int i;
int ret = 0;
/* Update Config */
@@ -1130,7 +1143,7 @@ static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_DIN, size_bit);
size_bit = is_encrypt(cryp) ? cryp->areq->cryptlen :
- cryp->areq->cryptlen - AES_BLOCK_SIZE;
+ cryp->areq->cryptlen - cryp->authsize;
size_bit *= 8;
if (cryp->caps->swap_final)
size_bit = (__force u32)cpu_to_be32(size_bit);
@@ -1139,11 +1152,9 @@ static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_DIN, size_bit);
} else {
/* CCM: write CTR0 */
- u8 iv[AES_BLOCK_SIZE];
- u32 *iv32 = (u32 *)iv;
- __be32 *biv;
-
- biv = (void *)iv;
+ u32 iv32[AES_BLOCK_32];
+ u8 *iv = (u8 *)iv32;
+ __be32 *biv = (__be32 *)iv32;
memcpy(iv, cryp->areq->iv, AES_BLOCK_SIZE);
memset(iv + AES_BLOCK_SIZE - 1 - iv[0], 0, iv[0] + 1);
@@ -1165,39 +1176,18 @@ static int stm32_cryp_read_auth_tag(struct stm32_cryp *cryp)
}
if (is_encrypt(cryp)) {
+ u32 out_tag[AES_BLOCK_32];
+
/* Get and write tag */
- dst = sg_virt(cryp->out_sg) + _walked_out;
+ for (i = 0; i < AES_BLOCK_32; i++)
+ out_tag[i] = stm32_cryp_read(cryp, CRYP_DOUT);
- for (i = 0; i < AES_BLOCK_32; i++) {
- if (cryp->total_out >= sizeof(u32)) {
- /* Read a full u32 */
- *dst = stm32_cryp_read(cryp, CRYP_DOUT);
-
- dst = stm32_cryp_next_out(cryp, dst,
- sizeof(u32));
- cryp->total_out -= sizeof(u32);
- } else if (!cryp->total_out) {
- /* Empty fifo out (data from input padding) */
- stm32_cryp_read(cryp, CRYP_DOUT);
- } else {
- /* Read less than an u32 */
- d32 = stm32_cryp_read(cryp, CRYP_DOUT);
- d8 = (u8 *)&d32;
-
- for (j = 0; j < cryp->total_out; j++) {
- *((u8 *)dst) = *(d8++);
- dst = stm32_cryp_next_out(cryp, dst, 1);
- }
- cryp->total_out = 0;
- }
- }
+ scatterwalk_copychunks(out_tag, &cryp->out_walk, cryp->authsize, 1);
} else {
/* Get and check tag */
u32 in_tag[AES_BLOCK_32], out_tag[AES_BLOCK_32];
- scatterwalk_map_and_copy(in_tag, cryp->in_sg,
- cryp->total_in_save - cryp->authsize,
- cryp->authsize, 0);
+ scatterwalk_copychunks(in_tag, &cryp->in_walk, cryp->authsize, 0);
for (i = 0; i < AES_BLOCK_32; i++)
out_tag[i] = stm32_cryp_read(cryp, CRYP_DOUT);
@@ -1217,115 +1207,59 @@ static void stm32_cryp_check_ctr_counter(struct stm32_cryp *cryp)
{
u32 cr;
- if (unlikely(cryp->last_ctr[3] == 0xFFFFFFFF)) {
- cryp->last_ctr[3] = 0;
- cryp->last_ctr[2]++;
- if (!cryp->last_ctr[2]) {
- cryp->last_ctr[1]++;
- if (!cryp->last_ctr[1])
- cryp->last_ctr[0]++;
- }
+ if (unlikely(cryp->last_ctr[3] == cpu_to_be32(0xFFFFFFFF))) {
+ /*
+ * In this case, we need to increment manually the ctr counter,
+ * as HW doesn't handle the U32 carry.
+ */
+ crypto_inc((u8 *)cryp->last_ctr, sizeof(cryp->last_ctr));
cr = stm32_cryp_read(cryp, CRYP_CR);
stm32_cryp_write(cryp, CRYP_CR, cr & ~CR_CRYPEN);
- stm32_cryp_hw_write_iv(cryp, (u32 *)cryp->last_ctr);
+ stm32_cryp_hw_write_iv(cryp, cryp->last_ctr);
stm32_cryp_write(cryp, CRYP_CR, cr);
}
- cryp->last_ctr[0] = stm32_cryp_read(cryp, CRYP_IV0LR);
- cryp->last_ctr[1] = stm32_cryp_read(cryp, CRYP_IV0RR);
- cryp->last_ctr[2] = stm32_cryp_read(cryp, CRYP_IV1LR);
- cryp->last_ctr[3] = stm32_cryp_read(cryp, CRYP_IV1RR);
+ /* The IV registers are BE */
+ cryp->last_ctr[0] = cpu_to_be32(stm32_cryp_read(cryp, CRYP_IV0LR));
+ cryp->last_ctr[1] = cpu_to_be32(stm32_cryp_read(cryp, CRYP_IV0RR));
+ cryp->last_ctr[2] = cpu_to_be32(stm32_cryp_read(cryp, CRYP_IV1LR));
+ cryp->last_ctr[3] = cpu_to_be32(stm32_cryp_read(cryp, CRYP_IV1RR));
}
-static bool stm32_cryp_irq_read_data(struct stm32_cryp *cryp)
+static void stm32_cryp_irq_read_data(struct stm32_cryp *cryp)
{
- unsigned int i, j;
- u32 d32, *dst;
- u8 *d8;
- size_t tag_size;
-
- /* Do no read tag now (if any) */
- if (is_encrypt(cryp) && (is_gcm(cryp) || is_ccm(cryp)))
- tag_size = cryp->authsize;
- else
- tag_size = 0;
-
- dst = sg_virt(cryp->out_sg) + _walked_out;
+ unsigned int i;
+ u32 block[AES_BLOCK_32];
- for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++) {
- if (likely(cryp->total_out - tag_size >= sizeof(u32))) {
- /* Read a full u32 */
- *dst = stm32_cryp_read(cryp, CRYP_DOUT);
+ for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++)
+ block[i] = stm32_cryp_read(cryp, CRYP_DOUT);
- dst = stm32_cryp_next_out(cryp, dst, sizeof(u32));
- cryp->total_out -= sizeof(u32);
- } else if (cryp->total_out == tag_size) {
- /* Empty fifo out (data from input padding) */
- d32 = stm32_cryp_read(cryp, CRYP_DOUT);
- } else {
- /* Read less than an u32 */
- d32 = stm32_cryp_read(cryp, CRYP_DOUT);
- d8 = (u8 *)&d32;
-
- for (j = 0; j < cryp->total_out - tag_size; j++) {
- *((u8 *)dst) = *(d8++);
- dst = stm32_cryp_next_out(cryp, dst, 1);
- }
- cryp->total_out = tag_size;
- }
- }
-
- return !(cryp->total_out - tag_size) || !cryp->total_in;
+ scatterwalk_copychunks(block, &cryp->out_walk, min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out), 1);
+ cryp->payload_out -= min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out);
}
static void stm32_cryp_irq_write_block(struct stm32_cryp *cryp)
{
- unsigned int i, j;
- u32 *src;
- u8 d8[4];
- size_t tag_size;
-
- /* Do no write tag (if any) */
- if (is_decrypt(cryp) && (is_gcm(cryp) || is_ccm(cryp)))
- tag_size = cryp->authsize;
- else
- tag_size = 0;
-
- src = sg_virt(cryp->in_sg) + _walked_in;
+ unsigned int i;
+ u32 block[AES_BLOCK_32] = {0};
- for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++) {
- if (likely(cryp->total_in - tag_size >= sizeof(u32))) {
- /* Write a full u32 */
- stm32_cryp_write(cryp, CRYP_DIN, *src);
+ scatterwalk_copychunks(block, &cryp->in_walk, min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_in), 0);
+ for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++)
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
- src = stm32_cryp_next_in(cryp, src, sizeof(u32));
- cryp->total_in -= sizeof(u32);
- } else if (cryp->total_in == tag_size) {
- /* Write padding data */
- stm32_cryp_write(cryp, CRYP_DIN, 0);
- } else {
- /* Write less than an u32 */
- memset(d8, 0, sizeof(u32));
- for (j = 0; j < cryp->total_in - tag_size; j++) {
- d8[j] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
- }
-
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
- cryp->total_in = tag_size;
- }
- }
+ cryp->payload_in -= min_t(size_t, cryp->hw_blocksize, cryp->payload_in);
}
static void stm32_cryp_irq_write_gcm_padded_data(struct stm32_cryp *cryp)
{
int err;
- u32 cfg, tmp[AES_BLOCK_32];
- size_t total_in_ori = cryp->total_in;
- struct scatterlist *out_sg_ori = cryp->out_sg;
+ u32 cfg, block[AES_BLOCK_32] = {0};
unsigned int i;
/* 'Special workaround' procedure described in the datasheet */
@@ -1350,18 +1284,25 @@ static void stm32_cryp_irq_write_gcm_padded_data(struct stm32_cryp *cryp)
/* b) pad and write the last block */
stm32_cryp_irq_write_block(cryp);
- cryp->total_in = total_in_ori;
+ /* wait end of process */
err = stm32_cryp_wait_output(cryp);
if (err) {
- dev_err(cryp->dev, "Timeout (write gcm header)\n");
+ dev_err(cryp->dev, "Timeout (write gcm last data)\n");
return stm32_cryp_finish_req(cryp, err);
}
/* c) get and store encrypted data */
- stm32_cryp_irq_read_data(cryp);
- scatterwalk_map_and_copy(tmp, out_sg_ori,
- cryp->total_in_save - total_in_ori,
- total_in_ori, 0);
+ /*
+ * Same code as stm32_cryp_irq_read_data(), but we want to store
+ * block value
+ */
+ for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++)
+ block[i] = stm32_cryp_read(cryp, CRYP_DOUT);
+
+ scatterwalk_copychunks(block, &cryp->out_walk, min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out), 1);
+ cryp->payload_out -= min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out);
/* d) change mode back to AES GCM */
cfg &= ~CR_ALGO_MASK;
@@ -1374,19 +1315,13 @@ static void stm32_cryp_irq_write_gcm_padded_data(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_CR, cfg);
/* f) write padded data */
- for (i = 0; i < AES_BLOCK_32; i++) {
- if (cryp->total_in)
- stm32_cryp_write(cryp, CRYP_DIN, tmp[i]);
- else
- stm32_cryp_write(cryp, CRYP_DIN, 0);
-
- cryp->total_in -= min_t(size_t, sizeof(u32), cryp->total_in);
- }
+ for (i = 0; i < AES_BLOCK_32; i++)
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
/* g) Empty fifo out */
err = stm32_cryp_wait_output(cryp);
if (err) {
- dev_err(cryp->dev, "Timeout (write gcm header)\n");
+ dev_err(cryp->dev, "Timeout (write gcm padded data)\n");
return stm32_cryp_finish_req(cryp, err);
}
@@ -1399,16 +1334,14 @@ static void stm32_cryp_irq_write_gcm_padded_data(struct stm32_cryp *cryp)
static void stm32_cryp_irq_set_npblb(struct stm32_cryp *cryp)
{
- u32 cfg, payload_bytes;
+ u32 cfg;
/* disable ip, set NPBLB and reneable ip */
cfg = stm32_cryp_read(cryp, CRYP_CR);
cfg &= ~CR_CRYPEN;
stm32_cryp_write(cryp, CRYP_CR, cfg);
- payload_bytes = is_decrypt(cryp) ? cryp->total_in - cryp->authsize :
- cryp->total_in;
- cfg |= (cryp->hw_blocksize - payload_bytes) << CR_NBPBL_SHIFT;
+ cfg |= (cryp->hw_blocksize - cryp->payload_in) << CR_NBPBL_SHIFT;
cfg |= CR_CRYPEN;
stm32_cryp_write(cryp, CRYP_CR, cfg);
}
@@ -1417,13 +1350,11 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
{
int err = 0;
u32 cfg, iv1tmp;
- u32 cstmp1[AES_BLOCK_32], cstmp2[AES_BLOCK_32], tmp[AES_BLOCK_32];
- size_t last_total_out, total_in_ori = cryp->total_in;
- struct scatterlist *out_sg_ori = cryp->out_sg;
+ u32 cstmp1[AES_BLOCK_32], cstmp2[AES_BLOCK_32];
+ u32 block[AES_BLOCK_32] = {0};
unsigned int i;
/* 'Special workaround' procedure described in the datasheet */
- cryp->flags |= FLG_CCM_PADDED_WA;
/* a) disable ip */
stm32_cryp_write(cryp, CRYP_IMSCR, 0);
@@ -1453,7 +1384,7 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
/* b) pad and write the last block */
stm32_cryp_irq_write_block(cryp);
- cryp->total_in = total_in_ori;
+ /* wait end of process */
err = stm32_cryp_wait_output(cryp);
if (err) {
dev_err(cryp->dev, "Timeout (wite ccm padded data)\n");
@@ -1461,13 +1392,16 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
}
/* c) get and store decrypted data */
- last_total_out = cryp->total_out;
- stm32_cryp_irq_read_data(cryp);
+ /*
+ * Same code as stm32_cryp_irq_read_data(), but we want to store
+ * block value
+ */
+ for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++)
+ block[i] = stm32_cryp_read(cryp, CRYP_DOUT);
- memset(tmp, 0, sizeof(tmp));
- scatterwalk_map_and_copy(tmp, out_sg_ori,
- cryp->total_out_save - last_total_out,
- last_total_out, 0);
+ scatterwalk_copychunks(block, &cryp->out_walk, min_t(size_t, cryp->hw_blocksize,
+ cryp->payload_out), 1);
+ cryp->payload_out -= min_t(size_t, cryp->hw_blocksize, cryp->payload_out);
/* d) Load again CRYP_CSGCMCCMxR */
for (i = 0; i < ARRAY_SIZE(cstmp2); i++)
@@ -1484,10 +1418,10 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
stm32_cryp_write(cryp, CRYP_CR, cfg);
/* g) XOR and write padded data */
- for (i = 0; i < ARRAY_SIZE(tmp); i++) {
- tmp[i] ^= cstmp1[i];
- tmp[i] ^= cstmp2[i];
- stm32_cryp_write(cryp, CRYP_DIN, tmp[i]);
+ for (i = 0; i < ARRAY_SIZE(block); i++) {
+ block[i] ^= cstmp1[i];
+ block[i] ^= cstmp2[i];
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
}
/* h) wait for completion */
@@ -1501,30 +1435,34 @@ static void stm32_cryp_irq_write_ccm_padded_data(struct stm32_cryp *cryp)
static void stm32_cryp_irq_write_data(struct stm32_cryp *cryp)
{
- if (unlikely(!cryp->total_in)) {
+ if (unlikely(!cryp->payload_in)) {
dev_warn(cryp->dev, "No more data to process\n");
return;
}
- if (unlikely(cryp->total_in < AES_BLOCK_SIZE &&
+ if (unlikely(cryp->payload_in < AES_BLOCK_SIZE &&
(stm32_cryp_get_hw_mode(cryp) == CR_AES_GCM) &&
is_encrypt(cryp))) {
/* Padding for AES GCM encryption */
- if (cryp->caps->padding_wa)
+ if (cryp->caps->padding_wa) {
/* Special case 1 */
- return stm32_cryp_irq_write_gcm_padded_data(cryp);
+ stm32_cryp_irq_write_gcm_padded_data(cryp);
+ return;
+ }
/* Setting padding bytes (NBBLB) */
stm32_cryp_irq_set_npblb(cryp);
}
- if (unlikely((cryp->total_in - cryp->authsize < AES_BLOCK_SIZE) &&
+ if (unlikely((cryp->payload_in < AES_BLOCK_SIZE) &&
(stm32_cryp_get_hw_mode(cryp) == CR_AES_CCM) &&
is_decrypt(cryp))) {
/* Padding for AES CCM decryption */
- if (cryp->caps->padding_wa)
+ if (cryp->caps->padding_wa) {
/* Special case 2 */
- return stm32_cryp_irq_write_ccm_padded_data(cryp);
+ stm32_cryp_irq_write_ccm_padded_data(cryp);
+ return;
+ }
/* Setting padding bytes (NBBLB) */
stm32_cryp_irq_set_npblb(cryp);
@@ -1536,192 +1474,60 @@ static void stm32_cryp_irq_write_data(struct stm32_cryp *cryp)
stm32_cryp_irq_write_block(cryp);
}
-static void stm32_cryp_irq_write_gcm_header(struct stm32_cryp *cryp)
+static void stm32_cryp_irq_write_gcmccm_header(struct stm32_cryp *cryp)
{
- int err;
- unsigned int i, j;
- u32 cfg, *src;
-
- src = sg_virt(cryp->in_sg) + _walked_in;
-
- for (i = 0; i < AES_BLOCK_32; i++) {
- stm32_cryp_write(cryp, CRYP_DIN, *src);
-
- src = stm32_cryp_next_in(cryp, src, sizeof(u32));
- cryp->total_in -= min_t(size_t, sizeof(u32), cryp->total_in);
-
- /* Check if whole header written */
- if ((cryp->total_in_save - cryp->total_in) ==
- cryp->areq->assoclen) {
- /* Write padding if needed */
- for (j = i + 1; j < AES_BLOCK_32; j++)
- stm32_cryp_write(cryp, CRYP_DIN, 0);
-
- /* Wait for completion */
- err = stm32_cryp_wait_busy(cryp);
- if (err) {
- dev_err(cryp->dev, "Timeout (gcm header)\n");
- return stm32_cryp_finish_req(cryp, err);
- }
-
- if (stm32_cryp_get_input_text_len(cryp)) {
- /* Phase 3 : payload */
- cfg = stm32_cryp_read(cryp, CRYP_CR);
- cfg &= ~CR_CRYPEN;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
-
- cfg &= ~CR_PH_MASK;
- cfg |= CR_PH_PAYLOAD;
- cfg |= CR_CRYPEN;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
- } else {
- /* Phase 4 : tag */
- stm32_cryp_write(cryp, CRYP_IMSCR, 0);
- stm32_cryp_finish_req(cryp, 0);
- }
-
- break;
- }
-
- if (!cryp->total_in)
- break;
- }
-}
+ unsigned int i;
+ u32 block[AES_BLOCK_32] = {0};
+ size_t written;
-static void stm32_cryp_irq_write_ccm_header(struct stm32_cryp *cryp)
-{
- int err;
- unsigned int i = 0, j, k;
- u32 alen, cfg, *src;
- u8 d8[4];
-
- src = sg_virt(cryp->in_sg) + _walked_in;
- alen = cryp->areq->assoclen;
-
- if (!_walked_in) {
- if (cryp->areq->assoclen <= 65280) {
- /* Write first u32 of B1 */
- d8[0] = (alen >> 8) & 0xFF;
- d8[1] = alen & 0xFF;
- d8[2] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
- d8[3] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
-
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
- i++;
-
- cryp->total_in -= min_t(size_t, 2, cryp->total_in);
- } else {
- /* Build the two first u32 of B1 */
- d8[0] = 0xFF;
- d8[1] = 0xFE;
- d8[2] = alen & 0xFF000000;
- d8[3] = alen & 0x00FF0000;
-
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
- i++;
-
- d8[0] = alen & 0x0000FF00;
- d8[1] = alen & 0x000000FF;
- d8[2] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
- d8[3] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
-
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
- i++;
-
- cryp->total_in -= min_t(size_t, 2, cryp->total_in);
- }
- }
+ written = min_t(size_t, AES_BLOCK_SIZE, cryp->header_in);
- /* Write next u32 */
- for (; i < AES_BLOCK_32; i++) {
- /* Build an u32 */
- memset(d8, 0, sizeof(u32));
- for (k = 0; k < sizeof(u32); k++) {
- d8[k] = *((u8 *)src);
- src = stm32_cryp_next_in(cryp, src, 1);
-
- cryp->total_in -= min_t(size_t, 1, cryp->total_in);
- if ((cryp->total_in_save - cryp->total_in) == alen)
- break;
- }
+ scatterwalk_copychunks(block, &cryp->in_walk, written, 0);
+ for (i = 0; i < AES_BLOCK_32; i++)
+ stm32_cryp_write(cryp, CRYP_DIN, block[i]);
- stm32_cryp_write(cryp, CRYP_DIN, *(u32 *)d8);
-
- if ((cryp->total_in_save - cryp->total_in) == alen) {
- /* Write padding if needed */
- for (j = i + 1; j < AES_BLOCK_32; j++)
- stm32_cryp_write(cryp, CRYP_DIN, 0);
-
- /* Wait for completion */
- err = stm32_cryp_wait_busy(cryp);
- if (err) {
- dev_err(cryp->dev, "Timeout (ccm header)\n");
- return stm32_cryp_finish_req(cryp, err);
- }
-
- if (stm32_cryp_get_input_text_len(cryp)) {
- /* Phase 3 : payload */
- cfg = stm32_cryp_read(cryp, CRYP_CR);
- cfg &= ~CR_CRYPEN;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
-
- cfg &= ~CR_PH_MASK;
- cfg |= CR_PH_PAYLOAD;
- cfg |= CR_CRYPEN;
- stm32_cryp_write(cryp, CRYP_CR, cfg);
- } else {
- /* Phase 4 : tag */
- stm32_cryp_write(cryp, CRYP_IMSCR, 0);
- stm32_cryp_finish_req(cryp, 0);
- }
+ cryp->header_in -= written;
- break;
- }
- }
+ stm32_crypt_gcmccm_end_header(cryp);
}
static irqreturn_t stm32_cryp_irq_thread(int irq, void *arg)
{
struct stm32_cryp *cryp = arg;
u32 ph;
+ u32 it_mask = stm32_cryp_read(cryp, CRYP_IMSCR);
if (cryp->irq_status & MISR_OUT)
/* Output FIFO IRQ: read data */
- if (unlikely(stm32_cryp_irq_read_data(cryp))) {
- /* All bytes processed, finish */
- stm32_cryp_write(cryp, CRYP_IMSCR, 0);
- stm32_cryp_finish_req(cryp, 0);
- return IRQ_HANDLED;
- }
+ stm32_cryp_irq_read_data(cryp);
if (cryp->irq_status & MISR_IN) {
- if (is_gcm(cryp)) {
+ if (is_gcm(cryp) || is_ccm(cryp)) {
ph = stm32_cryp_read(cryp, CRYP_CR) & CR_PH_MASK;
if (unlikely(ph == CR_PH_HEADER))
/* Write Header */
- stm32_cryp_irq_write_gcm_header(cryp);
- else
- /* Input FIFO IRQ: write data */
- stm32_cryp_irq_write_data(cryp);
- cryp->gcm_ctr++;
- } else if (is_ccm(cryp)) {
- ph = stm32_cryp_read(cryp, CRYP_CR) & CR_PH_MASK;
- if (unlikely(ph == CR_PH_HEADER))
- /* Write Header */
- stm32_cryp_irq_write_ccm_header(cryp);
+ stm32_cryp_irq_write_gcmccm_header(cryp);
else
/* Input FIFO IRQ: write data */
stm32_cryp_irq_write_data(cryp);
+ if (is_gcm(cryp))
+ cryp->gcm_ctr++;
} else {
/* Input FIFO IRQ: write data */
stm32_cryp_irq_write_data(cryp);
}
}
+ /* Mask useless interrupts */
+ if (!cryp->payload_in && !cryp->header_in)
+ it_mask &= ~IMSCR_IN;
+ if (!cryp->payload_out)
+ it_mask &= ~IMSCR_OUT;
+ stm32_cryp_write(cryp, CRYP_IMSCR, it_mask);
+
+ if (!cryp->payload_in && !cryp->header_in && !cryp->payload_out)
+ stm32_cryp_finish_req(cryp, 0);
+
return IRQ_HANDLED;
}
@@ -1742,7 +1548,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = AES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1759,7 +1565,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = AES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1777,7 +1583,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = 1,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1795,7 +1601,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = DES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1812,7 +1618,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = DES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1830,7 +1636,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = DES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1847,7 +1653,7 @@ static struct skcipher_alg crypto_algs[] = {
.base.cra_flags = CRYPTO_ALG_ASYNC,
.base.cra_blocksize = DES_BLOCK_SIZE,
.base.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .base.cra_alignmask = 0xf,
+ .base.cra_alignmask = 0,
.base.cra_module = THIS_MODULE,
.init = stm32_cryp_init_tfm,
@@ -1877,7 +1683,7 @@ static struct aead_alg aead_algs[] = {
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = 1,
.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .cra_alignmask = 0xf,
+ .cra_alignmask = 0,
.cra_module = THIS_MODULE,
},
},
@@ -1897,7 +1703,7 @@ static struct aead_alg aead_algs[] = {
.cra_flags = CRYPTO_ALG_ASYNC,
.cra_blocksize = 1,
.cra_ctxsize = sizeof(struct stm32_cryp_ctx),
- .cra_alignmask = 0xf,
+ .cra_alignmask = 0,
.cra_module = THIS_MODULE,
},
},
@@ -2025,8 +1831,6 @@ static int stm32_cryp_probe(struct platform_device *pdev)
list_del(&cryp->list);
spin_unlock(&cryp_list.lock);
- pm_runtime_disable(dev);
- pm_runtime_put_noidle(dev);
pm_runtime_disable(dev);
pm_runtime_put_noidle(dev);
diff --git a/drivers/crypto/stm32/stm32-hash.c b/drivers/crypto/stm32/stm32-hash.c
index ff5362da118d..16bb52836b28 100644
--- a/drivers/crypto/stm32/stm32-hash.c
+++ b/drivers/crypto/stm32/stm32-hash.c
@@ -812,7 +812,7 @@ static void stm32_hash_finish_req(struct ahash_request *req, int err)
static int stm32_hash_hw_init(struct stm32_hash_dev *hdev,
struct stm32_hash_request_ctx *rctx)
{
- pm_runtime_resume_and_get(hdev->dev);
+ pm_runtime_get_sync(hdev->dev);
if (!(HASH_FLAGS_INIT & hdev->flags)) {
stm32_hash_write(hdev, HASH_CR, HASH_CR_INIT);
@@ -961,7 +961,7 @@ static int stm32_hash_export(struct ahash_request *req, void *out)
u32 *preg;
unsigned int i;
- pm_runtime_resume_and_get(hdev->dev);
+ pm_runtime_get_sync(hdev->dev);
while ((stm32_hash_read(hdev, HASH_SR) & HASH_SR_BUSY))
cpu_relax();
@@ -999,7 +999,7 @@ static int stm32_hash_import(struct ahash_request *req, const void *in)
preg = rctx->hw_context;
- pm_runtime_resume_and_get(hdev->dev);
+ pm_runtime_get_sync(hdev->dev);
stm32_hash_write(hdev, HASH_IMR, *preg++);
stm32_hash_write(hdev, HASH_STR, *preg++);
diff --git a/drivers/dma-buf/dma-fence-array.c b/drivers/dma-buf/dma-fence-array.c
index d3fbd950be94..3e07f961e2f3 100644
--- a/drivers/dma-buf/dma-fence-array.c
+++ b/drivers/dma-buf/dma-fence-array.c
@@ -104,7 +104,11 @@ static bool dma_fence_array_signaled(struct dma_fence *fence)
{
struct dma_fence_array *array = to_dma_fence_array(fence);
- return atomic_read(&array->num_pending) <= 0;
+ if (atomic_read(&array->num_pending) > 0)
+ return false;
+
+ dma_fence_array_clear_pending_error(array);
+ return true;
}
static void dma_fence_array_release(struct dma_fence *fence)
diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c
index 627ad74c879f..90afba0b36fe 100644
--- a/drivers/dma/at_xdmac.c
+++ b/drivers/dma/at_xdmac.c
@@ -89,6 +89,7 @@
#define AT_XDMAC_CNDC_NDE (0x1 << 0) /* Channel x Next Descriptor Enable */
#define AT_XDMAC_CNDC_NDSUP (0x1 << 1) /* Channel x Next Descriptor Source Update */
#define AT_XDMAC_CNDC_NDDUP (0x1 << 2) /* Channel x Next Descriptor Destination Update */
+#define AT_XDMAC_CNDC_NDVIEW_MASK GENMASK(28, 27)
#define AT_XDMAC_CNDC_NDVIEW_NDV0 (0x0 << 3) /* Channel x Next Descriptor View 0 */
#define AT_XDMAC_CNDC_NDVIEW_NDV1 (0x1 << 3) /* Channel x Next Descriptor View 1 */
#define AT_XDMAC_CNDC_NDVIEW_NDV2 (0x2 << 3) /* Channel x Next Descriptor View 2 */
@@ -220,15 +221,15 @@ struct at_xdmac {
/* Linked List Descriptor */
struct at_xdmac_lld {
- dma_addr_t mbr_nda; /* Next Descriptor Member */
- u32 mbr_ubc; /* Microblock Control Member */
- dma_addr_t mbr_sa; /* Source Address Member */
- dma_addr_t mbr_da; /* Destination Address Member */
- u32 mbr_cfg; /* Configuration Register */
- u32 mbr_bc; /* Block Control Register */
- u32 mbr_ds; /* Data Stride Register */
- u32 mbr_sus; /* Source Microblock Stride Register */
- u32 mbr_dus; /* Destination Microblock Stride Register */
+ u32 mbr_nda; /* Next Descriptor Member */
+ u32 mbr_ubc; /* Microblock Control Member */
+ u32 mbr_sa; /* Source Address Member */
+ u32 mbr_da; /* Destination Address Member */
+ u32 mbr_cfg; /* Configuration Register */
+ u32 mbr_bc; /* Block Control Register */
+ u32 mbr_ds; /* Data Stride Register */
+ u32 mbr_sus; /* Source Microblock Stride Register */
+ u32 mbr_dus; /* Destination Microblock Stride Register */
};
/* 64-bit alignment needed to update CNDA and CUBC registers in an atomic way. */
@@ -338,9 +339,6 @@ static void at_xdmac_start_xfer(struct at_xdmac_chan *atchan,
dev_vdbg(chan2dev(&atchan->chan), "%s: desc 0x%p\n", __func__, first);
- if (at_xdmac_chan_is_enabled(atchan))
- return;
-
/* Set transfer as active to not try to start it again. */
first->active_xfer = true;
@@ -356,7 +354,8 @@ static void at_xdmac_start_xfer(struct at_xdmac_chan *atchan,
*/
if (at_xdmac_chan_is_cyclic(atchan))
reg = AT_XDMAC_CNDC_NDVIEW_NDV1;
- else if (first->lld.mbr_ubc & AT_XDMAC_MBR_UBC_NDV3)
+ else if ((first->lld.mbr_ubc &
+ AT_XDMAC_CNDC_NDVIEW_MASK) == AT_XDMAC_MBR_UBC_NDV3)
reg = AT_XDMAC_CNDC_NDVIEW_NDV3;
else
reg = AT_XDMAC_CNDC_NDVIEW_NDV2;
@@ -427,13 +426,12 @@ static dma_cookie_t at_xdmac_tx_submit(struct dma_async_tx_descriptor *tx)
spin_lock_irqsave(&atchan->lock, irqflags);
cookie = dma_cookie_assign(tx);
+ list_add_tail(&desc->xfer_node, &atchan->xfers_list);
+ spin_unlock_irqrestore(&atchan->lock, irqflags);
+
dev_vdbg(chan2dev(tx->chan), "%s: atchan 0x%p, add desc 0x%p to xfers_list\n",
__func__, atchan, desc);
- list_add_tail(&desc->xfer_node, &atchan->xfers_list);
- if (list_is_singular(&atchan->xfers_list))
- at_xdmac_start_xfer(atchan, desc);
- spin_unlock_irqrestore(&atchan->lock, irqflags);
return cookie;
}
@@ -1563,14 +1561,17 @@ static void at_xdmac_handle_cyclic(struct at_xdmac_chan *atchan)
struct at_xdmac_desc *desc;
struct dma_async_tx_descriptor *txd;
- if (!list_empty(&atchan->xfers_list)) {
- desc = list_first_entry(&atchan->xfers_list,
- struct at_xdmac_desc, xfer_node);
- txd = &desc->tx_dma_desc;
-
- if (txd->flags & DMA_PREP_INTERRUPT)
- dmaengine_desc_get_callback_invoke(txd, NULL);
+ spin_lock_irq(&atchan->lock);
+ if (list_empty(&atchan->xfers_list)) {
+ spin_unlock_irq(&atchan->lock);
+ return;
}
+ desc = list_first_entry(&atchan->xfers_list, struct at_xdmac_desc,
+ xfer_node);
+ spin_unlock_irq(&atchan->lock);
+ txd = &desc->tx_dma_desc;
+ if (txd->flags & DMA_PREP_INTERRUPT)
+ dmaengine_desc_get_callback_invoke(txd, NULL);
}
static void at_xdmac_handle_error(struct at_xdmac_chan *atchan)
@@ -1724,11 +1725,9 @@ static void at_xdmac_issue_pending(struct dma_chan *chan)
dev_dbg(chan2dev(&atchan->chan), "%s\n", __func__);
- if (!at_xdmac_chan_is_cyclic(atchan)) {
- spin_lock_irqsave(&atchan->lock, flags);
- at_xdmac_advance_work(atchan);
- spin_unlock_irqrestore(&atchan->lock, flags);
- }
+ spin_lock_irqsave(&atchan->lock, flags);
+ at_xdmac_advance_work(atchan);
+ spin_unlock_irqrestore(&atchan->lock, flags);
return;
}
diff --git a/drivers/dma/mmp_pdma.c b/drivers/dma/mmp_pdma.c
index b84303be8edf..4eb63f1ad224 100644
--- a/drivers/dma/mmp_pdma.c
+++ b/drivers/dma/mmp_pdma.c
@@ -728,12 +728,6 @@ static int mmp_pdma_config_write(struct dma_chan *dchan,
chan->dir = direction;
chan->dev_addr = addr;
- /* FIXME: drivers should be ported over to use the filter
- * function. Once that's done, the following two lines can
- * be removed.
- */
- if (cfg->slave_id)
- chan->drcmr = cfg->slave_id;
return 0;
}
diff --git a/drivers/dma/pxa_dma.c b/drivers/dma/pxa_dma.c
index 349fb312c872..b4ef4f19f7de 100644
--- a/drivers/dma/pxa_dma.c
+++ b/drivers/dma/pxa_dma.c
@@ -911,13 +911,6 @@ static void pxad_get_config(struct pxad_chan *chan,
*dcmd |= PXA_DCMD_BURST16;
else if (maxburst == 32)
*dcmd |= PXA_DCMD_BURST32;
-
- /* FIXME: drivers should be ported over to use the filter
- * function. Once that's done, the following two lines can
- * be removed.
- */
- if (chan->cfg.slave_id)
- chan->drcmr = chan->cfg.slave_id;
}
static struct dma_async_tx_descriptor *
diff --git a/drivers/dma/stm32-mdma.c b/drivers/dma/stm32-mdma.c
index 9d473923712a..fe36738f2dd7 100644
--- a/drivers/dma/stm32-mdma.c
+++ b/drivers/dma/stm32-mdma.c
@@ -184,7 +184,7 @@
#define STM32_MDMA_CTBR(x) (0x68 + 0x40 * (x))
#define STM32_MDMA_CTBR_DBUS BIT(17)
#define STM32_MDMA_CTBR_SBUS BIT(16)
-#define STM32_MDMA_CTBR_TSEL_MASK GENMASK(7, 0)
+#define STM32_MDMA_CTBR_TSEL_MASK GENMASK(5, 0)
#define STM32_MDMA_CTBR_TSEL(n) STM32_MDMA_SET(n, \
STM32_MDMA_CTBR_TSEL_MASK)
diff --git a/drivers/dma/uniphier-xdmac.c b/drivers/dma/uniphier-xdmac.c
index d6b8a202474f..290836b7e1be 100644
--- a/drivers/dma/uniphier-xdmac.c
+++ b/drivers/dma/uniphier-xdmac.c
@@ -131,8 +131,9 @@ uniphier_xdmac_next_desc(struct uniphier_xdmac_chan *xc)
static void uniphier_xdmac_chan_start(struct uniphier_xdmac_chan *xc,
struct uniphier_xdmac_desc *xd)
{
- u32 src_mode, src_addr, src_width;
- u32 dst_mode, dst_addr, dst_width;
+ u32 src_mode, src_width;
+ u32 dst_mode, dst_width;
+ dma_addr_t src_addr, dst_addr;
u32 val, its, tnum;
enum dma_slave_buswidth buswidth;
diff --git a/drivers/edac/synopsys_edac.c b/drivers/edac/synopsys_edac.c
index 1a801a5d3b08..92906b56b1a2 100644
--- a/drivers/edac/synopsys_edac.c
+++ b/drivers/edac/synopsys_edac.c
@@ -1351,8 +1351,7 @@ static int mc_probe(struct platform_device *pdev)
}
}
- if (of_device_is_compatible(pdev->dev.of_node,
- "xlnx,zynqmp-ddrc-2.40a"))
+ if (priv->p_data->quirks & DDR_ECC_INTR_SUPPORT)
setup_address_map(priv);
#endif
diff --git a/drivers/firmware/google/Kconfig b/drivers/firmware/google/Kconfig
index 97968aece54f..931544c9f63d 100644
--- a/drivers/firmware/google/Kconfig
+++ b/drivers/firmware/google/Kconfig
@@ -3,9 +3,9 @@ menuconfig GOOGLE_FIRMWARE
bool "Google Firmware Drivers"
default n
help
- These firmware drivers are used by Google's servers. They are
- only useful if you are working directly on one of their
- proprietary servers. If in doubt, say "N".
+ These firmware drivers are used by Google servers,
+ Chromebooks and other devices using coreboot firmware.
+ If in doubt, say "N".
if GOOGLE_FIRMWARE
diff --git a/drivers/gpio/gpio-aspeed.c b/drivers/gpio/gpio-aspeed.c
index b966f5e28ebf..e0d5d80ec8e0 100644
--- a/drivers/gpio/gpio-aspeed.c
+++ b/drivers/gpio/gpio-aspeed.c
@@ -53,7 +53,7 @@ struct aspeed_gpio_config {
struct aspeed_gpio {
struct gpio_chip chip;
struct irq_chip irqc;
- spinlock_t lock;
+ raw_spinlock_t lock;
void __iomem *base;
int irq;
const struct aspeed_gpio_config *config;
@@ -413,14 +413,14 @@ static void aspeed_gpio_set(struct gpio_chip *gc, unsigned int offset,
unsigned long flags;
bool copro;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
__aspeed_gpio_set(gc, offset, val);
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset)
@@ -435,7 +435,7 @@ static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset)
if (!have_input(gpio, offset))
return -ENOTSUPP;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
reg = ioread32(addr);
reg &= ~GPIO_BIT(offset);
@@ -445,7 +445,7 @@ static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset)
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return 0;
}
@@ -463,7 +463,7 @@ static int aspeed_gpio_dir_out(struct gpio_chip *gc,
if (!have_output(gpio, offset))
return -ENOTSUPP;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
reg = ioread32(addr);
reg |= GPIO_BIT(offset);
@@ -474,7 +474,7 @@ static int aspeed_gpio_dir_out(struct gpio_chip *gc,
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return 0;
}
@@ -492,11 +492,11 @@ static int aspeed_gpio_get_direction(struct gpio_chip *gc, unsigned int offset)
if (!have_output(gpio, offset))
return GPIO_LINE_DIRECTION_IN;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
val = ioread32(bank_reg(gpio, bank, reg_dir)) & GPIO_BIT(offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return val ? GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN;
}
@@ -539,14 +539,14 @@ static void aspeed_gpio_irq_ack(struct irq_data *d)
status_addr = bank_reg(gpio, bank, reg_irq_status);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
iowrite32(bit, status_addr);
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static void aspeed_gpio_irq_set_mask(struct irq_data *d, bool set)
@@ -565,7 +565,7 @@ static void aspeed_gpio_irq_set_mask(struct irq_data *d, bool set)
addr = bank_reg(gpio, bank, reg_irq_enable);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
reg = ioread32(addr);
@@ -577,7 +577,7 @@ static void aspeed_gpio_irq_set_mask(struct irq_data *d, bool set)
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
}
static void aspeed_gpio_irq_mask(struct irq_data *d)
@@ -629,7 +629,7 @@ static int aspeed_gpio_set_type(struct irq_data *d, unsigned int type)
return -EINVAL;
}
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
addr = bank_reg(gpio, bank, reg_irq_type0);
@@ -649,7 +649,7 @@ static int aspeed_gpio_set_type(struct irq_data *d, unsigned int type)
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
irq_set_handler_locked(d, handler);
@@ -719,7 +719,7 @@ static int aspeed_gpio_reset_tolerance(struct gpio_chip *chip,
treg = bank_reg(gpio, to_bank(offset), reg_tolerance);
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
copro = aspeed_gpio_copro_request(gpio, offset);
val = readl(treg);
@@ -733,7 +733,7 @@ static int aspeed_gpio_reset_tolerance(struct gpio_chip *chip,
if (copro)
aspeed_gpio_copro_release(gpio, offset);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return 0;
}
@@ -859,7 +859,7 @@ static int enable_debounce(struct gpio_chip *chip, unsigned int offset,
return rc;
}
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
if (timer_allocation_registered(gpio, offset)) {
rc = unregister_allocated_timer(gpio, offset);
@@ -919,7 +919,7 @@ static int enable_debounce(struct gpio_chip *chip, unsigned int offset,
configure_timer(gpio, offset, i);
out:
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
@@ -930,13 +930,13 @@ static int disable_debounce(struct gpio_chip *chip, unsigned int offset)
unsigned long flags;
int rc;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
rc = unregister_allocated_timer(gpio, offset);
if (!rc)
configure_timer(gpio, offset, 0);
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
@@ -1018,7 +1018,7 @@ int aspeed_gpio_copro_grab_gpio(struct gpio_desc *desc,
return -EINVAL;
bindex = offset >> 3;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
/* Sanity check, this shouldn't happen */
if (gpio->cf_copro_bankmap[bindex] == 0xff) {
@@ -1039,7 +1039,7 @@ int aspeed_gpio_copro_grab_gpio(struct gpio_desc *desc,
if (bit)
*bit = GPIO_OFFSET(offset);
bail:
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
EXPORT_SYMBOL_GPL(aspeed_gpio_copro_grab_gpio);
@@ -1063,7 +1063,7 @@ int aspeed_gpio_copro_release_gpio(struct gpio_desc *desc)
return -EINVAL;
bindex = offset >> 3;
- spin_lock_irqsave(&gpio->lock, flags);
+ raw_spin_lock_irqsave(&gpio->lock, flags);
/* Sanity check, this shouldn't happen */
if (gpio->cf_copro_bankmap[bindex] == 0) {
@@ -1077,7 +1077,7 @@ int aspeed_gpio_copro_release_gpio(struct gpio_desc *desc)
aspeed_gpio_change_cmd_source(gpio, bank, bindex,
GPIO_CMDSRC_ARM);
bail:
- spin_unlock_irqrestore(&gpio->lock, flags);
+ raw_spin_unlock_irqrestore(&gpio->lock, flags);
return rc;
}
EXPORT_SYMBOL_GPL(aspeed_gpio_copro_release_gpio);
@@ -1151,7 +1151,7 @@ static int __init aspeed_gpio_probe(struct platform_device *pdev)
if (IS_ERR(gpio->base))
return PTR_ERR(gpio->base);
- spin_lock_init(&gpio->lock);
+ raw_spin_lock_init(&gpio->lock);
gpio_id = of_match_node(aspeed_gpio_of_table, pdev->dev.of_node);
if (!gpio_id)
diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
index 6f11714ce023..55e4f402ec8b 100644
--- a/drivers/gpio/gpiolib-acpi.c
+++ b/drivers/gpio/gpiolib-acpi.c
@@ -969,10 +969,17 @@ int acpi_dev_gpio_irq_get_by(struct acpi_device *adev, const char *name, int ind
irq_flags = acpi_dev_get_irq_type(info.triggering,
info.polarity);
- /* Set type if specified and different than the current one */
- if (irq_flags != IRQ_TYPE_NONE &&
- irq_flags != irq_get_trigger_type(irq))
- irq_set_irq_type(irq, irq_flags);
+ /*
+ * If the IRQ is not already in use then set type
+ * if specified and different than the current one.
+ */
+ if (can_request_irq(irq, irq_flags)) {
+ if (irq_flags != IRQ_TYPE_NONE &&
+ irq_flags != irq_get_trigger_type(irq))
+ irq_set_irq_type(irq, irq_flags);
+ } else {
+ dev_dbg(&adev->dev, "IRQ %d already in use\n", irq);
+ }
return irq;
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
index 0de66f59adb8..df1f9b88a53f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
@@ -387,6 +387,9 @@ amdgpu_connector_lcd_native_mode(struct drm_encoder *encoder)
native_mode->vdisplay != 0 &&
native_mode->clock != 0) {
mode = drm_mode_duplicate(dev, native_mode);
+ if (!mode)
+ return NULL;
+
mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
drm_mode_set_name(mode);
@@ -401,6 +404,9 @@ amdgpu_connector_lcd_native_mode(struct drm_encoder *encoder)
* simpler.
*/
mode = drm_cvt_mode(dev, native_mode->hdisplay, native_mode->vdisplay, 60, true, false, false);
+ if (!mode)
+ return NULL;
+
mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
DRM_DEBUG_KMS("Adding cvt approximation of native panel mode %s\n", mode->name);
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
index 2f70fdd6104f..582055136cdb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
@@ -267,7 +267,6 @@ int amdgpu_irq_init(struct amdgpu_device *adev)
if (!amdgpu_device_has_dc_support(adev)) {
if (!adev->enable_virtual_display)
/* Disable vblank IRQs aggressively for power-saving */
- /* XXX: can this be enabled for DC? */
adev_to_drm(adev)->vblank_disable_immediate = true;
r = drm_vblank_init(adev_to_drm(adev), adev->mode_info.num_crtc);
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
index 9ab65ca7df77..873bc33912e2 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
@@ -524,10 +524,10 @@ static void gmc_v8_0_mc_program(struct amdgpu_device *adev)
static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
{
int r;
+ u32 tmp;
adev->gmc.vram_width = amdgpu_atombios_get_vram_width(adev);
if (!adev->gmc.vram_width) {
- u32 tmp;
int chansize, numchan;
/* Get VRAM informations */
@@ -571,8 +571,15 @@ static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
adev->gmc.vram_width = numchan * chansize;
}
/* size in MB on si */
- adev->gmc.mc_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
- adev->gmc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
+ tmp = RREG32(mmCONFIG_MEMSIZE);
+ /* some boards may have garbage in the upper 16 bits */
+ if (tmp & 0xffff0000) {
+ DRM_INFO("Probable bad vram size: 0x%08x\n", tmp);
+ if (tmp & 0xffff)
+ tmp &= 0xffff;
+ }
+ adev->gmc.mc_vram_size = tmp * 1024ULL * 1024ULL;
+ adev->gmc.real_vram_size = adev->gmc.mc_vram_size;
if (!(adev->flags & AMD_IS_APU)) {
r = amdgpu_device_resize_fb_bar(adev);
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index a5b6f36fe1d7..6c8f141103da 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -1069,6 +1069,9 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
adev_to_drm(adev)->mode_config.cursor_width = adev->dm.dc->caps.max_cursor_size;
adev_to_drm(adev)->mode_config.cursor_height = adev->dm.dc->caps.max_cursor_size;
+ /* Disable vblank IRQs aggressively for power-saving */
+ adev_to_drm(adev)->vblank_disable_immediate = true;
+
if (drm_vblank_init(adev_to_drm(adev), adev->dm.display_indexes_num)) {
DRM_ERROR(
"amdgpu: failed to initialize sw for display support.\n");
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
index 284ed1c8a35a..93f5229c303e 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -2436,7 +2436,8 @@ static void commit_planes_for_stream(struct dc *dc,
}
if ((update_type != UPDATE_TYPE_FAST) && stream->update_flags.bits.dsc_changed)
- if (top_pipe_to_program->stream_res.tg->funcs->lock_doublebuffer_enable) {
+ if (top_pipe_to_program &&
+ top_pipe_to_program->stream_res.tg->funcs->lock_doublebuffer_enable) {
if (should_use_dmub_lock(stream->link)) {
union dmub_hw_lock_flags hw_locks = { 0 };
struct dmub_hw_lock_inst_flags inst_flags = { 0 };
diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
index 9f383b9041d2..49109614510b 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -2098,6 +2098,12 @@ static int default_attr_update(struct amdgpu_device *adev, struct amdgpu_device_
}
}
+ /* setting should not be allowed from VF */
+ if (amdgpu_sriov_vf(adev)) {
+ dev_attr->attr.mode &= ~S_IWUGO;
+ dev_attr->store = NULL;
+ }
+
#undef DEVICE_ATTR_IS
return 0;
diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
index 914c569ab8c1..cab3f5c4e2fc 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c
@@ -1086,11 +1086,21 @@ int analogix_dp_send_psr_spd(struct analogix_dp_device *dp,
if (!blocking)
return 0;
+ /*
+ * db[1]!=0: entering PSR, wait for fully active remote frame buffer.
+ * db[1]==0: exiting PSR, wait for either
+ * (a) ACTIVE_RESYNC - the sink "must display the
+ * incoming active frames from the Source device with no visible
+ * glitches and/or artifacts", even though timings may still be
+ * re-synchronizing; or
+ * (b) INACTIVE - the transition is fully complete.
+ */
ret = readx_poll_timeout(analogix_dp_get_psr_status, dp, psr_status,
psr_status >= 0 &&
((vsc->db[1] && psr_status == DP_PSR_SINK_ACTIVE_RFB) ||
- (!vsc->db[1] && psr_status == DP_PSR_SINK_INACTIVE)), 1500,
- DP_TIMEOUT_PSR_LOOP_MS * 1000);
+ (!vsc->db[1] && (psr_status == DP_PSR_SINK_ACTIVE_RESYNC ||
+ psr_status == DP_PSR_SINK_INACTIVE))),
+ 1500, DP_TIMEOUT_PSR_LOOP_MS * 1000);
if (ret) {
dev_warn(dp->dev, "Failed to apply PSR %d\n", ret);
return ret;
diff --git a/drivers/gpu/drm/bridge/display-connector.c b/drivers/gpu/drm/bridge/display-connector.c
index 4d278573cdb9..544a47335cac 100644
--- a/drivers/gpu/drm/bridge/display-connector.c
+++ b/drivers/gpu/drm/bridge/display-connector.c
@@ -104,7 +104,7 @@ static int display_connector_probe(struct platform_device *pdev)
{
struct display_connector *conn;
unsigned int type;
- const char *label;
+ const char *label = NULL;
int ret;
conn = devm_kzalloc(&pdev->dev, sizeof(*conn), GFP_KERNEL);
diff --git a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
index d2808c4a6fb1..cce98bf2a4e7 100644
--- a/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
+++ b/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
@@ -306,19 +306,10 @@ static void ge_b850v3_lvds_remove(void)
mutex_unlock(&ge_b850v3_lvds_dev_mutex);
}
-static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
- const struct i2c_device_id *id)
+static int ge_b850v3_register(void)
{
+ struct i2c_client *stdp4028_i2c = ge_b850v3_lvds_ptr->stdp4028_i2c;
struct device *dev = &stdp4028_i2c->dev;
- int ret;
-
- ret = ge_b850v3_lvds_init(dev);
-
- if (ret)
- return ret;
-
- ge_b850v3_lvds_ptr->stdp4028_i2c = stdp4028_i2c;
- i2c_set_clientdata(stdp4028_i2c, ge_b850v3_lvds_ptr);
/* drm bridge initialization */
ge_b850v3_lvds_ptr->bridge.funcs = &ge_b850v3_lvds_funcs;
@@ -343,6 +334,27 @@ static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
"ge-b850v3-lvds-dp", ge_b850v3_lvds_ptr);
}
+static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
+ const struct i2c_device_id *id)
+{
+ struct device *dev = &stdp4028_i2c->dev;
+ int ret;
+
+ ret = ge_b850v3_lvds_init(dev);
+
+ if (ret)
+ return ret;
+
+ ge_b850v3_lvds_ptr->stdp4028_i2c = stdp4028_i2c;
+ i2c_set_clientdata(stdp4028_i2c, ge_b850v3_lvds_ptr);
+
+ /* Only register after both bridges are probed */
+ if (!ge_b850v3_lvds_ptr->stdp2690_i2c)
+ return 0;
+
+ return ge_b850v3_register();
+}
+
static int stdp4028_ge_b850v3_fw_remove(struct i2c_client *stdp4028_i2c)
{
ge_b850v3_lvds_remove();
@@ -386,7 +398,11 @@ static int stdp2690_ge_b850v3_fw_probe(struct i2c_client *stdp2690_i2c,
ge_b850v3_lvds_ptr->stdp2690_i2c = stdp2690_i2c;
i2c_set_clientdata(stdp2690_i2c, ge_b850v3_lvds_ptr);
- return 0;
+ /* Only register after both bridges are probed */
+ if (!ge_b850v3_lvds_ptr->stdp4028_i2c)
+ return 0;
+
+ return ge_b850v3_register();
}
static int stdp2690_ge_b850v3_fw_remove(struct i2c_client *stdp2690_i2c)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
index d0db1acf11d7..7d2ed0ed2fe2 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
@@ -320,13 +320,17 @@ static int dw_hdmi_open(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
struct snd_dw_hdmi *dw = substream->private_data;
void __iomem *base = dw->data.base;
+ u8 *eld;
int ret;
runtime->hw = dw_hdmi_hw;
- ret = snd_pcm_hw_constraint_eld(runtime, dw->data.eld);
- if (ret < 0)
- return ret;
+ eld = dw->data.get_eld(dw->data.hdmi);
+ if (eld) {
+ ret = snd_pcm_hw_constraint_eld(runtime, eld);
+ if (ret < 0)
+ return ret;
+ }
ret = snd_pcm_limit_hw_rates(runtime);
if (ret < 0)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
index cb07dc0da5a7..f72d27208ebe 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
@@ -9,15 +9,15 @@ struct dw_hdmi_audio_data {
void __iomem *base;
int irq;
struct dw_hdmi *hdmi;
- u8 *eld;
+ u8 *(*get_eld)(struct dw_hdmi *hdmi);
};
struct dw_hdmi_i2s_audio_data {
struct dw_hdmi *hdmi;
- u8 *eld;
void (*write)(struct dw_hdmi *hdmi, u8 val, int offset);
u8 (*read)(struct dw_hdmi *hdmi, int offset);
+ u8 *(*get_eld)(struct dw_hdmi *hdmi);
};
#endif
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
index 9fef6413741d..9682416056ed 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
@@ -135,8 +135,15 @@ static int dw_hdmi_i2s_get_eld(struct device *dev, void *data, uint8_t *buf,
size_t len)
{
struct dw_hdmi_i2s_audio_data *audio = data;
+ u8 *eld;
+
+ eld = audio->get_eld(audio->hdmi);
+ if (eld)
+ memcpy(buf, eld, min_t(size_t, MAX_ELD_BYTES, len));
+ else
+ /* Pass en empty ELD if connector not available */
+ memset(buf, 0, len);
- memcpy(buf, audio->eld, min_t(size_t, MAX_ELD_BYTES, len));
return 0;
}
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 0c79a9ba48bb..29c0eb4bd754 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -756,6 +756,14 @@ static void hdmi_enable_audio_clk(struct dw_hdmi *hdmi, bool enable)
hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS);
}
+static u8 *hdmi_audio_get_eld(struct dw_hdmi *hdmi)
+{
+ if (!hdmi->curr_conn)
+ return NULL;
+
+ return hdmi->curr_conn->eld;
+}
+
static void dw_hdmi_ahb_audio_enable(struct dw_hdmi *hdmi)
{
hdmi_set_cts_n(hdmi, hdmi->audio_cts, hdmi->audio_n);
@@ -3395,7 +3403,7 @@ struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev,
audio.base = hdmi->regs;
audio.irq = irq;
audio.hdmi = hdmi;
- audio.eld = hdmi->connector.eld;
+ audio.get_eld = hdmi_audio_get_eld;
hdmi->enable_audio = dw_hdmi_ahb_audio_enable;
hdmi->disable_audio = dw_hdmi_ahb_audio_disable;
@@ -3408,7 +3416,7 @@ struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev,
struct dw_hdmi_i2s_audio_data audio;
audio.hdmi = hdmi;
- audio.eld = hdmi->connector.eld;
+ audio.get_eld = hdmi_audio_get_eld;
audio.write = hdmi_writeb;
audio.read = hdmi_readb;
hdmi->enable_audio = dw_hdmi_i2s_audio_enable;
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
index ecdf9b01340f..1a58481037b3 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -171,6 +171,7 @@ static const struct regmap_config ti_sn_bridge_regmap_config = {
.val_bits = 8,
.volatile_table = &ti_sn_bridge_volatile_table,
.cache_type = REGCACHE_NONE,
+ .max_register = 0xFF,
};
static void ti_sn_bridge_write_u16(struct ti_sn_bridge *pdata,
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index cd162d406078..006e3b896cae 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -577,6 +577,7 @@ static int drm_dev_init(struct drm_device *dev,
struct drm_driver *driver,
struct device *parent)
{
+ struct inode *inode;
int ret;
if (!drm_core_init_complete) {
@@ -613,13 +614,15 @@ static int drm_dev_init(struct drm_device *dev,
if (ret)
return ret;
- dev->anon_inode = drm_fs_inode_new();
- if (IS_ERR(dev->anon_inode)) {
- ret = PTR_ERR(dev->anon_inode);
+ inode = drm_fs_inode_new();
+ if (IS_ERR(inode)) {
+ ret = PTR_ERR(inode);
DRM_ERROR("Cannot allocate anonymous inode: %d\n", ret);
goto err;
}
+ dev->anon_inode = inode;
+
if (drm_core_check_feature(dev, DRIVER_RENDER)) {
ret = drm_minor_alloc(dev, DRM_MINOR_RENDER);
if (ret)
diff --git a/drivers/gpu/drm/drm_panel_orientation_quirks.c b/drivers/gpu/drm/drm_panel_orientation_quirks.c
index a950d5db211c..9d1bd8f491ad 100644
--- a/drivers/gpu/drm/drm_panel_orientation_quirks.c
+++ b/drivers/gpu/drm/drm_panel_orientation_quirks.c
@@ -248,6 +248,12 @@ static const struct dmi_system_id orientation_data[] = {
DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad D330-10IGM"),
},
.driver_data = (void *)&lcd1200x1920_rightside_up,
+ }, { /* Lenovo Yoga Book X90F / X91F / X91L */
+ .matches = {
+ /* Non exact match to match all versions */
+ DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X9"),
+ },
+ .driver_data = (void *)&lcd1200x1920_rightside_up,
}, { /* OneGX1 Pro */
.matches = {
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SYSTEM_MANUFACTURER"),
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
index 5f24cc52c287..ed2c50011d44 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
@@ -469,6 +469,12 @@ int etnaviv_ioctl_gem_submit(struct drm_device *dev, void *data,
return -EINVAL;
}
+ if (args->stream_size > SZ_64K || args->nr_relocs > SZ_64K ||
+ args->nr_bos > SZ_64K || args->nr_pmrs > 128) {
+ DRM_ERROR("submit arguments out of size limits\n");
+ return -EINVAL;
+ }
+
/*
* Copy the command submission and bo array to kernel space in
* one go, and do this outside of any locks.
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.h b/drivers/gpu/drm/etnaviv/etnaviv_gpu.h
index 1c75c8ed5bce..85eddd492774 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.h
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.h
@@ -130,6 +130,7 @@ struct etnaviv_gpu {
/* hang detection */
u32 hangcheck_dma_addr;
+ u32 hangcheck_fence;
void __iomem *mmio;
int irq;
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_sched.c b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
index cd46c882269c..026b6c073119 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_sched.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_sched.c
@@ -106,8 +106,10 @@ static void etnaviv_sched_timedout_job(struct drm_sched_job *sched_job)
*/
dma_addr = gpu_read(gpu, VIVS_FE_DMA_ADDRESS);
change = dma_addr - gpu->hangcheck_dma_addr;
- if (change < 0 || change > 16) {
+ if (gpu->completed_fence != gpu->hangcheck_fence ||
+ change < 0 || change > 16) {
gpu->hangcheck_dma_addr = dma_addr;
+ gpu->hangcheck_fence = gpu->completed_fence;
goto out_no_timeout;
}
diff --git a/drivers/gpu/drm/lima/lima_device.c b/drivers/gpu/drm/lima/lima_device.c
index 65fdca366e41..36c990589427 100644
--- a/drivers/gpu/drm/lima/lima_device.c
+++ b/drivers/gpu/drm/lima/lima_device.c
@@ -357,6 +357,7 @@ int lima_device_init(struct lima_device *ldev)
int err, i;
dma_set_coherent_mask(ldev->dev, DMA_BIT_MASK(32));
+ dma_set_max_seg_size(ldev->dev, UINT_MAX);
err = lima_clk_init(ldev);
if (err)
diff --git a/drivers/gpu/drm/mediatek/mtk_mipi_tx.c b/drivers/gpu/drm/mediatek/mtk_mipi_tx.c
index 8cee2591e728..ccc742dc78bd 100644
--- a/drivers/gpu/drm/mediatek/mtk_mipi_tx.c
+++ b/drivers/gpu/drm/mediatek/mtk_mipi_tx.c
@@ -147,6 +147,8 @@ static int mtk_mipi_tx_probe(struct platform_device *pdev)
return -ENOMEM;
mipi_tx->driver_data = of_device_get_match_data(dev);
+ if (!mipi_tx->driver_data)
+ return -ENODEV;
mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
mipi_tx->regs = devm_ioremap_resource(dev, mem);
diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig
index dabb4a1ccdcf..1aad34b5ffd7 100644
--- a/drivers/gpu/drm/msm/Kconfig
+++ b/drivers/gpu/drm/msm/Kconfig
@@ -60,6 +60,7 @@ config DRM_MSM_HDMI_HDCP
config DRM_MSM_DP
bool "Enable DisplayPort support in MSM DRM driver"
depends on DRM_MSM
+ select RATIONAL
default y
help
Compile in support for DP driver in MSM DRM driver. DP external
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index b4a2e8eb35dd..08e082d0443a 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -71,8 +71,8 @@ static int _dpu_danger_signal_status(struct seq_file *s,
&status);
} else {
seq_puts(s, "\nSafe signal status:\n");
- if (kms->hw_mdp->ops.get_danger_status)
- kms->hw_mdp->ops.get_danger_status(kms->hw_mdp,
+ if (kms->hw_mdp->ops.get_safe_status)
+ kms->hw_mdp->ops.get_safe_status(kms->hw_mdp,
&status);
}
pm_runtime_put_sync(&kms->pdev->dev);
diff --git a/drivers/gpu/drm/nouveau/dispnv04/disp.c b/drivers/gpu/drm/nouveau/dispnv04/disp.c
index 7739f46470d3..99fee4d8cd31 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/disp.c
@@ -205,7 +205,7 @@ nv04_display_destroy(struct drm_device *dev)
nvif_notify_dtor(&disp->flip);
nouveau_display(dev)->priv = NULL;
- kfree(disp);
+ vfree(disp);
nvif_object_unmap(&drm->client.device.object);
}
@@ -223,7 +223,7 @@ nv04_display_create(struct drm_device *dev)
struct nv04_display *disp;
int i, ret;
- disp = kzalloc(sizeof(*disp), GFP_KERNEL);
+ disp = vzalloc(sizeof(*disp));
if (!disp)
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
index a0fe607c9c07..3bfc55c571b5 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c
@@ -94,20 +94,13 @@ nvkm_pmu_fini(struct nvkm_subdev *subdev, bool suspend)
return 0;
}
-static int
+static void
nvkm_pmu_reset(struct nvkm_pmu *pmu)
{
struct nvkm_device *device = pmu->subdev.device;
if (!pmu->func->enabled(pmu))
- return 0;
-
- /* Inhibit interrupts, and wait for idle. */
- nvkm_wr32(device, 0x10a014, 0x0000ffff);
- nvkm_msec(device, 2000,
- if (!nvkm_rd32(device, 0x10a04c))
- break;
- );
+ return;
/* Reset. */
if (pmu->func->reset)
@@ -118,25 +111,37 @@ nvkm_pmu_reset(struct nvkm_pmu *pmu)
if (!(nvkm_rd32(device, 0x10a10c) & 0x00000006))
break;
);
-
- return 0;
}
static int
nvkm_pmu_preinit(struct nvkm_subdev *subdev)
{
struct nvkm_pmu *pmu = nvkm_pmu(subdev);
- return nvkm_pmu_reset(pmu);
+ nvkm_pmu_reset(pmu);
+ return 0;
}
static int
nvkm_pmu_init(struct nvkm_subdev *subdev)
{
struct nvkm_pmu *pmu = nvkm_pmu(subdev);
- int ret = nvkm_pmu_reset(pmu);
- if (ret == 0 && pmu->func->init)
- ret = pmu->func->init(pmu);
- return ret;
+ struct nvkm_device *device = pmu->subdev.device;
+
+ if (!pmu->func->init)
+ return 0;
+
+ if (pmu->func->enabled(pmu)) {
+ /* Inhibit interrupts, and wait for idle. */
+ nvkm_wr32(device, 0x10a014, 0x0000ffff);
+ nvkm_msec(device, 2000,
+ if (!nvkm_rd32(device, 0x10a04c))
+ break;
+ );
+
+ nvkm_pmu_reset(pmu);
+ }
+
+ return pmu->func->init(pmu);
}
static void *
diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
index aea316225391..f194b62e290c 100644
--- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
+++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
@@ -484,6 +484,7 @@ static void innolux_panel_del(struct innolux_panel *innolux)
static int innolux_panel_probe(struct mipi_dsi_device *dsi)
{
const struct panel_desc *desc;
+ struct innolux_panel *innolux;
int err;
desc = of_device_get_match_data(&dsi->dev);
@@ -495,7 +496,14 @@ static int innolux_panel_probe(struct mipi_dsi_device *dsi)
if (err < 0)
return err;
- return mipi_dsi_attach(dsi);
+ err = mipi_dsi_attach(dsi);
+ if (err < 0) {
+ innolux = mipi_dsi_get_drvdata(dsi);
+ innolux_panel_del(innolux);
+ return err;
+ }
+
+ return 0;
}
static int innolux_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
index 86e4213e8bb1..daccb1fd5fda 100644
--- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
+++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
@@ -406,7 +406,13 @@ static int kingdisplay_panel_probe(struct mipi_dsi_device *dsi)
if (err < 0)
return err;
- return mipi_dsi_attach(dsi);
+ err = mipi_dsi_attach(dsi);
+ if (err < 0) {
+ kingdisplay_panel_del(kingdisplay);
+ return err;
+ }
+
+ return 0;
}
static int kingdisplay_panel_remove(struct mipi_dsi_device *dsi)
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index 8c0a572940e8..32070e94f6c4 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -634,6 +634,8 @@ void radeon_driver_lastclose_kms(struct drm_device *dev)
int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
{
struct radeon_device *rdev = dev->dev_private;
+ struct radeon_fpriv *fpriv;
+ struct radeon_vm *vm;
int r;
file_priv->driver_priv = NULL;
@@ -646,48 +648,52 @@ int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
/* new gpu have virtual address space support */
if (rdev->family >= CHIP_CAYMAN) {
- struct radeon_fpriv *fpriv;
- struct radeon_vm *vm;
fpriv = kzalloc(sizeof(*fpriv), GFP_KERNEL);
if (unlikely(!fpriv)) {
r = -ENOMEM;
- goto out_suspend;
+ goto err_suspend;
}
if (rdev->accel_working) {
vm = &fpriv->vm;
r = radeon_vm_init(rdev, vm);
- if (r) {
- kfree(fpriv);
- goto out_suspend;
- }
+ if (r)
+ goto err_fpriv;
r = radeon_bo_reserve(rdev->ring_tmp_bo.bo, false);
- if (r) {
- radeon_vm_fini(rdev, vm);
- kfree(fpriv);
- goto out_suspend;
- }
+ if (r)
+ goto err_vm_fini;
/* map the ib pool buffer read only into
* virtual address space */
vm->ib_bo_va = radeon_vm_bo_add(rdev, vm,
rdev->ring_tmp_bo.bo);
+ if (!vm->ib_bo_va) {
+ r = -ENOMEM;
+ goto err_vm_fini;
+ }
+
r = radeon_vm_bo_set_addr(rdev, vm->ib_bo_va,
RADEON_VA_IB_OFFSET,
RADEON_VM_PAGE_READABLE |
RADEON_VM_PAGE_SNOOPED);
- if (r) {
- radeon_vm_fini(rdev, vm);
- kfree(fpriv);
- goto out_suspend;
- }
+ if (r)
+ goto err_vm_fini;
}
file_priv->driver_priv = fpriv;
}
-out_suspend:
+ pm_runtime_mark_last_busy(dev->dev);
+ pm_runtime_put_autosuspend(dev->dev);
+ return 0;
+
+err_vm_fini:
+ radeon_vm_fini(rdev, vm);
+err_fpriv:
+ kfree(fpriv);
+
+err_suspend:
pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return r;
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
index 1b9738e44909..065604c5837d 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
@@ -215,6 +215,7 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc)
const struct drm_display_mode *mode = &rcrtc->crtc.state->adjusted_mode;
struct rcar_du_device *rcdu = rcrtc->dev;
unsigned long mode_clock = mode->clock * 1000;
+ unsigned int hdse_offset;
u32 dsmr;
u32 escr;
@@ -298,10 +299,15 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc)
| DSMR_DIPM_DISP | DSMR_CSPM;
rcar_du_crtc_write(rcrtc, DSMR, dsmr);
+ hdse_offset = 19;
+ if (rcrtc->group->cmms_mask & BIT(rcrtc->index % 2))
+ hdse_offset += 25;
+
/* Display timings */
- rcar_du_crtc_write(rcrtc, HDSR, mode->htotal - mode->hsync_start - 19);
+ rcar_du_crtc_write(rcrtc, HDSR, mode->htotal - mode->hsync_start -
+ hdse_offset);
rcar_du_crtc_write(rcrtc, HDER, mode->htotal - mode->hsync_start +
- mode->hdisplay - 19);
+ mode->hdisplay - hdse_offset);
rcar_du_crtc_write(rcrtc, HSWR, mode->hsync_end -
mode->hsync_start - 1);
rcar_du_crtc_write(rcrtc, HCR, mode->htotal - 1);
@@ -831,6 +837,7 @@ rcar_du_crtc_mode_valid(struct drm_crtc *crtc,
struct rcar_du_crtc *rcrtc = to_rcar_crtc(crtc);
struct rcar_du_device *rcdu = rcrtc->dev;
bool interlaced = mode->flags & DRM_MODE_FLAG_INTERLACE;
+ unsigned int min_sync_porch;
unsigned int vbp;
if (interlaced && !rcar_du_has(rcdu, RCAR_DU_FEATURE_INTERLACED))
@@ -838,9 +845,14 @@ rcar_du_crtc_mode_valid(struct drm_crtc *crtc,
/*
* The hardware requires a minimum combined horizontal sync and back
- * porch of 20 pixels and a minimum vertical back porch of 3 lines.
+ * porch of 20 pixels (when CMM isn't used) or 45 pixels (when CMM is
+ * used), and a minimum vertical back porch of 3 lines.
*/
- if (mode->htotal - mode->hsync_start < 20)
+ min_sync_porch = 20;
+ if (rcrtc->group->cmms_mask & BIT(rcrtc->index % 2))
+ min_sync_porch += 25;
+
+ if (mode->htotal - mode->hsync_start < min_sync_porch)
return MODE_HBLANK_NARROW;
vbp = (mode->vtotal - mode->vsync_end) / (interlaced ? 2 : 1);
diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
index d0c9610ad220..b0fb3c3cba59 100644
--- a/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
+++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
@@ -243,6 +243,8 @@ struct dw_mipi_dsi_rockchip {
struct dw_mipi_dsi *dmd;
const struct rockchip_dw_dsi_chip_data *cdata;
struct dw_mipi_dsi_plat_data pdata;
+
+ bool dsi_bound;
};
struct dphy_pll_parameter_map {
@@ -753,10 +755,6 @@ static void dw_mipi_dsi_encoder_enable(struct drm_encoder *encoder)
if (mux < 0)
return;
- pm_runtime_get_sync(dsi->dev);
- if (dsi->slave)
- pm_runtime_get_sync(dsi->slave->dev);
-
/*
* For the RK3399, the clk of grf must be enabled before writing grf
* register. And for RK3288 or other soc, this grf_clk must be NULL,
@@ -775,20 +773,10 @@ static void dw_mipi_dsi_encoder_enable(struct drm_encoder *encoder)
clk_disable_unprepare(dsi->grf_clk);
}
-static void dw_mipi_dsi_encoder_disable(struct drm_encoder *encoder)
-{
- struct dw_mipi_dsi_rockchip *dsi = to_dsi(encoder);
-
- if (dsi->slave)
- pm_runtime_put(dsi->slave->dev);
- pm_runtime_put(dsi->dev);
-}
-
static const struct drm_encoder_helper_funcs
dw_mipi_dsi_encoder_helper_funcs = {
.atomic_check = dw_mipi_dsi_encoder_atomic_check,
.enable = dw_mipi_dsi_encoder_enable,
- .disable = dw_mipi_dsi_encoder_disable,
};
static int rockchip_dsi_drm_create_encoder(struct dw_mipi_dsi_rockchip *dsi,
@@ -918,10 +906,14 @@ static int dw_mipi_dsi_rockchip_bind(struct device *dev,
put_device(second);
}
+ pm_runtime_get_sync(dsi->dev);
+ if (dsi->slave)
+ pm_runtime_get_sync(dsi->slave->dev);
+
ret = clk_prepare_enable(dsi->pllref_clk);
if (ret) {
DRM_DEV_ERROR(dev, "Failed to enable pllref_clk: %d\n", ret);
- return ret;
+ goto out_pm_runtime;
}
/*
@@ -933,7 +925,7 @@ static int dw_mipi_dsi_rockchip_bind(struct device *dev,
ret = clk_prepare_enable(dsi->grf_clk);
if (ret) {
DRM_DEV_ERROR(dsi->dev, "Failed to enable grf_clk: %d\n", ret);
- return ret;
+ goto out_pll_clk;
}
dw_mipi_dsi_rockchip_config(dsi);
@@ -945,16 +937,27 @@ static int dw_mipi_dsi_rockchip_bind(struct device *dev,
ret = rockchip_dsi_drm_create_encoder(dsi, drm_dev);
if (ret) {
DRM_DEV_ERROR(dev, "Failed to create drm encoder\n");
- return ret;
+ goto out_pll_clk;
}
ret = dw_mipi_dsi_bind(dsi->dmd, &dsi->encoder);
if (ret) {
DRM_DEV_ERROR(dev, "Failed to bind: %d\n", ret);
- return ret;
+ goto out_pll_clk;
}
+ dsi->dsi_bound = true;
+
return 0;
+
+out_pll_clk:
+ clk_disable_unprepare(dsi->pllref_clk);
+out_pm_runtime:
+ pm_runtime_put(dsi->dev);
+ if (dsi->slave)
+ pm_runtime_put(dsi->slave->dev);
+
+ return ret;
}
static void dw_mipi_dsi_rockchip_unbind(struct device *dev,
@@ -966,9 +969,15 @@ static void dw_mipi_dsi_rockchip_unbind(struct device *dev,
if (dsi->is_slave)
return;
+ dsi->dsi_bound = false;
+
dw_mipi_dsi_unbind(dsi->dmd);
clk_disable_unprepare(dsi->pllref_clk);
+
+ pm_runtime_put(dsi->dev);
+ if (dsi->slave)
+ pm_runtime_put(dsi->slave->dev);
}
static const struct component_ops dw_mipi_dsi_rockchip_ops = {
@@ -1026,6 +1035,36 @@ static const struct dw_mipi_dsi_host_ops dw_mipi_dsi_rockchip_host_ops = {
.detach = dw_mipi_dsi_rockchip_host_detach,
};
+static int __maybe_unused dw_mipi_dsi_rockchip_resume(struct device *dev)
+{
+ struct dw_mipi_dsi_rockchip *dsi = dev_get_drvdata(dev);
+ int ret;
+
+ /*
+ * Re-configure DSI state, if we were previously initialized. We need
+ * to do this before rockchip_drm_drv tries to re-enable() any panels.
+ */
+ if (dsi->dsi_bound) {
+ ret = clk_prepare_enable(dsi->grf_clk);
+ if (ret) {
+ DRM_DEV_ERROR(dsi->dev, "Failed to enable grf_clk: %d\n", ret);
+ return ret;
+ }
+
+ dw_mipi_dsi_rockchip_config(dsi);
+ if (dsi->slave)
+ dw_mipi_dsi_rockchip_config(dsi->slave);
+
+ clk_disable_unprepare(dsi->grf_clk);
+ }
+
+ return 0;
+}
+
+static const struct dev_pm_ops dw_mipi_dsi_rockchip_pm_ops = {
+ SET_LATE_SYSTEM_SLEEP_PM_OPS(NULL, dw_mipi_dsi_rockchip_resume)
+};
+
static int dw_mipi_dsi_rockchip_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -1126,14 +1165,10 @@ static int dw_mipi_dsi_rockchip_probe(struct platform_device *pdev)
if (ret != -EPROBE_DEFER)
DRM_DEV_ERROR(dev,
"Failed to probe dw_mipi_dsi: %d\n", ret);
- goto err_clkdisable;
+ return ret;
}
return 0;
-
-err_clkdisable:
- clk_disable_unprepare(dsi->pllref_clk);
- return ret;
}
static int dw_mipi_dsi_rockchip_remove(struct platform_device *pdev)
@@ -1249,6 +1284,7 @@ struct platform_driver dw_mipi_dsi_rockchip_driver = {
.remove = dw_mipi_dsi_rockchip_remove,
.driver = {
.of_match_table = dw_mipi_dsi_rockchip_dt_ids,
+ .pm = &dw_mipi_dsi_rockchip_pm_ops,
.name = "dw-mipi-dsi-rockchip",
},
};
diff --git a/drivers/gpu/drm/tegra/vic.c b/drivers/gpu/drm/tegra/vic.c
index b77f726303d8..ec0e4d8f0aad 100644
--- a/drivers/gpu/drm/tegra/vic.c
+++ b/drivers/gpu/drm/tegra/vic.c
@@ -5,6 +5,7 @@
#include <linux/clk.h>
#include <linux/delay.h>
+#include <linux/dma-mapping.h>
#include <linux/host1x.h>
#include <linux/iommu.h>
#include <linux/module.h>
@@ -265,10 +266,8 @@ static int vic_load_firmware(struct vic *vic)
if (!client->group) {
virt = dma_alloc_coherent(vic->dev, size, &iova, GFP_KERNEL);
-
- err = dma_mapping_error(vic->dev, iova);
- if (err < 0)
- return err;
+ if (!virt)
+ return -ENOMEM;
} else {
virt = tegra_drm_alloc(tegra, size, &iova);
}
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index eb4b7df02ca0..f673292eec9d 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -789,6 +789,8 @@ int ttm_mem_evict_first(struct ttm_bo_device *bdev,
ret = ttm_bo_evict(bo, ctx);
if (locked)
ttm_bo_unreserve(bo);
+ else
+ ttm_bo_move_to_lru_tail_unlocked(bo);
ttm_bo_put(bo);
return ret;
diff --git a/drivers/gpu/drm/vboxvideo/vbox_main.c b/drivers/gpu/drm/vboxvideo/vbox_main.c
index d68d9bad7674..c5ea880d17b2 100644
--- a/drivers/gpu/drm/vboxvideo/vbox_main.c
+++ b/drivers/gpu/drm/vboxvideo/vbox_main.c
@@ -123,8 +123,8 @@ int vbox_hw_init(struct vbox_private *vbox)
/* Create guest-heap mem-pool use 2^4 = 16 byte chunks */
vbox->guest_pool = devm_gen_pool_create(vbox->ddev.dev, 4, -1,
"vboxvideo-accel");
- if (!vbox->guest_pool)
- return -ENOMEM;
+ if (IS_ERR(vbox->guest_pool))
+ return PTR_ERR(vbox->guest_pool);
ret = gen_pool_add_virt(vbox->guest_pool,
(unsigned long)vbox->guest_heap,
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index ee293f061f0a..9392de2679a1 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -79,6 +79,7 @@
# define VC4_HD_M_SW_RST BIT(2)
# define VC4_HD_M_ENABLE BIT(0)
+#define HSM_MIN_CLOCK_FREQ 120000000
#define CEC_CLOCK_FREQ 40000
#define VC4_HSM_MID_CLOCK 149985000
@@ -1398,8 +1399,14 @@ static int vc4_hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable)
struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
/* clock period in microseconds */
const u32 usecs = 1000000 / CEC_CLOCK_FREQ;
- u32 val = HDMI_READ(HDMI_CEC_CNTRL_5);
+ u32 val;
+ int ret;
+ ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
+ if (ret)
+ return ret;
+
+ val = HDMI_READ(HDMI_CEC_CNTRL_5);
val &= ~(VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET |
VC4_HDMI_CEC_CNT_TO_4700_US_MASK |
VC4_HDMI_CEC_CNT_TO_4500_US_MASK);
@@ -1524,6 +1531,8 @@ static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi)
if (ret < 0)
goto err_delete_cec_adap;
+ pm_runtime_put(&vc4_hdmi->pdev->dev);
+
return 0;
err_delete_cec_adap:
@@ -1806,6 +1815,19 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
vc4_hdmi->disable_wifi_frequencies =
of_property_read_bool(dev->of_node, "wifi-2.4ghz-coexistence");
+ /*
+ * If we boot without any cable connected to the HDMI connector,
+ * the firmware will skip the HSM initialization and leave it
+ * with a rate of 0, resulting in a bus lockup when we're
+ * accessing the registers even if it's enabled.
+ *
+ * Let's put a sensible default at runtime_resume so that we
+ * don't end up in this situation.
+ */
+ ret = clk_set_min_rate(vc4_hdmi->hsm_clock, HSM_MIN_CLOCK_FREQ);
+ if (ret)
+ goto err_put_ddc;
+
if (vc4_hdmi->variant->reset)
vc4_hdmi->variant->reset(vc4_hdmi);
diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c
index d0ebb70e2fdd..a2c09dca4eef 100644
--- a/drivers/gpu/host1x/dev.c
+++ b/drivers/gpu/host1x/dev.c
@@ -18,6 +18,10 @@
#include <trace/events/host1x.h>
#undef CREATE_TRACE_POINTS
+#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
+#include <asm/dma-iommu.h>
+#endif
+
#include "bus.h"
#include "channel.h"
#include "debug.h"
@@ -232,6 +236,17 @@ static struct iommu_domain *host1x_iommu_attach(struct host1x *host)
struct iommu_domain *domain = iommu_get_domain_for_dev(host->dev);
int err;
+#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
+ if (host->dev->archdata.mapping) {
+ struct dma_iommu_mapping *mapping =
+ to_dma_iommu_mapping(host->dev);
+ arm_iommu_detach_device(host->dev);
+ arm_iommu_release_mapping(mapping);
+
+ domain = iommu_get_domain_for_dev(host->dev);
+ }
+#endif
+
/*
* We may not always want to enable IOMMU support (for example if the
* host1x firewall is already enabled and we don't support addressing
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
index 5c1d33cda863..e5d2e7e9541b 100644
--- a/drivers/hid/hid-apple.c
+++ b/drivers/hid/hid-apple.c
@@ -415,7 +415,7 @@ static int apple_input_configured(struct hid_device *hdev,
if ((asc->quirks & APPLE_HAS_FN) && !asc->fn_found) {
hid_info(hdev, "Fn key not found (Apple Wireless Keyboard clone?), disabling Fn key handling\n");
- asc->quirks = 0;
+ asc->quirks &= ~APPLE_HAS_FN;
}
return 0;
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 580d378342c4..eb53855898c8 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -1288,6 +1288,12 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct
input = field->hidinput->input;
+ if (usage->type == EV_ABS &&
+ (((*quirks & HID_QUIRK_X_INVERT) && usage->code == ABS_X) ||
+ ((*quirks & HID_QUIRK_Y_INVERT) && usage->code == ABS_Y))) {
+ value = field->logical_maximum - value;
+ }
+
if (usage->hat_min < usage->hat_max || usage->hat_dir) {
int hat_dir = usage->hat_dir;
if (!hat_dir)
diff --git a/drivers/hid/hid-uclogic-params.c b/drivers/hid/hid-uclogic-params.c
index dd05bed4ca53..38f9bbad81c1 100644
--- a/drivers/hid/hid-uclogic-params.c
+++ b/drivers/hid/hid-uclogic-params.c
@@ -65,7 +65,7 @@ static int uclogic_params_get_str_desc(__u8 **pbuf, struct hid_device *hdev,
__u8 idx, size_t len)
{
int rc;
- struct usb_device *udev = hid_to_usb_dev(hdev);
+ struct usb_device *udev;
__u8 *buf = NULL;
/* Check arguments */
@@ -74,6 +74,8 @@ static int uclogic_params_get_str_desc(__u8 **pbuf, struct hid_device *hdev,
goto cleanup;
}
+ udev = hid_to_usb_dev(hdev);
+
buf = kmalloc(len, GFP_KERNEL);
if (buf == NULL) {
rc = -ENOMEM;
@@ -449,7 +451,7 @@ static int uclogic_params_frame_init_v1_buttonpad(
{
int rc;
bool found = false;
- struct usb_device *usb_dev = hid_to_usb_dev(hdev);
+ struct usb_device *usb_dev;
char *str_buf = NULL;
const size_t str_len = 16;
@@ -459,6 +461,8 @@ static int uclogic_params_frame_init_v1_buttonpad(
goto cleanup;
}
+ usb_dev = hid_to_usb_dev(hdev);
+
/*
* Enable generic button mode
*/
@@ -705,9 +709,9 @@ static int uclogic_params_huion_init(struct uclogic_params *params,
struct hid_device *hdev)
{
int rc;
- struct usb_device *udev = hid_to_usb_dev(hdev);
- struct usb_interface *iface = to_usb_interface(hdev->dev.parent);
- __u8 bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+ struct usb_device *udev;
+ struct usb_interface *iface;
+ __u8 bInterfaceNumber;
bool found;
/* The resulting parameters (noop) */
struct uclogic_params p = {0, };
@@ -721,6 +725,10 @@ static int uclogic_params_huion_init(struct uclogic_params *params,
goto cleanup;
}
+ udev = hid_to_usb_dev(hdev);
+ iface = to_usb_interface(hdev->dev.parent);
+ bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+
/* If it's not a pen interface */
if (bInterfaceNumber != 0) {
/* TODO: Consider marking the interface invalid */
@@ -832,10 +840,10 @@ int uclogic_params_init(struct uclogic_params *params,
struct hid_device *hdev)
{
int rc;
- struct usb_device *udev = hid_to_usb_dev(hdev);
- __u8 bNumInterfaces = udev->config->desc.bNumInterfaces;
- struct usb_interface *iface = to_usb_interface(hdev->dev.parent);
- __u8 bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+ struct usb_device *udev;
+ __u8 bNumInterfaces;
+ struct usb_interface *iface;
+ __u8 bInterfaceNumber;
bool found;
/* The resulting parameters (noop) */
struct uclogic_params p = {0, };
@@ -846,6 +854,11 @@ int uclogic_params_init(struct uclogic_params *params,
goto cleanup;
}
+ udev = hid_to_usb_dev(hdev);
+ bNumInterfaces = udev->config->desc.bNumInterfaces;
+ iface = to_usb_interface(hdev->dev.parent);
+ bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+
/*
* Set replacement report descriptor if the original matches the
* specified size. Otherwise keep interface unchanged.
diff --git a/drivers/hid/hid-vivaldi.c b/drivers/hid/hid-vivaldi.c
index 72957a9f7117..576518e704ee 100644
--- a/drivers/hid/hid-vivaldi.c
+++ b/drivers/hid/hid-vivaldi.c
@@ -74,10 +74,11 @@ static void vivaldi_feature_mapping(struct hid_device *hdev,
struct hid_usage *usage)
{
struct vivaldi_data *drvdata = hid_get_drvdata(hdev);
+ struct hid_report *report = field->report;
int fn_key;
int ret;
u32 report_len;
- u8 *buf;
+ u8 *report_data, *buf;
if (field->logical != HID_USAGE_FN_ROW_PHYSMAP ||
(usage->hid & HID_USAGE_PAGE) != HID_UP_ORDINAL)
@@ -89,12 +90,24 @@ static void vivaldi_feature_mapping(struct hid_device *hdev,
if (fn_key > drvdata->max_function_row_key)
drvdata->max_function_row_key = fn_key;
- buf = hid_alloc_report_buf(field->report, GFP_KERNEL);
- if (!buf)
+ report_data = buf = hid_alloc_report_buf(report, GFP_KERNEL);
+ if (!report_data)
return;
- report_len = hid_report_len(field->report);
- ret = hid_hw_raw_request(hdev, field->report->id, buf,
+ report_len = hid_report_len(report);
+ if (!report->id) {
+ /*
+ * hid_hw_raw_request() will stuff report ID (which will be 0)
+ * into the first byte of the buffer even for unnumbered
+ * reports, so we need to account for this to avoid getting
+ * -EOVERFLOW in return.
+ * Note that hid_alloc_report_buf() adds 7 bytes to the size
+ * so we can safely say that we have space for an extra byte.
+ */
+ report_len++;
+ }
+
+ ret = hid_hw_raw_request(hdev, report->id, report_data,
report_len, HID_FEATURE_REPORT,
HID_REQ_GET_REPORT);
if (ret < 0) {
@@ -103,7 +116,16 @@ static void vivaldi_feature_mapping(struct hid_device *hdev,
goto out;
}
- ret = hid_report_raw_event(hdev, HID_FEATURE_REPORT, buf,
+ if (!report->id) {
+ /*
+ * Undo the damage from hid_hw_raw_request() for unnumbered
+ * reports.
+ */
+ report_data++;
+ report_len--;
+ }
+
+ ret = hid_report_raw_event(hdev, HID_FEATURE_REPORT, report_data,
report_len, 0);
if (ret) {
dev_warn(&hdev->dev, "failed to report feature %d\n",
diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c
index 8fe3efcb8327..fc06d8bb42e0 100644
--- a/drivers/hid/uhid.c
+++ b/drivers/hid/uhid.c
@@ -28,11 +28,22 @@
struct uhid_device {
struct mutex devlock;
+
+ /* This flag tracks whether the HID device is usable for commands from
+ * userspace. The flag is already set before hid_add_device(), which
+ * runs in workqueue context, to allow hid_add_device() to communicate
+ * with userspace.
+ * However, if hid_add_device() fails, the flag is cleared without
+ * holding devlock.
+ * We guarantee that if @running changes from true to false while you're
+ * holding @devlock, it's still fine to access @hid.
+ */
bool running;
__u8 *rd_data;
uint rd_size;
+ /* When this is NULL, userspace may use UHID_CREATE/UHID_CREATE2. */
struct hid_device *hid;
struct uhid_event input_buf;
@@ -63,9 +74,18 @@ static void uhid_device_add_worker(struct work_struct *work)
if (ret) {
hid_err(uhid->hid, "Cannot register HID device: error %d\n", ret);
- hid_destroy_device(uhid->hid);
- uhid->hid = NULL;
+ /* We used to call hid_destroy_device() here, but that's really
+ * messy to get right because we have to coordinate with
+ * concurrent writes from userspace that might be in the middle
+ * of using uhid->hid.
+ * Just leave uhid->hid as-is for now, and clean it up when
+ * userspace tries to close or reinitialize the uhid instance.
+ *
+ * However, we do have to clear the ->running flag and do a
+ * wakeup to make sure userspace knows that the device is gone.
+ */
uhid->running = false;
+ wake_up_interruptible(&uhid->report_wait);
}
}
@@ -474,7 +494,7 @@ static int uhid_dev_create2(struct uhid_device *uhid,
void *rd_data;
int ret;
- if (uhid->running)
+ if (uhid->hid)
return -EALREADY;
rd_size = ev->u.create2.rd_size;
@@ -556,7 +576,7 @@ static int uhid_dev_create(struct uhid_device *uhid,
static int uhid_dev_destroy(struct uhid_device *uhid)
{
- if (!uhid->running)
+ if (!uhid->hid)
return -EINVAL;
uhid->running = false;
@@ -565,6 +585,7 @@ static int uhid_dev_destroy(struct uhid_device *uhid)
cancel_work_sync(&uhid->worker);
hid_destroy_device(uhid->hid);
+ uhid->hid = NULL;
kfree(uhid->rd_data);
return 0;
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
index c25274275258..d90bfa8b7313 100644
--- a/drivers/hid/wacom_wac.c
+++ b/drivers/hid/wacom_wac.c
@@ -2566,6 +2566,24 @@ static void wacom_wac_finger_slot(struct wacom_wac *wacom_wac,
}
}
+static bool wacom_wac_slot_is_active(struct input_dev *dev, int key)
+{
+ struct input_mt *mt = dev->mt;
+ struct input_mt_slot *s;
+
+ if (!mt)
+ return false;
+
+ for (s = mt->slots; s != mt->slots + mt->num_slots; s++) {
+ if (s->key == key &&
+ input_mt_get_value(s, ABS_MT_TRACKING_ID) >= 0) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
static void wacom_wac_finger_event(struct hid_device *hdev,
struct hid_field *field, struct hid_usage *usage, __s32 value)
{
@@ -2613,9 +2631,14 @@ static void wacom_wac_finger_event(struct hid_device *hdev,
}
if (usage->usage_index + 1 == field->report_count) {
- if (equivalent_usage == wacom_wac->hid_data.last_slot_field &&
- wacom_wac->hid_data.confidence)
- wacom_wac_finger_slot(wacom_wac, wacom_wac->touch_input);
+ if (equivalent_usage == wacom_wac->hid_data.last_slot_field) {
+ bool touch_removed = wacom_wac_slot_is_active(wacom_wac->touch_input,
+ wacom_wac->hid_data.id) && !wacom_wac->hid_data.tipswitch;
+
+ if (wacom_wac->hid_data.confidence || touch_removed) {
+ wacom_wac_finger_slot(wacom_wac, wacom_wac->touch_input);
+ }
+ }
}
}
@@ -2631,6 +2654,10 @@ static void wacom_wac_finger_pre_report(struct hid_device *hdev,
hid_data->confidence = true;
+ hid_data->cc_report = 0;
+ hid_data->cc_index = -1;
+ hid_data->cc_value_index = -1;
+
for (i = 0; i < report->maxfield; i++) {
struct hid_field *field = report->field[i];
int j;
@@ -2664,11 +2691,14 @@ static void wacom_wac_finger_pre_report(struct hid_device *hdev,
hid_data->cc_index >= 0) {
struct hid_field *field = report->field[hid_data->cc_index];
int value = field->value[hid_data->cc_value_index];
- if (value)
+ if (value) {
hid_data->num_expected = value;
+ hid_data->num_received = 0;
+ }
}
else {
hid_data->num_expected = wacom_wac->features.touch_max;
+ hid_data->num_received = 0;
}
}
@@ -2692,6 +2722,7 @@ static void wacom_wac_finger_report(struct hid_device *hdev,
input_sync(input);
wacom_wac->hid_data.num_received = 0;
+ wacom_wac->hid_data.num_expected = 0;
/* keep touch state for pen event */
wacom_wac->shared->touch_down = wacom_wac_finger_count_touches(wacom_wac);
diff --git a/drivers/hsi/hsi_core.c b/drivers/hsi/hsi_core.c
index a5f92e2889cb..a330f58d45fc 100644
--- a/drivers/hsi/hsi_core.c
+++ b/drivers/hsi/hsi_core.c
@@ -102,6 +102,7 @@ struct hsi_client *hsi_new_client(struct hsi_port *port,
if (device_register(&cl->device) < 0) {
pr_err("hsi: failed to register client: %s\n", info->name);
put_device(&cl->device);
+ goto err;
}
return cl;
diff --git a/drivers/hwmon/mr75203.c b/drivers/hwmon/mr75203.c
index 18da5a25e89a..046523d47c29 100644
--- a/drivers/hwmon/mr75203.c
+++ b/drivers/hwmon/mr75203.c
@@ -93,7 +93,7 @@
#define VM_CH_REQ BIT(21)
#define IP_TMR 0x05
-#define POWER_DELAY_CYCLE_256 0x80
+#define POWER_DELAY_CYCLE_256 0x100
#define POWER_DELAY_CYCLE_64 0x40
#define PVT_POLL_DELAY_US 20
diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c
index 55c83a7a24f3..56c87ade0e89 100644
--- a/drivers/i2c/busses/i2c-designware-pcidrv.c
+++ b/drivers/i2c/busses/i2c-designware-pcidrv.c
@@ -37,10 +37,10 @@ enum dw_pci_ctl_id_t {
};
struct dw_scl_sda_cfg {
- u32 ss_hcnt;
- u32 fs_hcnt;
- u32 ss_lcnt;
- u32 fs_lcnt;
+ u16 ss_hcnt;
+ u16 fs_hcnt;
+ u16 ss_lcnt;
+ u16 fs_lcnt;
u32 sda_hold;
};
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index eab6fd6b890e..5618c1ff34dc 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -797,6 +797,11 @@ static int i801_block_transaction(struct i801_priv *priv,
int result = 0;
unsigned char hostc;
+ if (read_write == I2C_SMBUS_READ && command == I2C_SMBUS_BLOCK_DATA)
+ data->block[0] = I2C_SMBUS_BLOCK_MAX;
+ else if (data->block[0] < 1 || data->block[0] > I2C_SMBUS_BLOCK_MAX)
+ return -EPROTO;
+
if (command == I2C_SMBUS_I2C_BLOCK_DATA) {
if (read_write == I2C_SMBUS_WRITE) {
/* set I2C_EN bit in configuration register */
@@ -810,16 +815,6 @@ static int i801_block_transaction(struct i801_priv *priv,
}
}
- if (read_write == I2C_SMBUS_WRITE
- || command == I2C_SMBUS_I2C_BLOCK_DATA) {
- if (data->block[0] < 1)
- data->block[0] = 1;
- if (data->block[0] > I2C_SMBUS_BLOCK_MAX)
- data->block[0] = I2C_SMBUS_BLOCK_MAX;
- } else {
- data->block[0] = 32; /* max for SMBus block reads */
- }
-
/* Experience has shown that the block buffer can only be used for
SMBus (not I2C) block transactions, even though the datasheet
doesn't mention this limitation. */
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index af349661fd76..8de8296d2583 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -105,23 +105,30 @@ static irqreturn_t mpc_i2c_isr(int irq, void *dev_id)
/* Sometimes 9th clock pulse isn't generated, and slave doesn't release
* the bus, because it wants to send ACK.
* Following sequence of enabling/disabling and sending start/stop generates
- * the 9 pulses, so it's all OK.
+ * the 9 pulses, each with a START then ending with STOP, so it's all OK.
*/
static void mpc_i2c_fixup(struct mpc_i2c *i2c)
{
int k;
- u32 delay_val = 1000000 / i2c->real_clk + 1;
-
- if (delay_val < 2)
- delay_val = 2;
+ unsigned long flags;
for (k = 9; k; k--) {
writeccr(i2c, 0);
- writeccr(i2c, CCR_MSTA | CCR_MTX | CCR_MEN);
+ writeb(0, i2c->base + MPC_I2C_SR); /* clear any status bits */
+ writeccr(i2c, CCR_MEN | CCR_MSTA); /* START */
+ readb(i2c->base + MPC_I2C_DR); /* init xfer */
+ udelay(15); /* let it hit the bus */
+ local_irq_save(flags); /* should not be delayed further */
+ writeccr(i2c, CCR_MEN | CCR_MSTA | CCR_RSTA); /* delay SDA */
readb(i2c->base + MPC_I2C_DR);
- writeccr(i2c, CCR_MEN);
- udelay(delay_val << 1);
+ if (k != 1)
+ udelay(5);
+ local_irq_restore(flags);
}
+ writeccr(i2c, CCR_MEN); /* Initiate STOP */
+ readb(i2c->base + MPC_I2C_DR);
+ udelay(15); /* Let STOP propagate */
+ writeccr(i2c, 0);
}
static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing)
diff --git a/drivers/iio/adc/ti-adc081c.c b/drivers/iio/adc/ti-adc081c.c
index b64718daa201..c79cd88cd423 100644
--- a/drivers/iio/adc/ti-adc081c.c
+++ b/drivers/iio/adc/ti-adc081c.c
@@ -19,6 +19,7 @@
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
+#include <linux/property.h>
#include <linux/iio/iio.h>
#include <linux/iio/buffer.h>
@@ -151,13 +152,16 @@ static int adc081c_probe(struct i2c_client *client,
{
struct iio_dev *iio;
struct adc081c *adc;
- struct adcxx1c_model *model;
+ const struct adcxx1c_model *model;
int err;
if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WORD_DATA))
return -EOPNOTSUPP;
- model = &adcxx1c_models[id->driver_data];
+ if (dev_fwnode(&client->dev))
+ model = device_get_match_data(&client->dev);
+ else
+ model = &adcxx1c_models[id->driver_data];
iio = devm_iio_device_alloc(&client->dev, sizeof(*adc));
if (!iio)
@@ -224,10 +228,17 @@ static const struct i2c_device_id adc081c_id[] = {
};
MODULE_DEVICE_TABLE(i2c, adc081c_id);
+static const struct acpi_device_id adc081c_acpi_match[] = {
+ /* Used on some AAEON boards */
+ { "ADC081C", (kernel_ulong_t)&adcxx1c_models[ADC081C] },
+ { }
+};
+MODULE_DEVICE_TABLE(acpi, adc081c_acpi_match);
+
static const struct of_device_id adc081c_of_match[] = {
- { .compatible = "ti,adc081c" },
- { .compatible = "ti,adc101c" },
- { .compatible = "ti,adc121c" },
+ { .compatible = "ti,adc081c", .data = &adcxx1c_models[ADC081C] },
+ { .compatible = "ti,adc101c", .data = &adcxx1c_models[ADC101C] },
+ { .compatible = "ti,adc121c", .data = &adcxx1c_models[ADC121C] },
{ }
};
MODULE_DEVICE_TABLE(of, adc081c_of_match);
@@ -236,6 +247,7 @@ static struct i2c_driver adc081c_driver = {
.driver = {
.name = "adc081c",
.of_match_table = adc081c_of_match,
+ .acpi_match_table = adc081c_acpi_match,
},
.probe = adc081c_probe,
.remove = adc081c_remove,
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 8e54184566f7..4d4ba09f6cf9 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -775,6 +775,7 @@ static int cma_resolve_ib_dev(struct rdma_id_private *id_priv)
unsigned int p;
u16 pkey, index;
enum ib_port_state port_state;
+ int ret;
int i;
cma_dev = NULL;
@@ -793,9 +794,14 @@ static int cma_resolve_ib_dev(struct rdma_id_private *id_priv)
if (ib_get_cached_port_state(cur_dev->device, p, &port_state))
continue;
- for (i = 0; !rdma_query_gid(cur_dev->device,
- p, i, &gid);
- i++) {
+
+ for (i = 0; i < cur_dev->device->port_data[p].immutable.gid_tbl_len;
+ ++i) {
+ ret = rdma_query_gid(cur_dev->device, p, i,
+ &gid);
+ if (ret)
+ continue;
+
if (!memcmp(&gid, dgid, sizeof(gid))) {
cma_dev = cur_dev;
sgid = gid;
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index 76b9c436edcd..aa526c5ca0cf 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -2411,7 +2411,8 @@ int ib_find_gid(struct ib_device *device, union ib_gid *gid,
++i) {
ret = rdma_query_gid(device, port, i, &tmp_gid);
if (ret)
- return ret;
+ continue;
+
if (!memcmp(&tmp_gid, gid, sizeof *gid)) {
*port_num = port;
if (index)
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
index 441eb421e5e5..5759027914b0 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
+++ b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.c
@@ -614,8 +614,6 @@ int bnxt_qplib_alloc_rcfw_channel(struct bnxt_qplib_res *res,
if (!cmdq->cmdq_bitmap)
goto fail;
- cmdq->bmap_size = bmap_size;
-
/* Allocate one extra to hold the QP1 entries */
rcfw->qp_tbl_size = qp_tbl_sz + 1;
rcfw->qp_tbl = kcalloc(rcfw->qp_tbl_size, sizeof(struct bnxt_qplib_qp_node),
@@ -663,8 +661,8 @@ void bnxt_qplib_disable_rcfw_channel(struct bnxt_qplib_rcfw *rcfw)
iounmap(cmdq->cmdq_mbox.reg.bar_reg);
iounmap(creq->creq_db.reg.bar_reg);
- indx = find_first_bit(cmdq->cmdq_bitmap, cmdq->bmap_size);
- if (indx != cmdq->bmap_size)
+ indx = find_first_bit(cmdq->cmdq_bitmap, rcfw->cmdq_depth);
+ if (indx != rcfw->cmdq_depth)
dev_err(&rcfw->pdev->dev,
"disabling RCFW with pending cmd-bit %lx\n", indx);
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
index 5f2f0a5a3560..6953f4e53dd2 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
+++ b/drivers/infiniband/hw/bnxt_re/qplib_rcfw.h
@@ -150,7 +150,6 @@ struct bnxt_qplib_cmdq_ctx {
wait_queue_head_t waitq;
unsigned long flags;
unsigned long *cmdq_bitmap;
- u32 bmap_size;
u32 seq_num;
};
diff --git a/drivers/infiniband/hw/cxgb4/qp.c b/drivers/infiniband/hw/cxgb4/qp.c
index 861e19fdfeb4..12e5461581cb 100644
--- a/drivers/infiniband/hw/cxgb4/qp.c
+++ b/drivers/infiniband/hw/cxgb4/qp.c
@@ -2469,6 +2469,7 @@ int c4iw_ib_query_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
memset(attr, 0, sizeof(*attr));
memset(init_attr, 0, sizeof(*init_attr));
attr->qp_state = to_ib_qp_state(qhp->attr.state);
+ attr->cur_qp_state = to_ib_qp_state(qhp->attr.state);
init_attr->cap.max_send_wr = qhp->attr.sq_num_entries;
init_attr->cap.max_recv_wr = qhp->attr.rq_num_entries;
init_attr->cap.max_send_sge = qhp->attr.sq_max_sges;
diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c
index ba65823a5c0b..1e8b3e4ef1b1 100644
--- a/drivers/infiniband/hw/hns/hns_roce_main.c
+++ b/drivers/infiniband/hw/hns/hns_roce_main.c
@@ -279,6 +279,9 @@ static enum rdma_link_layer hns_roce_get_link_layer(struct ib_device *device,
static int hns_roce_query_pkey(struct ib_device *ib_dev, u8 port, u16 index,
u16 *pkey)
{
+ if (index > 0)
+ return -EINVAL;
+
*pkey = PKEY_ID;
return 0;
@@ -356,7 +359,7 @@ static int hns_roce_mmap(struct ib_ucontext *context,
return rdma_user_mmap_io(context, vma,
to_hr_ucontext(context)->uar.pfn,
PAGE_SIZE,
- pgprot_noncached(vma->vm_page_prot),
+ pgprot_device(vma->vm_page_prot),
NULL);
/* vm_pgoff: 1 -- TPTR */
diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c
index 16d528365189..eeb87f31cd25 100644
--- a/drivers/infiniband/hw/qedr/verbs.c
+++ b/drivers/infiniband/hw/qedr/verbs.c
@@ -1918,6 +1918,7 @@ static int qedr_create_user_qp(struct qedr_dev *dev,
/* db offset was calculated in copy_qp_uresp, now set in the user q */
if (qedr_qp_has_sq(qp)) {
qp->usq.db_addr = ctx->dpi_addr + uresp.sq_db_offset;
+ qp->sq.max_wr = attrs->cap.max_send_wr;
rc = qedr_db_recovery_add(dev, qp->usq.db_addr,
&qp->usq.db_rec_data->db_data,
DB_REC_WIDTH_32B,
@@ -1928,6 +1929,7 @@ static int qedr_create_user_qp(struct qedr_dev *dev,
if (qedr_qp_has_rq(qp)) {
qp->urq.db_addr = ctx->dpi_addr + uresp.rq_db_offset;
+ qp->rq.max_wr = attrs->cap.max_recv_wr;
rc = qedr_db_recovery_add(dev, qp->urq.db_addr,
&qp->urq.db_rec_data->db_data,
DB_REC_WIDTH_32B,
diff --git a/drivers/infiniband/sw/rxe/rxe_opcode.c b/drivers/infiniband/sw/rxe/rxe_opcode.c
index 0cb4b01fd910..66ffb516bdaf 100644
--- a/drivers/infiniband/sw/rxe/rxe_opcode.c
+++ b/drivers/infiniband/sw/rxe/rxe_opcode.c
@@ -110,7 +110,7 @@ struct rxe_opcode_info rxe_opcode[RXE_NUM_OPCODE] = {
}
},
[IB_OPCODE_RC_SEND_MIDDLE] = {
- .name = "IB_OPCODE_RC_SEND_MIDDLE]",
+ .name = "IB_OPCODE_RC_SEND_MIDDLE",
.mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK
| RXE_MIDDLE_MASK,
.length = RXE_BTH_BYTES,
diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
index 28de889aa516..3f31a52f7044 100644
--- a/drivers/iommu/amd/init.c
+++ b/drivers/iommu/amd/init.c
@@ -805,16 +805,27 @@ static int iommu_ga_log_enable(struct amd_iommu *iommu)
{
#ifdef CONFIG_IRQ_REMAP
u32 status, i;
+ u64 entry;
if (!iommu->ga_log)
return -EINVAL;
- status = readl(iommu->mmio_base + MMIO_STATUS_OFFSET);
-
/* Check if already running */
- if (status & (MMIO_STATUS_GALOG_RUN_MASK))
+ status = readl(iommu->mmio_base + MMIO_STATUS_OFFSET);
+ if (WARN_ON(status & (MMIO_STATUS_GALOG_RUN_MASK)))
return 0;
+ entry = iommu_virt_to_phys(iommu->ga_log) | GA_LOG_SIZE_512;
+ memcpy_toio(iommu->mmio_base + MMIO_GA_LOG_BASE_OFFSET,
+ &entry, sizeof(entry));
+ entry = (iommu_virt_to_phys(iommu->ga_log_tail) &
+ (BIT_ULL(52)-1)) & ~7ULL;
+ memcpy_toio(iommu->mmio_base + MMIO_GA_LOG_TAIL_OFFSET,
+ &entry, sizeof(entry));
+ writel(0x00, iommu->mmio_base + MMIO_GA_HEAD_OFFSET);
+ writel(0x00, iommu->mmio_base + MMIO_GA_TAIL_OFFSET);
+
+
iommu_feature_enable(iommu, CONTROL_GAINT_EN);
iommu_feature_enable(iommu, CONTROL_GALOG_EN);
@@ -824,17 +835,15 @@ static int iommu_ga_log_enable(struct amd_iommu *iommu)
break;
}
- if (i >= LOOP_TIMEOUT)
+ if (WARN_ON(i >= LOOP_TIMEOUT))
return -EINVAL;
#endif /* CONFIG_IRQ_REMAP */
return 0;
}
-#ifdef CONFIG_IRQ_REMAP
static int iommu_init_ga_log(struct amd_iommu *iommu)
{
- u64 entry;
-
+#ifdef CONFIG_IRQ_REMAP
if (!AMD_IOMMU_GUEST_IR_VAPIC(amd_iommu_guest_ir))
return 0;
@@ -848,32 +857,13 @@ static int iommu_init_ga_log(struct amd_iommu *iommu)
if (!iommu->ga_log_tail)
goto err_out;
- entry = iommu_virt_to_phys(iommu->ga_log) | GA_LOG_SIZE_512;
- memcpy_toio(iommu->mmio_base + MMIO_GA_LOG_BASE_OFFSET,
- &entry, sizeof(entry));
- entry = (iommu_virt_to_phys(iommu->ga_log_tail) &
- (BIT_ULL(52)-1)) & ~7ULL;
- memcpy_toio(iommu->mmio_base + MMIO_GA_LOG_TAIL_OFFSET,
- &entry, sizeof(entry));
- writel(0x00, iommu->mmio_base + MMIO_GA_HEAD_OFFSET);
- writel(0x00, iommu->mmio_base + MMIO_GA_TAIL_OFFSET);
-
return 0;
err_out:
free_ga_log(iommu);
return -EINVAL;
-}
-#endif /* CONFIG_IRQ_REMAP */
-
-static int iommu_init_ga(struct amd_iommu *iommu)
-{
- int ret = 0;
-
-#ifdef CONFIG_IRQ_REMAP
- ret = iommu_init_ga_log(iommu);
+#else
+ return 0;
#endif /* CONFIG_IRQ_REMAP */
-
- return ret;
}
static int __init alloc_cwwb_sem(struct amd_iommu *iommu)
@@ -1860,7 +1850,7 @@ static int __init iommu_init_pci(struct amd_iommu *iommu)
if (iommu_feature(iommu, FEATURE_PPR) && alloc_ppr_log(iommu))
return -ENOMEM;
- ret = iommu_init_ga(iommu);
+ ret = iommu_init_ga_log(iommu);
if (ret)
return ret;
diff --git a/drivers/iommu/io-pgtable-arm-v7s.c b/drivers/iommu/io-pgtable-arm-v7s.c
index a688f22cbe3b..3bcd3afe9778 100644
--- a/drivers/iommu/io-pgtable-arm-v7s.c
+++ b/drivers/iommu/io-pgtable-arm-v7s.c
@@ -242,13 +242,17 @@ static void *__arm_v7s_alloc_table(int lvl, gfp_t gfp,
__GFP_ZERO | ARM_V7S_TABLE_GFP_DMA, get_order(size));
else if (lvl == 2)
table = kmem_cache_zalloc(data->l2_tables, gfp);
+
+ if (!table)
+ return NULL;
+
phys = virt_to_phys(table);
if (phys != (arm_v7s_iopte)phys) {
/* Doesn't fit in PTE */
dev_err(dev, "Page table does not fit in PTE: %pa", &phys);
goto out_free;
}
- if (table && !cfg->coherent_walk) {
+ if (!cfg->coherent_walk) {
dma = dma_map_single(dev, table, size, DMA_TO_DEVICE);
if (dma_mapping_error(dev, dma))
goto out_free;
diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
index bcfbd0e44a4a..e1cd31c0e3c1 100644
--- a/drivers/iommu/io-pgtable-arm.c
+++ b/drivers/iommu/io-pgtable-arm.c
@@ -302,11 +302,12 @@ static int arm_lpae_init_pte(struct arm_lpae_io_pgtable *data,
static arm_lpae_iopte arm_lpae_install_table(arm_lpae_iopte *table,
arm_lpae_iopte *ptep,
arm_lpae_iopte curr,
- struct io_pgtable_cfg *cfg)
+ struct arm_lpae_io_pgtable *data)
{
arm_lpae_iopte old, new;
+ struct io_pgtable_cfg *cfg = &data->iop.cfg;
- new = __pa(table) | ARM_LPAE_PTE_TYPE_TABLE;
+ new = paddr_to_iopte(__pa(table), data) | ARM_LPAE_PTE_TYPE_TABLE;
if (cfg->quirks & IO_PGTABLE_QUIRK_ARM_NS)
new |= ARM_LPAE_PTE_NSTABLE;
@@ -357,7 +358,7 @@ static int __arm_lpae_map(struct arm_lpae_io_pgtable *data, unsigned long iova,
if (!cptep)
return -ENOMEM;
- pte = arm_lpae_install_table(cptep, ptep, 0, cfg);
+ pte = arm_lpae_install_table(cptep, ptep, 0, data);
if (pte)
__arm_lpae_free_pages(cptep, tblsz, cfg);
} else if (!cfg->coherent_walk && !(pte & ARM_LPAE_PTE_SW_SYNC)) {
@@ -546,7 +547,7 @@ static size_t arm_lpae_split_blk_unmap(struct arm_lpae_io_pgtable *data,
__arm_lpae_init_pte(data, blk_paddr, pte, lvl, &tablep[i]);
}
- pte = arm_lpae_install_table(tablep, ptep, blk_pte, cfg);
+ pte = arm_lpae_install_table(tablep, ptep, blk_pte, data);
if (pte != blk_pte) {
__arm_lpae_free_pages(tablep, tablesz, cfg);
/*
diff --git a/drivers/iommu/iova.c b/drivers/iommu/iova.c
index 30d969a4c5fd..1164d1a42cbc 100644
--- a/drivers/iommu/iova.c
+++ b/drivers/iommu/iova.c
@@ -64,8 +64,7 @@ static void free_iova_flush_queue(struct iova_domain *iovad)
if (!has_iova_flush_queue(iovad))
return;
- if (timer_pending(&iovad->fq_timer))
- del_timer(&iovad->fq_timer);
+ del_timer_sync(&iovad->fq_timer);
fq_destroy_all_entries(iovad);
diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index 1bdb7acf445f..04d1b3963b6b 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -915,6 +915,22 @@ static int __gic_update_rdist_properties(struct redist_region *region,
{
u64 typer = gic_read_typer(ptr + GICR_TYPER);
+ /* Boot-time cleanip */
+ if ((typer & GICR_TYPER_VLPIS) && (typer & GICR_TYPER_RVPEID)) {
+ u64 val;
+
+ /* Deactivate any present vPE */
+ val = gicr_read_vpendbaser(ptr + SZ_128K + GICR_VPENDBASER);
+ if (val & GICR_VPENDBASER_Valid)
+ gicr_write_vpendbaser(GICR_VPENDBASER_PendingLast,
+ ptr + SZ_128K + GICR_VPENDBASER);
+
+ /* Mark the VPE table as invalid */
+ val = gicr_read_vpropbaser(ptr + SZ_128K + GICR_VPROPBASER);
+ val &= ~GICR_VPROPBASER_4_1_VALID;
+ gicr_write_vpropbaser(val, ptr + SZ_128K + GICR_VPROPBASER);
+ }
+
gic_data.rdists.has_vlpis &= !!(typer & GICR_TYPER_VLPIS);
/* RVPEID implies some form of DirectLPI, no matter what the doc says... :-/ */
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 19a70f434029..6030cba5b038 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1894,8 +1894,10 @@ static struct mapped_device *alloc_dev(int minor)
if (IS_ENABLED(CONFIG_DAX_DRIVER)) {
md->dax_dev = alloc_dax(md, md->disk->disk_name,
&dm_dax_ops, 0);
- if (IS_ERR(md->dax_dev))
+ if (IS_ERR(md->dax_dev)) {
+ md->dax_dev = NULL;
goto bad;
+ }
}
add_disk_no_queue_reg(md->disk);
diff --git a/drivers/md/persistent-data/dm-btree.c b/drivers/md/persistent-data/dm-btree.c
index ef6e78d45d5b..ee3e63aa864b 100644
--- a/drivers/md/persistent-data/dm-btree.c
+++ b/drivers/md/persistent-data/dm-btree.c
@@ -83,14 +83,16 @@ void inc_children(struct dm_transaction_manager *tm, struct btree_node *n,
}
static int insert_at(size_t value_size, struct btree_node *node, unsigned index,
- uint64_t key, void *value)
- __dm_written_to_disk(value)
+ uint64_t key, void *value)
+ __dm_written_to_disk(value)
{
uint32_t nr_entries = le32_to_cpu(node->header.nr_entries);
+ uint32_t max_entries = le32_to_cpu(node->header.max_entries);
__le64 key_le = cpu_to_le64(key);
if (index > nr_entries ||
- index >= le32_to_cpu(node->header.max_entries)) {
+ index >= max_entries ||
+ nr_entries >= max_entries) {
DMERR("too many entries in btree node for insert");
__dm_unbless_for_disk(value);
return -ENOMEM;
diff --git a/drivers/md/persistent-data/dm-space-map-common.c b/drivers/md/persistent-data/dm-space-map-common.c
index a213bf11738f..85853ab62971 100644
--- a/drivers/md/persistent-data/dm-space-map-common.c
+++ b/drivers/md/persistent-data/dm-space-map-common.c
@@ -281,6 +281,11 @@ int sm_ll_lookup_bitmap(struct ll_disk *ll, dm_block_t b, uint32_t *result)
struct disk_index_entry ie_disk;
struct dm_block *blk;
+ if (b >= ll->nr_blocks) {
+ DMERR_LIMIT("metadata block out of bounds");
+ return -EINVAL;
+ }
+
b = do_div(index, ll->entries_per_block);
r = ll->load_ie(ll, index, &ie_disk);
if (r < 0)
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index a6d073f2e036..d157af63be41 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -142,10 +142,10 @@ config MEDIA_TEST_SUPPORT
prompt "Test drivers" if MEDIA_SUPPORT_FILTER
default y if !MEDIA_SUPPORT_FILTER
help
- Those drivers should not be used on production Kernels, but
- can be useful on debug ones. It enables several dummy drivers
- that simulate a real hardware. Very useful to test userspace
- applications and to validate if the subsystem core is doesn't
+ These drivers should not be used on production kernels, but
+ can be useful on debug ones. This option enables several dummy drivers
+ that simulate real hardware. Very useful to test userspace
+ applications and to validate if the subsystem core doesn't
have regressions.
Say Y if you want to use some virtual test driver.
diff --git a/drivers/media/cec/core/cec-pin.c b/drivers/media/cec/core/cec-pin.c
index f006bd8eec63..f8452a1f9fc6 100644
--- a/drivers/media/cec/core/cec-pin.c
+++ b/drivers/media/cec/core/cec-pin.c
@@ -1033,6 +1033,7 @@ static int cec_pin_thread_func(void *_adap)
{
struct cec_adapter *adap = _adap;
struct cec_pin *pin = adap->pin;
+ bool irq_enabled = false;
for (;;) {
wait_event_interruptible(pin->kthread_waitq,
@@ -1060,6 +1061,7 @@ static int cec_pin_thread_func(void *_adap)
ns_to_ktime(pin->work_rx_msg.rx_ts));
msg->len = 0;
}
+
if (pin->work_tx_status) {
unsigned int tx_status = pin->work_tx_status;
@@ -1083,27 +1085,39 @@ static int cec_pin_thread_func(void *_adap)
switch (atomic_xchg(&pin->work_irq_change,
CEC_PIN_IRQ_UNCHANGED)) {
case CEC_PIN_IRQ_DISABLE:
- pin->ops->disable_irq(adap);
+ if (irq_enabled) {
+ pin->ops->disable_irq(adap);
+ irq_enabled = false;
+ }
cec_pin_high(pin);
cec_pin_to_idle(pin);
hrtimer_start(&pin->timer, ns_to_ktime(0),
HRTIMER_MODE_REL);
break;
case CEC_PIN_IRQ_ENABLE:
+ if (irq_enabled)
+ break;
pin->enable_irq_failed = !pin->ops->enable_irq(adap);
if (pin->enable_irq_failed) {
cec_pin_to_idle(pin);
hrtimer_start(&pin->timer, ns_to_ktime(0),
HRTIMER_MODE_REL);
+ } else {
+ irq_enabled = true;
}
break;
default:
break;
}
-
if (kthread_should_stop())
break;
}
+ if (pin->ops->disable_irq && irq_enabled)
+ pin->ops->disable_irq(adap);
+ hrtimer_cancel(&pin->timer);
+ cec_pin_read(pin);
+ cec_pin_to_idle(pin);
+ pin->state = CEC_ST_OFF;
return 0;
}
@@ -1130,13 +1144,7 @@ static int cec_pin_adap_enable(struct cec_adapter *adap, bool enable)
hrtimer_start(&pin->timer, ns_to_ktime(0),
HRTIMER_MODE_REL);
} else {
- if (pin->ops->disable_irq)
- pin->ops->disable_irq(adap);
- hrtimer_cancel(&pin->timer);
kthread_stop(pin->kthread);
- cec_pin_read(pin);
- cec_pin_to_idle(pin);
- pin->state = CEC_ST_OFF;
}
return 0;
}
@@ -1157,11 +1165,8 @@ void cec_pin_start_timer(struct cec_pin *pin)
if (pin->state != CEC_ST_RX_IRQ)
return;
- atomic_set(&pin->work_irq_change, CEC_PIN_IRQ_UNCHANGED);
- pin->ops->disable_irq(pin->adap);
- cec_pin_high(pin);
- cec_pin_to_idle(pin);
- hrtimer_start(&pin->timer, ns_to_ktime(0), HRTIMER_MODE_REL);
+ atomic_set(&pin->work_irq_change, CEC_PIN_IRQ_DISABLE);
+ wake_up_interruptible(&pin->kthread_waitq);
}
static int cec_pin_adap_transmit(struct cec_adapter *adap, u8 attempts,
diff --git a/drivers/media/common/saa7146/saa7146_fops.c b/drivers/media/common/saa7146/saa7146_fops.c
index d6531874faa6..8047e305f3d0 100644
--- a/drivers/media/common/saa7146/saa7146_fops.c
+++ b/drivers/media/common/saa7146/saa7146_fops.c
@@ -523,7 +523,7 @@ int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv)
ERR("out of memory. aborting.\n");
kfree(vv);
v4l2_ctrl_handler_free(hdl);
- return -1;
+ return -ENOMEM;
}
saa7146_video_uops.init(dev,vv);
diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c
index 2f3a5996d3fc..fe626109ef4d 100644
--- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c
+++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c
@@ -150,7 +150,7 @@ static void *vb2_dc_alloc(struct device *dev, unsigned long attrs,
buf->cookie = dma_alloc_attrs(dev, size, &buf->dma_addr,
GFP_KERNEL | gfp_flags, buf->attrs);
if (!buf->cookie) {
- dev_err(dev, "dma_alloc_coherent of size %ld failed\n", size);
+ dev_err(dev, "dma_alloc_coherent of size %lu failed\n", size);
kfree(buf);
return ERR_PTR(-ENOMEM);
}
@@ -196,9 +196,9 @@ static int vb2_dc_mmap(void *buf_priv, struct vm_area_struct *vma)
vma->vm_ops->open(vma);
- pr_debug("%s: mapped dma addr 0x%08lx at 0x%08lx, size %ld\n",
- __func__, (unsigned long)buf->dma_addr, vma->vm_start,
- buf->size);
+ pr_debug("%s: mapped dma addr 0x%08lx at 0x%08lx, size %lu\n",
+ __func__, (unsigned long)buf->dma_addr, vma->vm_start,
+ buf->size);
return 0;
}
diff --git a/drivers/media/dvb-core/dmxdev.c b/drivers/media/dvb-core/dmxdev.c
index f14a872d1268..e58cb8434daf 100644
--- a/drivers/media/dvb-core/dmxdev.c
+++ b/drivers/media/dvb-core/dmxdev.c
@@ -1413,7 +1413,7 @@ static const struct dvb_device dvbdev_dvr = {
};
int dvb_dmxdev_init(struct dmxdev *dmxdev, struct dvb_adapter *dvb_adapter)
{
- int i;
+ int i, ret;
if (dmxdev->demux->open(dmxdev->demux) < 0)
return -EUSERS;
@@ -1432,14 +1432,26 @@ int dvb_dmxdev_init(struct dmxdev *dmxdev, struct dvb_adapter *dvb_adapter)
DMXDEV_STATE_FREE);
}
- dvb_register_device(dvb_adapter, &dmxdev->dvbdev, &dvbdev_demux, dmxdev,
+ ret = dvb_register_device(dvb_adapter, &dmxdev->dvbdev, &dvbdev_demux, dmxdev,
DVB_DEVICE_DEMUX, dmxdev->filternum);
- dvb_register_device(dvb_adapter, &dmxdev->dvr_dvbdev, &dvbdev_dvr,
+ if (ret < 0)
+ goto err_register_dvbdev;
+
+ ret = dvb_register_device(dvb_adapter, &dmxdev->dvr_dvbdev, &dvbdev_dvr,
dmxdev, DVB_DEVICE_DVR, dmxdev->filternum);
+ if (ret < 0)
+ goto err_register_dvr_dvbdev;
dvb_ringbuffer_init(&dmxdev->dvr_buffer, NULL, 8192);
return 0;
+
+err_register_dvr_dvbdev:
+ dvb_unregister_device(dmxdev->dvbdev);
+err_register_dvbdev:
+ vfree(dmxdev->filter);
+ dmxdev->filter = NULL;
+ return ret;
}
EXPORT_SYMBOL(dvb_dmxdev_init);
diff --git a/drivers/media/dvb-frontends/dib8000.c b/drivers/media/dvb-frontends/dib8000.c
index bb02354a48b8..d67f2dd997d0 100644
--- a/drivers/media/dvb-frontends/dib8000.c
+++ b/drivers/media/dvb-frontends/dib8000.c
@@ -4473,8 +4473,10 @@ static struct dvb_frontend *dib8000_init(struct i2c_adapter *i2c_adap, u8 i2c_ad
state->timf_default = cfg->pll->timf;
- if (dib8000_identify(&state->i2c) == 0)
+ if (dib8000_identify(&state->i2c) == 0) {
+ kfree(fe);
goto error;
+ }
dibx000_init_i2c_master(&state->i2c_master, DIB8000, state->i2c.adap, state->i2c.addr);
diff --git a/drivers/media/pci/b2c2/flexcop-pci.c b/drivers/media/pci/b2c2/flexcop-pci.c
index a9d9520a94c6..c9e6c7d66376 100644
--- a/drivers/media/pci/b2c2/flexcop-pci.c
+++ b/drivers/media/pci/b2c2/flexcop-pci.c
@@ -185,6 +185,8 @@ static irqreturn_t flexcop_pci_isr(int irq, void *dev_id)
dma_addr_t cur_addr =
fc->read_ibi_reg(fc,dma1_008).dma_0x8.dma_cur_addr << 2;
u32 cur_pos = cur_addr - fc_pci->dma[0].dma_addr0;
+ if (cur_pos > fc_pci->dma[0].size * 2)
+ goto error;
deb_irq("%u irq: %08x cur_addr: %llx: cur_pos: %08x, last_cur_pos: %08x ",
jiffies_to_usecs(jiffies - fc_pci->last_irq),
@@ -225,6 +227,7 @@ static irqreturn_t flexcop_pci_isr(int irq, void *dev_id)
ret = IRQ_NONE;
}
+error:
spin_unlock_irqrestore(&fc_pci->irq_lock, flags);
return ret;
}
diff --git a/drivers/media/pci/saa7146/hexium_gemini.c b/drivers/media/pci/saa7146/hexium_gemini.c
index 2214c74bbbf1..3947701cd6c7 100644
--- a/drivers/media/pci/saa7146/hexium_gemini.c
+++ b/drivers/media/pci/saa7146/hexium_gemini.c
@@ -284,7 +284,12 @@ static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_d
hexium_set_input(hexium, 0);
hexium->cur_input = 0;
- saa7146_vv_init(dev, &vv_data);
+ ret = saa7146_vv_init(dev, &vv_data);
+ if (ret) {
+ i2c_del_adapter(&hexium->i2c_adapter);
+ kfree(hexium);
+ return ret;
+ }
vv_data.vid_ops.vidioc_enum_input = vidioc_enum_input;
vv_data.vid_ops.vidioc_g_input = vidioc_g_input;
diff --git a/drivers/media/pci/saa7146/hexium_orion.c b/drivers/media/pci/saa7146/hexium_orion.c
index 39d14c179d22..2eb4bee16b71 100644
--- a/drivers/media/pci/saa7146/hexium_orion.c
+++ b/drivers/media/pci/saa7146/hexium_orion.c
@@ -355,10 +355,16 @@ static struct saa7146_ext_vv vv_data;
static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info)
{
struct hexium *hexium = (struct hexium *) dev->ext_priv;
+ int ret;
DEB_EE("\n");
- saa7146_vv_init(dev, &vv_data);
+ ret = saa7146_vv_init(dev, &vv_data);
+ if (ret) {
+ pr_err("Error in saa7146_vv_init()\n");
+ return ret;
+ }
+
vv_data.vid_ops.vidioc_enum_input = vidioc_enum_input;
vv_data.vid_ops.vidioc_g_input = vidioc_g_input;
vv_data.vid_ops.vidioc_s_input = vidioc_s_input;
diff --git a/drivers/media/pci/saa7146/mxb.c b/drivers/media/pci/saa7146/mxb.c
index 73fc901ecf3d..bf0b9b0914cd 100644
--- a/drivers/media/pci/saa7146/mxb.c
+++ b/drivers/media/pci/saa7146/mxb.c
@@ -683,10 +683,16 @@ static struct saa7146_ext_vv vv_data;
static int mxb_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info)
{
struct mxb *mxb;
+ int ret;
DEB_EE("dev:%p\n", dev);
- saa7146_vv_init(dev, &vv_data);
+ ret = saa7146_vv_init(dev, &vv_data);
+ if (ret) {
+ ERR("Error in saa7146_vv_init()");
+ return ret;
+ }
+
if (mxb_probe(dev)) {
saa7146_vv_release(dev);
return -1;
diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c
index 7bb6babdcade..debc7509c173 100644
--- a/drivers/media/platform/aspeed-video.c
+++ b/drivers/media/platform/aspeed-video.c
@@ -500,6 +500,10 @@ static void aspeed_video_enable_mode_detect(struct aspeed_video *video)
aspeed_video_update(video, VE_INTERRUPT_CTRL, 0,
VE_INTERRUPT_MODE_DETECT);
+ /* Disable mode detect in order to re-trigger */
+ aspeed_video_update(video, VE_SEQ_CTRL,
+ VE_SEQ_CTRL_TRIG_MODE_DET, 0);
+
/* Trigger mode detect */
aspeed_video_update(video, VE_SEQ_CTRL, 0, VE_SEQ_CTRL_TRIG_MODE_DET);
}
@@ -552,6 +556,8 @@ static void aspeed_video_irq_res_change(struct aspeed_video *video, ulong delay)
set_bit(VIDEO_RES_CHANGE, &video->flags);
clear_bit(VIDEO_FRAME_INPRG, &video->flags);
+ video->v4l2_input_status = V4L2_IN_ST_NO_SIGNAL;
+
aspeed_video_off(video);
aspeed_video_bufs_done(video, VB2_BUF_STATE_ERROR);
@@ -786,10 +792,6 @@ static void aspeed_video_get_resolution(struct aspeed_video *video)
return;
}
- /* Disable mode detect in order to re-trigger */
- aspeed_video_update(video, VE_SEQ_CTRL,
- VE_SEQ_CTRL_TRIG_MODE_DET, 0);
-
aspeed_video_check_and_set_polarity(video);
aspeed_video_enable_mode_detect(video);
@@ -1337,7 +1339,6 @@ static void aspeed_video_resolution_work(struct work_struct *work)
struct delayed_work *dwork = to_delayed_work(work);
struct aspeed_video *video = container_of(dwork, struct aspeed_video,
res_work);
- u32 input_status = video->v4l2_input_status;
aspeed_video_on(video);
@@ -1350,8 +1351,7 @@ static void aspeed_video_resolution_work(struct work_struct *work)
aspeed_video_get_resolution(video);
if (video->detected_timings.width != video->active_timings.width ||
- video->detected_timings.height != video->active_timings.height ||
- input_status != video->v4l2_input_status) {
+ video->detected_timings.height != video->active_timings.height) {
static const struct v4l2_event ev = {
.type = V4L2_EVENT_SOURCE_CHANGE,
.u.src_change.changes = V4L2_EVENT_SRC_CH_RESOLUTION,
diff --git a/drivers/media/platform/coda/coda-common.c b/drivers/media/platform/coda/coda-common.c
index 87a2c706f747..1eed69d29149 100644
--- a/drivers/media/platform/coda/coda-common.c
+++ b/drivers/media/platform/coda/coda-common.c
@@ -1537,11 +1537,13 @@ static void coda_pic_run_work(struct work_struct *work)
if (!wait_for_completion_timeout(&ctx->completion,
msecs_to_jiffies(1000))) {
- dev_err(dev->dev, "CODA PIC_RUN timeout\n");
+ if (ctx->use_bit) {
+ dev_err(dev->dev, "CODA PIC_RUN timeout\n");
- ctx->hold = true;
+ ctx->hold = true;
- coda_hw_reset(ctx);
+ coda_hw_reset(ctx);
+ }
if (ctx->ops->run_timeout)
ctx->ops->run_timeout(ctx);
diff --git a/drivers/media/platform/coda/coda-jpeg.c b/drivers/media/platform/coda/coda-jpeg.c
index b11cfbe166dd..a72f4655e5ad 100644
--- a/drivers/media/platform/coda/coda-jpeg.c
+++ b/drivers/media/platform/coda/coda-jpeg.c
@@ -1127,7 +1127,8 @@ static int coda9_jpeg_prepare_encode(struct coda_ctx *ctx)
coda_write(dev, 0, CODA9_REG_JPEG_GBU_BT_PTR);
coda_write(dev, 0, CODA9_REG_JPEG_GBU_WD_PTR);
coda_write(dev, 0, CODA9_REG_JPEG_GBU_BBSR);
- coda_write(dev, 0, CODA9_REG_JPEG_BBC_STRM_CTRL);
+ coda_write(dev, BIT(31) | ((end_addr - start_addr - header_len) / 256),
+ CODA9_REG_JPEG_BBC_STRM_CTRL);
coda_write(dev, 0, CODA9_REG_JPEG_GBU_CTRL);
coda_write(dev, 0, CODA9_REG_JPEG_GBU_FF_RPTR);
coda_write(dev, 127, CODA9_REG_JPEG_GBU_BBER);
@@ -1257,6 +1258,23 @@ static void coda9_jpeg_finish_encode(struct coda_ctx *ctx)
coda_hw_reset(ctx);
}
+static void coda9_jpeg_encode_timeout(struct coda_ctx *ctx)
+{
+ struct coda_dev *dev = ctx->dev;
+ u32 end_addr, wr_ptr;
+
+ /* Handle missing BBC overflow interrupt via timeout */
+ end_addr = coda_read(dev, CODA9_REG_JPEG_BBC_END_ADDR);
+ wr_ptr = coda_read(dev, CODA9_REG_JPEG_BBC_WR_PTR);
+ if (wr_ptr >= end_addr - 256) {
+ v4l2_err(&dev->v4l2_dev, "JPEG too large for capture buffer\n");
+ coda9_jpeg_finish_encode(ctx);
+ return;
+ }
+
+ coda_hw_reset(ctx);
+}
+
static void coda9_jpeg_release(struct coda_ctx *ctx)
{
int i;
@@ -1276,6 +1294,7 @@ const struct coda_context_ops coda9_jpeg_encode_ops = {
.start_streaming = coda9_jpeg_start_encoding,
.prepare_run = coda9_jpeg_prepare_encode,
.finish_run = coda9_jpeg_finish_encode,
+ .run_timeout = coda9_jpeg_encode_timeout,
.release = coda9_jpeg_release,
};
diff --git a/drivers/media/platform/coda/imx-vdoa.c b/drivers/media/platform/coda/imx-vdoa.c
index 8bc0d8371819..dd6e2e320264 100644
--- a/drivers/media/platform/coda/imx-vdoa.c
+++ b/drivers/media/platform/coda/imx-vdoa.c
@@ -287,7 +287,11 @@ static int vdoa_probe(struct platform_device *pdev)
struct resource *res;
int ret;
- dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
+ ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
+ if (ret) {
+ dev_err(&pdev->dev, "DMA enable failed\n");
+ return ret;
+ }
vdoa = devm_kzalloc(&pdev->dev, sizeof(*vdoa), GFP_KERNEL);
if (!vdoa)
diff --git a/drivers/media/platform/imx-pxp.c b/drivers/media/platform/imx-pxp.c
index 08d76eb05ed1..62356adebc39 100644
--- a/drivers/media/platform/imx-pxp.c
+++ b/drivers/media/platform/imx-pxp.c
@@ -1664,6 +1664,8 @@ static int pxp_probe(struct platform_device *pdev)
if (irq < 0)
return irq;
+ spin_lock_init(&dev->irqlock);
+
ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, pxp_irq_handler,
IRQF_ONESHOT, dev_name(&pdev->dev), dev);
if (ret < 0) {
@@ -1681,8 +1683,6 @@ static int pxp_probe(struct platform_device *pdev)
goto err_clk;
}
- spin_lock_init(&dev->irqlock);
-
ret = v4l2_device_register(&pdev->dev, &dev->v4l2_dev);
if (ret)
goto err_clk;
diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
index 219c2c5b78ef..5f93bc670edb 100644
--- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
+++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c
@@ -237,11 +237,11 @@ static int fops_vcodec_release(struct file *file)
mtk_v4l2_debug(1, "[%d] encoder", ctx->id);
mutex_lock(&dev->dev_mutex);
+ v4l2_m2m_ctx_release(ctx->m2m_ctx);
mtk_vcodec_enc_release(ctx);
v4l2_fh_del(&ctx->fh);
v4l2_fh_exit(&ctx->fh);
v4l2_ctrl_handler_free(&ctx->ctrl_hdl);
- v4l2_m2m_ctx_release(ctx->m2m_ctx);
list_del_init(&ctx->list);
kfree(ctx);
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 58ddebbb8446..1d621f776903 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -222,7 +222,6 @@ static int venus_probe(struct platform_device *pdev)
return -ENOMEM;
core->dev = dev;
- platform_set_drvdata(pdev, core);
r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
core->base = devm_ioremap_resource(dev, r);
@@ -252,7 +251,7 @@ static int venus_probe(struct platform_device *pdev)
return -ENODEV;
if (core->pm_ops->core_get) {
- ret = core->pm_ops->core_get(dev);
+ ret = core->pm_ops->core_get(core);
if (ret)
return ret;
}
@@ -277,6 +276,12 @@ static int venus_probe(struct platform_device *pdev)
if (ret)
goto err_core_put;
+ ret = v4l2_device_register(dev, &core->v4l2_dev);
+ if (ret)
+ goto err_core_deinit;
+
+ platform_set_drvdata(pdev, core);
+
pm_runtime_enable(dev);
ret = pm_runtime_get_sync(dev);
@@ -289,11 +294,11 @@ static int venus_probe(struct platform_device *pdev)
ret = venus_firmware_init(core);
if (ret)
- goto err_runtime_disable;
+ goto err_of_depopulate;
ret = venus_boot(core);
if (ret)
- goto err_runtime_disable;
+ goto err_firmware_deinit;
ret = hfi_core_resume(core, true);
if (ret)
@@ -311,10 +316,6 @@ static int venus_probe(struct platform_device *pdev)
if (ret)
goto err_venus_shutdown;
- ret = v4l2_device_register(dev, &core->v4l2_dev);
- if (ret)
- goto err_core_deinit;
-
ret = pm_runtime_put_sync(dev);
if (ret) {
pm_runtime_get_noresume(dev);
@@ -327,18 +328,22 @@ static int venus_probe(struct platform_device *pdev)
err_dev_unregister:
v4l2_device_unregister(&core->v4l2_dev);
-err_core_deinit:
- hfi_core_deinit(core, false);
err_venus_shutdown:
venus_shutdown(core);
+err_firmware_deinit:
+ venus_firmware_deinit(core);
+err_of_depopulate:
+ of_platform_depopulate(dev);
err_runtime_disable:
pm_runtime_put_noidle(dev);
pm_runtime_set_suspended(dev);
pm_runtime_disable(dev);
hfi_destroy(core);
+err_core_deinit:
+ hfi_core_deinit(core, false);
err_core_put:
if (core->pm_ops->core_put)
- core->pm_ops->core_put(dev);
+ core->pm_ops->core_put(core);
return ret;
}
@@ -364,11 +369,14 @@ static int venus_remove(struct platform_device *pdev)
pm_runtime_disable(dev);
if (pm_ops->core_put)
- pm_ops->core_put(dev);
+ pm_ops->core_put(core);
+
+ v4l2_device_unregister(&core->v4l2_dev);
hfi_destroy(core);
v4l2_device_unregister(&core->v4l2_dev);
+
mutex_destroy(&core->pm_lock);
mutex_destroy(&core->lock);
venus_dbgfs_deinit(core);
@@ -387,7 +395,7 @@ static __maybe_unused int venus_runtime_suspend(struct device *dev)
return ret;
if (pm_ops->core_power) {
- ret = pm_ops->core_power(dev, POWER_OFF);
+ ret = pm_ops->core_power(core, POWER_OFF);
if (ret)
return ret;
}
@@ -405,7 +413,8 @@ static __maybe_unused int venus_runtime_suspend(struct device *dev)
err_video_path:
icc_set_bw(core->cpucfg_path, kbps_to_icc(1000), 0);
err_cpucfg_path:
- pm_ops->core_power(dev, POWER_ON);
+ if (pm_ops->core_power)
+ pm_ops->core_power(core, POWER_ON);
return ret;
}
@@ -425,7 +434,7 @@ static __maybe_unused int venus_runtime_resume(struct device *dev)
return ret;
if (pm_ops->core_power) {
- ret = pm_ops->core_power(dev, POWER_ON);
+ ret = pm_ops->core_power(core, POWER_ON);
if (ret)
return ret;
}
diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platform/qcom/venus/core.h
index 05c9fbd51f0c..f2a0ef9ee884 100644
--- a/drivers/media/platform/qcom/venus/core.h
+++ b/drivers/media/platform/qcom/venus/core.h
@@ -123,7 +123,6 @@ struct venus_caps {
* @clks: an array of struct clk pointers
* @vcodec0_clks: an array of vcodec0 struct clk pointers
* @vcodec1_clks: an array of vcodec1 struct clk pointers
- * @pd_dl_venus: pmdomain device-link for venus domain
* @pmdomains: an array of pmdomains struct device pointers
* @vdev_dec: a reference to video device structure for decoder instances
* @vdev_enc: a reference to video device structure for encoder instances
@@ -161,7 +160,6 @@ struct venus_core {
struct icc_path *cpucfg_path;
struct opp_table *opp_table;
bool has_opp_table;
- struct device_link *pd_dl_venus;
struct device *pmdomains[VIDC_PMDOMAINS_NUM_MAX];
struct device_link *opp_dl_venus;
struct device *opp_pmdomain;
diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c
index 2946547a0df4..710f9a2b132b 100644
--- a/drivers/media/platform/qcom/venus/pm_helpers.c
+++ b/drivers/media/platform/qcom/venus/pm_helpers.c
@@ -147,14 +147,12 @@ static u32 load_per_type(struct venus_core *core, u32 session_type)
struct venus_inst *inst = NULL;
u32 mbs_per_sec = 0;
- mutex_lock(&core->lock);
list_for_each_entry(inst, &core->instances, list) {
if (inst->session_type != session_type)
continue;
mbs_per_sec += load_per_instance(inst);
}
- mutex_unlock(&core->lock);
return mbs_per_sec;
}
@@ -203,14 +201,12 @@ static int load_scale_bw(struct venus_core *core)
struct venus_inst *inst = NULL;
u32 mbs_per_sec, avg, peak, total_avg = 0, total_peak = 0;
- mutex_lock(&core->lock);
list_for_each_entry(inst, &core->instances, list) {
mbs_per_sec = load_per_instance(inst);
mbs_to_bw(inst, mbs_per_sec, &avg, &peak);
total_avg += avg;
total_peak += peak;
}
- mutex_unlock(&core->lock);
/*
* keep minimum bandwidth vote for "video-mem" path,
@@ -237,8 +233,9 @@ static int load_scale_v1(struct venus_inst *inst)
struct device *dev = core->dev;
u32 mbs_per_sec;
unsigned int i;
- int ret;
+ int ret = 0;
+ mutex_lock(&core->lock);
mbs_per_sec = load_per_type(core, VIDC_SESSION_TYPE_ENC) +
load_per_type(core, VIDC_SESSION_TYPE_DEC);
@@ -263,29 +260,28 @@ static int load_scale_v1(struct venus_inst *inst)
if (ret) {
dev_err(dev, "failed to set clock rate %lu (%d)\n",
freq, ret);
- return ret;
+ goto exit;
}
ret = load_scale_bw(core);
if (ret) {
dev_err(dev, "failed to set bandwidth (%d)\n",
ret);
- return ret;
+ goto exit;
}
- return 0;
+exit:
+ mutex_unlock(&core->lock);
+ return ret;
}
-static int core_get_v1(struct device *dev)
+static int core_get_v1(struct venus_core *core)
{
- struct venus_core *core = dev_get_drvdata(dev);
-
return core_clks_get(core);
}
-static int core_power_v1(struct device *dev, int on)
+static int core_power_v1(struct venus_core *core, int on)
{
- struct venus_core *core = dev_get_drvdata(dev);
int ret = 0;
if (on == POWER_ON)
@@ -752,12 +748,12 @@ static int venc_power_v4(struct device *dev, int on)
return ret;
}
-static int vcodec_domains_get(struct device *dev)
+static int vcodec_domains_get(struct venus_core *core)
{
int ret;
struct opp_table *opp_table;
struct device **opp_virt_dev;
- struct venus_core *core = dev_get_drvdata(dev);
+ struct device *dev = core->dev;
const struct venus_resources *res = core->res;
struct device *pd;
unsigned int i;
@@ -773,13 +769,6 @@ static int vcodec_domains_get(struct device *dev)
core->pmdomains[i] = pd;
}
- core->pd_dl_venus = device_link_add(dev, core->pmdomains[0],
- DL_FLAG_PM_RUNTIME |
- DL_FLAG_STATELESS |
- DL_FLAG_RPM_ACTIVE);
- if (!core->pd_dl_venus)
- return -ENODEV;
-
skip_pmdomains:
if (!core->has_opp_table)
return 0;
@@ -806,29 +795,23 @@ static int vcodec_domains_get(struct device *dev)
opp_dl_add_err:
dev_pm_opp_detach_genpd(core->opp_table);
opp_attach_err:
- if (core->pd_dl_venus) {
- device_link_del(core->pd_dl_venus);
- for (i = 0; i < res->vcodec_pmdomains_num; i++) {
- if (IS_ERR_OR_NULL(core->pmdomains[i]))
- continue;
- dev_pm_domain_detach(core->pmdomains[i], true);
- }
+ for (i = 0; i < res->vcodec_pmdomains_num; i++) {
+ if (IS_ERR_OR_NULL(core->pmdomains[i]))
+ continue;
+ dev_pm_domain_detach(core->pmdomains[i], true);
}
+
return ret;
}
-static void vcodec_domains_put(struct device *dev)
+static void vcodec_domains_put(struct venus_core *core)
{
- struct venus_core *core = dev_get_drvdata(dev);
const struct venus_resources *res = core->res;
unsigned int i;
if (!res->vcodec_pmdomains_num)
goto skip_pmdomains;
- if (core->pd_dl_venus)
- device_link_del(core->pd_dl_venus);
-
for (i = 0; i < res->vcodec_pmdomains_num; i++) {
if (IS_ERR_OR_NULL(core->pmdomains[i]))
continue;
@@ -845,9 +828,9 @@ static void vcodec_domains_put(struct device *dev)
dev_pm_opp_detach_genpd(core->opp_table);
}
-static int core_get_v4(struct device *dev)
+static int core_get_v4(struct venus_core *core)
{
- struct venus_core *core = dev_get_drvdata(dev);
+ struct device *dev = core->dev;
const struct venus_resources *res = core->res;
int ret;
@@ -886,7 +869,7 @@ static int core_get_v4(struct device *dev)
}
}
- ret = vcodec_domains_get(dev);
+ ret = vcodec_domains_get(core);
if (ret) {
if (core->has_opp_table)
dev_pm_opp_of_remove_table(dev);
@@ -897,14 +880,14 @@ static int core_get_v4(struct device *dev)
return 0;
}
-static void core_put_v4(struct device *dev)
+static void core_put_v4(struct venus_core *core)
{
- struct venus_core *core = dev_get_drvdata(dev);
+ struct device *dev = core->dev;
if (legacy_binding)
return;
- vcodec_domains_put(dev);
+ vcodec_domains_put(core);
if (core->has_opp_table)
dev_pm_opp_of_remove_table(dev);
@@ -913,19 +896,33 @@ static void core_put_v4(struct device *dev)
}
-static int core_power_v4(struct device *dev, int on)
+static int core_power_v4(struct venus_core *core, int on)
{
- struct venus_core *core = dev_get_drvdata(dev);
+ struct device *dev = core->dev;
+ struct device *pmctrl = core->pmdomains[0];
int ret = 0;
if (on == POWER_ON) {
+ if (pmctrl) {
+ ret = pm_runtime_get_sync(pmctrl);
+ if (ret < 0) {
+ pm_runtime_put_noidle(pmctrl);
+ return ret;
+ }
+ }
+
ret = core_clks_enable(core);
+ if (ret < 0 && pmctrl)
+ pm_runtime_put_sync(pmctrl);
} else {
/* Drop the performance state vote */
if (core->opp_pmdomain)
dev_pm_opp_set_rate(dev, 0);
core_clks_disable(core);
+
+ if (pmctrl)
+ pm_runtime_put_sync(pmctrl);
}
return ret;
@@ -962,13 +959,13 @@ static int load_scale_v4(struct venus_inst *inst)
struct device *dev = core->dev;
unsigned long freq = 0, freq_core1 = 0, freq_core2 = 0;
unsigned long filled_len = 0;
- int i, ret;
+ int i, ret = 0;
for (i = 0; i < inst->num_input_bufs; i++)
filled_len = max(filled_len, inst->payloads[i]);
if (inst->session_type == VIDC_SESSION_TYPE_DEC && !filled_len)
- return 0;
+ return ret;
freq = calculate_inst_freq(inst, filled_len);
inst->clk_data.freq = freq;
@@ -984,7 +981,6 @@ static int load_scale_v4(struct venus_inst *inst)
freq_core2 += inst->clk_data.freq;
}
}
- mutex_unlock(&core->lock);
freq = max(freq_core1, freq_core2);
@@ -1008,17 +1004,19 @@ static int load_scale_v4(struct venus_inst *inst)
if (ret) {
dev_err(dev, "failed to set clock rate %lu (%d)\n",
freq, ret);
- return ret;
+ goto exit;
}
ret = load_scale_bw(core);
if (ret) {
dev_err(dev, "failed to set bandwidth (%d)\n",
ret);
- return ret;
+ goto exit;
}
- return 0;
+exit:
+ mutex_unlock(&core->lock);
+ return ret;
}
static const struct venus_pm_ops pm_ops_v4 = {
diff --git a/drivers/media/platform/qcom/venus/pm_helpers.h b/drivers/media/platform/qcom/venus/pm_helpers.h
index aa2f6afa2354..a492c50c5543 100644
--- a/drivers/media/platform/qcom/venus/pm_helpers.h
+++ b/drivers/media/platform/qcom/venus/pm_helpers.h
@@ -4,14 +4,15 @@
#define __VENUS_PM_HELPERS_H__
struct device;
+struct venus_core;
#define POWER_ON 1
#define POWER_OFF 0
struct venus_pm_ops {
- int (*core_get)(struct device *dev);
- void (*core_put)(struct device *dev);
- int (*core_power)(struct device *dev, int on);
+ int (*core_get)(struct venus_core *core);
+ void (*core_put)(struct venus_core *core);
+ int (*core_power)(struct venus_core *core, int on);
int (*vdec_get)(struct device *dev);
void (*vdec_put)(struct device *dev);
diff --git a/drivers/media/platform/rcar-vin/rcar-csi2.c b/drivers/media/platform/rcar-vin/rcar-csi2.c
index d2d87a204e91..5e8e48a721a0 100644
--- a/drivers/media/platform/rcar-vin/rcar-csi2.c
+++ b/drivers/media/platform/rcar-vin/rcar-csi2.c
@@ -436,16 +436,23 @@ static int rcsi2_wait_phy_start(struct rcar_csi2 *priv,
static int rcsi2_set_phypll(struct rcar_csi2 *priv, unsigned int mbps)
{
const struct rcsi2_mbps_reg *hsfreq;
+ const struct rcsi2_mbps_reg *hsfreq_prev = NULL;
- for (hsfreq = priv->info->hsfreqrange; hsfreq->mbps != 0; hsfreq++)
+ for (hsfreq = priv->info->hsfreqrange; hsfreq->mbps != 0; hsfreq++) {
if (hsfreq->mbps >= mbps)
break;
+ hsfreq_prev = hsfreq;
+ }
if (!hsfreq->mbps) {
dev_err(priv->dev, "Unsupported PHY speed (%u Mbps)", mbps);
return -ERANGE;
}
+ if (hsfreq_prev &&
+ ((mbps - hsfreq_prev->mbps) <= (hsfreq->mbps - mbps)))
+ hsfreq = hsfreq_prev;
+
rcsi2_write(priv, PHYPLL_REG, PHYPLL_HSFREQRANGE(hsfreq->reg));
return 0;
@@ -969,10 +976,17 @@ static int rcsi2_phtw_write_mbps(struct rcar_csi2 *priv, unsigned int mbps,
const struct rcsi2_mbps_reg *values, u16 code)
{
const struct rcsi2_mbps_reg *value;
+ const struct rcsi2_mbps_reg *prev_value = NULL;
- for (value = values; value->mbps; value++)
+ for (value = values; value->mbps; value++) {
if (value->mbps >= mbps)
break;
+ prev_value = value;
+ }
+
+ if (prev_value &&
+ ((mbps - prev_value->mbps) <= (value->mbps - mbps)))
+ value = prev_value;
if (!value->mbps) {
dev_err(priv->dev, "Unsupported PHY speed (%u Mbps)", mbps);
diff --git a/drivers/media/platform/rcar-vin/rcar-v4l2.c b/drivers/media/platform/rcar-vin/rcar-v4l2.c
index 3e7a3ae2a6b9..0bbe6f9f9206 100644
--- a/drivers/media/platform/rcar-vin/rcar-v4l2.c
+++ b/drivers/media/platform/rcar-vin/rcar-v4l2.c
@@ -175,20 +175,27 @@ static void rvin_format_align(struct rvin_dev *vin, struct v4l2_pix_format *pix)
break;
}
- /* HW limit width to a multiple of 32 (2^5) for NV12/16 else 2 (2^1) */
+ /* Hardware limits width alignment based on format. */
switch (pix->pixelformat) {
+ /* Multiple of 32 (2^5) for NV12/16. */
case V4L2_PIX_FMT_NV12:
case V4L2_PIX_FMT_NV16:
walign = 5;
break;
- default:
+ /* Multiple of 2 (2^1) for YUV. */
+ case V4L2_PIX_FMT_YUYV:
+ case V4L2_PIX_FMT_UYVY:
walign = 1;
break;
+ /* No multiple for RGB. */
+ default:
+ walign = 0;
+ break;
}
/* Limit to VIN capabilities */
- v4l_bound_align_image(&pix->width, 2, vin->info->max_width, walign,
- &pix->height, 4, vin->info->max_height, 2, 0);
+ v4l_bound_align_image(&pix->width, 5, vin->info->max_width, walign,
+ &pix->height, 2, vin->info->max_height, 0, 0);
pix->bytesperline = rvin_format_bytesperline(vin, pix);
pix->sizeimage = rvin_format_sizeimage(pix);
diff --git a/drivers/media/radio/si470x/radio-si470x-i2c.c b/drivers/media/radio/si470x/radio-si470x-i2c.c
index a972c0705ac7..76d39e2e8770 100644
--- a/drivers/media/radio/si470x/radio-si470x-i2c.c
+++ b/drivers/media/radio/si470x/radio-si470x-i2c.c
@@ -368,7 +368,7 @@ static int si470x_i2c_probe(struct i2c_client *client)
if (radio->hdl.error) {
retval = radio->hdl.error;
dev_err(&client->dev, "couldn't register control\n");
- goto err_dev;
+ goto err_all;
}
/* video device initialization */
@@ -463,7 +463,6 @@ static int si470x_i2c_probe(struct i2c_client *client)
return 0;
err_all:
v4l2_ctrl_handler_free(&radio->hdl);
-err_dev:
v4l2_device_unregister(&radio->v4l2_dev);
err_initial:
return retval;
diff --git a/drivers/media/rc/igorplugusb.c b/drivers/media/rc/igorplugusb.c
index effaa5751d6c..3e9988ee785f 100644
--- a/drivers/media/rc/igorplugusb.c
+++ b/drivers/media/rc/igorplugusb.c
@@ -64,9 +64,11 @@ static void igorplugusb_irdata(struct igorplugusb *ir, unsigned len)
if (start >= len) {
dev_err(ir->dev, "receive overflow invalid: %u", overflow);
} else {
- if (overflow > 0)
+ if (overflow > 0) {
dev_warn(ir->dev, "receive overflow, at least %u lost",
overflow);
+ ir_raw_event_reset(ir->rc);
+ }
do {
rawir.duration = ir->buf_in[i] * 85;
diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c
index 8870c4e6c5f4..dbb5a4f44bda 100644
--- a/drivers/media/rc/mceusb.c
+++ b/drivers/media/rc/mceusb.c
@@ -1430,7 +1430,7 @@ static void mceusb_gen1_init(struct mceusb_dev *ir)
*/
ret = usb_control_msg(ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0),
USB_REQ_SET_ADDRESS, USB_TYPE_VENDOR, 0, 0,
- data, USB_CTRL_MSG_SZ, HZ * 3);
+ data, USB_CTRL_MSG_SZ, 3000);
dev_dbg(dev, "set address - ret = %d", ret);
dev_dbg(dev, "set address - data[0] = %d, data[1] = %d",
data[0], data[1]);
@@ -1438,20 +1438,20 @@ static void mceusb_gen1_init(struct mceusb_dev *ir)
/* set feature: bit rate 38400 bps */
ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
USB_REQ_SET_FEATURE, USB_TYPE_VENDOR,
- 0xc04e, 0x0000, NULL, 0, HZ * 3);
+ 0xc04e, 0x0000, NULL, 0, 3000);
dev_dbg(dev, "set feature - ret = %d", ret);
/* bRequest 4: set char length to 8 bits */
ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
4, USB_TYPE_VENDOR,
- 0x0808, 0x0000, NULL, 0, HZ * 3);
+ 0x0808, 0x0000, NULL, 0, 3000);
dev_dbg(dev, "set char length - retB = %d", ret);
/* bRequest 2: set handshaking to use DTR/DSR */
ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
2, USB_TYPE_VENDOR,
- 0x0000, 0x0100, NULL, 0, HZ * 3);
+ 0x0000, 0x0100, NULL, 0, 3000);
dev_dbg(dev, "set handshake - retC = %d", ret);
/* device resume */
diff --git a/drivers/media/rc/redrat3.c b/drivers/media/rc/redrat3.c
index 2cf3377ec63a..a61f9820ade9 100644
--- a/drivers/media/rc/redrat3.c
+++ b/drivers/media/rc/redrat3.c
@@ -404,7 +404,7 @@ static int redrat3_send_cmd(int cmd, struct redrat3_dev *rr3)
udev = rr3->udev;
res = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), cmd,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- 0x0000, 0x0000, data, sizeof(u8), HZ * 10);
+ 0x0000, 0x0000, data, sizeof(u8), 10000);
if (res < 0) {
dev_err(rr3->dev, "%s: Error sending rr3 cmd res %d, data %d",
@@ -480,7 +480,7 @@ static u32 redrat3_get_timeout(struct redrat3_dev *rr3)
pipe = usb_rcvctrlpipe(rr3->udev, 0);
ret = usb_control_msg(rr3->udev, pipe, RR3_GET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- RR3_IR_IO_SIG_TIMEOUT, 0, tmp, len, HZ * 5);
+ RR3_IR_IO_SIG_TIMEOUT, 0, tmp, len, 5000);
if (ret != len)
dev_warn(rr3->dev, "Failed to read timeout from hardware\n");
else {
@@ -510,7 +510,7 @@ static int redrat3_set_timeout(struct rc_dev *rc_dev, unsigned int timeoutus)
ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
RR3_IR_IO_SIG_TIMEOUT, 0, timeout, sizeof(*timeout),
- HZ * 25);
+ 25000);
dev_dbg(dev, "set ir parm timeout %d ret 0x%02x\n",
be32_to_cpu(*timeout), ret);
@@ -542,32 +542,32 @@ static void redrat3_reset(struct redrat3_dev *rr3)
*val = 0x01;
rc = usb_control_msg(udev, rxpipe, RR3_RESET,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- RR3_CPUCS_REG_ADDR, 0, val, len, HZ * 25);
+ RR3_CPUCS_REG_ADDR, 0, val, len, 25000);
dev_dbg(dev, "reset returned 0x%02x\n", rc);
*val = length_fuzz;
rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
- RR3_IR_IO_LENGTH_FUZZ, 0, val, len, HZ * 25);
+ RR3_IR_IO_LENGTH_FUZZ, 0, val, len, 25000);
dev_dbg(dev, "set ir parm len fuzz %d rc 0x%02x\n", *val, rc);
*val = (65536 - (minimum_pause * 2000)) / 256;
rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
- RR3_IR_IO_MIN_PAUSE, 0, val, len, HZ * 25);
+ RR3_IR_IO_MIN_PAUSE, 0, val, len, 25000);
dev_dbg(dev, "set ir parm min pause %d rc 0x%02x\n", *val, rc);
*val = periods_measure_carrier;
rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
- RR3_IR_IO_PERIODS_MF, 0, val, len, HZ * 25);
+ RR3_IR_IO_PERIODS_MF, 0, val, len, 25000);
dev_dbg(dev, "set ir parm periods measure carrier %d rc 0x%02x", *val,
rc);
*val = RR3_DRIVER_MAXLENS;
rc = usb_control_msg(udev, txpipe, RR3_SET_IR_PARAM,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT,
- RR3_IR_IO_MAX_LENGTHS, 0, val, len, HZ * 25);
+ RR3_IR_IO_MAX_LENGTHS, 0, val, len, 25000);
dev_dbg(dev, "set ir parm max lens %d rc 0x%02x\n", *val, rc);
kfree(val);
@@ -585,7 +585,7 @@ static void redrat3_get_firmware_rev(struct redrat3_dev *rr3)
rc = usb_control_msg(rr3->udev, usb_rcvctrlpipe(rr3->udev, 0),
RR3_FW_VERSION,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- 0, 0, buffer, RR3_FW_VERSION_LEN, HZ * 5);
+ 0, 0, buffer, RR3_FW_VERSION_LEN, 5000);
if (rc >= 0)
dev_info(rr3->dev, "Firmware rev: %s", buffer);
@@ -825,14 +825,14 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, unsigned *txbuf,
pipe = usb_sndbulkpipe(rr3->udev, rr3->ep_out->bEndpointAddress);
ret = usb_bulk_msg(rr3->udev, pipe, irdata,
- sendbuf_len, &ret_len, 10 * HZ);
+ sendbuf_len, &ret_len, 10000);
dev_dbg(dev, "sent %d bytes, (ret %d)\n", ret_len, ret);
/* now tell the hardware to transmit what we sent it */
pipe = usb_rcvctrlpipe(rr3->udev, 0);
ret = usb_control_msg(rr3->udev, pipe, RR3_TX_SEND_SIGNAL,
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
- 0, 0, irdata, 2, HZ * 10);
+ 0, 0, irdata, 2, 10000);
if (ret < 0)
dev_err(dev, "Error: control msg send failed, rc %d\n", ret);
diff --git a/drivers/media/tuners/msi001.c b/drivers/media/tuners/msi001.c
index 78e6fd600d8e..44247049a319 100644
--- a/drivers/media/tuners/msi001.c
+++ b/drivers/media/tuners/msi001.c
@@ -442,6 +442,13 @@ static int msi001_probe(struct spi_device *spi)
V4L2_CID_RF_TUNER_BANDWIDTH_AUTO, 0, 1, 1, 1);
dev->bandwidth = v4l2_ctrl_new_std(&dev->hdl, &msi001_ctrl_ops,
V4L2_CID_RF_TUNER_BANDWIDTH, 200000, 8000000, 1, 200000);
+ if (dev->hdl.error) {
+ ret = dev->hdl.error;
+ dev_err(&spi->dev, "Could not initialize controls\n");
+ /* control init failed, free handler */
+ goto err_ctrl_handler_free;
+ }
+
v4l2_ctrl_auto_cluster(2, &dev->bandwidth_auto, 0, false);
dev->lna_gain = v4l2_ctrl_new_std(&dev->hdl, &msi001_ctrl_ops,
V4L2_CID_RF_TUNER_LNA_GAIN, 0, 1, 1, 1);
diff --git a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c
index fefb2625f655..75ddf7ed1faf 100644
--- a/drivers/media/tuners/si2157.c
+++ b/drivers/media/tuners/si2157.c
@@ -90,7 +90,7 @@ static int si2157_init(struct dvb_frontend *fe)
dev_dbg(&client->dev, "\n");
/* Try to get Xtal trim property, to verify tuner still running */
- memcpy(cmd.args, "\x15\x00\x04\x02", 4);
+ memcpy(cmd.args, "\x15\x00\x02\x04", 4);
cmd.wlen = 4;
cmd.rlen = 4;
ret = si2157_cmd_execute(client, &cmd);
diff --git a/drivers/media/usb/b2c2/flexcop-usb.c b/drivers/media/usb/b2c2/flexcop-usb.c
index e731243267e4..a2563c254080 100644
--- a/drivers/media/usb/b2c2/flexcop-usb.c
+++ b/drivers/media/usb/b2c2/flexcop-usb.c
@@ -87,7 +87,7 @@ static int flexcop_usb_readwrite_dw(struct flexcop_device *fc, u16 wRegOffsPCI,
0,
fc_usb->data,
sizeof(u32),
- B2C2_WAIT_FOR_OPERATION_RDW * HZ);
+ B2C2_WAIT_FOR_OPERATION_RDW);
if (ret != sizeof(u32)) {
err("error while %s dword from %d (%d).", read ? "reading" :
@@ -155,7 +155,7 @@ static int flexcop_usb_v8_memory_req(struct flexcop_usb *fc_usb,
wIndex,
fc_usb->data,
buflen,
- nWaitTime * HZ);
+ nWaitTime);
if (ret != buflen)
ret = -EIO;
@@ -249,13 +249,13 @@ static int flexcop_usb_i2c_req(struct flexcop_i2c_adapter *i2c,
/* DKT 020208 - add this to support special case of DiSEqC */
case USB_FUNC_I2C_CHECKWRITE:
pipe = B2C2_USB_CTRL_PIPE_OUT;
- nWaitTime = 2;
+ nWaitTime = 2000;
request_type |= USB_DIR_OUT;
break;
case USB_FUNC_I2C_READ:
case USB_FUNC_I2C_REPEATREAD:
pipe = B2C2_USB_CTRL_PIPE_IN;
- nWaitTime = 2;
+ nWaitTime = 2000;
request_type |= USB_DIR_IN;
break;
default:
@@ -282,7 +282,7 @@ static int flexcop_usb_i2c_req(struct flexcop_i2c_adapter *i2c,
wIndex,
fc_usb->data,
buflen,
- nWaitTime * HZ);
+ nWaitTime);
if (ret != buflen)
ret = -EIO;
diff --git a/drivers/media/usb/b2c2/flexcop-usb.h b/drivers/media/usb/b2c2/flexcop-usb.h
index 2f230bf72252..c7cca1a5ee59 100644
--- a/drivers/media/usb/b2c2/flexcop-usb.h
+++ b/drivers/media/usb/b2c2/flexcop-usb.h
@@ -91,13 +91,13 @@ typedef enum {
UTILITY_SRAM_TESTVERIFY = 0x16,
} flexcop_usb_utility_function_t;
-#define B2C2_WAIT_FOR_OPERATION_RW (1*HZ)
-#define B2C2_WAIT_FOR_OPERATION_RDW (3*HZ)
-#define B2C2_WAIT_FOR_OPERATION_WDW (1*HZ)
+#define B2C2_WAIT_FOR_OPERATION_RW 1000
+#define B2C2_WAIT_FOR_OPERATION_RDW 3000
+#define B2C2_WAIT_FOR_OPERATION_WDW 1000
-#define B2C2_WAIT_FOR_OPERATION_V8READ (3*HZ)
-#define B2C2_WAIT_FOR_OPERATION_V8WRITE (3*HZ)
-#define B2C2_WAIT_FOR_OPERATION_V8FLASH (3*HZ)
+#define B2C2_WAIT_FOR_OPERATION_V8READ 3000
+#define B2C2_WAIT_FOR_OPERATION_V8WRITE 3000
+#define B2C2_WAIT_FOR_OPERATION_V8FLASH 3000
typedef enum {
V8_MEMORY_PAGE_DVB_CI = 0x20,
diff --git a/drivers/media/usb/cpia2/cpia2_usb.c b/drivers/media/usb/cpia2/cpia2_usb.c
index 76aac06f9fb8..cba03b286473 100644
--- a/drivers/media/usb/cpia2/cpia2_usb.c
+++ b/drivers/media/usb/cpia2/cpia2_usb.c
@@ -550,7 +550,7 @@ static int write_packet(struct usb_device *udev,
0, /* index */
buf, /* buffer */
size,
- HZ);
+ 1000);
kfree(buf);
return ret;
@@ -582,7 +582,7 @@ static int read_packet(struct usb_device *udev,
0, /* index */
buf, /* buffer */
size,
- HZ);
+ 1000);
if (ret >= 0)
memcpy(registers, buf, size);
diff --git a/drivers/media/usb/dvb-usb/dib0700_core.c b/drivers/media/usb/dvb-usb/dib0700_core.c
index 70219b3e8566..7ea8f68b0f45 100644
--- a/drivers/media/usb/dvb-usb/dib0700_core.c
+++ b/drivers/media/usb/dvb-usb/dib0700_core.c
@@ -618,8 +618,6 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
deb_info("the endpoint number (%i) is not correct, use the adapter id instead", adap->fe_adap[0].stream.props.endpoint);
if (onoff)
st->channel_state |= 1 << (adap->id);
- else
- st->channel_state |= 1 << ~(adap->id);
} else {
if (onoff)
st->channel_state |= 1 << (adap->fe_adap[0].stream.props.endpoint-2);
diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c
index a27a68440325..aa929db56db1 100644
--- a/drivers/media/usb/dvb-usb/dw2102.c
+++ b/drivers/media/usb/dvb-usb/dw2102.c
@@ -2148,46 +2148,153 @@ static struct dvb_usb_device_properties s6x0_properties = {
}
};
-static const struct dvb_usb_device_description d1100 = {
- "Prof 1100 USB ",
- {&dw2102_table[PROF_1100], NULL},
- {NULL},
-};
+static struct dvb_usb_device_properties p1100_properties = {
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+ .usb_ctrl = DEVICE_SPECIFIC,
+ .size_of_priv = sizeof(struct dw2102_state),
+ .firmware = P1100_FIRMWARE,
+ .no_reconnect = 1,
-static const struct dvb_usb_device_description d660 = {
- "TeVii S660 USB",
- {&dw2102_table[TEVII_S660], NULL},
- {NULL},
-};
+ .i2c_algo = &s6x0_i2c_algo,
+ .rc.core = {
+ .rc_interval = 150,
+ .rc_codes = RC_MAP_TBS_NEC,
+ .module_name = "dw2102",
+ .allowed_protos = RC_PROTO_BIT_NEC,
+ .rc_query = prof_rc_query,
+ },
-static const struct dvb_usb_device_description d480_1 = {
- "TeVii S480.1 USB",
- {&dw2102_table[TEVII_S480_1], NULL},
- {NULL},
+ .generic_bulk_ctrl_endpoint = 0x81,
+ .num_adapters = 1,
+ .download_firmware = dw2102_load_firmware,
+ .read_mac_address = s6x0_read_mac_address,
+ .adapter = {
+ {
+ .num_frontends = 1,
+ .fe = {{
+ .frontend_attach = stv0288_frontend_attach,
+ .stream = {
+ .type = USB_BULK,
+ .count = 8,
+ .endpoint = 0x82,
+ .u = {
+ .bulk = {
+ .buffersize = 4096,
+ }
+ }
+ },
+ } },
+ }
+ },
+ .num_device_descs = 1,
+ .devices = {
+ {"Prof 1100 USB ",
+ {&dw2102_table[PROF_1100], NULL},
+ {NULL},
+ },
+ }
};
-static const struct dvb_usb_device_description d480_2 = {
- "TeVii S480.2 USB",
- {&dw2102_table[TEVII_S480_2], NULL},
- {NULL},
-};
+static struct dvb_usb_device_properties s660_properties = {
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+ .usb_ctrl = DEVICE_SPECIFIC,
+ .size_of_priv = sizeof(struct dw2102_state),
+ .firmware = S660_FIRMWARE,
+ .no_reconnect = 1,
-static const struct dvb_usb_device_description d7500 = {
- "Prof 7500 USB DVB-S2",
- {&dw2102_table[PROF_7500], NULL},
- {NULL},
-};
+ .i2c_algo = &s6x0_i2c_algo,
+ .rc.core = {
+ .rc_interval = 150,
+ .rc_codes = RC_MAP_TEVII_NEC,
+ .module_name = "dw2102",
+ .allowed_protos = RC_PROTO_BIT_NEC,
+ .rc_query = dw2102_rc_query,
+ },
-static const struct dvb_usb_device_description d421 = {
- "TeVii S421 PCI",
- {&dw2102_table[TEVII_S421], NULL},
- {NULL},
+ .generic_bulk_ctrl_endpoint = 0x81,
+ .num_adapters = 1,
+ .download_firmware = dw2102_load_firmware,
+ .read_mac_address = s6x0_read_mac_address,
+ .adapter = {
+ {
+ .num_frontends = 1,
+ .fe = {{
+ .frontend_attach = ds3000_frontend_attach,
+ .stream = {
+ .type = USB_BULK,
+ .count = 8,
+ .endpoint = 0x82,
+ .u = {
+ .bulk = {
+ .buffersize = 4096,
+ }
+ }
+ },
+ } },
+ }
+ },
+ .num_device_descs = 3,
+ .devices = {
+ {"TeVii S660 USB",
+ {&dw2102_table[TEVII_S660], NULL},
+ {NULL},
+ },
+ {"TeVii S480.1 USB",
+ {&dw2102_table[TEVII_S480_1], NULL},
+ {NULL},
+ },
+ {"TeVii S480.2 USB",
+ {&dw2102_table[TEVII_S480_2], NULL},
+ {NULL},
+ },
+ }
};
-static const struct dvb_usb_device_description d632 = {
- "TeVii S632 USB",
- {&dw2102_table[TEVII_S632], NULL},
- {NULL},
+static struct dvb_usb_device_properties p7500_properties = {
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+ .usb_ctrl = DEVICE_SPECIFIC,
+ .size_of_priv = sizeof(struct dw2102_state),
+ .firmware = P7500_FIRMWARE,
+ .no_reconnect = 1,
+
+ .i2c_algo = &s6x0_i2c_algo,
+ .rc.core = {
+ .rc_interval = 150,
+ .rc_codes = RC_MAP_TBS_NEC,
+ .module_name = "dw2102",
+ .allowed_protos = RC_PROTO_BIT_NEC,
+ .rc_query = prof_rc_query,
+ },
+
+ .generic_bulk_ctrl_endpoint = 0x81,
+ .num_adapters = 1,
+ .download_firmware = dw2102_load_firmware,
+ .read_mac_address = s6x0_read_mac_address,
+ .adapter = {
+ {
+ .num_frontends = 1,
+ .fe = {{
+ .frontend_attach = prof_7500_frontend_attach,
+ .stream = {
+ .type = USB_BULK,
+ .count = 8,
+ .endpoint = 0x82,
+ .u = {
+ .bulk = {
+ .buffersize = 4096,
+ }
+ }
+ },
+ } },
+ }
+ },
+ .num_device_descs = 1,
+ .devices = {
+ {"Prof 7500 USB DVB-S2",
+ {&dw2102_table[PROF_7500], NULL},
+ {NULL},
+ },
+ }
};
static struct dvb_usb_device_properties su3000_properties = {
@@ -2267,6 +2374,59 @@ static struct dvb_usb_device_properties su3000_properties = {
}
};
+static struct dvb_usb_device_properties s421_properties = {
+ .caps = DVB_USB_IS_AN_I2C_ADAPTER,
+ .usb_ctrl = DEVICE_SPECIFIC,
+ .size_of_priv = sizeof(struct dw2102_state),
+ .power_ctrl = su3000_power_ctrl,
+ .num_adapters = 1,
+ .identify_state = su3000_identify_state,
+ .i2c_algo = &su3000_i2c_algo,
+
+ .rc.core = {
+ .rc_interval = 150,
+ .rc_codes = RC_MAP_SU3000,
+ .module_name = "dw2102",
+ .allowed_protos = RC_PROTO_BIT_RC5,
+ .rc_query = su3000_rc_query,
+ },
+
+ .read_mac_address = su3000_read_mac_address,
+
+ .generic_bulk_ctrl_endpoint = 0x01,
+
+ .adapter = {
+ {
+ .num_frontends = 1,
+ .fe = {{
+ .streaming_ctrl = su3000_streaming_ctrl,
+ .frontend_attach = m88rs2000_frontend_attach,
+ .stream = {
+ .type = USB_BULK,
+ .count = 8,
+ .endpoint = 0x82,
+ .u = {
+ .bulk = {
+ .buffersize = 4096,
+ }
+ }
+ }
+ } },
+ }
+ },
+ .num_device_descs = 2,
+ .devices = {
+ { "TeVii S421 PCI",
+ { &dw2102_table[TEVII_S421], NULL },
+ { NULL },
+ },
+ { "TeVii S632 USB",
+ { &dw2102_table[TEVII_S632], NULL },
+ { NULL },
+ },
+ }
+};
+
static struct dvb_usb_device_properties t220_properties = {
.caps = DVB_USB_IS_AN_I2C_ADAPTER,
.usb_ctrl = DEVICE_SPECIFIC,
@@ -2384,101 +2544,33 @@ static struct dvb_usb_device_properties tt_s2_4600_properties = {
static int dw2102_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{
- int retval = -ENOMEM;
- struct dvb_usb_device_properties *p1100;
- struct dvb_usb_device_properties *s660;
- struct dvb_usb_device_properties *p7500;
- struct dvb_usb_device_properties *s421;
-
- p1100 = kmemdup(&s6x0_properties,
- sizeof(struct dvb_usb_device_properties), GFP_KERNEL);
- if (!p1100)
- goto err0;
-
- /* copy default structure */
- /* fill only different fields */
- p1100->firmware = P1100_FIRMWARE;
- p1100->devices[0] = d1100;
- p1100->rc.core.rc_query = prof_rc_query;
- p1100->rc.core.rc_codes = RC_MAP_TBS_NEC;
- p1100->adapter->fe[0].frontend_attach = stv0288_frontend_attach;
-
- s660 = kmemdup(&s6x0_properties,
- sizeof(struct dvb_usb_device_properties), GFP_KERNEL);
- if (!s660)
- goto err1;
-
- s660->firmware = S660_FIRMWARE;
- s660->num_device_descs = 3;
- s660->devices[0] = d660;
- s660->devices[1] = d480_1;
- s660->devices[2] = d480_2;
- s660->adapter->fe[0].frontend_attach = ds3000_frontend_attach;
-
- p7500 = kmemdup(&s6x0_properties,
- sizeof(struct dvb_usb_device_properties), GFP_KERNEL);
- if (!p7500)
- goto err2;
-
- p7500->firmware = P7500_FIRMWARE;
- p7500->devices[0] = d7500;
- p7500->rc.core.rc_query = prof_rc_query;
- p7500->rc.core.rc_codes = RC_MAP_TBS_NEC;
- p7500->adapter->fe[0].frontend_attach = prof_7500_frontend_attach;
-
-
- s421 = kmemdup(&su3000_properties,
- sizeof(struct dvb_usb_device_properties), GFP_KERNEL);
- if (!s421)
- goto err3;
-
- s421->num_device_descs = 2;
- s421->devices[0] = d421;
- s421->devices[1] = d632;
- s421->adapter->fe[0].frontend_attach = m88rs2000_frontend_attach;
-
- if (0 == dvb_usb_device_init(intf, &dw2102_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &dw2104_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &dw3101_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &s6x0_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, p1100,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, s660,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, p7500,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, s421,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &su3000_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &t220_properties,
- THIS_MODULE, NULL, adapter_nr) ||
- 0 == dvb_usb_device_init(intf, &tt_s2_4600_properties,
- THIS_MODULE, NULL, adapter_nr)) {
-
- /* clean up copied properties */
- kfree(s421);
- kfree(p7500);
- kfree(s660);
- kfree(p1100);
+ if (!(dvb_usb_device_init(intf, &dw2102_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &dw2104_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &dw3101_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &s6x0_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &p1100_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &s660_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &p7500_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &s421_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &su3000_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &t220_properties,
+ THIS_MODULE, NULL, adapter_nr) &&
+ dvb_usb_device_init(intf, &tt_s2_4600_properties,
+ THIS_MODULE, NULL, adapter_nr))) {
return 0;
}
- retval = -ENODEV;
- kfree(s421);
-err3:
- kfree(p7500);
-err2:
- kfree(s660);
-err1:
- kfree(p1100);
-err0:
- return retval;
+ return -ENODEV;
}
static void dw2102_disconnect(struct usb_interface *intf)
diff --git a/drivers/media/usb/dvb-usb/m920x.c b/drivers/media/usb/dvb-usb/m920x.c
index 4bb5b82599a7..691e05833db1 100644
--- a/drivers/media/usb/dvb-usb/m920x.c
+++ b/drivers/media/usb/dvb-usb/m920x.c
@@ -274,6 +274,13 @@ static int m920x_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], int nu
/* Should check for ack here, if we knew how. */
}
if (msg[i].flags & I2C_M_RD) {
+ char *read = kmalloc(1, GFP_KERNEL);
+ if (!read) {
+ ret = -ENOMEM;
+ kfree(read);
+ goto unlock;
+ }
+
for (j = 0; j < msg[i].len; j++) {
/* Last byte of transaction?
* Send STOP, otherwise send ACK. */
@@ -281,9 +288,12 @@ static int m920x_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], int nu
if ((ret = m920x_read(d->udev, M9206_I2C, 0x0,
0x20 | stop,
- &msg[i].buf[j], 1)) != 0)
+ read, 1)) != 0)
goto unlock;
+ msg[i].buf[j] = read[0];
}
+
+ kfree(read);
} else {
for (j = 0; j < msg[i].len; j++) {
/* Last byte of transaction? Then send STOP. */
diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
index cf45cc566cbe..87e375562dbb 100644
--- a/drivers/media/usb/em28xx/em28xx-cards.c
+++ b/drivers/media/usb/em28xx/em28xx-cards.c
@@ -3575,8 +3575,10 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
if (dev->is_audio_only) {
retval = em28xx_audio_setup(dev);
- if (retval)
- return -ENODEV;
+ if (retval) {
+ retval = -ENODEV;
+ goto err_deinit_media;
+ }
em28xx_init_extension(dev);
return 0;
@@ -3595,7 +3597,7 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
dev_err(&dev->intf->dev,
"%s: em28xx_i2c_register bus 0 - error [%d]!\n",
__func__, retval);
- return retval;
+ goto err_deinit_media;
}
/* register i2c bus 1 */
@@ -3611,9 +3613,7 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
"%s: em28xx_i2c_register bus 1 - error [%d]!\n",
__func__, retval);
- em28xx_i2c_unregister(dev, 0);
-
- return retval;
+ goto err_unreg_i2c;
}
}
@@ -3621,6 +3621,12 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
em28xx_card_setup(dev);
return 0;
+
+err_unreg_i2c:
+ em28xx_i2c_unregister(dev, 0);
+err_deinit_media:
+ em28xx_unregister_media_device(dev);
+ return retval;
}
static int em28xx_duplicate_dev(struct em28xx *dev)
diff --git a/drivers/media/usb/em28xx/em28xx-core.c b/drivers/media/usb/em28xx/em28xx-core.c
index af9216278024..308bc029099d 100644
--- a/drivers/media/usb/em28xx/em28xx-core.c
+++ b/drivers/media/usb/em28xx/em28xx-core.c
@@ -89,7 +89,7 @@ int em28xx_read_reg_req_len(struct em28xx *dev, u8 req, u16 reg,
mutex_lock(&dev->ctrl_urb_lock);
ret = usb_control_msg(udev, pipe, req,
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
- 0x0000, reg, dev->urb_buf, len, HZ);
+ 0x0000, reg, dev->urb_buf, len, 1000);
if (ret < 0) {
em28xx_regdbg("(pipe 0x%08x): IN: %02x %02x %02x %02x %02x %02x %02x %02x failed with error %i\n",
pipe,
@@ -158,7 +158,7 @@ int em28xx_write_regs_req(struct em28xx *dev, u8 req, u16 reg, char *buf,
memcpy(dev->urb_buf, buf, len);
ret = usb_control_msg(udev, pipe, req,
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
- 0x0000, reg, dev->urb_buf, len, HZ);
+ 0x0000, reg, dev->urb_buf, len, 1000);
mutex_unlock(&dev->ctrl_urb_lock);
if (ret < 0) {
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
index d38dee1792e4..3915d551d59e 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
@@ -1467,7 +1467,7 @@ static int pvr2_upload_firmware1(struct pvr2_hdw *hdw)
for (address = 0; address < fwsize; address += 0x800) {
memcpy(fw_ptr, fw_entry->data + address, 0x800);
ret += usb_control_msg(hdw->usb_dev, pipe, 0xa0, 0x40, address,
- 0, fw_ptr, 0x800, HZ);
+ 0, fw_ptr, 0x800, 1000);
}
trace_firmware("Upload done, releasing device's CPU");
@@ -1605,7 +1605,7 @@ int pvr2_upload_firmware2(struct pvr2_hdw *hdw)
((u32 *)fw_ptr)[icnt] = swab32(((u32 *)fw_ptr)[icnt]);
ret |= usb_bulk_msg(hdw->usb_dev, pipe, fw_ptr,bcnt,
- &actual_length, HZ);
+ &actual_length, 1000);
ret |= (actual_length != bcnt);
if (ret) break;
fw_done += bcnt;
@@ -3438,7 +3438,7 @@ void pvr2_hdw_cpufw_set_enabled(struct pvr2_hdw *hdw,
0xa0,0xc0,
address,0,
hdw->fw_buffer+address,
- 0x800,HZ);
+ 0x800,1000);
if (ret < 0) break;
}
@@ -3977,7 +3977,7 @@ void pvr2_hdw_cpureset_assert(struct pvr2_hdw *hdw,int val)
/* Write the CPUCS register on the 8051. The lsb of the register
is the reset bit; a 1 asserts reset while a 0 clears it. */
pipe = usb_sndctrlpipe(hdw->usb_dev, 0);
- ret = usb_control_msg(hdw->usb_dev,pipe,0xa0,0x40,0xe600,0,da,1,HZ);
+ ret = usb_control_msg(hdw->usb_dev,pipe,0xa0,0x40,0xe600,0,da,1,1000);
if (ret < 0) {
pvr2_trace(PVR2_TRACE_ERROR_LEGS,
"cpureset_assert(%d) error=%d",val,ret);
diff --git a/drivers/media/usb/s2255/s2255drv.c b/drivers/media/usb/s2255/s2255drv.c
index 4af55e2478be..cb15eb32d2a6 100644
--- a/drivers/media/usb/s2255/s2255drv.c
+++ b/drivers/media/usb/s2255/s2255drv.c
@@ -1884,7 +1884,7 @@ static long s2255_vendor_req(struct s2255_dev *dev, unsigned char Request,
USB_TYPE_VENDOR | USB_RECIP_DEVICE |
USB_DIR_IN,
Value, Index, buf,
- TransferBufferLength, HZ * 5);
+ TransferBufferLength, USB_CTRL_SET_TIMEOUT);
if (r >= 0)
memcpy(TransferBuffer, buf, TransferBufferLength);
@@ -1893,7 +1893,7 @@ static long s2255_vendor_req(struct s2255_dev *dev, unsigned char Request,
r = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0),
Request, USB_TYPE_VENDOR | USB_RECIP_DEVICE,
Value, Index, buf,
- TransferBufferLength, HZ * 5);
+ TransferBufferLength, USB_CTRL_SET_TIMEOUT);
}
kfree(buf);
return r;
diff --git a/drivers/media/usb/stk1160/stk1160-core.c b/drivers/media/usb/stk1160/stk1160-core.c
index b4f8bc5db138..4e1698f78818 100644
--- a/drivers/media/usb/stk1160/stk1160-core.c
+++ b/drivers/media/usb/stk1160/stk1160-core.c
@@ -65,7 +65,7 @@ int stk1160_read_reg(struct stk1160 *dev, u16 reg, u8 *value)
return -ENOMEM;
ret = usb_control_msg(dev->udev, pipe, 0x00,
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
- 0x00, reg, buf, sizeof(u8), HZ);
+ 0x00, reg, buf, sizeof(u8), 1000);
if (ret < 0) {
stk1160_err("read failed on reg 0x%x (%d)\n",
reg, ret);
@@ -85,7 +85,7 @@ int stk1160_write_reg(struct stk1160 *dev, u16 reg, u16 value)
ret = usb_control_msg(dev->udev, pipe, 0x01,
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
- value, reg, NULL, 0, HZ);
+ value, reg, NULL, 0, 1000);
if (ret < 0) {
stk1160_err("write failed on reg 0x%x (%d)\n",
reg, ret);
diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h
index a3dfacf069c4..c884020b2878 100644
--- a/drivers/media/usb/uvc/uvcvideo.h
+++ b/drivers/media/usb/uvc/uvcvideo.h
@@ -183,7 +183,7 @@
/* Maximum status buffer size in bytes of interrupt URB. */
#define UVC_MAX_STATUS_SIZE 16
-#define UVC_CTRL_CONTROL_TIMEOUT 500
+#define UVC_CTRL_CONTROL_TIMEOUT 5000
#define UVC_CTRL_STREAMING_TIMEOUT 5000
/* Maximum allowed number of control mappings per device */
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
index 4ffa14e44efe..6d6d30dbbe68 100644
--- a/drivers/media/v4l2-core/v4l2-ioctl.c
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
@@ -2127,6 +2127,7 @@ static int v4l_prepare_buf(const struct v4l2_ioctl_ops *ops,
static int v4l_g_parm(const struct v4l2_ioctl_ops *ops,
struct file *file, void *fh, void *arg)
{
+ struct video_device *vfd = video_devdata(file);
struct v4l2_streamparm *p = arg;
v4l2_std_id std;
int ret = check_fmt(file, p->type);
@@ -2138,7 +2139,8 @@ static int v4l_g_parm(const struct v4l2_ioctl_ops *ops,
if (p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE &&
p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
return -EINVAL;
- p->parm.capture.readbuffers = 2;
+ if (vfd->device_caps & V4L2_CAP_READWRITE)
+ p->parm.capture.readbuffers = 2;
ret = ops->vidioc_g_std(file, fh, &std);
if (ret == 0)
v4l2_video_std_frame_period(std, &p->parm.capture.timeperframe);
diff --git a/drivers/memory/renesas-rpc-if.c b/drivers/memory/renesas-rpc-if.c
index a760ab08256f..9019121a80f5 100644
--- a/drivers/memory/renesas-rpc-if.c
+++ b/drivers/memory/renesas-rpc-if.c
@@ -245,7 +245,7 @@ int rpcif_sw_init(struct rpcif *rpc, struct device *dev)
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dirmap");
rpc->dirmap = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(rpc->dirmap))
- rpc->dirmap = NULL;
+ return PTR_ERR(rpc->dirmap);
rpc->size = resource_size(res);
rpc->rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL);
diff --git a/drivers/mfd/atmel-flexcom.c b/drivers/mfd/atmel-flexcom.c
index d2f5c073fdf3..559eb4d352b6 100644
--- a/drivers/mfd/atmel-flexcom.c
+++ b/drivers/mfd/atmel-flexcom.c
@@ -87,8 +87,7 @@ static const struct of_device_id atmel_flexcom_of_match[] = {
};
MODULE_DEVICE_TABLE(of, atmel_flexcom_of_match);
-#ifdef CONFIG_PM_SLEEP
-static int atmel_flexcom_resume(struct device *dev)
+static int __maybe_unused atmel_flexcom_resume_noirq(struct device *dev)
{
struct atmel_flexcom *ddata = dev_get_drvdata(dev);
int err;
@@ -105,16 +104,16 @@ static int atmel_flexcom_resume(struct device *dev)
return 0;
}
-#endif
-static SIMPLE_DEV_PM_OPS(atmel_flexcom_pm_ops, NULL,
- atmel_flexcom_resume);
+static const struct dev_pm_ops atmel_flexcom_pm_ops = {
+ .resume_noirq = atmel_flexcom_resume_noirq,
+};
static struct platform_driver atmel_flexcom_driver = {
.probe = atmel_flexcom_probe,
.driver = {
.name = "atmel_flexcom",
- .pm = &atmel_flexcom_pm_ops,
+ .pm = pm_ptr(&atmel_flexcom_pm_ops),
.of_match_table = atmel_flexcom_of_match,
},
};
diff --git a/drivers/misc/lattice-ecp3-config.c b/drivers/misc/lattice-ecp3-config.c
index 5eaf74447ca1..556bb7d705f5 100644
--- a/drivers/misc/lattice-ecp3-config.c
+++ b/drivers/misc/lattice-ecp3-config.c
@@ -76,12 +76,12 @@ static void firmware_load(const struct firmware *fw, void *context)
if (fw == NULL) {
dev_err(&spi->dev, "Cannot load firmware, aborting\n");
- return;
+ goto out;
}
if (fw->size == 0) {
dev_err(&spi->dev, "Error: Firmware size is 0!\n");
- return;
+ goto out;
}
/* Fill dummy data (24 stuffing bits for commands) */
@@ -103,7 +103,7 @@ static void firmware_load(const struct firmware *fw, void *context)
dev_err(&spi->dev,
"Error: No supported FPGA detected (JEDEC_ID=%08x)!\n",
jedec_id);
- return;
+ goto out;
}
dev_info(&spi->dev, "FPGA %s detected\n", ecp3_dev[i].name);
@@ -116,7 +116,7 @@ static void firmware_load(const struct firmware *fw, void *context)
buffer = kzalloc(fw->size + 8, GFP_KERNEL);
if (!buffer) {
dev_err(&spi->dev, "Error: Can't allocate memory!\n");
- return;
+ goto out;
}
/*
@@ -155,7 +155,7 @@ static void firmware_load(const struct firmware *fw, void *context)
"Error: Timeout waiting for FPGA to clear (status=%08x)!\n",
status);
kfree(buffer);
- return;
+ goto out;
}
dev_info(&spi->dev, "Configuring the FPGA...\n");
@@ -181,7 +181,7 @@ static void firmware_load(const struct firmware *fw, void *context)
release_firmware(fw);
kfree(buffer);
-
+out:
complete(&data->fw_loaded);
}
diff --git a/drivers/misc/lkdtm/Makefile b/drivers/misc/lkdtm/Makefile
index 30c8ac24635d..4405fb2bc7a0 100644
--- a/drivers/misc/lkdtm/Makefile
+++ b/drivers/misc/lkdtm/Makefile
@@ -16,7 +16,7 @@ KCOV_INSTRUMENT_rodata.o := n
OBJCOPYFLAGS :=
OBJCOPYFLAGS_rodata_objcopy.o := \
- --rename-section .noinstr.text=.rodata,alloc,readonly,load
+ --rename-section .noinstr.text=.rodata,alloc,readonly,load,contents
targets += rodata.o rodata_objcopy.o
$(obj)/rodata_objcopy.o: $(obj)/rodata.o FORCE
$(call if_changed,objcopy)
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index 1b0853a82189..99a4ce68d82f 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -708,6 +708,8 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
if (host->ops->init_card)
host->ops->init_card(host, card);
+ card->ocr = ocr_card;
+
/*
* If the host and card support UHS-I mode request the card
* to switch to 1.8V signaling level. No 1.8v signalling if
@@ -820,7 +822,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
goto mismatch;
}
}
- card->ocr = ocr_card;
+
mmc_fixup_device(card, sdio_fixup_methods);
if (card->type == MMC_TYPE_SD_COMBO) {
diff --git a/drivers/mmc/host/meson-mx-sdhc-mmc.c b/drivers/mmc/host/meson-mx-sdhc-mmc.c
index 8fdd0bbbfa21..28aa78aa08f3 100644
--- a/drivers/mmc/host/meson-mx-sdhc-mmc.c
+++ b/drivers/mmc/host/meson-mx-sdhc-mmc.c
@@ -854,6 +854,11 @@ static int meson_mx_sdhc_probe(struct platform_device *pdev)
goto err_disable_pclk;
irq = platform_get_irq(pdev, 0);
+ if (irq < 0) {
+ ret = irq;
+ goto err_disable_pclk;
+ }
+
ret = devm_request_threaded_irq(dev, irq, meson_mx_sdhc_irq,
meson_mx_sdhc_irq_thread, IRQF_ONESHOT,
NULL, host);
diff --git a/drivers/mmc/host/meson-mx-sdio.c b/drivers/mmc/host/meson-mx-sdio.c
index 1c5299cd0cbe..264aae2a2b0c 100644
--- a/drivers/mmc/host/meson-mx-sdio.c
+++ b/drivers/mmc/host/meson-mx-sdio.c
@@ -663,6 +663,11 @@ static int meson_mx_mmc_probe(struct platform_device *pdev)
}
irq = platform_get_irq(pdev, 0);
+ if (irq < 0) {
+ ret = irq;
+ goto error_free_mmc;
+ }
+
ret = devm_request_threaded_irq(host->controller_dev, irq,
meson_mx_mmc_irq,
meson_mx_mmc_irq_thread, IRQF_ONESHOT,
diff --git a/drivers/mtd/hyperbus/rpc-if.c b/drivers/mtd/hyperbus/rpc-if.c
index ecb050ba95cd..dc164c18f842 100644
--- a/drivers/mtd/hyperbus/rpc-if.c
+++ b/drivers/mtd/hyperbus/rpc-if.c
@@ -124,7 +124,9 @@ static int rpcif_hb_probe(struct platform_device *pdev)
if (!hyperbus)
return -ENOMEM;
- rpcif_sw_init(&hyperbus->rpc, pdev->dev.parent);
+ error = rpcif_sw_init(&hyperbus->rpc, pdev->dev.parent);
+ if (error)
+ return error;
platform_set_drvdata(pdev, hyperbus);
@@ -150,9 +152,9 @@ static int rpcif_hb_remove(struct platform_device *pdev)
{
struct rpcif_hyperbus *hyperbus = platform_get_drvdata(pdev);
int error = hyperbus_unregister_device(&hyperbus->hbdev);
- struct rpcif *rpc = dev_get_drvdata(pdev->dev.parent);
- rpcif_disable_rpm(rpc);
+ rpcif_disable_rpm(&hyperbus->rpc);
+
return error;
}
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
index 95d47422bbf2..5725818fa199 100644
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -313,7 +313,7 @@ static int __mtd_del_partition(struct mtd_info *mtd)
if (err)
return err;
- list_del(&child->part.node);
+ list_del(&mtd->part.node);
free_partition(mtd);
return 0;
diff --git a/drivers/mtd/nand/bbt.c b/drivers/mtd/nand/bbt.c
index 044adf913854..64af6898131d 100644
--- a/drivers/mtd/nand/bbt.c
+++ b/drivers/mtd/nand/bbt.c
@@ -123,7 +123,7 @@ int nanddev_bbt_set_block_status(struct nand_device *nand, unsigned int entry,
unsigned int rbits = bits_per_block + offs - BITS_PER_LONG;
pos[1] &= ~GENMASK(rbits - 1, 0);
- pos[1] |= val >> rbits;
+ pos[1] |= val >> (bits_per_block - rbits);
}
return 0;
diff --git a/drivers/mtd/nand/raw/davinci_nand.c b/drivers/mtd/nand/raw/davinci_nand.c
index f8c36d19ab47..bfd3f440aca5 100644
--- a/drivers/mtd/nand/raw/davinci_nand.c
+++ b/drivers/mtd/nand/raw/davinci_nand.c
@@ -372,17 +372,15 @@ static int nand_davinci_correct_4bit(struct nand_chip *chip, u_char *data,
}
/**
- * nand_read_page_hwecc_oob_first - hw ecc, read oob first
+ * nand_davinci_read_page_hwecc_oob_first - Hardware ECC page read with ECC
+ * data read from OOB area
* @chip: nand chip info structure
* @buf: buffer to store read data
* @oob_required: caller requires OOB data read to chip->oob_poi
* @page: page number to read
*
- * Hardware ECC for large page chips, require OOB to be read first. For this
- * ECC mode, the write_page method is re-used from ECC_HW. These methods
- * read/write ECC from the OOB area, unlike the ECC_HW_SYNDROME support with
- * multiple ECC steps, follows the "infix ECC" scheme and reads/writes ECC from
- * the data area, by overwriting the NAND manufacturer bad block markings.
+ * Hardware ECC for large page chips, which requires the ECC data to be
+ * extracted from the OOB before the actual data is read.
*/
static int nand_davinci_read_page_hwecc_oob_first(struct nand_chip *chip,
uint8_t *buf,
@@ -394,7 +392,6 @@ static int nand_davinci_read_page_hwecc_oob_first(struct nand_chip *chip,
int eccsteps = chip->ecc.steps;
uint8_t *p = buf;
uint8_t *ecc_code = chip->ecc.code_buf;
- uint8_t *ecc_calc = chip->ecc.calc_buf;
unsigned int max_bitflips = 0;
/* Read the OOB area first */
@@ -402,7 +399,8 @@ static int nand_davinci_read_page_hwecc_oob_first(struct nand_chip *chip,
if (ret)
return ret;
- ret = nand_read_page_op(chip, page, 0, NULL, 0);
+ /* Move read cursor to start of page */
+ ret = nand_change_read_column_op(chip, 0, NULL, 0, false);
if (ret)
return ret;
@@ -420,8 +418,6 @@ static int nand_davinci_read_page_hwecc_oob_first(struct nand_chip *chip,
if (ret)
return ret;
- chip->ecc.calculate(chip, p, &ecc_calc[i]);
-
stat = chip->ecc.correct(chip, p, &ecc_code[i], NULL);
if (stat == -EBADMSG &&
(chip->ecc.options & NAND_ECC_GENERIC_ERASED_CHECK)) {
diff --git a/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
index a6658567d55c..226d527b6c6b 100644
--- a/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
+++ b/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
@@ -711,14 +711,32 @@ static void gpmi_nfc_compute_timings(struct gpmi_nand_data *this,
(use_half_period ? BM_GPMI_CTRL1_HALF_PERIOD : 0);
}
-static void gpmi_nfc_apply_timings(struct gpmi_nand_data *this)
+static int gpmi_nfc_apply_timings(struct gpmi_nand_data *this)
{
struct gpmi_nfc_hardware_timing *hw = &this->hw;
struct resources *r = &this->resources;
void __iomem *gpmi_regs = r->gpmi_regs;
unsigned int dll_wait_time_us;
+ int ret;
+
+ /* Clock dividers do NOT guarantee a clean clock signal on its output
+ * during the change of the divide factor on i.MX6Q/UL/SX. On i.MX7/8,
+ * all clock dividers provide these guarantee.
+ */
+ if (GPMI_IS_MX6Q(this) || GPMI_IS_MX6SX(this))
+ clk_disable_unprepare(r->clock[0]);
- clk_set_rate(r->clock[0], hw->clk_rate);
+ ret = clk_set_rate(r->clock[0], hw->clk_rate);
+ if (ret) {
+ dev_err(this->dev, "cannot set clock rate to %lu Hz: %d\n", hw->clk_rate, ret);
+ return ret;
+ }
+
+ if (GPMI_IS_MX6Q(this) || GPMI_IS_MX6SX(this)) {
+ ret = clk_prepare_enable(r->clock[0]);
+ if (ret)
+ return ret;
+ }
writel(hw->timing0, gpmi_regs + HW_GPMI_TIMING0);
writel(hw->timing1, gpmi_regs + HW_GPMI_TIMING1);
@@ -737,6 +755,8 @@ static void gpmi_nfc_apply_timings(struct gpmi_nand_data *this)
/* Wait for the DLL to settle. */
udelay(dll_wait_time_us);
+
+ return 0;
}
static int gpmi_setup_interface(struct nand_chip *chip, int chipnr,
@@ -1032,15 +1052,6 @@ static int gpmi_get_clks(struct gpmi_nand_data *this)
r->clock[i] = clk;
}
- if (GPMI_IS_MX6(this))
- /*
- * Set the default value for the gpmi clock.
- *
- * If you want to use the ONFI nand which is in the
- * Synchronous Mode, you should change the clock as you need.
- */
- clk_set_rate(r->clock[0], 22000000);
-
return 0;
err_clock:
@@ -2278,7 +2289,9 @@ static int gpmi_nfc_exec_op(struct nand_chip *chip,
*/
if (this->hw.must_apply_timings) {
this->hw.must_apply_timings = false;
- gpmi_nfc_apply_timings(this);
+ ret = gpmi_nfc_apply_timings(this);
+ if (ret)
+ return ret;
}
dev_dbg(this->dev, "%s: %d instructions\n", __func__, op->ninstrs);
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 645c7cabcbe4..99770b167192 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1061,9 +1061,6 @@ static bool bond_should_notify_peers(struct bonding *bond)
slave = rcu_dereference(bond->curr_active_slave);
rcu_read_unlock();
- netdev_dbg(bond->dev, "bond_should_notify_peers: slave %s\n",
- slave ? slave->dev->name : "NULL");
-
if (!slave || !bond->send_peer_notif ||
bond->send_peer_notif %
max(1, bond->params.peer_notif_delay) != 0 ||
@@ -1071,6 +1068,9 @@ static bool bond_should_notify_peers(struct bonding *bond)
test_bit(__LINK_STATE_LINKWATCH_PENDING, &slave->dev->state))
return false;
+ netdev_dbg(bond->dev, "bond_should_notify_peers: slave %s\n",
+ slave ? slave->dev->name : "NULL");
+
return true;
}
@@ -4562,25 +4562,39 @@ static netdev_tx_t bond_xmit_broadcast(struct sk_buff *skb,
struct bonding *bond = netdev_priv(bond_dev);
struct slave *slave = NULL;
struct list_head *iter;
+ bool xmit_suc = false;
+ bool skb_used = false;
bond_for_each_slave_rcu(bond, slave, iter) {
- if (bond_is_last_slave(bond, slave))
- break;
- if (bond_slave_is_up(slave) && slave->link == BOND_LINK_UP) {
- struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC);
+ struct sk_buff *skb2;
+
+ if (!(bond_slave_is_up(slave) && slave->link == BOND_LINK_UP))
+ continue;
+ if (bond_is_last_slave(bond, slave)) {
+ skb2 = skb;
+ skb_used = true;
+ } else {
+ skb2 = skb_clone(skb, GFP_ATOMIC);
if (!skb2) {
net_err_ratelimited("%s: Error: %s: skb_clone() failed\n",
bond_dev->name, __func__);
continue;
}
- bond_dev_queue_xmit(bond, skb2, slave->dev);
}
+
+ if (bond_dev_queue_xmit(bond, skb2, slave->dev) == NETDEV_TX_OK)
+ xmit_suc = true;
}
- if (slave && bond_slave_is_up(slave) && slave->link == BOND_LINK_UP)
- return bond_dev_queue_xmit(bond, skb, slave->dev);
- return bond_tx_drop(bond_dev, skb);
+ if (!skb_used)
+ dev_kfree_skb_any(skb);
+
+ if (xmit_suc)
+ return NETDEV_TX_OK;
+
+ atomic_long_inc(&bond_dev->tx_dropped);
+ return NET_XMIT_DROP;
}
/*------------------------- Device initialization ---------------------------*/
diff --git a/drivers/net/can/softing/softing_cs.c b/drivers/net/can/softing/softing_cs.c
index 2e93ee792373..e5c939b63fa6 100644
--- a/drivers/net/can/softing/softing_cs.c
+++ b/drivers/net/can/softing/softing_cs.c
@@ -293,7 +293,7 @@ static int softingcs_probe(struct pcmcia_device *pcmcia)
return 0;
platform_failed:
- kfree(dev);
+ platform_device_put(pdev);
mem_failed:
pcmcia_bad:
pcmcia_failed:
diff --git a/drivers/net/can/softing/softing_fw.c b/drivers/net/can/softing/softing_fw.c
index ccd649a8e37b..bad69a4abec1 100644
--- a/drivers/net/can/softing/softing_fw.c
+++ b/drivers/net/can/softing/softing_fw.c
@@ -565,18 +565,19 @@ int softing_startstop(struct net_device *dev, int up)
if (ret < 0)
goto failed;
}
- /* enable_error_frame */
- /*
+
+ /* enable_error_frame
+ *
* Error reporting is switched off at the moment since
* the receiving of them is not yet 100% verified
* This should be enabled sooner or later
- *
- if (error_reporting) {
+ */
+ if (0 && error_reporting) {
ret = softing_fct_cmd(card, 51, "enable_error_frame");
if (ret < 0)
goto failed;
}
- */
+
/* initialize interface */
iowrite16(1, &card->dpram[DPRAM_FCT_PARAM + 2]);
iowrite16(1, &card->dpram[DPRAM_FCT_PARAM + 4]);
diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
index 4e13f6dfb91a..abe00a085f6f 100644
--- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
@@ -1288,7 +1288,7 @@ mcp251xfd_tef_obj_read(const struct mcp251xfd_priv *priv,
len > tx_ring->obj_num ||
offset + len > tx_ring->obj_num)) {
netdev_err(priv->ndev,
- "Trying to read to many TEF objects (max=%d, offset=%d, len=%d).\n",
+ "Trying to read too many TEF objects (max=%d, offset=%d, len=%d).\n",
tx_ring->obj_num, offset, len);
return -ERANGE;
}
@@ -2497,7 +2497,7 @@ static int mcp251xfd_register_chip_detect(struct mcp251xfd_priv *priv)
if (!mcp251xfd_is_251X(priv) &&
priv->devtype_data.model != devtype_data->model) {
netdev_info(ndev,
- "Detected %s, but firmware specifies a %s. Fixing up.",
+ "Detected %s, but firmware specifies a %s. Fixing up.\n",
__mcp251xfd_get_model_str(devtype_data->model),
mcp251xfd_get_model_str(priv));
}
@@ -2534,7 +2534,7 @@ static int mcp251xfd_register_check_rx_int(struct mcp251xfd_priv *priv)
return 0;
netdev_info(priv->ndev,
- "RX_INT active after softreset, disabling RX_INT support.");
+ "RX_INT active after softreset, disabling RX_INT support.\n");
devm_gpiod_put(&priv->spi->dev, priv->rx_int);
priv->rx_int = NULL;
diff --git a/drivers/net/can/xilinx_can.c b/drivers/net/can/xilinx_can.c
index 48d746e18f30..375998263af7 100644
--- a/drivers/net/can/xilinx_can.c
+++ b/drivers/net/can/xilinx_can.c
@@ -1762,7 +1762,12 @@ static int xcan_probe(struct platform_device *pdev)
spin_lock_init(&priv->tx_lock);
/* Get IRQ for the device */
- ndev->irq = platform_get_irq(pdev, 0);
+ ret = platform_get_irq(pdev, 0);
+ if (ret < 0)
+ goto err_free;
+
+ ndev->irq = ret;
+
ndev->flags |= IFF_ECHO; /* We support local echo */
platform_set_drvdata(pdev, ndev);
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index db74241935ab..e19cf020e5ae 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -3962,10 +3962,12 @@ static int bcmgenet_probe(struct platform_device *pdev)
/* Request the WOL interrupt and advertise suspend if available */
priv->wol_irq_disabled = true;
- err = devm_request_irq(&pdev->dev, priv->wol_irq, bcmgenet_wol_isr, 0,
- dev->name, priv);
- if (!err)
- device_set_wakeup_capable(&pdev->dev, 1);
+ if (priv->wol_irq > 0) {
+ err = devm_request_irq(&pdev->dev, priv->wol_irq,
+ bcmgenet_wol_isr, 0, dev->name, priv);
+ if (!err)
+ device_set_wakeup_capable(&pdev->dev, 1);
+ }
/* Set the needed headroom to account for any possible
* features enabling/disabling at runtime
diff --git a/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c b/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c
index d04a6c163445..da8d10475a08 100644
--- a/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c
+++ b/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c
@@ -32,6 +32,7 @@
#include <linux/tcp.h>
#include <linux/ipv6.h>
+#include <net/inet_ecn.h>
#include <net/route.h>
#include <net/ip6_route.h>
@@ -99,7 +100,7 @@ cxgb_find_route(struct cxgb4_lld_info *lldi,
rt = ip_route_output_ports(&init_net, &fl4, NULL, peer_ip, local_ip,
peer_port, local_port, IPPROTO_TCP,
- tos, 0);
+ tos & ~INET_ECN_MASK, 0);
if (IS_ERR(rt))
return NULL;
n = dst_neigh_lookup(&rt->dst, &peer_ip);
diff --git a/drivers/net/ethernet/cortina/gemini.c b/drivers/net/ethernet/cortina/gemini.c
index 8df6f081f244..d11fcfd927c0 100644
--- a/drivers/net/ethernet/cortina/gemini.c
+++ b/drivers/net/ethernet/cortina/gemini.c
@@ -305,21 +305,21 @@ static void gmac_speed_set(struct net_device *netdev)
switch (phydev->speed) {
case 1000:
status.bits.speed = GMAC_SPEED_1000;
- if (phydev->interface == PHY_INTERFACE_MODE_RGMII)
+ if (phy_interface_mode_is_rgmii(phydev->interface))
status.bits.mii_rmii = GMAC_PHY_RGMII_1000;
netdev_dbg(netdev, "connect %s to RGMII @ 1Gbit\n",
phydev_name(phydev));
break;
case 100:
status.bits.speed = GMAC_SPEED_100;
- if (phydev->interface == PHY_INTERFACE_MODE_RGMII)
+ if (phy_interface_mode_is_rgmii(phydev->interface))
status.bits.mii_rmii = GMAC_PHY_RGMII_100_10;
netdev_dbg(netdev, "connect %s to RGMII @ 100 Mbit\n",
phydev_name(phydev));
break;
case 10:
status.bits.speed = GMAC_SPEED_10;
- if (phydev->interface == PHY_INTERFACE_MODE_RGMII)
+ if (phy_interface_mode_is_rgmii(phydev->interface))
status.bits.mii_rmii = GMAC_PHY_RGMII_100_10;
netdev_dbg(netdev, "connect %s to RGMII @ 10 Mbit\n",
phydev_name(phydev));
@@ -389,6 +389,9 @@ static int gmac_setup_phy(struct net_device *netdev)
status.bits.mii_rmii = GMAC_PHY_GMII;
break;
case PHY_INTERFACE_MODE_RGMII:
+ case PHY_INTERFACE_MODE_RGMII_ID:
+ case PHY_INTERFACE_MODE_RGMII_TXID:
+ case PHY_INTERFACE_MODE_RGMII_RXID:
netdev_dbg(netdev,
"RGMII: set GMAC0 and GMAC1 to MII/RGMII mode\n");
status.bits.mii_rmii = GMAC_PHY_RGMII_100_10;
diff --git a/drivers/net/ethernet/freescale/fman/mac.c b/drivers/net/ethernet/freescale/fman/mac.c
index 901749a7a318..6eeccc11b76e 100644
--- a/drivers/net/ethernet/freescale/fman/mac.c
+++ b/drivers/net/ethernet/freescale/fman/mac.c
@@ -94,14 +94,17 @@ static void mac_exception(void *handle, enum fman_mac_exceptions ex)
__func__, ex);
}
-static void set_fman_mac_params(struct mac_device *mac_dev,
- struct fman_mac_params *params)
+static int set_fman_mac_params(struct mac_device *mac_dev,
+ struct fman_mac_params *params)
{
struct mac_priv_s *priv = mac_dev->priv;
params->base_addr = (typeof(params->base_addr))
devm_ioremap(priv->dev, mac_dev->res->start,
resource_size(mac_dev->res));
+ if (!params->base_addr)
+ return -ENOMEM;
+
memcpy(¶ms->addr, mac_dev->addr, sizeof(mac_dev->addr));
params->max_speed = priv->max_speed;
params->phy_if = mac_dev->phy_if;
@@ -112,6 +115,8 @@ static void set_fman_mac_params(struct mac_device *mac_dev,
params->event_cb = mac_exception;
params->dev_id = mac_dev;
params->internal_phy_node = priv->internal_phy_node;
+
+ return 0;
}
static int tgec_initialization(struct mac_device *mac_dev)
@@ -123,7 +128,9 @@ static int tgec_initialization(struct mac_device *mac_dev)
priv = mac_dev->priv;
- set_fman_mac_params(mac_dev, ¶ms);
+ err = set_fman_mac_params(mac_dev, ¶ms);
+ if (err)
+ goto _return;
mac_dev->fman_mac = tgec_config(¶ms);
if (!mac_dev->fman_mac) {
@@ -169,7 +176,9 @@ static int dtsec_initialization(struct mac_device *mac_dev)
priv = mac_dev->priv;
- set_fman_mac_params(mac_dev, ¶ms);
+ err = set_fman_mac_params(mac_dev, ¶ms);
+ if (err)
+ goto _return;
mac_dev->fman_mac = dtsec_config(¶ms);
if (!mac_dev->fman_mac) {
@@ -218,7 +227,9 @@ static int memac_initialization(struct mac_device *mac_dev)
priv = mac_dev->priv;
- set_fman_mac_params(mac_dev, ¶ms);
+ err = set_fman_mac_params(mac_dev, ¶ms);
+ if (err)
+ goto _return;
if (priv->max_speed == SPEED_10000)
params.phy_if = PHY_INTERFACE_MODE_XGMII;
diff --git a/drivers/net/ethernet/freescale/xgmac_mdio.c b/drivers/net/ethernet/freescale/xgmac_mdio.c
index bfa2826c5545..b7984a772e12 100644
--- a/drivers/net/ethernet/freescale/xgmac_mdio.c
+++ b/drivers/net/ethernet/freescale/xgmac_mdio.c
@@ -49,6 +49,7 @@ struct tgec_mdio_controller {
struct mdio_fsl_priv {
struct tgec_mdio_controller __iomem *mdio_base;
bool is_little_endian;
+ bool has_a009885;
bool has_a011043;
};
@@ -184,10 +185,10 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
{
struct mdio_fsl_priv *priv = (struct mdio_fsl_priv *)bus->priv;
struct tgec_mdio_controller __iomem *regs = priv->mdio_base;
+ unsigned long flags;
uint16_t dev_addr;
uint32_t mdio_stat;
uint32_t mdio_ctl;
- uint16_t value;
int ret;
bool endian = priv->is_little_endian;
@@ -219,12 +220,18 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
return ret;
}
+ if (priv->has_a009885)
+ /* Once the operation completes, i.e. MDIO_STAT_BSY clears, we
+ * must read back the data register within 16 MDC cycles.
+ */
+ local_irq_save(flags);
+
/* Initiate the read */
xgmac_write32(mdio_ctl | MDIO_CTL_READ, ®s->mdio_ctl, endian);
ret = xgmac_wait_until_done(&bus->dev, regs, endian);
if (ret)
- return ret;
+ goto irq_restore;
/* Return all Fs if nothing was there */
if ((xgmac_read32(®s->mdio_stat, endian) & MDIO_STAT_RD_ER) &&
@@ -232,13 +239,17 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
dev_dbg(&bus->dev,
"Error while reading PHY%d reg at %d.%hhu\n",
phy_id, dev_addr, regnum);
- return 0xffff;
+ ret = 0xffff;
+ } else {
+ ret = xgmac_read32(®s->mdio_data, endian) & 0xffff;
+ dev_dbg(&bus->dev, "read %04x\n", ret);
}
- value = xgmac_read32(®s->mdio_data, endian) & 0xffff;
- dev_dbg(&bus->dev, "read %04x\n", value);
+irq_restore:
+ if (priv->has_a009885)
+ local_irq_restore(flags);
- return value;
+ return ret;
}
static int xgmac_mdio_probe(struct platform_device *pdev)
@@ -282,6 +293,8 @@ static int xgmac_mdio_probe(struct platform_device *pdev)
priv->is_little_endian = device_property_read_bool(&pdev->dev,
"little-endian");
+ priv->has_a009885 = device_property_read_bool(&pdev->dev,
+ "fsl,erratum-a009885");
priv->has_a011043 = device_property_read_bool(&pdev->dev,
"fsl,erratum-a011043");
@@ -307,9 +320,10 @@ static int xgmac_mdio_probe(struct platform_device *pdev)
static int xgmac_mdio_remove(struct platform_device *pdev)
{
struct mii_bus *bus = platform_get_drvdata(pdev);
+ struct mdio_fsl_priv *priv = bus->priv;
mdiobus_unregister(bus);
- iounmap(bus->priv);
+ iounmap(priv->mdio_base);
mdiobus_free(bus);
return 0;
diff --git a/drivers/net/ethernet/i825xx/sni_82596.c b/drivers/net/ethernet/i825xx/sni_82596.c
index 27937c5d7956..daec9ce04531 100644
--- a/drivers/net/ethernet/i825xx/sni_82596.c
+++ b/drivers/net/ethernet/i825xx/sni_82596.c
@@ -117,9 +117,10 @@ static int sni_82596_probe(struct platform_device *dev)
netdevice->dev_addr[5] = readb(eth_addr + 0x06);
iounmap(eth_addr);
- if (!netdevice->irq) {
+ if (netdevice->irq < 0) {
printk(KERN_ERR "%s: IRQ not found for i82596 at 0x%lx\n",
__FILE__, netdevice->base_addr);
+ retval = netdevice->irq;
goto probe_failed;
}
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index a2d3f04a9ff2..7d7dc0754a3a 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -215,7 +215,7 @@ static void mtk_mac_config(struct phylink_config *config, unsigned int mode,
phylink_config);
struct mtk_eth *eth = mac->hw;
u32 mcr_cur, mcr_new, sid, i;
- int val, ge_mode, err;
+ int val, ge_mode, err = 0;
/* MT76x8 has no hardware settings between for the MAC */
if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628) &&
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
index 2e55e0088871..6af0dd847169 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
@@ -147,8 +147,12 @@ static void cmd_ent_put(struct mlx5_cmd_work_ent *ent)
if (!refcount_dec_and_test(&ent->refcnt))
return;
- if (ent->idx >= 0)
- cmd_free_index(ent->cmd, ent->idx);
+ if (ent->idx >= 0) {
+ struct mlx5_cmd *cmd = ent->cmd;
+
+ cmd_free_index(cmd, ent->idx);
+ up(ent->page_queue ? &cmd->pages_sem : &cmd->sem);
+ }
cmd_free_ent(ent);
}
@@ -883,25 +887,6 @@ static bool opcode_allowed(struct mlx5_cmd *cmd, u16 opcode)
return cmd->allowed_opcode == opcode;
}
-static int cmd_alloc_index_retry(struct mlx5_cmd *cmd)
-{
- unsigned long alloc_end = jiffies + msecs_to_jiffies(1000);
- int idx;
-
-retry:
- idx = cmd_alloc_index(cmd);
- if (idx < 0 && time_before(jiffies, alloc_end)) {
- /* Index allocation can fail on heavy load of commands. This is a temporary
- * situation as the current command already holds the semaphore, meaning that
- * another command completion is being handled and it is expected to release
- * the entry index soon.
- */
- cpu_relax();
- goto retry;
- }
- return idx;
-}
-
bool mlx5_cmd_is_down(struct mlx5_core_dev *dev)
{
return pci_channel_offline(dev->pdev) ||
@@ -926,7 +911,7 @@ static void cmd_work_handler(struct work_struct *work)
sem = ent->page_queue ? &cmd->pages_sem : &cmd->sem;
down(sem);
if (!ent->page_queue) {
- alloc_ret = cmd_alloc_index_retry(cmd);
+ alloc_ret = cmd_alloc_index(cmd);
if (alloc_ret < 0) {
mlx5_core_err_rl(dev, "failed to allocate command entry\n");
if (ent->callback) {
@@ -1582,8 +1567,6 @@ static void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vec, bool force
vector = vec & 0xffffffff;
for (i = 0; i < (1 << cmd->log_sz); i++) {
if (test_bit(i, &vector)) {
- struct semaphore *sem;
-
ent = cmd->ent_arr[i];
/* if we already completed the command, ignore it */
@@ -1606,10 +1589,6 @@ static void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vec, bool force
dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR)
cmd_ent_put(ent);
- if (ent->page_queue)
- sem = &cmd->pages_sem;
- else
- sem = &cmd->sem;
ent->ts2 = ktime_get_ns();
memcpy(ent->out->first.data, ent->lay->out, sizeof(ent->lay->out));
dump_command(dev, ent, 0);
@@ -1663,7 +1642,6 @@ static void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vec, bool force
*/
complete(&ent->done);
}
- up(sem);
}
}
}
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
index 71e8d66fa150..6692bc8333f7 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
@@ -11,13 +11,13 @@ static int mlx5e_xsk_map_pool(struct mlx5e_priv *priv,
{
struct device *dev = mlx5_core_dma_dev(priv->mdev);
- return xsk_pool_dma_map(pool, dev, 0);
+ return xsk_pool_dma_map(pool, dev, DMA_ATTR_SKIP_CPU_SYNC);
}
static void mlx5e_xsk_unmap_pool(struct mlx5e_priv *priv,
struct xsk_buff_pool *pool)
{
- return xsk_pool_dma_unmap(pool, 0);
+ return xsk_pool_dma_unmap(pool, DMA_ATTR_SKIP_CPU_SYNC);
}
static int mlx5e_xsk_get_pools(struct mlx5e_xsk *xsk)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 2f6c3a5813ed..16e98ac47624 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -5024,9 +5024,13 @@ static void mlx5e_build_nic_netdev(struct net_device *netdev)
}
if (mlx5_vxlan_allowed(mdev->vxlan) || mlx5_geneve_tx_allowed(mdev)) {
- netdev->hw_features |= NETIF_F_GSO_UDP_TUNNEL;
- netdev->hw_enc_features |= NETIF_F_GSO_UDP_TUNNEL;
- netdev->vlan_features |= NETIF_F_GSO_UDP_TUNNEL;
+ netdev->hw_features |= NETIF_F_GSO_UDP_TUNNEL |
+ NETIF_F_GSO_UDP_TUNNEL_CSUM;
+ netdev->hw_enc_features |= NETIF_F_GSO_UDP_TUNNEL |
+ NETIF_F_GSO_UDP_TUNNEL_CSUM;
+ netdev->gso_partial_features = NETIF_F_GSO_UDP_TUNNEL_CSUM;
+ netdev->vlan_features |= NETIF_F_GSO_UDP_TUNNEL |
+ NETIF_F_GSO_UDP_TUNNEL_CSUM;
}
if (mlx5e_tunnel_proto_supported(mdev, IPPROTO_GRE)) {
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
index 117a59341453..d384403d73f6 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
@@ -276,8 +276,8 @@ static inline int mlx5e_page_alloc_pool(struct mlx5e_rq *rq,
if (unlikely(!dma_info->page))
return -ENOMEM;
- dma_info->addr = dma_map_page(rq->pdev, dma_info->page, 0,
- PAGE_SIZE, rq->buff.map_dir);
+ dma_info->addr = dma_map_page_attrs(rq->pdev, dma_info->page, 0, PAGE_SIZE,
+ rq->buff.map_dir, DMA_ATTR_SKIP_CPU_SYNC);
if (unlikely(dma_mapping_error(rq->pdev, dma_info->addr))) {
page_pool_recycle_direct(rq->page_pool, dma_info->page);
dma_info->page = NULL;
@@ -298,7 +298,8 @@ static inline int mlx5e_page_alloc(struct mlx5e_rq *rq,
void mlx5e_page_dma_unmap(struct mlx5e_rq *rq, struct mlx5e_dma_info *dma_info)
{
- dma_unmap_page(rq->pdev, dma_info->addr, PAGE_SIZE, rq->buff.map_dir);
+ dma_unmap_page_attrs(rq->pdev, dma_info->addr, PAGE_SIZE, rq->buff.map_dir,
+ DMA_ATTR_SKIP_CPU_SYNC);
}
void mlx5e_page_release_dynamic(struct mlx5e_rq *rq,
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c b/drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c
index 15c3a9058e72..0f0d250bbc15 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c
@@ -265,10 +265,8 @@ static int mlx5_lag_fib_event(struct notifier_block *nb,
fen_info = container_of(info, struct fib_entry_notifier_info,
info);
fi = fen_info->fi;
- if (fi->nh) {
- NL_SET_ERR_MSG_MOD(info->extack, "IPv4 route with nexthop objects is not supported");
- return notifier_from_errno(-EINVAL);
- }
+ if (fi->nh)
+ return NOTIFY_DONE;
fib_dev = fib_info_nh(fen_info->fi, 0)->fib_nh_dev;
if (fib_dev != ldev->pf[MLX5_LAG_P1].netdev &&
fib_dev != ldev->pf[MLX5_LAG_P2].netdev) {
diff --git a/drivers/net/ethernet/mellanox/mlxsw/cmd.h b/drivers/net/ethernet/mellanox/mlxsw/cmd.h
index 5ffdfb532cb7..91f68fb0b420 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/cmd.h
+++ b/drivers/net/ethernet/mellanox/mlxsw/cmd.h
@@ -905,6 +905,18 @@ static inline int mlxsw_cmd_sw2hw_rdq(struct mlxsw_core *mlxsw_core,
*/
MLXSW_ITEM32(cmd_mbox, sw2hw_dq, cq, 0x00, 24, 8);
+enum mlxsw_cmd_mbox_sw2hw_dq_sdq_lp {
+ MLXSW_CMD_MBOX_SW2HW_DQ_SDQ_LP_WQE,
+ MLXSW_CMD_MBOX_SW2HW_DQ_SDQ_LP_IGNORE_WQE,
+};
+
+/* cmd_mbox_sw2hw_dq_sdq_lp
+ * SDQ local Processing
+ * 0: local processing by wqe.lp
+ * 1: local processing (ignoring wqe.lp)
+ */
+MLXSW_ITEM32(cmd_mbox, sw2hw_dq, sdq_lp, 0x00, 23, 1);
+
/* cmd_mbox_sw2hw_dq_sdq_tclass
* SDQ: CPU Egress TClass
* RDQ: Reserved
diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c
index ffaeda75eec4..dbb16ce25bdf 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/pci.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c
@@ -285,6 +285,7 @@ static int mlxsw_pci_sdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox,
struct mlxsw_pci_queue *q)
{
int tclass;
+ int lp;
int i;
int err;
@@ -292,9 +293,12 @@ static int mlxsw_pci_sdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox,
q->consumer_counter = 0;
tclass = q->num == MLXSW_PCI_SDQ_EMAD_INDEX ? MLXSW_PCI_SDQ_EMAD_TC :
MLXSW_PCI_SDQ_CTL_TC;
+ lp = q->num == MLXSW_PCI_SDQ_EMAD_INDEX ? MLXSW_CMD_MBOX_SW2HW_DQ_SDQ_LP_IGNORE_WQE :
+ MLXSW_CMD_MBOX_SW2HW_DQ_SDQ_LP_WQE;
/* Set CQ of same number of this SDQ. */
mlxsw_cmd_mbox_sw2hw_dq_cq_set(mbox, q->num);
+ mlxsw_cmd_mbox_sw2hw_dq_sdq_lp_set(mbox, lp);
mlxsw_cmd_mbox_sw2hw_dq_sdq_tclass_set(mbox, tclass);
mlxsw_cmd_mbox_sw2hw_dq_log2_dq_sz_set(mbox, 3); /* 8 pages */
for (i = 0; i < MLXSW_PCI_AQ_PAGES; i++) {
@@ -1599,7 +1603,7 @@ static int mlxsw_pci_skb_transmit(void *bus_priv, struct sk_buff *skb,
wqe = elem_info->elem;
mlxsw_pci_wqe_c_set(wqe, 1); /* always report completion */
- mlxsw_pci_wqe_lp_set(wqe, !!tx_info->is_emad);
+ mlxsw_pci_wqe_lp_set(wqe, 0);
mlxsw_pci_wqe_type_set(wqe, MLXSW_PCI_WQE_TYPE_ETHERNET);
err = mlxsw_pci_wqe_frag_map(mlxsw_pci, wqe, 0, skb->data,
@@ -1900,6 +1904,7 @@ int mlxsw_pci_driver_register(struct pci_driver *pci_driver)
{
pci_driver->probe = mlxsw_pci_probe;
pci_driver->remove = mlxsw_pci_remove;
+ pci_driver->shutdown = mlxsw_pci_remove;
return pci_register_driver(pci_driver);
}
EXPORT_SYMBOL(mlxsw_pci_driver_register);
diff --git a/drivers/net/ethernet/mscc/ocelot_flower.c b/drivers/net/ethernet/mscc/ocelot_flower.c
index 365550335292..217e8333de6c 100644
--- a/drivers/net/ethernet/mscc/ocelot_flower.c
+++ b/drivers/net/ethernet/mscc/ocelot_flower.c
@@ -462,13 +462,6 @@ ocelot_flower_parse_key(struct ocelot *ocelot, int port, bool ingress,
return -EOPNOTSUPP;
}
- if (filter->block_id == VCAP_IS1 &&
- !is_zero_ether_addr(match.mask->dst)) {
- NL_SET_ERR_MSG_MOD(extack,
- "Key type S1_NORMAL cannot match on destination MAC");
- return -EOPNOTSUPP;
- }
-
/* The hw support mac matches only for MAC_ETYPE key,
* therefore if other matches(port, tcp flags, etc) are added
* then just bail out
@@ -483,6 +476,14 @@ ocelot_flower_parse_key(struct ocelot *ocelot, int port, bool ingress,
return -EOPNOTSUPP;
flow_rule_match_eth_addrs(rule, &match);
+
+ if (filter->block_id == VCAP_IS1 &&
+ !is_zero_ether_addr(match.mask->dst)) {
+ NL_SET_ERR_MSG_MOD(extack,
+ "Key type S1_NORMAL cannot match on destination MAC");
+ return -EOPNOTSUPP;
+ }
+
filter->key_type = OCELOT_VCAP_KEY_ETYPE;
ether_addr_copy(filter->key.etype.dmac.value,
match.key->dst);
diff --git a/drivers/net/ethernet/rocker/rocker_ofdpa.c b/drivers/net/ethernet/rocker/rocker_ofdpa.c
index 7072b249c8bd..815766620979 100644
--- a/drivers/net/ethernet/rocker/rocker_ofdpa.c
+++ b/drivers/net/ethernet/rocker/rocker_ofdpa.c
@@ -2795,7 +2795,8 @@ static void ofdpa_fib4_abort(struct rocker *rocker)
if (!ofdpa_port)
continue;
nh->fib_nh_flags &= ~RTNH_F_OFFLOAD;
- ofdpa_flow_tbl_del(ofdpa_port, OFDPA_OP_FLAG_REMOVE,
+ ofdpa_flow_tbl_del(ofdpa_port,
+ OFDPA_OP_FLAG_REMOVE | OFDPA_OP_FLAG_NOWAIT,
flow_entry);
}
spin_unlock_irqrestore(&ofdpa->flow_tbl_lock, flags);
diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
index 69c79cc24e6e..0baf85122f5a 100644
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
@@ -41,8 +41,9 @@
#include "xilinx_axienet.h"
/* Descriptors defines for Tx and Rx DMA */
-#define TX_BD_NUM_DEFAULT 64
+#define TX_BD_NUM_DEFAULT 128
#define RX_BD_NUM_DEFAULT 1024
+#define TX_BD_NUM_MIN (MAX_SKB_FRAGS + 1)
#define TX_BD_NUM_MAX 4096
#define RX_BD_NUM_MAX 4096
@@ -496,7 +497,8 @@ static void axienet_setoptions(struct net_device *ndev, u32 options)
static int __axienet_device_reset(struct axienet_local *lp)
{
- u32 timeout;
+ u32 value;
+ int ret;
/* Reset Axi DMA. This would reset Axi Ethernet core as well. The reset
* process of Axi DMA takes a while to complete as all pending
@@ -506,15 +508,23 @@ static int __axienet_device_reset(struct axienet_local *lp)
* they both reset the entire DMA core, so only one needs to be used.
*/
axienet_dma_out32(lp, XAXIDMA_TX_CR_OFFSET, XAXIDMA_CR_RESET_MASK);
- timeout = DELAY_OF_ONE_MILLISEC;
- while (axienet_dma_in32(lp, XAXIDMA_TX_CR_OFFSET) &
- XAXIDMA_CR_RESET_MASK) {
- udelay(1);
- if (--timeout == 0) {
- netdev_err(lp->ndev, "%s: DMA reset timeout!\n",
- __func__);
- return -ETIMEDOUT;
- }
+ ret = read_poll_timeout(axienet_dma_in32, value,
+ !(value & XAXIDMA_CR_RESET_MASK),
+ DELAY_OF_ONE_MILLISEC, 50000, false, lp,
+ XAXIDMA_TX_CR_OFFSET);
+ if (ret) {
+ dev_err(lp->dev, "%s: DMA reset timeout!\n", __func__);
+ return ret;
+ }
+
+ /* Wait for PhyRstCmplt bit to be set, indicating the PHY reset has finished */
+ ret = read_poll_timeout(axienet_ior, value,
+ value & XAE_INT_PHYRSTCMPLT_MASK,
+ DELAY_OF_ONE_MILLISEC, 50000, false, lp,
+ XAE_IS_OFFSET);
+ if (ret) {
+ dev_err(lp->dev, "%s: timeout waiting for PhyRstCmplt\n", __func__);
+ return ret;
}
return 0;
@@ -623,6 +633,8 @@ static int axienet_free_tx_chain(struct net_device *ndev, u32 first_bd,
if (nr_bds == -1 && !(status & XAXIDMA_BD_STS_COMPLETE_MASK))
break;
+ /* Ensure we see complete descriptor update */
+ dma_rmb();
phys = desc_get_phys_addr(lp, cur_p);
dma_unmap_single(ndev->dev.parent, phys,
(cur_p->cntrl & XAXIDMA_BD_CTRL_LENGTH_MASK),
@@ -631,13 +643,15 @@ static int axienet_free_tx_chain(struct net_device *ndev, u32 first_bd,
if (cur_p->skb && (status & XAXIDMA_BD_STS_COMPLETE_MASK))
dev_consume_skb_irq(cur_p->skb);
- cur_p->cntrl = 0;
cur_p->app0 = 0;
cur_p->app1 = 0;
cur_p->app2 = 0;
cur_p->app4 = 0;
- cur_p->status = 0;
cur_p->skb = NULL;
+ /* ensure our transmit path and device don't prematurely see status cleared */
+ wmb();
+ cur_p->cntrl = 0;
+ cur_p->status = 0;
if (sizep)
*sizep += status & XAXIDMA_BD_STS_ACTUAL_LEN_MASK;
@@ -646,6 +660,32 @@ static int axienet_free_tx_chain(struct net_device *ndev, u32 first_bd,
return i;
}
+/**
+ * axienet_check_tx_bd_space - Checks if a BD/group of BDs are currently busy
+ * @lp: Pointer to the axienet_local structure
+ * @num_frag: The number of BDs to check for
+ *
+ * Return: 0, on success
+ * NETDEV_TX_BUSY, if any of the descriptors are not free
+ *
+ * This function is invoked before BDs are allocated and transmission starts.
+ * This function returns 0 if a BD or group of BDs can be allocated for
+ * transmission. If the BD or any of the BDs are not free the function
+ * returns a busy status. This is invoked from axienet_start_xmit.
+ */
+static inline int axienet_check_tx_bd_space(struct axienet_local *lp,
+ int num_frag)
+{
+ struct axidma_bd *cur_p;
+
+ /* Ensure we see all descriptor updates from device or TX IRQ path */
+ rmb();
+ cur_p = &lp->tx_bd_v[(lp->tx_bd_tail + num_frag) % lp->tx_bd_num];
+ if (cur_p->cntrl)
+ return NETDEV_TX_BUSY;
+ return 0;
+}
+
/**
* axienet_start_xmit_done - Invoked once a transmit is completed by the
* Axi DMA Tx channel.
@@ -675,30 +715,8 @@ static void axienet_start_xmit_done(struct net_device *ndev)
/* Matches barrier in axienet_start_xmit */
smp_mb();
- netif_wake_queue(ndev);
-}
-
-/**
- * axienet_check_tx_bd_space - Checks if a BD/group of BDs are currently busy
- * @lp: Pointer to the axienet_local structure
- * @num_frag: The number of BDs to check for
- *
- * Return: 0, on success
- * NETDEV_TX_BUSY, if any of the descriptors are not free
- *
- * This function is invoked before BDs are allocated and transmission starts.
- * This function returns 0 if a BD or group of BDs can be allocated for
- * transmission. If the BD or any of the BDs are not free the function
- * returns a busy status. This is invoked from axienet_start_xmit.
- */
-static inline int axienet_check_tx_bd_space(struct axienet_local *lp,
- int num_frag)
-{
- struct axidma_bd *cur_p;
- cur_p = &lp->tx_bd_v[(lp->tx_bd_tail + num_frag) % lp->tx_bd_num];
- if (cur_p->status & XAXIDMA_BD_STS_ALL_MASK)
- return NETDEV_TX_BUSY;
- return 0;
+ if (!axienet_check_tx_bd_space(lp, MAX_SKB_FRAGS + 1))
+ netif_wake_queue(ndev);
}
/**
@@ -730,20 +748,15 @@ axienet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
num_frag = skb_shinfo(skb)->nr_frags;
cur_p = &lp->tx_bd_v[lp->tx_bd_tail];
- if (axienet_check_tx_bd_space(lp, num_frag)) {
- if (netif_queue_stopped(ndev))
- return NETDEV_TX_BUSY;
-
+ if (axienet_check_tx_bd_space(lp, num_frag + 1)) {
+ /* Should not happen as last start_xmit call should have
+ * checked for sufficient space and queue should only be
+ * woken when sufficient space is available.
+ */
netif_stop_queue(ndev);
-
- /* Matches barrier in axienet_start_xmit_done */
- smp_mb();
-
- /* Space might have just been freed - check again */
- if (axienet_check_tx_bd_space(lp, num_frag))
- return NETDEV_TX_BUSY;
-
- netif_wake_queue(ndev);
+ if (net_ratelimit())
+ netdev_warn(ndev, "TX ring unexpectedly full\n");
+ return NETDEV_TX_BUSY;
}
if (skb->ip_summed == CHECKSUM_PARTIAL) {
@@ -804,6 +817,18 @@ axienet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
if (++lp->tx_bd_tail >= lp->tx_bd_num)
lp->tx_bd_tail = 0;
+ /* Stop queue if next transmit may not have space */
+ if (axienet_check_tx_bd_space(lp, MAX_SKB_FRAGS + 1)) {
+ netif_stop_queue(ndev);
+
+ /* Matches barrier in axienet_start_xmit_done */
+ smp_mb();
+
+ /* Space might have just been freed - check again */
+ if (!axienet_check_tx_bd_space(lp, MAX_SKB_FRAGS + 1))
+ netif_wake_queue(ndev);
+ }
+
return NETDEV_TX_OK;
}
@@ -834,6 +859,8 @@ static void axienet_recv(struct net_device *ndev)
tail_p = lp->rx_bd_p + sizeof(*lp->rx_bd_v) * lp->rx_bd_ci;
+ /* Ensure we see complete descriptor update */
+ dma_rmb();
phys = desc_get_phys_addr(lp, cur_p);
dma_unmap_single(ndev->dev.parent, phys, lp->max_frm_size,
DMA_FROM_DEVICE);
@@ -1355,7 +1382,8 @@ static int axienet_ethtools_set_ringparam(struct net_device *ndev,
if (ering->rx_pending > RX_BD_NUM_MAX ||
ering->rx_mini_pending ||
ering->rx_jumbo_pending ||
- ering->rx_pending > TX_BD_NUM_MAX)
+ ering->tx_pending < TX_BD_NUM_MIN ||
+ ering->tx_pending > TX_BD_NUM_MAX)
return -EINVAL;
if (netif_running(ndev))
@@ -2015,6 +2043,11 @@ static int axienet_probe(struct platform_device *pdev)
lp->coalesce_count_rx = XAXIDMA_DFT_RX_THRESHOLD;
lp->coalesce_count_tx = XAXIDMA_DFT_TX_THRESHOLD;
+ /* Reset core now that clocks are enabled, prior to accessing MDIO */
+ ret = __axienet_device_reset(lp);
+ if (ret)
+ goto cleanup_clk;
+
lp->phy_node = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
if (lp->phy_node) {
ret = axienet_mdio_setup(lp);
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index 91616182c311..4dda2ab19c26 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -1090,6 +1090,12 @@ static int m88e1118_config_init(struct phy_device *phydev)
if (err < 0)
return err;
+ if (phy_interface_is_rgmii(phydev)) {
+ err = m88e1121_config_aneg_rgmii_delays(phydev);
+ if (err < 0)
+ return err;
+ }
+
/* Adjust LED Control */
if (phydev->dev_flags & MARVELL_PHY_M1118_DNS323_LEDS)
err = phy_write(phydev, 0x10, 0x1100);
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index 2645ca35103c..c416ab1d2b00 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -588,7 +588,7 @@ int __mdiobus_register(struct mii_bus *bus, struct module *owner)
mdiobus_setup_mdiodev_from_board_info(bus, mdiobus_create_device);
bus->state = MDIOBUS_REGISTERED;
- pr_info("%s: probed\n", bus->name);
+ dev_dbg(&bus->dev, "probed\n");
return 0;
error:
diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c
index 8d333d3084ed..cccb83dae673 100644
--- a/drivers/net/phy/phy-core.c
+++ b/drivers/net/phy/phy-core.c
@@ -161,11 +161,11 @@ static const struct phy_setting settings[] = {
PHY_SETTING( 2500, FULL, 2500baseT_Full ),
PHY_SETTING( 2500, FULL, 2500baseX_Full ),
/* 1G */
- PHY_SETTING( 1000, FULL, 1000baseKX_Full ),
PHY_SETTING( 1000, FULL, 1000baseT_Full ),
PHY_SETTING( 1000, HALF, 1000baseT_Half ),
PHY_SETTING( 1000, FULL, 1000baseT1_Full ),
PHY_SETTING( 1000, FULL, 1000baseX_Full ),
+ PHY_SETTING( 1000, FULL, 1000baseKX_Full ),
/* 100M */
PHY_SETTING( 100, FULL, 100baseT_Full ),
PHY_SETTING( 100, FULL, 100baseT1_Full ),
diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c
index 32c34c728c7a..efffa65f8214 100644
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
@@ -1589,17 +1589,20 @@ static int sfp_sm_probe_for_phy(struct sfp *sfp)
static int sfp_module_parse_power(struct sfp *sfp)
{
u32 power_mW = 1000;
+ bool supports_a2;
if (sfp->id.ext.options & cpu_to_be16(SFP_OPTIONS_POWER_DECL))
power_mW = 1500;
if (sfp->id.ext.options & cpu_to_be16(SFP_OPTIONS_HIGH_POWER_LEVEL))
power_mW = 2000;
+ supports_a2 = sfp->id.ext.sff8472_compliance !=
+ SFP_SFF8472_COMPLIANCE_NONE ||
+ sfp->id.ext.diagmon & SFP_DIAGMON_DDM;
+
if (power_mW > sfp->max_power_mW) {
/* Module power specification exceeds the allowed maximum. */
- if (sfp->id.ext.sff8472_compliance ==
- SFP_SFF8472_COMPLIANCE_NONE &&
- !(sfp->id.ext.diagmon & SFP_DIAGMON_DDM)) {
+ if (!supports_a2) {
/* The module appears not to implement bus address
* 0xa2, so assume that the module powers up in the
* indicated mode.
@@ -1616,11 +1619,25 @@ static int sfp_module_parse_power(struct sfp *sfp)
}
}
+ if (power_mW <= 1000) {
+ /* Modules below 1W do not require a power change sequence */
+ sfp->module_power_mW = power_mW;
+ return 0;
+ }
+
+ if (!supports_a2) {
+ /* The module power level is below the host maximum and the
+ * module appears not to implement bus address 0xa2, so assume
+ * that the module powers up in the indicated mode.
+ */
+ return 0;
+ }
+
/* If the module requires a higher power mode, but also requires
* an address change sequence, warn the user that the module may
* not be functional.
*/
- if (sfp->id.ext.diagmon & SFP_DIAGMON_ADDRMODE && power_mW > 1000) {
+ if (sfp->id.ext.diagmon & SFP_DIAGMON_ADDRMODE) {
dev_warn(sfp->dev,
"Address Change Sequence not supported but module requires %u.%uW, module may not be functional\n",
power_mW / 1000, (power_mW / 100) % 10);
diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
index 33b2e0fb68bb..2b9815ec4a62 100644
--- a/drivers/net/ppp/ppp_generic.c
+++ b/drivers/net/ppp/ppp_generic.c
@@ -69,6 +69,8 @@
#define MPHDRLEN 6 /* multilink protocol header length */
#define MPHDRLEN_SSN 4 /* ditto with short sequence numbers */
+#define PPP_PROTO_LEN 2
+
/*
* An instance of /dev/ppp can be associated with either a ppp
* interface unit or a ppp channel. In both cases, file->private_data
@@ -496,6 +498,9 @@ static ssize_t ppp_write(struct file *file, const char __user *buf,
if (!pf)
return -ENXIO;
+ /* All PPP packets should start with the 2-byte protocol */
+ if (count < PPP_PROTO_LEN)
+ return -EINVAL;
ret = -ENOMEM;
skb = alloc_skb(count + pf->hdrlen, GFP_KERNEL);
if (!skb)
@@ -1632,7 +1637,7 @@ ppp_send_frame(struct ppp *ppp, struct sk_buff *skb)
}
++ppp->stats64.tx_packets;
- ppp->stats64.tx_bytes += skb->len - 2;
+ ppp->stats64.tx_bytes += skb->len - PPP_PROTO_LEN;
switch (proto) {
case PPP_IP:
diff --git a/drivers/net/usb/mcs7830.c b/drivers/net/usb/mcs7830.c
index 09bfa6a4dfbc..7e40e2e2f372 100644
--- a/drivers/net/usb/mcs7830.c
+++ b/drivers/net/usb/mcs7830.c
@@ -108,8 +108,16 @@ static const char driver_name[] = "MOSCHIP usb-ethernet driver";
static int mcs7830_get_reg(struct usbnet *dev, u16 index, u16 size, void *data)
{
- return usbnet_read_cmd(dev, MCS7830_RD_BREQ, MCS7830_RD_BMREQ,
- 0x0000, index, data, size);
+ int ret;
+
+ ret = usbnet_read_cmd(dev, MCS7830_RD_BREQ, MCS7830_RD_BMREQ,
+ 0x0000, index, data, size);
+ if (ret < 0)
+ return ret;
+ else if (ret < size)
+ return -ENODATA;
+
+ return ret;
}
static int mcs7830_set_reg(struct usbnet *dev, u16 index, u16 size, const void *data)
diff --git a/drivers/net/wireless/ath/ar5523/ar5523.c b/drivers/net/wireless/ath/ar5523/ar5523.c
index 49cc4b7ed516..1baec4b412c8 100644
--- a/drivers/net/wireless/ath/ar5523/ar5523.c
+++ b/drivers/net/wireless/ath/ar5523/ar5523.c
@@ -153,6 +153,10 @@ static void ar5523_cmd_rx_cb(struct urb *urb)
ar5523_err(ar, "Invalid reply to WDCMSG_TARGET_START");
return;
}
+ if (!cmd->odata) {
+ ar5523_err(ar, "Unexpected WDCMSG_TARGET_START reply");
+ return;
+ }
memcpy(cmd->odata, hdr + 1, sizeof(u32));
cmd->olen = sizeof(u32);
cmd->res = 0;
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
index d73ad60b571c..d0967bb1f387 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -89,6 +89,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = true,
},
{
@@ -123,6 +124,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = true,
},
{
@@ -158,6 +160,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
},
{
@@ -187,6 +190,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.num_wds_entries = 0x20,
.uart_pin_workaround = true,
.tx_stats_over_pktlog = false,
+ .credit_size_workaround = false,
.bmi_large_size_download = true,
.supports_peer_stats_info = true,
},
@@ -222,6 +226,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
},
{
@@ -256,6 +261,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
},
{
@@ -290,6 +296,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
},
{
@@ -327,6 +334,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = true,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
.supports_peer_stats_info = true,
},
@@ -368,6 +376,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
},
{
@@ -415,6 +424,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
},
{
@@ -459,6 +469,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
},
{
@@ -493,6 +504,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
},
{
@@ -529,6 +541,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = true,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
},
{
@@ -557,6 +570,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.ast_skid_limit = 0x10,
.num_wds_entries = 0x20,
.uart_pin_workaround = true,
+ .credit_size_workaround = true,
},
{
.id = QCA4019_HW_1_0_DEV_VERSION,
@@ -597,6 +611,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = false,
.hw_filter_reset_required = true,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
},
{
@@ -624,6 +639,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
.rri_on_ddr = true,
.hw_filter_reset_required = false,
.fw_diag_ce_download = false,
+ .credit_size_workaround = false,
.tx_stats_over_pktlog = false,
},
};
@@ -697,6 +713,7 @@ static void ath10k_send_suspend_complete(struct ath10k *ar)
static int ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode)
{
+ bool mtu_workaround = ar->hw_params.credit_size_workaround;
int ret;
u32 param = 0;
@@ -714,7 +731,7 @@ static int ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode)
param |= HI_ACS_FLAGS_SDIO_REDUCE_TX_COMPL_SET;
- if (mode == ATH10K_FIRMWARE_MODE_NORMAL)
+ if (mode == ATH10K_FIRMWARE_MODE_NORMAL && !mtu_workaround)
param |= HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE;
else
param &= ~HI_ACS_FLAGS_ALT_DATA_CREDIT_SIZE;
diff --git a/drivers/net/wireless/ath/ath10k/htt_tx.c b/drivers/net/wireless/ath/ath10k/htt_tx.c
index 1fc0a312ab58..5f67da47036c 100644
--- a/drivers/net/wireless/ath/ath10k/htt_tx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_tx.c
@@ -147,6 +147,9 @@ void ath10k_htt_tx_dec_pending(struct ath10k_htt *htt)
htt->num_pending_tx--;
if (htt->num_pending_tx == htt->max_num_pending_tx - 1)
ath10k_mac_tx_unlock(htt->ar, ATH10K_TX_PAUSE_Q_FULL);
+
+ if (htt->num_pending_tx == 0)
+ wake_up(&htt->empty_tx_wq);
}
int ath10k_htt_tx_inc_pending(struct ath10k_htt *htt)
diff --git a/drivers/net/wireless/ath/ath10k/hw.h b/drivers/net/wireless/ath/ath10k/hw.h
index c6ded21f5ed6..d3ef83ad577d 100644
--- a/drivers/net/wireless/ath/ath10k/hw.h
+++ b/drivers/net/wireless/ath/ath10k/hw.h
@@ -618,6 +618,9 @@ struct ath10k_hw_params {
*/
bool uart_pin_workaround;
+ /* Workaround for the credit size calculation */
+ bool credit_size_workaround;
+
/* tx stats support over pktlog */
bool tx_stats_over_pktlog;
diff --git a/drivers/net/wireless/ath/ath10k/txrx.c b/drivers/net/wireless/ath/ath10k/txrx.c
index aefe1f7f906c..f51f1cf2c6a4 100644
--- a/drivers/net/wireless/ath/ath10k/txrx.c
+++ b/drivers/net/wireless/ath/ath10k/txrx.c
@@ -82,8 +82,6 @@ int ath10k_txrx_tx_unref(struct ath10k_htt *htt,
flags = skb_cb->flags;
ath10k_htt_tx_free_msdu_id(htt, tx_done->msdu_id);
ath10k_htt_tx_dec_pending(htt);
- if (htt->num_pending_tx == 0)
- wake_up(&htt->empty_tx_wq);
spin_unlock_bh(&htt->tx_lock);
rcu_read_lock();
diff --git a/drivers/net/wireless/ath/ath11k/ahb.c b/drivers/net/wireless/ath/ath11k/ahb.c
index 430723c64adc..9ff6e6853314 100644
--- a/drivers/net/wireless/ath/ath11k/ahb.c
+++ b/drivers/net/wireless/ath/ath11k/ahb.c
@@ -175,8 +175,11 @@ static void __ath11k_ahb_ext_irq_disable(struct ath11k_base *ab)
ath11k_ahb_ext_grp_disable(irq_grp);
- napi_synchronize(&irq_grp->napi);
- napi_disable(&irq_grp->napi);
+ if (irq_grp->napi_enabled) {
+ napi_synchronize(&irq_grp->napi);
+ napi_disable(&irq_grp->napi);
+ irq_grp->napi_enabled = false;
+ }
}
}
@@ -206,13 +209,13 @@ static void ath11k_ahb_clearbit32(struct ath11k_base *ab, u8 bit, u32 offset)
static void ath11k_ahb_ce_irq_enable(struct ath11k_base *ab, u16 ce_id)
{
- const struct ce_pipe_config *ce_config;
+ const struct ce_attr *ce_attr;
- ce_config = &ab->hw_params.target_ce_config[ce_id];
- if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_OUT)
+ ce_attr = &ab->hw_params.host_ce_config[ce_id];
+ if (ce_attr->src_nentries)
ath11k_ahb_setbit32(ab, ce_id, CE_HOST_IE_ADDRESS);
- if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_IN) {
+ if (ce_attr->dest_nentries) {
ath11k_ahb_setbit32(ab, ce_id, CE_HOST_IE_2_ADDRESS);
ath11k_ahb_setbit32(ab, ce_id + CE_HOST_IE_3_SHIFT,
CE_HOST_IE_3_ADDRESS);
@@ -221,13 +224,13 @@ static void ath11k_ahb_ce_irq_enable(struct ath11k_base *ab, u16 ce_id)
static void ath11k_ahb_ce_irq_disable(struct ath11k_base *ab, u16 ce_id)
{
- const struct ce_pipe_config *ce_config;
+ const struct ce_attr *ce_attr;
- ce_config = &ab->hw_params.target_ce_config[ce_id];
- if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_OUT)
+ ce_attr = &ab->hw_params.host_ce_config[ce_id];
+ if (ce_attr->src_nentries)
ath11k_ahb_clearbit32(ab, ce_id, CE_HOST_IE_ADDRESS);
- if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_IN) {
+ if (ce_attr->dest_nentries) {
ath11k_ahb_clearbit32(ab, ce_id, CE_HOST_IE_2_ADDRESS);
ath11k_ahb_clearbit32(ab, ce_id + CE_HOST_IE_3_SHIFT,
CE_HOST_IE_3_ADDRESS);
@@ -300,7 +303,10 @@ static void ath11k_ahb_ext_irq_enable(struct ath11k_base *ab)
for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) {
struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i];
- napi_enable(&irq_grp->napi);
+ if (!irq_grp->napi_enabled) {
+ napi_enable(&irq_grp->napi);
+ irq_grp->napi_enabled = true;
+ }
ath11k_ahb_ext_grp_enable(irq_grp);
}
}
diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
index c8e36251068c..d2f2898d17b4 100644
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -124,6 +124,7 @@ struct ath11k_ext_irq_grp {
u32 num_irq;
u32 grp_id;
u64 timestamp;
+ bool napi_enabled;
struct napi_struct napi;
struct net_device napi_ndev;
};
@@ -687,7 +688,6 @@ struct ath11k_base {
u32 wlan_init_status;
int irq_num[ATH11K_IRQ_NUM_MAX];
struct ath11k_ext_irq_grp ext_irq_grp[ATH11K_EXT_IRQ_GRP_NUM_MAX];
- struct napi_struct *napi;
struct ath11k_targ_cap target_caps;
u32 ext_service_bitmap[WMI_SERVICE_EXT_BM_SIZE];
bool pdevs_macaddr_valid;
diff --git a/drivers/net/wireless/ath/ath11k/dp.h b/drivers/net/wireless/ath/ath11k/dp.h
index ee8db812589b..c4972233149f 100644
--- a/drivers/net/wireless/ath/ath11k/dp.h
+++ b/drivers/net/wireless/ath/ath11k/dp.h
@@ -514,7 +514,8 @@ struct htt_ppdu_stats_cfg_cmd {
} __packed;
#define HTT_PPDU_STATS_CFG_MSG_TYPE GENMASK(7, 0)
-#define HTT_PPDU_STATS_CFG_PDEV_ID GENMASK(15, 8)
+#define HTT_PPDU_STATS_CFG_SOC_STATS BIT(8)
+#define HTT_PPDU_STATS_CFG_PDEV_ID GENMASK(15, 9)
#define HTT_PPDU_STATS_CFG_TLV_TYPE_BITMASK GENMASK(31, 16)
enum htt_ppdu_stats_tag_type {
diff --git a/drivers/net/wireless/ath/ath11k/dp_tx.c b/drivers/net/wireless/ath/ath11k/dp_tx.c
index 21dfd08d3deb..092eee735da2 100644
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -894,7 +894,7 @@ int ath11k_dp_tx_htt_h2t_ppdu_stats_req(struct ath11k *ar, u32 mask)
cmd->msg = FIELD_PREP(HTT_PPDU_STATS_CFG_MSG_TYPE,
HTT_H2T_MSG_TYPE_PPDU_STATS_CFG);
- pdev_mask = 1 << (i + 1);
+ pdev_mask = 1 << (ar->pdev_idx + i);
cmd->msg |= FIELD_PREP(HTT_PPDU_STATS_CFG_PDEV_ID, pdev_mask);
cmd->msg |= FIELD_PREP(HTT_PPDU_STATS_CFG_TLV_TYPE_BITMASK, mask);
diff --git a/drivers/net/wireless/ath/ath11k/hal.c b/drivers/net/wireless/ath/ath11k/hal.c
index 9904c0eb7587..f3b9108ab6bd 100644
--- a/drivers/net/wireless/ath/ath11k/hal.c
+++ b/drivers/net/wireless/ath/ath11k/hal.c
@@ -991,6 +991,7 @@ int ath11k_hal_srng_setup(struct ath11k_base *ab, enum hal_ring_type type,
srng->msi_data = params->msi_data;
srng->initialized = 1;
spin_lock_init(&srng->lock);
+ lockdep_set_class(&srng->lock, hal->srng_key + ring_id);
for (i = 0; i < HAL_SRNG_NUM_REG_GRP; i++) {
srng->hwreg_base[i] = srng_config->reg_start[i] +
@@ -1237,6 +1238,24 @@ static int ath11k_hal_srng_create_config(struct ath11k_base *ab)
return 0;
}
+static void ath11k_hal_register_srng_key(struct ath11k_base *ab)
+{
+ struct ath11k_hal *hal = &ab->hal;
+ u32 ring_id;
+
+ for (ring_id = 0; ring_id < HAL_SRNG_RING_ID_MAX; ring_id++)
+ lockdep_register_key(hal->srng_key + ring_id);
+}
+
+static void ath11k_hal_unregister_srng_key(struct ath11k_base *ab)
+{
+ struct ath11k_hal *hal = &ab->hal;
+ u32 ring_id;
+
+ for (ring_id = 0; ring_id < HAL_SRNG_RING_ID_MAX; ring_id++)
+ lockdep_unregister_key(hal->srng_key + ring_id);
+}
+
int ath11k_hal_srng_init(struct ath11k_base *ab)
{
struct ath11k_hal *hal = &ab->hal;
@@ -1256,6 +1275,8 @@ int ath11k_hal_srng_init(struct ath11k_base *ab)
if (ret)
goto err_free_cont_rdp;
+ ath11k_hal_register_srng_key(ab);
+
return 0;
err_free_cont_rdp:
@@ -1270,6 +1291,7 @@ void ath11k_hal_srng_deinit(struct ath11k_base *ab)
{
struct ath11k_hal *hal = &ab->hal;
+ ath11k_hal_unregister_srng_key(ab);
ath11k_hal_free_cont_rdp(ab);
ath11k_hal_free_cont_wrp(ab);
kfree(hal->srng_config);
diff --git a/drivers/net/wireless/ath/ath11k/hal.h b/drivers/net/wireless/ath/ath11k/hal.h
index 1f1b29cd0aa3..5fbfded8d546 100644
--- a/drivers/net/wireless/ath/ath11k/hal.h
+++ b/drivers/net/wireless/ath/ath11k/hal.h
@@ -888,6 +888,8 @@ struct ath11k_hal {
/* shadow register configuration */
u32 shadow_reg_addr[HAL_SHADOW_NUM_REGS];
int num_shadow_reg_configured;
+
+ struct lock_class_key srng_key[HAL_SRNG_RING_ID_MAX];
};
u32 ath11k_hal_reo_qdesc_size(u32 ba_window_size, u8 tid);
diff --git a/drivers/net/wireless/ath/ath11k/hw.c b/drivers/net/wireless/ath/ath11k/hw.c
index 66331da35012..f6282e870292 100644
--- a/drivers/net/wireless/ath/ath11k/hw.c
+++ b/drivers/net/wireless/ath/ath11k/hw.c
@@ -246,8 +246,6 @@ const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_ipq8074 = {
const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_qca6390 = {
.tx = {
ATH11K_TX_RING_MASK_0,
- ATH11K_TX_RING_MASK_1,
- ATH11K_TX_RING_MASK_2,
},
.rx_mon_status = {
0, 0, 0, 0,
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 0924bc8b3520..cc9122f42024 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: BSD-3-Clause-Clear
/*
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <net/mac80211.h>
@@ -792,11 +793,15 @@ static int ath11k_mac_setup_bcn_tmpl(struct ath11k_vif *arvif)
if (cfg80211_find_ie(WLAN_EID_RSN, ies, (skb_tail_pointer(bcn) - ies)))
arvif->rsnie_present = true;
+ else
+ arvif->rsnie_present = false;
if (cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT,
WLAN_OUI_TYPE_MICROSOFT_WPA,
ies, (skb_tail_pointer(bcn) - ies)))
arvif->wpaie_present = true;
+ else
+ arvif->wpaie_present = false;
ret = ath11k_wmi_bcn_tmpl(ar, arvif->vdev_id, &offs, bcn);
@@ -2316,9 +2321,12 @@ static int ath11k_mac_op_hw_scan(struct ieee80211_hw *hw,
arg.scan_id = ATH11K_SCAN_ID;
if (req->ie_len) {
+ arg.extraie.ptr = kmemdup(req->ie, req->ie_len, GFP_KERNEL);
+ if (!arg.extraie.ptr) {
+ ret = -ENOMEM;
+ goto exit;
+ }
arg.extraie.len = req->ie_len;
- arg.extraie.ptr = kzalloc(req->ie_len, GFP_KERNEL);
- memcpy(arg.extraie.ptr, req->ie, req->ie_len);
}
if (req->n_ssids) {
@@ -2395,9 +2403,7 @@ static int ath11k_install_key(struct ath11k_vif *arvif,
return 0;
if (cmd == DISABLE_KEY) {
- /* TODO: Check if FW expects value other than NONE for del */
- /* arg.key_cipher = WMI_CIPHER_NONE; */
- arg.key_len = 0;
+ arg.key_cipher = WMI_CIPHER_NONE;
arg.key_data = NULL;
goto install;
}
@@ -2529,7 +2535,7 @@ static int ath11k_mac_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
/* flush the fragments cache during key (re)install to
* ensure all frags in the new frag list belong to the same key.
*/
- if (peer && cmd == SET_KEY)
+ if (peer && sta && cmd == SET_KEY)
ath11k_peer_frags_flush(ar, peer);
spin_unlock_bh(&ab->base_lock);
@@ -3878,23 +3884,32 @@ static int __ath11k_set_antenna(struct ath11k *ar, u32 tx_ant, u32 rx_ant)
return 0;
}
-int ath11k_mac_tx_mgmt_pending_free(int buf_id, void *skb, void *ctx)
+static void ath11k_mac_tx_mgmt_free(struct ath11k *ar, int buf_id)
{
- struct sk_buff *msdu = skb;
+ struct sk_buff *msdu;
struct ieee80211_tx_info *info;
- struct ath11k *ar = ctx;
- struct ath11k_base *ab = ar->ab;
spin_lock_bh(&ar->txmgmt_idr_lock);
- idr_remove(&ar->txmgmt_idr, buf_id);
+ msdu = idr_remove(&ar->txmgmt_idr, buf_id);
spin_unlock_bh(&ar->txmgmt_idr_lock);
- dma_unmap_single(ab->dev, ATH11K_SKB_CB(msdu)->paddr, msdu->len,
+
+ if (!msdu)
+ return;
+
+ dma_unmap_single(ar->ab->dev, ATH11K_SKB_CB(msdu)->paddr, msdu->len,
DMA_TO_DEVICE);
info = IEEE80211_SKB_CB(msdu);
memset(&info->status, 0, sizeof(info->status));
ieee80211_free_txskb(ar->hw, msdu);
+}
+
+int ath11k_mac_tx_mgmt_pending_free(int buf_id, void *skb, void *ctx)
+{
+ struct ath11k *ar = ctx;
+
+ ath11k_mac_tx_mgmt_free(ar, buf_id);
return 0;
}
@@ -3903,17 +3918,10 @@ static int ath11k_mac_vif_txmgmt_idr_remove(int buf_id, void *skb, void *ctx)
{
struct ieee80211_vif *vif = ctx;
struct ath11k_skb_cb *skb_cb = ATH11K_SKB_CB((struct sk_buff *)skb);
- struct sk_buff *msdu = skb;
struct ath11k *ar = skb_cb->ar;
- struct ath11k_base *ab = ar->ab;
- if (skb_cb->vif == vif) {
- spin_lock_bh(&ar->txmgmt_idr_lock);
- idr_remove(&ar->txmgmt_idr, buf_id);
- spin_unlock_bh(&ar->txmgmt_idr_lock);
- dma_unmap_single(ab->dev, skb_cb->paddr, msdu->len,
- DMA_TO_DEVICE);
- }
+ if (skb_cb->vif == vif)
+ ath11k_mac_tx_mgmt_free(ar, buf_id);
return 0;
}
@@ -3928,6 +3936,8 @@ static int ath11k_mac_mgmt_tx_wmi(struct ath11k *ar, struct ath11k_vif *arvif,
int buf_id;
int ret;
+ ATH11K_SKB_CB(skb)->ar = ar;
+
spin_lock_bh(&ar->txmgmt_idr_lock);
buf_id = idr_alloc(&ar->txmgmt_idr, skb, 0,
ATH11K_TX_MGMT_NUM_PENDING_MAX, GFP_ATOMIC);
diff --git a/drivers/net/wireless/ath/ath11k/pci.c b/drivers/net/wireless/ath/ath11k/pci.c
index d7eb6b7160bb..105e344240c1 100644
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -416,8 +416,11 @@ static void __ath11k_pci_ext_irq_disable(struct ath11k_base *sc)
ath11k_pci_ext_grp_disable(irq_grp);
- napi_synchronize(&irq_grp->napi);
- napi_disable(&irq_grp->napi);
+ if (irq_grp->napi_enabled) {
+ napi_synchronize(&irq_grp->napi);
+ napi_disable(&irq_grp->napi);
+ irq_grp->napi_enabled = false;
+ }
}
}
@@ -436,7 +439,10 @@ static void ath11k_pci_ext_irq_enable(struct ath11k_base *ab)
for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) {
struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i];
- napi_enable(&irq_grp->napi);
+ if (!irq_grp->napi_enabled) {
+ napi_enable(&irq_grp->napi);
+ irq_grp->napi_enabled = true;
+ }
ath11k_pci_ext_grp_enable(irq_grp);
}
}
diff --git a/drivers/net/wireless/ath/ath11k/reg.c b/drivers/net/wireless/ath/ath11k/reg.c
index b8f9f3440887..e34311516b95 100644
--- a/drivers/net/wireless/ath/ath11k/reg.c
+++ b/drivers/net/wireless/ath/ath11k/reg.c
@@ -456,6 +456,9 @@ ath11k_reg_adjust_bw(u16 start_freq, u16 end_freq, u16 max_bw)
{
u16 bw;
+ if (end_freq <= start_freq)
+ return 0;
+
bw = end_freq - start_freq;
bw = min_t(u16, bw, max_bw);
@@ -463,8 +466,10 @@ ath11k_reg_adjust_bw(u16 start_freq, u16 end_freq, u16 max_bw)
bw = 80;
else if (bw >= 40 && bw < 80)
bw = 40;
- else if (bw < 40)
+ else if (bw >= 20 && bw < 40)
bw = 20;
+ else
+ bw = 0;
return bw;
}
@@ -488,73 +493,77 @@ ath11k_reg_update_weather_radar_band(struct ath11k_base *ab,
struct cur_reg_rule *reg_rule,
u8 *rule_idx, u32 flags, u16 max_bw)
{
+ u32 start_freq;
u32 end_freq;
u16 bw;
u8 i;
i = *rule_idx;
+ /* there might be situations when even the input rule must be dropped */
+ i--;
+
+ /* frequencies below weather radar */
bw = ath11k_reg_adjust_bw(reg_rule->start_freq,
ETSI_WEATHER_RADAR_BAND_LOW, max_bw);
+ if (bw > 0) {
+ i++;
- ath11k_reg_update_rule(regd->reg_rules + i, reg_rule->start_freq,
- ETSI_WEATHER_RADAR_BAND_LOW, bw,
- reg_rule->ant_gain, reg_rule->reg_power,
- flags);
+ ath11k_reg_update_rule(regd->reg_rules + i,
+ reg_rule->start_freq,
+ ETSI_WEATHER_RADAR_BAND_LOW, bw,
+ reg_rule->ant_gain, reg_rule->reg_power,
+ flags);
- ath11k_dbg(ab, ATH11K_DBG_REG,
- "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
- i + 1, reg_rule->start_freq, ETSI_WEATHER_RADAR_BAND_LOW,
- bw, reg_rule->ant_gain, reg_rule->reg_power,
- regd->reg_rules[i].dfs_cac_ms,
- flags);
-
- if (reg_rule->end_freq > ETSI_WEATHER_RADAR_BAND_HIGH)
- end_freq = ETSI_WEATHER_RADAR_BAND_HIGH;
- else
- end_freq = reg_rule->end_freq;
+ ath11k_dbg(ab, ATH11K_DBG_REG,
+ "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
+ i + 1, reg_rule->start_freq,
+ ETSI_WEATHER_RADAR_BAND_LOW, bw, reg_rule->ant_gain,
+ reg_rule->reg_power, regd->reg_rules[i].dfs_cac_ms,
+ flags);
+ }
- bw = ath11k_reg_adjust_bw(ETSI_WEATHER_RADAR_BAND_LOW, end_freq,
- max_bw);
+ /* weather radar frequencies */
+ start_freq = max_t(u32, reg_rule->start_freq,
+ ETSI_WEATHER_RADAR_BAND_LOW);
+ end_freq = min_t(u32, reg_rule->end_freq, ETSI_WEATHER_RADAR_BAND_HIGH);
- i++;
+ bw = ath11k_reg_adjust_bw(start_freq, end_freq, max_bw);
+ if (bw > 0) {
+ i++;
- ath11k_reg_update_rule(regd->reg_rules + i,
- ETSI_WEATHER_RADAR_BAND_LOW, end_freq, bw,
- reg_rule->ant_gain, reg_rule->reg_power,
- flags);
+ ath11k_reg_update_rule(regd->reg_rules + i, start_freq,
+ end_freq, bw, reg_rule->ant_gain,
+ reg_rule->reg_power, flags);
- regd->reg_rules[i].dfs_cac_ms = ETSI_WEATHER_RADAR_BAND_CAC_TIMEOUT;
+ regd->reg_rules[i].dfs_cac_ms = ETSI_WEATHER_RADAR_BAND_CAC_TIMEOUT;
- ath11k_dbg(ab, ATH11K_DBG_REG,
- "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
- i + 1, ETSI_WEATHER_RADAR_BAND_LOW, end_freq,
- bw, reg_rule->ant_gain, reg_rule->reg_power,
- regd->reg_rules[i].dfs_cac_ms,
- flags);
-
- if (end_freq == reg_rule->end_freq) {
- regd->n_reg_rules--;
- *rule_idx = i;
- return;
+ ath11k_dbg(ab, ATH11K_DBG_REG,
+ "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
+ i + 1, start_freq, end_freq, bw,
+ reg_rule->ant_gain, reg_rule->reg_power,
+ regd->reg_rules[i].dfs_cac_ms, flags);
}
+ /* frequencies above weather radar */
bw = ath11k_reg_adjust_bw(ETSI_WEATHER_RADAR_BAND_HIGH,
reg_rule->end_freq, max_bw);
+ if (bw > 0) {
+ i++;
- i++;
-
- ath11k_reg_update_rule(regd->reg_rules + i, ETSI_WEATHER_RADAR_BAND_HIGH,
- reg_rule->end_freq, bw,
- reg_rule->ant_gain, reg_rule->reg_power,
- flags);
+ ath11k_reg_update_rule(regd->reg_rules + i,
+ ETSI_WEATHER_RADAR_BAND_HIGH,
+ reg_rule->end_freq, bw,
+ reg_rule->ant_gain, reg_rule->reg_power,
+ flags);
- ath11k_dbg(ab, ATH11K_DBG_REG,
- "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
- i + 1, ETSI_WEATHER_RADAR_BAND_HIGH, reg_rule->end_freq,
- bw, reg_rule->ant_gain, reg_rule->reg_power,
- regd->reg_rules[i].dfs_cac_ms,
- flags);
+ ath11k_dbg(ab, ATH11K_DBG_REG,
+ "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d)\n",
+ i + 1, ETSI_WEATHER_RADAR_BAND_HIGH,
+ reg_rule->end_freq, bw, reg_rule->ant_gain,
+ reg_rule->reg_power, regd->reg_rules[i].dfs_cac_ms,
+ flags);
+ }
*rule_idx = i;
}
diff --git a/drivers/net/wireless/ath/ath11k/wmi.c b/drivers/net/wireless/ath/ath11k/wmi.c
index e84127165d85..53846dc9a5c5 100644
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -1665,7 +1665,8 @@ int ath11k_wmi_vdev_install_key(struct ath11k *ar,
tlv = (struct wmi_tlv *)(skb->data + sizeof(*cmd));
tlv->header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_ARRAY_BYTE) |
FIELD_PREP(WMI_TLV_LEN, key_len_aligned);
- memcpy(tlv->value, (u8 *)arg->key_data, key_len_aligned);
+ if (arg->key_data)
+ memcpy(tlv->value, (u8 *)arg->key_data, key_len_aligned);
ret = ath11k_wmi_cmd_send(wmi, skb, WMI_VDEV_INSTALL_KEY_CMDID);
if (ret) {
@@ -5421,7 +5422,7 @@ static int ath11k_reg_chan_list_event(struct ath11k_base *ab, struct sk_buff *sk
ar = ab->pdevs[pdev_idx].ar;
kfree(ab->new_regd[pdev_idx]);
ab->new_regd[pdev_idx] = regd;
- ieee80211_queue_work(ar->hw, &ar->regd_update_work);
+ queue_work(ab->workqueue, &ar->regd_update_work);
} else {
/* This regd would be applied during mac registration and is
* held constant throughout for regd intersection purpose
diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
index 860da13bfb6a..f06eec99de68 100644
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
@@ -590,6 +590,13 @@ static void ath9k_hif_usb_rx_stream(struct hif_device_usb *hif_dev,
return;
}
+ if (pkt_len > 2 * MAX_RX_BUF_SIZE) {
+ dev_err(&hif_dev->udev->dev,
+ "ath9k_htc: invalid pkt_len (%x)\n", pkt_len);
+ RX_STAT_INC(skb_dropped);
+ return;
+ }
+
pad_len = 4 - (pkt_len & 0x3);
if (pad_len == 4)
pad_len = 0;
diff --git a/drivers/net/wireless/ath/wcn36xx/dxe.c b/drivers/net/wireless/ath/wcn36xx/dxe.c
index cf4eb0fb2815..6c62ffc799a2 100644
--- a/drivers/net/wireless/ath/wcn36xx/dxe.c
+++ b/drivers/net/wireless/ath/wcn36xx/dxe.c
@@ -272,6 +272,21 @@ static int wcn36xx_dxe_enable_ch_int(struct wcn36xx *wcn, u16 wcn_ch)
return 0;
}
+static void wcn36xx_dxe_disable_ch_int(struct wcn36xx *wcn, u16 wcn_ch)
+{
+ int reg_data = 0;
+
+ wcn36xx_dxe_read_register(wcn,
+ WCN36XX_DXE_INT_MASK_REG,
+ ®_data);
+
+ reg_data &= ~wcn_ch;
+
+ wcn36xx_dxe_write_register(wcn,
+ WCN36XX_DXE_INT_MASK_REG,
+ (int)reg_data);
+}
+
static int wcn36xx_dxe_fill_skb(struct device *dev,
struct wcn36xx_dxe_ctl *ctl,
gfp_t gfp)
@@ -869,7 +884,6 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
WCN36XX_DXE_WQ_TX_L);
wcn36xx_dxe_read_register(wcn, WCN36XX_DXE_REG_CH_EN, ®_data);
- wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_L);
/***************************************/
/* Init descriptors for TX HIGH channel */
@@ -893,9 +907,6 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
wcn36xx_dxe_read_register(wcn, WCN36XX_DXE_REG_CH_EN, ®_data);
- /* Enable channel interrupts */
- wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_H);
-
/***************************************/
/* Init descriptors for RX LOW channel */
/***************************************/
@@ -905,7 +916,6 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
goto out_err_rxl_ch;
}
-
/* For RX we need to preallocated buffers */
wcn36xx_dxe_ch_alloc_skb(wcn, &wcn->dxe_rx_l_ch);
@@ -928,9 +938,6 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
WCN36XX_DXE_REG_CTL_RX_L,
WCN36XX_DXE_CH_DEFAULT_CTL_RX_L);
- /* Enable channel interrupts */
- wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_L);
-
/***************************************/
/* Init descriptors for RX HIGH channel */
/***************************************/
@@ -962,15 +969,18 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
WCN36XX_DXE_REG_CTL_RX_H,
WCN36XX_DXE_CH_DEFAULT_CTL_RX_H);
- /* Enable channel interrupts */
- wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_H);
-
ret = wcn36xx_dxe_request_irqs(wcn);
if (ret < 0)
goto out_err_irq;
timer_setup(&wcn->tx_ack_timer, wcn36xx_dxe_tx_timer, 0);
+ /* Enable channel interrupts */
+ wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_L);
+ wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_H);
+ wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_L);
+ wcn36xx_dxe_enable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_H);
+
return 0;
out_err_irq:
@@ -987,6 +997,14 @@ int wcn36xx_dxe_init(struct wcn36xx *wcn)
void wcn36xx_dxe_deinit(struct wcn36xx *wcn)
{
+ int reg_data = 0;
+
+ /* Disable channel interrupts */
+ wcn36xx_dxe_disable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_H);
+ wcn36xx_dxe_disable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_RX_L);
+ wcn36xx_dxe_disable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_H);
+ wcn36xx_dxe_disable_ch_int(wcn, WCN36XX_INT_MASK_CHAN_TX_L);
+
free_irq(wcn->tx_irq, wcn);
free_irq(wcn->rx_irq, wcn);
del_timer(&wcn->tx_ack_timer);
@@ -996,6 +1014,15 @@ void wcn36xx_dxe_deinit(struct wcn36xx *wcn)
wcn->tx_ack_skb = NULL;
}
+ /* Put the DXE block into reset before freeing memory */
+ reg_data = WCN36XX_DXE_REG_RESET;
+ wcn36xx_dxe_write_register(wcn, WCN36XX_DXE_REG_CSR_RESET, reg_data);
+
wcn36xx_dxe_ch_free_skbs(wcn, &wcn->dxe_rx_l_ch);
wcn36xx_dxe_ch_free_skbs(wcn, &wcn->dxe_rx_h_ch);
+
+ wcn36xx_dxe_deinit_descs(wcn->dev, &wcn->dxe_tx_l_ch);
+ wcn36xx_dxe_deinit_descs(wcn->dev, &wcn->dxe_tx_h_ch);
+ wcn36xx_dxe_deinit_descs(wcn->dev, &wcn->dxe_rx_l_ch);
+ wcn36xx_dxe_deinit_descs(wcn->dev, &wcn->dxe_rx_h_ch);
}
diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index 629ddfd74da1..9aaf6f747333 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -397,6 +397,7 @@ static void wcn36xx_change_opchannel(struct wcn36xx *wcn, int ch)
static int wcn36xx_config(struct ieee80211_hw *hw, u32 changed)
{
struct wcn36xx *wcn = hw->priv;
+ int ret;
wcn36xx_dbg(WCN36XX_DBG_MAC, "mac config changed 0x%08x\n", changed);
@@ -412,17 +413,31 @@ static int wcn36xx_config(struct ieee80211_hw *hw, u32 changed)
* want to receive/transmit regular data packets, then
* simply stop the scan session and exit PS mode.
*/
- wcn36xx_smd_finish_scan(wcn, HAL_SYS_MODE_SCAN,
- wcn->sw_scan_vif);
- wcn->sw_scan_channel = 0;
+ if (wcn->sw_scan_channel)
+ wcn36xx_smd_end_scan(wcn, wcn->sw_scan_channel);
+ if (wcn->sw_scan_init) {
+ wcn36xx_smd_finish_scan(wcn, HAL_SYS_MODE_SCAN,
+ wcn->sw_scan_vif);
+ }
} else if (wcn->sw_scan) {
/* A scan is ongoing, do not change the operating
* channel, but start a scan session on the channel.
*/
- wcn36xx_smd_init_scan(wcn, HAL_SYS_MODE_SCAN,
- wcn->sw_scan_vif);
+ if (wcn->sw_scan_channel)
+ wcn36xx_smd_end_scan(wcn, wcn->sw_scan_channel);
+ if (!wcn->sw_scan_init) {
+ /* This can fail if we are unable to notify the
+ * operating channel.
+ */
+ ret = wcn36xx_smd_init_scan(wcn,
+ HAL_SYS_MODE_SCAN,
+ wcn->sw_scan_vif);
+ if (ret) {
+ mutex_unlock(&wcn->conf_mutex);
+ return -EIO;
+ }
+ }
wcn36xx_smd_start_scan(wcn, ch);
- wcn->sw_scan_channel = ch;
} else {
wcn36xx_change_opchannel(wcn, ch);
}
@@ -709,7 +724,12 @@ static void wcn36xx_sw_scan_complete(struct ieee80211_hw *hw,
struct wcn36xx *wcn = hw->priv;
/* ensure that any scan session is finished */
- wcn36xx_smd_finish_scan(wcn, HAL_SYS_MODE_SCAN, wcn->sw_scan_vif);
+ if (wcn->sw_scan_channel)
+ wcn36xx_smd_end_scan(wcn, wcn->sw_scan_channel);
+ if (wcn->sw_scan_init) {
+ wcn36xx_smd_finish_scan(wcn, HAL_SYS_MODE_SCAN,
+ wcn->sw_scan_vif);
+ }
wcn->sw_scan = false;
wcn->sw_scan_opchannel = 0;
}
diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 3793907ace92..7f00cb6f5e16 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -730,6 +730,7 @@ int wcn36xx_smd_init_scan(struct wcn36xx *wcn, enum wcn36xx_hal_sys_mode mode,
wcn36xx_err("hal_init_scan response failed err=%d\n", ret);
goto out;
}
+ wcn->sw_scan_init = true;
out:
mutex_unlock(&wcn->hal_mutex);
return ret;
@@ -760,6 +761,7 @@ int wcn36xx_smd_start_scan(struct wcn36xx *wcn, u8 scan_channel)
wcn36xx_err("hal_start_scan response failed err=%d\n", ret);
goto out;
}
+ wcn->sw_scan_channel = scan_channel;
out:
mutex_unlock(&wcn->hal_mutex);
return ret;
@@ -790,6 +792,7 @@ int wcn36xx_smd_end_scan(struct wcn36xx *wcn, u8 scan_channel)
wcn36xx_err("hal_end_scan response failed err=%d\n", ret);
goto out;
}
+ wcn->sw_scan_channel = 0;
out:
mutex_unlock(&wcn->hal_mutex);
return ret;
@@ -831,6 +834,7 @@ int wcn36xx_smd_finish_scan(struct wcn36xx *wcn,
wcn36xx_err("hal_finish_scan response failed err=%d\n", ret);
goto out;
}
+ wcn->sw_scan_init = false;
out:
mutex_unlock(&wcn->hal_mutex);
return ret;
@@ -2603,7 +2607,7 @@ static int wcn36xx_smd_missed_beacon_ind(struct wcn36xx *wcn,
wcn36xx_dbg(WCN36XX_DBG_HAL, "beacon missed bss_index %d\n",
tmp->bss_index);
vif = wcn36xx_priv_to_vif(tmp);
- ieee80211_connection_loss(vif);
+ ieee80211_beacon_loss(vif);
}
return 0;
}
@@ -2618,7 +2622,7 @@ static int wcn36xx_smd_missed_beacon_ind(struct wcn36xx *wcn,
wcn36xx_dbg(WCN36XX_DBG_HAL, "beacon missed bss_index %d\n",
rsp->bss_index);
vif = wcn36xx_priv_to_vif(tmp);
- ieee80211_connection_loss(vif);
+ ieee80211_beacon_loss(vif);
return 0;
}
}
diff --git a/drivers/net/wireless/ath/wcn36xx/txrx.c b/drivers/net/wireless/ath/wcn36xx/txrx.c
index bbd7194c82e2..f33e7228a101 100644
--- a/drivers/net/wireless/ath/wcn36xx/txrx.c
+++ b/drivers/net/wireless/ath/wcn36xx/txrx.c
@@ -237,7 +237,6 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
const struct wcn36xx_rate *rate;
struct ieee80211_hdr *hdr;
struct wcn36xx_rx_bd *bd;
- struct ieee80211_supported_band *sband;
u16 fc, sn;
/*
@@ -259,8 +258,6 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
fc = __le16_to_cpu(hdr->frame_control);
sn = IEEE80211_SEQ_TO_SN(__le16_to_cpu(hdr->seq_ctrl));
- status.freq = WCN36XX_CENTER_FREQ(wcn);
- status.band = WCN36XX_BAND(wcn);
status.mactime = 10;
status.signal = -get_rssi0(bd);
status.antenna = 1;
@@ -272,18 +269,36 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
wcn36xx_dbg(WCN36XX_DBG_RX, "status.flags=%x\n", status.flag);
+ if (bd->scan_learn) {
+ /* If packet originate from hardware scanning, extract the
+ * band/channel from bd descriptor.
+ */
+ u8 hwch = (bd->reserved0 << 4) + bd->rx_ch;
+
+ if (bd->rf_band != 1 && hwch <= sizeof(ab_rx_ch_map) && hwch >= 1) {
+ status.band = NL80211_BAND_5GHZ;
+ status.freq = ieee80211_channel_to_frequency(ab_rx_ch_map[hwch - 1],
+ status.band);
+ } else {
+ status.band = NL80211_BAND_2GHZ;
+ status.freq = ieee80211_channel_to_frequency(hwch, status.band);
+ }
+ } else {
+ status.band = WCN36XX_BAND(wcn);
+ status.freq = WCN36XX_CENTER_FREQ(wcn);
+ }
+
if (bd->rate_id < ARRAY_SIZE(wcn36xx_rate_table)) {
rate = &wcn36xx_rate_table[bd->rate_id];
status.encoding = rate->encoding;
status.enc_flags = rate->encoding_flags;
status.bw = rate->bw;
status.rate_idx = rate->mcs_or_legacy_index;
- sband = wcn->hw->wiphy->bands[status.band];
status.nss = 1;
if (status.band == NL80211_BAND_5GHZ &&
status.encoding == RX_ENC_LEGACY &&
- status.rate_idx >= sband->n_bitrates) {
+ status.rate_idx >= 4) {
/* no dsss rates in 5Ghz rates table */
status.rate_idx -= 4;
}
@@ -298,22 +313,6 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
ieee80211_is_probe_resp(hdr->frame_control))
status.boottime_ns = ktime_get_boottime_ns();
- if (bd->scan_learn) {
- /* If packet originates from hardware scanning, extract the
- * band/channel from bd descriptor.
- */
- u8 hwch = (bd->reserved0 << 4) + bd->rx_ch;
-
- if (bd->rf_band != 1 && hwch <= sizeof(ab_rx_ch_map) && hwch >= 1) {
- status.band = NL80211_BAND_5GHZ;
- status.freq = ieee80211_channel_to_frequency(ab_rx_ch_map[hwch - 1],
- status.band);
- } else {
- status.band = NL80211_BAND_2GHZ;
- status.freq = ieee80211_channel_to_frequency(hwch, status.band);
- }
- }
-
memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status));
if (ieee80211_is_beacon(hdr->frame_control)) {
diff --git a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
index 9b4dee2fc648..5c40d0bdee24 100644
--- a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
+++ b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
@@ -231,6 +231,7 @@ struct wcn36xx {
struct cfg80211_scan_request *scan_req;
bool sw_scan;
u8 sw_scan_opchannel;
+ bool sw_scan_init;
u8 sw_scan_channel;
struct ieee80211_vif *sw_scan_vif;
struct mutex scan_lock;
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
index be214f39f52b..30c6d7b18599 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
@@ -185,6 +185,9 @@ static void iwl_dealloc_ucode(struct iwl_drv *drv)
for (i = 0; i < IWL_UCODE_TYPE_MAX; i++)
iwl_free_fw_img(drv, drv->fw.img + i);
+
+ /* clear the data for the aborted load case */
+ memset(&drv->fw, 0, sizeof(drv->fw));
}
static int iwl_alloc_fw_desc(struct iwl_drv *drv, struct fw_desc *desc,
@@ -1365,6 +1368,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
int i;
bool load_module = false;
bool usniffer_images = false;
+ bool failure = true;
fw->ucode_capa.max_probe_length = IWL_DEFAULT_MAX_PROBE_LENGTH;
fw->ucode_capa.standard_phy_calibration_size =
@@ -1625,15 +1629,9 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
* else from proceeding if the module fails to load
* or hangs loading.
*/
- if (load_module) {
+ if (load_module)
request_module("%s", op->name);
-#ifdef CONFIG_IWLWIFI_OPMODE_MODULAR
- if (err)
- IWL_ERR(drv,
- "failed to load module %s (error %d), is dynamic loading enabled?\n",
- op->name, err);
-#endif
- }
+ failure = false;
goto free;
try_again:
@@ -1649,6 +1647,9 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
complete(&drv->request_firmware_complete);
device_release_driver(drv->trans->dev);
free:
+ if (failure)
+ iwl_dealloc_ucode(drv);
+
if (pieces) {
for (i = 0; i < ARRAY_SIZE(pieces->img); i++)
kfree(pieces->img[i].sec);
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c b/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
index a0ce761d0c59..b1335fe3b01a 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
@@ -967,7 +967,7 @@ static void iwl_mvm_ftm_rtt_smoothing(struct iwl_mvm *mvm,
overshoot = IWL_MVM_FTM_INITIATOR_SMOOTH_OVERSHOOT;
alpha = IWL_MVM_FTM_INITIATOR_SMOOTH_ALPHA;
- rtt_avg = (alpha * rtt + (100 - alpha) * resp->rtt_avg) / 100;
+ rtt_avg = div_s64(alpha * rtt + (100 - alpha) * resp->rtt_avg, 100);
IWL_DEBUG_INFO(mvm,
"%pM: prev rtt_avg=%lld, new rtt_avg=%lld, rtt=%lld\n",
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
index 81cc85a97eb2..922a7ea0cd24 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
@@ -1739,6 +1739,7 @@ static void iwl_mvm_recalc_multicast(struct iwl_mvm *mvm)
struct iwl_mvm_mc_iter_data iter_data = {
.mvm = mvm,
};
+ int ret;
lockdep_assert_held(&mvm->mutex);
@@ -1748,6 +1749,22 @@ static void iwl_mvm_recalc_multicast(struct iwl_mvm *mvm)
ieee80211_iterate_active_interfaces_atomic(
mvm->hw, IEEE80211_IFACE_ITER_NORMAL,
iwl_mvm_mc_iface_iterator, &iter_data);
+
+ /*
+ * Send a (synchronous) ech command so that we wait for the
+ * multiple asynchronous MCAST_FILTER_CMD commands sent by
+ * the interface iterator. Otherwise, we might get here over
+ * and over again (by userspace just sending a lot of these)
+ * and the CPU can send them faster than the firmware can
+ * process them.
+ * Note that the CPU is still faster - but with this we'll
+ * actually send fewer commands overall because the CPU will
+ * not schedule the work in mac80211 as frequently if it's
+ * still running when rescheduled (possibly multiple times).
+ */
+ ret = iwl_mvm_send_cmd_pdu(mvm, ECHO_CMD, 0, 0, NULL);
+ if (ret)
+ IWL_ERR(mvm, "Failed to synchronize multicast groups update\n");
}
static u64 iwl_mvm_prepare_multicast(struct ieee80211_hw *hw,
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
index 838734fec502..86b3fb321dfd 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
@@ -177,12 +177,39 @@ static int iwl_mvm_create_skb(struct iwl_mvm *mvm, struct sk_buff *skb,
struct iwl_rx_mpdu_desc *desc = (void *)pkt->data;
unsigned int headlen, fraglen, pad_len = 0;
unsigned int hdrlen = ieee80211_hdrlen(hdr->frame_control);
+ u8 mic_crc_len = u8_get_bits(desc->mac_flags1,
+ IWL_RX_MPDU_MFLG1_MIC_CRC_LEN_MASK) << 1;
if (desc->mac_flags2 & IWL_RX_MPDU_MFLG2_PAD) {
len -= 2;
pad_len = 2;
}
+ /*
+ * For non monitor interface strip the bytes the RADA might not have
+ * removed. As monitor interface cannot exist with other interfaces
+ * this removal is safe.
+ */
+ if (mic_crc_len && !ieee80211_hw_check(mvm->hw, RX_INCLUDES_FCS)) {
+ u32 pkt_flags = le32_to_cpu(pkt->len_n_flags);
+
+ /*
+ * If RADA was not enabled then decryption was not performed so
+ * the MIC cannot be removed.
+ */
+ if (!(pkt_flags & FH_RSCSR_RADA_EN)) {
+ if (WARN_ON(crypt_len > mic_crc_len))
+ return -EINVAL;
+
+ mic_crc_len -= crypt_len;
+ }
+
+ if (WARN_ON(mic_crc_len > len))
+ return -EINVAL;
+
+ len -= mic_crc_len;
+ }
+
/* If frame is small enough to fit in skb->head, pull it completely.
* If not, only pull ieee80211_hdr (including crypto if present, and
* an additional 8 bytes for SNAP/ethertype, see below) so that
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
index a5d90e028833..46255d2c555b 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@ -2157,7 +2157,7 @@ static int iwl_mvm_check_running_scans(struct iwl_mvm *mvm, int type)
return -EIO;
}
-#define SCAN_TIMEOUT 20000
+#define SCAN_TIMEOUT 30000
void iwl_mvm_scan_timeout_wk(struct work_struct *work)
{
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c
index 394598b14a17..3f081cdea09c 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c
@@ -98,14 +98,13 @@ void iwl_mvm_roc_done_wk(struct work_struct *wk)
struct iwl_mvm *mvm = container_of(wk, struct iwl_mvm, roc_done_wk);
/*
- * Clear the ROC_RUNNING /ROC_AUX_RUNNING status bit.
+ * Clear the ROC_RUNNING status bit.
* This will cause the TX path to drop offchannel transmissions.
* That would also be done by mac80211, but it is racy, in particular
* in the case that the time event actually completed in the firmware
* (which is handled in iwl_mvm_te_handle_notif).
*/
clear_bit(IWL_MVM_STATUS_ROC_RUNNING, &mvm->status);
- clear_bit(IWL_MVM_STATUS_ROC_AUX_RUNNING, &mvm->status);
synchronize_net();
@@ -131,9 +130,19 @@ void iwl_mvm_roc_done_wk(struct work_struct *wk)
mvmvif = iwl_mvm_vif_from_mac80211(mvm->p2p_device_vif);
iwl_mvm_flush_sta(mvm, &mvmvif->bcast_sta, true);
}
- } else {
+ }
+
+ /*
+ * Clear the ROC_AUX_RUNNING status bit.
+ * This will cause the TX path to drop offchannel transmissions.
+ * That would also be done by mac80211, but it is racy, in particular
+ * in the case that the time event actually completed in the firmware
+ * (which is handled in iwl_mvm_te_handle_notif).
+ */
+ if (test_and_clear_bit(IWL_MVM_STATUS_ROC_AUX_RUNNING, &mvm->status)) {
/* do the same in case of hot spot 2.0 */
iwl_mvm_flush_sta(mvm, &mvm->aux_sta, true);
+
/* In newer version of this command an aux station is added only
* in cases of dedicated tx queue and need to be removed in end
* of use */
@@ -1157,15 +1166,10 @@ void iwl_mvm_schedule_session_protection(struct iwl_mvm *mvm,
cpu_to_le32(FW_CMD_ID_AND_COLOR(mvmvif->id,
mvmvif->color)),
.action = cpu_to_le32(FW_CTXT_ACTION_ADD),
+ .conf_id = cpu_to_le32(SESSION_PROTECT_CONF_ASSOC),
.duration_tu = cpu_to_le32(MSEC_TO_TU(duration)),
};
- /* The time_event_data.id field is reused to save session
- * protection's configuration.
- */
- mvmvif->time_event_data.id = SESSION_PROTECT_CONF_ASSOC;
- cmd.conf_id = cpu_to_le32(mvmvif->time_event_data.id);
-
lockdep_assert_held(&mvm->mutex);
spin_lock_bh(&mvm->time_event_lock);
@@ -1179,6 +1183,11 @@ void iwl_mvm_schedule_session_protection(struct iwl_mvm *mvm,
}
iwl_mvm_te_clear_data(mvm, te_data);
+ /*
+ * The time_event_data.id field is reused to save session
+ * protection's configuration.
+ */
+ te_data->id = le32_to_cpu(cmd.conf_id);
te_data->duration = le32_to_cpu(cmd.duration_tu);
spin_unlock_bh(&mvm->time_event_lock);
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
index 2c13fa8f2820..6aedf5762571 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
@@ -2260,7 +2260,12 @@ irqreturn_t iwl_pcie_irq_msix_handler(int irq, void *dev_id)
}
}
- if (inta_hw & MSIX_HW_INT_CAUSES_REG_WAKEUP) {
+ /*
+ * In some rare cases when the HW is in a bad state, we may
+ * get this interrupt too early, when prph_info is still NULL.
+ * So make sure that it's not NULL to prevent crashing.
+ */
+ if (inta_hw & MSIX_HW_INT_CAUSES_REG_WAKEUP && trans_pcie->prph_info) {
u32 sleep_notif =
le32_to_cpu(trans_pcie->prph_info->sleep_notif);
if (sleep_notif == IWL_D3_SLEEP_STATUS_SUSPEND ||
diff --git a/drivers/net/wireless/intel/iwlwifi/queue/tx.c b/drivers/net/wireless/intel/iwlwifi/queue/tx.c
index 9181221a2434..0136df00ff6a 100644
--- a/drivers/net/wireless/intel/iwlwifi/queue/tx.c
+++ b/drivers/net/wireless/intel/iwlwifi/queue/tx.c
@@ -1148,6 +1148,7 @@ int iwl_txq_alloc(struct iwl_trans *trans, struct iwl_txq *txq, int slots_num,
return 0;
err_free_tfds:
dma_free_coherent(trans->dev, tfd_sz, txq->tfds, txq->dma_addr);
+ txq->tfds = NULL;
error:
if (txq->entries && cmd_queue)
for (i = 0; i < slots_num; i++)
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_event.c b/drivers/net/wireless/marvell/mwifiex/sta_event.c
index bc79ca4cb803..753458628f86 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_event.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_event.c
@@ -364,10 +364,12 @@ static void mwifiex_process_uap_tx_pause(struct mwifiex_private *priv,
sta_ptr = mwifiex_get_sta_entry(priv, tp->peermac);
if (sta_ptr && sta_ptr->tx_pause != tp->tx_pause) {
sta_ptr->tx_pause = tp->tx_pause;
+ spin_unlock_bh(&priv->sta_list_spinlock);
mwifiex_update_ralist_tx_pause(priv, tp->peermac,
tp->tx_pause);
+ } else {
+ spin_unlock_bh(&priv->sta_list_spinlock);
}
- spin_unlock_bh(&priv->sta_list_spinlock);
}
}
@@ -399,11 +401,13 @@ static void mwifiex_process_sta_tx_pause(struct mwifiex_private *priv,
sta_ptr = mwifiex_get_sta_entry(priv, tp->peermac);
if (sta_ptr && sta_ptr->tx_pause != tp->tx_pause) {
sta_ptr->tx_pause = tp->tx_pause;
+ spin_unlock_bh(&priv->sta_list_spinlock);
mwifiex_update_ralist_tx_pause(priv,
tp->peermac,
tp->tx_pause);
+ } else {
+ spin_unlock_bh(&priv->sta_list_spinlock);
}
- spin_unlock_bh(&priv->sta_list_spinlock);
}
}
}
diff --git a/drivers/net/wireless/marvell/mwifiex/usb.c b/drivers/net/wireless/marvell/mwifiex/usb.c
index 9736aa0ab7fd..8f01fcbe9396 100644
--- a/drivers/net/wireless/marvell/mwifiex/usb.c
+++ b/drivers/net/wireless/marvell/mwifiex/usb.c
@@ -130,7 +130,8 @@ static int mwifiex_usb_recv(struct mwifiex_adapter *adapter,
default:
mwifiex_dbg(adapter, ERROR,
"unknown recv_type %#x\n", recv_type);
- return -1;
+ ret = -1;
+ goto exit_restore_skb;
}
break;
case MWIFIEX_USB_EP_DATA:
diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c
index 565efd880624..2ef1416899f0 100644
--- a/drivers/net/wireless/realtek/rtw88/main.c
+++ b/drivers/net/wireless/realtek/rtw88/main.c
@@ -1652,7 +1652,7 @@ int rtw_core_init(struct rtw_dev *rtwdev)
/* default rx filter setting */
rtwdev->hal.rcr = BIT_APP_FCS | BIT_APP_MIC | BIT_APP_ICV |
- BIT_HTC_LOC_CTRL | BIT_APP_PHYSTS |
+ BIT_PKTCTL_DLEN | BIT_HTC_LOC_CTRL | BIT_APP_PHYSTS |
BIT_AB | BIT_AM | BIT_APM;
ret = rtw_load_firmware(rtwdev, RTW_NORMAL_FW);
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821c.h b/drivers/net/wireless/realtek/rtw88/rtw8821c.h
index bd01e82b6bcd..8d1e8ff71d7e 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.h
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.h
@@ -131,7 +131,7 @@ _rtw_write32s_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 data)
#define WLAN_TX_FUNC_CFG2 0x30
#define WLAN_MAC_OPT_NORM_FUNC1 0x98
#define WLAN_MAC_OPT_LB_FUNC1 0x80
-#define WLAN_MAC_OPT_FUNC2 0x30810041
+#define WLAN_MAC_OPT_FUNC2 0xb0810041
#define WLAN_SIFS_CFG (WLAN_SIFS_CCK_CONT_TX | \
(WLAN_SIFS_OFDM_CONT_TX << BIT_SHIFT_SIFS_OFDM_CTX) | \
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.c b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
index 22d0dd640ac9..dbfd67c3f598 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
@@ -204,7 +204,7 @@ static void rtw8822b_phy_set_param(struct rtw_dev *rtwdev)
#define WLAN_TX_FUNC_CFG2 0x30
#define WLAN_MAC_OPT_NORM_FUNC1 0x98
#define WLAN_MAC_OPT_LB_FUNC1 0x80
-#define WLAN_MAC_OPT_FUNC2 0x30810041
+#define WLAN_MAC_OPT_FUNC2 0xb0810041
#define WLAN_SIFS_CFG (WLAN_SIFS_CCK_CONT_TX | \
(WLAN_SIFS_OFDM_CONT_TX << BIT_SHIFT_SIFS_OFDM_CTX) | \
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
index 79ad6232dce8..cee586335552 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
@@ -1248,7 +1248,7 @@ static void rtw8822c_phy_set_param(struct rtw_dev *rtwdev)
#define WLAN_TX_FUNC_CFG2 0x30
#define WLAN_MAC_OPT_NORM_FUNC1 0x98
#define WLAN_MAC_OPT_LB_FUNC1 0x80
-#define WLAN_MAC_OPT_FUNC2 0x30810041
+#define WLAN_MAC_OPT_FUNC2 0xb0810041
#define WLAN_MAC_INT_MIG_CFG 0x33330000
#define WLAN_SIFS_CFG (WLAN_SIFS_CCK_CONT_TX | \
diff --git a/drivers/net/wireless/rsi/rsi_91x_main.c b/drivers/net/wireless/rsi/rsi_91x_main.c
index 8c638cfeac52..fe8aed58ac08 100644
--- a/drivers/net/wireless/rsi/rsi_91x_main.c
+++ b/drivers/net/wireless/rsi/rsi_91x_main.c
@@ -23,6 +23,7 @@
#include "rsi_common.h"
#include "rsi_coex.h"
#include "rsi_hal.h"
+#include "rsi_usb.h"
u32 rsi_zone_enabled = /* INFO_ZONE |
INIT_ZONE |
@@ -168,6 +169,9 @@ int rsi_read_pkt(struct rsi_common *common, u8 *rx_pkt, s32 rcv_pkt_len)
frame_desc = &rx_pkt[index];
actual_length = *(u16 *)&frame_desc[0];
offset = *(u16 *)&frame_desc[2];
+ if (!rcv_pkt_len && offset >
+ RSI_MAX_RX_USB_PKT_SIZE - FRAME_DESC_SZ)
+ goto fail;
queueno = rsi_get_queueno(frame_desc, offset);
length = rsi_get_length(frame_desc, offset);
diff --git a/drivers/net/wireless/rsi/rsi_91x_usb.c b/drivers/net/wireless/rsi/rsi_91x_usb.c
index d881df9ebd0c..11388a146962 100644
--- a/drivers/net/wireless/rsi/rsi_91x_usb.c
+++ b/drivers/net/wireless/rsi/rsi_91x_usb.c
@@ -269,8 +269,12 @@ static void rsi_rx_done_handler(struct urb *urb)
struct rsi_91x_usbdev *dev = (struct rsi_91x_usbdev *)rx_cb->data;
int status = -EINVAL;
+ if (!rx_cb->rx_skb)
+ return;
+
if (urb->status) {
dev_kfree_skb(rx_cb->rx_skb);
+ rx_cb->rx_skb = NULL;
return;
}
@@ -294,8 +298,10 @@ static void rsi_rx_done_handler(struct urb *urb)
if (rsi_rx_urb_submit(dev->priv, rx_cb->ep_num, GFP_ATOMIC))
rsi_dbg(ERR_ZONE, "%s: Failed in urb submission", __func__);
- if (status)
+ if (status) {
dev_kfree_skb(rx_cb->rx_skb);
+ rx_cb->rx_skb = NULL;
+ }
}
static void rsi_rx_urb_kill(struct rsi_hw *adapter, u8 ep_num)
@@ -322,7 +328,6 @@ static int rsi_rx_urb_submit(struct rsi_hw *adapter, u8 ep_num, gfp_t mem_flags)
struct sk_buff *skb;
u8 dword_align_bytes = 0;
-#define RSI_MAX_RX_USB_PKT_SIZE 3000
skb = dev_alloc_skb(RSI_MAX_RX_USB_PKT_SIZE);
if (!skb)
return -ENOMEM;
diff --git a/drivers/net/wireless/rsi/rsi_usb.h b/drivers/net/wireless/rsi/rsi_usb.h
index 8702f434b569..ad88f8c70a35 100644
--- a/drivers/net/wireless/rsi/rsi_usb.h
+++ b/drivers/net/wireless/rsi/rsi_usb.h
@@ -44,6 +44,8 @@
#define RSI_USB_BUF_SIZE 4096
#define RSI_USB_CTRL_BUF_SIZE 0x04
+#define RSI_MAX_RX_USB_PKT_SIZE 3000
+
struct rx_usb_ctrl_block {
u8 *data;
struct urb *rx_urb;
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 6b170083cd24..21d89d80d083 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -222,6 +222,8 @@ static umode_t nvmem_bin_attr_is_visible(struct kobject *kobj,
struct device *dev = kobj_to_dev(kobj);
struct nvmem_device *nvmem = to_nvmem_device(dev);
+ attr->size = nvmem->size;
+
return nvmem_bin_attr_get_umode(nvmem);
}
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 161a23631472..a44a0e7ba251 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -1328,9 +1328,14 @@ int of_phandle_iterator_next(struct of_phandle_iterator *it)
* property data length
*/
if (it->cur + count > it->list_end) {
- pr_err("%pOF: %s = %d found %d\n",
- it->parent, it->cells_name,
- count, it->cell_count);
+ if (it->cells_name)
+ pr_err("%pOF: %s = %d found %td\n",
+ it->parent, it->cells_name,
+ count, it->list_end - it->cur);
+ else
+ pr_err("%pOF: phandle %s needs %d, found %td\n",
+ it->parent, of_node_full_name(it->node),
+ count, it->list_end - it->cur);
goto err;
}
}
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c
index 1d4b0b7d0cc1..5407bbdb6439 100644
--- a/drivers/of/unittest.c
+++ b/drivers/of/unittest.c
@@ -910,11 +910,18 @@ static void __init of_unittest_dma_ranges_one(const char *path,
if (!rc) {
phys_addr_t paddr;
dma_addr_t dma_addr;
- struct device dev_bogus;
+ struct device *dev_bogus;
- dev_bogus.dma_range_map = map;
- paddr = dma_to_phys(&dev_bogus, expect_dma_addr);
- dma_addr = phys_to_dma(&dev_bogus, expect_paddr);
+ dev_bogus = kzalloc(sizeof(struct device), GFP_KERNEL);
+ if (!dev_bogus) {
+ unittest(0, "kzalloc() failed\n");
+ kfree(map);
+ return;
+ }
+
+ dev_bogus->dma_range_map = map;
+ paddr = dma_to_phys(dev_bogus, expect_dma_addr);
+ dma_addr = phys_to_dma(dev_bogus, expect_paddr);
unittest(paddr == expect_paddr,
"of_dma_get_range: wrong phys addr %pap (expecting %llx) on node %pOF\n",
@@ -924,6 +931,7 @@ static void __init of_unittest_dma_ranges_one(const char *path,
&dma_addr, expect_dma_addr, np);
kfree(map);
+ kfree(dev_bogus);
}
of_node_put(np);
#endif
@@ -933,8 +941,9 @@ static void __init of_unittest_parse_dma_ranges(void)
{
of_unittest_dma_ranges_one("/testcase-data/address-tests/device@70000000",
0x0, 0x20000000);
- of_unittest_dma_ranges_one("/testcase-data/address-tests/bus@80000000/device@1000",
- 0x100000000, 0x20000000);
+ if (IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT))
+ of_unittest_dma_ranges_one("/testcase-data/address-tests/bus@80000000/device@1000",
+ 0x100000000, 0x20000000);
of_unittest_dma_ranges_one("/testcase-data/address-tests/pci@90000000",
0x80000000, 0x20000000);
}
diff --git a/drivers/parisc/pdc_stable.c b/drivers/parisc/pdc_stable.c
index e090978518f1..4760f82def6e 100644
--- a/drivers/parisc/pdc_stable.c
+++ b/drivers/parisc/pdc_stable.c
@@ -979,8 +979,10 @@ pdcs_register_pathentries(void)
entry->kobj.kset = paths_kset;
err = kobject_init_and_add(&entry->kobj, &ktype_pdcspath, NULL,
"%s", entry->name);
- if (err)
+ if (err) {
+ kobject_put(&entry->kobj);
return err;
+ }
/* kobject is now registered */
write_lock(&entry->rw_lock);
diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
index 0f6a6685ab5b..f30144c8c0bd 100644
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -879,7 +879,6 @@ advk_pci_bridge_emul_pcie_conf_read(struct pci_bridge_emul *bridge,
return PCI_BRIDGE_EMUL_HANDLED;
}
- case PCI_CAP_LIST_ID:
case PCI_EXP_DEVCAP:
case PCI_EXP_DEVCTL:
*value = advk_readl(pcie, PCIE_CORE_PCIEXP_CAP + reg);
@@ -960,6 +959,9 @@ static int advk_sw_pci_bridge_init(struct advk_pcie *pcie)
/* Support interrupt A for MSI feature */
bridge->conf.intpin = PCIE_CORE_INT_A_ASSERT_ENABLE;
+ /* Aardvark HW provides PCIe Capability structure in version 2 */
+ bridge->pcie_conf.cap = cpu_to_le16(2);
+
/* Indicates supports for Completion Retry Status */
bridge->pcie_conf.rootcap = cpu_to_le16(PCI_EXP_RTCAP_CRSVIS);
diff --git a/drivers/pci/controller/pci-mvebu.c b/drivers/pci/controller/pci-mvebu.c
index ed13e81cd691..2dc6890dbcaa 100644
--- a/drivers/pci/controller/pci-mvebu.c
+++ b/drivers/pci/controller/pci-mvebu.c
@@ -573,6 +573,8 @@ static struct pci_bridge_emul_ops mvebu_pci_bridge_emul_ops = {
static void mvebu_pci_bridge_emul_init(struct mvebu_pcie_port *port)
{
struct pci_bridge_emul *bridge = &port->bridge;
+ u32 pcie_cap = mvebu_readl(port, PCIE_CAP_PCIEXP);
+ u8 pcie_cap_ver = ((pcie_cap >> 16) & PCI_EXP_FLAGS_VERS);
bridge->conf.vendor = PCI_VENDOR_ID_MARVELL;
bridge->conf.device = mvebu_readl(port, PCIE_DEV_ID_OFF) >> 16;
@@ -585,6 +587,12 @@ static void mvebu_pci_bridge_emul_init(struct mvebu_pcie_port *port)
bridge->conf.iolimit = PCI_IO_RANGE_TYPE_32;
}
+ /*
+ * Older mvebu hardware provides PCIe Capability structure only in
+ * version 1. New hardware provides it in version 2.
+ */
+ bridge->pcie_conf.cap = cpu_to_le16(pcie_cap_ver);
+
bridge->has_pcie = true;
bridge->data = port;
bridge->ops = &mvebu_pci_bridge_emul_ops;
diff --git a/drivers/pci/controller/pci-xgene.c b/drivers/pci/controller/pci-xgene.c
index c33b385ac918..b651b6f44469 100644
--- a/drivers/pci/controller/pci-xgene.c
+++ b/drivers/pci/controller/pci-xgene.c
@@ -467,7 +467,7 @@ static int xgene_pcie_select_ib_reg(u8 *ib_reg_mask, u64 size)
return 1;
}
- if ((size > SZ_1K) && (size < SZ_1T) && !(*ib_reg_mask & (1 << 0))) {
+ if ((size > SZ_1K) && (size < SZ_4G) && !(*ib_reg_mask & (1 << 0))) {
*ib_reg_mask |= (1 << 0);
return 0;
}
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
index 4fd200d8b0a9..f1f789fe0637 100644
--- a/drivers/pci/hotplug/pciehp.h
+++ b/drivers/pci/hotplug/pciehp.h
@@ -72,6 +72,8 @@ extern int pciehp_poll_time;
* @reset_lock: prevents access to the Data Link Layer Link Active bit in the
* Link Status register and to the Presence Detect State bit in the Slot
* Status register during a slot reset which may cause them to flap
+ * @depth: Number of additional hotplug ports in the path to the root bus,
+ * used as lock subclass for @reset_lock
* @ist_running: flag to keep user request waiting while IRQ thread is running
* @request_result: result of last user request submitted to the IRQ thread
* @requester: wait queue to wake up on completion of user request,
@@ -103,6 +105,7 @@ struct controller {
struct hotplug_slot hotplug_slot; /* hotplug core interface */
struct rw_semaphore reset_lock;
+ unsigned int depth;
unsigned int ist_running;
int request_result;
wait_queue_head_t requester;
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
index ad3393930ecb..e7fe4b42f039 100644
--- a/drivers/pci/hotplug/pciehp_core.c
+++ b/drivers/pci/hotplug/pciehp_core.c
@@ -166,7 +166,7 @@ static void pciehp_check_presence(struct controller *ctrl)
{
int occupied;
- down_read(&ctrl->reset_lock);
+ down_read_nested(&ctrl->reset_lock, ctrl->depth);
mutex_lock(&ctrl->state_lock);
occupied = pciehp_card_present_or_link_active(ctrl);
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c
index 9d06939736c0..90da17c6da66 100644
--- a/drivers/pci/hotplug/pciehp_hpc.c
+++ b/drivers/pci/hotplug/pciehp_hpc.c
@@ -583,7 +583,7 @@ static void pciehp_ignore_dpc_link_change(struct controller *ctrl,
* the corresponding link change may have been ignored above.
* Synthesize it to ensure that it is acted on.
*/
- down_read(&ctrl->reset_lock);
+ down_read_nested(&ctrl->reset_lock, ctrl->depth);
if (!pciehp_check_link_active(ctrl))
pciehp_request(ctrl, PCI_EXP_SLTSTA_DLLSC);
up_read(&ctrl->reset_lock);
@@ -746,7 +746,7 @@ static irqreturn_t pciehp_ist(int irq, void *dev_id)
* Disable requests have higher priority than Presence Detect Changed
* or Data Link Layer State Changed events.
*/
- down_read(&ctrl->reset_lock);
+ down_read_nested(&ctrl->reset_lock, ctrl->depth);
if (events & DISABLE_SLOT)
pciehp_handle_disable_request(ctrl);
else if (events & (PCI_EXP_SLTSTA_PDC | PCI_EXP_SLTSTA_DLLSC))
@@ -880,7 +880,7 @@ int pciehp_reset_slot(struct hotplug_slot *hotplug_slot, int probe)
if (probe)
return 0;
- down_write(&ctrl->reset_lock);
+ down_write_nested(&ctrl->reset_lock, ctrl->depth);
if (!ATTN_BUTTN(ctrl)) {
ctrl_mask |= PCI_EXP_SLTCTL_PDCE;
@@ -936,6 +936,20 @@ static inline void dbg_ctrl(struct controller *ctrl)
#define FLAG(x, y) (((x) & (y)) ? '+' : '-')
+static inline int pcie_hotplug_depth(struct pci_dev *dev)
+{
+ struct pci_bus *bus = dev->bus;
+ int depth = 0;
+
+ while (bus->parent) {
+ bus = bus->parent;
+ if (bus->self && bus->self->is_hotplug_bridge)
+ depth++;
+ }
+
+ return depth;
+}
+
struct controller *pcie_init(struct pcie_device *dev)
{
struct controller *ctrl;
@@ -949,6 +963,7 @@ struct controller *pcie_init(struct pcie_device *dev)
return NULL;
ctrl->pcie = dev;
+ ctrl->depth = pcie_hotplug_depth(dev->port);
pcie_capability_read_dword(pdev, PCI_EXP_SLTCAP, &slot_cap);
if (pdev->hotplug_user_indicators)
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 57314fec2261..3da69b26e674 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -1291,19 +1291,24 @@ EXPORT_SYMBOL(pci_free_irq_vectors);
/**
* pci_irq_vector - return Linux IRQ number of a device vector
- * @dev: PCI device to operate on
- * @nr: device-relative interrupt vector index (0-based).
+ * @dev: PCI device to operate on
+ * @nr: Interrupt vector index (0-based)
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ * MSI-X: The index in the MSI-X vector table
+ * MSI: The index of the enabled MSI vectors
+ * INTx: Must be 0
+ *
+ * Return: The Linux interrupt number or -EINVAl if @nr is out of range.
*/
int pci_irq_vector(struct pci_dev *dev, unsigned int nr)
{
if (dev->msix_enabled) {
struct msi_desc *entry;
- int i = 0;
for_each_pci_msi_entry(entry, dev) {
- if (i == nr)
+ if (entry->msi_attrib.entry_nr == nr)
return entry->irq;
- i++;
}
WARN_ON_ONCE(1);
return -EINVAL;
@@ -1327,17 +1332,22 @@ EXPORT_SYMBOL(pci_irq_vector);
* pci_irq_get_affinity - return the affinity of a particular MSI vector
* @dev: PCI device to operate on
* @nr: device-relative interrupt vector index (0-based).
+ *
+ * @nr has the following meanings depending on the interrupt mode:
+ * MSI-X: The index in the MSI-X vector table
+ * MSI: The index of the enabled MSI vectors
+ * INTx: Must be 0
+ *
+ * Return: A cpumask pointer or NULL if @nr is out of range
*/
const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr)
{
if (dev->msix_enabled) {
struct msi_desc *entry;
- int i = 0;
for_each_pci_msi_entry(entry, dev) {
- if (i == nr)
+ if (entry->msi_attrib.entry_nr == nr)
return &entry->affinity->mask;
- i++;
}
WARN_ON_ONCE(1);
return NULL;
diff --git a/drivers/pci/pci-bridge-emul.c b/drivers/pci/pci-bridge-emul.c
index db97cddfc85e..37504c2cce9b 100644
--- a/drivers/pci/pci-bridge-emul.c
+++ b/drivers/pci/pci-bridge-emul.c
@@ -139,8 +139,13 @@ struct pci_bridge_reg_behavior pci_regs_behavior[PCI_STD_HEADER_SIZEOF / 4] = {
.ro = GENMASK(7, 0),
},
+ /*
+ * If expansion ROM is unsupported then ROM Base Address register must
+ * be implemented as read-only register that return 0 when read, same
+ * as for unused Base Address registers.
+ */
[PCI_ROM_ADDRESS1 / 4] = {
- .rw = GENMASK(31, 11) | BIT(0),
+ .ro = ~0,
},
/*
@@ -171,41 +176,55 @@ struct pci_bridge_reg_behavior pcie_cap_regs_behavior[PCI_CAP_PCIE_SIZEOF / 4] =
[PCI_CAP_LIST_ID / 4] = {
/*
* Capability ID, Next Capability Pointer and
- * Capabilities register are all read-only.
+ * bits [14:0] of Capabilities register are all read-only.
+ * Bit 15 of Capabilities register is reserved.
*/
- .ro = ~0,
+ .ro = GENMASK(30, 0),
},
[PCI_EXP_DEVCAP / 4] = {
- .ro = ~0,
+ /*
+ * Bits [31:29] and [17:16] are reserved.
+ * Bits [27:18] are reserved for non-upstream ports.
+ * Bits 28 and [14:6] are reserved for non-endpoint devices.
+ * Other bits are read-only.
+ */
+ .ro = BIT(15) | GENMASK(5, 0),
},
[PCI_EXP_DEVCTL / 4] = {
- /* Device control register is RW */
- .rw = GENMASK(15, 0),
+ /*
+ * Device control register is RW, except bit 15 which is
+ * reserved for non-endpoints or non-PCIe-to-PCI/X bridges.
+ */
+ .rw = GENMASK(14, 0),
/*
* Device status register has bits 6 and [3:0] W1C, [5:4] RO,
- * the rest is reserved
+ * the rest is reserved. Also bit 6 is reserved for non-upstream
+ * ports.
*/
- .w1c = (BIT(6) | GENMASK(3, 0)) << 16,
+ .w1c = GENMASK(3, 0) << 16,
.ro = GENMASK(5, 4) << 16,
},
[PCI_EXP_LNKCAP / 4] = {
- /* All bits are RO, except bit 23 which is reserved */
- .ro = lower_32_bits(~BIT(23)),
+ /*
+ * All bits are RO, except bit 23 which is reserved and
+ * bit 18 which is reserved for non-upstream ports.
+ */
+ .ro = lower_32_bits(~(BIT(23) | PCI_EXP_LNKCAP_CLKPM)),
},
[PCI_EXP_LNKCTL / 4] = {
/*
* Link control has bits [15:14], [11:3] and [1:0] RW, the
- * rest is reserved.
+ * rest is reserved. Bit 8 is reserved for non-upstream ports.
*
* Link status has bits [13:0] RO, and bits [15:14]
* W1C.
*/
- .rw = GENMASK(15, 14) | GENMASK(11, 3) | GENMASK(1, 0),
+ .rw = GENMASK(15, 14) | GENMASK(11, 9) | GENMASK(7, 3) | GENMASK(1, 0),
.ro = GENMASK(13, 0) << 16,
.w1c = GENMASK(15, 14) << 16,
},
@@ -277,11 +296,9 @@ int pci_bridge_emul_init(struct pci_bridge_emul *bridge,
if (bridge->has_pcie) {
bridge->conf.capabilities_pointer = PCI_CAP_PCIE_START;
+ bridge->conf.status |= cpu_to_le16(PCI_STATUS_CAP_LIST);
bridge->pcie_conf.cap_id = PCI_CAP_ID_EXP;
- /* Set PCIe v2, root port, slot support */
- bridge->pcie_conf.cap =
- cpu_to_le16(PCI_EXP_TYPE_ROOT_PORT << 4 | 2 |
- PCI_EXP_FLAGS_SLOT);
+ bridge->pcie_conf.cap |= cpu_to_le16(PCI_EXP_TYPE_ROOT_PORT << 4);
bridge->pcie_cap_regs_behavior =
kmemdup(pcie_cap_regs_behavior,
sizeof(pcie_cap_regs_behavior),
@@ -290,6 +307,27 @@ int pci_bridge_emul_init(struct pci_bridge_emul *bridge,
kfree(bridge->pci_regs_behavior);
return -ENOMEM;
}
+ /* These bits are applicable only for PCI and reserved on PCIe */
+ bridge->pci_regs_behavior[PCI_CACHE_LINE_SIZE / 4].ro &=
+ ~GENMASK(15, 8);
+ bridge->pci_regs_behavior[PCI_COMMAND / 4].ro &=
+ ~((PCI_COMMAND_SPECIAL | PCI_COMMAND_INVALIDATE |
+ PCI_COMMAND_VGA_PALETTE | PCI_COMMAND_WAIT |
+ PCI_COMMAND_FAST_BACK) |
+ (PCI_STATUS_66MHZ | PCI_STATUS_FAST_BACK |
+ PCI_STATUS_DEVSEL_MASK) << 16);
+ bridge->pci_regs_behavior[PCI_PRIMARY_BUS / 4].ro &=
+ ~GENMASK(31, 24);
+ bridge->pci_regs_behavior[PCI_IO_BASE / 4].ro &=
+ ~((PCI_STATUS_66MHZ | PCI_STATUS_FAST_BACK |
+ PCI_STATUS_DEVSEL_MASK) << 16);
+ bridge->pci_regs_behavior[PCI_INTERRUPT_LINE / 4].rw &=
+ ~((PCI_BRIDGE_CTL_MASTER_ABORT |
+ BIT(8) | BIT(9) | BIT(11)) << 16);
+ bridge->pci_regs_behavior[PCI_INTERRUPT_LINE / 4].ro &=
+ ~((PCI_BRIDGE_CTL_FAST_BACK) << 16);
+ bridge->pci_regs_behavior[PCI_INTERRUPT_LINE / 4].w1c &=
+ ~(BIT(10) << 16);
}
if (flags & PCI_BRIDGE_EMUL_NO_PREFETCHABLE_BAR) {
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index bb863ddb59bf..95fcc735c88e 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -4077,6 +4077,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9120,
quirk_dma_func1_alias);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9123,
quirk_dma_func1_alias);
+/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c136 */
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9125,
+ quirk_dma_func1_alias);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9128,
quirk_dma_func1_alias);
/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c14 */
diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c
index e211e2619680..f70197154a36 100644
--- a/drivers/pcmcia/cs.c
+++ b/drivers/pcmcia/cs.c
@@ -666,18 +666,16 @@ static int pccardd(void *__skt)
if (events || sysfs_events)
continue;
+ set_current_state(TASK_INTERRUPTIBLE);
if (kthread_should_stop())
break;
- set_current_state(TASK_INTERRUPTIBLE);
-
schedule();
- /* make sure we are running */
- __set_current_state(TASK_RUNNING);
-
try_to_freeze();
}
+ /* make sure we are running before we exit */
+ __set_current_state(TASK_RUNNING);
/* shut down socket, if a device is still present */
if (skt->state & SOCKET_PRESENT) {
diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c
index 3b05760e69d6..69a6e9a5d6d2 100644
--- a/drivers/pcmcia/rsrc_nonstatic.c
+++ b/drivers/pcmcia/rsrc_nonstatic.c
@@ -690,6 +690,9 @@ static struct resource *__nonstatic_find_io_region(struct pcmcia_socket *s,
unsigned long min = base;
int ret;
+ if (!res)
+ return NULL;
+
data.mask = align - 1;
data.offset = base & data.mask;
data.map = &s_data->io_db;
@@ -809,6 +812,9 @@ static struct resource *nonstatic_find_mem_region(u_long base, u_long num,
unsigned long min, max;
int ret, i, j;
+ if (!res)
+ return NULL;
+
low = low || !(s->features & SS_CAP_PAGE_REGS);
data.mask = align - 1;
diff --git a/drivers/phy/socionext/phy-uniphier-usb3ss.c b/drivers/phy/socionext/phy-uniphier-usb3ss.c
index 6700645bcbe6..3b5ffc16a694 100644
--- a/drivers/phy/socionext/phy-uniphier-usb3ss.c
+++ b/drivers/phy/socionext/phy-uniphier-usb3ss.c
@@ -22,11 +22,13 @@
#include <linux/reset.h>
#define SSPHY_TESTI 0x0
-#define SSPHY_TESTO 0x4
#define TESTI_DAT_MASK GENMASK(13, 6)
#define TESTI_ADR_MASK GENMASK(5, 1)
#define TESTI_WR_EN BIT(0)
+#define SSPHY_TESTO 0x4
+#define TESTO_DAT_MASK GENMASK(7, 0)
+
#define PHY_F(regno, msb, lsb) { (regno), (msb), (lsb) }
#define CDR_CPD_TRIM PHY_F(7, 3, 0) /* RxPLL charge pump current */
@@ -84,12 +86,12 @@ static void uniphier_u3ssphy_set_param(struct uniphier_u3ssphy_priv *priv,
val = FIELD_PREP(TESTI_DAT_MASK, 1);
val |= FIELD_PREP(TESTI_ADR_MASK, p->field.reg_no);
uniphier_u3ssphy_testio_write(priv, val);
- val = readl(priv->base + SSPHY_TESTO);
+ val = readl(priv->base + SSPHY_TESTO) & TESTO_DAT_MASK;
/* update value */
- val &= ~FIELD_PREP(TESTI_DAT_MASK, field_mask);
+ val &= ~field_mask;
data = field_mask & (p->value << p->field.lsb);
- val = FIELD_PREP(TESTI_DAT_MASK, data);
+ val = FIELD_PREP(TESTI_DAT_MASK, data | val);
val |= FIELD_PREP(TESTI_ADR_MASK, p->field.reg_no);
uniphier_u3ssphy_testio_write(priv, val);
uniphier_u3ssphy_testio_write(priv, val | TESTI_WR_EN);
diff --git a/drivers/power/reset/mt6323-poweroff.c b/drivers/power/reset/mt6323-poweroff.c
index 0532803e6cbc..d90e76fcb938 100644
--- a/drivers/power/reset/mt6323-poweroff.c
+++ b/drivers/power/reset/mt6323-poweroff.c
@@ -57,6 +57,9 @@ static int mt6323_pwrc_probe(struct platform_device *pdev)
return -ENOMEM;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res)
+ return -EINVAL;
+
pwrc->base = res->start;
pwrc->regmap = mt6397_chip->regmap;
pwrc->dev = &pdev->dev;
diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
index bb944ee5fe3b..03e146e98abd 100644
--- a/drivers/regulator/qcom_smd-regulator.c
+++ b/drivers/regulator/qcom_smd-regulator.c
@@ -9,6 +9,7 @@
#include <linux/of_device.h>
#include <linux/platform_device.h>
#include <linux/regulator/driver.h>
+#include <linux/regulator/of_regulator.h>
#include <linux/soc/qcom/smd-rpm.h>
struct qcom_rpm_reg {
@@ -1107,52 +1108,91 @@ static const struct of_device_id rpm_of_match[] = {
};
MODULE_DEVICE_TABLE(of, rpm_of_match);
-static int rpm_reg_probe(struct platform_device *pdev)
+/**
+ * rpm_regulator_init_vreg() - initialize all attributes of a qcom_smd-regulator
+ * @vreg: Pointer to the individual qcom_smd-regulator resource
+ * @dev: Pointer to the top level qcom_smd-regulator PMIC device
+ * @node: Pointer to the individual qcom_smd-regulator resource
+ * device node
+ * @rpm: Pointer to the rpm bus node
+ * @pmic_rpm_data: Pointer to a null-terminated array of qcom_smd-regulator
+ * resources defined for the top level PMIC device
+ *
+ * Return: 0 on success, errno on failure
+ */
+static int rpm_regulator_init_vreg(struct qcom_rpm_reg *vreg, struct device *dev,
+ struct device_node *node, struct qcom_smd_rpm *rpm,
+ const struct rpm_regulator_data *pmic_rpm_data)
{
- const struct rpm_regulator_data *reg;
- const struct of_device_id *match;
- struct regulator_config config = { };
+ struct regulator_config config = {};
+ const struct rpm_regulator_data *rpm_data;
struct regulator_dev *rdev;
+ int ret;
+
+ for (rpm_data = pmic_rpm_data; rpm_data->name; rpm_data++)
+ if (of_node_name_eq(node, rpm_data->name))
+ break;
+
+ if (!rpm_data->name) {
+ dev_err(dev, "Unknown regulator %pOFn\n", node);
+ return -EINVAL;
+ }
+
+ vreg->dev = dev;
+ vreg->rpm = rpm;
+ vreg->type = rpm_data->type;
+ vreg->id = rpm_data->id;
+
+ memcpy(&vreg->desc, rpm_data->desc, sizeof(vreg->desc));
+ vreg->desc.name = rpm_data->name;
+ vreg->desc.supply_name = rpm_data->supply;
+ vreg->desc.owner = THIS_MODULE;
+ vreg->desc.type = REGULATOR_VOLTAGE;
+ vreg->desc.of_match = rpm_data->name;
+
+ config.dev = dev;
+ config.of_node = node;
+ config.driver_data = vreg;
+
+ rdev = devm_regulator_register(dev, &vreg->desc, &config);
+ if (IS_ERR(rdev)) {
+ ret = PTR_ERR(rdev);
+ dev_err(dev, "%pOFn: devm_regulator_register() failed, ret=%d\n", node, ret);
+ return ret;
+ }
+
+ return 0;
+}
+
+static int rpm_reg_probe(struct platform_device *pdev)
+{
+ struct device *dev = &pdev->dev;
+ const struct rpm_regulator_data *vreg_data;
+ struct device_node *node;
struct qcom_rpm_reg *vreg;
struct qcom_smd_rpm *rpm;
+ int ret;
rpm = dev_get_drvdata(pdev->dev.parent);
if (!rpm) {
- dev_err(&pdev->dev, "unable to retrieve handle to rpm\n");
+ dev_err(&pdev->dev, "Unable to retrieve handle to rpm\n");
return -ENODEV;
}
- match = of_match_device(rpm_of_match, &pdev->dev);
- if (!match) {
- dev_err(&pdev->dev, "failed to match device\n");
+ vreg_data = of_device_get_match_data(dev);
+ if (!vreg_data)
return -ENODEV;
- }
- for (reg = match->data; reg->name; reg++) {
+ for_each_available_child_of_node(dev->of_node, node) {
vreg = devm_kzalloc(&pdev->dev, sizeof(*vreg), GFP_KERNEL);
if (!vreg)
return -ENOMEM;
- vreg->dev = &pdev->dev;
- vreg->type = reg->type;
- vreg->id = reg->id;
- vreg->rpm = rpm;
-
- memcpy(&vreg->desc, reg->desc, sizeof(vreg->desc));
-
- vreg->desc.id = -1;
- vreg->desc.owner = THIS_MODULE;
- vreg->desc.type = REGULATOR_VOLTAGE;
- vreg->desc.name = reg->name;
- vreg->desc.supply_name = reg->supply;
- vreg->desc.of_match = reg->name;
-
- config.dev = &pdev->dev;
- config.driver_data = vreg;
- rdev = devm_regulator_register(&pdev->dev, &vreg->desc, &config);
- if (IS_ERR(rdev)) {
- dev_err(&pdev->dev, "failed to register %s\n", reg->name);
- return PTR_ERR(rdev);
+ ret = rpm_regulator_init_vreg(vreg, dev, node, rpm, vreg_data);
+
+ if (ret < 0) {
+ of_node_put(node);
+ return ret;
}
}
diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c
index 91de940896e3..028ca5961bc2 100644
--- a/drivers/rpmsg/rpmsg_core.c
+++ b/drivers/rpmsg/rpmsg_core.c
@@ -473,13 +473,25 @@ static int rpmsg_dev_probe(struct device *dev)
err = rpdrv->probe(rpdev);
if (err) {
dev_err(dev, "%s: failed: %d\n", __func__, err);
- if (ept)
- rpmsg_destroy_ept(ept);
- goto out;
+ goto destroy_ept;
}
- if (ept && rpdev->ops->announce_create)
+ if (ept && rpdev->ops->announce_create) {
err = rpdev->ops->announce_create(rpdev);
+ if (err) {
+ dev_err(dev, "failed to announce creation\n");
+ goto remove_rpdev;
+ }
+ }
+
+ return 0;
+
+remove_rpdev:
+ if (rpdrv->remove)
+ rpdrv->remove(rpdev);
+destroy_ept:
+ if (ept)
+ rpmsg_destroy_ept(ept);
out:
return err;
}
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index c633319cdb91..58c6382a2807 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -463,7 +463,10 @@ static int cmos_set_alarm(struct device *dev, struct rtc_wkalrm *t)
min = t->time.tm_min;
sec = t->time.tm_sec;
+ spin_lock_irq(&rtc_lock);
rtc_control = CMOS_READ(RTC_CONTROL);
+ spin_unlock_irq(&rtc_lock);
+
if (!(rtc_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
/* Writing 0xff means "don't care" or "match all". */
mon = (mon <= 12) ? bin2bcd(mon) : 0xff;
diff --git a/drivers/rtc/rtc-pxa.c b/drivers/rtc/rtc-pxa.c
index d2f1d8f754bf..cf8119b6d320 100644
--- a/drivers/rtc/rtc-pxa.c
+++ b/drivers/rtc/rtc-pxa.c
@@ -330,6 +330,10 @@ static int __init pxa_rtc_probe(struct platform_device *pdev)
if (sa1100_rtc->irq_alarm < 0)
return -ENXIO;
+ sa1100_rtc->rtc = devm_rtc_allocate_device(&pdev->dev);
+ if (IS_ERR(sa1100_rtc->rtc))
+ return PTR_ERR(sa1100_rtc->rtc);
+
pxa_rtc->base = devm_ioremap(dev, pxa_rtc->ress->start,
resource_size(pxa_rtc->ress));
if (!pxa_rtc->base) {
diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
index 93e507677bdc..0273bf3918ff 100644
--- a/drivers/scsi/lpfc/lpfc.h
+++ b/drivers/scsi/lpfc/lpfc.h
@@ -763,7 +763,6 @@ struct lpfc_hba {
#define HBA_DEVLOSS_TMO 0x2000 /* HBA in devloss timeout */
#define HBA_RRQ_ACTIVE 0x4000 /* process the rrq active list */
#define HBA_IOQ_FLUSH 0x8000 /* FCP/NVME I/O queues being flushed */
-#define HBA_FW_DUMP_OP 0x10000 /* Skips fn reset before FW dump */
#define HBA_RECOVERABLE_UE 0x20000 /* Firmware supports recoverable UE */
#define HBA_FORCED_LINK_SPEED 0x40000 /*
* Firmware supports Forced Link Speed
@@ -772,6 +771,7 @@ struct lpfc_hba {
#define HBA_FLOGI_ISSUED 0x100000 /* FLOGI was issued */
#define HBA_DEFER_FLOGI 0x800000 /* Defer FLOGI till read_sparm cmpl */
+ struct completion *fw_dump_cmpl; /* cmpl event tracker for fw_dump */
uint32_t fcp_ring_in_use; /* When polling test if intr-hndlr active*/
struct lpfc_dmabuf slim2p;
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index 2c59a5bf3539..727b7ba4d8f8 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -1536,25 +1536,25 @@ lpfc_sli4_pdev_reg_request(struct lpfc_hba *phba, uint32_t opcode)
before_fc_flag = phba->pport->fc_flag;
sriov_nr_virtfn = phba->cfg_sriov_nr_virtfn;
- /* Disable SR-IOV virtual functions if enabled */
- if (phba->cfg_sriov_nr_virtfn) {
- pci_disable_sriov(pdev);
- phba->cfg_sriov_nr_virtfn = 0;
- }
+ if (opcode == LPFC_FW_DUMP) {
+ init_completion(&online_compl);
+ phba->fw_dump_cmpl = &online_compl;
+ } else {
+ /* Disable SR-IOV virtual functions if enabled */
+ if (phba->cfg_sriov_nr_virtfn) {
+ pci_disable_sriov(pdev);
+ phba->cfg_sriov_nr_virtfn = 0;
+ }
- if (opcode == LPFC_FW_DUMP)
- phba->hba_flag |= HBA_FW_DUMP_OP;
+ status = lpfc_do_offline(phba, LPFC_EVT_OFFLINE);
- status = lpfc_do_offline(phba, LPFC_EVT_OFFLINE);
+ if (status != 0)
+ return status;
- if (status != 0) {
- phba->hba_flag &= ~HBA_FW_DUMP_OP;
- return status;
+ /* wait for the device to be quiesced before firmware reset */
+ msleep(100);
}
- /* wait for the device to be quiesced before firmware reset */
- msleep(100);
-
reg_val = readl(phba->sli4_hba.conf_regs_memmap_p +
LPFC_CTL_PDEV_CTL_OFFSET);
@@ -1583,24 +1583,42 @@ lpfc_sli4_pdev_reg_request(struct lpfc_hba *phba, uint32_t opcode)
lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
"3153 Fail to perform the requested "
"access: x%x\n", reg_val);
+ if (phba->fw_dump_cmpl)
+ phba->fw_dump_cmpl = NULL;
return rc;
}
/* keep the original port state */
- if (before_fc_flag & FC_OFFLINE_MODE)
- goto out;
-
- init_completion(&online_compl);
- job_posted = lpfc_workq_post_event(phba, &status, &online_compl,
- LPFC_EVT_ONLINE);
- if (!job_posted)
+ if (before_fc_flag & FC_OFFLINE_MODE) {
+ if (phba->fw_dump_cmpl)
+ phba->fw_dump_cmpl = NULL;
goto out;
+ }
- wait_for_completion(&online_compl);
+ /* Firmware dump will trigger an HA_ERATT event, and
+ * lpfc_handle_eratt_s4 routine already handles bringing the port back
+ * online.
+ */
+ if (opcode == LPFC_FW_DUMP) {
+ wait_for_completion(phba->fw_dump_cmpl);
+ } else {
+ init_completion(&online_compl);
+ job_posted = lpfc_workq_post_event(phba, &status, &online_compl,
+ LPFC_EVT_ONLINE);
+ if (!job_posted)
+ goto out;
+ wait_for_completion(&online_compl);
+ }
out:
/* in any case, restore the virtual functions enabled as before */
if (sriov_nr_virtfn) {
+ /* If fw_dump was performed, first disable to clean up */
+ if (opcode == LPFC_FW_DUMP) {
+ pci_disable_sriov(pdev);
+ phba->cfg_sriov_nr_virtfn = 0;
+ }
+
sriov_err =
lpfc_sli_probe_sriov_nr_virtfn(phba, sriov_nr_virtfn);
if (!sriov_err)
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index f4a672e54971..68ff233f936e 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -635,10 +635,16 @@ lpfc_work_done(struct lpfc_hba *phba)
if (phba->pci_dev_grp == LPFC_PCI_DEV_OC)
lpfc_sli4_post_async_mbox(phba);
- if (ha_copy & HA_ERATT)
+ if (ha_copy & HA_ERATT) {
/* Handle the error attention event */
lpfc_handle_eratt(phba);
+ if (phba->fw_dump_cmpl) {
+ complete(phba->fw_dump_cmpl);
+ phba->fw_dump_cmpl = NULL;
+ }
+ }
+
if (ha_copy & HA_MBATT)
lpfc_sli_handle_mb_event(phba);
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 06a23718a7c7..1a9522baba48 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -4629,12 +4629,6 @@ lpfc_sli4_brdreset(struct lpfc_hba *phba)
phba->fcf.fcf_flag = 0;
spin_unlock_irq(&phba->hbalock);
- /* SLI4 INTF 2: if FW dump is being taken skip INIT_PORT */
- if (phba->hba_flag & HBA_FW_DUMP_OP) {
- phba->hba_flag &= ~HBA_FW_DUMP_OP;
- return rc;
- }
-
/* Now physically reset the device */
lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
"0389 Performing PCI function reset!\n");
diff --git a/drivers/scsi/pm8001/pm8001_hwi.c b/drivers/scsi/pm8001/pm8001_hwi.c
index 5d751628a634..9b318958d78c 100644
--- a/drivers/scsi/pm8001/pm8001_hwi.c
+++ b/drivers/scsi/pm8001/pm8001_hwi.c
@@ -1323,7 +1323,9 @@ int pm8001_mpi_build_cmd(struct pm8001_hba_info *pm8001_ha,
int q_index = circularQ - pm8001_ha->inbnd_q_tbl;
int rv = -1;
- WARN_ON(q_index >= PM8001_MAX_INB_NUM);
+ if (WARN_ON(q_index >= pm8001_ha->max_q_num))
+ return -EINVAL;
+
spin_lock_irqsave(&circularQ->iq_lock, flags);
rv = pm8001_mpi_msg_free_get(circularQ, pm8001_ha->iomb_size,
&pMessage);
diff --git a/drivers/scsi/scsi_debugfs.c b/drivers/scsi/scsi_debugfs.c
index c19ea7ab54cb..d9a18124cfc9 100644
--- a/drivers/scsi/scsi_debugfs.c
+++ b/drivers/scsi/scsi_debugfs.c
@@ -10,6 +10,7 @@ static const char *const scsi_cmd_flags[] = {
SCSI_CMD_FLAG_NAME(TAGGED),
SCSI_CMD_FLAG_NAME(UNCHECKED_ISA_DMA),
SCSI_CMD_FLAG_NAME(INITIALIZED),
+ SCSI_CMD_FLAG_NAME(LAST),
};
#undef SCSI_CMD_FLAG_NAME
diff --git a/drivers/scsi/scsi_pm.c b/drivers/scsi/scsi_pm.c
index 3717eea37ecb..e91a0a5bc7a3 100644
--- a/drivers/scsi/scsi_pm.c
+++ b/drivers/scsi/scsi_pm.c
@@ -262,7 +262,7 @@ static int sdev_runtime_resume(struct device *dev)
blk_pre_runtime_resume(sdev->request_queue);
if (pm && pm->runtime_resume)
err = pm->runtime_resume(dev);
- blk_post_runtime_resume(sdev->request_queue, err);
+ blk_post_runtime_resume(sdev->request_queue);
return err;
}
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
index 4cb4ab9c6137..464418413ced 100644
--- a/drivers/scsi/sr.c
+++ b/drivers/scsi/sr.c
@@ -917,7 +917,7 @@ static void get_capabilities(struct scsi_cd *cd)
/* allocate transfer buffer */
- buffer = kmalloc(512, GFP_KERNEL | GFP_DMA);
+ buffer = kmalloc(512, GFP_KERNEL);
if (!buffer) {
sr_printk(KERN_ERR, cd, "out of memory.\n");
return;
diff --git a/drivers/scsi/sr_vendor.c b/drivers/scsi/sr_vendor.c
index 1f988a1b9166..a61635326ae0 100644
--- a/drivers/scsi/sr_vendor.c
+++ b/drivers/scsi/sr_vendor.c
@@ -131,7 +131,7 @@ int sr_set_blocklength(Scsi_CD *cd, int blocklength)
if (cd->vendor == VENDOR_TOSHIBA)
density = (blocklength > 2048) ? 0x81 : 0x83;
- buffer = kmalloc(512, GFP_KERNEL | GFP_DMA);
+ buffer = kmalloc(512, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
@@ -179,7 +179,7 @@ int sr_cd_check(struct cdrom_device_info *cdi)
if (cd->cdi.mask & CDC_MULTI_SESSION)
return 0;
- buffer = kmalloc(512, GFP_KERNEL | GFP_DMA);
+ buffer = kmalloc(512, GFP_KERNEL);
if (!buffer)
return -ENOMEM;
diff --git a/drivers/scsi/ufs/tc-dwc-g210-pci.c b/drivers/scsi/ufs/tc-dwc-g210-pci.c
index 67a6a61154b7..4e471484539d 100644
--- a/drivers/scsi/ufs/tc-dwc-g210-pci.c
+++ b/drivers/scsi/ufs/tc-dwc-g210-pci.c
@@ -135,7 +135,6 @@ tc_dwc_g210_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
return err;
}
- pci_set_drvdata(pdev, hba);
pm_runtime_put_noidle(&pdev->dev);
pm_runtime_allow(&pdev->dev);
diff --git a/drivers/scsi/ufs/ufshcd-pci.c b/drivers/scsi/ufs/ufshcd-pci.c
index fadd566025b8..4bf8ec88676e 100644
--- a/drivers/scsi/ufs/ufshcd-pci.c
+++ b/drivers/scsi/ufs/ufshcd-pci.c
@@ -347,8 +347,6 @@ ufshcd_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
return err;
}
- pci_set_drvdata(pdev, hba);
-
hba->vops = (struct ufs_hba_variant_ops *)id->driver_data;
err = ufshcd_init(hba, mmio_base, pdev->irq);
diff --git a/drivers/scsi/ufs/ufshcd-pltfrm.c b/drivers/scsi/ufs/ufshcd-pltfrm.c
index 8c92d1bde64b..e49505534d49 100644
--- a/drivers/scsi/ufs/ufshcd-pltfrm.c
+++ b/drivers/scsi/ufs/ufshcd-pltfrm.c
@@ -412,8 +412,6 @@ int ufshcd_pltfrm_init(struct platform_device *pdev,
goto dealloc_host;
}
- platform_set_drvdata(pdev, hba);
-
pm_runtime_set_active(&pdev->dev);
pm_runtime_enable(&pdev->dev);
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index e3a9a02cadf5..bf302776340c 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -9085,6 +9085,13 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq)
struct device *dev = hba->dev;
char eh_wq_name[sizeof("ufs_eh_wq_00")];
+ /*
+ * dev_set_drvdata() must be called before any callbacks are registered
+ * that use dev_get_drvdata() (frequency scaling, clock scaling, hwmon,
+ * sysfs).
+ */
+ dev_set_drvdata(dev, hba);
+
if (!mmio_base) {
dev_err(hba->dev,
"Invalid memory reference for mmio_base is NULL\n");
diff --git a/drivers/soc/mediatek/mtk-scpsys.c b/drivers/soc/mediatek/mtk-scpsys.c
index ca75b14931ec..670cc82d17dc 100644
--- a/drivers/soc/mediatek/mtk-scpsys.c
+++ b/drivers/soc/mediatek/mtk-scpsys.c
@@ -411,12 +411,17 @@ static int scpsys_power_off(struct generic_pm_domain *genpd)
return ret;
}
-static void init_clks(struct platform_device *pdev, struct clk **clk)
+static int init_clks(struct platform_device *pdev, struct clk **clk)
{
int i;
- for (i = CLK_NONE + 1; i < CLK_MAX; i++)
+ for (i = CLK_NONE + 1; i < CLK_MAX; i++) {
clk[i] = devm_clk_get(&pdev->dev, clk_names[i]);
+ if (IS_ERR(clk[i]))
+ return PTR_ERR(clk[i]);
+ }
+
+ return 0;
}
static struct scp *init_scp(struct platform_device *pdev,
@@ -426,7 +431,7 @@ static struct scp *init_scp(struct platform_device *pdev,
{
struct genpd_onecell_data *pd_data;
struct resource *res;
- int i, j;
+ int i, j, ret;
struct scp *scp;
struct clk *clk[CLK_MAX];
@@ -481,7 +486,9 @@ static struct scp *init_scp(struct platform_device *pdev,
pd_data->num_domains = num;
- init_clks(pdev, clk);
+ ret = init_clks(pdev, clk);
+ if (ret)
+ return ERR_PTR(ret);
for (i = 0; i < num; i++) {
struct scp_domain *scpd = &scp->domains[i];
diff --git a/drivers/soc/qcom/cpr.c b/drivers/soc/qcom/cpr.c
index b24cc77d1889..6298561bc29c 100644
--- a/drivers/soc/qcom/cpr.c
+++ b/drivers/soc/qcom/cpr.c
@@ -1043,7 +1043,7 @@ static int cpr_interpolate(const struct corner *corner, int step_volt,
return corner->uV;
temp = f_diff * (uV_high - uV_low);
- do_div(temp, f_high - f_low);
+ temp = div64_ul(temp, f_high - f_low);
/*
* max_volt_scale has units of uV/MHz while freq values
diff --git a/drivers/soc/ti/pruss.c b/drivers/soc/ti/pruss.c
index cc0b4ad7a3d3..30695172a508 100644
--- a/drivers/soc/ti/pruss.c
+++ b/drivers/soc/ti/pruss.c
@@ -131,7 +131,7 @@ static int pruss_clk_init(struct pruss *pruss, struct device_node *cfg_node)
clks_np = of_get_child_by_name(cfg_node, "clocks");
if (!clks_np) {
- dev_err(dev, "%pOF is missing its 'clocks' node\n", clks_np);
+ dev_err(dev, "%pOF is missing its 'clocks' node\n", cfg_node);
return -ENODEV;
}
diff --git a/drivers/spi/spi-meson-spifc.c b/drivers/spi/spi-meson-spifc.c
index 8eca6f24cb79..c8ed7815c4ba 100644
--- a/drivers/spi/spi-meson-spifc.c
+++ b/drivers/spi/spi-meson-spifc.c
@@ -349,6 +349,7 @@ static int meson_spifc_probe(struct platform_device *pdev)
return 0;
out_clk:
clk_disable_unprepare(spifc->clk);
+ pm_runtime_disable(spifc->dev);
out_err:
spi_master_put(master);
return ret;
diff --git a/drivers/spi/spi-uniphier.c b/drivers/spi/spi-uniphier.c
index 6a9ef8ee3cc9..e5c234aecf67 100644
--- a/drivers/spi/spi-uniphier.c
+++ b/drivers/spi/spi-uniphier.c
@@ -767,12 +767,13 @@ static int uniphier_spi_probe(struct platform_device *pdev)
static int uniphier_spi_remove(struct platform_device *pdev)
{
- struct uniphier_spi_priv *priv = platform_get_drvdata(pdev);
+ struct spi_master *master = platform_get_drvdata(pdev);
+ struct uniphier_spi_priv *priv = spi_master_get_devdata(master);
- if (priv->master->dma_tx)
- dma_release_channel(priv->master->dma_tx);
- if (priv->master->dma_rx)
- dma_release_channel(priv->master->dma_rx);
+ if (master->dma_tx)
+ dma_release_channel(master->dma_tx);
+ if (master->dma_rx)
+ dma_release_channel(master->dma_rx);
clk_disable_unprepare(priv->clk);
diff --git a/drivers/staging/greybus/audio_topology.c b/drivers/staging/greybus/audio_topology.c
index 2bb8e7b60e8d..e1579f356af5 100644
--- a/drivers/staging/greybus/audio_topology.c
+++ b/drivers/staging/greybus/audio_topology.c
@@ -147,6 +147,9 @@ static const char **gb_generate_enum_strings(struct gbaudio_module_info *gb,
items = le32_to_cpu(gbenum->items);
strings = devm_kcalloc(gb->dev, items, sizeof(char *), GFP_KERNEL);
+ if (!strings)
+ return NULL;
+
data = gbenum->names;
for (i = 0; i < items; i++) {
@@ -655,6 +658,8 @@ static int gbaudio_tplg_create_enum_kctl(struct gbaudio_module_info *gb,
/* since count=1, and reg is dummy */
gbe->items = le32_to_cpu(gb_enum->items);
gbe->texts = gb_generate_enum_strings(gb, gb_enum);
+ if (!gbe->texts)
+ return -ENOMEM;
/* debug enum info */
dev_dbg(gb->dev, "Max:%d, name_length:%d\n", gbe->items,
@@ -862,6 +867,8 @@ static int gbaudio_tplg_create_enum_ctl(struct gbaudio_module_info *gb,
/* since count=1, and reg is dummy */
gbe->items = le32_to_cpu(gb_enum->items);
gbe->texts = gb_generate_enum_strings(gb, gb_enum);
+ if (!gbe->texts)
+ return -ENOMEM;
/* debug enum info */
dev_dbg(gb->dev, "Max:%d, name_length:%d\n", gbe->items,
@@ -1072,6 +1079,10 @@ static int gbaudio_tplg_create_widget(struct gbaudio_module_info *module,
csize += le16_to_cpu(gbenum->names_length);
control->texts = (const char * const *)
gb_generate_enum_strings(module, gbenum);
+ if (!control->texts) {
+ ret = -ENOMEM;
+ goto error;
+ }
control->items = le32_to_cpu(gbenum->items);
} else {
csize = sizeof(struct gb_audio_control);
@@ -1181,6 +1192,10 @@ static int gbaudio_tplg_process_kcontrols(struct gbaudio_module_info *module,
csize += le16_to_cpu(gbenum->names_length);
control->texts = (const char * const *)
gb_generate_enum_strings(module, gbenum);
+ if (!control->texts) {
+ ret = -ENOMEM;
+ goto error;
+ }
control->items = le32_to_cpu(gbenum->items);
} else {
csize = sizeof(struct gb_audio_control);
diff --git a/drivers/staging/media/atomisp/i2c/ov2680.h b/drivers/staging/media/atomisp/i2c/ov2680.h
index 49920245e064..cafb798a71ab 100644
--- a/drivers/staging/media/atomisp/i2c/ov2680.h
+++ b/drivers/staging/media/atomisp/i2c/ov2680.h
@@ -289,8 +289,6 @@ static struct ov2680_reg const ov2680_global_setting[] = {
*/
static struct ov2680_reg const ov2680_QCIF_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x24},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -334,8 +332,6 @@ static struct ov2680_reg const ov2680_QCIF_30fps[] = {
*/
static struct ov2680_reg const ov2680_CIF_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x24},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -377,8 +373,6 @@ static struct ov2680_reg const ov2680_CIF_30fps[] = {
*/
static struct ov2680_reg const ov2680_QVGA_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x24},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -420,8 +414,6 @@ static struct ov2680_reg const ov2680_QVGA_30fps[] = {
*/
static struct ov2680_reg const ov2680_656x496_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x24},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -463,8 +455,6 @@ static struct ov2680_reg const ov2680_656x496_30fps[] = {
*/
static struct ov2680_reg const ov2680_720x592_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x26},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0x00}, // X_ADDR_START;
{0x3802, 0x00},
@@ -508,8 +498,6 @@ static struct ov2680_reg const ov2680_720x592_30fps[] = {
*/
static struct ov2680_reg const ov2680_800x600_30fps[] = {
{0x3086, 0x01},
- {0x3501, 0x26},
- {0x3502, 0x40},
{0x370a, 0x23},
{0x3801, 0x00},
{0x3802, 0x00},
@@ -551,8 +539,6 @@ static struct ov2680_reg const ov2680_800x600_30fps[] = {
*/
static struct ov2680_reg const ov2680_720p_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -594,8 +580,6 @@ static struct ov2680_reg const ov2680_720p_30fps[] = {
*/
static struct ov2680_reg const ov2680_1296x976_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0xa0},
{0x3802, 0x00},
@@ -637,8 +621,6 @@ static struct ov2680_reg const ov2680_1296x976_30fps[] = {
*/
static struct ov2680_reg const ov2680_1456x1096_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0x90},
{0x3802, 0x00},
@@ -682,8 +664,6 @@ static struct ov2680_reg const ov2680_1456x1096_30fps[] = {
static struct ov2680_reg const ov2680_1616x916_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0x00},
{0x3802, 0x00},
@@ -726,8 +706,6 @@ static struct ov2680_reg const ov2680_1616x916_30fps[] = {
#if 0
static struct ov2680_reg const ov2680_1616x1082_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0x00},
{0x3802, 0x00},
@@ -769,8 +747,6 @@ static struct ov2680_reg const ov2680_1616x1082_30fps[] = {
*/
static struct ov2680_reg const ov2680_1616x1216_30fps[] = {
{0x3086, 0x00},
- {0x3501, 0x48},
- {0x3502, 0xe0},
{0x370a, 0x21},
{0x3801, 0x00},
{0x3802, 0x00},
diff --git a/drivers/staging/media/atomisp/pci/atomisp_cmd.c b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
index 592ea990d4ca..90d50a693ce5 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_cmd.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_cmd.c
@@ -1138,9 +1138,10 @@ void atomisp_buf_done(struct atomisp_sub_device *asd, int error,
asd->frame_status[vb->i] =
ATOMISP_FRAME_STATUS_OK;
}
- } else
+ } else {
asd->frame_status[vb->i] =
ATOMISP_FRAME_STATUS_OK;
+ }
} else {
asd->frame_status[vb->i] = ATOMISP_FRAME_STATUS_OK;
}
@@ -1714,6 +1715,12 @@ void atomisp_wdt_refresh_pipe(struct atomisp_video_pipe *pipe,
{
unsigned long next;
+ if (!pipe->asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return;
+ }
+
if (delay != ATOMISP_WDT_KEEP_CURRENT_DELAY)
pipe->wdt_duration = delay;
@@ -1776,6 +1783,12 @@ void atomisp_wdt_refresh(struct atomisp_sub_device *asd, unsigned int delay)
/* ISP2401 */
void atomisp_wdt_stop_pipe(struct atomisp_video_pipe *pipe, bool sync)
{
+ if (!pipe->asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return;
+ }
+
if (!atomisp_is_wdt_running(pipe))
return;
@@ -4108,6 +4121,12 @@ void atomisp_handle_parameter_and_buffer(struct atomisp_video_pipe *pipe)
unsigned long irqflags;
bool need_to_enqueue_buffer = false;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return;
+ }
+
if (atomisp_is_vf_pipe(pipe))
return;
@@ -4195,6 +4214,12 @@ int atomisp_set_parameters(struct video_device *vdev,
struct atomisp_css_params *css_param = &asd->params.css_param;
int ret;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!asd->stream_env[ATOMISP_INPUT_STREAM_GENERAL].stream) {
dev_err(asd->isp->dev, "%s: internal error!\n", __func__);
return -EINVAL;
@@ -4855,6 +4880,12 @@ int atomisp_try_fmt(struct video_device *vdev, struct v4l2_format *f,
int source_pad = atomisp_subdev_source_pad(vdev);
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!isp->inputs[asd->input_curr].camera)
return -EINVAL;
@@ -4945,9 +4976,9 @@ atomisp_try_fmt_file(struct atomisp_device *isp, struct v4l2_format *f)
depth = get_pixel_depth(pixelformat);
- if (field == V4L2_FIELD_ANY)
+ if (field == V4L2_FIELD_ANY) {
field = V4L2_FIELD_NONE;
- else if (field != V4L2_FIELD_NONE) {
+ } else if (field != V4L2_FIELD_NONE) {
dev_err(isp->dev, "Wrong output field\n");
return -EINVAL;
}
@@ -5201,6 +5232,12 @@ static int atomisp_set_fmt_to_isp(struct video_device *vdev,
const struct atomisp_in_fmt_conv *fc;
int ret, i;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
v4l2_fh_init(&fh.vfh, vdev);
isp_sink_crop = atomisp_subdev_get_rect(
@@ -5512,6 +5549,7 @@ static int atomisp_set_fmt_to_snr(struct video_device *vdev,
unsigned int dvs_env_w, unsigned int dvs_env_h)
{
struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
+ struct atomisp_video_pipe *pipe = atomisp_to_video_pipe(vdev);
const struct atomisp_format_bridge *format;
struct v4l2_subdev_pad_config pad_cfg;
struct v4l2_subdev_format vformat = {
@@ -5527,6 +5565,12 @@ static int atomisp_set_fmt_to_snr(struct video_device *vdev,
struct v4l2_subdev_fh fh;
int ret;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
v4l2_fh_init(&fh.vfh, vdev);
stream_index = atomisp_source_pad_to_stream_id(asd, source_pad);
@@ -5617,6 +5661,12 @@ int atomisp_set_fmt(struct video_device *vdev, struct v4l2_format *f)
struct v4l2_subdev_fh fh;
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (source_pad >= ATOMISP_SUBDEV_PADS_NUM)
return -EINVAL;
@@ -6050,6 +6100,12 @@ int atomisp_set_fmt_file(struct video_device *vdev, struct v4l2_format *f)
struct v4l2_subdev_fh fh;
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
v4l2_fh_init(&fh.vfh, vdev);
dev_dbg(isp->dev, "setting fmt %ux%u 0x%x for file inject\n",
@@ -6374,6 +6430,12 @@ bool atomisp_is_vf_pipe(struct atomisp_video_pipe *pipe)
{
struct atomisp_sub_device *asd = pipe->asd;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return false;
+ }
+
if (pipe == &asd->video_out_vf)
return true;
@@ -6587,17 +6649,23 @@ static int atomisp_get_pipe_id(struct atomisp_video_pipe *pipe)
{
struct atomisp_sub_device *asd = pipe->asd;
- if (ATOMISP_USE_YUVPP(asd))
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, pipe->vdev.name);
+ return -EINVAL;
+ }
+
+ if (ATOMISP_USE_YUVPP(asd)) {
return IA_CSS_PIPE_ID_YUVPP;
- else if (asd->vfpp->val == ATOMISP_VFPP_DISABLE_SCALER)
+ } else if (asd->vfpp->val == ATOMISP_VFPP_DISABLE_SCALER) {
return IA_CSS_PIPE_ID_VIDEO;
- else if (asd->vfpp->val == ATOMISP_VFPP_DISABLE_LOWLAT)
+ } else if (asd->vfpp->val == ATOMISP_VFPP_DISABLE_LOWLAT) {
return IA_CSS_PIPE_ID_CAPTURE;
- else if (pipe == &asd->video_out_video_capture)
+ } else if (pipe == &asd->video_out_video_capture) {
return IA_CSS_PIPE_ID_VIDEO;
- else if (pipe == &asd->video_out_vf)
+ } else if (pipe == &asd->video_out_vf) {
return IA_CSS_PIPE_ID_CAPTURE;
- else if (pipe == &asd->video_out_preview) {
+ } else if (pipe == &asd->video_out_preview) {
if (asd->run_mode->val == ATOMISP_RUN_MODE_VIDEO)
return IA_CSS_PIPE_ID_VIDEO;
else
@@ -6624,6 +6692,12 @@ int atomisp_get_invalid_frame_num(struct video_device *vdev,
struct ia_css_pipe_info p_info;
int ret;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (asd->isp->inputs[asd->input_curr].camera_caps->
sensor[asd->sensor_curr].stream_num > 1) {
/* External ISP */
diff --git a/drivers/staging/media/atomisp/pci/atomisp_fops.c b/drivers/staging/media/atomisp/pci/atomisp_fops.c
index f1e6b2597853..b751df31cc24 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_fops.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_fops.c
@@ -877,6 +877,11 @@ static int atomisp_open(struct file *file)
else
pipe->users++;
rt_mutex_unlock(&isp->mutex);
+
+ /* Ensure that a mode is set */
+ if (asd)
+ v4l2_ctrl_s_ctrl(asd->run_mode, pipe->default_run_mode);
+
return 0;
css_error:
@@ -1171,6 +1176,12 @@ static int atomisp_mmap(struct file *file, struct vm_area_struct *vma)
u32 origin_size, new_size;
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!(vma->vm_flags & (VM_WRITE | VM_READ)))
return -EACCES;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
index 135994d44802..34480ca16474 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c
@@ -481,7 +481,7 @@ static int atomisp_get_acpi_power(struct device *dev)
static u8 gmin_get_pmic_id_and_addr(struct device *dev)
{
- struct i2c_client *power;
+ struct i2c_client *power = NULL;
static u8 pmic_i2c_addr;
if (pmic_id)
diff --git a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
index 9da82855552d..8a0648fd7c81 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
@@ -646,6 +646,12 @@ static int atomisp_g_input(struct file *file, void *fh, unsigned int *input)
struct atomisp_device *isp = video_get_drvdata(vdev);
struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
*input = asd->input_curr;
rt_mutex_unlock(&isp->mutex);
@@ -665,6 +671,12 @@ static int atomisp_s_input(struct file *file, void *fh, unsigned int input)
struct v4l2_subdev *motor;
int ret;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
if (input >= ATOM_ISP_MAX_INPUTS || input >= isp->input_cnt) {
dev_dbg(isp->dev, "input_cnt: %d\n", isp->input_cnt);
@@ -761,18 +773,33 @@ static int atomisp_enum_fmt_cap(struct file *file, void *fh,
struct video_device *vdev = video_devdata(file);
struct atomisp_device *isp = video_get_drvdata(vdev);
struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
- struct v4l2_subdev_mbus_code_enum code = { 0 };
+ struct v4l2_subdev_mbus_code_enum code = {
+ .which = V4L2_SUBDEV_FORMAT_ACTIVE,
+ };
+ struct v4l2_subdev *camera;
unsigned int i, fi = 0;
int rval;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
+ camera = isp->inputs[asd->input_curr].camera;
+ if(!camera) {
+ dev_err(isp->dev, "%s(): camera is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
- rval = v4l2_subdev_call(isp->inputs[asd->input_curr].camera, pad,
- enum_mbus_code, NULL, &code);
+
+ rval = v4l2_subdev_call(camera, pad, enum_mbus_code, NULL, &code);
if (rval == -ENOIOCTLCMD) {
dev_warn(isp->dev,
- "enum_mbus_code pad op not supported. Please fix your sensor driver!\n");
- // rval = v4l2_subdev_call(isp->inputs[asd->input_curr].camera,
- // video, enum_mbus_fmt, 0, &code.code);
+ "enum_mbus_code pad op not supported by %s. Please fix your sensor driver!\n",
+ camera->name);
}
rt_mutex_unlock(&isp->mutex);
@@ -802,6 +829,8 @@ static int atomisp_enum_fmt_cap(struct file *file, void *fh,
f->pixelformat = format->pixelformat;
return 0;
}
+ dev_err(isp->dev, "%s(): format for code %x not found.\n",
+ __func__, code.code);
return -EINVAL;
}
@@ -834,6 +863,72 @@ static int atomisp_g_fmt_file(struct file *file, void *fh,
return 0;
}
+static int atomisp_adjust_fmt(struct v4l2_format *f)
+{
+ const struct atomisp_format_bridge *format_bridge;
+ u32 padded_width;
+
+ format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat);
+
+ padded_width = f->fmt.pix.width + pad_w;
+
+ if (format_bridge->planar) {
+ f->fmt.pix.bytesperline = padded_width;
+ f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height *
+ DIV_ROUND_UP(format_bridge->depth *
+ padded_width, 8));
+ } else {
+ f->fmt.pix.bytesperline = DIV_ROUND_UP(format_bridge->depth *
+ padded_width, 8);
+ f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height * f->fmt.pix.bytesperline);
+ }
+
+ if (f->fmt.pix.field == V4L2_FIELD_ANY)
+ f->fmt.pix.field = V4L2_FIELD_NONE;
+
+ format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat);
+ if (!format_bridge)
+ return -EINVAL;
+
+ /* Currently, raw formats are broken!!! */
+ if (format_bridge->sh_fmt == IA_CSS_FRAME_FORMAT_RAW) {
+ f->fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420;
+
+ format_bridge = atomisp_get_format_bridge(f->fmt.pix.pixelformat);
+ if (!format_bridge)
+ return -EINVAL;
+ }
+
+ padded_width = f->fmt.pix.width + pad_w;
+
+ if (format_bridge->planar) {
+ f->fmt.pix.bytesperline = padded_width;
+ f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height *
+ DIV_ROUND_UP(format_bridge->depth *
+ padded_width, 8));
+ } else {
+ f->fmt.pix.bytesperline = DIV_ROUND_UP(format_bridge->depth *
+ padded_width, 8);
+ f->fmt.pix.sizeimage = PAGE_ALIGN(f->fmt.pix.height * f->fmt.pix.bytesperline);
+ }
+
+ if (f->fmt.pix.field == V4L2_FIELD_ANY)
+ f->fmt.pix.field = V4L2_FIELD_NONE;
+
+ /*
+ * FIXME: do we need to setup this differently, depending on the
+ * sensor or the pipeline?
+ */
+ f->fmt.pix.colorspace = V4L2_COLORSPACE_REC709;
+ f->fmt.pix.ycbcr_enc = V4L2_YCBCR_ENC_709;
+ f->fmt.pix.xfer_func = V4L2_XFER_FUNC_709;
+
+ f->fmt.pix.width -= pad_w;
+ f->fmt.pix.height -= pad_h;
+
+ return 0;
+}
+
/* This function looks up the closest available resolution. */
static int atomisp_try_fmt_cap(struct file *file, void *fh,
struct v4l2_format *f)
@@ -845,7 +940,11 @@ static int atomisp_try_fmt_cap(struct file *file, void *fh,
rt_mutex_lock(&isp->mutex);
ret = atomisp_try_fmt(vdev, f, NULL);
rt_mutex_unlock(&isp->mutex);
- return ret;
+
+ if (ret)
+ return ret;
+
+ return atomisp_adjust_fmt(f);
}
static int atomisp_s_fmt_cap(struct file *file, void *fh,
@@ -1027,6 +1126,12 @@ int __atomisp_reqbufs(struct file *file, void *fh,
u16 stream_id = atomisp_source_pad_to_stream_id(asd, source_pad);
int ret = 0, i = 0;
+ if (!asd) {
+ dev_err(pipe->isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (req->count == 0) {
mutex_lock(&pipe->capq.vb_lock);
if (!list_empty(&pipe->capq.stream))
@@ -1154,6 +1259,12 @@ static int atomisp_qbuf(struct file *file, void *fh, struct v4l2_buffer *buf)
u32 pgnr;
int ret = 0;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
if (isp->isp_fatal_error) {
ret = -EIO;
@@ -1389,6 +1500,12 @@ static int atomisp_dqbuf(struct file *file, void *fh, struct v4l2_buffer *buf)
struct atomisp_device *isp = video_get_drvdata(vdev);
int ret = 0;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
rt_mutex_lock(&isp->mutex);
if (isp->isp_fatal_error) {
@@ -1640,6 +1757,12 @@ static int atomisp_streamon(struct file *file, void *fh,
int ret = 0;
unsigned long irqflags;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
dev_dbg(isp->dev, "Start stream on pad %d for asd%d\n",
atomisp_subdev_source_pad(vdev), asd->index);
@@ -1901,6 +2024,12 @@ int __atomisp_streamoff(struct file *file, void *fh, enum v4l2_buf_type type)
unsigned long flags;
bool first_streamoff = false;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
dev_dbg(isp->dev, "Stop stream on pad %d for asd%d\n",
atomisp_subdev_source_pad(vdev), asd->index);
@@ -2150,6 +2279,12 @@ static int atomisp_g_ctrl(struct file *file, void *fh,
struct atomisp_device *isp = video_get_drvdata(vdev);
int i, ret = -EINVAL;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
for (i = 0; i < ctrls_num; i++) {
if (ci_v4l2_controls[i].id == control->id) {
ret = 0;
@@ -2229,6 +2364,12 @@ static int atomisp_s_ctrl(struct file *file, void *fh,
struct atomisp_device *isp = video_get_drvdata(vdev);
int i, ret = -EINVAL;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
for (i = 0; i < ctrls_num; i++) {
if (ci_v4l2_controls[i].id == control->id) {
ret = 0;
@@ -2310,6 +2451,12 @@ static int atomisp_queryctl(struct file *file, void *fh,
struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
struct atomisp_device *isp = video_get_drvdata(vdev);
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
switch (qc->id) {
case V4L2_CID_FOCUS_ABSOLUTE:
case V4L2_CID_FOCUS_RELATIVE:
@@ -2355,6 +2502,12 @@ static int atomisp_camera_g_ext_ctrls(struct file *file, void *fh,
int i;
int ret = 0;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!IS_ISP2401)
motor = isp->inputs[asd->input_curr].motor;
else
@@ -2466,6 +2619,12 @@ static int atomisp_camera_s_ext_ctrls(struct file *file, void *fh,
int i;
int ret = 0;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (!IS_ISP2401)
motor = isp->inputs[asd->input_curr].motor;
else
@@ -2591,6 +2750,12 @@ static int atomisp_g_parm(struct file *file, void *fh,
struct atomisp_sub_device *asd = atomisp_to_video_pipe(vdev)->asd;
struct atomisp_device *isp = video_get_drvdata(vdev);
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) {
dev_err(isp->dev, "unsupported v4l2 buf type\n");
return -EINVAL;
@@ -2613,6 +2778,12 @@ static int atomisp_s_parm(struct file *file, void *fh,
int rval;
int fps;
+ if (!asd) {
+ dev_err(isp->dev, "%s(): asd is NULL, device is %s\n",
+ __func__, vdev->name);
+ return -EINVAL;
+ }
+
if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) {
dev_err(isp->dev, "unsupported v4l2 buf type\n");
return -EINVAL;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_subdev.c b/drivers/staging/media/atomisp/pci/atomisp_subdev.c
index dcc2dd981ca6..628e85799274 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_subdev.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_subdev.c
@@ -1178,23 +1178,28 @@ static int isp_subdev_init_entities(struct atomisp_sub_device *asd)
atomisp_init_acc_pipe(asd, &asd->video_acc);
- ret = atomisp_video_init(&asd->video_in, "MEMORY");
+ ret = atomisp_video_init(&asd->video_in, "MEMORY",
+ ATOMISP_RUN_MODE_SDV);
if (ret < 0)
return ret;
- ret = atomisp_video_init(&asd->video_out_capture, "CAPTURE");
+ ret = atomisp_video_init(&asd->video_out_capture, "CAPTURE",
+ ATOMISP_RUN_MODE_STILL_CAPTURE);
if (ret < 0)
return ret;
- ret = atomisp_video_init(&asd->video_out_vf, "VIEWFINDER");
+ ret = atomisp_video_init(&asd->video_out_vf, "VIEWFINDER",
+ ATOMISP_RUN_MODE_CONTINUOUS_CAPTURE);
if (ret < 0)
return ret;
- ret = atomisp_video_init(&asd->video_out_preview, "PREVIEW");
+ ret = atomisp_video_init(&asd->video_out_preview, "PREVIEW",
+ ATOMISP_RUN_MODE_PREVIEW);
if (ret < 0)
return ret;
- ret = atomisp_video_init(&asd->video_out_video_capture, "VIDEO");
+ ret = atomisp_video_init(&asd->video_out_video_capture, "VIDEO",
+ ATOMISP_RUN_MODE_VIDEO);
if (ret < 0)
return ret;
diff --git a/drivers/staging/media/atomisp/pci/atomisp_subdev.h b/drivers/staging/media/atomisp/pci/atomisp_subdev.h
index 330a77eed8aa..12215d740616 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_subdev.h
+++ b/drivers/staging/media/atomisp/pci/atomisp_subdev.h
@@ -81,6 +81,9 @@ struct atomisp_video_pipe {
/* the link list to store per_frame parameters */
struct list_head per_frame_params;
+ /* Store here the initial run mode */
+ unsigned int default_run_mode;
+
unsigned int buffers_in_css;
/* irq_lock is used to protect video buffer state change operations and
diff --git a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
index fa1bd99cd6f1..8aeea74cfd06 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c
@@ -447,7 +447,8 @@ const struct atomisp_dfs_config dfs_config_cht_soc = {
.dfs_table_size = ARRAY_SIZE(dfs_rules_cht_soc),
};
-int atomisp_video_init(struct atomisp_video_pipe *video, const char *name)
+int atomisp_video_init(struct atomisp_video_pipe *video, const char *name,
+ unsigned int run_mode)
{
int ret;
const char *direction;
@@ -478,6 +479,7 @@ int atomisp_video_init(struct atomisp_video_pipe *video, const char *name)
"ATOMISP ISP %s %s", name, direction);
video->vdev.release = video_device_release_empty;
video_set_drvdata(&video->vdev, video->isp);
+ video->default_run_mode = run_mode;
return 0;
}
@@ -711,15 +713,15 @@ static int atomisp_mrfld_power(struct atomisp_device *isp, bool enable)
dev_dbg(isp->dev, "IUNIT power-%s.\n", enable ? "on" : "off");
- /*WA:Enable DVFS*/
+ /* WA for P-Unit, if DVFS enabled, ISP timeout observed */
if (IS_CHT && enable)
- punit_ddr_dvfs_enable(true);
+ punit_ddr_dvfs_enable(false);
/*
* FIXME:WA for ECS28A, with this sleep, CTS
* android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceAbort
* PASS, no impact on other platforms
- */
+ */
if (IS_BYT && enable)
msleep(10);
@@ -727,7 +729,7 @@ static int atomisp_mrfld_power(struct atomisp_device *isp, bool enable)
iosf_mbi_modify(BT_MBI_UNIT_PMC, MBI_REG_READ, MRFLD_ISPSSPM0,
val, MRFLD_ISPSSPM0_ISPSSC_MASK);
- /*WA:Enable DVFS*/
+ /* WA:Enable DVFS */
if (IS_CHT && !enable)
punit_ddr_dvfs_enable(true);
@@ -1182,6 +1184,7 @@ static void atomisp_unregister_entities(struct atomisp_device *isp)
v4l2_device_unregister(&isp->v4l2_dev);
media_device_unregister(&isp->media_dev);
+ media_device_cleanup(&isp->media_dev);
}
static int atomisp_register_entities(struct atomisp_device *isp)
diff --git a/drivers/staging/media/atomisp/pci/atomisp_v4l2.h b/drivers/staging/media/atomisp/pci/atomisp_v4l2.h
index 81bb356b8172..72611b8286a4 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_v4l2.h
+++ b/drivers/staging/media/atomisp/pci/atomisp_v4l2.h
@@ -27,7 +27,8 @@ struct v4l2_device;
struct atomisp_device;
struct firmware;
-int atomisp_video_init(struct atomisp_video_pipe *video, const char *name);
+int atomisp_video_init(struct atomisp_video_pipe *video, const char *name,
+ unsigned int run_mode);
void atomisp_acc_init(struct atomisp_acc_pipe *video, const char *name);
void atomisp_video_unregister(struct atomisp_video_pipe *video);
void atomisp_acc_unregister(struct atomisp_acc_pipe *video);
diff --git a/drivers/staging/media/atomisp/pci/sh_css.c b/drivers/staging/media/atomisp/pci/sh_css.c
index ddee04c8248d..54a18921fbd1 100644
--- a/drivers/staging/media/atomisp/pci/sh_css.c
+++ b/drivers/staging/media/atomisp/pci/sh_css.c
@@ -527,6 +527,7 @@ ia_css_stream_input_format_bits_per_pixel(struct ia_css_stream *stream)
return bpp;
}
+/* TODO: move define to proper file in tools */
#define GP_ISEL_TPG_MODE 0x90058
#if !defined(ISP2401)
@@ -579,12 +580,8 @@ sh_css_config_input_network(struct ia_css_stream *stream) {
vblank_cycles = vblank_lines * (width + hblank_cycles);
sh_css_sp_configure_sync_gen(width, height, hblank_cycles,
vblank_cycles);
- if (!IS_ISP2401) {
- if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG) {
- /* TODO: move define to proper file in tools */
- ia_css_device_store_uint32(GP_ISEL_TPG_MODE, 0);
- }
- }
+ if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG)
+ ia_css_device_store_uint32(GP_ISEL_TPG_MODE, 0);
}
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"sh_css_config_input_network() leave:\n");
@@ -1019,16 +1016,14 @@ static bool sh_css_translate_stream_cfg_to_isys_stream_descr(
* ia_css_isys_stream_capture_indication() instead of
* ia_css_pipeline_sp_wait_for_isys_stream_N() as isp processing of
* capture takes longer than getting an ISYS frame
- *
- * Only 2401 relevant ??
*/
-#if 0 // FIXME: NOT USED on Yocto Aero
- isys_stream_descr->polling_mode
- = early_polling ? INPUT_SYSTEM_POLL_ON_CAPTURE_REQUEST
- : INPUT_SYSTEM_POLL_ON_WAIT_FOR_FRAME;
- ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
- "sh_css_translate_stream_cfg_to_isys_stream_descr() leave:\n");
-#endif
+ if (IS_ISP2401) {
+ isys_stream_descr->polling_mode
+ = early_polling ? INPUT_SYSTEM_POLL_ON_CAPTURE_REQUEST
+ : INPUT_SYSTEM_POLL_ON_WAIT_FOR_FRAME;
+ ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
+ "sh_css_translate_stream_cfg_to_isys_stream_descr() leave:\n");
+ }
return rc;
}
@@ -1451,7 +1446,7 @@ static void start_pipe(
assert(me); /* all callers are in this file and call with non null argument */
- if (!IS_ISP2401) {
+ if (IS_ISP2401) {
coord = &me->config.internal_frame_origin_bqs_on_sctbl;
params = me->stream->isp_params_configs;
}
diff --git a/drivers/staging/media/atomisp/pci/sh_css_mipi.c b/drivers/staging/media/atomisp/pci/sh_css_mipi.c
index d5ae7f0b5864..651eda0469b2 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_mipi.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_mipi.c
@@ -389,17 +389,17 @@ static bool buffers_needed(struct ia_css_pipe *pipe)
{
if (!IS_ISP2401) {
if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR)
- return false;
- else
return true;
+ else
+ return false;
}
if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_BUFFERED_SENSOR ||
pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG ||
pipe->stream->config.mode == IA_CSS_INPUT_MODE_PRBS)
- return false;
+ return true;
- return true;
+ return false;
}
int
@@ -439,14 +439,17 @@ allocate_mipi_frames(struct ia_css_pipe *pipe,
return 0; /* AM TODO: Check */
}
- if (!IS_ISP2401)
+ if (!IS_ISP2401) {
port = (unsigned int)pipe->stream->config.source.port.port;
- else
- err = ia_css_mipi_is_source_port_valid(pipe, &port);
+ } else {
+ /* Returns true if port is valid. So, invert it */
+ err = !ia_css_mipi_is_source_port_valid(pipe, &port);
+ }
assert(port < N_CSI_PORTS);
- if (port >= N_CSI_PORTS || err) {
+ if ((!IS_ISP2401 && port >= N_CSI_PORTS) ||
+ (IS_ISP2401 && err)) {
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"allocate_mipi_frames(%p) exit: error: port is not correct (port=%d).\n",
pipe, port);
@@ -571,14 +574,17 @@ free_mipi_frames(struct ia_css_pipe *pipe) {
return err;
}
- if (!IS_ISP2401)
+ if (!IS_ISP2401) {
port = (unsigned int)pipe->stream->config.source.port.port;
- else
- err = ia_css_mipi_is_source_port_valid(pipe, &port);
+ } else {
+ /* Returns true if port is valid. So, invert it */
+ err = !ia_css_mipi_is_source_port_valid(pipe, &port);
+ }
assert(port < N_CSI_PORTS);
- if (port >= N_CSI_PORTS || err) {
+ if ((!IS_ISP2401 && port >= N_CSI_PORTS) ||
+ (IS_ISP2401 && err)) {
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"free_mipi_frames(%p, %d) exit: error: pipe port is not correct.\n",
pipe, port);
@@ -683,14 +689,17 @@ send_mipi_frames(struct ia_css_pipe *pipe) {
/* TODO: AM: maybe this should be returning an error. */
}
- if (!IS_ISP2401)
+ if (!IS_ISP2401) {
port = (unsigned int)pipe->stream->config.source.port.port;
- else
- err = ia_css_mipi_is_source_port_valid(pipe, &port);
+ } else {
+ /* Returns true if port is valid. So, invert it */
+ err = !ia_css_mipi_is_source_port_valid(pipe, &port);
+ }
assert(port < N_CSI_PORTS);
- if (port >= N_CSI_PORTS || err) {
+ if ((!IS_ISP2401 && port >= N_CSI_PORTS) ||
+ (IS_ISP2401 && err)) {
IA_CSS_ERROR("send_mipi_frames(%p) exit: invalid port specified (port=%d).\n",
pipe, port);
return err;
diff --git a/drivers/staging/media/atomisp/pci/sh_css_params.c b/drivers/staging/media/atomisp/pci/sh_css_params.c
index 24fc497bd491..8d6514c45eeb 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_params.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_params.c
@@ -2437,7 +2437,7 @@ sh_css_create_isp_params(struct ia_css_stream *stream,
unsigned int i;
struct sh_css_ddr_address_map *ddr_ptrs;
struct sh_css_ddr_address_map_size *ddr_ptrs_size;
- int err = 0;
+ int err;
size_t params_size;
struct ia_css_isp_parameters *params =
kvmalloc(sizeof(struct ia_css_isp_parameters), GFP_KERNEL);
@@ -2482,7 +2482,11 @@ sh_css_create_isp_params(struct ia_css_stream *stream,
succ &= (ddr_ptrs->macc_tbl != mmgr_NULL);
*isp_params_out = params;
- return err;
+
+ if (!succ)
+ return -ENOMEM;
+
+ return 0;
}
static bool
diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c
index 7749ca9a8ebb..bc97ec0a7e4a 100644
--- a/drivers/staging/media/hantro/hantro_drv.c
+++ b/drivers/staging/media/hantro/hantro_drv.c
@@ -829,7 +829,7 @@ static int hantro_probe(struct platform_device *pdev)
ret = clk_bulk_prepare(vpu->variant->num_clocks, vpu->clocks);
if (ret) {
dev_err(&pdev->dev, "Failed to prepare clocks\n");
- return ret;
+ goto err_pm_disable;
}
ret = v4l2_device_register(&pdev->dev, &vpu->v4l2_dev);
@@ -885,6 +885,7 @@ static int hantro_probe(struct platform_device *pdev)
v4l2_device_unregister(&vpu->v4l2_dev);
err_clk_unprepare:
clk_bulk_unprepare(vpu->variant->num_clocks, vpu->clocks);
+err_pm_disable:
pm_runtime_dont_use_autosuspend(vpu->dev);
pm_runtime_disable(vpu->dev);
return ret;
diff --git a/drivers/staging/rtl8192e/rtllib.h b/drivers/staging/rtl8192e/rtllib.h
index 4cabaf21c1ca..367db4acc785 100644
--- a/drivers/staging/rtl8192e/rtllib.h
+++ b/drivers/staging/rtl8192e/rtllib.h
@@ -1982,7 +1982,7 @@ void rtllib_softmac_xmit(struct rtllib_txb *txb, struct rtllib_device *ieee);
void rtllib_stop_send_beacons(struct rtllib_device *ieee);
void notify_wx_assoc_event(struct rtllib_device *ieee);
void rtllib_start_ibss(struct rtllib_device *ieee);
-void rtllib_softmac_init(struct rtllib_device *ieee);
+int rtllib_softmac_init(struct rtllib_device *ieee);
void rtllib_softmac_free(struct rtllib_device *ieee);
void rtllib_disassociate(struct rtllib_device *ieee);
void rtllib_stop_scan(struct rtllib_device *ieee);
diff --git a/drivers/staging/rtl8192e/rtllib_module.c b/drivers/staging/rtl8192e/rtllib_module.c
index 64d9feee1f39..f00ac94b2639 100644
--- a/drivers/staging/rtl8192e/rtllib_module.c
+++ b/drivers/staging/rtl8192e/rtllib_module.c
@@ -88,7 +88,7 @@ struct net_device *alloc_rtllib(int sizeof_priv)
err = rtllib_networks_allocate(ieee);
if (err) {
pr_err("Unable to allocate beacon storage: %d\n", err);
- goto failed;
+ goto free_netdev;
}
rtllib_networks_initialize(ieee);
@@ -121,11 +121,13 @@ struct net_device *alloc_rtllib(int sizeof_priv)
ieee->hwsec_active = 0;
memset(ieee->swcamtable, 0, sizeof(struct sw_cam_table) * 32);
- rtllib_softmac_init(ieee);
+ err = rtllib_softmac_init(ieee);
+ if (err)
+ goto free_crypt_info;
ieee->pHTInfo = kzalloc(sizeof(struct rt_hi_throughput), GFP_KERNEL);
if (!ieee->pHTInfo)
- return NULL;
+ goto free_softmac;
HTUpdateDefaultSetting(ieee);
HTInitializeHTInfo(ieee);
@@ -141,8 +143,14 @@ struct net_device *alloc_rtllib(int sizeof_priv)
return dev;
- failed:
+free_softmac:
+ rtllib_softmac_free(ieee);
+free_crypt_info:
+ lib80211_crypt_info_free(&ieee->crypt_info);
+ rtllib_networks_free(ieee);
+free_netdev:
free_netdev(dev);
+
return NULL;
}
EXPORT_SYMBOL(alloc_rtllib);
diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c
index 2c752ba5a802..e8e72f79ca00 100644
--- a/drivers/staging/rtl8192e/rtllib_softmac.c
+++ b/drivers/staging/rtl8192e/rtllib_softmac.c
@@ -2953,7 +2953,7 @@ void rtllib_start_protocol(struct rtllib_device *ieee)
}
}
-void rtllib_softmac_init(struct rtllib_device *ieee)
+int rtllib_softmac_init(struct rtllib_device *ieee)
{
int i;
@@ -2964,7 +2964,8 @@ void rtllib_softmac_init(struct rtllib_device *ieee)
ieee->seq_ctrl[i] = 0;
ieee->dot11d_info = kzalloc(sizeof(struct rt_dot11d_info), GFP_ATOMIC);
if (!ieee->dot11d_info)
- netdev_err(ieee->dev, "Can't alloc memory for DOT11D\n");
+ return -ENOMEM;
+
ieee->LinkDetectInfo.SlotIndex = 0;
ieee->LinkDetectInfo.SlotNum = 2;
ieee->LinkDetectInfo.NumRecvBcnInPeriod = 0;
@@ -3030,6 +3031,7 @@ void rtllib_softmac_init(struct rtllib_device *ieee)
tasklet_setup(&ieee->ps_task, rtllib_sta_ps);
+ return 0;
}
void rtllib_softmac_free(struct rtllib_device *ieee)
diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c
index 6ade4a5c4840..dfc239c64ce3 100644
--- a/drivers/tee/tee_core.c
+++ b/drivers/tee/tee_core.c
@@ -98,8 +98,10 @@ void teedev_ctx_put(struct tee_context *ctx)
static void teedev_close_context(struct tee_context *ctx)
{
- tee_device_put(ctx->teedev);
+ struct tee_device *teedev = ctx->teedev;
+
teedev_ctx_put(ctx);
+ tee_device_put(teedev);
}
static int tee_open(struct inode *inode, struct file *filp)
diff --git a/drivers/thermal/imx8mm_thermal.c b/drivers/thermal/imx8mm_thermal.c
index a1e4f9bb4cb0..0f4cabd2a8c6 100644
--- a/drivers/thermal/imx8mm_thermal.c
+++ b/drivers/thermal/imx8mm_thermal.c
@@ -21,6 +21,7 @@
#define TPS 0x4
#define TRITSR 0x20 /* TMU immediate temp */
+#define TER_ADC_PD BIT(30)
#define TER_EN BIT(31)
#define TRITSR_TEMP0_VAL_MASK 0xff
#define TRITSR_TEMP1_VAL_MASK 0xff0000
@@ -113,6 +114,8 @@ static void imx8mm_tmu_enable(struct imx8mm_tmu *tmu, bool enable)
val = readl_relaxed(tmu->base + TER);
val = enable ? (val | TER_EN) : (val & ~TER_EN);
+ if (tmu->socdata->version == TMU_VER2)
+ val = enable ? (val & ~TER_ADC_PD) : (val | TER_ADC_PD);
writel_relaxed(val, tmu->base + TER);
}
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
index 2c7473d86a59..16663373b682 100644
--- a/drivers/thermal/imx_thermal.c
+++ b/drivers/thermal/imx_thermal.c
@@ -15,6 +15,7 @@
#include <linux/regmap.h>
#include <linux/thermal.h>
#include <linux/nvmem-consumer.h>
+#include <linux/pm_runtime.h>
#define REG_SET 0x4
#define REG_CLR 0x8
@@ -194,6 +195,7 @@ static struct thermal_soc_data thermal_imx7d_data = {
};
struct imx_thermal_data {
+ struct device *dev;
struct cpufreq_policy *policy;
struct thermal_zone_device *tz;
struct thermal_cooling_device *cdev;
@@ -252,44 +254,15 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
const struct thermal_soc_data *soc_data = data->socdata;
struct regmap *map = data->tempmon;
unsigned int n_meas;
- bool wait, run_measurement;
u32 val;
+ int ret;
- run_measurement = !data->irq_enabled;
- if (!run_measurement) {
- /* Check if a measurement is currently in progress */
- regmap_read(map, soc_data->temp_data, &val);
- wait = !(val & soc_data->temp_valid_mask);
- } else {
- /*
- * Every time we measure the temperature, we will power on the
- * temperature sensor, enable measurements, take a reading,
- * disable measurements, power off the temperature sensor.
- */
- regmap_write(map, soc_data->sensor_ctrl + REG_CLR,
- soc_data->power_down_mask);
- regmap_write(map, soc_data->sensor_ctrl + REG_SET,
- soc_data->measure_temp_mask);
-
- wait = true;
- }
-
- /*
- * According to the temp sensor designers, it may require up to ~17us
- * to complete a measurement.
- */
- if (wait)
- usleep_range(20, 50);
+ ret = pm_runtime_resume_and_get(data->dev);
+ if (ret < 0)
+ return ret;
regmap_read(map, soc_data->temp_data, &val);
- if (run_measurement) {
- regmap_write(map, soc_data->sensor_ctrl + REG_CLR,
- soc_data->measure_temp_mask);
- regmap_write(map, soc_data->sensor_ctrl + REG_SET,
- soc_data->power_down_mask);
- }
-
if ((val & soc_data->temp_valid_mask) == 0) {
dev_dbg(&tz->device, "temp measurement never finished\n");
return -EAGAIN;
@@ -328,6 +301,8 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
enable_irq(data->irq);
}
+ pm_runtime_put(data->dev);
+
return 0;
}
@@ -335,24 +310,16 @@ static int imx_change_mode(struct thermal_zone_device *tz,
enum thermal_device_mode mode)
{
struct imx_thermal_data *data = tz->devdata;
- struct regmap *map = data->tempmon;
- const struct thermal_soc_data *soc_data = data->socdata;
if (mode == THERMAL_DEVICE_ENABLED) {
- regmap_write(map, soc_data->sensor_ctrl + REG_CLR,
- soc_data->power_down_mask);
- regmap_write(map, soc_data->sensor_ctrl + REG_SET,
- soc_data->measure_temp_mask);
+ pm_runtime_get(data->dev);
if (!data->irq_enabled) {
data->irq_enabled = true;
enable_irq(data->irq);
}
} else {
- regmap_write(map, soc_data->sensor_ctrl + REG_CLR,
- soc_data->measure_temp_mask);
- regmap_write(map, soc_data->sensor_ctrl + REG_SET,
- soc_data->power_down_mask);
+ pm_runtime_put(data->dev);
if (data->irq_enabled) {
disable_irq(data->irq);
@@ -393,6 +360,11 @@ static int imx_set_trip_temp(struct thermal_zone_device *tz, int trip,
int temp)
{
struct imx_thermal_data *data = tz->devdata;
+ int ret;
+
+ ret = pm_runtime_resume_and_get(data->dev);
+ if (ret < 0)
+ return ret;
/* do not allow changing critical threshold */
if (trip == IMX_TRIP_CRITICAL)
@@ -406,6 +378,8 @@ static int imx_set_trip_temp(struct thermal_zone_device *tz, int trip,
imx_set_alarm_temp(data, temp);
+ pm_runtime_put(data->dev);
+
return 0;
}
@@ -681,6 +655,8 @@ static int imx_thermal_probe(struct platform_device *pdev)
if (!data)
return -ENOMEM;
+ data->dev = &pdev->dev;
+
map = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, "fsl,tempmon");
if (IS_ERR(map)) {
ret = PTR_ERR(map);
@@ -800,6 +776,16 @@ static int imx_thermal_probe(struct platform_device *pdev)
data->socdata->power_down_mask);
regmap_write(map, data->socdata->sensor_ctrl + REG_SET,
data->socdata->measure_temp_mask);
+ /* After power up, we need a delay before first access can be done. */
+ usleep_range(20, 50);
+
+ /* the core was configured and enabled just before */
+ pm_runtime_set_active(&pdev->dev);
+ pm_runtime_enable(data->dev);
+
+ ret = pm_runtime_resume_and_get(data->dev);
+ if (ret < 0)
+ goto disable_runtime_pm;
data->irq_enabled = true;
ret = thermal_zone_device_enable(data->tz);
@@ -814,10 +800,15 @@ static int imx_thermal_probe(struct platform_device *pdev)
goto thermal_zone_unregister;
}
+ pm_runtime_put(data->dev);
+
return 0;
thermal_zone_unregister:
thermal_zone_device_unregister(data->tz);
+disable_runtime_pm:
+ pm_runtime_put_noidle(data->dev);
+ pm_runtime_disable(data->dev);
clk_disable:
clk_disable_unprepare(data->thermal_clk);
legacy_cleanup:
@@ -829,13 +820,9 @@ static int imx_thermal_probe(struct platform_device *pdev)
static int imx_thermal_remove(struct platform_device *pdev)
{
struct imx_thermal_data *data = platform_get_drvdata(pdev);
- struct regmap *map = data->tempmon;
- /* Disable measurements */
- regmap_write(map, data->socdata->sensor_ctrl + REG_SET,
- data->socdata->power_down_mask);
- if (!IS_ERR(data->thermal_clk))
- clk_disable_unprepare(data->thermal_clk);
+ pm_runtime_put_noidle(data->dev);
+ pm_runtime_disable(data->dev);
thermal_zone_device_unregister(data->tz);
imx_thermal_unregister_legacy_cooling(data);
@@ -858,29 +845,79 @@ static int __maybe_unused imx_thermal_suspend(struct device *dev)
ret = thermal_zone_device_disable(data->tz);
if (ret)
return ret;
+
+ return pm_runtime_force_suspend(data->dev);
+}
+
+static int __maybe_unused imx_thermal_resume(struct device *dev)
+{
+ struct imx_thermal_data *data = dev_get_drvdata(dev);
+ int ret;
+
+ ret = pm_runtime_force_resume(data->dev);
+ if (ret)
+ return ret;
+ /* Enabled thermal sensor after resume */
+ return thermal_zone_device_enable(data->tz);
+}
+
+static int __maybe_unused imx_thermal_runtime_suspend(struct device *dev)
+{
+ struct imx_thermal_data *data = dev_get_drvdata(dev);
+ const struct thermal_soc_data *socdata = data->socdata;
+ struct regmap *map = data->tempmon;
+ int ret;
+
+ ret = regmap_write(map, socdata->sensor_ctrl + REG_CLR,
+ socdata->measure_temp_mask);
+ if (ret)
+ return ret;
+
+ ret = regmap_write(map, socdata->sensor_ctrl + REG_SET,
+ socdata->power_down_mask);
+ if (ret)
+ return ret;
+
clk_disable_unprepare(data->thermal_clk);
return 0;
}
-static int __maybe_unused imx_thermal_resume(struct device *dev)
+static int __maybe_unused imx_thermal_runtime_resume(struct device *dev)
{
struct imx_thermal_data *data = dev_get_drvdata(dev);
+ const struct thermal_soc_data *socdata = data->socdata;
+ struct regmap *map = data->tempmon;
int ret;
ret = clk_prepare_enable(data->thermal_clk);
if (ret)
return ret;
- /* Enabled thermal sensor after resume */
- ret = thermal_zone_device_enable(data->tz);
+
+ ret = regmap_write(map, socdata->sensor_ctrl + REG_CLR,
+ socdata->power_down_mask);
+ if (ret)
+ return ret;
+
+ ret = regmap_write(map, socdata->sensor_ctrl + REG_SET,
+ socdata->measure_temp_mask);
if (ret)
return ret;
+ /*
+ * According to the temp sensor designers, it may require up to ~17us
+ * to complete a measurement.
+ */
+ usleep_range(20, 50);
+
return 0;
}
-static SIMPLE_DEV_PM_OPS(imx_thermal_pm_ops,
- imx_thermal_suspend, imx_thermal_resume);
+static const struct dev_pm_ops imx_thermal_pm_ops = {
+ SET_SYSTEM_SLEEP_PM_OPS(imx_thermal_suspend, imx_thermal_resume)
+ SET_RUNTIME_PM_OPS(imx_thermal_runtime_suspend,
+ imx_thermal_runtime_resume, NULL)
+};
static struct platform_driver imx_thermal = {
.driver = {
diff --git a/drivers/thunderbolt/acpi.c b/drivers/thunderbolt/acpi.c
index b5442f979b4d..6355fdf7d71a 100644
--- a/drivers/thunderbolt/acpi.c
+++ b/drivers/thunderbolt/acpi.c
@@ -7,6 +7,7 @@
*/
#include <linux/acpi.h>
+#include <linux/pm_runtime.h>
#include "tb.h"
@@ -74,8 +75,18 @@ static acpi_status tb_acpi_add_link(acpi_handle handle, u32 level, void *data,
pci_pcie_type(pdev) == PCI_EXP_TYPE_DOWNSTREAM))) {
const struct device_link *link;
+ /*
+ * Make them both active first to make sure the NHI does
+ * not runtime suspend before the consumer. The
+ * pm_runtime_put() below then allows the consumer to
+ * runtime suspend again (which then allows NHI runtime
+ * suspend too now that the device link is established).
+ */
+ pm_runtime_get_sync(&pdev->dev);
+
link = device_link_add(&pdev->dev, &nhi->pdev->dev,
DL_FLAG_AUTOREMOVE_SUPPLIER |
+ DL_FLAG_RPM_ACTIVE |
DL_FLAG_PM_RUNTIME);
if (link) {
dev_dbg(&nhi->pdev->dev, "created link from %s\n",
@@ -84,6 +95,8 @@ static acpi_status tb_acpi_add_link(acpi_handle handle, u32 level, void *data,
dev_warn(&nhi->pdev->dev, "device link creation from %s failed\n",
dev_name(&pdev->dev));
}
+
+ pm_runtime_put(&pdev->dev);
}
out_put:
diff --git a/drivers/tty/serial/amba-pl010.c b/drivers/tty/serial/amba-pl010.c
index 3284f34e9dfe..75d61e038a77 100644
--- a/drivers/tty/serial/amba-pl010.c
+++ b/drivers/tty/serial/amba-pl010.c
@@ -448,14 +448,11 @@ pl010_set_termios(struct uart_port *port, struct ktermios *termios,
if ((termios->c_cflag & CREAD) == 0)
uap->port.ignore_status_mask |= UART_DUMMY_RSR_RX;
- /* first, disable everything */
old_cr = readb(uap->port.membase + UART010_CR) & ~UART010_CR_MSIE;
if (UART_ENABLE_MS(port, termios->c_cflag))
old_cr |= UART010_CR_MSIE;
- writel(0, uap->port.membase + UART010_CR);
-
/* Set baud rate */
quot -= 1;
writel((quot & 0xf00) >> 8, uap->port.membase + UART010_LCRM);
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index b3cddcdcbdad..61183e7ff009 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -2083,32 +2083,13 @@ static const char *pl011_type(struct uart_port *port)
return uap->port.type == PORT_AMBA ? uap->type : NULL;
}
-/*
- * Release the memory region(s) being used by 'port'
- */
-static void pl011_release_port(struct uart_port *port)
-{
- release_mem_region(port->mapbase, SZ_4K);
-}
-
-/*
- * Request the memory region(s) being used by 'port'
- */
-static int pl011_request_port(struct uart_port *port)
-{
- return request_mem_region(port->mapbase, SZ_4K, "uart-pl011")
- != NULL ? 0 : -EBUSY;
-}
-
/*
* Configure/autoconfigure the port.
*/
static void pl011_config_port(struct uart_port *port, int flags)
{
- if (flags & UART_CONFIG_TYPE) {
+ if (flags & UART_CONFIG_TYPE)
port->type = PORT_AMBA;
- pl011_request_port(port);
- }
}
/*
@@ -2123,6 +2104,8 @@ static int pl011_verify_port(struct uart_port *port, struct serial_struct *ser)
ret = -EINVAL;
if (ser->baud_base < 9600)
ret = -EINVAL;
+ if (port->mapbase != (unsigned long) ser->iomem_base)
+ ret = -EINVAL;
return ret;
}
@@ -2140,8 +2123,6 @@ static const struct uart_ops amba_pl011_pops = {
.flush_buffer = pl011_dma_flush_buffer,
.set_termios = pl011_set_termios,
.type = pl011_type,
- .release_port = pl011_release_port,
- .request_port = pl011_request_port,
.config_port = pl011_config_port,
.verify_port = pl011_verify_port,
#ifdef CONFIG_CONSOLE_POLL
@@ -2171,8 +2152,6 @@ static const struct uart_ops sbsa_uart_pops = {
.shutdown = sbsa_uart_shutdown,
.set_termios = sbsa_uart_set_termios,
.type = pl011_type,
- .release_port = pl011_release_port,
- .request_port = pl011_request_port,
.config_port = pl011_config_port,
.verify_port = pl011_verify_port,
#ifdef CONFIG_CONSOLE_POLL
diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
index a24e5c2b30bc..602065bfc9bb 100644
--- a/drivers/tty/serial/atmel_serial.c
+++ b/drivers/tty/serial/atmel_serial.c
@@ -1004,6 +1004,13 @@ static void atmel_tx_dma(struct uart_port *port)
desc->callback = atmel_complete_tx_dma;
desc->callback_param = atmel_port;
atmel_port->cookie_tx = dmaengine_submit(desc);
+ if (dma_submit_error(atmel_port->cookie_tx)) {
+ dev_err(port->dev, "dma_submit_error %d\n",
+ atmel_port->cookie_tx);
+ return;
+ }
+
+ dma_async_issue_pending(chan);
}
if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
@@ -1264,6 +1271,13 @@ static int atmel_prepare_rx_dma(struct uart_port *port)
desc->callback_param = port;
atmel_port->desc_rx = desc;
atmel_port->cookie_rx = dmaengine_submit(desc);
+ if (dma_submit_error(atmel_port->cookie_rx)) {
+ dev_err(port->dev, "dma_submit_error %d\n",
+ atmel_port->cookie_rx);
+ goto chan_err;
+ }
+
+ dma_async_issue_pending(atmel_port->chan_rx);
return 0;
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index 28cc328ddb6e..93cd8ad57f38 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -508,18 +508,21 @@ static void imx_uart_stop_tx(struct uart_port *port)
static void imx_uart_stop_rx(struct uart_port *port)
{
struct imx_port *sport = (struct imx_port *)port;
- u32 ucr1, ucr2;
+ u32 ucr1, ucr2, ucr4;
ucr1 = imx_uart_readl(sport, UCR1);
ucr2 = imx_uart_readl(sport, UCR2);
+ ucr4 = imx_uart_readl(sport, UCR4);
if (sport->dma_is_enabled) {
ucr1 &= ~(UCR1_RXDMAEN | UCR1_ATDMAEN);
} else {
ucr1 &= ~UCR1_RRDYEN;
ucr2 &= ~UCR2_ATEN;
+ ucr4 &= ~UCR4_OREN;
}
imx_uart_writel(sport, ucr1, UCR1);
+ imx_uart_writel(sport, ucr4, UCR4);
ucr2 &= ~UCR2_RXEN;
imx_uart_writel(sport, ucr2, UCR2);
@@ -1576,7 +1579,7 @@ static void imx_uart_shutdown(struct uart_port *port)
imx_uart_writel(sport, ucr1, UCR1);
ucr4 = imx_uart_readl(sport, UCR4);
- ucr4 &= ~(UCR4_OREN | UCR4_TCEN);
+ ucr4 &= ~UCR4_TCEN;
imx_uart_writel(sport, ucr4, UCR4);
spin_unlock_irqrestore(&sport->port.lock, flags);
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index 046bedca7b8f..be0d9922e320 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -162,7 +162,7 @@ static void uart_port_dtr_rts(struct uart_port *uport, int raise)
int RTS_after_send = !!(uport->rs485.flags & SER_RS485_RTS_AFTER_SEND);
if (raise) {
- if (rs485_on && !RTS_after_send) {
+ if (rs485_on && RTS_after_send) {
uart_set_mctrl(uport, TIOCM_DTR);
uart_clear_mctrl(uport, TIOCM_RTS);
} else {
@@ -171,7 +171,7 @@ static void uart_port_dtr_rts(struct uart_port *uport, int raise)
} else {
unsigned int clear = TIOCM_DTR;
- clear |= (!rs485_on || !RTS_after_send) ? TIOCM_RTS : 0;
+ clear |= (!rs485_on || RTS_after_send) ? TIOCM_RTS : 0;
uart_clear_mctrl(uport, clear);
}
}
@@ -2414,7 +2414,8 @@ uart_configure_port(struct uart_driver *drv, struct uart_state *state,
* We probably don't need a spinlock around this, but
*/
spin_lock_irqsave(&port->lock, flags);
- port->ops->set_mctrl(port, port->mctrl & TIOCM_DTR);
+ port->mctrl &= TIOCM_DTR;
+ port->ops->set_mctrl(port, port->mctrl);
spin_unlock_irqrestore(&port->lock, flags);
/*
diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
index 7081ab322b40..48923cd8c07d 100644
--- a/drivers/tty/serial/uartlite.c
+++ b/drivers/tty/serial/uartlite.c
@@ -615,7 +615,7 @@ static struct uart_driver ulite_uart_driver = {
*
* Returns: 0 on success, <0 otherwise
*/
-static int ulite_assign(struct device *dev, int id, u32 base, int irq,
+static int ulite_assign(struct device *dev, int id, phys_addr_t base, int irq,
struct uartlite_data *pdata)
{
struct uart_port *port;
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index af15dbe6bb14..18ee3914b468 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1109,7 +1109,10 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type)
} else {
hub_power_on(hub, true);
}
- }
+ /* Give some time on remote wakeup to let links to transit to U0 */
+ } else if (hub_is_superspeed(hub->hdev))
+ msleep(20);
+
init2:
/*
diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
index 2a29e2f681fe..504f8af4d0f8 100644
--- a/drivers/usb/dwc3/dwc3-qcom.c
+++ b/drivers/usb/dwc3/dwc3-qcom.c
@@ -764,9 +764,12 @@ static int dwc3_qcom_probe(struct platform_device *pdev)
if (qcom->acpi_pdata->is_urs) {
qcom->urs_usb = dwc3_qcom_create_urs_usb_platdev(dev);
- if (!qcom->urs_usb) {
+ if (IS_ERR_OR_NULL(qcom->urs_usb)) {
dev_err(dev, "failed to create URS USB platdev\n");
- return -ENODEV;
+ if (!qcom->urs_usb)
+ return -ENODEV;
+ else
+ return PTR_ERR(qcom->urs_usb);
}
}
}
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
index cbb7947f366f..d8652321e15e 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -614,7 +614,7 @@ static int ffs_ep0_open(struct inode *inode, struct file *file)
file->private_data = ffs;
ffs_data_opened(ffs);
- return 0;
+ return stream_open(inode, file);
}
static int ffs_ep0_release(struct inode *inode, struct file *file)
@@ -1152,7 +1152,7 @@ ffs_epfile_open(struct inode *inode, struct file *file)
file->private_data = epfile;
ffs_data_opened(epfile->ffs);
- return 0;
+ return stream_open(inode, file);
}
static int ffs_aio_cancel(struct kiocb *kiocb)
diff --git a/drivers/usb/host/uhci-platform.c b/drivers/usb/host/uhci-platform.c
index 70dbd95c3f06..be9e9db7cad1 100644
--- a/drivers/usb/host/uhci-platform.c
+++ b/drivers/usb/host/uhci-platform.c
@@ -113,7 +113,8 @@ static int uhci_hcd_platform_probe(struct platform_device *pdev)
num_ports);
}
if (of_device_is_compatible(np, "aspeed,ast2400-uhci") ||
- of_device_is_compatible(np, "aspeed,ast2500-uhci")) {
+ of_device_is_compatible(np, "aspeed,ast2500-uhci") ||
+ of_device_is_compatible(np, "aspeed,ast2600-uhci")) {
uhci->is_aspeed = 1;
dev_info(&pdev->dev,
"Enabled Aspeed implementation workarounds\n");
diff --git a/drivers/usb/misc/ftdi-elan.c b/drivers/usb/misc/ftdi-elan.c
index 8a3d9c0c8d8b..157b31d354ac 100644
--- a/drivers/usb/misc/ftdi-elan.c
+++ b/drivers/usb/misc/ftdi-elan.c
@@ -202,6 +202,7 @@ static void ftdi_elan_delete(struct kref *kref)
mutex_unlock(&ftdi_module_lock);
kfree(ftdi->bulk_in_buffer);
ftdi->bulk_in_buffer = NULL;
+ kfree(ftdi);
}
static void ftdi_elan_put_kref(struct usb_ftdi *ftdi)
diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c
index fbdc9468818d..65d6f8fd81e7 100644
--- a/drivers/vdpa/mlx5/net/mlx5_vnet.c
+++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c
@@ -812,8 +812,6 @@ static int create_virtqueue(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtque
MLX5_SET(virtio_q, vq_ctx, umem_3_id, mvq->umem3.id);
MLX5_SET(virtio_q, vq_ctx, umem_3_size, mvq->umem3.size);
MLX5_SET(virtio_q, vq_ctx, pd, ndev->mvdev.res.pdn);
- if (MLX5_CAP_DEV_VDPA_EMULATION(ndev->mvdev.mdev, eth_frame_offload_type))
- MLX5_SET(virtio_q, vq_ctx, virtio_version_1_0, 1);
err = mlx5_cmd_exec(ndev->mvdev.mdev, in, inlen, out, sizeof(out));
if (err)
diff --git a/drivers/video/backlight/qcom-wled.c b/drivers/video/backlight/qcom-wled.c
index cd11c5776438..486d35da0150 100644
--- a/drivers/video/backlight/qcom-wled.c
+++ b/drivers/video/backlight/qcom-wled.c
@@ -231,14 +231,14 @@ struct wled {
static int wled3_set_brightness(struct wled *wled, u16 brightness)
{
int rc, i;
- u8 v[2];
+ __le16 v;
- v[0] = brightness & 0xff;
- v[1] = (brightness >> 8) & 0xf;
+ v = cpu_to_le16(brightness & WLED3_SINK_REG_BRIGHT_MAX);
for (i = 0; i < wled->cfg.num_strings; ++i) {
rc = regmap_bulk_write(wled->regmap, wled->ctrl_addr +
- WLED3_SINK_REG_BRIGHT(i), v, 2);
+ WLED3_SINK_REG_BRIGHT(wled->cfg.enabled_strings[i]),
+ &v, sizeof(v));
if (rc < 0)
return rc;
}
@@ -250,18 +250,18 @@ static int wled4_set_brightness(struct wled *wled, u16 brightness)
{
int rc, i;
u16 low_limit = wled->max_brightness * 4 / 1000;
- u8 v[2];
+ __le16 v;
/* WLED4's lower limit of operation is 0.4% */
if (brightness > 0 && brightness < low_limit)
brightness = low_limit;
- v[0] = brightness & 0xff;
- v[1] = (brightness >> 8) & 0xf;
+ v = cpu_to_le16(brightness & WLED3_SINK_REG_BRIGHT_MAX);
for (i = 0; i < wled->cfg.num_strings; ++i) {
rc = regmap_bulk_write(wled->regmap, wled->sink_addr +
- WLED4_SINK_REG_BRIGHT(i), v, 2);
+ WLED4_SINK_REG_BRIGHT(wled->cfg.enabled_strings[i]),
+ &v, sizeof(v));
if (rc < 0)
return rc;
}
@@ -273,21 +273,20 @@ static int wled5_set_brightness(struct wled *wled, u16 brightness)
{
int rc, offset;
u16 low_limit = wled->max_brightness * 1 / 1000;
- u8 v[2];
+ __le16 v;
/* WLED5's lower limit is 0.1% */
if (brightness < low_limit)
brightness = low_limit;
- v[0] = brightness & 0xff;
- v[1] = (brightness >> 8) & 0x7f;
+ v = cpu_to_le16(brightness & WLED5_SINK_REG_BRIGHT_MAX_15B);
offset = (wled->cfg.mod_sel == MOD_A) ?
WLED5_SINK_REG_MOD_A_BRIGHTNESS_LSB :
WLED5_SINK_REG_MOD_B_BRIGHTNESS_LSB;
rc = regmap_bulk_write(wled->regmap, wled->sink_addr + offset,
- v, 2);
+ &v, sizeof(v));
return rc;
}
@@ -572,7 +571,7 @@ static irqreturn_t wled_short_irq_handler(int irq, void *_wled)
static void wled_auto_string_detection(struct wled *wled)
{
- int rc = 0, i, delay_time_us;
+ int rc = 0, i, j, delay_time_us;
u32 sink_config = 0;
u8 sink_test = 0, sink_valid = 0, val;
bool fault_set;
@@ -619,14 +618,15 @@ static void wled_auto_string_detection(struct wled *wled)
/* Iterate through the strings one by one */
for (i = 0; i < wled->cfg.num_strings; i++) {
- sink_test = BIT((WLED4_SINK_REG_CURR_SINK_SHFT + i));
+ j = wled->cfg.enabled_strings[i];
+ sink_test = BIT((WLED4_SINK_REG_CURR_SINK_SHFT + j));
/* Enable feedback control */
rc = regmap_write(wled->regmap, wled->ctrl_addr +
- WLED3_CTRL_REG_FEEDBACK_CONTROL, i + 1);
+ WLED3_CTRL_REG_FEEDBACK_CONTROL, j + 1);
if (rc < 0) {
dev_err(wled->dev, "Failed to enable feedback for SINK %d rc = %d\n",
- i + 1, rc);
+ j + 1, rc);
goto failed_detect;
}
@@ -635,7 +635,7 @@ static void wled_auto_string_detection(struct wled *wled)
WLED4_SINK_REG_CURR_SINK, sink_test);
if (rc < 0) {
dev_err(wled->dev, "Failed to configure SINK %d rc=%d\n",
- i + 1, rc);
+ j + 1, rc);
goto failed_detect;
}
@@ -662,7 +662,7 @@ static void wled_auto_string_detection(struct wled *wled)
if (fault_set)
dev_dbg(wled->dev, "WLED OVP fault detected with SINK %d\n",
- i + 1);
+ j + 1);
else
sink_valid |= sink_test;
@@ -702,15 +702,16 @@ static void wled_auto_string_detection(struct wled *wled)
/* Enable valid sinks */
if (wled->version == 4) {
for (i = 0; i < wled->cfg.num_strings; i++) {
+ j = wled->cfg.enabled_strings[i];
if (sink_config &
- BIT(WLED4_SINK_REG_CURR_SINK_SHFT + i))
+ BIT(WLED4_SINK_REG_CURR_SINK_SHFT + j))
val = WLED4_SINK_REG_STR_MOD_MASK;
else
/* Disable modulator_en for unused sink */
val = 0;
rc = regmap_write(wled->regmap, wled->sink_addr +
- WLED4_SINK_REG_STR_MOD_EN(i), val);
+ WLED4_SINK_REG_STR_MOD_EN(j), val);
if (rc < 0) {
dev_err(wled->dev, "Failed to configure MODULATOR_EN rc=%d\n",
rc);
@@ -1256,21 +1257,6 @@ static const struct wled_var_cfg wled5_ovp_cfg = {
.size = 16,
};
-static u32 wled3_num_strings_values_fn(u32 idx)
-{
- return idx + 1;
-}
-
-static const struct wled_var_cfg wled3_num_strings_cfg = {
- .fn = wled3_num_strings_values_fn,
- .size = 3,
-};
-
-static const struct wled_var_cfg wled4_num_strings_cfg = {
- .fn = wled3_num_strings_values_fn,
- .size = 4,
-};
-
static u32 wled3_switch_freq_values_fn(u32 idx)
{
return 19200 / (2 * (1 + idx));
@@ -1344,11 +1330,6 @@ static int wled_configure(struct wled *wled)
.val_ptr = &cfg->switch_freq,
.cfg = &wled3_switch_freq_cfg,
},
- {
- .name = "qcom,num-strings",
- .val_ptr = &cfg->num_strings,
- .cfg = &wled3_num_strings_cfg,
- },
};
const struct wled_u32_opts wled4_opts[] = {
@@ -1372,11 +1353,6 @@ static int wled_configure(struct wled *wled)
.val_ptr = &cfg->switch_freq,
.cfg = &wled3_switch_freq_cfg,
},
- {
- .name = "qcom,num-strings",
- .val_ptr = &cfg->num_strings,
- .cfg = &wled4_num_strings_cfg,
- },
};
const struct wled_u32_opts wled5_opts[] = {
@@ -1400,11 +1376,6 @@ static int wled_configure(struct wled *wled)
.val_ptr = &cfg->switch_freq,
.cfg = &wled3_switch_freq_cfg,
},
- {
- .name = "qcom,num-strings",
- .val_ptr = &cfg->num_strings,
- .cfg = &wled4_num_strings_cfg,
- },
{
.name = "qcom,modulator-sel",
.val_ptr = &cfg->mod_sel,
@@ -1523,16 +1494,57 @@ static int wled_configure(struct wled *wled)
*bool_opts[i].val_ptr = true;
}
- cfg->num_strings = cfg->num_strings + 1;
-
string_len = of_property_count_elems_of_size(dev->of_node,
"qcom,enabled-strings",
sizeof(u32));
- if (string_len > 0)
- of_property_read_u32_array(dev->of_node,
+ if (string_len > 0) {
+ if (string_len > wled->max_string_count) {
+ dev_err(dev, "Cannot have more than %d strings\n",
+ wled->max_string_count);
+ return -EINVAL;
+ }
+
+ rc = of_property_read_u32_array(dev->of_node,
"qcom,enabled-strings",
wled->cfg.enabled_strings,
- sizeof(u32));
+ string_len);
+ if (rc) {
+ dev_err(dev, "Failed to read %d elements from qcom,enabled-strings: %d\n",
+ string_len, rc);
+ return rc;
+ }
+
+ for (i = 0; i < string_len; ++i) {
+ if (wled->cfg.enabled_strings[i] >= wled->max_string_count) {
+ dev_err(dev,
+ "qcom,enabled-strings index %d at %d is out of bounds\n",
+ wled->cfg.enabled_strings[i], i);
+ return -EINVAL;
+ }
+ }
+
+ cfg->num_strings = string_len;
+ }
+
+ rc = of_property_read_u32(dev->of_node, "qcom,num-strings", &val);
+ if (!rc) {
+ if (val < 1 || val > wled->max_string_count) {
+ dev_err(dev, "qcom,num-strings must be between 1 and %d\n",
+ wled->max_string_count);
+ return -EINVAL;
+ }
+
+ if (string_len > 0) {
+ dev_warn(dev, "Only one of qcom,num-strings or qcom,enabled-strings"
+ " should be set\n");
+ if (val > string_len) {
+ dev_err(dev, "qcom,num-strings exceeds qcom,enabled-strings\n");
+ return -EINVAL;
+ }
+ }
+
+ cfg->num_strings = val;
+ }
return 0;
}
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index cce75d3b3ba0..3cc2a4ee7152 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -1124,8 +1124,10 @@ static inline int virtqueue_add_packed(struct virtqueue *_vq,
if (virtqueue_use_indirect(_vq, total_sg)) {
err = virtqueue_add_indirect_packed(vq, sgs, total_sg, out_sgs,
in_sgs, data, gfp);
- if (err != -ENOMEM)
+ if (err != -ENOMEM) {
+ END_USE(vq);
return err;
+ }
/* fall back on direct */
}
diff --git a/drivers/w1/slaves/w1_ds28e04.c b/drivers/w1/slaves/w1_ds28e04.c
index e4f336111edc..6cef6e2edb89 100644
--- a/drivers/w1/slaves/w1_ds28e04.c
+++ b/drivers/w1/slaves/w1_ds28e04.c
@@ -32,7 +32,7 @@ static int w1_strong_pullup = 1;
module_param_named(strong_pullup, w1_strong_pullup, int, 0);
/* enable/disable CRC checking on DS28E04-100 memory accesses */
-static char w1_enable_crccheck = 1;
+static bool w1_enable_crccheck = true;
#define W1_EEPROM_SIZE 512
#define W1_PAGE_COUNT 16
@@ -339,32 +339,18 @@ static BIN_ATTR_RW(pio, 1);
static ssize_t crccheck_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
- if (put_user(w1_enable_crccheck + 0x30, buf))
- return -EFAULT;
-
- return sizeof(w1_enable_crccheck);
+ return sysfs_emit(buf, "%d\n", w1_enable_crccheck);
}
static ssize_t crccheck_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
- char val;
-
- if (count != 1 || !buf)
- return -EINVAL;
+ int err = kstrtobool(buf, &w1_enable_crccheck);
- if (get_user(val, buf))
- return -EFAULT;
+ if (err)
+ return err;
- /* convert to decimal */
- val = val - 0x30;
- if (val != 0 && val != 1)
- return -EINVAL;
-
- /* set the new value */
- w1_enable_crccheck = val;
-
- return sizeof(w1_enable_crccheck);
+ return count;
}
static DEVICE_ATTR_RW(crccheck);
diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
index b9651f797676..54778aadf618 100644
--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -240,13 +240,13 @@ void gntdev_put_map(struct gntdev_priv *priv, struct gntdev_grant_map *map)
if (!refcount_dec_and_test(&map->users))
return;
+ if (map->pages && !use_ptemod)
+ unmap_grant_pages(map, 0, map->count);
+
if (map->notify.flags & UNMAP_NOTIFY_SEND_EVENT) {
notify_remote_via_evtchn(map->notify.event);
evtchn_put(map->notify.event);
}
-
- if (map->pages && !use_ptemod)
- unmap_grant_pages(map, 0, map->count);
gntdev_free_map(map);
}
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
index 6e447bdaf9ec..baff31a147e7 100644
--- a/fs/btrfs/backref.c
+++ b/fs/btrfs/backref.c
@@ -1213,7 +1213,12 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans,
ret = btrfs_search_slot(trans, fs_info->extent_root, &key, path, 0, 0);
if (ret < 0)
goto out;
- BUG_ON(ret == 0);
+ if (ret == 0) {
+ /* This shouldn't happen, indicates a bug or fs corruption. */
+ ASSERT(ret != 0);
+ ret = -EUCLEAN;
+ goto out;
+ }
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
if (trans && likely(trans->type != __TRANS_DUMMY) &&
@@ -1361,10 +1366,18 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans,
goto out;
if (!ret && extent_item_pos) {
/*
- * we've recorded that parent, so we must extend
- * its inode list here
+ * We've recorded that parent, so we must extend
+ * its inode list here.
+ *
+ * However if there was corruption we may not
+ * have found an eie, return an error in this
+ * case.
*/
- BUG_ON(!eie);
+ ASSERT(eie);
+ if (!eie) {
+ ret = -EUCLEAN;
+ goto out;
+ }
while (eie->next)
eie = eie->next;
eie->next = ref->inode_list;
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 519cf145f9bd..5addd1e36a8e 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -2589,12 +2589,9 @@ static struct extent_buffer *btrfs_search_slot_get_root(struct btrfs_root *root,
{
struct btrfs_fs_info *fs_info = root->fs_info;
struct extent_buffer *b;
- int root_lock;
+ int root_lock = 0;
int level = 0;
- /* We try very hard to do read locks on the root */
- root_lock = BTRFS_READ_LOCK;
-
if (p->search_commit_root) {
/*
* The commit roots are read only so we always do read locks,
@@ -2632,6 +2629,9 @@ static struct extent_buffer *btrfs_search_slot_get_root(struct btrfs_root *root,
goto out;
}
+ /* We try very hard to do read locks on the root */
+ root_lock = BTRFS_READ_LOCK;
+
/*
* If the level is set to maximum, we can skip trying to get the read
* lock.
@@ -2658,6 +2658,17 @@ static struct extent_buffer *btrfs_search_slot_get_root(struct btrfs_root *root,
level = btrfs_header_level(b);
out:
+ /*
+ * The root may have failed to write out at some point, and thus is no
+ * longer valid, return an error in this case.
+ */
+ if (!extent_buffer_uptodate(b)) {
+ if (root_lock)
+ btrfs_tree_unlock_rw(b, root_lock);
+ free_extent_buffer(b);
+ return ERR_PTR(-EIO);
+ }
+
p->nodes[level] = b;
if (!p->skip_locking)
p->locks[level] = root_lock;
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index ff3f0638cdb9..1d9262a35473 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -10094,9 +10094,19 @@ static int btrfs_add_swap_extent(struct swap_info_struct *sis,
struct btrfs_swap_info *bsi)
{
unsigned long nr_pages;
+ unsigned long max_pages;
u64 first_ppage, first_ppage_reported, next_ppage;
int ret;
+ /*
+ * Our swapfile may have had its size extended after the swap header was
+ * written. In that case activating the swapfile should not go beyond
+ * the max size set in the swap header.
+ */
+ if (bsi->nr_pages >= sis->max)
+ return 0;
+
+ max_pages = sis->max - bsi->nr_pages;
first_ppage = ALIGN(bsi->block_start, PAGE_SIZE) >> PAGE_SHIFT;
next_ppage = ALIGN_DOWN(bsi->block_start + bsi->block_len,
PAGE_SIZE) >> PAGE_SHIFT;
@@ -10104,6 +10114,7 @@ static int btrfs_add_swap_extent(struct swap_info_struct *sis,
if (first_ppage >= next_ppage)
return 0;
nr_pages = next_ppage - first_ppage;
+ nr_pages = min(nr_pages, max_pages);
first_ppage_reported = first_ppage;
if (bsi->start == 0)
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
index 4bac32a274ce..f65aa4ed5ca1 100644
--- a/fs/btrfs/qgroup.c
+++ b/fs/btrfs/qgroup.c
@@ -941,6 +941,14 @@ int btrfs_quota_enable(struct btrfs_fs_info *fs_info)
int ret = 0;
int slot;
+ /*
+ * We need to have subvol_sem write locked, to prevent races between
+ * concurrent tasks trying to enable quotas, because we will unlock
+ * and relock qgroup_ioctl_lock before setting fs_info->quota_root
+ * and before setting BTRFS_FS_QUOTA_ENABLED.
+ */
+ lockdep_assert_held_write(&fs_info->subvol_sem);
+
mutex_lock(&fs_info->qgroup_ioctl_lock);
if (fs_info->quota_root)
goto out;
@@ -1118,8 +1126,19 @@ int btrfs_quota_enable(struct btrfs_fs_info *fs_info)
goto out_free_path;
}
+ mutex_unlock(&fs_info->qgroup_ioctl_lock);
+ /*
+ * Commit the transaction while not holding qgroup_ioctl_lock, to avoid
+ * a deadlock with tasks concurrently doing other qgroup operations, such
+ * adding/removing qgroups or adding/deleting qgroup relations for example,
+ * because all qgroup operations first start or join a transaction and then
+ * lock the qgroup_ioctl_lock mutex.
+ * We are safe from a concurrent task trying to enable quotas, by calling
+ * this function, since we are serialized by fs_info->subvol_sem.
+ */
ret = btrfs_commit_transaction(trans);
trans = NULL;
+ mutex_lock(&fs_info->qgroup_ioctl_lock);
if (ret)
goto out_free_path;
diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c
index 3aa5eb9ce498..96059af28f50 100644
--- a/fs/debugfs/file.c
+++ b/fs/debugfs/file.c
@@ -147,7 +147,7 @@ static int debugfs_locked_down(struct inode *inode,
struct file *filp,
const struct file_operations *real_fops)
{
- if ((inode->i_mode & 07777) == 0444 &&
+ if ((inode->i_mode & 07777 & ~0444) == 0 &&
!(filp->f_mode & FMODE_WRITE) &&
!real_fops->unlocked_ioctl &&
!real_fops->compat_ioctl &&
diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
index 002123efc6b0..1e9d8999b939 100644
--- a/fs/dlm/lock.c
+++ b/fs/dlm/lock.c
@@ -3975,6 +3975,14 @@ static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms)
int from = ms->m_header.h_nodeid;
int error = 0;
+ /* currently mixing of user/kernel locks are not supported */
+ if (ms->m_flags & DLM_IFL_USER && ~lkb->lkb_flags & DLM_IFL_USER) {
+ log_error(lkb->lkb_resource->res_ls,
+ "got user dlm message for a kernel lock");
+ error = -EINVAL;
+ goto out;
+ }
+
switch (ms->m_type) {
case DLM_MSG_CONVERT:
case DLM_MSG_UNLOCK:
@@ -4003,6 +4011,7 @@ static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms)
error = -EINVAL;
}
+out:
if (error)
log_error(lkb->lkb_resource->res_ls,
"ignore invalid message %d from %d %x %x %x %d",
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index 0c78fdfb1f6f..68b765369c92 100644
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -471,8 +471,8 @@ int dlm_lowcomms_connect_node(int nodeid)
static void lowcomms_error_report(struct sock *sk)
{
struct connection *con;
- struct sockaddr_storage saddr;
void (*orig_report)(struct sock *) = NULL;
+ struct inet_sock *inet;
read_lock_bh(&sk->sk_callback_lock);
con = sock2con(sk);
@@ -480,34 +480,33 @@ static void lowcomms_error_report(struct sock *sk)
goto out;
orig_report = listen_sock.sk_error_report;
- if (con->sock == NULL ||
- kernel_getpeername(con->sock, (struct sockaddr *)&saddr) < 0) {
- printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
- "sending to node %d, port %d, "
- "sk_err=%d/%d\n", dlm_our_nodeid(),
- con->nodeid, dlm_config.ci_tcp_port,
- sk->sk_err, sk->sk_err_soft);
- } else if (saddr.ss_family == AF_INET) {
- struct sockaddr_in *sin4 = (struct sockaddr_in *)&saddr;
+ inet = inet_sk(sk);
+ switch (sk->sk_family) {
+ case AF_INET:
printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
- "sending to node %d at %pI4, port %d, "
+ "sending to node %d at %pI4, dport %d, "
"sk_err=%d/%d\n", dlm_our_nodeid(),
- con->nodeid, &sin4->sin_addr.s_addr,
- dlm_config.ci_tcp_port, sk->sk_err,
+ con->nodeid, &inet->inet_daddr,
+ ntohs(inet->inet_dport), sk->sk_err,
sk->sk_err_soft);
- } else {
- struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&saddr;
-
+ break;
+#if IS_ENABLED(CONFIG_IPV6)
+ case AF_INET6:
printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
- "sending to node %d at %u.%u.%u.%u, "
- "port %d, sk_err=%d/%d\n", dlm_our_nodeid(),
- con->nodeid, sin6->sin6_addr.s6_addr32[0],
- sin6->sin6_addr.s6_addr32[1],
- sin6->sin6_addr.s6_addr32[2],
- sin6->sin6_addr.s6_addr32[3],
- dlm_config.ci_tcp_port, sk->sk_err,
+ "sending to node %d at %pI6c, "
+ "dport %d, sk_err=%d/%d\n", dlm_our_nodeid(),
+ con->nodeid, &sk->sk_v6_daddr,
+ ntohs(inet->inet_dport), sk->sk_err,
sk->sk_err_soft);
+ break;
+#endif
+ default:
+ printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
+ "invalid socket family %d set, "
+ "sk_err=%d/%d\n", dlm_our_nodeid(),
+ sk->sk_family, sk->sk_err, sk->sk_err_soft);
+ goto out;
}
out:
read_unlock_bh(&sk->sk_callback_lock);
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 115a77b96e5e..99d98d101021 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -2778,6 +2778,7 @@ bool ext4_fc_replay_check_excluded(struct super_block *sb, ext4_fsblk_t block);
void ext4_fc_replay_cleanup(struct super_block *sb);
int ext4_fc_commit(journal_t *journal, tid_t commit_tid);
int __init ext4_fc_init_dentry_cache(void);
+void ext4_fc_destroy_dentry_cache(void);
/* mballoc.c */
extern const struct seq_operations ext4_mb_seq_groups_ops;
diff --git a/fs/ext4/ext4_jbd2.c b/fs/ext4/ext4_jbd2.c
index 0fd0c42a4f7d..6ff7b4020df8 100644
--- a/fs/ext4/ext4_jbd2.c
+++ b/fs/ext4/ext4_jbd2.c
@@ -162,6 +162,8 @@ int __ext4_journal_ensure_credits(handle_t *handle, int check_cred,
{
if (!ext4_handle_valid(handle))
return 0;
+ if (is_handle_aborted(handle))
+ return -EROFS;
if (jbd2_handle_buffer_credits(handle) >= check_cred &&
handle->h_revoke_credits >= revoke_cred)
return 0;
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index b8c9df6ab67f..b297b14de750 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4638,8 +4638,6 @@ static long ext4_zero_range(struct file *file, loff_t offset,
ret = ext4_mark_inode_dirty(handle, inode);
if (unlikely(ret))
goto out_handle;
- ext4_fc_track_range(handle, inode, offset >> inode->i_sb->s_blocksize_bits,
- (offset + len - 1) >> inode->i_sb->s_blocksize_bits);
/* Zero out partial block at the edges of the range */
ret = ext4_zero_partial_blocks(handle, inode, offset, len);
if (ret >= 0)
diff --git a/fs/ext4/fast_commit.c b/fs/ext4/fast_commit.c
index 08ca690f928b..f483abcd5213 100644
--- a/fs/ext4/fast_commit.c
+++ b/fs/ext4/fast_commit.c
@@ -1764,11 +1764,14 @@ ext4_fc_replay_del_range(struct super_block *sb, struct ext4_fc_tl *tl,
}
}
- ret = ext4_punch_hole(inode,
- le32_to_cpu(lrange.fc_lblk) << sb->s_blocksize_bits,
- le32_to_cpu(lrange.fc_len) << sb->s_blocksize_bits);
- if (ret)
- jbd_debug(1, "ext4_punch_hole returned %d", ret);
+ down_write(&EXT4_I(inode)->i_data_sem);
+ ret = ext4_ext_remove_space(inode, lrange.fc_lblk,
+ lrange.fc_lblk + lrange.fc_len - 1);
+ up_write(&EXT4_I(inode)->i_data_sem);
+ if (ret) {
+ iput(inode);
+ return 0;
+ }
ext4_ext_replay_shrink_inode(inode,
i_size_read(inode) >> sb->s_blocksize_bits);
ext4_mark_inode_dirty(NULL, inode);
@@ -2166,3 +2169,8 @@ int __init ext4_fc_init_dentry_cache(void)
return 0;
}
+
+void ext4_fc_destroy_dentry_cache(void)
+{
+ kmem_cache_destroy(ext4_fc_dentry_cachep);
+}
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 317aa1b90fb9..d59474a54189 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -741,10 +741,11 @@ int ext4_map_blocks(handle_t *handle, struct inode *inode,
if (ret)
return ret;
}
- ext4_fc_track_range(handle, inode, map->m_lblk,
- map->m_lblk + map->m_len - 1);
}
-
+ if (retval > 0 && (map->m_flags & EXT4_MAP_UNWRITTEN ||
+ map->m_flags & EXT4_MAP_MAPPED))
+ ext4_fc_track_range(handle, inode, map->m_lblk,
+ map->m_lblk + map->m_len - 1);
if (retval < 0)
ext_debug(inode, "failed with err %d\n", retval);
return retval;
@@ -4445,7 +4446,7 @@ static int __ext4_get_inode_loc(struct super_block *sb, unsigned long ino,
static int __ext4_get_inode_loc_noinmem(struct inode *inode,
struct ext4_iloc *iloc)
{
- ext4_fsblk_t err_blk;
+ ext4_fsblk_t err_blk = 0;
int ret;
ret = __ext4_get_inode_loc(inode->i_sb, inode->i_ino, iloc, 0,
@@ -4460,7 +4461,7 @@ static int __ext4_get_inode_loc_noinmem(struct inode *inode,
int ext4_get_inode_loc(struct inode *inode, struct ext4_iloc *iloc)
{
- ext4_fsblk_t err_blk;
+ ext4_fsblk_t err_blk = 0;
int ret;
/* We have all inode data except xattrs in memory here. */
@@ -5467,8 +5468,7 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr)
ext4_fc_track_range(handle, inode,
(attr->ia_size > 0 ? attr->ia_size - 1 : 0) >>
inode->i_sb->s_blocksize_bits,
- (oldsize > 0 ? oldsize - 1 : 0) >>
- inode->i_sb->s_blocksize_bits);
+ EXT_MAX_BLOCKS - 1);
else
ext4_fc_track_range(
handle, inode,
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
index cb54ea6461fd..413bf3d2f784 100644
--- a/fs/ext4/ioctl.c
+++ b/fs/ext4/ioctl.c
@@ -1123,8 +1123,6 @@ static long __ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
sizeof(range)))
return -EFAULT;
- range.minlen = max((unsigned int)range.minlen,
- q->limits.discard_granularity);
ret = ext4_trim_fs(sb, &range);
if (ret < 0)
return ret;
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index d7cb7d719ee5..e40f87d07783 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -4234,7 +4234,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
*/
static noinline_for_stack int
ext4_mb_discard_group_preallocations(struct super_block *sb,
- ext4_group_t group, int needed)
+ ext4_group_t group, int *busy)
{
struct ext4_group_info *grp = ext4_get_group_info(sb, group);
struct buffer_head *bitmap_bh = NULL;
@@ -4242,8 +4242,7 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
struct list_head list;
struct ext4_buddy e4b;
int err;
- int busy = 0;
- int free, free_total = 0;
+ int free = 0;
mb_debug(sb, "discard preallocation for group %u\n", group);
if (list_empty(&grp->bb_prealloc_list))
@@ -4266,19 +4265,14 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
goto out_dbg;
}
- if (needed == 0)
- needed = EXT4_CLUSTERS_PER_GROUP(sb) + 1;
-
INIT_LIST_HEAD(&list);
-repeat:
- free = 0;
ext4_lock_group(sb, group);
list_for_each_entry_safe(pa, tmp,
&grp->bb_prealloc_list, pa_group_list) {
spin_lock(&pa->pa_lock);
if (atomic_read(&pa->pa_count)) {
spin_unlock(&pa->pa_lock);
- busy = 1;
+ *busy = 1;
continue;
}
if (pa->pa_deleted) {
@@ -4318,22 +4312,13 @@ ext4_mb_discard_group_preallocations(struct super_block *sb,
call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback);
}
- free_total += free;
-
- /* if we still need more blocks and some PAs were used, try again */
- if (free_total < needed && busy) {
- ext4_unlock_group(sb, group);
- cond_resched();
- busy = 0;
- goto repeat;
- }
ext4_unlock_group(sb, group);
ext4_mb_unload_buddy(&e4b);
put_bh(bitmap_bh);
out_dbg:
mb_debug(sb, "discarded (%d) blocks preallocated for group %u bb_free (%d)\n",
- free_total, group, grp->bb_free);
- return free_total;
+ free, group, grp->bb_free);
+ return free;
}
/*
@@ -4875,13 +4860,24 @@ static int ext4_mb_discard_preallocations(struct super_block *sb, int needed)
{
ext4_group_t i, ngroups = ext4_get_groups_count(sb);
int ret;
- int freed = 0;
+ int freed = 0, busy = 0;
+ int retry = 0;
trace_ext4_mb_discard_preallocations(sb, needed);
+
+ if (needed == 0)
+ needed = EXT4_CLUSTERS_PER_GROUP(sb) + 1;
+ repeat:
for (i = 0; i < ngroups && needed > 0; i++) {
- ret = ext4_mb_discard_group_preallocations(sb, i, needed);
+ ret = ext4_mb_discard_group_preallocations(sb, i, &busy);
freed += ret;
needed -= ret;
+ cond_resched();
+ }
+
+ if (needed > 0 && busy && ++retry < 3) {
+ busy = 0;
+ goto repeat;
}
return freed;
@@ -5815,6 +5811,7 @@ ext4_trim_all_free(struct super_block *sb, ext4_group_t group,
*/
int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range)
{
+ struct request_queue *q = bdev_get_queue(sb->s_bdev);
struct ext4_group_info *grp;
ext4_group_t group, first_group, last_group;
ext4_grpblk_t cnt = 0, first_cluster, last_cluster;
@@ -5833,6 +5830,13 @@ int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range)
start >= max_blks ||
range->len < sb->s_blocksize)
return -EINVAL;
+ /* No point to try to trim less than discard granularity */
+ if (range->minlen < q->limits.discard_granularity) {
+ minlen = EXT4_NUM_B2C(EXT4_SB(sb),
+ q->limits.discard_granularity >> sb->s_blocksize_bits);
+ if (minlen > EXT4_CLUSTERS_PER_GROUP(sb))
+ goto out;
+ }
if (end >= max_blks)
end = max_blks - 1;
if (end <= first_data_blk)
diff --git a/fs/ext4/migrate.c b/fs/ext4/migrate.c
index c5e3fc998211..49912814f3d8 100644
--- a/fs/ext4/migrate.c
+++ b/fs/ext4/migrate.c
@@ -437,12 +437,12 @@ int ext4_ext_migrate(struct inode *inode)
percpu_down_write(&sbi->s_writepages_rwsem);
/*
- * Worst case we can touch the allocation bitmaps, a bgd
- * block, and a block to link in the orphan list. We do need
- * need to worry about credits for modifying the quota inode.
+ * Worst case we can touch the allocation bitmaps and a block
+ * group descriptor block. We do need need to worry about
+ * credits for modifying the quota inode.
*/
handle = ext4_journal_start(inode, EXT4_HT_MIGRATE,
- 4 + EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb));
+ 3 + EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb));
if (IS_ERR(handle)) {
retval = PTR_ERR(handle);
@@ -459,6 +459,13 @@ int ext4_ext_migrate(struct inode *inode)
ext4_journal_stop(handle);
goto out_unlock;
}
+ /*
+ * Use the correct seed for checksum (i.e. the seed from 'inode'). This
+ * is so that the metadata blocks will have the correct checksum after
+ * the migration.
+ */
+ ei = EXT4_I(inode);
+ EXT4_I(tmp_inode)->i_csum_seed = ei->i_csum_seed;
i_size_write(tmp_inode, i_size_read(inode));
/*
* Set the i_nlink to zero so it will be deleted later
@@ -467,7 +474,6 @@ int ext4_ext_migrate(struct inode *inode)
clear_nlink(tmp_inode);
ext4_ext_tree_init(handle, tmp_inode);
- ext4_orphan_add(handle, tmp_inode);
ext4_journal_stop(handle);
/*
@@ -492,17 +498,10 @@ int ext4_ext_migrate(struct inode *inode)
handle = ext4_journal_start(inode, EXT4_HT_MIGRATE, 1);
if (IS_ERR(handle)) {
- /*
- * It is impossible to update on-disk structures without
- * a handle, so just rollback in-core changes and live other
- * work to orphan_list_cleanup()
- */
- ext4_orphan_del(NULL, tmp_inode);
retval = PTR_ERR(handle);
goto out_tmp_inode;
}
- ei = EXT4_I(inode);
i_data = ei->i_data;
memset(&lb, 0, sizeof(lb));
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index b1af6588bad0..9e210bc85c81 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -6341,10 +6341,7 @@ static int ext4_quota_on(struct super_block *sb, int type, int format_id,
lockdep_set_quota_inode(path->dentry->d_inode, I_DATA_SEM_QUOTA);
err = dquot_quota_on(sb, type, format_id, path);
- if (err) {
- lockdep_set_quota_inode(path->dentry->d_inode,
- I_DATA_SEM_NORMAL);
- } else {
+ if (!err) {
struct inode *inode = d_inode(path->dentry);
handle_t *handle;
@@ -6364,7 +6361,12 @@ static int ext4_quota_on(struct super_block *sb, int type, int format_id,
ext4_journal_stop(handle);
unlock_inode:
inode_unlock(inode);
+ if (err)
+ dquot_quota_off(sb, type);
}
+ if (err)
+ lockdep_set_quota_inode(path->dentry->d_inode,
+ I_DATA_SEM_NORMAL);
return err;
}
@@ -6427,8 +6429,19 @@ static int ext4_enable_quotas(struct super_block *sb)
"Failed to enable quota tracking "
"(type=%d, err=%d). Please run "
"e2fsck to fix.", type, err);
- for (type--; type >= 0; type--)
+ for (type--; type >= 0; type--) {
+ struct inode *inode;
+
+ inode = sb_dqopt(sb)->files[type];
+ if (inode)
+ inode = igrab(inode);
dquot_quota_off(sb, type);
+ if (inode) {
+ lockdep_set_quota_inode(inode,
+ I_DATA_SEM_NORMAL);
+ iput(inode);
+ }
+ }
return err;
}
@@ -6532,7 +6545,7 @@ static ssize_t ext4_quota_write(struct super_block *sb, int type,
struct buffer_head *bh;
handle_t *handle = journal_current_handle();
- if (EXT4_SB(sb)->s_journal && !handle) {
+ if (!handle) {
ext4_msg(sb, KERN_WARNING, "Quota write (off=%llu, len=%llu)"
" cancelled because transaction is not started",
(unsigned long long)off, (unsigned long long)len);
@@ -6716,6 +6729,7 @@ static int __init ext4_init_fs(void)
out:
unregister_as_ext2();
unregister_as_ext3();
+ ext4_fc_destroy_dentry_cache();
out05:
destroy_inodecache();
out1:
@@ -6742,6 +6756,7 @@ static void __exit ext4_exit_fs(void)
unregister_as_ext2();
unregister_as_ext3();
unregister_filesystem(&ext4_fs_type);
+ ext4_fc_destroy_dentry_cache();
destroy_inodecache();
ext4_exit_mballoc();
ext4_exit_sysfs();
diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c
index 30987ea011f1..ec542e8c46cc 100644
--- a/fs/f2fs/compress.c
+++ b/fs/f2fs/compress.c
@@ -1362,25 +1362,38 @@ static int f2fs_write_raw_pages(struct compress_ctx *cc,
enum iostat_type io_type)
{
struct address_space *mapping = cc->inode->i_mapping;
- int _submitted, compr_blocks, ret;
- int i = -1, err = 0;
+ int _submitted, compr_blocks, ret, i;
compr_blocks = f2fs_compressed_blocks(cc);
- if (compr_blocks < 0) {
- err = compr_blocks;
- goto out_err;
+
+ for (i = 0; i < cc->cluster_size; i++) {
+ if (!cc->rpages[i])
+ continue;
+
+ redirty_page_for_writepage(wbc, cc->rpages[i]);
+ unlock_page(cc->rpages[i]);
}
+ if (compr_blocks < 0)
+ return compr_blocks;
+
for (i = 0; i < cc->cluster_size; i++) {
if (!cc->rpages[i])
continue;
retry_write:
+ lock_page(cc->rpages[i]);
+
if (cc->rpages[i]->mapping != mapping) {
+continue_unlock:
unlock_page(cc->rpages[i]);
continue;
}
- BUG_ON(!PageLocked(cc->rpages[i]));
+ if (!PageDirty(cc->rpages[i]))
+ goto continue_unlock;
+
+ if (!clear_page_dirty_for_io(cc->rpages[i]))
+ goto continue_unlock;
ret = f2fs_write_single_data_page(cc->rpages[i], &_submitted,
NULL, NULL, wbc, io_type,
@@ -1395,26 +1408,15 @@ static int f2fs_write_raw_pages(struct compress_ctx *cc,
* avoid deadlock caused by cluster update race
* from foreground operation.
*/
- if (IS_NOQUOTA(cc->inode)) {
- err = 0;
- goto out_err;
- }
+ if (IS_NOQUOTA(cc->inode))
+ return 0;
ret = 0;
cond_resched();
congestion_wait(BLK_RW_ASYNC,
DEFAULT_IO_TIMEOUT);
- lock_page(cc->rpages[i]);
-
- if (!PageDirty(cc->rpages[i])) {
- unlock_page(cc->rpages[i]);
- continue;
- }
-
- clear_page_dirty_for_io(cc->rpages[i]);
goto retry_write;
}
- err = ret;
- goto out_err;
+ return ret;
}
*submitted += _submitted;
@@ -1423,14 +1425,6 @@ static int f2fs_write_raw_pages(struct compress_ctx *cc,
f2fs_balance_fs(F2FS_M_SB(mapping), true);
return 0;
-out_err:
- for (++i; i < cc->cluster_size; i++) {
- if (!cc->rpages[i])
- continue;
- redirty_page_for_writepage(wbc, cc->rpages[i]);
- unlock_page(cc->rpages[i]);
- }
- return err;
}
int f2fs_write_multi_pages(struct compress_ctx *cc,
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index bc488a7d0190..6c4bf22a3e83 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -955,6 +955,7 @@ struct f2fs_sm_info {
unsigned int segment_count; /* total # of segments */
unsigned int main_segments; /* # of segments in main area */
unsigned int reserved_segments; /* # of reserved segments */
+ unsigned int additional_reserved_segments;/* reserved segs for IO align feature */
unsigned int ovp_segments; /* # of overprovision segments */
/* a threshold to reclaim prefree segments */
@@ -1984,6 +1985,11 @@ static inline int inc_valid_block_count(struct f2fs_sb_info *sbi,
if (!__allow_reserved_blocks(sbi, inode, true))
avail_user_block_count -= F2FS_OPTION(sbi).root_reserved_blocks;
+
+ if (F2FS_IO_ALIGNED(sbi))
+ avail_user_block_count -= sbi->blocks_per_seg *
+ SM_I(sbi)->additional_reserved_segments;
+
if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED))) {
if (avail_user_block_count > sbi->unusable_block_count)
avail_user_block_count -= sbi->unusable_block_count;
@@ -2229,6 +2235,11 @@ static inline int inc_valid_node_count(struct f2fs_sb_info *sbi,
if (!__allow_reserved_blocks(sbi, inode, false))
valid_block_count += F2FS_OPTION(sbi).root_reserved_blocks;
+
+ if (F2FS_IO_ALIGNED(sbi))
+ valid_block_count += sbi->blocks_per_seg *
+ SM_I(sbi)->additional_reserved_segments;
+
user_block_count = sbi->user_block_count;
if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
user_block_count -= sbi->unusable_block_count;
diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index 72f227f6ebad..6b240b71d2e8 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -998,6 +998,9 @@ static bool is_alive(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
set_sbi_flag(sbi, SBI_NEED_FSCK);
}
+ if (f2fs_check_nid_range(sbi, dni->ino))
+ return false;
+
*nofs = ofs_of_node(node_page);
source_blkaddr = data_blkaddr(NULL, node_page, ofs_in_node);
f2fs_put_page(node_page, 1);
diff --git a/fs/f2fs/segment.h b/fs/f2fs/segment.h
index 1bf33fc27b8f..beef833a6960 100644
--- a/fs/f2fs/segment.h
+++ b/fs/f2fs/segment.h
@@ -539,7 +539,8 @@ static inline unsigned int free_segments(struct f2fs_sb_info *sbi)
static inline unsigned int reserved_segments(struct f2fs_sb_info *sbi)
{
- return SM_I(sbi)->reserved_segments;
+ return SM_I(sbi)->reserved_segments +
+ SM_I(sbi)->additional_reserved_segments;
}
static inline unsigned int free_sections(struct f2fs_sb_info *sbi)
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index b7287b722e9e..af98abb17c27 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -289,6 +289,46 @@ static inline void limit_reserve_root(struct f2fs_sb_info *sbi)
F2FS_OPTION(sbi).s_resgid));
}
+static inline int adjust_reserved_segment(struct f2fs_sb_info *sbi)
+{
+ unsigned int sec_blks = sbi->blocks_per_seg * sbi->segs_per_sec;
+ unsigned int avg_vblocks;
+ unsigned int wanted_reserved_segments;
+ block_t avail_user_block_count;
+
+ if (!F2FS_IO_ALIGNED(sbi))
+ return 0;
+
+ /* average valid block count in section in worst case */
+ avg_vblocks = sec_blks / F2FS_IO_SIZE(sbi);
+
+ /*
+ * we need enough free space when migrating one section in worst case
+ */
+ wanted_reserved_segments = (F2FS_IO_SIZE(sbi) / avg_vblocks) *
+ reserved_segments(sbi);
+ wanted_reserved_segments -= reserved_segments(sbi);
+
+ avail_user_block_count = sbi->user_block_count -
+ sbi->current_reserved_blocks -
+ F2FS_OPTION(sbi).root_reserved_blocks;
+
+ if (wanted_reserved_segments * sbi->blocks_per_seg >
+ avail_user_block_count) {
+ f2fs_err(sbi, "IO align feature can't grab additional reserved segment: %u, available segments: %u",
+ wanted_reserved_segments,
+ avail_user_block_count >> sbi->log_blocks_per_seg);
+ return -ENOSPC;
+ }
+
+ SM_I(sbi)->additional_reserved_segments = wanted_reserved_segments;
+
+ f2fs_info(sbi, "IO align feature needs additional reserved segment: %u",
+ wanted_reserved_segments);
+
+ return 0;
+}
+
static inline void adjust_unusable_cap_perc(struct f2fs_sb_info *sbi)
{
if (!F2FS_OPTION(sbi).unusable_cap_perc)
@@ -3736,6 +3776,10 @@ static int f2fs_fill_super(struct super_block *sb, void *data, int silent)
goto free_nm;
}
+ err = adjust_reserved_segment(sbi);
+ if (err)
+ goto free_nm;
+
/* For write statistics */
if (sb->s_bdev->bd_part)
sbi->sectors_written_start =
diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c
index b8850c81068a..7ffd4bb398b0 100644
--- a/fs/f2fs/sysfs.c
+++ b/fs/f2fs/sysfs.c
@@ -330,7 +330,9 @@ static ssize_t __sbi_store(struct f2fs_attr *a,
if (a->struct_type == RESERVED_BLOCKS) {
spin_lock(&sbi->stat_lock);
if (t > (unsigned long)(sbi->user_block_count -
- F2FS_OPTION(sbi).root_reserved_blocks)) {
+ F2FS_OPTION(sbi).root_reserved_blocks -
+ sbi->blocks_per_seg *
+ SM_I(sbi)->additional_reserved_segments)) {
spin_unlock(&sbi->stat_lock);
return -EINVAL;
}
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 4dd70b53df81..e81d1c3eb7e1 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -3251,7 +3251,7 @@ fuse_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
static int fuse_writeback_range(struct inode *inode, loff_t start, loff_t end)
{
- int err = filemap_write_and_wait_range(inode->i_mapping, start, -1);
+ int err = filemap_write_and_wait_range(inode->i_mapping, start, LLONG_MAX);
if (!err)
fuse_sync_writes(inode);
diff --git a/fs/jffs2/file.c b/fs/jffs2/file.c
index 4fc8cd698d1a..bd7d58d27bfc 100644
--- a/fs/jffs2/file.c
+++ b/fs/jffs2/file.c
@@ -136,20 +136,15 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
struct page *pg;
struct inode *inode = mapping->host;
struct jffs2_inode_info *f = JFFS2_INODE_INFO(inode);
+ struct jffs2_sb_info *c = JFFS2_SB_INFO(inode->i_sb);
pgoff_t index = pos >> PAGE_SHIFT;
uint32_t pageofs = index << PAGE_SHIFT;
int ret = 0;
- pg = grab_cache_page_write_begin(mapping, index, flags);
- if (!pg)
- return -ENOMEM;
- *pagep = pg;
-
jffs2_dbg(1, "%s()\n", __func__);
if (pageofs > inode->i_size) {
/* Make new hole frag from old EOF to new page */
- struct jffs2_sb_info *c = JFFS2_SB_INFO(inode->i_sb);
struct jffs2_raw_inode ri;
struct jffs2_full_dnode *fn;
uint32_t alloc_len;
@@ -160,7 +155,7 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
ret = jffs2_reserve_space(c, sizeof(ri), &alloc_len,
ALLOC_NORMAL, JFFS2_SUMMARY_INODE_SIZE);
if (ret)
- goto out_page;
+ goto out_err;
mutex_lock(&f->sem);
memset(&ri, 0, sizeof(ri));
@@ -190,7 +185,7 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
ret = PTR_ERR(fn);
jffs2_complete_reservation(c);
mutex_unlock(&f->sem);
- goto out_page;
+ goto out_err;
}
ret = jffs2_add_full_dnode_to_inode(c, f, fn);
if (f->metadata) {
@@ -205,13 +200,26 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
jffs2_free_full_dnode(fn);
jffs2_complete_reservation(c);
mutex_unlock(&f->sem);
- goto out_page;
+ goto out_err;
}
jffs2_complete_reservation(c);
inode->i_size = pageofs;
mutex_unlock(&f->sem);
}
+ /*
+ * While getting a page and reading data in, lock c->alloc_sem until
+ * the page is Uptodate. Otherwise GC task may attempt to read the same
+ * page in read_cache_page(), which causes a deadlock.
+ */
+ mutex_lock(&c->alloc_sem);
+ pg = grab_cache_page_write_begin(mapping, index, flags);
+ if (!pg) {
+ ret = -ENOMEM;
+ goto release_sem;
+ }
+ *pagep = pg;
+
/*
* Read in the page if it wasn't already present. Cannot optimize away
* the whole page write case until jffs2_write_end can handle the
@@ -221,15 +229,17 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
mutex_lock(&f->sem);
ret = jffs2_do_readpage_nolock(inode, pg);
mutex_unlock(&f->sem);
- if (ret)
- goto out_page;
+ if (ret) {
+ unlock_page(pg);
+ put_page(pg);
+ goto release_sem;
+ }
}
jffs2_dbg(1, "end write_begin(). pg->flags %lx\n", pg->flags);
- return ret;
-out_page:
- unlock_page(pg);
- put_page(pg);
+release_sem:
+ mutex_unlock(&c->alloc_sem);
+out_err:
return ret;
}
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index cfd46753a685..6a8f9efc2e2f 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -1853,7 +1853,6 @@ static int ubifs_remount_rw(struct ubifs_info *c)
kthread_stop(c->bgt);
c->bgt = NULL;
}
- free_wbufs(c);
kfree(c->write_reserve_buf);
c->write_reserve_buf = NULL;
vfree(c->ileb_buf);
diff --git a/fs/udf/ialloc.c b/fs/udf/ialloc.c
index 84ed23edebfd..87a77bf70ee1 100644
--- a/fs/udf/ialloc.c
+++ b/fs/udf/ialloc.c
@@ -77,6 +77,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode)
GFP_KERNEL);
}
if (!iinfo->i_data) {
+ make_bad_inode(inode);
iput(inode);
return ERR_PTR(-ENOMEM);
}
@@ -86,6 +87,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode)
dinfo->i_location.partitionReferenceNum,
start, &err);
if (err) {
+ make_bad_inode(inode);
iput(inode);
return ERR_PTR(err);
}
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 6ad3b89a8a2e..0f5366792d22 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -605,9 +605,10 @@ int acpi_enable_wakeup_device_power(struct acpi_device *dev, int state);
int acpi_disable_wakeup_device_power(struct acpi_device *dev);
#ifdef CONFIG_X86
-bool acpi_device_always_present(struct acpi_device *adev);
+bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *status);
#else
-static inline bool acpi_device_always_present(struct acpi_device *adev)
+static inline bool acpi_device_override_status(struct acpi_device *adev,
+ unsigned long long *status)
{
return false;
}
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h
index 647cb11d0a0a..7334037624c5 100644
--- a/include/acpi/actypes.h
+++ b/include/acpi/actypes.h
@@ -536,8 +536,14 @@ typedef u64 acpi_integer;
* Can be used with access_width of struct acpi_generic_address and access_size of
* struct acpi_resource_generic_register.
*/
-#define ACPI_ACCESS_BIT_WIDTH(size) (1 << ((size) + 2))
-#define ACPI_ACCESS_BYTE_WIDTH(size) (1 << ((size) - 1))
+#define ACPI_ACCESS_BIT_SHIFT 2
+#define ACPI_ACCESS_BYTE_SHIFT -1
+#define ACPI_ACCESS_BIT_MAX (31 - ACPI_ACCESS_BIT_SHIFT)
+#define ACPI_ACCESS_BYTE_MAX (31 - ACPI_ACCESS_BYTE_SHIFT)
+#define ACPI_ACCESS_BIT_DEFAULT (8 - ACPI_ACCESS_BIT_SHIFT)
+#define ACPI_ACCESS_BYTE_DEFAULT (8 - ACPI_ACCESS_BYTE_SHIFT)
+#define ACPI_ACCESS_BIT_WIDTH(size) (1 << ((size) + ACPI_ACCESS_BIT_SHIFT))
+#define ACPI_ACCESS_BYTE_WIDTH(size) (1 << ((size) + ACPI_ACCESS_BYTE_SHIFT))
/*******************************************************************************
*
diff --git a/include/linux/blk-pm.h b/include/linux/blk-pm.h
index b80c65aba249..2580e05a8ab6 100644
--- a/include/linux/blk-pm.h
+++ b/include/linux/blk-pm.h
@@ -14,7 +14,7 @@ extern void blk_pm_runtime_init(struct request_queue *q, struct device *dev);
extern int blk_pre_runtime_suspend(struct request_queue *q);
extern void blk_post_runtime_suspend(struct request_queue *q, int err);
extern void blk_pre_runtime_resume(struct request_queue *q);
-extern void blk_post_runtime_resume(struct request_queue *q, int err);
+extern void blk_post_runtime_resume(struct request_queue *q);
extern void blk_set_runtime_active(struct request_queue *q);
#else
static inline void blk_pm_runtime_init(struct request_queue *q,
diff --git a/include/linux/bpf_verifier.h b/include/linux/bpf_verifier.h
index 6e330ff2f28d..391bc1480dfb 100644
--- a/include/linux/bpf_verifier.h
+++ b/include/linux/bpf_verifier.h
@@ -367,6 +367,13 @@ static inline bool bpf_verifier_log_needed(const struct bpf_verifier_log *log)
log->level == BPF_LOG_KERNEL);
}
+static inline bool
+bpf_verifier_log_attr_valid(const struct bpf_verifier_log *log)
+{
+ return log->len_total >= 128 && log->len_total <= UINT_MAX >> 2 &&
+ log->level && log->ubuf && !(log->level & ~BPF_LOG_MASK);
+}
+
#define BPF_MAX_SUBPROGS 256
struct bpf_subprog_info {
diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h
index 83a3ebff7456..8f87c1a6f323 100644
--- a/include/linux/clocksource.h
+++ b/include/linux/clocksource.h
@@ -42,6 +42,8 @@ struct module;
* @shift: Cycle to nanosecond divisor (power of two)
* @max_idle_ns: Maximum idle time permitted by the clocksource (nsecs)
* @maxadj: Maximum adjustment value to mult (~11%)
+ * @uncertainty_margin: Maximum uncertainty in nanoseconds per half second.
+ * Zero says to use default WATCHDOG_THRESHOLD.
* @archdata: Optional arch-specific data
* @max_cycles: Maximum safe cycle value which won't overflow on
* multiplication
@@ -93,6 +95,7 @@ struct clocksource {
u32 shift;
u64 max_idle_ns;
u32 maxadj;
+ u32 uncertainty_margin;
#ifdef CONFIG_ARCH_CLOCKSOURCE_DATA
struct arch_clocksource_data archdata;
#endif
diff --git a/include/linux/hid.h b/include/linux/hid.h
index fc56d53cc68b..2ba33d708942 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -345,6 +345,8 @@ struct hid_item {
/* BIT(9) reserved for backward compatibility, was NO_INIT_INPUT_REPORTS */
#define HID_QUIRK_ALWAYS_POLL BIT(10)
#define HID_QUIRK_INPUT_PER_APP BIT(11)
+#define HID_QUIRK_X_INVERT BIT(12)
+#define HID_QUIRK_Y_INVERT BIT(13)
#define HID_QUIRK_SKIP_OUTPUT_REPORTS BIT(16)
#define HID_QUIRK_SKIP_OUTPUT_REPORT_ID BIT(17)
#define HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP BIT(18)
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 63b550403317..c142a152d6a4 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -938,6 +938,15 @@ static inline int is_highmem_idx(enum zone_type idx)
#endif
}
+#ifdef CONFIG_ZONE_DMA
+bool has_managed_dma(void);
+#else
+static inline bool has_managed_dma(void)
+{
+ return false;
+}
+#endif
+
/**
* is_highmem - helper function to quickly check if a struct zone is a
* highmem zone or not. This is an attempt to keep references
diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h
index 161acd4ede44..30091ab5de28 100644
--- a/include/linux/pm_runtime.h
+++ b/include/linux/pm_runtime.h
@@ -58,6 +58,7 @@ extern void pm_runtime_get_suppliers(struct device *dev);
extern void pm_runtime_put_suppliers(struct device *dev);
extern void pm_runtime_new_link(struct device *dev);
extern void pm_runtime_drop_link(struct device_link *link);
+extern void pm_runtime_release_supplier(struct device_link *link, bool check_idle);
/**
* pm_runtime_get_if_in_use - Conditionally bump up runtime PM usage counter.
@@ -279,6 +280,8 @@ static inline void pm_runtime_get_suppliers(struct device *dev) {}
static inline void pm_runtime_put_suppliers(struct device *dev) {}
static inline void pm_runtime_new_link(struct device *dev) {}
static inline void pm_runtime_drop_link(struct device_link *link) {}
+static inline void pm_runtime_release_supplier(struct device_link *link,
+ bool check_idle) {}
#endif /* !CONFIG_PM */
diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h
index bac79e817776..4cbd413e71a3 100644
--- a/include/net/inet_frag.h
+++ b/include/net/inet_frag.h
@@ -116,8 +116,15 @@ int fqdir_init(struct fqdir **fqdirp, struct inet_frags *f, struct net *net);
static inline void fqdir_pre_exit(struct fqdir *fqdir)
{
- fqdir->high_thresh = 0; /* prevent creation of new frags */
- fqdir->dead = true;
+ /* Prevent creation of new frags.
+ * Pairs with READ_ONCE() in inet_frag_find().
+ */
+ WRITE_ONCE(fqdir->high_thresh, 0);
+
+ /* Pairs with READ_ONCE() in inet_frag_kill(), ip_expire()
+ * and ip6frag_expire_frag_queue().
+ */
+ WRITE_ONCE(fqdir->dead, true);
}
void fqdir_exit(struct fqdir *fqdir);
diff --git a/include/net/ipv6_frag.h b/include/net/ipv6_frag.h
index 851029ecff13..0a4779175a52 100644
--- a/include/net/ipv6_frag.h
+++ b/include/net/ipv6_frag.h
@@ -67,7 +67,8 @@ ip6frag_expire_frag_queue(struct net *net, struct frag_queue *fq)
struct sk_buff *head;
rcu_read_lock();
- if (fq->q.fqdir->dead)
+ /* Paired with the WRITE_ONCE() in fqdir_pre_exit(). */
+ if (READ_ONCE(fq->q.fqdir->dead))
goto out_rcu_unlock;
spin_lock(&fq->q.lock);
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index 9226a84dcc14..1042c449e7db 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -1261,6 +1261,7 @@ struct psched_ratecfg {
u64 rate_bytes_ps; /* bytes per second */
u32 mult;
u16 overhead;
+ u16 mpu;
u8 linklayer;
u8 shift;
};
@@ -1270,6 +1271,9 @@ static inline u64 psched_l2t_ns(const struct psched_ratecfg *r,
{
len += r->overhead;
+ if (len < r->mpu)
+ len = r->mpu;
+
if (unlikely(r->linklayer == TC_LINKLAYER_ATM))
return ((u64)(DIV_ROUND_UP(len,48)*53) * r->mult) >> r->shift;
@@ -1292,6 +1296,7 @@ static inline void psched_ratecfg_getrate(struct tc_ratespec *res,
res->rate = min_t(u64, r->rate_bytes_ps, ~0U);
res->overhead = r->overhead;
+ res->mpu = r->mpu;
res->linklayer = (r->linklayer & TC_LINKLAYER_MASK);
}
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index 6232a5f048bd..337d29875e51 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -193,6 +193,11 @@ struct xfrm_state {
struct xfrm_algo_aead *aead;
const char *geniv;
+ /* mapping change rate limiting */
+ __be16 new_mapping_sport;
+ u32 new_mapping; /* seconds */
+ u32 mapping_maxage; /* seconds for input SA */
+
/* Data for encapsulator */
struct xfrm_encap_tmpl *encap;
struct sock __rcu *encap_sk;
diff --git a/include/trace/events/cgroup.h b/include/trace/events/cgroup.h
index 7f42a3de59e6..dd7d7c9efecd 100644
--- a/include/trace/events/cgroup.h
+++ b/include/trace/events/cgroup.h
@@ -59,8 +59,8 @@ DECLARE_EVENT_CLASS(cgroup,
TP_STRUCT__entry(
__field( int, root )
- __field( int, id )
__field( int, level )
+ __field( u64, id )
__string( path, path )
),
@@ -71,7 +71,7 @@ DECLARE_EVENT_CLASS(cgroup,
__assign_str(path, path);
),
- TP_printk("root=%d id=%d level=%d path=%s",
+ TP_printk("root=%d id=%llu level=%d path=%s",
__entry->root, __entry->id, __entry->level, __get_str(path))
);
@@ -126,8 +126,8 @@ DECLARE_EVENT_CLASS(cgroup_migrate,
TP_STRUCT__entry(
__field( int, dst_root )
- __field( int, dst_id )
__field( int, dst_level )
+ __field( u64, dst_id )
__field( int, pid )
__string( dst_path, path )
__string( comm, task->comm )
@@ -142,7 +142,7 @@ DECLARE_EVENT_CLASS(cgroup_migrate,
__assign_str(comm, task->comm);
),
- TP_printk("dst_root=%d dst_id=%d dst_level=%d dst_path=%s pid=%d comm=%s",
+ TP_printk("dst_root=%d dst_id=%llu dst_level=%d dst_path=%s pid=%d comm=%s",
__entry->dst_root, __entry->dst_id, __entry->dst_level,
__get_str(dst_path), __entry->pid, __get_str(comm))
);
@@ -171,8 +171,8 @@ DECLARE_EVENT_CLASS(cgroup_event,
TP_STRUCT__entry(
__field( int, root )
- __field( int, id )
__field( int, level )
+ __field( u64, id )
__string( path, path )
__field( int, val )
),
@@ -185,7 +185,7 @@ DECLARE_EVENT_CLASS(cgroup_event,
__entry->val = val;
),
- TP_printk("root=%d id=%d level=%d path=%s val=%d",
+ TP_printk("root=%d id=%llu level=%d path=%s val=%d",
__entry->root, __entry->id, __entry->level, __get_str(path),
__entry->val)
);
diff --git a/include/uapi/linux/xfrm.h b/include/uapi/linux/xfrm.h
index ffc6a5391bb7..2290c98b47cf 100644
--- a/include/uapi/linux/xfrm.h
+++ b/include/uapi/linux/xfrm.h
@@ -308,6 +308,7 @@ enum xfrm_attr_type_t {
XFRMA_SET_MARK, /* __u32 */
XFRMA_SET_MARK_MASK, /* __u32 */
XFRMA_IF_ID, /* __u32 */
+ XFRMA_MTIMER_THRESH, /* __u32 in seconds for input SA */
__XFRMA_MAX
#define XFRMA_OUTPUT_MARK XFRMA_SET_MARK /* Compatibility */
diff --git a/kernel/audit.c b/kernel/audit.c
index d784000921da..2a38cbaf3ddb 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -1540,6 +1540,20 @@ static void audit_receive(struct sk_buff *skb)
nlh = nlmsg_next(nlh, &len);
}
audit_ctl_unlock();
+
+ /* can't block with the ctrl lock, so penalize the sender now */
+ if (audit_backlog_limit &&
+ (skb_queue_len(&audit_queue) > audit_backlog_limit)) {
+ DECLARE_WAITQUEUE(wait, current);
+
+ /* wake kauditd to try and flush the queue */
+ wake_up_interruptible(&kauditd_wait);
+
+ add_wait_queue_exclusive(&audit_backlog_wait, &wait);
+ set_current_state(TASK_UNINTERRUPTIBLE);
+ schedule_timeout(audit_backlog_wait_time);
+ remove_wait_queue(&audit_backlog_wait, &wait);
+ }
}
/* Log information about who is connecting to the audit multicast socket */
@@ -1824,7 +1838,9 @@ struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask,
* task_tgid_vnr() since auditd_pid is set in audit_receive_msg()
* using a PID anchored in the caller's namespace
* 2. generator holding the audit_cmd_mutex - we don't want to block
- * while holding the mutex */
+ * while holding the mutex, although we do penalize the sender
+ * later in audit_receive() when it is safe to block
+ */
if (!(auditd_test_task(current) || audit_ctl_owner_current())) {
long stime = audit_backlog_wait_time;
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
index aaf2fbaa0cc7..dc497eaf2266 100644
--- a/kernel/bpf/btf.c
+++ b/kernel/bpf/btf.c
@@ -4135,8 +4135,7 @@ static struct btf *btf_parse(void __user *btf_data, u32 btf_data_size,
log->len_total = log_size;
/* log attributes have to be sane */
- if (log->len_total < 128 || log->len_total > UINT_MAX >> 8 ||
- !log->level || !log->ubuf) {
+ if (!bpf_verifier_log_attr_valid(log)) {
err = -EINVAL;
goto errout;
}
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index b43c9de34a2c..015bf2ba4a0b 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -7725,15 +7725,15 @@ static void mark_ptr_or_null_reg(struct bpf_func_state *state,
{
if (reg_type_may_be_null(reg->type) && reg->id == id &&
!WARN_ON_ONCE(!reg->id)) {
- /* Old offset (both fixed and variable parts) should
- * have been known-zero, because we don't allow pointer
- * arithmetic on pointers that might be NULL.
- */
if (WARN_ON_ONCE(reg->smin_value || reg->smax_value ||
!tnum_equals_const(reg->var_off, 0) ||
reg->off)) {
- __mark_reg_known_zero(reg);
- reg->off = 0;
+ /* Old offset (both fixed and variable parts) should
+ * have been known-zero, because we don't allow pointer
+ * arithmetic on pointers that might be NULL. If we
+ * see this happening, don't convert the register.
+ */
+ return;
}
if (is_null) {
reg->type = SCALAR_VALUE;
@@ -12349,11 +12349,11 @@ int bpf_check(struct bpf_prog **prog, union bpf_attr *attr,
log->ubuf = (char __user *) (unsigned long) attr->log_buf;
log->len_total = attr->log_size;
- ret = -EINVAL;
/* log attributes have to be sane */
- if (log->len_total < 128 || log->len_total > UINT_MAX >> 2 ||
- !log->level || !log->ubuf || log->level & ~BPF_LOG_MASK)
+ if (!bpf_verifier_log_attr_valid(log)) {
+ ret = -EINVAL;
goto err_unlock;
+ }
}
if (IS_ERR(btf_vmlinux)) {
diff --git a/kernel/dma/pool.c b/kernel/dma/pool.c
index d4637f72239b..b9082b572e0f 100644
--- a/kernel/dma/pool.c
+++ b/kernel/dma/pool.c
@@ -206,7 +206,7 @@ static int __init dma_atomic_pool_init(void)
GFP_KERNEL);
if (!atomic_pool_kernel)
ret = -ENOMEM;
- if (IS_ENABLED(CONFIG_ZONE_DMA)) {
+ if (has_managed_dma()) {
atomic_pool_dma = __dma_atomic_pool_init(atomic_pool_size,
GFP_KERNEL | GFP_DMA);
if (!atomic_pool_dma)
@@ -229,7 +229,7 @@ static inline struct gen_pool *dma_guess_pool(struct gen_pool *prev, gfp_t gfp)
if (prev == NULL) {
if (IS_ENABLED(CONFIG_ZONE_DMA32) && (gfp & GFP_DMA32))
return atomic_pool_dma32;
- if (IS_ENABLED(CONFIG_ZONE_DMA) && (gfp & GFP_DMA))
+ if (atomic_pool_dma && (gfp & GFP_DMA))
return atomic_pool_dma;
return atomic_pool_kernel;
}
diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h
index 0ffe185c1f46..0dc16345e668 100644
--- a/kernel/rcu/tree_exp.h
+++ b/kernel/rcu/tree_exp.h
@@ -387,6 +387,7 @@ static void sync_rcu_exp_select_node_cpus(struct work_struct *wp)
continue;
}
if (get_cpu() == cpu) {
+ mask_ofl_test |= mask;
put_cpu();
continue;
}
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index 5a55d2300452..ca0eef7d3852 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -147,10 +147,10 @@ void account_guest_time(struct task_struct *p, u64 cputime)
/* Add guest time to cpustat. */
if (task_nice(p) > 0) {
- cpustat[CPUTIME_NICE] += cputime;
+ task_group_account_field(p, CPUTIME_NICE, cputime);
cpustat[CPUTIME_GUEST_NICE] += cputime;
} else {
- cpustat[CPUTIME_USER] += cputime;
+ task_group_account_field(p, CPUTIME_USER, cputime);
cpustat[CPUTIME_GUEST] += cputime;
}
}
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index c004e3b89c32..2a33cb5a10e5 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -6284,8 +6284,10 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target)
* pattern is IO completions.
*/
if (is_per_cpu_kthread(current) &&
+ in_task() &&
prev == smp_processor_id() &&
- this_rq()->nr_running <= 1) {
+ this_rq()->nr_running <= 1 &&
+ asym_fits_capacity(task_util, prev)) {
return prev;
}
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index b5cf418e2e3f..41b14d924203 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -52,11 +52,8 @@ void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime)
rt_b->rt_period_timer.function = sched_rt_period_timer;
}
-static void start_rt_bandwidth(struct rt_bandwidth *rt_b)
+static inline void do_start_rt_bandwidth(struct rt_bandwidth *rt_b)
{
- if (!rt_bandwidth_enabled() || rt_b->rt_runtime == RUNTIME_INF)
- return;
-
raw_spin_lock(&rt_b->rt_runtime_lock);
if (!rt_b->rt_period_active) {
rt_b->rt_period_active = 1;
@@ -75,6 +72,14 @@ static void start_rt_bandwidth(struct rt_bandwidth *rt_b)
raw_spin_unlock(&rt_b->rt_runtime_lock);
}
+static void start_rt_bandwidth(struct rt_bandwidth *rt_b)
+{
+ if (!rt_bandwidth_enabled() || rt_b->rt_runtime == RUNTIME_INF)
+ return;
+
+ do_start_rt_bandwidth(rt_b);
+}
+
void init_rt_rq(struct rt_rq *rt_rq)
{
struct rt_prio_array *array;
@@ -1022,13 +1027,17 @@ static void update_curr_rt(struct rq *rq)
for_each_sched_rt_entity(rt_se) {
struct rt_rq *rt_rq = rt_rq_of_se(rt_se);
+ int exceeded;
if (sched_rt_runtime(rt_rq) != RUNTIME_INF) {
raw_spin_lock(&rt_rq->rt_runtime_lock);
rt_rq->rt_time += delta_exec;
- if (sched_rt_runtime_exceeded(rt_rq))
+ exceeded = sched_rt_runtime_exceeded(rt_rq);
+ if (exceeded)
resched_curr(rq);
raw_spin_unlock(&rt_rq->rt_runtime_lock);
+ if (exceeded)
+ do_start_rt_bandwidth(sched_rt_bandwidth(rt_rq));
}
}
}
@@ -2727,8 +2736,12 @@ static int sched_rt_global_validate(void)
static void sched_rt_do_global(void)
{
+ unsigned long flags;
+
+ raw_spin_lock_irqsave(&def_rt_bandwidth.rt_runtime_lock, flags);
def_rt_bandwidth.rt_runtime = global_rt_runtime();
def_rt_bandwidth.rt_period = ns_to_ktime(global_rt_period());
+ raw_spin_unlock_irqrestore(&def_rt_bandwidth.rt_runtime_lock, flags);
}
int sched_rt_handler(struct ctl_table *table, int write, void *buffer,
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
index 74492f08660c..e34ceb91f4c5 100644
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -93,6 +93,20 @@ static char override_name[CS_NAME_LEN];
static int finished_booting;
static u64 suspend_start;
+/*
+ * Threshold: 0.0312s, when doubled: 0.0625s.
+ * Also a default for cs->uncertainty_margin when registering clocks.
+ */
+#define WATCHDOG_THRESHOLD (NSEC_PER_SEC >> 5)
+
+/*
+ * Maximum permissible delay between two readouts of the watchdog
+ * clocksource surrounding a read of the clocksource being validated.
+ * This delay could be due to SMIs, NMIs, or to VCPU preemptions. Used as
+ * a lower bound for cs->uncertainty_margin values when registering clocks.
+ */
+#define WATCHDOG_MAX_SKEW (100 * NSEC_PER_USEC)
+
#ifdef CONFIG_CLOCKSOURCE_WATCHDOG
static void clocksource_watchdog_work(struct work_struct *work);
static void clocksource_select(void);
@@ -119,17 +133,9 @@ static int clocksource_watchdog_kthread(void *data);
static void __clocksource_change_rating(struct clocksource *cs, int rating);
/*
- * Interval: 0.5sec Threshold: 0.0625s
+ * Interval: 0.5sec.
*/
#define WATCHDOG_INTERVAL (HZ >> 1)
-#define WATCHDOG_THRESHOLD (NSEC_PER_SEC >> 4)
-
-/*
- * Maximum permissible delay between two readouts of the watchdog
- * clocksource surrounding a read of the clocksource being validated.
- * This delay could be due to SMIs, NMIs, or to VCPU preemptions.
- */
-#define WATCHDOG_MAX_SKEW (100 * NSEC_PER_USEC)
static void clocksource_watchdog_work(struct work_struct *work)
{
@@ -194,17 +200,24 @@ void clocksource_mark_unstable(struct clocksource *cs)
static ulong max_cswd_read_retries = 3;
module_param(max_cswd_read_retries, ulong, 0644);
-static bool cs_watchdog_read(struct clocksource *cs, u64 *csnow, u64 *wdnow)
+enum wd_read_status {
+ WD_READ_SUCCESS,
+ WD_READ_UNSTABLE,
+ WD_READ_SKIP
+};
+
+static enum wd_read_status cs_watchdog_read(struct clocksource *cs, u64 *csnow, u64 *wdnow)
{
unsigned int nretries;
- u64 wd_end, wd_delta;
- int64_t wd_delay;
+ u64 wd_end, wd_end2, wd_delta;
+ int64_t wd_delay, wd_seq_delay;
for (nretries = 0; nretries <= max_cswd_read_retries; nretries++) {
local_irq_disable();
*wdnow = watchdog->read(watchdog);
*csnow = cs->read(cs);
wd_end = watchdog->read(watchdog);
+ wd_end2 = watchdog->read(watchdog);
local_irq_enable();
wd_delta = clocksource_delta(wd_end, *wdnow, watchdog->mask);
@@ -215,13 +228,34 @@ static bool cs_watchdog_read(struct clocksource *cs, u64 *csnow, u64 *wdnow)
pr_warn("timekeeping watchdog on CPU%d: %s retried %d times before success\n",
smp_processor_id(), watchdog->name, nretries);
}
- return true;
+ return WD_READ_SUCCESS;
}
+
+ /*
+ * Now compute delay in consecutive watchdog read to see if
+ * there is too much external interferences that cause
+ * significant delay in reading both clocksource and watchdog.
+ *
+ * If consecutive WD read-back delay > WATCHDOG_MAX_SKEW/2,
+ * report system busy, reinit the watchdog and skip the current
+ * watchdog test.
+ */
+ wd_delta = clocksource_delta(wd_end2, wd_end, watchdog->mask);
+ wd_seq_delay = clocksource_cyc2ns(wd_delta, watchdog->mult, watchdog->shift);
+ if (wd_seq_delay > WATCHDOG_MAX_SKEW/2)
+ goto skip_test;
}
pr_warn("timekeeping watchdog on CPU%d: %s read-back delay of %lldns, attempt %d, marking unstable\n",
smp_processor_id(), watchdog->name, wd_delay, nretries);
- return false;
+ return WD_READ_UNSTABLE;
+
+skip_test:
+ pr_info("timekeeping watchdog on CPU%d: %s wd-wd read-back delay of %lldns\n",
+ smp_processor_id(), watchdog->name, wd_seq_delay);
+ pr_info("wd-%s-wd read-back delay of %lldns, clock-skew test skipped!\n",
+ cs->name, wd_delay);
+ return WD_READ_SKIP;
}
static u64 csnow_mid;
@@ -284,6 +318,8 @@ static void clocksource_watchdog(struct timer_list *unused)
int next_cpu, reset_pending;
int64_t wd_nsec, cs_nsec;
struct clocksource *cs;
+ enum wd_read_status read_ret;
+ u32 md;
spin_lock(&watchdog_lock);
if (!watchdog_running)
@@ -300,9 +336,12 @@ static void clocksource_watchdog(struct timer_list *unused)
continue;
}
- if (!cs_watchdog_read(cs, &csnow, &wdnow)) {
- /* Clock readout unreliable, so give it up. */
- __clocksource_unstable(cs);
+ read_ret = cs_watchdog_read(cs, &csnow, &wdnow);
+
+ if (read_ret != WD_READ_SUCCESS) {
+ if (read_ret == WD_READ_UNSTABLE)
+ /* Clock readout unreliable, so give it up. */
+ __clocksource_unstable(cs);
continue;
}
@@ -330,7 +369,8 @@ static void clocksource_watchdog(struct timer_list *unused)
continue;
/* Check the deviation from the watchdog clocksource. */
- if (abs(cs_nsec - wd_nsec) > WATCHDOG_THRESHOLD) {
+ md = cs->uncertainty_margin + watchdog->uncertainty_margin;
+ if (abs(cs_nsec - wd_nsec) > md) {
pr_warn("timekeeping watchdog on CPU%d: Marking clocksource '%s' as unstable because the skew is too large:\n",
smp_processor_id(), cs->name);
pr_warn(" '%s' wd_now: %llx wd_last: %llx mask: %llx\n",
@@ -985,6 +1025,26 @@ void __clocksource_update_freq_scale(struct clocksource *cs, u32 scale, u32 freq
clocks_calc_mult_shift(&cs->mult, &cs->shift, freq,
NSEC_PER_SEC / scale, sec * scale);
}
+
+ /*
+ * If the uncertainty margin is not specified, calculate it.
+ * If both scale and freq are non-zero, calculate the clock
+ * period, but bound below at 2*WATCHDOG_MAX_SKEW. However,
+ * if either of scale or freq is zero, be very conservative and
+ * take the tens-of-milliseconds WATCHDOG_THRESHOLD value for the
+ * uncertainty margin. Allow stupidly small uncertainty margins
+ * to be specified by the caller for testing purposes, but warn
+ * to discourage production use of this capability.
+ */
+ if (scale && freq && !cs->uncertainty_margin) {
+ cs->uncertainty_margin = NSEC_PER_SEC / (scale * freq);
+ if (cs->uncertainty_margin < 2 * WATCHDOG_MAX_SKEW)
+ cs->uncertainty_margin = 2 * WATCHDOG_MAX_SKEW;
+ } else if (!cs->uncertainty_margin) {
+ cs->uncertainty_margin = WATCHDOG_THRESHOLD;
+ }
+ WARN_ON_ONCE(cs->uncertainty_margin < 2 * WATCHDOG_MAX_SKEW);
+
/*
* Ensure clocksources that have large 'mult' values don't overflow
* when adjusted.
diff --git a/kernel/time/jiffies.c b/kernel/time/jiffies.c
index eddcf4970444..65409abcca8e 100644
--- a/kernel/time/jiffies.c
+++ b/kernel/time/jiffies.c
@@ -49,13 +49,14 @@ static u64 jiffies_read(struct clocksource *cs)
* for "tick-less" systems.
*/
static struct clocksource clocksource_jiffies = {
- .name = "jiffies",
- .rating = 1, /* lowest valid rating*/
- .read = jiffies_read,
- .mask = CLOCKSOURCE_MASK(32),
- .mult = TICK_NSEC << JIFFIES_SHIFT, /* details above */
- .shift = JIFFIES_SHIFT,
- .max_cycles = 10,
+ .name = "jiffies",
+ .rating = 1, /* lowest valid rating*/
+ .uncertainty_margin = 32 * NSEC_PER_MSEC,
+ .read = jiffies_read,
+ .mask = CLOCKSOURCE_MASK(32),
+ .mult = TICK_NSEC << JIFFIES_SHIFT, /* details above */
+ .shift = JIFFIES_SHIFT,
+ .max_cycles = 10,
};
__cacheline_aligned_in_smp DEFINE_RAW_SPINLOCK(jiffies_lock);
diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
index ba644760f507..a9e074769881 100644
--- a/kernel/trace/bpf_trace.c
+++ b/kernel/trace/bpf_trace.c
@@ -1517,9 +1517,6 @@ static const struct bpf_func_proto bpf_perf_prog_read_value_proto = {
BPF_CALL_4(bpf_read_branch_records, struct bpf_perf_event_data_kern *, ctx,
void *, buf, u32, size, u64, flags)
{
-#ifndef CONFIG_X86
- return -ENOENT;
-#else
static const u32 br_entry_size = sizeof(struct perf_branch_entry);
struct perf_branch_stack *br_stack = ctx->data->br_stack;
u32 to_copy;
@@ -1528,7 +1525,7 @@ BPF_CALL_4(bpf_read_branch_records, struct bpf_perf_event_data_kern *, ctx,
return -EINVAL;
if (unlikely(!br_stack))
- return -EINVAL;
+ return -ENOENT;
if (flags & BPF_F_GET_BRANCH_RECORDS_SIZE)
return br_stack->nr * br_entry_size;
@@ -1540,7 +1537,6 @@ BPF_CALL_4(bpf_read_branch_records, struct bpf_perf_event_data_kern *, ctx,
memcpy(buf, br_stack->entries, to_copy);
return to_copy;
-#endif
}
static const struct bpf_func_proto bpf_read_branch_records_proto = {
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index 552dbc9d5226..d8a9fc794126 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -1183,15 +1183,18 @@ static int probes_profile_seq_show(struct seq_file *m, void *v)
{
struct dyn_event *ev = v;
struct trace_kprobe *tk;
+ unsigned long nmissed;
if (!is_trace_kprobe(ev))
return 0;
tk = to_trace_kprobe(ev);
+ nmissed = trace_kprobe_is_return(tk) ?
+ tk->rp.kp.nmissed + tk->rp.nmissed : tk->rp.kp.nmissed;
seq_printf(m, " %-44s %15lu %15lu\n",
trace_probe_name(&tk->tp),
trace_kprobe_nhit(tk),
- tk->rp.kp.nmissed);
+ nmissed);
return 0;
}
diff --git a/kernel/tsacct.c b/kernel/tsacct.c
index 257ffb993ea2..fd2f7a052fdd 100644
--- a/kernel/tsacct.c
+++ b/kernel/tsacct.c
@@ -38,11 +38,10 @@ void bacct_add_tsk(struct user_namespace *user_ns,
stats->ac_btime = clamp_t(time64_t, btime, 0, U32_MAX);
stats->ac_btime64 = btime;
- if (thread_group_leader(tsk)) {
+ if (tsk->flags & PF_EXITING)
stats->ac_exitcode = tsk->exit_code;
- if (tsk->flags & PF_FORKNOEXEC)
- stats->ac_flag |= AFORK;
- }
+ if (thread_group_leader(tsk) && (tsk->flags & PF_FORKNOEXEC))
+ stats->ac_flag |= AFORK;
if (tsk->flags & PF_SUPERPRIV)
stats->ac_flag |= ASU;
if (tsk->flags & PF_DUMPCORE)
diff --git a/lib/mpi/mpi-mod.c b/lib/mpi/mpi-mod.c
index 47bc59edd4ff..54fcc01564d9 100644
--- a/lib/mpi/mpi-mod.c
+++ b/lib/mpi/mpi-mod.c
@@ -40,6 +40,8 @@ mpi_barrett_t mpi_barrett_init(MPI m, int copy)
mpi_normalize(m);
ctx = kcalloc(1, sizeof(*ctx), GFP_KERNEL);
+ if (!ctx)
+ return NULL;
if (copy) {
ctx->m = mpi_copy(m);
diff --git a/lib/test_hmm.c b/lib/test_hmm.c
index 80a78877bd93..a85613068d60 100644
--- a/lib/test_hmm.c
+++ b/lib/test_hmm.c
@@ -965,9 +965,33 @@ static long dmirror_fops_unlocked_ioctl(struct file *filp,
return 0;
}
+static int dmirror_fops_mmap(struct file *file, struct vm_area_struct *vma)
+{
+ unsigned long addr;
+
+ for (addr = vma->vm_start; addr < vma->vm_end; addr += PAGE_SIZE) {
+ struct page *page;
+ int ret;
+
+ page = alloc_page(GFP_KERNEL | __GFP_ZERO);
+ if (!page)
+ return -ENOMEM;
+
+ ret = vm_insert_page(vma, addr, page);
+ if (ret) {
+ __free_page(page);
+ return ret;
+ }
+ put_page(page);
+ }
+
+ return 0;
+}
+
static const struct file_operations dmirror_fops = {
.open = dmirror_fops_open,
.release = dmirror_fops_release,
+ .mmap = dmirror_fops_mmap,
.unlocked_ioctl = dmirror_fops_unlocked_ioctl,
.llseek = default_llseek,
.owner = THIS_MODULE,
diff --git a/lib/test_meminit.c b/lib/test_meminit.c
index e4f706a404b3..3ca717f11397 100644
--- a/lib/test_meminit.c
+++ b/lib/test_meminit.c
@@ -337,6 +337,7 @@ static int __init do_kmem_cache_size_bulk(int size, int *total_failures)
if (num)
kmem_cache_free_bulk(c, num, objects);
}
+ kmem_cache_destroy(c);
*total_failures += fail;
return 1;
}
diff --git a/mm/hmm.c b/mm/hmm.c
index fb617054f963..cbe9d0c66650 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -296,7 +296,8 @@ static int hmm_vma_handle_pte(struct mm_walk *walk, unsigned long addr,
* Since each architecture defines a struct page for the zero page, just
* fall through and treat it like a normal page.
*/
- if (pte_special(pte) && !pte_devmap(pte) &&
+ if (!vm_normal_page(walk->vma, addr, pte) &&
+ !pte_devmap(pte) &&
!is_zero_pfn(pte_pfn(pte))) {
if (hmm_pte_need_fault(hmm_vma_walk, pfn_req_flags, 0)) {
pte_unmap(ptep);
@@ -514,7 +515,7 @@ static int hmm_vma_walk_test(unsigned long start, unsigned long end,
struct hmm_range *range = hmm_vma_walk->range;
struct vm_area_struct *vma = walk->vma;
- if (!(vma->vm_flags & (VM_IO | VM_PFNMAP | VM_MIXEDMAP)) &&
+ if (!(vma->vm_flags & (VM_IO | VM_PFNMAP)) &&
vma->vm_flags & VM_READ)
return 0;
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index e8e0f1cec8b0..c63656c42e28 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3964,7 +3964,9 @@ void warn_alloc(gfp_t gfp_mask, nodemask_t *nodemask, const char *fmt, ...)
va_list args;
static DEFINE_RATELIMIT_STATE(nopage_rs, 10*HZ, 1);
- if ((gfp_mask & __GFP_NOWARN) || !__ratelimit(&nopage_rs))
+ if ((gfp_mask & __GFP_NOWARN) ||
+ !__ratelimit(&nopage_rs) ||
+ ((gfp_mask & __GFP_DMA) && !has_managed_dma()))
return;
va_start(args, fmt);
@@ -8903,3 +8905,18 @@ bool take_page_off_buddy(struct page *page)
return ret;
}
#endif
+
+#ifdef CONFIG_ZONE_DMA
+bool has_managed_dma(void)
+{
+ struct pglist_data *pgdat;
+
+ for_each_online_pgdat(pgdat) {
+ struct zone *zone = &pgdat->node_zones[ZONE_DMA];
+
+ if (managed_zone(zone))
+ return true;
+ }
+ return false;
+}
+#endif /* CONFIG_ZONE_DMA */
diff --git a/mm/shmem.c b/mm/shmem.c
index ae8adca3b56d..d3d8c5e7a296 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -527,7 +527,7 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
struct shmem_inode_info *info;
struct page *page;
unsigned long batch = sc ? sc->nr_to_scan : 128;
- int removed = 0, split = 0;
+ int split = 0;
if (list_empty(&sbinfo->shrinklist))
return SHRINK_STOP;
@@ -542,7 +542,6 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
/* inode is about to be evicted */
if (!inode) {
list_del_init(&info->shrinklist);
- removed++;
goto next;
}
@@ -550,12 +549,12 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
if (round_up(inode->i_size, PAGE_SIZE) ==
round_up(inode->i_size, HPAGE_PMD_SIZE)) {
list_move(&info->shrinklist, &to_remove);
- removed++;
goto next;
}
list_move(&info->shrinklist, &list);
next:
+ sbinfo->shrinklist_len--;
if (!--batch)
break;
}
@@ -575,7 +574,7 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
inode = &info->vfs_inode;
if (nr_to_split && split >= nr_to_split)
- goto leave;
+ goto move_back;
page = find_get_page(inode->i_mapping,
(inode->i_size & HPAGE_PMD_MASK) >> PAGE_SHIFT);
@@ -589,38 +588,44 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
}
/*
- * Leave the inode on the list if we failed to lock
- * the page at this time.
+ * Move the inode on the list back to shrinklist if we failed
+ * to lock the page at this time.
*
* Waiting for the lock may lead to deadlock in the
* reclaim path.
*/
if (!trylock_page(page)) {
put_page(page);
- goto leave;
+ goto move_back;
}
ret = split_huge_page(page);
unlock_page(page);
put_page(page);
- /* If split failed leave the inode on the list */
+ /* If split failed move the inode on the list back to shrinklist */
if (ret)
- goto leave;
+ goto move_back;
split++;
drop:
list_del_init(&info->shrinklist);
- removed++;
-leave:
+ goto put;
+move_back:
+ /*
+ * Make sure the inode is either on the global list or deleted
+ * from any local list before iput() since it could be deleted
+ * in another thread once we put the inode (then the local list
+ * is corrupted).
+ */
+ spin_lock(&sbinfo->shrinklist_lock);
+ list_move(&info->shrinklist, &sbinfo->shrinklist);
+ sbinfo->shrinklist_len++;
+ spin_unlock(&sbinfo->shrinklist_lock);
+put:
iput(inode);
}
- spin_lock(&sbinfo->shrinklist_lock);
- list_splice_tail(&list, &sbinfo->shrinklist);
- sbinfo->shrinklist_len -= removed;
- spin_unlock(&sbinfo->shrinklist_lock);
-
return split;
}
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
index 22278807b3f3..5e84dce5ff7a 100644
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -536,7 +536,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
ax25_cb *ax25;
struct net_device *dev;
char devname[IFNAMSIZ];
- unsigned long opt;
+ unsigned int opt;
int res = 0;
if (level != SOL_AX25)
@@ -568,7 +568,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
break;
case AX25_T1:
- if (opt < 1 || opt > ULONG_MAX / HZ) {
+ if (opt < 1 || opt > UINT_MAX / HZ) {
res = -EINVAL;
break;
}
@@ -577,7 +577,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
break;
case AX25_T2:
- if (opt < 1 || opt > ULONG_MAX / HZ) {
+ if (opt < 1 || opt > UINT_MAX / HZ) {
res = -EINVAL;
break;
}
@@ -593,7 +593,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
break;
case AX25_T3:
- if (opt < 1 || opt > ULONG_MAX / HZ) {
+ if (opt < 1 || opt > UINT_MAX / HZ) {
res = -EINVAL;
break;
}
@@ -601,7 +601,7 @@ static int ax25_setsockopt(struct socket *sock, int level, int optname,
break;
case AX25_IDLE:
- if (opt > ULONG_MAX / (60 * HZ)) {
+ if (opt > UINT_MAX / (60 * HZ)) {
res = -EINVAL;
break;
}
diff --git a/net/batman-adv/netlink.c b/net/batman-adv/netlink.c
index c7a55647b520..121459704b06 100644
--- a/net/batman-adv/netlink.c
+++ b/net/batman-adv/netlink.c
@@ -1361,21 +1361,21 @@ static const struct genl_small_ops batadv_netlink_ops[] = {
{
.cmd = BATADV_CMD_TP_METER,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_tp_meter_start,
.internal_flags = BATADV_FLAG_NEED_MESH,
},
{
.cmd = BATADV_CMD_TP_METER_CANCEL,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_tp_meter_cancel,
.internal_flags = BATADV_FLAG_NEED_MESH,
},
{
.cmd = BATADV_CMD_GET_ROUTING_ALGOS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_algo_dump,
},
{
@@ -1390,68 +1390,68 @@ static const struct genl_small_ops batadv_netlink_ops[] = {
{
.cmd = BATADV_CMD_GET_TRANSTABLE_LOCAL,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_tt_local_dump,
},
{
.cmd = BATADV_CMD_GET_TRANSTABLE_GLOBAL,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_tt_global_dump,
},
{
.cmd = BATADV_CMD_GET_ORIGINATORS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_orig_dump,
},
{
.cmd = BATADV_CMD_GET_NEIGHBORS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_hardif_neigh_dump,
},
{
.cmd = BATADV_CMD_GET_GATEWAYS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_gw_dump,
},
{
.cmd = BATADV_CMD_GET_BLA_CLAIM,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_bla_claim_dump,
},
{
.cmd = BATADV_CMD_GET_BLA_BACKBONE,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_bla_backbone_dump,
},
{
.cmd = BATADV_CMD_GET_DAT_CACHE,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_dat_cache_dump,
},
{
.cmd = BATADV_CMD_GET_MCAST_FLAGS,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.dumpit = batadv_mcast_flags_dump,
},
{
.cmd = BATADV_CMD_SET_MESH,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_set_mesh,
.internal_flags = BATADV_FLAG_NEED_MESH,
},
{
.cmd = BATADV_CMD_SET_HARDIF,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_set_hardif,
.internal_flags = BATADV_FLAG_NEED_MESH |
BATADV_FLAG_NEED_HARDIF,
@@ -1467,7 +1467,7 @@ static const struct genl_small_ops batadv_netlink_ops[] = {
{
.cmd = BATADV_CMD_SET_VLAN,
.validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
- .flags = GENL_ADMIN_PERM,
+ .flags = GENL_UNS_ADMIN_PERM,
.doit = batadv_netlink_set_vlan,
.internal_flags = BATADV_FLAG_NEED_MESH |
BATADV_FLAG_NEED_VLAN,
diff --git a/net/bluetooth/cmtp/core.c b/net/bluetooth/cmtp/core.c
index 0a2d78e811cf..83eb84e8e688 100644
--- a/net/bluetooth/cmtp/core.c
+++ b/net/bluetooth/cmtp/core.c
@@ -501,9 +501,7 @@ static int __init cmtp_init(void)
{
BT_INFO("CMTP (CAPI Emulation) ver %s", VERSION);
- cmtp_init_sockets();
-
- return 0;
+ return cmtp_init_sockets();
}
static void __exit cmtp_exit(void)
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 2ad66f64879f..2e7998bad133 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -3810,6 +3810,7 @@ int hci_register_dev(struct hci_dev *hdev)
return id;
err_wqueue:
+ debugfs_remove_recursive(hdev->debugfs);
destroy_workqueue(hdev->workqueue);
destroy_workqueue(hdev->req_workqueue);
err:
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 9f52145bb7b7..7ffcca9ae82a 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -5661,7 +5661,8 @@ static void hci_le_adv_report_evt(struct hci_dev *hdev, struct sk_buff *skb)
struct hci_ev_le_advertising_info *ev = ptr;
s8 rssi;
- if (ev->length <= HCI_MAX_AD_LENGTH) {
+ if (ev->length <= HCI_MAX_AD_LENGTH &&
+ ev->data + ev->length <= skb_tail_pointer(skb)) {
rssi = ev->data[ev->length];
process_adv_report(hdev, ev->evt_type, &ev->bdaddr,
ev->bdaddr_type, NULL, 0, rssi,
@@ -5671,6 +5672,11 @@ static void hci_le_adv_report_evt(struct hci_dev *hdev, struct sk_buff *skb)
}
ptr += sizeof(*ev) + ev->length + 1;
+
+ if (ptr > (void *) skb_tail_pointer(skb) - sizeof(*ev)) {
+ bt_dev_err(hdev, "Malicious advertising data. Stopping processing");
+ break;
+ }
}
hci_dev_unlock(hdev);
diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c
index 1a94ed2f8a4f..d965b7c66bd6 100644
--- a/net/bluetooth/hci_request.c
+++ b/net/bluetooth/hci_request.c
@@ -2118,7 +2118,7 @@ int __hci_req_enable_ext_advertising(struct hci_request *req, u8 instance)
/* Set duration per instance since controller is responsible for
* scheduling it.
*/
- if (adv_instance && adv_instance->duration) {
+ if (adv_instance && adv_instance->timeout) {
u16 duration = adv_instance->timeout * MSEC_PER_SEC;
/* Time = N * 10 ms */
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index 160c016a5dfb..d2c678520599 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -161,7 +161,11 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
break;
}
- if (chan->psm && bdaddr_type_is_le(chan->src_type))
+ /* Use L2CAP_MODE_LE_FLOWCTL (CoC) in case of LE address and
+ * L2CAP_MODE_EXT_FLOWCTL (ECRED) has not been set.
+ */
+ if (chan->psm && bdaddr_type_is_le(chan->src_type) &&
+ chan->mode != L2CAP_MODE_EXT_FLOWCTL)
chan->mode = L2CAP_MODE_LE_FLOWCTL;
chan->state = BT_BOUND;
@@ -172,6 +176,21 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
return err;
}
+static void l2cap_sock_init_pid(struct sock *sk)
+{
+ struct l2cap_chan *chan = l2cap_pi(sk)->chan;
+
+ /* Only L2CAP_MODE_EXT_FLOWCTL ever need to access the PID in order to
+ * group the channels being requested.
+ */
+ if (chan->mode != L2CAP_MODE_EXT_FLOWCTL)
+ return;
+
+ spin_lock(&sk->sk_peer_lock);
+ sk->sk_peer_pid = get_pid(task_tgid(current));
+ spin_unlock(&sk->sk_peer_lock);
+}
+
static int l2cap_sock_connect(struct socket *sock, struct sockaddr *addr,
int alen, int flags)
{
@@ -240,9 +259,15 @@ static int l2cap_sock_connect(struct socket *sock, struct sockaddr *addr,
return -EINVAL;
}
- if (chan->psm && bdaddr_type_is_le(chan->src_type) && !chan->mode)
+ /* Use L2CAP_MODE_LE_FLOWCTL (CoC) in case of LE address and
+ * L2CAP_MODE_EXT_FLOWCTL (ECRED) has not been set.
+ */
+ if (chan->psm && bdaddr_type_is_le(chan->src_type) &&
+ chan->mode != L2CAP_MODE_EXT_FLOWCTL)
chan->mode = L2CAP_MODE_LE_FLOWCTL;
+ l2cap_sock_init_pid(sk);
+
err = l2cap_chan_connect(chan, la.l2_psm, __le16_to_cpu(la.l2_cid),
&la.l2_bdaddr, la.l2_bdaddr_type);
if (err)
@@ -298,6 +323,8 @@ static int l2cap_sock_listen(struct socket *sock, int backlog)
goto done;
}
+ l2cap_sock_init_pid(sk);
+
sk->sk_max_ack_backlog = backlog;
sk->sk_ack_backlog = 0;
@@ -876,6 +903,8 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
struct l2cap_conn *conn;
int len, err = 0;
u32 opt;
+ u16 mtu;
+ u8 mode;
BT_DBG("sk %p", sk);
@@ -1058,16 +1087,16 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
break;
}
- if (copy_from_sockptr(&opt, optval, sizeof(u16))) {
+ if (copy_from_sockptr(&mtu, optval, sizeof(u16))) {
err = -EFAULT;
break;
}
if (chan->mode == L2CAP_MODE_EXT_FLOWCTL &&
sk->sk_state == BT_CONNECTED)
- err = l2cap_chan_reconfigure(chan, opt);
+ err = l2cap_chan_reconfigure(chan, mtu);
else
- chan->imtu = opt;
+ chan->imtu = mtu;
break;
@@ -1089,14 +1118,14 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
break;
}
- if (copy_from_sockptr(&opt, optval, sizeof(u8))) {
+ if (copy_from_sockptr(&mode, optval, sizeof(u8))) {
err = -EFAULT;
break;
}
- BT_DBG("opt %u", opt);
+ BT_DBG("mode %u", mode);
- err = l2cap_set_mode(chan, opt);
+ err = l2cap_set_mode(chan, mode);
if (err)
break;
diff --git a/net/bridge/br_netfilter_hooks.c b/net/bridge/br_netfilter_hooks.c
index 8edfb98ae1d5..68c0d0f92890 100644
--- a/net/bridge/br_netfilter_hooks.c
+++ b/net/bridge/br_netfilter_hooks.c
@@ -743,6 +743,9 @@ static int br_nf_dev_queue_xmit(struct net *net, struct sock *sk, struct sk_buff
if (nf_bridge->frag_max_size && nf_bridge->frag_max_size < mtu)
mtu = nf_bridge->frag_max_size;
+ nf_bridge_update_protocol(skb);
+ nf_bridge_push_encap_header(skb);
+
if (skb_is_gso(skb) || skb->len + mtu_reserved <= mtu) {
nf_bridge_info_free(skb);
return br_dev_queue_push_xmit(net, sk, skb);
@@ -760,8 +763,6 @@ static int br_nf_dev_queue_xmit(struct net *net, struct sock *sk, struct sk_buff
IPCB(skb)->frag_max_size = nf_bridge->frag_max_size;
- nf_bridge_update_protocol(skb);
-
data = this_cpu_ptr(&brnf_frag_data_storage);
if (skb_vlan_tag_present(skb)) {
@@ -789,8 +790,6 @@ static int br_nf_dev_queue_xmit(struct net *net, struct sock *sk, struct sk_buff
IP6CB(skb)->frag_max_size = nf_bridge->frag_max_size;
- nf_bridge_update_protocol(skb);
-
data = this_cpu_ptr(&brnf_frag_data_storage);
data->encap_size = nf_bridge_encap_header_len(skb);
data->size = ETH_HLEN + data->encap_size;
diff --git a/net/core/dev.c b/net/core/dev.c
index 60cf3cd0c282..0bab2aca07fd 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -9339,6 +9339,12 @@ static int bpf_xdp_link_update(struct bpf_link *link, struct bpf_prog *new_prog,
goto out_unlock;
}
old_prog = link->prog;
+ if (old_prog->type != new_prog->type ||
+ old_prog->expected_attach_type != new_prog->expected_attach_type) {
+ err = -EINVAL;
+ goto out_unlock;
+ }
+
if (old_prog == new_prog) {
/* no-op, don't disturb drivers */
bpf_prog_put(new_prog);
diff --git a/net/core/devlink.c b/net/core/devlink.c
index 442b67c044a9..646d90f63daf 100644
--- a/net/core/devlink.c
+++ b/net/core/devlink.c
@@ -7852,8 +7852,6 @@ static const struct genl_small_ops devlink_nl_ops[] = {
GENL_DONT_VALIDATE_DUMP_STRICT,
.dumpit = devlink_nl_cmd_health_reporter_dump_get_dumpit,
.flags = GENL_ADMIN_PERM,
- .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK_OR_PORT |
- DEVLINK_NL_FLAG_NO_LOCK,
},
{
.cmd = DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR,
diff --git a/net/core/filter.c b/net/core/filter.c
index abd58dce49bb..7fa4283f2a8c 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -4711,12 +4711,14 @@ static int _bpf_setsockopt(struct sock *sk, int level, int optname,
switch (optname) {
case SO_RCVBUF:
val = min_t(u32, val, sysctl_rmem_max);
+ val = min_t(int, val, INT_MAX / 2);
sk->sk_userlocks |= SOCK_RCVBUF_LOCK;
WRITE_ONCE(sk->sk_rcvbuf,
max_t(int, val * 2, SOCK_MIN_RCVBUF));
break;
case SO_SNDBUF:
val = min_t(u32, val, sysctl_wmem_max);
+ val = min_t(int, val, INT_MAX / 2);
sk->sk_userlocks |= SOCK_SNDBUF_LOCK;
WRITE_ONCE(sk->sk_sndbuf,
max_t(int, val * 2, SOCK_MIN_SNDBUF));
@@ -7919,9 +7921,9 @@ void bpf_warn_invalid_xdp_action(u32 act)
{
const u32 act_max = XDP_REDIRECT;
- WARN_ONCE(1, "%s XDP return value %u, expect packet loss!\n",
- act > act_max ? "Illegal" : "Driver unsupported",
- act);
+ pr_warn_once("%s XDP return value %u, expect packet loss!\n",
+ act > act_max ? "Illegal" : "Driver unsupported",
+ act);
}
EXPORT_SYMBOL_GPL(bpf_warn_invalid_xdp_action);
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
index af5912360105..99303897b7bb 100644
--- a/net/core/net-sysfs.c
+++ b/net/core/net-sysfs.c
@@ -1804,6 +1804,9 @@ static void remove_queue_kobjects(struct net_device *dev)
net_rx_queue_update_kobjects(dev, real_rx, 0);
netdev_queue_update_kobjects(dev, real_tx, 0);
+
+ dev->real_num_rx_queues = 0;
+ dev->real_num_tx_queues = 0;
#ifdef CONFIG_SYSFS
kset_unregister(dev->queues_kset);
#endif
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index ac852db83de9..cbff7d94b993 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -183,8 +183,10 @@ static void ops_exit_list(const struct pernet_operations *ops,
{
struct net *net;
if (ops->exit) {
- list_for_each_entry(net, net_exit_list, exit_list)
+ list_for_each_entry(net, net_exit_list, exit_list) {
ops->exit(net);
+ cond_resched();
+ }
}
if (ops->exit_batch)
ops->exit_batch(net_exit_list);
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
index ab6a8f35d369..838a876c168c 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -29,6 +29,7 @@
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/netlink.h>
+#include <linux/hash.h>
#include <net/arp.h>
#include <net/ip.h>
@@ -251,7 +252,6 @@ void free_fib_info(struct fib_info *fi)
pr_warn("Freeing alive fib_info %p\n", fi);
return;
}
- fib_info_cnt--;
call_rcu(&fi->rcu, free_fib_info_rcu);
}
@@ -262,6 +262,10 @@ void fib_release_info(struct fib_info *fi)
spin_lock_bh(&fib_info_lock);
if (fi && --fi->fib_treeref == 0) {
hlist_del(&fi->fib_hash);
+
+ /* Paired with READ_ONCE() in fib_create_info(). */
+ WRITE_ONCE(fib_info_cnt, fib_info_cnt - 1);
+
if (fi->fib_prefsrc)
hlist_del(&fi->fib_lhash);
if (fi->nh) {
@@ -318,11 +322,15 @@ static inline int nh_comp(struct fib_info *fi, struct fib_info *ofi)
static inline unsigned int fib_devindex_hashfn(unsigned int val)
{
- unsigned int mask = DEVINDEX_HASHSIZE - 1;
+ return hash_32(val, DEVINDEX_HASHBITS);
+}
+
+static struct hlist_head *
+fib_info_devhash_bucket(const struct net_device *dev)
+{
+ u32 val = net_hash_mix(dev_net(dev)) ^ dev->ifindex;
- return (val ^
- (val >> DEVINDEX_HASHBITS) ^
- (val >> (DEVINDEX_HASHBITS * 2))) & mask;
+ return &fib_info_devhash[fib_devindex_hashfn(val)];
}
static unsigned int fib_info_hashfn_1(int init_val, u8 protocol, u8 scope,
@@ -432,12 +440,11 @@ int ip_fib_check_default(__be32 gw, struct net_device *dev)
{
struct hlist_head *head;
struct fib_nh *nh;
- unsigned int hash;
spin_lock(&fib_info_lock);
- hash = fib_devindex_hashfn(dev->ifindex);
- head = &fib_info_devhash[hash];
+ head = fib_info_devhash_bucket(dev);
+
hlist_for_each_entry(nh, head, nh_hash) {
if (nh->fib_nh_dev == dev &&
nh->fib_nh_gw4 == gw &&
@@ -1431,7 +1438,9 @@ struct fib_info *fib_create_info(struct fib_config *cfg,
#endif
err = -ENOBUFS;
- if (fib_info_cnt >= fib_info_hash_size) {
+
+ /* Paired with WRITE_ONCE() in fib_release_info() */
+ if (READ_ONCE(fib_info_cnt) >= fib_info_hash_size) {
unsigned int new_size = fib_info_hash_size << 1;
struct hlist_head *new_info_hash;
struct hlist_head *new_laddrhash;
@@ -1463,7 +1472,6 @@ struct fib_info *fib_create_info(struct fib_config *cfg,
return ERR_PTR(err);
}
- fib_info_cnt++;
fi->fib_net = net;
fi->fib_protocol = cfg->fc_protocol;
fi->fib_scope = cfg->fc_scope;
@@ -1590,6 +1598,7 @@ struct fib_info *fib_create_info(struct fib_config *cfg,
fi->fib_treeref++;
refcount_set(&fi->fib_clntref, 1);
spin_lock_bh(&fib_info_lock);
+ fib_info_cnt++;
hlist_add_head(&fi->fib_hash,
&fib_info_hash[fib_info_hashfn(fi)]);
if (fi->fib_prefsrc) {
@@ -1603,12 +1612,10 @@ struct fib_info *fib_create_info(struct fib_config *cfg,
} else {
change_nexthops(fi) {
struct hlist_head *head;
- unsigned int hash;
if (!nexthop_nh->fib_nh_dev)
continue;
- hash = fib_devindex_hashfn(nexthop_nh->fib_nh_dev->ifindex);
- head = &fib_info_devhash[hash];
+ head = fib_info_devhash_bucket(nexthop_nh->fib_nh_dev);
hlist_add_head(&nexthop_nh->nh_hash, head);
} endfor_nexthops(fi)
}
@@ -1958,8 +1965,7 @@ void fib_nhc_update_mtu(struct fib_nh_common *nhc, u32 new, u32 orig)
void fib_sync_mtu(struct net_device *dev, u32 orig_mtu)
{
- unsigned int hash = fib_devindex_hashfn(dev->ifindex);
- struct hlist_head *head = &fib_info_devhash[hash];
+ struct hlist_head *head = fib_info_devhash_bucket(dev);
struct fib_nh *nh;
hlist_for_each_entry(nh, head, nh_hash) {
@@ -1978,12 +1984,11 @@ void fib_sync_mtu(struct net_device *dev, u32 orig_mtu)
*/
int fib_sync_down_dev(struct net_device *dev, unsigned long event, bool force)
{
- int ret = 0;
- int scope = RT_SCOPE_NOWHERE;
+ struct hlist_head *head = fib_info_devhash_bucket(dev);
struct fib_info *prev_fi = NULL;
- unsigned int hash = fib_devindex_hashfn(dev->ifindex);
- struct hlist_head *head = &fib_info_devhash[hash];
+ int scope = RT_SCOPE_NOWHERE;
struct fib_nh *nh;
+ int ret = 0;
if (force)
scope = -1;
@@ -2128,7 +2133,6 @@ static void fib_select_default(const struct flowi4 *flp, struct fib_result *res)
int fib_sync_up(struct net_device *dev, unsigned char nh_flags)
{
struct fib_info *prev_fi;
- unsigned int hash;
struct hlist_head *head;
struct fib_nh *nh;
int ret;
@@ -2144,8 +2148,7 @@ int fib_sync_up(struct net_device *dev, unsigned char nh_flags)
}
prev_fi = NULL;
- hash = fib_devindex_hashfn(dev->ifindex);
- head = &fib_info_devhash[hash];
+ head = fib_info_devhash_bucket(dev);
ret = 0;
hlist_for_each_entry(nh, head, nh_hash) {
diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c
index 10d31733297d..e0e8a65d561e 100644
--- a/net/ipv4/inet_fragment.c
+++ b/net/ipv4/inet_fragment.c
@@ -204,9 +204,9 @@ void inet_frag_kill(struct inet_frag_queue *fq)
/* The RCU read lock provides a memory barrier
* guaranteeing that if fqdir->dead is false then
* the hash table destruction will not start until
- * after we unlock. Paired with inet_frags_exit_net().
+ * after we unlock. Paired with fqdir_pre_exit().
*/
- if (!fqdir->dead) {
+ if (!READ_ONCE(fqdir->dead)) {
rhashtable_remove_fast(&fqdir->rhashtable, &fq->node,
fqdir->f->rhash_params);
refcount_dec(&fq->refcnt);
@@ -321,9 +321,11 @@ static struct inet_frag_queue *inet_frag_create(struct fqdir *fqdir,
/* TODO : call from rcu_read_lock() and no longer use refcount_inc_not_zero() */
struct inet_frag_queue *inet_frag_find(struct fqdir *fqdir, void *key)
{
+ /* This pairs with WRITE_ONCE() in fqdir_pre_exit(). */
+ long high_thresh = READ_ONCE(fqdir->high_thresh);
struct inet_frag_queue *fq = NULL, *prev;
- if (!fqdir->high_thresh || frag_mem_limit(fqdir) > fqdir->high_thresh)
+ if (!high_thresh || frag_mem_limit(fqdir) > high_thresh)
return NULL;
rcu_read_lock();
diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
index cfeb8890f94e..fad803d2d711 100644
--- a/net/ipv4/ip_fragment.c
+++ b/net/ipv4/ip_fragment.c
@@ -144,7 +144,8 @@ static void ip_expire(struct timer_list *t)
rcu_read_lock();
- if (qp->q.fqdir->dead)
+ /* Paired with WRITE_ONCE() in fqdir_pre_exit(). */
+ if (READ_ONCE(qp->q.fqdir->dead))
goto out_rcu_unlock;
spin_lock(&qp->q.lock);
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index a9cc05043fa4..e4504dd510c6 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -599,8 +599,9 @@ static int gre_fill_metadata_dst(struct net_device *dev, struct sk_buff *skb)
key = &info->key;
ip_tunnel_init_flow(&fl4, IPPROTO_GRE, key->u.ipv4.dst, key->u.ipv4.src,
- tunnel_id_to_key32(key->tun_id), key->tos, 0,
- skb->mark, skb_get_hash(skb));
+ tunnel_id_to_key32(key->tun_id),
+ key->tos & ~INET_ECN_MASK, 0, skb->mark,
+ skb_get_hash(skb));
rt = ip_route_output_key(dev_net(dev), &fl4);
if (IS_ERR(rt))
return PTR_ERR(rt);
diff --git a/net/ipv4/netfilter/ipt_CLUSTERIP.c b/net/ipv4/netfilter/ipt_CLUSTERIP.c
index a8b980ad11d4..1088564d4dbc 100644
--- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
+++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
@@ -505,8 +505,11 @@ static int clusterip_tg_check(const struct xt_tgchk_param *par)
if (IS_ERR(config))
return PTR_ERR(config);
}
- } else if (memcmp(&config->clustermac, &cipinfo->clustermac, ETH_ALEN))
+ } else if (memcmp(&config->clustermac, &cipinfo->clustermac, ETH_ALEN)) {
+ clusterip_config_entry_put(config);
+ clusterip_config_put(config);
return -EINVAL;
+ }
ret = nf_ct_netns_get(par->net, par->family);
if (ret < 0) {
diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
index 09fa49bbf617..9a0263f25232 100644
--- a/net/ipv6/ip6_gre.c
+++ b/net/ipv6/ip6_gre.c
@@ -755,6 +755,7 @@ static netdev_tx_t __gre6_xmit(struct sk_buff *skb,
fl6->daddr = key->u.ipv6.dst;
fl6->flowlabel = key->label;
fl6->flowi6_uid = sock_net_uid(dev_net(dev), NULL);
+ fl6->fl6_gre_key = tunnel_id_to_key32(key->tun_id);
dsfield = key->tos;
flags = key->tun_flags &
@@ -990,6 +991,7 @@ static netdev_tx_t ip6erspan_tunnel_xmit(struct sk_buff *skb,
fl6.daddr = key->u.ipv6.dst;
fl6.flowlabel = key->label;
fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
+ fl6.fl6_gre_key = tunnel_id_to_key32(key->tun_id);
dsfield = key->tos;
if (!(tun_info->key.tun_flags & TUNNEL_ERSPAN_OPT))
@@ -1098,6 +1100,7 @@ static void ip6gre_tnl_link_config_common(struct ip6_tnl *t)
fl6->flowi6_oif = p->link;
fl6->flowlabel = 0;
fl6->flowi6_proto = IPPROTO_GRE;
+ fl6->fl6_gre_key = t->parms.o_key;
if (!(p->flags&IP6_TNL_F_USE_ORIG_TCLASS))
fl6->flowlabel |= IPV6_TCLASS_MASK & p->flowinfo;
@@ -1543,7 +1546,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
static struct inet6_protocol ip6gre_protocol __read_mostly = {
.handler = gre_rcv,
.err_handler = ip6gre_err,
- .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
+ .flags = INET6_PROTO_FINAL,
};
static void ip6gre_destroy_tunnels(struct net *net, struct list_head *head)
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 6a24431b9009..d27c444a19ed 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -4800,7 +4800,7 @@ void ieee80211_rx_list(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta,
goto drop;
break;
case RX_ENC_VHT:
- if (WARN_ONCE(status->rate_idx > 9 ||
+ if (WARN_ONCE(status->rate_idx > 11 ||
!status->nss ||
status->nss > 8,
"Rate marked as a VHT rate but data is invalid: MCS: %d, NSS: %d\n",
diff --git a/net/netfilter/nft_set_pipapo.c b/net/netfilter/nft_set_pipapo.c
index 2d73f265b12c..f67c4436c5d3 100644
--- a/net/netfilter/nft_set_pipapo.c
+++ b/net/netfilter/nft_set_pipapo.c
@@ -1290,6 +1290,11 @@ static struct nft_pipapo_match *pipapo_clone(struct nft_pipapo_match *old)
if (!new->scratch_aligned)
goto out_scratch;
#endif
+ for_each_possible_cpu(i)
+ *per_cpu_ptr(new->scratch, i) = NULL;
+
+ if (pipapo_realloc_scratch(new, old->bsize_max))
+ goto out_scratch_realloc;
rcu_head_init(&new->rcu);
@@ -1334,6 +1339,9 @@ static struct nft_pipapo_match *pipapo_clone(struct nft_pipapo_match *old)
kvfree(dst->lt);
dst--;
}
+out_scratch_realloc:
+ for_each_possible_cpu(i)
+ kfree(*per_cpu_ptr(new->scratch, i));
#ifdef NFT_PIPAPO_ALIGN
free_percpu(new->scratch_aligned);
#endif
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
index eef0e3f2f25b..e5c8a295e640 100644
--- a/net/netrom/af_netrom.c
+++ b/net/netrom/af_netrom.c
@@ -298,7 +298,7 @@ static int nr_setsockopt(struct socket *sock, int level, int optname,
{
struct sock *sk = sock->sk;
struct nr_sock *nr = nr_sk(sk);
- unsigned long opt;
+ unsigned int opt;
if (level != SOL_NETROM)
return -ENOPROTOOPT;
@@ -306,18 +306,18 @@ static int nr_setsockopt(struct socket *sock, int level, int optname,
if (optlen < sizeof(unsigned int))
return -EINVAL;
- if (copy_from_sockptr(&opt, optval, sizeof(unsigned long)))
+ if (copy_from_sockptr(&opt, optval, sizeof(opt)))
return -EFAULT;
switch (optname) {
case NETROM_T1:
- if (opt < 1 || opt > ULONG_MAX / HZ)
+ if (opt < 1 || opt > UINT_MAX / HZ)
return -EINVAL;
nr->t1 = opt * HZ;
return 0;
case NETROM_T2:
- if (opt < 1 || opt > ULONG_MAX / HZ)
+ if (opt < 1 || opt > UINT_MAX / HZ)
return -EINVAL;
nr->t2 = opt * HZ;
return 0;
@@ -329,13 +329,13 @@ static int nr_setsockopt(struct socket *sock, int level, int optname,
return 0;
case NETROM_T4:
- if (opt < 1 || opt > ULONG_MAX / HZ)
+ if (opt < 1 || opt > UINT_MAX / HZ)
return -EINVAL;
nr->t4 = opt * HZ;
return 0;
case NETROM_IDLE:
- if (opt > ULONG_MAX / (60 * HZ))
+ if (opt > UINT_MAX / (60 * HZ))
return -EINVAL;
nr->idle = opt * 60 * HZ;
return 0;
diff --git a/net/nfc/llcp_sock.c b/net/nfc/llcp_sock.c
index 6cfd30fc0798..0b93a17b9f11 100644
--- a/net/nfc/llcp_sock.c
+++ b/net/nfc/llcp_sock.c
@@ -789,6 +789,11 @@ static int llcp_sock_sendmsg(struct socket *sock, struct msghdr *msg,
lock_sock(sk);
+ if (!llcp_sock->local) {
+ release_sock(sk);
+ return -ENODEV;
+ }
+
if (sk->sk_type == SOCK_DGRAM) {
DECLARE_SOCKADDR(struct sockaddr_nfc_llcp *, addr,
msg->msg_name);
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 6a9c1a39874a..b5005abc84ec 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -1386,6 +1386,7 @@ void psched_ratecfg_precompute(struct psched_ratecfg *r,
{
memset(r, 0, sizeof(*r));
r->overhead = conf->overhead;
+ r->mpu = conf->mpu;
r->rate_bytes_ps = max_t(u64, conf->rate, rate64);
r->linklayer = (conf->linklayer & TC_LINKLAYER_MASK);
r->mult = 1;
diff --git a/net/smc/smc_core.c b/net/smc/smc_core.c
index 2a22dc85951e..4eb9ef9c2800 100644
--- a/net/smc/smc_core.c
+++ b/net/smc/smc_core.c
@@ -1002,16 +1002,11 @@ void smc_smcd_terminate_all(struct smcd_dev *smcd)
/* Called when an SMCR device is removed or the smc module is unloaded.
* If smcibdev is given, all SMCR link groups using this device are terminated.
* If smcibdev is NULL, all SMCR link groups are terminated.
- *
- * We must wait here for QPs been destroyed before we destroy the CQs,
- * or we won't received any CQEs and cdc_pend_tx_wr cannot reach 0 thus
- * smc_sock cannot be released.
*/
void smc_smcr_terminate_all(struct smc_ib_device *smcibdev)
{
struct smc_link_group *lgr, *lg;
LIST_HEAD(lgr_free_list);
- LIST_HEAD(lgr_linkdown_list);
int i;
spin_lock_bh(&smc_lgr_list.lock);
@@ -1023,7 +1018,7 @@ void smc_smcr_terminate_all(struct smc_ib_device *smcibdev)
list_for_each_entry_safe(lgr, lg, &smc_lgr_list.list, list) {
for (i = 0; i < SMC_LINKS_PER_LGR_MAX; i++) {
if (lgr->lnk[i].smcibdev == smcibdev)
- list_move_tail(&lgr->list, &lgr_linkdown_list);
+ smcr_link_down_cond_sched(&lgr->lnk[i]);
}
}
}
@@ -1035,16 +1030,6 @@ void smc_smcr_terminate_all(struct smc_ib_device *smcibdev)
__smc_lgr_terminate(lgr, false);
}
- list_for_each_entry_safe(lgr, lg, &lgr_linkdown_list, list) {
- for (i = 0; i < SMC_LINKS_PER_LGR_MAX; i++) {
- if (lgr->lnk[i].smcibdev == smcibdev) {
- mutex_lock(&lgr->llc_conf_mutex);
- smcr_link_down_cond(&lgr->lnk[i]);
- mutex_unlock(&lgr->llc_conf_mutex);
- }
- }
- }
-
if (smcibdev) {
if (atomic_read(&smcibdev->lnk_cnt))
wait_event(smcibdev->lnks_deleted,
diff --git a/net/unix/garbage.c b/net/unix/garbage.c
index 12e2ddaf887f..d45d5366115a 100644
--- a/net/unix/garbage.c
+++ b/net/unix/garbage.c
@@ -192,8 +192,11 @@ void wait_for_unix_gc(void)
{
/* If number of inflight sockets is insane,
* force a garbage collect right now.
+ * Paired with the WRITE_ONCE() in unix_inflight(),
+ * unix_notinflight() and gc_in_progress().
*/
- if (unix_tot_inflight > UNIX_INFLIGHT_TRIGGER_GC && !gc_in_progress)
+ if (READ_ONCE(unix_tot_inflight) > UNIX_INFLIGHT_TRIGGER_GC &&
+ !READ_ONCE(gc_in_progress))
unix_gc();
wait_event(unix_gc_wait, gc_in_progress == false);
}
@@ -213,7 +216,9 @@ void unix_gc(void)
if (gc_in_progress)
goto out;
- gc_in_progress = true;
+ /* Paired with READ_ONCE() in wait_for_unix_gc(). */
+ WRITE_ONCE(gc_in_progress, true);
+
/* First, select candidates for garbage collection. Only
* in-flight sockets are considered, and from those only ones
* which don't have any external reference.
@@ -299,7 +304,10 @@ void unix_gc(void)
/* All candidates should have been detached by now. */
BUG_ON(!list_empty(&gc_candidates));
- gc_in_progress = false;
+
+ /* Paired with READ_ONCE() in wait_for_unix_gc(). */
+ WRITE_ONCE(gc_in_progress, false);
+
wake_up(&unix_gc_wait);
out:
diff --git a/net/unix/scm.c b/net/unix/scm.c
index 052ae709ce28..aa27a02478dc 100644
--- a/net/unix/scm.c
+++ b/net/unix/scm.c
@@ -60,7 +60,8 @@ void unix_inflight(struct user_struct *user, struct file *fp)
} else {
BUG_ON(list_empty(&u->link));
}
- unix_tot_inflight++;
+ /* Paired with READ_ONCE() in wait_for_unix_gc() */
+ WRITE_ONCE(unix_tot_inflight, unix_tot_inflight + 1);
}
user->unix_inflight++;
spin_unlock(&unix_gc_lock);
@@ -80,7 +81,8 @@ void unix_notinflight(struct user_struct *user, struct file *fp)
if (atomic_long_dec_and_test(&u->inflight))
list_del_init(&u->link);
- unix_tot_inflight--;
+ /* Paired with READ_ONCE() in wait_for_unix_gc() */
+ WRITE_ONCE(unix_tot_inflight, unix_tot_inflight - 1);
}
user->unix_inflight--;
spin_unlock(&unix_gc_lock);
diff --git a/net/xfrm/xfrm_compat.c b/net/xfrm/xfrm_compat.c
index 2bf269390163..a0f62fa02e06 100644
--- a/net/xfrm/xfrm_compat.c
+++ b/net/xfrm/xfrm_compat.c
@@ -127,6 +127,7 @@ static const struct nla_policy compat_policy[XFRMA_MAX+1] = {
[XFRMA_SET_MARK] = { .type = NLA_U32 },
[XFRMA_SET_MARK_MASK] = { .type = NLA_U32 },
[XFRMA_IF_ID] = { .type = NLA_U32 },
+ [XFRMA_MTIMER_THRESH] = { .type = NLA_U32 },
};
static struct nlmsghdr *xfrm_nlmsg_put_compat(struct sk_buff *skb,
@@ -274,9 +275,10 @@ static int xfrm_xlate64_attr(struct sk_buff *dst, const struct nlattr *src)
case XFRMA_SET_MARK:
case XFRMA_SET_MARK_MASK:
case XFRMA_IF_ID:
+ case XFRMA_MTIMER_THRESH:
return xfrm_nla_cpy(dst, src, nla_len(src));
default:
- BUILD_BUG_ON(XFRMA_MAX != XFRMA_IF_ID);
+ BUILD_BUG_ON(XFRMA_MAX != XFRMA_MTIMER_THRESH);
pr_warn_once("unsupported nla_type %d\n", src->nla_type);
return -EOPNOTSUPP;
}
@@ -431,7 +433,7 @@ static int xfrm_xlate32_attr(void *dst, const struct nlattr *nla,
int err;
if (type > XFRMA_MAX) {
- BUILD_BUG_ON(XFRMA_MAX != XFRMA_IF_ID);
+ BUILD_BUG_ON(XFRMA_MAX != XFRMA_MTIMER_THRESH);
NL_SET_ERR_MSG(extack, "Bad attribute");
return -EOPNOTSUPP;
}
diff --git a/net/xfrm/xfrm_interface.c b/net/xfrm/xfrm_interface.c
index e9ce23343f5c..e1fae61a5bb9 100644
--- a/net/xfrm/xfrm_interface.c
+++ b/net/xfrm/xfrm_interface.c
@@ -643,11 +643,16 @@ static int xfrmi_newlink(struct net *src_net, struct net_device *dev,
struct netlink_ext_ack *extack)
{
struct net *net = dev_net(dev);
- struct xfrm_if_parms p;
+ struct xfrm_if_parms p = {};
struct xfrm_if *xi;
int err;
xfrmi_netlink_parms(data, &p);
+ if (!p.if_id) {
+ NL_SET_ERR_MSG(extack, "if_id must be non zero");
+ return -EINVAL;
+ }
+
xi = xfrmi_locate(net, &p);
if (xi)
return -EEXIST;
@@ -672,7 +677,12 @@ static int xfrmi_changelink(struct net_device *dev, struct nlattr *tb[],
{
struct xfrm_if *xi = netdev_priv(dev);
struct net *net = xi->net;
- struct xfrm_if_parms p;
+ struct xfrm_if_parms p = {};
+
+ if (!p.if_id) {
+ NL_SET_ERR_MSG(extack, "if_id must be non zero");
+ return -EINVAL;
+ }
xfrmi_netlink_parms(data, &p);
xi = xfrmi_locate(net, &p);
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 3a9831c05ec7..c4a195cb3681 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -31,8 +31,10 @@
#include <linux/if_tunnel.h>
#include <net/dst.h>
#include <net/flow.h>
+#include <net/inet_ecn.h>
#include <net/xfrm.h>
#include <net/ip.h>
+#include <net/gre.h>
#if IS_ENABLED(CONFIG_IPV6_MIP6)
#include <net/mip6.h>
#endif
@@ -3293,7 +3295,7 @@ decode_session4(struct sk_buff *skb, struct flowi *fl, bool reverse)
fl4->flowi4_proto = iph->protocol;
fl4->daddr = reverse ? iph->saddr : iph->daddr;
fl4->saddr = reverse ? iph->daddr : iph->saddr;
- fl4->flowi4_tos = iph->tos;
+ fl4->flowi4_tos = iph->tos & ~INET_ECN_MASK;
if (!ip_is_fragment(iph)) {
switch (iph->protocol) {
@@ -3455,6 +3457,26 @@ decode_session6(struct sk_buff *skb, struct flowi *fl, bool reverse)
}
fl6->flowi6_proto = nexthdr;
return;
+ case IPPROTO_GRE:
+ if (!onlyproto &&
+ (nh + offset + 12 < skb->data ||
+ pskb_may_pull(skb, nh + offset + 12 - skb->data))) {
+ struct gre_base_hdr *gre_hdr;
+ __be32 *gre_key;
+
+ nh = skb_network_header(skb);
+ gre_hdr = (struct gre_base_hdr *)(nh + offset);
+ gre_key = (__be32 *)(gre_hdr + 1);
+
+ if (gre_hdr->flags & GRE_KEY) {
+ if (gre_hdr->flags & GRE_CSUM)
+ gre_key++;
+ fl6->fl6_gre_key = *gre_key;
+ }
+ }
+ fl6->flowi6_proto = nexthdr;
+ return;
+
#if IS_ENABLED(CONFIG_IPV6_MIP6)
case IPPROTO_MH:
offset += ipv6_optlen(exthdr);
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index c158e70e8ae1..65e2805fa113 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -1557,6 +1557,9 @@ static struct xfrm_state *xfrm_state_clone(struct xfrm_state *orig,
x->km.seq = orig->km.seq;
x->replay = orig->replay;
x->preplay = orig->preplay;
+ x->mapping_maxage = orig->mapping_maxage;
+ x->new_mapping = 0;
+ x->new_mapping_sport = 0;
return x;
@@ -2208,7 +2211,7 @@ int km_query(struct xfrm_state *x, struct xfrm_tmpl *t, struct xfrm_policy *pol)
}
EXPORT_SYMBOL(km_query);
-int km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
+static int __km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
{
int err = -EINVAL;
struct xfrm_mgr *km;
@@ -2223,6 +2226,24 @@ int km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
rcu_read_unlock();
return err;
}
+
+int km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport)
+{
+ int ret = 0;
+
+ if (x->mapping_maxage) {
+ if ((jiffies / HZ - x->new_mapping) > x->mapping_maxage ||
+ x->new_mapping_sport != sport) {
+ x->new_mapping_sport = sport;
+ x->new_mapping = jiffies / HZ;
+ ret = __km_new_mapping(x, ipaddr, sport);
+ }
+ } else {
+ ret = __km_new_mapping(x, ipaddr, sport);
+ }
+
+ return ret;
+}
EXPORT_SYMBOL(km_new_mapping);
void km_policy_expired(struct xfrm_policy *pol, int dir, int hard, u32 portid)
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index 6f97665b632e..d0fdfbf4c5f7 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -282,6 +282,10 @@ static int verify_newsa_info(struct xfrm_usersa_info *p,
err = 0;
+ if (attrs[XFRMA_MTIMER_THRESH])
+ if (!attrs[XFRMA_ENCAP])
+ err = -EINVAL;
+
out:
return err;
}
@@ -521,6 +525,7 @@ static void xfrm_update_ae_params(struct xfrm_state *x, struct nlattr **attrs,
struct nlattr *lt = attrs[XFRMA_LTIME_VAL];
struct nlattr *et = attrs[XFRMA_ETIMER_THRESH];
struct nlattr *rt = attrs[XFRMA_REPLAY_THRESH];
+ struct nlattr *mt = attrs[XFRMA_MTIMER_THRESH];
if (re) {
struct xfrm_replay_state_esn *replay_esn;
@@ -552,6 +557,9 @@ static void xfrm_update_ae_params(struct xfrm_state *x, struct nlattr **attrs,
if (rt)
x->replay_maxdiff = nla_get_u32(rt);
+
+ if (mt)
+ x->mapping_maxage = nla_get_u32(mt);
}
static void xfrm_smark_init(struct nlattr **attrs, struct xfrm_mark *m)
@@ -621,8 +629,13 @@ static struct xfrm_state *xfrm_state_construct(struct net *net,
xfrm_smark_init(attrs, &x->props.smark);
- if (attrs[XFRMA_IF_ID])
+ if (attrs[XFRMA_IF_ID]) {
x->if_id = nla_get_u32(attrs[XFRMA_IF_ID]);
+ if (!x->if_id) {
+ err = -EINVAL;
+ goto error;
+ }
+ }
err = __xfrm_init_state(x, false, attrs[XFRMA_OFFLOAD_DEV]);
if (err)
@@ -964,8 +977,13 @@ static int copy_to_user_state_extra(struct xfrm_state *x,
if (ret)
goto out;
}
- if (x->security)
+ if (x->security) {
ret = copy_sec_ctx(x->security, skb);
+ if (ret)
+ goto out;
+ }
+ if (x->mapping_maxage)
+ ret = nla_put_u32(skb, XFRMA_MTIMER_THRESH, x->mapping_maxage);
out:
return ret;
}
@@ -1353,8 +1371,13 @@ static int xfrm_alloc_userspi(struct sk_buff *skb, struct nlmsghdr *nlh,
mark = xfrm_mark_get(attrs, &m);
- if (attrs[XFRMA_IF_ID])
+ if (attrs[XFRMA_IF_ID]) {
if_id = nla_get_u32(attrs[XFRMA_IF_ID]);
+ if (!if_id) {
+ err = -EINVAL;
+ goto out_noput;
+ }
+ }
if (p->info.seq) {
x = xfrm_find_acq_byseq(net, mark, p->info.seq);
@@ -1667,8 +1690,13 @@ static struct xfrm_policy *xfrm_policy_construct(struct net *net, struct xfrm_us
xfrm_mark_get(attrs, &xp->mark);
- if (attrs[XFRMA_IF_ID])
+ if (attrs[XFRMA_IF_ID]) {
xp->if_id = nla_get_u32(attrs[XFRMA_IF_ID]);
+ if (!xp->if_id) {
+ err = -EINVAL;
+ goto error;
+ }
+ }
return xp;
error:
@@ -2898,7 +2926,7 @@ static inline unsigned int xfrm_sa_len(struct xfrm_state *x)
if (x->props.extra_flags)
l += nla_total_size(sizeof(x->props.extra_flags));
if (x->xso.dev)
- l += nla_total_size(sizeof(x->xso));
+ l += nla_total_size(sizeof(struct xfrm_user_offload));
if (x->props.smark.v | x->props.smark.m) {
l += nla_total_size(sizeof(x->props.smark.v));
l += nla_total_size(sizeof(x->props.smark.m));
@@ -2909,6 +2937,9 @@ static inline unsigned int xfrm_sa_len(struct xfrm_state *x)
/* Must count x->lastused as it may become non-zero behind our back. */
l += nla_total_size_64bit(sizeof(u64));
+ if (x->mapping_maxage)
+ l += nla_total_size(sizeof(x->mapping_maxage));
+
return l;
}
diff --git a/scripts/dtc/dtx_diff b/scripts/dtc/dtx_diff
index d3422ee15e30..f2bbde4bba86 100755
--- a/scripts/dtc/dtx_diff
+++ b/scripts/dtc/dtx_diff
@@ -59,12 +59,8 @@ Otherwise DTx is treated as a dts source file (aka .dts).
or '/include/' to be processed.
If DTx_1 and DTx_2 are in different architectures, then this script
- may not work since \${ARCH} is part of the include path. Two possible
- workarounds:
-
- `basename $0` \\
- <(ARCH=arch_of_dtx_1 `basename $0` DTx_1) \\
- <(ARCH=arch_of_dtx_2 `basename $0` DTx_2)
+ may not work since \${ARCH} is part of the include path. The following
+ workaround can be used:
`basename $0` ARCH=arch_of_dtx_1 DTx_1 >tmp_dtx_1.dts
`basename $0` ARCH=arch_of_dtx_2 DTx_2 >tmp_dtx_2.dts
diff --git a/scripts/sphinx-pre-install b/scripts/sphinx-pre-install
index 828a8615a918..8fcea769d44f 100755
--- a/scripts/sphinx-pre-install
+++ b/scripts/sphinx-pre-install
@@ -76,6 +76,7 @@ my %texlive = (
'ucs.sty' => 'texlive-ucs',
'upquote.sty' => 'texlive-upquote',
'wrapfig.sty' => 'texlive-wrapfig',
+ 'ctexhook.sty' => 'texlive-ctex',
);
#
@@ -370,6 +371,9 @@ sub give_debian_hints()
);
if ($pdf) {
+ check_missing_file(["/usr/share/texlive/texmf-dist/tex/latex/ctex/ctexhook.sty"],
+ "texlive-lang-chinese", 2);
+
check_missing_file(["/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"],
"fonts-dejavu", 2);
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index ff2191ae5352..86159b32921c 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -947,18 +947,22 @@ static int selinux_sb_clone_mnt_opts(const struct super_block *oldsb,
static int selinux_add_opt(int token, const char *s, void **mnt_opts)
{
struct selinux_mnt_opts *opts = *mnt_opts;
+ bool is_alloc_opts = false;
if (token == Opt_seclabel) /* eaten and completely ignored */
return 0;
+ if (!s)
+ return -ENOMEM;
+
if (!opts) {
opts = kzalloc(sizeof(struct selinux_mnt_opts), GFP_KERNEL);
if (!opts)
return -ENOMEM;
*mnt_opts = opts;
+ is_alloc_opts = true;
}
- if (!s)
- return -ENOMEM;
+
switch (token) {
case Opt_context:
if (opts->context || opts->defcontext)
@@ -983,6 +987,10 @@ static int selinux_add_opt(int token, const char *s, void **mnt_opts)
}
return 0;
Einval:
+ if (is_alloc_opts) {
+ kfree(opts);
+ *mnt_opts = NULL;
+ }
pr_warn(SEL_MOUNT_FAIL_MSG);
return -EINVAL;
}
diff --git a/sound/core/jack.c b/sound/core/jack.c
index d6502dff247a..dc2e06ae2414 100644
--- a/sound/core/jack.c
+++ b/sound/core/jack.c
@@ -54,10 +54,13 @@ static int snd_jack_dev_free(struct snd_device *device)
struct snd_card *card = device->card;
struct snd_jack_kctl *jack_kctl, *tmp_jack_kctl;
+ down_write(&card->controls_rwsem);
list_for_each_entry_safe(jack_kctl, tmp_jack_kctl, &jack->kctl_list, list) {
list_del_init(&jack_kctl->list);
snd_ctl_remove(card, jack_kctl->kctl);
}
+ up_write(&card->controls_rwsem);
+
if (jack->private_free)
jack->private_free(jack);
diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
index 77727a69c3c4..d79febeebf0c 100644
--- a/sound/core/oss/pcm_oss.c
+++ b/sound/core/oss/pcm_oss.c
@@ -2056,7 +2056,7 @@ static int snd_pcm_oss_set_trigger(struct snd_pcm_oss_file *pcm_oss_file, int tr
int err, cmd;
#ifdef OSS_DEBUG
- pcm_dbg(substream->pcm, "pcm_oss: trigger = 0x%x\n", trigger);
+ pr_debug("pcm_oss: trigger = 0x%x\n", trigger);
#endif
psubstream = pcm_oss_file->streams[SNDRV_PCM_STREAM_PLAYBACK];
diff --git a/sound/core/pcm.c b/sound/core/pcm.c
index 41cbdac5b1cf..a8ae5928decd 100644
--- a/sound/core/pcm.c
+++ b/sound/core/pcm.c
@@ -810,7 +810,11 @@ EXPORT_SYMBOL(snd_pcm_new_internal);
static void free_chmap(struct snd_pcm_str *pstr)
{
if (pstr->chmap_kctl) {
- snd_ctl_remove(pstr->pcm->card, pstr->chmap_kctl);
+ struct snd_card *card = pstr->pcm->card;
+
+ down_write(&card->controls_rwsem);
+ snd_ctl_remove(card, pstr->chmap_kctl);
+ up_write(&card->controls_rwsem);
pstr->chmap_kctl = NULL;
}
}
diff --git a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c
index 71a6ea62c3be..4ff0b927230c 100644
--- a/sound/core/seq/seq_queue.c
+++ b/sound/core/seq/seq_queue.c
@@ -234,12 +234,15 @@ struct snd_seq_queue *snd_seq_queue_find_name(char *name)
/* -------------------------------------------------------- */
+#define MAX_CELL_PROCESSES_IN_QUEUE 1000
+
void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
{
unsigned long flags;
struct snd_seq_event_cell *cell;
snd_seq_tick_time_t cur_tick;
snd_seq_real_time_t cur_time;
+ int processed = 0;
if (q == NULL)
return;
@@ -262,6 +265,8 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
/* Process time queue... */
@@ -271,14 +276,19 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
+ out:
/* free lock */
spin_lock_irqsave(&q->check_lock, flags);
if (q->check_again) {
q->check_again = 0;
- spin_unlock_irqrestore(&q->check_lock, flags);
- goto __again;
+ if (processed < MAX_CELL_PROCESSES_IN_QUEUE) {
+ spin_unlock_irqrestore(&q->check_lock, flags);
+ goto __again;
+ }
}
q->check_blocked = 0;
spin_unlock_irqrestore(&q->check_lock, flags);
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 6dece719be66..39281106477e 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -1727,8 +1727,11 @@ void snd_hda_ctls_clear(struct hda_codec *codec)
{
int i;
struct hda_nid_item *items = codec->mixers.list;
+
+ down_write(&codec->card->controls_rwsem);
for (i = 0; i < codec->mixers.used; i++)
snd_ctl_remove(codec->card, items[i].kctl);
+ up_write(&codec->card->controls_rwsem);
snd_array_free(&codec->mixers);
snd_array_free(&codec->nids);
}
diff --git a/sound/soc/codecs/rt5663.c b/sound/soc/codecs/rt5663.c
index 619fb9a031e3..db8a41aaa385 100644
--- a/sound/soc/codecs/rt5663.c
+++ b/sound/soc/codecs/rt5663.c
@@ -3461,6 +3461,7 @@ static void rt5663_calibrate(struct rt5663_priv *rt5663)
static int rt5663_parse_dp(struct rt5663_priv *rt5663, struct device *dev)
{
int table_size;
+ int ret;
device_property_read_u32(dev, "realtek,dc_offset_l_manual",
&rt5663->pdata.dc_offset_l_manual);
@@ -3477,9 +3478,11 @@ static int rt5663_parse_dp(struct rt5663_priv *rt5663, struct device *dev)
table_size = sizeof(struct impedance_mapping_table) *
rt5663->pdata.impedance_sensing_num;
rt5663->imp_table = devm_kzalloc(dev, table_size, GFP_KERNEL);
- device_property_read_u32_array(dev,
+ ret = device_property_read_u32_array(dev,
"realtek,impedance_sensing_table",
(u32 *)rt5663->imp_table, table_size);
+ if (ret)
+ return ret;
}
return 0;
@@ -3504,8 +3507,11 @@ static int rt5663_i2c_probe(struct i2c_client *i2c,
if (pdata)
rt5663->pdata = *pdata;
- else
- rt5663_parse_dp(rt5663, &i2c->dev);
+ else {
+ ret = rt5663_parse_dp(rt5663, &i2c->dev);
+ if (ret)
+ return ret;
+ }
for (i = 0; i < ARRAY_SIZE(rt5663->supplies); i++)
rt5663->supplies[i].supply = rt5663_supply_names[i];
diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c
index 02c81d2e34ad..5e3c71f025f4 100644
--- a/sound/soc/fsl/fsl_asrc.c
+++ b/sound/soc/fsl/fsl_asrc.c
@@ -19,6 +19,7 @@
#include "fsl_asrc.h"
#define IDEAL_RATIO_DECIMAL_DEPTH 26
+#define DIVIDER_NUM 64
#define pair_err(fmt, ...) \
dev_err(&asrc->pdev->dev, "Pair %c: " fmt, 'A' + index, ##__VA_ARGS__)
@@ -101,6 +102,55 @@ static unsigned char clk_map_imx8qxp[2][ASRC_CLK_MAP_LEN] = {
},
};
+/*
+ * According to RM, the divider range is 1 ~ 8,
+ * prescaler is power of 2 from 1 ~ 128.
+ */
+static int asrc_clk_divider[DIVIDER_NUM] = {
+ 1, 2, 4, 8, 16, 32, 64, 128, /* divider = 1 */
+ 2, 4, 8, 16, 32, 64, 128, 256, /* divider = 2 */
+ 3, 6, 12, 24, 48, 96, 192, 384, /* divider = 3 */
+ 4, 8, 16, 32, 64, 128, 256, 512, /* divider = 4 */
+ 5, 10, 20, 40, 80, 160, 320, 640, /* divider = 5 */
+ 6, 12, 24, 48, 96, 192, 384, 768, /* divider = 6 */
+ 7, 14, 28, 56, 112, 224, 448, 896, /* divider = 7 */
+ 8, 16, 32, 64, 128, 256, 512, 1024, /* divider = 8 */
+};
+
+/*
+ * Check if the divider is available for internal ratio mode
+ */
+static bool fsl_asrc_divider_avail(int clk_rate, int rate, int *div)
+{
+ u32 rem, i;
+ u64 n;
+
+ if (div)
+ *div = 0;
+
+ if (clk_rate == 0 || rate == 0)
+ return false;
+
+ n = clk_rate;
+ rem = do_div(n, rate);
+
+ if (div)
+ *div = n;
+
+ if (rem != 0)
+ return false;
+
+ for (i = 0; i < DIVIDER_NUM; i++) {
+ if (n == asrc_clk_divider[i])
+ break;
+ }
+
+ if (i == DIVIDER_NUM)
+ return false;
+
+ return true;
+}
+
/**
* fsl_asrc_sel_proc - Select the pre-processing and post-processing options
* @inrate: input sample rate
@@ -330,12 +380,12 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
enum asrc_word_width input_word_width;
enum asrc_word_width output_word_width;
u32 inrate, outrate, indiv, outdiv;
- u32 clk_index[2], div[2], rem[2];
+ u32 clk_index[2], div[2];
u64 clk_rate;
int in, out, channels;
int pre_proc, post_proc;
struct clk *clk;
- bool ideal;
+ bool ideal, div_avail;
if (!config) {
pair_err("invalid pair config\n");
@@ -415,8 +465,7 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
clk = asrc_priv->asrck_clk[clk_index[ideal ? OUT : IN]];
clk_rate = clk_get_rate(clk);
- rem[IN] = do_div(clk_rate, inrate);
- div[IN] = (u32)clk_rate;
+ div_avail = fsl_asrc_divider_avail(clk_rate, inrate, &div[IN]);
/*
* The divider range is [1, 1024], defined by the hardware. For non-
@@ -425,7 +474,7 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
* only result in different converting speeds. So remainder does not
* matter, as long as we keep the divider within its valid range.
*/
- if (div[IN] == 0 || (!ideal && (div[IN] > 1024 || rem[IN] != 0))) {
+ if (div[IN] == 0 || (!ideal && !div_avail)) {
pair_err("failed to support input sample rate %dHz by asrck_%x\n",
inrate, clk_index[ideal ? OUT : IN]);
return -EINVAL;
@@ -436,13 +485,12 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
clk = asrc_priv->asrck_clk[clk_index[OUT]];
clk_rate = clk_get_rate(clk);
if (ideal && use_ideal_rate)
- rem[OUT] = do_div(clk_rate, IDEAL_RATIO_RATE);
+ div_avail = fsl_asrc_divider_avail(clk_rate, IDEAL_RATIO_RATE, &div[OUT]);
else
- rem[OUT] = do_div(clk_rate, outrate);
- div[OUT] = clk_rate;
+ div_avail = fsl_asrc_divider_avail(clk_rate, outrate, &div[OUT]);
/* Output divider has the same limitation as the input one */
- if (div[OUT] == 0 || (!ideal && (div[OUT] > 1024 || rem[OUT] != 0))) {
+ if (div[OUT] == 0 || (!ideal && !div_avail)) {
pair_err("failed to support output sample rate %dHz by asrck_%x\n",
outrate, clk_index[OUT]);
return -EINVAL;
@@ -621,8 +669,7 @@ static void fsl_asrc_select_clk(struct fsl_asrc_priv *asrc_priv,
clk_index = asrc_priv->clk_map[j][i];
clk_rate = clk_get_rate(asrc_priv->asrck_clk[clk_index]);
/* Only match a perfect clock source with no remainder */
- if (clk_rate != 0 && (clk_rate / rate[j]) <= 1024 &&
- (clk_rate % rate[j]) == 0)
+ if (fsl_asrc_divider_avail(clk_rate, rate[j], NULL))
break;
}
diff --git a/sound/soc/fsl/fsl_mqs.c b/sound/soc/fsl/fsl_mqs.c
index 69aeb0e71844..0d4efbed41da 100644
--- a/sound/soc/fsl/fsl_mqs.c
+++ b/sound/soc/fsl/fsl_mqs.c
@@ -337,4 +337,4 @@ module_platform_driver(fsl_mqs_driver);
MODULE_AUTHOR("Shengjiu Wang <Shengjiu.Wang@nxp.com>");
MODULE_DESCRIPTION("MQS codec driver");
MODULE_LICENSE("GPL v2");
-MODULE_ALIAS("platform: fsl-mqs");
+MODULE_ALIAS("platform:fsl-mqs");
diff --git a/sound/soc/intel/catpt/dsp.c b/sound/soc/intel/catpt/dsp.c
index 9e807b941732..38a92bbc1ed5 100644
--- a/sound/soc/intel/catpt/dsp.c
+++ b/sound/soc/intel/catpt/dsp.c
@@ -65,6 +65,7 @@ static int catpt_dma_memcpy(struct catpt_dev *cdev, struct dma_chan *chan,
{
struct dma_async_tx_descriptor *desc;
enum dma_status status;
+ int ret;
desc = dmaengine_prep_dma_memcpy(chan, dst_addr, src_addr, size,
DMA_CTRL_ACK);
@@ -77,13 +78,22 @@ static int catpt_dma_memcpy(struct catpt_dev *cdev, struct dma_chan *chan,
catpt_updatel_shim(cdev, HMDC,
CATPT_HMDC_HDDA(CATPT_DMA_DEVID, chan->chan_id),
CATPT_HMDC_HDDA(CATPT_DMA_DEVID, chan->chan_id));
- dmaengine_submit(desc);
+
+ ret = dma_submit_error(dmaengine_submit(desc));
+ if (ret) {
+ dev_err(cdev->dev, "submit tx failed: %d\n", ret);
+ goto clear_hdda;
+ }
+
status = dma_wait_for_async_tx(desc);
+ ret = (status == DMA_COMPLETE) ? 0 : -EPROTO;
+
+clear_hdda:
/* regardless of status, disable access to HOST memory in demand mode */
catpt_updatel_shim(cdev, HMDC,
CATPT_HMDC_HDDA(CATPT_DMA_DEVID, chan->chan_id), 0);
- return (status == DMA_COMPLETE) ? 0 : -EPROTO;
+ return ret;
}
int catpt_dma_memcpy_todsp(struct catpt_dev *cdev, struct dma_chan *chan,
diff --git a/sound/soc/mediatek/mt8173/mt8173-max98090.c b/sound/soc/mediatek/mt8173/mt8173-max98090.c
index fc94314bfc02..3bdd4931316c 100644
--- a/sound/soc/mediatek/mt8173/mt8173-max98090.c
+++ b/sound/soc/mediatek/mt8173/mt8173-max98090.c
@@ -180,6 +180,9 @@ static int mt8173_max98090_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(codec_node);
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
index 0f28dc2217c0..390da5bf727e 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
@@ -218,6 +218,8 @@ static int mt8173_rt5650_rt5514_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
index 077c6ee06780..c8e4e85e1057 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
@@ -285,6 +285,8 @@ static int mt8173_rt5650_rt5676_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650.c b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
index c28ebf891cb0..e168d31f4445 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
@@ -323,6 +323,8 @@ static int mt8173_rt5650_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
index 20d31b69a5c0..9cc0f26b08fb 100644
--- a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
+++ b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
@@ -787,7 +787,11 @@ static int mt8183_da7219_max98357_dev_probe(struct platform_device *pdev)
return ret;
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
diff --git a/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c b/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
index 79ba2f2d8452..14ce8b93597f 100644
--- a/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
+++ b/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
@@ -720,7 +720,12 @@ mt8183_mt6358_ts3a227_max98357_dev_probe(struct platform_device *pdev)
__func__, ret);
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(ec_codec);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
diff --git a/sound/soc/samsung/idma.c b/sound/soc/samsung/idma.c
index 66bcc2f97544..c3f1b054e238 100644
--- a/sound/soc/samsung/idma.c
+++ b/sound/soc/samsung/idma.c
@@ -360,6 +360,8 @@ static int preallocate_idma_buffer(struct snd_pcm *pcm, int stream)
buf->addr = idma.lp_tx_addr;
buf->bytes = idma_hardware.buffer_bytes_max;
buf->area = (unsigned char * __force)ioremap(buf->addr, buf->bytes);
+ if (!buf->area)
+ return -ENOMEM;
return 0;
}
diff --git a/sound/soc/uniphier/Kconfig b/sound/soc/uniphier/Kconfig
index aa3592ee1358..ddfa6424c656 100644
--- a/sound/soc/uniphier/Kconfig
+++ b/sound/soc/uniphier/Kconfig
@@ -23,7 +23,6 @@ config SND_SOC_UNIPHIER_LD11
tristate "UniPhier LD11/LD20 Device Driver"
depends on SND_SOC_UNIPHIER
select SND_SOC_UNIPHIER_AIO
- select SND_SOC_UNIPHIER_AIO_DMA
help
This adds ASoC driver for Socionext UniPhier LD11/LD20
input and output that can be used with other codecs.
@@ -34,7 +33,6 @@ config SND_SOC_UNIPHIER_PXS2
tristate "UniPhier PXs2 Device Driver"
depends on SND_SOC_UNIPHIER
select SND_SOC_UNIPHIER_AIO
- select SND_SOC_UNIPHIER_AIO_DMA
help
This adds ASoC driver for Socionext UniPhier PXs2
input and output that can be used with other codecs.
diff --git a/sound/usb/format.c b/sound/usb/format.c
index 4693384db069..e8a63ea2189d 100644
--- a/sound/usb/format.c
+++ b/sound/usb/format.c
@@ -365,7 +365,7 @@ static int parse_uac2_sample_rate_range(struct snd_usb_audio *chip,
for (rate = min; rate <= max; rate += res) {
/* Filter out invalid rates on Presonus Studio 1810c */
- if (chip->usb_id == USB_ID(0x0194f, 0x010c) &&
+ if (chip->usb_id == USB_ID(0x194f, 0x010c) &&
!s1810c_valid_sample_rate(fp, rate))
goto skip_rate;
diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c
index 8297117f4766..86fdd669f3fd 100644
--- a/sound/usb/mixer_quirks.c
+++ b/sound/usb/mixer_quirks.c
@@ -3033,7 +3033,7 @@ int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer)
err = snd_rme_controls_create(mixer);
break;
- case USB_ID(0x0194f, 0x010c): /* Presonus Studio 1810c */
+ case USB_ID(0x194f, 0x010c): /* Presonus Studio 1810c */
err = snd_sc1810_init_mixer(mixer);
break;
case USB_ID(0x2a39, 0x3fb0): /* RME Babyface Pro FS */
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 75d4d317b34b..6333a2ecb848 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1310,7 +1310,7 @@ int snd_usb_apply_interface_quirk(struct snd_usb_audio *chip,
if (chip->usb_id == USB_ID(0x0763, 0x2012))
return fasttrackpro_skip_setting_quirk(chip, iface, altno);
/* presonus studio 1810c: skip altsets incompatible with device_setup */
- if (chip->usb_id == USB_ID(0x0194f, 0x010c))
+ if (chip->usb_id == USB_ID(0x194f, 0x010c))
return s1810c_skip_setting_quirk(chip, iface, altno);
diff --git a/tools/bpf/bpftool/Documentation/Makefile b/tools/bpf/bpftool/Documentation/Makefile
index f33cb02de95c..3601b1d1974c 100644
--- a/tools/bpf/bpftool/Documentation/Makefile
+++ b/tools/bpf/bpftool/Documentation/Makefile
@@ -1,6 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-only
include ../../../scripts/Makefile.include
-include ../../../scripts/utilities.mak
INSTALL ?= install
RM ?= rm -f
diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
index f60e6ad3a1df..1896ef69b449 100644
--- a/tools/bpf/bpftool/Makefile
+++ b/tools/bpf/bpftool/Makefile
@@ -1,6 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-only
include ../../scripts/Makefile.include
-include ../../scripts/utilities.mak
ifeq ($(srctree),)
srctree := $(patsubst %/,%,$(dir $(CURDIR)))
diff --git a/tools/bpf/bpftool/main.c b/tools/bpf/bpftool/main.c
index c58a135dc355..1854d6b97860 100644
--- a/tools/bpf/bpftool/main.c
+++ b/tools/bpf/bpftool/main.c
@@ -396,6 +396,8 @@ int main(int argc, char **argv)
};
int opt, ret;
+ setlinebuf(stdout);
+
last_do_help = do_help;
pretty_output = false;
json_output = false;
diff --git a/tools/include/nolibc/nolibc.h b/tools/include/nolibc/nolibc.h
index 2551e9b71167..b8cecb66d28b 100644
--- a/tools/include/nolibc/nolibc.h
+++ b/tools/include/nolibc/nolibc.h
@@ -422,16 +422,22 @@ struct stat {
})
/* startup code */
+/*
+ * x86-64 System V ABI mandates:
+ * 1) %rsp must be 16-byte aligned right before the function call.
+ * 2) The deepest stack frame should be zero (the %rbp).
+ *
+ */
asm(".section .text\n"
".global _start\n"
"_start:\n"
"pop %rdi\n" // argc (first arg, %rdi)
"mov %rsp, %rsi\n" // argv[] (second arg, %rsi)
"lea 8(%rsi,%rdi,8),%rdx\n" // then a NULL then envp (third arg, %rdx)
- "and $-16, %rsp\n" // x86 ABI : esp must be 16-byte aligned when
- "sub $8, %rsp\n" // entering the callee
+ "xor %ebp, %ebp\n" // zero the stack frame
+ "and $-16, %rsp\n" // x86 ABI : esp must be 16-byte aligned before call
"call main\n" // main() returns the status code, we'll exit with it.
- "movzb %al, %rdi\n" // retrieve exit code from 8 lower bits
+ "mov %eax, %edi\n" // retrieve exit code (32 bit)
"mov $60, %rax\n" // NR_exit == 60
"syscall\n" // really exit
"hlt\n" // ensure it does not return
@@ -600,20 +606,28 @@ struct sys_stat_struct {
})
/* startup code */
+/*
+ * i386 System V ABI mandates:
+ * 1) last pushed argument must be 16-byte aligned.
+ * 2) The deepest stack frame should be set to zero
+ *
+ */
asm(".section .text\n"
".global _start\n"
"_start:\n"
"pop %eax\n" // argc (first arg, %eax)
"mov %esp, %ebx\n" // argv[] (second arg, %ebx)
"lea 4(%ebx,%eax,4),%ecx\n" // then a NULL then envp (third arg, %ecx)
- "and $-16, %esp\n" // x86 ABI : esp must be 16-byte aligned when
+ "xor %ebp, %ebp\n" // zero the stack frame
+ "and $-16, %esp\n" // x86 ABI : esp must be 16-byte aligned before
+ "sub $4, %esp\n" // the call instruction (args are aligned)
"push %ecx\n" // push all registers on the stack so that we
"push %ebx\n" // support both regparm and plain stack modes
"push %eax\n"
"call main\n" // main() returns the status code in %eax
- "movzbl %al, %ebx\n" // retrieve exit code from lower 8 bits
- "movl $1, %eax\n" // NR_exit == 1
- "int $0x80\n" // exit now
+ "mov %eax, %ebx\n" // retrieve exit code (32-bit int)
+ "movl $1, %eax\n" // NR_exit == 1
+ "int $0x80\n" // exit now
"hlt\n" // ensure it does not
"");
@@ -797,7 +811,6 @@ asm(".section .text\n"
"and %r3, %r1, $-8\n" // AAPCS : sp must be 8-byte aligned in the
"mov %sp, %r3\n" // callee, an bl doesn't push (lr=pc)
"bl main\n" // main() returns the status code, we'll exit with it.
- "and %r0, %r0, $0xff\n" // limit exit code to 8 bits
"movs r7, $1\n" // NR_exit == 1
"svc $0x00\n"
"");
@@ -994,7 +1007,6 @@ asm(".section .text\n"
"add x2, x2, x1\n" // + argv
"and sp, x1, -16\n" // sp must be 16-byte aligned in the callee
"bl main\n" // main() returns the status code, we'll exit with it.
- "and x0, x0, 0xff\n" // limit exit code to 8 bits
"mov x8, 93\n" // NR_exit == 93
"svc #0\n"
"");
@@ -1199,7 +1211,7 @@ asm(".section .text\n"
"addiu $sp,$sp,-16\n" // the callee expects to save a0..a3 there!
"jal main\n" // main() returns the status code, we'll exit with it.
"nop\n" // delayed slot
- "and $a0, $v0, 0xff\n" // limit exit code to 8 bits
+ "move $a0, $v0\n" // retrieve 32-bit exit code from v0
"li $v0, 4001\n" // NR_exit == 4001
"syscall\n"
".end __start\n"
@@ -1397,7 +1409,6 @@ asm(".section .text\n"
"add a2,a2,a1\n" // + argv
"andi sp,a1,-16\n" // sp must be 16-byte aligned
"call main\n" // main() returns the status code, we'll exit with it.
- "andi a0, a0, 0xff\n" // limit exit code to 8 bits
"li a7, 93\n" // NR_exit == 93
"ecall\n"
"");
diff --git a/tools/perf/util/debug.c b/tools/perf/util/debug.c
index 5cda5565777a..0af163abaa62 100644
--- a/tools/perf/util/debug.c
+++ b/tools/perf/util/debug.c
@@ -145,7 +145,7 @@ static int trace_event_printer(enum binary_printer_ops op,
break;
case BINARY_PRINT_CHAR_DATA:
printed += color_fprintf(fp, color, "%c",
- isprint(ch) ? ch : '.');
+ isprint(ch) && isascii(ch) ? ch : '.');
break;
case BINARY_PRINT_CHAR_PAD:
printed += color_fprintf(fp, color, " ");
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 1cad6051d8b0..1a1cbd16d76d 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -1014,6 +1014,17 @@ struct evsel_config_term *__evsel__get_config_term(struct evsel *evsel, enum evs
return found_term;
}
+static void evsel__set_default_freq_period(struct record_opts *opts,
+ struct perf_event_attr *attr)
+{
+ if (opts->freq) {
+ attr->freq = 1;
+ attr->sample_freq = opts->freq;
+ } else {
+ attr->sample_period = opts->default_interval;
+ }
+}
+
/*
* The enable_on_exec/disabled value strategy:
*
@@ -1080,14 +1091,12 @@ void evsel__config(struct evsel *evsel, struct record_opts *opts,
* We default some events to have a default interval. But keep
* it a weak assumption overridable by the user.
*/
- if (!attr->sample_period) {
- if (opts->freq) {
- attr->freq = 1;
- attr->sample_freq = opts->freq;
- } else {
- attr->sample_period = opts->default_interval;
- }
- }
+ if ((evsel->is_libpfm_event && !attr->sample_period) ||
+ (!evsel->is_libpfm_event && (!attr->sample_period ||
+ opts->user_freq != UINT_MAX ||
+ opts->user_interval != ULLONG_MAX)))
+ evsel__set_default_freq_period(opts, attr);
+
/*
* If attr->freq was set (here or earlier), ask for period
* to be sampled.
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 07db6cfad65b..d103084fcd56 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -3035,6 +3035,9 @@ static int find_probe_trace_events_from_map(struct perf_probe_event *pev,
for (j = 0; j < num_matched_functions; j++) {
sym = syms[j];
+ if (sym->type != STT_FUNC)
+ continue;
+
/* There can be duplicated symbols in the map */
for (i = 0; i < j; i++)
if (sym->start == syms[i]->start) {
diff --git a/tools/testing/selftests/bpf/prog_tests/skb_ctx.c b/tools/testing/selftests/bpf/prog_tests/skb_ctx.c
index fafeddaad6a9..23915be6172d 100644
--- a/tools/testing/selftests/bpf/prog_tests/skb_ctx.c
+++ b/tools/testing/selftests/bpf/prog_tests/skb_ctx.c
@@ -105,4 +105,6 @@ void test_skb_ctx(void)
"ctx_out_mark",
"skb->mark == %u, expected %d\n",
skb.mark, 10);
+
+ bpf_object__close(obj);
}
diff --git a/tools/testing/selftests/clone3/clone3.c b/tools/testing/selftests/clone3/clone3.c
index 42be3b925830..076cf4325f78 100644
--- a/tools/testing/selftests/clone3/clone3.c
+++ b/tools/testing/selftests/clone3/clone3.c
@@ -52,6 +52,12 @@ static int call_clone3(uint64_t flags, size_t size, enum test_mode test_mode)
size = sizeof(struct __clone_args);
switch (test_mode) {
+ case CLONE3_ARGS_NO_TEST:
+ /*
+ * Uses default 'flags' and 'SIGCHLD'
+ * assignment.
+ */
+ break;
case CLONE3_ARGS_ALL_0:
args.flags = 0;
args.exit_signal = 0;
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc b/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc
index 98166fa3eb91..34fb89b0c61f 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/profile.tc
@@ -1,6 +1,6 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
-# description: Kprobe dynamic event - adding and removing
+# description: Kprobe profile
# requires: kprobe_events
! grep -q 'myevent' kprobe_profile
diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h
index edce85420d19..5ecb9718e161 100644
--- a/tools/testing/selftests/kselftest_harness.h
+++ b/tools/testing/selftests/kselftest_harness.h
@@ -965,7 +965,7 @@ void __run_test(struct __fixture_metadata *f,
t->passed = 1;
t->skip = 0;
t->trigger = 0;
- t->step = 0;
+ t->step = 1;
t->no_print = 0;
memset(t->results->reason, 0, sizeof(t->results->reason));
diff --git a/tools/testing/selftests/powerpc/security/spectre_v2.c b/tools/testing/selftests/powerpc/security/spectre_v2.c
index adc2b7294e5f..83647b8277e7 100644
--- a/tools/testing/selftests/powerpc/security/spectre_v2.c
+++ b/tools/testing/selftests/powerpc/security/spectre_v2.c
@@ -193,7 +193,7 @@ int spectre_v2_test(void)
* We are not vulnerable and reporting otherwise, so
* missing such a mismatch is safe.
*/
- if (state == VULNERABLE)
+ if (miss_percent > 95)
return 4;
return 1;
diff --git a/tools/testing/selftests/vm/hmm-tests.c b/tools/testing/selftests/vm/hmm-tests.c
index c9404ef9698e..426dccc08f90 100644
--- a/tools/testing/selftests/vm/hmm-tests.c
+++ b/tools/testing/selftests/vm/hmm-tests.c
@@ -1242,6 +1242,48 @@ TEST_F(hmm, anon_teardown)
}
}
+/*
+ * Test memory snapshot without faulting in pages accessed by the device.
+ */
+TEST_F(hmm, mixedmap)
+{
+ struct hmm_buffer *buffer;
+ unsigned long npages;
+ unsigned long size;
+ unsigned char *m;
+ int ret;
+
+ npages = 1;
+ size = npages << self->page_shift;
+
+ buffer = malloc(sizeof(*buffer));
+ ASSERT_NE(buffer, NULL);
+
+ buffer->fd = -1;
+ buffer->size = size;
+ buffer->mirror = malloc(npages);
+ ASSERT_NE(buffer->mirror, NULL);
+
+
+ /* Reserve a range of addresses. */
+ buffer->ptr = mmap(NULL, size,
+ PROT_READ | PROT_WRITE,
+ MAP_PRIVATE,
+ self->fd, 0);
+ ASSERT_NE(buffer->ptr, MAP_FAILED);
+
+ /* Simulate a device snapshotting CPU pagetables. */
+ ret = hmm_dmirror_cmd(self->fd, HMM_DMIRROR_SNAPSHOT, buffer, npages);
+ ASSERT_EQ(ret, 0);
+ ASSERT_EQ(buffer->cpages, npages);
+
+ /* Check what the device saw. */
+ m = buffer->mirror;
+ ASSERT_EQ(m[0], HMM_DMIRROR_PROT_READ);
+
+ hmm_buffer_free(buffer);
+}
+
/*
* Test memory snapshot without faulting in pages accessed by the device.
*/
^ permalink raw reply related [relevance 1%]
* Re: [PATCH 5.10 000/560] 5.10.94-rc2 review
[not found] ` <CAJq+SaC78nnBi5p6LYMWSs=-FSGMX5uom4MnE9i4C7F0FWuTcQ@mail.gmail.com>
@ 2022-01-26 1:18 0% ` Allen
0 siblings, 0 replies; 200+ results
From: Allen @ 2022-01-26 1:18 UTC (permalink / raw)
To: Linux Kernel Mailing List
Cc: shuah, patches, pavel, Florian Fainelli, stable,
Greg Kroah-Hartman, Andrew Morton, Linus Torvalds, linux,
lkft-triage, jonathanh, sudipm.mukherjee
>
> This is the start of the stable review cycle for the 5.10.94 release.
> There are 560 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Thu, 27 Jan 2022 15:52:30 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.94-rc2.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> linux-5.10.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
>
Compiled and boot tested on x86 bare-metal and VM.
Tested-by: Allen Pais <apais@linux.microsoft.com>
Thanks.
> -------------
> Pseudo-Shortlog of commits:
>
> Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Linux 5.10.94-rc2
>
> Mauro Carvalho Chehab <mchehab@kernel.org>
> scripts: sphinx-pre-install: Fix ctex support on Debian
>
> Mauro Carvalho Chehab <mchehab@kernel.org>
> scripts: sphinx-pre-install: add required ctex dependency
>
> Fabio Estevam <festevam@denx.de>
> ath10k: Fix the MTU size on QCA9377 SDIO
>
> Doyle, Patrick <pdoyle@irobot.com>
> mtd: nand: bbt: Fix corner case in bad block table handling
>
> Andrey Konovalov <andreyknvl@google.com>
> lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
>
> Alistair Popple <apopple@nvidia.com>
> mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
>
> Miaoqian Lin <linmq006@gmail.com>
> lib82596: Fix IRQ check in sni_82596_probe
>
> Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
> scripts/dtc: dtx_diff: remove broken example from help text
>
> Sam Protsenko <semen.protsenko@linaro.org>
> dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
>
> Alexander Stein <alexander.stein@mailbox.org>
> dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
>
> Alexander Stein <alexander.stein@mailbox.org>
> dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
>
> Tom Rix <trix@redhat.com>
> net: mscc: ocelot: fix using match before it is set
>
> Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
> net: sfp: fix high power modules without diagnostic monitoring
>
> Tom Rix <trix@redhat.com>
> net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
>
> Sergey Shtylyov <s.shtylyov@omp.ru>
> bcmgenet: add WOL IRQ check
>
> Kevin Bracey <kevin@bracey.fi>
> net_sched: restore "mpu xxx" handling
>
> Jie Wang <wangjie125@huawei.com>
> net: bonding: fix bond_xmit_broadcast return value error bug
>
> David Heidelberg <david@ixit.cz>
> arm64: dts: qcom: msm8996: drop not documented adreno properties
>
> Leon Romanovsky <leon@kernel.org>
> devlink: Remove misleading internal_flags from health reporter dump
>
> Zechuan Chen <chenzechuan1@huawei.com>
> perf probe: Fix ppc64 'perf probe add events failed' case
>
> Tudor Ambarus <tudor.ambarus@microchip.com>
> dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
>
> Tudor Ambarus <tudor.ambarus@microchip.com>
> dmaengine: at_xdmac: Fix lld view setting
>
> Tudor Ambarus <tudor.ambarus@microchip.com>
> dmaengine: at_xdmac: Fix concurrency over xfers_list
>
> Tudor Ambarus <tudor.ambarus@microchip.com>
> dmaengine: at_xdmac: Print debug message after realeasing the lock
>
> Tudor Ambarus <tudor.ambarus@microchip.com>
> dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
>
> Tudor Ambarus <tudor.ambarus@microchip.com>
> dmaengine: at_xdmac: Don't start transactions at tx_submit level
>
> Adrian Hunter <adrian.hunter@intel.com>
> perf script: Fix hex dump character output
>
> Guillaume Nault <gnault@redhat.com>
> libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
>
> Guillaume Nault <gnault@redhat.com>
> gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
>
> Guillaume Nault <gnault@redhat.com>
> xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
>
> Eric Dumazet <edumazet@google.com>
> netns: add schedule point in ops_exit_list()
>
> Eric Dumazet <edumazet@google.com>
> inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
>
> Eric W. Biederman <ebiederm@xmission.com>
> taskstats: Cleanup the use of task->exit_code
>
> Michael S. Tsirkin <mst@redhat.com>
> virtio_ring: mark ring unused on error
>
> Eli Cohen <elic@nvidia.com>
> vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
>
> Laurence de Bruxelles <lfdebrux@gmail.com>
> rtc: pxa: fix null pointer dereference
>
> Dmitry Torokhov <dmitry.torokhov@gmail.com>
> HID: vivaldi: fix handling devices not using numbered reports
>
> Robert Hancock <robert.hancock@calian.com>
> net: axienet: increase default TX ring size to 128
>
> Robert Hancock <robert.hancock@calian.com>
> net: axienet: fix for TX busy handling
>
> Robert Hancock <robert.hancock@calian.com>
> net: axienet: fix number of TX ring slots for available check
>
> Robert Hancock <robert.hancock@calian.com>
> net: axienet: Fix TX ring slot available check
>
> Robert Hancock <robert.hancock@calian.com>
> net: axienet: limit minimum TX ring size
>
> Robert Hancock <robert.hancock@calian.com>
> net: axienet: add missing memory barriers
>
> Robert Hancock <robert.hancock@calian.com>
> net: axienet: reset core on initialization prior to MDIO access
>
> Robert Hancock <robert.hancock@calian.com>
> net: axienet: Wait for PhyRstCmplt after core reset
>
> Robert Hancock <robert.hancock@calian.com>
> net: axienet: increase reset timeout
>
> Wen Gu <guwen@linux.alibaba.com>
> net/smc: Fix hung_task when removing SMC-R devices
>
> Robert Hancock <robert.hancock@calian.com>
> clk: si5341: Fix clock HW provider cleanup
>
> Stephen Boyd <sboyd@kernel.org>
> clk: Emit a stern warning with writable debugfs enabled
>
> Eric Dumazet <edumazet@google.com>
> af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
>
> Chao Yu <chao@kernel.org>
> f2fs: fix to reserve space for IO align feature
>
> Hyeong-Jun Kim <hj514.kim@samsung.com>
> f2fs: compress: fix potential deadlock of compress file
>
> Miaoqian Lin <linmq006@gmail.com>
> parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
>
> Tobias Waldekranz <tobias@waldekranz.com>
> net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
>
> Tobias Waldekranz <tobias@waldekranz.com>
> net/fsl: xgmac_mdio: Add workaround for erratum A-009885
>
> Eric Dumazet <edumazet@google.com>
> ipv4: avoid quadratic behavior in netns dismantle
>
> Eric Dumazet <edumazet@google.com>
> ipv4: update fib_info_cnt under spinlock protection
>
> German Gomez <german.gomez@arm.com>
> perf evsel: Override attr->sample_period for non-libpfm4 events
>
> Toke Høiland-Jørgensen <toke@redhat.com>
> xdp: check prog type before updating BPF link
>
> Quentin Monnet <quentin@isovalent.com>
> bpftool: Remove inclusion of utilities.mak from Makefiles
>
> Ye Bin <yebin10@huawei.com>
> block: Fix fsync always failed if once failed
>
> Tobias Waldekranz <tobias@waldekranz.com>
> powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
>
> Anders Roxell <anders.roxell@linaro.org>
> powerpc/cell: Fix clang -Wimplicit-fallthrough warning
>
> Moshe Shemesh <moshe@nvidia.com>
> Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
>
> Amelie Delaunay <amelie.delaunay@foss.st.com>
> dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
>
> Chengguang Xu <cgxu519@mykernel.net>
> RDMA/rxe: Fix a typo in opcode name
>
> Yixing Liu <liuyixing1@huawei.com>
> RDMA/hns: Modify the mapping attribute of doorbell to device
>
> Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
> dmaengine: uniphier-xdmac: Fix type of address variables
>
> Bart Van Assche <bvanassche@acm.org>
> scsi: core: Show SCMD_LAST in text form
>
> Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> Bluetooth: hci_sync: Fix not setting adv set duration
>
> Randy Dunlap <rdunlap@infradead.org>
> Documentation: fix firewire.rst ABI file path error
>
> Lukas Bulwahn <lukas.bulwahn@gmail.com>
> Documentation: refer to config RANDOMIZE_BASE for kernel
> address-space randomization
>
> Sakari Ailus <sakari.ailus@linux.intel.com>
> Documentation: ACPI: Fix data node reference documentation
>
> Daniel Thompson <daniel.thompson@linaro.org>
> Documentation: dmaengine: Correctly describe dmatest with channel unset
>
> Randy Dunlap <rdunlap@infradead.org>
> media: correct MEDIA_TEST_SUPPORT help text
>
> Maxime Ripard <maxime@cerno.tech>
> drm/vc4: hdmi: Make sure the device is powered with CEC
>
> Suresh Udipi <sudipi@jp.adit-jv.com>
> media: rcar-csi2: Optimize the selection PHTW register
>
> Marc Kleine-Budde <mkl@pengutronix.de>
> can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
>
> Ben Hutchings <ben@decadent.org.uk>
> firmware: Update Kconfig help text for Google firmware
>
> Baruch Siach <baruch@tkos.co.il>
> of: base: Improve argument length mismatch error
>
> Christian König <christian.koenig@amd.com>
> drm/radeon: fix error handling in radeon_driver_open_kms
>
> Theodore Ts'o <tytso@mit.edu>
> ext4: don't use the orphan list when migrating an inode
>
> Ye Bin <yebin10@huawei.com>
> ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
>
> Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
>
> Xin Yin <yinxin.x@bytedance.com>
> ext4: fast commit may miss tracking unwritten range during ftruncate
>
> Xin Yin <yinxin.x@bytedance.com>
> ext4: use ext4_ext_remove_space() for fast commit replay delete range
>
> Ye Bin <yebin10@huawei.com>
> ext4: Fix BUG_ON in ext4_bread when write quota data
>
> Luís Henriques <lhenriques@suse.de>
> ext4: set csum seed in tmp inode while migrating to extents
>
> Xin Yin <yinxin.x@bytedance.com>
> ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
>
> Harshad Shirwadkar <harshadshirwadkar@gmail.com>
> ext4: initialize err_blk before calling __ext4_get_inode_loc
>
> Chunguang Xu <brookxu@tencent.com>
> ext4: fix a possible ABBA deadlock due to busy PA
>
> Jan Kara <jack@suse.cz>
> ext4: make sure quota gets properly shutdown on error
>
> Jan Kara <jack@suse.cz>
> ext4: make sure to reset inode lockdep class when quota enabling fails
>
> Filipe Manana <fdmanana@suse.com>
> btrfs: respect the max size in the header when activating swap file
>
> Josef Bacik <josef@toxicpanda.com>
> btrfs: check the root node for uptodate before returning it
>
> Filipe Manana <fdmanana@suse.com>
> btrfs: fix deadlock between quota enable and other quota operations
>
> Ghalem Boudour <ghalem.boudour@6wind.com>
> xfrm: fix policy lookup for ipv6 gre packets
>
> Pali Rohár <pali@kernel.org>
> PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
>
> Pali Rohár <pali@kernel.org>
> PCI: pci-bridge-emul: Correctly set PCIe capabilities
>
> Pali Rohár <pali@kernel.org>
> PCI: pci-bridge-emul: Fix definitions of reserved bits
>
> Pali Rohár <pali@kernel.org>
> PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
>
> Pali Rohár <pali@kernel.org>
> PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
>
> Hans de Goede <hdegoede@redhat.com>
> PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
>
> Rob Herring <robh@kernel.org>
> PCI: xgene: Fix IB window setup
>
> Nicholas Piggin <npiggin@gmail.com>
> powerpc/64s/radix: Fix huge vmap false positive
>
> John David Anglin <dave.anglin@bell.net>
> parisc: Fix lpa and lpa_user defines
>
> Brian Norris <briannorris@chromium.org>
> drm/bridge: analogix_dp: Make PSR-exit block less
>
> Ilia Mirkin <imirkin@alum.mit.edu>
> drm/nouveau/kms/nv04: use vzalloc for nv04_display
>
> Lucas Stach <l.stach@pengutronix.de>
> drm/etnaviv: limit submit sizes
>
> Sakari Ailus <sakari.ailus@linux.intel.com>
> device property: Fix fwnode_graph_devcon_match() fwnode leak
>
> Alexander Gordeev <agordeev@linux.ibm.com>
> s390/mm: fix 2KB pgtable release race
>
> Ilan Peer <ilan.peer@intel.com>
> iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
>
> Xiangyang Zhang <xyz.sun.ok@gmail.com>
> tracing/kprobes: 'nmissed' not showed correctly for kretprobe
>
> Andrey Ryabinin <arbn@yandex-team.com>
> cputime, cpuacct: Include guest time in user time in cpuacct.stat
>
> Lukas Wunner <lukas@wunner.de>
> serial: Fix incorrect rs485 polarity on uart open
>
> Xie Yongji <xieyongji@bytedance.com>
> fuse: Pass correct lend value to filemap_write_and_wait_range()
>
> Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> xen/gntdev: fix unmap notification order
>
> Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
> spi: uniphier: Fix a bug that doesn't point to private data correctly
>
> Patrick Williams <patrick@stwcx.xyz>
> tpm: fix NPE on probe for missing device
>
> Petr Cvachoucek <cvachoucek@gmail.com>
> ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
>
> Meng Li <Meng.Li@windriver.com>
> crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
>
> Marek Vasut <marex@denx.de>
> crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
>
> Heiner Kallweit <hkallweit1@gmail.com>
> crypto: omap-aes - Fix broken pm_runtime_and_get() usage
>
> Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
> rpmsg: core: Clean up resources on announce_create failure.
>
> Miaoqian Lin <linmq006@gmail.com>
> phy: mediatek: Fix missing check in mtk_mipi_tx_probe
>
> Tzung-Bi Shih <tzungbi@google.com>
> ASoC: mediatek: mt8183: fix device_node leak
>
> Tzung-Bi Shih <tzungbi@google.com>
> ASoC: mediatek: mt8173: fix device_node leak
>
> Christoph Hellwig <hch@lst.de>
> scsi: sr: Don't use GFP_DMA
>
> Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> MIPS: Octeon: Fix build errors using clang
>
> Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
> i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
>
> Marc Zyngier <maz@kernel.org>
> irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
>
> Ye Guojin <ye.guojin@zte.com.cn>
> MIPS: OCTEON: add put_device() after of_find_device_by_node()
>
> Jan Kara <jack@suse.cz>
> udf: Fix error handling in udf_new_inode()
>
> Hari Bathini <hbathini@linux.ibm.com>
> powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
>
> Hari Bathini <hbathini@linux.ibm.com>
> powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
>
> Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
> selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
>
> Christophe Leroy <christophe.leroy@csgroup.eu>
> powerpc/40x: Map 32Mbytes of memory at startup
>
> Nathan Chancellor <nathan@kernel.org>
> MIPS: Loongson64: Use three arguments for slti
>
> Takashi Iwai <tiwai@suse.de>
> ALSA: seq: Set upper limit of processed events
>
> James Smart <jsmart2021@gmail.com>
> scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
>
> Christoph Hellwig <hch@lst.de>
> dm: fix alloc_dax error handling in alloc_dev
>
> Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> nvmem: core: set size for sysfs bin file
>
> Christophe Leroy <christophe.leroy@csgroup.eu>
> w1: Misuse of get_user()/put_user() reported by sparse
>
> Alexey Kardashevskiy <aik@ozlabs.ru>
> KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
>
> Alexey Kardashevskiy <aik@ozlabs.ru>
> KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
>
> Christophe Leroy <christophe.leroy@csgroup.eu>
> powerpc/powermac: Add missing lockdep_register_key()
>
> Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
>
> Joakim Tjernlund <joakim.tjernlund@infinera.com>
> i2c: mpc: Correct I2C reset procedure
>
> Michael Ellerman <mpe@ellerman.id.au>
> powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
>
> Heiner Kallweit <hkallweit1@gmail.com>
> i2c: i801: Don't silently correct invalid transfer size
>
> Nicholas Piggin <npiggin@gmail.com>
> powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
>
> Julia Lawall <Julia.Lawall@lip6.fr>
> powerpc/btext: add missing of_node_put
>
> Julia Lawall <Julia.Lawall@lip6.fr>
> powerpc/cell: add missing of_node_put
>
> Julia Lawall <Julia.Lawall@lip6.fr>
> powerpc/powernv: add missing of_node_put
>
> Julia Lawall <Julia.Lawall@lip6.fr>
> powerpc/6xx: add missing of_node_put
>
> Ingo Molnar <mingo@kernel.org>
> x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
>
> John David Anglin <dave.anglin@bell.net>
> parisc: Avoid calling faulthandler_disabled() twice
>
> Jason A. Donenfeld <Jason@zx2c4.com>
> random: do not throw away excess input to crng_fast_load
>
> Lukas Wunner <lukas@wunner.de>
> serial: core: Keep mctrl register state and cached copy in sync
>
> Lukas Wunner <lukas@wunner.de>
> serial: pl010: Drop CR register reset on set_termios
>
> Konrad Dybcio <konrad.dybcio@somainline.org>
> regulator: qcom_smd: Align probe function with rpmh-regulator
>
> Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
> net: gemini: allow any RGMII interface mode
>
> Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
> net: phy: marvell: configure RGMII delays for 88E1118
>
> Danielle Ratson <danieller@nvidia.com>
> mlxsw: pci: Avoid flow control for EMAD packets
>
> Joe Thornber <ejt@redhat.com>
> dm space map common: add bounds check to sm_ll_lookup_bitmap()
>
> Joe Thornber <ejt@redhat.com>
> dm btree: add a defensive bounds check to insert_at()
>
> Ping-Ke Shih <pkshih@realtek.com>
> mac80211: allow non-standard VHT MCS-10/11
>
> Florian Fainelli <f.fainelli@gmail.com>
> net: mdio: Demote probed message to debug print
>
> Josef Bacik <josef@toxicpanda.com>
> btrfs: remove BUG_ON(!eie) in find_parent_nodes
>
> Josef Bacik <josef@toxicpanda.com>
> btrfs: remove BUG_ON() in find_parent_nodes()
>
> Thomas Weißschuh <linux@weissschuh.net>
> ACPI: battery: Add the ThinkPad "Not Charging" quirk
>
> Marina Nikolic <Marina.Nikolic@amd.com>
> amdgpu/pm: Make sysfs pm attributes as read-only for VFs
>
> Zongmin Zhou <zhouzongmin@kylinos.cn>
> drm/amdgpu: fixup bad vram size on gmc v8
>
> Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
>
> Sudeep Holla <sudeep.holla@arm.com>
> ACPICA: Fix wrong interpretation of PCC address
>
> Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
>
> Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> ACPICA: Utilities: Avoid deleting the same object twice in a row
>
> Mark Langsdorf <mlangsdo@redhat.com>
> ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
>
> Kyeong Yoo <kyeong.yoo@alliedtelesis.co.nz>
> jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
>
> Lucas Stach <l.stach@pengutronix.de>
> drm/etnaviv: consider completed fence seqno in hang check
>
> Antony Antony <antony.antony@secunet.com>
> xfrm: rate limit SA mapping change message to user space
>
> Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
>
> Ben Greear <greearb@candelatech.com>
> ath11k: Fix napi related hang
>
> Randy Dunlap <rdunlap@infradead.org>
> um: registers: Rename function names to avoid conflicts and build problems
>
> Luca Coelho <luciano.coelho@intel.com>
> iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
>
> Ilan Peer <ilan.peer@intel.com>
> iwlwifi: mvm: Fix calculation of frame length
>
> Johannes Berg <johannes.berg@intel.com>
> iwlwifi: remove module loading failure message
>
> Johannes Berg <johannes.berg@intel.com>
> iwlwifi: fix leaks/bad data after failed firmware load
>
> Changcheng Deng <deng.changcheng@zte.com.cn>
> PM: AVS: qcom-cpr: Use div64_ul instead of do_div
>
> Po-Hao Huang <phhuang@realtek.com>
> rtw88: 8822c: update rx settings to prevent potential hw deadlock
>
> Zekun Shen <bruceshenzk@gmail.com>
> ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
>
> Kai-Heng Feng <kai.heng.feng@canonical.com>
> usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
>
> Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> cpufreq: Fix initialization of min and max frequency QoS requests
>
> Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> PM: runtime: Add safety net to supplier device release
>
> Thierry Reding <treding@nvidia.com>
> arm64: tegra: Adjust length of CCPLEX cluster MMIO region
>
> Biwen Li <biwen.li@nxp.com>
> arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
>
> Paul Moore <paul@paul-moore.com>
> audit: ensure userspace is penalized the same as the kernel when
> under pressure
>
> Ulf Hansson <ulf.hansson@linaro.org>
> mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
>
> Zhou Qingyang <zhou1615@umn.edu>
> media: saa7146: hexium_gemini: Fix a NULL pointer dereference in
> hexium_attach()
>
> Sean Young <sean@mess.org>
> media: igorplugusb: receiver overflow should be reported
>
> Alistair Francis <alistair@alistair23.me>
> HID: quirks: Allow inverting the absolute X/Y values
>
> Paolo Abeni <pabeni@redhat.com>
> bpf: Do not WARN in bpf_warn_invalid_xdp_action()
>
> Suresh Kumar <surkumar@redhat.com>
> net: bonding: debug: avoid printing debug logs when bond is not
> notifying peers
>
> Borislav Petkov <bp@suse.de>
> x86/mce: Mark mce_read_aux() noinstr
>
> Borislav Petkov <bp@suse.de>
> x86/mce: Mark mce_end() noinstr
>
> Borislav Petkov <bp@suse.de>
> x86/mce: Mark mce_panic() noinstr
>
> Borislav Petkov <bp@suse.de>
> x86/mce: Allow instrumentation during task work queueing
>
> Baochen Qiang <quic_bqiang@quicinc.com>
> ath11k: Avoid false DEADLOCK warning reported by lockdep
>
> Heiko Carstens <hca@linux.ibm.com>
> selftests/ftrace: make kprobe profile testcase description unique
>
> Iwona Winiarska <iwona.winiarska@intel.com>
> gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
>
> Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
> net: phy: prefer 1000baseT over 1000baseKX
>
> Antoine Tenart <atenart@kernel.org>
> net-sysfs: update the queue counts in the unregistration path
>
> Sebastian Gottschall <s.gottschall@dd-wrt.com>
> ath10k: Fix tx hanging
>
> Wen Gong <quic_wgong@quicinc.com>
> ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
>
> Shaul Triebitz <shaul.triebitz@intel.com>
> iwlwifi: mvm: avoid clearing a just saved session protection id
>
> Johannes Berg <johannes.berg@intel.com>
> iwlwifi: mvm: synchronize with FW after multicast commands
>
> Mika Westerberg <mika.westerberg@linux.intel.com>
> thunderbolt: Runtime PM activate both ends of the device link
>
> Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> media: m920x: don't use stack on USB reads
>
> Zhou Qingyang <zhou1615@umn.edu>
> media: saa7146: hexium_orion: Fix a NULL pointer dereference in
> hexium_attach()
>
> Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> media: rcar-vin: Update format alignment constraints
>
> James Hilliard <james.hilliard1@gmail.com>
> media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
>
> Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> drm: rcar-du: Fix CRTC timings when CMM is used
>
> Joerg Roedel <jroedel@suse.de>
> x86/mm: Flush global TLB when switching to trampoline page-table
>
> Xiongwei Song <sxwjean@gmail.com>
> floppy: Add max size check for user space request
>
> Neal Liu <neal_liu@aspeedtech.com>
> usb: uhci: add aspeed ast2600 uhci support
>
> Kishon Vijay Abraham I <kishon@ti.com>
> arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
>
> Hans de Goede <hdegoede@redhat.com>
> ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on
> the GPD win
>
> Hans de Goede <hdegoede@redhat.com>
> ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
>
> Hans de Goede <hdegoede@redhat.com>
> ACPI: Change acpi_device_always_present() into acpi_device_override_status()
>
> Hans de Goede <hdegoede@redhat.com>
> ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
>
> Mansur Alisha Shaik <mansur@codeaurora.org>
> media: venus: avoid calling core_clk_setrate() concurrently during
> concurrent video sessions
>
> Sriram R <quic_srirrama@quicinc.com>
> ath11k: Avoid NULL ptr access during mgmt tx cleanup
>
> Zekun Shen <bruceshenzk@gmail.com>
> rsi: Fix out-of-bounds read in rsi_read_pkt()
>
> Zekun Shen <bruceshenzk@gmail.com>
> rsi: Fix use-after-free in rsi_rx_done_handler()
>
> Zekun Shen <bruceshenzk@gmail.com>
> mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
>
> Stephan Müller <smueller@chronox.de>
> crypto: jitter - consider 32 LSB for APT
>
> Chengfeng Ye <cyeaa@connect.ust.hk>
> HSI: core: Fix return freed object in hsi_new_client
>
> Hans de Goede <hdegoede@redhat.com>
> gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
>
> Fugang Duan <fugang.duan@nxp.com>
> tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
>
> Martyn Welch <martyn.welch@collabora.com>
> drm/bridge: megachips: Ensure both bridges are probed before registration
>
> Danielle Ratson <danieller@nvidia.com>
> mlxsw: pci: Add shutdown method in PCI driver
>
> Jan Kiszka <jan.kiszka@siemens.com>
> soc: ti: pruss: fix referenced node in error message
>
> Alex Deucher <alexander.deucher@amd.com>
> drm/amdgpu/display: set vblank_disable_immediate for DC
>
> Yang Li <yang.lee@linux.alibaba.com>
> drm/amd/display: check top_pipe_to_program pointer
>
> Lukas Bulwahn <lukas.bulwahn@gmail.com>
> ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
>
> Dinh Nguyen <dinguyen@kernel.org>
> EDAC/synopsys: Use the quirk for version instead of ddr version
>
> Zheyu Ma <zheyuma97@gmail.com>
> media: b2c2: Add missing check in flexcop_pci_isr:
>
> José Expósito <jose.exposito89@gmail.com>
> HID: apple: Do not reset quirks when the Fn key is not found
>
> Hans de Goede <hdegoede@redhat.com>
> drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
>
> Pavankumar Kondeti <quic_pkondeti@quicinc.com>
> usb: gadget: f_fs: Use stream_open() for endpoint files
>
> Baochen Qiang <bqiang@codeaurora.org>
> ath11k: Fix crash caused by uninitialized TX ring
>
> Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> media: atomisp: handle errors at sh_css_create_isp_params()
>
> Linus Lüssing <linus.luessing@c0d3.blue>
> batman-adv: allow netlink usage in unprivileged containers
>
> Wan Jiabing <wanjiabing@vivo.com>
> ARM: shmobile: rcar-gen2: Add missing of_node_put()
>
> Hans de Goede <hdegoede@redhat.com>
> media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
>
> Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> media: atomisp: set per-device's default mode
>
> Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> media: atomisp: fix try_fmt logic
>
> Ben Skeggs <bskeggs@redhat.com>
> drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
>
> Neil Armstrong <narmstrong@baylibre.com>
> drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
>
> Zekun Shen <bruceshenzk@gmail.com>
> ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
>
> Andrii Nakryiko <andrii@kernel.org>
> selftests/bpf: Fix bpf_object leak in skb_ctx selftest
>
> Qiang Yu <yuq825@gmail.com>
> drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
>
> Alexander Aring <aahringo@redhat.com>
> fs: dlm: filter user dlm messages for kernel locks
>
> Wei Yongjun <weiyongjun1@huawei.com>
> Bluetooth: Fix debugfs entry leak in hci_register_dev()
>
> Sicelo A. Mhlongo <absicsz@gmail.com>
> ARM: dts: omap3-n900: Fix lp5523 for multi color
>
> Baruch Siach <baruch@tkos.co.il>
> of: base: Fix phandle argument length mismatch error message
>
> Conor Dooley <conor.dooley@microchip.com>
> clk: bm1880: remove kfrees on static allocations
>
> Shengjiu Wang <shengjiu.wang@nxp.com>
> ASoC: fsl_asrc: refine the check of available clock divider
>
> Kamal Heib <kamalheib1@gmail.com>
> RDMA/cxgb4: Set queue pair state when being queried
>
> Alyssa Ross <hi@alyssa.is>
> ASoC: fsl_mqs: fix MODULE_ALIAS
>
> Ammar Faizi <ammarfaizi2@gmail.com>
> powerpc/xive: Add missing null check after calling kmalloc
>
> Randy Dunlap <rdunlap@infradead.org>
> mips: bcm63xx: add support for clk_set_parent()
>
> Randy Dunlap <rdunlap@infradead.org>
> mips: lantiq: add support for clk_set_parent()
>
> Sameer Pujar <spujar@nvidia.com>
> arm64: tegra: Remove non existent Tegra194 reset
>
> Sameer Pujar <spujar@nvidia.com>
> arm64: tegra: Fix Tegra194 HDA {clock,reset}-names ordering
>
> Fabrice Gasnier <fabrice.gasnier@foss.st.com>
> counter: stm32-lptimer-cnt: remove iio counter abi
>
> Wei Yongjun <weiyongjun1@huawei.com>
> misc: lattice-ecp3-config: Fix task hung when firmware load failed
>
> Jiasheng Jiang <jiasheng@iscas.ac.cn>
> ASoC: samsung: idma: Check of ioremap return value
>
> Jiasheng Jiang <jiasheng@iscas.ac.cn>
> ASoC: mediatek: Check for error clk pointer
>
> Ryuta NAKANISHI <nakanishi.ryuta@socionext.com>
> phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
>
> Alan Stern <stern@rowland.harvard.edu>
> scsi: block: pm: Always set request queue runtime active in
> blk_post_runtime_resume()
>
> Xiongfeng Wang <wangxiongfeng2@huawei.com>
> iommu/iova: Fix race between FQ timeout and teardown
>
> Cezary Rojewski <cezary.rojewski@intel.com>
> ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
>
> Maxim Levitsky <mlevitsk@redhat.com>
> iommu/amd: Restore GA log/tail pointer on host resume
>
> Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
> iommu/amd: Remove iommu_init_ga()
>
> Arnd Bergmann <arnd@arndb.de>
> dmaengine: pxa/mmp: stop referencing config->slave_id
>
> Lukas Bulwahn <lukas.bulwahn@gmail.com>
> mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
>
> Lukas Bulwahn <lukas.bulwahn@gmail.com>
> mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
>
> Dillon Min <dillon.minfei@gmail.com>
> clk: stm32: Fix ltdc's clock turn off by clk_disable_unused()
> after system enter shell
>
> Frank Rowand <frank.rowand@sony.com>
> of: unittest: 64 bit dma address test requires arch support
>
> Jim Quinlan <jim2101024@gmail.com>
> of: unittest: fix warning on PowerPC frame size warning
>
> Jiasheng Jiang <jiasheng@iscas.ac.cn>
> ASoC: rt5663: Handle device_property_read_u32_array error codes
>
> Avihai Horon <avihaih@nvidia.com>
> RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
>
> Avihai Horon <avihaih@nvidia.com>
> RDMA/core: Let ib_find_gid() continue search even after empty entry
>
> Christophe Leroy <christophe.leroy@csgroup.eu>
> powerpc/powermac: Add additional missing lockdep_register_key()
>
> Thomas Gleixner <tglx@linutronix.de>
> PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
>
> Kamal Heib <kamalheib1@gmail.com>
> RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
>
> Bart Van Assche <bvanassche@acm.org>
> scsi: ufs: Fix race conditions related to driver data
>
> Hector Martin <marcan@marcan.st>
> iommu/io-pgtable-arm: Fix table descriptor paddr formatting
>
> Stafford Horne <shorne@gmail.com>
> openrisc: Add clone3 ABI wrapper
>
> Todd Kjos <tkjos@google.com>
> binder: fix handling of error during copy
>
> Kees Cook <keescook@chromium.org>
> char/mwave: Adjust io port register size
>
> Takashi Iwai <tiwai@suse.de>
> ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
>
> Bixuan Cui <cuibixuan@linux.alibaba.com>
> ALSA: oss: fix compile error when OSS_DEBUG is enabled
>
> Waiman Long <longman@redhat.com>
> clocksource: Avoid accidental unstable marking of clocksources
>
> Paul E. McKenney <paulmck@kernel.org>
> clocksource: Reduce clocksource-skew threshold
>
> Christophe Leroy <christophe.leroy@csgroup.eu>
> powerpc/32s: Fix shift-out-of-bounds in KASAN init
>
> Athira Rajeev <atrajeev@linux.vnet.ibm.com>
> powerpc/perf: Fix PMU callbacks to clear pending PMI before
> resetting an overflown PMC
>
> Christophe Leroy <christophe.leroy@csgroup.eu>
> powerpc/irq: Add helper to set regs->softe
>
> Nicholas Piggin <npiggin@gmail.com>
> powerpc/perf: move perf irq/nmi handling details into traps.c
>
> Athira Rajeev <atrajeev@linux.vnet.ibm.com>
> powerpc/perf: MMCR0 control for PMU registers under PMCC=00
>
> Jordan Niethe <jniethe5@gmail.com>
> powerpc/64s: Convert some cpu_setup() and cpu_restore() functions to C
>
> Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> dt-bindings: thermal: Fix definition of cooling-maps contribution property
>
> Lukas Bulwahn <lukas.bulwahn@gmail.com>
> ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
>
> Peiwei Hu <jlu.hpw@foxmail.com>
> powerpc/prom_init: Fix improper check of prom_getprop()
>
> Adam Ford <aford173@gmail.com>
> clk: imx8mn: Fix imx8mn_clko1_sels
>
> Igor Pylypiv <ipylypiv@google.com>
> scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
>
> Kamal Heib <kamalheib1@gmail.com>
> RDMA/hns: Validate the pkey index
>
> Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling
> RCFW with pending cmd-bit"
>
> Takashi Iwai <tiwai@suse.de>
> ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
>
> Takashi Iwai <tiwai@suse.de>
> ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
>
> Takashi Iwai <tiwai@suse.de>
> ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
>
> Jan Kara <jack@suse.cz>
> ext4: avoid trim error on fs with small groups
>
> Pavel Skripkin <paskripkin@gmail.com>
> net: mcs7830: handle usb read errors properly
>
> Nathan Chancellor <nathan@kernel.org>
> iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
>
> Dominik Brodowski <linux@dominikbrodowski.net>
> pcmcia: fix setting of kthread task states
>
> Jiasheng Jiang <jiasheng@iscas.ac.cn>
> can: xilinx_can: xcan_probe(): check for error irq
>
> Marc Kleine-Budde <mkl@pengutronix.de>
> can: softing: softing_startstop(): fix set but not used variable warning
>
> Christophe Jaillet <christophe.jaillet@wanadoo.fr>
> tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
>
> Chen Jun <chenjun102@huawei.com>
> tpm: add request_locality before write TPM_INT_ENABLE
>
> Marc Kleine-Budde <mkl@pengutronix.de>
> can: mcp251xfd: add missing newline to printed strings
>
> Fabio Estevam <festevam@denx.de>
> regmap: Call regmap_debugfs_exit() prior to _init()
>
> Dan Carpenter <dan.carpenter@oracle.com>
> netrom: fix api breakage in nr_setsockopt()
>
> Dan Carpenter <dan.carpenter@oracle.com>
> ax25: uninitialized variable in ax25_setsockopt()
>
> Miaoqian Lin <linmq006@gmail.com>
> spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
>
> Dan Carpenter <dan.carpenter@oracle.com>
> Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
>
> Zizhuang Deng <sunsetdzz@gmail.com>
> lib/mpi: Add the return value check of kcalloc()
>
> Moshe Shemesh <moshe@nvidia.com>
> net/mlx5: Set command entry semaphore up once got index free
>
> Aya Levin <ayal@nvidia.com>
> Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
>
> Maor Dickman <maord@nvidia.com>
> net/mlx5e: Don't block routes with nexthop objects in SW
>
> Aya Levin <ayal@nvidia.com>
> net/mlx5e: Fix page DMA map/unmap attributes
>
> Michal Suchanek <msuchanek@suse.de>
> debugfs: lockdown: Allow reading debugfs files that are not world readable
>
> José Expósito <jose.exposito89@gmail.com>
> HID: hid-uclogic-params: Invalid parameter check in
> uclogic_params_frame_init_v1_buttonpad
>
> José Expósito <jose.exposito89@gmail.com>
> HID: hid-uclogic-params: Invalid parameter check in
> uclogic_params_huion_init
>
> José Expósito <jose.exposito89@gmail.com>
> HID: hid-uclogic-params: Invalid parameter check in
> uclogic_params_get_str_desc
>
> José Expósito <jose.exposito89@gmail.com>
> HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
>
> Miaoqian Lin <linmq006@gmail.com>
> usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
>
> Miaoqian Lin <linmq006@gmail.com>
> Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
>
> Jiasheng Jiang <jiasheng@iscas.ac.cn>
> Bluetooth: hci_bcm: Check for error irq
>
> Jiasheng Jiang <jiasheng@iscas.ac.cn>
> fsl/fman: Check for null pointer after calling devm_ioremap
>
> Jiasheng Jiang <jiasheng@iscas.ac.cn>
> staging: greybus: audio: Check null pointer
>
> Dan Carpenter <dan.carpenter@oracle.com>
> rocker: fix a sleeping in atomic bug
>
> Eric Dumazet <edumazet@google.com>
> ppp: ensure minimum packet size in ppp_write()
>
> Florian Westphal <fw@strlen.de>
> netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
>
> Kuniyuki Iwashima <kuniyu@amazon.co.jp>
> bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
>
> Daniel Borkmann <daniel@iogearbox.net>
> bpf: Don't promote bogus looking registers after null check.
>
> Xin Xiong <xiongx18@fudan.edu.cn>
> netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
>
> Jiasheng Jiang <jiasheng@iscas.ac.cn>
> power: reset: mt6397: Check for null res pointer
>
> Zhou Qingyang <zhou1615@umn.edu>
> pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in
> nonstatic_find_mem_region()
>
> Zhou Qingyang <zhou1615@umn.edu>
> pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in
> __nonstatic_find_io_region()
>
> Hans de Goede <hdegoede@redhat.com>
> ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
>
> Zhang Zixun <zhang133010@icloud.com>
> x86/mce/inject: Avoid out-of-bounds write when setting flags
>
> Arseny Demidov <arsdemal@gmail.com>
> hwmon: (mr75203) fix wrong power-up delay value
>
> Nathan Chancellor <nathan@kernel.org>
> x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
>
> Panicker Harish <quic_pharish@quicinc.com>
> Bluetooth: hci_qca: Stop IBS timer during BT OFF
>
> Clément Léger <clement.leger@bootlin.com>
> software node: fix wrong node passed to find nargs_prop
>
> Marijn Suijten <marijn.suijten@somainline.org>
> backlight: qcom-wled: Respect enabled-strings in set_brightness
>
> Marijn Suijten <marijn.suijten@somainline.org>
> backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
>
> Marijn Suijten <marijn.suijten@somainline.org>
> backlight: qcom-wled: Override default length with qcom,enabled-strings
>
> Marijn Suijten <marijn.suijten@somainline.org>
> backlight: qcom-wled: Fix off-by-one maximum with default num_strings
>
> Marijn Suijten <marijn.suijten@somainline.org>
> backlight: qcom-wled: Pass number of elements to read to read_u32_array
>
> Marijn Suijten <marijn.suijten@somainline.org>
> backlight: qcom-wled: Validate enabled string indices in DT
>
> Paul Chaignon <paul@isovalent.com>
> bpftool: Enable line buffering for stdout
>
> Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> Bluetooth: L2CAP: Fix using wrong mode
>
> Johannes Berg <johannes.berg@intel.com>
> um: virtio_uml: Fix time-travel external time propagation
>
> Johannes Berg <johannes.berg@intel.com>
> um: fix ndelay/udelay defines
>
> Bernard Zhao <bernard@vivo.com>
> selinux: fix potential memleak in selinux_add_opt()
>
> Sergey Shtylyov <s.shtylyov@omp.ru>
> mmc: meson-mx-sdio: add IRQ check
>
> Sergey Shtylyov <s.shtylyov@omp.ru>
> mmc: meson-mx-sdhc: add IRQ check
>
> Nathan Errera <nathan.errera@intel.com>
> iwlwifi: mvm: test roc running status bits before removing the sta
>
> Johannes Berg <johannes.berg@intel.com>
> iwlwifi: mvm: fix 32-bit build in FTM
>
> Marek Behún <kabel@kernel.org>
> ARM: dts: armada-38x: Add generic compatible to UART nodes
>
> Robert Marko <robert.marko@sartura.hr>
> arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
>
> Robert Marko <robert.marko@sartura.hr>
> arm64: dts: marvell: cn9130: add GPIO and SPI aliases
>
> Wei Yongjun <weiyongjun1@huawei.com>
> usb: ftdi-elan: fix memory leak on device disconnect
>
> Andre Przywara <andre.przywara@arm.com>
> ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
>
> Antony Antony <antony.antony@secunet.com>
> xfrm: state and policy should fail if XFRMA_IF_ID 0
>
> Antony Antony <antony.antony@secunet.com>
> xfrm: interface with if_id 0 should return error
>
> Jernej Skrabec <jernej.skrabec@gmail.com>
> media: hantro: Fix probe func error path
>
> Robin Murphy <robin.murphy@arm.com>
> drm/tegra: vic: Fix DMA API misuse
>
> Stephen Boyd <swboyd@chromium.org>
> drm/bridge: ti-sn65dsi86: Set max register for regmap
>
> Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> drm/msm/dpu: fix safe status debugfs file
>
> Baruch Siach <baruch@tkos.co.il>
> arm64: dts: qcom: ipq6018: Fix gpio-ranges property
>
> Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> arm64: dts: qcom: c630: Fix soundcard setup
>
> Zhou Qingyang <zhou1615@umn.edu>
> ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
>
> Jiasheng Jiang <jiasheng@iscas.ac.cn>
> media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
>
> Wang Hai <wanghai38@huawei.com>
> media: msi001: fix possible null-ptr-deref in msi001_probe()
>
> Anton Vasilyev <vasilyev@ispras.ru>
> media: dw2102: Fix use after free
>
> Christian Lamparter <chunkeey@gmail.com>
> ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
>
> Rameshkumar Sundaram <quic_ramess@quicinc.com>
> ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
>
> Herbert Xu <herbert@gondor.apana.org.au>
> crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
>
> Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
> crypto: stm32/cryp - fix bugs and crash in tests
>
> Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
> crypto: stm32/cryp - fix lrw chaining mode
>
> Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
> crypto: stm32/cryp - fix double pm exit
>
> Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
> crypto: stm32/cryp - check early input data
>
> Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
> crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
>
> Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
> crypto: stm32/cryp - fix CTR counter carry
>
> Herbert Xu <herbert@gondor.apana.org.au>
> crypto: stm32 - Fix last sparse warning in stm32_cryp_check_ctr_counter
>
> Jakub Kicinski <kuba@kernel.org>
> selftests: harness: avoid false negatives if test has no ASSERTs
>
> Anders Roxell <anders.roxell@linaro.org>
> selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
>
> Kees Cook <keescook@chromium.org>
> x86/uaccess: Move variable into switch case statement
>
> Eric Dumazet <edumazet@google.com>
> xfrm: fix a small bug in xfrm_sa_len()
>
> Brian Norris <briannorris@chromium.org>
> mwifiex: Fix possible ABBA deadlock
>
> Frederic Weisbecker <frederic@kernel.org>
> rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
>
> Jackie Liu <liuyun01@kylinos.cn>
> drm/msm/dp: displayPort driver need algorithm rational
>
> Li Hua <hucool.lihua@huawei.com>
> sched/rt: Try to restart rt period timer when rt runtime exceeded
>
> Lv Yunlong <lyl2019@mail.ustc.edu.cn>
> wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
>
> Robert Schlabbach <robert_s@gmx.net>
> media: si2157: Fix "warm" tuner state detection
>
> Zhou Qingyang <zhou1615@umn.edu>
> media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
>
> Zhou Qingyang <zhou1615@umn.edu>
> media: dib8000: Fix a memleak in dib8000_init()
>
> Reiji Watanabe <reijiw@google.com>
> arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
>
> Will Deacon <will@kernel.org>
> arm64: lib: Annotate {clear, copy}_page() as position-independent
>
> Kajol Jain <kjain@linux.ibm.com>
> bpf: Remove config check to enable bpf support for branch records
>
> Hou Tao <houtao1@huawei.com>
> bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
>
> Alexei Starovoitov <ast@kernel.org>
> bpf: Adjust BTF log size limit.
>
> Vincent Donnefort <vincent.donnefort@arm.com>
> sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
>
> Vincent Donnefort <vincent.donnefort@arm.com>
> sched/fair: Fix detection of per-CPU kthreads waking a task
>
> Sean Wang <sean.wang@mediatek.com>
> Bluetooth: btmtksdio: fix resume failure
>
> Yang Yingliang <yangyingliang@huawei.com>
> staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
>
> Yang Yingliang <yangyingliang@huawei.com>
> staging: rtl8192e: return error code from rtllib_softmac_init()
>
> Tasos Sahanidis <tasos@tasossah.com>
> floppy: Fix hang in watchdog when disk is ejected
>
> Lino Sanfilippo <LinoSanfilippo@gmx.de>
> serial: amba-pl011: do not request memory region twice
>
> Lizhi Hou <lizhi.hou@xilinx.com>
> tty: serial: uartlite: allow 64 bit address
>
> Nishanth Menon <nm@ti.com>
> arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
>
> Nishanth Menon <nm@ti.com>
> arm64: dts: ti: k3-j721e: Fix the L2 cache sets
>
> Nishanth Menon <nm@ti.com>
> arm64: dts: ti: k3-j7200: Fix the L2 cache sets
>
> Zhou Qingyang <zhou1615@umn.edu>
> drm/radeon/radeon_kms: Fix a NULL pointer dereference in
> radeon_driver_open_kms()
>
> Zhou Qingyang <zhou1615@umn.edu>
> drm/amdgpu: Fix a NULL pointer dereference in
> amdgpu_connector_lcd_native_mode()
>
> Paul Gerber <Paul.Gerber@tq-group.com>
> thermal/drivers/imx8mm: Enable ADC when enabling monitor
>
> Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> ACPI: EC: Rework flushing of EC work while suspended to idle
>
> William Kucharski <william.kucharski@oracle.com>
> cgroup: Trace event cgroup id fields should be u64
>
> Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> arm64: dts: qcom: msm8916: fix MMC controller aliases
>
> Florian Westphal <fw@strlen.de>
> netfilter: bridge: add support for pppoe filtering
>
> Oleksij Rempel <linux@rempel-privat.de>
> thermal/drivers/imx: Implement runtime PM support
>
> Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> media: venus: core: Fix a resource leak in the error handling path
> of 'venus_probe()'
>
> Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> media: venus: core: Fix a potential NULL pointer dereference in an
> error handling path
>
> Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> media: venus: core, venc, vdec: Fix probe dependency error
>
> Stanimir Varbanov <stanimir.varbanov@linaro.org>
> media: venus: pm_helpers: Control core power domain manually
>
> Philipp Zabel <p.zabel@pengutronix.de>
> media: coda: fix CODA960 JPEG encoder buffer overflow
>
> Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
> media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
>
> Yang Yingliang <yangyingliang@huawei.com>
> media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
>
> Fabio Estevam <festevam@denx.de>
> media: imx-pxp: Initialize the spinlock prior to using it
>
> Suresh Udipi <sudipi@jp.adit-jv.com>
> media: rcar-csi2: Correct the selection of hsfreqrange
>
> Claudiu Beznea <claudiu.beznea@microchip.com>
> mfd: atmel-flexcom: Use .resume_noirq
>
> Claudiu Beznea <claudiu.beznea@microchip.com>
> mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
>
> Tudor Ambarus <tudor.ambarus@microchip.com>
> tty: serial: atmel: Call dma_async_issue_pending()
>
> Tudor Ambarus <tudor.ambarus@microchip.com>
> tty: serial: atmel: Check return code of dmaengine_submit()
>
> Peng Fan <peng.fan@nxp.com>
> arm64: dts: ti: k3-j721e: correct cache-sets info
>
> Anilkumar Kolli <akolli@codeaurora.org>
> ath11k: Use host CE parameters for CE interrupts configuration
>
> Giovanni Cabiddu <giovanni.cabiddu@intel.com>
> crypto: qat - fix undetected PFVF timeout in ACK loop
>
> Marco Chiappero <marco.chiappero@intel.com>
> crypto: qat - make pfvf send message direction agnostic
>
> Marco Chiappero <marco.chiappero@intel.com>
> crypto: qat - remove unnecessary collision prevention step in PFVF
>
> Bhaskar Chowdhury <unixbhaskar@gmail.com>
> crypto: qat - fix spelling mistake: "messge" -> "message"
>
> Dillon Min <dillon.minfei@gmail.com>
> ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on
> stm32f429 disco
>
> George G. Davis <davis.george@siemens.com>
> mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
>
> Chengfeng Ye <cyeaa@connect.ust.hk>
> crypto: qce - fix uaf on qce_skcipher_register_one
>
> Chengfeng Ye <cyeaa@connect.ust.hk>
> crypto: qce - fix uaf on qce_ahash_register_one
>
> Wang Hai <wanghai38@huawei.com>
> media: dmxdev: fix UAF when dvb_register_device() fails
>
> Biju Das <biju.das.jz@bp.renesas.com>
> arm64: dts: renesas: cat875: Add rx/tx delays
>
> Dan Carpenter <dan.carpenter@oracle.com>
> drm/vboxvideo: fix a NULL vs IS_ERR() check
>
> Alexander Aring <aahringo@redhat.com>
> fs: dlm: fix build with CONFIG_IPV6 disabled
>
> Jens Wiklander <jens.wiklander@linaro.org>
> tee: fix put order in teedev_close_context()
>
> Karthikeyan Kathirvel <kathirve@codeaurora.org>
> ath11k: reset RSN/WPA present state for open BSS
>
> Karthikeyan Kathirvel <kathirve@codeaurora.org>
> ath11k: clear the keys properly via DISABLE_KEY
>
> Sven Eckelmann <sven@narfation.org>
> ath11k: Fix ETSI regd with weather radar overlap
>
> Pavel Skripkin <paskripkin@gmail.com>
> Bluetooth: stop proccessing malicious adv data
>
> Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
>
> Alexander Aring <aahringo@redhat.com>
> fs: dlm: don't call kernel_getpeername() in error_report()
>
> Alexander Aring <aahringo@redhat.com>
> fs: dlm: use sk->sk_socket instead of con->sock
>
> Christian Hewitt <christianshewitt@gmail.com>
> arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
>
> Christian Hewitt <christianshewitt@gmail.com>
> arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
>
> Alexander Stein <alexander.stein@mailbox.org>
> arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
>
> Alexander Stein <alexander.stein@mailbox.org>
> arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
>
> Jammy Huang <jammy_huang@aspeedtech.com>
> media: aspeed: Update signal status immediately to ensure sane hw state
>
> Dongliang Mu <mudongliangabcd@gmail.com>
> media: em28xx: fix memory leak in em28xx_init_dev
>
> Jammy Huang <jammy_huang@aspeedtech.com>
> media: aspeed: fix mode-detect always time out at 2nd run
>
> Dan Carpenter <dan.carpenter@oracle.com>
> media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
>
> Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> media: atomisp: fix enum formats logic
>
> Tsuchiya Yuto <kitakar@gmail.com>
> media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
>
> Aline Santana Cordeiro <alinesantanacordeiro@gmail.com>
> media: staging: media: atomisp: pci: Balance braces around
> conditional statements in file atomisp_cmd.c
>
> Tsuchiya Yuto <kitakar@gmail.com>
> media: atomisp: fix ifdefs in sh_css.c
>
> Tsuchiya Yuto <kitakar@gmail.com>
> media: atomisp: fix inverted error check for
> ia_css_mipi_is_source_port_valid()
>
> Tsuchiya Yuto <kitakar@gmail.com>
> media: atomisp: do not use err var when checking port validity for ISP2400
>
> Tsuchiya Yuto <kitakar@gmail.com>
> media: atomisp: fix inverted logic in buffers_needed()
>
> Tsuchiya Yuto <kitakar@gmail.com>
> media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
>
> Tsuchiya Yuto <kitakar@gmail.com>
> media: atomisp: add missing media_device_cleanup() in
> atomisp_unregister_entities()
>
> Dillon Min <dillon.minfei@gmail.com>
> media: videobuf2: Fix the size printk format
>
> Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
>
> Rameshkumar Sundaram <ramess@codeaurora.org>
> ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
>
> Benjamin Li <benl@squareup.com>
> wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
>
> Benjamin Li <benl@squareup.com>
> wcn36xx: populate band before determining rate on RX
>
> Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> wcn36xx: Put DXE block into reset before freeing memory
>
> Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> wcn36xx: Release DMA channel descriptor allocations
>
> Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> wcn36xx: Fix DMA channel enable/disable cycle
>
> Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
>
> Benjamin Li <benl@squareup.com>
> wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
>
> Maxime Ripard <maxime@cerno.tech>
> drm/vc4: hdmi: Set a default HSM rate
>
> Maxime Ripard <maxime@cerno.tech>
> clk: bcm-2835: Remove rounding up the dividers
>
> Maxime Ripard <maxime@cerno.tech>
> clk: bcm-2835: Pick the closest clock rate
>
> Wang Hai <wanghai38@huawei.com>
> Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
>
> Brian Norris <briannorris@chromium.org>
> drm/rockchip: dsi: Reconfigure hardware on resume()
>
> Brian Norris <briannorris@chromium.org>
> drm/rockchip: dsi: Disable PLL clock on bind error
>
> Brian Norris <briannorris@chromium.org>
> drm/rockchip: dsi: Hold pm-runtime across bind/unbind
>
> Brian Norris <briannorris@chromium.org>
> drm/rockchip: dsi: Fix unbalanced clock on probe error
>
> Brian Norris <briannorris@chromium.org>
> drm/panel: innolux-p079zca: Delete panel on attach() failure
>
> Brian Norris <briannorris@chromium.org>
> drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
>
> Wang Hai <wanghai38@huawei.com>
> drm: fix null-ptr-deref in drm_dev_init_release()
>
> Dan Carpenter <dan.carpenter@oracle.com>
> drm/bridge: display-connector: fix an uninitialized pointer in probe()
>
> Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> Bluetooth: L2CAP: Fix not initializing sk_peer_pid
>
> xinhui pan <xinhui.pan@amd.com>
> drm/ttm: Put BO in its memory manager's lru list
>
> Gang Li <ligang.bdlg@bytedance.com>
> shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
>
> Baoquan He <bhe@redhat.com>
> mm/page_alloc.c: do not warn allocation failure on zone DMA if no
> managed pages
>
> Baoquan He <bhe@redhat.com>
> dma/pool: create dma atomic pool only if dma zone has managed pages
>
> Baoquan He <bhe@redhat.com>
> mm_zone: add function to check if managed dma zone exists
>
> Yifeng Li <tomli@tomli.me>
> PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
>
> Thomas Hellström <thomas.hellstrom@linux.intel.com>
> dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
>
> Dmitry Osipenko <digetx@gmail.com>
> gpu: host1x: Add back arm_iommu_detach_device()
>
> Yunfei Wang <yf.wang@mediatek.com>
> iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
>
> Christophe Leroy <christophe.leroy@csgroup.eu>
> lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
>
> Jonathan Cameron <Jonathan.Cameron@huawei.com>
> iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
>
> Johan Hovold <johan@kernel.org>
> can: softing_cs: softingcs_probe(): fix memleak on registration failure
>
> Hans Verkuil <hverkuil-cisco@xs4all.nl>
> media: cec-pin: fix interrupt en/disable handling
>
> Johan Hovold <johan@kernel.org>
> media: stk1160: fix control-message timeouts
>
> Johan Hovold <johan@kernel.org>
> media: pvrusb2: fix control-message timeouts
>
> Johan Hovold <johan@kernel.org>
> media: redrat3: fix control-message timeouts
>
> Michael Kuron <michael.kuron@gmail.com>
> media: dib0700: fix undefined behavior in tuner shutdown
>
> Johan Hovold <johan@kernel.org>
> media: s2255: fix control-message timeouts
>
> Johan Hovold <johan@kernel.org>
> media: cpia2: fix control-message timeouts
>
> Johan Hovold <johan@kernel.org>
> media: em28xx: fix control-message timeouts
>
> Johan Hovold <johan@kernel.org>
> media: mceusb: fix control-message timeouts
>
> Johan Hovold <johan@kernel.org>
> media: flexcop-usb: fix control-message timeouts
>
> Hans Verkuil <hverkuil-cisco@xs4all.nl>
> media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
>
> Mateusz Jończyk <mat.jonczyk@o2.pl>
> rtc: cmos: take rtc_lock while reading from CMOS
>
> Willy Tarreau <w@1wt.eu>
> tools/nolibc: fix incorrect truncation of exit code
>
> Willy Tarreau <w@1wt.eu>
> tools/nolibc: i386: fix initial stack alignment
>
> Ammar Faizi <ammar.faizi@students.amikom.ac.id>
> tools/nolibc: x86-64: Fix startup code bug
>
> Lucas De Marchi <lucas.demarchi@intel.com>
> x86/gpu: Reserve stolen memory for first integrated Intel GPU
>
> Paul Cercueil <paul@crapouillou.net>
> mtd: rawnand: davinci: Rewrite function description
>
> Paul Cercueil <paul@crapouillou.net>
> mtd: rawnand: davinci: Avoid duplicated page read
>
> Paul Cercueil <paul@crapouillou.net>
> mtd: rawnand: davinci: Don't calculate ECC when reading page
>
> Andreas Oetken <ennoerlangen@gmail.com>
> mtd: Fixed breaking list in __mtd_del_partition.
>
> Stefan Riedmueller <s.riedmueller@phytec.de>
> mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
>
> Christian Eggers <ceggers@arri.de>
> mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
>
> Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
> nfc: llcp: fix NULL error pointer dereference on sendmsg() after
> failed bind()
>
> Chao Yu <chao@kernel.org>
> f2fs: fix to do sanity check in is_alive()
>
> Jason Gerecke <killertofu@gmail.com>
> HID: wacom: Avoid using stale array indicies to read contact count
>
> Jason Gerecke <killertofu@gmail.com>
> HID: wacom: Ignore the confidence flag when a touch is removed
>
> Jason Gerecke <killertofu@gmail.com>
> HID: wacom: Reset expected and received contact counts at the same time
>
> Jann Horn <jannh@google.com>
> HID: uhid: Fix worker destroying device without any protection
>
> Marcelo Tosatti <mtosatti@redhat.com>
> KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
>
>
> -------------
>
> Diffstat:
>
> .../ABI/testing/sysfs-bus-iio-lptimer-stm32 | 62 --
> Documentation/admin-guide/hw-vuln/spectre.rst | 2 +-
> .../bindings/display/amlogic,meson-dw-hdmi.yaml | 5 +
> .../bindings/display/amlogic,meson-vpu.yaml | 6 +
> .../devicetree/bindings/thermal/thermal-zones.yaml | 9 +-
> .../devicetree/bindings/watchdog/samsung-wdt.yaml | 5 +-
> Documentation/driver-api/dmaengine/dmatest.rst | 7 +-
> Documentation/driver-api/firewire.rst | 4 +-
> .../acpi/dsd/data-node-references.rst | 10 +-
> Makefile | 4 +-
> arch/arm/Kconfig.debug | 14 +-
> arch/arm/boot/compressed/efi-header.S | 22 +-
> arch/arm/boot/compressed/head.S | 3 +-
> arch/arm/boot/dts/armada-38x.dtsi | 4 +-
> arch/arm/boot/dts/gemini-nas4220b.dts | 2 +-
> arch/arm/boot/dts/omap3-n900.dts | 50 +-
> arch/arm/boot/dts/stm32f429-disco.dts | 2 +-
> arch/arm/include/debug/imx-uart.h | 18 +-
> arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5 +-
> arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 2 +-
> .../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 +-
> arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 3 +
> arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 14 +-
> arch/arm64/boot/dts/marvell/cn9130.dtsi | 15 +
> arch/arm64/boot/dts/nvidia/tegra186.dtsi | 2 +-
> arch/arm64/boot/dts/nvidia/tegra194.dtsi | 9 +-
> arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2 +-
> arch/arm64/boot/dts/qcom/msm8916.dtsi | 4 +-
> arch/arm64/boot/dts/qcom/msm8996.dtsi | 3 -
> .../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 27 +
> arch/arm64/boot/dts/renesas/cat875.dtsi | 1 +
> arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2 +-
> arch/arm64/boot/dts/ti/k3-j7200.dtsi | 6 +-
> arch/arm64/boot/dts/ti/k3-j721e.dtsi | 6 +-
> arch/arm64/lib/clear_page.S | 14 +-
> arch/arm64/lib/copy_page.S | 4 +-
> arch/mips/Kconfig | 6 +-
> arch/mips/bcm63xx/clk.c | 6 +
> arch/mips/cavium-octeon/octeon-platform.c | 2 +
> arch/mips/cavium-octeon/octeon-usb.c | 1 +
> .../asm/mach-loongson64/kernel-entry-init.h | 4 +-
> arch/mips/include/asm/octeon/cvmx-bootinfo.h | 4 +-
> arch/mips/lantiq/clk.c | 6 +
> arch/openrisc/include/asm/syscalls.h | 2 +
> arch/openrisc/kernel/entry.S | 5 +
> arch/parisc/include/asm/special_insns.h | 44 +-
> arch/parisc/kernel/traps.c | 2 +-
> arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi | 2 +
> arch/powerpc/include/asm/cpu_setup_power.h | 12 +
> arch/powerpc/include/asm/hw_irq.h | 51 +-
> arch/powerpc/include/asm/reg.h | 1 +
> arch/powerpc/kernel/btext.c | 4 +-
> arch/powerpc/kernel/cpu_setup_power.S | 252 ------
> arch/powerpc/kernel/cpu_setup_power.c | 272 ++++++
> arch/powerpc/kernel/cputable.c | 12 +-
> arch/powerpc/kernel/dt_cpu_ftrs.c | 1 +
> arch/powerpc/kernel/fadump.c | 8 +
> arch/powerpc/kernel/head_40x.S | 9 +-
> arch/powerpc/kernel/prom_init.c | 2 +-
> arch/powerpc/kernel/smp.c | 42 +
> arch/powerpc/kernel/traps.c | 31 +-
> arch/powerpc/kernel/watchdog.c | 41 +-
> arch/powerpc/kvm/book3s_hv.c | 8 +-
> arch/powerpc/kvm/book3s_hv_nested.c | 2 +-
> arch/powerpc/mm/book3s64/radix_pgtable.c | 4 +-
> arch/powerpc/mm/kasan/book3s_32.c | 3 +-
> arch/powerpc/mm/pgtable_64.c | 14 +-
> arch/powerpc/perf/core-book3s.c | 97 ++-
> arch/powerpc/perf/core-fsl-emb.c | 25 -
> arch/powerpc/perf/isa207-common.c | 8 +
> arch/powerpc/platforms/cell/iommu.c | 1 +
> arch/powerpc/platforms/cell/pervasive.c | 1 +
> arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 1 +
> arch/powerpc/platforms/powermac/low_i2c.c | 3 +
> arch/powerpc/platforms/powernv/opal-lpc.c | 1 +
> arch/powerpc/sysdev/xive/spapr.c | 3 +
> arch/s390/mm/pgalloc.c | 4 +-
> arch/um/drivers/virtio_uml.c | 4 +
> arch/um/include/asm/delay.h | 4 +-
> arch/um/include/shared/registers.h | 4 +-
> arch/um/os-Linux/registers.c | 4 +-
> arch/um/os-Linux/start_up.c | 2 +-
> arch/x86/boot/compressed/Makefile | 7 +-
> arch/x86/configs/i386_defconfig | 1 +
> arch/x86/configs/x86_64_defconfig | 1 +
> arch/x86/include/asm/realmode.h | 1 +
> arch/x86/include/asm/uaccess.h | 5 +-
> arch/x86/kernel/cpu/mce/core.c | 42 +-
> arch/x86/kernel/cpu/mce/inject.c | 2 +-
> arch/x86/kernel/early-quirks.c | 10 +-
> arch/x86/kernel/reboot.c | 12 +-
> arch/x86/kernel/tsc.c | 1 +
> arch/x86/kvm/vmx/posted_intr.c | 16 +-
> arch/x86/realmode/init.c | 26 +
> arch/x86/um/syscalls_64.c | 3 +-
> block/blk-flush.c | 4 +-
> block/blk-pm.c | 22 +-
> crypto/jitterentropy.c | 3 +-
> drivers/acpi/acpica/exfield.c | 7 +-
> drivers/acpi/acpica/exoparg1.c | 3 +-
> drivers/acpi/acpica/hwesleep.c | 4 +-
> drivers/acpi/acpica/hwsleep.c | 4 +-
> drivers/acpi/acpica/hwxfsleep.c | 2 -
> drivers/acpi/acpica/utdelete.c | 1 +
> drivers/acpi/battery.c | 22 +
> drivers/acpi/bus.c | 4 +-
> drivers/acpi/ec.c | 57 +-
> drivers/acpi/internal.h | 2 +
> drivers/acpi/scan.c | 13 +-
> drivers/acpi/x86/utils.c | 116 ++-
> drivers/android/binder.c | 4 +-
> drivers/base/core.c | 3 +-
> drivers/base/power/runtime.c | 41 +-
> drivers/base/property.c | 4 +-
> drivers/base/regmap/regmap.c | 1 +
> drivers/base/swnode.c | 2 +-
> drivers/block/floppy.c | 6 +-
> drivers/bluetooth/btmtksdio.c | 2 +
> drivers/bluetooth/hci_bcm.c | 7 +-
> drivers/bluetooth/hci_qca.c | 5 +-
> drivers/bluetooth/hci_vhci.c | 2 +
> drivers/char/mwave/3780i.h | 2 +-
> drivers/char/random.c | 19 +-
> drivers/char/tpm/tpm_tis_core.c | 14 +-
> drivers/clk/bcm/clk-bcm2835.c | 13 +-
> drivers/clk/clk-bm1880.c | 20 +-
> drivers/clk/clk-si5341.c | 2 +-
> drivers/clk/clk-stm32f4.c | 4 -
> drivers/clk/clk.c | 18 +
> drivers/clk/imx/clk-imx8mn.c | 6 +-
> drivers/clk/meson/gxbb.c | 44 +-
> drivers/counter/Kconfig | 2 +-
> drivers/counter/stm32-lptimer-cnt.c | 297 +------
> drivers/cpufreq/cpufreq.c | 4 +-
> drivers/crypto/caam/caamalg_qi2.c | 2 +-
> drivers/crypto/omap-aes.c | 2 +-
> drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 45 +-
> drivers/crypto/qat/qat_common/adf_vf2pf_msg.c | 4 +-
> drivers/crypto/qce/sha.c | 2 +-
> drivers/crypto/qce/skcipher.c | 2 +-
> drivers/crypto/stm32/stm32-crc32.c | 4 +-
> drivers/crypto/stm32/stm32-cryp.c | 938 ++++++++-------------
> drivers/crypto/stm32/stm32-hash.c | 6 +-
> drivers/dma-buf/dma-fence-array.c | 6 +-
> drivers/dma/at_xdmac.c | 57 +-
> drivers/dma/mmp_pdma.c | 6 -
> drivers/dma/pxa_dma.c | 7 -
> drivers/dma/stm32-mdma.c | 2 +-
> drivers/dma/uniphier-xdmac.c | 5 +-
> drivers/edac/synopsys_edac.c | 3 +-
> drivers/firmware/google/Kconfig | 6 +-
> drivers/gpio/gpio-aspeed.c | 52 +-
> drivers/gpio/gpiolib-acpi.c | 15 +-
> drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 6 +
> drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1 -
> drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 13 +-
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +
> drivers/gpu/drm/amd/display/dc/core/dc.c | 3 +-
> drivers/gpu/drm/amd/pm/amdgpu_pm.c | 6 +
> drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 14 +-
> drivers/gpu/drm/bridge/display-connector.c | 2 +-
> .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 40 +-
> .../gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 10 +-
> drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 4 +-
> .../gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 9 +-
> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 12 +-
> drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 +
> drivers/gpu/drm/drm_drv.c | 9 +-
> drivers/gpu/drm/drm_panel_orientation_quirks.c | 6 +
> drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 6 +
> drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 1 +
> drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4 +-
> drivers/gpu/drm/lima/lima_device.c | 1 +
> drivers/gpu/drm/mediatek/mtk_mipi_tx.c | 2 +
> drivers/gpu/drm/msm/Kconfig | 1 +
> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4 +-
> drivers/gpu/drm/nouveau/dispnv04/disp.c | 4 +-
> drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 37 +-
> drivers/gpu/drm/panel/panel-innolux-p079zca.c | 10 +-
> drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 8 +-
> drivers/gpu/drm/radeon/radeon_kms.c | 42 +-
> drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 20 +-
> drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 82 +-
> drivers/gpu/drm/tegra/vic.c | 7 +-
> drivers/gpu/drm/ttm/ttm_bo.c | 2 +
> drivers/gpu/drm/vboxvideo/vbox_main.c | 4 +-
> drivers/gpu/drm/vc4/vc4_hdmi.c | 24 +-
> drivers/gpu/host1x/dev.c | 15 +
> drivers/hid/hid-apple.c | 2 +-
> drivers/hid/hid-input.c | 6 +
> drivers/hid/hid-uclogic-params.c | 31 +-
> drivers/hid/hid-vivaldi.c | 34 +-
> drivers/hid/uhid.c | 29 +-
> drivers/hid/wacom_wac.c | 39 +-
> drivers/hsi/hsi_core.c | 1 +
> drivers/hwmon/mr75203.c | 2 +-
> drivers/i2c/busses/i2c-designware-pcidrv.c | 8 +-
> drivers/i2c/busses/i2c-i801.c | 15 +-
> drivers/i2c/busses/i2c-mpc.c | 23 +-
> drivers/iio/adc/ti-adc081c.c | 22 +-
> drivers/infiniband/core/cma.c | 12 +-
> drivers/infiniband/core/device.c | 3 +-
> drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 +-
> drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1 -
> drivers/infiniband/hw/cxgb4/qp.c | 1 +
> drivers/infiniband/hw/hns/hns_roce_main.c | 5 +-
> drivers/infiniband/hw/qedr/verbs.c | 2 +
> drivers/infiniband/sw/rxe/rxe_opcode.c | 2 +-
> drivers/iommu/amd/init.c | 48 +-
> drivers/iommu/io-pgtable-arm-v7s.c | 6 +-
> drivers/iommu/io-pgtable-arm.c | 9 +-
> drivers/iommu/iova.c | 3 +-
> drivers/irqchip/irq-gic-v3.c | 16 +
> drivers/md/dm.c | 4 +-
> drivers/md/persistent-data/dm-btree.c | 8 +-
> drivers/md/persistent-data/dm-space-map-common.c | 5 +
> drivers/media/Kconfig | 8 +-
> drivers/media/cec/core/cec-pin.c | 31 +-
> drivers/media/common/saa7146/saa7146_fops.c | 2 +-
> .../media/common/videobuf2/videobuf2-dma-contig.c | 8 +-
> drivers/media/dvb-core/dmxdev.c | 18 +-
> drivers/media/dvb-frontends/dib8000.c | 4 +-
> drivers/media/pci/b2c2/flexcop-pci.c | 3 +
> drivers/media/pci/saa7146/hexium_gemini.c | 7 +-
> drivers/media/pci/saa7146/hexium_orion.c | 8 +-
> drivers/media/pci/saa7146/mxb.c | 8 +-
> drivers/media/platform/aspeed-video.c | 14 +-
> drivers/media/platform/coda/coda-common.c | 8 +-
> drivers/media/platform/coda/coda-jpeg.c | 21 +-
> drivers/media/platform/coda/imx-vdoa.c | 6 +-
> drivers/media/platform/imx-pxp.c | 4 +-
> .../media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 2 +-
> drivers/media/platform/qcom/venus/core.c | 39 +-
> drivers/media/platform/qcom/venus/core.h | 2 -
> drivers/media/platform/qcom/venus/pm_helpers.c | 94 +--
> drivers/media/platform/qcom/venus/pm_helpers.h | 7 +-
> drivers/media/platform/rcar-vin/rcar-csi2.c | 18 +-
> drivers/media/platform/rcar-vin/rcar-v4l2.c | 15 +-
> drivers/media/radio/si470x/radio-si470x-i2c.c | 3 +-
> drivers/media/rc/igorplugusb.c | 4 +-
> drivers/media/rc/mceusb.c | 8 +-
> drivers/media/rc/redrat3.c | 22 +-
> drivers/media/tuners/msi001.c | 7 +
> drivers/media/tuners/si2157.c | 2 +-
> drivers/media/usb/b2c2/flexcop-usb.c | 10 +-
> drivers/media/usb/b2c2/flexcop-usb.h | 12 +-
> drivers/media/usb/cpia2/cpia2_usb.c | 4 +-
> drivers/media/usb/dvb-usb/dib0700_core.c | 2 -
> drivers/media/usb/dvb-usb/dw2102.c | 338 +++++---
> drivers/media/usb/dvb-usb/m920x.c | 12 +-
> drivers/media/usb/em28xx/em28xx-cards.c | 18 +-
> drivers/media/usb/em28xx/em28xx-core.c | 4 +-
> drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 8 +-
> drivers/media/usb/s2255/s2255drv.c | 4 +-
> drivers/media/usb/stk1160/stk1160-core.c | 4 +-
> drivers/media/usb/uvc/uvcvideo.h | 2 +-
> drivers/media/v4l2-core/v4l2-ioctl.c | 4 +-
> drivers/memory/renesas-rpc-if.c | 2 +-
> drivers/mfd/atmel-flexcom.c | 11 +-
> drivers/misc/lattice-ecp3-config.c | 12 +-
> drivers/misc/lkdtm/Makefile | 2 +-
> drivers/mmc/core/sdio.c | 4 +-
> drivers/mmc/host/meson-mx-sdhc-mmc.c | 5 +
> drivers/mmc/host/meson-mx-sdio.c | 5 +
> drivers/mtd/hyperbus/rpc-if.c | 8 +-
> drivers/mtd/mtdpart.c | 2 +-
> drivers/mtd/nand/bbt.c | 2 +-
> drivers/mtd/nand/raw/davinci_nand.c | 16 +-
> drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 37 +-
> drivers/net/bonding/bond_main.c | 36 +-
> drivers/net/can/softing/softing_cs.c | 2 +-
> drivers/net/can/softing/softing_fw.c | 11 +-
> drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 6 +-
> drivers/net/can/xilinx_can.c | 7 +-
> drivers/net/ethernet/broadcom/genet/bcmgenet.c | 10 +-
> drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c | 3 +-
> drivers/net/ethernet/cortina/gemini.c | 9 +-
> drivers/net/ethernet/freescale/fman/mac.c | 21 +-
> drivers/net/ethernet/freescale/xgmac_mdio.c | 28 +-
> drivers/net/ethernet/i825xx/sni_82596.c | 3 +-
> drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
> drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 36 +-
> .../net/ethernet/mellanox/mlx5/core/en/xsk/pool.c | 4 +-
> drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 10 +-
> drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 7 +-
> drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c | 6 +-
> drivers/net/ethernet/mellanox/mlxsw/cmd.h | 12 +
> drivers/net/ethernet/mellanox/mlxsw/pci.c | 7 +-
> drivers/net/ethernet/mscc/ocelot_flower.c | 15 +-
> drivers/net/ethernet/rocker/rocker_ofdpa.c | 3 +-
> drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 135 +--
> drivers/net/phy/marvell.c | 6 +
> drivers/net/phy/mdio_bus.c | 2 +-
> drivers/net/phy/phy-core.c | 2 +-
> drivers/net/phy/sfp.c | 25 +-
> drivers/net/ppp/ppp_generic.c | 7 +-
> drivers/net/usb/mcs7830.c | 12 +-
> drivers/net/wireless/ath/ar5523/ar5523.c | 4 +
> drivers/net/wireless/ath/ath10k/core.c | 19 +-
> drivers/net/wireless/ath/ath10k/htt_tx.c | 3 +
> drivers/net/wireless/ath/ath10k/hw.h | 3 +
> drivers/net/wireless/ath/ath10k/txrx.c | 2 -
> drivers/net/wireless/ath/ath11k/ahb.c | 28 +-
> drivers/net/wireless/ath/ath11k/core.h | 2 +-
> drivers/net/wireless/ath/ath11k/dp.h | 3 +-
> drivers/net/wireless/ath/ath11k/dp_tx.c | 2 +-
> drivers/net/wireless/ath/ath11k/hal.c | 22 +
> drivers/net/wireless/ath/ath11k/hal.h | 2 +
> drivers/net/wireless/ath/ath11k/hw.c | 2 -
> drivers/net/wireless/ath/ath11k/mac.c | 52 +-
> drivers/net/wireless/ath/ath11k/pci.c | 12 +-
> drivers/net/wireless/ath/ath11k/reg.c | 103 +--
> drivers/net/wireless/ath/ath11k/wmi.c | 5 +-
> drivers/net/wireless/ath/ath9k/hif_usb.c | 7 +
> drivers/net/wireless/ath/wcn36xx/dxe.c | 49 +-
> drivers/net/wireless/ath/wcn36xx/main.c | 34 +-
> drivers/net/wireless/ath/wcn36xx/smd.c | 8 +-
> drivers/net/wireless/ath/wcn36xx/txrx.c | 41 +-
> drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 +
> drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 17 +-
> .../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 2 +-
> drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 17 +
> drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 27 +
> drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 2 +-
> .../net/wireless/intel/iwlwifi/mvm/time-event.c | 27 +-
> drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 7 +-
> drivers/net/wireless/intel/iwlwifi/queue/tx.c | 1 +
> drivers/net/wireless/marvell/mwifiex/sta_event.c | 8 +-
> drivers/net/wireless/marvell/mwifiex/usb.c | 3 +-
> drivers/net/wireless/realtek/rtw88/main.c | 2 +-
> drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2 +-
> drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
> drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
> drivers/net/wireless/rsi/rsi_91x_main.c | 4 +
> drivers/net/wireless/rsi/rsi_91x_usb.c | 9 +-
> drivers/net/wireless/rsi/rsi_usb.h | 2 +
> drivers/nvmem/core.c | 2 +
> drivers/of/base.c | 11 +-
> drivers/of/unittest.c | 21 +-
> drivers/parisc/pdc_stable.c | 4 +-
> drivers/pci/controller/pci-aardvark.c | 4 +-
> drivers/pci/controller/pci-mvebu.c | 8 +
> drivers/pci/controller/pci-xgene.c | 2 +-
> drivers/pci/hotplug/pciehp.h | 3 +
> drivers/pci/hotplug/pciehp_core.c | 2 +-
> drivers/pci/hotplug/pciehp_hpc.c | 21 +-
> drivers/pci/msi.c | 26 +-
> drivers/pci/pci-bridge-emul.c | 70 +-
> drivers/pci/quirks.c | 3 +
> drivers/pcmcia/cs.c | 8 +-
> drivers/pcmcia/rsrc_nonstatic.c | 6 +
> drivers/phy/socionext/phy-uniphier-usb3ss.c | 10 +-
> drivers/power/reset/mt6323-poweroff.c | 3 +
> drivers/regulator/qcom_smd-regulator.c | 100 ++-
> drivers/rpmsg/rpmsg_core.c | 20 +-
> drivers/rtc/rtc-cmos.c | 3 +
> drivers/rtc/rtc-pxa.c | 4 +
> drivers/scsi/lpfc/lpfc.h | 2 +-
> drivers/scsi/lpfc/lpfc_attr.c | 62 +-
> drivers/scsi/lpfc/lpfc_hbadisc.c | 8 +-
> drivers/scsi/lpfc/lpfc_sli.c | 6 -
> drivers/scsi/pm8001/pm8001_hwi.c | 4 +-
> drivers/scsi/scsi_debugfs.c | 1 +
> drivers/scsi/scsi_pm.c | 2 +-
> drivers/scsi/sr.c | 2 +-
> drivers/scsi/sr_vendor.c | 4 +-
> drivers/scsi/ufs/tc-dwc-g210-pci.c | 1 -
> drivers/scsi/ufs/ufshcd-pci.c | 2 -
> drivers/scsi/ufs/ufshcd-pltfrm.c | 2 -
> drivers/scsi/ufs/ufshcd.c | 7 +
> drivers/soc/mediatek/mtk-scpsys.c | 15 +-
> drivers/soc/qcom/cpr.c | 2 +-
> drivers/soc/ti/pruss.c | 2 +-
> drivers/spi/spi-meson-spifc.c | 1 +
> drivers/spi/spi-uniphier.c | 11 +-
> drivers/staging/greybus/audio_topology.c | 15 +
> drivers/staging/media/atomisp/i2c/ov2680.h | 24 -
> drivers/staging/media/atomisp/pci/atomisp_cmd.c | 92 +-
> drivers/staging/media/atomisp/pci/atomisp_fops.c | 11 +
> .../media/atomisp/pci/atomisp_gmin_platform.c | 2 +-
> drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 185 +++-
> drivers/staging/media/atomisp/pci/atomisp_subdev.c | 15 +-
> drivers/staging/media/atomisp/pci/atomisp_subdev.h | 3 +
> drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 13 +-
> drivers/staging/media/atomisp/pci/atomisp_v4l2.h | 3 +-
> drivers/staging/media/atomisp/pci/sh_css.c | 27 +-
> drivers/staging/media/atomisp/pci/sh_css_mipi.c | 41 +-
> drivers/staging/media/atomisp/pci/sh_css_params.c | 8 +-
> drivers/staging/media/hantro/hantro_drv.c | 3 +-
> drivers/staging/rtl8192e/rtllib.h | 2 +-
> drivers/staging/rtl8192e/rtllib_module.c | 16 +-
> drivers/staging/rtl8192e/rtllib_softmac.c | 6 +-
> drivers/tee/tee_core.c | 4 +-
> drivers/thermal/imx8mm_thermal.c | 3 +
> drivers/thermal/imx_thermal.c | 145 ++--
> drivers/thunderbolt/acpi.c | 13 +
> drivers/tty/serial/amba-pl010.c | 3 -
> drivers/tty/serial/amba-pl011.c | 27 +-
> drivers/tty/serial/atmel_serial.c | 14 +
> drivers/tty/serial/imx.c | 7 +-
> drivers/tty/serial/serial_core.c | 7 +-
> drivers/tty/serial/uartlite.c | 2 +-
> drivers/usb/core/hub.c | 5 +-
> drivers/usb/dwc3/dwc3-qcom.c | 7 +-
> drivers/usb/gadget/function/f_fs.c | 4 +-
> drivers/usb/host/uhci-platform.c | 3 +-
> drivers/usb/misc/ftdi-elan.c | 1 +
> drivers/vdpa/mlx5/net/mlx5_vnet.c | 2 -
> drivers/video/backlight/qcom-wled.c | 122 +--
> drivers/virtio/virtio_ring.c | 4 +-
> drivers/w1/slaves/w1_ds28e04.c | 26 +-
> drivers/xen/gntdev.c | 6 +-
> fs/btrfs/backref.c | 21 +-
> fs/btrfs/ctree.c | 19 +-
> fs/btrfs/inode.c | 11 +
> fs/btrfs/qgroup.c | 19 +
> fs/debugfs/file.c | 2 +-
> fs/dlm/lock.c | 9 +
> fs/dlm/lowcomms.c | 45 +-
> fs/ext4/ext4.h | 1 +
> fs/ext4/ext4_jbd2.c | 2 +
> fs/ext4/extents.c | 2 -
> fs/ext4/fast_commit.c | 18 +-
> fs/ext4/inode.c | 14 +-
> fs/ext4/ioctl.c | 2 -
> fs/ext4/mballoc.c | 48 +-
> fs/ext4/migrate.c | 23 +-
> fs/ext4/super.c | 27 +-
> fs/f2fs/compress.c | 50 +-
> fs/f2fs/f2fs.h | 11 +
> fs/f2fs/gc.c | 3 +
> fs/f2fs/segment.h | 3 +-
> fs/f2fs/super.c | 44 +
> fs/f2fs/sysfs.c | 4 +-
> fs/fuse/file.c | 2 +-
> fs/jffs2/file.c | 40 +-
> fs/ubifs/super.c | 1 -
> fs/udf/ialloc.c | 2 +
> include/acpi/acpi_bus.h | 5 +-
> include/acpi/actypes.h | 10 +-
> include/linux/blk-pm.h | 2 +-
> include/linux/bpf_verifier.h | 7 +
> include/linux/clocksource.h | 3 +
> include/linux/hid.h | 2 +
> include/linux/mmzone.h | 9 +
> include/linux/pm_runtime.h | 3 +
> include/net/inet_frag.h | 11 +-
> include/net/ipv6_frag.h | 3 +-
> include/net/sch_generic.h | 5 +
> include/net/xfrm.h | 5 +
> include/trace/events/cgroup.h | 12 +-
> include/uapi/linux/xfrm.h | 1 +
> kernel/audit.c | 18 +-
> kernel/bpf/btf.c | 3 +-
> kernel/bpf/verifier.c | 18 +-
> kernel/dma/pool.c | 4 +-
> kernel/rcu/tree_exp.h | 1 +
> kernel/sched/cputime.c | 4 +-
> kernel/sched/fair.c | 4 +-
> kernel/sched/rt.c | 23 +-
> kernel/time/clocksource.c | 96 ++-
> kernel/time/jiffies.c | 15 +-
> kernel/trace/bpf_trace.c | 6 +-
> kernel/trace/trace_kprobe.c | 5 +-
> kernel/tsacct.c | 7 +-
> lib/mpi/mpi-mod.c | 2 +
> lib/test_hmm.c | 24 +
> lib/test_meminit.c | 1 +
> mm/hmm.c | 5 +-
> mm/page_alloc.c | 19 +-
> mm/shmem.c | 37 +-
> net/ax25/af_ax25.c | 10 +-
> net/batman-adv/netlink.c | 30 +-
> net/bluetooth/cmtp/core.c | 4 +-
> net/bluetooth/hci_core.c | 1 +
> net/bluetooth/hci_event.c | 8 +-
> net/bluetooth/hci_request.c | 2 +-
> net/bluetooth/l2cap_sock.c | 45 +-
> net/bridge/br_netfilter_hooks.c | 7 +-
> net/core/dev.c | 6 +
> net/core/devlink.c | 2 -
> net/core/filter.c | 8 +-
> net/core/net-sysfs.c | 3 +
> net/core/net_namespace.c | 4 +-
> net/ipv4/fib_semantics.c | 47 +-
> net/ipv4/inet_fragment.c | 8 +-
> net/ipv4/ip_fragment.c | 3 +-
> net/ipv4/ip_gre.c | 5 +-
> net/ipv4/netfilter/ipt_CLUSTERIP.c | 5 +-
> net/ipv6/ip6_gre.c | 5 +-
> net/mac80211/rx.c | 2 +-
> net/netfilter/nft_set_pipapo.c | 8 +
> net/netrom/af_netrom.c | 12 +-
> net/nfc/llcp_sock.c | 5 +
> net/sched/sch_generic.c | 1 +
> net/smc/smc_core.c | 17 +-
> net/unix/garbage.c | 14 +-
> net/unix/scm.c | 6 +-
> net/xfrm/xfrm_compat.c | 6 +-
> net/xfrm/xfrm_interface.c | 14 +-
> net/xfrm/xfrm_policy.c | 24 +-
> net/xfrm/xfrm_state.c | 23 +-
> net/xfrm/xfrm_user.c | 41 +-
> scripts/dtc/dtx_diff | 8 +-
> scripts/sphinx-pre-install | 4 +
> security/selinux/hooks.c | 12 +-
> sound/core/jack.c | 3 +
> sound/core/oss/pcm_oss.c | 2 +-
> sound/core/pcm.c | 6 +-
> sound/core/seq/seq_queue.c | 14 +-
> sound/pci/hda/hda_codec.c | 3 +
> sound/soc/codecs/rt5663.c | 12 +-
> sound/soc/fsl/fsl_asrc.c | 69 +-
> sound/soc/fsl/fsl_mqs.c | 2 +-
> sound/soc/intel/catpt/dsp.c | 14 +-
> sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +
> sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 +
> sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 +
> sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 +
> sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 6 +-
> .../mt8183/mt8183-mt6358-ts3a227-max98357.c | 7 +-
> sound/soc/samsung/idma.c | 2 +
> sound/soc/uniphier/Kconfig | 2 -
> sound/usb/format.c | 2 +-
> sound/usb/mixer_quirks.c | 2 +-
> sound/usb/quirks.c | 2 +-
> tools/bpf/bpftool/Documentation/Makefile | 1 -
> tools/bpf/bpftool/Makefile | 1 -
> tools/bpf/bpftool/main.c | 2 +
> tools/include/nolibc/nolibc.h | 33 +-
> tools/perf/util/debug.c | 2 +-
> tools/perf/util/evsel.c | 25 +-
> tools/perf/util/probe-event.c | 3 +
> tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 2 +
> tools/testing/selftests/clone3/clone3.c | 6 +
> .../selftests/ftrace/test.d/kprobe/profile.tc | 2 +-
> tools/testing/selftests/kselftest_harness.h | 2 +-
> .../selftests/powerpc/security/spectre_v2.c | 2 +-
> tools/testing/selftests/vm/hmm-tests.c | 42 +
> 539 files changed, 5553 insertions(+), 3320 deletions(-)
--
- Allen
^ permalink raw reply [relevance 0%]
* [PATCH 5.16 0000/1033] 5.16.3-rc2 review
@ 2022-01-25 16:33 1% Greg Kroah-Hartman
0 siblings, 0 replies; 200+ results
From: Greg Kroah-Hartman @ 2022-01-25 16:33 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable
This is the start of the stable review cycle for the 5.16.3 release.
There are 1033 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Thu, 27 Jan 2022 15:52:30 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.16.3-rc2.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.16.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Linux 5.16.3-rc2
Mauro Carvalho Chehab <mchehab@kernel.org>
scripts: sphinx-pre-install: Fix ctex support on Debian
Mauro Carvalho Chehab <mchehab@kernel.org>
scripts: sphinx-pre-install: add required ctex dependency
Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
ASoC: SOF: handle paused streams during system suspend
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
ASoC: SOF: sof-audio: setup sched widgets during pipeline complete step
Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
ASoC: SOF: free widgets in sof_tear_down_pipelines() for static pipelines
Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
ASoC: SOF: topology: remove sof_load_pipeline_ipc()
Vitaly Kuznetsov <vkuznets@redhat.com>
KVM: selftests: Test KVM_SET_CPUID2 after KVM_RUN
Vitaly Kuznetsov <vkuznets@redhat.com>
KVM: selftests: Rename 'get_cpuid_test' to 'cpuid_test'
Vitaly Kuznetsov <vkuznets@redhat.com>
KVM: x86: Partially allow KVM_SET_CPUID{,2} after KVM_RUN
Vitaly Kuznetsov <vkuznets@redhat.com>
KVM: x86: Do runtime CPUID update before updating vcpu->arch.cpuid_entries
Andrey Konovalov <andreyknvl@gmail.com>
lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
Moshe Tal <moshet@nvidia.com>
bonding: Fix extraction of ports from the packet headers
Alistair Popple <apopple@nvidia.com>
mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
Miaoqian Lin <linmq006@gmail.com>
lib82596: Fix IRQ check in sni_82596_probe
Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
scripts/dtc: dtx_diff: remove broken example from help text
Maxim Mikityanskiy <maximmi@nvidia.com>
sch_api: Don't skip qdisc attach on ingress
Sam Protsenko <semen.protsenko@linaro.org>
dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
Alexander Stein <alexander.stein@mailbox.org>
dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
Alexander Stein <alexander.stein@mailbox.org>
dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
Tom Rix <trix@redhat.com>
net: mscc: ocelot: fix using match before it is set
Claudiu Beznea <claudiu.beznea@microchip.com>
net: phy: micrel: use kszphy_suspend()/kszphy_resume for irq aware devices
Ard Biesheuvel <ardb@kernel.org>
net: cpsw: avoid alignment faults by taking NET_IP_ALIGN into account
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: sfp: fix high power modules without diagnostic monitoring
Horatiu Vultur <horatiu.vultur@microchip.com>
net: ocelot: Fix the call to switchdev_bridge_port_offload
Tom Rix <trix@redhat.com>
net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
Slark Xiao <slark_xiao@163.com>
net: wwan: Fix MRU mismatch issue which may lead to data connection lost
Vladimir Oltean <vladimir.oltean@nxp.com>
net: mscc: ocelot: don't dereference NULL pointers with shared tc filters
Sergey Shtylyov <s.shtylyov@omp.ru>
bcmgenet: add WOL IRQ check
Vladimir Oltean <vladimir.oltean@nxp.com>
net: mscc: ocelot: don't let phylink re-enable TX PAUSE on the NPI port
Kevin Bracey <kevin@bracey.fi>
net_sched: restore "mpu xxx" handling
Alex Elder <elder@linaro.org>
net: ipa: fix atomic update in ipa_endpoint_replenish()
Jie Wang <wangjie125@huawei.com>
net: bonding: fix bond_xmit_broadcast return value error bug
Miroslav Lichvar <mlichvar@redhat.com>
net: fix sock_timestamping_bind_phc() to release device
David Heidelberg <david@ixit.cz>
arm64: dts: qcom: msm8996: drop not documented adreno properties
Leon Romanovsky <leon@kernel.org>
devlink: Remove misleading internal_flags from health reporter dump
Ian Rogers <irogers@google.com>
perf metric: Fix metric_leader
Zechuan Chen <chenzechuan1@huawei.com>
perf probe: Fix ppc64 'perf probe add events failed' case
Ian Rogers <irogers@google.com>
perf test: Enable system wide for metricgroups test
José Expósito <jose.exposito89@gmail.com>
perf metricgroup: Fix use after free in metric__new()
Uwe Kleine-König <uwe@kleine-koenig.org>
perf tools: Drop requirement for libstdc++.so for libopencsd check
Thomas Richter <tmricht@linux.ibm.com>
perf cputopo: Fix CPU topology reading on s/390
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix lld view setting
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix concurrency over xfers_list
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Print debug message after realeasing the lock
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Don't start transactions at tx_submit level
Adrian Hunter <adrian.hunter@intel.com>
perf script: Fix hex dump character output
Guillaume Nault <gnault@redhat.com>
libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
Guillaume Nault <gnault@redhat.com>
gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
Eli Cohen <elic@nvidia.com>
vdpa/mlx5: Restore cur_num_vqs in case of failure in change_num_qps()
Eli Cohen <elic@nvidia.com>
vdpa/mlx5: Fix config_attr_mask assignment
Guillaume Nault <gnault@redhat.com>
xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
Johannes Berg <johannes.berg@intel.com>
iwlwifi: fix Bz NMI behaviour
Eric Dumazet <edumazet@google.com>
netns: add schedule point in ops_exit_list()
Eric Dumazet <edumazet@google.com>
inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
Eric W. Biederman <ebiederm@xmission.com>
taskstats: Cleanup the use of task->exit_code
Michael S. Tsirkin <mst@redhat.com>
virtio_ring: mark ring unused on error
Eli Cohen <elic@nvidia.com>
vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
Laurence de Bruxelles <lfdebrux@gmail.com>
rtc: pxa: fix null pointer dereference
Kees Cook <keescook@chromium.org>
rtc: Move variable into switch case statement
Matt Johnston <matt@codeconstruct.com.au>
mctp: test: zero out sockaddr
Dmitry Torokhov <dmitry.torokhov@gmail.com>
HID: vivaldi: fix handling devices not using numbered reports
Johannes Berg <johannes.berg@intel.com>
um: gitignore: Add kernel/capflags.c
Yury Norov <yury.norov@gmail.com>
bitops: protect find_first_{,zero}_bit properly
Robert Hancock <robert.hancock@calian.com>
net: axienet: increase default TX ring size to 128
Robert Hancock <robert.hancock@calian.com>
net: axienet: fix for TX busy handling
Robert Hancock <robert.hancock@calian.com>
net: axienet: fix number of TX ring slots for available check
Robert Hancock <robert.hancock@calian.com>
net: axienet: Fix TX ring slot available check
Robert Hancock <robert.hancock@calian.com>
net: axienet: limit minimum TX ring size
Robert Hancock <robert.hancock@calian.com>
net: axienet: add missing memory barriers
Robert Hancock <robert.hancock@calian.com>
net: axienet: reset core on initialization prior to MDIO access
Robert Hancock <robert.hancock@calian.com>
net: axienet: Wait for PhyRstCmplt after core reset
Robert Hancock <robert.hancock@calian.com>
net: axienet: increase reset timeout
Wen Gu <guwen@linux.alibaba.com>
net/smc: Fix hung_task when removing SMC-R devices
Miaoqian Lin <linmq006@gmail.com>
gpio: idt3243x: Fix IRQ check in idt_gpio_probe
Miaoqian Lin <linmq006@gmail.com>
gpio: mpc8xxx: Fix IRQ check in mpc8xxx_probe
John Keeping <john@metanate.com>
pinctrl/rockchip: fix gpio device creation
Robert Hancock <robert.hancock@calian.com>
clk: si5341: Fix clock HW provider cleanup
Stephen Boyd <sboyd@kernel.org>
clk: Emit a stern warning with writable debugfs enabled
Eric Dumazet <edumazet@google.com>
af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
Dan Carpenter <dan.carpenter@oracle.com>
crypto: octeontx2 - uninitialized variable in kvf_limits_store()
Chao Yu <chao@kernel.org>
f2fs: fix to check available space of CP area correctly in update_ckpt_flags()
Chao Yu <chao@kernel.org>
f2fs: fix to reserve space for IO align feature
Hyeong-Jun Kim <hj514.kim@samsung.com>
f2fs: compress: fix potential deadlock of compress file
Chao Yu <chao@kernel.org>
f2fs: fix to avoid panic in is_alive() if metadata is inconsistent
Fengnan Chang <changfengnan@vivo.com>
f2fs: fix remove page failed in invalidate compress pages
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Remove unused compile options
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Remove explicit transparent hugepages support
Geert Uytterhoeven <geert@linux-m68k.org>
riscv: dts: microchip: mpfs: Drop empty chosen node
Palmer Dabbelt <palmer@rivosinc.com>
RISC-V: defconfigs: Set CONFIG_FB=y, for FB console
Miaoqian Lin <linmq006@gmail.com>
parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
Tobias Waldekranz <tobias@waldekranz.com>
net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
Tobias Waldekranz <tobias@waldekranz.com>
net/fsl: xgmac_mdio: Add workaround for erratum A-009885
Guillaume Nault <gnault@redhat.com>
mlx5: Don't accidentally set RTO_ONLINK before mlx5e_route_lookup_ipv4_get()
Eric Dumazet <edumazet@google.com>
ipv4: avoid quadratic behavior in netns dismantle
Eric Dumazet <edumazet@google.com>
ipv4: update fib_info_cnt under spinlock protection
German Gomez <german.gomez@arm.com>
perf evsel: Override attr->sample_period for non-libpfm4 events
Daniel Borkmann <daniel@iogearbox.net>
bpf: Mark PTR_TO_FUNC register initially with zero offset
Yafang Shao <laoar.shao@gmail.com>
bpf: Fix mount source show for bpffs
Toke Høiland-Jørgensen <toke@redhat.com>
xdp: check prog type before updating BPF link
Quentin Monnet <quentin@isovalent.com>
bpftool: Fix indent in option lists in the documentation
Quentin Monnet <quentin@isovalent.com>
bpftool: Remove inclusion of utilities.mak from Makefiles
Andrii Nakryiko <andrii@kernel.org>
libbpf: Remove deprecation attribute from struct bpf_prog_prep_result
Maxime Ripard <maxime@cerno.tech>
drm/vc4: crtc: Copy assigned channel to the CRTC
Maxime Ripard <maxime@cerno.tech>
drm/vc4: Fix non-blocking commit getting stuck forever
Maxime Ripard <maxime@cerno.tech>
drm/vc4: crtc: Drop feed_txp from state
Ye Bin <yebin10@huawei.com>
block: Fix fsync always failed if once failed
Jens Axboe <axboe@kernel.dk>
block: fix async_depth sysfs interface for mq-deadline
Tobias Waldekranz <tobias@waldekranz.com>
powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
Anders Roxell <anders.roxell@linaro.org>
powerpc/cell: Fix clang -Wimplicit-fallthrough warning
Moshe Shemesh <moshe@nvidia.com>
Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
Amelie Delaunay <amelie.delaunay@foss.st.com>
dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
Chengguang Xu <cgxu519@mykernel.net>
RDMA/rxe: Fix a typo in opcode name
Yixing Liu <liuyixing1@huawei.com>
RDMA/hns: Modify the mapping attribute of doorbell to device
Dave Jiang <dave.jiang@intel.com>
dmaengine: idxd: fix wq settings post wq disable
Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
dmaengine: uniphier-xdmac: Fix type of address variables
Miaoqian Lin <linmq006@gmail.com>
scsi: ufs: ufs-mediatek: Fix error checking in ufs_mtk_init_va09_pwr_ctrl()
Baruch Siach <baruch@tkos.co.il>
of: base: Improve argument length mismatch error
Bart Van Assche <bvanassche@acm.org>
scsi: core: Show SCMD_LAST in text form
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: hci_sync: Fix not setting adv set duration
Markus Reichl <m.reichl@fivetechno.de>
net: usb: Correct reset handling of smsc95xx
Mark Chen <mark-yw.chen@mediatek.com>
Bluetooth: btusb: Return error code when getting patch status failed
Randy Dunlap <rdunlap@infradead.org>
Documentation: fix firewire.rst ABI file path error
Lukas Bulwahn <lukas.bulwahn@gmail.com>
Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization
Alexandre Ghiti <alexandre.ghiti@canonical.com>
Documentation, arch: Remove leftovers from CIFS_WEAK_PW_HASH
Alexandre Ghiti <alexandre.ghiti@canonical.com>
Documentation, arch: Remove leftovers from raw device
Sakari Ailus <sakari.ailus@linux.intel.com>
Documentation: ACPI: Fix data node reference documentation
Daniel Thompson <daniel.thompson@linaro.org>
Documentation: dmaengine: Correctly describe dmatest with channel unset
Mike Leach <mike.leach@linaro.org>
Documentation: coresight: Fix documentation issue
Randy Dunlap <rdunlap@infradead.org>
media: correct MEDIA_TEST_SUPPORT help text
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Make sure the device is powered with CEC
Suresh Udipi <sudipi@jp.adit-jv.com>
media: rcar-csi2: Optimize the selection PHTW register
Marc Kleine-Budde <mkl@pengutronix.de>
can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
Ben Hutchings <ben@decadent.org.uk>
firmware: Update Kconfig help text for Google firmware
Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
drm/amdgpu/display: Only set vblank_disable_immediate when PSR is not enabled
Christian König <christian.koenig@amd.com>
drm/radeon: fix error handling in radeon_driver_open_kms
Theodore Ts'o <tytso@mit.edu>
ext4: don't use the orphan list when migrating an inode
Zhang Yi <yi.zhang@huawei.com>
ext4: fix an use-after-free issue about data=journal writeback mode
Ye Bin <yebin10@huawei.com>
ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
Sebastian Andrzej Siewior <bigeasy@linutronix.de>
ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
Xin Yin <yinxin.x@bytedance.com>
ext4: fast commit may miss tracking unwritten range during ftruncate
Xin Yin <yinxin.x@bytedance.com>
ext4: use ext4_ext_remove_space() for fast commit replay delete range
Ye Bin <yebin10@huawei.com>
ext4: Fix BUG_ON in ext4_bread when write quota data
Luís Henriques <lhenriques@suse.de>
ext4: set csum seed in tmp inode while migrating to extents
Xin Yin <yinxin.x@bytedance.com>
ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
Harshad Shirwadkar <harshadshirwadkar@gmail.com>
ext4: initialize err_blk before calling __ext4_get_inode_loc
Chunguang Xu <brookxu@tencent.com>
ext4: fix a possible ABBA deadlock due to busy PA
Jan Kara <jack@suse.cz>
ext4: make sure quota gets properly shutdown on error
Jan Kara <jack@suse.cz>
ext4: make sure to reset inode lockdep class when quota enabling fails
Filipe Manana <fdmanana@suse.com>
btrfs: respect the max size in the header when activating swap file
Naohiro Aota <naohiro.aota@wdc.com>
btrfs: zoned: fix chunk allocation condition for zoned allocator
Naohiro Aota <naohiro.aota@wdc.com>
btrfs: zoned: unset dedicated block group on allocation failure
Naohiro Aota <naohiro.aota@wdc.com>
btrfs: add extent allocator hook to decide to allocate chunk or not
Josef Bacik <josef@toxicpanda.com>
btrfs: check the root node for uptodate before returning it
Naohiro Aota <naohiro.aota@wdc.com>
btrfs: zoned: cache reported zone during mount
Filipe Manana <fdmanana@suse.com>
btrfs: fix deadlock between quota enable and other quota operations
Nicolas Dichtel <nicolas.dichtel@6wind.com>
xfrm: fix dflt policy check when there is no policy configured
Ghalem Boudour <ghalem.boudour@6wind.com>
xfrm: fix policy lookup for ipv6 gre packets
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Correctly set PCIe capabilities
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Fix definitions of reserved bits
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
Hans de Goede <hdegoede@redhat.com>
PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
Rob Herring <robh@kernel.org>
PCI: xgene: Fix IB window setup
José Roberto de Souza <jose.souza@intel.com>
drm/i915/display/ehl: Update voltage swing table
Mario Limonciello <mario.limonciello@amd.com>
drm/amd/display: Revert W/A for hard hangs on DCN20/DCN21
Alex Deucher <alexander.deucher@amd.com>
drm/amdgpu: don't do resets on APUs which don't support it
Lukas Fink <lukas.fink1@gmail.com>
drm/amdgpu: Fix rejecting Tahiti GPUs
Harry Wentland <harry.wentland@amd.com>
drm/amdgpu: Use correct VIEWPORT_DIMENSION for DCN2
James Smart <jsmart2021@gmail.com>
scsi: lpfc: Fix lpfc_force_rscn ndlp kref imbalance
Nicholas Piggin <npiggin@gmail.com>
powerpc/64s/radix: Fix huge vmap false positive
John David Anglin <dave.anglin@bell.net>
parisc: Fix lpa and lpa_user defines
Brian Norris <briannorris@chromium.org>
drm/bridge: analogix_dp: Make PSR-exit block less
Ilia Mirkin <imirkin@alum.mit.edu>
drm/nouveau/kms/nv04: use vzalloc for nv04_display
Yizhuo Zhai <yzhai003@ucr.edu>
drm/amd/display: Fix the uninitialized variable in enable_stream_features()
Lucas Stach <l.stach@pengutronix.de>
drm/etnaviv: limit submit sizes
Dmitry Osipenko <digetx@gmail.com>
drm/tegra: submit: Add missing pm_runtime_mark_last_busy()
Sakari Ailus <sakari.ailus@linux.intel.com>
device property: Fix fwnode_graph_devcon_match() fwnode leak
Alexander Gordeev <agordeev@linux.ibm.com>
s390/mm: fix 2KB pgtable release race
Ilan Peer <ilan.peer@intel.com>
iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
remoteproc: imx_rproc: Fix a resource leak in the remove function
Steven Rostedt <rostedt@goodmis.org>
tracing: Have syscall trace events use trace_event_buffer_lock_reserve()
Xiangyang Zhang <xyz.sun.ok@gmail.com>
tracing/kprobes: 'nmissed' not showed correctly for kretprobe
Nikita Yushchenko <nikita.yushchenko@virtuozzo.com>
tracing/osnoise: Properly unhook events if start_per_cpu_kthreads() fails
Andrey Ryabinin <arbn@yandex-team.com>
sched/cpuacct: Fix user/system in shown cpuacct.usage*
Andrey Ryabinin <arbn@yandex-team.com>
cputime, cpuacct: Include guest time in user time in cpuacct.stat
Lukas Wunner <lukas@wunner.de>
serial: Fix incorrect rs485 polarity on uart open
Xie Yongji <xieyongji@bytedance.com>
fuse: Pass correct lend value to filemap_write_and_wait_range()
Borislav Petkov <bp@suse.de>
x86/mce: Check regs before accessing it
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
HID: magicmouse: Fix an error handling path in magicmouse_probe()
Xiao Ni <xni@redhat.com>
md: Move alloc/free acct bioset in to personality
Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
xen/gntdev: fix unmap notification order
Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
spi: uniphier: Fix a bug that doesn't point to private data correctly
Dmitry Osipenko <digetx@gmail.com>
mfd: tps65910: Set PWR_OFF bit during driver probe
Patrick Williams <patrick@stwcx.xyz>
tpm: fix NPE on probe for missing device
Lino Sanfilippo <LinoSanfilippo@gmx.de>
tpm: fix potential NULL pointer access in tpm_del_char_device
Petr Cvachoucek <cvachoucek@gmail.com>
ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
Meng Li <Meng.Li@windriver.com>
crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
Marek Vasut <marex@denx.de>
crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
Heiner Kallweit <hkallweit1@gmail.com>
crypto: omap-aes - Fix broken pm_runtime_and_get() usage
Zhu Lingshan <lingshan.zhu@intel.com>
ifcvf/vDPA: fix misuse virtio-net device config size for blk dev
Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
rpmsg: core: Clean up resources on announce_create failure.
Sean Christopherson <seanjc@google.com>
hugetlbfs: fix off-by-one error in hugetlb_vmdelete_list()
Chen Wandun <chenwandun@huawei.com>
mm/page_isolation: unset migratetype directly for non Buddy page
Waiman Long <longman@redhat.com>
selftests/vm: make charge_reserved_hugetlb.sh work with existing cgroup setting
Andrey Konovalov <andreyknvl@gmail.com>
kasan: fix quarantine conflicting with init_on_free
Kefeng Wang <wangkefeng.wang@huawei.com>
mm: defer kmemleak object creation of module_alloc()
Xiaoke Wang <xkernel.wang@foxmail.com>
tracing/probes: check the return value of kstrndup() for pbuf
Xiaoke Wang <xkernel.wang@foxmail.com>
tracing/uprobes: Check the return value of kstrdup() for tu->filename
Weizhao Ouyang <o451686892@gmail.com>
dma-buf: cma_heap: Fix mutex locking section
Tom Rix <trix@redhat.com>
i3c: master: dw: check return of dw_i3c_master_get_free_pos()
Sergio Paracuellos <sergio.paracuellos@gmail.com>
PCI: mt7621: Add missing MODULE_LICENSE()
Guchun Chen <guchun.chen@amd.com>
drm/amdgpu: use spin_lock_irqsave to avoid deadlock by local interrupt
Jiasheng Jiang <jiasheng@iscas.ac.cn>
drm/amdkfd: Check for null pointer after calling kmemdup
José Expósito <jose.exposito89@gmail.com>
drm/amd/display: invalid parameter check in dmub_hpd_callback
Wesley Sheng <wesley.sheng@microchip.com>
ntb_hw_switchtec: Fix bug with more than 32 partitions
Jeremy Pallotta <jmpallotta@gmail.com>
ntb_hw_switchtec: Fix pff ioread to read into mmio_part_cfg_all
Liu Ying <victor.liu@nxp.com>
drm/atomic: Check new_crtc_state->active to determine if CRTC needs disable in self refresh mode
Miaoqian Lin <linmq006@gmail.com>
drm/sun4i: dw-hdmi: Fix missing put_device() call in sun8i_hdmi_phy_get
Chuck Lever <chuck.lever@oracle.com>
SUNRPC: Fix sockaddr handling in svcsock_accept_class trace points
Chuck Lever <chuck.lever@oracle.com>
SUNRPC: Fix sockaddr handling in the svc_xprt_create_error trace point
Matthew Auld <matthew.auld@intel.com>
drm/i915: don't call free_mmap_offset when purging
Juston Li <juston.li@intel.com>
drm/i915/pxp: Hold RPM wakelock during PXP unbind
Vitaly Kuznetsov <vkuznets@redhat.com>
x86/hyperv: Properly deal with empty cpumasks in hyperv_flush_tlb_multi()
J. Bruce Fields <bfields@redhat.com>
nfsd: fix crash on COPY_NOTIFY with special stateid
Chuck Lever <chuck.lever@oracle.com>
Revert "nfsd: skip some unnecessary stats in the v4 case"
Chuck Lever <chuck.lever@oracle.com>
NFSD: Fix verifier returned in stable WRITEs
Vincent Chen <vincent.chen@sifive.com>
KVM: RISC-V: Avoid spurious virtual interrupts after clearing hideleg CSR
Pali Rohár <pali@kernel.org>
PCI: mvebu: Fix support for DEVCAP2, DEVCTL2 and LNKCTL2 registers on emulated bridge
Pali Rohár <pali@kernel.org>
PCI: mvebu: Fix support for PCI_EXP_RTSTA on emulated bridge
Pali Rohár <pali@kernel.org>
PCI: mvebu: Fix support for PCI_EXP_DEVCTL on emulated bridge
Pali Rohár <pali@kernel.org>
PCI: mvebu: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge
Pali Rohár <pali@kernel.org>
PCI: mvebu: Setup PCIe controller to Root Complex mode
Pali Rohár <pali@kernel.org>
PCI: mvebu: Fix configuring secondary bus of PCIe Root Port via emulated bridge
Pali Rohár <pali@kernel.org>
PCI: mvebu: Fix support for bus mastering and PCI_COMMAND on emulated bridge
Pali Rohár <pali@kernel.org>
PCI: mvebu: Do not modify PCI IO type bits in conf_write
Pali Rohár <pali@kernel.org>
PCI: mvebu: Check for errors from pci_bridge_emul_init() call
Dario Binacchi <dariobin@libero.it>
Input: ti_am335x_tsc - fix STEPCONFIG setup for Z2
Dario Binacchi <dariobin@libero.it>
Input: ti_am335x_tsc - set ADCREFM for X configuration
Beau Belgrave <beaub@linux.microsoft.com>
tracing: Do not let synth_events block other dyn_event systems during create
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
i3c/master/mipi-i3c-hci: Fix a potentially infinite loop in 'hci_dat_v1_get_index()'
Jamie Iles <quic_jiles@quicinc.com>
i3c: fix incorrect address slot lookup on 64-bit
Hou Wenlong <houwenlong93@linux.alibaba.com>
KVM: x86: Exit to userspace if emulation prepared a completion callback
Sean Christopherson <seanjc@google.com>
KVM: x86: Handle 32-bit wrap of EIP for EMULTYPE_SKIP with flat code seg
Lai Jiangshan <laijs@linux.alibaba.com>
KVM: X86: Ensure that dirty PDPTRs are loaded
Sean Christopherson <seanjc@google.com>
KVM: VMX: Read Posted Interrupt "control" exactly once per loop iteration
Sean Christopherson <seanjc@google.com>
KVM: s390: Ensure kvm_arch_no_poll() is read once when blocking vCPU
Paolo Bonzini <pbonzini@redhat.com>
KVM: VMX: Don't unblock vCPU w/ Posted IRQ if IRQs are disabled in guest
Hector Martin <marcan@marcan.st>
PCI: apple: Fix REFCLK1 enable/poll logic
Pali Rohár <pali@kernel.org>
PCI: aardvark: Fix checking for MEM resource type
Tim Harvey <tharvey@gateworks.com>
PCI: dwc: Do not remap invalid res
Marek Vasut <marek.vasut+renesas@gmail.com>
PCI: rcar: Check if device is runtime suspended instead of __clk_is_enabled()
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
PCI: qcom: Fix an error handling path in 'qcom_pcie_probe()'
Jianjun Wang <jianjun.wang@mediatek.com>
PCI: mediatek-gen3: Disable DVFSRC voltage request
Eric W. Biederman <ebiederm@xmission.com>
signal: In get_signal test for signal_group_exit every time through the loop
Conor Dooley <conor.dooley@microchip.com>
mailbox: change mailbox-mpfs compatible string
Miaoqian Lin <linmq006@gmail.com>
phy: mediatek: Fix missing check in mtk_mipi_tx_probe
Ohad Sharabi <osharabi@habana.ai>
habanalabs: skip read fw errors if dynamic descriptor invalid
Dani Liberman <dliberman@habana.ai>
habanalabs: change wait for interrupt timeout to 64 bit
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8183: fix device_node leak
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8173: fix device_node leak
Chunfeng Yun <chunfeng.yun@mediatek.com>
phy: phy-mtk-tphy: add support efuse setting
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8192-mt6359: fix device_node leak
Sreekanth Reddy <sreekanth.reddy@broadcom.com>
scsi: mpi3mr: Fixes around reply request queues
Christoph Hellwig <hch@lst.de>
scsi: sr: Don't use GFP_DMA
Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
MIPS: Octeon: Fix build errors using clang
Michael Ellerman <mpe@ellerman.id.au>
selftests/powerpc: Add a test of sigreturning to the kernel
Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>
ASoC: SOF: ipc: Add null pointer check for substream->runtime
Qi Liu <liuqi115@huawei.com>
scsi: hisi_sas: Prevent parallel FLR and controller reset
Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
Marc Zyngier <maz@kernel.org>
irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
Ye Guojin <ye.guojin@zte.com.cn>
MIPS: OCTEON: add put_device() after of_find_device_by_node()
Jan Kara <jack@suse.cz>
udf: Fix error handling in udf_new_inode()
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
ASoC: SOF: Intel: hda: add quirks for HDAudio DMA position information
Hari Bathini <hbathini@linux.ibm.com>
powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
Hari Bathini <hbathini@linux.ibm.com>
powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/40x: Map 32Mbytes of memory at startup
Nathan Chancellor <nathan@kernel.org>
MIPS: Loongson64: Use three arguments for slti
Takashi Iwai <tiwai@suse.de>
ALSA: seq: Set upper limit of processed events
James Smart <jsmart2021@gmail.com>
scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
James Smart <jsmart2021@gmail.com>
scsi: lpfc: Fix leaked lpfc_dmabuf mbox allocations with NPIV
Bart Van Assche <bvanassche@acm.org>
scsi: ufs: Fix a kernel crash during shutdown
Stephan Gerhold <stephan@gerhold.net>
interconnect: qcom: rpm: Prevent integer overflow in rate
Ameer Hamza <amhamza.mgc@gmail.com>
ASoC: test-component: fix null pointer dereference.
Christoph Hellwig <hch@lst.de>
dm: make the DAX support depend on CONFIG_FS_DAX
Christoph Hellwig <hch@lst.de>
dm: fix alloc_dax error handling in alloc_dev
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
nvmem: core: set size for sysfs bin file
Christophe Leroy <christophe.leroy@csgroup.eu>
w1: Misuse of get_user()/put_user() reported by sparse
Alexey Kardashevskiy <aik@ozlabs.ru>
KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
Alexey Kardashevskiy <aik@ozlabs.ru>
KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/powermac: Add missing lockdep_register_key()
Martin Blumenstingl <martin.blumenstingl@googlemail.com>
clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
Joakim Tjernlund <joakim.tjernlund@infinera.com>
i2c: mpc: Correct I2C reset procedure
Michael Ellerman <mpe@ellerman.id.au>
powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
Heiner Kallweit <hkallweit1@gmail.com>
i2c: i801: Don't silently correct invalid transfer size
Ye Guojin <ye.guojin@zte.com.cn>
ASoC: imx-hdmi: add put_device() after of_find_device_by_node()
Nicholas Piggin <npiggin@gmail.com>
powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/btext: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/cell: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/powernv: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/6xx: add missing of_node_put
Sam Protsenko <semen.protsenko@linaro.org>
clk: samsung: exynos850: Register clocks early
Ingo Molnar <mingo@kernel.org>
x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
Marc Kleine-Budde <mkl@pengutronix.de>
can: flexcan: add more quirks to describe RX path capabilities
Marc Kleine-Budde <mkl@pengutronix.de>
can: flexcan: rename RX modes
Dario Binacchi <dario.binacchi@amarulasolutions.com>
can: flexcan: allow to change quirks at runtime
John David Anglin <dave.anglin@bell.net>
parisc: Avoid calling faulthandler_disabled() twice
Maor Dickman <maord@nvidia.com>
net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager
Maher Sanalla <msanalla@nvidia.com>
net/mlx5: Update log_max_qp value to FW max capability
Jason A. Donenfeld <Jason@zx2c4.com>
random: do not throw away excess input to crng_fast_load
Lukas Wunner <lukas@wunner.de>
serial: core: Keep mctrl register state and cached copy in sync
Lukas Wunner <lukas@wunner.de>
serial: pl011: Drop CR register reset on set_termios
Lukas Wunner <lukas@wunner.de>
serial: pl010: Drop CR register reset on set_termios
Konrad Dybcio <konrad.dybcio@somainline.org>
regulator: qcom_smd: Align probe function with rpmh-regulator
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: gemini: allow any RGMII interface mode
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: phy: marvell: configure RGMII delays for 88E1118
Danielle Ratson <danieller@nvidia.com>
mlxsw: pci: Avoid flow control for EMAD packets
Jiri Olsa <jolsa@redhat.com>
bpf/selftests: Fix namespace mount setup in tc_redirect
Vincent Mailhol <mailhol.vincent@wanadoo.fr>
can: do not increase rx statistics when generating a CAN rx error message frame
Joe Thornber <ejt@redhat.com>
dm space map common: add bounds check to sm_ll_lookup_bitmap()
Joe Thornber <ejt@redhat.com>
dm btree: add a defensive bounds check to insert_at()
Ping-Ke Shih <pkshih@realtek.com>
mac80211: allow non-standard VHT MCS-10/11
Florian Fainelli <f.fainelli@gmail.com>
net: mdio: Demote probed message to debug print
Josef Bacik <josef@toxicpanda.com>
btrfs: remove BUG_ON(!eie) in find_parent_nodes
Josef Bacik <josef@toxicpanda.com>
btrfs: remove BUG_ON() in find_parent_nodes()
Yevgeny Kliteynik <kliteyn@nvidia.com>
net/mlx5: DR, Fix error flow in creating matcher
Mario Limonciello <mario.limonciello@amd.com>
ACPI: CPPC: Check present CPUs for determining _CPC is valid
Thomas Weißschuh <linux@weissschuh.net>
ACPI: battery: Add the ThinkPad "Not Charging" quirk
Marina Nikolic <Marina.Nikolic@amd.com>
amdgpu/pm: Make sysfs pm attributes as read-only for VFs
Hans de Goede <hdegoede@redhat.com>
mfd: intel_soc_pmic: Use CPU-id check instead of _HRV check to differentiate variants
Zongmin Zhou <zhouzongmin@kylinos.cn>
drm/amdgpu: fixup bad vram size on gmc v8
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
mmc: mtk-sd: Use readl_poll_timeout instead of open-coded polling
Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
Sudeep Holla <sudeep.holla@arm.com>
ACPICA: Fix wrong interpretation of PCC address
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPICA: Utilities: Avoid deleting the same object twice in a row
Mark Langsdorf <mlangsdo@redhat.com>
ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
Kyeong Yoo <kyeong.yoo@alliedtelesis.co.nz>
jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
Lucas Stach <l.stach@pengutronix.de>
drm/etnaviv: consider completed fence seqno in hang check
Antony Antony <antony.antony@secunet.com>
xfrm: rate limit SA mapping change message to user space
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
cpufreq: intel_pstate: Update cpuinfo.max_freq on HWP_CAP changes
Tedd Ho-Jeong An <tedd.an@intel.com>
Bluetooth: btintel: Add missing quirks and msft ext for legacy bootloader
Ben Greear <greearb@candelatech.com>
ath11k: Fix napi related hang
Randy Dunlap <rdunlap@infradead.org>
um: registers: Rename function names to avoid conflicts and build problems
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
block: check minor range in device_add_disk()
Hector Martin <marcan@marcan.st>
mmc: sdhci-pci-gli: GL9755: Support for CD/WP inversion on OF platforms
Luca Coelho <luciano.coelho@intel.com>
iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
Avraham Stern <avraham.stern@intel.com>
iwlwifi: mvm: fix AUX ROC removal
Ilan Peer <ilan.peer@intel.com>
iwlwifi: mvm: Fix calculation of frame length
Johannes Berg <johannes.berg@intel.com>
iwlwifi: remove module loading failure message
Johannes Berg <johannes.berg@intel.com>
iwlwifi: fix leaks/bad data after failed firmware load
Luca Coelho <luciano.coelho@intel.com>
iwlwifi: recognize missing PNVM data and then log filename
Changcheng Deng <deng.changcheng@zte.com.cn>
PM: AVS: qcom-cpr: Use div64_ul instead of do_div
Po-Hao Huang <phhuang@realtek.com>
rtw88: 8822c: update rx settings to prevent potential hw deadlock
Zekun Shen <bruceshenzk@gmail.com>
ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet()
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep()
Deren Wu <deren.wu@mediatek.com>
mt76: mt7921: fix network buffer leak by txs missing
Felix Fietkau <nbd@nbd.name>
mt76: mt7615: improve wmm index allocation
Xing Song <xing.song@mediatek.com>
mt76: do not pass the received frame with decryption error
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: connac: fix a theoretical NULL pointer dereference in mt76_connac_get_phy_mode
Ryder Lee <ryder.lee@mediatek.com>
mt76: mt7915: fix SMPS operation fail
Peter Chiu <chui-hao.chiu@mediatek.com>
mt76: mt7615: fix possible deadlock while mt7615_register_ext_phy()
Kai-Heng Feng <kai.heng.feng@canonical.com>
usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
cpufreq: Fix initialization of min and max frequency QoS requests
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
PM: runtime: Add safety net to supplier device release
Yang Shen <shenyang39@huawei.com>
crypto: hisilicon/qm - fix deadlock for remove driver
Weili Qian <qianweili@huawei.com>
crypto: hisilicon/hpre - fix memory leak in hpre_curve25519_src_init()
Peter Gonda <pgonda@google.com>
crypto: ccp - Move SEV_INIT retry for corrupted data
Thierry Reding <treding@nvidia.com>
arm64: tegra: Adjust length of CCPLEX cluster MMIO region
Biwen Li <biwen.li@nxp.com>
arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
Paul Moore <paul@paul-moore.com>
audit: ensure userspace is penalized the same as the kernel when under pressure
Jingwen Chen <Jingwen.Chen2@amd.com>
drm/amd/amdgpu: fix gmc bo pin count leak in SRIOV
Jingwen Chen <Jingwen.Chen2@amd.com>
drm/amd/amdgpu: fix psp tmr bo pin count leak in SRIOV
H. Nikolaus Schaller <hns@goldelico.com>
mmc: omap_hsmmc: Revert special init for wl1251
Ulf Hansson <ulf.hansson@linaro.org>
mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
Biju Das <biju.das.jz@bp.renesas.com>
mmc: tmio: reinit card irqs in reset routine
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()
Mikhail Rudenko <mike.rudenko@gmail.com>
media: rockchip: rkisp1: use device name for debugfs subdir name
Sean Young <sean@mess.org>
media: igorplugusb: receiver overflow should be reported
Alistair Francis <alistair@alistair23.me>
HID: i2c-hid-of: Expose the touchscreen-inverted properties
Alistair Francis <alistair@alistair23.me>
HID: quirks: Allow inverting the absolute X/Y values
Isabella Basso <isabbasso@riseup.net>
drm/amdgpu: fix amdgpu_ras_mca_query_error_status scope
Felix Kuehling <Felix.Kuehling@amd.com>
drm/amdkfd: Fix error handling in svm_range_add
Paolo Abeni <pabeni@redhat.com>
bpf: Do not WARN in bpf_warn_invalid_xdp_action()
David Gow <davidgow@google.com>
kunit: Don't crash if no parameters are generated
Suresh Kumar <surkumar@redhat.com>
net: bonding: debug: avoid printing debug logs when bond is not notifying peers
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_read_aux() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_end() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_panic() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Prevent severity computation from being instrumented
Borislav Petkov <bp@suse.de>
x86/mce: Allow instrumentation during task work queueing
Alex Elder <elder@linaro.org>
ARM: dts: qcom: sdx55: fix IPA interconnect definitions
Baochen Qiang <quic_bqiang@quicinc.com>
ath11k: Avoid false DEADLOCK warning reported by lockdep
Jagan Teki <jagan@amarulasolutions.com>
arm64: dts: rockchip: Fix Bluetooth on ROCK Pi 4 boards
Heiko Carstens <hca@linux.ibm.com>
selftests/ftrace: make kprobe profile testcase description unique
Iwona Winiarska <iwona.winiarska@intel.com>
gpio: aspeed-sgpio: Convert aspeed_sgpio.lock to raw_spinlock
Iwona Winiarska <iwona.winiarska@intel.com>
gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: phy: prefer 1000baseT over 1000baseKX
Wen Gong <quic_wgong@quicinc.com>
ath10k: drop beacon and probe response which leak from other channel
Antoine Tenart <atenart@kernel.org>
net-sysfs: update the queue counts in the unregistration path
Ping-Ke Shih <pkshih@realtek.com>
rtw89: don't kick off TX DMA if failed to write skb
Sebastian Gottschall <s.gottschall@dd-wrt.com>
ath10k: Fix tx hanging
Wen Gong <quic_wgong@quicinc.com>
ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
Wander Lairson Costa <wander@redhat.com>
rcutorture: Avoid soft lockup during cpu stall
Miri Korenblit <miriam.rachel.korenblit@intel.com>
iwlwifi: acpi: fix wgds rev 3 size
Shaul Triebitz <shaul.triebitz@intel.com>
iwlwifi: mvm: avoid clearing a just saved session protection id
Johannes Berg <johannes.berg@intel.com>
iwlwifi: mvm: synchronize with FW after multicast commands
Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
arm64: dts: renesas: Fix thermal bindings
Mika Westerberg <mika.westerberg@linux.intel.com>
thunderbolt: Runtime PM activate both ends of the device link
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: m920x: don't use stack on USB reads
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix "variable dereferenced before check 'asd'"
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
media: rcar-vin: Update format alignment constraints
James Hilliard <james.hilliard1@gmail.com>
media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
drm: rcar-du: Fix CRTC timings when CMM is used
Joerg Roedel <jroedel@suse.de>
x86/mm: Flush global TLB when switching to trampoline page-table
Xiongwei Song <sxwjean@gmail.com>
floppy: Add max size check for user space request
Neal Liu <neal_liu@aspeedtech.com>
usb: uhci: add aspeed ast2600 uhci support
Kishon Vijay Abraham I <kishon@ti.com>
arm64: dts: ti: j721e-main: Fix 'dtbs_check' in serdes_ln_ctrl node
Kishon Vijay Abraham I <kishon@ti.com>
arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
Vlad Zahorodnii <vlad.zahorodnii@kde.org>
drm/amd/display: Use oriented source size when checking cursor scaling
Thomas Zimmermann <tzimmermann@suse.de>
drm: Return error codes from struct drm_driver.gem_create_object
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
Hans de Goede <hdegoede@redhat.com>
ACPI: Change acpi_device_always_present() into acpi_device_override_status()
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Introduce a new placement for MOB page tables
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Release ttm memory if probe fails
Adam Ward <Adam.Ward.opensource@diasemi.com>
regulator: da9121: Prevent current limit change when enabled
Mansur Alisha Shaik <mansur@codeaurora.org>
media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions
Sriram R <quic_srirrama@quicinc.com>
ath11k: Avoid NULL ptr access during mgmt tx cleanup
Zekun Shen <bruceshenzk@gmail.com>
rsi: Fix out-of-bounds read in rsi_read_pkt()
Zekun Shen <bruceshenzk@gmail.com>
rsi: Fix use-after-free in rsi_rx_done_handler()
Zekun Shen <bruceshenzk@gmail.com>
mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
Ping-Ke Shih <pkshih@realtek.com>
rtw89: fix potentially access out of range of RF register array
Stephan Müller <smueller@chronox.de>
crypto: jitter - consider 32 LSB for APT
Chengfeng Ye <cyeaa@connect.ust.hk>
HSI: core: Fix return freed object in hsi_new_client
Hans de Goede <hdegoede@redhat.com>
gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
Fugang Duan <fugang.duan@nxp.com>
tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
Emil Renner Berthing <kernel@esmil.dk>
serial: 8250_dw: Add StarFive JH7100 quirk
Jiri Slaby <jirislaby@kernel.org>
mxser: increase buf_overrun if tty_insert_flip_char() fails
Jiri Slaby <jirislaby@kernel.org>
mxser: don't throttle manually
Jiri Slaby <jirislaby@kernel.org>
mxser: keep only !tty test in ISR
Martyn Welch <martyn.welch@collabora.com>
drm/bridge: megachips: Ensure both bridges are probed before registration
Martin Leung <Martin.Leung@amd.com>
drm/amd/display: add else to avoid double destroy clk_mgr
Danielle Ratson <danieller@nvidia.com>
mlxsw: pci: Add shutdown method in PCI driver
Jan Kiszka <jan.kiszka@siemens.com>
soc: ti: pruss: fix referenced node in error message
Alex Deucher <alexander.deucher@amd.com>
drm/amdgpu/display: set vblank_disable_immediate for DC
Yang Li <yang.lee@linux.alibaba.com>
drm/amd/display: check top_pipe_to_program pointer
Anilkumar Kolli <akolli@codeaurora.org>
ath11k: Fix mon status ring rx tlv processing
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
Marek Vasut <marex@denx.de>
soc: imx: gpcv2: Synchronously suspend MIX domains
Konrad Dybcio <konrad.dybcio@somainline.org>
arm64: dts: qcom: sm8350: Shorten camera-thermal-bottom name
Konrad Dybcio <konrad.dybcio@somainline.org>
arm64: dts: qcom: sm[68]350: Use interrupts-extended with pdc interrupts
Dinh Nguyen <dinguyen@kernel.org>
EDAC/synopsys: Use the quirk for version instead of ddr version
Yang Li <yang.lee@linux.alibaba.com>
ethernet: renesas: Use div64_ul instead of do_div
Andrii Nakryiko <andrii@kernel.org>
libbpf: Accommodate DWARF/compiler bug with duplicated structs
Zheyu Ma <zheyuma97@gmail.com>
media: b2c2: Add missing check in flexcop_pci_isr:
José Expósito <jose.exposito89@gmail.com>
HID: apple: Do not reset quirks when the Fn key is not found
José Expósito <jose.exposito89@gmail.com>
HID: magicmouse: Report battery level over USB
Hans de Goede <hdegoede@redhat.com>
drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
Brian Chen <brianchen118@gmail.com>
psi: Fix PSI_MEM_FULL state when tasks are in memstall and doing reclaim
Pavankumar Kondeti <quic_pkondeti@quicinc.com>
usb: gadget: f_fs: Use stream_open() for endpoint files
Haimin Zhang <tcs.kernel@gmail.com>
USB: ehci_brcm_hub_control: Improve port index sanitizing
Amjad Ouled-Ameur <aouledameur@baylibre.com>
usb: dwc3: meson-g12a: fix shared reset control use
Baochen Qiang <bqiang@codeaurora.org>
ath11k: Fix crash caused by uninitialized TX ring
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: handle errors at sh_css_create_isp_params()
Tiezhu Yang <yangtiezhu@loongson.cn>
bpf: Change value of MAX_TAIL_CALL_CNT from 32 to 33
Linus Lüssing <linus.luessing@c0d3.blue>
batman-adv: allow netlink usage in unprivileged containers
Wen Gong <wgong@codeaurora.org>
ath11k: enable IEEE80211_VHT_EXT_NSS_BW_CAPABLE if NSS ratio enabled
Wan Jiabing <wanjiabing@vivo.com>
ARM: shmobile: rcar-gen2: Add missing of_node_put()
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: check before deference asd variable
Hans de Goede <hdegoede@redhat.com>
media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: set per-device's default mode
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: fix try_fmt logic
Ben Skeggs <bskeggs@redhat.com>
drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
Neil Armstrong <narmstrong@baylibre.com>
drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
Zekun Shen <bruceshenzk@gmail.com>
ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
Andrii Nakryiko <andrii@kernel.org>
selftests/bpf: Fix bpf_object leak in skb_ctx selftest
Andrii Nakryiko <andrii@kernel.org>
selftests/bpf: Destroy XDP link correctly
Andrii Nakryiko <andrii@kernel.org>
selftests/bpf: Fix memory leaks in btf_type_c_dump() helper
Qiang Yu <yuq825@gmail.com>
drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
Andrii Nakryiko <andrii@kernel.org>
libbpf: Improve sanity checking during BTF fix up
Andrii Nakryiko <andrii@kernel.org>
libbpf: Detect corrupted ELF symbols section
Alexander Aring <aahringo@redhat.com>
fs: dlm: filter user dlm messages for kernel locks
Andrey Grodzovsky <andrey.grodzovsky@amd.com>
drm/sched: Avoid lockdep spalt on killing a processes
Archie Pusaka <apusaka@chromium.org>
Bluetooth: Fix removing adv when processing cmd complete
Brian Norris <briannorris@chromium.org>
drm/panel: Delete panel on mipi_dsi_attach() failure
Wei Yongjun <weiyongjun1@huawei.com>
Bluetooth: Fix memory leak of hci device
Wei Yongjun <weiyongjun1@huawei.com>
Bluetooth: Fix debugfs entry leak in hci_register_dev()
Nguyen Dinh Phi <phind.uet@gmail.com>
Bluetooth: hci_sock: purge socket queues in the destruct() callback
Merlijn Wajer <merlijn@wizzup.org>
leds: lp55xx: initialise output direction from dts
Sicelo A. Mhlongo <absicsz@gmail.com>
ARM: dts: omap3-n900: Fix lp5523 for multi color
Sudeep Holla <sudeep.holla@arm.com>
mailbox: pcc: Handle all PCC subtypes correctly in pcc_mbox_irq
Sudeep Holla <sudeep.holla@arm.com>
mailbox: pcc: Avoid using the uninitialized variable 'dev'
Dan Carpenter <dan.carpenter@oracle.com>
mailbox: imx: Fix an IS_ERR() vs NULL bug
jason-jh.lin <jason-jh.lin@mediatek.com>
mailbox: fix gce_num of mt8192 driver data
Paul Cercueil <paul@crapouillou.net>
MIPS: compressed: Fix build with ZSTD compression
Stephen Boyd <swboyd@chromium.org>
of/fdt: Don't worry about non-memory region overlap for no-map
Baruch Siach <baruch@tkos.co.il>
of: base: Fix phandle argument length mismatch error message
Conor Dooley <conor.dooley@microchip.com>
clk: bm1880: remove kfrees on static allocations
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: fsl_asrc: refine the check of available clock divider
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: imx-card: improve the sound quality for low rate
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: imx-card: Fix mclk calculation issue for akcodec
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: imx-card: Need special setting for ak4497 on i.MX8MQ
Taniya Das <tdas@codeaurora.org>
clk: qcom: gcc-sc7280: Mark gcc_cfg_noc_lpass_clk always enabled
Kamal Heib <kamalheib1@gmail.com>
RDMA/cxgb4: Set queue pair state when being queried
Huang Pei <huangpei@loongson.cn>
MIPS: fix local_{add,sub}_return on MIPS64
Nathan Chancellor <nathan@kernel.org>
cxl/core: Remove cxld_const_init in cxl_decoder_alloc()
Christian A. Ehrhardt <lk@c--e.de>
ALSA: hda/cs8409: Fix Jack detection after resume
Christian A. Ehrhardt <lk@c--e.de>
ALSA: hda/cs8409: Increase delay during jack detection
Alyssa Ross <hi@alyssa.is>
ASoC: fsl_mqs: fix MODULE_ALIAS
Ammar Faizi <ammarfaizi2@gmail.com>
powerpc/xive: Add missing null check after calling kmalloc
Randy Dunlap <rdunlap@infradead.org>
mips: bcm63xx: add support for clk_set_parent()
Randy Dunlap <rdunlap@infradead.org>
mips: lantiq: add support for clk_set_parent()
Sameer Pujar <spujar@nvidia.com>
arm64: tegra: Remove non existent Tegra194 reset
Trevor Wu <trevor.wu@mediatek.com>
ASoC: mediatek: mt8195: correct pcmif BE dai control flow
Wei Yongjun <weiyongjun1@huawei.com>
misc: lattice-ecp3-config: Fix task hung when firmware load failed
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: samsung: idma: Check of ioremap return value
Tom Rix <trix@redhat.com>
iio: chemical: sunrise_co2: set val parameter only on success
Swapnil Jakhade <sjakhade@cadence.com>
phy: cadence: Sierra: Fix to get correct parent for mux clocks
Michael Ellerman <mpe@ellerman.id.au>
powerpc/64s: Use EMIT_WARN_ENTRY for SRR debug warnings
Michael Ellerman <mpe@ellerman.id.au>
powerpc/64s: Mask NIP before checking against SRR0
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: mediatek: Check for error clk pointer
Ryuta NAKANISHI <nakanishi.ryuta@socionext.com>
phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
Alan Stern <stern@rowland.harvard.edu>
scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
Pingfan Liu <kernelfans@gmail.com>
efi: apply memblock cap after memblock_add()
Zhen Lei <thunder.leizhen@huawei.com>
of: fdt: Aggregate the processing of "linux,usable-memory-range"
William Breathitt Gray <vilhelm.gray@gmail.com>
counter: 104-quad-8: Fix persistent enabled events bug
Trevor Wu <trevor.wu@mediatek.com>
ASoC: mediatek: mt8195: correct default value
Xiongfeng Wang <wangxiongfeng2@huawei.com>
iommu/iova: Fix race between FQ timeout and teardown
Cezary Rojewski <cezary.rojewski@intel.com>
ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: Remove useless irq affinity notifier
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: X2apic mode: mask/unmask interrupts on suspend/resume
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: X2apic mode: setup the INTX registers on mask/unmask
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: X2apic mode: re-enable after resume
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: Restore GA log/tail pointer on host resume
Arnd Bergmann <arnd@arndb.de>
dmaengine: pxa/mmp: stop referencing config->slave_id
Lukas Bulwahn <lukas.bulwahn@gmail.com>
mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
Lukas Bulwahn <lukas.bulwahn@gmail.com>
mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
Dillon Min <dillon.minfei@gmail.com>
clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell
Frank Rowand <frank.rowand@sony.com>
of: unittest: 64 bit dma address test requires arch support
Jim Quinlan <jim2101024@gmail.com>
of: unittest: fix warning on PowerPC frame size warning
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: rt5663: Handle device_property_read_u32_array error codes
Avihai Horon <avihaih@nvidia.com>
RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
Avihai Horon <avihaih@nvidia.com>
RDMA/core: Let ib_find_gid() continue search even after empty entry
Rob Clark <robdclark@chromium.org>
iommu/arm-smmu-qcom: Fix TTBR0 read
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/powermac: Add additional missing lockdep_register_key()
Thomas Gleixner <tglx@linutronix.de>
PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
Kamal Heib <kamalheib1@gmail.com>
RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
Bart Van Assche <bvanassche@acm.org>
scsi: ufs: Fix race conditions related to driver data
Bart Van Assche <bvanassche@acm.org>
scsi: core: Fix scsi_device_max_queue_depth()
Kai Vehmanen <kai.vehmanen@linux.intel.com>
ASoC: SOF: Intel: fix build issue related to CODEC_PROBE_ENTRIES
Hector Martin <marcan@marcan.st>
iommu/io-pgtable-arm: Fix table descriptor paddr formatting
Lu Baolu <baolu.lu@linux.intel.com>
iommu: Extend mutex lock scope in iommu_probe_device()
Stafford Horne <shorne@gmail.com>
openrisc: Add clone3 ABI wrapper
Todd Kjos <tkjos@google.com>
binder: avoid potential data leakage when copying txn
Todd Kjos <tkjos@google.com>
binder: fix handling of error during copy
Kees Cook <keescook@chromium.org>
char/mwave: Adjust io port register size
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
misc: at25: Make driver OF independent again
Lucas Tanure <tanureal@opensource.cirrus.com>
ASoC: amd: Fix dependency for SPI master
Takashi Iwai <tiwai@suse.de>
ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
Bixuan Cui <cuibixuan@linux.alibaba.com>
ALSA: oss: fix compile error when OSS_DEBUG is enabled
Waiman Long <longman@redhat.com>
clocksource: Avoid accidental unstable marking of clocksources
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/32s: Fix shift-out-of-bounds in KASAN init
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/modules: Don't WARN on first module allocation attempt
Athira Rajeev <atrajeev@linux.vnet.ibm.com>
powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC
Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
dt-bindings: thermal: Fix definition of cooling-maps contribution property
Thomas Gleixner <tglx@linutronix.de>
ALSA: hda: Make proper use of timecounter
Jack Wang <jinpu.wang@ionos.com>
RDMA/rtrs-clt: Fix the initial value of min_latency
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ASoC: codecs: wcd938x: add SND_SOC_WCD938_SDW to codec list instead
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
Peiwei Hu <jlu.hpw@foxmail.com>
powerpc/prom_init: Fix improper check of prom_getprop()
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs42l42: Report initial jack state
Adam Ford <aford173@gmail.com>
clk: imx8mn: Fix imx8mn_clko1_sels
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
clk: renesas: rzg2l: propagate return value of_genpd_add_provider_simple()
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
clk: renesas: rzg2l: Check return value of pm_genpd_init()
Igor Pylypiv <ipylypiv@google.com>
scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
Kamal Heib <kamalheib1@gmail.com>
RDMA/hns: Validate the pkey index
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"
Takashi Iwai <tiwai@suse.de>
ALSA: hda: Fix potential deadlock at codec unbinding
Takashi Iwai <tiwai@suse.de>
ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
Takashi Iwai <tiwai@suse.de>
ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
Takashi Iwai <tiwai@suse.de>
ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible
Jan Kara <jack@suse.cz>
ext4: avoid trim error on fs with small groups
Taehee Yoo <ap420073@gmail.com>
amt: fix wrong return type of amt_send_membership_update()
Pavel Skripkin <paskripkin@gmail.com>
net: mcs7830: handle usb read errors properly
Edwin Peer <edwin.peer@broadcom.com>
bnxt_en: use firmware provided max timeout for messages
Nathan Chancellor <nathan@kernel.org>
iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
Paul Blakey <paulb@nvidia.com>
net: openvswitch: Fix ct_state nat flags for conns arriving from tc
Florian Westphal <fw@strlen.de>
netfilter: egress: avoid a lockdep splat
Dominik Brodowski <linux@dominikbrodowski.net>
pcmcia: fix setting of kthread task states
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
can: rcar_canfd: rcar_canfd_channel_probe(): make sure we free CAN network device
Jiasheng Jiang <jiasheng@iscas.ac.cn>
can: xilinx_can: xcan_probe(): check for error irq
Marc Kleine-Budde <mkl@pengutronix.de>
can: softing: softing_startstop(): fix set but not used variable warning
Christophe Jaillet <christophe.jaillet@wanadoo.fr>
tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
Chen Jun <chenjun102@huawei.com>
tpm: add request_locality before write TPM_INT_ENABLE
Marc Kleine-Budde <mkl@pengutronix.de>
can: mcp251xfd: add missing newline to printed strings
Sunil Goutham <sgoutham@marvell.com>
octeontx2-af: Fix interrupt name strings
Vladimir Oltean <vladimir.oltean@nxp.com>
net: mscc: ocelot: fix incorrect balancing with down LAG ports
Fabio Estevam <festevam@denx.de>
regmap: Call regmap_debugfs_exit() prior to _init()
Dan Carpenter <dan.carpenter@oracle.com>
netrom: fix api breakage in nr_setsockopt()
Dan Carpenter <dan.carpenter@oracle.com>
ax25: uninitialized variable in ax25_setsockopt()
Rakesh Babu Saladi <rsaladi2@marvell.com>
octeontx2-nicvf: Free VF PTP resources.
Subbaraya Sundeep <sbhatta@marvell.com>
octeontx2-af: Increment ptp refcount before use
Miaoqian Lin <linmq006@gmail.com>
spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
Mat Martineau <mathew.j.martineau@linux.intel.com>
mptcp: Check reclaim amount before reducing allocation
Geliang Tang <geliang.tang@suse.com>
mptcp: fix a DSS option writing error
Matthieu Baerts <matthieu.baerts@tessares.net>
mptcp: fix opt size when sending DSS + MP_FAIL
Paolo Abeni <pabeni@redhat.com>
mptcp: fix per socket endpoint accounting
Dan Carpenter <dan.carpenter@oracle.com>
Bluetooth: hci_sock: fix endian bug in hci_sock_setsockopt()
Dan Carpenter <dan.carpenter@oracle.com>
Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
Zizhuang Deng <sunsetdzz@gmail.com>
lib/mpi: Add the return value check of kcalloc()
Moshe Shemesh <moshe@nvidia.com>
net/mlx5: Set command entry semaphore up once got index free
Maor Dickman <maord@nvidia.com>
net/mlx5e: Sync VXLAN udp ports during uplink representor profile change
Shay Drory <shayd@nvidia.com>
net/mlx5: Fix access to sf_dev_table on allocation failure
Paul Blakey <paulb@nvidia.com>
net/mlx5e: Fix matching on modified inner ip_ecn bits
Aya Levin <ayal@nvidia.com>
Revert "net/mlx5e: Block offload of outer header csum for GRE tunnel"
Aya Levin <ayal@nvidia.com>
Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
Maor Dickman <maord@nvidia.com>
net/mlx5e: Don't block routes with nexthop objects in SW
Maor Dickman <maord@nvidia.com>
net/mlx5e: Fix wrong usage of fib_info_nh when routes with nexthop objects are used
Dima Chumak <dchumak@nvidia.com>
net/mlx5e: Fix nullptr on deleting mirroring rule
Aya Levin <ayal@nvidia.com>
net/mlx5e: Fix page DMA map/unmap attributes
Huang Rui <ray.huang@amd.com>
x86, sched: Fix undefined reference to init_freq_invariance_cppc() build error
Vinod Koul <vkoul@kernel.org>
spi: qcom: geni: handle timeout for gpi mode
Vinod Koul <vkoul@kernel.org>
spi: qcom: geni: set the error code for gpi transfer
Valentin Caron <valentin.caron@foss.st.com>
serial: stm32: move tx dma terminate DMA to shutdown
Alyssa Ross <hi@alyssa.is>
serial: liteuart: fix MODULE_ALIAS
Miaoqian Lin <linmq006@gmail.com>
drivers/firmware: Add missing platform_device_put() in sysfb_create_simplefb
Michal Suchanek <msuchanek@suse.de>
debugfs: lockdown: Allow reading debugfs files that are not world readable
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
Pavel Hofman <pavel.hofman@ivitera.com>
usb: gadget: u_audio: Subdevice 0 for capture ctls
John Keeping <john@metanate.com>
usb: gadget: u_audio: fix calculations for small bInterval
John Keeping <john@metanate.com>
usb: dwc2: gadget: initialize max_speed from params
Dinh Nguyen <dinguyen@kernel.org>
usb: dwc2: do not gate off the hardware if it does not support clock gating
Miaoqian Lin <linmq006@gmail.com>
usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
Wen Gu <guwen@linux.alibaba.com>
net/smc: Reset conn->lgr when link group registration fails
Miaoqian Lin <linmq006@gmail.com>
Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
Jiasheng Jiang <jiasheng@iscas.ac.cn>
Bluetooth: hci_bcm: Check for error irq
Jiasheng Jiang <jiasheng@iscas.ac.cn>
fsl/fman: Check for null pointer after calling devm_ioremap
Jiasheng Jiang <jiasheng@iscas.ac.cn>
staging: greybus: audio: Check null pointer
Dan Carpenter <dan.carpenter@oracle.com>
rocker: fix a sleeping in atomic bug
Eric Dumazet <edumazet@google.com>
ppp: ensure minimum packet size in ppp_write()
Miroslav Lichvar <mlichvar@redhat.com>
net: fix SOF_TIMESTAMPING_BIND_PHC to work with multiple sockets
Florian Westphal <fw@strlen.de>
netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
Pablo Neira Ayuso <pablo@netfilter.org>
netfilter: nft_payload: do not update layer 4 checksum when mangling fragments
Qiang Wang <wangqiang.wq.frank@bytedance.com>
libbpf: Use probe_name for legacy kprobe
Kuniyuki Iwashima <kuniyu@amazon.co.jp>
bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
Kris Van Hees <kris.van.hees@oracle.com>
bpf: Fix verifier support for validation of async callbacks
Daniel Borkmann <daniel@iogearbox.net>
bpf: Don't promote bogus looking registers after null check.
John Fastabend <john.fastabend@gmail.com>
bpf, sockmap: Fix double bpf_prog_put on error case in map_link
John Fastabend <john.fastabend@gmail.com>
bpf, sockmap: Fix return codes from tcp_bpf_recvmsg_parser()
Hou Tao <houtao1@huawei.com>
bpf, arm64: Use emit_addr_mov_i64() for BPF_PSEUDO_FUNC
Xin Xiong <xiongx18@fudan.edu.cn>
netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
Vladimir Oltean <vladimir.oltean@nxp.com>
net: dsa: fix incorrect function pointer check for MRP ring roles
Daniel Golle <daniel@makrotopia.org>
net: ethernet: mtk_eth_soc: fix return values and refactor MDIO ops
Raed Salem <raeds@nvidia.com>
net/xfrm: IPsec tunnel mode fix inner_ipproto setting in sec_path
Jiasheng Jiang <jiasheng@iscas.ac.cn>
power: reset: mt6397: Check for null res pointer
Zhou Qingyang <zhou1615@umn.edu>
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
Zhou Qingyang <zhou1615@umn.edu>
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
Hans de Goede <hdegoede@redhat.com>
ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
José Expósito <jose.exposito89@gmail.com>
drm/amd/display: fix dereference before NULL check
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
serial: 8250_bcm7271: Propagate error codes from brcmuart_probe()
Haimin Zhang <tcs_kernel@tencent.com>
bpf: Add missing map_get_next_key method to bloom filter map.
Pavel Begunkov <asml.silence@gmail.com>
io_uring: remove double poll on poll update
Zhang Zixun <zhang133010@icloud.com>
x86/mce/inject: Avoid out-of-bounds write when setting flags
Arseny Demidov <arsdemal@gmail.com>
hwmon: (mr75203) fix wrong power-up delay value
Marijn Suijten <marijn.suijten@somainline.org>
regulator: qcom-labibb: OCP interrupts are not a failure while disabled
Ming Lei <ming.lei@redhat.com>
block: null_blk: only set set->nr_maps as 3 if active poll_queues is > 0
Dan Carpenter <dan.carpenter@oracle.com>
crypto: octeontx2 - prevent underflow in get_cores_bmap()
Nathan Chancellor <nathan@kernel.org>
x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
Panicker Harish <quic_pharish@quicinc.com>
Bluetooth: hci_qca: Stop IBS timer during BT OFF
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: mt7921: fix a possible race enabling/disabling runtime-pm
Baochen Qiang <quic_bqiang@quicinc.com>
ath11k: Fix unexpected return buffer manager error for QCA6390
Clément Léger <clement.leger@bootlin.com>
software node: fix wrong node passed to find nargs_prop
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Respect enabled-strings in set_brightness
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Override default length with qcom,enabled-strings
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Fix off-by-one maximum with default num_strings
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Pass number of elements to read to read_u32_array
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Validate enabled string indices in DT
Paul Chaignon <paul@isovalent.com>
bpftool: Enable line buffering for stdout
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: L2CAP: Fix using wrong mode
Johannes Berg <johannes.berg@intel.com>
um: virtio_uml: Fix time-travel external time propagation
Johannes Berg <johannes.berg@intel.com>
lib/logic_iomem: Fix operation on 32-bit
Johannes Berg <johannes.berg@intel.com>
lib/logic_iomem: Fix 32-bit build
Johannes Berg <johannes.berg@intel.com>
um: virt-pci: Fix 32-bit compile
Johannes Berg <johannes.berg@intel.com>
um: rename set_signals() to um_set_signals()
Johannes Berg <johannes.berg@intel.com>
um: fix ndelay/udelay defines
Bernard Zhao <bernard@vivo.com>
selinux: fix potential memleak in selinux_add_opt()
Christoph Hellwig <hch@lst.de>
block: fix error unwinding in device_add_disk
Sergey Shtylyov <s.shtylyov@omp.ru>
mmc: meson-mx-sdio: add IRQ check
Sergey Shtylyov <s.shtylyov@omp.ru>
mmc: meson-mx-sdhc: add IRQ check
Avraham Stern <avraham.stern@intel.com>
iwlwifi: mvm: set protected flag only for NDP ranging
Avraham Stern <avraham.stern@intel.com>
iwlwifi: mvm: perform 6GHz passive scan after suspend
Nathan Errera <nathan.errera@intel.com>
iwlwifi: mvm: test roc running status bits before removing the sta
Luca Coelho <luciano.coelho@intel.com>
iwlwifi: don't pass actual WGDS revision number in table_revision
Johannes Berg <johannes.berg@intel.com>
iwlwifi: mvm: fix 32-bit build in FTM
Kai-Heng Feng <kai.heng.feng@canonical.com>
rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE
Ping-Ke Shih <pkshih@realtek.com>
rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC
Dan Carpenter <dan.carpenter@oracle.com>
wilc1000: fix double free error in probe()
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921s: fix suspend error with enlarging mcu timeout value
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: connac: introduce MCU_UNI_CMD macro
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: connac: remove MCU_FW_PREFIX bit
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: connac: align MCU_EXT definitions with 7915 driver
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: connac: introduce MCU_EXT macros
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921: fix possible resume failure
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: connac: fix last_chan configuration in mt76_connac_mcu_rate_txpower_band
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921s: fix possible kernel crash due to invalid Rx count
Shayne Chen <shayne.chen@mediatek.com>
mt76: mt7921: use correct iftype data on 6GHz cap init
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921s: fix the device cannot sleep deeply in suspend
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921: move mt76_connac_mcu_set_hif_suspend to bus-related files
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: mt7921: fix possible NULL pointer dereference in mt7921_mac_write_txwi
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: fix possible OOB issue in mt76_calculate_default_rate
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: debugfs: fix queue reporting for mt76-usb
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921: fix MT7921E reset failure
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921: drop offload_flags overwritten
Marek Behún <kabel@kernel.org>
ARM: dts: armada-38x: Add generic compatible to UART nodes
Robert Marko <robert.marko@sartura.hr>
arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
Robert Marko <robert.marko@sartura.hr>
arm64: dts: marvell: cn9130: add GPIO and SPI aliases
Wei Yongjun <weiyongjun1@huawei.com>
usb: ftdi-elan: fix memory leak on device disconnect
Andre Przywara <andre.przywara@arm.com>
ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
Antony Antony <antony.antony@secunet.com>
xfrm: state and policy should fail if XFRMA_IF_ID 0
Antony Antony <antony.antony@secunet.com>
xfrm: interface with if_id 0 should return error
Jernej Skrabec <jernej.skrabec@gmail.com>
media: hantro: Fix probe func error path
Robin Murphy <robin.murphy@arm.com>
drm/tegra: vic: Fix DMA API misuse
Thierry Reding <treding@nvidia.com>
drm/tegra: gr2d: Explicitly control module reset
Arnd Bergmann <arnd@arndb.de>
gpu: host1x: select CONFIG_DMA_SHARED_BUFFER
Stephen Boyd <swboyd@chromium.org>
drm/bridge: ti-sn65dsi86: Set max register for regmap
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drm/msm/dpu: fix safe status debugfs file
Baruch Siach <baruch@tkos.co.il>
arm64: dts: qcom: ipq6018: Fix gpio-ranges property
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
arm64: dts: qcom: c630: Fix soundcard setup
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Add missing PTP via UDP rules
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Allow PTP P2P measurements on blocked ports
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Add STP forwarding rule
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Fix insertion of static FDB entries
Zhou Qingyang <zhou1615@umn.edu>
ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
Jiasheng Jiang <jiasheng@iscas.ac.cn>
media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
Wang Hai <wanghai38@huawei.com>
media: msi001: fix possible null-ptr-deref in msi001_probe()
Anton Vasilyev <vasilyev@ispras.ru>
media: dw2102: Fix use after free
Robin Murphy <robin.murphy@arm.com>
perf/arm-cmn: Fix CPU hotplug unregistration
Christian Lamparter <chunkeey@gmail.com>
ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
Daniel Latypov <dlatypov@google.com>
kunit: tool: fix --json output for skipped tests
Hector Martin <marcan@marcan.st>
spi: Fix incorrect cs_setup delay handling
Rameshkumar Sundaram <quic_ramess@quicinc.com>
ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
Alexei Starovoitov <ast@kernel.org>
libbpf: Fix gen_loader assumption on number of programs.
Weili Qian <qianweili@huawei.com>
crypto: hisilicon/qm - fix incorrect return value of hisi_qm_resume()
Herbert Xu <herbert@gondor.apana.org.au>
crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix bugs and crash in tests
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix lrw chaining mode
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix double pm exit
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - check early input data
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix CTR counter carry
Jakub Kicinski <kuba@kernel.org>
selftests: harness: avoid false negatives if test has no ASSERTs
Anders Roxell <anders.roxell@linaro.org>
selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
Shuyi Cheng <chengshuyi@linux.alibaba.com>
libbpf: Add "bool skipped" to struct bpf_map
Kees Cook <keescook@chromium.org>
x86/uaccess: Move variable into switch case statement
Eric Dumazet <edumazet@google.com>
xfrm: fix a small bug in xfrm_sa_len()
Brian Norris <briannorris@chromium.org>
mwifiex: Fix possible ABBA deadlock
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drm/msm/dsi: fix initialization in the bonded DSI case
Loic Poulain <loic.poulain@linaro.org>
wcn36xx: Fix max channels retrieval
Frederic Weisbecker <frederic@kernel.org>
rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
Jackie Liu <liuyun01@kylinos.cn>
drm/msm/dp: displayPort driver need algorithm rational
Rob Clark <robdclark@chromium.org>
drm/msm/gpu: Don't allow zero fence_id
Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
drm/amd/display: Fix out of bounds access on DNC31 stream encoder regs
Wayne Lin <Wayne.Lin@amd.com>
drm/amd/display: Fix bug in debugfs crc_win_update entry
Mark Chen <mark-yw.chen@mediatek.com>
Bluetooth: btusb: Handle download_firmware failure cases
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: MGMT: Use hci_dev_test_and_{set,clear}_flag
Seevalamuthu Mariappan <quic_seevalam@quicinc.com>
ath11k: Fix QMI file type enum value
Fabio Estevam <festevam@denx.de>
ath10k: Fix the MTU size on QCA9377 SDIO
Tudor Ambarus <tudor.ambarus@microchip.com>
mtd: spi-nor: Fix mtd size for s3an flashes
Tudor Ambarus <tudor.ambarus@microchip.com>
mtd: spi-nor: Get rid of nor->page_size
Li Hua <hucool.lihua@huawei.com>
sched/rt: Try to restart rt period timer when rt runtime exceeded
Lv Yunlong <lyl2019@mail.ustc.edu.cn>
wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
Robert Schlabbach <robert_s@gmx.net>
media: si2157: Fix "warm" tuner state detection
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
Zhou Qingyang <zhou1615@umn.edu>
media: dib8000: Fix a memleak in dib8000_init()
Ricardo Ribalda <ribalda@chromium.org>
media: uvcvideo: Avoid returning invalid controls
Ricardo Ribalda <ribalda@chromium.org>
media: uvcvideo: Avoid invalid memory access
Colin Ian King <colin.king@intel.com>
media: uvcvideo: Fix memory leak of object map on error exit path
Alexander Lobakin <alexandr.lobakin@intel.com>
samples: bpf: Fix 'unknown warning group' build warning on Clang
Alexander Lobakin <alexandr.lobakin@intel.com>
samples: bpf: Fix xdp_sample_user.o linking with Clang
Andrii Nakryiko <andrii@kernel.org>
samples/bpf: Clean up samples/bpf build failes
Hans de Goede <hdegoede@redhat.com>
platform/x86: wmi: Fix driver->notify() vs ->probe() race
Hans de Goede <hdegoede@redhat.com>
platform/x86: wmi: Replace read_takes_no_args with a flags field
Reiji Watanabe <reijiw@google.com>
arm64: mte: DC {GVA,GZVA} shouldn't be used when DCZID_EL0.DZP == 1
Reiji Watanabe <reijiw@google.com>
arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
drm: rcar-du: crtc: Support external DSI dot clock
Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
drm: rcar-du: Add DSI support to rcar_du_output_name
Kajol Jain <kjain@linux.ibm.com>
bpf: Remove config check to enable bpf support for branch records
Hou Tao <houtao1@huawei.com>
bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
Alexei Starovoitov <ast@kernel.org>
bpf: Adjust BTF log size limit.
Vincent Donnefort <vincent.donnefort@arm.com>
sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
Vincent Donnefort <vincent.donnefort@arm.com>
sched/fair: Fix detection of per-CPU kthreads waking a task
Maxim Mikityanskiy <maximmi@nvidia.com>
bpf: Fix the test_task_vma selftest to support output shorter than 1 kB
Sean Wang <sean.wang@mediatek.com>
Bluetooth: btmtksdio: fix resume failure
Yang Yingliang <yangyingliang@huawei.com>
staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
Yang Yingliang <yangyingliang@huawei.com>
staging: rtl8192e: return error code from rtllib_softmac_init()
Tasos Sahanidis <tasos@tasossah.com>
floppy: Fix hang in watchdog when disk is ejected
Michael Walle <michael@walle.cc>
mtd: core: provide unique name for nvmem device
Lino Sanfilippo <LinoSanfilippo@gmx.de>
serial: amba-pl011: do not request memory region twice
Lizhi Hou <lizhi.hou@xilinx.com>
tty: serial: uartlite: allow 64 bit address
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j721e: Fix the L2 cache sets
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j7200: Fix the L2 cache sets
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-am642: Fix the L2 cache sets
Gaurav Jain <gaurav.jain@nxp.com>
crypto: caam - save caam memory to support crypto engine retry mechanism.
Ming Lei <ming.lei@redhat.com>
null_blk: allow zero poll queues
Alexei Starovoitov <ast@kernel.org>
libbpf: Clean gen_loader's attach kind.
Zhou Qingyang <zhou1615@umn.edu>
drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
Zhou Qingyang <zhou1615@umn.edu>
drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode()
Paul Gerber <Paul.Gerber@tq-group.com>
thermal/drivers/imx8mm: Enable ADC when enabling monitor
Dan Carpenter <dan.carpenter@oracle.com>
pinctrl: mediatek: add a check for error in mtk_pinconf_bias_get_rsel()
Dan Carpenter <dan.carpenter@oracle.com>
pinctrl: mediatek: uninitialized variable in mtk_pctrl_show_one_pin()
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPI: EC: Rework flushing of EC work while suspended to idle
William Kucharski <william.kucharski@oracle.com>
cgroup: Trace event cgroup id fields should be u64
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Fail to initialize on broken configs
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Remove the deprecated lower mem limit
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
arm64: dts: qcom: msm8916: fix MMC controller aliases
Jun Miao <jun.miao@intel.com>
rcu: Avoid alloc_pages() when recording stack
Mark Rutland <mark.rutland@arm.com>
powerpc: Avoid discarding flags in system_call_exception()
Florian Westphal <fw@strlen.de>
netfilter: bridge: add support for pppoe filtering
Jesper Dangaard Brouer <brouer@redhat.com>
igc: AF_XDP zero-copy metadata adjust breaks SKBs on XDP_PASS
Oleksij Rempel <linux@rempel-privat.de>
thermal/drivers/imx: Implement runtime PM support
Yang Yingliang <yangyingliang@huawei.com>
net: lantiq: fix missing free_netdev() on error in ltq_etop_probe()
Bhupesh Sharma <bhupesh.sharma@linaro.org>
net: stmmac: Add platform level debug register dump feature
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
media: venus: core: Fix a potential NULL pointer dereference in an error handling path
Mansur Alisha Shaik <mansur@codeaurora.org>
media: venus: correct low power frequency calculation for encoder
Philipp Zabel <p.zabel@pengutronix.de>
media: coda: fix CODA960 JPEG encoder buffer overflow
Chen-Yu Tsai <wenst@chromium.org>
media: hantro: Hook up RK3399 JPEG encoder output
Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
media: mtk-vcodec: Fix an error handling path in 'mtk_vcodec_probe()'
Yang Yingliang <yangyingliang@huawei.com>
media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
Fabio Estevam <festevam@denx.de>
media: imx-pxp: Initialize the spinlock prior to using it
Suresh Udipi <sudipi@jp.adit-jv.com>
media: rcar-csi2: Correct the selection of hsfreqrange
Hans de Goede <hdegoede@redhat.com>
media: i2c: ov8865: Fix lockdep error
Daniel Scally <djrscally@gmail.com>
media: i2c: Re-order runtime pm initialisation
Eugen Hristev <eugen.hristev@microchip.com>
media: i2c: imx274: fix s_frame_interval runtime resume not requested
Alan Maguire <alan.maguire@oracle.com>
libbpf: Silence uninitialized warning/error in btf_dump_dump_type_data
Jan Kara <jack@suse.cz>
bfq: Do not let waker requests skip proper accounting
Claudiu Beznea <claudiu.beznea@microchip.com>
mfd: atmel-flexcom: Use .resume_noirq
Claudiu Beznea <claudiu.beznea@microchip.com>
mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
Alvin Šipraga <alsi@bang-olufsen.dk>
net: dsa: rtl8365mb: set RGMII RX delay in steps of 0.3 ns
Joey Gouly <joey.gouly@arm.com>
pinctrl: apple: return an error if pinmux is missing in the DT
Tudor Ambarus <tudor.ambarus@microchip.com>
tty: serial: atmel: Call dma_async_issue_pending()
Tudor Ambarus <tudor.ambarus@microchip.com>
tty: serial: atmel: Check return code of dmaengine_submit()
Peng Fan <peng.fan@nxp.com>
arm64: dts: ti: k3-j721e: correct cache-sets info
Anilkumar Kolli <akolli@codeaurora.org>
ath11k: Use host CE parameters for CE interrupts configuration
Giovanni Cabiddu <giovanni.cabiddu@intel.com>
crypto: qat - fix undetected PFVF timeout in ACK loop
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix using invalidated memory in bpf_linker
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix glob_syms memory leak in bpf_linker
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix potential misaligned memory access in btf_ext__new()
Andrii Nakryiko <andrii@kernel.org>
tools/resolve_btf_ids: Close ELF file on error
Andrii Nakryiko <andrii@kernel.org>
libbpf: Load global data maps lazily on legacy kernels
Dillon Min <dillon.minfei@gmail.com>
ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco
Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
cpufreq: qcom-hw: Fix probable nested interrupt handling
Adam Ford <aford173@gmail.com>
soc: imx: gpcv2: keep i.MX8MM VPU-H1 bus clock active
Lukasz Luba <lukasz.luba@arm.com>
cpufreq: qcom-cpufreq-hw: Update offline CPUs per-cpu thermal pressure
George G. Davis <davis.george@siemens.com>
mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
Prasad Malisetty <pmaliset@codeaurora.org>
arm64: dts: qcom: sc7280: Fix 'interrupt-map' parent address cells
Prasad Malisetty <pmaliset@codeaurora.org>
arm64: dts: qcom: sc7280: Fix incorrect clock name
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_skcipher_register_one
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_ahash_register_one
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_aead_register_one
Wei Yongjun <weiyongjun1@huawei.com>
crypto: keembay-ocs-ecc - Fix error return code in kmb_ocs_ecc_probe()
Tudor Ambarus <tudor.ambarus@microchip.com>
crypto: atmel-aes - Reestablish the correct tfm context at dequeue
Wang Hai <wanghai38@huawei.com>
media: dmxdev: fix UAF when dvb_register_device() fails
Biju Das <biju.das.jz@bp.renesas.com>
arm64: dts: renesas: cat875: Add rx/tx delays
Seevalamuthu Mariappan <quic_seevalam@quicinc.com>
ath11k: add hw_param for wakeup_mhi
P Praneesh <ppranees@codeaurora.org>
ath11k: allocate dst ring descriptors from cacheable memory
Wen Gong <wgong@codeaurora.org>
ath11k: set correct NL80211_FEATURE_DYNAMIC_SMPS for WCN6855
Dan Carpenter <dan.carpenter@oracle.com>
drm/vboxvideo: fix a NULL vs IS_ERR() check
Jeremy Kerr <jk@codeconstruct.com.au>
mctp/test: Update refcount checking in route fragment tests
Tirthendu Sarkar <tirthendu.sarkar@intel.com>
selftests/bpf: Fix xdpxceiver failures for no hugepages
Lyude Paul <lyude@redhat.com>
drm/dp: Don't read back backlight mode in drm_edp_backlight_enable()
Alexander Aring <aahringo@redhat.com>
fs: dlm: fix build with CONFIG_IPV6 disabled
Sebastian Andrzej Siewior <bigeasy@linutronix.de>
kernel/locking: Use a pointer in ww_mutex_trylock().
Jens Wiklander <jens.wiklander@linaro.org>
tee: fix put order in teedev_close_context()
oujiefeng <oujiefeng@huawei.com>
spi: hisi-kunpeng: Fix the debugfs directory name incorrect
Karthikeyan Kathirvel <kathirve@codeaurora.org>
ath11k: reset RSN/WPA present state for open BSS
Karthikeyan Kathirvel <kathirve@codeaurora.org>
ath11k: clear the keys properly via DISABLE_KEY
Sven Eckelmann <sven@narfation.org>
ath11k: Fix ETSI regd with weather radar overlap
Jackie Liu <liuyun01@kylinos.cn>
Bluetooth: fix uninitialized variables notify_evt
Pavel Skripkin <paskripkin@gmail.com>
Bluetooth: stop proccessing malicious adv data
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
Alexander Aring <aahringo@redhat.com>
fs: dlm: don't call kernel_getpeername() in error_report()
Christian Hewitt <christianshewitt@gmail.com>
arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
Christian Hewitt <christianshewitt@gmail.com>
arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
Alexander Stein <alexander.stein@mailbox.org>
arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
Alexander Stein <alexander.stein@mailbox.org>
arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
Jammy Huang <jammy_huang@aspeedtech.com>
media: aspeed: Update signal status immediately to ensure sane hw state
Dongliang Mu <mudongliangabcd@gmail.com>
media: em28xx: fix memory leak in em28xx_init_dev
Jammy Huang <jammy_huang@aspeedtech.com>
media: aspeed: fix mode-detect always time out at 2nd run
Dan Carpenter <dan.carpenter@oracle.com>
media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: fix enum formats logic
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix ifdefs in sh_css.c
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid()
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: do not use err var when checking port validity for ISP2400
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix inverted logic in buffers_needed()
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities()
Dan Carpenter <dan.carpenter@oracle.com>
media: ipu3-cio2: fix error code in cio2_bridge_connect_sensor()
Dillon Min <dillon.minfei@gmail.com>
media: videobuf2: Fix the size printk format
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
Quentin Monnet <quentin@isovalent.com>
bpftool: Fix memory leak in prog_dump()
Rameshkumar Sundaram <ramess@codeaurora.org>
ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
Benjamin Li <benl@squareup.com>
wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
Benjamin Li <benl@squareup.com>
wcn36xx: populate band before determining rate on RX
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Put DXE block into reset before freeing memory
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Release DMA channel descriptor allocations
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Fix DMA channel enable/disable cycle
Andrii Nakryiko <andrii@kernel.org>
libbpf: Free up resources used by inner map definition
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix non-C89 loop variable declaration in gen_loader.c
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Enable the scrambler on reconnection
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix section counting logic
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
Benjamin Li <benl@squareup.com>
wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
Colin Ian King <colin.king@intel.com>
drm/virtio: fix another potential integer overflow on shift of a int
Colin Ian King <colin.king@intel.com>
drm/virtio: fix potential integer overflow on shift of a int
Maxime Ripard <maxime@cerno.tech>
drm/bridge: sn65dsi83: Fix bridge removal
Maxime Ripard <maxime@cerno.tech>
drm/vc4: crtc: Make sure the HDMI controller is powered when disabling
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Rework the pre_crtc_configure error handling
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Make sure the controller is powered up during bind
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Make sure the controller is powered in detect
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Move the HSM clock enable to runtime_pm
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Set a default HSM rate
Maxime Ripard <maxime@cerno.tech>
clk: bcm-2835: Remove rounding up the dividers
Maxime Ripard <maxime@cerno.tech>
clk: bcm-2835: Pick the closest clock rate
Wang Hai <wanghai38@huawei.com>
Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
Soenke Huster <soenke.huster@eknoes.de>
Bluetooth: virtio_bt: fix memory leak in virtbt_rx_handle()
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Disable PLL clock on bind error
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Fix unbalanced clock on probe error
Brian Norris <briannorris@chromium.org>
drm/panel: innolux-p079zca: Delete panel on attach() failure
Brian Norris <briannorris@chromium.org>
drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
Wang Hai <wanghai38@huawei.com>
drm: fix null-ptr-deref in drm_dev_init_release()
Dan Carpenter <dan.carpenter@oracle.com>
drm/bridge: display-connector: fix an uninitialized pointer in probe()
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: L2CAP: Fix not initializing sk_peer_pid
Tedd Ho-Jeong An <tedd.an@intel.com>
Bluetooth: mgmt: Fix Experimental Feature Changed event
Tedd Ho-Jeong An <tedd.an@intel.com>
Bluetooth: hci_vhci: Fix to set the force_wakeup value
xinhui pan <xinhui.pan@amd.com>
drm/ttm: Put BO in its memory manager's lru list
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Reconfigure hardware on resume()
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Hold pm-runtime across bind/unbind
Gang Li <ligang.bdlg@bytedance.com>
shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
Wen Gong <quic_wgong@quicinc.com>
ath11k: add string type to search board data in board-2.bin for WCN6855
Baoquan He <bhe@redhat.com>
mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages
Baoquan He <bhe@redhat.com>
dma/pool: create dma atomic pool only if dma zone has managed pages
Baoquan He <bhe@redhat.com>
mm_zone: add function to check if managed dma zone exists
Yifeng Li <tomli@tomli.me>
PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
Thomas Hellström <thomas.hellstrom@linux.intel.com>
dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
Peng Hao <flyingpenghao@gmail.com>
virtio/virtio_mem: handle a possible NULL as a memcpy parameter
Hao Xu <haoxu@linux.alibaba.com>
io_uring: fix no lock protection for ctx->cq_extra
Dmitry Osipenko <digetx@gmail.com>
drm/tegra: Add back arm_iommu_detach_device()
Dmitry Osipenko <digetx@gmail.com>
gpu: host1x: Add back arm_iommu_detach_device()
Yunfei Wang <yf.wang@mediatek.com>
iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
Hari Prasath <Hari.PrasathGE@microchip.com>
ARM: dts: at91: update alternate function of signal PD20
D Scott Phillips <scott@os.amperecomputing.com>
arm64: errata: Fix exec handling in erratum 1418040 workaround
Sumeet Pawnikar <sumeet.r.pawnikar@intel.com>
thermal/drivers/int340x: Fix RFIM mailbox write commands
Dan Williams <dan.j.williams@intel.com>
cxl/pmem: Fix module reload vs workqueue state
Dan Williams <dan.j.williams@intel.com>
cxl/pmem: Fix reference counting for delayed work
Manivannan Sadhasivam <mani@kernel.org>
bus: mhi: core: Fix race while handling SYS_ERR at power up
Bhaumik Bhatt <quic_bbhatt@quicinc.com>
bus: mhi: core: Fix reading wake_capable channel configuration
Loic Poulain <loic.poulain@linaro.org>
bus: mhi: pci_generic: Graceful shutdown on freeze
Christophe Leroy <christophe.leroy@csgroup.eu>
lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
Jonathan Cameron <Jonathan.Cameron@huawei.com>
iio: trigger: Fix a scheduling whilst atomic issue seen on tsc2046
Jonathan Cameron <Jonathan.Cameron@huawei.com>
iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
Alexander Usyskin <alexander.usyskin@intel.com>
mei: hbm: fix client dma reply status
Johan Hovold <johan@kernel.org>
can: softing_cs: softingcs_probe(): fix memleak on registration failure
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: cec-pin: fix interrupt en/disable handling
Johan Hovold <johan@kernel.org>
media: stk1160: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: pvrusb2: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: redrat3: fix control-message timeouts
Michael Kuron <michael.kuron@gmail.com>
media: dib0700: fix undefined behavior in tuner shutdown
Johan Hovold <johan@kernel.org>
media: s2255: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: cpia2: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: em28xx: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: mceusb: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: flexcop-usb: fix control-message timeouts
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
Sakari Ailus <sakari.ailus@linux.intel.com>
media: ov8865: Disable only enabled regulators on error path
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: cec: fix a deadlock situation
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: add reserved room in ipc request/response
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: limits exceeding the maximum allowable outstanding requests
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: move credit charge deduction under processing request
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: add support for smb2 max credit parameter
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: fix guest connection failure with nautilus
Dan Carpenter <dan.carpenter@oracle.com>
ksmbd: uninitialized variable in create_socket()
Mohammad Athari Bin Ismail <mohammad.athari.ismail@intel.com>
net: phy: marvell: add Marvell specific PHY loopback
Mateusz Jończyk <mat.jonczyk@o2.pl>
rtc: cmos: take rtc_lock while reading from CMOS
Willy Tarreau <w@1wt.eu>
tools/nolibc: fix incorrect truncation of exit code
Willy Tarreau <w@1wt.eu>
tools/nolibc: i386: fix initial stack alignment
Jakub Kicinski <kuba@kernel.org>
crypto: x86/aesni - don't require alignment of data
Ammar Faizi <ammar.faizi@students.amikom.ac.id>
tools/nolibc: x86-64: Fix startup code bug
Lucas De Marchi <lucas.demarchi@intel.com>
x86/gpu: Reserve stolen memory for first integrated Intel GPU
Jisheng Zhang <jszhang@kernel.org>
riscv: mm: fix wrong phys_ram_base value for RV64
Nick Kossifidis <mick@ics.forth.gr>
riscv: use hart id instead of cpu id on machine_kexec
Nick Kossifidis <mick@ics.forth.gr>
riscv: Don't use va_pa_offset on kdump
Nick Kossifidis <mick@ics.forth.gr>
riscv: try to allocate crashkern region from 32bit addressible memory
Sean Christopherson <seanjc@google.com>
RISC-V: Use common riscv_cpuid_to_hartid_mask() for both SMP=y and SMP=n
Alexandre Ghiti <alexandre.ghiti@canonical.com>
riscv: Get rid of MAXPHYSMEM configs
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: ingenic: JZ4740 needs 'oob_first' read page function
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: Export nand_read_page_hwecc_oob_first()
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Rewrite function description
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Avoid duplicated page read
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Don't calculate ECC when reading page
Andreas Oetken <ennoerlangen@gmail.com>
mtd: Fixed breaking list in __mtd_del_partition.
Stefan Riedmueller <s.riedmueller@phytec.de>
mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
Christian Eggers <ceggers@arri.de>
mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()
Jaegeuk Kim <jaegeuk@kernel.org>
f2fs: avoid EINVAL by SBI_NEED_FSCK when pinning a file
Chao Yu <chao@kernel.org>
f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr()
Chao Yu <chao@kernel.org>
f2fs: fix to do sanity check in is_alive()
Chao Yu <chao@kernel.org>
f2fs: fix to do sanity check on inode type during garbage collection
Shyam Prasad N <sprasad@microsoft.com>
cifs: free ntlmsspblob allocated in negotiate
Takashi Iwai <tiwai@suse.de>
ALSA: core: Fix SSID quirk lookup for subvendor=0
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Avoid using stale array indicies to read contact count
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Ignore the confidence flag when a touch is removed
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Reset expected and received contact counts at the same time
Jann Horn <jannh@google.com>
HID: uhid: Fix worker destroying device without any protection
Karl Kurbjun <kkurbjun@gmail.com>
HID: Ignore battery for Elan touchscreen on HP Envy X360 15t-dr100
Marcelo Tosatti <mtosatti@redhat.com>
KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
David Matlack <dmatlack@google.com>
KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU
-------------
Diffstat:
Documentation/admin-guide/cifs/usage.rst | 7 +-
Documentation/admin-guide/devices.txt | 8 +-
Documentation/admin-guide/hw-vuln/spectre.rst | 2 +-
.../bindings/display/amlogic,meson-dw-hdmi.yaml | 5 +
.../bindings/display/amlogic,meson-vpu.yaml | 6 +
.../devicetree/bindings/input/hid-over-i2c.txt | 2 +
.../devicetree/bindings/thermal/thermal-zones.yaml | 9 +-
.../devicetree/bindings/watchdog/samsung-wdt.yaml | 5 +-
Documentation/driver-api/dmaengine/dmatest.rst | 7 +-
Documentation/driver-api/firewire.rst | 4 +-
.../acpi/dsd/data-node-references.rst | 10 +-
Documentation/trace/coresight/coresight-config.rst | 16 +-
Makefile | 4 +-
arch/arm/Kconfig.debug | 14 +-
arch/arm/boot/compressed/efi-header.S | 22 +-
arch/arm/boot/compressed/head.S | 3 +-
arch/arm/boot/dts/armada-38x.dtsi | 4 +-
arch/arm/boot/dts/gemini-nas4220b.dts | 2 +-
arch/arm/boot/dts/omap3-n900.dts | 50 +-
arch/arm/boot/dts/qcom-sdx55.dtsi | 6 +-
arch/arm/boot/dts/sama7g5-pinfunc.h | 2 +-
arch/arm/boot/dts/stm32f429-disco.dts | 2 +-
arch/arm/configs/cm_x300_defconfig | 1 -
arch/arm/configs/ezx_defconfig | 1 -
arch/arm/configs/imote2_defconfig | 1 -
arch/arm/configs/nhk8815_defconfig | 1 -
arch/arm/configs/pxa_defconfig | 1 -
arch/arm/configs/spear13xx_defconfig | 1 -
arch/arm/configs/spear3xx_defconfig | 1 -
arch/arm/configs/spear6xx_defconfig | 1 -
arch/arm/include/debug/imx-uart.h | 18 +-
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5 +-
arch/arm/net/bpf_jit_32.c | 5 +-
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 2 +-
.../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 +-
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 3 +
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 14 +-
arch/arm64/boot/dts/marvell/cn9130.dtsi | 15 +
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 2 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 5 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2 +-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 4 +-
arch/arm64/boot/dts/qcom/msm8996.dtsi | 3 -
arch/arm64/boot/dts/qcom/sc7280.dtsi | 10 +-
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 27 +
arch/arm64/boot/dts/qcom/sm6350.dtsi | 4 +-
arch/arm64/boot/dts/qcom/sm8350.dtsi | 6 +-
arch/arm64/boot/dts/renesas/cat875.dtsi | 1 +
arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77951.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77960.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77961.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77965.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77980.dtsi | 4 +-
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 10 +-
.../boot/dts/rockchip/rk3399-rock-pi-4b-plus.dts | 7 +-
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts | 7 +-
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts | 7 +-
arch/arm64/boot/dts/ti/k3-am642.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j7200.dtsi | 6 +-
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j721e.dtsi | 6 +-
arch/arm64/include/asm/mte-kasan.h | 8 +-
arch/arm64/kernel/module.c | 4 +-
arch/arm64/kernel/process.c | 39 +-
arch/arm64/lib/clear_page.S | 10 +
arch/arm64/lib/mte.S | 8 +-
arch/arm64/net/bpf_jit_comp.c | 10 +-
arch/mips/Kconfig | 6 +-
arch/mips/bcm63xx/clk.c | 6 +
arch/mips/boot/compressed/Makefile | 2 +-
arch/mips/boot/compressed/clz_ctz.c | 2 +
arch/mips/cavium-octeon/octeon-platform.c | 2 +
arch/mips/cavium-octeon/octeon-usb.c | 1 +
arch/mips/configs/fuloong2e_defconfig | 1 -
arch/mips/configs/malta_qemu_32r6_defconfig | 1 -
arch/mips/configs/maltaaprp_defconfig | 1 -
arch/mips/configs/maltasmvp_defconfig | 1 -
arch/mips/configs/maltasmvp_eva_defconfig | 1 -
arch/mips/configs/maltaup_defconfig | 1 -
arch/mips/include/asm/local.h | 9 +-
.../asm/mach-loongson64/kernel-entry-init.h | 4 +-
arch/mips/include/asm/octeon/cvmx-bootinfo.h | 4 +-
arch/mips/lantiq/clk.c | 6 +
arch/mips/net/bpf_jit_comp32.c | 3 +-
arch/mips/net/bpf_jit_comp64.c | 2 +-
arch/openrisc/include/asm/syscalls.h | 2 +
arch/openrisc/kernel/entry.S | 5 +
arch/parisc/include/asm/special_insns.h | 44 +-
arch/parisc/kernel/traps.c | 2 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi | 2 +
arch/powerpc/configs/ppc6xx_defconfig | 1 -
arch/powerpc/configs/pseries_defconfig | 1 -
arch/powerpc/include/asm/hw_irq.h | 40 +
arch/powerpc/kernel/btext.c | 4 +-
arch/powerpc/kernel/fadump.c | 8 +
arch/powerpc/kernel/head_40x.S | 9 +-
arch/powerpc/kernel/interrupt.c | 2 +-
arch/powerpc/kernel/interrupt_64.S | 10 +-
arch/powerpc/kernel/module.c | 11 +-
arch/powerpc/kernel/prom_init.c | 2 +-
arch/powerpc/kernel/smp.c | 42 +
arch/powerpc/kernel/watchdog.c | 41 +-
arch/powerpc/kvm/book3s_hv.c | 8 +-
arch/powerpc/kvm/book3s_hv_nested.c | 2 +-
arch/powerpc/mm/book3s64/radix_pgtable.c | 4 +-
arch/powerpc/mm/kasan/book3s_32.c | 3 +-
arch/powerpc/mm/pgtable_64.c | 14 +-
arch/powerpc/net/bpf_jit_comp32.c | 4 +-
arch/powerpc/net/bpf_jit_comp64.c | 4 +-
arch/powerpc/perf/core-book3s.c | 58 +-
arch/powerpc/platforms/cell/iommu.c | 1 +
arch/powerpc/platforms/cell/pervasive.c | 1 +
arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 1 +
arch/powerpc/platforms/powermac/low_i2c.c | 3 +
arch/powerpc/platforms/powernv/opal-lpc.c | 1 +
arch/powerpc/sysdev/xive/spapr.c | 3 +
arch/riscv/Kconfig | 23 +-
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi | 3 -
arch/riscv/configs/defconfig | 1 +
arch/riscv/configs/nommu_k210_defconfig | 2 -
arch/riscv/configs/nommu_k210_sdcard_defconfig | 2 -
arch/riscv/configs/nommu_virt_defconfig | 1 -
arch/riscv/configs/rv32_defconfig | 1 +
arch/riscv/include/asm/smp.h | 10 +-
arch/riscv/kernel/kexec_relocate.S | 20 +-
arch/riscv/kernel/machine_kexec.c | 3 +-
arch/riscv/kernel/setup.c | 10 +
arch/riscv/kernel/smp.c | 10 -
arch/riscv/kvm/main.c | 8 +
arch/riscv/mm/init.c | 19 +-
arch/riscv/net/bpf_jit_comp32.c | 6 +-
arch/riscv/net/bpf_jit_comp64.c | 7 +-
arch/s390/kernel/module.c | 5 +-
arch/s390/kvm/kvm-s390.c | 2 +-
arch/s390/mm/pgalloc.c | 4 +-
arch/s390/net/bpf_jit_comp.c | 6 +-
arch/sh/configs/titan_defconfig | 1 -
arch/sparc/net/bpf_jit_comp_64.c | 2 +-
arch/um/.gitignore | 1 +
arch/um/drivers/virt-pci.c | 8 +-
arch/um/drivers/virtio_uml.c | 4 +
arch/um/include/asm/delay.h | 4 +-
arch/um/include/asm/irqflags.h | 4 +-
arch/um/include/shared/longjmp.h | 2 +-
arch/um/include/shared/os.h | 4 +-
arch/um/include/shared/registers.h | 4 +-
arch/um/kernel/ksyms.c | 2 +-
arch/um/os-Linux/registers.c | 4 +-
arch/um/os-Linux/sigio.c | 6 +-
arch/um/os-Linux/signal.c | 8 +-
arch/um/os-Linux/start_up.c | 2 +-
arch/x86/boot/compressed/Makefile | 7 +-
arch/x86/configs/i386_defconfig | 1 +
arch/x86/configs/x86_64_defconfig | 1 +
arch/x86/crypto/aesni-intel_glue.c | 4 +-
arch/x86/hyperv/mmu.c | 19 +-
arch/x86/include/asm/realmode.h | 1 +
arch/x86/include/asm/topology.h | 2 +-
arch/x86/include/asm/uaccess.h | 5 +-
arch/x86/kernel/cpu/mce/core.c | 42 +-
arch/x86/kernel/cpu/mce/inject.c | 2 +-
arch/x86/kernel/cpu/mce/severity.c | 33 +-
arch/x86/kernel/early-quirks.c | 10 +-
arch/x86/kernel/module.c | 7 +-
arch/x86/kernel/reboot.c | 12 +-
arch/x86/kvm/cpuid.c | 90 +-
arch/x86/kvm/mmu/tdp_mmu.c | 6 +-
arch/x86/kvm/vmx/posted_intr.c | 25 +-
arch/x86/kvm/x86.c | 30 +-
arch/x86/net/bpf_jit_comp.c | 10 +-
arch/x86/net/bpf_jit_comp32.c | 4 +-
arch/x86/realmode/init.c | 26 +
arch/x86/um/syscalls_64.c | 3 +-
block/bfq-iosched.c | 44 +-
block/blk-flush.c | 4 +-
block/blk-pm.c | 22 +-
block/genhd.c | 15 +-
block/mq-deadline.c | 4 +-
crypto/jitterentropy.c | 3 +-
drivers/acpi/acpica/exfield.c | 7 +-
drivers/acpi/acpica/exoparg1.c | 3 +-
drivers/acpi/acpica/hwesleep.c | 4 +-
drivers/acpi/acpica/hwsleep.c | 4 +-
drivers/acpi/acpica/hwxfsleep.c | 2 -
drivers/acpi/acpica/utdelete.c | 1 +
drivers/acpi/battery.c | 22 +
drivers/acpi/bus.c | 4 +-
drivers/acpi/cppc_acpi.c | 2 +-
drivers/acpi/ec.c | 57 +-
drivers/acpi/internal.h | 2 +
drivers/acpi/scan.c | 13 +-
drivers/acpi/x86/utils.c | 116 ++-
drivers/android/binder.c | 98 ++-
drivers/base/core.c | 3 +-
drivers/base/power/runtime.c | 41 +-
drivers/base/property.c | 4 +-
drivers/base/regmap/regmap.c | 1 +
drivers/base/swnode.c | 2 +-
drivers/block/floppy.c | 6 +-
drivers/block/null_blk/main.c | 8 +-
drivers/bluetooth/btintel.c | 26 +-
drivers/bluetooth/btmtksdio.c | 2 +
drivers/bluetooth/btusb.c | 5 +
drivers/bluetooth/hci_bcm.c | 7 +-
drivers/bluetooth/hci_qca.c | 9 +-
drivers/bluetooth/hci_vhci.c | 4 +
drivers/bluetooth/virtio_bt.c | 3 +
drivers/bus/mhi/core/init.c | 1 +
drivers/bus/mhi/core/pm.c | 35 +-
drivers/bus/mhi/pci_generic.c | 2 +-
drivers/char/mwave/3780i.h | 2 +-
drivers/char/random.c | 19 +-
drivers/char/tpm/tpm-chip.c | 18 +-
drivers/char/tpm/tpm_tis_core.c | 14 +-
drivers/clk/bcm/clk-bcm2835.c | 13 +-
drivers/clk/clk-bm1880.c | 20 +-
drivers/clk/clk-si5341.c | 2 +-
drivers/clk/clk-stm32f4.c | 4 -
drivers/clk/clk.c | 18 +
drivers/clk/imx/clk-imx8mn.c | 6 +-
drivers/clk/meson/gxbb.c | 44 +-
drivers/clk/qcom/gcc-sc7280.c | 2 +-
drivers/clk/renesas/rzg2l-cpg.c | 17 +-
drivers/clk/samsung/clk-exynos850.c | 70 +-
drivers/counter/104-quad-8.c | 82 +-
drivers/cpufreq/cpufreq.c | 4 +-
drivers/cpufreq/intel_pstate.c | 24 +-
drivers/cpufreq/qcom-cpufreq-hw.c | 7 +-
drivers/crypto/atmel-aes.c | 6 +-
drivers/crypto/caam/caamalg.c | 6 +
drivers/crypto/caam/caamalg_qi2.c | 2 +-
drivers/crypto/caam/caamhash.c | 3 +
drivers/crypto/caam/caampkc.c | 3 +
drivers/crypto/ccp/sev-dev.c | 30 +-
drivers/crypto/hisilicon/hpre/hpre_crypto.c | 2 +-
drivers/crypto/hisilicon/qm.c | 5 +-
drivers/crypto/keembay/keembay-ocs-ecc.c | 1 +
drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c | 9 +-
.../crypto/marvell/octeontx2/otx2_cptpf_ucode.c | 3 +-
drivers/crypto/omap-aes.c | 2 +-
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 12 +-
drivers/crypto/qce/aead.c | 2 +-
drivers/crypto/qce/sha.c | 2 +-
drivers/crypto/qce/skcipher.c | 2 +-
drivers/crypto/stm32/stm32-crc32.c | 4 +-
drivers/crypto/stm32/stm32-cryp.c | 938 ++++++++-------------
drivers/crypto/stm32/stm32-hash.c | 6 +-
drivers/cxl/core/bus.c | 6 +-
drivers/cxl/core/pmem.c | 8 +-
drivers/cxl/cxl.h | 10 +-
drivers/cxl/pmem.c | 46 +-
drivers/dax/super.c | 6 +-
drivers/dma-buf/dma-fence-array.c | 6 +-
drivers/dma-buf/heaps/cma_heap.c | 6 +-
drivers/dma/at_xdmac.c | 57 +-
drivers/dma/idxd/device.c | 12 +-
drivers/dma/mmp_pdma.c | 6 -
drivers/dma/pxa_dma.c | 7 -
drivers/dma/stm32-mdma.c | 2 +-
drivers/dma/uniphier-xdmac.c | 5 +-
drivers/edac/synopsys_edac.c | 3 +-
drivers/firmware/efi/efi-init.c | 5 +
drivers/firmware/google/Kconfig | 6 +-
drivers/firmware/sysfb_simplefb.c | 8 +-
drivers/gpio/gpio-aspeed-sgpio.c | 32 +-
drivers/gpio/gpio-aspeed.c | 52 +-
drivers/gpio/gpio-idt3243x.c | 4 +-
drivers/gpio/gpio-mpc8xxx.c | 4 +-
drivers/gpio/gpiolib-acpi.c | 15 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 5 +-
drivers/gpu/drm/amd/amdgpu/cik.c | 4 +
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 13 +-
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 18 +-
drivers/gpu/drm/amd/amdgpu/vi.c | 4 +
drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 3 +
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 138 ++-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 46 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 5 +-
drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 3 +-
.../amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c | 11 +-
.../drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 11 +-
drivers/gpu/drm/amd/display/dc/core/dc.c | 3 +-
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 2 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.c | 3 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 3 +-
.../amd/display/dc/irq/dcn20/irq_service_dcn20.c | 25 -
.../amd/display/dc/irq/dcn20/irq_service_dcn20.h | 2 -
.../amd/display/dc/irq/dcn21/irq_service_dcn21.c | 25 -
.../amd/display/dc/irq/dcn21/irq_service_dcn21.h | 2 -
drivers/gpu/drm/amd/display/dc/irq/irq_service.c | 2 +-
drivers/gpu/drm/amd/display/dc/irq/irq_service.h | 4 -
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 6 +
drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 14 +-
drivers/gpu/drm/bridge/display-connector.c | 2 +-
.../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 40 +-
.../gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 10 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 4 +-
.../gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 9 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 12 +-
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 2 +-
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 +
drivers/gpu/drm/drm_atomic_helper.c | 2 +-
drivers/gpu/drm/drm_dp_helper.c | 40 +-
drivers/gpu/drm/drm_drv.c | 9 +-
drivers/gpu/drm/drm_gem_cma_helper.c | 17 +-
drivers/gpu/drm/drm_gem_shmem_helper.c | 17 +-
drivers/gpu/drm/drm_gem_vram_helper.c | 4 +-
drivers/gpu/drm/drm_panel_orientation_quirks.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 1 +
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 10 +-
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 1 -
drivers/gpu/drm/i915/pxp/intel_pxp_tee.c | 5 +-
drivers/gpu/drm/lima/lima_device.c | 1 +
drivers/gpu/drm/lima/lima_gem.c | 2 +-
drivers/gpu/drm/msm/Kconfig | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4 +-
drivers/gpu/drm/msm/dsi/dsi.c | 10 +-
drivers/gpu/drm/msm/dsi/dsi.h | 1 -
drivers/gpu/drm/msm/dsi/dsi_manager.c | 17 -
drivers/gpu/drm/msm/msm_gem_submit.c | 2 +-
drivers/gpu/drm/nouveau/dispnv04/disp.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 37 +-
.../gpu/drm/panel/panel-feiyang-fy07024di26a30d.c | 8 +-
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 10 +-
drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 8 +-
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 8 +-
drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 8 +-
.../gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 8 +-
drivers/gpu/drm/panel/panel-ronbo-rb070d30.c | 8 +-
.../drm/panel/panel-samsung-s6e88a0-ams452ef01.c | 1 +
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 1 +
drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 8 +-
drivers/gpu/drm/panfrost/panfrost_gem.c | 2 +-
drivers/gpu/drm/radeon/radeon_kms.c | 42 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 31 +-
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 6 +-
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 82 +-
drivers/gpu/drm/scheduler/sched_entity.c | 15 +-
drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c | 4 +-
drivers/gpu/drm/tegra/drm.c | 15 +
drivers/gpu/drm/tegra/gr2d.c | 33 +-
drivers/gpu/drm/tegra/submit.c | 4 +-
drivers/gpu/drm/tegra/vic.c | 7 +-
drivers/gpu/drm/ttm/ttm_bo.c | 2 +
drivers/gpu/drm/v3d/v3d_bo.c | 4 +-
drivers/gpu/drm/vboxvideo/vbox_main.c | 4 +-
drivers/gpu/drm/vc4/vc4_crtc.c | 31 +-
drivers/gpu/drm/vc4/vc4_drv.h | 29 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 136 ++-
drivers/gpu/drm/vc4/vc4_hvs.c | 26 +-
drivers/gpu/drm/vc4/vc4_kms.c | 3 +-
drivers/gpu/drm/vc4/vc4_txp.c | 4 +-
drivers/gpu/drm/vgem/vgem_drv.c | 2 +-
drivers/gpu/drm/virtio/virtgpu_ioctl.c | 4 +-
drivers/gpu/drm/virtio/virtgpu_object.c | 2 +-
drivers/gpu/drm/vmwgfx/Makefile | 3 +-
drivers/gpu/drm/vmwgfx/ttm_memory.c | 99 +--
drivers/gpu/drm/vmwgfx/ttm_memory.h | 6 +-
drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c | 7 +
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 48 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 20 +-
drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 12 +-
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 4 +-
drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c | 90 ++
drivers/gpu/drm/vmwgfx/vmwgfx_thp.c | 184 ----
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 58 +-
drivers/gpu/host1x/Kconfig | 1 +
drivers/gpu/host1x/dev.c | 15 +
drivers/hid/hid-apple.c | 2 +-
drivers/hid/hid-ids.h | 1 +
drivers/hid/hid-input.c | 8 +
drivers/hid/hid-magicmouse.c | 95 ++-
drivers/hid/hid-uclogic-params.c | 31 +-
drivers/hid/hid-vivaldi.c | 34 +-
drivers/hid/i2c-hid/i2c-hid-acpi.c | 2 +-
drivers/hid/i2c-hid/i2c-hid-core.c | 4 +-
drivers/hid/i2c-hid/i2c-hid-of-goodix.c | 2 +-
drivers/hid/i2c-hid/i2c-hid-of.c | 10 +-
drivers/hid/i2c-hid/i2c-hid.h | 2 +-
drivers/hid/uhid.c | 29 +-
drivers/hid/wacom_wac.c | 39 +-
drivers/hsi/hsi_core.c | 1 +
drivers/hwmon/mr75203.c | 2 +-
drivers/i2c/busses/i2c-designware-pcidrv.c | 8 +-
drivers/i2c/busses/i2c-i801.c | 15 +-
drivers/i2c/busses/i2c-mpc.c | 23 +-
drivers/i3c/master.c | 3 +-
drivers/i3c/master/dw-i3c-master.c | 4 +
drivers/i3c/master/mipi-i3c-hci/dat_v1.c | 4 +-
drivers/iio/adc/ti-adc081c.c | 22 +-
drivers/iio/chemical/sunrise_co2.c | 4 +-
drivers/iio/industrialio-trigger.c | 36 +-
drivers/infiniband/core/cma.c | 12 +-
drivers/infiniband/core/device.c | 3 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1 -
drivers/infiniband/hw/cxgb4/qp.c | 1 +
drivers/infiniband/hw/hns/hns_roce_main.c | 5 +-
drivers/infiniband/hw/qedr/verbs.c | 2 +
drivers/infiniband/sw/rxe/rxe_opcode.c | 2 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 2 +-
drivers/input/touchscreen/ti_am335x_tsc.c | 8 +-
drivers/interconnect/qcom/icc-rpm.c | 1 +
drivers/iommu/amd/amd_iommu_types.h | 2 -
drivers/iommu/amd/init.c | 107 +--
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 2 +-
drivers/iommu/io-pgtable-arm-v7s.c | 6 +-
drivers/iommu/io-pgtable-arm.c | 9 +-
drivers/iommu/iommu.c | 3 +-
drivers/iommu/iova.c | 3 +-
drivers/irqchip/irq-gic-v3.c | 16 +
drivers/leds/leds-lp55xx-common.c | 4 +-
drivers/mailbox/imx-mailbox.c | 4 +-
drivers/mailbox/mailbox-mpfs.c | 2 +-
drivers/mailbox/mtk-cmdq-mailbox.c | 2 +-
drivers/mailbox/pcc.c | 10 +-
drivers/md/dm-linear.c | 2 +-
drivers/md/dm-log-writes.c | 2 +-
drivers/md/dm-stripe.c | 2 +-
drivers/md/dm-writecache.c | 2 +-
drivers/md/dm.c | 6 +-
drivers/md/md.c | 27 +-
drivers/md/md.h | 2 +
drivers/md/persistent-data/dm-btree.c | 8 +-
drivers/md/persistent-data/dm-space-map-common.c | 5 +
drivers/md/raid0.c | 38 +-
drivers/md/raid5.c | 41 +-
drivers/media/Kconfig | 8 +-
drivers/media/cec/core/cec-adap.c | 38 +-
drivers/media/cec/core/cec-api.c | 6 +
drivers/media/cec/core/cec-core.c | 3 +
drivers/media/cec/core/cec-pin.c | 31 +-
drivers/media/common/saa7146/saa7146_fops.c | 2 +-
.../media/common/videobuf2/videobuf2-dma-contig.c | 8 +-
drivers/media/dvb-core/dmxdev.c | 18 +-
drivers/media/dvb-frontends/dib8000.c | 4 +-
drivers/media/i2c/imx274.c | 5 +
drivers/media/i2c/ov8865.c | 16 +-
drivers/media/pci/b2c2/flexcop-pci.c | 3 +
drivers/media/pci/intel/ipu3/cio2-bridge.c | 4 +-
drivers/media/pci/saa7146/hexium_gemini.c | 7 +-
drivers/media/pci/saa7146/hexium_orion.c | 8 +-
drivers/media/pci/saa7146/mxb.c | 8 +-
drivers/media/platform/aspeed-video.c | 14 +-
drivers/media/platform/coda/coda-common.c | 8 +-
drivers/media/platform/coda/coda-jpeg.c | 21 +-
drivers/media/platform/coda/imx-vdoa.c | 6 +-
drivers/media/platform/imx-pxp.c | 4 +-
.../media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 2 +
.../media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 2 +-
drivers/media/platform/qcom/venus/core.c | 11 +-
drivers/media/platform/qcom/venus/pm_helpers.c | 32 +-
drivers/media/platform/rcar-vin/rcar-csi2.c | 18 +-
drivers/media/platform/rcar-vin/rcar-v4l2.c | 15 +-
.../media/platform/rockchip/rkisp1/rkisp1-dev.c | 2 +-
drivers/media/radio/si470x/radio-si470x-i2c.c | 3 +-
drivers/media/rc/igorplugusb.c | 4 +-
drivers/media/rc/mceusb.c | 8 +-
drivers/media/rc/redrat3.c | 22 +-
drivers/media/tuners/msi001.c | 7 +
drivers/media/tuners/si2157.c | 2 +-
drivers/media/usb/b2c2/flexcop-usb.c | 10 +-
drivers/media/usb/b2c2/flexcop-usb.h | 12 +-
drivers/media/usb/cpia2/cpia2_usb.c | 4 +-
drivers/media/usb/dvb-usb/dib0700_core.c | 2 -
drivers/media/usb/dvb-usb/dw2102.c | 338 +++++---
drivers/media/usb/dvb-usb/m920x.c | 12 +-
drivers/media/usb/em28xx/em28xx-cards.c | 18 +-
drivers/media/usb/em28xx/em28xx-core.c | 4 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 8 +-
drivers/media/usb/s2255/s2255drv.c | 4 +-
drivers/media/usb/stk1160/stk1160-core.c | 4 +-
drivers/media/usb/uvc/uvc_ctrl.c | 4 +-
drivers/media/usb/uvc/uvc_v4l2.c | 6 +-
drivers/media/usb/uvc/uvcvideo.h | 2 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 4 +-
drivers/memory/renesas-rpc-if.c | 2 +-
drivers/mfd/atmel-flexcom.c | 11 +-
drivers/mfd/intel_soc_pmic_core.c | 28 +-
drivers/mfd/tps65910.c | 22 +-
drivers/misc/eeprom/at25.c | 13 +-
.../misc/habanalabs/common/command_submission.c | 22 +-
drivers/misc/habanalabs/common/firmware_if.c | 17 +-
drivers/misc/habanalabs/common/habanalabs.h | 2 +
drivers/misc/lattice-ecp3-config.c | 12 +-
drivers/misc/lkdtm/Makefile | 2 +-
drivers/misc/mei/hbm.c | 20 +-
drivers/mmc/core/sdio.c | 4 +-
drivers/mmc/host/meson-mx-sdhc-mmc.c | 5 +
drivers/mmc/host/meson-mx-sdio.c | 5 +
drivers/mmc/host/mtk-sd.c | 64 +-
drivers/mmc/host/omap_hsmmc.c | 36 -
drivers/mmc/host/sdhci-pci-gli.c | 11 +
drivers/mmc/host/tmio_mmc_core.c | 15 +-
drivers/mtd/hyperbus/rpc-if.c | 8 +-
drivers/mtd/mtdcore.c | 4 +-
drivers/mtd/mtdpart.c | 2 +-
drivers/mtd/nand/raw/davinci_nand.c | 73 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 37 +-
drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c | 5 +
drivers/mtd/nand/raw/nand_base.c | 67 ++
drivers/mtd/spi-nor/core.c | 19 +-
drivers/mtd/spi-nor/xilinx.c | 18 +-
drivers/net/amt.c | 2 +-
drivers/net/bonding/bond_main.c | 40 +-
drivers/net/can/at91_can.c | 6 -
drivers/net/can/c_can/c_can_main.c | 5 -
drivers/net/can/cc770/cc770.c | 3 -
drivers/net/can/dev/dev.c | 4 -
drivers/net/can/dev/rx-offload.c | 6 +-
drivers/net/can/flexcan.c | 150 ++--
drivers/net/can/ifi_canfd/ifi_canfd.c | 5 -
drivers/net/can/kvaser_pciefd.c | 5 -
drivers/net/can/m_can/m_can.c | 7 -
drivers/net/can/mscan/mscan.c | 9 +-
drivers/net/can/pch_can.c | 3 -
drivers/net/can/peak_canfd/peak_canfd.c | 4 -
drivers/net/can/rcar/rcar_can.c | 6 +-
drivers/net/can/rcar/rcar_canfd.c | 9 +-
drivers/net/can/sja1000/sja1000.c | 2 -
drivers/net/can/softing/softing_cs.c | 2 +-
drivers/net/can/softing/softing_fw.c | 11 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 6 +-
drivers/net/can/sun4i_can.c | 7 +-
drivers/net/can/usb/ems_usb.c | 2 -
drivers/net/can/usb/esd_usb2.c | 2 -
drivers/net/can/usb/etas_es58x/es58x_core.c | 7 -
drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c | 2 -
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 8 -
drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c | 4 -
drivers/net/can/usb/peak_usb/pcan_usb.c | 2 -
drivers/net/can/usb/peak_usb/pcan_usb_fd.c | 3 -
drivers/net/can/usb/peak_usb/pcan_usb_pro.c | 2 -
drivers/net/can/usb/ucan.c | 6 +-
drivers/net/can/usb/usb_8dev.c | 2 -
drivers/net/can/xilinx_can.c | 16 +-
drivers/net/dsa/hirschmann/hellcreek.c | 87 +-
drivers/net/dsa/rtl8365mb.c | 15 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 +
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c | 4 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 9 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h | 3 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 10 +-
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c | 3 +-
drivers/net/ethernet/cortina/gemini.c | 9 +-
drivers/net/ethernet/freescale/fman/mac.c | 21 +-
drivers/net/ethernet/freescale/xgmac_mdio.c | 28 +-
drivers/net/ethernet/i825xx/sni_82596.c | 3 +-
drivers/net/ethernet/intel/igc/igc_main.c | 4 +-
drivers/net/ethernet/lantiq_etop.c | 4 +-
drivers/net/ethernet/marvell/octeontx2/af/ptp.c | 2 +
.../net/ethernet/marvell/octeontx2/af/rvu_cpt.c | 5 +-
.../ethernet/marvell/octeontx2/af/rvu_devlink.c | 2 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 5 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 55 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 16 +-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 36 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 5 +-
.../ethernet/mellanox/mlx5/core/en/tc_tun_encap.c | 2 +
.../net/ethernet/mellanox/mlx5/core/en/xsk/pool.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 19 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 3 +
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 120 ++-
.../net/ethernet/mellanox/mlx5/core/esw/legacy.c | 2 +-
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 28 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 8 +-
.../net/ethernet/mellanox/mlx5/core/sf/dev/dev.c | 5 +-
.../mellanox/mlx5/core/steering/dr_matcher.c | 53 +-
drivers/net/ethernet/mellanox/mlxsw/cmd.h | 12 +
drivers/net/ethernet/mellanox/mlxsw/pci.c | 7 +-
drivers/net/ethernet/mscc/ocelot.c | 31 +-
drivers/net/ethernet/mscc/ocelot_flower.c | 44 +-
drivers/net/ethernet/mscc/ocelot_net.c | 6 +-
drivers/net/ethernet/renesas/ravb_main.c | 6 +-
drivers/net/ethernet/rocker/rocker_ofdpa.c | 3 +-
.../ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 7 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 +
drivers/net/ethernet/ti/cpsw.c | 6 +-
drivers/net/ethernet/ti/cpsw_new.c | 6 +-
drivers/net/ethernet/ti/cpsw_priv.c | 2 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 135 +--
drivers/net/ipa/ipa_endpoint.c | 7 +-
drivers/net/phy/marvell.c | 62 +-
drivers/net/phy/mdio_bus.c | 2 +-
drivers/net/phy/micrel.c | 36 +-
drivers/net/phy/phy-core.c | 2 +-
drivers/net/phy/sfp.c | 25 +-
drivers/net/ppp/ppp_generic.c | 7 +-
drivers/net/usb/mcs7830.c | 12 +-
drivers/net/usb/smsc95xx.c | 3 +-
drivers/net/wireless/ath/ar5523/ar5523.c | 4 +
drivers/net/wireless/ath/ath10k/core.c | 19 +-
drivers/net/wireless/ath/ath10k/htt_tx.c | 3 +
drivers/net/wireless/ath/ath10k/hw.h | 3 +
drivers/net/wireless/ath/ath10k/txrx.c | 2 -
drivers/net/wireless/ath/ath10k/wmi.c | 27 +-
drivers/net/wireless/ath/ath11k/ahb.c | 28 +-
drivers/net/wireless/ath/ath11k/core.c | 42 +-
drivers/net/wireless/ath/ath11k/core.h | 15 +-
drivers/net/wireless/ath/ath11k/dp.c | 38 +-
drivers/net/wireless/ath/ath11k/dp.h | 4 +-
drivers/net/wireless/ath/ath11k/dp_rx.c | 16 +-
drivers/net/wireless/ath/ath11k/dp_tx.c | 2 +-
drivers/net/wireless/ath/ath11k/hal.c | 50 +-
drivers/net/wireless/ath/ath11k/hal.h | 3 +
drivers/net/wireless/ath/ath11k/hal_rx.c | 2 +-
drivers/net/wireless/ath/ath11k/hw.c | 2 -
drivers/net/wireless/ath/ath11k/hw.h | 3 +
drivers/net/wireless/ath/ath11k/mac.c | 59 +-
drivers/net/wireless/ath/ath11k/pci.c | 34 +-
drivers/net/wireless/ath/ath11k/qmi.h | 2 +-
drivers/net/wireless/ath/ath11k/reg.c | 103 +--
drivers/net/wireless/ath/ath11k/wmi.c | 5 +-
drivers/net/wireless/ath/ath9k/hif_usb.c | 7 +
drivers/net/wireless/ath/ath9k/htc.h | 2 +
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 13 +
drivers/net/wireless/ath/ath9k/wmi.c | 4 +
drivers/net/wireless/ath/wcn36xx/dxe.c | 49 +-
drivers/net/wireless/ath/wcn36xx/main.c | 34 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 10 +-
drivers/net/wireless/ath/wcn36xx/txrx.c | 41 +-
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 +
drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 2 +-
drivers/net/wireless/intel/iwlwifi/fw/api/power.h | 8 +-
drivers/net/wireless/intel/iwlwifi/fw/dump.c | 9 +
drivers/net/wireless/intel/iwlwifi/fw/img.c | 6 +-
drivers/net/wireless/intel/iwlwifi/fw/img.h | 4 +
drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 5 +-
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 17 +-
drivers/net/wireless/intel/iwlwifi/iwl-io.c | 2 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 18 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 17 +
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 27 +
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 23 +-
.../net/wireless/intel/iwlwifi/mvm/time-event.c | 36 +-
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 7 +-
drivers/net/wireless/intel/iwlwifi/queue/tx.c | 1 +
drivers/net/wireless/marvell/mwifiex/sta_event.c | 8 +-
drivers/net/wireless/marvell/mwifiex/usb.c | 3 +-
drivers/net/wireless/mediatek/mt76/debugfs.c | 2 +-
drivers/net/wireless/mediatek/mt76/mac80211.c | 7 +-
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 4 +
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 12 +-
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c | 174 ++--
.../net/wireless/mediatek/mt76/mt7615/pci_init.c | 8 +-
.../net/wireless/mediatek/mt76/mt7615/testmode.c | 4 +-
.../net/wireless/mediatek/mt76/mt76_connac_mac.c | 3 -
.../net/wireless/mediatek/mt76/mt76_connac_mcu.c | 64 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.h | 77 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 81 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 8 +
.../net/wireless/mediatek/mt76/mt7921/debugfs.c | 12 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 13 +-
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 30 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 116 ++-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.h | 27 +
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 2 +
drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 21 +-
.../net/wireless/mediatek/mt76/mt7921/pci_mac.c | 4 +
.../net/wireless/mediatek/mt76/mt7921/pci_mcu.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c | 48 +-
drivers/net/wireless/mediatek/mt76/sdio.c | 3 +-
drivers/net/wireless/mediatek/mt76/sdio_txrx.c | 3 +-
drivers/net/wireless/microchip/wilc1000/netdev.c | 1 -
drivers/net/wireless/microchip/wilc1000/sdio.c | 2 +
drivers/net/wireless/microchip/wilc1000/spi.c | 2 +
drivers/net/wireless/realtek/rtw88/main.c | 2 +-
drivers/net/wireless/realtek/rtw88/pci.c | 61 +-
drivers/net/wireless/realtek/rtw88/pci.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
drivers/net/wireless/realtek/rtw89/mac80211.c | 1 +
drivers/net/wireless/realtek/rtw89/phy.c | 33 +-
drivers/net/wireless/rsi/rsi_91x_main.c | 4 +
drivers/net/wireless/rsi/rsi_91x_usb.c | 9 +-
drivers/net/wireless/rsi/rsi_usb.h | 2 +
drivers/net/wwan/mhi_wwan_mbim.c | 4 +-
drivers/ntb/hw/mscc/ntb_hw_switchtec.c | 16 +-
drivers/nvmem/core.c | 2 +
drivers/of/base.c | 11 +-
drivers/of/fdt.c | 25 +-
drivers/of/unittest.c | 21 +-
drivers/parisc/pdc_stable.c | 4 +-
drivers/pci/controller/dwc/pcie-designware.c | 7 +-
drivers/pci/controller/dwc/pcie-qcom.c | 12 +-
drivers/pci/controller/pci-aardvark.c | 10 +-
drivers/pci/controller/pci-mvebu.c | 260 +++++-
drivers/pci/controller/pci-xgene.c | 2 +-
drivers/pci/controller/pcie-apple.c | 7 +-
drivers/pci/controller/pcie-mediatek-gen3.c | 8 +
drivers/pci/controller/pcie-mt7621.c | 2 +
drivers/pci/controller/pcie-rcar-host.c | 10 +-
drivers/pci/hotplug/pciehp.h | 3 +
drivers/pci/hotplug/pciehp_core.c | 2 +-
drivers/pci/hotplug/pciehp_hpc.c | 21 +-
drivers/pci/msi.c | 26 +-
drivers/pci/pci-bridge-emul.c | 70 +-
drivers/pci/quirks.c | 3 +
drivers/pcmcia/cs.c | 8 +-
drivers/pcmcia/rsrc_nonstatic.c | 6 +
drivers/perf/arm-cmn.c | 5 +-
drivers/phy/cadence/phy-cadence-sierra.c | 31 +-
drivers/phy/mediatek/phy-mtk-mipi-dsi.c | 2 +
drivers/phy/mediatek/phy-mtk-tphy.c | 162 ++++
drivers/phy/socionext/phy-uniphier-usb3ss.c | 10 +-
drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 2 +
drivers/pinctrl/mediatek/pinctrl-paris.c | 2 +-
drivers/pinctrl/pinctrl-apple-gpio.c | 2 +-
drivers/pinctrl/pinctrl-rockchip.c | 2 +-
drivers/platform/x86/wmi.c | 17 +-
drivers/power/reset/mt6323-poweroff.c | 3 +
drivers/ptp/ptp_vclock.c | 10 +-
drivers/regulator/da9121-regulator.c | 5 +
drivers/regulator/qcom-labibb-regulator.c | 2 +-
drivers/regulator/qcom_smd-regulator.c | 100 ++-
drivers/remoteproc/imx_rproc.c | 1 +
drivers/rpmsg/rpmsg_core.c | 20 +-
drivers/rtc/dev.c | 6 +-
drivers/rtc/rtc-cmos.c | 3 +
drivers/rtc/rtc-pxa.c | 4 +
drivers/scsi/hisi_sas/hisi_sas_main.c | 8 +-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 1 +
drivers/scsi/lpfc/lpfc.h | 2 +-
drivers/scsi/lpfc/lpfc_attr.c | 62 +-
drivers/scsi/lpfc/lpfc_els.c | 11 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 8 +-
drivers/scsi/lpfc/lpfc_init.c | 8 +-
drivers/scsi/lpfc/lpfc_nportdisc.c | 6 +
drivers/scsi/lpfc/lpfc_sli.c | 6 -
drivers/scsi/mpi3mr/mpi3mr.h | 3 +-
drivers/scsi/mpi3mr/mpi3mr_fw.c | 4 +-
drivers/scsi/pm8001/pm8001_hwi.c | 4 +-
drivers/scsi/scsi.c | 4 +-
drivers/scsi/scsi_debugfs.c | 1 +
drivers/scsi/scsi_pm.c | 2 +-
drivers/scsi/sr.c | 2 +-
drivers/scsi/sr_vendor.c | 4 +-
drivers/scsi/ufs/tc-dwc-g210-pci.c | 1 -
drivers/scsi/ufs/ufs-mediatek.c | 2 +-
drivers/scsi/ufs/ufshcd-pci.c | 2 -
drivers/scsi/ufs/ufshcd-pltfrm.c | 2 -
drivers/scsi/ufs/ufshcd.c | 22 +-
drivers/soc/imx/gpcv2.c | 3 +-
drivers/soc/mediatek/mtk-scpsys.c | 15 +-
drivers/soc/qcom/cpr.c | 2 +-
drivers/soc/ti/pruss.c | 2 +-
drivers/spi/spi-geni-qcom.c | 32 +-
drivers/spi/spi-hisi-kunpeng.c | 15 +-
drivers/spi/spi-meson-spifc.c | 1 +
drivers/spi/spi-uniphier.c | 11 +-
drivers/spi/spi.c | 13 +-
drivers/staging/greybus/audio_topology.c | 15 +
drivers/staging/media/atomisp/i2c/ov2680.h | 24 -
drivers/staging/media/atomisp/pci/atomisp_cmd.c | 82 +-
drivers/staging/media/atomisp/pci/atomisp_fops.c | 11 +
.../media/atomisp/pci/atomisp_gmin_platform.c | 2 +-
drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 188 ++++-
drivers/staging/media/atomisp/pci/atomisp_subdev.c | 15 +-
drivers/staging/media/atomisp/pci/atomisp_subdev.h | 3 +
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 13 +-
drivers/staging/media/atomisp/pci/atomisp_v4l2.h | 3 +-
drivers/staging/media/atomisp/pci/sh_css.c | 27 +-
drivers/staging/media/atomisp/pci/sh_css_mipi.c | 41 +-
drivers/staging/media/atomisp/pci/sh_css_params.c | 8 +-
drivers/staging/media/hantro/hantro_drv.c | 3 +-
drivers/staging/media/hantro/hantro_h1_jpeg_enc.c | 2 +-
drivers/staging/media/hantro/hantro_hw.h | 3 +-
.../media/hantro/rockchip_vpu2_hw_jpeg_enc.c | 17 +
drivers/staging/media/hantro/rockchip_vpu_hw.c | 5 +-
drivers/staging/rtl8192e/rtllib.h | 2 +-
drivers/staging/rtl8192e/rtllib_module.c | 16 +-
drivers/staging/rtl8192e/rtllib_softmac.c | 6 +-
drivers/tee/tee_core.c | 4 +-
drivers/thermal/imx8mm_thermal.c | 3 +
drivers/thermal/imx_thermal.c | 145 ++--
.../int340x_thermal/processor_thermal_device.h | 3 +-
.../intel/int340x_thermal/processor_thermal_mbox.c | 100 ++-
.../intel/int340x_thermal/processor_thermal_rfim.c | 23 +-
drivers/thunderbolt/acpi.c | 13 +
drivers/tty/mxser.c | 44 +-
drivers/tty/serial/8250/8250_bcm7271.c | 11 +-
drivers/tty/serial/8250/8250_dw.c | 3 +
drivers/tty/serial/amba-pl010.c | 3 -
drivers/tty/serial/amba-pl011.c | 29 +-
drivers/tty/serial/atmel_serial.c | 14 +
drivers/tty/serial/imx.c | 7 +-
drivers/tty/serial/liteuart.c | 2 +-
drivers/tty/serial/serial_core.c | 7 +-
drivers/tty/serial/stm32-usart.c | 6 +-
drivers/tty/serial/uartlite.c | 2 +-
drivers/usb/core/hub.c | 5 +-
drivers/usb/dwc2/gadget.c | 13 +-
drivers/usb/dwc2/hcd.c | 7 +-
drivers/usb/dwc3/dwc3-meson-g12a.c | 17 +-
drivers/usb/dwc3/dwc3-qcom.c | 7 +-
drivers/usb/gadget/function/f_fs.c | 4 +-
drivers/usb/gadget/function/u_audio.c | 28 +-
drivers/usb/host/ehci-brcm.c | 6 +-
drivers/usb/host/uhci-platform.c | 3 +-
drivers/usb/misc/ftdi-elan.c | 1 +
drivers/vdpa/ifcvf/ifcvf_base.c | 41 +-
drivers/vdpa/ifcvf/ifcvf_base.h | 9 +-
drivers/vdpa/ifcvf/ifcvf_main.c | 24 +-
drivers/vdpa/mlx5/net/mlx5_vnet.c | 8 +-
drivers/video/backlight/qcom-wled.c | 122 +--
drivers/virtio/virtio_mem.c | 2 +-
drivers/virtio/virtio_ring.c | 4 +-
drivers/w1/slaves/w1_ds28e04.c | 26 +-
drivers/xen/gntdev.c | 6 +-
fs/btrfs/backref.c | 21 +-
fs/btrfs/ctree.c | 19 +-
fs/btrfs/dev-replace.c | 2 +-
fs/btrfs/disk-io.c | 2 +
fs/btrfs/extent-tree.c | 58 +-
fs/btrfs/inode.c | 11 +
fs/btrfs/qgroup.c | 19 +
fs/btrfs/volumes.c | 2 +-
fs/btrfs/zoned.c | 91 +-
fs/btrfs/zoned.h | 13 +-
fs/cifs/sess.c | 13 +-
fs/debugfs/file.c | 2 +-
fs/dlm/lock.c | 9 +
fs/dlm/lowcomms.c | 44 +-
fs/ext4/ext4.h | 1 +
fs/ext4/ext4_jbd2.c | 2 +
fs/ext4/extents.c | 2 -
fs/ext4/fast_commit.c | 18 +-
fs/ext4/inode.c | 51 +-
fs/ext4/ioctl.c | 2 -
fs/ext4/mballoc.c | 48 +-
fs/ext4/migrate.c | 23 +-
fs/ext4/super.c | 27 +-
fs/f2fs/checkpoint.c | 4 +-
fs/f2fs/compress.c | 50 +-
fs/f2fs/data.c | 7 +-
fs/f2fs/f2fs.h | 11 +
fs/f2fs/file.c | 10 +-
fs/f2fs/gc.c | 8 +-
fs/f2fs/inode.c | 5 +
fs/f2fs/segment.h | 3 +-
fs/f2fs/super.c | 44 +
fs/f2fs/sysfs.c | 4 +-
fs/f2fs/xattr.c | 11 +-
fs/fuse/file.c | 2 +-
fs/hugetlbfs/inode.c | 7 +-
fs/io_uring.c | 4 +
fs/jffs2/file.c | 40 +-
fs/ksmbd/connection.c | 1 +
fs/ksmbd/connection.h | 4 +-
fs/ksmbd/ksmbd_netlink.h | 12 +-
fs/ksmbd/smb2misc.c | 18 +-
fs/ksmbd/smb2ops.c | 16 +-
fs/ksmbd/smb2pdu.c | 87 +-
fs/ksmbd/smb2pdu.h | 1 +
fs/ksmbd/smb_common.h | 1 +
fs/ksmbd/transport_ipc.c | 2 +
fs/ksmbd/transport_tcp.c | 3 +-
fs/nfsd/nfs3xdr.c | 44 +-
fs/nfsd/nfs4state.c | 6 +-
fs/nfsd/vfs.c | 4 +
fs/ubifs/super.c | 1 -
fs/udf/ialloc.c | 2 +
include/acpi/acpi_bus.h | 5 +-
include/acpi/actypes.h | 10 +-
include/asm-generic/bitops/find.h | 5 +
include/drm/drm_drv.h | 5 +-
include/drm/gpu_scheduler.h | 12 +-
include/linux/blk-pm.h | 2 +-
include/linux/bpf.h | 2 +-
include/linux/bpf_verifier.h | 7 +
include/linux/hid.h | 2 +
include/linux/iio/trigger.h | 2 +
include/linux/kasan.h | 4 +-
include/linux/mmzone.h | 9 +
include/linux/mtd/rawnand.h | 2 +
include/linux/mtd/spi-nor.h | 2 -
include/linux/netfilter_netdev.h | 2 +-
include/linux/of_fdt.h | 2 +
include/linux/pm_runtime.h | 3 +
include/linux/psi_types.h | 13 +-
include/linux/ptp_clock_kernel.h | 12 +-
include/linux/skbuff.h | 4 +-
include/linux/stmmac.h | 1 +
include/linux/vmalloc.h | 7 +
include/media/cec.h | 11 +-
include/net/inet_frag.h | 11 +-
include/net/ipv6_frag.h | 3 +-
include/net/pkt_sched.h | 4 +-
include/net/sch_generic.h | 5 +
include/net/xfrm.h | 7 +-
include/sound/hda_codec.h | 8 +-
include/trace/events/cgroup.h | 12 +-
include/trace/events/sunrpc.h | 13 +-
include/uapi/linux/bpf.h | 2 +-
include/uapi/linux/xfrm.h | 1 +
include/uapi/misc/habanalabs.h | 18 +-
kernel/audit.c | 18 +-
kernel/bpf/bloom_filter.c | 6 +
kernel/bpf/btf.c | 3 +-
kernel/bpf/core.c | 3 +-
kernel/bpf/inode.c | 14 +-
kernel/bpf/verifier.c | 28 +-
kernel/dma/pool.c | 4 +-
kernel/locking/ww_rt_mutex.c | 2 +-
kernel/rcu/rcutorture.c | 5 +
kernel/rcu/tree.c | 4 +-
kernel/rcu/tree_exp.h | 1 +
kernel/sched/cpuacct.c | 79 +-
kernel/sched/cputime.c | 4 +-
kernel/sched/fair.c | 4 +-
kernel/sched/psi.c | 45 +-
kernel/sched/rt.c | 23 +-
kernel/sched/stats.h | 5 +-
kernel/signal.c | 20 +-
kernel/time/clocksource.c | 50 +-
kernel/trace/bpf_trace.c | 6 +-
kernel/trace/trace_events_synth.c | 13 +-
kernel/trace/trace_kprobe.c | 5 +-
kernel/trace/trace_osnoise.c | 20 +-
kernel/trace/trace_probe.c | 2 +
kernel/trace/trace_syscalls.c | 6 +-
kernel/trace/trace_uprobe.c | 5 +
kernel/tsacct.c | 7 +-
lib/kunit/test.c | 18 +-
lib/logic_iomem.c | 19 +-
lib/mpi/mpi-mod.c | 2 +
lib/test_bpf.c | 4 +-
lib/test_hmm.c | 24 +
lib/test_meminit.c | 1 +
mm/hmm.c | 5 +-
mm/kasan/quarantine.c | 11 +
mm/kasan/shadow.c | 9 +-
mm/page_alloc.c | 19 +-
mm/page_isolation.c | 2 +-
mm/shmem.c | 37 +-
mm/vmalloc.c | 3 +-
net/ax25/af_ax25.c | 10 +-
net/batman-adv/netlink.c | 30 +-
net/bluetooth/cmtp/core.c | 4 +-
net/bluetooth/hci_core.c | 1 +
net/bluetooth/hci_event.c | 37 +-
net/bluetooth/hci_request.c | 2 +-
net/bluetooth/hci_sock.c | 16 +-
net/bluetooth/hci_sysfs.c | 2 +
net/bluetooth/l2cap_sock.c | 45 +-
net/bluetooth/mgmt.c | 29 +-
net/bridge/br_netfilter_hooks.c | 7 +-
net/core/dev.c | 6 +
net/core/devlink.c | 2 -
net/core/filter.c | 8 +-
net/core/net-sysfs.c | 3 +
net/core/net_namespace.c | 4 +-
net/core/sock.c | 2 +
net/core/sock_map.c | 21 +-
net/dsa/switch.c | 4 +-
net/ipv4/fib_semantics.c | 47 +-
net/ipv4/inet_fragment.c | 8 +-
net/ipv4/ip_fragment.c | 3 +-
net/ipv4/ip_gre.c | 5 +-
net/ipv4/netfilter/ipt_CLUSTERIP.c | 5 +-
net/ipv4/tcp_bpf.c | 27 +
net/ipv6/ip6_gre.c | 5 +-
net/mac80211/rx.c | 2 +-
net/mctp/test/route-test.c | 7 +-
net/mptcp/options.c | 10 +-
net/mptcp/pm_netlink.c | 18 +-
net/mptcp/protocol.c | 4 +-
net/netfilter/nft_payload.c | 3 +
net/netfilter/nft_set_pipapo.c | 8 +
net/netrom/af_netrom.c | 12 +-
net/nfc/llcp_sock.c | 5 +
net/openvswitch/flow.c | 16 +-
net/sched/act_ct.c | 6 +
net/sched/cls_api.c | 2 +
net/sched/sch_api.c | 2 +-
net/sched/sch_generic.c | 1 +
net/smc/af_smc.c | 8 +-
net/smc/smc_core.c | 29 +-
net/smc/smc_core.h | 2 +-
net/socket.c | 9 +-
net/sunrpc/svc_xprt.c | 2 +-
net/unix/garbage.c | 14 +-
net/unix/scm.c | 6 +-
net/xfrm/xfrm_compat.c | 6 +-
net/xfrm/xfrm_interface.c | 14 +-
net/xfrm/xfrm_output.c | 30 +-
net/xfrm/xfrm_policy.c | 24 +-
net/xfrm/xfrm_state.c | 23 +-
net/xfrm/xfrm_user.c | 41 +-
samples/bpf/Makefile | 18 +-
samples/bpf/Makefile.target | 11 -
samples/bpf/lwt_len_hist_kern.c | 7 -
samples/bpf/xdp_sample_user.h | 2 +
scripts/dtc/dtx_diff | 8 +-
scripts/sphinx-pre-install | 4 +
security/selinux/hooks.c | 12 +-
sound/core/jack.c | 3 +
sound/core/misc.c | 2 +-
sound/core/oss/pcm_oss.c | 2 +-
sound/core/pcm.c | 6 +-
sound/core/seq/seq_queue.c | 14 +-
sound/hda/hdac_stream.c | 14 +-
sound/pci/hda/hda_bind.c | 5 +
sound/pci/hda/hda_codec.c | 45 +-
sound/pci/hda/hda_controller.c | 1 -
sound/pci/hda/hda_local.h | 1 +
sound/pci/hda/patch_cs8409-tables.c | 3 +
sound/pci/hda/patch_cs8409.c | 9 +-
sound/pci/hda/patch_cs8409.h | 1 +
sound/soc/amd/Kconfig | 2 +-
sound/soc/codecs/Kconfig | 3 +-
sound/soc/codecs/cs42l42.c | 22 +
sound/soc/codecs/cs42l42.h | 2 +
sound/soc/codecs/rt5663.c | 12 +-
sound/soc/fsl/fsl_asrc.c | 69 +-
sound/soc/fsl/fsl_mqs.c | 2 +-
sound/soc/fsl/imx-card.c | 32 +-
sound/soc/fsl/imx-hdmi.c | 2 +
sound/soc/generic/test-component.c | 5 +-
sound/soc/intel/boards/sof_sdw.c | 2 +-
sound/soc/intel/catpt/dsp.c | 14 +-
sound/soc/intel/skylake/skl-pcm.c | 1 -
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 +
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 +
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 +
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 6 +-
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 7 +-
.../mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 6 +-
sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 2 +-
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 73 +-
sound/soc/mediatek/mt8195/mt8195-reg.h | 1 +
sound/soc/samsung/idma.c | 2 +
sound/soc/sof/intel/hda-codec.c | 3 +-
sound/soc/sof/intel/hda-pcm.c | 86 +-
sound/soc/sof/intel/hda.c | 9 +-
sound/soc/sof/intel/hda.h | 6 +
sound/soc/sof/ipc.c | 3 +-
sound/soc/sof/pcm.c | 5 +-
sound/soc/sof/sof-audio.c | 109 ++-
sound/soc/sof/sof-audio.h | 6 +-
sound/soc/sof/topology.c | 17 -
sound/soc/uniphier/Kconfig | 2 -
sound/usb/format.c | 2 +-
sound/usb/mixer_quirks.c | 2 +-
sound/usb/quirks.c | 2 +-
tools/bpf/bpftool/Documentation/Makefile | 1 -
tools/bpf/bpftool/Documentation/bpftool-btf.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-gen.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-link.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-map.rst | 6 +-
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 8 +-
tools/bpf/bpftool/Documentation/bpftool.rst | 6 +-
tools/bpf/bpftool/Makefile | 1 -
tools/bpf/bpftool/main.c | 2 +
tools/bpf/bpftool/prog.c | 15 +-
tools/bpf/resolve_btfids/main.c | 5 +-
tools/include/nolibc/nolibc.h | 33 +-
tools/include/uapi/linux/bpf.h | 2 +-
tools/lib/bpf/btf.c | 55 +-
tools/lib/bpf/btf.h | 2 +-
tools/lib/bpf/btf_dump.c | 2 +-
tools/lib/bpf/gen_loader.c | 12 +-
tools/lib/bpf/libbpf.c | 61 +-
tools/lib/bpf/libbpf.h | 1 -
tools/lib/bpf/linker.c | 6 +-
tools/perf/Makefile.config | 5 +-
tools/perf/tests/shell/stat_all_metricgroups.sh | 2 +-
tools/perf/util/cputopo.c | 3 +-
tools/perf/util/debug.c | 2 +-
tools/perf/util/evsel.c | 25 +-
tools/perf/util/metricgroup.c | 4 +-
tools/perf/util/probe-event.c | 3 +
tools/testing/kunit/kunit_json.py | 2 +
tools/testing/kunit/kunit_tool_test.py | 6 +
tools/testing/selftests/bpf/btf_helpers.c | 9 +-
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 5 +-
.../selftests/bpf/prog_tests/migrate_reuseport.c | 4 +-
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 2 +
.../testing/selftests/bpf/prog_tests/tc_redirect.c | 7 +
tools/testing/selftests/bpf/xdpxceiver.c | 6 +-
tools/testing/selftests/clone3/clone3.c | 6 +
.../selftests/ftrace/test.d/kprobe/profile.tc | 2 +-
tools/testing/selftests/kselftest_harness.h | 2 +-
tools/testing/selftests/kvm/.gitignore | 2 +-
tools/testing/selftests/kvm/Makefile | 4 +-
.../selftests/kvm/include/x86_64/processor.h | 7 +
tools/testing/selftests/kvm/lib/x86_64/processor.c | 33 +-
.../kvm/x86_64/{get_cpuid_test.c => cpuid_test.c} | 30 +
.../selftests/powerpc/security/spectre_v2.c | 2 +-
tools/testing/selftests/powerpc/signal/.gitignore | 1 +
tools/testing/selftests/powerpc/signal/Makefile | 1 +
.../selftests/powerpc/signal/sigreturn_kernel.c | 132 +++
.../selftests/vm/charge_reserved_hugetlb.sh | 34 +-
tools/testing/selftests/vm/hmm-tests.c | 42 +
.../selftests/vm/hugetlb_reparenting_test.sh | 21 +-
tools/testing/selftests/vm/write_hugetlb_memory.sh | 2 +-
virt/kvm/kvm_main.c | 5 +-
1119 files changed, 10638 insertions(+), 5965 deletions(-)
^ permalink raw reply [relevance 1%]
* [PATCH 5.15 000/841] 5.15.17-rc2 review
@ 2022-01-25 16:32 1% Greg Kroah-Hartman
0 siblings, 0 replies; 200+ results
From: Greg Kroah-Hartman @ 2022-01-25 16:32 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, torvalds, akpm, linux, shuah, patches,
lkft-triage, pavel, jonathanh, f.fainelli, sudipm.mukherjee,
stable
This is the start of the stable review cycle for the 5.15.17 release.
There are 841 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Thu, 27 Jan 2022 15:52:30 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.15.17-rc2.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.15.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Linux 5.15.17-rc2
Mauro Carvalho Chehab <mchehab@kernel.org>
scripts: sphinx-pre-install: Fix ctex support on Debian
Mauro Carvalho Chehab <mchehab@kernel.org>
scripts: sphinx-pre-install: add required ctex dependency
Andrey Konovalov <andreyknvl@gmail.com>
lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
Moshe Tal <moshet@nvidia.com>
bonding: Fix extraction of ports from the packet headers
Alistair Popple <apopple@nvidia.com>
mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
Miaoqian Lin <linmq006@gmail.com>
lib82596: Fix IRQ check in sni_82596_probe
Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
scripts/dtc: dtx_diff: remove broken example from help text
Maxim Mikityanskiy <maximmi@nvidia.com>
sch_api: Don't skip qdisc attach on ingress
Sam Protsenko <semen.protsenko@linaro.org>
dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
Alexander Stein <alexander.stein@mailbox.org>
dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
Alexander Stein <alexander.stein@mailbox.org>
dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
Tom Rix <trix@redhat.com>
net: mscc: ocelot: fix using match before it is set
Claudiu Beznea <claudiu.beznea@microchip.com>
net: phy: micrel: use kszphy_suspend()/kszphy_resume for irq aware devices
Ard Biesheuvel <ardb@kernel.org>
net: cpsw: avoid alignment faults by taking NET_IP_ALIGN into account
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: sfp: fix high power modules without diagnostic monitoring
Horatiu Vultur <horatiu.vultur@microchip.com>
net: ocelot: Fix the call to switchdev_bridge_port_offload
Tom Rix <trix@redhat.com>
net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
Slark Xiao <slark_xiao@163.com>
net: wwan: Fix MRU mismatch issue which may lead to data connection lost
Sergey Shtylyov <s.shtylyov@omp.ru>
bcmgenet: add WOL IRQ check
Vladimir Oltean <vladimir.oltean@nxp.com>
net: mscc: ocelot: don't let phylink re-enable TX PAUSE on the NPI port
Kevin Bracey <kevin@bracey.fi>
net_sched: restore "mpu xxx" handling
Alex Elder <elder@linaro.org>
net: ipa: fix atomic update in ipa_endpoint_replenish()
Jie Wang <wangjie125@huawei.com>
net: bonding: fix bond_xmit_broadcast return value error bug
Miroslav Lichvar <mlichvar@redhat.com>
net: fix sock_timestamping_bind_phc() to release device
David Heidelberg <david@ixit.cz>
arm64: dts: qcom: msm8996: drop not documented adreno properties
Leon Romanovsky <leon@kernel.org>
devlink: Remove misleading internal_flags from health reporter dump
Zechuan Chen <chenzechuan1@huawei.com>
perf probe: Fix ppc64 'perf probe add events failed' case
Uwe Kleine-König <uwe@kleine-koenig.org>
perf tools: Drop requirement for libstdc++.so for libopencsd check
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix lld view setting
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix concurrency over xfers_list
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Print debug message after realeasing the lock
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Don't start transactions at tx_submit level
Adrian Hunter <adrian.hunter@intel.com>
perf script: Fix hex dump character output
Guillaume Nault <gnault@redhat.com>
libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
Guillaume Nault <gnault@redhat.com>
gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
Eli Cohen <elic@nvidia.com>
vdpa/mlx5: Restore cur_num_vqs in case of failure in change_num_qps()
Guillaume Nault <gnault@redhat.com>
xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
Johannes Berg <johannes.berg@intel.com>
iwlwifi: fix Bz NMI behaviour
Eric Dumazet <edumazet@google.com>
netns: add schedule point in ops_exit_list()
Eric Dumazet <edumazet@google.com>
inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
Eric W. Biederman <ebiederm@xmission.com>
taskstats: Cleanup the use of task->exit_code
Michael S. Tsirkin <mst@redhat.com>
virtio_ring: mark ring unused on error
Eli Cohen <elic@nvidia.com>
vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
Laurence de Bruxelles <lfdebrux@gmail.com>
rtc: pxa: fix null pointer dereference
Dmitry Torokhov <dmitry.torokhov@gmail.com>
HID: vivaldi: fix handling devices not using numbered reports
Johannes Berg <johannes.berg@intel.com>
um: gitignore: Add kernel/capflags.c
Yury Norov <yury.norov@gmail.com>
bitops: protect find_first_{,zero}_bit properly
Robert Hancock <robert.hancock@calian.com>
net: axienet: increase default TX ring size to 128
Robert Hancock <robert.hancock@calian.com>
net: axienet: fix for TX busy handling
Robert Hancock <robert.hancock@calian.com>
net: axienet: fix number of TX ring slots for available check
Robert Hancock <robert.hancock@calian.com>
net: axienet: Fix TX ring slot available check
Robert Hancock <robert.hancock@calian.com>
net: axienet: limit minimum TX ring size
Robert Hancock <robert.hancock@calian.com>
net: axienet: add missing memory barriers
Robert Hancock <robert.hancock@calian.com>
net: axienet: reset core on initialization prior to MDIO access
Robert Hancock <robert.hancock@calian.com>
net: axienet: Wait for PhyRstCmplt after core reset
Robert Hancock <robert.hancock@calian.com>
net: axienet: increase reset timeout
Wen Gu <guwen@linux.alibaba.com>
net/smc: Fix hung_task when removing SMC-R devices
Miaoqian Lin <linmq006@gmail.com>
gpio: idt3243x: Fix IRQ check in idt_gpio_probe
Miaoqian Lin <linmq006@gmail.com>
gpio: mpc8xxx: Fix IRQ check in mpc8xxx_probe
John Keeping <john@metanate.com>
pinctrl/rockchip: fix gpio device creation
Robert Hancock <robert.hancock@calian.com>
clk: si5341: Fix clock HW provider cleanup
Stephen Boyd <sboyd@kernel.org>
clk: Emit a stern warning with writable debugfs enabled
Eric Dumazet <edumazet@google.com>
af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
Dan Carpenter <dan.carpenter@oracle.com>
crypto: octeontx2 - uninitialized variable in kvf_limits_store()
Chao Yu <chao@kernel.org>
f2fs: fix to check available space of CP area correctly in update_ckpt_flags()
Chao Yu <chao@kernel.org>
f2fs: fix to reserve space for IO align feature
Hyeong-Jun Kim <hj514.kim@samsung.com>
f2fs: compress: fix potential deadlock of compress file
Chao Yu <chao@kernel.org>
f2fs: fix to avoid panic in is_alive() if metadata is inconsistent
Fengnan Chang <changfengnan@vivo.com>
f2fs: fix remove page failed in invalidate compress pages
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Remove unused compile options
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Remove explicit transparent hugepages support
Geert Uytterhoeven <geert@linux-m68k.org>
riscv: dts: microchip: mpfs: Drop empty chosen node
Miaoqian Lin <linmq006@gmail.com>
parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
Tobias Waldekranz <tobias@waldekranz.com>
net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
Tobias Waldekranz <tobias@waldekranz.com>
net/fsl: xgmac_mdio: Add workaround for erratum A-009885
Guillaume Nault <gnault@redhat.com>
mlx5: Don't accidentally set RTO_ONLINK before mlx5e_route_lookup_ipv4_get()
Eric Dumazet <edumazet@google.com>
ipv4: avoid quadratic behavior in netns dismantle
Eric Dumazet <edumazet@google.com>
ipv4: update fib_info_cnt under spinlock protection
German Gomez <german.gomez@arm.com>
perf evsel: Override attr->sample_period for non-libpfm4 events
Daniel Borkmann <daniel@iogearbox.net>
bpf: Mark PTR_TO_FUNC register initially with zero offset
Yafang Shao <laoar.shao@gmail.com>
bpf: Fix mount source show for bpffs
Toke Høiland-Jørgensen <toke@redhat.com>
xdp: check prog type before updating BPF link
Quentin Monnet <quentin@isovalent.com>
bpftool: Fix indent in option lists in the documentation
Quentin Monnet <quentin@isovalent.com>
bpftool: Remove inclusion of utilities.mak from Makefiles
Maxime Ripard <maxime@cerno.tech>
drm/vc4: crtc: Copy assigned channel to the CRTC
Maxime Ripard <maxime@cerno.tech>
drm/vc4: Fix non-blocking commit getting stuck forever
Maxime Ripard <maxime@cerno.tech>
drm/vc4: crtc: Drop feed_txp from state
Ye Bin <yebin10@huawei.com>
block: Fix fsync always failed if once failed
Jens Axboe <axboe@kernel.dk>
block: fix async_depth sysfs interface for mq-deadline
Tobias Waldekranz <tobias@waldekranz.com>
powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
Anders Roxell <anders.roxell@linaro.org>
powerpc/cell: Fix clang -Wimplicit-fallthrough warning
Moshe Shemesh <moshe@nvidia.com>
Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
Amelie Delaunay <amelie.delaunay@foss.st.com>
dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
Chengguang Xu <cgxu519@mykernel.net>
RDMA/rxe: Fix a typo in opcode name
Yixing Liu <liuyixing1@huawei.com>
RDMA/hns: Modify the mapping attribute of doorbell to device
Dave Jiang <dave.jiang@intel.com>
dmaengine: idxd: fix wq settings post wq disable
Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
dmaengine: uniphier-xdmac: Fix type of address variables
Håkon Bugge <haakon.bugge@oracle.com>
RDMA/cma: Remove open coding of overflow checking for private_data_len
Miaoqian Lin <linmq006@gmail.com>
scsi: ufs: ufs-mediatek: Fix error checking in ufs_mtk_init_va09_pwr_ctrl()
Bart Van Assche <bvanassche@acm.org>
scsi: core: Show SCMD_LAST in text form
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: hci_sync: Fix not setting adv set duration
Markus Reichl <m.reichl@fivetechno.de>
net: usb: Correct reset handling of smsc95xx
Mark Chen <mark-yw.chen@mediatek.com>
Bluetooth: btusb: Return error code when getting patch status failed
Randy Dunlap <rdunlap@infradead.org>
Documentation: fix firewire.rst ABI file path error
Lukas Bulwahn <lukas.bulwahn@gmail.com>
Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization
Alexandre Ghiti <alexandre.ghiti@canonical.com>
Documentation, arch: Remove leftovers from CIFS_WEAK_PW_HASH
Alexandre Ghiti <alexandre.ghiti@canonical.com>
Documentation, arch: Remove leftovers from raw device
Sakari Ailus <sakari.ailus@linux.intel.com>
Documentation: ACPI: Fix data node reference documentation
Daniel Thompson <daniel.thompson@linaro.org>
Documentation: dmaengine: Correctly describe dmatest with channel unset
Mike Leach <mike.leach@linaro.org>
Documentation: coresight: Fix documentation issue
Randy Dunlap <rdunlap@infradead.org>
media: correct MEDIA_TEST_SUPPORT help text
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Make sure the device is powered with CEC
Suresh Udipi <sudipi@jp.adit-jv.com>
media: rcar-csi2: Optimize the selection PHTW register
Marc Kleine-Budde <mkl@pengutronix.de>
can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
Ben Hutchings <ben@decadent.org.uk>
firmware: Update Kconfig help text for Google firmware
Baruch Siach <baruch@tkos.co.il>
of: base: Improve argument length mismatch error
Christian König <christian.koenig@amd.com>
drm/radeon: fix error handling in radeon_driver_open_kms
Aaron Ma <aaron.ma@canonical.com>
ath11k: qmi: avoid error messages when dma allocation fails
Nikita Yushchenko <nikita.yushchenko@virtuozzo.com>
tracing/osnoise: Properly unhook events if start_per_cpu_kthreads() fails
Theodore Ts'o <tytso@mit.edu>
ext4: don't use the orphan list when migrating an inode
Zhang Yi <yi.zhang@huawei.com>
ext4: fix an use-after-free issue about data=journal writeback mode
Ye Bin <yebin10@huawei.com>
ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
Sebastian Andrzej Siewior <bigeasy@linutronix.de>
ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
Xin Yin <yinxin.x@bytedance.com>
ext4: fast commit may miss tracking unwritten range during ftruncate
Xin Yin <yinxin.x@bytedance.com>
ext4: use ext4_ext_remove_space() for fast commit replay delete range
Ye Bin <yebin10@huawei.com>
ext4: Fix BUG_ON in ext4_bread when write quota data
Luís Henriques <lhenriques@suse.de>
ext4: set csum seed in tmp inode while migrating to extents
Xin Yin <yinxin.x@bytedance.com>
ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
Harshad Shirwadkar <harshadshirwadkar@gmail.com>
ext4: initialize err_blk before calling __ext4_get_inode_loc
Chunguang Xu <brookxu@tencent.com>
ext4: fix a possible ABBA deadlock due to busy PA
Jan Kara <jack@suse.cz>
ext4: make sure quota gets properly shutdown on error
Jan Kara <jack@suse.cz>
ext4: make sure to reset inode lockdep class when quota enabling fails
Filipe Manana <fdmanana@suse.com>
btrfs: respect the max size in the header when activating swap file
Josef Bacik <josef@toxicpanda.com>
btrfs: check the root node for uptodate before returning it
Filipe Manana <fdmanana@suse.com>
btrfs: fix deadlock between quota enable and other quota operations
Nicolas Dichtel <nicolas.dichtel@6wind.com>
xfrm: fix dflt policy check when there is no policy configured
Ghalem Boudour <ghalem.boudour@6wind.com>
xfrm: fix policy lookup for ipv6 gre packets
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Correctly set PCIe capabilities
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Fix definitions of reserved bits
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
Hans de Goede <hdegoede@redhat.com>
PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
Rob Herring <robh@kernel.org>
PCI: xgene: Fix IB window setup
José Roberto de Souza <jose.souza@intel.com>
drm/i915/display/ehl: Update voltage swing table
Alex Deucher <alexander.deucher@amd.com>
drm/amdgpu: don't do resets on APUs which don't support it
James Smart <jsmart2021@gmail.com>
scsi: lpfc: Fix lpfc_force_rscn ndlp kref imbalance
Nicholas Piggin <npiggin@gmail.com>
powerpc/64s/radix: Fix huge vmap false positive
John David Anglin <dave.anglin@bell.net>
parisc: Fix lpa and lpa_user defines
Brian Norris <briannorris@chromium.org>
drm/bridge: analogix_dp: Make PSR-exit block less
Ilia Mirkin <imirkin@alum.mit.edu>
drm/nouveau/kms/nv04: use vzalloc for nv04_display
Yizhuo Zhai <yzhai003@ucr.edu>
drm/amd/display: Fix the uninitialized variable in enable_stream_features()
Lucas Stach <l.stach@pengutronix.de>
drm/etnaviv: limit submit sizes
Dmitry Osipenko <digetx@gmail.com>
drm/tegra: submit: Add missing pm_runtime_mark_last_busy()
Sakari Ailus <sakari.ailus@linux.intel.com>
device property: Fix fwnode_graph_devcon_match() fwnode leak
Alexander Gordeev <agordeev@linux.ibm.com>
s390/mm: fix 2KB pgtable release race
Ilan Peer <ilan.peer@intel.com>
iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
remoteproc: imx_rproc: Fix a resource leak in the remove function
Steven Rostedt <rostedt@goodmis.org>
tracing: Have syscall trace events use trace_event_buffer_lock_reserve()
Xiangyang Zhang <xyz.sun.ok@gmail.com>
tracing/kprobes: 'nmissed' not showed correctly for kretprobe
Andrey Ryabinin <arbn@yandex-team.com>
sched/cpuacct: Fix user/system in shown cpuacct.usage*
Andrey Ryabinin <arbn@yandex-team.com>
cputime, cpuacct: Include guest time in user time in cpuacct.stat
Lukas Wunner <lukas@wunner.de>
serial: Fix incorrect rs485 polarity on uart open
Xie Yongji <xieyongji@bytedance.com>
fuse: Pass correct lend value to filemap_write_and_wait_range()
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
HID: magicmouse: Fix an error handling path in magicmouse_probe()
Xiao Ni <xni@redhat.com>
md: Move alloc/free acct bioset in to personality
Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
xen/gntdev: fix unmap notification order
Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
spi: uniphier: Fix a bug that doesn't point to private data correctly
Dmitry Osipenko <digetx@gmail.com>
mfd: tps65910: Set PWR_OFF bit during driver probe
Patrick Williams <patrick@stwcx.xyz>
tpm: fix NPE on probe for missing device
Lino Sanfilippo <LinoSanfilippo@gmx.de>
tpm: fix potential NULL pointer access in tpm_del_char_device
Petr Cvachoucek <cvachoucek@gmail.com>
ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
Meng Li <Meng.Li@windriver.com>
crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
Marek Vasut <marex@denx.de>
crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
Heiner Kallweit <hkallweit1@gmail.com>
crypto: omap-aes - Fix broken pm_runtime_and_get() usage
Zhu Lingshan <lingshan.zhu@intel.com>
ifcvf/vDPA: fix misuse virtio-net device config size for blk dev
Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
rpmsg: core: Clean up resources on announce_create failure.
Andrew Lunn <andrew@lunn.ch>
udp6: Use Segment Routing Header for dest address if present
Andrew Lunn <andrew@lunn.ch>
icmp: ICMPV6: Examine invoking packet for Segment Route Headers.
Andrew Lunn <andrew@lunn.ch>
seg6: export get_srh() for ICMP handling
Conor Dooley <conor.dooley@microchip.com>
mailbox: change mailbox-mpfs compatible string
Miaoqian Lin <linmq006@gmail.com>
phy: mediatek: Fix missing check in mtk_mipi_tx_probe
Ohad Sharabi <osharabi@habana.ai>
habanalabs: skip read fw errors if dynamic descriptor invalid
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8183: fix device_node leak
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8173: fix device_node leak
Chunfeng Yun <chunfeng.yun@mediatek.com>
phy: phy-mtk-tphy: add support efuse setting
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8192-mt6359: fix device_node leak
Sreekanth Reddy <sreekanth.reddy@broadcom.com>
scsi: mpi3mr: Fixes around reply request queues
Christoph Hellwig <hch@lst.de>
scsi: sr: Don't use GFP_DMA
Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
MIPS: Octeon: Fix build errors using clang
Michael Ellerman <mpe@ellerman.id.au>
selftests/powerpc: Add a test of sigreturning to the kernel
Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
Marc Zyngier <maz@kernel.org>
irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
Ye Guojin <ye.guojin@zte.com.cn>
MIPS: OCTEON: add put_device() after of_find_device_by_node()
Jan Kara <jack@suse.cz>
udf: Fix error handling in udf_new_inode()
Hari Bathini <hbathini@linux.ibm.com>
powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
Hari Bathini <hbathini@linux.ibm.com>
powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/40x: Map 32Mbytes of memory at startup
Nathan Chancellor <nathan@kernel.org>
MIPS: Loongson64: Use three arguments for slti
Takashi Iwai <tiwai@suse.de>
ALSA: seq: Set upper limit of processed events
James Smart <jsmart2021@gmail.com>
scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
James Smart <jsmart2021@gmail.com>
scsi: lpfc: Fix leaked lpfc_dmabuf mbox allocations with NPIV
Bart Van Assche <bvanassche@acm.org>
scsi: ufs: Fix a kernel crash during shutdown
Stephan Gerhold <stephan@gerhold.net>
interconnect: qcom: rpm: Prevent integer overflow in rate
Christoph Hellwig <hch@lst.de>
dm: fix alloc_dax error handling in alloc_dev
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
nvmem: core: set size for sysfs bin file
Christophe Leroy <christophe.leroy@csgroup.eu>
w1: Misuse of get_user()/put_user() reported by sparse
Alexey Kardashevskiy <aik@ozlabs.ru>
KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
Alexey Kardashevskiy <aik@ozlabs.ru>
KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/powermac: Add missing lockdep_register_key()
Martin Blumenstingl <martin.blumenstingl@googlemail.com>
clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
Joakim Tjernlund <joakim.tjernlund@infinera.com>
i2c: mpc: Correct I2C reset procedure
Michael Ellerman <mpe@ellerman.id.au>
powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
Heiner Kallweit <hkallweit1@gmail.com>
i2c: i801: Don't silently correct invalid transfer size
Ye Guojin <ye.guojin@zte.com.cn>
ASoC: imx-hdmi: add put_device() after of_find_device_by_node()
Nicholas Piggin <npiggin@gmail.com>
powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/btext: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/cell: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/powernv: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/6xx: add missing of_node_put
Ingo Molnar <mingo@kernel.org>
x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
Marc Kleine-Budde <mkl@pengutronix.de>
can: flexcan: add more quirks to describe RX path capabilities
Marc Kleine-Budde <mkl@pengutronix.de>
can: flexcan: rename RX modes
Dario Binacchi <dario.binacchi@amarulasolutions.com>
can: flexcan: allow to change quirks at runtime
John David Anglin <dave.anglin@bell.net>
parisc: Avoid calling faulthandler_disabled() twice
Maor Dickman <maord@nvidia.com>
net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager
Maher Sanalla <msanalla@nvidia.com>
net/mlx5: Update log_max_qp value to FW max capability
Jason A. Donenfeld <Jason@zx2c4.com>
random: do not throw away excess input to crng_fast_load
Lukas Wunner <lukas@wunner.de>
serial: core: Keep mctrl register state and cached copy in sync
Lukas Wunner <lukas@wunner.de>
serial: pl011: Drop CR register reset on set_termios
Lukas Wunner <lukas@wunner.de>
serial: pl010: Drop CR register reset on set_termios
Konrad Dybcio <konrad.dybcio@somainline.org>
regulator: qcom_smd: Align probe function with rpmh-regulator
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: gemini: allow any RGMII interface mode
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: phy: marvell: configure RGMII delays for 88E1118
Danielle Ratson <danieller@nvidia.com>
mlxsw: pci: Avoid flow control for EMAD packets
Jiri Olsa <jolsa@redhat.com>
bpf/selftests: Fix namespace mount setup in tc_redirect
Joe Thornber <ejt@redhat.com>
dm space map common: add bounds check to sm_ll_lookup_bitmap()
Joe Thornber <ejt@redhat.com>
dm btree: add a defensive bounds check to insert_at()
Ping-Ke Shih <pkshih@realtek.com>
mac80211: allow non-standard VHT MCS-10/11
Florian Fainelli <f.fainelli@gmail.com>
net: mdio: Demote probed message to debug print
Josef Bacik <josef@toxicpanda.com>
btrfs: remove BUG_ON(!eie) in find_parent_nodes
Josef Bacik <josef@toxicpanda.com>
btrfs: remove BUG_ON() in find_parent_nodes()
Mario Limonciello <mario.limonciello@amd.com>
ACPI: CPPC: Check present CPUs for determining _CPC is valid
Thomas Weißschuh <linux@weissschuh.net>
ACPI: battery: Add the ThinkPad "Not Charging" quirk
Marina Nikolic <Marina.Nikolic@amd.com>
amdgpu/pm: Make sysfs pm attributes as read-only for VFs
Zongmin Zhou <zhouzongmin@kylinos.cn>
drm/amdgpu: fixup bad vram size on gmc v8
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
mmc: mtk-sd: Use readl_poll_timeout instead of open-coded polling
Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
Sudeep Holla <sudeep.holla@arm.com>
ACPICA: Fix wrong interpretation of PCC address
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPICA: Utilities: Avoid deleting the same object twice in a row
Mark Langsdorf <mlangsdo@redhat.com>
ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
Kyeong Yoo <kyeong.yoo@alliedtelesis.co.nz>
jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
Lucas Stach <l.stach@pengutronix.de>
drm/etnaviv: consider completed fence seqno in hang check
Antony Antony <antony.antony@secunet.com>
xfrm: rate limit SA mapping change message to user space
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
Tedd Ho-Jeong An <tedd.an@intel.com>
Bluetooth: btintel: Add missing quirks and msft ext for legacy bootloader
Ben Greear <greearb@candelatech.com>
ath11k: Fix napi related hang
Randy Dunlap <rdunlap@infradead.org>
um: registers: Rename function names to avoid conflicts and build problems
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
block: check minor range in device_add_disk()
Hector Martin <marcan@marcan.st>
mmc: sdhci-pci-gli: GL9755: Support for CD/WP inversion on OF platforms
Luca Coelho <luciano.coelho@intel.com>
iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
Avraham Stern <avraham.stern@intel.com>
iwlwifi: mvm: fix AUX ROC removal
Ilan Peer <ilan.peer@intel.com>
iwlwifi: mvm: Fix calculation of frame length
Johannes Berg <johannes.berg@intel.com>
iwlwifi: remove module loading failure message
Johannes Berg <johannes.berg@intel.com>
iwlwifi: fix leaks/bad data after failed firmware load
Changcheng Deng <deng.changcheng@zte.com.cn>
PM: AVS: qcom-cpr: Use div64_ul instead of do_div
Po-Hao Huang <phhuang@realtek.com>
rtw88: 8822c: update rx settings to prevent potential hw deadlock
Zekun Shen <bruceshenzk@gmail.com>
ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet()
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep()
Felix Fietkau <nbd@nbd.name>
mt76: mt7615: improve wmm index allocation
Xing Song <xing.song@mediatek.com>
mt76: do not pass the received frame with decryption error
Peter Chiu <chui-hao.chiu@mediatek.com>
mt76: mt7615: fix possible deadlock while mt7615_register_ext_phy()
Kai-Heng Feng <kai.heng.feng@canonical.com>
usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
cpufreq: Fix initialization of min and max frequency QoS requests
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
PM: runtime: Add safety net to supplier device release
Weili Qian <qianweili@huawei.com>
crypto: hisilicon/hpre - fix memory leak in hpre_curve25519_src_init()
Peter Gonda <pgonda@google.com>
crypto: ccp - Move SEV_INIT retry for corrupted data
Thierry Reding <treding@nvidia.com>
arm64: tegra: Adjust length of CCPLEX cluster MMIO region
Biwen Li <biwen.li@nxp.com>
arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
Paul Moore <paul@paul-moore.com>
audit: ensure userspace is penalized the same as the kernel when under pressure
Jingwen Chen <Jingwen.Chen2@amd.com>
drm/amd/amdgpu: fix gmc bo pin count leak in SRIOV
Jingwen Chen <Jingwen.Chen2@amd.com>
drm/amd/amdgpu: fix psp tmr bo pin count leak in SRIOV
Ulf Hansson <ulf.hansson@linaro.org>
mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
Biju Das <biju.das.jz@bp.renesas.com>
mmc: tmio: reinit card irqs in reset routine
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()
Mikhail Rudenko <mike.rudenko@gmail.com>
media: rockchip: rkisp1: use device name for debugfs subdir name
Sean Young <sean@mess.org>
media: igorplugusb: receiver overflow should be reported
Alistair Francis <alistair@alistair23.me>
HID: i2c-hid-of: Expose the touchscreen-inverted properties
Alistair Francis <alistair@alistair23.me>
HID: quirks: Allow inverting the absolute X/Y values
Felix Kuehling <Felix.Kuehling@amd.com>
drm/amdkfd: Fix error handling in svm_range_add
Paolo Abeni <pabeni@redhat.com>
bpf: Do not WARN in bpf_warn_invalid_xdp_action()
David Gow <davidgow@google.com>
kunit: Don't crash if no parameters are generated
Suresh Kumar <surkumar@redhat.com>
net: bonding: debug: avoid printing debug logs when bond is not notifying peers
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_read_aux() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_end() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_panic() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Allow instrumentation during task work queueing
Alex Elder <elder@linaro.org>
ARM: dts: qcom: sdx55: fix IPA interconnect definitions
Baochen Qiang <quic_bqiang@quicinc.com>
ath11k: Avoid false DEADLOCK warning reported by lockdep
Heiko Carstens <hca@linux.ibm.com>
selftests/ftrace: make kprobe profile testcase description unique
Iwona Winiarska <iwona.winiarska@intel.com>
gpio: aspeed-sgpio: Convert aspeed_sgpio.lock to raw_spinlock
Iwona Winiarska <iwona.winiarska@intel.com>
gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: phy: prefer 1000baseT over 1000baseKX
Antoine Tenart <atenart@kernel.org>
net-sysfs: update the queue counts in the unregistration path
Sebastian Gottschall <s.gottschall@dd-wrt.com>
ath10k: Fix tx hanging
Wen Gong <quic_wgong@quicinc.com>
ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
Wander Lairson Costa <wander@redhat.com>
rcutorture: Avoid soft lockup during cpu stall
Shaul Triebitz <shaul.triebitz@intel.com>
iwlwifi: mvm: avoid clearing a just saved session protection id
Johannes Berg <johannes.berg@intel.com>
iwlwifi: mvm: synchronize with FW after multicast commands
Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
arm64: dts: renesas: Fix thermal bindings
Mika Westerberg <mika.westerberg@linux.intel.com>
thunderbolt: Runtime PM activate both ends of the device link
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: m920x: don't use stack on USB reads
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix "variable dereferenced before check 'asd'"
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
media: rcar-vin: Update format alignment constraints
James Hilliard <james.hilliard1@gmail.com>
media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
drm: rcar-du: Fix CRTC timings when CMM is used
Joerg Roedel <jroedel@suse.de>
x86/mm: Flush global TLB when switching to trampoline page-table
Xiongwei Song <sxwjean@gmail.com>
floppy: Add max size check for user space request
Neal Liu <neal_liu@aspeedtech.com>
usb: uhci: add aspeed ast2600 uhci support
Kishon Vijay Abraham I <kishon@ti.com>
arm64: dts: ti: j721e-main: Fix 'dtbs_check' in serdes_ln_ctrl node
Kishon Vijay Abraham I <kishon@ti.com>
arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
Hans de Goede <hdegoede@redhat.com>
ACPI: Change acpi_device_always_present() into acpi_device_override_status()
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Introduce a new placement for MOB page tables
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Release ttm memory if probe fails
Adam Ward <Adam.Ward.opensource@diasemi.com>
regulator: da9121: Prevent current limit change when enabled
Mansur Alisha Shaik <mansur@codeaurora.org>
media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions
Sriram R <quic_srirrama@quicinc.com>
ath11k: Avoid NULL ptr access during mgmt tx cleanup
Zekun Shen <bruceshenzk@gmail.com>
rsi: Fix out-of-bounds read in rsi_read_pkt()
Zekun Shen <bruceshenzk@gmail.com>
rsi: Fix use-after-free in rsi_rx_done_handler()
Zekun Shen <bruceshenzk@gmail.com>
mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
Stephan Müller <smueller@chronox.de>
crypto: jitter - consider 32 LSB for APT
Chengfeng Ye <cyeaa@connect.ust.hk>
HSI: core: Fix return freed object in hsi_new_client
Hans de Goede <hdegoede@redhat.com>
gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
Fugang Duan <fugang.duan@nxp.com>
tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
Jiri Slaby <jirislaby@kernel.org>
mxser: keep only !tty test in ISR
Martyn Welch <martyn.welch@collabora.com>
drm/bridge: megachips: Ensure both bridges are probed before registration
Martin Leung <Martin.Leung@amd.com>
drm/amd/display: add else to avoid double destroy clk_mgr
Danielle Ratson <danieller@nvidia.com>
mlxsw: pci: Add shutdown method in PCI driver
Jan Kiszka <jan.kiszka@siemens.com>
soc: ti: pruss: fix referenced node in error message
Alex Deucher <alexander.deucher@amd.com>
drm/amdgpu/display: set vblank_disable_immediate for DC
Yang Li <yang.lee@linux.alibaba.com>
drm/amd/display: check top_pipe_to_program pointer
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
Marek Vasut <marex@denx.de>
soc: imx: gpcv2: Synchronously suspend MIX domains
Konrad Dybcio <konrad.dybcio@somainline.org>
arm64: dts: qcom: sm8350: Shorten camera-thermal-bottom name
Dinh Nguyen <dinguyen@kernel.org>
EDAC/synopsys: Use the quirk for version instead of ddr version
Yang Li <yang.lee@linux.alibaba.com>
ethernet: renesas: Use div64_ul instead of do_div
Andrii Nakryiko <andrii@kernel.org>
libbpf: Accommodate DWARF/compiler bug with duplicated structs
Zheyu Ma <zheyuma97@gmail.com>
media: b2c2: Add missing check in flexcop_pci_isr:
José Expósito <jose.exposito89@gmail.com>
HID: apple: Do not reset quirks when the Fn key is not found
José Expósito <jose.exposito89@gmail.com>
HID: magicmouse: Report battery level over USB
Hans de Goede <hdegoede@redhat.com>
drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
Brian Chen <brianchen118@gmail.com>
psi: Fix PSI_MEM_FULL state when tasks are in memstall and doing reclaim
Pavankumar Kondeti <quic_pkondeti@quicinc.com>
usb: gadget: f_fs: Use stream_open() for endpoint files
Haimin Zhang <tcs.kernel@gmail.com>
USB: ehci_brcm_hub_control: Improve port index sanitizing
Amjad Ouled-Ameur <aouledameur@baylibre.com>
usb: dwc3: meson-g12a: fix shared reset control use
Baochen Qiang <bqiang@codeaurora.org>
ath11k: Fix crash caused by uninitialized TX ring
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: handle errors at sh_css_create_isp_params()
Linus Lüssing <linus.luessing@c0d3.blue>
batman-adv: allow netlink usage in unprivileged containers
Wan Jiabing <wanjiabing@vivo.com>
ARM: shmobile: rcar-gen2: Add missing of_node_put()
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: check before deference asd variable
Hans de Goede <hdegoede@redhat.com>
media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: set per-device's default mode
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: fix try_fmt logic
Ben Skeggs <bskeggs@redhat.com>
drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
Neil Armstrong <narmstrong@baylibre.com>
drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
Zekun Shen <bruceshenzk@gmail.com>
ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
Andrii Nakryiko <andrii@kernel.org>
selftests/bpf: Fix bpf_object leak in skb_ctx selftest
Andrii Nakryiko <andrii@kernel.org>
selftests/bpf: Destroy XDP link correctly
Andrii Nakryiko <andrii@kernel.org>
selftests/bpf: Fix memory leaks in btf_type_c_dump() helper
Qiang Yu <yuq825@gmail.com>
drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
Alexander Aring <aahringo@redhat.com>
fs: dlm: filter user dlm messages for kernel locks
Archie Pusaka <apusaka@chromium.org>
Bluetooth: Fix removing adv when processing cmd complete
Brian Norris <briannorris@chromium.org>
drm/panel: Delete panel on mipi_dsi_attach() failure
Wei Yongjun <weiyongjun1@huawei.com>
Bluetooth: Fix memory leak of hci device
Wei Yongjun <weiyongjun1@huawei.com>
Bluetooth: Fix debugfs entry leak in hci_register_dev()
Merlijn Wajer <merlijn@wizzup.org>
leds: lp55xx: initialise output direction from dts
Sicelo A. Mhlongo <absicsz@gmail.com>
ARM: dts: omap3-n900: Fix lp5523 for multi color
jason-jh.lin <jason-jh.lin@mediatek.com>
mailbox: fix gce_num of mt8192 driver data
Paul Cercueil <paul@crapouillou.net>
MIPS: compressed: Fix build with ZSTD compression
Paul Cercueil <paul@crapouillou.net>
MIPS: boot/compressed/: add __ashldi3 to target for ZSTD compression
Stephen Boyd <swboyd@chromium.org>
of/fdt: Don't worry about non-memory region overlap for no-map
Baruch Siach <baruch@tkos.co.il>
of: base: Fix phandle argument length mismatch error message
Conor Dooley <conor.dooley@microchip.com>
clk: bm1880: remove kfrees on static allocations
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: fsl_asrc: refine the check of available clock divider
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: imx-card: improve the sound quality for low rate
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: imx-card: Fix mclk calculation issue for akcodec
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: imx-card: Need special setting for ak4497 on i.MX8MQ
Taniya Das <tdas@codeaurora.org>
clk: qcom: gcc-sc7280: Mark gcc_cfg_noc_lpass_clk always enabled
Kamal Heib <kamalheib1@gmail.com>
RDMA/cxgb4: Set queue pair state when being queried
Christian A. Ehrhardt <lk@c--e.de>
ALSA: hda/cs8409: Fix Jack detection after resume
Christian A. Ehrhardt <lk@c--e.de>
ALSA: hda/cs8409: Increase delay during jack detection
Alyssa Ross <hi@alyssa.is>
ASoC: fsl_mqs: fix MODULE_ALIAS
Ammar Faizi <ammarfaizi2@gmail.com>
powerpc/xive: Add missing null check after calling kmalloc
Randy Dunlap <rdunlap@infradead.org>
mips: bcm63xx: add support for clk_set_parent()
Randy Dunlap <rdunlap@infradead.org>
mips: lantiq: add support for clk_set_parent()
Sameer Pujar <spujar@nvidia.com>
arm64: tegra: Remove non existent Tegra194 reset
Trevor Wu <trevor.wu@mediatek.com>
ASoC: mediatek: mt8195: correct pcmif BE dai control flow
Wei Yongjun <weiyongjun1@huawei.com>
misc: lattice-ecp3-config: Fix task hung when firmware load failed
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: samsung: idma: Check of ioremap return value
Swapnil Jakhade <sjakhade@cadence.com>
phy: cadence: Sierra: Fix to get correct parent for mux clocks
Michael Ellerman <mpe@ellerman.id.au>
powerpc/64s: Use EMIT_WARN_ENTRY for SRR debug warnings
Michael Ellerman <mpe@ellerman.id.au>
powerpc/64s: Mask NIP before checking against SRR0
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: mediatek: Check for error clk pointer
Ryuta NAKANISHI <nakanishi.ryuta@socionext.com>
phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
Alan Stern <stern@rowland.harvard.edu>
scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
Pingfan Liu <kernelfans@gmail.com>
efi: apply memblock cap after memblock_add()
Zhen Lei <thunder.leizhen@huawei.com>
of: fdt: Aggregate the processing of "linux,usable-memory-range"
Trevor Wu <trevor.wu@mediatek.com>
ASoC: mediatek: mt8195: correct default value
Xiongfeng Wang <wangxiongfeng2@huawei.com>
iommu/iova: Fix race between FQ timeout and teardown
Cezary Rojewski <cezary.rojewski@intel.com>
ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: Remove useless irq affinity notifier
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: X2apic mode: mask/unmask interrupts on suspend/resume
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: X2apic mode: setup the INTX registers on mask/unmask
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: X2apic mode: re-enable after resume
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: Restore GA log/tail pointer on host resume
Arnd Bergmann <arnd@arndb.de>
dmaengine: pxa/mmp: stop referencing config->slave_id
Lukas Bulwahn <lukas.bulwahn@gmail.com>
mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
Lukas Bulwahn <lukas.bulwahn@gmail.com>
mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
Dillon Min <dillon.minfei@gmail.com>
clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell
Frank Rowand <frank.rowand@sony.com>
of: unittest: 64 bit dma address test requires arch support
Jim Quinlan <jim2101024@gmail.com>
of: unittest: fix warning on PowerPC frame size warning
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: rt5663: Handle device_property_read_u32_array error codes
Avihai Horon <avihaih@nvidia.com>
RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
Avihai Horon <avihaih@nvidia.com>
RDMA/core: Let ib_find_gid() continue search even after empty entry
Rob Clark <robdclark@chromium.org>
iommu/arm-smmu-qcom: Fix TTBR0 read
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/powermac: Add additional missing lockdep_register_key()
Thomas Gleixner <tglx@linutronix.de>
PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
Kamal Heib <kamalheib1@gmail.com>
RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
Bart Van Assche <bvanassche@acm.org>
scsi: ufs: Fix race conditions related to driver data
Bart Van Assche <bvanassche@acm.org>
scsi: core: Fix scsi_device_max_queue_depth()
Hector Martin <marcan@marcan.st>
iommu/io-pgtable-arm: Fix table descriptor paddr formatting
Lu Baolu <baolu.lu@linux.intel.com>
iommu: Extend mutex lock scope in iommu_probe_device()
Stafford Horne <shorne@gmail.com>
openrisc: Add clone3 ABI wrapper
Todd Kjos <tkjos@google.com>
binder: avoid potential data leakage when copying txn
Todd Kjos <tkjos@google.com>
binder: fix handling of error during copy
Kees Cook <keescook@chromium.org>
char/mwave: Adjust io port register size
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
misc: at25: Make driver OF independent again
Takashi Iwai <tiwai@suse.de>
ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
Bixuan Cui <cuibixuan@linux.alibaba.com>
ALSA: oss: fix compile error when OSS_DEBUG is enabled
Waiman Long <longman@redhat.com>
clocksource: Avoid accidental unstable marking of clocksources
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/32s: Fix shift-out-of-bounds in KASAN init
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/modules: Don't WARN on first module allocation attempt
Athira Rajeev <atrajeev@linux.vnet.ibm.com>
powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC
Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
dt-bindings: thermal: Fix definition of cooling-maps contribution property
Thomas Gleixner <tglx@linutronix.de>
ALSA: hda: Make proper use of timecounter
Jack Wang <jinpu.wang@ionos.com>
RDMA/rtrs-clt: Fix the initial value of min_latency
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ASoC: codecs: wcd938x: add SND_SOC_WCD938_SDW to codec list instead
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
Peiwei Hu <jlu.hpw@foxmail.com>
powerpc/prom_init: Fix improper check of prom_getprop()
Adam Ford <aford173@gmail.com>
clk: imx8mn: Fix imx8mn_clko1_sels
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
clk: renesas: rzg2l: propagate return value of_genpd_add_provider_simple()
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
clk: renesas: rzg2l: Check return value of pm_genpd_init()
Igor Pylypiv <ipylypiv@google.com>
scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
Kamal Heib <kamalheib1@gmail.com>
RDMA/hns: Validate the pkey index
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"
Takashi Iwai <tiwai@suse.de>
ALSA: hda: Fix potential deadlock at codec unbinding
Takashi Iwai <tiwai@suse.de>
ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
Takashi Iwai <tiwai@suse.de>
ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
Takashi Iwai <tiwai@suse.de>
ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible
Jan Kara <jack@suse.cz>
ext4: avoid trim error on fs with small groups
Pavel Skripkin <paskripkin@gmail.com>
net: mcs7830: handle usb read errors properly
Edwin Peer <edwin.peer@broadcom.com>
bnxt_en: use firmware provided max timeout for messages
Edwin Peer <edwin.peer@broadcom.com>
bnxt_en: move coredump functions into dedicated file
Edwin Peer <edwin.peer@broadcom.com>
bnxt_en: Refactor coredump functions
Nathan Chancellor <nathan@kernel.org>
iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
Paul Blakey <paulb@nvidia.com>
net: openvswitch: Fix ct_state nat flags for conns arriving from tc
Paul Blakey <paulb@nvidia.com>
net: openvswitch: Fix matching zone id for invalid conns arriving from tc
Paul Blakey <paulb@nvidia.com>
net/sched: flow_dissector: Fix matching on zone id for invalid conns
Dominik Brodowski <linux@dominikbrodowski.net>
pcmcia: fix setting of kthread task states
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
can: rcar_canfd: rcar_canfd_channel_probe(): make sure we free CAN network device
Jiasheng Jiang <jiasheng@iscas.ac.cn>
can: xilinx_can: xcan_probe(): check for error irq
Marc Kleine-Budde <mkl@pengutronix.de>
can: softing: softing_startstop(): fix set but not used variable warning
Christophe Jaillet <christophe.jaillet@wanadoo.fr>
tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
Chen Jun <chenjun102@huawei.com>
tpm: add request_locality before write TPM_INT_ENABLE
Marc Kleine-Budde <mkl@pengutronix.de>
can: mcp251xfd: add missing newline to printed strings
Vladimir Oltean <vladimir.oltean@nxp.com>
net: mscc: ocelot: fix incorrect balancing with down LAG ports
Fabio Estevam <festevam@denx.de>
regmap: Call regmap_debugfs_exit() prior to _init()
Dan Carpenter <dan.carpenter@oracle.com>
netrom: fix api breakage in nr_setsockopt()
Dan Carpenter <dan.carpenter@oracle.com>
ax25: uninitialized variable in ax25_setsockopt()
Subbaraya Sundeep <sbhatta@marvell.com>
octeontx2-af: Increment ptp refcount before use
Miaoqian Lin <linmq006@gmail.com>
spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
Geliang Tang <geliang.tang@suse.com>
mptcp: fix a DSS option writing error
Matthieu Baerts <matthieu.baerts@tessares.net>
mptcp: fix opt size when sending DSS + MP_FAIL
Paolo Abeni <pabeni@redhat.com>
mptcp: fix per socket endpoint accounting
Dan Carpenter <dan.carpenter@oracle.com>
Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
Zizhuang Deng <sunsetdzz@gmail.com>
lib/mpi: Add the return value check of kcalloc()
Moshe Shemesh <moshe@nvidia.com>
net/mlx5: Set command entry semaphore up once got index free
Maor Dickman <maord@nvidia.com>
net/mlx5e: Sync VXLAN udp ports during uplink representor profile change
Shay Drory <shayd@nvidia.com>
net/mlx5: Fix access to sf_dev_table on allocation failure
Paul Blakey <paulb@nvidia.com>
net/mlx5e: Fix matching on modified inner ip_ecn bits
Aya Levin <ayal@nvidia.com>
Revert "net/mlx5e: Block offload of outer header csum for GRE tunnel"
Aya Levin <ayal@nvidia.com>
Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
Maor Dickman <maord@nvidia.com>
net/mlx5e: Don't block routes with nexthop objects in SW
Maor Dickman <maord@nvidia.com>
net/mlx5e: Fix wrong usage of fib_info_nh when routes with nexthop objects are used
Aya Levin <ayal@nvidia.com>
net/mlx5e: Fix page DMA map/unmap attributes
Huang Rui <ray.huang@amd.com>
x86, sched: Fix undefined reference to init_freq_invariance_cppc() build error
Valentin Caron <valentin.caron@foss.st.com>
serial: stm32: move tx dma terminate DMA to shutdown
Alyssa Ross <hi@alyssa.is>
serial: liteuart: fix MODULE_ALIAS
Miaoqian Lin <linmq006@gmail.com>
drivers/firmware: Add missing platform_device_put() in sysfb_create_simplefb
Michal Suchanek <msuchanek@suse.de>
debugfs: lockdown: Allow reading debugfs files that are not world readable
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
Pavel Hofman <pavel.hofman@ivitera.com>
usb: gadget: u_audio: Subdevice 0 for capture ctls
John Keeping <john@metanate.com>
usb: dwc2: gadget: initialize max_speed from params
Dinh Nguyen <dinguyen@kernel.org>
usb: dwc2: do not gate off the hardware if it does not support clock gating
Miaoqian Lin <linmq006@gmail.com>
usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
Wen Gu <guwen@linux.alibaba.com>
net/smc: Reset conn->lgr when link group registration fails
Miaoqian Lin <linmq006@gmail.com>
Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
Jiasheng Jiang <jiasheng@iscas.ac.cn>
Bluetooth: hci_bcm: Check for error irq
Jiasheng Jiang <jiasheng@iscas.ac.cn>
fsl/fman: Check for null pointer after calling devm_ioremap
Jiasheng Jiang <jiasheng@iscas.ac.cn>
staging: greybus: audio: Check null pointer
Dan Carpenter <dan.carpenter@oracle.com>
rocker: fix a sleeping in atomic bug
Eric Dumazet <edumazet@google.com>
ppp: ensure minimum packet size in ppp_write()
Miroslav Lichvar <mlichvar@redhat.com>
net: fix SOF_TIMESTAMPING_BIND_PHC to work with multiple sockets
Florian Westphal <fw@strlen.de>
netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
Pablo Neira Ayuso <pablo@netfilter.org>
netfilter: nft_payload: do not update layer 4 checksum when mangling fragments
Kuniyuki Iwashima <kuniyu@amazon.co.jp>
bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
Kris Van Hees <kris.van.hees@oracle.com>
bpf: Fix verifier support for validation of async callbacks
Daniel Borkmann <daniel@iogearbox.net>
bpf: Don't promote bogus looking registers after null check.
John Fastabend <john.fastabend@gmail.com>
bpf, sockmap: Fix double bpf_prog_put on error case in map_link
John Fastabend <john.fastabend@gmail.com>
bpf, sockmap: Fix return codes from tcp_bpf_recvmsg_parser()
Xin Xiong <xiongx18@fudan.edu.cn>
netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
Vladimir Oltean <vladimir.oltean@nxp.com>
net: dsa: fix incorrect function pointer check for MRP ring roles
Daniel Golle <daniel@makrotopia.org>
net: ethernet: mtk_eth_soc: fix return values and refactor MDIO ops
Raed Salem <raeds@nvidia.com>
net/xfrm: IPsec tunnel mode fix inner_ipproto setting in sec_path
Jiasheng Jiang <jiasheng@iscas.ac.cn>
power: reset: mt6397: Check for null res pointer
Zhou Qingyang <zhou1615@umn.edu>
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
Zhou Qingyang <zhou1615@umn.edu>
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
Hans de Goede <hdegoede@redhat.com>
ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
serial: 8250_bcm7271: Propagate error codes from brcmuart_probe()
Pavel Begunkov <asml.silence@gmail.com>
io_uring: remove double poll on poll update
Zhang Zixun <zhang133010@icloud.com>
x86/mce/inject: Avoid out-of-bounds write when setting flags
Arseny Demidov <arsdemal@gmail.com>
hwmon: (mr75203) fix wrong power-up delay value
Marijn Suijten <marijn.suijten@somainline.org>
regulator: qcom-labibb: OCP interrupts are not a failure while disabled
Dan Carpenter <dan.carpenter@oracle.com>
crypto: octeontx2 - prevent underflow in get_cores_bmap()
Nathan Chancellor <nathan@kernel.org>
x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
Panicker Harish <quic_pharish@quicinc.com>
Bluetooth: hci_qca: Stop IBS timer during BT OFF
Clément Léger <clement.leger@bootlin.com>
software node: fix wrong node passed to find nargs_prop
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Respect enabled-strings in set_brightness
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Override default length with qcom,enabled-strings
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Fix off-by-one maximum with default num_strings
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Pass number of elements to read to read_u32_array
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Validate enabled string indices in DT
Paul Chaignon <paul@isovalent.com>
bpftool: Enable line buffering for stdout
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: L2CAP: Fix using wrong mode
Johannes Berg <johannes.berg@intel.com>
um: virtio_uml: Fix time-travel external time propagation
Johannes Berg <johannes.berg@intel.com>
lib/logic_iomem: Fix operation on 32-bit
Johannes Berg <johannes.berg@intel.com>
lib/logic_iomem: Fix 32-bit build
Johannes Berg <johannes.berg@intel.com>
um: virt-pci: Fix 32-bit compile
Johannes Berg <johannes.berg@intel.com>
um: rename set_signals() to um_set_signals()
Johannes Berg <johannes.berg@intel.com>
um: fix ndelay/udelay defines
Bernard Zhao <bernard@vivo.com>
selinux: fix potential memleak in selinux_add_opt()
Christoph Hellwig <hch@lst.de>
block: fix error unwinding in device_add_disk
Sergey Shtylyov <s.shtylyov@omp.ru>
mmc: meson-mx-sdio: add IRQ check
Sergey Shtylyov <s.shtylyov@omp.ru>
mmc: meson-mx-sdhc: add IRQ check
Avraham Stern <avraham.stern@intel.com>
iwlwifi: mvm: set protected flag only for NDP ranging
Avraham Stern <avraham.stern@intel.com>
iwlwifi: mvm: perform 6GHz passive scan after suspend
Nathan Errera <nathan.errera@intel.com>
iwlwifi: mvm: test roc running status bits before removing the sta
Johannes Berg <johannes.berg@intel.com>
iwlwifi: mvm: fix 32-bit build in FTM
Kai-Heng Feng <kai.heng.feng@canonical.com>
rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE
Ping-Ke Shih <pkshih@realtek.com>
rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC
Dan Carpenter <dan.carpenter@oracle.com>
wilc1000: fix double free error in probe()
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921: drop offload_flags overwritten
Marek Behún <kabel@kernel.org>
ARM: dts: armada-38x: Add generic compatible to UART nodes
Robert Marko <robert.marko@sartura.hr>
arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
Robert Marko <robert.marko@sartura.hr>
arm64: dts: marvell: cn9130: add GPIO and SPI aliases
Wei Yongjun <weiyongjun1@huawei.com>
usb: ftdi-elan: fix memory leak on device disconnect
Andre Przywara <andre.przywara@arm.com>
ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
Antony Antony <antony.antony@secunet.com>
xfrm: state and policy should fail if XFRMA_IF_ID 0
Antony Antony <antony.antony@secunet.com>
xfrm: interface with if_id 0 should return error
Jernej Skrabec <jernej.skrabec@gmail.com>
media: hantro: Fix probe func error path
Robin Murphy <robin.murphy@arm.com>
drm/tegra: vic: Fix DMA API misuse
Thierry Reding <treding@nvidia.com>
drm/tegra: gr2d: Explicitly control module reset
Arnd Bergmann <arnd@arndb.de>
gpu: host1x: select CONFIG_DMA_SHARED_BUFFER
Stephen Boyd <swboyd@chromium.org>
drm/bridge: ti-sn65dsi86: Set max register for regmap
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drm/msm/dpu: fix safe status debugfs file
Baruch Siach <baruch@tkos.co.il>
arm64: dts: qcom: ipq6018: Fix gpio-ranges property
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
arm64: dts: qcom: c630: Fix soundcard setup
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Add missing PTP via UDP rules
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Allow PTP P2P measurements on blocked ports
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Add STP forwarding rule
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Fix insertion of static FDB entries
Zhou Qingyang <zhou1615@umn.edu>
ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
Jiasheng Jiang <jiasheng@iscas.ac.cn>
media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
Wang Hai <wanghai38@huawei.com>
media: msi001: fix possible null-ptr-deref in msi001_probe()
Anton Vasilyev <vasilyev@ispras.ru>
media: dw2102: Fix use after free
Robin Murphy <robin.murphy@arm.com>
perf/arm-cmn: Fix CPU hotplug unregistration
Christian Lamparter <chunkeey@gmail.com>
ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
Hector Martin <marcan@marcan.st>
spi: Fix incorrect cs_setup delay handling
Rameshkumar Sundaram <quic_ramess@quicinc.com>
ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
Weili Qian <qianweili@huawei.com>
crypto: hisilicon/qm - fix incorrect return value of hisi_qm_resume()
Herbert Xu <herbert@gondor.apana.org.au>
crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix bugs and crash in tests
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix lrw chaining mode
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix double pm exit
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - check early input data
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix CTR counter carry
Jakub Kicinski <kuba@kernel.org>
selftests: harness: avoid false negatives if test has no ASSERTs
Anders Roxell <anders.roxell@linaro.org>
selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
Kees Cook <keescook@chromium.org>
x86/uaccess: Move variable into switch case statement
Eric Dumazet <edumazet@google.com>
xfrm: fix a small bug in xfrm_sa_len()
Brian Norris <briannorris@chromium.org>
mwifiex: Fix possible ABBA deadlock
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drm/msm/dsi: fix initialization in the bonded DSI case
Loic Poulain <loic.poulain@linaro.org>
wcn36xx: Fix max channels retrieval
Frederic Weisbecker <frederic@kernel.org>
rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
Jackie Liu <liuyun01@kylinos.cn>
drm/msm/dp: displayPort driver need algorithm rational
Rob Clark <robdclark@chromium.org>
drm/msm/gpu: Don't allow zero fence_id
Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
drm/amd/display: Fix out of bounds access on DNC31 stream encoder regs
Wayne Lin <Wayne.Lin@amd.com>
drm/amd/display: Fix bug in debugfs crc_win_update entry
Mark Chen <mark-yw.chen@mediatek.com>
Bluetooth: btusb: Handle download_firmware failure cases
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: MGMT: Use hci_dev_test_and_{set,clear}_flag
Joseph Hwang <josephsih@chromium.org>
Bluetooth: refactor set_exp_feature with a feature table
Fabio Estevam <festevam@denx.de>
ath10k: Fix the MTU size on QCA9377 SDIO
Li Hua <hucool.lihua@huawei.com>
sched/rt: Try to restart rt period timer when rt runtime exceeded
Lv Yunlong <lyl2019@mail.ustc.edu.cn>
wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
Robert Schlabbach <robert_s@gmx.net>
media: si2157: Fix "warm" tuner state detection
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
Zhou Qingyang <zhou1615@umn.edu>
media: dib8000: Fix a memleak in dib8000_init()
Alexander Lobakin <alexandr.lobakin@intel.com>
samples: bpf: Fix 'unknown warning group' build warning on Clang
Alexander Lobakin <alexandr.lobakin@intel.com>
samples: bpf: Fix xdp_sample_user.o linking with Clang
Andrii Nakryiko <andrii@kernel.org>
samples/bpf: Clean up samples/bpf build failes
Quentin Monnet <quentin@isovalent.com>
samples/bpf: Install libbpf headers when building
Reiji Watanabe <reijiw@google.com>
arm64: mte: DC {GVA,GZVA} shouldn't be used when DCZID_EL0.DZP == 1
Reiji Watanabe <reijiw@google.com>
arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
Kajol Jain <kjain@linux.ibm.com>
bpf: Remove config check to enable bpf support for branch records
Hou Tao <houtao1@huawei.com>
bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
Alexei Starovoitov <ast@kernel.org>
bpf: Adjust BTF log size limit.
Vincent Donnefort <vincent.donnefort@arm.com>
sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
Vincent Donnefort <vincent.donnefort@arm.com>
sched/fair: Fix detection of per-CPU kthreads waking a task
Maxim Mikityanskiy <maximmi@nvidia.com>
bpf: Fix the test_task_vma selftest to support output shorter than 1 kB
Sean Wang <sean.wang@mediatek.com>
Bluetooth: btmtksdio: fix resume failure
Yang Yingliang <yangyingliang@huawei.com>
staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
Yang Yingliang <yangyingliang@huawei.com>
staging: rtl8192e: return error code from rtllib_softmac_init()
Tasos Sahanidis <tasos@tasossah.com>
floppy: Fix hang in watchdog when disk is ejected
Michael Walle <michael@walle.cc>
mtd: core: provide unique name for nvmem device
Lino Sanfilippo <LinoSanfilippo@gmx.de>
serial: amba-pl011: do not request memory region twice
Lizhi Hou <lizhi.hou@xilinx.com>
tty: serial: uartlite: allow 64 bit address
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j721e: Fix the L2 cache sets
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j7200: Fix the L2 cache sets
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-am642: Fix the L2 cache sets
Gaurav Jain <gaurav.jain@nxp.com>
crypto: caam - save caam memory to support crypto engine retry mechanism.
Alexei Starovoitov <ast@kernel.org>
libbpf: Clean gen_loader's attach kind.
Zhou Qingyang <zhou1615@umn.edu>
drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
Zhou Qingyang <zhou1615@umn.edu>
drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode()
Paul Gerber <Paul.Gerber@tq-group.com>
thermal/drivers/imx8mm: Enable ADC when enabling monitor
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPI: EC: Rework flushing of EC work while suspended to idle
William Kucharski <william.kucharski@oracle.com>
cgroup: Trace event cgroup id fields should be u64
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Fail to initialize on broken configs
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Remove the deprecated lower mem limit
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
arm64: dts: qcom: msm8916: fix MMC controller aliases
Mark Rutland <mark.rutland@arm.com>
powerpc: Avoid discarding flags in system_call_exception()
Florian Westphal <fw@strlen.de>
netfilter: bridge: add support for pppoe filtering
Jesper Dangaard Brouer <brouer@redhat.com>
igc: AF_XDP zero-copy metadata adjust breaks SKBs on XDP_PASS
Oleksij Rempel <linux@rempel-privat.de>
thermal/drivers/imx: Implement runtime PM support
Bhupesh Sharma <bhupesh.sharma@linaro.org>
net: stmmac: Add platform level debug register dump feature
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
media: venus: core: Fix a potential NULL pointer dereference in an error handling path
Mansur Alisha Shaik <mansur@codeaurora.org>
media: venus: correct low power frequency calculation for encoder
Philipp Zabel <p.zabel@pengutronix.de>
media: coda: fix CODA960 JPEG encoder buffer overflow
Chen-Yu Tsai <wenst@chromium.org>
media: hantro: Hook up RK3399 JPEG encoder output
Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
Yang Yingliang <yangyingliang@huawei.com>
media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
Fabio Estevam <festevam@denx.de>
media: imx-pxp: Initialize the spinlock prior to using it
Suresh Udipi <sudipi@jp.adit-jv.com>
media: rcar-csi2: Correct the selection of hsfreqrange
Hans de Goede <hdegoede@redhat.com>
media: i2c: ov8865: Fix lockdep error
Daniel Scally <djrscally@gmail.com>
media: i2c: Re-order runtime pm initialisation
Eugen Hristev <eugen.hristev@microchip.com>
media: i2c: imx274: fix s_frame_interval runtime resume not requested
Alan Maguire <alan.maguire@oracle.com>
libbpf: Silence uninitialized warning/error in btf_dump_dump_type_data
Jan Kara <jack@suse.cz>
bfq: Do not let waker requests skip proper accounting
Claudiu Beznea <claudiu.beznea@microchip.com>
mfd: atmel-flexcom: Use .resume_noirq
Claudiu Beznea <claudiu.beznea@microchip.com>
mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
Tudor Ambarus <tudor.ambarus@microchip.com>
tty: serial: atmel: Call dma_async_issue_pending()
Tudor Ambarus <tudor.ambarus@microchip.com>
tty: serial: atmel: Check return code of dmaengine_submit()
Peng Fan <peng.fan@nxp.com>
arm64: dts: ti: k3-j721e: correct cache-sets info
Anilkumar Kolli <akolli@codeaurora.org>
ath11k: Use host CE parameters for CE interrupts configuration
Giovanni Cabiddu <giovanni.cabiddu@intel.com>
crypto: qat - fix undetected PFVF timeout in ACK loop
Marco Chiappero <marco.chiappero@intel.com>
crypto: qat - make pfvf send message direction agnostic
Marco Chiappero <marco.chiappero@intel.com>
crypto: qat - remove unnecessary collision prevention step in PFVF
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix using invalidated memory in bpf_linker
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix glob_syms memory leak in bpf_linker
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix potential misaligned memory access in btf_ext__new()
Dillon Min <dillon.minfei@gmail.com>
ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco
Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
cpufreq: qcom-hw: Fix probable nested interrupt handling
Lukasz Luba <lukasz.luba@arm.com>
cpufreq: qcom-cpufreq-hw: Update offline CPUs per-cpu thermal pressure
George G. Davis <davis.george@siemens.com>
mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
Prasad Malisetty <pmaliset@codeaurora.org>
arm64: dts: qcom: sc7280: Fix incorrect clock name
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_skcipher_register_one
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_ahash_register_one
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_aead_register_one
Tudor Ambarus <tudor.ambarus@microchip.com>
crypto: atmel-aes - Reestablish the correct tfm context at dequeue
Wang Hai <wanghai38@huawei.com>
media: dmxdev: fix UAF when dvb_register_device() fails
Biju Das <biju.das.jz@bp.renesas.com>
arm64: dts: renesas: cat875: Add rx/tx delays
Dan Carpenter <dan.carpenter@oracle.com>
drm/vboxvideo: fix a NULL vs IS_ERR() check
Lyude Paul <lyude@redhat.com>
drm/dp: Don't read back backlight mode in drm_edp_backlight_enable()
Alexander Aring <aahringo@redhat.com>
fs: dlm: fix build with CONFIG_IPV6 disabled
Jens Wiklander <jens.wiklander@linaro.org>
tee: fix put order in teedev_close_context()
oujiefeng <oujiefeng@huawei.com>
spi: hisi-kunpeng: Fix the debugfs directory name incorrect
Karthikeyan Kathirvel <kathirve@codeaurora.org>
ath11k: reset RSN/WPA present state for open BSS
Karthikeyan Kathirvel <kathirve@codeaurora.org>
ath11k: clear the keys properly via DISABLE_KEY
Sven Eckelmann <sven@narfation.org>
ath11k: Fix ETSI regd with weather radar overlap
Pavel Skripkin <paskripkin@gmail.com>
Bluetooth: stop proccessing malicious adv data
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
Alexander Aring <aahringo@redhat.com>
fs: dlm: don't call kernel_getpeername() in error_report()
Christian Hewitt <christianshewitt@gmail.com>
arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
Christian Hewitt <christianshewitt@gmail.com>
arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
Alexander Stein <alexander.stein@mailbox.org>
arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
Alexander Stein <alexander.stein@mailbox.org>
arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
Jammy Huang <jammy_huang@aspeedtech.com>
media: aspeed: Update signal status immediately to ensure sane hw state
Dongliang Mu <mudongliangabcd@gmail.com>
media: em28xx: fix memory leak in em28xx_init_dev
Jammy Huang <jammy_huang@aspeedtech.com>
media: aspeed: fix mode-detect always time out at 2nd run
Dan Carpenter <dan.carpenter@oracle.com>
media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: fix enum formats logic
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix ifdefs in sh_css.c
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid()
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: do not use err var when checking port validity for ISP2400
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix inverted logic in buffers_needed()
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities()
Dillon Min <dillon.minfei@gmail.com>
media: videobuf2: Fix the size printk format
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
Quentin Monnet <quentin@isovalent.com>
bpftool: Fix memory leak in prog_dump()
Rameshkumar Sundaram <ramess@codeaurora.org>
ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
Benjamin Li <benl@squareup.com>
wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
Benjamin Li <benl@squareup.com>
wcn36xx: populate band before determining rate on RX
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Put DXE block into reset before freeing memory
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Release DMA channel descriptor allocations
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Fix DMA channel enable/disable cycle
Andrii Nakryiko <andrii@kernel.org>
libbpf: Free up resources used by inner map definition
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Enable the scrambler on reconnection
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
Benjamin Li <benl@squareup.com>
wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
Maxime Ripard <maxime@cerno.tech>
drm/vc4: crtc: Make sure the HDMI controller is powered when disabling
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Rework the pre_crtc_configure error handling
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Make sure the controller is powered up during bind
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Make sure the controller is powered in detect
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Move the HSM clock enable to runtime_pm
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Set a default HSM rate
Maxime Ripard <maxime@cerno.tech>
clk: bcm-2835: Remove rounding up the dividers
Maxime Ripard <maxime@cerno.tech>
clk: bcm-2835: Pick the closest clock rate
Wang Hai <wanghai38@huawei.com>
Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
Soenke Huster <soenke.huster@eknoes.de>
Bluetooth: virtio_bt: fix memory leak in virtbt_rx_handle()
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Reconfigure hardware on resume()
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Disable PLL clock on bind error
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Hold pm-runtime across bind/unbind
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Fix unbalanced clock on probe error
Brian Norris <briannorris@chromium.org>
drm/panel: innolux-p079zca: Delete panel on attach() failure
Brian Norris <briannorris@chromium.org>
drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
Wang Hai <wanghai38@huawei.com>
drm: fix null-ptr-deref in drm_dev_init_release()
Dan Carpenter <dan.carpenter@oracle.com>
drm/bridge: display-connector: fix an uninitialized pointer in probe()
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: L2CAP: Fix not initializing sk_peer_pid
xinhui pan <xinhui.pan@amd.com>
drm/ttm: Put BO in its memory manager's lru list
Gang Li <ligang.bdlg@bytedance.com>
shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
Wen Gong <quic_wgong@quicinc.com>
ath11k: add string type to search board data in board-2.bin for WCN6855
Baoquan He <bhe@redhat.com>
mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages
Baoquan He <bhe@redhat.com>
dma/pool: create dma atomic pool only if dma zone has managed pages
Baoquan He <bhe@redhat.com>
mm_zone: add function to check if managed dma zone exists
Yifeng Li <tomli@tomli.me>
PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
Thomas Hellström <thomas.hellstrom@linux.intel.com>
dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
Peng Hao <flyingpenghao@gmail.com>
virtio/virtio_mem: handle a possible NULL as a memcpy parameter
Dmitry Osipenko <digetx@gmail.com>
drm/tegra: Add back arm_iommu_detach_device()
Dmitry Osipenko <digetx@gmail.com>
gpu: host1x: Add back arm_iommu_detach_device()
Yunfei Wang <yf.wang@mediatek.com>
iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
Hari Prasath <Hari.PrasathGE@microchip.com>
ARM: dts: at91: update alternate function of signal PD20
D Scott Phillips <scott@os.amperecomputing.com>
arm64: errata: Fix exec handling in erratum 1418040 workaround
Dan Williams <dan.j.williams@intel.com>
cxl/pmem: Fix reference counting for delayed work
Manivannan Sadhasivam <mani@kernel.org>
bus: mhi: core: Fix race while handling SYS_ERR at power up
Bhaumik Bhatt <quic_bbhatt@quicinc.com>
bus: mhi: core: Fix reading wake_capable channel configuration
Loic Poulain <loic.poulain@linaro.org>
bus: mhi: pci_generic: Graceful shutdown on freeze
Christophe Leroy <christophe.leroy@csgroup.eu>
lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
Jonathan Cameron <Jonathan.Cameron@huawei.com>
iio: trigger: Fix a scheduling whilst atomic issue seen on tsc2046
Jonathan Cameron <Jonathan.Cameron@huawei.com>
iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
Alexander Usyskin <alexander.usyskin@intel.com>
mei: hbm: fix client dma reply status
Johan Hovold <johan@kernel.org>
can: softing_cs: softingcs_probe(): fix memleak on registration failure
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: cec-pin: fix interrupt en/disable handling
Johan Hovold <johan@kernel.org>
media: stk1160: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: pvrusb2: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: redrat3: fix control-message timeouts
Michael Kuron <michael.kuron@gmail.com>
media: dib0700: fix undefined behavior in tuner shutdown
Johan Hovold <johan@kernel.org>
media: s2255: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: cpia2: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: em28xx: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: mceusb: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: flexcop-usb: fix control-message timeouts
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
Sakari Ailus <sakari.ailus@linux.intel.com>
media: ov8865: Disable only enabled regulators on error path
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: cec: fix a deadlock situation
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: add reserved room in ipc request/response
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: limits exceeding the maximum allowable outstanding requests
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: move credit charge deduction under processing request
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: add support for smb2 max credit parameter
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: fix guest connection failure with nautilus
Dan Carpenter <dan.carpenter@oracle.com>
ksmbd: uninitialized variable in create_socket()
Mohammad Athari Bin Ismail <mohammad.athari.ismail@intel.com>
net: phy: marvell: add Marvell specific PHY loopback
Mateusz Jończyk <mat.jonczyk@o2.pl>
rtc: cmos: take rtc_lock while reading from CMOS
Willy Tarreau <w@1wt.eu>
tools/nolibc: fix incorrect truncation of exit code
Willy Tarreau <w@1wt.eu>
tools/nolibc: i386: fix initial stack alignment
Jakub Kicinski <kuba@kernel.org>
crypto: x86/aesni - don't require alignment of data
Ammar Faizi <ammar.faizi@students.amikom.ac.id>
tools/nolibc: x86-64: Fix startup code bug
Lucas De Marchi <lucas.demarchi@intel.com>
x86/gpu: Reserve stolen memory for first integrated Intel GPU
Jisheng Zhang <jszhang@kernel.org>
riscv: mm: fix wrong phys_ram_base value for RV64
Nick Kossifidis <mick@ics.forth.gr>
riscv: use hart id instead of cpu id on machine_kexec
Nick Kossifidis <mick@ics.forth.gr>
riscv: Don't use va_pa_offset on kdump
Nick Kossifidis <mick@ics.forth.gr>
riscv: try to allocate crashkern region from 32bit addressible memory
Sean Christopherson <seanjc@google.com>
RISC-V: Use common riscv_cpuid_to_hartid_mask() for both SMP=y and SMP=n
Alexandre Ghiti <alexandre.ghiti@canonical.com>
riscv: Get rid of MAXPHYSMEM configs
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: ingenic: JZ4740 needs 'oob_first' read page function
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: Export nand_read_page_hwecc_oob_first()
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Rewrite function description
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Avoid duplicated page read
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Don't calculate ECC when reading page
Andreas Oetken <ennoerlangen@gmail.com>
mtd: Fixed breaking list in __mtd_del_partition.
Stefan Riedmueller <s.riedmueller@phytec.de>
mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
Christian Eggers <ceggers@arri.de>
mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()
Jaegeuk Kim <jaegeuk@kernel.org>
f2fs: avoid EINVAL by SBI_NEED_FSCK when pinning a file
Chao Yu <chao@kernel.org>
f2fs: fix to do sanity check in is_alive()
Chao Yu <chao@kernel.org>
f2fs: fix to do sanity check on inode type during garbage collection
Takashi Iwai <tiwai@suse.de>
ALSA: core: Fix SSID quirk lookup for subvendor=0
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Avoid using stale array indicies to read contact count
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Ignore the confidence flag when a touch is removed
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Reset expected and received contact counts at the same time
Jann Horn <jannh@google.com>
HID: uhid: Fix worker destroying device without any protection
Karl Kurbjun <kkurbjun@gmail.com>
HID: Ignore battery for Elan touchscreen on HP Envy X360 15t-dr100
Marcelo Tosatti <mtosatti@redhat.com>
KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
David Matlack <dmatlack@google.com>
KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU
-------------
Diffstat:
Documentation/admin-guide/cifs/usage.rst | 7 +-
Documentation/admin-guide/devices.txt | 8 +-
Documentation/admin-guide/hw-vuln/spectre.rst | 2 +-
.../bindings/display/amlogic,meson-dw-hdmi.yaml | 5 +
.../bindings/display/amlogic,meson-vpu.yaml | 6 +
.../devicetree/bindings/input/hid-over-i2c.txt | 2 +
.../devicetree/bindings/thermal/thermal-zones.yaml | 9 +-
.../devicetree/bindings/watchdog/samsung-wdt.yaml | 5 +-
Documentation/driver-api/dmaengine/dmatest.rst | 7 +-
Documentation/driver-api/firewire.rst | 4 +-
.../acpi/dsd/data-node-references.rst | 10 +-
Documentation/trace/coresight/coresight-config.rst | 16 +-
Makefile | 4 +-
arch/arm/Kconfig.debug | 14 +-
arch/arm/boot/compressed/efi-header.S | 22 +-
arch/arm/boot/compressed/head.S | 3 +-
arch/arm/boot/dts/armada-38x.dtsi | 4 +-
arch/arm/boot/dts/gemini-nas4220b.dts | 2 +-
arch/arm/boot/dts/omap3-n900.dts | 50 +-
arch/arm/boot/dts/qcom-sdx55.dtsi | 6 +-
arch/arm/boot/dts/sama7g5-pinfunc.h | 2 +-
arch/arm/boot/dts/stm32f429-disco.dts | 2 +-
arch/arm/configs/cm_x300_defconfig | 1 -
arch/arm/configs/ezx_defconfig | 1 -
arch/arm/configs/imote2_defconfig | 1 -
arch/arm/configs/nhk8815_defconfig | 1 -
arch/arm/configs/pxa_defconfig | 1 -
arch/arm/configs/spear13xx_defconfig | 1 -
arch/arm/configs/spear3xx_defconfig | 1 -
arch/arm/configs/spear6xx_defconfig | 1 -
arch/arm/include/debug/imx-uart.h | 18 +-
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5 +-
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 2 +-
.../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 +-
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 3 +
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 14 +-
arch/arm64/boot/dts/marvell/cn9130.dtsi | 15 +
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 2 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 5 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2 +-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 4 +-
arch/arm64/boot/dts/qcom/msm8996.dtsi | 3 -
arch/arm64/boot/dts/qcom/sc7280.dtsi | 2 +-
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 27 +
arch/arm64/boot/dts/qcom/sm8350.dtsi | 2 +-
arch/arm64/boot/dts/renesas/cat875.dtsi | 1 +
arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77951.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77960.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77961.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77965.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77980.dtsi | 4 +-
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 10 +-
arch/arm64/boot/dts/ti/k3-am642.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j7200.dtsi | 6 +-
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j721e.dtsi | 6 +-
arch/arm64/include/asm/mte-kasan.h | 8 +-
arch/arm64/kernel/process.c | 39 +-
arch/arm64/lib/clear_page.S | 10 +
arch/arm64/lib/mte.S | 8 +-
arch/mips/Kconfig | 6 +-
arch/mips/bcm63xx/clk.c | 6 +
arch/mips/boot/compressed/Makefile | 2 +-
arch/mips/boot/compressed/clz_ctz.c | 2 +
arch/mips/cavium-octeon/octeon-platform.c | 2 +
arch/mips/cavium-octeon/octeon-usb.c | 1 +
arch/mips/configs/fuloong2e_defconfig | 1 -
arch/mips/configs/malta_qemu_32r6_defconfig | 1 -
arch/mips/configs/maltaaprp_defconfig | 1 -
arch/mips/configs/maltasmvp_defconfig | 1 -
arch/mips/configs/maltasmvp_eva_defconfig | 1 -
arch/mips/configs/maltaup_defconfig | 1 -
.../asm/mach-loongson64/kernel-entry-init.h | 4 +-
arch/mips/include/asm/octeon/cvmx-bootinfo.h | 4 +-
arch/mips/lantiq/clk.c | 6 +
arch/openrisc/include/asm/syscalls.h | 2 +
arch/openrisc/kernel/entry.S | 5 +
arch/parisc/include/asm/special_insns.h | 44 +-
arch/parisc/kernel/traps.c | 2 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi | 2 +
arch/powerpc/configs/ppc6xx_defconfig | 1 -
arch/powerpc/configs/pseries_defconfig | 1 -
arch/powerpc/include/asm/hw_irq.h | 40 +
arch/powerpc/kernel/btext.c | 4 +-
arch/powerpc/kernel/fadump.c | 8 +
arch/powerpc/kernel/head_40x.S | 9 +-
arch/powerpc/kernel/interrupt.c | 2 +-
arch/powerpc/kernel/interrupt_64.S | 10 +-
arch/powerpc/kernel/module.c | 11 +-
arch/powerpc/kernel/prom_init.c | 2 +-
arch/powerpc/kernel/smp.c | 42 +
arch/powerpc/kernel/watchdog.c | 41 +-
arch/powerpc/kvm/book3s_hv.c | 8 +-
arch/powerpc/kvm/book3s_hv_nested.c | 2 +-
arch/powerpc/mm/book3s64/radix_pgtable.c | 4 +-
arch/powerpc/mm/kasan/book3s_32.c | 3 +-
arch/powerpc/mm/pgtable_64.c | 14 +-
arch/powerpc/perf/core-book3s.c | 58 +-
arch/powerpc/platforms/cell/iommu.c | 1 +
arch/powerpc/platforms/cell/pervasive.c | 1 +
arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 1 +
arch/powerpc/platforms/powermac/low_i2c.c | 3 +
arch/powerpc/platforms/powernv/opal-lpc.c | 1 +
arch/powerpc/sysdev/xive/spapr.c | 3 +
arch/riscv/Kconfig | 23 +-
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi | 3 -
arch/riscv/configs/nommu_k210_defconfig | 2 -
arch/riscv/configs/nommu_k210_sdcard_defconfig | 2 -
arch/riscv/configs/nommu_virt_defconfig | 1 -
arch/riscv/include/asm/smp.h | 10 +-
arch/riscv/kernel/kexec_relocate.S | 20 +-
arch/riscv/kernel/machine_kexec.c | 3 +-
arch/riscv/kernel/setup.c | 10 +
arch/riscv/kernel/smp.c | 10 -
arch/riscv/mm/init.c | 19 +-
arch/s390/mm/pgalloc.c | 4 +-
arch/sh/configs/titan_defconfig | 1 -
arch/um/.gitignore | 1 +
arch/um/drivers/virt-pci.c | 8 +-
arch/um/drivers/virtio_uml.c | 4 +
arch/um/include/asm/delay.h | 4 +-
arch/um/include/asm/irqflags.h | 4 +-
arch/um/include/shared/longjmp.h | 2 +-
arch/um/include/shared/os.h | 4 +-
arch/um/include/shared/registers.h | 4 +-
arch/um/kernel/ksyms.c | 2 +-
arch/um/os-Linux/registers.c | 4 +-
arch/um/os-Linux/sigio.c | 6 +-
arch/um/os-Linux/signal.c | 8 +-
arch/um/os-Linux/start_up.c | 2 +-
arch/x86/boot/compressed/Makefile | 7 +-
arch/x86/configs/i386_defconfig | 1 +
arch/x86/configs/x86_64_defconfig | 1 +
arch/x86/crypto/aesni-intel_glue.c | 4 +-
arch/x86/include/asm/realmode.h | 1 +
arch/x86/include/asm/topology.h | 2 +-
arch/x86/include/asm/uaccess.h | 5 +-
arch/x86/kernel/cpu/mce/core.c | 42 +-
arch/x86/kernel/cpu/mce/inject.c | 2 +-
arch/x86/kernel/early-quirks.c | 10 +-
arch/x86/kernel/reboot.c | 12 +-
arch/x86/kvm/mmu/tdp_mmu.c | 6 +-
arch/x86/kvm/vmx/posted_intr.c | 16 +-
arch/x86/realmode/init.c | 26 +
arch/x86/um/syscalls_64.c | 3 +-
block/bfq-iosched.c | 44 +-
block/blk-flush.c | 4 +-
block/blk-pm.c | 22 +-
block/genhd.c | 15 +-
block/mq-deadline.c | 4 +-
crypto/jitterentropy.c | 3 +-
drivers/acpi/acpica/exfield.c | 7 +-
drivers/acpi/acpica/exoparg1.c | 3 +-
drivers/acpi/acpica/hwesleep.c | 4 +-
drivers/acpi/acpica/hwsleep.c | 4 +-
drivers/acpi/acpica/hwxfsleep.c | 2 -
drivers/acpi/acpica/utdelete.c | 1 +
drivers/acpi/battery.c | 22 +
drivers/acpi/bus.c | 4 +-
drivers/acpi/cppc_acpi.c | 2 +-
drivers/acpi/ec.c | 57 +-
drivers/acpi/internal.h | 2 +
drivers/acpi/scan.c | 13 +-
drivers/acpi/x86/utils.c | 116 ++-
drivers/android/binder.c | 98 ++-
drivers/base/core.c | 3 +-
drivers/base/power/runtime.c | 41 +-
drivers/base/property.c | 4 +-
drivers/base/regmap/regmap.c | 1 +
drivers/base/swnode.c | 2 +-
drivers/block/floppy.c | 6 +-
drivers/bluetooth/btintel.c | 26 +-
drivers/bluetooth/btmtksdio.c | 2 +
drivers/bluetooth/btusb.c | 5 +
drivers/bluetooth/hci_bcm.c | 7 +-
drivers/bluetooth/hci_qca.c | 9 +-
drivers/bluetooth/hci_vhci.c | 2 +
drivers/bluetooth/virtio_bt.c | 3 +
drivers/bus/mhi/core/init.c | 1 +
drivers/bus/mhi/core/pm.c | 35 +-
drivers/bus/mhi/pci_generic.c | 2 +-
drivers/char/mwave/3780i.h | 2 +-
drivers/char/random.c | 19 +-
drivers/char/tpm/tpm-chip.c | 18 +-
drivers/char/tpm/tpm_tis_core.c | 14 +-
drivers/clk/bcm/clk-bcm2835.c | 13 +-
drivers/clk/clk-bm1880.c | 20 +-
drivers/clk/clk-si5341.c | 2 +-
drivers/clk/clk-stm32f4.c | 4 -
drivers/clk/clk.c | 18 +
drivers/clk/imx/clk-imx8mn.c | 6 +-
drivers/clk/meson/gxbb.c | 44 +-
drivers/clk/qcom/gcc-sc7280.c | 2 +-
drivers/clk/renesas/rzg2l-cpg.c | 17 +-
drivers/cpufreq/cpufreq.c | 4 +-
drivers/cpufreq/qcom-cpufreq-hw.c | 7 +-
drivers/crypto/atmel-aes.c | 6 +-
drivers/crypto/caam/caamalg.c | 6 +
drivers/crypto/caam/caamalg_qi2.c | 2 +-
drivers/crypto/caam/caamhash.c | 3 +
drivers/crypto/caam/caampkc.c | 3 +
drivers/crypto/ccp/sev-dev.c | 30 +-
drivers/crypto/hisilicon/hpre/hpre_crypto.c | 2 +-
drivers/crypto/hisilicon/qm.c | 2 +-
drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c | 9 +-
.../crypto/marvell/octeontx2/otx2_cptpf_ucode.c | 3 +-
drivers/crypto/omap-aes.c | 2 +-
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 45 +-
drivers/crypto/qce/aead.c | 2 +-
drivers/crypto/qce/sha.c | 2 +-
drivers/crypto/qce/skcipher.c | 2 +-
drivers/crypto/stm32/stm32-crc32.c | 4 +-
drivers/crypto/stm32/stm32-cryp.c | 938 ++++++++-------------
drivers/crypto/stm32/stm32-hash.c | 6 +-
drivers/cxl/pmem.c | 17 +-
drivers/dma-buf/dma-fence-array.c | 6 +-
drivers/dma/at_xdmac.c | 57 +-
drivers/dma/idxd/device.c | 12 +-
drivers/dma/mmp_pdma.c | 6 -
drivers/dma/pxa_dma.c | 7 -
drivers/dma/stm32-mdma.c | 2 +-
drivers/dma/uniphier-xdmac.c | 5 +-
drivers/edac/synopsys_edac.c | 3 +-
drivers/firmware/efi/efi-init.c | 5 +
drivers/firmware/google/Kconfig | 6 +-
drivers/firmware/sysfb_simplefb.c | 8 +-
drivers/gpio/gpio-aspeed-sgpio.c | 32 +-
drivers/gpio/gpio-aspeed.c | 52 +-
drivers/gpio/gpio-idt3243x.c | 4 +-
drivers/gpio/gpio-mpc8xxx.c | 4 +-
drivers/gpio/gpiolib-acpi.c | 15 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 4 +
drivers/gpu/drm/amd/amdgpu/cik.c | 4 +
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 13 +-
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/vi.c | 4 +
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 138 ++-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 5 +-
drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 3 +-
drivers/gpu/drm/amd/display/dc/core/dc.c | 3 +-
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 2 +
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 3 +-
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 6 +
drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 14 +-
drivers/gpu/drm/bridge/display-connector.c | 2 +-
.../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 40 +-
.../gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 10 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 4 +-
.../gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 9 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 12 +-
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 +
drivers/gpu/drm/drm_dp_helper.c | 40 +-
drivers/gpu/drm/drm_drv.c | 9 +-
drivers/gpu/drm/drm_panel_orientation_quirks.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 1 +
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 10 +-
drivers/gpu/drm/lima/lima_device.c | 1 +
drivers/gpu/drm/msm/Kconfig | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4 +-
drivers/gpu/drm/msm/dsi/dsi.c | 10 +-
drivers/gpu/drm/msm/dsi/dsi.h | 1 -
drivers/gpu/drm/msm/dsi/dsi_manager.c | 17 -
drivers/gpu/drm/msm/msm_gem_submit.c | 2 +-
drivers/gpu/drm/nouveau/dispnv04/disp.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 37 +-
.../gpu/drm/panel/panel-feiyang-fy07024di26a30d.c | 8 +-
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 10 +-
drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 8 +-
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 8 +-
drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 8 +-
.../gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 8 +-
drivers/gpu/drm/panel/panel-ronbo-rb070d30.c | 8 +-
.../drm/panel/panel-samsung-s6e88a0-ams452ef01.c | 1 +
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 1 +
drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 8 +-
drivers/gpu/drm/radeon/radeon_kms.c | 42 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 20 +-
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 82 +-
drivers/gpu/drm/tegra/drm.c | 15 +
drivers/gpu/drm/tegra/gr2d.c | 33 +-
drivers/gpu/drm/tegra/submit.c | 4 +-
drivers/gpu/drm/tegra/vic.c | 7 +-
drivers/gpu/drm/ttm/ttm_bo.c | 2 +
drivers/gpu/drm/vboxvideo/vbox_main.c | 4 +-
drivers/gpu/drm/vc4/vc4_crtc.c | 31 +-
drivers/gpu/drm/vc4/vc4_drv.h | 29 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 136 ++-
drivers/gpu/drm/vc4/vc4_hvs.c | 26 +-
drivers/gpu/drm/vc4/vc4_kms.c | 3 +-
drivers/gpu/drm/vc4/vc4_txp.c | 4 +-
drivers/gpu/drm/vmwgfx/Makefile | 3 +-
drivers/gpu/drm/vmwgfx/ttm_memory.c | 99 +--
drivers/gpu/drm/vmwgfx/ttm_memory.h | 6 +-
drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c | 7 +
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 48 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 20 +-
drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 12 +-
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 4 +-
drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c | 90 ++
drivers/gpu/drm/vmwgfx/vmwgfx_thp.c | 184 ----
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 58 +-
drivers/gpu/host1x/Kconfig | 1 +
drivers/gpu/host1x/dev.c | 15 +
drivers/hid/hid-apple.c | 2 +-
drivers/hid/hid-ids.h | 1 +
drivers/hid/hid-input.c | 8 +
drivers/hid/hid-magicmouse.c | 95 ++-
drivers/hid/hid-uclogic-params.c | 31 +-
drivers/hid/hid-vivaldi.c | 34 +-
drivers/hid/i2c-hid/i2c-hid-acpi.c | 2 +-
drivers/hid/i2c-hid/i2c-hid-core.c | 4 +-
drivers/hid/i2c-hid/i2c-hid-of-goodix.c | 2 +-
drivers/hid/i2c-hid/i2c-hid-of.c | 10 +-
drivers/hid/i2c-hid/i2c-hid.h | 2 +-
drivers/hid/uhid.c | 29 +-
drivers/hid/wacom_wac.c | 39 +-
drivers/hsi/hsi_core.c | 1 +
drivers/hwmon/mr75203.c | 2 +-
drivers/i2c/busses/i2c-designware-pcidrv.c | 8 +-
drivers/i2c/busses/i2c-i801.c | 15 +-
drivers/i2c/busses/i2c-mpc.c | 23 +-
drivers/iio/adc/ti-adc081c.c | 22 +-
drivers/iio/industrialio-trigger.c | 36 +-
drivers/infiniband/core/cma.c | 18 +-
drivers/infiniband/core/device.c | 3 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1 -
drivers/infiniband/hw/cxgb4/qp.c | 1 +
drivers/infiniband/hw/hns/hns_roce_main.c | 5 +-
drivers/infiniband/hw/qedr/verbs.c | 2 +
drivers/infiniband/sw/rxe/rxe_opcode.c | 2 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 2 +-
drivers/interconnect/qcom/icc-rpm.c | 1 +
drivers/iommu/amd/amd_iommu_types.h | 2 -
drivers/iommu/amd/init.c | 107 +--
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 2 +-
drivers/iommu/io-pgtable-arm-v7s.c | 6 +-
drivers/iommu/io-pgtable-arm.c | 9 +-
drivers/iommu/iommu.c | 3 +-
drivers/iommu/iova.c | 3 +-
drivers/irqchip/irq-gic-v3.c | 16 +
drivers/leds/leds-lp55xx-common.c | 4 +-
drivers/mailbox/mailbox-mpfs.c | 2 +-
drivers/mailbox/mtk-cmdq-mailbox.c | 2 +-
drivers/md/dm.c | 4 +-
drivers/md/md.c | 27 +-
drivers/md/md.h | 2 +
drivers/md/persistent-data/dm-btree.c | 8 +-
drivers/md/persistent-data/dm-space-map-common.c | 5 +
drivers/md/raid0.c | 38 +-
drivers/md/raid5.c | 41 +-
drivers/media/Kconfig | 8 +-
drivers/media/cec/core/cec-adap.c | 38 +-
drivers/media/cec/core/cec-api.c | 6 +
drivers/media/cec/core/cec-core.c | 3 +
drivers/media/cec/core/cec-pin.c | 31 +-
drivers/media/common/saa7146/saa7146_fops.c | 2 +-
.../media/common/videobuf2/videobuf2-dma-contig.c | 8 +-
drivers/media/dvb-core/dmxdev.c | 18 +-
drivers/media/dvb-frontends/dib8000.c | 4 +-
drivers/media/i2c/imx274.c | 5 +
drivers/media/i2c/ov8865.c | 16 +-
drivers/media/pci/b2c2/flexcop-pci.c | 3 +
drivers/media/pci/saa7146/hexium_gemini.c | 7 +-
drivers/media/pci/saa7146/hexium_orion.c | 8 +-
drivers/media/pci/saa7146/mxb.c | 8 +-
drivers/media/platform/aspeed-video.c | 14 +-
drivers/media/platform/coda/coda-common.c | 8 +-
drivers/media/platform/coda/coda-jpeg.c | 21 +-
drivers/media/platform/coda/imx-vdoa.c | 6 +-
drivers/media/platform/imx-pxp.c | 4 +-
.../media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 2 +-
drivers/media/platform/qcom/venus/core.c | 11 +-
drivers/media/platform/qcom/venus/pm_helpers.c | 32 +-
drivers/media/platform/rcar-vin/rcar-csi2.c | 18 +-
drivers/media/platform/rcar-vin/rcar-v4l2.c | 15 +-
.../media/platform/rockchip/rkisp1/rkisp1-dev.c | 2 +-
drivers/media/radio/si470x/radio-si470x-i2c.c | 3 +-
drivers/media/rc/igorplugusb.c | 4 +-
drivers/media/rc/mceusb.c | 8 +-
drivers/media/rc/redrat3.c | 22 +-
drivers/media/tuners/msi001.c | 7 +
drivers/media/tuners/si2157.c | 2 +-
drivers/media/usb/b2c2/flexcop-usb.c | 10 +-
drivers/media/usb/b2c2/flexcop-usb.h | 12 +-
drivers/media/usb/cpia2/cpia2_usb.c | 4 +-
drivers/media/usb/dvb-usb/dib0700_core.c | 2 -
drivers/media/usb/dvb-usb/dw2102.c | 338 +++++---
drivers/media/usb/dvb-usb/m920x.c | 12 +-
drivers/media/usb/em28xx/em28xx-cards.c | 18 +-
drivers/media/usb/em28xx/em28xx-core.c | 4 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 8 +-
drivers/media/usb/s2255/s2255drv.c | 4 +-
drivers/media/usb/stk1160/stk1160-core.c | 4 +-
drivers/media/usb/uvc/uvcvideo.h | 2 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 4 +-
drivers/memory/renesas-rpc-if.c | 2 +-
drivers/mfd/atmel-flexcom.c | 11 +-
drivers/mfd/tps65910.c | 22 +-
drivers/misc/eeprom/at25.c | 13 +-
drivers/misc/habanalabs/common/firmware_if.c | 17 +-
drivers/misc/habanalabs/common/habanalabs.h | 2 +
drivers/misc/lattice-ecp3-config.c | 12 +-
drivers/misc/lkdtm/Makefile | 2 +-
drivers/misc/mei/hbm.c | 20 +-
drivers/mmc/core/sdio.c | 4 +-
drivers/mmc/host/meson-mx-sdhc-mmc.c | 5 +
drivers/mmc/host/meson-mx-sdio.c | 5 +
drivers/mmc/host/mtk-sd.c | 64 +-
drivers/mmc/host/sdhci-pci-gli.c | 11 +
drivers/mmc/host/tmio_mmc_core.c | 15 +-
drivers/mtd/hyperbus/rpc-if.c | 8 +-
drivers/mtd/mtdcore.c | 4 +-
drivers/mtd/mtdpart.c | 2 +-
drivers/mtd/nand/raw/davinci_nand.c | 73 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 37 +-
drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c | 5 +
drivers/mtd/nand/raw/nand_base.c | 67 ++
drivers/net/bonding/bond_main.c | 40 +-
drivers/net/can/flexcan.c | 150 ++--
drivers/net/can/rcar/rcar_canfd.c | 5 +-
drivers/net/can/softing/softing_cs.c | 2 +-
drivers/net/can/softing/softing_fw.c | 11 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 6 +-
drivers/net/can/xilinx_can.c | 7 +-
drivers/net/dsa/hirschmann/hellcreek.c | 87 +-
drivers/net/ethernet/broadcom/bnxt/Makefile | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 +
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c | 372 ++++++++
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h | 51 ++
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 355 +-------
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h | 43 -
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h | 3 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 10 +-
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c | 3 +-
drivers/net/ethernet/cortina/gemini.c | 9 +-
drivers/net/ethernet/freescale/fman/mac.c | 21 +-
drivers/net/ethernet/freescale/xgmac_mdio.c | 28 +-
drivers/net/ethernet/i825xx/sni_82596.c | 3 +-
drivers/net/ethernet/intel/igc/igc_main.c | 4 +-
drivers/net/ethernet/marvell/octeontx2/af/ptp.c | 2 +
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 55 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 16 +-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 36 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 5 +-
.../ethernet/mellanox/mlx5/core/en/tc_tun_encap.c | 2 +
.../net/ethernet/mellanox/mlx5/core/en/xsk/pool.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 19 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 3 +
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 120 ++-
.../net/ethernet/mellanox/mlx5/core/esw/legacy.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 8 +-
.../net/ethernet/mellanox/mlx5/core/sf/dev/dev.c | 5 +-
drivers/net/ethernet/mellanox/mlxsw/cmd.h | 12 +
drivers/net/ethernet/mellanox/mlxsw/pci.c | 7 +-
drivers/net/ethernet/mscc/ocelot.c | 31 +-
drivers/net/ethernet/mscc/ocelot_flower.c | 15 +-
drivers/net/ethernet/mscc/ocelot_net.c | 6 +-
drivers/net/ethernet/renesas/ravb_main.c | 6 +-
drivers/net/ethernet/rocker/rocker_ofdpa.c | 3 +-
.../ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 7 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 +
drivers/net/ethernet/ti/cpsw.c | 6 +-
drivers/net/ethernet/ti/cpsw_new.c | 6 +-
drivers/net/ethernet/ti/cpsw_priv.c | 2 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 135 +--
drivers/net/ipa/ipa_endpoint.c | 7 +-
drivers/net/phy/marvell.c | 62 +-
drivers/net/phy/mdio_bus.c | 2 +-
drivers/net/phy/micrel.c | 36 +-
drivers/net/phy/phy-core.c | 2 +-
drivers/net/phy/sfp.c | 25 +-
drivers/net/ppp/ppp_generic.c | 7 +-
drivers/net/usb/mcs7830.c | 12 +-
drivers/net/usb/smsc95xx.c | 3 +-
drivers/net/wireless/ath/ar5523/ar5523.c | 4 +
drivers/net/wireless/ath/ath10k/core.c | 19 +-
drivers/net/wireless/ath/ath10k/htt_tx.c | 3 +
drivers/net/wireless/ath/ath10k/hw.h | 3 +
drivers/net/wireless/ath/ath10k/txrx.c | 2 -
drivers/net/wireless/ath/ath11k/ahb.c | 28 +-
drivers/net/wireless/ath/ath11k/core.c | 27 +-
drivers/net/wireless/ath/ath11k/core.h | 15 +-
drivers/net/wireless/ath/ath11k/dp.h | 3 +-
drivers/net/wireless/ath/ath11k/dp_tx.c | 2 +-
drivers/net/wireless/ath/ath11k/hal.c | 22 +
drivers/net/wireless/ath/ath11k/hal.h | 2 +
drivers/net/wireless/ath/ath11k/hw.c | 2 -
drivers/net/wireless/ath/ath11k/mac.c | 52 +-
drivers/net/wireless/ath/ath11k/pci.c | 22 +-
drivers/net/wireless/ath/ath11k/qmi.c | 2 +-
drivers/net/wireless/ath/ath11k/reg.c | 103 +--
drivers/net/wireless/ath/ath11k/wmi.c | 5 +-
drivers/net/wireless/ath/ath9k/hif_usb.c | 7 +
drivers/net/wireless/ath/ath9k/htc.h | 2 +
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 13 +
drivers/net/wireless/ath/ath9k/wmi.c | 4 +
drivers/net/wireless/ath/wcn36xx/dxe.c | 49 +-
drivers/net/wireless/ath/wcn36xx/main.c | 34 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 10 +-
drivers/net/wireless/ath/wcn36xx/txrx.c | 41 +-
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 +
drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 5 +-
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 17 +-
drivers/net/wireless/intel/iwlwifi/iwl-io.c | 2 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 17 +
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 27 +
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 23 +-
.../net/wireless/intel/iwlwifi/mvm/time-event.c | 36 +-
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 7 +-
drivers/net/wireless/intel/iwlwifi/queue/tx.c | 1 +
drivers/net/wireless/marvell/mwifiex/sta_event.c | 8 +-
drivers/net/wireless/marvell/mwifiex/usb.c | 3 +-
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 4 +
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 8 +-
.../net/wireless/mediatek/mt76/mt7615/pci_init.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 6 -
drivers/net/wireless/microchip/wilc1000/netdev.c | 1 -
drivers/net/wireless/microchip/wilc1000/sdio.c | 2 +
drivers/net/wireless/microchip/wilc1000/spi.c | 2 +
drivers/net/wireless/realtek/rtw88/main.c | 2 +-
drivers/net/wireless/realtek/rtw88/pci.c | 61 +-
drivers/net/wireless/realtek/rtw88/pci.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
drivers/net/wireless/rsi/rsi_91x_main.c | 4 +
drivers/net/wireless/rsi/rsi_91x_usb.c | 9 +-
drivers/net/wireless/rsi/rsi_usb.h | 2 +
drivers/net/wwan/mhi_wwan_mbim.c | 4 +-
drivers/nvmem/core.c | 2 +
drivers/of/base.c | 11 +-
drivers/of/fdt.c | 25 +-
drivers/of/unittest.c | 21 +-
drivers/parisc/pdc_stable.c | 4 +-
drivers/pci/controller/pci-aardvark.c | 4 +-
drivers/pci/controller/pci-mvebu.c | 8 +
drivers/pci/controller/pci-xgene.c | 2 +-
drivers/pci/hotplug/pciehp.h | 3 +
drivers/pci/hotplug/pciehp_core.c | 2 +-
drivers/pci/hotplug/pciehp_hpc.c | 21 +-
drivers/pci/msi.c | 26 +-
drivers/pci/pci-bridge-emul.c | 70 +-
drivers/pci/quirks.c | 3 +
drivers/pcmcia/cs.c | 8 +-
drivers/pcmcia/rsrc_nonstatic.c | 6 +
drivers/perf/arm-cmn.c | 5 +-
drivers/phy/cadence/phy-cadence-sierra.c | 31 +-
drivers/phy/mediatek/phy-mtk-mipi-dsi.c | 2 +
drivers/phy/mediatek/phy-mtk-tphy.c | 162 ++++
drivers/phy/socionext/phy-uniphier-usb3ss.c | 10 +-
drivers/pinctrl/pinctrl-rockchip.c | 2 +-
drivers/power/reset/mt6323-poweroff.c | 3 +
drivers/ptp/ptp_vclock.c | 10 +-
drivers/regulator/da9121-regulator.c | 5 +
drivers/regulator/qcom-labibb-regulator.c | 2 +-
drivers/regulator/qcom_smd-regulator.c | 100 ++-
drivers/remoteproc/imx_rproc.c | 1 +
drivers/rpmsg/rpmsg_core.c | 20 +-
drivers/rtc/rtc-cmos.c | 3 +
drivers/rtc/rtc-pxa.c | 4 +
drivers/scsi/lpfc/lpfc.h | 2 +-
drivers/scsi/lpfc/lpfc_attr.c | 62 +-
drivers/scsi/lpfc/lpfc_els.c | 11 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 8 +-
drivers/scsi/lpfc/lpfc_init.c | 8 +-
drivers/scsi/lpfc/lpfc_nportdisc.c | 6 +
drivers/scsi/lpfc/lpfc_sli.c | 6 -
drivers/scsi/mpi3mr/mpi3mr.h | 3 +-
drivers/scsi/mpi3mr/mpi3mr_fw.c | 4 +-
drivers/scsi/pm8001/pm8001_hwi.c | 4 +-
drivers/scsi/scsi.c | 4 +-
drivers/scsi/scsi_debugfs.c | 1 +
drivers/scsi/scsi_pm.c | 2 +-
drivers/scsi/sr.c | 2 +-
drivers/scsi/sr_vendor.c | 4 +-
drivers/scsi/ufs/tc-dwc-g210-pci.c | 1 -
drivers/scsi/ufs/ufs-mediatek.c | 2 +-
drivers/scsi/ufs/ufshcd-pci.c | 2 -
drivers/scsi/ufs/ufshcd-pltfrm.c | 2 -
drivers/scsi/ufs/ufshcd.c | 22 +-
drivers/soc/imx/gpcv2.c | 2 +-
drivers/soc/mediatek/mtk-scpsys.c | 15 +-
drivers/soc/qcom/cpr.c | 2 +-
drivers/soc/ti/pruss.c | 2 +-
drivers/spi/spi-hisi-kunpeng.c | 15 +-
drivers/spi/spi-meson-spifc.c | 1 +
drivers/spi/spi-uniphier.c | 11 +-
drivers/spi/spi.c | 13 +-
drivers/staging/greybus/audio_topology.c | 15 +
drivers/staging/media/atomisp/i2c/ov2680.h | 24 -
drivers/staging/media/atomisp/pci/atomisp_cmd.c | 82 +-
drivers/staging/media/atomisp/pci/atomisp_fops.c | 11 +
.../media/atomisp/pci/atomisp_gmin_platform.c | 2 +-
drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 188 ++++-
drivers/staging/media/atomisp/pci/atomisp_subdev.c | 15 +-
drivers/staging/media/atomisp/pci/atomisp_subdev.h | 3 +
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 13 +-
drivers/staging/media/atomisp/pci/atomisp_v4l2.h | 3 +-
drivers/staging/media/atomisp/pci/sh_css.c | 27 +-
drivers/staging/media/atomisp/pci/sh_css_mipi.c | 41 +-
drivers/staging/media/atomisp/pci/sh_css_params.c | 8 +-
drivers/staging/media/hantro/hantro_drv.c | 3 +-
drivers/staging/media/hantro/hantro_h1_jpeg_enc.c | 2 +-
drivers/staging/media/hantro/hantro_hw.h | 3 +-
.../media/hantro/rockchip_vpu2_hw_jpeg_enc.c | 17 +
drivers/staging/media/hantro/rockchip_vpu_hw.c | 5 +-
drivers/staging/rtl8192e/rtllib.h | 2 +-
drivers/staging/rtl8192e/rtllib_module.c | 16 +-
drivers/staging/rtl8192e/rtllib_softmac.c | 6 +-
drivers/tee/tee_core.c | 4 +-
drivers/thermal/imx8mm_thermal.c | 3 +
drivers/thermal/imx_thermal.c | 145 ++--
drivers/thunderbolt/acpi.c | 13 +
drivers/tty/mxser.c | 5 +-
drivers/tty/serial/8250/8250_bcm7271.c | 11 +-
drivers/tty/serial/amba-pl010.c | 3 -
drivers/tty/serial/amba-pl011.c | 29 +-
drivers/tty/serial/atmel_serial.c | 14 +
drivers/tty/serial/imx.c | 7 +-
drivers/tty/serial/liteuart.c | 2 +-
drivers/tty/serial/serial_core.c | 7 +-
drivers/tty/serial/stm32-usart.c | 6 +-
drivers/tty/serial/uartlite.c | 2 +-
drivers/usb/core/hub.c | 5 +-
drivers/usb/dwc2/gadget.c | 13 +-
drivers/usb/dwc2/hcd.c | 7 +-
drivers/usb/dwc3/dwc3-meson-g12a.c | 17 +-
drivers/usb/dwc3/dwc3-qcom.c | 7 +-
drivers/usb/gadget/function/f_fs.c | 4 +-
drivers/usb/gadget/function/u_audio.c | 4 +-
drivers/usb/host/ehci-brcm.c | 6 +-
drivers/usb/host/uhci-platform.c | 3 +-
drivers/usb/misc/ftdi-elan.c | 1 +
drivers/vdpa/ifcvf/ifcvf_base.c | 41 +-
drivers/vdpa/ifcvf/ifcvf_base.h | 9 +-
drivers/vdpa/ifcvf/ifcvf_main.c | 24 +-
drivers/vdpa/mlx5/net/mlx5_vnet.c | 6 +-
drivers/video/backlight/qcom-wled.c | 122 +--
drivers/virtio/virtio_mem.c | 2 +-
drivers/virtio/virtio_ring.c | 4 +-
drivers/w1/slaves/w1_ds28e04.c | 26 +-
drivers/xen/gntdev.c | 6 +-
fs/btrfs/backref.c | 21 +-
fs/btrfs/ctree.c | 19 +-
fs/btrfs/inode.c | 11 +
fs/btrfs/qgroup.c | 19 +
fs/debugfs/file.c | 2 +-
fs/dlm/lock.c | 9 +
fs/dlm/lowcomms.c | 44 +-
fs/ext4/ext4.h | 1 +
fs/ext4/ext4_jbd2.c | 2 +
fs/ext4/extents.c | 2 -
fs/ext4/fast_commit.c | 18 +-
fs/ext4/inode.c | 51 +-
fs/ext4/ioctl.c | 2 -
fs/ext4/mballoc.c | 48 +-
fs/ext4/migrate.c | 23 +-
fs/ext4/super.c | 27 +-
fs/f2fs/checkpoint.c | 4 +-
fs/f2fs/compress.c | 50 +-
fs/f2fs/data.c | 7 +-
fs/f2fs/f2fs.h | 11 +
fs/f2fs/file.c | 10 +-
fs/f2fs/gc.c | 8 +-
fs/f2fs/inode.c | 5 +
fs/f2fs/segment.h | 3 +-
fs/f2fs/super.c | 44 +
fs/f2fs/sysfs.c | 4 +-
fs/fuse/file.c | 2 +-
fs/io_uring.c | 1 +
fs/jffs2/file.c | 40 +-
fs/ksmbd/connection.c | 1 +
fs/ksmbd/connection.h | 4 +-
fs/ksmbd/ksmbd_netlink.h | 12 +-
fs/ksmbd/smb2misc.c | 18 +-
fs/ksmbd/smb2ops.c | 16 +-
fs/ksmbd/smb2pdu.c | 87 +-
fs/ksmbd/smb2pdu.h | 1 +
fs/ksmbd/smb_common.h | 1 +
fs/ksmbd/transport_ipc.c | 2 +
fs/ksmbd/transport_tcp.c | 3 +-
fs/ubifs/super.c | 1 -
fs/udf/ialloc.c | 2 +
include/acpi/acpi_bus.h | 5 +-
include/acpi/actypes.h | 10 +-
include/asm-generic/bitops/find.h | 5 +
include/linux/blk-pm.h | 2 +-
include/linux/bpf_verifier.h | 7 +
include/linux/hid.h | 2 +
include/linux/iio/trigger.h | 2 +
include/linux/ipv6.h | 2 +
include/linux/mmzone.h | 9 +
include/linux/mtd/rawnand.h | 2 +
include/linux/of_fdt.h | 2 +
include/linux/pm_runtime.h | 3 +
include/linux/psi_types.h | 13 +-
include/linux/ptp_clock_kernel.h | 12 +-
include/linux/skbuff.h | 7 +-
include/linux/stmmac.h | 1 +
include/media/cec.h | 11 +-
include/net/inet_frag.h | 11 +-
include/net/ipv6_frag.h | 3 +-
include/net/pkt_sched.h | 5 +-
include/net/sch_generic.h | 5 +
include/net/seg6.h | 21 +
include/net/xfrm.h | 7 +-
include/sound/hda_codec.h | 8 +-
include/trace/events/cgroup.h | 12 +-
include/uapi/linux/xfrm.h | 1 +
kernel/audit.c | 18 +-
kernel/bpf/btf.c | 3 +-
kernel/bpf/inode.c | 14 +-
kernel/bpf/verifier.c | 28 +-
kernel/dma/pool.c | 4 +-
kernel/rcu/rcutorture.c | 5 +
kernel/rcu/tree_exp.h | 1 +
kernel/sched/cpuacct.c | 79 +-
kernel/sched/cputime.c | 4 +-
kernel/sched/fair.c | 4 +-
kernel/sched/psi.c | 45 +-
kernel/sched/rt.c | 23 +-
kernel/sched/stats.h | 5 +-
kernel/time/clocksource.c | 50 +-
kernel/trace/bpf_trace.c | 6 +-
kernel/trace/trace_kprobe.c | 5 +-
kernel/trace/trace_osnoise.c | 20 +-
kernel/trace/trace_syscalls.c | 6 +-
kernel/tsacct.c | 7 +-
lib/kunit/test.c | 18 +-
lib/logic_iomem.c | 19 +-
lib/mpi/mpi-mod.c | 2 +
lib/test_hmm.c | 24 +
lib/test_meminit.c | 1 +
mm/hmm.c | 5 +-
mm/page_alloc.c | 19 +-
mm/shmem.c | 37 +-
net/ax25/af_ax25.c | 10 +-
net/batman-adv/netlink.c | 30 +-
net/bluetooth/cmtp/core.c | 4 +-
net/bluetooth/hci_core.c | 1 +
net/bluetooth/hci_event.c | 14 +-
net/bluetooth/hci_request.c | 2 +-
net/bluetooth/hci_sysfs.c | 2 +
net/bluetooth/l2cap_sock.c | 45 +-
net/bluetooth/mgmt.c | 248 +++---
net/bridge/br_netfilter_hooks.c | 7 +-
net/core/dev.c | 6 +
net/core/devlink.c | 2 -
net/core/filter.c | 8 +-
net/core/flow_dissector.c | 3 +-
net/core/net-sysfs.c | 3 +
net/core/net_namespace.c | 4 +-
net/core/sock.c | 2 +
net/core/sock_map.c | 21 +-
net/dsa/switch.c | 4 +-
net/ipv4/fib_semantics.c | 47 +-
net/ipv4/inet_fragment.c | 8 +-
net/ipv4/ip_fragment.c | 3 +-
net/ipv4/ip_gre.c | 5 +-
net/ipv4/netfilter/ipt_CLUSTERIP.c | 5 +-
net/ipv4/tcp_bpf.c | 27 +
net/ipv6/icmp.c | 6 +-
net/ipv6/ip6_gre.c | 5 +-
net/ipv6/seg6.c | 59 ++
net/ipv6/seg6_local.c | 33 +-
net/ipv6/udp.c | 3 +-
net/mac80211/rx.c | 2 +-
net/mptcp/options.c | 10 +-
net/mptcp/pm_netlink.c | 18 +-
net/netfilter/nft_payload.c | 3 +
net/netfilter/nft_set_pipapo.c | 8 +
net/netrom/af_netrom.c | 12 +-
net/nfc/llcp_sock.c | 5 +
net/openvswitch/flow.c | 20 +-
net/sched/act_ct.c | 7 +
net/sched/cls_api.c | 3 +
net/sched/cls_flower.c | 3 +-
net/sched/sch_api.c | 2 +-
net/sched/sch_generic.c | 1 +
net/smc/af_smc.c | 8 +-
net/smc/smc_core.c | 29 +-
net/smc/smc_core.h | 2 +-
net/socket.c | 9 +-
net/unix/garbage.c | 14 +-
net/unix/scm.c | 6 +-
net/xfrm/xfrm_compat.c | 6 +-
net/xfrm/xfrm_interface.c | 14 +-
net/xfrm/xfrm_output.c | 30 +-
net/xfrm/xfrm_policy.c | 24 +-
net/xfrm/xfrm_state.c | 23 +-
net/xfrm/xfrm_user.c | 41 +-
samples/bpf/Makefile | 56 +-
samples/bpf/Makefile.target | 11 -
samples/bpf/hbm_kern.h | 2 -
samples/bpf/lwt_len_hist_kern.c | 7 -
samples/bpf/xdp_sample_user.h | 2 +
scripts/dtc/dtx_diff | 8 +-
scripts/sphinx-pre-install | 4 +
security/selinux/hooks.c | 12 +-
sound/core/jack.c | 3 +
sound/core/misc.c | 2 +-
sound/core/oss/pcm_oss.c | 2 +-
sound/core/pcm.c | 6 +-
sound/core/seq/seq_queue.c | 14 +-
sound/hda/hdac_stream.c | 14 +-
sound/pci/hda/hda_bind.c | 5 +
sound/pci/hda/hda_codec.c | 45 +-
sound/pci/hda/hda_controller.c | 1 -
sound/pci/hda/hda_local.h | 1 +
sound/pci/hda/patch_cs8409-tables.c | 3 +
sound/pci/hda/patch_cs8409.c | 9 +-
sound/pci/hda/patch_cs8409.h | 1 +
sound/soc/codecs/Kconfig | 3 +-
sound/soc/codecs/rt5663.c | 12 +-
sound/soc/fsl/fsl_asrc.c | 69 +-
sound/soc/fsl/fsl_mqs.c | 2 +-
sound/soc/fsl/imx-card.c | 32 +-
sound/soc/fsl/imx-hdmi.c | 2 +
sound/soc/intel/boards/sof_sdw.c | 2 +-
sound/soc/intel/catpt/dsp.c | 14 +-
sound/soc/intel/skylake/skl-pcm.c | 1 -
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 +
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 +
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 +
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 6 +-
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 7 +-
.../mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 6 +-
sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 2 +-
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 73 +-
sound/soc/mediatek/mt8195/mt8195-reg.h | 1 +
sound/soc/samsung/idma.c | 2 +
sound/soc/uniphier/Kconfig | 2 -
sound/usb/format.c | 2 +-
sound/usb/mixer_quirks.c | 2 +-
sound/usb/quirks.c | 2 +-
tools/bpf/bpftool/Documentation/Makefile | 1 -
tools/bpf/bpftool/Documentation/bpftool-btf.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-gen.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-link.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-map.rst | 6 +-
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 8 +-
tools/bpf/bpftool/Documentation/bpftool.rst | 6 +-
tools/bpf/bpftool/Makefile | 1 -
tools/bpf/bpftool/main.c | 2 +
tools/bpf/bpftool/prog.c | 15 +-
tools/include/nolibc/nolibc.h | 33 +-
tools/lib/bpf/btf.c | 55 +-
tools/lib/bpf/btf.h | 2 +-
tools/lib/bpf/btf_dump.c | 2 +-
tools/lib/bpf/gen_loader.c | 4 +-
tools/lib/bpf/libbpf.c | 5 +-
tools/lib/bpf/linker.c | 6 +-
tools/perf/Makefile.config | 5 +-
tools/perf/util/debug.c | 2 +-
tools/perf/util/evsel.c | 25 +-
tools/perf/util/probe-event.c | 3 +
tools/testing/selftests/bpf/btf_helpers.c | 9 +-
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 5 +-
.../selftests/bpf/prog_tests/migrate_reuseport.c | 4 +-
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 2 +
.../testing/selftests/bpf/prog_tests/tc_redirect.c | 7 +
tools/testing/selftests/clone3/clone3.c | 6 +
.../selftests/ftrace/test.d/kprobe/profile.tc | 2 +-
tools/testing/selftests/kselftest_harness.h | 2 +-
.../selftests/powerpc/security/spectre_v2.c | 2 +-
tools/testing/selftests/powerpc/signal/.gitignore | 1 +
tools/testing/selftests/powerpc/signal/Makefile | 1 +
.../selftests/powerpc/signal/sigreturn_kernel.c | 132 +++
tools/testing/selftests/vm/hmm-tests.c | 42 +
890 files changed, 9003 insertions(+), 5090 deletions(-)
^ permalink raw reply [relevance 1%]
* [PATCH 5.10 000/560] 5.10.94-rc2 review
@ 2022-01-25 16:32 1% Greg Kroah-Hartman
[not found] ` <CAJq+SaC78nnBi5p6LYMWSs=-FSGMX5uom4MnE9i4C7F0FWuTcQ@mail.gmail.com>
0 siblings, 1 reply; 200+ results
From: Greg Kroah-Hartman @ 2022-01-25 16:32 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, torvalds, akpm, linux, shuah, patches,
lkft-triage, pavel, jonathanh, f.fainelli, sudipm.mukherjee,
stable
This is the start of the stable review cycle for the 5.10.94 release.
There are 560 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Thu, 27 Jan 2022 15:52:30 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.10.94-rc2.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Linux 5.10.94-rc2
Mauro Carvalho Chehab <mchehab@kernel.org>
scripts: sphinx-pre-install: Fix ctex support on Debian
Mauro Carvalho Chehab <mchehab@kernel.org>
scripts: sphinx-pre-install: add required ctex dependency
Fabio Estevam <festevam@denx.de>
ath10k: Fix the MTU size on QCA9377 SDIO
Doyle, Patrick <pdoyle@irobot.com>
mtd: nand: bbt: Fix corner case in bad block table handling
Andrey Konovalov <andreyknvl@google.com>
lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
Alistair Popple <apopple@nvidia.com>
mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
Miaoqian Lin <linmq006@gmail.com>
lib82596: Fix IRQ check in sni_82596_probe
Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
scripts/dtc: dtx_diff: remove broken example from help text
Sam Protsenko <semen.protsenko@linaro.org>
dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
Alexander Stein <alexander.stein@mailbox.org>
dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
Alexander Stein <alexander.stein@mailbox.org>
dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
Tom Rix <trix@redhat.com>
net: mscc: ocelot: fix using match before it is set
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: sfp: fix high power modules without diagnostic monitoring
Tom Rix <trix@redhat.com>
net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
Sergey Shtylyov <s.shtylyov@omp.ru>
bcmgenet: add WOL IRQ check
Kevin Bracey <kevin@bracey.fi>
net_sched: restore "mpu xxx" handling
Jie Wang <wangjie125@huawei.com>
net: bonding: fix bond_xmit_broadcast return value error bug
David Heidelberg <david@ixit.cz>
arm64: dts: qcom: msm8996: drop not documented adreno properties
Leon Romanovsky <leon@kernel.org>
devlink: Remove misleading internal_flags from health reporter dump
Zechuan Chen <chenzechuan1@huawei.com>
perf probe: Fix ppc64 'perf probe add events failed' case
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix lld view setting
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix concurrency over xfers_list
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Print debug message after realeasing the lock
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Don't start transactions at tx_submit level
Adrian Hunter <adrian.hunter@intel.com>
perf script: Fix hex dump character output
Guillaume Nault <gnault@redhat.com>
libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
Guillaume Nault <gnault@redhat.com>
gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
Guillaume Nault <gnault@redhat.com>
xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
Eric Dumazet <edumazet@google.com>
netns: add schedule point in ops_exit_list()
Eric Dumazet <edumazet@google.com>
inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
Eric W. Biederman <ebiederm@xmission.com>
taskstats: Cleanup the use of task->exit_code
Michael S. Tsirkin <mst@redhat.com>
virtio_ring: mark ring unused on error
Eli Cohen <elic@nvidia.com>
vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
Laurence de Bruxelles <lfdebrux@gmail.com>
rtc: pxa: fix null pointer dereference
Dmitry Torokhov <dmitry.torokhov@gmail.com>
HID: vivaldi: fix handling devices not using numbered reports
Robert Hancock <robert.hancock@calian.com>
net: axienet: increase default TX ring size to 128
Robert Hancock <robert.hancock@calian.com>
net: axienet: fix for TX busy handling
Robert Hancock <robert.hancock@calian.com>
net: axienet: fix number of TX ring slots for available check
Robert Hancock <robert.hancock@calian.com>
net: axienet: Fix TX ring slot available check
Robert Hancock <robert.hancock@calian.com>
net: axienet: limit minimum TX ring size
Robert Hancock <robert.hancock@calian.com>
net: axienet: add missing memory barriers
Robert Hancock <robert.hancock@calian.com>
net: axienet: reset core on initialization prior to MDIO access
Robert Hancock <robert.hancock@calian.com>
net: axienet: Wait for PhyRstCmplt after core reset
Robert Hancock <robert.hancock@calian.com>
net: axienet: increase reset timeout
Wen Gu <guwen@linux.alibaba.com>
net/smc: Fix hung_task when removing SMC-R devices
Robert Hancock <robert.hancock@calian.com>
clk: si5341: Fix clock HW provider cleanup
Stephen Boyd <sboyd@kernel.org>
clk: Emit a stern warning with writable debugfs enabled
Eric Dumazet <edumazet@google.com>
af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
Chao Yu <chao@kernel.org>
f2fs: fix to reserve space for IO align feature
Hyeong-Jun Kim <hj514.kim@samsung.com>
f2fs: compress: fix potential deadlock of compress file
Miaoqian Lin <linmq006@gmail.com>
parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
Tobias Waldekranz <tobias@waldekranz.com>
net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
Tobias Waldekranz <tobias@waldekranz.com>
net/fsl: xgmac_mdio: Add workaround for erratum A-009885
Eric Dumazet <edumazet@google.com>
ipv4: avoid quadratic behavior in netns dismantle
Eric Dumazet <edumazet@google.com>
ipv4: update fib_info_cnt under spinlock protection
German Gomez <german.gomez@arm.com>
perf evsel: Override attr->sample_period for non-libpfm4 events
Toke Høiland-Jørgensen <toke@redhat.com>
xdp: check prog type before updating BPF link
Quentin Monnet <quentin@isovalent.com>
bpftool: Remove inclusion of utilities.mak from Makefiles
Ye Bin <yebin10@huawei.com>
block: Fix fsync always failed if once failed
Tobias Waldekranz <tobias@waldekranz.com>
powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
Anders Roxell <anders.roxell@linaro.org>
powerpc/cell: Fix clang -Wimplicit-fallthrough warning
Moshe Shemesh <moshe@nvidia.com>
Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
Amelie Delaunay <amelie.delaunay@foss.st.com>
dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
Chengguang Xu <cgxu519@mykernel.net>
RDMA/rxe: Fix a typo in opcode name
Yixing Liu <liuyixing1@huawei.com>
RDMA/hns: Modify the mapping attribute of doorbell to device
Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
dmaengine: uniphier-xdmac: Fix type of address variables
Bart Van Assche <bvanassche@acm.org>
scsi: core: Show SCMD_LAST in text form
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: hci_sync: Fix not setting adv set duration
Randy Dunlap <rdunlap@infradead.org>
Documentation: fix firewire.rst ABI file path error
Lukas Bulwahn <lukas.bulwahn@gmail.com>
Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization
Sakari Ailus <sakari.ailus@linux.intel.com>
Documentation: ACPI: Fix data node reference documentation
Daniel Thompson <daniel.thompson@linaro.org>
Documentation: dmaengine: Correctly describe dmatest with channel unset
Randy Dunlap <rdunlap@infradead.org>
media: correct MEDIA_TEST_SUPPORT help text
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Make sure the device is powered with CEC
Suresh Udipi <sudipi@jp.adit-jv.com>
media: rcar-csi2: Optimize the selection PHTW register
Marc Kleine-Budde <mkl@pengutronix.de>
can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
Ben Hutchings <ben@decadent.org.uk>
firmware: Update Kconfig help text for Google firmware
Baruch Siach <baruch@tkos.co.il>
of: base: Improve argument length mismatch error
Christian König <christian.koenig@amd.com>
drm/radeon: fix error handling in radeon_driver_open_kms
Theodore Ts'o <tytso@mit.edu>
ext4: don't use the orphan list when migrating an inode
Ye Bin <yebin10@huawei.com>
ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
Sebastian Andrzej Siewior <bigeasy@linutronix.de>
ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
Xin Yin <yinxin.x@bytedance.com>
ext4: fast commit may miss tracking unwritten range during ftruncate
Xin Yin <yinxin.x@bytedance.com>
ext4: use ext4_ext_remove_space() for fast commit replay delete range
Ye Bin <yebin10@huawei.com>
ext4: Fix BUG_ON in ext4_bread when write quota data
Luís Henriques <lhenriques@suse.de>
ext4: set csum seed in tmp inode while migrating to extents
Xin Yin <yinxin.x@bytedance.com>
ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
Harshad Shirwadkar <harshadshirwadkar@gmail.com>
ext4: initialize err_blk before calling __ext4_get_inode_loc
Chunguang Xu <brookxu@tencent.com>
ext4: fix a possible ABBA deadlock due to busy PA
Jan Kara <jack@suse.cz>
ext4: make sure quota gets properly shutdown on error
Jan Kara <jack@suse.cz>
ext4: make sure to reset inode lockdep class when quota enabling fails
Filipe Manana <fdmanana@suse.com>
btrfs: respect the max size in the header when activating swap file
Josef Bacik <josef@toxicpanda.com>
btrfs: check the root node for uptodate before returning it
Filipe Manana <fdmanana@suse.com>
btrfs: fix deadlock between quota enable and other quota operations
Ghalem Boudour <ghalem.boudour@6wind.com>
xfrm: fix policy lookup for ipv6 gre packets
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Correctly set PCIe capabilities
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Fix definitions of reserved bits
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
Hans de Goede <hdegoede@redhat.com>
PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
Rob Herring <robh@kernel.org>
PCI: xgene: Fix IB window setup
Nicholas Piggin <npiggin@gmail.com>
powerpc/64s/radix: Fix huge vmap false positive
John David Anglin <dave.anglin@bell.net>
parisc: Fix lpa and lpa_user defines
Brian Norris <briannorris@chromium.org>
drm/bridge: analogix_dp: Make PSR-exit block less
Ilia Mirkin <imirkin@alum.mit.edu>
drm/nouveau/kms/nv04: use vzalloc for nv04_display
Lucas Stach <l.stach@pengutronix.de>
drm/etnaviv: limit submit sizes
Sakari Ailus <sakari.ailus@linux.intel.com>
device property: Fix fwnode_graph_devcon_match() fwnode leak
Alexander Gordeev <agordeev@linux.ibm.com>
s390/mm: fix 2KB pgtable release race
Ilan Peer <ilan.peer@intel.com>
iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
Xiangyang Zhang <xyz.sun.ok@gmail.com>
tracing/kprobes: 'nmissed' not showed correctly for kretprobe
Andrey Ryabinin <arbn@yandex-team.com>
cputime, cpuacct: Include guest time in user time in cpuacct.stat
Lukas Wunner <lukas@wunner.de>
serial: Fix incorrect rs485 polarity on uart open
Xie Yongji <xieyongji@bytedance.com>
fuse: Pass correct lend value to filemap_write_and_wait_range()
Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
xen/gntdev: fix unmap notification order
Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
spi: uniphier: Fix a bug that doesn't point to private data correctly
Patrick Williams <patrick@stwcx.xyz>
tpm: fix NPE on probe for missing device
Petr Cvachoucek <cvachoucek@gmail.com>
ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
Meng Li <Meng.Li@windriver.com>
crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
Marek Vasut <marex@denx.de>
crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
Heiner Kallweit <hkallweit1@gmail.com>
crypto: omap-aes - Fix broken pm_runtime_and_get() usage
Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
rpmsg: core: Clean up resources on announce_create failure.
Miaoqian Lin <linmq006@gmail.com>
phy: mediatek: Fix missing check in mtk_mipi_tx_probe
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8183: fix device_node leak
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8173: fix device_node leak
Christoph Hellwig <hch@lst.de>
scsi: sr: Don't use GFP_DMA
Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
MIPS: Octeon: Fix build errors using clang
Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
Marc Zyngier <maz@kernel.org>
irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
Ye Guojin <ye.guojin@zte.com.cn>
MIPS: OCTEON: add put_device() after of_find_device_by_node()
Jan Kara <jack@suse.cz>
udf: Fix error handling in udf_new_inode()
Hari Bathini <hbathini@linux.ibm.com>
powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
Hari Bathini <hbathini@linux.ibm.com>
powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/40x: Map 32Mbytes of memory at startup
Nathan Chancellor <nathan@kernel.org>
MIPS: Loongson64: Use three arguments for slti
Takashi Iwai <tiwai@suse.de>
ALSA: seq: Set upper limit of processed events
James Smart <jsmart2021@gmail.com>
scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
Christoph Hellwig <hch@lst.de>
dm: fix alloc_dax error handling in alloc_dev
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
nvmem: core: set size for sysfs bin file
Christophe Leroy <christophe.leroy@csgroup.eu>
w1: Misuse of get_user()/put_user() reported by sparse
Alexey Kardashevskiy <aik@ozlabs.ru>
KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
Alexey Kardashevskiy <aik@ozlabs.ru>
KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/powermac: Add missing lockdep_register_key()
Martin Blumenstingl <martin.blumenstingl@googlemail.com>
clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
Joakim Tjernlund <joakim.tjernlund@infinera.com>
i2c: mpc: Correct I2C reset procedure
Michael Ellerman <mpe@ellerman.id.au>
powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
Heiner Kallweit <hkallweit1@gmail.com>
i2c: i801: Don't silently correct invalid transfer size
Nicholas Piggin <npiggin@gmail.com>
powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/btext: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/cell: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/powernv: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/6xx: add missing of_node_put
Ingo Molnar <mingo@kernel.org>
x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
John David Anglin <dave.anglin@bell.net>
parisc: Avoid calling faulthandler_disabled() twice
Jason A. Donenfeld <Jason@zx2c4.com>
random: do not throw away excess input to crng_fast_load
Lukas Wunner <lukas@wunner.de>
serial: core: Keep mctrl register state and cached copy in sync
Lukas Wunner <lukas@wunner.de>
serial: pl010: Drop CR register reset on set_termios
Konrad Dybcio <konrad.dybcio@somainline.org>
regulator: qcom_smd: Align probe function with rpmh-regulator
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: gemini: allow any RGMII interface mode
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: phy: marvell: configure RGMII delays for 88E1118
Danielle Ratson <danieller@nvidia.com>
mlxsw: pci: Avoid flow control for EMAD packets
Joe Thornber <ejt@redhat.com>
dm space map common: add bounds check to sm_ll_lookup_bitmap()
Joe Thornber <ejt@redhat.com>
dm btree: add a defensive bounds check to insert_at()
Ping-Ke Shih <pkshih@realtek.com>
mac80211: allow non-standard VHT MCS-10/11
Florian Fainelli <f.fainelli@gmail.com>
net: mdio: Demote probed message to debug print
Josef Bacik <josef@toxicpanda.com>
btrfs: remove BUG_ON(!eie) in find_parent_nodes
Josef Bacik <josef@toxicpanda.com>
btrfs: remove BUG_ON() in find_parent_nodes()
Thomas Weißschuh <linux@weissschuh.net>
ACPI: battery: Add the ThinkPad "Not Charging" quirk
Marina Nikolic <Marina.Nikolic@amd.com>
amdgpu/pm: Make sysfs pm attributes as read-only for VFs
Zongmin Zhou <zhouzongmin@kylinos.cn>
drm/amdgpu: fixup bad vram size on gmc v8
Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
Sudeep Holla <sudeep.holla@arm.com>
ACPICA: Fix wrong interpretation of PCC address
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPICA: Utilities: Avoid deleting the same object twice in a row
Mark Langsdorf <mlangsdo@redhat.com>
ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
Kyeong Yoo <kyeong.yoo@alliedtelesis.co.nz>
jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
Lucas Stach <l.stach@pengutronix.de>
drm/etnaviv: consider completed fence seqno in hang check
Antony Antony <antony.antony@secunet.com>
xfrm: rate limit SA mapping change message to user space
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
Ben Greear <greearb@candelatech.com>
ath11k: Fix napi related hang
Randy Dunlap <rdunlap@infradead.org>
um: registers: Rename function names to avoid conflicts and build problems
Luca Coelho <luciano.coelho@intel.com>
iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
Ilan Peer <ilan.peer@intel.com>
iwlwifi: mvm: Fix calculation of frame length
Johannes Berg <johannes.berg@intel.com>
iwlwifi: remove module loading failure message
Johannes Berg <johannes.berg@intel.com>
iwlwifi: fix leaks/bad data after failed firmware load
Changcheng Deng <deng.changcheng@zte.com.cn>
PM: AVS: qcom-cpr: Use div64_ul instead of do_div
Po-Hao Huang <phhuang@realtek.com>
rtw88: 8822c: update rx settings to prevent potential hw deadlock
Zekun Shen <bruceshenzk@gmail.com>
ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
Kai-Heng Feng <kai.heng.feng@canonical.com>
usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
cpufreq: Fix initialization of min and max frequency QoS requests
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
PM: runtime: Add safety net to supplier device release
Thierry Reding <treding@nvidia.com>
arm64: tegra: Adjust length of CCPLEX cluster MMIO region
Biwen Li <biwen.li@nxp.com>
arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
Paul Moore <paul@paul-moore.com>
audit: ensure userspace is penalized the same as the kernel when under pressure
Ulf Hansson <ulf.hansson@linaro.org>
mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()
Sean Young <sean@mess.org>
media: igorplugusb: receiver overflow should be reported
Alistair Francis <alistair@alistair23.me>
HID: quirks: Allow inverting the absolute X/Y values
Paolo Abeni <pabeni@redhat.com>
bpf: Do not WARN in bpf_warn_invalid_xdp_action()
Suresh Kumar <surkumar@redhat.com>
net: bonding: debug: avoid printing debug logs when bond is not notifying peers
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_read_aux() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_end() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_panic() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Allow instrumentation during task work queueing
Baochen Qiang <quic_bqiang@quicinc.com>
ath11k: Avoid false DEADLOCK warning reported by lockdep
Heiko Carstens <hca@linux.ibm.com>
selftests/ftrace: make kprobe profile testcase description unique
Iwona Winiarska <iwona.winiarska@intel.com>
gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: phy: prefer 1000baseT over 1000baseKX
Antoine Tenart <atenart@kernel.org>
net-sysfs: update the queue counts in the unregistration path
Sebastian Gottschall <s.gottschall@dd-wrt.com>
ath10k: Fix tx hanging
Wen Gong <quic_wgong@quicinc.com>
ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
Shaul Triebitz <shaul.triebitz@intel.com>
iwlwifi: mvm: avoid clearing a just saved session protection id
Johannes Berg <johannes.berg@intel.com>
iwlwifi: mvm: synchronize with FW after multicast commands
Mika Westerberg <mika.westerberg@linux.intel.com>
thunderbolt: Runtime PM activate both ends of the device link
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: m920x: don't use stack on USB reads
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
media: rcar-vin: Update format alignment constraints
James Hilliard <james.hilliard1@gmail.com>
media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
drm: rcar-du: Fix CRTC timings when CMM is used
Joerg Roedel <jroedel@suse.de>
x86/mm: Flush global TLB when switching to trampoline page-table
Xiongwei Song <sxwjean@gmail.com>
floppy: Add max size check for user space request
Neal Liu <neal_liu@aspeedtech.com>
usb: uhci: add aspeed ast2600 uhci support
Kishon Vijay Abraham I <kishon@ti.com>
arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
Hans de Goede <hdegoede@redhat.com>
ACPI: Change acpi_device_always_present() into acpi_device_override_status()
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
Mansur Alisha Shaik <mansur@codeaurora.org>
media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions
Sriram R <quic_srirrama@quicinc.com>
ath11k: Avoid NULL ptr access during mgmt tx cleanup
Zekun Shen <bruceshenzk@gmail.com>
rsi: Fix out-of-bounds read in rsi_read_pkt()
Zekun Shen <bruceshenzk@gmail.com>
rsi: Fix use-after-free in rsi_rx_done_handler()
Zekun Shen <bruceshenzk@gmail.com>
mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
Stephan Müller <smueller@chronox.de>
crypto: jitter - consider 32 LSB for APT
Chengfeng Ye <cyeaa@connect.ust.hk>
HSI: core: Fix return freed object in hsi_new_client
Hans de Goede <hdegoede@redhat.com>
gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
Fugang Duan <fugang.duan@nxp.com>
tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
Martyn Welch <martyn.welch@collabora.com>
drm/bridge: megachips: Ensure both bridges are probed before registration
Danielle Ratson <danieller@nvidia.com>
mlxsw: pci: Add shutdown method in PCI driver
Jan Kiszka <jan.kiszka@siemens.com>
soc: ti: pruss: fix referenced node in error message
Alex Deucher <alexander.deucher@amd.com>
drm/amdgpu/display: set vblank_disable_immediate for DC
Yang Li <yang.lee@linux.alibaba.com>
drm/amd/display: check top_pipe_to_program pointer
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
Dinh Nguyen <dinguyen@kernel.org>
EDAC/synopsys: Use the quirk for version instead of ddr version
Zheyu Ma <zheyuma97@gmail.com>
media: b2c2: Add missing check in flexcop_pci_isr:
José Expósito <jose.exposito89@gmail.com>
HID: apple: Do not reset quirks when the Fn key is not found
Hans de Goede <hdegoede@redhat.com>
drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
Pavankumar Kondeti <quic_pkondeti@quicinc.com>
usb: gadget: f_fs: Use stream_open() for endpoint files
Baochen Qiang <bqiang@codeaurora.org>
ath11k: Fix crash caused by uninitialized TX ring
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: handle errors at sh_css_create_isp_params()
Linus Lüssing <linus.luessing@c0d3.blue>
batman-adv: allow netlink usage in unprivileged containers
Wan Jiabing <wanjiabing@vivo.com>
ARM: shmobile: rcar-gen2: Add missing of_node_put()
Hans de Goede <hdegoede@redhat.com>
media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: set per-device's default mode
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: fix try_fmt logic
Ben Skeggs <bskeggs@redhat.com>
drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
Neil Armstrong <narmstrong@baylibre.com>
drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
Zekun Shen <bruceshenzk@gmail.com>
ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
Andrii Nakryiko <andrii@kernel.org>
selftests/bpf: Fix bpf_object leak in skb_ctx selftest
Qiang Yu <yuq825@gmail.com>
drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
Alexander Aring <aahringo@redhat.com>
fs: dlm: filter user dlm messages for kernel locks
Wei Yongjun <weiyongjun1@huawei.com>
Bluetooth: Fix debugfs entry leak in hci_register_dev()
Sicelo A. Mhlongo <absicsz@gmail.com>
ARM: dts: omap3-n900: Fix lp5523 for multi color
Baruch Siach <baruch@tkos.co.il>
of: base: Fix phandle argument length mismatch error message
Conor Dooley <conor.dooley@microchip.com>
clk: bm1880: remove kfrees on static allocations
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: fsl_asrc: refine the check of available clock divider
Kamal Heib <kamalheib1@gmail.com>
RDMA/cxgb4: Set queue pair state when being queried
Alyssa Ross <hi@alyssa.is>
ASoC: fsl_mqs: fix MODULE_ALIAS
Ammar Faizi <ammarfaizi2@gmail.com>
powerpc/xive: Add missing null check after calling kmalloc
Randy Dunlap <rdunlap@infradead.org>
mips: bcm63xx: add support for clk_set_parent()
Randy Dunlap <rdunlap@infradead.org>
mips: lantiq: add support for clk_set_parent()
Sameer Pujar <spujar@nvidia.com>
arm64: tegra: Remove non existent Tegra194 reset
Sameer Pujar <spujar@nvidia.com>
arm64: tegra: Fix Tegra194 HDA {clock,reset}-names ordering
Fabrice Gasnier <fabrice.gasnier@foss.st.com>
counter: stm32-lptimer-cnt: remove iio counter abi
Wei Yongjun <weiyongjun1@huawei.com>
misc: lattice-ecp3-config: Fix task hung when firmware load failed
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: samsung: idma: Check of ioremap return value
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: mediatek: Check for error clk pointer
Ryuta NAKANISHI <nakanishi.ryuta@socionext.com>
phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
Alan Stern <stern@rowland.harvard.edu>
scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
Xiongfeng Wang <wangxiongfeng2@huawei.com>
iommu/iova: Fix race between FQ timeout and teardown
Cezary Rojewski <cezary.rojewski@intel.com>
ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: Restore GA log/tail pointer on host resume
Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
iommu/amd: Remove iommu_init_ga()
Arnd Bergmann <arnd@arndb.de>
dmaengine: pxa/mmp: stop referencing config->slave_id
Lukas Bulwahn <lukas.bulwahn@gmail.com>
mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
Lukas Bulwahn <lukas.bulwahn@gmail.com>
mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
Dillon Min <dillon.minfei@gmail.com>
clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell
Frank Rowand <frank.rowand@sony.com>
of: unittest: 64 bit dma address test requires arch support
Jim Quinlan <jim2101024@gmail.com>
of: unittest: fix warning on PowerPC frame size warning
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: rt5663: Handle device_property_read_u32_array error codes
Avihai Horon <avihaih@nvidia.com>
RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
Avihai Horon <avihaih@nvidia.com>
RDMA/core: Let ib_find_gid() continue search even after empty entry
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/powermac: Add additional missing lockdep_register_key()
Thomas Gleixner <tglx@linutronix.de>
PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
Kamal Heib <kamalheib1@gmail.com>
RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
Bart Van Assche <bvanassche@acm.org>
scsi: ufs: Fix race conditions related to driver data
Hector Martin <marcan@marcan.st>
iommu/io-pgtable-arm: Fix table descriptor paddr formatting
Stafford Horne <shorne@gmail.com>
openrisc: Add clone3 ABI wrapper
Todd Kjos <tkjos@google.com>
binder: fix handling of error during copy
Kees Cook <keescook@chromium.org>
char/mwave: Adjust io port register size
Takashi Iwai <tiwai@suse.de>
ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
Bixuan Cui <cuibixuan@linux.alibaba.com>
ALSA: oss: fix compile error when OSS_DEBUG is enabled
Waiman Long <longman@redhat.com>
clocksource: Avoid accidental unstable marking of clocksources
Paul E. McKenney <paulmck@kernel.org>
clocksource: Reduce clocksource-skew threshold
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/32s: Fix shift-out-of-bounds in KASAN init
Athira Rajeev <atrajeev@linux.vnet.ibm.com>
powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/irq: Add helper to set regs->softe
Nicholas Piggin <npiggin@gmail.com>
powerpc/perf: move perf irq/nmi handling details into traps.c
Athira Rajeev <atrajeev@linux.vnet.ibm.com>
powerpc/perf: MMCR0 control for PMU registers under PMCC=00
Jordan Niethe <jniethe5@gmail.com>
powerpc/64s: Convert some cpu_setup() and cpu_restore() functions to C
Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
dt-bindings: thermal: Fix definition of cooling-maps contribution property
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
Peiwei Hu <jlu.hpw@foxmail.com>
powerpc/prom_init: Fix improper check of prom_getprop()
Adam Ford <aford173@gmail.com>
clk: imx8mn: Fix imx8mn_clko1_sels
Igor Pylypiv <ipylypiv@google.com>
scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
Kamal Heib <kamalheib1@gmail.com>
RDMA/hns: Validate the pkey index
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"
Takashi Iwai <tiwai@suse.de>
ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
Takashi Iwai <tiwai@suse.de>
ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
Takashi Iwai <tiwai@suse.de>
ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
Jan Kara <jack@suse.cz>
ext4: avoid trim error on fs with small groups
Pavel Skripkin <paskripkin@gmail.com>
net: mcs7830: handle usb read errors properly
Nathan Chancellor <nathan@kernel.org>
iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
Dominik Brodowski <linux@dominikbrodowski.net>
pcmcia: fix setting of kthread task states
Jiasheng Jiang <jiasheng@iscas.ac.cn>
can: xilinx_can: xcan_probe(): check for error irq
Marc Kleine-Budde <mkl@pengutronix.de>
can: softing: softing_startstop(): fix set but not used variable warning
Christophe Jaillet <christophe.jaillet@wanadoo.fr>
tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
Chen Jun <chenjun102@huawei.com>
tpm: add request_locality before write TPM_INT_ENABLE
Marc Kleine-Budde <mkl@pengutronix.de>
can: mcp251xfd: add missing newline to printed strings
Fabio Estevam <festevam@denx.de>
regmap: Call regmap_debugfs_exit() prior to _init()
Dan Carpenter <dan.carpenter@oracle.com>
netrom: fix api breakage in nr_setsockopt()
Dan Carpenter <dan.carpenter@oracle.com>
ax25: uninitialized variable in ax25_setsockopt()
Miaoqian Lin <linmq006@gmail.com>
spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
Dan Carpenter <dan.carpenter@oracle.com>
Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
Zizhuang Deng <sunsetdzz@gmail.com>
lib/mpi: Add the return value check of kcalloc()
Moshe Shemesh <moshe@nvidia.com>
net/mlx5: Set command entry semaphore up once got index free
Aya Levin <ayal@nvidia.com>
Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
Maor Dickman <maord@nvidia.com>
net/mlx5e: Don't block routes with nexthop objects in SW
Aya Levin <ayal@nvidia.com>
net/mlx5e: Fix page DMA map/unmap attributes
Michal Suchanek <msuchanek@suse.de>
debugfs: lockdown: Allow reading debugfs files that are not world readable
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
Miaoqian Lin <linmq006@gmail.com>
usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
Miaoqian Lin <linmq006@gmail.com>
Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
Jiasheng Jiang <jiasheng@iscas.ac.cn>
Bluetooth: hci_bcm: Check for error irq
Jiasheng Jiang <jiasheng@iscas.ac.cn>
fsl/fman: Check for null pointer after calling devm_ioremap
Jiasheng Jiang <jiasheng@iscas.ac.cn>
staging: greybus: audio: Check null pointer
Dan Carpenter <dan.carpenter@oracle.com>
rocker: fix a sleeping in atomic bug
Eric Dumazet <edumazet@google.com>
ppp: ensure minimum packet size in ppp_write()
Florian Westphal <fw@strlen.de>
netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
Kuniyuki Iwashima <kuniyu@amazon.co.jp>
bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
Daniel Borkmann <daniel@iogearbox.net>
bpf: Don't promote bogus looking registers after null check.
Xin Xiong <xiongx18@fudan.edu.cn>
netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
Jiasheng Jiang <jiasheng@iscas.ac.cn>
power: reset: mt6397: Check for null res pointer
Zhou Qingyang <zhou1615@umn.edu>
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
Zhou Qingyang <zhou1615@umn.edu>
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
Hans de Goede <hdegoede@redhat.com>
ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
Zhang Zixun <zhang133010@icloud.com>
x86/mce/inject: Avoid out-of-bounds write when setting flags
Arseny Demidov <arsdemal@gmail.com>
hwmon: (mr75203) fix wrong power-up delay value
Nathan Chancellor <nathan@kernel.org>
x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
Panicker Harish <quic_pharish@quicinc.com>
Bluetooth: hci_qca: Stop IBS timer during BT OFF
Clément Léger <clement.leger@bootlin.com>
software node: fix wrong node passed to find nargs_prop
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Respect enabled-strings in set_brightness
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Override default length with qcom,enabled-strings
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Fix off-by-one maximum with default num_strings
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Pass number of elements to read to read_u32_array
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Validate enabled string indices in DT
Paul Chaignon <paul@isovalent.com>
bpftool: Enable line buffering for stdout
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: L2CAP: Fix using wrong mode
Johannes Berg <johannes.berg@intel.com>
um: virtio_uml: Fix time-travel external time propagation
Johannes Berg <johannes.berg@intel.com>
um: fix ndelay/udelay defines
Bernard Zhao <bernard@vivo.com>
selinux: fix potential memleak in selinux_add_opt()
Sergey Shtylyov <s.shtylyov@omp.ru>
mmc: meson-mx-sdio: add IRQ check
Sergey Shtylyov <s.shtylyov@omp.ru>
mmc: meson-mx-sdhc: add IRQ check
Nathan Errera <nathan.errera@intel.com>
iwlwifi: mvm: test roc running status bits before removing the sta
Johannes Berg <johannes.berg@intel.com>
iwlwifi: mvm: fix 32-bit build in FTM
Marek Behún <kabel@kernel.org>
ARM: dts: armada-38x: Add generic compatible to UART nodes
Robert Marko <robert.marko@sartura.hr>
arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
Robert Marko <robert.marko@sartura.hr>
arm64: dts: marvell: cn9130: add GPIO and SPI aliases
Wei Yongjun <weiyongjun1@huawei.com>
usb: ftdi-elan: fix memory leak on device disconnect
Andre Przywara <andre.przywara@arm.com>
ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
Antony Antony <antony.antony@secunet.com>
xfrm: state and policy should fail if XFRMA_IF_ID 0
Antony Antony <antony.antony@secunet.com>
xfrm: interface with if_id 0 should return error
Jernej Skrabec <jernej.skrabec@gmail.com>
media: hantro: Fix probe func error path
Robin Murphy <robin.murphy@arm.com>
drm/tegra: vic: Fix DMA API misuse
Stephen Boyd <swboyd@chromium.org>
drm/bridge: ti-sn65dsi86: Set max register for regmap
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drm/msm/dpu: fix safe status debugfs file
Baruch Siach <baruch@tkos.co.il>
arm64: dts: qcom: ipq6018: Fix gpio-ranges property
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
arm64: dts: qcom: c630: Fix soundcard setup
Zhou Qingyang <zhou1615@umn.edu>
ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
Jiasheng Jiang <jiasheng@iscas.ac.cn>
media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
Wang Hai <wanghai38@huawei.com>
media: msi001: fix possible null-ptr-deref in msi001_probe()
Anton Vasilyev <vasilyev@ispras.ru>
media: dw2102: Fix use after free
Christian Lamparter <chunkeey@gmail.com>
ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
Rameshkumar Sundaram <quic_ramess@quicinc.com>
ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
Herbert Xu <herbert@gondor.apana.org.au>
crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix bugs and crash in tests
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix lrw chaining mode
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix double pm exit
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - check early input data
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix CTR counter carry
Herbert Xu <herbert@gondor.apana.org.au>
crypto: stm32 - Fix last sparse warning in stm32_cryp_check_ctr_counter
Jakub Kicinski <kuba@kernel.org>
selftests: harness: avoid false negatives if test has no ASSERTs
Anders Roxell <anders.roxell@linaro.org>
selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
Kees Cook <keescook@chromium.org>
x86/uaccess: Move variable into switch case statement
Eric Dumazet <edumazet@google.com>
xfrm: fix a small bug in xfrm_sa_len()
Brian Norris <briannorris@chromium.org>
mwifiex: Fix possible ABBA deadlock
Frederic Weisbecker <frederic@kernel.org>
rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
Jackie Liu <liuyun01@kylinos.cn>
drm/msm/dp: displayPort driver need algorithm rational
Li Hua <hucool.lihua@huawei.com>
sched/rt: Try to restart rt period timer when rt runtime exceeded
Lv Yunlong <lyl2019@mail.ustc.edu.cn>
wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
Robert Schlabbach <robert_s@gmx.net>
media: si2157: Fix "warm" tuner state detection
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
Zhou Qingyang <zhou1615@umn.edu>
media: dib8000: Fix a memleak in dib8000_init()
Reiji Watanabe <reijiw@google.com>
arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
Will Deacon <will@kernel.org>
arm64: lib: Annotate {clear, copy}_page() as position-independent
Kajol Jain <kjain@linux.ibm.com>
bpf: Remove config check to enable bpf support for branch records
Hou Tao <houtao1@huawei.com>
bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
Alexei Starovoitov <ast@kernel.org>
bpf: Adjust BTF log size limit.
Vincent Donnefort <vincent.donnefort@arm.com>
sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
Vincent Donnefort <vincent.donnefort@arm.com>
sched/fair: Fix detection of per-CPU kthreads waking a task
Sean Wang <sean.wang@mediatek.com>
Bluetooth: btmtksdio: fix resume failure
Yang Yingliang <yangyingliang@huawei.com>
staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
Yang Yingliang <yangyingliang@huawei.com>
staging: rtl8192e: return error code from rtllib_softmac_init()
Tasos Sahanidis <tasos@tasossah.com>
floppy: Fix hang in watchdog when disk is ejected
Lino Sanfilippo <LinoSanfilippo@gmx.de>
serial: amba-pl011: do not request memory region twice
Lizhi Hou <lizhi.hou@xilinx.com>
tty: serial: uartlite: allow 64 bit address
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j721e: Fix the L2 cache sets
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j7200: Fix the L2 cache sets
Zhou Qingyang <zhou1615@umn.edu>
drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
Zhou Qingyang <zhou1615@umn.edu>
drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode()
Paul Gerber <Paul.Gerber@tq-group.com>
thermal/drivers/imx8mm: Enable ADC when enabling monitor
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPI: EC: Rework flushing of EC work while suspended to idle
William Kucharski <william.kucharski@oracle.com>
cgroup: Trace event cgroup id fields should be u64
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
arm64: dts: qcom: msm8916: fix MMC controller aliases
Florian Westphal <fw@strlen.de>
netfilter: bridge: add support for pppoe filtering
Oleksij Rempel <linux@rempel-privat.de>
thermal/drivers/imx: Implement runtime PM support
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
media: venus: core: Fix a potential NULL pointer dereference in an error handling path
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
media: venus: core, venc, vdec: Fix probe dependency error
Stanimir Varbanov <stanimir.varbanov@linaro.org>
media: venus: pm_helpers: Control core power domain manually
Philipp Zabel <p.zabel@pengutronix.de>
media: coda: fix CODA960 JPEG encoder buffer overflow
Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
Yang Yingliang <yangyingliang@huawei.com>
media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
Fabio Estevam <festevam@denx.de>
media: imx-pxp: Initialize the spinlock prior to using it
Suresh Udipi <sudipi@jp.adit-jv.com>
media: rcar-csi2: Correct the selection of hsfreqrange
Claudiu Beznea <claudiu.beznea@microchip.com>
mfd: atmel-flexcom: Use .resume_noirq
Claudiu Beznea <claudiu.beznea@microchip.com>
mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
Tudor Ambarus <tudor.ambarus@microchip.com>
tty: serial: atmel: Call dma_async_issue_pending()
Tudor Ambarus <tudor.ambarus@microchip.com>
tty: serial: atmel: Check return code of dmaengine_submit()
Peng Fan <peng.fan@nxp.com>
arm64: dts: ti: k3-j721e: correct cache-sets info
Anilkumar Kolli <akolli@codeaurora.org>
ath11k: Use host CE parameters for CE interrupts configuration
Giovanni Cabiddu <giovanni.cabiddu@intel.com>
crypto: qat - fix undetected PFVF timeout in ACK loop
Marco Chiappero <marco.chiappero@intel.com>
crypto: qat - make pfvf send message direction agnostic
Marco Chiappero <marco.chiappero@intel.com>
crypto: qat - remove unnecessary collision prevention step in PFVF
Bhaskar Chowdhury <unixbhaskar@gmail.com>
crypto: qat - fix spelling mistake: "messge" -> "message"
Dillon Min <dillon.minfei@gmail.com>
ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco
George G. Davis <davis.george@siemens.com>
mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_skcipher_register_one
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_ahash_register_one
Wang Hai <wanghai38@huawei.com>
media: dmxdev: fix UAF when dvb_register_device() fails
Biju Das <biju.das.jz@bp.renesas.com>
arm64: dts: renesas: cat875: Add rx/tx delays
Dan Carpenter <dan.carpenter@oracle.com>
drm/vboxvideo: fix a NULL vs IS_ERR() check
Alexander Aring <aahringo@redhat.com>
fs: dlm: fix build with CONFIG_IPV6 disabled
Jens Wiklander <jens.wiklander@linaro.org>
tee: fix put order in teedev_close_context()
Karthikeyan Kathirvel <kathirve@codeaurora.org>
ath11k: reset RSN/WPA present state for open BSS
Karthikeyan Kathirvel <kathirve@codeaurora.org>
ath11k: clear the keys properly via DISABLE_KEY
Sven Eckelmann <sven@narfation.org>
ath11k: Fix ETSI regd with weather radar overlap
Pavel Skripkin <paskripkin@gmail.com>
Bluetooth: stop proccessing malicious adv data
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
Alexander Aring <aahringo@redhat.com>
fs: dlm: don't call kernel_getpeername() in error_report()
Alexander Aring <aahringo@redhat.com>
fs: dlm: use sk->sk_socket instead of con->sock
Christian Hewitt <christianshewitt@gmail.com>
arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
Christian Hewitt <christianshewitt@gmail.com>
arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
Alexander Stein <alexander.stein@mailbox.org>
arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
Alexander Stein <alexander.stein@mailbox.org>
arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
Jammy Huang <jammy_huang@aspeedtech.com>
media: aspeed: Update signal status immediately to ensure sane hw state
Dongliang Mu <mudongliangabcd@gmail.com>
media: em28xx: fix memory leak in em28xx_init_dev
Jammy Huang <jammy_huang@aspeedtech.com>
media: aspeed: fix mode-detect always time out at 2nd run
Dan Carpenter <dan.carpenter@oracle.com>
media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: fix enum formats logic
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
Aline Santana Cordeiro <alinesantanacordeiro@gmail.com>
media: staging: media: atomisp: pci: Balance braces around conditional statements in file atomisp_cmd.c
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix ifdefs in sh_css.c
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid()
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: do not use err var when checking port validity for ISP2400
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix inverted logic in buffers_needed()
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities()
Dillon Min <dillon.minfei@gmail.com>
media: videobuf2: Fix the size printk format
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
Rameshkumar Sundaram <ramess@codeaurora.org>
ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
Benjamin Li <benl@squareup.com>
wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
Benjamin Li <benl@squareup.com>
wcn36xx: populate band before determining rate on RX
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Put DXE block into reset before freeing memory
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Release DMA channel descriptor allocations
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Fix DMA channel enable/disable cycle
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
Benjamin Li <benl@squareup.com>
wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Set a default HSM rate
Maxime Ripard <maxime@cerno.tech>
clk: bcm-2835: Remove rounding up the dividers
Maxime Ripard <maxime@cerno.tech>
clk: bcm-2835: Pick the closest clock rate
Wang Hai <wanghai38@huawei.com>
Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Reconfigure hardware on resume()
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Disable PLL clock on bind error
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Hold pm-runtime across bind/unbind
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Fix unbalanced clock on probe error
Brian Norris <briannorris@chromium.org>
drm/panel: innolux-p079zca: Delete panel on attach() failure
Brian Norris <briannorris@chromium.org>
drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
Wang Hai <wanghai38@huawei.com>
drm: fix null-ptr-deref in drm_dev_init_release()
Dan Carpenter <dan.carpenter@oracle.com>
drm/bridge: display-connector: fix an uninitialized pointer in probe()
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: L2CAP: Fix not initializing sk_peer_pid
xinhui pan <xinhui.pan@amd.com>
drm/ttm: Put BO in its memory manager's lru list
Gang Li <ligang.bdlg@bytedance.com>
shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
Baoquan He <bhe@redhat.com>
mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages
Baoquan He <bhe@redhat.com>
dma/pool: create dma atomic pool only if dma zone has managed pages
Baoquan He <bhe@redhat.com>
mm_zone: add function to check if managed dma zone exists
Yifeng Li <tomli@tomli.me>
PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
Thomas Hellström <thomas.hellstrom@linux.intel.com>
dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
Dmitry Osipenko <digetx@gmail.com>
gpu: host1x: Add back arm_iommu_detach_device()
Yunfei Wang <yf.wang@mediatek.com>
iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
Christophe Leroy <christophe.leroy@csgroup.eu>
lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
Jonathan Cameron <Jonathan.Cameron@huawei.com>
iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
Johan Hovold <johan@kernel.org>
can: softing_cs: softingcs_probe(): fix memleak on registration failure
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: cec-pin: fix interrupt en/disable handling
Johan Hovold <johan@kernel.org>
media: stk1160: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: pvrusb2: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: redrat3: fix control-message timeouts
Michael Kuron <michael.kuron@gmail.com>
media: dib0700: fix undefined behavior in tuner shutdown
Johan Hovold <johan@kernel.org>
media: s2255: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: cpia2: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: em28xx: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: mceusb: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: flexcop-usb: fix control-message timeouts
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
Mateusz Jończyk <mat.jonczyk@o2.pl>
rtc: cmos: take rtc_lock while reading from CMOS
Willy Tarreau <w@1wt.eu>
tools/nolibc: fix incorrect truncation of exit code
Willy Tarreau <w@1wt.eu>
tools/nolibc: i386: fix initial stack alignment
Ammar Faizi <ammar.faizi@students.amikom.ac.id>
tools/nolibc: x86-64: Fix startup code bug
Lucas De Marchi <lucas.demarchi@intel.com>
x86/gpu: Reserve stolen memory for first integrated Intel GPU
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Rewrite function description
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Avoid duplicated page read
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Don't calculate ECC when reading page
Andreas Oetken <ennoerlangen@gmail.com>
mtd: Fixed breaking list in __mtd_del_partition.
Stefan Riedmueller <s.riedmueller@phytec.de>
mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
Christian Eggers <ceggers@arri.de>
mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()
Chao Yu <chao@kernel.org>
f2fs: fix to do sanity check in is_alive()
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Avoid using stale array indicies to read contact count
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Ignore the confidence flag when a touch is removed
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Reset expected and received contact counts at the same time
Jann Horn <jannh@google.com>
HID: uhid: Fix worker destroying device without any protection
Marcelo Tosatti <mtosatti@redhat.com>
KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
-------------
Diffstat:
.../ABI/testing/sysfs-bus-iio-lptimer-stm32 | 62 --
Documentation/admin-guide/hw-vuln/spectre.rst | 2 +-
.../bindings/display/amlogic,meson-dw-hdmi.yaml | 5 +
.../bindings/display/amlogic,meson-vpu.yaml | 6 +
.../devicetree/bindings/thermal/thermal-zones.yaml | 9 +-
.../devicetree/bindings/watchdog/samsung-wdt.yaml | 5 +-
Documentation/driver-api/dmaengine/dmatest.rst | 7 +-
Documentation/driver-api/firewire.rst | 4 +-
.../acpi/dsd/data-node-references.rst | 10 +-
Makefile | 4 +-
arch/arm/Kconfig.debug | 14 +-
arch/arm/boot/compressed/efi-header.S | 22 +-
arch/arm/boot/compressed/head.S | 3 +-
arch/arm/boot/dts/armada-38x.dtsi | 4 +-
arch/arm/boot/dts/gemini-nas4220b.dts | 2 +-
arch/arm/boot/dts/omap3-n900.dts | 50 +-
arch/arm/boot/dts/stm32f429-disco.dts | 2 +-
arch/arm/include/debug/imx-uart.h | 18 +-
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5 +-
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 2 +-
.../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 +-
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 3 +
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 14 +-
arch/arm64/boot/dts/marvell/cn9130.dtsi | 15 +
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 2 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 9 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2 +-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 4 +-
arch/arm64/boot/dts/qcom/msm8996.dtsi | 3 -
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 27 +
arch/arm64/boot/dts/renesas/cat875.dtsi | 1 +
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j7200.dtsi | 6 +-
arch/arm64/boot/dts/ti/k3-j721e.dtsi | 6 +-
arch/arm64/lib/clear_page.S | 14 +-
arch/arm64/lib/copy_page.S | 4 +-
arch/mips/Kconfig | 6 +-
arch/mips/bcm63xx/clk.c | 6 +
arch/mips/cavium-octeon/octeon-platform.c | 2 +
arch/mips/cavium-octeon/octeon-usb.c | 1 +
.../asm/mach-loongson64/kernel-entry-init.h | 4 +-
arch/mips/include/asm/octeon/cvmx-bootinfo.h | 4 +-
arch/mips/lantiq/clk.c | 6 +
arch/openrisc/include/asm/syscalls.h | 2 +
arch/openrisc/kernel/entry.S | 5 +
arch/parisc/include/asm/special_insns.h | 44 +-
arch/parisc/kernel/traps.c | 2 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi | 2 +
arch/powerpc/include/asm/cpu_setup_power.h | 12 +
arch/powerpc/include/asm/hw_irq.h | 51 +-
arch/powerpc/include/asm/reg.h | 1 +
arch/powerpc/kernel/btext.c | 4 +-
arch/powerpc/kernel/cpu_setup_power.S | 252 ------
arch/powerpc/kernel/cpu_setup_power.c | 272 ++++++
arch/powerpc/kernel/cputable.c | 12 +-
arch/powerpc/kernel/dt_cpu_ftrs.c | 1 +
arch/powerpc/kernel/fadump.c | 8 +
arch/powerpc/kernel/head_40x.S | 9 +-
arch/powerpc/kernel/prom_init.c | 2 +-
arch/powerpc/kernel/smp.c | 42 +
arch/powerpc/kernel/traps.c | 31 +-
arch/powerpc/kernel/watchdog.c | 41 +-
arch/powerpc/kvm/book3s_hv.c | 8 +-
arch/powerpc/kvm/book3s_hv_nested.c | 2 +-
arch/powerpc/mm/book3s64/radix_pgtable.c | 4 +-
arch/powerpc/mm/kasan/book3s_32.c | 3 +-
arch/powerpc/mm/pgtable_64.c | 14 +-
arch/powerpc/perf/core-book3s.c | 97 ++-
arch/powerpc/perf/core-fsl-emb.c | 25 -
arch/powerpc/perf/isa207-common.c | 8 +
arch/powerpc/platforms/cell/iommu.c | 1 +
arch/powerpc/platforms/cell/pervasive.c | 1 +
arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 1 +
arch/powerpc/platforms/powermac/low_i2c.c | 3 +
arch/powerpc/platforms/powernv/opal-lpc.c | 1 +
arch/powerpc/sysdev/xive/spapr.c | 3 +
arch/s390/mm/pgalloc.c | 4 +-
arch/um/drivers/virtio_uml.c | 4 +
arch/um/include/asm/delay.h | 4 +-
arch/um/include/shared/registers.h | 4 +-
arch/um/os-Linux/registers.c | 4 +-
arch/um/os-Linux/start_up.c | 2 +-
arch/x86/boot/compressed/Makefile | 7 +-
arch/x86/configs/i386_defconfig | 1 +
arch/x86/configs/x86_64_defconfig | 1 +
arch/x86/include/asm/realmode.h | 1 +
arch/x86/include/asm/uaccess.h | 5 +-
arch/x86/kernel/cpu/mce/core.c | 42 +-
arch/x86/kernel/cpu/mce/inject.c | 2 +-
arch/x86/kernel/early-quirks.c | 10 +-
arch/x86/kernel/reboot.c | 12 +-
arch/x86/kernel/tsc.c | 1 +
arch/x86/kvm/vmx/posted_intr.c | 16 +-
arch/x86/realmode/init.c | 26 +
arch/x86/um/syscalls_64.c | 3 +-
block/blk-flush.c | 4 +-
block/blk-pm.c | 22 +-
crypto/jitterentropy.c | 3 +-
drivers/acpi/acpica/exfield.c | 7 +-
drivers/acpi/acpica/exoparg1.c | 3 +-
drivers/acpi/acpica/hwesleep.c | 4 +-
drivers/acpi/acpica/hwsleep.c | 4 +-
drivers/acpi/acpica/hwxfsleep.c | 2 -
drivers/acpi/acpica/utdelete.c | 1 +
drivers/acpi/battery.c | 22 +
drivers/acpi/bus.c | 4 +-
drivers/acpi/ec.c | 57 +-
drivers/acpi/internal.h | 2 +
drivers/acpi/scan.c | 13 +-
drivers/acpi/x86/utils.c | 116 ++-
drivers/android/binder.c | 4 +-
drivers/base/core.c | 3 +-
drivers/base/power/runtime.c | 41 +-
drivers/base/property.c | 4 +-
drivers/base/regmap/regmap.c | 1 +
drivers/base/swnode.c | 2 +-
drivers/block/floppy.c | 6 +-
drivers/bluetooth/btmtksdio.c | 2 +
drivers/bluetooth/hci_bcm.c | 7 +-
drivers/bluetooth/hci_qca.c | 5 +-
drivers/bluetooth/hci_vhci.c | 2 +
drivers/char/mwave/3780i.h | 2 +-
drivers/char/random.c | 19 +-
drivers/char/tpm/tpm_tis_core.c | 14 +-
drivers/clk/bcm/clk-bcm2835.c | 13 +-
drivers/clk/clk-bm1880.c | 20 +-
drivers/clk/clk-si5341.c | 2 +-
drivers/clk/clk-stm32f4.c | 4 -
drivers/clk/clk.c | 18 +
drivers/clk/imx/clk-imx8mn.c | 6 +-
drivers/clk/meson/gxbb.c | 44 +-
drivers/counter/Kconfig | 2 +-
drivers/counter/stm32-lptimer-cnt.c | 297 +------
drivers/cpufreq/cpufreq.c | 4 +-
drivers/crypto/caam/caamalg_qi2.c | 2 +-
drivers/crypto/omap-aes.c | 2 +-
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 45 +-
drivers/crypto/qat/qat_common/adf_vf2pf_msg.c | 4 +-
drivers/crypto/qce/sha.c | 2 +-
drivers/crypto/qce/skcipher.c | 2 +-
drivers/crypto/stm32/stm32-crc32.c | 4 +-
drivers/crypto/stm32/stm32-cryp.c | 938 ++++++++-------------
drivers/crypto/stm32/stm32-hash.c | 6 +-
drivers/dma-buf/dma-fence-array.c | 6 +-
drivers/dma/at_xdmac.c | 57 +-
drivers/dma/mmp_pdma.c | 6 -
drivers/dma/pxa_dma.c | 7 -
drivers/dma/stm32-mdma.c | 2 +-
drivers/dma/uniphier-xdmac.c | 5 +-
drivers/edac/synopsys_edac.c | 3 +-
drivers/firmware/google/Kconfig | 6 +-
drivers/gpio/gpio-aspeed.c | 52 +-
drivers/gpio/gpiolib-acpi.c | 15 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1 -
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 13 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +
drivers/gpu/drm/amd/display/dc/core/dc.c | 3 +-
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 6 +
drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 14 +-
drivers/gpu/drm/bridge/display-connector.c | 2 +-
.../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 40 +-
.../gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 10 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 4 +-
.../gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 9 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 12 +-
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 +
drivers/gpu/drm/drm_drv.c | 9 +-
drivers/gpu/drm/drm_panel_orientation_quirks.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 1 +
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4 +-
drivers/gpu/drm/lima/lima_device.c | 1 +
drivers/gpu/drm/mediatek/mtk_mipi_tx.c | 2 +
drivers/gpu/drm/msm/Kconfig | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4 +-
drivers/gpu/drm/nouveau/dispnv04/disp.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 37 +-
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 10 +-
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 8 +-
drivers/gpu/drm/radeon/radeon_kms.c | 42 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 20 +-
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 82 +-
drivers/gpu/drm/tegra/vic.c | 7 +-
drivers/gpu/drm/ttm/ttm_bo.c | 2 +
drivers/gpu/drm/vboxvideo/vbox_main.c | 4 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 24 +-
drivers/gpu/host1x/dev.c | 15 +
drivers/hid/hid-apple.c | 2 +-
drivers/hid/hid-input.c | 6 +
drivers/hid/hid-uclogic-params.c | 31 +-
drivers/hid/hid-vivaldi.c | 34 +-
drivers/hid/uhid.c | 29 +-
drivers/hid/wacom_wac.c | 39 +-
drivers/hsi/hsi_core.c | 1 +
drivers/hwmon/mr75203.c | 2 +-
drivers/i2c/busses/i2c-designware-pcidrv.c | 8 +-
drivers/i2c/busses/i2c-i801.c | 15 +-
drivers/i2c/busses/i2c-mpc.c | 23 +-
drivers/iio/adc/ti-adc081c.c | 22 +-
drivers/infiniband/core/cma.c | 12 +-
drivers/infiniband/core/device.c | 3 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1 -
drivers/infiniband/hw/cxgb4/qp.c | 1 +
drivers/infiniband/hw/hns/hns_roce_main.c | 5 +-
drivers/infiniband/hw/qedr/verbs.c | 2 +
drivers/infiniband/sw/rxe/rxe_opcode.c | 2 +-
drivers/iommu/amd/init.c | 48 +-
drivers/iommu/io-pgtable-arm-v7s.c | 6 +-
drivers/iommu/io-pgtable-arm.c | 9 +-
drivers/iommu/iova.c | 3 +-
drivers/irqchip/irq-gic-v3.c | 16 +
drivers/md/dm.c | 4 +-
drivers/md/persistent-data/dm-btree.c | 8 +-
drivers/md/persistent-data/dm-space-map-common.c | 5 +
drivers/media/Kconfig | 8 +-
drivers/media/cec/core/cec-pin.c | 31 +-
drivers/media/common/saa7146/saa7146_fops.c | 2 +-
.../media/common/videobuf2/videobuf2-dma-contig.c | 8 +-
drivers/media/dvb-core/dmxdev.c | 18 +-
drivers/media/dvb-frontends/dib8000.c | 4 +-
drivers/media/pci/b2c2/flexcop-pci.c | 3 +
drivers/media/pci/saa7146/hexium_gemini.c | 7 +-
drivers/media/pci/saa7146/hexium_orion.c | 8 +-
drivers/media/pci/saa7146/mxb.c | 8 +-
drivers/media/platform/aspeed-video.c | 14 +-
drivers/media/platform/coda/coda-common.c | 8 +-
drivers/media/platform/coda/coda-jpeg.c | 21 +-
drivers/media/platform/coda/imx-vdoa.c | 6 +-
drivers/media/platform/imx-pxp.c | 4 +-
.../media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 2 +-
drivers/media/platform/qcom/venus/core.c | 39 +-
drivers/media/platform/qcom/venus/core.h | 2 -
drivers/media/platform/qcom/venus/pm_helpers.c | 94 +--
drivers/media/platform/qcom/venus/pm_helpers.h | 7 +-
drivers/media/platform/rcar-vin/rcar-csi2.c | 18 +-
drivers/media/platform/rcar-vin/rcar-v4l2.c | 15 +-
drivers/media/radio/si470x/radio-si470x-i2c.c | 3 +-
drivers/media/rc/igorplugusb.c | 4 +-
drivers/media/rc/mceusb.c | 8 +-
drivers/media/rc/redrat3.c | 22 +-
drivers/media/tuners/msi001.c | 7 +
drivers/media/tuners/si2157.c | 2 +-
drivers/media/usb/b2c2/flexcop-usb.c | 10 +-
drivers/media/usb/b2c2/flexcop-usb.h | 12 +-
drivers/media/usb/cpia2/cpia2_usb.c | 4 +-
drivers/media/usb/dvb-usb/dib0700_core.c | 2 -
drivers/media/usb/dvb-usb/dw2102.c | 338 +++++---
drivers/media/usb/dvb-usb/m920x.c | 12 +-
drivers/media/usb/em28xx/em28xx-cards.c | 18 +-
drivers/media/usb/em28xx/em28xx-core.c | 4 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 8 +-
drivers/media/usb/s2255/s2255drv.c | 4 +-
drivers/media/usb/stk1160/stk1160-core.c | 4 +-
drivers/media/usb/uvc/uvcvideo.h | 2 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 4 +-
drivers/memory/renesas-rpc-if.c | 2 +-
drivers/mfd/atmel-flexcom.c | 11 +-
drivers/misc/lattice-ecp3-config.c | 12 +-
drivers/misc/lkdtm/Makefile | 2 +-
drivers/mmc/core/sdio.c | 4 +-
drivers/mmc/host/meson-mx-sdhc-mmc.c | 5 +
drivers/mmc/host/meson-mx-sdio.c | 5 +
drivers/mtd/hyperbus/rpc-if.c | 8 +-
drivers/mtd/mtdpart.c | 2 +-
drivers/mtd/nand/bbt.c | 2 +-
drivers/mtd/nand/raw/davinci_nand.c | 16 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 37 +-
drivers/net/bonding/bond_main.c | 36 +-
drivers/net/can/softing/softing_cs.c | 2 +-
drivers/net/can/softing/softing_fw.c | 11 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 6 +-
drivers/net/can/xilinx_can.c | 7 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 10 +-
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c | 3 +-
drivers/net/ethernet/cortina/gemini.c | 9 +-
drivers/net/ethernet/freescale/fman/mac.c | 21 +-
drivers/net/ethernet/freescale/xgmac_mdio.c | 28 +-
drivers/net/ethernet/i825xx/sni_82596.c | 3 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 36 +-
.../net/ethernet/mellanox/mlx5/core/en/xsk/pool.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c | 6 +-
drivers/net/ethernet/mellanox/mlxsw/cmd.h | 12 +
drivers/net/ethernet/mellanox/mlxsw/pci.c | 7 +-
drivers/net/ethernet/mscc/ocelot_flower.c | 15 +-
drivers/net/ethernet/rocker/rocker_ofdpa.c | 3 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 135 +--
drivers/net/phy/marvell.c | 6 +
drivers/net/phy/mdio_bus.c | 2 +-
drivers/net/phy/phy-core.c | 2 +-
drivers/net/phy/sfp.c | 25 +-
drivers/net/ppp/ppp_generic.c | 7 +-
drivers/net/usb/mcs7830.c | 12 +-
drivers/net/wireless/ath/ar5523/ar5523.c | 4 +
drivers/net/wireless/ath/ath10k/core.c | 19 +-
drivers/net/wireless/ath/ath10k/htt_tx.c | 3 +
drivers/net/wireless/ath/ath10k/hw.h | 3 +
drivers/net/wireless/ath/ath10k/txrx.c | 2 -
drivers/net/wireless/ath/ath11k/ahb.c | 28 +-
drivers/net/wireless/ath/ath11k/core.h | 2 +-
drivers/net/wireless/ath/ath11k/dp.h | 3 +-
drivers/net/wireless/ath/ath11k/dp_tx.c | 2 +-
drivers/net/wireless/ath/ath11k/hal.c | 22 +
drivers/net/wireless/ath/ath11k/hal.h | 2 +
drivers/net/wireless/ath/ath11k/hw.c | 2 -
drivers/net/wireless/ath/ath11k/mac.c | 52 +-
drivers/net/wireless/ath/ath11k/pci.c | 12 +-
drivers/net/wireless/ath/ath11k/reg.c | 103 +--
drivers/net/wireless/ath/ath11k/wmi.c | 5 +-
drivers/net/wireless/ath/ath9k/hif_usb.c | 7 +
drivers/net/wireless/ath/wcn36xx/dxe.c | 49 +-
drivers/net/wireless/ath/wcn36xx/main.c | 34 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 8 +-
drivers/net/wireless/ath/wcn36xx/txrx.c | 41 +-
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 +
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 17 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 17 +
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 27 +
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 2 +-
.../net/wireless/intel/iwlwifi/mvm/time-event.c | 27 +-
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 7 +-
drivers/net/wireless/intel/iwlwifi/queue/tx.c | 1 +
drivers/net/wireless/marvell/mwifiex/sta_event.c | 8 +-
drivers/net/wireless/marvell/mwifiex/usb.c | 3 +-
drivers/net/wireless/realtek/rtw88/main.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
drivers/net/wireless/rsi/rsi_91x_main.c | 4 +
drivers/net/wireless/rsi/rsi_91x_usb.c | 9 +-
drivers/net/wireless/rsi/rsi_usb.h | 2 +
drivers/nvmem/core.c | 2 +
drivers/of/base.c | 11 +-
drivers/of/unittest.c | 21 +-
drivers/parisc/pdc_stable.c | 4 +-
drivers/pci/controller/pci-aardvark.c | 4 +-
drivers/pci/controller/pci-mvebu.c | 8 +
drivers/pci/controller/pci-xgene.c | 2 +-
drivers/pci/hotplug/pciehp.h | 3 +
drivers/pci/hotplug/pciehp_core.c | 2 +-
drivers/pci/hotplug/pciehp_hpc.c | 21 +-
drivers/pci/msi.c | 26 +-
drivers/pci/pci-bridge-emul.c | 70 +-
drivers/pci/quirks.c | 3 +
drivers/pcmcia/cs.c | 8 +-
drivers/pcmcia/rsrc_nonstatic.c | 6 +
drivers/phy/socionext/phy-uniphier-usb3ss.c | 10 +-
drivers/power/reset/mt6323-poweroff.c | 3 +
drivers/regulator/qcom_smd-regulator.c | 100 ++-
drivers/rpmsg/rpmsg_core.c | 20 +-
drivers/rtc/rtc-cmos.c | 3 +
drivers/rtc/rtc-pxa.c | 4 +
drivers/scsi/lpfc/lpfc.h | 2 +-
drivers/scsi/lpfc/lpfc_attr.c | 62 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 8 +-
drivers/scsi/lpfc/lpfc_sli.c | 6 -
drivers/scsi/pm8001/pm8001_hwi.c | 4 +-
drivers/scsi/scsi_debugfs.c | 1 +
drivers/scsi/scsi_pm.c | 2 +-
drivers/scsi/sr.c | 2 +-
drivers/scsi/sr_vendor.c | 4 +-
drivers/scsi/ufs/tc-dwc-g210-pci.c | 1 -
drivers/scsi/ufs/ufshcd-pci.c | 2 -
drivers/scsi/ufs/ufshcd-pltfrm.c | 2 -
drivers/scsi/ufs/ufshcd.c | 7 +
drivers/soc/mediatek/mtk-scpsys.c | 15 +-
drivers/soc/qcom/cpr.c | 2 +-
drivers/soc/ti/pruss.c | 2 +-
drivers/spi/spi-meson-spifc.c | 1 +
drivers/spi/spi-uniphier.c | 11 +-
drivers/staging/greybus/audio_topology.c | 15 +
drivers/staging/media/atomisp/i2c/ov2680.h | 24 -
drivers/staging/media/atomisp/pci/atomisp_cmd.c | 92 +-
drivers/staging/media/atomisp/pci/atomisp_fops.c | 11 +
.../media/atomisp/pci/atomisp_gmin_platform.c | 2 +-
drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 185 +++-
drivers/staging/media/atomisp/pci/atomisp_subdev.c | 15 +-
drivers/staging/media/atomisp/pci/atomisp_subdev.h | 3 +
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 13 +-
drivers/staging/media/atomisp/pci/atomisp_v4l2.h | 3 +-
drivers/staging/media/atomisp/pci/sh_css.c | 27 +-
drivers/staging/media/atomisp/pci/sh_css_mipi.c | 41 +-
drivers/staging/media/atomisp/pci/sh_css_params.c | 8 +-
drivers/staging/media/hantro/hantro_drv.c | 3 +-
drivers/staging/rtl8192e/rtllib.h | 2 +-
drivers/staging/rtl8192e/rtllib_module.c | 16 +-
drivers/staging/rtl8192e/rtllib_softmac.c | 6 +-
drivers/tee/tee_core.c | 4 +-
drivers/thermal/imx8mm_thermal.c | 3 +
drivers/thermal/imx_thermal.c | 145 ++--
drivers/thunderbolt/acpi.c | 13 +
drivers/tty/serial/amba-pl010.c | 3 -
drivers/tty/serial/amba-pl011.c | 27 +-
drivers/tty/serial/atmel_serial.c | 14 +
drivers/tty/serial/imx.c | 7 +-
drivers/tty/serial/serial_core.c | 7 +-
drivers/tty/serial/uartlite.c | 2 +-
drivers/usb/core/hub.c | 5 +-
drivers/usb/dwc3/dwc3-qcom.c | 7 +-
drivers/usb/gadget/function/f_fs.c | 4 +-
drivers/usb/host/uhci-platform.c | 3 +-
drivers/usb/misc/ftdi-elan.c | 1 +
drivers/vdpa/mlx5/net/mlx5_vnet.c | 2 -
drivers/video/backlight/qcom-wled.c | 122 +--
drivers/virtio/virtio_ring.c | 4 +-
drivers/w1/slaves/w1_ds28e04.c | 26 +-
drivers/xen/gntdev.c | 6 +-
fs/btrfs/backref.c | 21 +-
fs/btrfs/ctree.c | 19 +-
fs/btrfs/inode.c | 11 +
fs/btrfs/qgroup.c | 19 +
fs/debugfs/file.c | 2 +-
fs/dlm/lock.c | 9 +
fs/dlm/lowcomms.c | 45 +-
fs/ext4/ext4.h | 1 +
fs/ext4/ext4_jbd2.c | 2 +
fs/ext4/extents.c | 2 -
fs/ext4/fast_commit.c | 18 +-
fs/ext4/inode.c | 14 +-
fs/ext4/ioctl.c | 2 -
fs/ext4/mballoc.c | 48 +-
fs/ext4/migrate.c | 23 +-
fs/ext4/super.c | 27 +-
fs/f2fs/compress.c | 50 +-
fs/f2fs/f2fs.h | 11 +
fs/f2fs/gc.c | 3 +
fs/f2fs/segment.h | 3 +-
fs/f2fs/super.c | 44 +
fs/f2fs/sysfs.c | 4 +-
fs/fuse/file.c | 2 +-
fs/jffs2/file.c | 40 +-
fs/ubifs/super.c | 1 -
fs/udf/ialloc.c | 2 +
include/acpi/acpi_bus.h | 5 +-
include/acpi/actypes.h | 10 +-
include/linux/blk-pm.h | 2 +-
include/linux/bpf_verifier.h | 7 +
include/linux/clocksource.h | 3 +
include/linux/hid.h | 2 +
include/linux/mmzone.h | 9 +
include/linux/pm_runtime.h | 3 +
include/net/inet_frag.h | 11 +-
include/net/ipv6_frag.h | 3 +-
include/net/sch_generic.h | 5 +
include/net/xfrm.h | 5 +
include/trace/events/cgroup.h | 12 +-
include/uapi/linux/xfrm.h | 1 +
kernel/audit.c | 18 +-
kernel/bpf/btf.c | 3 +-
kernel/bpf/verifier.c | 18 +-
kernel/dma/pool.c | 4 +-
kernel/rcu/tree_exp.h | 1 +
kernel/sched/cputime.c | 4 +-
kernel/sched/fair.c | 4 +-
kernel/sched/rt.c | 23 +-
kernel/time/clocksource.c | 96 ++-
kernel/time/jiffies.c | 15 +-
kernel/trace/bpf_trace.c | 6 +-
kernel/trace/trace_kprobe.c | 5 +-
kernel/tsacct.c | 7 +-
lib/mpi/mpi-mod.c | 2 +
lib/test_hmm.c | 24 +
lib/test_meminit.c | 1 +
mm/hmm.c | 5 +-
mm/page_alloc.c | 19 +-
mm/shmem.c | 37 +-
net/ax25/af_ax25.c | 10 +-
net/batman-adv/netlink.c | 30 +-
net/bluetooth/cmtp/core.c | 4 +-
net/bluetooth/hci_core.c | 1 +
net/bluetooth/hci_event.c | 8 +-
net/bluetooth/hci_request.c | 2 +-
net/bluetooth/l2cap_sock.c | 45 +-
net/bridge/br_netfilter_hooks.c | 7 +-
net/core/dev.c | 6 +
net/core/devlink.c | 2 -
net/core/filter.c | 8 +-
net/core/net-sysfs.c | 3 +
net/core/net_namespace.c | 4 +-
net/ipv4/fib_semantics.c | 47 +-
net/ipv4/inet_fragment.c | 8 +-
net/ipv4/ip_fragment.c | 3 +-
net/ipv4/ip_gre.c | 5 +-
net/ipv4/netfilter/ipt_CLUSTERIP.c | 5 +-
net/ipv6/ip6_gre.c | 5 +-
net/mac80211/rx.c | 2 +-
net/netfilter/nft_set_pipapo.c | 8 +
net/netrom/af_netrom.c | 12 +-
net/nfc/llcp_sock.c | 5 +
net/sched/sch_generic.c | 1 +
net/smc/smc_core.c | 17 +-
net/unix/garbage.c | 14 +-
net/unix/scm.c | 6 +-
net/xfrm/xfrm_compat.c | 6 +-
net/xfrm/xfrm_interface.c | 14 +-
net/xfrm/xfrm_policy.c | 24 +-
net/xfrm/xfrm_state.c | 23 +-
net/xfrm/xfrm_user.c | 41 +-
scripts/dtc/dtx_diff | 8 +-
scripts/sphinx-pre-install | 4 +
security/selinux/hooks.c | 12 +-
sound/core/jack.c | 3 +
sound/core/oss/pcm_oss.c | 2 +-
sound/core/pcm.c | 6 +-
sound/core/seq/seq_queue.c | 14 +-
sound/pci/hda/hda_codec.c | 3 +
sound/soc/codecs/rt5663.c | 12 +-
sound/soc/fsl/fsl_asrc.c | 69 +-
sound/soc/fsl/fsl_mqs.c | 2 +-
sound/soc/intel/catpt/dsp.c | 14 +-
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 +
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 +
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 +
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 6 +-
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 7 +-
sound/soc/samsung/idma.c | 2 +
sound/soc/uniphier/Kconfig | 2 -
sound/usb/format.c | 2 +-
sound/usb/mixer_quirks.c | 2 +-
sound/usb/quirks.c | 2 +-
tools/bpf/bpftool/Documentation/Makefile | 1 -
tools/bpf/bpftool/Makefile | 1 -
tools/bpf/bpftool/main.c | 2 +
tools/include/nolibc/nolibc.h | 33 +-
tools/perf/util/debug.c | 2 +-
tools/perf/util/evsel.c | 25 +-
tools/perf/util/probe-event.c | 3 +
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 2 +
tools/testing/selftests/clone3/clone3.c | 6 +
.../selftests/ftrace/test.d/kprobe/profile.tc | 2 +-
tools/testing/selftests/kselftest_harness.h | 2 +-
.../selftests/powerpc/security/spectre_v2.c | 2 +-
tools/testing/selftests/vm/hmm-tests.c | 42 +
539 files changed, 5553 insertions(+), 3320 deletions(-)
^ permalink raw reply [relevance 1%]
* [PATCH 5.16 0865/1039] powerpc/64s/radix: Fix huge vmap false positive
2022-01-24 18:29 1% [PATCH 5.16 0000/1039] 5.16.3-rc1 review Greg Kroah-Hartman
@ 2022-01-24 18:44 12% ` Greg Kroah-Hartman
0 siblings, 0 replies; 200+ results
From: Greg Kroah-Hartman @ 2022-01-24 18:44 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Nicholas Piggin, Michael Ellerman
From: Nicholas Piggin <npiggin@gmail.com>
commit 467ba14e1660b52a2f9338b484704c461bd23019 upstream.
pmd_huge() is defined to false when HUGETLB_PAGE is not configured, but
the vmap code still installs huge PMDs. This leads to false bad PMD
errors when vunmapping because it is not seen as a huge PTE, and the bad
PMD check catches it. The end result may not be much more serious than
some bad pmd warning messages, because the pmd_none_or_clear_bad() does
what we wanted and clears the huge PTE anyway.
Fix this by checking pmd_is_leaf(), which checks for a PTE regardless of
config options. The whole huge/large/leaf stuff is a tangled mess but
that's kernel-wide and not something we can improve much in arch/powerpc
code.
pmd_page(), pud_page(), etc., called by vmalloc_to_page() on huge vmaps
can similarly trigger a false VM_BUG_ON when CONFIG_HUGETLB_PAGE=n, so
those checks are adjusted. The checks were added by commit d6eacedd1f0e
("powerpc/book3s: Use config independent helpers for page table walk"),
while implementing a similar fix for other page table walking functions.
Fixes: d909f9109c30 ("powerpc/64s/radix: Enable HAVE_ARCH_HUGE_VMAP")
Cc: stable@vger.kernel.org # v5.3+
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211216103342.609192-1-npiggin@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/powerpc/mm/book3s64/radix_pgtable.c | 4 ++--
arch/powerpc/mm/pgtable_64.c | 14 +++++++++++---
2 files changed, 13 insertions(+), 5 deletions(-)
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -1100,7 +1100,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t
int pud_clear_huge(pud_t *pud)
{
- if (pud_huge(*pud)) {
+ if (pud_is_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1147,7 +1147,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_huge(*pmd)) {
+ if (pmd_is_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -102,7 +102,8 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
struct page *p4d_page(p4d_t p4d)
{
if (p4d_is_leaf(p4d)) {
- VM_WARN_ON(!p4d_huge(p4d));
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
}
return virt_to_page(p4d_pgtable(p4d));
@@ -112,7 +113,8 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
if (pud_is_leaf(pud)) {
- VM_WARN_ON(!pud_huge(pud));
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
}
return virt_to_page(pud_pgtable(pud));
@@ -125,7 +127,13 @@ struct page *pud_page(pud_t pud)
struct page *pmd_page(pmd_t pmd)
{
if (pmd_is_leaf(pmd)) {
- VM_WARN_ON(!(pmd_large(pmd) || pmd_huge(pmd)));
+ /*
+ * vmalloc_to_page may be called on any vmap address (not only
+ * vmalloc), and it uses pmd_page() etc., when huge vmap is
+ * enabled so these checks can't be used.
+ */
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!(pmd_large(pmd) || pmd_huge(pmd)));
return pte_page(pmd_pte(pmd));
}
return virt_to_page(pmd_page_vaddr(pmd));
^ permalink raw reply [relevance 12%]
* [PATCH 5.16 0000/1039] 5.16.3-rc1 review
@ 2022-01-24 18:29 1% Greg Kroah-Hartman
2022-01-24 18:44 12% ` [PATCH 5.16 0865/1039] powerpc/64s/radix: Fix huge vmap false positive Greg Kroah-Hartman
0 siblings, 1 reply; 200+ results
From: Greg Kroah-Hartman @ 2022-01-24 18:29 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, stable
This is the start of the stable review cycle for the 5.16.3 release.
There are 1039 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Wed, 26 Jan 2022 18:39:11 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.16.3-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.16.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Linux 5.16.3-rc1
Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
ASoC: SOF: handle paused streams during system suspend
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
ASoC: SOF: sof-audio: setup sched widgets during pipeline complete step
Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
ASoC: SOF: free widgets in sof_tear_down_pipelines() for static pipelines
Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
ASoC: SOF: topology: remove sof_load_pipeline_ipc()
Vitaly Kuznetsov <vkuznets@redhat.com>
KVM: selftests: Test KVM_SET_CPUID2 after KVM_RUN
Vitaly Kuznetsov <vkuznets@redhat.com>
KVM: selftests: Rename 'get_cpuid_test' to 'cpuid_test'
Vitaly Kuznetsov <vkuznets@redhat.com>
KVM: x86: Partially allow KVM_SET_CPUID{,2} after KVM_RUN
Vitaly Kuznetsov <vkuznets@redhat.com>
KVM: x86: Do runtime CPUID update before updating vcpu->arch.cpuid_entries
Andrey Konovalov <andreyknvl@gmail.com>
lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
Moshe Tal <moshet@nvidia.com>
bonding: Fix extraction of ports from the packet headers
Alistair Popple <apopple@nvidia.com>
mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
Miaoqian Lin <linmq006@gmail.com>
lib82596: Fix IRQ check in sni_82596_probe
Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
scripts/dtc: dtx_diff: remove broken example from help text
Laibin Qiu <qiulaibin@huawei.com>
blk-mq: fix tag_get wait task can't be awakened
Maxim Mikityanskiy <maximmi@nvidia.com>
sch_api: Don't skip qdisc attach on ingress
Sam Protsenko <semen.protsenko@linaro.org>
dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
Alexander Stein <alexander.stein@mailbox.org>
dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
Alexander Stein <alexander.stein@mailbox.org>
dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
Tom Rix <trix@redhat.com>
net: mscc: ocelot: fix using match before it is set
Claudiu Beznea <claudiu.beznea@microchip.com>
net: phy: micrel: use kszphy_suspend()/kszphy_resume for irq aware devices
Ard Biesheuvel <ardb@kernel.org>
net: cpsw: avoid alignment faults by taking NET_IP_ALIGN into account
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: sfp: fix high power modules without diagnostic monitoring
Horatiu Vultur <horatiu.vultur@microchip.com>
net: ocelot: Fix the call to switchdev_bridge_port_offload
Tom Rix <trix@redhat.com>
net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
Slark Xiao <slark_xiao@163.com>
net: wwan: Fix MRU mismatch issue which may lead to data connection lost
Vladimir Oltean <vladimir.oltean@nxp.com>
net: mscc: ocelot: don't dereference NULL pointers with shared tc filters
Sergey Shtylyov <s.shtylyov@omp.ru>
bcmgenet: add WOL IRQ check
Vladimir Oltean <vladimir.oltean@nxp.com>
net: mscc: ocelot: don't let phylink re-enable TX PAUSE on the NPI port
Kevin Bracey <kevin@bracey.fi>
net_sched: restore "mpu xxx" handling
Alex Elder <elder@linaro.org>
net: ipa: fix atomic update in ipa_endpoint_replenish()
Jie Wang <wangjie125@huawei.com>
net: bonding: fix bond_xmit_broadcast return value error bug
Miroslav Lichvar <mlichvar@redhat.com>
net: fix sock_timestamping_bind_phc() to release device
David Heidelberg <david@ixit.cz>
arm64: dts: qcom: msm8996: drop not documented adreno properties
Leon Romanovsky <leon@kernel.org>
devlink: Remove misleading internal_flags from health reporter dump
Ian Rogers <irogers@google.com>
perf metric: Fix metric_leader
Zechuan Chen <chenzechuan1@huawei.com>
perf probe: Fix ppc64 'perf probe add events failed' case
Ian Rogers <irogers@google.com>
perf test: Enable system wide for metricgroups test
José Expósito <jose.exposito89@gmail.com>
perf metricgroup: Fix use after free in metric__new()
Uwe Kleine-König <uwe@kleine-koenig.org>
perf tools: Drop requirement for libstdc++.so for libopencsd check
Thomas Richter <tmricht@linux.ibm.com>
perf cputopo: Fix CPU topology reading on s/390
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix lld view setting
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix concurrency over xfers_list
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Print debug message after realeasing the lock
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Don't start transactions at tx_submit level
Adrian Hunter <adrian.hunter@intel.com>
perf script: Fix hex dump character output
Guillaume Nault <gnault@redhat.com>
libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
Guillaume Nault <gnault@redhat.com>
gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
Eli Cohen <elic@nvidia.com>
vdpa/mlx5: Restore cur_num_vqs in case of failure in change_num_qps()
Eli Cohen <elic@nvidia.com>
vdpa/mlx5: Fix config_attr_mask assignment
Guillaume Nault <gnault@redhat.com>
xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
Johannes Berg <johannes.berg@intel.com>
iwlwifi: fix Bz NMI behaviour
Eric Dumazet <edumazet@google.com>
netns: add schedule point in ops_exit_list()
Eric Dumazet <edumazet@google.com>
inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
Eric W. Biederman <ebiederm@xmission.com>
taskstats: Cleanup the use of task->exit_code
Michael S. Tsirkin <mst@redhat.com>
virtio_ring: mark ring unused on error
Eli Cohen <elic@nvidia.com>
vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
Laurence de Bruxelles <lfdebrux@gmail.com>
rtc: pxa: fix null pointer dereference
Kees Cook <keescook@chromium.org>
rtc: Move variable into switch case statement
Matt Johnston <matt@codeconstruct.com.au>
mctp: test: zero out sockaddr
Dmitry Torokhov <dmitry.torokhov@gmail.com>
HID: vivaldi: fix handling devices not using numbered reports
Johannes Berg <johannes.berg@intel.com>
um: gitignore: Add kernel/capflags.c
Yury Norov <yury.norov@gmail.com>
bitops: protect find_first_{,zero}_bit properly
Robert Hancock <robert.hancock@calian.com>
net: axienet: increase default TX ring size to 128
Robert Hancock <robert.hancock@calian.com>
net: axienet: fix for TX busy handling
Robert Hancock <robert.hancock@calian.com>
net: axienet: fix number of TX ring slots for available check
Robert Hancock <robert.hancock@calian.com>
net: axienet: Fix TX ring slot available check
Robert Hancock <robert.hancock@calian.com>
net: axienet: limit minimum TX ring size
Robert Hancock <robert.hancock@calian.com>
net: axienet: add missing memory barriers
Robert Hancock <robert.hancock@calian.com>
net: axienet: reset core on initialization prior to MDIO access
Robert Hancock <robert.hancock@calian.com>
net: axienet: Wait for PhyRstCmplt after core reset
Robert Hancock <robert.hancock@calian.com>
net: axienet: increase reset timeout
Wen Gu <guwen@linux.alibaba.com>
net/smc: Fix hung_task when removing SMC-R devices
Miaoqian Lin <linmq006@gmail.com>
gpio: idt3243x: Fix IRQ check in idt_gpio_probe
Miaoqian Lin <linmq006@gmail.com>
gpio: mpc8xxx: Fix IRQ check in mpc8xxx_probe
John Keeping <john@metanate.com>
pinctrl/rockchip: fix gpio device creation
Robert Hancock <robert.hancock@calian.com>
clk: si5341: Fix clock HW provider cleanup
Stephen Boyd <sboyd@kernel.org>
clk: Emit a stern warning with writable debugfs enabled
Eric Dumazet <edumazet@google.com>
af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
Dan Carpenter <dan.carpenter@oracle.com>
crypto: octeontx2 - uninitialized variable in kvf_limits_store()
Chao Yu <chao@kernel.org>
f2fs: fix to check available space of CP area correctly in update_ckpt_flags()
Chao Yu <chao@kernel.org>
f2fs: fix to reserve space for IO align feature
Hyeong-Jun Kim <hj514.kim@samsung.com>
f2fs: compress: fix potential deadlock of compress file
Chao Yu <chao@kernel.org>
f2fs: fix to avoid panic in is_alive() if metadata is inconsistent
Fengnan Chang <changfengnan@vivo.com>
f2fs: fix remove page failed in invalidate compress pages
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Remove unused compile options
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Remove explicit transparent hugepages support
Geert Uytterhoeven <geert@linux-m68k.org>
riscv: dts: microchip: mpfs: Drop empty chosen node
Palmer Dabbelt <palmer@rivosinc.com>
RISC-V: defconfigs: Set CONFIG_FB=y, for FB console
Miaoqian Lin <linmq006@gmail.com>
parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
Tobias Waldekranz <tobias@waldekranz.com>
net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
Tobias Waldekranz <tobias@waldekranz.com>
net/fsl: xgmac_mdio: Add workaround for erratum A-009885
Guillaume Nault <gnault@redhat.com>
mlx5: Don't accidentally set RTO_ONLINK before mlx5e_route_lookup_ipv4_get()
Eric Dumazet <edumazet@google.com>
ipv4: avoid quadratic behavior in netns dismantle
Eric Dumazet <edumazet@google.com>
ipv4: update fib_info_cnt under spinlock protection
German Gomez <german.gomez@arm.com>
perf evsel: Override attr->sample_period for non-libpfm4 events
Daniel Borkmann <daniel@iogearbox.net>
bpf: Mark PTR_TO_FUNC register initially with zero offset
Yafang Shao <laoar.shao@gmail.com>
bpf: Fix mount source show for bpffs
Toke Høiland-Jørgensen <toke@redhat.com>
xdp: check prog type before updating BPF link
Quentin Monnet <quentin@isovalent.com>
bpftool: Fix indent in option lists in the documentation
Quentin Monnet <quentin@isovalent.com>
bpftool: Remove inclusion of utilities.mak from Makefiles
Russell King <russell.king@oracle.com>
arm64/bpf: Remove 128MB limit for BPF JIT programs
Andrii Nakryiko <andrii@kernel.org>
libbpf: Remove deprecation attribute from struct bpf_prog_prep_result
Maxime Ripard <maxime@cerno.tech>
drm/vc4: crtc: Copy assigned channel to the CRTC
Maxime Ripard <maxime@cerno.tech>
drm/vc4: Fix non-blocking commit getting stuck forever
Maxime Ripard <maxime@cerno.tech>
drm/vc4: crtc: Drop feed_txp from state
Ye Bin <yebin10@huawei.com>
block: Fix fsync always failed if once failed
Jens Axboe <axboe@kernel.dk>
block: fix async_depth sysfs interface for mq-deadline
Tobias Waldekranz <tobias@waldekranz.com>
powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
Anders Roxell <anders.roxell@linaro.org>
powerpc/cell: Fix clang -Wimplicit-fallthrough warning
Moshe Shemesh <moshe@nvidia.com>
Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
Amelie Delaunay <amelie.delaunay@foss.st.com>
dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
Chengguang Xu <cgxu519@mykernel.net>
RDMA/rxe: Fix a typo in opcode name
Yixing Liu <liuyixing1@huawei.com>
RDMA/hns: Modify the mapping attribute of doorbell to device
Dave Jiang <dave.jiang@intel.com>
dmaengine: idxd: fix wq settings post wq disable
Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
dmaengine: uniphier-xdmac: Fix type of address variables
Miaoqian Lin <linmq006@gmail.com>
scsi: ufs: ufs-mediatek: Fix error checking in ufs_mtk_init_va09_pwr_ctrl()
Baruch Siach <baruch@tkos.co.il>
of: base: Improve argument length mismatch error
Bart Van Assche <bvanassche@acm.org>
scsi: core: Show SCMD_LAST in text form
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: hci_sync: Fix not setting adv set duration
Markus Reichl <m.reichl@fivetechno.de>
net: usb: Correct reset handling of smsc95xx
Mark Chen <mark-yw.chen@mediatek.com>
Bluetooth: btusb: Return error code when getting patch status failed
Randy Dunlap <rdunlap@infradead.org>
Documentation: fix firewire.rst ABI file path error
Lukas Bulwahn <lukas.bulwahn@gmail.com>
Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization
Alexandre Ghiti <alexandre.ghiti@canonical.com>
Documentation, arch: Remove leftovers from CIFS_WEAK_PW_HASH
Alexandre Ghiti <alexandre.ghiti@canonical.com>
Documentation, arch: Remove leftovers from raw device
Sakari Ailus <sakari.ailus@linux.intel.com>
Documentation: ACPI: Fix data node reference documentation
Daniel Thompson <daniel.thompson@linaro.org>
Documentation: dmaengine: Correctly describe dmatest with channel unset
Mike Leach <mike.leach@linaro.org>
Documentation: coresight: Fix documentation issue
Randy Dunlap <rdunlap@infradead.org>
media: correct MEDIA_TEST_SUPPORT help text
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Make sure the device is powered with CEC
Suresh Udipi <sudipi@jp.adit-jv.com>
media: rcar-csi2: Optimize the selection PHTW register
Marc Kleine-Budde <mkl@pengutronix.de>
can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
Ben Hutchings <ben@decadent.org.uk>
firmware: Update Kconfig help text for Google firmware
Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
drm/amdgpu/display: Only set vblank_disable_immediate when PSR is not enabled
Christian König <christian.koenig@amd.com>
drm/radeon: fix error handling in radeon_driver_open_kms
Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
Revert "drm/amdgpu: Don't inherit GEM object VMAs in child process"
Theodore Ts'o <tytso@mit.edu>
ext4: don't use the orphan list when migrating an inode
Zhang Yi <yi.zhang@huawei.com>
ext4: fix an use-after-free issue about data=journal writeback mode
Ye Bin <yebin10@huawei.com>
ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
Sebastian Andrzej Siewior <bigeasy@linutronix.de>
ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
Xin Yin <yinxin.x@bytedance.com>
ext4: fast commit may miss tracking unwritten range during ftruncate
Xin Yin <yinxin.x@bytedance.com>
ext4: use ext4_ext_remove_space() for fast commit replay delete range
Ye Bin <yebin10@huawei.com>
ext4: Fix BUG_ON in ext4_bread when write quota data
Luís Henriques <lhenriques@suse.de>
ext4: set csum seed in tmp inode while migrating to extents
Xin Yin <yinxin.x@bytedance.com>
ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
Harshad Shirwadkar <harshadshirwadkar@gmail.com>
ext4: initialize err_blk before calling __ext4_get_inode_loc
Chunguang Xu <brookxu@tencent.com>
ext4: fix a possible ABBA deadlock due to busy PA
Jan Kara <jack@suse.cz>
ext4: make sure quota gets properly shutdown on error
Jan Kara <jack@suse.cz>
ext4: make sure to reset inode lockdep class when quota enabling fails
Filipe Manana <fdmanana@suse.com>
btrfs: respect the max size in the header when activating swap file
Naohiro Aota <naohiro.aota@wdc.com>
btrfs: zoned: fix chunk allocation condition for zoned allocator
Naohiro Aota <naohiro.aota@wdc.com>
btrfs: zoned: unset dedicated block group on allocation failure
Naohiro Aota <naohiro.aota@wdc.com>
btrfs: add extent allocator hook to decide to allocate chunk or not
Josef Bacik <josef@toxicpanda.com>
btrfs: check the root node for uptodate before returning it
Naohiro Aota <naohiro.aota@wdc.com>
btrfs: zoned: cache reported zone during mount
Filipe Manana <fdmanana@suse.com>
btrfs: fix deadlock between quota enable and other quota operations
Nicolas Dichtel <nicolas.dichtel@6wind.com>
xfrm: fix dflt policy check when there is no policy configured
Ghalem Boudour <ghalem.boudour@6wind.com>
xfrm: fix policy lookup for ipv6 gre packets
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Correctly set PCIe capabilities
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Fix definitions of reserved bits
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
Lukas Wunner <lukas@wunner.de>
PCI: pciehp: Fix infinite loop in IRQ handler upon power fault
Hans de Goede <hdegoede@redhat.com>
PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
Rob Herring <robh@kernel.org>
PCI: xgene: Fix IB window setup
José Roberto de Souza <jose.souza@intel.com>
drm/i915/display/ehl: Update voltage swing table
Mario Limonciello <mario.limonciello@amd.com>
drm/amd/display: Revert W/A for hard hangs on DCN20/DCN21
Alex Deucher <alexander.deucher@amd.com>
drm/amdgpu: don't do resets on APUs which don't support it
Lukas Fink <lukas.fink1@gmail.com>
drm/amdgpu: Fix rejecting Tahiti GPUs
Harry Wentland <harry.wentland@amd.com>
drm/amdgpu: Use correct VIEWPORT_DIMENSION for DCN2
James Smart <jsmart2021@gmail.com>
scsi: lpfc: Fix lpfc_force_rscn ndlp kref imbalance
Nicholas Piggin <npiggin@gmail.com>
powerpc/64s/radix: Fix huge vmap false positive
John David Anglin <dave.anglin@bell.net>
parisc: Fix lpa and lpa_user defines
Brian Norris <briannorris@chromium.org>
drm/bridge: analogix_dp: Make PSR-exit block less
Ilia Mirkin <imirkin@alum.mit.edu>
drm/nouveau/kms/nv04: use vzalloc for nv04_display
Yizhuo Zhai <yzhai003@ucr.edu>
drm/amd/display: Fix the uninitialized variable in enable_stream_features()
Lucas Stach <l.stach@pengutronix.de>
drm/etnaviv: limit submit sizes
Dmitry Osipenko <digetx@gmail.com>
drm/tegra: submit: Add missing pm_runtime_mark_last_busy()
Sakari Ailus <sakari.ailus@linux.intel.com>
device property: Fix fwnode_graph_devcon_match() fwnode leak
Alexander Gordeev <agordeev@linux.ibm.com>
s390/mm: fix 2KB pgtable release race
Ilan Peer <ilan.peer@intel.com>
iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
remoteproc: imx_rproc: Fix a resource leak in the remove function
Steven Rostedt <rostedt@goodmis.org>
tracing: Have syscall trace events use trace_event_buffer_lock_reserve()
Xiangyang Zhang <xyz.sun.ok@gmail.com>
tracing/kprobes: 'nmissed' not showed correctly for kretprobe
Nikita Yushchenko <nikita.yushchenko@virtuozzo.com>
tracing/osnoise: Properly unhook events if start_per_cpu_kthreads() fails
Andrey Ryabinin <arbn@yandex-team.com>
sched/cpuacct: Fix user/system in shown cpuacct.usage*
Andrey Ryabinin <arbn@yandex-team.com>
cputime, cpuacct: Include guest time in user time in cpuacct.stat
Lukas Wunner <lukas@wunner.de>
serial: Fix incorrect rs485 polarity on uart open
Xie Yongji <xieyongji@bytedance.com>
fuse: Pass correct lend value to filemap_write_and_wait_range()
Borislav Petkov <bp@suse.de>
x86/mce: Check regs before accessing it
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
HID: magicmouse: Fix an error handling path in magicmouse_probe()
Xiao Ni <xni@redhat.com>
md: Move alloc/free acct bioset in to personality
Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
xen/gntdev: fix unmap notification order
Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
spi: uniphier: Fix a bug that doesn't point to private data correctly
Dmitry Osipenko <digetx@gmail.com>
mfd: tps65910: Set PWR_OFF bit during driver probe
Patrick Williams <patrick@stwcx.xyz>
tpm: fix NPE on probe for missing device
Lino Sanfilippo <LinoSanfilippo@gmx.de>
tpm: fix potential NULL pointer access in tpm_del_char_device
Petr Cvachoucek <cvachoucek@gmail.com>
ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
Meng Li <Meng.Li@windriver.com>
crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
Marek Vasut <marex@denx.de>
crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
Heiner Kallweit <hkallweit1@gmail.com>
crypto: omap-aes - Fix broken pm_runtime_and_get() usage
Zhu Lingshan <lingshan.zhu@intel.com>
ifcvf/vDPA: fix misuse virtio-net device config size for blk dev
Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
rpmsg: core: Clean up resources on announce_create failure.
Sean Christopherson <seanjc@google.com>
hugetlbfs: fix off-by-one error in hugetlb_vmdelete_list()
Chen Wandun <chenwandun@huawei.com>
mm/page_isolation: unset migratetype directly for non Buddy page
Waiman Long <longman@redhat.com>
selftests/vm: make charge_reserved_hugetlb.sh work with existing cgroup setting
Andrey Konovalov <andreyknvl@gmail.com>
kasan: fix quarantine conflicting with init_on_free
Kefeng Wang <wangkefeng.wang@huawei.com>
mm: defer kmemleak object creation of module_alloc()
Xiaoke Wang <xkernel.wang@foxmail.com>
tracing/probes: check the return value of kstrndup() for pbuf
Xiaoke Wang <xkernel.wang@foxmail.com>
tracing/uprobes: Check the return value of kstrdup() for tu->filename
Weizhao Ouyang <o451686892@gmail.com>
dma-buf: cma_heap: Fix mutex locking section
Tom Rix <trix@redhat.com>
i3c: master: dw: check return of dw_i3c_master_get_free_pos()
Sergio Paracuellos <sergio.paracuellos@gmail.com>
PCI: mt7621: Add missing MODULE_LICENSE()
Guchun Chen <guchun.chen@amd.com>
drm/amdgpu: use spin_lock_irqsave to avoid deadlock by local interrupt
Jiasheng Jiang <jiasheng@iscas.ac.cn>
drm/amdkfd: Check for null pointer after calling kmemdup
José Expósito <jose.exposito89@gmail.com>
drm/amd/display: invalid parameter check in dmub_hpd_callback
Wesley Sheng <wesley.sheng@microchip.com>
ntb_hw_switchtec: Fix bug with more than 32 partitions
Jeremy Pallotta <jmpallotta@gmail.com>
ntb_hw_switchtec: Fix pff ioread to read into mmio_part_cfg_all
Liu Ying <victor.liu@nxp.com>
drm/atomic: Check new_crtc_state->active to determine if CRTC needs disable in self refresh mode
Miaoqian Lin <linmq006@gmail.com>
drm/sun4i: dw-hdmi: Fix missing put_device() call in sun8i_hdmi_phy_get
Chuck Lever <chuck.lever@oracle.com>
SUNRPC: Fix sockaddr handling in svcsock_accept_class trace points
Chuck Lever <chuck.lever@oracle.com>
SUNRPC: Fix sockaddr handling in the svc_xprt_create_error trace point
Matthew Auld <matthew.auld@intel.com>
drm/i915: don't call free_mmap_offset when purging
Juston Li <juston.li@intel.com>
drm/i915/pxp: Hold RPM wakelock during PXP unbind
Vitaly Kuznetsov <vkuznets@redhat.com>
x86/hyperv: Properly deal with empty cpumasks in hyperv_flush_tlb_multi()
J. Bruce Fields <bfields@redhat.com>
nfsd: fix crash on COPY_NOTIFY with special stateid
Chuck Lever <chuck.lever@oracle.com>
Revert "nfsd: skip some unnecessary stats in the v4 case"
Chuck Lever <chuck.lever@oracle.com>
NFSD: Fix verifier returned in stable WRITEs
Vincent Chen <vincent.chen@sifive.com>
KVM: RISC-V: Avoid spurious virtual interrupts after clearing hideleg CSR
Pali Rohár <pali@kernel.org>
PCI: mvebu: Fix support for DEVCAP2, DEVCTL2 and LNKCTL2 registers on emulated bridge
Pali Rohár <pali@kernel.org>
PCI: mvebu: Fix support for PCI_EXP_RTSTA on emulated bridge
Pali Rohár <pali@kernel.org>
PCI: mvebu: Fix support for PCI_EXP_DEVCTL on emulated bridge
Pali Rohár <pali@kernel.org>
PCI: mvebu: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge
Pali Rohár <pali@kernel.org>
PCI: mvebu: Setup PCIe controller to Root Complex mode
Pali Rohár <pali@kernel.org>
PCI: mvebu: Fix configuring secondary bus of PCIe Root Port via emulated bridge
Pali Rohár <pali@kernel.org>
PCI: mvebu: Fix support for bus mastering and PCI_COMMAND on emulated bridge
Pali Rohár <pali@kernel.org>
PCI: mvebu: Do not modify PCI IO type bits in conf_write
Pali Rohár <pali@kernel.org>
PCI: mvebu: Check for errors from pci_bridge_emul_init() call
Dario Binacchi <dariobin@libero.it>
Input: ti_am335x_tsc - fix STEPCONFIG setup for Z2
Dario Binacchi <dariobin@libero.it>
Input: ti_am335x_tsc - set ADCREFM for X configuration
Beau Belgrave <beaub@linux.microsoft.com>
tracing: Do not let synth_events block other dyn_event systems during create
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
i3c/master/mipi-i3c-hci: Fix a potentially infinite loop in 'hci_dat_v1_get_index()'
Jamie Iles <quic_jiles@quicinc.com>
i3c: fix incorrect address slot lookup on 64-bit
Hou Wenlong <houwenlong93@linux.alibaba.com>
KVM: x86: Exit to userspace if emulation prepared a completion callback
Sean Christopherson <seanjc@google.com>
KVM: x86: Handle 32-bit wrap of EIP for EMULTYPE_SKIP with flat code seg
Lai Jiangshan <laijs@linux.alibaba.com>
KVM: X86: Ensure that dirty PDPTRs are loaded
Sean Christopherson <seanjc@google.com>
KVM: VMX: Read Posted Interrupt "control" exactly once per loop iteration
Sean Christopherson <seanjc@google.com>
KVM: s390: Ensure kvm_arch_no_poll() is read once when blocking vCPU
Paolo Bonzini <pbonzini@redhat.com>
KVM: VMX: Don't unblock vCPU w/ Posted IRQ if IRQs are disabled in guest
Hector Martin <marcan@marcan.st>
PCI: apple: Fix REFCLK1 enable/poll logic
Pali Rohár <pali@kernel.org>
PCI: aardvark: Fix checking for MEM resource type
Tim Harvey <tharvey@gateworks.com>
PCI: dwc: Do not remap invalid res
Marek Vasut <marek.vasut+renesas@gmail.com>
PCI: rcar: Check if device is runtime suspended instead of __clk_is_enabled()
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
PCI: qcom: Fix an error handling path in 'qcom_pcie_probe()'
Jianjun Wang <jianjun.wang@mediatek.com>
PCI: mediatek-gen3: Disable DVFSRC voltage request
Eric W. Biederman <ebiederm@xmission.com>
signal: In get_signal test for signal_group_exit every time through the loop
Conor Dooley <conor.dooley@microchip.com>
mailbox: change mailbox-mpfs compatible string
Miaoqian Lin <linmq006@gmail.com>
phy: mediatek: Fix missing check in mtk_mipi_tx_probe
Ohad Sharabi <osharabi@habana.ai>
habanalabs: skip read fw errors if dynamic descriptor invalid
Dani Liberman <dliberman@habana.ai>
habanalabs: change wait for interrupt timeout to 64 bit
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8183: fix device_node leak
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8173: fix device_node leak
Chunfeng Yun <chunfeng.yun@mediatek.com>
phy: phy-mtk-tphy: add support efuse setting
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8192-mt6359: fix device_node leak
Sreekanth Reddy <sreekanth.reddy@broadcom.com>
scsi: mpi3mr: Fixes around reply request queues
Christoph Hellwig <hch@lst.de>
scsi: sr: Don't use GFP_DMA
Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
MIPS: Octeon: Fix build errors using clang
Michael Ellerman <mpe@ellerman.id.au>
selftests/powerpc: Add a test of sigreturning to the kernel
Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>
ASoC: SOF: ipc: Add null pointer check for substream->runtime
Qi Liu <liuqi115@huawei.com>
scsi: hisi_sas: Prevent parallel FLR and controller reset
Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
Marc Zyngier <maz@kernel.org>
irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
Ye Guojin <ye.guojin@zte.com.cn>
MIPS: OCTEON: add put_device() after of_find_device_by_node()
Jan Kara <jack@suse.cz>
udf: Fix error handling in udf_new_inode()
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
ASoC: SOF: Intel: hda: add quirks for HDAudio DMA position information
Hari Bathini <hbathini@linux.ibm.com>
powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
Hari Bathini <hbathini@linux.ibm.com>
powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/40x: Map 32Mbytes of memory at startup
Nathan Chancellor <nathan@kernel.org>
MIPS: Loongson64: Use three arguments for slti
Takashi Iwai <tiwai@suse.de>
ALSA: seq: Set upper limit of processed events
James Smart <jsmart2021@gmail.com>
scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
James Smart <jsmart2021@gmail.com>
scsi: lpfc: Fix leaked lpfc_dmabuf mbox allocations with NPIV
Bart Van Assche <bvanassche@acm.org>
scsi: ufs: Fix a kernel crash during shutdown
Stephan Gerhold <stephan@gerhold.net>
interconnect: qcom: rpm: Prevent integer overflow in rate
Ameer Hamza <amhamza.mgc@gmail.com>
ASoC: test-component: fix null pointer dereference.
Christoph Hellwig <hch@lst.de>
dm: make the DAX support depend on CONFIG_FS_DAX
Christoph Hellwig <hch@lst.de>
dm: fix alloc_dax error handling in alloc_dev
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
nvmem: core: set size for sysfs bin file
Christophe Leroy <christophe.leroy@csgroup.eu>
w1: Misuse of get_user()/put_user() reported by sparse
Alexey Kardashevskiy <aik@ozlabs.ru>
KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
Alexey Kardashevskiy <aik@ozlabs.ru>
KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/powermac: Add missing lockdep_register_key()
Martin Blumenstingl <martin.blumenstingl@googlemail.com>
clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
Joakim Tjernlund <joakim.tjernlund@infinera.com>
i2c: mpc: Correct I2C reset procedure
Michael Ellerman <mpe@ellerman.id.au>
powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
Heiner Kallweit <hkallweit1@gmail.com>
i2c: i801: Don't silently correct invalid transfer size
Ye Guojin <ye.guojin@zte.com.cn>
ASoC: imx-hdmi: add put_device() after of_find_device_by_node()
Nicholas Piggin <npiggin@gmail.com>
powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/btext: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/cell: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/powernv: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/6xx: add missing of_node_put
Sam Protsenko <semen.protsenko@linaro.org>
clk: samsung: exynos850: Register clocks early
Ingo Molnar <mingo@kernel.org>
x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
Marc Kleine-Budde <mkl@pengutronix.de>
can: flexcan: add more quirks to describe RX path capabilities
Marc Kleine-Budde <mkl@pengutronix.de>
can: flexcan: rename RX modes
Dario Binacchi <dario.binacchi@amarulasolutions.com>
can: flexcan: allow to change quirks at runtime
Mauro Carvalho Chehab <mchehab@kernel.org>
scripts: sphinx-pre-install: Fix ctex support on Debian
John David Anglin <dave.anglin@bell.net>
parisc: Avoid calling faulthandler_disabled() twice
Maor Dickman <maord@nvidia.com>
net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager
Maher Sanalla <msanalla@nvidia.com>
net/mlx5: Update log_max_qp value to FW max capability
Jason A. Donenfeld <Jason@zx2c4.com>
random: do not throw away excess input to crng_fast_load
Lukas Wunner <lukas@wunner.de>
serial: core: Keep mctrl register state and cached copy in sync
Lukas Wunner <lukas@wunner.de>
serial: pl011: Drop CR register reset on set_termios
Lukas Wunner <lukas@wunner.de>
serial: pl010: Drop CR register reset on set_termios
Konrad Dybcio <konrad.dybcio@somainline.org>
regulator: qcom_smd: Align probe function with rpmh-regulator
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: gemini: allow any RGMII interface mode
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: phy: marvell: configure RGMII delays for 88E1118
Danielle Ratson <danieller@nvidia.com>
mlxsw: pci: Avoid flow control for EMAD packets
Jiri Olsa <jolsa@redhat.com>
bpf/selftests: Fix namespace mount setup in tc_redirect
Vincent Mailhol <mailhol.vincent@wanadoo.fr>
can: do not increase rx statistics when generating a CAN rx error message frame
Joe Thornber <ejt@redhat.com>
dm space map common: add bounds check to sm_ll_lookup_bitmap()
Joe Thornber <ejt@redhat.com>
dm btree: add a defensive bounds check to insert_at()
Ping-Ke Shih <pkshih@realtek.com>
mac80211: allow non-standard VHT MCS-10/11
Florian Fainelli <f.fainelli@gmail.com>
net: mdio: Demote probed message to debug print
Josef Bacik <josef@toxicpanda.com>
btrfs: remove BUG_ON(!eie) in find_parent_nodes
Josef Bacik <josef@toxicpanda.com>
btrfs: remove BUG_ON() in find_parent_nodes()
Yevgeny Kliteynik <kliteyn@nvidia.com>
net/mlx5: DR, Fix error flow in creating matcher
Mario Limonciello <mario.limonciello@amd.com>
ACPI: CPPC: Check present CPUs for determining _CPC is valid
Thomas Weißschuh <linux@weissschuh.net>
ACPI: battery: Add the ThinkPad "Not Charging" quirk
Marina Nikolic <Marina.Nikolic@amd.com>
amdgpu/pm: Make sysfs pm attributes as read-only for VFs
Hans de Goede <hdegoede@redhat.com>
mfd: intel_soc_pmic: Use CPU-id check instead of _HRV check to differentiate variants
Zongmin Zhou <zhouzongmin@kylinos.cn>
drm/amdgpu: fixup bad vram size on gmc v8
Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
drm/amdgpu: Don't inherit GEM object VMAs in child process
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
mmc: mtk-sd: Use readl_poll_timeout instead of open-coded polling
Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
Sudeep Holla <sudeep.holla@arm.com>
ACPICA: Fix wrong interpretation of PCC address
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPICA: Utilities: Avoid deleting the same object twice in a row
Mark Langsdorf <mlangsdo@redhat.com>
ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
Kyeong Yoo <kyeong.yoo@alliedtelesis.co.nz>
jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
Lucas Stach <l.stach@pengutronix.de>
drm/etnaviv: consider completed fence seqno in hang check
Antony Antony <antony.antony@secunet.com>
xfrm: rate limit SA mapping change message to user space
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
cpufreq: intel_pstate: Update cpuinfo.max_freq on HWP_CAP changes
Tedd Ho-Jeong An <tedd.an@intel.com>
Bluetooth: btintel: Add missing quirks and msft ext for legacy bootloader
Ben Greear <greearb@candelatech.com>
ath11k: Fix napi related hang
Randy Dunlap <rdunlap@infradead.org>
um: registers: Rename function names to avoid conflicts and build problems
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
block: check minor range in device_add_disk()
Hector Martin <marcan@marcan.st>
mmc: sdhci-pci-gli: GL9755: Support for CD/WP inversion on OF platforms
Luca Coelho <luciano.coelho@intel.com>
iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
Avraham Stern <avraham.stern@intel.com>
iwlwifi: mvm: fix AUX ROC removal
Ilan Peer <ilan.peer@intel.com>
iwlwifi: mvm: Fix calculation of frame length
Johannes Berg <johannes.berg@intel.com>
iwlwifi: remove module loading failure message
Johannes Berg <johannes.berg@intel.com>
iwlwifi: fix leaks/bad data after failed firmware load
Luca Coelho <luciano.coelho@intel.com>
iwlwifi: recognize missing PNVM data and then log filename
Changcheng Deng <deng.changcheng@zte.com.cn>
PM: AVS: qcom-cpr: Use div64_ul instead of do_div
Po-Hao Huang <phhuang@realtek.com>
rtw88: 8822c: update rx settings to prevent potential hw deadlock
Zekun Shen <bruceshenzk@gmail.com>
ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet()
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep()
Deren Wu <deren.wu@mediatek.com>
mt76: mt7921: fix network buffer leak by txs missing
Felix Fietkau <nbd@nbd.name>
mt76: mt7615: improve wmm index allocation
Xing Song <xing.song@mediatek.com>
mt76: do not pass the received frame with decryption error
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: connac: fix a theoretical NULL pointer dereference in mt76_connac_get_phy_mode
Ryder Lee <ryder.lee@mediatek.com>
mt76: mt7915: fix SMPS operation fail
Peter Chiu <chui-hao.chiu@mediatek.com>
mt76: mt7615: fix possible deadlock while mt7615_register_ext_phy()
Kai-Heng Feng <kai.heng.feng@canonical.com>
usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
cpufreq: Fix initialization of min and max frequency QoS requests
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
PM: runtime: Add safety net to supplier device release
Yang Shen <shenyang39@huawei.com>
crypto: hisilicon/qm - fix deadlock for remove driver
Weili Qian <qianweili@huawei.com>
crypto: hisilicon/hpre - fix memory leak in hpre_curve25519_src_init()
Peter Gonda <pgonda@google.com>
crypto: ccp - Move SEV_INIT retry for corrupted data
Thierry Reding <treding@nvidia.com>
arm64: tegra: Adjust length of CCPLEX cluster MMIO region
Biwen Li <biwen.li@nxp.com>
arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
Paul Moore <paul@paul-moore.com>
audit: ensure userspace is penalized the same as the kernel when under pressure
Jingwen Chen <Jingwen.Chen2@amd.com>
drm/amd/amdgpu: fix gmc bo pin count leak in SRIOV
Jingwen Chen <Jingwen.Chen2@amd.com>
drm/amd/amdgpu: fix psp tmr bo pin count leak in SRIOV
H. Nikolaus Schaller <hns@goldelico.com>
mmc: omap_hsmmc: Revert special init for wl1251
Ulf Hansson <ulf.hansson@linaro.org>
mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
Biju Das <biju.das.jz@bp.renesas.com>
mmc: tmio: reinit card irqs in reset routine
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()
Mikhail Rudenko <mike.rudenko@gmail.com>
media: rockchip: rkisp1: use device name for debugfs subdir name
Sean Young <sean@mess.org>
media: igorplugusb: receiver overflow should be reported
Alistair Francis <alistair@alistair23.me>
HID: i2c-hid-of: Expose the touchscreen-inverted properties
Alistair Francis <alistair@alistair23.me>
HID: quirks: Allow inverting the absolute X/Y values
Isabella Basso <isabbasso@riseup.net>
drm/amdgpu: fix amdgpu_ras_mca_query_error_status scope
Felix Kuehling <Felix.Kuehling@amd.com>
drm/amdkfd: Fix error handling in svm_range_add
Paolo Abeni <pabeni@redhat.com>
bpf: Do not WARN in bpf_warn_invalid_xdp_action()
David Gow <davidgow@google.com>
kunit: Don't crash if no parameters are generated
Suresh Kumar <surkumar@redhat.com>
net: bonding: debug: avoid printing debug logs when bond is not notifying peers
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_read_aux() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_end() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_panic() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Prevent severity computation from being instrumented
Borislav Petkov <bp@suse.de>
x86/mce: Allow instrumentation during task work queueing
Alex Elder <elder@linaro.org>
ARM: dts: qcom: sdx55: fix IPA interconnect definitions
Baochen Qiang <quic_bqiang@quicinc.com>
ath11k: Avoid false DEADLOCK warning reported by lockdep
Jagan Teki <jagan@amarulasolutions.com>
arm64: dts: rockchip: Fix Bluetooth on ROCK Pi 4 boards
Heiko Carstens <hca@linux.ibm.com>
selftests/ftrace: make kprobe profile testcase description unique
Iwona Winiarska <iwona.winiarska@intel.com>
gpio: aspeed-sgpio: Convert aspeed_sgpio.lock to raw_spinlock
Iwona Winiarska <iwona.winiarska@intel.com>
gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: phy: prefer 1000baseT over 1000baseKX
Wen Gong <quic_wgong@quicinc.com>
ath10k: drop beacon and probe response which leak from other channel
Antoine Tenart <atenart@kernel.org>
net-sysfs: update the queue counts in the unregistration path
Ping-Ke Shih <pkshih@realtek.com>
rtw89: don't kick off TX DMA if failed to write skb
Sebastian Gottschall <s.gottschall@dd-wrt.com>
ath10k: Fix tx hanging
Wen Gong <quic_wgong@quicinc.com>
ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
Wander Lairson Costa <wander@redhat.com>
rcutorture: Avoid soft lockup during cpu stall
Miri Korenblit <miriam.rachel.korenblit@intel.com>
iwlwifi: acpi: fix wgds rev 3 size
Shaul Triebitz <shaul.triebitz@intel.com>
iwlwifi: mvm: avoid clearing a just saved session protection id
Johannes Berg <johannes.berg@intel.com>
iwlwifi: mvm: synchronize with FW after multicast commands
Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
arm64: dts: renesas: Fix thermal bindings
Mika Westerberg <mika.westerberg@linux.intel.com>
thunderbolt: Runtime PM activate both ends of the device link
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: m920x: don't use stack on USB reads
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix "variable dereferenced before check 'asd'"
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
media: rcar-vin: Update format alignment constraints
James Hilliard <james.hilliard1@gmail.com>
media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
drm: rcar-du: Fix CRTC timings when CMM is used
Joerg Roedel <jroedel@suse.de>
x86/mm: Flush global TLB when switching to trampoline page-table
Xiongwei Song <sxwjean@gmail.com>
floppy: Add max size check for user space request
Neal Liu <neal_liu@aspeedtech.com>
usb: uhci: add aspeed ast2600 uhci support
Kishon Vijay Abraham I <kishon@ti.com>
arm64: dts: ti: j721e-main: Fix 'dtbs_check' in serdes_ln_ctrl node
Kishon Vijay Abraham I <kishon@ti.com>
arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
Vlad Zahorodnii <vlad.zahorodnii@kde.org>
drm/amd/display: Use oriented source size when checking cursor scaling
Thomas Zimmermann <tzimmermann@suse.de>
drm: Return error codes from struct drm_driver.gem_create_object
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
Hans de Goede <hdegoede@redhat.com>
ACPI: Change acpi_device_always_present() into acpi_device_override_status()
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Introduce a new placement for MOB page tables
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Release ttm memory if probe fails
Adam Ward <Adam.Ward.opensource@diasemi.com>
regulator: da9121: Prevent current limit change when enabled
Mansur Alisha Shaik <mansur@codeaurora.org>
media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions
Sriram R <quic_srirrama@quicinc.com>
ath11k: Avoid NULL ptr access during mgmt tx cleanup
Zekun Shen <bruceshenzk@gmail.com>
rsi: Fix out-of-bounds read in rsi_read_pkt()
Zekun Shen <bruceshenzk@gmail.com>
rsi: Fix use-after-free in rsi_rx_done_handler()
Zekun Shen <bruceshenzk@gmail.com>
mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
Ping-Ke Shih <pkshih@realtek.com>
rtw89: fix potentially access out of range of RF register array
Stephan Müller <smueller@chronox.de>
crypto: jitter - consider 32 LSB for APT
Chengfeng Ye <cyeaa@connect.ust.hk>
HSI: core: Fix return freed object in hsi_new_client
Hans de Goede <hdegoede@redhat.com>
gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
Fugang Duan <fugang.duan@nxp.com>
tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
Emil Renner Berthing <kernel@esmil.dk>
serial: 8250_dw: Add StarFive JH7100 quirk
Jiri Slaby <jirislaby@kernel.org>
mxser: increase buf_overrun if tty_insert_flip_char() fails
Jiri Slaby <jirislaby@kernel.org>
mxser: don't throttle manually
Jiri Slaby <jirislaby@kernel.org>
mxser: keep only !tty test in ISR
Martyn Welch <martyn.welch@collabora.com>
drm/bridge: megachips: Ensure both bridges are probed before registration
Martin Leung <Martin.Leung@amd.com>
drm/amd/display: add else to avoid double destroy clk_mgr
Danielle Ratson <danieller@nvidia.com>
mlxsw: pci: Add shutdown method in PCI driver
Jan Kiszka <jan.kiszka@siemens.com>
soc: ti: pruss: fix referenced node in error message
Alex Deucher <alexander.deucher@amd.com>
drm/amdgpu/display: set vblank_disable_immediate for DC
Yang Li <yang.lee@linux.alibaba.com>
drm/amd/display: check top_pipe_to_program pointer
Anilkumar Kolli <akolli@codeaurora.org>
ath11k: Fix mon status ring rx tlv processing
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
Marek Vasut <marex@denx.de>
soc: imx: gpcv2: Synchronously suspend MIX domains
Konrad Dybcio <konrad.dybcio@somainline.org>
arm64: dts: qcom: sm8350: Shorten camera-thermal-bottom name
Konrad Dybcio <konrad.dybcio@somainline.org>
arm64: dts: qcom: sm[68]350: Use interrupts-extended with pdc interrupts
Dinh Nguyen <dinguyen@kernel.org>
EDAC/synopsys: Use the quirk for version instead of ddr version
Yang Li <yang.lee@linux.alibaba.com>
ethernet: renesas: Use div64_ul instead of do_div
Andrii Nakryiko <andrii@kernel.org>
libbpf: Accommodate DWARF/compiler bug with duplicated structs
Zheyu Ma <zheyuma97@gmail.com>
media: b2c2: Add missing check in flexcop_pci_isr:
José Expósito <jose.exposito89@gmail.com>
HID: apple: Do not reset quirks when the Fn key is not found
José Expósito <jose.exposito89@gmail.com>
HID: magicmouse: Report battery level over USB
Hans de Goede <hdegoede@redhat.com>
drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
Brian Chen <brianchen118@gmail.com>
psi: Fix PSI_MEM_FULL state when tasks are in memstall and doing reclaim
Pavankumar Kondeti <quic_pkondeti@quicinc.com>
usb: gadget: f_fs: Use stream_open() for endpoint files
Haimin Zhang <tcs.kernel@gmail.com>
USB: ehci_brcm_hub_control: Improve port index sanitizing
Amjad Ouled-Ameur <aouledameur@baylibre.com>
usb: dwc3: meson-g12a: fix shared reset control use
Baochen Qiang <bqiang@codeaurora.org>
ath11k: Fix crash caused by uninitialized TX ring
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: handle errors at sh_css_create_isp_params()
Tiezhu Yang <yangtiezhu@loongson.cn>
bpf: Change value of MAX_TAIL_CALL_CNT from 32 to 33
Linus Lüssing <linus.luessing@c0d3.blue>
batman-adv: allow netlink usage in unprivileged containers
Wen Gong <wgong@codeaurora.org>
ath11k: enable IEEE80211_VHT_EXT_NSS_BW_CAPABLE if NSS ratio enabled
Wan Jiabing <wanjiabing@vivo.com>
ARM: shmobile: rcar-gen2: Add missing of_node_put()
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: check before deference asd variable
Hans de Goede <hdegoede@redhat.com>
media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: set per-device's default mode
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: fix try_fmt logic
Ben Skeggs <bskeggs@redhat.com>
drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
Neil Armstrong <narmstrong@baylibre.com>
drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
Zekun Shen <bruceshenzk@gmail.com>
ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
Andrii Nakryiko <andrii@kernel.org>
selftests/bpf: Fix bpf_object leak in skb_ctx selftest
Andrii Nakryiko <andrii@kernel.org>
selftests/bpf: Destroy XDP link correctly
Andrii Nakryiko <andrii@kernel.org>
selftests/bpf: Fix memory leaks in btf_type_c_dump() helper
Qiang Yu <yuq825@gmail.com>
drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
Andrii Nakryiko <andrii@kernel.org>
libbpf: Validate that .BTF and .BTF.ext sections contain data
Andrii Nakryiko <andrii@kernel.org>
libbpf: Improve sanity checking during BTF fix up
Andrii Nakryiko <andrii@kernel.org>
libbpf: Detect corrupted ELF symbols section
Alexander Aring <aahringo@redhat.com>
fs: dlm: filter user dlm messages for kernel locks
Andrey Grodzovsky <andrey.grodzovsky@amd.com>
drm/sched: Avoid lockdep spalt on killing a processes
Archie Pusaka <apusaka@chromium.org>
Bluetooth: Fix removing adv when processing cmd complete
Brian Norris <briannorris@chromium.org>
drm/panel: Delete panel on mipi_dsi_attach() failure
Wei Yongjun <weiyongjun1@huawei.com>
Bluetooth: Fix memory leak of hci device
Wei Yongjun <weiyongjun1@huawei.com>
Bluetooth: Fix debugfs entry leak in hci_register_dev()
Nguyen Dinh Phi <phind.uet@gmail.com>
Bluetooth: hci_sock: purge socket queues in the destruct() callback
Merlijn Wajer <merlijn@wizzup.org>
leds: lp55xx: initialise output direction from dts
Sicelo A. Mhlongo <absicsz@gmail.com>
ARM: dts: omap3-n900: Fix lp5523 for multi color
Sudeep Holla <sudeep.holla@arm.com>
mailbox: pcc: Handle all PCC subtypes correctly in pcc_mbox_irq
Sudeep Holla <sudeep.holla@arm.com>
mailbox: pcc: Avoid using the uninitialized variable 'dev'
Dan Carpenter <dan.carpenter@oracle.com>
mailbox: imx: Fix an IS_ERR() vs NULL bug
jason-jh.lin <jason-jh.lin@mediatek.com>
mailbox: fix gce_num of mt8192 driver data
Paul Cercueil <paul@crapouillou.net>
MIPS: compressed: Fix build with ZSTD compression
Stephen Boyd <swboyd@chromium.org>
of/fdt: Don't worry about non-memory region overlap for no-map
Baruch Siach <baruch@tkos.co.il>
of: base: Fix phandle argument length mismatch error message
Conor Dooley <conor.dooley@microchip.com>
clk: bm1880: remove kfrees on static allocations
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: fsl_asrc: refine the check of available clock divider
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: imx-card: improve the sound quality for low rate
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: imx-card: Fix mclk calculation issue for akcodec
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: imx-card: Need special setting for ak4497 on i.MX8MQ
Taniya Das <tdas@codeaurora.org>
clk: qcom: gcc-sc7280: Mark gcc_cfg_noc_lpass_clk always enabled
Kamal Heib <kamalheib1@gmail.com>
RDMA/cxgb4: Set queue pair state when being queried
Huang Pei <huangpei@loongson.cn>
MIPS: fix local_{add,sub}_return on MIPS64
Nathan Chancellor <nathan@kernel.org>
cxl/core: Remove cxld_const_init in cxl_decoder_alloc()
Christian A. Ehrhardt <lk@c--e.de>
ALSA: hda/cs8409: Fix Jack detection after resume
Christian A. Ehrhardt <lk@c--e.de>
ALSA: hda/cs8409: Increase delay during jack detection
Alyssa Ross <hi@alyssa.is>
ASoC: fsl_mqs: fix MODULE_ALIAS
Ammar Faizi <ammarfaizi2@gmail.com>
powerpc/xive: Add missing null check after calling kmalloc
Randy Dunlap <rdunlap@infradead.org>
mips: bcm63xx: add support for clk_set_parent()
Randy Dunlap <rdunlap@infradead.org>
mips: lantiq: add support for clk_set_parent()
Sameer Pujar <spujar@nvidia.com>
arm64: tegra: Remove non existent Tegra194 reset
Trevor Wu <trevor.wu@mediatek.com>
ASoC: mediatek: mt8195: correct pcmif BE dai control flow
Wei Yongjun <weiyongjun1@huawei.com>
misc: lattice-ecp3-config: Fix task hung when firmware load failed
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: samsung: idma: Check of ioremap return value
Tom Rix <trix@redhat.com>
iio: chemical: sunrise_co2: set val parameter only on success
Swapnil Jakhade <sjakhade@cadence.com>
phy: cadence: Sierra: Fix to get correct parent for mux clocks
Michael Ellerman <mpe@ellerman.id.au>
powerpc/64s: Use EMIT_WARN_ENTRY for SRR debug warnings
Michael Ellerman <mpe@ellerman.id.au>
powerpc/64s: Mask NIP before checking against SRR0
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: mediatek: Check for error clk pointer
Ryuta NAKANISHI <nakanishi.ryuta@socionext.com>
phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
Alan Stern <stern@rowland.harvard.edu>
scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
Pingfan Liu <kernelfans@gmail.com>
efi: apply memblock cap after memblock_add()
Zhen Lei <thunder.leizhen@huawei.com>
of: fdt: Aggregate the processing of "linux,usable-memory-range"
William Breathitt Gray <vilhelm.gray@gmail.com>
counter: 104-quad-8: Fix persistent enabled events bug
Trevor Wu <trevor.wu@mediatek.com>
ASoC: mediatek: mt8195: correct default value
Xiongfeng Wang <wangxiongfeng2@huawei.com>
iommu/iova: Fix race between FQ timeout and teardown
Cezary Rojewski <cezary.rojewski@intel.com>
ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: Remove useless irq affinity notifier
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: X2apic mode: mask/unmask interrupts on suspend/resume
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: X2apic mode: setup the INTX registers on mask/unmask
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: X2apic mode: re-enable after resume
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: Restore GA log/tail pointer on host resume
Arnd Bergmann <arnd@arndb.de>
dmaengine: pxa/mmp: stop referencing config->slave_id
Lukas Bulwahn <lukas.bulwahn@gmail.com>
mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
Lukas Bulwahn <lukas.bulwahn@gmail.com>
mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
Dillon Min <dillon.minfei@gmail.com>
clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell
Frank Rowand <frank.rowand@sony.com>
of: unittest: 64 bit dma address test requires arch support
Jim Quinlan <jim2101024@gmail.com>
of: unittest: fix warning on PowerPC frame size warning
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: rt5663: Handle device_property_read_u32_array error codes
Avihai Horon <avihaih@nvidia.com>
RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
Avihai Horon <avihaih@nvidia.com>
RDMA/core: Let ib_find_gid() continue search even after empty entry
Rob Clark <robdclark@chromium.org>
iommu/arm-smmu-qcom: Fix TTBR0 read
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/powermac: Add additional missing lockdep_register_key()
Thomas Gleixner <tglx@linutronix.de>
PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
Kamal Heib <kamalheib1@gmail.com>
RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
Bart Van Assche <bvanassche@acm.org>
scsi: ufs: Fix race conditions related to driver data
Bart Van Assche <bvanassche@acm.org>
scsi: core: Fix scsi_device_max_queue_depth()
Kai Vehmanen <kai.vehmanen@linux.intel.com>
ASoC: SOF: Intel: fix build issue related to CODEC_PROBE_ENTRIES
Hector Martin <marcan@marcan.st>
iommu/io-pgtable-arm: Fix table descriptor paddr formatting
Lu Baolu <baolu.lu@linux.intel.com>
iommu: Extend mutex lock scope in iommu_probe_device()
Jiasheng Jiang <jiasheng@iscas.ac.cn>
uio: uio_dmem_genirq: Catch the Exception
Stafford Horne <shorne@gmail.com>
openrisc: Add clone3 ABI wrapper
Todd Kjos <tkjos@google.com>
binder: avoid potential data leakage when copying txn
Todd Kjos <tkjos@google.com>
binder: fix handling of error during copy
Kees Cook <keescook@chromium.org>
char/mwave: Adjust io port register size
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
misc: at25: Make driver OF independent again
Lucas Tanure <tanureal@opensource.cirrus.com>
ASoC: amd: Fix dependency for SPI master
Takashi Iwai <tiwai@suse.de>
ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
Bixuan Cui <cuibixuan@linux.alibaba.com>
ALSA: oss: fix compile error when OSS_DEBUG is enabled
Waiman Long <longman@redhat.com>
clocksource: Avoid accidental unstable marking of clocksources
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/32s: Fix shift-out-of-bounds in KASAN init
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/modules: Don't WARN on first module allocation attempt
Athira Rajeev <atrajeev@linux.vnet.ibm.com>
powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC
Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
dt-bindings: thermal: Fix definition of cooling-maps contribution property
Thomas Gleixner <tglx@linutronix.de>
ALSA: hda: Make proper use of timecounter
Jack Wang <jinpu.wang@ionos.com>
RDMA/rtrs-clt: Fix the initial value of min_latency
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ASoC: codecs: wcd938x: add SND_SOC_WCD938_SDW to codec list instead
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
Peiwei Hu <jlu.hpw@foxmail.com>
powerpc/prom_init: Fix improper check of prom_getprop()
Richard Fitzgerald <rf@opensource.cirrus.com>
ASoC: cs42l42: Report initial jack state
Adam Ford <aford173@gmail.com>
clk: imx8mn: Fix imx8mn_clko1_sels
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
clk: renesas: rzg2l: propagate return value of_genpd_add_provider_simple()
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
clk: renesas: rzg2l: Check return value of pm_genpd_init()
Igor Pylypiv <ipylypiv@google.com>
scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
Kamal Heib <kamalheib1@gmail.com>
RDMA/hns: Validate the pkey index
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"
Takashi Iwai <tiwai@suse.de>
ALSA: hda: Fix potential deadlock at codec unbinding
Takashi Iwai <tiwai@suse.de>
ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
Takashi Iwai <tiwai@suse.de>
ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
Takashi Iwai <tiwai@suse.de>
ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible
Jan Kara <jack@suse.cz>
ext4: avoid trim error on fs with small groups
Taehee Yoo <ap420073@gmail.com>
amt: fix wrong return type of amt_send_membership_update()
Pavel Skripkin <paskripkin@gmail.com>
net: mcs7830: handle usb read errors properly
Edwin Peer <edwin.peer@broadcom.com>
bnxt_en: use firmware provided max timeout for messages
Nathan Chancellor <nathan@kernel.org>
iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
Paul Blakey <paulb@nvidia.com>
net: openvswitch: Fix ct_state nat flags for conns arriving from tc
Florian Westphal <fw@strlen.de>
netfilter: egress: avoid a lockdep splat
Dominik Brodowski <linux@dominikbrodowski.net>
pcmcia: fix setting of kthread task states
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
can: rcar_canfd: rcar_canfd_channel_probe(): make sure we free CAN network device
Jiasheng Jiang <jiasheng@iscas.ac.cn>
can: xilinx_can: xcan_probe(): check for error irq
Marc Kleine-Budde <mkl@pengutronix.de>
can: softing: softing_startstop(): fix set but not used variable warning
Christophe Jaillet <christophe.jaillet@wanadoo.fr>
tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
Chen Jun <chenjun102@huawei.com>
tpm: add request_locality before write TPM_INT_ENABLE
Marc Kleine-Budde <mkl@pengutronix.de>
can: mcp251xfd: add missing newline to printed strings
Sunil Goutham <sgoutham@marvell.com>
octeontx2-af: Fix interrupt name strings
Vladimir Oltean <vladimir.oltean@nxp.com>
net: mscc: ocelot: fix incorrect balancing with down LAG ports
Fabio Estevam <festevam@denx.de>
regmap: Call regmap_debugfs_exit() prior to _init()
Dan Carpenter <dan.carpenter@oracle.com>
netrom: fix api breakage in nr_setsockopt()
Dan Carpenter <dan.carpenter@oracle.com>
ax25: uninitialized variable in ax25_setsockopt()
Rakesh Babu Saladi <rsaladi2@marvell.com>
octeontx2-nicvf: Free VF PTP resources.
Subbaraya Sundeep <sbhatta@marvell.com>
octeontx2-af: Increment ptp refcount before use
Miaoqian Lin <linmq006@gmail.com>
spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
Mat Martineau <mathew.j.martineau@linux.intel.com>
mptcp: Check reclaim amount before reducing allocation
Geliang Tang <geliang.tang@suse.com>
mptcp: fix a DSS option writing error
Matthieu Baerts <matthieu.baerts@tessares.net>
mptcp: fix opt size when sending DSS + MP_FAIL
Paolo Abeni <pabeni@redhat.com>
mptcp: fix per socket endpoint accounting
Dan Carpenter <dan.carpenter@oracle.com>
Bluetooth: hci_sock: fix endian bug in hci_sock_setsockopt()
Dan Carpenter <dan.carpenter@oracle.com>
Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
Zizhuang Deng <sunsetdzz@gmail.com>
lib/mpi: Add the return value check of kcalloc()
Moshe Shemesh <moshe@nvidia.com>
net/mlx5: Set command entry semaphore up once got index free
Maor Dickman <maord@nvidia.com>
net/mlx5e: Sync VXLAN udp ports during uplink representor profile change
Shay Drory <shayd@nvidia.com>
net/mlx5: Fix access to sf_dev_table on allocation failure
Paul Blakey <paulb@nvidia.com>
net/mlx5e: Fix matching on modified inner ip_ecn bits
Aya Levin <ayal@nvidia.com>
Revert "net/mlx5e: Block offload of outer header csum for GRE tunnel"
Aya Levin <ayal@nvidia.com>
Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
Maor Dickman <maord@nvidia.com>
net/mlx5e: Don't block routes with nexthop objects in SW
Maor Dickman <maord@nvidia.com>
net/mlx5e: Fix wrong usage of fib_info_nh when routes with nexthop objects are used
Dima Chumak <dchumak@nvidia.com>
net/mlx5e: Fix nullptr on deleting mirroring rule
Aya Levin <ayal@nvidia.com>
net/mlx5e: Fix page DMA map/unmap attributes
Huang Rui <ray.huang@amd.com>
x86, sched: Fix undefined reference to init_freq_invariance_cppc() build error
Vinod Koul <vkoul@kernel.org>
spi: qcom: geni: handle timeout for gpi mode
Vinod Koul <vkoul@kernel.org>
spi: qcom: geni: set the error code for gpi transfer
Valentin Caron <valentin.caron@foss.st.com>
serial: stm32: move tx dma terminate DMA to shutdown
Alyssa Ross <hi@alyssa.is>
serial: liteuart: fix MODULE_ALIAS
Miaoqian Lin <linmq006@gmail.com>
drivers/firmware: Add missing platform_device_put() in sysfb_create_simplefb
Michal Suchanek <msuchanek@suse.de>
debugfs: lockdown: Allow reading debugfs files that are not world readable
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
Pavel Hofman <pavel.hofman@ivitera.com>
usb: gadget: u_audio: Subdevice 0 for capture ctls
John Keeping <john@metanate.com>
usb: gadget: u_audio: fix calculations for small bInterval
John Keeping <john@metanate.com>
usb: dwc2: gadget: initialize max_speed from params
Dinh Nguyen <dinguyen@kernel.org>
usb: dwc2: do not gate off the hardware if it does not support clock gating
Miaoqian Lin <linmq006@gmail.com>
usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
Wen Gu <guwen@linux.alibaba.com>
net/smc: Reset conn->lgr when link group registration fails
Miaoqian Lin <linmq006@gmail.com>
Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
Jiasheng Jiang <jiasheng@iscas.ac.cn>
Bluetooth: hci_bcm: Check for error irq
Jiasheng Jiang <jiasheng@iscas.ac.cn>
fsl/fman: Check for null pointer after calling devm_ioremap
Jiasheng Jiang <jiasheng@iscas.ac.cn>
staging: greybus: audio: Check null pointer
Dan Carpenter <dan.carpenter@oracle.com>
rocker: fix a sleeping in atomic bug
Eric Dumazet <edumazet@google.com>
ppp: ensure minimum packet size in ppp_write()
Miroslav Lichvar <mlichvar@redhat.com>
net: fix SOF_TIMESTAMPING_BIND_PHC to work with multiple sockets
Florian Westphal <fw@strlen.de>
netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
Pablo Neira Ayuso <pablo@netfilter.org>
netfilter: nft_payload: do not update layer 4 checksum when mangling fragments
Qiang Wang <wangqiang.wq.frank@bytedance.com>
libbpf: Use probe_name for legacy kprobe
Kuniyuki Iwashima <kuniyu@amazon.co.jp>
bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
Kris Van Hees <kris.van.hees@oracle.com>
bpf: Fix verifier support for validation of async callbacks
Daniel Borkmann <daniel@iogearbox.net>
bpf: Don't promote bogus looking registers after null check.
John Fastabend <john.fastabend@gmail.com>
bpf, sockmap: Fix double bpf_prog_put on error case in map_link
John Fastabend <john.fastabend@gmail.com>
bpf, sockmap: Fix return codes from tcp_bpf_recvmsg_parser()
Hou Tao <houtao1@huawei.com>
bpf, arm64: Use emit_addr_mov_i64() for BPF_PSEUDO_FUNC
Xin Xiong <xiongx18@fudan.edu.cn>
netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
Vladimir Oltean <vladimir.oltean@nxp.com>
net: dsa: fix incorrect function pointer check for MRP ring roles
Daniel Golle <daniel@makrotopia.org>
net: ethernet: mtk_eth_soc: fix return values and refactor MDIO ops
Raed Salem <raeds@nvidia.com>
net/xfrm: IPsec tunnel mode fix inner_ipproto setting in sec_path
Jiasheng Jiang <jiasheng@iscas.ac.cn>
power: reset: mt6397: Check for null res pointer
Zhou Qingyang <zhou1615@umn.edu>
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
Zhou Qingyang <zhou1615@umn.edu>
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
Hans de Goede <hdegoede@redhat.com>
ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
José Expósito <jose.exposito89@gmail.com>
drm/amd/display: fix dereference before NULL check
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
serial: 8250_bcm7271: Propagate error codes from brcmuart_probe()
Haimin Zhang <tcs_kernel@tencent.com>
bpf: Add missing map_get_next_key method to bloom filter map.
Pavel Begunkov <asml.silence@gmail.com>
io_uring: remove double poll on poll update
Zhang Zixun <zhang133010@icloud.com>
x86/mce/inject: Avoid out-of-bounds write when setting flags
Arseny Demidov <arsdemal@gmail.com>
hwmon: (mr75203) fix wrong power-up delay value
Marijn Suijten <marijn.suijten@somainline.org>
regulator: qcom-labibb: OCP interrupts are not a failure while disabled
Ming Lei <ming.lei@redhat.com>
block: null_blk: only set set->nr_maps as 3 if active poll_queues is > 0
Dan Carpenter <dan.carpenter@oracle.com>
crypto: octeontx2 - prevent underflow in get_cores_bmap()
Nathan Chancellor <nathan@kernel.org>
x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
Panicker Harish <quic_pharish@quicinc.com>
Bluetooth: hci_qca: Stop IBS timer during BT OFF
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: mt7921: fix a possible race enabling/disabling runtime-pm
Baochen Qiang <quic_bqiang@quicinc.com>
ath11k: Fix unexpected return buffer manager error for QCA6390
Clément Léger <clement.leger@bootlin.com>
software node: fix wrong node passed to find nargs_prop
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Respect enabled-strings in set_brightness
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Override default length with qcom,enabled-strings
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Fix off-by-one maximum with default num_strings
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Pass number of elements to read to read_u32_array
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Validate enabled string indices in DT
Paul Chaignon <paul@isovalent.com>
bpftool: Enable line buffering for stdout
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: L2CAP: Fix using wrong mode
Johannes Berg <johannes.berg@intel.com>
um: virtio_uml: Fix time-travel external time propagation
Johannes Berg <johannes.berg@intel.com>
lib/logic_iomem: Fix operation on 32-bit
Johannes Berg <johannes.berg@intel.com>
lib/logic_iomem: Fix 32-bit build
Johannes Berg <johannes.berg@intel.com>
um: virt-pci: Fix 32-bit compile
Johannes Berg <johannes.berg@intel.com>
um: rename set_signals() to um_set_signals()
Johannes Berg <johannes.berg@intel.com>
um: fix ndelay/udelay defines
Bernard Zhao <bernard@vivo.com>
selinux: fix potential memleak in selinux_add_opt()
Christoph Hellwig <hch@lst.de>
block: fix error unwinding in device_add_disk
Sergey Shtylyov <s.shtylyov@omp.ru>
mmc: meson-mx-sdio: add IRQ check
Sergey Shtylyov <s.shtylyov@omp.ru>
mmc: meson-mx-sdhc: add IRQ check
Avraham Stern <avraham.stern@intel.com>
iwlwifi: mvm: set protected flag only for NDP ranging
Avraham Stern <avraham.stern@intel.com>
iwlwifi: mvm: perform 6GHz passive scan after suspend
Nathan Errera <nathan.errera@intel.com>
iwlwifi: mvm: test roc running status bits before removing the sta
Luca Coelho <luciano.coelho@intel.com>
iwlwifi: don't pass actual WGDS revision number in table_revision
Johannes Berg <johannes.berg@intel.com>
iwlwifi: mvm: fix 32-bit build in FTM
Kai-Heng Feng <kai.heng.feng@canonical.com>
rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE
Ping-Ke Shih <pkshih@realtek.com>
rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC
Dan Carpenter <dan.carpenter@oracle.com>
wilc1000: fix double free error in probe()
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921s: fix suspend error with enlarging mcu timeout value
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: connac: introduce MCU_UNI_CMD macro
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: connac: remove MCU_FW_PREFIX bit
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: connac: align MCU_EXT definitions with 7915 driver
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: connac: introduce MCU_EXT macros
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921: fix possible resume failure
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: connac: fix last_chan configuration in mt76_connac_mcu_rate_txpower_band
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921s: fix possible kernel crash due to invalid Rx count
Shayne Chen <shayne.chen@mediatek.com>
mt76: mt7921: use correct iftype data on 6GHz cap init
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921s: fix the device cannot sleep deeply in suspend
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921: move mt76_connac_mcu_set_hif_suspend to bus-related files
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: mt7921: fix possible NULL pointer dereference in mt7921_mac_write_txwi
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: fix possible OOB issue in mt76_calculate_default_rate
Lorenzo Bianconi <lorenzo@kernel.org>
mt76: debugfs: fix queue reporting for mt76-usb
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921: fix MT7921E reset failure
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921: drop offload_flags overwritten
Marek Behún <kabel@kernel.org>
ARM: dts: armada-38x: Add generic compatible to UART nodes
Robert Marko <robert.marko@sartura.hr>
arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
Robert Marko <robert.marko@sartura.hr>
arm64: dts: marvell: cn9130: add GPIO and SPI aliases
Wei Yongjun <weiyongjun1@huawei.com>
usb: ftdi-elan: fix memory leak on device disconnect
Andre Przywara <andre.przywara@arm.com>
ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
Antony Antony <antony.antony@secunet.com>
xfrm: state and policy should fail if XFRMA_IF_ID 0
Antony Antony <antony.antony@secunet.com>
xfrm: interface with if_id 0 should return error
Jernej Skrabec <jernej.skrabec@gmail.com>
media: hantro: Fix probe func error path
Robin Murphy <robin.murphy@arm.com>
drm/tegra: vic: Fix DMA API misuse
Thierry Reding <treding@nvidia.com>
drm/tegra: gr2d: Explicitly control module reset
Arnd Bergmann <arnd@arndb.de>
gpu: host1x: select CONFIG_DMA_SHARED_BUFFER
Stephen Boyd <swboyd@chromium.org>
drm/bridge: ti-sn65dsi86: Set max register for regmap
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drm/msm/dpu: fix safe status debugfs file
Baruch Siach <baruch@tkos.co.il>
arm64: dts: qcom: ipq6018: Fix gpio-ranges property
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
arm64: dts: qcom: c630: Fix soundcard setup
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Add missing PTP via UDP rules
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Allow PTP P2P measurements on blocked ports
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Add STP forwarding rule
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Fix insertion of static FDB entries
Zhou Qingyang <zhou1615@umn.edu>
ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
Jiasheng Jiang <jiasheng@iscas.ac.cn>
media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
Wang Hai <wanghai38@huawei.com>
media: msi001: fix possible null-ptr-deref in msi001_probe()
Anton Vasilyev <vasilyev@ispras.ru>
media: dw2102: Fix use after free
Robin Murphy <robin.murphy@arm.com>
perf/arm-cmn: Fix CPU hotplug unregistration
Christian Lamparter <chunkeey@gmail.com>
ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
Daniel Latypov <dlatypov@google.com>
kunit: tool: fix --json output for skipped tests
Hector Martin <marcan@marcan.st>
spi: Fix incorrect cs_setup delay handling
Rameshkumar Sundaram <quic_ramess@quicinc.com>
ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
Alexei Starovoitov <ast@kernel.org>
libbpf: Fix gen_loader assumption on number of programs.
Weili Qian <qianweili@huawei.com>
crypto: hisilicon/qm - fix incorrect return value of hisi_qm_resume()
Herbert Xu <herbert@gondor.apana.org.au>
crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix bugs and crash in tests
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix lrw chaining mode
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix double pm exit
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - check early input data
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix CTR counter carry
Jakub Kicinski <kuba@kernel.org>
selftests: harness: avoid false negatives if test has no ASSERTs
Anders Roxell <anders.roxell@linaro.org>
selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
Shuyi Cheng <chengshuyi@linux.alibaba.com>
libbpf: Add "bool skipped" to struct bpf_map
Kees Cook <keescook@chromium.org>
x86/uaccess: Move variable into switch case statement
Eric Dumazet <edumazet@google.com>
xfrm: fix a small bug in xfrm_sa_len()
Brian Norris <briannorris@chromium.org>
mwifiex: Fix possible ABBA deadlock
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drm/msm/dsi: fix initialization in the bonded DSI case
Loic Poulain <loic.poulain@linaro.org>
wcn36xx: Fix max channels retrieval
Frederic Weisbecker <frederic@kernel.org>
rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
Jackie Liu <liuyun01@kylinos.cn>
drm/msm/dp: displayPort driver need algorithm rational
Rob Clark <robdclark@chromium.org>
drm/msm/gpu: Don't allow zero fence_id
Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
drm/amd/display: Fix out of bounds access on DNC31 stream encoder regs
Wayne Lin <Wayne.Lin@amd.com>
drm/amd/display: Fix bug in debugfs crc_win_update entry
Mark Chen <mark-yw.chen@mediatek.com>
Bluetooth: btusb: Handle download_firmware failure cases
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: MGMT: Use hci_dev_test_and_{set,clear}_flag
Seevalamuthu Mariappan <quic_seevalam@quicinc.com>
ath11k: Fix QMI file type enum value
Fabio Estevam <festevam@denx.de>
ath10k: Fix the MTU size on QCA9377 SDIO
Tudor Ambarus <tudor.ambarus@microchip.com>
mtd: spi-nor: Fix mtd size for s3an flashes
Tudor Ambarus <tudor.ambarus@microchip.com>
mtd: spi-nor: Get rid of nor->page_size
Li Hua <hucool.lihua@huawei.com>
sched/rt: Try to restart rt period timer when rt runtime exceeded
Lv Yunlong <lyl2019@mail.ustc.edu.cn>
wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
Robert Schlabbach <robert_s@gmx.net>
media: si2157: Fix "warm" tuner state detection
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
Zhou Qingyang <zhou1615@umn.edu>
media: dib8000: Fix a memleak in dib8000_init()
Ricardo Ribalda <ribalda@chromium.org>
media: uvcvideo: Avoid returning invalid controls
Ricardo Ribalda <ribalda@chromium.org>
media: uvcvideo: Avoid invalid memory access
Colin Ian King <colin.king@intel.com>
media: uvcvideo: Fix memory leak of object map on error exit path
Alexander Lobakin <alexandr.lobakin@intel.com>
samples: bpf: Fix 'unknown warning group' build warning on Clang
Alexander Lobakin <alexandr.lobakin@intel.com>
samples: bpf: Fix xdp_sample_user.o linking with Clang
Andrii Nakryiko <andrii@kernel.org>
samples/bpf: Clean up samples/bpf build failes
Hans de Goede <hdegoede@redhat.com>
platform/x86: wmi: Fix driver->notify() vs ->probe() race
Hans de Goede <hdegoede@redhat.com>
platform/x86: wmi: Replace read_takes_no_args with a flags field
Reiji Watanabe <reijiw@google.com>
arm64: mte: DC {GVA,GZVA} shouldn't be used when DCZID_EL0.DZP == 1
Reiji Watanabe <reijiw@google.com>
arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
drm: rcar-du: crtc: Support external DSI dot clock
Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
drm: rcar-du: Add DSI support to rcar_du_output_name
Kajol Jain <kjain@linux.ibm.com>
bpf: Remove config check to enable bpf support for branch records
Hou Tao <houtao1@huawei.com>
bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
Alexei Starovoitov <ast@kernel.org>
bpf: Adjust BTF log size limit.
Vincent Donnefort <vincent.donnefort@arm.com>
sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
Vincent Donnefort <vincent.donnefort@arm.com>
sched/fair: Fix detection of per-CPU kthreads waking a task
Maxim Mikityanskiy <maximmi@nvidia.com>
bpf: Fix the test_task_vma selftest to support output shorter than 1 kB
Sean Wang <sean.wang@mediatek.com>
Bluetooth: btmtksdio: fix resume failure
Yang Yingliang <yangyingliang@huawei.com>
staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
Yang Yingliang <yangyingliang@huawei.com>
staging: rtl8192e: return error code from rtllib_softmac_init()
Tasos Sahanidis <tasos@tasossah.com>
floppy: Fix hang in watchdog when disk is ejected
Michael Walle <michael@walle.cc>
mtd: core: provide unique name for nvmem device
Lino Sanfilippo <LinoSanfilippo@gmx.de>
serial: amba-pl011: do not request memory region twice
Lizhi Hou <lizhi.hou@xilinx.com>
tty: serial: uartlite: allow 64 bit address
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j721e: Fix the L2 cache sets
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j7200: Fix the L2 cache sets
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-am642: Fix the L2 cache sets
Gaurav Jain <gaurav.jain@nxp.com>
crypto: caam - save caam memory to support crypto engine retry mechanism.
Ming Lei <ming.lei@redhat.com>
null_blk: allow zero poll queues
Alexei Starovoitov <ast@kernel.org>
libbpf: Clean gen_loader's attach kind.
Zhou Qingyang <zhou1615@umn.edu>
drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
Zhou Qingyang <zhou1615@umn.edu>
drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode()
Paul Gerber <Paul.Gerber@tq-group.com>
thermal/drivers/imx8mm: Enable ADC when enabling monitor
Dan Carpenter <dan.carpenter@oracle.com>
pinctrl: mediatek: add a check for error in mtk_pinconf_bias_get_rsel()
Dan Carpenter <dan.carpenter@oracle.com>
pinctrl: mediatek: uninitialized variable in mtk_pctrl_show_one_pin()
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPI: EC: Rework flushing of EC work while suspended to idle
William Kucharski <william.kucharski@oracle.com>
cgroup: Trace event cgroup id fields should be u64
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Fail to initialize on broken configs
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Remove the deprecated lower mem limit
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
arm64: dts: qcom: msm8916: fix MMC controller aliases
Jun Miao <jun.miao@intel.com>
rcu: Avoid alloc_pages() when recording stack
Mark Rutland <mark.rutland@arm.com>
powerpc: Avoid discarding flags in system_call_exception()
Florian Westphal <fw@strlen.de>
netfilter: bridge: add support for pppoe filtering
Jesper Dangaard Brouer <brouer@redhat.com>
igc: AF_XDP zero-copy metadata adjust breaks SKBs on XDP_PASS
Oleksij Rempel <linux@rempel-privat.de>
thermal/drivers/imx: Implement runtime PM support
Yang Yingliang <yangyingliang@huawei.com>
net: lantiq: fix missing free_netdev() on error in ltq_etop_probe()
Bhupesh Sharma <bhupesh.sharma@linaro.org>
net: stmmac: Add platform level debug register dump feature
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
media: venus: core: Fix a potential NULL pointer dereference in an error handling path
Mansur Alisha Shaik <mansur@codeaurora.org>
media: venus: correct low power frequency calculation for encoder
Philipp Zabel <p.zabel@pengutronix.de>
media: coda: fix CODA960 JPEG encoder buffer overflow
Chen-Yu Tsai <wenst@chromium.org>
media: hantro: Hook up RK3399 JPEG encoder output
Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
media: mtk-vcodec: Fix an error handling path in 'mtk_vcodec_probe()'
Yang Yingliang <yangyingliang@huawei.com>
media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
Fabio Estevam <festevam@denx.de>
media: imx-pxp: Initialize the spinlock prior to using it
Suresh Udipi <sudipi@jp.adit-jv.com>
media: rcar-csi2: Correct the selection of hsfreqrange
Hans de Goede <hdegoede@redhat.com>
media: i2c: ov8865: Fix lockdep error
Daniel Scally <djrscally@gmail.com>
media: i2c: Re-order runtime pm initialisation
Eugen Hristev <eugen.hristev@microchip.com>
media: i2c: imx274: fix s_frame_interval runtime resume not requested
Alan Maguire <alan.maguire@oracle.com>
libbpf: Silence uninitialized warning/error in btf_dump_dump_type_data
Jan Kara <jack@suse.cz>
bfq: Do not let waker requests skip proper accounting
Claudiu Beznea <claudiu.beznea@microchip.com>
mfd: atmel-flexcom: Use .resume_noirq
Claudiu Beznea <claudiu.beznea@microchip.com>
mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
Alvin Šipraga <alsi@bang-olufsen.dk>
net: dsa: rtl8365mb: set RGMII RX delay in steps of 0.3 ns
Joey Gouly <joey.gouly@arm.com>
pinctrl: apple: return an error if pinmux is missing in the DT
Tudor Ambarus <tudor.ambarus@microchip.com>
tty: serial: atmel: Call dma_async_issue_pending()
Tudor Ambarus <tudor.ambarus@microchip.com>
tty: serial: atmel: Check return code of dmaengine_submit()
Peng Fan <peng.fan@nxp.com>
arm64: dts: ti: k3-j721e: correct cache-sets info
Anilkumar Kolli <akolli@codeaurora.org>
ath11k: Use host CE parameters for CE interrupts configuration
Giovanni Cabiddu <giovanni.cabiddu@intel.com>
crypto: qat - fix undetected PFVF timeout in ACK loop
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix using invalidated memory in bpf_linker
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix glob_syms memory leak in bpf_linker
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix potential misaligned memory access in btf_ext__new()
Andrii Nakryiko <andrii@kernel.org>
tools/resolve_btf_ids: Close ELF file on error
Andrii Nakryiko <andrii@kernel.org>
libbpf: Load global data maps lazily on legacy kernels
Dillon Min <dillon.minfei@gmail.com>
ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco
Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
cpufreq: qcom-hw: Fix probable nested interrupt handling
Adam Ford <aford173@gmail.com>
soc: imx: gpcv2: keep i.MX8MM VPU-H1 bus clock active
Lukasz Luba <lukasz.luba@arm.com>
cpufreq: qcom-cpufreq-hw: Update offline CPUs per-cpu thermal pressure
George G. Davis <davis.george@siemens.com>
mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
Prasad Malisetty <pmaliset@codeaurora.org>
arm64: dts: qcom: sc7280: Fix 'interrupt-map' parent address cells
Prasad Malisetty <pmaliset@codeaurora.org>
arm64: dts: qcom: sc7280: Fix incorrect clock name
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_skcipher_register_one
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_ahash_register_one
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_aead_register_one
Wei Yongjun <weiyongjun1@huawei.com>
crypto: keembay-ocs-ecc - Fix error return code in kmb_ocs_ecc_probe()
Tudor Ambarus <tudor.ambarus@microchip.com>
crypto: atmel-aes - Reestablish the correct tfm context at dequeue
Wang Hai <wanghai38@huawei.com>
media: dmxdev: fix UAF when dvb_register_device() fails
Biju Das <biju.das.jz@bp.renesas.com>
arm64: dts: renesas: cat875: Add rx/tx delays
Seevalamuthu Mariappan <quic_seevalam@quicinc.com>
ath11k: add hw_param for wakeup_mhi
P Praneesh <ppranees@codeaurora.org>
ath11k: allocate dst ring descriptors from cacheable memory
Wen Gong <wgong@codeaurora.org>
ath11k: set correct NL80211_FEATURE_DYNAMIC_SMPS for WCN6855
Dan Carpenter <dan.carpenter@oracle.com>
drm/vboxvideo: fix a NULL vs IS_ERR() check
Jeremy Kerr <jk@codeconstruct.com.au>
mctp/test: Update refcount checking in route fragment tests
Tirthendu Sarkar <tirthendu.sarkar@intel.com>
selftests/bpf: Fix xdpxceiver failures for no hugepages
Lyude Paul <lyude@redhat.com>
drm/dp: Don't read back backlight mode in drm_edp_backlight_enable()
Alexander Aring <aahringo@redhat.com>
fs: dlm: fix build with CONFIG_IPV6 disabled
Sebastian Andrzej Siewior <bigeasy@linutronix.de>
kernel/locking: Use a pointer in ww_mutex_trylock().
Jens Wiklander <jens.wiklander@linaro.org>
tee: fix put order in teedev_close_context()
oujiefeng <oujiefeng@huawei.com>
spi: hisi-kunpeng: Fix the debugfs directory name incorrect
Karthikeyan Kathirvel <kathirve@codeaurora.org>
ath11k: reset RSN/WPA present state for open BSS
Karthikeyan Kathirvel <kathirve@codeaurora.org>
ath11k: clear the keys properly via DISABLE_KEY
Sven Eckelmann <sven@narfation.org>
ath11k: Fix ETSI regd with weather radar overlap
Jackie Liu <liuyun01@kylinos.cn>
Bluetooth: fix uninitialized variables notify_evt
Pavel Skripkin <paskripkin@gmail.com>
Bluetooth: stop proccessing malicious adv data
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
Alexander Aring <aahringo@redhat.com>
fs: dlm: don't call kernel_getpeername() in error_report()
Christian Hewitt <christianshewitt@gmail.com>
arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
Christian Hewitt <christianshewitt@gmail.com>
arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
Alexander Stein <alexander.stein@mailbox.org>
arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
Alexander Stein <alexander.stein@mailbox.org>
arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
Jammy Huang <jammy_huang@aspeedtech.com>
media: aspeed: Update signal status immediately to ensure sane hw state
Dongliang Mu <mudongliangabcd@gmail.com>
media: em28xx: fix memory leak in em28xx_init_dev
Jammy Huang <jammy_huang@aspeedtech.com>
media: aspeed: fix mode-detect always time out at 2nd run
Dan Carpenter <dan.carpenter@oracle.com>
media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: fix enum formats logic
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix ifdefs in sh_css.c
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid()
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: do not use err var when checking port validity for ISP2400
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix inverted logic in buffers_needed()
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities()
Dan Carpenter <dan.carpenter@oracle.com>
media: ipu3-cio2: fix error code in cio2_bridge_connect_sensor()
Dillon Min <dillon.minfei@gmail.com>
media: videobuf2: Fix the size printk format
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
Quentin Monnet <quentin@isovalent.com>
bpftool: Fix memory leak in prog_dump()
Rameshkumar Sundaram <ramess@codeaurora.org>
ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
Benjamin Li <benl@squareup.com>
wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
Benjamin Li <benl@squareup.com>
wcn36xx: populate band before determining rate on RX
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Put DXE block into reset before freeing memory
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Release DMA channel descriptor allocations
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Fix DMA channel enable/disable cycle
Andrii Nakryiko <andrii@kernel.org>
libbpf: Free up resources used by inner map definition
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix non-C89 loop variable declaration in gen_loader.c
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Enable the scrambler on reconnection
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix section counting logic
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
Benjamin Li <benl@squareup.com>
wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
Colin Ian King <colin.king@intel.com>
drm/virtio: fix another potential integer overflow on shift of a int
Colin Ian King <colin.king@intel.com>
drm/virtio: fix potential integer overflow on shift of a int
Maxime Ripard <maxime@cerno.tech>
drm/bridge: sn65dsi83: Fix bridge removal
Maxime Ripard <maxime@cerno.tech>
drm/vc4: crtc: Make sure the HDMI controller is powered when disabling
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Rework the pre_crtc_configure error handling
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Make sure the controller is powered up during bind
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Make sure the controller is powered in detect
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Move the HSM clock enable to runtime_pm
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Set a default HSM rate
Maxime Ripard <maxime@cerno.tech>
clk: bcm-2835: Remove rounding up the dividers
Maxime Ripard <maxime@cerno.tech>
clk: bcm-2835: Pick the closest clock rate
Wang Hai <wanghai38@huawei.com>
Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
Soenke Huster <soenke.huster@eknoes.de>
Bluetooth: virtio_bt: fix memory leak in virtbt_rx_handle()
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Disable PLL clock on bind error
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Fix unbalanced clock on probe error
Brian Norris <briannorris@chromium.org>
drm/panel: innolux-p079zca: Delete panel on attach() failure
Brian Norris <briannorris@chromium.org>
drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
Wang Hai <wanghai38@huawei.com>
drm: fix null-ptr-deref in drm_dev_init_release()
Dan Carpenter <dan.carpenter@oracle.com>
drm/bridge: display-connector: fix an uninitialized pointer in probe()
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: L2CAP: Fix not initializing sk_peer_pid
Tedd Ho-Jeong An <tedd.an@intel.com>
Bluetooth: mgmt: Fix Experimental Feature Changed event
Tedd Ho-Jeong An <tedd.an@intel.com>
Bluetooth: hci_vhci: Fix to set the force_wakeup value
xinhui pan <xinhui.pan@amd.com>
drm/ttm: Put BO in its memory manager's lru list
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Reconfigure hardware on resume()
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Hold pm-runtime across bind/unbind
Gang Li <ligang.bdlg@bytedance.com>
shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
Wen Gong <quic_wgong@quicinc.com>
ath11k: add string type to search board data in board-2.bin for WCN6855
Baoquan He <bhe@redhat.com>
mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages
Baoquan He <bhe@redhat.com>
dma/pool: create dma atomic pool only if dma zone has managed pages
Baoquan He <bhe@redhat.com>
mm_zone: add function to check if managed dma zone exists
Yifeng Li <tomli@tomli.me>
PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
Thomas Hellström <thomas.hellstrom@linux.intel.com>
dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
Peng Hao <flyingpenghao@gmail.com>
virtio/virtio_mem: handle a possible NULL as a memcpy parameter
Hao Xu <haoxu@linux.alibaba.com>
io_uring: fix no lock protection for ctx->cq_extra
Dmitry Osipenko <digetx@gmail.com>
drm/tegra: Add back arm_iommu_detach_device()
Dmitry Osipenko <digetx@gmail.com>
gpu: host1x: Add back arm_iommu_detach_device()
Yunfei Wang <yf.wang@mediatek.com>
iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
Hari Prasath <Hari.PrasathGE@microchip.com>
ARM: dts: at91: update alternate function of signal PD20
D Scott Phillips <scott@os.amperecomputing.com>
arm64: errata: Fix exec handling in erratum 1418040 workaround
Sumeet Pawnikar <sumeet.r.pawnikar@intel.com>
thermal/drivers/int340x: Fix RFIM mailbox write commands
Dan Williams <dan.j.williams@intel.com>
cxl/pmem: Fix module reload vs workqueue state
Dan Williams <dan.j.williams@intel.com>
cxl/pmem: Fix reference counting for delayed work
Manivannan Sadhasivam <mani@kernel.org>
bus: mhi: core: Fix race while handling SYS_ERR at power up
Bhaumik Bhatt <quic_bbhatt@quicinc.com>
bus: mhi: core: Fix reading wake_capable channel configuration
Loic Poulain <loic.poulain@linaro.org>
bus: mhi: pci_generic: Graceful shutdown on freeze
Christophe Leroy <christophe.leroy@csgroup.eu>
lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
Jonathan Cameron <Jonathan.Cameron@huawei.com>
iio: trigger: Fix a scheduling whilst atomic issue seen on tsc2046
Jonathan Cameron <Jonathan.Cameron@huawei.com>
iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
Alexander Usyskin <alexander.usyskin@intel.com>
mei: hbm: fix client dma reply status
Johan Hovold <johan@kernel.org>
can: softing_cs: softingcs_probe(): fix memleak on registration failure
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: cec-pin: fix interrupt en/disable handling
Johan Hovold <johan@kernel.org>
media: stk1160: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: pvrusb2: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: redrat3: fix control-message timeouts
Michael Kuron <michael.kuron@gmail.com>
media: dib0700: fix undefined behavior in tuner shutdown
Johan Hovold <johan@kernel.org>
media: s2255: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: cpia2: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: em28xx: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: mceusb: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: flexcop-usb: fix control-message timeouts
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
Sakari Ailus <sakari.ailus@linux.intel.com>
media: ov8865: Disable only enabled regulators on error path
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: cec: fix a deadlock situation
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: add reserved room in ipc request/response
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: limits exceeding the maximum allowable outstanding requests
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: move credit charge deduction under processing request
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: add support for smb2 max credit parameter
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: fix guest connection failure with nautilus
Dan Carpenter <dan.carpenter@oracle.com>
ksmbd: uninitialized variable in create_socket()
Mohammad Athari Bin Ismail <mohammad.athari.ismail@intel.com>
net: phy: marvell: add Marvell specific PHY loopback
Mateusz Jończyk <mat.jonczyk@o2.pl>
rtc: cmos: take rtc_lock while reading from CMOS
Willy Tarreau <w@1wt.eu>
tools/nolibc: fix incorrect truncation of exit code
Willy Tarreau <w@1wt.eu>
tools/nolibc: i386: fix initial stack alignment
Jakub Kicinski <kuba@kernel.org>
crypto: x86/aesni - don't require alignment of data
Ammar Faizi <ammar.faizi@students.amikom.ac.id>
tools/nolibc: x86-64: Fix startup code bug
Lucas De Marchi <lucas.demarchi@intel.com>
x86/gpu: Reserve stolen memory for first integrated Intel GPU
Jisheng Zhang <jszhang@kernel.org>
riscv: mm: fix wrong phys_ram_base value for RV64
Nick Kossifidis <mick@ics.forth.gr>
riscv: use hart id instead of cpu id on machine_kexec
Nick Kossifidis <mick@ics.forth.gr>
riscv: Don't use va_pa_offset on kdump
Nick Kossifidis <mick@ics.forth.gr>
riscv: try to allocate crashkern region from 32bit addressible memory
Sean Christopherson <seanjc@google.com>
RISC-V: Use common riscv_cpuid_to_hartid_mask() for both SMP=y and SMP=n
Alexandre Ghiti <alexandre.ghiti@canonical.com>
riscv: Get rid of MAXPHYSMEM configs
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: ingenic: JZ4740 needs 'oob_first' read page function
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: Export nand_read_page_hwecc_oob_first()
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Rewrite function description
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Avoid duplicated page read
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Don't calculate ECC when reading page
Andreas Oetken <ennoerlangen@gmail.com>
mtd: Fixed breaking list in __mtd_del_partition.
Stefan Riedmueller <s.riedmueller@phytec.de>
mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
Christian Eggers <ceggers@arri.de>
mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()
Jaegeuk Kim <jaegeuk@kernel.org>
f2fs: avoid EINVAL by SBI_NEED_FSCK when pinning a file
Chao Yu <chao@kernel.org>
f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr()
Chao Yu <chao@kernel.org>
f2fs: fix to do sanity check in is_alive()
Chao Yu <chao@kernel.org>
f2fs: fix to do sanity check on inode type during garbage collection
Shyam Prasad N <sprasad@microsoft.com>
cifs: free ntlmsspblob allocated in negotiate
Takashi Iwai <tiwai@suse.de>
ALSA: core: Fix SSID quirk lookup for subvendor=0
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Avoid using stale array indicies to read contact count
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Ignore the confidence flag when a touch is removed
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Reset expected and received contact counts at the same time
Jann Horn <jannh@google.com>
HID: uhid: Fix worker destroying device without any protection
Karl Kurbjun <kkurbjun@gmail.com>
HID: Ignore battery for Elan touchscreen on HP Envy X360 15t-dr100
Marcelo Tosatti <mtosatti@redhat.com>
KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
David Matlack <dmatlack@google.com>
KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU
-------------
Diffstat:
Documentation/admin-guide/cifs/usage.rst | 7 +-
Documentation/admin-guide/devices.txt | 8 +-
Documentation/admin-guide/hw-vuln/spectre.rst | 2 +-
.../bindings/display/amlogic,meson-dw-hdmi.yaml | 5 +
.../bindings/display/amlogic,meson-vpu.yaml | 6 +
.../devicetree/bindings/input/hid-over-i2c.txt | 2 +
.../devicetree/bindings/thermal/thermal-zones.yaml | 9 +-
.../devicetree/bindings/watchdog/samsung-wdt.yaml | 5 +-
Documentation/driver-api/dmaengine/dmatest.rst | 7 +-
Documentation/driver-api/firewire.rst | 4 +-
.../acpi/dsd/data-node-references.rst | 10 +-
Documentation/trace/coresight/coresight-config.rst | 16 +-
Makefile | 4 +-
arch/arm/Kconfig.debug | 14 +-
arch/arm/boot/compressed/efi-header.S | 22 +-
arch/arm/boot/compressed/head.S | 3 +-
arch/arm/boot/dts/armada-38x.dtsi | 4 +-
arch/arm/boot/dts/gemini-nas4220b.dts | 2 +-
arch/arm/boot/dts/omap3-n900.dts | 50 +-
arch/arm/boot/dts/qcom-sdx55.dtsi | 6 +-
arch/arm/boot/dts/sama7g5-pinfunc.h | 2 +-
arch/arm/boot/dts/stm32f429-disco.dts | 2 +-
arch/arm/configs/cm_x300_defconfig | 1 -
arch/arm/configs/ezx_defconfig | 1 -
arch/arm/configs/imote2_defconfig | 1 -
arch/arm/configs/nhk8815_defconfig | 1 -
arch/arm/configs/pxa_defconfig | 1 -
arch/arm/configs/spear13xx_defconfig | 1 -
arch/arm/configs/spear3xx_defconfig | 1 -
arch/arm/configs/spear6xx_defconfig | 1 -
arch/arm/include/debug/imx-uart.h | 18 +-
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5 +-
arch/arm/net/bpf_jit_32.c | 5 +-
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 2 +-
.../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 +-
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 3 +
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 14 +-
arch/arm64/boot/dts/marvell/cn9130.dtsi | 15 +
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 2 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 5 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2 +-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 4 +-
arch/arm64/boot/dts/qcom/msm8996.dtsi | 3 -
arch/arm64/boot/dts/qcom/sc7280.dtsi | 10 +-
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 27 +
arch/arm64/boot/dts/qcom/sm6350.dtsi | 4 +-
arch/arm64/boot/dts/qcom/sm8350.dtsi | 6 +-
arch/arm64/boot/dts/renesas/cat875.dtsi | 1 +
arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77951.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77960.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77961.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77965.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77980.dtsi | 4 +-
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 10 +-
.../boot/dts/rockchip/rk3399-rock-pi-4b-plus.dts | 7 +-
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts | 7 +-
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts | 7 +-
arch/arm64/boot/dts/ti/k3-am642.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j7200.dtsi | 6 +-
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j721e.dtsi | 6 +-
arch/arm64/include/asm/extable.h | 9 -
arch/arm64/include/asm/memory.h | 5 +-
arch/arm64/include/asm/mte-kasan.h | 8 +-
arch/arm64/kernel/module.c | 4 +-
arch/arm64/kernel/process.c | 39 +-
arch/arm64/kernel/traps.c | 2 +-
arch/arm64/lib/clear_page.S | 10 +
arch/arm64/lib/mte.S | 8 +-
arch/arm64/mm/ptdump.c | 2 -
arch/arm64/net/bpf_jit_comp.c | 17 +-
arch/mips/Kconfig | 6 +-
arch/mips/bcm63xx/clk.c | 6 +
arch/mips/boot/compressed/Makefile | 2 +-
arch/mips/boot/compressed/clz_ctz.c | 2 +
arch/mips/cavium-octeon/octeon-platform.c | 2 +
arch/mips/cavium-octeon/octeon-usb.c | 1 +
arch/mips/configs/fuloong2e_defconfig | 1 -
arch/mips/configs/malta_qemu_32r6_defconfig | 1 -
arch/mips/configs/maltaaprp_defconfig | 1 -
arch/mips/configs/maltasmvp_defconfig | 1 -
arch/mips/configs/maltasmvp_eva_defconfig | 1 -
arch/mips/configs/maltaup_defconfig | 1 -
arch/mips/include/asm/local.h | 9 +-
.../asm/mach-loongson64/kernel-entry-init.h | 4 +-
arch/mips/include/asm/octeon/cvmx-bootinfo.h | 4 +-
arch/mips/lantiq/clk.c | 6 +
arch/mips/net/bpf_jit_comp32.c | 3 +-
arch/mips/net/bpf_jit_comp64.c | 2 +-
arch/openrisc/include/asm/syscalls.h | 2 +
arch/openrisc/kernel/entry.S | 5 +
arch/parisc/include/asm/special_insns.h | 44 +-
arch/parisc/kernel/traps.c | 2 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi | 2 +
arch/powerpc/configs/ppc6xx_defconfig | 1 -
arch/powerpc/configs/pseries_defconfig | 1 -
arch/powerpc/include/asm/hw_irq.h | 40 +
arch/powerpc/kernel/btext.c | 4 +-
arch/powerpc/kernel/fadump.c | 8 +
arch/powerpc/kernel/head_40x.S | 9 +-
arch/powerpc/kernel/interrupt.c | 2 +-
arch/powerpc/kernel/interrupt_64.S | 10 +-
arch/powerpc/kernel/module.c | 11 +-
arch/powerpc/kernel/prom_init.c | 2 +-
arch/powerpc/kernel/smp.c | 42 +
arch/powerpc/kernel/watchdog.c | 41 +-
arch/powerpc/kvm/book3s_hv.c | 8 +-
arch/powerpc/kvm/book3s_hv_nested.c | 2 +-
arch/powerpc/mm/book3s64/radix_pgtable.c | 4 +-
arch/powerpc/mm/kasan/book3s_32.c | 3 +-
arch/powerpc/mm/pgtable_64.c | 14 +-
arch/powerpc/net/bpf_jit_comp32.c | 4 +-
arch/powerpc/net/bpf_jit_comp64.c | 4 +-
arch/powerpc/perf/core-book3s.c | 58 +-
arch/powerpc/platforms/cell/iommu.c | 1 +
arch/powerpc/platforms/cell/pervasive.c | 1 +
arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 1 +
arch/powerpc/platforms/powermac/low_i2c.c | 3 +
arch/powerpc/platforms/powernv/opal-lpc.c | 1 +
arch/powerpc/sysdev/xive/spapr.c | 3 +
arch/riscv/Kconfig | 23 +-
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi | 3 -
arch/riscv/configs/defconfig | 1 +
arch/riscv/configs/nommu_k210_defconfig | 2 -
arch/riscv/configs/nommu_k210_sdcard_defconfig | 2 -
arch/riscv/configs/nommu_virt_defconfig | 1 -
arch/riscv/configs/rv32_defconfig | 1 +
arch/riscv/include/asm/smp.h | 10 +-
arch/riscv/kernel/kexec_relocate.S | 20 +-
arch/riscv/kernel/machine_kexec.c | 3 +-
arch/riscv/kernel/setup.c | 10 +
arch/riscv/kernel/smp.c | 10 -
arch/riscv/kvm/main.c | 8 +
arch/riscv/mm/init.c | 19 +-
arch/riscv/net/bpf_jit_comp32.c | 6 +-
arch/riscv/net/bpf_jit_comp64.c | 7 +-
arch/s390/kernel/module.c | 5 +-
arch/s390/kvm/kvm-s390.c | 2 +-
arch/s390/mm/pgalloc.c | 4 +-
arch/s390/net/bpf_jit_comp.c | 6 +-
arch/sh/configs/titan_defconfig | 1 -
arch/sparc/net/bpf_jit_comp_64.c | 2 +-
arch/um/.gitignore | 1 +
arch/um/drivers/virt-pci.c | 8 +-
arch/um/drivers/virtio_uml.c | 4 +
arch/um/include/asm/delay.h | 4 +-
arch/um/include/asm/irqflags.h | 4 +-
arch/um/include/shared/longjmp.h | 2 +-
arch/um/include/shared/os.h | 4 +-
arch/um/include/shared/registers.h | 4 +-
arch/um/kernel/ksyms.c | 2 +-
arch/um/os-Linux/registers.c | 4 +-
arch/um/os-Linux/sigio.c | 6 +-
arch/um/os-Linux/signal.c | 8 +-
arch/um/os-Linux/start_up.c | 2 +-
arch/x86/boot/compressed/Makefile | 7 +-
arch/x86/configs/i386_defconfig | 1 +
arch/x86/configs/x86_64_defconfig | 1 +
arch/x86/crypto/aesni-intel_glue.c | 4 +-
arch/x86/hyperv/mmu.c | 19 +-
arch/x86/include/asm/realmode.h | 1 +
arch/x86/include/asm/topology.h | 2 +-
arch/x86/include/asm/uaccess.h | 5 +-
arch/x86/kernel/cpu/mce/core.c | 42 +-
arch/x86/kernel/cpu/mce/inject.c | 2 +-
arch/x86/kernel/cpu/mce/severity.c | 33 +-
arch/x86/kernel/early-quirks.c | 10 +-
arch/x86/kernel/module.c | 7 +-
arch/x86/kernel/reboot.c | 12 +-
arch/x86/kvm/cpuid.c | 90 +-
arch/x86/kvm/mmu/tdp_mmu.c | 6 +-
arch/x86/kvm/vmx/posted_intr.c | 25 +-
arch/x86/kvm/x86.c | 30 +-
arch/x86/net/bpf_jit_comp.c | 10 +-
arch/x86/net/bpf_jit_comp32.c | 4 +-
arch/x86/realmode/init.c | 26 +
arch/x86/um/syscalls_64.c | 3 +-
block/bfq-iosched.c | 44 +-
block/blk-flush.c | 4 +-
block/blk-mq-tag.c | 40 +-
block/blk-pm.c | 22 +-
block/genhd.c | 15 +-
block/mq-deadline.c | 4 +-
crypto/jitterentropy.c | 3 +-
drivers/acpi/acpica/exfield.c | 7 +-
drivers/acpi/acpica/exoparg1.c | 3 +-
drivers/acpi/acpica/hwesleep.c | 4 +-
drivers/acpi/acpica/hwsleep.c | 4 +-
drivers/acpi/acpica/hwxfsleep.c | 2 -
drivers/acpi/acpica/utdelete.c | 1 +
drivers/acpi/battery.c | 22 +
drivers/acpi/bus.c | 4 +-
drivers/acpi/cppc_acpi.c | 2 +-
drivers/acpi/ec.c | 57 +-
drivers/acpi/internal.h | 2 +
drivers/acpi/scan.c | 13 +-
drivers/acpi/x86/utils.c | 116 ++-
drivers/android/binder.c | 98 ++-
drivers/base/core.c | 3 +-
drivers/base/power/runtime.c | 41 +-
drivers/base/property.c | 4 +-
drivers/base/regmap/regmap.c | 1 +
drivers/base/swnode.c | 2 +-
drivers/block/floppy.c | 6 +-
drivers/block/null_blk/main.c | 8 +-
drivers/bluetooth/btintel.c | 26 +-
drivers/bluetooth/btmtksdio.c | 2 +
drivers/bluetooth/btusb.c | 5 +
drivers/bluetooth/hci_bcm.c | 7 +-
drivers/bluetooth/hci_qca.c | 9 +-
drivers/bluetooth/hci_vhci.c | 4 +
drivers/bluetooth/virtio_bt.c | 3 +
drivers/bus/mhi/core/init.c | 1 +
drivers/bus/mhi/core/pm.c | 35 +-
drivers/bus/mhi/pci_generic.c | 2 +-
drivers/char/mwave/3780i.h | 2 +-
drivers/char/random.c | 19 +-
drivers/char/tpm/tpm-chip.c | 18 +-
drivers/char/tpm/tpm_tis_core.c | 14 +-
drivers/clk/bcm/clk-bcm2835.c | 13 +-
drivers/clk/clk-bm1880.c | 20 +-
drivers/clk/clk-si5341.c | 2 +-
drivers/clk/clk-stm32f4.c | 4 -
drivers/clk/clk.c | 18 +
drivers/clk/imx/clk-imx8mn.c | 6 +-
drivers/clk/meson/gxbb.c | 44 +-
drivers/clk/qcom/gcc-sc7280.c | 2 +-
drivers/clk/renesas/rzg2l-cpg.c | 17 +-
drivers/clk/samsung/clk-exynos850.c | 70 +-
drivers/counter/104-quad-8.c | 82 +-
drivers/cpufreq/cpufreq.c | 4 +-
drivers/cpufreq/intel_pstate.c | 24 +-
drivers/cpufreq/qcom-cpufreq-hw.c | 7 +-
drivers/crypto/atmel-aes.c | 6 +-
drivers/crypto/caam/caamalg.c | 6 +
drivers/crypto/caam/caamalg_qi2.c | 2 +-
drivers/crypto/caam/caamhash.c | 3 +
drivers/crypto/caam/caampkc.c | 3 +
drivers/crypto/ccp/sev-dev.c | 30 +-
drivers/crypto/hisilicon/hpre/hpre_crypto.c | 2 +-
drivers/crypto/hisilicon/qm.c | 5 +-
drivers/crypto/keembay/keembay-ocs-ecc.c | 1 +
drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c | 9 +-
.../crypto/marvell/octeontx2/otx2_cptpf_ucode.c | 3 +-
drivers/crypto/omap-aes.c | 2 +-
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 12 +-
drivers/crypto/qce/aead.c | 2 +-
drivers/crypto/qce/sha.c | 2 +-
drivers/crypto/qce/skcipher.c | 2 +-
drivers/crypto/stm32/stm32-crc32.c | 4 +-
drivers/crypto/stm32/stm32-cryp.c | 938 ++++++++-------------
drivers/crypto/stm32/stm32-hash.c | 6 +-
drivers/cxl/core/bus.c | 6 +-
drivers/cxl/core/pmem.c | 8 +-
drivers/cxl/cxl.h | 10 +-
drivers/cxl/pmem.c | 46 +-
drivers/dax/super.c | 6 +-
drivers/dma-buf/dma-fence-array.c | 6 +-
drivers/dma-buf/heaps/cma_heap.c | 6 +-
drivers/dma/at_xdmac.c | 57 +-
drivers/dma/idxd/device.c | 12 +-
drivers/dma/mmp_pdma.c | 6 -
drivers/dma/pxa_dma.c | 7 -
drivers/dma/stm32-mdma.c | 2 +-
drivers/dma/uniphier-xdmac.c | 5 +-
drivers/edac/synopsys_edac.c | 3 +-
drivers/firmware/efi/efi-init.c | 5 +
drivers/firmware/google/Kconfig | 6 +-
drivers/firmware/sysfb_simplefb.c | 8 +-
drivers/gpio/gpio-aspeed-sgpio.c | 32 +-
drivers/gpio/gpio-aspeed.c | 52 +-
drivers/gpio/gpio-idt3243x.c | 4 +-
drivers/gpio/gpio-mpc8xxx.c | 4 +-
drivers/gpio/gpiolib-acpi.c | 15 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 5 +-
drivers/gpu/drm/amd/amdgpu/cik.c | 4 +
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 13 +-
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 18 +-
drivers/gpu/drm/amd/amdgpu/vi.c | 4 +
drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 3 +
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 138 ++-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 46 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 5 +-
drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 3 +-
.../amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c | 11 +-
.../drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 11 +-
drivers/gpu/drm/amd/display/dc/core/dc.c | 3 +-
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 2 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.c | 3 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 3 +-
.../amd/display/dc/irq/dcn20/irq_service_dcn20.c | 25 -
.../amd/display/dc/irq/dcn20/irq_service_dcn20.h | 2 -
.../amd/display/dc/irq/dcn21/irq_service_dcn21.c | 25 -
.../amd/display/dc/irq/dcn21/irq_service_dcn21.h | 2 -
drivers/gpu/drm/amd/display/dc/irq/irq_service.c | 2 +-
drivers/gpu/drm/amd/display/dc/irq/irq_service.h | 4 -
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 6 +
drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 14 +-
drivers/gpu/drm/bridge/display-connector.c | 2 +-
.../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 40 +-
.../gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 10 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 4 +-
.../gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 9 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 12 +-
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 2 +-
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 +
drivers/gpu/drm/drm_atomic_helper.c | 2 +-
drivers/gpu/drm/drm_dp_helper.c | 40 +-
drivers/gpu/drm/drm_drv.c | 9 +-
drivers/gpu/drm/drm_gem_cma_helper.c | 17 +-
drivers/gpu/drm/drm_gem_shmem_helper.c | 17 +-
drivers/gpu/drm/drm_gem_vram_helper.c | 4 +-
drivers/gpu/drm/drm_panel_orientation_quirks.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 1 +
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 10 +-
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 1 -
drivers/gpu/drm/i915/pxp/intel_pxp_tee.c | 5 +-
drivers/gpu/drm/lima/lima_device.c | 1 +
drivers/gpu/drm/lima/lima_gem.c | 2 +-
drivers/gpu/drm/msm/Kconfig | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4 +-
drivers/gpu/drm/msm/dsi/dsi.c | 10 +-
drivers/gpu/drm/msm/dsi/dsi.h | 1 -
drivers/gpu/drm/msm/dsi/dsi_manager.c | 17 -
drivers/gpu/drm/msm/msm_gem_submit.c | 2 +-
drivers/gpu/drm/nouveau/dispnv04/disp.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 37 +-
.../gpu/drm/panel/panel-feiyang-fy07024di26a30d.c | 8 +-
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 10 +-
drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 8 +-
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 8 +-
drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 8 +-
.../gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 8 +-
drivers/gpu/drm/panel/panel-ronbo-rb070d30.c | 8 +-
.../drm/panel/panel-samsung-s6e88a0-ams452ef01.c | 1 +
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 1 +
drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 8 +-
drivers/gpu/drm/panfrost/panfrost_gem.c | 2 +-
drivers/gpu/drm/radeon/radeon_kms.c | 42 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 31 +-
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 6 +-
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 82 +-
drivers/gpu/drm/scheduler/sched_entity.c | 15 +-
drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c | 4 +-
drivers/gpu/drm/tegra/drm.c | 15 +
drivers/gpu/drm/tegra/gr2d.c | 33 +-
drivers/gpu/drm/tegra/submit.c | 4 +-
drivers/gpu/drm/tegra/vic.c | 7 +-
drivers/gpu/drm/ttm/ttm_bo.c | 2 +
drivers/gpu/drm/v3d/v3d_bo.c | 4 +-
drivers/gpu/drm/vboxvideo/vbox_main.c | 4 +-
drivers/gpu/drm/vc4/vc4_crtc.c | 31 +-
drivers/gpu/drm/vc4/vc4_drv.h | 29 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 136 ++-
drivers/gpu/drm/vc4/vc4_hvs.c | 26 +-
drivers/gpu/drm/vc4/vc4_kms.c | 3 +-
drivers/gpu/drm/vc4/vc4_txp.c | 4 +-
drivers/gpu/drm/vgem/vgem_drv.c | 2 +-
drivers/gpu/drm/virtio/virtgpu_ioctl.c | 4 +-
drivers/gpu/drm/virtio/virtgpu_object.c | 2 +-
drivers/gpu/drm/vmwgfx/Makefile | 3 +-
drivers/gpu/drm/vmwgfx/ttm_memory.c | 99 +--
drivers/gpu/drm/vmwgfx/ttm_memory.h | 6 +-
drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c | 7 +
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 48 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 20 +-
drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 12 +-
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 4 +-
drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c | 90 ++
drivers/gpu/drm/vmwgfx/vmwgfx_thp.c | 184 ----
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 58 +-
drivers/gpu/host1x/Kconfig | 1 +
drivers/gpu/host1x/dev.c | 15 +
drivers/hid/hid-apple.c | 2 +-
drivers/hid/hid-ids.h | 1 +
drivers/hid/hid-input.c | 8 +
drivers/hid/hid-magicmouse.c | 95 ++-
drivers/hid/hid-uclogic-params.c | 31 +-
drivers/hid/hid-vivaldi.c | 34 +-
drivers/hid/i2c-hid/i2c-hid-acpi.c | 2 +-
drivers/hid/i2c-hid/i2c-hid-core.c | 4 +-
drivers/hid/i2c-hid/i2c-hid-of-goodix.c | 2 +-
drivers/hid/i2c-hid/i2c-hid-of.c | 10 +-
drivers/hid/i2c-hid/i2c-hid.h | 2 +-
drivers/hid/uhid.c | 29 +-
drivers/hid/wacom_wac.c | 39 +-
drivers/hsi/hsi_core.c | 1 +
drivers/hwmon/mr75203.c | 2 +-
drivers/i2c/busses/i2c-designware-pcidrv.c | 8 +-
drivers/i2c/busses/i2c-i801.c | 15 +-
drivers/i2c/busses/i2c-mpc.c | 23 +-
drivers/i3c/master.c | 3 +-
drivers/i3c/master/dw-i3c-master.c | 4 +
drivers/i3c/master/mipi-i3c-hci/dat_v1.c | 4 +-
drivers/iio/adc/ti-adc081c.c | 22 +-
drivers/iio/chemical/sunrise_co2.c | 4 +-
drivers/iio/industrialio-trigger.c | 36 +-
drivers/infiniband/core/cma.c | 12 +-
drivers/infiniband/core/device.c | 3 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1 -
drivers/infiniband/hw/cxgb4/qp.c | 1 +
drivers/infiniband/hw/hns/hns_roce_main.c | 5 +-
drivers/infiniband/hw/qedr/verbs.c | 2 +
drivers/infiniband/sw/rxe/rxe_opcode.c | 2 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 2 +-
drivers/input/touchscreen/ti_am335x_tsc.c | 8 +-
drivers/interconnect/qcom/icc-rpm.c | 1 +
drivers/iommu/amd/amd_iommu_types.h | 2 -
drivers/iommu/amd/init.c | 107 +--
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 2 +-
drivers/iommu/io-pgtable-arm-v7s.c | 6 +-
drivers/iommu/io-pgtable-arm.c | 9 +-
drivers/iommu/iommu.c | 3 +-
drivers/iommu/iova.c | 3 +-
drivers/irqchip/irq-gic-v3.c | 16 +
drivers/leds/leds-lp55xx-common.c | 4 +-
drivers/mailbox/imx-mailbox.c | 4 +-
drivers/mailbox/mailbox-mpfs.c | 2 +-
drivers/mailbox/mtk-cmdq-mailbox.c | 2 +-
drivers/mailbox/pcc.c | 10 +-
drivers/md/dm-linear.c | 2 +-
drivers/md/dm-log-writes.c | 2 +-
drivers/md/dm-stripe.c | 2 +-
drivers/md/dm-writecache.c | 2 +-
drivers/md/dm.c | 6 +-
drivers/md/md.c | 27 +-
drivers/md/md.h | 2 +
drivers/md/persistent-data/dm-btree.c | 8 +-
drivers/md/persistent-data/dm-space-map-common.c | 5 +
drivers/md/raid0.c | 38 +-
drivers/md/raid5.c | 41 +-
drivers/media/Kconfig | 8 +-
drivers/media/cec/core/cec-adap.c | 38 +-
drivers/media/cec/core/cec-api.c | 6 +
drivers/media/cec/core/cec-core.c | 3 +
drivers/media/cec/core/cec-pin.c | 31 +-
drivers/media/common/saa7146/saa7146_fops.c | 2 +-
.../media/common/videobuf2/videobuf2-dma-contig.c | 8 +-
drivers/media/dvb-core/dmxdev.c | 18 +-
drivers/media/dvb-frontends/dib8000.c | 4 +-
drivers/media/i2c/imx274.c | 5 +
drivers/media/i2c/ov8865.c | 16 +-
drivers/media/pci/b2c2/flexcop-pci.c | 3 +
drivers/media/pci/intel/ipu3/cio2-bridge.c | 4 +-
drivers/media/pci/saa7146/hexium_gemini.c | 7 +-
drivers/media/pci/saa7146/hexium_orion.c | 8 +-
drivers/media/pci/saa7146/mxb.c | 8 +-
drivers/media/platform/aspeed-video.c | 14 +-
drivers/media/platform/coda/coda-common.c | 8 +-
drivers/media/platform/coda/coda-jpeg.c | 21 +-
drivers/media/platform/coda/imx-vdoa.c | 6 +-
drivers/media/platform/imx-pxp.c | 4 +-
.../media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 2 +
.../media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 2 +-
drivers/media/platform/qcom/venus/core.c | 11 +-
drivers/media/platform/qcom/venus/pm_helpers.c | 32 +-
drivers/media/platform/rcar-vin/rcar-csi2.c | 18 +-
drivers/media/platform/rcar-vin/rcar-v4l2.c | 15 +-
.../media/platform/rockchip/rkisp1/rkisp1-dev.c | 2 +-
drivers/media/radio/si470x/radio-si470x-i2c.c | 3 +-
drivers/media/rc/igorplugusb.c | 4 +-
drivers/media/rc/mceusb.c | 8 +-
drivers/media/rc/redrat3.c | 22 +-
drivers/media/tuners/msi001.c | 7 +
drivers/media/tuners/si2157.c | 2 +-
drivers/media/usb/b2c2/flexcop-usb.c | 10 +-
drivers/media/usb/b2c2/flexcop-usb.h | 12 +-
drivers/media/usb/cpia2/cpia2_usb.c | 4 +-
drivers/media/usb/dvb-usb/dib0700_core.c | 2 -
drivers/media/usb/dvb-usb/dw2102.c | 338 +++++---
drivers/media/usb/dvb-usb/m920x.c | 12 +-
drivers/media/usb/em28xx/em28xx-cards.c | 18 +-
drivers/media/usb/em28xx/em28xx-core.c | 4 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 8 +-
drivers/media/usb/s2255/s2255drv.c | 4 +-
drivers/media/usb/stk1160/stk1160-core.c | 4 +-
drivers/media/usb/uvc/uvc_ctrl.c | 4 +-
drivers/media/usb/uvc/uvc_v4l2.c | 6 +-
drivers/media/usb/uvc/uvcvideo.h | 2 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 4 +-
drivers/memory/renesas-rpc-if.c | 2 +-
drivers/mfd/atmel-flexcom.c | 11 +-
drivers/mfd/intel_soc_pmic_core.c | 28 +-
drivers/mfd/tps65910.c | 22 +-
drivers/misc/eeprom/at25.c | 13 +-
.../misc/habanalabs/common/command_submission.c | 22 +-
drivers/misc/habanalabs/common/firmware_if.c | 17 +-
drivers/misc/habanalabs/common/habanalabs.h | 2 +
drivers/misc/lattice-ecp3-config.c | 12 +-
drivers/misc/lkdtm/Makefile | 2 +-
drivers/misc/mei/hbm.c | 20 +-
drivers/mmc/core/sdio.c | 4 +-
drivers/mmc/host/meson-mx-sdhc-mmc.c | 5 +
drivers/mmc/host/meson-mx-sdio.c | 5 +
drivers/mmc/host/mtk-sd.c | 64 +-
drivers/mmc/host/omap_hsmmc.c | 36 -
drivers/mmc/host/sdhci-pci-gli.c | 11 +
drivers/mmc/host/tmio_mmc_core.c | 15 +-
drivers/mtd/hyperbus/rpc-if.c | 8 +-
drivers/mtd/mtdcore.c | 4 +-
drivers/mtd/mtdpart.c | 2 +-
drivers/mtd/nand/raw/davinci_nand.c | 73 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 37 +-
drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c | 5 +
drivers/mtd/nand/raw/nand_base.c | 67 ++
drivers/mtd/spi-nor/core.c | 19 +-
drivers/mtd/spi-nor/xilinx.c | 18 +-
drivers/net/amt.c | 2 +-
drivers/net/bonding/bond_main.c | 40 +-
drivers/net/can/at91_can.c | 6 -
drivers/net/can/c_can/c_can_main.c | 5 -
drivers/net/can/cc770/cc770.c | 3 -
drivers/net/can/dev/dev.c | 4 -
drivers/net/can/dev/rx-offload.c | 6 +-
drivers/net/can/flexcan.c | 150 ++--
drivers/net/can/ifi_canfd/ifi_canfd.c | 5 -
drivers/net/can/kvaser_pciefd.c | 5 -
drivers/net/can/m_can/m_can.c | 7 -
drivers/net/can/mscan/mscan.c | 9 +-
drivers/net/can/pch_can.c | 3 -
drivers/net/can/peak_canfd/peak_canfd.c | 4 -
drivers/net/can/rcar/rcar_can.c | 6 +-
drivers/net/can/rcar/rcar_canfd.c | 9 +-
drivers/net/can/sja1000/sja1000.c | 2 -
drivers/net/can/softing/softing_cs.c | 2 +-
drivers/net/can/softing/softing_fw.c | 11 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 6 +-
drivers/net/can/sun4i_can.c | 7 +-
drivers/net/can/usb/ems_usb.c | 2 -
drivers/net/can/usb/esd_usb2.c | 2 -
drivers/net/can/usb/etas_es58x/es58x_core.c | 7 -
drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c | 2 -
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 8 -
drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c | 4 -
drivers/net/can/usb/peak_usb/pcan_usb.c | 2 -
drivers/net/can/usb/peak_usb/pcan_usb_fd.c | 3 -
drivers/net/can/usb/peak_usb/pcan_usb_pro.c | 2 -
drivers/net/can/usb/ucan.c | 6 +-
drivers/net/can/usb/usb_8dev.c | 2 -
drivers/net/can/xilinx_can.c | 16 +-
drivers/net/dsa/hirschmann/hellcreek.c | 87 +-
drivers/net/dsa/rtl8365mb.c | 15 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 +
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c | 4 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 9 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h | 3 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 10 +-
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c | 3 +-
drivers/net/ethernet/cortina/gemini.c | 9 +-
drivers/net/ethernet/freescale/fman/mac.c | 21 +-
drivers/net/ethernet/freescale/xgmac_mdio.c | 28 +-
drivers/net/ethernet/i825xx/sni_82596.c | 3 +-
drivers/net/ethernet/intel/igc/igc_main.c | 4 +-
drivers/net/ethernet/lantiq_etop.c | 4 +-
drivers/net/ethernet/marvell/octeontx2/af/ptp.c | 2 +
.../net/ethernet/marvell/octeontx2/af/rvu_cpt.c | 5 +-
.../ethernet/marvell/octeontx2/af/rvu_devlink.c | 2 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 5 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 55 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 16 +-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 36 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 5 +-
.../ethernet/mellanox/mlx5/core/en/tc_tun_encap.c | 2 +
.../net/ethernet/mellanox/mlx5/core/en/xsk/pool.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 19 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 3 +
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 120 ++-
.../net/ethernet/mellanox/mlx5/core/esw/legacy.c | 2 +-
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 28 +-
drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 8 +-
.../net/ethernet/mellanox/mlx5/core/sf/dev/dev.c | 5 +-
.../mellanox/mlx5/core/steering/dr_matcher.c | 53 +-
drivers/net/ethernet/mellanox/mlxsw/cmd.h | 12 +
drivers/net/ethernet/mellanox/mlxsw/pci.c | 7 +-
drivers/net/ethernet/mscc/ocelot.c | 31 +-
drivers/net/ethernet/mscc/ocelot_flower.c | 44 +-
drivers/net/ethernet/mscc/ocelot_net.c | 6 +-
drivers/net/ethernet/renesas/ravb_main.c | 6 +-
drivers/net/ethernet/rocker/rocker_ofdpa.c | 3 +-
.../ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 7 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 +
drivers/net/ethernet/ti/cpsw.c | 6 +-
drivers/net/ethernet/ti/cpsw_new.c | 6 +-
drivers/net/ethernet/ti/cpsw_priv.c | 2 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 135 +--
drivers/net/ipa/ipa_endpoint.c | 7 +-
drivers/net/phy/marvell.c | 62 +-
drivers/net/phy/mdio_bus.c | 2 +-
drivers/net/phy/micrel.c | 36 +-
drivers/net/phy/phy-core.c | 2 +-
drivers/net/phy/sfp.c | 25 +-
drivers/net/ppp/ppp_generic.c | 7 +-
drivers/net/usb/mcs7830.c | 12 +-
drivers/net/usb/smsc95xx.c | 3 +-
drivers/net/wireless/ath/ar5523/ar5523.c | 4 +
drivers/net/wireless/ath/ath10k/core.c | 19 +-
drivers/net/wireless/ath/ath10k/htt_tx.c | 3 +
drivers/net/wireless/ath/ath10k/hw.h | 3 +
drivers/net/wireless/ath/ath10k/txrx.c | 2 -
drivers/net/wireless/ath/ath10k/wmi.c | 27 +-
drivers/net/wireless/ath/ath11k/ahb.c | 28 +-
drivers/net/wireless/ath/ath11k/core.c | 42 +-
drivers/net/wireless/ath/ath11k/core.h | 15 +-
drivers/net/wireless/ath/ath11k/dp.c | 38 +-
drivers/net/wireless/ath/ath11k/dp.h | 4 +-
drivers/net/wireless/ath/ath11k/dp_rx.c | 16 +-
drivers/net/wireless/ath/ath11k/dp_tx.c | 2 +-
drivers/net/wireless/ath/ath11k/hal.c | 50 +-
drivers/net/wireless/ath/ath11k/hal.h | 3 +
drivers/net/wireless/ath/ath11k/hal_rx.c | 2 +-
drivers/net/wireless/ath/ath11k/hw.c | 2 -
drivers/net/wireless/ath/ath11k/hw.h | 3 +
drivers/net/wireless/ath/ath11k/mac.c | 59 +-
drivers/net/wireless/ath/ath11k/pci.c | 34 +-
drivers/net/wireless/ath/ath11k/qmi.h | 2 +-
drivers/net/wireless/ath/ath11k/reg.c | 103 +--
drivers/net/wireless/ath/ath11k/wmi.c | 5 +-
drivers/net/wireless/ath/ath9k/hif_usb.c | 7 +
drivers/net/wireless/ath/ath9k/htc.h | 2 +
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 13 +
drivers/net/wireless/ath/ath9k/wmi.c | 4 +
drivers/net/wireless/ath/wcn36xx/dxe.c | 49 +-
drivers/net/wireless/ath/wcn36xx/main.c | 34 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 10 +-
drivers/net/wireless/ath/wcn36xx/txrx.c | 41 +-
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 +
drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 2 +-
drivers/net/wireless/intel/iwlwifi/fw/api/power.h | 8 +-
drivers/net/wireless/intel/iwlwifi/fw/dump.c | 9 +
drivers/net/wireless/intel/iwlwifi/fw/img.c | 6 +-
drivers/net/wireless/intel/iwlwifi/fw/img.h | 4 +
drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 5 +-
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 17 +-
drivers/net/wireless/intel/iwlwifi/iwl-io.c | 2 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 18 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 17 +
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 27 +
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 23 +-
.../net/wireless/intel/iwlwifi/mvm/time-event.c | 36 +-
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 7 +-
drivers/net/wireless/intel/iwlwifi/queue/tx.c | 1 +
drivers/net/wireless/marvell/mwifiex/sta_event.c | 8 +-
drivers/net/wireless/marvell/mwifiex/usb.c | 3 +-
drivers/net/wireless/mediatek/mt76/debugfs.c | 2 +-
drivers/net/wireless/mediatek/mt76/mac80211.c | 7 +-
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 4 +
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 12 +-
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c | 174 ++--
.../net/wireless/mediatek/mt76/mt7615/pci_init.c | 8 +-
.../net/wireless/mediatek/mt76/mt7615/testmode.c | 4 +-
.../net/wireless/mediatek/mt76/mt76_connac_mac.c | 3 -
.../net/wireless/mediatek/mt76/mt76_connac_mcu.c | 64 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.h | 77 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 81 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 8 +
.../net/wireless/mediatek/mt76/mt7921/debugfs.c | 12 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 13 +-
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 30 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 116 ++-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.h | 27 +
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 2 +
drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 21 +-
.../net/wireless/mediatek/mt76/mt7921/pci_mac.c | 4 +
.../net/wireless/mediatek/mt76/mt7921/pci_mcu.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c | 48 +-
drivers/net/wireless/mediatek/mt76/sdio.c | 3 +-
drivers/net/wireless/mediatek/mt76/sdio_txrx.c | 3 +-
drivers/net/wireless/microchip/wilc1000/netdev.c | 1 -
drivers/net/wireless/microchip/wilc1000/sdio.c | 2 +
drivers/net/wireless/microchip/wilc1000/spi.c | 2 +
drivers/net/wireless/realtek/rtw88/main.c | 2 +-
drivers/net/wireless/realtek/rtw88/pci.c | 61 +-
drivers/net/wireless/realtek/rtw88/pci.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
drivers/net/wireless/realtek/rtw89/mac80211.c | 1 +
drivers/net/wireless/realtek/rtw89/phy.c | 33 +-
drivers/net/wireless/rsi/rsi_91x_main.c | 4 +
drivers/net/wireless/rsi/rsi_91x_usb.c | 9 +-
drivers/net/wireless/rsi/rsi_usb.h | 2 +
drivers/net/wwan/mhi_wwan_mbim.c | 4 +-
drivers/ntb/hw/mscc/ntb_hw_switchtec.c | 16 +-
drivers/nvmem/core.c | 2 +
drivers/of/base.c | 11 +-
drivers/of/fdt.c | 25 +-
drivers/of/unittest.c | 21 +-
drivers/parisc/pdc_stable.c | 4 +-
drivers/pci/controller/dwc/pcie-designware.c | 7 +-
drivers/pci/controller/dwc/pcie-qcom.c | 12 +-
drivers/pci/controller/pci-aardvark.c | 10 +-
drivers/pci/controller/pci-mvebu.c | 260 +++++-
drivers/pci/controller/pci-xgene.c | 2 +-
drivers/pci/controller/pcie-apple.c | 7 +-
drivers/pci/controller/pcie-mediatek-gen3.c | 8 +
drivers/pci/controller/pcie-mt7621.c | 2 +
drivers/pci/controller/pcie-rcar-host.c | 10 +-
drivers/pci/hotplug/pciehp.h | 3 +
drivers/pci/hotplug/pciehp_core.c | 2 +-
drivers/pci/hotplug/pciehp_hpc.c | 28 +-
drivers/pci/msi.c | 26 +-
drivers/pci/pci-bridge-emul.c | 70 +-
drivers/pci/quirks.c | 3 +
drivers/pcmcia/cs.c | 8 +-
drivers/pcmcia/rsrc_nonstatic.c | 6 +
drivers/perf/arm-cmn.c | 5 +-
drivers/phy/cadence/phy-cadence-sierra.c | 31 +-
drivers/phy/mediatek/phy-mtk-mipi-dsi.c | 2 +
drivers/phy/mediatek/phy-mtk-tphy.c | 162 ++++
drivers/phy/socionext/phy-uniphier-usb3ss.c | 10 +-
drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 2 +
drivers/pinctrl/mediatek/pinctrl-paris.c | 2 +-
drivers/pinctrl/pinctrl-apple-gpio.c | 2 +-
drivers/pinctrl/pinctrl-rockchip.c | 2 +-
drivers/platform/x86/wmi.c | 17 +-
drivers/power/reset/mt6323-poweroff.c | 3 +
drivers/ptp/ptp_vclock.c | 10 +-
drivers/regulator/da9121-regulator.c | 5 +
drivers/regulator/qcom-labibb-regulator.c | 2 +-
drivers/regulator/qcom_smd-regulator.c | 100 ++-
drivers/remoteproc/imx_rproc.c | 1 +
drivers/rpmsg/rpmsg_core.c | 20 +-
drivers/rtc/dev.c | 6 +-
drivers/rtc/rtc-cmos.c | 3 +
drivers/rtc/rtc-pxa.c | 4 +
drivers/scsi/hisi_sas/hisi_sas_main.c | 8 +-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 1 +
drivers/scsi/lpfc/lpfc.h | 2 +-
drivers/scsi/lpfc/lpfc_attr.c | 62 +-
drivers/scsi/lpfc/lpfc_els.c | 11 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 8 +-
drivers/scsi/lpfc/lpfc_init.c | 8 +-
drivers/scsi/lpfc/lpfc_nportdisc.c | 6 +
drivers/scsi/lpfc/lpfc_sli.c | 6 -
drivers/scsi/mpi3mr/mpi3mr.h | 3 +-
drivers/scsi/mpi3mr/mpi3mr_fw.c | 4 +-
drivers/scsi/pm8001/pm8001_hwi.c | 4 +-
drivers/scsi/scsi.c | 4 +-
drivers/scsi/scsi_debugfs.c | 1 +
drivers/scsi/scsi_pm.c | 2 +-
drivers/scsi/sr.c | 2 +-
drivers/scsi/sr_vendor.c | 4 +-
drivers/scsi/ufs/tc-dwc-g210-pci.c | 1 -
drivers/scsi/ufs/ufs-mediatek.c | 2 +-
drivers/scsi/ufs/ufshcd-pci.c | 2 -
drivers/scsi/ufs/ufshcd-pltfrm.c | 2 -
drivers/scsi/ufs/ufshcd.c | 22 +-
drivers/soc/imx/gpcv2.c | 3 +-
drivers/soc/mediatek/mtk-scpsys.c | 15 +-
drivers/soc/qcom/cpr.c | 2 +-
drivers/soc/ti/pruss.c | 2 +-
drivers/spi/spi-geni-qcom.c | 32 +-
drivers/spi/spi-hisi-kunpeng.c | 15 +-
drivers/spi/spi-meson-spifc.c | 1 +
drivers/spi/spi-uniphier.c | 11 +-
drivers/spi/spi.c | 13 +-
drivers/staging/greybus/audio_topology.c | 15 +
drivers/staging/media/atomisp/i2c/ov2680.h | 24 -
drivers/staging/media/atomisp/pci/atomisp_cmd.c | 82 +-
drivers/staging/media/atomisp/pci/atomisp_fops.c | 11 +
.../media/atomisp/pci/atomisp_gmin_platform.c | 2 +-
drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 188 ++++-
drivers/staging/media/atomisp/pci/atomisp_subdev.c | 15 +-
drivers/staging/media/atomisp/pci/atomisp_subdev.h | 3 +
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 13 +-
drivers/staging/media/atomisp/pci/atomisp_v4l2.h | 3 +-
drivers/staging/media/atomisp/pci/sh_css.c | 27 +-
drivers/staging/media/atomisp/pci/sh_css_mipi.c | 41 +-
drivers/staging/media/atomisp/pci/sh_css_params.c | 8 +-
drivers/staging/media/hantro/hantro_drv.c | 3 +-
drivers/staging/media/hantro/hantro_h1_jpeg_enc.c | 2 +-
drivers/staging/media/hantro/hantro_hw.h | 3 +-
.../media/hantro/rockchip_vpu2_hw_jpeg_enc.c | 17 +
drivers/staging/media/hantro/rockchip_vpu_hw.c | 5 +-
drivers/staging/rtl8192e/rtllib.h | 2 +-
drivers/staging/rtl8192e/rtllib_module.c | 16 +-
drivers/staging/rtl8192e/rtllib_softmac.c | 6 +-
drivers/tee/tee_core.c | 4 +-
drivers/thermal/imx8mm_thermal.c | 3 +
drivers/thermal/imx_thermal.c | 145 ++--
.../int340x_thermal/processor_thermal_device.h | 3 +-
.../intel/int340x_thermal/processor_thermal_mbox.c | 100 ++-
.../intel/int340x_thermal/processor_thermal_rfim.c | 23 +-
drivers/thunderbolt/acpi.c | 13 +
drivers/tty/mxser.c | 44 +-
drivers/tty/serial/8250/8250_bcm7271.c | 11 +-
drivers/tty/serial/8250/8250_dw.c | 3 +
drivers/tty/serial/amba-pl010.c | 3 -
drivers/tty/serial/amba-pl011.c | 29 +-
drivers/tty/serial/atmel_serial.c | 14 +
drivers/tty/serial/imx.c | 7 +-
drivers/tty/serial/liteuart.c | 2 +-
drivers/tty/serial/serial_core.c | 7 +-
drivers/tty/serial/stm32-usart.c | 6 +-
drivers/tty/serial/uartlite.c | 2 +-
drivers/uio/uio_dmem_genirq.c | 6 +-
drivers/usb/core/hub.c | 5 +-
drivers/usb/dwc2/gadget.c | 13 +-
drivers/usb/dwc2/hcd.c | 7 +-
drivers/usb/dwc3/dwc3-meson-g12a.c | 17 +-
drivers/usb/dwc3/dwc3-qcom.c | 7 +-
drivers/usb/gadget/function/f_fs.c | 4 +-
drivers/usb/gadget/function/u_audio.c | 28 +-
drivers/usb/host/ehci-brcm.c | 6 +-
drivers/usb/host/uhci-platform.c | 3 +-
drivers/usb/misc/ftdi-elan.c | 1 +
drivers/vdpa/ifcvf/ifcvf_base.c | 41 +-
drivers/vdpa/ifcvf/ifcvf_base.h | 9 +-
drivers/vdpa/ifcvf/ifcvf_main.c | 24 +-
drivers/vdpa/mlx5/net/mlx5_vnet.c | 8 +-
drivers/video/backlight/qcom-wled.c | 122 +--
drivers/virtio/virtio_mem.c | 2 +-
drivers/virtio/virtio_ring.c | 4 +-
drivers/w1/slaves/w1_ds28e04.c | 26 +-
drivers/xen/gntdev.c | 6 +-
fs/btrfs/backref.c | 21 +-
fs/btrfs/ctree.c | 19 +-
fs/btrfs/dev-replace.c | 2 +-
fs/btrfs/disk-io.c | 2 +
fs/btrfs/extent-tree.c | 58 +-
fs/btrfs/inode.c | 11 +
fs/btrfs/qgroup.c | 19 +
fs/btrfs/volumes.c | 2 +-
fs/btrfs/zoned.c | 91 +-
fs/btrfs/zoned.h | 13 +-
fs/cifs/sess.c | 13 +-
fs/debugfs/file.c | 2 +-
fs/dlm/lock.c | 9 +
fs/dlm/lowcomms.c | 44 +-
fs/ext4/ext4.h | 1 +
fs/ext4/ext4_jbd2.c | 2 +
fs/ext4/extents.c | 2 -
fs/ext4/fast_commit.c | 18 +-
fs/ext4/inode.c | 51 +-
fs/ext4/ioctl.c | 2 -
fs/ext4/mballoc.c | 48 +-
fs/ext4/migrate.c | 23 +-
fs/ext4/super.c | 27 +-
fs/f2fs/checkpoint.c | 4 +-
fs/f2fs/compress.c | 50 +-
fs/f2fs/data.c | 7 +-
fs/f2fs/f2fs.h | 11 +
fs/f2fs/file.c | 10 +-
fs/f2fs/gc.c | 8 +-
fs/f2fs/inode.c | 5 +
fs/f2fs/segment.h | 3 +-
fs/f2fs/super.c | 44 +
fs/f2fs/sysfs.c | 4 +-
fs/f2fs/xattr.c | 11 +-
fs/fuse/file.c | 2 +-
fs/hugetlbfs/inode.c | 7 +-
fs/io_uring.c | 4 +
fs/jffs2/file.c | 40 +-
fs/ksmbd/connection.c | 1 +
fs/ksmbd/connection.h | 4 +-
fs/ksmbd/ksmbd_netlink.h | 12 +-
fs/ksmbd/smb2misc.c | 18 +-
fs/ksmbd/smb2ops.c | 16 +-
fs/ksmbd/smb2pdu.c | 87 +-
fs/ksmbd/smb2pdu.h | 1 +
fs/ksmbd/smb_common.h | 1 +
fs/ksmbd/transport_ipc.c | 2 +
fs/ksmbd/transport_tcp.c | 3 +-
fs/nfsd/nfs3xdr.c | 44 +-
fs/nfsd/nfs4state.c | 6 +-
fs/nfsd/vfs.c | 4 +
fs/ubifs/super.c | 1 -
fs/udf/ialloc.c | 2 +
include/acpi/acpi_bus.h | 5 +-
include/acpi/actypes.h | 10 +-
include/asm-generic/bitops/find.h | 5 +
include/drm/drm_drv.h | 5 +-
include/drm/gpu_scheduler.h | 12 +-
include/linux/blk-pm.h | 2 +-
include/linux/bpf.h | 2 +-
include/linux/bpf_verifier.h | 7 +
include/linux/hid.h | 2 +
include/linux/iio/trigger.h | 2 +
include/linux/kasan.h | 4 +-
include/linux/mmzone.h | 9 +
include/linux/mtd/rawnand.h | 2 +
include/linux/mtd/spi-nor.h | 2 -
include/linux/netfilter_netdev.h | 2 +-
include/linux/of_fdt.h | 2 +
include/linux/pm_runtime.h | 3 +
include/linux/psi_types.h | 13 +-
include/linux/ptp_clock_kernel.h | 12 +-
include/linux/sbitmap.h | 11 +
include/linux/skbuff.h | 4 +-
include/linux/stmmac.h | 1 +
include/linux/vmalloc.h | 7 +
include/media/cec.h | 11 +-
include/net/inet_frag.h | 11 +-
include/net/ipv6_frag.h | 3 +-
include/net/pkt_sched.h | 4 +-
include/net/sch_generic.h | 5 +
include/net/xfrm.h | 7 +-
include/sound/hda_codec.h | 8 +-
include/trace/events/cgroup.h | 12 +-
include/trace/events/sunrpc.h | 13 +-
include/uapi/linux/bpf.h | 2 +-
include/uapi/linux/xfrm.h | 1 +
include/uapi/misc/habanalabs.h | 18 +-
kernel/audit.c | 18 +-
kernel/bpf/bloom_filter.c | 6 +
kernel/bpf/btf.c | 3 +-
kernel/bpf/core.c | 3 +-
kernel/bpf/inode.c | 14 +-
kernel/bpf/verifier.c | 28 +-
kernel/dma/pool.c | 4 +-
kernel/locking/ww_rt_mutex.c | 2 +-
kernel/rcu/rcutorture.c | 5 +
kernel/rcu/tree.c | 4 +-
kernel/rcu/tree_exp.h | 1 +
kernel/sched/cpuacct.c | 79 +-
kernel/sched/cputime.c | 4 +-
kernel/sched/fair.c | 4 +-
kernel/sched/psi.c | 45 +-
kernel/sched/rt.c | 23 +-
kernel/sched/stats.h | 5 +-
kernel/signal.c | 20 +-
kernel/time/clocksource.c | 50 +-
kernel/trace/bpf_trace.c | 6 +-
kernel/trace/trace_events_synth.c | 13 +-
kernel/trace/trace_kprobe.c | 5 +-
kernel/trace/trace_osnoise.c | 20 +-
kernel/trace/trace_probe.c | 2 +
kernel/trace/trace_syscalls.c | 6 +-
kernel/trace/trace_uprobe.c | 5 +
kernel/tsacct.c | 7 +-
lib/kunit/test.c | 18 +-
lib/logic_iomem.c | 19 +-
lib/mpi/mpi-mod.c | 2 +
lib/sbitmap.c | 25 +-
lib/test_bpf.c | 4 +-
lib/test_hmm.c | 24 +
lib/test_meminit.c | 1 +
mm/hmm.c | 5 +-
mm/kasan/quarantine.c | 11 +
mm/kasan/shadow.c | 9 +-
mm/page_alloc.c | 19 +-
mm/page_isolation.c | 2 +-
mm/shmem.c | 37 +-
mm/vmalloc.c | 3 +-
net/ax25/af_ax25.c | 10 +-
net/batman-adv/netlink.c | 30 +-
net/bluetooth/cmtp/core.c | 4 +-
net/bluetooth/hci_core.c | 1 +
net/bluetooth/hci_event.c | 37 +-
net/bluetooth/hci_request.c | 2 +-
net/bluetooth/hci_sock.c | 16 +-
net/bluetooth/hci_sysfs.c | 2 +
net/bluetooth/l2cap_sock.c | 45 +-
net/bluetooth/mgmt.c | 29 +-
net/bridge/br_netfilter_hooks.c | 7 +-
net/core/dev.c | 6 +
net/core/devlink.c | 2 -
net/core/filter.c | 8 +-
net/core/net-sysfs.c | 3 +
net/core/net_namespace.c | 4 +-
net/core/sock.c | 2 +
net/core/sock_map.c | 21 +-
net/dsa/switch.c | 4 +-
net/ipv4/fib_semantics.c | 47 +-
net/ipv4/inet_fragment.c | 8 +-
net/ipv4/ip_fragment.c | 3 +-
net/ipv4/ip_gre.c | 5 +-
net/ipv4/netfilter/ipt_CLUSTERIP.c | 5 +-
net/ipv4/tcp_bpf.c | 27 +
net/ipv6/ip6_gre.c | 5 +-
net/mac80211/rx.c | 2 +-
net/mctp/test/route-test.c | 7 +-
net/mptcp/options.c | 10 +-
net/mptcp/pm_netlink.c | 18 +-
net/mptcp/protocol.c | 4 +-
net/netfilter/nft_payload.c | 3 +
net/netfilter/nft_set_pipapo.c | 8 +
net/netrom/af_netrom.c | 12 +-
net/nfc/llcp_sock.c | 5 +
net/openvswitch/flow.c | 16 +-
net/sched/act_ct.c | 6 +
net/sched/cls_api.c | 2 +
net/sched/sch_api.c | 2 +-
net/sched/sch_generic.c | 1 +
net/smc/af_smc.c | 8 +-
net/smc/smc_core.c | 29 +-
net/smc/smc_core.h | 2 +-
net/socket.c | 9 +-
net/sunrpc/svc_xprt.c | 2 +-
net/unix/garbage.c | 14 +-
net/unix/scm.c | 6 +-
net/xfrm/xfrm_compat.c | 6 +-
net/xfrm/xfrm_interface.c | 14 +-
net/xfrm/xfrm_output.c | 30 +-
net/xfrm/xfrm_policy.c | 24 +-
net/xfrm/xfrm_state.c | 23 +-
net/xfrm/xfrm_user.c | 41 +-
samples/bpf/Makefile | 18 +-
samples/bpf/Makefile.target | 11 -
samples/bpf/lwt_len_hist_kern.c | 7 -
samples/bpf/xdp_sample_user.h | 2 +
scripts/dtc/dtx_diff | 8 +-
scripts/sphinx-pre-install | 3 +
security/selinux/hooks.c | 12 +-
sound/core/jack.c | 3 +
sound/core/misc.c | 2 +-
sound/core/oss/pcm_oss.c | 2 +-
sound/core/pcm.c | 6 +-
sound/core/seq/seq_queue.c | 14 +-
sound/hda/hdac_stream.c | 14 +-
sound/pci/hda/hda_bind.c | 5 +
sound/pci/hda/hda_codec.c | 45 +-
sound/pci/hda/hda_controller.c | 1 -
sound/pci/hda/hda_local.h | 1 +
sound/pci/hda/patch_cs8409-tables.c | 3 +
sound/pci/hda/patch_cs8409.c | 9 +-
sound/pci/hda/patch_cs8409.h | 1 +
sound/soc/amd/Kconfig | 2 +-
sound/soc/codecs/Kconfig | 3 +-
sound/soc/codecs/cs42l42.c | 22 +
sound/soc/codecs/cs42l42.h | 2 +
sound/soc/codecs/rt5663.c | 12 +-
sound/soc/fsl/fsl_asrc.c | 69 +-
sound/soc/fsl/fsl_mqs.c | 2 +-
sound/soc/fsl/imx-card.c | 32 +-
sound/soc/fsl/imx-hdmi.c | 2 +
sound/soc/generic/test-component.c | 5 +-
sound/soc/intel/boards/sof_sdw.c | 2 +-
sound/soc/intel/catpt/dsp.c | 14 +-
sound/soc/intel/skylake/skl-pcm.c | 1 -
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 +
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 +
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 +
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 6 +-
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 7 +-
.../mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 6 +-
sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 2 +-
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 73 +-
sound/soc/mediatek/mt8195/mt8195-reg.h | 1 +
sound/soc/samsung/idma.c | 2 +
sound/soc/sof/intel/hda-codec.c | 3 +-
sound/soc/sof/intel/hda-pcm.c | 86 +-
sound/soc/sof/intel/hda.c | 9 +-
sound/soc/sof/intel/hda.h | 6 +
sound/soc/sof/ipc.c | 3 +-
sound/soc/sof/pcm.c | 5 +-
sound/soc/sof/sof-audio.c | 109 ++-
sound/soc/sof/sof-audio.h | 6 +-
sound/soc/sof/topology.c | 17 -
sound/soc/uniphier/Kconfig | 2 -
sound/usb/format.c | 2 +-
sound/usb/mixer_quirks.c | 2 +-
sound/usb/quirks.c | 2 +-
tools/bpf/bpftool/Documentation/Makefile | 1 -
tools/bpf/bpftool/Documentation/bpftool-btf.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-gen.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-link.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-map.rst | 6 +-
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 8 +-
tools/bpf/bpftool/Documentation/bpftool.rst | 6 +-
tools/bpf/bpftool/Makefile | 1 -
tools/bpf/bpftool/main.c | 2 +
tools/bpf/bpftool/prog.c | 15 +-
tools/bpf/resolve_btfids/main.c | 5 +-
tools/include/nolibc/nolibc.h | 33 +-
tools/include/uapi/linux/bpf.h | 2 +-
tools/lib/bpf/btf.c | 55 +-
tools/lib/bpf/btf.h | 2 +-
tools/lib/bpf/btf_dump.c | 2 +-
tools/lib/bpf/gen_loader.c | 12 +-
tools/lib/bpf/libbpf.c | 65 +-
tools/lib/bpf/libbpf.h | 1 -
tools/lib/bpf/linker.c | 6 +-
tools/perf/Makefile.config | 5 +-
tools/perf/tests/shell/stat_all_metricgroups.sh | 2 +-
tools/perf/util/cputopo.c | 3 +-
tools/perf/util/debug.c | 2 +-
tools/perf/util/evsel.c | 25 +-
tools/perf/util/metricgroup.c | 4 +-
tools/perf/util/probe-event.c | 3 +
tools/testing/kunit/kunit_json.py | 2 +
tools/testing/kunit/kunit_tool_test.py | 6 +
tools/testing/selftests/bpf/btf_helpers.c | 9 +-
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 5 +-
.../selftests/bpf/prog_tests/migrate_reuseport.c | 4 +-
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 2 +
.../testing/selftests/bpf/prog_tests/tc_redirect.c | 7 +
tools/testing/selftests/bpf/xdpxceiver.c | 6 +-
tools/testing/selftests/clone3/clone3.c | 6 +
.../selftests/ftrace/test.d/kprobe/profile.tc | 2 +-
tools/testing/selftests/kselftest_harness.h | 2 +-
tools/testing/selftests/kvm/.gitignore | 2 +-
tools/testing/selftests/kvm/Makefile | 4 +-
.../selftests/kvm/include/x86_64/processor.h | 7 +
tools/testing/selftests/kvm/lib/x86_64/processor.c | 33 +-
.../kvm/x86_64/{get_cpuid_test.c => cpuid_test.c} | 30 +
.../selftests/powerpc/security/spectre_v2.c | 2 +-
tools/testing/selftests/powerpc/signal/.gitignore | 1 +
tools/testing/selftests/powerpc/signal/Makefile | 1 +
.../selftests/powerpc/signal/sigreturn_kernel.c | 132 +++
.../selftests/vm/charge_reserved_hugetlb.sh | 34 +-
tools/testing/selftests/vm/hmm-tests.c | 42 +
.../selftests/vm/hugetlb_reparenting_test.sh | 21 +-
tools/testing/selftests/vm/write_hugetlb_memory.sh | 2 +-
virt/kvm/kvm_main.c | 5 +-
1127 files changed, 10720 insertions(+), 6000 deletions(-)
^ permalink raw reply [relevance 1%]
* [PATCH 5.15 696/846] powerpc/64s/radix: Fix huge vmap false positive
2022-01-24 18:31 1% [PATCH 5.15 000/846] 5.15.17-rc1 review Greg Kroah-Hartman
@ 2022-01-24 18:43 12% ` Greg Kroah-Hartman
0 siblings, 0 replies; 200+ results
From: Greg Kroah-Hartman @ 2022-01-24 18:43 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, stable, Nicholas Piggin, Michael Ellerman
From: Nicholas Piggin <npiggin@gmail.com>
commit 467ba14e1660b52a2f9338b484704c461bd23019 upstream.
pmd_huge() is defined to false when HUGETLB_PAGE is not configured, but
the vmap code still installs huge PMDs. This leads to false bad PMD
errors when vunmapping because it is not seen as a huge PTE, and the bad
PMD check catches it. The end result may not be much more serious than
some bad pmd warning messages, because the pmd_none_or_clear_bad() does
what we wanted and clears the huge PTE anyway.
Fix this by checking pmd_is_leaf(), which checks for a PTE regardless of
config options. The whole huge/large/leaf stuff is a tangled mess but
that's kernel-wide and not something we can improve much in arch/powerpc
code.
pmd_page(), pud_page(), etc., called by vmalloc_to_page() on huge vmaps
can similarly trigger a false VM_BUG_ON when CONFIG_HUGETLB_PAGE=n, so
those checks are adjusted. The checks were added by commit d6eacedd1f0e
("powerpc/book3s: Use config independent helpers for page table walk"),
while implementing a similar fix for other page table walking functions.
Fixes: d909f9109c30 ("powerpc/64s/radix: Enable HAVE_ARCH_HUGE_VMAP")
Cc: stable@vger.kernel.org # v5.3+
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211216103342.609192-1-npiggin@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/powerpc/mm/book3s64/radix_pgtable.c | 4 ++--
arch/powerpc/mm/pgtable_64.c | 14 +++++++++++---
2 files changed, 13 insertions(+), 5 deletions(-)
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -1093,7 +1093,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t
int pud_clear_huge(pud_t *pud)
{
- if (pud_huge(*pud)) {
+ if (pud_is_leaf(*pud)) {
pud_clear(pud);
return 1;
}
@@ -1140,7 +1140,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t
int pmd_clear_huge(pmd_t *pmd)
{
- if (pmd_huge(*pmd)) {
+ if (pmd_is_leaf(*pmd)) {
pmd_clear(pmd);
return 1;
}
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -102,7 +102,8 @@ EXPORT_SYMBOL(__pte_frag_size_shift);
struct page *p4d_page(p4d_t p4d)
{
if (p4d_is_leaf(p4d)) {
- VM_WARN_ON(!p4d_huge(p4d));
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!p4d_huge(p4d));
return pte_page(p4d_pte(p4d));
}
return virt_to_page(p4d_pgtable(p4d));
@@ -112,7 +113,8 @@ struct page *p4d_page(p4d_t p4d)
struct page *pud_page(pud_t pud)
{
if (pud_is_leaf(pud)) {
- VM_WARN_ON(!pud_huge(pud));
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!pud_huge(pud));
return pte_page(pud_pte(pud));
}
return virt_to_page(pud_pgtable(pud));
@@ -125,7 +127,13 @@ struct page *pud_page(pud_t pud)
struct page *pmd_page(pmd_t pmd)
{
if (pmd_is_leaf(pmd)) {
- VM_WARN_ON(!(pmd_large(pmd) || pmd_huge(pmd)));
+ /*
+ * vmalloc_to_page may be called on any vmap address (not only
+ * vmalloc), and it uses pmd_page() etc., when huge vmap is
+ * enabled so these checks can't be used.
+ */
+ if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
+ VM_WARN_ON(!(pmd_large(pmd) || pmd_huge(pmd)));
return pte_page(pmd_pte(pmd));
}
return virt_to_page(pmd_page_vaddr(pmd));
^ permalink raw reply [relevance 12%]
* [PATCH 5.15 000/846] 5.15.17-rc1 review
@ 2022-01-24 18:31 1% Greg Kroah-Hartman
2022-01-24 18:43 12% ` [PATCH 5.15 696/846] powerpc/64s/radix: Fix huge vmap false positive Greg Kroah-Hartman
0 siblings, 1 reply; 200+ results
From: Greg Kroah-Hartman @ 2022-01-24 18:31 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, torvalds, akpm, linux, shuah, patches,
lkft-triage, pavel, jonathanh, f.fainelli, sudipm.mukherjee,
stable
This is the start of the stable review cycle for the 5.15.17 release.
There are 846 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Wed, 26 Jan 2022 18:39:11 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.15.17-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.15.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Linux 5.15.17-rc1
Andrey Konovalov <andreyknvl@gmail.com>
lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test
Moshe Tal <moshet@nvidia.com>
bonding: Fix extraction of ports from the packet headers
Alistair Popple <apopple@nvidia.com>
mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
Miaoqian Lin <linmq006@gmail.com>
lib82596: Fix IRQ check in sni_82596_probe
Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
scripts/dtc: dtx_diff: remove broken example from help text
Maxim Mikityanskiy <maximmi@nvidia.com>
sch_api: Don't skip qdisc attach on ingress
Sam Protsenko <semen.protsenko@linaro.org>
dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7
Alexander Stein <alexander.stein@mailbox.org>
dt-bindings: display: meson-vpu: Add missing amlogic,canvas property
Alexander Stein <alexander.stein@mailbox.org>
dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property
Tom Rix <trix@redhat.com>
net: mscc: ocelot: fix using match before it is set
Claudiu Beznea <claudiu.beznea@microchip.com>
net: phy: micrel: use kszphy_suspend()/kszphy_resume for irq aware devices
Ard Biesheuvel <ardb@kernel.org>
net: cpsw: avoid alignment faults by taking NET_IP_ALIGN into account
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: sfp: fix high power modules without diagnostic monitoring
Horatiu Vultur <horatiu.vultur@microchip.com>
net: ocelot: Fix the call to switchdev_bridge_port_offload
Tom Rix <trix@redhat.com>
net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config()
Slark Xiao <slark_xiao@163.com>
net: wwan: Fix MRU mismatch issue which may lead to data connection lost
Sergey Shtylyov <s.shtylyov@omp.ru>
bcmgenet: add WOL IRQ check
Vladimir Oltean <vladimir.oltean@nxp.com>
net: mscc: ocelot: don't let phylink re-enable TX PAUSE on the NPI port
Kevin Bracey <kevin@bracey.fi>
net_sched: restore "mpu xxx" handling
Alex Elder <elder@linaro.org>
net: ipa: fix atomic update in ipa_endpoint_replenish()
Jie Wang <wangjie125@huawei.com>
net: bonding: fix bond_xmit_broadcast return value error bug
Miroslav Lichvar <mlichvar@redhat.com>
net: fix sock_timestamping_bind_phc() to release device
David Heidelberg <david@ixit.cz>
arm64: dts: qcom: msm8996: drop not documented adreno properties
Leon Romanovsky <leon@kernel.org>
devlink: Remove misleading internal_flags from health reporter dump
Zechuan Chen <chenzechuan1@huawei.com>
perf probe: Fix ppc64 'perf probe add events failed' case
Uwe Kleine-König <uwe@kleine-koenig.org>
perf tools: Drop requirement for libstdc++.so for libopencsd check
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix at_xdmac_lld struct definition
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix lld view setting
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Fix concurrency over xfers_list
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Print debug message after realeasing the lock
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
Tudor Ambarus <tudor.ambarus@microchip.com>
dmaengine: at_xdmac: Don't start transactions at tx_submit level
Adrian Hunter <adrian.hunter@intel.com>
perf script: Fix hex dump character output
Guillaume Nault <gnault@redhat.com>
libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route()
Guillaume Nault <gnault@redhat.com>
gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst()
Eli Cohen <elic@nvidia.com>
vdpa/mlx5: Restore cur_num_vqs in case of failure in change_num_qps()
Guillaume Nault <gnault@redhat.com>
xfrm: Don't accidentally set RTO_ONLINK in decode_session4()
Johannes Berg <johannes.berg@intel.com>
iwlwifi: fix Bz NMI behaviour
Eric Dumazet <edumazet@google.com>
netns: add schedule point in ops_exit_list()
Eric Dumazet <edumazet@google.com>
inet: frags: annotate races around fqdir->dead and fqdir->high_thresh
Eric W. Biederman <ebiederm@xmission.com>
taskstats: Cleanup the use of task->exit_code
Michael S. Tsirkin <mst@redhat.com>
virtio_ring: mark ring unused on error
Eli Cohen <elic@nvidia.com>
vdpa/mlx5: Fix wrong configuration of virtio_version_1_0
Laurence de Bruxelles <lfdebrux@gmail.com>
rtc: pxa: fix null pointer dereference
Dmitry Torokhov <dmitry.torokhov@gmail.com>
HID: vivaldi: fix handling devices not using numbered reports
Johannes Berg <johannes.berg@intel.com>
um: gitignore: Add kernel/capflags.c
Yury Norov <yury.norov@gmail.com>
bitops: protect find_first_{,zero}_bit properly
Robert Hancock <robert.hancock@calian.com>
net: axienet: increase default TX ring size to 128
Robert Hancock <robert.hancock@calian.com>
net: axienet: fix for TX busy handling
Robert Hancock <robert.hancock@calian.com>
net: axienet: fix number of TX ring slots for available check
Robert Hancock <robert.hancock@calian.com>
net: axienet: Fix TX ring slot available check
Robert Hancock <robert.hancock@calian.com>
net: axienet: limit minimum TX ring size
Robert Hancock <robert.hancock@calian.com>
net: axienet: add missing memory barriers
Robert Hancock <robert.hancock@calian.com>
net: axienet: reset core on initialization prior to MDIO access
Robert Hancock <robert.hancock@calian.com>
net: axienet: Wait for PhyRstCmplt after core reset
Robert Hancock <robert.hancock@calian.com>
net: axienet: increase reset timeout
Wen Gu <guwen@linux.alibaba.com>
net/smc: Fix hung_task when removing SMC-R devices
Miaoqian Lin <linmq006@gmail.com>
gpio: idt3243x: Fix IRQ check in idt_gpio_probe
Miaoqian Lin <linmq006@gmail.com>
gpio: mpc8xxx: Fix IRQ check in mpc8xxx_probe
John Keeping <john@metanate.com>
pinctrl/rockchip: fix gpio device creation
Robert Hancock <robert.hancock@calian.com>
clk: si5341: Fix clock HW provider cleanup
Stephen Boyd <sboyd@kernel.org>
clk: Emit a stern warning with writable debugfs enabled
Eric Dumazet <edumazet@google.com>
af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress
Dan Carpenter <dan.carpenter@oracle.com>
crypto: octeontx2 - uninitialized variable in kvf_limits_store()
Chao Yu <chao@kernel.org>
f2fs: fix to check available space of CP area correctly in update_ckpt_flags()
Chao Yu <chao@kernel.org>
f2fs: fix to reserve space for IO align feature
Hyeong-Jun Kim <hj514.kim@samsung.com>
f2fs: compress: fix potential deadlock of compress file
Chao Yu <chao@kernel.org>
f2fs: fix to avoid panic in is_alive() if metadata is inconsistent
Fengnan Chang <changfengnan@vivo.com>
f2fs: fix remove page failed in invalidate compress pages
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Remove unused compile options
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Remove explicit transparent hugepages support
Geert Uytterhoeven <geert@linux-m68k.org>
riscv: dts: microchip: mpfs: Drop empty chosen node
Miaoqian Lin <linmq006@gmail.com>
parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries
Tobias Waldekranz <tobias@waldekranz.com>
net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module
Tobias Waldekranz <tobias@waldekranz.com>
net/fsl: xgmac_mdio: Add workaround for erratum A-009885
Guillaume Nault <gnault@redhat.com>
mlx5: Don't accidentally set RTO_ONLINK before mlx5e_route_lookup_ipv4_get()
Eric Dumazet <edumazet@google.com>
ipv4: avoid quadratic behavior in netns dismantle
Eric Dumazet <edumazet@google.com>
ipv4: update fib_info_cnt under spinlock protection
German Gomez <german.gomez@arm.com>
perf evsel: Override attr->sample_period for non-libpfm4 events
Daniel Borkmann <daniel@iogearbox.net>
bpf: Mark PTR_TO_FUNC register initially with zero offset
Yafang Shao <laoar.shao@gmail.com>
bpf: Fix mount source show for bpffs
Toke Høiland-Jørgensen <toke@redhat.com>
xdp: check prog type before updating BPF link
Quentin Monnet <quentin@isovalent.com>
bpftool: Fix indent in option lists in the documentation
Quentin Monnet <quentin@isovalent.com>
bpftool: Remove inclusion of utilities.mak from Makefiles
Russell King <russell.king@oracle.com>
arm64/bpf: Remove 128MB limit for BPF JIT programs
Maxime Ripard <maxime@cerno.tech>
drm/vc4: crtc: Copy assigned channel to the CRTC
Maxime Ripard <maxime@cerno.tech>
drm/vc4: Fix non-blocking commit getting stuck forever
Maxime Ripard <maxime@cerno.tech>
drm/vc4: crtc: Drop feed_txp from state
Ye Bin <yebin10@huawei.com>
block: Fix fsync always failed if once failed
Jens Axboe <axboe@kernel.dk>
block: fix async_depth sysfs interface for mq-deadline
Tobias Waldekranz <tobias@waldekranz.com>
powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses
Anders Roxell <anders.roxell@linaro.org>
powerpc/cell: Fix clang -Wimplicit-fallthrough warning
Moshe Shemesh <moshe@nvidia.com>
Revert "net/mlx5: Add retry mechanism to the command entry index allocation"
Amelie Delaunay <amelie.delaunay@foss.st.com>
dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK
Chengguang Xu <cgxu519@mykernel.net>
RDMA/rxe: Fix a typo in opcode name
Yixing Liu <liuyixing1@huawei.com>
RDMA/hns: Modify the mapping attribute of doorbell to device
Dave Jiang <dave.jiang@intel.com>
dmaengine: idxd: fix wq settings post wq disable
Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
dmaengine: uniphier-xdmac: Fix type of address variables
Håkon Bugge <haakon.bugge@oracle.com>
RDMA/cma: Remove open coding of overflow checking for private_data_len
Miaoqian Lin <linmq006@gmail.com>
scsi: ufs: ufs-mediatek: Fix error checking in ufs_mtk_init_va09_pwr_ctrl()
Bart Van Assche <bvanassche@acm.org>
scsi: core: Show SCMD_LAST in text form
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: hci_sync: Fix not setting adv set duration
Markus Reichl <m.reichl@fivetechno.de>
net: usb: Correct reset handling of smsc95xx
Mark Chen <mark-yw.chen@mediatek.com>
Bluetooth: btusb: Return error code when getting patch status failed
Randy Dunlap <rdunlap@infradead.org>
Documentation: fix firewire.rst ABI file path error
Lukas Bulwahn <lukas.bulwahn@gmail.com>
Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization
Alexandre Ghiti <alexandre.ghiti@canonical.com>
Documentation, arch: Remove leftovers from CIFS_WEAK_PW_HASH
Alexandre Ghiti <alexandre.ghiti@canonical.com>
Documentation, arch: Remove leftovers from raw device
Sakari Ailus <sakari.ailus@linux.intel.com>
Documentation: ACPI: Fix data node reference documentation
Daniel Thompson <daniel.thompson@linaro.org>
Documentation: dmaengine: Correctly describe dmatest with channel unset
Mike Leach <mike.leach@linaro.org>
Documentation: coresight: Fix documentation issue
Randy Dunlap <rdunlap@infradead.org>
media: correct MEDIA_TEST_SUPPORT help text
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Make sure the device is powered with CEC
Suresh Udipi <sudipi@jp.adit-jv.com>
media: rcar-csi2: Optimize the selection PHTW register
Marc Kleine-Budde <mkl@pengutronix.de>
can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message
Ben Hutchings <ben@decadent.org.uk>
firmware: Update Kconfig help text for Google firmware
Baruch Siach <baruch@tkos.co.il>
of: base: Improve argument length mismatch error
Christian König <christian.koenig@amd.com>
drm/radeon: fix error handling in radeon_driver_open_kms
Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
Revert "drm/amdgpu: Don't inherit GEM object VMAs in child process"
Aaron Ma <aaron.ma@canonical.com>
ath11k: qmi: avoid error messages when dma allocation fails
Nikita Yushchenko <nikita.yushchenko@virtuozzo.com>
tracing/osnoise: Properly unhook events if start_per_cpu_kthreads() fails
Theodore Ts'o <tytso@mit.edu>
ext4: don't use the orphan list when migrating an inode
Zhang Yi <yi.zhang@huawei.com>
ext4: fix an use-after-free issue about data=journal writeback mode
Ye Bin <yebin10@huawei.com>
ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits'
Sebastian Andrzej Siewior <bigeasy@linutronix.de>
ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal
Xin Yin <yinxin.x@bytedance.com>
ext4: fast commit may miss tracking unwritten range during ftruncate
Xin Yin <yinxin.x@bytedance.com>
ext4: use ext4_ext_remove_space() for fast commit replay delete range
Ye Bin <yebin10@huawei.com>
ext4: Fix BUG_ON in ext4_bread when write quota data
Luís Henriques <lhenriques@suse.de>
ext4: set csum seed in tmp inode while migrating to extents
Xin Yin <yinxin.x@bytedance.com>
ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE
Harshad Shirwadkar <harshadshirwadkar@gmail.com>
ext4: initialize err_blk before calling __ext4_get_inode_loc
Chunguang Xu <brookxu@tencent.com>
ext4: fix a possible ABBA deadlock due to busy PA
Jan Kara <jack@suse.cz>
ext4: make sure quota gets properly shutdown on error
Jan Kara <jack@suse.cz>
ext4: make sure to reset inode lockdep class when quota enabling fails
Filipe Manana <fdmanana@suse.com>
btrfs: respect the max size in the header when activating swap file
Josef Bacik <josef@toxicpanda.com>
btrfs: check the root node for uptodate before returning it
Filipe Manana <fdmanana@suse.com>
btrfs: fix deadlock between quota enable and other quota operations
Nicolas Dichtel <nicolas.dichtel@6wind.com>
xfrm: fix dflt policy check when there is no policy configured
Ghalem Boudour <ghalem.boudour@6wind.com>
xfrm: fix policy lookup for ipv6 gre packets
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Correctly set PCIe capabilities
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Fix definitions of reserved bits
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space
Pali Rohár <pali@kernel.org>
PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only
Lukas Wunner <lukas@wunner.de>
PCI: pciehp: Fix infinite loop in IRQ handler upon power fault
Hans de Goede <hdegoede@redhat.com>
PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors
Rob Herring <robh@kernel.org>
PCI: xgene: Fix IB window setup
José Roberto de Souza <jose.souza@intel.com>
drm/i915/display/ehl: Update voltage swing table
Alex Deucher <alexander.deucher@amd.com>
drm/amdgpu: don't do resets on APUs which don't support it
James Smart <jsmart2021@gmail.com>
scsi: lpfc: Fix lpfc_force_rscn ndlp kref imbalance
Nicholas Piggin <npiggin@gmail.com>
powerpc/64s/radix: Fix huge vmap false positive
John David Anglin <dave.anglin@bell.net>
parisc: Fix lpa and lpa_user defines
Brian Norris <briannorris@chromium.org>
drm/bridge: analogix_dp: Make PSR-exit block less
Ilia Mirkin <imirkin@alum.mit.edu>
drm/nouveau/kms/nv04: use vzalloc for nv04_display
Yizhuo Zhai <yzhai003@ucr.edu>
drm/amd/display: Fix the uninitialized variable in enable_stream_features()
Lucas Stach <l.stach@pengutronix.de>
drm/etnaviv: limit submit sizes
Dmitry Osipenko <digetx@gmail.com>
drm/tegra: submit: Add missing pm_runtime_mark_last_busy()
Sakari Ailus <sakari.ailus@linux.intel.com>
device property: Fix fwnode_graph_devcon_match() fwnode leak
Alexander Gordeev <agordeev@linux.ibm.com>
s390/mm: fix 2KB pgtable release race
Ilan Peer <ilan.peer@intel.com>
iwlwifi: mvm: Increase the scan timeout guard to 30 seconds
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
remoteproc: imx_rproc: Fix a resource leak in the remove function
Steven Rostedt <rostedt@goodmis.org>
tracing: Have syscall trace events use trace_event_buffer_lock_reserve()
Xiangyang Zhang <xyz.sun.ok@gmail.com>
tracing/kprobes: 'nmissed' not showed correctly for kretprobe
Andrey Ryabinin <arbn@yandex-team.com>
sched/cpuacct: Fix user/system in shown cpuacct.usage*
Andrey Ryabinin <arbn@yandex-team.com>
cputime, cpuacct: Include guest time in user time in cpuacct.stat
Lukas Wunner <lukas@wunner.de>
serial: Fix incorrect rs485 polarity on uart open
Xie Yongji <xieyongji@bytedance.com>
fuse: Pass correct lend value to filemap_write_and_wait_range()
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
HID: magicmouse: Fix an error handling path in magicmouse_probe()
Xiao Ni <xni@redhat.com>
md: Move alloc/free acct bioset in to personality
Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
xen/gntdev: fix unmap notification order
Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
spi: uniphier: Fix a bug that doesn't point to private data correctly
Dmitry Osipenko <digetx@gmail.com>
mfd: tps65910: Set PWR_OFF bit during driver probe
Patrick Williams <patrick@stwcx.xyz>
tpm: fix NPE on probe for missing device
Lino Sanfilippo <LinoSanfilippo@gmx.de>
tpm: fix potential NULL pointer access in tpm_del_char_device
Petr Cvachoucek <cvachoucek@gmail.com>
ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers
Meng Li <Meng.Li@windriver.com>
crypto: caam - replace this_cpu_ptr with raw_cpu_ptr
Marek Vasut <marex@denx.de>
crypto: stm32/crc32 - Fix kernel BUG triggered in probe()
Heiner Kallweit <hkallweit1@gmail.com>
crypto: omap-aes - Fix broken pm_runtime_and_get() usage
Zhu Lingshan <lingshan.zhu@intel.com>
ifcvf/vDPA: fix misuse virtio-net device config size for blk dev
Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
rpmsg: core: Clean up resources on announce_create failure.
Andrew Lunn <andrew@lunn.ch>
udp6: Use Segment Routing Header for dest address if present
Andrew Lunn <andrew@lunn.ch>
icmp: ICMPV6: Examine invoking packet for Segment Route Headers.
Andrew Lunn <andrew@lunn.ch>
seg6: export get_srh() for ICMP handling
Conor Dooley <conor.dooley@microchip.com>
mailbox: change mailbox-mpfs compatible string
Miaoqian Lin <linmq006@gmail.com>
phy: mediatek: Fix missing check in mtk_mipi_tx_probe
Ohad Sharabi <osharabi@habana.ai>
habanalabs: skip read fw errors if dynamic descriptor invalid
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8183: fix device_node leak
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8173: fix device_node leak
Chunfeng Yun <chunfeng.yun@mediatek.com>
phy: phy-mtk-tphy: add support efuse setting
Tzung-Bi Shih <tzungbi@google.com>
ASoC: mediatek: mt8192-mt6359: fix device_node leak
Sreekanth Reddy <sreekanth.reddy@broadcom.com>
scsi: mpi3mr: Fixes around reply request queues
Christoph Hellwig <hch@lst.de>
scsi: sr: Don't use GFP_DMA
Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
MIPS: Octeon: Fix build errors using clang
Michael Ellerman <mpe@ellerman.id.au>
selftests/powerpc: Add a test of sigreturning to the kernel
Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters
Marc Zyngier <maz@kernel.org>
irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time
Ye Guojin <ye.guojin@zte.com.cn>
MIPS: OCTEON: add put_device() after of_find_device_by_node()
Jan Kara <jack@suse.cz>
udf: Fix error handling in udf_new_inode()
Hari Bathini <hbathini@linux.ibm.com>
powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic
Hari Bathini <hbathini@linux.ibm.com>
powerpc: handle kdump appropriately with crash_kexec_post_notifiers option
Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
selftests/powerpc/spectre_v2: Return skip code when miss_percent is high
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/40x: Map 32Mbytes of memory at startup
Nathan Chancellor <nathan@kernel.org>
MIPS: Loongson64: Use three arguments for slti
Takashi Iwai <tiwai@suse.de>
ALSA: seq: Set upper limit of processed events
James Smart <jsmart2021@gmail.com>
scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup
James Smart <jsmart2021@gmail.com>
scsi: lpfc: Fix leaked lpfc_dmabuf mbox allocations with NPIV
Bart Van Assche <bvanassche@acm.org>
scsi: ufs: Fix a kernel crash during shutdown
Stephan Gerhold <stephan@gerhold.net>
interconnect: qcom: rpm: Prevent integer overflow in rate
Christoph Hellwig <hch@lst.de>
dm: fix alloc_dax error handling in alloc_dev
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
nvmem: core: set size for sysfs bin file
Christophe Leroy <christophe.leroy@csgroup.eu>
w1: Misuse of get_user()/put_user() reported by sparse
Alexey Kardashevskiy <aik@ozlabs.ru>
KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST
Alexey Kardashevskiy <aik@ozlabs.ru>
KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/powermac: Add missing lockdep_register_key()
Martin Blumenstingl <martin.blumenstingl@googlemail.com>
clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB
Joakim Tjernlund <joakim.tjernlund@infinera.com>
i2c: mpc: Correct I2C reset procedure
Michael Ellerman <mpe@ellerman.id.au>
powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING
Heiner Kallweit <hkallweit1@gmail.com>
i2c: i801: Don't silently correct invalid transfer size
Ye Guojin <ye.guojin@zte.com.cn>
ASoC: imx-hdmi: add put_device() after of_find_device_by_node()
Nicholas Piggin <npiggin@gmail.com>
powerpc/watchdog: Fix missed watchdog reset due to memory ordering race
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/btext: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/cell: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/powernv: add missing of_node_put
Julia Lawall <Julia.Lawall@lip6.fr>
powerpc/6xx: add missing of_node_put
Ingo Molnar <mingo@kernel.org>
x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs
Marc Kleine-Budde <mkl@pengutronix.de>
can: flexcan: add more quirks to describe RX path capabilities
Marc Kleine-Budde <mkl@pengutronix.de>
can: flexcan: rename RX modes
Dario Binacchi <dario.binacchi@amarulasolutions.com>
can: flexcan: allow to change quirks at runtime
Mauro Carvalho Chehab <mchehab@kernel.org>
scripts: sphinx-pre-install: Fix ctex support on Debian
John David Anglin <dave.anglin@bell.net>
parisc: Avoid calling faulthandler_disabled() twice
Maor Dickman <maord@nvidia.com>
net/mlx5e: Unblock setting vid 0 for VF in case PF isn't eswitch manager
Maher Sanalla <msanalla@nvidia.com>
net/mlx5: Update log_max_qp value to FW max capability
Jason A. Donenfeld <Jason@zx2c4.com>
random: do not throw away excess input to crng_fast_load
Lukas Wunner <lukas@wunner.de>
serial: core: Keep mctrl register state and cached copy in sync
Lukas Wunner <lukas@wunner.de>
serial: pl011: Drop CR register reset on set_termios
Lukas Wunner <lukas@wunner.de>
serial: pl010: Drop CR register reset on set_termios
Konrad Dybcio <konrad.dybcio@somainline.org>
regulator: qcom_smd: Align probe function with rpmh-regulator
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: gemini: allow any RGMII interface mode
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: phy: marvell: configure RGMII delays for 88E1118
Danielle Ratson <danieller@nvidia.com>
mlxsw: pci: Avoid flow control for EMAD packets
Jiri Olsa <jolsa@redhat.com>
bpf/selftests: Fix namespace mount setup in tc_redirect
Joe Thornber <ejt@redhat.com>
dm space map common: add bounds check to sm_ll_lookup_bitmap()
Joe Thornber <ejt@redhat.com>
dm btree: add a defensive bounds check to insert_at()
Ping-Ke Shih <pkshih@realtek.com>
mac80211: allow non-standard VHT MCS-10/11
Florian Fainelli <f.fainelli@gmail.com>
net: mdio: Demote probed message to debug print
Josef Bacik <josef@toxicpanda.com>
btrfs: remove BUG_ON(!eie) in find_parent_nodes
Josef Bacik <josef@toxicpanda.com>
btrfs: remove BUG_ON() in find_parent_nodes()
Mario Limonciello <mario.limonciello@amd.com>
ACPI: CPPC: Check present CPUs for determining _CPC is valid
Thomas Weißschuh <linux@weissschuh.net>
ACPI: battery: Add the ThinkPad "Not Charging" quirk
Marina Nikolic <Marina.Nikolic@amd.com>
amdgpu/pm: Make sysfs pm attributes as read-only for VFs
Zongmin Zhou <zhouzongmin@kylinos.cn>
drm/amdgpu: fixup bad vram size on gmc v8
Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
drm/amdgpu: Don't inherit GEM object VMAs in child process
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
mmc: mtk-sd: Use readl_poll_timeout instead of open-coded polling
Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5
Sudeep Holla <sudeep.holla@arm.com>
ACPICA: Fix wrong interpretation of PCC address
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R()
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPICA: Utilities: Avoid deleting the same object twice in a row
Mark Langsdorf <mlangsdo@redhat.com>
ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions
Kyeong Yoo <kyeong.yoo@alliedtelesis.co.nz>
jffs2: GC deadlock reading a page that is used in jffs2_write_begin()
Lucas Stach <l.stach@pengutronix.de>
drm/etnaviv: consider completed fence seqno in hang check
Antony Antony <antony.antony@secunet.com>
xfrm: rate limit SA mapping change message to user space
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES
Tedd Ho-Jeong An <tedd.an@intel.com>
Bluetooth: btintel: Add missing quirks and msft ext for legacy bootloader
Ben Greear <greearb@candelatech.com>
ath11k: Fix napi related hang
Randy Dunlap <rdunlap@infradead.org>
um: registers: Rename function names to avoid conflicts and build problems
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
block: check minor range in device_add_disk()
Hector Martin <marcan@marcan.st>
mmc: sdhci-pci-gli: GL9755: Support for CD/WP inversion on OF platforms
Luca Coelho <luciano.coelho@intel.com>
iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ
Avraham Stern <avraham.stern@intel.com>
iwlwifi: mvm: fix AUX ROC removal
Ilan Peer <ilan.peer@intel.com>
iwlwifi: mvm: Fix calculation of frame length
Johannes Berg <johannes.berg@intel.com>
iwlwifi: remove module loading failure message
Johannes Berg <johannes.berg@intel.com>
iwlwifi: fix leaks/bad data after failed firmware load
Changcheng Deng <deng.changcheng@zte.com.cn>
PM: AVS: qcom-cpr: Use div64_ul instead of do_div
Po-Hao Huang <phhuang@realtek.com>
rtw88: 8822c: update rx settings to prevent potential hw deadlock
Zekun Shen <bruceshenzk@gmail.com>
ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet()
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep()
Felix Fietkau <nbd@nbd.name>
mt76: mt7615: improve wmm index allocation
Xing Song <xing.song@mediatek.com>
mt76: do not pass the received frame with decryption error
Peter Chiu <chui-hao.chiu@mediatek.com>
mt76: mt7615: fix possible deadlock while mt7615_register_ext_phy()
Kai-Heng Feng <kai.heng.feng@canonical.com>
usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
cpufreq: Fix initialization of min and max frequency QoS requests
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
PM: runtime: Add safety net to supplier device release
Weili Qian <qianweili@huawei.com>
crypto: hisilicon/hpre - fix memory leak in hpre_curve25519_src_init()
Peter Gonda <pgonda@google.com>
crypto: ccp - Move SEV_INIT retry for corrupted data
Thierry Reding <treding@nvidia.com>
arm64: tegra: Adjust length of CCPLEX cluster MMIO region
Biwen Li <biwen.li@nxp.com>
arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus
Paul Moore <paul@paul-moore.com>
audit: ensure userspace is penalized the same as the kernel when under pressure
Jingwen Chen <Jingwen.Chen2@amd.com>
drm/amd/amdgpu: fix gmc bo pin count leak in SRIOV
Jingwen Chen <Jingwen.Chen2@amd.com>
drm/amd/amdgpu: fix psp tmr bo pin count leak in SRIOV
Ulf Hansson <ulf.hansson@linaro.org>
mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO
Biju Das <biju.das.jz@bp.renesas.com>
mmc: tmio: reinit card irqs in reset routine
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach()
Mikhail Rudenko <mike.rudenko@gmail.com>
media: rockchip: rkisp1: use device name for debugfs subdir name
Sean Young <sean@mess.org>
media: igorplugusb: receiver overflow should be reported
Alistair Francis <alistair@alistair23.me>
HID: i2c-hid-of: Expose the touchscreen-inverted properties
Alistair Francis <alistair@alistair23.me>
HID: quirks: Allow inverting the absolute X/Y values
Felix Kuehling <Felix.Kuehling@amd.com>
drm/amdkfd: Fix error handling in svm_range_add
Paolo Abeni <pabeni@redhat.com>
bpf: Do not WARN in bpf_warn_invalid_xdp_action()
David Gow <davidgow@google.com>
kunit: Don't crash if no parameters are generated
Suresh Kumar <surkumar@redhat.com>
net: bonding: debug: avoid printing debug logs when bond is not notifying peers
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_read_aux() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_end() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Mark mce_panic() noinstr
Borislav Petkov <bp@suse.de>
x86/mce: Allow instrumentation during task work queueing
Alex Elder <elder@linaro.org>
ARM: dts: qcom: sdx55: fix IPA interconnect definitions
Baochen Qiang <quic_bqiang@quicinc.com>
ath11k: Avoid false DEADLOCK warning reported by lockdep
Heiko Carstens <hca@linux.ibm.com>
selftests/ftrace: make kprobe profile testcase description unique
Iwona Winiarska <iwona.winiarska@intel.com>
gpio: aspeed-sgpio: Convert aspeed_sgpio.lock to raw_spinlock
Iwona Winiarska <iwona.winiarska@intel.com>
gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock
Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
net: phy: prefer 1000baseT over 1000baseKX
Antoine Tenart <atenart@kernel.org>
net-sysfs: update the queue counts in the unregistration path
Sebastian Gottschall <s.gottschall@dd-wrt.com>
ath10k: Fix tx hanging
Wen Gong <quic_wgong@quicinc.com>
ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work
Wander Lairson Costa <wander@redhat.com>
rcutorture: Avoid soft lockup during cpu stall
Shaul Triebitz <shaul.triebitz@intel.com>
iwlwifi: mvm: avoid clearing a just saved session protection id
Johannes Berg <johannes.berg@intel.com>
iwlwifi: mvm: synchronize with FW after multicast commands
Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
arm64: dts: renesas: Fix thermal bindings
Mika Westerberg <mika.westerberg@linux.intel.com>
thunderbolt: Runtime PM activate both ends of the device link
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: m920x: don't use stack on USB reads
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix "variable dereferenced before check 'asd'"
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach()
Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
media: rcar-vin: Update format alignment constraints
James Hilliard <james.hilliard1@gmail.com>
media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds.
Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
drm: rcar-du: Fix CRTC timings when CMM is used
Joerg Roedel <jroedel@suse.de>
x86/mm: Flush global TLB when switching to trampoline page-table
Xiongwei Song <sxwjean@gmail.com>
floppy: Add max size check for user space request
Neal Liu <neal_liu@aspeedtech.com>
usb: uhci: add aspeed ast2600 uhci support
Kishon Vijay Abraham I <kishon@ti.com>
arm64: dts: ti: j721e-main: Fix 'dtbs_check' in serdes_ln_ctrl node
Kishon Vijay Abraham I <kishon@ti.com>
arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Allow specifying acpi_device_override_status() quirks by path
Hans de Goede <hdegoede@redhat.com>
ACPI: Change acpi_device_always_present() into acpi_device_override_status()
Hans de Goede <hdegoede@redhat.com>
ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Introduce a new placement for MOB page tables
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Release ttm memory if probe fails
Adam Ward <Adam.Ward.opensource@diasemi.com>
regulator: da9121: Prevent current limit change when enabled
Mansur Alisha Shaik <mansur@codeaurora.org>
media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions
Sriram R <quic_srirrama@quicinc.com>
ath11k: Avoid NULL ptr access during mgmt tx cleanup
Zekun Shen <bruceshenzk@gmail.com>
rsi: Fix out-of-bounds read in rsi_read_pkt()
Zekun Shen <bruceshenzk@gmail.com>
rsi: Fix use-after-free in rsi_rx_done_handler()
Zekun Shen <bruceshenzk@gmail.com>
mwifiex: Fix skb_over_panic in mwifiex_usb_recv()
Stephan Müller <smueller@chronox.de>
crypto: jitter - consider 32 LSB for APT
Chengfeng Ye <cyeaa@connect.ust.hk>
HSI: core: Fix return freed object in hsi_new_client
Hans de Goede <hdegoede@redhat.com>
gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use
Fugang Duan <fugang.duan@nxp.com>
tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown()
Jiri Slaby <jirislaby@kernel.org>
mxser: keep only !tty test in ISR
Martyn Welch <martyn.welch@collabora.com>
drm/bridge: megachips: Ensure both bridges are probed before registration
Martin Leung <Martin.Leung@amd.com>
drm/amd/display: add else to avoid double destroy clk_mgr
Danielle Ratson <danieller@nvidia.com>
mlxsw: pci: Add shutdown method in PCI driver
Jan Kiszka <jan.kiszka@siemens.com>
soc: ti: pruss: fix referenced node in error message
Alex Deucher <alexander.deucher@amd.com>
drm/amdgpu/display: set vblank_disable_immediate for DC
Yang Li <yang.lee@linux.alibaba.com>
drm/amd/display: check top_pipe_to_program pointer
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART
Marek Vasut <marex@denx.de>
soc: imx: gpcv2: Synchronously suspend MIX domains
Konrad Dybcio <konrad.dybcio@somainline.org>
arm64: dts: qcom: sm8350: Shorten camera-thermal-bottom name
Dinh Nguyen <dinguyen@kernel.org>
EDAC/synopsys: Use the quirk for version instead of ddr version
Yang Li <yang.lee@linux.alibaba.com>
ethernet: renesas: Use div64_ul instead of do_div
Andrii Nakryiko <andrii@kernel.org>
libbpf: Accommodate DWARF/compiler bug with duplicated structs
Zheyu Ma <zheyuma97@gmail.com>
media: b2c2: Add missing check in flexcop_pci_isr:
José Expósito <jose.exposito89@gmail.com>
HID: apple: Do not reset quirks when the Fn key is not found
José Expósito <jose.exposito89@gmail.com>
HID: magicmouse: Report battery level over USB
Hans de Goede <hdegoede@redhat.com>
drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L
Brian Chen <brianchen118@gmail.com>
psi: Fix PSI_MEM_FULL state when tasks are in memstall and doing reclaim
Pavankumar Kondeti <quic_pkondeti@quicinc.com>
usb: gadget: f_fs: Use stream_open() for endpoint files
Haimin Zhang <tcs.kernel@gmail.com>
USB: ehci_brcm_hub_control: Improve port index sanitizing
Amjad Ouled-Ameur <aouledameur@baylibre.com>
usb: dwc3: meson-g12a: fix shared reset control use
Baochen Qiang <bqiang@codeaurora.org>
ath11k: Fix crash caused by uninitialized TX ring
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: handle errors at sh_css_create_isp_params()
Linus Lüssing <linus.luessing@c0d3.blue>
batman-adv: allow netlink usage in unprivileged containers
Wan Jiabing <wanjiabing@vivo.com>
ARM: shmobile: rcar-gen2: Add missing of_node_put()
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: check before deference asd variable
Hans de Goede <hdegoede@redhat.com>
media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: set per-device's default mode
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: fix try_fmt logic
Ben Skeggs <bskeggs@redhat.com>
drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR
Neil Armstrong <narmstrong@baylibre.com>
drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR
Zekun Shen <bruceshenzk@gmail.com>
ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply
Andrii Nakryiko <andrii@kernel.org>
selftests/bpf: Fix bpf_object leak in skb_ctx selftest
Andrii Nakryiko <andrii@kernel.org>
selftests/bpf: Destroy XDP link correctly
Andrii Nakryiko <andrii@kernel.org>
selftests/bpf: Fix memory leaks in btf_type_c_dump() helper
Qiang Yu <yuq825@gmail.com>
drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y
Andrii Nakryiko <andrii@kernel.org>
libbpf: Validate that .BTF and .BTF.ext sections contain data
Alexander Aring <aahringo@redhat.com>
fs: dlm: filter user dlm messages for kernel locks
Archie Pusaka <apusaka@chromium.org>
Bluetooth: Fix removing adv when processing cmd complete
Brian Norris <briannorris@chromium.org>
drm/panel: Delete panel on mipi_dsi_attach() failure
Wei Yongjun <weiyongjun1@huawei.com>
Bluetooth: Fix memory leak of hci device
Wei Yongjun <weiyongjun1@huawei.com>
Bluetooth: Fix debugfs entry leak in hci_register_dev()
Merlijn Wajer <merlijn@wizzup.org>
leds: lp55xx: initialise output direction from dts
Sicelo A. Mhlongo <absicsz@gmail.com>
ARM: dts: omap3-n900: Fix lp5523 for multi color
jason-jh.lin <jason-jh.lin@mediatek.com>
mailbox: fix gce_num of mt8192 driver data
Paul Cercueil <paul@crapouillou.net>
MIPS: compressed: Fix build with ZSTD compression
Paul Cercueil <paul@crapouillou.net>
MIPS: boot/compressed/: add __ashldi3 to target for ZSTD compression
Stephen Boyd <swboyd@chromium.org>
of/fdt: Don't worry about non-memory region overlap for no-map
Baruch Siach <baruch@tkos.co.il>
of: base: Fix phandle argument length mismatch error message
Conor Dooley <conor.dooley@microchip.com>
clk: bm1880: remove kfrees on static allocations
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: fsl_asrc: refine the check of available clock divider
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: imx-card: improve the sound quality for low rate
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: imx-card: Fix mclk calculation issue for akcodec
Shengjiu Wang <shengjiu.wang@nxp.com>
ASoC: imx-card: Need special setting for ak4497 on i.MX8MQ
Taniya Das <tdas@codeaurora.org>
clk: qcom: gcc-sc7280: Mark gcc_cfg_noc_lpass_clk always enabled
Kamal Heib <kamalheib1@gmail.com>
RDMA/cxgb4: Set queue pair state when being queried
Christian A. Ehrhardt <lk@c--e.de>
ALSA: hda/cs8409: Fix Jack detection after resume
Christian A. Ehrhardt <lk@c--e.de>
ALSA: hda/cs8409: Increase delay during jack detection
Alyssa Ross <hi@alyssa.is>
ASoC: fsl_mqs: fix MODULE_ALIAS
Ammar Faizi <ammarfaizi2@gmail.com>
powerpc/xive: Add missing null check after calling kmalloc
Randy Dunlap <rdunlap@infradead.org>
mips: bcm63xx: add support for clk_set_parent()
Randy Dunlap <rdunlap@infradead.org>
mips: lantiq: add support for clk_set_parent()
Sameer Pujar <spujar@nvidia.com>
arm64: tegra: Remove non existent Tegra194 reset
Trevor Wu <trevor.wu@mediatek.com>
ASoC: mediatek: mt8195: correct pcmif BE dai control flow
Wei Yongjun <weiyongjun1@huawei.com>
misc: lattice-ecp3-config: Fix task hung when firmware load failed
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: samsung: idma: Check of ioremap return value
Swapnil Jakhade <sjakhade@cadence.com>
phy: cadence: Sierra: Fix to get correct parent for mux clocks
Michael Ellerman <mpe@ellerman.id.au>
powerpc/64s: Use EMIT_WARN_ENTRY for SRR debug warnings
Michael Ellerman <mpe@ellerman.id.au>
powerpc/64s: Mask NIP before checking against SRR0
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: mediatek: Check for error clk pointer
Ryuta NAKANISHI <nakanishi.ryuta@socionext.com>
phy: uniphier-usb3ss: fix unintended writing zeros to PHY register
Alan Stern <stern@rowland.harvard.edu>
scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume()
Pingfan Liu <kernelfans@gmail.com>
efi: apply memblock cap after memblock_add()
Zhen Lei <thunder.leizhen@huawei.com>
of: fdt: Aggregate the processing of "linux,usable-memory-range"
Trevor Wu <trevor.wu@mediatek.com>
ASoC: mediatek: mt8195: correct default value
Xiongfeng Wang <wangxiongfeng2@huawei.com>
iommu/iova: Fix race between FQ timeout and teardown
Cezary Rojewski <cezary.rojewski@intel.com>
ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: Remove useless irq affinity notifier
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: X2apic mode: mask/unmask interrupts on suspend/resume
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: X2apic mode: setup the INTX registers on mask/unmask
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: X2apic mode: re-enable after resume
Maxim Levitsky <mlevitsk@redhat.com>
iommu/amd: Restore GA log/tail pointer on host resume
Arnd Bergmann <arnd@arndb.de>
dmaengine: pxa/mmp: stop referencing config->slave_id
Lukas Bulwahn <lukas.bulwahn@gmail.com>
mips: fix Kconfig reference to PHYS_ADDR_T_64BIT
Lukas Bulwahn <lukas.bulwahn@gmail.com>
mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support
Dillon Min <dillon.minfei@gmail.com>
clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell
Frank Rowand <frank.rowand@sony.com>
of: unittest: 64 bit dma address test requires arch support
Jim Quinlan <jim2101024@gmail.com>
of: unittest: fix warning on PowerPC frame size warning
Jiasheng Jiang <jiasheng@iscas.ac.cn>
ASoC: rt5663: Handle device_property_read_u32_array error codes
Avihai Horon <avihaih@nvidia.com>
RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry
Avihai Horon <avihaih@nvidia.com>
RDMA/core: Let ib_find_gid() continue search even after empty entry
Rob Clark <robdclark@chromium.org>
iommu/arm-smmu-qcom: Fix TTBR0 read
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/powermac: Add additional missing lockdep_register_key()
Thomas Gleixner <tglx@linutronix.de>
PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity()
Kamal Heib <kamalheib1@gmail.com>
RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
Bart Van Assche <bvanassche@acm.org>
scsi: ufs: Fix race conditions related to driver data
Bart Van Assche <bvanassche@acm.org>
scsi: core: Fix scsi_device_max_queue_depth()
Hector Martin <marcan@marcan.st>
iommu/io-pgtable-arm: Fix table descriptor paddr formatting
Lu Baolu <baolu.lu@linux.intel.com>
iommu: Extend mutex lock scope in iommu_probe_device()
Jiasheng Jiang <jiasheng@iscas.ac.cn>
uio: uio_dmem_genirq: Catch the Exception
Stafford Horne <shorne@gmail.com>
openrisc: Add clone3 ABI wrapper
Todd Kjos <tkjos@google.com>
binder: avoid potential data leakage when copying txn
Todd Kjos <tkjos@google.com>
binder: fix handling of error during copy
Kees Cook <keescook@chromium.org>
char/mwave: Adjust io port register size
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
misc: at25: Make driver OF independent again
Takashi Iwai <tiwai@suse.de>
ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID
Bixuan Cui <cuibixuan@linux.alibaba.com>
ALSA: oss: fix compile error when OSS_DEBUG is enabled
Waiman Long <longman@redhat.com>
clocksource: Avoid accidental unstable marking of clocksources
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/32s: Fix shift-out-of-bounds in KASAN init
Christophe Leroy <christophe.leroy@csgroup.eu>
powerpc/modules: Don't WARN on first module allocation attempt
Athira Rajeev <atrajeev@linux.vnet.ibm.com>
powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC
Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
dt-bindings: thermal: Fix definition of cooling-maps contribution property
Thomas Gleixner <tglx@linutronix.de>
ALSA: hda: Make proper use of timecounter
Jack Wang <jinpu.wang@ionos.com>
RDMA/rtrs-clt: Fix the initial value of min_latency
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ASoC: codecs: wcd938x: add SND_SOC_WCD938_SDW to codec list instead
Lukas Bulwahn <lukas.bulwahn@gmail.com>
ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
Peiwei Hu <jlu.hpw@foxmail.com>
powerpc/prom_init: Fix improper check of prom_getprop()
Adam Ford <aford173@gmail.com>
clk: imx8mn: Fix imx8mn_clko1_sels
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
clk: renesas: rzg2l: propagate return value of_genpd_add_provider_simple()
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
clk: renesas: rzg2l: Check return value of pm_genpd_init()
Igor Pylypiv <ipylypiv@google.com>
scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd()
Kamal Heib <kamalheib1@gmail.com>
RDMA/hns: Validate the pkey index
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit"
Takashi Iwai <tiwai@suse.de>
ALSA: hda: Fix potential deadlock at codec unbinding
Takashi Iwai <tiwai@suse.de>
ALSA: hda: Add missing rwsem around snd_ctl_remove() calls
Takashi Iwai <tiwai@suse.de>
ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls
Takashi Iwai <tiwai@suse.de>
ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible
Jan Kara <jack@suse.cz>
ext4: avoid trim error on fs with small groups
Pavel Skripkin <paskripkin@gmail.com>
net: mcs7830: handle usb read errors properly
Edwin Peer <edwin.peer@broadcom.com>
bnxt_en: use firmware provided max timeout for messages
Edwin Peer <edwin.peer@broadcom.com>
bnxt_en: move coredump functions into dedicated file
Edwin Peer <edwin.peer@broadcom.com>
bnxt_en: Refactor coredump functions
Nathan Chancellor <nathan@kernel.org>
iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()
Paul Blakey <paulb@nvidia.com>
net: openvswitch: Fix ct_state nat flags for conns arriving from tc
Paul Blakey <paulb@nvidia.com>
net: openvswitch: Fix matching zone id for invalid conns arriving from tc
Paul Blakey <paulb@nvidia.com>
net/sched: flow_dissector: Fix matching on zone id for invalid conns
Dominik Brodowski <linux@dominikbrodowski.net>
pcmcia: fix setting of kthread task states
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
can: rcar_canfd: rcar_canfd_channel_probe(): make sure we free CAN network device
Jiasheng Jiang <jiasheng@iscas.ac.cn>
can: xilinx_can: xcan_probe(): check for error irq
Marc Kleine-Budde <mkl@pengutronix.de>
can: softing: softing_startstop(): fix set but not used variable warning
Christophe Jaillet <christophe.jaillet@wanadoo.fr>
tpm_tis: Fix an error handling path in 'tpm_tis_core_init()'
Chen Jun <chenjun102@huawei.com>
tpm: add request_locality before write TPM_INT_ENABLE
Marc Kleine-Budde <mkl@pengutronix.de>
can: mcp251xfd: add missing newline to printed strings
Vladimir Oltean <vladimir.oltean@nxp.com>
net: mscc: ocelot: fix incorrect balancing with down LAG ports
Fabio Estevam <festevam@denx.de>
regmap: Call regmap_debugfs_exit() prior to _init()
Dan Carpenter <dan.carpenter@oracle.com>
netrom: fix api breakage in nr_setsockopt()
Dan Carpenter <dan.carpenter@oracle.com>
ax25: uninitialized variable in ax25_setsockopt()
Subbaraya Sundeep <sbhatta@marvell.com>
octeontx2-af: Increment ptp refcount before use
Miaoqian Lin <linmq006@gmail.com>
spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe
Geliang Tang <geliang.tang@suse.com>
mptcp: fix a DSS option writing error
Matthieu Baerts <matthieu.baerts@tessares.net>
mptcp: fix opt size when sending DSS + MP_FAIL
Paolo Abeni <pabeni@redhat.com>
mptcp: fix per socket endpoint accounting
Dan Carpenter <dan.carpenter@oracle.com>
Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt()
Zizhuang Deng <sunsetdzz@gmail.com>
lib/mpi: Add the return value check of kcalloc()
Moshe Shemesh <moshe@nvidia.com>
net/mlx5: Set command entry semaphore up once got index free
Maor Dickman <maord@nvidia.com>
net/mlx5e: Sync VXLAN udp ports during uplink representor profile change
Shay Drory <shayd@nvidia.com>
net/mlx5: Fix access to sf_dev_table on allocation failure
Paul Blakey <paulb@nvidia.com>
net/mlx5e: Fix matching on modified inner ip_ecn bits
Aya Levin <ayal@nvidia.com>
Revert "net/mlx5e: Block offload of outer header csum for GRE tunnel"
Aya Levin <ayal@nvidia.com>
Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels"
Maor Dickman <maord@nvidia.com>
net/mlx5e: Don't block routes with nexthop objects in SW
Maor Dickman <maord@nvidia.com>
net/mlx5e: Fix wrong usage of fib_info_nh when routes with nexthop objects are used
Aya Levin <ayal@nvidia.com>
net/mlx5e: Fix page DMA map/unmap attributes
Huang Rui <ray.huang@amd.com>
x86, sched: Fix undefined reference to init_freq_invariance_cppc() build error
Valentin Caron <valentin.caron@foss.st.com>
serial: stm32: move tx dma terminate DMA to shutdown
Alyssa Ross <hi@alyssa.is>
serial: liteuart: fix MODULE_ALIAS
Miaoqian Lin <linmq006@gmail.com>
drivers/firmware: Add missing platform_device_put() in sysfb_create_simplefb
Michal Suchanek <msuchanek@suse.de>
debugfs: lockdown: Allow reading debugfs files that are not world readable
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc
José Expósito <jose.exposito89@gmail.com>
HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init
Pavel Hofman <pavel.hofman@ivitera.com>
usb: gadget: u_audio: Subdevice 0 for capture ctls
John Keeping <john@metanate.com>
usb: dwc2: gadget: initialize max_speed from params
Dinh Nguyen <dinguyen@kernel.org>
usb: dwc2: do not gate off the hardware if it does not support clock gating
Miaoqian Lin <linmq006@gmail.com>
usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe
Wen Gu <guwen@linux.alibaba.com>
net/smc: Reset conn->lgr when link group registration fails
Miaoqian Lin <linmq006@gmail.com>
Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe
Jiasheng Jiang <jiasheng@iscas.ac.cn>
Bluetooth: hci_bcm: Check for error irq
Jiasheng Jiang <jiasheng@iscas.ac.cn>
fsl/fman: Check for null pointer after calling devm_ioremap
Jiasheng Jiang <jiasheng@iscas.ac.cn>
staging: greybus: audio: Check null pointer
Dan Carpenter <dan.carpenter@oracle.com>
rocker: fix a sleeping in atomic bug
Eric Dumazet <edumazet@google.com>
ppp: ensure minimum packet size in ppp_write()
Miroslav Lichvar <mlichvar@redhat.com>
net: fix SOF_TIMESTAMPING_BIND_PHC to work with multiple sockets
Florian Westphal <fw@strlen.de>
netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
Pablo Neira Ayuso <pablo@netfilter.org>
netfilter: nft_payload: do not update layer 4 checksum when mangling fragments
Kuniyuki Iwashima <kuniyu@amazon.co.jp>
bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt().
Kris Van Hees <kris.van.hees@oracle.com>
bpf: Fix verifier support for validation of async callbacks
Daniel Borkmann <daniel@iogearbox.net>
bpf: Don't promote bogus looking registers after null check.
John Fastabend <john.fastabend@gmail.com>
bpf, sockmap: Fix double bpf_prog_put on error case in map_link
John Fastabend <john.fastabend@gmail.com>
bpf, sockmap: Fix return codes from tcp_bpf_recvmsg_parser()
Xin Xiong <xiongx18@fudan.edu.cn>
netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
Vladimir Oltean <vladimir.oltean@nxp.com>
net: dsa: fix incorrect function pointer check for MRP ring roles
Daniel Golle <daniel@makrotopia.org>
net: ethernet: mtk_eth_soc: fix return values and refactor MDIO ops
Raed Salem <raeds@nvidia.com>
net/xfrm: IPsec tunnel mode fix inner_ipproto setting in sec_path
Jiasheng Jiang <jiasheng@iscas.ac.cn>
power: reset: mt6397: Check for null res pointer
Zhou Qingyang <zhou1615@umn.edu>
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
Zhou Qingyang <zhou1615@umn.edu>
pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
Hans de Goede <hdegoede@redhat.com>
ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
serial: 8250_bcm7271: Propagate error codes from brcmuart_probe()
Pavel Begunkov <asml.silence@gmail.com>
io_uring: remove double poll on poll update
Zhang Zixun <zhang133010@icloud.com>
x86/mce/inject: Avoid out-of-bounds write when setting flags
Arseny Demidov <arsdemal@gmail.com>
hwmon: (mr75203) fix wrong power-up delay value
Marijn Suijten <marijn.suijten@somainline.org>
regulator: qcom-labibb: OCP interrupts are not a failure while disabled
Dan Carpenter <dan.carpenter@oracle.com>
crypto: octeontx2 - prevent underflow in get_cores_bmap()
Nathan Chancellor <nathan@kernel.org>
x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS
Panicker Harish <quic_pharish@quicinc.com>
Bluetooth: hci_qca: Stop IBS timer during BT OFF
Clément Léger <clement.leger@bootlin.com>
software node: fix wrong node passed to find nargs_prop
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Respect enabled-strings in set_brightness
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Override default length with qcom,enabled-strings
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Fix off-by-one maximum with default num_strings
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Pass number of elements to read to read_u32_array
Marijn Suijten <marijn.suijten@somainline.org>
backlight: qcom-wled: Validate enabled string indices in DT
Paul Chaignon <paul@isovalent.com>
bpftool: Enable line buffering for stdout
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: L2CAP: Fix using wrong mode
Johannes Berg <johannes.berg@intel.com>
um: virtio_uml: Fix time-travel external time propagation
Johannes Berg <johannes.berg@intel.com>
lib/logic_iomem: Fix operation on 32-bit
Johannes Berg <johannes.berg@intel.com>
lib/logic_iomem: Fix 32-bit build
Johannes Berg <johannes.berg@intel.com>
um: virt-pci: Fix 32-bit compile
Johannes Berg <johannes.berg@intel.com>
um: rename set_signals() to um_set_signals()
Johannes Berg <johannes.berg@intel.com>
um: fix ndelay/udelay defines
Bernard Zhao <bernard@vivo.com>
selinux: fix potential memleak in selinux_add_opt()
Christoph Hellwig <hch@lst.de>
block: fix error unwinding in device_add_disk
Sergey Shtylyov <s.shtylyov@omp.ru>
mmc: meson-mx-sdio: add IRQ check
Sergey Shtylyov <s.shtylyov@omp.ru>
mmc: meson-mx-sdhc: add IRQ check
Avraham Stern <avraham.stern@intel.com>
iwlwifi: mvm: set protected flag only for NDP ranging
Avraham Stern <avraham.stern@intel.com>
iwlwifi: mvm: perform 6GHz passive scan after suspend
Nathan Errera <nathan.errera@intel.com>
iwlwifi: mvm: test roc running status bits before removing the sta
Johannes Berg <johannes.berg@intel.com>
iwlwifi: mvm: fix 32-bit build in FTM
Kai-Heng Feng <kai.heng.feng@canonical.com>
rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE
Ping-Ke Shih <pkshih@realtek.com>
rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC
Dan Carpenter <dan.carpenter@oracle.com>
wilc1000: fix double free error in probe()
Sean Wang <sean.wang@mediatek.com>
mt76: mt7921: drop offload_flags overwritten
Marek Behún <kabel@kernel.org>
ARM: dts: armada-38x: Add generic compatible to UART nodes
Robert Marko <robert.marko@sartura.hr>
arm64: dts: marvell: cn9130: enable CP0 GPIO controllers
Robert Marko <robert.marko@sartura.hr>
arm64: dts: marvell: cn9130: add GPIO and SPI aliases
Wei Yongjun <weiyongjun1@huawei.com>
usb: ftdi-elan: fix memory leak on device disconnect
Andre Przywara <andre.przywara@arm.com>
ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding
Antony Antony <antony.antony@secunet.com>
xfrm: state and policy should fail if XFRMA_IF_ID 0
Antony Antony <antony.antony@secunet.com>
xfrm: interface with if_id 0 should return error
Jernej Skrabec <jernej.skrabec@gmail.com>
media: hantro: Fix probe func error path
Robin Murphy <robin.murphy@arm.com>
drm/tegra: vic: Fix DMA API misuse
Thierry Reding <treding@nvidia.com>
drm/tegra: gr2d: Explicitly control module reset
Arnd Bergmann <arnd@arndb.de>
gpu: host1x: select CONFIG_DMA_SHARED_BUFFER
Stephen Boyd <swboyd@chromium.org>
drm/bridge: ti-sn65dsi86: Set max register for regmap
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drm/msm/dpu: fix safe status debugfs file
Baruch Siach <baruch@tkos.co.il>
arm64: dts: qcom: ipq6018: Fix gpio-ranges property
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
arm64: dts: qcom: c630: Fix soundcard setup
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Add missing PTP via UDP rules
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Allow PTP P2P measurements on blocked ports
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Add STP forwarding rule
Kurt Kanzenbach <kurt@linutronix.de>
net: dsa: hellcreek: Fix insertion of static FDB entries
Zhou Qingyang <zhou1615@umn.edu>
ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan()
Jiasheng Jiang <jiasheng@iscas.ac.cn>
media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes
Wang Hai <wanghai38@huawei.com>
media: msi001: fix possible null-ptr-deref in msi001_probe()
Anton Vasilyev <vasilyev@ispras.ru>
media: dw2102: Fix use after free
Robin Murphy <robin.murphy@arm.com>
perf/arm-cmn: Fix CPU hotplug unregistration
Christian Lamparter <chunkeey@gmail.com>
ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors
Hector Martin <marcan@marcan.st>
spi: Fix incorrect cs_setup delay handling
Rameshkumar Sundaram <quic_ramess@quicinc.com>
ath11k: Fix deleting uninitialized kernel timer during fragment cache flush
Weili Qian <qianweili@huawei.com>
crypto: hisilicon/qm - fix incorrect return value of hisi_qm_resume()
Herbert Xu <herbert@gondor.apana.org.au>
crypto: stm32 - Revert broken pm_runtime_resume_and_get changes
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix bugs and crash in tests
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix lrw chaining mode
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix double pm exit
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - check early input data
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix xts and race condition in crypto_engine requests
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com>
crypto: stm32/cryp - fix CTR counter carry
Jakub Kicinski <kuba@kernel.org>
selftests: harness: avoid false negatives if test has no ASSERTs
Anders Roxell <anders.roxell@linaro.org>
selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST
Kees Cook <keescook@chromium.org>
x86/uaccess: Move variable into switch case statement
Eric Dumazet <edumazet@google.com>
xfrm: fix a small bug in xfrm_sa_len()
Brian Norris <briannorris@chromium.org>
mwifiex: Fix possible ABBA deadlock
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drm/msm/dsi: fix initialization in the bonded DSI case
Loic Poulain <loic.poulain@linaro.org>
wcn36xx: Fix max channels retrieval
Frederic Weisbecker <frederic@kernel.org>
rcu/exp: Mark current CPU as exp-QS in IPI loop second pass
Jackie Liu <liuyun01@kylinos.cn>
drm/msm/dp: displayPort driver need algorithm rational
Rob Clark <robdclark@chromium.org>
drm/msm/gpu: Don't allow zero fence_id
Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
drm/amd/display: Fix out of bounds access on DNC31 stream encoder regs
Wayne Lin <Wayne.Lin@amd.com>
drm/amd/display: Fix bug in debugfs crc_win_update entry
Mark Chen <mark-yw.chen@mediatek.com>
Bluetooth: btusb: Handle download_firmware failure cases
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: MGMT: Use hci_dev_test_and_{set,clear}_flag
Joseph Hwang <josephsih@chromium.org>
Bluetooth: refactor set_exp_feature with a feature table
Fabio Estevam <festevam@denx.de>
ath10k: Fix the MTU size on QCA9377 SDIO
Li Hua <hucool.lihua@huawei.com>
sched/rt: Try to restart rt period timer when rt runtime exceeded
Lv Yunlong <lyl2019@mail.ustc.edu.cn>
wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma
Robert Schlabbach <robert_s@gmx.net>
media: si2157: Fix "warm" tuner state detection
Zhou Qingyang <zhou1615@umn.edu>
media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach()
Zhou Qingyang <zhou1615@umn.edu>
media: dib8000: Fix a memleak in dib8000_init()
Alexander Lobakin <alexandr.lobakin@intel.com>
samples: bpf: Fix 'unknown warning group' build warning on Clang
Alexander Lobakin <alexandr.lobakin@intel.com>
samples: bpf: Fix xdp_sample_user.o linking with Clang
Andrii Nakryiko <andrii@kernel.org>
samples/bpf: Clean up samples/bpf build failes
Quentin Monnet <quentin@isovalent.com>
samples/bpf: Install libbpf headers when building
Reiji Watanabe <reijiw@google.com>
arm64: mte: DC {GVA,GZVA} shouldn't be used when DCZID_EL0.DZP == 1
Reiji Watanabe <reijiw@google.com>
arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
Kajol Jain <kjain@linux.ibm.com>
bpf: Remove config check to enable bpf support for branch records
Hou Tao <houtao1@huawei.com>
bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)
Alexei Starovoitov <ast@kernel.org>
bpf: Adjust BTF log size limit.
Vincent Donnefort <vincent.donnefort@arm.com>
sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity
Vincent Donnefort <vincent.donnefort@arm.com>
sched/fair: Fix detection of per-CPU kthreads waking a task
Maxim Mikityanskiy <maximmi@nvidia.com>
bpf: Fix the test_task_vma selftest to support output shorter than 1 kB
Sean Wang <sean.wang@mediatek.com>
Bluetooth: btmtksdio: fix resume failure
Yang Yingliang <yangyingliang@huawei.com>
staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib()
Yang Yingliang <yangyingliang@huawei.com>
staging: rtl8192e: return error code from rtllib_softmac_init()
Tasos Sahanidis <tasos@tasossah.com>
floppy: Fix hang in watchdog when disk is ejected
Michael Walle <michael@walle.cc>
mtd: core: provide unique name for nvmem device
Lino Sanfilippo <LinoSanfilippo@gmx.de>
serial: amba-pl011: do not request memory region twice
Lizhi Hou <lizhi.hou@xilinx.com>
tty: serial: uartlite: allow 64 bit address
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j7200: Correct the d-cache-sets info
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j721e: Fix the L2 cache sets
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-j7200: Fix the L2 cache sets
Nishanth Menon <nm@ti.com>
arm64: dts: ti: k3-am642: Fix the L2 cache sets
Gaurav Jain <gaurav.jain@nxp.com>
crypto: caam - save caam memory to support crypto engine retry mechanism.
Alexei Starovoitov <ast@kernel.org>
libbpf: Clean gen_loader's attach kind.
Zhou Qingyang <zhou1615@umn.edu>
drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms()
Zhou Qingyang <zhou1615@umn.edu>
drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode()
Paul Gerber <Paul.Gerber@tq-group.com>
thermal/drivers/imx8mm: Enable ADC when enabling monitor
Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ACPI: EC: Rework flushing of EC work while suspended to idle
William Kucharski <william.kucharski@oracle.com>
cgroup: Trace event cgroup id fields should be u64
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Fail to initialize on broken configs
Zack Rusin <zackr@vmware.com>
drm/vmwgfx: Remove the deprecated lower mem limit
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
arm64: dts: qcom: msm8916: fix MMC controller aliases
Mark Rutland <mark.rutland@arm.com>
powerpc: Avoid discarding flags in system_call_exception()
Florian Westphal <fw@strlen.de>
netfilter: bridge: add support for pppoe filtering
Jesper Dangaard Brouer <brouer@redhat.com>
igc: AF_XDP zero-copy metadata adjust breaks SKBs on XDP_PASS
Oleksij Rempel <linux@rempel-privat.de>
thermal/drivers/imx: Implement runtime PM support
Bhupesh Sharma <bhupesh.sharma@linaro.org>
net: stmmac: Add platform level debug register dump feature
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()'
Christophe JAILLET <christophe.jaillet@wanadoo.fr>
media: venus: core: Fix a potential NULL pointer dereference in an error handling path
Mansur Alisha Shaik <mansur@codeaurora.org>
media: venus: correct low power frequency calculation for encoder
Philipp Zabel <p.zabel@pengutronix.de>
media: coda: fix CODA960 JPEG encoder buffer overflow
Chen-Yu Tsai <wenst@chromium.org>
media: hantro: Hook up RK3399 JPEG encoder output
Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released
Yang Yingliang <yangyingliang@huawei.com>
media: si470x-i2c: fix possible memory leak in si470x_i2c_probe()
Fabio Estevam <festevam@denx.de>
media: imx-pxp: Initialize the spinlock prior to using it
Suresh Udipi <sudipi@jp.adit-jv.com>
media: rcar-csi2: Correct the selection of hsfreqrange
Hans de Goede <hdegoede@redhat.com>
media: i2c: ov8865: Fix lockdep error
Daniel Scally <djrscally@gmail.com>
media: i2c: Re-order runtime pm initialisation
Eugen Hristev <eugen.hristev@microchip.com>
media: i2c: imx274: fix s_frame_interval runtime resume not requested
Alan Maguire <alan.maguire@oracle.com>
libbpf: Silence uninitialized warning/error in btf_dump_dump_type_data
Jan Kara <jack@suse.cz>
bfq: Do not let waker requests skip proper accounting
Claudiu Beznea <claudiu.beznea@microchip.com>
mfd: atmel-flexcom: Use .resume_noirq
Claudiu Beznea <claudiu.beznea@microchip.com>
mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP
Tudor Ambarus <tudor.ambarus@microchip.com>
tty: serial: atmel: Call dma_async_issue_pending()
Tudor Ambarus <tudor.ambarus@microchip.com>
tty: serial: atmel: Check return code of dmaengine_submit()
Peng Fan <peng.fan@nxp.com>
arm64: dts: ti: k3-j721e: correct cache-sets info
Anilkumar Kolli <akolli@codeaurora.org>
ath11k: Use host CE parameters for CE interrupts configuration
Giovanni Cabiddu <giovanni.cabiddu@intel.com>
crypto: qat - fix undetected PFVF timeout in ACK loop
Marco Chiappero <marco.chiappero@intel.com>
crypto: qat - make pfvf send message direction agnostic
Marco Chiappero <marco.chiappero@intel.com>
crypto: qat - remove unnecessary collision prevention step in PFVF
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix using invalidated memory in bpf_linker
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix glob_syms memory leak in bpf_linker
Andrii Nakryiko <andrii@kernel.org>
libbpf: Fix potential misaligned memory access in btf_ext__new()
Dillon Min <dillon.minfei@gmail.com>
ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco
Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
cpufreq: qcom-hw: Fix probable nested interrupt handling
Lukasz Luba <lukasz.luba@arm.com>
cpufreq: qcom-cpufreq-hw: Update offline CPUs per-cpu thermal pressure
George G. Davis <davis.george@siemens.com>
mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove
Prasad Malisetty <pmaliset@codeaurora.org>
arm64: dts: qcom: sc7280: Fix incorrect clock name
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_skcipher_register_one
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_ahash_register_one
Chengfeng Ye <cyeaa@connect.ust.hk>
crypto: qce - fix uaf on qce_aead_register_one
Tudor Ambarus <tudor.ambarus@microchip.com>
crypto: atmel-aes - Reestablish the correct tfm context at dequeue
Wang Hai <wanghai38@huawei.com>
media: dmxdev: fix UAF when dvb_register_device() fails
Biju Das <biju.das.jz@bp.renesas.com>
arm64: dts: renesas: cat875: Add rx/tx delays
Dan Carpenter <dan.carpenter@oracle.com>
drm/vboxvideo: fix a NULL vs IS_ERR() check
Lyude Paul <lyude@redhat.com>
drm/dp: Don't read back backlight mode in drm_edp_backlight_enable()
Alexander Aring <aahringo@redhat.com>
fs: dlm: fix build with CONFIG_IPV6 disabled
Jens Wiklander <jens.wiklander@linaro.org>
tee: fix put order in teedev_close_context()
oujiefeng <oujiefeng@huawei.com>
spi: hisi-kunpeng: Fix the debugfs directory name incorrect
Karthikeyan Kathirvel <kathirve@codeaurora.org>
ath11k: reset RSN/WPA present state for open BSS
Karthikeyan Kathirvel <kathirve@codeaurora.org>
ath11k: clear the keys properly via DISABLE_KEY
Sven Eckelmann <sven@narfation.org>
ath11k: Fix ETSI regd with weather radar overlap
Pavel Skripkin <paskripkin@gmail.com>
Bluetooth: stop proccessing malicious adv data
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails
Alexander Aring <aahringo@redhat.com>
fs: dlm: don't call kernel_getpeername() in error_report()
Christian Hewitt <christianshewitt@gmail.com>
arm64: dts: meson-gxbb-wetek: fix missing GPIO binding
Christian Hewitt <christianshewitt@gmail.com>
arm64: dts: meson-gxbb-wetek: fix HDMI in early boot
Alexander Stein <alexander.stein@mailbox.org>
arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+
Alexander Stein <alexander.stein@mailbox.org>
arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name
Jammy Huang <jammy_huang@aspeedtech.com>
media: aspeed: Update signal status immediately to ensure sane hw state
Dongliang Mu <mudongliangabcd@gmail.com>
media: em28xx: fix memory leak in em28xx_init_dev
Jammy Huang <jammy_huang@aspeedtech.com>
media: aspeed: fix mode-detect always time out at 2nd run
Dan Carpenter <dan.carpenter@oracle.com>
media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr()
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
media: atomisp: fix enum formats logic
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: add NULL check for asd obtained from atomisp_video_pipe
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix ifdefs in sh_css.c
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid()
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: do not use err var when checking port validity for ISP2400
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix inverted logic in buffers_needed()
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
Tsuchiya Yuto <kitakar@gmail.com>
media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities()
Dillon Min <dillon.minfei@gmail.com>
media: videobuf2: Fix the size printk format
Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init()
Quentin Monnet <quentin@isovalent.com>
bpftool: Fix memory leak in prog_dump()
Rameshkumar Sundaram <ramess@codeaurora.org>
ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware
Benjamin Li <benl@squareup.com>
wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
Benjamin Li <benl@squareup.com>
wcn36xx: populate band before determining rate on RX
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Put DXE block into reset before freeing memory
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Release DMA channel descriptor allocations
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Fix DMA channel enable/disable cycle
Andrii Nakryiko <andrii@kernel.org>
libbpf: Free up resources used by inner map definition
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Enable the scrambler on reconnection
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND
Benjamin Li <benl@squareup.com>
wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan
Maxime Ripard <maxime@cerno.tech>
drm/vc4: crtc: Make sure the HDMI controller is powered when disabling
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Rework the pre_crtc_configure error handling
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Make sure the controller is powered up during bind
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Make sure the controller is powered in detect
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Move the HSM clock enable to runtime_pm
Maxime Ripard <maxime@cerno.tech>
drm/vc4: hdmi: Set a default HSM rate
Maxime Ripard <maxime@cerno.tech>
clk: bcm-2835: Remove rounding up the dividers
Maxime Ripard <maxime@cerno.tech>
clk: bcm-2835: Pick the closest clock rate
Wang Hai <wanghai38@huawei.com>
Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails
Soenke Huster <soenke.huster@eknoes.de>
Bluetooth: virtio_bt: fix memory leak in virtbt_rx_handle()
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Reconfigure hardware on resume()
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Disable PLL clock on bind error
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Hold pm-runtime across bind/unbind
Brian Norris <briannorris@chromium.org>
drm/rockchip: dsi: Fix unbalanced clock on probe error
Brian Norris <briannorris@chromium.org>
drm/panel: innolux-p079zca: Delete panel on attach() failure
Brian Norris <briannorris@chromium.org>
drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
Wang Hai <wanghai38@huawei.com>
drm: fix null-ptr-deref in drm_dev_init_release()
Dan Carpenter <dan.carpenter@oracle.com>
drm/bridge: display-connector: fix an uninitialized pointer in probe()
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Bluetooth: L2CAP: Fix not initializing sk_peer_pid
xinhui pan <xinhui.pan@amd.com>
drm/ttm: Put BO in its memory manager's lru list
Gang Li <ligang.bdlg@bytedance.com>
shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode
Wen Gong <quic_wgong@quicinc.com>
ath11k: add string type to search board data in board-2.bin for WCN6855
Baoquan He <bhe@redhat.com>
mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages
Baoquan He <bhe@redhat.com>
dma/pool: create dma atomic pool only if dma zone has managed pages
Baoquan He <bhe@redhat.com>
mm_zone: add function to check if managed dma zone exists
Yifeng Li <tomli@tomli.me>
PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
Thomas Hellström <thomas.hellstrom@linux.intel.com>
dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled()
Peng Hao <flyingpenghao@gmail.com>
virtio/virtio_mem: handle a possible NULL as a memcpy parameter
Dmitry Osipenko <digetx@gmail.com>
drm/tegra: Add back arm_iommu_detach_device()
Dmitry Osipenko <digetx@gmail.com>
gpu: host1x: Add back arm_iommu_detach_device()
Yunfei Wang <yf.wang@mediatek.com>
iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure
Hari Prasath <Hari.PrasathGE@microchip.com>
ARM: dts: at91: update alternate function of signal PD20
D Scott Phillips <scott@os.amperecomputing.com>
arm64: errata: Fix exec handling in erratum 1418040 workaround
Dan Williams <dan.j.williams@intel.com>
cxl/pmem: Fix reference counting for delayed work
Manivannan Sadhasivam <mani@kernel.org>
bus: mhi: core: Fix race while handling SYS_ERR at power up
Bhaumik Bhatt <quic_bbhatt@quicinc.com>
bus: mhi: core: Fix reading wake_capable channel configuration
Loic Poulain <loic.poulain@linaro.org>
bus: mhi: pci_generic: Graceful shutdown on freeze
Christophe Leroy <christophe.leroy@csgroup.eu>
lkdtm: Fix content of section containing lkdtm_rodata_do_nothing()
Jonathan Cameron <Jonathan.Cameron@huawei.com>
iio: trigger: Fix a scheduling whilst atomic issue seen on tsc2046
Jonathan Cameron <Jonathan.Cameron@huawei.com>
iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs
Alexander Usyskin <alexander.usyskin@intel.com>
mei: hbm: fix client dma reply status
Johan Hovold <johan@kernel.org>
can: softing_cs: softingcs_probe(): fix memleak on registration failure
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: cec-pin: fix interrupt en/disable handling
Johan Hovold <johan@kernel.org>
media: stk1160: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: pvrusb2: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: redrat3: fix control-message timeouts
Michael Kuron <michael.kuron@gmail.com>
media: dib0700: fix undefined behavior in tuner shutdown
Johan Hovold <johan@kernel.org>
media: s2255: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: cpia2: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: em28xx: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: mceusb: fix control-message timeouts
Johan Hovold <johan@kernel.org>
media: flexcop-usb: fix control-message timeouts
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE
Sakari Ailus <sakari.ailus@linux.intel.com>
media: ov8865: Disable only enabled regulators on error path
Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: cec: fix a deadlock situation
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: add reserved room in ipc request/response
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: limits exceeding the maximum allowable outstanding requests
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: move credit charge deduction under processing request
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: add support for smb2 max credit parameter
Namjae Jeon <linkinjeon@kernel.org>
ksmbd: fix guest connection failure with nautilus
Dan Carpenter <dan.carpenter@oracle.com>
ksmbd: uninitialized variable in create_socket()
Mohammad Athari Bin Ismail <mohammad.athari.ismail@intel.com>
net: phy: marvell: add Marvell specific PHY loopback
Mateusz Jończyk <mat.jonczyk@o2.pl>
rtc: cmos: take rtc_lock while reading from CMOS
Willy Tarreau <w@1wt.eu>
tools/nolibc: fix incorrect truncation of exit code
Willy Tarreau <w@1wt.eu>
tools/nolibc: i386: fix initial stack alignment
Jakub Kicinski <kuba@kernel.org>
crypto: x86/aesni - don't require alignment of data
Ammar Faizi <ammar.faizi@students.amikom.ac.id>
tools/nolibc: x86-64: Fix startup code bug
Lucas De Marchi <lucas.demarchi@intel.com>
x86/gpu: Reserve stolen memory for first integrated Intel GPU
Jisheng Zhang <jszhang@kernel.org>
riscv: mm: fix wrong phys_ram_base value for RV64
Nick Kossifidis <mick@ics.forth.gr>
riscv: use hart id instead of cpu id on machine_kexec
Nick Kossifidis <mick@ics.forth.gr>
riscv: Don't use va_pa_offset on kdump
Nick Kossifidis <mick@ics.forth.gr>
riscv: try to allocate crashkern region from 32bit addressible memory
Sean Christopherson <seanjc@google.com>
RISC-V: Use common riscv_cpuid_to_hartid_mask() for both SMP=y and SMP=n
Alexandre Ghiti <alexandre.ghiti@canonical.com>
riscv: Get rid of MAXPHYSMEM configs
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: ingenic: JZ4740 needs 'oob_first' read page function
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: Export nand_read_page_hwecc_oob_first()
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Rewrite function description
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Avoid duplicated page read
Paul Cercueil <paul@crapouillou.net>
mtd: rawnand: davinci: Don't calculate ECC when reading page
Andreas Oetken <ennoerlangen@gmail.com>
mtd: Fixed breaking list in __mtd_del_partition.
Stefan Riedmueller <s.riedmueller@phytec.de>
mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6
Christian Eggers <ceggers@arri.de>
mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings
Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind()
Jaegeuk Kim <jaegeuk@kernel.org>
f2fs: avoid EINVAL by SBI_NEED_FSCK when pinning a file
Chao Yu <chao@kernel.org>
f2fs: fix to do sanity check in is_alive()
Chao Yu <chao@kernel.org>
f2fs: fix to do sanity check on inode type during garbage collection
Takashi Iwai <tiwai@suse.de>
ALSA: core: Fix SSID quirk lookup for subvendor=0
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Avoid using stale array indicies to read contact count
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Ignore the confidence flag when a touch is removed
Jason Gerecke <killertofu@gmail.com>
HID: wacom: Reset expected and received contact counts at the same time
Jann Horn <jannh@google.com>
HID: uhid: Fix worker destroying device without any protection
Karl Kurbjun <kkurbjun@gmail.com>
HID: Ignore battery for Elan touchscreen on HP Envy X360 15t-dr100
Marcelo Tosatti <mtosatti@redhat.com>
KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock
David Matlack <dmatlack@google.com>
KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU
-------------
Diffstat:
Documentation/admin-guide/cifs/usage.rst | 7 +-
Documentation/admin-guide/devices.txt | 8 +-
Documentation/admin-guide/hw-vuln/spectre.rst | 2 +-
.../bindings/display/amlogic,meson-dw-hdmi.yaml | 5 +
.../bindings/display/amlogic,meson-vpu.yaml | 6 +
.../devicetree/bindings/input/hid-over-i2c.txt | 2 +
.../devicetree/bindings/thermal/thermal-zones.yaml | 9 +-
.../devicetree/bindings/watchdog/samsung-wdt.yaml | 5 +-
Documentation/driver-api/dmaengine/dmatest.rst | 7 +-
Documentation/driver-api/firewire.rst | 4 +-
.../acpi/dsd/data-node-references.rst | 10 +-
Documentation/trace/coresight/coresight-config.rst | 16 +-
Makefile | 4 +-
arch/arm/Kconfig.debug | 14 +-
arch/arm/boot/compressed/efi-header.S | 22 +-
arch/arm/boot/compressed/head.S | 3 +-
arch/arm/boot/dts/armada-38x.dtsi | 4 +-
arch/arm/boot/dts/gemini-nas4220b.dts | 2 +-
arch/arm/boot/dts/omap3-n900.dts | 50 +-
arch/arm/boot/dts/qcom-sdx55.dtsi | 6 +-
arch/arm/boot/dts/sama7g5-pinfunc.h | 2 +-
arch/arm/boot/dts/stm32f429-disco.dts | 2 +-
arch/arm/configs/cm_x300_defconfig | 1 -
arch/arm/configs/ezx_defconfig | 1 -
arch/arm/configs/imote2_defconfig | 1 -
arch/arm/configs/nhk8815_defconfig | 1 -
arch/arm/configs/pxa_defconfig | 1 -
arch/arm/configs/spear13xx_defconfig | 1 -
arch/arm/configs/spear3xx_defconfig | 1 -
arch/arm/configs/spear6xx_defconfig | 1 -
arch/arm/include/debug/imx-uart.h | 18 +-
arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 5 +-
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 2 +-
.../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 2 +-
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 3 +
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 14 +-
arch/arm64/boot/dts/marvell/cn9130.dtsi | 15 +
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 2 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 5 +-
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2 +-
arch/arm64/boot/dts/qcom/msm8916.dtsi | 4 +-
arch/arm64/boot/dts/qcom/msm8996.dtsi | 3 -
arch/arm64/boot/dts/qcom/sc7280.dtsi | 2 +-
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 27 +
arch/arm64/boot/dts/qcom/sm8350.dtsi | 2 +-
arch/arm64/boot/dts/renesas/cat875.dtsi | 1 +
arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77951.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77960.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77961.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77965.dtsi | 6 +-
arch/arm64/boot/dts/renesas/r8a77980.dtsi | 4 +-
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 10 +-
arch/arm64/boot/dts/ti/k3-am642.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j7200.dtsi | 6 +-
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-j721e.dtsi | 6 +-
arch/arm64/include/asm/extable.h | 9 -
arch/arm64/include/asm/memory.h | 5 +-
arch/arm64/include/asm/mte-kasan.h | 8 +-
arch/arm64/kernel/process.c | 39 +-
arch/arm64/kernel/traps.c | 2 +-
arch/arm64/lib/clear_page.S | 10 +
arch/arm64/lib/mte.S | 8 +-
arch/arm64/mm/ptdump.c | 2 -
arch/arm64/net/bpf_jit_comp.c | 7 +-
arch/mips/Kconfig | 6 +-
arch/mips/bcm63xx/clk.c | 6 +
arch/mips/boot/compressed/Makefile | 2 +-
arch/mips/boot/compressed/clz_ctz.c | 2 +
arch/mips/cavium-octeon/octeon-platform.c | 2 +
arch/mips/cavium-octeon/octeon-usb.c | 1 +
arch/mips/configs/fuloong2e_defconfig | 1 -
arch/mips/configs/malta_qemu_32r6_defconfig | 1 -
arch/mips/configs/maltaaprp_defconfig | 1 -
arch/mips/configs/maltasmvp_defconfig | 1 -
arch/mips/configs/maltasmvp_eva_defconfig | 1 -
arch/mips/configs/maltaup_defconfig | 1 -
.../asm/mach-loongson64/kernel-entry-init.h | 4 +-
arch/mips/include/asm/octeon/cvmx-bootinfo.h | 4 +-
arch/mips/lantiq/clk.c | 6 +
arch/openrisc/include/asm/syscalls.h | 2 +
arch/openrisc/kernel/entry.S | 5 +
arch/parisc/include/asm/special_insns.h | 44 +-
arch/parisc/kernel/traps.c | 2 +-
arch/powerpc/boot/dts/fsl/qoriq-fman3l-0.dtsi | 2 +
arch/powerpc/configs/ppc6xx_defconfig | 1 -
arch/powerpc/configs/pseries_defconfig | 1 -
arch/powerpc/include/asm/hw_irq.h | 40 +
arch/powerpc/kernel/btext.c | 4 +-
arch/powerpc/kernel/fadump.c | 8 +
arch/powerpc/kernel/head_40x.S | 9 +-
arch/powerpc/kernel/interrupt.c | 2 +-
arch/powerpc/kernel/interrupt_64.S | 10 +-
arch/powerpc/kernel/module.c | 11 +-
arch/powerpc/kernel/prom_init.c | 2 +-
arch/powerpc/kernel/smp.c | 42 +
arch/powerpc/kernel/watchdog.c | 41 +-
arch/powerpc/kvm/book3s_hv.c | 8 +-
arch/powerpc/kvm/book3s_hv_nested.c | 2 +-
arch/powerpc/mm/book3s64/radix_pgtable.c | 4 +-
arch/powerpc/mm/kasan/book3s_32.c | 3 +-
arch/powerpc/mm/pgtable_64.c | 14 +-
arch/powerpc/perf/core-book3s.c | 58 +-
arch/powerpc/platforms/cell/iommu.c | 1 +
arch/powerpc/platforms/cell/pervasive.c | 1 +
arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 1 +
arch/powerpc/platforms/powermac/low_i2c.c | 3 +
arch/powerpc/platforms/powernv/opal-lpc.c | 1 +
arch/powerpc/sysdev/xive/spapr.c | 3 +
arch/riscv/Kconfig | 23 +-
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi | 3 -
arch/riscv/configs/nommu_k210_defconfig | 2 -
arch/riscv/configs/nommu_k210_sdcard_defconfig | 2 -
arch/riscv/configs/nommu_virt_defconfig | 1 -
arch/riscv/include/asm/smp.h | 10 +-
arch/riscv/kernel/kexec_relocate.S | 20 +-
arch/riscv/kernel/machine_kexec.c | 3 +-
arch/riscv/kernel/setup.c | 10 +
arch/riscv/kernel/smp.c | 10 -
arch/riscv/mm/init.c | 19 +-
arch/s390/mm/pgalloc.c | 4 +-
arch/sh/configs/titan_defconfig | 1 -
arch/um/.gitignore | 1 +
arch/um/drivers/virt-pci.c | 8 +-
arch/um/drivers/virtio_uml.c | 4 +
arch/um/include/asm/delay.h | 4 +-
arch/um/include/asm/irqflags.h | 4 +-
arch/um/include/shared/longjmp.h | 2 +-
arch/um/include/shared/os.h | 4 +-
arch/um/include/shared/registers.h | 4 +-
arch/um/kernel/ksyms.c | 2 +-
arch/um/os-Linux/registers.c | 4 +-
arch/um/os-Linux/sigio.c | 6 +-
arch/um/os-Linux/signal.c | 8 +-
arch/um/os-Linux/start_up.c | 2 +-
arch/x86/boot/compressed/Makefile | 7 +-
arch/x86/configs/i386_defconfig | 1 +
arch/x86/configs/x86_64_defconfig | 1 +
arch/x86/crypto/aesni-intel_glue.c | 4 +-
arch/x86/include/asm/realmode.h | 1 +
arch/x86/include/asm/topology.h | 2 +-
arch/x86/include/asm/uaccess.h | 5 +-
arch/x86/kernel/cpu/mce/core.c | 42 +-
arch/x86/kernel/cpu/mce/inject.c | 2 +-
arch/x86/kernel/early-quirks.c | 10 +-
arch/x86/kernel/reboot.c | 12 +-
arch/x86/kvm/mmu/tdp_mmu.c | 6 +-
arch/x86/kvm/vmx/posted_intr.c | 16 +-
arch/x86/realmode/init.c | 26 +
arch/x86/um/syscalls_64.c | 3 +-
block/bfq-iosched.c | 44 +-
block/blk-flush.c | 4 +-
block/blk-pm.c | 22 +-
block/genhd.c | 15 +-
block/mq-deadline.c | 4 +-
crypto/jitterentropy.c | 3 +-
drivers/acpi/acpica/exfield.c | 7 +-
drivers/acpi/acpica/exoparg1.c | 3 +-
drivers/acpi/acpica/hwesleep.c | 4 +-
drivers/acpi/acpica/hwsleep.c | 4 +-
drivers/acpi/acpica/hwxfsleep.c | 2 -
drivers/acpi/acpica/utdelete.c | 1 +
drivers/acpi/battery.c | 22 +
drivers/acpi/bus.c | 4 +-
drivers/acpi/cppc_acpi.c | 2 +-
drivers/acpi/ec.c | 57 +-
drivers/acpi/internal.h | 2 +
drivers/acpi/scan.c | 13 +-
drivers/acpi/x86/utils.c | 116 ++-
drivers/android/binder.c | 98 ++-
drivers/base/core.c | 3 +-
drivers/base/power/runtime.c | 41 +-
drivers/base/property.c | 4 +-
drivers/base/regmap/regmap.c | 1 +
drivers/base/swnode.c | 2 +-
drivers/block/floppy.c | 6 +-
drivers/bluetooth/btintel.c | 26 +-
drivers/bluetooth/btmtksdio.c | 2 +
drivers/bluetooth/btusb.c | 5 +
drivers/bluetooth/hci_bcm.c | 7 +-
drivers/bluetooth/hci_qca.c | 9 +-
drivers/bluetooth/hci_vhci.c | 2 +
drivers/bluetooth/virtio_bt.c | 3 +
drivers/bus/mhi/core/init.c | 1 +
drivers/bus/mhi/core/pm.c | 35 +-
drivers/bus/mhi/pci_generic.c | 2 +-
drivers/char/mwave/3780i.h | 2 +-
drivers/char/random.c | 19 +-
drivers/char/tpm/tpm-chip.c | 18 +-
drivers/char/tpm/tpm_tis_core.c | 14 +-
drivers/clk/bcm/clk-bcm2835.c | 13 +-
drivers/clk/clk-bm1880.c | 20 +-
drivers/clk/clk-si5341.c | 2 +-
drivers/clk/clk-stm32f4.c | 4 -
drivers/clk/clk.c | 18 +
drivers/clk/imx/clk-imx8mn.c | 6 +-
drivers/clk/meson/gxbb.c | 44 +-
drivers/clk/qcom/gcc-sc7280.c | 2 +-
drivers/clk/renesas/rzg2l-cpg.c | 17 +-
drivers/cpufreq/cpufreq.c | 4 +-
drivers/cpufreq/qcom-cpufreq-hw.c | 7 +-
drivers/crypto/atmel-aes.c | 6 +-
drivers/crypto/caam/caamalg.c | 6 +
drivers/crypto/caam/caamalg_qi2.c | 2 +-
drivers/crypto/caam/caamhash.c | 3 +
drivers/crypto/caam/caampkc.c | 3 +
drivers/crypto/ccp/sev-dev.c | 30 +-
drivers/crypto/hisilicon/hpre/hpre_crypto.c | 2 +-
drivers/crypto/hisilicon/qm.c | 2 +-
drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c | 9 +-
.../crypto/marvell/octeontx2/otx2_cptpf_ucode.c | 3 +-
drivers/crypto/omap-aes.c | 2 +-
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 45 +-
drivers/crypto/qce/aead.c | 2 +-
drivers/crypto/qce/sha.c | 2 +-
drivers/crypto/qce/skcipher.c | 2 +-
drivers/crypto/stm32/stm32-crc32.c | 4 +-
drivers/crypto/stm32/stm32-cryp.c | 938 ++++++++-------------
drivers/crypto/stm32/stm32-hash.c | 6 +-
drivers/cxl/pmem.c | 17 +-
drivers/dma-buf/dma-fence-array.c | 6 +-
drivers/dma/at_xdmac.c | 57 +-
drivers/dma/idxd/device.c | 12 +-
drivers/dma/mmp_pdma.c | 6 -
drivers/dma/pxa_dma.c | 7 -
drivers/dma/stm32-mdma.c | 2 +-
drivers/dma/uniphier-xdmac.c | 5 +-
drivers/edac/synopsys_edac.c | 3 +-
drivers/firmware/efi/efi-init.c | 5 +
drivers/firmware/google/Kconfig | 6 +-
drivers/firmware/sysfb_simplefb.c | 8 +-
drivers/gpio/gpio-aspeed-sgpio.c | 32 +-
drivers/gpio/gpio-aspeed.c | 52 +-
drivers/gpio/gpio-idt3243x.c | 4 +-
drivers/gpio/gpio-mpc8xxx.c | 4 +-
drivers/gpio/gpiolib-acpi.c | 15 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 4 +
drivers/gpu/drm/amd/amdgpu/cik.c | 4 +
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 13 +-
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/vi.c | 4 +
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 138 ++-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 5 +-
drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 3 +-
drivers/gpu/drm/amd/display/dc/core/dc.c | 3 +-
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 2 +
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 3 +-
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 6 +
drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 14 +-
drivers/gpu/drm/bridge/display-connector.c | 2 +-
.../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 40 +-
.../gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 10 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 4 +-
.../gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 9 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 12 +-
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 +
drivers/gpu/drm/drm_dp_helper.c | 40 +-
drivers/gpu/drm/drm_drv.c | 9 +-
drivers/gpu/drm/drm_panel_orientation_quirks.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 6 +
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 1 +
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 10 +-
drivers/gpu/drm/lima/lima_device.c | 1 +
drivers/gpu/drm/msm/Kconfig | 1 +
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 4 +-
drivers/gpu/drm/msm/dsi/dsi.c | 10 +-
drivers/gpu/drm/msm/dsi/dsi.h | 1 -
drivers/gpu/drm/msm/dsi/dsi_manager.c | 17 -
drivers/gpu/drm/msm/msm_gem_submit.c | 2 +-
drivers/gpu/drm/nouveau/dispnv04/disp.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 37 +-
.../gpu/drm/panel/panel-feiyang-fy07024di26a30d.c | 8 +-
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 10 +-
drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 8 +-
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 8 +-
drivers/gpu/drm/panel/panel-novatek-nt36672a.c | 8 +-
.../gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 8 +-
drivers/gpu/drm/panel/panel-ronbo-rb070d30.c | 8 +-
.../drm/panel/panel-samsung-s6e88a0-ams452ef01.c | 1 +
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 1 +
drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 8 +-
drivers/gpu/drm/radeon/radeon_kms.c | 42 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 20 +-
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 82 +-
drivers/gpu/drm/tegra/drm.c | 15 +
drivers/gpu/drm/tegra/gr2d.c | 33 +-
drivers/gpu/drm/tegra/submit.c | 4 +-
drivers/gpu/drm/tegra/vic.c | 7 +-
drivers/gpu/drm/ttm/ttm_bo.c | 2 +
drivers/gpu/drm/vboxvideo/vbox_main.c | 4 +-
drivers/gpu/drm/vc4/vc4_crtc.c | 31 +-
drivers/gpu/drm/vc4/vc4_drv.h | 29 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 136 ++-
drivers/gpu/drm/vc4/vc4_hvs.c | 26 +-
drivers/gpu/drm/vc4/vc4_kms.c | 3 +-
drivers/gpu/drm/vc4/vc4_txp.c | 4 +-
drivers/gpu/drm/vmwgfx/Makefile | 3 +-
drivers/gpu/drm/vmwgfx/ttm_memory.c | 99 +--
drivers/gpu/drm/vmwgfx/ttm_memory.h | 6 +-
drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c | 7 +
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 48 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 20 +-
drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 12 +-
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 4 +-
drivers/gpu/drm/vmwgfx/vmwgfx_system_manager.c | 90 ++
drivers/gpu/drm/vmwgfx/vmwgfx_thp.c | 184 ----
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 58 +-
drivers/gpu/host1x/Kconfig | 1 +
drivers/gpu/host1x/dev.c | 15 +
drivers/hid/hid-apple.c | 2 +-
drivers/hid/hid-ids.h | 1 +
drivers/hid/hid-input.c | 8 +
drivers/hid/hid-magicmouse.c | 95 ++-
drivers/hid/hid-uclogic-params.c | 31 +-
drivers/hid/hid-vivaldi.c | 34 +-
drivers/hid/i2c-hid/i2c-hid-acpi.c | 2 +-
drivers/hid/i2c-hid/i2c-hid-core.c | 4 +-
drivers/hid/i2c-hid/i2c-hid-of-goodix.c | 2 +-
drivers/hid/i2c-hid/i2c-hid-of.c | 10 +-
drivers/hid/i2c-hid/i2c-hid.h | 2 +-
drivers/hid/uhid.c | 29 +-
drivers/hid/wacom_wac.c | 39 +-
drivers/hsi/hsi_core.c | 1 +
drivers/hwmon/mr75203.c | 2 +-
drivers/i2c/busses/i2c-designware-pcidrv.c | 8 +-
drivers/i2c/busses/i2c-i801.c | 15 +-
drivers/i2c/busses/i2c-mpc.c | 23 +-
drivers/iio/adc/ti-adc081c.c | 22 +-
drivers/iio/industrialio-trigger.c | 36 +-
drivers/infiniband/core/cma.c | 18 +-
drivers/infiniband/core/device.c | 3 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 1 -
drivers/infiniband/hw/cxgb4/qp.c | 1 +
drivers/infiniband/hw/hns/hns_roce_main.c | 5 +-
drivers/infiniband/hw/qedr/verbs.c | 2 +
drivers/infiniband/sw/rxe/rxe_opcode.c | 2 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 2 +-
drivers/interconnect/qcom/icc-rpm.c | 1 +
drivers/iommu/amd/amd_iommu_types.h | 2 -
drivers/iommu/amd/init.c | 107 +--
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 2 +-
drivers/iommu/io-pgtable-arm-v7s.c | 6 +-
drivers/iommu/io-pgtable-arm.c | 9 +-
drivers/iommu/iommu.c | 3 +-
drivers/iommu/iova.c | 3 +-
drivers/irqchip/irq-gic-v3.c | 16 +
drivers/leds/leds-lp55xx-common.c | 4 +-
drivers/mailbox/mailbox-mpfs.c | 2 +-
drivers/mailbox/mtk-cmdq-mailbox.c | 2 +-
drivers/md/dm.c | 4 +-
drivers/md/md.c | 27 +-
drivers/md/md.h | 2 +
drivers/md/persistent-data/dm-btree.c | 8 +-
drivers/md/persistent-data/dm-space-map-common.c | 5 +
drivers/md/raid0.c | 38 +-
drivers/md/raid5.c | 41 +-
drivers/media/Kconfig | 8 +-
drivers/media/cec/core/cec-adap.c | 38 +-
drivers/media/cec/core/cec-api.c | 6 +
drivers/media/cec/core/cec-core.c | 3 +
drivers/media/cec/core/cec-pin.c | 31 +-
drivers/media/common/saa7146/saa7146_fops.c | 2 +-
.../media/common/videobuf2/videobuf2-dma-contig.c | 8 +-
drivers/media/dvb-core/dmxdev.c | 18 +-
drivers/media/dvb-frontends/dib8000.c | 4 +-
drivers/media/i2c/imx274.c | 5 +
drivers/media/i2c/ov8865.c | 16 +-
drivers/media/pci/b2c2/flexcop-pci.c | 3 +
drivers/media/pci/saa7146/hexium_gemini.c | 7 +-
drivers/media/pci/saa7146/hexium_orion.c | 8 +-
drivers/media/pci/saa7146/mxb.c | 8 +-
drivers/media/platform/aspeed-video.c | 14 +-
drivers/media/platform/coda/coda-common.c | 8 +-
drivers/media/platform/coda/coda-jpeg.c | 21 +-
drivers/media/platform/coda/imx-vdoa.c | 6 +-
drivers/media/platform/imx-pxp.c | 4 +-
.../media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 2 +-
drivers/media/platform/qcom/venus/core.c | 11 +-
drivers/media/platform/qcom/venus/pm_helpers.c | 32 +-
drivers/media/platform/rcar-vin/rcar-csi2.c | 18 +-
drivers/media/platform/rcar-vin/rcar-v4l2.c | 15 +-
.../media/platform/rockchip/rkisp1/rkisp1-dev.c | 2 +-
drivers/media/radio/si470x/radio-si470x-i2c.c | 3 +-
drivers/media/rc/igorplugusb.c | 4 +-
drivers/media/rc/mceusb.c | 8 +-
drivers/media/rc/redrat3.c | 22 +-
drivers/media/tuners/msi001.c | 7 +
drivers/media/tuners/si2157.c | 2 +-
drivers/media/usb/b2c2/flexcop-usb.c | 10 +-
drivers/media/usb/b2c2/flexcop-usb.h | 12 +-
drivers/media/usb/cpia2/cpia2_usb.c | 4 +-
drivers/media/usb/dvb-usb/dib0700_core.c | 2 -
drivers/media/usb/dvb-usb/dw2102.c | 338 +++++---
drivers/media/usb/dvb-usb/m920x.c | 12 +-
drivers/media/usb/em28xx/em28xx-cards.c | 18 +-
drivers/media/usb/em28xx/em28xx-core.c | 4 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 8 +-
drivers/media/usb/s2255/s2255drv.c | 4 +-
drivers/media/usb/stk1160/stk1160-core.c | 4 +-
drivers/media/usb/uvc/uvcvideo.h | 2 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 4 +-
drivers/memory/renesas-rpc-if.c | 2 +-
drivers/mfd/atmel-flexcom.c | 11 +-
drivers/mfd/tps65910.c | 22 +-
drivers/misc/eeprom/at25.c | 13 +-
drivers/misc/habanalabs/common/firmware_if.c | 17 +-
drivers/misc/habanalabs/common/habanalabs.h | 2 +
drivers/misc/lattice-ecp3-config.c | 12 +-
drivers/misc/lkdtm/Makefile | 2 +-
drivers/misc/mei/hbm.c | 20 +-
drivers/mmc/core/sdio.c | 4 +-
drivers/mmc/host/meson-mx-sdhc-mmc.c | 5 +
drivers/mmc/host/meson-mx-sdio.c | 5 +
drivers/mmc/host/mtk-sd.c | 64 +-
drivers/mmc/host/sdhci-pci-gli.c | 11 +
drivers/mmc/host/tmio_mmc_core.c | 15 +-
drivers/mtd/hyperbus/rpc-if.c | 8 +-
drivers/mtd/mtdcore.c | 4 +-
drivers/mtd/mtdpart.c | 2 +-
drivers/mtd/nand/raw/davinci_nand.c | 73 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 37 +-
drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c | 5 +
drivers/mtd/nand/raw/nand_base.c | 67 ++
drivers/net/bonding/bond_main.c | 40 +-
drivers/net/can/flexcan.c | 150 ++--
drivers/net/can/rcar/rcar_canfd.c | 5 +-
drivers/net/can/softing/softing_cs.c | 2 +-
drivers/net/can/softing/softing_fw.c | 11 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 6 +-
drivers/net/can/xilinx_can.c | 7 +-
drivers/net/dsa/hirschmann/hellcreek.c | 87 +-
drivers/net/ethernet/broadcom/bnxt/Makefile | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 +
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 3 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c | 372 ++++++++
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h | 51 ++
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 355 +-------
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h | 43 -
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h | 3 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 10 +-
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c | 3 +-
drivers/net/ethernet/cortina/gemini.c | 9 +-
drivers/net/ethernet/freescale/fman/mac.c | 21 +-
drivers/net/ethernet/freescale/xgmac_mdio.c | 28 +-
drivers/net/ethernet/i825xx/sni_82596.c | 3 +-
drivers/net/ethernet/intel/igc/igc_main.c | 4 +-
drivers/net/ethernet/marvell/octeontx2/af/ptp.c | 2 +
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 55 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 16 +-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 36 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 5 +-
.../ethernet/mellanox/mlx5/core/en/tc_tun_encap.c | 2 +
.../net/ethernet/mellanox/mlx5/core/en/xsk/pool.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 19 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 3 +
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 120 ++-
.../net/ethernet/mellanox/mlx5/core/esw/legacy.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 8 +-
.../net/ethernet/mellanox/mlx5/core/sf/dev/dev.c | 5 +-
drivers/net/ethernet/mellanox/mlxsw/cmd.h | 12 +
drivers/net/ethernet/mellanox/mlxsw/pci.c | 7 +-
drivers/net/ethernet/mscc/ocelot.c | 31 +-
drivers/net/ethernet/mscc/ocelot_flower.c | 15 +-
drivers/net/ethernet/mscc/ocelot_net.c | 6 +-
drivers/net/ethernet/renesas/ravb_main.c | 6 +-
drivers/net/ethernet/rocker/rocker_ofdpa.c | 3 +-
.../ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 7 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 +
drivers/net/ethernet/ti/cpsw.c | 6 +-
drivers/net/ethernet/ti/cpsw_new.c | 6 +-
drivers/net/ethernet/ti/cpsw_priv.c | 2 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 135 +--
drivers/net/ipa/ipa_endpoint.c | 7 +-
drivers/net/phy/marvell.c | 62 +-
drivers/net/phy/mdio_bus.c | 2 +-
drivers/net/phy/micrel.c | 36 +-
drivers/net/phy/phy-core.c | 2 +-
drivers/net/phy/sfp.c | 25 +-
drivers/net/ppp/ppp_generic.c | 7 +-
drivers/net/usb/mcs7830.c | 12 +-
drivers/net/usb/smsc95xx.c | 3 +-
drivers/net/wireless/ath/ar5523/ar5523.c | 4 +
drivers/net/wireless/ath/ath10k/core.c | 19 +-
drivers/net/wireless/ath/ath10k/htt_tx.c | 3 +
drivers/net/wireless/ath/ath10k/hw.h | 3 +
drivers/net/wireless/ath/ath10k/txrx.c | 2 -
drivers/net/wireless/ath/ath11k/ahb.c | 28 +-
drivers/net/wireless/ath/ath11k/core.c | 27 +-
drivers/net/wireless/ath/ath11k/core.h | 15 +-
drivers/net/wireless/ath/ath11k/dp.h | 3 +-
drivers/net/wireless/ath/ath11k/dp_tx.c | 2 +-
drivers/net/wireless/ath/ath11k/hal.c | 22 +
drivers/net/wireless/ath/ath11k/hal.h | 2 +
drivers/net/wireless/ath/ath11k/hw.c | 2 -
drivers/net/wireless/ath/ath11k/mac.c | 52 +-
drivers/net/wireless/ath/ath11k/pci.c | 22 +-
drivers/net/wireless/ath/ath11k/qmi.c | 2 +-
drivers/net/wireless/ath/ath11k/reg.c | 103 +--
drivers/net/wireless/ath/ath11k/wmi.c | 5 +-
drivers/net/wireless/ath/ath9k/hif_usb.c | 7 +
drivers/net/wireless/ath/ath9k/htc.h | 2 +
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 13 +
drivers/net/wireless/ath/ath9k/wmi.c | 4 +
drivers/net/wireless/ath/wcn36xx/dxe.c | 49 +-
drivers/net/wireless/ath/wcn36xx/main.c | 34 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 10 +-
drivers/net/wireless/ath/wcn36xx/txrx.c | 41 +-
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 +
drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 5 +-
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 17 +-
drivers/net/wireless/intel/iwlwifi/iwl-io.c | 2 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 17 +
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 27 +
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 23 +-
.../net/wireless/intel/iwlwifi/mvm/time-event.c | 36 +-
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 7 +-
drivers/net/wireless/intel/iwlwifi/queue/tx.c | 1 +
drivers/net/wireless/marvell/mwifiex/sta_event.c | 8 +-
drivers/net/wireless/marvell/mwifiex/usb.c | 3 +-
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 4 +
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 8 +-
.../net/wireless/mediatek/mt76/mt7615/pci_init.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 9 +-
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 6 -
drivers/net/wireless/microchip/wilc1000/netdev.c | 1 -
drivers/net/wireless/microchip/wilc1000/sdio.c | 2 +
drivers/net/wireless/microchip/wilc1000/spi.c | 2 +
drivers/net/wireless/realtek/rtw88/main.c | 2 +-
drivers/net/wireless/realtek/rtw88/pci.c | 61 +-
drivers/net/wireless/realtek/rtw88/pci.h | 2 +
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
drivers/net/wireless/rsi/rsi_91x_main.c | 4 +
drivers/net/wireless/rsi/rsi_91x_usb.c | 9 +-
drivers/net/wireless/rsi/rsi_usb.h | 2 +
drivers/net/wwan/mhi_wwan_mbim.c | 4 +-
drivers/nvmem/core.c | 2 +
drivers/of/base.c | 11 +-
drivers/of/fdt.c | 25 +-
drivers/of/unittest.c | 21 +-
drivers/parisc/pdc_stable.c | 4 +-
drivers/pci/controller/pci-aardvark.c | 4 +-
drivers/pci/controller/pci-mvebu.c | 8 +
drivers/pci/controller/pci-xgene.c | 2 +-
drivers/pci/hotplug/pciehp.h | 3 +
drivers/pci/hotplug/pciehp_core.c | 2 +-
drivers/pci/hotplug/pciehp_hpc.c | 28 +-
drivers/pci/msi.c | 26 +-
drivers/pci/pci-bridge-emul.c | 70 +-
drivers/pci/quirks.c | 3 +
drivers/pcmcia/cs.c | 8 +-
drivers/pcmcia/rsrc_nonstatic.c | 6 +
drivers/perf/arm-cmn.c | 5 +-
drivers/phy/cadence/phy-cadence-sierra.c | 31 +-
drivers/phy/mediatek/phy-mtk-mipi-dsi.c | 2 +
drivers/phy/mediatek/phy-mtk-tphy.c | 162 ++++
drivers/phy/socionext/phy-uniphier-usb3ss.c | 10 +-
drivers/pinctrl/pinctrl-rockchip.c | 2 +-
drivers/power/reset/mt6323-poweroff.c | 3 +
drivers/ptp/ptp_vclock.c | 10 +-
drivers/regulator/da9121-regulator.c | 5 +
drivers/regulator/qcom-labibb-regulator.c | 2 +-
drivers/regulator/qcom_smd-regulator.c | 100 ++-
drivers/remoteproc/imx_rproc.c | 1 +
drivers/rpmsg/rpmsg_core.c | 20 +-
drivers/rtc/rtc-cmos.c | 3 +
drivers/rtc/rtc-pxa.c | 4 +
drivers/scsi/lpfc/lpfc.h | 2 +-
drivers/scsi/lpfc/lpfc_attr.c | 62 +-
drivers/scsi/lpfc/lpfc_els.c | 11 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 8 +-
drivers/scsi/lpfc/lpfc_init.c | 8 +-
drivers/scsi/lpfc/lpfc_nportdisc.c | 6 +
drivers/scsi/lpfc/lpfc_sli.c | 6 -
drivers/scsi/mpi3mr/mpi3mr.h | 3 +-
drivers/scsi/mpi3mr/mpi3mr_fw.c | 4 +-
drivers/scsi/pm8001/pm8001_hwi.c | 4 +-
drivers/scsi/scsi.c | 4 +-
drivers/scsi/scsi_debugfs.c | 1 +
drivers/scsi/scsi_pm.c | 2 +-
drivers/scsi/sr.c | 2 +-
drivers/scsi/sr_vendor.c | 4 +-
drivers/scsi/ufs/tc-dwc-g210-pci.c | 1 -
drivers/scsi/ufs/ufs-mediatek.c | 2 +-
drivers/scsi/ufs/ufshcd-pci.c | 2 -
drivers/scsi/ufs/ufshcd-pltfrm.c | 2 -
drivers/scsi/ufs/ufshcd.c | 22 +-
drivers/soc/imx/gpcv2.c | 2 +-
drivers/soc/mediatek/mtk-scpsys.c | 15 +-
drivers/soc/qcom/cpr.c | 2 +-
drivers/soc/ti/pruss.c | 2 +-
drivers/spi/spi-hisi-kunpeng.c | 15 +-
drivers/spi/spi-meson-spifc.c | 1 +
drivers/spi/spi-uniphier.c | 11 +-
drivers/spi/spi.c | 13 +-
drivers/staging/greybus/audio_topology.c | 15 +
drivers/staging/media/atomisp/i2c/ov2680.h | 24 -
drivers/staging/media/atomisp/pci/atomisp_cmd.c | 82 +-
drivers/staging/media/atomisp/pci/atomisp_fops.c | 11 +
.../media/atomisp/pci/atomisp_gmin_platform.c | 2 +-
drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 188 ++++-
drivers/staging/media/atomisp/pci/atomisp_subdev.c | 15 +-
drivers/staging/media/atomisp/pci/atomisp_subdev.h | 3 +
drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 13 +-
drivers/staging/media/atomisp/pci/atomisp_v4l2.h | 3 +-
drivers/staging/media/atomisp/pci/sh_css.c | 27 +-
drivers/staging/media/atomisp/pci/sh_css_mipi.c | 41 +-
drivers/staging/media/atomisp/pci/sh_css_params.c | 8 +-
drivers/staging/media/hantro/hantro_drv.c | 3 +-
drivers/staging/media/hantro/hantro_h1_jpeg_enc.c | 2 +-
drivers/staging/media/hantro/hantro_hw.h | 3 +-
.../media/hantro/rockchip_vpu2_hw_jpeg_enc.c | 17 +
drivers/staging/media/hantro/rockchip_vpu_hw.c | 5 +-
drivers/staging/rtl8192e/rtllib.h | 2 +-
drivers/staging/rtl8192e/rtllib_module.c | 16 +-
drivers/staging/rtl8192e/rtllib_softmac.c | 6 +-
drivers/tee/tee_core.c | 4 +-
drivers/thermal/imx8mm_thermal.c | 3 +
drivers/thermal/imx_thermal.c | 145 ++--
drivers/thunderbolt/acpi.c | 13 +
drivers/tty/mxser.c | 5 +-
drivers/tty/serial/8250/8250_bcm7271.c | 11 +-
drivers/tty/serial/amba-pl010.c | 3 -
drivers/tty/serial/amba-pl011.c | 29 +-
drivers/tty/serial/atmel_serial.c | 14 +
drivers/tty/serial/imx.c | 7 +-
drivers/tty/serial/liteuart.c | 2 +-
drivers/tty/serial/serial_core.c | 7 +-
drivers/tty/serial/stm32-usart.c | 6 +-
drivers/tty/serial/uartlite.c | 2 +-
drivers/uio/uio_dmem_genirq.c | 6 +-
drivers/usb/core/hub.c | 5 +-
drivers/usb/dwc2/gadget.c | 13 +-
drivers/usb/dwc2/hcd.c | 7 +-
drivers/usb/dwc3/dwc3-meson-g12a.c | 17 +-
drivers/usb/dwc3/dwc3-qcom.c | 7 +-
drivers/usb/gadget/function/f_fs.c | 4 +-
drivers/usb/gadget/function/u_audio.c | 4 +-
drivers/usb/host/ehci-brcm.c | 6 +-
drivers/usb/host/uhci-platform.c | 3 +-
drivers/usb/misc/ftdi-elan.c | 1 +
drivers/vdpa/ifcvf/ifcvf_base.c | 41 +-
drivers/vdpa/ifcvf/ifcvf_base.h | 9 +-
drivers/vdpa/ifcvf/ifcvf_main.c | 24 +-
drivers/vdpa/mlx5/net/mlx5_vnet.c | 6 +-
drivers/video/backlight/qcom-wled.c | 122 +--
drivers/virtio/virtio_mem.c | 2 +-
drivers/virtio/virtio_ring.c | 4 +-
drivers/w1/slaves/w1_ds28e04.c | 26 +-
drivers/xen/gntdev.c | 6 +-
fs/btrfs/backref.c | 21 +-
fs/btrfs/ctree.c | 19 +-
fs/btrfs/inode.c | 11 +
fs/btrfs/qgroup.c | 19 +
fs/debugfs/file.c | 2 +-
fs/dlm/lock.c | 9 +
fs/dlm/lowcomms.c | 44 +-
fs/ext4/ext4.h | 1 +
fs/ext4/ext4_jbd2.c | 2 +
fs/ext4/extents.c | 2 -
fs/ext4/fast_commit.c | 18 +-
fs/ext4/inode.c | 51 +-
fs/ext4/ioctl.c | 2 -
fs/ext4/mballoc.c | 48 +-
fs/ext4/migrate.c | 23 +-
fs/ext4/super.c | 27 +-
fs/f2fs/checkpoint.c | 4 +-
fs/f2fs/compress.c | 50 +-
fs/f2fs/data.c | 7 +-
fs/f2fs/f2fs.h | 11 +
fs/f2fs/file.c | 10 +-
fs/f2fs/gc.c | 8 +-
fs/f2fs/inode.c | 5 +
fs/f2fs/segment.h | 3 +-
fs/f2fs/super.c | 44 +
fs/f2fs/sysfs.c | 4 +-
fs/fuse/file.c | 2 +-
fs/io_uring.c | 1 +
fs/jffs2/file.c | 40 +-
fs/ksmbd/connection.c | 1 +
fs/ksmbd/connection.h | 4 +-
fs/ksmbd/ksmbd_netlink.h | 12 +-
fs/ksmbd/smb2misc.c | 18 +-
fs/ksmbd/smb2ops.c | 16 +-
fs/ksmbd/smb2pdu.c | 87 +-
fs/ksmbd/smb2pdu.h | 1 +
fs/ksmbd/smb_common.h | 1 +
fs/ksmbd/transport_ipc.c | 2 +
fs/ksmbd/transport_tcp.c | 3 +-
fs/ubifs/super.c | 1 -
fs/udf/ialloc.c | 2 +
include/acpi/acpi_bus.h | 5 +-
include/acpi/actypes.h | 10 +-
include/asm-generic/bitops/find.h | 5 +
include/linux/blk-pm.h | 2 +-
include/linux/bpf_verifier.h | 7 +
include/linux/hid.h | 2 +
include/linux/iio/trigger.h | 2 +
include/linux/ipv6.h | 2 +
include/linux/mmzone.h | 9 +
include/linux/mtd/rawnand.h | 2 +
include/linux/of_fdt.h | 2 +
include/linux/pm_runtime.h | 3 +
include/linux/psi_types.h | 13 +-
include/linux/ptp_clock_kernel.h | 12 +-
include/linux/skbuff.h | 7 +-
include/linux/stmmac.h | 1 +
include/media/cec.h | 11 +-
include/net/inet_frag.h | 11 +-
include/net/ipv6_frag.h | 3 +-
include/net/pkt_sched.h | 5 +-
include/net/sch_generic.h | 5 +
include/net/seg6.h | 21 +
include/net/xfrm.h | 7 +-
include/sound/hda_codec.h | 8 +-
include/trace/events/cgroup.h | 12 +-
include/uapi/linux/xfrm.h | 1 +
kernel/audit.c | 18 +-
kernel/bpf/btf.c | 3 +-
kernel/bpf/inode.c | 14 +-
kernel/bpf/verifier.c | 28 +-
kernel/dma/pool.c | 4 +-
kernel/rcu/rcutorture.c | 5 +
kernel/rcu/tree_exp.h | 1 +
kernel/sched/cpuacct.c | 79 +-
kernel/sched/cputime.c | 4 +-
kernel/sched/fair.c | 4 +-
kernel/sched/psi.c | 45 +-
kernel/sched/rt.c | 23 +-
kernel/sched/stats.h | 5 +-
kernel/time/clocksource.c | 50 +-
kernel/trace/bpf_trace.c | 6 +-
kernel/trace/trace_kprobe.c | 5 +-
kernel/trace/trace_osnoise.c | 20 +-
kernel/trace/trace_syscalls.c | 6 +-
kernel/tsacct.c | 7 +-
lib/kunit/test.c | 18 +-
lib/logic_iomem.c | 19 +-
lib/mpi/mpi-mod.c | 2 +
lib/test_hmm.c | 24 +
lib/test_meminit.c | 1 +
mm/hmm.c | 5 +-
mm/page_alloc.c | 19 +-
mm/shmem.c | 37 +-
net/ax25/af_ax25.c | 10 +-
net/batman-adv/netlink.c | 30 +-
net/bluetooth/cmtp/core.c | 4 +-
net/bluetooth/hci_core.c | 1 +
net/bluetooth/hci_event.c | 14 +-
net/bluetooth/hci_request.c | 2 +-
net/bluetooth/hci_sysfs.c | 2 +
net/bluetooth/l2cap_sock.c | 45 +-
net/bluetooth/mgmt.c | 248 +++---
net/bridge/br_netfilter_hooks.c | 7 +-
net/core/dev.c | 6 +
net/core/devlink.c | 2 -
net/core/filter.c | 8 +-
net/core/flow_dissector.c | 3 +-
net/core/net-sysfs.c | 3 +
net/core/net_namespace.c | 4 +-
net/core/sock.c | 2 +
net/core/sock_map.c | 21 +-
net/dsa/switch.c | 4 +-
net/ipv4/fib_semantics.c | 47 +-
net/ipv4/inet_fragment.c | 8 +-
net/ipv4/ip_fragment.c | 3 +-
net/ipv4/ip_gre.c | 5 +-
net/ipv4/netfilter/ipt_CLUSTERIP.c | 5 +-
net/ipv4/tcp_bpf.c | 27 +
net/ipv6/icmp.c | 6 +-
net/ipv6/ip6_gre.c | 5 +-
net/ipv6/seg6.c | 59 ++
net/ipv6/seg6_local.c | 33 +-
net/ipv6/udp.c | 3 +-
net/mac80211/rx.c | 2 +-
net/mptcp/options.c | 10 +-
net/mptcp/pm_netlink.c | 18 +-
net/netfilter/nft_payload.c | 3 +
net/netfilter/nft_set_pipapo.c | 8 +
net/netrom/af_netrom.c | 12 +-
net/nfc/llcp_sock.c | 5 +
net/openvswitch/flow.c | 20 +-
net/sched/act_ct.c | 7 +
net/sched/cls_api.c | 3 +
net/sched/cls_flower.c | 3 +-
net/sched/sch_api.c | 2 +-
net/sched/sch_generic.c | 1 +
net/smc/af_smc.c | 8 +-
net/smc/smc_core.c | 29 +-
net/smc/smc_core.h | 2 +-
net/socket.c | 9 +-
net/unix/garbage.c | 14 +-
net/unix/scm.c | 6 +-
net/xfrm/xfrm_compat.c | 6 +-
net/xfrm/xfrm_interface.c | 14 +-
net/xfrm/xfrm_output.c | 30 +-
net/xfrm/xfrm_policy.c | 24 +-
net/xfrm/xfrm_state.c | 23 +-
net/xfrm/xfrm_user.c | 41 +-
samples/bpf/Makefile | 56 +-
samples/bpf/Makefile.target | 11 -
samples/bpf/hbm_kern.h | 2 -
samples/bpf/lwt_len_hist_kern.c | 7 -
samples/bpf/xdp_sample_user.h | 2 +
scripts/dtc/dtx_diff | 8 +-
scripts/sphinx-pre-install | 3 +
security/selinux/hooks.c | 12 +-
sound/core/jack.c | 3 +
sound/core/misc.c | 2 +-
sound/core/oss/pcm_oss.c | 2 +-
sound/core/pcm.c | 6 +-
sound/core/seq/seq_queue.c | 14 +-
sound/hda/hdac_stream.c | 14 +-
sound/pci/hda/hda_bind.c | 5 +
sound/pci/hda/hda_codec.c | 45 +-
sound/pci/hda/hda_controller.c | 1 -
sound/pci/hda/hda_local.h | 1 +
sound/pci/hda/patch_cs8409-tables.c | 3 +
sound/pci/hda/patch_cs8409.c | 9 +-
sound/pci/hda/patch_cs8409.h | 1 +
sound/soc/codecs/Kconfig | 3 +-
sound/soc/codecs/rt5663.c | 12 +-
sound/soc/fsl/fsl_asrc.c | 69 +-
sound/soc/fsl/fsl_mqs.c | 2 +-
sound/soc/fsl/imx-card.c | 32 +-
sound/soc/fsl/imx-hdmi.c | 2 +
sound/soc/intel/boards/sof_sdw.c | 2 +-
sound/soc/intel/catpt/dsp.c | 14 +-
sound/soc/intel/skylake/skl-pcm.c | 1 -
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 +
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 +
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 +
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 6 +-
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 7 +-
.../mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 6 +-
sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 2 +-
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 73 +-
sound/soc/mediatek/mt8195/mt8195-reg.h | 1 +
sound/soc/samsung/idma.c | 2 +
sound/soc/uniphier/Kconfig | 2 -
sound/usb/format.c | 2 +-
sound/usb/mixer_quirks.c | 2 +-
sound/usb/quirks.c | 2 +-
tools/bpf/bpftool/Documentation/Makefile | 1 -
tools/bpf/bpftool/Documentation/bpftool-btf.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-cgroup.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-gen.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-link.rst | 2 +-
tools/bpf/bpftool/Documentation/bpftool-map.rst | 6 +-
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 8 +-
tools/bpf/bpftool/Documentation/bpftool.rst | 6 +-
tools/bpf/bpftool/Makefile | 1 -
tools/bpf/bpftool/main.c | 2 +
tools/bpf/bpftool/prog.c | 15 +-
tools/include/nolibc/nolibc.h | 33 +-
tools/lib/bpf/btf.c | 55 +-
tools/lib/bpf/btf.h | 2 +-
tools/lib/bpf/btf_dump.c | 2 +-
tools/lib/bpf/gen_loader.c | 4 +-
tools/lib/bpf/libbpf.c | 9 +-
tools/lib/bpf/linker.c | 6 +-
tools/perf/Makefile.config | 5 +-
tools/perf/util/debug.c | 2 +-
tools/perf/util/evsel.c | 25 +-
tools/perf/util/probe-event.c | 3 +
tools/testing/selftests/bpf/btf_helpers.c | 9 +-
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 5 +-
.../selftests/bpf/prog_tests/migrate_reuseport.c | 4 +-
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 2 +
.../testing/selftests/bpf/prog_tests/tc_redirect.c | 7 +
tools/testing/selftests/clone3/clone3.c | 6 +
.../selftests/ftrace/test.d/kprobe/profile.tc | 2 +-
tools/testing/selftests/kselftest_harness.h | 2 +-
.../selftests/powerpc/security/spectre_v2.c | 2 +-
tools/testing/selftests/powerpc/signal/.gitignore | 1 +
tools/testing/selftests/powerpc/signal/Makefile | 1 +
.../selftests/powerpc/signal/sigreturn_kernel.c | 132 +++
tools/testing/selftests/vm/hmm-tests.c | 42 +
896 files changed, 9019 insertions(+), 5115 deletions(-)
^ permalink raw reply [relevance 1%]
Results 1-200 of ~1000 next (older) | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2022-01-24 18:29 1% [PATCH 5.16 0000/1039] 5.16.3-rc1 review Greg Kroah-Hartman
2022-01-24 18:44 12% ` [PATCH 5.16 0865/1039] powerpc/64s/radix: Fix huge vmap false positive Greg Kroah-Hartman
2022-01-24 18:31 1% [PATCH 5.15 000/846] 5.15.17-rc1 review Greg Kroah-Hartman
2022-01-24 18:43 12% ` [PATCH 5.15 696/846] powerpc/64s/radix: Fix huge vmap false positive Greg Kroah-Hartman
2022-01-25 16:32 1% [PATCH 5.10 000/560] 5.10.94-rc2 review Greg Kroah-Hartman
[not found] ` <CAJq+SaC78nnBi5p6LYMWSs=-FSGMX5uom4MnE9i4C7F0FWuTcQ@mail.gmail.com>
2022-01-26 1:18 0% ` Allen
2022-01-25 16:32 1% [PATCH 5.15 000/841] 5.15.17-rc2 review Greg Kroah-Hartman
2022-01-25 16:33 1% [PATCH 5.16 0000/1033] 5.16.3-rc2 review Greg Kroah-Hartman
2022-01-27 13:32 1% Linux 5.10.94 Greg Kroah-Hartman
2022-01-27 13:32 1% ` Greg Kroah-Hartman
2022-01-27 13:32 1% Linux 5.15.17 Greg Kroah-Hartman
2022-01-27 13:32 1% ` Greg Kroah-Hartman
2022-01-27 13:32 1% Linux 5.16.3 Greg Kroah-Hartman
2022-01-27 13:32 1% ` Greg Kroah-Hartman
2022-01-30 21:02 1% [ANNOUNCE] 5.15.18-rt28 Clark Williams
2022-02-04 4:16 [PATCH 0/6] kernel: consolidated pull request bruce.ashfield
2022-02-04 4:16 1% ` [PATCH 2/6] linux-yocto/5.15: update to v5.15.19 bruce.ashfield
2022-02-04 4:16 1% ` [PATCH 3/6] linux-yocto/5.10: update to v5.10.96 bruce.ashfield
2022-02-17 14:18 [hardknott][PATCH 00/14] Patch review Anuj Mittal
2022-02-17 14:18 1% ` [hardknott][PATCH 06/14] linux-yocto/5.10: update to v5.10.96 Anuj Mittal
2022-02-22 15:07 [honister][PATCH 00/38] Patch review Anuj Mittal
2022-02-22 15:07 1% ` [honister][PATCH 21/38] linux-yocto/5.10: update to v5.10.96 Anuj Mittal
2022-03-02 6:52 1% [PATCH] nds32: Remove the architecture Alan Kao
2022-03-02 7:42 1% Alan Kao
2022-03-08 6:52 2% [RFC PULL] remove arch/h8300 Christoph Hellwig
2022-03-23 22:15 1% [GIT PULL] asm-generic updates for 5.18 Arnd Bergmann
2022-04-11 14:15 4% [PATCH v1 0/4] riscv: mm: add Svnapot support panqinglin2020
2022-04-11 14:15 10% ` [PATCH v1 4/4] mm: support Svnapot in huge vmap panqinglin2020
2022-05-20 17:10 0% ` [PATCH v1 0/4] riscv: mm: add Svnapot support Palmer Dabbelt
2022-04-15 16:44 [PATCH v4 bpf 0/4] vmalloc: bpf: introduce VM_ALLOW_HUGE_VMAP Song Liu
2022-04-15 19:05 ` Luis Chamberlain
2022-04-16 5:08 ` Christoph Hellwig
2022-04-16 19:55 ` Song Liu
2022-04-16 20:30 ` Linus Torvalds
2022-04-16 22:26 ` Song Liu
2022-04-18 10:06 ` Mike Rapoport
2022-04-19 0:44 ` Luis Chamberlain
2022-04-19 1:56 ` Edgecombe, Rick P
2022-04-19 5:36 ` Song Liu
2022-04-19 18:42 ` Mike Rapoport
2022-04-19 19:20 ` Linus Torvalds
2022-04-21 3:25 ` Nicholas Piggin
2022-04-21 5:48 ` Linus Torvalds
2022-04-21 8:57 5% ` Nicholas Piggin
2022-04-21 3:19 5% ` Nicholas Piggin
2022-05-26 15:00 2% [GIT PULL] asm-generic changes for 5.19 Arnd Bergmann
2022-06-09 2:56 7% [PATCH] Documentation/features: Update the arch support status files Zheng Zengkai
2022-06-09 2:56 7% ` Zheng Zengkai
2022-06-09 2:56 7% ` Zheng Zengkai
2022-06-09 2:56 7% ` Zheng Zengkai
2022-06-10 17:31 4% [GIT PULL] Documentation fixes for 5.19 Jonathan Corbet
2022-06-23 8:02 1% [PULL] drm-misc-next Thomas Zimmermann
2022-06-23 8:02 1% ` [Intel-gfx] " Thomas Zimmermann
2022-07-16 8:56 4% [PATCH v2 0/4] riscv: mm: add Svnapot support panqinglin2020
2022-07-16 8:56 10% ` [PATCH v2 4/4] mm: support Svnapot in huge vmap panqinglin2020
2022-08-22 12:59 4% [PATCH v3 0/4] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
2022-08-22 12:59 10% ` [PATCH v3 4/4] mm: support Svnapot in huge vmap panqinglin2020
2022-08-22 13:09 0% ` [PATCH v3 0/4] riscv, mm: detect svnapot cpu support at runtime Conor.Dooley
2022-08-22 15:34 4% [PATCH v4 " panqinglin2020
2022-08-22 15:34 10% ` [PATCH v4 4/4] mm: support Svnapot in huge vmap panqinglin2020
2022-08-22 21:13 6% ` Conor.Dooley
2022-08-22 21:22 0% ` [PATCH v4 0/4] riscv, mm: detect svnapot cpu support at runtime Conor.Dooley
2022-08-23 3:07 0% ` Qinglin Pan
2022-08-25 7:31 1% [PULL] drm-misc-fixes Thomas Zimmermann
2022-08-25 7:31 1% ` [Intel-gfx] " Thomas Zimmermann
2022-09-05 15:21 7% [dm-devel] [PATCH 1/2] mm: export is_vmalloc_or_module_addr Mikulas Patocka
2022-09-15 6:50 5% [PATCH 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC Liu Shixin
2022-09-15 6:50 5% ` Liu Shixin
2022-09-15 6:50 13% ` [PATCH 1/2] riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT Liu Shixin
2022-09-15 6:50 13% ` Liu Shixin
2022-10-01 19:00 0% ` [PATCH 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC Conor Dooley
2022-10-01 19:00 0% ` Conor Dooley
2022-10-03 13:47 4% [PATCH v5 0/4] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
2022-10-03 13:47 10% ` [PATCH v5 4/4] mm: support Svnapot in huge vmap panqinglin2020
2022-10-04 18:46 6% ` Conor Dooley
2022-10-05 4:44 6% ` Qinglin Pan
2022-10-03 13:53 0% ` [PATCH v5 0/4] riscv, mm: detect svnapot cpu support at runtime Qinglin Pan
2022-10-05 11:29 4% [PATCH v6 " panqinglin2020
2022-10-05 11:29 10% ` [PATCH v6 4/4] riscv: mm: support Svnapot in huge vmap panqinglin2020
2022-10-05 13:29 0% ` [PATCH v6 0/4] riscv, mm: detect svnapot cpu support at runtime Andrew Jones
2022-10-06 19:37 0% ` Conor Dooley
2022-10-08 14:05 5% [PATCH v2 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC Liu Shixin
2022-10-08 14:05 5% ` Liu Shixin
2022-10-08 14:05 13% ` [PATCH v2 1/2] riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT Liu Shixin
2022-10-08 14:05 13% ` Liu Shixin
2022-10-11 12:39 0% ` [PATCH v2 0/2] riscv: Support HAVE_ARCH_HUGE_VMAP and HAVE_ARCH_HUGE_VMALLOC Björn Töpel
2022-10-11 12:39 0% ` Björn Töpel
2022-10-12 2:47 0% ` Liu Shixin
2022-10-12 2:47 0% ` Liu Shixin
2022-10-12 12:00 5% [PATCH v3 " Liu Shixin
2022-10-12 12:00 5% ` Liu Shixin
2022-10-12 12:00 13% ` [PATCH v3 1/2] riscv: Enable HAVE_ARCH_HUGE_VMAP for 64BIT Liu Shixin
2022-10-12 12:00 13% ` Liu Shixin
2022-11-06 22:49 4% [PATCH 1/4] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf Rohan McLure
2022-11-07 1:07 0% ` Rohan McLure
2022-11-07 11:07 0% ` Christophe Leroy
2022-11-17 14:54 [RFC PATCH 0/4] iov_iter: Add extraction helpers David Howells
2022-11-17 14:55 5% ` [RFC PATCH 4/4] netfs: Add a function to extract an iterator into a scatterlist David Howells
2022-11-18 0:21 5% [PATCH v5 1/5] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf Rohan McLure
2022-11-19 11:22 6% [PATCH v7 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
2022-11-19 11:22 12% ` [PATCH v7 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
2022-11-23 13:10 [PATCH v2 0/4] iov_iter: Add extraction helpers David Howells
2022-11-23 13:10 4% ` [PATCH v2 4/4] netfs: Add a function to extract an iterator into a scatterlist David Howells
2022-11-28 2:26 6% [PATCH v8 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
2022-11-28 2:27 6% panqinglin2020
2022-11-28 2:27 12% ` [PATCH v8 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
2022-11-29 13:18 6% ` Andrew Jones
2022-12-02 9:43 [PATCH v3 0/4] iov_iter: Add extraction helpers David Howells
2022-12-02 9:43 4% ` [PATCH v3 4/4] netfs: Add a function to extract an iterator into a scatterlist David Howells
2022-12-04 12:18 4% [PATCH 0/2] docs: Correct the arch name of LoongArch Tiezhu Yang
2022-12-04 12:18 8% ` [PATCH 2/2] Documentation/features: Use loongarch instead of loong Tiezhu Yang
2022-12-04 14:11 6% [PATCH v9 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
2022-12-04 14:11 12% ` [PATCH v9 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
2022-12-07 18:59 6% ` Conor Dooley
2022-12-08 4:57 6% ` Qinglin Pan
2022-12-08 15:22 6% ` Andrew Jones
2022-12-08 17:39 6% ` Qinglin Pan
2022-12-12 6:55 6% [PATCH v10 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
2022-12-12 6:55 12% ` [PATCH v10 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
2022-12-12 7:20 6% ` Andrew Jones
2022-12-12 7:35 6% ` Qinglin Pan
2022-12-12 7:52 6% [PATCH RESEND v10 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
2022-12-12 7:52 12% ` [PATCH v10 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
2022-12-12 8:07 0% ` [PATCH RESEND v10 0/3] riscv, mm: detect svnapot cpu support at runtime Andrew Jones
2022-12-12 8:15 0% ` Qinglin Pan
2022-12-12 9:25 2% [GIT PULL] Documentation for 6.2 Jonathan Corbet
2022-12-14 18:40 4% [GIT PULL] RISC-V Patches for the 6.2 Merge Window, Part 1 Palmer Dabbelt
2022-12-14 18:40 4% ` Palmer Dabbelt
2022-12-16 6:21 6% [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime panqinglin2020
2022-12-16 6:21 12% ` [PATCH v11 3/3] riscv: mm: support Svnapot in huge vmap panqinglin2020
2022-12-19 21:48 0% ` [PATCH v11 0/3] riscv, mm: detect svnapot cpu support at runtime Conor Dooley
2023-01-14 4:54 0% ` Qinglin Pan
2023-02-01 11:58 0% ` Qinglin Pan
2023-02-15 0:02 0% ` Palmer Dabbelt
2023-02-15 2:47 0% ` Qinglin Pan
2023-01-07 0:33 [PATCH v4 0/7] iov_iter: Add extraction helpers David Howells
2023-01-07 0:34 4% ` [PATCH v4 6/7] netfs: Add a function to extract an iterator into a scatterlist David Howells
2023-01-11 14:27 [PATCH v5 0/9] iov_iter: Add extraction helpers David Howells
2023-01-11 14:28 4% ` [PATCH v5 6/9] netfs: Add a function to extract an iterator into a scatterlist David Howells
2023-01-16 23:07 [PATCH v6 00/34] iov_iter: Improve page extraction (ref, pin or just list) David Howells
2023-01-16 23:09 4% ` [PATCH v6 14/34] netfs: Add a function to extract an iterator into a scatterlist David Howells
2023-01-24 20:02 1% [PULL] drm-misc-next Thomas Zimmermann
2023-01-24 20:02 1% ` [Intel-gfx] " Thomas Zimmermann
2023-01-25 21:45 [RFC 00/13] smb3: Use iov_iters down to the network transport and fix DIO page pinning David Howells
2023-01-25 21:45 4% ` [RFC 02/13] netfs: Add a function to extract an iterator into a scatterlist David Howells
2023-01-31 18:28 [PATCH 00/12] smb3: Use iov_iters down to the network transport and fix DIO page pinning David Howells
2023-01-31 18:28 4% ` [PATCH 02/12] netfs: Add a function to extract an iterator into a scatterlist David Howells
2023-02-03 20:59 [PATCH 00/11] smb3: Use iov_iters down to the network transport and fix DIO page pinning David Howells
2023-02-03 20:59 4% ` [PATCH 02/11] netfs: Add a function to extract an iterator into a scatterlist David Howells
2023-02-09 3:13 6% [PATCH v12 0/3] riscv, mm: detect svnapot cpu support at runtime Qinglin Pan
2023-02-09 4:00 0% ` Qinglin Pan
2023-02-09 7:30 0% ` Conor Dooley
2023-02-09 8:03 0% ` Qinglin Pan
2023-02-09 3:13 12% [PATCH v12 3/3] riscv: mm: support Svnapot in huge vmap Qinglin Pan
2023-02-09 3:53 6% [PATCH v12 0/3] riscv, mm: detect svnapot cpu support at runtime Qinglin Pan
2023-02-09 3:53 12% ` [PATCH v12 3/3] riscv: mm: support Svnapot in huge vmap Qinglin Pan
2023-02-09 13:16 6% [PATCH v13 0/3] riscv, mm: detect svnapot cpu support at runtime Qinglin Pan
2023-02-09 13:16 12% ` [PATCH v13 3/3] riscv: mm: support Svnapot in huge vmap Qinglin Pan
2023-02-10 23:31 [PATCH 00/11] smb3: Use iov_iters down to the network transport and fix DIO page pinning David Howells
2023-02-10 23:31 4% ` [PATCH 02/11] netfs: Add a function to extract an iterator into a scatterlist David Howells
2023-02-14 1:59 [PATCH v6 0/7] Support page table check Rohan McLure
2023-02-14 1:59 5% ` [PATCH v6 3/7] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf Rohan McLure
2023-02-15 2:01 [PATCH v7 0/7] Support page table check Rohan McLure
2023-02-15 2:01 5% ` [PATCH v7 3/7] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf Rohan McLure
2023-02-15 7:16 0% ` Christophe Leroy
2023-02-15 10:00 1% [RFC PATCH 0/5] Retire IA64/Itanium support Ard Biesheuvel
2023-02-15 10:00 1% ` Ard Biesheuvel
2023-02-15 10:00 7% ` [RFC PATCH 3/5] Documentation: Drop IA64 from feature descriptions Ard Biesheuvel
2023-02-15 10:00 7% ` Ard Biesheuvel
2023-02-15 16:50 0% ` [RFC PATCH 0/5] Retire IA64/Itanium support Palmer Dabbelt
2023-02-15 16:50 0% ` Palmer Dabbelt
2023-02-15 23:11 [PATCH v8 0/7] Support page table check Rohan McLure
2023-02-15 23:11 5% ` [PATCH v8 3/7] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf Rohan McLure
2023-02-16 21:47 [PATCH 00/17] smb3: Use iov_iters down to the network transport and fix DIO page pinning David Howells
2023-02-16 21:47 4% ` [PATCH 09/17] netfs: Add a function to extract an iterator into a scatterlist David Howells
2023-03-08 7:48 6% [PATCH v14 0/3] riscv, mm: detect svnapot cpu support at runtime Qinglin Pan
2023-03-08 7:48 12% ` [PATCH v14 3/3] riscv: mm: support Svnapot in huge vmap Qinglin Pan
2023-03-15 1:40 5% ` [PATCH v14 0/3] riscv, mm: detect svnapot cpu support at runtime patchwork-bot+linux-riscv
2023-04-28 16:09 3% [GIT PULL] RISC-V Patches for the 6.4 Merge Window, Part 1 Palmer Dabbelt
2023-04-28 16:09 3% ` Palmer Dabbelt
2023-09-11 16:31 1% [GIT PULL] Remove Itanium support Ard Biesheuvel
2023-09-11 17:05 0% ` John Paul Adrian Glaubitz
2023-11-01 23:50 1% [GIT PULL] asm-generic updates for v6.7 Arnd Bergmann
2023-11-02 10:24 0% ` Frank Scheiner
2023-11-30 2:53 [PATCH v9 0/7] Support page table check Rohan McLure
2023-11-30 2:53 5% ` [PATCH v9 1/7] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf Rohan McLure
2024-02-13 13:58 4% [PATCH] powerpc: Force inlining of arch_vmap_p{u/m}d_supported() Christophe Leroy
2024-02-13 13:58 4% ` Christophe Leroy
2024-02-27 20:50 5% [PATCH -fixes 0/2] NAPOT Fixes Alexandre Ghiti
2024-02-27 20:50 5% ` Alexandre Ghiti
2024-02-27 20:50 11% ` [PATCH -fixes 1/2] Revert "riscv: mm: support Svnapot in huge vmap" Alexandre Ghiti
2024-02-27 20:50 11% ` Alexandre Ghiti
2024-02-29 22:10 5% ` [PATCH -fixes 0/2] NAPOT Fixes patchwork-bot+linux-riscv
2024-02-29 22:10 5% ` patchwork-bot+linux-riscv
2024-02-29 8:42 [PATCH v2 0/7] mm/treewide: Replace pXd_large() with pXd_leaf() peterx
2024-02-29 8:42 5% ` [PATCH v2 2/7] mm/ppc: Replace pXd_is_leaf() " peterx
2024-02-29 8:42 5% ` peterx
2024-03-01 15:13 5% [GIT PULL] RISC-V Fixes for 6.8-rc7 Palmer Dabbelt
2024-03-01 15:13 5% ` Palmer Dabbelt
2024-03-03 21:15 2% Linux 6.8-rc7 Linus Torvalds
2024-03-04 21:21 1% [PATCH 6.7 000/162] 6.7.9-rc1 review Greg Kroah-Hartman
2024-03-04 21:22 11% ` [PATCH 6.7 067/162] Revert "riscv: mm: support Svnapot in huge vmap" Greg Kroah-Hartman
2024-03-04 21:22 1% [PATCH 6.6 000/143] 6.6.21-rc1 review Greg Kroah-Hartman
2024-03-04 21:23 11% ` [PATCH 6.6 063/143] Revert "riscv: mm: support Svnapot in huge vmap" Greg Kroah-Hartman
2024-03-05 4:37 [PATCH v3 00/10] mm/treewide: Replace pXd_large() with pXd_leaf() peterx
2024-03-05 4:37 5% ` [PATCH v3 02/10] mm/ppc: Replace pXd_is_leaf() " peterx
2024-03-05 4:37 5% ` peterx
2024-03-05 17:31 0% ` Christophe Leroy
2024-03-05 17:31 0% ` Christophe Leroy
2024-03-06 6:20 0% ` Mike Rapoport
2024-03-06 6:20 0% ` Mike Rapoport
2024-03-05 7:58 1% [PATCH 6.7 000/163] 6.7.9-rc2 review Greg Kroah-Hartman
2024-03-05 11:28 1% [PATCH 6.7 000/161] 6.7.9-rc3 review Greg Kroah-Hartman
2024-03-05 12:30 0% ` Luna Jernberg
2024-03-05 20:31 0% ` Ricardo B. Marliere
2024-03-06 14:55 0% ` Luna Jernberg
2024-03-05 17:50 4% + mm-ppc-replace-pxd_is_leaf-with-pxd_leaf.patch added to mm-unstable branch Andrew Morton
2024-03-06 15:05 2% Linux 6.6.21 Greg Kroah-Hartman
2024-03-06 15:05 1% Linux 6.7.9 Greg Kroah-Hartman
2024-03-06 21:05 4% [merged mm-stable] mm-ppc-replace-pxd_is_leaf-with-pxd_leaf.patch removed from -mm tree Andrew Morton
2024-03-13 4:21 [PATCH v10 00/12] Support page table check PowerPC Rohan McLure
2024-03-13 4:21 5% ` [PATCH v10 08/12] powerpc: mm: Replace p{u,m,4}d_is_leaf with p{u,m,4}_leaf Rohan McLure
2024-03-13 4:21 5% ` Rohan McLure
2024-03-13 4:21 5% ` Rohan McLure
2024-03-13 10:33 0% ` Christophe Leroy
2024-03-13 10:33 0% ` Christophe Leroy
2024-03-13 10:33 0% ` Christophe Leroy
2024-03-13 10:33 0% ` Christophe Leroy
2024-03-19 23:01 [PATCH 0/9] linux-yocto: consolidated pull request bruce.ashfield
2024-03-19 23:01 2% ` [PATCH 3/9] linux-yocto/6.6: update to v6.6.21 bruce.ashfield
2024-03-19 23:01 2% ` [PATCH 4/9] yocto-bsps: " bruce.ashfield
2024-03-24 22:22 [PATCH 6.8 000/715] 6.8.2-rc1 review Sasha Levin
2024-03-24 22:30 4% ` [PATCH 6.8 429/715] powerpc: Force inlining of arch_vmap_p{u/m}d_supported() Sasha Levin
2024-03-24 22:35 [PATCH 6.7 000/713] 6.7.11-rc1 review Sasha Levin
2024-03-24 22:43 4% ` [PATCH 6.7 461/713] powerpc: Force inlining of arch_vmap_p{u/m}d_supported() Sasha Levin
2024-03-24 22:50 [PATCH 6.6 000/638] 6.6.23-rc1 review Sasha Levin
2024-03-24 22:57 4% ` [PATCH 6.6 413/638] powerpc: Force inlining of arch_vmap_p{u/m}d_supported() Sasha Levin
2024-03-24 23:04 [PATCH 6.1 000/451] 6.1.83-rc1 review Sasha Levin
2024-03-24 23:09 4% ` [PATCH 6.1 291/451] powerpc: Force inlining of arch_vmap_p{u/m}d_supported() Sasha Levin
2024-03-24 23:29 [PATCH 5.15 000/317] 5.15.153-rc1 review Sasha Levin
2024-03-24 23:33 4% ` [PATCH 5.15 203/317] powerpc: Force inlining of arch_vmap_p{u/m}d_supported() Sasha Levin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.